Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
What are Distributed Systems?
3.
Types of Distributed Systems
4.
Applications of Distributed System
5.
Characteristics of Distributed Systems
5.1.
Transparency 
5.2.
Heterogeneity
5.3.
Openness 
5.4.
Scalability 
5.5.
Fault Tolerance
5.6.
Concurrency
5.7.
Efficiency
6.
Disadvantages of Distributed Systems.
7.
Frequently Asked Questions
7.1.
What are some challenges of distributed systems?
7.2.
Is distributed systems a cloud computing service?
7.3.
What Is a Distributed Database?
8.
Conclusion
Last Updated: Mar 27, 2024

Characteristics of Distributed System

Author Nitika
0 upvote
Master Python: Predicting weather forecasts
Speaker
Ashwin Goyal
Product Manager @

Introduction

Picture a world where your favourite websites never crash or slow down, even when millions of people are accessing them at the same time.

Well, this is the power of distributed systems.

In this article, we will explore the depths of distributed systems. We will also study the characteristics of the revolutionary approach to computing.

Characteristics of Distributed System

What are Distributed Systems?

Also known as Distributed Computing or Distributed Databases, a Distributed System is a cluster of independent components on different machines connected by a centralised computer network. These machines share resources, files and messages to reach common goals. In these modern times, the data is more distributed than ever. This is why modern applications do not run separately and rely heavily on distributed systems.

Now that we know what distributed systems are, we move on to the types of distributed systems.

Also see: Multiprogramming vs Multitasking

Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

Types of Distributed Systems

  • Client/Server Systems: These are the most basic forms of servers. The client gives an input to the server, and the server replies with an output. The client wants to perform a task on a server, and the server allocates and performs the task and sends the result as a response. These types of servers can be applied to many other servers.
Client/server system
  • Peer-to-Peer Systems: In this system, each node executes its task on its locally allocated memory and shares the data through a supporting medium. Computer network applications use a peer-to-peer system to manage processors that communicate with each other but maintain independent memory bases. 
Peer to peer system
  • Middleware: It is an application which sits between two different applications and provides services and benefits to both.
Middleware
  • Three-tier: Three-tier system uses a distinct layer and server for each program function. The client's data is stored in the middle tier. It contains an application layer, a data layer, and a presentation layer. This three-tier system is most commonly used in web or online applications.
three-tier
  • N-tier: It is also known as a multitier distributed system. As the name suggests, this system may contain any number of functions, similar to the three-tier system. This N-tier system is more commonly used in web applications and data systems.

Also read - features of operating system

Applications of Distributed System

  • In Networking, ethernet and LAN are the best examples of distributed systems. Computers sent messages to other computers and systems using local IP addresses.
     
  • In Telecommunications, telephone and cellular networks have distributed networks with a broad spread of base stations. They persist in growing in complexity as a distributed network.
     
  • In Real-time Systems, the systems are distributed globally. Many major industries use these systems. Companies like Uber and Lyft use dispatch systems, many significant airlines use flight control systems and e-commerce websites, and logistic companies use real-time tracking systems.

Characteristics of Distributed Systems

The key characteristics of distributed systems are:

Transparency 

One of the essential characteristics of the distributed system, transparency, is the notion that the user interacts with a whole quantity rather than a cluster of cooperating elements. A system capable of presenting itself as a whole to the user is called transparent.

Transparency is divided into the eight sub-characteristics illustrated in the following table:

Transparency Description
Access Hide differences in data representation and object accessibility.
Location Hide the object’s location.
Relocation Hide the location of the moving object while still in use.
Migration Hide that an object may move to another location
Replication Hide replication of the object
Concurrency Hide that an object may have a shared databases access
Failure Hide any resource failures.
Persistence Hide the fact about memory location.

Heterogeneity

Heterogeneity refers to the system's ability to operate on various hardware and software components. Middleware in the software layer helps achieve heterogeneity. The goal of the middleware is to interpret the programming calls such that the distributed processing gets completed.

Openness 

Another important characteristic of Distributed system is openness. A distributed system's openness is the difficulty in extending or improving an existing system. In order to make an open distributed system,

  • The interface of the components should be well-defined and precise.
     
  • The interface of the components should be standardised.
     
  • Integration of new components with existing ones must be effortless.

Scalability 

 In terms of effectiveness, scalability is one of the significant characteristics of distributed systems. It refers to the ability of the system to handle growth as the number of users increases. Scalability is accomplished by adding more computer systems to the existing networks.

A centralised system affects the scalability of a distributive system. If a system is centralised, more nodes will try to communicate, which results in a bottleneck at that particular time in the system.

Fault Tolerance

A distributed system is very likely to be prone to system failures. This is due to the fact that several computers have diverse-aged hardware. The ability of a system to handle these failures is called fault tolerance. Fault tolerance is achieved by:

  • Recovery: Systems and processes will have a stored backup. It takes over when the system fails. 
     
  • Redundancy: When a component acts predictable and in a controlled way is called redundancy.

Concurrency

Concurrency is the system's capability to access and use shared resources. It means multiple actions are performed at the same time. In distributive systems, the concurrent execution of activities takes place in different components running on numerous machines.

Efficiency

Efficiency refers to the capability of the system to use its resources effectively to execute the given tasks. The system's design, the workload handled by the system, and the hardware and software resources used are some critical factors affecting the system's efficiency.

Some of the common ways to improve the efficiency of the system are: 

  • Optimising the design of the system. This minimises the amount of communication and coordination required between the different components, reducing any extra power consumption.
     
  • Carefully negating the workload of the system. This balance avoids any component overload and ensures that the system can make the most efficient use of its resources.

After expanding your knowledge of the characteristics of distributed systems, let us now discuss the disadvantages of distributed systems.

Also see, Cloud Computing

Disadvantages of Distributed Systems.

  • Currently, there is no relevant software for distributed systems.
     
  • As the data is distributed, security is a primary concern as it may be easily accessible.
     
  • If there is a delay in the network, the user may face difficulty accessing data.
     
  • The distributive system has an intricate Database that faces challenges to manage.
     
  • Network overloading is also a challenge faced in distributive systems. This happens when all the nodes send data at once.

Frequently Asked Questions

What are some challenges of distributed systems?

Distributed systems are more prone to security threats than centralised systems. Maintaining consistent data across multiple distributions of a system is a challenge. Furthermore, network latency affects the performance of the system. And distributed coordination is the challenge presented by distributed systems. 

Is distributed systems a cloud computing service?

No, a distributed system is not a cloud computing service. Cloud computing provides distributed benefits, but distributed systems are designed to operate on numerous machines connected via a network. Also, it is used for parallel/concurrent data processing using distributed devices.

What Is a Distributed Database?

A distributed database is spread across numerous locations. A distributed database is more scalable than a conventional database. Each node in the grid has its own copy of the database, and the nodes can transmit with each other. When a node is not accessible or goes through failure, other nodes are still accessible to the data.

Conclusion

This blog covered all the necessary points about Distributed Systems. We learnt what distributed systems are and their types. We also learnt about the characteristics of distributed systems and their disadvantages. I hope this blog helped you with clearing your doubts.

Recommended articles:

Multiprocessing in Operating System

Demand Paging in OS

fork() system call

Clean Architecture

Hey Ninjas! Don't stop here. Check out Coding Ninjas to learn more about Distributed Operating Systems. Also, explore PythonC++ and more unique courses and guided paths. 

Try Coding Ninjas Studio for more exciting articles, interview experiences, and excellent Machine Learning problems.

Happy Learning!

Live masterclass