Service Oriented Architecture (SOA)
Written By: Sadhan Biswas, PMP
Email ID : sadhan.biswas@gmail.com
Service Oriented Architecture or SOA can be explained as a collection of many services in a network which communicate with each other and this involves data exchange with service coordination and SOA is used for the development of loosely coupled distributed applications.
Though earlier the concept of SOA was based on DCOM or Object Request Brokers (ORBs) but nowadays SOA is based predominantly on Web Services. SOA is also a flexible and standardized architecture which focuses business-centric approach that supports integrating business as repeatable tasks or linked services to design and develop flexible IT solutions which enable business process components to be orchestrated and assembled in a more efficient manner to deliver distinctive business capabilities and services for high performance. It unifies business processes by structuring large applications as an ad-hoc collection of smaller modules called services.
Here its worth explaining the term Service. A service is nothing but a function or some processing logic or business processing that is well-defined, self-contained, and does not depend on the context or state of other services.
Example of Services are Loan Processing Services, booking a flight tichet online etc which can be self-contained unit for process the Loan Applications or could be Weather Services, which can be used to get the weather information. Any application on the network can use the service of the Weather Service to get the weather information and SOAs build applications out of such services.
Instead of services embedding calls to each other in their source code, there are protocols defined which describe how one or more services can talk to each other. This architecture then relies on a business process expert to link and sequence services, in a process known as orchestration, to meet a new or existing business system requirement.
XML is used extensively in SOA to create data which is wrapped in a nearly exhaustive description container. In the communication process with services data exchange are typically described by WSDL, and communications protocols by SOAP, discovery and publishing by UDDI and data representation by XML.
In a SOA environment independent services can be accessed without knowledge of their underlying platform implementation.
Interoperability between different systems and programming languages is the key for integration between applications on different platforms through a communication protocol.
One example of such communication is based on the concept of messages. Each SOA building block can play one or more of the three main roles of Service Requester, Service Broker and Service Provider.
Interoperability, Compliance to standards (both common and industry-specific), reusability, modularity, composability, componentization, Services identification and categorization and monitoring and tracking are some of the guiding principles which forms the ground rules for development, usage and maintenance of SOA.
The deployment of a SOA requires the conversion of existing systems into services. The tasks involved in achieving this can be repeated for each system and a common set of components may be needed to provide additional functionality (such as security and auditing).
An Enterprise Service Bus (ESB) helps in converting existing systems into services. This ESB generally provides an abstraction layer on top of an implementation of an enterprise messaging system, which allows integration architects to exploit the value of messaging without writing code. Using ESB, an application can communicate via the bus, which acts as a message broker between applications. The primary advantage of such an approach is that it reduces the number of point-to-point connections required to allow applications to communicate.
With the increasing demand for SOA and with the increasing momentum of Web 2.0 which is called "second generation" of web sites, together they can add lot of value in enterprise computing in the coming years as Gartner predicted the SOA business with grow to $50 billion in next 5 years.
Web 2.0 will leverage the next generation sites with collaboration and sharing in terms of Social Networking as part of Semantic Web. Hence, Web 2.0 applications will extensively use Web services and may include Ajax, Flash, or JavaFX user interfaces, Web syndication, blogs, and wikis.
With increasing demands businesses use SOA and Web 2.0 to reach new markets, with improved efficiency, in a faster time to market, with lower TCO and other advantages. I will keep you posted with the changes in and around SOA in the coming days.
|