The advent of the SOA (Service Oriented Architecture) and its bandwagon (Read BPM et al) has spurred a deluge weblogs, articles and white papers aimed at explaining the rather abstract concept of SOA. By now most enterprises have understood the meaning and importance of SOA, and started their journey in small baby steps. But, there are a lot of individuals and companies, for whom SOA is still, I may dare say, a mystifying concept.
My blog however, will not take the traditional way of explaining the concept using terminology which would further confuse the average reader. Instead, I will try to explain it using the things that we already know and situations that we have been in, already. Seasoned professionals in this area however might think of this as an oversimplification, but as I have tagged it already, it is aimed at Beginners in the area.
Legacy Systems:-Ever since the pre historic man started to evolve socially, majority of the societies all over the world have accepted the concept of a family. In most societies, even today, one person takes care of preparing the food for the family. Keeping in mind, the taste of the rest of the family members, the person will cook various varieties of dishes. So, we can look at each of these dishes as the services that are provided by the person who cooks. As you can see, these services are limited only to the family members are cannot be availed by anyone else in the neighborhood in a given day.This set up can be compared to a closed legacy system, which has transactions (eg Sales Order create, PO create etc)Which are accessible only to the users who have access to that particular system. This set up is said to be NOT service oriented.
Remote Enabled Functions and IDOCs:-People who share a special relationship with the members of the family are categorized as Friends and Relatives.Some of these people have a facility to devour the dishes made by the family, because they know them already.These people can be considered as either trading partners or systems/applications in the same landscape.The ability of the friends / relatives to the dishes prepared by the family are analogous to access the Remote Function Modules using proprietary languages like Jco (Java Connectors) and .NET Connectors. This set up is slightly better in terms of openness, but is limited by the fact that to make new friends, they should completely understand the Family’s traditions, culture and expectations. These traits are analogous to the technical architecture of the RFCs / BAPIs /IDOCs.
SOA :-If the dishes that are prepared are so tasty and you realize that it should not be limited to the four walls of the family, the option you might mull over is to open a restaurant. Now, the service of providing a dish is not just limited to the family members, but to anyone who has valid access to the restaurant.. This set up at a restaurant can be considered a service Oriented architecture, because the services are no longer bound within a particular system anymore.
ESR:-ESR is the place where you define your service interfaces. This is analogous to the place where the cook decides his recipe and the ingredients.
Service Provisioning and Proxies-The process of creating the backend logic for a particular service, using proxies, and service enabling it is called service provisioning.It is generally done in the Backend system.Coming back to our analogy, it’s the Kitchen. Kitchen is analogous to the backend system where the actual dish is prepared.
Service Registry:-Service Registry is the component where you can discover the services that are available.It is nothing but our Menu card, which lists out the various dishes that are available.
Service Consumption and UI:- The design of the interface that the user finally uses can be termed as service consumption. This can be compared to the art of garnishing the dish to make it more presentable to the user.
Composition Environment:-The process of mixing and matching of multiple services into one can be termed as Composition.This can be compared to the process of creating new dishes by combining multiple dishes into a new dish.
Enterprise services and web services:-The dishes are only limited by the imagination of the cook or chef. But only a certain set of dishes appeal to international customers.Any dish that the cook prepares can be compared to a web service.But those which appeal to an international clientele can be compared to a Enterprise Service.As you can see, for a dish to be able to appeal to international customers, it should have consistency in the ingredients that are used in the recipe. It goes without saying that the description given in the Menu should be in a global language like English. Similarly for a web service to be an enterprise service, it should have technical inter operability and business semantics.
BPM:-The course of the meal is carefully designed to satisfy a person’s appetite. Typically, you will be served with an appetizer, followed by some starters, then by the main course, finally closing with a yummy dessert of your choice.The designing of the meal course can be compared to the orchestration or stitching together of services as a business process. We stitch together a business process to satisfy the innate requirements of an organization.
I hope I have touched upon the most basic concept of SOA in general. Please let me know how it tasted…:)
Your waiter for today…
Ravi Kanth Talagana