Doble Grado en International Computer Engineering and Management of Business and Technology

Proyectos en arquitectura distribuida

Descripción
Esta asignatura se mueve en sintonía con el mercado de componentes y los entornos e desarrollo de aplicaciones sobre plataformas distribuidas. El objetivo principal es introducir al alumno en el paradigma de diseño, gestión y desarrollo de aplicaciones distribuidas y en los conceptos relacionados con el mercado de componentes, siempre manteniendo el punto de actualidad necesario. Además de esta primera prospección, se ofrece al alumno un marco para que este se adentre en la arquitectura Java EE. Finalmente, se tratan de forma general distintas tecnologías, soluciones y/o plataformas emergentes, que se espera que sean o son estándares en un futuro próximo, como: Struts 2, Java ServerFaces, Spring, Hadoop, Grid, WebServices, SOAP, etc.
Tipo asignatura
Tercer - Obligatoria
Semestre
Primero
Curso
4
Créditos
4.00
Conocimientos previos

Se recomienda que el alumno tenga conocimientos previos de programación en Java i se desarrolle correctamente en el lenguaje de modelado UML.

Objetivos

Objetivo 1
Introducir al alumno en diferentes arquitecturas i especificaciones i especificaciones existentes para el desarrollo de aplicaciones distribuidas.

Objetivo 2
El alumno debe alcanzar un conocimiento teórico y práctico de las diferentes plataformas expuestas en la asignatura.

Objetivo 3
Aprender a trabajar en el diseño i desarrollo de entornos distribuidos.

Objetivo 4
Capacitar al estudiante a analizar un problema i seleccionar la tecnología que más se adecue.

Objetivo 5
Capacitar al estudiante para gestionar la información e investigar, ser autosuficiente para encontrar soluciones para resolver diferentes problemas.

Contenidos

1. Arquitecturas distribuidas
1. Sistemas distribuidos
1. Características de los sistemas distribuidos
2. Tipos de sistemas distribuidos
2. Paradigma cliente-servidor
1. Características
3. Evolución de la información dentro de las empresas
4. La informática en las empresas actuales
5. Servicios en una arquitectura cliente-servido

2. Arquitecturas de componentes Server-Side
1. Introducción
1. Enterprise Java Beans (EJB´s)
2. Necesidades de las arquitecturas Server-Side
1. Componente
2. Ventajas de usar componentes
3. Herramientas en una arquitectura de componentes
4. Java: un lenguaje ideal para las arquitecturas de componentes
5. Arquitectura de componentes multicapa
1. Arquitectura a 2 capas
2. Arquitectura a 3 capas
6. Soluciones antecedentes para arquitecturas de componentes
1. Microsoft Distributed Internet Applications architecture(DNA)
2. The object Management group
3. Java 2 Platform Enterprise Edition (J2EE)

3. Tecnologías de Java Standard Edition
1. Introducción
1. Java SE Runtime Environment (JRE)
2. Java SE Develpment Kit (JDK)
2. Remote Method Invocation (RMI)
1. Introducción
2. Propiedades de RMI
3. Arquitectura de RMI
4. Bootsrapping
5. Serialización en Java
6. Ejercicio "Xat"
2. Java Naming and Directory Interace (JNDI)
1. Servicio de nombres
2. Servició de directorio
3. Proveedores de servicios
4. Arquitectura JNDI
5. Conceptos de JNDI
6. Programación usando JNDI
7. Pasos básicos para localizar un objeto des de un cliente
3. Java DataBase Conectivity(JDBC)
1. Java y las Bases de datos
2. JDBC
3. Sistemas gestores de bases de datos (SGBD)
4. Structured Query language (SQL)
5. Arquitectura JDBC
6. Modelo de dos y tres capas
7. Drivers de JDBC
8. Programación JDBC

4. Java Enterprise Edition (Java EE)
1. Diferencias entre java EE i Java SE
1. Java SE
2. Java EE
3. Java ME
4. Java FX
2. Enterprise Applications
1. Aplicaciones estratificadas por capas
3. Servidores Java EE
1. Contenedores Java EE
2. Servidores Java EE en el mercado

4. Enterprise JavaBeans
1. Tipos de Enterprise Java Beans
2. Servicios del conenedor
3. Changelog de los EJB
5. Enterprise Session Beans
1. Stateless Session Beans
2. Stateful Session Beans
3. Singleton Session Bean
6. Message Driven Beans
1. Java Messaging Service (JMS)
7. Legacy Beans
1. Container Managed Persistence
2. Bean Managed Persistence

5. Sesiones: Hablemos de distribuida

Metodología

La asignatura tiene dos vertientes diferenciadas, se divide en dos bloques: el teórico y el práctico, estos bloques se trabajan simultáneamente durante todo el curso académico.

1) Clases magistrales, el profesor introduce, forma al alumno en las plataformas que componen el eje principal de la asignatura. Las clases magistrales ocupan aproximadamente un 37.5% de las horas lectivas de la asignatura.
2) Sesiones de laboratorio, Representante durante el curso académico el profesor presenta algunos ejemplos prácticos sobre la temática expuesta en clase. Estas representan aproximadamente un 37.5% de las horas lectivas de la asignatura.
3) Sesiones: "Hablemos de distribuida", es una prospección que hace el alumno en cualquier tema relacionado con las arquitecturas, tecnologías y/o soluciones a la asignatura desarrollado y presentado por el estudiante.
4) Sesiones online, son una reproducción de las clases magistrales disponibles para el alumno a la intranet de la asignatura.
5) Practicas en grupo, se intenta cubrir la parte práctica de la asignatura, es donde se trabajará utilizando las bases teóricas vistas en clase. El estudiante tendrá la posibilidad de diseñar y desarrollar utilizando las plataformas introducidas en las clases magistrales y en las sesiones de laboratorio. La asignatura tiene dos prácticas preestablecidas más un ejercicio evaluable de punto de control.

La asignatura tiene dos vertientes diferenciadas, se divide en dos bloques: el teórico y el práctico, estos bloques se trabajan simultáneamente durante todo el curso académico.

1) Clases magistrales, el profesor introduce, forma al alumno en las plataformas que componen el eje principal de la asignatura. Las clases magistrales ocupan aproximadamente un 37.5% de las horas lectivas de la asignatura.
2) Sesiones de laboratorio, Representante durante el curso académico el profesor presenta algunos ejemplos prácticos sobre la temática expuesta en clase. Estas representan aproximadamente un 37.5% de las horas lectivas de la asignatura.
3) Sesiones: "Hablemos de distribuida", es una prospección que hace el alumno en cualquier tema relacionado con las arquitecturas, tecnologías y/o soluciones a la asignatura desarrollado y presentado por el estudiante.
4) Sesiones online, son una reproducción de las clases magistrales disponibles para el alumno a la intranet de la asignatura.
5) Practicas en grupo, se intenta cubrir la parte práctica de la asignatura, es donde se trabajará utilizando las bases teóricas vistas en clase. El estudiante tendrá la posibilidad de diseñar y desarrollar utilizando las plataformas introducidas en las clases magistrales y en las sesiones de laboratorio. La asignatura tiene dos prácticas preestablecidas más un ejercicio evaluable de punto de control.

Evaluación

Para evaluar la asignatura se tendrán en cuenta diferentes puntos, estos son:

A. Exámenes
C. Exámenes tipo test
F. Informes/trabajos hechos en grupo
G. Trabajos prácticos usando el ordenador
I. Presentaciones

Nota final = Nota teoría + Nota práctica

Nota teoría: 40%
Examen convocatoria ordinaria - A, C
Examen convocatoria extraordinaria - A, C

Nota práctica: 60%
Ejercicios laboratorio - G
Práctica Java EE - F,G
Sesiones: Hablemos de distribuida - F, I

Requisitos:
1) Para presentarse al examen las prácticas deben estar presentadas
2) La teoría y la práctica se deben aprobar por separado

Criterios evaluación

1. Conocimientos generales básicos sobre el área de estudio [A,C,G,I]
2. comunicación oral y escrita en la propia lengua [A,F,I]
3. Habilidades de gestión de la información (habilidad para buscar y analizar información proveniente de fuentes diversas) [F,I]
4. Resolución de problemas [A,F,G]
5. Toma de decisiones [A,G]
6. Conocimientos en alguna especialidad de formación [I]
7. Capacidad crítica y autocrítica [F,I]
8. Trabajo en equipo [F,G]
9. Capacidad para comunicarse con personas no expertas en la materia [I]
10. Capacidad de aplicar los conocimientos en la práctica [F,G]
12. Capacidad para adaptarse a nuevas situaciones [A]

Bibliografía básica

1) Bill Burke, Richard Monson-Haefel. Enterprise JavaBeans 3.0.O'Reilly Media, Inc.2006. ISBN:059600978X
2) Ed Roman, Rima Patel Sriganesh, Gerald Brose. Mastering Enterprise JavaBeans. Wiley. 2004 ISBN: 0764576828
3) Ed Roman, Scott W.Ambler, Tyler Jewell. Mastering Enterprise JavaBeans. Wiley. 2002. ISBN: 0-471-41711-4
4) Oracle webpage: http://www.oracle.com
5) JBoss webpage: http://www.jboss.org
6) Glassfish webpage: http://glassfish.java.net
7) Netbeans webpage: http://www.netbeans.org

Material complementario

1) UML Distilled, a brief guide to the standard Object Modeling Language. Martin Fowler. Ed Addison Wesley
2) Mastering EJB and the Java 2 Enterprise Edition. Ed Roman.
3) Scott McLean, James Naftel, Kim Williams. Microsoft .NET Remoting. Microsoft press. 2002. ISBN: 0735617783
4) Keith Ballinger. NET Web Services: Architecture and Implementation. Addison Wesley Professional. 2003. ISBN: 0321113594
3) Adam Freeman, Allen Jones, Adam Freeman. Microsoft .NET XML Web Services Step by Step. Microsoft press. 2002. ISBN: 0735617201
4) Jeffrey Richter. Applied Microsoft .NET Framework Programming. Microsoft press. 2002. ISBN: 0735614229