Сохранение на основе UVC — это архивная стратегия для обработки сохранения цифровых объектов . Она использует универсальный виртуальный компьютер (UVC) — виртуальную машину (VM), специально разработанную для архивных целей, которая позволяет как эмулировать , так и переносить в нейтральный по языку формат, такой как XML . [1]
Сохранение цифровых ресурсов имеет первостепенное значение для депозитарных библиотек, исследовательских библиотек, архивов, правительственных учреждений и фактически большинства организаций. [1] Доминирующим подходом к цифровому сохранению является миграция. Миграция подразумевает проведение периодических преобразований архивированной информации в новые логические форматы по мере того, как их собственные форматы или программное обеспечение или оборудование, от которых они зависят, устаревают. Заметная опасность миграции заключается в потере данных и возможной потере исходной функциональности или «внешнего вида» исходного формата. Кроме того, цифровая миграция занимает много времени и стоит дорого, поскольку процесс требует преобразования формата каждого документа, а также копирования преобразованных потоков битов на новые носители по мере необходимости.
Джефф Ротенберг вызвал небольшой переполох в организациях, заинтересованных и ответственных за цифровое сохранение, своим докладом в 1999 году: «Избегание технологических зыбучих песков: поиск жизнеспособной технической основы для цифрового сохранения». Он утверждает, что не существует жизнеспособных решений, которые бы гарантировали, что цифровая информация будет читаемой в будущем. Предлагаемые решения, основанные на стандартах и миграциях, считаются трудоемкими и в конечном итоге неспособными сохранить цифровые документы в их первоначальном виде. Он предлагает:
«Идеальный подход должен обеспечивать единое, расширяемое, долгосрочное решение, которое может быть разработано раз и навсегда и применяться единообразно, автоматически и синхронно (например, при каждом будущем цикле обновления) ко всем типам документов и всем носителям с минимальным вмешательством человека».
Он предполагает, что наилучшим способом удовлетворения вышеуказанных критериев является эмуляция путем: разработки эмулятора, который будет работать на неизвестных будущих компьютерах; разработки методов сбора метаданных, необходимых для поиска, доступа и воссоздания документа; разработки методов инкапсуляции документов, их сопутствующих метаданных, программного обеспечения и спецификаций эмулятора.
В 2000 году он предлагает реализовать подход сохранения на основе эмуляции, в котором спецификации эмулятора выражаются в виде программ и интерпретируются программой-интерпретатором спецификаций эмулятора, написанной для виртуальной машины эмуляции.
Подход Ротенберга был встречен скептически и сочтен слишком сложным в техническом плане, слишком дорогим и требующим слишком много времени, а следовательно, экономически рискованным (без поддержки эмпирических данных). (См. раздел «Дополнительная литература»).
Рэймонд А. Лори, работая в исследовательском центре IBM в Альмадене, инициировал разработку решения на основе UVC для долгосрочного цифрового хранения . [2] Он описывает этот подход как «универсальный», поскольку его определение настолько простое, что оно будет существовать вечно, «виртуальный», поскольку его никогда не придется физически строить, и по своей функциональности он является «компьютером».
IBM (NL), владелец активов UVC, продолжает развивать концепцию UVC в рамках проекта PLANETS. Рэймонд ван Диссен отвечает за расширение применения концепции UVC для сохранения более сложных объектов.
Национальная библиотека Нидерландов (Koninklijke Bibliotheek, KB) сыграла важную роль в демонстрации того, что эмуляция на основе концепции UVC является жизнеспособным вариантом для долгосрочного цифрового сохранения.
В 2000 году сторонник эмуляции Джефф Ротенберг принял участие в исследовании с KB, чтобы проверить и оценить осуществимость использования эмуляции в качестве долгосрочной стратегии сохранения. Его метод заключался в использовании программной эмуляции для воспроизведения поведения устаревших вычислительных платформ на новых платформах, предлагая способ запуска оригинального программного обеспечения цифрового документа в далеком будущем, тем самым воссоздавая содержание, поведение и «внешний вид» оригинального документа. [3] Ротенберга критиковали за попытку сохранить не то, что он предлагал эмулировать поведение старых аппаратных платформ и операционных систем для доступа к исходным данным через исходную программу, связанную с ними. Рэймонд А. Лори осознал трудности в попытке создать программу для эмуляции «реальной» машины на будущей платформе и понял, что этот подход был излишним для цели сохранения цифровых объектов. Вместо этого он представил новый подход архивирования данных/программ с использованием «универсального виртуального компьютера». [2] Концепция стратегии сохранения на основе UVC была реализована KB и протестирована на файлах PDF в рамках исследования KB/IBM «Долгосрочное сохранение» (LTP). [4] Создание UVC для документов PDF является более сложным. Вместо этого KB решила разработать UVC для изображений, поскольку этот подход также охватывал бы документы PDF (файл PDF можно легко преобразовать в серию изображений). Подход на основе UVC привел к тому, что UVC стал одним из постоянных инструментов доступа к изображениям JPEG/GIF87 в подсистеме сохранения e-Depot KB. [5] После успешной реализации UVC KB продолжила разрабатывать свою стратегию эмуляции для долгосрочного цифрового сохранения, сосредоточившись на «полной» или аппаратной эмуляции. Этот подход предоставил надежный компьютерный эмулятор на основе компонентов x86: Dioscuri, первый модульный эмулятор для цифрового сохранения. [6]
Универсальный виртуальный компьютер является частью более широкой концепции, называемой методом сохранения на основе UVC. Этот метод позволяет восстанавливать цифровые объекты (такие как текстовые документы, электронные таблицы, изображения, звуковые волны и т. д.) в их первоначальном виде в любое время в будущем. Методы представляют собой программы, написанные на машинном языке универсального виртуального компьютера (UVC). UVC полностью независим от архитектуры компьютера, на котором он работает.
Сам UVC — это программа, которая содержит набор инструкций, а не физический компьютер. Он будет работать как программное приложение на будущей платформе. Поскольку в настоящее время мы не знаем, какое оборудование будет доступно в будущем, UVC должен быть создан в то время, когда мы хотим получить доступ к определенному документу из репозитория. Затем этот UVC формирует платформу, на которой могут работать программы, специально написанные для такого UVC в прошлом. Создать программу эмуляции для UVC в будущем гораздо проще, чем пытаться эмулировать «реальную» машину.
Метод стратегии сохранения на основе UVC различает архивирование данных, которое не требует полной эмуляции, и программное архивирование, которое требует. Для архивирования данных UVC используется для архивирования методов, которые интерпретируют поток сохраненных данных. [2] Методы представляют собой программы, написанные на машинном языке универсального виртуального компьютера (UVC). Программа UVC полностью независима от архитектуры компьютера, на котором она работает.
Архивация данных восстанавливает «внешний вид и ощущение» исходного файла, но не функциональность исходного формата. Если электронная форма документа используется только для компактного хранения или если то, как документ выглядит для человеческого глаза, — это все, что есть, то достаточно архивировать документ как изображение. Если требуются дополнительные функции, такие как поиск текста, то хранения только изображения недостаточно. В этом случае текст также необходимо архивировать вместе с изображением документа. Восстановив исходный вид файла как изображение, будущий пользователь может увидеть, как выглядит исходный файл по макету страницы, стилю, шрифту и т. д. Сам текст необходимо экспортировать, т. е. в формате ASCII , и его можно сохранить как последовательность однородных элементов (все атрибуты представления, такие как шрифт, размер и т. д., одинаковы для всех символов), поскольку изображение страницы показывает точный вид страницы. В этом случае программа UVC данных состоит из двух частей: одна для декодирования текста и одна для декодирования изображения.
Что это влечет за собой
Данные, содержащиеся в потоке битов, хранятся с внутренним представлением, извлеченным из потока данных, логических элементов данных, которые подчиняются определенной схеме в определенной модели данных. Алгоритм (метод) декодирования извлекает различные элементы данных из внутреннего представления и возвращает их помеченными в соответствии со схемой. Дополнительная схема (схема для чтения схем) с информацией о схеме аналогичным образом хранится с данными вместе с методом декодирования схемы для чтения схем.
Логическая модель данных сохраняется простой, чтобы минимизировать объем описания, сопровождающего данные, и уменьшить сложность понимания структуры данных. Модель данных, выбранная для метода сохранения на основе UVC, линеаризует элементы данных в иерархию тегированных элементов, организованных с использованием подхода, подобного XML. Тегированные элементы данных извлекаются из потока данных цифрового файла. Тег указывает роль, которую элемент данных играет в структуре данных. Теги элементов содержат конкретную информацию о содержании данных технологически независимым образом. Кроме того, элементы данных, тегированные в соответствии со схемой, возвращаются клиенту в логическом представлении данных (LDV)
Пример логического представления данных
<Коллекция><пейзаж><имя> сахарная голова<категория> горы<картинка><год> 1916<количество_строк> 1500<точек_на_строку> 2100<строка> ...
Требуется больше информации о различных элементах данных, чтобы по-человечески понять, что означает каждый элемент, такая информация, как место тегов в иерархии, тип данных (числовые, символьные), вместе с некоторой информацией о семантике данных. Например, изображение имеет два атрибута, ширину и высоту, что указывает на то, что ширина умножается на высоту пикселей; но хранятся ли эти пиксели построчно или по столбцам? Или, для цветных изображений, как интерпретировать значения RGB, чтобы воссоздать правильный цвет? Эта дополнительная информация также называется метаданными. Схема явно зависит от приложения, поскольку она описывает структуру и значение тегов как частей определенного типа информации.
Если в будущем пользователь получит помеченные элементы данных, он/она, как правило, не поймет значение данных и взаимосвязей между ними, и будущему пользователю понадобится дополнительная информация о логической структуре. Другими словами, необходима схема для чтения схемы метаданных. Простым решением, принятым для подхода UVC, является метод для схемы, аналогичный методу для данных: информация схемы хранится во внутреннем представлении и сопровождается методом ее декодирования.
На этом этапе в архив будут включены: сами данные, метаданные, программа UVC для декодирования данных и программа UVC для декодирования метаданных.
Метод UVC для архивирования данных может быть расширен для архивирования программ. Архивирование программ включает архивирование поведения и функциональности программы и может также включать архивирование операционной системы . Архивирование операционной системы может не потребоваться, если программа представляет собой только ряд собственных инструкций операционной системы. Однако операционная система должна быть архивирована, если цифровой объект представляет собой полноценную систему с взаимодействиями ввода/вывода .
Если не требуется никаких взаимодействий ввода/вывода, достаточно архивировать программу операционной системы. В этом случае, используя аналогичный метод, описанный выше, необходимо сохранить следующее во время архивации:
В будущем UVC интерпретирует код UVC, что даст тот же результат, что и исходная программа, работающая в исходной операционной системе.
Когда задействованы взаимодействия ввода/вывода, все становится сложнее, поскольку необходимо архивировать дополнительную программу UVC, которая имитирует работу процессора устройства ввода/вывода. Эта программа UVC создаст структуру данных ввода/вывода.
В будущем необходимо будет записать отображение структуры данных на фактическое устройство.
Метод UVC заменяет потребность во множестве стандартов (по одному для каждого формата) единым стандартом по методу UVC. Этот стандарт должен охватывать: функциональные спецификации UVC, интерфейс для вызова методов, модель для схемы и для схемы для чтения схем
Основная идея сохранения на основе UVC заключается в том, что цифровые объекты, сохраненные в архиве, могут быть восстановлены в любое время в будущем без потери смысла этого объекта. Архитектура UVC зависит от характеристик реального существующего компьютера . Она содержит память, регистры и набор низкоуровневых инструкций. Архитектура отличается от «реального» компьютера тем, что ее никогда не нужно физически реализовывать. Следовательно, нет никаких фактических физических затрат. Основным элементом UVC является ее сегментная память. Она использует сегменты памяти для хранения отдельных частей данных. Эта сегментная конструкция предотвращает случайную перезапись выделенной памяти другими приложениями, поскольку она не разделяет свое пространство памяти. [7]
Вместе с исходными данными можно восстановить значение каждого конкретного цифрового объекта. UVC можно рассматривать как сердце системы. Подобно Java Virtual Machine и Common Language Runtime , UVC на самом деле является эмулятором , который позволяет программе работать на виртуальных экземплярах необходимого, обычно устаревшего, оборудования, и будет продолжать эмулировать необходимое оборудование по мере развития технологий. Поскольку в настоящее время мы не знаем, какое оборудование будет доступно в будущем, UVC должен быть создан в то время, когда мы хотим получить доступ к определенному документу из репозитория. UVC формирует платформу, на которой могут работать программы, специально написанные для UVC.
Во время архивирования (в настоящем) и во время извлечения (в будущем) необходимо предпринять различные шаги.
Шаг 1 — Определите подходящую логическую схему для данного приложения.
Шаг 2 — Выберите внутреннее представление и свяжите с данными UVC-программу P. Это часть обычного проектирования приложения.
Шаг 3 – Напишите UVC-программу для интерпретации данных
Шаг 4 - Архивируйте информацию о схеме, сохраняя внутреннее представление информации о схеме в потоке битов вместе с программой UVC Q для ее декодирования. Поскольку структура схемы одинакова для всех приложений, схема для чтения схем выбирается раз и навсегда.
Шаг 1 - Создание эмулятора на текущей платформе. Благодаря простоте концепции UVC, опытным разработчикам программного обеспечения довольно легко создать эмулятор UVC для конкретной платформы того времени
Шаг 2 - Разработать Logical Data Viewer (программу восстановления для восстановления данных). Это прикладная программа, которая считывает объектный код UVC и поток битов и вызывает эмулятор для выполнения программы UVC, т.е. программа управляет UVC и всем взаимодействием ввода/вывода между ним.
Шаг 3 - Напишите программу восстановления для восстановления схемы. Поскольку логическое представление для информации схемы фиксировано, одна программа восстановления может фактически поддерживать все приложения. Если будущий клиент уже знает логическое представление для восстанавливаемых документов, то схема не обязательно нуждается в извлечении. Более того, схему нужно запросить только один раз для коллекции документов одного типа
Конвенция UVC включает в себя элементы информации, которые необходимо архивировать сегодня и сохранять на неопределенный срок, чтобы обеспечить возможность извлечения цифровых объектов в будущем. В конвенцию включены:
Конвенция должна быть «начертана в камне». Она может быть сохранена в цифровом виде, на бумаге и/или на микрографических носителях.
Консервация на основе УФС как центральная идея метода консервации на основе УФС основана на четырех различных компонентах. Это:
Рис. 2 UVC и его компоненты
Программа UVC декодирует формат файла цифрового объекта. Эта программа декодирования формата работает на UVC, который является платформенно-независимым слоем, независимым от будущих аппаратных и программных изменений. Выполнение декодера формата доставляет теги элементов. Эти элементы создают логическое представление данных (LDV) данных, которое очень похоже на XML. LDV является инстанциацией LDS, описывающей структуру и значение тегов как частей определенного типа информации.
Все эти компоненты контролируются Logical Data Viewer, который просто называется viewer. Для реконструкции viewer запускает UVC и передает данные цифрового объекта в декодер формата, работающий поверх UVC. В ответ он извлекает LDV и реконструирует определенное представление значения исходного объекта.
Архитектура опирается на концепции, которые существовали с начала компьютерной эры: память, регистры и базовые инструкции без вторичных функций, часто вводимых для повышения производительности выполнения. Производительность имеет второстепенное значение, поскольку программы UVC запускаются в основном для восстановления данных, а не для работы с ними.
Скорость также не является реальной проблемой, поскольку будущие машины будут намного быстрее, и эмуляция UVC на будущей машине, следовательно, будет работать намного быстрее. Более того, гибкость UVC важнее скорости выполнения. Тем не менее, производительность всегда можно улучшить.
UVC для архивирования данных, т.е. архивирования статических файлов, доказано работает в операционной среде цифрового архивирования. UVC является одним из постоянных инструментов доступа к изображениям в KB.
UVC успешно восстанавливает цифровые объекты в их первоначальном виде. Приложение простое, поскольку для изображений не требуется никакой функциональности. Подход к разработке UVC для изображений JPEG оправдан, поскольку большинство форматов можно преобразовать в этот формат. Например, документ PDF может быть отображен как серия изображений JPEG, тем самым сохраняя «внешний вид» исходного цифрового объекта, но жертвуя функциональностью. Кроме того, приложение для изображений JPEG можно легко адаптировать для эмуляции изображений TIFF, внеся небольшую корректировку в логическую схему данных.
Подход может быть применен и ко всем другим объектам, которые не содержат поведенческих аспектов. Например, интерпретаторы были написаны (частично) для Excel, Lotus 1-2-3 и PDF. Однако эти приложения обрабатывают только статические особенности форматов.
Эмуляция на основе UVC использует UVC как универсальную платформу, на которой может быть построен независимый от платформы эмулятор. UVC (программное обеспечение) воссоздает простой компьютер общего назначения и может быть легко реализовано на любой компьютерной платформе сейчас и в будущем. С этой стратегией будущие пользователи всегда должны иметь возможность доступа и просмотра исходного объекта. Официальная спецификация UVC должна быть сохранена во время сохранения. Также должны быть разработаны декодеры для каждого конкретного формата файла, и LSD требуется для каждого типа цифрового объекта, определяя типы объектов по изображению, звуку, электронной таблице, тексту и т. д. И, конечно, исходные объекты также должны быть сохранены. [8]
Как упоминалось ранее, подход на основе UVC был эффективно реализован только для статических файлов. Технология продолжает разрабатываться Raymond van Diessen (IBM) для включения динамических объектов путем использования коммуникационного средства между программой UVC и будущим приложением. [9]
Другими подходами эмуляции являются стековая эмуляция, миграционная эмуляция и эмуляция виртуальной машины (VM).
Стекированная эмуляция
Стековая эмуляция — это зависящая от платформы эмуляция, которая требует, со временем, нескольких эмуляторов, работающих друг на друге, чтобы реконструировать историческую платформу. Это обеспечивает лучшую производительность и функциональность, но несовместимость между платформами. Этот подход можно найти в основном в игровой индустрии.
Перенесенная эмуляция
Перенесенная эмуляция подразумевает создание эмулятора, зависящего от платформы, который должен быть перенесен (адаптирован) на последующие новые хосты. Когда конкретная операционная система, на которой создан эмулятор, устаревает, эмулятор транслируется для работы на новой текущей платформе. Этот подход является стратегией с высокими рисками
Эмуляция виртуальной машины (EVM)
EVM был представлен Джеффом Ротенбергом в 1999 году и включает введение дополнительного слоя между хост-платформой и эмулятором и считается независимым от платформы и времени. Этот подход использует виртуальную машину и интерпретатор спецификации эмулятора. Говорят, что он не зависит от платформы и времени. Он довольно сложен, поскольку спецификация эмуляции должна быть написана для компьютерной платформы, на которой работает исходное программное обеспечение. Затем спецификация интерпретируется интерпретатором спецификации эмуляции, который создает эмулятор для старой платформы. И интерпретатор, и созданный эмулятор работают на EVM.
Вопросы авторского права при таком подходе, как ожидается, не будут отличаться от вопросов при любом другом подходе.
Если на формат существуют права интеллектуальной собственности, этот вопрос должен быть обсужден с владельцами формата. Аналогично, для приложений «UVC-enable» требуется исходный код от разработчика и, следовательно, разрешение от владельца. Наконец, для эмуляции оборудования требуются все соответствующие лицензии на программное обеспечение, работающее в системе.
{{citation}}
: CS1 maint: несколько имен: список авторов ( ссылка )