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.
The cloud computing platforms are convinced the cloud computing more flexible, more reliable and many types of services [5]. Cloud computing based technologies are itemized below.
Ø Distributed system
Ø Grid computing
Ø Virtualization technology
Ø Client-Server model
Ø Utility computing
A collection of self-determining components are positioned on different machines to achieve common goals. It shares messages with each other in order. It is a distributed network to resolve large tasks by distributing these in the distributing systems. In shortly, the 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 (WWW) and ATM [39].
Grid computing is a collection of computers that are connected from different locations with each other to accomplish a common objective. These computer resources are different networks and different geographically regions. Grid computing breakdowns the complex tasks into smaller pieces, which are circulated for processing to complete a common objective [10].
Virtualization is a well-known technology which refers a single physical instance of applications or resources among several 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 a 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 [16].
The client-server application is a well-known application model that distributes tasks or loads among the service suppliers 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 have it, such as E-mail and World Wide Web [40] etc.
Utility computing is constructed on the traditional on Pay-as-you-used-model. It deals a computing assets on-demand as a metered provision. The utility computing concept is based on cloud computing and grid computing [14].
There are several elements consisted in the cloud computing, such as clients, cloudlets, datacenter broker, cloud information services (CIS) and datacenters (virtual hosts, virtual machines and processor elements (PEs)) as shown in Figure 2.2 [41] [42].
Figure 2.2: Basic components of cloud architecture [41] [42].
· Clients: These are typically the computers, mobile phones and thin browser which are used by the end users. These devices can be used by the end user to accomplish a task in cloud [6].
· Cloud Information Service (CIS): Datacenter is registered in cloud information service (CIS) and the information of the cloud components are stored in a table of CIS.
· Datacenter Broker: The datacenter broker acts as a coordinator between software-as-as-services (SaaS) and cloud providers. The main responsibility of broker collects the available resources and provides quality of service to clients of cloud system. CIS sends the acknowledgement to the broker about available resources of cloud [14].
· Datacenter: Broker connects to datacenter. A datacenter is a collection of virtualized hosts, virtual machines, processing elements, virtual networks and virtual storage. A datacenter consists of architecture X86, operating system, and virtual machine monitor (VMM), host list, memory, bandwidth and storage [43] etc.
· Host: A host consists of multiple virtual machines. The capacity of host is defined million instructions per second. There are multiple virtual machines in a host. The processing elements are processed the cloudlets and sends the result to broker [44].
· Virtual Machine: The VMs are allocated in a host with the best-fit mechanism. The parameters of the host are processing capacity usually measured in million instructions per second (MIPS), memory size is in megabyte (MB), storage size is in terabyte (TB) and communication bandwidth is in megabyte per second (Mbps) [2].
· Cloudlet: The cloudlet is an application which consists of million instructions (it is also known as a task such as social networking, content delivery and business application etc.). These cloudlets are executed by processing element (PE). The parameters of a cloudlet are cloudlet Id, user Id, length (in million instructions), number of PEs, input and output size (in MB). Sixthly, the cloudlets are submitted to virtual machine and are executed by PEs [45].