Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Octubre 2014- Febrero 2015 Profesora: Yudith Cardinale Sistemas Distribuidos Descripción de la Materia 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 contenido está organizado en seis temas: Generalidades de los sistemas distribuidos, comunicación, modelos de computación distribuida, seguridad en aplicaciones distribuidas, herramientas para desarrollo de aplicaciones distribuidas y tendencias actuales e, computación distribuida. Simultáneamente se estudian herramientas básicas de programación distribuida, tales como librerías de comunicación, Sockets, RMI y Web Services. Objetivo General 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 algunas herramientas de programación de aplicaciones distribuidas. Objetivos Específicos Al finalizar este curso el estudiante estará en capacidad de: • Identificar y describir conceptos básicos relacionados con sistemas distribuidos. • Dada una aplicación distribuida, reconocer los efectos de utilizar diferentes plataformas y/o modos de comunicación. • Diferenciar diferentes modelos y herramientas para computación distribuida. • • Aplicar políticas y mecanismos para seguridad en aplicaciones distribuidas • • Aplicar políticas y mecanismos para seguridad en aplicaciones distribuidas Identificar tendencias actuales en tecnologías para computación distribuida. Construir software aplicando el modelo Cliente/Servidor y empleando las herramientas Sockets, RMI o Web Services. Tema 1: Definiciones básicas. Concepto de sistema distribuido. Diferencias entre sistemas distribuidos y centralizados. Ventajas y desventajas de los sistemas distribuidos. Tipos de distribución: Distribución de control, Distribución de cálculo y Distribución de datos. Problemas en Sistemas Distribuidos. Detección de Estados Globales. Ordenamiento de eventos. Relojes Lógicos. Ejemplos de Aplicaciones Distribuidas. Tema 2: Comunicación. Modelo Procesos Secuenciales Comunicantes (CSP): Presentación del modelo. Componentes de una aplicación bajo el modelo PSC. Procesos. Creación de procesos. Mensajes. Modos de comunicación: Comunicación síncrona ó bloqueante. Comunicación asíncrona ó no bloqueante. Librerías de comunicación: Ejemplo MPI. Taller MPI. Tema 3: Modelos de Computación Distribuida. Procesos y Threads. Modelo Cliente/Servidor para desarrollo de software en redes: Descripción del modelo. Procesos servidores. Estructura general de un Servidor. Tipos de Servidores. Servidor iterativo. Servidor concurrente. Procesos Clientes. Estructura general de un Proceso Cliente. Tipos de Clientes. Llamadas a Procedimientos Remotos: Operación básica RPC. Paso de Parámetros. Objetos Distribuidos: Invocación a Objetos remotos. Invocación a Métodos Remotos. Modelo Peer-to-Peer. Migración de Procesos y Agentes Móviles. Tema 4: Sincronización en Sistemas Distribuidos. Relojes. Sincronización de relojes. Exclusión mutua distribuida. Algoritmos de elección de coordinador. Tema 5: Desarrollo de Aplicaciones Distribuidas. Diseño de aplicaciones Distribuidas. Herramienta Java RMI: Componentes Java RMI. Ejemplos. Talleres: Java, Sockets, RMI. Ejemplos. Tema 6: Tendencias en Aplicaciones Distribuidas. Tendencias en Sistemas Distribuidos: Web, Grid, cluster y cloud computing. Casos de estudio: Herramientas y tecnologías en Sistemas Distribuidos. Ejemplos. Evaluación Se realizarán evaluaciones continuas a través de: una prueba escrita presencial, dos trabajos prácticos (proyectos) y sus correspondientes informes, tareas cortas y talleres, y una exposición. El peso sobre la nota definitiva es el siguiente: Examen presencial: 15 % Participación: Promedio de tareas cortas y talleres: Dos (2) proyectos prácticos: Exposición: 5% 20 % 40 % (20 % cada uno) 20%. Bibliografía • Distributed Systems Principles and Paradigmas. A. Tanenbaum and M. Van Steen. Prentice Hall, New Jersey. 2002. • Computación Distribuida. Fundamentos y aplicaciones. M.L. Liu. Addison Wesley, 2004. • Sistemas Distribuidos. Conceptos y Diseño. G. Coulouris, J. Dollimore and T. Kinderberg. Addison Wesley. 2001. • Advanced Concept in Operating Systems: Distributed Database and Multiprocessor Operating System. M. Singhal and N. Shivaratri. Mc Graw Hill, New York. 1994. • Designing Concurrent Distributed and Real-Time Applications with UML. Gomaa Hassan. AddisonWesley. 2000. • MPI The Complete Reference. M. Snir, S. W. Otto, J. Dongarra. MIT Press. • Using MPI. Portable Parallel Programming with de Message Passing Interface. W. Gropp, E. Lusk, A. Skjillum. • Artículos recomendados en cada tema.
© Copyright 2024