There are certain technologies working behind the cloud computing platforms making cloud computing flexible, reliable, and usable. These technologies are listed below.
Distributed system
Grid Computing
Virtualization Technology
Utility Computing
Service-Oriented Architecture (SOA)
Distributed computing, a distributed system, distributed databases are a collection of self-determining components positioned on different machines. It shares messages with each other in order to achieve common goals. It is a distributed systems to resolve single large problems by distributing tasks in the distributing systems. On the other hand, cloud computing is a distributed transparent system that computes the processing, storage and management of data. Some popular examples of distributed systems are Facebook, World Wide Web and ATM.
Grid Computing offers a distributed computing in which a group of computers are connected from multiple locations with each other to accomplish a common objective. These computer resources are heterogeneous and different geographically regions. Grid computing breaks the complex task into smaller pieces, which are distributed for processing to complete a common objective.
Virtualization is a well-known technology, which refers to share single physical instance of an application or resource among multiple or group of organizations or tenants (customers). When a huge customer request to access the resources of cloud, it provides a pointer of specific virtual resources. Every virtual machine is unique from a physical machine. Virtual machines deliver an environment that is logically divided from the underlying hardware. The virtual machines are created from a host. This virtual machine is accomplished by a software or firmware, which is identified as hypervisor.
The client-server model is a distributed application model that distributes tasks or loads among the service providers of a resource called the servers. The clients give the request and servers send the response to clients. When the clients send a request for service through the internet, the servers accept the request for processing and delivers the results to the client. The server shares the resources to clients but clients do not do it any, such as E-mail and World Wide Web etc.
Utility computing is based on the traditional on Pay-per-use-model. It deals computational resources on-demand as a metered service. The utility computing concept is based on cloud computing and grid computing.