RMI系统原理及使用方法.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

RMI系统原理及使用方法

?

?

论文导读:Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。

关键词:RMI,JAVA,分布式远程方法调用

?

JavaRMI(RomoteMethodInvocation远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而JavaRMI则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。RMI目前使用Java远程消息交换协议JRMP(JavaRemoteMessagingRrotocol)进行通信。JRMP是专为Java的远程对象制定的协议。因此,JavaRMI具有Java的”WriteOnce,RunAnywhere”的优点,是分布式应用系统的百分之百纯Java解决方案。用JavaRMI开发的应用系统可以部署在任何支持JRE的平台上。发表论文。但由于JRMP是专为Java对象制定的,因此,RMI对用用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。

RMI系统原理

RMI应用程序通常包括两个独立的程序:服务器程序和客户机程序。典型的服务器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机调用这些远程对象的方法。而典型的客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。RMI为服务器和客户机进行通信和信息传递提供了一种机制。

在与远程对象的通信过程中,RMI使用标准机制:Stub和Skeleton。远程对象的Stub担当远程对象的客户本地代表或代理人角色。发表论文。调用程序将调用本地Stub的方法,而本地Stub将负责执行对远程对象的方法调用。在RMI中,远程对象的Stub与该远程对象所实现的远程接口集相同。调用Stub的方法时将执行下列操作:(1)初始化与包含远程对象的远程虚拟机的连接;(2)对远程虚拟机的参数进行序列化(写入并传输);(3)等待方法调用结果;(4)反序列化(读取)返回值或返回的异常;(5)将值返回给调用程序。为了向调用程序展示比较简单的调用机制,Stub将参数的序列化和网络级通信等细节隐藏了起来。在远程虚拟机中,每个远程对象都可以都可以有相应的Skeleton。Skeleton负责将调用分配给实际的远程对象实现。它在接收方法调用时执行下列操作:(1)反序列化(读取)远程方法的参数;(2)调用实际远程对象实现上的方法;(3)将结果(返回值或异常)序列化(写入并传输)给调用程序。Stub和Skeleton由rmic编译器生成。

在RMI分布式应用系统中,服务器与客户机之间传递的Java对象必须是可序列化的对象。不可序列化的对象不能在对象流中进行传递。对象序列化扩展了核心Java输入、输出类,同时也支持对象。对象序列化支持把对象编码以及通过它们可访问到的对象编码变成字节流;同时它也支持流中对象图形的互补重构造。序列化用于轻型持久性和借助于套接字或远程方法调用进行的通信。

利用RMI编写分布式对象应用程序需要完成以下工作:(1)定位远程对象。发表论文。应用程序可使用RMI的简单命名工具rmiregistry来注册它的远程对象。(2)与远程对象通信。远程对象间通信的细节由RMI处理,对于程序员来说,远程通信看起来就像标准的Java方法调用。(3)给作为参数或返回值传递的对象加载类字节码。因为RMI允许调用程序将纯Java对象传给远程对象,所以,RMI将提供必要的机制,既可以加载对象的代码又可以传输对象的数据。在RMI分布式应用程序运行时,服务器调用注册服务程序以使名字与远程对象相关联。客户机在服务器上的注册服务程序中用远程对象的名字查找该远程对象,然后调用它的方法。

使用RMI

编写JavaRMI分布式应用程序的步骤主要包括以下几步:

1.将远程类的功能定义为Java接口,在Java中,远程对象是实现远程接口的类的实例。在远程接口中声明每个要远程调用的方法。远程接口具有如下特点:1)远程接口必须声明为public。如果不这样,则除非客户端与远程接口在同一个包内,否则当试图装入实现该远程接口的远程对象时会得到错误结果。2)远程对象继承java.rmi.Remote接口。3)除了所有应用程序特定的例外之外,每个方法还必须抛出java.rmi.RemoteException例外。4)任何作为参数或返回值传送的远程对象的数据类型必须声明为远程接口类型,而不是实现类。

2.编写和实现服务器类。该类是实现

您可能关注的文档

文档评论(0)

刘畅 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档