Fast Infoset ( FI ) ist ein internationaler Standard, der ein binäres Kodierungsformat für den XML Information Set ( XML Infoset ) als Alternative zum XML -Dokumentformat spezifiziert. Ziel ist eine effizientere Serialisierung als beim textbasierten XML-Format.

FI ist im Prinzip eine verlustfreie Komprimierung von XML , ähnlich wie gzip . Der Unterschied besteht darin, dass zwar die ursprüngliche Formatierung verloren geht, aber bei der Konvertierung von XML nach FI und zurück keine Informationen verloren gehen. Während die Komprimierung im Allgemeinen die physische Datengröße reduziert, optimiert FI sowohl die Dokumentgröße als auch die Verarbeitungsleistung.

Die Fast Infoset-Spezifikation wurde sowohl von der ITU-T als auch von den Normungsinstitutionen der Internationalen Organisation für Normung / Internationalen Elektrotechnischen Kommission (ISO/IEC) definiert. FI ist offiziell in der ITU-T-Empfehlung X.891 und ISO/IEC 24824-1 definiert und trägt den Titel Fast Infoset . Die Norm wurde von der ITU-T am 14. Mai 2005 und von der ISO am 4. Mai 2007 veröffentlicht. Das Dokument zur Fast Infoset-Norm kann von der ITU-Website heruntergeladen werden . Obwohl das Dokument keine Einschränkungen des geistigen Eigentums (IP) hinsichtlich Implementierung oder Nutzung festlegt, weist Seite ii darauf hin, dass entsprechende Mitteilungen eingegangen sind und das Thema möglicherweise nicht völlig frei von IP-Ansprüchen ist.

Ein weit verbreiteter Irrtum ist, dass FI die Unterstützung von ASN.1- Werkzeugen erfordert. Obwohl die formale Spezifikation die ASN.1-Notation verwendet, beinhaltet der Standard die Encoding Control Notation (ECN), und ASN.1-Werkzeuge sind für Implementierungen nicht zwingend notwendig.

Eine Alternative zu FI ist FleXPath. [ 1 ]

Struktur

Das zugrundeliegende Dateiformat ist ASN.1 mit Tag/Längen/Wert-Blöcken. Textwerte von Attributen und Elementen werden mit Längenpräfixen anstelle von Endbegrenzern gespeichert, und Datensegmente benötigen keine Maskierung für Sonderzeichen. End-Tags („Terminatoren“) sind nur am Ende einer Liste von Kindelementen erforderlich. Binärdaten werden im nativen Format übertragen und müssen nicht in ein Übertragungsformat wie Base64 konvertiert werden .

Fast Infoset ist ein auf ASN.1-Formen und -Notation basierendes Format höherer Ordnung. Im Gegensatz zu herkömmlichen ASN.1-Kodierungsverfahren werden Element- und Attributnamen im Oktettstrom gespeichert. Dadurch lässt sich die herkömmliche XML-Datei aus dem Binärstrom ohne Bezugnahme auf das XML-Schema wiederherstellen, und das XML-Schema muss nicht als ASN.1-Definition ausgedrückt werden. (ASN.1-„Tags“ sind lediglich Typnamen, z. B. String, Integer oder komplexe Datentypen.) ASN.1 wird zusammen mit ECN zur Definition des Dateiformats verwendet.

Für die meisten Zeichenketten wird eine Indextabelle erstellt, die Element- und Attributnamen sowie deren Werte enthält. Das bedeutet, dass der Text wiederholter Tags und Werte nur einmal pro Dokument vorkommt.

Implementierungen

Referenzimplementierung

Eine Java-Implementierung der FI-Spezifikation ist als Teil der Eclipse-Implementierung von JAXB verfügbar. Die Bibliothek ist Open Source und wird unter den Bedingungen der Apache-Lizenz 2.0 vertrieben. Mehrere Projekte nutzen diese Implementierung, darunter die Referenzimplementierung für JAX-WS, die in Eclipse Metro verwendet wird .

Die QtitanFastInfoset-Implementierung für C++ ist unter einer kommerziellen Lizenz als Komponente für das Qt- Framework erhältlich.

Leistung

Da Fast Infosets im Rahmen des XML-Generierungsprozesses komprimiert werden, sind sie wesentlich schneller als die Verwendung von Zip-ähnlichen Komprimierungsalgorithmen auf einem XML-Stream, obwohl die Ausgabe nicht so gut komprimiert ist.

Die SAX-Parsing-Performance von Fast Infoset ist deutlich höher als die von XML 1.0, selbst ohne Zip-Komprimierung. Typische Geschwindigkeitssteigerungen der Referenzimplementierung in Java liegen um den Faktor 10 gegenüber Java Xerces und um den Faktor 4 gegenüber dem Piccolo-Treiber (einem der schnellsten Java-basierten XML-Parser). [ 2 ] [ 3 ] [ 4 ]

Typische Anwendungen

Mobile Geräte – Mobile Geräte verfügen typischerweise über Datenverbindungen mit geringer Bandbreite und langsamere CPUs. Fast Infoset benötigt weniger Bandbreite als XML und wird schneller verarbeitet, wodurch es die bessere Wahl darstellt.

Speicherung großer Datenmengen – Beim Speichern von XML-Daten in Dateien oder Datenbanken kann das erzeugte Datenvolumen oft unzumutbare Grenzen überschreiten, was verschiedene Nachteile mit sich bringt: Die Zugriffszeiten steigen mit zunehmender Datenmenge, die CPU-Auslastung steigt, da die Verarbeitung von XML-Daten mehr Rechenleistung benötigt, und die Speicherkosten steigen. Durch die Speicherung von XML-Daten im Fast Infoset-Format kann das Datenvolumen um bis zu 80 Prozent reduziert werden.

XML-Übertragung über das Internet – Wenn eine Anwendung Daten über das Internet überträgt, kann die Netzwerkbandbreite einen erheblichen Engpass darstellen, der die Leistung von Clientanwendungen stark beeinträchtigt und die Kapazität des Servers zur Bearbeitung von Anfragen einschränkt. Durch die Reduzierung der Größe der über das Internet übertragenen Daten verkürzt sich die Sende- und Empfangszeit, und die Anzahl der Transaktionen, die ein Server pro Stunde verarbeiten kann, erhöht sich.

Siehe auch

Referenzen

  1. ^ Amer-Yahia, Sihem, Laks VS Lakshmanan und Shashank Pandit. „FleXPath: Flexible Struktur- und Volltextabfrage für XML.“ Proceedings der internationalen ACM SIGMOD-Konferenz 2004 zum Thema Datenmanagement. ACM, 2004.
  2. ^ „Schnelle Leistungsberichte von Infoset“ . 06.10.2005 . Abgerufen am 11.10.2007 .{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link )
  3. ^ „Japex Report: ParsingPerformance“ . 10.01.2005 . Abgerufen am 11.10.2007 .{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link )
  4. ^ „Japex Report: SizePerformance“ . 10.01.2005 . Abgerufen am 11.10.2007 .{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link )