Datos Identificativos 2013/14
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
Prerrequisitos
Departamento Tecnoloxías da Información e as Comunicacións
Coordinador/a
Pan Bermudez, Carlos Alberto
Correo electrónico
alberto.pan@udc.es
Profesorado
Álvarez Díaz, Manuel
Bellas Permuy, Fernando
Losada Perez, Jose
Montoto Castelao, Paula
Pan Bermudez, Carlos Alberto
Raposo Santiago, Juan
Correo electrónico
manuel.alvarez@udc.es
fernando.bellas@udc.es
jose.losada@udc.es
paula.montoto@udc.es
alberto.pan@udc.es
juan.raposo@udc.es
Web
Descripción general Esta asignatura se centra en el desarrollo de aplicaciones distribuidas. Se utiliza un enfoque de diseño multicapa, en el que en primer lugar se diseña una capa de acceso de datos , posteriormente una capa de lógica de negocio (capa modelo) y, finalmente, una capa que expone la funcionalidad de la aplicación como un servicio que puede ser utilizado por otras aplicaciones. Se explican también los principales estilos arquitectónicos para diseñar aplicaciones distribuidas: RPC y REST. Para ilustrar todos estos conceptos generales, se usarán tecnologías utilizadas habitualmente en la industria para estos propósitos, como JDBC, XML, servlets, HTTP y SOAP. El enfoque de la asignatura es fundamentalmente práctico, por lo que se proporcionan múltiples ejemplos de código durante las clases teóricas, y la práctica tiene un fuerte impacto en la nota final de la asignatura.

Competencias del título
Código Competencias de la titulación
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.

Resultados de aprendizaje
Competencias de materia (Resultados de aprendizaje) Competencias de la titulación
Coñecemento e aplicación das características, funcionalidades e estrutura dos sistemas distribuídos, as redes de computadores e internet, e deseñar e implementar aplicacións baseadas nelas. A17

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. Introducción a los Servicios Web Integración de Plataforma: Servicios Web
El estilo RPC
El estilo REST
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: Diseño e Implementación de Servicios Web SOAP Diseño de servicios web SOAP
Implementación de servicios web SOAP: JAX-WS
Tema 7: 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
Seminario 1: 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 Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral 30 39.9 69.9
Prácticas de laboratorio 20 30 50
Trabajos tutelados 10 20 30
 
Atención personalizada 0 0 0
 
(*)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 transparencias. Las clases tienen un enfoque totalmente práctico, explicando los conceptos teóricos mediante el uso de ejemplos sencillos y casos de estudio. Las transparencias y el código fuente de los ejemplos 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 las que el alumno utiliza la mayor parte de los conocimientos teóricos de manera integrada. La práctica se realiza en tres iteraciones, realizándose una entrega obligatoria en cada una. El objetivo de las dos primeras iteraciones es intentar 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 tercera iteración el alumno corrige los errores detectados en las anteriores y añade el resto de funcionalidades.
Trabajos tutelados Se realiza el seguimiento en detalle a cada grupo de la elaboración de la práctica de la asignatura

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

Evaluación
Metodologías Descripción Calificación
Prácticas de laboratorio La práctica se estructura en 3 partes (llamadas iteraciones). Es obligatorio presentar las tres iteraciones. La corrección se realiza mediante una defensa de los miembros del grupo con el profesor. La corrección de las dos primeras iteraciones de la primera iteración no llevan asociada una nota (pero su entrega es obligatoria). Por el contrario, se pretende asegurar que el alumno enfoque bien el desarrollo de la práctica. El profesor pone la nota de la práctica durante la corrección de la tercera iteración. 40
Sesión magistral 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 utilizando los conceptos impartidos en teoría y practicados en la parte práctica 60
Trabajos tutelados Evaluación incluida en la parte práctica 0
 
Observaciones evaluación

La nota final se compone de dos partes: 60% para el examen teórico y 40% para el práctico. Sin embargo, para aprobar la asignatura es necesario además tener una nota mínima de 5 en la práctica y de 4 en el examen.


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
Programación Avanzada/614G01030
Integración de Aplicaciones/614G01080

Asignaturas que se recomienda cursar simultáneamente

Asignaturas que continúan el temario
Diseño Software/614G01015
Redes/614G01017

Otros comentarios


(*) 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