0% found this document useful (0 votes)
8 views92 pages

CC Unit1

The document outlines a course on Cloud Computing, detailing its theoretical framework and practical applications across five units. Key topics include the introduction to cloud computing, virtualization, cloud architecture, the Aneka cloud application platform, and industry cloud platforms like AWS and Azure. The course emphasizes the evolution of cloud computing technologies and their benefits, such as on-demand access and cost efficiency.

Uploaded by

joelraju2005
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)
8 views92 pages

CC Unit1

The document outlines a course on Cloud Computing, detailing its theoretical framework and practical applications across five units. Key topics include the introduction to cloud computing, virtualization, cloud architecture, the Aneka cloud application platform, and industry cloud platforms like AWS and Azure. The course emphasizes the evolution of cloud computing technologies and their benefits, such as on-demand access and cost efficiency.

Uploaded by

joelraju2005
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

CA6CRT17 - CLOUD COMPUTING (Core)

Theory:4 hrs. per week


Credits:4
Unit 1: (14 hrs.) Introduction: Cloud Computing at
a Glance, Historical Developments, Building Cloud
Computing Environments, Computing Platforms
and Technologies, Principles of Parallel and
Distributed Computing: Eras of Computing, Parallel
vs. Distributed Computing, Elements of Parallel
Computing, Elements of Distributed Computing.
Unit 2: (14 hrs.) Virtualization: Introduction,
Virtualization and Cloud Computing, Pros and Cons
of Virtualization, Technology Examples.
Unit 3: (14 hrs.) Cloud Computing Architecture
:Introduction, Cloud Reference Model, Types of
Clouds, Economics of the Cloud, Open
Challenges.
Unit 4: (16 hrs.) Aneka: Cloud Application Platform:
Framework Overview, Anatomy of the Aneka Container,
Building Aneka Clouds, Cloud Programming and
Management, Data Intensive Computing: Map-Reduce
Programming - What is Data-Intensive Computing?,
Technologies for Data-Intensive Computing, Aneka
MapReduce Programming.
Unit 5: (16 hrs.) Cloud Platforms in Industry: Amazon
Web Services, Google AppEngine, Microsoft Azure,
Cloud Applications: Scientific Applications, Business and
Consumer Applications.
Book of Study: 1. Rajkumar Buyya, Christian
Vecchiola, S ThamaraiSelvi- Mastering Cloud
Computing, Tata McGraw Hill Publications.
References: 1. Kumar Saurabha, “Cloud Computing “
Wiley Publication Krutz ,Vines “Cloud Security”.
Wiley Publication.
2. A Srinivasan & J. Suresh “ Cloud Computing : A
Practical
Approach for learning and Implementation “ , First edition
,Pearson
Cloud Computing

1
• Unit 1.
• Introduction.
□ Cloud Computing at a Glance
□ Historical Developments
□ Building Cloud Computing Environments
□ Computing Platforms and Technologies,
Principles of Parallel and Distributed Computing
□ Eras of Computing,
□ Parallel vs. Distributed Computing
□ Elements of Parallel Computing,
□ Elements of Distributed Computing.

2
Introduction

• Computing is being transformed to a model


consisting of services that are commoditized
and delivered in a manner similar to utilities
such as water, electricity, gas and telephony.
• In such a model , users access services
based on their requirements regardless of
where they are hosted.
• Cloud computing is the most recent
emerging paradigm promising to turn the
vision of “computing utilities” in to a
reality. 4
• It is based on the concept of dynamic provisioning
• 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, and deploy and configure services
for an application in hours, growing and shrinking
the infrastructure serving its application according
to the demand , and paying only for the time
these resources have been used.

5
• Computing services will be readily available on
demand , like other utility services such as
water, electricity, telephone, and gas available
in today’s society.
• Users (consumers)need to pay providers only
when they access the computing services.
• Consumers no longer need to invest heavily,
or encounter difficulties in building and
maintaining complex IT infrastructure.

7
• In this model , users access services based on their
requirements without regard to where the services are
hosted. This model has been referred to as utility
computing recently (since 2007) as Cloud Computing.
• Cloud Computing can be classified as a new paradigm
for the dynamic provisioning of computing services
supported by
state-of-the-art data centers employing virtualization
technologies for consolidation and effective utilization of
resources.
• Cloud computing allows renting infrastructure ,
runtime environments, and services on pay per-
use basis.

• End users leveraging cloud computing services can


access their documents and data at anytime, anywhere
8

and from any device connected to the internet.


• Cloud computing turns IT services into utilities.
• Web 2.0 technologies play a central role in making
cloud computing an attractive opportunity for
building computing systems.
• They transformed the internet into a rich
application and service delivery platform ,mature
enough to serve complex needs.
• Service – orientation allows cloud computing to
deliver its capabilities with familiar abstractions
while virtualization confers cloud computing the
necessary degree of customization, control and
flexibility for building production and enterprise
systems.
10
• Besides being an extremely flexible environment for
building new systems and applications , cloud computing
also provides an opportunity for integrating additional
capacity ,or new features , into existing systems.
• The use of dynamically provisioned IT resources
constitutes more attractive opportunity than buying
additional infrastructure and software , whose sizing can
be difficult to estimate and needs are limited in time. This
is one of the most important advantages of cloud
computing which made it a popular phenomenon.

11
The Vision of Cloud Computing
• Cloud computing allows anyone having a
credit card to provision virtual hardware ,
runtime environments, and services.

13
The vision of Cloud computing
• Cloud computing allows anyone having a credit card to
provision virtual hardware , runtime environments and
services.
• 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.
□ The capability of Web-based access to documents and
their processing using sophisticated applications is one
of the appealing factors for end-users. 12
Defining a Cloud
• Cloud computing has become a popular buzzword
and it has been widely used to refer to different
technologies , services and concepts
• Cloud computing always associated with
□ Virtualized infrastructure (hardware on demand)
□ Utility computing
□ IT outsourcing
□ Platform and software as a service

14
• cloud computing refers to the internet-centric way of
doing computing.
• 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.

16
• Definition given by Armbrust :
“Cloud computing refers to both the
applications delivered as a service over the
internet, and the hardware and system
software in the datacenters that provide those
services”

17
• This definition describes cloud computing as a
phenomenon touching on the entire stack :
from the underlying hardware to the high level
software services and applications.
• It introduces the concept of
everything-as-a-service – XaaS .

18
• Another aspect of cloud computing is its
utility-oriented approach. Cloud computing
focuses on delivering services with a given
pricing model : in most of the cases a
“pay-per-use” strategy. It makes possible to
access online storage , to rent virtual
hardware , or to use development platforms
and pay only for their effective usage with no
or minimal upfront usage.

20
• Rajkumar Buyya definied
“A cloud is 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.”

21
A closer look
1. Large enterprises can offload some of their
activities to cloud based systems.
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..

22
2. Small enterprises and start-ups can afford to
translate into business results their ideas more
quickly without excessive upfront costs.

Animoto is a company that creates videos out of images .


The process involves considerable amount of storage and
backend processing. Animoto doesnot own a single
server. It fully depend on Amazon web Services, which is
sized on demand according to the workload to be
processed. Workload can vary a lot (in one week scaled
from 70 to 8500 servers)and requires instant scalability.
Upfront investment is not an effective solution.

23
3. System developers can concentrate on the
business logic rather than dealing with the
complexity of infrastructure management
and scalability.
Little Fluffy Toys is a London company has
developed a widget that provide users with
information about nearby rental bicycle
services. The company managed to back the
widgets computing needs on Google
AppEngine and be on market in one week .

24
4. 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 to take a picture with smart


phone , editing the same picture on laptop
, show updated on tablet.

This process is completely transparent to the


users who do not have to set up cables and
connect these devices with each other.

25
Characteristics and benefits
• Cloud computing has some interesting
characteristics that bring benefits to both cloud
service consumers (CSCs) and cloud service
providers (CSPs). They are
1. No upfront commitments
2. On demand access
3. Nice pricing
4. Simplified application acceleration and scalability
5. Efficient resource allocation
6. Energy efficiency
7. Seamless creation and the use of third-party
services.

26
Cloud computing reference model

• A fundamental characteristic of cloud


computing is the capability of delivering on
demand a variety of IT services.
• It is possible to classify cloud computing
services offerings into 3 major categories.

32
1. Software as a Service (SaaS)
2. Platform as a Service (PaaS)

3. Infrastructure as a Service (IaaS)

33
34
• At the base of the stack ,Infrastructure –as-a –Service
solutions deliver infrastructure on demand, in the form
of virtual hardware, storage , and networking.

□ Virtual hardware – is utilized to provide compute on


demand in the form of virtual machine instances. These
are created on users request on the providers
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.
□ Virtual networking – identifies the collection of services
that manage the networking among virtual instances and
their connectivity towards the internet or private
networks.
35
• Platform–as–a-Service solutions are the next step in
the stack .
□ They deliver scalable and elastic runtime environments
on demand that host the execution of applications.
□ These services are backed by a core middleware
platform that is responsible for creating the abstract
environment where applications are deployed and
executed.

□ 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 providers APIs and libraries.

36
• At the top of the stack, Software-as-a-Service.

□ SaaS- solutions provide applications and services on


demand.

□ Most of the common functionalities of desktop


applications- such as office automation , document
management , photo editing, and customer relationship
management (CRM) software – are replicated on the
providers infrastructure, made more scalable, and
accessible through a browser on demand.

□ SaaS layer is also the area of social networking


websites, which leverage cloud – based infrastructures
to sustain the load generated by their popularity.

37
• Each layer provides different services to users:
1. IaaS- services are used to develop scalable web
sites or for background processing.

2. PaaS – solutions provide scalable programming


platforms for developing applications, and are
more appropriate when new systems have to be
developed.
3. SaaS solutions target mostly end users, who
want to benefit from the elastic scalability of
the Cloud without doing any software
development, installation, configuration, and
maintenance.

38
Historical developments
• In tracking the historical evolution , 5 core
technologies played important role
1. Distributed systems
2. Virtualization
3. Web 2.0
4. Service oriented computing
5. Utility computing.

39
Distributed systems

• Clouds are essentially large distributed


computing facilities that make available their
services to third parties on demand.
• By Tanenbaum
“A distributed system is a collection of
independent computers that appears to its
users as a single coherent system”

40
• Other 3 major milestones that led to cloud
computing is :
1. Mainframe computing
2. Cluster computing

3. Grid computing

41
1. Mainframes
□ This is the first example of large computational
facility leveraging multiple processing units.
□ They are powerful, highly reliable computers
specialised for large data movement and massive
I/O operations.
□ They are mostly used by large organizations for bulk
data processing.
□ They provide large computational power by using
multiple processors which were presented as a
single entity to users.
42
□ Batch processing is the main application of
mainframes.
□ The popularity have reduced but still in use for
transaction processing (i.e., online banking,
airline ticket booking, supermarket and telcos
and government services)
• Clusters
□ Cluster Computing started as a low cost
alternative to use of mainframes and
supercomputers.
□ In 1980 clusters became standard technology
for parallel and high performance computing.
□ Being built by commodity machines they are
cheaper than mainframes.
□ Cluster technology contributed to the evolution
of tools and framework , they include condor,
parallel virtual machine (PVM), message
passing interface (MPI).

43
• Grids
□ Apperaed in early 1990s

□ It proposed new approach to access large


computational power , huge storage facilities,
and variety of services.
□ Users can “consume” resources in the same
way as they use other facilities such as power,
gas, and water.

44
• Virtualization
□ Virtualization is another core technology for cloud
computing.

□ It encompasses a collection of solutions allowing the


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

□ 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 user.
□ Different virtualizations are
1. Hardware virtualization
2. Storage virtualization
3. Network virtualization
45
□ Hardware virtualization allows simulating the
hardware interface expected by an operating
system.
□ Hardware virtualization allows the co-existence
of different software stacks on top of the same
hardware. These stacks are contained inside
‘virtual machine instances’, which operate
completely isolated from each other.
□ Storage Virtualization is the base technology
that enables cloud computing solutions
delivering virtual server on demands, such as
Amazon EC2, RightScale, Vmware vCloud, and
others.
46
• Virtualization technologies are also used to
replicate runtime environments for programs.
In the case of ‘process virtual machine’ , 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’ .

47
Web 2.0
□ The web is the primary interface through
which cloud computing deliver its services.
□ 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.

48
Web 2.0 basically refers to the transition from static
HTML Web pages to a more dynamic Web that is
more organized and based on serving Web
applications to users.

49
1. Web 2.0 brings interactivity and flexibility into web pages,
which provide enhanced user experience by gaining web-
based access to all the functions that are normally found
in desktop applications.
2. Web 2.0 applications are extremely dynamic : they
improve continuously and new updates and features are
integrated at a constant rate, by following the usage
trend of the community.
3. Loose coupling is another fundamental property. New
applications can be “synthesized” simply by composing
existing services and integrating them together, thus
providing added value.

4. Web 2.0 applications aim to leverage the long tail of


internet users by making themselves available to
everyone either in terms of media accessibility or cost.
50
•Examples of web 2.0 applications are
Google Documents
Google Maps
Flicker
Facebook
Twitter
Youtube
[Link]
Blogger
Wikipedia
.

51
• Service-oriented computing(SOC)
• A service is an abstraction representing a self-describing
and platform agnostic component that can perform any
function. This can be anything from simple function to a
complex business process.

• Any piece of code that performs a task can be turned


into a service and expose its functionalities through a
network accessible protocol.

• A service is supposed to be loosely coupled ,


reusable , programming independent and location
transparent.

• SOC introduces two important concepts, which


are fundamental to cloud computing.
□ Quality of Service (QoS)
□ Software as a Service (SaaS) 55
• QoS
□ A set of functional and non-functional
attributes that can be used to evaluate the
behaviour of a service from different
perspectives.
□ These can be response time, security
attributes, transactional integrity ,
reliability, scalability and availability.

56
• SaaS

□ These deliver software service based solutions


across the wide area network from a central data
center and make them available on subscription
or rental basis.

□ The ASP(application service providers) is


responsible for maintaining the infrastructure
and making available the application , and the
client is free from maintenance cost and difficult
upgrades.

57
• Utility oriented computing
□ Its a model in which resources such as
storage, compute power, applications, and
infrastructure are packaged and offered on a
pay-per-use basis.
□ The idea of providing computing as a utility
like natural gas, water, power, and telephone
connection has long history but has reality
today with the advent of cloud computing.

58
Building cloud computing environments

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.
• With the diffusion of web 2.0 technologies , the
web has become platform for developing rich
and complex applicatons.
• Another class of application is resourse-
intensive applications.
• This can be either data intensive or compute
intensive applications.

59
2. Infrastructure and system development
• Distributed computing is a foundational
model for cloud computing because cloud
systems are distributed systems.
• Web 2.0 technologies constitute the
interface through which cloud computing
services are delivered, managed, and
provisioned.
• Virtualization is the core feature of the
infrastructure used by cloud providers.

60
Computing platforms and technologies
1. Amazon Web Services (AWS)
□ Offers cloud IaaS services, ranging from virtual
compute, storage and networking.
□ Famous for compute and storage on demand
services namely Elastic Compute Cloud (EC2) and
Simple Storage Service (S3).
□ EC2 provides users with customizable virtual
hardware that can be used as the base
infrastructure for deploying computing systems
on the cloud.
□ S3 delivers persistent storage on demand. Users can
store objects of any size , from simple files to entire
disk images and have them accessible from
everywhere.
□ Amazon Virtual Private Cloud (VPC)
□ Amazon CloudFront
□ Amazon Relational Database Services (RDS)

61
2. Google AppEngine
□ App Engine is a fully managed, server less platform
for developing and hosting web applications at
scale. we can choose from several popular
languages, libraries, and frameworks to develop your
apps, then let App Engine take care of provisioning
servers and scaling your app instances based on
demand.
□ Is a scalable runtime environment devote to
executing Web applications.
□ AppEngine provides both a secure execution
environment and a collection of services that
simplify the development of scalable and high
performance web applications. 62
□ Developers can build and test applications
on their on machines 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 supposed are Python,
Java, and Go.
3. 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.

□ Applications are organized around the concept of


roles.
1. Web role: designed to host a web application.
2. Worker role: used to perform workload processing.
3. Virtual machine role: provides a virtual environment

63
4. Hadoop
□ Apache Hadoop – an open source framework
suited for processing large data set.
□ It 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.
64
5. [Link] and [Link]

□ Force .com is a cloud computing platform for


developing social enterprise applications.

□ The platform is the basis of [Link] – a


SaaS solution for customer relationship
management.

□ 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.

65
6. Manjrasoft Aneka
□ Cloud application platform for rapid creation of
scalable applications and their deployment on various
types of clouds in a seamless and elastic manner.

□ It supports a collection programming abstractions for


developing applications and a distributed runtime
environment that can be deployed on heterogeneous
hardware .

□ Developers can choose different abstractions to design


their application: tasks, threads, and mapreduce.

66
Principles of Parallel and Distributed computing

67
Eras of computing

68
Parallel vs distributed computing
• The term parallel – implies a tightly coupled system
• distributed – implies a wider class of system
including those who are tightly coupled.
Parallel computing
□ Refers to the model where the computation is divided among
several processors sharing the same memory.
□ It is characterised by the homogeneity of components : each
processor is of the same type and it has the same capability of
the others.
□ The shared memory has a single address space , which is
accessible to all the processors.
□ Parallel programs are then broken down in to several units of
executions that can be allocated to different processors, and can
communicate each other by means of the shared memory.

69
• Distributed computing
□ Any system that allows the computation to be
broken down into units and executed
concurrently on different computing
elements, whether these are processors on
different nodes , processors on same
computer, or cores within the same processor.

□ Therefore it includes a wide range of systems


and applications.

70
Elements of parallel computing
□ Processing of multiple tasks simultaneously on
multiple processors –parallel processing
□ The parallel program consists of multiple active
processes simultaneously solving a given problem .
□ A given task is divided into multiple subtasks
using divide and conquer technique and each of
them is processed on different CPUs.
□ Programming on multi-processor system using
divide and conquer technique is called parallel
programming.

71
❑ Hardware architectures for parallel processing

□ The core elements of parallel processing are CPUs.

□ Based on a number of instruction and data


streams that can be processed simultaneously,
computing systems are classified into the
following 4 categories:
1. Single Instruction Single Data (SISD)
2. Single Instruction Multiple Data (SIMD)
3. Multiple Instruction Single Data (MISD)
4. Multiple Instruction Multiple Data (MIMD)

72
SISD

73
• SISD
• Uniprocessor machine capable of executing
single instruction which operates on single data
stream.

□ Machine instructions are processed sequentially,


hence computers adopting this model are called
sequential computers.

□ Most of the conventional computers are built


using SISD model.

□ All instructions and data to be processed are


stored in primary memory.

□ Dominant SISD systems are IBM-PC, Macintosh,


workstations etc.

74
SIMD

75
• SIMD
□ Is a multiprocessor machine capable of executing
the same instruction on all the CPUs, but
operating on different streams.
□ These are well suited for scientific computing
since they involve lots of vector and matrix
operations.
□ E.g: statements such as Ci=Ai*Bi

can be passed to all the PEs (Processing Elements),


organized data elements of vector A and B can be
divided into multiple sets
(N-sets for N PE systems), and each PE can process
one data set.
□ Dominant SIMD systems are CRAY’s vector-
processing machine, thinking machines cm, etc
76
MISD

77
• MISD

□ Is a multiprocessor machine capable of executing


different instructions on different PEs , but all of
them operating on the same data-set.
□ E.g: statements such as
y=sin(x)+cos(x)+tan(x)
Perform different operations on the same data set.

□ None of them available commercially.

78
MIMD

79
• MIMD
□ Is a multiprocessor machine capable of executing
multiple instructions on multiple data sets.
□ Each PE has separate instructions and data
streams, and hence machines built using this
model are suited for any kind of operation.

□ Unlike SIMD and MISD, PEs in MIMD


machines work asynchronously.

□ Categorized into 2 , based on how PEs are


coupled to the main memory.
1. Shared-memory MIMD
2. Distributed-memory MIMD

80
shared and distributed memory MIMD

81
• Shared memory MIMD

□ All the PEs are connected to a single global


memory and they all have access to it.
□ Also called tightly-coupled multiprocessor systems.

□ Communication between PEs takes place through


the shared memory, modification of the data stored
in the global memory by one PE is visible to all other
PEs

□ Dominant shared memory MIMD are silicon


graphics machines and sun/IBM’s SMPs (symmetric
multi-processing)

82
• Distributed memory MIMD machine.
□ All PEs have a local memory.
□ Also called loosely-coupled multiprocessor
systems.
□ The communication between PEs takes place
through the interconnection network (IPC-
inter process communication channel).
□ Easier to program but is less tolerant to
failures.

83
❑ Approaches to parallel programming

□ A sequential program is one which runs on a


single processor and has a single line of
control.
□ To make many processors collectively work on
a single program, the program must be
divided into smaller independent chunks so
that each processor can work on separate
chunks of the problem. The program
decomposed in this way is a parallel program.

84
• variety of parallel programming approaches are:
1. Data parallelism- divide and conquer technique is used
to split data into multiple sets, and each data set is
processed on different PEs by using the same
instruction.
2. Process parallelism- a given operation has multiple
activities , which can be processed on multiple
processors.
3. Farmer and worker model- a job distribution approach
is used. One processor is configured as master and all
other remaining PEs are designated as slaves; the
master assigns a job to slave PEs and they on
completion inform the master which in turn collects
the results.

85
Levels of parallelism
• Levels of parallelism are decided based on the
lumps of code (grain size) that can be
potential candidate for parallelism.

Grain size Code item Parallelized by

large Separate and programmer


heavy weight
process

Medium Function or programmer


procedure
fine Loop or Parallelizing
instruction block compiler
Very fine Instruction processor

86
• Parallelism within an application can be
detected at several levels:
1. Large-grain (or task-level)
2. Medium-grain(or control-level)

3. Fine-grain(data-level)

4. Very -fine grain(multiple instruction level)

88
Laws of caution

• Parallelism is used to perform multiple


activities together so that the system can
increase its throughput or its speed.
• For a given “n” processors , the user expects
speed to be increased by “n” times. It is an
ideal situation , which rarely happens because
of the communication overhead.

89
• Here are two important guidelines to take into
account:
1. Speed of computation is proportional to the
square root of system cost ; they never
increase linearly. Therefore, faster the
system , more the expense to increase its
speed.
2. Speed-up by a parallel computer increases as
the logarithm of the number of processors.

90
91
Elements of distributed computing
• General concept and definitions
□ By Tanenbaum
“ A distributed system is a collection of
independent computers that appears to its users
as a single coherent system.”

□ Communication is one of the fundamental aspect of


distributed computing. Since distributed systems are
composed by more than one computer that
collaborate together, it is necessary to provide some
sort of data and information exchange between
them, which generally occurs through the network.

92
❑ Components of a distributed system

□ A distributed system is the result of the


interaction of several components that
traverse the entire computing stack from
hardware to software.
□ overview of the different layers that are
involved in providing the services of a
distributed system.

94
95
❑ Architectural styles for distributed
computing

□ Architectural styles are mainly used to


determine the vocabulary of components and
connectors that are used as instances of the
style together with a set of constraints on how
they can be combined.
□ Architectural styles for distributed systems are
helpful in understanding the different roles of
components in the system and how they are
distributed across multiple machines.

96
• Architectural styles can be divided into two
major classes:

1. Software architectural styles – relates to the


logical organization of the software.

2. System architectural styles – describe the


physical organization. (components and
connectors)

□ components – represents a unit of software that


encapsulates a function or a feature of the
system.
□ Connector – is a communication mechanism
that allows the cooperation and coordination
among components.

97
Software architectural styles
a. Data centered architectures-identify the
data as the fundamental element of the
software system and access to shared
data
b. Data flow architectures-availability of the
data that controls the computation
c. Virtual machine architectures-the
presence of an abstract execution
environment that stimulates h/w and s/w

98
d. Call and return architectures – identifies all
those systems that are composed by components
connected together by method calls.
e. Architectural styles based on independent
components- model systems in terms of
independed components which interact to each
other to perform their activities.
System architectural styles.

a. Client server – this architecture is very popular in


distributed computing
- suitable for wide variety of applications.
- features two major components: a server and a client.

- these two components interact with each other


through a network connection.
- the communication is unidirectional: the client issues a
request to the server, and the server after processing
the request returns a response.
-hence the important operations are request ,
accept(client side ), and listen and response(server
side).

99
- for the client design , two major models
are
1. thin-client model – the load of data
processing and transformation is put on the
server side, and the client is concerned with
retrieving and returning the data
2. fat-client model – Client is responsible
for processing and transforming the data
before returning it back to the user.

100
101
b. Peer –to- peer
this model introduces a symmetric
architecture where all the components , called
peers, play the same role and incorporate
both the client and server capabilities.

102

You might also like