Введение

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

История и архитектура

Динамический обмен данными был впервые представлен в 1987 году с выпуском Windows 2.0 как метод межпроцессного взаимодействия, позволяющий одной программе общаться или управлять другой, подобно RPC (Remote Procedure Call) от Sun. В то время единственным способом связи между операционной системой и клиентскими приложениями был "Windows Messaging Layer". DDE расширил этот протокол, чтобы обеспечить одноранговую связь между клиентскими приложениями посредством широковещательных сообщений. Поскольку DDE работает через широковещательные сообщения, он уязвим к любому коду управления окнами, который не обрабатывает сообщения. Эта проблема не была учтена при разработке DDE, поскольку DDE предшествовал вытесняющей многозадачности. Более того, любой код, управляющий дескриптором окна, может отвечать на широковещательное сообщение DDE; инициатор DDE должен различать ожидаемые и неожиданные ответы. Участники DDE обычно указывают, какую информацию они запрашивают, с помощью иерархических строковых ключей. Например, ячейка в Microsoft Excel была известна DDE по имени "приложения". Каждое приложение могло дополнительно организовывать информацию по группам, называемым "темами", и каждая тема могла предоставлять отдельные элементы данных как "элемент". Например, если пользователь хотел получить значение из Microsoft Excel, содержащееся в таблице "Book1.xls" в ячейке первого ряда и первого столбца, приложением было бы "Excel", темой – "Book1.xls", а элементом – "r1c1". Внутренние изменения в ячейке, вызванные действиями Excel, затем передавались бы (в обратном порядке) вызывающему приложению посредством дополнительных широковещательных сообщений.

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

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