SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
Mit CD       BRM + + + Delphis VirtualStringTree + + + Fast Infoset




         Software, Systems & Development

3.08           Mai / Juni               www.entwickler-magazin.de      Deutschland € 6,50   Österreich € 7,00 Schweiz sFr 13,40




                                        XAML WPF
  Schnelleres XML
  Bessere Performance mit
                                                                       und
  Fast Infoset

                                        Die Grundlagen
  Mathematik mit
  XSLT 2.0                              auf einen Blick
  Transformation in
  Kreisdiagramme

                                        Ethical
                                        Hacking
  Reporting
  List & Label 13 im Test


  Onepoint
                                        Strategien für Ihre Sicherheit
  Effektives
  Projektmanagement                       Stimmen aus der LightZone
                                          Bildbearbeitung in der Praxis
  RIA mit Ext JS 2.0

                                        DB2 9.5
  Das bringt der neue Trend                                                Große Datenmengen
                                                                           effizient verwalten
CD-Inhalt
                                                                                                 Alle Infos auf Seite 3




   Software                                                    Testversionen
                                                                                                                          Lehr- oder Infoprogramme
                                                                                                                          Datenträger enthält nur




   Onepoint Project 2007 Open Edition     WordPress 2.3.3           Priotecs IT Demo
   Ext JS 2.0.2                           Plone 3.0.6               Builder
      Joomla 1.5.1                        OpenCMS 7.0.4             Light Crafts
        TYPO3 4.1.6                       Bricolage 1.10.4          LightZone 3.5
         Drupal 6.1
                                                                                                                          !
XML                                                                                                                       Fast Infoset




Einführung in Fast Infoset


Schnelleres XML
Der Siegeszug von XML ist nicht aufzuhalten. Ob als SOAP-Nachricht, Spring-Konfigurationsfile oder
XHTML-Dateien für die Weboberfläche: XML ist überall zu finden und aus der heutigen IT nicht mehr
wegzudenken. Aber der größte Nachteil von XML, Ineffizienz, bleibt weiterhin bestehen. Eine effizientere
Kodierung für eine höhere Übertragungs- und Verarbeitungsgeschwindigkeit würde aber gleichzeitig an-
dere Vorteile von XML, wie die gute Lesbarkeit für Menschen und Maschinen, zunichte machen. Jedoch
überwiegt der Nachteil in manchen Situationen den Vorteil, sodass zumindest für diese Anwendungsfälle
eine alternative Lösung gesucht wird. Eine erste Antwort darauf gibt Fast Infoset.



          von Dapeng Wang                      kompiliert oder optimiert, indem die Texte       wie z.B. Fast Infoset, MTOM-optimierte
                                               indiziert und in Binärform umgewandelt           MIME-Nachricht oder JSON (JavaScript
XML ist einfach zu verstehen und kann          werden. Dieser Schritt war notwendig,            Object Notation). Daher stellt Fast Info-
nicht nur von Maschinen verarbeitet, son-      weil die mobilen Geräte nur über eine            set nichts anderes als eine effizientere Al-
dern auch von Menschen gelesen werden.         eingeschränkte Bandbreite und Verarbei-          ternative für die XML-1.x-Syntax dar, die
Daher erfreut sich diese Technologie seit      tungsressourcen verfügen und eine effi-          letztendlich dasselbe Informationsmodell
ihrer Entstehung großer Beliebtheit. Aber      ziente Verarbeitung die oberste Priorität        repräsentiert. Eine Instanz von diesem
der Nachteil von XML ist auch offensicht-      in diesem Anwendungsfall hat. Andere             Fast-Infoset-Format wird analog als Fast-
lich: XML stellt keineswegs die effizientes-   Szenarien, die eine derartige Optimierung        Infoset-Dokument bezeichnet. Ein Fast-
te Form dar, um Daten zu repräsentieren.       verlangen, sind z.B. 3D-Grafiken oder            Infoset-Dokument ist nicht nur von der
Auch als Payloadformat für Datenüber-          Datenaustausch in der Energieindustrie,          Datenmenge her wesentlich kompakter
tragung sind andere binäre Formate weit        wo eine sehr große Menge von Fließkom-           als sein XML-Pendant, sondern lässt sich
überlegen. Diese Ineffizienz bezieht sich      mazahlen ausgetauscht wird. Vor diesem           auch schneller erstellen und verarbeiten.
nicht nur auf die Größe der Datenmen-          Hintergrund haben die Standardisierungs-         Diese Eigenschaften machen diese Tech-
ge, die durch die Tags um die eigentlichen     gremien ITU-T (International Telecom-            nologie zu einem guten Kandidaten für
Nutzdaten aufgebläht werden, sondern           munications Union Telecommunication              Umgebungen mit eingeschränkten Res-
auch auf die Verarbeitungsgeschwin-            Standardization Sector) und ISO gemein-          sourcen. Bevor der Kodierungsalgorith-
digkeit. So muss ein XML-Parser bei der        sam den Standard Fast Infoset erarbeitet.        mus von Fast Infoset näher erläutert wird,
Verarbeitung jedes Zeichens im XML-                                                             folgen zunächst die potenziellen Schwä-
Dokument überprüfen, ob es sich dabei          Spezifikation                                    chen von XML sowie die entsprechenden
um ein Tag-Element oder eine maskierte         Fast Infoset spezifiziert ein binäres Kodie-     Verbesserungen durch Fast Infoset.
Zeichenkette (&lt; für <) handelt. Obwohl      rungsformat für XML Information Set
diese Nachteile von XML schon lange be-        (Infoset). Es ist an dieser Stelle zu betonen,   •	XML	verwendet	ein	Beginn-	und	ein	
kannt sind, wird keine allgemeine Lösung       dass das zugrunde liegende Datenmodell             End-Tag, um ein Element zu umschlie-
angestrebt, weil man nicht die gute Lesbar-    XML Infoset und nicht XML ist. Bei XML             ßen. Das End-Tag trägt immer densel-
keit und Interoperabilität von XML durch       Infoset handelt es sich um ein abstraktes          ben Namen wie das Beginn-Tag und ist
eine effizientere Binärkodierung verlieren     Modell, in dem die XML-Bestandteile wie            damit redundant. Fast Infoset verzichtet
möchte. In vielen Situationen wird jedoch      Element, Attribut, Processing-Instruc-             konsequent auf die End-Tags.
die Effizienz einem höheren Stellenwert        tions usw. als Information Items definiert       •	Sonderzeichen	wie	<,	>	und	&	müssen	
beigemessen, sodass man sich nach Alter-       sind. Dieses abstrakte Modell kann in              in XML-1.x-Syntax maskiert werden.
nativen umschaut. So wurde schon im Jahr       verschiedenen physikalischen Formaten              Das führt vor allem dazu, dass der Par-
2000 WML (Wireless Markup Language)            kodiert oder repräsentiert werden, wobei           ser „Suchen & Ersetzen“ für solche
für den Datenaustausch mit Handy und           meistens die XML-1.x-Notation (XML                 maskierten Zeichenketten durchführen
mobilen Geräten über das WAP-Protokoll         1.0 und XML 1.1) benutzt wird. Aber es             muss. Bei Fast Infoset werden die Son-
eingeführt. WML wird zwar in XML-              ist ebenfalls möglich, dieses abstrakte Mo-        derzeichen nicht maskiert und identisch
Syntax notiert, jedoch für die Übertragung     dell in anderen Notationen darzustellen            wie andere Zeichen behandelt.




102     Entwickler Magazin 3.2008                                                                                    www.entwickler-magazin.de
IMPRESSUM
  Fast Infoset                                                                    XML
                                                                                              Verlag:
                                                                                              Software & Support Verlag GmbH

                                                                                              Anschrift der Redaktion:
                                                                                              Entwickler Magazin
                                                                                              Software & Support Verlag GmbH
                                                                                              Geleitsstraße 14
•	Ein	XML-Parser	muss	bei	jedem	ein-           beschleunigen. Beim Erstellen eines Fast-      D-60599 Frankfurt am Main
  gelesen Zeichen überprüfen, ob es sich       Infoset-Dokuments überprüft der Seriali-       Tel. +49 (0)69 630089 0
                                                                                              Fax. +49 (0)69 630089 89
  um ein Sonderelement wie Subelement,         sierer jedes Textelement zuerst, ob dessen     redaktion@entwickler-magazin.de
                                                                                              entwickler-magazin.de
  Attribut oder Text handelt. Daher kann       Text bereits im Dokument vorgekommen
  der Parser nicht einfach ein Block von       ist und dementsprechend als Eintrag in         Chefredakteur: Masoud Kamali
                                                                                              Advisory Board: Holger Flick, Rudolf Jansen, Olaf Monien
  Zeichen einlesen und ohne Überprü-           der Indextabelle vorliegt. Um diese Über-      Redaktion: Nicole Bechtel, Robert Lippert,
                                                                                              Michael Seeboerger-Weichselbaum, Michael Seemann, Sonja Waldschuk
  fung weitergeben. Fast Infoset fügt die      prüfung effizient durchzuführen, verwen-       Autoren dieser Ausgabe: Manu Carus, Dr. Mario Deilmann, Karlheinz
                                                                                              Günster, Kai Guschal, Nils M. Holm, Markus Jais, Rudolf Jansen, Markus
  Längeinformation des nächsten Daten-         det der Serialisierer meistens eine Hash-      Hasenbein, Thomas Kaufmann, Veikko Krypczyk, Michael Matzer, Thomas
  blocks vor den eigentlichen Daten in das     table für die Indexverwaltung. Ist der Text    Meinike, Manfred Müller-Späth, Bernd Ott, Thomas Pfister, Frank Pientka, Heinz
                                                                                              Axel Pürner, Bruno von Rotz, Michael Seeboerger-Weichselbaum, Ralph Steyer,
  Dokument ein, sodass der Parser bei der      in der Indextabelle noch nicht vorhanden,      Dapeng Wang, Tobias Wassermann
                                                                                              Chefin vom Dienst: Nicole Bechtel
  Verarbeitung genau weiß, wie viele Res-      wird ein neuer Eintrag in der Tabelle hin-     Schlussredaktion: Nicole Bechtel, Katharina Klassen, Frauke Pesch
  sourcen er vorbelegen und wie viele Zei-     zugefügt, der den Text mit dem nächsten        Leiter Grafik /Produktion: Jens Mainz
                                                                                              Layout, Titel: Kristin Brockmann, Jessica Demirkaya, Melanie Hahn, Domi-
  chen er ohne Bedenken einlesen kann.         freien Index (einem Integer) verknüpft.        nique Kalbassi, Jens Mainz, Michel Michiels-Corsten, Katharina Ochsenhirt,
                                                                                              Maria Rudi, Patricia Schwesinger
•	Sich	wiederholende	Textinhalte	werden	       Stellt dagegen der Serialisierer fest, dass    CD/DVD-Erstellung: Daniel Zuzek
  in Fast Infoset indiziert. Wenn derselbe     bereits ein Eintrag für den Text existiert,    Anzeigenverkauf:
  Text ein zweites Mal im Infoset auftritt,    ersetzt der Serialisierer dann jedes weitere   Entwickler Magazin
                                                                                              Patrik Baumann
  wird dieser Auftritt durch einen Integer-    Vorkommnis des Texts durch den Index,          Software & Support Verlag GmbH
  Wert ersetzt, der auf einen Eintrag in der   welcher auf den Eintrag in der Indextabel-     Tel. +49 (0)69 630089 20
                                                                                              pbaumann@entwickler-magazin.de
  Indextabelle verweist.                       le verweist. Wird auf der anderen Seite ein    Hanno Arens
•	Qualifizierte	Namen,	die	aus	Namens-         Fast-Infoset-Dokument von einem Parser         Software & Support Verlag GmbH
                                                                                              Tel. +49 (0)69 630089 29
  raum, Präfix und lokalem Namen beste-        verarbeitet, findet ein analoger Prozess       harens@entwickler-magazin.de

  hen, kommen häufig auch mehrfach im          statt. Für jeden Text im Dokument wird         Linux Enterprise
  Dokument vor und werden daher eben-          ein Eintrag in der Indextabelle angelegt.      Verlagsbüro Ohm-Schmidt
                                                                                              Osmund Schmidt
  falls indiziert.                             Wird bei der weiteren Verarbeitung des         Schneckenburger Str. 22
                                                                                              30177 Hannover
•	Binärinhalt	kann	direkt	in	Fast	Infoset	     Dokuments an der Stelle eines Textele-         Tel. +49 (0)511 2354164
                                                                                              Fax: +49 (0)1805 06033695 669
  eingebettet werden, ohne dass er zuvor       ments ein Indexverweis gefunden, muss          E-Mail: osmund@ohm-schmidt.de
  mit Base64-Kodierung in Text umge-           der referenzierte Text bereits zuvor im
                                                                                              Es gilt die Anzeigenpreisliste Nr. 13
  wandelt werden muss.                         Dokument aufgetreten sein und dement-
                                                                                              Pressevertrieb:
•	Die	erstellten	Indextabellen	können	         sprechend an der richtigen Position in der     DPV Network GmbH
  aufbewahrt und in Dokumenten dersel-         Indextabelle indiziert sein. Dieser Text       Tel.:+49(0)40 23711 0
                                                                                              www.dpv-network.de
  ben Sprache wiederverwendet werden.          kann nun durch den Indexverweis aufge-
                                                                                              Druck: PVA, Landau
  Es ist ebenfalls möglich, die Indizierung    löst und an der ursprünglichen Stelle ein-
                                                                                              Abo-Service:
  vorab aus Metainformationen wie              gesetzt werden. Dadurch kann das XML           Software & Support Verlag GmbH
  Schema-Beschreibung aufzubauen, um           Infoset ohne Verlust wieder aufgebaut          Tel.: +49 (0)69 630089 0
                                                                                              Fax.: +49 (0)69 630089 89
  die Verarbeitung später noch schneller       werden. Um die Indextabelle klein zu hal-      entwickler-magazin.de/service

  zu machen.                                   ten, werden meistens separate Tabellen         Abonnementpreise der       Zeitschrift (inkl. Leser-CD):
                                               für Textinhalte und qualifizierte Namen        Inland:
                                                                                              Studentenpreis:
                                                                                                                          6 Ausgaben	 €	 35,00
                                                                                                                          6 Ausgaben �	 28,50
Die Verwendung von Tabellen und In-            verwendet. Aber der Indizierungsprozess        europ. Ausland:             6 Ausgaben �		 45,00
                                                                                              Stud. europ. Ausland:       6 Ausgaben �	 38,50
dizierung ist der primäre Mechanismus          bleibt in beiden Fällen identisch.
                                                                                              Abonnementpreise der Zeitschrift
von Fast Infoset, um die Datenmenge zu             Im Folgenden wird der Kodierungs-          (inkl. Leser-CD plus Profi-CD):
komprimieren und die Verarbeitung zu           algorithmus anhand eines Beispieldoku-         Inland:                  6 Ausgaben & CD          �	   99,-
                                                                                              Studentenpreis:          6 Ausgaben & CD          �	   80,-
                                                                                              europ. Ausland:          6 Ausgaben & CD          �	   109,-

 Listing 1                                      Listing 2                                     Stud. europ. Ausland:    6 Ausgaben & CD          �	   90,-

                                                                                              Abonnementpreise der       Profi-CD:
  Beispiel-XML-Dokument                         Fast-Infoset-Dokument                         Inland:                     6 CD-ROM      �	   72,-
                                                                                              Studentenpreis:             6 CD-ROM      �	   62,-
  <root>                                        {0}<root>                                     europ. Ausland:             6 CD-ROM      �	   82,-
                                                                                              Stud. europ. Ausland:       6 CD-ROM      �	   72,-
  <item>                                         {1}<item>
                                                                                              ISSN: 1619-7941
   <name>Buch</name>                              {2}<name>{0}Buch</name>
   <quantity>1</quantity>                         {3}<quantity>{1}1</quantity>                Erscheinungsweise: zweimonatlich

  </item>                                        </item>                                      © 2008 für alle Beiträge. Alle Rechte vorbehalten.
  <item>                                         [1]<>                                        Nachdruck nur mit schriftlicher Genehmigung.

   <name>Buch</name>                              [2]<>[0]</name>                             Eine Haftung für die Richtigkeit der Veröffentlichungen kann trotz Prüfung durch
   <quantity>10</quantity>                        [3]<>{2}10</quantity>                       die Redaktion vom Herausgeber nicht übernommen werden. Honorierte Artikel
                                                                                              gehen in das Verfügungsrecht des Verlags über. Mit der Übergabe der Manu-
  </item>                                        </item>                                      skripte und Abbildungen an den Verlag erteilt der Verfasser dem Herausgeber
                                                                                              das Exklusivitätsrecht zur Veröffentlichung. Für unverlangt eingeschickte Manu-
  </root>                                       </root>
                                                                                              skripte, Fotos und Abbildungen keine Gewähr.

                                                                                              Alle im Entwickler Magazin verwendeten Markennamen sind
                                                                                              in der Regel eingetragene Warenzeichen der
                                                                                              entsprechenden Unternehmen oder Organisationen.




www.entwickler-magazin.de
XML                                                                                                                         Fast Infoset




                                             werden die anderen Elementnamen und
                                             Texte indiziert. Die beiden Indextabellen
                                             für Elementnamen und Texte zeigen Ta-
                                             belle 1 und 2.
                                                  Fast Infoset verwendet ASN.1 als No-
                                             tation für die Beschreibung der Daten-
                                             struktur. ASN.1 steht für Abstract Syntax
                                             Notation .1 und wird seit 20 Jahren ent-
Abb. 1: XML vs. Fast Infoset                 wickelt und vor allem für den Datenaus-
                                             tausch in der Telekommunikationsindust-
                                             rie erfolgreich eingesetzt. ASN.1 kann wie
                                                                                          Abb. 2: Benchmark „Serialisierung“
ments illustriert. Es ist zu betonen, dass   ABNF (Augmented Backus-Naur Form)
das Endergebnis in Listing 2 keineswegs      oder XML Schema für die Beschreibung
mit dem entsprechenden Fast-Infoset-         der Datenstruktur verwendet werden.          tenmenge minimieren, aber keineswegs
Dokument (welches ein binäres Format         Die abstrakte Beschreibungssyntax von        den Parsing-Vorgang schneller machen
ist und nicht als Text dargestellt werden    ASN.1 kann mithilfe verschiedener Ko-        kann. Hier liegt auch der Vorteil von Fast
kann) übereinstimmt, sondern lediglich       dierungsregeln in eine konkrete Form         Infoset gegenüber GZip, weil durch die
dazu dient, den Algorithmus zu erläu-        umgewandelt werden. So existieren für        Nutzung einer Indextabelle nicht nur die
tern. In Listing 1 ist ein XML Infoset in    ASN.1 sowohl eine binäre Kodierung wie       Datenmenge verkleinert, sondern auch
XML-Syntax zu sehen, auf das die Fast-       DER (Distinguished Encoding Rules),          die Verarbeitung deutlich vereinfacht
Infoset-Kodierung angewandt wird.            PER (Packed Encoding Rules) als auch         und beschleunigt wird. Ein Fast-Infoset-
Das Ergebnis nach der Fast-Infoset-In-       eine textuelle Kodierung wie XER (XML        Dokument ist zwar in der Regel sogar
dizierung wird in Listing 2 gezeigt. Eine    Encoding Rules). Es ist zu erwähnen, dass    größer als eine durch GZip komprimierte
Zahlenangabe in geschweifter Klammer         unter der Initiative von Sun Microsystems    Datei, aber wenn man die gesamte Zeit
bedeutet, dass ein neuer Indexeintrag        auch an Fast Web Services gearbeitet wird,   für die Übertragung und Verarbeitung in
mit dem dahinter stehenden Text in der       das Web Services performanter und effizi-    Betracht zieht, liegt Fast Infoset klar im
Indextabelle angelegt wird, während          enter machen soll. Grundlagen von Fast       Vorteil. Natürlich lassen sich die beiden
eine Zahlenangabe in eckiger Klammer         Web Services bilden die beiden Spezifika-    Technologien auch problemlos kombi-
einen Indexverweis darstellt. Um zwi-        tionen X.693 und X.694. Während X.693        nieren, indem ein bereits optimiertes Fast-
schen Indizes für qualifizierte Namen und    das Ziel hat, ASN.1 als eine Alternative     Infoset-Dokument noch einmal kompri-
Textinhalte zu unterscheiden, werden die     zu XML Schema oder Relax NG für die          miert wird.
Indizes für qualifizierte Namen in fett      Beschreibung von XML Infoset zu etab-            Ein weiterer Optimierungsmechanis-
und für Texte in kursiv gekennzeichnet.      lieren, versucht X.694 ein Mapping zwi-      mus im Bereich XML und Web Services
So wird z.B. beim ersten item-Element in     schen XML Schema und ASN.1 zu defi-          heißt MTOM (Message Transmission
der Zeile 2 ein neuer Index mit dem Wert     nieren, sodass Fast-Infoset-Werkzeuge die    Optimization Mechanism) sowie die
1 (1 mit geschweifter Klammer, fett)         mit XML Schema beschriebenen Doku-           zugrunde liegende XOP-Spezifikation
angelegt, da zuvor bereits ein Index mit     mente noch effizienter kodieren können.      (XML-binary Optimized Packaging).
dem Wert 0 für root erzeugt wurde. Als       Die entsprechenden Technologien sowie        Diese beiden Spezifikationen beschäftigen
in der Zeile 6 der Name item ein zweites     deren Beziehungen zeigt Abbildung 1.         sich mit der Problematik, wie man Binär-
Mal vorkommt, wird er durch einen In-                                                     daten effizient in einem XML-Dokument
dexverweis mit dem Wert 1 (1 in eckiger      Performance                                  einbetten und übertragen kann, ohne da-
Klammer, fett) ersetzt. Dementsprechend      Das Ziel von Fast Infoset ist eine effizi-   bei das konzeptionelle XML-Modell zu
                                             entere Übertragung und Verarbeitung          zerstören. MTOM und XOP bieten aber
Index                QName                   von XML Infoset. Darin liegt auch der
0                    root                    Unterschied zwischen Fast Infoset und         Listing 3
1                    item                    anderen Optimierungstechnologien. Das
                                                                                           Fast-Infoset-Dokument mit SAX-API
2                    name                    Komprimierungsverfahren GZip wird
                                                                                           verarbeiten
3                    quantity                gerne zusammen mit dem HTTP-Proto-
                                                                                           XMLReader saxReader = new SAXDocumentParser();
Tabelle	1:	Indextabelle	für	QNames           koll eingesetzt, um die zu übertragende
                                                                                           ContentHandler ch = ...
                                             Datenmenge zu minimieren. Dabei be-
                                                                                           saxReader.setContentHandler(ch);
Index                Text                    achtet GZip aber die spezielle Struktur       InputStream in = new BufferedInputStream
0                    Buch                    von XML-Inhalten nicht und behandelt                                    (new FileInputStream(fiDoc));
1                    1                       dementsprechend ein XML-Dokument              saxReader.parse(new InputSource(in));
2                    10                      genauso wie eine Bilddatei oder ein Video-
Tabelle 2: Indextabelle für Texte            stream. Das heißt, dass GZip nur die Da-




104      Entwickler Magazin 3.2008                                                                                     www.entwickler-magazin.de
Fast Infoset                                                                                                                                   XML



                                                                                                       set-Unterstützung an. Für Detailinfos wird
                                                                                                       an dieser Stelle auf die jeweiligen Websites
                                                                                                       verwiesen (s. Links & Literatur).

                                                                                                       Schlussbetrachtung
                                                                                                       Fast Infoset bietet gegenüber der XML-
                                                                                                       1.x-Kodierung einen deutlichen Perfor-
                                                                                                       mancevorteil und ist daher besonders für
                                                                                                       Umgebungen mit eingeschränkter Band-
                                                                                                       breite und Rechenleistung geeignet. Auch
                                                                                                       in normalen Umgebungen kann Fast Info-
Abb. 3: Benchmark „Parsing“                               Abb. 4: Benchmark „Dokumentgröße“
                                                                                                       set zur Systembeschleunigung eingesetzt
                                                                                                       werden. Dadurch, dass Fast Infoset nicht
nur Optimierung für Binärdaten in einem                   Ergebnis für Serialisierung, Parsing und     nur von der Java-Plattform, sondern auch
XML Infoset an, während Fast Infoset                      Dokumentgröße eines UBL-(Universal-          von Microsoft .NET und .NET CF unter-
allgemeiner ausgelegt ist und sowohl für                  Business-Language-)Infosets. Für wei-        stützt wird, bleibt das Interoperabilitäts-
Binär- als auch für Textdaten eingesetzt                  tere Ergebnisse anderer Dokumenttypen        risiko entsprechend niedrig. Trotzdem
werden kann.                                              siehe https://fi.dev.java.net/performance.   handelt es sich bei Fast Infoset um eine
    Nachdem die Abgrenzungen zwi-                         html .                                       junge Technologie. Die Binärkodierung
schen Fast Infoset und anderen Techno-                                                                 zur Effizienzsteigerung hat immer den
logien geklärt sind, werden als Nächstes                  API                                          Verlust des lesbaren Textformats zur Fol-
ein paar Ergebnisse aus einer Benchmark-                  Das Fast Info Project bei java.net bietet    ge, was auch ein Hauptkritikpunkt an
Messung gezeigt, die die Performancever-                  Fast-Infoset-Implementierungen für alle      Fast Infoset darstellt. Daher ist in kurzer
besserung von Fast Infoset belegen sollen.                drei gängigen Parser-APIs an. Die ent-       Zeit nicht damit zu rechnen, dass Fast In-
Das Open-Source-Projekt Fast Infoset                      sprechenden Klassen für Parser und Seri-     foset XML verdrängt oder ersetzt wird,
bei java.net hat im Rahmen des Projekts                   alisierer sind:                              aber für spezielle Umgebungen mit Son-
Performancemessungen mit Japex durch-                                                                  deranforderungen bietet es eine sinnvolle
geführt.                                                  1. SAX-API                                   und performante Alternative.
    Dabei stellte sich heraus, dass Fast In-              •	Parser:	com.sun.xml.fastinfoset.sax.
foset gegenüber der XML-1.x-Kodierung                       SAXDocumentParser                                        Dapeng Wang ist freiberuflicher System-
einen deutlichen Performancevorteil                       •	Serialisierer:	com.sun.xml.fastinfoset.                  architekt, Trainer und Buchautor. Sein
                                                                                                                     Schwerpunkt liegt in Design und Imple-
bietet. Das Parsing des Fast-Infoset-Do-                    sax.SAXDocumentSerializer                                mentierung von komplexen Enterprise-
kuments ist 3 bis 5-fach schneller als das                2. StAX-API                                                Applikationen mit J2EE- und Web-
Parsing des XML-Dokuments mit dem-                        •	Parser:	com.sun.xml.fastinfoset.stax.      Services-Technologien sowie in der Anwendung von
                                                                                                       agilen Softwareentwicklungsmethoden. Neben zahl-
selben Infoset, während das Serialisieren                   StAXDocumentParser                         reichen Artikeln im Fachmagazinen hat er zusammen
sogar bis zu 10-fach performanter sein                    •	Serialisierer:	com.sun.xml.fastinfoset.    mit anderen Autoren Bücher über „Java Web Services“
kann. Gleichzeitig nimmt ein Fast-In-                       stax.StAXDocumentSerializer                publiziert. Er hält regelmäßig Vorträge zu diesen The-
                                                                                                       men auf verschiedenen Kongressen. Dapeng Wang ist
foset-Dokument nur 20–60 % der Größe                      3. DOM-API                                   unter Wang.Dapeng@gmx.net zu erreichen.
des entsprechenden XML-Pendants ein.                      •	Parser:	com.sun.xml.fastinfoset.dom.
Abbildungen 2, 3 und 4 zeigen jeweils das                   DOMDocumentParser
                                                          •	Serialisierer:	com.sun.xml.fastinfoset.        Links & Literatur
 Listing 4                                                  dom.DOMDocumentSerializer
                                                                                                       [1] Fast Infoset: java.sun.com/developer/
  Fast-Infoset-Dokument mit StAX-API                                                                       technicalArticles/xml/fastinfoset/
  erstellen                                               Beispielhaft wird in Listing 3 und 4 ge-
                                                                                                       [2] Fast Infoset Project: https://fi.dev.java.net
                                                          zeigt, wie man mit dem SAX-Parser für
  StAXDocumentSerializer streamWriter =
                                                          Fast Infoset ein Dokument verarbeitet        [3] Fast Infoset Interoperability Project:
                          new StAXDocumentSerializer();
                                                          bzw. mit dem StaX-Serialisierer für Fast         https://fi-interop.dev.java.net
  staxDocumentSerializer.setOutputStream(fiDoc);
                                                          Infoset ein Dokument erstellt. Bis auf die   [4] Fast Web Service: java.sun.com/developer/
                                                          Instanziierung der Reader- bzw. Seriali-         technicalArticles/WebServices/fastWS/
  streamWriter.writeStartDocument();
  streamWriter.writeStartElement(“item”);                 zer-Klassen sind die anderen Methoden        [5] Fast Infoset Japex Benchmark Ergebnis:
  streamWriter.writeCharacters(“Book”);                   identisch, wie SAX, StAX und DOM-API.            https://fi.dev.java.net/performance.html
  streamWriter.writeEndElement();                         Die Fast-Infoset-Klassen lassen sich auch    [6] Fast Infoset in Axis2: wso2.org/library/2686
  streamWriter.writeEndDocument();                        problemlos in JAXP integrieren.              [7] Fast Infoset in Metro: java.sun.com/
  streamWriter.close();
                                                              Auch Web Services Frameworks wie             webservices/docs/2.0/fastinfoset/
                                                          Axis2 und Metro bieten bereits Fast-Info-        fastinfoset1.0.1-manual.html




www.entwickler-magazin.de                                                                                                Entwickler Magazin 3.2008    105

Weitere ähnliche Inhalte

Andere mochten auch

Presentación interim galicia
Presentación interim galiciaPresentación interim galicia
Presentación interim galicia
interimgalicia
 
Variability and Configurability of Business Processes Why, What, When, and How?
Variability and Configurability of Business ProcessesWhy, What, When, and How?Variability and Configurability of Business ProcessesWhy, What, When, and How?
Variability and Configurability of Business Processes Why, What, When, and How?
Dragan Gasevic
 
Wireless access points
Wireless access pointsWireless access points
Wireless access points
erick195490
 
Sixt España en negocio abierto, junio 2013
Sixt España en negocio abierto, junio 2013Sixt España en negocio abierto, junio 2013
Sixt España en negocio abierto, junio 2013
CIT Marbella
 
Verrex Global Portfolio
Verrex Global PortfolioVerrex Global Portfolio
Verrex Global Portfolio
evanscottsmith
 

Andere mochten auch (20)

Evapotranspiracion
Evapotranspiracion Evapotranspiracion
Evapotranspiracion
 
Presentación interim galicia
Presentación interim galiciaPresentación interim galicia
Presentación interim galicia
 
Analisis de la candidatura de Rafael Flores
Analisis de la candidatura de Rafael FloresAnalisis de la candidatura de Rafael Flores
Analisis de la candidatura de Rafael Flores
 
Actividad complementaria n°_1_geología semestre 1 ING CIVIL
Actividad complementaria n°_1_geología semestre 1 ING CIVILActividad complementaria n°_1_geología semestre 1 ING CIVIL
Actividad complementaria n°_1_geología semestre 1 ING CIVIL
 
Wasting energy
Wasting energyWasting energy
Wasting energy
 
CaribExport - TradeWatch Update 5 Sept. 2010
CaribExport - TradeWatch Update 5 Sept. 2010CaribExport - TradeWatch Update 5 Sept. 2010
CaribExport - TradeWatch Update 5 Sept. 2010
 
Variability and Configurability of Business Processes Why, What, When, and How?
Variability and Configurability of Business ProcessesWhy, What, When, and How?Variability and Configurability of Business ProcessesWhy, What, When, and How?
Variability and Configurability of Business Processes Why, What, When, and How?
 
Wireless access points
Wireless access pointsWireless access points
Wireless access points
 
Global Biscuits industry
Global Biscuits  industryGlobal Biscuits  industry
Global Biscuits industry
 
Sixt España en negocio abierto, junio 2013
Sixt España en negocio abierto, junio 2013Sixt España en negocio abierto, junio 2013
Sixt España en negocio abierto, junio 2013
 
Alta Frequenza... Quello che non ti aspetti
Alta Frequenza... Quello che non ti aspettiAlta Frequenza... Quello che non ti aspetti
Alta Frequenza... Quello che non ti aspetti
 
AGS Q1 2016 PR Snapshot
AGS Q1 2016 PR SnapshotAGS Q1 2016 PR Snapshot
AGS Q1 2016 PR Snapshot
 
Kindergarten Lesson Plans
Kindergarten Lesson Plans Kindergarten Lesson Plans
Kindergarten Lesson Plans
 
t1
t1t1
t1
 
Empresa y Universidad2.0
Empresa y Universidad2.0Empresa y Universidad2.0
Empresa y Universidad2.0
 
Verrex Global Portfolio
Verrex Global PortfolioVerrex Global Portfolio
Verrex Global Portfolio
 
Pre-presentación MOOC E-COMPETENTES: APRENDIZAJE EN ABIERTO DESDE LA UMA PARA...
Pre-presentación MOOC E-COMPETENTES: APRENDIZAJE EN ABIERTO DESDE LA UMA PARA...Pre-presentación MOOC E-COMPETENTES: APRENDIZAJE EN ABIERTO DESDE LA UMA PARA...
Pre-presentación MOOC E-COMPETENTES: APRENDIZAJE EN ABIERTO DESDE LA UMA PARA...
 
Ein modernes DMS mit SharePoint
Ein modernes DMS mit SharePointEin modernes DMS mit SharePoint
Ein modernes DMS mit SharePoint
 
Compte rendu - Comité de bon voisinage du 7 avril 2016 - Nouveau pont champlain
Compte rendu - Comité de bon voisinage du 7 avril 2016 - Nouveau pont champlainCompte rendu - Comité de bon voisinage du 7 avril 2016 - Nouveau pont champlain
Compte rendu - Comité de bon voisinage du 7 avril 2016 - Nouveau pont champlain
 
Carlos Morales Troncoso, marzo 16, 2011
Carlos Morales Troncoso, marzo 16, 2011Carlos Morales Troncoso, marzo 16, 2011
Carlos Morales Troncoso, marzo 16, 2011
 

Ähnlich wie Tutorial-XML-FastInfoset-einfuehrung

ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
Christoph Adler
 
B&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAP
B&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAPB&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAP
B&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAP
Wolfgang Hornung
 
sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)
sones GmbH
 

Ähnlich wie Tutorial-XML-FastInfoset-einfuehrung (20)

Oracle Open World 2009 Review V1.6
Oracle Open World 2009 Review V1.6Oracle Open World 2009 Review V1.6
Oracle Open World 2009 Review V1.6
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005
 
SE 2010: how we do it
SE 2010: how we do itSE 2010: how we do it
SE 2010: how we do it
 
Oracle BAM - Volle Übersicht über Meta- und Prozessdaten - DOAG Konferenz 201...
Oracle BAM - Volle Übersicht über Meta- und Prozessdaten - DOAG Konferenz 201...Oracle BAM - Volle Übersicht über Meta- und Prozessdaten - DOAG Konferenz 201...
Oracle BAM - Volle Übersicht über Meta- und Prozessdaten - DOAG Konferenz 201...
 
State of syslog (2005)
State of syslog (2005)State of syslog (2005)
State of syslog (2005)
 
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 
ExsoFlow Workflow & IntegrationServer technische Information
ExsoFlow Workflow & IntegrationServer technische InformationExsoFlow Workflow & IntegrationServer technische Information
ExsoFlow Workflow & IntegrationServer technische Information
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
 
Teamarbeit 2.0 (PTF 2008)
Teamarbeit 2.0 (PTF 2008) Teamarbeit 2.0 (PTF 2008)
Teamarbeit 2.0 (PTF 2008)
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
 
B&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAP
B&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAPB&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAP
B&IT-Broschüre: OpenText Extended ECM ermöglicht Büroarbeit mit SAP
 
sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)
 
[DE] PROJECT CONSULT Newsletter 2017 (Part 2/3) | PROJECT CONSULT Unternehmen...
[DE] PROJECT CONSULT Newsletter 2017 (Part 2/3) | PROJECT CONSULT Unternehmen...[DE] PROJECT CONSULT Newsletter 2017 (Part 2/3) | PROJECT CONSULT Unternehmen...
[DE] PROJECT CONSULT Newsletter 2017 (Part 2/3) | PROJECT CONSULT Unternehmen...
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Collaboration day 2016 panagenda
Collaboration day 2016   panagendaCollaboration day 2016   panagenda
Collaboration day 2016 panagenda
 
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in ExcelKostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
 

Mehr von tutorialsruby

&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
tutorialsruby
 
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
tutorialsruby
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
tutorialsruby
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
tutorialsruby
 

Mehr von tutorialsruby (20)

&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Tutorial-XML-FastInfoset-einfuehrung

  • 1. Mit CD BRM + + + Delphis VirtualStringTree + + + Fast Infoset Software, Systems & Development 3.08 Mai / Juni www.entwickler-magazin.de Deutschland € 6,50 Österreich € 7,00 Schweiz sFr 13,40 XAML WPF Schnelleres XML Bessere Performance mit und Fast Infoset Die Grundlagen Mathematik mit XSLT 2.0 auf einen Blick Transformation in Kreisdiagramme Ethical Hacking Reporting List & Label 13 im Test Onepoint Strategien für Ihre Sicherheit Effektives Projektmanagement Stimmen aus der LightZone Bildbearbeitung in der Praxis RIA mit Ext JS 2.0 DB2 9.5 Das bringt der neue Trend Große Datenmengen effizient verwalten CD-Inhalt Alle Infos auf Seite 3 Software Testversionen Lehr- oder Infoprogramme Datenträger enthält nur Onepoint Project 2007 Open Edition WordPress 2.3.3 Priotecs IT Demo Ext JS 2.0.2 Plone 3.0.6 Builder Joomla 1.5.1 OpenCMS 7.0.4 Light Crafts TYPO3 4.1.6 Bricolage 1.10.4 LightZone 3.5 Drupal 6.1 !
  • 2. XML Fast Infoset Einführung in Fast Infoset Schnelleres XML Der Siegeszug von XML ist nicht aufzuhalten. Ob als SOAP-Nachricht, Spring-Konfigurationsfile oder XHTML-Dateien für die Weboberfläche: XML ist überall zu finden und aus der heutigen IT nicht mehr wegzudenken. Aber der größte Nachteil von XML, Ineffizienz, bleibt weiterhin bestehen. Eine effizientere Kodierung für eine höhere Übertragungs- und Verarbeitungsgeschwindigkeit würde aber gleichzeitig an- dere Vorteile von XML, wie die gute Lesbarkeit für Menschen und Maschinen, zunichte machen. Jedoch überwiegt der Nachteil in manchen Situationen den Vorteil, sodass zumindest für diese Anwendungsfälle eine alternative Lösung gesucht wird. Eine erste Antwort darauf gibt Fast Infoset. von Dapeng Wang kompiliert oder optimiert, indem die Texte wie z.B. Fast Infoset, MTOM-optimierte indiziert und in Binärform umgewandelt MIME-Nachricht oder JSON (JavaScript XML ist einfach zu verstehen und kann werden. Dieser Schritt war notwendig, Object Notation). Daher stellt Fast Info- nicht nur von Maschinen verarbeitet, son- weil die mobilen Geräte nur über eine set nichts anderes als eine effizientere Al- dern auch von Menschen gelesen werden. eingeschränkte Bandbreite und Verarbei- ternative für die XML-1.x-Syntax dar, die Daher erfreut sich diese Technologie seit tungsressourcen verfügen und eine effi- letztendlich dasselbe Informationsmodell ihrer Entstehung großer Beliebtheit. Aber ziente Verarbeitung die oberste Priorität repräsentiert. Eine Instanz von diesem der Nachteil von XML ist auch offensicht- in diesem Anwendungsfall hat. Andere Fast-Infoset-Format wird analog als Fast- lich: XML stellt keineswegs die effizientes- Szenarien, die eine derartige Optimierung Infoset-Dokument bezeichnet. Ein Fast- te Form dar, um Daten zu repräsentieren. verlangen, sind z.B. 3D-Grafiken oder Infoset-Dokument ist nicht nur von der Auch als Payloadformat für Datenüber- Datenaustausch in der Energieindustrie, Datenmenge her wesentlich kompakter tragung sind andere binäre Formate weit wo eine sehr große Menge von Fließkom- als sein XML-Pendant, sondern lässt sich überlegen. Diese Ineffizienz bezieht sich mazahlen ausgetauscht wird. Vor diesem auch schneller erstellen und verarbeiten. nicht nur auf die Größe der Datenmen- Hintergrund haben die Standardisierungs- Diese Eigenschaften machen diese Tech- ge, die durch die Tags um die eigentlichen gremien ITU-T (International Telecom- nologie zu einem guten Kandidaten für Nutzdaten aufgebläht werden, sondern munications Union Telecommunication Umgebungen mit eingeschränkten Res- auch auf die Verarbeitungsgeschwin- Standardization Sector) und ISO gemein- sourcen. Bevor der Kodierungsalgorith- digkeit. So muss ein XML-Parser bei der sam den Standard Fast Infoset erarbeitet. mus von Fast Infoset näher erläutert wird, Verarbeitung jedes Zeichens im XML- folgen zunächst die potenziellen Schwä- Dokument überprüfen, ob es sich dabei Spezifikation chen von XML sowie die entsprechenden um ein Tag-Element oder eine maskierte Fast Infoset spezifiziert ein binäres Kodie- Verbesserungen durch Fast Infoset. Zeichenkette (&lt; für <) handelt. Obwohl rungsformat für XML Information Set diese Nachteile von XML schon lange be- (Infoset). Es ist an dieser Stelle zu betonen, • XML verwendet ein Beginn- und ein kannt sind, wird keine allgemeine Lösung dass das zugrunde liegende Datenmodell End-Tag, um ein Element zu umschlie- angestrebt, weil man nicht die gute Lesbar- XML Infoset und nicht XML ist. Bei XML ßen. Das End-Tag trägt immer densel- keit und Interoperabilität von XML durch Infoset handelt es sich um ein abstraktes ben Namen wie das Beginn-Tag und ist eine effizientere Binärkodierung verlieren Modell, in dem die XML-Bestandteile wie damit redundant. Fast Infoset verzichtet möchte. In vielen Situationen wird jedoch Element, Attribut, Processing-Instruc- konsequent auf die End-Tags. die Effizienz einem höheren Stellenwert tions usw. als Information Items definiert • Sonderzeichen wie <, > und & müssen beigemessen, sodass man sich nach Alter- sind. Dieses abstrakte Modell kann in in XML-1.x-Syntax maskiert werden. nativen umschaut. So wurde schon im Jahr verschiedenen physikalischen Formaten Das führt vor allem dazu, dass der Par- 2000 WML (Wireless Markup Language) kodiert oder repräsentiert werden, wobei ser „Suchen & Ersetzen“ für solche für den Datenaustausch mit Handy und meistens die XML-1.x-Notation (XML maskierten Zeichenketten durchführen mobilen Geräten über das WAP-Protokoll 1.0 und XML 1.1) benutzt wird. Aber es muss. Bei Fast Infoset werden die Son- eingeführt. WML wird zwar in XML- ist ebenfalls möglich, dieses abstrakte Mo- derzeichen nicht maskiert und identisch Syntax notiert, jedoch für die Übertragung dell in anderen Notationen darzustellen wie andere Zeichen behandelt. 102 Entwickler Magazin 3.2008 www.entwickler-magazin.de
  • 3. IMPRESSUM Fast Infoset XML Verlag: Software & Support Verlag GmbH Anschrift der Redaktion: Entwickler Magazin Software & Support Verlag GmbH Geleitsstraße 14 • Ein XML-Parser muss bei jedem ein- beschleunigen. Beim Erstellen eines Fast- D-60599 Frankfurt am Main gelesen Zeichen überprüfen, ob es sich Infoset-Dokuments überprüft der Seriali- Tel. +49 (0)69 630089 0 Fax. +49 (0)69 630089 89 um ein Sonderelement wie Subelement, sierer jedes Textelement zuerst, ob dessen redaktion@entwickler-magazin.de entwickler-magazin.de Attribut oder Text handelt. Daher kann Text bereits im Dokument vorgekommen der Parser nicht einfach ein Block von ist und dementsprechend als Eintrag in Chefredakteur: Masoud Kamali Advisory Board: Holger Flick, Rudolf Jansen, Olaf Monien Zeichen einlesen und ohne Überprü- der Indextabelle vorliegt. Um diese Über- Redaktion: Nicole Bechtel, Robert Lippert, Michael Seeboerger-Weichselbaum, Michael Seemann, Sonja Waldschuk fung weitergeben. Fast Infoset fügt die prüfung effizient durchzuführen, verwen- Autoren dieser Ausgabe: Manu Carus, Dr. Mario Deilmann, Karlheinz Günster, Kai Guschal, Nils M. Holm, Markus Jais, Rudolf Jansen, Markus Längeinformation des nächsten Daten- det der Serialisierer meistens eine Hash- Hasenbein, Thomas Kaufmann, Veikko Krypczyk, Michael Matzer, Thomas blocks vor den eigentlichen Daten in das table für die Indexverwaltung. Ist der Text Meinike, Manfred Müller-Späth, Bernd Ott, Thomas Pfister, Frank Pientka, Heinz Axel Pürner, Bruno von Rotz, Michael Seeboerger-Weichselbaum, Ralph Steyer, Dokument ein, sodass der Parser bei der in der Indextabelle noch nicht vorhanden, Dapeng Wang, Tobias Wassermann Chefin vom Dienst: Nicole Bechtel Verarbeitung genau weiß, wie viele Res- wird ein neuer Eintrag in der Tabelle hin- Schlussredaktion: Nicole Bechtel, Katharina Klassen, Frauke Pesch sourcen er vorbelegen und wie viele Zei- zugefügt, der den Text mit dem nächsten Leiter Grafik /Produktion: Jens Mainz Layout, Titel: Kristin Brockmann, Jessica Demirkaya, Melanie Hahn, Domi- chen er ohne Bedenken einlesen kann. freien Index (einem Integer) verknüpft. nique Kalbassi, Jens Mainz, Michel Michiels-Corsten, Katharina Ochsenhirt, Maria Rudi, Patricia Schwesinger • Sich wiederholende Textinhalte werden Stellt dagegen der Serialisierer fest, dass CD/DVD-Erstellung: Daniel Zuzek in Fast Infoset indiziert. Wenn derselbe bereits ein Eintrag für den Text existiert, Anzeigenverkauf: Text ein zweites Mal im Infoset auftritt, ersetzt der Serialisierer dann jedes weitere Entwickler Magazin Patrik Baumann wird dieser Auftritt durch einen Integer- Vorkommnis des Texts durch den Index, Software & Support Verlag GmbH Wert ersetzt, der auf einen Eintrag in der welcher auf den Eintrag in der Indextabel- Tel. +49 (0)69 630089 20 pbaumann@entwickler-magazin.de Indextabelle verweist. le verweist. Wird auf der anderen Seite ein Hanno Arens • Qualifizierte Namen, die aus Namens- Fast-Infoset-Dokument von einem Parser Software & Support Verlag GmbH Tel. +49 (0)69 630089 29 raum, Präfix und lokalem Namen beste- verarbeitet, findet ein analoger Prozess harens@entwickler-magazin.de hen, kommen häufig auch mehrfach im statt. Für jeden Text im Dokument wird Linux Enterprise Dokument vor und werden daher eben- ein Eintrag in der Indextabelle angelegt. Verlagsbüro Ohm-Schmidt Osmund Schmidt falls indiziert. Wird bei der weiteren Verarbeitung des Schneckenburger Str. 22 30177 Hannover • Binärinhalt kann direkt in Fast Infoset Dokuments an der Stelle eines Textele- Tel. +49 (0)511 2354164 Fax: +49 (0)1805 06033695 669 eingebettet werden, ohne dass er zuvor ments ein Indexverweis gefunden, muss E-Mail: osmund@ohm-schmidt.de mit Base64-Kodierung in Text umge- der referenzierte Text bereits zuvor im Es gilt die Anzeigenpreisliste Nr. 13 wandelt werden muss. Dokument aufgetreten sein und dement- Pressevertrieb: • Die erstellten Indextabellen können sprechend an der richtigen Position in der DPV Network GmbH aufbewahrt und in Dokumenten dersel- Indextabelle indiziert sein. Dieser Text Tel.:+49(0)40 23711 0 www.dpv-network.de ben Sprache wiederverwendet werden. kann nun durch den Indexverweis aufge- Druck: PVA, Landau Es ist ebenfalls möglich, die Indizierung löst und an der ursprünglichen Stelle ein- Abo-Service: vorab aus Metainformationen wie gesetzt werden. Dadurch kann das XML Software & Support Verlag GmbH Schema-Beschreibung aufzubauen, um Infoset ohne Verlust wieder aufgebaut Tel.: +49 (0)69 630089 0 Fax.: +49 (0)69 630089 89 die Verarbeitung später noch schneller werden. Um die Indextabelle klein zu hal- entwickler-magazin.de/service zu machen. ten, werden meistens separate Tabellen Abonnementpreise der Zeitschrift (inkl. Leser-CD): für Textinhalte und qualifizierte Namen Inland: Studentenpreis: 6 Ausgaben € 35,00 6 Ausgaben � 28,50 Die Verwendung von Tabellen und In- verwendet. Aber der Indizierungsprozess europ. Ausland: 6 Ausgaben � 45,00 Stud. europ. Ausland: 6 Ausgaben � 38,50 dizierung ist der primäre Mechanismus bleibt in beiden Fällen identisch. Abonnementpreise der Zeitschrift von Fast Infoset, um die Datenmenge zu Im Folgenden wird der Kodierungs- (inkl. Leser-CD plus Profi-CD): komprimieren und die Verarbeitung zu algorithmus anhand eines Beispieldoku- Inland: 6 Ausgaben & CD � 99,- Studentenpreis: 6 Ausgaben & CD � 80,- europ. Ausland: 6 Ausgaben & CD � 109,- Listing 1 Listing 2 Stud. europ. Ausland: 6 Ausgaben & CD � 90,- Abonnementpreise der Profi-CD: Beispiel-XML-Dokument Fast-Infoset-Dokument Inland: 6 CD-ROM � 72,- Studentenpreis: 6 CD-ROM � 62,- <root> {0}<root> europ. Ausland: 6 CD-ROM � 82,- Stud. europ. Ausland: 6 CD-ROM � 72,- <item> {1}<item> ISSN: 1619-7941 <name>Buch</name> {2}<name>{0}Buch</name> <quantity>1</quantity> {3}<quantity>{1}1</quantity> Erscheinungsweise: zweimonatlich </item> </item> © 2008 für alle Beiträge. Alle Rechte vorbehalten. <item> [1]<> Nachdruck nur mit schriftlicher Genehmigung. <name>Buch</name> [2]<>[0]</name> Eine Haftung für die Richtigkeit der Veröffentlichungen kann trotz Prüfung durch <quantity>10</quantity> [3]<>{2}10</quantity> die Redaktion vom Herausgeber nicht übernommen werden. Honorierte Artikel gehen in das Verfügungsrecht des Verlags über. Mit der Übergabe der Manu- </item> </item> skripte und Abbildungen an den Verlag erteilt der Verfasser dem Herausgeber das Exklusivitätsrecht zur Veröffentlichung. Für unverlangt eingeschickte Manu- </root> </root> skripte, Fotos und Abbildungen keine Gewähr. Alle im Entwickler Magazin verwendeten Markennamen sind in der Regel eingetragene Warenzeichen der entsprechenden Unternehmen oder Organisationen. www.entwickler-magazin.de
  • 4. XML Fast Infoset werden die anderen Elementnamen und Texte indiziert. Die beiden Indextabellen für Elementnamen und Texte zeigen Ta- belle 1 und 2. Fast Infoset verwendet ASN.1 als No- tation für die Beschreibung der Daten- struktur. ASN.1 steht für Abstract Syntax Notation .1 und wird seit 20 Jahren ent- Abb. 1: XML vs. Fast Infoset wickelt und vor allem für den Datenaus- tausch in der Telekommunikationsindust- rie erfolgreich eingesetzt. ASN.1 kann wie Abb. 2: Benchmark „Serialisierung“ ments illustriert. Es ist zu betonen, dass ABNF (Augmented Backus-Naur Form) das Endergebnis in Listing 2 keineswegs oder XML Schema für die Beschreibung mit dem entsprechenden Fast-Infoset- der Datenstruktur verwendet werden. tenmenge minimieren, aber keineswegs Dokument (welches ein binäres Format Die abstrakte Beschreibungssyntax von den Parsing-Vorgang schneller machen ist und nicht als Text dargestellt werden ASN.1 kann mithilfe verschiedener Ko- kann. Hier liegt auch der Vorteil von Fast kann) übereinstimmt, sondern lediglich dierungsregeln in eine konkrete Form Infoset gegenüber GZip, weil durch die dazu dient, den Algorithmus zu erläu- umgewandelt werden. So existieren für Nutzung einer Indextabelle nicht nur die tern. In Listing 1 ist ein XML Infoset in ASN.1 sowohl eine binäre Kodierung wie Datenmenge verkleinert, sondern auch XML-Syntax zu sehen, auf das die Fast- DER (Distinguished Encoding Rules), die Verarbeitung deutlich vereinfacht Infoset-Kodierung angewandt wird. PER (Packed Encoding Rules) als auch und beschleunigt wird. Ein Fast-Infoset- Das Ergebnis nach der Fast-Infoset-In- eine textuelle Kodierung wie XER (XML Dokument ist zwar in der Regel sogar dizierung wird in Listing 2 gezeigt. Eine Encoding Rules). Es ist zu erwähnen, dass größer als eine durch GZip komprimierte Zahlenangabe in geschweifter Klammer unter der Initiative von Sun Microsystems Datei, aber wenn man die gesamte Zeit bedeutet, dass ein neuer Indexeintrag auch an Fast Web Services gearbeitet wird, für die Übertragung und Verarbeitung in mit dem dahinter stehenden Text in der das Web Services performanter und effizi- Betracht zieht, liegt Fast Infoset klar im Indextabelle angelegt wird, während enter machen soll. Grundlagen von Fast Vorteil. Natürlich lassen sich die beiden eine Zahlenangabe in eckiger Klammer Web Services bilden die beiden Spezifika- Technologien auch problemlos kombi- einen Indexverweis darstellt. Um zwi- tionen X.693 und X.694. Während X.693 nieren, indem ein bereits optimiertes Fast- schen Indizes für qualifizierte Namen und das Ziel hat, ASN.1 als eine Alternative Infoset-Dokument noch einmal kompri- Textinhalte zu unterscheiden, werden die zu XML Schema oder Relax NG für die miert wird. Indizes für qualifizierte Namen in fett Beschreibung von XML Infoset zu etab- Ein weiterer Optimierungsmechanis- und für Texte in kursiv gekennzeichnet. lieren, versucht X.694 ein Mapping zwi- mus im Bereich XML und Web Services So wird z.B. beim ersten item-Element in schen XML Schema und ASN.1 zu defi- heißt MTOM (Message Transmission der Zeile 2 ein neuer Index mit dem Wert nieren, sodass Fast-Infoset-Werkzeuge die Optimization Mechanism) sowie die 1 (1 mit geschweifter Klammer, fett) mit XML Schema beschriebenen Doku- zugrunde liegende XOP-Spezifikation angelegt, da zuvor bereits ein Index mit mente noch effizienter kodieren können. (XML-binary Optimized Packaging). dem Wert 0 für root erzeugt wurde. Als Die entsprechenden Technologien sowie Diese beiden Spezifikationen beschäftigen in der Zeile 6 der Name item ein zweites deren Beziehungen zeigt Abbildung 1. sich mit der Problematik, wie man Binär- Mal vorkommt, wird er durch einen In- daten effizient in einem XML-Dokument dexverweis mit dem Wert 1 (1 in eckiger Performance einbetten und übertragen kann, ohne da- Klammer, fett) ersetzt. Dementsprechend Das Ziel von Fast Infoset ist eine effizi- bei das konzeptionelle XML-Modell zu entere Übertragung und Verarbeitung zerstören. MTOM und XOP bieten aber Index QName von XML Infoset. Darin liegt auch der 0 root Unterschied zwischen Fast Infoset und Listing 3 1 item anderen Optimierungstechnologien. Das Fast-Infoset-Dokument mit SAX-API 2 name Komprimierungsverfahren GZip wird verarbeiten 3 quantity gerne zusammen mit dem HTTP-Proto- XMLReader saxReader = new SAXDocumentParser(); Tabelle 1: Indextabelle für QNames koll eingesetzt, um die zu übertragende ContentHandler ch = ... Datenmenge zu minimieren. Dabei be- saxReader.setContentHandler(ch); Index Text achtet GZip aber die spezielle Struktur InputStream in = new BufferedInputStream 0 Buch von XML-Inhalten nicht und behandelt (new FileInputStream(fiDoc)); 1 1 dementsprechend ein XML-Dokument saxReader.parse(new InputSource(in)); 2 10 genauso wie eine Bilddatei oder ein Video- Tabelle 2: Indextabelle für Texte stream. Das heißt, dass GZip nur die Da- 104 Entwickler Magazin 3.2008 www.entwickler-magazin.de
  • 5. Fast Infoset XML set-Unterstützung an. Für Detailinfos wird an dieser Stelle auf die jeweiligen Websites verwiesen (s. Links & Literatur). Schlussbetrachtung Fast Infoset bietet gegenüber der XML- 1.x-Kodierung einen deutlichen Perfor- mancevorteil und ist daher besonders für Umgebungen mit eingeschränkter Band- breite und Rechenleistung geeignet. Auch in normalen Umgebungen kann Fast Info- Abb. 3: Benchmark „Parsing“ Abb. 4: Benchmark „Dokumentgröße“ set zur Systembeschleunigung eingesetzt werden. Dadurch, dass Fast Infoset nicht nur Optimierung für Binärdaten in einem Ergebnis für Serialisierung, Parsing und nur von der Java-Plattform, sondern auch XML Infoset an, während Fast Infoset Dokumentgröße eines UBL-(Universal- von Microsoft .NET und .NET CF unter- allgemeiner ausgelegt ist und sowohl für Business-Language-)Infosets. Für wei- stützt wird, bleibt das Interoperabilitäts- Binär- als auch für Textdaten eingesetzt tere Ergebnisse anderer Dokumenttypen risiko entsprechend niedrig. Trotzdem werden kann. siehe https://fi.dev.java.net/performance. handelt es sich bei Fast Infoset um eine Nachdem die Abgrenzungen zwi- html . junge Technologie. Die Binärkodierung schen Fast Infoset und anderen Techno- zur Effizienzsteigerung hat immer den logien geklärt sind, werden als Nächstes API Verlust des lesbaren Textformats zur Fol- ein paar Ergebnisse aus einer Benchmark- Das Fast Info Project bei java.net bietet ge, was auch ein Hauptkritikpunkt an Messung gezeigt, die die Performancever- Fast-Infoset-Implementierungen für alle Fast Infoset darstellt. Daher ist in kurzer besserung von Fast Infoset belegen sollen. drei gängigen Parser-APIs an. Die ent- Zeit nicht damit zu rechnen, dass Fast In- Das Open-Source-Projekt Fast Infoset sprechenden Klassen für Parser und Seri- foset XML verdrängt oder ersetzt wird, bei java.net hat im Rahmen des Projekts alisierer sind: aber für spezielle Umgebungen mit Son- Performancemessungen mit Japex durch- deranforderungen bietet es eine sinnvolle geführt. 1. SAX-API und performante Alternative. Dabei stellte sich heraus, dass Fast In- • Parser: com.sun.xml.fastinfoset.sax. foset gegenüber der XML-1.x-Kodierung SAXDocumentParser Dapeng Wang ist freiberuflicher System- einen deutlichen Performancevorteil • Serialisierer: com.sun.xml.fastinfoset. architekt, Trainer und Buchautor. Sein Schwerpunkt liegt in Design und Imple- bietet. Das Parsing des Fast-Infoset-Do- sax.SAXDocumentSerializer mentierung von komplexen Enterprise- kuments ist 3 bis 5-fach schneller als das 2. StAX-API Applikationen mit J2EE- und Web- Parsing des XML-Dokuments mit dem- • Parser: com.sun.xml.fastinfoset.stax. Services-Technologien sowie in der Anwendung von agilen Softwareentwicklungsmethoden. Neben zahl- selben Infoset, während das Serialisieren StAXDocumentParser reichen Artikeln im Fachmagazinen hat er zusammen sogar bis zu 10-fach performanter sein • Serialisierer: com.sun.xml.fastinfoset. mit anderen Autoren Bücher über „Java Web Services“ kann. Gleichzeitig nimmt ein Fast-In- stax.StAXDocumentSerializer publiziert. Er hält regelmäßig Vorträge zu diesen The- men auf verschiedenen Kongressen. Dapeng Wang ist foset-Dokument nur 20–60 % der Größe 3. DOM-API unter Wang.Dapeng@gmx.net zu erreichen. des entsprechenden XML-Pendants ein. • Parser: com.sun.xml.fastinfoset.dom. Abbildungen 2, 3 und 4 zeigen jeweils das DOMDocumentParser • Serialisierer: com.sun.xml.fastinfoset. Links & Literatur Listing 4 dom.DOMDocumentSerializer [1] Fast Infoset: java.sun.com/developer/ Fast-Infoset-Dokument mit StAX-API technicalArticles/xml/fastinfoset/ erstellen Beispielhaft wird in Listing 3 und 4 ge- [2] Fast Infoset Project: https://fi.dev.java.net zeigt, wie man mit dem SAX-Parser für StAXDocumentSerializer streamWriter = Fast Infoset ein Dokument verarbeitet [3] Fast Infoset Interoperability Project: new StAXDocumentSerializer(); bzw. mit dem StaX-Serialisierer für Fast https://fi-interop.dev.java.net staxDocumentSerializer.setOutputStream(fiDoc); Infoset ein Dokument erstellt. Bis auf die [4] Fast Web Service: java.sun.com/developer/ Instanziierung der Reader- bzw. Seriali- technicalArticles/WebServices/fastWS/ streamWriter.writeStartDocument(); streamWriter.writeStartElement(“item”); zer-Klassen sind die anderen Methoden [5] Fast Infoset Japex Benchmark Ergebnis: streamWriter.writeCharacters(“Book”); identisch, wie SAX, StAX und DOM-API. https://fi.dev.java.net/performance.html streamWriter.writeEndElement(); Die Fast-Infoset-Klassen lassen sich auch [6] Fast Infoset in Axis2: wso2.org/library/2686 streamWriter.writeEndDocument(); problemlos in JAXP integrieren. [7] Fast Infoset in Metro: java.sun.com/ streamWriter.close(); Auch Web Services Frameworks wie webservices/docs/2.0/fastinfoset/ Axis2 und Metro bieten bereits Fast-Info- fastinfoset1.0.1-manual.html www.entwickler-magazin.de Entwickler Magazin 3.2008 105