SOAP und WSDL in der Praxis Wie wird WSDL verwendet?

Transcrição

SOAP und WSDL in der Praxis Wie wird WSDL verwendet?
Lernziele
; Prinzipielle Aufbau von WSDL-Beschreibungen
; Protokoll-Bindungen in WSDL
; Google-WSDL lesen können
SOAP und WSDL in der
Praxis
© Klaus Schild, 2004
; Vor- und Nachteile von WSDL
ƒ Wie wird WSDL verwendet?
ƒ Anforderungen der Praxis
heute
heute
ƒ Erweiterungen von SOAP/WSDL
1
© Klaus Schild, 2004
2
Wie wird WSDL verwendet?
Wie wird WSDL
verwendet?
.net und Apache Axis
ƒ Aus einer WSDL-Beschreibung wird automatisch eine
Schnittstelle zur Anwendung (Stubs) generiert.
ƒ Stubs abstrahieren von SOAP und vom konkreten
Übertragungsprotokoll.
ƒ Web-Dienst erscheint als lokale Bibliothek.
ƒ umgekehrt kann auch aus Anwendungsprogramm
automatisch eine WSDL-Beschreibung erzeugt werden
© Klaus Schild, 2004
3
Wie wird WSDL verwendet?
© Klaus Schild, 2004
4
WebWeb-Dienste: Die Vision
Beispiel:
ƒ personalisierte Informations-Webseite benötigt
Echtzeitkurse von bestimmten Aktien einer bestimmten
Börse
ƒ Informations-Webseite sucht entsprechenden WebDienst für Echtzeitkurse und ruft diesen automatisch auf.
dynamische Einbindung
Einbindung
dynamische
zur Laufzeit
Laufzeit
zur
XML Spy
ƒ
ƒ
ƒ
Î
aus WSDL-Beschreibung SOAP-Nachricht generieren
Parameter der SOAP-Anfrage anpassen
SOAP-Nachricht an Web-Dienst senden
sehr gut geeignet zum schnellen testen
© Klaus Schild, 2004
5
© Klaus Schild, 2004
6
1
Aufruf des Dienstes
Dynamische Einbindung zur Laufzeit
öffentliches
Verzeichnis
1. Anwendung sucht in einem Verzeichnis einen WebDienst, z.B. für Echtzeitkurse von Aktien
2. Suchergebnis: WSDL-Beschreibung
3. Anwendung erzeugt aus WSDL-Beschreibung Stubs
4. Anwendung ruft Web-Dienst als lokale Bibliothek auf
Dienst muss
muss automatisch
automatisch gefunden
gefunden
Dienst
und aufgerufen
aufgerufen werden.
werden.
und
© Klaus Schild, 2004
Dienst finden
ƒ WSDL beschreibt zwar die
Syntax der Schnittstelle,
nicht aber die Bedeutung
der Prozedur/Parameter.
ƒ Bedeutung muss außerhalb
von WSDL festgelegt
(standardisiert) sein
© Klaus Schild, 2004
8
Dienst:
ƒ Standard
ƒ kostenpflichtig
oder kritisch
Dienst:
kein Standard
ƒ Um einen Anbieter
automatisch zu finden,
muss der Dienst
kostenlos und unkritisch
sein.
automatisch
manuell
Dienst:
ƒ Standard
ƒ kostenlos
ƒ unkritisch
Dienst:
ƒ Standard
ƒ kostenpflichtig
oder kritisch
automatisch
Dienst:
ƒ Standard
ƒ kostenlos
ƒ unkritisch
ƒ gesucht: Anbieter des
Web-Dienstes (seine
WSDL-Beschreibung)
Dienst abrufen
manuell
Dienst finden
ƒ gegeben: standardisierter
Web-Dienst
manuell
automatisch
automatisch
Dienst:
kein Standard
ƒ Um den Web-Dienst
automatisch abzurufen,
muss er standardisiert sein:
Die Realität
Dienst finden
Dienst abrufen
Dienst:
Standard
ƒ gegeben: WSDLBeschreibung
ƒ Beispiel: Float Aktienkurs(Integer WKN, String Boersenplatz)
7
manuell
manuell
automatisch
automatisch
Anbieter
Dienst abrufen
SOAP-Nachrichten
manuell
Nachfrager
Dienst finden
WSDLBeschreibung
WSDLBeschreibung
Dienst:
kein Standard
ƒ standardisierte
Informationsdienste
(kostenlos und
unkritisch)
ƒ standardisierte
Informationsdienste
(kostenpflichtig
und/oder kritisch)
ƒ Google-Web-Dienst,
E-Business
ƒ andernfalls Rücksprache
und Verhandlungen nötig
© Klaus Schild, 2004
9
© Klaus Schild, 2004
10
Schlussfolgerung
Einbindung eines Web-Dienstes
ƒ zur Laufzeit:
Vollautomatisches Einbinden prinzipiell mit WSDL
möglich, wird aber die Ausnahme bleiben.
ƒ zur Entwicklungszeit:
kein vollautomatisches Einbinden, aber WSDL erleichtert
das Einbinden ganz erheblich
© Klaus Schild, 2004
11
Anforderungen der
Praxis
© Klaus Schild, 2004
12
2
Anforderung des Praxis
Realisierung mit SOAP
Zulieferer
Unternehmen
ƒ Absender eindeutig identifizierbar?
Bestellung
(SOAP-Nachricht)
ƒ Nachricht unversehrt?
ƒ Nachricht genau einmal übermittelt?
ƒ Antwort nach bestimmter Zeit garantiert?
ƒ Passt die Nachricht in den Geschäftsprozess?
ƒ Absender eindeutig identifizierbar?
ƒ keine der Anforderungen von SOAP direkt unterstützt
ƒ Nachricht unversehrt?
ƒ können aber mit Zusatzinformationen im Briefkopf der
SOAP-Nachricht realisiert werden
ƒ 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
13
Zusatzinformationen im SOAPSOAP-Briefkopf
ƒ digitale Signatur
Î Identifikation des Absenders
© Klaus Schild, 2004
14
So einfach ist es dann doch nicht…
Zulieferer
ƒ Absender eindeutig identifizierbar?
Unternehmen
ƒ Nachricht unversehrt?
ƒ Nachricht genau einmal übermittelt?
ƒ Antwort nach bestimmter Zeit garantiert?
Bestellung
(SOAP-Nachricht)
ƒ Passt die Nachricht in den Geschäftsprozess?
Î Unversehrtheit der Nachricht
ƒ Anforderung einer Empfangsbestätigung
Problem der Interoperabilität (Zusammenarbeitsfähigkeit):
Î Nachricht mindestens einmal zugestellt
ƒ Zulieferer soll ersetzt werden.
ƒ eindeutige Nachrichtenreferenz
ƒ Neuer Zulieferer bekommt WSDL-Beschreibung.
Î Erkennung von Duplikaten
ƒ WSDL beschreibt zwar die Syntax der Schnittstelle,
einschl. der Zusatzinformationen im Briefkopf.
ƒ Verweis auf vorherige Nachrichten, z.B. Bestellanfrage
Î Berücksichtigung des Workflows
© Klaus Schild, 2004
ƒ Was die Bedeutung der Zusatzinformationen ist, muss
zwischen Unternehmen und Zulieferer geklärt werden.
15
© Klaus Schild, 2004
16
Beispiel Fax
Interoperabilität von WebWeb-Diensten
Fax ist hingegen uneingeschränkt interoperabel:
ƒ SOAP/WSDL zwar akzeptierte internationale Standards.
ƒ Ein Faxgerät kann durch ein anderes ersetzt werden,
ohne mit potentiellen Sendern Protokolle auszuhandeln:
wie z.B. der Eingang eines Fax bestätigt wird
ƒ Grund: es gibt einen allgemein akzeptierten
internationalen Fax-Standard
ƒ SOAP ist ein Format, mit dem Web-Dienste Nachrichten
austauschen.
ƒ WSDL beschreibt die Syntax der Schnittstelle eines
Web-Dienstes.
ƒ Wie aber z.B. ein Sender authentifiziert werden kann,
wird weder in SOAP noch WSDL festgelegt.
Î Ein Web-Dienst kann nicht ohne weiteres durch einen
anderen ersetzt werden, selbst wenn beide die gleiche
abstrakte Schnittstelle haben.
© Klaus Schild, 2004
17
© Klaus Schild, 2004
18
3
Lösung: Erweiterungen von SOAP/WSDL
Beispiel
ƒ Sicherheit:
WS Security
ƒ Zuverlässigkeit
WS Reliable Messaging
ƒ qualitativen Aspekten (quality of service):
WS Policy
ƒ geschäftlicher Workflow:
BPEL
ƒ sehr gute Übersicht:
http://www-306.ibm.com/software/solutions/webservices/pdf/
SecureReliableTransactedWSAction.pdf
© Klaus Schild, 2004
19
WS Reliable
Reliable Messaging
Messaging wird
wird exemplarisch
exemplarisch betrachtet
betrachtet
WS
© Klaus Schild, 2004
20
Beispiel
Buchungsanfrage:
ƒ Unternehmen ruft Buchungsprozedur eines
Reiseunternehmens auf
ƒ Buchung nimmt häufig längere Zeit in Anspruch.
Zuverlässige
Kommunikation
© Klaus Schild, 2004
ƒ deshalb asynchroner Aufruf der Buchungsprozedur
21
Asynchrone Buchungsprozedur
© Klaus Schild, 2004
22
Zuverlässige Buchungsanfrage
RPC-Aufruf
RPC-Aufruf
Client
Anfrage
(request)
Server
Anfrage
akzeptiert
(accept)
Client
Anfrage
(request)
Server
Ergebnis
Anfrage
akzeptiert
(accept)
Ergebnis
Aufruf lokaler
Prozedur
Aufruf lokaler
Prozedur
ƒ Anfrage (request):
ƒ Buchungsanforderung wird vom Client aufgerufen
ƒ Client wartet bis er vom Server Bestätigung der
Annahme bekommen hat.
genau einmal zustellen
ƒ Annahme (accept):
mindestens einmal zustellen
ƒ Ergebnis:
genau einmal zustellen
ƒ Annahme immer vor Ergebnis, ansonsten wird evtl. eine
zweite Buchungsanfrage gestellt.
ƒ Server schickt später das endgültige Ergebnis der
Buchungsanfrage
© Klaus Schild, 2004
RPC abgeschlossen
auf accept
warten
RPC abgeschlossen
auf accept
warten
ÎAnnahme und
und Ergebnis
Ergebnis bilden
bilden eine
eine Sequenz
Sequenz
ÎAnnahme
23
© Klaus Schild, 2004
24
4
WS Reliable Messaging
Beispiel
ƒ XML-Protokoll 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 2003
ƒ noch kein etablierter Standard
Î http://www-106.ibm.com/developerworks/library/ws-rm/
ƒƒ
ƒƒ
Sequenz von
von drei
drei Nachrichten
Nachrichten
Sequenz
jede
Nachricht
genau
einmal zustellen
zustellen
jede Nachricht genau einmal
Reihenfolge beachten
beachten
ƒƒ Reihenfolge
Empfang bestätigen
bestätigen
ƒƒ Empfang
© Klaus Schild, 2004
25
Beispiel
© Klaus Schild, 2004
© Klaus Schild, 2004
26
Sequenz von SOAPSOAP-Nachrichten senden
27
© Klaus Schild, 2004
28
Erste SOAPSOAP-Nachricht
Erste SOAPSOAP-Nachricht
<S:Envelopexmlns:wsrm="http://schemas.xmlsoap.org/ws/2003/03/rm"
xmlns:wsrm="http://schemas.xmlsoap.org/ws/2003/03/rm"
<S:Envelope
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e
http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e
</wsa:MessageID>
</wsa:MessageID>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:ReplyTo>
<wsa:ReplyTo>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
</wsa:ReplyTo>
</wsa:ReplyTo>
WS RM
RM benutzt
benutzt WS
WS
ƒƒ WS
<wsrm:Sequence>
<wsrm:Sequence>
Addressing
Addressing
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:MessageNumber>1</wsrm:MessageNumber>
Nachricht hat
hat eindeutige
eindeutige
<wsrm:MessageNumber>1</wsrm:MessageNumber>
ƒƒ Nachricht
</wsrm:Sequence>
</wsrm:Sequence>
Referenz(MessageID)
(MessageID)
Referenz
</S:Header>…
…
</S:Header>
<S:Envelopexmlns:wsrm="http://schemas.xmlsoap.org/ws/2003/03/rm"
xmlns:wsrm="http://schemas.xmlsoap.org/ws/2003/03/rm"
<S:Envelope
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
WS RM
RM benutzt
benutzt WS
WS Utilities
Utilities
ƒƒ WS
http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e
http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e
ƒ
Sequenz
hat
eindeutige
Referenz(Identifier)
(Identifier)
</wsa:MessageID>
ƒ
Sequenz
hat
eindeutige
Referenz
</wsa:MessageID>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
ƒ erste
erste Nachricht
Nachricht der
der Sequenz
Sequenz(MessageNumber)
(MessageNumber)
ƒ
<wsa:ReplyTo>
<wsa:ReplyTo>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
</wsa:ReplyTo>
</wsa:ReplyTo>
<wsrm:Sequence>
<wsrm:Sequence>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:MessageNumber>1</wsrm:MessageNumber>
<wsrm:MessageNumber>1</wsrm:MessageNumber>
</wsrm:Sequence>
</wsrm:Sequence>
</S:Header>…
…
</S:Header>
© Klaus Schild, 2004
29
© Klaus Schild, 2004
30
5
Zweite SOAPSOAP-Nachricht
Dritte und letzte SOAPSOAP-Nachricht
<S:Envelope…>
…>
<S:Envelope
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
http://Business456.com/guid/daa7d0b2-c8e0-476e-a9a4-d164154e38de
http://Business456.com/guid/daa7d0b2-c8e0-476e-a9a4-d164154e38de
</wsa:MessageID>
</wsa:MessageID>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:ReplyTo>
<wsa:ReplyTo>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
</wsa:ReplyTo>
</wsa:ReplyTo>
<wsrm:Sequence>
<wsrm:Sequence>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:MessageNumber>2</wsrm:MessageNumber>
<wsrm:MessageNumber>2</wsrm:MessageNumber>
</wsrm:Sequence>
</wsrm:Sequence>
neue Nachrichten-Referenz
Nachrichten-Referenz
ƒƒ neue
</S:Header>......
</S:Header>
<S:Envelope…>
…>
<S:Envelope
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
</wsa:MessageID>
</wsa:MessageID>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:To>http://fabrikam123.com/serviceB/123</wsa:To>
<wsa:ReplyTo>
<wsa:ReplyTo>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
<wsa:Address>http://Business456.com/serviceA/789</wsa:Address>
</wsa:ReplyTo>
</wsa:ReplyTo>
<wsrm:Sequence>
<wsrm:Sequence>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:MessageNumber>3</wsrm:MessageNumber>
<wsrm:MessageNumber>3</wsrm:MessageNumber>
<wsrm:LastMessage/>
<wsrm:LastMessage/>
neue Nachrichten-Referenz
Nachrichten-Referenz
</wsrm:Sequence>
ƒƒ neue
</wsrm:Sequence>
</S:Header>…
…
</S:Header>
alte Sequenz-Referenz
Sequenz-Referenz
ƒƒ alte
© Klaus Schild, 2004
alte Sequenz-Referenz
Sequenz-Referenz
ƒƒ alte
31
Bestätigung
© Klaus Schild, 2004
32
Bestätigung
<S:Envelope…>
…>
<S:Envelope
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
</wsa:MessageID>
</wsa:MessageID>
<wsa:To>http://Business456.com/serviceA/789</wsa:To>
<wsa:To>http://Business456.com/serviceA/789</wsa:To>
<wsa:ReplyTo>
<wsa:ReplyTo>
<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>
<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>
</wsa:ReplyTo>
</wsa:ReplyTo>
<wsrm:SequenceAcknowledgment>
<wsrm:SequenceAcknowledgment>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:AcknowledgmentRangeUpper="1"
Upper="1"Lower="1"/>
Lower="1"/>
<wsrm:AcknowledgmentRange
<wsrm:AcknowledgmentRangeUpper="3"
Upper="3"Lower="3"/>
Lower="3"/>
<wsrm:AcknowledgmentRange
</wsrm:SequenceAcknowledgment>
</wsrm:SequenceAcknowledgment>
</S:Header>…
…
</S:Header>
erste und
und dritte
dritte Nachricht
Nachricht angekommen
angekommen
ƒƒ erste
© Klaus Schild, 2004
33
Zweite Nachricht nochmals senden
© Klaus Schild, 2004
34
Zweite Nachricht nochmals senden
<S:Envelope…>
…>
<S:Envelope
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
</wsa:MessageID>
</wsa:MessageID>
…
…
<wsrm:Sequence>
<wsrm:Sequence>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:MessageNumber>2</wsrm:MessageNumber>
<wsrm:MessageNumber>2</wsrm:MessageNumber>
</wsrm:Sequence>
</wsrm:Sequence>
<wsrm:AckRequested>
<wsrm:AckRequested>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
</wsrm:AckRequested>
</wsrm:AckRequested>
</S:Header>…
…
zweite Nachricht
Nachricht der
der Sequenz
Sequenz
</S:Header>
ƒƒ zweite
Bestätigung vom
vom Empfänger
Empfänger verlangt
verlangt
ƒƒ Bestätigung
© Klaus Schild, 2004
35
© Klaus Schild, 2004
36
6
Endgültige Bestätigung
Endgültige Bestätigung
<S:Envelope…>
…>
<S:Envelope
<S:Header>
<S:Header>
<wsa:MessageID>
<wsa:MessageID>
http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
http://fabrikam123.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817
</wsa:MessageID>
</wsa:MessageID>
<wsa:To>http://Business456.com/serviceA/789</wsa:To>
<wsa:To>http://Business456.com/serviceA/789</wsa:To>
<wsa:ReplyTo>
<wsa:ReplyTo>
<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>
<wsa:Address>http://fabrikam123.com/serviceB/123</wsa:Address>
</wsa:ReplyTo>
</wsa:ReplyTo>
<wsrm:SequenceAcknowledgment>
<wsrm:SequenceAcknowledgment>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsu:Identifier>http://Business456.com/RM/ABC</wsu:Identifier>
<wsrm:AcknowledgmentRangeUpper="3"
Upper="3"Lower="1"/>
Lower="1"/>
<wsrm:AcknowledgmentRange
</wsrm:SequenceAcknowledgment>
</wsrm:SequenceAcknowledgment>
</S:Header>…
…
</S:Header>
Sequenz vollständig
vollständig empfangen
empfangen
ƒƒ Sequenz
© Klaus Schild, 2004
37
© Klaus Schild, 2004
Was gibt es noch?
Integration in SOAP oder WSDL?
ƒ wsu:Expires: Verfallsdatum und -zeit
ƒ WS-RM-Elemente können im Briefkopf einer SOAPNachricht erscheinen.
ƒ wsrm:SequenceFault: Fehlermeldung bzgl. Sequenzen,
wie z.B. wsrm:SequenceTerminated oder
wsrm:InvalidAcknowledgement
ƒ Elemente wie z.B.
<wsrm:DeliveryAssurance Value="wsrm:AtLeastOnce"/>
ƒ wsrm:DeliveryAssurance: verlangte Zuverlässigkeit, z.B.
AtLeastOnce oder InOrder
machen in SOAP-Nachrichten allerdings keinen Sinn.
ƒ Solche Elemente werden in einer WSDL-Beschreibung
integriert.
ƒ wsrm:InactivityTimeout: wie lange ein Empfänger
höchstens auf die nächste Nachricht warten muss
© Klaus Schild, 2004
39
Zweistufige Integration in WSDL
ƒ Gleiches Vorgehen auch bei anderen Erweiterungen:
WS Addressing
…
WS Policy
WSDL
© Klaus Schild, 2004
40
<wsdl:definitionsname="PurchaseOrder"
name="PurchaseOrder"…>
…>
<wsdl:definitions
<wsdl:messagename="OrderRequest">
name="OrderRequest">
<wsdl:message
<wsp:Policy>
<wsp:Policy>
<wsrm:DeliveryAssuranceValue="wsrm:ExactlyOnce"
Value="wsrm:ExactlyOnce"
<wsrm:DeliveryAssurance
wsp:Usage="wsp:Required"/>
wsp:Usage="wsp:Required"/>
</wsp:Policy>
</wsp:Policy>
…
…
</wsdl:message>
</wsdl:message>
<wsdl:messagename="OrderAccept">
name="OrderAccept">
<wsdl:message
…
…
hier wsp:Policy
wsp:Policy als
als Erweiterungselement
Erweiterungselement
</wsdl:message>
ƒƒ hier
</wsdl:message>
…ƒ tatsächlich erlaubt aber WSDL für message und
…
ƒ tatsächlich erlaubt aber WSDL für message und
</wsdl:definitions>
</wsdl:definitions>
portType keine Erweiterungselemente
2. Diese Kommunikationsregeln werden dann in WSDL
integriert.
WS Security
© Klaus Schild, 2004
Beispiel
1. WS-RM-Elemente werden als Kommunikationsregeln
(policy) formuliert – und zwar mit Hilfe von WS Policy.
WS RM
38
portType keine Erweiterungselemente
daher etwas
etwas andere
andere Kodierung
Kodierung mit
mit Attributen
Attributen
ƒƒ daher
41
© Klaus Schild, 2004
42
7
Bewertung der Erweiterungen
+ einzelne Erweiterungen unabhängig voneinander
+ meist gemeinsame Vorschläge von Microsoft und IBM
Bewertung der
Erweiterungen
-
noch keine etablierten Standards
-
WS Policy Grammatik zur Festlegung von qualitativen
Aspekten, einzelne qualitative Aspekte müssen noch
standardisiert werden
prinzipiellen Hürden,
Hürden, jedoch
jedoch noch
noch
Keine prinzipiellen
Keine
ein langer
langer Standardisierungsweg
Standardisierungsweg zu
zu gehen!
gehen!
ein
© Klaus Schild, 2004
43
© Klaus Schild, 2004
44
Lernziele
; Wie wird WSDL verwendet?
; Anforderungen der Praxis
; Erweiterungen von SOAP/WSDL
ƒ Kurze Wiederholung von
Themen, die bei Rücksprachen
Probleme bereiteten.
nächste
nächste
Woche
Woche
ƒ Diskussionswürdiges
© Klaus Schild, 2004
45
8