FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/Distributed_processing

Distributed computing

Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers.

The components of a distributed system communicate and coordinate their actions by passing messages to one another in order to achieve a common goal. Three challenges of distributed systems are: maintaining concurrency of components, overcoming the lack of a global clock, and managing the independent failure of components. When a component of one system fails, the entire system does not fail. Examples of distributed systems vary from SOA-based systems to microservices to massively multiplayer online games to peer-to-peer applications. Distributed systems cost more than monolithic architectures, primarily due to increased needs for additional hardware, servers, gateways, firewalls, new subnets, proxies, and so on. Distributed systems can also suffer from fallacies of distributed computing. Conversely, a well-designed distributed system is more scalable, more durable, more changeable, and more fine-tuned than a monolithic application deployed on a single machine. According to Marc Brooker: "a system is scalable in the range where marginal cost of additional workload is nearly constant." Serverless technologies fit this definition but the total cost of ownership, and not just the infrastructure cost must be considered.

A computer program that runs within a distributed system is called a distributed program, and distributed programming is the process of writing such programs. There are many types of implementations for the message-passing mechanism, including pure HTTP, RPC-like connectors, and message queues.

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, which communicate with each other via message passing.

Models

edit

Many tasks that we would like to automate by using a computer are of question–answer type: we would like to ask a question and the computer should produce an answer. In theoretical computer science, such tasks are called computational problems. Formally, a computational problem consists of instances together with a solution for each instance. Instances are questions that we can ask, and solutions are desired answers to these questions.

Theoretical computer science seeks to understand which computational problems can be solved by using a computer (computability theory) and how efficiently (computational complexity theory). Traditionally, it is said that a problem can be solved by using a computer if we can design an algorithm that produces a correct solution for any given instance. Such an algorithm can be implemented as a computer program that runs on a general-purpose computer: the program reads a problem instance from input, performs some computation, and produces the solution as output. Formalisms such as random-access machines or universal Turing machines can be used as abstract models of a sequential general-purpose computer executing such an algorithm.

The field of concurrent and distributed computing studies similar questions in the case of either multiple computers, or a computer that executes a network of interacting processes: which computational problems can be solved in such a network and how efficiently? However, it is not at all obvious what is meant by "solving a problem" in the case of a concurrent or distributed system: for example, what is the task of the algorithm designer, and what is the concurrent or distributed equivalent of a sequential general-purpose computer?"Distributed Programs". Texts in Computer Science. London: Springer London. 2010. pp. 373–406. doi:10.1007/978-1-84882-745-5_11. ISBN 978-1-84882-744-8. ISSN 1868-0941. Systems consist of a number of physically distributed components that work independently using their private storage, but also communicate from time to time by explicit message passing. Such systems are called distributed systems.

  • ↑ Dusseau & Dusseau 2016, p. 1–2.
  • ↑ Magnoni, L. (2015). "Modern Messaging for Distributed Sytems (sic)". Journal of Physics: Conference Series. 608 (1) 012038. Bibcode:2015JPhCS.608a2038M. doi:10.1088/1742-6596/608/1/012038. ISSN 1742-6596.
  • ↑ Godfrey (2002).
  • 1 2 Andrews (2000), p. 291–292. Dolev (2000), p. 5.
  • ↑ Lynch (1996), p. 1.
  • 1 2 Ghosh (2007), p. 10.
  • ↑ Andrews (2000), pp. 8–9, 291. Dolev (2000), p. 5. Ghosh (2007), p. 3. Lynch (1996), p. xix, 1. Peleg (2000), p. xv.
  • ↑ Andrews (2000), p. 291. Ghosh (2007), p. 3. Peleg (2000), p. 4.
  • ↑ Ghosh (2007), p. 3–4. Peleg (2000), p. 1.
  • ↑ Ghosh (2007), p. 4. Peleg (2000), p. 2.
  • ↑ Ghosh (2007), p. 4, 8. Lynch (1996), p. 2–3. Peleg (2000), p. 4.
  • ↑ Lynch (1996), p. 2. Peleg (2000), p. 1.
  • ↑ Ghosh (2007), p. 7. Lynch (1996), p. xix, 2. Peleg (2000), p. 4.
  • ↑ Banks, M. (2012). On the Way to the Web: The Secret History of the Internet and its Founders. Apress. pp. 44–5. ISBN 978-1-4302-5074-6. Archived from the original on 2023-01-20. Retrieved 2018-07-20.
  • ↑ "Real Time And Distributed Computing Systems" (PDF). ISSN 2278-0661. Archived from the original (PDF) on 2017-01-10. Retrieved 2017-01-09.{{cite journal}}: Cite journal requires |journal= (help)
  • ↑ 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 Lind P, Alm M (2006), "A database-centric virtual chemistry system", J Chem Inf Model, 46 (3): 1034–9, doi:10.1021/ci050360b, PMID 16711722.
  • ↑ Newman, Sam (2015-02-20). Building Microservices. O'Reilly Media. ISBN 978-1-4919-5035-7.
  • ↑ Newman, Sam (2015-02-20). Building Microservices. O'Reilly Media. ISBN 978-1-4919-5035-7.
  • ↑ Newman, Sam (2015-02-20). Building Microservices. O'Reilly Media. ISBN 978-1-4919-5035-7.
  • ↑ Haussmann, J. (2019). "Cost-efficient parallel processing of irregularly structured problems in cloud computing environments". Journal of Cluster Computing. 22 (3): 887–909. doi:10.1007/s10586-018-2879-3. S2CID 54447518.
  • ↑ Savage, J.E. (1998). Models of Computation: Exploring the Power of Computing. Addison Wesley. p. 209. ISBN 978-0-201-89539-1.
  • ↑ Cormen, Leiserson & Rivest (1990), Section 30.
  • ↑ Herlihy & Shavit (2008), Chapters 2–6.
  • ↑ Lynch (1996)
  • ↑ Cormen, Leiserson & Rivest (1990), Sections 28 and 29.
  • 1 2 3 TULSIRAMJI GAIKWAD-PATIL College of Engineering & Technology, Nagpur Department of Information Technology Introduction to Distributed Systems
  • ↑ Cole & Vishkin (1986). Cormen, Leiserson & Rivest (1990), Section 30.5.
  • ↑ Andrews (2000), p. ix.
  • ↑ Arora & Barak (2009), Section 6.7. Papadimitriou (1994), Section 15.3.
  • ↑ Papadimitriou (1994), Section 15.2.
  • ↑ Lynch (1996), p. 17–23.
  • ↑ Peleg (2000), Sections 2.3 and 7. Linial (1992). Naor & Stockmeyer (1995).
  • ↑ Haloi, S. (2015). Apache ZooKeeper Essentials. Packt Publishing Ltd. pp. 100–101. ISBN 978-1-78439-832-3. Archived from the original on 2023-01-20. Retrieved 2018-07-20.
  • ↑ Korach, Ephraim; Kutten, Shay; Moran, Shlomo (1990). "A Modular Technique for the Design of Efficient Distributed Leader Finding Algorithms" (PDF). ACM Transactions on Programming Languages and Systems. 12 (1): 84–101. doi:10.1145/77606.77610. S2CID 9175968. Archived (PDF) from the original on 2007-04-18.
  • ↑ "How big data and distributed systems solve traditional scalability problems". theserverside.com. Archived from the original on 17 March 2018. Retrieved 16 March 2018.
  • ↑

  • View original on Wikipedia | Back | FazBrowse Home