Aplicaciones Distribuidas

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Tecnologías de la información)
Requisitos
  • Prerrequisito: XC
Departamento
DAC
Asignatura donde se trabaja con protocolos de nivel de aplicación de las redes de computadores y aplicaciones distribuidas, incluyendo aplicaciones para dispositivos móviles.
En concreto, se mostrará el funcionamiento de aplicaciones y servicios basados en el protocolo HTTP y otros protocolos de nivel de aplicación. También se tratará la representación e intercambio de contenidos multimedia (audio, vídeo, etc.) en streaming y descarga y el intercambio de información en redes sociales.
Se hablará de los mecanismos de seguridad a nivel de aplicación.
Finalmente, se trabajará en el desarrollo de aplicaciones móviles.

Profesores

Responsable

  • Silvia Llorente Viejo ( )

Otros

  • Jaime M. Delgado Merce ( )

Horas semanales

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

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • 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.
    • CT7.2 - Evaluar sistemas hardware/software en función de un criterio de calidad determinado.
  • 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
    • CT8.1 - Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
    • CT8.4 - Elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y la normativa vigente.

Competencias Técnicas de cada especialidad

Especialidad tecnologías de la información

  • CTI1 - Definir, planificar y gestionar la instalación de la infraestructura TIC de la organización.
    • CTI1.4 - 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 costo y calidad adecuados.
  • 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.
    • CTI2.1 - Dirigir, planificar y coordinar la gestión de la infraestructura informática: hardware, software, redes y comunicaciones.
  • 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.3 - Diseñar, implantar y configurar redes y servicios.
  • 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.

Competencias Transversales

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.
    • G1.3 - Ser resolutivo. Utilizar conocimientos y habilidades estratégicas para la creación y gestión de proyectos, aplicar soluciones sistémicas a problemas complejos, y diseñar y gestionar la innovación en la organización. Demostrar flexibilidad y profesionalidad en el desarrollo de su trabajo.

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.
    • G8.3 - Tener motivación para el desarrollo profesional y para afrontar nuevos retos. Tener motivación para la mejora continua. Disponer de capacidad de trabajo en situaciones de falta de información.

Objetivos

  1. Ser capaz de predecir el funcionamiento de los protocolos, e interpretar el contenido de los mensajes que utilizan las aplicaciones web
    Competencias relacionadas: CT6.4, CT7.2,
  2. Ser capaz de interpretar los datos en forma de documentos XML que intercambian los servicios web.
    Competencias relacionadas: CT8.1, CT7.2,
  3. Ser capaz de configurar un servidor de aplicaciones y poner en marcha una aplicación web.
    Competencias relacionadas: CTI3.3, CTI2.1, CT6.4, CTI1.4,
  4. Ser capaz de interpretar los datos que intercambian las aplicaciones distribuidas.
    Competencias relacionadas: CT8.1,
  5. Ser capaz de configurar un servidor de aplicaciones y poner en marcha servicios web.
    Competencias relacionadas: CTI3.3, CTI2.1, CT6.4, CTI1.4,
  6. Ser capaz de configurar un servidor de aplicaciones y poner en marcha aplicaciones web que hacen uso de servicios web.
    Competencias relacionadas: CTI3.3, G1.3, CTI3.2,
  7. Ser capaz de describir formatos de información existentes y explicar su uso habitual.
    Competencias relacionadas: CT8.1,
  8. Ser capaz de describir el paradigma cliente / servidor y dar ejemplos de protocolos que lo siguen.
    Competencias relacionadas: CT6.4,
  9. Ser capaz de explicar qué es una librería de comunicaciones y poner ejemplos de librerías existentes.
    Competencias relacionadas: CT8.1,
  10. Ser capaz de explicar qué es un servidor de aplicaciones y poner ejemplos de servidores de aplicaciones existentes.
    Competencias relacionadas: CT8.1,
  11. Ser capaz de describir a alto nivel las características específicas de las aplicaciones móviles.
    Competencias relacionadas: CTI3.1,
  12. Ser capaz de desarrollar una aplicación distribuida completa.
    Competencias relacionadas: G1.3, CT8.1, CT7.2, CT8.4, CTI4,
  13. Ser capaz de enumerar las diferencias entre los diferentes métodos de transmisión de contenidos multimedia.
    Competencias relacionadas: CTI3.1, CT8.1, CT6.4,
  14. Ser capaz de explicar los resultados obtenidos en la práctica "Desarrollo de aplicaciones web que hacen uso de servicios web".
    Competencias relacionadas: CTI3.1, G1.3, CTI2.1, CT8.1, CT6.4, CT7.2, CTI1.4, CTI4,
  15. Ser capaz de buscar información sobre un tema concreto, aplicarla en el laboratorio y redactar un informe que describa los resultados obtenidos.
    Competencias relacionadas: CTI3.1, G1.3, CT8.1, CT6.4,
  16. Capacidad de adaptación ante situaciones donde hay falta de información y / o cambios en los requerimientos iniciales.
    Competencias relacionadas: G8.3,
  17. Capacidad de responder a cuestiones relacionadas con el trabajo hecho en las prácticas de la asignatura
    Competencias relacionadas: G8.3,
  18. Adquirir conciencia de cómo se debe trabajar para obtener unos resultados de calidad
    Competencias relacionadas: G8.3,
  19. Capacidad para enumerar los distintos mecanismos de seguridad que se pueden aplicar a las aplicaciones distribuidas.
    Competencias relacionadas: CT8.1, CT6.4, CTI1.4,

Contenidos

  1. Introducción
    Nivel de aplicación. Modelo cliente-servidor. Invocación remota de operaciones / métodos / procedimientos. Librerías de comunicaciones existentes. Formatos de información.
  2. Desarrollo de aplicaciones y servicios basados ​​en HTTP
    Programación portales web. Servicios web. Servidores de aplicaciones.
  3. Representación e intercambio de contenidos digitales
    Formatos: texto, documentos, imagen, vídeo y metadatos.
  4. Sistemas de transmisión y distribución de contenidos multimedia
    Streaming / Descarga. Servidores de distribución.
  5. Seguridad en aplicaciones distribuidas
    Mecanismos de seguridad a nivel de aplicación.
  6. Programación de aplicaciones distribuidas con dispositivos móviles
    Características de las redes móviles. Programación de aplicaciones móviles en Android.

Actividades

Actividad Acto evaluativo


Desarrollo del tema: Introducción

Comprensión de los contenidos para poder aplicarlos en el laboratorio asociado al tema.
Objetivos: 8 9
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Laboratorio del tema: Lenguaje HTML5

Comprensión de las nuevas características del lenguaje HTML5. Uso de las herramientas de programación para comprobar y modificar su funcionamiento.
  • Laboratorio: Sesión presencial de laboratorio: Semana 1
  • Aprendizaje autónomo: Preparación de la práctica
Objetivos: 1
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Desarrollo del tema: Desarrollo de aplicaciones y servicios basados ​​en HTTP

Comprensión de los contenidos para poder aplicarlos en el laboratorio asociado al tema.
Objetivos: 2 3 5 6
Contenidos:
Teoría
5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Laboratorio del tema: Desarrollo de aplicaciones web

Comprensión de la configuración y funcionamiento de un servidor de aplicaciones para poder desarrollar aplicaciones web sencillas.
  • Laboratorio: Sesión presencial de laboratorio: Semanas 2 a 4
  • Aprendizaje autónomo: Preparación de la práctica
Objetivos: 3
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Desarrollo del tema: Representación e intercambio de contenidos digitales

Comprensión de los contenidos para poder aplicarlos en el laboratorio asociado al tema.
Objetivos: 2 7
Contenidos:
Teoría
5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Laboratorio del tema: Desarrollo servicios web

Comprensión de la configuración y funcionamiento de un servidor de aplicaciones para poder desarrollar servicios web.
  • Laboratorio: Sesión presencial de laboratorio: Semanas 5 a 7
  • Aprendizaje autónomo: Preparación de la práctica
Objetivos: 5
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
9h

Desarrollo del tema: Sistemas de transmisión y distribución de contenidos multimedia

Comprensión de los contenidos para poder aplicarlos en el laboratorio asociado al tema.
Objetivos: 13
Contenidos:
Teoría
5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Laboratorio del tema: Desarrollo aplicaciones web que hacen uso de servicios web

Comprensión de la configuración y funcionamiento de un servidor de aplicaciones para poder desarrollar aplicaciones web que hacen uso de servicios web.
  • Laboratorio: Sesión presencial de laboratorio: Semanas 8 y 9
  • Aprendizaje autónomo: Preparación de la práctica
Objetivos: 5 6
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Primer Control teoría

Control de 2 horas de duración. Se evalúa el contenido de los temas 1. Introducción, 2. Desarrollo de aplicaciones y servicios basados ​​en HTTP, 3. Representación e intercambio de contenidos.
Objetivos: 1 4 7 8 9 10 16 18
Semana: 10
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Entrevistas laboratorio (En clase de laboratorio)

Explicación del trabajo realizado en la práctica "Desarrollo aplicaciones web que hacen uso de servicios web"
  • Laboratorio: Sesión presencial de laboratorio: Semana 10
  • Aprendizaje dirigido: Fuera de horas de clase
  • Aprendizaje autónomo: Preparación entrevista
Objetivos: 14
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Entrevistas laboratorio

Entrevistas para evaluar la práctica de laboratorio "Desarrollo aplicaciones web que hacen uso de servicios web"
Objetivos: 14 17
Semana: 11
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
3h
Aprendizaje autónomo
2h

Desarrollo del tema: Seguridad en aplicaciones distribuidas

Compresión de los distintos mecanismos de seguridad que se pueden utilizar a nivel de aplicación, como por ejemplo, firma digital, cifrado, claves simétricas y asimétricas, privacidad o autenticación.
Objetivos: 1 2 4 19
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Laboratorio del tema: Práctica exploratoria

Comprensión de la información encontrada sobre el tema escogido y redacción de un informe que describa los resultados.
  • Laboratorio: Sesión presencial de laboratorio: Semanas 11 to 14
  • Aprendizaje autónomo: Preparación de la práctica
Objetivos: 15 16 18
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Desarrollo del tema: Programación de aplicaciones distribuidas con dispositivos móviles

Comprensión de los contenidos para poder aplicarlos en el laboratorio asociado al tema.
Objetivos: 4 8 9 11
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Sesiones de repaso

Planteamiento de dudas sobre la materia al profesor correspondiente. Preparación del control y del examen final

Contenidos:
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Segundo Control Teoría

Control de 2 horas de duración. Se evalúa el contenido de los temas 4. Sistemas de transmisión y distribución de contenidos multimedia, 5. Seguridad en aplicaciones distribuidas, 6. Programación de aplicaciones distribuidas con dispositivos móviles
Objetivos: 1 2 3 4 5 6 8 10 12 13 19
Semana: 14
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Examen final de la asignatura


Objetivos: 1 2 3 4 5 6 7 8 9 10 11 12 13 17 19
Semana: 15 (Fuera de horario lectivo)
Tipo: examen final
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
3h
Aprendizaje autónomo
9h

Metodología docente

La asignatura está formada por clases teóricas y de laboratorio. En las clases teóricas se introducirán los conceptos necesarios para realizar las prácticas y se plantearán problemas y casos relacionados con la materia. El alumno dispondrá de una colección de problemas que se resolverán en clase.

El laboratorio es una parte importante de la asignatura, ya que permitirá alcanzar los conceptos teóricos desde una vertiente de carácter más práctico. El alumno dispondrá del enunciado de la práctica antes de asistir al laboratorio. Los enunciados se colgarán en la web de la asignatura. Para cada práctica habrá una breve explicación teórica y un guión de cada práctica. Las sesiones de laboratorio presenciales estarán programadas para que se hagan después de haber visto los conceptos relacionados en las clases teóricas. En caso de no ser así, se hará una breve explicación al laboratorio para su correcto funcionamiento. El alumno deberá preparar la práctica, repasando los conceptos teóricos relacionados antes de la sesión presencial.

Método de evaluación

La evaluación de la asignatura tendrá dos componentes: Teoría (60%) y laboratorio (40%).

La nota de laboratorio se calculará a partir de la nota obtenida en las prácticas y la nota de las entrevistas de laboratorio.

La nota de teoría se calculará a partir de los controles y/o el examen final, que se divide en dos partes, como los controles.

La fórmula para calcular la nota de la asignatura será:

NF = MAX(0.3*EF1, 0.3*C1) + MAX(0,3*EF2, 0.3*C2) + 0.4 * NL

Donde:
NF = Nota final de la asignatura.
EF1 = Examen Final de teoría, primera parte, mismo temario C1.
EF2 = Examen Final de teoría, segona parte, mismo temario C2.
C1 = Nota del Primer Control de teoría.
C2 = Nota del Segundo Control de teoría.
NL = Nota de Laboratorio. Se calculará en base a la nota media de las prácticas (50%) y la nota de los informes y entrevistes de prácticas (50%). En caso de no entregar los informes de prácticas, se deberá realizar un control de laboratorio (50%).

Evaluación de competencias:
Las competencias genéricas de la asignatura se evalúan en el laboratorio y valen el 40% de la nota total de la asignatura. Además, de algunas actividades prácticas, se extraerá la nota de las competencias genéricas, tal y como se explica a continuación.

La competencia genérica Emprendeduria e Innovación se evaluará en la práctica exploratoria.
La competencia genérica Actitud Adecuada Ante el Trabajo se evaluará en las entrevistas de laboratorio.

Calificación de las competencias genéricas: Pueden tener valores A, B, C o D (donde A corresponde a un nivel excelente, B corresponde a un nivel deseado, C corresponde a un nivel suficiente y D corresponde a un nivel no superado).

Bibliografía

Básica:

Complementaria:

Web links

Capacidades previas

- Conocimientos avanzados de programación en lenguaje Java.
- No se requiere saber HTML, pero se utilitzarà durante todo el curso.
- Inglés técnico como para leer documentación, manuales y estándares.
- Conocimientos básicos sobre redes de computadores: Protocolos de nivel de red y transporte, funciones nivel de aplicación, especialmente protocolo HTTP.
- Conocimientos básicos sobre sistemas operativos: UNIX a nivel de usuario, Windows a nivel de usuario, organización de un SO, drivers, procesos, comunicación entre procesos, estructuras de datos.