代理可以控制和管理访问。
RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写任何网络或I/O代码。客户程序调用远程方法就和运行在客户自己本地JVM对对象进行正常方法调用一样。
步骤一:制作远程接口
// 1 扩展java.rmi.Remote接口
// 2 声明所有方法都会抛出RemoteException
// 3 确定变量和返回值属于原语或者可序列化类型 (自己定义的类一定要实现Serializable)
import java.rmi.*
public interface MyRemote extends Remote{
public String sayHello() throws RemoteException;
}
步骤一:制作远程实现
// 1 客户必须实现远程接口
// 2 扩展UnicastRemoteObject对象,让超类帮你实现某些“远程”功能
// 3 声明一个不带变量的构造器,并抛出RemoteException
// 4 用RMI Registry注册此服务
//
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{
public MyRemoteImpl() throws RemoteException{}
public String sayHello(){
return "Server says: hey";
}
}
try{
MyRemote service = new MyRemoteImpl();
Naming.rebind("RemoteHello", service);
}catch(Exception ex){ ... }
----------------------------