ࡱ > @ d bjbj ( \ 4 4 4 4 4 4 4 H E E E E t G H e R G O O O O P r MV d W e e e e e e e $ g R +j ,e 4 cY P P cY cY ,e 4 4 O O Ae Z Z Z cY " 4 O 4 O e Z cY e Z Z V ` 4 4 Jb O G O E Y a Zd We 0 e a T j Z j Jb H H 4 4 4 4 j 4 Jb eX " X Z X X eX eX eX ,e ,e H H d7 E Z H H E Web Services Addressing Metadata Interoperability Scenarios
May 14, 2007
Authors
Ondrej Hrebicek, MicrosoftRam Jeyaraman, Microsoft (Editor) David Illsley, IBM (Editor) Katy Warr, IBM
Copyright Notice
Microsoft and IBM grant the World Wide Web Consortium ('HYPERLINK "http://www.w3.org/" \o "http://www.w3.org/"W3C') the rights to publish this document (the Materials) under the W3C HYPERLINK "http://www.w3.org/Consortium/Legal/copyright-documents.html" \o "http://www.w3.org/Consortium/Legal/copyright-documents.html"Document License as posted on June 14, 2006, so long as the Materials retain their original unmodified Copyright notices. No other licenses, whether express or implied, are granted by the submission of the Materials.
(c) 2002-2007 HYPERLINK "http://www.ibm.com/" \o "http://www.ibm.com/"International Business Machines Corporation and HYPERLINK "http://www.microsoft.com/" \o "http://www.microsoft.com/"Microsoft Corporation.
All rights reserved.
Permission to copy and display the Web Services Addressing Metadata Interoperability Scenarios Document (the Scenarios), in any medium without fee or royalty is hereby granted, provided that you include the following on ALL copies of the Scenarios that you make:
1. A link or URL to the Scenarios at one of the Authors websites.
2. The copyright notice as shown in the Scenarios.
THE SCENARIOS ARE PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SCENARIOS ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SCENARIOS.
The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the Scenarios or its contents without specific, written prior permission. Title to copyright in the Scenarios will at all times remain with the Authors.
No other rights are granted by implication, estoppel or otherwise.
Table of Contents
TOC \o "1-1" \h \z \t "Heading 2,2,Heading 3,3" HYPERLINK \l "_Toc166858478"Authors PAGEREF _Toc166858478 \h 1
HYPERLINK \l "_Toc166858479"Copyright Notice PAGEREF _Toc166858479 \h 1
HYPERLINK \l "_Toc166858480"Table of Contents PAGEREF _Toc166858480 \h 2
HYPERLINK \l "_Toc166858481"Introduction PAGEREF _Toc166858481 \h 3
HYPERLINK \l "_Toc166858482"Namespaces PAGEREF _Toc166858482 \h 3
HYPERLINK \l "_Toc166858483"Notes PAGEREF _Toc166858483 \h 4
HYPERLINK \l "_Toc166858484"1. WS-Policy Assertion Scenarios PAGEREF _Toc166858484 \h 4
HYPERLINK \l "_Toc166858485"1.1 Empty wsam:Addressing attached to wsdl:binding (mixed mode) PAGEREF _Toc166858485 \h 4
HYPERLINK \l "_Toc166858486"1.1.1 Anonymous response endpoint URI PAGEREF _Toc166858486 \h 4
HYPERLINK \l "_Toc166858487"1.1.2 Non-anonymous response endpoint URI PAGEREF _Toc166858487 \h 4
HYPERLINK \l "_Toc166858488"1.1.3 None response endpoint URI PAGEREF _Toc166858488 \h 4
HYPERLINK \l "_Toc166858489"1.1.4 Valid anonymous ReplyTo and non-anonymous FaultTo response endpoint URI PAGEREF _Toc166858489 \h 5
HYPERLINK \l "_Toc166858490"1.1.5 Invalid anonymous ReplyTo and non-anonymous FaultTo response endpoint URI PAGEREF _Toc166858490 \h 5
HYPERLINK \l "_Toc166858491"1.1.6 Valid non-anonymous ReplyTo and anonymous FaultTo response endpoint URI PAGEREF _Toc166858491 \h 5
HYPERLINK \l "_Toc166858492"1.1.7 Invalid Non-Anonymous ReplyTo and anonymous FaultTo response endpoint URI PAGEREF _Toc166858492 \h 5
HYPERLINK \l "_Toc166858493"1.2 wsam:Addressing with wsam:AnonymousResponses attached to wsdl:binding PAGEREF _Toc166858493 \h 5
HYPERLINK \l "_Toc166858494"1.2.1 Anonymous response endpoint URI PAGEREF _Toc166858494 \h 6
HYPERLINK \l "_Toc166858495"1.2.2 None response endpoint URI PAGEREF _Toc166858495 \h 6
HYPERLINK \l "_Toc166858496"1.3 wsam:Addressing with wsam:NonAnonymousResponses attached to wsdl:binding PAGEREF _Toc166858496 \h 6
HYPERLINK \l "_Toc166858497"1.3.1 Non-Anonymous response endpoint URI PAGEREF _Toc166858497 \h 6
HYPERLINK \l "_Toc166858498"1.3.2 None response endpoint URI PAGEREF _Toc166858498 \h 6
HYPERLINK \l "_Toc166858499"2 Action Scenarios PAGEREF _Toc166858499 \h 7
HYPERLINK \l "_Toc166858500"2.1 Explicit Action Association PAGEREF _Toc166858500 \h 7
HYPERLINK \l "_Toc166858501"2.2 Explicit Action Association, Multiple Operations PAGEREF _Toc166858501 \h 7
HYPERLINK \l "_Toc166858502"2.3 Default Action Association, Multiple Operations PAGEREF _Toc166858502 \h 8
HYPERLINK \l "_Toc166858503"Message Examples PAGEREF _Toc166858503 \h 8
HYPERLINK \l "_Toc166858504"Anonymous Request PAGEREF _Toc166858504 \h 9
HYPERLINK \l "_Toc166858505"Anonymous Response PAGEREF _Toc166858505 \h 9
HYPERLINK \l "_Toc166858506"Non-Anonymous Request PAGEREF _Toc166858506 \h 10
HYPERLINK \l "_Toc166858507"Non-Anonymous Response PAGEREF _Toc166858507 \h 10
HYPERLINK \l "_Toc166858508"Valid Anonymous ReplyTo / Non-Anonymous FaultTo Request PAGEREF _Toc166858508 \h 10
HYPERLINK \l "_Toc166858509"Invalid Anonymous ReplyTo / Non-Anonymous FaultTo Request PAGEREF _Toc166858509 \h 11
HYPERLINK \l "_Toc166858510"Valid Non-Anonymous ReplyTo / Anonymous FaultTo Request PAGEREF _Toc166858510 \h 12
HYPERLINK \l "_Toc166858511"Invalid Non-Anonymous ReplyTo / Anonymous FaultTo Request PAGEREF _Toc166858511 \h 12
HYPERLINK \l "_Toc166858512"None Request PAGEREF _Toc166858512 \h 13
Introduction
This document describes interoperability test scenarios for WS-Addressing Metadata specification. These tests cover functionality that have been newly added to the WS-Addressing Metadata specification, since the publication of the HYPERLINK "http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/"WS-Addressing WSDL Binding Candidate Recommendation.
Namespaces
Unless overridden by a namespace declaration inside an XML fragment, this document uses the following namespaces:
PrefixNamespacesHYPERLINK "http://www.w3.org/2003/05/soap-envelope"http://www.w3.org/2003/05/soap-envelopewsaHYPERLINK "http://www.w3.org/2005/08/addressing"http://www.w3.org/2005/08/addressingwsamHYPERLINK "http://www.w3.org/2007/02/addressing/metadata"http://www.w3.org/2007/02/addressing/metadatawsdl HYPERLINK "http://schemas.xmlsoap.org/wsdl/" http://schemas.xmlsoap.org/wsdl/wspHYPERLINK "http://www.w3.org/ns/ws-policy"http://www.w3.org/ns/ws-policy
Notes
The wsp:Policy expressions listed within the examples below are referenced by their IDs using wsp:PolicyReference elements located inside wsdl:binding elements.
WS-Policy Assertion Scenarios
Empty wsam:Addressing attached to wsdl:binding (mixed mode)
This scenario covers the case of a service endpoint that requires clients to use WS-Addressing. The service endpoint fully supports WS-Addressing without any constraints.
The services wsam:Addressing assertion appears as follows:
Anonymous response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to HYPERLINK "http://www.w3.org/2005/08/addressing/anonymous"http://www.w3.org/2005/08/addressing/anonymous.
The client sends an HYPERLINK \l "_Anonymous_Request"Anonymous Request and receives an HYPERLINK \l "_Anonymous_Response"Anonymous Response on the HTTP response.
Non-anonymous response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to a non-anonymous URI.
The client sends a HYPERLINK \l "_Addressable_Request"Non-Anonymous Request and receives a HYPERLINK \l "_Addressable_Response"Non-Anonymous Response on a new HTTP connection.
None response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to HYPERLINK "http://www.w3.org/2005/08/addressing/none"http://www.w3.org/2005/08/addressing/none.
The client sends a HYPERLINK \l "_None_Request"None Request and receives an HTTP 202 Accepted response.
Valid anonymous ReplyTo and non-anonymous FaultTo response endpoint URI
This scenario covers the case of a client sending valid messages with an anonymous URI in the ReplyTo header and a non-anonymous URI in the FaultTo header.
The client sends a HYPERLINK \l "_Valid_Anonymous_ReplyTo"Valid Anonymous ReplyTo / Non-Anonymous FaultTo Request and receives an HYPERLINK \l "_Anonymous_Response"Anonymous Response on the HTTP response.
Invalid anonymous ReplyTo and non-anonymous FaultTo response endpoint URI
This scenario covers the case of a client sending invalid, fault inducing messages with an anonymous URI in the ReplyTo header and a non-anonymous URI in the FaultTo header.
The client sends an HYPERLINK \l "_Invalid_Anonymous_ReplyTo"Invalid Anonymous ReplyTo / Non-Anonymous FaultTo Request and receives an Non-Anonymous wsa:ActionNotSupported fault on a new HTTP connection.
Valid non-anonymous ReplyTo and anonymous FaultTo response endpoint URI
This scenario covers the case of a client sending valid messages with a non-anonymous URI in the ReplyTo header and an anonymous URI in the FaultTo header.
The client sends a HYPERLINK \l "_Valid_Addressable_ReplyTo"Valid Non-Anonymous ReplyTo / Anonmyous FaultTo Request and receives a HYPERLINK \l "_Addressable_Response"Non-Anonymous Response on a new HTTP connection.
Invalid Non-Anonymous ReplyTo and anonymous FaultTo response endpoint URI
This scenario covers the case of a client sending invalid, fault inducing messages with a non-anonymous URI in the ReplyTo header and an anonymous URI in the FaultTo header.
The client sends an HYPERLINK \l "_Invalid_Addressable_ReplyTo"Invalid Non-Anonymous ReplyTo / Anonymous FaultTo Request and receives a wsa:ActionMismatch fault on the HTTP response.
wsam:Addressing with wsam:AnonymousResponses attached to wsdl:binding
This scenario set covers the case of a service endpoint that requires WS-Addressing and requires the use of anonymous responses.
The services wsam:Addressing assertion appears as follows:
Anonymous response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to an anonymous URI.
The client sends an HYPERLINK \l "_Anonymous_Request"Anonymous Request and receives an HYPERLINK \l "_Anonymous_Response"Anonymous Response.
None response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to HYPERLINK "http://www.w3.org/2005/08/addressing/none"http://www.w3.org/2005/08/addressing/none.
The client sends a HYPERLINK \l "_None_Request"None Request and receives an HTTP 202 Accepted response.
wsam:Addressing with wsam:NonAnonymousResponses attached to wsdl:binding
This scenario set covers the case of a service endpoint that requires WS-Addressing and requires the use of non-anonymous responses.
The services wsam:Addressing assertion appears as follows:
Non-Anonymous response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to a non-anonymous URI.
The client sends a HYPERLINK \l "_Addressable_Request"Non-Anonymous Request and receives an HYPERLINK \l "_Addressable_Response"Non-Anonymous Response.
None response endpoint URI
This scenario covers the case of a client sending messages with the response endpoint URI set to HYPERLINK "http://www.w3.org/2005/08/addressing/none"http://www.w3.org/2005/08/addressing/none.
The client sends a HYPERLINK \l "_None_Request"None Request and receives an HTTP 202 Accepted response.
Action Scenarios
Explicit Action Association
This scenario covers the case of a WSDL document which explicitly defines the WS-Addressing action for each message.
The wsdl:portType element in the WSDL would appear as follows:
A client generated from a WSDL that contained the XML fragment above and that is connected to an endpoint defined by the port type above must have the highlighted input action above in its wsa:Action header. The endpoints must respond with a message that has the highlighted output action in its wsa:Action header. See the HYPERLINK \l "_Anonymous_Request"Anonymous Request and HYPERLINK \l "_Anonymous_Response"Anonymous Response messages as an example.
Explicit Action Association, Multiple Operations
This scenario covers the case of a WSDL document with a single wsdl:portType element. The wsdl:portType element contains two operations as follows:
Since wsdl:input elements message attribute has the same value for both operations, the request body will be the same. The endpoint will have to dispatch the request correctly based on the wsa:Action header only and respond with a message that has the right endpoints action and body.
The first message sent by this scenario will carry action HYPERLINK "http://tempuri.org/IEchoString/Echo"http://tempuri.org/IEchoString/Echo and expect action HYPERLINK "http://tempuri.org/IEchoString/EchoResponse"http://tempuri.org/IEchoString/EchoResponse in return.
The second message sent by this scenario will carry action HYPERLINK "http://tempuri.org/IEchoString/EchoToInt"http://tempuri.org/IEchoString/EchoToInt and expect action HYPERLINK "http://tempuri.org/IEchoString/EchoToIntResponse"http://tempuri.org/IEchoString/EchoToIntResponse in return.
Default Action Association, Multiple Operations
This scenario covers the case of a WSDL document with a single wsdl:portType element. The wsdl:portType elements contains two operations as follows:
The reasoning for this scenario is identical as for scenario 2.2. The only difference is that the wsa:Action header is now inferred from the WSDL.
The first message sent by this scenario will carry action HYPERLINK "http://tempuri.org/IEchoString/Echo/Echo"http://tempuri.org/IEchoString/Echo/Echo and expect action HYPERLINK "http://tempuri.org/IEchoString/EchoResponse/EchoResponse"http://tempuri.org/IEchoString/EchoResponse/EchoResponse in return.
The second message sent by this scenario will carry action HYPERLINK "http://tempuri.org/IEchoString/EchoToInt/EchoToInt"http://tempuri.org/IEchoString/EchoToInt/EchoToInt and expect action HYPERLINK "http://tempuri.org/IEchoString/EchoToIntResponse/EchoToIntResponse"http://tempuri.org/IEchoString/EchoToIntResponse/EchoToIntResponse in return.
Message Examples
The following rules apply to the sample messages listed below:
All non-anonymous URIs can change to other non-anonymous URIs.
An absent To header is equivalent to a To header with the anonymous URI.
An invalid message is one that causes a wsa:ActionMismatch fault.
Anonymous Request
http://tempuri.org/IEchoString/Echo
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
http://www.w3.org/2005/08/addressing/anonymous
http://localhost/service/endpoint
Message
Anonymous Response
http://tempuri.org/IEchoString/EchoResponse
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
Message
Non-Anonymous Request
http://tempuri.org/IEchoString/Echo
urn:uuid:d67d2bbd-8496-4202-b709-9aaafe43ffef
http://localhost/client/endpoint
http://localhost/service/endpoint
Message
Non-Anonymous Response
http://tempuri.org/IEchoString/EchoResponse
urn:uuid:d67d2bbd-8496-4202-b709-9aaafe43ffef
http://localhost/service/endpoint
Message
Valid Anonymous ReplyTo / Non-Anonymous FaultTo Request
http://tempuri.org/IEchoString/Echo
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
http://www.w3.org/2005/08/addressing/anonymous
http://localhost/service/endpoint
http://localhost/service/endpoint
Message
Invalid Anonymous ReplyTo / Non-Anonymous FaultTo Request
http://tempuri.org/IEchoString/EchoBad
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
http://www.w3.org/2005/08/addressing/anonymous
http://localhost/service/endpoint
http://localhost/service/endpoint
Message
Valid Non-Anonymous ReplyTo / Anonymous FaultTo Request
http://tempuri.org/IEchoString/Echo
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
http://localhost/service/endpoint
http://www.w3.org/2005/08/addressing/anonymous
http://localhost/service/endpoint
Message
Invalid Non-Anonymous ReplyTo / Anonymous FaultTo Request
http://tempuri.org/IEchoString/EchoBad
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
http://localhost/service/endpoint
http://www.w3.org/2005/08/addressing/anonymous
http://localhost/service/endpoint
Message
None Request
http://tempuri.org/IEchoString/Echo
urn:uuid:9eeef435-85c9-4579-8dc3-9681f8c3651a
http://www.w3.org/2005/08/addressing/none
http://localhost/service/endpoint
Message
1 ; < I Q ` ; < ? @
!
"
3 4 _ ` e f # , H J f g n ٻѲѻѲѻќю h'o` h-(4 0J mH nH uh-$ h hPs hK__ h h h h8 0J h h8 h h8 0J aJ h"x j h"x Uh h8 B*ph h8 h8 hJ 5h\ h8 hPs h 6 < I Q
$
W
1 }
$
&