Identifying Data 2018/19
Subject (*) Internet and Distributed Systems Code 614G01023
Study programme
Grao en Enxeñaría Informática
Descriptors Cycle Period Year Type Credits
Graduate 1st four-month period
Third Obligatory 6
Language
Spanish
Teaching method Face-to-face
Prerequisites
Department Computación
Coordinador
Raposo Santiago, Juan
E-mail
juan.raposo@udc.es
Lecturers
Álvarez Díaz, Manuel
Bellas Permuy, Fernando
Losada Perez, Jose
Montoto Castelao, Paula
Raposo Santiago, Juan
E-mail
manuel.alvarez@udc.es
fernando.bellas@udc.es
jose.losada@udc.es
paula.montoto@udc.es
juan.raposo@udc.es
Web
General description 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.

Study programme competencies
Code Study programme competences
A17 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.
B1 Capacidade de resolución de problemas
B3 Capacidade de análise e síntese
C2 Dominar a expresión e a comprensión de forma oral e escrita dun idioma estranxeiro.
C3 Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.
C4 Desenvolverse para o exercicio dunha cidadanía aberta, culta, crítica, comprometida, democrática e solidaria, capaz de analizar a realidade, diagnosticar problemas, formular e implantar solucións baseadas no coñecemento e orientadas ao ben común.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.

Learning aims
Learning outcomes Study programme competences
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
B1
B3
C2
C3
C4
C6

Contents
Topic Sub-topic
Tema 1. Introducción ás Aplicacións Distribuidas O problema da integración de aplicacións
Arquitecturas multicapa
Tema 2. Acceso a Datos Acceso a base de datos: JDBC
Acceso a datos doutras aplicacións
Tema 3. Capa Modelo Conceptos xeráis de deseño basado en capas
DAOs e Persistencia
Deseño da API de Casos de Uso
Tema 4. Probas de Integración da Capa Modelo Concepto de Probas de Integración
Recordatorio da Implementación de Probas de Integración da Capa Modelo con Junit
Tema 5. Linguaxes de intercambio de datos: XML Intercambio de datos entre aplicacións
A linguaxe XML
Introducción ós esquemas XML
Parsing de documentos XML
Tema 6: Introducción o Deseño e Implementación de Servizos Web REST Deseño por capas aplicado á integración de aplicacións
Deseño de servizos REST
Implementación de clientes REST: HTTP
Implementación de servizos REST: Servlets
Tema 7: Deseño e Implementación de Servizos Web SOAP O modelo RPC
Deseño de servizos web SOAP
Implementación de servizos web SOAP: JAX-WS
Tema 8: Frameworks para facer interfaces web Concepto de Sistema de Plantillas
Concepto de framework dirixido a componentes
Concepto de aplicación AJAX

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Guest lecture / keynote speech A17 B3 C6 30 22 52
Laboratory practice A17 B1 B3 C2 C3 28 36 64
Multiple-choice questions A17 B1 B3 C3 C6 2 5 7
Supervised projects A17 B1 B3 C3 C4 2 20 22
 
Personalized attention 5 0 5
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Guest lecture / keynote speech Clases impartidas pólo profesor mediante a proxección de diapositivas. As clases teñen un enfoque práctico, explicando os conceptos teóricos mediante o uso de exemplos sinxelos e casos de estudo. As diapositivas e o código fonte dos exemplos e os casos de estudo están disponibles na páxina Web da asignatura en Campus Virtual
Laboratory practice Ó longo do cuatrimestre realízase unha práctica (en Java), en grupo, na que o alumno utiliza a maior parte dos coñecementos teóricos de xeito integrado. A práctica realízase en dúas iteracións, sendo obrigatoria a entrega das dúas. Na corrección da primeria iteración, o profesor intenta garantir que o alumno enfoca ben a resolución da práctica. Para elo, o profesor tenta detectar erros importantes, e nese caso, orienta ó alumno cara a súa resolución. Na segunda iteración o alumno corrixe os erros detectados na primeira e engade as funcionalidades restantes.
Multiple-choice questions Farase un exame tipo test, co obxectivo de comprobar que o alumno asimilou os conceptos correctamente. O exame tipo test componse dun conxunto de preguntas con varias respostas posibles, das que só unha é correcta. As preguntas non contestadas non puntúan, e as contestadas erróneamente puntúan negativamente.
Supervised projects Propóñense traballos tutelados consistentes en desenvolver algunha extensión da práctica. Requerirán que o alumno, de maneira autónoma, deba estudar tecnoloxías ou solucións de deseño adicionais e aplicalas á práctica.

Personalized attention
Methodologies
Laboratory practice
Supervised projects
Description
Tutorías e consultas vía correo electrónico para dúbidas específicas.
Presenza do profesor no laboratorio para contestar dúbidas da práctica.

Assessment
Methodologies Competencies Description Qualification
Laboratory practice A17 B1 B3 C2 C3 A práctica estructúrase en 2 partes (chamadas iteracións). É obrigatorio presentar ambas iteracións. A corrección de cada iteración realízase mediante unha defensa dos membros do grupo có profesor. A corrección da primeira iteración non leva asociada unha nota, pero a súa entrega é obrigatoria, e debe obrigatoriamente cumprir cos requisitos establecidos no enunciado da práctica para a devandita iteración. O profesor pon a nota da práctica despóis da corrección da segunda iteración. É preciso obter polo menos un 5 sobre 10 na práctica para aprobar a materia. 32
Multiple-choice questions A17 B1 B3 C3 C6 O examen será tipo test e pode constar tanto de cuestións directas como de pequenos problemas de deseño que o alumno debe resolver cos conceptos explicados en teoría e que foron usados na parte práctica. É necesario obter polo menos un 4 no exame para aprobar a materia. 60
Supervised projects A17 B1 B3 C3 C4 A realización dos traballos tutelados é opcional. 8
 
Assessment comments

Para superar a materia é necesario obter como mínimo un 4 sobre 10 no exame teórico e un 5 sobre 10 na práctica de laboratorio, e ademáis a media ponderada (60% teoría, 32% práctica e 8% traballos tutelados) ten que acadar o 5.

No caso de alumnos matriculados a tempo parcial flexibilizaranse as horas de defensa de prácticas para adaptarse ós horarios laborais dos alumnos, sempre dentro do prazo máximo de entrega fixado para todos os alumnos.


Sources of information
Basic 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.

Complementary

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.


Recommendations
Subjects that it is recommended to have taken before
Databases/614G01013
Software Design/614G01015
Networks/614G01017

Subjects that are recommended to be taken simultaneously

Subjects that continue the syllabus
Advanced Programming/614G01030
Application Integration/614G01080

Other comments

Para facilitar que os alumnos con matrícula a tempo parcial poidan cursar a materia, tódolos materiais teóricos e prácticos da asignatura estarán disponibles en liña na aplicación https://campusvirtual.udc.es



(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.