Модель багатокомпонентних об'єктів. Технологія OLE.
Обмін даними між документами. Способи спільного використання даних.
Паралельна робота і обмін інформацією між WINDOWS додатками. Створення комбінованого документа.
1. Як вже говорилося, WINDOWS забезпечує можливість одновремен-ного виконання декількох програм і перемикання з однієї програм-ми на іншу. При цьому виникає задача передачі даних з одного документа в інший, спільного використання даних і т.д.
У найпростішому випадку для використання фрагмента даних з однієї програми в іншому можна скористатися найпростішим інструментом, який надає WINDOWS - Буфером обміну (Clipboard).
Для вирішення серйозних завдань WINDOWS забезпечує два основних способи спільного використання даних різними додатками: динамічний обмін даними (Dynamic Data Exchange - DDE), а також зв'язування і впровадження об'єктів (Object Linking and Embedding - OLE).
2. Д інаміческій обмін даними (DDE) є най-більш старою технологією обміну даними між додатками. Проте, підтримка DDE була збережена в Windows 98, ця технологія буде використовуватися ще досить довго.
Технологія DDE спирається на зв'язок, встановлену між фрагментами одного документа, а також між документами різних додатків. Наявність такого механізму зв'язку дозволяє автоматично актуалізувати дані в документі-приймачі при змінах в джерелі даних. DDE є модель взаємодії процесів - протокол, за допомогою якого програма може організувати канал обміну даними з DDE-сервером, що знаходяться на тій же машині. DDE - це протокол обміну повідомленнями, що дозволяє ініціювати виконання команди однієї програми з іншого. Спочатку техноло-гія DDE використовувалася для виконання операцій з документами без від-криття додатків і при роботі з Буфером обміну Windows. Макромова DDE включає в себе як команди DDE, так і команди макромови при-розкладання. Таким чином, для використання макромови DDE недостатньо вивчити внутрішній мову цікавить додатки, необхідно ще знання DDE і знання мови серверного додатка. DDE - це асинхронний протокол. Іншими словами, після встановлення зв'язку викликає сторона передає запит і чекає повернення результатів.
Макромова DDE занадто складний, - не тільки звичайні користувачі, а й багато програм-Місті вважають роботу з ним важкою. Тому, всупереч очікуванням Microsoft, технологія DDE не реалізували повною мірою всіх покладених на неї надій.
3. Низька популярність DDE змушувала Microsoft шукати різні способи його вдосконалення. Як технології вищого рівня була реалізована OLE 1.0 OLE 1 (Object Linking and Embedding - зв'язування і впровадження об'єктів). Вона розширила можливості протоколу DDE і, використовуючи його як базовий механізм комунікацій, дозволила активізувати вбудований об'єкт в документі, т. Е. Отримати складовою документ.
Визначимося з деякими термінами:
Клієнт (Client). Цим терміном називається додаток, що містить впроваджені або пов'язані об'єкти. Наприклад, якщо помістити лист електронної таблиці в документ текстового процесора, то текстовий процесор стане клієнтом. Поєднуючи клієнтську програму і складовою документ, можна побудувати додаток, кото-рої буде тільки обрамленням для іншої програми
Сервер (Server) .Сервер - це програма, яка використовується клієнт-ським додатком для роботи з конкретним об'єктом. Впроваджені або пов'язані об'єкти знаходяться в форматах того додатка, в якому вони були створені. Клієнт зобов'язаний викликати оригінальну програму (сервер) для будь-яких змін вмісту об'єкта. Насправді при ра-боті зі складеними документами одночасно використовуються два прило-вання. У разі OLE передбачається, що серверний додаток распо-покладається на тому ж комп'ютері. При впровадженні листа Excel в документ Word на комп'ютері повинні бути встановлені обидва ці додатки. При використанні технології ActiveX потреба в наявності сервер-ного додатки саме на тому ж комп'ютері відпадає (хоча його нали-чие може сильно скоротити час роботи). При розробці надбудов для Internet Information Server вся робота з об'єктом може відбуватися виключно на сервері, який буде повертати на локальний комп'ютер тільки дані, необхідні для відображення об'єкта.
Складовою документ (Compound document). Це документ, який содер-жит один або більше об'єктів (інших документів). Кожен об'єкт OLE розглядається як складової документ.
Об'єкт (Object). Об'єктом називається порція даних, яку можна переміщати з однієї програми до іншої в форматі, використовуваному в вихідному додатку. Об'єкти можна створювати на основі будь-яких дан-них, якщо використовується для цієї мети додаток підтримує OLE. Важливо відзначити, що об'єкти OLE, на відміну від звичайних даних, можуть забезпечити виконання набагато більшого числа операцій, ніж толь-ко перетягування мишею або робота з Буфером обміну WINDOWS.
Контейнер (Container) .Контейнер - це об'єкт, який містить в собі інші об'єкти. Спрощено контейнер можна уявити як папку на диску. Однак, на відміну від папки, контейнер об'єктів OLE може со-тримати не тільки файли, але і об'єкти будь-яких інших типів.
Технологія OLE спирається на зв'язок, встановлену між документом і додатком, а також на механізм, розроблений для зв'язку додатків. Наявність такого механізму дозволяє перенести в вихідний документ фрагмент або файл / документ / деякого додатка, при цьому він набуває властивостей вбудованого або пов'язаного об'єкта. Вихідний пов'язаний документ набуває при цьому властивості складеного документа, т. Е. Документа, що має вбудовані або пов'язані об'єкти різних форматів, створені іншими додатками. Однак не всі програми Windows підтримують техніку OLE. Здатні до цього додатка діляться на три групи. OLE- сервери (додатки-джерела, батьківські додатки) представляють собою додатки, з яких можна вбудовувати об'єкти або пов'язувати їх з іншими додатками; OLE-клієнти (додатки-приймачі) представляють собою додатки, які можуть розміщувати в своїх документах вбудовані ними пов'язані об'єкти з OLE-серверів. Такі документи називають складовими; додатки, які можуть виконувати роль як сервера, так і клієнта одночасно. Існують два варіанти використання OLE: встановлення зв'язку з об'єктом і впровадження (вбудовування) об'єкта. Основна відмінність між зв'язуванням і впровадженням об'єктів полягає в способі зберігання даних.
В цьому відношенні специфікація OLE 1 містила значну проблему, оскільки розташування пов'язують файлу в OLE 1 визначалося жест-кою посиланням.
По-перше, стає болісним процес оновлення кількох со-ставних документів, що містять один і той же змінений фрагмент.
По-друге, для зберігання файлу з впровадженими об'єктами потрібно набагато більше дискового простору. При створенні зв'язку розмір документа, що не-залежно від розміру об'єкта (4 КБ, 400 Кб або 4 Мб), збільшується всього на кілька десятків байт. При впровадженні об'єкта все його дані копі-ються в складовою документ, тому розмір документа значно збіль-личивается. Крім того, при впровадженні до даних об'єкта можуть бути до-Бавлени допоміжні дані, які потрібні сервера для виконан-ня операцій з цим об'єктом.
4. Єдина проблема, пов'язана з OLE, полягає в тому, що ця технологія обмежує свою дію рамками однієї локальної машини. До того ж, для вирішення деяких завдань може знадобитися більш тісний контакт додатків з апаратурою. У таких випадках на допомогу приходить техноло-гія ActiveX. ActiveX спирається на нові можливості технології OLE, пре-доставляються однією з її фундаментальних основ - розподіленої компо-нентной моделлю об'єктів (Distributed Component Object Model - DCOM). OLE 2 використовує в якості основи для побудови складених документів (документів, що містять інші об'єкти) більш просту технологію - компонентну модель об'єктів (Component Object Model - СОМ). Впровадження або зв'язування об'єктів за допомогою OLE забезпечує саме СОМ, а DCOM допомагає виконувати ті ж дії, але не тільки на окремому комп'ютері, але і в рамках обчислювальної мережі. Іншими словами, склад-ної документ може складатися з об'єктів, створених на різних комп-ютер. Еле-мент управління (компонент ActiveX) не існує всередині програми, а розташовується в окремому файлі. При цьому додаток і компонент ActiveX взаємодіють один з одним. Програміст відстежує всі віз-можна взаємодії, встановлюючи ті чи інші властивості компонента або задаючи реакцію програми на деякі події.
Створення розподіленої компонентної моделі об'єктів (DCOM) корпо-рація Microsoft планувала вже дуже давно. Взагалі, всі переваги технології DCOM видно вже з її назви. "Розподілена" - означає, що використовуються об'єкти, розташовані не тільки на локальному комп'ютері, але і де-небудь в локальній або глобальних-ної мережі. "Компонентна" - означає, що програмісти можуть в повній мірі використовувати переваги принципу конструктора Lego, з малень-ких шматочків якого здатний зібрати практично будь-яку річ. Ми вже розглядали значення терміна об'єкт. Об'єкти DCOM працюють приблизно так само, як і будь-який об'єкт в WINDOWS. Вони виконують визна-лені завдання по заздалегідь встановленим правилам і взаємодіє з іншими об'єктами, використовуючи закріплений набір інтерфейсів. Нарешті, слово "модель" означає керівництво до дії. Оскільки DCOM визна-ляет специфікацію створення і взаємодії об'єктів певного типу, програмісти зобов'язані дотримуватися цієї специфікації при ство-Данії додатків.
У конеч-ном рахунку технологія DCOM дозволяє використовувати розподілені ви-числення. При цьому не потрібно турбуватися про те, де розташовані компо-ненти додатки. DCOM дозволяє додатку знаходити необхідні компоненти і, при необхідності, виконувати всі або ряд з них на інших комп'ютерах. При цьому використання DCOM на увазі, що будь-який комп'ютер час від часу може виконувати необхідну роботу по тре-бованіям додатків, запущених на інших комп'ютерах.
У чому відмінність DCOM від OLE або СОМ? Специфікації СОМ і OLE опи-Сива архітектуру об'єктів. Зокрема, вони визначають, яким чином взаємодіють об'єкти на низькому рівні. DCOM також вирішує подоб-ву завдання, і тому не сильно відрізняється від СОМ. Але DCOM, на відміну від СОМ, визначає набір правил, за якими спілкуються між собою клі-ент і сервер. Об'єкти СОМ спілкуються один з одним через оперативну па-м'яти. Об'єкти DCOM можуть встановлювати між собою з'єднання через обчислювальну мережу, модем або лінію ISDN. Таким чином, DCOM яв-ляется розширенням СОМ.
В ході створення DCOM корпорація Microsoft вирішила відразу кілька про-блем. DCOM повинна стійко працювати для мережевих з'єднань, тому були розроблені методи, що гарантують відновлення стану об'єк-єкта після розриву з'єднання між клієнтом і сервером.
Ще одна проблема - час створення з'єднання. На локальному комп'ютерах тере зв'язок об'єктів відбувається практично миттєво. Об'єкти, взаємо-діють через обчислювальну мережу, можуть затратити чимало часу для завершення обміну даними. Для вирішення цієї проблеми були розроблені асинхронні способи взаємодії об'єктів. Іншими сло-вами, робота на локальному комп'ютері немає завмирає, поки об'єкти спілкуватися-ся між собою в фоновому режимі. Це не означає, що користувач з-всім не помітить затримки при взаємодії з віддаленим об'єктом. На-приклад, якщо очікування пов'язане з отриманням даних об'єкта, який буде виводитися на друк, то воно може сильно затягнутися. Асинхронний характер зв'язку має на увазі лише, що під час очікування відповіді користування земельними діл-тель може виконувати іншу роботу.
Ще один важливий аспект DCOM - це спосіб визначення об'єктів, уста-новлених на комп'ютері. Це неможливо зробити, поки комп'ютер не опублікує якимось чином необхідну інформацію. DCOM позво-ляет відкрити частину реєстру Windows для використання іншими компьюте-рами.