Wednesday, May 19, 2010

Service Orientation... A new approach of Web Services

Hi everyone,

It's been so long since I've published a post in my blog. Now I've come up with a post on the latest buzz, "Service Orientation". Of course, many people should have already posted tens or hundreds of articles on this issue, but let me also put my views in this post. I request you to kindly  be very patient going through this post as it is little lengthy!

There has been lot of buzz in the industry for quite a long time about "Service Oriented Architecture". Let me use "SOA" to refer to it in my post (of course, universally acceptable!). What is SOA? A lay man can give its definition as an Architecture that is meant to provide services! Its true. If you ask an under-graduate student, he says.. a slightly unfashioned and untraditional manner of providing web services (I'll elaborate the same soon). If you ask an IT Professional, he says.. "An architectural approach that helps solve problem in a distinct, yet simpler manner, that has evolved from the roots of XML...."(the definition continues..)!!!

In a lay man's perspective, assuming he/she is a regular user of the Internet, he/she feels that anything being provided to him in the Web is a service. The services is perhaps, offered by a provider and he is probably one like Google, eBay, Amazon, etc., and he/she is the Service Consumer. Hence he/she feels SOA as just a tool that provides services. He/she would perhaps derive it from the term SOA itself and miss many important aspects of it!!!

Certainly, SOA has something more than it! I'll come to it soon.

In the perspective of an under-graduate, who is well-versed with Internet, SOA seems something like unpleasant term. He/she would rather feel..."What is service and what is orientation, moreover what is architecture??!!" I don't mean to say an under-grad will not know about the term but have come across many people who felt so. He knows that something is being provided to him over web and can satisfy himself by correlating the word 'service'. The question that an under-grad would look at is 'what is an architecture? How is it concerned to providing something over web?' and many more! I'll come to these soon.

In the perspective of an IT Professional, SOA is an approach that enhances the construction of solution to a problem that tries to modularize the solution and make it re-usable. After all, what we all are concerned today is about some re-usable solutions to some ever-existing critical problems to save the time and cost. SOA looks at it! An IT Professional would not look at it as a special concept, rather he looks at it as an advancement to the traditional Web-service architectures. SOA is an extension to XML (Extensible Markup Language). SOA is based on SOAP, WSDL. SOA is just an extension to already existing technologies but a finer and sophisticated approach of providing Internet services over web.

SOA is an architectural paradigm. It is different w.r.t. various other technologies only in the sense that the communication is in the form of services (Remember, this services is different from the services a lay man thinks of!!). Any middle-ware programmer would and should be aware of CORBA (Common Object Request Broker Architecture). In CORBA, communication between two entities is in the form of objects with the help of an Interface Definition Language (IDL). But in SOA it is in the form of services through the use of WSDL (Web Services Description Language)!

In short, WSDL is similar to IDL; yes, of course it has much advancements. IDL is a common language for all object-oriented languages and the scope of WSDL is more. With the concept of 'services' it has created a new spectrum for itself.

In short again, in my perspective, SOA is similar to CORBA except that it makes use of services and the latter makes use of objects apart from the architectural differences. Hence I refer SOA as something called CORBA++!!! :) SOA offers communication in the form of services which are inter-operable and platform-independent.

I have earlier said I'll be describing the term 'Architecture' and the relevance of the word in the context of Web services. Let me put this way... Suppose a person wants to communicate to another person. He can do this with the help of a mutually understandable language or with the help of a translator, in any language. Certainly mere language and/or translator is not sufficient for a good, formal and effective communication. There are certain practices to be followed for a good communication, for example, body language, dress code, etc., depending on the kind of communication (formal/informal). Architecture simply addresses these. Architecture, in the context of SOA addresses.. what the service roles, service models, service endpoints and service descriptions are. Hence a communication between two entities relies broadly on the architecture underlying it. This is very essence of 'architecture'. Examples include Client-Server Architecture, 2-tier client-server architecture, distributed internet architecture, Hybrid Web-Service Architecture, and many of their kind.

I would not go into much details of the service types, service roles, service models and all as it ends up to writing a book as a whole and I'm not so well-versed with the corresponding literature, any how. Let me wind up by just pointing out the very first point I quoted, i.e., it is a latest buzz. It is, because of its simplicity, adaptability, re-usability and advance-ability. Many vendors like Microsoft, IBM, BEA Systems, Sun Microsystems, Oracle, eBay, Tibco, Hewlett-Packard, Canon, Commerce One, Fujitsu, Software AG, Nortel, Verisign, and WebMethods are all extending their continuous support towards the development of standards for SOA. Various standards organisations contributing to the continuing evolution of SOA include W3C, OASIS, WS-I, etc.

Hence SOA is a continuing 'phenomenon' and the industry is slowly shifting to this latest paradigm and thus it is future generation Internet Technology. Thus a great shift in paradigm is needed towards SOA and SOA is going to revolutionise the concept of Web and Web-based services.

Thank you for going through this very long post and any comments are always welcome. I would feel utmost pleasure in discussing the technology with you all.

Have a great day! :)