0% found this document useful (0 votes)
4 views15 pages

Unit I

The document provides an overview of cloud computing, detailing its definition, reference model, key actors, characteristics, advantages, and disadvantages. It discusses historical developments leading to cloud computing, including client/server and peer-to-peer models, and outlines the building blocks of cloud environments, including SaaS, PaaS, and IaaS. Additionally, it highlights major cloud platforms such as AWS, Google AppEngine, and Microsoft Azure, along with the benefits and operational aspects of cloud applications.
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)
4 views15 pages

Unit I

The document provides an overview of cloud computing, detailing its definition, reference model, key actors, characteristics, advantages, and disadvantages. It discusses historical developments leading to cloud computing, including client/server and peer-to-peer models, and outlines the building blocks of cloud environments, including SaaS, PaaS, and IaaS. Additionally, it highlights major cloud platforms such as AWS, Google AppEngine, and Microsoft Azure, along with the benefits and operational aspects of cloud applications.
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
You are on page 1/ 15

UNIT I

The vision of cloud computing - The cloud computing reference model -


Characteristics and benefits - Challenges ahead - Historical developments - Distributed
systems -Virtualization - Building cloud computing environments - Application
development - Infrastructure and system development - Computing platforms and
technologies. Parallel vs. distributed computing - Elements of parallel computing -
Hardware architectures for parallel processing Approaches to parallel programming - Laws
of caution.

Cloud computing

Definition:

The cloud is a large group of interconnected computers. These computers can be personal
computers or network servers; they can be public or private.
Cloud computing is a technology that uses the internet and central remote servers to maintain
data and applications.
Eg: Yahoo email or Gmail etc

THE CLOUD COMPUTING REFERENCE MODEL

Fig 1: The Cloud Computing Reference Model


The NIST cloud computing reference architecture Fig 1 defines five major actors:
1. Cloud consumer
2. Cloud provider
3. Cloud carrier
4. Cloud auditor and
5. Cloud broker.
Each actor is an entity (a person or an organization) that participates in a transaction or
process and/or performs tasks in cloud computing.
Actors in Cloud Computing

Table 1: Actors in Cloud Computing

Interactions among the actors:


A cloud consumer may request cloud services from a cloud provider directly or via a cloud
broker. A cloud auditor conducts independent audits and may contact the others to collect
necessary information.

Fig 2: Interaction among Actors

Cloud carriers provide the connectivity and transport of cloud services from cloud providers
to cloud consumers.
A cloud provider participates in and arranges for two unique service level agreements
(SLAs), one with a cloud carrier (e.g. SLA2) and one with a cloud consumer (e.g. SLA1).

A cloud provider arranges service level agreements (SLAs) with encrypted connections to
ensure the cloud services are consumed at a consistent level according to the contractual
obligations with the cloud consumers.

In this case, the provider may specify its requirements on capability, flexibility and
functionality in SLA2 in order to provide essential requirements in SLA1.

Fig 3 Usage Scenario for Cloud Carriers


A cloud service, a cloud auditor conducts independent assessments of the operation and
security of
the cloud service implementation. The audit may involve interactions with both the Cloud
Consumer and the Cloud Provider.

Figure 5 – Usage Scenario for Cloud Auditor

CHARACTERISTICS OF CLOUD COMPUTING

1. Cloud computing is user-centric.


Once users are connected to the cloud, whatever is available (stored) in cloud as documents,
messages, images, applications, it becomes users own. Users can also share it with others.

2. Cloud computing is task-centric.


It focusing on the application for users on what users need to done and how the application
can do it for users. Eg collage, Animation, Movie in Google Photos

3. Cloud computing is powerful.


Connecting hundreds or thousands of computers together in a cloud creates a wealth of
computing power impossible with a single desktop PC.

4. Cloud computing is accessible.


Data is stored in the cloud; users can instantly retrieve more information from multiple
repositories. You’re not limited to a single source of data.

5. Cloud computing is intelligent.


With all the various data stored on the computers in a cloud, data mining and analysis are
necessary to access that information in an intelligent manner.

6. Cloud computing is programmable.


Many of the tasks necessary with cloud computing must be automated.

For example, cloud must be replicated on other computers in the cloud. If that one computer
goes offline, the cloud’s programming automatically redistributes that computer’s data to a
new computer in the cloud.
Examples of cloud computing applications: Google Docs & Spreadsheets, Google Calendar,
Gmail, Picasa.

PROS AND CONS OF CLOUD COMPUTING

Advantages

• Lower-Cost Computers for Users


• Improved Performance
• Lower IT Infrastructure Costs
• Fewer Maintenance Issues
• Lower Software Costs
• Instant Software Updates
• Increased Computing Power
• Unlimited Storage Capacity
• Increased Data Safety
• Improved Compatibility Between Operating Systems
• Improved Document Format Compatibility
• Easier Group Collaboration
• Universal Access to Documents
• Latest Version Availability
• Removes the Tether to Specific Devices
Dis-Advantages
● Requires a Constant Internet Connection
● Doesn’t Work Well with Low-Speed Connections
● Can Be Slow
● Features Might Be Limited
● Stored Data Might Not Be Secure
● Problem will arise If Data loss occurs

HISTORICAL DEVELOPMENTS

Client/Server Computing: Centralized Applications and Storage

In client/server model all the software applications, data, and the control resided on huge
mainframe computers, known as servers.

If a user wanted to access specific data or run a program, he had to connect to the
mainframe, gain appropriate access, and then do his business.

Users connected to the server via a computer terminal, called a workstation or client.

Drawbacks in client /server Model

Even on a mainframe computer, processing power is limited.

Access was not immediate nor could two users access the same data at the same
time. When multiple people are sharing a single computer, you have to wait for your
turn.

There isn’t always immediate access in a client/server environment.

So the client/server model, while providing similar centralized storage, differed from cloud
computing in that it did not have a user-centric focus. It was not a user-enabling
environment.
Peer-to-Peer Computing: Sharing Resources

P2P computing defines a network architecture in which each computer has equivalent
capabilities and responsibilities.

In the P2P environment, every computer is a client and a server; there are no masters and
slaves.

P2P enables direct exchange of resources and services.

There is no need for a central server, because any computer can function in that capacity
when called on to do so.

P2P was a decentralizing concept. Control is decentralized, with all computers functioning
as equals. Content is also dispersed among the various peer computers.

Distributed Computing: Providing More Computing Power

One of the subsets of the P2P model.

distributed computing, where idle PCs across a network or Internet are tapped to provide
computing power for large, processor-intensive projects.

Collaborative Computing: Working as a Group

Multiple users to work simultaneously on the same computer-based project called


collaborative computing.

The goal was to enable multiple users to collaborate on group projects online, in real time.

To collaborate on any project, users must first be able to talk to one another.

Most collaboration systems offer the complete range of audio/video options, for full-
featured multiple-user video conferencing.

In addition, users must be able to share files and have multiple users work on the same
document simultaneously.

Real-time white boarding is also common, especially in corporate and education


environments.

Cloud Computing: The Next Step in Collaboration


With the growth of the Internet, there was no need to limit group collaboration to a single
enterprise’s network environment.

Users from multiple locations within a corporation, and from multiple organizations,
desired to collaborate on projects that crossed company and geographic boundaries.

To do this, projects had to be housed in the “cloud” of the Internet, and accessed from any
Internet-enabled location.

DISTRIBUTED SYSTEM

A distributed system contains multiple nodes that are physically separate but linked together
using the network.
All the nodes in this system communicate with each other and handle processes in
tandem. Each of these nodes contains a small part of the distributed operating system
software.

Fig 6: Distributed System


Types of Distributed Systems

The nodes in the distributed systems can be arranged in the form of client/server systems or
peer to peer systems. Details about these are as follows:

Client/Server Systems
In client server systems, the client requests a resource and the server provides that resource.
A server may serve multiple clients at the same time while a client is in contact with only
one server.
Both the client and server usually communicate via a computer network and so they are a
part of distributed systems.

Peer to Peer Systems


The peer to peer systems contains nodes that are equal participants in data sharing.
All the tasks are equally divided between all the nodes. The nodes interact with each other
as required as share resources. This is done with the help of a network.
Advantages of Distributed Systems
● can easily share data with other nodes.
● More nodes can easily be added to the distributed system i.e. it can be scaled as
required.
● Failure of one node does not lead to the failure of the entire distributed system. Other
nodes can still communicate with each other.
● Resources like printers can be shared with multiple nodes rather than being restricted
to just one.
Disadvantages of Distributed Systems
● It is difficult to provide adequate security in distributed systems because the nodes
as well as the connections need to be secured.
● Some messages and data can be lost in the network while moving from one node to
another.
● The database connected to the distributed systems is quite complicated and difficult
to handle as compared to a single user system.
● Overloading may occur in the network if all the nodes of the distributed system try
to send data at once.

VIRTUALIZATION

Virtualization is a technique, which allows to share single physical instance of an


application or resource among multiple organizations or tenants (customers).
Creating a virtual machine over existing operating system and hardware is referred as
Hardware Virtualization. Virtual Machines provide an environment that is logically
separated from the underlying hardware.
The machine on which the virtual machine is created is known as host machine and virtual
machine is referred as a guest machine. This virtual machine is managed by a software or
firmware, which is known as hypervisor.

Hypervisor
The hypervisor is a firmware or low-level program that acts as a Virtual Machine Manager.

There are two types of hypervisor:


Type 1 hypervisor executes on bare system.
Eg LynxSecure, RTS Hypervisor, Oracle VM, Sun xVM Server, VirtualLogic VLX.
Fig 7: Type 1 Hypervisor
The type1 hypervisor does not have any host operating system because they are installed on
a bare system.
Type 2 hypervisor is a software interface that emulates the devices with which a system
normally interacts.
Eg Containers, KVM, Microsoft Hyper V, VMWare Fusion, Virtual Server 2005 R2,
Windows Virtual PC and VMWare workstation 6.0.

Fig 8: Type 2 Hypervisor

BUILDING CLOUD COMPUTING ENVIRONMENTS

Fig 9: Building Cloud Computing Environment

Cloud Computing Services


The three major Cloud Computing Offerings are
● Software as a Service (SaaS)
● Platform as a Service (PaaS)
● Infrastructure as a Service (IaaS)
SaaS (Software as a Service)
SaaS or software as a service is a software distribution model in which applications are
hosted by a vendor or service provider and made available to customers over a network
(internet). PaaS (Platform as a Service)
Platform as a service, is referred as PaaS, it provides a platform and environment to allow
developers to build applications and services.
This service is hosted in the cloud and accessed by the users via internet.
IaaS (Infrastructure as a Service)
IaaS (Infrastructure as A Service) is one of the fundamental service model of cloud
computing alongside PaaS (Platform as a Service).
It provides access to computing resources in a virtualized environment “the cloud” on
internet. It provides computing infrastructure like virtual server space, network connections,
bandwidth, load balancers and IP addresses.
The pool of hardware resource is extracted from multiple servers and networks usually
distributed across numerous data centres.
This provides redundancy and reliability to IaaS.
(PaaS) that are available for the users to build and host an application are:
Amazon Web Services: AWS offers virtual compute, storage, networking & complete
computing stacks.
It is known for its on-demand services namely Elastic Compute Cloud (EC2) and Simple
Storage Service (S3).

Google AppEngine: Launched in 2008, it provides applications (SaaS) and raw hardware
(IaaS).

App Engine managed infrastructure, provides a development platform to create apps,


leveraging Google's infrastructure as a hosting platform.

Microsoft Azure: It is also a scalable runtime environment for web & distributed
applications.
it provides additional services such as support for storage (relational data & blobs),
networking, caching, content delivery & others.

CLOUD APPLICATION DEVELOPMENT

Cloud application, or cloud app, is a software program where cloud-based and local
components work together. This model relies on remote servers for processing logic that is
accessed through a web browser with a continual internet connection.
Cloud application servers typically are located in a remote data centre operated by a third
party cloud services infrastructure provider. Cloud-based application tasks may encompass
email, file storage and sharing, order entry, inventory management, word processing,
customer relationship management (CRM), data collection, or financial accounting features.
Benefits of cloud apps

Fast response to business needs. Cloud applications can be updated, tested and deployed
quickly, providing enterprises with fast time to market and agility. This speed can lead to
culture shifts in business operations.
Simplified operation. Infrastructure management can be outsourced to third-party cloud
providers.
Instant scalability. As demand rises or falls, available capacity can be adjusted.
API use. Third-party data sources and storage services can be accessed with an application
programming interface (API). Cloud applications can be kept smaller by using APIs to hand
data to applications or API-based back-end services for processing or analytics
computations, with the results handed back to the cloud application. Vetted APIs impose
passive consistency that can speed development and yield predictable results.
Gradual adoption. Refactoring legacy, on-premises applications to a cloud architecture in
steps, allows components to be implemented on a gradual basis.
Reduced costs. The size and scale of data centres run by major cloud infrastructure and
service providers, along with competition among providers, has led to lower prices. Cloud-
based applications can be less expensive to operate and maintain than equivalents on-
premises installation. Improved data sharing and security. Data stored on cloud services
is instantly available to authorized users. Due to their massive scale, cloud providers can hire
world-class security experts and implement infrastructure security measures that typically
only large enterprises can obtain. Centralized data managed by IT operations personnel is
more easily backed up on a regular schedule and restored should disaster recovery become
necessary.

How cloud apps work


Data is stored and compute cycles occur in a remote data centre typically operated by a third-
party company. A back end ensures uptime, security and integration and supports multiple
access methods.
Cloud applications provide quick responsiveness and don't need to permanently reside on the
local device. They can function offline, but can be updated online.
While under constant control, cloud applications don't always consume storage space on a
computer or communications device. Assuming a reasonably fast internet connection, a well-
written cloud application offers all the interactivity of a desktop application, along with the
portability of a web application.

CLOUD COMPUTING PLATFORMS AND TECHNOLOGIES


Fig 10: Cloud Computing Top Platforms

Amazon Web Services (AWS) –


● AWS provides different wide-ranging clouds IaaS services, which ranges from
virtual compute, storage, and networking to complete computing stacks.
● AWS is well known for its storage and compute on demand services, named as
Elastic Compute Cloud (EC2) and Simple Storage Service (S3).
● EC2 offers customizable virtual hardware to the end user which can be utilized as
the base infrastructure for deploying computing systems on the cloud.
● S3 is well ordered into buckets which contain objects that are stored in binary form
and can be grown with attributes. End users can store objects of any size, from basic
file to full disk images and have them retrieval from anywhere.
● In addition, EC2 and S3, a wide range of services can be leveraged to build virtual
computing systems including: networking support, caching system, DNS, database
support, and others.

Google AppEngine
● Google AppEngine is a scalable runtime environment frequently dedicated to
executing web applications.
● These utilize the benefits of the large computing infrastructure of Google to
dynamically scale as per the demand.
● AppEngine offers both a secure execution environment and a collection of which
simplifies the development of scalable and high-performance Web applications.
● These services include: in-memory caching, scalable data store, job queues,
messaging, and corn tasks.
● Currently, the supported programming languages are Python, Java, and Go.

Microsoft Azure–
● Microsoft Azure is a Cloud operating system and a platform in which users can
develop the applications in the cloud.
● Azure provides a set of services that support storage, networking, caching, content
delivery, and others.

Hadoop
● Apache Hadoop is an open source framework that is appropriate for processing large
data sets on commodity hardware.
● Hadoop is an implementation of MapReduce, an application programming model
which is developed by Google.
● This model provides two fundamental operations for data processing: map and
reduce.
Force.com and Salesforce.com –
● Force.com is a Cloud computing platform at which users can develop social
enterprise applications.
● The platform is the basis of SalesForce.com – a Software-as-a-Service solution for
customer relationship management.
● Force.com allows creating applications by composing ready-to-use blocks: a
complete set of components supporting all the activities of an enterprise are
available.
● From the design of the data layout to the definition of business rules and user
interface is provided by Force.com as a support.
● This platform is completely hostel in the Cloud, and provides complete access to its
functionalities, and those implemented in the hosted applications through Web
services technologies.

Difference between Parallel Computing and Distributed


Computing Parallel Computing:
In parallel computing multiple processors performs multiple tasks assigned to them
simultaneously.
Memory in parallel systems can either be shared or distributed.
Parallel computing provides concurrency and saves time and money.
Distributed Computing:
In distributed computing we have multiple autonomous computers which seem to the user as
a single system.
In distributed systems there is no shared memory and computers communicate with each
other through message passing.
In distributed computing a single task is divided among different computers.

Table 3: Difference between Parallel Computing and Distributed Computing


S.NO PARALLEL DISTRIBUTED
COMPUTING COMPUTING

1 Many operations are System components are located


performed simultaneously at different locations

2 Single computer is required Uses multiple computers

3 Multiple processors perform Multiple computers perform


multiple operations multiple operations

4 It may have shared or It have only distributed


distributed memory memory

5 Processors communicate Computers communicate with


with each other through bus each other through message
passing.

6 Improves the system Improves system scalability,


performance fault tolerance and resource
sharing capabilities

ELEMENTS OF PARALLEL COMPUTING

The primary goal of parallel computing is to increase the computational power available to
your essential applications.
Typically, This infrastructure is where the set of processors are present on a server, or
separate servers are connected to each other to solve a computational problem.
In the earliest computer software, that executes a single instruction (having a single Central
Processing Unit (CPU)) at a time that has written for serial computation. A Problem is broken
down into multiple series of instructions, and that Instructions executed one after another.
Only one computational instruction complete at a time.
Main Reasons to use Parallel Computing is that:
1. Save time and money.
2. Solve larger problems.
3. Provide concurrency.
4. Multiple execution units
Types of parallel computing Bit-level parallelism
In the Bit-level parallelism every task is running on the processor level and depends on
processor word size (32-bit, 64-bit, etc.) and we need to divide the maximum size of
instruction into multiple series of instructions in the tasks. For Example, if we want to do an
operation on 16-bit numbers in the 8-bit processor, then we would require dividing the
process into two 8 bit operations.
Instruction-level parallelism (ILP)
Instruction-level parallelism (ILP) is running on the hardware level (dynamic parallelism),
and it includes how many instructions executed simultaneously in a single CPU clock cycle.
Data Parallelism
The multiprocessor system can execute a single set of instructions (SIMD), data parallelism
achieved when several processors simultaneously perform the same task on the separate
section of the distributed data. Task Parallelism
Task parallelism is the parallelism in which tasks are splitting up between the processors to
perform at once.
Hardware architecture of parallel computing –
The hardware architecture of parallel computing is disturbed along the following categories
as given below :
1. Single-instruction, single-data (SISD) systems
2. Single-instruction, multiple-data (SIMD) systems
3. Multiple-instruction, single-data (MISD) systems
4. Multiple-instruction, multiple-data (MIMD) systems

You might also like