Distributed computing

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. 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. 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). Existen muchos tipos diferentes de implementaciones para el mecanismo de paso de mensajes, incluyendo HTTP puro, conectores tipo RPC y colas de mensajes. La computación distribuida también se refiere al uso de sistemas distribuidos para resolver problemas computacionales. En la informática distribuida, un problema se divide en muchas tareas, cada una de las cuales se resuelve mediante una o más computadoras, que se comunican entre sí a través del paso de mensajes.

Introducción

La palabra distribuida en términos tales 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. Los términos se usan 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. como: Hay varias entidades computacionales autónomas (computadoras o nodos), cada una de las cuales tiene su propia memoria local. Las entidades se comunican entre sí mediante el paso de mensajes. Un sistema distribuido puede tener un objetivo común, como resolver un gran problema computacional; 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. Otras propiedades típicas de los sistemas distribuidos incluyen las siguientes: El sistema tiene que tolerar fallas en computadoras individuales. La estructura del sistema (topología de la red, latencia de la red, número de computadoras) no se conoce de antemano, el sistema puede constar de diferentes tipos de computadoras y enlaces de red, y el sistema puede cambiar durante la ejecución de un programa distribuido. Cada computadora tiene solo una vista limitada e incompleta del sistema. Cada computadora puede conocer solo una parte de la entrada.

Computación paralela y distribuida

Los sistemas distribuidos son grupos de computadoras en red que comparten un objetivo común para su trabajo. Los términos "computación concurrente", "computación paralela" y "computación distribuida" se superponen mucho y no existe una distinción clara entre ellos. El mismo sistema puede caracterizarse tanto como "paralelo" como "distribuido"; los procesadores de un sistema distribuido típico se ejecutan simultáneamente en paralelo. La computación paralela puede verse como una forma particular de computación distribuida estrechamente acoplada, y la computación distribuida puede verse como una forma poco acoplada de computación en paralelo. No obstante, es posible clasificar aproximadamente los sistemas concurrentes como "paralelos" o "distribuidos" utilizando los siguientes criterios: En la computación paralela, todos los procesadores pueden tener acceso a una memoria compartida para intercambiar información entre procesadores. En la informática distribuida, cada procesador tiene su propia memoria privada (memoria distribuida). La información se intercambia pasando mensajes entre los procesadores. La figura de la derecha ilustra la diferencia entre sistemas distribuidos y paralelos. La figura (a) es una vista esquemática de una distribución típica