Guía docente de la asignatura
(3883) SISTEMAS DISTRIBUIDOS

Curso académico 2025/2026

  1. Identificación

    1. De la asignatura

      Curso Académico
      2025/2026
      Titulación
      GRADO EN INGENIERÍA INFORMÁTICA
      Nombre de la asignatura
      SISTEMAS DISTRIBUIDOS
      Código
      3883
      Curso
      CUARTO
      Carácter
      OPTATIVA
      Número de grupos
      1
      Créditos ECTS
      6.0
      Estimación del volumen de trabajo
      150.0
      Organización temporal
      2º Cuatrimestre
      Idiomas en que se imparte
      Español
      Curso Académico 2025/2026
      Titulación

      GRADO EN INGENIERÍA INFORMÁTICA

      Nombre de la asignatura SISTEMAS DISTRIBUIDOS
      Código 3883
      Curso CUARTO
      Carácter OPTATIVA
      Número de grupos 1
      Créditos ECTS 6.0
      Estimación del volumen de trabajo 150.0
      Organización temporal 2º Cuatrimestre
      Idiomas en que se imparte Español
    2. Del profesorado: Equipo docente

      • SEVILLA RUIZ, DIEGO Docente: GRUPO 1 Coordinación de los grupos: GRUPO 1 Coordinador de la asignatura

        Categoría

        PROFESORES TITULARES DE UNIVERSIDAD

        Área

        ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES

        Departamento

        INGENIERÍA Y TECNOLOGÍA DE COMPUTADORES

        Correo electrónico / Página web / Tutoría electrónica

        dsevilla@um.es Tutoría electrónica:

        Teléfono, horario y lugar de atención al alumnado

        Duración:
        A
        Día:
        Miércoles
        Horario:
        11:00-14:00
        Lugar:
        868887571, Facultad de Informática B1.3.029 (DESPACHO PROF. DIEGO SEVILLA RUIZ)
        Observaciones:
        (también tutorías electrónicas)
      • PERALES GOMEZ, ANGEL LUIS Docente: GRUPO 1 Coordinación de los grupos:

        Categoría

        PROFESOR AYUDANTE DOCTOR

        Área

        ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES

        Departamento

        INGENIERÍA Y TECNOLOGÍA DE COMPUTADORES

        Correo electrónico / Página web / Tutoría electrónica

        angelluis.perales@um.es Tutoría electrónica: No

        Teléfono, horario y lugar de atención al alumnado

  2. Presentación

    La asignatura introduce al alumno a los problemas de diseño e implementación de aplicaciones distribuidas. Así, aborda los temas presentes en los textos clásicos de sistemas distribuidos, pero desde un punto de vista práctico, citando ejemplos de software real y actual. La asignatura se centra en los problemas derivados de la escalabilidad, eficiencia y distribución de aplicaciones, sobre todo en el entorno de Internet. Incluye el uso de patrones de diseño de aplicaciones distribuidas eligiendo ejemplos basados en sistemas RPC, de mensajería (MOM), servicios REST, sistemas de Cloud Computing, Orquestación de servicios, Virtualización, contenedores (Docker, Swarm, Kubernetes), etc Finalmente, la asignatura introduce al alumno en sistemas de bases de datos NoSQL y procesamiento Map/Reduce.

    Además del contenido teórico y práctico de la asignatura, el alumno tendrá la posibilidad de estudiar artículos de investigación en diversos temas relacionados con la asignatura para realizar una presentación/resumen a la clase y un trabajo de investigación.

  3. Condiciones de acceso a la asignatura

    1. Incompatibilidades

      No constan

    2. Requisitos

      No constan

    3. Recomendaciones

      Sería interesante que el alumno contara con conocimientos de lenguajes de programación Orientados a Objetos como Java y C++, principios de concurrencia, así como de técnicas de diseño basadas en Patrones, Modelado y Orientación a Objetos. También es importante que el alumno tenga nociones de programación de aplicaciones en entornos UNIX y manejo de contenedores.

  4. Competencias

    1. Competencias básicas

      No constan

    2. Competencias de la titulación

      • CGII1: Capacidad de análisis y síntesis.
      • CGII2: Capacidad de organización y planificación.
      • CGII3: Comunicación oral y escrita en la lengua nativa.
      • CGII4: Conocimiento de una lengua extranjera.
      • CGII5: Conocimientos de informática relativos al ámbito de estudio.
      • CGII6: Capacidad de gestión de la información.
      • CGII7: Resolución de problemas.
      • CGII8: Toma de decisiones.
      • CGII9: Trabajo en equipo.
      • CGII11: Trabajo en un contexto internacional.
      • CGII12: Habilidades en las relaciones interpersonales.
      • CGII14: Razonamiento crítico.
      • CGII16: Aprendizaje autónomo.
      • CGII17: Adaptación a nuevas situaciones.
      • CGII18: Creatividad
      • CGII19: Liderazgo
      • CGUM3: Ser capaz de gestionar la información y el conocimiento en su ámbito disciplinar, incluyendo saber utilizar como usuario las herramientas básicas en TIC.
      • CGUM6: Capacidad para trabajar en equipo y para relacionarse con otras personas del mismo o distinto ámbito profesional.
      • CGUM7: Desarrollar habilidades de iniciación a la investigación.
      • CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
      • CEII5: Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.
      • CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
      • CEII9: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
      • CEII12: Conocimiento y aplicación de elementos básicos de economía y de gestión de recursos humanos, organización y planificación de proyectos, así como la legislación, regulación y normalización en el ámbito de los proyectos informáticos.

    3. Competencias transversales y de materia

      • CM1 Conocer las diversas posibilidades que existen a la hora de programar, de manera eficiente, un Sistema Distribuido
      • CM2 Aprender a identificar los cuellos de botella en el funcionamiento de las aplicaciones que se ejecutan en varios ordenadores simultáneamente
      • CM3 Aprender cómo el diseño de aplicaciones distribuidas difiere del diseño de aplicaciones convencionales
      • CM4 Ser capaz de aplicar de forma efectiva las tendencias actuales de desarrollo de aplicaciones distribuidas
      • CM5 Ser capaz de trabajar sobre un artículo científico, reproduciendo los resultados y obteniendo conclusiones, presentándolas en clase
      • TI2 Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados
      • TI4 Capacidad para seleccionar, diseñar, desplegar, integrar y gestionar redes e infraestructuras de comunicaciones en una organización
      • TI5 Capacidad para seleccionar, desplegar, integrar y gestionar sistemas de información que satisfagan las necesidades de la organización, con los criterios de coste y calidad identificados
      • TI6 Capacidad de concebir sistemas, aplicaciones y servicios basados en tecnologías de red, incluyendo Internet, web, comercio electrónico, multimedia, servicios interactivos y computación móvil
      • TI7 Capacidad para comprender, aplicar y gestionar la garantía y seguridad de los sistemas informáticos

  5. Contenidos

    1. Teoría

      Tema 1: Introducción a los Sistemas Distribuidos

      Sistemas Distribuidos: Introducción y Conceptos // Sistemas Distribuidos versus Sitemas Centralizados // Sistemas Operativos Distribuidos // Middleware: Tipos // Sistemas Cloud // Introducción a los objetivos, patrones de diseño y herramientas conceptuales de la asignatura

      Tema 2: Paradigmas de programación de Sistemas Distribuidos

      IPC y Sistemas RPC: Sistemas de Objetos Distribuidos // Introducción a sistemas de Middleware, lenguajes de descripción de interfaces y mappings a lenguajes de programación // Paradigma de servicios (SOA, Service Oriented Architectures) // Message-Oriented Middleware // Sistemas de colas // Sistemas REST // Microservicios // Orquestación de servicios

      Tema 3: Programación de servicios REST

      Tendencias arquitecturales en Software Distribuido // ¿Servicios Web? // Introducción a REST // Comparación con Servicios Web // Patrones en desarrollo REST: Uniform Contract // Addressing Resources // Entity Linking // Redirection // Content Negotiation // Idempotent Capability // Optimistic Consistency // Anti-patterns // Etc

      Tema 4: Microservicios y Orquestación, uso en Cloud

      El paradigma de microservicios // Virtualización de servicios // Orquestación // Sistemas síncronos vs sistemas asíncronos // Implantación en el Cloud

      Tema 5: Middleware orientado a mensajes y programación basada en colas

      Tema 6: Bases de datos NoSQL y Map/Reduce

      Introducción a las bases de datos NoSQL // Agregación vs tuplas // Características de las diferentes bases de datos NoSQL // Distribución y Consistencia // Map-Reduce // Ejemplos de uso práctico

    2. Prácticas

      • Práctica 1: Tecnologías REST

        Implementación de servicios REST

        Relacionado con:
        • Tema 1: Introducción a los Sistemas Distribuidos
        • Tema 2: Paradigmas de programación de Sistemas Distribuidos
        • Tema 3: Programación de servicios REST
      • Práctica 2: Arquitectura de servicios distribuida y virtualizada

        Introducción a los microservicios // Virtualización // Orquestación de servicios // Servicios de mensajería

        Relacionado con:
        • Tema 4: Microservicios y Orquestación, uso en Cloud
        • Tema 5: Middleware orientado a mensajes y programación basada en colas
      • Práctica 3: Tecnologías NoSQL

        Introducción a la tecnología NoSQL // JSON y otros modelos de datos ligeros // Bases de datos NoSQL (CouchDB, MonogoDB, Memcache) // Map-Reduce

        Relacionado con:
        • Tema 6: Bases de datos NoSQL y Map/Reduce

  6. Actividades Formativas

    Actividad Formativa Metodología Horas Presencialidad
    A1: Actividades con grupo grande de alumnos entre las que se encuentran la presentación en el aula de los conceptos propios de la materia mediante metodología expositiva con lecciones magistrales participativas y medios audiovisuales. También se contemplan en este grupo las actividades de evaluación teórico prácticas. 28.0 40.0
    A2: Actividades con grupo mediano en el aula de resolución de problemas, seminarios, charlas, ejercicios basados en el aprendizaje orientado a proyectos, estudios de casos, exposición y discusión de trabajos relativas al seguimiento individual y/o grupal de adquisición de las competencias. 28.0 12.5
    A3: Actividades con grupo pequeño en el laboratorio relacionadas con la componente práctica de las asignaturas, desarrollo de trabajos con equipo técnico especializado, desarrollo de programas, etc. 2.0 37.5
    A4: Tutorías individualizadas o en grupo muy pequeño orientadas a la dirección, supervisión y asesoría por parte del un profesor de la asignatura, del tutor en el caso de Trabajo Fin de Grado, supervisión del tutor de empresa en el caso de Prácticas de Empresa que de forma periódica constate y redirija el trabajo del alumno hacia la consecución de los objetivo marcados. 2.0 10.0
    A5: Estudio y trabajo autónomo orientado a la asimilación de contenidos, realización de problemas, ejercicios o redacción de informes técnicos o memorias descriptivas, desarrollo de proyectos o prácticas individuales o en 90.0 0.0
    Totales 150,00

  7. Horario de la asignatura

    https://www.um.es/web/estudios/grados/informatica/2025-26#horarios

  8. Sistemas de Evaluación

    Identificador Denominación del instrumento de evaluación Criterios de Valoración Ponderación
    IE1 Examen teórico-práctico. En este instrumento incluimos desde el tradicional examen escrito o tipo test hasta los exámenes basados en resolución de problemas, pasando por los de tipo mixto que incluyen cuestiones cortas o de desarrollo teórico junto con pequeños problemas. También se incluye aquí la consideración de la participación activa del alumno en clase, la entrega de ejercicios o realización de pequeños trabajos escritos y presentaciones.

    En este caso, el examen será práctico, en forma de entrevista con el profesor para defender el desarrollo realizado No habrá examen sobre la teoría porque se supone que el correcto desarrollo de la parte práctica implica el conocimiento de la parte de teoría La entrevista incluirá cuestiones relativas a las tres partes en las que se dividen las prácticas

    70.0
    IE2 Informe técnico. En este instrumento incluimos los resultados de actividades prácticas, o de laboratorio, junto con sus memorias descriptivas. Los resúmenes del estado del arte o memorias de investigación sobre temas concretos. Y la posibilidad de realizar entrevistas personales o presentaciones de los trabajos realizados también entran en esta categoría.

    Realización, entrega y exposición de un proyecto de investigación sobre una tecnología distribuida proporcionado por el profesor (se propondrán varios al principio de la asignatura) Opcional Distribución: 30% total (15% trabajo + 15% exposición con realización de vídeo)

    30.0

  9. Fechas de exámenes

    https://www.um.es/web/estudios/grados/informatica/2025-26#examenes

  10. Resultados del Aprendizaje

    • Conocer las ventajas de los sistemas distribuidos sobre los sistemas centralizados
    • Conocer los distintos paradigmas y tecnologías que interactúan para el desarrollo de aplicaciones distribuidas
    • Ser capaz de realizar el diseño de aplicaciones que se ejecutarán en diferentes sucursales físicamente distribuidas
    • Ser capaz de, a través de patrones de diseño, diseñar de forma eficiente aplicaciones distribuidas, identificando las diferencias fundamentales con las aplicaciones en un solo ordenador
    • Conocer en profundidad los paradigmas de programación de llamada a procedimiento remoto, de mensajería asíncrona y sistemas de colas
    • Ser capaz de desplegar de forma eficiente en tiempo y coste una aplicación distribuida en un servicio de Cloud
    • Conocer y saber aplicar técnicas avanzadas de balanceo de carga, tolerancia a fallos, servicios transaccionales y de información distribuida
  11. Bibliografía

    Grupo: GRUPO 1

    Bibliografía básica

    Bibliografía complementaria

    No constan

  12. Observaciones

    La parte obligatoria de la asignatura (parte práctica) debe superarse con al menos 3,5 puntos sobre 7. El trabajo de investigación, opcional, sumará una puntuación de hasta 3 puntos, sumando como máximo 1,5 por el trabajo en sí y 1,5 por la presentación.

    El alumno, con las partes presentadas, deberá sumar al menos 5 puntos para superar la asignatura. En el caso de no presentar los boletines de prácticas, la calificación será de "no presentado". En caso de haber presentado los boletines de prácticas y no haber conseguido al menos 5 puntos en total (práctica trabajo opcional), su nota será "suspenso" con la correspondiente ponderación. Las partes aprobadas se guardan hasta la siguiente convocatoria de febrero.

    En esta asignatura se ven aspectos de ODS 9 (Industria, innovación e infraestructura), ya que los sistemas distribuidos se utilizan para mejorar los sistemas industriales y ODS 7 (Energía asequible y no contaminante), ya que la distribución del procesamiento en dispositivos pequeños ayuda a la disminución de la potencia energética necesaria.

    NECESIDADES EDUCATIVAS ESPECIALES

    Aquellos estudiantes con discapacidad o necesidades educativas especiales podrán dirigirse al Servicio de Atención a la Diversidad y Voluntariado (ADYV - https://www.um.es/adyv) para recibir orientación sobre un mejor aprovechamiento de su proceso formativo y, en su caso, la adopción de medidas de equiparación y de mejora para la inclusión, en virtud de la Resolución Rectoral R-358/2016. El tratamiento de la información sobre este alumnado, en cumplimiento con la LOPD, es de estricta confidencialidad.

    REGLAMENTO DE EVALUACIÓN DE ESTUDIANTES

    El artículo 8.6 del Reglamento de Evaluación de Estudiantes (REVA) prevé que "salvo en el caso de actividades definidas como obligatorias en la guía docente, si el o la estudiante no puede seguir el proceso de evaluación continua por circunstancias sobrevenidas debidamente justificadas, tendrá derecho a realizar una prueba global".

    Se recuerda asimismo que el artículo 22.1 del Reglamento de Evaluación de Estudiantes (REVA) estipula que "el o la estudiante que se valga de conductas fraudulentas, incluida la indebida atribución de identidad o autoría, o esté en posesión de medios o instrumentos que faciliten dichas conductas, obtendrá la calificación de cero en el procedimiento de evaluación y, en su caso, podrá ser objeto de sanción, previa apertura de expediente disciplinario".