Universidad Pública de Navarra



Año Académico: 2020/2021 | Otros años:  2019/2020  |  2018/2019  |  2017/2018  |  2016/2017 
NULL_VALUE
Código: 72976 Asignatura: Sistemas distribuidos, empotrados y ubicuos
Créditos: 6 Tipo: Curso: NULL_VALUE Periodo: 1º S
Departamento: Estadística, Informática y Matemáticas
Profesorado:
GONZALEZ DE MENDIVIL MORENO, JOSE RAMON (Resp)   [Tutorías ] EZCURDIA AGUIRRE, IÑIGO FERMIN   [Tutorías ]

Partes de este texto:

 

Módulo/Materia

NIVEL 1: Módulo de Tecnologías Informáticas

NIVEL 2: Redes y Sistemas operativos.

Subir

Descripción/Contenidos

Los contenidos de esta asignatura se centran en todos aquellos aspectos que están involucrados en el diseño y la construcción de sistemas distribuidos y de tiempo real desde el punto de vista de una perspectiva actual. Así mismo, se estudian los sistemas ubicuos como caso particular de sistema distribuido con sus propias peculiaridades y aplicaciones. Lo que denominamos hoy en día como computación en la nube, el internet de las cosas, redes de sensores, big-data, y tratamiento de flujos en tiempo real, entre otros términos, no son más que paradigmas de desarrollo de aplicaciones y servicios que tienen su soporte sobre los métodos y los modelos en los que se basan los tipos de sistemas que se tratan en esta asignatura.  Los contenidos más concretos de esta asignatura son:

- Sistemas concurrentes, distribuidos y de tiempo real. Modelos, problemas y algoritmos fundamentales. Tolerancia a fallos y programación fiable.

- Diseño de sistemas operativos. Abstracciones, núcleos, extensiones distribuidas, mejoras de rendimiento. Virtualización y máquinas virtuales.

- Estructura de las aplicaciones distribuidas. Middleware, estructuras basadas en componentes y servicios.

- Evaluación de sistemas operativos, servidores y aplicaciones. Modelos de servicio, planificación de la capacidad y caracterización de cargas, modelos de rendimiento.

- Sistemas empotrados. Elementos de diseño, restricciones en tiempo real.

- Sistemas ubicuos. Ingeniería ambiental y redes de sensores. Diseño de redes de sensores. Agregación de datos.

- Análisis y construcción de un sistema de información. Bases de datos distribuidas y replicadas. Sistemas en la nube.

- Servicios de nueva generación. Requisitos de las aplicaciones, arquitectura de los servicios, requisitos de la red, análisis de rendimiento de la red y las aplicaciones de red.

Subir

Competencias genéricas

Competencias Básicas
CB7 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
CB9 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades
CB10 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.


Competencias Generales
CG1 - Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la Ingeniería Informática.
CG4 - Capacidad para el modelado matemático, cálculo y simulación en centros tecnológicos y de ingeniería de empresa,
particularmente en tareas de investigación, desarrollo e innovación en todos los ámbitos relacionados con la Ingeniería en Informática.
CG8 - Capacidad para la aplicación de los conocimientos adquiridos y de resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y multidisciplinares, siendo capaces de integrar estos conocimientos.

Subir

Competencias específicas

CMTI1 - Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
CMTI2 - Capacidad de comprender y saber aplicar el funcionamiento y organización de Internet, las tecnologías y protocolos de redes de nueva generación, los modelos de componentes, software intermediario y servicios.
CMTI6 - Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.
CMTI8 - Capacidad de diseñar y desarrollar sistemas, aplicaciones y servicios informáticos en sistemas empotrados y ubicuos. 

Subir

Resultados aprendizaje

R1. Diseñar sistemas operativos, sistemas basados en computación distribuida, sistemas empotrados y sistemas ubicuos.

R2. Evaluar el rendimiento de sistemas operativos y sistemas basados en computación distribuida.

R3. Desarrollar sistemas, aplicaciones y servicios en sistemas distribuidos, empotrados y sistemas ubicuos.

R4. Conocer la organización del software intermediario y los modelos de componentes.

Subir

Metodología

Actividad formativa Horas Presencialidad (%)
A1 Clases expositivas 28 100
A2 Prácticas 14 100
A3 Aprendizaje cooperativo 14 100
A4 Proyectos en grupo 45 0
A5 Estudio autónomo 45 0
A6 Tutorías y evaluación 4 100
Total 150  

Subir

Idiomas

Castellano

Subir

Evaluación

Resultado de aprendizaje Actividad de evaluación Peso (%) Carácter recuperable
R1, R2, R4 Pruebas de respuesta larga. 35% Si
R3, R4 Presentaciones orales 5% No
R1, R2 Trabajos e informes 20% Si
R1, R2, R3 Pruebas e informes de trabajo experimental 40% No

 

Todas las actividades de evaluación tendrán una nota entre 0 y 10 puntos. En todas las actividades de evaluación se indicará el tipo de prueba y el peso que tiene en la nota final de la asignatura según la tabla indicada anteriormente. Los criterios de corrección de cada tipo de actividad de evaluación serán indicados a los estudiantes antes de la realización de la prueba.

Se realizará un examen final que otorgará un 35% de la nota final. Este examen incluirá preguntas de respuesta larga y problemas. Es imprescindible aprobar este examen para promediar con el resto de las notas obtenidas en otras actividades de evaluación. En caso de aprobar el examen, la nota final es la nota promediada de todas las actividades de evaluación. Para aprobar la asignatura la nota final deberá ser mayor o igual a 5 puntos. En caso de suspender el examen, la nota final es la nota de dicho examen.

Se pueden recuperar las actividades indicadas en la tabla anterior. El procedimiento de evaluación en la recuperación es el mismo indicado anteriormente.

Subir

Temario

  • Tema 1. Concurrencia y consistencia de operaciones.
  • Tema 2. Modelos y Diseño de sistemas distribuidos tolerantes a fallos.
  • Tema 3. Sistemas de comunicación a grupo tolerantes a fallos.
  • Tema 4. Problemas y soluciones del acuerdo distribuido en entornos de fallos.
  • Tema 5. Análisis y evaluación de las prestaciones de los sistemas.
  • Tema 6. Escalabilidad y elasticidad de sistemas y servicios.
  • Tema 7. Diseño y análisis de Sistemas empotrados.

Prácticas y trabajos

  • Práctica 1. Nodejs. Verificador de consistencia de datos
  • Práctica 2. Nodejs y ZMQ. Patrones de comunicación.
  • Proyecto cooperativo. Diseño, desarrollo y evaluación de un sistema distribuido.
    • Se trata de diseñar, crear, implementar y probar el funcionamiento de un sistema replicado de objetos tolearantes a fallos con un modelo de consistencia de datos fuerte (modelo atómico). A partir de un diseño se propone una codificación en Nodejs completamente distribuida. Se deben realizar todas las fases del proyecto, su control y gestión, así como todas las pruebas funcionales y de prestaciones necesarias para la validación del producto desarrollado. 
  • Proyecto cooperativo. Prestaciones y control de Elasticidad en sistemas orientados a componentes.
    • Se trata de crear una simulación de un sistema de servidores de manera que a partir de las técnicas de control de la elasticidad se busque en cada momento el punto óptimo para las prestaciones de calidad de servicio en función de los recursos asignados a los servicios. En principio, la técnica de elasticidad a aplicar se basa en la elasticidad horizontal propia de los sistemas actuales en la Nube.
  • Proyecto en grupo. Diseño, desarrollo y evaluación de una aplicación en un entorno ubicuo o empotrado.
    • Los estudiantes, en grupos, lideran un proyecto basado en sistemas empotrados y ubicuos que proponen, diseñan y codifican utilizando los medios disponibles actualmente en el laboratorio de IoT, empleando los dispositivos Raspberry Pi y NodeRed para su desarrollo. Se deben realizar todas las fases del proyecto. 

Otras actuaciones fuera de horario.

Asistencia a seminarios y conferencias propuestas por el Grupo de Investigación de Sistemas Distribuidos.

Subir

Bibliografía

Acceda a la bibliografía que el profesorado de la asignatura ha solicitado a la Biblioteca.


V. K. Garg. Concurrent and distributed processing in Java.  Jon Wiley and Sons, 2004.

M. Raynal. Concurrent programming:  Algorithms, Principles and Foundations. Springer-Verlag, 2013.

D. A. Menasce, V. A.F. Almeida. Capacity planning for web performance. Metrics, models and methods. Prentice Hall, 1998.

M. Raynal. Distributed algorithms for message-passing systems. Springer-Verlag, 2013.

M. Raynal. Communication and agreement abstractions for fault-tolerant asynchronous distributed systems. Morgan and Calypool publishers, 2010.

E. Ashford, S. Arunkumar. Introduction to embedded systems.  LeeSeshia.org, 2011.

P. Krumm. Ubiquitous Computing Fundamentals. Chapman and Hall/CRC, 2009.

A. Tanenbaum. Sistemas Operativos modernos. Prentice-Hall, 1992.

M. Cantelon et al. Node.js in action. Manning Publications, 2014.

Artículos que se pondrán a disposición de los estudiantes a lo largo del curso para la preparación de trabajos.

Subir

Lugar de impartición

Aulas de docencia y laboratorio de informática que la universidad establezca a tal efecto. Campus de Arrosadía, Pamplona

Subir