Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Документ как система представлений.
Арлазаров ёв Д. В.
Аннотация: В работе предлагается подход к организации документа, позволяющей производить одновременное его редактирование несколькими пользователями. Кроме того, появляется возможность подготавливать различные "представления" документов для различных пользователей в соответствии с заданиями, которые им были назначены в связи с этим документом. Приводится анализ ряда других подходов к этой проблеме.
Введение.
За почти полвека существования компьютеров понятие "документ" изменилось кардинальным образом. Фактически рост требований к емкости дисков ПК в значительной степени обусловлен эволюцией документов, Структура которых теперь куда сложнее и разнообразнее прежних. В результате этой эволюции задачи управления данными становятся все труднее.
Управление документами выходит за рамки просто их чтения и редактирования. Одна из его целей - обеспечение возможности работы группы людей над проектом, то есть обеспечение просмотра (часто в реальном времени) и совместного использования фрагментов общих информационных ресурсов компании.
Не простой задачей является и применение в документе внедренных объектов (таких как данные, чертежи и изображения), когда необходимо модифицировать подобные объекты в одних проектах и оставлять без изменений в других.
Документ представляет собой "снимок" данных, фиксирующий их состояние в какой-то момент времени. Управление документами - это процесс отслеживания такой информации, обеспечивающий, например, наличие только одной оригинальной копии документа и хранение архивных копий всех его прежних версий в порядке их появления.
Управление документами в системе документооборота делится на две большие части. Первая связана с движением документа в системе. А вторая – с работой над самим документом.
Решение второй задачи является темой данной статьи.
Проблематика.
Работа над документом очень широкое понятие. Это может быть сканирование и распознавание бумажных документов, обычное редактирование электронного документа с помощью программы редактирования и тому подобное. Мы будем рассматривать вопросы одновременной работы нескольких авторов над одним документом.
Такая задача возникает в различных организациях. Документ часто рассылается множеству людей, причём некоторым он посылается для ознакомления, а некоторым на исполнение. Зачастую, целый документ никому не нужен. Каждый хотел бы работать только с касающейся его информацией. Кроме того, некоторые части документа могут быть закрыты от ряда пользователей из соображений секретности. При этом бывает, что многие люди хотят работать с различными частями документа, а бывает, что с одной и той же частью. Отсюда видно, что документ как бы распадается на «кусочки», из которых удобно собирать различные представления для разных пользователей. При этом для каждого пользователя можно сделать свой взгляд на документ.
Далее будут рассмотрены две базовых модели работы с документами. Одна из них – это самый распространенный редактор текстов Word фирмы Microsoft, который первоначально не предназначался для работы с документами в том виде, который рассматривается в этой статье, но в последних версиях стало очевидно движение в этом направлении. А вторая – это модель, в которой работа с документами является одним из базовых элементов. Тем самым мы хотим обозначить место предлагаемой модели, лежащей между моделями, делающими акцент на работу с содержимым документа и моделями, рассматривающими документ, как объект, состоящий из «частей», каждая из которых является «чёрным ящиком» и структура которых в этих моделях не рассматривается.
Упомянём о проектах, основанные на модели PALIMPSEST [1], в частности, проект стандарта по работе с документами в INTERNET WebDAV, в которых есть элементы, необходимые для создания систем такого типа, о которых мы говорим, но центр тяжести модели лежит в другой области. Акцент в этих работах сделан на то, как получить связанный текст на основе изменений, сделанных пользователем.
Анализ некоторых существующих моделей.
Рассмотрим две известных модели организации документа: MSWord 2000 и DMA 1.0. Мы не будем углубляться в тонкости этих моделей, с ними можно ознакомиться в статью Плискина[2].
DMA 1.0.
В этой модели в качестве документа выступает объект версии документа (document version object). Предполагается, что это объект состоит из представлений (rendition). Представления – это содержимое документа в различных форматах. Например, одно представление могло бы содержать информацию и файловые компоненты для редактирования документа в Word, а другое быть ПостСкрипт файлом для печати. Представление состоит из компонент содержимого (content element). Компоненты бывают хранимыми внутри документа (например, копия файла) и вне документа (например, ссылка на файл).
Модель версий DMA 1.0 определяет фундаментальные операции управления версиями документов. DMA 1.0 поддерживает линейную конфигурацию версий: различные версии поддерживаются в виде последовательной цепочки версий, среди которых одна версия считается «текущей».
Модель предполагает, что документ представляется как набор развивающихся версий. Каждая версия представляет собой состояние документа в некоторый момент времени. При этом имеется не более одной актуальной версии, представляющей текущее состояние документа. С этой точки зрения версии представляют, возможно, незавершённую хронологию состояний документа.
Модель управления версиями DMA 1.0 основана на идее независимости от характера отличий между версиями. При возврате документа клиентом новая версия просто добавляется в цепочку версий. Модель DMA 1.0 не содержит предположений о «похожести» новой версии на другие версии в цепочке.
В момент выдачи документа клиенту (check-out) или позднее, вплоть до возврата документа клиентом (check-in), клиент может «зарезервировать» право создать новую версию в цепочке версий. Затем он формирует рабочую версию. В момент возврата документа клиентом рабочая версия будет добавлена в конец цепочки версий.
Рассмотренная модель не позволяет создать разные представления документа для разных пользователей. Пользователи могут смотреть только полные версии документа. Нельзя сделать так, чтобы каждый пользователь видел нужную только ему информацию, но при этом версия не теряла своей целостности. Кроме того, не поддерживаются ни составные документы, ни версии компонент документа в рамках фиксированной версии документа. Создание новой версии компоненты документа возможно лишь при создании новой версии документа. Документ в модели DMA 1.0 является единственным концептуальным объектом, способным обладать несколькими версиями.
MS Word 2000.
Рассматривая эту модель, мы не будем касаться различных тонкостей, помогающих работать с документом, но принципиально не определяющих его структуру. Имеются в виду такие возможности для коллективного рецензирования документа, как примечания, исправления и дискуссии. Нас, прежде всего, будет интересовать концепция составных документов, позволяющая нескольким авторам одновременно работать над различными разделами документа.
Составной документ включает «главный документ» и «поддокументы», отвечающие разделам документа. Поддокументы хранятся в отдельных файлах, но при загрузке или печати главного документа MS Word 2000 автоматически загружает либо, соответственно, печатает все поддокументы.
Любой документ можно назначить главным документом, а его разделы выделить в поддокументы. Можно также добавить существующие документы к главному документу в качестве поддокументов. В главном документе в режиме структуры можно добавлять, удалять, объединять, расщеплять, переименовывать и переставлять поддокументы. Можно создать оглавление, индекс, таблицу перекрестных ссылок, а также колонтитулы для всех поддокументов. Шаблон главного документа применяется ко всем поддокументам, так что весь документ получает единое оформление.
Поддокументы хранятся в отдельных файлах и являются полноценными документами MS Word 2000: их можно защитить паролем, разбить на под-поддокументы и т. д. MS Word 2000 неявно управляет названием и размещением поддокументов в файловой системе исходя из текста заголовков и размещения главного документа. Авторы поддокументов могут создавать их одновременно.
К недостаткам системы документов и поддокументов можно отнести ненадёжность связей между главным документом и поддокументами, основанных на именовании и местоположении файлов. Также, нельзя создать разные представления документа для разных пользователей. То есть пользователи могут смотреть только версию всего документа, либо только свой поддокумент. Нет возможности указать регулярным образом, с какими ещё поддокументами данный пользователь должен ознакомиться.
Постановка задачи.
Данная статья представляет систему, которая имеет ряд новых элементов, позволяющих решить вышеописанные проблемы. Прежде всего, это возможность конфигурировать своё представление документа для каждого пользователя и гибкая система создания версий документа.
Основные понятия.
Фрагмент – это единица хранения и отображения документа. Примеры: текст, графический объект, форма, файл и т. п. Фрагмент состоит из описателя (автор, время создания, права доступа и т. п.) и содержимого. При этом содержимым может быть ссылка на другой объект (в том числе и фрагмент). Фрагмент создаётся одним пользователем, им же подписывается и фиксируется и, после этого, он больше не может быть изменён. Если фрагмент является версией другого фрагмента, то он хранит ссылку на родителя.
Документ - это множество фрагментов. Пользователю, работающему с документом, некоторые фрагменты могут быть не доступны. В документе хранятся цепочки ссылок на фрагменты. При этом в одной цепочке может участвовать только одна версия фрагмента. Эти цепочки будем называть версиями документов.
Связь между фрагментами – это объект модели, задающий порядок навигации по фрагментам. Первый вид связи – это связи между версиями фрагментов. Второй – связи между фрагментами, образующие версию документа.

Представление фрагмента – это фрагмент, имеющий связь с родительским фрагментом. В представлениях фрагмента хранится содержимое фрагмента, представленное в различных форматах. Например, в формате MS Word, PDF, графическом и тому подобное.
Представление документа – набор фрагментов из версии документа, связанный с пользователем или классом пользователей, для которых предназначено это представление.

Работа с документом.
Итак, документ состоит из отдельных и независимых частей – фрагментов. Предположим, пользователь получил документ и ему требуется дополнить его. Он может сделать это двумя способами:
1. Создать новый фрагмент;
2. Создать версию существующего фрагмента.
В первом случае пользователь получит фрагмент в полное своё распоряжение. Он может его редактировать, уничтожать. Никто об этом не узнает до тех пор, пока этот фрагмент не будет зафиксирован. Фиксация фрагмента означает его сохранение в документе. В этот момент фрагмент автоматически подписывается (если необходимо, то электронной подписью) и вводится в структуру фрагментов документа. С этого момента этот фрагмент НИКОГДА не может быть изменён. От этого фрагмента может быть образована только его версия. То есть, если пользователь хочет исправить фрагмент, то, на самом деле, он создаёт его версию.
При создании версии существующего фрагмента, создаётся новый фрагмент и запоминается ссылка на родительский или, другими словами, создаётся объект связи между версиями. Таким образом, задаётся цепочка версий фрагмента.
Для создания версии документа создаются объекты связи между версиями фрагментов. Полученные цепочки, которые могут иметь более сложную структуру, чем линейная, и будут версиями документа. Те из них, которые образуют логически законченный документ, будем образовывать релизы.
Над версиями документов строятся представления документов, которые являются описанием визуализации версии документа. То есть составляется список фрагментов и, возможно, их положение на экране, которые будут представлены пользователю.
Сценарии работы с документом.
Будем исходить из того, что документ, находящийся в работе, имеет или, для создаваемого документа, будет иметь, достаточно сложную структуру. Это означает, что над ним работают несколько человек и не всех из них могут весь документ. Кроме того, работу над документом невозможно представить без его движения. Движение документа – это отдельная тема для рассмотрения и она лежит вне рамок данной статьи. Будем считать, что движение документа осуществляется при помощи, например, электронной почты. Рассмотрим несколько возможных сценариев работы:
· Создание нового документа. Ответственный за документ формирует фрагментную структуру документа, в каждом фрагменте указывает, что нужно сделать и рассылает исполнителям. При этом для каждого исполнителя формируется представление, в котором видно только то, что ему необходимо для работы. Исполнитель на основе фрагмента с заданием формирует версию фрагмента с исполненным заданием, и возвращает документ ответственному. Когда все задания исполнены, ответственный на основе получившихся версий фрагментов формирует версию документа.
· Работа над существующим документом. Ответственный формирует представления для исполнителей, формулирует задания и рассылает исполнителям. Далее всё происходит как в первом случае.
· Визирование. Ответственный рассылает документ всем, кто его должен завизировать. Каждый из визирующих создаёт специальный фрагмент – виза. Когда все визы собраны, документ считается завизированным.
Преимущества, предоставляемые предлагаемым подходом к документу.
1. Для каждого пользователя может быть сформировано своё представление документа. Конечно, можно увидеть и остальные фрагменты документа, с учётом прав доступа, но обычно исполнителю требуется видеть не весь (возможно, большой) документ, а только то, что его касается.
2. Разбиение на независимые (в смысле редактирования) фрагменты позволяет одновременно работать с документом любому количеству пользователей. Для пользователя, желающего поправить фрагмент, создаётся новая версия этого фрагмента. При этом он может даже не знать о таких тонкостях технологии, так как для него всё будет выглядеть так, будто он исправляет документ «по живому». Более того, документ можно забрать из хранилища (check out). При этом все остальные могут спокойно работать с ним. Когда понадобиться вернуть документ обратно в хранилище (check in), специальная программа добавит к документу в хранилище вновь созданные фрагменты и версии фрагментов.
3. В описателе фрагмента хранится различная информация о нём. В том числе это может быть информация о пользователе, который создал фрагмент, дата создания, данные о среде, где этот фрагмент создан (например, имя компьютера, адрес его сетевой карты и так далее). Занесение этой информации производится автоматически и зависит от настроек системы. Фрагменты документа никогда не уничтожаются, поэтому всегда есть возможность получить всю информацию об истории создания и изменения документа.
4. Поскольку фрагмент более компактная и однородная сущность, чем документ, то легче организовать не хранение целиком всего содержимого всех версий фрагмента, а запоминание только изменений от одной версии к другой (подобно хранению версий документа в Microsoft Word).
5. Механизм фрагментов и представлений позволяет оптимизировать работу с документом в сети, так как требуется передавать по сети не весь документ, а только фрагменты, входящие в представление. Остальные фрагменты подкачиваются по мере надобности.
6. Данная схема позволяет добиться высокой степени защищённости документа, так как по сети передаются только те фрагменты, которые ему доступны по уровню секретности. При этом данные фрагменты могут быть дополнительно защищены с помощью шифрования и электронной подписи.
Конфиденциальность.
Предполагается, что вся защита строится на уровне фрагмента. Предусматривается защита двух уровней: уровень прав пользователя и уровень шифрования.
При каждом фрагменте хранится его авторизационный лист. То есть, при обращении пользователя к фрагменту, проверяются его права и, в зависимости от этого, ему либо разрешается, либо запрещается просмотр фрагмента.
Заключение.
Ещё раз хотелось бы подчеркнуть главные достоинства предложенной схемы:
1. Представления документа, которые позволяют иметь каждому пользователю свой «взгляд» не только на документ, но, что отличает нашу модель от других, на любую версию документа.
2. Постоянное хранение подписанных фрагментов позволяет вести историю работы с документом.
Литература.
1. David G. Durand, «Palimpsest, a Data Model for Revision Control». Proceedings of the CSCW '94 Workshop on Collaborative Hypermedia Systems, Chapel Hill, North Carolina, USA. GMD Studien Nr. 239. Gesellschaft fџr Mathematik und Datenverarbeitung MBH 1994. Available via anonymous FTP at ftp. darmstadt. gmd. de within the file /pub/wibas/CSCW94/workshop-proc. ps. Z
2. , «Управление версиями в системах коллективного создания документов»// Сборник трудов ИСА РАН «Развитие безбумажной технологии в организационных системах»/Под редакцией и М.: Эдиториал УРСС, 1999. С. 214-251.
3. «UML в кратком изложении. Применение стандартного языка объектного моделирования»: Пер. с англ. – М.: Мир,1999.


