module (Choi, 2009). SaaS gives users the
capability to use the cloud provider applications
running on a cloud infrastructure. PaaS gives users
everything that they need to develop, test, and
deploy applications to the cloud. IaaS is delivery of
the computing infrastructure as a fully outsourced
service, versus an in-house, capital investment-
sourced model (Mell et al., 2009).
We introduce three key enabling technologies
that are virtualization, hypervisor and Web services
in this module. Over the last several years,
virtualized technologies have become a standard in
the world of computers. These technologies,
including the virtual machine, are software
implementations of computer systems which
partition hardware into high-level abstractions. This
allows for resource sharing within the cloud along
with more affordable, flexible and scalable hardware
services (Wang et al., 2008).
Virtualization can be looked at as the abstraction
of computer resources from the actual computer
which can successfully allow databases, middleware,
and operating systems to practically run anywhere.
Cloud computing paradigm allows workloads to be
deployed and scaled-out quickly through the rapid
provisioning of virtual machines or physical
machines. Service virtualization combines and slices
business services deployed independent of the
operating systems, programming language or
hosting location. An intermediary cloud gateway sits
between the producer and the consumer and
aggregates the Web Service Description Languages.
When software is run on a virtual machine, the
bits representing the programs instructions run
through a layer of software that simulates a
dedicated server infrastructure. This layer of
software is known as the hypervisor. Hypervisors
allow servers to run a single instance of software
that serves multiple clients at a time, without
needing to rewrite the software. They also allow
operating systems and applications to install a
consistent hardware profile (Yu et al., 2012). Web
services today are frequently just Application
Programming Interfaces (API) or web APIs that can
be accessed over a network, and executed on a
remote system hosting the requested services.
3.2 Module 2: Introduction to Cloud
Computing Services
In this module we discuss data storage as a service,
software as a service, and cloud computing
operating system.
Commonly known as Storage as a Service
(StaaS) cloud computing presents a solution for any
user’s need with its robust infrastructure that far
exceeds the needs of any user with an internet
connection. StaaS allows users to store data at
remote disks and access them anytime from any
place (Wang et al., 2008). User’s data is stored on
remote storage systems that are maintained by a
third party. The data is then accessible through the
Internet.
Cloud storage as of today comes in many
different architectural designs. A cloud based
storage system connects the user to their stored
information through a web application that allows
the user to create, store, and file all the information
chosen (Wang et al., 2008). This design shows
where the user works on the application layer
uploading files to the cloud, the software service
then distributes the uploaded information to three
separate storage locations for disaster recovery. The
application, which is the web portal or interface to
the cloud storage, allows users to subscribe to the
web cloud storage. Copies of the files that the user
submits are then transferred over the Internet to
cloud storage servers.
We use Amazon S3 (Simple Storage Service) as
an example to explain how StaaS works. Amazon S3
is a platform that allows for cloud storage to users
on any scale from one gigabyte to thousands of
exabytes. With low cost, scalability and reliability
Amazon S3 can meet any software developers’
needs [Amazon Simple Storage Service].
A cloud computing operating system (OS)
provides an interface for developing and deploying
massively scalable distributed applications on behalf
of a large number of users and exploiting the
seemingly infinite CPU, storage, and bandwidth.
Traditional Operating Systems are used to manage
hardware components within the computer. The
cloud OS relies on distributed processes that manage
the cloud resources. A cloud OS is similar as a
traditional OS that is a collection of scheduler,
virtual memory allocator, file system code, interrupt
handlers, etc. to regulate the access by software to
CPU, memory, disk, and other hardware peripherals.
A cloud OS provides an additional set of
functionalities to give administrative access to
resources in the cloud. A cloud OS also provides a
set of network-based interfaces that applications can
use them to query the management system and
control cloud resources (Pianese et al. 2010).
The Architecture of the cloud operating system
consists of two separate spaces that are the User
Space and Kernel Space (Pianese et al. 2010). The
cloud’s kernel space is used to regulate physical
DevelopedandTaughtCourseModulestoEnhanceCloudComputingEducation
169