When the entire fraternity of the web world was engrossed with plethora of personalization activities like streaming videos through YouTube, networking through MySpace, collaboration through blogs and wikis etc. The next wave of technological innovation arrived almost unnoticed. The next wave is the dramatic move towards the Service-Oriented Architecture (SOA). And it is here to stay!
SOA has become more of a buzzword in recent times. But there remains a lot of confusion about the proper understanding of the meaning of SOA. To explain by means of human example, we can say that different applications need to talk to each other for communicating important data. These applications are like people from different regions of the world who speak different languages, who do not understand the language of people from other regions. So, no communication can take place between these people due to this language problem. Here in comes the gentleman who plays the role of an interpreter. He provides different services like e.g. takes the message from one application and passes it on to the other in a language which is understandable to it.
This is only the tip of the iceberg. To understand it in more detail we need to delve into the technical depths of SOA.
SOA architecture can be thought of as a framework in which many loosely coupled services are available in the network. When I say services, it means independent sets of functionalities. It can be anything like filling out and application form or opening and online account etc. The SOA framework builds application from these independent services. These independent services talk to each other through protocols. Now in case a business system requirement needs to be designed based on SOA, the independent set of services are combined to be structured in such a manner that the business process gets it’s intended shape. This is generally done by an expert. And this process of linking and sequencing the services to emerge into a business process is known as orchestration.
To make the SOA architecture work efficiently one needs to ensure few things like an existence of communication protocol for integration between applications in different platforms and the interoperability. The other factors which are the driving forces behind the SOA architecture concept are reusability, granularity, modularity, portability, interoperability etc. When we say driving force what we mean is that these are the principles which provide the base for designing SOA architecture.
SOA is a vast and continuously evolving concept and explaining the technical details is not the purpose of this article. Rather the intention is to give a conceptual understanding of the SOA framework. To take the understanding to the next level we can say that SOA is a paradigm which talks about blending varied capabilities from the ambit of divergent ownerships. This concept of discovering and using the varied capabilities available in the network seems to be the way ahead for the business process applications. The use of SOA leads to cost-effective and faster response in the dynamic market place. It provides greater flexibility and re usability. SOA also provides agility to the businesses thus providing the value proposition.
However everything is not hunky-dory. SOA implementation may lead to problems related to managing services metadata as managing the interaction of services is a tough ask. The task of managing becomes more cumbersome as the services’ sources vary from one provider to another. The scenario becomes more skewed with the lack of trust between the various vendors. Another key issue that beset the SOA implementation is the lack of proper testing in the SOA domain. A need for development of testing tools still remains unsatisfied and this is an unfortunate scenario as the need to capture the reason for failure quickly and correct it cannot be overemphasized in this highly competitive business scenario where companies cannot afford to loose business for a considerable amount of time due to system failure. Other challenges are also there in terms of levels of security, interoperability and vendors.
This is just the beginning of the SOA revolution. The expediting of the software engineering approaches to use this technology will occur as the applicability and demand of SOA rises as it is doing at the moment. SOA is an exciting beginning to a disruptive technology and it will definitely revolutionize the way applications are built in the internet domain.