WHAT IS DISTRIBUTED COMPUTING?
Distributed computing is a field of computer science that studies distributed systems. A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system.
A distributed system, also known as distributed computing, is a system with multiple components located on different machines that communicate and coordinate actions in order to appear as a single coherent system to the end-user.
The machines that are a part of a distributed system may be computers, physical servers, virtual machines, containers, or any other node that can connect to the network, have local memory, and communicate by passing messages.
WHAT IS DISTRIBUTED COMPUTING SYSTEM?
A distributed computer system consists of multiple software components that are on multiple computers, but run as a single system. The computers that are in a distributed system can be physically close together and connected by a local network, or they can be geographically distant and connected by a wide area network. A distributed system can consist of any number of possible configurations, such as mainframes, personal computers, workstations, minicomputers, and so on. The goal of distributed computing is to make such a network work as a single computer.
Types of distributed systems
Distributed systems generally fall into one of four different basic architecture models:
- Client-server—Clients contact the server for data, then format it and display it to the end-user. The end-user can also make a change from the client-side and commit it back to the server to make it permanent.
- Three-tier—Information about the client is stored in a middle tier rather than on the client to simplify application deployment. This architecture model is most common for web applications.
- n-tier—Generally used when an application or server needs to forward requests to additional enterprise services on the network.
- Peer-to-peer—There are no additional machines used to provide services or manage resources. Responsibilities are uniformly distributed among machines in the system, known as peers, which can serve as either client or server.
HOW DISTRIBUTED COMPUTING WORKS
There are two general ways that distributed systems function:
- Each machine works toward a common goal and the end-user views results as one cohesive unit.
- Each machine has its own end-user and the distributed system facilitates sharing resources or communication services.
Although distributed systems can sometimes be obscure, they usually have three primary characteristics: all components run concurrently, there is no global clock, and all components functions independently of each other.
ADVANTAGES OF DISTRIBUTED COMPUTING SYSTEM
Distributed systems offer many benefits over centralized systems, including the following:ScalabilityThe system can easily be expanded by adding more machines as needed.RedundancySeveral machines can provide the same services, so if one is unavailable, work does not stop. Additionally, because many smaller machines can be used, this redundancy does not need to be prohibitively expensive.
Distributed computing systems can run on hardware that is provided by many vendors, and can use a variety of standards-based software components. Such systems are independent of the underlying software. They can run on various operating systems, and can use various communications protocols. Some hardware might use UNIX or Linux as the operating system, while other hardware might use Windows operating systems. For intermachine communications, this hardware can use SNA or TCP/IP on Ethernet or Token Ring.
You can organize software to run on distributed systems by separating functions into two parts: clients and servers. This is described in The client/server model. A common design of client/server systems uses three tiers, as described in Three-tiered client/server architecture.
- Reliability—Most distributed systems are fault-tolerant as they can be made up of hundreds of nodes that work together. The system generally doesn’t experience any disruptions if a single machine fails.
- Performance—Distributed systems are extremely efficient because work loads can be broken up and sent to multiple machines.
DISADVANTAGES OF DISTRIBUTED COMPUTING SYSTEMS
However, distributed systems are not without challenges. Complex architectural design, construction, and debugging processes that are required to create an effective distributed system can be overwhelming.
Three challenges you may encounter includes:
- Scheduling—A distributed system has to decide which jobs need to run, when they should run, and where they should run. Schedulers ultimately have limitations, leading to underutilized hardware and unpredictable runtimes.
- Latency—The more widely your system is distributed, the more latency you can experience with communications. This often leads to teams making tradeoffs between availability, consistency, and latency.
- Observability—Gathering, processing, presenting, and monitoring hardware usage metrics for large clusters is a significant challenge.