SlideShare a Scribd company logo
Distributed Systems
Dr. Turkan Ahmed Khaleel
Master's in Computer Engineering
What are Distributed Systems?
Definition
A Distributed System is a collection of independent computers
that cooperate to achieve a common goal. These systems are
designed to handle complex tasks that require distributed
processing, storage, and communication.
Importance Distributed systems are essential for modern applications and
services. They enable scalability, high availability, and fault
tolerance, making them suitable for large-scale data
processing, online platforms, and complex business
operations.
Key Characteristics of
Distributed Systems
Concurrency
Multiple processes can
execute simultaneously. In
file-sharing systems, users
can upload or download files
concurrently.
No Global Clock
Lack of unified time across
components makes
coordination challenging.
Financial trading systems
require special mechanisms
for coordinating
simultaneous price changes
in different regions.
Independent Failures
Components can fail independently without affecting the entire
system. In distributed data storage, if one server fails, others
continue to provide data.
Examples of Distributed Systems
Web Search Engines
Google uses distributed
infrastructure, file systems, and
storage to index billions of web
pages. Their solutions include the
Google File System (GFS) and
Bigtable for fast access to massive
datasets.
Massively Multiplayer Online
Games (MMOGs)
These games support thousands of
players simultaneously using client-
server architecture and partitioning
of the virtual world across different
servers.
Financial Trading Systems
These systems process financial
events in real-time using Complex
Event Processing (CEP) and event-
based distributed systems to analyze
and distribute stock price changes
quickly.
Trends in Distributed Systems
Pervasive Networking
Modern Internet consists of
diverse networks, including
wireless networks like Wi-Fi and
Bluetooth, allowing devices to
connect anywhere, anytime.
Mobile and Ubiquitous
Computing
Mobile devices and embedded
computers in everyday objects
enable access to resources on the
move and from anywhere.
Cloud Computing
Computing resources are provided
as a service, offering flexibility, low
cost, and scalability on demand.
Focus on Resource Sharing
The main goal of distributed systems is sharing resources such as
printers, files, and databases among users. This is often achieved
through the client-server model.
Client
Requests access to resources. For example, a browser
requests web pages from the server.
Server
Manages resources and provides them to clients. For
instance, a web server provides web pages.
Resource
Shared assets like printers, files, or databases that clients
access through the server.
Challenges in Distributed Systems
1
Security
Protecting data from unauthorized access
2
Scalability
Improving performance as users increase
3
Failure Handling
Managing independent component failures
4
Concurrency
Managing simultaneous resource access
5
Transparency
Hiding system complexities from users
Other challenges include heterogeneity, openness, and quality of service. Solutions involve middleware, APIs, encryption, caching, and
synchronization mechanisms.
Real-World Examples of
Distributed Systems
Google Search
Google's search engine
utilizes a massive distributed
system to index billions of
web pages and deliver
relevant results to users.
Facebook
Facebook's social network
relies on a distributed system
to handle billions of user
interactions, store data, and
manage content delivery.
Blockchain
Blockchain technology uses a distributed network of computers to
secure and validate transactions, forming the basis for
cryptocurrencies like Bitcoin.
Key Characteristics of Distributed Systems
Transparency
The system hides the complexity from
from users. Users don't need to know
know where resources are located or
or how data is replicated.
Scalability
Can handle increased load by adding
adding more nodes (computers) to the
the system, increasing processing power
power and capacity.
Fault Tolerance
The system continues working despite
despite failures, ensuring high availability
availability even if individual nodes
experience problems.
Concurrency
Multiple processes can run simultaneously, allowing for parallel
parallel execution and efficient resource utilization.
Resource Sharing
Nodes share resources such as files, databases, and computing
power, enabling collaboration and efficient utilization of
resources.
Challenges of Distributed
Systems
Concurrency
Managing multiple requests
and processes concurrently
across different nodes can
lead to race conditions,
deadlocks, and
inconsistencies.
Data Consistency
Ensuring that data is
consistent across multiple
nodes can be challenging,
requiring mechanisms like
distributed transactions and
consensus protocols.
Network Partitioning
Network failures can isolate nodes, making communication difficult
and requiring strategies like replication and fault tolerance.
Models of Distributed Systems
Architectural Models
• Client-Server: Clients request services from a central server (e.g.,
server (e.g., web browsers, web servers).
• Peer-to-Peer (P2P): No central server, all nodes communicate
communicate directly (e.g., BitTorrent, blockchain networks).
networks).
• Microservices Architecture: Applications are broken into smaller,
smaller, independent services (e.g., Netflix streaming, payments).
payments).
Communication Models
• Synchronous Communication: Sender waits for a response from
response from the receiver.
• Asynchronous Communication: Sender continues execution
execution without waiting for a response.
• Message Passing: Sending data between nodes (e.g., emails,
emails, notifications).
• Remote Procedure Call (RPC): Calling functions remotely, as if
as if they were local (e.g., distributed database queries).
Common Distributed System Models
Client-Server
The most prevalent model. Clients
request services from central servers.
Examples include web applications,
databases, and email services.
Peer-to-Peer
All nodes act as both client and server,
communicating directly with each other.
Examples include file-sharing networks
and blockchain systems.
Microservices
An architectural approach where an
application is decomposed into small,
independent services. Each service runs
independently and communicates
through APIs. It promotes modularity,
scalability, and flexibility.
Building a Basic Client-
Server Model
Step 1: Server Setup
Create a Java server using sockets that listens for incoming
connections and responds to client requests.
Step 2: Client Setup
Create a Java client that connects to the server, sends requests,
and receives responses.
Step 3: Communication
Implement message exchange between the client and server
using streams and data structures.
Case Study: The World Wide
Web
Web Components
HTML for creating web pages,
URLs for identifying
resources, and HTTP for
communication between
browsers and servers.
Dynamic Content
Web pages generated
dynamically using CGI
programs or JavaScript,
allowing for customized
content based on user input.
Web Services
Allow programs to access web resources programmatically using
XML and REST, enabling integration of diverse services and data
sources.
The Future of Distributed
Systems
1 Cloud Computing
Distributed systems are becoming increasingly prevalent in
cloud environments, enabling scalable and flexible solutions
for various applications.
2 Edge Computing
Edge computing brings processing and data storage closer
to the users, enabling low-latency applications and reducing
dependence on centralized data centers.
3 Serverless Architectures
Serverless architectures allow developers to focus on code
without managing servers, leveraging cloud-based platforms
for scalable and efficient execution.
Summary of Distributed Systems
Distributed systems are crucial for resource sharing and power various applications from web search to online gaming.
They face key challenges including heterogeneity, security, scalability, and failure handling.
The World Wide Web stands as a prime example of a successful distributed system, providing global access to
information and services. It demonstrates how distributed systems can revolutionize information sharing and
connectivity on a global scale.
Hands-on: Setting up a basic Client-Server model using
model using Java Sockets
Server Implementation
The server listens for client connections and
and responds with a message. It uses Java
Java Sockets for network communication.
communication.
Client Implementation
The client connects to the server, receives a
receives a response message, and displays it
displays it to the user.
Running the Program
Run the server first, followed by the client.
client. The client will connect to the server
server and receive a response message.
Ad

Recommended

Distributed System Unit 1 Notes by Dr. Nilam Choudhary, SKIT Jaipur
Distributed System Unit 1 Notes by Dr. Nilam Choudhary, SKIT Jaipur
DrNilam Choudhary
 
Unit 1
Unit 1
Karthi Vel
 
Design Issues of Distributed System (1).pptx
Design Issues of Distributed System (1).pptx
vlakshmirajendran1
 
Disadvantages Distributed System.pptx
Disadvantages Distributed System.pptx
vlakshmirajendran1
 
Distributed Systems for Data Sciene and Analytics
Distributed Systems for Data Sciene and Analytics
smartguykrish11
 
chapter-1Introduction to DS,Issues and Architecture.pptx
chapter-1Introduction to DS,Issues and Architecture.pptx
ARULMURUGANRAMU1
 
Lecture_1.pptx Introduction Introduction
Lecture_1.pptx Introduction Introduction
HaiderAli84963
 
Unit 1
Unit 1
Baskarkncet
 
Unit 1
Unit 1
Karthi Vel
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems
Dilum Bandara
 
Distributed System ppt
Distributed System ppt
OECLIB Odisha Electronics Control Library
 
DS ( distributions Systems )chap-01.ppt
DS ( distributions Systems )chap-01.ppt
DostMohammadFahimi
 
18CS3040 DISTRIBUTED SYSTEMS
18CS3040 DISTRIBUTED SYSTEMS
Kathirvel Ayyaswamy
 
Distributed System PPT.pptx
Distributed System PPT.pptx
SELVAVINAYAGAMG
 
- Introduction - Distributed - System -
- Introduction - Distributed - System -
ssuser7c150a
 
Distributed computing
Distributed computing
Alokeparna Choudhury
 
dadaaasfsfsfscvxvvsvxvxvvxvvvxvxvvxvvvvv
dadaaasfsfsfscvxvvsvxvxvvxvvvxvxvvxvvvvv
DahlanzGhani
 
sadadadadcscxzxvxvxxvzvvxvvxvvxvvxvvvvvv
sadadadadcscxzxvxvxxvzvvxvvxvvxvvxvvvvvv
DahlanzGhani
 
20CS2021 DISTRIBUTED COMPUTING
20CS2021 DISTRIBUTED COMPUTING
Kathirvel Ayyaswamy
 
Lecture03.pptx
Lecture03.pptx
Saunya2
 
Introduction of Distributed Systems - Communication
Introduction of Distributed Systems - Communication
vani15332
 
slides15-1.pdf
slides15-1.pdf
ElizabethKalekye
 
The Art of IOS and Distributed System IO
The Art of IOS and Distributed System IO
DahlanzGhani
 
Distributed Computing system
Distributed Computing system
Sarvesh Meena
 
20CS503PE - Distributed systems Introduction.pdf
20CS503PE - Distributed systems Introduction.pdf
vani15332
 
Distributed Systems- Characterization & Design.ppt
Distributed Systems- Characterization & Design.ppt
SELVAVINAYAGAMG
 
Introduction to paralle and distributed computing
Introduction to paralle and distributed computing
HafizMuhammadAzeemAk
 
Distributed Systems in Data Engineering
Distributed Systems in Data Engineering
Oluwasegun Matthew
 
Introduction-to-Distributed-Systems GPU-BilqesF 2.pptx
Introduction-to-Distributed-Systems GPU-BilqesF 2.pptx
bilqesahmed60
 
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdf
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdf
bilqesahmed60
 

More Related Content

Similar to Introduction-to-Distributed-Systems Introduction-to-Distributed-Systems.pdf (20)

Unit 1
Unit 1
Karthi Vel
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems
Dilum Bandara
 
Distributed System ppt
Distributed System ppt
OECLIB Odisha Electronics Control Library
 
DS ( distributions Systems )chap-01.ppt
DS ( distributions Systems )chap-01.ppt
DostMohammadFahimi
 
18CS3040 DISTRIBUTED SYSTEMS
18CS3040 DISTRIBUTED SYSTEMS
Kathirvel Ayyaswamy
 
Distributed System PPT.pptx
Distributed System PPT.pptx
SELVAVINAYAGAMG
 
- Introduction - Distributed - System -
- Introduction - Distributed - System -
ssuser7c150a
 
Distributed computing
Distributed computing
Alokeparna Choudhury
 
dadaaasfsfsfscvxvvsvxvxvvxvvvxvxvvxvvvvv
dadaaasfsfsfscvxvvsvxvxvvxvvvxvxvvxvvvvv
DahlanzGhani
 
sadadadadcscxzxvxvxxvzvvxvvxvvxvvxvvvvvv
sadadadadcscxzxvxvxxvzvvxvvxvvxvvxvvvvvv
DahlanzGhani
 
20CS2021 DISTRIBUTED COMPUTING
20CS2021 DISTRIBUTED COMPUTING
Kathirvel Ayyaswamy
 
Lecture03.pptx
Lecture03.pptx
Saunya2
 
Introduction of Distributed Systems - Communication
Introduction of Distributed Systems - Communication
vani15332
 
slides15-1.pdf
slides15-1.pdf
ElizabethKalekye
 
The Art of IOS and Distributed System IO
The Art of IOS and Distributed System IO
DahlanzGhani
 
Distributed Computing system
Distributed Computing system
Sarvesh Meena
 
20CS503PE - Distributed systems Introduction.pdf
20CS503PE - Distributed systems Introduction.pdf
vani15332
 
Distributed Systems- Characterization & Design.ppt
Distributed Systems- Characterization & Design.ppt
SELVAVINAYAGAMG
 
Introduction to paralle and distributed computing
Introduction to paralle and distributed computing
HafizMuhammadAzeemAk
 
Distributed Systems in Data Engineering
Distributed Systems in Data Engineering
Oluwasegun Matthew
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems
Dilum Bandara
 
DS ( distributions Systems )chap-01.ppt
DS ( distributions Systems )chap-01.ppt
DostMohammadFahimi
 
Distributed System PPT.pptx
Distributed System PPT.pptx
SELVAVINAYAGAMG
 
- Introduction - Distributed - System -
- Introduction - Distributed - System -
ssuser7c150a
 
dadaaasfsfsfscvxvvsvxvxvvxvvvxvxvvxvvvvv
dadaaasfsfsfscvxvvsvxvxvvxvvvxvxvvxvvvvv
DahlanzGhani
 
sadadadadcscxzxvxvxxvzvvxvvxvvxvvxvvvvvv
sadadadadcscxzxvxvxxvzvvxvvxvvxvvxvvvvvv
DahlanzGhani
 
Lecture03.pptx
Lecture03.pptx
Saunya2
 
Introduction of Distributed Systems - Communication
Introduction of Distributed Systems - Communication
vani15332
 
The Art of IOS and Distributed System IO
The Art of IOS and Distributed System IO
DahlanzGhani
 
Distributed Computing system
Distributed Computing system
Sarvesh Meena
 
20CS503PE - Distributed systems Introduction.pdf
20CS503PE - Distributed systems Introduction.pdf
vani15332
 
Distributed Systems- Characterization & Design.ppt
Distributed Systems- Characterization & Design.ppt
SELVAVINAYAGAMG
 
Introduction to paralle and distributed computing
Introduction to paralle and distributed computing
HafizMuhammadAzeemAk
 
Distributed Systems in Data Engineering
Distributed Systems in Data Engineering
Oluwasegun Matthew
 

More from bilqesahmed60 (8)

Introduction-to-Distributed-Systems GPU-BilqesF 2.pptx
Introduction-to-Distributed-Systems GPU-BilqesF 2.pptx
bilqesahmed60
 
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdf
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdf
bilqesahmed60
 
Lecutre 7 Wireless Mesh Networks_Part 2.pdf
Lecutre 7 Wireless Mesh Networks_Part 2.pdf
bilqesahmed60
 
Illumination Models in graphic computer vision and Shading.pptx
Illumination Models in graphic computer vision and Shading.pptx
bilqesahmed60
 
Optimized Link State Routing in wireless (OLSR).pdf
Optimized Link State Routing in wireless (OLSR).pdf
bilqesahmed60
 
Ch 1 Introduction to AI Applications.pdf
Ch 1 Introduction to AI Applications.pdf
bilqesahmed60
 
Chapter 15 wireless network and Bluetooth.pdf
Chapter 15 wireless network and Bluetooth.pdf
bilqesahmed60
 
Lecture 1 Wireless Local Area Network for print.pdf
Lecture 1 Wireless Local Area Network for print.pdf
bilqesahmed60
 
Introduction-to-Distributed-Systems GPU-BilqesF 2.pptx
Introduction-to-Distributed-Systems GPU-BilqesF 2.pptx
bilqesahmed60
 
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdf
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdf
bilqesahmed60
 
Lecutre 7 Wireless Mesh Networks_Part 2.pdf
Lecutre 7 Wireless Mesh Networks_Part 2.pdf
bilqesahmed60
 
Illumination Models in graphic computer vision and Shading.pptx
Illumination Models in graphic computer vision and Shading.pptx
bilqesahmed60
 
Optimized Link State Routing in wireless (OLSR).pdf
Optimized Link State Routing in wireless (OLSR).pdf
bilqesahmed60
 
Ch 1 Introduction to AI Applications.pdf
Ch 1 Introduction to AI Applications.pdf
bilqesahmed60
 
Chapter 15 wireless network and Bluetooth.pdf
Chapter 15 wireless network and Bluetooth.pdf
bilqesahmed60
 
Lecture 1 Wireless Local Area Network for print.pdf
Lecture 1 Wireless Local Area Network for print.pdf
bilqesahmed60
 
Ad

Recently uploaded (20)

Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Mark Billinghurst
 
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
resming1
 
Complete University of Calculus :: 2nd edition
Complete University of Calculus :: 2nd edition
Shabista Imam
 
International Journal of Advanced Information Technology (IJAIT)
International Journal of Advanced Information Technology (IJAIT)
ijait
 
AI_Presentation (1). Artificial intelligence
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
 
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
 
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
 
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
Shabista Imam
 
تقرير عن التحليل الديناميكي لتدفق الهواء حول جناح.pdf
تقرير عن التحليل الديناميكي لتدفق الهواء حول جناح.pdf
محمد قصص فتوتة
 
Introduction to sensing and Week-1.pptx
Introduction to sensing and Week-1.pptx
KNaveenKumarECE
 
دراسة حاله لقرية تقع في جنوب غرب السودان
دراسة حاله لقرية تقع في جنوب غرب السودان
محمد قصص فتوتة
 
Modern multi-proposer consensus implementations
Modern multi-proposer consensus implementations
François Garillot
 
Structured Programming with C++ :: Kjell Backman
Structured Programming with C++ :: Kjell Backman
Shabista Imam
 
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
Complete guidance book of Asp.Net Web API
Complete guidance book of Asp.Net Web API
Shabista Imam
 
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
 
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
hosseinihamid192023
 
Proposal for folders structure division in projects.pdf
Proposal for folders structure division in projects.pdf
Mohamed Ahmed
 
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Mark Billinghurst
 
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
resming1
 
Complete University of Calculus :: 2nd edition
Complete University of Calculus :: 2nd edition
Shabista Imam
 
International Journal of Advanced Information Technology (IJAIT)
International Journal of Advanced Information Technology (IJAIT)
ijait
 
AI_Presentation (1). Artificial intelligence
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
 
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
 
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
 
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
Shabista Imam
 
تقرير عن التحليل الديناميكي لتدفق الهواء حول جناح.pdf
تقرير عن التحليل الديناميكي لتدفق الهواء حول جناح.pdf
محمد قصص فتوتة
 
Introduction to sensing and Week-1.pptx
Introduction to sensing and Week-1.pptx
KNaveenKumarECE
 
دراسة حاله لقرية تقع في جنوب غرب السودان
دراسة حاله لقرية تقع في جنوب غرب السودان
محمد قصص فتوتة
 
Modern multi-proposer consensus implementations
Modern multi-proposer consensus implementations
François Garillot
 
Structured Programming with C++ :: Kjell Backman
Structured Programming with C++ :: Kjell Backman
Shabista Imam
 
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
Complete guidance book of Asp.Net Web API
Complete guidance book of Asp.Net Web API
Shabista Imam
 
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
 
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
hosseinihamid192023
 
Proposal for folders structure division in projects.pdf
Proposal for folders structure division in projects.pdf
Mohamed Ahmed
 
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
Ad

Introduction-to-Distributed-Systems Introduction-to-Distributed-Systems.pdf

  • 1. Distributed Systems Dr. Turkan Ahmed Khaleel Master's in Computer Engineering
  • 2. What are Distributed Systems? Definition A Distributed System is a collection of independent computers that cooperate to achieve a common goal. These systems are designed to handle complex tasks that require distributed processing, storage, and communication. Importance Distributed systems are essential for modern applications and services. They enable scalability, high availability, and fault tolerance, making them suitable for large-scale data processing, online platforms, and complex business operations.
  • 3. Key Characteristics of Distributed Systems Concurrency Multiple processes can execute simultaneously. In file-sharing systems, users can upload or download files concurrently. No Global Clock Lack of unified time across components makes coordination challenging. Financial trading systems require special mechanisms for coordinating simultaneous price changes in different regions. Independent Failures Components can fail independently without affecting the entire system. In distributed data storage, if one server fails, others continue to provide data.
  • 4. Examples of Distributed Systems Web Search Engines Google uses distributed infrastructure, file systems, and storage to index billions of web pages. Their solutions include the Google File System (GFS) and Bigtable for fast access to massive datasets. Massively Multiplayer Online Games (MMOGs) These games support thousands of players simultaneously using client- server architecture and partitioning of the virtual world across different servers. Financial Trading Systems These systems process financial events in real-time using Complex Event Processing (CEP) and event- based distributed systems to analyze and distribute stock price changes quickly.
  • 5. Trends in Distributed Systems Pervasive Networking Modern Internet consists of diverse networks, including wireless networks like Wi-Fi and Bluetooth, allowing devices to connect anywhere, anytime. Mobile and Ubiquitous Computing Mobile devices and embedded computers in everyday objects enable access to resources on the move and from anywhere. Cloud Computing Computing resources are provided as a service, offering flexibility, low cost, and scalability on demand.
  • 6. Focus on Resource Sharing The main goal of distributed systems is sharing resources such as printers, files, and databases among users. This is often achieved through the client-server model. Client Requests access to resources. For example, a browser requests web pages from the server. Server Manages resources and provides them to clients. For instance, a web server provides web pages. Resource Shared assets like printers, files, or databases that clients access through the server.
  • 7. Challenges in Distributed Systems 1 Security Protecting data from unauthorized access 2 Scalability Improving performance as users increase 3 Failure Handling Managing independent component failures 4 Concurrency Managing simultaneous resource access 5 Transparency Hiding system complexities from users Other challenges include heterogeneity, openness, and quality of service. Solutions involve middleware, APIs, encryption, caching, and synchronization mechanisms.
  • 8. Real-World Examples of Distributed Systems Google Search Google's search engine utilizes a massive distributed system to index billions of web pages and deliver relevant results to users. Facebook Facebook's social network relies on a distributed system to handle billions of user interactions, store data, and manage content delivery. Blockchain Blockchain technology uses a distributed network of computers to secure and validate transactions, forming the basis for cryptocurrencies like Bitcoin.
  • 9. Key Characteristics of Distributed Systems Transparency The system hides the complexity from from users. Users don't need to know know where resources are located or or how data is replicated. Scalability Can handle increased load by adding adding more nodes (computers) to the the system, increasing processing power power and capacity. Fault Tolerance The system continues working despite despite failures, ensuring high availability availability even if individual nodes experience problems. Concurrency Multiple processes can run simultaneously, allowing for parallel parallel execution and efficient resource utilization. Resource Sharing Nodes share resources such as files, databases, and computing power, enabling collaboration and efficient utilization of resources.
  • 10. Challenges of Distributed Systems Concurrency Managing multiple requests and processes concurrently across different nodes can lead to race conditions, deadlocks, and inconsistencies. Data Consistency Ensuring that data is consistent across multiple nodes can be challenging, requiring mechanisms like distributed transactions and consensus protocols. Network Partitioning Network failures can isolate nodes, making communication difficult and requiring strategies like replication and fault tolerance.
  • 11. Models of Distributed Systems Architectural Models • Client-Server: Clients request services from a central server (e.g., server (e.g., web browsers, web servers). • Peer-to-Peer (P2P): No central server, all nodes communicate communicate directly (e.g., BitTorrent, blockchain networks). networks). • Microservices Architecture: Applications are broken into smaller, smaller, independent services (e.g., Netflix streaming, payments). payments). Communication Models • Synchronous Communication: Sender waits for a response from response from the receiver. • Asynchronous Communication: Sender continues execution execution without waiting for a response. • Message Passing: Sending data between nodes (e.g., emails, emails, notifications). • Remote Procedure Call (RPC): Calling functions remotely, as if as if they were local (e.g., distributed database queries).
  • 12. Common Distributed System Models Client-Server The most prevalent model. Clients request services from central servers. Examples include web applications, databases, and email services. Peer-to-Peer All nodes act as both client and server, communicating directly with each other. Examples include file-sharing networks and blockchain systems. Microservices An architectural approach where an application is decomposed into small, independent services. Each service runs independently and communicates through APIs. It promotes modularity, scalability, and flexibility.
  • 13. Building a Basic Client- Server Model Step 1: Server Setup Create a Java server using sockets that listens for incoming connections and responds to client requests. Step 2: Client Setup Create a Java client that connects to the server, sends requests, and receives responses. Step 3: Communication Implement message exchange between the client and server using streams and data structures.
  • 14. Case Study: The World Wide Web Web Components HTML for creating web pages, URLs for identifying resources, and HTTP for communication between browsers and servers. Dynamic Content Web pages generated dynamically using CGI programs or JavaScript, allowing for customized content based on user input. Web Services Allow programs to access web resources programmatically using XML and REST, enabling integration of diverse services and data sources.
  • 15. The Future of Distributed Systems 1 Cloud Computing Distributed systems are becoming increasingly prevalent in cloud environments, enabling scalable and flexible solutions for various applications. 2 Edge Computing Edge computing brings processing and data storage closer to the users, enabling low-latency applications and reducing dependence on centralized data centers. 3 Serverless Architectures Serverless architectures allow developers to focus on code without managing servers, leveraging cloud-based platforms for scalable and efficient execution.
  • 16. Summary of Distributed Systems Distributed systems are crucial for resource sharing and power various applications from web search to online gaming. They face key challenges including heterogeneity, security, scalability, and failure handling. The World Wide Web stands as a prime example of a successful distributed system, providing global access to information and services. It demonstrates how distributed systems can revolutionize information sharing and connectivity on a global scale.
  • 17. Hands-on: Setting up a basic Client-Server model using model using Java Sockets Server Implementation The server listens for client connections and and responds with a message. It uses Java Java Sockets for network communication. communication. Client Implementation The client connects to the server, receives a receives a response message, and displays it displays it to the user. Running the Program Run the server first, followed by the client. client. The client will connect to the server server and receive a response message.