VIJAYA KUMAR S.
M.Sc. (Computer Application), Roll No: 4864
I.A.S.R.I., Library Avenue, New Delhi-110012
Cloud computing is the metaphor to the internet and it is a recent technology whose aim is to
deliver IT services on demand on pay per usage basis to the masses. The essential key
characteristics of cloud computing providers are scalability, availability, reliability, flexibility,
security and serviceability etc. Clouds can be classified into three types, Public, Private and
Hybrid clouds as per the deployment model. According to services provided by the cloud
computing it is categorised into Infrastructure as a Service (IaaS), Platform as a Service (PaaS)
and Software as a Service (SaaS).
IaaS supports operations, including storage, hardware, servers and networking components. The
service provider owns the equipment and is responsible for housing, running and maintaining it
E.g. AWS, IBM etc. PaaS is the second model in cloud computing which acts as an intermediate
between IaaS and SaaS by giving support to the IaaS to avail the services of SaaS to the end
users. Platform as a Service (PaaS) is an application development and deployment platform
delivered as a service to the developers over the web, e.g. Google Apps Engine, Windows Azure.
Third model is SaaS where users simply make use of a web-browser to access software that
others have developed and offer as a service over the web. At the SaaS level, users do not have
control or access to the underlying infrastructure being owned by the host. SaaS is service model
where application services are delivered over the network on a subscription and on-demand basis
e.g. Google Docs, Salesforce.com etc.
Benefits of cloud computing is reduction of capital investment, automated update of the services,
pay per use, more storage and mobility. The main demerits are dependent on internet
connections, abiding of service provider rules and regulation at any cost and security
Keywords: Cloud computing, IaaS, PaaS, SaaS, Google Apps Engine, Windows Azure
With the significant advances in Information and Communications Technology (ICT) over the
last half century, there is an increasingly perceived vision that computing will one day be the 5th
utility (after water, electricity, gas and telephony). This computing utility, like all other four
existing utilities, will provide the basic level of computing services that is considered essential to
meet the everyday needs of the general community. To deliver this vision, a number of
computing paradigms have been proposed, of which the latest one is known as ‘Cloud
Cloud computing is a recent technology trend whose aim is to deliver on demand IT resources on
a pay per usage basis. Previous trends were limited to a specific class of users, or focused on
making available on demand a specific IT resource for computing. Cloud computing is oriented
to provide services to the masses, ranging from the end user which hosts its personal documents
on the Internet, to enterprises outsourcing their entire IT infrastructure to the external data
Everyone has an opinion on what is cloud computing. It can be the ability to rent a server or a
thousand servers and run the application on the most powerful systems available anywhere. It can
be the ability to rent a virtual server, load software on it, turn it on and off at will, or clone it ten
times to meet a sudden workload demand. It can be storing and securing immense amounts of
data that is accessible only by authorized applications and users.
The term ‘cloud’ is not at all new to the computing community. For many years, ‘cloud’ is being
used as a symbol in typical network diagrams to refer to the internet or the components of the
network which are managed outside the environment of any IT organization. Even though cloud
computing has started taking shape in very recent years, some computer scientist has given the clear cut
definition about the cloud computing some of them are follows:
Gartner (2008), defines Cloud computing as "a style of computing where massively scalable IT-
enabled capabilities are delivered 'as a service' to external customers using Internet technologies."
“Common, Location-independent, Online Utility that is available on Demand” (Chan,
Brown (2009), defines cloud computing as, a data-processing infrastructure in which the
application software—and often the data itself—is stored permanently not on your PC but rather
a remote server that’s connected to the Internet.
An emerging model of computing where machines in large data centers can be dynamically
provisioned, configured, and reconfigured to deliver services in a scalable manner, for needs
ranging from scientific research to video sharing to e–mail (Jaeger, et al., 2009).
Finally the most accepted definition of cloud computing is given by the National Institute of
Standards and Technology (NIST).
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
Cloud services can be illustrated in the Figure 1 given below:
In the below diagram middleware is the interface between the cloud vendors and the end users.
The middleware can either be cloud operating platform or storage or service etc. For e.g.
Windows Azure gives the services as Platform to deploy the application to the application
developers. Similarly, IBM Cloud gives the Infrastructure by giving the storage and Google Apps
gives Software services like Apps, Gmail, Calendar etc. to the end users. In cloud computing
environment users may be the commercial IT Company or non commercial government
department or may be individuals.
Figure 1. Cloud Services
2. Need for cloud computing
2.1 Innovate to Survive
The companies like Google, Hotmail and Yahoo sustained through the dotcom burst. They began
innovating further to attract more number of users. Cloud computing has its roots in the strategies
adopted by these internet giants. Most of these internet companies would face unpredictable
demand in seasonality due to the very nature of their operations. These vendors needed to ensure
optimum response time even at the highest hit-rate. To achieve this, these vendors went on
expanding their infrastructural capacity by adopting cloud technology.
2.2 Generalize to Proliferate
In this Internet era, generalising one’s own innovation is very easy. In early days of computing
evolution, technology companies such as IBM provides newer technologies and sell it at a
premium cost after securing its intellectual property rights over that technology. On the contrary
some web service providers innovated their technologies and used for their own business use,
later which would be bundled and make it available to the public at an affordable price. E.g.
Google offers Google Apps Engine platform to deploy up to ten application with free of cost, and
Amazon offers software development and database storage management services etc.
The necessity of the cloud computing can be explained by taking an example. Let’s say there is
an executive at a large corporation. His/her particular responsibilities include making sure that all
of his/her employees have the right hardware and software they need to do their jobs. Buying
computers for everyone isn't enough – He/she also has to purchase software or software licenses
to give employees the tools they require. Whenever executive have a new hire, he/she has to buy
more software or make sure your current software license allows another user. This would
increase the capital investment furthermore.
Instead of installing a suite of software for each computer, we'd only have to load one
application. That application would allow workers to log into a Web-based service which hosts
all the programs the user would need for his or her job. Remote machines owned by another
company would run everything from e-mail to word processing to complex data analysis
programs. It's called cloud computing, and it could change the entire computer industry.
The noticeable example of cloud computing in our day today life is e-mail. We have an e-mail
account with a Web-based e-mail service like Hotmail, Yahoo! Mail or Gmail, then we've had
some experience with cloud computing. Instead of running an e-mail program on our computer,
we log in to a Web e-mail account remotely. The software and storage for your account doesn't
exist on our computer -- it's on the service's computer cloud. It's called cloud computing because
the data and applications exist on a "cloud" of Web.
3. Essential characteristics of the cloud environment
Applications designed for cloud computing need to be scaled with workload demands so that
performance with service levels remains on target. In order to achieve this, applications and their
data must be loosely coupled to maximize scalability.
Reliability means that applications do not fail and most importantly the data should not lose. The
way that architecture addresses this characteristic today is to design applications so that it should
continue to operate and user’s data remains intact despite the failure of one or more of the servers
or virtual machines onto which service provider decomposed.
Applications need to provide access only to authorized, authenticated users, and those users need
to be able to trust that their data is secure. This is true whether the application helps individual
users on the Internet prepare their tax returns, or whether the application exchanges confidential
information between a company and its suppliers. Security in today’s environments is established
using strong authentication, authorization, and accounting procedures, establishing security of
data at rest and in transit, locking down networks, and hardening operating systems, middleware,
and application software.
3.4 Flexibility and agility
These characteristics are increasingly important, as business organizations find themselves
having to adapt even more rapidly to changing business conditions by increasing the velocity at
which applications are delivered into customer hands. Cloud computing stresses getting
applications to market very quickly by using the most appropriate building blocks to get the job
Once an application is deployed, it needs to be maintained and updated as a dew course. Without
disrupting the service availability and security, to the customer, cloud provider should update or
even replace the application’s infrastructure components if it demands.
An application should deploy in the cloud quickly and easily, as we moves our service on pay per
3.7 Ubiquitous network access
Availability of the network and it should be accessed through standard mechanisms that promote
use by heterogeneous clients.
3.8 Location-independent resource pooling
It is no matter where we are residing, and where we are accessing the data. The data should be
available when we require it and should be accessed in independent of location. The customer
generally has no control or knowledge over the exact location of the provided resources but
may be able to specify location at a higher level of abstraction (e.g., country, state, or data
centre). Examples of resources include storage, processing, memory, network bandwidth, and
3.9 Measured service
Resource usage can be monitored, controlled, and reported by providing transparency of the
utilized service for both the provider and consumer.
4. Types of clouds
Cloud model is categorized into three types as Public, Private and Hybrid clouds according to
the users as per deployment model.
4.1 Public Clouds
Public clouds are run by third parties, and applications from different customers are likely to be
stitched together on the cloud’s servers, storage systems and networks. Public clouds are most
often hosted away from customer premises, and they provide a way to reduce customer risk and
cost by providing a flexible, even temporary extension to enterprise infrastructure. If a public
cloud is implemented with performance, security and data locality in mind, the existence of other
applications running in the cloud should be transparent to both cloud architects and end users.
Figure 2. Public Cloud
4.2 Private clouds
The cloud infrastructure is operated solely for an organization. It may be managed by the
organization or a third party, and may exist on or off the premises. Private clouds are built for the
exclusive use of one client, providing the utmost control over data, security, and quality of
service. The company owns the infrastructure and has control over how applications are deployed
on it. Private clouds may be deployed in an enterprise data center. Private clouds can be built and
managed by a company’s own IT organization or by a cloud provider.
Figure 3. Private Cloud
4.3 Hybrid clouds
The cloud infrastructure is a composition of two clouds (private and public) that remain unique
entities but are bound together by standard technology that enables data and application
portability. Hybrid clouds combine both public and private cloud models. Hybrid clouds
introduce the complexity of determining how to distribute applications across both a public and
private cloud. Hybrid cloud will be suitable for the small data which demands more application
processing. If the data is large and it demands less application, then the data will be transferred to
the public cloud for processing.
Figure 4. Hybrid Cloud
5. Service model of the cloud computing architecture
There are three service models in cloud computing architecture
a) Infrastructure as a Service(IaaS)
b) Platform as a Service(PaaS)
c) Software as a Service(SaaS)
5.1 Infrastructure as a service (IaaS)
Infrastructure as a Service is a provision model in which an organization outsources the
equipment used to support operations, including storage, hardware, servers and networking
components. The service provider owns the equipment and is responsible for housing, running
and maintaining it. IaaS clouds provide a set of building blocks or basic services, such as virtual
servers, data storage and databases. We can stitch these services together into a platform for
deploying and running our applications.
Infrastructure as a Service is sometimes referred to as Hardware as a Service (HaaS).
Some Important Cloud Infrastructure as a Service Provider
5.1.1 Architecture of IaaS
The fundamental building block of an infrastructure as a service in the cloud is workload.
Workload is the amount of work done by the server with the given amount of resources
allocated to it. Those resources encompass processing (CPU & RAM), data (throughput),
and networking (latency & throughput). Mostly, cloud workloads are delivered in virtual
servers. Workload might be delivered using a single virtual server spanning a variety of
physical resources including compute, storage, and networking. A workload can also be
an application or part of an application given by the cloud provider. Examples of
• Transactional Database
• Application Server
• Web Server
A workload can be the one of the above mentioned example. If the workload is transactional
database then it provides service in the DBMS(Data Base Management System) if it is a file
server then it will provides the document related applications, application server will provide
the on-demand request in the analysis of data, and web server gives services as web services
A database may require large amounts of CPU & RAM, fast storage, and low latency
networking, while an application server might require large amounts of CPU & RAM only.
Web servers need very little resources other than networking.
Step 2 Step 1
Figure 5. Infrastructure as aService Architecture
IaaS is entirely based on the server virtualization concept, as the IaaS provides the vast variety
of services. In figure 5 the request made by the Users directly ( In step 1)to the IaaS provider
for any application with in the service limit of IaaS cloud, the host will allow to access the
services to the user. This application will be running on the VM of the host. In the second step
application developer stands as a middle man for the end user to access the services from the
IaaS provider and serve back to the user what they demands. In IaaS, user can access the
services directly or indirectly to the IaaS provider. IaaS gives users more flexibility than PaaS
as it allows the user to deploy any software which they demands. Amazon Web Services’ EC2
and S37 are very popular IaaS examples.
5.1.2 In the IaaS cloud architecture there are five important components which controls
the entire IaaS Architecture
I. Cloud Controller (CLC)
II. Cluster Controller(CC)
III. Node Controller (NC)
IV. Walrus (W)
V. Storage Controller (SC)
I .Cloud Controller (CLC)
Within IaaS cloud, this is the main controller component responsible for managing the entire
system. It is the main entry point into the cloud for all users and administrators. All clients will
communicate only with the CLC using API.
II.Cluster Controller (CC)
The controller component within cloud responsible for managing the entire virtual instance
network. Requests are communicated to the CC using API. The CC maintains all the
information about the Node Controllers that run in the system and is responsible for controlling
the life cycle of the instances.
III.Node Controller (NC)
This controls the host operating system and the corresponding hypervisor (Xen with support for
VMware on the horizon e.g. In Eucalyptus). You must run an instance of the NC on each
machine that will be hosting the actual virtual instances instantiated upon request from a CC.
The controller component that manages access to the storage services within cloud. Requests
are communicated to Walrus using API.
V.Storage Controller (SC)
SC is used for storing and accessing virtual machine images. The VM images can be public or
private and are initially stored in compressed and encrypted form. The images are decrypted
only when a node needs to start a new instance and requests access to the image.
5.1.3 Topology of a single-cluster cloud installation
A single-cluster installation, as shown in Figure 2, will consist of at least two machines: one
running the CC, SC, and CLC, and the other one running the NC. We can simplify this even
further by combining everything onto a single machine, but we will need hefty machine
specifications to pull it off.
Figure 4. Single Cluster Cloud Installation
5.1.4 Topology of a multi-cluster cloud installation
A multi-cluster installation can situate each of the components (CC, SC, NC, and CLC) on
separate machines. This is the preferred way to configure our cloud if we intend to do serious
work with it. The multi-cluster installation also gives you the opportunity to significantly
enhance performance by selecting machines that complement the type of controller running on
it. For instance, we can select a machine with a super-fast CPU for running the CLC. The
choice of multiple clusters will result in higher availability and in distribution of load and
resources across the clusters. The concept of a cluster is similar to the concept of an availability
zone in Amazon EC2. We distribute resources across multiple availability zones so that a
failure in one does not affect our application.
Figure 7. Multi Cluster Cloud Installation
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable
compute capacity in the cloud. It is designed to make web-scale computing easier for
developers. Amazon Simple Storage Service (Amazon S3) enables storage in the cloud.
5.2 Platform as a service (PaaS)
The next layer after the IaaS in the cloud computing architecture is Platform as a Service
(PaaS). This is the layer which acts as an intermediate between IaaS and SaaS by giving
support to the IaaS to avail the services of SaaS to the end users. Platform as a Service (PaaS) is
an application development and deployment platform delivered as a service to developers over
Marc Andreessen, who coined the phrase “Web as Platform”, once wrote: “platform is a
system that can be programmed and therefore customized by outside developers — users
— and in that way, adapted to countless needs and niches that the platform’s original
developers could not have possibly contemplated, much less had time to accommodate. If
you can program it, then it’s a platform. If you can’t, then it’s not.
5.2.1 Architecture of Platform as a service in the cloud computing
In Platform as a Service (PaaS), applications are developed using a set of programming
languages and tools that are supported by the PaaS provider. PaaS provides users with a high
level of abstraction that allows them to focus on developing their applications and not worry
about the underlying infrastructure. Just like the SaaS model, users do not have control or
access to the underlying infrastructure being used to host their applications at the PaaS level.
Google App Engine and Microsoft’s Windows Azure are popular PaaS examples. PaaS
provides support the use of the application by many concurrent users, by providing concurrency
management, scalability and security. The architecture enables defining the trust relationship
between users in security, access, distribution of source code, user (people and device) profiles,
interaction and application usage.
PaaS providers offering
middleware to the
Figure 8. Architecture of PaaS
As shown in the Fig 8. There are three layers present in the architecture of PaaS. The first layer
in architecture is PaaS provider Layer. This layer consists of OS server which may or may not
include virtualization technique such as Virtual Machine hypervisor software. The inclusion of
virtualization technique will depends upon the capital investment and volume of service given
by the PaaS providers. Second layer is Middleware which gives the platform to the application
developer to develop the application for their customer (end user). This layer includes
application servers and technologies such as service-oriented architecture (SOA), business
process management (BPM), user interface (UI) technologies, and identity management. Upon
this middleware layer the end users layer resides, where the application developed by the
application developers will be accessed by the end users by just giving the request on demand.
PaaS typically provide some level of support to ease the creation of user interfaces, either based
infrastructure software, and typically includes a database, middleware and development tools.
Some PaaS have a specific programming language.
Google App Engine
Built on Google infrastructure platform (i.e. No commercially available server operating
Choice of either Python or Java run-time for running web applications. Other pre-
selected applications are available via services (e.g. Mail, Memcache).
Application development tightly confined to Google’s Software Development Kit
Tightly integrated with Google’s web services APIs (e.g. for authenticating users and
Free quotas for applications limited to: 500MB of persistent storage and CPU width for
approximately 5 million page views a month.
Microsoft’s Windows Azure
Operates on Microsoft’s virtualized 64-bit Windows Server 2008 operating system.
Support for .NET applications, as well as other third party applications available for the
same OS running on a standard server.
Application development tightly integrated with Microsoft’s Visual Studio, in addition
to having its own Software Development Kit (SDK).
Fully pay-per-use service for the application developer’s on-demand basis.
5.3 Software as a service (SaaS)
In the architectural layer of the cloud computing, this is the last layer where users simply make
use of a web-browser to access software that others have developed and offer as a service over
the web. At the SaaS level, users do not have control or access to the underlying infrastructure
being owned by the host. SaaS is service model where application services are delivered over
the network on a subscription and on-demand basis. Google Docs is popular examples that use
the SaaS model of cloud computing. Software as a Service (SaaS), also sometimes referred to
as Service or Application Clouds.
NIST has defined SaaS as the capability provided to the consumer and is the use of the
provider’s applications running on a cloud infrastructure and accessible from various client
devices through a thin-client interface such as a web browser (e.g., web-based e-mail). The
consumer does not manage or control the underlying cloud infrastructure, network, servers,
operating systems, storage, or even individual application capabilities, with the possible
exception of limited user-specific application configuration settings.
5.3.1 Architecture of SaaS
Figure 9. Software as Service Architecture
SaaS applications requested by the end user can provide single sign-in authentication through
the use of a federation server within the customer's network that interfaces with the customer's
own enterprise user-directory service. This federation server has a trust relationship with a
corresponding federation server located within the SaaS provider's network. When an end user
attempts to access the application, the enterprise federation server authenticates the user locally
and negotiates with the SaaS federation server to provide the user with a signed security token,
which the SaaS provider's authentication system accepts and uses to grant the user access.
The important thing to be noted while designing architecture for SaaS is Multi tenancy.
Multitenancy refers to a principle in software architecture where a single instance of the
software runs on a (SaaS) vendor's servers, serving multiple client organizations (tenants or
users). Multitenancy is often contrasted with a multi-instance architecture where separate
software instances (or hardware systems) are set up for different client organizations.
In SaaS model, the application or service is deployed from a centralized data center across a
network providing access and use on a recurring fee basis. The core value of SaaS is providing
access to a commercially available application. This service is different from business process
outsourcing (BPO), for instance, where the outsourcing contract encompasses management of
entire business processes such as HR or Finance, where the focus of the service is management
of the network and servers.
The SaaS solution offers the opportunity for companies to select their information technology
priorities and then choose from the growing menu of applications now being offered via service
providers. An outsourced service can also provide a superior infrastructure with improved
business agility and scalability, and rapid deployment. SaaS is generally requires much shorter
time to install and implement new software applications to establish new department in the
As SaaS is directly contact with the application user so it involves five types of cost model to
be paid by the users to the SaaS provider.
I. Subscription-Based Model: Monthly payment is calculated on the software actually used,
and includes a commitment as to the actual number of users. Subscriptions are usually
written on a per-seat or named user basis.
II. Usage-Based Model: Payment is determined by application usage and is typically related
to peak or near peak levels of usage. Payment may be tied to the number of CPUs
(customers are charged for every computer that runs the hosted application). It may also be
a written for number of concurrent users.
III. Transaction-Based Model: ASPs that provide online scheduling and similar products
sometimes charge customers for each business transaction: purchasing one introductory
relational database class is one service; two classes are two services, and so on.
IV. Value-Based Model: Premised on the provision of whatever software is needed to achieve
business goals, and payment is linked to the achievement of those goals.
V. The Fixed-Fee Model: An emerging option, users generally pay a predetermined monthly
fee based on number of users supported, which application modules are rented and service
and support levels specified by the customer.
Though these cost models are for the professional enterprises, Google Apps gives SaaS in free
of cost for their range of services. Google Apps is a powerful set of tools and user friendly that
Google has bundled together to meet the needs of businesses, schools, government agencies,
and other organizations of any size.
Gmail: An e-mail app based on Google’s popular Gmail platform.
Calendar: A calendar and scheduling app that allows easy collaboration.
Talk: Instant messaging, available directly from within Gmail or as a standalone software
application. Talk also allows voice calls, voice mail, and file sharing.
Docs: A simple, yet powerful, set of word processing, spreadsheet, and presentation apps.
The Start Page: An app that you can personalize by adding gadgets to access any or all of the
other Google Apps, as well as news, weather reports, entertainment information, and more
from one place.
6. Benefits of cloud computing
Upfront infrastructure investment
If you have to build a large-scale system it may cost a fortune to invest in hardware (racks,
machines, routers, backup power supplies), hardware management (power management,
cooling), and operations personnel. In cloud computing, there is no or less fixed cost.
More efficient resource utilization
System administrators usually worry about hardware procuring (when they run out of capacity)
and better infrastructure utilization (when they have excess and idle capacity). With Cloud
Architectures they can manage resources more effectively and efficiently by having the
applications request and relinquish resources only what they need (on-demand).
Utility-style pricing allows billing the customer only for the infrastructure that has been used.
The customer is not liable for the entire infrastructure that may be in place. This is a subtle
difference between desktop applications and web applications. A desktop application or a
traditional client-server application runs on customer’s own infrastructure (PC or server),
whereas in a Cloud Architectures application, the customer uses a third party infrastructure and
gets billed only for the fraction of it that was used.
Potential for shrinking the processing time
Parallelization is the one of the great ways to speed up processing. If one compute-intensive or
data intensive job that can be run in parallel takes 500 hours to process on one machine, with
Cloud Architectures, it would be possible to spawn and launch 500 instances and process the
same job in 1hour. Having available an elastic infrastructure provides the application with the
ability to exploit parallelization in a cost-effective manner reducing the total Processing time.
Organizations can store more data than on private computer systems with affordable cost.
No longer do IT personnel need to worry about keeping software up to date.
Employees can access information wherever they are, rather than having to remain at their
Depending on third-party to ensure the security and confidentiality of data and
Without internet access cloud service is no longer possible.
If the cloud service providers increase the cost for their services then we have to abide
their rules and conditions if we had an agreement with them, moreover our data are
entangled with them.
2. Toby Velte, Anthony Velte, Robert C. Elsenpeter, (2009), Cloud Computing: A
Practical Approach, McGraw Hills Publications.
6. Architectural strategies for cloud computing [online]
8. Introduction to Cloud Computing Architecture, [online]
9. Cisco Cloud Computing -Data Center Strategy, Architecture, and Solutions, [online]
11. Research Agendas In Cloud Technologies [online] http://arxiv.org/abs/1001.3259
12. Cloud Architectures [online]
13. Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering
Computing as the 5th Utility [online]