soap simple object access protocol
Download
Skip this Video
Download Presentation
SOAP (Simple Object Access Protocol)

Loading in 2 Seconds...

play fullscreen
1 / 22

SOAP - PowerPoint PPT Presentation


  • 407 Views
  • Uploaded on

SOAP (Simple Object Access Protocol). Matt Brodie March 20 th 2006.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'SOAP' - Patman


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
soap simple object access protocol

SOAP(Simple Object Access Protocol)

Matt Brodie

March 20th 2006

slide2
"To help developers build Web services and link heterogeneous components over the Internet, Microsoft worked with industry experts to create the Simple Object Access Protocol. SOAP provides an open, extensible way for applications to communicate using XML-based messages over the Web, regardless of what operating system, object model or language particular applications may use. SOAP facilitates universal communication by defining a simple, extensible message format in standard XML and thereby providing a way to send that XML message over HTTP. Microsoft is soliciting industry feedback on version 0.9 of the SOAP specification. . ." [MS announcement, Sept 13 1999]"
soap s designers
SOAP’s designers
  • Initial development done by a team including representatives from:
    • DevelopMentor
    • IBM
    • Lotus
    • Microsoft
    • UserLand
soap s maintenance
SOAP’s maintenance
  • Currently under the auspices of the W3C XML Protocol Working Group, which includes representatives of:
    • BEA Systems
    • IBM
    • Microsoft
    • Sun Microsystems
    • Systinet
    • Not to mention AT&T, DaimlerChrysler, Intel, and Fujitsu
some definitions
some definitions
  • "SOAP is a protocol specification for invoking methods on servers, services, components and objects. SOAP codifies the existing practice of using XML and HTTP as a method invocation mechanism. The SOAP specification mandates a small number of HTTP headers that facilitate firewall/proxy filtering. The SOAP specification also mandates an XML vocabulary that is used for representing method parameters, return values, and exceptions." [DevelopMentor]
continued
continued
  • The Simple Object Access Protocol (SOAP) facilitates interoperability among a wide range of programs and platforms, making existing applications accessible to a broader range of users. SOAP combines the proven Web tech­no­logy of HTTP with the flexibility and extensibility of XML. [perfectxml.com]
from the original ms press release
from the original MS press release
  • SOAP provides an open, extensible way for applications to communicate using XML-based messages over the Web, regardless of what operating system, object model or language particular applications may use. SOAP facilitates universal communication by defining a simple, extensible message format in standard XML and thereby providing a way to send that XML message over HTTP. [Microsoft]
the official definition
the official definition
  • SOAP is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. SOAP uses XML technologies to define an extensible messaging framework, which provides a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics. [W3C]
repetitious words
repetitious words
  • Extensible
  • Platform-nonspecific
  • Utilizes existing software
  • Facilitates communication
  • Simple
a bit of history
a bit of history
  • Sometime in 1999 – idea created, work started
  • May 8, 2000 – submitted to W3C
  • June 24, 2003 – published as a W3C recommendation
  • Now, development is focused on common suite of SOAP extensions to add reliability, security, etc.
    • Global XML Web Services Architecture (GXA)
soap s predecessors
SOAP’s predecessors
  • DCOM and CORBA
    • Remote Procedure Call (RCP) Protocols
    • Poorly designed for Web Services
    • Initially, SOAP was designed to make DCOM and CORBA work over the internet.
slide13
SOAP
  • is a format for one-way communication
  • describes how a message should be transported through the web
  • governs which portions of the document should be read and by whom
  • is a format describing how the client turns the message into an RPC call and converts it into a SOAP reply
soap message structure
SOAP message structure
  • HTTP binding
    • directs the message
  • Envelope
    • always the root element, it helps the server identify the message as SOAP, and it is defined by its own schema SOAP-ENV
  • Header (optional)
    • specifying use
    • Adds features to the SOAP message such as authentication, transaction management, payment, message routes, etc…
  • Body
    • containing the payload
very simple example
very simple example

<Envelope>

<Header>

<transId>345</transId>

</Header>

<Body>

<Add>

<n1>3</n1>

<n2>4</n2>

</Add>

</Body>

</Envelope>

http binding
HTTP binding
  • directs SOAP message across HTTP
  • always a POST format
  • content-type is always “text/xml”
  • includes the special header SOAPAction
    • this is not mandatory, supposed to express the function of the message
slide17

HTTP binding for a request:

POST /string_server/Object17 HTTP/1.1

Host: 209.110.197.2

Content-Type: text/xml

Content-Length: nnn

Response:

200 OK

Content-Type: text/xml

Content-Length: nnn

previous example fleshed out
previous example, fleshed out

<SOAP-ENV:Envelope

xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”>

<SOAP-ENV:Header>

<t:transId xmlns:t=“http://a.com/trans”>345</t:transId>

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<m:Add xmlns:m=“http://a.com/Calculator”>

<n1>3</n1>

<n2>4</n2>

</m:Add>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

intermediaries
intermediaries
  • intermediaries act as soap receivers and senders
  • they often process messages and send them on
  • the SOAP message is encoded with instructions for the receiver will deal with the message
    • it may ignore certain sections of the body, if it is told to in the header
drawbacks
drawbacks
  • dozens of SOAP toolkits being used to build, many interpret message differently
  • SOAP is very ambiguous, no data encoding format
    • Just because the server is using SOAP doesn’t mean it’s encoding in the way you expect it to
    • The rules governing encoding within the envelope are known as “Section 5 rules”
      • these rules are not required, causing problems when users make assumptions about their use
soap message example
SOAP message example

POST /StockQuote HTTP/1.1

Host: www.stockquoteserver.com

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

SOAPAction: "Some-URI"

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<m:GetLastTradePrice xmlns:m="Some-URI">

<symbol>DIS</symbol>

</m:GetLastTradePrice>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

example response
example response

HTTP/1.1 200 OK

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

<SOAP-ENV:Body>

<m:GetLastTradePriceResponse xmlns:m="Some-URI">

<Price>34.5</Price>

</m:GetLastTradePriceResponse>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

ad