N2 "Sistemas Distribuídos Asincrónicos"
Horario: 19 a 22 hs.
Dr. Alberto Bartoli es Profesor Asociado del Depto. de Ingeniería de la Información en la Universidad de Pisa, Italia.
Es Ingeniero Eléctrico (cum laude, 1989) y Doctor en Ingeniería de Computadoras (1994). Universidad de Pisa, Italia. Es autor de múltiples publicaciones en el área. Ha participado de varios proyectos de la CEE, dentro del marco Esprit: Tracs (1991, 1993), Pegasus (1992), Broadcast (1994), Moby Dick (1997). Ha sido revisor de IEEE Computer, IEEE Parallel and Distributed Technology, Distributed Computing, ACM Journal on Mobile Networks. Ha sido profesor de "Fundamentos de Informática" y de "Programación de Sistemas Distribuídos sujetos a fallas" en la Universidad de Pisa.
Programa y Objetivos:
Los sistemas distribuídos se están volviendo vehículos comunes para hacer negocios en distintos dominios de aplicación, y para proveer servicios críticos en la vida diaria. Algunos ejemplos incluyen la banca, finanzas, control industrial, telecomunicaciones, comercio y trabajo colaborativo, entre otros sectores que confían de forma creciente en los sistemas distribuídos. En particular, en sistemas construídos usando infraestructuras de computación "off-the-shelf".
Implementar un algoritmo distribuído implica hacer varias presunciones con respecto al sistema de computadoras subyacente. En muchos entornos reales (incluyendo la Internet), el sistema suele modelarse como un sistema asincrónico, donde tanto las computadoras como sus enlaces pueden caer y luego recuperarse. Un sistema sincrónico es aquel en el que las demoras de comunicación y las velocidades relativas de cómputo no pueden acotarse con certeza. Tal caracterización permite abstraerse de características tales como cargas variables impuestas por los usuarios y estrategias de planificación desconocidas.
En este curso se repasarán los principales paradigmas de programación de sistemas distribuídos asincrónicos sujetos a fallas. Se discutirá en detalle el uso e implementación de llamadas a procedimientos remotos (RPC), en particular con respecto a sistemas asincrónicos donde los enlaces y/o servidores pueden fallar. Luego se considerará el problema de implementar servicios tolerantes a fallas. Se presentarán dos técnicas sistemáticas: backup primario y máquinas de estados (analizando los problemas de su implementación vía RPC). Se presentarán otras abstracciones que pueden simplificar el trabajo del programador: multicast confiable, multicast atómico, membresía de grupos, sincronía virtual. Se analizará la implementación de los servicios de forma tal de tolerar particiones de la red. Finalmente se presentará un paradigma de programación, llamado Enriched View Synchrony, que ha sido propuesto para simplificar la programación en estos ambientes.
Prerrequisitos:
Conocimientos de Sistemas Operativos y Redes de Información.
ESTE CURSO SERÁ DICTADO EN CASTELLANO.