Programación Orientada a Objetos. Curso 08/09

Práctica 4. Programación distribuida y JSF

Duración: Semanas del 04, 11 y 18 de mayo (para detalles ver el calendario de prácticas)

Entrega: 27 de Mayo.
Examen: semana del 27 de mayo (para ver la fecha de cada grupo ver el calendario)

Objetivo

Tras completar la implementación del sistema de gestión de expedientes, se propone extender dicho sistema para su uso de forma distribuida.
El objetivo de esta práctica será crear un servidor que permita acceder a los datos del sistema de forma remota, y crear una intefaz de usuario web que se comunicará con dicho servidor y proporcionará a los usuarios información sobre las notas de las asignaturas y los informes que solicite. Para simplificar el desarrollo de la práctica solo se accederá de forma remota para leer datos, además tampoco se requiere implementar autentificación.

De esta forma el sistema se podrá ejecutar dividido en 3 partes:

  1. Servidor de datos: Compuesto por un servidor del sistema que suministrará la información al cliente mediante RMI, y por el nucleo del sistema implementado en la práctica 2. El nucleo del sistema se adaptará añadiendo serialización o capacidad de ejecución remota a las clases que se considere necesario. Se ha de tener en cuenta que el cliente no creará ningún objeto remoto directamente (mediante llamada directa al constructor), de forma que todos los objetos remotos se encuentren siempre en el servidor, y los clientes solo usen las referencias a ellos (stubs).
  2. Servidor de aplicaciones web:  El servidor web contendrá la interfaz de usuario escrita JSF, que permite ejecutar parte de la interfaz en el servidor web, y parte en el cliente. Esta interfaz de usuario permitirá buscar alumnos, o asignaturas, y una vez encontrados dará la opción de mostrar los informes correspondientes. El servidor web se comunicará con el servidor de datos mediante RMI para obtener la información solicitada. Para simplificar la interfaz web se asumirá que el servidor RMI se encuentra en la misma máquina que el servidor de datos (localhost), siendo innecesario por tanto pedir al usuario los datos de conexión.
  3. Navegador: Desde cualquier browser podremos acceder al servidor web para utilizar el sistema.

Recursos

Para implementar esta práctica serán necesarios los siguientes recursos:

Pruebas

Se creará una intefaz Swing para probar el servidor de datos. Esta interfaz tendrá toda la funcionalidad que después se implementará en la interfaz web. Para añadir información se aconseja emplear la interfaz de usuario de la práctica 3, accediendo al sistema directamente, o crear los datos de prueba mediante código.

Entrega


Las prácticas se deben entregar antes de la fecha de corrección indicada al comienzo del enunciado, teniendo en cuenta las horas límite de entrega mencionadas en las normas de la asignatura. En general, el grupo del lunes tiene hasta las 12 del mediodía del mismo lunes, y todos los demás grupos tienen hasta las 12 de la noche del día anterior a la fecha de corrección.

De nuevo, siguiendo las normas de la asignatura, el fichero .zip a entregar debe incluir:

NOTA: Las entregas que no cumplan los requisitos enumerados en las normas recibirán una penalización de 0.5 puntos.

Apéndice: Sobre estas prácticas

Este apartado contiene una serie de reflexiones sobre el enfoque de estas prácticas, porqué se hacen así, y qué se va a pedir en las siguientes prácticas.

Código en los enunciados

Las prácticas de POO se diferencian de otras en que, junto con cada enunciado, se entrega bastante código. Esto se hace por los siguientes motivos:

(C) 2008-2009 Escuela Politécnica Superior, UAM