Technische Universität Darmstadt Telecooperation Telekooperation 1 Chapter 2, Part II a (Mainstream Paradigms) Web Services Gerhard Austaller, Erwin Aitenbichler, Max Mühlhäuser Copyrighted material; for TUD student use only Prof. Dr. M. Mühlhäuser Telekooperation © Web-Anwendung • Online-Shops • Auskunft (Bahn, RMV) • Routenplaner WebServices 2 Prof. Dr. M. Mühlhäuser Telekooperation © Web Services • Kommunikation zwischen Diensten – Web-Anwendungen • Mensch -> Computer – Web-Services • Computer -> Computer • Gute Unterstützung heterogener Systeme – Unterschiedliche © Google • Plattformen • Objektmodelle • Programmiersprachen WebServices 3 Prof. Dr. M. Mühlhäuser Telekooperation © Vor- und Nachteile • Vorteile gegenüber CORBA, DCOM, RMI, … denn diese – – – – – verlangen einheitliches Objektmodell Systeme haben oft eine primäre Sprache/Plattform (keine breite Akzeptanz in der Industrie) nicht für Internet-scale entworfen Probleme mit Firewalls • Nachteile – Zustandslos (im Gegensatz zu o.g. OO-Konkurrenten) • „Nur ein RPC-Modell“ – Ineffizient • Große Datenpakete (SOAP) • Hinzufügen einer Methode kann Servlet um 25 KB aufblasen • XML-Verarbeitung verschlingt Rechenzeit WebServices 4 Prof. Dr. M. Mühlhäuser Telekooperation © Funktionsweise • Orientierung an SOA – Service Oriented Architecture • Serviceanbieter – Bietet Dienst(e) an – Veröffentlichung der Dienste in einem Verzeichnis mit Beschreibung • Servicekonsument – Durchsucht Verzeichnis an Hand von Anforderungen – Wählt Dienst aus – Austausch von Nachrichten • Servicebroker – Speichert Dienstbeschreibung – Verzeichnisdienst, Registry WebServices 5 Prof. Dr. M. Mühlhäuser Telekooperation © Funktionsweise • Orientierung an SOA – Service Oriented Architecture • Serviceanbieter – Bietet Dienst(e) an – Veröffentlichung der Dienste in einem Verzeichnis mit Beschreibung • Servicekonsument – Durchsucht Verzeichnis an Hand von Anforderungen – Wählt Dienst aus – Austausch von Nachrichten • Servicebroker – Speichert Dienstbeschreibung – Verzeichnisdienst, Registry Keine exklusiven Rollen! Komplexere Dienste benutzen evtl. selbst weitere Dienste und sind somit auch Konsumenten. WebServices 6 Prof. Dr. M. Mühlhäuser Telekooperation © Grundgerüst… • SOAP – Simple Object Access Protocol • Seit Version 1.2 nicht mehr offizielle Abkürzung, da – Nicht wirklich einfach (simple) – Nicht nur Zugriff auf Objekte – Austausch von Nachrichten • Daten zwischen Systemen • Remote Procedure Calls • WSDL – Web Service Description Language – Metasprache zur Beschreibung von Web Services • UDDI – Universal Description, Discovery and Integration – Verzeichnisdienst – Basiert auf SOAP WebServices 7 Prof. Dr. M. Mühlhäuser Telekooperation © …mit vielen Erweiterungen… • WS-Addressing – Hinter einer Adresse kann sich ein Pool mehrer Dienstinstanzen befinden – Klient muss immer mit der selben Instanz interagieren – WS-Addressing ermöglich Adressierung von Instanzen • WS-MetadataExchange – Austausch von Informationen über den Dienst • WS-Security – Signieren von Nachrichten – Verschlüsseln von Nachrichten WebServices 8 Prof. Dr. M. Mühlhäuser Telekooperation © …noch mehr Erweiterungen • • • • • • • WS-RealiableMessaging WS-Policy Framework WS-Notification WS-Eventing WS-Coordination WS-CDL … WebServices 9 Prof. Dr. M. Mühlhäuser Telekooperation © SOAP • Kommunikation zwischen den Knoten über Nachrichten • Nachricht (Message) enthält – Envelope • Eine Nachricht umschließendes Entity • Definiert Namespaces – Header • Enthält Metadaten zu Body • viele WS-* Erweiterungen platzieren hier die zusätzlichen Informationen – Body • Enthält Nutzdaten • Aufbau des Inhalts durch weitere Spezifikationen WebServices 10 Prof. Dr. M. Mühlhäuser Telekooperation © Beispiel: SOAP-Request <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ConvertTemp xmlns="http://www.webserviceX.NET/"> <Temperature xsi:type="xsd:double">12.23</Temperature> <FromUnit xsi:type="TemperatureUnit">degreeCelsius</FromUnit> <ToUnit xsi:type="TemperatureUnit">degreeFahrenheit</ToUnit> </ConvertTemp> </soap:Body> </soap:Envelope> „RPC“ WebServices 11 Prof. Dr. M. Mühlhäuser Telekooperation © WSDL 1.1 • XML Dokument mit folgenden Elementen – Types: Definition neuer Typen – Message: Definition aus- oder eingehender Nachrichten – Operation: Definition vom Dienst unterstützten Aktionen; Spezifikation der im Rahmen der Operation gesendeten bzw. erwarteten Nachrichten; verschieden Interaktionmuster möglich (request/response, one-way, …) – Port Type: gruppiert logisch zusammengehörige Operationen; WSDL 2.0: Interface – Binding: Definiert Protokolldetails, wie die Übertragungsart, z.B. SOAP über HTTP – Port: Definieren individuelle Endpunkte, an denen der Dienst benutzt werden kann; WSDL 2.0: Endpoint – Service: Container für Ports Beispiele von http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=61 WebServices 12 Prof. Dr. M. Mühlhäuser Telekooperation © WSDL • XML Dokument mit folgenden Elementen – Types: Definition neuer Typen aus Basistypen von XML Schema ( xmlns:xsd="http://www.w3.org/2001/XMLSchema", xmlns:tns="http://www.webserviceX.NET/") <xsd:simpleType name="TemperatureUnit"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="degreeCelsius" /> <xsd:enumeration value="degreeFahrenheit" /> <xsd:enumeration value="degreeRankine" /> <xsd:enumeration value="degreeReaumur" /> <xsd:enumeration value="kelvin" /> </xsd:restriction> </xsd:simpleType> Beschreibt den Typ „TemperatureUnit“ Beschreibt den Request <xsd:element name="ConvertTemp"> <xsd:complexType> <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="1" name="Temperature" type="xsd:double" /> <xsd:element minOccurs="1" maxOccurs="1" name="FromUnit" type="tns:TemperatureUnit" /> <xsd:element minOccurs="1" maxOccurs="1" name="ToUnit" type="tns:TemperatureUnit" /> </xsd:sequence> </xsd:complexType> </xsd:element> WebServices 13 Prof. Dr. M. Mühlhäuser Telekooperation © WSDL • XML Dokument mit folgenden Elementen – Message: Definition aus- oder eingehenden Nachrichten <wsdl:message name="ConvertTempSoapIn"> <wsdl:part name="parameters" element="tns:ConvertTemp" /> </wsdl:message> <wsdl:message name="ConvertTempSoapOut"> <wsdl:part name="parameters“ element="tns:ConvertTempResponse" /> </wsdl:message> WebServices 14 Prof. Dr. M. Mühlhäuser Telekooperation © WSDL • XML Dokument mit folgenden Elementen – Operation: Definition vom Dienst unterstützten Aktionen; Spezifikation der im Rahmen der Operation gesendeten bzw. erwarteten Nachrichten; verschieden Interaktionmuster möglich (request/response, one-way, …) <wsdl:operation name="ConvertTemp"> <wsdl:input message="tns:ConvertTempSoapIn" /> <wsdl:output message="tns:ConvertTempSoapOut" /> </wsdl:operation> WebServices 15 Prof. Dr. M. Mühlhäuser Telekooperation WSDL © • XML Dokument mit folgenden Elementen – Port Type: gruppiert zusammengehörige Operationen; WSDL 2.0: Interface <wsdl:portType name="ConvertTemperatureSoap"> <wsdl:operation name="ConvertTemp"> <wsdl:input message="tns:ConvertTempSoapIn" /> <wsdl:output message="tns:ConvertTempSoapOut" /> </wsdl:operation> <wsdl:operation name="getTemp"> …. </wsdl:operation> „Funktion“ </wsdl:portType> „Interface“ WebServices 16 Prof. Dr. M. Mühlhäuser Telekooperation © WSDL • XML Dokument mit folgenden Elementen – Binding: Definiert Protokolldetails, wie die Übertragungsart (SOAP über HTTP) <wsdl:binding name="ConvertTemperatureSoap" type="tns:ConvertTemperatureSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <wsdl:operation name="ConvertTemp"> <soap:operation soapAction="http://www.webserviceX.NET/ConvertTemp" style="document" /> …. </wsdl:operation> </wsdl:binding> – – Port: Definieren individuelle Endpunkte, an denen der Dienst benutzt werden kann; WSDL 2.0: Endpoint Service: Container für Ports <wsdl:service name="ConvertTemperature"> <wsdl:port name="ConvertTemperatureSoap" binding="tns:ConvertTemperatureSoap"> <soap:address location="http://www.webservicex.net/ConvertTemperature.asmx" /> </wsdl:port> … </wsdl:service WebServices 17 Prof. Dr. M. Mühlhäuser Telekooperation © UDDI • Ermöglicht Dienstsuche – White pages • Information über den Businesspartner, Name, Kontaktinformationen, textuelle Beschreibung – Yellow pages • Information über Art des Business durch genormte Kategorien wie North American Industrial Classification System (NAICS); Universal Standard Products and Services Classification (UNSPSC); Geographic Classification System (GCS) – Green pages • Information über Zugriff auf den Dienst, Web Services sind eine Möglichkeit • Definiert auch Reihe von APIs für Zugriff. WebServices 18 Prof. Dr. M. Mühlhäuser Telekooperation © JWSDP 2.0 • Java Web Services Developer Pack • Ursprünglich von SUN • Jetzt von der Java Community weiter gepflegt – https://jwsdp.dev.java.net/ • Beinhaltet mehrere APIs – – – – – – – – – – Java API for XML Web Services (JAX-WS) Java Architecture for XML Binding (JAXB) Java API for XML Messaging (JAXM) Java API for XML Processing (JAXP) SUN Java Streaming XML Parser (SJSXP) Java API for XML Registries (JAXR) Java API for XML-based RPC (JAX-RPC) SOAP with Attachments API for Java (SAAJ) Java API for XML Web Services Addressing (JAX-WSA) … WebServices 19 Prof. Dr. M. Mühlhäuser Telekooperation © Service Management Lifecycle • Bis jetzt wurden nur einzelne Services betrachtet • Service Management Lifecycle – Discovery • Finden von Diensten • Z.B. per UDDI oder WSIL – Selection • Auswahl von passenden Diensten • Z.B. passt Dienst zu Task im Workflow – Assembly • Verbinden der Dienste • Komposition ist wieder ein Dienst – Execution • Ausführen der Komposition WebServices 20 Dr. Erwin Aitenbichler Prof. Dr. M. Mühlhäuser Prof. Dr. M. Mühlhäuser Telekooperation Telekooperation © © Service-oriented Architecture (SOA) • Was bringt SOA? – (yet another...) Komponentenmodell; aber: nicht-technische Sicht steht im Vordergrund – Im Vergleich zu DOOP: Verteilung auf der „richtigen“ Granularität • Anwendungsfeld: SOA in Business – – – – Dienste haben eine konkrete Bedeutung auf Geschäftsebene Eins-zu-eins Beziehung zw. Geschäfts- u. Software-Artefakten Langlebigkeit von Artefakten in beiden Bereichen Bringt Geschäfts- und Software-Bereich zusammen, gem. Sprache • Anwendungsfeld: SOA in Ubicomp – Integration findet immer auf Software-Ebene statt – Optimale Granularität für Modularisierung? - offene Frage – Jedes Smart Product oder jede Smart Application besteht aus mind. einem Software-Service – Services befinden sich in dynamischen Umgebungen und müssen ständig auf eine andere Weise kooperieren WebServices 21 SOA in Business Dr. Erwin Aitenbichler Prof. Dr. M. Mühlhäuser Prof. Dr. M. Mühlhäuser Telekooperation Telekooperation © © • XML, SOAP, WSDL – Web Services • UDDI (Universal Description, Discovery & Integration) – Zentrale Service Directories (white, yellow, green pages) • WSIL (Web Services Inspection Language) – Dezentrales Discovery durch Verlinkung aus HTML-Seiten • BPEL (Business Process Execution Language) – Prozessbeschreibung, kann WSes aufrufen und selbst wieder WS sein – Vom Prinzip hier eine imperative Programmiersprache – Rückwärtsschritte im Prozess schwierig, keine Event-Integration • WSCI (Web Service Choreography Interface) – Ergänzt WSDL um Verhaltensbeschreibung – Aufbau ähnlich zu BPEL • BPML (Business Process Modeling Language) – Formales Modell, um Geschäftsprozesse zu beschreiben; bottom-up m. • WS-CDL (WS Choreography Description Language) – Beschreibt Transaktionen; top-down modellierung WebServices 22 SOA in Business Dr. Erwin Aitenbichler Prof. Dr. M. Mühlhäuser Prof. Dr. M. Mühlhäuser Telekooperation Telekooperation © © • WS-CDL Stack – – – – – – – – WS-CDL BPEL Transaktionen, Sicherheit, Reliable Messaging UDDI WSDL SOAP XML HTTP • Aktuelle Tools – SAP NetWeaver • unterstützt Programmierer bei Service-Suche • Service-URL ist dann hardcoded – Ontobroker: Semantic Web Services, uvm. WebServices 23 SOA in Ubicomp Applications Dr. Erwin Aitenbichler Prof. Dr. M. Mühlhäuser Prof. Dr. M. Mühlhäuser Telekooperation Telekooperation © © • Anwendungen – Ausprogrammieren des Anwendungsverhaltens in einem Koordinations-Service – (Graphische) RAD-Tools ? • Dazwischen… ? – Manuelle Programmierung und Spezifikation • so wenig wie möglich gewünscht – Automatische Service-Komposition Services Middleware • so viel wie möglich gewünscht • Middleware, Services – Einige Middleware-Lösungen vorhanden (MundoCore, BASE/PCOM, UIC) 24 Prof. Dr. M. Mühlhäuser Telekooperation © Weiterführende Informationen • XML Grundlagen: – http://elara.tk.informatik.tu-darmstadt.de/LectureNotes/ ws0708/TK1/XML-Workshop.pdf • Verwenden von JWSDP: – http://elara.tk.informatik.tu-darmstadt.de/LectureNotes/ ws0708/TK1/JavaWebServiceDevPack.pdf WebServices 25 Prof. Dr. M. Mühlhäuser Telekooperation © Zusammenfassung • Web Services – SOAP: Nachrichtenformat – WSDL: Schnittstellenbeschreibung, etc. • Finden von Diensten – UDDI: zentrale Registrierung – WSIL: dezentral; verweisen auf Dienste aus HTML • Service-Komposition – Service Management Lifecycle – Service-orientierte Architekturen WebServices 26