Sistemas Distribuidos Carrera: Magister en Redes de Datos Año 2010 Duración: 124 Hs. Profesor a Cargo: Dr. Fernando Tinetti OBJETIVOS GENERALES: Proveer los fundamentos del procesamiento distribuido. Identificar las arquitecturas de procesamiento y comunicaciones para procesamiento distribuido. Relacionar el procesamiento distribuido con la programación concurrente y con los sistemas operativos. Identificar las bases de la arquitectura cliente servidor y su impacto en la ingeniería de software actual. Identificar los sistemas operativos de red, los sistemas de middleware y los sistemas operativos distribuidos. MODALIDAD DE EVALUACION Evaluaciones individuales de los trabajos prácticos Evaluación con examen final DESCRIPCIÓN DEL CURSO Proveer una introducción a los conceptos y principios de diseño usados en la construcción de sistemas distribuidos, comenzando por el modelo Cliente-Servidor. Analizar estrategias de procesamiento, desarrollo, puesta en marcha y mantenimiento de los sistemas distribuidos actuales. PRERREQUISITOS: Haber aprobado Sistemas Operativos. Calle 120 y 50 2do piso (1900) La Plata Pág. 1 de 7 http://postgrado.info.unlp.edu.ar
Programa Módulo 1: Introducción a los Sistemas Distribuidos 1.1. Evolución Histórica 1.2. Motivaciones y Definiciones 1.3. Ventajas y Desventajas 1.4. Objetivos 1.5. Análisis de Terminología y Publicaciones 1.6. Arquitecturas de Sistemas Distribuidos Módulo II: Comunicación en Sistemas Distribuidos 2.1. Pasaje de Mensajes 2.2. Modelo Cliente Servidor 2.3. Variaciones Semánticas y su Impacto en el Sistema Distribuido 2.4. Llamadas a Procedimientos Remotos (RPC) 2.5. Invocación Remota de Métodos (RMI) 2.6. Grupos de Comunicación Módulo 3: Sincronización en Sistemas Distribuidos 3.1. Sincronización de Reloj 3.2. Exclusión Mutua 3.3. Algoritmos de Elección 3.4. Bloqueos en Sistemas Distribuidos Módulo 4: Sistemas de Nombres 4.1. Definiciones 4.2. Tipos/Clases de nombres 4.3. Resolución de nombres 4.4. Nombres in/dependientes de la ubicación 4.5. Espacio de nombres: organización (del sistema) de nombres 4.6. Asimilación a DNS 4.7. DNS: Servidores de Nombres, Root Name Servers, Resolución de nombres 4.8. X.500 - LDAP Módulo 5: Manejo de Procesos y Código 5.1. Migración de Procesos 5.2. Threads 5.3. Modelos de Movilidad de Código Módulo 6: Sistemas de Archivos Distribuidos Calle 120 y 50 2do piso (1900) La Plata Pág. 2 de 7 http://postgrado.info.unlp.edu.ar
6.1. Características 6.2. Modelos de Archivos 6.3. Modelos de Acceso a Archivos 6.4. Semántica de Archivos Compartidos 6.5. Esquemas de Caching 6.6. Replicación de Archivos 6.7. Tolerancia a las Fallas Módulo 7: Memoria Compartida Distribuida 7.1. Motivaciones 7.2. Diseño e Implementación 7.3. Modelos de Consistencia 7.4. Consideraciones de Rendimiento Módulo 8: Middleware y Rendimiento 8.1. Perspectivas 8.2. Comunicación entre Procesos 8.3. Tiempo de Respuesta 8.4. Procesamiento Total, Carga y Métricas Relacionadas 8.5. Procesamiento de Transacciones 8.6. Mensajes vs. RPC 8.7. Relación con otras Arquitecturas de Sistemas Distribuidos Actividades de Clase/Laboratorio Semana 1: Teoría (Tópico 1. Introducción a los Sistemas Distribuidos) 1.1. Evolución Histórica 1.2. Motivaciones y Definiciones 1.3. Ventajas y Desventajas 1.4. Objetivos 1.5. Análisis de Terminología y Publicaciones 1.6. Arquitecturas de Sistemas Distribuidos Semana 2: Análisis de los sistemas de comunicaciones entre procesos en red, sockets, y su nivel de abstracción para la construcción de sistemas distribuidos Repaso/análisis de los protocolos de nivel de aplicación y los requerimientos de los sistemas distribuidos Calle 120 y 50 2do piso (1900) La Plata Pág. 3 de 7 http://postgrado.info.unlp.edu.ar
Búsqueda bibliográfica y de ejemplos de sistemas distribuidos actualmente en producción Semana 3: Teoría (Tópico 2 Comunicación en Sistemas Distribuidos) 2.1. Pasaje de Mensajes 2.2. Modelo Cliente Servidor 2.3. Variaciones Semánticas y su Impacto en el Sistema Distribuido 2.4. Llamadas a Procedimientos Remotos (RPC) Semana 4: Teoría (Tópico 2 Comunicación en Sistemas Distribuidos-continuación) 2.5. Invocación Remota de Métodos (RMI) 2.6. Grupos de Comunicación Experimentación con RPC: análisis de niveles de abstracción Experimentación con RMI, comparación con RPC Propuesta de servicios provistos con sockets y con RPC Semana 5: Teoría (Tópico 3. Sincronización en Sistemas Distribuidos) 3.1. Sincronización de Reloj 3.2. Exclusión Mutua 3.3. Algoritmos de Elección 3.4. Bloqueos en Sistemas Distribuidos Semana 6: Algoritmos de sincronización de relojes Análisis de rendimiento/error de sincronización Análisis de NTP (Network Time Protocol) Semana 7: Teoría (Tópico 4. Sistemas de Nombres) 4.1. Definiciones 4.2. Tipos/Clases de nombres 4.3. Resolución de nombres 4.4. Nombres in/dependientes de la ubicación 4.5. Espacio de nombres: organización (del sistema) de nombres Calle 120 y 50 2do piso (1900) La Plata Pág. 4 de 7 http://postgrado.info.unlp.edu.ar
Semana 8: Teoría (Tópico 4. Sistemas de Nombres-continuación) 4.6. Asimilación a DNS 4.7. DNS: Servidores de Nombres, Root Name Servers, Resolución de nombres 4.8. X.500 - LDAP Análisis de la implementación de DNS Análisis del nivel de independencia de la ubicación en DNS Búsqueda bibliográfica de implementaciones de sistemas de nombres Semana 9: Teoría (Tópico 5. Manejo de Procesos y Código) 5.1. Migración de Procesos 5.2. Threads 5.3. Modelos de Movilidad de Código Semana 10: Análisis de Java como plataforma de ejecución distribuida Análisis de aplicaciones web y su método de movilidad de código Semana 11: Teoría (Tópico 6. Sistemas de Archivos Distribuidos) 6.1. Características 6.2. Modelos de Archivos 6.3. Modelos de Acceso a Archivos 6.4. Semántica de Archivos Compartidos 6.5. Esquemas de Caching 6.6. Replicación de Archivos 6.7. Tolerancia a las Fallas Semana 12: Elaboración de interfaces cliente/servidor para un servidor de archivos Análisis de posibles implementaciones Implementación de un sistema de archivos remoto con RPC/RMI Semana 13: Teoría (Tópico 7. Memoria Compartida Distribuida) 7.1. Motivaciones 7.2. Diseño e Implementación 7.3. Modelos de Consistencia Calle 120 y 50 2do piso (1900) La Plata Pág. 5 de 7 http://postgrado.info.unlp.edu.ar
7.4. Consideraciones de Rendimiento Semana 14: Teoría (Tópico 8. Middleware y Rendimiento) 8.1. Perspectivas 8.2. Comunicación entre Procesos 8.3. Tiempo de Respuesta 8.4. Procesamiento Total, Carga y Métricas Relacionadas Semana 15: Teoría (Tópico 8. Middleware y Rendimiento-continuación) 8.5. Procesamiento de Transacciones 8.6. Mensajes vs. RPC 8.7. Relación con otras Arquitecturas de Sistemas Distribuidos Evaluaciones de rendimiento de los ejercicios/implementaciones realizados en tareas de laboratorio anteriores Semana 16: Repaso, consultas generales y evaluación Bibliografía Bibliografía Básica: Douglas E. Comer, Internetworking With TCP/IP Volume 1: Principles Protocols, and Architecture, 5th edition, 2006.Prentice Hall Christian Huitema, Routing in the Internet, Prentice Hall, 1995. Internetworking With TCP/IP Volume II: Design, Implementation, and Internals (with D. Stevens), 3rd edition, 1999. Prentice Hall W. Richard Stevens, TCP/IP Illustrated vol. 1, Addison-Wesley, 1994. James F. Kurose-Keith W. Ross, Computer Networking: A Top-Down Approach, 5th Edition, Prentice Hall, 2010. Calle 120 y 50 2do piso (1900) La Plata Pág. 6 de 7 http://postgrado.info.unlp.edu.ar
Portal de la carrera: http://postgrado.linti.unlp.edu.ar Bibliografía complementaria: Andrew S. Tanenbaum, Computer Networks, 4th Edition, Prentice Hall, 2003. Andrew S. Tanenbaum, Redes de computadores, Cuarta edición, Pearson Prentice Hall, 2003. William Stallings, Comunicaciones y redes de computadores, Séptima edición, Prentice Hall, 2004 Páginas de consulta: www.isoc.orgwww.isoc.org ; www.ietf.org Calle 120 y 50 2do piso (1900) La Plata Pág. 7 de 7 http://postgrado.info.unlp.edu.ar