Технология OLE (Object Linking and Embedding): описание, возможности

Технология OLE (Object Linking and Embedding) позволяет интегрировать в документы различные типы данных. Эта технология открывает широкие возможности для создания мультимедийного контента.

История создания и основные понятия OLE

Технология OLE берет свое начало от более ранней разработки Microsoft - Dynamic Data Exchange (DDE). В отличие от DDE, которая позволяла осуществлять простой обмен данными между приложениями, OLE поддерживала активные соединения между документами и даже внедрение одного документа в другой.

Первая версия OLE 1.0 была выпущена корпорацией Майкрософт в 1990 году. Уже в OLE 1.0 появились базовые возможности, которые и сегодня являются основополагающими для этой технологии:

  • Связывание (linking) объектов
  • Внедрение (embedding) объектов
  • Поддержка составных документов (compound documents)

В дальнейшем на базе OLE 1.0 была разработана более продвинутая версия OLE 2.0, использующая компонентную объектную модель (COM).

Преимущества использования OLE

Использование технологии OLE в программных продуктах и документах дает ряд значительных преимуществ:

  1. Возможность создания составных документов, объединяющих данные из разных приложений. Например, в текстовый документ можно внедрить таблицу MS Excel или изображение, отредактированное в графическом редакторе.
  2. Удобство визуального редактирования объектов благодаря технологиям "drag and drop" и активации на месте (in-place activation). Пользователь может непосредственно в контексте документа-контейнера изменять внедренный объект при помощи инструментов того приложения, в котором этот объект был создан.
  3. Возможность интеграции мультимедийного контента (текст, изображения, аудио, видео) в веб-страницы и офисные документы. Это открывает широкие перспективы для веб-разработчиков и создателей электронных курсов.

Кроме того, использование готовых COM-объектов в рамках технологии OLE позволяет повысить производительность разработки за счет модульности и многократного использования кода.

Сравнение связывания и внедрения в OLE

В технологии OLE реализованы два основных механизма работы с объектами, созданными во внешних приложениях:

  • Связывание (linking) - объект хранится в отдельном файле, а в документе-контейнере создается лишь ссылка на него. Изменение оригинала объекта автоматически приводит к обновлению его отображения во всех документах, в которые он внедрен.
  • Внедрение (embedding) - объект физически встраивается в структуру документа-контейнера. При этом сохраняется связь с программой, в которой объект был создан.

Ключевое отличие двух подходов заключается в том, что внедренные объекты могут редактироваться непосредственно в контексте документа (технология "in place activation"), а связанные – нет.

В целом, можно дать следующие рекомендации по выбору типа внедрения:

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

Таким образом, оба механизма имеют свои преимущества в зависимости от решаемых задач. Разработчик может гибко выбрать нужный подход, опираясь на эти рекомендации.

Работа технологии OLE

Для реализации описанных выше возможностей в основе технологии OLE лежит достаточно сложная архитектура. Рассмотрим ее подробнее.

Взаимодействие между OLE-серверами и OLE-клиентами осуществляется с использованием системных библиотек OLESRV.DLL и OLECLI.DLL. Они используют специальные таблицы виртуальных функций (VTBL), которые содержат указатели на методы COM-объектов.

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

Особенностью технологии OLE является также механизм активации объектов в контексте документа-контейнера (in-place activation). При этом пользователь может работать с объектами через пользовательский интерфейс той программы, где этот объект был создан.

Каковы возможности ole-технологии в веб-разработке

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

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

Каковы перспективы OLE

Несмотря на появление альтернативных технологий внедрения объектов, OLE продолжает активно применяться как в настольных, так и в веб-приложениях. Это обусловлено рядом ее преимуществ:

  • Совместимость с различными версиями MS Office
  • Возможности масштабирования на уровне предприятия с помощью DCOM и COM+
  • Интеграция со многими популярными продуктами (Visio, Project и др.)

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

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

Каковы практические рекомендации по применению OLE

При использовании технологии OLE в своих проектах разработчикам имеет смысл учитывать несколько полезных рекомендаций:

Во-первых, при разработке OLE-серверов и контейнеров имеет смысл использовать специализированные библиотеки и инструменты, такие как ATL или Visual Studio Tools for Office (VSTO). Это позволит упростить многие рутинные задачи.

Во-вторых, для отладки OLE приложений удобно использовать специальные утилиты вроде OLEVIEW или ряд инструментов из пакета OLE Tools. Они помогут быстрее разобраться с COM-объектами и их взаимосвязями.

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

Интеграция OLE с офисными приложениями

Рассмотрим пример использования OLE для интеграции данных MS Excel в текстовый документ MS Word - классический сценарий применения этой технологии в офисных пакетах.

  1. С помощью макросов VBA получаем доступ к объектным моделям Word и Excel
  2. Создаем таблицу в Excel и заполняем ее данными
  3. Вызываем метод Range.Copy, чтобы поместить таблицу в буфер обмена
  4. В приложении Word вызываем команду "Вставить" для внедрения таблицы на страницу документа

В результате пользователь может работать с таблицей Excel прямо в контексте Word с помощью привычных инструментов.

Перспективы применения OLE

Среди перспективных сценариев применения технологии OLE можно отметить интеграцию данных из различных бизнес-систем в единое окно для аналитики. Например, с помощью OLE отчет из 1С может demonstration внедряться в файл Excel, дополняясь данными из CRM и BI-платформ.

Еще одним многообещающим направлением являются веб-приложения с внедрением мультимедийного контента и интерактивной 3D-графики. Здесь OLE открывает новые возможности для разработчиков.

Комментарии