Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , динамический обмен данных ( DDE ) представляет собой технология для межпроцессного взаимодействия , используемого в ранних версиях Microsoft Windows и OS / 2 . DDE позволяет программам манипулировать объектами, предоставленными другими программами, и реагировать на действия пользователя, влияющие на эти объекты. DDE был частично заменен Object Linking and Embedding (OLE) и в настоящее время поддерживается в системах Windows только ради обратной совместимости .

История и архитектура [ править ]

Динамический обмен данными был впервые представлен в 1987 году с выпуском Windows 2.0 как метод межпроцессного взаимодействия, чтобы одна программа могла взаимодействовать с другой программой или управлять ею, что-то вроде Sun RPC (Remote Procedure Call). [1] В то время единственным способом связи между операционной системой и клиентскими приложениями был «Уровень обмена сообщениями Windows». DDE расширил этот протокол, чтобы разрешить одноранговую связь между клиентскими приложениями посредством широковещательной рассылки сообщений.

Поскольку DDE работает через широковещательную рассылку сообщений, он уязвим для любого кода управления окнами, который не перекачивает сообщения . Эта проблема не рассматривалась при разработке DDE, потому что DDE предшествует упреждающей многозадачности . [2]

Более того, любой код, управляющий дескриптором окна, может отвечать на широковещательную рассылку DDE; инициатор DDE должен различать ожидаемые и неожиданные ответы. Собеседники DDE обычно выражают, какую информацию они ищут, в терминах иерархических строковых ключей. Например, ячейка в Microsoft Excelбыл известен DDE под своим «прикладным» именем. Каждое приложение может дополнительно систематизировать информацию по группам, известным как «темы», и каждая тема может обслуживать отдельные фрагменты данных как «элемент». Например, если пользователь хочет извлечь значение из Microsoft Excel, которое содержится в электронной таблице с именем «Book1.xls» в ячейке в первой строке и первом столбце, приложением будет «Excel», тема «Book1». xls »и элемент« r1c1 ». Внутренние изменения в ячейке из-за действий Excel затем будут сигнализироваться (в обратном порядке) вызывающему приложению через дополнительные широковещательные сообщения.

Отношение к современным технологиям автоматизации [ править ]

Обычно DDE используется в специально разработанных приложениях для управления стандартным программным обеспечением. Например, собственное пользовательское приложение может использовать DDE, чтобы открыть электронную таблицу Microsoft Excel и заполнить ее данными, открыв диалог DDE с Excel и отправив ему команды DDE. Эта функция была в основном заменена набором технологий компонентной объектной модели . Microsoft не использовала DDE для внутренних целей с момента выпуска Windows 95 . [3] Например, Excel теперь предоставляет расширенную объектную модель OLE Automation , которая является рекомендуемым методом взаимодействия с Excel. Однако этот метод все еще используется, особенно для распространения финансовых данных. [4]Поскольку DDE не требует большего количества компонентов операционной системы, чем обычная программа с графическим интерфейсом Windows , это также [малоиспользуемая] альтернатива для программ, стремящихся минимизировать свои зависимости .

NetDDE [ править ]

Wonderware разработала расширение для DDE под названием NetDDE, которое можно использовать для инициирования и поддержания сетевых подключений, необходимых для DDE-диалогов между DDE-совместимыми приложениями, работающими на разных компьютерах в сети, и прозрачного обмена данными. Диалог DDE - это взаимодействие между клиентскими и серверными приложениями. NetDDE можно использовать вместе с DDE и библиотекой управления DDE (DDEML) в приложениях.

/Windows/SYSTEM32
    DDESHARE.EXE (DDE Share Manager)
    NDDEAPIR.EXE (NDDEAPI Server Side)
    NDDENB32.DLL (Network DDE NetBIOS Interface)
    NETDDE.EXE (Network DDE - DDE Communication)

Файлы библиотеки NetDDE

Microsoft лицензировала базовую ( только для NetBIOS Frames ) версию продукта для включения в различные версии Windows от Windows for Workgroups до Windows XP . Вдобавок Wonderware также продала своим клиентам улучшенную версию NetDDE, которая включала поддержку TCP / IP . Технология широко используется в области SCADA . Основными приложениями Windows, использующими NetDDE, являются Clipbook Viewer , WinChat и Microsoft Hearts .

NetDDE по-прежнему входил в состав Windows Server 2003 и Windows XP Service Pack 2, хотя по умолчанию он был отключен. Он был полностью удален в Windows Vista . [5] Однако это не предотвратит установку и работу существующих версий NetDDE в более поздних версиях Windows.

См. Также [ править ]

  • ActiveX
  • Компонентно-объектная модель (COM)
  • Распределенная объектная модель компонентов (DCOM)
  • Microsoft .NET
  • Образец наблюдателя

Ссылки [ править ]

  1. ^ «Net DDE для удаленного взаимодействия DOT NET» . 2006-01-12. Архивировано из оригинала на 2010-11-11.
  2. Chen, Raymond (27 июня 2005 г.). «Почему в Windows есть механизмы на основе широковещания?» . Старая новая вещь . Архивировано из оригинального 16 декабря 2009 года.
  3. Chen, Raymond (26 февраля 2007 г.). «Пожалуйста, прекратите использовать DDE» . Старая новая вещь . Архивировано из оригинального 15 марта 2019 года.
  4. ^ Джоэл Спольски - комментарий на дискуссионном форуме Fog Creek Software
  5. ^ NetDDE удален из Windows Vista.

Источники [ править ]

  • Чарльз Петцольд . «Динамический обмен данными» в программировании для Windows 95 . Microsoft Press.

Внешние ссылки [ править ]

  • MSDN: О динамическом обмене данными (DDE)
  • NetDDE
  • Привязки Clojure для DDE, для использования в приложениях Clojure или Java