第8章__高级RMI.pptVIP

  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文档。上传文档
查看更多
第8章__高级RMI.ppt

内容概要: Stub下载(stub downloading) 安全管理器(security manager) 客户回调(client callback) 1. RMI的需求 RMI允许不同的Java虚拟机之间进行对象间的通信,从而共享各个虚拟机上的资源和处理能力。 RMI的目的是使分布在不同的虚拟机中的对象工作起来像是本地对象,以达到位置透明性,应用程序不用知道对象是本地还是远程的,屏蔽应用程序对底层的复杂实现细节。 引用远程对象的JVM叫客户机,包含远程对象的JVM叫服务器。 2. RMI结构 如何使RMI开发者不用考虑调用目的对象是在本地还远程? 通过本地、远程透明性的一种架构来完成,即存根(Stub)和骨架(Skeleton)。 RMI在客户机端使用存根,存根就像服务器端代码的代理。客户通过存根在网络上查找所调用的远程对象。从客户机的角度来看,这些存根看起来完全像服务器端的方法,使用同样的方法名、参数列表和返回值,但不包含实际的方法代码,客户机取得的是Interface的reference,而无法取得实现该接口的class。 存根与骨架图 存根包含将客户端请求传送到服务器、处理从服务器传回的结果和将结果返给客户机的代码。 在服务器端,称为骨架的代理接收客户机的远程调用,将它们转换成在服务器上的本地调用,进行本地调用并将结果传回客户机。 存根和骨架由RMI编译程序自动产生,它分析编写的服务器端类,生成存根和骨架的代码段。 3. RMI的类包 RMI包括7个包: (1)java.rmi :核心API。 (2)java.rmi.activation,可激活对象的API。 (3)java.rmi.dgc,分布式垃圾收集器(DGC)的API。 (4)java.rmi.registry,RMI网络命名服务的API。 (5)java.server,服务器端操作的API。 (6)java.rmi,RMI-IIOP的核心API,RMI-IIOP也是一种远程方法调用,在EJB中使用RMI-IIOP。 (7)java.rmi.CORBA,RMI-IIOP另一个轻便的API,为RMI-IIOP生成插头及连接线和RMI-IIOP运行时间之间提供标准接口。 4. 定位远程对象 客户程序采用命名和目录服务找到远程服务,在编写客户程序时,必须告诉客户机提供命名服务的主机地址和端口号,通过JNDI服务,查找到远程对象。 RMI命名服务为一个注册查询服务,提供远程服务的对象必须注册到RMI命名服务器上,在服务器上记录名字和远程对象的映射关系,这种关系以hashTable的结构存储。 在注册表中,一个远程对象与一个名字联系起来,在客户程序想调用远程对象上的一个方法时,先要通过寻找名字得到对象的引用。寻找过程会返回一个对象的远程引用,即一个Stub。客户机代码得到一个Stub对象,它通过指定的服务器名称和对象名称来访问服务器对象。 5. RMI参数传递 (1)基本参数传递 当在远程方法中传递的参数或返回值是基本数据类型时,RMI就通过值进行传递。 (2)对象类型参数 采用值传递对象以及所引用的对象。 (3)远程对象参数 远程对象是采用传递引用的方式。 (4)对象序列化 将Java对象转换成对象的bit-blob表示,以便于在网络上传递、写入文件。 对象序列化的方式实现java.io.Serializable接口,JVM虚拟机完成来完成对象序列化的具体实现。 (5)如何使用关键字transient 对象很大,通过网络传输或复制太浪费资源 远程对象的资源不可能在本地机器上进行重建,如数据库连接、线程对象等。 对象中存在敏感信息,不希望通过网络传输 6. RMI-IIOP (1)CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构) ,CORBA 采用传输协议为IIOP。CORBA 是独立于语言的 。CORBA 使用 CosNaming定位远程对象 。 (2)JRMP(Java Remote Messaging Protocol,Java 远程消息传递协议)作为RMI传输协议 。RMI 是纯粹 Java 到 Java 的。 RMI 使用 JNDI 定位远程对象 。 (3)RMI和CORBA的结合形成了RMI-IIOP 7. 编写一个RMI应用程序 (1)实现RMI的步骤 1编写远程接口。这一接口将远程对象上有效的方法公布到RMI客户机上。它必须扩展java.rmi.Remote。 2编写远程对象。远程对象是实现远程接口的类。远程对象也可能包括用于内部操作和内部管理的其他方法,这些方法不通过接口公布。远程对象可以含有main方法,通过在main方法中编写远程对象的注册程序,实现把

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档