SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Llamada Procedimientos Remoto
RMI en Java
Contenido
• Introducción
• Definición
• ¿Cómo surgió?
• Arquitectura RMI
• Esqueletos y Cabos (Stubs)
• ¿Cómo se produce la conectividad entre cliente y
  servidor?
• Funcionamiento General
• JAVA RMI v/s API SOCKETS
  ▫ Similitudes
  ▫ Diferencias
• Metas del Sistema RMI de Java
Introducción
• La invocación remota de métodos de Java es un modelo
  de objetos distribuidos, diseñado específicamente para el
  lenguaje Java, por lo que mantiene la semántica del
  modelo de objetos locales de Java, facilitando de esta
  manera la implantación y el uso de objetos distribuidos.
• Un objeto remoto es aquel cuyos métodos pueden ser
  invocados por objetos que se encuentran en una
  máquina virtual diferente.

• Los objetos de este tipo se describen por una o más
  interfaces remotas que contienen la definición de los
  métodos del objeto que es posible invocar remotamente.
Definición

• 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
¿Cómo surgió?
• La primera alternativa que surgió al empleo de los
  sockets son las llamadas a procedimientos remotos
  (RPC) .

• En RPC la comunicación entre los elementos que
  componen el sistema distribuido, se realiza mediante la
  invocación de funciones que se encuentran en espacios
  de direcciones diferentes.
• RPC se encarga de empaquetar los argumentos y
  enviarlos al proceso que contiene el código que
  implementa a la rutina remota.

• Los sistemas codifican los parámetros de la invocación,
  así como los valores de vuelta en una representación
  externa de los datos.

• Se requiere ya no invocar procedimientos remotos, sino
  a métodos de objetos remotos.
Arquitectura RMI
      CLIENTE           OBJETO REMOTO                    OSI

Cliente indicando       Objeto remoto ofrece el    Capa de aplicación
método en el objeto     servicio
remoto
         Stub                   Skeleton          Capa de presentación

         JRMP                    JRMP                Capa de sesión

          TCP                     TCP              Capa de transporte

          IP                       IP                 Capa de red
Esqueletos y Cabos (Stubs)

• Los cabos forman parte de las referencias y actúan
  como representantes de los objetos remotos ante sus
  clientes. En el cliente se invocan los métodos del cabo,
  quien es el responsable de invocar de manera remota al
  código que implementa al objeto remoto.

• En RMI un cabo de un objeto remoto implementa el
  mismo conjunto de interfaces remotas que el objeto
  remoto al cual representa.
Cuando se invoca algún método de un cabo, realiza las
siguientes acciones:

• Inicia una conexión con la MV que contiene al objeto
  remoto.
• Aplana (marshals) y transmite los parámetros de la
  invocación a la MV remota.
• Espera por el resultado de la invocación.
• Desaplana (unmarshals) y devuelve el valor de retorno o
  la excepción.
• Devuelve el valor a quien lo llamó.
• Los cabos se encargan de ocultar los mecanismos de
  comunicación empleados.

• En la MV remota, cada objeto debe poseer su esqueleto
  correspondiente. El esqueleto es responsable de
  despachar la invocación al objeto remoto.
¿Cómo se produce la conectividad
      entre cliente y servidor?
• Se ocupa la herramienta de Java, java MRI Registry.

• Puede estar localizado en un lugar distinto al servidor, se
  encarga de registrar un determinado objeto y asinarle un
  servidor que se encargara de procesar dicho objeto.
Funcionamiento General
• 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/SERVIDOR
• El cliente que necesita utilizar un determinado objeto,
  hace una consulta RMI Registry , quien devuelve el
  STUB listo para la comunicación
JAVA RMI vs API SOCKETS
Similitudes
• Una referencia a un objeto, puede ser pasada como
  argumento o retornado como resultado de cualquier
  invocación (local o remoto).

• Un objeto remoto puede ser invocado sobre cualquier set
  de interfaces remotas soportadas por la implementación,
  usando la sintaxis de :

     InterfaceRemota irem = (InterfaceRemota) new
                   ClaseRemota();
Diferencias
• Los clientes de objetos remotos interactúan con
  interfaces remotas, NUNCA con la implementación de
  esas interfaces.

• Una invocación remota a un método son pasados por
  copia en vez de por referencia.

• Un objeto remoto es pasado por referencia, no copiando
  su actual implementación remota.
Sockets, tienen la capacidad de comunicar dos procesos, ya
sea mediante datagramas o flujos de datos (streams).

requieren que las aplicaciones implanten sus propios
protocolos para codificar y decodificar los mensajes que
intercambian.
Metas del Sistema RMI de Java

• Proporcionar invocación remota de objetos que se
  encuentran en MVs diferentes.

• Integrar el modelo de objetos distribuidos en el lenguaje
  Java de una manera natural, conservando en medida de
  lo posible la semántica de los objetos Java.
• Hacer tan simple como sea posible la escritura de
  aplicaciones distribuidas.

• Preservar la seguridad proporcionada por el ambiente
  Java.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
Rmi
RmiRmi
Rmi
 
Sockets y canales
Sockets y canalesSockets y canales
Sockets y canales
 
11 ad java-rmi
11 ad java-rmi11 ad java-rmi
11 ad java-rmi
 
Ajax y Jquery
Ajax y JqueryAjax y Jquery
Ajax y Jquery
 
RMI
RMIRMI
RMI
 
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
.Net Remoting
.Net Remoting.Net Remoting
.Net Remoting
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
10 -capas_superiores
10  -capas_superiores10  -capas_superiores
10 -capas_superiores
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Rpc te
Rpc teRpc te
Rpc te
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos java
 
Practica cliente servidor java
Practica cliente servidor javaPractica cliente servidor java
Practica cliente servidor java
 
Programacion en sockets informe
Programacion en sockets informeProgramacion en sockets informe
Programacion en sockets informe
 

Destacado

Destacado (11)

Arquitectura Corba
Arquitectura CorbaArquitectura Corba
Arquitectura Corba
 
Permisos basicos linux
Permisos basicos linuxPermisos basicos linux
Permisos basicos linux
 
Java con eclipse
Java con eclipseJava con eclipse
Java con eclipse
 
Rpc calculadora
Rpc calculadoraRpc calculadora
Rpc calculadora
 
Ejemplo Java Rmi
Ejemplo Java RmiEjemplo Java Rmi
Ejemplo Java Rmi
 
Distributed Programming using RMI
Distributed Programming using RMIDistributed Programming using RMI
Distributed Programming using RMI
 
Ide Eclipse, Breve Guía
Ide Eclipse, Breve GuíaIde Eclipse, Breve Guía
Ide Eclipse, Breve Guía
 
RPC - LLAMADAS REMOTAS
RPC - LLAMADAS REMOTASRPC - LLAMADAS REMOTAS
RPC - LLAMADAS REMOTAS
 
Materia Cliente/Servidor
Materia Cliente/ServidorMateria Cliente/Servidor
Materia Cliente/Servidor
 
RPC
RPCRPC
RPC
 
Diapositivas De Java Rmi
Diapositivas De Java  RmiDiapositivas De Java  Rmi
Diapositivas De Java Rmi
 

Similar a Cómo funciona RMI en Java: invocación remota de métodos

Similar a Cómo funciona RMI en Java: invocación remota de métodos (20)

Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
Rmi
RmiRmi
Rmi
 
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_DesventajasRMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
 
Java Rmi[1]
Java  Rmi[1]Java  Rmi[1]
Java Rmi[1]
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)
 
algorimo distribuidos
algorimo distribuidosalgorimo distribuidos
algorimo distribuidos
 
Unidad II
Unidad IIUnidad II
Unidad II
 
R_QuintoNevarez
R_QuintoNevarezR_QuintoNevarez
R_QuintoNevarez
 
Introduccion a corba,wcf,net remoting
Introduccion a corba,wcf,net remotingIntroduccion a corba,wcf,net remoting
Introduccion a corba,wcf,net remoting
 
Rmi
RmiRmi
Rmi
 
Sistemas operativos de red
Sistemas operativos de redSistemas operativos de red
Sistemas operativos de red
 
Networking
NetworkingNetworking
Networking
 
Agentes moviles
Agentes movilesAgentes moviles
Agentes moviles
 
Principios básicos de enrutamiento y subredes
Principios básicos de enrutamiento y subredesPrincipios básicos de enrutamiento y subredes
Principios básicos de enrutamiento y subredes
 
Configuracion Equipos Activos-GFPI-F-019_Formato_Guia_de_Aprendizaje.docx
Configuracion Equipos Activos-GFPI-F-019_Formato_Guia_de_Aprendizaje.docxConfiguracion Equipos Activos-GFPI-F-019_Formato_Guia_de_Aprendizaje.docx
Configuracion Equipos Activos-GFPI-F-019_Formato_Guia_de_Aprendizaje.docx
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
Modelo osi y tcp
Modelo osi y tcpModelo osi y tcp
Modelo osi y tcp
 
Bd distribuidas
Bd distribuidasBd distribuidas
Bd distribuidas
 
modelo osi
modelo osimodelo osi
modelo osi
 

Cómo funciona RMI en Java: invocación remota de métodos

  • 2. Contenido • Introducción • Definición • ¿Cómo surgió? • Arquitectura RMI • Esqueletos y Cabos (Stubs) • ¿Cómo se produce la conectividad entre cliente y servidor? • Funcionamiento General • JAVA RMI v/s API SOCKETS ▫ Similitudes ▫ Diferencias • Metas del Sistema RMI de Java
  • 3. Introducción • La invocación remota de métodos de Java es un modelo de objetos distribuidos, diseñado específicamente para el lenguaje Java, por lo que mantiene la semántica del modelo de objetos locales de Java, facilitando de esta manera la implantación y el uso de objetos distribuidos.
  • 4. • Un objeto remoto es aquel cuyos métodos pueden ser invocados por objetos que se encuentran en una máquina virtual diferente. • Los objetos de este tipo se describen por una o más interfaces remotas que contienen la definición de los métodos del objeto que es posible invocar remotamente.
  • 5. Definición • 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.
  • 6. • 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
  • 7. ¿Cómo surgió? • La primera alternativa que surgió al empleo de los sockets son las llamadas a procedimientos remotos (RPC) . • En RPC la comunicación entre los elementos que componen el sistema distribuido, se realiza mediante la invocación de funciones que se encuentran en espacios de direcciones diferentes.
  • 8. • RPC se encarga de empaquetar los argumentos y enviarlos al proceso que contiene el código que implementa a la rutina remota. • Los sistemas codifican los parámetros de la invocación, así como los valores de vuelta en una representación externa de los datos. • Se requiere ya no invocar procedimientos remotos, sino a métodos de objetos remotos.
  • 9. Arquitectura RMI CLIENTE OBJETO REMOTO OSI Cliente indicando Objeto remoto ofrece el Capa de aplicación método en el objeto servicio remoto Stub Skeleton Capa de presentación JRMP JRMP Capa de sesión TCP TCP Capa de transporte IP IP Capa de red
  • 10. Esqueletos y Cabos (Stubs) • Los cabos forman parte de las referencias y actúan como representantes de los objetos remotos ante sus clientes. En el cliente se invocan los métodos del cabo, quien es el responsable de invocar de manera remota al código que implementa al objeto remoto. • En RMI un cabo de un objeto remoto implementa el mismo conjunto de interfaces remotas que el objeto remoto al cual representa.
  • 11. Cuando se invoca algún método de un cabo, realiza las siguientes acciones: • Inicia una conexión con la MV que contiene al objeto remoto. • Aplana (marshals) y transmite los parámetros de la invocación a la MV remota. • Espera por el resultado de la invocación. • Desaplana (unmarshals) y devuelve el valor de retorno o la excepción. • Devuelve el valor a quien lo llamó.
  • 12. • Los cabos se encargan de ocultar los mecanismos de comunicación empleados. • En la MV remota, cada objeto debe poseer su esqueleto correspondiente. El esqueleto es responsable de despachar la invocación al objeto remoto.
  • 13. ¿Cómo se produce la conectividad entre cliente y servidor? • Se ocupa la herramienta de Java, java MRI Registry. • Puede estar localizado en un lugar distinto al servidor, se encarga de registrar un determinado objeto y asinarle un servidor que se encargara de procesar dicho objeto.
  • 14. Funcionamiento General • 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/SERVIDOR • El cliente que necesita utilizar un determinado objeto, hace una consulta RMI Registry , quien devuelve el STUB listo para la comunicación
  • 15. JAVA RMI vs API SOCKETS Similitudes • Una referencia a un objeto, puede ser pasada como argumento o retornado como resultado de cualquier invocación (local o remoto). • Un objeto remoto puede ser invocado sobre cualquier set de interfaces remotas soportadas por la implementación, usando la sintaxis de : InterfaceRemota irem = (InterfaceRemota) new ClaseRemota();
  • 16. Diferencias • Los clientes de objetos remotos interactúan con interfaces remotas, NUNCA con la implementación de esas interfaces. • Una invocación remota a un método son pasados por copia en vez de por referencia. • Un objeto remoto es pasado por referencia, no copiando su actual implementación remota.
  • 17. Sockets, tienen la capacidad de comunicar dos procesos, ya sea mediante datagramas o flujos de datos (streams). requieren que las aplicaciones implanten sus propios protocolos para codificar y decodificar los mensajes que intercambian.
  • 18. Metas del Sistema RMI de Java • Proporcionar invocación remota de objetos que se encuentran en MVs diferentes. • Integrar el modelo de objetos distribuidos en el lenguaje Java de una manera natural, conservando en medida de lo posible la semántica de los objetos Java.
  • 19. • Hacer tan simple como sea posible la escritura de aplicaciones distribuidas. • Preservar la seguridad proporcionada por el ambiente Java.