Transcript SOAP 1.2, Introduction
SOAP 1.2, Introduction
University of Colorado at Boulder Department of Computer Science Software Engineering Research Laboratory Nathan D. Ryan
What Is SOAP?
SOAP 1.1
Simple Object Access Protocol SOAP 1.2
Huh? Us, work for Microsoft? No way!
XML Protocol (XMLP or XP)
2002.2.4
Slide 2 of 22
SOAP 1.2 Is…
A “wrapper” protocol Written in XML Independent of the wrapped data Independent of the transport protocol Efficient (according to the W3C) A uni-directional message exchange paradigm
2002.2.4
Slide 3 of 22
SOAP 1.2 Is
Not
…
A transport protocol Written in
valid
XML Independent of the wrapped data Independent of the transport protocol Efficient (according to me) A uni-directional message exchange paradigm
2002.2.4
Slide 4 of 22
Classification
“Wrapper” protocol versus transport protocol Data is placed in header blocks and body blocks, as desired Transport is handled by another mechanism HTTP 1.1 is the only binding specified, though others are possible
2002.2.4
Slide 5 of 22
Message Anatomy
SOAP Envelope SOAP Header Header Block ...
Header Block SOAP Body Body Block ...
Body Block
2002.2.4
Slide 6 of 22
Message Representation
...
...
2002.2.4
Slide 7 of 22
Independence
Independent of the wrapped data True, but… Only text data is allowed Some data structures are difficult to represent Independent of the transport protocol True, but… The XML Protocol Working Group has requested additions to the HTTP 1.1 specification
2002.2.4
Slide 8 of 22
(In)Efficiency
HTTP Request HTTP Body XML Syntax SOAP Envelope SOAP Body SOAP Body Block Textual Integer 0x0b66 Sender
2002.2.4
Receiver
Slide 9 of 22
Exchange Paradigm
Point-to-point exchange Sender, receiver, possible intermediaries Uni-directional message exchange True, but… Specification includes semantics for dealing with faults Faults cannot be ignored Faults must be reported to the sending node
2002.2.4
Slide 10 of 22
Uni-directional Exchange
Intermediary ???
Initial Sender
2002.2.4
Ultimate Receiver
Slide 11 of 22
Bi-directional Exchange (Series)
Intermediary Initial Sender
2002.2.4
Ultimate Receiver
Slide 12 of 22
Bi-directional Exchange (Series)
Intermediary Initial Sender
2002.2.4
Ultimate Receiver
Slide 13 of 22
Bi-directional Exchange (Series)
Intermediary ???
Initial Sender
2002.2.4
Ultimate Receiver
Slide 14 of 22
Processing Model
Point-to-point (sender-to-receiver) exchange, possibly via intermediaries Receivers assume “roles” as actors Header blocks can be specific to actors Body blocks are always specific to the ultimate receiver Actors can be required to understand header blocks
2002.2.4
Slide 15 of 22
Nodes
2002.2.4
Slide 16 of 22
Actors
Standard actors none next Anonymous Application-specific actors Can be anything Semantics implied by a URI
2002.2.4
Slide 17 of 22
Actor-specific Header Blocks
2002.2.4
Slide 18 of 22
Intermediary Algorithm
Receive message Process appropriate header blocks Processing possibly produces a fault Remove processed headers Add new headers Send message
2002.2.4
Slide 19 of 22
Ultimate Recipient Algorithm
Receive message Process appropriate header blocks Processing possibly produces a fault Process all body blocks Processing possibly produces a fault
2002.2.4
Slide 20 of 22
Higher-level Exchange Paradigms
RPC Fits well with HTTP 1.1 binding Current activity within the XML Protocol Working Group Conversational Fits well with general message passing, but awkward with HTTP 1.1 binding
2002.2.4
Slide 21 of 22
Normative References
http://www.w3.org/2000/09/XML-Protocol-Charter http://www.w3.org/2002/ws/Activity.html
http://www.w3.org/TR/xmlp-reqs/ http://www.w3.org/TR/xmlp-am/ http://www.w3.org/TR/xmlp-scenarios/ http://www.w3.org/TR/soap12-part0/ http://www.w3.org/TR/soap12-part1/ http://www.w3.org/TR/soap12-part2/
2002.2.4
Slide 22 of 22