Nota Informativa de la Materia - LDC

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.