PS Distributed Systems



Ähnliche Dokumente
Web-Services Grundlagen

Verteilte Systeme: Übung 4

Workflow, Business Process Management, 4.Teil

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

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

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Wiederholung: Beginn

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

Implementierung von Web Services: Teil I: Einleitung / SOAP

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

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

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Java und XML 2. Java und XML

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

Zustandsgebundene Webservices

XML Schema vs. Relax NG

WebServices Zwischen Buzzword und Nutzen

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

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

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

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

XML DTD und Schema von Thomas Mangold

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

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

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

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

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

Auszug aus JAX-WS Folien

Kapitel 5 Web-Services

Java Web Services Metadata JSR-181

XML und SOAP Einführung und Grundlagen

5. Übung zur Vorlesung Service-orientierte Architekturen

3-schichtige Informationssystem-Architektur

E-Services mit der Web-Service-Architektur

SOAP. SOAP: Envelope

VVA Webservice Online Lieferbarkeits-Abfrage

Software Reuse Sommer 2004

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

Thema: Web Services. Was ist ein Web Service?

Norm 225 Service Definition mit WSDL

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

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

CORBA. Systemprogrammierung WS

Affiliate SOAP-Schnittstelle

Containerformat Spezifikation

Java Web Services. Seminarunterlage. Version 4.03 vom

DOKUMENTATION PASY. Patientendaten verwalten

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

Webservices Ein Vortrag von:

Containerformat Spezifikation

XML-Webservices & SOAP

Web-Services Grundlagen

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

Grundlagen der Web-Entwicklung INF3172

Ferhat Ayaz. XML mit C++

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

Architektur von SOAP basierten Web Services

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

Verteilte Anwendungen. Teil 10: UDDI und WSDL

Datenaustauschformate. Datenaustauschformate - FLV

Anwendungsprotokolle: HTTP, POP, SMTP

Seminar Internet Dienste. Webservices

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Norm 230 Übertragung von Dateien

Multimedia Technologie II

Standards und Standardisierungsgremien

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Markus Schulz Seminar: XML für Fortgeschrittene

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

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

Ursprung des Internets und WWW

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

OP-LOG

Enterprise Application Integration Erfahrungen aus der Praxis

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

H Webservices & Verteilte Anwendungen

Semantic Web Services

.NET-Networking 2 Windows Communication Foundation

Entwicklung eines interoperablen, multimedialen Teaching-File-Service: Web-Service unterstützter Wissenstransfer in der Radiologie

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

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

3 Konfiguration OfficeMaster 3.10 SNMP

On breaking SAML. Be Whoever You Want to Be. von David Foerster

Leitfaden zur Nutzung von binder CryptShare

Kontroll- und Mitteilungsverfahren

Werner Motzet und Tim Pistor präsentieren:

Transkript:

PS Distributed Systems Patricia Derler 02.04.2008

Schedule Mo Tue Wed Thu Fr Sat Sun 31.3. 6.4. 2.4. 7.4. 13.4. 9.4. 14.4. 20.4. 21.4. 27.4. 23.4. 28.4. 4.5. 5.5. 11.5. 7.5. 12.5. 18.5. 19.5. 25.5. 21.5. 26.5. 1.6. 2.6. 8.6. 4.6. 9.6. 15.6. 16.6. 22.6. 18.6. 23.6. 29.6.

Web Services Definition: A web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the web service in a manner prescribed by its definition, using XML-based messages conveyed by Internet protocols. (Web Services Architecture document, W3C)

Anwendungsgebiete Frei verfügbare Dienste Daten werden angeboten, damit sie in möglichst viele bestehende Services integriert werden können. Beispiele: Veranstaltungs-, Tourismus-, Wetterdaten. Gebührenpflichtige Dienste Zukauf von Ressourcen (Speicher, Rechenleistung,...). Zukauf von Daten: GIS-Daten. Enterprise Application Integration (EAI) Verteilung der Business-Logik auf mehrere Standorte. B2B Datenaustausch Ablöse bestehender Standards (EDIFACT,...)

Relevante Standards XML: extensiblemarkuplanguage Strukturierte Darstellung von Daten, Metasprache zur Definition von Sprachen, Anwendung: UDDI, WSDL, SOAP. XML-Schema Definition der Grammatik von XML-Sprachen. SOAP: Simple ObjectAccess Protocol Standardisierte Darstellung von Daten, Darstellung von Methodenaufrufen und Parametern. WSDL: Web Service Description Language Beschreibungssprache für Web-Services.

WS-I Basic Profile WS-I (= Web Services Interoperability Organization) Vereinigung von Anbietern und Benutzern von Web- Services-Plattformen: Microsoft, Sun, IBM, BEA, Aufgaben: Definition von Profilen, Erstellung von Bespielszenarien und code für Web-Services, Erstellung von Werkzeugen für Konformitätstests. WS-I Basic Profile 1.0, 1.1 Spezifikationen (WSDL, SOAP, ) sind sehr umfassend und oft nicht eindeutig. Basic Profile schränkt Spezifikationen ein. Ziel: Interoperabilität zwischen allen Herstellen.

XML Metasprache zur Definition anderer Sprachen XML-Sprachen beschreiben die Struktur von Dokumenten und Daten. <?xml version="1.0" encoding="utf-8"?> <person category="business"> <name>mustermann</name> <age>30</age> <address> <street>jakob-haringer-str. 2</street> <place>salzburg</place> <zip>5020</zip> </address> </person>

Namensräume Aufgabe: Gewährleistung der Eindeutigkeit von Tags und Attributen. Default-Namenraum: <mytag xmlns="uri"...> Deklaration eines Namenraums: <mytag xmlns:myns="uri"...> Verwendung eines Namenraums: <myns:tag>...</myns:tag> <person category="business" xmlns="http://mycompany/person" xmlns:addr="http://mycompany/address"> <name>mustermann</name> <age>30</age> <addr:address> <addr:street>jakob-jaringer-str. 2</addr:street> <addr:place>salzburg</addr:place> <addr:zip>5020</addr:zip> </addr:address> </person>

Eigenschaften und Verarbeitung Eigenschafen eines XML-Dokuments Wohlgeformtheit (well-formedness): Dokument entspricht den Regeln der XML-Spezifikation. Ein Wurzelelement Start- und Endtags Werte der einfachen Typen im korrekten Wertebereich Validität (validity). Dokumentstruktur entspricht einer vorgegebenen Beschreibung (DTD oder XML-Schema). Arten von Parsern: DOM: Parser generiert eine baumartige Repräsentation. SAX: Parser generiert bei Abarbeitung Ereignisse.

Beschreibung von XML-Dokumenten: DTD Möglichkeit 1: DocumentType Definition (DTD) <!ELEMENT person(name, age?, address+)> <!ELEMENT age(#pcdata)> <!ELEMENT name(#pcdata)> <!ELEMENT address(street, place?, zip)> <!ELEMENT place(#pcdata)> <!ELEMENT street(#pcdata)> <!ELEMENT zip(#pcdata)> <!ATTLIST person category CDATA #REQUIRED> <!DOCTYPE person SYSTEM "person.dtd"> <person category= business >... </person> Person.dtd Person.xml Nachteile: Es kann lediglich festgelegt werden, dass Elemente andere Elemente, Text oder nichts enthalten dürfen. Der Datentyp von Blättern kann nicht definiert werden.

Beschreibung von XML-Dokumenten: Schema XML-Schema: XML-Sprache zur Beschreibung von XML-Sprachen. (*.xsd) <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://mycompany/person" xmlns:tns="http://mycompany/person"> <element name="person" type="tns:persontype"/> <complextype name="persontype">... </complextype> <complextype name="addresstype">... </complextype> </schema>

XML-Schema: Typen Ein XML-Schema enthält die Definition von einfachen und komplexen Typen Einfache Typen: Definition eines Elements mit einem einfachen Typ: <element name="street" type="string"> Die XML-Schema definition des W3C definiert 44 Standardtypen ("built-intypes") string, short, int, long, double, float, date, time, unsignedint, decimal, base64binary,

Komplexe Typen: Sequenzen Komplexe Typen sind aus anderen (einfachen und komplexen) Typen zusammengesetzt. Sequenzen: Fixe Anordnung von Elementen mit verschiedenem Typ. Multiplizität der Elemente kann definiert werden. <complextype name="persontype"> <sequence> <element name="name" type="string"/> <element name="age" type="unsignedshort" minoccurs="0" maxoccurs="1"/> <element name="address" type="tns:addresstype" maxoccurs="unbounded"/> </sequence> </complextype>

Komplexe Typen: all-elemente/attribute All-Elemente: Anordnung von Elementen mit verschiedenem Typ, wobei Reihenfolge nicht vorgegeben wird. Multiplizität: Elemente können höchstens einmal vorkommen. <complextype name="addresstype"> <all> <element name="street" type="string"/> <element name="place" type="string" minoccurs="0"/> <element name="zip" type="unsignedshort"/> </all> </complextype> Attribute: <complextype name="persontype">... <attribute name="category" type="string" use="required"/> </complextype>

Vererbung Erweiterung (extension): Hinzufügen von Elementen zum Basistyp. <complextype name="studenttype"> <complexcontent> <extension base="persontype"> <element name="id" type="studentid"> </extension> </complexcontent> </complextype> Einschränkung (restriction): Modifikation bzw. Weglassen von Elementen des Basistyps. <simpletype name="zipcode"> <restriction base="int"> mininclusive value="1000" maxexclusive value="10000" </restriction> <simpletype>

Verbindung Schema/Schema-Instanz Durch globales Element wird Wurzelelement eines XML-Dokuments definiert. <element name="person" type="tns:persontype"/> <complextype name="persontype">...</complextype> xsi:schemalocation referenziert das Schema-Dokument im XML- Dokument. <pns:person category="business" xmlns:pns="http://mycompany/person" xmlns:xsi= ="http://www.w3.org/2001/xmlschema-instanc2" xsi:schemalocation="http://mycompany/person person.xsd"> <name>huber</name>... </pns:person>

Web Service Protocol Stack Auffinden UDDI Beschreibung Und noch viele mehr, z.b. WS-Policy, WS-Security, WS-Addressing, WS-Routing, WS-Coordination, WS-Transaction WSDL Messaging-Schicht SOAP Codierung der Nachrichten mit XML, damit Gesprächspartner die Nachricht lesen können Transport-Schicht z.b.: TCP/IP, HTTP, SMTP, RMI/IIOP,

SOAP: Simple Object Access Protocol Merkmale SOAP ist eine XML-Sprache mit einem XML-Schema. SOAP-Nachrichten werden über Transportprotokolle übertragen (tunneling): HTTP, SMTP, TCP/IP, SOAP ist sprach- und plattformunabhängig. SOAP ist unabhängig von Messaging-Protokoll: synchron/asynchron, unidirektional (one-way) bzw. bidirektional (request/response). SOAP ist das Basisprotokoll für Web-Services.

Struktur <?xml version="1.0" encoding="utf-8"?> <soap:envelop xmlns:soap="http://schemas.xmlsoap.org/soap/envelop/"> <soap:header>... </soap:header> Header (optional): Infos über die Nachricht Security-Tokens, Transaktions-Informationen, Routing-Anweisungen. <soap:body>... </soap:body> Body: Nachricht im XML-Format </soap:envelop>

Header MessagePath Initial Sender SOAP Intermediary SOAP Intermediary SOAP Rollenzuordnung durch das actor-attribut Ultimate Receiver Node 1 Node 2 Node 3 Node 4 <soap:header> <ns:mymessage soap:actor="http://myrole" soap:mustunderstand="1">... </ns:mymessage> </soap:header> "Identifiziert" sich ein Knoten mit einer bestimmten Rolle, muss er die Nachricht verarbeiten. Zwischenknoten dürfen den Header verändern (Elemente löschen), aber nicht den Body. Anwendungsbeispiel: prüfen von digitalen Signaturen

Body wohl-geformtes XML-Dokument enthält Daten oder Parameter eines entfernten Methodenaufrufs. 4 Nachrichten-Modi: messaging style Document RPC Encoding Literal Document/Literal RPC/Literal Encoded Document/Encoded RPC/Encoded

Nachrichtenart Document/Literal: Zur Übertragung von Daten. Body enthält ein Fragment eines XML-Dokuments. <soap:body> <ns:person> <ns:name>huber</ns:name>... </ns:person> </soap:body> RPC/Literal: Zur Darstellung entfernter Methodenaufrufe Body enthält Methodennamen und Methodenparameter bzw. rückgabewerte und evtl. Fehlermeldungen <soap:body> <ns:getage> <ns:name>huber</ns:name> </ns:getage> </soap:body> <soap:body> <ns:getageresponse> <result>29</result> </ns:getage> </soap:body>

Nachrichtenart RPC/Encoded und Document/Encoded Darstellung entfernter Methodenaufrufe Abbildung von Datentypen auf XML-Schema. Ermöglicht Repräsentierung von Objektgraphen. Interoperabilitätsprobleme wegen vielfältiger Darstellungsmöglichkeiten; nicht in WS-I Basic Profile enthalten <soap:body> <ns:getgrades soap:encodingstyle=" /soap/encoding"> <ns:id xsi:type="xsd:string>mustermann</ns:id> </ns:getgrades> </soap:body> <soap:body xmlns:enc=" /soap/encoding"> <ns:getgradesresponse soap:encodingstyle=" /soap/encoding"> <enc:array enc:arraytype="xsd:short[2]"> <enc:short>1</enc:short> <enc:short>2</enc:short> </enc:array> </ns:getgradesresponse> </soap:body>

SOAP Faults Fehler-Nachrichten (soapfaults) werden an den Vorgängerknoten geschickt. Fehlercodes: soap:client: Falsche Parameter. soap:server: Fehler auf Serverseite. soap:mustunderstand: Unbekanntes obligatorisches Header-Element. soap:versionmismatch: Falsche SOAP-Version. <soap:body> <soap:fault> <faultcode>soap:client</faultcode> <faultstring>invalid ID</faultString> <faultactor>http://myactor</faultactor> <detail>xml document fragment</detail> </soap:fault> </soap:body>

Transportprotokoll: SOAP über HTTP SOAP ist unabhängig vom Transportprotokoll Am häufigsten wird aber HTTP verwendet Vorteil: Selten Probleme mit Firewalls POST /URLHTTP/1.1 Host: host-address Content-Type: text/xml Content-Length: nnn SOAPAction: "URL/getAge <?xml version="1.0 > <soap:envelop> <soap:body> <ns:getage> <ns:name>muster</ns:name> </ns:getage> </soap:body> </soap:envelop> HTTP-Request HTTP/1.1 200 OK Content-Type: text/xml Content-Length: nnn <?xml version="1.0 > <soap:envelop> <soap:body> <ns:getageresponse> <result>30</result> </ns:getage> </soap:body> </soap:envelop> HTTP-Response

WSDL Ein WSDL-Dokument definiert für ein Web-Service: das Interface (Methoden und Parameter), das Nachrichten-Format (Document/Literal, RPC/Literal, ), das zu verwendende Transportprotokoll (HTTP, SMTP, TCP/IP, ), die Adresse (URL). Anwendung: Generierung von Tie- (Skeleton-)/Stub-Code: WSDL Client Code Stub Runtime WSDL-Compiler SOAP Service Implementation Skeleton (Tie) Runtime

WSDL <definitions name= MyWebService targetnamespace= http://mycompany/myws xmlns:tns= http://mycompany/myws xmlns= http://schmas.xmlsoap.org/wsdl > <types> </types> <message> </message> <porttype> </porttype> <binding> </binding> <service> </service> Abstrakter Teil - verwendet für die Interface-Beschreibung Konkreter Teil - enthält Deployment-Informationen </definitions>

WSDL: types Definition von benutzerdefinierten einfachen und komplexen Typen. Typen werden für die Definition von Nachrichten verwendet <types> <xsd:schema targetnamespace= http://mycompany/myws > <xsd:complextype name="arrayofstring"> <xsd:sequence> <xsd:element name="string type= xsd:string" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> </xsd:schema> </types>

WSDL: message Inhalt einer SOAP-Nachricht Für jede eingehende und jede ausgehende Nachricht wird eine message-element <message name="getgradesrequest"> <part name="studentid" type="xsd:string"/> <part name="year" type="xsd:int"/> </message> <message name="getgradesresponse"> <part name="grades" type="tns:arrayofint"/> </message>

WSDL: porttype Interface eines Web-Services = Folge von Operationen (operation) Jede Operation besteht aus einer ausgehenden Nachricht, einer eingehenden Nachricht (optional) und einer Fehlernachricht (optional): <porttypename="studentport"> <operation> <input name="id" message="tns:getgradesrequest"/> <output name="result" message="tns:getgradesresponse"/> <fault name="invalidparams" message="tns:invalidparams"/> </operation> </porttype>

WSDL: binding Binding definiert, wie die Interface-Methoden und -Parameter auf SOAP abgebildet und übertragen werden: Nachrichtenart (style): RPC oder document, Darstellungsform (encoding): literal oder encoded, Transportprotokoll: HTTP, SMTP, <binding name="student_binding" type="tns:student"> <soapbind:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getgrades"> <soapbind:operation soapaction="http://.../get"/> <input name="getgradesrequest"> <soapbind:body use="encoded" namespace=".../myws"/> </input> <outputname="getgradesresponse">... </output> </operation> </binding>

WSDL: service Jedem service-element können ein oder mehrere Ports (port) zugeordnet sein. Ein Port ordnet einer Bindung (binding) eine Internet-Adresse zu. <service name= StudentService"> <port name= StudentPort" binding="tns:service_binding"> <soapbind:address location="http://.../service"/> </port> </service>

References W3C, The World Wide Web Consortium, http://www.w3.org/ J. Heinzelreiter, Web Services, http://staff.fhhagenberg.at//jheinzel/prg5/docs/web-services-grundlagen.pdf