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.
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.
Competencias propias de la asignatura | |
---|---|
Código | Descripción |
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. |
CO8 | 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. |
INS4 | Capacidad de resolución de problemas aplicando técnicas de ingeniería. |
INS5 | Capacidad para argumentar y justificar lógicamente las decisiones tomadas y las opiniones. |
PER1 | Capacidad de trabajo en equipo. |
PER5 | Reconocimiento a la diversidad, la igualdad y la multiculturalidad. |
Resultados de aprendizaje propios de la asignatura | |
---|---|
Descripción | |
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. | |
Programar en entornos de red aplicaciones que sigan el modelo cliente/servidor. | |
Resultados adicionales | |
No se han establecido. |
Esta programación puede ser modificada ligeramente a lo largo del desarrollo del curso, en función del desarrollo de sus contenidos.
Actividad formativa | Metodología | Competencias relacionadas (para títulos anteriores a RD 822/2021) | ECTS | Horas | Ev | Ob | Rec | Descripción * |
Enseñanza presencial (Teoría) [PRESENCIAL] | Método expositivo/Lección magistral | CO11 | 1 | 25 | S | S | N | Clases de teoría en aula. |
Otra actividad presencial [PRESENCIAL] | Estudio de casos | INS4 | 0.4 | 10 | S | S | N | Resolución de ejercicios y problemas relacionados con la teoría impartida. Se realizan en el aula. |
Prácticas en aulas de ordenadores [PRESENCIAL] | Prácticas | INS4 | 0.2 | 5 | S | S | S | Colección de prácticas individualizadas en el laboratorio, destinadas a adquirir los conocimientos necesarios para el desarrollo de aplicaciones distribuidas |
Prácticas de laboratorio [PRESENCIAL] | Trabajo en grupo | PER1 | 0.4 | 10 | S | S | S | Realización de prácticas en grupos de 2-3 alumnos, donde se desarrollan aplicaciones distribuidas, y cada uno desarrolla una componente de las mismas. |
Prácticas en aulas de ordenadores [PRESENCIAL] | Prácticas | CO10 | 0.2 | 5 | S | S | S | Realización de aplicaciones prácticas para el empleo de servicios de sistemas operativos. |
Elaboración de memorias de Prácticas [AUTÓNOMA] | Trabajo dirigido o tutorizado | INS5 | 0.8 | 20 | S | S | S | Elaboración de una memoria tras la realización de cada práctica. La memoria se entregará en las fechas indicadas por el profesor. En el caso de las prácticas colaborativas, la memoria será conjunta, y debe indicar claramente la aportación de cada miembro. |
Pruebas de progreso [PRESENCIAL] | Pruebas de evaluación | CO11 | 0.1 | 2.5 | S | S | S | Pruebas de conocimientos. |
Otra actividad no presencial [AUTÓNOMA] | Aprendizaje basado en problemas (ABP) | CO8 | 0.8 | 20 | S | S | S | Terminación de las prácticas de forma autónoma o colaborativa, según el tipo de práctica. |
Otra actividad no presencial [AUTÓNOMA] | Autoaprendizaje | CO14 | 0.6 | 15 | S | S | N | Ejercicios de teoría para desarrollar de forma autónoma. |
Estudio o preparación de pruebas [AUTÓNOMA] | Combinación de métodos | CO11 | 1.42 | 35.5 | S | S | N | Estudio autónomo para la preparación de las pruebas. |
Otra actividad no presencial [AUTÓNOMA] | Autoaprendizaje | PER5 | 0.08 | 2 | N | 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.3 | Horas totales de trabajo presencial: 57.5 | |||||||
Créditos totales de trabajo autónomo: 3.7 | Horas totales de trabajo autónomo: 92.5 |
Ev: Actividad formativa evaluable Ob: Actividad formativa de superación obligatoria Rec: Actividad formativa recuperable
Valoraciones | |||
Sistema de evaluación | Estudiante presencial | Estud. semipres. | Descripción |
Prueba final | 55.00% | 0.00% | Prueba global de conocimientos teóricos de la asignatura. Es una actividad obligatoria, que debe superarse para poder aprobar la asignatura. Esta prueba, junto a otras actividades evaluables que pudieran complementarla podrían ser realizadas, excepcionalmente, en horario de tarde. |
Elaboración de memorias de prácticas | 20.00% | 0.00% | Memorias de prácticas que deben entregarse en los plazos establecidos, adecuadamente documentadas. Es una actividad obligatoria, que debe superarse para poder aprobar la asignatura. Se guardan las notas de las entregas de prácticas que hayan sido aprobadas para la convocatoria extraordinaria o de finalización de estudios, el resto tendrán que ser aprobadas en dichas convocatorias. |
Valoración de la participación con aprovechamiento en clase | 15.00% | 0.00% | Valoración del profesor del trabajo individualizado y en equipo del estudiante en el laboratorio. Para poder realizar dicha supervisión el estudiante tiene obligación de asistir con regularidad a las sesiones de laboratorio. En caso de no asistencia reiterada su valoración no será posible y supondrá un suspenso en este apartado, dado que se trata de enseñanzas presenciales. Es una actividad recuperable en convocatoria extraordinaria o de finalización de estudios por medio de una prueba práctica en el laboratorio. Los grupos de prácticas se planificarán preferiblemente en horario de mañana, pero por necesidades de horario es posible que se abran grupos de prácticas en horario de tarde. |
Prueba | 10.00% | 0.00% | Presentación del trabajo realizado en prácticas al profesor, tanto el trabajo individualizado como en equipo. Esta prueba podría realizarse, excepcionalmente, en horario de tarde. |
Total: | 100.00% | 0.00% |
No asignables a temas | |
---|---|
Horas | Suma horas |
Tema 1 (de 6): Introducción | |
---|---|
Actividades formativas | Horas |
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] | 4 |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 1 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 2 |
Periodo temporal: Primera semana |
Tema 2 (de 6): Comunicación entre procesos distribuidos | |
---|---|
Actividades formativas | Horas |
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] | 6 |
Otra actividad presencial [PRESENCIAL][Estudio de casos] | 2 |
Otra actividad no presencial [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] | 2 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 2 |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 4 |
Periodo temporal: Hasta la segunda semana |
Tema 3 (de 6): Objetos distribuidos e invocación remota | |
---|---|
Actividades formativas | Horas |
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] | 2 |
Otra actividad presencial [PRESENCIAL][Estudio de casos] | 2 |
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] | 2 |
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] | 2 |
Elaboración de memorias de Prácticas [AUTÓNOMA][Trabajo dirigido o tutorizado] | 2 |
Otra actividad no presencial [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] | 3 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 3 |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 6.5 |
Periodo temporal: Hasta cuarta semana |
Tema 4 (de 6): Tecnologías Distribuidas Modernas | |
---|---|
Actividades formativas | Horas |
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] | 4 |
Otra actividad presencial [PRESENCIAL][Estudio de casos] | 2 |
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] | 3 |
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] | 3 |
Elaboración de memorias de Prácticas [AUTÓNOMA][Trabajo dirigido o tutorizado] | 5 |
Otra actividad no presencial [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] | 6 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 5 |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 9 |
Periodo temporal: Hasta semana séptima |
Tema 5 (de 6): Sincronización en Sistemas Distribuidos | |
---|---|
Actividades formativas | Horas |
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] | 4 |
Otra actividad presencial [PRESENCIAL][Estudio de casos] | 2 |
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] | 6 |
Elaboración de memorias de Prácticas [AUTÓNOMA][Trabajo dirigido o tutorizado] | 6 |
Otra actividad no presencial [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] | 4 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 3 |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 6 |
Periodo temporal: Hasta semana décima |
Tema 6 (de 6): Transacciones y control de concurrencia | |
---|---|
Actividades formativas | Horas |
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] | 5 |
Otra actividad presencial [PRESENCIAL][Estudio de casos] | 2 |
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] | 4 |
Elaboración de memorias de Prácticas [AUTÓNOMA][Trabajo dirigido o tutorizado] | 7 |
Pruebas de progreso [PRESENCIAL][Pruebas de evaluación] | 2.5 |
Otra actividad no presencial [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] | 5 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 2 |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 9 |
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.5 horas por semana. |
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 |