Sistemas Distribuidos en Red

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Tecnologías de la información)
Requisitos
  • Precorrequisito: SO
  • Precorrequisito: XC
Departamento
AC
Este curso proporciona una visión general de los principios fundamentales de los sistemas distribuidos. Los contenidos incluyen la programación distribuida, la comunicación y la coordinación entre procesos distribuidos, las transacciones distribuidas, la replicación, los sistemas de ficheros distribuidos, y algunas aplicaciones distribuidas com la Web y los sistemas peer-to-peer. También se incluye una introducción a temes avanzados com el Cloud Computing, el Grid Computing, y el Mobile Computing .

Profesorado

Responsable

  • Jordi Guitart Fernandez ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Competencias

Competencias Transversales

Trabajo en equipo

  • G5 - Ser capaz de trabajar como miembro de un equipo, ya sea como un miembro más, o realizando tareas de dirección con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
  • CT3 - Ser capaz de trabajar como miembro de un equipo interdisciplinar ya sea como un miembro mas, o realizando tareas de direccion con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
  • CTR3 - Ser capaz de trabajar como miembro de un equipo, ya sea como un miembro más, o realizando tareas de dirección con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.

Espíritu emprendedor e innovador

  • G1 - Conocer y comprender la organización de una empresa y las ciencias que rigen su actividad; capacidad de comprender las reglas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Desarrollar la creatividad, el espíritu emprendedor y la tendencia a la innovación.
  • CT1 - Conocer y entender la organización de una empresa y las ciencias que rigen su actividad; tener capacidad para entender las normas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Conocer y entender los mecanismos en que se basa la investigación científica, así como los mecanismos e instrumentos de transferencia de resultados entre los diferentes agentes socioeconómicos implicados en los procesos de I+D+i.
  • CTR1 - Conocer y comprender la organización de una empresa y las ciencias que rigen su actividad; capacidad de comprender las reglas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Desarrollar la creatividad, el espíritu emprendedor y la tendencia a la innovación. Conocer y entender los mecanismos en que se basa la investigación científica, así como los mecanismos e instrumentos de transferencia de resultados entre los diferentes agentes socioeconómicos implicados en los procesos de I+D+i.

Actitud frente al trabajo

  • G8 - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
  • CT5 - Estar motivado para el desarrollo profesional, para afrontar nuevos retos y para la mejora continua. Tener capacidad de trabajo en situaciones de falta de informacion.
  • CTR5 - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.

Razonamiento

  • G9 - Capacidad de razonamiento crítico, lógico y matemático. Capacidad para resolver problemas dentro de su área de estudio. Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales. Capacidad de diseñar y realizar experimentos sencillos, y analizar e interpretar sus resultados. Capacidad de análisis, síntesis y evaluación.
  • CT6 - Capacidad de evaluar y analizar de manera razonada y critica sobre situaciones, proyectos, propuestas, informes y estudios de caracter cientifico-tecnico. Capacidad de argumentar las razones que explican o justifican tales situaciones, propuestas, etc.
  • CTR6 - Capacidad de razonamiento crítico, lógico y matemático. Capacidad para resolver problemas dentro de su área de estudio. Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales. Capacidad de diseñar y realizar experimentos sencillos, y analizar e interpretar sus resultados. Capacidad de análisis, síntesis y evaluación.

Sostenibilidad y compromiso social

  • G2 - Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar. Ser capaz de analizar y valorar el impacto social y medioambiental
  • CT2 - Conocer y comprender la complejidad de los fenomenos economicos y sociales tipicos de la sociedad del bienestar; capacidad para relacionar el bienestar con la globalizacion y la sostenibilidad; habilidad para utilizar de forma equilibrada y compatible la tecnica, la tecnologia, la economia y la sostenibilidad.
  • CTR2 - Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar. Ser capaz de analizar y valorar el impacto social y medioambiental

Lengua extranjera

  • G3 [Avaluable] - Conocer el idioma inglés con un nivel adecuado de forma oral y por escrito, y con consonancia con las necesidades que tendrán los graduados y graduadas en ingeniería informática. Capacidad de trabajar en un grupo multidisciplinar y en un entorno multilingüe, y de comunicar, tanto por escrito como de forma oral, conocimientos, procedimientos, resultados e ideas relacionadas con la profesión de ingeniero técnico en informática.
    • G3.1 - Comprender y utilizar eficazmente manuales, especificaciones de productos y otra información de carácter técnico escrita en inglés.
  • CT5 - Conocer una tercera lengua, preferentemente el inglés, con un nivel adecuado oral y escrito y en consonancia con las necesidades que tendrán los titulados y tituladas.

Comunicación eficaz oral y escrita

  • G4 - Comunicar de forma oral y escrita con otras personas conocimientos, procedimientos, resultados e ideas. Participar en debates sobre temas propios de la actividad del ingeniero técnico en informática.

Uso solvente de los recursos de información

  • G6 - Gestionar la adquisición, la estructuración, el análisis y la visualización de datos e información del ámbito de la ingeniería informática y valorar de forma crítica los resultados de esta gestión.
  • CT4 - Gestionar la adquisicion, la estructuracion, el analisis y la visualizacion de datos e informacion en el ambito de la especialidad y valorar de forma critica los resultados de esta gestion.
  • CTR4 - Gestionar la adquisición, la estructuración, el análisis y la visualización de datos e información del ámbito de la ingeniería informática y valorar de forma crítica los resultados de esta gestión.

Aprendizaje autónomo

  • G7 - Detectar carencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar este conocimiento. Capacidad para el aprendizaje de nuevos métodos y tecnologías y versatilidad para adaptarse a nueves situaciones.

Analisis y sintesis

  • CT7 - Capacidad de analisis y resolucion de problemas tecnicos complejos.

Básicas

  • CB6 - 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.
  • CB7 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
  • CB8 - 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.
  • CB9 - 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.
  • CB1 - Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
  • CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
  • CB4 - Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
  • CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía
  • CB10 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.

Transversales

  • CT1 - Emprendimiento e innovación. Conocer y entender la organización de una empresa y las ciencias que rigen su actividad; tener capacidad para entender las normas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio.
  • CT2 - Sostenibilidad y Compromiso Social. Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar; tener capacidad para relacionar el bienestar con la globalización y la sostenibilidad; lograr habilidades para utilizar de forma equilibrada y compatible la técnica, la tecnología, la economía y la sostenibilidad.
  • CT3 - Comunicación eficaz oral y escrita. Comunicarse de forma oral y escrita con otras personas sobre los resultados del aprendizaje, de la elaboración del pensamiento y de la toma de decisiones; participar en debates sobre temas de la propia especialidad.
  • CT4 - Trabajo en equipo. Ser capaz de trabajar como miembro de un equipo interdisciplinar, ya sea como un miembro más o realizando tareas de dirección, con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
  • CT5 - Uso solvente de los recursos de información. Gestionar la adquisición, la estructuración, el análisis y la visualización de datos e información en el ámbito de especialidad y valorar de forma crítica los resultados de dicha gestión.
  • CT6 - Aprendizaje autónomo. Detectar deficiencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar dicho conocimiento.
  • CT7 - Tercera lengua. Conocer una tercera lengua, preferentemente el inglés, con un nivel adecuado oral y escrito y en consonancia con las necesidades que tendrán los titulados y tituladas.

Perspectiva de género

  • CT6 - Conocer y comprender, desde el propio ámbito de la titulación, las desigualdades por razón de sexo y género en la sociedad; integrar las diferentes necesidades y preferencias por razón de sexo y de género en el diseño de soluciones y resolución de problemas.

Competencias Técnicas

Competencias técnicas comunes

  • CT1 - Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías relativas a la informática y a sus disciplinas de referencia.
  • CT2 - Utilizar de forma apropiada teorías, procedimientos y herramientas en el desarrollo profesional de la ingeniería informática en todos sus ámbitos (especificación, diseño, implementación, despliegue -implantación- y evaluación de productos) de manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
  • CT3 - Demostrar conocimiento y comprensión del contexto organizativo, económico y legal en el que desarrolla su trabajo (Conocimiento adecuado del concepto de empresa, marco institucional y jurídico de la empresa, organización y gestión de empresas.)
  • CT4 - Demostrar conocimiento y capacidad de aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y la complejidad de los algoritmos
  • CT5 - Analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, escogiendo el paradigma y los lenguajes de programación más adecuados.
    • CT5.6 - Demostrar conocimiento y capacidad de aplicación de los principios fundamentales y de las técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
  • CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
    • CT6.4 - Demostrar conocimiento y capacidad de aplicación de las características, las funcionalidades y la estructura de los Sistemas Distribuidos, de las Redes de Computadores y de Internet que permita su uso y su administración, así como el diseño y la implementación de aplicaciones basadas en ellas.
  • CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
  • CT8 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social

Competencias técnicas

  • CE1 - Utilizar con destreza los conceptos y métodos matemáticos que subyacen los problemas de la ciencia y la ingeniería de los datos.
  • CE2 - Ser capaz de programar soluciones a problemas de ingeniería: Diseñar soluciones algorítmicas eficientes a un problema computacional dado, implementarlas en forma de Programa robusto, estructurado y mantenible, y comprobar la validez de la solución.
  • CE3 - Analizar fenómenos complejos mediante la probabilidad y estadística, y plantear modelos de estos tipos en situaciones concretas. Formular y resolver problemas de optimización matemática.
  • CE4 - Utilizar los sistemas de computación actuales, incluidos sistemas de alto rendimiento, para el proceso de grandes volúmenes de datos desde el conocimiento de su estructura, funcionamiento y particularidades.
  • CE5 - Diseñar y aplicar técnicas de procesado de señal, eligiendo entre distintas herramientas tecnológicas, incluidas las de visión Artificial, de reconocimiento del lenguaje hablado y las de tratamiento de datos multimedia.
  • CE6 - Construir o utilizar sistemas de procesado y comprensión del lenguaje escrito, integrándolo en otros sistemas dirigidos por los datos. Diseñar sistemas de búsqueda de información textual o hipertextual y de análisis de redes sociales.
  • CE7 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los datos.
  • CE8 - Capacidad de elegir y emplear técnicas de modelización estadística y análisis de datos, evaluando la calidad de los modelos, validándolos e interpretándolos.
  • CE9 - Capacidad de elegir y emplear una variedad de técnicas de aprendizaje automático y construir sistemas que las utilicen para la toma de decisiones, incluso de forma autónoma.
  • CE10 - Visualización de información para facilitar la exploración y análisis de datos, incluida la elección de la representación adecuada de estos y el uso de técnicas de reducción de dimensionalidad.
  • CE11 - Dentro del contexto corporativo, entender el proceso de innovación, ser capaz de proponer modelos y planes de negocio basados en explotación de los datos, analizar su viabilidad y ser capaz de comunicarlos de manera convincente.
  • CE12 - Aplicar las prácticas del “project management” en la gestión integral del proyecto de ingeniería de explotación de datos que el alumno debe realizar, en la áreas de alcance, tiempo, económica y riesgos.
  • CE13 - (Trabajo de final de grado) Planificar y concebir y llevar a cabo proyectos de naturaleza profesional en el ámbito de la ingeniería de los datos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social. Defender el proyecto desarrollado ante un tribunal universitario.

Específicas

  • CE1 - Desarrollar algoritmos eficientes basados en el conocimiento y comprensión de la teoría de la complejidad computacional y las principales estructuras de datos dentro del ámbito de ciencia de datos
  • CE2 - Aplicar los fundamentos de la gestión y procesamiento de datos en un problema de ciencia de datos
  • CE3 - Aplicar métodos de integración de datos para dar solución a problemas de ciencia de datos en entornos heterogéneos
  • CE4 - Aplicar métodos escalables de almacenamiento y procesamiento paralelo de datos, incluyendo flujos continuos de datos, una vez identificados los más apropiados para un problema de ciencia de datos
  • CE5 - Modelar, diseñar e implementar sistemas complejos de datos, incluyendo la visualización de datos
  • CE6 - Diseñar el proceso de Ciencia de Datos y aplicar metodologías científicas para obtener conclusiones sobre poblaciones y tomar decisiones en consecuencia, a partir de datos estructurados o no estructurados y potencialmente almacenados en formatos heterogéneos.
  • CE7 - Identificar las limitaciones impuestas por la calidad de datos en un problema de ciencia de datos y aplicar técnicas para disminuir su impacto
  • CE8 - Extraer información de datos estructurados y no estructurados, teniendo en cuenta la naturaleza multivariante de los mismos.
  • CE9 - Aplicar métodos adecuados para el análisis de otro tipo de formatos, tales como procesos y grafos, dentro del ámbito de ciencia de datos
  • CE10 - Identificar los métodos de aprendizaje automático y modelización estadística a utilizar para resolver un problema específico de ciencia de datos y aplicarlos de forma rigurosa
  • CE11 - Analizar y extraer conocimiento de información no estructurada mediante técnicas de procesamiento de lenguaje natural, minería de textos e imágenes
  • CE12 - Aplicar la ciencia de datos en proyectos multidisciplinares para resolver problemas en dominios nuevos o poco conocidos y que sean económicamente viables, socialmente aceptables, y de acuerdo con la legalidad vigente
  • CE13 - Identificar las principales amenazas en el ámbito de la ética y la privacidad de datos en un proyecto de ciencia de datos (tanto en el aspecto de gestión como de análisis de datos) y desarrollar e implantar medidas adecuadas para mitigar dichas amenazas.
  • CE14 - Realizar, presentar y defender un ejercicio original realizado individualmente ante un tribunal universitario, consistente en un proyecto de ingeniería en el ámbito de la ciencia de datos en el que se sinteticen las competencias adquiridas en las enseñanzas

Competencias Técnicas de cada especialidad

Especialidad sistemas de información

  • CSI2 - Integrar soluciones de Tecnologías de la Información y las Comunicaciones y procesos empresariales para satisfacer las necesidades de información de las organizaciones, permitiéndoles llegar a sus objetivos de forma efectiva
  • CSI3 - Determinar los requisitos de los sistemas de información y comunicación de una organización, atendiendo a aspectos de seguridad y cumplimiento de la normativa y de la legislación vigente.
  • CSI4 - Participar activamente en la especificación, el diseño, la implementación y el mantenimiento de los sistemas de información y de comunicación.
  • CSI1 - Demostrar comprensión y aplicar los principios y las prácticas de las organizaciones, de manera que puedan ejercer como enlace entre las comunidades técnica y de gestión de una organización, y participar activamente en la formación de los usuarios.

Especialidad ingeniería del software

  • CES1 - Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario, que se comporten de forma fiable y eficiente, que tengan un desarrollo y mantenimiento asequible y que cumplan normas de calidad, aplicando las teorías, los principios, los métodos y las prácticas de Ingeniería del Software.
  • CES2 - Valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables, dentro de las limitaciones derivadas del costo, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.
  • CES3 - Identificar y analizar problemas, y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, de los modelos y de las técnicas actuales.

Especialidad tecnologías de la información

  • CTI1 - Definir, planificar y gestionar la instalación de la infraestructura TIC de la organización.
    • CTI1.3 - Seleccionar, desplegar, integrar y gestionar sistemas de información que satisfagan las necesidades de la organización con los criterios de costo y calidad identificados.
  • CTI2 - Garantizar que los sistemas TIC de una organización funcionan de forma adecuada, son seguros y están adecuadamente instalados, documentados, personalizados, mantenidos, actualizados y sustituidos, y que las personas de la organización reciban un soporte TIC correcto.
  • CTI3 - Diseñar soluciones que integren tecnologías de hardware, software y comunicaciones (y capacidad de desarrollar soluciones específicas de software de sistemas) para sistemas distribuidos y dispositivos de computación ubícua.
    • CTI3.1 - Concebir sistemas, aplicaciones y servicios basados en tecnologías de red, incluyendo Internet, web, comercio electrónico, multimedia, servicios interactivos y computación ubicua.
    • CTI3.2 - Implementar y gestionar sistemas ubicuos (mobile computing systems).
    • CTI3.4 - Diseñar software de comunicaciones.
  • CTI4 - Emplear metodologías centradas en el usuario y la organización para el desarrollo, la evaluación y la gestión de aplicaciones y sistemas basados en tecnologías de la información que aseguren la accesibilidad, la ergonomía y la usabilidad de los sistemas.

Especialidad ingeniería de computadores

  • CEC1 - Diseñar y construir sistemas digitales, incluyendo computadores, sistemas basados en microprocesadores y sistemas de comunicaciones.
  • CEC2 - Analizar y evaluar arquitecturas de computadores incluyendo plataformas paralelas y distribuidas, y desarrollar y optimizar software para dichas plataformas.
  • CEC3 - Desarrollar y analizar hardware y software para sistemas empotrados y/o de muy bajo consumo.
  • CEC4 - Diseñar, desplegar, administrar y gestionar redes de computadores, y gestionar la garantía y la seguridad de los sistemas informáticos.

Especialidad de computación

  • CCO1 - Tener un conocimiento profundo de los principios fundamentales y de los modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática.
  • CCO2 - Desarrollar de forma efectiva y eficiente los algoritmos y el software apropiados para resolver problemas complejos de computación.
  • CCO3 - Desarrollar las soluciones informáticas que, considerando el entorno de ejecución y la arquitectura del computador sobre el cual se ejecutan, consigan el mejor rendimiento.

Académicas

  • CEA1 - Capacidad de comprender los principios básicos de funcionamiento de las técnicas principales de los Sistemas Multiagentes, y saber utilizarlas en el entorno de un sistema o servicio inteligente.
  • CEA2 - Capacidad de comprender los principios básicos de funcionamiento de las técnicas principales de Planificación y Razonamiento Aproximado, y saber utilizarlas en el entorno de un sistema o servicio inteligente.
  • CEA3 - Capacidad de comprender los principios básicos de funcionamiento de las técnicas principales de Aprendizaje Automático, y saber utilizarlas en el entorno de un sistema o servicio inteligente.
  • CEA4 - Capacidad de comprender los principios básicos de funcionamiento de las técnicas principales de Inteligencia Computacional, y saber utilizarlas en el entorno de un sistema o servicio inteligente.
  • CEA5 - Capacidad de comprender los principios básicos de funcionamiento de las técnicas de Procesamiento del Lenguaje Natural, y saber utilizarlas en el entorno de un sistema o servicio inteligente.
  • CEA6 - Capacidad de comprender los principios básicos de funcionamiento de las técnicas de Visión Computacional, y saber utilizarlas en el entorno de un sistema o servicio inteligente.
  • CEA7 - Capacidad de comprender la problemática, y las soluciones a los problemas en la práctica profesional de la aplicación de la Inteligencia Artificial en el entorno empresarial e industrial.
  • CEA8 - Capacidad de realizar investigación en nuevas técnicas, metodologías, arquitecturas, servicios o sistemas en el área de la Inteligencia Artificial.
  • CEA9 - Capacidad de comprender las técnicas avanzadas de Sistemas Multiagentes, y saber diseñar, implementar y aplicar estas técnicas en el desarrollo de aplicaciones, servicios o sistemas inteligentes.
  • CEA10 - Capacidad de comprender las técnicas avanzadas de Interacción Persona-Máquina, y saber diseñar, implementar y aplicar estas técnicas en el desarrollo de aplicaciones, servicios o sistemas inteligentes.
  • CEA11 - Capacidad de comprender las técnicas avanzadas de Inteligencia Computacional, y saber diseñar, implementar y aplicar estas técnicas en el desarrollo de aplicaciones, servicios o sistemas inteligentes.
  • CEA12 - Capacidad de comprender las técnicas avanzadas de Ingeniería del Conocimiento, Aprendizaje Automático y Sistemas de Soporte a la Decisión, y saber diseñar, implementar y aplicar estas técnicas en el desarrollo de aplicaciones, servicios o sistemas inteligentes.
  • CEA13 - Capacidad de comprender las técnicas avanzadas de Modelización, Razonamiento y Resolución de problemas, y saber diseñar, implementar y aplicar estas técnicas en el desarrollo de aplicaciones, servicios o sistemas inteligentes.
  • CEA14 - Capacidad de comprender las técnicas avanzadas de Visión, Percepción y Robótica, y saber diseñar, implementar y aplicar estas técnicas en el desarrollo de aplicaciones, servicios o sistemas inteligentes.

Profesionales

  • CEP1 - Capacidad de resolver las necesidades de analisis de la informacion de las diferentes organizaciones, identificando las fuentes de incertidumbre y variabilidad.
  • CEP2 - Capacidad de resolver los problemas de toma de decisiones de las diferentes organizaciones, integrando herramientas inteligentes.
  • CEP3 - Capacidad de aplicación de las técnicas de Inteligencia Artificial en entornos tecnológicos e industriales para la mejora de la calidad y la productividad.
  • CEP4 - Capacidad para disenar, redactar y presentar informes sobre proyectos informaticos en el area especifica de Inteligencia Artificial.
  • CEP5 - Capacidad de diseñar nuevas herramientas informáticas y nuevas técnicas de Inteligencia Artificial en el ejercicio profesional.
  • CEP6 - Capacidad de asimilar e integrar los cambios del entorno economico, social y tecnologico a los objetivos y procedimientos del trabajo informatico en sistemas inteligentes.
  • CEP7 - Capacidad de respetar la normativa legal y la deontología en el ejercicio profesional.
  • CEP8 - Capacidad de respetar el entorno ambiental y diseñar y desarrollar sistemas inteligentes sostenibles.

Dirección y gestión

  • CDG1 - Capacidad para la integración de tecnologías, aplicaciones, servicios y sistemas propios de la Ingeniería Informática, con carácter generalista, y en contextos más amplios y multidisciplinares.
  • CDG2 - Capacidad para la planificación estratégica, elaboración, dirección, coordinación, y gestión técnica y económica en los ámbitos de la ingeniería informática relacionados, entre otros, con: sistemas, aplicaciones, servicios, redes, infraestructuras o instalaciones informáticas y centros o factorías de desarrollo de software, respetando el adecuado cumplimiento de los criterios de calidad y medioambientales y en entornos de trabajo multidisciplinares.
  • CDG3 - Capacidad para la dirección de proyectos de investigación, desarrollo e innovación, en empresas y centros tecnológicos, con garantía de la seguridad para las personas y bienes, la calidad final de los productos y su homologación.

Específicas

  • CTE1 - Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
  • CTE2 - 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.
  • CTE3 - Capacidad para asegurar, gestionar, auditar y certificar la calidad de los desarrollos, procesos, sistemas, servicios, aplicaciones y productos informáticos.
  • CTE4 - Capacidad para diseñar, desarrollar, gestionar y evaluar mecanismos de certificación y garantía de seguridad en el tratamiento y acceso a la información en un sistema de procesamiento local o distribuido.
  • CTE5 - Capacidad para analizar las necesidades de información que se plantean en un entorno y llevar a cabo en todas sus etapas el proceso de construcción de un sistema de información.
  • CTE6 - Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.
  • CTE7 - Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.
  • CTE8 - Capacidad de diseñar y desarrollar sistemas, aplicaciones y servicios informáticos en sistemas empotrados y ubicuos.
  • CTE9 - Capacidad para aplicar métodos matemáticos, estadísticos y de inteligencia artificial para modelar, diseñar y desarrollar aplicaciones, servicios, sistemas inteligentes y sistemas basados en el conocimiento.
  • CTE10 - Capacidad para utilizar y desarrollar metodologías, métodos, técnicas, programas de uso específico, normas y estándares de computación gráfica.
  • CTE11 - Capacidad para conceptualizar, diseñar, desarrollar y evaluar la interacción persona-ordenador de productos, sistemas, aplicaciones y servicios informáticos.
  • CTE12 - Capacidad para la creación y explotación de entornos virtuales, y para la creación, gestión y distribución de contenidos multimedia.

Computer graphics and virtual reality

  • CEE1.1 - Capacidad de comprender y saber aplicar las tecnologías actuales y las que en el futuro se utilicen para el diseño y evaluación de aplicaciones gráficas interactivas en tres dimensiones, tanto cuando prime la calidad de imagen como cuando lo haga la interactividad o la velocidad, así como comprender los compromisos inherentes y las razones que los ocasionan.
  • CEE1.2 - Capacidad de comprender y saber aplicar las tecnologías actuales y las que en el futuro se utilicen para la evaluación, implementación y explotación de entornos de realidad virtual y/o aumentada, y de interfaces de usuario 3D basadas en dispositivos de interacción natural.
  • CEE1.3 - Capacidad de integrar las tecnologías mencionadas en las competencias CEE1.1 y CEE1.2 con otras tecnologías de tratamiento digital de la información para construir nuevas aplicaciones; así como efectuar contribuciones significativas en equipos multidisciplinares que usen la informática gráfica.

Computer networks and distributed systems

  • CEE2.1 - Capacidad para entender los modelos, problemas y algoritmos relacionados con los sistemas distribuidos, así como poder diseñar y evaluar algoritmos y sistemas que traten la problemática de la distribución y ofrezcan servicios distribuidos
  • CEE2.2 - Capacidad de entender los modelos, problemas y algoritmos relacionados con las redes de computadores, así como poder diseñar y evaluar algoritmos, protocolos y sistemas que traten la problemática de la redes de comunicación entre computadores.
  • CEE2.3 - Capacidad de entender los modelos, problemas y herramientas matemáticas que permiten analizar, diseñar y evaluar redes de computadores y sistemas distribuidos.

Advanced computing

  • CEE3.1 - Capacidad para identificar barreras computacionales y analizar la complejidad de problemas computacionales en diversos ámbitos de la ciencia y la tecnología; así como para representar problemas de alta complejidad en estructuras matemáticas que puedan ser tratadas eficientemente con esquemas algorítmicos.
  • CEE3.2 - Capacidad para utilizar un espectro amplio y variado de recursos algorítmicos para resolver problemas de alta dificultad algorítmica.
  • CEE3.3 - Capacidad para entender las necesidades computacionales de problemas de disciplinas distintas de la informática y efectuar contribuciones significativas en equipos multidisciplinares que usen la computación.

High performance computing

  • CEE4.1 - Capacidad de analizar, evaluar y diseñar computadores y proponer nuevas técnicas de mejora en su arquitectura.
  • CEE4.2 - Capacidad de analizar, evaluar, diseñar y optimizar software considerando la arquitectura y de proponer nuevas técnicas de optimización.
  • CEE4.3 - Capacidad de analizar, evaluar, diseñar y administrar software de sistema en entornos de supercomputación.

Service engineering

  • CEE5.1 - Capacidad para participar en proyectos de mejora o creación de sistemas de servicios, aportando especialmente: a) propuestas de innovación e investigación basadas en nuevos usos y desarrollos de las tecnologías de la información b) la aplicación de los principios de la ingeniería del software y las bases de datos en el desarrollo de los sistemas de información que sean más adecuados, c) la determinación, instalación y gestión de la infraestructura/plataforma informática necesaria para el funcionamento eficiente de los sistemas de servicio.
  • CEE5.2 - Capacidad para aplicar los conocimientos obtenidos en sistemas de servicio de cualquier tipo, estando familiarizado con algunos de ellos, y con conocimiento profundo de los sistemas de comercio electrónico y sus extensiones (eBusiness, eOrganization, eGovernment, etc.).
  • CEE5.3 - Capacidad para trabajar en equipos interdisciplinarios de ingeniería de servicios y, disponiendo de la experiencia de dominio necesaria, capacidad para trabajar autónomamente en sistemas de servicios concretos.

Específicas comunes

  • CEC1 - Capacidad para aplicar el método científico en el estudio y análisis de fenómenos y sistemas en cualquier ámbito de la Informática, así como en la concepción, diseño e implantación de soluciones informáticas innovadoras y originales.
  • CEC2 - Capacidad para el modelado matemático, cálculo y diseño experimental en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación e innovación en todos los ámbitos de la Informática.
  • CEC3 - Capacidad para aplicar soluciones innovadoras y realizar avances en el conocimiento que exploten los nuevos paradigmas de la Informática, particularmente en entornos distribuidos.

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Identificar y aplicar los métodos y procesos de gestión de datos más adecuados para gestionar el ciclo de vida de los datos, incluyendo datos estructurados y no estructurados
  • CG2 - Identificar y aplicar métodos de análisis, extracción de conocimiento y visualización de datos recogidos en formatos muy diversos.
  • CG3 - Definir, diseñar e implementar sistemas complejos que cubran todas las fases en proyectos de ciencia de datos
  • CG4 - Diseñar y poner en marcha proyectos de ciencia de datos en dominios específicos de forma innovadora
  • CG5 - Poder recurrir a conocimientos fundamentales y metodologías de trabajo sólidas adquiridos durante los estudios para adaptarse a los nuevos escenarios tecnológicos del futuro.
  • CG6 - Capacidad para la dirección general, dirección técnica y dirección de proyectos de investigación, desarrollo e innovación, en empresas y centros tecnológicos, en el ámbito de la Ingeniería Informática.
  • CG7 - Capacidad para la puesta en marcha, dirección y gestión de procesos de fabricación de equipos informáticos, con garantía de la seguridad para las personas y bienes, la calidad final de los productos y su homologación.
  • 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 mulitidisciplinares, siendo capaces de integrar estos conocimientos.
  • CG9 - Capacidad para comprender y aplicar la responsabilidad ética, la legislación y la deontología profesional de la actividad de la profesión de Ingeniero en Informática.
  • CG10 - Capacidad para aplicar los principios de la economía y de la gestión de recursos humanos y proyectos, así como la legislación, regulación y normalización de la informática.

Objetivos

  1. Entender la definición de sistema distribuido y sus posibles aplicaciones, además de los desafíos que se deben afrontar para su diseño e implementación.
    Competencias relacionadas: CTI3.1, CTI3.4, CT6.4, CTI1.3,
    Subcompetences:
    • Conocer las posibles aplicaciones de un sistema distribuido
    • Poner ejemplos de sistemas distribuidos
    • Entender los desafíos para diseñar e implementar un sistema distribuido: heterogeneidad, ausencia de visión global, seguridad, coordinación, asincronía, apertura, transparencia, tolerancia a fallos, escalabilidad
    • Entender la definición de sistema distribuido
  2. Conocer las arquitecturas de sistema básicas en los sistemas distribuidos.
    Competencias relacionadas: CTI3.1, CTI3.4, CT6.4, CT5.6,
    Subcompetences:
    • Conocer las arquitecturas de sistema básicas en los sistemas distribuidos: centralizadas (cliente-servidor), descentralizadas (peer-to-peer), híbridas
  3. Conocer los mecanismos básicos de comunicación en un sistema distribuido: invocación de operaciones remotas, comunicación basada en mensajes, comunicación basada en eventos y comunicación basada en canales (streams), y escribir aplicaciones distribuidas que se comuniquen mediante el envío de mensajes.
    Competencias relacionadas: CTI3.1, CTI3.4, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Conocer los paradigmas de comunicación básicos en los sistemas distribuidos: invocación remota de procedimiento, paso de mensajes, colas de mensajes, comunicación de grupos, publicación/subscripción, espacios de datos compartidos, memoria compartida, código móvil, orientado a stream
    • Escribir aplicaciones distribuidas que se comuniquen mediante el envío de mensajes
    • Conocer el mecanismo de comunicación basada en streams: modos de transmisión, calidad de servicio
    • Conocer el mecanismo de comunicación basada en eventos: sistemas de publicación/subscripción
    • Conocer los diferentes tipos de comunicación en un sistema distribuido: directa vs. indirecta (desacoplamiento espacial y temporal), persistente vs. transitoria, síncrona vs. asíncrona, discreta vs. continua
    • Conocer el mecanismo de comunicación basada en mensajes: transitoria (Sockets) vs. persistente (MOM)
    • Conocer el mecanismo de comunicación mediante la invocación de procedimientos remotos (RPC): operación básica, paso de parámetros, extensiones del modelo básico, tratamiento de fallos, invocación de métodos remotos (RMI)
  4. Entender la problemática del tiempo y la ordenación de eventos en un sistema distribuido y explicar e implementar los mecanismos de relojes lógicos para atacar esta problemática y los algoritmos para sincronizar relojes físicos en un sistema distribuido.
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Entender la problemática del tiempo y la ordenación de eventos en un sistema distribuido
    • Explicar e implementar los algoritmos para sincronizar relojes físicos en un sistema distribuido: Cristian (NTP), Berkeley
    • Explicar e implementar los mecanismos de relojes lógicos para atacar esta problemática: relación happened-before, relojes lógicos de Lamport (escalares, vectoriales)
  5. Describir, comparar e implementar los algoritmos para la coordinación de procesos en un sistema distribuido, incluyendo la coordinación necesaria para garantizar exclusión mutua, elección de líder, comunicación en grupo multicast, y consenso.
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Describir, comparar e implementar los algoritmos para la coordinación de procesos en un sistema distribuido para garantizar exclusión mutua: algoritmos basados ​​en permiso (centralizado, Lin, Maekawa, Ricart & Agrawala), algoritmos basados ​​en token (token ring)
    • Describir, comparar e implementar los algoritmos para la coordinación de procesos en un sistema distribuido para la comunicación en grupo multicast: multicast fiable básico, multicast fiable escalable, multicast ordenado (FIFO, causal, total), atomic multicast
    • Describir, comparar e implementar los algoritmos para la coordinación de procesos en un sistema distribuido para la elección de líder: Bully, Ring
  6. Comprender la aplicación de la replicación en un sistema distribuido, además de la problemática que se introduce a nivel de consistencia, y describir los modelos de consistencia correspondientes y su implementación.
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3, CTI3.2, CT5.6,
    Subcompetences:
    • Describir implementaciones concretas de modelos de consistencia: protocolos basados ​​en primario (remote-write, local-write) y protocolos de escritura replicada (replicación activa, protocolos basados ​​en quórum)
    • Comprender la aplicación de la replicación en un sistema distribuido, además de la problemática que se introduce a nivel de consistencia
    • Describir los modelos de consistencia relajada centrados en los datos: uso de variables de sincronización
    • Describir los modelos de consistencia centrados en el cliente: eventual, monotonic-read, monotonic-write, read-your-writes, writes-follow-reads
    • Conocer los detalles de implementación de los modelos de consistencia en relación a la ubicación de las réplicas (permanentes, iniciadas por el servidor, iniciadas por el cliente) y la propagación de actualizaciones (push-pull protocols)
    • Describir los modelos de consistencia fuerte centrados en los datos: estricta, secuencial, causal, FIFO
  7. Conocer y comparar las características básicas de los servicios de resolución de nombres planos, estructurados y basados ​​en atributos, e implementar y evaluar uno de estos sistemas.
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3, CTI3.2,
    Subcompetences:
    • Implementar y evaluar un servicio DNS simple
    • Conocer y comparar las características básicas de los servicios de resolución de nombres planos: broadcasting, forwarding pointers, soluciones basadas en home, DHTs
    • Conocer y comparar las características básicas de los servicios de resolución de nombres estructurados: name spaces, resolución iterativa, resolución recursiva, DNS
    • Conocer y comparar las características básicas de los servicios de resolución de nombres basados ​​en atributos: servicios de directorio (LDAP)
  8. Conocer y comparar las características básicas de los sistemas de ficheros distribuidos (e.g. NFS).
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3, CTI3.2,
    Subcompetences:
    • Comprender la semántica de compartición de ficheros: semántica UNIX, semántica de sesión, ficheros inmutables, semántica transaccional
    • Conocer y comparar las características básicas del sistema de ficheros distribuido NFS
    • Conocer y comparar las características básicas del sistema de ficheros distribuido Coda
    • Conocer las arquitecturas de los sistemas de ficheros distribuidos: modelo de acceso remoto, modelo upload / download, idea básica de las arquitecturas en cluster (stripping + replicación)
  9. Conocer y comparar las características básicas de los sistemas distribuidos basados ​​en web: servidores web, servidores de aplicaciones, Web Services, Content Distribution Networks (CDN), e implementar y evaluar uno de estos sistemas.
    Competencias relacionadas: CTI3.1, CTI3.4, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Implementar y evaluar un servidor web simple
    • Conocer los mecanismos de sincronización en los sistemas distribuidos basados ​​en Web
    • Conocer los protocolos de comunicación en los sistemas distribuidos basados ​​en Web: HTTP, SOAP, WSDL
    • Conocer los mecanismos de caching y replicación en los sistemas distribuidos basados ​​en Web: Proxies, Content Distribution Networks (CDN): Akamai, esquemas de redirección (URL rewriting, DNS redirection)
    • Conocer las arquitecturas de los sistemas distribuidos basados ​​en Web: cliente/servidor, servlets, clusters de servidores, Web Services
    • Conocer los servicios de nombres en los sistemas distribuidos basados ​​en Web: URL, DNS, UDDI
  10. Comprender el modelo de computación Peer-to-Peer (P2P), comparar las características de los sistemas P2P no estructurados y los estructurados basados ​​en DHTs, e implementar y evaluar uno de estos sistemas.
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Comprender el modelo de computación Peer-to-Peer (P2P), sus ventajas y sus aplicaciones
    • Comparar las características de los sistemas P2P no estructurados centralizados: BitTorrent
    • Comparar las características de los sistemas P2P estructurados basados ​​en DHTs: Chord: organización del anillo, inserción de elementos, búsqueda de elementos con tablas de finger, inserción de nodos
    • Implementar y evaluar un sistema P2P estructurado
    • Comparar las características de los sistemas P2P no estructurados jerárquicos: FastTrack
    • Comparar las características de los sistemas P2P no estructurados descentralizados con búsqueda por inundación: Gnutella
  11. Conocer los paradigmas más importantes de computación distribuida (computación voluntaria, Grid y Cloud) y sus características.
    Competencias relacionadas: CTI3.1, CT6.4, CTI1.3,
    Subcompetences:
    • Conocer el paradigma Cloud de computación distribuida, sus características y sus aplicaciones: Utility computing, tipo de Clouds (público, privado, comunitario, híbrido), diferencia respecto al Grid, servicios Cloud (IaaS, PAAS, SaaS), tecnologías base de implementación, infraestructura Cloud (datacenters), obstáculos para la consolidación del Cloud
    • Conocer el paradigma Grid de computación distribuida, sus características y sus aplicaciones: Virtual organizations (VO), arquitectura OGSA, diferencia respecto a la computación cluster y distribuida
    • Conocer el paradigma de computación distribuida voluntaria: BOINC
  12. Conocer los paradigmas de Mobile y Ubiquitous Computing y su problemática.
    Competencias relacionadas: CTI3.1, CT6.4, CTI3.2,
    Subcompetences:
    • Conocer los paradigmas de Mobile y Ubiquitous Computing y su problemática: volatilidad, asociación, interoperabilidad, sensores y context-awareness, adaptación
  13. Comprender artículos, enunciados, y en general cualquier fuente de información de carácter técnico escrita en inglés
    Competencias relacionadas: G3.1,

Contenidos

  1. Conceptos de sistemas distribuidos
    Definición de sistema distribuido. Posibles aplicaciones de un sistema distribuido. Ejemplos de sistemas distribuidos. Desafíos para diseñar e implementar un sistema distribuido: heterogeneidad, ausencia de visión global, seguridad, coordinación, asincronía, apertura , transparencia, tolerancia a fallos, escalabilidad. Arquitecturas de sistema básicas en los sistemas distribuidos: centralizadas (cliente-servidor), descentralizadas (peer-to-peer), híbridas
  2. Comunicación entre procesos
    Tipos de comunicación en un sistema distribuido: directa vs. indirecta (desacoplamiento espacial y temporal), persistente vs. transitoria, síncrona vs. asíncrona, discreta vs. continua. Paradigmas de comunicación básicos en los sistemas distribuidos: invocación remota de procedimiento, paso de mensajes, colas de mensajes, comunicación de grupos, publicación/subscripción, espacios de datos compartidos, memoria compartida, código móvil, orientado a stream. Invocación de procedimientos remotos (RPC): operación básica, paso de parámetros, extensiones del modelo básico, tratamiento de fallos, invocación de métodos remotos (RMI). Comunicación basada en mensajes: transitoria (Sockets) vs. persistente (MOM). Comunicación basada en eventos: sistemas de publicación/subscripción. Comunicación basada en streams: modos de transmisión, calidad de servicio
  3. Tiempo y ordenación
    Tiempo y ordenación de eventos en un sistema distribuido. Relojes lógicos: relación happened-before, relojes lógicos de Lamport (escalares, vectoriales). Algoritmos para sincronizar relojes físicos en un sistema distribuido: Cristian (NTP), Berkeley.
  4. Coordinación y consenso
    Coordinación de procesos en un sistema distribuido para garantizar exclusión mutua: algoritmos basados ​​en permiso (centralizado, Lin, Maekawa, Ricart & Agrawala), algoritmos basados ​​en token (token ring). Coordinación de procesos en un sistema distribuido para la elección de líder: Bully, Ring. Coordinación de procesos en un sistema distribuido para la comunicación en grupo multicast: multicast fiable básico, multicast fiable escalable, multicast ordenado (FIFO, causal, total), atomic multicast.
  5. Consistencia y replicación
    Replicación y consistencia en un sistema distribuido. Modelos de consistencia fuerte centrados en los datos: estricta, secuencial, causal, FIFO. Modelos de consistencia relajada centrados en los datos: uso de variables de sincronización. Modelos de consistencia centrados en el cliente: eventual, monotonic-read, monotonic-write, read-your-writes, writes-follow-reads. Ubicación de las réplicas (permanentes, iniciadas por el servidor, iniciadas por el cliente) y propagación de actualizaciones (push-pull protocols). Implementaciones de modelos de consistencia: protocolos basados ​​en primario (remote-write, local-write) y protocolos de escritura replicada (replicación activa, protocolos basados ​​en quórum)
  6. Sistemas de nombres
    Servicios de resolución de nombres planos: broadcasting, forwarding pointers, soluciones basadas en home, DHTs. Servicios de resolución de nombres estructurados: name spaces, resolución iterativa, resolución recursiva, DNS. Servicios de resolución de nombres basados ​​en atributos: servicios de directorio (LDAP)
  7. Sistemas de ficheros distribuidos
    Arquitecturas de los sistemas de ficheros distribuidos: modelo de acceso remoto, modelo upload / download, idea básica de las arquitecturas en cluster (stripping + replicación). Semántica de compartición de ficheros: semántica UNIX, semántica de sesión, ficheros inmutables, semántica transaccional. Características básicas del sistema de ficheros distribuido Coda
  8. Sistemas distribuidos basados ​​en Web
    Arquitecturas de los sistemas distribuidos basados ​​en Web: cliente/servidor, servlets, clusters de servidores, Web Services. Protocolos de comunicación en los sistemas distribuidos basados ​​en Web: HTTP, SOAP, WSDL. Servicios de nombres en los sistemas distribuidos basados ​​en Web: URL, DNS, UDDI. Sincronización en los sistemas distribuidos basados ​​en Web. Caching y replicación en los sistemas distribuidos basados ​​en Web: Proxies, Content Distribution Networks (CDN): Akamai, esquemas de redirección (URL rewriting, DNS redirection)
  9. Sistemas Peer-to-Peer (P2P)
    Modelo de computación Peer-to-Peer (P2P): ventajas y aplicaciones. Sistemas P2P no estructurados centralizados: BitTorrent. Sistemas P2P no estructurados descentralizados con búsqueda por inundación: Gnutella. Sistemas P2P no estructurados jerárquicos: FastTrack. Sistemas P2P estructurados basados ​​en DHTs: Chord: organización del anillo, inserción de elementos, búsqueda de elementos con tablas de finger, inserción de nodos; Kademlia: organización del árbol y estado del nodo, búsqueda e inserción de nodos, búsqueda e inserción de elementos.
  10. Sistemas de computación distribuida
    Paradigma de computación distribuida voluntaria: BOINC. Paradigma Grid de computación distribuida, sus características y sus aplicaciones: Virtual organizations (VO), arquitectura OGSA, diferencia respecto a la computación cluster y distribuida. Paradigma Cloud de computación distribuida, sus características y sus aplicaciones: Utility computing, tipo de Clouds (público, privado, comunitario, híbrido), diferencia respecto al Grid, servicios Cloud (IaaS, PAAS, SaaS), tecnologías base de implementación, infraestructura Cloud (datacenters), obstáculos para la consolidación del Cloud
  11. Sistemas móviles y ubicuos
    Sistemas móviles y ubicuos: volatilidad, asociación, interoperabilidad, sensores y context-awareness, adaptación

Actividades

Actividad Acto evaluativo


Desarrollo del tema "Conceptos de sistemas distribuidos"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Definición de sistema distribuido. Posibles aplicaciones de un sistema distribuido. Ejemplos de sistemas distribuidos. Desafíos para diseñar e implementar un sistema distribuido: heterogeneidad, ausencia de visión global, concurrencia, ausencia de un único punto de control, seguridad, asincronía, apertura , transparencia, tolerancia a fallos, escalabilidad. Estilos arquitectónicos básicos en los sistemas distribuidos: por niveles, basado en objetos, centrado en los datos, basado en eventos, espacios de datos compartidos. Arquitecturas de sistema básicas en los sistemas distribuidos: centralizadas (cliente-servidor), descentralizadas (peer-to-peer), híbridas
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 1 2
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Seminario de laboratorio #1

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
  • Laboratorio: Implementación y análisis del mecanismo pedido.
Objetivos: 1 2 3 13
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Lectura de artículo #1

Lectura del artículo propuesto. Comprensión y asimilación de los contenidos del artículo. Realización de un informe de la lectura
Objetivos: 1 2 3 13
Semana: 2
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Desarrollo del tema "Comunicación entre procesos"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Tipos de comunicación en un sistema distribuido: persistente vs. transitoria, síncrona vs. asíncrona. Invocación de procedimientos remotos (RPC): operación básica, paso de parámetros, extensiones del modelo básico, tratamiento de fallos, invocación de métodos remotos (RMI). Comunicación basada en mensajes: transitoria (Sockets) vs. persistente (MOM). Comunicación basada en streams: modos de transmisión, calidad de servicio
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 3
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Seminario de laboratorio #2

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
  • Laboratorio: Implementación y análisis del mecanismo pedido.
Objetivos: 4 5 13
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Informe del seminario de laboratorio #1

Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
Objetivos: 1 2 3 13
Semana: 3
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Desarrollo del tema "Tiempo y ordenación"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Tiempo y la ordenación de eventos en un sistema distribuido. Relojes lógicos: relación happened-before, relojes lógicos de Lamport (escalares, vectoriales). Algoritmos para sincronizar relojes físicos en un sistema distribuido: Cristian (NTP), Berkeley.
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 4
Contenidos:
Teoría
1.5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1.5h

Lectura de artículo #2

Lectura del artículo propuesto. Comprensión y asimilación de los contenidos del artículo. Realización de un informe de la lectura
Objetivos: 4 13
Semana: 4
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Desarrollo del tema "Coordinación y consenso"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Coordinación de procesos en un sistema distribuido para garantizar exclusión mutua: algoritmos basados ​​en permiso (centralizado, descentralizado usando un sistema P2P, distribuido de Ricart y Agrawala usando multicast totalmente ordenado), algoritmos basados ​​en token (token ring). Coordinación de procesos en un sistema distribuido para la elección de líder: Bully, Ring. Coordinación de procesos en un sistema distribuido para la comunicación en grupo multicast: multicast fiable básico, multicast fiable escalable, multicast ordenado (FIFO, causal, total), atomic multicast.
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 5
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Seminario de laboratorio #3

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
  • Laboratorio: Implementación y análisis del mecanismo pedido.
Objetivos: 5 6 13
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Informe del seminario de laboratorio #2

Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
Objetivos: 4 5 13
Semana: 5
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Lectura de artículo #3

Lectura del artículo propuesto. Comprensión y asimilación de los contenidos del artículo. Realización de un informe de la lectura
Objetivos: 5 6 13
Semana: 6
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Desarrollo del tema "Consistencia y replicación"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Replicación y consistencia en un sistema distribuido. Modelos de consistencia fuerte centrados en los datos: estricta, secuencial, causal, FIFO. Modelos de consistencia relajada centrados en los datos: uso de variables de sincronización. Modelos de consistencia centrados en el cliente: eventual, monotonic-read, monotonic-write, read-your-writes, writes-follow-reads. Ubicación de las réplicas (permanentes, iniciadas por el servidor, iniciadas por el cliente) y propagación de actualizaciones (push-pull protocols). Implementaciones de modelos de consistencia: protocolos basados ​​en primario (remote-write, local-write) y protocolos de escritura replicada (replicación activa, protocolos basados ​​en quórum)
  • Aprendizaje autónomo: Preparació de la classe amb l'ajuda del material de suport. Comprensió i assimilació dels continguts del tema per la seva aplicació posterior
Objetivos: 6
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Seminario de laboratorio #4

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
  • Laboratorio: Implementación y análisis del mecanismo pedido.
Objetivos: 5 6 13
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Informe del seminario de laboratorio #3

Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
Objetivos: 5 6 13
Semana: 8
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Lectura de artículo #4

Lectura del artículo propuesto. Comprensión y asimilación de los contenidos del artículo. Realización de un informe de la lectura
Objetivos: 7 8 9 13
Semana: 8
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Desarrollo del tema "Sistemas de nombres"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Servicios de resolución de nombres planos: broadcasting, forwarding pointers, soluciones basadas en home, DHTs, soluciones jerárquicas. Servicios de resolución de nombres estructurados: name spaces, resolución iterativa, resolución recursiva, DNS. Servicios de resolución de nombres basados ​​en atributos: servicios de directorio (LDAP)
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 7
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Control parcial

Asimilación de los conceptos del curso y realización del control
Objetivos: 1 2 3 4 5 6 7
Semana: 10
Tipo: examen de teoría
Teoría
1.5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7.5h

Desarrollo del tema "Sistemas de ficheros distribuidos"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Arquitecturas de los sistemas de ficheros distribuidos: modelo de acceso remoto, modelo upload / download, idea básica de las arquitecturas en cluster (stripping + replicación). Semántica de compartición de ficheros: semántica UNIX, semántica de sesión, ficheros inmutables, semántica transaccional. Características básicas del sistema de ficheros distribuido CIFS/SMB
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 8
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Seminario de laboratorio #5

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
  • Laboratorio: Implementación y análisis del mecanismo pedido.
Objetivos: 7 9 13
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Informe del seminario de laboratorio #4

Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
Objetivos: 5 6 13
Semana: 11
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Lectura de artículo #5

Lectura del artículo propuesto. Comprensión y asimilación de los contenidos del artículo. Realización de un informe de la lectura
Objetivos: 10 13
Semana: 11
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Desarrollo del tema "Sistemas distribuidos basados ​​en Web"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Arquitecturas de los sistemas distribuidos basados ​​en Web: cliente/servidor, servlets, clusters de servidores, Web Services. Protocolos de comunicación en los sistemas distribuidos basados ​​en Web: HTTP, SOAP, WSDL. Servicios de nombres en los sistemas distribuidos basados ​​en Web: URN, URL, DNS, UDDI. Sincronización en los sistemas distribuidos basados ​​en Web: WebDAV. Caching y replicación en los sistemas distribuidos basados ​​en Web: Proxies, Content Distribution Networks (CDN): Akamai, esquemas de redirección (URL rewriting, DNS redirection)
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 9
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Desarrollo del tema "Sistemas Peer-to-Peer (P2P)"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Modelo de computación Peer-to-Peer (P2P): ventajas y aplicaciones. Sistemas P2P no estructurados centralizados: BitTorrent. Sistemas P2P no estructurados descentralizados con búsqueda por inundación: Gnutella. Sistemas P2P estructurados basados ​​en DHTs: Chord: organización del anillo, inserción de elementos, búsqueda de elementos con tablas de finger, inserción de nodos.
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 10
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Seminario de laboratorio #6

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
  • Laboratorio: Implementación y análisis del mecanismo pedido.
Objetivos: 10 13
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Informe del seminario de laboratorio #5

Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
Objetivos: 7 9 13
Semana: 13
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Desarrollo del tema "Sistemas de computación distribuida"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Paradigma de computación distribuida voluntaria: BOINC. Paradigma Grid de computación distribuida, sus características y sus aplicaciones: Virtual organizations (VO), diferencia respecto a la computación cluster y distribuida, arquitectura e implementación: OGSA, WSRF, GT. Paradigma Cloud de computación distribuida, sus características y sus aplicaciones: Utility computing, Service Level Agreements (SLA), tipo de Clouds (público, privado), diferencia respecto al Grid, servicios Cloud (IaaS, PAAS, SaaS) , arquitectura e implementación: virtualización, HDFS, Map-Reduce, infraestructura Cloud (datacenters), obstáculos para la consolidación del Cloud
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 11
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Lectura de artículo #6

Lectura del artículo propuesto. Comprensión y asimilación de los contenidos del artículo. Realización de un informe de la lectura
Objetivos: 11 12 13
Semana: 14
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Desarrollo del tema "Sistemas móviles y ubicuos"

Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
  • Teoría: Sistemas móviles y ubicuos: volatilidad, asociación, interoperabilidad, sensores y context-awareness, adaptación
  • Aprendizaje autónomo: Preparación de la clase con la ayuda del material de apoyo. Comprensión y asimilación de los contenidos del tema para su aplicación posterior
Objetivos: 12
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Informe del seminario de laboratorio #6

Preparación del seminario con la ayuda del material de apoyo. Implementación y análisis del mecanismo pedido. Realización de un informe del seminario explicando el trabajo realizado y las conclusiones extraídas
Objetivos: 10 13
Semana: 15
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Examen final

Asimilación de los conceptos del curso y realización del examen
Objetivos: 1 2 3 4 5 6 7 8 9 10 11 12
Semana: 15 (Fuera de horario lectivo)
Tipo: examen de teoría
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
9h

Metodología docente

Durante el curso se realizarán dos tipos de actividades:

a) Actividades centradas en la adquisición de conocimientos teóricos.
b) Actividades centradas en la adquisición de conocimientos mediante experimentación con la implementación y evaluación empírica en el laboratorio de los mecanismos explicados a nivel teórico.

Las actividades teóricas incluyen clases expositivas participativas donde se explican los contenidos básicos del curso, además de la lectura de artículos/informes, ya sea como preparación de las clases expositivas o como posterior elaboración para facilitar la asimilación de los conceptos importantes. Con el objetivo de trabajar la competencia transversal, los artículos estarán escritos en Inglés.

Las actividades prácticas incluyen seminarios de laboratorio donde los alumnos implementan (en grupos de 2) los mecanismos descritos en las clases expositivas. Los seminarios requieren de una preparación previa mediante la lectura del enunciado y la documentación de apoyo, y una elaboración posterior de las conclusiones obtenidas en un informe. Con el objetivo de trabajar la competencia transversal, los enunciados de los seminarios estarán escritos en Inglés.

Método de evaluación

A) Examen parcial escrito individual.
B) Examen final escrito individual.
-- B1) Evaluación de los contenidos incluidos en el examen parcial, para los alumnos que no la aprobaron.
-- B2) Evaluación de los contenidos no incluidos en el examen parcial, para todos los alumnos.
C) Evaluación de los informes de lectura y discusión de artículos.
D) Evaluación de los seminarios de laboratorio.

Para los alumnos que tengan aprobado el examen parcial (A>=5) y no hagan la parte B1 del examen final, la nota final se calculará de la siguiente manera:

Nota Final = 0.25 x A + 0.25 x B2 + 0.2 x C + 0.3 x D

En caso contrario, la nota final se calculará como sigue:

Nota Final = 0.25 x B1 + 0.25 x B2 + 0.2 x C + 0.3 x D

La evaluación de la competencia transversal es realizará mediante la evaluación de las actividades C y D, que son las que tienen el material de apoyo escrito en Inglés.

Bibliografía

Básica:

Complementaria:

Capacidades previas

Los estudiantes requieren conocimientos previos de sistemas operativos (SO) y redes de computadores (XC)