Receptor de Tareas vía web

Descripción

En la entrega de tareas vía correo electrónico en ramos como Estructura de Datos y Algoritmos (EDA) y Diseño y Programación Orientada a Objetos (DPOO) existe una constante incertidumbre al enviar las tareas por este método, pues no se sabe si la tarea habrá llegado a destino o si el correo será rebotado, entre otras cosas. De ahí que surge la necesidad de poseer un medio más seguro y confiable para poder realizar la entrega de las tareas.

Solución

  • Diseñar un applet que permita la recepción de las tareas vía web.
  • Esta applet se comunicará con un proceso residente en un equipo remoto, el cual deberá recepcionar el archivo.
  • Al recibir la tarea agregará sus datos a un archivo donde se registrarán las tareas recibidas, con fecha, nombre del archivo y tamaño del mismo.
  • Así mismo se ofrece la opción de ver una lista con los archivos recibidos y el peso de cada uno y la hora en que fue recibida (según la hora del servidor)

    Implementación

    Se separó el problema en dos partes, un cliente y un servidor.
    El Cliente (código) presenta una interface que permite al usuario escoger que archivo desea enviar. Luego el applet se comunica por medio de un socket con el cliente, para posteriormente proceder a enviarle el archivo.
    Así mismo, el Cliente muestra en una zona de texto, diversos mensajes para indicar al usuario el estado de la operación, o si ha ocurrido algún problema.
    A continuación se ve el diagrama del clases del cliente:
    Diagrama de las clases contenidas en la Applet.

    El Servidor (código) implementa un ServerSocket para estar escuchando un puerto, y al realizarse una conexión crea un Thread que recibe la información enviada por el cliente, esta información es: tamaño del archivo, el archivo y el nombre de archivo, en ese orden. Primero crea un archivo temporal en base al número de Thread y luego lo renombra al nombre del archivo original, para al final guardar todos los datos antes dichos en un archivo de texto.
    A continuación se ve el diagrama del clases del server:
    Diagrama de las clases contenidas en el Server.