0% found this document useful (0 votes)
10 views

MUT Lecture 1 - Introduction

Uploaded by

obadiah frost
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

MUT Lecture 1 - Introduction

Uploaded by

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

SCS 303:

Distributed
Systems
Lecturer:

Dr. Stephen Kahara, PhD


Lecture 1:
Introduction to Distributed
Systems
Overview of Distributed Computing
 A distributed system:
 a collection of independent computer systems
that cooperate to achieve a common goal.
 are geographically dispersed and
communicate through a network.
 Unlike centralized systems where all
components reside on a single machine,
distributed systems;
 leveragemultiple machines to share resources,
 improve performance, and
 enhance reliability.
3
SCS 303: Distributed Systems
Key Characteristics
 Independence: Each component in a distributed system can
operate autonomously.
 Communication: Components interact through message
passing over a network.
 Concurrency: Multiple components can execute concurrently.

 No Shared Clock: Each system has its own clock, leading to


challenges in synchronization.
 Failure Independence: Failures of individual components

should not necessarily bring down the entire system.


 Heterogeneity: Different hardware and software components

can coexist.
 Lack of Global State: There's no central point of control or

SCS 303: shared memory. 4


Distributed Systems
Examples of Distributed Systems
 E-commerce: Online shopping platforms involve multiple
servers for product catalogs, user accounts, payment
processing, and inventory management.
 Cloud Computing: Distributed systems manage vast data
centers, providing services like storage, computing power,
and software applications.
 Social Networks: Platforms like Facebook and Twitter rely
on distributed systems to handle user profiles, posts,
messages, and real-time updates.
 Peer-to-Peer Networks: File sharing systems like
BitTorrent utilize distributed systems where peers
contribute resources and act as both clients and servers.
5
SCS 303: Distributed Systems
Comparison with centralized
systems
Feature Centralized Distributed Systems
Systems
Components Single machine Multiple independent
machines
Control Centralized control Distributed control
unit
Data Shared memory Distributed data
Failure Single point of failure Fault tolerance
Scalability Limited scalability High scalability
Performance Can be high for Can achieve higher
small-scale performance for large-
applications scale applications
6
SCS 303: Distributed Systems
Goals of Distributed Systems
 Resource Sharing: Effectively sharing hardware,
software, and data across multiple systems.
 Improved Performance: Distributing workloads
across multiple machines can enhance overall
system performance.
 Reliability: Building fault-tolerant systems that can
continue operating even when components fail.
 Scalability: The ability to handle increasing
workloads by adding more resources.
 Openness: Designing systems that can interoperate
with different hardware and software platforms.

7
SCS 303: Distributed Systems
Characteristics of Distributed
Systems
 Concurrency
 Independent processes executing concurrently: Multiple
processes or threads can execute simultaneously in a
distributed system, taking advantage of multiple processors
or machines.
 Example: A web server handling multiple client requests
concurrently
 Challenges of coordination and synchronization:
Ensuring correct and consistent execution of concurrent
processes requires careful coordination and synchronization
mechanisms.
o
Example: Distributed transactions, where multiple databases
must be updated atomically.
8
SCS 303: Distributed Systems
Characteristics cont.…
 No Shared Clock
 Independent timekeeping: Each system in a
distributed system has its own clock, which may
drift over time due to hardware variations.
 Implications for synchronization and
ordering of events: Determining the exact
order of events across different systems can be
challenging due to clock differences.
 Example: Timestamp-based protocols may produce
incorrect results if clocks are not synchronized.

9
SCS 303: Distributed Systems
Characteristics cont.…
 Independent Failures
 Failure of individual components:
Components in a distributed system can fail
independently without affecting the entire
system.
 Importance of fault tolerance: Distributed
systems must be designed to tolerate failures
and continue operating despite component
outages.
 Example: Redundancy and replication of data to
prevent data loss.
10
SCS 303: Distributed Systems
Characteristics cont.…
 Heterogeneity
 Different hardware and software
components: Distributed systems often consist
of different types of hardware and software,
leading to compatibility and interoperability
challenges.
 Challenges in interoperability: Ensuring
seamless communication and data exchange
between heterogeneous components requires
careful design and standardization.
 Example: Integrating systems from different vendors,
such as databases and middleware.
11
SCS 303: Distributed Systems
Characteristics cont.…
 Lack of Global State
 No centralized control: There is no single point
of control or shared memory in a distributed
system.
 Implications for data consistency and
management: Maintaining data consistency
across multiple systems is complex, as changes
made in one location may not be immediately
reflected in others.
 Example: Replicated databases and distributed
transaction management.
12
SCS 303: Distributed Systems
Characteristics cont.…
 Additional Considerations:
 Autonomy: Components in a distributed system
can make independent decisions.
 Scalability: Distributed systems can handle
increasing workloads by adding more resources.
 Openness: Distributed systems should be open
to incorporating new components and
technologies.

13
SCS 303: Distributed Systems
Addressing these
characteristics:
 To build successful distributed systems, it's essential
to employ appropriate design patterns, algorithms,
and protocols. These include:
 Consensus algorithms: To achieve agreement among
distributed processes.
 Distributed file systems: To manage data across multiple
machines.
 Replication techniques: To improve availability and fault
tolerance.
 Middleware: To provide a layer of abstraction and simplify
development.
 By understanding these core characteristics and their
implications, developers can design and implement
robust and efficient distributed systems.
14
SCS 303: Distributed Systems
Benefits of Distributed
Systems
 Increased Availability:
 By distributing components across multiple
machines, the system can continue to operate even
if some components fail. Redundancy and
replication of data can significantly enhance
availability.
 Example: Cloud-based services often distribute data
across multiple data centers for high availability.
 Improved Performance:
 Distributing workloads across multiple machines
can enhance overall system performance by
allowing for parallel processing.
 Example: Content delivery networks (CDNs) distribute
content closer to users, reducing latency.
15
SCS 303: Distributed Systems
Benefits Cont.…
 Scalability:
 Distributed systems can handle increasing workloads
by adding more resources (hardware or software).
This horizontal scaling is more cost-effective than
vertical scaling (upgrading existing hardware).
 Example: Large-scale web applications like Google
Search rely on distributed systems to handle millions of
queries.
 Flexibility:
 Distributed systems can adapt to changing
requirements by adding or removing components.
They can also be geographically distributed, allowing
for global operations.
 Example: Microservices architecture enables
independent development and deployment of services.
16
SCS 303: Distributed Systems
Benefits Cont.…
 Resource Sharing:
 Sharing hardware, software, and data across
multiple systems can optimize resource
utilization and reduce costs.
 Example: Grid computing harnesses idle computing
power from multiple machines.

17
SCS 303: Distributed Systems
Challenges of Distributed
Systems
 Complexity:
 Designing, developing, and managing distributed
systems is inherently complex due to the involvement of
multiple components, communication protocols, and
potential failure points.
 Example: Coordinating distributed transactions and
ensuring data consistency.
 Security:
 Protecting data and systems from unauthorized access,
modification, or destruction is a significant challenge in
distributed environments.
 Example: Preventing data breaches and distributed denial-
of-service (DDoS) attacks.
18
SCS 303: Distributed Systems
Challenges Cont.…
 Network Failures:
 Reliance on networks introduces vulnerabilities to
communication failures, which can impact system
performance and availability.
 Example: Implementing fault-tolerant mechanisms to
handle network partitions.
 Heterogeneity:
 Dealing with different hardware and software
components can introduce compatibility and
interoperability issues.
 Example: Ensuring seamless communication between
systems with different operating systems and programming
languages.

19
SCS 303: Distributed Systems
Challenges Cont.…
 Concurrency Control:
 Managing concurrent access to shared resources
and preventing data inconsistencies is crucial.
 Example: Implementing locking mechanisms or
optimistic concurrency control.
 Distributed Algorithms:
 Developing algorithms that coordinate actions
across multiple systems can be complex and error-
prone.
 Example: Implementing distributed consensus algorithms
for leader election.

20
SCS 303: Distributed Systems
Challenges Cont.…
 Debugging and Testing:
 Identifying and resolving issues in distributed
systems can be challenging due to the distributed
nature of the system and the difficulty in
reproducing errors.
 Example: Using distributed debugging tools and
techniques.
 Understanding both the benefits and challenges is
essential for designing and implementing
successful distributed systems.
 By carefully considering these factors, developers
can create systems that are reliable, scalable, and
efficient.
21
SCS 303: Distributed Systems
Lesson Summary
 Distributed Systems are networks of independent computer
systems that cooperate to achieve a common goal. They
offer advantages like increased availability, improved
performance, scalability, flexibility, and resource sharing.
However, they also present challenges such as complexity,
security, network failures, heterogeneity, concurrency
control, distributed algorithms, and debugging.
 Key characteristics of distributed systems include
concurrency, no shared clock, independent failures,
heterogeneity, and lack of global state. These
characteristics significantly influence system design and
implementation.
 By understanding the fundamental concepts, benefits, and
challenges of distributed systems, you will be equipped to
explore more advanced topics and build robust distributed
applications. 22
SCS 303: Distributed Systems

You might also like