A.12. Proyecto: Aplicación corporativa

12.1. Vamos a implementar una aplicación de mensajería interna para un grupo de trabajo. La aplicación nos debe permitir enviar mensajes a todos los usuarios y recibir los mensajes que hayan sido enviados por otros usuarios.

Estos mensajes constarán de un asunto y un texto. La aplicación nos debe permitir:

Esta aplicación deberá seguir el patrón MVC. Podemos encontrar una base para desarrollar la aplicación en el directorio Mensajes de las plantillas de la sesión. Encontramos ya implementado el controlador y la vista, y tenemos una plantilla para la fachada del modelo. Deberemos implementar el resto de clases para el modelo.

Para implementar la aplicación podemos basarnos en la aplicación Agenda que vimos como ejemplo en la sesión anterior.

Podemos seguir los siguientes pasos:

a) Podemos reutilizar el adaptador RMS que implementamos en la sesión de almacenamiento persistente para almacenar los mensajes en RMS.

b) Implementar el subsistema local del modelo. Esto nos debe permitir añadir y consultar los mensajes que hayamos creado.

c) Implementar un proxy remoto que nos permita acceder a la función de sincronización del servidor. Deberemos acceder a la siguiente URL:

http://www.jtech.ua.es/ejemplos/servlet/ServletMensajes

En la petición deberemos enviar codificados mediante un DataOutputStream los siguientes datos:

<long> Timestamp cliente
<int> Número de mensajes
Para cada mensaje
   Serializar mensaje

En la respuesta se recibirán los datos con un DataInputStream, llegando éstos con el siguiente formato:

<long> Timestamp servidor
<int> Numero de mensajes
Para cada mensaje
   Deserializar mensajes

Podemos utilizar la interfaz web existente en la siguiente dirección para crear y consultar mensajes desde el servidor:

http://www.jtech.ua.es/ejemplos/mensajes

De esta forma podremos hacer pruebas creando mensajes en el servidor y sincronizando desde el cliente para recibirlo, o creándolo en el cliente y comprobando si el mensaje se refleja en el servidor tras sincronizar.

d) Incorporar la posibilidad de utilizar modo online de conexión, en el que las conexiones al servidor sean automáticas cada vez que consultamos o añadimos mensajes.