Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Web Services SOAP, UDDI, WS-Inspection und WSDL. Sommersemester 2002Verteilte und Parallele DBMS2 Definition Web Service Keine einheitliche Definition."—  Präsentation transkript:

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

2 Sommersemester 2002Verteilte und Parallele DBMS2 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

3 Sommersemester 2002Verteilte und Parallele DBMS3 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

4 Sommersemester 2002Verteilte und Parallele DBMS4 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.

5 Sommersemester 2002Verteilte und Parallele DBMS5 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

6 Sommersemester 2002Verteilte und Parallele DBMS6 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,…)

7 Sommersemester 2002Verteilte und Parallele DBMS7 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)

8 Sommersemester 2002Verteilte und Parallele DBMS8 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!

9 Sommersemester 2002Verteilte und Parallele DBMS9 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

10 Sommersemester 2002Verteilte und Parallele DBMS10 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

11 Sommersemester 2002Verteilte und Parallele DBMS11 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. und 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

12 Sommersemester 2002Verteilte und Parallele DBMS12 Name des Wurzelelementes Unterelemente Attribut des Buch-Elementes Start- und Ende-Tag des Wurzelelementes Wurzelelement Schema Präambel Beispiel-XML-Dokument Datenbanksysteme: Eine Einführung Alfons Kemper Andre Eickler Oldenbourg Verlag

13 Sommersemester 2002Verteilte und Parallele DBMS13 Überblick über den Einsatz von Web Services

14 Sommersemester 2002Verteilte und Parallele DBMS14 Überblick Web Services – Dienste registrieren

15 Sommersemester 2002Verteilte und Parallele DBMS15 Überblick Web Services – Dienstsuche

16 Sommersemester 2002Verteilte und Parallele DBMS16 Überblick Web Services – Proxy generieren (1)

17 Sommersemester 2002Verteilte und Parallele DBMS17 Überblick Web Services - Proxy generieren (2)

18 Sommersemester 2002Verteilte und Parallele DBMS18 Überblick Web Services – Dienst ansprechen

19 Sommersemester 2002Verteilte und Parallele DBMS19 Aktionen des Dienstanbieters

20 Sommersemester 2002Verteilte und Parallele DBMS20 Aktionen von Klienten

21 Sommersemester 2002Verteilte und Parallele DBMS21 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

22 Sommersemester 2002Verteilte und Parallele DBMS22 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

23 Sommersemester 2002Verteilte und Parallele DBMS23 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

24 Sommersemester 2002Verteilte und Parallele DBMS24 Ü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

25 Sommersemester 2002Verteilte und Parallele DBMS25 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)

26 Sommersemester 2002Verteilte und Parallele DBMS26 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!

27 Sommersemester 2002Verteilte und Parallele DBMS27 SOAP - Nachrichtenformat Envelope

28 Sommersemester 2002Verteilte und Parallele DBMS28 SOAP - Nachrichtenformat Envelope Angabe der Serialisierungsspezifikation (Hier Standard-Serialisierung)

29 Sommersemester 2002Verteilte und Parallele DBMS29 SOAP - Nachrichtenformat Header

30 Sommersemester 2002Verteilte und Parallele DBMS30 SOAP - Header Optionales Element Bietet generischen Mechanismus, um SOAP dezentral zu erweitern Beispiele für Erweiterungen: Web Service Security Language Transaktionsmanagement

31 Sommersemester 2002Verteilte und Parallele DBMS31 SOAP - Nachrichtenformat Body

32 Sommersemester 2002Verteilte und Parallele DBMS32 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

33 Sommersemester 2002Verteilte und Parallele DBMS33 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)

34 Sommersemester 2002Verteilte und Parallele DBMS34 Anfrage an den Temperaturdienst Anfrage: Liefere die Temperatur, die am um Uhr gemessen worden ist

35 Sommersemester 2002Verteilte und Parallele DBMS35 SOAP-Nachricht eigebettet in eine HTTP-POST-Anforderung Name der Methode Parameter der Methode

36 Sommersemester 2002Verteilte und Parallele DBMS36 Antwort des Temperaturdienstes Am , Uhr wurden 4.4 Grad Celsius gemessen! Achtung: Nächstgelegener Messzeitpunkt!

37 Sommersemester 2002Verteilte und Parallele DBMS37 SOAP-Nachricht eingebettet in eine HTTP-Antwort Anforderung erfolgreich bearbeitet

38 Sommersemester 2002Verteilte und Parallele DBMS38 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

39 Sommersemester 2002Verteilte und Parallele DBMS39 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!)

40 Sommersemester 2002Verteilte und Parallele DBMS40 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

41 Sommersemester 2002Verteilte und Parallele DBMS41 UDDI-Server-Verbund

42 Sommersemester 2002Verteilte und Parallele DBMS42 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

43 Sommersemester 2002Verteilte und Parallele DBMS43 Datenstukturen in UDDI (1) Hauptstukturen: businessEntity: Firmeninformationen businessService: Klassen von Diensten bindingTemplate: Technische Informationen Logisch in einer Baumstruktur angeordnet: businessEntity businessService bindingTemplate

44 Sommersemester 2002Verteilte und Parallele DBMS44 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

45 Sommersemester 2002Verteilte und Parallele DBMS45 UML-Modell des UDDI-Schemas - Teilansicht

46 Sommersemester 2002Verteilte und Parallele DBMS46 UML-Modell des UDDI-Schemas

47 Sommersemester 2002Verteilte und Parallele DBMS47 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

48 Sommersemester 2002Verteilte und Parallele DBMS48 businessService Dienstgruppierung innerhalb eines businessEntities Keine Auskunft über konkrete Dienste Beispiel: businessService, der Temperaturdienste gruppiert

49 Sommersemester 2002Verteilte und Parallele DBMS49 bindingTemplate Konkreter Dienst innerhalb eines businessServices Beinhaltet technische Informationen: Zugriffspunkt: accessPoint Beschreibung der Aufruf- und Rückgabemodalitäten im referenzierten tModel Beispiel: Temperaturdienst

50 Sommersemester 2002Verteilte und Parallele DBMS50 tModel als technischer Fingerabdruck Verweis auf technische Dienstbeschreibungen Normalerweise werden WSDL-Dokumente referenziert Beispiel: tModel für Temperaturdienst

51 Sommersemester 2002Verteilte und Parallele DBMS51 tModel als Namensraumbezeichner Erzeugen und Benutzung von Taxonomien Beispiel: tModel für ISO 3166: Beispiel: tModel für WSDL-Dokumente:

52 Sommersemester 2002Verteilte und Parallele DBMS52 Übersicht über die UDDI-Einträge für das Beispielszenario

53 Sommersemester 2002Verteilte und Parallele DBMS53 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

54 Sommersemester 2002Verteilte und Parallele DBMS54 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

55 Sommersemester 2002Verteilte und Parallele DBMS55 Drill-Down-Anfragen Liefern detaillierte Daten zu bekannten Identifikatoren (UUIDs) Beispiel: Suche nach dem tModel mit der angegebenen UUID:

56 Sommersemester 2002Verteilte und Parallele DBMS56 UDDI-Befehle zur Datenmodifikation (Publishing-API ) Ebenfalls XML-basiert Kommunikation über SOAP-Protokoll via HTTPS Speicher- und Löschaufrufe Beispiel:

57 Sommersemester 2002Verteilte und Parallele DBMS57 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

58 Sommersemester 2002Verteilte und Parallele DBMS58 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

59 Sommersemester 2002Verteilte und Parallele DBMS59 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

60 Sommersemester 2002Verteilte und Parallele DBMS60 WS-Inspection-Dokument von wetter.fmi.uni-passau.de … Referenz auf UDDI-Verzeichnis Referenz auf WSDL-Datei

61 Sommersemester 2002Verteilte und Parallele DBMS61 Auffinden von WS-Inspection- Dokumenten Möglichkeit 1: inspection.wsil an den Haupteinstiegspunkten eines Web-Servers: Möglichkeit 2: Verweis auf WS-Inspection- Dokumente innerhalb von HTML-Seiten:

62 Sommersemester 2002Verteilte und Parallele DBMS62 Dienstbeschreibung mit WSDL XML-basiert Beschreibung von Diensten: Operationen Format der Ein- und Ausgabedaten Kommunikationsprotokoll Erweiterbar durch Erweiterungselemente Verschiedene Protokolle und Datenformate verwendbar

63 Sommersemester 2002Verteilte und Parallele DBMS63 Aufbau von WSDL-Dokumenten Elemente: types message portType binding port service Dienst = Menge von Endpunkten, die Nachrichten miteinander austauschen

64 Sommersemester 2002Verteilte und Parallele DBMS64 Struktur eines WSDL-Dokumentes (1) …

65 Sommersemester 2002Verteilte und Parallele DBMS65 Struktur eines WSDL-Dokumentes (2) …

66 Sommersemester 2002Verteilte und Parallele DBMS66 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)

67 Sommersemester 2002Verteilte und Parallele DBMS67 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!

68 Sommersemester 2002Verteilte und Parallele DBMS68 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

69 Sommersemester 2002Verteilte und Parallele DBMS69 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

70 Sommersemester 2002Verteilte und Parallele DBMS70 Beispiel: Der Temperaturdienst – Bindungen Bindung = Port-Typ + Protokoll + Nachrichtenformat Mehrere Bindungen für einen Port-Typ möglich (z.B. SOAP, HTTP und MIME)

71 Sommersemester 2002Verteilte und Parallele DBMS71 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

72 Sommersemester 2002Verteilte und Parallele DBMS72 WSDL-Dokument des Temperaturdienstes (1)

73 Sommersemester 2002Verteilte und Parallele DBMS73 WSDL-Dokument des Temperaturdienstes (2)

74 Sommersemester 2002Verteilte und Parallele DBMS74 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

75 Sommersemester 2002Verteilte und Parallele DBMS75 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.

76 Sommersemester 2002Verteilte und Parallele DBMS76 Der TemperaturInFahrenheitDienst

77 Sommersemester 2002Verteilte und Parallele DBMS77 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)

78 Sommersemester 2002Verteilte und Parallele DBMS78 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

79 Sommersemester 2002Verteilte und Parallele DBMS79 ServiceGlobe - Architektur

80 Sommersemester 2002Verteilte und Parallele DBMS80 Zusammenfassung Vorstellung der wichtigsten Standards: SOAP UDDI WS-Inspection WSDL Servicekomposition und –interaktion


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

Ähnliche Präsentationen


Google-Anzeigen