Lecture 3 Distributed Systems and Their Challenges
Lecture 3 Distributed Systems and Their Challenges
Lecture # 03
Distributed Systems
What is a distributed
system
•
A distributed system is one in which components
located at networked computers communicate and
coordinate their actions only by passing messages
• A distributed system is a collection of
autonomous computers linked by a computer
network that appear to the users of the system as a
single computer.
4
What is a distributed
system (cont’d)
- Personal workstations +
processors not assigned to
specific users.
8
Key Features
• Embedded Computing – Devices and
sensors are embedded in everyday objects
(e.g., smart appliances, wearable devices).
• Seamless Connectivity – Uses IoT, Wi-Fi,
Bluetooth, and cloud computing to ensure
continuous communication.
• Context Awareness – Systems can adapt
based on the user's environment (e.g., smart
thermostats adjusting temperature).
• Automation & Intelligence – Uses AI and
machine learning to automate tasks and
enhance decision-making.
• User-Friendly & Invisible Computing –
Works in the background without requiring
active user input.
Resources and
Components
•
The terms “resources” and “components” are used
to describe how a distributed system is built up.
•
These terms are very abstract, but the range of
things that can be connected and shared is very
large.
11
Important terms
•
Service
– A distinct part of a computer system that manages a collection of
related resources and presents their functionality to users and
applications
– Internet services: http, telnet, pop3...
•
Server
– A running program (a process) on a networked computer that
accepts requests from programs running on other computers to
perform a service, and responds appropriately
– Internet servers: Apache, Sendmail, WU-ftpd, OpenSSH
•
Client
– The requesting process
12
• Scalability: The ability of a system to
handle increasing workloads by adding
more resources (e.g., nodes, storage).
• Concurrency – Multiple processes
executing simultaneously in a distributed
environment.
• Fault Tolerance – The system's ability to
continue functioning even when some
components fail.
• Replication – Storing copies of data across
multiple nodes to improve reliability and
availability.
• Latency – The time delay in
communication between distributed
components.
• Load Balancing – Distributing workloads
across multiple servers or resources to
prevent bottlenecks.
• Challenges in Distributed Systems
Heterogeneity
•
Different networks, hardware, operating systems,
programming languages, developers
•
We set up protocols to solve these heterogeneities
•
Middleware: a software layer that provides a
programming abstraction as well as masking the
heterogeneity
•
Mobile code: code that can be sent from one
computer to another and run at the destination
17
Security
•
Security for information resources has three
components:
–
Confidentiality: protection against disclosure to
unauthorized individuals
–
Integrity: protection against alteration or corruption
–
Availability: protection against interference with the
means to access the resources
19
Scalability
•
A system is described as scalable if it remains
effective when there is a significant increase in the
number of resources and the number of users
•
Challenges:
–
Controlling the cost of resources
–
Controlling loss of performance
–
Preventing software resources from running out
–
Avoiding performance bottlenecks
20
Fault Tolerance & Reliability
24