WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax

Ähnliche Dokumente
Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

WebServices Zwischen Buzzword und Nutzen

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Verteilte Systeme: Übung 4

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Web-Services Grundlagen

Verteilte Anwendungen. Teil 10: UDDI und WSDL

Wiederholung: Beginn

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Java Web Services. Seminarunterlage. Version 4.03 vom

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Java Web Services. Seminarunterlage. Version 4.02 vom

Service Oriented Architecture. Hanno Wunderlich SWT-Projekt WS07/08

Kapitel 5 Web-Services

Mit WSDL Webdienste dokumentieren

wsdl-analyse von hand kein normaler mensch macht das am beispiel currencyconverter

Block Web-Dienste. Beispiel: ohne Browser. ohne Browser. Beispiel: Definition

Affiliate SOAP-Schnittstelle

XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

Implementierung von Web Services: Teil I: Einleitung / SOAP

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Software Reuse Sommer 2004

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Webservices Ein Vortrag von:

Aufbau von SOAP- Nachrichten

Zustandsgebundene Webservices

SOAP und WSDL in der Praxis. Wie wird SOAP/WSDL verwendet? Heutige Vorlesung. .net. und Apache Axis

WSDL Web-basierte Anwendungen WSDL WSDL. Eine Vertiefungsveranstaltung mit Schwerpunkt auf XML-Technologien. Web Services Description Language

3-schichtige Informationssystem-Architektur

Seminar XML Technologien WSDL & WSFL

Workflow, Business Process Management, 4.Teil

Architektur von SOAP basierten Web Services

Norm 410 Security Token Service

WI/WE - WEB ENGINEERING

Übersicht. Projekt DB-basierte, mobile Systeme. Übersicht. Was sind Web Services? Web Service - Kompakt. Warum das Rad neu erfinden?!

Web Services: Inhalt

Web Services in der Bioinformatik

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

SOAP und WSDL in der Praxis. Wie wird WSDL verwendet? Lernziele. Wie wird WSDL verwendet? Wie wird WSDL verwendet? Web-Dienste: Die Vision

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

Thema: Web Services. Was ist ein Web Service?

Inhalt. ! Einführung. ! Model/Architektur und Protokoll-Stack. ! Begriffe XML-RPC, SOAP, WSDL und UDDI. ! Web Services Ablauf (Anhand eines Beispiels)

VS11 Slide 1. Verteilte Systeme. Vorlesung 11 Sebastian Iwanowski FH Wedel

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

SOAP. SOAP: Envelope

GeoShop SOAP Benutzerhandbuch

PHP 4 Grundlagen und Profiwissen

Netzprogrammierung Web-Dienste

Dienstorientierte Integration und Web Services

SOA, Webservices und SOAP für Schnelleinsteiger

Hinweise der MTS-K zur Nutzung des MDM und zur Meldung von Grund- und Preisdaten sowie Beschwerden (Stand: 28. Juni 2013)

Norm 410 Security Token Service

INFORMATIONSINTEGRATION UND WEBPORTALE

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Innovator 11 excellence. WSDL importieren und exportieren. Joachim Back. HowTo.

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

SOA Guidelines. Service Contract Design mit der Web Service Description Language (WSDL) Guido Schmutz Technology Manager

SOA mit.net: Vom Geschäftsprozess zur Lösung

Seminararbeit Programmierung verteilter Systeme Spezifikation von Webservices (WSDL/WSFL)

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

museumvok-ws: Schnittstellen-Definition

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

FuE-Bereich IuK-Systeme im Gesundheitswesen

Kapitel 6: Workflows im Internet

10.1 Remote Method Invocation (RMI)

Web Services. Block Web Services

XML-RPC, SOAP und Web Services. Jörn Clausen

Web Services. Eine kleine Einführung. Werner Gaulke

Web-Konzepte für das Internet der Dinge Ein Überblick

Definition Web Service

PS Distributed Systems

Neue Produktivität durch Web Services RPC, WSDL und SOAP

Java und XML 2. Java und XML

Auszug aus JAX-WS Folien

Markus Schulz Seminar: XML für Fortgeschrittene

<Insert Picture Here> Einführung in SOA

Praktikum Web-Technologien

5. Übung zur Vorlesung Service-orientierte Architekturen

SOAP und REST Ein Vergleich von service- und ressourcenorientierten Architekturen und deren Einsatz im VMA-Projekt

Norm 225 Service Definition mit WSDL

XML und SOAP Einführung und Grundlagen

WebServices beschreiben

Web Service Entwicklung mit Java. Sven Lindow

Die nächste WSDL-Generation. Mario Jeckle DaimlerChrysler Forschungszentrum Ulm

Message Oriented Middleware am Beispiel von XMLBlaster

Web-Services Grundlagen

Kapitel WT:VI (Fortsetzung)

XML-RPC & SOAP. Sven Heß & Fabio Caprera Systemprogrammierung SS 08

Service-Orientierte Architekturen

Anwendungsprotokolle: HTTP, POP, SMTP

Asynchrone Webservices mit Axis 1.x in Java

Transkript:

Heutige Vorlesung WSDL Prinzipieller Aufbau von WSDL-Beschreibungen Beschreibung von Protokoll-Bindungen in WSDL Vor- und Nachteile von WSDL Lernziel Google-WSDL lesen und erweitern können Klaus Schild, 2004 1 Klaus Schild, 2004 2 Wozu WSDL? Wie wird WSDL verwendet? Nachfrager Dienst abrufen Schnittstelle Anbieter Dienst publizieren Nachfrager Dienst abrufen Schnittstelle Anbieter Dienst publizieren Client möchte bestimmten Web-Dienst abrufen Client benötigt hierfür Beschreibung der Schnittstelle: Struktur des Aufrufes: Name, Eingangsparameter, Ergebnis Protokoll und Adresse ähnlich wie Java-IDL, jedoch unabhängig von Plattformen, Programmiersprachen und Protokollen aus WSDL-Beschreibung können automatisch Stubs generiert werden Stubs abstrahieren von WSDL, SOAP und Protokoll erleichtert Einbindung des Dienstes zur Entwicklungszeit erheblich theoretisch damit auch dynamische Einbindung zur Laufzeit möglich Klaus Schild, 2004 3 Klaus Schild, 2004 4 Web Services Description Language Abstrakte vs. konkrete Syntax Web-Dienst en dogooglesearch SOAP-Anfrage SOAP-Antwort Web-Adresse http://api.google.com/search /beta2 XML-Standard beschreibt Netzwerkdienste als Kommunikationsendpunkte (Ports), die bestimmte Nachrichten austauschen nicht auf SOAP-Nachrichten beschränkt aktuelle Version 1.1 (2001) kein offizieller W3C-Standard, sondern W3C-Note von IBM/Microsoft) Klaus Schild, 2004 5 abstrakte Syntax Anfrage Antwort konkrete Syntax SOAP-Anfrage SOAP-Antwort abstrakte Syntax unabhängig von Nachrichtenformaten und Protokollen konkrete Syntax (Binding) Abbildung einer abstrakten Syntax auf konkrete Nachrichtenformate (wie SOAP) und Protokolle (wie http) verschiedene Realisierungen einer abstrakten Syntax möglich Klaus Schild, 2004 6

Abstrakte und konkrete Schnittstelle Port Web-Dienst abstrakte Schnittstelle Anfrage Antwort konkrete Schnittstelle SOAP-Anfrage SOAP-Antwort Web-Adresse abstrakte Schnittstelle (Port Type): Menge von abstrakten en konkrete Schnittstelle (Binding): Abbildung auf konkrete Protokolle und Nachrichtenformate Dienst kann verschiedene Realisierungen haben: z.b. SOAP/HTTP- und SOAP-SMTP-Bindung Web-Dienst abstrakte Schnittstelle Anfrage Antwort konkrete Schnittstelle SOAP-Anfrage SOAP-Antwort Web-Adresse Web-Dienst (Service): besteht aus mindestens einem Kommunikationsendpunkt (Port) Port = konkrete Schnittstelle + Web-Adresse Klaus Schild, 2004 7 Klaus Schild, 2004 8 Die WSDL-Beschreibung von Grundstruktur s PortTypes Bindings Ports dogooglesearch GoogleSearch Port SOAP/HTTP http:// Web-Adresse konkrete Manifestation in SOAP konkrete Manifestation in SOAP dogetcachedpage dospellingsuggestion SOAP/SMTP http:// mailto: abstrakte Syntax abstrakte Syntax Klaus Schild, 2004 9 Service Klaus Schild, 2004 10 XML-Syntax <?xml version="1.0"?> <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> Klaus Schild, 2004 11 XML-Syntax <?xml version="1.0"?> definitions: Wurzel-Element types: Definition von Datentyp (normalerweise mit XML-Schema) <types></types> porttype: abstrakte Schnittstelle, d.h. Menge <message name="dogooglesearch"></message> von en, die abstrakte Nachrichten <message name="dogooglesearchresponse"></message> austauschen <porttype name="googlesearchport"></porttype> message: abstrakte Nachricht binding: Abbildung eines porttypes auf konkrete Protokolle und Nachrichtenformate <service name="googlesearchservice"></service> service: Menge von ports (jeweils binding + Web-Adresse) Klaus Schild, 2004 12

Dokumentwurzel <?xml version="1.0"?>.. Wurzel-Element immer definitions aus dem Namensraum für WSD (kein W3C-Namensraum) WSDL-Beschreibung kann Namen haben. WSDL-Beschreibung kann eigenen Ziel-Namensraum definieren. Datentypen <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> Klaus Schild, 2004 13 Klaus Schild, 2004 14 Datentypen Datentyp für -Suchresultat <types> <schema xmlns="http://www.w3.org/2001/xmlschema" > </schema> </types> Datentypen, die beim Austausch von Nachrichten relevant sind Verwendung von XML-Schema empfohlen, jedes andere Typsystem aber auch erlaubt Beachte: XML-Schema kann auch verwendet werden, wenn die Nachrichten nicht in XML übertragen werden. Klaus Schild, 2004 15 <types> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:typens="urn:googlesearch" > <xsd:complextype name="googlesearchresult"> <xsd:all> <xsd:element name="estimatedtotalresultscount" type="xsd:int"/> <xsd:element name="resultelements" type="typens:resultelementarray"/> <xsd:element name="searchquery" type="xsd:string"/> <xsd:element name="startindex" type="xsd:int"/> <xsd:element name="endindex" type="xsd:int"/> </xsd:all> komplettes XML-Schema </xsd:complextype> </schema> Ziel-Namensraum (normalerweise identisch </types> mit Ziel-Namensraum von WSDL) Klaus Schild, 2004 16 Abstrakte Nachrichten <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> abstrakte Nachrichten, vom Web- Dienst empfangen oder gesendet Abstrakte Nachrichten <message name="dogooglesearchresponse"> <part name="return" type="typens:googlesearchresult"/> </message> definiert abstrakte Nachricht mit Namen (Referenz) Definitionen werden in porttype oder binding verwendet können verschiedene logische Bestandteile (part) haben, z.b.: Parameter eines entfernten Prozeduraufrufs jedes dieser Bestandteile hat ebenfalls einen Namen Reihenfolge der logischen Bestandteile unerheblich Klaus Schild, 2004 17 Klaus Schild, 2004 18

Nachrichten mit strukturiertem Inhalt zwei unterschiedliche Modellierungen 1. nur ein Bestandteil (part), diesem wird komplexer Datentyp zugeordnet: <message name="dogooglesearchresponse"> <part name="return" type="typens:complextype"/> </message> typens:complextype könnte z.b. 2 Parameter enthalten 2. mehre Bestandteile (parts), denen jeweils ein Element aus types zugeordnet wird: <message name="dogooglesearchresponse"> <part name="param1" element="typens:param1"/> <part name="param2" element="typens:param2"/> </message> Klaus Schild, 2004 19 Wie abstrakt ist eine abstrakte Nachricht? message beschreibt abstrakte Syntax Konkrete Schnittstelle (binding) bildet abstrakte Syntax auf bestimmte Protokolle und Nachrichtenformate ab. Dennoch kann abstrakte Nachricht einer konkreten Realisierung (binding) sehr ähnlich sein. Wie abstrakt eine abstrakte Syntax ist, zeigt also erst die konkrete Schnittstelle (binding). Klaus Schild, 2004 20 Abstrakte Schnittstelle <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> Abstrakte Schnittstelle <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"> <input message="typens:dogooglesearch"/> <output message="typens:dogooglesearchresponse"/> </porttype> definiert abstrakte Schnittstelle als Menge von abstrakten en (operations) Definition wird in binding verwendet Klaus Schild, 2004 21 Klaus Schild, 2004 22 Abstrakte Schnittstelle Beispiel <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"> <input message="typens:dogooglesearch"/> <output message="typens:dogooglesearchresponse"/> </porttype> operation: definiert einfaches Interaktionsmuster mit Eingangs- und Ausgangs-Nachrichten. Definition wird in binding verwendet verwendet keine Datentypen, sondern Nachrichten Klaus Schild, 2004 23 GoogleSearchPort = 3 en GoogleSearchPort = 3 en typens:dogooglesearch = message typens:dogooglesearch = message typens:googlesearchresponse = message typens:googlesearchresponse = message Klaus Schild, 2004 24

Mögliche Interaktionsmuster Abstrakte Interaktionsmuster <operation name=""> <input message=""/> <operation name=""> <input message=""/> <output message=""/> <operation name=""> <output message=""/> <operation name=""> <output message=""/> <input message=""/> Einweg (one way, fire and forget) Anfrage-Antwort (request-response) Benachrichtigung (notification) Benachrichtigung-Antwort (notification-response) Anfrage-Antwort-Muster müssen nicht mit einer Netzwerkkommunikation (z.b. HTTP request/response) realisiert werden. auch Realisierung z.b. mit zwei unabhängigen Kommunikationen (z.b. E-Mails) möglich entfernter Prozeduraufruf daher auch mit SMTP realisierbar Realisierung wird erst in der konkreten Schnittstelle (binding) festgelegt Klaus Schild, 2004 25 Klaus Schild, 2004 26 Komplexe Interaktionsmuster Registrierung zum Börsenticker Bestätigung der Registrierung aktueller Börsenkurs (Benachrichtigung) Entfernte Prozeduraufrufe <operation name="dogooglesearch" parameterorder="key q start start "> "> <input message="typens:dogooglesearch"/> <output message="typens:dogooglesearchresponse"/> <operation name=""> <input message=""/> <output message=""/> <output message=""/> Client Server In In WSDL nicht erlaubt! Reihenfolge der Bestandteile (parts) unerheblich bei entfernten Prozeduraufrufen Reihenfolge der Input- Parameter (parts) aber häufig wichtig Reihenfolge kann mit parameterorder festgelegt werden. zusätzliche Konvention: In/Out-Parameter erscheinen sowohl in input- als auch in output-nachricht. Klaus Schild, 2004 27 Klaus Schild, 2004 28 Fehlermeldungen Anfrage-Antwort <operation name=""> <input message=""/> <output message=""/> <fault message=""/> Client Server Benachrichtigung-Antwort <operation name=""> <output message=""/> <input message=""/> <fault message=""/> Client Server Statt Antwort kann auch Fehler auf Anwendungsebene gemeldet werden. nur eine Fehlermeldung: kann aber komplexen Datentyp mit unterschiedlichen Fehlertypen (xsd:choice) haben. Konkrete Schnittstelle <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> Klaus Schild, 2004 29 Klaus Schild, 2004 30

Konkrete Schnittstelle Konkrete Schnittstelle abstrakte Syntax Anfrage Antwort konkrete Syntax SOAP-Anfrage SOAP-Antwort konkrete Schnittstelle (Binding): Abbildung einer abstrakten Schnittstelle (porttype) auf konkrete Nachrichtenformate und Protokolle jede abstrakte des PortType wird abgebildet für ein PortType verschiedene Abbildungen (Bindings) möglich definiert konkrete Schnittstelle Definition wird in in service benutzt type: die abgebildete abstrakte Schnittstelle (porttype) für mehrere binding-elemente für eine abstrakte Schnittstelle erlaubt Klaus Schild, 2004 31 Klaus Schild, 2004 32 e Abbildung mit sog. en kodiert Informationen über die Abbildung auf allen Ebenen: Binding selbst und Input- und Output-Nachricht Fehlermeldung e engl. extensibility elements Platzhalter für spezielle Bindings also Platzhalter in der WSDL-Grammatik für entsprechende Erweiterungen WSDL 1.1 definiert drei Bindings: SOAP-Binding werden gleich vorgestellt, vorher noch noch letzten Teil Teil HTTP-Binding einer WSDL-Beschreibung MIME-Binding Klaus Schild, 2004 33 Klaus Schild, 2004 34 Web-Dienst (Service) <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> Web-Dienst (Service) <service name="googlesearchservice"> <port name="googlesearchport" binding="typens:googlesearchbinding"> (Web-Adresse) </port> </service> Web-Dienst = Menge von Kommunikationsendpunkten (Ports) mehrere service-elemente erlaubt, falls unterschiedliche Web-Dienste angeboten werden, z.b.: GoogleSearchService und GoogleClassificationService Klaus Schild, 2004 35 Klaus Schild, 2004 36

Kommunikationsendpunkt <port name="googlesearchport" binding="typens:googlesearchbinding"> (Web-Adresse) </port> definiert einen benannten Kommunikationsendpunkt: Binding + genau eine Web-Adresse Web-Adresse mit einem spezifiziert, z.b.: <port name="googlesearchport" binding="typens:googlesearchbinding"> <soap:address location="http://api.google.com/search/beta2"/> </port> Welche Ports bilden einen Service? <service name="googlesearchservice"> <port></port> <port...></port> </service> <service name="googleclassificationservice"> <port></port> </service> Ports eines Web-Dienstes (service) kommunizieren nicht untereinander Ports mit derselben abstrakten Schnittstelle, aber versch. Bindings oder Web-Adressen: semantisch äquivalente Alternativen Klaus Schild, 2004 37 Klaus Schild, 2004 38 Grundstruktur s PortTypes Bindings Ports dogooglesearch dogetcachedpage GoogleSearch Port SOAP/HTTP http:// http:// SOAP-Binding SOAP/SMTP dospellingsuggestion mailto: Service Klaus Schild, 2004 39 Klaus Schild, 2004 40 SOAP-Bindung von WSDL <types></types> <message name="dogooglesearch"></message> <message name="dogooglesearchresponse"></message> <porttype name="googlesearchport"></porttype> <service name="googlesearchservice"></service> Klaus Schild, 2004 41 SOAP-Bindung Bindung: : e soap:binding soap:operation e soap:body und undsoap:header soap:body und undsoap:header <fault> soap:fault </fault> e beschreiben Abbildung auf SOAP-Nachricht Beachte: WSDL 1.0 benutzt SOAP 1.1 Klaus Schild, 2004 42

soap:binding soap:binding soap:operation e soap:body und undsoap:header soap:body und undsoap:header <fault> soap:fault </fault> Klaus Schild, 2004 43 soap:binding <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> soap:binding: besagt, dass porttype mit SOAP realisiert wird transport: wie SOAP-Nachrichten übertragen werden Beachte: HTTP meint hier HTTP-POST auch möglich: transport="http://schemas.xmlsoap.org/soap/smtp" style: entfernte Prozeduraufrufe (rpc) oder Messaging (document) Klaus Schild, 2004 44 SOAP-Stile Stile style="rpc" <body> <procedure-name> <part-1><part-1> <part-n><part-n> </procedure-name> </body> style="document" <body> <part-1><part-1> <part-n><part-n> </body> legt Struktur des SOAP-Nachrichteninhalts (body) fest, darüber hinaus keine Bedeutung SOAP-Stil in soap:binding gilt für alle en, kann aber in jeder einzelnen überschrieben werden. soap:body und soap:header soap:binding soap:operation e soap:body und undsoap:header soap:body und undsoap:header <fault> soap:fault </fault> Klaus Schild, 2004 45 Klaus Schild, 2004 46 soap:body soap:body <soap:operation soapaction="urn:googlesearchaction"/> <soap:body use="literal"/> Komplette input-nachricht wird unverändert in in SOAP-Body übernommen. soap:body: Abbildung einer abstrakten input- oder output- Nachricht auf den SOAP-Nachrichteninhalt (body) use="literal": Abstrakte Nachricht wird unverändert übernommen Klaus Schild, 2004 47 <soap:body use="encoded" encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"/> Komplette input-nachricht wird kodiert in in den SOAP-Body übernommen. use="encoded": Abstrakte Nachricht wird mit Hilfe eines bestimmten Verfahrens (encodingstyle) kodiert (wie in SOAP). Google verwendet Kodierungsverfahren von SOAP, z.b. SOAP-Arrays für Suchresultate. Klaus Schild, 2004 48

soap:header <soap:operation soapaction="urn:googlesearchaction"/> <soap:body parts="q start" start" use="encoded" /> /> <soap:header parts="key maxresults filter filterrestrict " " use="literal"/> input-nachricht wird auf SOAP- Header und -Body verteilt. Teile der abstrakten Nachricht werden im SOAP- Briefkopf repräsentiert. Struktur von soap:header analog zu soap:body. soap:address <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <port name="googlesearchport" binding="typens:googlesearchbinding"> <soap:address location="http://api.google.com/search/beta2"/> </port> Jeder Kommunikationsendpunkt muss genau eine Web- Adresse (soap:address) haben. Beachte: Die Web-Adresse muss zum Transportprotokoll des SOAP-Bindings passen. Klaus Schild, 2004 49 Klaus Schild, 2004 50 SOAP über HTTP HTTP-Binding Bindung für SOAP über HTTP haben wir bereits gesehen: <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> hiermit wird SOAP über HTTP-POST-Schnittstelle realisiert es gibt aber auch Möglichkeit, eine HTTP-Schnittstelle zu definieren, die nicht SOAP verwendet Klaus Schild, 2004 51 Klaus Schild, 2004 52 HTTP-GET GET-Anfrage HTTP-GET-Anfrage kodiert alle Parameter des RPCs in der URL: GET GET /search/beta2/dogooglesearch?key=45675353&q=anfrage& HTTP/1.1 Host: api.google.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn Antwort als HTML-Dokument Klaus Schild, 2004 53 HTTP-GET GET-Binding ohne SOAP <service name="googlesearchservice"> <port name="googlesearchport2" binding="typens:googlesearchbinding2"> <http:address xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" location="http://api.google.com/search/beta2"/> </service> <binding name="googlesearchbinding2" <http:binding verb="get"/> <http:operation location="dogooglesearch"/> relative Adresse <http:urlencoded/> <mime:content part="docs" type="text/html"/> Browser-basiertes Google mit WSDL beschrieben Klaus Schild, 2004 54

Vorteile Bewertung + plattformunabhängiger XML-Standard + etabliert + Syntax der Schnittstelle kann genau festgelegt werden. + Unterschiedliche Realisierungen einer abstrakter Schnittstelle möglich z.b. SOAP über HTTP und SMTP Klaus Schild, 2004 55 Klaus Schild, 2004 56 Nachteile - verschiedene Protokoll-Bindungen (wie HTTP vs. SMTP) können unterschiedliche Semantik haben - keine explizite Unterscheidung zwischen synchron/asynchron - keine komplexen Interaktionsmuster - keine qualitativen Aspekten (quality of service) - keine Sicherheitsaspekte Wie geht es weiter? Prinzipieller Aufbau von WSDL-Beschreibungen Protokoll-Bindungen in WSDL Vor- und Nachteile von WSDL Google-WSDL lesen und erweitern können Heute 16:15 Tutorium Nächste Woche Wie wird WSDL verwendet? Anforderungen aus der Praxis Klaus Schild, 2004 57 Klaus Schild, 2004 58 soap:operation Anhang soap:binding soap:operation e soap:body und undsoap:header soap:body und undsoap:header <fault> soap:fault </fault> Klaus Schild, 2004 59 Klaus Schild, 2004 60

Klaus Schild, 2004 61 soap:operation <soap:operation soapaction="urn:googlesearchaction"/> soapaction: legt für den SOAPAction-Briefkopf in der HTTP-Anfrage fest style: SOAP-Standard-Stil kann für die überschrieben werden.