WSDL Web Services Definition Language Von Nikos Vormwald.

Slides:



Advertisements
Ähnliche Präsentationen
SOAP, nur ein neuer XML- Dialekt?
Advertisements

Aufgabe1: Probleme mit Seife
Programmierung 1 - Repetitorium
SOAP Simple Object Access Protocol
HTML - Einführung Richard Göbel.
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
DOM (Document Object Model)
Konstruktoren.
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Seminar Internet Technologien
Einführung in Visual C++
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Einführung Servlets/JSPs
Seminar Praktische Informatik Web Services
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Seminarleiter: Herr Prof. Klement und Herr Prof. Kneisel
Wir bauen uns eine Webapplikation!
Software Architektur III
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Integration heterogener verteilter Systeme mit WS-BPEL – ein Praxisbeispiel Dr. Wolf-Dieter Heinrichs.
Webservice Grundlagen
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Einsatzgebiete und Anwendungen
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 5 Folie 2 Windows Communication Foundation (WCF) s.a.
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
Diplomverteidigung Ulrich Dinger Thema: Untersuchung und Entwicklung von Ansätzen und Techniken zur Realisierung einer (Web) Service Language.
Einführung in Web Services Web Services in der Praxis
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
SharePoint 2013 Web Services
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
SOAP.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
SNMP – Simple Network Management Protocol
XML Schema Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS2011/2012 Hist.-kult.wiss. Informationsverarbeitung (Teil.
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
Das World Wide Web Stephan Becker TIT05BGR SS06. Das World Wide Web Übersicht Hypertext & Hypermedia HTML Dokumentenidentifikation Dokumententransport.
Web Services (Axis) ETIS SS05.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Cloud Entwicklung: Web Services
Tutorium Software-Engineering SS14 Florian Manghofer.
Mainframe und WebServices bei der W. KAPFERER KG Einfache Internet-Lösungen in Verbindung mit vorhandenen Host-Programm-Strukturen.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Was sind Web Services? Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Standardtechnologien von Web Services Daniel Schade.
Was sind Web Services? Marko Harasic
WSDL Web Services Definition Language
Business Process Excuction Lanaguage
Business Process Excuction Lanaguage
Tutorstunde 10.
 Präsentation transkript:

WSDL Web Services Definition Language Von Nikos Vormwald

Ü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)

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

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?)

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

WSDL – Geschichte ● Lösung: WSDL ● Von IBM, Microsoft und Ariba ● WSDL März 2001 ● Struktur: XML; Datentypen: XSD

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

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

WSDL Syntax Elementenübersicht ● Types ● Messages ● Operations ● Port types ● Bindings ● Ports ● Services

Porttyp-Operation-Message-Typ Struktur

Das Element

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

Die Elemente und ● Operation ~ Funktion mit Eingabe, Ausgabe, Ausnahmen ● Porttyp mit mehreren Operationen

Service-Port-Binding-Porttyp Struktur

Das Element ● Definiert, wie eine Operation an ein Protokoll gebunden wird <binding name=“CurrentTemperatureSoapBinding“ type=“CurrentTemperaturePortType“> <soap:binding style=“document“ transport=“ <soap:operation soapOperation=“

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“>

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)

Protokoll Bindungen ● SAOP ● soap:binding ● soap:operation ● soap:body ● soap:fault ● SMTP Beispiel ● HTTP GET/POST ● MIME ● mime:multipartRelated ● mime:content ● mime:mimeXml

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)

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)

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.

Beispielwerte und zugehörige SOAP Nachrichten ● Beispielwerte: ● Für style (in soap:binding): document ● Für use (in soap:body): literal PDX

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

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=“ > <m:GetCurrentTemperature xmlns:m=“ PDX p/encoding/

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“/>

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=“ <port name=“MailingListPort“ binding=“tns:SubscribeListSoapBinding“> Funktion Übergabeparameter

SMTP Beispiel <binding name=“SubscribeListSoapBinding“ type=“tns:SubscribePortType“> <soap:binding style=“document“ transport=“ <port name=“MailingListPort“ binding=“tns:SubscribeListSoapBinding“> <binding name=“SubscribeListSoapBinding“ type=“tns:SubscribePortType“> <soap:binding style=“document“ transport=“ <input> </input></operation></portType> <port name=“MailingListPort“ binding=“tns:SubscribeListSoapBinding“> </port></operation></definitions>

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

HTTP GET/POST Bindung Beispiel ● Addition zweier Zahlen ● Input: int,int; Output: string <definitions> </message> </message> </operation></portType>

HTTP GET/POST Bindung Beispiel ● HTTP POST Bindung ● Führt zu Adresse: ● Parameter in Body des POST: op1=1&op2=2 <input> </input><output> </output></operation></binding> Kommt vom port Element am Ende

HTTP GET/POST Bindung Beispiel ● HTTP GET mit url encoding ● Führt zu Adresse: ● Parameter als query string <input>< </output></operation></binding>

HTTP GET/POST Bindung Beispiel ● HTTP GET mit url replacement ● Führt zu Adresse: ● Werte der Parameter Teil der Adresse <input>< </output></operation></binding>

HTTP GET/POST Bindung Beispiel ● Alle 3 Bindungen in einem Service anbieten </port> </port> </port></service></definitions>

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=“ org/soap/http“/>

mime:multipartRelated und mime:content <binding name=“CurrentTempSOAP“ type=“tns:TempPort“> <soap:binding style=“document“ transport=“ Repräsentiert einen MIME Typ (text/html, image/gif) <binding name=“CurrentTempSOAP“ type=“tns:TempPort“> <soap:binding style=“document“ transport=“ 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

2 Tools ● Microsoft SOAP Toolkit ● COM (Visual Basic) Objekt -> WSDL ● IBM Web Services Toolkit ● COM Objekt, Java Class, EJB Jar File -> WSDL

IBM Web Services Toolkit ● Java Class -> WSDL public class MathServer { public MathServer() { super(); } public int Add(int op1, int op2) { return 0; }

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