Distributed computing

distributeddistributed systemsdistributed systemdistributed processingdistributed applicationdistributed applicationsdistributed architecturedistributed programmingdistributed computationdistributed computing project
Distributed computing is a field of computer science that studies distributed systems.wikipedia
971 Related Articles

Remote procedure call

RPCremote procedure callsremoting
There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.

Message-oriented middleware

asynchronous messagingmessage oriented middlewaremessage queues
There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.
Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems.

Service-oriented architecture

SOAservice oriented architectureservice-oriented
Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.
SOA can be seen as part of the continuum which ranges from the older concept of distributed computing and modular programming, through SOA, and on to current practices of mashups, SaaS, and cloud computing (which some see as the offspring of SOA).

Computer network

networknetworkingcomputer networking
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.
Distributed computing uses computing resources across a network to accomplish tasks.

Computer science

computer scientistcomputer sciencescomputer scientists
Distributed computing is a field of computer science that studies distributed systems.
Scientific computing enabled practical evaluation of processes and situations of great complexity, as well as experimentation entirely by software. It also enabled advanced study of the mind, and mapping of the human genome became possible with the Human Genome Project. Distributed computing projects such as Folding@home explore protein folding.

Distributed algorithm

distributed algorithmsdistributed
The word parallel in terms such as "parallel system", "distributed programming", and "distributed algorithm" originally referred to computer networks where individual computers were physically distributed within some geographical area.
Distributed algorithms are used in many varied application areas of distributed computing, such as telecommunications, scientific computing, distributed information processing, and real-time process control.

Concurrent computing

concurrentconcurrent programmingconcurrency
The terms "concurrent computing", "parallel computing", and "distributed computing" have a lot of overlap, and no clear distinction exists between them.
Concurrent computations may be executed in parallel, for example, by assigning each process to a separate processor or processor core, or distributing a computation across a network.

Clock synchronization

clock synchronisationlack of a global clocklocking" its clock
Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.
As a result of the difficulties managing time at smaller scale, there are problems associated with clock skew that take on more complexity in distributed computing in which several computers will need to realize the same global time.

Client–server model

client–serverclient-serverclient/server
Distributed programming typically falls into one of several basic architectures: client–server, three-tier, n-tier, or peer-to-peer; or categories: loose coupling, or tight coupling.
Client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.

Symposium on Principles of Distributed Computing

PODC
The first conference in the field, Symposium on Principles of Distributed Computing (PODC), dates back to 1982, and its counterpart International Symposium on Distributed Computing (DISC) was first held in Ottawa in 1985 as the International Workshop on Distributed Algorithms on Graphs.
The Symposium on Principles of Distributed Computing (PODC) is an academic conference in the field of distributed computing organised annually by the Association for Computing Machinery (special interest groups SIGACT and SIGOPS).

Inter-process communication

interprocess communicationIPCinterapplication communication
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.
Many applications are both clients and servers, as commonly seen in distributed computing.

Peer-to-peer

P2Ppeer to peerpeer-to-peer network
Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications. Distributed programming typically falls into one of several basic architectures: client–server, three-tier, n-tier, or peer-to-peer; or categories: loose coupling, or tight coupling.
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers.

Loose coupling

loosely coupledloosely-coupledlooser coupling
Distributed programming typically falls into one of several basic architectures: client–server, three-tier, n-tier, or peer-to-peer; or categories: loose coupling, or tight coupling.
Loose coupling in broader distributed system design is achieved by the use of transactions, queues provided by message-oriented middleware, and interoperability standards.

Grid computing

gridgridscomputing grid
scientific computing, including cluster computing and grid computing and various volunteer computing projects (see the list of distributed computing projects),
The grid can be thought of as a distributed system with non-interactive workloads that involve a large number of files.

Parallel computing

parallelparallel processingparallelism
The terms "concurrent computing", "parallel computing", and "distributed computing" have a lot of overlap, and no clear distinction exists between them.
In contrast, in concurrent computing, the various processes often do not address related tasks; when they do, as is typical in distributed computing, the separate tasks may have a varied nature and often require some inter-process communication during execution.

List of distributed computing projects

distributed computing projectMany distributed computing applicationsmany other projects
scientific computing, including cluster computing and grid computing and various volunteer computing projects (see the list of distributed computing projects),
This is a list of distributed computing and grid computing projects.

Computer cluster

clusterclusteringclusters
Distributed programming typically falls into one of several basic architectures: client–server, three-tier, n-tier, or peer-to-peer; or categories: loose coupling, or tight coupling. scientific computing, including cluster computing and grid computing and various volunteer computing projects (see the list of distributed computing projects),
Computer clusters emerged as a result of convergence of a number of computing trends including the availability of low-cost microprocessors, high-speed networks, and software for high-performance distributed computing.

Volunteer computing

volunteervolunteer-basedvolunteer computing projects
scientific computing, including cluster computing and grid computing and various volunteer computing projects (see the list of distributed computing projects),
Volunteer computing is a type of distributed computing, "an arrangement in which people, so-called volunteers, provide computing resources to projects, which use the resources to do distributed computing and/or storage".

Computational science

scientific computingscientific computationscientific
scientific computing, including cluster computing and grid computing and various volunteer computing projects (see the list of distributed computing projects),
In some cases, these models require massive amounts of calculations (usually floating-point) and are often executed on supercomputers or distributed computing platforms.

Message passing

message-passingmessagesmessage
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.
Distributed computing

Database

database management systemdatabasesdatabase systems
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.
In recent years, there has been a strong demand for massively distributed databases with high partition tolerance, but according to the CAP theorem it is impossible for a distributed system to simultaneously provide consistency, availability, and partition tolerance guarantees.

Node (networking)

nodenodesnetwork node
There are several autonomous computational entities (computers or nodes), each of which has its own local memory.
If the network in question is a distributed system, the nodes are clients, servers or peers.

Theoretical computer science

theoretical computer scientisttheoreticalcomputer science
In theoretical computer science, such tasks are called computational problems.
Distributed computing studies distributed systems.

Communication complexity

communication complexity).
In theoretical computer science, communication complexity studies the amount of communication required to solve a problem when the input to the problem is distributed among two or more parties.

Consensus (computer science)

consensusconsensus problemsdistributed consensus
Examples of related problems include consensus problems, Byzantine fault tolerance, and self-stabilisation.
A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes.