seminar praktische informatik web services norman thomas 27. november 2003
TRANSCRIPT
![Page 1: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/1.jpg)
Seminar Praktische Informatik
Web Services
Norman Thomas
27. November 2003
![Page 2: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/2.jpg)
Übersicht
Einleitung Beispiel
SOAP Struktur Datentypen
WSDL Struktur
UDDI Struktur Benutzung
![Page 3: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/3.jpg)
Definition
Web Services sind eine im Internet veröffentlichte Software, die ihren Dienst anbietet und über XML-basierte Standardschnittstellen angesprochen wird.
![Page 4: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/4.jpg)
Übersichtsplan
UDDI
AnbieterBenutzer
WSDL
SOAP
SOAP SOAP
Benutzen des WS
Finden Eintragen
![Page 5: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/5.jpg)
Anwendungsbeispiel
Server
Anbieter
Kunde 1OS: WindowsSprache: VB
Kunde 3OS: Linux
Sprache: Python
Kunde 4OS: UNIX
Sprache: C++
Kunde 2OS: Mac OS
Sprache: Java
RMIDCOMCORBA
CORBA-IDL
![Page 6: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/6.jpg)
Lösungen (1)
RMI 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
![Page 7: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/7.jpg)
Lösungen (2)
Eventuelle LösungHTML 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
![Page 8: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/8.jpg)
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
![Page 9: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/9.jpg)
Übersichtsplan
UDDI
AnbieterBenutzer
WSDL
SOAP
SOAP SOAP
Benutzen des WS
Finden Eintragen
![Page 10: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/10.jpg)
Client
Server
HTTPserver
WebService
SOAPserver
UDDIHTTPserver
SOAPserver
UDDIWebApp
UDDIBusiness
Logic
UDDIDB
![Page 11: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/11.jpg)
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
![Page 12: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/12.jpg)
SOAP-Struktur<?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>
![Page 13: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/13.jpg)
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)
![Page 14: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/14.jpg)
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
![Page 15: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/15.jpg)
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>
![Page 16: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/16.jpg)
SOAP-Body
Hier steht die eigentliche Nachricht mitMethodenaufrufenParameterübergabenRückgabewerten (Antworten von Methoden)Fehlermeldungen
![Page 17: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/17.jpg)
Java-Code
public String sayHello( String name ) {return „Hello “ + name;
}
![Page 18: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/18.jpg)
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>
MethodeParametername
Parameterwert
![Page 19: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/19.jpg)
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>
MethodeParametername
Parameterwert
![Page 20: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/20.jpg)
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
![Page 21: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/21.jpg)
SOAP & Datentypen
SOAP verwendet Standard-XML-Typen Bei komplexen Typen wie Arrays oder
Strukturen kann man eigene Typen definieren
![Page 22: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/22.jpg)
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>
![Page 23: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/23.jpg)
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>
![Page 24: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/24.jpg)
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
![Page 25: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/25.jpg)
<definitions>
<types>
<documentation><import>
<message><part>
<binding>
<service><port>
<portType><operation>
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
<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
<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>.
WSDL – Struktur
<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.
![Page 26: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/26.jpg)
WSDL-Operation
![Page 27: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/27.jpg)
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.
![Page 28: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/28.jpg)
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
![Page 29: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/29.jpg)
Übersichtsplan
UDDI
AnbieterBenutzer
WSDL
SOAP
SOAP SOAP
Benutzen des WS
Finden Eintragen
![Page 30: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/30.jpg)
![Page 31: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/31.jpg)
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
![Page 32: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/32.jpg)
UDDI
Publisher 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
![Page 33: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/33.jpg)
Ausblick
Nutzung von Web Services zur Integration von Google, Amazon, Babelfish, etc. in eigene Applicationen
Nutzung von Web Services zum Grid Computing
![Page 34: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/34.jpg)
Web Service Sicherheit
SOAP
XML
HTTP, FTP,SMTP, …
TCP/IP
Transport Layer
Application Layer
SSL
XMLSignature
XMLEncryption
WS-Security
WS-TrustWS-Security Policy
WS-Policy
![Page 35: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/35.jpg)
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
![Page 36: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/36.jpg)
Quellen (2)
http://www.w3schools.com/soap/default.asp http://www.w3schools.com/w3c/w3c_soap.asp http://www.w3schools.com/wsdl/default.asp http://www.w3schools.com/w3c/w3c_wsdl.asp http://www-106.ibm.com/developerworks/
webservices/ http://www6.software.ibm.com/developerworks/
education/ws-dewsdl/ws-dewsdl-a4.pdf http://www.topxml.org/soap/articles/
soapservices/default.asp
![Page 37: Seminar Praktische Informatik Web Services Norman Thomas 27. November 2003](https://reader035.vdocuments.pub/reader035/viewer/2022081602/55204d6a49795902118c0688/html5/thumbnails/37.jpg)
Quellen (3)
www.xmethods.net www.salcentral.com