0% found this document useful (0 votes)
12 views64 pages

Lecture 2

Uploaded by

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

Lecture 2

Uploaded by

Rasedul Mannan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 64

Historical

Development of Cloud
Computing
Dr. Risala Tasin Khan
Professor
Institute of Information Technology
A Brief History: Open Platform

The good old days Open platform


Octopus-like mainframes New client/server architecture
Only a few venders to choose from Open system allowed mix-and-match
Farms of disks where required • Different application technologies
Applications were specific for each could be purchased from different
machine venders
• Examples: server platform, client
platform, network protocols,
middleware software, etc.
What is Client/Server (C/S)
Computing
It started as PCs
became more PCs were no longer dumb terminals
powerful

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

It is almost always implemented over a computer


network

This type of architecture is sometimes referred to as


two-tier.
• It allows devices to share files and resources.

Distinct Clients must request or initiate the service


characterist
ics of C/S The location of the server in the network is transparent
to clients

Transaction between C/S is message-passing based

C/S architecture is scalable

The server is centrally maintained where as clients are


independent of each other
Systems with C/S Architecture

• 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

• A distributed system is a collection of independent computers that


appears to its users as a single coherent system.
• This definition has two aspects:
• The first one deals with hardware: the machines are autonomous
• The second one deals with software: the users think they are dealing with a
single system.
• One important characteristic of a distributed system is that the
differences between the various computers and the way in which
they communicate are hidden from the users
• Another important characteristic is that users and applications can
interact with a distributed system in a consistent and uniform way,
regardless of where and when interaction takes place.

9
Continue…

• Distributed systems are often organized by means of a layer of


software that is logically placed between a higher level layer
consisting of users and applications and a layer underneath consisting
of operating system.
• For example, consider a network of workstations in a university. In
addition to each user’s PC there might be a pool of processors in the
machine room that are not assigned to specific users but are
allocated dynamically as needed. Such a system might have a single
file system, with all files accessible from all machines using the same
path name.
• If the system as a whole looks and acts like a classical single-
processor timesharing system, it qualifies as a distributed system

10
Continue…

1.1

•A distributed system organized as middleware


•Note that the middleware layer extends over multiple machines 11
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

Properties of Distributed Systems


 Our definition of distributed systems has
the following significant properties:
 Concurrency
 Tasks carry out independently
 No global clock
 Tasks coordinate their actions by
exchanging messages

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
12
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

Properties Distributed Systems


 Independent Failures
 Faults in the network result in the isolation
of the computers that are connected to it.
 Each component of the system can fail
independently, leaving the others still
running.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
13
Mobile and Ubiquitous Computing

Mobile computing (also known as nomadic computing) is the


performance of computing tasks while the user is on move, or visiting
places other than their usual environment.

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.

They can continue to access the Internet; and there is increasing


provision for users to utilize resources such as printers that are
conveniently nearby as they move around. This is known as location
aware or context-aware computing.

14
Ubiquitous Computing

• Also known as “pervasive computing”


• Means “to be found everywhere”
• Ubiquitous computing is the harnessing of many small, cheap computational devices
that are present in users’ physical environments, including the home, office and even
natural setting.
• The term “ubiquitous” is intended to suggest that small computing devices will
eventually become so pervasive in everyday objects that they are scarcely noticed.
That is, the computational behavior will be transparently and intimately tied up with
their physical function.
• The presence of computers everywhere only becomes useful when they can
communicate with one another.

15
Ubiquitous Computing
Characteristics

Physical Integration:

• Integration between computing nodes and


the physical world

Instantaneous Interoperation:

• Devices interoperate spontaneously in


changing environment.
Centralized vs Parallel Computing

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

• A mini-computer distributed system refers to a distributed


computing setup where mini-computers (mid-range systems
between mainframes and microcomputers) act as
interconnected nodes.
• These systems were historically used in business, scientific,
and industrial applications due to their balance of power
and affordability.
Minicomputer Model 23

Mini-
computer

ARPA
Mini- net Mini-
computer computer

• Extension of Time sharing system


• User must log on his/her home minicomputer.
• Thereafter, he/she can log on a remote machine by telnet.
• Resource sharing
• Database
• High-performance devices
Key Features of Minicomputer
System
•Multiple Mini-Computers as Nodes
•Each mini-computer has its own processor, memory, and storage.
•They communicate over a network to share tasks and resources.
•Client-Server or Peer-to-Peer Architecture
•Can follow a client-server model, where one mini-computer acts as a
central server, while others function as clients. Alternatively, it can be
peer-to-peer, where all mini-computers share processing workloads.
•Multi-User and Multi-Tasking
•Supports multiple users accessing the system simultaneously. Capable
of handling multiple processes efficiently.
•Reliability and Fault Tolerance
•Distributed nature ensures that failure of one mini-computer doesn’t shut
down the entire system. Load balancing improves overall system
efficiency.
Workstation
Model
• A workstation distributed
system model is a type of
distributed system where
multiple workstations (powerful
personal computers) are
interconnected over a network
to share computing resources,
processing power, and data.
Key Features of Minicomputer
System
1.Multiple Interconnected Workstations
• Each workstation has its own CPU, memory, and storage.
• They communicate over a high-speed LAN (Local Area Network) or WAN (Wide
Area Network).
2. Idle Workstation Utilization
• Workstations are often used during working hours but remain idle at other times.
• Distributed systems can leverage idle processing power to run background tasks,
scientific computations, or large-scale data processing.
3. Decentralized Computing
• No single point of failure—if one workstation fails, others continue running.
• Resources and computing power are distributed among all nodes.
• Load Sharing & Balancing
• Some systems use load balancing algorithms to distribute tasks among
workstations.
• Ensures efficient resource utilization and prevents bottlenecks.
Types of Workstation Distributed
System Models
• Workstation-Server Model
• Each workstation acts as a client, while powerful servers handle file storage,
processing, and authentication.
• Common in corporate networks and academic institutions.
• Workstation-on-Demand Model
• Workstations are dynamically allocated processing power based on demand.
• Useful for computational tasks where processing is offloaded to idle
workstations.
• Peer-to-Peer (P2P) Workstation Model
• All workstations share computing resources without a central server.
• Suitable for environments with distributed computing needs (e.g., research
labs).
Workstation-Server Model 28

• 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…

• Cluster computing acted as a low-cost alternative to the use of


mainframes and supercomputers.
• The low cost machines could be clustered together and then be
connected by a high-bandwidth network and controlled by specific
software tools that manage them as a single system.
• Starting in the 1980s, clusters become the standard technology for
parallel and high-performance computing.
• One of the attractive features of clusters was that the computational
power of commodity machines could be leveraged to solve problems
that were previously manageable only on expensive supercomputers.
• Moreover, clusters could be easily extended if more computational
power was required
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

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

The reason behind grid computing were:


(a) clusters became quite common resources;
(b) they were often underutilized;
(c) new problems were requiring computational power that
went beyond the capability of single clusters; and
(d) the improvements in networking and the diffusion of the
Internet made possible long-distance, high-bandwidth
connectivity.
All these elements led to the development of grids, which
now serve a multitude of users across the world.
Difference between Cluster and Grid
Computing
Cluster Computing 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

A distributed system should easily connect users to


resources;

It should hide the fact that resources are distributed across


a network

It should be open

It should be scalable

36
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

Design Challenges of Distributed


Systems
 Designers of distributed systems need to
take the following challenges into account:
 Heterogeneity
 Heterogeneous components must be able
to interoperate.
 Openness
 Interfaces should allow components to be
added or replaced.
 Security
 The system should only be used in the way
intended.
Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
37
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

Design Challenges of Distributed


Systems
 Scalability
 System should work efficiently with an
increasing number of users.
 System performance should increase with
inclusion of additional resources.
 Failure handling
 Failure of a component (partial failure)
should not result in failure of the whole
system.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005
38
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

Design Challenges of Distributed


Systems
 Transparency
 Distribution should be hidden from the user
as much as possible.

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

• A distributed system that is able to present itself to users


and applications as if it were only a single computer system
is said to be transparent.
• The ANSA Reference Manual [ANSA 1989] and the
International Organization for Standardization’s Reference
Model for Open Distributed Processing (RM-ODP) [ISO 1992]
identify eight forms of transparency.
Transparency in a Distributed
System
Transparency Description
Hide differences in data representation and how
Access
a resource is accessed
Location Hide where a resource is located
Hide that a resource may move to another
Migration
location
Hide that a resource may be moved to another
Relocation
location while in use
Replication Hide that a resource may be replicated
Hide that a resource may be shared by several
Concurrency
competitive users
Failure Hide the failure and recovery of a resource
Hide whether a (software) resource is in
Persistence
memory or on disk
Different forms of transparency in a distributed system
Transparency

• The two most important transparencies are access and


location transparency; their presence or absence most
strongly affects the utilization of distributed resources. They
are sometimes referred to together as network
transparency.
• As an illustration of access transparency, consider a graphical
user interface with folders, which is the same whether the
files are inside the folder are local or remote.
• URLs are location transparent because the part of URL that
identifies a web server domain name refers to a computer
name in a domain, rather than to a Internet address.

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.

 Security for information resources has


three components:
 Confidentiality
 Protection against disclosure to
unauthorized individual.

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:

Ensuring that only authorized users and systems access


resources.
• Example: An attacker trying to log in to a remote server using stolen
credentials.
• Solution: Implement multi-factor authentication (MFA), role-based
access control (RBAC), OAuth, and LDAP.

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 of a system can be measured along at


least three different dimensions:
• First, a system can be scalable with respect to
its size, meaning that we can easily add more
users and resources to the system
• Second, a geographically scalable system is one
in which the users and resources may lie far
apart.
• Third, a system can be administratively scalable,
meaning that it can still be easy to manage even
if it spans many independent administrative
organizations.
CHARACTERIZATION OF DISTRIBUTED SYSTEMS

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.

 Caching and replication in Web are examples of


providing scalability.

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.

 Techniques for dealing with failures:


 Detecting failures
 E.g. Checksums
 Masking failures
 E.g. Retransmission of corrupt messages
 E.g. File redundancy

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.

 For an object to be safe in a concurrent


environment, its operations must be
synchronized in such a way that its data
remains consistent.

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

• Some of the problems that the designers of


distributed systems face:
Widely varying modes of use:
• In a website some web pages are
accessed by millions of users at a time.
• Again some parts of the system may be
disconnected or poorly connected some
of the time----for example when mobile
computers are included in the system.
• Some applications have special
requirements for high communication
bandwidth and low latency.

63
(Cont…)

Wide range of system environments:


• A distributed system must accommodate
heterogenous hardware, operating systems
and networks.
• The network may differ widely in
performance-----a wirelss networks operate at
a fraction of the speed of locan networks.

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

You might also like