Web Services Standards und Realisierung in Java http://werner.gaulke.net 4.6.2007 Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Outline 1 Idee Idee hinter Web Services? 2 Aufbau und Standards Schichtenmodell WSDL Fazit WSDL SOAP Fazit SOAP 3 Web Services und Java JAX-WS Axis Web Tools Platform Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Outline 1 Idee Idee hinter Web Services? 2 Aufbau und Standards Schichtenmodell WSDL Fazit WSDL SOAP Fazit SOAP 3 Web Services und Java JAX-WS Axis Web Tools Platform Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Web Services Idee / Merkmale: Daten auf entfernten Systemen nutzbar machen Funktionen auf entfernten Systemen nutzbar machen Freie Wahl der Programmiersprache Verwenden offener Standards Vergleich Web Services sind für den Computer das, was Internetseiten für Menschen sind. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Web Services Idee / Merkmale: Daten auf entfernten Systemen nutzbar machen Funktionen auf entfernten Systemen nutzbar machen Freie Wahl der Programmiersprache Verwenden offener Standards Vergleich Web Services sind für den Computer das, was Internetseiten für Menschen sind. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Web Services Idee / Merkmale: Daten auf entfernten Systemen nutzbar machen Funktionen auf entfernten Systemen nutzbar machen Freie Wahl der Programmiersprache Verwenden offener Standards Vergleich Web Services sind für den Computer das, was Internetseiten für Menschen sind. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Web Services Idee / Merkmale: Daten auf entfernten Systemen nutzbar machen Funktionen auf entfernten Systemen nutzbar machen Freie Wahl der Programmiersprache Verwenden offener Standards Vergleich Web Services sind für den Computer das, was Internetseiten für Menschen sind. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Web Services Idee / Merkmale: Daten auf entfernten Systemen nutzbar machen Funktionen auf entfernten Systemen nutzbar machen Freie Wahl der Programmiersprache Verwenden offener Standards Vergleich Web Services sind für den Computer das, was Internetseiten für Menschen sind. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Änderungen durch Web Services Änderungen durch Web Services Mit dem Einsatz von Web Services ändert sich die Gestaltung von Anwendungen: bisher: Anwendungen/Web Sites beziehen ihre Daten aus Dateien oder Datenbanken. Datenmanipulation und Berechnungen finden lokal statt. mit Web Services: Anwendungen können ihre Daten von beliebig vielen Web Services beziehen. Berechnungen und Datenmanipulation müssen nicht mehr lokal implementiert werden. Die Web Services können ausgetauscht werden. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Änderungen durch Web Services Änderungen durch Web Services Mit dem Einsatz von Web Services ändert sich die Gestaltung von Anwendungen: bisher: Anwendungen/Web Sites beziehen ihre Daten aus Dateien oder Datenbanken. Datenmanipulation und Berechnungen finden lokal statt. mit Web Services: Anwendungen können ihre Daten von beliebig vielen Web Services beziehen. Berechnungen und Datenmanipulation müssen nicht mehr lokal implementiert werden. Die Web Services können ausgetauscht werden. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Idee hinter Web Services? Änderungen durch Web Services Anforderungen Damit Web Services in einem möglichst großen Spektrum eingesetzt werden können, besitzt die Implementierung viele Freiheiten: Verwendung jeder beliebigen Programmiersprache Verwendung jedes beliebigen Kommunikationsprotokolls keine Beschränkung der Einsatzgebiete Dabei sollen Web Services automatisiert von Applikationen verwendet werden können beliebig kombinier- und austauschbar sein Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Outline 1 Idee Idee hinter Web Services? 2 Aufbau und Standards Schichtenmodell WSDL Fazit WSDL SOAP Fazit SOAP 3 Web Services und Java JAX-WS Axis Web Tools Platform Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Schichtenmodell Aufbau eines Web Services Entdeckung Beschreibung Verpackung Transport Netzwerk Web Services Schichtenmodell Web Services unterteilen sich in 5 Schichten. Jede dieser Schichten verwendet eine eigene Technologie. Werner Gaulke Idee Aufbau und Standards Web Services und Java Schichtenmodell Entdeckungsschicht Entdeckungsschicht Entdeckung Beschreibung Verpackung Transport Netzwerk Zugriffspunkte zu den Web Services sind nicht immer bekannt. Es muss Mechanismen geben, die Web Services und deren Zugriffspunkte aufspüren. Techniken: UDDI WS-Inspection Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Schichtenmodell Beschreibungsschicht Beschreibungsschicht Entdeckung Beschreibung Verpackung Transport Netzwerk Bereitstellung von Informationen über die Schnittstelle eines Web Services und verwendbare Protokolle. Hilft dem Service-Kosumenten, den Web Service zu kontaktieren und zu nutzen. WSDL Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Schichtenmodell Verpackungsschicht Entdeckung Beschreibung Verpackung Transport Netzwerk Verpackungsschicht Verpackt die Anwendungsdaten in XML, damit sie über die Transportschicht übertragen werden können. (Serialisierung) Techniken: SOAP XML-RPC Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Schichtenmodell Transportschicht Transportschicht Entdeckung Beschreibung Verpackung Transport Netzwerk Ermöglicht auf Basis der Netzwerkschicht die Kommunikation der Anwendung. Web Services können auf beliebige Transportprotokolle aufsetzen. Techniken z.B.: HTTP SMTP Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Schichtenmodell Netzwerkschicht Entdeckung Beschreibung Verpackung Transport Netzwerk Web Services Netzwerkschicht Physische Übertragungsebene. Siehe OSI/ISO Schichtenmodell. TCP/IP Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL Web Services Description Language Was ist WSDL? Die Web Services Description Language WSDL wird vom World Wide Web Consortium (W3C) entwickelt. (Version 2.0 aktuell) WSDL beschreibt Austauschprotokolle, Funktionen, Daten und Datentypen eines Web Services. WSDL definiert Parameter und Rückgabewerte der von außen zugänglichen Operationen des Web Services. WSDL beschreibt Schnittstelle und Zugangsprotokoll die der Web Service verwendet. WSDL hält alles in einem maschinenlesbaren Format fest, was für die Verwendung von Web Services nötig ist. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL Web Services Description Language Was ist WSDL? Die Web Services Description Language WSDL wird vom World Wide Web Consortium (W3C) entwickelt. (Version 2.0 aktuell) WSDL beschreibt Austauschprotokolle, Funktionen, Daten und Datentypen eines Web Services. WSDL definiert Parameter und Rückgabewerte der von außen zugänglichen Operationen des Web Services. WSDL beschreibt Schnittstelle und Zugangsprotokoll die der Web Service verwendet. WSDL hält alles in einem maschinenlesbaren Format fest, was für die Verwendung von Web Services nötig ist. Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau types message portType binding port Bestandteile WSDL Dokumente bestehen aus: Definition Abstrakter Beschreibung Bindung an konkrete Formate service Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau types message portType binding port service Web Services types Mit dem types Element werden die auftretenden Datenformate definiert. Dabei wird eine allgemeingültige Form verwendet. XML Schema Beliebige Datentypen (auch nicht XML) möglich Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau message types message portType binding port service Web Services Das message Element definiert die Gestalt der zu sendenden Nachrichten, ohne aber das Datenformat festzulegen. abstrakte Definition nachrichten bestehen aus mehreren Teilen (parts) werden später an konkretes Format gebunden Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau portType types message portType binding port service portType Elemente definieren die Schnittstelle des Services nach außen. Es wird wieder allgemeingültig definiert. abstrakte Definition message Elemente mit Ein-Ausagabe Operation verwenden bilden der Interaktionsmuster Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau -Einschub Interaktionsmuster Interaktionsmuster In WSDL sind vier Interaktionsmuster definiert: in One-way: Der Client sendet eine Eingabenachricht an den Service in-out Request-response: Der Service bekommt eine Eingabenachricht und sendet eine Antwort an den Client out-in Solicit-response: Service sendet eine Nachricht an den Client, die dieser beantwortet out Notification: Der Service sendet eine Ausgabenachricht Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau binding types message portType binding port service Mit dem binding Element werden die abstrakten Elemente an konkrete Protokolle und Formate gebunden. binden an konrete Formate message Elemente mit Ein-Ausagabe Operation verwenden beliebig viele bindings zu den portTypes möglich Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java WSDL WSDL Aufbau types message portType binding port service Web Services service & port Ein service wird aus mehreren port zusammengestellt. ports können nicht miteinander kommunizeren legt einen konkreten Endpunkt fest (URI) Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit WSDL WSDL - Fazit Abstrakt zu konkret Man kann WSDL Dokumente in drei Elemente aufteilen: Einen Definitionsteil, in dem alle nötigen Typen eingeführt werden - type Element Einen abstrakten Teil, der Nachrichten und Operationen einführt ohne sich auf ein Format oder Protokoll festzulegen - message, portType Element Einen konkreten Teil, der alle abstrakten Definitionen mit konkreten Formaten oder Protokollen verbindet und eine ansprechbare Adresse festlegt - binding, service und port Element Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit WSDL WSDL - Fazit Abstrakt zu konkret Man kann WSDL Dokumente in drei Elemente aufteilen: Einen Definitionsteil, in dem alle nötigen Typen eingeführt werden - type Element Einen abstrakten Teil, der Nachrichten und Operationen einführt ohne sich auf ein Format oder Protokoll festzulegen - message, portType Element Einen konkreten Teil, der alle abstrakten Definitionen mit konkreten Formaten oder Protokollen verbindet und eine ansprechbare Adresse festlegt - binding, service und port Element Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit WSDL WSDL - Fazit Abstrakt zu konkret Man kann WSDL Dokumente in drei Elemente aufteilen: Einen Definitionsteil, in dem alle nötigen Typen eingeführt werden - type Element Einen abstrakten Teil, der Nachrichten und Operationen einführt ohne sich auf ein Format oder Protokoll festzulegen - message, portType Element Einen konkreten Teil, der alle abstrakten Definitionen mit konkreten Formaten oder Protokollen verbindet und eine ansprechbare Adresse festlegt - binding, service und port Element Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit WSDL WSDL - Fazit Vorteile einheitliche Beschreibungsform der WS Schnittstellen Grundlage für Entwicklung und den Einsatz Möglichkeit Services mit gleicher Beschreibung untereinander auszutauschen freie Wahl bei der Realisierung der abstrakten Schnittstellen (SOAP, HTTP, etc.) Nachteile verschiedene Protokollbindungen können unterschiedliche Semantik haben nur einfache Interakionsmuster keine Unterscheidung synchron oder asynchron Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit WSDL WSDL - Fazit Vorteile einheitliche Beschreibungsform der WS Schnittstellen Grundlage für Entwicklung und den Einsatz Möglichkeit Services mit gleicher Beschreibung untereinander auszutauschen freie Wahl bei der Realisierung der abstrakten Schnittstellen (SOAP, HTTP, etc.) Nachteile verschiedene Protokollbindungen können unterschiedliche Semantik haben nur einfache Interakionsmuster keine Unterscheidung synchron oder asynchron Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java SOAP SOAP Spezifikation SOAP - Nachrichten sind XML-Daten Stellt die Message-Spezifikation von Web Services dar. Standard umfasst drei Hauptpunkte Spezifikation des Aufbaus einer SOAP - Nachricht (SOAP Envelope) Serialisierungsregeln (SOAP Encoding Rules) Remote Procedure Call Mechanismus (SOAP RPC representation) Übertragung der SOAP Nachrichten kann über verschiedene Protokolle geschehen, meistens HTTP Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java SOAP SOAP Spezifikation SOAP - Nachrichten sind XML-Daten Stellt die Message-Spezifikation von Web Services dar. Standard umfasst drei Hauptpunkte Spezifikation des Aufbaus einer SOAP - Nachricht (SOAP Envelope) Serialisierungsregeln (SOAP Encoding Rules) Remote Procedure Call Mechanismus (SOAP RPC representation) Übertragung der SOAP Nachrichten kann über verschiedene Protokolle geschehen, meistens HTTP Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java SOAP SOAP Nachrichten bestehen im aus drei Elementen: Envelope Header Body SOAP macht intensiven Gebrauch von Namespaces und XML Schema Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java SOAP SOAP Request 1 2 <SOAP−ENV:Envelope xmlns:SOAP−ENV= ” h t t p : / / schemas . xmlsoap . org / soap / envelope / ” 3 x m l n s : x s i = ” h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema−i n s t a n c e ” 4 xmlns:xsd = ” h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema ”> 5 6 <SOAP−ENV:Body> 7 <n s 1 : B a b e l F i s h xmlns:ns1= ” urn:xmethodsBabelFish ” 8 SOAP−ENV:encodingStyle= ” h t t p : / / schemas . xmlsoap . org / soap / encoding / ”> 9 <t r a n s l a t i o n m o d e x s i : t y p e = ” x s d : s t r i n g ”>de en</ t r a n s l a t i o n m o d e> 10 <sourcedata x s i : t y p e = ” x s d : s t r i n g ”>H a l l o Welt</ sourcedata> 11 </ n s 1 : B a b e l F i s h> 12 </SOAP−ENV:Body> 13 14 </SOAP−ENV:Envelope> Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java SOAP SOAP Response 1 <SOAP−ENV:Envelope xmlns:SOAP−ENC= ” h t t p : / / schemas . xmlsoap . org / soap / encoding / ” 2 SOAP−ENV:encodingStyle= ” h t t p : / / schemas . xmlsoap . org / soap / encoding / ” 3 x m l n s : x s i = ” h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema−i n s t a n c e ” 4 xmlns:SOAP−ENV= ” h t t p : / / schemas . xmlsoap . org / soap / envelope / ” 5 xmlns:xsd = ” h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema ”> 6 7 <SOAP−ENV:Body> 8 <namesp1:BabelFishResponse xmlns:namesp1= ” urn:xmethodsBabelFish ”> 9 <r e t u r n x s i : t y p e = ” x s d : s t r i n g ”>h e l l o w o r l d</ r e t u r n> 10 </ namesp1:BabelFishResponse> 11 </SOAP−ENV:Body> 12 13 </SOAP−ENV:Envelope> Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit SOAP Vorteile offener Standard für die Datenübertragung einfache Erweiterung allgemein akzeptierte Standardisierung Plattformunabhängig bei Nutzung von HTTP, keine Probleme mit Firewalls Nachteile mehr Overhead ⇒ etwas geringere Performance wegen des verwendeten Darstellungsprotokolls in XML Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Fazit SOAP Vorteile offener Standard für die Datenübertragung einfache Erweiterung allgemein akzeptierte Standardisierung Plattformunabhängig bei Nutzung von HTTP, keine Probleme mit Firewalls Nachteile mehr Overhead ⇒ etwas geringere Performance wegen des verwendeten Darstellungsprotokolls in XML Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Outline 1 Idee Idee hinter Web Services? 2 Aufbau und Standards Schichtenmodell WSDL Fazit WSDL SOAP Fazit SOAP 3 Web Services und Java JAX-WS Axis Web Tools Platform Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java JAX-WS Webservice mit JAX-WS? Benötigt: JAX-WS 2.0 (in Java 6 enthalten) JAX-WS 2.1.1 aktuelle Version Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Axis Webservices mit Axis Benötigt: Apache Axis 1.4 oder Axis 2 Apache Tomcat 5.5 oder 6 Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Web Tools Platform Webservices mit Eclipse Benötigt: Eclipse Web Tools Platform http://www.eclipse.org/webtools/main.php WebTools 1.5.4 verwenden noch Axis 1.3 WebTools 2.0 setzen auf Axis 1.4 oder Axis 2 Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Web Tools Platform Apache Axis Beispiel und einige SOAP/WS Folien von Sebastian Klenke JAX-WS Download um Java 5 nachzurüsten“, ” https://jax-ws.dev.java.net/ JAX-WS Beispiel aus den Folien als Eclipse Projekt, http://werner.gaulke.net/arbeiten/JAX-WS-Example.zip Eclipse Web Tools Platform http://www.eclipse.org/webtools/main.html Unterstützung bei der Implementierung von Web Applikationen aller Art unter Eclipse W3C WSDL Spezifikation, http://www.w3.org/2002/ws/desc/ Tieferer Einblick in die XML Elemente Service-orientierte Architekturen mit Web Services“ ”2005, Dostal, Jeckle, Melzer, Zengler Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Web Tools Platform Konzepte, Standards und Praxis für den Einsatz von Web Services im Überblick UDDI Browser http://www.soapclient.com/uddisearch.html Web Services Werner Gaulke Idee Aufbau und Standards Web Services und Java Web Tools Platform Ende Vielen Dank für die Aufmerksamkeit! Web Services Werner Gaulke