D0I:10.13374/j.issn1001053x.2004.05.024 第26卷第5期 北京科技大学学报 Vol.26 No.5 2004年10月 Journal of University of Science and Technology Beijing 0ct.2004 POA策略模型在分布式远程诊断系统中应用 王海峰徐金梧杨德斌阳建宏 北京科技大学机械工程学院,北京I00083 摘要分析了现有的大型设备分布式远程诊断系统中出现的问题,提出基于CORBA的POA 机制的POA策略模型,讨论了POA策略的细节特点以及优化方式,重点介绍了POA策略模型 在分布式诊断系统中的应用,以解决系统的稳定性、实时性和可扩展性的问题. 关键词POA:CORBA:远程诊断 分类号TH165:TP316 随着信息技术的不断发展,石化、冶金、电 CORBA规范的核心是对象请求代理,即 力、化工等大型企业都迫切的需要用分布式远程 OB,它可以将一个客户应用程序连接到它想使 故障诊断系统取代其现有的各自独立的诊断系 用的对象,而不论它们在什么地方、由谁来设计、 统,从而形成具有资源共建共享、协同服务、分散 用什么来实现. 监测、集中管理与诊断的远程诊断中心,远程诊 POA(Portable Object Adapter)是对象的实现 断中心对分布在不同地域的各种类型的大型设 与ORB之间的中介,它为各种请求创建对象引 备统一管理,通过网络把分布于各生产现场数据 用、激活对象以及将各个对象的请求调度到特定 采集、处理系统互联,将这些数据经过筛选、归 服务器上的伺服程序(servant),如图1所示.所以 类、整理,形成规范的诊断数据库,并在数据库的 POA涉及到对象从创建到撤销的整个生命周期 基础上进一步形成数据仓库、诊断方法库和诊断 中的所有方面. 规则库. POA的前身是BOA(Basic Object Adapter).由 由于与诊断中心相连的企业众多,需监测的 于BOA自身存在较多的缺点而且没有统一的规 设备数量很大,不可避免的会出现大量用户同时 范,所以被POA取代.POA具有很多优势: 监测和诊断或者提交数据的要求,而且这些请求 (1)POA具有更好的可移植性.它使程序员可 大多数都必须保证很好的实时性,这就要求诊断 以构造出能在不同ORB产品之间移植的对象 中心具有良好的稳定性和实时性,同时还必须具 实现. 有很好的可扩展性 (2)具有策略控制行为.将策略信息与POA中 本文提出并实现了一种新的基于CORBA的 的对象实现联系起来,确定POA的工作模式,如 POA机制的策略模型,将其用于诊断中心,很好 服务器 地解决了大用户量、实时请求的问题, POA servant POA 1 CORBA规范以及POA机制 根POA CORBA是公共对象请求代理体系的简称, servant管理器 servant 是对象管理组织(Object Management Group)提出 客户请求 活动对象映射表 对象D servant 的一种典型的分布式对象计算规范,极大地简化 对象D 对象D servant 了在异构的分布环境中建立灵活的分布式应用 和可重用服务的过程”. 收稿日期2003-11-14王海蜂男,27岁,博士研究生 图1POA概观 *国家博士点基金资助项目No.20020008019) Fig.1 Overview of the POA
第 卷 第 期 年 月 北 京 科 技 大 学 学 报 路 恤 一 一 策略模型在分布式远程诊断系统 中应用 王 海峰 徐金梧 杨 德 斌 阳 建宏 北 京科技大学机械工 程学 院 , 北京 摘 要 分析 了现有 的大 型 设 备 分布式 远程 诊 断 系统 中 出现 的 问题 , 提 出基 于 的 机 制 的 策 略模 型 , 讨 论 了 策 略 的细 节 特 点 以及 优 化 方式 重 点 介绍 了 策 略模型 在 分布式 诊 断 系统 中 的应 用 , 以解 决系 统 的稳 定性 、 实 时性 和 可 扩展 性 的 问题 关键 词 远 程 诊断 分 类号 随着 信 息技 术 的不 断 发展 , 石 化 、 冶 金 、 电 力 、 化 工 等 大型 企业 都迫 切 的需 要用 分 布式远 程 故 障诊 断 系 统 取 代 其 现 有 的各 自独 立 的 诊 断 系 统 , 从而 形成 具 有 资源 共 建共 享 、 协 同服 务 、 分 散 监 测 、 集 中管 理 与 诊 断 的远 程 诊 断 中心 , 远 程 诊 断 中心 对 分 布 在 不 同地 域 的各 种 类 型 的 大 型 设 备 统 一 管理 , 通 过 网络 把 分 布 于各 生产 现场 数据 采 集 、 处 理 系 统 互 联 , 将 这 些 数 据 经 过筛 选 、 归 类 、 整 理 , 形 成 规 范 的诊 断数据 库 , 并在 数据 库 的 基础 上进 一 步 形 成 数 据仓 库 、 诊 断方法 库和 诊 断 规 则库 由于 与 诊 断 中心 相 连 的企 业 众 多 , 需监 测 的 设备 数量 很 大 , 不 可 避 免 的会 出现 大量 用 户 同时 监 测和 诊 断或 者提 交数 据 的要 求 , 而 且 这 些 请 求 大 多数都必 须保证 很 好 的实 时性 这 就 要 求 诊 断 中心 具 有 良好 的稳 定性 和 实 时性 , 同时还 必 须具 ’ 有 很 好 的可 扩 展 性 本 文 提 出 并 实 现 了一 种 新 的基 于 的 机 制 的策 略模 型 , 将其 用 于 诊 断 中心 , 很 好 地解 决 了大 用 户 量 、 实 时请 求 的 问题 规 范 的 核 心 是 对 象 请 求 代 理 , 即 , 它 可 以将 一 个 客户 应用 程序 连接 到它 想 使 用 的对 象 , 而 不论 它们 在什 么 地 方 、 由谁 来设计 、 用 什 么 来 实现 叩 是 对 象 的实现 与 之 间 的 中介 它 为 各 种 请 求 创 建 对 象 引 用 、 激 活对 象 以及 将 各个对 象 的请 求 调度 到特 定 服 务器 上 的伺 服 程 序 , 如 图 所 示 所 以 涉 及 到 对 象 从 创 建 到撤 销 的整 个 生命 周 期 中 的所 有 方 面 的前 身是 由 于 自身存 在 较 多 的缺 点而 且 没 有 统 一 的规 范 , 所 以被 取 代 具 有 很 多优 势 具 有更 好 的可 移 植性 它 使 程序 员可 以构 造 出 能在 不 同 产 品之 间 移 植 的对 象 实现 具有策 略控制 行 为 将策 略信 息与 中 的对 象 实现 联 系 起 来 , 确 定 的工 作 模 式 , 如 规 范 以 及 机 制 是 公 共 对 象 请 求 代 理 体 系 的 简称 , 是对 象 管理 组 织 扮 提 出 的一种 典 型 的分布 式对 象 计 算 规 范 , 极大地 简化 了在 异 构 的分 布 环 境 中建 立 灵 活 的分 布 式应 用 和 可 重 用 服 务 的过 程‘ 收稿 日期 一 一 王海 峰 男 , 岁 , 博士 研 究生 国家 博士 点基金 资助项 目困 。 管理器 对象 对象 , 对象 一 图 概 观 啥 · DOI :10.13374/j .issn1001-053x.2004.05.024
·552· 北京科技大学学报 2004年第5期 对象的定位、激活、对象与同服程序之间的关联 这些策略都可以针对不同的应用实例具体 匹配、线程策略等, 分析,其中策略(1),(3),(4),(7)是针对对象的创建、 (3)允许POA的嵌套.一个服务器中可以存 激活和定位等方面的性能,策略(2),(5),(⑥)是针对 在多个POA的不同实例,并且可以嵌套.每个 请求处理等方面的性能.策略选择的优劣将直接 POA为其中注册的对象以及由该POA产生的子 影响到POA的性能,从而影响整个系统平台, POA提供命名服务, 3基于POA策略的请求调度模型 2POA策略分析 及其在远程诊断系统中的应用 每个POA都有个定义其特征的策略集,每 个策略规定了在这个POA中实现的对象所共享 3.1远程诊断系统中P0A机制的优化 的一个特性,由此可以控制每个POA的不同行 基于CORBA的分布式远程故障诊断系统将 为.POA共有七种不同的策略: 各个企业中已有和即将投入的诊断系统,统一地 (1)生存周期策略.它规定了在POA中注册的 通过互联网与远程诊断中心相联,不仅可以实现 CORBA对象是暂态对象,还是持久对象, 各个企业间诊断数据、方法和规则的共享,还可 (2)线程策略,规定了POA使用多线程还是单 以使企业与远程诊断专家相联,进而实现更高级 线程模式处理客户端的请求. 的网上专家会诊,整个系统由现场级、企业级和 (3)对象标识符分配策略.此策略规定了对象 远程诊断中心组成,每一部分都是使用POA作为 标识符是由系统自动产生惟一的D,还是由用户 对象适配器,根据不同的CORBA对象维护不同 自己来保证D惟一性, 类型的POA实例,每个POA下实现一组相关的 (4)对象标识符惟一性策略.规定单个的伺服 CORBA方法.每个POA根据特定的要求使用不 程序是否可以具体化多个CORBA对象, 同的策略实现,维护系统整体的负载平衡.针对 (⑤)伺服程序保持策略.控制激活对象的伺服 故障诊断系统的特点,可以将POA策略作最优化 程序是否保留在内存中, 的组合,来达到最好的性能和最高的效率,其体 (6)请求处理策略.这个策略规定了POA如何 系结构如图2所示. 对每个对象的请求找到与之相关联的伺服程序, 以远程诊断中心为例,说明如何使POA体系 (T)隐式激活策略.控制CORBA对象是由 结构更为优化.根据功能和性能上的要求,将诊 POA隐式创建还是显式创建 断中心的POA模型组织为一个树形结构,如图2 入口 伺服程序 伺服程序41 激活器 (高级算法1) 主POA 监测POA 诊断POA 激活对象映射表 燃认的伺服程 伺服管理程器 诊断子POA 、对象标识符 根POA 激活对象映射表 激活对象映射表 的 伺服程序 管理器 对象标识符 服 对 伺服程序51 象标识符 象标识符 标识符 象标识符 (高级算法2) 伺服程序 伺服程序51 伺服程序11 伺服程序11 定位器 (高级算法3) (基本服务) (基本服务2) 对象引用 同服程序21 伺服程序2n 伺服程序31 伺服程序3n 伺服程序指针 (对应企业1) (对应企业2) (常用算法I) (常用算法2) 图2分布式诊断系统中的POA体系结构 Fig.2 POA Architecture of a distributed remote diagnosis system
一 北 京 科 技 大 学 学 报 年 第 了期 对 象 的定位 、 激 活 、 对 象 与伺 服 程 序 之 间 的关 联 匹 配 、 线程 策 略等 允许 的嵌套 一 个服 务器 中可 以存 在 多个 的不 同 实例 , 并且 可 以嵌套 每个 为其 中注 册 的对 象 以及 由该 产 生 的子 提 供 命 名服 务 这 些 策 略 都 可 以针 对 不 同 的应 用 实 例 具 体 分 析 , 其 中策 略 , , , 是 针对 对 象 的创 建 、 激 活 和 定位 等方 面 的性 能 , 策略 , , 是针 对 请 求 处 理等方 面 的性 能 策 略选 择 的优 劣将 直接 影 响 到 的性 能 , 从而 影 响整 个 系统 平 台 策 略 分 析 每个 都有 一个 定义 其特 征 的策 略集 , 每 个 策 略 规 定 了在 这 个 中实现 的对 象 所 共 享 的一 个特 性 , 由此 可 以控 制 每 个 的不 同行 为 共 有 七 种 不 同的策 略 生存 周 期 策 略 它规 定 了在 中注册 的 对 象 是 暂 态对 象 , 还 是 持 久 对 象 线程 策 略 规 定 了 使用 多线程还 是单 线程 模 式 处理 客 户 端 的请 求 对 象 标 识符 分 配策 略 此 策略规 定 了对 象 标识 符 是 由系 统 自动 产 生惟 一 的 , 还 是 由用 户 自己 来保证 惟 一 性 对 象 标 识 符惟 一性 策略 规 定单个 的伺服 程 序 是 否 可 以具 体 化 多个 对 象 伺 服程序 保 持策 略 控 制 激活对象 的伺服 程 序 是 否 保 留在 内存 中 请求 处 理 策 略 这个策 略规 定 了 如何 对 每个对 象 的请 求 找到与之 相 关联 的伺 服程序 隐式激 活策 略 控 制 对 象 是 由 隐式创 建还 是 显 式创 建 ‘叨 基 于 策 略 的请 求调 度模 型 及 其 在 远 程 诊 断 系统 中的应 用 远 程 诊 断系统 中 机 制 的优 化 基 于 的分布 式 远 程 故 障诊 断系 统 将 各个 企业 中 已 有 和 即将 投 入 的诊 断系统 , 统 一 地 通过 互 联 网与远程 诊 断 中心 相 联 , 不仅 可 以实现 各 个 企 业 间诊 断 数据 、 方 法 和 规 则 的共 享 , 还 可 以使 企业 与远程 诊 断专 家相 联 , 进 而 实现 更 高级 的 网上 专 家会 诊 整 个 系统 由现 场 级 、 企业 级和 远程 诊 断 中心 组成 , 每一 部 分都是使用 作 为 对 象 适 配 器 , 根 据 不 同 的 对 象 维 护 不 同 类 型 的 实例 , 每个 下 实现 一 组相 关 的 方 法 每 个 根据 特 定 的要 求 使 用 不 同 的策 略 实现 , 维护 系 统 整 体 的负 载 平衡 针对 故 障诊 断系统 的特 点 , 可 以将 策 略作最优 化 的组 合 , 来 达 到最 好 的性 能和 最 高 的效 率 , 其 体 系 结构 如 图 所 示 以远程 诊 断 中心 为例 , 说 明如何 使 体 系 结 构更 为优化 根 据 功 能和 性 能上 的要 求 , 将 诊 断 中心 的 模型 组 织 为一 个 树形 结构 , 如 图 入 口 「一 一 一 一 一 一 一 一 一 一 一 一 一 一 伺服程序 高级算法 一 一 , 对象引用 ,卜 伺服程序指针 图 分 布式 诊 断 系统 中的 体 系结 构 褚
Vol.26 No.5 王海峰等:POA策略模型在分布式远程诊断系统中应用 553 所示.最上层为根POA,这是系统的入口,所有的 deactivate操作是POA管理器不再能处理其他请 请求都是由根POA来传递,所有的POA都是由 示,而且不能被激活 根POA生成:第二层是主POA,这是应用程序请 (2)监测POA.对于监测POA,根据监测功能 求调度的核心POA,第三层为监测POA和诊断 的系统稳定性要求,监测功能POA的生存周期策 POA,在诊断POA上又生成了诊断子POA. 略采用PERSISTENT,即使用持久对象,隐式激活 (I)主POA.主POA在系统中的角色是一个 策略采用NO_IMPLICIT_ACTIVATION,即显式激 调度者,负责常规CORBA对象的注册和激活.为 活,由于各个企业的监测功能基本类似,而且参 了增强系统的并行处理能力,主POA的线程策略 与监测的企业数量有可能随着系统的扩展不断 采用ORB_CTRL_MODEL模式,也就是使用多线 增加,所以选择了MULTIPLE_ID作为对象标识 程策略.主POA可以注册一些对象D,主要是为 符惟一性策略,允许单个伺服程序来具体化多个 了给用户提供一些最基本的服务.由于这些服务 CORBA对象,并且可以使用命名服务和交易服 的数量一定,并且使用频率很高,所以伺服程序 务的形式来公布所有新的对象引用.针对监测功 保持策略采用RETAIN模式,即在内存中保留伺 能的实时性要求,需要将伺服程序保存在内存 服程序,当用户提出相应的请求时,主POA可 中,避免每次请求的重复查找,因此伺服程序保 以快速地为这个请求找到相应的伺服程序,请 持策略采用RETAIN.由于监测POA中的CORBA 求处理策略采用USE ACTIVE OBJECT MAP 对象都是针对相似的监测对象,基本上都具有相 ONLY,即仅使用激活对象映射表(ACTIVE OB- 同的DL接口类型,所以选择USE DEFAULT ECT MAP,以下简称AOM)来定位伺服程序,如 SERVANT作为请求处理策略的值,即使用默认 果在AOM中没有找到相应的伺服程序,系统产 的伺服程序.这样当POA在激活对象映射中找不 生OBJECT_NOT_EXIST异常. 到相应的伺服程序时,系统使用默认的伺服程 主POA下面有两种类型的POA,一种是完成 序来处理请求.监测POA所使用的POA策略 监测功能的POA,一种是完成诊断功能的POA. 见表2. 另外,POA模型是具有层次结构的,所以当需要 表2监测POA使用的POA策略 根据不同的功能增加需求时,POA可以动态增 Table 2 Policy of monitoring POA 加,这也保证了系统的可扩展性.综上所述,主 策略 选择的策略值 POA所使用的POA策略如表1所示, 生存周期策略 PERSISTENT 表1主POA使用的POA策略 线程策略 ORB CTRL MODEL Table 1 Policy of main POA 对象标识符分配策略 MULTPLE ID 策略 选择的策略值 对象标识符惟一性策略 UNIQUE ID 生存周期策略 PERSISTENT 同服程序保持策略 RETAIN 线程策略 ORB CTRL MODEL 请求处理策略 USE DEFAULT SERVANT 对象标识符分配策略 SYSTEM ID 隐式激活策路 NO IMPLICIT ACTIVATION 对象标识符惟一性策略 UNIQUE ID 伺服程序保持策略 RETAIN (3)诊断POA.对于两个诊断POA,由于各种 USE ACIVE OBJECT MAP 请求处理策略 算法和诊断方式数量众多,如果将所有对应不同 ONLY 算法和诊断方式的伺服程序都放在AOM中,那 隐式激活策略 NO IMPLICIT ACTIVATION 必定会增加系统的负载,而且有些算法可能只是 所有的POA都使用同一个POA管理器,即根 针对某种特定的情况,使用率很低,放在AOM中 POA的POA管理器,从本质上说POA管理器起 也就浪费了系统的资源,所以请求处理策略选择 到一个控制对POA的请求流的水龙头或者阀门 USE_SERVANT_MANAGER,也就是使用伺服程 的作用.它有四种操作可以控制请求的流向:ac- 序管理器,对象标识符惟一性策略采用MUL tivate操作是激活管理器,让请示通向POA:hold TIPLE ID requests操作将所有流向POA的请求进行排队: 在诊断POA中,实现常用的和较常用的算 discard requests操作将所有已进入的请示丢弃: 法,选择RETAIN作为同服程序保持策路,即将常
王 海峰等 策 略 模型 在 分 布式 远 程 诊 断系统 中应 用 所 示 最 上 层 为根 , 这 是 系 统 的入 口 , 所 有 的 请 求 都是 由根 来 传 递 , 所 有 的 都 是 由 根 生 成 第 二 层 是 主 , 这 是 应 用 程 序 请 求 调度 的核 心 , 第 三 层 为监 测 和 诊 断 , 在 诊 断 上 又 生 成 了诊 断 子 主 主 在 系 统 中 的角 色 是 一 个 调 度 者 , 负 责常 规 对 象 的注 册 和 激 活 为 了增 强 系统 的并行 处 理 能 力 , 主 的线程 策 略 采 用 夕 模 式 , 也 就 是 使用 多线 程 策 略 主 可 以注 册 一 些 对 象 , 主 要 是 为 了给 用 户提 供 一些 最 基 本 的服 务 由于这 些 服 务 的数 量 一 定 , 并 且 使用 频 率 很 高 , 所 以伺 服 程 序 保 持 策 略采 用 模 式 , 即在 内存 中保 留伺 服 程 序 , 当用 户 提 出相 应 的请 求 时 , 主 可 以快 速 地 为 这 个 请 求 找 到 相 应 的伺 服 程 序 请 求 处 理 策 略 采 用 城 , 即仅 使 用 激 活对 象 映射 表 , 以下 简称 来 定 位 伺 服 程 序 , 如 果 在 中没 有 找 到相 应 的伺 服 程 序 , 系 统 产 生 异 常 主 下 面 有 两 种 类 型 的 , 一 种 是 完成 监 测 功 能 的 , 一 种 是 完 成 诊 断 功 能 的 另外 , 模 型 是 具 有 层 次 结 构 的 , 所 以 当需 要 根 据 不 同 的功 能 增 加 需 求 时 , 可 以动 态 增 加 , 这 也 保 证 了系 统 的可 扩 展 性 综 上 所 述 , 主 所 使 用 的 策 略 如 表 所 示 操 作 是 管 理 器 不 再 能 处 理其 他 请 示 , 而 且 不 能被 激 活 监 测 对 于 监 测 , 根据 监 测 功 能 的系 统 稳 定性 要求 , 监 测 功 能 的生存 周 期策 略采 用 , 即使用 持久对 象 , 隐式激 活 策 略采 用 丫片 , 即显 式激 活 由于 各 个 企 业 的监 测 功 能基 本类 似 , 而 且 参 与 监 测 的企 业 数 量 有 可 能 随着 系 统 的扩 展 不 断 增 加 , 所 以选 择 了 作 为对 象 标 识 符 惟 一 性 策 略 , 允 许 单个伺 服 程 序来 具 体 化 多个 对 象 , 并且 可 以使用 命 名 服 务 和 交 易服 务 的形 式来 公布所 有新 的对 象 引用 针 对 监 测 功 能 的 实 时性 要 求 , 需 要 将 伺 服 程 序 保 存 在 内存 中 , 避 免每 次 请 求 的重 复 查 找 , 因此 伺 服 程序 保 持 策 略 采 用 由于 监 测 中 的 对 象 都是 针对 相似 的监 测 对 象 , 基 本上 都具 有 相 同 的 接 口 类 型 , 所 以选 择 几 作 为请 求 处 理 策 略 的值 , 即使 用 默 认 的伺 服 程序 这 样 当 在激 活对 象 映射 中找不 到 相 应 的伺 服 程 序 时 , 系 统 使 用 默认 的伺 服 程 序 来 处 理 请 求 监 测 所 使用 的 策 略 见 表 表 主 使 用 的 策 略 策 略 生 存 周 期 策 略 线程 策 略 对 象 标 识 符 分 配策 略 对 象标 识 符惟 一 性策 略 伺服 程 序保 持 策 略 选择 的 策 略值 ’ 表 监 测 使用 的 策 略 】 策 略 选择 的策 略值 生 存 周 期 策 略 线 程策 略 一 对 象标 识 符分配 策 略 几几 对 象 标 识 符惟 一 性 策 略 刊 伺服程序保 持 策 略 请 求 处 理 策略 隐式 激活 策 略 请 求 处 理 策 略 隐式 激 活 策 略 所 有 的 都 使用 同一 个 管理 器 , 即根 的 管理 器 , 从 本质上 说 管 理 器 起 到 一 个 控 制 对 的请 求 流 的水 龙 头 或 者 阀 门 的作 用 它 有 四种 操 作 可 以控 制 请 求 的流 向 操 作 是 激 活 管 理 器 , 让 请 示 通 向 操 作 将 所 有 流 向 的请 求 进 行 排 队 印 操 作 将 所 有 已 进 入 的请 示 丢 弃 诊 断 对 于 两 个 诊 断 , 由于 各种 算法 和 诊 断方 式 数 量众 多 , 如 果将 所 有对 应 不 同 算 法 和 诊 断 方 式 的伺 服 程 序 都放 在 中 , 那 必 定 会 增 加 系统 的负载 , 而 且 有 些算法 可 能只 是 针 对 某 种 特 定 的情 况 , 使用 率很低 , 放 在 中 也就 浪 费 了系 统 的资源 所 以请 求处 理 策略选择 , 也 就 是 使用 伺 服 程 序 管 理 器 , 对 象 标 识 符 惟 一 性 策 略 采 用 在 诊 断 中 , 实现 常用 的和 较 常 用 的算 法 , 选 择 作 为伺 服 程序 保 持 策 略 , 即将 常
·554 北京科技大学学报 2004年第5期 用的算法和诊断方法的伺服程序放在AOM中, 对系统资源的不同占用率,通过各种策略的合理 保证这些算法以最快的速度定位.如果没有在 搭配,同时考虑用户请求的稳定性、实时性和系 AOM中找到相应的伺服程序,在POA中注册的 统资源以及用户请求的数量,最大限度地优化了 伺服程序激活器(ServantActivator)将创建一个较 系统,保证了监测的稳定性和诊断的高效性,同 常用的算法伺服程序的实例并返回它.如果没有 时,使用POA层次模型将系统的功能分发到不同 适合的伺服程序,激活器将产生一个ForwardRe- 的POA中,可以应用户的要求随时扩展系统,如 quest异常.ORB可以将这个异常变成一个LOC- 增加新的诊断方法、增加新的监测设备等,保证 ATION _FORWARD请求,并将请求重定向到具有 了系统的可扩展性 相应伺服程序的POA,如诊断POA2,也就是它的 表4诊断子POA使用的POA策略 子POA.表3列出了诊断POA所使用的POA Table 4 Policy of sub-diagnosis POA 策略 策略 选择的策略值 表3诊断POA使用的POA策略 生存周期策略 PERSISTENT Table 3 Policy of diagnosis POA 线程策略 ORB CTRL MODEL 策略 选择的策略值 对象标识符分配策略 MULTIPLE ID 生存周期策略 PERSISTENT 对象标识符惟一性策略 UNIQUE ID 线程策略 ORB CTRL MODEL 伺服程序保持策略 NON RETAIN 对象标识符分配策略 MULTIPLE ID 请求处理策略 USE SERVANT MANAGER 对象标识符惟一性策略 UNIQUE ID 隐式激活策略 NO IMPLICIT ACTIVATION 伺服程序保持策略 RETAIN 请求处理策略 USE SERVANT MANAGER 3.2远程诊断系统中POA管理线程策略 隐式激活策略 NO IMPLICIT ACTIVATION 在CORBA规范中,POA的线程策略只有两 种形式,即单线程或多线程.即使采用多线程的 在诊断子POA中,实现不常用的高级算法和 模式,当用户数量非常大时,为每个用户的请求 诊断方法,由于具体的算法很多,所以不把方法 创建一个线程无疑会将系统资源消耗殆尽.Bor 的实现放在内存中,选择NON RETAIN作为伺服 land公司推出了VisiBroker,实现了CORBA规范, 程序保持策略,当诊断子POA接到每个请求时, 它提供另外两种线程策略,线程池策略和每会话 调用注册在它上的伺服程序定位器(ServantLoac 线程策略,如图3和图4所示. ator)的perinvoke接口,获得一个适合的诊断方法 对于诊断POA,采用线程池模型(如图3),线 伺服程序,由于这些算法的使用频率很低,这样 程池中定义了线程的最大数目和最大空闲时间. 就找到了系统资源使用和系统效率的最好切合 每当有新请求到来时,系统先检查当前的线程 点.表4列出了诊断子POA所使用的POA策略. 数,如果达到最大值则提示用户等待,直到有空 在这种POA模型的体系结构中,根据不同类 闲的线程出现:如果没有到达最大值,则为这个 型请求的不同要求,如监测和诊断的不同需求和 请求创建新的线程,由于诊断请求比较耗费系统 监听 连接 请求l 请求1 客户应用程序 程 客户应用程序 请求2 请求2 监听 程 连接 客户应用程序2 客户应用程序2 线 请求1 程 请求 浅程池 图3线程池模型 图4每会话线程模型 Fig.3 Thread pooling model Fig.4 Threads-per-session model
北 京 科 技 大 学 学 报 年 第 期 用 的算法 和 诊 断方 法 的伺服 程序 放 在 中 , 保 证 这 些 算 法 以最 快 的速 度 定位 如 果 没 有 在 中找 到相 应 的伺 服 程 序 , 在 中注 册 的 伺服 程序 激 活器 将 创 建 一 个 较 常用 的算法 伺服 程 序 的实例 并返 回它 如 果 没有 适 合 的伺 服 程序 , 激 活 器 将 产 生 一 个 异 常 可 以将 这 个异 常 变 成 一 个 场叭 请 求 , 并将请 求 重 定 向到 具有 相应 伺 服 程序 的 , 如 诊 断 , 也 就 是 它 的 子 表 列 出 了诊 断 所 使用 的 策 略 对 系统 资源 的不 同 占用 率 , 通过 各种 策略 的合 理 搭 配 , 同时考 虑 用 户 请 求 的稳 定性 、 实时性 和 系 统 资源 以及 用 户请 求 的数量 , 最 大 限度地优 化 了 系统 , 保 证 了监 测 的稳 定性 和 诊 断 的高效性 同 时 , 使用 层 次模型将 系统 的功 能分 发到 不 同 的 中 , 可 以应 用 户 的要 求 随 时扩 展 系统 , 如 增 加 新 的诊 断方 法 、 增 加 新 的监 测 设 备 等 , 保证 了系 统 的可 扩 展 性 表 诊 断 使用 的 策略 加 比 , 策 略 生 存 周 期 策略 线程策 略 对象标 识 符 分 配 策 略 对象标 识 符惟 一 性策 略 伺服 程 序保持策 略 请 求 处 理 策 略 隐式激活 策 略 选择 的策略值 表 诊 断 子 使用 的 策略 一 策 略 选 择 的策略值 生 存周 期策 略 线程 策 略 对象标识 符分 配 策 略 一 对象标识符惟 一 性策略 」 一 伺服 程序保 持策 略 请求 处 理 策 略 人 隐式激活 策略 一八 邵从 叭 劝订 在诊 断子 中 , 实现 不 常 用 的高级 算法 和 诊 断方 法 , 由于 具体 的算法 很 多 , 所 以不把 方 法 的实现放在 内存 中 , 选择 诬 作 为伺 服 程 序 保 持策 略 , 当诊 断子 接 到每 个 请 求 时 , 调 用 注 册 在 它 上 的伺 服程 序 定位 器 的 接 口 , 获得 一 个 适 合 的诊 断方 法 伺 服 程 序 由于 这 些 算法 的使用 频 率 很 低 , 这 样 就 找 到 了系 统 资源 使用 和 系 统 效 率 的最 好 切 合 点 表 列 出 了诊 断子 所 使用 的 策 略 在这 种 模 型 的体 系 结构 中 , 根据 不 同类 型请求 的不 同要 求 , 如监 测和 诊 断 的不 同需求和 远 程 诊 断 系统 中 管理 线 程 策 略 在 规 范 中 , 的线 程 策 略 只 有 两 种 形 式 , 即单 线程 或 多线 程 即使 采 用 多线 程 的 模 式 , 当用 户 数 量 非 常 大 时 , 为每个 用 户 的请 求 创 建 一 个 线 程 无 疑 会 将 系 统 资源 消耗 殆 尽 公 司推 出 了 , 实现 了 规 范 , 它 提供 另外 两种 线程 策 略 , 线程池 策略和 每会 话 线程 策 略 , 如 图 和 图 所 示 对 于 诊 断 , 采 用 线 程 池 模 型 如 图 , 线 程 池 中定义 了线程 的最 大数 目和最 大 空 闲时 间 每 当有 新 请 求 到 来 时 , 系 统 先 检 查 当前 的线 程 数 , 如 果 达 到最 大值 则提 示用 户 等待 , 直 到有 空 闲 的线程 出现 如 果 没 有 到 达 最 大值 , 则 为这个 请求 创建 新 的线 程 , 由于诊 断请 求 比较耗 费系统 图 线程 池 模型 如 图 每会话线 程模型 一
Vol.26 No.5 王海峰等:POA策略模型在分布式远程诊断系统中应用 ·555 资源,但数量不是很多,只要根据实际情况合理 个体系结构已经在我国某钢铁企业中成功应用, 设置线程的最大数目,就可以保证每个诊断请求 并取得了良好的效果,证实系统具有良好可扩展 都用单独的线程来处理, 性、实时性和可靠性, 对于监测POA,采用每会话线程模型,如 参考文献 图4,由于每个客户可能同时对多个监测对象进 行监测,为每个请求创建一个新的线程,会极大 1 The Common Object Request Broker:Architecture and Specification.Revision 2.3 [M].USA:OMG,1998 地消耗系统资源,监测的实时性也会降低,因此, 2 CORBA services:Common Object Services Specification 采用每个客户端连接使用一个线程,客户的新请 [M].USA:OMG,1997 求也在这个线程中进行,这样既保证了系统资源 3 Henning M,Vinoski S.基于C+CORBA高级编程 的合理配置,也保证了监测的实时性, [M徐金梧,徐科,吕志民,等译。北京:清华大学出 版社,2000 4结束语 4 Slama D,Garbis J,,Russel P..CORBA企业解决方案 M.李师贤,郑红,吴涛,等译.北京:机械工业出版 本文针对远程分布式故障诊断及监测系统 杜,2001 中的监测实时性、系统稳定性和可扩展性问题, 5宝兰一英博思公司.VisiBroker for Java开发人员指 提出基于CORBA的POA策略模型,将POA策略 南M.北京:机械工业出版社,2000 针对远程诊断系统的特点进行了优化和扩展.这 POA Policies Model and Its Application to Distributed Remote Diagnosis Systems WANG Haifeng,XU Jinwu,YANG Debin,YANG Jianhong Mechanical Engineering School,University of Science and Technology Beijing,Beijing 100083,China ABSTRACT Based on analyzing some drawbacks of existing distributed remote diagnosis systems,a POA poli- cies model is presented according to CORBA's specification.Some key technologies for POA policies and their op- timizing methods are discussed,and the usage of the POA policies model in distributed remote diagnosis systems is focused on.Most of the functions discussed here have successfully used in industry KEY WORDS POA;CORBA;remote diagnosis
王 海 峰等 策略模 型 在 分 布式 远 程 诊断 系统 中应 用 一 资源 , 但 数 量 不 是 很 多 , 只 要 根据 实 际情 况 合 理 设置线程 的最 大 数 目 , 就 可 以保 证 每个 诊 断请求 都用 单 独 的线 程 来 处 理 对 于 监 测 , 采 用 每 会 话 线 程 模 型 , 如 图 由于 每 个 客 户 可 能 同 时对 多个 监 测 对 象 进 行 监 测 , 为每 个 请 求 创 建 一 个 新 的线程 , 会 极 大 地 消耗 系统 资源 , 监 测 的实时性 也会 降低 因此 , 采用 每个客户端 连 接 使用 一个 线程 , 客 户 的新 请 求 也在这 个 线程 中进 行 , 这 样 既保 证 了系 统 资源 的合 理 配 置 , 也保 证 了监 测 的实 时性 结 束 语 本 文 针 对 远 程 分 布 式 故 障 诊 断 及 监 测 系 统 中 的监 测 实 时性 、 系 统 稳 定 性 和 可 扩 展 性 问题 , 提 出基 于 的 策 略 模 型 , 将 策 略 针 对 远 程 诊 断系 统 的特 点进 行 了优 化 和 扩 展 这 个 体 系 结构 已经 在 我 国某钢 铁企 业 中成 功应 用 , 并取 得 了 良好 的效果 , 证 实系 统 具 有 良好 可扩 展 性 、 实 时性和 可 靠 性 参 考 文 献 , , 幻。 , , 基 于 料 高级 编程 徐 金 梧 , 徐科 , 吕志 民 , 等译 北 京 清 华大 学 出 版 社 , , , 彻 朋 企 业 解 决方案 李 师贤 , 郑 红 , 吴 涛 , 等 译 北 京 机械工 业 出版 社 , 宝 兰一英 博思 公 司 开 发人 员 指 南 北 京 机 械 工 业 出版社 , 洲刃 诉 , , , , , , 幻 , , , 们