Java RMI. Sistemas Distribuidos Rodrigo Santamaría
Java RMI. Sistemas Distribuidos Rodrigo Santamaría
Java RMI. Sistemas Distribuidos Rodrigo Santamaría
Java RMI
Sistemas Distribuidos
Rodrigo Santamaría
+ Java RMI
• RMI
• Java RMI
2
+ 3
RMI
RMI
Aplicación
RMI vs Sockets
RMI Sockets
n Invocación de objetos remotos n Invocación de métodos remotos
RMI
Implementación
7
+ 8
Java RMI
Implementación
Java RMI
Esquema
pepe.usal.es maria.usal.es
1) Publicación
Interfaz Interfaz
2) Implementación
Stub
Cliente Servicio
4) Uso 3) Registro
+ 10
Java RMI
Interfaz
/**
* Interfaz para un servicio RMI de corredores de bolsa
* Debe heredar de java.rmi.Remote
* Debe manejar RemoteException en sus métodos
*/
public interface Corredor extends Remote
{
String listarTitulos() throws RemoteException;
void comprar(String nombre, int cantidad) throws RemoteException;
void vender(String nombre, int cantidad) throws RemoteException;
}
+ 11
Java RMI
Interfaz: publicación
Java RMI
Interfaz: codebase
Java RMI
Interfaz: URLs
n "file:///Users/rodri/Documents/workspace/interface.jar"
n "http://vis.usal.es/rodrigo/documentos/aso/rmi/interface.jar"
Java RMI
Servidor y Stub
/**
* Servidor de bolsa que implementa Corredor
* Debe implementar una interfaz de java.rmi.Remote
*
*/
public class Bolsa implements Corredor
{
String listarTitulos() throws RemoteException
{...}
void comprar(String nombre, int cantidad) throws RemoteException;
{...}
void vender(String nombre, int cantidad) throws RemoteException;
{...}
//Cualquier otra función interna que sea necesaria
}
Java RMI
Stub: registro
Java RMI
Stub: registro
Java RMI
Cliente
Java RMI
Cliente: búsqueda
Java RMI
Gestor de seguridad