CSCI 599: Beyond Web Browsers

48
CSCI 599: Beyond Web CSCI 599: Beyond Web Browsers Browsers Professor Shahram Ghandeharizadeh Professor Shahram Ghandeharizadeh Computer Science Department Computer Science Department Los Angeles, CA 90089 Los Angeles, CA 90089

description

CSCI 599: Beyond Web Browsers. Professor Shahram Ghandeharizadeh Computer Science Department Los Angeles, CA 90089. eXtensible Markup Language (XML). XML: A World-Wide-Web Consortium (W3C) standard. Enables you to create your own tags. - PowerPoint PPT Presentation

Transcript of CSCI 599: Beyond Web Browsers

Page 1: CSCI 599:  Beyond Web Browsers

CSCI 599: Beyond Web CSCI 599: Beyond Web BrowsersBrowsers

Professor Shahram GhandeharizadehProfessor Shahram GhandeharizadehComputer Science DepartmentComputer Science DepartmentLos Angeles, CA 90089Los Angeles, CA 90089

Page 2: CSCI 599:  Beyond Web Browsers

eXtensible Markup Language (XML)eXtensible Markup Language (XML)

XML:XML: A World-Wide-Web Consortium (W3C) standard.A World-Wide-Web Consortium (W3C) standard. Enables you to create your own tags.Enables you to create your own tags. Emerging as a standard for interoperability Emerging as a standard for interoperability

among applications that wish to exchange data.among applications that wish to exchange data. Separates content (document) from presentation Separates content (document) from presentation

(style sheet).(style sheet).

Page 3: CSCI 599:  Beyond Web Browsers

XML TerminologyXML Terminology An XML element is made up of a start tag, an end tag, and data An XML element is made up of a start tag, an end tag, and data

in between:in between: <<classclass>csci599<>csci599</class/class>> Tags without text can contain the end marker at the end of the Tags without text can contain the end marker at the end of the

start tag, I.e., <class></class> is equivalent to: <class />start tag, I.e., <class></class> is equivalent to: <class />

An element may contain one or more attributes:An element may contain one or more attributes: <class <class type=“Seminar”>type=“Seminar”>csci599</class>csci599</class> An attribute is a name-value pair separated by ‘=‘An attribute is a name-value pair separated by ‘=‘ Attribute values must be enclosed in quotation marks.Attribute values must be enclosed in quotation marks.

Document Type Definition (DTD): defines the tags contained Document Type Definition (DTD): defines the tags contained in your document, what tags contain other tags, number and in your document, what tags contain other tags, number and sequence of tags, the attributes your tags may have, and sequence of tags, the attributes your tags may have, and optionally, the values those attributes may have.optionally, the values those attributes may have.

Describes data within the tags! “class” is Describes data within the tags! “class” is a tag!a tag!

Page 4: CSCI 599:  Beyond Web Browsers

XML Name Space (xmlns)XML Name Space (xmlns) Collection of names used as element or Collection of names used as element or

attribute names in an XML document.attribute names in an XML document. Qualifies element names on the Web to Qualifies element names on the Web to

avoid conflicts between elements with the avoid conflicts between elements with the same name.same name.

A name space is identified by a globally A name space is identified by a globally unique URI (across the Internet).unique URI (across the Internet).

Name spaces are declared in 2 ways:Name spaces are declared in 2 ways:1.1. ExplicitExplicit

2.2. ImplicitImplicit

Page 5: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance.Money”>xmlns:money=“urn:Finance.Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>22.95</bk:PRICE>DOLLAR”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

Page 6: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance.Money”xmlns:money=“urn:Finance.Money”>>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>22.95</bk:PRICE>DOLLAR”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

Declares “bk” and “money” to be shorthand for the full names Declares “bk” and “money” to be shorthand for the full names

of their respective namespacesof their respective namespaces. . Bk and money are name Bk and money are name

spaces.spaces.

Page 7: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfourn:BookLovers.org:BookInfo” ” xmlns:money=“urn:Finance.Money”>xmlns:money=“urn:Finance.Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>22.95</bk:PRICE>DOLLAR”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

This is the namespace value for “bk” variable!This is the namespace value for “bk” variable!

Page 8: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfourn:BookLovers.org:BookInfo” ” xmlns:money=“urn:Finance:Money”>xmlns:money=“urn:Finance:Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>22.95</bk:PRICE>DOLLAR”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

All elements/attributes beginning with “bk:” or “money:” are All elements/attributes beginning with “bk:” or “money:” are considered to be from the namespace considered to be from the namespace “urn:BookLovers.org:BookInfo” or “urn:Finance:Money”“urn:BookLovers.org:BookInfo” or “urn:Finance:Money”

Page 9: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance:Money”>xmlns:money=“urn:Finance:Money”>

<<bk:TITLEbk:TITLE>Web Services</bk:TITLE>>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>22.95</bk:PRICE>DOLLAR”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

This is the bk namespace prefix qualifying the TITLE tag!This is the bk namespace prefix qualifying the TITLE tag!

Page 10: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance:Money”>xmlns:money=“urn:Finance:Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>DOLLAR”>22.9522.95</bk:PRICE></bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

What is this?What is this?

Page 11: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance:Money”>xmlns:money=“urn:Finance:Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“US <bk:PRICE money:currency=“US DOLLAR”>DOLLAR”>22.9522.95</bk:PRICE></bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

Price element value!Price element value!

Page 12: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance:Money”>xmlns:money=“urn:Finance:Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“<bk:PRICE money:currency=“US US DOLLARDOLLAR”>22.95</bk:PRICE>”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

What is this?What is this?

Page 13: CSCI 599:  Beyond Web Browsers

Explicit xmlnsExplicit xmlns<BOOKS><BOOKS>

<bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” <bk:BOOK xmlns:bk=“urn:BookLovers.org:BookInfo” xmlns:money=“urn:Finance:Money”>xmlns:money=“urn:Finance:Money”>

<bk:TITLE>Web Services</bk:TITLE><bk:TITLE>Web Services</bk:TITLE>

<bk:PRICE money:currency=“<bk:PRICE money:currency=“US US DOLLARDOLLAR”>22.95</bk:PRICE>”>22.95</bk:PRICE>

</bk:BOOK></bk:BOOK>

</BOOKS></BOOKS>

Attribute value!Attribute value!

Page 14: CSCI 599:  Beyond Web Browsers

Implicit xmlnsImplicit xmlns A namespace without a prefix becomes the default namespaceA namespace without a prefix becomes the default namespace

<BOOKS><BOOKS>

<BOOK xmlns=“urn:BookLovers.org:BookInfo”><BOOK xmlns=“urn:BookLovers.org:BookInfo”>

<TITLE>Web Services</TITLE><TITLE>Web Services</TITLE>

<PRICE currency=“<PRICE currency=“US DOLLARUS DOLLAR”>22.95</PRICE>”>22.95</PRICE>

</BOOK></BOOK>

</BOOKS></BOOKS>

Page 15: CSCI 599:  Beyond Web Browsers

GXAGXA GXA, Global XML Web Services ArchitectureGXA, Global XML Web Services Architecture

GXA consists of several specifications:GXA consists of several specifications: DIME Specification Index PageDIME Specification Index Page WS-AttachmentsWS-Attachments WS-CoordinationWS-Coordination WS-InspectionWS-Inspection WS-ReferralWS-Referral WS-RoutingWS-Routing WS-SecurityWS-Security WS-TransactionWS-Transaction

Page 16: CSCI 599:  Beyond Web Browsers

WS-RoutingWS-Routing

Stateless, SOAP-based protocol for routing Stateless, SOAP-based protocol for routing SOAP messages.SOAP messages.

With WS-Routing, the entire message path With WS-Routing, the entire message path for a SOAP message (as well as its return for a SOAP message (as well as its return path) can be described directly in the SOAP path) can be described directly in the SOAP envelope.envelope.

Designed for:Designed for: One-way & two-way messagingOne-way & two-way messaging Peer-to-peer conversationsPeer-to-peer conversations Long running dialogs.Long running dialogs.

Page 17: CSCI 599:  Beyond Web Browsers

WS-RoutingWS-Routing

Why?Why? SOAP-based specifications are designed to be SOAP-based specifications are designed to be

composed with each other to provide a rich composed with each other to provide a rich messaging environment.messaging environment.

WS-Routing encpsulates a message path WS-Routing encpsulates a message path within a SOAP message.within a SOAP message.

Page 18: CSCI 599:  Beyond Web Browsers

WS-RoutingWS-Routing What is missing from SOAP?What is missing from SOAP?

SOAP cannot indicate a message path that SOAP cannot indicate a message path that organizes a collection of Web Services that act organizes a collection of Web Services that act as intermediaries into a sequence.as intermediaries into a sequence.

Example: Example: SOAP message M generated by A can indicate SOAP message M generated by A can indicate

which part of M is intended for B, C, and D.which part of M is intended for B, C, and D. A’s SOAP message A’s SOAP message CANNOTCANNOT indicate that the indicate that the

intermediaries should be organized as follows:intermediaries should be organized as follows:

AA BB CC DD

Page 19: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 20: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to><wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

This is the This is the ultimate end ultimate end point, node Dpoint, node D

Page 21: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd><wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd></wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Forward message Forward message path as an path as an ordered list of via ordered list of via elementselements

Page 22: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from><wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

The node The node originating the originating the message, node Amessage, node A

Page 23: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via><wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

An intermediary An intermediary that the message that the message must visit, node Bmust visit, node B

Page 24: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Another Another intermediary after intermediary after node Bnode B

Page 25: CSCI 599:  Beyond Web Browsers

ProcessingProcessing<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 26: CSCI 599:  Beyond Web Browsers

ProcessingProcessing<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Body> <SOAP-ENV:Body>

......

</SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 27: CSCI 599:  Beyond Web Browsers

ProcessingProcessing<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Body> <SOAP-ENV:Body>

......

</SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 28: CSCI 599:  Beyond Web Browsers

ProcessingProcessing<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Body> <SOAP-ENV:Body>

......

</SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 29: CSCI 599:  Beyond Web Browsers

ProcessingProcessing If the value of “to” element does not identify “D” then WS-Routing If the value of “to” element does not identify “D” then WS-Routing

generates a faultgenerates a fault<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> envelope"> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

</wsrp:fwd> </wsrp:fwd>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id> </wsrp:path> </wsrp:path>

</SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 30: CSCI 599:  Beyond Web Browsers

ExampleExample With rev, WS-Routing builds a reverse pathWith rev, WS-Routing builds a reverse path<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

</wsrp:fwd></wsrp:fwd><wsrp:rev><wsrp:rev></wsrp:rev> </wsrp:rev> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path> </SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 31: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

<wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via></wsrp:fwd></wsrp:fwd><wsrp:rev><wsrp:rev>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via> </wsrp:rev> </wsrp:rev> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path> </SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 32: CSCI 599:  Beyond Web Browsers

ExampleExample<SOAP-ENV:Envelope <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"> <SOAP-ENV:Header> <SOAP-ENV:Header>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd> </wsrp:fwd></wsrp:fwd><wsrp:rev><wsrp:rev>

<wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via>

</wsrp:rev> </wsrp:rev> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path> </SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <SOAP-ENV:Body> ...... </SOAP-ENV:Body> </SOAP-ENV:Body>

</SOAP-ENV:Envelope> </SOAP-ENV:Envelope>

AA BB CC DD

Page 33: CSCI 599:  Beyond Web Browsers

ExampleExample Node D may contact A by:Node D may contact A by:

Setting its <fwd> to the <rev> in order to contact node ASetting its <fwd> to the <rev> in order to contact node A Swap the value of its <to> and <from>Swap the value of its <to> and <from>

<wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/"> <wsrp:path xmlns:wsrp="http://schemas.xmlsoap.org/rp/">

<wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:action>http://www.im.org/chat</wsrp:action> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:to>soap://D.com/some/endpoint</wsrp:to> <wsrp:fwd> <wsrp:fwd>

</wsrp:fwd></wsrp:fwd>

<wsrp:rev><wsrp:rev>

<wsrp:via>soap://C.com</wsrp:via><wsrp:via>soap://C.com</wsrp:via>

<wsrp:via>soap://B.com</wsrp:via> <wsrp:via>soap://B.com</wsrp:via>

</wsrp:rev> </wsrp:rev>

<wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:from>soap://A.com/some/endpoint</wsrp:from> <wsrp:id><wsrp:id>uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6uuid:84b9f5d0-33fb-4a81-b02b5b760641c1d6</wsrp:id> </wsrp:id>

</wsrp:path> </wsrp:path>

AA BB CC DD

Page 34: CSCI 599:  Beyond Web Browsers

WS-RoutingWS-Routing WS-Routing does not define fan-in or fan-out WS-Routing does not define fan-in or fan-out

message path models.message path models.

Page 35: CSCI 599:  Beyond Web Browsers

Questions & Answers Questions & Answers

Page 36: CSCI 599:  Beyond Web Browsers

WS-ReferralWS-Referral Provides a way to configure how SOAP Provides a way to configure how SOAP

routers will build a message pathrouters will build a message path It is a protocol for inserting, deleting, and It is a protocol for inserting, deleting, and

querying routing entries in a SOAP router.querying routing entries in a SOAP router. SOAP router is a web service that:SOAP router is a web service that:

implements WS-Routing,implements WS-Routing, Implements WS-Referral specification.Implements WS-Referral specification.

A SOAP router may use WS-Referral to:A SOAP router may use WS-Referral to: Learn about firewalls and other intermediariesLearn about firewalls and other intermediaries Implement load balancing, etc.Implement load balancing, etc.

Page 37: CSCI 599:  Beyond Web Browsers

WS-ReferralWS-Referral Key specifications: for, if, goKey specifications: for, if, go These can loosely be described as a “for … These can loosely be described as a “for …

if … then go via …”:if … then go via …”:For any SOAP actor name matching the set of SOAP actors For any SOAP actor name matching the set of SOAP actors

listed in the for elementlisted in the for element

If the set of conditions listed in the if element is met and If the set of conditions listed in the if element is met and hence the statement is satisfiedhence the statement is satisfied

Then go via one of the SOAP routers listed in the go Then go via one of the SOAP routers listed in the go elementelement

Page 38: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Example 1 from msdn.micorosoft.comExample 1 from msdn.micorosoft.com<r:ref xmlns:r=“<r:ref xmlns:r=“http://schemas.xmlsoap.org/ws/2001/10/referralhttp://schemas.xmlsoap.org/ws/2001/10/referral”>”>

<r:for><r:for>

<r:exact>soap://example.org/some.doc</r:exact><r:exact>soap://example.org/some.doc</r:exact>

<r:prefix>soap://example.org/topics/icebergs</r:prefix><r:prefix>soap://example.org/topics/icebergs</r:prefix>

</r:for></r:for>

<r:if><r:if>

<r:ttl>43200000</r:ttl><r:ttl>43200000</r:ttl>

</r:if></r:if>

<r:go><r:go>

<r:via>soap://example.com/mirror</r:via><r:via>soap://example.com/mirror</r:via>

</r:go></r:go>

<r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId><r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId>

<r:desc><r:desc>

<r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr><r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr>

</r:desc></r:desc>

</r:ref></r:ref>

Page 39: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Example 1 from msdn.micorosoft.comExample 1 from msdn.micorosoft.com<r:ref xmlns:r=“<r:ref xmlns:r=“http://schemas.xmlsoap.org/ws/2001/10/referralhttp://schemas.xmlsoap.org/ws/2001/10/referral”>”>

<r:for><r:for>

<r:exact>soap://example.org/some.doc</r:exact><r:exact>soap://example.org/some.doc</r:exact>

<r:prefix>soap://example.org/topics/icebergs</r:prefix><r:prefix>soap://example.org/topics/icebergs</r:prefix>

</r:for></r:for>

<r:if><r:if>

<r:ttl>43200000</r:ttl><r:ttl>43200000</r:ttl>

</r:if></r:if>

<r:go><r:go>

<r:via>soap://example.com/mirror</r:via><r:via>soap://example.com/mirror</r:via>

</r:go></r:go>

<r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId><r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId>

<r:desc><r:desc>

<r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr><r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr>

</r:desc></r:desc>

</r:ref></r:ref>

For any SOAP actor name matching For any SOAP actor name matching “soap://example.org/some.doc”“soap://example.org/some.doc”

Page 40: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Example 1 from msdn.micorosoft.comExample 1 from msdn.micorosoft.com<r:ref xmlns:r=“<r:ref xmlns:r=“http://schemas.xmlsoap.org/ws/2001/10/referralhttp://schemas.xmlsoap.org/ws/2001/10/referral”>”>

<r:for><r:for>

<r:exact>soap://example.org/some.doc</r:exact><r:exact>soap://example.org/some.doc</r:exact>

<r:prefix>soap://example.org/topics/icebergs</r:prefix><r:prefix>soap://example.org/topics/icebergs</r:prefix>

</r:for></r:for>

<r:if><r:if>

<r:ttl>43200000</r:ttl><r:ttl>43200000</r:ttl>

</r:if></r:if>

<r:go><r:go>

<r:via>soap://example.com/mirror</r:via><r:via>soap://example.com/mirror</r:via>

</r:go></r:go>

<r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId><r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId>

<r:desc><r:desc>

<r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr><r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr>

</r:desc></r:desc>

</r:ref></r:ref>

For any SOAP actor name matching For any SOAP actor name matching “soap://example.org/some.doc” or starting “soap://example.org/some.doc” or starting with prefix “soap…icebergs”with prefix “soap…icebergs”

Page 41: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Example 1 from msdn.micorosoft.comExample 1 from msdn.micorosoft.com<r:ref xmlns:r=“<r:ref xmlns:r=“http://schemas.xmlsoap.org/ws/2001/10/referralhttp://schemas.xmlsoap.org/ws/2001/10/referral”>”>

<r:for><r:for>

<r:exact>soap://example.org/some.doc</r:exact><r:exact>soap://example.org/some.doc</r:exact>

<r:prefix>soap://example.org/topics/icebergs</r:prefix><r:prefix>soap://example.org/topics/icebergs</r:prefix>

</r:for></r:for>

<r:if><r:if>

<r:ttl>43200000</r:ttl><r:ttl>43200000</r:ttl>

</r:if></r:if>

<r:go><r:go>

<r:via>soap://example.com/mirror</r:via><r:via>soap://example.com/mirror</r:via>

</r:go></r:go>

<r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId><r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId>

<r:desc><r:desc>

<r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr><r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr>

</r:desc></r:desc>

</r:ref></r:ref>

For any SOAP actor name matching For any SOAP actor name matching “soap://example.org/some.doc” or starting “soap://example.org/some.doc” or starting with prefix “soap…icebergs”, if this referral is with prefix “soap…icebergs”, if this referral is less than 12 hours oldless than 12 hours old

Page 42: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Example 1 from msdn.micorosoft.comExample 1 from msdn.micorosoft.com<r:ref xmlns:r=“<r:ref xmlns:r=“http://schemas.xmlsoap.org/ws/2001/10/referralhttp://schemas.xmlsoap.org/ws/2001/10/referral”>”>

<r:for><r:for>

<r:exact>soap://example.org/some.doc</r:exact><r:exact>soap://example.org/some.doc</r:exact>

<r:prefix>soap://example.org/topics/icebergs</r:prefix><r:prefix>soap://example.org/topics/icebergs</r:prefix>

</r:for></r:for>

<r:if><r:if>

<r:ttl>43200000</r:ttl><r:ttl>43200000</r:ttl>

</r:if></r:if>

<r:go><r:go>

<r:via>soap://example.com/mirror</r:via><r:via>soap://example.com/mirror</r:via>

</r:go></r:go>

<r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId><r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId>

<r:desc><r:desc>

<r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr><r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr>

</r:desc></r:desc>

</r:ref></r:ref>

For any SOAP actor name matching For any SOAP actor name matching “soap://example.org/some.doc” or starting “soap://example.org/some.doc” or starting with prefix “soap…icebergs”, if this referral is with prefix “soap…icebergs”, if this referral is less than 12 hours old then go via “soap…less than 12 hours old then go via “soap…mirror”mirror”

Page 43: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Change prefix to a node destinationChange prefix to a node destination<r:ref xmlns:r=“<r:ref xmlns:r=“http://schemas.xmlsoap.org/ws/2001/10/referralhttp://schemas.xmlsoap.org/ws/2001/10/referral”>”>

<r:for><r:for>

<r:exact>soap://example.org/some.doc</r:exact><r:exact>soap://example.org/some.doc</r:exact>

<r:prefix>soap://b.org</r:prefix><r:prefix>soap://b.org</r:prefix>

</r:for></r:for>

<r:if><r:if>

<r:ttl>43200000</r:ttl><r:ttl>43200000</r:ttl>

</r:if></r:if>

<r:go><r:go>

<r:via>soap://example.com/mirror</r:via><r:via>soap://example.com/mirror</r:via>

</r:go></r:go>

<r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId><r:refid>uuid:09233523-345b-4351-b623-5dsf35sgs5</r:refId>

<r:desc><r:desc>

<r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr><r:refAddr>http://example.com/references/2001/10/1234.xml</r:refAddr>

</r:desc></r:desc>

</r:ref></r:ref>

For any SOAP actor name matching For any SOAP actor name matching “soap://example.org/some.doc” or starting “soap://example.org/some.doc” or starting with prefix “soap://b.org”, if this referral is with prefix “soap://b.org”, if this referral is less than 12 hours old then go via “soap…less than 12 hours old then go via “soap…mirror”mirror”

Page 44: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example Assume node A either produces or receives the following for Assume node A either produces or receives the following for

routing:routing:

<S:Envelope xmlns:S=“<S:Envelope xmlns:S=“http://www.w3.org/2001/09/soap-envelopehttp://www.w3.org/2001/09/soap-envelope”>”>

<S:Header><S:Header>

<m:path xmlns:m=“http://schemas.xmlsoap.org/rp/”><m:path xmlns:m=“http://schemas.xmlsoap.org/rp/”>

<m:action>http://www.notification.org/<m:action>http://www.notification.org/update<m:action>update<m:action>

<m:to>soap://b.org</m:to><m:to>soap://b.org</m:to>

<m:from>soap://a.org</m:from><m:from>soap://a.org</m:from>

<m:id>mid:[email protected]</m:id><m:id>mid:[email protected]</m:id>

</m:path></m:path>

</S:Header></S:Header>

<S:Body><S:Body>

</S:Body></S:Body>

</S:Envelope></S:Envelope>

With the WS-Referral statement from the previous slideWith the WS-Referral statement from the previous slide

Page 45: CSCI 599:  Beyond Web Browsers

WS-Referral - ExampleWS-Referral - Example We have a match on the prefix, changing message to:We have a match on the prefix, changing message to:

<S:Envelope xmlns:S=“<S:Envelope xmlns:S=“http://www.w3.org/2001/09/soap-envelopehttp://www.w3.org/2001/09/soap-envelope”>”>

<S:Header><S:Header>

<m:path xmlns:m=“http://schemas.xmlsoap.org/rp/”><m:path xmlns:m=“http://schemas.xmlsoap.org/rp/”>

<m:action>http://www.notification.org/<m:action>http://www.notification.org/update<m:action>update<m:action>

<m:to>soap://b.org</m:to><m:to>soap://b.org</m:to>

<m:fwd><m:fwd>

<m:via>soap://example.com/mirror</m:via><m:via>soap://example.com/mirror</m:via>

</m:fwd></m:fwd>

<m:from>soap://a.org</m:from><m:from>soap://a.org</m:from>

<m:id>mid:[email protected]</m:id><m:id>mid:[email protected]</m:id>

</m:path></m:path>

</S:Header></S:Header>

<S:Body><S:Body>

</S:Body></S:Body>

</S:Envelope></S:Envelope>

Page 46: CSCI 599:  Beyond Web Browsers

WS-ReferralWS-Referral Each WS-Referral statement must have a Each WS-Referral statement must have a

unique identifier, refId:unique identifier, refId: Two logically equivalent WS-Referral statements Two logically equivalent WS-Referral statements

should have the same refId.should have the same refId. Two logically different WS-Referral statements Two logically different WS-Referral statements

must have different refId.must have different refId.

One may:One may: Register a WS-Referral statement with another Register a WS-Referral statement with another

SOAP routerSOAP router Query to request one or more WS-Referral Query to request one or more WS-Referral

statement from another SOAP routerstatement from another SOAP router

Page 47: CSCI 599:  Beyond Web Browsers

Questions & Answers Questions & Answers

Page 48: CSCI 599:  Beyond Web Browsers

Questions & Answers Questions & Answers