Computación distribuída


La computación distribuida es un campo de la informática que estudia los sistemas distribuidos. Un sistema distribuido es un sistema cuyos componentes están ubicados en diferentes computadoras en red , que se comunican y coordinan sus acciones pasándose mensajes entre sí desde cualquier sistema. [1] Los componentes interactúan entre sí para lograr un objetivo común. Tres características importantes de los sistemas distribuidos son: concurrencia de componentes, falta de un reloj global y falla independiente de componentes. [1] Se trata de un desafío central que, cuando fallan los componentes de un sistema, no implica que todo el sistema falle. [2]Los ejemplos de sistemas distribuidos varían desde sistemas basados en SOA hasta juegos en línea multijugador masivo y aplicaciones peer-to-peer .

Un programa de computadora que se ejecuta dentro de un sistema distribuido se denomina programa distribuido (y la programación distribuida es el proceso de escribir dichos programas). [3] Hay muchos tipos diferentes de implementaciones para el mecanismo de paso de mensajes, incluyendo HTTP puro, conectores tipo RPC y colas de mensajes . [4]

La computación distribuida también se refiere al uso de sistemas distribuidos para resolver problemas computacionales. En la computación distribuida , un problema se divide en muchas tareas, cada una de las cuales es resuelta por una o más computadoras, [5] que se comunican entre sí a través del paso de mensajes. [6]

La palabra distribuida en términos como "sistema distribuido", "programación distribuida" y " algoritmo distribuido " se refería originalmente a las redes de computadoras donde las computadoras individuales se distribuían físicamente dentro de un área geográfica. [7] Los términos se utilizan hoy en día en un sentido mucho más amplio, incluso refiriéndose a procesos autónomos que se ejecutan en la misma computadora física e interactúan entre sí mediante el paso de mensajes. [6]

Si bien no existe una definición única de un sistema distribuido, [8] las siguientes propiedades definitorias se utilizan comúnmente como:

Un sistema distribuido puede tener un objetivo común, como resolver un gran problema computacional; [11] el usuario entonces percibe la colección de procesadores autónomos como una unidad. Alternativamente, cada computadora puede tener su propio usuario con necesidades individuales, y el propósito del sistema distribuido es coordinar el uso de recursos compartidos o proporcionar servicios de comunicación a los usuarios. [12]


(a), (b): un sistema distribuido.
(c): un sistema paralelo.