Dynamic Date Exchange (DDE) is a message-driven Microsoft® computer protocol that enables data to be exchanged between applications running under Windows operating systems. Known more generally as inter-process communication, Dynamic Data Exchange broadcasts messages to establish a "conversation" and communications channel between the application requesting data, the client, and the application where the data resides, i.e., the server. Written in and initiated by the client application, a DDE request consists of the server's DDE Application Name, the nature of the data to be exchanged, called the DDE Topic, and the DDE Item Name. DDE links may be executed once or updated dynamically, in which case the recipient application is notified whenever the value of the specified data on the server application changes. Multiple DDE links may be established from any one application, and an application may act as client and server at the same time.
Dynamic Data Exchange works by broadcasting messages containing the DDE request to all other running applications. If a running application recognizes the DDE request, it responds and a conversation is established. The Windows operating system then establishes a link between the two applications. Communications channels can be one-time only or permanent in cases where the client application needs to have updated data on a regular basis. There are two types of permanent links: warm and hot. Warm links first ask for the user's approval to update the client application. With hot links this is done automatically.
DDE data communications take place behind the scenes, i.e., the user can carry on doing whatever he or she is doing while the DDE request is executed in the background. As such, Dynamic Data Exchange communication is said to be asynchronous. The DDE request and its result may be stored in shared memory while both client and server applications continue whatever they are processing until the request and response can be acted upon.
This protocol has to some extent been superseded by the Microsoft® Object Linking and Embedding (OLE) and Component Object Model (COM), as well as by the Dynamic Data Exchange Management Library (DDEML). DDE is still widely used for certain purposes, especially ones that do not require ongoing user interaction, however. Examples include updating a client Microsoft® Excel spreadsheet from server applications that receive real-time data from sensors or other measuring devices on a production line, linking to applications that receive real-time stock and other financial market updates, or regularly updating a spreadsheet with values from a database.