El objetivo de esta práctica consiste en realizar un servidor de un espacio de tuplas simple y clientes de demostración en Java sobre RMI. Los clientes de demostración se podrán programar libremente como applets o aplicaciones aisladas.
Los espacios de tuplas son un mecanismo simple de comunicación en una colectividad de agentes. Cada espacio actua como una colección de pares nombre-valor sobre el que se puede efectuar una de las siguientes operaciones (adecuadamente sincronizadas):
leer: dado un nombre leer el valor asociado.
escribir: dado un nombre, modificar el valor asociado, en caso de existir el par. Si no existiera el par se puede crear uno.
tomar: dado un nombre se lee el valor asociado y se destruye la copia del espacio.
Se pueden añadir más funcionalidades, como la posibilidad de notificar modificaciones, transacciones, servicio de directorio, etc.
Los
precursores de los espacios de tuplas son los mecanismos de memoria
compartida distribuida, como LINDA. Permiten realizar aplicaciones
distribuidas de una forma más sencilla, permitiendo la
implementación de mecanismos de comunicación de grupo,
con diferentes semánticas. Además se pueden añadir
más atributos a los pares nombre-valor, como tiempo de
generación, tiempo de expiración, políticas de
seguridad, etc.
Sírvase construir una clase para el espacio, y recuerde:
que es posible añadir elementos estáticos !!
que es posible sincronizar el acceso a la clase o a métodos aislados (monitores).
Empiece construyendo una aplicación no distribuida, donde el proceso comienza arreglando los aspectos relativos al espacio de nombres, y más adelante se desdobla en varias hebras (threads) que servirían como clientes.
Más tarde, distribuya la aplicación.
Muy importante: vaya documentando en documentos html el trabajo que va realizando.
El trabajo puede entregarse hasta el 9 de Junio del 2000.
Se entregará la documentación y archivos fuente en formato html en los archivos que se desee, siempre que sean accesible vía el servidor web de duero y se notifique el nombre de dichos archivos. (cerciórese de que dichos documentos son accesibles!!)
Se notificará al profesor de la asignatura mediante un correo electrónico a la dirección cllamas@infor.uva.es
Disposición final: En caso de ser modificada la fecha de entrega, se notificaría en este mismo lugar, con antelación a la fecha de entrega que figura en el punto de arriba.