分布式对象技术
第一页,共15页
RMI技术应用
第二页,共15页
1. RMI结构
RMI 实现结构可以分为三层:
Stub/Skeleton层
远程引用层
传输层
客户调用远程对象
方法
Stub
远层引用层
TCP
远程对象
Skeleton
远层引用层
TCP
RMI结构图
Sub/Skeleton层实现传输数据的调度和
反调度机制。调度就是把数据或对象
转换成字节流,反调度则把字节流转
换成数据或对象。
远程引用层定义了RMI连接的调用语义
即如何调用远程对象的方法。Java远程
方法协议(Java Remote Method Protocol)
传输层实现字节流的传输,一般采用TCP或UDP
Java Remote Messaging Protocol
第三页,共15页
2. 采用RMI开发客户机/服务器应用程序步骤:
定义远程接口
实现这个远程接口
生成stub(桩/客户代理)和skeleton(骨架/实体)
编写使用远程对象的客户程序
启动注册表并登记远程对象
运行服务器和客户程序
第四页,共15页
构建服务器程序
创建一个远程接口时,必须遵守下列规则:
远程接口必须为public
除应用程序本身有关异常外,远程接口中的每个方法都必须在自己的
作为参数或返回值传递的一个远程对象,必须声明为远程接口,不可
声明为实现类。
第五页,共15页
1. 定义远程接口(服务接口)
import ;
import ;
/**
* RMI调用对象接口定义
* ***@author 王华东
*/
public interface InterfaceService extends Remote {
/**远程服务对象所必须实现的方法
* 所有的远程调用的方法,必须声明throws RemoteException
* */
Object service(Object obj) throws RemoteException;
}
第六页,共15页
2. 实现远程接口
/**
* RMI服务对象接口实现, 此对象将被RMI服务器导出做为远程服务对象
* ***@author 王华东
*/
//
public class ImpService extends
implements InterfaceService {
public ImpService() throws {
super();
}
/**
* 客户端将要调用的方法示例
*/
public Object service(Object obj) {
("RMI客户机请求: "+obj);
return ()/1000 + ": "
+ ();
}
}
第七页,共15页
3. 启动RMI服务器
import .*;
import .*;
/**
* 启动RMI服务器,导出服务对象
* ***@author 王华东
*/
public class StartRMIServer {
/**启动方法*/
public static void main(String[] args) {
int listerPort=9911; //设置RMI监听器在9911端口
String serverIP="localhost"; //监听的IP
String serviceObjName="service"; //要导出的服务对象名字
try {
(listerPort); //设置RMI服务器监听端口
(); //设置日志对象,打印到控制台
ImpService remoteObj = new ImpService(); //创建导出的对象, 绑定服务
("rmi://"+serverIP+
分布式对象技术 来自淘豆网m.daumloan.com转载请标明出处.