Profesores Titulares
Conocimientos de programación orientada a objetos.
Conocimientos del funcionamiento interno de un sistema operativo.
Conocimientos de exclusión mutua.
La asignatura tiene los siguientes objetivos:
1. Identificar las características principales de un sistema distribuido.
2. Entender un artículo de carácter científico sobre sistemas distribuidos.
3. Asimilar las principales técnicas utilizadas en sistemas distribuidos.
4. Diseñar sistemas distribuidos escalables.
Los resultados de Aprendizaje de esta asignatura son:
- RA.01 Conceptos avanzados de bases de datos, seguridad, concurrencia y transacciones.
- RA.02 Se puede construir aplicaciones informáticas basadas en arquitecturas cliente/servidor y web.
1. Introducción y fundamentos de sistemas distribuidos.
2. Arquitecturas shared-nothing vs shared memory.
3. El problema de la exclusión mutua en arquitecturas distribuidas.
4. Modelos y clocks
5. Estrategias y primitivas de comunicación
6. Técnicas para la replicación de datos
7. Modelos de fallo
8. Tolerancia a fallos y políticas de recuperación
9. Hashing Consistente
10. Modern challenges - Lectura de paper
Esta es una asignatura eminentemente práctica que combina contenidos y explicaciones de carácter teórico con ejercicios o microprácticas destinadas a consolidar los conocimientos adquiridos por el alumnado, por lo tanto, la asignatura se imparte íntegramente en el laboratorio.
- Ejercicios.
Todos los ejercicios propuestos, sin excepción, deberán entregar y aprobar para poder superar la asignatura. Si estos ejercicios se entregan antes de la fecha del examen de la convocatoria ordinaria y se superan las entrevistas correspondientes, la nota final de la asignatura será la media aritmética de la nota obtenida en los ejercicios.
1. Vijay K. Garg. 2007. Concurrent and Distributed Computing in Java. IEEE Press, Piscataway, NJ, USA.
2. Patrick Hunt, Mahadev Konar, Flavio Paiva Junqueira, Benjamin Reed: ZooKeeper: Wait-free Coordination for Internet-scale Systems. USENIX Annual Technical Conference 2010
3. Fernando Pedone, Matthias Wiesmann, André Schiper, Bettina Kemme, Gustavo Alonso: Understanding Replication in Databases and Distributed Systems. ICDCS 2000: 464-474
4. Leslie Lamport: The Part-Time Parliament. ACM Trans. Comput. Syst. 16(2): 133-169 (1998)
5. James C. Corbett et al.: Spanner: Google's Globally Distributed Database. ACM Trans. Comput. Syst. 31(3): 8 (2013)
6. Giuseppe DeCandia et al.: Dynamo: Amazon's highly available key-value store. SOSP 2007: 205-220
7. Tom White: Hadoop - The Definitive Guide: Storage and Analysis at Internet Scale (4. ed., revised &updated). O'Reilly 2015, ISBN 978-1-491-90163-2, pp. I-XXV, 1-727