Comparacion Entre Rmi Y Api De Sockets

12
CARLOS ANDRÉS ARÉVALO H. COMPARACION ENTRE RMI Y API DE SOCKETS

Transcript of Comparacion Entre Rmi Y Api De Sockets

Page 1: Comparacion Entre Rmi Y Api De Sockets

CARLOS ANDRÉS ARÉVALO H.

COMPARACION ENTRE RMI Y API DE SOCKETS

Page 2: Comparacion Entre Rmi Y Api De Sockets

¿Que es RMI?

RMI es un paquete de JAVA que permite manejar objetos (y sus respectivos metodos) 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 función remota esta pueda ser "simulada localmente"

Page 3: Comparacion Entre Rmi Y Api De Sockets
Page 4: Comparacion Entre Rmi Y Api De Sockets

Arquitectura RMI

Page 5: Comparacion Entre Rmi Y Api De Sockets

Para la comunicación 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. Además esto evita que deba existir una definición local real de la clase remota, vale decir, en el cliente solo debe estar definida la interface, no la clase remota.

Page 6: Comparacion Entre Rmi Y Api De Sockets

Otro punto importante en RMI, es el como se produce la conectividad entre el cliente y servidor. Para esto se ocupa una herramienta de JAVA, llamada RMI Registry.

El RMI Registry puede estar localizado en un lugar distinto al servidor, y se encarga de registrar un determinado objeto y asignarle un servidor que se encargará de procesar dicho objeto.

Page 7: Comparacion Entre Rmi Y Api De Sockets

El funcionamiento general es: Se ejecuta el RMI Registry, en algún lugar

de la red.El servidor que desea manejar un objeto, se

registra en dicho servidor,El RMI Registry registra el par:

OBJETO/SERVIDOREl cliente que necesita utilizar un

determinado objeto, hace una consulta al RMI Registry, quien devuelve el STUB listo para la comunicación

Page 8: Comparacion Entre Rmi Y Api De Sockets

JAVA RMI v/s API SOCKETS

Existen algunas diferencias entre la programación normal usando JAVA y la programación con RMI. A continuación se pretende destacar las diferencias y similitudes entre ambos, para poder evaluar objetivamente cuando conviene utilizar alguno de ellos:

Page 9: Comparacion Entre Rmi Y Api De Sockets

Similitudes

Una referencia a un objeto, puede ser pasada como argumento o retornado como resultado de cualquier invocacion (local o remoto).

Un objeto remoto puede ser invocado sobre cualquier set de interfaces remotas soportadas por la implementacion, usando la sintaxis de "castear", vale decir:

Page 10: Comparacion Entre Rmi Y Api De Sockets

InterfaceRemota irem = (InterfaceRemota) new ClaseRemota();

El operador instanceof puede ser utilizado para testear la interface remota soportada por el objeto remoto.

Similitudes

Page 11: Comparacion Entre Rmi Y Api De Sockets

Diferencias

Los clientes de objetos remotos interactúan con interfaces remotas, NUNCA con la implementación de esas interfaces.

Argumentos no-remotos hacia, y resultados desde, una invocación remota a un método son pasados por copia en vez de por referencia. Esto se debe a que las referencias a objetos son útiles solo dentro de una maquina virtual individual.

Page 12: Comparacion Entre Rmi Y Api De Sockets

Un objeto remoto es pasado por referencia, no copiando su actual implementación remota.

En RMI, el cliente debe manejar una mejor cantidad de Excepciones, debido a que aumentan los tipos de fallas al invocar objetos remotos que cuando se trabaja de manera local (seguridad, red, rmiregistry, etc)

Diferencias