Distributed System Unit 1 Notes by Dr. Nilam Choudhary, SKIT JaipurDrNilam Choudhary
The document discusses distributed systems, describing them as collections of autonomous computer systems linked by a network, facilitating resource sharing and communication. It outlines characteristics, advantages, and disadvantages of such systems, and highlights applications across various domains including finance, healthcare, and e-learning. Additionally, it details different models and types of distributed systems, such as client-server, peer-to-peer, and cluster computing, along with their respective benefits and challenges.
Distributed systems allow sharing of resources between networked computers. They are characterized by multiple autonomous components that are not universally accessible due to failures or concurrency. Key challenges in distributed systems include heterogeneity, security, scalability, failure handling and concurrency. The World Wide Web is a prominent example of a distributed system, allowing global access to resources stored on servers worldwide.
The document discusses the design issues and characteristics of distributed systems, highlighting aspects such as scalability, reliability, availability, consistency, and security. It explores various architectural styles including client-server, peer-to-peer, and microservices, along with communication issues and data management strategies within these systems. Additionally, it outlines the advantages and disadvantages of distributed systems and their software components, emphasizing the need for effective resource sharing and fault tolerance.
The document discusses the design issues of distributed systems, focusing on aspects such as scalability, reliability, availability, consistency, and security. It outlines architectural design patterns, communication issues, and data management strategies, detailing challenges and advantages of distributed systems. Additionally, various architectural styles, including layered and peer-to-peer architectures, are described along with their functions and implications for system performance.
chapter-1Introduction to DS,Issues and Architecture.pptxARULMURUGANRAMU1
The document provides an overview of distributed systems, emphasizing their importance in modern applications like cloud computing, online platforms, and peer-to-peer networks. It discusses the advantages, such as resource sharing, reliability, and scalability, as well as challenges like centralized bottlenecks and security concerns. Additionally, it outlines various architectures and types of distributed systems while highlighting their key characteristics and potential disadvantages.
A distributed system is a collection of independent computers that appears as a single coherent system to its users. It allows sharing of resources and workload across networked computers. Key characteristics include multiple autonomous components, lack of shared memory, and message-based communication. The World Wide Web is a large-scale distributed system that allows sharing of documents, files, and other resources across the internet through web servers and browsers. It faces challenges like heterogeneity, security, scalability, and fault tolerance.
This document provides an overview of distributed systems. It defines a distributed system as a collection of independent computers that appears as a single coherent system to users. Distributed systems are characterized by no shared memory, each computer running its own OS, and potential heterogeneity. Key advantages include resource sharing, fault tolerance, and scalability. Challenges include heterogeneity, security, failure handling and concurrency. Examples of distributed systems given are the web, online games, and financial trading networks. The World Wide Web is discussed as a case study, with definitions of web servers, browsers, pages and search engines.
01 - Introduction to Distributed SystemsDilum Bandara
The document provides an introduction to distributed systems, defining them as systems where multiple independent computers communicate only through message passing to achieve a common goal. It highlights key characteristics, applications such as online stores and IoT, and challenges including concurrency, fault tolerance, and scalability. The document also discusses design goals like transparency and availability, as well as the evolution of distributed systems over time.
The document is an overview of distributed systems, defining them as systems where components at different networked computers communicate by passing messages. It covers types of distributed systems, examples, common characteristics, design issues, advantages, and disadvantages. Key elements include concurrency, lack of a global clock, and fault tolerance, along with a focus on security, scalability, and system architecture.
The document provides an overview of distributed systems, defining them as collections of independent computers that present a unified interface to users. It discusses essential goals such as resource accessibility, scalability, transparency, and the common pitfalls faced by developers. Additionally, it explores various types of distributed systems, including distributed computing, information systems, and pervasive systems, along with their architectural requirements and challenges.
This document provides an overview of the syllabus for the course 18CS3040 Distributed Systems. It introduces the topics that will be covered in each of the 6 modules, including introduction to distributed systems, distributed objects and file systems, name services and global states, distributed transaction and concurrency control, replication and distributed shared memory, and distributed multimedia systems. It also lists the course objectives and outcomes, such as describing distributed system models, distinguishing inter-process communication mechanisms, and evaluating efficient distributed systems.
A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages. The document discusses the definition and types of distributed systems, including distributed computing systems, distributed information systems, and distributed pervasive systems. It also covers common characteristics like heterogeneity, openness, security, scalability, and transparency. Basic design issues for distributed systems such as naming, communication, software structure, and system architectures are also explained.
- Introduction - Distributed - System -ssuser7c150a
The document provides an introduction to distributed systems, including defining their key characteristics and challenges. It discusses how distributed systems allow independent computers to coordinate activities and share resources over a network. Examples of distributed systems include the internet, intranets, cloud computing systems, and wireless networks. The main goals of distributed systems are transparency, openness, and scalability, while the key challenges are heterogeneity, distribution transparency, fault tolerance, and security.
The document provides an overview of distributed computing, contrasting it with centralized computing, and discusses its key characteristics, architectures, advantages, and challenges. It traces the evolution of distributed computing from its early days to current applications, emphasizing resource sharing, scalability, and fault tolerance. Additionally, the document highlights issues such as security, heterogeneity, and failure handling that arise in distributed systems.
The document outlines the 20CS2021 Distributed Computing module, covering key concepts such as distributed systems, inter-process communication, and transaction control. It includes course objectives, outcomes, and various topics across six modules, detailing the architecture, file systems, multimedia systems, name services, and replication strategies. Additionally, it provides references to textbooks and various application domains of distributed systems.
This document discusses the concepts of distributed systems and virtualization, including definitions of distributed systems, their characteristics and advantages/disadvantages. Key aspects covered include how distributed systems allow sharing of hardware, software and data resources across networked computers, as well as common applications and examples of distributed systems in areas like finance, information services and cloud technologies.
Introduction of Distributed Systems - Communicationvani15332
The document introduces distributed systems, defining them as collections of networked computers that communicate through message passing without shared memory. It outlines the differences between centralized and distributed systems, their architectures, characteristics, and various examples including online gaming, web search engines, and financial trading systems. Additionally, it discusses challenges faced by distributed systems such as heterogeneity, scalability, and concurrency, along with communication methods like unicast, broadcast, and multicast.
This document provides an overview of the Distributed Systems course at the University of Tartu, Institute of Computer Science. It outlines the practical details of the course including lectures, discussion seminars, homework assignments and exams. It also introduces some of the key topics that will be covered such as characterizing distributed systems, examples of distributed systems, trends in distributed computing and challenges in building distributed systems such as heterogeneity, openness and security.
This document provides an overview of distributed computing. It discusses the history and introduction of distributed computing. It describes the working of distributed systems and common types like grid computing, cluster computing and cloud computing. It covers the motivations, goals, characteristics, architectures, security challenges and examples of distributed computing. Advantages include improved performance and fault tolerance, while disadvantages are security issues and lost messages.
20CS503PE - Distributed systems Introduction.pdfvani15332
The document provides a comprehensive overview of distributed systems, defining them as systems where components located on networked computers communicate solely through message passing. It discusses key architectures, characteristics, examples (such as web search, online gaming, and financial trading), and the challenges associated with distributed systems, including heterogeneity and scalability. Additionally, it covers communication methods and protocols essential for effective functioning in such systems.
This document discusses distributed systems, outlining their key characteristics and design issues. Distributed systems are defined as those where components located at networked computers communicate only by passing messages. Common characteristics include concurrency, lack of a global clock, and independent component failures. Basic design issues involve naming, communication, software structure, system architecture, workload allocation, and consistency maintenance.
The document discusses the fundamentals of distributed systems in data engineering, emphasizing the client-server architecture and its impact on data architectures. It outlines key technologies such as messaging systems, in-memory caching, and data streaming tools, along with important considerations when transitioning from development to production. Additionally, practical exercises are provided to reinforce the concepts learned, culminating in a call for mentorship and collaboration.
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdfbilqesahmed60
The document provides an overview of wireless mesh networks (WMNs), highlighting their components, challenges, and the importance of MAC and routing protocols to enhance performance. It emphasizes the benefits such as scalability and low installation costs while noting issues like interference and channel utilization. Several protocols and strategies are discussed to address these challenges, particularly in relation to multicast applications and dynamic network configurations.
More Related Content
Similar to Introduction-to-Distributed-Systems Introduction-to-Distributed-Systems.pdf (20)
This document provides an overview of distributed systems. It defines a distributed system as a collection of independent computers that appears as a single coherent system to users. Distributed systems are characterized by no shared memory, each computer running its own OS, and potential heterogeneity. Key advantages include resource sharing, fault tolerance, and scalability. Challenges include heterogeneity, security, failure handling and concurrency. Examples of distributed systems given are the web, online games, and financial trading networks. The World Wide Web is discussed as a case study, with definitions of web servers, browsers, pages and search engines.
01 - Introduction to Distributed SystemsDilum Bandara
The document provides an introduction to distributed systems, defining them as systems where multiple independent computers communicate only through message passing to achieve a common goal. It highlights key characteristics, applications such as online stores and IoT, and challenges including concurrency, fault tolerance, and scalability. The document also discusses design goals like transparency and availability, as well as the evolution of distributed systems over time.
The document is an overview of distributed systems, defining them as systems where components at different networked computers communicate by passing messages. It covers types of distributed systems, examples, common characteristics, design issues, advantages, and disadvantages. Key elements include concurrency, lack of a global clock, and fault tolerance, along with a focus on security, scalability, and system architecture.
The document provides an overview of distributed systems, defining them as collections of independent computers that present a unified interface to users. It discusses essential goals such as resource accessibility, scalability, transparency, and the common pitfalls faced by developers. Additionally, it explores various types of distributed systems, including distributed computing, information systems, and pervasive systems, along with their architectural requirements and challenges.
This document provides an overview of the syllabus for the course 18CS3040 Distributed Systems. It introduces the topics that will be covered in each of the 6 modules, including introduction to distributed systems, distributed objects and file systems, name services and global states, distributed transaction and concurrency control, replication and distributed shared memory, and distributed multimedia systems. It also lists the course objectives and outcomes, such as describing distributed system models, distinguishing inter-process communication mechanisms, and evaluating efficient distributed systems.
A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages. The document discusses the definition and types of distributed systems, including distributed computing systems, distributed information systems, and distributed pervasive systems. It also covers common characteristics like heterogeneity, openness, security, scalability, and transparency. Basic design issues for distributed systems such as naming, communication, software structure, and system architectures are also explained.
- Introduction - Distributed - System -ssuser7c150a
The document provides an introduction to distributed systems, including defining their key characteristics and challenges. It discusses how distributed systems allow independent computers to coordinate activities and share resources over a network. Examples of distributed systems include the internet, intranets, cloud computing systems, and wireless networks. The main goals of distributed systems are transparency, openness, and scalability, while the key challenges are heterogeneity, distribution transparency, fault tolerance, and security.
The document provides an overview of distributed computing, contrasting it with centralized computing, and discusses its key characteristics, architectures, advantages, and challenges. It traces the evolution of distributed computing from its early days to current applications, emphasizing resource sharing, scalability, and fault tolerance. Additionally, the document highlights issues such as security, heterogeneity, and failure handling that arise in distributed systems.
The document outlines the 20CS2021 Distributed Computing module, covering key concepts such as distributed systems, inter-process communication, and transaction control. It includes course objectives, outcomes, and various topics across six modules, detailing the architecture, file systems, multimedia systems, name services, and replication strategies. Additionally, it provides references to textbooks and various application domains of distributed systems.
This document discusses the concepts of distributed systems and virtualization, including definitions of distributed systems, their characteristics and advantages/disadvantages. Key aspects covered include how distributed systems allow sharing of hardware, software and data resources across networked computers, as well as common applications and examples of distributed systems in areas like finance, information services and cloud technologies.
Introduction of Distributed Systems - Communicationvani15332
The document introduces distributed systems, defining them as collections of networked computers that communicate through message passing without shared memory. It outlines the differences between centralized and distributed systems, their architectures, characteristics, and various examples including online gaming, web search engines, and financial trading systems. Additionally, it discusses challenges faced by distributed systems such as heterogeneity, scalability, and concurrency, along with communication methods like unicast, broadcast, and multicast.
This document provides an overview of the Distributed Systems course at the University of Tartu, Institute of Computer Science. It outlines the practical details of the course including lectures, discussion seminars, homework assignments and exams. It also introduces some of the key topics that will be covered such as characterizing distributed systems, examples of distributed systems, trends in distributed computing and challenges in building distributed systems such as heterogeneity, openness and security.
This document provides an overview of distributed computing. It discusses the history and introduction of distributed computing. It describes the working of distributed systems and common types like grid computing, cluster computing and cloud computing. It covers the motivations, goals, characteristics, architectures, security challenges and examples of distributed computing. Advantages include improved performance and fault tolerance, while disadvantages are security issues and lost messages.
20CS503PE - Distributed systems Introduction.pdfvani15332
The document provides a comprehensive overview of distributed systems, defining them as systems where components located on networked computers communicate solely through message passing. It discusses key architectures, characteristics, examples (such as web search, online gaming, and financial trading), and the challenges associated with distributed systems, including heterogeneity and scalability. Additionally, it covers communication methods and protocols essential for effective functioning in such systems.
This document discusses distributed systems, outlining their key characteristics and design issues. Distributed systems are defined as those where components located at networked computers communicate only by passing messages. Common characteristics include concurrency, lack of a global clock, and independent component failures. Basic design issues involve naming, communication, software structure, system architecture, workload allocation, and consistency maintenance.
The document discusses the fundamentals of distributed systems in data engineering, emphasizing the client-server architecture and its impact on data architectures. It outlines key technologies such as messaging systems, in-memory caching, and data streaming tools, along with important considerations when transitioning from development to production. Additionally, practical exercises are provided to reinforce the concepts learned, culminating in a call for mentorship and collaboration.
Lecture 7 Overview of Wireless Mesh Networks_Part 1.pdfbilqesahmed60
The document provides an overview of wireless mesh networks (WMNs), highlighting their components, challenges, and the importance of MAC and routing protocols to enhance performance. It emphasizes the benefits such as scalability and low installation costs while noting issues like interference and channel utilization. Several protocols and strategies are discussed to address these challenges, particularly in relation to multicast applications and dynamic network configurations.
The document discusses wireless mesh networks (WMNs), their applications, and compares them to other networking technologies such as ad-hoc networks and wireless sensor networks. It outlines the architecture, routing protocols, and performance specifications of WMNs, emphasizing scalability, efficiency, and reliability in varying scenarios including emergency response and mobile internet access. The content also highlights challenges in TCP performance and the importance of cross-layer design in optimizing network functionality.
Illumination Models in graphic computer vision and Shading.pptxbilqesahmed60
The document discusses various illumination and shading models used for rendering realistic images, covering ambient, diffuse, and specular reflections, along with polygon rendering techniques. It details how different factors such as light sources, surface properties, and camera parameters affect light reflection, and introduces methods like flat, Gouraud, and Phong shading for calculating light intensity on surfaces. Additionally, it addresses texture mapping and techniques for enhancing surface detail in computer graphics.
Optimized Link State Routing in wireless (OLSR).pdfbilqesahmed60
The document discusses the Optimized Link State Routing Protocol (OLSR) for Mobile Ad Hoc Networks (MANETs), describing its proactive and reactive routing protocols. OLSR optimizes the classical link state algorithm by using Multipoint Relays (MPRs) to minimize message overhead and maintain routes efficiently. While OLSR offers advantages in large, dense networks, it also presents challenges such as increased control message overhead and processing power requirements during route discovery.
Ch 1 Introduction to AI Applications.pdfbilqesahmed60
The document discusses the definition and goals of artificial intelligence (AI), its historical evolution, subfields, and real-world applications. It emphasizes various viewpoints on AI, including human-like thinking, rational acting, and reveals the diverse techniques involved, such as neural networks and robotics. It also outlines the challenges and future prospects of AI reaching human-level intelligence and its impacts on society.
Chapter 15 wireless network and Bluetooth.pdfbilqesahmed60
This document discusses wireless Local Area Networks (LANs), focusing on two types: IEEE 802.11 (wireless Ethernet) and Bluetooth (personal area networks). It covers the architecture, characteristics, access control methods, and the MAC sublayers involved in these networks, highlighting the differences from wired networks. Additionally, it addresses issues such as mobility, access methods, and error management inherent in wireless communication.
Lecture 1 Wireless Local Area Network for print.pdfbilqesahmed60
The document discusses the IEEE 802.11 standard for wireless local area networks (WLAN), detailing its architecture, various amendments, functionalities, and protocols such as distributed coordination function (DCF) and point coordination function (PCF). It explains the significance of access points, medium access methods, and collision avoidance protocols in WLAN communication. Additionally, it reviews key features including frequency bands, data rates, and the impact of interference and signal characteristics in wireless networking.
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptxresming1
This gives an introduction to how NLP has evolved from the time of World War II till this date through the advances in approaches, architectures and word representations. From rule based approaches, it advanced to statistical approaches. from traditional machine learning algorithms it advanced to deep neural network architectures. Deep neural architectures include recurrent neural networks, long short term memory, gated recurrent units, seq2seq models, encoder decoder models, transformer architecture, upto large language models and vision language models which are multimodal in nature.
Complete University of Calculus :: 2nd editionShabista Imam
Master the language of change with the Complete Guidance Book of Calculus—your comprehensive resource for understanding the core concepts and applications of differential and integral calculus. Designed for high school, college, and self-study learners, this book takes a clear, intuitive approach to a subject often considered challenging.
International Journal of Advanced Information Technology (IJAIT)ijait
International journal of advanced Information technology (IJAIT) is a bi monthly open access peer-
reviewed journal, will act as a major forum for the presentation of innovative ideas, approaches,
developments, and research projects in the area advanced information technology applications and
services. It will also serve to facilitate the exchange of information between researchers and industry
professionals to discuss the latest issues and advancement in the area of advanced IT. Core areas of
advanced IT and multi-disciplinary and its applications will be covered during the conferences.
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.Mark Billinghurst
This is lecture 4 in the course on Rapid Prototyping for XR, taught by Mark Billinghurst on June 11th, 2025. This lecture is about High Level Prototyping.
Multi-proposer consensus protocols let multiple validators propose blocks in parallel, breaking the single-leader throughput bottleneck of classic designs. Yet the modern multi-proposer consensus implementation has grown a lot since HotStuff. THisworkshop will explore the implementation details of recent advances – DAG-based approaches like Narwhal and Sui’s Mysticeti – and reveal how implementation details translate to real-world performance gains. We focus on the nitty-gritty: how network communication patterns and data handling affect throughput and latency. New techniques such as Turbine-like block propagation (inspired by Solana’s erasure-coded broadcast) and lazy push gossip broadcasting dramatically cut communication overhead. These optimizations aren’t just theoretical – they enable modern blockchains to process over 100,000 transactions per second with finality in mere milliseconds redefining what is possible in decentralized systems.
Structured Programming with C++ :: Kjell BackmanShabista Imam
Step into the world of high-performance programming with the Complete Guidance Book of C++ Programming—a definitive resource for mastering one of the most powerful and versatile languages in computer science.
Whether you're a beginner looking to learn the fundamentals or an intermediate developer aiming to sharpen your skills, this book walks you through C++ from the ground up. You'll start with basics like variables, control structures, and functions, then progress to object-oriented programming (OOP), memory management, file handling, templates, and the Standard Template Library (STL).
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management ProcessIJDKP
Data mining and knowledge discovery in databases have been attracting a significant amount of research, industry, and media attention of late. There is an urgent need for a new generation of computational theories and tools to assist researchers in extracting useful information from the rapidly growing volumes of digital data.
This Journal provides a forum for researchers who address this issue and to present their work in a peer-reviewed open access forum. Authors are solicited to contribute to the Journal by submitting articles that illustrate research results, projects, surveying works and industrial experiences that describe significant advances in the following areas, but are not limited to these topics only.
Complete guidance book of Asp.Net Web APIShabista Imam
Unlock the full potential of modern web development with the Complete Guidance Book of ASP.NET Web API—your all-in-one resource for mastering RESTful services using Microsoft’s powerful ASP.NET Core framework. This book takes you on a step-by-step journey from beginner to expert, covering everything from routing and controllers to security, performance optimization, and real-world architecture.
Call For Papers - 17th International Conference on Wireless & Mobile Networks...hosseinihamid192023
17th International Conference on Wireless & Mobile Networks (WiMoNe 2025) will provide
an excellent international forum for sharing knowledge and results in theory, methodology and
applications of Wireless & Mobile computing Environment. Current information age is witnessing
a dramatic use of digital and electronic devices in the workplace and beyond. Wireless, Mobile
Networks & its applications had received a significant and sustained research interest in terms of
designing and deploying large scale and high performance computational applications in real life.
The aim of the conference is to provide a platform to the researchers and practitioners from both
academia as well as industry to meet and share cutting-edge development in the field.
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.