Distributed Computing System
A Distributed Computing System is a computing system composed of several interconnected computing systems that can coordinate distributed computing tasks across multiple computing nodes.
- AKA: Distributed System, Distributed Architecture, Multi-Node Computing System, Networked Computing Platform.
- Context:
- It can typically coordinate Distributed Computing Processes across multiple distributed computing nodes through distributed computing communication protocols.
- It can typically manage Distributed Computing Resources including distributed computing storage, distributed computing processing power, and distributed computing network bandwidth.
- It can typically implement Distributed Computing Fault Tolerance through distributed computing redundancy and distributed computing failure recovery mechanisms.
- It can typically provide Distributed Computing Scalability via horizontal distributed computing scaling and vertical distributed computing scaling.
- It can typically ensure Distributed Computing Data Consistency through distributed computing consensus algorithms and distributed computing transaction management.
- ...
- It can often support Distributed Computing Load Balancing across multiple distributed computing servers for optimal distributed computing performance.
- It can often enable Distributed Computing Parallel Processing through distributed computing task decomposition and distributed computing result aggregation.
- It can often facilitate Distributed Computing Resource Sharing among distributed computing participants in distributed computing networks.
- It can often implement Distributed Computing Security through distributed computing encryption and distributed computing access control.
- ...
- It can range from being a Distributed Client-Server Computing System to being a Distributed Peer-to-Peer Computing System, depending on its distributed computing architectural model.
- It can range from being a Distributed Three-Tier Computing System to being a Distributed N-Tier Computing System, depending on its distributed computing layer complexity.
- It can range from being a Highly-Coupled Distributed Computing System to being a Loosely-Coupled Distributed Computing System, depending on its distributed computing component interdependency.
- It can range from being a Data Consistent Distributed Computing System to being a Data Inconsistent Distributed Computing System, depending on its distributed computing consistency model.
- It can range from being a Globally Distributed Computing System to being a Locally-Distributed Computing System, depending on its distributed computing geographic scope.
- ...
- It can integrate with Distributed Computing Frameworks for distributed computing application development and distributed computing deployment.
- It can connect to Distributed Computing Storage Systems for distributed computing data persistence and distributed computing backup.
- It can support Distributed Computing Monitoring Systems for distributed computing performance tracking and distributed computing health monitoring.
- ...
- Examples:
- Traditional Distributed Computing Architectures, such as:
- Distributed Database Management Systems like Distributed RDBMS and Globally-Distributed DBMS for distributed computing data management.
- Distributed Peer-to-Peer Systems like Bitcoin Distributed Computing Network for decentralized distributed computing.
- Cluster-Based Distributed Computing Systems like Hadoop-Based Distributed Computing System for big data distributed computing.
- Cloud-Native Distributed Computing Architectures, such as:
- Microservice-Based Distributed Computing Systems using Kubernetes Distributed Computing Orchestration for containerized distributed computing.
- Serverless Distributed Computing Platforms like AWS Lambda Distributed Computing Service for event-driven distributed computing.
- Edge Distributed Computing Systems for real-time distributed computing and low-latency distributed computing.
- AI-Driven Distributed Computing Architectures, such as:
- Enterprise Distributed Computing Platforms, such as:
- Cloud Computing Distributed Platforms like Amazon Web Services Distributed Computing and Microsoft Azure Distributed Computing.
- Real-Time Distributed Data Processing Systems using Apache Kafka Distributed Computing for stream distributed computing processing.
- Grid Distributed Computing Systems for scientific distributed computing like Large Hadron Collider Distributed Computing.
- ...
- Traditional Distributed Computing Architectures, such as:
- Counter-Examples:
- Centralized Computing System, which uses single computing node rather than multiple distributed computing nodes.
- Standalone Computing System, which operates independently without distributed computing coordination.
- Monolithic Computing System, which implements unified architecture rather than distributed computing components.
- See: Distributed Computing Framework, Distributed Computing Network, Fault-Tolerant System, Distributed Operating System, Cloud Computing System, Multi-Agent System, Parallel Computing System.
References
2021a
- (Wikipedia, 2021) ⇒ https://en.wikipedia.org/wiki/Distributed_computing Retrieved:2021-10-2.
- 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.[1] The components interact with one another in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components. Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.
A computer program that runs within a distributed system is called a distributed program (and distributed programming is the process of writing such programs)[2][3][4]. There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.[5]
Distributed computing also refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers,[6] which communicate with each other via message passing.
- 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.[1] The components interact with one another in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components. Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.
- ↑ Tanenbaum, Andrew S., Steen, Maarten van (2002) "Distributed systems: principles and paradigms". Prentice Hall, Upper Saddle River, NJ. ISBN:0-13-088893-1
- ↑ Andrews, Gregory R. (2000), "Foundations of Multithreaded, Parallel, and Distributed Programming", Addison–Wesley, ISBN 978-0-201-35752-3.
- ↑ Dolev, Shlomi (2000), Self-Stabilization, MIT Press, ISBN 978-0-262-04178-2.
- ↑ Ghosh, Sukumar (2007), Distributed Systems – An Algorithmic Approach, Chapman & Hall/CRC, ISBN 978-1-58488-564-1.
- ↑ Magnoni, L. (2015). "Modern Messaging for Distributed Sytems (sic)". Journal of Physics: Conference Series. 608 (1): 012038. doi:10.1088/1742-6596/608/1/012038. ISSN 1742-6596
- ↑ Godfrey, Bill (2002). "A primer on distributed computing"
2021b
- (Wikipedia, 2021) ⇒ https://en.wikipedia.org/wiki/Distributed_computing#Architectures Retrieved:2021-10-2.
- Various hardware and software architectures are used for distributed computing. At a lower level, it is necessary to interconnect multiple CPUs with some sort of network, regardless of whether that network is printed onto a circuit board or made up of loosely coupled devices and cables. At a higher level, it is necessary to interconnect processes running on those CPUs with some sort of communication system.[1]
- Client–server: architectures where smart clients contact the server for data then format and display it to the users. Input at the client is committed back to the server when it represents a permanent change.
- Three-tier: architectures that move the client intelligence to a middle tier so that stateless clients can be used. This simplifies application deployment. Most web applications are three-tier.
- n-tier: architectures that refer typically to web applications which further forward their requests to other enterprise services. This type of application is the one most responsible for the success of application servers.
- Peer-to-peer: architectures where there are no special machines that provide a service or manage the network resources.[2] Instead all responsibilities are uniformly divided among all machines, known as peers. Peers can serve both as clients and as servers.[3] Examples of this architecture include BitTorrent and the bitcoin network.
- Various hardware and software architectures are used for distributed computing. At a lower level, it is necessary to interconnect multiple CPUs with some sort of network, regardless of whether that network is printed onto a circuit board or made up of loosely coupled devices and cables. At a higher level, it is necessary to interconnect processes running on those CPUs with some sort of communication system.[1]
- Another basic aspect of distributed computing architecture is the method of communicating and coordinating work among concurrent processes. Through various message passing protocols, processes may communicate directly with one another, typically in a master/slave relationship. Alternatively, a "database-centric" architecture can enable distributed computing to be done without any form of direct inter-process communication, by utilizing a shared database.[4] Database-centric architecture in particular provides relational processing analytics in a schematic architecture allowing for live environment relay. This enables distributed computing functions both within and beyond the parameters of a networked database.[5]
- ↑ Ohlídal, M.; Jaroš, J.; Schwarz, J.; et al. (2006). “Evolutionary Design of OAB and AAB Communication Schedules for Interconnection Networks". In Rothlauf, F.; Branke, J.; Cagnoni, S. (eds.). Applications of Evolutionary Computing. Springer Science & Business Media. pp. 267–78. ISBN 9783540332374.
- ↑ Vigna P, Casey MJ. The Age of Cryptocurrency: How Bitcoin and the Blockchain Are Challenging the Global Economic Order St. Martin's Press January 27, 2015 ISBN 9781250065636
- ↑ Hieu., Vu, Quang (2010). Peer-to-peer computing : principles and applications. Lupu, Mihai., Ooi, Beng Chin, 1961-. Heidelberg: Springer. p. 16. ISBN 9783642035135. OCLC 663093862
- ↑ Lind P, Alm M (2006), "A database-centric virtual chemistry system", J Chem Inf Model, 46 (3): 1034–9, doi:10.1021/ci050360b, PMID 1671172
- ↑ Chiu, G (1990). “A model for optimal database allocation in distributed computing systems". Proceedings. IEEE INFOCOM'90: Ninth Annual Joint Conference of the IEEE Computer and Communications Societies.
2015
- (Maddox, 2015) ⇒ Philip Maddox. (2015). “Testing a Distributed System.” In: Communications of the ACM Journal, 58(9). doi:10.1145/2776756
- QUOTE: Distributed systems can be especially difficult to program for a variety of reasons. They can be difficult to design, difficult to manage, and, above all, difficult to test. Testing a normal system can be trying even under the best of circumstances, and no matter how diligent the tester is, bugs can still get through.
2014
- (Navlakha & Bar-Joseph, 2014) ⇒ Saket Navlakha, and Ziv Bar-Joseph. (2014). “Distributed Information Processing in Biological and Computational Systems.” In: Communications of the ACM Journal, 58(1). doi:10.1145/2678280
- QUOTE: Exploring the similarities and differences between distributed computations in biological and computational systems.
Biological systems, ranging from the molecular to the cellular to the organism level, are distributed and in most cases operate without central control. Such systems must solve information processing problems that are often very similar to problems faced by computational systems, including coordinated decision making, 29 leader election, 2 routing and navigation, 52 and more.42
- QUOTE: Exploring the similarities and differences between distributed computations in biological and computational systems.
2013
- (Subramonian et al., 2013) ⇒ Ramesh Subramonian, Kishore Gopalakrishna, Kapil Surlaker, Bob Schulman, Mihir Gandhi, Sajid Topiwala, David Zhang, and Zhen Zhang. (2013). “In Data Veritas: Data Driven Testing for Distributed Systems.” In: Proceedings of the Sixth International Workshop on Testing Database Systems. ISBN:978-1-4503-2151-8 doi:10.1145/2479440.2479448
- QUOTE: The increasing deployment of distributed systems to solve large data and computational problems has not seen a concomitant increase in tools and techniques to test these systems.
2003
- (Maly et al., 2003) ⇒ Robin Jan Maly, Jan Mischke, Pascal Kurtansky, and Burkhard Stiller (2003). "Comparison of Centralized (Client-Server) and Decentralized (peer-to-peer) Networking". In: Semester thesis, ETH Zurich, Zurich, Switzerland, 1-12.
- QUOTE: All computer systems can be classified into centralized and distributed, see Figure 1. Distributed systems can be further classified into the Client-Server model and the Peer-to-Peer model. The Client-Server model can be flat where all clients only communicate with a single server (possibly replicated for improved reliability), or it can be hierarchical for improved scalability. In a hierarchical model, the servers of one level are acting as clients to higher level servers.
![]() |