当前位置: 网站首页 > 理工论文 > 计算机论文 >
阅读论文内容

异构数据访问中间件的设计与实现

时间:2011-06-23 14:02来源:未知 作者:admin 点击:
  

  摘要:提出了一个异构数据访问中间件模型,给出了该模型的体系结构并对各部分功能做了定义,并详细介绍了模板与包装器的设计和实现。
  
  关键词:中间件异构数据
  
  随着信息化建设的不断推进,不少单位与组织建立了各种应用系统。但由于每个系统都有自己的运行环境和数据存储方式,这些数据的格式不统一,各个应用系统彼此封闭,数据难以交换和共享。为了使这些数据能够更好地实现资源共享,为用户提供统一和透明的公共的集成访问界面,可考虑利用中间件(Middleware)技术集成各种异构数据而不用改变原始数据的存储和管理方式,可集中为异构数据源提供一个统一的高层检索服务,是实现异构数据集成的理想解决方案。
  
  1数据模式
  
  异构数据访问中间件必须提供一种全局数据模式来统一异构源数据模式。异构数据集成的全局模式必须满足:(1)能够描述各种数据格式,无论其为结构化还是半结构化,无论它是支持所有的查询语言还是简单的文本查询;(2)易于发布和进行数据交换,集成后的数据可以方便地以多种格式发布和便于应用交换数据。
  
  2系统框架
  
  中间件是一种支持分布式应用的重要组件,它是一种独立的系统软件和服务程序。分布式应用借助中间件在不同的技术间共享资源,为应用提供统一的编程模型,处理异构、分布问题和管理计算资源及网络通信。
  
  大多数数据集成系统框架采用Mediator/Wrapper架构,该架构的缺点是查询效率不高。这是由于底层数据源的数据结构、数据模式、存储方法、查询能力差别很大。数据访问中间件的设计是非常复杂的,包装器同时要兼顾数据转换、数据清洗等任务,并且这还仅是在查询时触发的处理。为此本文采用从原始数据源中预先抽取、转换、加载的思想,对数据源作预处理。
  
  异构数据访问中间件模型HDAM从分布式对象操作和异构数据集成二个方面解决系统互操作问题。首先,HDAM基于CORBA技术,通过CORBA提供的ORB(ObjectRequestBroker)实现分布计算环境中对象操作支持,使不同的应用系统能够方便地与XHDAM交互,达到不同应用系统之间交互的目的,从而实现系统的透明性。另外CORBA提供了完整的分布式对象操作环境,HDAM通过它可以方便地获得操作的完整性和安全性保证。
  
  3模板和包装器的设计与实现通常各应用系统支持的查询模板语法差异很大,不能互用。因此,访问多个异构数据源时需要为不同类型的数据库提供多个符合其相应语法的模板文件,这就增加了项目开发的复杂度。针对以上问题,提出一种独立于具体数据库管理系统的模板脚本语言XTemplate,以支持各种结构化数据源的包装。
  
  3。1XTemplate模板设计
  
  为了访问不同的数据源,需要在模板文件中定义数据源的连接属性。其中:数据库连接属性包括servername、dbparm、database、logid、logpass、autocommit;代码SQL语句属性为xviewsqlcode;视图名称属性为xviewname;视图SQL语句属性为xviewsql。
  
  使用XTemplate定义的模板文件是格式正确(Well-formed)的XML文档,且具有根元素<xtemplate>,可用来提供数据源连接参数servername、dbms、dbparm、database、logid、logpass、autocommit。
  
  具有xviewname属性和xviewsql属性的子元素称为视图模板元素,因为其提供了表征数据集的名称和SQL语句的二个属性。xviewname属性提供视图名称,xviewsql属性提供视图SELECT语句。SELECT语句中可以用:p_xviewname:p_columnname的形式传递父视图的列名给子视图,以反映视图间的连接关系。
  
  采用XTemplate之后,结构化的数据源需要解释执行的是XTemplate解析执行软件传递来的SQL语句,这是结构化的数据源通常会提供的标准功能。结构化的数据源返回的数据集仍由XTemplate解析执行软件转换为XML结果文档,并返回给调用者。
  
  3。2包装器的设计与实现
  
  包装器是一个模板文件解析程序,只要传入不同的模板文件即可生成对应的文档。包装器工作过程如下:从传来的模板文件建立DOM对象,取得数据库的连接属性,进而连接数据库;从XTemplate模板文件的xviewsql属性获得SELECT语句,在数据库表或视图中执行此查询语句,建立视图数据集;将数据集中的相关数据代入。关键解析算法如下:
  
  //predealdom方法建立视图,复制建立的所有元素
  
  Voidpredealdom(domobject&root){
  
  //视图模板元素指有xviewsql属性的元素
  
  If(root不是视图模板元素){
  
  对root所有子元素递归调用predealdom;
  
  }
  
  else{
  
  视图序号增加;
  
  为root添加xviewindex属性,值为当前

------分隔线----------------------------
联系我们 | 关于我们 | 论文发表 | 论文指导 | 论文分类 | 期刊投稿 | 付款方式
  • 投稿信箱:byfabiao@126.com
  • 论文范文-毕业论文格式-核心期刊论文发表-职称论文发表 杭州弘连教育科技有限公司 版权所有 2008-2018