Sei sulla pagina 1di 4

Proyecto RMI

Clculo de Pi por el mtodo de Montecarlo

Manuel Candal Iglesias


30/12/2009

Objetivo
Creacin de tres programas: Servidor, Cliente y Monitor para el clculo de Pi por el mtodo de Montecarlo de forma distribuida. Un nmero indeterminado de programas cliente enviarn peticiones de clculo a 4 servidores. Un programa monitor la carga de hilos en cada uno de los 4 servidores. Se utilizan callbacks en la comunicacin servidor-cliente, monitor-cliente y threads en el clculo del servidor. Cada servidor presenta la clase stub en su propio servidor web, para que los clientes y el monitor hagan stub-downloading.

Materiales
1. Eclipse 3.51 for Java Developers Plugins y libreras: RMI Plug-in for Eclipse v2.0.2.11 randomX con tcnica LEcuyer para la generacin de nmeros pseudoaletorios2

2. Sun Virtual Box 3.0.12 - 5 Imgenes Linux DSL 4.4.103 con JDK 1.6.0_17

Procedimientos
El proyecto fue desarrollado utilizando Eclipse como plataforma de desarrollo. Los binarios se colocaron en cada uno de los servidores virtuales (Linux DSL sobre Virtual Box) En cada uno de los servidores se gener el stub correspondiente de servidor montecarlo. Esta clase stub se coloc en el servidor web de Linux DSL (Monkey) en la carpeta /opt/monkey/htdocs para permitir el stub downloading por el cliente. Tanto el programa cliente, como el programa monitor poseen una interfaz grfica para el control de la comunicacin con el servidor.

1 2

http://www.genady.net/rmi/index.html http://www.fourmilab.ch/hotbits/source/randomX/randomX.html 3 http://www.damnsmalllinux.org/

Servidor
El programa servidor se arranca indicando ciertos parmetros: Parmetros RMI o java.rmi.server.codebase Indica a los clientes que accedan al servidor, donde encontrar las clases stub del servidor. o java.rmi.server.hostname Establece la direccin IP del servidor (usado internamente en el programa) Parmetros generales: o java.security.manager Activacin del sistema de seguridad de Java necesario para consultar variables globales del sistema. o java.security.policy Archivo con las polticas de seguridad de acceso al servidor. o ServidorID En este parmetro se indica el id de servidor nico.

Una vez arrancado se registra en el registro RMI en el puerto 1099 con el nombre de montecarlo". En la implementacin del servidor se han diseado dos interfaces, uno con las funciones visibles para los clientes y otro con las funciones visibles para el monitor. Los clientes solicitan el clculo de la cantidad de puntos aleatoria dentro del primer cuadrante con radio unidad. El clculo se realiza utilizando hilos independientes. Cada vez que un cliente lanza la peticin se crea un hilo, de esa forma el servidor queda libre para atender ms peticiones. Cuando el hilo termina, se lanza un evento y se notifica al cliente el resultado de la operacin. Si el proceso es largo y el cliente se desconecta del servidor, se paran todos los hilos de ese cliente. Esto se hace para que el servidor no haga clculos innecesarios.

Cliente
El cliente intenta conectar con los 4 servidores indicados en una lista. Una vez chequeados repartir el nmero de pares solicitados entre los servidores disponibles. Una vez que el ltimo servidor termine el clculo se reunirn todos los resultados y se presenta el valor de Pi calculado. La comunicacin de fin de clculo se notifica mediante una funcin de callback desde el servidor.

Para el arranque del cliente es necesario indicar ciertos parmetros: Parmetros RMI o java.rmi.server.codebase Indica donde encontrar la clase stub del servidor. Parmetros generales: o java.security.manager Activacin del sistema de seguridad de Java necesario para consultar variables globales del sistema. o java.security.policy Archivo con las polticas de seguridad de acceso.

Monitor
El monitor funciona de forma similar al cliente. Slo es notificado por el servidor en el momento que un nuevo proceso de thread es iniciado o finalizado. En ese momento el servidor comunica al monitor mediante una funcin de callback el nmero de threads activos. Los parmetros de arranque son los mismos que el cliente.

Potrebbero piacerti anche