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文档。上传文档
查看更多
RMI规范

RMI规范--第二章 Java 分布式对象模型 2.1 分布式对象应用程序 RMI 应用程序通常包括两个独立的程序:服务器程序和客户机程序。典型的服务 器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机 调用那些远程对象上的方法。而典型的客户机程序则从服务器中得到一个或多个 远程对象的引用,然后调用远程对象的方法。RMI 为服务器和客户机进行通讯 和信息传递提供了一种机制。这样的应用程序有时被称为分布式对象应用程序。 分布式对象应用程序需要: 定位远程对象 应用程序可使用两种机制中的一种得到对远程对象的引用。它既可用 RMI 的简 单命名工具 rmiregistry 来注册它的远程对象;也可将远程对象引用作为常规 操作的一部分来进行传递和返回。 与远程对象通讯 远程对象间通讯的细节由 RMI 处理;对于程序员来说,远程通讯看起来就象标 准的 Java 方法调用。 象,所以 RMI 将提供必要的机制, 既可以加载对象的代码又可以传输对象的数据。 服务器调用注册服务程序以使名字与远程对象相关联。客户机在服务器注册服务 程序中用远程对象的名字查找该远程对象,然后调用它的方法。RMI 能用 Java 系统支持的任何 URL 协议(例如 HTTP、FTP、file 等)加载类字节码。 2.2 术语的定义 在 Java 分布式对象模型中,remote object 是这样一种对象:它的方法可以 从其它 Java 虚拟机(可能在不同的主机上)中调用。该类型的对象由一种或 多种 remote interfaces(它是声明远程对象方法的 Java 接口)描述。 远程方法调用 (RMI) 就是调用远程对象上远程接口的方法的动作。更为重要的 是,远程对象的方法调用与本地对象的方法调用语法相同。 2.3 分布式和非分布式模型的比较 Java 分布式对象模型在以下几方面与 Java 对象模型相似: 远程对象的引用在任一种方法调用中(本地或远程)都能以参数形式传递或以结 果形式返回。 远程对象可以被强制转换成任何远程界面,只要该界面为使用内置 Java 语法 进行强制类型转换的实现所支持。 内置 Java 操作符 instanceof 可用来测试远程对象所支持的远程接口。 Java 分布式对象模型在以下几方面与 Java 对象模型不同: 远程对象的客户机与远程接口发生交互,而从不与这些接口的实现类交互。 远程方法的非远程参数和返回结果是通过复制而非引用的方式传递的。这是因为 对象的引用只在单个虚拟机中才有用。 远程对象以引用的方式进行传递,而不是复制实际的远程实现。 某些 java.lang.Object 类定义的方法的语义专用于远程对象。 因为调用远程对象的失败模式本来就比调用本地对象的失败模式复杂,所以客户 机必须处理远程方法调用期间发生的额外异常。 2.4 RMI 接口和类概述 2.4.1 java.rmi.Remote 接口 在 RMI 中,远程接口是声明了可从远程 Java 虚拟机中调用的方法集。远程接 口必须满足下列要求: 远程接口至少必须直接或间接扩展 java.rmi.Remote 接口。 远程接口中的方法声明必须满足下列远程方法声明的要求: 远程方法声明在其 throws 子句中除了要包含与应用程序有关的异常(注意与 应用程序有关的异常无需扩展 java.rmi.RemoteException )之外,还必须包 括 java.rmi.RemoteException 异常(或它的超类,例如 java.io.IOException 或 java.lang.Exception )。 远程方法声明中,作为参数或返回值声明的(在参数表中直接声明或嵌入到参数 的非远程对象中)远程对象必须声明为远程接口,而非该接口的实现类。 java.rmi.Remote 接口是一个不定义方法的标记接口: public interface Remote 远程接口必须至少扩展 java.rmi.Remote 接口(或其它扩展 java.rmi.Remote 的远程接口)。然而,远程接口在下列情况中可以扩展非远 程接口: 远程接口也可扩展其它非远程接口,只要被扩展接口的所有方法(如果有)满足 远程方法声明的要求。 例如,下面的接口 BankAccount 即为访问银行帐户定义了一个远程接口。它包 含往帐户存款、使帐户收支平衡和从帐户取款的远程方法: public interface BankAccount extends java.rmi.Remote { public void deposit(flo

文档评论(0)

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

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

1亿VIP精品文档

相关文档