12.4.DDE (укр)

12.4. Технології DDE та NetDDE

12.4.1. Локальний обмін через DDE

12.4.1.1. Походження. DDE (Dynamic Data Exchange – динамічний обмін даними) – технологія, яка базується на зв’язку між прикладними програмами з використанням передачі віконних повідомлень (WM - Windows Message).

Перші прикладні програми, які користувалися цією технологією безпосередньо передавали, отримували і обробляли віконні повідомлення спеціального типу, виділені для DDE. Пізніше Microsoft розробила для цього спеціальний набір функцій бібліотеки динамічного обміну даними (DDEML DDE Management Library), які підтримували сумісність із старими прикладними програмами.

12.4.1.2. Взаємодія між процесами. Коли дві прикладні програми обмінюються даними за допомогою DDE, то кажуть, що вони зайняті в DDE сеансі зв’язку (DDE conversation). Ту програму, яка починає сеанс зв’язку називають Клієнт DDE (DDE client application), а яка відповідає – Сервер DDE (DDE server application).

Сеанс зв’язку проходить між двома вікнами, по одному для кожного з програм-учасників. Вікно може бути сховане, наприклад у випадку, коли воно створюється тільки для обміну по DDE. Прикладна програма може приймати участь в декількох сеансах зв’язку у той самий час як в якості Клієнта, так і в якості Сервера. Однак для кожного обміну використовується тільки одне вікно як для Клієнта так і для Сервера (наприклад 10 сеансів - це 10 клієнтських вікон + 10 серверних вікон на дві прикладні програми).

12.4.1.3. Модель ідентифікації даних. Для ідентифікації модуля даних, до яких доступається Клієнт на Сервері, використовується символьне ім’я, яке складається з трьох частин:

-            назва прикладної програми (Application);

-            назва документу або розділу (Topic);

-            назва елементу даних (Item).

На початку сеансу зв’язку DDE Клієнт і Сервер визначають назву прикладної програми і документа. Наприклад, якщо в якості програми-Сервера виступає Microsoft Excel, то назва прикладної програми буде "Excel". Документ в такому випадку може складатися з назви файлу та листа, а якщо файл Excel вже завантажений, то просто з назви листа, наприклад"Лист2". Слід зауважити, що за допомогою цих двох частин назви встановлюється сеанс зв’язку, тобто визначаються вікна Клієнта та Сервера. Це значить, що протягом цього сеансу, наведені назви змінитися не можуть.

  Елемент даних DDE – це інформація, яка пов’язана з документом і приймає участь в обміні. Назва цього елементу теж визначається в залежності від прикладної програми. Так, наприклад, в Excel елемент даних – це комірка на листі, яка адресується номером рядка та колонки (наприклад "R1C1"). Значення елементу даних може передаватись як від Клієнта до Серверу, так і навпаки. Формат даних може бути будь яким, який підтримується буфером обміну.

12.4.1.4. Системний розділ (System). Будь яка прикладна програма-Сервер DDE повинна підтримати розділ (Topic) з назвою "System". Цей розділ забезпечує контекстною інформацією, яка може представляти інтерес для програми-Клієнта. У табл.12.1 перераховані деякі назви елементів даних, які підтримуються даним розділом.

Таблиця 12.1

Призначення елементів даних.

Item

Призначення

Formats

Список підтримуваних форматів буферу обміну даного DDE-серверу

Help

Коротка допомога по використанню DDE

Status

Інформація про стан прикладної програми

SysItems

Список елементів даних, які підтримуються прикладною програмою для розділу System

Topics

Список розділів (документів), які доступні для даної програми в даний момент часу. Він від часу до часу може змінюватись.

 

 

Приклад 12.2. Технології програмної інтеграції. Доступ до комірки Excel з використанням DDE.

Завдання. Вказати адресу даних в комірці Excel для доступу по DDE.

Рішення.Щоб доступитися до комірки даних Microsoft Excel у 2 колонці та у 3 рядку на листі "Лист2" необхідно вказати:

- ApplicationExcel;

- Topic – Лист2;

- ItemR3C2.

Якщо необхідно вказати ще назву файла, то Topic – [Книга1.XLS]Лист2. Часто формат запису сполучає назву програми та документу:

Excel|Лист2 або Excel|[Книга1.XLS]Лист2

Інколи необхідний модуль даних вказується повністю. Наприклад, Excel може бути Клієнтом DDE. Тому якщо на комп’ютері завантажені дві програми Excel, можна обмінюватися даними між їх комірками, вказавши в комірці одної з них:

= Excel|Лист2!’R3C2’

Зверніть увагу, що в Excel деякі назви беруться в апострофи.

 

12.4.2. Обмін через NetDDE в мережі

12.4.2.1.Основи функціонування. Network DDE або просто NetDDE використовується для обслуговування мережних зв’язків, які потрібні для сеансів зв’язку DDE між прикладними програмами, що виконуються на різних комп’ютерах у мережі.

Для запуску обміну через NetDDE необхідно, щоб в системі комп’ютера був завантажений агент NetDDE (NETDDE.EXE). Зверніть увагу, що програма-агент не запускається автоматично при активації  NetDDE, тому її треба запустити як на комп’ютері Клієнта, так і на комп’ютері Сервера DDE. В операційній системі Windows вона запускається у вигляді двох служб: "Служба сетевого DDE" та "Диспетчер сетевого DDE", тому їх треба активувати та запустити. Агент при необхідності запускає прикладну програму, на якій розміщені дані. Весь обмін проходить саме через вікно програми-агента, тому він є проміжним Сервером (proxy-server), який замінює сторону дійсного Серверу,  перенаправляючи всі повідомлення його вікну.

12.4.2.2.Виділення загальних ресурсів. DDE Shares – загальні ресурси DDE, якими можуть користуватися програми-Клієнти DDE на даному комп’ютері. Тобто, якщо програма-Клієнт хоче доступитися до даних програми-Сервера на іншому комп’ютері,  необхідно на останньому прописати ресурси, з якими можна зв’язатися та їх загальну (shared) назву, яка завжди закінчується символом "$". На комп’ютері програми-Сервера DDE, в базі даних DSDM, ресурси зберігаються у вигляді записів типу "назва загального ресурсу" - "розміщення ресурсу". Таким чином, програма-Клієнт буде проводити сеанс з’єднання через ці ресурси.

Для налаштування загальних ресурсів існує спеціальна програма DDESHARE.EXE (вона запускається з командного вікна):

-       добавляється новий ресурс, вказується ім’я з "$" в кінці (наприклад "SHARA$");

-       вказується назва програми та документ (розділ) модуля даних DDE;

-       настроюються опції: автоматичний пуск програми і ін.

Слід врахувати особливості захисту на рівні операційної системи. Конфігурування загальних ресурсів можна проводити віддалено, вказавши необхідний комп’ютер в конфігураторі.

12.4.2.3. Типи загальних ресурсів. Є три типи загальних ресурсів: по старому стилю, по новому стилю та статичний тип. Вони відрізняються по правилам ідентифікації ресурсів. Як правило всі прикладні програми використовують статичний тип. Старий стиль призначений для програм, які реалізовують DDE сеанс зв’язку за допомогою віконних повідомлень, а новий стиль – на основі бібліотеки DDEML.

З боку Клієнта, при ідентифікації ресурсу DDE вказується:

- Application\\ім’я_комп’ютера\NDDE$ (наприклад \\COMP1\NDDE$);

- Topic – ім’я_загального_ресурсу (наприклад SHARA$);

- Itemназва_елементу_даних (наприклад R3C2).

12.4.2.4. Область використання DDE/NetDDE. DDE та NetDDE використовується не тільки для обміну між комірками Excel. Дана технологія широко використовується у програмному забезпеченні для АСУТП та АСУП. Зокрема більшість SCADA-програм надають доступ до своїх даних через DDE, та навпаки – можуть бути Клієнтами DDE. На сьогоднішній день технологія DDE все більше витісняється новими технологіями, такими як СОМ/DCOM, .NET та іншими.

 

Приклад 12.3. Технології програмної інтеграції. Доступ до загального ресурсу через  NetDDE.

Завдання. Забезпечити створення загального ресурсу на комп’ютері "COMP1" для доступу до комірки Excel, аналогічно прикладу 12.2.

Рішення. Створюємо на ПК Сервері загальнодоступні ресурси, для чого у DDESHARE.EXE виконаємо таку послідовність:

-       добавимо ресурс з іменем "SHARA" (назви писати без лапок);

-       назва прикладної програми: статичний зв’язок = Excel, всі інші порожні;

-       назва документу: статичний зв’язок = Лист2 або статичний зв’язок = [Книга1.XLS]Лист2, всі інші порожні;

-       виставити опцію: з дозволу запускати прикладну програму.

З боку Клієнта, при ідентифікації ресурсу DDE вказується:

- Application\\COMP1\NDDE$;

- TopicSHARA$;

- Item – R3C2.

Таким чином, для зв’язку двох комірок Excel на різних комп’ютерах, на першому (Серверний бік) налаштовуємо загальний ресурс, а на другому в комірці-приймачі вказуємо рядок:

='\\COMP1\NDDE$'|' SHARA$'!’R3C2’

Перед цим слід на обох комп’ютерах запустити необхідні служби (NETDDE.EXE).
 
Оставить комментарии Вы можете здесь http://pupena-san.blogspot.com
 
Comments