Einzelaspekte der Web Services

Werbung
Einzelaspekte der Web Services
•
•
•
•
Schnittstelle des Service beschreiben
Service zentral zugreifbar machen
Service suchen bzw. finden
Service zur Laufzeit aufrufen
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
2
UDDI - Universal Description Discovery Integration
• UDDI = Universal Description, Discovery and Integration of
web services
• UDDI Version 1, September 2000 (nicht relevant)
UDDI Version 2, Juni 2001
UDDI Version 3, Juli 2002
• Weiterentwicklung von OASIS (www.oasis-open.org)
OASIS = Organization for the Advancement of Structured
Information Standards
• http://www.uddi.org
http://uddi.org/about.html
• Spezifikation:
http://www.oasis-open.org/comittees/uddi-spec/
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
3
Zweck
•
•
•
•
•
Globaler Verzeichnisdienst für Web Services
Verzeichnisdienst für Meta-Daten
Beantwortet dynamische Anfragen vor Serviceaufruf
Logisch zentralisierter, physisch verteilter Dienst
Öffentliche UDDI-Server bei HP, IBM, Microsoft, SAP etc.
Öffentliche Verzeichnisse (Beispiele):
http://uddi.microsoft.com
http://www-3.ibm.com/software/solutions/webservices/uddi
http://uddi.sap.com
http://www.ntt.com/uddi
Siehe auch: http://www.uddi.org/faqs.html
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
4
Begriffe und Organisation I
• Operator Nodes = UDDI-Operatoren = Anbieter öffentlicher
Verzeichnisse
• GUID = Globally Unique Identifier = Bezeichnung der
Informationen aus den Verzeichnisse der UDDI-Operatoren
• UBR = Universal Business Registry = Gruppe der UDDIOperatoren
• Registrare = Organisationen zum koordinierten Eintragen von
Informationen, z. B. über Web-Oberflächen, im Sinne eines
Mittlers
• Die dritte Gruppe bilden die privaten UDDI-Verzeichnisse
• Publish = Eintragen in eine Verzeichnis
• Inquiry = Durchsuchen eines Verzeichnisses
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
5
Begriffe und Organisation II
• Business Entity = den Dienst realisierende Geschäftseinheit
• Publisher Assertions = Verbindungen zwischen Geschäftseinheiten
• Taxonomie = System zur Kategorisierung - hier ist nicht das
System des Semantic Web gemeint
• tModel = taxonomy model = Zusammenfassung von Taxonomien
sowie weiteren Informationen zur Suche
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
6
Struktur des Inhalts
• White Pages (<BusinessEntity>)
– Firmenname, Adressen
– Kontaktinformationen, Web-Sites etc.
• Yellow Pages (<BusinessService>)
– Diensttyp, Adresse, Produkte
– Wirtschaftszweig
• Green Pages (<BindingTemplate>)
– Technische Informationen
– Verweis zur WSDL-Beschreibung
– Beschreibung als Text
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
7
Aufbau
• <businessEntity>
– Firma/Person, die Dienste anbietet
• <businessService>
– Klassifizierung des Dienstes
• <bindingTemplate>
– Art, einen Dienst zu benutzen
– Hinweise auf Implementierung eines Dienstes
• <tModel>
– Beschreibung eines Dienstes
– Dient zum Auffinden von Diensten (Taxonomien)
– Verweis auf WSDL-Dokument
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
8
Probleme
• Vertrauen
–
–
–
–
Betrug ist nicht ausgeschlossen (siehe eBay)
Qualität der Leistung
Termingerechte Erbringung
Große Transaktionen benötigen einen Vertrag
• Authentifizierung
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
9
UDDI-API
• Es werden zwei APIs definiert:
– Publishing API
Anbieter können über dieses API ihren Web Service
veröffentlichen.
– Inquiry API:
Anwender können über dieses API nach einem Web Services
suchen.
• Publishing API definiert 15 Operationen, u. a.
– save_binding
– save_business
– save_service
– ...
• Inquiry API definiert 25 Operationen, u. a.
– find_binding
– find_business
– find_relatedBusinesses
– ...
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
10
WSDL - Web Service Description Language
• Beschreibungssprache für Web Services in XML
genauer: für die Schnittstelle zu den Web Services
• Version 1.1 vom März 2001
Version 1.2 vom März 2003
• Entspricht der IDL (Interface Description Language) von CORBA
• http://www.w3.org/TR/wsdl
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
11
Zusammenhänge I
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
12
Zusammenhänge II
1. Anfrage an UDDI-Server
Dieser liefert die URL von der UDDI-Registratur
2. Abfrage der WSDL-Beschreibung bei der UDDI-Registratur
3. WSDL-Compiler generiert beim Client einen Stub
4. Der Client sendet über den Stub einen SOAP-Request.
5. Der Dienst wird erbracht.
6. Der Client erhält den entsprechenden SOAP-Response.
Dieser Ablauf ist vereinfacht, da ein Aushandeln oder Prüfen
nicht stattfindet. Auch wurden sämtliche Authentifizierungen etc.
weggelassen.
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
13
Aufbau der WSDL-Beschreibung I
•
•
•
•
XML Schema Definition der Typen - XML Schema Typen empfohlen
Definition der Nachrichten auf der Grundlage der Typen
Schnittstellen des Dienstes
Protokollbindungen, u.a. SOAP, HTTP GET/POST (ohne SOAP),
SMTP/MIME
Typische Namensräume in WSDL-Dateien:
targetNamespace="User-URI"
xmlns:tns="User-URI"
xmlns:xsd="http://www.w3.org/2001/XMLSchema
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
14
Aufbau der WSDL-Beschreibung II
<definitions name=Name targetNamespace=URL>
<import namespace=URL/>
<documentation ..... />
<types> ... </types>
<message name=Name> ... </message>
Was?
<portType name=NameP> ... </portType>
Was?
<binding name=NameP type=Typ> ... </binding>
Wie?
<service name=Name> ... </service>
Wo?
</definitions>
Schnittstellenspezifikation
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
15
Aufbau der WSDL-Beschreibung III
Element
Erläuterung
definitions
Wurzelelement
types
Datentypen der Informationen in den SOAP-Nachrichten
message
Beschreibung einer Nachricht
part
Parameter einer Nachricht
portType
Angabe der Operation an einem Port
input
Empfangener Nachrichtenteil
output
Sendender Nachrichtenteil
binding
Protokoll für Zugriff auf Port
service
Ort der Service-Erbringung
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
16
Aufbau der WSDL-Beschreibung IV
<definitions name=Name targetNamespace=URL>
<import namespace=URL/>
<documentation ..... />
<types>
...
</types>
Definition eigener
Typen
<message name=Name>
<part name=Name type=Typ/>
<part name=Name type=Typ/>
</message>
<portType name=NameP>
<operation name=OP>
<input name=... message=.../>
<output name=... message=.../>
</operation>
</portType>
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
17
Aufbau der WSDL-Beschreibung V
<binding name=NameP type=Typ>
<SOAP:binding transport="HTTP-URL" style=STIL>
....
</binding>
<service name=NameP>
<port name=NameP binding=BIND>
<SOAP:address location=URL />
</port>
</service>
</definitions>
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
18
Beispiel I - Typteil
<?xml version="1.0" ?>
<definitions name="TB:TelefonBuch"
targetNamespace="TB:TelefonBuch" ...>
<types>
<xsd:schema targetNamespace="TB:TelefonBuch" ...>
<xsd:complexType name="Eintrag">
<xsd:all>
<xsd:element name="Nummer" type="xsd:int"/>
<xsd:element name="Adresse" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
</xsd:schema>
</types>
• Definitions definiert Namen und Namensraum des Services sowie
alle anderen Namensräume
• Types: Typ der Austausch-Struktur
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
19
Beispiel II - Message und Port
<message name="empty"/>
<message name="AddEintragRequest">
<part name="Name" type="xsd:string"/>
<part name="Eintrag" type="TB:Eintrag"/>
</message>
<portType name="TelefonBuch">
<operation name="addEintrag">
<input message="TB:AddEintragRequest"/>
<output message="TB:empty"/>
</operation>
</portType>
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
20
Bemerkungen I - Message
• Message definiert den Aufbau der Nachrichten.
• Sind mehrere Nachrichten erforderlich, z.B. Eingabeparameter
und Rückgabewerte, so werden mehrere Nachrichten definiert.
• Eine Nachricht kann aus Teilelementen bestehen: den Parts.
Parts definieren Name-Wert Paar zu den Parametern einer
Nachricht.
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
21
Bemerkungen II - PortType
• PortType beschreibt die Methoden des Web Service.
• Dazu werden die oben definierten Nachrichten verwendet.
• WSDL unterstützt vier Interaktionstypen:
–
–
–
–
Oneway (input)
Request/Response (input, output/fault) - aus der Sicht des Clients
Solicit/Response (output, input/fault) - aus der Sicht des Servers
Notification (output)
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
22
Beispiel III - Binding
<binding name="TelefonBuchSOAPBinding" type="TB:TelefonBuch">
<soap:binding style="rpc" transport=URI/>
<operation name="addEintrag">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded" namespace="TB:TelefonBuch"
encodingStyle=URI"/>
</input>
....
</operation>
....
</binding>
• <binding> definiert Nachrichtenformate und das Transportprotokoll.
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
23
Beispiel IV - Service
<service name="TelefonBuchService">
<port name="TelefonBuch" binding="tns:TelefonBuchSOAPBinding">
<soap:address location=URI/>
</port>
</service>
</definitions>
• Service: Angebot samt Namen sowie Angabe des Ortes (URI)
• Port: Dienstendpunkt selbst
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
24
Weitere Elemente
• <documentation>
– Lesbare Beschreibung des Web Services
• <import>
– Importiert ein anderes WSDL-Dokument oder XML-Schema
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
25
Grenzen und Probleme
• WSDL beschreibt nur die Syntax, nicht die Semantik
(außer in <documentation>)
• WSDL kann nicht mehrere Web Services zusammenfassen
• WSDL kann keine komplexeren Interaktionen als RequestResponse (und Kombinationen davon) beschreiben, also keine
"echten" Protokolle.
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
26
Nach dieser Anstrengung etwas Entspannung...
Verteilte Anwendungen – WS 2016/17 - Teil 10/Web-Services II
27
Herunterladen