Rationalizing the Cloud Computing Concept : An Analogy with the Car

Vaquero et al. (Vaquero, 2008) list more than twenty existing Cloud Computing definitions in their paper, and conclude by proposing an additional one. At this rate, we will have a confusing number of definitions before long! This is typical of the inflated expectations of a recent technology, as the cycle of hype surrounding it reaches a peak. At this stage, it is important to step back and try to see Cloud Computing for what it really is. This is exactly what the ISO Joint technical committee 1 sub-committee 38 (ISO/JTC1/SC38) should accomplish in the next few years. After working with the committee for a year, we fear that not a lot of discussion will take place on this topic. Working Group 3 was created with the objective of normalizing Cloud Computing terminology. Looking at the term Cloud Computing in the many recent publications, Abstract


Introduction
Vaquero et al. (Vaquero, 2008) list more than twenty existing Cloud Computing definitions in their paper, and conclude by proposing an additional one.At this rate, ______________________________________________________________________________________________________________ ______________ Rafik Ouanouki, Abraham Gomez Morales and Alain April (2014), Journal of Cloud Computing, DOI: 10.5171/2014.901075 a key question was initially raised by Canada: why should we take the NIST definition as the international definition?The basic concepts expressed by the two words "Cloud" "Computing" are quite simple.The word computing refers to any activity that involves computer processing or storage as defined by Shackelford et al. (Shackelford, 2006).A computer manipulates and stores data, which may reside on the hard drive of the computer, or in other hardwares such as NAS (network-attached storage), on commodity hardware (affordable and readily available hardware), on a mainframe, or many other devices nowadays.A hard drive can store anything, including structured data, unstructured data, software, databases and all other types of software.In Cloud Computing terminology, these capabilities are presented as services, and these services are offered in the cloud, sometimes anywhere on earth.In other words, its location does not matter.In some publications, a cloud also refers to networked computers, among which processing power is distributed.
Where the confusion begins, and so many different Cloud Computing definitions are generated, is when those definitions try to include: 1) different perspectives (i.e.Infrastructure/data center versus Software Engineering); 2) too many technical details; or 3) a specific technology point of view.
For example, some definition includes concepts like billing features, type of access, security issues, ownership of data, and even quality features associated with the technology and the services offered.

Table 1: NIST Cloud computing definition
Since these concepts vary depending on the technology, and can evolve, the definition of Cloud Computing can become broader and fuzzier over time.
The National Institute of Standards and Technology (NIST) has proposed one of the leading proposals for an internationally accepted definition of Cloud Computing: "Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g.networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."This cloud model promotes availability, and is composed of five essential characteristics, three service models, and four deployment models.This proposal implies that the terminology of those essential characteristics, service models, and deployment models must also be precisely defined.Table 1 shows how these three concepts are defined in the NIST proposal.We can see that for each of the essential characteristics, service, and deployment models, the definition lists a number of items.These items were initially chosen as the result of a consensus between vendors, consultants and industry representatives in This first serious proposal raises a key issue.Cloud Computing is complex, especially considering the nature of its components.Defining it comprehensively requires that every essential characteristic, service model, and deployment model be well defined and that these elements do not change over time.Since change is likely to happen in this field, a simplified version should be debated in this committee that can be expected to withstand the test of time.
Michael Daconta (Daconta, 2012) even stated that 'The framework was too complex and failed to provide the simple, unified concept of cloud computing that this audience desperately needed'.For Joe McKendrick (McKendrick, 2012), the definition will not withstand the test of time and 'will simply become a ubiquitous method by which applications and services are assembled and accessed'.Cline (Cline, 2012) debates that the definition can only be a broad generalization, and that at this time it does the job To better understand what characteristics should be part of the internationally accepted definition of Cloud Computing, or left out of it, we propose looking at a well known and well defined concept, and see how its definition deals with characteristics that aren't explicitly mentioned, but are implied.This may help us improve the proposed NIST definition.

Background
The ISO/JTC1/SC38 committee is focused on Distributed Application Platforms and services (DAPS) and has formed a working group (WG) for each of the following topics: The working group 3 is responsible for identifying, developing, and maintaining JTC1 deliverables in the field of Cloud Computing and is involving with many standards' developing organizations such as the National Institute of Standards and Technology (NIST).The objective is to develop an internationally accepted definition of the term Cloud Computing.
Initially the work group is using the Cloud Computing definition proposed by NIST.Gradually the work group members were facing a major challenge, owing to the existence of multiple definitions each having its specific focus.This led to debates outside the formal committee and there is still a lack of consensus concerning the essential/optional characteristics that should be reflected in an internationally accepted definition.The main objective of this paper is to present a synthesis of the different points of view.To achieve this goal, we will debate on two major conflicting perspectives: 1) an IT infrastructure point of view, and 2) a Software Engineer point of view.To cut short the presentation of these opposing views, we question the Cloud Computing characteristics proposed in the current NIST definition.This debate represents a step on the journey towards a clearer definition of the Cloud Computing term, and is part of a Canadian contribution to ISO/JTC1/SC38, Working Group 3 on Cloud Computing.

The Car Analogy
The automobile, which is referred to as a car today, is defined, by F.G. Fowler (1976), as 'a wheeled motor vehicle used for transporting passengers, which also carries its own engine or motor.'Most existing definitions agree on the following car characteristic: 'The car is designed to run primarily on roads, to have seating for one to 8 people, and to be constructed principally for the transport of people rather than goods.'Analyzing the above definition in connection with the challenge of defining Cloud Computing, we note that the car as described by the Fowlers did not include any options, such as air conditioner, warranty, equipment's features, financing modes, etc.The definition is restricted to the car's essential characteristics, such as ______________________________________________________________________________________________________________ ______________ Rafik Ouanouki, Abraham Gomez Morales and Alain April (2014), Journal of Cloud Computing, DOI: 10.5171/2014.901075 wheels, motor, and seats for transporting people, as shown in Figure 1.Could this analogy be extended to simplify the definition of Cloud Computing?

Figure 1: Illustration of the essential characteristics of a car based on its definition
As with the car, by identifying the essential and optional characteristics of Cloud Computing, we could, for example, study why organizations have recently converted existing applications to Cloud Computing technology, and, in particular, why they did not use another competing or existing technology instead.This would help us identify optional characteristics that could be left as optional characteristics in the proposed NIST definition.

Common Factors Observed when Migrating to Cloud Computing
We have examined many software engineering case studies that have been published involving the migration, by organizations, of their applications to Cloud Computing technology, with the aim of continuing to serve their growing customer base well.
In this study, we are looking for the factors that are common to all these organizations in the migration process based on their answers to the following questions: What problems had they been experiencing with their current technology?What limitations forced them to migrate?In both cases of a migration or creating a new product, what essential characteristics were they looking for in a Cloud Computing technology?Vendors like Google, Amazon, and others claim that their Cloud Computing technology provides them with many advantages, like scalability, maintainability, performance, and reliability.Cloud Computing technologies have been designed for growth, low latency, and robustness against failures as described by Dean (2009).
Cost is also an important issue.For example, a great deal of attention has been paid to the low cost of running the Google server hardware, with its built-in batteries, which eliminate the need for a huge, centralized uninterrupted power supply (UPS), and their customized 12-volt power supplies that deliver energy efficiency.Let's discuss first, the requirements for migrating to Cloud Computing technology.In the case of YouTube, the challenge mostly had to do with scalability and performance, since keeping up with website growth was a day-to-day issue for them before the company was bought by Google, and their technology was migrated to Google proprietary technology (Bigtable).
Bigtable is a non relational, high performance database that is fault tolerant over large sets of data, which solves the famous YouTube thumbnails issue as described by Cordes (Cordes, 2007).Cook (Cook, 2009) describes how Twitter managed to make their service 10,000 times faster than it was before and later.Higginbotham ( Stonebreaker adds that this is fairly common practice, especially among startups that start small and grow to epic proportions, and use Web-based applications where users can upload whatever they want.Most of the case studies found involve organizations that offer or use services that had to move to Cloud Computing because of scalability, performance, or maintainability issues. When forced to migrate out of an existing technology, organizations look carefully at all the possible alternatives.Target technologies are typically assessed for each of the key non-functional requirements: scalability, maintainability, performance, and reliability.As Stonebreaker (2011) points out, relational database technology is struggling to scale to handle petabytesized tables where No-SQL technology is an increasingly attractive solution.
These software engineering case studies reveal that Cloud Computing is not only concerned with hosting software elsewhere, but also with networking computers to distribute processing power in newer ways.

Table 2: Essential characteristics of Cloud Computing derived from case studies
The case studies found in the literature highlight the problems faced with the use of current technology.Table 2 presents the essential characteristic that was the key in the decision to migrate to Cloud Computing technology for each non-functional requirement that presented a serious problem.

Essential vs. Optional Cloud Computing Characteristics
We saw in section 2 that the definition of a car includes only its essential characteristics, and none of the optional ones.In a car, an option can be purchased and added to the base product, and so is not considered part of its definition.Options are typically similar for a type of vehicle, a vendor, or in the car industry as a ______________________________________________________________________________________________________________ ______________ Rafik Ouanouki, Abraham Gomez Morales and Alain April (2014), Journal of Cloud Computing, DOI: 10.5171/2014.901075 whole.Could it be possible to use the same approach with Cloud Computing to improve its definition?Table 3 displays our attempt to draw a parallel between the definition of a car and that of Cloud Computing, including the smallest possible set of essential characteristics.

Table 3: Our Car vs. Cloud computing analogy for a reduced set of essential characteristics
The same analogy could be applied for optional characteristics, as presented in Table 4.In some cases, optional characteristics maybe required by the client and their selection depends on what the organization is looking for, as it migrates its applications to Cloud Computing.In this paper, optional characteristics are distinguished from required characteristics only from the perspective of whether or not they are included in the main definition of Cloud Computing.Table 4 also identifies the concepts included in the NIST definition that could be left as optional characteristics from the main definition.In future work, we will try to close the gap between the ISO/JTC1/SC7 software/system engineering perspective and the computer engineering perspective promoted by ISO/SC38 currently.After all, there can only be one internationally recognized definition of Cloud Computing.It may have been too ambitious to try to normalize something that is so young.Normally, standards organizations wait for signs of maturity before attempting international consensus.We think they are currently going ahead too fast with this one!

Conclusion
Efforts are underway, in ISO/JTC1Subcommittee 38, to arrive at an internationally accepted definition of Cloud Computing and its terminology.The committee has taken for granted the 16th NIST definition proposed in 2012.This paper, developed by Canadian members of SC38, attempts to take an arm's length view of the NIST definition of Cloud Computing, using a car analogy, to assess its essential and optional characteristics.As a result of this research we have kept three key elements, and recommend a debate on the exclusion of the others, based on whether or not they will stand the test of time.
2009.The above definition was initially intended to serve as a means for broad comparisons of cloud services and deployment strategies, and to provide a baseline for discussion -from what Cloud Computing is, to how best to use it.In fact, the first version was leaked at a Federal CIO Cloud Computing summit in Washington in April 2009.By 2012 it is reported that a 16 th and final version was released.______________________________________________________________________________________________________________ ______________ Rafik Ouanouki, Abraham Gomez Morales and Alain April (2014), Journal of Cloud Computing, DOI: 10.5171/2014.901075

Table 3 and
Table 4 describe an attempt to separate out what could be the essential