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.

Create

Retrieve/Read

Update

Delete

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:

Create
INSERT

Read (Retrieve)
SELECT

Update
UPDATE

Delete (Destroy)
DELETE

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 :

Advertisements

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

The field of IT technology is an ever-changing one. Just when you think that you are on the cusp of grasping the next big thing, you find that its no longer the next big thing. It’s the next big thing , that could have been!

Let’s just talk about a few terms that you might have heard about or read about – the so-called game-changers, the panacea to all IT’s problems.

The most commonly heard terms bandied around are : SOA (Service Oriented Architecture), cloud computing and BPM (Business Process Modeling).

If you are aware of these terms and believe that you can drop them around in casual conversation around the water cooler, you are part of the ‘in-crowd’ i.e. you kind of know it all.

But how do all these technologies fit in? Are they something quite separate? Or are they all inter-linked? What are the linkages that bind them together?

From a technological stand-point , Web Services Definition Language (WSDL), SOAP (Simple Object Access Protocol) and Universal Description, Discovery and Integration or Universal Dynamic Discovery and Invocation (UDDI) are what forms the basic building blocks for web-services. WSDL is. of course, based on XML, so I do not add XML to this mix.

At the least, these are also the building blocks to building an SOA infrastructure, though SOA is more than just web-services.

There are 2 ways to build a web-service:

1> From the top-down i.e. you enable your existing application’s functionality to be used as a web-service. This is the easiest route and enables reuse of existing functionality.

2> From the bottom-up i.e. you write web-services for wanted/required functionality and then invoke these either directly through clients or from other applications and/or services. You could even expose these services to 3rd party applications.

What is so different about web-services?

Web-services besides allowing for reuse across applications, also accounts for interoperability.

What is interoperability? Interoperability is the ability for applications written for different platforms and in different languages to communicate without loss of semantics and functionality.

The genesis of web-services originated from B2B applications i.e the need for business applications across business entities to communicate with each other. Anyone remember WebMethods?

Prior to web-services, B2B communication did exist but was largely proprietary and non-extensible. EDI was once such methodology. It still exists and works, but is not fashionable anymore.

Share this post :