Java RMI
Penampilan
Penyeruan kaedah jauh Java (Java Remote method invocation, Java RMI) ialah sebuah API Java yang melakukan padanan berorientasi objek bagi panggilan tatacara jauh (RPC, remote procedure call).
Versi Jini
Jini menyediakan versi yang lebih canggih bagi RMI di dalam Java. Fungsinya serupa namun ia menyediakan kemampuan dan mekanisma pencarian yang lebih canggih untuk aplikasi-aplikasi objek teragih.[1]
Contoh
Kelas-kelas berikut melaksanakan sebuah atur cara pelanggan-pelayan menggunakan RMI yang memaparkan pesanan.
Kelas RmiServer
— mendengar permintaan RMI dan melaksanakan antara muka yang digunakan oleh pengguna untuk menyeru kaedah-kaedah jauh.
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.registry.*;
public class RmiServer extends UnicastRemoteObject
implements RmiServerIntf {
public static final String MESSAGE = "Hello world";
public RmiServer() throws RemoteException {
}
public String getMessage() {
return MESSAGE;
}
public static void main(String args[]) {
System.out.println("RMI server started");
// Create and install a security manager
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
System.out.println("Security manager installed.");
} else {
System.out.println("Security manager already exists.");
}
try { //special exception handler for registry creation
LocateRegistry.createRegistry(1099);
System.out.println("java RMI registry created.");
} catch (RemoteException e) {
//do nothing, error means registry already exists
System.out.println("java RMI registry already exists.");
}
try {
//Instantiate RmiServer
RmiServer obj = new RmiServer();
// Bind this object instance to the name "RmiServer"
Naming.rebind("//localhost/RmiServer", obj);
System.out.println("PeerServer bound in registry");
} catch (Exception e) {
System.err.println("RMI server exception:" + e);
e.printStackTrace();
}
}
}
Rujukan
- ^ Taylor, Ian J. From P2P to Web Services and Grids - Peers in a Client/Server World. Springer, 2005