Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WSDL Web Services Definition Language Von Nikos Vormwald.

Ähnliche Präsentationen


Präsentation zum Thema: "WSDL Web Services Definition Language Von Nikos Vormwald."—  Präsentation transkript:

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


Herunterladen ppt "WSDL Web Services Definition Language Von Nikos Vormwald."

Ähnliche Präsentationen


Google-Anzeigen