1 Web Services (SOAP, REST, WSDL)
© Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies, making it possible to build bridges between IT systems that otherwise would require extensive development efforts. Forrester Research: Software designed to be used by other software via Internet protocols and formats W3C: A Web service is a software application identified by a URI, whose interface and bindings are capable of being defined, described and discovered as XML artifacts. A Web service supports direct interactions with other software agents using XML-based Messages exchanged via internet-based protocols. (October 2002) OASIS: Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. (2006)
© Prof. T. Kudraß, HTWK Leipzig 3 Dienste als kleinste Bestandteile in einer Serviceorientierten Architektur (SOA) Dienst beschreibt eine eigenständige Funktionalität – Funktionalität durch Dienst vollständig implementiert – eigenständig aus Sicht des Dienstnutzers Eine öffentliche Schnittstelle ist verfügbar – alle Angaben in beschreibender Form – hersteller-, plattform- und technologieneutrale Beschreibung Jeder Dienst ist eigenständiges Artefakt – Dienst austauschbar durch andere Implementierung Kenntniss der Interna des Dienstes nicht notwendig
© Prof. T. Kudraß, HTWK Leipzig 4 WS-* Universum WS-BPEL WS- Transaction WS-Security WS-Policy UDDI ? ?
© Prof. T. Kudraß, HTWK Leipzig 5 Basiskomponenten Kommunikation Dienstbeschreibung Verzeichnisdienst SOAP beschreibt das XML-basierte Nachrichtenformat der Kommunikation und dessen Einbettung in ein Transportprotokoll WSDL ist eine XML-basierte Beschreibungssprache, um Web Services (Dienste) zu beschreiben UDDI beschreibt einen Verzeichnisdienst für Web Services. UDDI spezifiziert eine standardisierte Verzeichnissstruktur für die Verwaltung von Web Services-Metadaten: allgemeine Anforderungen, Web- Service-Eigenschaften, benötigte Informationen zum Auffinden von Web Service
© Prof. T. Kudraß, HTWK Leipzig 6 Merkmale einer SOA Lose Kopplung Dynamisches Binden Verzeichnisdienst Verwendung von Standards Einfachheit Sicherheit Komplexe Aspekte – Automatisierung der Kommunikation – Geschäftsprozessmodellierung – Ereignisse – Semantik
© Prof. T. Kudraß, HTWK Leipzig 7 Vorläufer und artverwandte Technologien Sun RPC (1985) Microsoft COM (1993) – für prozessinterne Aufgabenstellung, nicht für Netzwerkkommunikation geeignet CORBA (1992) Microsoft DCOM (1996) – CORBA-Pendant für die Windows-Welt – Weiterentwicklung: COM+ ab Windows2000 Java RMI (1996)
© Prof. T. Kudraß, HTWK Leipzig 8 Web Services Stack Network Service Description XML-based Messaging Service Publication Service Discovery Service Flow SecurityManagementQuality of services HTTP, HTTPS, SMTP … SOAP WSDL UDDI UDDI, WS-Inspection WS-BPEL ComponentsRequirements
© Prof. T. Kudraß, HTWK Leipzig 9 Was ist SOAP? ursprünglicher Name: Simple Object Access Protokoll XML-Markup-Language weist Ähnlichkeiten zu Protokoll auf SOAP-Spezifikation beschreibt nur Aufbau einer Nachricht, nicht den Versand! Eigenschaften: – Regeln, wie Daten in Nachrichten einzubinden und zu interpretieren sind, Konventionen für XML-basierten RPC – keine Vorschriften zur Semantik – kann beliebige Transportprotokolle nutzen, z.B. HTTP, SMTP, FTP, auch TCP/IP – ermöglicht transparenten Zugang zu Applikationen über Standardport des Webservers – somit Bindeglied zwischen Applikationen
© Prof. T. Kudraß, HTWK Leipzig 10 Grundansatz: Serialisierung class PurchaseOrder { String item = socks; int amount = 1; } socks 1 Serializer Eigene Serialisierungs-Spezifikationen möglich Standard-Serialisierung: –Objekte bzw. Objektstrukturen üblicher Typsysteme (Java, C#, C++) werden auf XML abgebildet –Arrays und Referenzen sind auch möglich
© Prof. T. Kudraß, HTWK Leipzig 11 Metapher des »E-Umschlags« SOAP document style – packt XML in Envelope
© Prof. T. Kudraß, HTWK Leipzig 12 Hub Sender/ Empfänger Hub Sender/ Empfänger Vermittlung Knoten
© Prof. T. Kudraß, HTWK Leipzig 13 REST? Der Rest von was? Alternative zu SOAP REST = REpresentational State Transfer kein eigenes Protokoll, keine eigene Nachricht beschreibt Architekturstil für Webstandards: Webanwendung besteht aus Sammlung von Ressourcen, die über HTTP-Operationen angesprochen werden entwickelt von Roy Fielding in seiner Dissertation 2000 Architektonische Elemente von REST – Ressourcen und Repräsentationen – Einheitliche Schnittstellen – Hypermedia (Verknüpfung)
© Prof. T. Kudraß, HTWK Leipzig 14 REST: Abgrenzung und Vergleich zu SOAP Ressource: – Quelle an einer beliebigen Stelle im Web, eindeutig identifizierbar über URIs oder auch URLs – in REST: Komponenten einer Applikation – Beispiele: Darlehensanträge, Werbung, Bilder URIs / URLs in Browser als Link oder Lesezeichen hinterlegt Unterstützung bei unterschiedlichen Repräsentationen derselben Ressource (Content Negotiation) Direkter Zugriff auf Ressourcen durch Applikation (kein umständliches Entpacken, Bearbeiten usw. wie in SOAP)
© Prof. T. Kudraß, HTWK Leipzig 15 REST: Abgrenzung und Vergleich zu SOAP(2) einheitliche Schnittstellen – Dienstnutzer weiß, wie Daten zu bekommen sind – immer gleiche Operationen – angelehnt an HTTP – Ressource durch Browser nutzbar (anders als bei SOAP) REST-konforme Schnittstelle durch Nutzung von HTTP generisch Operationen – GET: Abfrage der Repräsentation einer Ressource – POST: Anlegen einer Ressource oder Starten von Prozessen auf Server – PUT: Ressource auf Server anlegen oder verändern – DELETE: Löschen von Ressourcen – HEAD: Abfrage von Metadaten über Ressource durch Client – OPTIONS: Abfrage vorhandener Methoden an einer Resource Web Services erhalten bei neuen Anforderungen immer neue Schnittstellen mit passenden Datentypen und Operationen
© Prof. T. Kudraß, HTWK Leipzig 16 REST: Abgrenzung und Vergleich zu SOAP(3) Hypermedia (Verknüpfung) – Verknüpfen und Nutzen von Ressourcen untereinander – Eigentliche Verlinkung enthält Inhalt, der Nachricht selbst repräsentiert – von Ressourcenname zu Prozess … Standards – HTTP: GET, POST, DELETE, PUT – Datenformate: XML, XHTML, PNG, GIF, JPEG, HTML – MIME-Typen für HTTP undd URIs Nachrichten – Übertragung in allen gängigen Formaten – Keine speziellen Formate erforderlich – REST-Nachricht selbsterklärend – ohne Wissen über zuvor versendete oder später zu versendende Nachrichten – Status der Nachricht über den Inhalt (also die Repräsentation) des Hypertext-Dokuments abgebildet – Ressource durch Browser nutzbar (anders als bei SOAP)
© Prof. T. Kudraß, HTWK Leipzig 17 WSDL WSDL = Web Services Definition Language Beschreibt WebServices in XML Notation Funktion wie IDL in Corba (aber nicht nur abstrakte Beschreibung) ist plattform-, protokoll- und programmiersprachenunabhängig Spezifikation unter spezifiziert ein Interface zu einem Dienst – nur syntaktische Elemente nicht vorhanden (dafür gibts andere Standards): – QoS-Informationen (z.B. Kosten, Antwortzeit) – Sicherheitsbestimmungen – semantische Beschreibung (Effekte einer Operation) besitzt die Dateiendung.wsdl Historie: – Veröffentlichung von WSDL 1.1 durch im März 2001 – WSDL 2.0 veröffentlicht im Juni 2007
© Prof. T. Kudraß, HTWK Leipzig 18 WSDL WSDL beantwortet die 4 elementaren Fragen: – Welche Datentypen gibt es? Element – Welche Funktionalität besitzt der Dienst? und Element – Wie wird kommuniziert? Element – Wo befindet sich der Dienst? Element
© Prof. T. Kudraß, HTWK Leipzig 19 Elemente in WSDL Message: Abstrakte Definition der auszutauschenden Daten (typischerweise auf XML-Basis) Operation: Abstrakte Aktionen, die ein Service unterstützt (d.h. Menge von Input und Output Messages) Port Type: Menge von Operationen, ab WSDL 1.2 Interface Binding: Beschreibt Abbildung eines Interfaces auf konkretes Datenübertragungsprotokoll (z.B. SOAP) Endpunkt (Port): Einzelner individueller "Endpunkt" mit konkretem Binding, identifiziert durch eine Netzwerkadresse Service: Sammlung zusammengehöriger Endpunkte
© Prof. T. Kudraß, HTWK Leipzig 20 Interface Definition Interface Implementierung WSDL Dokument Struktur eines WSDL Files Types Messages / Interfaces Bindings Service Definition
© Prof. T. Kudraß, HTWK Leipzig 21 WSDL Welche Datentypen gibt es?
© Prof. T. Kudraß, HTWK Leipzig 22 WSDL Welche Funktionalität besitzt der Dienst?
© Prof. T. Kudraß, HTWK Leipzig 23 WSDL Wie wird kommuniziert? <soap:body encodingStyle=" namespace=" use="encoded"/> <soap:body encodingStyle=" namespace=" use="encoded"/>
© Prof. T. Kudraß, HTWK Leipzig 24 WSDL Wo befindet sich der Dienst? binding="intf:PersonServiceSoapBinding"> address="