Skip to content
Related Articles

Related Articles

Architecture Styles in Distributed Systems

View Discussion
Improve Article
Save Article
  • Last Updated : 01 Jun, 2022

Distributed systems are a set of autonomous computers that appears to be a single coherent system to its users from outside. There are actually two different types of systems that exist in prospective of computers:

Centralized System : 

  • A centralized system consists of a single machine.
  • All calculations are done by a particular computer. 
  • Its performance is low as the workload is not divided. 
  • There is also no machine present in backup if the original computer system fails.

Distributed Systems :

  • A distributed system consists of multiple machines.
  • All computation work is divided among the different systems.
  • Its performance is high as the workload is divided among different computers to efficiently use their capacity.
  • There are systems present in backup, so if the main system fails then work will not stop.

A distributed system contains multiple nodes that are physically separate but mixed together using the communication networks.

Distributed Systems

 

Architecture Styles:

To show different arrangement styles among computers Architecture styles are proposed.

1. Layered Architecture:

In Layered architecture, different components are organised in layers. Each layer communicates with its adjacent layer by sending requests and getting responses.  The layered architecture separates components into units. It is an efficient way of communication. Any layer can not directly communicate with another layer. A layer can only communicate with its neighbouring layer and then the next layer transfers information to another layer and so on the process goes on.

In some cases, layered architecture is in cross-layer coordination. In a cross-layer, any adjacent layer can be skipped until it fulfils the request and provides better performance results. Request flow from top to bottom(downwards) and response flow from bottom to top(upwards). The advantage of layered architecture is that each layer can be modified independently without affecting the whole system. This type of architecture is used in Open System Interconnection (OSI) model.

Layered Architecture in  Distributed System

 

2. Object-Oriented Architecture:

In this type of architecture, components are treated as objects which convey information to each other. Object-Oriented Architecture contains an arrangement of loosely coupled objects. Objects can interact with each other through method calls. Objects are connected to each other through the Remote Procedure Call (RPC) mechanism or Remote Method Invocation (RMI) mechanism. Web Services and REST API are examples of object-oriented architecture.

Object Oriented Architecture

 

3. Data Centred Architecture:

Data Centred Architecture is a type of architecture in which a common data space is present at the centre. It contains all the required data in one place a shared data space. All the components are connected to this data space and they follow publish/subscribe type of communication. It has a central data repository at the centre. Required data is then delivered to the components.

For example Producer-Consumer system. The producer produces data in common data space and consumers request data.

 

Data Centered Architecture

 

4. Event-Based Architecture:

Event-Based Architecture is almost similar to Data centred architecture just the difference is that in this architecture events are present instead of data. Events are present at the centre in the Event bus and delivered to the required component whenever needed. In this architecture, the entire communication is done through events. When an event occurs, the system, as well as the receiver, get notified. Data, URLs etc are transmitted through events. The components of this system are loosely coupled that’s why it is easy to add, remove and modify them. Heterogeneous components can communicate through the bus.

Event based Architecture

 

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!