Extraordinaria práctica de programación cliente-servidor y Java RMI

Asignatura: Sistemas Distribuidos - Convocatoria de Septiembre. (Curso: 2001-2002)

Ingeniero Técnico en Informática.

 
Esta práctica se entregará en un disquete el día del examen de la convocatoria extraordinaria de la asignatura (14 de Septiembre de 2002). También podrá entregarse por correo electrónico en una fecha previa, sin embargo, para que quede constancia de la recepción será preciso que el profesor de la asignatura confirme convenientemente la recepción del correo electrónico. Todo esto sin perjuicio de que el profesor pueda requerir el alumno las explicaciones que considere oportunas sobre el funcionamiento de la solución a la práctica. Las prácticas se entregarán por parejas o individualmente, y son una condición importante para obtener resultados positivos en la convocatoria extraordinaria correspondiente.

otros modos de operación

Se pueden añadir más funciones al proxy, como por ejemplo, que substituya o elimine el acceso a ciertos recursos, para acelerar la comunicación, que emplee otros clientes para descargar árboles de recursos web, etc.

Se deja a la imaginación del alumno implementar estos otros modos de operación del caché.


  1. Control del modo de operación del caché

El control del modo de operación del caché se efectuará mediante una aplicación Java que interactuará vía RMI con el proxy (como se indica en la Figura 1). Esta aplicación es lo que llamamos la Interfaz de control. Esta interfaz deberá controlar de modo adecuado el ciclo de operación del caché en que nos encontramos para la siguiente petición web.

Esta aplicación será interactiva, de modo que recibe en tiempo de ejecución los parámetros de funcionamiento. La implementación de la interfaz no es relevante, pudiendo ser de tipo textual, o de tipo gráfico mediante AWT o Swing. Esta aplicación se ejecutará en alguna máquina, suponiendo de partida que no será aquella donde se ejecutará el proxy que hemos programado.


  1. Cuestiones a tener en cuenta

Como es normal, cada vez que se trata de resolver una tarea compleja, sobre todo cuando estamos problemas nuevos y complejos, debemos acotar la funcionalidad del sistema. Mi punto de vista particular, es empezar con un sistema sencillo que tenga la funcionalidad básica, e ir incrementando sus funciones. En esta lista no están enumerados todos los problema. Según vayan apareciendo más, trataré de incluirlos aquí.

mantenimiento de la información en el caché

Las respuestas del servidor deberán soportarse mediante archivos. UNIX. Se generarán nombres de archivos únicos, para que no haya colisión de nombres. La asociación deberá plasmarse usualmente en un array asociativo cuya clave será el nombre del recurso (URL), y el contenido asociado a la clave, el nombre del archivo.

La siguiente pregunta es, ¿qué pasa cuando el proxy muere? ¿Se mantiene el índice, en un archivo estático, junto al contenido de las respuestas del servidor? En este caso, y a diferencia de la aplicación ya hecha a lo largo del curso, deberá ser estático. Esto no quiere decir que cada vez que localicemos un recurso haya que mirar un archivo, aunque: cada vez que arranquemos el proxy debemos comprobar si existe un caché previo

La siguiente pregunta es, ¿vamos a llenar el disco de archivos? Lo ideal sería que la interfaz del proxy nos notifique interactivamente cuánta memoria llevamos consumida por el caché, para poder habilitarla o inhabilitarla a gusto del consumidor.

Finalmente hay que decir, que este enunciado es más simple que en el caso de la práctica para junio, pero no quiere decir que no lleve el mismo trabajo. En cierta medida es más sencillo recurrir a la programación en Java para resolver algunos aspectos, aun así hay que resolver correctamente el problema de la conexión interfaz-proxy.


Este enunciado corresponde a una  práctica de Sistemas Distribuidos de la Ingeniería Técnica en Informática de Gestión y Sistemas de la Universidad de Valladolid, del curso 2001-2002. Y el derecho de copia y explotación (c) me pertenece a mí (el profesor de la asignatura) y a mis alumnos :-)

El profesor de la asignatura no se hace responsable de la utilización indebida que pueda hacerse de las aplicaciones construidas siguiendo la especificación de esta práctica.