What is cloud computing? Wikipedia provides the following explanation:
"Cloud computing describes a new supplement, consumption and delivery model for IT services based on the Internet, and it typically involves the provision of dynamically scalable and often virtualized resources as a service over the Internet. The term ‘cloud’ is used as a metaphor for the Internet, based on the cloud drawing used to depict the Internet in computer network diagrams as an abstraction of the underlying infrastructure it represents."
Now let’s look at how academic scholars define it. UC Berkeley scientists offer the following definition: “Cloud Computing refers to both the applications delivered as services over the Internet ,and the hardware and systems software in the datacenters that provide those services. The services themselves have long been referred to as Software as a Service (SaaS), so we use that term. The datacenter hardware and software is what we will call a Cloud.”
With these two definitions, we have a rough idea of cloud computing. In fact, what cloud computing is depends on what people’s concerns are. people can be divided into the following three groups, and people in different groups may have different views and understandings of cloud computing:
- Users of cloud computing services
- Planners, designers, and developers of cloud computing systems
- Providers of cloud computing services
This lecture series will, in four parts, describe cloud computing from the viewpoints of people in these three groups. This article will focus on the user’s view of cloud computing.
From the user point of view, cloud computing can be vividly illustrated by the diagram in Figure 1.
As shown, the cloud is very simple. Everything is contained within the cloud, which can provide cloud computing, cloud storage and all kinds of application services. A user of cloud computing may not be concerned about what is in the cloud, the type of Central Processing Unit (CPU) in the cloud, the hard disk capacity, where the servers are located, how computers are connected, or who developed the application software. A user may typically be concerned about secure and reliable services, accessing unlimited storage and computing capability at any time at any places. They might wish to pay only according to actual usage.
Typical applications of cloud computing include various Internet services. The successful application of cloud computing can be seen in Google’s search engine, GoogleDocs and
Web-based Gmail, MicroSoft’s MSN, Hotmail and Bing Search, and Amazon’s Elastic Compute Cloud (EC2) and Simple Storage Service (S3).
2 Why has Cloud Computing Emerged?
The first electronic computer Electronic Numerical Integrator and Computer (ENIAC) came into existence in 1946, designed to calculate the paths of artillery shells. The computer was very expensive, heavy, and slow, so ordinary people at that time did not know how to use it and could not afford to use it either. It is said that the president of IBM in the 1950s predicted that 5 computers were sufficient for the whole world. However, with the technological development, especially with the advent of the PC, computers gradually entered into every walk of life, and even into ordinary families. Computer scientists then tried to connect the computers in different places together, in order to fulfill resource sharing through communication among computers. This gave birth to the Advanced Research Projects Agency Network (APRANET), the predecessor of the Internet.
The concept of cloud computing can be traced back to 1961, when John McCarthy, the founder of computer science, suggested that computer time-sharing technology might make it possible for computing power and even specific applications to be sold through a public utility business model, like water or electricity, in the future. This idea can currently be regarded as cloud computing.
Computer scientists often try to solve complicatd computing tasks by using networked computers. A distributed system is used to solve computational issues: the computational issue is first divided into many sub-tasks which are assigned and solved by different computers in the system. This is called distributed computing.
Distributed computing is actually a general term, and related techniques include:
(1) Parallel Computing
Different sub-tasks are run in different computers simultaneously, in order to solve complex problems.
(2) Client/Server Computing
The implementation of centralized applications and storage.
(3) Cluster Computing
A group of computers are connected in a tightly-coupled fashion to form a high performance computer system.
(4) Grid Computing
Computers over the Internet are connected in a loosely-coupled fashion to form a high performance computer system.
(5) Peer-to-Peer Computing
The implementation of resource sharing in the Internet.
(6) Cloud Computing
This implies Internet-based cooperative computing.
These distributed computing techniques are the result of technical evolution brought about by the higher requirements of computer capability and performance pushed forward by all kinds of scientific and engineering issues and enterprise applications. Simply, cloud computing is a new type of distributed computing technology. The ultimate goal is that the network functions as a computer; that is, we can use the real super computing capability of the Internet as easily as using a PC.
3 Cloud Computing and Grid Computing
Similar to cloud computing, grid computing was the hottest IT term a few years ago. If readers have a certain understanding of grid computing and cloud computing, they will know that the visions of both computing technologies involve using grid/cloud computing in the same way we use electricity or water. Today, some people think grid computing is out of date and cloud computing is a “revolutionary computing paradigm”, while others regard it as new wine in an old bottle. Another line of thinking is that the lower layer is grid computing based infrastructure and the upper layer is cloud computing based service platform. So, is there any relationship or difference between cloud computing and grid computing?
Grid computing is actually an ideal concept. Basically, it relies on private networks or the Internet, and organizes voluntary computers in different regions to form a virtual super computer, using their idle computing resources to generate super computing capability through unified scheduling.
Grid computing has been successfully applied in some scientific computing cases, such as the data grid of European Organization for Nuclear Research (CERN) where Tim Berners-Lee created the well-known WWW. This was originally designed as a bridge between relevant scientific research materials to enable researchers to obtain the information they need. Enabling Grids for E-sciencE (EGEE), CERN’s grid application, were designed for processing massive amounts of data generated by Large Hadron Collider (LHC), the world most powerful particle accelerator. The data flow from LHC detectors is about 300 GBit/s, the effective filtered raw data is about 300 MBit/s, and annual LHC data is about 10-15 PBit, enough to burn approximately 1.7 million dual-layer DVD discs. This is a massive amount of data, and when compared, the so-called massive data processing in our daily-life calculations becomes a drop in the ocean. Because of the huge amount of data, data collection, storage and distribution generated by LHC must be conducted by employing grid computing.
Cloud computing technology builds upon previous related techniques. In a cloud computing system, users can access powerful information resources from certain nodes in the Internet, including storage, computing, software, data and management. Users are not necessarily concerned about where service providers are located.
It is difficult to delineate the essential difference between cloud computing and grid computing. They have the same goal of providing secure, rapid and easy data storage, and network computing services based on the Internet. However Grid computing focuses more on resource sharing and transferring workload to remote usable computing resources. Everybody in the network can use the resources of other nodes and everybody must contribute some resources to other nodes also. Cloud computing emphasizes exclusiveness; any user can obtain private resources offered by a few groups, but are not required to contribute their resources. Grid computing fulfills specific tasks, while cloud computing implements diversified services.
Moreover, cloud computing is concerned more about its business model; that is, charging according to usage. This is presented as a demand-driven, user-oriented, service on demand, pay-as-you-go, and part-as-finish. When thinking about proprietary cloud computing technologies, we can say that Google File System (GFS), MapReduce and BigTable developed by Google for supporting its Internet search service are cloud technologies.
4 Characteristics of Cloud Computing
What benefits can cloud computing bring to us?
Nowadays, science and technology development is demand-driven, rather than technology-driven. Any new technology must have fascinating features in order to attract people to it. Although experts have found several characteristics of cloud computing, users are mainly concern with the following features:
(1) Reduction of Capital Investment.
With innovation in enterprise services, computing tasks supporting those services become more complex. Traditionally, enterprises buy the most advanced computing facilities to support their services. However, the use of these expensive devices is usually low, wasting much investment. If cloud computing were used, enterprises would not need substantial primary investment in equipment. Computing tasks could be submitted to a cloud computing platform with powerful computing capability, or the cloud service could be called on the platform when needed, which may save enterprise investment.
(2) Cloud Computing Business Model.
A cloud platform can simultaneously provide numerous users with many computing services, and each user pays only for the computing conducted by the platform for his own computing task. This is called pay-per-use, and is the same model as electricity. Such a business model reduces the threshold for enterprises to use cloud, while greatly decreasing their computing cost.
(3) Powerful Computing and Storage Capabilities.
The cloud, combining hundreds of millions of computers in the Internet, can provide superior computing capability and unlimited storage space. Moreover, a number of cloud computing service providers have developed various Internet applications, which can provide users with more professional computing services.
(4) Security and Reliability.
Many readers of this article would have experienced data loss at some stage. When a person’s laptop is lost or stolen, the data stored is ofter considered a greater loss than the computer itself. The data has a higher value.
However, data stored on the cloud platform would be safer and more reliable, because it is stored by the most advanced data center, managed by professional teams, and subject to strict access management strategies to help users safely share data with designated persons. Why should we let others manage the most sensitive data? Is it more secure to store data in our own computers or in the cloud? These questions are difficult to answer. However, the scenario may be likened to saving money in a bank with strict security system as opposed to putting it under your pillow.
The greatest benefit cloud computing can bring to users is that it offers flexible, personalized, diversified and simple-to-use applications and services. With cloud computing, the majority of users do not need to constantly purchase or upgrade hardware and software. With cloud computing, small and medium enterprises no longer need to invest heavily in buying and installing computer hardware and software, constructing computer rooms and employing maintenance staff. They can avoid resource wastage caused by excessive deployment owing to overestimation of service popularity, or loss of potential customers because of insufficient service provision.
(To be continued)