The three technologies are related to one another and came into existence/relevance mainly due to plethora of heterogeneous IT systems and TCO – Total Cost of Ownership.
The challenges facing the current IT world is the existence of multiple IT platforms, applications and systems. Over the period, diverse IT systems have infiltrated various organizations. Let us consider the analogy to an HR issue of interaction between people from diverse backgrounds. The IT challenge is to achieve interaction between the disparate/diverse IT systems. In this process, there was the concept of integration middleware (SAP – PI/XI; TIBCO etc.) which promised to be the translator between these diverse systems. It did help the IT dept. achieve the required interaction between systems but every interaction had to mapped and added the additional overhead to maintain the middleware in addition to existing IT systems.
As you would observe in a real world scenario, the translator is a temporary solution. To be self-sufficient there needs to be an inbuilt knowledge for one person to understand other’s words. The English language as the common communication medium allows one person to communicate with another. However, we cannot apply the same logic as computer languages cannot be standardized to one single language. To address this issue, some smart people looked at the analogy in a different way. The idea was, to ensure that the messages sent out from the IT systems are standardized to one common format. Then the objective of communication between systems can be fulfilled. In IT world, web services fulfilled the requirement. Web services wrapped the functionality in native computer languages on their respective platforms with a message layer, which communicate the output/input into a common standard. So, when all the functionalities exposed by various IT systems are wrapped into web services then they are able to talk to each other. Now, it sounds simple but why were the bright minds not able to do so earlier. The concept of web services came into significance with the maturity of the Internet and its related standards (SOAP, REST etc.). In addition to the advancement in the Internet technologies, the availability of Web Servers(SAP – WebAS) were helpful in wrapping the existing functions to web services.
Service Oriented Architecture(SOA)
Even though there were functions which could be made to communicate with each other there was no clear idea on organizing these functions to fulfill IT challenges. In real –life scenario, one person usually plays multiple roles. The IT vision was to use same function in different situations. By organising these functions we ensure maximum usage of our functions. To realise this goal a set of standards were formulated. These were compiled and was christened as Service Oriented Architecture (SOA). SOA is a protocol outlined to prepare solutions which would be easier to talk and also break and re-use for other solutions. SOA simply tells you how to prepare the solutions. As is the case, many vendors provided the necessary ammunition to fulfill this protocol (SAP – Enterprise Service Repository, Business Process Modeling, etc.).
Virtualization and Cloud computing
In this whole brouhaha about web services and SOA, there was growing cost of maintaining the IT systems. In real-life scenario, the cost of kids’ education and care is increasing every year driven by inflation. The cost of everyday goods had increased at least 3-folds. Similarly, the IT systems cost was growing exponentially. The cost of maintaining the growing servers was increasing. With the increasing processor performance [Moore’s law: computer performance will roughly double every 18 months] there was increased demand for electricity to cool these servers and maintain them at optimal temperature. Also, there was the need to house the IT infrastructure. The list kept growing for the organizations. The dilemma for the organizations was IT which was envisioned to solve problems had become a bigger problem. Enter the Dragons – Virtualization and Cloud Computing Environment.
Virtualization logically/virtually split single system into multiple systems. Then, it ensures that they behave independent even though they were on the same physical machine. In this process, you increase the utility of one system and meanwhile allow switching off logical systems when not used. The result is optimal usage of the infrastructure. Cloud computing environment created the necessary environment with the help of Virtualization and Internet. In real-life scenario, with the growing population, it’s a challenge for everyone to own their real estate (home). Also, with the global work environment, the people are constantly on the move. So, people usually take the house/vehicles/furniture’s etc. on rent in their respective location to avoid the un-necessary burden of ownership. Cloud Computing allows IT department to obtain the servers/platform/software etc. on rent. The rent can be paid for every house of usage. It also provides the flexibility to increase the number of IT systems by the IT departments without the need of any permissions. Similarly, they can release the resources on rent when it is not required. The result was zero investment on maintaining the infrastructure and subsequently increased focus on core business and not the facilitator –the IT.