Cloud computing is a term used to describe both a platform and type of application. A cloud computing platform dynamically provisions, configures, reconfigures, and de provisions servers as needed. Servers in the cloud can be physical machines or virtual machines.
Figure 1: Major components for building a dynamic infrastructure to reduce costs improve service and manage risk
Advanced clouds typically include other computing resources such as storage area networks (SANs), network equipment, firewall and other security devices. Cloud computing also describes applications that are extended to be accessible through the Internet.
These cloud applications use large data centers and powerful servers that host Web applications and Web services. Anyone with a suitable Internet connection and a standard browser can access a cloud application.
The cloud computing architecture is built upon several functional component blocks (for example, compute resources or deployment environments), which are organized into specific layers of a pyramid.
The width of these layers represents the depth of technical expertise required to build and/or deploy that layer.
At the apex of the pyramid are users accessing the applications; in the center is a dynamic control plane that traverses all others and provides real-time connectivity, information coordination, and flow control between the layers.
An important strategic consideration is the integration of all the pieces of the infrastructure to create the cloud.
Users or brokers acting on their behalf submit service requests from anywhere in the world to the Data Center and Cloud to be processed.
Figure 2: Cloud architecture
The SLA Resource Allocator acts as the interface between the Data Center/Cloud service provider and external users/brokers. It requires the interaction of the defined scheduled mechanisms to support SLA-oriented resource management.
Google App Engine  allows a user to run Web applications written using the Python programming language. Other than supporting the Python standard library, Google App Engine also supports Application Programming Interfaces (APIs) for the data store, Google Accounts, URL fetch, image manipulation, and email services. Google App Engine also provides a Web-based Administration Console for the user to easily manage his running Web applications. Currently, Google App Engine is free to use with up to 500MB of storage and about 5 million page views per month.
Microsoft Live Mesh  aims to provide a centralized location for a user to store applications and data that can be accessed across required devices (such as computers and mobile phones) from anywhere in the world. The user is able to access the uploaded applications and data through a Web based Live Desktop or his own devices with Live Mesh software installed. Each user’s Live Mesh is password protected and authenticated via his Windows Live Login, while all file transfers are protected using Secure Socket Layers (SSL).
Both the applications of Google and Microsoft cloud initiative can be divided into divided into three phases . There are phases involved in resource recovery, scheduling, and executing.
In the second phase the best match between the set of jobs and available resources is determined. The second phase is a NP-hard Problem . The computational grid is a dynamic structure and exhibits unpredictable behaviour such as:
• Computational performance of each resource varies from time to time.
• The connection between computers and mobile phones may be unreliable.
• The resources may join or relinquish the grid at any time
• The resource may be unavailable without a notification.
The scheduling of cloud architecture is dynamic in nature and moreover Grid middleware and applications are using local scheduling and data co-scheduling. The approach of replication has been also applied and assisted in scheduling and optimization of replication.
There are different existing algorithms like the Genetic algorithm (GA) is used for searching large solution space. On other hand, simulated Annealing (SA) is an iterative technique that considers only one possible solution for each meta-task at a time. Ant Colony Algorithm (ACO) is the latest entrant to this field.
ACO algorithm can be interpreted as parallel replicated Monte Carlo (MC) systems . MC systems are general stochastic simulation systems, that is, techniques performing repeated sampling experiments on the model of the system under consideration by making use of a stochastic component in the state sampling and/or transition rules.
Figure 3: Cloud Services Under ACO
Experimental results are used to update some statistical knowledge about the problem. In turn, this knowledge can be also iteratively used to reduce the variance in the estimation of the described variables and directing the simulation process toward the most interesting state space regions.
Analogously, in ACO algorithms the ants sample the problem’s solution space by repeatedly applying a stochastic decision policy until a feasible solution of the considered problem is found. The sampling is realized concurrently by a collection of differently instantiated replicas of the same ant type.
Each ant “experiment” allows to adaptively modifying the local statistical knowledge on the problem structure. The algorithm is recursive in nature.
 Chu, K. Nadiminti, C. Jin, S. Venugopal, and R. Buyya. Aneka: “Next-Generation Enterprise Grid Platform for e-Science and e-Business Applications”, in Proceedings of the 3th IEEE International Conference on e-Science and Grid Computing (e-Science 2007), Bangalore, India, Dec. 2007.
 A. Weiss, “Computing in the Clouds”, netWorker, Volume 11, No.4,pp.16-25, December, 2007. Google App Engine, http://appengine.google.com [accessed in October 2010]
 Microsoft Live Mesh, http://www.mesh.com [accessed in October 2010]
 Stefka Fidanova and Mariya Durchova,” Ant Algorithm for Grid Scheduling Problem”, Large Scale Computing, Lecture Notes in Computer Science No. 3743, Springer, , pp 405-412, 2006.
 Yaohang Li, “A bio-inspired adaptive Job Scheduling Mechnism on a Computational Grid”, International Journal of Computer Science and Network Security, Vol.6.No.3.B, March 2006.
 Dorigo, M., Maniezzo, V., Colorni, A.: The ant system: “Optimization by a colony of cooperating agents”, IEEE Transactions on Systems”, Man, and Cybernetics, part B, 26(1) pp. 1–13, 1996.
 S. Venugopal, X. Chu, and R. Buyya, “A Negotiation Mechanism for Advance Resource Reservation using the Alternate Offers Protocol.” In Proceedings of the 16th International Workshop on Quality of Service (IWQoS 2008), Twente, The Netherlands, June 2008.
 Soumya Banerjee, Indrajit Mukherjee, and P.K. Mahanti. “Cloud Computing Initiative using Modified Ant Colony Framework” World Academy of Science, Engineering and Technology 56 2009