Cloud computing offers the promise of virtually unlimited processing and storage power, courtesy of vast data centers run by companies like Amazon and Google. But programmers don't know how best to exploit this power. Today, many developers are converting existing programs to run on clouds, rather than creating new types of applications that could work nowhere else. And they are held back by difficulties in keeping track of data and getting reliable information about what's going on across a cloud. If programmers could solve those problems, they could start to really take advantage of what's possible with a cloud. For example, an online music retailer could monitor popular social-media feeds; (Buyya Yeo Venugopal 2009 pp. 9)if a singer suddenly became a hot topic, advertising and special offers across the retailer's site could be instantly reconfigured to make the most of the spike in interest.
The technology
The concept of cloud computing isn't new. Around fifteen years ago, companies began offering fully managed and hosted services on servers outside their clients' four walls. But in the early years people questioned whether they should even consider this route. Privacy and security were among the top concerns. Then came improvements in broadband speed. Security encryption was enhanced, and Internet applications such as Yahoo mail and Gmail increased familiarity with the concept. (James 2010)
A few years ago, the term “software as a service” (SaaS), often used in conjunction with cloud computing, was coined to refer to using applications owned by a different company through a web browser. SaaS can be defined through five key ideas.
Services are fully managed and hosted;
have regular recurring payments;
allow for anytime, anywhere access;
have multiple tenants on servers;
and don't require installation of specialized software.
At the University of California, Berkeley, Joseph Hellerstein thinks he can make it much easier to write complex cloud applications by developing software that takes over the job of tracking data and keeping tabs on what's happening. His big idea is to modify database programming languages so that they can be used to quickly build any sort of application in the cloud--social networks, communication tools, games, and more. Such languages have been refined over the years to hide the complexities of shuffling information in and out of large databases. If one could be made cloud-friendly, programmers could just think about the results they want, rather than micromanaging data. (Buyya Yeo Venugopal 2009 pp. 9)