基于SOA的网格异构数据集成方法转让专利

申请号 : CN200810237211.1

文献号 : CN101546325B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘宴兵刘章雄

申请人 : 重庆邮电大学

摘要 :

本发明公开一种基于SOA的网格异构数据集成方法,涉及软件体系技术。该方法基于面向服务架构的基本思想,提出了基于网格服务的异构数据集成框架及方法,它能够透明地访问异构数据并且使框架各层具有低耦合性,利用此框架结合struts的MVC流程图,开发出信息管理系统(InformationManagement System,IMS),它不仅能够保证数据源的灵活动态改变,而且使得用户能够得到及时响应。本发明提出的基于SOA的网格异构数据集成方法,可以满足现有的信息管理系统的要求,需要更少的硬件开销,可以查询海量的异构数据;其访问数据库所需的往返时间、CPU占有率等性能均优于现有数据集成方法。

权利要求 :

1.一种基于面向服务架构SOA的网格异构数据集成方法,其特征在于,基于SOA的网格异构数据集成框架自底向上分为三层,分别为网格数据服务层、网格数据集成层和网格数据显示层,该方法包括以下步骤,网格数据服务层通过网格数据服务访问分布在网络上的异构数据源,以不同的数据源驱动程序部署到网格数据集成服务中,并负责网格数据集成层请求的服务和操作;网格数据集成层将底层数据源部署于网格服务,得到服务资源对象,根据服务资源对象数量判定数据集成过程中是处于无网格数据集成还是网格数据集成状态,当处于无网格数据集成状态,选定的数据源供用户查询,将查询结果提交网格数据显示层,以虚拟数据库视图方式提供用户,当处于网格数据集成状态,对选定的源服务资源对象进行数据查询并存储,在存储的过程中,对数据表之间属性进行约减,得到属性一致以及无噪声数据的目标服务资源对象;网格数据显示层提供虚拟统一服务接口,将来自各服务资源对象的查询响应合并为一个结果集。

2.根据权利要求1所述的基于面向服务架构SOA的网格异构数据集成方法,其特征在于,在无网格数据集成状态下,数据查询部分根据用户选定的数据源标识ID号查询用户选择的服务资源对象;在网格数据集成状态下,利用数据服务数,产生出服务资源对象service[i],根据服务资源对象累加值i的变化,选定数据集成过程中相互集成的服务资源对象,对服务资源对象中的数据进行处理。

3.根据权利要求1所述的基于面向服务架构SOA的网格异构数据集成方法,其特征在于,所述对数据表之间属性进行约减的匹配规则包括对服务资源对象的数据表之间的属性进行约减和语义转换,在服务资源对象的数据表之间建立字段数逻辑关系,依次根据小于、等于、大于、相似和不等于逻辑关系,判断数据表之间字段数是否一致,并且在格式转换过程中将数据表中具有相似属性名称进行统一。

说明书 :

基于SOA的网格异构数据集成方法

技术领域

[0001] 本发明涉及计算机领域,尤其涉及一种数据集成方法。

背景技术

[0002] 随着信息化的普及、分布式计算技术、数据库技术和网格计算的广泛应用,各种数据存在异构集成和接入访问困难的问题日趋严重。各类信息管理系统的数据,包括关系数据库、扩展标记语言(XML)文档、Web页面等,由于数据库的异构性、数据模型及存储方式的差异,不同的数据库之间的数据共享比较困难,形成了一个个的信息孤岛,资源管理及互操作性困难,这就使异构数据集成成为数据库应用领域的一个有待解决的关键技术问题。
[0003] 从数据集成的发展过程看,先后出现的体系结构主要有三种,即多数据库系统、中间件、面向服务的体系结构。
[0004] 多数据库系统是一种能够接受和容纳多个异构数据库的系统,能够提供统一的多数据库操作语言和公共接口(如ODBC,JDBC)以访问成员数据库,对外能够呈现一种集成结构,而对内又允许各个异构数据库的“自治性”。在多个异构数据库集成时,能够通过映射各异构的局部数据库的概念模式而得到全局统一的概念模式。但是用户必须指明所要访问的数据库,数据间的完整性和一致性必须由用户和应用程序定义和维护。这种方式没有解决透明存取问题,适合于集成少量数据。
[0005] 基于中间件的异构数据集成方法,是一种性价比较高的解决方案。在不影响原有系统的基础上,构建中间层的数据集成组件,有效地实现现有系统的快速集成。通过使用中间件技术(Microsoft的DCOM,OMG的CORBA和Sun的RMI等),可以在数据库系统和应用系统之间构建中间层,对数据库的操作都通过中间层来进行,为应用层提供完全一致的接口。它位于异构数据源系统和应用程序之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口,为异构数据源提供一个高层次检索服务,避免了系统开发代价大,代码难以重用的问题,但它不能有效地解决跨网络通信,紧耦合特性使之难以适应数据源的动态变化。
[0006] 基于面向服务体系结构实现异构数据集成方法主要有两种,第一种基于面向服务架构(service-oriented architecture,SOA)的Web Service技术可直接将各种应用程序、服务和设备链接起来,实现在不同平台之间以一致的方式交换和描述数据,为实现信息共享、互操作和集成提供了新的解决方案。并且支持动态数据集成和组合异构环境中的服务,可使用大量工具和现有服务,降低了信息集成的复杂性。第二种基于网格技术实现异构数据集成。在中国专利(专利申请号200710176557)中公开网格环境下模式复用的异构数据库访问和集成方法,它不仅能更加灵活地适应数据源动态变化,而且为数据集成中的大量数据传输提供了可靠的文件传输服务,为资源使用者提供了访问数据库的全局访问接口,能够从数据库注册到使用的全部过程。但其在基于服务导向架构下虚拟数据库服务效率不高,对非数据库资源集成有待提高。

发明内容

[0007] 本发明所要解决的技术问题是:针对服务架构的异构数据集成技术中存在虚拟数据库服务效率不高、非数据库资源集成度不够和多数据库集成技术在海量异构数据领域中不能适应数据源的灵活动态变化的情况下,设计出一种基于SOA的网格异构数据集成方法,利用网格环境的高效处理能力可以实现海量数据和已有的众多的数据库资源的有效集成,有效利用资源,为网格环境内实现数据库资源的高效管理、大数据的分析处理提供强有力的支持。
[0008] 本发明解决上述技术问题的方案是:以异构数据集成为切入点提出了基于SOA的网格异构数据集成框架,将网格异构数据集成框架分为网格数据服务层、网格数据集成层和网格数据显示层三层,该框架充分利用了SOA的灵活性,能够更快地响应数据需求,使得用户能够快速应对变化并有效地做出响应。而且,各个子模块松耦合的设计使得系统具有良好的灵活性。
[0009] 最底层是网格数据服务层,负责实现数据集成模块请求的网格数据服务以及数据源的具体连接等。并且所有的网格数据服务在初始化时就设定生命周期和信息安全机制。以保证良好的执行性能和响应能力,所以能够解决已有集成技术在海量异构数据领域中不能适应数据源的灵活动态变化问题。
[0010] 网格数据集成层是异构数据集成框架的核心层,它负责网格数据集成服务发现、数据查询、数据语义转换、数据传输、数据访问等核心部分。网格数据集成服务发现部分可以灵活地判断无网格数据集成和网格数据集成状况。在无网格数据集成情况下,数据查询部分根据用户选定的数据源ID号就可以查询到用户选择的数据源,查询到的数据源提交给网格数据显示层,以虚拟数据库视图方式供用户对数据进行查询与更新。在网格数据集成情况下,利用部署到网格中的数据服务数,产生出服务资源对象service[i],根据i(服务资源对象累加值)的累加变化,可以选定数据集成过程中用于相互集成的源数据库。在选定的服务资源对象中查询数据,将查询到的数据以文本转化WebRowSet格式进行数据流化,利用数据集成层中的缓存机制对查询到的数据进行缓存,并在选定的目标数据库中创建临时表,临时表存储源数据库查询得到的缓存数据,另外,在存储的过程中,采用匹配规则对数据表之间属性进行约减,进而得到属性一致以及无噪声数据的目标数据库。如果创建了临时表的目标服务资源对象存在,把目标服务资源对象得到的数据返回到虚拟数据库中,供用户透明查询。所述匹配规则包括对服务资源对象的数据表之间的属性进行约减和语义转换,在服务资源对象的数据表之间建立字段数逻辑关系,依次根据小于、等于、大于、相似和不等于逻辑关系,来判断数据表之间字段数是否一致,并且在格式转换过程中将数据表中具有相似属性名称进行统一。在目标数据库中查询到的集成数据提交给网格数据显示层,以虚拟数据库视图方式供用户对数据进行查询与更新。这层充分利用了网格的可靠传输机制,解决了异构数据集成中的数据传输安全问题。同时,在网格异构数据集成情况下,该方法有效地解决已有集成技术非数据库资源集成度不够的问题。
[0011] 数据显示层提供了虚拟统一服务接口,对数据库查询结果合并,将来自各服务资源对象的查询响应合并为一个结果集,该结果集的元数据结构能够匹配所访问的虚拟数据库模式。提供对查询得到的数据进行显示或更新操作,并由Action负责把这些操作请求信息传递给数据集成层。该层可以让用户使用标准的SQL查询语句对选定的数据库进行查询,并提供透明的访问模式,所以有效地解决底层异构本发明数据源的差异性问题。能够供用户对数据进行透明的访问。
[0012] 本发明基于SOA的网格异构数据集成框架,开发出信息管理系统(Information Management System,IMS),从利用数据集成方法查询得到的数据结果、系统访问数据库往返时间和CPU占有率情况三个方面,比已有集成系统体现出更加的灵活性和实用性。
[0013] 通过本发明提出的基于SOA的网格异构数据集成方法,可以满足现有的IMS的要求,需要更少的硬件开销,可以查询海量的数据;解决了数据集成中各层的低耦合性、可扩充性和非数据库资源集成度不够等问题,可使信息使用者对数据的访问不受数据格式、数据位置和访问接口差异限制,能够达到数据源集成的自治性,在保证集成过程中的访问完整性以外,还能保持数据源各自的独立性和准确性。
[0014] 附图说明图
[0015] 图1所示为基于SOA的网格异构数据集成框架示意图
[0016] 图2所示为本发明数据集成方法实现流程图
[0017] 图3所示为基于SOA的网格异构数据集成的IMS结构流程图
[0018] 图4所示为基于SOA的网格IMS的查询结果图
[0019] 图5所示为异构数据集成系统访问数据库往返时间比较图
[0020] 图6所示为异构数据集成系统访问数据库CPU占有率比较图

具体实施方式

[0021] 本发明基于网格嵌入面向服务体系结构(SOA)思想,提出一种基于SOA的网格异构数据集成方法,通过该方法完成对分布存储在异构数据库中的海量数据进行访问和集成操作,使得为信息管理系统(Information ManagementSystem,IMS)开发提供了技术支持。以下结合附图和具体实例对本发明方法的实施作进一步详细描述。
[0022] 如图1所示为基于SOA的网格异构数据集成框架示意图。
[0023] 本发明基于SOA的网格异构数据集成框架,该框架充分利用了SOA的灵活性,能够更快地响应数据需求,使得用户能够快速应对变化并有效地做出响应。基于SOA的网格异构数据集成框架自底向上共分为三层,分别为网格数据服务层、网格数据集成层和网格数据显示层,网格数据服务层是整个框架的基础,它通过网格数据服务来访问分布在网络上的异构数据源,如图1所示,将信息管理者信息、信息使用者信息、信息处理者信息和信息发布者信息分别以各自的数据库格式存储于exist、MySQL、SQL Server和OMIM数据源中,以不同的数据源驱动程序部署到网格数据集成服务中,这样,数据源集成查询结果将更加灵活地返回给网格数据集成层。并且它也负责网格数据集成层请求的服务和操作,例如实现数据库的具体连接和数据库识别等。而网格数据集成层是异构数据集成框架的核心层,负责网格数据集成服务发现、数据查询、数据语义转换、数据传输、数据访问等核心部分。该层可以灵活地判断无网格数据集成和网格数据集成情况,具体判断过程见如图2所示的数据集成方法。数据显示层提供了虚拟统一服务接口,用于合并数据库查询结果,将来自各真实数据库的查询响应合并为一个结果集,该结果集的元数据结构能够匹配所访问的虚拟数据库模式,数据显示层对查询得到的数据进行显示或更新操作,并由Action负责把这些操作请求信息传递给数据集成层,另外,它还与具体应用操作进行交互。例如查询得到的数据进行知识发现和有用信息挖掘等操作。使得集成得到的数据能够更有价值地反馈给用户使用。
[0024] 如图2所示为本发明的数据集成方法实现流程图。
[0025] 1.利用网格数据集成服务,将底层数据源部署于网格服务,得到服务资源对象。
[0026] 结合目前全球网格论坛的数据库集成服务工作组正致力于开发的OGSA-DAI,使用OGSA-DAI部署数据集成服务到网格环境中,通过数据集成服务连接数据服务资源。利用网格中网格数据服务层的数据集成服务以及服务资源对象累加,循环生成服务资源对象service[i],统计出服务资源对象数量cot_ser,其中参数i和rs_id分别表示服务资源对象数量的累加值和服务资源对象标识号,这些参数将作为网格数据集成判断的标准。
[0027] 2.根据服务资源对象数量判定数据集成过程中是出于无网格数据集成还是网格数据集成状态。
[0028] 以下以两个数据源为例对本发明的实施进行具体描述,当需要集成多个数据源时采用相同的方法,当服务资源对象数等于1时,表示无网格数据集成,只对单个数据源进行操作,进一步判断服务资源对象id号rs_id,在初始化过程中设定mysql数据库的rs_id为0,而sqlserver数据库的rs_id为1,资源使用者根据rs_id的值选定源数据库,如果判定出rs_id为0,则mysql数据源将被选定,选定的数据源供用户查询操作,将查询获得的数据结果转换成WebRowSet格式,提交给网格数据显示层,以虚拟数据库视图方式供用户对数据进行查询与更新。在选定数据源时如果判定rs_id为1,那么sqlserver数据源被选定,按照上述mysql操作方法,以虚拟数据库视图方式供用户对数据进行查询与更新。
[0029] 服务资源对象数不等于1时,表示网格数据集成操作,根据服务资源对象service[i]的变化选定相互集成的服务资源对象,对于service[i]>1,i的累加变化对应服务资源对象的标识号,根据i的累加变化,可以选定数据集成过程中用于相互集成的服务资源对象,对选定的源服务资源对象进行数据查询,将查询到的数据以WebRowSet(文本转化)格式进行数据流化,利用数据集成层中的缓存机制对经过数据流化的数据进行缓存,并在选定的目标服务资源对象中创建临时表,存储源服务资源对象查询得到的经过数据流化的数据,在存储的过程中,采用匹配规则对数据表之间属性进行约减,进而得到属性一致以及无噪声数据的目标服务资源对象。如果创建了临时表的目标服务资源对象存在,把目标服务资源对象得到的数据返回到虚拟数据库中,供用户透明查询。数据集成操作结束,将其临时表删除。否则,返回到服务资源对象数判定过程,重新执行数据集成判定操作。
[0030] 3.服务资源对象的数据表之间属性进行约减的匹配规则具体实施如下,在上述数据存储过程中,存在一种映射关系需要匹配规则对服务资源的数据表之间的属性进行约减和语义转换。进而得到属性一致以及无噪声数据的目标服务资源。供用户对数据进行查询与更新。在服务资源对象的数据表之间建立字段数逻辑关系,依次根据小于、等于、大于、“like(相似)”和不等于逻辑关系,来判断数据表之间字段数是否一致,在格式转换过程中将数据表中具有相似属性名称进行统一,避免在数据集成时发生的语义错误问题。
[0031] 该系统基于SOA的网格异构数据集成框架开发而来,它是在GlobusToolkit基础上构造的,运行在Tomcat服务器下,并把数据访问和集成服务部署到网格系统中,使用WebRowSet格式封装数据查询结果,实现了混合数据查询。它为了构造高层次抽象的网格服务虚拟数据库,此系统设计完全使用新的构造数据库模型,因此系统有好的扩展性和有效性。
[0032] 图3所示为基于SOA的网格异构数据集成的IMS结构流程图。
[0033] 其流程的解析如下:(1)数据集成层核心页面core.jsp向服务器发送一个server.do请求,获取网格服务层的网格服务列表显示在网格数据显示层的search.jsp页面中;(2)在search.jsp选择服务资源和查询方式后发送一个search.do请求,由SearchAction进行类处理,SearchAction调用后台DataIntegration数据集成类,在这个类中作详细的处理——获取服务资源对象、数据查询、数据流化、数据格式转换、数据集成等操作。(3)数据显示层将获取到的数据返回并显示在show.jsp页面上,或出错显示在error.jsp上。
[0034] 图4所示为基于SOA的网格IMS的实例查询结果图。
[0035] 基于上述所提出的开发框架,将底层数据库封装成数据服务在网格中部署和注册,用户通过客户端从网格服务注册表中查找相应的服务提供者,实现了实例为15000条学生信息分布在异构数据库能够达到数据集成的查询系统。系统实现结果如图4所示。系统数据集成结果显示,是以实例中学生信息数据库为基础,设计出五个学生信息主要字段,如下:sequence number,numberID,student name,school,data source,图4(a)显示的是,12173条学生信息存储在mysql数据库中,而2837条学生信息存储在sqlserver中,最终得到字段相同而信息集成的显示结果。图4(b)所显示的是,15000条学生信息分布到mysql、sqlserver和oracle三个数据库当中而集成的显示结果。从结果显示,IMS基于SOA的网格技术能很好地消除信息领域存在的信息孤岛,对用户能屏蔽掉底层数据的异构性。
[0036] 图5所示为异构数据集成系统访问数据库往返时间比较图
[0037] 显示了15000条学生信息为实例实验数据对于采用SOA的网格技术与直接访问(direct access,DA)数据库技术的访问数据库往返时间比较,图中横坐标为异构数据库元组总数,单位为条。纵坐标为访问数据库往返时间,单位为毫秒。
[0038] 利用DA数据库技术,在一个数据库中进行信息存储,要比采用SOA的网格技术耗时要少,因为网格服务在注册和部署资源等需要开销。利用SOA的网格技术访问单个数据库时,查询3000条信息范围时,时间增长呈快速递增趋势,主要由于查询数据转化为WebRowSet格式时需要开销,当集成两个数据库时,从图5和图6可知,在两种技术的cpu occupancy接近的情况下,查询2000条信息范围时,DA数据库技术所呈现出来的时间效果比基于SOA的网格技术要好,但在处理大量数据的时候,直接访问(DA)数据库技术比SOA的网格技术耗时要求更高,当访问两个数据库和数据集成数据量达到9000条时,DA的耗时呈快速递增趋势,而采用SOA的网格技术耗时增长比较平缓。可见,当访问数据量和集成数据库数量相对较少时,使用DA技术时间效果比SOA的网格技术要好,但是,信息时代的到来,面对的都是巨大的数据存储量和海量的数据处理,所以从上述分析可知,当在集成大量数据过程中,本发明比DA数据库技术时间效果要好。当访问数据库量达到三个时,从图5可知,本发明实现的效果比DA数据库技术好。
[0039] 图6所示为异构数据集成系统访问数据库CPU占有率比较图
[0040] 此图是在15000条学生信息实验数据下,SOA的网格技术与直接访问(direct access,DA)数据库技术的访问数据库CPU占有率的比较图,图中横坐标为异构数据库元组总数,单位为条。纵坐标为CPU占有率,单位为百分比。
[0041] 利用DA数据库技术,将信息存储在一个数据库当中,比采用SOA的网格技术时的CPU占有率要少,因为网格服务在注册和部署资源等需要占用CPU开销。在访问两到三个异构数据库时,CPU占用率处于接近趋势的情况下,采用SOA的网格技术比DA数据库技术所访问数据库时间要少,所以,本发明在CPU占有率和消耗时间都比DA数据库技术要好。
[0042] 从图5和图6实验曲线表明,在集成多个不同类型的数据库时,基于SOA的网格集成技术比DA数据库技术具有以下优势:
[0043] (1)网格是建立在服务的基础上,将数据源包装成一种服务,使得数据源不但成为网格中的一种资源并且提供相应的服务。
[0044] (2)实现了对这些不同数据库的统一访问,屏蔽了这些数据库产品接口之间的差异性。
[0045] (3)增加通告机制,使用通告,可以使网格服务建立的实例访问特定的数据源,如果数据源发生添加和删除等变化,这些改变被自动地通知给客户端。
[0046] (4)适应动态数据资源的变化,具有自治性。
[0047] 由此可见,本发明方法开发IMS完全可以胜任有海量数据的系统。