OLE ( англ. Object Linking and Embedding , Вимовляється як oh-lay [олей]) - технологія зв'язування та впровадження об'єктів в інші документи та об'єкти, розроблена корпорацією Майкрософт.

У 1996 році Microsoft перейменувала технологію в ActiveX.

OLE дозволяє передавати частину роботи від однієї програми редагування до іншої і повертати результати назад. Наприклад, встановлена ​​на персональному комп'ютері видавнича система може послати якийсь текст на обробку в текстовий редактор, або деяке зображення в редактор зображень за допомогою OLE-технології.

Основна перевага використання OLE (крім зменшення розміру файлу) в тому, що вона дозволяє створити головний файл, картотеку функцій, до якої звертається програма. Цей файл може оперувати даними з вихідної програми, які після обробки повертаються у вихідний документ.

OLE використовується при обробці складових документів ( англ. compound documents ), Може бути використана при передачі даних між різними непов'язаними між собою системами за допомогою інтерфейсу переносу ( англ. drag-and-drop ), А також при виконанні операцій з буфером обміну. Ідея впровадження широко використовується при роботі з мультимедійним змістом на веб-сторінках (приклад - Веб-ТБ), де використовується передача зображення, звуку, відео, анімації в сторінках HTML (мова гіпертекстової розмітки) або в інших файлах, також використовують текстову розмітку (наприклад, XML і SGML). Однак, технологія OLE використовує архітектуру "товстого клієнта", тобто мережевий ПК із надлишковими обчислювальними ресурсами. Це означає, що тип файлу або програма, яку намагаються впровадити, повинна бути присутнім на машині клієнта. Наприклад, якщо OLE оперує таблицями Microsoft Excel, то програма Excel повинна бути інстальована на машині користувача.


1. Технологія

1.1. OLE 1. *

OLE 1.0 був випущений в 1990 році на основі технології DDE (Dynamic Data Exchange), що використовувався в більш ранніх версіях операційної системи Microsoft Windows. У той час як технологія DDE була сильно обмежена в кількості і методах передачі даних між двома працюючими програмами, OLE мав можливість оперувати активними з'єднаннями між двома документами або навіть впровадити документ одного типу в документ іншого типу.

OLE сервера і клієнти взаємодіють із системними бібліотеками за допомогою таблиць віртуальних функцій ( англ. virtual function tables , VTBL). Ці таблиці містять покажчики на функції, які системна бібліотека може використовувати для взаємодії з сервером або клієнтом. Бібліотеки OLESRV.DLL (на сервері) і OLECLI.DLL (на клієнті) спочатку були розроблені для взаємодії між собою за допомогою повідомлення WM_DDE_EXECUTE, наданого операційною системою.

OLE 1.1 пізніше розвинувся в архітектуру COM (component object model) для роботи з компонентами програмного забезпечення. Пізніше архітектура COM була перетворена і стала називатися DCOM.

Коли об'єкт OLE поміщений в буфер обміну інформацією, він зберігається в оригінальних форматах Windows (таких як bitmap або metafile), а також зберігається в своєму власному форматі. Власний формат дозволяє підтримуючої OLE програмі впровадити порцію іншого документа, скопійованого в буфер, і зберегти її в документі користувача.


1.2. OLE 2.0

Наступним еволюційним кроком став OLE 2.0, що зберіг ті ж цілі і завдання, що і попередня версія. Але OLE 2.0 став надбудовою над архітектурою COM замість використання VTBL. Новими особливостями стали автоматизація технології drag-and-drop, in-place activation та structured storage.

1.3. ActiveX

В 1996 Microsoft перейменувала технологію OLE 2.0 в ActiveX. Були представлені елементи управління ActiveX, ActiveX документи і технологія Active Scripting. Ця версія OLE в основному використовується веб-дизайнерами для вставки в сторінки мультимедійних даних.