© Excellent backgrounds/Shutterstock.com
Java Magazin
Kompakte Daten nicht nur im Internet of Things (IoT)

Binäre Austauschformate

Das Internet der Dinge bringt eine Entwicklung auf die Tagesordnung, die dem Trend immer schnellerer Hardware und immer größerem Arbeitsspeicher diametral entgegensteht: Sensoren mit geringen Ressourcen, die stromsparend arbeiten müssen, werden im Netz in großer Anzahl miteinander verbunden und müssen ihre Daten effizient liefern.

Maik Wojcieszak


Textbasierte Datenaustauschformate wie JSON oder XML benötigen Parser, die auf den jeweiligen Geräten ausgeführt werden. Binäre Daten, wie Bilder oder Audiodateien, werden für die Übertragung als Text aufwändig kodiert. Nicht nur der eigentliche Vorgang der Datenumwandlung benötigt dabei Rechenzeit und Speicher, sondern auch die Menge der zu übertragenen Daten steigt merklich an. Binäre Austauschformate wie Binary JSON [1] (BSON) oder binäre, an XML orientierte Formate wie WBXML [2] wurden für diesen Zweck entwickelt.

Wo sind die Grenzen für die Anwendung binärer Austauschformate? Warum sind binäre Formate nicht nur für das Internet der Dinge interessant?

Lange Zeit war XML [3] das bevorzugte Austauschformat für Daten im Netz. Syntaktisch angelehnt an HTML, einfach strukturiert und mit der Möglichkeit versehen, beliebig neue Datenstrukturen und Tags zu kreieren, bot XML eine Flexibilität, die bisher in keinem anderen Datenformat zu finden war. Es ist möglich, tief verschachtelte Datenmodelle zu entwickeln, und die Darstellung der Daten ist frei wählbar. Auf SOAP [4] basierende Netzdienste verwenden XML für den Austausch von Nachrichten. Viele Schnittstellen wurden im Laufe der Jahre, basierend auf den Möglichkeiten von XML, geschaffen und in unterschiedlichsten Systemen erfolgreich eingesetzt.

REST-basierte Netzdienste [5] verwenden bevorzugt JSON als Datenformat. Es hat sich die Meinung durchgesetzt, JSON sei die bessere Wahl, verglichen mit XML. Ein Pro-Argument ist das geringere Datenvolumen von JSON gegenüber XML [6]. Ob diese zusätzlichen Bytes jedoch eine Rolle spielen, hängt vom jeweiligen Anwendungsfall ab. Für die Verbreitung von JSON spielt sicher ebenfalls eine Rolle, dass JavaScript in Verbindung mit einem Browser JSON problemlos erzeugen und auswerten kann.

XML unterscheidet keine Datentypen, weshalb es der Anwendung überlassen bleibt, die enthaltenen Zeichenketten zu interpretieren. Das macht XML zwar flexibel, jedoch für klassische Daten auch aufwändiger in der Anwendung. Im Gegensatz dazu sind für JSON die möglichen Datentypen und ihre Formatierung festgelegt. Bei der Entwicklung von Schnittstellen erweist sich diese Festlegung als Vorteil, da eine Spezifikation nur die Struktur der Daten festlegt, nicht aber deren Darstellung. Auch die Implementierung wird vereinfacht: Die String-Konvertierung einer Gleitkommazahl ist beispielsweise in vielen Fällen sprachabhängig, was beim Austausch der Daten zwischen Systemen mit unterschiedlichen Sprach...

Java Magazin
Kompakte Daten nicht nur im Internet of Things (IoT)

Binäre Austauschformate

Das Internet der Dinge bringt eine Entwicklung auf die Tagesordnung, die dem Trend immer schnellerer Hardware und immer größerem Arbeitsspeicher diametral entgegensteht: Sensoren mit geringen Ressourcen, die stromsparend arbeiten müssen, werden im Netz in großer Anzahl miteinander verbunden und müssen ihre Daten effizient liefern.

Maik Wojcieszak


Textbasierte Datenaustauschformate wie JSON oder XML benötigen Parser, die auf den jeweiligen Geräten ausgeführt werden. Binäre Daten, wie Bilder oder Audiodateien, werden für die Übertragung als Text aufwändig kodiert. Nicht nur der eigentliche Vorgang der Datenumwandlung benötigt dabei Rechenzeit und Speicher, sondern auch die Menge der zu übertragenen Daten steigt merklich an. Binäre Austauschformate wie Binary JSON [1] (BSON) oder binäre, an XML orientierte Formate wie WBXML [2] wurden für diesen Zweck entwickelt.

Wo sind die Grenzen für die Anwendung binärer Austauschformate? Warum sind binäre Formate nicht nur für das Internet der Dinge interessant?

Lange Zeit war XML [3] das bevorzugte Austauschformat für Daten im Netz. Syntaktisch angelehnt an HTML, einfach strukturiert und mit der Möglichkeit versehen, beliebig neue Datenstrukturen und Tags zu kreieren, bot XML eine Flexibilität, die bisher in keinem anderen Datenformat zu finden war. Es ist möglich, tief verschachtelte Datenmodelle zu entwickeln, und die Darstellung der Daten ist frei wählbar. Auf SOAP [4] basierende Netzdienste verwenden XML für den Austausch von Nachrichten. Viele Schnittstellen wurden im Laufe der Jahre, basierend auf den Möglichkeiten von XML, geschaffen und in unterschiedlichsten Systemen erfolgreich eingesetzt.

REST-basierte Netzdienste [5] verwenden bevorzugt JSON als Datenformat. Es hat sich die Meinung durchgesetzt, JSON sei die bessere Wahl, verglichen mit XML. Ein Pro-Argument ist das geringere Datenvolumen von JSON gegenüber XML [6]. Ob diese zusätzlichen Bytes jedoch eine Rolle spielen, hängt vom jeweiligen Anwendungsfall ab. Für die Verbreitung von JSON spielt sicher ebenfalls eine Rolle, dass JavaScript in Verbindung mit einem Browser JSON problemlos erzeugen und auswerten kann.

XML unterscheidet keine Datentypen, weshalb es der Anwendung überlassen bleibt, die enthaltenen Zeichenketten zu interpretieren. Das macht XML zwar flexibel, jedoch für klassische Daten auch aufwändiger in der Anwendung. Im Gegensatz dazu sind für JSON die möglichen Datentypen und ihre Formatierung festgelegt. Bei der Entwicklung von Schnittstellen erweist sich diese Festlegung als Vorteil, da eine Spezifikation nur die Struktur der Daten festlegt, nicht aber deren Darstellung. Auch die Implementierung wird vereinfacht: Die String-Konvertierung einer Gleitkommazahl ist beispielsweise in vielen Fällen sprachabhängig, was beim Austausch der Daten zwischen Systemen mit unterschiedlichen Sprach...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang