Обмен данными по технологии OLE. Понятие документно-ориентированной среды

Технология OLE является частью большой технологии обмена. Кроме технологий, включающих в себя связывание и включение объектов, OLE связано с ActiveX, структурированной памяти и технологией перетаскивания объектов. Все эти технологии базируются на технологии Component Object Model, или COM.

Сама технология OLE – это набор объектов, являющихся надстройкой по отношению к объектной модели COM, которая обеспечивает связь между процессами в ходе их выполнения. Кроме того, OLE является центральной частью современной концепции документно-ориентированной среды.

Смысл этой концепции состоит в том, что при подготовке документов различных видов возникает необходимость совместного использования нескольких приложений, каждое из которых предназначено для создания какой-либо части документа.

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

В целом, работа в документно-ориентированной среде состоит в совместном использовании нескольких приложений, каждое из которых выполняет отдельные функции.

Для организации документно-ориентированной работы известны следующие технологии:

1) OLE à MS;

2) OpenDoc à OpenSource Development.

Принципы технологии OLE.

В данной технологии, понятие объекта имеет иной смысл, нежели в ООП. Здесь, объект – это совокупность данных трех видов:

1. Собственные данные в том внутреннем формате, в котором они создавались в сервере;

2. Данные для визуального представления;

3. Служебная информация о программе-сервере.

Из этих трех видов данных приложение-клиент отображает данные второго вида. Для этого приложения здесь используется термин «OLE-контейнер». Это приложение, которое может содержать объект и отображать его. Для сервера используется «OLE-сервер». OLE-сервер может создавать и редактировать объект.

Для пользователей данной технологии главным нововведением стала возможность активизации приложения, создавшего объект, из приложения-клиента, в котором объект находится. Для этого, в поле объекта выполняется элементарная операция двойного щелчка мышью, в результате которой загружается сервер, и ему передается OLE-объект. При этом возможны два метода передачи данных от сервера к клиенту:

1. Метод внедрения объекта;

Все три вида данных, то есть весь объект, копируются в составной документ, который является частью приложения клиента.

Достоинством метода является законченность файла составного документа. Все что требуется для его работы, в нем присутствует. Это важно в том случае, когда документ переносится на другую ЭВМ или ОС.

Недостаток – размер файла составного документа получается очень большим. Если в клиенте подготавливается несколько составных документов с одним и тем же объектом, то он будет скопирован в каждый из документов.

2. Метод связывания.

Документ-клиент содержит лишь данные для визуального представления, и ссылку на документ-сервер, содержащий объект. Ссылка представляет собой полный путь к объекту.

Связывание позволяет экономить место на диске. Но при переносе на другую ЭВМ документа-клиента, на этой же ЭВМ должны присутствовать все документы-серверы.

Известны две версии: OLE 1.0, OLE 2.0.

Первая технология полностью реализована средствами DDE, и обладает следующим недостатком: при активизации объекта в клиенте запускается приложение-сервер, ему передается объект для редактирования, при этом сервер запускается в отдельном окне, и при редактировании объекта в этом окне не видно окружения, содержащегося в документе-клиенте.

Во второй версии этот недостаток устранен.

Особенности OLE 2.0

1. Реализуется концепция визуального редактирования по месту размещения объекта. Приложение-сервер запускается при активизации объекта, но при этом, окно приложения-сервера не открывается, а в строку меню приложения-клиента встраиваются пункты меню приложения-сервера. Аналогичным образом изменяется и панель инструментов. Поле документа-клиента с визуальным представлением не исчезает;

2. Возможность предоставления некоторых своих функций, например, проверки орфографии для доступа из других приложений. Эта возможность называется «автоматизация OLE». Модуль, выполняющий нужную функцию, оформляется в виде объекта OLE и вставляется в другое приложение. Автоматизация OLE может использоваться не только вне границ приложений, но и вне границ языков, а в перспективе – вне границ отдельной ЭВМ. Автоматизация включает в себя серверы автоматизации и клиенты автоматизации. Сервер обеспечивает возможности, а клиент получает к ним доступ. Серверы делятся на серверы внутренней обработки и локальные серверы. Серверы внутренней обработки представляются как .dll, загружаемая в адресное пространство клиента. Локальные серверы – это автономные программы;

3. Способ хранения данных в составном документе. Составной документ представляется в виде набора мест хранения, в каждом из которых может содержаться объект, созданный сервером. При этом, приложение-клиент не имеет информации о способе хранения объекта, созданного в другом приложении. При сохранении документа во внешней памяти, клиент создает возможность для сервера сохранять свои объекты, и предоставляет для этого место хранения. При этом, в качестве способа записи объектов или данных на диск используется новый способ, называемый структурированной памятью. Он обеспечивает все возможности, существующие в стандартном файловом вводе/выводе. На диске можно создавать каталоги и подкаталоги, и сохранять в них файлы. Отличие структурированной памяти от стандартного файлового ввода/вывода состоит в том, что каждый набор каталогов и файлов в структурированной памяти размещается внутри единого большого файла, который называется составным файлом. Каталоги внутри таких файлов называются потоками. Примером использования составных файлов являются .docx файлы;

4. Внутренние средства версии, используемые для обмена данными. С точки зрения обмена данными, OLE 2.0 – это набор интерфейсов, позволяющий клиенту и серверу обмениваться данными. При этом, протокол обмена называется Uniform Data Transfer (UDT). Данный протокол представляет собой расширение протокола обмена через буфер обмена, в котором предусматриваются средства уведомления об изменении данных и форматах. При этом, отсутствуют ограничения на размер данных, то есть можно передавать как сами данные, так и ссылки на них. В средствах обмена не используется протокол DDE, основанных на передаче сообщений.

Технология обладает определенными достоинствами.

1. OLE из средства обмена данными превратилась в средство взаимодействия и хранения данных.

2. В ОС Windows эта технология является основой объектно-ориентированного пользовательского интерфейса.

3. В будущих версиях предполагается использовать сетевую технологию OLE 3.0, позволяющую клиенту и серверу находиться на разных ЭВМ.

Вместе с тем, у технологии имеются недостатки:

1. Сложность для разработчиков;

2. Некоторая несогласованность в интерфейсах разных приложений;

3. Большая потребность в аппаратных ресурсах;

4. Расхождение в понятиях объекта как объекта OLE и объекта в ООП.