El propósito de esta materia es proporcionar al estudiante conocimientos teórico-prácticos que le permitan comprender los componentes fundamentales de los sistemas distribuidos.

El curso tendrá un carácter teórico-práctico a fin de familiarizar al estudiante con herramientas básicas de programación sobre plataformas distribuidas.

El contenido de este curso está organizado en siete temas: Generalidades de los sistemas distribuidos, comunicación, procesos, nominación, consistencia y duplicación, tolerancia a fallas y seguridad. Simultáneamente se estudian herramientas básicas de programación distribuida, tales como los sockets y librerí­as de comunicación.

Al finalizar el curso, el estudiante será capaz de identificar los componentes principales de un sistema distribuido y haber adquirido conocimientos necesarios para analizar, diseñar y evaluar soluciones para ambientes de computación distribuida. Así­ mismo se habrá familiarizado con alguna herramienta básica de programación de aplicaciones distribuidas.

Sistema distribuido

Un sistema distribuido se define como una colección de computadoras separadas fí­sicamente y conectadas entre sí por una red de comunicaciones; cada máquina posee sus componentes de hardware y software que el programador percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El programador accede a los componentes de software (objetos) remotos, de la misma manera en que accedería a componentes locales, en un grupo de computadoras que usan un middleware entre los que destacan (RPC) y SOAP para conseguir un objetivo.

Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone, otro componente debe ser capaz de reemplazarlo. Esto se denomina tolerancia a fallos.

El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de área local), centenas de hosts (red de área metropolitana), o miles, o millones de hosts (Internet); esto se denomina escalabilidad. 1​


La masificación del uso de los computadores y su interconexión en redes constituye la base de la tecnología actual en la cual son explotables las aplicaciones distribuidas. De allí que los conocimientos que permitan desarrollar de manera eficiente aplicaciones distribuidas constituye un pilar esencial en la formación. El propósito de esta asignatura familiarizar al estudiante con conocimientos generales sobre sistemas distribuidos, herramientas y soluciones específicos en el área y con problemas conocidos relacionados con los sistemas distribuidos. 

Al finalizar el curso el estudiante estará en capacidad de:

  • Manejar conceptos básicos relacionados con sistemas distribuidos.

  • Comprender propiedades de los algoritmos distribuidos y establecer comparaciones entre algoritmos distribuidos.

  • Identificar problemas claves en sistemas distribuidos y comprender algoritmos clásicos definidos para resolverlos.

  • Desarrollar algoritmos distribuidos.


El propósito de esta materia es proporcionar al estudiante conocimientos teórico-prácticos que le permitan comprender los componentes fundamentales de los sistemas distribuidos.

El curso tendrá un carácter teórico-práctico a fin de familiarizar al estudiante con herramientas básicas de programación sobre plataformas distribuidas.

El contenido de este curso está organizado en siete temas: Generalidades de los sistemas distribuidos, comunicación, procesos, nominación, consistencia y duplicación, tolerancia a fallas y seguridad. Simultáneamente se estudian herramientas básicas de programación distribuida, tales como los sockets y librerías de comunicación.

Al finalizar el curso, el estudiante será capaz de identificar los componentes principales de un sistema distribuido y habrá adquirido conocimientos necesarios para analizar, diseñar y evaluar soluciones para ambientes de computación distribuida. Así mismo se habrá familiarizado con alguna herramienta básica de programación de aplicaciones distribuidas.

Sistema distribuido

Un sistema distribuido se define como una colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones; cada máquina posee sus componentes de hardware y software que el programador percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El programador accede a los componentes de software (objetos) remotos, de la misma manera en que accedería a componentes locales, en un grupo de computadoras que usan un middleware entre los que destacan (RPC) y SOAP para conseguir un objetivo.

Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone, otro componente debe ser capaz de reemplazarlo. Esto se denomina tolerancia a fallos.

El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de área local), centenas de hosts (red de área metropolitana), o miles, o millones de hosts (Internet); esto se denomina escalabilidad. 1​


El propósito de esta materia es proporcionar al estudiante conocimientos teórico-prácticos que le permitan comprender los componentes fundamentales de los sistemas distribuidos.

El curso tendrá un carácter teórico-práctico a fin de familiarizar al estudiante con herramientas básicas de programación sobre plataformas distribuidas.

El contenido de este curso está organizado en siete temas: Generalidades de los sistemas distribuidos, comunicación, procesos, nominación, consistencia y duplicación, tolerancia a fallas y seguridad. Simultáneamente se estudian herramientas básicas de programación distribuida, tales como los sockets y librerías de comunicación.

Al finalizar el curso, el estudiante será capaz de identificar los componentes principales de un sistema distribuido y habrá adquirido conocimientos necesarios para analizar, diseñar y evaluar soluciones para ambientes de computación distribuida. Así mismo se habrá familiarizado con alguna herramienta básica de programación de aplicaciones distribuidas.

Sistema distribuido

Un sistema distribuido se define como una colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones; cada máquina posee sus componentes de hardware y software que el programador percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El programador accede a los componentes de software (objetos) remotos, de la misma manera en que accedería a componentes locales, en un grupo de computadoras que usan un middleware entre los que destacan (RPC) y SOAP para conseguir un objetivo.

Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone, otro componente debe ser capaz de reemplazarlo. Esto se denomina tolerancia a fallos.

El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de área local), centenas de hosts (red de área metropolitana), o miles, o millones de hosts (Internet); esto se denomina escalabilidad. 1​