Java RMI分布式系统的应用的研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java RMI分布式系统的应用的研究

Java RMI分布式系统的应用的研究   摘要:RMI是开发Java网络分布式应用系统的一个重要框架,开发人员通过运用RMI框架将更易于分布式系统的开发。该文详细介绍了RMI的运行机制,并对运用RMI框架进行分布式系统的开发步骤进行了阐述,最后给出了RMI技术的具体应用实例和实现方法。   关键词:RMI;Java;Stub;分布式   中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)01-0051-03   1 概述   由于单台计算机的计算能力有限,在实际的应用中,我们常常要将计算任务分成多个子任务,将每个子任务放到网络中不同的计算机上进行计算,实现分布式并行计算,以加快计算速度。在分布式计算模型中不管采取何种方式,主要是将分部在不同计算机上的对象间发送的消息转换为字节序列,然后通过套接字建立连接并传输这些字节序列。在网络连接和传输消息时还要考虑出现的各种故障和安全问题以及对象垃圾收集机制等等问题。   在具体的分布式系统实现过程中,一种是采用基于消息方式实现各个节点间的通信。当系统要通信时就向外发送消息,消息可以是字节流、字节数组,其他系统接收到消息后则进行相应的业务处理。这种系统间通信的方式,通常基于网络协议来实现,常用的实现系统间通信的协议有:TCP/IP和UDP/IP。另一种是采用基于远程调用方式实现系统间的通信。这种方式当系统间要通信时,可通过调用本地的一个Java接口的方法,透明地调用远程的Java实现。具体的细节则由Java或框架来完成,尽可能地使系统间的通信和系统内一样,让使用者感觉调用远程方法同调用本地方法一样。   因为开发一个完善的分布式软件系统相当复杂,如果采用基于消息的方式实现分布式通信,相当麻烦。开发人员不仅仅要关注对数据的业务处理,还要关注很多纯技术细节。而基于远程调用方式实现分布式通信的方法解放了开发人员的一些纯技术细节问题,使开发人员能够更专注于业务数据的处理。Java为我们开发分布式网络应用提供了比较完善的远程方法框架,那就是Java RMI(Remote Method Invocation,远程方法调用)。通过RMI,可以很方便地让Java程序调用网络中其他计算机上的Java方法。   2 RMI系统运行机制   RMI是Java用于实现透明远程调用的重要机制。在远程调用中,客户端仅有服务器端提供的接口。客户端通过此接口实现对远程服务器端的方法调用。   RMI服务器端通过启动RMIRegistry (RMIRegistry是运行在服务器上的一个后台进程,且必须在服务进程启动之前启动)在一个端口上监听对外提供的接口,其实现实例以字符串的方式绑定到RMI注册对象上。RMI客户端程序采用命名服务机制通过注册表获取远程对象的存根stub。当要调用远程方法时,通过此stub将被访问的远程对象的名字、被调用的方法描述和相关的参数封装成一个对象,序列化成流后传输到RMI服务器端。RMI服务器端skeleton接收到客户端的请求对象后,解析其中的对象字符串、方法和参数,通过对象字符串和访问的方法名称来反射获取到方法实例对象,传入参数完成对服务器端对象实例的调用。然后获得方法调用产生的返回值或者异常,并对其进行序列化然后返回给客户端。客户端的stub接收到服务器端skeleton发送过来的返回值或者异常的序列化字节流后,对其进行反序列化,就得到调用远程方法的返回结果。RMI的具体运行机制如图1。      图1 RMI运行机制   3 RMI技术应用实例开发步骤   3.1 创建远程接口   RMI中要求远程对象所属的类实现一个远程接口,远程对象必须通过远程接口声明服务。在远程接口中声明可以被客户程序访问的远程方法。此接口必须要直接或间接继承java.rmi.Remote接口。由于远程方法调用依赖于网络通信,而网络通信是不可靠的,一旦服务器端或客户端有一方断开连接,或者网络出现故障,此次通信就会失败。所以在接口中的所有方法需要声明抛出java.rmi.RemoteException异常。当远程方法调用出现网络通信异常时,RMI框架抛出RemoteException异常,客户端捕获这种异常,并进行相应的处理。   实例代码如下:   import java.rmi.*;   public interface Account extends Remote{   public int add(int i,int j) throws RemoteException;   }   3.2 实现远程接口   远程接口中定义的远程方法的具体实现都在远程接口的实现类中,远程接口的实现类中也可以定义一些本地方法,这些本地方法不需要在远程接口

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档