Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Norbert Hummel Geändert vor über 8 Jahren
1
WSDL Web Services Definition Language Von Nikos Vormwald
2
Übersicht ● Einleitung (3-4) ● Geschichte von WSDL (5-6) ● Warum WSDL? (7) ● WSDL Syntax (8) ● Übersicht (9-10) ● Elemente (11-16) ● Transmission Primitives (17) ● Protokoll Bindungen (18) ● SOAP (19-27) ● HTTP GET/POST (28-33) ● MIME (34-35) ● WSDL-Erstellung mit Tool (36-37)
3
WSDL – Einleitung ● Was ist WSDL? ● Sprache zur Definition von Web Services ● Was sind Web Services? ● Alles, was mit WSDL darstellbar ist ● Ein spezieller Web Service in WSDL-Datei beschrieben ● Web Service vorstellbar als Funktion: ● Eingabe = Parameter; Ausgabe = Rückgabewert ● Kommunikation über Internet ● Bsp.: Temperaturauskunft Web Service ● Eingabe: Ort; Ausgabe: Temperatur
4
WSDL – Einleitung ● Was ist WSDL nicht? ● WSDL ist keine Implementierung! ● Nur Beschreibung/Informationsdatei über Web Services ● Was wird mit WSDL beschrieben? ● Was ich an Web Service senden muss ● Im Bsp.: Ort (als GPS-Koordinaten? Längengrad? Stadtname? Postleitzahl?) ● Was ich vom Web Service zurück bekomme ● Im Bsp.: Temperatur (Celcius? Kelvin? Fahrenheit?) ● Womit ich senden muss ● Welches Protokoll (SOAP? HTTP GET/POST? MIME?)
5
WSDL – Geschichte ● Vorher: SOAP ● Protokoll zur Übertragung von Nachrichten ● Problem: Keine Beschreibung wie Nachrichten aussehen müssen ● „Lösungen“: ● IBM: NASSL (Network Accessibility Service Specification Language) ● Struktur: XML; Datentypen: XSD ● Microsoft: SCL (Services Contract Language) (Frühling 2000) ● Struktur: XML; Datentypen: XDR (XML Data Reduced) ● Probleme ● Beide Beschreibungen nur für ein Protokoll (SOAP) ● Beide Beschreibungen inkompatibel
6
WSDL – Geschichte ● Lösung: WSDL ● Von IBM, Microsoft und Ariba ● WSDL 1.1 - März 2001 ● Struktur: XML; Datentypen: XSD
7
Warum WSDL? ● Web Services müssen sich selbst beschreiben ● Millionen Unabhängige Komponenten im Internet verfügbar ● Von jeder Plattform aus nutzbar ● In jeder Entwicklungssprache geschrieben ● WSDL zur Beschreibung nutzen ● Web Service ist für Client nutzbar, ohne ● Wissen über die Implementierung des Web Service ● Wissen über die Plattform oder Betriebssystem des Web Service ● Verwendung offener Standards ● XML, XSD, SOAP, MIME ● Kann jeder Web Service unabhängig von Plattform und Implementierung
8
WSDL Syntax ● Grundlagen: ● Endpunkte (Ports) die Nachrichten austauschen ● Unterscheidung zwischen ● abstrakter Definition einer Nachricht ● konkretem Weg, wie die Nachricht auf ein Protokoll abgebildet wird ● Warum WSDL Syntax lernen? ● In der Praxis wird WSDL Dokument von Tools erstellt ● Aber: Für Feinanpassungen Kenntnisse erforderlich
9
WSDL Syntax Elementenübersicht ● Types ● Messages ● Operations ● Port types ● Bindings ● Ports ● Services
10
Porttyp-Operation-Message-Typ Struktur
11
Das Element
12
Das Element ● Besteht aus Teilen (Parts) ● Jeder Part ist ein Typ/Element ● Bei Message mit mehr als einem Typ: 2 Möglichkeiten ● Message mit 2 Teilen; jeder Teil ein Typ ● Dritten Typ definieren (Typ1 und Typ2) und Message mit einem Teil
13
Die Elemente und ● Operation ~ Funktion mit Eingabe, Ausgabe, Ausnahmen ● Porttyp mit mehreren Operationen
14
Service-Port-Binding-Porttyp Struktur
15
Das Element ● Definiert, wie eine Operation an ein Protokoll gebunden wird <binding name=“CurrentTemperatureSoapBinding“ type=“CurrentTemperaturePortType“> <soap:binding style=“document“ transport=“http://schemas.cmlsoap.org/soap/http“/> <soap:operation soapOperation=“http://example.com/GetCurrentTemperature“/>
16
Die Elemente und ● Ein port verknüpft ein binding mit protokollspezifischer Adresse ● Ein service kann mehrere ports beinhalten, also auf mehreren Protokollen laufen ● z.Bsp.: PC mit SOAP; WAP-Handy mit HTTP GET/POST <port name=“CurrentTemperaturePort“ binding=“CurrentTemperatureSoapBinding“>
17
Transmission Primitives ● Welche und wieviele Nachrichten eine Operation hat: ● One-way Operation (~Prozedur ohne Rückgabewert) ● Input (z. Bsp.: Bestellung) ● Request/Response Operation (~Funktion Parameter->Rückgabe) ● Input (Stadtcode) ● Output (Temperatur) ● [Fault] ● Solicit/Response Operation (keine Bindung vorhanden) ● Output (Bestellungsstatus) ● Input (Bestätigung) ● [Fault] ● Notification Operation (keine Bindung vorhanden) ● Output (periodischer Statusreport)
18
Protokoll Bindungen ● SAOP ● soap:binding ● soap:operation ● soap:body ● soap:fault ● SMTP Beispiel ● HTTP GET/POST ● MIME ● mime:multipartRelated ● mime:content ● mime:mimeXml
19
soap:binding ● Weißt darauf hin, dass an SOAP gebunden werden soll ● Gibt an was genutzt werden soll: ● Transport Mechanismus (HTTP, SMTP, FTP) (benötigt) ● Encoding style (rpc,document) (Optional; Standard:document)
20
soap:operation ● Gibt an, wie eine Operation an SOAP gebunden wird ● Enthält: ● SOAPAction Header (benötigt bei HTTP-Transport) ● Encoding style (rpc,document) (Optional; zum Überschreiben)
21
soap:body ● Enthält: ● parts gibt an welche Teile der Nachricht in den SOAP-Body eingefügt werden (optional; Standard: Alle) ● Use, namespace und encodingStyle geben an wie die Teile in den SOAP Body eingefügt werden.
22
Beispielwerte und zugehörige SOAP Nachrichten ● Beispielwerte: ● Für style (in soap:binding): document ● Für use (in soap:body): literal PDX
23
Beispielwerte und zugehörige SOAP Nachrichten ● Beispielwerte: ● Für style (in soap:binding): rpc ● Für use (in soap:body): literal ● => Name der Operation eingefügt PDX
24
Beispielwerte und zugehörige SOAP Nachrichten ● Beispielwerte: ● Für style (in soap:binding): rpc ● Für use (in soap:body): encoded ● => encodingStyle wird zur Abbildung auf SOAP Body benutzt <soap:body use=“encoded“ encodingStyle=“SOAP1.1“ namespace=“http://example.com/ct“.../ > <m:GetCurrentTemperature xmlns:m=“http://example.com/ct> PDX http://schemas.xmlsoap.org/soa p/encoding/
25
soap:fault ● Bindet Nachrichtenteil an SOAP Fault Details ● Use, namespace, encodingStyle gleiche Fkt. wie in soap:body ● Parts entfällt da Fehler Nachrichten nur einen Teil haben <soap:fault use=“encoded | literal“ namespace=“uri“ encodingStyle=“uri“/>
26
SMTP Beispiel ● Anmeldung zu einer Mailingliste (One-way Operation) ● SMTP am besten geeignet, da Protokoll one-way und asynchron ● HTTP ist two-way und synchron <definitions> </message> </operation></portType> <binding name=“SubscribeListSoapBinding“ type=“tns:SubscribePortType“> <soap:binding style=“document“ transport=“http://exmaple.com/smtp“/> <port name=“MailingListPort“ binding=“tns:SubscribeListSoapBinding“> Funktion Übergabeparameter
27
SMTP Beispiel <binding name=“SubscribeListSoapBinding“ type=“tns:SubscribePortType“> <soap:binding style=“document“ transport=“http://exmaple.com/smtp“/> <port name=“MailingListPort“ binding=“tns:SubscribeListSoapBinding“> <binding name=“SubscribeListSoapBinding“ type=“tns:SubscribePortType“> <soap:binding style=“document“ transport=“http://exmaple.com/smtp“/> <input> </input></operation></portType> <port name=“MailingListPort“ binding=“tns:SubscribeListSoapBinding“> </port></operation></definitions>
28
HTTP GET/POST Bindung ● 3 verschiedene Arten eine Nachricht an HTTP Adresse zu binden ● HTTP GET mit URL encoding ● HTTP GET mit URL replacement ● HTTP POST ● Machen Web Service verfügbar für viele Clients ● Desktop Browser ● WAP Handy ● PDA ● Jede Plattform, die HTTP unterstützt kann Service nutzen
29
HTTP GET/POST Bindung Beispiel ● Addition zweier Zahlen ● Input: int,int; Output: string <definitions> </message> </message> </operation></portType>
30
HTTP GET/POST Bindung Beispiel ● HTTP POST Bindung ● Führt zu Adresse: http://example.com/o1 ● Parameter in Body des POST: op1=1&op2=2 <input> </input><output> </output></operation></binding> Kommt vom port Element am Ende
31
HTTP GET/POST Bindung Beispiel ● HTTP GET mit url encoding ● Führt zu Adresse: http://example.com/o1?op1=2&op2=2 ● Parameter als query string <input><http:urlEncoded/></input><output> </output></operation></binding>
32
HTTP GET/POST Bindung Beispiel ● HTTP GET mit url replacement ● Führt zu Adresse: http://example.com/o1/1/2 ● Werte der Parameter Teil der Adresse <input><http:urlReplacement/></input><output> </output></operation></binding>
33
HTTP GET/POST Bindung Beispiel ● Alle 3 Bindungen in einem Service anbieten </port> </port> </port></service></definitions>
34
MIME Bindung ● Eingabe: Stadtcode; Ausgabe: Temperatur, HTML-Dokument mit Wochenaussicht <definitions...> <message> </message> </operation></portType> <binding name=“CurrentTempSOAP“ type=“tns:TempPort“> <soap:binding style=“document“ transport=“http://schemas.xmlsoap. org/soap/http“/>
35
mime:multipartRelated und mime:content <binding name=“CurrentTempSOAP“ type=“tns:TempPort“> <soap:binding style=“document“ transport=“http://schemas.xmlsoap.org/soap/http“/> Repräsentiert einen MIME Typ (text/html, image/gif) <binding name=“CurrentTempSOAP“ type=“tns:TempPort“> <soap:binding style=“document“ transport=“http://schemas.xmlsoap. org/soap/http“/> <input> </input><output><mime:multipartRelated><mime:part> </mime:part><mime:part> </mime:part><operation></binding></definitions> Bindet verschiedene Nachrichtenteile an verschiedene MIME Typen
36
2 Tools ● Microsoft SOAP Toolkit ● COM (Visual Basic) Objekt -> WSDL ● IBM Web Services Toolkit ● COM Objekt, Java Class, EJB Jar File -> WSDL
37
IBM Web Services Toolkit ● Java Class -> WSDL public class MathServer { public MathServer() { super(); } public int Add(int op1, int op2) { return 0; }
38
Zusammenfassung ● WSDL stellt einen benötigten Teil eines Web Services zu Verfügung ● Es muss einen üblichen Weg geben, Web Services zu beschreiben ● Typen die benutzt werden ● Protokolle an die sie gebunden werden ● WSDl baut auf existierenden Standards auf ● XSD, SOAP, MIME ● IBM und Microsoft haben WSDL übernommen, andere folgen ● WSDL füllt die Lücke zwischen SOAP und UDDI
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.