Title: Web Services (SOAP, REST, WSDL)
1Web Services(SOAP, REST, WSDL)
2 Web Service Definitionen?
- Gartner Group Web services are software
technologies, making it possible to build bridges
between IT systems that otherwise would require
extensive development efforts. - Forrester Research Software designed to be used
by other software via Internet protocols and
formats - W3C A Web service is a software application
identified by a URI, whose interface and bindings
are capable of being defined, described and
discovered as XML artifacts. A Web service
supports direct interactions with other software
agents using XML-based Messages exchanged via
internet-based protocols. (October 2002) - OASIS Service Oriented Architecture (SOA) is a
paradigm for organizing and utilizing distributed
capabilities that may be under the control of
different ownership domains. (2006)
3Dienste als kleinste Bestandteile in einer
Serviceorientierten Architektur (SOA)
- Dienst beschreibt eine eigenständige
Funktionalität - Funktionalität durch Dienst vollständig
implementiert - eigenständig aus Sicht des Dienstnutzers
- Eine öffentliche Schnittstelle ist verfügbar
- alle Angaben in beschreibender Form
- hersteller-, plattform- und technologieneutrale
Beschreibung - Jeder Dienst ist eigenständiges Artefakt
- Dienst austauschbar durch andere Implementierung
- Kenntniss der Interna des Dienstes nicht notwendig
4WS- Universum
WS-Security
WS-Policy
WS-BPEL
WS-Transaction
WS- Universum
UDDI
?
5Basiskomponenten
- Kommunikation
- Dienstbeschreibung
- Verzeichnisdienst
- SOAP beschreibt das XML-basierte
Nachrichtenformat der Kommunikation und dessen
Einbettung in ein Transportprotokoll - WSDL ist eine XML-basierte Beschreibungssprache,
um Web Services (Dienste) zu beschreiben - UDDI beschreibt einen Verzeichnisdienst für Web
Services. UDDI spezifiziert eine standardisierte
Verzeichnissstruktur für die Verwaltung von Web
Services-Metadaten allgemeine Anforderungen,
Web-Service-Eigenschaften, benötigte
Informationen zum Auffinden von Web Service
6Merkmale einer SOA
- Lose Kopplung
- Dynamisches Binden
- Verzeichnisdienst
- Verwendung von Standards
- Einfachheit
- Sicherheit
- Komplexe Aspekte
- Automatisierung der Kommunikation
- Geschäftsprozessmodellierung
- Ereignisse
- Semantik
7Vorläufer und artverwandte Technologien
- Sun RPC (1985)
- Microsoft COM (1993)
- für prozessinterne Aufgabenstellung, nicht für
Netzwerkkommunikation geeignet - CORBA (1992)
- Microsoft DCOM (1996)
- CORBA-Pendant für die Windows-Welt
- Weiterentwicklung COM ab Windows2000
- Java RMI (1996)
8Web Services Stack
Components
Requirements
WS-BPEL
Service Flow
Service Discovery
UDDI, WS-Inspection
Service Publication
UDDI
Service Description
WSDL
XML-based Messaging
SOAP
HTTP, HTTPS, SMTP
Network
9Was ist SOAP?
- ursprünglicher Name Simple Object Access
Protokoll - XML-Markup-Language
- weist Ähnlichkeiten zu Protokoll auf
- SOAP-Spezifikation beschreibt nur Aufbau einer
Nachricht, nicht den Versand! - Eigenschaften
- Regeln, wie Daten in Nachrichten einzubinden und
zu interpretieren sind, Konventionen für
XML-basierten RPC - keine Vorschriften zur Semantik
- kann beliebige Transportprotokolle nutzen, z.B.
HTTP, SMTP, FTP, auch TCP/IP - ermöglicht transparenten Zugang zu Applikationen
über Standardport des Webservers somit
Bindeglied zwischen Applikationen
10Grundansatz Serialisierung
- Eigene Serialisierungs-Spezifikationen möglich
- Standard-Serialisierung
- Objekte bzw. Objektstrukturen üblicher Typsysteme
(Java, C, C) werden auf XML abgebildet - Arrays und Referenzen sind auch möglich
11Metapher des E-Umschlags
- SOAP document style
- packt XML in Envelope
12Vermittlung
Hub Sender/ Empfänger
Hub Sender/ Empfänger
Knoten
13REST? Der Rest von was?
- Alternative zu SOAP
- REST REpresentational State Transfer
- kein eigenes Protokoll, keine eigene Nachricht
- beschreibt Architekturstil für Webstandards
Webanwendung besteht aus Sammlung von Ressourcen,
die über HTTP-Operationen angesprochen werden - entwickelt von Roy Fielding in seiner
Dissertation 2000 - Architektonische Elemente von REST
- Ressourcen und Repräsentationen
- Einheitliche Schnittstellen
- Hypermedia (Verknüpfung)
14REST Abgrenzung und Vergleich zu SOAP
- Ressource
- Quelle an einer beliebigen Stelle im Web,
eindeutig identifizierbar über URIs oder auch
URLs - in REST Komponenten einer Applikation
- Beispiele Darlehensanträge, Werbung, Bilder
- URIs / URLs in Browser als Link oder Lesezeichen
hinterlegt - Unterstützung bei unterschiedlichen
Repräsentationen derselben Ressource (Content
Negotiation) - Direkter Zugriff auf Ressourcen durch
Applikation (kein umständliches Entpacken,
Bearbeiten usw. wie in SOAP)
15REST Abgrenzung und Vergleich zu SOAP(2)
- einheitliche Schnittstellen
- Dienstnutzer weiß, wie Daten zu bekommen sind
- immer gleiche Operationen angelehnt an HTTP
- Ressource durch Browser nutzbar (anders als bei
SOAP) - REST-konforme Schnittstelle durch Nutzung von
HTTP generisch - Operationen
- GET Abfrage der Repräsentation einer Ressource
- POST Anlegen einer Ressource oder Starten von
Prozessen auf Server - PUT Ressource auf Server anlegen oder verändern
- DELETE Löschen von Ressourcen
- HEAD Abfrage von Metadaten über Ressource durch
Client - OPTIONS Abfrage vorhandener Methoden an einer
Resource - Web Services erhalten bei neuen Anforderungen
immer neue Schnittstellen mit passenden
Datentypen und Operationen
16REST Abgrenzung und Vergleich zu SOAP(3)
- Hypermedia (Verknüpfung)
- Verknüpfen und Nutzen von Ressourcen
untereinander - Eigentliche Verlinkung enthält Inhalt, der
Nachricht selbst repräsentiert - von Ressourcenname zu Prozess
- Standards
- HTTP GET, POST, DELETE, PUT
- Datenformate XML, XHTML, PNG, GIF, JPEG, HTML
- MIME-Typen für HTTP undd URIs
- Nachrichten
- Übertragung in allen gängigen Formaten
- Keine speziellen Formate erforderlich
- REST-Nachricht selbsterklärend ohne Wissen über
zuvor versendete oder später zu versendende
Nachrichten - Status der Nachricht über den Inhalt (also die
Repräsentation) des Hypertext-Dokuments
abgebildet - Ressource durch Browser nutzbar (anders als bei
SOAP)
17WSDL
- WSDL Web Services Definition Language
- Beschreibt WebServices in XML Notation
- Funktion wie IDL in Corba (aber nicht nur
abstrakte Beschreibung) - ist plattform-, protokoll- und programmiersprachen
unabhängig - Spezifikation unter www.w3.org/TR/wsdl
- spezifiziert ein Interface zu einem Dienst nur
syntaktische Elemente - nicht vorhanden (dafür gibts andere Standards)
- QoS-Informationen (z.B. Kosten, Antwortzeit)
- Sicherheitsbestimmungen
- semantische Beschreibung (Effekte einer
Operation) - besitzt die Dateiendung .wsdl
- Historie
- Veröffentlichung von WSDL 1.1 durch im März 2001
- WSDL 2.0 veröffentlicht im Juni 2007
18WSDL
- WSDL beantwortet die 4 elementaren Fragen
- Welche Datentypen gibt es?
- lttypes/gt Element
- Welche Funktionalität besitzt der Dienst?
- ltmessage/gt und ltinterface/gt Element
- Wie wird kommuniziert?
- ltbinding/gt Element
- Wo befindet sich der Dienst?
- ltservice/gt Element
19Elemente in WSDL
Message Abstrakte Definition der
auszutauschenden Daten (typischerweise auf
XML-Basis) Operation Abstrakte Aktionen, die ein
Service unterstützt (d.h. Menge von Input und
Output Messages) Port Type Menge von
Operationen, ab WSDL 1.2 Interface Binding
Beschreibt Abbildung eines Interfaces auf
konkretes Datenübertragungsprotokoll (z.B.
SOAP) Endpunkt (Port) Einzelner individueller
"Endpunkt" mit konkretem Binding, identifiziert
durch eine Netzwerkadresse Service Sammlung
zusammengehöriger Endpunkte
20Struktur eines WSDL Files
21WSDL
- Welche Datentypen gibt es?
22WSDL
- Welche Funktionalität besitzt der Dienst?
23WSDL
24WSDL
- Wo befindet sich der Dienst?