|
WHITE MESA SOFTWARE |
| Home Download Links Documentation |
White Mesa SOAP Server: Web Services Routing Protocol Implementation |
|
The Web Services Routing Protocol offers a means to control the message path along which a SOAP method passes as it moves from sender to receiver, perhaps through one or more intermediaries. It is implemented as a SOAP extension, embodied in a SOAP Header entry. This is an experimental implementation! The WS-Routing implementation consists of a Header processing component, and a WSDL document containing the demonstration service definition, and a simple browser based test client. The header processor handling the WS-Routing header relies upon the ability of the White Mesa server to act as an intermediary. This is described in more detail here. The server's header processing mechanism is discussed here , including the topic of WSDL syntax for describing SOAP header entries. A public WS-Routing intermediary node exists for demonstration purposes at http://www.whitemesa.net/interop/wsrouter. A browser based test client is available to exercise the service. The client requires IE 5.0 or higher to run. The wire dumps are displayed so that the WS-Routing header entry can be examined in detail. Also:
|
ConfigurationSetting up the WS-Routing handler for a SOAP service requires:
|
ExampleHere is an example "echoString()" call from the client to endpoint "delta.whitemesa.net" via intermediary "www.whitemesa.net": [Request from client to intermediary] <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<h:path xmlns:h="http://schemas.xmlsoap.org/rp/"
SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next"
SOAP-ENV:mustUnderstand="1">
<rp:action xmlns:rp="http://schemas.xmlsoap.org/rp/">
http://soapinterop.org/
</rp:action>
<rp:to xmlns:rp="http://schemas.xmlsoap.org/rp/">
http://delta.whitemesa.net/multihop
</rp:to>
<rp:fwd xmlns:rp="http://schemas.xmlsoap.org/rp/">
<rp:via>http://www.whitemesa.net/interop/std/multihop</rp:via>
</rp:fwd>
<rp:rev xmlns:rp="http://schemas.xmlsoap.org/rp/">
<rp:via/>
</rp:rev>
<rp:from xmlns:rp="http://schemas.xmlsoap.org/rp/">
testclient@whitemesa.net
</rp:from>
<rp:id xmlns:rp="http://schemas.xmlsoap.org/rp/">
uuid:EC823E93-BE2B-F9DC-8BB7-CD54B16C6EC1
</rp:id>
</h:path>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:echoString xmlns:m="http://soapinterop.org/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">>
<inputString>Hello World!</inputString>
</m:echoString>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[Request from intermediary to endpoint] <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<rp:path SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next"
SOAP-ENV:mustUnderstand="1"
xmlns:rp="http://schemas.xmlsoap.org/rp/">
<rp:action>http://soapinterop.org/</rp:action>
<rp:to>http://delta.whitemesa.net/multihop</rp:to>
<rp:fwd />
<rp:rev>>
<rp:via />
<rp:via />
</rp:rev>
<rp:from>testclient@whitemesa.net</rp:from>
<rp:id>uuid:EC823E93-BE2B-F9DC-8BB7-CD54B16C6EC1</rp:id>
</rp:path>
</SOAP-ENV:Header>>
<SOAP-ENV:Body>
<m:echoString xmlns:m="http://soapinterop.org/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<inputString>Hello World!</inputString>>
</m:echoString>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[Response from endpoint to intermediary] <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<rp:path SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next"
SOAP-ENV:mustUnderstand="1"
xmlns:rp="http://schemas.xmlsoap.org/rp/">
<rp:action>http://soapinterop.org/</rp:action>
<rp:fwd>
<rp:via />
<rp:via />
</rp:fwd>
<rp:rev>
<rp:via>http://delta.whitemesa.net/multihop</rp:via>
</rp:rev>
<rp:from>mailto:delta@whitemesa.net</rp:from>
<rp:id>uuid:A482E1E9-EAA7-4965-84F9-39DB739C1129</rp:id>>
<rp:relatesTo>uuid:EC823E93-BE2B-F9DC-8BB7-CD54B16C6EC1</rp:relatesTo>
</rp:path>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:echoStringResponse xmlns:m="http://soapinterop.org/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return>Hello World!</return>
</m:echoStringResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[Response from intermediary to client] <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<rp:path SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next"
SOAP-ENV:mustUnderstand="1" xmlns:rp="http://schemas.xmlsoap.org/rp/">
<rp:action>http://soapinterop.org/</rp:action>
<rp:fwd>
<rp:via />
</rp:fwd>
<rp:rev>
<rp:via>http://www.whitemesa.net/interop/std/multihop</rp:via>
<rp:via>http://delta.whitemesa.net/multihop</rp:via>
</rp:rev>
<rp:from>mailto:delta@whitemesa.net</rp:from>
<rp:id>uuid:A482E1E9-EAA7-4965-84F9-39DB739C1129</rp:id>
<rp:relatesTo>uuid:EC823E93-BE2B-F9DC-8BB7-CD54B16C6EC1</rp:relatesTo>
</rp:path>
</SOAP-ENV:Header>>
<SOAP-ENV:Body>
<m:echoStringResponse xmlns:m="http://soapinterop.org/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return>Hello World!</return>
</m:echoStringResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
| Home Download Links Documentation |
Copyright © 2003 by Robert Cunnings. cunnings@whitemesa.com Last modified: Feb 2, 2003 |