基于XML和Web Service的异构数据库数据交换

2011-08-01 03:00陈爱华
武汉船舶职业技术学院学报 2011年4期
关键词:数据库系统控件异构

陈爱华

(武汉交通职业学院,湖北武汉 430065)

随着Internet应用的不断普及,Internet上连接着各种类型的数据库系统,形成了大量的信息资源库。由于种种原因,这些信息资源库采用的是不同数据模型的数据库,导致数据共享比较困难,造成了资源很大的浪费。为了共享分布在不同数据库中的信息资源,Internet的异构分布式信息系统正在迅速发展,最终实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享,实现数据的共享和透明访问[1~4]。

1 异构数据库和XML的优势

1.1 异构数据库

异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,在实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:

(1)计算机体系结构的异构,(2)各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中,(3)基础操作系统的异构,各个数据库系统的基础操作系统可以是Unix、Windows NT、Linux等,(4)DMBS本身的异构。所以异构数据库可以是同为关系型数据库系统的Oracle、SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象、函数型数据库等共同组成一个异构数据库系统[6][7]。

1.2 XML技术优势

XML是世界互联网协会(World Wide Web Consortium,WSC)于 1998年2月颁布。由于XML源自标准通用标记语言SGML,XML作为一种可扩展的标记语言,目前已成为信息描述的事实标准。XML与其他语言相比,具有明显的优势,表现在以下四个方面:①XML可以从HTML中分离数据,通过XML,可以在 HTML文件之外存储数据。②XML用于交换数据,通过XML,我们可以在不兼容的系统之间交换数据,将大大减少交换数据时的复杂性,并且还可以使得这些数据被不同的程序读取。③XML可以用于共享数据,通过XML,纯文本文件可以用来共享数据。XML也可以用于存储数据,利用XML纯文本文件可以用来存储数据。大量的数据可以存储到XML文件中或者数据库中。应用程序可以读写和存储数据。④XML可以充分利用数据,XML是与软件、硬件和应用程序无关的,所以可以使你的数据被更多的用户、更多的设备所利用[2,5~6]。

基于XML的优势,下一代的XML数据库目前是研究的前沿,但由于很多标准还在制定中,而且XML读取效率较低,所以目前没有大规模应用。

1.3 WebService优势

Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。Web Service所使用的是Internet上统一、开放的标准,如 H TTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows、Linux)中使用。SOAP协议(Simple Object Access Protocal简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在SOAP协议下,软件组件或应用程序能够通过标准的HT TP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被用户广泛访问[5]。所以Web Service一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。

2 实现过程

2.1 原理和开发环境

基于上述XML和WebService的技术优势,可以把不同结构的数据库中的数据,转换成XM L结构的数据,通过HT TP协议在网络中传输,接收方可以把收到的XML数据进行转换,转换成其他方式的数据。这样,在异构数据系统中实现了数据的透明访问,用户就可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。

软件开发环境,设置了两台服务器,一台安装Linux和Oracle10g,另一台安装Window s2003和SQL 2005,在Oracle和SQL 2005数据库中分别建立一张表DishMenu,两张表具有相同的结构,其中Oracle10g上的有数据,SQL2005上的是空表。另外还设置了一台编程工作站,使用vs 2008为编程工具。

2.2 WebService编程

2.2.1 访问Linux和Oracle平台

打开 VS2008,建立一个 WebService项目DishOrder,并在Web.config文件中配置连接字符串为“Data Source=Linux-Oracle;Initial Catalog=DishDB;Integrated Security=T rue”,表明Linux主机名为Linux-Oracle,建立的Oracle数据库为DishDB。建立一个WebService服务接口,代码如下:

程序运行过程中,输入要执行的SQL语句:SELECT*FROM DishMenu where price=12,作为GetDataView的参数,如图1所示:

图1 WebService执行

相应的SOAP协议表现为:

SOAP 1.2

以下是SOAP 1.2请求和响应示例。所显示的占位符需替换为实际值。

可以看得出来,执行的结果是一个XM L树型结构,包括2条记录,记录的字段名分别为:ID、Name、Price、Type、Peppery、rowguid 6 个关键字,值分别在对应的关键字标记里。

2.2.2 转换成异构数据

由图2可见,SQL语句在Linux+Oracle平台上执行的结果,已经转换成了XML树型结构,下面要做的是把XML结构的数据保存到Windows2003+SQL 2005数据库 DishMenu表中。为此,添加一个GrideView控件,在数据源中选择“XML”文件,添加2.2.1中SQL语句执行的XML结果,XML结构的数据成功的绑定到GridView控件,如图2所示。

图2 XML数据绑定到控件

XML数据成功绑定到GridView控件后,可以为GridView控件添加自动更新事件,事件执行的结果是把GrideView中的数据插入到SQL2005数据库中相应的表中,当然事先要在SQL2005中增加一张与DishMenu的结构一样的表,否则更新数据不能成功。最后看到SQL2005中更新的数据如图3所示,在SQL2005中输入:SELECT*FROM DishMenu where(price=12),执行SQL语句,结果正好是XML结构中的数据,也与在Oracle中执行的结果相同。

图3 SQL2005中SQL执行结果

3 结 语

如何让用户透明使用异构信息资源库,达到资源最大共享,是目前信息资源共享的一个重大阻力,为了解决这个问题,文中 SELECT*FROM DishMenu where price=12 SQL语句,把在 Linux平台上的 Oracle中的数据,通过WebService的调用,执行生存一个XML树型结果,然后把XML中保存的结果放入GrideView控件中。通过GrideView控件的自动更新事件,把数据保存到Windows平台上的SQL2005数据库中。最后在SQL2005中执行相同的SQL语句,得到的结果与保存在XML中的数据相同。这说明,使用XML和WebService可以实现不同平台下的不同数据库之间的数据交换。

1 刘淑梅.基于XML的异构数据库集成技术研究[J].衡水学院学报,2008(2):1-2.

2 巫丹丹,李冠宇,于水明.面向服务的Web异构数据集成体系结构研究[J].计算机与数字工程,2007(8):2-3.

3 俞 勇,蒋烈辉.基于Web Service的医疗保险系统的设计与实现[J].计算机与现代化,2009(02):26-30.

4 胡 泽,廖闻剑,彭艳兵.WebService技术研究及应用[J].硅谷,2009(5):48.

5 吴 迪,陈钢.新一代的Web Services技术[J].计算机应用研究,2003,(03).Vol.5,No.7,March 2009:1644-1646

6 张 洁,卢德唐.异构数据集成方案的优化设计与实现[J].计算机辅助工程,2008(3):2-4.

7 关 辉.异构数据库间数据交换技术研究与实现[M].数据库及信息管理,2007(5):1-3.

猜你喜欢
数据库系统控件异构
试论同课异构之“同”与“异”
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
异构醇醚在超浓缩洗衣液中的应用探索
实时数据库系统数据安全采集方案
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
核反应堆材料数据库系统及其应用