Web Services - Standards und Realisierung in Java

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