Web Services, SOA, BPM, and Cloud Computing – II

Talking about web services again, I would classify web-services as the following 3 types:

1> RPC type : Here the web-services, when their payload is examined, follow an RPC style; i.e they appear to be a pair of method and return calls. For those who are familiar with the RPC coding methods , in existence, before CORBA, XML-RPC would appear to be very similar.

2> Document style: Here the web-services, or rather their payload, follow a document style. That is, the payload is an XML document, and the response is another XML document. The document is defined by the user i.e. either the programmer, the architect or it could also be some standard format.

XML-RPC evolved into SOAP; the SOAP protocol supports the RPC and Document style of web-services.

3> RESTful services: RESTful (Representational State Transfer) web services follow the CRUD methodology.





These draw inspiration from the database methodology or rather the relational database SQL DML (Data Manipulation Language) statements.

The SQL mappings for CRUD in a relational database are as follows:


Read (Retrieve)


Delete (Destroy)

The key principle behind REST is to look at everything as a resource, which can be uniquely identified.

REST uses the HTTP protocol and hence each resource is uniquely identified by an URI or Uniform Resource Identifier.

Amazon.com’s technical team were one of the pioneers of the RESTful approach towards web-services. And to their credit, it is the simpler approach and more easily understandable. This style of web-service programming was and is the backbone of their shopping site. It is also the architectural style used for their cloud computing offerings.

What the RESTful architecture using the HTTP protocol does is map HTTP methods to the CRUD style.

HTTP GET – retrieves a resource or rather its representation. Very simply a GET call to the URI, returns the resource and its contents.

HTTP PUT – the HTTP PUT method – as the name suggests , this maps to the CREATE i.e either a new resource is created or an existing resource is replaced , if the same identifier is used.

HTTP POST – is used to modify or update an existing resource. This is usually a partial update. It may also be used to create a sub-resource.

HTTP DELETE – the simplest – deletes the resource.

References: Wikipedia. http://xmlrpc.com,http://www.infoq.com/articles/designing-restful-http-apps-roth

PS: CRUD is sometimes also referred to as CRUDS where the S stands for Search. Though you could just classify it as a subset of R – the retrieve.

Reblog this post [with Zemanta]

Share this post :