Varun Sharma, who is an IBM Certified SOA Architect and a dear friend wanted to share his experiences and learnings on SOA. He would be doing a series of posts on the emerging trends and best practices in the field. The aim is to explain SOA in simple and easy to understand language so that you can reap maximum benefits out of it.
Introduction to SOA
Service Oriented Architecture (SOA)… is it a fad or reality? Well for me it’s neither… for me it’s just an opportunity. An opportunity to build leaner meaner organizational architecture, an opportunity to add news dimensions to your existing business, an opportunity to learn from mistakes committed in past (ERP/CRM) and multiply the ROI on forthcoming business & IT investments, an opportunity to dissolve the barriers within companies and also barriers separating companies from vendors/suppliers, an opportunity to explore the unexplored.
SOA is everywhere… hey I don’t mean SOA is God. But if you look closely, SOA is indeed everywhere on this planet. May that be a restaurant or a bank or even a retail shop, SOA is present everywhere. A bicycle would be the simplest example of SOA from the real world. Each component of a cycle is a self-contained unit which when combined with other components produces a forward motion. In essence tires, the steering rod, the brake line, the spokes within the tire’s rim, the chain, the two gears one in each tire combine with each other to produce a blissful motion. These individual components can be considered as services and the motion of cycle can be considered as a function or a process which resulted from pre-defined services. That’s how bicycle is an example of SOA.
What does this above analogy tell you about SOA?? (NOTE: I am taking top-down approach to explore this topic) It implies that SOA is not a framework, design pattern, coding standard or an architecture BUT it’s simply a concept. SOA is a concept of using autonomous, reusable, discoverable and stateless services which in turn combine (choreograph or orchestrate) to produce the desired/expected result. The same components with or without other components can be used to formulate a new business function. Going back to our previous analogy, we could imagine making a unicycle from all the components used in making a bicycle, we could also think on lines of making a mechanism of making a hand paddled tricycle for physically handicapped people. So you see, the components more or less remain the same (autonomous yet reusable) but the function they offer after different compositions can vary.
Now let’s take a quick look at the definition of SOA for technology enthusiasts & analysts; In order to derive a proper definition I would take help of SOA Reference Architecture as depicted below (NOTE: SOA Reference Architecture has been taken as a datum for this write-up for the simple reason that the SOA Suites built by both IBM and Oracle are based on the SOA Reference Architecture). This is how an enterprise built upon a SOA Architecture would look like. The layers should ideally be demarked as depicted below.
Source: http://www.ibm.com/developerworks/library/ar-archtemp/
The Operational layer would have all the packaged and custom applications hosted, along with software development kits and other infrastructural components. The Service Component layer represents the business component layer. This layer represents all the individual business components with integrate to form a whole web application. The Service layer represents the place holder for all the services that represent the encapsulated and wrapped Service/Business components in the referenced layer below. The services in this layer are atomic and autonomous and are often represented by web services (WSDL & XML are the backbone of web services), however the same services when referenced in the Business Process layer they represent a complete business function. The services in the Business Process layer are choreographed to formulate desired business function and achieve the targeted result (this is mostly achieved by using BPEL). Now the same business process formulated above is exposed to the end customer in the Consumer Layer. The consumer action triggers the business process which is built on referential integration on top of other layers and thus leads to utilization of business components using a web service defined inside a business process.
Now based on the above description of layer within most popular SOA Architecture we can say that; “SOA is an architecture approach for defining, linking, and integrating reusable business services that have clear boundaries and are self-contained with their own functionalities. Within this type of architecture, you can orchestrate the business services in business processes.”
To increase flexibility, the company has to look at its business as a collection of interconnected functions, discrete processes and services, such as check customer credit or authenticate user, and then decide which of those functions are core or differentiating, and which can be streamlined or even outsourced. If the company can mix and match these functions at will or on the fly, in response to changing business conditions, the company will have a tremendous competitive advantage in the marketplace. It is a powerful idea. But to achieve this degree of flexibility in the business operations, the company will need an equally flexible IT environment. It needs a service-oriented architecture (SOA).
It is very likely that business transactions will be significantly easier with an SOA. SOA is an approach for building distributed systems and achieving enterprise integration by delivering application functionality as services to either end-user applications or other services. An SOA could be the difference between the success and failure of the next:
· Department, intra-company, or inter-company merger
· Acquisition
· Divestiture
· Product or service rollout
· Business partner, customer, or supplier addition
· Geographical expansion
· Competitive onslaught
We would love your feedback on the post. Do you Agree? Disagree? Find it useful? Do let us know.

hi,
ReplyDeletei have been searched SOA throughout the web,and finally ur blog explains SOA with real time examples.especially the reference architecture clears all my myths about SOA.
Thanks a lot!