Технология 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 в программных продуктах и документах дает ряд значительных преимуществ:
- Возможность создания составных документов, объединяющих данные из разных приложений. Например, в текстовый документ можно внедрить таблицу MS Excel или изображение, отредактированное в графическом редакторе.
- Удобство визуального редактирования объектов благодаря технологиям "drag and drop" и активации на месте (in-place activation). Пользователь может непосредственно в контексте документа-контейнера изменять внедренный объект при помощи инструментов того приложения, в котором этот объект был создан.
- Возможность интеграции мультимедийного контента (текст, изображения, аудио, видео) в веб-страницы и офисные документы. Это открывает широкие перспективы для веб-разработчиков и создателей электронных курсов.
Кроме того, использование готовых 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 - классический сценарий применения этой технологии в офисных пакетах.
- С помощью макросов VBA получаем доступ к объектным моделям Word и Excel
- Создаем таблицу в Excel и заполняем ее данными
- Вызываем метод Range.Copy, чтобы поместить таблицу в буфер обмена
- В приложении Word вызываем команду "Вставить" для внедрения таблицы на страницу документа
В результате пользователь может работать с таблицей Excel прямо в контексте Word с помощью привычных инструментов.
Перспективы применения OLE
Среди перспективных сценариев применения технологии OLE можно отметить интеграцию данных из различных бизнес-систем в единое окно для аналитики. Например, с помощью OLE отчет из 1С может demonstration внедряться в файл Excel, дополняясь данными из CRM и BI-платформ.
Еще одним многообещающим направлением являются веб-приложения с внедрением мультимедийного контента и интерактивной 3D-графики. Здесь OLE открывает новые возможности для разработчиков.