Monday, January 24, 2011

What is SOA?

You can get definition of SOA at many places but that is not only sufficient to understand the meaning or purpose of using SOA.For make this easy to understand I am going to take a different approach.

I will start with a little story that makes us understand what did and didn't worked in past. Back in 1995, a major bank was trying to solve a problem with customer service.At that time different type of products(like different types of accounts) were implemented on different types of mainframe machines.So,if a customer want information on his two different types of accounts then it was hectic for both customer and customer service representative because for customer it was not so easy to remember the account numbers for different types of accounts and as far as customer service representative(CSR) is concerned,he has to go to two different terminals(containing green signals) to find the information about two different types of accounts. Each terminal was having different kind of interface and the CSR has to remember lot of commands which needs lot of training.Because of this Customer satisfaction with problem resolution was low,employee satisfaction was low, and retention of both was problematic. To solve these problems, first bank used the 3270 emulators to rationalize the interface of all systems into a consistent interface,on a single terminal.This solution only reduces the number of terminals but not the complexity of interfaces.Finally bank thought of using distributing technology called CORBA(Common Object Request Broker Architecture).

The first thing they did with this technology was to created distributed objects to represent different types of accounts.These objects provided an abstraction layer between the user and the mainframe systems.Next, they wrote a new user interface, using Visual Basic (VB), that provided account information to the customer service representatives by accessing the different systems via the CORBA objects.

Then they started replacing the green screen terminals and understood the potential of approach.They had essentially implemented the beginnings of a 3-tiered application architecture by separating the presentation, business logic, and operational systems.

They had essentiallyimplemented the beginnings of a 3-tiered application architecture by separating the presentation, business logic, and operational systems. Next, they wrote a new user interface, using Visual Basic (VB), that provided account information to the customer service representatives by accessing the different systems via the CORBA objects.




The next enhancement they did was implemented customer relationship object.This helped CSR in searching the information about all types of accounts of customer by just taking the customer name and an account number.And the customer also need not have to remember many account numbers.

The next incremental improvement was to automatically look up information about each account and display a summary on the customer service representative’s terminal.Now,without any additional effort on their part,the representatives had a broader view of the customers and a better understanding of their relationship to the bank. This allowed them to better serve the customers requests and at the same time offer additional value or services (i.e., turn a customer support scenario into a sales opportunity).Customer and employee satisfaction started to go up.
Over next 2 years bank continued to add more business objects in logical tier and better features in the interface.After some time everybody started asking for Internet banking.Most of the banks started looking towards the solutions like screen scraping.But this bank investes in architectural approach and they have separated the presentation layer from logical layer and logical layer from operational layer.Finally they invested in building up an effective library of services in the logic layer. Therefore, all they had to do was implement a new Internet presentation.Some minor changes to services were required as well as some new services to support security and other Internet specifics.

After two years,this bank merged with another bank.Now the problem was how to integrate the new bank’s systems into the other bank’s Internet operations.Imagine the challenges involved, and imagine the surprise when 100% of the combined customers were able to access their accounts through the Internet on the first official day of merged operations.It became possible because instead of adding a new presentation,the bank added new systems to the operational layer and enhanced the logic layer so that it was possible to access the new types of accounts and systems. Only very minor changes were required in the presentation layer.

Two things that came out of it was :-
1) Adoption of an architecture that distributed responsibilities across layers and tiers.
2) Understood the challenge of creating the right kind of services in the logic tier and of having developers reuse them.

So, with a successful implementation of SOA, the bank was able to improve customer retention and satisfaction, reduce costs and time to market, take advantage of disruptive technologies, quickly absorb acquisitions, and keep ahead of their competitors.

From a more technical point of view, the bank was able to integrate multiple systems, support multiple channels and devices, scale horizontally to support very large-scale and highly reliable requirements, incrementally add new functionality, manage reuse, and converge on a common service infrastructure.

So,now what is SOA ?

---------------------

SOA isn’t about technology, and SOA doesn’t just happen. SOA is an architectural approach to building systems that requires an investment in architecture and IT, a strategic and business vision,engineering discipline and governance, and a supporting organizational structure.

No comments:

Post a Comment