Ejercicios de aplicaciones corporativas

20.1. En el directorio Agenda de las plantillas de la sesión tenemos implementada una aplicación de ejemplo. Se trata de una aplicación de agenda distribuida, que nos permite registrar citas que constarán de fecha y hora, asunto, lugar, contacto y posibilidad de programar una alarma.

Las citas que añadamos se sincronizarán con el servidor de la aplicación, de forma que tendremos las mismas citas en cliente y servidor. El servidor de la aplicación se incluye en el directorio ejemplos de las plantillas de la sesión de red. Podremos añadir citas utilizando directamente una interfaz web incluida en la aplicación web, o bien añadirlas en el móvil y sincronizarlas con el servidor.

Podemos encontrar la interfaz web en la dirección:

http://www.jtech.ua.es/ejemplos-j2me/citas

Si añadimos la cita en el servidor, cuando sincronicemos desde el móvil veremos dicha cita en nuestro dispositivo móvil. Si añadimos la cita en el cliente móvil, cuando sincronicemos desde éste la cita se añadirá al servidor.

Además podemos utilizar la aplicación en modo online, que conectará al servidor cada vez que solicitemos consultar o añadir datos. De esta forma no hará falta sincronizar manualmente para actualizar la información, aunque tendrá el inconveniente de que realizará un mayor número de transferencias a través de la red.

Probar la aplicación para estudiar su funcionamiento. Una vez hecho esto, consultar el código fuente de la aplicación, en él podemos ver:

20.2. 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-j2me/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-j2me/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.