MUT Lecture 2 - Distributed System Models
MUT Lecture 2 - Distributed System Models
Distributed
Systems
Lecturer:
4
SCS 303: Distributed Systems
Recap: Distributed Systems
Why use distributed systems?
Scalability: Distributed systems can handle
large-scale workloads by distributing tasks
across multiple computers.
Reliability: If one computer fails, the system
can continue to operate.
Efficiency: By distributing tasks, distributed
systems can improve performance.
Cost-effectiveness: Sharing resources across
multiple computers can reduce costs.
5
SCS 303: Distributed Systems
Recap: Distributed Systems
Common examples of distributed systems
include:
Peer-to-peer networks (like BitTorrent)
Distributed databases
The internet
Cloud computing platforms
6
SCS 303: Distributed Systems
Distributed System Models
To understand the intricacies of distributed
systems, it is essential to explore the various
models that govern their architecture and
operation.
This introduction will delve into the fundamental
concepts of distributed system models, providing
a framework for further exploration.
The most common models are:
Client-Server Model
Peer-to-Peer (P2P) Model
Cloud Computing Model
Hybrid Model
7
SCS 303: Distributed Systems
Client-Server Model
A client-server model is a distributed application
structure that divides the workload between
service requesters, known as clients, and service
providers, called servers.
In this architecture, clients initiate requests for
data or services, while servers fulfill these
requests by processing the information and
sending the results back to the client.
This is the most widely used model
8
SCS 303: Distributed Systems
Client-Server Model
Key Components
Clients: These are software or hardware devices that
request services from a server. Clients typically have a
user interface that allows users to interact with the
system. Examples include web browsers, email clients,
and database applications.
Servers: These are powerful computers that provide
services to clients. They have the necessary resources
(hardware, software, and data) to handle multiple client
requests simultaneously. Examples include web servers,
email servers, and database servers.
Network: A communication infrastructure that connects
clients and servers.
9
SCS 303: Distributed Systems
Client-Server Model
15
SCS 303: Distributed Systems
Peer-to-Peer (P2P) Model
A peer-to-peer (P2P) network is a decentralized
computer network where individual computers
(peers) act as both clients and servers.
This model eliminates the need for a central
server, distributing resources and services across
the network.
Unlike the client-server model, there is no central
authority.
Instead, peers communicate directly with each
other to share resources, such as files, processing
power, or storage.
16
SCS 303: Distributed Systems
Peer-to-Peer (P2P) Model
Key components
Peers: Nodes that can both request and
provide services.
Network: A communication infrastructure
that connects peers.
17
SCS 303: Distributed Systems
Peer-to-Peer (P2P) Model
19
SCS 303: Distributed Systems
Peer-to-Peer (P2P) Model
Examples
BitTorrent: A popular protocol for distributing
large files efficiently. Peers download file pieces
from multiple other peers, contributing
uploaded portions as they download.
Napster: One of the early P2P file-sharing
services, although it faced legal challenges due
to copyright infringement.
Skype
Gnutella
20
SCS 303: Distributed Systems
Peer-to-Peer (P2P) Model
Advantages:
Suitable for Applications with Large Amounts of
Data Sharing: P2P is well-suited for distributing
large files, such as movies, software, and
scientific data, as the load is shared among
many peers.
Efficient resource utilization: By leveraging the
combined resources of multiple peers, P2P
networks can achieve high levels of resource
utilization.
High scalability and fault tolerance
Reduced infrastructure costs
21
SCS 303: Distributed Systems
Peer-to-Peer (P2P) Model
Challenges:
Lower Availability: While the overall system can
be more resilient, the availability of specific
files or resources depends on the number of
peers sharing them.
Complex network management
Security and trust issues
Inconsistent performance (depends on peer
availability)
22
SCS 303: Distributed Systems
Cloud Computing Model
Cloud computing is a model for;
enabling ubiquitous,
convenient,
on-demand network access to a shared pool of
configurable computing resources (e.g., networks,
servers, storage, applications, and services) that can be
rapidly provisioned and released with minimal
management effort or service provider interaction.
Cloud computing is a model of delivering IT
services, such as computing power, storage,
and networking, over the internet.
23
SCS 303: Distributed Systems
Cloud Computing Model
Key components:
Cloud provider: A company that delivers
cloud services.
Cloud infrastructure: The physical hardware
and software that provides cloud services.
Cloud consumer: An individual or
organization that uses cloud services.
24
SCS 303: Distributed Systems
Fig.3: Cloud computing models
25
SCS 303: Distributed Systems
Cloud Computing Model
Types of cloud computing:
Infrastructure as a Service (IaaS): This
model provides on-demand access to computing
resources, such as servers, storage, and
networking. Users have control over the
operating system, applications, and data.
Examples: Amazon EC2, Microsoft Azure Virtual
Machines, Google Compute Engine
Platform as a Service (PaaS): This model
provides a cloud-based platform for developing,
testing, deploying, and managing applications.
Users focus on application development without
worrying about infrastructure management.
Examples: Google App Engine, Microsoft Azure App
Service, Heroku
26
SCS 303: Distributed Systems
Cloud Computing Model
Types of cloud computing:
Software as a Service (SaaS): This model
delivers software applications over the
internet. Users access these applications
through a web browser without installing or
managing software on their devices.
Examples: Salesforce, Microsoft Office 365, Google
Workspace
27
SCS 303: Distributed Systems
Cloud Computing Model
Characteristics
On-demand self-service: Users can access and
provision cloud resources independently without
requiring human interaction.
Broad network access: Cloud services are accessible
from various devices and locations through internet
connectivity.
Resource pooling: Cloud providers combine
computing resources from multiple physical servers to
create a shared pool of resources.
Rapid elasticity: Cloud resources can be rapidly
scaled up or down to meet changing demands.
Measured service: Cloud services are usually paid for
based on usage, allowing for flexible and cost-effective
consumption.
28
SCS 303: Distributed Systems
Cloud Computing Model
Advantages
Cost-effective: Pay-per-use pricing models
reduce upfront costs and IT expenses.
Scalable: Cloud resources can be easily
scaled up or down to meet changing demands.
29
SCS 303: Distributed Systems
Cloud Computing Model
Disadvantages
Reliance on third-party providers: Security
and availability depend on the cloud provider.
Security and privacy concerns: Protecting
data and applications in the cloud requires
robust security measures.
Vendor lock-in: Dependence on a specific
cloud provider can limit flexibility.
Compliance and legal issues
Dependency on internet connectivity
30
SCS 303: Distributed Systems
Lesson Summary
This lesson has covered three main distributed
system models: client-server, peer-to-peer, and
cloud computing.
Each model has its own advantages and
disadvantages, and the best choice for a
particular application depends on factors such as
scalability, reliability, security, and cost.
The client-server model features centralized
control, with clients requesting services from
servers. While offering centralized management
and security, it can suffer from performance
bottlenecks and scalability limitations.
31
SCS 303: Distributed Systems
Lesson Summary
Peer-to-peer networks are decentralized, with
nodes acting as both clients and servers. This model
excels in resource sharing and scalability but faces
challenges in data management and security.
Cloud computing provides on-demand access to
shared computing resources. It offers flexibility,
scalability, and cost-effectiveness but relies on third-
party providers and raises security concerns.
Understanding these models is crucial for designing
and implementing effective distributed systems,
considering factors like workload distribution,
resource management, and security requirements.
32
SCS 303: Distributed Systems