CC builds on the foundation of a number of earlier technologies and techniques, such as Grid Computing, Web 2.0, Virtualisation and Service Oriented Architecture (SOA) (Abah and Francisca, 2012, O'Driscoll et al., 2013, Srinivasan and Getov, 2011, Mikkilineni and Sarathy, 2009). The popularity of these enabling technologies as stand- alone tools has decreased since the advent of CC (see Figure 2.1) (Google Trends, 2014b), though their use continues as partner technologies for CC.
Figure 2.1: CC and its Enabling Technologies (Google Trends, 2014b)
Discussing these technologies and techniques (without going into technical detail) will be helpful to understand the issues surrounding the CC environment, as many of these enabling technologies and techniques are required to adopt CC successfully. This is particularly important if some parts of the cloud need to be implemented inside the organisation of a CC customer, as in on-site Private Cloud (Section 2.3.2.2).
18
2.2.2.1.
Grid Computing
The term Grid was coined in the mid-1990s, to explain the technologies that allow users to acquire computing power on request (Abah and Francisca, 2012, Foster et al., 2008, Rajan and Jairath, 2011). Foster et al wrote the most cited definition of Grid Computing: “A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities” (Abah and Francisca, 2012, Keshavarzi et al., 2013). Grid
Computing combines distributed and heterogeneous computing resources into a single powerful ‘virtual computer’ to obtain significant processing power (Keshavarzi et al., 2013). Therefore, Grid Computing, together with a number of other technologies, provides a foundation for CC (Rimal and Choi, 2012, Foster et al., 2008, Abah and Francisca, 2012, Sultan, 2014). Constantly monitoring IT infrastructure and detecting non-responsive components so as to balance the workload among all responsive components is one of the Grid Computing features used in CC (Rimal and Choi, 2012).
2.2.2.2.
Web 2.0
The fundamental concept of Web 2.0 is to provide a basis for interactivity and interconnectivity of Web applications (Padhy and Patra, 2012). O’Reilly and Musser, who are credited with promoting the term Web 2.0 most widely, defined it as “a set of
economic, social, and technology trends that collectively form the basis for the next generation of the Internet – a more mature, distinctive medium characterised by user participation, openness, and network effect” (Davidson and Keup, 2014). Web 2.0 is, thus, an emerging technology which incorporates a wide variety of technological features, including: CSS (Cascading Style Sheet), Semantic Web, Folksonomies, HTML (Hypertext Markup Language), XML (Extensible Markup Language), XHTML (Extensible Hypertext Markup Language), RSS (Rich Site Summary) and other features to enable information sharing, creativity, Web functionality and collaboration (Wang et al., 2008, Padhy and Patra, 2012, Wang et al., 2010, Ouf et al., 2010).
The authorisation control and management features of Web 2.0 are regarded as critical for CC (Rimal et al., 2011), as Web 2.0 can play an important role in how users interact
19
with CC (Foster et al., 2008) by facilitating subscription, access, compilation; and reuse of micro content, propagation and interactive information sharing (Ouf et al., 2010). Thus, Web 2.0 enables CC users to access the web more easily and efficiently (Wang et al., 2008, Padhy and Patra, 2012, Rimal and Choi, 2012, Wang et al., 2010).
2.2.2.3.
Virtualisation
Virtualisation involves partitioning computer hardware to provide a scalable and flexible computing platform (Padhy and Patra, 2012)2. It also connects the physical resources dynamically to the various applications which are running on a variety of Operating Systems (OSs) (Guha and Al-Dabass, 2010). Thus, virtualisation insulates computer users from the complexities of IT infrastructure operation (Erdogmu, 2009). With a virtualisation approach to managing IT infrastructure, Virtual Machine (VM) applications such as Xen and VMware can: enable many physical servers to be addressed as one virtual server; distribute the loads between the physical servers; and offer them on demand (Wang et al., 2008, Linthicum, 2010a, Waters, 2009, Padhy and Patra, 2012).
The transition from traditional computing to virtualisation allows multiple OSs to run on a single physical machine (see Figure 2.2) (O'Driscoll et al., 2013, Guha and Al- Dabass, 2010, Padhy and Patra, 2012, Waters, 2009). For example, multiple VMs can be hosted by a single physical machine shared by multiple users to maximise hardware utilisation (O'Driscoll et al., 2013, Guha and Al-Dabass, 2010, Padhy and Patra, 2012). Every VM, which has its own OS and applications, is managed by a virtual layer called the "Hypervisor" or Virtual Machine Monitor (VMM) to control physical hardware resources such as hard disk, memory, Central Processing Unit (CPU) and network connectivity (Banerjee et al., 2012, O'Driscoll et al., 2013).
2 In fact, there are many types of virtualisation including: network virtualisation which splits available bandwidth into channels; storage virtualisation which pools multiple storage devices into an apparently unique storage device; server virtualisation (discussed above); desktop virtualisation which allows any desktop computer to become a user’s own, personalised PC; and application virtualisation, which transforms software applications into centrally-managed services BANAFA, A. 2014. What is Virtualization [Online]. LinkedIn. Available: http://www.linkedin.com/today/post/article/20140401073258-246665791-cloud-computing-is-an-evolution-of- virtualization..
20
Figure 2.2: Transition from traditional computation to virtualisation (O'Driscoll et al., 2013)
VM techniques provide virtualised IT infrastructure on-demand while advances in virtual networking such as Virtual Private Network (VPN) deliver customisation for network platforms to access external cloud resources safely and effectively (Padhy and Patra, 2012). When VM is used to create and manage flexible Grid systems, performance may be degraded compared with direct use of physical resources – endeavours to improve performance in this situation is a ‘hot’ research topic (Mancini et al., 2009). Despite possible loss of speed and responsiveness, the complex and stable Grid infrastructure is nonetheless frequently used as a foundation for cloud platforms enabling Grid e-services to manage VMs (Mancini et al., 2009).
Virtualisation supports CC’s possibly most well-known feature, multi-tenancy (Abah and Francisca, 2012), by controlling access to the physical resources transparently and enabling users to configure them and act as administrators (Mancini et al., 2009). In addition, virtualisation allows multiple VMs to run their own OS within a single physical server (Hooper et al., 2013). Consequently, virtualisation technology is a primary enabler for CC (Celesti et al., 2010, O'Driscoll et al., 2013, Wang et al., 2008, Padhy and Patra, 2012) because it facilitates and enhances the scalability and flexibility of hardware services on-demand (Padhy and Patra, 2012, Guha and Al-Dabass, 2010, Wang et al., 2008).
21
2.2.2.4.
Service Oriented Architecture
Linthicum (2010a) explains that a process is a sequence of events, each of which leverages one or more services, typically related to the automation of a business process such as preparing and sending an invoice. In identifying which processes are suitable for cloud placement, a model is required to show how processes make use of services, because data and services can usually exist only on a single platform, but processes can bind together services and data between cloud-based and in-house systems. In addition, processes themselves can be inter-platform (both cloud-based and in-house) and can span companies, countries and multiple cloud platforms. Potentially, many services, data and processes can be bound together across many internal systems within many companies and many cloud platforms – using a single process which may be hosted anywhere.
According to Galorath (2009) “SOA provides methods for systems development and integration where systems group functionality around business processes and package these as interoperable services”. SOA allows data to be transferred between different applications in business processes (Galorath, 2009). In addition, the combination of internal and external services for an organisation creates SOA as a basis for CC (Banerjee et al., 2012, Murah, 2012).
As Linthicum (2014) notes: “those who leverage cloud computing within the context of
an architecture will succeed, while those who just toss things into the clouds will fail … the trick is to determine which services information and processes are good candidates to reside in the clouds, as well as which cloud services should be abstracted within the existing or emerging SOA”.
Moreover, McKendrick ( 2011) warned about the absence of service orientation. He stated that “Not having full-blown SOA isn't necessarily risky in itself when moving to cloud, but the inability to move processes from current interfaces and underlying applications to more agile cloud services could really make a mess of things – and ultimately make cloud more expensive than leaving things as is”.
22