80
Web Services SOAP, UDDI, WS-Inspection und WSDL

Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Embed Size (px)

Citation preview

Page 1: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Web Services

SOAP, UDDI, WS-Inspection und WSDL

Page 2: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 3: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 4: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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.

Page 5: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 6: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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,…)

Page 7: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 8: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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!

Page 9: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 10: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 11: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 12: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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>

Page 13: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 13

UDDI-Verzeichnisdienst

Klient Anbieter

Web Service A

Web Service B

Überblick über den Einsatz von Web Services

Page 14: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 15: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 16: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 17: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 18: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 19: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 20: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 21: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 22: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 23: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 24: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 25: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 26: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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!

Page 27: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 28: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 29: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 30: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 31: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 32: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 33: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 34: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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“

Page 35: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 35

SOAP-Nachricht eigebettet in eine HTTP-POST-Anforderung

Name der Methode

Name der Methode

Parameter der Methode

Page 36: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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!

Page 37: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 37

SOAP-Nachricht eingebettet in eine HTTP-Antwort

Anforderung erfolgreich bearbeitet

Page 38: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 39: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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!)

Page 40: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 41: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 41

UDDI-Server-Verbund

Page 42: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 43: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 44: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 45: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 45

UML-Modell des UDDI-Schemas - Teilansicht

Page 46: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 46

UML-Modell des UDDI-Schemas

Page 47: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 48: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 48

businessService Dienstgruppierung innerhalb eines

businessEntities Keine Auskunft über konkrete Dienste Beispiel: businessService, der

Temperaturdienste gruppiert

Page 49: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 50: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 51: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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:

Page 52: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 52

Übersicht über die UDDI-Einträge für das Beispielszenario

Page 53: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 54: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 55: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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:

Page 56: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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:

Page 57: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 58: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 59: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 60: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 60

WS-Inspection-Dokument von wetter.fmi.uni-passau.de

…Referenz auf UDDI-Verzeichnis

Referenz auf WSDL-Datei

Page 61: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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:

Page 62: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 63: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 64: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 64

Struktur eines WSDL-Dokumentes (1)

Page 65: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 65

Struktur eines WSDL-Dokumentes (2)

Page 66: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 67: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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!

Page 68: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 69: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 70: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 71: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 72: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 72

WSDL-Dokument des Temperaturdienstes (1)

Page 73: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 73

WSDL-Dokument des Temperaturdienstes (2)

Page 74: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 75: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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.

Page 76: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 76

Der TemperaturInFahrenheitDienst

Page 77: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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)

Page 78: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

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

Page 79: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 79

ServiceGlobe - Architektur

Page 80: Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition

Sommersemester 2002 Verteilte und Parallele DBMS 80

Zusammenfassung Vorstellung der wichtigsten Standards:

SOAP UDDI WS-Inspection WSDL

Servicekomposition und –interaktion