ダイナミックデータ交換(DDE )は、 Microsoft WindowsおよびOS/2の初期バージョンで使用されていたプロセス間通信技術です。DDEを使用すると、プログラムは他のプログラムから提供されたオブジェクトを操作したり、それらのオブジェクトに影響を与えるユーザーの操作に応答したりできます。DDEはオブジェクトリンクおよび埋め込み(OLE)によって部分的に置き換えられ、現在では下位互換性のためにのみWindowsシステムで維持されています。
Dynamic Data Exchange は、1987 年にWindows 2.0のリリースとともに、あるプログラムが別のプログラムと通信したり制御したりできるプロセス間通信方法として初めて導入されました。これはSun の RPC (Remote Procedure Call) に似ています。[ 1 ] 当時、オペレーティングシステムとクライアントアプリケーション間の通信方法は「Windows メッセージング レイヤー」のみでした。DDE はこのプロトコルを拡張し、メッセージ ブロードキャストを介してクライアントアプリケーション間のピアツーピア通信を可能にしました。
DDEはメッセージブロードキャストを介して動作するため、メッセージをポンプしないウィンドウ管理コードに対して脆弱です。この問題は、DDEがMicrosoft Windowsのプリエンプティブマルチタスクよりも前に開発されたため、DDEの設計時には考慮されていませんでした。 [ 2 ]
さらに、ウィンドウ ハンドルを管理するコードはすべて DDE ブロードキャストに応答できます。DDE の開始者は、予期される応答と予期されない応答を区別する必要があります。DDE の対話者は通常、階層的な文字列キーで求める情報を表現します。たとえば、Microsoft Excelのセルは、DDE では「アプリケーション」名で認識されます。各アプリケーションは、「トピック」と呼ばれるグループで情報をさらに整理でき、各トピックは「アイテム」として個々のデータを提供できます。たとえば、ユーザーが Microsoft Excel の「Book1.xls」という名前のスプレッドシートの、最初の行の最初の列のセルにある値を取得したい場合、アプリケーションは「Excel」、トピックは「Book1.xls」、アイテムは「r1c1」になります。Excel の操作によるセルの内部変更は、追加のメッセージ ブロードキャストを介して呼び出し元のアプリケーションに(逆方向に)通知されます。
DDE の一般的な用途は、カスタム開発されたアプリケーションが市販のソフトウェアを制御することです。たとえば、社内のカスタムアプリケーションは、DDE を使用してMicrosoft Excelスプレッドシートを開き、Excel との DDE 会話を開始して DDE コマンドを送信することで、データを入力する場合があります。この機能は、主にコンポーネント オブジェクト モデルスイートのテクノロジーに置き換えられました。Microsoft は、Windows 95のリリース以降、社内で DDE を使用していません。[ 3 ] たとえば、Excel は現在、広範なOLE オートメーションオブジェクト モデルを公開しており、これは Excel と通信するための推奨方法です。ただし、この技術は、特に財務データの配信でまだ使用されています。[ 4 ] DDE は従来の Windows GUIプログラムよりも多くのオペレーティングシステム コンポーネントを必要としないため、依存関係を最小限に抑えようとするプログラムにとって [あまり使用されていない] 代替手段でもあります。
Wonderware社は、DDEの拡張機能であるNetDDEを開発しました。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ライブラリファイル
マイクロソフトは、Windows for WorkgroupsからWindows XPまでの様々なバージョンのWindowsに組み込むため、この製品の基本バージョン(NetBIOSフレームのみ)のライセンスを供与しました。さらに、WonderwareはTCP/IPをサポートするNetDDEの拡張バージョンを自社の顧客向けに販売しました。この技術はSCADA分野で広く使用されています。NetDDEを使用する基本的なWindowsアプリケーションには、Clipbook Viewer、WinChat、Microsoft Heartsなどがあります。
NetDDE はWindows Server 2003およびWindows XP Service Pack 2に含まれていましたが、デフォルトでは無効になっていました。Windows Vistaでは完全に削除されています。[ 5 ]ただし、これにより、既存のバージョンの NetDDE が後のバージョンの Windows にインストールされ、機能することが妨げられることはありません。