日期:2023-01-24 阅读量:0次 所属栏目:信息管理
摘 要:本文针对目前存在的数据库系统,提出一种基于COM/DCOM集成技术下的多种异构数据库下的数据访问控制系统模型,该方案利用COM/DCOM解决系统的分布性和异构性,有效地集成了各种分布的、异构的数据库系统。
关键词:COM;DCOM;多数据库系统;分布式
1、前言
随着计算机网络技术和分布式计算的飞速发展,越来越多的用户希望能够访问和处理多个不同数据源中的数据。在此情况下,出现了多数据库系统。多数据库系统(MuitidatabaseSystem,简称MDBS)的研究开始于80年代,至今已经有二十多年的发展历史,多数据库系统是多个现存的、自治的、异构的数据库系统的联合。多数据库系统在所有局部数据库系统之上构成全局系统管理层,提供外部用户接口,使用户能实现对异构数据库的透明访问。
通过分析发现,目前的多数据系统只是对异地数据库访问支持,有很大的局限性,而对多数据库系统中的事务管理、异构模式消解、全局视图维护等关键技术都没有提供很好的解决方案。
90年代,网络技术的发展使组件化程序设计的思想促使人们把多数据库系统与COM/DCOM结合起来。一方面,可以大大提高系统的可管理性、可维护性、可伸缩性和可集成性等,使多数据库系统的开发、使用和维护都变得简单;另一方面,这两者的结合也为先进的分布式组件对象技术提供了一个广阔的应用领域。因此,分布式组件对象技术在多数据库系统领域里得到广泛应用。
2、COM/DCOM技术
基于对大型软件开发的困难性、软件开发的协调性、软件复用、软件的互操作性、软件的跨平台性等问题的研究,Microsoft提出了COM/DCOM技术,并得到科学实践的验证及进一步发展。
COM/DCOM是建立在面向对象技术的基础之上,是面向对象技术的扩充和发展。它继承了面向对象技术的优点,克服了面向对象技术的缺点,提供了分布式计算环境。它采用面向对象的多层客户/服务器计算模型,该模型将分布在网络上的全部资源都按照对象的概念来组织,为网络上的大型软件开发建立全新的技术框架。因此,COM/DCOM是一种构造软件组件的二进制标准。
2.1COM简介
COM是一种构造软件组件的二进制标准,而面向对象技术是组件式设计思想的基础。它使得组件和客户端无需任何中介组件就能相互联系,其规范所定义的组件模型具有面向对象、语言无关性、进程的透明性、可重用性等特点。目前,COM自身得到了很大的发展,己经遍布于Microsoft的各种软件产品中。
在Windows系统平台上,一个COM组件或是一个DLL(动态连接库)文件,或是一个EXE(可执行)文件。一个组件程序可以包含多个COM对象,每一个COM对象可以实现多个接口。它们的关系可展现如图1所示。
图1 COM组件、COM对象和COM接口关系
2.2DCOM简介
DCOM是COM的无缝扩展,它充分利用基于COM的应用、组件开发工具及知识,并把它们转移到分布式计算的应用领域,实现了不同计算机上的组件对象与客户程序之间或组件对象之间在网络上的相互通信,具有平台无关性、协议无关性、语言无关性、组件位置独立性和可扩展等优点。它建立在分布式计算环境(DCE)的远程过程调用(RPC)之上,采用DEC RPC的NDR格式来进行数据分组和传输,并利用DEC PC的安全机制进行数据的安全认证和一致性检查。
DCOM的基本工作过程如图2所示。
图2 DCOM的工作过程图
3、基于COM/DCOM的多数据库系统结构
随着COM/DCOM技术的发展及标准化工作的完善,COM/DCOM已成为主流技术,符合COM/DCOM规范的产品也逐渐不断地被推出并开始被广为采用。COM/DCOM目前已经是一项比较成熟的分布式面向对象技术,COM/DCOM非常适用于多数据库系统的有效管理。
本系统模型采用了一种全新的解决方法,在应用服务器中直接提供支持,这种方案才能保证分布式程序的运行效率,特别是在于需要大量数据进行处理的系统相连上尤为明显。采用本系统模型可以拥有分布计算的支持,可应用服务器支持移动计算工作方式。该模式是数据库缓存更新的发展,用户与应用服务器相连并且从应用服务器上获得数据,然后将缓存在本地的数据更新,可对数据进行各种离线处理和分析,用户与应用服务器重新连接后,可以一次新的将离线所作的处理更新到数据库服务器中。
COM组件主要负责Web服务器和数据库服务器,通过间接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询并将查询结果格式转化成HTML页面,通过Web服务器返回给用户浏览器。
多数据库系统的体系结构如图3所示。
图3 多数据库系统的体系结构
4、系统实现
利用Visual C++中的ODBC技术可以极大地减少软件开发的工作量,提高了效率并增强了软件的可靠性。ODBC API是由ODBC提供的一组函数调用接口,其主要功能就是将SQL语句发送到目标数据库,然后处理这些SQL语句返回的结果。下面是通过ODBC API连接数据库的主要步骤及其所涉及到的重要函数。
4.1连接一个已经配置好的数据源
CDatabasem_database;
If(!())
{If(!(_T(""Test"")))
Assert(""不能打开该数据源"");
}
();
4.2动态连接数据库
由于与数据库的连接是通过Cdatabase类对象来实现的,所以可以通过赋予CrecordSet类对象参数m_pDatabase以连接不同数据库的Cdatabase对象指针,就可以动态地连接数据库:
void CDB::ChangeConnect()
{Cdatabase*pdb=m_pSet->m_pDatabase;
Pdb->close();
switch(m_id)
{
case 0:
if(pdb->Open(_T(""ES"")))
{AfxMessageBox(""打开失败"",""检查ODBC连接"";
exit(0);}
case 1:
if(!pdb->Open(_T(""Motor"")));
{AfxMessageBox(""打开失败"",""检查ODBC连接"";
exit(0);
}m_id=0;break;
}
}
4.3动态连接表
表的动态连接可以利用在调用CrecordSe:tOpen()函数时指定SQL语句来实现。
5、结束语
本文提出一种基于COM/DCOM的多数据库模型。COM/DCOM技术是解决多种异构数据库环境下的据库信息处理的一种有效的方法。由于其先进性、可扩展性、可配置性、灵活性、可靠性和先进的多层结构等的优点,它不但可以解决数据库异构的问题,更是解决操作系统异构的最有效的方法。我们有理由相信组件对象技术将是解决数据库系统集成的优良方案,在企业集成应用系统中将起到重要的作用,将是数据库技术的一个新的发展趋势。
参考文献:
[1]李瑞轩.多数据库系统原理与技术[M].电子工业出版社.2005.
[2]王珊,萨师煊.数据库系统概论(第4版)[M].高等教育出版社.2007.
[3]刘美香.基于COM/DCOM的多萨师煊,数据库系统[D].昆明理工大学.2002.
[4]刘艳梅,赵敬中等.基于COM/DCOM组件标准集成异构数据库[J].北京理工大学学报.2000(10). 本文链接:http://www.qk112.com/lwfw/jsjlw/xinxiguanli/258798.html