Tanenbaum and Steen describe a distributed system as “a collection of independent computers that appears to its users as a coherent system.” This means that even if there are multiple heterogeneous components within the distributed system communicating with each other, but from a user’s point of view it is a single system. An example of a distributed system would be the World Wide Web (WWW) where there are multiple components under the hood that help browsers display content but from a user’s point of view, all they are doing is accessing the web via a medium (i.e., browsers). The following figure from Tanenbaum and Steen below helps visualize their definition of a distributed system.
From the above figure, we can observe that the distributed systems layer sits in-between the various computer applications and the independent computer operating systems. What the authors are trying to show here is that distributed systems are at a software layer level that acts as the “glue” which helps in sharing of resources across various independent components (i.e., computers) but at the same time seems like a single system to the end-users. The authors call this type of distributed system middleware. Additionally, we notice that these components are connected via a network. While it is not clear what kind of network this is but we can extrapolate that these independent computers are on the same network.
As we can see that the importance of the network cannot be minimized. For if there is no network then it becomes difficult for independent components to talk to each other and share resources hence there is no distributed system. The importance of the network is such that when we look at the 8 fallacies formulated by Peter Deutsch 8 out of the 8 fallacies when developing distributed applications are about the network. Following are these 8 fallacies:
- The network is reliable
- The network is secure
- The network is homogenous
- The topology does not change
- Latency is zero
- Bandwidth is infinite
- Transport cost is zero
- There is one administrator
Despite the importance of the network for distributed systems, can we truly claim that the Internet, which is a network of networks, is really a distributed system? I would say no since while a network provides the essential connectivity and communication channels for a distributed system but the network itself is not a distributed system. From an end-user perspective, the Internet might appear to be a single system (e.g., email) but in reality, email is not the Internet but a service provided on top of the Internet utilizing existing Internet infrastructure. Vera-Ssmio and Rodrigues agree with the claim that there is a distinction between a network and a distributed system. They emphatically say that “a computer network is not a distributed system.”
Beyond the technological aspects though, should we be looking at distributed systems from a broader lens. Should we be looking at distributed systems from security and privacy perspectives? The answer is of course yes. The reason is that by definition within a distributed system components share resources. Some examples of sharing resources would include memory allocation and computing power optimization to name a few. But the sharing of resources opens up a Pandora’s box of issues related to security and privacy. This is due to the fact that when sharing resources, certain information (e.g., computer IP addresses, open ports, etc.) needs to be shared as well. The exposure of this information can result in unintentional consequences on one end or deliberate attacks on the other end. We need to ask ourselves: How much information sharing is too much? What happens when information is compromised? Should the Internet become a Distributed System? What happens if one computer is exposed and an intruder has gotten onto the network? How do you safeguard other computers on the same network that share resources?
In conclusion, in the 21st century, the Internet has become a necessary tool for businesses and individuals to interact with each other and share information. Some examples of this information sharing include emails, browsing the World Wide Web, conducting a financial transaction, sharing photos, etc. As time progresses, the importance of the Internet will only increase which would result in improvements and the creation of new services and business models. Thus, in order for businesses and individuals who are interested in leveraging the power of the Internet, it is useful to understand what the Internet is and what it is not. So, when we hear that if the Internet is a distributed system, the immediate reaction for some people is of course it is. But if we dig a little deeper, we would realize that the answer is not as simple. The reason is that the Internet itself is a network of networks and does not necessarily fall under the classic definition of a distributed system. Thus, in this paper, we have made the argument about the Internet not being a distributed system and raised some issues that go beyond the technological realm.
- Tanenbaum, Andrew S., and Maarten Van. Steen. Distributed Systems: Principles and Paradigms. Harlow: Prentice Hall, 2006. Print.
- Veríssimo, Paulo, and Luís Rodrigues. Distributed Systems for System Architects. Boston: Kluwer Academic, 2001. Print.