Einführung in SOAP. Seminar E-Services. von Christoph Kurek

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

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

Web Services Integration heterogener Systemlandschaften. Prof. Dr. Gregor Engels Fabian Christ 08. Juni 2010

Web Services Soap. Vladyslav Kutsenko Seminar Web services Vortrag zum Thema Soap

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

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

Wiederholung: Beginn

Grundlagen der Web-Entwicklung INF3172

Java Web Services. Seminarunterlage. Version 4.03 vom

Software Reuse Sommer 2004

Web Services. Standards und Realisierung in Java

SOAP Simple Object Access Protocol

Verteilte Systeme: Übung 4

SOAP. SOAP: Envelope

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

WebServices: Kommunikation

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

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

FuE-Bereich IuK-Systeme im Gesundheitswesen

SOAP Simple Object Access Protocol. Dr. Reinhard Riedl Universität Zürich/Universität Rostock

Java Web Services mit

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

Java Web Services. Seminarunterlage. Version 4.02 vom

Securing SOAP e-services

Java und XML 2. Java und XML

glite eine Grid Distribution der EGEE GRID Seminar am Fakultät für Physik Steen Klemer (Fakultät für Physik) glite 1 / 22

3. Web Service Security 3.1 WS-Security. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Thema: Web Services. Was ist ein Web Service?

Was sind Web Services?

Web Services: Inhalt

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

XML-Webservices & SOAP

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

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

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Serviceorientierte Architektur / Web Service

Seminararbeit. XML-RPC vs. SOAP

Web Services und SOA

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

XML und SOAP Einführung und Grundlagen

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

An Geschäftsprozessen ausgerichtete IT- Infrastruktur. In SOA werden Services (Dienste) lose miteinander verbunden.

Aufbau von SOAP- Nachrichten

Architektur von SOAP basierten Web Services

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Vorlesung - Web Services

Verteilte Systeme: Übung 4

Webservices Ein Vortrag von:

Service-Orientierte Architekturen

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

Microsoft.NET und SunONE

Web-Services Grundlagen

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

Seminararbeit. im Studiengang Scientific Programming. Webservices : SOAP und REST

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger

Termin 4: Web Services Computing

Techniken von Web Services

Workflow, Business Process Management, 4.Teil

Fallbeispiel zur Nutzung von Webservices in der Praxis. INCONY AG, Technologiepark 34, D Paderborn, Tel.: ,

Spezifikation DPD und primetime WebService Routenberechnung Gültig für Paketversender in Österreich. Version 3.3.0

NVS1 5. Jahrgang Mag. Dr. Klaus Coufal

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

Hauptseminar. Thema: WebServices

Enterprise Application Integration Erfahrungen aus der Praxis

Netzprogrammierung Web-Dienste

Agenda. Web Services unter Lotus Notes/Domino

Web Services - Zusammenfassung. Autor: Roman Bühler

SOAP-Faults und deren Behandlung

Softwareentwicklung in verteilten Umgebungen, Teil 6 Web Services (Coulouris et al., Kapitel 19) Dieter Schmalstieg

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis

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

Kapitel 5 Web-Services

Sicherheitsaspekte von Web Services. Hauptseminar Rechnernetze

BiPRO und PHP Marcel Maaß

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

Seminar E-Services WS 02/03 BPEL4WS. Business Process Execution Language for Web Services. Mirwais Turjalei SES 02 BPEL4WS

Web-Services Implementierung mit Java

Web Services und Recommender Systeme

Web Services. Eine kleine Einführung. Werner Gaulke

Verteilte Systeme 3. Dienstevermittlung

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

Zustandsgebundene Webservices

Markus Schulz Seminar: XML für Fortgeschrittene

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

VVA Webservice Online Lieferbarkeits-Abfrage

Web Service Entwicklung mit Java. Sven Lindow

Analyse von Sicherheitaspekten in Service-orientierten Architekturen

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

Klausur: Internet-Technologien

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

<Insert Picture Here> Einführung in SOA

Seminar Internet Dienste. Webservices

Kapitel 6: Workflows im Internet. Jutta Mülle, IPD WfMS - WS 2007/08 Kapitel 6-1

0. Inhaltsverzeichnis

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

Web- und Gridservices zur Überwindung von Heterogenität. Bearbeiter: Lei Xia

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Erläuterungen zu Darstellung des DLQ-Datenportals

Vergleich SOAP und REST

Transkript:

Einführung in SOAP Seminar E-Services von Christoph Kurek

Was ist SOAP? SOAP steht für Simple Object Access Protokoll SOAP ist ein Standarisiertes Verpackungsprotokoll für Nachrichten SOAP ist eine Anwendung der XML- Spezifikation Es ist keine komplette verteilte Architektur

Vorteile von SOAP + XML Basierend Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf Standartprotokollen auf, wie HTTP, SMTP, FTP + Firewall unabhängig (Vorteil?)

Nachteile von SOAP - Sicherheitsstandards noch nicht Standarisiert (Signatur, Verschlüsselung) - Nachrichtengröße - Performance

SOAP Nachrichten Besteht aus einen Envelope, der - Optional einen Header und - danach zwingend einen Body enthält. Alles, was der XML Syntax entspricht, kann im Body und Header stehen. XML Syntax einer SOAP Nachricht beruht auf den Namensraum http://www.w3.org/2001/06/soap-envelope

SOAP Nachrichten

SOAP Nachrichten <env:envelope xmlns:env="http://www.w3.org/2002/06/soapenvelope"> <env:header> <n:alertcontrol xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority> <n:expires>2001-06-22t14:00:00-05:00</n:expires> </n:alertcontrol> </env:header> <env:body> <m:alert xmlns:m="http://example.org/alert"> <m:msg>pick up Mary at school at 2pm</m:msg> </m:alert> </env:body> </env:envelope>

SOAP als RCP RCP steht für Remote Procedure Call Nachrichten treten paarweise auf Client fragt, Server antwortet (in SOAP Spezifikation nicht vorgeschrieben)

SOAP als RPC Aufruf von public Float getquote(string symbol); <s:envelope xmlns:s="http://www.w3.org/2001/06/soap-envelope"> <s:header> <m:transaction xmlns:m="soap-transaction" s:mustunderstand="true"> <transactionid>1234</transactionid> </m:transaction> </s:header> <s:body> <n:getquote xmlns:n="urn:quoteservice"> <symbol xsi:type="xsd:string"> IBM </symbol> </n:getquote> </s:body> </s:envelope>

SOAP als RPC Mögliche Antwort: <s:envelope xmlns:s="http://www.w3.org/2001/06/soapenvelope"> <s:body> <n:getquoterespone xmlns:n="urn:quoteservice"> <value xsi:type="xsd:float"> 98.06 </value> </n:getquoteresponse> </s:body> </s:envelope>

Attribut mustunderstand Headerblöcke werden optional verarbeitet. Der mit Attribut mustunderstand= true muss verstanden werden. Falls nicht der Fall, muss eine Fehlermeldung erfolgen. Es ist unabhängig davon, ob die Nachricht im Body verarbeitet werden kann.

Datencodierung in SOAP Von W3C wird ein Codierungsstil vorgeschlagen <s:body> <n:getquote xmlns:n="urn:quoteservice" s:encodingstyle="http://www.w3.org/2001/06/soapencoding"> <symbol xsi:type="xsd:string">ibm</symbol> </n:getquote> </s:body>

Datencodierung in SOAP 3 Mögliche Arten, den Datentyp auszudrücken 1. Verwendung des Attributes xsi:type und Bezug auf einen Datentyp des XML Schemas 2. Verweis auf ein XML-Schema-Dokument, der den xsi:type des Elementes festlegt 3. Verweis auf ein Schema Dokument, der den Datentyp des Elements festlegt

Datencodierung in SOAP 1. <person> <name xsi:type="xsd:string">erika Mustermann</name> </person> 2. <person xmlns="personschema.xsd"> <name>erika Mustermann</name> </person> <!-- wobei "personschema.xsd" das Element name als type="xsd:string" definiert --> 3. <person xmlns="urn:some_namespace"> <name>erika Mustermann</name> </person> <!-- wobei "urn:some_namespace" einen Namensraum anzeigt, in dem die Werte von name-elementen Strings sind -->

SOAP Datentypen 2 Mögliche Schreibweisen für die Typisierung von Werten: 1. Anonym <SOAP-ENC:int>36</SOAP-ENC:int> 2. Benannt <value xsi:type="xsd:int">36</value>

SOAP Datentypen Mehrfachreferenz <value xsi:type="xsd:int" id="v1">42</value> <value href="#v1" /> Objektreferenz - Java Address address = new Address(); Person person = new Person(); person.setaddress(address); - SOAP <Person> <Address href="#address1" /> </Person> <Address id="address1" />

SOAP Datentypen Byte Arrays <some_binary_data xsi:type="soap-enc:base64"> adf4jik34kjjk3443kjlkj43sdf43== </some_binary_data>

SOAP Datentypen Ein- und Zweidimensionale Arrays <names xsi:type="soap-enc:array" SOAP- ENC:arrayType="xsd:string[2,2]"> <name xsi:type="xsd:string">a1d1</name> <name xsi:type="xsd:string">a2d1</name> <name xsi:type="xsd:string">a1d2</name> <name xsi:type="xsd:string">a2d2</name> </names> <names xsi:type="soap-enc:array" SOAP- ENC:arrayType="xsd:string[4]"> <name xsi:type="xsd:string">a1d1</name> <name xsi:type="xsd:string">a2d1</name> <name xsi:type="xsd:string">a3d1</name> <name xsi:type="xsd:string">a4d1</name> </names>

SOAP Datentypen Dünn besetzte Arrays <names xsi:type="soap-enc:array" SOAP- ENC:arrayType="xsd:string[10,10]"> <name SOAP-ENC:position="[2,5]">Wert</name> <name SOAP-ENC:position="[5,2]">Wert</name> </names> Leere Variablen <name xsi:type="xsd:string" xsi:nil="true" />

SOAP Nachrichtenaustausch Nachricht: eine Einwegübertragung Idee: Eine Nachricht durchläuft viele Zwischenverarbeitungsstellen (Pipeline) Nachrichtenpfad Akteur

SOAP Nachrichtenaustausch SOAP Targeting: Bestimmt, welcher Teil der Nachricht für wen Nur in Bezug auf Headerblöcke Attribut actor

SOAP Nachrichtenaustausch

SOAP Nachrichtenaustausch <s:envelope xmlns:s="..."> <s:header> <x:signature actor="uri:signatureverifier">... </x:signature> </s:header> <s:body> <abc:purchaseorder>...</abc:purchaseorder> </s:body> </s:envelope>

SOAP Nachrichtenaustausch Konstruktion des Nachrichtenpfades nicht in der SOAP Spezifikation! Erweiterungen: z.b. SOAP Routing Protocoll (WS-Routing von Microsoft)

SOAP Nachrichtenaustausch <s:envelope xmlns:s="..."> <s:header> <m:path xmlns:m="http://schemas.xmlsoap.org/rp/" s:mustunderstand="true"> <m:action>http://www.im.org/chat</m:action> <m:to>http://d.de/irgendein/endpunkt</m:to> <m:fwd> <m:via>http://b.ch</m:via> <m:via>http://c.at</m:via> </m:fwd> <m:rev> <m:via/> </m:rev> <m:from>mailto:lieschen.mueller@spitze.de</m:from> <m:id> uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6 </m:id> </m:path> </s:header> <s:body>... </s:body> </s:envelope>

SOAP Faults Enthaltene Informationen: Fault-Code Ein Wert, der den Fehler Identifiziert Fault-String Fehlererklärung Fault-Actor Der Knoten, an den Fehler auftrat Fault-Details Einzelheiten, nur falls der Fehler unmittelbar mit einen Problem in Body zusammenhängt.

SOAP Faults <s:envelope xmlns:s="..."> <s:body> <s:fault> <faultcode>client.authentication</faultcode> <faultstring> Ungültiger Identitätsnachweis </faultstring> <faultactor>http://spitze.de</faultactor> <details> <!--Anwendungsspezifische Einzelheiten--> </details> </s:fault> </s:body> </s:envelope>

SOAP Faults Standartcodes für SOAP-Faults: Server Fehler, der nicht direkt mit Nachrichtenverarbeitung zusammenhängt Client Problem mit der Nachricht VersionMismatch Falscher Namensraum für SOAP Envelope MustUnderstand Ein von Empänger nicht verstandener mustunderstand Headerblock

SOAP Faults MustUnderstand-Faults <s:envelope xmlns:s="..."> <s:header> <f:misunderstood qname="abc:transaction" xmlns:="soaptransactions" /> </s:header> <s:body> <s:fault> <faultcode>mustunderstand</faultcode> <faultstring> Header nicht verstanden </faultstring> <faultactor>http://spitze.de</faultactor> </s:fault> </s:body> </s:envelope>

SOAP Faults VersionMismatch-Fault <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:header> <V:Upgrade xmlns:v="http://www.w3.org/2001/06/soap-upgrade"> <envelope qname="ns1:envelope" xmlns:ns1="http://www.w3.org/2001/06/soap-envelope"/> </V:Upgrade> </s:header> <s:body> <s:fault> <faultcode>s:versionmismatch</faultcode> <faultstring>versionsfehler</faultstring> </s:fault> </s:body> </s:envelope>

Literatur http://www.w3c.org/2000/xp/group/ http://www.oreilly.de/catalog/progwebsoap ger/chapter/ch02.html Webservice-Programmierung mit SOAP James Snell, Doug Tidwell & Pavel Kulchenko O Reilly 1. Auflage, Juli 2002 ISBN 3-89721-159-9