DDE【Dynamic Data Exchange】動的データ交換
概要

DDEはプロセス間通信(IPC)の一種で、あるアプリケーションが「クライアント」(client)、別のアプリケーションが「サーバ」(server)として動作し、要求と応答の形でデータやコマンドをやり取りする。やり取りの対象は「トピック」(topic)や「アイテム」(item)と呼ばれる単位で識別される。
通信手順を抽象化するAPIとして「DDEML」(Dynamic Data Exchange Management Library)が提供されている。扱えるのは基本的なデータの送受信や命令の伝達に限られ、GUIを別のウィンドウ内に埋め込むような高度な連携には対応しない。コマンド体系はアプリケーションごとに個別に定義する必要があり、共通の標準は存在しない。
1987年に米マイクロソフト(Microsoft)社がWindows 2.0に実装した技術で、当時Windowsと技術基盤を共有していた米IBM社の「OS/2」にも採用された。Windowsでは、エクスプローラーがファイル操作の指示を各アプリケーションへ伝える手段や、表計算ソフトが他のアプリケーションのデータを参照・更新する手段として利用された。
その後、Windows上のソフトウェア間連携技術の主流はオブジェクトの埋め込みや複雑なデータ構造を扱える「OLE」(Object Linking and Embedding)および後継の「COM」(Component Object Model)へと移行していき、DDEは過去のソフトウェアとの互換性を維持するために残された。
エクスプローラーからアプリケーションへの通知手段としては長く使われ続けたが、DDEを経由して任意のコマンドを実行させる攻撃手法が問題となり、Microsoft社は2017年以降、ExcelやWordでDDE機能をデフォルトで無効化した。現在では新規システムへの採用はなく、レガシーシステムの保守などごく限られた文脈でのみ参照される。