Classification of Distributed Systems
Last updated
Last updated
This section explores the various types of distributed systems, each serving distinct purposes and use cases. We will begin by examining High-performance distributed computing, focusing on systems like Cluster computing and Grid computing, which leverage the combined power of multiple machines to perform complex tasks and solve large-scale problems.
Next, we will delve into Distributed information systems, including Distributed transaction processing and Enterprise application integration, which are critical for handling data consistency and communication in large organizations.
Finally, we will cover Pervasive systems, such as Ubiquitous computing systems, which integrate computing into everyday environments, allowing seamless and context-aware interactions between users and devices. Through this classification, we will provide a comprehensive understanding of how different distributed systems are structured and applied across various domains.
An important class of distributed systems is the one used for high-performance computing tasks. Roughly speaking, one can make a distinction between two subgroups. In cluster computing the underlying hardware consists of a collection of similar compute nodes, interconnected by a high-speed network, often alongside a more common local-area network for controlling the nodes. In addition, each node generally runs the same operating system.
The situation becomes very different in the case of grid computing. This subgroup consists of decentralized systems that are often constructed as a federation of computer systems, where each system may fall under a different administrative domain, and may be very different when it comes to hardware, software, and deployed network technology.
Cluster computing systems became popular when the price/performance ratio of personal computers and workstations improved. At a certain point, it became financially and technically attractive to build a supercomputer using off-the-shelf technology by simply hooking up a collection of relatively simple computers in a high-speed network. In virtually all cases, cluster computing is used for parallel programming, in which a single (compute-intensive) program is run in parallel on multiple machines. The principle of this organization is shown in Figure 1.2.1.
This type of high-performance computing has evolved considerably. As discussed extensively by Gerofi et al. [2019], the developments of supercomputers organized as clusters have reached a point where we see clusters with more than 100,000 CPUs, with each CPU having 8 or 16 cores. There are multiple networks. Most important is a network formed by dedicated high-speed interconnects between the various nodes (in other words, there is often no such thing as a shared high-speed network for computations). A separate management network, as well as nodes, are used to monitor and control