In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, Dynamic Data Exchange (DDE) is a technology for
interprocess communication
In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categori ...
used in early versions of
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
and
OS/2
OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position 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
Object Linking & Embedding (OLE) is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension (OCX), a way to develop and use custom user i ...
(OLE), and is currently maintained in Windows systems only for the sake of
backward compatibility
Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially i ...
.
History and architecture
Dynamic Data Exchange was first introduced in 1987 with the release of
Windows 2.0 as a method of
interprocess communication
In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categori ...
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
In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preempt ...
.
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
Cell most often refers to:
* Cell (biology), the functional basic unit of life
Cell may also refer to:
Locations
* Monastic cell, a small room, hut, or cave in which a religious recluse lives, alternatively the small precursor of a monastery ...
in
Microsoft Excel
Microsoft Excel is a spreadsheet developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro (comp ...
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
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
Microsoft Excel is a spreadsheet developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro (comp ...
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
Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
. For example, Excel now exposes an extensive
OLE Automation
In Microsoft Windows applications programming, OLE Automation (later renamed to simply Automation) is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for use ...
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
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
program, it is also a
ittle-usedalternative for programs seeking to minimize their
dependencies.
NetDDE
Wonderware
Wonderware was a brand of industrial software now owned by Aveva and rebranded under the AVEVA name. Wonderware was part of Invensys plc, and Invensys plc was acquired in January 2014 by Schneider Electric. Invensys plc.[NetBIOS Frames
NetBIOS Frames (NBF) is a non- routable network- and transport-level data protocol most commonly used as one of the layers of Microsoft Windows networking in the 1990s. NBF or NetBIOS over IEEE 802.2 LLC is used by a number of network operating s ...]
only) version of the product for inclusion in various versions of Windows from
Windows for Workgroups
Windows 3.1 is a major release of Microsoft Windows. It was Released-to-manufacturing, released to manufacturing on April 6, 1992, as a successor to Windows 3.0.
Like its predecessors, the Windows 3.1 series ran as a Shell (computing), shell ...
to
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
. In addition, Wonderware also sold an enhanced version of NetDDE to their own customers that included support for
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
. The technology is extensively used in the
SCADA
Supervisory control and data acquisition (SCADA) is a control system architecture comprising computers, networked data communications and graphical user interfaces for high-level supervision of machines and processes. It also covers sensors and ...
field. Basic Windows applications using NetDDE are
Clipbook Viewer
ClipBook Viewer is a discontinued utility included in the Windows NT family of operating system that allows users to view the contents of the local clipboard, clear the clipboard or save copied and cut items. A feature restricted version, called C ...
,
WinChat and
Microsoft Hearts
''Hearts'', also known as ''Microsoft Hearts'', is a computer game included with Microsoft Windows, based on a card game with the same name. It was first introduced in Windows 3.1 in 1992, and was included in every version of Windows up to Wind ...
.
NetDDE was still included with
Windows Server 2003
Windows Server 2003 is the sixth version of Windows Server operating system produced by Microsoft. It is part of the Windows NT family of operating systems and was released to manufacturing on March 28, 2003 and generally available on April 24, 2 ...
and
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
Service Pack 2, although it was disabled by default. It has been removed entirely in
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
.
NetDDE has been removed in Windows Vista.
/ref> However, this will not prevent existing versions of NetDDE from being installed and functioning on later versions of Windows.
See also
* ActiveX
ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide Web. ...
* Component Object Model (COM)
* Distributed Component Object Model
Distributed Component Object Model (DCOM) is a proprietary Microsoft technology for communication between software components on networked computers. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the comm ...
(DCOM)
* Microsoft .NET
The Microsoft .NET strategy is a marketing plan that Microsoft followed in the early 2000s. Steve Ballmer described it as the company's "most ambitious undertaking since Internet Strategy Day in 1995". In support of this strategy, between 2000 and ...
* Observer pattern
In software design and engineering, the observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by ca ...
References
Sources
* Charles Petzold
Charles Petzold (born February 2, 1953) is an American programmer and technical author on Microsoft Windows applications. He is also a Microsoft Most Valuable Professional and was named one of Microsoft's seven Windows Pioneers.
Biography
He g ...
. "Dynamic Data Exchange" in ''Programming for Windows 95''. Microsoft Press.
External links
MSDN: About Dynamic Data Exchange (DDE)
NetDDE
Clojure Bindings for DDE, for use in Clojure or Java Applications
{{Microsoft APIs
Inter-process communication
Microsoft application programming interfaces
Windows communication and services