Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería Programa de Redes IV. Prof. María Feldgen Carrera : Ingeniería Informática Ubicación en el Plan de Estudios: 5erAño , cuatrimestral Carga Horaria: 8 hs de 45 minutos / semana ( 15 clases ) Objetivos: Introducir a los alumnos en los paradigmas de los sistemas distribuidos y sus modelos clásicos, en el diseño de protocolos de modelos de sistemas distribuidos y las distintas plataformas de desarrollo con estudio de casos. Programa Analítico: Unidad 1 (1 clase) Introducción a los sistemas distribuidos: Definición, características y objetivos (accesibilidad, transparencia de la distribución, sistemas abiertos y escalabilidad: problemas y técnicas). Estrategias. Hardware y Software. Confiabilidad en sistemas distribuidos. Estudio de casos exitosos y fracasos. Unidad 2 (2 clases) Repaso de conceptos de ambientes de programación y redes. Repaso de comunicaciones entre procesos (IPC) y concurrencia. Modelos de aplicaciones con sockets sobre TCP y UDP. Diseño del cliente. Modelos de diseño de servidores: Iterativos y concurrentes. Direccionamiento y binding. Modelo RPC. Concepto de binding dinámico. Semántica RPC. Diseño de aplicaciones. RPC Asincrónico. Concepto de middleware orientado a mensajes. Aplicación a un caso de estudio. Unidad 3 (3 clases) Paradigmas de sistemas distribuidos. Nombres y direccionamiento. Pasaje de Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería mensajes. Comunicación de mensajes transientes y persistentes. Comunicaciones de grupos. Tiempo y relojes. Sincronismo. Orden. Coordinación. Consistencia. Concurrencia. Aplicación a casos de estudio. Unidad 4 (3 clases) Diseño de servicios y protocolos: Conceptos del Modelo OSI y técnicas modernas de diseño de servicios y protocolos. Concepto de capas, API y servicios. Primitivas de servicios según el tipo de servicio. Protocolos: mecanismos y políticas. Análisis de servicios y protocolos estándares: repaso de protocolos de capa de transporte, estudio de mecanismos de inicialización, transferencia y terminación. Ventajas de la aplicación de políticas. Unidad 5 (2 clases) Arquitecturas de Sistemas Distribuidos: Conceptos, factores y evolución. Concepto de componente y conector. Arquitecturas de software: en capas, basadas en objetos, centradas en datos y basadas en eventos. Arquitectura de sistemas o de distribución: centralizada, distribuida y autonómica. Modelos y Frameworks de sistemas distribuidos. Estrategias. Modelos asincrónicos y sincrónicos. Clases de actividades distribuidas. Buses de mensajes. Orientados a grupos. PublisherSubscriber. Memoria distribuida compartida. Ejemplos y análisis desde el punto de vista de la arquitectura: acceso remoto, archivos y memoria distribuida, clienteservidor, tipos de clientes, tipos de servidores, conceptos de concurrencia, two tier, three tier, multitier, Object Request Broker, arquitecturas de código o sitio móviles, buses de mensajes y eventos. Unidad 6 (1 clase) Plataformas para Sistemas de Computación Distribuida (Computación de Alto Rendimiento (HPC: High Performance Computing): Conceptos, características y aplicaciones. Introducción a los sistemas paralelos y sus modelos. Supercomputadoras híbridas. Cluster de computadoras y sus características. Ejemplos. Computación en GRIDs: características, plataformas y protocolos. Introducción a los sistemas P2P y groupware. Estudio de casos y aplicaciones. Unidad 7 (1 clase) Plataformas para Sistemas de Procesamiento de Transacciones: Modelos de sistemas distribuidos. Características y aplicaciones. Ejemplos de aplicaciones. Integración de sistemas de una empresa. Unidad 8 (1 clase) Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería Plataformas de sistemas operativos distribuidos. Introducción al diseño de los sistemas operativos distribuidos. Conceptos fundamentales de los sistemas operativos modernos. Estructura de los objetos en el sistema operativo. Administración de los objetos. Administración de la interacción de los objetos. Administración de recursos. Arquitectura de CORBA. Modelo de componentes. Calidad de Servicio. Implementación del caso de estudio y comparación. Unidad 9 (1 clase) Plataformas para Sistemas Ubicuos y sistemas distribuidos de tiempo real: Definiciones, conceptos y características. Ejemplos de proyectos. Aplicaciones de Automatización Industrial. Redes de Sensores inalámbricas (WSN): características y limitaciones. Concepto de ahorro de energía. Conceptos de tiempo real. Redes de microsensores inalámbricos empotrados. Escenarios de aplicación en control industrial. Introducción a redes de campo cableadas. Comparación de WSN con la norma IEC61499 de modelado de sistemas industriales distribuidos y genéricos. Comparación de WSN con Fieldbus. Introducción a redes ad-hoc móviles. Comparación con WSN. Bibliografía: Sistemas Distribuidos. Principios y Paradigmas, 2º edición, Tanenbaum y Van Steen, Prentice Hall, 2008. Principles of Concurrent and Distributed Programming, Ben-Ari, M. , 2nd. Ed. Addison Wesley, 2006. Distributed Systems for Systems Architects, Verissimo, P., Rodriguez, L.:, Kluwer Academic Publishers, 2001. Software Engineering, 7th. Edition, I. Sommerville, Addison-Wesley, 2004. Transaction Processing: Concepts and Techniques by Jim Gray, Andreas Reuter. Elsevier Science & Technology Books, 1993, (The Morgan Kaufmann Series in Data Management Systems) The Grid: Core Technologies. Maozhen Li, Mark Baker. Wiley, 2005 IEEE Distributed Systems http://dsonline.computer.org/portal/site/dsonline/index.jsp Online, IEEE Transacctions on Dependable and Secure Computing, http://csdl2.computer.org/persagen/DLPublication.jsp?pubtype=t&acronym=tq Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería Elsevier JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING http://www.elsevier.com/wps/find/journaldescription.cws_home/622895/descri ption#description Metodología de enseñanza Exposición teórica de conceptos y análisis de casos. Comparación de técnicas e implementaciones, con trabajo de campo y trabajos prácticos de aplicación. Modalidad de Evaluación Parcial Preguntas teóricas y resolución de ejercicios prácticos. En la evaluación parcial se evaluarán los contenidos que corresponden a las unidades del programa analítico sobre un caso de estudio. Modalidad de Evaluación Final Por proyecto en grupos de 3 a 5 personas de implementación de una aplicación sobre una plataforma determinada, con la correspondiente instalación de la plataforma y el análisis de sus protocolos. Se evaluará la completitud de cada una de las partes solicitadas del trabajo grupal y se harán preguntas orales individuales a los integrantes del grupo.