Lecture 2
Lecture 2
Development of Cloud
Computing
Dr. Risala Tasin Khan
Professor
Institute of Information Technology
A Brief History: Open Platform
Provided an open
and flexible Any application can run on any machine
environment
C/S is considered as
a form of From anywhere files can be accessed
distributed software
Client-server is a computing architecture which
separates a client from a server
• File servers
• File sharing and file processing Client
• Data base servers Server
• Passing file results
• Example: Query in DBMS server Client
• Typically one single request/reply
• Transaction servers
• Transaction server includes DBMS and transaction monitoring
• Server has remote procedures run online by the client
• web servers
• Super-fat servers and thin clients
• Uses HTTP protocol
• Java was first to introduce interactive C/S forms
Client
Internet
HTML
Server Application
Client
JAVA
Client/Server Models
• Fat clients
• The bulk of the application is running on the client
• The client knows how the data is organized and where it is
• Different clients access the same applications different ways
• Fat servers
• The server more complicated
• The clients are less complex
• More of the code runs on the server
• The network interaction is minimized
Application
Client
Server
Two-Tier vs. Three-Tier Architecture
Same basic idea as fat- Depends on how the Two-tier servers Three-tier servers
client versus fat-server application is divided
between the server
and the client
Examples: file servers and Examples: Web and
database server distributed objects
In this case the process In this case the process is run
(application logic) is buried on the middle-tier – separated
within the client or server (or from the user and data
both) interface
They can integrate the data
from multiple sources
More robust and more
scalable
Computing Paradigms
• In phase 1, many users shared powerful
mainframes using dummy terminals.
• In phase 2, stand-alone PCs became powerful
enough to meet the majority of users’ needs.
• In phase 3, PCs, laptops, and servers were
connected together through local networks to
share resources and increase performance.
• In phase 4, local networks were connected to
other local networks forming a global network
such as the Internet to utilize remote
applications and resources.
• In phase 5, grid computing provided shared
computing power and storage through a
distributed computing system.
• In phase 6, cloud computing further provides
shared resources on the Internet in a scalable
and simple way.
What is Distributed System
9
Continue…
10
Continue…
1.1
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
12
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
13
Mobile and Ubiquitous Computing
In mobile computing, users who are away from their “home” intranet are
still provided with access to resources via the devices they carry with
them.
14
Ubiquitous Computing
15
Ubiquitous Computing
Characteristics
Physical Integration:
Instantaneous Interoperation:
Centralized Parallel
Mainframe
Computer
Computer resources are centralized in one Processors are tightly coupled with
physical system. All resources (processors , centralized shared memory/loosely coupled
memory, and storage) are fully shared and with distributed memory. Computer system
tightly coupled within one integrated OS. capable of parallel computing is called
Example: Data center and super computers. parallel computer. Programs running in such
computer are called parallel programs .
19
Parallel vs Distributed Computing
https://pediaa.com/
20
System Models for Distributed
System
Minicomputer model
Workstation model
Workstation-server model
Processor-pool model
Cluster model
Grid Model
21
Minicomputer Model
Mini-
computer
ARPA
Mini- net Mini-
computer computer
• Client workstations
Workstation • Graphic/interactive applications processed in local
• All file, print, http and even cycle computation requests
are sent to servers.
Workstation Workstation • Server minicomputers
• Each minicomputer is dedicated to one or more different
100Gbps types of services.
LAN • Client-Server model of communication
• RPC (Remote Procedure Call)
• RMI (Remote Method Invocation)
• A Client process calls a server process’ function.
Mini- Mini- Mini-
• No process migration invoked
Computer Computer Computer
file server http server cycle server • Example: NSF
Processor-Pool Model 29
• Clients:
• They log in one of terminals.
• All services are dispatched to servers.
• Servers:
• Necessary number of processors are
100Gbps allocated to each user from the pool.
LAN • Better utilization but less interactivity
Server 1 Server N
Cluster Model 30
Workstation • Client
• Takes a client-server model
Workstation Workstation • Server
• Consists of many
100Gbps PC/workstations connected to
LAN a high-speed network.
http server2 • Puts more focus on
http server1 http server N performance: serves for
requests in parallel.
Master Slave Slave Slave
node 1 2 N
1Gbps SAN
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Cluster Computing
A type of parallel or
distributed processing
system, which consists of a
collection of interconnected
stand-alone computers
cooperatively working
together as a single,
integrated computing
resource. The computers
may be standard per
uniprocessor or
multiprocessor.
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
31
Cont…
Grid Computing
• Grid computing appeared in the early 1990s as an evolution of cluster
computing.
• In an analogy to the power grid, grid computing proposed a new
approach to access large computational power, huge storage facilities,
and a variety of services.
• Users can “consume” resources in the same way as they use other
utilities such as power, gas, and water.
• Grids initially developed as aggregations of geographically dispersed
clusters by means of Internet connections.
• These clusters belonged to different organizations, and arrangements
were made among them to share the computational power.
• Different from a “large cluster,” a computing grid was a dynamic
aggregation of heterogeneous computing nodes, and its scale was
nationwide or even worldwide. rld.
33
Reasons behind Grid Computing
Nodes must be homogeneous i.e. they should have Nodes may have different Operating systems and
same type of hardware and operating system. hardwares. Machines can be homogeneous or
heterogeneous.
Computers in a cluster are dedicated to the same work Computers in a grid contribute their unused processing
and perform no other task. resources to the grid computing network.
Computers are located close to each other. Computers may be located at a huge distance from one
another.
Computers are connected by a high speed local area Computers are connected using a low speed bus or the
network bus. internet.
Computers are connected in a centralized network Computers are connected in a distributed or de-
topology. centralized network topology.
Scheduling is controlled by a central server. It may have servers, but mostly each node behaves
independently.
Whole system has a centralized resource manager. Every node manages it’s resources independently.
Goal of a Distributed System
It should be open
It should be scalable
36
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
38
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
39
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Heterogeneity
The Internet enables users to access services and run
applications over a heterogeneous collection of
computers and networks.
Heterogeneity applies to all of the following:
Networks
Hardware architectures
Operating systems
Programming languages
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
40
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Heterogeneity
Although the Internet consists of many different sorts of networks,
their differences are masked by the fact that all of the computers
attached to them use the same Internet protocols to communicate
with one another.
Data type such as integers may be represented in different ways on
different sorts of hardware, these differences in representation must
be dealt with if messages are to be exchanged between programs
running on different hardware.
Although the operating systems of all computers on the Internet
need to include an implementation of the Internet protocols, they do
not necessarily all provide the same application programming
interface to these protocols. For example, the calls for exchanging
message in UNIX are different form the calls in Windows.
Different programming languages use different representations for
characters and data structures such as array and records. These
differences must be addressed if programs written in different
languages are to be able to communicate with one another.
41
Heterogeneity
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Openness
•The openness of a computer system is the characteristic that determines whether the
system can be extended and reimplemented in various ways.
•Openness in a distributed system refers to its ability to be extensible, interoperable,
and scalable by supporting standard interfaces, protocols, and components that allow
different systems to work together seamlessly. It ensures that new components,
services, and technologies can be integrated without significant modifications to the
existing system.
•The openness of distributed systems is determined primarily by the degree to which
new resource-sharing services can be added and be made available for use by a
variety of client programs.
•Openness cannot be achieved unless the specification and documentation of the key
software interfaces of the components of a system are made available to
software developers.
• In a word, the key interfaces are published.
•For example, AWS, Google Cloud, and Azure provide open APIs and SDKs.
43
Transparency
46
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Security
Security of a computer system is the
characteristic that the resources are
accessible to authorized users and used in
the way they are intended.
47
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Security
Integrity
Protection against alteration or corruption.
Availability
Protection against interference with the
means to access the resources.
48
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Security
Security Mechanisms are:
Encryption
Authentication
Authorization
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
49
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Security challenges
1. Unauthorized Access (Authentication & Authorization Issues)
Challenge:
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
50
Security challenges (Cont…)
Security challenges (Cont…)
Security challenges (Cont…)
Security challenges (Cont…)
Scalability
Scalability
Challenges of designing scalable
distributed systems are:
Controlling the cost of physical resources
Cost should linearly increase with the system size.
For example, the frequency with which files are
accessed in an intranet is likely to grow as the
number of users and computer increases.
It must be possible to add server computers to avoid
performance bottleneck that would arise if a single
file server had to handle all file access requests.
56
Controlling the performance loss
• Consider a table with the
correspondence between the
domain names of computers and
their IP address held by the DNS,
which is used mainly to look up
DNS names.
• Algorithm that use hierarchic
structures scale better than those
that use linear structures.
Scalability • But even in hierarchic structures an
increase in size will result in some
loss in performance.
• For example, in hierarchically
structured data, search
performance loss due to data
growth should not be beyond O(log
n), where n is the size of data.
• For a system to be scalable, the
maximum performance loss should
not be more than that
57
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Scalability
Preventing software resources running out
An example is the numbers used as Internet
addresses (IP)(32 bit->128-bit)
Y2K like problem.
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
58
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Failure handling
Failures in distributed systems are partial,
that is some components fail while others
continue to function.
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005 59
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Failure handling
Tolerating failures
E.g. Exception handling
E.g. Timeouts
Recovery from Failure
E.g. Rollback mechanisms
Redundancy
E.g. Redundant components
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
60
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Concurrency
With concurrency, services and
applications can be shared by clients in a
distributed system.
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
61
CHARACTERIZATION OF DISTRIBUTED SYSTEMS
Concurrency
Concurrency can be achieved by standard
techniques such as semaphores, which
are used in most operating systems.
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
62
Problems of
designing
distributed system
63
(Cont…)
Internal Problems:
• Non-synchronized clocks, conflicting data
update, many modes of hardware and
software failure involving the individual
components of the system
External Threats:
• Attacks on data integrity and secrecy, denial of
service etc.
64