Web Services - Werner Gaulke

Werbung
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
Herunterladen