Distributed computing

distributeddistributed systemsdistributed systemdistributed processingdistributed applicationdistributed applicationsdistributed architecturedistributed programmingdistributed computationdistributed computer systems
Distributed computing is a field of computer science that studies distributed systems.wikipedia
998 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

Message Oriented Middlewareasynchronous messagingmessage 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

networkcomputer networkingnetworking
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.

Distributed algorithm

distributed algorithmsdistributed
The word distributed in terms such as "distributed 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
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

lack of a global clockclock synchronisationlocking" 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 scales, 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 coupledlooser couplingloosely-coupled
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.

Parallel computing

parallelparallel processingparallelism
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.

Grid computing

gridgridscomputing grid
A computing grid can be thought of as a distributed system with non-interactive workloads that involve many files.

List of distributed computing projects

Yoyo@homeMoo! WrapperMany distributed computing applications
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.
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-basedPublic Resource Computing
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".

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.

Database

database management systemdatabasesDBMS
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
If the network in question is a distributed system, the nodes are clients, servers or peers.

Cloud computing

cloudcloud-basedcloud services
The term cloud was used to refer to platforms for distributed computing as early as 1993, when Apple spin-off General Magic and AT&T used it in describing their (paired) Telescript and PersonaLink technologies.

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.

Database-centric architecture

Data-centricDatabase-centricdatabase-centric" architecture
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.

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.