0% found this document useful (0 votes)
3 views25 pages

Distributed Systems

This lecture on distributed systems covers the definition, architecture, and key components of distributed computing, emphasizing its advantages over centralized systems. It explores communication methods, coordination techniques, data management strategies, and load balancing, while also discussing various types of distributed architectures such as microservices and client-server models. The lecture concludes with real-world examples and highlights the importance of understanding distributed systems in modern software design.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views25 pages

Distributed Systems

This lecture on distributed systems covers the definition, architecture, and key components of distributed computing, emphasizing its advantages over centralized systems. It explores communication methods, coordination techniques, data management strategies, and load balancing, while also discussing various types of distributed architectures such as microservices and client-server models. The lecture concludes with real-world examples and highlights the importance of understanding distributed systems in modern software design.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Distributed Systems —CSw 3325

Lecture 9 : Introduction to Distributed Systems"

Assistant Professor: Nasser Tamim

Sinai University

25th November 2025

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 1 / 25
Outline

1 Lecture Overview

2 Introduction to distributed systems


Computing Paradigms
Distributed system Architecture and how it works
Communication through distributed systems
Coordination and synchronization
Data management strategies.
Load balancing.
Distributed Systems

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 2 / 25
Lecture Overview

Lecture Objectives

Learning Objectives After studying this chapter, you should be able to:
1. Define distributed systems and cloud computing and explain their
symbiotic relationship
2. Identify key architectural patterns in distributed systems and cloud
environments
3. Understand how emerging technologies (AI, IoT, edge computing) are
transforming distributed cloud architectures
4. Analyze real-world applications of distributed systems in cloud
environments
5. Describe future trends and challenges in distributed cloud computing

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 3 / 25
Introduction to distributed systems Computing Paradigms

Evolution of cloud computing

Figure:

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 4 / 25
Introduction to distributed systems Computing Paradigms

Distributed architecture vs. centralized architecture

Centralized architectures
Centralized architectures, the traditional approach to software design, rely on a
single, powerful central server to handle all processing, storage, and
management tasks. While a centralized system can be simpler to implement
and manage initially, distributed computing can overcome several limitations.
Both approaches still have advantages,

Distributed computing architecture


refers to a system where processing and data storage are distributed across
multiple devices or systems, rather than being handled by a single central
device. In other words, it is considered a network of independent computers that
collaborate to appear as a unified system. These components are located on
different machines and communicate via message passing

So it makes sense to understand which architecture is better for your needs and
what tradeoffs come into play.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 5 / 25
Introduction to distributed systems Distributed system Architecture and how it works

How do distributed architectures work?

Distributed architectures operate through a network of interconnected services,


each with roles and responsibilities regarding application functionality. Let’s
examine some of these design choices that define a distributed architecture as
follows:
Communication
Coordination and synchronization
Data management strategies.
Load balancing.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 6 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Communication

Communication in distributed systems is the process by which multiple,


independent computers exchange messages over a network to coordinate actions
and share resources, presenting a unified system to users.
Key methods include Message Passing, remote procedure calls (RPC),
publish-subscribe messaging, and web services.
Communication relies on underlying network protocols like TCP/IP and
requires mechanisms for addressing, routing, reliability, and handling potential
network failures to ensure data consistency and system scalability

Depending on the requirements, various messaging and streaming frameworks,


like Apache Kafka or RabbitMQ , may be considered that work as a mediator or
broker software.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 7 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Coordination and synchronization

To maintain consistency and avoid conflicts, distributed architectures must


employ techniques such as;
leader election (where a single service coordinates others).
Distributed consensus (where services agree on a shared state).
Distributed locks (which prevent concurrent access to resources).
,

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 8 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Data management strategies.

Data within distributed architectures can be managed as the following:


Replication (multiple copies across nodes for redundancy).
Sharding (partitioning data for scalability).
Specialized distributed databases optimized for handling data spread
across multiple locations.
.

Overall, this aspect of a distributed application can be the most


complex to manage and has the largest impact if implemented
incorrectly.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 9 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Load balancing

Distributed architectures often employ load balancers to ensure optimal


performance and prevent overload. These systems intelligently distribute
incoming requests across multiple services, generally through an active-active
or active-passive configuration, maximizing resource utilization and
responsiveness.
Ensuring that each component can handle load, concurrency, and scalability
should result in a highly functioning distributed architecture. These concerns
differ from those of a more traditional centralized architecture. To understand
more about how the two work differently, let’s do a quick comparison. SEE
NEXT SLIDES.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 10 / 25
Introduction to distributed systems Distributed system Architecture and how it works

comparison between A centralized and distributed


computing

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 11 / 25
Introduction to distributed systems Distributed system Architecture and how it works

comparison between A centralized and distributed


computing

Figure: Caption

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 12 / 25
Introduction to distributed systems Distributed system Architecture and how it works

why developers shift towards distributed computing /

As demand for applications has increased in various ways, this has naturally
made architects and developers shift towards distributed computing as the go-to
approach over centralized and monolithic ones. A few concrete reasons for this
shift include:
Increasing data volumes: Modern applications generate massive amounts
of data, which can overwhelm centralized servers.
Growing user demands: Users expect fast and responsive applications,
even under peak loads.
Cloud computing: Cloud platforms provide the infrastructure and tools to
quickly deploy and manage distributed systems.
Microservices: The rise of microservices architecture, where developers
build applications as a collection of small, independent services, naturally
lends itself to distributed deployments.
Although centralized architectures have their place, the advent of cloud
computing has pushed teams to make many applications and their
infrastructure more distributed. Under the umbrella of distributed
architectures, though, we will look at a few specific types next and further
explore the differences
Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 13 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Types of distributed architectures-1

Just like most architectural paradigms, distributed application architecture


also comes in various flavors. Each variant caters to specific use cases and
requirements and offers different benefits. Let’s explore some of the most
common types:
Client-server architecture (The most basic form of distributed architecture,
a client-server architecture allows clients to request services from a central
server. Examples include web browsers interacting with web servers and
email clients connecting to email servers.
Peer-to-peer (P2P) architecture (In a P2P network, each node acts as a
client and a server, sharing resources and responsibilities with other nodes.
P2P architectures are commonly used for file-sharing networks, such as
BitTorrent.)
Multi-tier architecture (sometimes referred to as “n-tier” architecture)
divides an application into multiple layers or tiers, each with specific
functionality. Common tiers include presentation, business logic, and data
access layers. By separating concerns, multi-tier architectures enhance
scalability and maintainability.
Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 14 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Types of distributed architectures-2

Just like most architectural paradigms, distributed application architecture


also comes in various flavors. Each variant caters to specific use cases and
requirements and offers different benefits. Let’s explore some of the most
common types:
Microservices architecture (Microservice architectures have been one of the
hottest topics in architecture for the past few years. Teams build them as a
collection of loosely coupled, independent software components, each
responsible for a specific business capability. Engineers can develop, deploy,
and scale microservices independently, offering agility, flexibility, and, if
done poorly, hard-to-manage complexity.)
Service-oriented architecture (SOA).(SOA applications, which gained
traction in the early 2000s, are composed of reusable services that
communicate with each other through standardized interfaces. By reusing
services across different applications, SOA promotes interoperability and
flexibility.)

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 15 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Types of distributed architectures-3

Event-driven architecture (EDA) (In an EDA, components often coupled


with microservices communicate by producing and consuming events. EDA
enables loose coupling and scalability by allowing components to react to
events asynchronously.
Many of these architectural examples overlap slightly and come with their
own set of advantages and tradeoffs. Depending on the application you are
building, some types under the distributed architecture umbrella may
make more or less sense to run with. An excellent way to understand which
might be a good fit is to look at similar existing application examples. Let’s
take a look at some examples in the next section.)

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 16 / 25
Introduction to distributed systems Distributed system Architecture and how it works

"Cluster Computing" and "Grid Computing"

"Cluster Computing" and "Grid Computing." Both refer to ways of pooling


computational resources to tackle complex problems, but they differ
significantly in their structure and applications.
This article will elucidate these differences, helping you understand which
approach might be best suited for specific needs.

Clustre computing
is a collection of tightly or loosely connected computers that work together so
that they act as a single entity. The connected computers execute operations all
together thus creating the idea of a single system. The clusters are generally
connected through fast local area networks (LANs)

Grid computing
Grid Computing refers to a network of computers, homogeneous or
heterogeneous, working together across different locations to perform complex
tasks. It leverages the unused processing power of multiple machines to achieve
its goals.
Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 17 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Cluster Computing"

Figure: simple cluster node

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 18 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Why is Cluster Computing important?

Cluster computing provides a relatively inexpensive, unconventional


alternative to large server or mainframe solutions.
It resolves the demand for content criticality and process services more
quickly.
Many organizations and IT companies are implementing cluster computing
to improve scalability, availability, processing speed, and resource
management at affordable prices.
It ensures that computational power is always available.
It provides a single, general strategy for implementing and applying
parallel high-performance systems, independent of specific hardware
vendors and their product decisions.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 19 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Comparison between cluster computing and grid


computing

Figure: Comparision between Cluster and grid Computing

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 20 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Real world example of distributed architectures

Distributed system architectures are the backbone of many of today’s most


successful companies and applications. A distributed system is likely deployed
under the hood if it requires scale and resilience. Here are a few examples of
companies that are using distributed architectures at scale
Netflix
Amazon
Uber
Airbnb

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 21 / 25
Introduction to distributed systems Distributed system Architecture and how it works

Revolution of cloud computing

Figure: revolution of cloud computing

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 22 / 25
Introduction to distributed systems Distributed Systems

What are the Key Characteristics of a Distributed


System?

Key Characteristics of Distributed system:

1. Multiple Autonomous Components:


2. Independent computers that communicate through message passing
3. Resource Sharing: Shared access to hardware, software, and data resources
4. Concurrent Processing: Simultaneous execution of processes across
different nodes
5. Transparency: Users perceive the system as a single coherent unit despite
distribution
6. Fault Tolerance: Continued operation despite failures of individual
components

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 23 / 25
Introduction to distributed systems Distributed Systems

Q&A

What is the distributed architecture?


A distributed architecture is a software system deployed across multiple
interconnected computational nodes. These nodes can be physical or virtual
servers, containers, or serverless functions, such as AWS Lambda, Azure
Functions, or Google Cloud Functions. In essence, a distributed architecture
allocates an application’s workload across multiple nodes rather than relying on
a single central server. This approach can enhance scalability, performance,
and resilience by leveraging the processing power of multiple
resources.

What is the primary goal of distributed computing systems?


The primary goal of distributed computing systems is to enhance an
application’s scalability, fault tolerance, and performance. By distributing the
workload across multiple nodes, the system can handle variable volumes of
traffic and data without compromising speed or reliability. Monolithic
architectures tend to struggle with this aspect. Additionally, if one node fails,
the others can continue operating, so processes are not affected by an outage. or
issue can continue
Nasser Mahmoud functioning as intended,
Tamim (Sinai University) ensuring minimal25th
Distributed Systems disruption
November 2025 to the
24 / 25
Introduction to distributed systems Distributed Systems

Conclusion

Distributed architectures are the future of software design, offering


required to meet modern demands. Whether you’re building the next big web
application, developing a blockchain network, or modernizing legacy systems,
understanding how to leverage a distributed architecture is crucial.

Nasser Mahmoud Tamim (Sinai University) Distributed Systems 25th November 2025 25 / 25

You might also like