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



Ähnliche Dokumente
Web-basierte Anwendungen. Eine Vertiefungsveranstaltung mit Schwerpunkt auf XML-Technologien

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

Verteilte Systeme: Übung 4

Wiederholung: Beginn

3-schichtige Informationssystem-Architektur

... MathML XHTML RDF

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

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

Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz

Zustandsgebundene Webservices

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Java und XML 2. Java und XML

Elexis-BlueEvidence-Connector

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

Klausur Interoperabilität

Im Folgenden werden die jeweiligen Elemente erklärt. Im Anschluss folgt ein Beispieldatensatz in xml.

Workflow, Business Process Management, 4.Teil

AutoCAD Dienstprogramm zur Lizenzübertragung

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

ObjectBridge Java Edition

teamsync Kurzanleitung

Bewusstkaufen.at XML Produkt Importschnittstelle für Händler

Standard XPersonenstand - Version Verbindliche Handlungsanweisungen

Übung - Konfigurieren einer Windows 7-Firewall

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

OP-LOG

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

1 Mathematische Grundlagen

Informationsblatt Induktionsbeweis

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

WEBSEITEN ENTWICKELN MIT ASP.NET

Skript Pilotphase für Arbeitsgelegenheiten

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Norm 225 Service Definition mit WSDL

Primzahlen und RSA-Verschlüsselung

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

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

Installation der Demoversion vom M-Doc AutoSigner

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Installation OMNIKEY 3121 USB

STRATO Mail Einrichtung Mozilla Thunderbird

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Anbindung des eibport an das Internet

Informationen zur Verwendung von Visual Studio und cmake

Gemeinsam mit Book Industry Study Group, New York, und Book Industry Communication, London. ONIX for Books Supply Update Nachricht Überblick

Word 2010 Schnellbausteine

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Aufklappelemente anlegen

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

AutoTexte und AutoKorrektur unter Outlook verwenden

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Datenbanken Kapitel 2

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Arbeiten mit UMLed und Delphi

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

4.1 Wie bediene ich das Webportal?

Hyperlink-Erstellung in InDesign für

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Zulassung nach MID (Measurement Instruments Directive)

Grundlagen der Theoretischen Informatik, SoSe 2008

Ausschreibungsunterlagen mit der Funktion als Serien- versenden

Installationsanleitung für das KKL bzw. AGV4000 Interface

LTSpice Tutorial 2: Eigene Modelle und Symbole

Node Locked Lizenzierung für Solid Edge V19 bis ST3

Erstellen eigener HTML Seiten auf ewon

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Viele Bilder auf der FA-Homepage

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Abschluss Version 1.0

B12-TOUCH VERSION 3.5

Zählen von Objekten einer bestimmten Klasse

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Stift-Karussell in M-Plot einrichten

Adobe Encore Einfaches Erstellen einer DVD

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

C.M.I. Control and Monitoring Interface. Zusatzanleitung: Datentransfer mit CAN over Ethernet (COE) Version 1.08

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Produktskizze. 28. November 2005 Projektgruppe Syspect

Einführung in. Logische Schaltungen

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Einstellen der Makrosicherheit in Microsoft Word

Mediator 9 - Lernprogramm

Übung: Verwendung von Java-Threads

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

ASDI Benchmarking Projekt. Anleitung zum Datenexport

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Anleitung über den Umgang mit Schildern

Transkript:

Fachhochschule Wiesbaden - Fachhochschule Wiesbaden - 7363 - Web-basierte Anwendungen Eine Vertiefungsveranstaltung mit Schwerpunkt auf XML-Technologien Web Services Description Language 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 1 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 2 Warum eine Beschreibungssprache für Web Services? Dokumentation der Schnittstelle Systematischere, strukturierte Entwicklung und Pflege von Analogien: C-Headerdateien, IDL, reflection, type libraries Grundlage für Code-Generierung Entlastung der Client-Entwicklung Grundlage für flexiblen Einsatz Schnittstellenänderungen lassen sich z.t. automatisch einarbeiten Neue lassen sich schnell und leicht verwenden Zusammenspiel mit UDDI: Finden, konfigurieren, nutzen Entwicklung von IBM: NASSL, 2000 Network Accessibility Service Specification Language Verwendete XML zur Beschreibung von Interfaces Verwendet XML Schema zur Beschreibung von Datentypen Microsoft: SCL, 2000 Service Contract Language Verwendete XML zur Beschreibung von Interfaces Verwendet XDR (Microsoft's "XML Data Reduced") zur Beschreibung von Datentypen Nachfolger: SDL, zusammen mit Visual Studio.NET Problem dabei: Interoperabilität auf der Beschreibungsebene?? Lösung: 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 3 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 4

Entwicklung von Microsoft, IBM, Ariba: Erste -Version Nutzung von XML Schema (bzw. Vorläufer), SOAP, MIME 1.1, 15. März 2001 W3C Note: http://www.w3.org/tr/wsdl 2.0 Status: Draft Zuletzt aktualisiert: März 2004 Neu: Vererbungskonzept, per Attribut "extends" Verändert: Begriff / Element "port" wird ersetzt durch "interface" 1.1 Dokumentation: http://www.w3.org/tr/wsdl Namespace: http://schemas.xmlsoap.org/wsdl/ Ansatz: Beschreibung von als Sammlung von Netzwerk-Endpunkten (ports / interfaces) Trennung der abstrakten Interface- und Nachrichtentyp-Beschreibung von der konkreten Implementierung (im Sinne von bindings, encoding, einzelne Nachrichten) XML-Dokumententyp definitions als Grundlage Ausgiebiger Gebrauch von XML Schema! Teile des -Schemas sind von "Schema" übernommen, etwa die Elemente "include", "import" & das Attribut "targetnamespace" 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 5 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 6 : Anwendungsszenarien Download Anwender Einfache Benutzerschnittstelle, etwa CLI -Datei Codegenerator Veröffentlichung Anwendung 2.0 Dokumentation: http://www.w3.org/tr/wsdl20 (vorl.)namespace: http://www.w3.org/2004/03/wsdl Status: Draft, zuletzt aktualisiert: März 2004 Geändert: Port --> Interface Neu: Vererbungskonzept! Attribut "extends" in Element "interface" Design Entwickler -Datei Codegenerator Empfehlung Noch zu früh für den praktischen Einsatz, aber: Entwicklung beobachten! Skelett-Code, zu Ende zu entwickeln 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 7 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 8

Fachhochschule Wiesbaden - Nachtrag zu SOAP: Operationstypen Je nach Anzahl und Reihenfolge von input-, output-, und fault- Elementen, die zwischen zwei SOAP-Knoten ausgetauscht werden, unterscheidet man folgende 4 abstrakte Operationstypen: One-way sendet Request-response sendet, antwortet Solicit-response agiert, reagiert Notification agiert : Eine beispiel-orientierte Einführung Die -Datei vom Babelfish-Service mit Auszügen aus dem Google-API In der Praxis dominieren die Typen "One-way" und "Requestresponse". (Publikumsfrage: Warum wohl?) 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 9 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 10 Lernen von am Beispiel "Babelfish-Service" SOAP 1.1, 1.1, RPC, HTTP binding Input: Zwei Strings Quell- und Zielsprache, ISO-codiert, etwa: "en_de" String mit zu übersetzendem Text, max. 5k Zeichen Output (Rückgabewert): Ein String Der übersetzte Text "Google-Service" Analog zu Babelfish, aber mit komplexeren Datentypen Vorgehen Analyse der -Dateien dieser Dienste Erstellung einer Babelfish Client-Anwendung Test Die -Datei zum "Babelfish" Das Dokumentenelement Wenig Bemerkenswertes, nur viele Namensraum-Deklarationen In rot: Default-Namensraum (-Namensraum) <?xml version="1.0"?> <definitions name="babelfishservice" xmlns:tns="http://www.xmethods.net/sd/babelfishservice.wsdl" targetnamespace= "http://www.xmethods.net/sd/babelfishservice.wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <!-- Hier der eigentliche Inhalt --> </definitions> 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 11 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 12

Das "service"-element <service name="babelfishservice"> <documentation>translates text of up to 5k in length, between a variety of languages.</documentation> <port name="babelfishport" binding="tns:babelfishbinding"> <soap:address location= "http://services.xmethods.net:80/perl/soaplite.cgi"/> </port> </service> Das "service"-element Der Dienst erhält einen Namen Ihm wird ein (zunächst abstraktes) Interface (Port) zugewiesen Das "binding" dazu erfolgt durch Angabe eines Binding-Typs (zunächst nur ein Name) durch Angabe einer konkreten Adresse (hier: ein URL) Das Unter-Element "documentation" Universelles Unter-Element - nutzen Sie es! Es wirkt als Container, nimmt also neben char data auch beliebige (eigene) Unter-Elemente sowie Attribute auf. 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 13 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 14 Das "binding"-element <binding name="babelfishbinding" type="tns:babelfishporttype"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="babelfish"> <soap:operation soapaction= "urn:xmethodsbabelfish#babelfish"/> <input><soap:body use="encoded" namespace= "urn:xmethodsbabelfish" encodingstyle= "http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output><soap:body use="encoded" namespace="urn:xmethodsbabelfish" encodingstyle= "http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> Das "binding"-element Das Binding erhält einen Namen Ihm wird ein (noch zu spezifizierender) Interfacetyp (Porttyp) zugewiesen Einzelheiten beschreiben Unter-Elemente Das Unter-Element "soap:binding" Hier werden konkret der Stil "rpc" und die Transportmethode (HTTP, erkennbar an einem reservierten Namensraum-URL) festgelegt. Das (hier einzige) Unter-Element "operation" Hier wird beschrieben, nach welchen Regeln die "Body"-Elemente der SOAP-Nachrichten aufgebaut sind. Man erkennt z.b., dass SOAP encoding gemäß SOAP 1.1 verwendet wird. 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 15 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 16

Das "porttype"-element <porttype name="babelfishporttype"> <operation name="babelfish"> <input message="tns:babelfishrequest" /> <output message="tns:babelfishresponse" /> </operation> </porttype> Das "porttype"-element Hier wird nun der Interfacetyp näher beschrieben Ihm werden evtl. mehrere Operationen zugewiesen. Das Unter-Element "operation" Wir kennen es schon als Unterelement von "binding" Im vorliegenden Kontext benennen seine Unterelemente den eigentlichen Aufbau der Body-Inhalte (hier: sowohl input als auch output, da wir ein RPC-Szenario verwenden) Die Inhalte der Attribute "message" sind Elementnamen des Namensraums, der den für diesen Service verwendeten Elementen zugewiesen wurde. 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 17 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 18 Das "message"-element <message name="babelfishrequest"> <part name="translationmode" type="xsd:string"/> <part name="sourcedata" type="xsd:string"/> </message> <message name="babelfishresponse"> <part name="return" type="xsd:string"/> </message> Das "message"-element Bei SOAP-RPC existiert nur ein Unter-Element von "Body" und dies trägt den Namen der Methode/Prozedur. Das Element "message" beschreibt genau dieses Unter-Element von "Body", sowohl im request- als auch im response-fall. Das Unter-Element "part" Unter-Elemente von SOAP-RPC Methodenelementen sind bekanntlich die Teile eines struct. Jedes solche Teil wird hier als "part" beschrieben, mit Namen und Datentyp. Interessant ist der Datentyp: In einfachen Fällen ist er einer der XML Schema-Datentypen, aber auch komplexe Datentypen aus eigenen Schemata (s.u.) werden hier oftmals verwendet. 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 19 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 20

Fachhochschule Wiesbaden - Das "types"-element : Weitere Elemente types: Komplexe Datentypen (Auszüge aus der -Datei von Google) import & include <types> <xsd:schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="urn:googlesearch"> <xsd:complextype name="googlesearchresult"> <xsd:all> <xsd:element name="documentfiltering" type="xsd:boolean"/> <xsd:element name="searchcomments" type="xsd:string"/> <xsd:element name="estimatedtotalresultscount" type="xsd:int"/> <xsd:element name="estimateisexact" type="xsd:boolean"/> <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:element name="searchtips" type="xsd:string"/> <xsd:element name="directorycategories" type="typens:directorycategoryarray"/> <xsd:element name="searchtime" type="xsd:double"/> </xsd:all> </xsd:complextype> <!-- etc. --> 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 21 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 22 Das "types"-element <xsd:complextype name="resultelement"> <xsd:all> <xsd:element name="summary" type="xsd:string"/> <xsd:element name="url" type="xsd:string"/> <xsd:element name="snippet" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="cachedsize" type="xsd:string"/> <xsd:element name="relatedinformationpresent" type="xsd:boolean"/> <xsd:element name="hostname" type="xsd:string"/> <xsd:element name="directorycategory" type="typens:directorycategory"/> <xsd:element name="directorytitle" type="xsd:string"/> </xsd:all> </xsd:complextype> <!-- Fortsetzung --> 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 23 Das"types"-Element <xsd:complextype name="resultelementarray"> <xsd:complexcontent> <xsd:restriction base="soapenc:array"> <xsd:attribute ref="soapenc:arraytype" wsdl:arraytype="typens:resultelement[]"/> </xsd:restriction> </xsd:complexcontent> </xsd:complextype> <!-- usw., schließlich: --> </xsd:schema> </types> 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 24

Das "types"-element Dies ist eine Hülle für Schemadokumente Entweder schreibt man gleich ein (kleines) Schemadokument hier hinein, oder man importiert sie. Beispiele finden Sie in der -Datei von Google! Fachhochschule Wiesbaden - : Test & Demo Die Elemente "include" und "import" Sie gestatten (analog zu Schema) die Verteilung eines Schema- Dokuments auf mehrere Dateien bzw. Ressourcen. Verwenden Sie "import", um -Bestandteile aus anderen Namensräumen einzubeziehen. "include" (nur 2.0!) wirkt dagegen wie das direkte Einbeziehen eines Textblocks. 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 25 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 26 Test: Erzeugung einer Babelfish-Clientanwendung Werkzeug / Entwicklungsumgebung: Ruby, SOAP4R 1.5.2 Code-Generator: wsdl2ruby.rb aus dem SOAP4R-Paket Vorgehen: Dateien generieren Client-Datei mit einem minimalen CLI (command line interface) ausstatten Ggf. Umgebungsvariablen setzen, hier: $ export SOAP_USE_PROXY=on $ export HTTP_PROXY=$http_proxy On-line Demo auf einem der Linuxcluster-Rechner! 10.06.2004 H. Werntges, FB Informatik, FH Wiesbaden 27