INTRODUCTION

            Cloud computing is the next natural step in the evolution of on-demand information technology services and products. To a large extent cloud computing will be based on virtualized resources. The idea of cloud computing is based on a very fundamental principal of `reusability of IT capabilities`. The difference that cloud computing brings compared to traditional concepts of grid computing, distributed computing, utility computing, or autonomic computing is to broaden horizons across organizational boundaries.
                 According to the IEEE Computer Society Cloud Computing is:


                "A paradigm in which information is permanently stored in servers on the
                 Internet and cached temporarily on clients that include desktops,
              Entertainment centers, table computers, notebooks, wall computers, handhelds, etc."

Though many cloud computing architectures and deployments are powered by grids, based on autonomic characteristics and consumed on the basis of utilities billing, the concept of a cloud is fairly distinct and complementary to the concepts of grid, SaaS, Utility Computing etc. In theory, cloud computing promises availability of all required hardware, software, platform, applications, infrastructure and storage with an ownership of just an internet connection.
            People can access the information that they need from any device with an Internet connection—including mobile and handheld phones—rather than being chained to the desktop. It also means lower costs, since there is no need to install software or hardware.
Cloud computing used to posting and sharing photos on orkut, instant messaging with friends maintaining and upgrading business technology



2. Characteristics of Cloud Computing:
1. Self Healing
 Any application or any service running in a cloud computing environment has the property of self healing. In case of failure of the application, there is always a hot backup of the application ready to take over without disruption. There are multiple copies of the same application - each copy updating itself regularly so that at times of failure there is at least one copy of the application which can take over without even the slightest change in its running state.
2. Multi-tenancy
            With cloud computing, any application supports multi-tenancy - that is multiple tenants at the same instant of time. The system allows several customers to share the infrastructure allotted to them without any of them being aware of the sharing. This is done by virtualizing the servers on the available machine pool and then allotting the servers to multiple users. This is done in such a way that the privacy of the users or the security of their data is not compromised.
3. Linearly Scalable
            Cloud computing services are linearly scalable. The system is able to break down the  workloads into pieces and service it across the infrastructure. An exact idea of linear scalability can be obtained from the fact that if one server is able to process say 1000 transactions per second, then two servers can process 2000 transactions per second.
4. Service-oriented
            Computing systems are all service oriented - i.e. the systems are such that they are created out of other discrete services. Many such discrete services which are independent of each other are combined together to form this service. This allows re-use of the different services that are available and that are being created. Using the services that were just created, other such services can be created.

5. SLA Driven
            Usually businesses have agreements on the amount of services. Scalability and availability issues cause clients to break these agreements. But cloud computing services are SLA driven such that when the system experiences peaks of load, it will automatically adjust itself so as to comply with the service-level agreements. The services will create additional instances of the applications on more servers so that the load can be easily managed.
6. Virtualized
   The applications in cloud computing are fully decoupled from the underlying hardware. The cloud computing environment is a fully virtualized environment.
7. Flexible
   Another feature of the cloud computing services is that they are flexible. They can be used to serve a large variety of workload types varying from small loads of a small consumer application to very heavy loads of a commercial application.
3. Need for Cloud Computing
            What could we do with 1000 times more data and CPU power? One simple question. That’s all it took the interviewers to bewilder the confident job applicants at Google. This is a question of relevance because the amount of data that an application handles is increasing day by day and so is the CPU power that one can harness. There are many answers to this question. With this much CPU power, we could scale our businesses to 1000 times more users. Right now we are gathering statistics about every user using an application. With such CPU power at hand, we could monitor every single user click and every user interaction such that we can gather all the statistics about the user. We could improve the recommendation systems of users. We could model better price plan choices. With this CPU power we couldsimulate the case where we have say 1,00,000 users in the system without any glitches.
            There are lots of other things we could do with so much CPU power and data capabilities. But what is keeping us back. One of the reasons is the large scale architecture which comes with these are difficult to manage. There may be many different problems with the architecture we have to support. The machines may start failing, the hard drives may crash, the network may go down and many other such hardware problems. The hardware has to be designed such that the architecture is reliable and scalable. This large scale architecture has a very expensive upfront and has high maintenance costs. It requires different resources like machines, power, cooling, etc. The system also cannot scale as and when needed and so is not easily reconfigurable.
The resources are also constrained by the resources. As the applications become large, they become I/O bound. The hard drive access speed becomes a limiting factor. Though the raw CPU power available may not be a factor, the amount of RAM available clearly becomes a factor. This is also limited in this context. If at all the hardware problems are managed very well, there arises the software problems. There may be bugs in the software using this much of data.
The workload also demands two important tasks for two completely different people. The software has to be such that it is bug free and has good data processing algorithms to manage all the data.
The cloud computing works on the cloud - so there are large groups of often low-cost servers with specialized connections to spread the data-processing chores among them. Since there are a lot of low-cost servers connected together, there are large pools of resources available. So these offer almost unlimited computing resources. This makes the availability of resources a lesser issue.
            The data of the application can also be stored in the cloud. Storage of data in the cloud has many distinct advantages over other storages. One thing is that data is spread evenly through the cloud in such a way that there are multiple copies of the data and there are ways by which failure can be detected and the data can be rebalanced on the fly. The I/O operations become simpler in the cloud such that browsing and searching for something in 25GB or more of data becomes simpler in the cloud, which is nearly impossible to do on a desktop.
The cloud computing applications also provide automatic reconfiguration of the resources based on the service level agreements. When we are using applications out of the cloud, to scale the application with respect to the load is a mundane task because the resources have to be gathered and then provided to the users. If the load on the application is such that it is present only for a small amount of time as compared to the time its working out of the load, but occurs frequently, then scaling of the resources becomes tedious. But when the application is in the cloud, the load can be managed by spreading it to other available nodes by making a copy of the application on to them. This can be reverted once the load goes down. It can be done as and when needed. All these are done automatically such that the resources maintain and manage themselves.
4. Cloud Computing Application Architecture

          Fig : Cloud Architecture

 











5. Cloud –Types
Public Cloud:
   Public cloud or external cloud describes cloud computing in the traditional mainstream. Public clouds are run by third parties, and applications from different customers are likely to be mixed together on the cloud’s servers, storage systems, and networks. A public cloud provides services to multiple customers.
Hybrid cloud:
 Hybrid clouds combine both public and private cloud models. This is most often seen with the use of storage clouds to support Web 2.0 applications.
Private cloud:
Private clouds are built for the exclusive use of one client, providing the utmost  control over data, security, and quality of service (Figure 4). The company owns the  infrastructure and has control over how applications are deployed on it. Private clouds can be built and managed by a company’s own IT organization or by a cloud provider

6. Cloud computing products and services can be classified into 4 major categories:

                  They are 1. Application as service ( AaaS) 2. Platform as a Service (PaaS) 3. Infrastructure as a service (IaaS) 4. Software as a Service (SaaS)
1. Application as s service (AaaS): These are the first kind of cloud computing services that came into being. Under this, a service is made available to an end-user. The end-user is asked to create an account with the service provider and start using the application. One of first famous application was web-based email service by hotmail started in 1996. Scores of such services are available now on the web.
2. Platform as a Service (PaaS): Cloud vendors are companies that offer cloud computing services and products. One of the services that they provide is called PaaS. Under this a computing platform such as operating system is provided to a customer or end user on a monthly rental basis. Some of the major cloud computing vendor are Amazon, Microsoft, Google etc
3. Infrastructure as a service: The cloud computing vendors offer infrastructure as a service. One may avail hardware services such as processors, memory, networks etc on agreed basis for specific duration and price.
 4. Software as a service (SaaS): Software package such as CRM or CAD/CAM can be accessed under cloud computing scheme. Here a customer upon registration is allowed to use software accessible through net and use it for his or his business process. The related data and work may be stored on local machines or with the service providers or on per use basis. SaaS services may be available on rental basis

7.Working Of Cloud Computing:
Cloud Computing system can be divided it into two sections: the front end and the back end. They connect to each other through a network, usually the Internet. Thefront end is the side the computer user, or client, sees. The back end is the "cloud" section of the system. On the back end there are various computers, servers and data storage systems that create the "cloud" of computing services. A central server administers the system, monitoring traffic and client demands to ensure everything runs smoothly. It follows a set of rules called protocols .Servers and remote computers do most of the work and store the data.




8. Merits & Demerits:
Merits:
Cloud enabler technologies like utility computing, Grid Computing, RTI, web infrastructure and others are cloud enabled.
1. Infrastructure service providers are taking advantage of the Cloud services.
2. Information services, entertainment-oriented services such as video on demand, simple business services such as customer authentication or identity management and contextual services such as location or mapping services are positioned well by using the service.
3. Other services, such as corporate processes (for example, billing, deduction management and mortgage calculation) and transactional services (for example, fiscal transactions), would take longer to reach the cloud and the mainstream.
4. Cloud computing infrastructures allows efficient use of their IT hardware and software investments
5. A cloud infrastructure can be a cost efficient model for delivering information services, reducing IT management complexity.
6. The Cloud makes it possible to launch Web 2.0 applications quickly and to scale up applications as much as needed when needed.
Demerits:
   Stored data might not be secure: With cloud computing, all our data is stored on the cloud. The unauthorized users gain access to our confidential data.
 Dependent on internet connection: Internet connectivity isn’t completely stable and reliable.
It’s not platform agnostic: Most clouds force participants to rely on a single platform or host only one type of product.
Can be slow: Even on a fast connection, web based application scan sometimes be slower than accessing a similar software program on our desktop PC.
9.Conclusion
   Cloud computing builds on decades of research in virtualization, distributed computing, utility computing, and more recently networking, web and software services. It implies a service oriented architecture, reduced information technology overhead for the end-user, great flexibility, reduced total cost of ownership, on demand services and many other things.
In today's global competitive market, companies must innovate and get the most from its resources to succeed. Cloud computing infrastructures are next generation platforms that can provide tremendous value to companies of any size. They can help companies achieve more efficient use of their IT hardware and software investments and provide a means to accelerate the adoption of innovations. Cloud computing increases profitability by improving resource utilization. Costs are driven down by delivering appropriate resources only for the time those resources are needed. Cloud computing has enabled teams and organizations to streamline lengthy procurement processes.
  Cloud computing enables innovation by alleviating the need of innovators to find resources to develop, test, and make their innovations available to the user community. Innovators are free to focus on the innovation rather than the logistics of finding and managing resources that enable  the innovation.

10. References
2.www.thbs.com
3.http://www.wikipedia.org/
4.http://www.infoworld.com/article/08/04/07/15FE-cloud-computing-reality_1.html,
5. http://www.spinnakerlabs.com/CloudComputing.pdf

6. http://www.johnmwillis.com/