SOAP:
SOAP, originally defined as Simple Object
Access Protocol, is a protocol specification for exchanging structured information
in the implementation of Web Services in computer networks. It relies on
Extensible Markup Language (XML) for its message format, and usually relies on
other Application Layer protocols, most notably Hypertext Transfer Protocol
(HTTP) and Simple Mail Transfer Protocol (SMTP), for message negotiation and
transmission. SOAP can form the foundation layer of a web services protocol
stack, providing a basic messaging framework upon which web services can be
built. This XML based protocol consists of three parts: an envelope, which
defines what is in the message and how to process it, a set of encoding rules
for expressing instances of application-defined datatypes, and a convention for
representing procedure calls and responses. SOAP has three major characteristics:
Extensibility (security and WS-routing are among the extensions under
development), Neutrality (SOAP can be used over any transport protocol such as
HTTP, SMTP or even TCP), and Independence (SOAP allows for any programming
model).
As an example of how SOAP procedures can be
used, a SOAP message could be sent to a web-service-enabled web site such as a
real-estate price database, with the parameters needed for a search. The site
would then return an XML-formatted document with the resulting data, e.g.,
prices, location, features. With the data being returned in a standardized
machine-parseable format, it can then be integrated directly into a third-party
web site or application.
The SOAP specification defines the messaging
framework which consists of:
·
The SOAP
processing model defining the rules for processing a SOAP message
· The SOAP extensibility model defining the concepts of SOAP features and SOAP modules
· The SOAP underlying protocol binding framework describing the rules for defining a binding to an underlying protocol that can be used for exchanging SOAP messages between SOAP nodes
· The SOAP message construct defining the
structure of a SOAP message
Processing
model
The SOAP processing model describes a
distributed processing model, its participants, the SOAP nodes and how a SOAP receiver processes a SOAP message. The
following SOAP nodes are defined:
§ SOAP
sender
A SOAP node that transmits a SOAP message.
§ SOAP
receiver
A SOAP node that accepts a SOAP message.
§ SOAP
message path
The set of SOAP nodes through which a single
SOAP message passes.
§ Initial
SOAP sender (Originator)
The SOAP sender that originates a SOAP message
at the starting point of a SOAP message path.
§ SOAP
intermediary
A SOAP intermediary is both a SOAP receiver and
a SOAP sender and is targetable from within a SOAP message. It processes the
SOAP header blocks targeted at it and acts to forward a SOAP message towards an
ultimate SOAP receiver.
§ Ultimate
SOAP receiver
The SOAP receiver that is a final destination
of a SOAP message. It is responsible for processing the contents of the SOAP
body and any SOAP header blocks targeted at it. In some circumstances, a SOAP
message might not reach an ultimate SOAP receiver, for example because of a
problem at a SOAP intermediary. An ultimate SOAP receiver cannot also be a SOAP
intermediary for the same SOAP message.
Message
format:
XML was chosen as the standard message format
because of its widespread use by major corporations and open source development
efforts. Additionally, a wide variety of freely available tools significantly
eases the transition to a SOAP-based implementation. The somewhat lengthy
syntax of XML can be both a benefit and a drawback. While it promotes
readability for humans, facilitates error detection, and avoids
interoperability problems such as byte-order (Endianness), it can slow
processing speed and can be cumbersome. For example, CORBA, GIOP, ICE, and DCOM
use much shorter, binary message formats. On the other hand, hardware
appliances are available to accelerate processing of XML messages. Binary XML
is also being explored as a means for streamlining the throughput requirements
of XML.
Example:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml;
charset=utf-8
Content-Length: 299
SOAPAction:
"http://www.w3.org/2003/05/soap-envelope"
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetStockPrice
xmlns:m="http://www.example.org/stock">
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Advantages:
SOAP is versatile enough to allow for the use
of different transport protocols. The standard stacks use HTTP as a transport
protocol, but other protocols such as JMS and SMTP are also usable.
Since the SOAP model tunnels fine in the HTTP
get/response model, it can tunnel easily over existing firewalls and proxies,
without modifications to the SOAP protocol, and can use the existing
infrastructure.
Disadvantages
:
Because of the verbose XML format, SOAP can be
considerably slower than competing middleware technologies such as CORBA. This
may not be an issue when only small messages are sent. To improve performance
for the special case of XML with embedded binary objects, the Message
Transmission Optimization Mechanism was introduced. When relying on HTTP as a
transport protocol and not using WS-Addressing or an ESB, the roles of the
interacting parties are fixed. Only one party (the client) can use the services
of the other. Developers must use polling instead of notification in these
common cases.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.