Web Services Eine kleine Einführung Werner Gaulke 7.2.2007 Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Idee hinter Web Services? Szenario: Probleme durch Gestaltungsfreiheit Wetter AG Web Services Unsere Messdaten sollen per Web Service abrufbar sein – mit welchen Mitteln realisieren wir das? Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Idee hinter Web Services? Szenario: Probleme durch Gestaltungsfreiheit Wetter AG Unsere Messdaten sollen per Web Service abrufbar sein – mit welchen Mitteln realisieren wir das? Die neuen Service#.NET APIs garantieren den schnellen und reibungslosen Einsatz ...in allen .Net Umgebungen. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Idee hinter Web Services? Szenario: Probleme durch Gestaltungsfreiheit Unsere Messdaten sollen per Web Service abrufbar sein – mit welchen Mitteln realisieren wir das? Wetter AG Die neuen Service#.NET APIs garantieren den schnellen und reibungslosen Einsatz ...in allen .Net Umgebungen. Unsere Business APIs verwenden ein innovatives Konzept. Der reibungslose Einsatz ist in allen SAP Systemen garantiert. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Idee hinter Web Services? Szenario: Probleme durch Gestaltungsfreiheit Unsere Messdaten sollen per Web Service abrufbar sein – mit welchen Mitteln realisieren wir das? Wetter AG Die neuen Service#.NET APIs garantieren den schnellen und reibungslosen Einsatz ...in allen .Net Umgebungen. Unsere Business APIs verwenden ein innovatives Konzept. Der reibungslose Einsatz ist in allen SAP Systemen garantiert. Eine speziell definierte API garantiert auch Ihnen nach nur wenigen Schulungswochen den effektiven Einsatz unserer Services. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Idee hinter Web Services? Szenario: Probleme durch Gestaltungsfreiheit Mustermann AG Unsere Software soll durch den Einsatz von Web Services noch Leistungsfähiger werden. Die neuen Service#.NET APIs garantieren den schnellen und reibungslosen Einsatz in allen .Net Umgebungen. Notwendig: Einheitlicher Standard für Unsere APIs verwenden ein innovatives - Aufbau Konzept, dass ihre Produktivität erhöht. Zur Verwendung benötigen Sie nur... - Nachrichten - Beschreibung Eine speziell definierte API garantiert auch Ihnen nach nur wenigen Schulungswochen den effektiven Einsatz unserer Services. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Schichtenmodell und Standards 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Schichtenmodell und Standards 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Schichtenmodell und Standards 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Schichtenmodell und Standards 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Schichtenmodell und Standards 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Schichtenmodell und Standards Netzwerkschicht Entdeckung Beschreibung Verpackung Transport Netzwerk Web Services Netzwerkschicht Physische Übertragungsebene. Siehe OSI/ISO Schichtenmodell. TCP/IP Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Web Services Description Language Was ist WSDL? Die Web Services Description Language WSDL wird vom World Wide Web Consortium (W3C) entwickelt. (Version 2.0 in Draft Phase) 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Web Services Description Language Was ist WSDL? Die Web Services Description Language WSDL wird vom World Wide Web Consortium (W3C) entwickelt. (Version 2.0 in Draft Phase) 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente Beispiel <w s d l : t y p e s> <xsd:schema targetNamespace= ” URI ”> 3 <x s d : e l e m e n t name= ” makeWetter ”> 4 <xsd:complexType> 5 <xsd:sequence> 6 <x s d : e l e m e n t name= ” i n ” t y p e = ” x s d : s t r i n g ” /> 7 < / xsd:sequence> 8 < / xsd:complexType> 9 < / xsd:schema> 10 < / w s d l : t y p e s> 1 2 Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente Beispiel <wsdl:message name= ” makeWetterRequest ”> <w s d l : p a r t name= ” parameters ” t y p e = ” x s d : s t r i n g ” /> 3 < / wsdl:message> 4 <wsdl:message name= ” makeWetterResponse ”> 5 <w s d l : p a r t name= ” parameters ” t y p e = ” x s d : s t r i n g ” /> 6 < / wsdl:message> 1 2 Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente Beispiel <w s d l : p o r t T y p e name= ” Wetter ”> <w s d l : o p e r a t i o n name= ” makeWetter ”> 3 <w s d l : i n p u t message= ” tns:makeWetterRequest ” /> 4 <w s d l : o u t p u t message= ” tns:makeWetterResponse ” /> 5 < / w s d l : o p e r a t i o n> 6 < / w s d l : p o r t T y p e> 1 2 Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente Beispiel <w s d l : b i n d i n g name= ” wetterSOAP ” t y p e = ” t n s : W e t t e r ”> <s o a p : b i n d i n g s t y l e = ” document ” t r a n s p o r t = ” h t t p : / / schemas . xmlsoap . org / soap / h t t p ” /> 3 <w s d l : o p e r a t i o n name= ” makeWetter ”> 4 <s o a p : o p e r a t i o n soapAction = ” h t t p : / / www. b e i s p i e l . de / w e t t e r / makeWetter ” /> 5 <w s d l : i n p u t> 6 <soap:body use= ” l i t e r a l ” /> 7 < / w s d l : i n p u t> 8 <w s d l : o u t p u t> 9 <soap:body use= ” l i t e r a l ” /> 10 < / w s d l : o u t p u t> 11 < / w s d l : o p e r a t i o n> 12 < / w s d l : b i n d i n g> 1 2 Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick WSDL Dokumente Beispiel <w s d l : s e r v i c e name= ” w e t t e r ”> <w s d l : p o r t b i n d i n g = ” tns:wetterSOAP ” name= ” wetterSOAP ”> 3 <soap:address l o c a t i o n = ” h t t p : / / www. b e i s p i e l . de / w e t t e r ” /> 4 < / w s d l : p o r t> 5 < / w s d l : s e r v i c e> 1 2 Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Definition und Spezifikation Definition SOAP Faken Simple Object Access Protocol (jetzt nur noch SOAP!). Entwickelt von Microsoft, Develop Mentor, Userland. Seit 2000 W3C-Spezifikation (aktuelle Version 1.2 seit 2003) Standardisiertes Verpackungsprotokoll auf XML-Basis für Nachrichtenaustausch zwischen Anwendungen. Stellt die Message-Spezifikation von Web Services dar. Applikationen können so über das Internet Daten und Dokumente austauschen. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Definition und Spezifikation SOAP Spezifikation SOAP - Nachrichten sind XML-Daten 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Definition und Spezifikation SOAP Spezifikation SOAP - Nachrichten sind XML-Daten 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick SOAP - Aufbau 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick SOAP - Aufbau 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick SOAP - Aufbau 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Realisierungsmöglichkeiten Was wird für die Realisierung benötigt? Checkliste Eine Web Service Implementation Ein Server, auf dem der Service abgelegt ist Beschreibung des Service Interfaces in WSDL Client - Implementierung der in WSDL Definierten Zugriffspunkte Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Realisierungsmöglichkeiten Was wird für die Realisierung benötigt? Checkliste Eine Web Service Implementation Ein Server, auf dem der Service abgelegt ist Beschreibung des Service Interfaces in WSDL Client - Implementierung der in WSDL Definierten Zugriffspunkte Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Realisierungsmöglichkeiten Was wird für die Realisierung benötigt? Checkliste Eine Web Service Implementation Ein Server, auf dem der Service abgelegt ist Beschreibung des Service Interfaces in WSDL Client - Implementierung der in WSDL Definierten Zugriffspunkte Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Realisierungsmöglichkeiten Was wird für die Realisierung benötigt? Checkliste Eine Web Service Implementation Ein Server, auf dem der Service abgelegt ist Beschreibung des Service Interfaces in WSDL Client - Implementierung der in WSDL Definierten Zugriffspunkte Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Realisierungsmöglichkeiten Technologien im Einsatz Web Server D a t e n b a n k Web Services Service 1 WSDL Service 2 WSDL Web Content SOAP Client Java Programm ... Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Realisierungsmöglichkeiten Web Services mit Java Realisieren Möglichkeiten Methoden Web Services zu erstellen: Das Apache Axis Framework JAX-WS 2.0 (Bestandteil von Java 6) Verzichten auf Frameworks, erstellen von Grund auf Je nach Einsatzumgebung (Tomcat Server, Java Enterprise Server) bieten sich die verschiedenen Lösungen an Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Beispiel JAX-WS JAX WS Über JAX WS JAX WS 2.0 fester Bestandteil des JDK 6. Version 2.1 am 2.2.2007 erschienen. JAX WS ist die Referenzimplementierung der JAVA Api für XML Web Services Spezifikationen. Alle wichtigen Standards (SOAP, WSDL, UDDI,...) werden vereinfacht über Methoden verfügbar gemacht. Zusätzlich bietet JAX-WS Tools um aus WSDL Klassengerüste für den Web Service client zu generieren. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Beispiel JAX-WS JAX WS Beispiel Annotationen zur Definition des Web Services. 1 2 3 package myWebService ; i m p o r t j a v a x . jws . ∗ ; i m p o r t j a v a x . jws . soap . SOAPBinding ; 4 5 6 7 @WebService ( name= ” S t r i n g S e r v i c e ” ) @SOAPBinding ( s t y l e = SOAPBinding . S t y l e .RPC) / / Remote Procedure C a l l zum ansprechen public class StringService { 8 @WebMethod p u b l i c i n t g e t S t r i n g C o u n t (@WebParam( name = ” strToCount ” ) S t r i n g i n p u t ) { return input . length ( ) ; } 9 10 11 12 13 } Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Beispiel JAX-WS JAX WS Beispiel Erzeugen eines Endpunktes, starten des Service. 1 2 package myWebServer ; i m p o r t j a v a x . xml . ws . Endpoint ; 3 4 i m p o r t myWebService . S t r i n g S e r v i c e ; 5 6 7 8 9 10 11 p u b l i c class ServiceServer { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args ) { Endpoint ep = Endpoint . p u b l i s h ( ” h t t p : / / localhost:8060 / service ” , new S t r i n g S e r v i c e ( ) ) ; System . o u t . p r i n t l n ( ” S e r v i c e Ready and w a i t i n g ” ) ; } } Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Beispiel JAX-WS JAX WS Beispiel Aufrufen des Service - WSDL wird automatisch generiert. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Erzeugen eines Clients Nutzen der WSDL Dateien Aus der WSDL Datei kann nun der nötige Code generiert werden, um den Service am Client einzusetzen. 1 wsimport −d myWebServiceClient −keep −p generatetCode h t t p : / / l o c a l h o s t : 8 0 6 0 / s e r v i c e ? wsdl Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Erzeugen eines Clients Implementierung des Clients Mit Hilfe der generierten Klassen auf den Service zugreifen. 1 2 3 package myWebServiceClient ; i m p o r t generatedCode . S t r i n g S e r v i c e ; i m p o r t generatedCode . S t r i n g S e r v i c e S e r v i c e ; 4 5 public class myServiceClient { 6 7 8 9 10 myServiceClient ( ) { StringService port = ( StringService ) new S t r i n g S e r v i c e S e r v i c e ( ) . getStringServicePort ( ) ; System . o u t . p r i n t l n ( ” Test von S t r i n g count: ” + port . getStringCount ( ” H a l l o ? Test ! ” ) ) ; } 11 12 Web Services p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args ) { Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Was ist Axis Axis (Apache eXtensible Interaction System). Axis ist eine SOAP Engine. Es gibt eine Implementierung in C++ und Java. Axis ist eine Neuentwicklung und Nachfolger von Apache SOAP das auf dem IBM-Framework IBM SOAP basierte. Ziel der Neuentwicklung war: höhere Geschwindigkeit, Flexibilität, Komponentenorientierung, Abstraktion des Transportframeworks, sowie die Unterstützung von WSDL. höhere Geschwindigkeit wurde beispielsweise durch ersetzen des DOM-Parser´s durch einen SAX-Parser erzielt. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Was ist Axis Axis (Apache eXtensible Interaction System). Axis ist eine SOAP Engine. Es gibt eine Implementierung in C++ und Java. Axis ist eine Neuentwicklung und Nachfolger von Apache SOAP das auf dem IBM-Framework IBM SOAP basierte. Ziel der Neuentwicklung war: höhere Geschwindigkeit, Flexibilität, Komponentenorientierung, Abstraktion des Transportframeworks, sowie die Unterstützung von WSDL. höhere Geschwindigkeit wurde beispielsweise durch ersetzen des DOM-Parser´s durch einen SAX-Parser erzielt. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Was ist Axis Axis (Apache eXtensible Interaction System). Axis ist eine SOAP Engine. Es gibt eine Implementierung in C++ und Java. Axis ist eine Neuentwicklung und Nachfolger von Apache SOAP das auf dem IBM-Framework IBM SOAP basierte. Ziel der Neuentwicklung war: höhere Geschwindigkeit, Flexibilität, Komponentenorientierung, Abstraktion des Transportframeworks, sowie die Unterstützung von WSDL. höhere Geschwindigkeit wurde beispielsweise durch ersetzen des DOM-Parser´s durch einen SAX-Parser erzielt. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Axis Install Nachdem herunterladen wird Axis einfach in webapps unterhalb von Tomcat eingefügt. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Axis Install -Fortsetzung Response tools.jar aus dem JDK\lib in common\lib von Tomcat kopieren oder als Umgebungsvariable setzen. Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Web Service erstellen per .jws Listing 1: Wetter.jws 1 i m p o r t j a v a . u t i l . Random ; 2 3 p u b l i c c l a s s Wetter { 4 5 6 p u b l i c S t r i n g makeWetter ( S t r i n g S t a d t ) { 7 int i ; 8 Random r = new Random ( ) ; 9 i = r . nextInt (2) ; 10 11 i f ( ” Duisburg ” . equalsIgnoreCase ( S t a d t ) ) { 12 return this . wetterart [ i ] ; 13 14 } 15 i f ( ” Hamburg ” . equalsIgnoreCase ( S t a d t ) ) { 16 return this . wetterart [ i ] ; 17 18 } 19 i f ( ” B e r l i n ” . equalsIgnoreCase ( S t a d t ) ) { 20 return this . wetterart [ i ] ; 21 } 22 return null ; 23 } 24 } Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Web Service erstellen per .jws -Fortsetzung Wetter.jws unterhalb von axis speichern Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Web Service erstellen per .jws -Fortsetzung Jetzt ist der WebService verfügbar Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Manuelle Anfrage über HTTP Manuelle Anfrage über einen Browser Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Axis Axis Antwortet in SOAP SOAP Antwort mit unserem Rückgabewert Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Web Services mit WTP Eclipse Web Tools Platform Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Outline 1 2 3 4 5 6 Idee Idee hinter Web Services? Aufbau WS Schichtenmodell und Standards WSDL im Detail WSDL Dokumente Fazit WSDL SOAP im Detail SOAP - Aufbau Fazit SOAP Web Services und Java Realisierungsmöglichkeiten Beispiel JAX-WS Axis Zusammenfassung & Ausblick Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Web Services Was uns Web Services bringen Standard für die Realisierung verteilter Prozesse freie Wahl der Implementierungssprachen offene und beliebig erweiterbare Formate breite Unterstützung bei allen gängigen Programmiersprachen Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Das ist erst der Anfang Mehraufwand vs. Nutzen Was Rechtfertigt den Mehraufwand? Austausch von Services zur Laufzeit. UDDI (Universal Description, Discovery and Integration) WS-BPEL (Business Process Execution Language) Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Das ist erst der Anfang Mehraufwand vs. Nutzen Was Rechtfertigt den Mehraufwand? Austausch von Services zur Laufzeit. UDDI (Universal Description, Discovery and Integration) WS-BPEL (Business Process Execution Language) Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Das ist erst der Anfang Mehraufwand vs. Nutzen Was Rechtfertigt den Mehraufwand? Austausch von Services zur Laufzeit. UDDI (Universal Description, Discovery and Integration) WS-BPEL (Business Process Execution Language) Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Das ist erst der Anfang Mehraufwand vs. Nutzen Was Rechtfertigt den Mehraufwand? Austausch von Services zur Laufzeit. UDDI (Universal Description, Discovery and Integration) WS-BPEL (Business Process Execution Language) Web Services Werner Gaulke Idee Aufbau WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick 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 WS WSDL im Detail SOAP im Detail Web Services und Java Zusammenfassung & Ausblick Ende Vielen Dank für die Aufmerksamkeit! Web Services Werner Gaulke