Programming 版 (精华区)
发信人: lofe ()感激生活(), 信区: Programming
标 题: 基于CORBA的多数据源采集技术(4)
发信站: 哈工大紫丁香 (Mon Sep 4 15:21:35 2000), 转信
按照面向对象的分析方法,我们将系统中各组成部分抽象为4类对
象:用户代理对象、全局代理对象、局部代理对象和数据源对象。各
类对象的具体实现对外是封装的,通过接口对外提供服务。每类对象
的接口由模式(描述)和操作组成,它们用IDL定义。4类对象的结构和
它们的联系如图1所示,它们都是CORBA对象类的子类。这4类对象的接
口正好对应于4层联邦结构的模式结构。这里对象的表示采用OMT方法
,方框中第1栏为对象名,第2、3栏为接口部分,分别为对象的属性和提
供的服务。对象间的直联线为通信线。
每类对象按照功能划分成若干个子对象,它们被设计成为可以直
接插在CORBA软件总线上的对象插件。这些对象插件按照多层客户/服
务器结构组成整个平台系统。全局代理完成对客户代理的服务器功能
,局部代理完成对全局代理的服务器功能。全局代理和局部代理起到
整个系统的中间件作用。另外,为了处理平台系统中的事件,在系统结
构中还可增加公告代理对象。
图1 系统总体结构
·客户代理 客户代理主要完成API处理,交互式接口处理和语言
处理。
·全局数据库代理 主要完成查询处理与优化、结果处理、事务
管理、并发控制,以及集成处理和全局字典管理。
· 局部数据源代理 完成局部查询执行、对象包装和局部数据
源联接。
· 公告代理 负责完成监听、接收和发布特殊系统事件,如激活
和消除一个对象,进行故障判断与处理等。
2. 模式集成和对象包装技术
在集成体系结构上,通常采用联邦式多层模式结构。模式分为局
部模式(描述)、出口模式、全局模式和外模式。模式的建立采用3级
模式转换同化方法:1局部模式经对象化包装后生成符合统一模型的出
口模式;2 对相关的出口模式进行集成生成全局模式;3在全局模式基
础上生成能满足应用需要的用户外模式。
出口模式、全局模式和外模式都应采用符合标准的公共模型。
集成模型可采用符合ODMG93标准的面向对象模型。全局语言可采
用符合ODMG93标准的对象定义语言(ODL)、对象操作语言(OML)和对象
查询语言(OQL),并且增加了新的对象集成语言(OIL)。该语言在ODMG9
3的语法基础上扩充对象集成语句和集成后对象的管理语句。
在集成过程中,将根据出口模式间对应关系的描述断言,实现半自
动化集成。模式集成过程分为两个阶段:
(1) 定义阶段: 集成者采用OIL语言定义各出口模式之间的对应
关系断言。对于
语义冲突,需定义对应关系断言;对于描述冲突,需定义在全局模
式和出口模式之间对象类名、属性名和操作名等冲突项的映射。
(2) 集成阶段:根据映射定义和断言定义半自动地生成集成模式
。
对象包装负责实现局部数据源的数据对象化,是实现数据集成的
基础和前提。对于一个数据源,可以将其结构描述信息表示成对象定
义,将其数据构成对象实例,将其提供的服务和操作映射成对象的方法
。具体处理方法有:
(1) 对于有模式的结构化数据源,直接建立局部模式到公共模型
表示的出口模式
映射。例如,对于关系数据库,关系映射成类、关系属性映射成相
应类的属性、元组映射成对象实例。
(2) 对于无模式的半结构化或无结构数据源,首先提取其基本操
作集和操作数据
集,然后抽象出模式结构,再采用操作映射的方法建立起出口模式
与该模式的映射。例如,对于AUTOCAD文件系统,从直线、矩形、圆等
基本元素上的操作中提取出基本操作集,分别将它们抽象成不同的类,
再通过操作映射将它们映射到出口模式中。
(3) 收集数据源中对象之间存在的明显和隐含的语义,进行语义
提炼和丰富,扩
充出口模式中的语义。
3.查询处理技术
系统的全局查询处理过程见图2。
图2 系统查询处理过程
当一个客户发出一个OQL查询去访问集成数据库时,首先系统通过
对象工厂为其创建一个全局代理对象。全局代理对象的位置根据注册
公告区提供的信息,由ORB动态确定,可以存在于网络中任意场地,具有
位置透明性和分布透明性。其缺省场地为本地主机,以减少通信开销
。全局代理中的全局查询服务包含两种对象,全局查询处理对象和全
局事务管理对象。全局查询处理对象从集成模式字典管理对象中取得
全局模式信息,进行查询分解,生成分布执行计划,交付给全局事务管
理对象。全局事务管理对象负责全局事务的正确执行。全局事务管理
对象生成全局子事务,调度全局子事务向局部数据源代理对象的交付,
并且监控全局子事务的执行。
在全局查询处理中,需要进行查询优化,通常采用基于代价的优化
技术,包括减少场地的IO开销,减少查询的通信量,减少场地间的负载
不平衡,并强调利用子查询的并行性 。
局部数据源代理对象负责向局部DBMS交付操作,与全局事务管理
对象一起共同完成全局事务的原子提交。各个局部数据源代理对象并
行地执行全局子查询。另外,全局查询处理还负责处理从局部数据源
代理对象返回的局部结果,进行过滤和合并,生成最终的全局查询结果
。
为了提高局部查询效率,被操作的数据经过对象化处理后,可预先
从数据源中抽取出来,保存在专门的对象存储仓中,这样局部查询可直
接在上面执行,而无需调用局部数据源系统。对于一致性要求不非常
严格的查询、修改不频繁的数据、可用性低的数据源,或者时间响应
要求高的应用,这是一种很有效的解决方法。
--
※ 修改:.haojs 于 Sep 4 15:18:59 修改本文.[FROM: bbs.hit.edu.cn]
--
※ 转寄:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: bbs.hit.edu.cn]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: haojs.bbs@bbs.whnet.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.162毫秒