An Introduction to Distributed Systems

Hello Peppos!!!

A Distributed system, at the most basic level, it’s a collection of computers or systems that are ‘combined’ to form a single computer for the user, if one system fails it doesn’t damage the whole system, they all have one shared state and operate concurrently.

They are connected through a network to share information easily, this connection can be an IP address or even cabling.

This article was based on the following articles:

Types of Distributed Systems

These systems may be Client/Server Systems (Distributed) or Peer to Peer Systems …

Client/Server Systems

Client/Server System

Uses a Server to communicate with clients, all clients connect to the server, this way the server has all control.

In this type of system the Client ‘asks’ for resources to the Server, and the Server provides those resources. The data that the server provides is processed by the client and presented to the end-user.

Examples of Distributed Systems are:

  • Multiplayer video-games — Games such as leagues of legends typically use Client/Server Systems to connect players in a game, the client sends to the server mouse/keyboard input and the server responds with the codes of the in-game events, codes which are processed in the Client-side of the systems to presented the associated events of those codes.
  • Online Shopping — Typically online payments use distributed systems to access a bank server in order to execute a transaction.

Peer-to-Peer Systems

Peer-to-Peer System

There are no machines to provide service for the Clients or manage resources, so all the systems share tasks and resources with each other.

It is harder to manage this kind of system, because all participants can communicate with each other, unlike a Client/Server system

An example of this kind of system is:

Crypt-currency — Uses a decentralized system to safely and anonymously exchange currency. It does this by executing the transaction in a one-on-one interaction, without the use of an external server, this provides anonymity and safety to both parties, because no outside party has control of the interaction.

Pros and Cons

Advantages of Distributed Systems

  • Enhanced Speed — The nodes in the distributed system are connected to each other. So nodes can easily share data with other nodes.
  • Scalability — More nodes can easily be added to the distributed system i.e. it can be scaled as required.
  • Reliability — Failure of one node does not lead to the failure of the entire distributed system. Other nodes can still communicate with each other.
  • Flexibility — Resources like printers can be shared with multiple nodes rather than being restricted to just one.

Disadvantages of Distributed Systems

Some disadvantages of Distributed Systems are as follows −

  • Complex Security — It is difficult to provide adequate security in distributed systems because the nodes as well as the connections need to be secured.
  • Message Errors — Some messages and data can be lost in the network while moving from one node to another. So the Network needs to be available
  • Database Complexity — The database connected to the distributed systems is quite complicated and difficult to handle as compared to a single user system.
  • Imperfect Scalability — Overloading may occur in the network if all the nodes of the distributed system try to send data at once. Load Balancing and bandwidth management are needed to take into account.

A Computer Science Student