RMI 之 简单的 HelloWorld 实现(一)
来源:互联网 发布:ubuntu安装vim完整版 编辑:程序博客网 时间:2024/05/21 22:23
RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。
RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。由于JRMP是专为Java对象制定的,Java RMI具有Java的"Write Once,Run Anywhere"的优点,是分布式应用系统的百分之百纯Java解决方案。用Java RMI开发的应用系统可以部署在任何支持JRE(Java Run Environment Java,运行环境)的平台上。但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。
RMI可利用标准Java本机方法接口JNI与现有的和原有的系统相连接。RMI还可利用标准JDBC包与现有的关系数据库连接。RMI/JNI和RMI/JDBC相结合,可帮助您利用RMI与目前使用非Java语言的现有服务器进行通信,而且在您需要时可扩展Java在这些服务器上的使用。RMI可帮助您在扩展使用时充分利用Java的强大功能。
RMI(远程方法调用)原理示意图
方法调用从客户对象经占位程序(Stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传 输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。 占位程序扮演着远程服务器对象的代理的角色,使该对象可被客户激活。 远程引用层处理语义、管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个。传输层管理实际的连接,并且追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用,并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端,再向上经传输层和远程调用层返回。最后,占位程序获得返回值。
要完成以上步骤需要有以下几个步骤:
1、 生成一个远程接口
2、 实现远程对象(服务器端程序)
3、 生成占位程序和骨干网(服务器端程序)
4、 编写服务器程序
5、 编写客户程序
6、 注册远程对象
7、 启动远程对象
RMI 实现步骤:
1. 接口类的实现
声明要远程调用的方法;
2. 接口类的继承类的实现
声明抛异常的构造方法;
序列号的定义;
远程调用方法的定义;
主函数的实现(该方法可以另起一个类实现,也可以在接口类的继承类中简单展示)
{
创建 接口类 的对象 a ;
根据接口类对象 a,定义 rmi 的名字 并 绑定 url 地址;
(可以显示的输出,表示服务器端远程方法已经开启并执行正常。)
}
3. 客户端类的实现
创建接口类对象 b 并轮询接口类的继承类对象 a 的 url 地址,目的是实现 b 向 a 的数据传输。
执行对象 b 远程调用的方法。- RMI 之 简单的 HelloWorld 实现(一)
- RMI 之 简单的 HelloWorld 实现(二)
- RMI 之 简单的 HelloWorld 实现(三)
- RMI简单的HelloWorld
- Java RMI之HelloWorld 与 Java简单实现RPC
- RMI的简单实现
- RMI的简单实现
- Java RMI之HelloWorld RMI
- RMI 之helloworld(转)
- Java RMI之HelloWorld
- Java RMI之HelloWorld
- Java rmi之helloWorld
- Java RMI之HelloWorld
- Java RMI之HelloWorld
- java 中用rmi实现helloWorld
- Java RMI之HelloWorld篇
- Java RMI之HelloWorld篇
- Java RMI之HelloWorld篇
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- ScrollView和GestureDetector触屏事件冲突
- struts2之Action配置
- Hive分析窗口函数(四) LAG,LEAD,FIRST_VALUE,LAST_VALUE
- 指针数组与数组指针、数组传入函数后的故事
- RMI 之 简单的 HelloWorld 实现(一)
- C++学习——派生&继承巧记
- UVA 1585-Score
- 虚拟机,开发板,主机 相互ping通
- 如何将pdf文档内容转为图片
- RMI 之 简单的 HelloWorld 实现(三)
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- ROS学习之 cpp消息发布者和消息订阅者
- Matlab实现鼠标拖动显示轮廓线