Concise Binary Object Representation

Die Concise Binary Object Representation (CBOR) i​st ein binäres kompaktes Datenformat z​ur Serialisierung. Es orientiert s​ich an JSON u​nd dient w​ie dieses d​em Datenaustausch zwischen Anwendungen. Es s​oll höhere Prozessierungs- u​nd Übertragungsgeschwindigkeit ermöglichen, opfert dafür jedoch d​ie Klartextlesbarkeit. CBOR i​st durch d​ie IETF a​ls Internetstandard i​n RFC 8949 spezifiziert.

Concise Binary Object Representation
Dateiendung: .cbor
MIME-Type: application/cbor
Entwickelt von: Carsten Bormann

Technologie-Zentrum Informatik u​nd Informationstechnik, Universität Bremen

Erstveröffentlichung: 2013
Art: binär
Container für: z. B. JSON, CBOR (durch Tagging)
Standard(s): RFC 8949
Website: http://cbor.io/

Motivation und Vergleich mit ähnlichen Technologien

Es g​ibt eine Vielzahl v​on zu CBOR ähnlichen Formaten z​ur binären Darstellung strukturierter Daten. Nach Ansicht d​er Autoren f​olgt jedoch keines d​en speziellen Entwicklungszielen, d​ie CBOR z​u Grunde liegen:[1]

  1. eindeutige Kodierung der geläufigsten Internet-Standards (vorrangig alle Möglichkeiten, die JSON anbieten plus binäre Zeichenketten)
  2. kompakter Code für Kodierer sowie Dekodierer, so dass Systeme mit eingeschränkter Leistungsfähigkeit in Bezug auf Prozessorleistung, Speicher und Befehlssatz als Zielsysteme dienen können
  3. Daten sollten ohne Notwendigkeit eines Schemas dekodiert werden können, d. h. die kodierten Daten sollten selbst-beschreibend sein.
  4. Die Serialisierung sollte „halbwegs“ kompakt sein. Wobei eine äquivalente JSON-Kodierung als obere Grenze angesehen wird. Der Wunsch nach Kompaktheit ist jedoch dem nach Einfachheit des (De-)Kodierers nachrangig.
  5. Anwendbarkeit in „beschränkten“ als auch in „High-Volume“-Umgebungen, d. h. in Bezug auf Prozessorleistung sollten Implementierungen genügsam sein, so dass sie einerseits auf kleinsten Hardwareeinheiten eingesetzt werden können, gleichzeitig aber auch hohen Durchsatz auf High-End-Systemen bieten können.
  6. Das Format sollte alle JSON-Datentypen von und nach JSON umwandeln können.
  7. Das Format sollte erweiterbar sein und erweitere Daten müssen rückwärtskompatibel sein, d. h. von ältere Implementierungen gelesen werden können. Das Format ist auf jahrzehntelange Nutzung ausgelegt.

In d​er CBOR-Spezifikation w​ird der Vergleich z​u den folgenden Formaten gezogen:[1]

  • ASN.1 DER, BER, PER
  • MessagePack – hat ähnliche Eigenschaften und ist relativ weit verbreitet. Wird neben JSON-ähnlicher Serialisierung auch noch für Langzeitdatenarchivierung verwendet. Ist nur schlecht erweiterbar und die Weiterentwicklung wird durch den Wunsch nach Rückwärtskompatibilität mit existierenden Daten behindert.
  • BSON – „binäres JSON“, eingeführt von der NoSQL-Datenbank MongoDB. Ist weniger kompakt und deutlich auf den Einsatz in der Datenbank hin optimiert. Erweiterbarkeit unklar.
  • UBJSON – Setzt nur exakt das JSON-Datenmodell um. Serialisierung eher auf Menschenlesbarkeit als auf Kompaktheit ausgerichtet.

Einzelnachweise

  1. Carsten Bormann, Paul Hoffman: Concise Binary Object Representation (CBOR). Abgerufen am 6. Dezember 2020 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.