Динамический обмен данными
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2011 г. ) |
В вычислительной технике динамический обмен данными ( DDE ) — это технология межпроцессного взаимодействия, использовавшаяся в ранних версиях Microsoft Windows и OS/2 . DDE позволяет программам манипулировать объектами, предоставленными другими программами, и реагировать на действия пользователя, влияющие на эти объекты. DDE был частично заменен Object Linking and Embedding (OLE) и в настоящее время поддерживается в системах Windows только ради обратной совместимости .
История и архитектура
[ редактировать ]Динамический обмен данными был впервые представлен в 1987 году с выпуском Windows 2.0 как метод межпроцессного взаимодействия , позволяющий одной программе взаимодействовать с другой программой или управлять ею, что-то вроде Sun RPC (удаленный вызов процедур). [1] В то время единственным методом связи между операционной системой и клиентскими приложениями был «уровень обмена сообщениями Windows». DDE расширил этот протокол, чтобы обеспечить одноранговую связь между клиентскими приложениями посредством широковещательной рассылки сообщений.
Поскольку DDE работает посредством широковещательной рассылки сообщений, он уязвим для любого кода управления окнами, который не передает сообщения . Эта проблема не рассматривалась при разработке DDE, поскольку DDE предшествует вытесняющей многозадачности в Microsoft Windows. [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-автоматизации , которая является рекомендуемым методом взаимодействия с 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 для рабочих групп до Windows XP . Кроме того, Wonderware также продала своим клиентам расширенную версию NetDDE, которая включала поддержку TCP/IP . Технология широко используется в области SCADA . Основными приложениями Windows, использующими NetDDE, являются Clipbook Viewer , WinChat и Microsoft Hearts .
NetDDE по-прежнему входил в состав Windows Server 2003 и Windows XP с пакетом обновления 2, хотя по умолчанию он был отключен. Он был полностью удален в Windows Vista . [5] Однако это не помешает установке и работе существующих версий NetDDE в более поздних версиях Windows.
См. также
[ редактировать ]- ActiveX
- Компонентная объектная модель (COM)
- Объектная модель распределенных компонентов (DCOM)
- Майкрософт .NET
- Шаблон наблюдателя
Ссылки
[ редактировать ]- ^ «Удаленное взаимодействие между Net DDE и DOT NET» . 12 января 2006 г. Архивировано из оригинала 11 ноября 2010 г.
- ^ Чен, Раймонд (27 июня 2005 г.). «Почему в Windows существуют механизмы широковещательной рассылки?» . Старая новая вещь . Архивировано из оригинала 16 декабря 2009 года.
- ^ Чен, Раймонд (26 февраля 2007 г.). «Пожалуйста, не стесняйтесь прекратить использование DDE» . Старая новая вещь . Архивировано из оригинала 15 марта 2019 года.
- ^ Джоэл Спольски - комментарий на дискуссионном форуме Fog Creek Software
- ^ NetDDE был удален в Windows Vista.
Источники
[ редактировать ]- Чарльз Петцольд . «Динамический обмен данными» в разделе «Программирование для Windows 95» . Майкрософт Пресс.