/ Web Service Hauptseminar im Institut für Verteilte Systeme Nenad Marjanovic Universität Ulm 17.12.2007
Übersicht Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA 1 2 3 4 5 2 von 42 Nenad Marjanovic / Web Service
Übersicht Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA 1 Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA 2 3 4 5 3 von 42 Nenad Marjanovic / Web Service
Was ist SOA? Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA Definition Die Abkürzung SOA steht für serviceorientierte Architektur. Darunter versteht man die Auslagerung von Funktionen oder Geschäftsprozessen auf einen internen oder externen Dienst. Keine Programmiersprache oder konkrete Technik Architektur für den Softwareaufbau 4 von 42 Nenad Marjanovic / Web Service
Vorteile aus Sicht des Entwicklers Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA Zentrale Speicherung des Codes. Änderungen sofort bei allen Dienstnutzern verfügbar Implementierung des Dienstes unrelevant - Kommunikation über feste Schnittstellen Leichte Wiederverwendbarkeit Schnelle Entwicklung komplexer Abläufe durch Dienstketten 5 von 42 Nenad Marjanovic / Web Service
Vorteile aus Sicht des Managers Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA Kostenersparnis durch Verringerung des Wartungsaufwands Kostenersparnis durch gemeinsame Nutzung der Ressourcen in verschiedenen Abteilungen Kostenersparnis bei Neuentwicklung und Belegung von Ressourcen durch Nutzen von externen Diensten Neue Einnahmequelle durch Anbieten von implementierten Diensten 6 von 42 Nenad Marjanovic / Web Service
Nachteile von SOA Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile von SOA Evtl. neue Sicherheitsprobleme durch Kommunikation über Netzwerk Wenn Dienst oder Netzwerk ausfällt, kann Aufgabe nicht ausgeführt werden Kommunikation mit Dienst beansprucht Zeit (generieren von Anfragen und verarbeiten von Antworten) 7 von 42 Nenad Marjanovic / Web Service
8 von 42 Nenad Marjanovic / Web Service 5 Übersicht Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur 1 2 Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur 3 4
Komponenten Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur Eine serviceorientierte Architektur besteht im Wesentlichen aus Dienst Dienstnutzer Verzeichnisdienst 9 von 42 Nenad Marjanovic / Web Service
Dienst Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur Stellt eine gewisse Funktionalität bereit Dienst kann plattform- und programmiersprachenunabhängig genutzt werden Gibt genau definierte Kommunikationsschnittstelle vor Implementierung und Architektur bleibt verborgen Wird meist über das Netzwerk (Intra- oder Internet) angesprochen 10 von 42 Nenad Marjanovic / Web Service
Dienstnutzer Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur Nimmt die Funktionalität eines Dienstes in Anspruch Ist eine Applikation oder selbst ein Dienst Falls gewisse Funktionität nicht erfüllt werden kann Schnelle Anbietung - spätere eigene Implementierung 11 von 42 Nenad Marjanovic / Web Service
Verzeichnisdienst Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur Liefert einem Nutzer notwendige Informationen über im Verzeichnis registrierte Dienste Funktionalität eines Dienstes Ort, wo der Dienst aufgerufen werden kann Informationen über die Nutzung der Schnittstelle Nutzer sucht über den Verzeichnisdienst die benötigten Dienste heraus. Vorteile: Kann auch erst zur Laufzeit geschehen. Dadurch schnelle Reaktion auf evtl. günstigere oder nicht verfügbare Services 12 von 42 Nenad Marjanovic / Web Service
Interaktionstruktur Komponenten Dienst Dienstnutzer Verzeichnisdienst Interaktionsstruktur 13 von 42 Nenad Marjanovic / Web Service
Übersicht Was ist XML? Struktur Warum XML in SOA? 1 2 3 Was ist XML? Struktur Warum XML in SOA? 4 5 14 von 42 Nenad Marjanovic / Web Service
Was ist XML? Was ist XML? Struktur Warum XML in SOA? Definition Die Abkürzung XML steht für. XML ist eine Metasprache zur Beschreibung von Daten. Die Idee dahinter ist, die Daten von der Semantik zu trennen. Mit XML versucht man Inhalte möglichst leicht maschinell zugänglich, erstell- und manipulierbar zu machen 15 von 42 Nenad Marjanovic / Web Service
Struktur von XML Was ist XML? Struktur Warum XML in SOA? Inhalte werden durch Markierungen (Tags) in funktionale Blöcke gegliedert Markierungen werden duch spitze Klammern gekenzeichnet Alle geöffneten Tags müssen auch geschlossen werden Text zwischen Anfangs- und Endmarke entspricht dem Wert Markierungen können noch mit Eigenschaften versehen werden Die durch die Marken gekennzeichneten Abschnitte können ineinander geschachtelt sein 16 von 42 Nenad Marjanovic / Web Service
Was ist XML? Struktur Warum XML in SOA? Beispiel: Ein geschachteltes XML-Konstrukt. <auto> <marke>audi<marke> <serie>r8</serie> <motor> <hubraum einheit="liter">4.2</hubraum> <leistung einheit="ps">420</leistung> </motor> </auto> 17 von 42 Nenad Marjanovic / Web Service
Warum XML in SOA? Was ist XML? Struktur Warum XML in SOA? XML ist einfach XML liefert die geforderte Plattformunabhängigkeit Das durch Maschinen lesbare Format vereinfacht es Daten zu generieren, zu lesen und zu modifizieren Kann mit beliebigen Marken und Daten gefüllt werden XML ist kostenlos und wird gut unterstützt Zahlreiche Werkzeuge und Bibliotheken, die die Erzeugung von XML-Dokumenten erleichtern Durch W3C standardisiert 18 von 42 Nenad Marjanovic / Web Service
19 von 42 Nenad Marjanovic / Web Service 5 Übersicht Web Service SOAP WSDL UDDI BPEL 1 2 3 4 Web Service SOAP WSDL UDDI BPEL
Web Service Web Service SOAP WSDL UDDI BPEL Konkrete Ausprägung der serviceorientierten Architektur Basierend auf XML Standardisiert von OASIS und W3C Wesentliche Bestandteile: Kommunikationsprotokoll (Beispiel: SOAP) Dienstbeschreibung (Beispiel: WDSL) Verzeichnisdienst (Beispiel: UDDI) Dienste können miteinander gekoppelt werden (Beispiel: BPEL) 20 von 42 Nenad Marjanovic / Web Service
Was ist SOAP? Web Service SOAP WSDL UDDI BPEL Definition SOAP ist ein Kommunikationsprotokoll, über welches entfernte Prozeduraufrufe und Dateiübertragungen durchgeführt werden können. Es werden Nachrichten basierend auf XML ausgetauscht. Besitzt keinerlei Spezifikationen zur eigentlichen Datenübertragung Nutzt bereits bestehende Protokolle für die Übertragung (z.b. HTTP-Protokoll) 21 von 42 Nenad Marjanovic / Web Service
Nachrichten Web Service SOAP WSDL UDDI BPEL In SOAP gibt es drei Nachrichtentypen: Anfrage (Request) Wird vom Nutzer zum Dienst geschickt Antwort (Response) Wird vom Dienst zum Nutzer nach erfolgreicher Bearbeitung der Anfrage geschickt Fehler (Fault) Wird vom Dienst zum Nutzer im Fehlerfall geschickt 22 von 42 Nenad Marjanovic / Web Service
Aufbau einer Nachricht Web Service SOAP WSDL UDDI BPEL Eine Nachricht in SOAP besteht aus: Einem Umschlag (envelope) Umschlag um die Nachricht mit Verweis auf den verwendeten Namensraum Einem optionalen Kopf (head) Enthält zusätzliche Elemente für z.b. Routing-Optionen oder Authentifizierung Einem Rumpf (body) Enthält die eigentliche XML-Nachricht/-Dokument. 23 von 42 Nenad Marjanovic / Web Service
Nachrichtenaustausch Web Service SOAP WSDL UDDI BPEL Beim Nachrichtenaustausch unterscheidet man zwischen zwei Methoden: Entfernter Prozeduraufruf (Remote Procedure Calls, RPC) Spezialfall von zweiter Methode Enthält im Rumpf den Namen der Prozedur Antwort liefert Rückgabewert der Prozedur Beliebiger XML-Dokumentenaustausch Rumpf enthält beliebiges XML-Dokument Dienst fungiert als Transformator und liefert ebenfalls Dokument zurück. 24 von 42 Nenad Marjanovic / Web Service
Beispiel: Request-Nachricht. Web Service SOAP WSDL UDDI BPEL <?xml version="1.0" encoding="utf-8"?> <SOAP:Envelope...> <SOAP:Body> <ns1:babelfish xmlns:ns1="urn:xmethodsbabelfish"> <translationmode xsi:type="xsd:string"> en_de </translationmode> <sourcedata xsi:type="xsd:string"> Car </sourcedata> </ns1:babelfish> </SOAP:Body> </SOAP:Envelope> 25 von 42 Nenad Marjanovic / Web Service
Beispiel: Response-Nachricht. Web Service SOAP WSDL UDDI BPEL <?xml version="1.0" encoding="utf-8"?> <SOAP:Envelope...> <SOAP:Body> <namesp1:babelfishresponse xmlns:namesp1="urn:xmethodsbabelfish"> <return xsi:type="xsd:string"> Auto </return> </namesp1:babelfishresponse> </SOAP:Body> </SOAP:Envelope> 26 von 42 Nenad Marjanovic / Web Service
Was ist WSDL? Web Service SOAP WSDL UDDI BPEL Definition Die Abkürzung WSDL steht für Web Service Description Language. Sie ist eine maschinenlesbare Beschreibung eines Dienstes, welche es ermöglicht, automatische Codeerzeugungs-Werkzeuge zu erstellen, so dass der Programmierer den Web Service als lokale Methoden behandeln kann. Beschreibt einen Service WSDL ist in einem XML-Format spezifiziert 27 von 42 Nenad Marjanovic / Web Service
XML-Notation einer WSDL-Datei Web Service SOAP WSDL UDDI BPEL <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions> <wsdl:types /> Datentypen <wsdl:message /> Nachrichten <wsdl:porttype /> Operationen <wsdl:binding /> Schnittstellen <wsdl:service /> Zugriff </wsdl:definitions> 28 von 42 Nenad Marjanovic / Web Service
Datentypen Web Service SOAP WSDL UDDI BPEL <wsdl:types /> beschreibt: Die in der Schnittstelle verwendeten Datentypen Wegen Plattformunabhängigkeit häufig analog zur XMLSchema-Spezifikation Beliebige Definition eigener Datentypen Beispiel eines komplexen Datentyps: <complextype name="mensch"> <element name="name" type="xsd:string" /> <element name="alter" type="xsd:int" /> </complextype> 29 von 42 Nenad Marjanovic / Web Service
Nachrichten und Operationen Web Service SOAP WSDL UDDI BPEL <wsdl:message /> beschreibt: Welcher Datentyp bei einer Nachricht übertragen wird <wsdl:porttype /> beschreibt: Die ein- und ausgehenden Nachrichten beim Aufruf einer Operation 30 von 42 Nenad Marjanovic / Web Service
Schnittstelle und Dienst Web Service SOAP WSDL UDDI BPEL <wsdl:binding /> beschreibt: Welche Operationen in einer Schnittstelle aufgerufen werden können <wsdl:service /> beschreibt: Zugriff auf die Schnittstelle (meist über URL) 31 von 42 Nenad Marjanovic / Web Service
Was ist UDDI? Web Service SOAP WSDL UDDI BPEL Definition Die Abkürzung UDDI steht für Universal Description, Discovery and Integration. Es ist ein Verzeichnisdienst bei dem sich Unternehmen, die einen Service anbieten wollen, registrieren können. Er kann von Nutzern über eine SOAP-Schnittstelle angesprochen werden und enthält alle nötigen Informationen um einen dort registrierten Dienst nutzen zu können. Ein UDDI-Dienst ist selbst ein Web Service Verwaltet Daten in XML-Notation Besteht aus drei Verzeichnis-Kategorien 32 von 42 Nenad Marjanovic / Web Service
Verzeichniskategorien Web Service SOAP WSDL UDDI BPEL White Pages Vergleichbar mit dem Telefonbuch Enthält nach Namen sortiertes Namesregister mit Detailangaben und Kontaktinformationen Yellow Pages Vergleichbar mit den Gelben Seiten Enthält nach Branchen geordnetes Verzeichnis Einträge werden mit White Pages verknüpft Green Pages Enthält Informationen zum Geschäftsmodell der Anbieter 33 von 42 Nenad Marjanovic / Web Service
Bestandteil von Einträgen Web Service SOAP WSDL UDDI BPEL businessentity Informationen über Organisation, Kontaktdaten, Branche, Dienste businessservice Allgemeine Beschreibungen zu einem Dienst bindingtemplate Technische Details sowie Verweis auf WSDL-Datei tmodel Beschreibt Spezifikation der Schnittstelle. 34 von 42 Nenad Marjanovic / Web Service
Zugriff auf UDDI Web Service SOAP WSDL UDDI BPEL PublishSOAP Anlegen und Verwalten von Diensten für Dienstanbieter InquireSOAP Suche nach Diensten durch einen Nutzer 35 von 42 Nenad Marjanovic / Web Service
Was ist BPEL? Web Service SOAP WSDL UDDI BPEL Definition Die Abkürzung BPEL steht für Business Process Execution Language. Sie ist eine Sprache, die zur Beschreibung der Steuerung und Koordination (Orchestration) mehrerer Web Services in einem Geschäftsprozess dient. Beschreibt Interaktion über mehrere Web Services 36 von 42 Nenad Marjanovic / Web Service
Was macht man mit BPEL? Web Service SOAP WSDL UDDI BPEL Zunächst wird eine Prozessbeschreibung erstellt. Diese beinhaltet: Die verwendeten Services Die verwendeten Nachrichten (und damit Daten) Die zeitliche Abfolge der Interaktionen Beschreibung wird von einer BPEL Execution Engine als BPEL Prozess ausgeführt. 37 von 42 Nenad Marjanovic / Web Service
Übersicht Zusammenfassung Ereignisbasierte Architektur Vergleich mit Zugriff auf ein entferntes Objekt 1 2 3 4 5 Zusammenfassung Ereignisbasierte Architektur Vergleich mit Zugriff auf ein entferntes Objekt 38 von 42 Nenad Marjanovic / Web Service
Zusammenfassung Zusammenfassung Ereignisbasierte Architektur Vergleich mit Zugriff auf ein entferntes Objekt Leichte Wiederverwendung Geringerer Verwaltungsaufwand Leichtere Zusammenführung heterogener Systeme Unerreichbarkeit von Diensten verhindert die Ausführung Nicht für alles geeignet 39 von 42 Nenad Marjanovic / Web Service
Ereignisbasierte Architektur Zusammenfassung Ereignisbasierte Architektur Vergleich mit Zugriff auf ein entferntes Objekt Verfolgt ebenfalls das Prinzip der serviceorientierten Architektur Gleicher Aufbau wie SOA. Unterschied: Nutzer registriert sich beim Dienst, das er kontaktiert werden möchte, wenn bestimmte Ereignisse eintreten. 40 von 42 Nenad Marjanovic / Web Service
/ Sichtweisen Zusammenfassung Ereignisbasierte Architektur Vergleich mit Zugriff auf ein entferntes Objekt Sind Web Services nur ein Zugriff auf ein entferntes Objekt? Gemeinsamkeit: Beides sind Ausprägung verteilter Systeme Aus der Architektursicht: Web Service in einfachster Art nur Austausch von XML-Dokumenten In der Regel ständig verfügbar Muss nicht instanziert werden Referenezen, Lebenszyklen, Garbage Collection gibt es bei Web Services nicht 41 von 42 Nenad Marjanovic / Web Service
/ Sichtweisen Zusammenfassung Ereignisbasierte Architektur Vergleich mit Zugriff auf ein entferntes Objekt Aus der Entwicklersicht: In beiden Fällen häufig Stellvertreterobjekt, das mit Web Service bzw. entfernten Objekt interagiert In beiden Fällen entfernter Prozeduraufruf eigentlicher Hintergrund Schlussfolgerung: Web Services lassen sich um Eigenschaften, die man von entfernten Objekten kennt, erweitern Web Services sind noch nicht mit entfernten Objekten zu vergleichen 42 von 42 Nenad Marjanovic / Web Service