Renaissance der Binärformate
Weniger ist mehr
Ein Artikel von Maik Wojcieszak, Gründer und Geschäftsführer der Kieler Firma wobe-systems GmbH.
Am Anfang waren 1 und 0
Jahrzehntelang wurde und wird das Internet von textbasierten Datenformaten beherrscht. Netzwerkbandbreiten, Speichermenge und die Rechenleistung moderner Computersysteme machten den dadurch entstandenen Mehraufwand unerheblich. Bis vor wenigen Jahren war die verbreitete Meinung, diese Entwicklung würde sich endlos fortsetzen. Aktuell ist jedoch ein Umdenken erforderlich. Das Internet der Dinge und Industrie 4.0 sind nur zwei Beispiele, die dabei Innovationen vorantreiben.
Die ersten Computersysteme verwendeten zur Speicherung und für den Transport von Daten eine binäre Darstellung. Der Grund dafür ist die effizientere Speicherung und Verarbeitung und der damit verbundene geringe Platzbedarf. Beispielsweise kann die Zahl 18446744073709551615 binär in 8 Bytes dargestellt werden. In dieser Form lässt sie sich leicht mit schnellen Maschinenbefehlen in die Register einer CPU kopieren und verarbeiten. Als Text dargestellt benötigt die gleiche Zahl 20 Zeichen und damit im günstigsten Fall 20 Bytes. Wird ein Textformat verwendet, das mehr als ein Byte pro Zeichen verwendet wie UTF-16, vervielfacht sich der Speicherbedarf entsprechend. Eine direkte Verarbeitung durch die CPU ist nicht möglich. Eine Umwandlung der Zahl von Text in die binäre Darstellung ist erforderlich, was Zeit, Rechenleistung und weiteren Speicher benötigt.
|
Felder und Attribute
Um Daten binär zu speichern, reicht es nicht aus, sie in eine Datei oder einen Speicherbereich zu schreiben. Es muss ein Format definiert werden, damit andere Programme die einzelnen Werte lesen können. Im einfachsten Fall wird für jedes Byte innerhalb des Formats eine Bedeutung festgelegt. Abbildung 1 zeigt ein einfaches Beispiel mit Personendaten. Formate dieser Art sind auf einen bestimmten Zweck festgelegt und nicht erweiterbar.
Um nicht für jeden neuen Wert, der benötigt wird, die Spezifikation des Formats ändern zu müssen, erlauben erweiterbare Binärformate Werte mit Attributen wie dem Datentyp, Länge, Funktion oder einem Namen in das Format zu schreiben. Die Menge des Speichers, der dabei für einen Wert benötigt wird, ist zwar größer, jedoch rechtfertigt die zusätzliche Flexibilität diese Vorgehensweise in jedem Fall.
Objekte austauschen
Am 3. November 1992 erschien die erste Version der HTML-Spezifikation. Ziel des neuen, textbasierten Datenformats war der Austausch von Forschungsergebnissen zwischen den Mitarbeitern der Europäischen Organisation für Kernforschung (CERN). Die hierarchische Struktur von HTML erlaubte eine flexible Verschachtelung der Informationen, indem Abschnitte durch eine leicht erkennbare Start- und End-Markierung gekennzeichnet wurden. Diese so genannten Tags waren in der HTML Spezifikation festgelegt und konnten nicht einfach erweitert werden.
Es wurde schnell erkannt, dass die von HTML eingeführte Struktur der Daten sich auch auf andere Bereiche anwenden lässt und angelehnt an die Syntax von HTML, ein Format definiert, dessen Tags und Attribute beliebig benannt werden können. Die Erweiterbarkeit wird im Namen Extensible Markup Language (XML) ausgedrückt.
Mit der in Internetbrowsern verwendeten Sprache JavaScript wurde ein weiteres textbasiertes Format mit der Möglichkeit hierarchische Datenstrukturen zu bilden eingeführt. Im Namen dieses Formats, JavaScript Object Notation (JSON), taucht der Begriff "Objekt" auf. Ein Objekt ist eine Sammlung von benannten Werten, die ebenfalls wieder Objekte sein können. Daraus ergibt sich die Möglichkeit der Verschachtelung. Wie auch XML unterstützt JSON geordnete Listen. JSON bietet gegenüber XML eine sehr gute Verfügbarkeit in Internetbrowsern und geringere Datenmengen bei der Übertragung. Darüber hinaus legt JSON die Darstellung von Standarddatentypen wie zum Beispiel Zahlen genau fest.
Binär ist besser
Textbasierte Formate können von Servern mit genug Rechenleistung und Speicher schnell genug verarbeitet werden. Mobile Endgeräte, netzwerkfähige Sensoren und eingebettete Systeme verfügen dafür oft nicht über die nötigen Resourcen. Diese eingeschränkten Geräte (constraint devices), die im Zusammenhang mit dem Internet der Dinge (IoT) rasant an Bedeutung gewinnen, erfordern jedoch ebenfalls einen immer komplexeren Austausch von Daten.
Um diesen Erfordernissen gerecht zu werden und dabei die Vorteile von Objekt-Hierarchischen Datenstrukturen zu erhalten, wurden neue Datenformate definiert.
MessagePack lehnt sich in seiner Struktur stark an JSON an. Effizienz und eine breite Unterstützung von Plattformen und Programmiersprachen zeichnen das Format aus.
Concise Binary Object Representation (CBOR) ist seit 2013 ein Internetstandard. Die Spezifikation wurde von der Internet Engineering Task Force (IETF) in RFC 7049 veröffentlicht. Ebenfalls an JSON orientiert legt CBOR den Schwerpunkt auf Kompaktheit, präzise Datentypen und Erweiterbarkeit.
UJO Binary Data Object Notation ist ebenfalls an das Objekt-Hierarchische Datenmodell von JSON angelehnt, erweitert jedoch die Menge der unterstützten Datentypen. Beispielsweise werden Datum- und Zeitangaben festgelegt und leere Werte explizit gekennzeichnet. Ziel ist die automatische Konvertierung von Datenbankfeldern für die Anbindung an mobile Endgeräte und eingebettete Systeme.
Fazit
Bereits existierende objekt-hierarchische Binärformate sind leicht zu implementieren und bieten Vorteile bezüglich Geschwindigkeit und Effizienz. Nicht nur Anwendungen im Internet der Dinge können davon profitieren. Automatisierungslösungen innerhalb kontrollierter Netzwerkumgebungen wie zentralisierte Kontrollmonitore oder mobile Datenerfassungsgeräte und werkstückbezogene Datenspeicher sind ebenfalls mögliche Anwendungen.
Der Autor
Maik Wojcieszak ist Gründer und Geschäftsführer der Kieler Firma wobe-systems GmbH, die seit mehr als 15 Jahren verteilte Systeme für industrielle Anforderungen entwickelt. Als Fachautor publiziert er Artikel zu den Themenbereichen Internet of Things und Industrie 4.0 mit einem Schwerpunkt auf Netzwerkprotokolle und Datenformaten.
Kontaktangaben
wobe-systems GmbH
Maik Wojcieszak
Tel.: 0431.38 21 65 00
E-Mail: mw@wobe-systems.com
Web: http://www.wobe-systems.com, https://www.tml-software.com
Kommentare
Einen Kommentar schreiben