CARRERA DE SISTEMAS Asignatura DESARROLLO CLIENTE SERVIDOR II Tema: Suma de Polinomios utilizando RMI Nombre: Cambal Barahona Luis Gerardo Docente: Ing. Jorge Yaguar Fecha: 11-07-2014 CARRERA DE SISTEMAS
1
Objetivo
El objetivo de esta prctica es realizar un ejemplo en java RMI, en este caso realizaremos una suma de polinomios que mediante el envo de dos polinomios desde el cliente hacia el servidor, este devuelva como resultado la suma de los dos.
Introduccin RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un mtodo de manera remota. Forma parte del entorno estndar de ejecucin de Java y proporciona un mecanismo simple para la comunicacin de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicacin entre otras tecnologas debe utilizarse CORBA o SOAP en lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programacin por estar especficamente diseado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recoleccin de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA).
A travs de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estar accesible a travs de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los mtodos proporcionados por el objeto.
La invocacin se compone de los siguientes pasos:
Encapsulado (marshalling) de los parmetros (utilizando la funcionalidad de serializacin de Java). Invocacin del mtodo (del cliente sobre el servidor). El invocador se queda esperando una respuesta. Al terminar la ejecucin, el servidor serializa el valor de retorno (si lo hay) y lo enva al cliente. El cdigo cliente recibe la respuesta y contina como si la invocacin hubiera sido local. CARRERA DE SISTEMAS
2
Procedimiento
Abrimos un IDE para Java, en este caso utilizaremos NetBeans y creamos un nuevo proyecto llamado PolinomiosRMI.
Figura 1. Nuevo proyecto llamado PolinomiosRMI
Creamos una nueva Interface llamada interfacepolinomios y escribimos el siguiente cdigo.
Figura 2. Nuevo interface llamada interfacepolinomios. CARRERA DE SISTEMAS
3
Una vez creada la Interface debemos implementarla, para eso creamos la clase implementacionRMI y la heredamos de UnicastRemoteObject e implementar interfacepolinomios, luego ingresamos el siguiente cdigo.
Figura 3. Nuevo clase llamada implementacionRMI.java
CARRERA DE SISTEMAS
4
Luego creamos la clase servidor y la heredamos de UnicastRemoteObject, implementar interfacepolinomios e ingresamos el siguiente cdigo.
Figura 4. Nueva clase llamada servidor.java
CARRERA DE SISTEMAS
5
Finalmente creamos la clase Cliente y la heredamos de UnicastRemoteObject, implementar interfacepolinomios e ingresamos el siguiente cdigo.
Figura 5. Nueva clase llamada Cliente.java CARRERA DE SISTEMAS
6
Ahora para la ejecucin lo vamos a hacer mediante la ventana de comandos de Windows, abrimos una ventana y escribimos lo siguiente:
Figura 6. Compilamos nuestra implementacin mediante la consola con los siguientes cdigos.
Figura 7. Verificamos que se crearon los archivos Stub
Abrimos nuestro proyecto NetBeans y ejecutamos nuestro servidor.
Figura 8. Luego ejecutamos nuestro Servidor.
CARRERA DE SISTEMAS
7
Finalmente abrimos nuestro Cliente lo y ejecutamos. Aqu nos pide que ingresemos el primer polinomio y el segundo polinomio. Luego de eso el sistema por medio de RMI nos devuelve el resultado.
Figura 9. Ejecutamos nuestro Cliente y nos devuelve la fecha actual
Conclusiones
Java RMI es un mecanismo ofrecido en Java para invocar un mtodo remotamente y en este caso pudimos implementar una aplicacin que nos permite sumar dos polinomios. La aplicacin es muy parecida a las aplicaciones de prcticas anteriores y por este motivo podemos decir que podemos utilizar este mtodo para realizar cualquier tipo de proyecto donde necesitemos invocar mtodos alojados en el servidor.
Recomendaciones
Si se requiere comunicacin con otras tecnologas debe usarse CORBA o SOAP en lugar de RMI ya que este mtodo funciona solo en servidores con Java instalado en su mquina.
Bibliografa
http://es.wikipedia.org/wiki/RMI CARRERA DE SISTEMAS