Soap SOAP Is A Protocol For Exchanging XML-based Messages Over Computer Networks
SOAP is a protocol for exchanging XML messages over computer networks using HTTP. It provides a basic messaging framework that other layers can build on. The most common pattern is the remote procedure call (RPC) pattern where a client sends a request to a server and the server immediately responds. SOAP uses HTTP as a transport protocol and XML as the message format. An example SOAP request and response is shown to retrieve product details from a fictional warehouse web service.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
63 views3 pages
Soap SOAP Is A Protocol For Exchanging XML-based Messages Over Computer Networks
SOAP is a protocol for exchanging XML messages over computer networks using HTTP. It provides a basic messaging framework that other layers can build on. The most common pattern is the remote procedure call (RPC) pattern where a client sends a request to a server and the server immediately responds. SOAP uses HTTP as a transport protocol and XML as the message format. An example SOAP request and response is shown to retrieve product details from a fictional warehouse web service.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3
SOAP
SOAP is a protocol for exchanging XML-based messages over computer networks,
normally using HTT!HTT"# "$% forms the foundation layer of the &eb services stack, providing a basic messaging framework that more abstract layers can build on# There are several different types of messaging patterns in "$%, but by far the most common is the 'emote rocedure (all )'(* pattern, in which one network node )the client* sends a re+uest message to another node )the server*, and the server immediately sends a response message to the client# "$% is the successor of XML- '(, though it borrows its transport and interaction neutrality and the envelope!header!body from elsewhere, probably from &,,X -citation needed. # History "$% originally stood for Simple Object Access Protocol, and lately also Service Oriented Architecture Protocol, but is now simply "$%# The original acronym was dropped with /ersion 0#1 of the standard, which became a &2( 'ecommendation on 3une 14, 1552, as it was considered to be misleading# "$% was originally designed by ,ave &iner, ,on 6ox, 6ob %tkinson, and Mohsen %l- 7hosein in 0889 with backing from Microsoft )where %tkinson and %l-7hosein worked at the time* as an ob:ect-access protocol# The "$% specification is currently maintained by the XML rotocol &orking 7roup of the &orld &ide &eb (onsortium# Transport methods "$% makes use of an ;nternet application layer protocol as a transport protocol# (ritics have argued that this is an abuse of such protocols, as it is not their intended purpose and therefore not a role they fulfill well# 6ackers of "$% have drawn analogies to successful uses of protocols at various levels for tunneling other protocols# -citation needed. 6oth "MT and HTT are valid application layer protocols used as Transport for "$%, but HTT has gained wider acceptance as it works well with today<s ;nternet infrastructure= specifically, "$% works well with network firewalls# "$% may also be used over HTT" )since it is the same protocol as HTT at the application level, but using an encrypted transport protocol underneath* in either simple or mutual authentication= this is the advocated &"-; method to provide web service security as stated in the &"-; 6asic rofile 0#0, see -1.# This is a ma:or advantage over other distributed protocols like 7;$!;;$ or ,($M which are normally filtered by firewalls# XML was chosen as the standard message format because of its widespread use by ma:or corporations and open source development efforts# %dditionally, a wide variety of freely available tools significantly ease the transition to a "$%-based implementation# The somewhat lengthy syntax of XML can be both a benefit and a drawback# ;ts format is possible for humans to read, but can be complex and can have slow processing times# >or example, ($'6%, 7;$, ;(?, and ,($M use much shorter, binary message formats# $n the other hand, hardware appliances are available to accelerate processing of XML messages# -2. -4.# 6inary XML is also being explored as a means for streamlining the throughput re+uirements of XML# Advantages @sing "$% over HTT allows for easier communication behind proxies and firewalls than previous remote execution technology# "$% is versatile enough to allow for the use of different transport protocols# The standard stacks use HTT as a transport protocol, but other protocols are also usable )T(, "AM*# Weaknesses 6ecause of the verbose XML format, "$% can be considerably slower than competing middleware technologies such as ($'6%# This may not be an issue when only small messages are sent-B.# $n the other side, "$% has Message Transmission $ptimiCation Mechanism# &hen relying on HTT as a transport protocol and not using &"-%ddressing or an ?"6, the roles of the interacting parties are fixed# $nly one party )the client* can use the services of the other# "o developers must use polling instead of notification in these common cases# Many "$% implementations limit the amount of data that can be sent# Most uses of HTT as a transport protocol are done in ignorance of how the operation would be modelled in HTT# This agnosticism is by design )with analogy to how different protocols sit on top of each other in the ; stack* but the analogy is imperfect )because the application protocols used as transport protocols are not really transport protocols*# 6ecause of this there is no way to know if the method used is appropriate to the operation# This makes good analysis of the operation at the application-protocol level problematic at best with results that are at least sub-optimal )if the $"T-based binding is used for an application which in HTT would be more naturally modelled as a 7?T operation*, and which may be buggy )if for example the 7?T based binding were used for an operation which did not have the idempotency re+uired of 7?T*# Example Here is an example of how a client might format a "$% message re+uesting product information from a fictional warehouse web service# The client needs to know which product corresponds with the ;, 91DE2BF GsoapF?nvelope xmlnsFsoapHIhttpF!!schemas#xmlsoap#org!soap!envelope!IJ GsoapF6odyJ Ggetroduct,etails xmlnsHIhttpF!!warehouse#example#com!wsIJ Gproduct;,J91DE2BG!product;,J G!getroduct,etailsJ G!soapF6odyJ G!soapF?nvelopeJ %nd here is a possible response to the client re+uestF GsoapF?nvelope xmlnsFsoapHIhttpF!!schemas#xmlsoap#org!soap!envelope!IJ GsoapF6odyJ Ggetroduct,etails'esponse xmlnsHIhttpF!!warehouse#example#com!wsIJ Ggetroduct,etails'esultJ GproductAameJToptimate 2-iece "etG!productAameJ Gproduct;,J91DE2BG!product;,J GdescriptionJ2-iece luggage set# 6lack olyester#G!descriptionJ Gprice currencyHIA;"IJ8E#B5G!priceJ Gin"tockJtrueG!in"tockJ G!getroduct,etails'esultJ G!getroduct,etails'esponseJ G!soapF6odyJ G!soapF?nvelopeJ