Java rmi

Solo disponible en BuenasTareas
  • Páginas : 5 (1118 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de noviembre de 2010
Leer documento completo
Vista previa del texto
Introducción
El objetivo de esta práctica es entender, adquirir destrezas y experiencia con el diseño e implementación de métodos remotos, y la ejecución y depuración de programas distribuidos, a través de un ejercicio en el que implementamos un servidor de correo electrónico simple.

Problema

En este ejercicio se implementará un servidor de correo electrónico simple, específicamente, elservidor de correo debe actuar como un objeto remoto cuyos métodos pueden ser invocados por los clientes. Este servidor de correo electrónico tendrá una cantidad limitada de servicios. El servidor se crea como un objeto remoto y se lo registra en el servicio de nombres RMI. Un cliente podrá invocar los servicios del servidor de correo electrónico para:
* Enviar un mensaje de correo a otrousuario llamando a un método remoto que podría ser por ejemplo send(idUsr, asunto, mensaje).
* Recibir los encabezados de correo (remitente, asunto) uno a uno.
* Recibir el mensaje solicitado, una vez que el usuario haya recibido su mensaje, este será borrado del servidor.

Objetivos
Objetivo general
Crear una aplicación que trabaje como servidor de correo y actúe como un objeto remotocuyos métodos puedan ser invocados por los clientes
Objetivos específicos
* Crear un objeto remoto
* Registrar un servidor en el servicio de nombres RMI
* Poder enviar mensajes de correo a otro usuario
* Recibir encabezados de correo
* Recibir mensajes

Marco teórico
RMI (Java Remote Method Invocation)

Es un mecanismo ofrecido por Java para invocar un método de maneraremota. Forma parte del entorno estándar de ejecución de Java y provee de un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicación entre otras tecnologías debe utilizarse CORBA o SOAP en lugar de RMI.

RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado paraJava; proporciona paso de objetos por referencia (no permitido por SOAP), recolección de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA).

Por medio de RMI, un programa Java puede exportar un objeto, lo que significa que éste queda accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. Apartir de este momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto.

La invocación se compone de los siguientes pasos:
* Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de serialización de Java).
* Invocación del método (del cliente sobre el servidor). El invocador se queda esperando una respuesta.
* Al terminar laejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al cliente.
* El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.

Contexto

Desde la versión 1.1 de JDK, Java tiene su propio ORB: RMI (Remote Method Invocation). A pesar de que RMI es un ORB en el sentido general, no es un modelo compatible con CORBA. RMI es nativo de Java, esdecir, es una extensión al núcleo del lenguaje. RMI depende totalmente del núcleo de la Serialización de Objetos de Java, así como de la implementación tanto de la portabilidad como de los mecanismos de carga y descarga de objetos en otros sistemas, etc.

El uso de RMI resulta muy natural para todo aquel programador de Java ya que éste no tiene que aprender una nueva tecnología completamentedistinta de aquella con la cual desarrollará. Sin embargo, RMI tiene algunas limitaciones debido a su estrecha integración con Java, la principal de ellas es que esta tecnología no permite la interacción con aplicaciones escritas en otro lenguaje.

RMI como extensión de Java, es una tecnología de programación, fue diseñada para resolver problemas escribiendo y organizando código ejecutable. Así RMI...
tracking img