Every method that can be transferred to software with any firm being software would be. For computer systems growing in complexity, modern programs are not running in isolation anymore. Distributed networks are used by the vast majority of goods and applications. Learn what a distributed system is, how it operates with examples, pros and cons, software architecture, and more.
What is a Distributed System, and How Does it Work?
Definition
A distributed network, also known as distributed computing and distributed databases, is a set of independent components installed on various computers that exchange messages with each other in order to accomplish common objectives. As such, the distributed system may behave as if it were one end-user interface or device. The idea is that together, the network will be able to optimize resources and knowledge while avoiding failures, that if one system fails, it will not affect service quality.
How Distributed Systems Work
The most important distribution roles are:
- Sharing resources- whether it is the hardware , software or data which can be shared
- Openness-how open the program is built for development and communication with one another
- Concurrent-Several machines will simultaneously process the same task
- Scalability-How to multiply the computing and processing capacities when applied to other devices
- Fault tolerance-How simple and fast can failures be detected and recovered in parts of the system?
- Transparency-how much access one node requires to find and interact with other system nodes.
Modern distributed systems have evolved to include autonomous processes which may operate on the same physical machine but communicate with each other by exchanging messages.
Examples of Distributed Systems
Networks
Once ethernet was introduced and LAN (local area networks) were developed, the earliest example of a distributed system happened in the 1970s. Computers could send messages to other devices with a local IP address for the very first time. Peer-to – peer networks have grown and e-mail and then, as we know, the Internet continues to be the biggest, ever-increasing example of distributed systems. When the internet moved from IPv4 to IPv6, distributed networks changed from LAN-based to Internet-based systems.
Telecommunication networks
Types of distributed networks are mobile and wireless networks too. Telephone networks have been around for over a century and it began as an early example of a network of peer to peer. Cellular networks are distributed networks of geographically dispersed base stations in areas which are called cells. Through telephone networks moving to VOIP (voice over IP), as a distributed network it continues to expand in complexity.
Distributed Real-time Systems
Many industries use systems in real time which are distributed locally and globally. Airlines use flight control systems, Uber and Lyft use dispatch systems, manufacturing plants use real-time monitoring systems using automation control systems, logistics and e-commerce businesses.
Parallel Processing
A distinction had existed between parallel computing and distributed systems. Parallel computation concentrated on how software could be run on several threads or processors that had access to the same data and memory. Distributed systems entailed separate computers with their own memory and processors. Distributed computing also requires parallel processing, with the proliferation of modern operating systems, processors, and cloud services these days.
Distributed artificial intelligence
Distributed Artificial Intelligence is a way of using computational resources on a wide scale and parallel processing to learn and process very large sets of data using multi-agents.
Distributed Database Systems
A distributed database is a multi-server and/or physical location database. You may either reproduce the data or repeat it through systems. Most popular applications use a distributed database and need to be aware of the distributed database system’s uniform or heterogeneous nature. A homogeneous distributed database means that each system has the same architecture and data model for managing databases. By adding new nodes and locations, they ‘re easier to manage and scale output. Heterogeneous distributed databases require multiple database management systems, different database management models. Gateways are used to convert data between nodes which typically occur as a result of application and network mergers.
Distributed System Architecture
Distributed systems require a network that links all components (machines, hardware , or software) together so that messages can be transmitted to communicate with one another.
- It could be connected to an IP address, or using cables, or even on a circuit board.
- The messages exchanged between machines contain data forms that the systems like databases, objects, and files want to share.
- The manner in which the messages are efficiently exchanged whether it is sent, received, accepted or whether a node retries on failure is an essential feature of a distributed network.
Distributed systems were developed when needed to scale infrastructure and applications and introduce and manage new devices. The big trade-off to consider when designing distributed systems is complexity vs performance. Let’s look at the forms of distributed architectures, benefits, and drawbacks to understand that.
Types of Distributed System Architectures:
Distributed systems and processes usually use one of four following types of architecture:
Client-server:
Distributed system architecture in the early days consisted of a server as a shared resource, such as a printer, database, or webserver. This had several clients (e.g. users behind computers) determining when to use the shared resource, how to use it and view it, modifying data and sending it back to the server. Code repositories such as git offer a clear example where the responsibility is put on the developers committing the code changes.
Distributed architecture of systems today has grown with web applications into:
- Three-tier: The customers no longer need to be clever in this architecture and can rely on a middle tier to process and make decisions. Many of the first mobile apps fall into this group. The middle tier could be called an agent accepting requests from customers, who could be stateless, processing the data and then forwarding it to the servers.
- Multi-tier: Originally, enterprise web services built architectures for n-tier or multi-tier structures. This popularized the application servers containing the business logic and communicating with both the data thirds and the presentation third parties.
- Peer-to-peer: There’s no centralized or special system in this architecture that does the heavy lifting and smart work. All decision taking and obligations are divided among the machines involved and each may assume roles from client or server. A good example of that is blockchain.
Pros and Cons of Distributed Systems
Advantages of Distributed Systems:
The ultimate aim of a distributed system is to allow applications to be scalable, performant and highly accessible.
Major benefits include:
- Unlimited Horizontal Scaling-computers can be mounted at any time.
- Low Latency-it would reduce the time it takes to service users by getting computers that are physically closer to the users.
- Fault Tolerance-When one server or data center goes down, others may still support the service ‘s customers.
Disadvantages of Distributed Systems:
That decision in the engineering sector has trade offs. The greatest drawback in distributed systems is complexity. There are more computers, more calls, more data are exchanged by more parties and this leads to problems with:
- Integration & Consistency of Data
– It is difficult to be able to synchronize the order of data changes and application statuses in a distributed network , particularly when nodes start, stop or fail. - Lack of Network and Compatibility
– Messages may not be sent to the appropriate nodes or in the wrong order resulting in a coordination and functional breakdown. - Overhead security
– More information, tracking, logging, load balancing functions must be added for visibility in the operation of the distributed systems and failures