<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cas-group.net/index.php?action=history&amp;feed=atom&amp;title=Distributed_Computing</id>
	<title>Distributed Computing - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cas-group.net/index.php?action=history&amp;feed=atom&amp;title=Distributed_Computing"/>
	<link rel="alternate" type="text/html" href="https://wiki.cas-group.net/index.php?title=Distributed_Computing&amp;action=history"/>
	<updated>2026-07-19T17:06:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.cas-group.net/index.php?title=Distributed_Computing&amp;diff=135&amp;oldid=prev</id>
		<title>Jfromm: New page: &#039;&#039;&#039;Distributed computing&#039;&#039;&#039; is the process of aggregating the power of several computing entities to collaboratively run a single computational task in a transparent and coherent way, so t...</title>
		<link rel="alternate" type="text/html" href="https://wiki.cas-group.net/index.php?title=Distributed_Computing&amp;diff=135&amp;oldid=prev"/>
		<updated>2008-09-19T16:46:37Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;#039;&amp;#039;&amp;#039;Distributed computing&amp;#039;&amp;#039;&amp;#039; is the process of aggregating the power of several computing entities to collaboratively run a single computational task in a transparent and coherent way, so t...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Distributed computing&amp;#039;&amp;#039;&amp;#039; is the process of aggregating the power of several computing entities to collaboratively run a single computational task in a transparent and coherent way, so that they appear as a single, centralized system. It is a part of the general theory of systems that are composed of  a number of interacting computing elements.&lt;br /&gt;
[[Grid_Computing|Grid computing]] is often used synonymously for distributed computing. Grid Computing uses no special [[Distributed Algorithm]]s and is more like parallel computing: it only breaks down complex computing problems into small steps that can be solved in parallel by thousands or even millions of machines at once. The word &amp;#039;&amp;#039;distributed&amp;#039;&amp;#039; here and in &lt;br /&gt;
[[Distributed System]]s in general means, as Lamport and Lynch argue (1990), simply &lt;br /&gt;
&amp;quot;spread out across space&amp;quot;. Thus distributed computing is generally a spatially distributed process &lt;br /&gt;
in some form of network.&lt;br /&gt;
&lt;br /&gt;
Distributed computing for general asynchronous systems and &lt;br /&gt;
the design of sophisticated [[Distributed Algorithm]]s&lt;br /&gt;
is notoriously difficult, because distributed&lt;br /&gt;
systems become easily very complex.&lt;br /&gt;
Recent approaches like [[Distributed Hash Table]]s (DHT)&lt;br /&gt;
emphasize scalability and [[Peer-to-Peer]] aspects.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The field of distributed computing started around 1970. At that time, according to Fisher and Merrrit (2003),&lt;br /&gt;
scientists and engineers began to imagine a future world of multiple interconnected computers operating &lt;br /&gt;
concurrently and collectively. Typical challenges in distributed computing are absence of global time and state, &lt;br /&gt;
asynchronous computation, communication delays, failures of communication or processors, and decentralized administration.&lt;br /&gt;
&lt;br /&gt;
The original goal of distributed computing theory research was, as&lt;br /&gt;
Fisher and Merrrit argue (2003), to find a general theory of distributed&lt;br /&gt;
systems:&lt;br /&gt;
&amp;quot;To build a mathematical theory of distributed computing that&lt;br /&gt;
would shed light on distributed computing systems just as&lt;br /&gt;
Turing machine theory had done for sequential computers.&lt;br /&gt;
The hope was to find an abstract distributed model that&lt;br /&gt;
would capture the salient features of real distributed systems&lt;br /&gt;
while suppressing distracting and unenlightening details of&lt;br /&gt;
the physical world. The theory to be constructed was to be&lt;br /&gt;
elegant, general, and powerful.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Yet they also say that this original goal was not really reached&lt;br /&gt;
&amp;quot;Twenty-plus years later, these goals seem hopelessly&lt;br /&gt;
naive. The theory of distributed systems is immensely more&lt;br /&gt;
complex than its sequential counterpart. Every one of the distinguishing&lt;br /&gt;
elements has seemingly endless plausible variations.&lt;br /&gt;
Elegant theoretical assumptions such as pure asynchrony&lt;br /&gt;
(no timing assumptions whatsoever) and Byzantine&lt;br /&gt;
faults (no assumptions limiting faulty behavior) lead to pessimistic&lt;br /&gt;
results that do not jibe well with real-world experience.&lt;br /&gt;
Even finding precise specifications for the problems to be&lt;br /&gt;
solved by distributed systems has proven to be much more&lt;br /&gt;
difficult than expected.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Centralized vs. Distributed == &lt;br /&gt;
&lt;br /&gt;
Distributed Computing is the opposite of &amp;#039;&amp;#039;&amp;#039;local, centralized computing&amp;#039;&amp;#039;&amp;#039;, where programs &lt;br /&gt;
are confined to a single address space and a single machine or computer. It is&lt;br /&gt;
global and decentralized. These two models of computing - local and centralized vs. global &lt;br /&gt;
and distributed - are fundamentally different. Distributed Computing involves latency, &lt;br /&gt;
partial failure and concurrency. As Waldo et al. noticed in 1994&lt;br /&gt;
&amp;quot;Merging the models by attempting to make distributed&lt;br /&gt;
computing follow the model of local computing&lt;br /&gt;
requires ignoring the different failure modes and basic&lt;br /&gt;
indeterminacy inherent in distributed computing, leading&lt;br /&gt;
to systems that are unreliable and incapable of scaling&lt;br /&gt;
beyond small groups of machines that are geographically&lt;br /&gt;
co-located and centrally administered.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Parallel vs. Distributed == &lt;br /&gt;
&lt;br /&gt;
The two related fields parallel and distributed computing have many things in common. They&lt;br /&gt;
use as Claudia Leopold says (2001):&lt;br /&gt;
&lt;br /&gt;
* Multiple Processors&lt;br /&gt;
* Networks which connect the processors&lt;br /&gt;
* Multiple computational activities and processes &lt;br /&gt;
&lt;br /&gt;
In both fields the input, output and intermediate data is distributed among many&lt;br /&gt;
processors. Parallel and [[Distributed Algorithm]]s tells us &lt;br /&gt;
how to solve a given problem using multiple processors, which are connected by&lt;br /&gt;
some form of network, communication medium or shared memory.&lt;br /&gt;
&lt;br /&gt;
Yet whereas parallel computing splits a single application up into tasks that &lt;br /&gt;
are executed at the same time and is more like a &amp;#039;&amp;#039;&amp;#039;top-down&amp;#039;&amp;#039;&amp;#039; approach,&lt;br /&gt;
distributed computing considers a single application which is executed &lt;br /&gt;
as a whole but at different locations and is more like a &amp;#039;&amp;#039;&amp;#039;bottom-up&amp;#039;&amp;#039;&amp;#039; approach.&lt;br /&gt;
&lt;br /&gt;
Parallel computing is about &amp;#039;&amp;#039;&amp;#039;decomposition&amp;#039;&amp;#039;&amp;#039;: we ask how we can perform a single&lt;br /&gt;
application concurrently, how we can divide a computation into&lt;br /&gt;
smaller parts which may potentially be executed in parallel.&lt;br /&gt;
Distributed computing is about &amp;#039;&amp;#039;&amp;#039;composition&amp;#039;&amp;#039;&amp;#039;: we ask what happens if many&lt;br /&gt;
distributed processes interact with each other, and if a global function can&lt;br /&gt;
be achieved although there is no global time or state.&lt;br /&gt;
&lt;br /&gt;
In parallel computing, task dependencies are troublesome and disturbing for &lt;br /&gt;
computational purposes, which limit the degree of concurrency. If there are &lt;br /&gt;
no task dependencies at all, the maximum degree of concurrency is reached and &lt;br /&gt;
equals the total number of tasks (Grama et al., 2003).&lt;br /&gt;
&lt;br /&gt;
In distributed computing, dependencies and causal relations are an essential &lt;br /&gt;
part of the computation itself. The interaction between the processes is an &lt;br /&gt;
essential part of the computation process. The goal is not reach a maximum&lt;br /&gt;
degree of concurrency, rather the optimal balance between communication&lt;br /&gt;
and computation.&lt;br /&gt;
&lt;br /&gt;
This is the traditional distinction between distributed and parallel&lt;br /&gt;
computing. Recently [[Grid_Computing|grid computing]] and projects like SETI@Home&lt;br /&gt;
are often used synonymously for distributed computing, although they are&lt;br /&gt;
more like parallel computing which is spatially distributed.&lt;br /&gt;
&lt;br /&gt;
In distributed computing we assume a certain microscopic, local behavior&lt;br /&gt;
and consider the possible macroscopic, global behavior. In the field of&lt;br /&gt;
[[Distributed Algorithm]]s we ask traditionally, &lt;br /&gt;
if we can we reach a &lt;br /&gt;
&lt;br /&gt;
# global time (Synchronous Communication or Synchronization, Logical Time)&lt;br /&gt;
# global state (Global Snapshots, Deadlock Detection, Termination)&lt;br /&gt;
# unified state (Agreement or Consensus, Contention Problems as Election and Mutual Exclusion)&lt;br /&gt;
&lt;br /&gt;
== Articles and Resources ==&lt;br /&gt;
&lt;br /&gt;
[http://www.sunlabs.com/techrep/1994/abstract-29.html A Note on Distributed Computing], Jim Waldo et al., Sun Technical Report (1994) TR-94-29&lt;br /&gt;
&lt;br /&gt;
[http://research.microsoft.com/users/lamport/pubs/lamport-chapter.pdf A Chapter on Distributed Computing], Leslie Lamport and Nancy Lynch, in &amp;quot;Handbook of Theoretical Computer Science&amp;quot;, Jan Van Leeuwen (Editor), Chapter 18 (1990) 1157-1199&lt;br /&gt;
&lt;br /&gt;
[http://citeseer.ist.psu.edu/stankovic94distributed.html Distributed Computing], John A. Stankovic (1992)&lt;br /&gt;
&lt;br /&gt;
[http://www.cs.yale.edu/homes/fischer/pubs/appraising.pdf Appraising Two Decades of Distributed Computing Theory Research], Michael J. Fischer and Michael Merrit, Distrib. Computing Vol 16. (2003) 239-247&lt;br /&gt;
&lt;br /&gt;
[http://portal.acm.org/citation.cfm?coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;id=806567 Primitives for distributed computing], Barbara Liskov&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
&lt;br /&gt;
Hagit Attiya and Jennifer Welch, &amp;#039;&amp;#039;Distributed Computing: Fundamentals, Simulations, and Advanced Topics&amp;#039;&amp;#039;, John Wiley and Sons, Inc. (2004), ISBN 0-471-45324-2&lt;br /&gt;
&lt;br /&gt;
Claudia Leopold, &amp;#039;&amp;#039;Parallel and Distributed Computing: A Survery of Models, Paradigms, and Approaches&amp;#039;&amp;#039;, John Wiley and Sons, 2001, ISBN 0-471-35831-2&lt;br /&gt;
&lt;br /&gt;
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar, &amp;#039;&amp;#039;Parallel Computing&amp;#039;&amp;#039;, Pearson/Addison-Wesley, 2003, ISBN 0-201-64865-2&lt;br /&gt;
&lt;br /&gt;
== Portals and Links ==&lt;br /&gt;
&lt;br /&gt;
[http://directory.google.com/Top/Computers/Computer_Science/Distributed_Computing/ Google Directory] and&lt;br /&gt;
[http://dir.yahoo.com/Science/Computer_Science/Distributed_Computing/ Yahoo! Directory] for Distributed Computing.&lt;br /&gt;
&lt;br /&gt;
[http://www.sciencemag.org/content/vol308/issue5723/index.shtml Special Issuse of Science about Distributed Computing], Science Vol. 308 No. 5723 (2005)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:x-Computing Techniques]]&lt;/div&gt;</summary>
		<author><name>Jfromm</name></author>
	</entry>
</feed>