20.1 | Einleitung |
Schon Mitte 1997 wies Suns XML-Experte Jon Bosak in einem Aufsatz mit dem Titel »XML, Java and the Future of the Web« darauf hin, dass die Extensible Markup Language der Sprache Java viel zu tun gebe (»giving Java something to do«). Seit damals ist mittlerweile eine Vielzahl von Softwarepaketen zur Verarbeitung von XML-Dokumenten entstanden. Neben C und Java werden hierbei auch Skriptsprachen wie Perl und Python abgedeckt.
Unter den Herstellern der Java-Software für XML finden sich so prominente Namen wie Sun, Oracle, IBM oder auch das Apache-Projekt. Allein diese Tatsache zeigt schon, dass es sich beim Gespann XML/Java um ein Thema von großer Bedeutung handelt.
Verschiedene Gründe lassen die Verarbeitung von XML-Dokumenten mit Java naheliegend erscheinen:In allen hier genannten Fällen kommen Gemeinsamkeiten von Java und XML zum Tragen, insbesondere die Unabhängigkeit von Plattformen und Systemen. Von Sun wurde dies auf die Kurzformel »portable code, portable data« gebracht.
- XML wurde unter anderem für den Einsatz im World Wide Web konzipiert, um die Beschränkungen von HTML aufzuheben und um mehr Flexibilität zu bieten. Langfristig soll XML bzw. mit XML definierte Sprachen zumindest im professionellen Bereich die Nachfolge von HTML antreten. Auch Java zählt in Form von Applets, Servlets oder auch Java Server Pages zu den wichtigsten Web-Technologien. Aufgrund seiner Plattformunabhängigkeit und der Möglichkeit, Applets zusammen mit den Dokumenten zum Browser zu schicken, ist Java eine ideale Ergänzung zu XML.
- Neben der Verwendung von XML als offenem Format für strukturierte Daten, das unabhängig von einer bestimmten Darstellung ist, nennt Bosak einen weitereren wesentlichen Anwendungsfall: XML als system- und herstellerunabhängiges Datenaustauschformat zwischen heterogenen Applikationen. Auch unter diesem Aspekt kommt Java aufgrund seiner Plattformunabhängigkeit und den vielfältigen Möglichkeiten zur Netzwerkkommunikation eine besondere Rolle bei der Integration zu.
Ein besonders wichtiges Einsatzfeld von Java als neutralem Datenaustauschformat sind Web Services, die zur Kommunikation das SOAP-Protokoll einsetzen. Bei SOAP werden Aufrufe vollständig in XML kodiert. Java-Programme können hier entweder als Client oder als Server eingesetzt werden und SOAP zur Realisierung entfernter Aufrufe benutzen.
- Ein weiteres gemeinsames Merkmal von XML und Java ist die Verwendung des Unicode-Zeichensatzes. Im Gegensatz zu SGML sind in XML-Dokumenten grundsätzlich alle Unicode-Zeichen erlaubt. Die Realisierung vollständig XML-konformer Applikationen setzt daher voraus, dass die verwendete Sprache und die dafür verfügbaren Bibliotheken ebenfalls Unicode unterstützen, was bei Java der Fall ist: Der Datentyp char ist auf Unicode ausgelegt und bezüglich der Ein- und Ausgabe gestatten die verschiedenen Stream-Klassen des JDK die Konvertierung von Unicode in einen plattformspezifischen Zeichensatz.
- Javas Multi-Threading ist für die Verarbeitung komplexer Dokumente attraktiv: Strukturell gleichartige Teile eines Dokuments wie die Kapitel eines Buchs können mit mehreren Threads parallel aufbereitet oder auch durchsucht werden. Alternativ oder auch zusätzlich besteht die Möglichkeit, das Laden des Dokuments parallel zum Parsen und der Verarbeitung des Parse-Baums in der XML-Applikation ablaufen zu lassen.
- Im Bereich der Web-Applikationen gestattet Java außerdem eine sehr flexible Lastverteilung zwischen Client und Server bei der XML-Verarbeitung. Mit Java-Applets kann der Server entlastet und prinzipiell die gesamte Präsentationslogik zur Darstellung von XML-Dokumenten auf den Client verlagert werden.