Title: CSCI 599: Beyond Web Browsers
1CSCI 599 Beyond Web Browsers
- Professor Shahram Ghandeharizadeh
- Computer Science Department
- Los Angeles, CA 90089
2eXtensible Markup Language (XML)
- XML
- A World-Wide-Web Consortium (W3C) standard.
- Enables you to create your own tags.
- Emerging as a standard for interoperability among
applications that wish to exchange data. - Separates content (document) from presentation
(style sheet).
3XML Terminology
- An XML element is made up of a start tag, an end
tag, and data in between - ltclassgtcsci599lt/classgt
- Tags without text can contain the end marker at
the end of the start tag, I.e., ltclassgtlt/classgt
is equivalent to ltclass /gt - An element may contain one or more attributes
- ltclass typeSeminargtcsci599lt/classgt
- An attribute is a name-value pair separated by
- Attribute values must be enclosed in quotation
marks. - Document Type Definition (DTD) defines the tags
contained in your document, what tags contain
other tags, number and sequence of tags, the
attributes your tags may have, and optionally,
the values those attributes may have.
Describes data within the tags! class is a
tag!
4XML Name Space (xmlns)
- Collection of names used as element or attribute
names in an XML document. - Qualifies element names on the Web to avoid
conflicts between elements with the same name. - A name space is identified by a globally unique
URI (across the Internet). - Name spaces are declared in 2 ways
- Explicit
- Implicit
5Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinance.Moneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
6Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinance.Moneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
Declares bk and money to be shorthand for the
full names of their respective namespaces. Bk
and money are name spaces.
7Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinance.Moneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
This is the namespace value for bk variable!
8Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinanceMoneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
All elements/attributes beginning with bk or
money are considered to be from the namespace
urnBookLovers.orgBookInfo or
urnFinanceMoney
9Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinanceMoneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
This is the bk namespace prefix qualifying the
TITLE tag!
10Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinanceMoneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
What is this?
11Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinanceMoneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
Price element value!
12Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinanceMoneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
What is this?
13Explicit xmlns
- ltBOOKSgt
- ltbkBOOK xmlnsbkurnBookLovers.orgBookInfo
xmlnsmoneyurnFinanceMoneygt - ltbkTITLEgtWeb Serviceslt/bkTITLEgt
- ltbkPRICE moneycurrencyUS DOLLARgt22.95lt/bkP
RICEgt - lt/bkBOOKgt
- lt/BOOKSgt
Attribute value!
14Implicit xmlns
- A namespace without a prefix becomes the default
namespace - ltBOOKSgt
- ltBOOK xmlnsurnBookLovers.orgBookInfogt
- ltTITLEgtWeb Serviceslt/TITLEgt
- ltPRICE currencyUS DOLLARgt22.95lt/PRICEgt
- lt/BOOKgt
- lt/BOOKSgt
15GXA
- GXA, Global XML Web Services Architecture
- GXA consists of several specifications
- DIME Specification Index Page
- WS-Attachments
- WS-Coordination
- WS-Inspection
- WS-Referral
- WS-Routing
- WS-Security
- WS-Transaction
16WS-Routing
- Stateless, SOAP-based protocol for routing SOAP
messages. - With WS-Routing, the entire message path for a
SOAP message (as well as its return path) can be
described directly in the SOAP envelope. - Designed for
- One-way two-way messaging
- Peer-to-peer conversations
- Long running dialogs.
17WS-Routing
- Why?
- SOAP-based specifications are designed to be
composed with each other to provide a rich
messaging environment. - WS-Routing encpsulates a message path within a
SOAP message.
18WS-Routing
- What is missing from SOAP?
- SOAP cannot indicate a message path that
organizes a collection of Web Services that act
as intermediaries into a sequence. - Example
- SOAP message M generated by A can indicate which
part of M is intended for B, C, and D. - As SOAP message CANNOT indicate that the
intermediaries should be organized as follows
D
B
C
A
19Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
20Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
This is the ultimate end point, node D
21Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
Forward message path as an ordered list of via
elements
22Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
The node originating the message, node A
23Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
An intermediary that the message must visit, node
B
24Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
Another intermediary after node B
25Processing
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
26Processing
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//C.comlt/wsrpviagt
- lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/som
e/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-3
3fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
27Processing
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
28Processing
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
29Processing
D
B
C
A
- If the value of to element does not identify
D then WS-Routing generates a fault - ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - lt/wsrpfwdgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
30Example
D
B
C
A
- With rev, WS-Routing builds a reverse path
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//B.comlt/wsrpviagt
ltwsrpviagtsoap//C.comlt/wsrpviagt - lt/wsrpfwdgt
- ltwsrprevgt
- lt/wsrprevgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
31Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - ltwsrpviagtsoap//C.comlt/wsrpviagt
- lt/wsrpfwdgt
- ltwsrprevgt
- ltwsrpviagtsoap//B.comlt/wsrpviagt
- lt/wsrprevgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
32Example
D
B
C
A
- ltSOAP-ENVEnvelope
- xmlnsSOAP-ENV"http//www.w3.org/2001/06/soap-e
nvelope"gt ltSOAP-ENVHeadergt - ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - lt/wsrpfwdgt
- ltwsrprevgt
- ltwsrpviagtsoap//C.comlt/wsrpviagt
- ltwsrpviagtsoap//B.comlt/wsrpviagt
- lt/wsrprevgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
- lt/SOAP-ENVHeadergt
- ltSOAP-ENVBodygt
- ...
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
33Example
D
B
C
A
- Node D may contact A by
- Setting its ltfwdgt to the ltrevgt in order to
contact node A - Swap the value of its lttogt and ltfromgt
- ltwsrppath xmlnswsrp"http//schemas.xmlsoap.or
g/rp/"gt ltwsrpactiongthttp//www.im.org/chatlt/ws
rpactiongt ltwsrptogtsoap//D.com/some/endpointlt
/wsrptogt ltwsrpfwdgt - lt/wsrpfwdgt
- ltwsrprevgt
- ltwsrpviagtsoap//C.comlt/wsrpviagt
- ltwsrpviagtsoap//B.comlt/wsrpviagt
- lt/wsrprevgt ltwsrpfromgtsoap//A.com/some
/endpointlt/wsrpfromgt ltwsrpidgtuuid84b9f5d0-33
fb-4a81-b02b5b760641c1d6lt/wsrpidgt - lt/wsrppathgt
34WS-Routing
- WS-Routing does not define fan-in or fan-out
message path models.
35Questions Answers
36WS-Referral
- Provides a way to configure how SOAP routers will
build a message path - It is a protocol for inserting, deleting, and
querying routing entries in a SOAP router. - SOAP router is a web service that
- implements WS-Routing,
- Implements WS-Referral specification.
- A SOAP router may use WS-Referral to
- Learn about firewalls and other intermediaries
- Implement load balancing, etc.
37WS-Referral
- Key specifications for, if, go
- These can loosely be described as a for if
then go via - For any SOAP actor name matching the set of SOAP
actors listed in the for element - If the set of conditions listed in the if element
is met and hence the statement is satisfied - Then go via one of the SOAP routers listed in the
go element
38WS-Referral - Example
- Example 1 from msdn.micorosoft.com
- ltrref xmlnsrhttp//schemas.xmlsoap.org/ws/2001
/10/referralgt - ltrforgt
- ltrexactgtsoap//example.org/some.doclt/rexactgt
- ltrprefixgtsoap//example.org/topics/icebergslt/rpr
efixgt - lt/rforgt
- ltrifgt
- ltrttlgt43200000lt/rttlgt
- lt/rifgt
- ltrgogt
- ltrviagtsoap//example.com/mirrorlt/rviagt
- lt/rgogt
- ltrrefidgtuuid09233523-345b-4351-b623-5dsf35sgs5lt/
rrefIdgt - ltrdescgt
- ltrrefAddrgthttp//example.com/references/2001/10/
1234.xmllt/rrefAddrgt - lt/rdescgt
- lt/rrefgt
39WS-Referral - Example
- Example 1 from msdn.micorosoft.com
- ltrref xmlnsrhttp//schemas.xmlsoap.org/ws/2001
/10/referralgt - ltrforgt
- ltrexactgtsoap//example.org/some.doclt/rexactgt
- ltrprefixgtsoap//example.org/topics/icebergslt/rpr
efixgt - lt/rforgt
- ltrifgt
- ltrttlgt43200000lt/rttlgt
- lt/rifgt
- ltrgogt
- ltrviagtsoap//example.com/mirrorlt/rviagt
- lt/rgogt
- ltrrefidgtuuid09233523-345b-4351-b623-5dsf35sgs5lt/
rrefIdgt - ltrdescgt
- ltrrefAddrgthttp//example.com/references/2001/10/
1234.xmllt/rrefAddrgt - lt/rdescgt
- lt/rrefgt
For any SOAP actor name matching
soap//example.org/some.doc
40WS-Referral - Example
- Example 1 from msdn.micorosoft.com
- ltrref xmlnsrhttp//schemas.xmlsoap.org/ws/2001
/10/referralgt - ltrforgt
- ltrexactgtsoap//example.org/some.doclt/rexactgt
- ltrprefixgtsoap//example.org/topics/icebergslt/rpr
efixgt - lt/rforgt
- ltrifgt
- ltrttlgt43200000lt/rttlgt
- lt/rifgt
- ltrgogt
- ltrviagtsoap//example.com/mirrorlt/rviagt
- lt/rgogt
- ltrrefidgtuuid09233523-345b-4351-b623-5dsf35sgs5lt/
rrefIdgt - ltrdescgt
- ltrrefAddrgthttp//example.com/references/2001/10/
1234.xmllt/rrefAddrgt - lt/rdescgt
- lt/rrefgt
For any SOAP actor name matching
soap//example.org/some.doc or starting with
prefix soapicebergs
41WS-Referral - Example
- Example 1 from msdn.micorosoft.com
- ltrref xmlnsrhttp//schemas.xmlsoap.org/ws/2001
/10/referralgt - ltrforgt
- ltrexactgtsoap//example.org/some.doclt/rexactgt
- ltrprefixgtsoap//example.org/topics/icebergslt/rpr
efixgt - lt/rforgt
- ltrifgt
- ltrttlgt43200000lt/rttlgt
- lt/rifgt
- ltrgogt
- ltrviagtsoap//example.com/mirrorlt/rviagt
- lt/rgogt
- ltrrefidgtuuid09233523-345b-4351-b623-5dsf35sgs5lt/
rrefIdgt - ltrdescgt
- ltrrefAddrgthttp//example.com/references/2001/10/
1234.xmllt/rrefAddrgt - lt/rdescgt
- lt/rrefgt
For any SOAP actor name matching
soap//example.org/some.doc or starting with
prefix soapicebergs, if this referral is less
than 12 hours old
42WS-Referral - Example
- Example 1 from msdn.micorosoft.com
- ltrref xmlnsrhttp//schemas.xmlsoap.org/ws/2001
/10/referralgt - ltrforgt
- ltrexactgtsoap//example.org/some.doclt/rexactgt
- ltrprefixgtsoap//example.org/topics/icebergslt/rpr
efixgt - lt/rforgt
- ltrifgt
- ltrttlgt43200000lt/rttlgt
- lt/rifgt
- ltrgogt
- ltrviagtsoap//example.com/mirrorlt/rviagt
- lt/rgogt
- ltrrefidgtuuid09233523-345b-4351-b623-5dsf35sgs5lt/
rrefIdgt - ltrdescgt
- ltrrefAddrgthttp//example.com/references/2001/10/
1234.xmllt/rrefAddrgt - lt/rdescgt
- lt/rrefgt
For any SOAP actor name matching
soap//example.org/some.doc or starting with
prefix soapicebergs, if this referral is less
than 12 hours old then go via soapmirror
43WS-Referral - Example
- Change prefix to a node destination
- ltrref xmlnsrhttp//schemas.xmlsoap.org/ws/2001
/10/referralgt - ltrforgt
- ltrexactgtsoap//example.org/some.doclt/rexactgt
- ltrprefixgtsoap//b.orglt/rprefixgt
- lt/rforgt
- ltrifgt
- ltrttlgt43200000lt/rttlgt
- lt/rifgt
- ltrgogt
- ltrviagtsoap//example.com/mirrorlt/rviagt
- lt/rgogt
- ltrrefidgtuuid09233523-345b-4351-b623-5dsf35sgs5lt/
rrefIdgt - ltrdescgt
- ltrrefAddrgthttp//example.com/references/2001/10/
1234.xmllt/rrefAddrgt - lt/rdescgt
- lt/rrefgt
For any SOAP actor name matching
soap//example.org/some.doc or starting with
prefix soap//b.org, if this referral is less
than 12 hours old then go via soapmirror
44WS-Referral - Example
- Assume node A either produces or receives the
following for routing - ltSEnvelope xmlnsShttp//www.w3.org/2001/09/soa
p-envelopegt - ltSHeadergt
- ltmpath xmlnsmhttp//schemas.xmlsoap.org/rp/
gt - ltmactiongthttp//www.notification.org/updateltm
actiongt - ltmtogtsoap//b.orglt/mtogt
- ltmfromgtsoap//a.orglt/mfromgt
- ltmidgtmid1000_at_a.orglt/midgt
- lt/mpathgt
- lt/SHeadergt
- ltSBodygt
- lt/SBodygt
- lt/SEnvelopegt
- With the WS-Referral statement from the previous
slide
45WS-Referral - Example
- We have a match on the prefix, changing message
to - ltSEnvelope xmlnsShttp//www.w3.org/2001/09/soa
p-envelopegt - ltSHeadergt
- ltmpath xmlnsmhttp//schemas.xmlsoap.org/rp/
gt - ltmactiongthttp//www.notification.org/updateltm
actiongt - ltmtogtsoap//b.orglt/mtogt
- ltmfwdgt
- ltmviagtsoap//example.com/mirrorlt/mviagt
- lt/mfwdgt
- ltmfromgtsoap//a.orglt/mfromgt
- ltmidgtmid1000_at_a.orglt/midgt
- lt/mpathgt
- lt/SHeadergt
- ltSBodygt
- lt/SBodygt
- lt/SEnvelopegt
46WS-Referral
- Each WS-Referral statement must have a unique
identifier, refId - Two logically equivalent WS-Referral statements
should have the same refId. - Two logically different WS-Referral statements
must have different refId. - One may
- Register a WS-Referral statement with another
SOAP router - Query to request one or more WS-Referral
statement from another SOAP router
47Questions Answers
48Questions Answers