Guías Docentes Electrónicas
1. DATOS GENERALES
Asignatura:
SISTEMAS DISTRIBUIDOS
Código:
42322
Tipología:
OBLIGATORIA
Créditos ECTS:
6
Grado:
406 - GRADO EN INGENIERÍA INFORMÁTICA (AB)_20
Curso académico:
2022-23
Centro:
604 - E.S. DE INGENIERIA INFORMATICA ALBACETE
Grupo(s):
10  11  12 
Curso:
3
Duración:
Primer cuatrimestre
Lengua principal de impartición:
Español
Segunda lengua:
Uso docente de otras lenguas:
English Friendly:
N
Página web:
https://campusvirtual.uclm.es/course/view.php?id=11195
Bilingüe:
N
Profesor: MARIA EMILIA CAMBRONERO PIQUERAS - Grupo(s): 10  11  12 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
ESII / 0.A.13
SISTEMAS INFORMÁTICOS
2036
memilia.cambronero@uclm.es
Lunes de 10 a 12:30 Martes de 10 a 12:30 Miércoles de 13:00 a 14:00

Profesor: VICENTE SAHORI ALFARO - Grupo(s): 10  11  12 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
SISTEMAS INFORMÁTICOS
Vicente.Sahori@uclm.es

Profesor: VALENTIN VALERO RUIZ - Grupo(s): 10  11  12 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
ESII / 1.A.14
SISTEMAS INFORMÁTICOS
2499
valentin.valero@uclm.es
Lunes y Martes de 10 a 13 horas

2. REQUISITOS PREVIOS

Se recomienda encarecidamente haber superado las asignaturas de:

       * Redes de Computadores I y II
       * Fundamentos de programación I y II (lenguajes de programación java y C)
       * Sistemas Operativos I
       * Programación concurrente y tiempo real

  Utilizaremos estos lenguajes y herramientas asumiendo su conocimiento por parte del estudiante.

3. JUSTIFICACIÓN EN EL PLAN DE ESTUDIOS, RELACIÓN CON OTRAS ASIGNATURAS Y CON LA PROFESIÓN

Esta asignatura forma parte de la materia de sistemas operativos, sistemas distribuidos y redes, que permiten formar a los alumnos en los conceptos relacionados con el desarrollo de sistemas en los cuales la red es una infraestructura crítica. Es por ello que esta asignatura está estrechamente relacionada con la programación concurrente y las tecnologías de las comunicaciones (redes). Elegimos Java como lenguaje de programación para este tipo de aplicaciones por su evidente uso extendido a nivel académico y empresarial, así como por la cantidad de herramientas disponibles para la realización de aplicaciones distribuidas en dicho lenguaje. Así, el alumno aprenderá los fundamentos básicos de programación de cliente/servidor en Java bajo los protocolos UDP/TCP, y progresivamente, desde este nivel más primitivo le iremos facilitando herramientas de más alto nivel, que le permiten automatizar una gran cantidad de operaciones a nivel de sistema, lo que le permite centrarse en la lógica de negocio de las aplicaciones, más que en la complejidad inherente al desarrollo de este tipo de aplicaciones.  Así, mostraremos los paradigmas RCP/RMI y la tecnología de componentes, una panorámica del tipo de aplicaciones y sistemas distribuidos modernos (Clustering, Grid, Cloud, P2P, blockchain), sin olvidar los fundamentos teóricos que sustentan el desarrollo de este tipo de aplicaciones (técnicas de sincronización física y lógica, bloqueos mutuos distribuidos, elecciones, transacciones y control de concurrencia, etc).

La asignatura de sistemas distribuidos dota por tanto a los futuros graduados en Ingeniería Informática de las competencias necesarias para el análisis, diseño, construcción y mantenimiento de aplicaciones distribuidas.

En el desempeño de su profesión, en función de su especialización, el alumno dispondrá del bagaje mínimo necesario para abordar con éxito el desarrollo de aplicaciones distribuidas dentro de los marcos de programación actuales en TIC, basados en la interoperabilidad y estandarización.


4. COMPETENCIAS DE LA TITULACIÓN QUE LA ASIGNATURA CONTRIBUYE A ALCANZAR
Competencias propias de la asignatura
Código Descripción
CO08 Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
CO10 Conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos y diseñar e implementar aplicaciones basadas en sus servicios.
CO11 Conocimiento y aplicación de las características, funcionalidades y estructura de los Sistemas Distribuidos, las Redes de Computadores e Internet y diseñar e implementar aplicaciones basadas en ellas.
CO14 Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
INS04 Capacidad de resolución de problemas aplicando técnicas de ingeniería.
INS05 Capacidad para argumentar y justificar lógicamente las decisiones tomadas y las opiniones.
PER01 Capacidad de trabajo en equipo.
PER05 Reconocimiento a la diversidad, la igualdad y la multiculturalidad.
5. OBJETIVOS O RESULTADOS DE APRENDIZAJE ESPERADOS
Resultados de aprendizaje propios de la asignatura
Descripción
Programar en entornos de red aplicaciones que sigan el modelo cliente/servidor.
Aplicar las técnicas de comunicación de procesos y grupos de procesos distribuidos.
Entender y manejar los conceptos básicos de los sistemas distribuidos y de programar aplicaciones en estos entornos.
Resultados adicionales
No se han establecido.
6. TEMARIO
  • Tema 1: Introducción
    • Tema 1.1: Nociones básicas
    • Tema 1.2: Arquitectura de sistemas distribuidos
    • Tema 1.3: Middleware
  • Tema 2: Comunicación entre procesos distribuidos
    • Tema 2.1: Primitivas básicas de comunicación
    • Tema 2.2: Comunicación por UDP y TCP en Java
    • Tema 2.3: Marshalling
    • Tema 2.4: Comunicación de grupos
  • Tema 3: Objetos distribuidos e invocación remota
    • Tema 3.1: Invocación remota
    • Tema 3.2: Comunicación entre objetos distribuidos
    • Tema 3.3: Llamada de procedimiento remoto
  • Tema 4: Tecnologías Distribuidas Modernas
    • Tema 4.1: Clustering
    • Tema 4.2: Tecnologías Grid y Cloud (virtualización)
    • Tema 4.3: Servicios Web
    • Tema 4.4: Redes P2P
    • Tema 4.5: Tecnología blockchain
  • Tema 5: Sincronización en Sistemas Distribuidos
    • Tema 5.1: Relojes físicos y lógicos
    • Tema 5.2: Estados globales
    • Tema 5.3: Exclusión mutua distribuida
    • Tema 5.4: Elecciones
  • Tema 6: Transacciones y control de concurrencia
    • Tema 6.1: Transacciones
    • Tema 6.2: Control de concurrencia en transacciones
    • Tema 6.3: Control optimista de concurrencia
    • Tema 6.4: Ordenación por marcas de tiempo
    • Tema 6.5: Recuperación de transacciones
COMENTARIOS ADICIONALES SOBRE EL TEMARIO

Esta programación puede ser modificada ligeramente a lo largo del desarrollo del curso, en función del desarrollo de sus contenidos.


7. ACTIVIDADES O BLOQUES DE ACTIVIDAD Y METODOLOGÍA
Actividad formativa Metodología Competencias relacionadas (para títulos anteriores a RD 822/2021) ECTS Horas Ev Ob Descripción
Prueba final [PRESENCIAL] Método expositivo/Lección magistral CO08 0.16 4 S S Prueba final de conocimientos.
Prácticas en aulas de ordenadores [PRESENCIAL] Prácticas CO08 1 25 S S Realización de ejercicios y asistencia a las sesiones de prácticas en el laboratorio.
Enseñanza presencial (Teoría) [PRESENCIAL] Método expositivo/Lección magistral CO14 1.24 31 S S Clases de teoría en el aula
Estudio o preparación de pruebas [AUTÓNOMA] Combinación de métodos CO11 3.52 88 N N Estudio autónomo para la preparación de las pruebas.
Otra actividad no presencial [AUTÓNOMA] Autoaprendizaje CO08 0.08 2 N N El estudiante trabajará sobre el impacto de las TIC en las personas con discapacidad.
Total: 6 150
Créditos totales de trabajo presencial: 2.4 Horas totales de trabajo presencial: 60
Créditos totales de trabajo autónomo: 3.6 Horas totales de trabajo autónomo: 90

Ev: Actividad formativa evaluable
Ob: Actividad formativa de superación obligatoria (Será imprescindible su superación tanto en evaluación continua como no continua)

8. CRITERIOS DE EVALUACIÓN Y VALORACIONES
Sistema de evaluación Evaluacion continua Evaluación no continua * Descripción
Prueba final 70.00% 70.00% Prueba final de conocimientos teóricos de la asignatura
Prueba 30.00% 30.00% Prueba para valorar el trabajo realizado en prácticas.
Total: 100.00% 100.00%  
* En Evaluación no continua se deben definir los porcentajes de evaluación según lo dispuesto en el art. 4 del Reglamento de Evaluación del Estudiante de la UCLM, que establece que debe facilitarse a los estudiantes que no puedan asistir regularmente a las actividades formativas presenciales la superación de la asignatura, teniendo derecho (art. 12.2) a ser calificado globalmente, en 2 convocatorias anuales por asignatura, una ordinaria y otra extraordinaria (evaluándose el 100% de las competencias).

Criterios de evaluación de la convocatoria ordinaria:
  • Evaluación continua:
    Los estudiantes realizarán sus prácticas en el laboratorio presencialmente. Se establecen 5 prácticas a desarrollar evaluables, con las ponderaciones siguientes: 10%, 20%, 20%, 22% y 28%. Su evaluación se basará en entregas y evaluaciones presenciales de las mismas, en las fechas indicadas por los profesores. Se realizarán en grupos de 2 estudiantes (excepcionalmente 3). Si se detecta plagio o intervención externa en el desarrollo de una de las prácticas su calificación será 0, y en caso de reincidencia la calificación global de prácticas será 0.

    Para evaluar la parte teórica se realizará un examen parcial (opcional). Aquellos que superen dicho examen (nota mayor o igual a 5) sólo tendrán que presentarse en la prueba final de los temas no evaluados en la prueba parcial. Por el contrario, quienes no lo hubieran realizado o no lo hubieran superado se examinarán de la totalidad del programa de teoría.

    Cuando las notas globales de teoría y prácticas sean ambas iguales o superiores a 4 se realizará la ponderación siguiente para obtener la nota final de la asignatura: Teoría 70%, Practicas 30%. En caso contrario, la nota final en la convocatoria no será superior a 4.5, aún cuando la ponderación anterior pudiera arrojar un resultado superior o igual a 5.

    NOTA: Por defecto, el estudiante será evaluado por evaluación continua. Si desea cambiarse a evaluación no continua, debe indicarlo a través del siguiente enlace https://www.esiiab.uclm.es/alumnos/evaluacion.php antes de la finalización del periodo lectivo del cuatrimestre y siempre y cuando no se haya evaluado el 50% o más de la asignatura por evaluación continua.
  • Evaluación no continua:
    Los estudiantes realizarán sus prácticas en el laboratorio. Se realizará una prueba final para la valoración de las prácticas.
    Para el cómputo de la nota final de la asignatura será requisito haber obtenido una nota igual o superior a 4 en ambas pruebas (teoría y prácticas). En tal caso la nota final será la obtenida aplicando la ponderación siguiente: Teoría 70%, Practicas 30%.
    En caso contrario, la nota final en la convocatoria no será superior a 4.5, aún cuando la ponderación anterior pudiera arrojar un resultado superior o igual a 5.

Particularidades de la convocatoria extraordinaria:
Aquellos estudiantes que no hubieran aprobado la teoría en convocatoria ordinaria (nota menor que 5) tendrán que realizar una prueba de evaluación global de conocimientos teóricos (todo el programa). No se preserva el posible aprobado de la prueba parcial.

En el caso de que la nota global de prácticas en la convocatoria ordinaria fuera inferior a 5, los estudiantes tendrán que realizar una prueba global de valoración de prácticas.

Para el cómputo de la nota final de la asignatura será requisito haber obtenido una nota igual o superior a 4 en ambas pruebas (teoría y prácticas), apiicando la ponderación siguiente: Teoría: 70%, Prácticas (30%).
En caso contrario, la nota final en la convocatoria no será superior a 4.5, aún cuando la ponderación anterior pudiera arrojar un resultado superior o igual a 5.
Particularidades de la convocatoria especial de finalización:
Los estudiantes realizarán la prueba global de conocimientos teóricos y una prueba de evaluación global de prácticas. Para el cómputo de la nota final de la asignatura será requisito haber obtenido una nota igual o superior a 4 en ambas pruebas (teoría y prácticas), realizándose en tal caso la ponderación siguiente: Teoría: 70%, Prácticas (30%).
En caso contrario, la nota final en la convocatoria no será superior a 4.5, aún cuando la ponderación anterior pudiera arrojar un resultado superior o igual a 5.
9. SECUENCIA DE TRABAJO, CALENDARIO, HITOS IMPORTANTES E INVERSIÓN TEMPORAL
No asignables a temas
Horas Suma horas
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 30

Tema 1 (de 6): Introducción
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 6
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 6
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] 2
Periodo temporal: Primera semana

Tema 2 (de 6): Comunicación entre procesos distribuidos
Actividades formativas Horas
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 5
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 6
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 7
Periodo temporal: Hasta la segunda semana

Tema 3 (de 6): Objetos distribuidos e invocación remota
Actividades formativas Horas
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 5
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 5
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 8
Periodo temporal: Hasta cuarta semana

Tema 4 (de 6): Tecnologías Distribuidas Modernas
Actividades formativas Horas
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] 2
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 5
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 6
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 12
Periodo temporal: Hasta semana séptima

Tema 5 (de 6): Sincronización en Sistemas Distribuidos
Actividades formativas Horas
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 5
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 8
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 14
Periodo temporal: Hasta semana décima

Tema 6 (de 6): Transacciones y control de concurrencia
Actividades formativas Horas
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] 2
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 5
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] 11
Periodo temporal: Hasta fin cuatrimestre (semana 13ª )

Actividad global
Actividades formativas Suma horas
Comentarios generales sobre la planificación: Esta planificación es ORIENTATIVA, pudiendo variar a lo largo del periodo lectivo en función de las necesidades docentes, festividades, o por cualquier otra causa imprevista. La planificación semanal de la asignatura podrá encontrarse de forma detallada y actualizada en la plataforma Campus Virtual (Moodle). Las clases se estructuran en 3 sesiones de 1 hora y 30 minutos por semana.
10. BIBLIOGRAFÍA, RECURSOS
Autor/es Título Libro/Revista Población Editorial ISBN Año Descripción Enlace Web Catálogo biblioteca
Java introduction http://java.sun.com/new2java/  
Java API http://java.sun.com/javase/6/docs/api/index.html  
java remote invocation http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp  
A. Silberschatz, P. Galvin, G. Gagne Operating System Concepts, 9th edition John Wiley & Sons 2012  
Ajay D. Kshemkalyani Distributed Computing: Principles, Algorithms and Systems Cambridge University Press 2011  
Auna fundación, Ministerio de trabajo y asuntos sociales. LAS PERSONAS CON DISCAPACIDAD FRENTE A LAS TECNOLOGÍAS DE LA INFORMACIIÓN Y LAS COMUNICACIONES EN EPAÑA http://www.cermi.es/es-ES/Biblioteca/Lists/Publicaciones/Attachments/36/Estudio20DiscapacidadTICFundAuna.pdf  
BIBLIOGRAFÍA G. Coulouris, J. Dollimore, T. Kindberg Distributed Systems. Concepts and Design Addison-Wesley, 5ª ed. 2012  
D.L. Galli Distributed Operating Systems, Concepts and Practice Prentice-Hall 2000  
E. Pitt, K. McNiff Java.rmi: The Remote Method Invocation Guide Addison-Wesley 2001  
Ed. Roman, Rima P.Sriganesh, Gerald Brose Mastering Enterprise Java Beans, Third Edition. Wiley 2005  
G. Nutt Operating Systems: A Modern Perspective Addison-Wesley 2004  
J. Crichlow The Essence of Distributed Systems Prentice-Hall 2000  
Richard John Anthony Systems Programming. Designing and Developing Distributed Applications Morgan Kaufmann Publishers (Elsevier) 2016  
Tanembaum y Van Steen Distributed Systems: Principles and Paradigms 2/E Pearson 2007  



Web mantenido y actualizado por el Servicio de informática