Web Services and Cloud Computing
[Courtesy: java.sun.com]
There is much attention given to Web Services and Cloud Computing after the recent launch of Amazon Web Services. The terminologies or the called technical jargons are yet to be exposed in full length and many people aren’t clear about the underlying facts. Still if you go to an Amazon employee and ask for a definition, he might stumble upon to provide a meaningful description. Since these are in their maturity phase and there is long way to go to explore in depth and create awareness.
Let’s go back to roots to understand the Web Service. Initially when the programming language was used, we define functions or procedures to reuse the set commands in our program. This function or procedure when invoked with the required parameters or supply in values they apply the series of commands within them on these supplied values and return the output to the calling code or the parent handler. Let’s say you have written the program in C or C++ language then the function written is also in the C or C++. So the function and the program are in the same language and platform. After a period several programming packages and operating systems started exposing something known as Application programming interfaces [API]. APIs are language dependent set of codes available for usage in the programs. You can invoke these API depending on the functionality and passing the set of necessary arguments.
After these there were several ways in which the reusable code were developed and consumed. Still there was a dependency on the plat form or some sort of conversion required to use these pre-written functions. When the development cycle was getting matured, Service Oriented Architectures [SOA] and Software as a Service [SaaS] concepts evolved leading into the development of Web Services. Web Service as the name implies is a service provided over a network like web. A wiki definition states Web Service as “a software system designed to support interoperable Machine to Machine interaction over a network”. You can simply consider the Web Service as set of APIs exposed over internet or some sort of network. You can invoke these Web Services by passing the required values and get back the results and the biggest break through is these are interoperable. Meaning these functions are independent from the calling platform or language. You can call a Web Service via Java or via .Net or from any programming tool/language which offer you to consume the Web Services. This is possible using the eXtensible Markup Language [XML] formats and Simple Object Access Protocols [SOAP]. Going into the background process of how it works is a whole different subject and detailing here might dilute the basics.
The Web Service expose their signature like what input it takes and what output it gives via Web Service Description Language [WSDL]. Now I know what is a Web Service and its basic operations, I want to know the list of Web Services available on the web and the Universal Description, Discover and Integration [UDDI] pitches right in there. UDDI is like yellow pages of Web Services on the web and it describes the list of Web Services available with a description of the functionality. So when I want to use a Web Service, I go to the UDDI, search for service related to my required functionality and use it in my program.
Let’s now move onto the concept of cloud computing, you can say it as a data center available outside your company or your walls and you consume the power of it for your processes. On the web it is defined as “A pool of abstracted, highly scalable, and managed compute infrastructure capable of hosting end-customer applications and billed by consumption”. It is collection of resources from computation power to applications lying outside and you can use it for your work. Opposed to the SaaS you can call as HaaS – Hardware as a Service. So all you need is a desktop with connectivity to the vendor you have tied up for cloud computing service and you are on the hook for your operations.
Both these are maturing and over a period you will see many players trying to fill in the space. Now Amazon Elastic Compute, Google Apps, Microsoft Mesh are to name from the big players in this area.
All these are the phases of widening of our technical advancements and it is going to be a joyful trip as we leap forward.
No comments:
Post a Comment