• Keine Ergebnisse gefunden

Wie wird SOAP/WSDL Wie wird SOAP/WSDL

N/A
N/A
Protected

Academic year: 2022

Aktie "Wie wird SOAP/WSDL Wie wird SOAP/WSDL "

Copied!
9
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

© Klaus Schild, 2004 1

SOAP und WSDL in der SOAP und WSDL in der

Praxis Praxis

© Klaus Schild, 2004 2

Heutige Vorlesung Heutige Vorlesung

; Aufbau von WSDL-Beschreibungen

; Protokoll-Bindungen in WSDL

; Google-WSDL lesen und erweitern können

; Vor- und Nachteile von WSDL heute

heute

ƒ Wie wird SOAP/WSDL verwendet?

ƒ .net, Apache Axis, XMLSpy

ƒ dynamische Einbindung zur Laufzeit

ƒ Einbindung zur Entwicklungszeit

ƒ Anforderungen der Praxis

ƒ Erweiterungen von SOAP/WSDL

© Klaus Schild, 2004 3

Wie wird SOAP/WSDL Wie wird SOAP/WSDL

verwendet?

verwendet?

© Klaus Schild, 2004 4

.net . net und und Apache Apache Axis Axis

zwei M

zwei Mööglichkeitenglichkeiten

ƒ Web-Dienst aufrufen

ƒ Web-Dienst anbieten

© Klaus Schild, 2004 5

Web

Web- -Dienst aufrufen Dienst aufrufen

WSDL WSDL ÎÎStubsStubs

ƒ Aus WSDL-BeschreibungautomatischSchnittstelle zur Anwendung (Stubs) generieren

ƒ Stubs abstrahieren von SOAP und vom konkreten Übertragungsprotokoll.

ƒ Web-Dienst erscheint als lokaleBibliothek.

© Klaus Schild, 2004 6

Web

Web- -Dienst anbieten Dienst anbieten

Anwendungsprogramm

AnwendungsprogrammÎÎWSDLWSDL

ƒ Anwendungslogik implementieren

ƒ Anwendung ÎServer

ƒ aus Anwendungsprogramm automatisch WSDL- Beschreibung erzeugen

ƒ Übersetzung

Datenstruktur ÎDatentypen eines XML-Schemas nicht immer automatisch möglich

(2)

© Klaus Schild, 2004 7

XMLSpy XMLSpy

Web

Web--Dienste austestenDienste austesten

ƒ externen Web-Dienst austesten:

Funktionalität, Reaktionszeit

ƒ eigenen Web-Dienst austesten:

Testen, ob eigener Web-Dienst auch über WSDL- Beschreibung abrufbar

© Klaus Schild, 2004 8

Web- Web -Dienste austesten mit Dienste austesten mit XMLSpy XMLSpy

WSDL

WSDL ÎÎSOAP-SOAP-AnfrageAnfrageÎÎSOAP-SOAP-AntwortAntwort

ƒ aus WSDL-Beschreibung SOAP-Anfrage generieren

ƒ Parameter der SOAP-Anfrage anpassen

ƒ SOAP-Anfrage per Knopfdruck an Web-Dienst senden

ƒ Antwort als SOAP

© Klaus Schild, 2004 9

Was nun verwenden?

Was nun verwenden?

XMLSpy XMLSpy

+ zum schnellen austesten eines Web-Dienstes geeignet + SOAP-Anfrage und -Antwort sichtbar

+ keine aufwendige Installation notwendig - keine Anwendungsentwicklung möglich .

.netnet

+ Anwendungsentwicklung möglich - aufwendige Installation

Apache ApacheAxisAxis

+ Anwendungsentwicklung unter Java möglich - aufwendige Installation

© Klaus Schild, 2004 10

Web- Web -Dienste: Die Vision Dienste: Die Vision

Beispiel

Beispiel

ƒ personalisierte Informations-Webseite

ƒ Benutzer möchte Echtzeitkurse von bestimmter Aktie einer bestimmten Börse

ƒ Informations-Webseite sucht entsprechenden Web-Dienst für Echtzeitkurse

ƒ Informations-Webseite bindet den Web-Dienst automatisch ein

dynamische Einbindung zur Laufzeit dynamische Einbindung zur Laufzeit

Dynamische Einbindung zur Laufzeit

1.Anwendung sucht in Verzeichnis einen Web-Dienst, z.B.

für Echtzeitkurse von Aktien 2.Suchergebnis: WSDL-Beschreibung 3.WSDL-BeschreibungÎStubs

4.Anwendung ruft Web-Dienst als lokale Bibliothek auf

Nachfrager Anbieter

öffentliches Verzeichnis

WSDL- Beschreibung WSDL-

Beschreibung

SOAP-Nachrichten

Dienst muss automatisch gefunden und aufgerufen werden.

Dienst muss automatisch gefunden und aufgerufen werden.

Aufruf des Dienstes

ƒ geg.: WSDL-Beschreibung

ƒ Um Web-Dienst automatisch abzurufen, muss er standardisiert standardisiertsein:

ƒ WSDL beschreibt zwar Syntaxder Schnittstelle, nicht aber die Bedeutung der Prozedur/Parameter.

ƒ Bedeutung muss außerhalb von WSDL festgelegt (standardisiert) werden

automatischmanuellDienst abrufen Dienst:

Standard

Dienst:

kein Standard

(3)

© Klaus Schild, 2004 13

Beispiel

Float

Float Aktienkurs(IntegerAktienkurs(IntegerWKN, String WKN, String BoersenplatzBoersenplatz))

ƒ solcher Stub kann automatisch aus WSDL-Beschreibung generiert werden

aber:

ƒ Was bedeutet WKN?

ƒ Was bedeutet Boersenplatz?

Wie wird der Xetra-Handel in Frankfurt kodiert?

ƒ Was bedeutet Aktienkurs?

Echtzeit oder verzögert? Wie lange verzögert?

ƒ Was bedeutet Ergebnistyp Float?

Welche Währung?

© Klaus Schild, 2004 14

Beispiel

Float

Float Aktienkurs(IntegerAktienkurs(IntegerWKN, String WKN, String BoersenplatzBoersenplatz))

ƒ solcher Stub kann automatisch aus WSDL-Beschreibung generiert werden

aber:

ƒ Was bedeutet WKN?

ƒ Was bedeutet Boersenplatz?

Wie wird der xetra-Handel in Frankfurt kodiert?

ƒ Was bedeutet Aktienkurs?

Echtzeit oder verzögert? Wie lange verzögert?

ƒ Was bedeutet Ergebnistyp Float?

Welche Währung?

muss außerhalb von WSDL standardisiert werden muss außerhalb von WSDL

standardisiert werden

© Klaus Schild, 2004 15

Aufruf des Dienstes

automatisch bedeutet:

automatisch bedeutet:

ƒ Übersetzung WSDL ÎStubs automatisch

ƒ Integration von Stubs in Anwendungslogik automatisch manuell bedeutet:

manuell bedeutet:

ƒ Übersetzung WSDL ÎStubs automatisch

ƒ Integration von Stubs in Anwendungslogik programmiert Entwickler

automatischmanuellDienst abrufen Dienst:

Standard

Dienst:

kein Standard

© Klaus Schild, 2004 16

Dienst finden

automatisch manuell

automatischmanuell

Dienst finden

Dienst abrufen

ƒ geg.: standardisierter Web-Dienst

ƒ ges.: Anbieter des Web- Dienstes, einschl.

WSDL-Beschreibung

ƒ Um Anbieter automatisch zu finden, muss Web- Dienst kostenloskostenlosund unkritisch

unkritischsein.

ƒ andernfalls Rücksprache und Verhandlungen nötig

Dienst:

ƒStandard

ƒkostenlos

ƒunkritisch Dienst:

ƒStandard

ƒkostenpflichtig oder kritisch

Dienst:

kein Standard

ƒ macht keinen Sinn, da standardisierter Web-Dienst auch automatisch aufgerufen werden kann

© Klaus Schild, 2004 17

automatisch manuell

automatischmanuell

Dienst finden

Dienst abrufen Dienst:ƒStandard

ƒkostenlos

ƒunkritisch Dienst:

ƒStandard

ƒkostenpflichtig oder kritisch

Dienst:

kein Standard

Web-Dienste: Die Realität

ƒ standardisierte Informationsdienste (kostenlos und unkritisch)

ƒ standardisierte Informationsdienste (kostenpflichtig und/oder kritisch)

ƒ Google-Web-Dienst, E-Business

© Klaus Schild, 2004 18

Fazit

zwei Möglichkeiten, Web-Dienst einzubinden:

zur Laufzeit zur Laufzeit

ƒ Vollautomatisches Einbinden prinzipiell mit WSDL möglich, wird aber Ausnahme bleiben.

ƒ Grund: nur für standardisierte, kostenlose und unkritische Dienste möglich

zur Entwicklungszeit zur Entwicklungszeit

ƒ kein vollautomatisches Einbinden, aber WSDL erleichtertdas Einbinden ganz erheblich

ƒ Grund: aus WSDL-Beschreibung können automatisch Stubs generiert werden

(4)

© Klaus Schild, 2004 19

Anforderungen der Anforderungen der

Praxis Praxis

© Klaus Schild, 2004 20

Beispiel Beispiel

Zulieferer Unternehmen Bestellung

(SOAP-Nachricht)

ƒ Absender eindeutig identifizierbar?

ƒ Nachricht unversehrt?

ƒ Nachricht genau einmal übermittelt?

ƒ Antwort nach bestimmter Zeit garantiert?

ƒ Passt die Nachricht in den Geschäftsprozess?

z.B. keine Bestellung ohne vorherige Bestellanfrage

© Klaus Schild, 2004 21

Realisierung mit SOAP Realisierung mit SOAP

ƒ keineder Anforderungen von SOAP direkt unterstützt

ƒ können aber als Zusatzinformationen im Briefkopf der SOAP-Nachricht realisiert werden

ƒ Absender eindeutig identifizierbar?

ƒ Nachricht unversehrt?

ƒ Nachricht genau einmalübermittelt?

ƒ Antwort nach bestimmter Zeit garantiert?

ƒ Passt die Nachricht in den Geschäftsprozess?

© Klaus Schild, 2004 22

Zusatzinformationen im

Zusatzinformationen im SOAP SOAP- -Briefkopf Briefkopf

ƒ digitale Signatur

ÎIdentifikation des Absenders ÎUnversehrtheit der Nachricht

ƒ Anforderung einer Empfangsbestätigung ÎNachricht mindestens einmal zugestellt

ƒ eindeutige Nachrichtenreferenz ÎErkennung von Duplikaten

ƒ Verweis auf vorherige Nachrichten, z.B. Bestellanfrage ÎBerücksichtigung des Geschäftsprozesses (Workflows)

ƒAbsender eindeutig identifizierbar?

ƒNachricht unversehrt?

ƒNachricht genau einmalübermittelt?

ƒAntwort nach bestimmter Zeit garantiert?

ƒPasst die Nachricht in den Geschäftsprozess?

So einfach ist es dann doch nicht…

So einfach ist es dann doch nicht…

Zulieferer Unternehmen Bestellung

(SOAP-Nachricht)

Problem der Interoperabilität (Zusammenarbeitsfähigkeit):

ƒ Zulieferer soll ersetzt werden

ƒ Neuer Zulieferer bekommt WSDL-Beschreibung.

ƒ WSDL beschreibt zwar Syntax der Schnittstelle, einschl.

der Zusatzinformationen im Briefkopf.

ƒ Was die Zusatzinformationen bedeuten, muss aber zwischen Unternehmen und Zulieferer geklärt werden.

Beispiel für

Beispiel für Interoperabilität Interoperabilität

ƒ Was interoperabel bedeutet, kann am Beispiel Fax verdeutlicht werden.

ƒ Fax tatsächlich uneingeschränkt interoperabel:

ƒ Ein Faxgerät kann durch ein anderes ersetzt werden, ohnemit potentiellen Sendern Protokolle auszuhandeln.

ƒ Z.B. muss nichtgeklärt werden, wie Empfang eines Fax bestätigt wird.

ƒ Grund: Es gibt einen etablierten internationalen Fax- Standard.

(5)

© Klaus Schild, 2004 25

Standardisierung von Erweiterungen Standardisierung von Erweiterungen

ƒ sehr gute Übersicht:

http://www-306.ibm.com/software/solutions/webservices/pdf/

SecureReliableTransactedWSAction.pdf

HTTP, HTTPS, SMTP Transport XML, SOAP, WS Addressing

XMLSchema, WSDL, WS Policy WS

Security

WS Reliable Messaging

WS Transactions

Nachrichten Beschreibung BPEL4WS

Zusicherungen Workflow

© Klaus Schild, 2004 26

Etablierte Standards Etablierte Standards

ƒ etablierte Standards in grün

ƒ (noch) nicht etablierte Standards in rot HTTP, HTTPS, SMTP Transport XML, SOAP, WS Addressing

XMLSchema, WSDL, WS Policy WS

Security

WS Reliable Messaging

WS Transactions

Nachrichten Beschreibung BPEL4WS

Zusicherungen Workflow

© Klaus Schild, 2004 27

Beispiel: erweiterte

Beispiel: erweiterte SOAP SOAP- -Nachricht Nachricht

WS Reliable Messaging wird exemplarisch betrachtet WS Reliable Messaging wird exemplarisch betrachtet

© Klaus Schild, 2004 28

Zuverlässige Zuverlässige Kommunikation Kommunikation

© Klaus Schild, 2004 29

Beispiel: Buchungsanfrage Beispiel: Buchungsanfrage

ƒ Unternehmen ruft Buchungsprozedur eines Reiseunternehmens auf

ƒ Buchung nimmt häufig längere Zeit in Anspruch.

ƒ deshalb asynchronerAufruf der Buchungsprozedur

© Klaus Schild, 2004 30

Asynchrone Buchungsprozedur Asynchrone Buchungsprozedur

ƒ Buchungsanforderung wird vom Client aufgerufen

ƒ Client wartet bis er vom Server Bestätigung der Annahme bekommen hat.

ƒ Server schickt später dann das endgültige Ergebnis.

Client

Server Anfrage (request)

Anfrage akzeptiert (accept)

RPC-Aufruf RPC abgeschlossen

auf accept warten

Aufruf lokaler Prozedur

Ergebnis

(6)

© Klaus Schild, 2004 31

Zuverlässige Buchungsanfrage Zuverlässige Buchungsanfrage

ƒ Anfrage (request): genau einmalzustellen

ƒ Annahme (accept): mindestens einmalzustellen

ƒ Ergebnis: genau einmalzustellen

ƒ Annahme immer vorErgebnis, ansonsten wird evtl.

zweite Buchungsanfrage gestellt.

Client Server

Anfrage (request)

Anfrage akzeptiert (accept)

RPC-Aufruf RPC abgeschlossen

auf accept warten

Aufruf lokaler Prozedur

Ergebnis

ÎAnnahme und Ergebnis bilden eine Sequenz ÎAnnahme und Ergebnis bilden eine Sequenz

© Klaus Schild, 2004 32

WS Reliable WS Reliable Messaging Messaging

ƒ XML-Standard für zuverlässige Kommunikation

ƒ kann im Briefkopf von SOAP-Nachrichten oder in WSDL-Beschreibungen verwendet werden

ƒ gemeinsamer Vorschlag von BEA, IBM, Microsoft und TIBCO

ƒ von März 2004

ƒ noch keinetablierter Standard

Îhttp://www-106.ibm.com/developerworks/library/ws-rm/

© Klaus Schild, 2004 33

Beispiel Beispiel

ƒ Sequenz von drei Nachrichten

ƒ jede Nachricht genau einmal zustellen

ƒ Reihenfolge beachten

ƒ Empfang der Sequenz bestätigen

ƒ Sequenz von drei Nachrichten

ƒ jede Nachricht genau einmal zustellen

ƒ Reihenfolge beachten

ƒ Empfang der Sequenz bestätigen

© Klaus Schild, 2004 34

Beispiel Beispiel

Sequenz von

Sequenz von SOAP SOAP- -Nachrichten Nachrichten senden senden Erste SOAP Erste SOAP- -Nachricht Nachricht

<S:Envelope xmlns:wsrm="http://schemas.xmlsoap.org/ws/2004/03/rm"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>1</wsrm:MessageNumber>

</wsrm:Sequence>

</S:Header> …

<S:Envelope xmlns:wsrm="http://schemas.xmlsoap.org/ws/2004/03/rm"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>1</wsrm:MessageNumber>

</wsrm:Sequence>

</S:Header> …

ƒ WS RM benutzt WS Addressing

ƒ Nachricht hat eindeutige Referenz(MessageID)

ƒ WS RM benutzt WS Addressing

ƒ Nachricht hat eindeutige Referenz(MessageID)

(7)

© Klaus Schild, 2004 37

Erste

Erste SOAP SOAP- -Nachricht Nachricht

<S:Envelope xmlns:wsrm="http://schemas.xmlsoap.org/ws/2004/03/rm"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>1</wsrm:MessageNumber>

</wsrm:Sequence>

</S:Header> …

<S:Envelope xmlns:wsrm="http://schemas.xmlsoap.org/ws/2004/03/rm"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>1</wsrm:MessageNumber>

</wsrm:Sequence>

</S:Header> …

ƒ WS RM benutzt WS Utilities

ƒ Sequenz hat eindeutige Referenz(Identifier)

ƒ erste Nachricht der Sequenz(MessageNumber)

ƒ WS RM benutzt WS Utilities

ƒ Sequenz hat eindeutige Referenz(Identifier)

ƒ erste Nachricht der Sequenz(MessageNumber)

© Klaus Schild, 2004 38

Zweite

Zweite SOAP SOAP- -Nachricht Nachricht

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/daa7d0b2-c8e0-476e-a9a4-d164154e38de

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>2</wsrm:MessageNumber>

</wsrm:Sequence>

</S:Header> ...

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/daa7d0b2-c8e0-476e-a9a4-d164154e38de

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>2</wsrm:MessageNumber>

</wsrm:Sequence>

</S:Header> ... ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

© Klaus Schild, 2004 39

Dritte und letzte

Dritte und letzte SOAP SOAP- -Nachricht Nachricht

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>3</wsrm:MessageNumber>

<wsrm:LastMessage/>

</wsrm:Sequence>

</S:Header> …

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>

</wsa:ReplyTo>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>3</wsrm:MessageNumber>

<wsrm:LastMessage/>

</wsrm:Sequence>

</S:Header> …

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

© Klaus Schild, 2004 40

Bestätigung Bestätigung

© Klaus Schild, 2004 41

Bestätigung Bestätigung

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsa:To>http://Business456.com/serviceA/789</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>

</wsa:ReplyTo>

<wsrm:SequenceAcknowledgment>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:AcknowledgmentRangeUpper="1" Lower="1"/>

<wsrm:AcknowledgmentRangeUpper="3" Lower="3"/>

</wsrm:SequenceAcknowledgment>

</S:Header> …

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsa:To>http://Business456.com/serviceA/789</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>

</wsa:ReplyTo>

<wsrm:SequenceAcknowledgment>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:AcknowledgmentRangeUpper="1" Lower="1"/>

<wsrm:AcknowledgmentRangeUpper="3" Lower="3"/>

</wsrm:SequenceAcknowledgment>

</S:Header> …ƒƒ erste und dritte Nachricht angekommenerste und dritte Nachricht angekommen

© Klaus Schild, 2004 42

Zweite Nachricht nochmals senden

Zweite Nachricht nochmals senden

(8)

© Klaus Schild, 2004 43

Zweite Nachricht nochmals senden Zweite Nachricht nochmals senden

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>2</wsrm:MessageNumber>

</wsrm:Sequence>

<wsrm:AckRequested>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

</wsrm:AckRequested>

</S:Header> …

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>2</wsrm:MessageNumber>

</wsrm:Sequence>

<wsrm:AckRequested>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

</wsrm:AckRequested>

</S:Header> …

ƒ zweite Nachricht der Sequenz

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

ƒ zweite Nachricht der Sequenz

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

© Klaus Schild, 2004 44

Zweite Nachricht nochmals senden Zweite Nachricht nochmals senden

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>2</wsrm:MessageNumber>

</wsrm:Sequence>

<wsrm:AckRequested>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

</wsrm:AckRequested>

</S:Header> …

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsrm:Sequence>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:MessageNumber>2</wsrm:MessageNumber>

</wsrm:Sequence>

<wsrm:AckRequested>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

</wsrm:AckRequested>

</S:Header> … ƒ Empfangsbestätigung für

Sequenz verlangt

ƒ Empfangsbestätigung für Sequenz verlangt

© Klaus Schild, 2004 45

Endgültige Bestätigung Endgültige Bestätigung

© Klaus Schild, 2004 46

Endgültige Bestätigung Endgültige Bestätigung

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsa:To>http://Business456.com/serviceA/789</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>

</wsa:ReplyTo>

<wsrm:SequenceAcknowledgment>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:AcknowledgmentRangeUpper="3" Lower="1"/>

</wsrm:SequenceAcknowledgment>

</S:Header> …

<S:Envelope …>

<S:Header>

<wsa:MessageID>

http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817

</wsa:MessageID>

<wsa:To>http://Business456.com/serviceA/789</wsa:To>

<wsa:ReplyTo>

<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>

</wsa:ReplyTo>

<wsrm:SequenceAcknowledgment>

<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>

<wsrm:AcknowledgmentRangeUpper="3" Lower="1"/>

</wsrm:SequenceAcknowledgment>

</S:Header> …

ƒ alle 3 Nachrichten empfangen

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

ƒ alle 3 Nachrichten empfangen

ƒ neue Nachrichten-Referenz

ƒ alteSequenz-Referenz

Was gibt es noch?

Was gibt es noch?

ƒ

ƒ wsu:Expireswsu:Expires: Verfallsdatum und -zeit

ƒ

ƒ wsrm:InactivityTimeoutwsrm:InactivityTimeout: wie lange Empfänger höchstens auf nächste Nachricht warten muss

ƒƒ wsrm:SequenceFaultwsrm:SequenceFault: Fehlermeldung bzgl. Sequenzen, z.B.:

ƒ wsrm:SequenceTerminated

ƒ wsrm:InvalidAcknowledgementwsrm:InvalidAcknowledgement

ƒ

ƒ wsrm:DeliveryAssurancewsrm:DeliveryAssurance: verlangte Zuverlässigkeit, z.B.:

ƒ AtLeastOnce

ƒ InOrder

Integration in SOAP oder WSDL?

Integration in SOAP oder WSDL?

ƒ WS-RM-Elemente können im Briefkopf einer SOAP- Nachricht erscheinen.

ƒ Elemente wie z.B.

<wsrm:DeliveryAssurance Value="wsrm:AtLeastOnce"/>

machen in SOAP-Nachrichten allerdings keinen Sinn.

ƒ Solche Elemente werden in einer WSDL-Beschreibung integriert.

Wie werden WS-RM-Elemente in WSDL integriert?

Wie werden WS-RM-Elemente in WSDL integriert?

(9)

© Klaus Schild, 2004 49

Zweistufige Integration in WSDL Zweistufige Integration in WSDL

1. WS-RM-Elemente werden als Kommunikationsregeln (policies) formuliert.

Formulierung mit Hilfe von WS Policy

2. Diese Kommunikationsregeln werden dann in WSDL integriert.

ƒ Gleiches Vorgehen auch bei anderen Erweiterungen:

WSDL WS Policy

WS RM WS Security WS Addressing

© Klaus Schild, 2004 50

Beispiel Beispiel

<wsdl:definitions name="PurchaseOrder" …>

<wsdl:messagename="OrderRequest">

<wsp:Policy>

<wsrm:DeliveryAssurance Value="wsrm:ExactlyOnce"

wsp:Usage="wsp:Required"/>

</wsp:Policy>

</wsdl:message>

<wsdl:message name="OrderAccept">

</wsdl:message>

</wsdl:definitions>

<wsdl:definitions name="PurchaseOrder" …>

<wsdl:messagename="OrderRequest">

<wsp:Policy>

<wsrm:DeliveryAssurance Value="wsrm:ExactlyOnce"

wsp:Usage="wsp:Required"/>

</wsp:Policy>

</wsdl:message>

<wsdl:message name="OrderAccept">

</wsdl:message>

</wsdl:definitions>

ƒ hier wsp:Policyals Erweiterungselement

ƒ tatsächlich erlaubt aber WSDL für message und portTypekeineErweiterungselemente

ƒ daher etwas kompliziertere Kodierung mit Attributen

ƒ hier wsp:Policyals Erweiterungselement

ƒ tatsächlich erlaubt aber WSDL für message und portTypekeineErweiterungselemente

ƒ daher etwas kompliziertere Kodierung mit Attributen

© Klaus Schild, 2004 51

Bewertung der Bewertung der Erweiterungen Erweiterungen

© Klaus Schild, 2004 52

Bewertung der Erweiterungen Bewertung der Erweiterungen

+ einzelne Erweiterungen unabhängig voneinander + meist gemeinsame Vorschläge von Microsoft und IBM - nochkeineetablierten Standards

- WS Policy Grammatik zur Festlegung von qualitativen Aspekten, einzelne qualitative Aspekte müssen noch standardisiert werden

Keine prinzipiellen Hürden, jedoch noch ein Keine langerprinzipiellen Standardisierungsweg zu gehen!Hürden, jedoch noch ein langerStandardisierungsweg zu gehen!

© Klaus Schild, 2004 53

Wie geht es weiter?

Wie geht es weiter?

; Wie wird WSDL verwendet?

ƒ .net, Apache Axis, XMLSpy

ƒ dynamische Einbindung zur Laufzeit

ƒ Einbindung zur Entwicklungszeit

; Anforderungen der Praxis

; Erweiterungen von SOAP/WSDL heute

heute

ƒ 16:15 betreute Rechnerübung nächste Woche (7.7.)

nächste Woche (7.7.)

ƒ Ausblick, Rückblick, Hinweise für Klausur Klausur am 21.7.

Klausur am 21.7.

Referenzen

ÄHNLICHE DOKUMENTE

– Ressource durch Browser nutzbar (anders als bei SOAP).  REST-konforme Schnittstelle durch Nutzung von

[…] Once a Web Service is deployed, other applications (and other Web Services) can discover and invoke the deployed service. Web Services is a technology and process for

It is seen that in addition to typical amphiphilic properties, most importantly the formation of self assembled structures like micelles or lyotropic liquid crystals, the

Für den SOAP-Server muss eine Instanz der Klasse SoapServer erzeugt werden:. SoapServer( mixed $wsdl [, array $options

call.addParameter(&#34;bean&#34;, qname, ParameterMode.IN); //register (passed) parameter for bean call.setReturnType(qname); //specify expected return type of web

ƒ Nachrichtenformat kann durch Header Blocks erweitert werden, ohne ursprüngliches Format (Body)

ƒ konkrete Nachricht meist XML, kann aber auch beliebig anderes Format

ƒ Beschreibt, wie abstrakte SOAP-Nachrichten in konkrete Nachrichten umgewandelt (serialisiert) werden. ƒ nicht vorgeschrieben, wie eine Protokoll-Bindung