Network DDE (Dynamic Data Exchange) или динамический обмен данными по сети — это возможность Windows 10 обмениваться информацией между различными приложениями на разных компьютерах через локальную сеть. Эта технология позволяет пользователям обмениваться данными и управлять приложениями в режиме реального времени, улучшая координацию работы различных приложений и повышая общую производительность системы.
Network DDE была разработана Microsoft как компонент операционной системы Windows, который позволяет обмениваться данными между разными приложениями, работающими на разных компьютерах. Система Network DDE использует клиент-серверную модель, где существует компьютер-сервер (приложение-сервер) и клиентские компьютеры (приложения-клиенты), которые обмениваются данными через сеть.
Основные возможности Network DDE включают передачу текстовой и числовой информации между приложениями, а также возможность обновления данных в режиме реального времени. Благодаря этим функциям, с помощью Network DDE можно создавать различные сценарии автоматизации, включая мониторинг и управление процессами на других компьютерах, сбор данных из нескольких источников одновременно, и многое другое.
Однако следует обратить внимание на то, что Network DDE является старой технологией, и в современных версиях Windows рекомендуется использовать более современные и безопасные протоколы обмена данными, такие как XML, SOAP или RESTful API. Кроме того, в последних версиях Windows поддержка Network DDE может быть ограничена или полностью отключена по умолчанию из-за возможных уязвимостей системы безопасности.
Содержание
- Network DDE в Windows 10
- Особенности и преимущества
- Способы использования Network DDE
- Настройка и настройки Network DDE
- Проблемы и решения
Network DDE в Windows 10
Network DDE может быть полезен во множестве сценариев, таких как обмен данными между разными приложениями, удаленное управление компьютерами и автоматизация рабочих процессов. Он обеспечивает простой и эффективный способ передачи информации между приложениями, работающими на разных компьютерах.
Преимущества Network DDE:
- Простота использования: Network DDE обеспечивает простой и понятный способ обмена данными между приложениями.
- Гибкость: Network DDE позволяет передавать различные типы данных, включая текст, числа и изображения.
- Безопасность: Network DDE обеспечивает защищенный обмен данными и командами между компьютерами.
- Масштабируемость: Network DDE может быть использован для обмена данными между несколькими компьютерами в сети, что делает его идеальным для крупных организаций.
Как использовать Network DDE в Windows 10:
1. Установите и настройте Network DDE на компьютерах, которые будут участвовать в обмене данными.
2. Откройте приложение, которое вы хотите использовать для обмена данными.
3. Включите поддержку Network DDE в настройках приложения.
4. Укажите имя и IP-адрес компьютера, с которым вы хотите установить связь.
5. Отправьте данные или команды на удаленный компьютер с помощью Network DDE.
Network DDE является мощным инструментом для обмена данными в сети Windows 10. Он предоставляет простой и надежный способ передачи информации между компьютерами, а также позволяет автоматизировать рабочие процессы и упростить взаимодействие между приложениями.
Особенности и преимущества
Одной из особенностей Network DDE является возможность установления связи между приложениями на разных компьютерах, что позволяет обмениваться данными и инструкциями даже в сетевой среде.
Преимущества Network DDE включают:
-
Простота использования: Network DDE обеспечивает простой и понятный способ обмена данными между приложениями. Для установления обмена достаточно настроить несколько параметров и указать имя файла, в котором будут храниться данные.
-
Гибкость: Network DDE позволяет устанавливать связи между различными типами приложений, независимо от их языка программирования или операционной системы.
-
Высокая надежность: Network DDE обеспечивает надежный обмен данными, автоматически перезапуская приложения в случае сбоев или обрывов связи.
-
Удобство: Network DDE позволяет использовать удаленные ресурсы и доступ к данным на других компьютерах, что делает совместную работу и обмен информацией более эффективными.
Все эти особенности и преимущества делают Network DDE важным инструментом для обмена данными и командами между приложениями в сетевой среде Windows 10.
Способы использования Network DDE
Network DDE (Dynamic Data Exchange) предоставляет возможность обмена данными между различными приложениями в сетевой среде Windows 10. Система Network DDE состоит из двух основных компонентов: сервера DDE и клиента DDE.
Сервер DDE предоставляет данные для обмена и отслеживает изменения этих данных. Клиент DDE получает данные от сервера и использует их в своем приложении. Основные способы использования Network DDE включают:
- Создание динамических связей между различными приложениями. Network DDE позволяет приложениям обмениваться информацией, не требуя сохранения и загрузки данных вручную. Например, вы можете создать связь между приложением текстового редактора и электронной таблицей, чтобы автоматически обновлять данные в таблице в соответствии с изменениями в текстовом файле.
- Реализация многопользовательского доступа к данным. Network DDE позволяет нескольким пользователям одновременно обмениваться данными в сетевой среде. Например, несколько пользователей могут работать с одним и тем же документом, обновлять его содержимое и видеть изменения в режиме реального времени.
- Интеграция различных приложений. Network DDE позволяет интегрировать функциональность различных приложений, используя обмен данными. Например, вы можете интегрировать базу данных с приложением графического дизайна, чтобы получать актуальные данные о клиентах и использовать их для создания графических элементов.
Использование Network DDE может значительно упростить процесс обмена данными между приложениями и обеспечить более гибкую интеграцию функциональности. Однако, при использовании Network DDE необходимо учитывать потенциальные проблемы безопасности и ограничения совместимости между различными версиями Windows.
Настройка и настройки Network DDE
Network DDE (Network Dynamic Data Exchange) предоставляет возможность обмена данными между разными приложениями, работающими в сети. Он основан на протоколе DDE, который обеспечивает мгновенный обмен данными между приложениями.
Чтобы настроить и использовать Network DDE, вам потребуется выполнить несколько шагов:
- Убедитесь, что служба Network DDE запущена и работает на вашем компьютере. Для этого откройте «Службы» в «Панели управления» и убедитесь, что служба Network DDE включена и настроена на автоматический запуск.
- Настройте защиту Network DDE. Для этого откройте окно «Настройка безопасности Network DDE» и выберите соответствующий уровень безопасности: высокий, средний или низкий. Уровень безопасности определяет, какие приложения смогут обмениваться данными через Network DDE.
- Установите правила обмена данными для определенных приложений. Вы можете настроить правила обмена данными для каждого приложения, включая их доступность и типы данных, которые могут быть обменены.
- Настройте сетевые настройки для Network DDE. Это включает в себя задание IP-адреса и порта для обмена данными, а также настройку прокси-сервера, если необходимо.
После выполнения этих шагов вы сможете использовать Network DDE для обмена данными между приложениями в сети. Это может быть полезно, например, для автоматизации процессов, обмена информацией или обновления данных в реальном времени.
Проблемы и решения
Network DDE может иногда вызывать проблемы на компьютере под управлением Windows 10. Некоторые из распространенных проблем включают:
1. Проблемы с запуском службы Network DDE: Если служба Network DDE не запускается автоматически при загрузке операционной системы, это может приводить к невозможности использования функциональности Network DDE. Чтобы решить эту проблему, вы можете проверить состояние службы в менеджере задач и убедиться, что она находится в активном состоянии и запускается автоматически.
2. Проблемы с подключением к удаленному компьютеру: Если вы испытываете проблемы с подключением к удаленному компьютеру через Network DDE, убедитесь, что на обоих компьютерах включена функция Network DDE и они находятся в одной рабочей группе или домене. Также убедитесь, что файрволлы и антивирусные программы не блокируют доступ к сети.
3. Проблемы с обменом данными через сеть: Иногда может возникать ситуация, когда обмен данными через Network DDE не работает должным образом. В таких случаях, вы можете попробовать выполнить следующие действия:
— Убедитесь, что на обоих компьютерах установлен одинаковый набор приложений и версий.
— Перезагрузите компьютеры и повторно подключитесь через Network DDE.
— Проверьте настройки безопасности, чтобы убедиться, что они не блокируют доступ к сети.
— Обновите драйвера сетевого адаптера на обоих компьютерах.
Network DDE является полезной функцией Windows 10 для обмена данными между компьютерами в сети. Если вы столкнулись с проблемами при использовании Network DDE, приведенные решения могут помочь вам исправить эти проблемы и настроить функциональность для оптимальной работы.
DDE (Dynamic Data Exchange —
динамический обмен данными) представляет
собой коммуникационный протокол,
разработанный компанией Microsoft для обмена
данными между различными Windows-приложениями
и их синхронизации. Для нормального
функционирования DDE необходимо два
участника – приложение, запрашивающее
данные, и приложение, посылающее данные.
Приложение, запрашивающее данные,
называется клиентом. Приложение,
посылающее данные, называется сервером.
Клиент
DDE.
В качестве приложения клиента может
выступать любое приложение, позволяющее
осуществлять DDE-запросы к DDE-серверу. В
качестве примера приложения, обладающего
возможностями DDE-клиента, можно привести
электронную таблицу Microsoft Excel, позволяющую
в качестве формулы в какой-либо ячейке
устанавливать запрос с автообновлением
данных к указываемому DDE-серверу.
Сервер
DDE.
Приложение, обеспечивающее возможности
сервера, должно “уметь” принимать DDE
сообщения и посылать данные в ответ на
запросы приложений-клиентов. У одного
DDE-сервера может быть один или несколько
DDE-клиентов.
Сеанс
DDE –
активная непрерывная связь между
клиентом и сервером.
Транзакция
DDE
– одиночный акт обмена данными в процессе
сеанса.
В DDE используется
трёхуровневая система адресации: service
(зарегистрированный сервис, как правило,
указывается приложение, предоставляющее
серверные функции); topic
(раздел данных, например, имя файла, или
таблица базы данных); item (элемент данных,
подлежащий передаче).
Если в качестве
сервера DDE выступает MS Excel, эта схема
выглядит следующим образом: service –
«EXCEL»; topics – электронная таблица
«[Книга1]Лист1»; item –ячейка «R1C2».
Поскольку Windows
базируется на архитектуре, использующей
сообщения, то наиболее подходящим
методом для автоматической передачи
данных между прикладными программами
является посылка сообщений. Все транзакции
выполняются с помощью передачи между
программами клиентом и сервером DDE
сообщений:
WM_DDE_INITIATE –
инициализирует диалог между прикладными
программами сервера и клиента;
WM_DDE_ACK
– посылается в ответ на полученное
сообщение;
WM_DDE_REQUEST – запрашивает
у сервера значение элемента данных;
WM_DDE_POKE – посылает
значение элемента данных серверу;
WM_DDE_ADVISE –
устанавливает постоянную связь между
сервером и клиентом;
WM_DDE_DATA – посылает
значение элемента данных клиенту;
WM_DDE_EXECUTE – посылает
строку прикладной программе-серверу,
которая должна выполнить ее как
последовательность команд;
WM_DDE_UNADVISE – завершает
постоянную связь между сервером и
клиентом;
WM_DDE_TERMINATE
– завершает
диалог.
Посылка сообщений
– это нижний уровень обмена данными
между DDE-клиентом
и DDE-сервером.
На верхнем уровне DDE-обмен
реализован в виде функций, содержащихся
в динамической библиотеке DDEML.DLL.
Технология
DDE
удобна для взаимодействия между такими
приложениями как MS
Excel
– MS
Word
и т.п. Однако при высоком потоке передачи
данных этот механизм не очень подходит
вследствие низкой надежности и низкой
скорости передачи сообщений. Для
SCADA–систем
имеются модификации: пакетированный
DDE-обмен — FastDDE.
Применение последнего заметно повышает
эффективность и производительность
обмена данными благодаря уменьшению
общего количества DDE-пакетов, которыми
клиент и сервер обмениваются между
собой. Но принципиальные недостатки,
связанные с надежностью и зависимостью
от количества загруженных в текущий
момент приложений Windows, остались.
С целью расширения
возможностей стандартного протокола
DDE на локальную сеть предложен NetDDE. Он
позволяет приложениям, запущенным на
компьютерах, объединенных в локальную
сеть, вести DDE-обмен.
Обмен
по DDE в TRACE
MODE
6
Исполнительыне
модули TRACE
MODE
6 (МРВ) поддерживают обмен по DDE/NetDDE между
собой и с приложениями WINDOWS, выступая
одновременно в качестве сервера и
клиента. Клиент инициирует обмен с
сервером и задает один из следующих
режимов обмена:
-
POKE
– изменение
значения указанного параметра на
сервере; -
REQUEST
–
запрос значения указанного параметра
от сервера; -
ADVISE
–
режим, при котором сервер посылает
клиенту значение указанного параметра
при его изменении.
Excel
(DDE-клиент)
– МРВ (DDE-сервер)
Если клиентом DDE
является Excel, то DDE-обмен с МРВ может быть
сконфигурирован с помощью: формул Excel;
макросов VBA. Формула Excel может быть
использована для запроса реального
значения канала в режиме ADVISE или REQUEST.
Запрос значений всех других атрибутов
канала проводится только в режиме
REQUEST.
Формат
формулы
EXCEL: =<server>|<topic>!<item>
server
– имя сервера
в формате RTM<k>,
где k –
индивидуальный номер узла;
topic
– тема запроса
(GET
– для режима ADVISE,
PUT
– для режима REQUEST);
item
– имя канала
или уточненное имя атрибута в формате:
<имя
канала>.<номер атрибута>
.
Примеры:
=RTM0|GET!Канал1
вызов реального значения канала КАНАЛ1
в режиме ADVISE;
=RTM0|PUT!Канал1.0
вызов реального значения (атрибут № 0)
канала КАНАЛ1 в режиме REQUEST;
=RTM|PUT!Канал1.45
вызов значения атрибута «время
последнего изменения реального значения»
(атрибут № 45) для канала КАНАЛ1 в режиме
REQUEST.
{DDEAuto
RTM0
GET
Канал1} вызов реального значения канала
КАНАЛ1 в режиме ADVISE
в поле MS
WINWORD.
Через макросы VBA
доступны режимы REQUEST
и POKE.
Для обмена с помощью макросов VBA
используются функции:
Channel
:= DDEInitiate(App,
Topic)
– установка диалога по заданным сервису
и теме;
DDETerminate(Channel)
– прекращение
диалога;
Data :=
DDERequest(Channel,
Item)
– запрос
данных;
DDEPoke(Channel,
Item,
Data)
– передача
данных
серверу;
DDEExecute(Channel,
String)
– передача
команды
другому
приложению.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
DDE (Dynamic Data Exchange —
динамический обмен данными) представляет
собой коммуникационный протокол,
разработанный компанией Microsoft для обмена
данными между различными Windows-приложениями
и их синхронизации. Для нормального
функционирования DDE необходимо два
участника – приложение, запрашивающее
данные, и приложение, посылающее данные.
Приложение, запрашивающее данные,
называется клиентом. Приложение,
посылающее данные, называется сервером.
Клиент
DDE.
В качестве приложения клиента может
выступать любое приложение, позволяющее
осуществлять DDE-запросы к DDE-серверу. В
качестве примера приложения, обладающего
возможностями DDE-клиента, можно привести
электронную таблицу Microsoft Excel, позволяющую
в качестве формулы в какой-либо ячейке
устанавливать запрос с автообновлением
данных к указываемому DDE-серверу.
Сервер
DDE.
Приложение, обеспечивающее возможности
сервера, должно “уметь” принимать DDE
сообщения и посылать данные в ответ на
запросы приложений-клиентов. У одного
DDE-сервера может быть один или несколько
DDE-клиентов.
Сеанс
DDE –
активная непрерывная связь между
клиентом и сервером.
Транзакция
DDE
– одиночный акт обмена данными в процессе
сеанса.
В DDE используется
трёхуровневая система адресации: service
(зарегистрированный сервис, как правило,
указывается приложение, предоставляющее
серверные функции); topic
(раздел данных, например, имя файла, или
таблица базы данных); item (элемент данных,
подлежащий передаче).
Если в качестве
сервера DDE выступает MS Excel, эта схема
выглядит следующим образом: service –
«EXCEL»; topics – электронная таблица
«[Книга1]Лист1»; item –ячейка «R1C2».
Поскольку Windows
базируется на архитектуре, использующей
сообщения, то наиболее подходящим
методом для автоматической передачи
данных между прикладными программами
является посылка сообщений. Все транзакции
выполняются с помощью передачи между
программами клиентом и сервером DDE
сообщений:
WM_DDE_INITIATE –
инициализирует диалог между прикладными
программами сервера и клиента;
WM_DDE_ACK
– посылается в ответ на полученное
сообщение;
WM_DDE_REQUEST – запрашивает
у сервера значение элемента данных;
WM_DDE_POKE – посылает
значение элемента данных серверу;
WM_DDE_ADVISE –
устанавливает постоянную связь между
сервером и клиентом;
WM_DDE_DATA – посылает
значение элемента данных клиенту;
WM_DDE_EXECUTE – посылает
строку прикладной программе-серверу,
которая должна выполнить ее как
последовательность команд;
WM_DDE_UNADVISE – завершает
постоянную связь между сервером и
клиентом;
WM_DDE_TERMINATE
– завершает
диалог.
Посылка сообщений
– это нижний уровень обмена данными
между DDE-клиентом
и DDE-сервером.
На верхнем уровне DDE-обмен
реализован в виде функций, содержащихся
в динамической библиотеке DDEML.DLL.
Технология
DDE
удобна для взаимодействия между такими
приложениями как MS
Excel
– MS
Word
и т.п. Однако при высоком потоке передачи
данных этот механизм не очень подходит
вследствие низкой надежности и низкой
скорости передачи сообщений. Для
SCADA–систем
имеются модификации: пакетированный
DDE-обмен — FastDDE.
Применение последнего заметно повышает
эффективность и производительность
обмена данными благодаря уменьшению
общего количества DDE-пакетов, которыми
клиент и сервер обмениваются между
собой. Но принципиальные недостатки,
связанные с надежностью и зависимостью
от количества загруженных в текущий
момент приложений Windows, остались.
С целью расширения
возможностей стандартного протокола
DDE на локальную сеть предложен NetDDE. Он
позволяет приложениям, запущенным на
компьютерах, объединенных в локальную
сеть, вести DDE-обмен.
Обмен
по DDE в TRACE
MODE
6
Исполнительыне
модули TRACE
MODE
6 (МРВ) поддерживают обмен по DDE/NetDDE между
собой и с приложениями WINDOWS, выступая
одновременно в качестве сервера и
клиента. Клиент инициирует обмен с
сервером и задает один из следующих
режимов обмена:
-
POKE
– изменение
значения указанного параметра на
сервере; -
REQUEST
–
запрос значения указанного параметра
от сервера; -
ADVISE
–
режим, при котором сервер посылает
клиенту значение указанного параметра
при его изменении.
Excel
(DDE-клиент)
– МРВ (DDE-сервер)
Если клиентом DDE
является Excel, то DDE-обмен с МРВ может быть
сконфигурирован с помощью: формул Excel;
макросов VBA. Формула Excel может быть
использована для запроса реального
значения канала в режиме ADVISE или REQUEST.
Запрос значений всех других атрибутов
канала проводится только в режиме
REQUEST.
Формат
формулы
EXCEL: =<server>|<topic>!<item>
server
– имя сервера
в формате RTM<k>,
где k –
индивидуальный номер узла;
topic
– тема запроса
(GET
– для режима ADVISE,
PUT
– для режима REQUEST);
item
– имя канала
или уточненное имя атрибута в формате:
<имя
канала>.<номер атрибута>
.
Примеры:
=RTM0|GET!Канал1
вызов реального значения канала КАНАЛ1
в режиме ADVISE;
=RTM0|PUT!Канал1.0
вызов реального значения (атрибут № 0)
канала КАНАЛ1 в режиме REQUEST;
=RTM|PUT!Канал1.45
вызов значения атрибута «время
последнего изменения реального значения»
(атрибут № 45) для канала КАНАЛ1 в режиме
REQUEST.
{DDEAuto
RTM0
GET
Канал1} вызов реального значения канала
КАНАЛ1 в режиме ADVISE
в поле MS
WINWORD.
Через макросы VBA
доступны режимы REQUEST
и POKE.
Для обмена с помощью макросов VBA
используются функции:
Channel
:= DDEInitiate(App,
Topic)
– установка диалога по заданным сервису
и теме;
DDETerminate(Channel)
– прекращение
диалога;
Data :=
DDERequest(Channel,
Item)
– запрос
данных;
DDEPoke(Channel,
Item,
Data)
– передача
данных
серверу;
DDEExecute(Channel,
String)
– передача
команды
другому
приложению.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Динамический обмен данными
Из Википедии, бесплатной энциклопедии
Перейти к навигации
Перейти к поиску
В вычислении , динамический обмен данных ( 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
- Образец наблюдателя
Ссылки
- ^ «Net DDE для удаленного взаимодействия DOT NET» . 2006-01-12. Архивировано из оригинала на 2010-11-11.
- ↑ Chen, Raymond (27 июня 2005 г.). «Почему в Windows есть механизмы на основе широковещания?» . Старая новая вещь . Архивировано из оригинального 16 декабря 2009 года.
- ↑ Chen, Raymond (26 февраля 2007 г.). «Пожалуйста, прекратите использовать DDE» . Старая новая вещь . Архивировано из оригинального 15 марта 2019 года.
- ^ Джоэл Спольски — комментарий на дискуссионном форуме Fog Creek Software
- ^ NetDDE удален из Windows Vista.
Источники
- Чарльз Петцольд . «Динамический обмен данными» в программировании для Windows 95 . Microsoft Press.
Внешние ссылки
- MSDN: О динамическом обмене данными (DDE)
- NetDDE
- Привязки Clojure для DDE, для использования в приложениях Clojure или Java
Категории :
- Межпроцессного взаимодействия
- Интерфейсы прикладного программирования Microsoft
- Связь и службы Windows
Эта статья является частью серии «Fileless Malware». Все остальные части серии:
- Приключения неуловимой малвари, часть I
- Приключения неуловимой малвари, часть II: скрытные VBA-скрипты
- Приключения неуловимой малвари, часть III: запутанные VBA-скрипты для смеха и прибыли
- Приключения неуловимой малвари, часть IV: DDE и поля документа Word (мы тут)
В этой статье я собирался погрузиться в еще более сложный многоэтапный cценарий безфайловой атаки с закреплением в системе. Но тут я наткнулся на невероятно простую атаку без кода — не требуется никаких макросов Word или Excel! И это гораздо более эффективно доказывает мою изначальную гипотезу, лежащую в основе этой серии статей: преодолеть внешний периметр любой организации – совсем несложная задача.
Первая атака, которую я опишу, использует уязвимость Microsoft Word, которая основана на устаревшем протоколе динамического обмена данными (DDE). Она уже была исправлена. Вторая использует более общую уязвимость в Microsoft COM и возможности передачи объектов.
Кто-нибудь еще помнит DDE? Вероятно, немногие. Это был один из первых протоколов взаимодействия между процессами, который позволял приложениям и устройствам передавать данные.
Я сам немного знаком с ним, потому что раньше я проверял и тестировал телеком-оборудование. В то время DDE позволял, например, передавать для операторов колл-центров идентификатор звонящего абонента в CRM приложение, которое в конечном итоге открывало карточку клиента. Для этого вы должны были подключить кабель RS-232 между телефоном и компьютером. Вот были деньки!
Как оказалось, Microsoft Word все еще поддерживает DDE.
Что делает эту атаку эффективной без кода, так это то, что вы можете получить доступ к протоколу DDE непосредственно из автоматических полей документа Word (снимаю шляпу перед SensePost за исследования и публикации об этом).
Коды полей – это еще одна древняя функция MS Word, которая позволяет добавлять динамический текст и немного программирования в документ. В качестве самого очевидного примера можно привести поле «номер страницы», который можно вставить в нижний колонтитул с помощью значения {PAGE *MERGEFORMAT}. Это позволяет автоматическим образом генерировать номера страниц.
Подсказка: вы сможете найти пункт меню Полe (Field) в разделе Вставка (Insert)
Я помню, что когда впервые обнаружил эту возможность в Word, то был поражен. И вот пока патч не отключил ее, Word так и поддерживал параметр полей DDE. Идея состояла в том, что DDE позволит Word общаться с приложением напрямую, для возможности затем передать выходные данные программы в документ. Это была совсем юная технология в то время – поддержка обмена данными с внешними приложениями. Позже она была развита в технологии COM, которую мы также рассмотрим ниже.
В итоге, хакеры поняли, что этим приложением DDE может быть командная оболочка, которая, конечно же, запускает PowerShell, а оттуда хакеры могут делать всё, что им угодно.
На скриншоте ниже видно, как я использовал данную скрытную технику: маленький сценарий PowerShell (далее – PS) из поля DDE загружает другой PS скрипт, который запускает вторую фазу атаки.
Спасибо Windows за всплывающее предупреждение, о том что встроенное поле DDEAUTO скрытно пытается запустить оболочку
Предпочтительным методом эксплуатации уязвимости является использование варианта с полем DDEAUTO, которое автоматически запускает сценарий при открытии документа Word.
Давайте подумаем, что с этим можно сделать.
Как начинающий хакер, вы можете, например, отправить фишинговое письмо, притворившись, что вы из ФНС, и встроить поле DDEAUTO со скриптом PS для первого этапа (дроппер по сути). Причем вам даже не нужно делать никакого реального кодирования макросов и пр., как я это делал в предыдущей статье.
Жертва открывает ваш документ, встроенный скрипт активируется, и хакер оказывается внутри компьютера. В моем случае удаленный сценарий PS лишь печатает сообщение, но он может также легко запустить клиент PS Empire, который предоставит удаленный доступ к оболочке.
И прежде, чем жертва успеет произнести хоть что-то, хакеры окажутся самыми богатыми подростками на селе.
Оболочка была запущена без малейшего кодирования. Даже ребенок сможет это сделать!
DDE и поля
Позже Microsoft все-таки отключила DDE в Word, но перед этим компания заявила, что эта функция была просто неправильно использована. Их нежелание что-то менять понятно. Из своего опыта я сам наблюдал такой пример, что обновление полей при открытии документа было включено, но макросы Word были отключены ИТ-службой (но с показом уведомления). Кстати, соответствующие параметры вы сможете найти в разделе настроек Word.
Однако, даже если обновление полей включено, Microsoft Word дополнительно уведомляет пользователя, когда поле запрашивает доступ к удаленным данным, как в случае с DDE выше. Microsoft действительно предупреждает вас.
Но скорее всего, пользователи все равно пропустят это предупреждение и активируют обновление полей в Word. Это одна из редких возможностей поблагодарить Microsoft за отключение опасной функции DDE.
Насколько трудно сегодня найти непропатченную систему Windows?
Для этого тестирования я использовал среду AWS Workspaces для получения доступа к виртуальному рабочему столу. Таким образом я получил непропатченную виртуальную машину с MS Office, которая позволила мне вставить поле DDEAUTO. Не сомневаюсь, что подобным же образом можно найти и другие компании, которые до сих пор не установили нужные патчи безопасности.
Тайна предметов
Даже если вы и установили этот патч, есть другие дыры безопасности в MS Office, которые позволяют хакерам выполнять что-то очень похожее на то, что мы сделали с Word. В следующем сценарии мы научимся использовать Excel в качестве наживки для фишинговой атаки без написания кода.
Чтобы понять этот сценарий, давайте вспомним Модель компонентного объекта Microsoft, или сокращенно COM (Component Object Model).
COM существует с 1990-х годов, и определяется как «нейтральная к языку программирования объектно-ориентированная модель компонентов» на основе удаленных вызовов процедур RPC. Для общего понимания терминологии COM прочтите этот пост на StackOverflow.
По большому счету, вы можете представить приложение COM как исполняемый файл Excel или Word, или какой-либо другой запускаемый бинарный файл.
Оказывается, COM-приложение также может запускать сценарий — JavaScript или VBScript. Технически это называется скриптлет. Возможно, вы встречали расширение.sct у файлов в Windows – это и есть официальное расширение для скриплетов. По сути, они являются кодом скрипта, заключенного в XML обертку:
<?XML version="1.0"?>
<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");
]]>
</script>
</scriptlet>
Хакеры и пентестеры обнаружили, что есть отдельные утилиты и приложения в Windows, которые принимают COM-объекты и, соответственно, скриптлеты тоже.
Я могу передать скриптлет в утилиту Windows, написанную на VBS, известную как pubprn. Она находится в недрах C:Windowssystem32Printing_Admin_Scripts. Кстати, есть и другие утилиты Windows, которые принимают объекты в качестве параметров. Для начала рассмотрим этот пример.
Вполне естественно, что оболочку можно запустить даже из сценария печати. Вперед, Microsoft!
В качестве тестирования я создал простой удаленный скриптлет, который запускает оболочку и печатает забавное сообщение «Вас только что проскриптовали!». По сути, pubprn создает экземпляр объекта scriptlet, позволяя коду VBScript запустить оболочку. Данный метод предоставляет явные преимущества хакерам, которые хотят незаметно проникнуть и спрятаться в вашей системе.
В следующем посте я объясню, как скриптлеты COM могут быть использованы хакерами с помощью таблиц Excel.
Вам в качестве домашней работы – посмотреть это видео с Derbycon 2016 года, которое объясняет, как именно хакеры использовали скриптлеты. А также прочитать эту статью про скриптлеты и какой-то моникер.
В вычислениях, Dynamic Data Exchange (DDE ) — это технология для межпроцессного взаимодействия использовался в ранних версиях Microsoft Windows и OS / 2. DDE позволяет программам манипулировать объектами, предоставленными другими программами, и реагировать на действия пользователя, влияющие на эти объекты. DDE был частично заменен Object Linking and Embedding (OLE) и в настоящее время поддерживается в системах Windows только для обратной совместимости.
Содержание
- 1 История и архитектура
- 2 Связь с современными технологиями автоматизации
- 3 NetDDE
- 4 См. Также
- 5 Ссылки
- 6 Источники
- 7 Внешние ссылки
История и архитектура
Динамический обмен данными был первым введена в 1987 году с выпуском Windows 2.0 как метод межпроцессного взаимодействия, чтобы одна программа могла взаимодействовать с другой программой или управлять ею, что-то вроде Sun RPC ( Удаленный вызов процедур). В то время единственным способом связи между операционной системой и клиентскими приложениями был «Уровень обмена сообщениями Windows». 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. Эта функция в основном заменена набором технологий объектной модели компонентов. Microsoft не использовала DDE для внутренних целей с момента выпуска Windows 95. Например, Excel теперь предоставляет обширную объектную модель OLE Automation, которая является рекомендуемым методом взаимодействия с Excel. Однако этот метод все еще используется, особенно для распространения финансовых данных. Поскольку для DDE не требуется больше компонентов операционной системы, чем для обычной программы Windows GUI, это также [малоиспользуемая] альтернатива для программ, стремящихся минимизировать свои зависимости.
NetDDE
Wonderware разработал расширение для DDE под названием NetDDE, которое можно было использовать для инициирования и поддержания сетевых подключений, необходимых для DDE-диалогов между DDE-совместимыми приложениями, работающими на разных компьютерах в сети, и прозрачного обмена данными. Диалог DDE — это взаимодействие между клиентскими и серверными приложениями. NetDDE можно использовать вместе с DDE и библиотекой управления DDE (DDEML) в приложениях.
/Windows/SYSTEM32. DDESHARE .EXE (диспетчер общих ресурсов DDE). NDDEAPIR .EXE (сторона сервера NDDEAPI). NDDENB32 .DLL (сетевой интерфейс DDE NetBIOS). NETDDE .EXE (сетевой DDE - связь DDE)
. Файлы библиотеки NetDDE
Microsoft лицензировала базовую (NetBIOS Протокол кадров только) версия продукта для включения в различные версии Windows от Windows для рабочих групп до 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. Однако это не помешает установке и работе существующих версий NetDDE в более поздних версиях Windows.
См. Также
- ActiveX
- Component Object Model (COM)
- Distributed Component Object Model (DCOM)
- Microsoft.NET
- Шаблон наблюдателя
Ссылки
Источники
- Чарльз Петцольд. «Динамический обмен данными» в программировании для Windows 95. Microsoft Press.
Внешние ссылки
- MSDN: О динамическом обмене данными (DDE)
- NetDDE
- Привязки Clojure для DDE, для использования в приложениях Clojure или Java
Аннотация: Рассматривается DDE — динамический обмен данными и следующий этап разработки в области обмена данными — OLE. Особый интерес представляет практическая работа 44 — передача данных между приложениями Access и Excel. Приводятся две практические работы, относящиеся к области ActiveX — технологии, обеспечивающей эффективную работу приложений типа клиент- сервер.
Продукты корпорации Microsoft поддерживают протокол динамического обмена данными — DDE (протокол — правила при коммуникациях). С использованием папки обмена CLIPBRD.EXE выполняются DDE-связи в компьютерной сети (стартует сетевая DDE-служба), при этом данные должны быть сделаны доступными — должен быть реализован общий доступ. В процессе обмена данными устанавливаются связи между папками обмена удалeнных компьютеров; данные буфера обмена должны находиться на страницах папки обмена. Такая связь может быть реализована и средствами Visual Basic. Приложения могут выполнять как роль клиента, запрашивающего и принимающего данные, так и роль сервера — источника данных.
Технология обмена данными между приложениями развита до такого уровня, что данные не нужно заново копировать — они после их изменения автоматически передаются через DDE—связь. OLE — следующий этап разработок в области обмена данных. Это технология связи программ, обеспечивающая приложениям совместное использование данных. Технология OLE поддерживается с помощью внедрённых и связанных объектов. Развитие OLE — это технология ActiveX.
DDE
Рассмотрим примеры использования Microsoft Access в роли сервера DDE для приложения-клиента, запрашивающего и принимающего даные по каналу связи DDE. Сеанс связи начинается с открытия канала связи; при этом используется функция DDEInitiate, в аргументе которой перечисляются: имя приложения (база данных Access), имя файла базы данных, имя таблицы; пример: intChan1 = DDEInitiate(«MSAccess», «C:WinntProfilesAdministratordde6;TABLE dde1»)
После этого становится возможной передача данных в другое приложение по этому каналу. Для передачи требования на пересылку, например, текстовых данных из приложения-сервера по открытому каналу DDE используется функция DDERequest, в аргументе которой указывается номер канала связи и сформулирован запрос, пример: strResp1 = DDERequest(intChan1, «All»). После окончания передачи данных нужно вызвать в приложении-клиенте функцию DDETerminate для закрытия текущего канала обмена или функцию DDETerminateAll для закрытия всех каналов связи.
Практическая работа 40. DDE
40а. DDE. Простейший пример обмена данными
Задание: записать в файл результат запроса к данным таблицы базы данных (Access).
Порядок выполнения:
- создать базу данных (здесь — dde6), таблицу (здесь — dde1), сделать запрос, закрыть приложение Access,
- создать макрос в приложении Word, код макроса дан ниже,
- стартовать макроc; в результате его выполнения стартует закрытое ранее приложение Access,
- открыть файл dde61.txt (в редакторе Блокнот).
Sub dde6()' макрос в приложении Word, Dim intChan1 As Integer ' канал связи Dim strResp1 As Variant ' требование на запрос ' открыть канал связи intChan1 = DDEInitiate("MSAccess",_ "C:WinntProfilesAdministratordde6;TABLE dde1") strResp1 = DDERequest(intChan1, "All") ' требование на запрос DDETerminate intChan1 ' закрыть текущий канал связи Open "dde61.txt" For Output As #1 ' открыть файл для записи Write #1, strResp1 ' записать результат запроса Close #1 ' закрыть файл End Sub
Содержимое полученного файла dde61.txt — это результат запроса («All»): вывести всeсодержимое таблицы базы данных, рис. 6.1.
Рис.
6.1.
Простейший пример DDE; данные, выводимые в файл
40в. DDE
Приводится аналогичный пример; создаются 4 таблицы: student, (рис. 6.2, рис. 6.3) stipendija, sessija, prikaz; выполняются 4 запроса (рис. 6.4, рис. 6.5), создается макрос в приложении Word (см. код, данный ниже), открываются 4 канала связи, результаты 4-х запросов по 4-м каналам связи выводятся в файлы dde621 — dde624. Пояснения к коду макроса:
- All — вывести все данные из таблиц, включая имена полей,
- FildNames,T — вывести список из 2-х строк, содержащий имена полей (первая строка) и их типы данных (вторая строка).
Sub dde62() ' макрос в приложении Word Dim intChan1 As Integer, intChan2 As Integer, intChan3 As Integer Dim intChan4 As Integer, strResp1 As Variant, strResp2 As Variant Dim strResp3 As Variant, strResp4 As Variant intChan1 = DDEInitiate("MSAccessquot;, quot;A:nin;TABLE Studentquot;) intChan2 = DDEInitiate(quot;MSAccessquot;, quot;A:nin;TABLE Stipendiumquot;)
Рис.
6.2.
Таблица Pruefung
Рис.
6.5.
Результат запроса
intChan3 = DDEInitiate("MSAccess", "A:nin;TABLE Pruefung") intChan4 = DDEInitiate("MSAccess", "A:nin;QUERY Befehl") strResp1 = DDERequest(intChan1, "All") strResp2 = DDERequest(intChan2, "All") strResp3 = DDERequest(intChan3, "FieldNames;T") strResp4 = DDERequest(intChan4, "All") DDETerminate intChan1: DDETerminate intChan2 DDETerminate intChan3: DDETerminate intChan4 Open "dde621.txt" For Output As #1 Write #1, strResp1 Close #1 Open "dde622.txt" For Output As #1 Write #1, strResp2 Close #1 Open "dde623.txt" For Output As #1 Write #1, strResp3 Close #1 Open "dde624.txt" For Output As #1 Write #1, strResp4 Close #1 End Sub
Dynamic Data Exchange (DDE) — механизм взаимодействия приложений в операционных системах Microsoft Windows и OS/2. Хотя этот механизм до сих пор поддерживается в последних версиях Windows, в основном он заменён на более мощные механизмы — OLE, COM и Microsoft OLE Automation. Однако, DDE по прежнему используется в некоторых местах внутри самой Windows, в частности, в механизме ассоциации расширения имени файла с приложениями. Это является следствием модели разработки, в которой Microsoft в новых версиях ОС Windows следит за обеспечением совместимости со всеми её предыдущими версиями. Возможно использование для извлечения данных из сторонних приложений.
Ссылки
- MSDN: Dynamic Data Exchange
Программные интерфейсы и фреймворки Microsoft Windows | |
---|---|
Графика | Проводник Windows • DirectX • Direct3D • GDI • Windows Presentation Foundation • Windows Color System • Windows Image Acquisition • Windows Imaging Component |
Звук | DirectSound • DirectMusic • XACT • Speech API • MME |
Мультимедиа | DirectShow • Windows Media • Media Foundation |
Веб | MSHTML • MSXML • Платформа RSS для Windows • JScript • ActiveX • XMLHttpRequest • Гаджеты |
Доступ к данным | Компоненты Microsoft Data Access • Extensible Storage Engine • ADO.NET • Sync Framework • Jet-механизм |
Сети | Winsock (LSP) • Filtering Platform • NDIS • Windows Rally • Сервис фоновой интеллектуальой передачи данных • P2P API |
Коммуникации | TAPI |
Администрирование | Консоль Win32 • Windows Script Host • Инструментарий управления Windows • PowerShell • Планировщик задач • Offline Files • Теневое копирование • Windows Installer • Диспетчер ошибок Windows • Журнал событий Windows |
Модель компонентов | COM • COM+ • DCOM • .NET Framework |
Библиотеки | Microsoft Foundation Classes (MFC) • Active Template Library (ATL) • Windows Template Library (WTL) • Base Class Library (BCL) |
Разработка драйверов | Windows Driver Model • Windows Driver Foundation (KMDF • UMDF) |
Безопасность | CryptoAPI (CAPICOM) • Windows CardSpace • Data protection API • Security Support Provider Interface |
.NET | .NET Framework • ASP.NET • ADO.NET • .NET Remoting • Windows Presentation Foundation • Windows Workflow Foundation • Windows Communication Foundation • Windows CardSpace • XNA Framework • Silverlight • Библиотека параллельного программирования |
Межпроцессное взаимодействие |
Dynamic Data Exchange (DDE) • MSRPC • Именованные каналы |
Текст и поддержка языков |
Framework Текстовых сервисов • Объектная модель текстов • Редактор метода ввода • Языковые пакеты • Многоязычный интерфейс |
Игры | XNA Framework • DirectX |
API и фреймворки Microsoft | |
---|---|
Графика | Desktop Window Manager · Direct2D · Direct3D (extensions) · GDI / GDI+ · WPF · Windows Color System · Windows Image Acquisition · Windows Imaging Component |
Аудио | DirectMusic · DirectSound · DirectX plugin · XACT · Speech API · XAudio2 |
Мультимедиа | DirectX (Media Objects · Video Acceleration) · DirectInput · DirectShow · Image Mastering API · Managed DirectX · Media Foundation · XNA · Windows Media · Video for Windows |
Web | MSHTML · RSS Platform · JScript · VBScript · BHO · XDR · SideBar Gadgets |
Доступ к данным | Data Access Components · Extensible Storage Engine · ADO.NET · ADO.NET Entity Framework · Sync Framework · Jet Engine · MSXML · OLE DB · OPC |
Сеть | Winsock (LSP) · Winsock Kernel · Filtering Platform · Network Driver Interface Specification · Windows Rally · BITS · P2P API · MSMQ · MS MPI · DirectPlay |
Коммуникации | Messaging API · Telephony API · WCF |
Администрирование и |
Win32 console · Windows Script Host · WMI (extensions) · PowerShell · Task Scheduler · Offline Files · Shadow Copy · Windows Installer · Error Reporting · Event Log · Common Log File System |
Компонентная модель | COM · COM+ · ActiveX · Distributed Component Object Model · .NET Framework |
Библиотеки | Base Class Library (BCL) · Microsoft Foundation Classes (MFC) · Active Template Library (ATL) · Windows Template Library (WTL) |
Драйверы устройств | Windows Driver Model · Windows Driver Foundation (KMDF · UMDF) · WDDM · NDIS · UAA · Broadcast Driver Architecture · VxD |
Безопасность | Crypto API (CAPICOM) · Windows CardSpace · Data Protection API · Security Support Provider Interface (SSPI) |
.NET | ASP.NET · ADO.NET · Base Class Library (BCL) · Remoting · Silverlight · TPL · WCF · WCS · WPF · WF |
Программное обеспечение | EFx Factory · Enterprise Library · Composite UI · CCF · CSF |
IPC | MSRPC · Dynamic Data Exchange (DDE) · Remoting · WCF |
Доступность | Active Accessibility · UI Automation |
Текст и многоязная |
DirectWrite · Text Services Framework · Text Object Model · Input method editor · Language Interface Pack · Multilingual User Interface · Uniscribe |
From Wikipedia, the free encyclopedia
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.
History and architecture[edit]
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).[1] 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.[2]
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.
Relationship to modern automation technologies[edit]
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.[3] 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.[4] 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.
NetDDE[edit]
Wonderware developed an extension for DDE called NetDDE that could be used to initiate and maintain the network connections needed for DDE conversations between DDE-aware applications running on different computers in a network and transparently exchange data. A DDE conversation is an interaction between client and server applications. NetDDE could be used along with DDE and the DDE management library (DDEML) in applications.
/Windows/SYSTEM32
DDESHARE.EXE (DDE Share Manager)
NDDEAPIR.EXE (NDDEAPI Server Side)
NDDENB32.DLL (Network DDE NetBIOS Interface)
NETDDE.EXE (Network DDE - DDE Communication)
The NetDDE library files
Microsoft licensed a basic (NetBIOS Frames only) version of the product for inclusion in various versions of Windows from Windows for Workgroups to Windows XP. In addition, Wonderware also sold an enhanced version of NetDDE to their own customers that included support for TCP/IP. The technology is extensively used in the SCADA field. Basic Windows applications using NetDDE are Clipbook Viewer, WinChat and Microsoft Hearts.
NetDDE was still included with Windows Server 2003 and Windows XP Service Pack 2, although it was disabled by default. It has been removed entirely in Windows Vista.[5] However, this will not prevent existing versions of NetDDE from being installed and functioning on later versions of Windows.
See also[edit]
- ActiveX
- Component Object Model (COM)
- Distributed Component Object Model (DCOM)
- Microsoft .NET
- Observer pattern
References[edit]
- ^ «Net DDE to DOT NET Remoting». 2006-01-12. Archived from the original on 2010-11-11.
- ^ Chen, Raymond (27 Jun 2005). «Why are there broadcast-based mechanisms in Windows?». The Old New Thing. Archived from the original on 16 Dec 2009.
- ^ Chen, Raymond (26 Feb 2007). «Please feel free to stop using DDE». The Old New Thing. Archived from the original on 15 Mar 2019.
- ^ Joel Spolsky — comment on Fog Creek Software discussion forum
- ^ NetDDE has been removed in Windows Vista.
Sources[edit]
- Charles Petzold. «Dynamic Data Exchange» in Programming for Windows 95. Microsoft Press.
External links[edit]
- MSDN: About Dynamic Data Exchange (DDE)
- NetDDE
- Clojure Bindings for DDE, for use in Clojure or Java Applications