views:

149

answers:

4

SOAP - Simple Object Access Protocol

I find some Difficulty in understanding the expansion of SOAP.

  • First thing, is it really Simple?
  • Second thing, is it used to access Objects?
  • Third thing, If it used to access objects then what are the objects it can access?
  • Fourth thing, Is it purely object access protocol?

Help me to understand it more clearly.

+2  A: 

Compared to some other protocols used to access "objects" over a network, especially public networks like the Internet, it is comparatively simple. But really, I suspect this is one of those cases where the acronym was arrived at before the to phrase it abbreviates was fully determined.

Zippit
...but...but...but SOAP works so well with WATIR! ;)
R. Bemrose
+5  A: 

No, it's not particularly simple, IMO. It means slightly different things to different people (message passing? RPC? object access? all of the above?) and implementations often have sticking points when they talk to each other.

Pete Lacey has a very humorous dialogue on this...

Jon Skeet
@Jon Skeet: Jon Skeet answered to my question. OMG. Thanks Jon. I am a big fan of your Coding blog.
brainless
A: 

http://stackoverflow.com/questions/76595/soap-or-rest

Read the answer of mdhughes in this thread.

FractalizeR
+2  A: 

First. The definition of SOAP as Simple Object Access Protocol has been dropped from the standard for some time now. It doesn't stand for anything. That being said, here are a few comments:

Simple surprisingly enough, it is simple. However, coupling it with all sorts of standard starting from the innocently looking WSDL which is not bad but lends itself to automation too much; down to the rocket science level WS-* which has all the messiness of committees (I worked in grid computing, and it was a bitter experience), that is what makes the ecosystem complex.

Object: it is emphatically not object. That is what made the standard body drop the expansion. And that is the difference to things like CORBA. The difference between object and service is that object is state and service (and SOAP) is stateless. An easy way to tell the difference is the life time. CORBA objects have a lifetime usually controlled by the client. SOAP services don't have a life time.

Objects can be built on SOAP using contraptions such as WSRF or anything that binds state and services WS-Addressing style such as WCF. That is not SOAP. That builds not it. It will work but will be less scalable and more brittle.

Removing the object from SOAP makes it no longer an object access protocol. Whether that affects your next project and how to deal with it is in my opinion dependent on the particulars of that project.

Muhammad Alkarouri