APP下载

COM/DCOM集成的多数据库系统的研究

2010-10-09张跃进

赤峰学院学报·自然科学版 2010年6期
关键词:数据库系统数据源异构

张跃进

(华东交通大学 信息工程学院,南昌 江西 330013)

COM/DCOM集成的多数据库系统的研究

张跃进

(华东交通大学 信息工程学院,南昌 江西 330013)

基于COM/DCOM集成多种异构数据库下,如何进行多数据库的访问,针对此问题,提出了一种使用COM/DCOM集成技术下的多种异构数据库下的数据访问控制系统模型.

多数据库系统;COM;DCOM;分布式

上世纪八十年代中期多数据库系统的概念首次提出后,立即引起了数据库方面研究人员及数据库厂商的密切关注,到1987年左右,多数据库系统的理论研究已形成体系,并出现了第一批原型系统,同时各主要数据库厂商也分别推出了支持多数据库系统的商业产品.虽然越来越多的数据库厂商都声称提供对多数据库系统的支持,但通过对这些产品的分析可以发现,这种支持往往只是对异地数据库访问的支持,有很大的局限性,而对多数据库系统中的事务管理、异构模式消解、全局视图维护等关键技术都没有提供很好的解决方案.而且一个数据库厂商的多数据库系统产品一般只支持自己的数据库加入多数据库系统,对底层数据库异构性的支持还远远不够,系统只支持全局查询而不支持全局修改.

目前多数据库系统技术已在国际上获得了广泛的认同,各个国家都有研究组织在进行相应的研究,并且推出了各自的原型系统及商品化的产品.目前多数据库系统技术和产品的研究还处于生长期,有很多技术问题还没有很好解决,市场上还未出现主流的产品,是国内开展该技术研究,推出自己产品的好时机.

1 多数据库系统的发展

数据库技术的发展导致了众多数据库系统的出现,这些数据库可能在物理上和逻辑上都存在着差异,集成已有的数据库和文件系统的多数据库系统成为发展的必然趋势.网络技术的发展为用户访问和处理多数据库中的数据提供了可能,使得多个异构的数据库之间可以共享它们相互依赖的数据,并具有相互操作的能力.多数据库系统(MBS)是为在多个数据库之间实现互操作,解决数据资源共享的一种技术途径.多数据库系统屏蔽了已有的各数据库系统不同的访问方法和用户界面,给用户呈现一个访问多种数据库的公共接口,减少各数据库之间的差异[1,2].

COM/DCOM技术是全新的编程技术,具有平台无关性、面向对象、安全、高性能、分布式,多线程等特点,使COM/DCOM成为当前最为类型的编程语言和平台[3].对于多数据库系统联合访问和数据交换,使用COM/DCOM技术可以解决不同的操作系统和不同的数据库管理系统之间的数据处理.对于多数据库访问,COM/DCOM技术可以提供一个比较强大、灵活的解决方案.通过构造多个会话,在模型组件里处理数据库的连接、定义,查找、插入、删除操作等方法,创建和部署COM/DCOM实现对多数据库的访问.

2 多数据库系统的异构

对于多数据库系统来说,由于各部门的数据库建设不同步,存在着异构机、异构型数据库的现象,基于单一数据库产品开发的系统已经难以适应新应用的需要,许多应用涉及多个不同数据库系统,需要联合使用,就需要解决异构数据库的问题.

实现异构数据库的集成,首先要对加入的数据库资源实现完全透明的访问,既要保证全局数据的共享,又要保证各数据库管理系统的自治,确保基于不同系统平台实现对异构数据库的查询和联合使用,并提供一个独立于特定的数据库管理系统的统一编程界面.异构数据库系统的集成技术主要分为三种:异构模式的消解、查询处理、事务处理[4].如图1所示:

图1 异构数据库系统集成示意图

对于访问各个异构数据库,可以采用ODBC方式.ODBC是微软为方便异构数据库之间进行数据共享,专门提出的一个用于数据库访问的应用程序编程接口(API).它使用结构化查询语言(SQL)作为其数据库访问语言.ODBC通过使用驱动程序来提供数据源的独立性,并完成ODBC函数调用以及与数据源的对话.

2.1 异构模式的消解

一般可采用建立全局统一的公共数据模式来实现异构模式的消解.为了满足公共数据模型设计过程中通用性的要求,并且能够表示各种数据库中不同格式的数据,以适应各个LDBS(局部数据库系统)的各种不同情况,任何局部数据库类型数据都要转换成公共数据模式当中的类型,以此来屏蔽各个数据源数据模型在数据结构、行为和类型约束等方面的差异,并能给出差异之间的映射关系.这种模式又称为全局模式(Globalmodel),全局模式是通过全局数据字典实现的.全局数据字典包括下列内容:全局构成表、关键字表、数据类型表.

2.2 查询处理

查询处理包括三个部分:查询分解、查询变换和查询优化.用户提交的查询语句是全局查询语句(GSQL),包括对多个LDBS的访问.全局查询语句要分解为相应的针对各个LDBS的子查询.此时的查询语句还是用全局查询语言写的,所以需要将子查询语句转换为用LDBS的查询语言写的查询语句.为了达到更优的系统性能,还必须有查询优化器对查询进行优化.

2.3 事务处理

事务处理的主要问题就是LDBS的自治性问题,也就是一个局部DBMS是否允许和在什么程度上允许共享它的控制信息.对LDBS的操作是通过事务处理来完成的.事务处理主要分为两类:

2.3.1 局部事务:LDBS的本地事务,由局部数据库的管理系统来完成,只存取本地数据,不受全局数据库控制且不为其所知.

2.3.2 全局事务:在全局数据库系统的控制之下完成.一个全局事务可以分解为若干个子事务,每一个子事务只需存取一个LDBS中的数据,在该局部数据库的管理系统的控制之下作为一个本地事务来完成.

对于访问各个异构数据库,可以采用ODBC方式.ODBC是微软为方便异构数据库之间进行数据共享,专门提出的一个用于数据库访问的应用程序编程接口(API).它使用结构化查询语言(SQL)作为其数据库访问语言.ODBC通过使用驱动程序来提供数据源的独立性,并完成ODBC函数调用以及与数据源的对话.

3 COM/DCOM技术

COM(Component Object Model,组件对象模型),是一种以组件为发布单元的对象模型.COM不仅定义了组件程序之间进行交互的标准,并且也提供了组件程序运行所需的环境.组件对象之间交互的规范不依赖于特定的语言,所以COM是不同语言协作开发的一种标准.

DCOM(分布式组件对象模型),是一个高层网络协议,是对COM技术的扩展,它能使COM组件在不同机器上的两个进程间进行通讯和协作,从而使应用程序可在位置上达到分布性.COM运行库向客户和组件提供了面向对象的服务,并且使用RPC和安全机制产生符合DCOM协议标准的网络包.

B/S三层结构建立了一种基本的软件建模思想,它主要针对分布式应用软件系统.层与层之间可以通过COM接口联系起来,它们可以运行在不同的进程中,甚至运行在不同的机器上.COM及DCOM提供了进程透明和位置透明特性.

COM组件主要负责Web服务器和数据库服务器,通过间接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询并将查询结果格式转化成HTML页面,通过Web服务器返回给用户浏览器.

COM在Windows平台上已经根深蒂固,并且正在向其他的操作系统发展.只要把应用系统建立在以COM为基础的平台上,在开发过程中既不需要考虑跨网络调用,也不需要考虑数据源的差异,甚至在异构网络环境中建立类似的应用系统也就成为可能.

DCOM作为COM的扩展,继承了COM的语言无关性、可重用性等优点,还有针对分布式环境的一些新特性,如位置透明、网络安全性、跨平台调用等.

DCOM的结构图见图2:

图2 DCOM的基本结构图

使用COM/DCOM技术可以访问各种不同类型的数据库,而且支持数据库的“事务”的机制,这样使对数据的处理能够保证数据的一致性.所以使用COM/DCOM技术能实现对多个数据库的访问,而且安全性、持续、事物、并行性和资源的管理由容器来管理,这样使编程具有简单性.

基于Web的多数据库访问是电子商务和电子政务迅速发展而出现的一种多数据库联合应用的形式.在数据库异构,操作系统异构的条件下,对于数据量很大的这种多数据库应用问题,只有COM/DCOM技术才有能力解决.可以定义的一组标准的COM/DCOM扩展的开发接口(API).这些应用程序编程接口为各种各样的中间件实现了不依赖供应商的编程接口,COM/DCOM技术把组件的概念从客户机域扩展到了服务器域,它使COM/DCOM技术发展成为一种强健的、可伸缩的环境,能够支持以任务为关键的企业信息系统.

COM/DCOM的接口定义语言IDL丰富以及对多平台的支持,NT的网络稳定性也已经提高提高.在COM/DCOM规范上实现分布式管理的应用将得到广泛的应用,COM/DCOM分布式对象技术正逐渐成为分布式计算环境发展的主流方向,使用分布对象技术开发的系统具有机构灵活性、软硬件平台无关性、系统可扩展性等优点,特别适用于网络环境下的分布系统开发;能够有效地解决异构环境下的应用互操作性和系统集成.

4 基于COM/DCOM集成的多数据库系统

随着COM/DCOM技术的发展及标准化工作的完善,COM/DCOM已成为主流技术,符合COM/DCOM规范的产品也逐渐不断地被推出并开始被广为采用.未来大型信息系统的集成和大型软件系统的开发将离不开它们所带来的方法、手段和工具,COM/DCOM规范和相关产品正愈来愈受信息技术界与产业界的重视.各厂商正在积极建立和调配实际的COM/DCOM系统,并使用COM/DCOM技术来解决各行业中的基本问题.COM/DCOM技术也同样非常适于在电信领域内的应用.COM/DCOM目前已经是一项比较成熟的分布式面向对象技术,COM/DCOM非常适用于多数据库系统的有效管理.

可采用多层B/S架构(客户端浏览器层、Web服务器层、应用服务器层、数据库层)、并采用了J2EE及EJB技术实现系统的分布异构及跨平台.在系统数据库选择时有跨多数据库的需求,在系统数据库物理设计时对跨数据库的设计及规范化是关键问题.

数据库被规范化后,减少了数据冗余,数据量变小,数据行变窄.这样DBMS的每一页可以包括更多行,那么每一区里的数据量更多,从而加速表的扫描,改进了单个表的查询性能.但是,当查询涉及多个表的时候,需要用很多连接操作把信息从各个表中组合在一起,导致更高的CPU和I/O花销.那么,有很多时候需要在规范化和非规范化之间保持平衡,用适当的冗余信息来减少系统开销,用空间代价来换取时间代价.如果OrderDetail表中的数据量是在百万级的,那么一次查询所需要的时间可能会达到好几个小时.事实上,只要在设计时保证数据的逻辑有效性,很多信息都可以直接冗余在OrderDetail表中,这些冗余的数据能够极大的提高查询的效率,从而减少CPU和I/O操作.主键用整型会极大的提高查询效率,而字符型的比较开销要比整型的比较开销大很多,用字符型数据作主键会使数据插入、更新与查询的效率降低.数据量小的时候这点降低可能不会被注意,可是当数据量大的时候,小的改进也能够提高系统的响应速度.因此在数据库设计时,都采用整形作为关键字.

本系统模型采用了一种全新的解决方法,在应用服务器中直接提供支持,这种方案才能保证分布是程序的运行效率,特别是在于需要大量数据进行处理的系统相连上尤为明显.B/S三层结构建立了一种基本的软件建模思想,它主要针对分布式应用软件系统.层与层之间可以通过COM接口联系起来,它们可以运行在不同的进程中,甚至运行在不同的机器上,COM及DCOM提供了进程透明和位置透明特性[5].

COM组件主要负责Web服务器和数据库服务器,通过间接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询并将查询结果格式转化成HTML页面,通过Web服务器返回给用户浏览器.如图3所示:

COM在Windows平台上已经根深蒂固,并且正在向其他的操作系统发展.只要把应用系统建立在以COM为基础的平台上,在开发过程中既不需要考虑跨网络调用,也不需要考虑数据源的差异,甚至在异构网络环境中建立类似的应用系统也就成为可能.

图3 建立在COM/DCOM基础上的B/S多数据库体系结构

组件不同于传统应用程序中的模块或类,组件是已经编译、链接好并可以使用的.各定制的组件可以在运行时同其它组件连接起来构成应用程序,在需要对应用程序进行修改时,只需将某些组件用新的版本替换即可.并且可从已有的组件中建立全新的应用,真正达到软件复用的目的.

COM/DCOM作为一种软件原型标准,对于如何建立组件并通过组件构建应用程序提供了规范,改变了传统的程序设计方法.它结合面向对象技术和组件技术两种特性,对象特性使得应用系统的设计和实现更加符合现实世界的面貌;组件特性使得应用系统可以充分发挥组件的优势,以适应现代应用的需要.

由于COM/DCOM主要实用与Window NT/95/98/2000环境,平台的专有性无疑是其最大的缺陷.采用本系统模型可以拥有分布计算的支持,可应用服务器支持移动计算工作方式.该模式是数据库缓存更新的发展,用户与应用服务器相连并且从应用服务器上获得数据,然后将缓存在本地的数据更新,可对数据进行各种离线处理和分析,用户与应用服务器重新连接后,可以一次新的将离线所作的处理更新到数据库服务器中.

5 系统设计原则

由于在体系结构方面和模式结构方面会存在模型不一致的问题,有可能引起概念的混淆和不相容,因此选择COM/DCOM作为系统的公共数据模型可以减少这种情况的发生.

服务的确定和组织应基于以下原则:

(1)自治性原则:局部系统的持有者有权决定为分布式系统的用户提供哪些服务和客户以何种方式调用这些服务.

(2)可联编原则:服务必须提供能与对象实现联编的接口.

(3)粒度划分原则:通常服务或对象的粒度可大可小,没有一个统一的限定.最常用的选择是将每个局部系统封装成一个对象,局部系统所提供的服务是查询服务.

接口选择:服务方可以选择基于特定类型的静态轮廓接口或选择动态轮廓接口来联编对象实现.

安全问题:MTS推荐使用基于角色的安全模型,这种模型以MTS服务进程为安全单元,它不单独定义组件的安全角色.同时,MTS还提供了另一种高级安全模型,环境对象除了实现ObjectControl接口,它还实现了另一个安全属性接口Insecurity Property,利用此接口,对象可以获得创建对象的客户的SID以及当前调用此对象的客户的安全标识符.

6 VC下系统的实现

利用VisualC++中的ODBC技术可以极大地减少软件开发的工作量,提高了效率并增强了软件的可靠性.当ODBC数据源配置好以后,应用程序就可以通过对ODBC API的直接调用来建立对数据库的连接和处理数据库中的数据.ODBC API是由ODBC提供的一组函数调用接口,其主要功能就是将SQL语句发送到目标数据库,然后处理这些SQL语句返回的结果.下面是通过ODBC API连接数据库的主要步骤及其所涉及到的重要函数[6].

(1)连接一个已经配置好的数据源

(2)动态连接数据库

由于与数据库的连接是通过Cdatabase类对象来实现的,所以可以通过赋予CrecordSet类对象参数m_pDatabase以连接不同数据库的Cdatabase对象指针,就可以动态地连接数据库:

(3)动态连接表

表的动态连接可以利用在调用CrecordSe:tOpen()函数时指定SQL语句来实现.

7 结束语

COM/DCOM技术是解决多种异构数据库环境下的多数据库信息处理一种有效的方法,系统具有更多不同的数据类型、数据库语言、事务模式、封锁协议、接口特性等.它不但可以解决数据库异构的问题,更是解决操作系统异构的最有效的方法.这样可以达到不同信息资源的共享及信息的综合统计查询,这也是企事业单位迫切要解决的实际问题. COM/DCOM技术能更好的解决异构数据库环境下的电子商务和电子政务方面的信息交换问题.COM/DCOM的面向对象及分布式属性、操作系统和平台无关性、它的事件通知功能、高效的通信机制及其网络安全技术,均符合多种异构数据库系统管理的功能要求.

〔1〕萨师煊,王珊.数据库系统概论(第4版)[M].北京:高等教育出版社,2007.

〔2〕高世伟,刘彩虹,刘亚利.基于DCOM技术实现的控制系统[J].微计算机信息,2005,7(3):23-26.

〔3〕Corry Mayfield Cadman.COM/DCOM编程指南[M].北京:清华大学出版社,2000.

〔4〕何海江.C#程序与基于COM的OPC数据存取服务器交换数据研究[J].微计算机信息,2004(10):112-114.

〔5〕Dale Rogerson.COM技术内幕 [M].清华大学出版社, 1998.

〔6〕刘美香.基于COM/DCOM的多数据库系统[D].昆明理工大学,2002.

〔7〕刘春霞,陈殿波.利用ODBC技术实现异构数据源数据的共享[J].计算机与数字工程,2007(2):154-156.

〔8〕康萍.COM组件技术及其在三层结构模型中的应用[J].微电子学与计算机,2005,22(6):181-183.

〔9〕刘艳梅,赵敬中,等.基于COM/DCOM组件标准集成异构数据库[J].北京理工大学学报,2000(10):58-59.

TP311

A

1673-260X(2010)06-0027-04

江西省科技厅自然科学基金项目(2007GZS0886)

猜你喜欢

数据库系统数据源异构
试论同课异构之“同”与“异”
Web 大数据系统数据源选择*
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
基于不同网络数据源的期刊评价研究
异构醇醚在超浓缩洗衣液中的应用探索
实时数据库系统数据安全采集方案
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
核反应堆材料数据库系统及其应用