Upload
ricarda-hemp
View
104
Download
0
Embed Size (px)
Citation preview
Web Services
SOAP, UDDI, WS-Inspection und WSDL
Sommersemester 2002 Verteilte und Parallele DBMS 2
Definition Web Service Keine einheitliche Definition i.A. Dienst, der Benutzern über das Web
zur Verfügung gestellt wird und dabei beispielsweise auf XML und HTTP zurückgreift
Unterschied zu klassischen Diensten im Web:auf automatisierte Benutzung ausgelegt
Sommersemester 2002 Verteilte und Parallele DBMS 3
Stand der Technik Viele große Softwarefirmen bieten
entsprechende Produkte an: BEA WebLogic HP Web Services Platform IBM WebSphere Microsoft .NET mySAP.com von SAP SUN ONE
Sommersemester 2002 Verteilte und Parallele DBMS 4
Beispiel für Web Services Marktplätze
Automobilindustrie Fluggesellschaften …
Ziel dieser Marktplätze:Optimierung des Einkaufs, d.h. möglichst schnell das günstigste Angebot unter allen Anbietern zu finden und auch die Bestellung online abwickeln können.
Dazu werden Daten von ERP-Systemen in Marktplätzen integriert.
Sommersemester 2002 Verteilte und Parallele DBMS 5
Motivation Dienste werden im Internet angeboten Bisher allerdings nur mit HTML-
Formularen/ HTML-Seiten als Benutzerschnittstelle
Automatische Benutzung schwierig ( „screen scraping“-Technologien)
Jeder Dienst hat seine eigene Oberfläche, dadurch keine einheitliche Bedienung
Sommersemester 2002 Verteilte und Parallele DBMS 6
Ziel der Web Services Vollautomatische Dienstnutzung Interoperabilität unabhängig vom
zugrundeliegenden Betriebssystem, von der Programmiersprache der Services und von der Web Service Engine
Dienstkomposition Einheitliche Schnittstellen für Dienste, die
dasselbe leisten (z.B. gleiche Schnittstelle für alle Kreditkarten-Bezahl-Dienste, Buchbestellungs-Dienste,…)
Sommersemester 2002 Verteilte und Parallele DBMS 7
Interoperabilität (1) Um die Interoperabilität von Diensten zu
gewährleisten, braucht man Standards: SOAP (Simple Object Access Protocol – IBM,
MS,…) ebXML (Electronic Business using eXtensible
Markup Language – OASIS, UN/CEFACT) UDDI (Universal Description, Discovery and
Integration – HP, IBM, Intel, Microsoft, SAP, Software AG, Sun, …)
WSDL (Web Services Description Language – Ariba, IBM, Microsoft)
Sommersemester 2002 Verteilte und Parallele DBMS 8
Interoperabilität (2) Standards (2):
WSFL (Web Services Flow Language – IBM) XLANG (Microsoft) WS-Inspection (Web Service Inspection
Language – IBM, Microsoft) …
Alle diese Standards basieren auf XML!
Sommersemester 2002 Verteilte und Parallele DBMS 9
XML: Extensible Markup Language Vom World Wide Web Konsortium (W3C)
konzipiert und standardisiert XML-Datenmodell liegt zwischen:
HTML Schema-los Beliebige Daten, solange Syntax stimmt
Relationales Schema Schema Keine Abweichungen
Semi-strukturierte Daten Teilweise schematisch Aber Ausnahmen Wenn Schema, dann muss es eingehalten werden
Sommersemester 2002 Verteilte und Parallele DBMS 10
XML-Daten mit Schema Verschiedene Möglichkeiten
DTD Einfach Nicht sehr leistungsfähig
XML-Schema Mächtiger als DTDs Unterstützt auch komplexe Typen Viele Grundtypen vordefiniert
Sommersemester 2002 Verteilte und Parallele DBMS 11
Aufbau eines XML-Dokumentes Optionale Präambel – u.a. XML-Version Optionales Schema Ein einziges Wurzelelement, das beliebig viele und
beliebig tief geschachtelte Unterelemente beinhalten kann Elemente werden immer von Start- und Ende-Tag
eingeschlossen, z.B. <Vorlesung> und </Vorlesung> Elemente = atomare Informationseinheit Jedes Element hat einen Namen, der durch das Start- bzw.
Ende-Tag angegeben ist Jedes Element kann Attribute besitzen Inhalt eines Elementes = geordnete Liste aus
(Unter-)Elementen, Kommentaren oder Strings
Sommersemester 2002 Verteilte und Parallele DBMS 12
Name des WurzelelementesUnterelementeAttribut des Buch-Elementes
Start- und Ende-Tag des Wurzelelementes
Wurzelelement
Schema
PräambelBeispiel-XML-Dokument<?xml version="1.0" encoding='ISO-8859-1'?><!-- obige Zeile ist der Prolog, diese Zeile ist ein Kommentar -->
<!-- Schema als DTD --><!DOCTYPE Buch[ <!ELEMENT Buch (Titel, Autor*, Verlag)> <!ATTLIST Buch Jahr CDATA #REQUIRED> <!ELEMENT Titel (#PCDATA)> <!ELEMENT Autor (#PCDATA)> <!ELEMENT Verlag (#PCDATA)>]>
<!-- Wurzelelement--><Buch Jahr="2001"> <Titel>Datenbanksysteme: Eine Einführung</Titel> <Autor>Alfons Kemper</Autor> <Autor>Andre Eickler</Autor> <Verlag>Oldenbourg Verlag</Verlag></Buch>
Sommersemester 2002 Verteilte und Parallele DBMS 13
UDDI-Verzeichnisdienst
Klient Anbieter
Web Service A
Web Service B
Überblick über den Einsatz von Web Services
Sommersemester 2002 Verteilte und Parallele DBMS 14
UDDI-Verzeichnisdienst
Klient Anbieter
WSDL-Dokument A
Web Service A
Web Service B
(1) registrieren
(1) registrieren
WSDL-Dokument B
Überblick Web Services – Dienste registrieren
Sommersemester 2002 Verteilte und Parallele DBMS 15
UDDI-Verzeichnisdienst
Klient Anbieter
WSDL-Dokument A
Web Service A
Web Service B
(2) suchen
WSDL-Dokument B
Überblick Web Services – Dienstsuche
Sommersemester 2002 Verteilte und Parallele DBMS 16
UDDI-Verzeichnisdienst
Klient Anbieter
WSDL-Dokument A
Web Service A
Web Service B
WSDL-Dokument B
(3) laden WSDL-Dokument B
Überblick Web Services – Proxy generieren (1)
Sommersemester 2002 Verteilte und Parallele DBMS 17
UDDI-Verzeichnisdienst
Klient Anbieter
WSDL-Dokument A
Web Service A
Web Service B
Proxy
WSDL-Dokument B
(4) generieren
WSDL-Dokument B
Überblick Web Services - Proxy generieren (2)
Sommersemester 2002 Verteilte und Parallele DBMS 18
UDDI-Verzeichnisdienst
Klient Anbieter
WSDL-Dokument A
Web Service A
Web Service B
Proxy
(5) kommunizieren via SOAP
WSDL-Dokument B
Überblick Web Services – Dienst ansprechen
Sommersemester 2002 Verteilte und Parallele DBMS 19
Aktionen des Dienstanbieters
Object1UDDI-Verzeichnisdienst
WSDL-Dokument
Web Service
Verweis aufWSDL-Dokument
Dienstanbieter
interaktive Suche nach geeignetem tModel
falls kein geeignetes tModel verfügbar, registriere neues tModel
fordere zum tModel gehöriges WSDL-Dokument an
laden
dient als Grundlage für
Gerüst
generieren
(Werkzeug)
implementieren & betreiben
registrieren
Web-Service-Gerüst
Web Service
Sommersemester 2002 Verteilte und Parallele DBMS 20
UDDI-Verzeichnisdienst
WSDL-Dokument
Klient Web Service
Verweis aufWSDL-Dokument
interaktive Dienstsuche
anfordern
laden
Proxygenerieren
(Werkzeug)
ausführen
Ergebnis
SOAP-RPC-Anforderung
SOAP-RPC-Antwort
dient als Grundlage für
(via Inquiry-API)
Web Service
Verweis aufWeb Service
Aktionen von Klienten
Sommersemester 2002 Verteilte und Parallele DBMS 21
Beispiel-Szenario Vorstellung der weit verbreiteten
Standards SOAP, UDDI, WS-Inspection und WSDL
am Beispiel eines Temperaturdienstes. Die Dienste des Beispiel-Szenarios
werden auf wetter.fmi.uni-passau.de angeboten
Sommersemester 2002 Verteilte und Parallele DBMS 22
Der Temperaturdienst Liefert zu einem vom Benutzer
vorgegebenen Zeitpunkt die Temperatur zurück, die an einem Temperatursensor in der Stadt Passau gemessen wurde.
keine Messdaten zum geforderten Zeitpunkt Messwert vom nächstgelegenen Messzeitpunkt
Sommersemester 2002 Verteilte und Parallele DBMS 23
Weitere Dienste des Szenarios Einheitenumrechnerdienst:
Rechnet Temperaturangaben in verschiedene Einheiten um
TemperaturInFahrenheitDienst:Liefert wie der Temperaturdienst die Temperatur in der Stradt Passau zurück, allerdings in Grad Fahrenheit
Sommersemester 2002 Verteilte und Parallele DBMS 24
Überblick über die Standards SOAP
Kommunikationsprotokoll zum Austausch von Nachrichten
UDDI Standard für Dienstverzeichnisse von Web
Services WS-Inspection
Spezifikation für Site-basierte Dienstsuche WSDL
Sprache zur Dienstbeschreibung
Sommersemester 2002 Verteilte und Parallele DBMS 25
Das Kommunikationsprotokoll SOAP Simple Object Access Protokoll XML-basiertes Protokoll Kommunikationsprotokoll für verteilte
Anwendungen zum Austausch strukturierter und typisierter Daten
Kann z.B. HTTP, SMTP, FTP,… als Übertragungsprotokoll nutzen
Anwendungsspektrum: Vom Zustellen einer Nachricht bis zum RPC (Remote Procedure Call)
Sommersemester 2002 Verteilte und Parallele DBMS 26
SOAP - Serialisierung Eigene Serialisierungs-Spezifikationen
möglich Standard-Serialisierung:
Typsystem basierend auf gebräuchlichen Typsystemen
Objekte bzw. Objektstrukturen dieses Typsystems werden auf XML abgebildet
Arrays und Referenzen sind auch möglich Abbildungen der Typsysteme von
Programmiersprachen auf das SOAP-Typsystem sind nicht festgelegt!
Sommersemester 2002 Verteilte und Parallele DBMS 27
SOAP - Nachrichtenformat
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><!--Der Header ist optional -->
</soap:Header>
<soap:Body> <!-- Serialisierte Objektdaten --> </soap:Body></soap:Envelope> Envelope
Sommersemester 2002 Verteilte und Parallele DBMS 28
SOAP - Nachrichtenformat
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><!--Der Header ist optional -->
</soap:Header>
<soap:Body> <!-- Serialisierte Objektdaten --> </soap:Body></soap:Envelope> Envelope
Angabe der Serialisierungsspezifikation(Hier Standard-Serialisierung)
Sommersemester 2002 Verteilte und Parallele DBMS 29
SOAP - Nachrichtenformat
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><!--Der Header ist optional -->
</soap:Header>
<soap:Body> <!-- Serialisierte Objektdaten --> </soap:Body></soap:Envelope>
Header
Sommersemester 2002 Verteilte und Parallele DBMS 30
SOAP - Header Optionales Element Bietet generischen Mechanismus, um
SOAP dezentral zu erweitern Beispiele für Erweiterungen:
Web Service Security Language Transaktionsmanagement
Sommersemester 2002 Verteilte und Parallele DBMS 31
SOAP - Nachrichtenformat
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><!--Der Header ist optional -->
</soap:Header>
<soap:Body> <!-- Serialisierte Objektdaten --> </soap:Body></soap:Envelope>
Body
Sommersemester 2002 Verteilte und Parallele DBMS 32
SOAP - Body Möglichkeit zwischen Sender und
Empfänger Daten auszutauschen Typische Verwendungszwecke:
Aufnahme serialisierter Daten für RPC-Aufrufe Aufnahme von Fehlernachrichten
SOAP definiert nur das Fault-Element für die Übermittlung von Fehlerzuständen als Unterelement des Body-Elementes
Sommersemester 2002 Verteilte und Parallele DBMS 33
Kommunikation mit SOAP Standardisierte Möglichkeit: SOAP über
HTTP Sender Empfänger: HTTP-Post-
Anforderungen Empfänger Sender: HTTP-Antwort Auch RPC-Aufrufe über SOAP/HTTP sind
standardisiert Alternative Möglichkeiten (nicht
standardisiert): SOAP über SMTP (Mailprotokoll) SOAP über FTP (Dateiübertragungsprotokoll)
Sommersemester 2002 Verteilte und Parallele DBMS 34
Anfrage an den Temperaturdienst
Anfrage: „ Liefere die Temperatur, die am 22.02.2002 um 12.00
Uhr gemessen worden ist“
Sommersemester 2002 Verteilte und Parallele DBMS 35
SOAP-Nachricht eigebettet in eine HTTP-POST-Anforderung
Name der Methode
Name der Methode
Parameter der Methode
Sommersemester 2002 Verteilte und Parallele DBMS 36
Antwort des Temperaturdienstes
Am 22.02.2002, 13.00 Uhr wurden 4.4 Grad Celsius gemessen!
Achtung: Nächstgelegener Messzeitpunkt!
Sommersemester 2002 Verteilte und Parallele DBMS 37
SOAP-Nachricht eingebettet in eine HTTP-Antwort
Anforderung erfolgreich bearbeitet
Sommersemester 2002 Verteilte und Parallele DBMS 38
Dienstverwaltung Um Dienste zu nutzen, benötigt man
Metadaten: Wo findet man einen Dienst? Was tut er genau? Wie spricht man ihn an? Wer betreibt den Dienst? …
Dafür gibt es den Verzeichnisdienst UDDI und als Alternative WS-Inspection
Sommersemester 2002 Verteilte und Parallele DBMS 39
UDDI - Verzeichnisdienst Universal Description, Discovery and Integration Aktuell: Version 2 Initiative von mehr als 300 Firmen (HP, IBM,
Microsoft, SAP, Software AG,…) Ziel: Globales UDDI-Verzeichnis Speicherung der Metadaten in einheitlicher
Datenstruktur UDDI-Schema (XML Schema) Festlegung von Veröffentlichungs-Mechanismen
UDDI-Publishing-API Festlegung einer Anfragesprache UDDI-
Inquiry-API Konzeptuell: Verteiltes Datenbanksystem
(allerdings ohne Transaktionssystem!)
Sommersemester 2002 Verteilte und Parallele DBMS 40
Globales UDDI-Verzeichnis Viele lokale Installationen von UDDI-
Servern Zusammenschluss zu globalem Verbund Periodischer Abgleich der Daten Erscheint dem Benutzer wie ein Server
UDDI-Wolke
Sommersemester 2002 Verteilte und Parallele DBMS 41
UDDI-Server-Verbund
Sommersemester 2002 Verteilte und Parallele DBMS 42
Daten in UDDI White Pages: Daten über den Dienstanbieter
Adressdaten Kontaktpersonen Identifikatoren, z.B. Steuernummern
Yellow Pages: Angaben über Dienste Wie die Gelben Seiten basierend auf
Klassifikationen Eigene Klassifikationen möglich
Green Pages: Teschnische Informationen Adresse von Diensten Wie werden die Dienste konkret angeprochen
Sommersemester 2002 Verteilte und Parallele DBMS 43
Datenstukturen in UDDI (1) Hauptstukturen:
businessEntity: Firmeninformationen businessService: Klassen von Diensten bindingTemplate: Technische Informationen
Logisch in einer Baumstruktur angeordnet:
businessEntity
businessService
businessService
businessService
bindingTemplate
bindingTemplate
bindingTemplate
bindingTemplate
bindingTemplate
bindingTemplate
Sommersemester 2002 Verteilte und Parallele DBMS 44
Datenstukturen in UDDI (2) Strukturen zur Klassifikation und
Kategorienbildug tModel (technical model): Kategorienbildung
und Referenzierung von technischen Informationen
publisherAssertions: Modellierung von Geschäftsbeziehungen (z.B. Allianzen)
Instanzen aller Strukturen durch UUIDs (Universally Unique IDs) eindeutig identifizierbar
Sommersemester 2002 Verteilte und Parallele DBMS 45
UML-Modell des UDDI-Schemas - Teilansicht
Sommersemester 2002 Verteilte und Parallele DBMS 46
UML-Modell des UDDI-Schemas
Sommersemester 2002 Verteilte und Parallele DBMS 47
businessEntity Angaben über eine Firma, Organisation, o.ä. businessKey wird automatisch vergeben Beispiel: businessEntity des Lst. für Dialog. Systeme Hier Kategorisierung nach geographischer Lage:
ISO 3166: DE-BY-PAS = Deutschland-Bayern-Passau
Sommersemester 2002 Verteilte und Parallele DBMS 48
businessService Dienstgruppierung innerhalb eines
businessEntities Keine Auskunft über konkrete Dienste Beispiel: businessService, der
Temperaturdienste gruppiert
Sommersemester 2002 Verteilte und Parallele DBMS 49
bindingTemplate Konkreter Dienst innerhalb eines
businessServices Beinhaltet technische Informationen:
Zugriffspunkt: accessPoint Beschreibung der Aufruf- und Rückgabemodalitäten im
referenzierten tModel
Beispiel: Temperaturdienst
Sommersemester 2002 Verteilte und Parallele DBMS 50
tModel als technischer Fingerabdruck Verweis auf technische Dienstbeschreibungen Normalerweise werden WSDL-Dokumente
referenziert Beispiel: tModel für Temperaturdienst
Sommersemester 2002 Verteilte und Parallele DBMS 51
tModel als Namensraumbezeichner Erzeugen und Benutzung von Taxonomien Beispiel: tModel für ISO 3166:
Beispiel: tModel für WSDL-Dokumente:
Sommersemester 2002 Verteilte und Parallele DBMS 52
Übersicht über die UDDI-Einträge für das Beispielszenario
Sommersemester 2002 Verteilte und Parallele DBMS 53
UDDI-Anfragesprache (Inquiry-API) XML-basiert Kommunikation über SOAP-Protokoll Beschränkt auf relativ einfache Anfragen Zwei Arten von Anfragen:
Browse-Anfragen Drill-Down-Anfragen
Verwendung: z.B. UDDI-Browser zur interaktiven Dienstsuche
Sommersemester 2002 Verteilte und Parallele DBMS 54
Browse-Anfragen Erstmaliges Auffinden von Metadaten Beispiel: Suche alle businessEntities,
deren Name mit „Universitaet“ beginnt:
Maximal 5 Ergebnisse Aufsteigend nach Namen sortiert Präfixvergleich, da nichts anderes angegeben
ist
Sommersemester 2002 Verteilte und Parallele DBMS 55
Drill-Down-Anfragen Liefern detaillierte Daten zu bekannten
Identifikatoren (UUIDs) Beispiel: Suche nach dem tModel mit der
angegebenen UUID:
Sommersemester 2002 Verteilte und Parallele DBMS 56
UDDI-Befehle zur Datenmodifikation (Publishing-API) Ebenfalls XML-basiert Kommunikation über SOAP-Protokoll via
HTTPS Speicher- und Löschaufrufe Beispiel:
Sommersemester 2002 Verteilte und Parallele DBMS 57
Umgang mit bindingTemplates:Pufferung und Puffer-Kohärenz Umgang mit bindingTemplates:
1. Anwendung A lädt die Metadaten von Dienst T. Die technischen Informationen können von A gepuffert werden.
2. Schlägt ein Aufruf von T fehl, muss A erneut die (hoffentlich) aktualisierten Metadaten von T abrufen. Diese können dann wieder gepuffert werden.
Vorteile: Verhindert Überlastung von UDDI-Servern Verhindert Überalterung von gepufferten
Daten
Sommersemester 2002 Verteilte und Parallele DBMS 58
Globale Replikation der Daten Primärkopie-Ansatz
Jedes Datum hat einen Heimat-Server und einen Zeitstempel der letzten Änderung
Am Heimat-Server kann es geändert bzw. gelöscht werden
Periodische Benachrichtigung anderer UDDI-Server
Veraltete Daten werden aktualisiert Replikation läuft über SOAP auf HTTPS-
Verbindungen
Sommersemester 2002 Verteilte und Parallele DBMS 59
Site-basierte Dienstsuche: WS-Inspection Keine Konkurrenz, sondern Ergänzung zu
UDDI Möglichkeit, auf alle Dienste einer Site zu
verweisen Sammlung von Referenzen auf bereits
vorhandene Dienstbeschreibungen Kopien von Beschreibungen nicht nötig
Spezielle Elemente für Verweise auf WSDL-Dokumente und UDDI-Einträge
Flexibel erweiterbar
Sommersemester 2002 Verteilte und Parallele DBMS 60
WS-Inspection-Dokument von wetter.fmi.uni-passau.de
…Referenz auf UDDI-Verzeichnis
Referenz auf WSDL-Datei
Sommersemester 2002 Verteilte und Parallele DBMS 61
Auffinden von WS-Inspection-Dokumenten Möglichkeit 1: inspection.wsil an den
Haupteinstiegspunkten eines Web-Servers: http://wetter.fmi.uni-passau.de/inspection.wsil
Möglichkeit 2: Verweis auf WS-Inspection-Dokumente innerhalb von HTML-Seiten:
Sommersemester 2002 Verteilte und Parallele DBMS 62
Dienstbeschreibung mit WSDL XML-basiert Beschreibung von Diensten:
Operationen Format der Ein- und Ausgabedaten Kommunikationsprotokoll
Erweiterbar durch „Erweiterungselemente“ Verschiedene Protokolle und Datenformate verwendbar
Sommersemester 2002 Verteilte und Parallele DBMS 63
Aufbau von WSDL-Dokumenten Elemente:
types message portType binding port service
Dienst = Menge von Endpunkten, die Nachrichten miteinander austauschen
Sommersemester 2002 Verteilte und Parallele DBMS 64
Struktur eines WSDL-Dokumentes (1)
…
Sommersemester 2002 Verteilte und Parallele DBMS 65
Struktur eines WSDL-Dokumentes (2)
…
Sommersemester 2002 Verteilte und Parallele DBMS 66
Beispiel: Der Temperaturdienst - Typen Definition von Datentypen für die Nachrichten Normalerweise XML-Schema als Typsystem,
andere Typsysteme möglich Vorhandene XML-Schema-Dokumente können
eingebunden werden (import)
Sommersemester 2002 Verteilte und Parallele DBMS 67
Beispiel: Der Temperaturdienst - Nachrichten Definiert Format der Ein- und Ausgabedaten Pro Nachricht ein message-Element
Pro Bestandteil ein part-Element Wenn man Nachrichten mit Funktionen vergleicht,
entsprechen parts den Parametern Nur abstakte Beschreibung von Nachrichten!
Übertragungsformat ist nicht festgelegt!
Sommersemester 2002 Verteilte und Parallele DBMS 68
Beispiel: Der Temperaturdienst – Port-Typen (1) Fasst Nachrichten zu abstrakten Operationen
zusammen Mehrere Operationen pro Port-Typ möglich Vier mögliche Operationsprimitiven:
One-Way: Endpunkt empfängt Nachricht Request-Response: Endpunkt empfängt Nachricht
und antwortet Solicit-Response: Enpunkt sendet Nachricht und
empfängt Antwort Notification: Endpunkt sendet Nachricht
Sommersemester 2002 Verteilte und Parallele DBMS 69
Beispiel: Der Temperaturdienst – Port-Typen (2) Unterelemente einer Operation:
input: Format der zu empfangenen Nachricht output: Format der zu sendenden Nachricht fault: Beschreibung möglicher Fehlernachrichten Reihenfolge/Vorhandensein der Elemente legt den
Operationstyp fest
Sommersemester 2002 Verteilte und Parallele DBMS 70
Beispiel: Der Temperaturdienst – Bindungen Bindung = Port-Typ + Protokoll + Nachrichtenformat Mehrere Bindungen für einen Port-Typ möglich (z.B.
SOAP, HTTP und MIME)
Sommersemester 2002 Verteilte und Parallele DBMS 71
Beispiel: Der Temperaturdienst – Ports und Dienste Port = Bindung + Netzwerkadresse Dienst = Gruppierung zusammengehöriger Ports Einsatz von Erweiterungselementen, um verschiedene Protokolle zu
unterstützen (hier SOAP) SOAP, HTTP und MIME-Erweiterungselemente bereits im WSDL-Standard
Sommersemester 2002 Verteilte und Parallele DBMS 72
WSDL-Dokument des Temperaturdienstes (1)
Sommersemester 2002 Verteilte und Parallele DBMS 73
WSDL-Dokument des Temperaturdienstes (2)
Sommersemester 2002 Verteilte und Parallele DBMS 74
Einbettung von WSDL in UDDI Problem: UDDI und WSDL speichern Daten
über z.B. Netzwerkadresse Redundanz, Schlechte Widerverwendbarkeit des WSDL-Dokumentes
Lösung: service-Element wird aus WSDL-Dokumenten
weggelassen. Diese Informationen werden allein von UDDI verwaltet.
UDDI verweist innerhalb von tModels auf WSDL-Dokumente
Sommersemester 2002 Verteilte und Parallele DBMS 75
Dienstkomposition und -interaktion• Durch Komposition vorhandener Dienste
können neue Dienste „zusammengebaut“ werden.
• Beispiel: TemperaturInFahrenheitDienst = Temperaturdienst + Einheitenumrechnerdienst
• Auch dafür gibt es XML-basierte Sprachen: • Web Services Flow Language (WSFL) von IBM• XLang von Microsoft• XL von Donald Kossmann et al.
Sommersemester 2002 Verteilte und Parallele DBMS 76
Der TemperaturInFahrenheitDienst
Sommersemester 2002 Verteilte und Parallele DBMS 77
ServiceGlobe Forschungsplattform für Web Services
basierend auf: SOAP UDDI WSDL
Neuartige Infrastruktur: Web Services können auf beliebigen Service
Hosts ausgeführt werden Dynamische Dienstauswahl Adaptoren zum Einbinden von existierenden,
nicht-konformen Diensten (z.B. RPC-basierte Dienste)
Sommersemester 2002 Verteilte und Parallele DBMS 78
ServiceGlobe – Dynamische Dienstauswahl „Aufruf von tModels“
passende Implementierung wird während des Kompilierung oder zur Laufzeit ausgewählt
One-, Some-, All-Aufrufe möglich Angabe von Constraints Beispiel: Rufe alle Temperaturdienste auf; beachte
alle Ergebnisse, die innerhalb von einer Minute eintreffen
Vorteile: Optimierung der Abarbeitung möglich Bessere Verfügbarkeit, da bei Ausfall einzelner
Dienste automatisch Alternativen gewählt werden
Sommersemester 2002 Verteilte und Parallele DBMS 79
ServiceGlobe - Architektur
Sommersemester 2002 Verteilte und Parallele DBMS 80
Zusammenfassung Vorstellung der wichtigsten Standards:
SOAP UDDI WS-Inspection WSDL
Servicekomposition und –interaktion