Service - TU Darmstadt

Werbung
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
Herunterladen