Universidad Pública de Navarra



Año Académico: 2017/2018 | Otros años:  2016/2017  |  2015/2016  |  2014/2015 
Máster Universitario en Ingeniería Informática por la Universidad Pública de Navarra
Código: 72976 Asignatura: Sistemas distribuidos, empotrados y ubicuos
Créditos: 6 Tipo: Obligatoria Curso: 1 Periodo: 1º S
Departamento:
Profesorado:
GONZALEZ DE MENDIVIL MORENO, JOSE RAMON (Resp)   [Tutorías ]

Partes de este texto:

 

Módulo/Materia

Módulo de Tecnologías Informáticas.

Materia M23, Redes y Sistemas operativos.

Subir

Descriptores

Sistemas distribuidos. Rendimiento de sistemas. Alta disponibilidad y tolerancia a fallos. Replicación, escalabilidad y elasticidad. Computación en la nube. Sistemas empotrados. Sistemas en tiempo real. Sistemas ubicuos. Redes de sensores. Inteligencia ambiental.

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.

 

Resultado de aprendizaje Contenido Actividad Instrumento de evaluación
R1, R4 Temas 1 a 7 A1, A5, A6 Examen final de respuesta larga. Exámenes de tipo test. Trabajos e informes sobre los temas de la asignatura.
R2 Tema 3 A1, A5, A6 Pruebas de duración corta en evaluación continua.
R1, R2, R3 Actividades de laboratorio y elaboración de proyecto cooperativo. A2, A3, A4. A6 Participación activa en clases de prácticas y control de asistencia. Entregables de prácticas propuestas e informes. Entregables del proyecto e informe. Presentación oral de proyecto.

 

 

Subir

Metodología

En esta asignatura se emplea el método expositivo, la resolución de ejercicios y problemas y el aprendizaje basado en problemas en el trabajo en el aula. El aprendizaje basado en grupos pequeños y el aprendizaje orientado a proyectos se emplea en el trabajo que se realiza en el laboratorio práctico. En ambos casos, el estudiante cuenta con la orientación del profesor en todo momento. La evaluación de los resultados de aprendizaje se llevará a cabo de forma continua a lo largo del semestre.

 

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 x

 

 

Subir

Relación actividades formativas-competencias/resultados de aprendizaje

Competencia Actividad formativa
CB7 A3, A4, A6
CB9 A3, A4, A6
CB10 A3, A4, A5, A6
CG1 A1, A2, A3, A4, A5, A6
CG4 A1, A2, A3, A4, A5, A6
CG8 A1, A2, A3, A4, A5, A6
CMTI1 A1, A2, A3, A4, A5
CMTI2 A1, A2, A3, A4, A5
CMTI6 A1, A2, A3, A4, A5
CMTI8 A1, A2, A3, A4, A5

Subir

Idiomas

Castellano

Subir

Evaluación

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

 

Todos los ejercicios 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. Para aprobar la asignatura la nota global deberá ser mayor o igual a 5 puntos.

Subir

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

Temario

Tema 1. Programación concurrente y distribuida. Ventajas y dificultades. Soluciones típicas. Mecanismos tradicionales, Monitores. Soluciones modulares. Condiciones de consistencia. Sincronización wait-free. Modelos de razonamiento formal: atomicidad. Programación no-bloqueante. Promesas. Modelos de sistemas distribuidos. Paradigmas de comunicación. Algoritmos distribuidos fundamentales. Resultados de imposibilidad. Detectores de fallos no fiables. Consenso y orden total. Diseño e implementación de sistemas distribuidos. Middleware y componentes distribuidos. Despliegue de aplicaciones distribuidas.

Laboratorio 1. NodeJS y ZMQ. Patrones de comunicación.

 

Tema 2. Características de QoS en los sistemas modernos de información tecnológica. Parámetros de QoS. Ciclo de vida de los servicios. Sistemas Cloud, IaaS, PaaS y SaaS. Despliegue y operación del servicio. Reconfiguración y elasticidad. ¿The Reactive Manifesto¿. ¿The twelve factors¿.

Laboratorio 2. Experimentación con IaaS y PaaS.

 

Tema 3. Análisis de prestaciones de los sistemas. Leyes: Ley de utilización, ley de la demanda del servicio, ley del flujo forzado, ley de Little, Ley del tiempo de respuesta. Límites optimistas del desempeño, y sistemas balanceados. Análisis MVA.

Trabajo 1: Estudio de casos. Un servicio de Base de Datos. Un servicio Web. Un centro de datos. Un servicio E-bussines.

 

Tema 4. Escalabilidad: conceptos, objetivos y técnicas. Definición de escalabilidad. Dimensiones de escalabilidad. Escalabilidad de tamaño: técnicas de reparto de tareas, datos, Replicación y Caching. Escalabilidad de distancia. Escalabilidad administrativa.

Proyecto en Grupo 1. Diseño, desarrollo y análisis de prestaciones de un sistema de Replicación de objetos basado en Raft.

 

Tema 5. Gestión escalable. Algoritmos descentralizados. Paradigmas de comunicación. Comunicación ¿publish-subscribe¿. Distribución de datos. Gestión de la consistencia de los datos y Teorema CAP.

Trabajo 2: Estudio de casos. Servicio DNS. Google File System GFS. Técnicas de Map-Reduce. Dynamo Amazon.

Laboratorio 3. Consistencia de datos en sistemas distribuidos.

Laboratorio 4a. Provisión de recursos y elasticidad.

Laboratorio 4b. Algoritmos para particionado de datos.

Aprendizaje cooperativo. Sistemas de almacenamiento NoSQL, Monitorización y Rendimiento.

 

Tema 6. Sistemas empotrados. Nociones sobre sistemas físicos continuos y discretos. Sistemas de control. Diseño de sistemas empotrados. Tipos de procesadores. DSPs. Paralelismo y concurrencia. Arquitectura de memoria. Entradas/salidas. Convertidores A/D. Multitarea y planificación con garantías de tiempo real. Análisis de sistemas empotrados. Parámetros y análisis cuantitativo.

 

Tema 7. Sistemas ubicuos. Computación ubicua. Inteligencia ambiental. Internet of things. Redes de sensores. Algoritmos de agregación.

Proyecto Grupo 2. Desarrollo de un proyecto libre en grupo para tratar los aspectos de sistemas empotrados y ubicuos.

 

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