Comparacion Entre Rmi Y Api De Sockets

4,623 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,623
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
110
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Comparacion Entre Rmi Y Api De Sockets

  1. 1. CARLOS ANDRÉS ARÉVALO H. COMPARACION ENTRE RMI Y API DE SOCKETS
  2. 2. ¿Que es RMI? <ul><li>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. </li></ul><ul><li>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 &quot;simulada localmente&quot; </li></ul>
  3. 4. Arquitectura RMI
  4. 5. <ul><li>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. </li></ul>
  5. 6. <ul><li>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. </li></ul><ul><li>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. </li></ul>
  6. 7. <ul><li>El funcionamiento general es: </li></ul><ul><li>Se ejecuta el RMI Registry, en algún lugar de la red. </li></ul><ul><li>El servidor que desea manejar un objeto, se registra en dicho servidor, </li></ul><ul><li>El RMI Registry registra el par: OBJETO/SERVIDOR </li></ul><ul><li>El cliente que necesita utilizar un determinado objeto, hace una consulta al RMI Registry, quien devuelve el STUB listo para la comunicación </li></ul>
  7. 8. JAVA RMI v/s API SOCKETS <ul><li>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: </li></ul>
  8. 9. Similitudes <ul><li>Una referencia a un objeto, puede ser pasada como argumento o retornado como resultado de cualquier invocacion (local o remoto). </li></ul><ul><li>Un objeto remoto puede ser invocado sobre cualquier set de interfaces remotas soportadas por la implementacion, usando la sintaxis de &quot;castear&quot;, vale decir: </li></ul>
  9. 10. <ul><li>InterfaceRemota irem = (InterfaceRemota) new ClaseRemota(); </li></ul><ul><li>El operador instanceof puede ser utilizado para testear la interface remota soportada por el objeto remoto. </li></ul>Similitudes
  10. 11. Diferencias <ul><li>Los clientes de objetos remotos interactúan con interfaces remotas, NUNCA con la implementación de esas interfaces. </li></ul><ul><li>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. </li></ul>
  11. 12. <ul><li>Un objeto remoto es pasado por referencia, no copiando su actual implementación remota. </li></ul><ul><li>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) </li></ul>Diferencias

×