网站大量收购闲置独家精品文档,联系QQ:2885784924

Java-第7章了解RMI.ppt

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

第七章 了解RMI 目 录 RMI简介 什么是RMI? RMI的目标 RMI的体系结构 RMI如何工作 分布垃圾回收 RMI和OSI参考模型 安全 1. RMI简介 Remote Method Invocation (RMI) 将客户和服务器间的接口抽象为一个本地的过程调用 不需要设计或选用协议 2. 什么是RMI? RMI是开发分布式程序的核心包 透明调用 分布的垃圾回收 对流的方便访问 3. RMI的目标 支持对存在于不同的虚拟机上的对象的无缝的远程调用 支持服务器对客户的回调 把分布式对象模型自然的集成到Java语言中,尽可能保留Java的面向对象特性 使分布式对象模型和本地对象模型间的不同表面化 使编写分布式应用程序变得简单 保留Java所提供的安全性 多样化的远程调用机制 多传输能力 分布式垃圾回收 本地对象与远程对象的区别   本地对象 远程对象 对象定义 一个本地对象由Java class定义 一个远程对象的行为由扩展Remote接口的接口定义 对象实现 一个本地对象由Java class实现 远程对象的行为由实现远程接口的java class实现 对象创建 用new操作符创建 远程对象的实例由所在主机用new操作符创建,客户端不能直接创建一个远程对象 对象访问 本地对象直接通过对象的引用访问 远程对象通过一个指向实现远程接口的代理桩的对象引用变量方法 引用 在单一的JVM中,对象引用直接指向堆中的一个对象 一个“远程引用”是指向本地堆中的代理对象的指针,该代理对象包含连接到远程对象的信息 活跃对象 在单一的JVM中,如果至少有一个对象引用在使用,则该对象是活跃的 如果一个远程对象在一定的时间内被访问,则认为该对象有一个活跃的引用。如果所有的远程引用都被明确释放,那么该对象可以被垃圾回收器回收了。 垃圾回收 当一个对象的所有引用都被释放,则个对象可以被回收 分布垃圾回收器与本地垃圾回收器一同工作,如果一个远程对象没有远程引用也没有本地引用,则该对象可以被回收 异常 Java编译器强制处理非运行异常 RMI强制处理可能抛出的RemoteException异常 3-1. The Heart of RMI Interfaces 重要原理:行为的定义和行为的实现分离。RMI允许定义行为的代码和实现行为的代码分离运行在不同的JVM上 客户端只关心服务的定义,而服务器关注提供服务 interfaces define behavior and classes define implementation. 4. RMI的体系结构 桩/架构(stub/skeleton)层 远程引用层 传输层 4. RMI的体系结构 桩/架构层 是应用程序和其他部分的接口 使用RMI的rmic编译器产生桩/架构层 根据服务器程序的字节代码,产生代理类 此层不处理任何特定的传输 客户端桩 初始化远程调用 序列化发送的参数 提示远程引用层进行调用 反序列化返回值 提示传输层条用完成 服务器端架构 反序列化客户端输入的参数 调用实际的远程对象实现 将返回值序列化为流,以传输给客户 4. RMI的体系结构 2. 远程引用层 是桩/架构层和传输层的中间层 负责为独立的客户桩和服务器架构的多种形式的远程引用和调用协议提供支持 提供一个RemoteRef 对象,代表到远程服务对象的连接 桩对象通过RemoteRef 对象的invoke()方法传递方法调用,该对象能够理解对远程服务的调用语义 点对点连接(unicast,jdk1.1):当客户访问远程服务之前,远程服务必须是已经被实例化 可激活的对象(jdk1.2):当访问一个可激活远程对象时,首先判断服务是否休眠,如果是休眠状态,则首先实例化该对象。 4. RMI的体系结构 3. 传输层 传输层是一个低级的层 在不同的地址空间内传输序列化的流 负责建立远程地址空间的连接,管理连接,监听外来调用 为外来的调用建立连接,定位调度程序 5. RMI如何工作 序列化流,传输数据到远程引用层 确定对象性质 是否可以实例化 是否可以自动启动 是否需要声明和初始化 负责建立连接 管理连接 6. 分布垃圾回收 RMI提过了一个分布的垃圾回收器 使用引用计数(Reference-counting)垃圾回收算法 可以跟踪每一个虚拟机上的活动引用,当一个引用进入虚拟机,计算器就增加,反之减少,如果计数为0,则回收该对象 RMI系统还要保持对虚拟机标识符的跟踪,以确保垃圾回收器回收的是即没有被本地调用,有没有被远程对象调用的对象。 7. RMI和OSI参考模型 8. 安全 对象被序列化后,以普通文本的方式通过网络传输。任何人都能读取网络上所传输的数据 没有认证。客户只要请求对象,服务器就提供,后续的通信都默认是同一客户 没有对象访问

文档评论(0)

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

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

1亿VIP精品文档

相关文档