Programación Orientada a Objetos. Curso 2010/2011

Práctica 3. Interfaces de usuario y RMI

Calendario Lunes Martes Miércoles Jueves Viernes Observaciones
Inicio 28/03 29/03 30/03 31/03 01/04
Evaluación 16/05 10/05 11/05 12/05 20/05
Entrega 16/05 10/05 11/05 12/05 16/05 Entrega el día anterior. Los grupos que entregan el lunes lo hacen 2 horas antes del comienzo de la clase.


Objetivos

En esta práctica el alumno se formará en las siguientes capacidades:

Además, continuará su formación con respecto a los siguientes conceptos:

Descripción del proyecto

El trabajo a realizar consiste en la implementación de un sistema gráfico de gestión de una tienda virtual, en el que, partiendo de las prácticas anteriores, conserve todas sus funcionalidades pero, como novedad, permita la interacción con el usuario de forma gráfica.

El programa distinguirá el acceso a dos tipos de usuarios: los clientes y los administradores. Una vez se han identificado, cada uno de ellos tendrá una serie de tareas específica, única dependiendo del tipo de usuario (más información en enunciado de la práctica 2). El programa debe permitir la creación (registro) de nuevos clientes.

Se recuerda que el archivo XML deberá actualizarse cada vez que en el programa se realice un cambio (nuevo usuario, editar datos del almacén, etc.) que afecte a los datos de la tienda, de forma que ésta sea persistente.

Se deja a juicio del alumno el diseño de la interfaz gráfica, pero se destaca que deberían primar la facilidad, claridad y fluidez de ejecución en su manejo frente a otras características. Se aconseja, no obstante, la utilización de componentes gráficas avanzadas (p.e., JList, JTable) en la medida de lo posible. Además, las ventanas no deben ser rígidas (no resizeable), siendo obligatorio la utilización de layout managers.

En esta práctica, además, se añade el concepto de cliente y servidor, con el sentido de que el servidor es un elemento que produce unos recursos, consumidos por el cliente. En nuestro caso, el servidor será la Tienda, y el cliente, un objeto de tipo Cliente. Los recursos consumidos serán los Artículos. De esta manera, los objetos cliente y servidor podrán encontrarse en máquinas distintas, haciendo uso de una arquitectura basada en objetos distribuidos RMI. Se deberá controlar la concurrencia de manera que dos clientes no puedan comprar el mismo recurso en un instante de tiempo.

El Administrador se puede asumir que se encuentra en la misma máquina que la Tienda, por lo que no necesitará acceder a ella de manera remota; por esto mismo, el registro de nuevos administradores se puede hacer manualmente en el XML si se prefiere.

Se valorará el uso adecuado de objetos por valor u objetos remotos, según se adecúe a cada caso, así como la utilización de callbacks. Naturalmente estas funcionalidades precisarán la ampliación de las clases internas e interfaces con los métodos (y en su caso datos) necesarios para efectuar estas operaciones, así como otras declaraciones (excepciones, Serializable, etc.).

Por todo esto, esta práctica se puede dividir en tres partes:

  1. Creación de las interfaces gráficas y gestión de las funcionalidades implementadas en prácticas anteriores.
  2. Añadir sincronización a los métodos sensibles. Para ello, bastará con probar con más de un cliente accediendo a la vez a la tienda, pero sin necesidad de que este acceso sea distribuido (dos o más hilos).
  3. Añadir RMI y objetos distribuidos para permitir una arquitectura de cliente-servidor. De esta manera, el cliente y la tienda podrán no sólo estar en hilos, sino en procesos distintos (a diferencia de la parte anterior).

A lo largo del desarrollo de la práctica, los profesores de la asignatura dejarán disponible el material necesario para cada una de estas partes.

Consideraciones:

Opcionalmente:

Entrega

Las prácticas se deben entregar antes de la fecha de evaluación indicada al comienzo del enunciado, teniendo en cuenta las horas límite de entrega mencionadas en 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.

(C) 2010-2011 Escuela Politécnica Superior, UAM