Learn through the super-clean Baeldung Pro experience:
>> Membership and Baeldung Pro.
No ads, dark-mode and 6 months free of IntelliJ Idea Ultimate to start with.
Last updated: March 20, 2023
In this tutorial, we’ll take a look at distributed systems and distributed computing. First, we’ll define both terms, and outline their properties and characteristics. We’ll also review their uses and applications, as well as highlight the distinction between distributed systems and distributed computing.
Let’s start by defining a distributed system, and then proceed to discuss some of its basic principles and properties.
A distributed system is a system that encompasses several components that exist in different devices, usually located at different geographical locations. These physically separated components are usually connected over a network, and communicate through message passing. These components can be computer systems, resources, and processes, and are also referred to as nodes:
Although the different components in a distributed system are located in different places, the entire system functions as a single unit to process tasks and share resources. Furthermore, there are two major types of distributed systems: peer-to-peer systems, and client/server systems.
Peer-to-peer systems, as the name suggests, have all their components processing tasks and sharing resources equally. Due to the peer-to-peer connection between nodes, there is usually no need for centralized control in the network.
As opposed to peer-to-peer distributed systems, the nodes in client/server systems take on the roles of clients and servers. The client devices, or components, request resources, while the servers provide resources to the clients. There are also other alternative distributed systems, such as n-tier and three-tier distributed systems.
We characterize distributed systems by distinct features, such as:
We prefer distributed systems for the following reasons:
Some challenges that exist with distributed systems are:
We employ distributed systems in distributed databases, distributed computing, distributed file systems, and distributed messaging systems. The Internet is the most widely known example of a distributed system. The Internet facilitates the connection of many different computer systems in different geographical locations to share information and resources.
Now we’ll dive into the specifics of distributed computing.
Distributed computing refers to the use of distributed systems to complete computing tasks. It applies the principles of distributed systems to execute programs on different computer systems connected in a distributed system. As such, different parts of the programs that are executed in distributed computing are partitioned and assigned to the different computing systems that exist in the network.
The use of different computer systems increases the available computing power and enables larger, more complex tasks to be executed. Distributed computing and distributed systems share the same basic properties of scalability, fault tolerance, resource sharing, and transparency.
Distributed computing and distributed systems share the same benefits; namely, they’re reliable, cheaper than centralized systems, and have larger processing capabilities. However, there’s a slight difference in the challenges faced in distributed computing. For example, it’s challenging to partition computational tasks into different parts that can be executed on different computers systems in parallel.
Additionally, we need to coordinate tasks in distributed computing.
Due to the notable benefits of distributed computing, we use it in mobile systems, social media networks, weather monitoring systems, and e-commerce systems. For example, Apache Hadoop is a well-known framework that facilitates distributed processing and distributed storage.
Although subtle, there are notable differences between distributed computing and distributed systems. For example, distributed computing is a category of distributed systems. The other differences are outlined as follows:
| Distributed Systems | Distributed Computing |
|---|---|
| It’s the connection of different nodes to appear as a single unit | It’s the partitioning of tasks into smaller tasks that will be run by the different nodes in a distributed system |
| IT-approached deals with how to connect different nodes in different locations | Algorithm-approached, deals with how programs can be executed on different nodes |
In this article, we defined distributed systems and distributed computing. We outlined their properties and applications, as well as the benefits and challenges that exist with each one. We also explained how the two terms relate to one another, as there are subtle differences between distributed systems and distributed computing.