Distributed Computing System
(Redirected from distributed systems)
Jump to navigation
Jump to search
A Distributed Computing System is a computing system composed of several interconnected computing systems.
- Context:
- It can range from being a Distributed Client-Server Computing System to being a Distributed Peer-to-Peer Computing System.
- It can range from being a Distributed Three-Tier Computing System to being a Distributed N-Tier Computing System.
- It can range from being a Highly-coupled Distributed Computing System to being a Loosely-coupled Distributed Computing System.
- It can range from being a Data Consistent Distributed Computing System (where all nodes see the same data at the same time) to being a Data Inconsistent Distributed Computing System.
- It can range from being a Request Outcome Notification Guaranteed Distributed Computing System (which guarantees that every request receives a response about whether it was successful or failed) to being a ...
- It can range from being a Partition Tolerance Distributed Computing System (where the system continues to operate despite arbitrary message loss or failure of part of the system) to being ...
- It can range from being a Distributed Data Intensive System to being a Distributed Compute-Intensive System.
- It can range from being a Globally Distributed System (such as Spanner) to being a Locally-Distributed System.
- It can be supported by a Distributed Computing Framework.
- It cannot, according the CUP Theorem, be a Data Consistent Distributed Computing System and a Request Outcome Notification Guaranteed Distributed Computing System and a Partition Tolerance Distributed Computing System.
- It can make use of a Distributed Memory Data Structure, ...
- ...
- Example(s):
- Distributed Database Systems:
- Distributed DBMS such as a Distributed RDBMS or a Globally-Distributed DBMS.
- Peer-to-Peer and Decentralized Systems:
- Distributed Peer-to-Peer System such as: Bitcoin.
- Decentralized storage systems like IPFS.
- Microservice-Based Distributed Architectures:
- Systems based on Microservices such as Kubernetes-orchestrated applications.
- Cluster-Based Distributed Computing:
- Cluster-based System such as: a Hadoop-based system.
- Multi-Agent Systems:
- Multi-Agent System (MAS) like those used in Intelligent Transportation Systems.
- Cloud Computing Platforms, such as: Amazon Web Services and Microsoft Azure.
- Real-Time Data Processing Systems, such as : Stream processing systems (possibly using Apache Kafka).
- Scientific and Research Computing:
- Grid Computing systems like those used in Large Hadron Collider experiments.
- …
- Distributed Database Systems:
- Counter-Example(s):
- See: Vertical Scalability, Computing System Component, Distributed Systems Research Area, Fault-Tolerant System, Distributed Operating System, Distributed Network.
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.