Concepto:
La invocación remota es un modelo de interacción (petición/respuesta) muy habitual en muchas
aplicaciones: un cliente envía un mensaje con una petición al servidor que indica la operación o
método y los argumentos y se detiene en espera de la respuesta. El servidor procesa la
petición y devuelve una respuesta.
Arquitectura:
La arquitectura RMI puede verse como un modelo de cuatro capas.Primera capa
La primera capa es la de aplicación y se corresponde con la implementación real de las aplicaciones cliente y servidor. Aquí tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos. Cualquier aplicación que quiera que sus métodos estén disponibles para su acceso por clientes remotos debe declarar dichos métodos en una interfaz que extienda java.rmi.Remote. Dicha interfaz se usa básicamente para "marcar" un objeto como remotamente accesible. Una vez que los métodos han sido implementados, el objeto debe ser exportado. Esto puede hacerse de forma implícita si el objeto extiende la clase UnicastRemoteObject (paquete java.rmi.server), o puede hacerse de forma explícita con una llamada al método exportObject() del mismo paquete.
Segunda capa
La capa 2 es la capa proxy, o capa stub-skeleton. Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa.
prueba
ResponderEliminar¿Cuál es la diferencia entre "Stub" y "Esqueleto"?
ResponderEliminar- Jhon Paul Anampa García
Stub es un proxy para un objeto remoto que corre en la computadora del cliente.
EliminarUn Skeleton es un proxy para un objeto remoto que corre en el servidor.
¿Cuales son los tipos de semántica en una invocación remota?
ResponderEliminarCarlos Trejo
Los tipos de semántica son tres:
EliminarSemántica tal-vez(maybe):
el cliente espera un rato y sigue con su procesamiento normal al cabo de un tiempo sin saber que ocurrió:
Se cayó el servidor
No llego la solicitud
Se perdió la respuesta
Semántica al-menos-una-vez (at-least-once):
el cliente reintenta tras temporización. El servidor no filtra duplicados. El cliente recibe una o más respuestas. Solo valido para operaciones idempotentes (la reiteración de la misma operación no altera el resultado final).
Ejemplo operaciones idempotentes: Sumar(a,b); Unión Conjuntos(A,B)
Ejemplo de operaciones no idempotentes: Concatenar (lista1, lista2).
Semántica como-mucho-una-vez (at-most-one):
cliente reintenta tras temporización. El servidor filtra duplicados servicios de historial en servidor.
El proceso en el servidor se puede ejecutar una o cero veces:
Una vez: el servidor no cayo y el cliente recibió una respuesta
Cero veces: el cliente recibe algún tipo de informe de error.
Este comentario ha sido eliminado por el autor.
ResponderEliminarLos RMI proporcionan algún tipo de seguridad?
ResponderEliminarRMI proporciona un mecanismo alterno basado en el protocolo HTTP (confiable para el firewall), para permitir a los clientes que se encuentran detrás del firewall, invocar métodos de objetos que se encuentren del otro lado. Para atravesar el firewall, la capa de transporte de RMI incluye la llamada remota dentro del protocolo HTTP, como el cuerpo de una solicitud POST, mientras que los valores de retorno se reciben en el cuerpo de la respuesta HTTP. La capa de transporte de RMI puede formular la solicitud POST, de alguna de las dos maneras siguientes:
Eliminar1. Si el proxy firewall permite entregar una solicitud HTTP directamente sobre cualquier puerto de la máquina destino.
2. Si el proxy firewall sólo entrega solicitudes HTTP a ciertos puertos HTTP bien conocidos, la llamada se envía a un servidor HTTP que se encuentre escuchando en el puerto 80
Este comentario ha sido eliminado por el autor.
EliminarOK
ResponderEliminarHola tengo una pregunta
ResponderEliminar¿Cuales serian las ventajas y los inconvenientes del "RMI" frente al "Socket"?