Identifying Data 2022/23
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 Ciencias da Computación e Tecnoloxías da Información
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 http://campusvirtual.udc.gal
General description Esta materia céntrase no desenvolvemento de aplicacións distribuídas empregando un enfoque de deseño multicapa. No lado servidor, en primeiro lugar deseñase unha capa de acceso de datos, posteriormente unha capa de lóxica de negocio (para completar a capa modelo) e, finalmente, unha capa que expón a funcionalidade da aplicación como un servizo que pode ser empregado por outras aplicacións. Explícanse os principais estilos arquitectónicos para deseñar aplicacións distribuídas: REST e RPC. Para ilustrar todos estes conceptos xerais, empréganse tecnoloxías utilizadas habitualmente na industria para estes propósitos, como JDBC, XML, JSON, Servlets, HTTP e Apache Thrift. O enfoque da materia é fundamentalmente práctico.

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
Bloque 1. Introdución Tema 1. Introdución ó Desenvolvemento de Aplicacións Empresariais
Bloque 2. Deseño da Capa Modelo Tema 2. JDBC
Tema 3. Deseño e Implementación da Capa Modelo
Tema 4. Probas de Integración da Capa Modelo
Bloque 3. Deseño de Aplicacións Distribuídas Tema 5. Linguaxes de Intercambio de Datos: XML e JSON
Tema 6. Deseño e Implementación de Servizos Web REST
Tema 7. Deseño e Implementación de Servizos RPC

Bloque 4. Interfaces Gráficas Web Tema 8. Introdución ó Desenvolvemento de Aplicacións Web

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 29 46 75
Multiple-choice questions A17 B1 B3 C3 C6 2 5 7
Supervised projects A17 B1 B3 C3 C4 1 10 11
 
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 dispoñibles a través da plataforma de docencia da universidade.
Laboratory practice Ó longo do cuadrimestre realízase unha práctica (en Java), en grupo, na que o/a alumno/a utiliza a maior parte dos coñecementos teóricos da materia de xeito integrado. A práctica realízase en dúas iteracións, sendo obrigatoria a entrega das dúas.
Multiple-choice questions Farase un exame tipo test, co obxectivo de comprobar que o/a alumno/a 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 erroneamente puntúan negativamente.
Supervised projects Propóñense traballos tutelados opcionais (non é preciso obter unha nota mínima neles para aprobar a materia), consistentes en aplicar algunhas tecnoloxías ou técnicas de deseño adicionais á práctica. Requirirán que o estudante, de maneira autónoma, estude esas tecnoloxías ou solucións de deseño adicionais e as aplique á práctica.

Personalized attention
Methodologies
Laboratory practice
Description
Titorías e consultas vía correo electrónico ou Teams para dúbidas específicas.
Presenza do profesor no laboratorio para axudar ó estudante no desenvolvemento da práctica.

Assessment
Methodologies Competencies Description Qualification
Laboratory practice A17 B1 B3 C2 C3 A práctica estrutúrase en 2 partes, chamadas iteracións. Para desenvolver a segunda iteración será preciso ter desenvolta a primeira. A corrección da cada unha das dúas iteracións leva asociada unha nota, e a nota global da práctica calculase a partir delas. Para aprobar a materia é obrigatorio presentar ambas iteracións e obter unha nota mínima en cada unha delas. 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/a alumno/a debe resolver cos conceptos explicados en teoría e que foron usados na parte práctica. 60
Supervised projects A17 B1 B3 C3 C4 A realización dos traballos tutelados é opcional (non é preciso obter unha nota mínima neles para aprobar a materia). Pódense presentar ca segunda iteración da práctica. 8
 
Assessment comments

Para aprobar a materia é preciso obter:

  • Un mínimo de 2,5 puntos sobre 5 na avaliación de cada unha das dúas iteracións da práctica (a nota final da práctica será a suma das notas das dúas iteracións).
  • Un mínimo de 4 puntos sobre 10 no exame tipo test.
  • Un mínimo de 5 puntos (sobre 10) na nota final, que se calcula coma: 
    • Nota práctica = nota iteración 1 + nota iteración 2.
    • Nota final da materia = 0,60 * nota exame + 0,32 * nota practica + 0,08 * nota traballos tutelados.

Para os/as alumnos/as con matrícula a tempo parcial o tamaño da práctica y e os traballos tutelados será menor, sen que elo supoña un prexuízo na súa cualificación.


Sources of information
Basic J. Crupi, D. Alur, D. Malks (2003). Core J2EE Patterns. Prentice-Hall
Martin Kalin (2009). Java Web Services: Up and Running. O'Reilly
R. Abernethy (2019). Programmer’s Guide to Apache Thrift. Manning
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 adicionais:

Tutorial JDBC:http://docs.oracle.com/javase/tutorial/jdbc/index.html

Tutorial Servlets:http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html

Introducing JSON: https://www.json.org/

JSON Schema Reference: https://json-schema.org/understanding-json-schema/reference/index.html

Apache Thrift: http://thrift.apache.org/

Complementary

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

J.M. Vegas Gertrudix, Java 17 : fundamentos prácticos de programación, Ra-Ma, 2021.

J.M. Vegas Gertrudix, Java 17 : programación avanzada, Ra-Ma, 2021.

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

É preciso ter soltura na lectura de información en Inglés (toda a bibliografía, recursos Web e libros, está en inglés). 



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