SOAP TECHNOLOGY
What is SOAP ?
•SOAP is a simple, lightweight XML protocol
for exchanging exchanging structured and
typed information on the Web
•Extensible
•No application semantics and no transport
semantics
Who is drafting SOAP ?
uUserLand, Ariba, CommerceOne,
Compaq, Developmentor, HP, IBM, IONA,
Lotus, Microsoft, SUN and SAP.
uSOAP specification v1.1 already a W3C
standard. v1.2 has recently been
submitted.
Why SOAP?
uImportant need in Internet application
development to allow communication
between apps.
uThe politics of serialization : Several large
factions each loyal to its own particular
RPC ( remote procedure call ) protocol -
DCOM, CORBA , Java RMI
uSOAP addresses the interoperability issue
at the data serialization level
Bringing down the walls
uThese systems could interact using
bridges but they add costs and hurt
performance.
uMade decisions to standardize on one or
the other ; then used message-oriented
middleware for integration.
uIf Web browsers can, why not remote
services?
uSOAP - simplicity, flexibility, platform-
neutrality and text-based.
RPC revisited
uSOAP - a standard way of serializing the
info. needed to invoke remote services into
a format and transported across the wire,
then recreated at destination.
uTo understand SOAP better : a look at
DCOM’s RPC architecture.
uPrimary design goal of DCOM was
“location transparency”.
DCOM Architecture
uLocation transparency in DCOM using the
proxy/stub architecture. DCOM uses the
NDR serialization scheme.
uSOAP uses XML to structure the data
serialization.
SOAP and...HTTP ?!
uMore than a data serialization format to do
real RPC….transfer messages to the
server and return the response.
uDCOM and CORBA are incompatible
when addressing endpoints, activating
remote objects...
uHTTP most conducive Internet Protocol for
RPC via SOAP msgs :
-URLs,Synch. Blocking, Scalable
,Secure
The Firewall blues
uDCOM and CORBA IIOP not firewall
friendly, use oddly-numbered ports etc.
uHTTP traffic over port 80 usually can talk
through firewalls.
uSOAP messages treated as a new MIME
type to be carried in a HTTP payload : so
HTTP headers indicate packet has SOAP
request , better firewall control.
SOAP building block
SOAP Building block ( cont’d )
uA SOAP message is an ordinary XML
document.
uThe XML document contains the following
XML elements:
u- A SOAP envelope , defines message
content
u- A SOAP header(optional), contains
header information
u - A SOAP body, that contains call and
response information
A SOAP Example
u
A SOAP request embedded in an HTTP
Request:
u<SOAP-ENV:Envelope>
u< SOAP-ENV:Body>
u <xmlns:m=“http://www.stock.org/stock”/>
u < m:GetStockPrice>
u < StockName>IBM</StockName>
u </m:GetStockPrice>
u</SOAP-ENV:Body>
u</SOAP-ENV:Envelope>
A SOAP Example (Cont’d )
uA SOAP response embedded in an
HTTP Response
u<SOAP-ENV:Envelope>
u< SOAP-ENV:Body>
u <xmlns:m=“http://www.stock.org/stock”/>
u < m:GetStockPriceResponse>
u < StockName>113.81</StockName>
u </m:GetStockPriceResponse>
u</SOAP-ENV:Body>
u</SOAP-ENV:Envelope>
SOAP Summary
uSOAP is
u - a lightweight comm. protocol
u - is based on XML
u - designed to communicate via HTTP
u - not tied to any component technology
or programming language.
u - simple and extensible
u - a W3C standard