Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
В вычислительной технике динамический обмен данными (DDE) — технология межпроцессного взаимодействия, использовавшаяся в ранних версиях Microsoft Windows и OS/2. DDE позволяет программам манипулировать объектами, предоставляемыми другими программами, и реагировать на действия пользователя, влияющие на эти объекты. DDE был частично вытеснен технологией Object Linking and Embedding (OLE) и в настоящее время поддерживается в системах Windows лишь для обеспечения обратной совместимости.
In computing, Dynamic Data Exchange (DDE) is a technology for interprocess communication used in early versions of Microsoft Windows and OS/2. DDE allows programs to manipulate objects provided by other programs, and respond to user actions affecting those objects. DDE was partially superseded by Object Linking and Embedding (OLE), and is currently maintained in Windows systems only for the sake of backward compatibility.
История и архитектура
Динамический обмен данными был впервые представлен в 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, затем передавались бы (в обратном порядке) вызывающему приложению посредством дополнительных широковещательных сообщений.
Dynamic Data Exchange was first introduced in 1987 with the release of Windows 2.0 as a method of interprocess communication so that one program could communicate with or control another program, somewhat like Sun's RPC (Remote Procedure Call). At the time, the only method for communication between the operating system and client applications was the "Windows Messaging Layer." DDE extended this protocol to allow peer to peer communication among client applications, via message broadcasts. Because DDE runs via message broadcasts, it is vulnerable to any window management code that does not pump messages. This problem was not considered during the design of DDE, because DDE predates pre emptive multitasking. Moreover, any code managing a window handle can respond to a DDE broadcast; the initiator of DDE must distinguish between expected and unexpected responses. DDE interlocutors usually express what information they seek in terms of hierarchical string keys. For example, a cell in Microsoft Excel was known to DDE by its "application" name. Each application could further organize information by groups known as "topic" and each topic could serve up individual pieces of data as an "item". For example, if a user wanted to pull a value from Microsoft Excel which was contained in a spreadsheet called "Book1. xls" in the cell in the first row and first column, the application would be "Excel", the topic "Book1. xls" and the item "r1c1". Internal changes in the cell due to Excel actions would then be signaled (in reverse) to the calling application via additional message broadcasts.
Отношение к современным технологиям автоматизации
Обычно DDE используется для управления готовым программным обеспечением из пользовательских приложений, разработанных самостоятельно. Например, внутреннее приложение компании может использовать DDE для открытия электронной таблицы Microsoft Excel и заполнения её данными, устанавливая DDE-соединение с Excel и отправляя ему команды DDE. Эта функция в основном устарела и была заменена технологиями Component Object Model. Microsoft не использует DDE внутри компании с момента выпуска Windows 95. Например, Excel теперь предоставляет обширную объектную модель OLE Automation, которая является рекомендуемым способом взаимодействия с Excel. Тем не менее, эта технология всё ещё применяется, особенно для распространения финансовых данных. Поскольку DDE не требует больше системных компонентов, чем обычная программа с графическим интерфейсом Windows, она также является малораспространенной альтернативой для программ, стремящихся минимизировать свои зависимости.
The common use of DDE is for custom developed applications to control off the shelf software. For example, a custom in house application might use DDE to open a Microsoft Excel spreadsheet and fill it with data, by opening a DDE conversation with Excel and sending it DDE commands. This feature has mainly been superseded by the Component Object Model suite of technologies. Microsoft has not used DDE internally since the release of Windows 95. For example, Excel now exposes an extensive OLE Automation object model, which is the recommended method for communicating with Excel. The technique is, however, still in use, particularly for distribution of financial data. Because DDE does not require more operating system components than a conventional Windows GUI program, it is also a [little used] alternative for programs seeking to minimize their dependencies.