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 |
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. |
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 | 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 | Colección de prácticas en el laboratorio, destinadas a adquirir los conocimientos necesarios para el desarrollo de aplicaciones distribuidas | |
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)
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% |
No asignables a temas | |
---|---|
Horas | Suma horas |
Estudio o preparación de pruebas [AUTÓNOMA][Combinación de métodos] | 62.5 |
Otra actividad no presencial [AUTÓNOMA][Autoaprendizaje] | 20 |
Tema 1 (de 6): Introducción | |
---|---|
Actividades formativas | Horas |
Prueba final [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 |
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] | 6 |
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 |
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] | 2 |
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] | 2 |
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 |
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] | 4 |
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] | 3 |
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 |
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] | 4 |
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 |
Prueba final [PRESENCIAL][Método expositivo/Lección magistral] | 5 |
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 hora y 20 minutos 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 |