Planificaciones 7574 - Sistemas Distribuidos I Docente responsable: MENDEZ MARIANO 1 de 6

Anuncio
7574 - Sistemas Distribuidos I
PLANIFICACIONES
Planificaciones
7574 - Sistemas Distribuidos I
Docente responsable: MENDEZ MARIANO
1 de 6
Actualización: 2ºC/2016
7574 - Sistemas Distribuidos I
PLANIFICACIONES
Actualización: 2ºC/2016
OBJETIVOS
Introducir a los alumnos en los paradigmas de los sistemas distribuidos y sus modelos clásicos, en el diseño
de plataformas de middleware y en los conceptos de tolerancia a fallos.
CONTENIDOS MÍNIMOS
-
PROGRAMA SINTÉTICO
Especificaciones de sistemas concurrentes y distribuidos. Abstracción y formalización. Validación y verificación.
Ambientes de desarrollo. Paradigmas de nombres, serialización, sincronismo y asincronismo, relojes, orden,
coordinación, consistencia y concurrencia. Modelos de middleware orientado a mensajes transientes y
persistentes, sincrónicos y asincrónicos. Estrategias de diseño, Estudio de aplicación de los modelos: publishersubscriber, memoria distribuida, etc. Clases de actividades. Sistemas tolerantes a fallos. Casos de estudio.
PROGRAMA ANALÍTICO
Introducción a los sistemas distribuidos: Definición. Objetivos, Arquitecturas y tipos de sistemas distribuido.
Concepto de Middleware.
Unidad 1:
Repaso de conceptos de análisis y diseño de sistemas. Introducción al análisis y diseño de sistemas
distribuidos. Concepto de objeto activo y pasivo. Diagramas UML. Arquitecturas. Interfaces y componentes.
Subsistemas.
Unidad 2:
Comunicaciones en sistemas distribuidos. Concepto de servicios y protocolos en el modelo OSI. Primitivas de
servicios con y sin conexión. Comparación del modelo OSI con el modelo TCP/IP. Repaso de conceptos de
redes de comunicaciones, internetworking, capas de transporte, sesión, presentación y aplicación. Análisis de
protocolos, concepto y algoritmos de ARQ. Análisis de tráfico. Distorsión y demora. Modelo Cliente Servidor.
Introducción a los ambientes de programación distribuidos.
Unidad 3:
Ambientes de programación. 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 4:
Paradigmas de sistemas distribuidos. Nombres y direccionamiento. Pasaje de 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 5:
Modelos de sistemas distribuidos. Frameworks de sistemas distribuidos. Estrategias. Modelos asincrónicos y
sincrónicos. Clases de actividades distribuidas. Buses de mensajes. Orientados a grupos. Publisher-Subscriber.
Memoria distribuida compartida. Aplicación a casos de estudio.
Unidad 6:
Algoritmos de red sincrónicos y asincrónicos. Conceptos básicos de los algoritmos distribuidos. Modelización de
procesos sincrónicos sobre redes. Medición de complejidad. Algoritmos de anillo sincrónico con elección de líder.
Algoritmos para fallas de enlace. Algoritmos para fallas de procesadores. Algoritmos para fallas bizantinas.
Aplicación a casos de estudio.
Unidad 7:
Tolerancia a fallos. Definiciones. Concepto de confiabilidad (dependability). Tolerancia a fallos distribuida,
redes y arquitecturas. Detección de fallas. Paradigmas de tolerancia a fallos.
BIBLIOGRAFÍA
1) Verissimo, P., Rodriguez, L.: Distributed Systems for Systems Architects, Kluwer Academic Publishers, 2001.
2) Tanenbaum, A. Van Steen, M.: Distributed Systems. Principles and Paradigms, Second Edition. Prentice
Hall, 2007.
3) Gomaa, Hassan: Software Modeling & Design. UML, Use cases, pattern & software architectures.
Cambridge, 2011.
4) Lynch, Nancy: Distributed Algorithms, Morgan Kaufmann, 1996.
5) Comer, D., Stevens, D.: Internetworking with TCP/IP, Volume 3, Client-Server Programming and
Applications, Linux /Posix Sockets Version, Prentice Hall, 2001.
6) Ben-Ari, M. Principles of Concurrent and Distributed Programming, 2nd. Ed. Addison Wesley, 2006.
7) Estándares de protocolos y frameworks (fuente Internet)
2 de 6
7574 - Sistemas Distribuidos I
PLANIFICACIONES
Actualización: 2ºC/2016
8) Apuntes de la materia y otras enlaces a otras fuentes en la página de la materia y/o en el campos
RÉGIMEN DE CURSADA
Metodología de enseñanza
Exposición teórica de conceptos fundamentales, con resolución metódica de problemas tipo y ensayos sobre
objetivos.
Análisis y Diseño y resolución por parte de los alumnos y controlada por los docentes de un caso de estudio
aplicado a las unidades temáticas del programa. En general se tratará de problemas abiertos, que generen
dudas y motiven la consulta a los docentes y la profundización del conocimiento a través de la bibliografía. Se
desarrollará un trabajo práctico final que integre los conceptos aprendidos. El desarrollo del curso se
encuentra en la página web de la materia: http://www.fi.uba.ar/materias/7574/
Modalidad de Evaluación Parcial
De manejo de conceptos, aplicación de conocimientos y dominio de técnicas, mediante la respuesta a
preguntas y la resolución de problemas por escrito en evaluaciones parciales e integradoras, y el desarrollo
controlado de trabajos prácticos escritos y en computadora.
Las evaluaciones parciales e integradoras son por unidades o subunidades temáticas.
La evaluación de los trabajos por computadora es por presentación en tiempo y forma (plazos y formato
establecido), método de desarrollo (aplicación de método de desarrollo de programas visto en el curso) y
corrección del resultado (cumplimiento de objetivos del programa)
3 de 6
7574 - Sistemas Distribuidos I
PLANIFICACIONES
Actualización: 2ºC/2016
CALENDARIO DE CLASES
Semana
Temas de
teoría
Resolución
de problemas
Laboratorio
Otro tipo
Fecha entrega
Informe TP
Bibliografía
básica
<1>
15/08 al 20/08
Organización
del curso y
campo de
aplicación
<2>
22/08 al 27/08
Introducción a
los sistemas
Distribuidos
<3>
29/08 al 03/09
Modelo OSI
Repaso de
concurrencia
y
configuración
de las redes
en la sala.
Apuntes. Libros de la
materia 75.59
<4>
05/09 al 10/09
Protocolos de
redes, capas
de aplicación y
presentación
Pasaje de
mensajes
Colas de
mensajes.
Diseño de
protocolos
para el caso
de estudio en
una sola
computadora
Libros 1 y/o 2. Apuntes
<5>
12/09 al 17/09
Pasaje de
mensajes y
diagramas de
evento-tiempo
<6>
19/09 al 24/09
Repaso de
Transporte y
concepto
clienteservidor
Sockets.
Prueba de
pasaje de
mensajes
entre
computadoras
puntes y ejemplos
Apuntes y ejemplos. Libro
4
<7>
26/09 al 01/10
RPC.
Programación
de Sockets
aplicado al
caso de
estudio
Libro 2. Apuntes y
ejemplos
<8>
03/10 al 08/10
Conceptos
de
middleware
Programación
de Sockets
aplicado al
caso de
estudio
Libros 1 y/o 2
<9>
10/10 al 15/10
Paradigmas
de sistemas
distribuidos
Programación
de RPC
aplicado al
caso de
estudio
Entrega del
trabajo
práctico
<10>
17/10 al 22/10
Paradigmas y
frameworks
Servicios de
directorio y
aplicación de
modelos al
caso
Libros 1 y/o 2
<11>
24/10 al 29/10
Clases de
actividades y
Parcial
Libros 1 y/o 2
Libros 1 y 2
Elección de un
caso de
estudio para
resolver en
clase.
Concepto de
protocolos y
servicios de
OSI
Libros 1 y 2
Libros de la materia 75.43.
4 de 6
Parte 1 Semana 13
Libros 1 y/o 2
7574 - Sistemas Distribuidos I
Semana
Temas de
teoría
PLANIFICACIONES
Resolución
de problemas
Laboratorio
Otro tipo
Fecha entrega
Informe TP
Actualización: 2ºC/2016
Bibliografía
básica
modelos de
sistemas
distribuido
<12>
31/10 al 05/11
Algoritmos de
consenso:
Anillos
sincrónicos
con elección
de líder.
Sincronismo
para vistas
de grupos
aplicado al
caso de
estudio
<13>
07/11 al 12/11
Algoritmos
para fallas de
enlace y de
procesadores
1º
Recuperatorio
del parcial
Revisión del
artículo del
trabajo
práctico
<14>
14/11 al 19/11
Algoritmos
para fallas
bizantinas.
Corrección de
ejercicios de
clase e
implementació
n de los
algoritmos
Libros 3 y 5. Apuntes
<15>
21/11 al 26/11
Tolerancia a
fallos.
Conceptos
básicos y y
Cobertura
Corrección de
ejercicios de
clase e
implementació
n de los
algoritmos
Libros 3 y 5. Apuntes
<16>
28/11 al 03/12
Tolerancia a
fallos. Redes
y
arquitecturas
Corrección del
trabajo
práctico
Libros 1 y/o 2
5 de 6
Libro 3
A convenir con cada grupo
Libros 3 y 5. Apuntes
7574 - Sistemas Distribuidos I
PLANIFICACIONES
Actualización: 2ºC/2016
CALENDARIO DE EVALUACIONES
Evaluación Parcial
Oportunidad
Semana
Fecha
Hora
1º
11
27/10
18:00
2º
14
17/11
18:00
3º
16
01/12
18:00
4º
Observaciones sobre el Temario de la Evaluación Parcial
Ver página de la materia http://www.fi.uba.ar/materias/7574
6 de 6
Aula
Descargar