Informe Calculadora RMI

download Informe Calculadora RMI

of 8

Transcript of Informe Calculadora RMI

  • UNIVERSIDAD DE CUENCA

    DESARROLLO DE SISTEMAS

    DISTRIBUIDOS CALCULADORA RMI

    POR: PATIO EDISSON, PEALOZA FERNANDO

  • Objetivos:

    Implementar mediante RMI una calculadora que preste su funcionalidad a varios

    terminales o clientes que lo requieran.

    Maximizar la utilizacin de recursos utilizando software implementado en una

    computadora remota.

    Compartir los servicios implementados en un servidor a varios clientes que los

    requieran verificando su concurrencia.

    Aprender el uso de los objetos y sus respectivos mtodos que el paquete de RMI

    de java proporciona.

    Manejar los Stub y Skeleton para que la invocacin a la funcin remota sea

    posible.

    Manejar la herramienta de java RMI Registry.

    Introduccin:

    RMI es un paquete de JAVA que permite manejar objetos (y sus respectivos mtodos)

    de manera remota, para utilizar los recursos de un servidor de manera transparente para

    el usuario local.

    La manera en que RMI (y RPC en general) logra hacer esto, es por medio de lo que se

    conoce como STUBs. En el caso del STUB servidor, se conoce como SKELETON. Estos

    Stubs y Skeletons permiten que al momento de ser invocada la funcin remota esta

    pueda ser "simulada localmente"

    Se brinda un mecanismo para la comunicacin RMI se caracteriza por la facilidad de su

    uso en la programacin por estar especficamente diseado para Java; proporciona

    paso de objetos por referencia, recoleccin de basura distribuida y paso de tipos

    arbitrarios.

    Para la comunicacin entre el servidor y el cliente, se trabaja con interfaces, que deben

    ser implementadas por el servidor y/o cliente, para que los STUBs puedan realizar la

    transparencia para ambos. Adems esto evita que deba existir una definicin local real

    de la clase remota, vale decir, en el cliente solo debe estar definida la interface, no la

    clase remota.

  • Funcionamiento RMI:

    Se ejecuta el RMI Registry, en algn lugar de la red.

    El servidor que desea manejar un objeto, se registra en dicho servidor.

    El RMI Registry registra el par: OBJETO/SERVIDOR.

    El cliente que necesita utilizar un determinado objeto, hace una consulta al RMI

    Registry, quien devuelve el STUB listo para la comunicacin.

    Implementacin

    Implementar mediante RMI un servidor que pueda realizar operaciones matemticas de

    manera remota y que varios clientes puedan utilizarla haciendo un llamado. Para el

    ejercicio se solicita:

    Operaciones Bsicas (Suma, Resta, Multiplicacin, Divisin).

    Matrices (Suma de matrices, Multiplicacin de matrices, Transpuesta).

    Funciones (Evaluacion de funciones, Derivadas, Integrales, Grafica).

    Conversiones (Binarias a Decimales, Decimales a Octales, Hexadecimales a

    Decimales).

    Implementacin del Servidor

    Lo primero ser crear una interfaz la cual debe heredar de la clase Remote y para esto

    habr que importar el paquete: java.rmi.Remote, una vez creada la interface se deber

    incorporar los mtodos que tendr dicha interface, todos los mtodos debern transferir

    una excepcin en caso de que suceda despus del mtodo se deber aadir lo

    siguiente: throws java.rmi.RemoteException.

    El siguiente paso ser crear una clase la cual implemente la interface creada, se deber

    implementar todos los mtodos abstractos ahora creamos una clase servidor la cual

    ofrecer todos los mtodos implementados en el paso anterior, usando Libreras

    implementamos en el servidor los diferentes mtodos que desensamblan los objetos

    recibidos, verificando mediante los signos la operacin solicitada y los parmetros con

    los que se va a operar. Una vez identificada la operacin, se ubica y se colocan los

    parmetros en el orden en el que el servidor fue codificado para de esta forma operar y

    enviar los datos procesados, estos datos se ponen en cola y son enviados en el orden

    en el que se obtienen y de esta manera el cliente puede ordenarlos como crea

    convenienete para presentarlos como resultado.

  • Implementacin del Cliente

    Se crear una interfaz con java para que sea compatible ya que RMI tiene una

    implementacin nica para java, en esta interfaz se adecuarn las estructuras tanto para

    enviar la informacin como para recibir los datos procesados. Se deber especificar cual

    es el tipo de dato a enviar y recibir.

    Para cada operacin se deber aadir una clusula para atrapar la excepciones

    presentadas como se puede notar: public String suma(String a) throws

    java.rmi.RemoteException; y de esta manera podremos enviar como parmetro los

    datos a procesar en el servidor y de la misma manera los recibiremos.

    Manual de Usuario

    Como primer punto debemos verificar que el servidor este corriendo, para que la

    conexin se pueda realizar normalmente. El servidor cuenta con una ip y un puerto

    habilitado para la conexin que debe ser conocido por el cliente para realizar las

    peticiones.

    El diseo del cliente implementa ventanas para cada una de las operaciones antes

    mencionadas.

  • Operaciones Bsicas Las operaciones bsicas son resueltas en la siguiente interfaz. Los datos se insertan en

    el espacio especificado y se los pone de manera de ecuacin, estos son enviados como

    parmetros al servidor que es el encargado de desempaquetarlos, verifica el signo

    enviado que identifica la operacin y los valores son tomados como parmetro para

    realizar la operacin, el servidor opera y devuelve el resultado que es presentado en el

    mismo campo.

    Funciones En f(x) se debe ingresar una expresin algebraica en la que se va a evaluar, derivar e

    integrar. Del mismo modo la expresin es enviada al servidor que este a su vez la

    desempaqueta y toma a todas las x como la variable a tratar, dependiendo de esto se

    opera y se devuelve de la misma manera el resultado al terminar las operaciones.

  • Matrices Esta Pestaa trabaja con matrices, solicita en primera instancia el nmero de filas y de

    columnas de cada una de las matrices, luego genera estas matrices para que

    posteriormente sean llenadas, una vez terminado eso se envan estas matrices junto a

    una operacin que seleccionemos. El servidor procesa la operacin y nos devuelve una

    serie de valores que son los resultantes, estos son recibidos y ordenados en la interfaz

    de cliente.

    Conversiones Para realizar la conversin de sistemas numricos y alfanumricos la interfaz de cliente

    solicita el valor a convertir y basta con presionar el tipo de conversin especificado en

    los botones de la parte inferior de la ventana. Las opciones presentadas so: Binario-

    Decimal, Octal-Decimal, Hexadecimal-Decimal, Decimal-Binario, Decimal-Octal,

    Decimal-Hexadecimal.

  • Funciones Trigonomtricas Realizamos en esta interfaz las distintas funciones trigonomtricas, al igual que

    operaciones entre ellas. Es similar al ingreso de valores de una calculadora en donde

    todo debe ser agrupado por parntesis para que se pueda operar. El resultado despus

    de haber clickeado la respuesta aparecer en el campo inferior.

    Llamada a Servidor RMI Extrao Esta ltima interfaz da muestra del poder de RMI ya que debe ser genrica la utilizacin

    de un servidor RMI, por lo que se puede llamar a este incluyendo la Ip del servidor que

    se quiere referenciar, el puerto de acceso que este habilita, la Interfaz, la Clase a la que

    pertenece, el mtodo especificado o que se quiere realizar, el valor que va a retornar, el

    valor que recibe y su tipo. Una vez ingresado todo lo especificado anteriormente de

    manera correcta presionamos calcular y el resultado deber operarse en el servidor y

    devolvernos el resultado en el campo de destino.

  • Conclusiones.- RMI puede solucionar varios problemas de hardware de poco rendimiento con la

    utilizacin de un servidor remoto que realice de manera gil varias operaciones.

    RMI centraliza el desempeo de un sistema ya que depende de un servidor para

    operar.

    Si un servidor RMI colapsa por alguna razn deja sin funcionamiento a todos

    aquellos clientes que lo utilicen.

    RMI resuelve el problema planteado anteriormente pudiendo ser instalada la

    aplicacin en cualquier PC disponible con java o referenciando una o varias

    operaciones a servidores remotos en lugares distintos y distantes mediante una red.