Datos Identificativos 2018/19
Asignatura (*) Internet y Sistemas Distribuidos Código 614G01023
Titulación
Grao en Enxeñaría Informática
Descriptores Ciclo Periodo Curso Tipo Créditos
Grado 1º cuatrimestre
Tercero Obligatoria 6
Idioma
Castellano
Modalidad docente Presencial
Prerrequisitos
Departamento Computación
Coordinador/a
Raposo Santiago, Juan
Correo electrónico
juan.raposo@udc.es
Profesorado
Álvarez Díaz, Manuel
Bellas Permuy, Fernando
Losada Perez, Jose
Montoto Castelao, Paula
Raposo Santiago, Juan
Correo electrónico
manuel.alvarez@udc.es
fernando.bellas@udc.es
jose.losada@udc.es
paula.montoto@udc.es
juan.raposo@udc.es
Web
Descripción general Esta asignatura céntrase no desenvolvemento de aplicacións distribuidas. Utilízase un enfoque de deseño multicapa, no que en primeiro lugar se deseña unha capa de acceso de datos, posteriormente unha capa de lóxica de negocio (capa modelo) e, finalmente, unha capa que expán a funcionalidade da aplicación como un servicio que pode ser empregado por outras aplicacións. Explícanse tamén os principais estilos arquitectónicos para deseñar aplicacións distribuidas: RPC e REST. Para ilustrar todos estes conceptos xeráis, empregaránse tecnoloxías utilizadas habitualmente na industria para estes propósitos, como JDBC, XML, servlets, HTTP e SOAP. O enfoque da asignatura é fundamentalmente práctico, polo que se proporcionan múltiples exemplos de código durante as clases teóricas, e a práctica ten un forte impacto na nota final da asignatura.

Competencias del título
Código Competencias del título
A17 Conocimiento y aplicación de las características, funcionalidades y estructura de los sistemas distribuidos, las redes de computadores e internet, y diseñar e implementar aplicaciones basadas en ellas.
B1 Capacidad de resolución de problemas
B3 Capacidad de análisis y síntesis
C2 Dominar la expresión y la comprensión de forma oral y escrita de un idioma extranjero.
C3 Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida.
C4 Desarrollarse para el ejercicio de una ciudadanía abierta, culta, crítica, comprometida, democrática y solidaria, capaz de analizar la realidad, diagnosticar problemas, formular e implantar soluciones basadas en el conocimiento y orientadas al bien común.
C6 Valorar críticamente el conocimiento, la tecnología y la información disponible para resolver los problemas con los que deben enfrentarse.

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
Conocimiento y aplicación de las características, funcionalidades y estructura de los sistemas distribuidos, las redes de computadores e Internet, y diseñar e implementar aplicaciones basadas en ellas. A17
B1
B3
C2
C3
C4
C6

Contenidos
Tema Subtema
Tema 1. Introducción a las Aplicaciones Distribuidas El problema de la integración de aplicaciones
Arquitecturas multicapa
Tema 2. Acceso a Datos Acceso a base de datos: JDBC
Acceso a datos de otras aplicaciones
Tema 3. Capa Modelo Conceptos generales de diseño basado en capas
DAOs y Persistencia
Diseño del API de Casos de Uso
Tema 4. Pruebas de Integración de la Capa Modelo Concepto de Pruebas de Integración
Recordatorio de Implementación de Pruebas de Integración de la Capa Modelo con Junit
Tema 5. Lenguajes de intercambio de datos: XML Intercambio de datos entre aplicaciones
El lenguaje XML
Introducción a los esquemas XML
Parsing de documentos XML
Tema 6: Introducción al Diseño e Implementación de Servicios Web REST Diseño por capas aplicado a la integración de aplicaciones
Diseño de servicios REST
Implementación de clientes REST: HTTP
Implementación de servicios REST: Servlets
Tema 7: Diseño e Implementación de Servicios Web SOAP El modelo RPC
Diseño de servicios web SOAP
Implementación de servicios web SOAP: JAX-WS
Tema 8: Frameworks para crear interfaces web Concepto de Sistema de Plantillas
Concepto de framework orientado a componentes
Concepto de aplicación AJAX

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral A17 B3 C6 30 22 52
Prácticas de laboratorio A17 B1 B3 C2 C3 28 36 64
Prueba de respuesta múltiple A17 B1 B3 C3 C6 2 5 7
Trabajos tutelados A17 B1 B3 C3 C4 2 20 22
 
Atención personalizada 5 0 5
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Sesión magistral Clases impartidas por el profesor mediante la proyección de diapositivas. Las clases tienen un enfoque práctico, explicándose los conceptos teóricos mediante el uso de ejemplos sencillos y casos de estudio. Las diapositivas y el código fuente de los exemplos y los casos de estudio están disponibles en la página Web de la asignatura en Campus Virtual
Prácticas de laboratorio A lo largo del cuatrimestre se realiza una práctica (en Java), en grupo, en la que el alumno utiliza de forma integrada la mayor parte de los conocimientos téoricos de la asignatura. La práctica se realiza en dos iteraciones, siendo obligatoria la entrega de ambas. En la corrección de la primera iteración, el profesor intenta garantizar que el alumno enfoca bien la resolución de la práctica. Para ello, el profesor intenta detectar errores importantes, y en ese caso, orienta al alumno hacia su resolución. En la segunda iteración el alumno corrige los errores detectados en la primera y añade las funcionalidades restantes.
Prueba de respuesta múltiple Se realizará un examen de tipo test, cuyo objetivo es comprobar que el alumno ha asimilado los conceptos correctamente. El examen tipo test se compone de un conjunto de preguntas con varias respuestas posibles, de las que sólo una es correcta. Las preguntas no contestadas no puntúan, y las contestadas erróneamente puntúan negativamente.
Trabajos tutelados Se proponen trabajos tutelados consistentes en desarrollar alguna extensión de la práctica. Requerirán que el alumno, de manera autónoma, deba estudiar tecnologías o soluciones de diseño adicionales y aplicarlas a la práctica.

Atención personalizada
Metodologías
Prácticas de laboratorio
Trabajos tutelados
Descripción
Tutorías y consultas vía correo electrónico para dudas específicas.
Presencia del profesor en el laboratorio para contestar dudas de la práctica.

Evaluación
Metodologías Competéncias Descripción Calificación
Prácticas de laboratorio A17 B1 B3 C2 C3 La práctica se estructura en 2 partes (llamadas iteraciones). Es obligatorio presentar ambas iteraciones. La corrección de cada iteración se realiza mediante una defensa de los miembros del grupo con el profesor. La corrección de la primera iteración no lleva asociada una nota, pero su entrega es obligatoria, y debe obligatoriamente cumplir con los requisitos establecidos en el enunciado da práctica para dicha iteración. El profesor pone la nota de la práctica después de la corrección de la segunda iteración. Es necesario obtener por lo menos un 5 sobre 10 en la práctica para aprobar la asignatura. 32
Prueba de respuesta múltiple A17 B1 B3 C3 C6 El examen será tipo test y puede constar tanto de cuestiones directas como de pequeños problemas de diseño que el alumno debe resolver con los conceptos explicados en teoría y que fueron usados en la parte práctica. Es necesario obtener por lo menos un 4 en el examen para aprobar la asignatura. 60
Trabajos tutelados A17 B1 B3 C3 C4 La realización de los trabajos tutelados es opcional. 8
 
Observaciones evaluación

Para superar la materia es necesario obtener como mínimo un 4 sobre 10 en el examen teórico y un 5 sobre 10 en la práctica de laboratorio, y además la media ponderada (60% examen teórico, 32% práctica y 8% trabajos tutelados) tiene que alcanzar el 5.

En el caso de alumnos matriculados a tiempo parcial se flexibilizarán las horas de defensa de prácticas para adaptarse a los horarios laborales de los alumnos, siempre dentro del plazo máximo de entrega fijado para todos los alumnos.


Fuentes de información
Básica J. Crupi, D. Alur, D. Malks (2003). Core J2EE Patterns. Prentice-Hall
B. McLaughlin (2006). Java and XML, Third Edition. O'Reilly
Martin Kalin (2009). Java Web Services: Up and Running. O'Reilly
Leonard Richardson, Sam Ruby (2007). RESTFul Web Services. O'Reilly
E. R. Harold, W. S. Means (2004). XML in a Nutshell: A Desktop Quick Reference, Third edition. O'Reilly
Recursos adicionales:

Tutorial JDBC:http://docs.oracle.com/javase/tutorial/jdbc/index.html.
Tutorial Servlets:http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html.

Complementária

E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addisson-Wesley, 1994.

K. Arnold, J. Gosling, D. Holmes, The Java Programming Language, 4th edition, Addison-Wesley, 2005.

G. Booch, I. Jacobson, J. Rumbaugh, Unified Modeling Language User Guide, 2nd edition, Addison-Wesley, 2005.


Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Bases de Datos/614G01013
Diseño Software/614G01015
Redes/614G01017

Asignaturas que se recomienda cursar simultáneamente

Asignaturas que continúan el temario
Programación Avanzada/614G01030
Integración de Aplicaciones/614G01080

Otros comentarios

Para facilitar que los alumnos con matrícula a tiempo parcial puedan cursar la materia, todos los materiales teóricos y prácticos de la asignatura estarán disponibles en línea en la aplicación https://campusvirtual.udc.es



(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías