Zum Inhalt springen

Dynamic Data Exchange

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. September 2020 um 08:37 Uhr durch Legatorix (Diskussion | Beiträge) (Details: Beleg). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Dynamic Data Exchange (englisch für dynamischer Datenaustausch, kurz DDE) ist ein Protokoll für den Datenaustausch zwischen verschiedenen Anwendungsprogrammen, also eine Interprozesskommunikation nach dem Client-Server-Modell.

Details

Dieses Protokoll ist lokal und in den Betriebssystemen Windows (ab Version 2.0) und OS/2 verfügbar. Die per Zusatzprotokoll NetDDE geraume Zeit mögliche Verwendung in Rechnernetzen wurde seit Windows Vista aus Sicherheitsgründen entfernt.[1]

Damit Daten ausgetauscht oder Befehle abgesetzt werden können, müssen beide Anwendungsprogramme gleichzeitig laufen. Falls nötig muss der DDE-Client den benötigten Server-Prozess starten. Der Datenaustausch erfolgt grundsätzlich in kompletten Dateneinheiten in Windows-Zwischenablage-Formaten (also auch Binärdaten); kontinuierliche Datenströme werden üblicherweise nicht unterstützt. Da zwei sich kennende Programme neue Zwischenablageformate definieren können, ist auch der Austausch von großen arbiträren Datenmengen, etwa Matrizen in Matlab, kein Problem. Als Besonderheit bietet DDE ein „Advise“ genanntes Hot-Tracking (Datenänderungsbenachrichtigung) an, mit dem der Client automatisch über Veränderungen des Server-Datenbestands informiert wird.

Typisch für DDE und auch festgelegt ist die dreistufige Adressierung von Datenelementen, eingeteilt Server (Dienst), Topic (Thema) und Item (Element). Eine tiefergehende Adressierung, etwa bestimmte Zeilen und Spalten einer Tabellenkalkulationsseite, muss durch ein wahlfreies, nicht-aufzählbares Item erfolgen.

Implementiert ist DDE durch Nachrichten über die Windows-typischen Thread-Warteschlangen sowie mittels gemeinsam genutztem Speicher für die eigentlichen Daten.

Die Leistungsfähigkeit von DDE liegt grob bei 1000 Übertragungen pro Sekunde, wenn die Kommunikation über einen GUI-Thread erfolgt, und kann bei Verwendung gesonderter Threads deutlich höher liegen. Die mit Windows 3.1 eingeführten DDE-Funktionen, zunächst in der DDEML.DLL verpackt, sind praktisch nur Wrapper, die die Verwendung vereinfachen aber keinen Geschwindigkeitsvorteil bringen.

DDE überwindet „Bitgrenzen“ relativ problemlos. So ist es möglich, dass ein 16-Bit- und ein 32-Bit-Windows-Programm kommunizieren, so auch ein 32-Bit- und ein 64-Bit-Programm. Eine Kommunikation zwischen 16-Bit und 64-Bit ist regulär nur mittels Netzwerk-DDE machbar, da die 64-Bit-Windows-Versionen keine 16-Bit-Unterstützung haben.

Aktueller Stand

DDE findet heute immer noch Verwendung, etwa zum Weiterleiten von Kommandozeilen an bereits laufende Prozesse, typischerweise an MDI-Anwendungen. So kann der Windows-Explorer bei geeignet eingestellten Verknüpfungen ein Dokument an einen bereits laufenden Bearbeitungsprozess „senden“, ohne eine unnötige Prozess-Kopie zu erstellen.

Auf Grund seiner Einfachheit ist Netzwerk-DDE bei Maschinen- und Fabriksteuerungen verbreitet.

DDE wurde durch das OLE-Protokoll ergänzt und erweitert.

Als Alternative, insbesondere für kontinuierliche Datenströme, bieten sich Sockets an.

  1. Microsoft: Understanding Application Compatibility. In: docs.microsoft.com. Microsoft, 9. Dezember 2012, abgerufen am 27. September 2020 (englisch): „Network Dynamic Data Exchange (NetDDE). NetDDE was removed from Windows XP, but was still available on the installation CD. For security reasons, beginning with Windows Vista and Windows Server 2008, Windows no longer supports NetDDE at all.“