Ü Ü bung 7 bung 7
Dr. Malgorzata Mochol Freie Universität Berlin Institut für Informatik
Netzbasierte Informationssysteme mochol@inf.fu-berlin.de
Ü Ü bung 7 bung 7
Musterlösungen zu Übungsblätter 5 & 6
Web Service Komposition
Musterfragen
Klausur: organisatorische Hinweise
Musterl
Musterl ösung des ö sung des Ü Ü bungsblattes 5 bungsblattes 5
Amazon E
Amazon E - - Commerce Service (ECS) Commerce Service (ECS)
Zwei Schnittstellen:
1. HTTP-GET (RESTful) 2. SOAP über HTTP-POST
Welche SOAP-Version benutzt ECS?
WSDL-Beschreibung von ECS:
<definitions xmlns=" http://schemas.xmlsoap.org/wsdl/" http://schemas.xmlsoap.org/wsdl
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap http://schemas.xmlsoap.org/wsdl/soap/">
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
5
1) HTTP
1) HTTP - - GET GET - - Schnittstelle Schnittstelle
a) ECS-Aufruf: Bücher in amazon.de mit Titel „Harry Potter“
b) ECS-Aufruf: Kunden-Reviews in amazon.de zu Buch mit ASIN 3551566666
Aufruf mit HTTP-GET
ÖAufruf mit allen Parameter als URL kodieren
Resultat: XML
1a) B
1a) B ü ü cher mit Titel cher mit Titel „ „ Harry Potter Harry Potter “ “ Aufruf
Aufruf ü ü ber HTTP ber HTTP - - GET GET
http://webservices.amazon. de/onca/xml de
? Service=AWSECommerceService Service AWSECommerceService
& AWSAccessKeyId=[Access Key ID] AWSAccessKeyId
& Operation= Operation ItemSearch ItemSearch
& SearchIndex= SearchIndex Books Books
& Title=Harry+Potter Title Harry+Potter
Schlüssel Wert
Quelle: „Amazon E-Commerce Service Developer Guide“
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
7
URL einfach in den Browser eingeben!
URL einfach in den Browser eingeben!
Die Antwort: erster Treffer
Die Antwort: erster Treffer
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
9
und noch eine Fehlermeldung und noch eine Fehlermeldung
Falscher KeyID
konkreter Fehler
1b) 1b) Kunden Kunden - - Reviews Reviews zu 3551566666 zu 3551566666 Aufruf
Aufruf ü ü ber HTTP ber HTTP - - GET GET
http://webservices.amazon. de/onca/xml de
? Service=AWSECommerceService Service AWSECommerceService
& AWSAccessKeyId=... AWSAccessKeyId
& Operation= Operation ItemLookup ItemLookup
& ItemId= ItemId 3551566666 3551566666
& ResponseGroup= ResponseGroup Reviews Reviews
Wert
Schlüssel
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
11
REST REST - - Grundsatz Grundsatz
REST- REST - Architektur des WWW (Fielding 2000): Architektur jede Web-Ressource soll eindeutig über eine URI identifiziert werden
Beispiel: online gebuchte Reise = Web-Ressource
gebuchte Reise sollte daher auch über eine URI eindeutig
identifiziert werden
REST oder nicht, das ist die Frage!
REST oder nicht, das ist die Frage!
http://webservices.amazon. de/onca/xml de
? Service= Service AWSECommerceService AWSECommerceService
& AWSAccessKeyId=... AWSAccessKeyId
& Operation= Operation ItemLookup ItemLookup
& ItemId= ItemId 3551566666 3551566666
& ResponseGroup= ResponseGroup Reviews Reviews
&ReviewPage=10
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
13
2) SOAP
2) SOAP - - Anfrage Anfrage
a) ECS-Aufruf: Bücher in amazon.de mit Titel „Harry Potter“
b) ECS-Aufruf: Kunden-Reviews in amazon.de zu Buch mit ASIN 3551566666
Aufruf mit HTTP-POST
Resultat: SOAP-Nachricht
SOAP SOAP - - Anfrage Anfrage erzeugen erzeugen
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
15
Generierte
Generierte SOAP SOAP - - Anfrage Anfrage
2a) B
2a) B ü ü cher mit Titel cher mit Titel „ „ Harry Potter Harry Potter “ “
S S OAP- OAP - Anfrage editieren Anfrage editieren & request & request senden senden
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
17
SOAP SOAP -Envelope - Envelope (in (in Grid Grid -View - View) )
Fehlermeldung Fehlermeldung
ungültige Anfrage (Request)
konkreter Fehler
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
19
Die Die SOAP SOAP - - Antwort Antwort : erster Treffer : erster Treffer
Endpunkt (URL)
Endpunkt (URL) ä ä ndern ndern
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
21
Endpunkt (URL)
Endpunkt (URL) ä ä ndern ndern
Änderung von .de zu .com
Die SOAP Die SOAP- -Antwort Antwort (erster Treffer) (erster Treffer)
Nach Endpoint-Änderung (http://soap.amazon.com)
Vor Endpoint-Änderung
(http://soap.amazon.de)
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
23
2b) 2b) Kunden Kunden - - Reviews Reviews zu 3551566666 zu 3551566666 SOAP SOAP -Anfrage - Anfrage
Operation
Kunden-Review
SOAP SOAP -Antwort - Antwort
Musterl
Musterl ösung des ö sung des Ü Ü bungsblattes 6 bungsblattes 6
Leere WSDL
Leere WSDL
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
28
Die Die WSDL WSDL - - Beschreibung Beschreibung von ECS von ECS
Aufgaben:
1. zusätzlicher Port :
http://soap.amazon.de/onca/soap?Servic e=AWSECommerceService
2. zusätzliche HTTP-GET-Bindung mit 2 Ports:
liefert XML (und nicht SOAP) zurück
1) Zus
1) Zus ä ä tzlicher Port tzlicher Port
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
30
2) Zus
2) Zus ä ä tzliche tzliche HTTP HTTP - - GET GET - - Bindung Bindung (I) (I)
2) Zus
2) Zus ä ä tzliche tzliche HTTP HTTP - - GET GET - - Bindung Bindung (II) (II)
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
32
Die zus
Die zus ä ä tzliche Bindung tzliche Bindung
a) Was bedeutet das type-Attribut hier?
b) Wozu der Bindung einen Namen geben?
c) Reicht < < http:binding http:binding verb="GET verb="GET "/> aus? "/>
d) Was muss in der Bindung noch festgelegt werden?
Die zus
Die zus ä ä tzliche Bindung tzliche Bindung
< binding name="AWSECommerceServiceRestBinding"
type="tns:AWSECommerceServicePortType">
<http:binding verb="GET"/>
…
<operation name="ItemSearch">
< < http:operation http:operation location="xml location="xml "/> "/>
<input>
< < http:urlEncoded http:urlEncoded /> />
</input>
<output>
/xml wird an Endpunkt angehängt
?part1=value&…
wird zusätzlich
angehängt
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
34
Beispiel Beispiel
http://webservices.amazon.com/onca/xml
?Service=AWSECommerceService
&AWSAccessKeyId=...
&Operation=ItemSearch
&SearchIndex=Books
&Title=Harry+Potter
<http:operation location="xml"/>
Endpunkt
<http:urlEncoded/>
M M ö ö gliche Alternative (fiktiv) gliche Alternative (fiktiv)
http://webservices.amazon.com/onca/xml/AWSECS/ItemSearch ItemSearch
?Service=AWSECommerceService
&AWSAccessKeyId=...
&Operation=ItemSearch
<http:operation location="ItemSearch ItemSearch"/>
Endpunkt
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
36
Die Antwort Die Antwort
< binding name="AWSECommerceServiceRestBinding"
type="tns:AWSECommerceServicePortType">
<http:binding verb="GET"/>
…
<operation name="ItemSearch">
<http:operation location="xml"/>
<input>
<http:urlEncoded/>
</input>
<output>
<mime:mimeXml < mime:mimeXml/> />
</output>
</operation>
…
</binding>
Antwort ist XML, nicht
SOAP
Grundstruktur Grundstruktur
Ports Ports Bindings
Bindings PortTypes
PortTypes Operations
Operations
SOAP/HTTP POST
SOAP/SMTP GoogleSearchPort
doGoogleSearch
doGetCachedPage
http://…
http://…
mailto:
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
38
Und die zugeh
Und die zugeh ö ö rigen Ports rigen Ports
die „alten“ Ports
die neu eingefügten Ports
Und die zugeh
Und die zugeh ö ö rigen Ports (graphisch) rigen Ports (graphisch)
Ports Ports Bindings
Bindings
SOAP/HTTP POST
http://…
http://…
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
40
< < http:urlEncoded http:urlEncoded /> /> - - klappt klappt ‘ ‘ s s ? ?
< binding name="AWSECommerceServiceRestBinding"
type="tns:AWSECommerceServicePortType">
<http:binding verb="GET"/>
…
<operation name="ItemSearch">
<http:operation location="xml"/>
<input>
< < http:urlEncoded http:urlEncoded /> />
</input>
<output>
<mime:mimeXml/>
</output>
</operation>
…
</binding>
?part1=value&…
wird zusätzlich angehängt
part1, partn :
jeweils part–Name der abstrakten
Eingangsnachricht (message) von
ItemSearch
part part = = body body ! !
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
42
Datentyp / Nachricht /Porttyp Datentyp / Nachricht /Porttyp
<types>
<xsd:schema xmlns:xsd="…" xmlns:tns="…" targetNamespace="…">
<xsd:complexType name="GoogleSearchResult">
…
</xsd:complexType>
</schema>
</types>
<message name="doGoogleSearch">…</message>
<message name="doGoogleSearchResponse">
<part name="return" type="tns:GoogleSearchResult"/>
</message>
…
<portType>
<operation name="doGoogleSearch">
<input message="tns:doGoogleSearch"/>
<output message="tns:doGoogleSearchResponse"/>
</operation>
…
</portType>
portType types message
Definition einer abstrakten Schnittstelle
Definition einer abstrakten
Nachricht Definition des
Datentyps
Nein, macht es nicht!
Nein, macht es nicht!
part–Name der Eingangsnachricht von ItemSearch ist body
Ö URL = http://webservices.amazon.com/onca/xml?body body=value
sollte aber z.B. so aussehen:
http://webservices.amazon.com/onca/xml
?Service=AWSECommerceService
&AWSAccessKeyId=...
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
44
Und gleich noch ein Problem!
Und gleich noch ein Problem!
<message name=" ItemSearchRequestMsg"> ItemSearchRequestMsg
<part name="body body" element="tns:ItemSearch tns:ItemSearch"/>
</message>
http://webservices.amazon.com/onca/xml?body=value value
value ist Element ItemSearch
Element
Element ItemSearch ItemSearch
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
46
Die Ursache des Problems!
Die Ursache des Problems!
<message name=" ItemSearchRequestMsg"> ItemSearchRequestMsg
<part name=" body" element=" body tns:ItemSearch"/> tns:ItemSearch
</message>
Ein part für alle
Parameter
Definition strukturierter Nachrichten Definition strukturierter Nachrichten
<message name="doGoogleSearchResponse">
zwei unterschiedliche Modellierungen
1. mehrere parts:
2. ein part mit komplexen Datentyp:
<message name="doGoogleSearchResponse">
<part name="param1" element="tns:param1"/>
<part name="param2" element="tns:param2"/>
</message>
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
48
Zweiter Versuch!
Zweiter Versuch!
<message name="ItemSearchRequestMsg ItemSearchRequestMsg">
<part name="body body" element=" tns:ItemSearch"/> tns:ItemSearch
</message>
<message name="ItemSearchRequestMsg ItemSearchRequestMsg">
<part name="Service Service" type="tns:AWSECS-String"/>
<part name="Operation Operation" type="tns:ItemSearch-String"/>
<part name="MarketplaceDomain MarketplaceDomain" type="xs:string"/>
<part name="AWSAccessKeyId AWSAccessKeyId" type="xs:string"/>
<part name=" SubscriptionId" type="xs:string" /> SubscriptionId
…
</message>
neu!
vorher Kind-
Elemente
http://webservices.amazon.com/onca/xml
?Service=AWSECommerceService
&AWSAccessKeyId=...
&Operation=ItemSearch
&SearchIndex=Books
&Title=Harry+Potter
Ziel
Das Ergebnis: Sieht doch gut aus!
Das Ergebnis: Sieht doch gut aus!
http://webservices.amazon.com/onca/xml/
? Service=AWSECommerceService Service=
& Operation=ItemSearch Operation=ItemSearch
& MarketplaceDomain= MarketplaceDomain= string string
& AWSAccessKeyId=string AWSAccessKeyId
& SubscriptionId=string SubscriptionId
…
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
50
Und schon wieder ein Problem!
Und schon wieder ein Problem!
<message name="ItemSearchRequestMsg ItemSearchRequestMsg">
<part name="Service Service" type="tns:AWSECS-String"/>
<part name=" Operation" type="tns:ItemSearch-String"/> Operation
<part name=" MarketplaceDomain" type="xs:string"/> MarketplaceDomain
<part name="AWSAccessKeyId AWSAccessKeyId" type="xs:string"/>
<part name="SubscriptionId SubscriptionId" type="xs:string" />
…
</message>
http://webservices.amazon.com/onca/xml/
? Service=AWSECommerceService Service=
&Operation=ItemSearch Operation=ItemSearch
& MarketplaceDomain= MarketplaceDomain= string string
&AWSAccessKeyId AWSAccessKeyId=string
&SubscriptionId SubscriptionId=string
…
dieser Parameter z.B. sollte
optional sein!
Wie ein
Wie ein part part optional machen? optional machen?
<message name="ItemSearchRequestMsg ItemSearchRequestMsg">
<part name="Service Service" type="tns:AWSECS-String"/>
<part name=" Operation" type="tns:ItemSearch-String"/> Operation
<part name=" MarketplaceDomain" type="xs:string"/> MarketplaceDomain
<part name="AWSAccessKeyId AWSAccessKeyId" type="xs:string"/>
<part name="SubscriptionId SubscriptionId" type="xs:string" />
…
</message>
Web Service Komposition
Web Service Komposition
Web Service Komposition Web Service Komposition
Web Service Komposition
Web Service Komposition – Vereinigung bestehender Web Services und anderer Komponenten, um neue Prozesse zu erzeugen
Bereitstellung von Mehrwertdiensten durch Zusammenschluss mehrerer Web Services
Serviceorientierte Entwicklung von Systemen
Ausnutzung wachsender Anzahl bestehender Online-
Dienste
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
54
Kompositionstypen Kompositionstypen
1. 1. proaktive vs. reaktive proaktive reaktive Komposition 2. Konversation (conversation) &
Konversationsunterstützung
3. (a) Orchestration Orchestration vs. (b) Choreography Choreography
(Orchestration/Choreography)
1. proaktive 1. proaktive vs. reaktive Komposition vs. reaktive Komposition proaktive
proaktive Komposition Komposition
alle verwendeten Services zur Entwicklungszeit bekannt
geeignet, wenn die Anwendung
oft benutzt wird & stabil sein muss
lange Laufzeiten benötigt werden
die Geschwindigkeit eine Rolle spielt
reaktive Komposition reaktive Komposition
dynamisches Komponieren des neuen Dienstes
erlaubt während der Laufzeit Optimierungen
vorzunehmen
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
56
2. Nachrichtenabfolge (Konversation) 2. Nachrichtenabfolge (Konversation)
Abfolge von Abfolge von Operationen Operationen zwischen Web Services
konkrete konkrete
Kommunikation
Kommunikation von zwei oder mehreren Web Services
Kontext erforderlich Kontext
Quelle: M. Reichert, D. Stoll; Komposition, Choreograhpie und Orchestrierung von Web Services – Ein Überblick, EMISA Forum, Band 24, Heft 2, 2004, S. 21-32
3a. Komposition:
3a. Komposition: Choreography Choreography
beschreibt aus ö ö ffentlicher ffentlicher Sicht die Sicht zul zul ä ä ssige ssige Abfolge von Nachrichten
Abfolge von Nachrichten zwischen einem oder mehreren Partnern
keine Angaben über die interne Prozesslogik der Teilnehmer
kein zentraler Koordinator
nicht als Prozess ausführbar
jeder Web Service "weiss", mit wem er
interagieren soll
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
58
Choreography
Choreography – – Beispiel Beispiel
Quelle: M. Reichert, D. Stoll; Komposition, Choreograhpie und Orchestrierung von Web Services – Ein Überblick, EMISA Forum, Band 24, Heft 2, 2004, S. 21-32
3b. Komposition: Orchestrierung 3b. Komposition: Orchestrierung
Kopplung einzelner Web Services, um einen komplexen Geschäftsprozess aufzubauen
beschreibt die Geschäftsprozesslogik aus der Sicht eines Teilnehmers
ein zentraler Prozess koordiniert die Operationen
der Web Services, die in den Prozess eingebunden
sind
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
60
Orchestrierung
Orchestrierung – – Beispiel Beispiel
Quelle: M. Reichert, D. Stoll; Komposition, Choreograhpie und Orchestrierung von Web Services – Ein Überblick, EMISA Forum, Band 24, Heft 2, 2004, S. 21-32
Musterfragen
Musterfragen
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
62
1. Musterfrage 1. Musterfrage WSDL relates
1. Services to operations to port types to bindings.
2. Services to operations to bindings to port types.
3. Services to bindings to operations to port types.
4. Services to bindings to port types to operations.
5. Services to port types to operations to bindings.
WSDL
WSDL Structure Structure
Ports Ports Bindings
Bindings PortTypes
PortTypes Operations
Operations
SOAP/HTTP POST
SOAP/SMTP GoogleSearchPort
doGoogleSearch
doGetCachedPage
http://…
http://…
mailto:
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
64
2. Musterfrage 2. Musterfrage
The four types of WSDL transmission primitives are:
1. Publish-subscribe, solicit-response, notify, update.
2. Notify, publish-subscribe, one-way, solicit.
3. Send-receive, send, receive, receive-send.
4. Solicit, notify, one-way, request-response.
5. Notification, request-response, solicit-response, one-way.
Interaktionsmuster Interaktionsmuster
<operation name="…">
<input message="…"/>
</operation>
<operation name="…">
<output message="…"/>
</operation>
Einweg (
Einweg ( oneway oneway ) )
Anfrage
Anfrage - - Antwort Antwort (request ( request- - response response ) )
Benachrichtigung Benachrichtigung
( ( notification notification ) )
Benachrichtigung
Benachrichtigung - - Antwort Antwort
( ( solicit solicit - - response response ) )
Klausur
Klausur Æ Æ Organisatorisches Organisatorisches
Klausur Klausur
Organisatorisches Organisatorisches
Î 15 Juli um 14:00 pünktlich
Î in Hörsaal Informatik
Was sind die Voraussetzungen?
Was sind die Voraussetzungen?
Sie haben die Folien der Vorlesung verstanden Folien der Vorlesung verstanden und können dieses Wissen anwenden. Wissen anwenden
Sie haben die Ü Ü bungen gemacht bungen gemacht und die
AG Netzbasierte Informationssysteme http://www.ag-nbi.de
68
Klausur Klausur
Struktur: Sie haben 90 Minuten um 90 Punkte zu erreichen!
Struktur: Sie haben 90 Minuten um 90 Punkte zu erreichen!
20 - 24 Multiple Choice Fragen
1 Punkt 1 Punkt für eine vollst vollst ä ä ndig ndig richtige Antwort (20-24 Punkte insgesamt)
mehrere richtige Antworten möglich
5-7 ausführliche Fragen
je Frage 8 8- -10 Punkte 10 Punkte (66-70 Punkte insgesamt) Beispiel
Beispiel: Multiple Multiple Choice Choice
Ähnlich zu den Fragen, die in der Übung vorgestellt wurden
Aufgepasst: nicht immer nur eine korrekte Antwort!
Beispiel: ausf
Beispiel: ausfü ührliche Fragen hrliche Fragen
Typischerweise mit gegebenem XML Code
Aufgabe: Korrektur, Änderung, Erweiterung des Codes.
Oder: XML Instanz von Schema, XSLT Ausgabe usw.
Notenschema Notenschema
Punkte Note
≥ 85,5 1,0
≥ 81 1.3
≥ 76,5 1,7
≥ 72 2,0
≥ 67,5 2,3
≥ 63 2,7
≥ 58,5 3,0
AG Netzbasierte Informationssysteme http://www.ag-nbi.de