Thursday, February 7, 2008

What is SOA ?



Introduction
SOA is an architectural style that enables the creation of applications that are built by combining loosely coupled and interoperable services. These services inter-operate based on a formal interface definition that is independent of the underlying platform and programming language. Web services technology is a collection of standards (or emerging standards) that can be used to implement an SOA. Web services technology is vendor- and platform-neutral, interoperable, and supported by many vendors today.
Problem with existing approach
IT departments are managing increasingly complex IT portfolios. Yet as business needs change, these departments must still ensure that their technologies remain aligned with business goals. This results in many applications that may or may not be integrated with existing architecture. Also results in redundant infrastructure solutions of functionalities and applications which increase the complexity and cost for IT. It becomes very hard or impossible to modify this portfolio to accommodate changes in business process.
As a consequence system architects around the world agreed upon concept of SOA to address the existing challenges.
What is SOA?
Service orientation is an approach to organizing distributed IT resources into an integrated solution that breaks down information silos and maximizes business agility. Service orientation modularizes IT resources, creating loosely coupled business processes that integrate information across business systems.
Service Oriented Architecture (SOA) ultimately enables the delivery of a new generation of dynamic applications (sometimes called composite applications). These applications provide end users with more accurate and comprehensive information and insight into processes, as well as the flexibility to access it in the most suitable form and presentation factor, whether through the Web or through a rich client or mobile device. Dynamic applications are what enable businesses to improve and automate manual tasks, to realize a consistent view of customers and partner relations, and to orchestrate business processes that comply with internal mandates and external regulations. The net result is that these businesses are able to gain the agility necessary for superior marketplace performance.
But, in real world SOA means different things to different level. IBM is defining as follows:
A service is representative of a repeatable business task. Services are used to encapsulate the functional units of an application by providing an interface that is well defined and implementation independent. Services can be invoked (consumed) by other services or client applications.
Service orientation defines a method of integrating business applications and
SOA: “From a business perspective, SOA defines a set of business services composed to capture the business design that the enterprise wants to expose internally, as well as its customers and partners. From an architecture perspective, SOA is an architectural style that supports service orientation. At an implementation level, SOA is fulfilled using a standards based infrastructure, programming model and technologies such as Web services. From an operational perspective, SOA includes a set of agreements between service consumers and providers that specify the quality of service, as well as reporting on the key business and IT metrics.”.



References:
[1] SOA Foundation Service Creation Scenario Redbooks [Pg: 3-22].
[2] Microsoft Architect Journal: Journal 1 [pg: 10-17].
[3] Microsoft Architect Journal: Journal 2 [pg: 11-32].
[4] http://www.microsoft.com/biztalk/solutions/soa/overview.mspx
[5] http://www.microsoft.com/biztalk/solutions/soa/soafaq.mspx
[6] http://www.cbdiforum.com [CBDI]
[7] http://www.msdn.com