Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003 Betreuer: Dr. Eckhardt Schön Java und XML Einführung XML Warum Java und XML? XML Verarbeitung XML Binding XML Messaging XML basierter Remote Procedure Call XML Registries Java und XML 2
Java und XML Quellen http://java.sun.com/xml/ http://java.sun.com/webservices/docs/1.0/tutorial/index.html http://www.w3c.org/xml/ http://www.w3c.org/tr/soap/ Java-Komponenten die im Folgenden erwähnte Technologien sind enthalten im: Java XML Pack: http://java.sun.com/xml/javaxmlpack.html Java Webservice Development Pack: http://java.sun.com/webservices/webservicespack.html Java und XML 3 XML XML (extensible Markup Language) ist textbasierte Auszeichungssprache, ähnlich wie HTML XML ist gängiges Format für Datenaustausch, wurde 1998 vom World Wide Web Consortium (www.w3c.org) standardisiert Im Gegensatz zu HTML geben die Tags nicht (nur) Auskunft über die Formatierung, sondern auch die Art der Daten keine fest vorgegebene Menge an Tags optionale DTD (Document Type Definition) gibt an, welche Tags mit welchen Attributen zulässig sind und deren Anordnung Java und XML 4
XML XML Schema: komplexes Regelwerk, dass den Aufbau einer XML-Datei beschreibt und die Validierung einer XML-Datei ermöglicht Beispiel für (simples) XML-Dokument <?xml version="1.0"?> <message> <to>you@youraddress.com</to> <from>me@myaddress.com</from> <subject> XML Is Really Cool</subject> <text>text</text> </message> Java und XML 5 Warum XML und Java? Java gilt als Programmiersprache des Webs und XML als Auszeichnungssprache des Webs zur Übertragung von Dokumenten beide plattformunabhängig konzipiert Unicode Java enthält verschiedene Technologien zur Verarbeitung von XML: SAX (Simple API for XML) Unterstützung für Document Objects Model (DOM) (Standard vom W3C zur Manipulation von XML) XML Binding Unterstützung für XML-basierte Webservices Java und XML 6
XML Verarbeitung Zur Verarbeitung (d.h. lesen, schreiben, verändern) von XML-Dokumenten dient das Java API for XML Processing (JAXP) Mittels dieser standardisierten Schnittstelle können verschiedene Parserimplementationen verwenden werden, ohne die Anwendung zu ändern Möglichkeit zur Validierung der XML-Dokumente vorhanden zur Verarbeitung gibt es zwei grundsätzliche Varianten SAX (Simple API for XML) DOM (Document Object Model) Java und XML 7 XML Verarbeitung SAX (Simple API for XML) ereignisbasierte, streamartige Abarbeitung der Datei Entwickler (=Anwender des Parsers) instanziiert Parser und stellt CallBack-Methode(n) zur Verfügung Parser arbeitet XML-Datei ab und ruft CallBack- Methode(n) für jedes Element der XML-Datei auf Verarbeitung ist also völlig seriell Java und XML 8
XML Verarbeitung DOM (Document Object Model) standardisierte Schnittstelle von W3C, in JAXP enthalten DOM-Parser liest XML-Document in baumförmige Struktur im Speicher es kann direkt auf einzelne Knoten des Baumes wahlfrei zugegriffen werden Knoten können eingefügt, modifiziert und gelöscht werden Java und XML 9 XML Verarbeitung SAX DOM - wenig Speicherbedarf - XML-Dokument komplett im Speicher - serielle Abarbeitung - flexiblere Nutzung, wahlfreier Zugriff - schneller - (meist) weniger Aufwand für Entwickler Java und XML 10
XML Binding JAXB (Java Architecture for XML Binding) ermöglicht eine Abbildung von XML-Dokumenten in Java Objekten (und umgekehrt) der JAXB-Compiler erzeugt aus einem gegebenen XML- Schema eine Menge von Java-Klassen ein XML Dokument kann als Instanz einer solchen Klasse aufgefasst werden Vorteile: Geschwindigkeit vergleichbar mit SAX sehr einfach zu benutzen, leicht wartbar valide Dokumente Möglichkeit, deutliche komplexere XML-Dokumente zu bearbeiten Java und XML 11 XML Binding Java und XML 12
XML Messaging JAXM = Java API for XML Messaging wird hauptsächlich für Webservices genutzt Nachrichten im XML Format werden mittels SOAP (Simple Object Access Protocoll) übertragen dient dem Austausch von XML-Dokumenten z.b. Oderbestätigung bei Webservices über das Internet zwei Arten von SOAP-Nachrichten ohne Attachment, d.h. nur ein XML-Dokument enthalten mit Attachment, beliebige Dateien (Bilder, Programme etc.) enthalten Java und XML 13 XML Messaging Übertragung der Nachrichten kann direkt oder über einen Provider erfolgen Provider ist immer aktiv sorgt für Verteilung der Nachrichten speichert diese zwischen, falls Empfänger offline führt Logdateien, Fehlerauswertung Java und XML 14
XML Messaging Anwendungsszenario: Online-Shop Java und XML 15 XML basierter RPC JAX-RPC = Java API for XML-based RPC RPC (= Remote Procedure Call) ist ein Mechanismus, der es ermöglicht, Prozeduren auf anderen Systemen auszuführen JAX-RPC ist die Java-Schnittstelle zur Verwendung von XML-basierenden RPC bei Webservices RPC durch Übertragung einer SOAP-basierenden Nachricht ausgelöst, Format WSDL WSDL (=Web Service Description Language) ist ein vom W3C standardisiertes XML-basierendes Format zur Beschreibung von Webservices JAX-RPC-Client kann auch mit nicht-java-basierendem Server kommunizieren und umgekehrt Java und XML 16
XML Registries eine XML-Registry ist eine Infrastruktur, die zur Entwicklung und zum Auffinden von Webservices dient gemeinsame Resource zwischen allen Beteiligten z.zt. existieren mehrere Spezifikationen: ebxml, UDDI JAXR (Java API for XML Registries) dient als einheitliche Schnittstelle für Java-Entwickler, um auf verschiedene Arten von XML Registries zuzugreifen JAXR besteht grundsätzlich aus zwei Komponenten: Client nutzt JAXR-API, um auf Webservice- Registrierung zuzugreifen Provider ist Implementierung der API, der den Zugriff auf Registrierungsdatenbank(en) ausführt Java und XML 17