0% found this document useful (0 votes)
6 views20 pages

Understanding Cloud Computing Basics

Cloud computing delivers computing services over the internet in a scalable, on-demand, pay-as-you-go model, transforming IT services into utilities. It allows users to access resources without the need for physical infrastructure management, enabling flexibility and cost efficiency. The document outlines the various deployment models (public, private, hybrid) and service categories (IaaS, PaaS, SaaS), highlighting the benefits and characteristics of cloud computing for both consumers and providers.

Uploaded by

bindushree2325
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views20 pages

Understanding Cloud Computing Basics

Cloud computing delivers computing services over the internet in a scalable, on-demand, pay-as-you-go model, transforming IT services into utilities. It allows users to access resources without the need for physical infrastructure management, enabling flexibility and cost efficiency. The document outlines the various deployment models (public, private, hybrid) and service categories (IaaS, PaaS, SaaS), highlighting the benefits and characteristics of cloud computing for both consumers and providers.

Uploaded by

bindushree2325
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

M23BCS505B

Introduction
Cloud computing means delivering computing services (systems, storage, databases,
networking, software) over the internet—on-demand, scalable, with pay-as-you-go billing.

Computing is being transformed into a model consisting of services similar to utilities just like
water, electricity, or mobile networks. Instead of buying computers or software, people can
now use them over the internet and pay only for what they use." (utility computing)

1.1 Cloud Computing at a Glance


One of the chief scientists of original Advanced Research Projects Agency Network
(ARPANET) Leonard Kleinrock (1969) envisioned this model by comparing future computer
services to utilities
“As of now, computer networks are still in their infancy, but as they grow up and become
sophisticated, we will probably see the spread of ‘computer utilities’ which, like present electric
and telephone utilities, will service individual homes and offices across the country.”
It is based on the concept of dynamic provisioning, which is applied not only to services, but
also to compute capability, storage, networking, and Information Technology (IT)
infrastructure in general. Resources are made available through the Internet and offered on a
pay-per-use basis from Cloud computing vendors. Today, anyone with a credit card can
subscribe to Cloud services.
Services will be readily available on demand, like other utility services such as water,
electricity, telephone, and gas available in today’s society(On-demand access).
Cloud computing allows renting infrastructure, runtime environments, and services on pay-
per-use basis. Users (consumers) need to pay providers only when they access the computing
services. You pay only for the resources and time you use just like electricity (pay-per-use
model).

End users leveraging Cloud computing services can access their documents and data at
anytime, anywhere, and from any device connected to the Internet. Users access services based
on their requirements without regard to where the services are hosted. Services are accessed
over the Internet, so location of servers doesn't matter.

One of the most diffused view of cloud computing is summarized as:


“I don’t care where my servers are, who manages them, where my documents are stored, or
where my applications are hosted. I just want them always available and access them from any
device connected through Internet. And I am willing to pay for this service for as a long as I
need it.”
Users don’t need to buy or maintain physical servers or networks. Consumers no longer need
to invest heavily, or encounter difficulties in building and maintaining complex IT
infrastructure.( No infrastructure management)

DEPARTMENT OF CSE, MIT MYSORE 1


M23BCS505B

Resources can grow or shrink based on user needs. Cloud computing also provides an
opportunity for integrating additional capacity, or new features, into existing systems.

In other words, Cloud computing turns IT services into utilities. Such a delivery model is made
possible by the effective composition of several technologies, which have reached the
appropriate maturity level. Web 2.0 technologies play a central role in making Cloud
computing an attractive opportunity for building computing systems.

This model has been referred to as utility computing -A model where computing resources
are provided like public utilities (electricity, gas)), or recently (since 2007) as Cloud
computing.

1.1.1 The Vision of Cloud Computing

Cloud computing allows anyone having a credit card to provision virtual hardware, runtime
environments, and services. These are used for as long as needed and no upfront commitments
are required.
Entire stack of computing environment—servers, storage, network, operating system,
software platforms— is transformed into a collection of utilities. These are modular (can be
combined),flexible (can scale up/down) and to deploy systems in hours, rather than days, and
with virtually no maintenance costs.

Initially, the idea of renting computing services seemed risky or [Link], it is widely
adopted in several application domains and business sectors (banking, education, healthcare,
media, etc.) Figure 1.1 in textbook likely shows cloud adoption across industries.

Despite its evolution, the usage of Cloud computing is often limited to a single service at time
or, more commonly, a set of related services offered by the same vendor. The lack of effective
standardization efforts made it difficult to move hosted services from one vendor to another.
Example: An app built on Google App Engine can't easily run on AWS without major changes.
The long term vision of Cloud computing is that IT services are traded as utilities in an open
market without technological and legal barriers. In this Cloud marketplace, Cloud service
providers and consumers, trading Cloud services as utilities, play a central role.

Many of the technological elements contributing to this vision already exist. Different
stakeholders leverage Clouds for a variety of services. The need for ubiquitous storage and
compute power on demand is the most common reason to consider Cloud computing.

A scalable runtime for applications is an attractive option for application and system developers
that do not have infrastructure or cannot afford any further expansion of existing one.

Cloud service discovery (finding suitable services) is mostly manual. A person or team
searches the Internet to find services that match their needs In a near future, we imagine that it
will be possible to find the solution that matches our needs by simply entering our request in a
global digital market that trades Cloud-computing services.

DEPARTMENT OF CSE, MIT MYSORE 2


M23BCS505B

1.1.2 Defining a Cloud


Cloud computing has become a popular buzzword and it has been widely used to refer
to different technologies, services, and concepts. It is often associated with virtualized
infrastructure or hardware on demand, utility computing, IT outsourcing, platform and software
as a service, and many other things that now are the focus of the IT industry.
Internet plays a fundamental role in Cloud computing since it represents either the
medium or the platform through which many Cloud computing services are delivered and made
accessible.
Definition by Armbrust et al.: (Michael Armbrust is a well-known computer scientist and
researcher.)

“Cloud computing refers to both the applications delivered as services over the Internet, and
the hardware and system software in the datacenters that provide those services.”

Cloud computing supports a wide range of users and use cases, from:

• An individual user saving personal documents in the cloud (like using Google Drive),
• To a Chief Information Officer (CIO) in a company deploying the organization’s
entire IT infrastructure on the cloud (like using AWS or Microsoft Azure).

This demonstrates the scalability and flexibility of cloud services. This notion of multiple
parties using shared Cloud computing environment is highlighted in a definition proposed by
American National Institute of Standards and Technology (NIST):

DEPARTMENT OF CSE, MIT MYSORE 3


M23BCS505B

“Cloud computing is a model for enabling ubiquitous, 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.”

We can define three criteria to discriminate whether a service is delivered in the Cloud
computing style:

● The service is accessible via a Web browser (non-proprietary) or Web services API.

● Zero capital expenditure is necessary to get started.

● You pay only for what you use as you use it.

The utility-oriented nature of Cloud computing is clearly expressed by Buyya et al. [30] :

“A Cloud is a type of parallel and distributed system consisting of a collection of


interconnected and virtualized computers that are dynamically provisioned and presented as
one or more unified computing resources based on service-level agreements established
through negotiation between the service provider and consumers.”

1.1.3 A Closer Look

Cloud computing is helping enterprises, governments, public and private institutions, as well
as research organizations shape more effective and demand-driven computing systems.
Accessing Cloud computing resources are now as easy as performing a credit card transaction
over the Internet.

(a)Large enterprises can offload some of their activities to Cloud based systems.

Big companies often need a lot of computing power, but only for a short time. So, instead of
handling everything themselves, they shift some work to the Cloud.

The New York Times has converted its digital library about past editions into a Web friendly
format. This required a considerable amount of computing power for a short period of time. By
renting Amazon EC2 and S3 Cloud resources, it performed this task in 36 hours, and
relinquished these resources without any additional costs.

(b) Small enterprises and start-ups can turn their ideas into business results more
quickly without excessive upfront costs.

Small businesses and start-ups can turn their ideas into real products faster without
spending a lot of money at the beginning.

Animoto is a company that helps users create videos using their photos, music, and video
clips.

• To make these videos, a lot of storage and processing power is needed in the
background.

DEPARTMENT OF CSE, MIT MYSORE 4


M23BCS505B

• Instead of buying and maintaining its own servers, Animoto uses Amazon Web
Services (AWS).
• AWS automatically increases or decreases computing power depending on how many
videos need to be made.
• Since the workload keeps changing, Animoto needs flexibility and quick scaling, which
is possible with cloud computing.
• Buying servers in advance (upfront investment) wouldn’t work well here.
• So, cloud computing is the best choice for companies like Animoto.

(c) System developers can concentrate on the business logic rather than dealing with the
complexity of infrastructure management and scalability.

Little Fluffy Toys is a small company in London. They created a widget (mini app) that shows
users where they can find nearby rental bicycles. Instead of setting up servers, they used Google
App Engine to handle the backend. As a result, they were able to launch their product in just
one week.

(d) End users can have their documents accessible from everywhere and any device.

Apple iCloud is a service that allows users to have their documents stored in the Cloud and
access them from any device they connect to it. This makes it possible taking a picture with a
smart phone, going back home and editing the same picture on your laptop, and having it shown
updated on their tablet. No need to use cables or manually transfer files — everything is
automatically synced.

How all of this is made possible? The same concept of IT services on demand—whether they
are computing power, storage, or runtime environments for applications—on a pay-as-you-go
basis accommodates these four different scenarios.

A bird eye view of Cloud computing environment is shown in Fig. 1.3.

DEPARTMENT OF CSE, MIT MYSORE 5


M23BCS505B

The three major models for deployment and accessibility of Cloud computing environments
are: public Clouds, private/enterprise Cloud, and hybrid Clouds.

Public Clouds are the most common deployment models.

They are managed by third-party service providers and offers IT infrastructure (like virtualized
data centers) on a subscription basis.

Public Clouds are attractive to users because they enable rapid access to computing resources
such as servers, storage, and application services, on demand often on a pay-per-use basis.

In this environment, users’ data and applications are deployed on Cloud Data centers on the
vendor’s premises.(provider’s premises).

Advantages
• Cost Efficient: In the public cloud, we have to pay for what we used. So it is more
cost-efficient than maintaining the physical servers or their own infrastructure.
• Automatic Software Updates: In the public cloud, there are automatic software
updates. we don't have to update the software manually.
• Accessibility: Public clouds allow users to access their resources and applications
from anywhere in the world. We just need an internet connection to access it.

Public clouds can be vulnerable to data breaches, cyber attacks, and other security risks. Since
data is stored on servers owned by a third-party provider, there is always a risk that
confidential or sensitive data may be exposed or compromised.

DEPARTMENT OF CSE, MIT MYSORE 6


M23BCS505B

Private cloud

A Private Cloud is a cloud computing environment in which the infrastructure and services
are owned and operated by a single organization, for example, a company or government .

It is accessed by only authorized users within that organization. Private cloud provides a
higher level of security. Examples - HPE, Dell, VMware, etc.

Offers Cloud benefits while keeping data within the organization.

Private clouds are either hosted on-premises (within the organization's own data center) or
off-premises by a third party but still dedicated only to that organization. Data, applications,
and infrastructure remain within the organization’s control.

Institutions such as governments and banks with high security, privacy, and regulatory
concerns prefer to build and use their own private or enterprise Clouds.

Example: In 2010, the U.S. federal government began a cloud initiative to optimize its IT
systems.

Hybrid Cloud:

• Combines public and private cloud resources.


• whenever private resources are insufficient to meet performance or deadline
requirements , hybrid computing systems, partially composed by public Cloud
resources and privately owned infrastructures, are created to serve the organization’s
need.
• Enables organizations to flexibly scale while maintaining control over sensitive data.

1.1.4 Cloud-Computing Reference Model

DEPARTMENT OF CSE, MIT MYSORE 7


M23BCS505B

A fundamental characteristic of Cloud computing is the capability of delivering on demand a


variety of IT services, which are quite diverse from each other.

It is possible to classify Cloud computing services offerings into three major categories:
Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service
(SaaS).

Infrastructure-as-a-Service (IaaS) forms the base layer of the Cloud Computing Reference
Model. It delivers basic IT infrastructure components on demand over the internet, such as:

• Virtual hardware
• Storage systems
• Network services

These resources are provided as a service and users can scale them up or down as needed.

Virtual hardware is used to deliver compute resources on demand, typically in the form of
virtual machine (VM) instances. These are created on users’ request on the provider’s
infrastructure, and users are given tools and interfaces to configure the software stack installed
in the virtual machine.

Virtual storage is delivered in the form of raw disk space or object store.

Raw Disk Storage:

• Acts like a virtual hard drive attached to a virtual machine (VM).


• Provides block-level storage, useful for applications that need persistent storage (e.g.,
databases).

Object Storage:

• A higher-level abstraction for storing unstructured data as objects(entities) rather than


traditional files or blocks.

Virtual networking refers to the collection of services that manage the networking among
virtual instances and their connectivity towards the Internet or private networks.

Platform-as-a-Service (PaaS) sits above Infrastructure-as-a-Service in the Cloud


Computing Reference Model. It provides a ready-to-use environment for developing, testing,
deploying, and managing applications—without the user needing to handle the underlying
infrastructure.

PaaS services are supported by a core middleware platform, which creates an abstract
environment for deploying and executing applications."

It is the responsibility of the service provider to provide scalability and to manage fault-
tolerance, while users are requested to focus on the logic of the application developed by
leveraging the provider’s APIs and libraries.

DEPARTMENT OF CSE, MIT MYSORE 8


M23BCS505B

Software-as-a-Service (SaaS) is the topmost layer in the Cloud Computing Reference Model.
It delivers fully functional software applications over the internet, accessible via web
browsers.

Most common desktop application functionalities—such as office automation, document


management, photo editing, and customer relationship management (CRM)—are replicated
and hosted on the cloud provider’s infrastructure. These applications are made more scalable
and are accessible to users on demand through a web browser."

Office Automation: Google Docs, Microsoft Word Online


Document Management: Dropbox, Google Drive
Photo Editing: Canva, Adobe Photoshop Express
CRM Software: Salesforce, Zoho CRM

1.1.5 Characteristics and Benefits

Cloud computing has some interesting characteristics that bring benifits to both Cloud Service
Consumers (CSCs) and Cloud service providers (CSPs). They are

● no upfront commitments;

● on demand access;

● nice pricing;

● simplified application acceleration and scalability;

● efficient resource allocation;

● energy efficiency; and

● seamless creation and the use of third-party services.

➢ The most evident benefit from the use of Cloud computing systems and technologies is
the increased economical return due to the reduced maintenance costs and operational
costs related to IT software and infrastructure. This is because IT resources (like
compute, storage, software) are turned into utility services (like electricity or water).
You pay only for what you use – no upfront investment.
➢ Before Cloud computing, IT infrastructure and software generated capital costs, since
they were paid upfront to afford a computing infrastructure enabling the business
activities of an organization. The revenue of the business is then utilized to compensate
over time for these costs.
Organizations always minimize capital costs, since they are often associated to
depreciable values. Capital costs include things like buying servers, storage systems,
and other IT hardware. These assets depreciate, meaning: Their value drops over
time.

Example: A server bought today for $1000 might be worth only $400 after a few years.

DEPARTMENT OF CSE, MIT MYSORE 9


M23BCS505B

The lower the capital cost, the less depreciation and higher the profit. This is one reason
why companies prefer Cloud Computing, where there's no need to buy hardware — just
rent it as a service. Cloud computing transforms IT infrastructure and software into
utilities, thus significantly contributing in increasing the net gain.

➢ Cloud computing reduces the need for large investments, making it easier for small
companies and start-ups to begin operations and grow gradually. It also lowers
maintenance costs because the cloud provider takes care of it.

➢ Increased agility in defining and structuring software systems is another significant


benefit. (Organizations rent IT services rather than owning them. This allows them to
quickly design and change software systems based on their needs. There’s no long-term
investment or infrastructure limitation holding them back)

➢ There is a reduced need for capacity planning. In traditional systems, companies had to
predict future demand and buy enough hardware in advance. With cloud computing,
they can simply add more resources when needed.
Example: Add extra servers during a sale or festival season, and remove them
afterward.

➢ Scalability means the ability to increase or decrease IT resources (like compute


power or storage) based on demand.
In cloud computing, scalability is supported at every layer of the service stack. You
can easily increase or decrease resources (like storage, servers, or user capacity)
whether you're:

Using infrastructure (IaaS) → add/remove virtual machines

Using a platform (PaaS) → apps automatically grow to handle more users

Using software (SaaS) → services adjust without needing setup

➢ End users can benefit from Cloud computing by having their data and the capability of
operating on it always available, from anywhere, at any time, and through multiple
devices. Information and services stored in the Cloud are exposed to users by Web-
based interfaces that make them accessible from portable devices as well as desktops
at home.
➢ Multi-tenancy allows for a better utilization of the shared infra structure that is kept
operational and fully active.

1.1.6 Challenges Ahead


Cloud computing offers many benefits, but it also brings new technical and management
challenges

Besides the practical aspects, which are related to configuration, networking, and sizing of
Cloud computing systems, a new set of challenges concerning the dynamic provisioning of
Cloud computing services and resources arises. For example, in the Infrastructure-as-a-
Service domain, how many resources need to be provisioned and for how long they should be

DEPARTMENT OF CSE, MIT MYSORE 10


M23BCS505B

used, in order to maximize the benefit? Technical challenges also arise for Cloud service
providers for the management of large computing infrastructures, and the use of virtualization
technologies on top of them.

Security in terms of confidentiality, secrecy, and protection of data in a Cloud


environment, is another important challenge. Organizations do not own the infrastructure
they use to process data and store information. This condition poses challenges for confidential
data, which organizations cannot afford to reveal. Assurance that the data is safe and private is
needed. Cloud providers must follow security standards and certifications. These standards
guarantee minimum protection and help organizations trust the cloud service.

Legal issues may also arise. Cloud computing infrastructure is spread across different
geographical location. Each country has its own laws regarding data privacy and government
access. For example, the United States allows government agencies to access confidential data
if there is a national security concern, while European countries have stricter privacy laws that
limit such access. This creates legal conflicts when data belonging to an organization in one
country is stored in another. For instance, if a U.S. company stores its data in a European data
center. It may be difficult for the U.S. government to access that data due to European privacy
regulations.

1.2 HISTORICAL DEVELOPMENTS

The idea of renting computing services by leveraging large distributed computing facilities has
been around for a long time ( mainframes in the early fifties). From there on, technology has
evolved and refined.

The evolution of Cloud computing has been influenced by five key technologies:

Distributed systems, virtualization, Web 2.0, service-oriented computing, and utility


computing. Each of these played a major role in shaping how Cloud services are designed,
delivered, and consumed today. Figure 1.6 in the textbook shows how these technologies
developed over time to enable Cloud computing.

DEPARTMENT OF CSE, MIT MYSORE 11


M23BCS505B

Distributed Systems

A Distributed System is defined as:

“A collection of independent computers that appears to its users as a single coherent system.”
— Tanenbaum et al.

As the definition says distributed system is composed of multiple independent components and
that these components are perceived as a single entity by users. This is particularly true in case
of Cloud computing, where Clouds hide the complex architecture they rely on and provide a
single interface to the users.

The primary purpose of distributed systems is to share resources and to utilize them better. This
is true in the case of Cloud computing, where resources (infrastructure, runtime environments,
and services) are rented to users.

Distributed systems often exhibit other properties such as heterogeneity, openness, scalability,
transparency, concurrency, continuous availability, and independent failures. To some extent,
these also characterize Clouds, especially in the context of scalability, concurrency, and
continuous availability.

Three major milestones have led to Cloud computing: mainframe computing, cluster
computing, and Grid computing.

(a)Mainframes

Mainframes were the earliest large-scale computing systems designed to handle large data
movement and massive IO operations.

They were mostly used by large organizations for bulk data processing such as online
transactions, enterprise resource planning(business planning), and other operations involving
the processing of significant amount of data.

Even though mainframes cannot be considered distributed systems, they were offering large
computational power by using multiple processors, which were presented as a single entity to
users.

One of the most attractive features of mainframes was the ability to be highly reliable
computers that were “always on” and capable of tolerating failures transparently. No system
shut down was required to replace failed components, and the system could work without
interruptions. Batch processing was the main application of mainframes.

(b)Clusters

Cluster computing began as a low-cost alternative to mainframes and supercomputers.

It uses cheap commodity machines (regular computer) connected through a high-speed


network, and controlled by software that makes them behave like a single powerful machine.

DEPARTMENT OF CSE, MIT MYSORE 12


M23BCS505B

From the 1980s, clusters became popular for parallel and high-performance computing,
especially in universities and research labs that could not afford expensive systems.

Clusters were easy to scale up (add more machines for more power) and helped develop
important tools for distributed computing, like Condor, PVM, and MPI.

Grid computing

Grid computing evolved in the early 1990s as the next step after cluster computing.

It introduced a new idea—just like we use electricity or water from a grid, users could access
computing power and storage as a utility.

Grids connected multiple clusters (groups of computers), often located in different places and
belonging to different organizations, using the Internet.

Grids are more dynamic and include a wide mix of computers (heterogeneous nodes) spread
across cities or countries.

This became possible because:

1. Clusters had become common and were often underused.


2. New problems needed more power than single clusters could provide.
3. Internet speeds improved, allowing fast long-distance connections.

Cloud computing is often seen as the next step after Grid computing, but in reality, it
combines key ideas from mainframe computing, cluster computing, and grid computing. It
takes the reliability of mainframes, the low-cost and performance benefits of clusters, and
the resource-sharing flexibility of grids, and builds a more advanced, scalable, and user-
friendly computing model.

1.2.2 Virtualization

Virtualization is another core technology for Cloud computing. Virtualization includes


different technologies allowing the abstraction of some of the fundamental elements for
computing such as: hardware, runtime environments, storage, and networking.

Although virtualization has existed for over 40 years, but its application has always been
limited by technologies that did not allow an efficient use of virtualization solutions. Today
these limitations have been substantially overcome and virtualization has become a
fundamental element of Cloud computing, especially for services that provide infrastructure
on demand (like virtual machines, storage, etc.).

Virtualization is essentially a technology that allows creation of different computing


environments. These environments are named as virtual, because they simulate the interface
that is expected by a guest.

The most common example of virtualization is hardware virtualization.

DEPARTMENT OF CSE, MIT MYSORE 13


M23BCS505B

Hardware virtualization creates a virtual version of hardware that an operating system (OS)
expects .This allows multiple operating systems or software setups (called software stacks) to
run on a single physical machine. Each VM is isolated from one another. High-performance
server can host several virtual machine instances. This enables custom software environments
to be created quickly and as needed. This concept is key to cloud computing, where users get
virtual servers on demand.

Amazon EC2( Elastic Compute cloud) ,Rightscale, VMware Cloud, and others.

Virtualization technologies are also used to replicate runtime environments for programs.
Instead of letting the OS directly run the program, the program is run by a Virtual Machine
(VM) software

In the case of process virtual machines, which include the foundation of technologies such as
Java or .NET, where applications instead of being executed by the operating system are run by
a specific program called virtual machine.

This approach is used in Cloud computing in order to provide a platform for scaling
applications on demand, such as Google AppEngine and Windows Azure.

1.2.3 Web 2.0

• The Web is the primary interface through which Cloud computing deliver its services.
At present time, it encompasses a set of technologies and services that facilitate
interactive information sharing, collaboration, user-centered design, and application
composition. This has transformed the Web into a rich platform for application
development. Such evolution is known as “Web 2.0”.
• Web 2.0 brings interactivity and flexibility into Web pages. Web 2.0 is the second
generation of the web that made websites more interactive, flexible, and user-friendly.
• It allows users to do things online that were earlier possible only in desktop
applications (like editing documents, chatting, sharing files).
• These capabilities are obtained by integrating a collection of standards and technologies
such as XML, Asynchronous Javascript and XML (AJAX), Web Services, and others.
• Services can now be accessed from a variety of devices: mobile phones, car dashboards,
TV sets, and others.
• Web 2.0 applications are extremely dynamic: they improve continuously and new
updates and features are integrated at a constant rate.
• Loose coupling is another fundamental property. New applications can be
“synthesized” simply by composing existing services and integrating them together,
thus providing added value.
• Examples of Web 2.0 applications are Google Documents, Google Maps, Flickr,
Facebook, Twitter, YouTube, [Link], Blogger, and Wikipedia. In particular, social
networking Websites take the biggest advantage from Web 2.0. The level of interaction
in Web sites like Facebook or Flickr would not have been possible without the support
of AJAX, RSS, and other tools

DEPARTMENT OF CSE, MIT MYSORE 14


M23BCS505B

1.2.4 Service-Oriented Computing


Service orientation is the core reference model for Cloud computing systems. [The basic idea
is to build systems using services. These services are small, independent components that
perform specific tasks (like login service, payment service, search service, etc.).]
This approach uses the concept of services as main building blocks of application and system
development.
A service is a self-contained software component that can perform a specific function- this
can be anything from a simple function to a complex business process.
A service is supposed to be loosely coupled, reusable, programming language independent, and
location transparent.
How services work:

• A service exposes its functionality over a network using standard protocols (like
HTTP, SOAP, or REST).
• Clients can find and use these services through global registries.
• Services can interact even if they’re built in different programming languages or hosted
on different platforms.

SOA is a design model where software is built by connecting multiple services. These services
are:

• Published (made available),


• Discovered (found by clients),
• Consumed (used to perform tasks).

Service-Oriented Computing introduces and diffuses two important concepts, which are also
fundamental for Cloud computing: Quality of Service (QoS) and Software as a Service
(SaaS).

Quality of Service identifies a set of functional and non-functional attributes that can be used
to evaluate the behaviour of a service from different perspectives. These could be performance
metrics such as response time, or security attributes, transactional integrity, reliability,
scalability, and availability. QoS requirements are established between the client and the
provider between a Service Level Agreement (SLA) that identifies the minimum values (or an
acceptable range) for the QoS attributes that need to be satisfied upon service call.

SaaS is a software delivery model where applications are hosted centrally (in the cloud) and
accessed over the internet. Users subscribe or rent the software instead of installing it on their
own devices. It is inspired by Application Service Providers (ASPs) who hosted and managed
software for clients.

The Software as a Service (SaaS) model works effectively due to the concept of multi-
tenancy, which allows a single software instance to serve multiple users, reducing cost and
improving efficiency. In this approach, software is divided into loosely coupled components,
which can be accessed, reused, and priced individually instead of as a whole application.

DEPARTMENT OF CSE, MIT MYSORE 15


M23BCS505B

Web Services (WS) are a very practical way of realizing Service-Oriented Computing (SOC)
on the internet.

Web Services are software components that allow two applications to talk to each other over
the internet, using standard web protocols like HTTP. Unlike a normal website, which is
designed for humans to read and interact with, a web service is designed for machines
(programs) to consume automatically.

A Web Service is a software component that can be accessed over the HTTP protocol using
a method invocation pattern. The service interface is described using WSDL (Web Service
Description Language) – an XML-based language that defines what the service does, its
methods, inputs, and outputs. The interaction with Web services happens through Simple
Object Access Protocol (SOAP). This is an XML language defining how to invoke a Web
service method and collect the result.

By using SOAP and WSDL over HTTP, Web services become platform independent and
accessible as the World Wide Web.

1.2.5 Utility-Oriented Computing

Utility computing is a vision of computing where which resources such as storage, compute
power, applications, and infrastructure are packaged and offered on a pay-per-use basis.

Long ago, visionaries imagined that computing resources could be delivered like public
utilities (electricity, water, gas, telephone). This vision is now reality with Cloud Computing,
which delivers computing as a service-on-demand.

Among the earliest forerunners of this vision, the American scientist, John McCarthy stated ,

“If computers of the kind I have advocated become the computers of the future, then computing
may someday be organized as a public utility just as the telephone system is a public utility...
The computer utility could become the basis of a new and important industry.”

The first traces of this service provisioning model can be found in the mainframes era. IBM
and other mainframe providers offered mainframe power to organizations such as banks and
government agencies throughout their datacentres.

The idea of computing as utility remained and extended from the business domain to the
academia with the advent of cluster computing.

Not only businesses but also research institutes became acquainted with the idea of leveraging
an external IT infrastructure on demand.

Computational science, which was one of the major driving factors for building computing
clusters, still required huge compute power for addressing Grand Challenge problems, and not
all the institutions were able to satisfy their computing needs internally. Access to external
clusters still remained a common practice.

DEPARTMENT OF CSE, MIT MYSORE 16


M23BCS505B

The global spread of the Internet and World Wide Web gave a way to connect and share
computing resources at a worldwide scale. This made the vision of utility computing practical.
Grids didn’t just share computing power — they introduced market-oriented utility
computing.

1.3 BUILDING CLOUD-COMPUTING ENVIRONMENTS

1.3.1 Application Development

Applications that leverage Cloud-computing benefit from its capability of dynamically scaling
on demand. One class of applications that take the biggest advantage from this feature is Web
applications. Their performance is strongly affected by user workload, which can vary a lot.

With the diffusion of Web 2.0 technologies, the Web has become a platform for developing
rich and complex applications including enterprise applications that now use the Internet as the
preferred channel for service delivery and user interaction. These applications run on a multi-
tier architecture, where user interactions trigger complex processes that flow through the
front-end, business logic, and database layers.

Another class of applications that can potentially gain considerable advantage by leveraging
Cloud computing is represented by resource-intensive applications. These can be either data-
intensive or compute-intensive applications. In both cases, a considerable amount of
resources is required to complete execution in a reasonable time frame. It is worth noticing that
the large amount of resources is not needed constantly or for a long duration. For example,
scientific applications can require huge computing capacity to perform large scale experiments
once in a while, so it is not feasible to buy the infrastructure supporting them. In this case,
Cloud computing can be the solution. Resource intensive applications are not interactive and
they are mostly characterized by batch processing.

1.3.2 Infrastructure and System Development

Distributed computing, virtualization, service orientation, and Web 2.0 form the core
technologies enabling the provisioning of Cloud services from anywhere in the globe.
Developing applications and systems that use the Cloud requires knowledge across all these
technologies.

Iaas provides raw resources like virtual machines, storage, and networking. Users can add or
remove resources, but they must manage scaling decisions themselves.
Example: AWS EC2, Google Compute Engine

Paas provides a ready-to-use platform with built-in algorithms for scaling and resource
management. Scaling can be automatic (transparent) or developer-controlled (fine control)
Example: Google App Engine, Microsoft Azure App Service.

Cloud computing is often summarized with the acronym XaaS—everything as a service—that


clearly underlines the central of service orientation.

DEPARTMENT OF CSE, MIT MYSORE 17


M23BCS505B

1.4 COMPUTING PLATFORMS AND TECHNOLOGIES

Development of a Cloud computing application happens by using platform and frameworks


that provide different types of services, from the bare metal infrastructure to customizable
applications serving specific purposes.

1.4.1 Amazon Web Services (AWS)

Amazon Web Services (AWS) is one of the largest Cloud IaaS providers.

It offers everything from basic infrastructure (compute, storage, networking) to full computing
stacks.

AWS is mostly known for its compute and storage on demand services, namely Elastic
Compute Cloud (EC2) and Simple Storage Service (S3).

Amazon EC2

Amazon EC2 (Elastic Compute Cloud) is a service that allows users to rent customizable
virtual hardware in the cloud. The user can choose from a large variety of virtual hardware
configurations such as CPUs, memory, storage, network speed including GPUs (for machine
learning) and cluster instances for high-performance computing.

EC2 instances are deployed either by using the AWS console, which is a Web portal for
accessing AWS services, or by using the Web services API available for several programming
languages.

EC2 also provides the capability of saving a specific running instance as image (Amazon
Machine Image (AMI). When you create and configure an EC2 instance, you might install
software, set up your code, and adjust settings. If you want the same setup again in the future,
instead of repeating all the steps, you can save that running instance as an AMI.

Amazon S3

Amazon S3 (Simple Storage Service) provides persistent, on-demand storage in the cloud.
S3 is organized into buckets; these are container of objects that are stored in binary form and
can be enriched with attributes. Users can store objects of any size, from simple fi les to entire
disk images and have them accessible from everywhere.

1.4.2 Google AppEngine

Google AppEngine is a scalable runtime environment mostly devoted to executing Web


applications. These take advantage of the large computing infrastructure of Google to
dynamically scale as the demand varies over time.

AppEngine provides both a secure execution environment and a collection of services that
simplify the development of Web [Link] services include: in-memory caching,
scalable data store, job queues, messaging, and cron tasks.

DEPARTMENT OF CSE, MIT MYSORE 18


M23BCS505B

Developers can build and test applications on their own machine by using the AppEngine SDK,
which replicates the production runtime environment, and helps test and profile applications.
Once development is complete developers can easily migrate their application to AppEngine,
and make it available to the world. The languages currently supported are Python, Java, and
Go.

1.4.3 Microsoft Azure


Microsoft Azure is a Cloud operating system and a platform for developing applications in the
Cloud. It provides a scalable runtime environment for Web applications and distributed
applications in general.

In Azure, applications are built using roles:

• Web Role: Used to host web applications. It handles user interactions, like displaying
web pages or processing requests from a browser.
• Worker Role: A background processor. It runs tasks that don’t need direct user
interaction, such as data processing, calculations, or sending notifications.
• Virtual Machine (VM) Role: A fully customizable virtual server. Developers can
install their own operating system and software, giving them complete control over the
environment.

Web role = front-end logic, Worker role = background logic, and VM role = full custom
environment.

Besides roles, Azure provides a set of additional services that complement application
execution such as support for storage (relational data and blobs), networking, caching, content
delivery, and others.

1.4.4 Hadoop
Apache Hadoop is an open source framework that is suited for processing large data sets on
commodity hardware.

Hadoop is an implementation of MapReduce, an application programming model developed


by Google, which provides two fundamental operations for data processing: map and reduce.

Map - transforms and synthesizes the input data provided by the user.

Reduce - aggregates the output obtained by the map operations.

Hadoop provides the runtime environment, and developers need only to provide the input data,
and specify the map and reduce functions that need to be executed.

Yahoo! played a key role in the growth of Apache Hadoop. It sponsored the project and
worked to make Hadoop strong enough for enterprise use.

DEPARTMENT OF CSE, MIT MYSORE 19


M23BCS505B

1.4.5 [Link] and [Link]


[Link] is a Cloud computing platform for developing social enterprise applications. The
platform is the basis of [Link]—a Software-as-a-Service solution for customer
relationship management.
[Link] allows creating applications by composing ready-to-use blocks: a complete set of
components supporting all the activities of an enterprise are available.
It is also possible to develop your1 own components or integrate those available in
AppExchange into your applications.
The platform provides complete support for developing applications: from the design of the
data layout, to the definition of business rules and workflows, and the definition of the user
interface.
[CRM is a strategy and a set of tools/software used by companies to manage their interactions
with customers.]

1.4.6 Manjrasoft Aneka


Aneka is a Cloud application platform that helps developers quickly build and run scalable
applications that can be deployed on heterogeneous hardware (clusters, networked desktop
computers, and Cloud resources).
Developers can choose different abstractions to design their application: tasks, distributed
threads, and map-reduce.
Once applications are written using these abstractions, they run on Aneka’s runtime
environment.
This runtime is service-oriented, meaning it is modular and allows new features or services to
be plugged in easily. Additional resources can be dynamically integrated on demand.
Services manage most of the activities happening at runtime: scheduling, execution,
accounting, billing, storage, and quality of service.

DEPARTMENT OF CSE, MIT MYSORE 20

You might also like