Solicitud de información

Sistemas Distribuidos

Código Asignatura:
1398
Nº Créditos ECTS:
6
Tipo:
Obligatoria
Duración:
Semestral
Idioma:
Castellano
Plan de estudios:
Profesor(es):
Año académico:
2023-24

La información sobre los datos de contacto y el horario de tutorías se encuentra publicada en el aula virtual de la asignatura.

Descripción

Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación y las telecomunicaciones.

La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.

Esta asignatura explora las formas en que los programas, ejecutándose en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.

Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.

Antes de matricular la asignatura, verifique los posibles requisitos que pueda tener dentro de su plan. Esta información la encontrará en la pestaña "Plan de estudios" del plan correspondiente.

Competencias generales

  • Capacidad para comprender y aplicar la legislación necesaria durante el desarrollo de la profesión de Ingeniero Técnico de Telecomunicación, y las especificaciones, reglamentos y normas de obligado cumplimiento.
  • Capacidad de resolver problemas con iniciativa, toma de decisiones, creatividad, y de comunicar y transmitir conocimientos, habilidades y destrezas, comprendiendo la responsabilidad ética, y profesional de la actividad del Ingeniero Técnico de Telecomunicación.
  • Capacidad para realizar mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes planificación de tareas y otros trabajos análogos en su ámbito específico de la telecomunicación.

Competencias específicas

  • Capacidad para conocer y utilizar los fundamentos de la programación en redes, sistemas y servicios de telecomunicación.

Competencias transversales

  • Capacidad de análisis y síntesis.
  • Comunicación verbal y escrita para transmitir ideas y decisiones con claridad y rigor en la exposición.
  • Resolución de problemas.
  • Razonamiento crítico.
  • Aprendizaje autónomo.
  • Creatividad.
  • Iniciativa y espíritu emprendedor.

Resultados del aprendizaje

  • Conocimiento y utilización de los fundamentos de programación en redes, sistemas y servicios de telecomunicación.
  • Conocimiento de las características, funcionalidades y estructura de los sistemas distribuidos y capacidad para participar activamente en su especificación, diseño, implementación y mantenimiento.

Metodología

La metodología adoptada en esta asignatura para el aprendizaje y evaluación de sus contenidos se encuentra adaptada al modelo de formación continuada y a distancia de la UDIMA. Los conocimientos de la asignatura se adquieren a través del estudio razonado de todas las unidades didácticas del manual, así como del material didáctico complementario que se ponga a disposición de los estudiantes en el aula virtual. Además, se complementa con la acción tutorial, que incluye asesoramiento personalizado, intercambio de impresiones en los debates habilitados en foros y demás recursos y medios que ofrecen las nuevas tecnologías de la información y la comunicación. Por otra parte, el aprendizaje también se apoya en la realización de las actividades previstas en el aula virtual, que son de tres tipos (de evaluación continua, de aprendizaje y controles), y que vienen recogidas en el apartado “Contenidos y programación”.

Para ampliar esta información, se recomienda consultar la pestaña “Metodología y exámenes” de la titulación.

Durante el desarrollo de la asignatura se realizarán actividades prácticas que permitan adquirir las competencias y resultados de aprendizaje necesarios para la superación de la asignatura.

Las actividades prácticas de la asignatura se coordinarán desde el Aula de Laboratorio de la misma.

Dedicación requerida

La dedicación requerida para esta asignatura de 6 créditos ECTS es de 150 horas, que se encuentran distribuidas de la siguiente manera:

  • Estudio de las Unidades Didácticas: 30%
  • Material complementario. Lectura de artículos/Visionado de vídeos en la web: 5%
  • Supuestos, casos prácticos y prácticas de laboratorio: 25%
  • Búsqueda de información: 20%
  • Redacción o realización de informes: 10%
  • Acción tutorial: 5%
  • Evaluación 5%

Tutorías

El profesor aporta un seguimiento individualizado de la actividad del estudiante para asegurar las mejores condiciones de aprendizaje mediante la tutorización a través de las herramientas de la plataforma educativa y/o de las tutorías telefónicas. En estas tutorías los estudiantes pueden consultar a los profesores las dudas acerca de la materia estudiada.

Materiales didácticos

Para el desarrollo del aprendizaje teórico sobre el que versará el examen final se ha seleccionado el siguiente manual, a partir del cual se estudiarán las unidades didácticas que se corresponden con la descripción de los contenidos de la asignatura:

Manual de la asignatura:
David Lizcano (2020) "Sistemas Distribuidos", Ed: CEF.-

Además se puede consultar la siguiente bibliografía complementaria:

M. L. Liu (2004). Computación Distribuida, Fundamentos y Aplicaciones. Pearson Addison Wesley.

G. Coulouris et al (2001). “Sistemas Distribuidos, Conceptos y Diseño”. Addison-Wesley.

Tanenbaum (2010). “Sistemas Distribuidos, Principios y Paradigmas”. Pearson.

Finalmente, el profesor podrá poner a disposición del estudiante cualquier otro material complementario voluntario al hilo de las unidades didácticas o en una carpeta de material complementario.

Contenidos y programación

SEMANAS (*) UNIDADES DIDÁCTICAS ACTIVIDADES DIDÁCTICAS
Semana 1

Unidad 1. Introducción a la computación distribuida
1.1 Conceptos básicos
1.2 Computación monolítica, distribuida, paralela y cooperativa
1.3 Ventajas, inconvenientes y desafíos de los sistemas distribuidos
1.4 Conceptos previos sobre sistemas operativos: procesos y concurrencia
1.5 Conceptos previos sobre redes
1.6 Conceptos previos sobre Ingeniería del Software
1.7 Organización de este manual
1.8 Conclusiones

  • Estudio de la unidad

Semanas 2 y 3

Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos
2.1 Comunicación entre procesos
2.2 Sincronización de eventos
2.2.1 Supuesto 1: envío síncrono y recepción síncrona
2.2.2 Supuesto 2: envío asíncrono y recepción síncrona
2.2.3 Supuesto 3: envío síncrono y recepción asíncrona
2.2.4 Supuesto 4: envío asíncrono y recepción asíncrona
2.3 Interbloqueos y temporizadores
2.4 Representación y codificación de datos
2.5 Clasificación y descripción de los paradigmas de computación distribuida
2.6 Java como entorno de desarrollo de sistemas distribuidos

  • Estudio de la unidad
  • Actividad de Aprendizaje 1
Semana 4

Unidad 3. API de paso de mensajes con Sockets
3.1 API de sockets, tipos y diferencias
3.2 Sockets de tipo datagrama
3.3 Sockets de tipo stream
3.4 Solución a interbloqueos: temporizadores y eventos no bloqueantes
3.5 Seguridad en sockets
3.6 Conclusiones

  • Estudio de la unidad
  • Actividad de Evaluación Continua 1
  • Control 1
Semana 5

Unidad 4. Paradigma Cliente-Servidor
4.1 Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor
4.2 Proceso de diseño e implementación de un sistema cliente-servidor
4.3 Problemas de direccionamiento no orientado a conexión con clientes anónimos
4.4 Servidores iterativos y concurrentes
4.5 Información de estado y de sesión
4.5.1 Información de sesión
4.5.2 Información de estado global
4.6 Clientes complejos recibiendo respuestas asíncronas desde el lado servidor
4.7 Servidores complejos actuando como intermediadores entre varios clientes

  • Estudio de la unidad
Semana 6

Unidad 5. Comunicación por Multidifusión
5.1 Introducción a la multidifusión y usos comunes
5.2 Fiabilidad y ordenación en los sistemas multidifusión
5.3 Implementación Java de sistemas de multidifusión
5.4 Ejemplo de uso de la comunicación en grupo entre iguales
5.5 Implementaciones de multidifusión fiable
5.6 Multitransmisión a nivel de aplicación
5.7 Conclusiones

  • Estudio de la unidad
  • Actividad de Aprendizaje 2
Semanas 7 y 8

Unidad 6. Objetos Distribuidos
6.1 Introducción
6.2 Arquitectura de una aplicación basada en objetos distribuidos
6.3 Tecnologías de sistemas de objetos distribuidos
6.4 Capas software de Java RMI en el lado cliente y en el lado servidor
6.5 API Java RMI de objetos distribuidos
6.6 Pasos para construir una aplicación RMI
6.7 Uso de callback en RMI
6.8 Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI
6.9 Conclusiones

  • Estudio de la unidad
  • Actividad de Evaluación Continua 2
  • Control 2
Semana 9

Unidad 7. HTML, XML, HTTP y CGI
7.1 Introducción
7.2 Lenguaje HTML
7.3 Lenguaje XML
7.4 Protocolo de Internet: HTTP
7.5 Uso de contenidos dinámicos: manejo de formularios y CGI
7.6 Manejo de datos de estado y sesión en Internet
7.7 Conclusiones

  • Estudio de la unidad
Semana 10

Unidad 8. Objetos distribuidos multi-lenguaje: CORBA
8.1 Introducción
8.2 Arquitectura CORBA
8.3 Lenguaje de descripción de interfaz en CORBA
8.4 Protocolos de interoperabilidad GIOP
8.5 Referencias a objeto remoto IOR
8.6 Servicio de nombrado CORBA
8.7 Ejemplo en IDL Java
8.8 Pasos de diseño, compilación y ejecución en IDL Java
8.9 Conclusiones

  • Estudio de la unidad
  • Actividad de Aprendizaje 3
Semanas 11 y 12

Unidad 9. Servlets y Servicios Web
9.1 Introducción
9.2 Applets
9.3 Introducción a los Servlets
9.4 Servlets HTTP y su funcionamiento
9.5 Mantenimiento de la información de estado en Servlets
9.5.1 Campos ocultos de formularios
9.5.2 Cookies
9.5.3 Variables de Servlet
9.5.4 Objeto session
9.6 Servicios web
9.7 Protocolo SOAP
9.8 Breve reseña de la arquitectura REST
9.9 Conclusiones

  • Estudio de la unidad
  • Actividad de Evaluación Continua 3
  • Actividad de Evaluación Continua 4
Semanas 13, 14 y 15

Unidad 10. Paradigmas Avanzados de Computación Distribuida
10.1 Introducción
10.2 Paradigma MOM
10.3 Paradigma de agentes software móviles
10.4 Paradigma de espacio de objetos
10.5 Computación colaborativa
10.6 Tendencias futuras en computación distribuida
10.7 Conclusiones

  • Estudio de la unidad
  • Actividad de Aprendizaje 4
  • Control 3
  • Control 4
Resto de semanas hasta finalización del semestre Estudio y preparación para el examen final, celebración del examen final y cierre de actas.

(*) Las fechas concretas se pueden consultar en el aula virtual de la asignatura y en la pestaña de “Precios, Calendario y Matriculación” de la titulación.

Sistema de evaluación

Durante el estudio de esta asignatura, el proceso de evaluación del aprendizaje es continuo y contempla la realización de:

- Una evaluación continua a lo largo del curso a través de acciones didácticas que supone el 40% de la nota final. Incluye la realización de los diferentes tipos de actividades de evaluación, de aprendizaje y controles.

  • Actividades de aprendizaje (AA): actividades que permiten evaluar el desarrollo de las competencias al hilo del desarrollo de las unidades didácticas. Pueden adoptar el formato de foro, cuestionario, glosario u otros.
  • Controles: actividades que permiten evaluar la adquisición de aspectos conceptuales y prácticos de la asignatura. Toman la forma de cuestionarios.
  • Actividades de evaluación continua (AEC): actividades que permitan evaluar el alcance de ciertos hitos académicos a lo largo del cuatrimestre. Pueden adoptar el formato de informes, cuestionarios, casos prácticos, comentarios de texto, etc.

- Un examen final presencial que supone el 60% de la nota final. Está dirigido a la valoración de las competencias y conocimientos adquiridos por el estudiante. El examen se evaluará de 0 a 10, tendrá una duración estimada de 90 minutos y será de tipo mixto, con una parte tipo test con 10 preguntas de opción múltiple (4 puntos) y una parte de desarrollo teórico-práctica con dos preguntas (6 puntos). Dentro de la parte tipo test, los errores penalizan con el objetivo de corregir las respuestas acertadas por azar. 

Para poder presentarse al examen final presencial, en cualquiera de las convocatorias, es imprescindible cumplir los siguientes requisitos relacionados con la evaluación continua: realizar la totalidad de los controles contemplados en el apartado de “Contenidos y programación” de la asignatura y alcanzar una calificación mínima de 2 puntos sobre cuatro en la evaluación continua del curso.

El estudiante que se presenta al examen sin cumplir los requisitos para ello, será calificado con un cero en el examen final presencial y consumirá convocatoria.

Cuadro resumen del sistema de evaluación

Tipo de actividad Número de actividades planificadas Peso calificación
Actividades de aprendizaje
4
10%
Actividades de Evaluación Continua (AEC)
4
20%
Controles
4
10%
Examen final presencial
Si
60%
TOTAL 100%

Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.

Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre. El estudiante que no se presente a la convocatoria de febrero y/o de julio ni a la de septiembre, perderá automáticamente todos los trabajos realizados a lo largo del curso. Deberá en este caso matricularse de nuevo en la asignatura.

Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.

Originalidad de los trabajos académicos

Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.

Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.

Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.

Sistema de calificaciones

El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:

0 – 4.9: Suspenso (SU)
5.0 – 6.9: Aprobado (AP)
7.0 – 8.9: Notable (NT)
9.0 – 10: Sobresaliente (SB)
Matrícula de honor (MH)

(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).

La matrícula de honor se concede cuando el profesor lo considere oportuno en función de la excelencia de las actividades realizadas por el estudiante y las calificaciones obtenidas por el resto del grupo. No obstante, los criterios académicos de su concesión corresponden al departamento responsable de cada grado.