Profesores Titulares
Se recomienda que el alumno tenga conocimientos previos de programación en Java i se desarrolle correctamente en el lenguaje de modelado UML.
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.
RA.01 - Conceptos avanzados de bases de datos, seguridad, concurrencia y transacciones. (GI)
RA.02 - Se puede construir aplicaciones informáticas basadas en arquitecturas cliente/servidor y web. (GI)
1. 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. Tolerancia a fallos y recuperación.
8. Modelos de referencia.
9. Alternativas actuales.
Esta es una asignatura eminentemente práctica que combina contenidos y explicaciones de carácter teórico con ejercicios o micro-prácticas destinadas a consolidar los conocimientos adquiridos por el alumnado, por lo tanto, la asignatura se imparte íntegramente en el laboratorio.
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 de la nota obtenida en los ejercicios. De lo contrario, habrá que resolver un examen final. Entonces, cuando todos los ejercicios estén aprobados y el examen tenga una nota igual o superior a 4 (cuatro), la nota final se calculará como:
Nota asignatura = 60% Examen + 40% Media ejercicios
Las notas de todas las entregas y exámenes se guardan hasta la convocatoria extraordinaria de febrero.
Las copias totales o parciales en cualquier actividad evaluable, se penalizarán con el que esta establecido en la normativa académica, tanto en la fuente como la copia sin excepción.
Vijay K. Garg. 2007. Concurrent and Distributed Computing in Java. IEEE Press, Piscataway, NJ, USA.
Patrick Hunt, Mahadev Konar, Flavio Paiva Junqueira, Benjamin Reed: ZooKeeper: Wait-free Coordination for Internet-scale Systems. USENIX Annual Technical Conference 2010
Fernando Pedone, Matthias Wiesmann, André Schiper, Bettina Kemme, Gustavo Alonso: Understanding Replication in Databases and Distributed Systems. ICDCS 2000: 464-474
Leslie Lamport: The Part-Time Parliament. ACM Trans. Comput. Syst. 16(2): 133-169 (1998)
James C. Corbett et al.: Spanner: Googles Globally Distributed Database. ACM Trans. Comput. Syst. 31(3): 8 (2013)
Giuseppe DeCandia et al.: Dynamo: Amazons highly available key-value store. SOSP 2007: 205-220
Tom White: Hadoop - The Definitive Guide: Storage and Analysis at Internet Scale (4. ed., revised & updated). OReilly 2015, ISBN 978-1-491-90163-2, pp. I-XXV, 1-727or other bibliographic format>