下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、RMI 远程对象激活张福勇1 吴秋霞2(1. 昆明理工大学信息工程与自动化学院,云南,昆明650051; 2. 五邑大学信息学院,广东,江门529020)摘 要:介绍了RMI中为何要引入远程对象激活,然后具体介绍RMI中实现远程激活的方式。RMI通过远程对象的激活机制实现了远程对象中有用的信息的长时间保留, 这样既节省了资源又实现了远程对象的调用。关键词: 分布式 RMI 远程对象激活 引言分布式对象系统被设计为支持长期存在的持久对象。假设这些系统将由成千(也许成万)个这样的对象组成,则对象的实现在无限期的时间段内被激活并保持活动状态是不合理的。这将占用宝贵的系统资源。另外,客户机需要保存对对
2、象的持久引用的能力,这样在一个系统崩溃后可以重新建立对象之间的通讯,因为通常对一个分布对象的引用只有当对象处于活动状态时才有效。对象激活是一种用来提供对对象持久引用和管理对象实现的执行的机制。在 RMI 中,激活允许对象根据需要开始执行。当访问(通过方法调用)“可激活”远程对象时,如果该远程对象当前尚未执行,则系统将在适当的 Java 虚拟机中开始该对象的执行。1惰性激活在 RMI 系统中使用了惰性激活。惰性激活就是将一个对象的激活延迟到客户机第一次使用该对象时(即第一次方法调用时)。远程对象的惰性激活是用不完善远程引用(有时称为不完善块)实现的。对远程对象的不完善远程引用在第一次调用对象的方
3、法时,“完善”为活动对象的引用。每个不完善引用均保持一个持久句柄(激活标识符)和对目标远程对象的瞬态远程引用。远程对象的激活标识符包含足够的信息来使第三方激活该对象。瞬态引用是对可用来联系执行对象的主动远程对象的“活动”引用。在不完善引用中,如果对远程对象的活引用为空,则不认为目标对象是主动的。在方法调用中,不完善引用(对该对象)将加入激活协议以获得“活”引用,该引用是对新激活的对象的远程引用(例如单路传送 (unicast) 的远程引用)。一旦不完善引用得到活引用,则不完善引用将把方法调用传给底层的远程引用,而该远程引用又将方法调用传给远程对象。具体的说,远程对象的 stub 包含一个“不完
4、善”远程引用类型,该类型既包括:远程对象的激活标识符,又包括“活”引用(可能为空),其中包含远程对象的“活动”远程引用类型(例如,带有单路传送语义的远程引用类型)。 2 激活协议在远程方法调用期间,如果目标对象的“活”(live) 引用是未知的,则不完善引用将使用激活协议。激活协议包括下列几个实体:不完善引用、激活器、Java 虚拟机中的激活组和被激活的远程对象。激活器(通常每个主机有一个)是一个实体,负责激活,它是:将激活标识符映射到激活对象所需信息(对象的类、位置 - URL 路径 - 从该处可加载类、对象可能需要用于自举 (bootstrap) 的特定数据等)的信息数据库,及Java 虚
5、拟机的管理器,它启动虚拟机(必要时)并将对象激活请求(和必要的信息一起)传送到远程虚拟机中正确的激活组。 激活组(每个 Java 虚拟机中一个)是这样的实体,它接收对激活 Java 虚拟机中对象的请求并将激活的对象返给激活器。激活协议如下所示。不完善引用使用一个激活标识符并调用激活器(内部 RMI 接口)来激活与该标识符关联的对象。激活器查找对象的激活描述符(先前已注册)。对象的描述符包括:· 对象的组标识符(指定对象激活时所处的虚拟机), · 对象的类名, · URL 路径,从该处加载对象的类代码, · 特定于对象的已编组的初始化数据(例如,初始化数据
6、可能是包含对象持久状态的文件的名称)。 如果应容纳该对象的激活组存在,则激活器将激活请求传送到该组。如果激活组不存在,则激活器将启动虚拟机以执行激活组,然后将激活请求传送到该组。激活组将加载对象的类并用特定的构造函数来实例化该对象。此构造函数带多个参数,包括先前注册的激活描述符。对象完成激活时,激活组将把已编组对象引用传回激活器,然后该激活器记录激活标识符和激活引用对,并将活动(活)引用返给不完善引用。随后,不完善引用(在 stub 内)通过活动引用将方法调用直接传给远程对象。3 “可激活”远程对象的实现模型为了使可通过激活标识符访问的远程对象不受时间影响,开发人员必须做到:· 为该
7、远程对象注册一个激活描述符 · 在对象的类中包含一个专用构造函数,当 RMI 系统激活可激活对象时将调用它。 可用以下几种方法来注册激活描述符 (ActivationDesc):· 调用类 Activatable 的静态 register 方法 · 用 Activatable 类的第一个或第二个构造函数创建“可激活”对象 · 显式地导出“可激活”对象。该过程可用 Activatable 的第一个或第二个 exportObject 方法实现,其参数为 ActivationDesc、Remote 对象的实现和端口号。 对于特定对象,只可用上述三种方法之一来注
8、册激活对象。31构造可激活的远程对象 Activatable. inactive 方法的调用)时通知激活组。Activatable 构造函数的第一种和第二种形式用于从指定的 port 注册并导出可激活对象。最初构造对象时应使用该构造函数;该构造函数的第三种形式将在重新激活对象时使用。Activatable 的具体子类必须在最初构造期间调用第一种或第二种构造函数以注册并导出对象。 构造函数首先用对象的类名创建一个激活描述符 (ActivationDesc)、对象所提供的 codebase 和 data(其激活组为虚拟机的缺省激活组)。然后,构造函数将向缺省的 ActivationSystem 注
9、册该描述符。最后,构造函数在特定 port 上(如果 port 为零,则选择匿名端口)将可激活对象导出到 RMI 运行时中,并将该对象作为 activeObject 报告给本地 ActivationGroup。如果在注册或导出的过程中出错,则构造函数抛出 RemoteException。注意,构造函数也初始化它的 ActivationID(通过注册获得),因此接下来对 protected 方法 getID 的调用将返回对象的激活标识符。Activatable 构造函数的第三种形式用于从指定的端口导出对象。当 Activatable 的具体子类被对象自己的“激活”构造函数激活时,必须调用第三种构
10、造函数。该“激活”构造函数带两个参数:· 对象的 ActivationID · 对象的初始化数据,一个 MarshalledObject 对象 该构造函数只将可激活对象从特定 port(如果 port 为零,则选择匿名端口)导出到 RMI 运行时中,而并不通知 ActivationGroup 该对象已是活动对象。因为正是 ActivationGroup 激活该对象的,因而它自然知道对象已处活动状态。4结论RMI通过远程对象的激活机制实现了远程对象中有用的信息的长时间保留,而且还避免了在全部时间里运行管理这些远程对象的服务器造成的潜在的资源浪费。使服务器做到了在客户需要它们的任何时候启动。这样既节省了资源又实现了远程对象的调用。5参考文献1 (英)George Coulouris Jean Dollimore Tim Kindberg 著。金培弘 译。分布式系统概念与设计。北京:机械工业出版社2004年1月2 marko boger著。曹学军译。JAVA与分布式系统。北京:机械工业出版社2003
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年烟台市芝罘区中小学教师招聘考试备考题库及答案详解
- 2026年佳木斯市郊区中小学教师招聘考试模拟试题及答案详解
- 2026中国工业互联网平台垂直行业渗透率提升与生态构建研究
- 2026年宁德市蕉城区街道办人员招聘笔试备考题库及答案详解
- 2026年天津市南开区街道办人员招聘笔试参考题库及答案详解
- 2026年南昌市西湖区街道办人员招聘考试模拟试题及答案详解
- 2025年山西省长治市街道办人员招聘笔试试题及答案详解
- 2026年宁夏回族自治区银川市街道办人员招聘笔试参考试题及答案详解
- 2025年承德市双滦区街道办人员招聘考试试题及答案详解
- 2026年福建省南平市街道办人员招聘笔试备考试题及答案详解
- 中国制造业AI场景落地之FDE路径研究白皮书2026
- 2026年甘肃庆阳宁县直事业单位选聘24人笔试参考题库及答案详解
- 四川能投发展股份有限公司所属公司2026年员工公开招聘笔试备考试题及答案详解
- 广西玉林兴业县2026年警务辅助人员招聘考试试卷-含答案解析
- 2026年江苏职业卫生技术服务专业技术人员考试(放射卫生检测与评价)模拟题及答案
- 2026-2030中国工程爆破行业十四五发展分析及投资前景与战略规划研究报告
- 街区门楼改造方案范本
- 2026年中国邮政四川省分公司笔试题及答案
- 绿化工程监理实施细则
- 海南天然橡胶产业集团股份有限公司招聘笔试题库2026
- 24J113-1 内隔墙-轻质条板(一)
评论
0/150
提交评论