Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Praktische Informatik Web Services

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Praktische Informatik Web Services"—  Präsentation transkript:

1 Seminar Praktische Informatik Web Services
Norman Thomas 27. November 2003

2 Übersicht Einleitung SOAP WSDL UDDI Beispiel Struktur Datentypen
Benutzung

3 Definition Web Services sind eine im Internet veröffentlichte Software, die ihren Dienst anbietet und über XML-basierte Standardschnittstellen angesprochen wird.

4 Übersichtsplan UDDI Benutzer Anbieter SOAP SOAP SOAP Finden Eintragen
Benutzen des WS WSDL

5 CORBA DCOM RMI Anwendungsbeispiel Anbieter Server Kunde 1 Kunde 2
OS: Windows Sprache: VB Kunde 2 OS: Mac OS Sprache: Java Anbieter CORBA DCOM RMI Server Kunde 3 OS: Linux Sprache: Python CORBA-IDL Kunde 4 OS: UNIX Sprache: C++

6 Lösungen (1) RMI DCOM CORBA Nur auf Java beschränkt
Dafür sämtliche Java-fähige Plattformen DCOM Nur auf Windows beschränkt Dafür programmiersprachenunabhängig CORBA Viele Plattformen Viele Programmiersprachen ORBs sind jedoch nicht sehr einheitlich, deshalb werden nicht auf allen Plattformen alle Sprachen unterstützt

7 Lösungen (2) Eventuelle Lösung HTML parsen und Benutzer simulieren
Scheint u.U. einfacher zu sein als es ist! Probleme: Parsen ist aufwändig Änderung des Layouts → Parser anpassen Bei Änderungen ist der alte Parser auf keinen Fall weiter nutzbar Dienste werden erweitert → Parser anpassen Verteilung des neuen Parsers an alle Kunden Man muss warten bis alle Kunden umgestellt haben

8 Lösungen (3) HTTP (HTML) und CORBA boten die besten Lösungen, wenn auch jedes für sich unvollkommen Kombination beider Techniken! HTTP als Transport-Protokoll CORBA-IDL ähnliches Verfahren zum Beschreiben der Fähigkeiten Ergebnis: Web Services

9 Übersichtsplan UDDI Benutzer Anbieter SOAP SOAP SOAP Finden Eintragen
Benutzen des WS WSDL

10 UDDI Client Server HTTP server SOAP HTTP server Web Service SOAP
WebApp Business Logic DB Client Server HTTP server Web Service SOAP

11 SOAP Basiert auf XML Aktuelle Version 1.2 seit Juni 2003
SOAP dient zum Nachrichtenaustausch Benötigt keine exotischen offenen Ports, da es auf Basis von HTTP, SMTP, etc. operieren kann

12 SOAP-Struktur <!– Header --> <SOAP:Header>
<?xml version=„1.0“ encoding=„UTF-8“?> <SOAP:Envelope xmlns:SOAP= „http://www.w3.org/2003/05/soap-envelope“> </SOAP:Envelope> <!– Header --> <SOAP:Header> </SOAP:Header> <!– Body --> <SOAP:Body> </SOAP:Body>

13 SOAP-Envelope Ist „Umschlag“ einer SOAP-Nachricht
Ist Root-Element der SOAP-Nachricht (des XML-Dokuments) In „xmlns:SOAP“ wird die verwendete Version von SOAP angegeben (der Link aus dem Beispiel ist für SOAP 1.2)

14 SOAP-Header Ist optional
Falls er angegeben wird muss er vor dem SOAP-Body stehen Im Header können Daten angegeben werden, die nicht zur eigentlichen Nachricht gehören (z.B. Authentisierungsdaten) Versteht der Empfänger den Header nicht, weiß also nicht die Daten auszuwerten, so wird der Header einfach verworfen

15 SOAP-Header (Code) <SOAP:Header>
<auth:authentication xmlns:auth=„http://irgendwas.com/auth“> <auth:user>norman</auth:user> <auth:pass>webservices</auth:pass> </auth:authentication> </SOAP:Header>

16 SOAP-Body Hier steht die eigentliche Nachricht mit Methodenaufrufen
Parameterübergaben Rückgabewerten (Antworten von Methoden) Fehlermeldungen

17 Java-Code public String sayHello( String name ) {
return „Hello “ + name; }

18 SOAP-Body (Code) <SOAP:Body>
<anfrage:sayHello xmlns:anfrage=„http://irgendwas.com/anfrage“ SOAP:encodingStyle=„http://schemas.xmlsoap.org/SOAP/encoding/“> <name>Norman</name> </anfrage:sayHello> </SOAP:Body> Methode Parametername Parameterwert

19 SOAP-Body (Code) <SOAP:Body>
<anfrage:sayHelloResponse xmlns:anfrage=„http://irgendwas.com/anfrage“ SOAP:encodingStyle=„http://schemas.xmlsoap.org/SOAP/encoding/“> <result>Hello Norman</result> </anfrage:sayHelloResponse> </SOAP:Body> Methode Parametername Parameterwert

20 SOAP-Fault Hierhin gehören Fehlermeldungen
Fehlermeldungen werden charakterisiert durch: faultcode (VersionMismatch, MustUnderstand, Client, Server) faultstring faultfactor (Knoten, wo Fehler auftrat) details Befinden sich in der Umgebung <SOAP:Fault> innerhalb des SOAP-Body‘s

21 SOAP & Datentypen SOAP verwendet Standard-XML-Typen
Bei komplexen Typen wie Arrays oder Strukturen kann man eigene Typen definieren

22 Arrays <anfrage:searchZIPResponse xmlns:anfrage=„…“ SOAP:encodingStyle=„…“> <result href=„id0“/> </anfrage:searchZIPResponse> <id0 id=„id0“ SOAPenc:root=„0“ xsi:type=„SOAPEnc:Array“ SOAPEnc:arrayType=„xsd:string[2]“> <i xsi:type=„xsd:string“>Cambria Hts.</i> <i xsi:type=„xsd:string“>Baldwin</i> </id0>

23 Struktur <anfrage:searchAddressResponse xmlns:anfrage=„…“ SOAP:encodingStyle=„…“> <result href=„id0“/> </anfrage:searchAddressResponse> <id0 id=„id0“ SOAPenc:root=„0“ xsi:type=„ns1:Adresse“> <strasse xsi:type=„xsd:string“>Mozartstr. 1</strasse> <plz xsi:type=„xsi:string“>34117</plz> <ort xsi:type=„xsi:string“>Kassel</ort> </id0>

24 WSDL Web Service Description Language XML-basiert
WSDL beschreibt Web Services Aus WSDL lassen sich Code-Gerüste generieren Aktuelle Version ist 1.1, jedoch sind 1.2 und 2.0 in Arbeit Noch kein offizieller W3C-Standard wie SOAP Alternativen: RDF, DAML

25 WSDL – Struktur <definitions> <documentation>
<types> <documentation> <import> <message> <part> <binding> <service> <port> <portType> <operation> <portType> listet alle Operationen eines Web Services auf. Dazu dienen die <operation>-Elemente, die als Attribut „name“ den Namen der Funktion haben. <operation> hat wiederum Unterelemente, und zwar <input>, <output> und <fault>. <documentation> und <import> sind optional. In <documentation> kann eine textuelle Beschreibung der WSDL und des Dienstes stehen. Mit <import> kann man WSDL-Dokumente modular aufbauen und so WSDL-Teile importieren <types> ist ebenfalls optional. Werden jedoch eigens definierte Datentypen z.B. Strukturen verwendet, dann müssen sie hier definiert werden, damit sie in SOAP verwendet werden können. In <message> werden mittels der <part>-Unterelemente die Funktionen mit deren Attributen und Rückgabewerten aufgelistet, wobei <message> das Attribut „name“ hat, das den Namen der Funktion erhält und <part> mit dem Attribut „name“ den Namen des Parameters und mit „type“ den Typen des Parameters festlegt. Gibt es mehrere Parameter dann muss man mehrere <part>-Elemente verwenden

26 WSDL-Operation

27 WSDL-binding & service
<binding> legt fest über welche Transportwege die Kommunikation laufen kann (SOAP, HTTP GET/POST, MIME, …) „type“-Attribut verweise auf ein portType In <service> werden <port>-Elemente zusammengefasst Attribut „binding“ verweist auf <binding>-Elemente Das Unterelement <port> enthält wieder ein Unterelement <SOAP:address> bzw <HTTP:address>, das ein Attribut „location“ mit der URL des Services besitzt.

28 UDDI Universal Description, Discovery Integration
UDDI ist kein W3C-Standard Katalog bzw. Suchmaschine für Web Services Anbieter registriert seinen Web Service am UDDI Registry Anwender sucht im UDDI Registry nach Web Services Basiert ebenfalls au XML Alternative: WSIL

29 Übersichtsplan UDDI Benutzer Anbieter SOAP SOAP SOAP Finden Eintragen
Benutzen des WS WSDL

30

31 UDDI – Publisher & Requestor
Publizieren Mit „delete“ beginnende Befehle dienen dem Löschen Mit „save“ beginnende Befehle dienen dem Speichern Abfragen Mit „find“ beginnende Befehle suchen und browsen durch das Verzeichnis Mit „get“ beginnende Befehle dienen dem Abrufen von Details

32 UDDI Publisher Requestor
add_publisherAssertions, set_publisherAssertions, get_publisherAssertions, delete_publisherAssertions, get_assertionStatusReport save_business, delete_business save_service, delete_service save_tModel, delete_tModel get_registeredInfo Requestor find_business, get_businessDetail, get_businessDetailExt find_relatedBusiness find_service, get_serviceDetail find_tModel, get_tModel

33 Ausblick Nutzung von Web Services zur Integration von Google, Amazon, Babelfish, etc. in eigene Applicationen Nutzung von Web Services zum Grid Computing

34 Web Service Sicherheit
Application Layer SOAP WS-Trust WS-Security Policy WS-Policy WS-Security XML XML Signature XML Encryption HTTP, FTP, SMTP, … SSL TCP/IP Transport Layer

35 Quellen (1) Perspectives on Web Services, Applying SOAP, WSDL and UDDI to Real-World Projects. Olaf Zimmermann, Mark Tomlinson, Stefan Peuser. Springer Verlag Web Services – kompakt. Michael Kuschke, Ludger Wölfel. Spektrum Verlag

36 Quellen (2) http://www.w3schools.com/soap/default.asp

37 Quellen (3)


Herunterladen ppt "Seminar Praktische Informatik Web Services"

Ähnliche Präsentationen


Google-Anzeigen