SOAP (Simple Object Access Protocol)

clappingknaveSoftware and s/w Development

Dec 14, 2013 (3 years and 10 months ago)

96 views

GROUP 3

Larry Gillis

Eric Lam

Cindy Lee

Calvin Nguyen

Evgeni Zlatanov

The Problem

Interoperability between Internet applications


Today there are countless different operating systems,
different firewalls, different methods of making remote
procedure calls, and different platforms. In order to
interoperate across the Internet both the client and
server need to understand each others security types
and trusts, service deployment schemas, and
implementation details.


Remote objects can give a program lots of power over
the Internet, but most firewalls block non
-
HTTP
requests.

The Goal


The goal is a world where you can access objects
and services on remote (or local) servers in a
platform
-
independent manner.

The Solution


SOAP bridges the gap between competing object RPC
(Remote Procedure Calls) technologies and provides a
light
-
weight messaging format that works with any
operating system, any programming language, and any
platform.


SOAP is able to provide intraprocess communication
across machines. It gets around the limitations of
firewalls remote objects face when sending non
-
HTTP
requests.

Overview


Introduction


Brief History


3 Main Components


SOAP Skeleton


Demonstration (SOAP Request/Response)


SOAP & MC365 Final Projects


Conclusion


Q&A | Additional Resources


Introduction

What is SOAP?


SOAP defines the use of XML and HTTP to
access services, objects, and servers in a
platform
-
independent manner.


SOAP offers a mechanism for bridging
competing technologies in a standard way. The
main goal of SOAP is to facilitate
interoperability.


Brief History


A group of industry leaders including Compaq,
HP, IBM, IONA, Lotus, Microsoft, and SAP
proposed to W3C, in May 2000, the SOAP
Internet protocol that they hope will
revolutionize application development by
connecting GUI desktop applications to
powerful Internet servers using the standards of
the Internet, HTTP and XML.



3 Main Components


The SOAP
envelope

construct defines an overall
framework for expressing
what

is in a message;
who

should deal with it, and
whether

it is optional or
mandatory.


The SOAP
encoding rules

defines a serialization
mechanism that can be used to exchange instances of
application
-
defined data types.


The SOAP
RPC representation

defines a convention
that can be used to represent remote procedure calls
and responses.

SOAP Skeleton

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap=
http://www.w3.org/2001/12/soap
-
envelope

soap:encodingStyle="http://www.w3.org/2001/12/soap
-
encoding">

<soap:Header>

...

</soap:Header>


<soap:Body>

...


<soap:Fault>


...


</soap:Fault>

</soap:Body>


</soap:Envelope>


SOAP Skeleton

Simple Example

MESSAGE


<?xml version="1.0"?>

<soap:Envelope

xmlns:soap=
http://www.w3.org/2001/12/s
oap
-
envelope

soap:encodingStyle="http://www.w3.org/20
01/12/soap
-
encoding">

<soap:Header>

<n:movie>Star
Wars</n:movie>

</soap:Header>


<soap:Body>

<p:day>Wednesday</p:day>

<p:times>7 p.m
-
12
a.m.</p:times>

</soap:Body>

</soap:Envelope>


RESPONSE


<?xml version="1.0"?>

<soap:Envelope

xmlns:soap=
http://www.w3.org/2001/12/
soap
-
envelope

soap:encodingStyle="http://www.w3.org/2
001/12/soap
-
encoding">

<soap:Header>

<n:movie>Star
Wars</n:movie>

</soap:Header>


<soap:Body>

<p:day>Wednesday</p:day>

<p:times>12 a.m.</p:times>

</soap:Body>


</soap:Envelope>


Demonstration

Fire
-
and
-
forget SOAP message

Stock Quotes


<?xml version="1.0" ?>

<env:Envelope
xmlns:env="http://www.w3.org/2001
/09/soap
-
envelope">

<env:Body>


<r:StockPriceUpdate
xmlns:r="http://example.org/2001/06
/quotes">

<r:Symbol>BigCo</r:Symbol>



<r:Price>34.5</r:Price>



</r:StockPriceUpdate>

</env:Body>

</env:Envelope>


Simple SOAP messaging model



Used by businesses to send
automated messages and updates


increase productivity, reduce
costs, improve services

Demonstration

GoogleSearch

http://www.perfectxml.com/SOAPTestClient.asp


http://www.perfectxml.com/articles/XML/TheXMLWe
b.asp

License key = bCpSxv1QFHLwtI0PLyIO4+2gPqkLO2z8


Demonstration

Message Exchange Patterns

Simple Response/Response

Sophisticated SOAP messaging


One
-
way message


Request/Response


Solicit/Response
(the reverse of
request/response)


Notifications


Long running P2P
conversations

SOAP
&

MC365 Final Projects

Group #1:

BC Books


Eliminating the Middleman

Group #4:

“BC
-
Bay”


http://www.perfectxml.com/SOAPTestClient.asp


SOAP
&

MC365 Final Projects

Group #2
: Information repository


encryption/decryption


A sender wishes to exchange data with
a receiver and has agreed to
encrypt the payload. The sending
and receiving applications agree on
the encryption methodology. Data
is encrypted by the originating
application and sent to the receiver
via SOAP. The data reaches the
receiving application untouched,
and may then be decrypted in the
agreed
-
upon manner.





SOAP
&

MC365 Final Projects

Group #5
: Secure file transfer and messaging


Two partners are engaged in a long
-
running process, which involves multiple
message exchanges
.


http://www.w3.org/TR/xmlp
-
scenarios/

Conclusion

Summary


S
imple
O
bject
A
ccess
P
rotocol


Communication Protocol


Communication between applications


Format for sending messages


Designed to communicate via Internet


Platform independent


Language independent


Based on XML


Simple and Extensible


Get around Firewalls


W3C standard

Conclusion

Benefits of SOAP


Important for application development to allow
Internet communication between programs


Provides a way to communicate between
applications running on different operating
systems, with different technologies and
programming languages


Q&A

Additional Resources


Any questions?


Additional Resources


http://www.xmlfiles.com/articles/adam/soapsoup/default.asp


http://www.microsoft.com/mind/0100/soap/soap.asp


http://developer.java.sun.com/developer/technicalArticles/xml/webservices/


http://java.sun.com/webservices/docs/1.1/api/javax/xml/soap/package
-
summary.html


http://www.w3schools.com/soap/default.asp


http://www.w3.org/TR/SOAP/