Distributed System Architecture
Distributed System Architecture
Distributed System Architecture
Distributed systems are networks of independent computers that work together to present themselves as
a unified system. These systems share resources and coordinate tasks across multiple nodes, allowing
them to work collectively to achieve common goals.
The architecture of a distributed system defines how components interact and are structured to achieve
scalability, reliability, and efficiency.
Layered Architecture
Layered architecture organizes the system into hierarchical layers, each with specific functions and
responsibilities. This design pattern helps manage complexity and promotes separation of concerns. The system
is divided into distinct layers, where each layer provides specific services and interacts only with adjacent layers 1.
For example, web applications often use layered architecture with a presentation layer (user interface),
application layer (business logic), and data access layer (database interactions) 1.
In P2P architecture, each node, or "peer," acts as both a client and a server, contributing resources and services to
the network. This decentralized network design contrasts with traditional client-server models, where nodes have
distinct roles as clients or servers1. Systems like BitTorrent use P2P architecture to allow users to share and
download files from multiple peers1.
Data-Centric Architecture
Data-centric architecture focuses on the central management and utilization of data. In this approach, data is
treated as a critical asset, and the system is designed around data management, storage, and retrieval processes 1.
Relational databases like MySQL and PostgreSQL use data-centric architecture to manage and store structured
data efficiently1.
SOA is a design paradigm where software components, known as "services," are provided and consumed across a
network. Each service performs a specific business function and communicates with other services through
standardized protocols1. SOA is commonly used to integrate various enterprise applications such as ERP, CRM,
and HR systems1.
Event-Based Architecture
Event-Driven Architecture (EDA) is an architectural pattern where the flow of data and control in a system is
driven by events. Components in an EDA system communicate by producing and consuming events, which
represent state changes or actions within the system1. Real-time analytics systems like stock trading platforms use
EDA to process and respond to market events in real time1.
Microservices Architecture
Microservices architecture is a design pattern where an application is composed of small, independent services
that each perform a specific function. These services are loosely coupled and interact with each other through
lightweight communication protocols1. Companies like Netflix employ microservices to manage different
functionalities, such as recommendation engines, content delivery, and user interfaces1.
Client-Server Architecture
Client-server architecture is a foundational model where the system is divided into two main components: clients
and servers. Clients request services or resources, while servers provide those services or resources1. Web
applications and email systems commonly use client-server architecture.
Peer-to-Peer Architecture
If a new node wishes to provide services, it can do so in two ways. One way is
to register with a centralized lookup server, which will then direct the node to
the service provider. The other way is for the node to broadcast its service
request to every other node in the network, and whichever node responds will
provide the requested service.
P2P networks of today have three separate sections:
Structured P2P: The nodes in structured P2P follow a predefined
distributed data structure.
Unstructured P2P: The nodes in unstructured P2P randomly select
their neighbors.
Hybrid P2P: In a hybrid P2P, some nodes have unique functions
appointed to them in an orderly manner.
See More: What Is Utility Computing? Definition, Process, Examples, and
Best Practices
Key Components of a Distributed System
The three basic components of a distributed system include primary system
controller, system data store, and database. In a non-clustered environment,
optional components consist of user interfaces and secondary controllers.
Main Components of a Distributed System
1. Primary system controller
The primary system controller is the only controller in a distributed system and
keeps track of everything. It’s also responsible for controlling the dispatch and
management of server requests throughout the system. The executive and
mailbox services are installed automatically on the primary system controller.
In a non-clustered environment, optional components consist of a user interface
and secondary controllers.
2. Secondary controller
The user interface client is an additional element in the system that provides
users with important system information. This is not a part of the clustered
environment, and it does not operate on the same machines as the controller. It
provides functions that are necessary to monitor and control the system.
4. System datastore
Each system has only one data store for all shared data. The data store is
usually on the disk vault, whether clustered or not. For non-clustered systems,
this can be on one machine or distributed across several devices, but all of
these computers must have access to this datastore.
5. Database
In a distributed system, a relational database stores all data. Once the data store
locates the data, it shares it among multiple users. Relational databases can be
found in all data systems and allow multiple users to use the same information
simultaneously.
See More: What Is Elastic Computing? Definition, Examples, and Best
Practices
Examples of a Distributed System
When processing power is scarce, or when a system encounters unpredictable
changes, distributed systems are ideal, and they help balance the workload.
Hence distributed systems have boundless use cases varying from electronic
banking systems to multiplayer online games. Let’s check out more explicit
instances of distributed systems:
1. Networks
The 1970s saw the invention of Ethernet and LAN (local area networks), which
enabled computers to connect in the same area. Peer-to-peer networks
developed, and e-mail and the internet continue to be the biggest examples of
distributed systems.
2. Telecommunication networks
Telephone and cellular networks are other examples of peer-to-peer networks.
Telephone networks started as an early example of distributed communication,
and cellular networks are also a form of distributed communication systems.
With the implementation of Voice over Internet (VoIP) communication
systems, they grow more complex as distributed communication networks.
3. Real-time systems
Real-time systems are not limited to specific industries. These systems can be
used and seen throughout the world in the airline, ride-sharing, logistics,
financial trading, massively multiplayer online games (MMOGs), and
ecommerce industries. The focus in such systems is on the correspondence and
processing of information with the need to convey data promptly to a huge
number of users who have an expressed interest in such data.
4. Parallel processors
Choose GeeksforGeeks Premium today and also get access to Unlimited Article
Summarization, 100% Ad free environment, A.I. Bot support in all coding
problems, and much more. Go Premium!
Conclusion
Distributed system architecture plays a crucial role in determining how components interact and are structured to
achieve scalability, reliability, and efficiency. Different architecture styles offer various advantages and
challenges, and the choice of architecture depends on the specific requirements and goals of the system .