一种soa多消息机制的异构数据集成系统的制作方法

文档序号:1548792阅读:789来源:国知局
专利名称:一种soa多消息机制的异构数据集成系统的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种SOA (Service Oriented Architecture) 多消息机制的异构数据集成系统。
背景技术
随着计算机的飞速发展,基于各种平台的分布式数据库应用程序,已经广泛应用于各种行业,但数据库系统的异构特性,造成系统数据大量冗余,从而无法保证数据的一致性,使信息的利用率和效率大大降低。目前,关于数据集成的体系结构主要有三种,即模式集成、数据复制和面向服务的体系结构。前两种是传统的集成方法,它在一定程度上解决了数据集成的语义和模型等问题,但灵活性和数据的自治性比较差。与本发明最接近的是面向服 务体系结构的数据集成方法,该方法是以业务为核心,通过业务驱动服务、服务驱动技术的原则来设计集成架构。此方法的所有的功能都以服务的形式进行描述,描述后的服务在注册中心注册,并对外部以标准的接口形式提供给用户。该方法可在不同平台之间,并且以一致的方式交换和描述数据,为实现信息共享、互操作和集成提供了新的解决方案。在中国专利(专利申请号200810237211)中公开基于SOA 的网格异构数据集成方法。此方法是实现SOA方案的一种有效方法,它不仅能更加灵活地适应数据源动态变化,而且为数据集成中的大量数据传输提供了可靠的文件传输服务,为资源使用者提供了访问数据库的全局访问接口,能够从数据库注册到使用的全部过程。但是,该方法采用了单一的消息接收机制,不能处理多种客户端发送的消息请求,因此灵活性不是很好,并且对语义异构的处理,采用人工匹配的方法,这种匹配方法需要预先定义好各种相似的词汇,因此智能性很差,但采用传统的映射算法,又会使数据的查全率(正确发现的概念映射和可能存在概念的映射的比值)和召回率比较低(正确发现的概念映射和所有已经找到的概念映射的比值),不能充分获得各种数据源的集成数据。

发明内容
本发明所要解决的问题是针对目前面向服务架构的异构数据集成技术中,客户端平台发送消息形式的多样化以及传统的词汇映射算法所造成的分布式数据源语义集成度不够高,设计一种SOA多消息机制的异构数据集成系统,在应用服务层构建四个模块,实现多种平台消息的查询访问和众多数据模型的有效集成,同时通过一个改进的词汇相似度算法,很好的解决了语义异构等问题。最后通过ESB(Enterprise Service Bus)对集成服务进行动态管理,为用户访问服务提供了有力的支持。本发明解决上述问题的技术方案是提出一种SOA多消息机制的异构数据集成系统。该系统包括
由多种客户端异构平台组成的查询接口,由该查询接口向消息引擎服务模块发送请求,且每个平台可发送自己单一的消息,并对数据信息进行封装。消息一旦发送,交给消息引擎服务模块处理。查询接口可由JMS消息的客户端、SOAP消息的客户端、EJB消息的客户端组成,且这些查询接口在位置上成分布式。消息引擎服务模块,包括4个子模块抽象消息工厂模块、具体消息工厂模块、抽象消息对象、具体消息对象,它是一种解决跨客户端平台发送消息多样性的一种多消息处理机制。该模块接收查询接口发送的消息,根据客户端平台消息请求的多样性,抽象消息对象由一系列不同平台的消息对象组成,这些消息对象包含了处理消息的通用抽象方法,负责把接收到的消息转换成标准的XML消息。具体消息对象继承了抽象消息对象中的方法, 抽象消息工厂模块包含了创建所有消息对象的抽象方法,具体消息工厂模块继承了抽象消息工厂模块的所有方法,一旦接收到某个消息,根据此消息的格式,判断消息的类型,并由具体消息工厂模块创建与之对应的消息对象,创建后的消息对象对接收的消息进行分解和重组,重组的消息采用XML语言进行描述,并把这种XML格式的消息发送给语义映射服务模块处理。语义映射服务模块根据重组后的消息并调用词汇度相似算法,建立映射文件。其中,该词汇度相似算法利用本体信息密度因子和义原上下位关系、本体概念相关性和基于关系义原的混合策略,计算本体中的词汇相似度,根据义原上下位关系、本体概念相关性和基于关系义原的权值获得概念相似对,并根据OWL (网络本体语言)语言规则建立起映射文件,对相似的词汇进行定义,每一类相似的词汇构成一个集合。因此映射文件由一系列相似词汇的集合组成。语义映射匹配模块,在开放源代码JSWF (jena Semantic Web Frmework)框架的基础上,读取映射文件中相似词汇的集合,并获得与请求查询词汇相似的所有词汇,即全局查询转换为可执行的子查询的过程,再把子查询提交给数据访问服务模块处理。数据访问服务和数据控制服务模块,接收经语义映射模块处理后所提交的子查询语句,可采用传统的处理方式,用Web服务分别对每个数据源的访问进行封装,形成一个包装器。子查询语句经过包装器里各种不同数据库调用访问处理,形成一系列XML结果集, XML结果集由数据控制服务处理优化,获得数据集成信息,最后通过Web服务发布以上数据集成信息,供用户调用和ESB服务总线管理。本发明还提出一种SOA多消息机制的异构数据集成方法。由多种客户端异构平台组成查询接口向消息引擎服务模块发送请求;消息引擎服务模块接收查询接口发送的消息,根据客户端平台消息请求的多样性,其中,抽象消息对象负责把接收到的消息转换成标准的XML消息,具体消息对象继承了抽象消息对象中的方法,具体消息工厂模块根据接收到消息的格式判断消息的类型,并由具体消息工厂模块创建与之对应的消息对象,创建后的消息对象对接收的消息进行分解和重组,重组的消息采用XML语言进行描述,并把这种 XML格式的消息发送给语义映射服务模块处理;语义映射服务模块根据重组后的消息并调用词汇度相似算法,并根据OWL (网络本体语言)语言规则建立映射文件;语义映射匹配模块读取映射文件中相似词汇的集合,并获得与请求查询词汇相似的所有词汇,将全局查询转换为可执行的子查询,再把子查询提交给数据访问服务模块处理;数据访问服务和数据控制服务模块,接收经语义映射模块处理后所提交的子查询语句,分别对每个数据源的访问进行封装,形成一个包装器。该系统通过改进的相似度算法,解决了分布式数据库存在的多种语义问题,并提高了词汇的相似精度,消息引擎的设计,使服务器能快速处理各种异构平台客户端所发送的请求,解决了多个平台消息之间的异构问题,它满足了以业务驱动服务,以服务驱动技术的SOA设计原则,也降低了硬件成本。通过ESB服务总线的管理,使系统的安全和性能得到了大大的提高。


图1所示一种SOA多消息机制的异构数据集成系统示意图。图2所示为语义匹配方法的流程图。

图3所示为异构数据集成方法流程图。图4所示为数据集成系统的流程示意图。
具体实施例方式本发明提出了一种SOA多消息机制的异构数据集成系统。异构数据集成方法通过语义映射、消息和数据访问等应用服务的包装,实现对分布式数据源的动态集成和查询操作。下面通过具体实例并结合附图对实施过程进行详细介绍。图1所示为一种SOA多消息机制的异构数据集成系统示意图,按照JBI规范,该系统结构由数据库服务层、应用服务提供层、插件服务层、应用服务接口层、应用服务表示层五层组成。用户由应用服务表示层发送查询请求消息,服务器接收消息,并做处理。通过应用服务接口获取服务信息,根据获取的信息,可从应用服务提供层提供的服务实现动态的绑定。这些服务由应用服务接口层采用WSDL语言统一描述。绑定后的服务可处理查询信息, 并从数据库服务层获取集成数据。数据库服务层包含了所有不同类型的数据模型,它提供数据的存储功能。插件服务层作为体系结构的可扩充式的层次结构,系统所有的可扩展功能都集中在这个层次,作为结构的补充和增强。第三方的服务和应用也可由该层提供。其中应用服务提供层是本系统的核心,它由消息引擎服务、语义映射服务、数据访问服务和数据控制服务等四个模块组成。消息引擎服务模块负责接收来自不同平台的消息请求,并把消息转化成标准的消息格式。消息的类型是多样化的,比如客户端查询数据,可发送JMS消息,也可发送SOAP 消息等。此模块具有消息监听对象,并由监听对象创建消息工厂,由消息工厂生成消息对象。消息对象处理消息格式,并转化成标准消息。语义映射服务模块负责处理数据集成中的语义异构问题。它接收来至消息引擎服务所发送的标准查询消息,调用相似度算法并结合语义匹配方法把查询分解成可执行的子查询语句。针对每个数据源建立局部视图,然后根据查询请求建立全局视图,并根据OWL 语言的规则,建立全局视图和局部视图之间关系。全局视图包含了请求查询的所有词汇,局部视图由一系列词汇组成,这些词汇组成不同数据模型的数据库存储信息。当查询请求被语义映射引擎模块接收后,调用词汇相似度算法和语义匹配方法,把全局的查询请求转换成每个局部数据源的子查询。分解后的子查询,为可执行的SQL语句。如图2所示举例说明语义映射过程。此映射过程在词汇相似度算法的基础上,生成本体映射文件。通过读取本体文件来获得可执行的分查询语句。具体流程如下步骤
(1)加载OWL映射文件并遍历类节点。首先加载owl (网络本体语言)映射文件,然后遍历所有的类节点,这些类节点也就是全局视图中的概念节点,属于顶层节点。首先输入查询字段,类节点匹配,如果在遍历的节点中没有找到查询字段,使count自加。其中,Count 为遍历的类层次数,直到遍历完所有层次(即count的数值等于所有类节点层次数),便跳出循环;
(2)获得类节点的所有属性,与关键字信息匹配。首先关键字与类节点匹配,如果与类节点匹配不成功,则获得父节点的所有属性,包括子节点的属性,获得的属性与关键字进行匹配。如果匹配成功跳转到步骤(4),如果失败跳转到步骤(3);
(3)遍历类节点的所有子类节点,子类节点属性与关键字信息进行匹配。如关键字与子类节点属性也不匹配,重新遍历父节点的子节点,直到访问了所有概念节点,如找到与之匹配的节点,则跳转到步骤(4),否则继续执行步骤(3);
(4)提取关键字的等价类,获得等价属性,分解全局概念,获得分查询进行存储。利用等价类和等价属性的获得,依次判断是否含有如下三种属性mySql,sqlserver, xml, 获取相应的分查询,分类存储。如果此等价类的属性等于mysql,首先建立哈希表,用 put( "mysql",等价类对象)方法,把等价类对象存储起来,如果查找的关键字和类节点的属性相等,可用数组存储字段的等价属性,这样通过哈希表的get方法得到每个数据源的子查询。以下举例说明数据访问和缓存过程。包括如下步骤
1.通过哈希表get()获得查询对象(概念)及参数,创建Rowset对象。并根据参数判断,初始化Rowset对象,加载不同模型的数据库;
2.分别在Mysql、Sqlserver,XML数据源中执行查询操作,遍历所有类节点,获得字段所有属性,及其等价属性,查询结果保存在Rowset对象中;
3.采用统一的XML数据交换格式缓存Rowset对象中的数据;
4.针对不同数据模型生成不同的XML格式的结果集;
5.加载XML文件,遍历XML文件中所有元素,采用哈希表加载每个对象,如果存在相同记录则加载下一条记录,直到读取完所有XML文件;
6.采用JDOM重新建立XML文件;
数据访问服务数据访问服务模块接收来自语义映射服务所生成的子查询语句,并加载不同的数据模型,执行查询功能。该模块封装了所有数据模型的查询方式,负责访问数据库,一旦子查询请求到来,查询模块根据参数,调用对应请求的查询方式进行查询,然后返回结果集。可以XML文件格式存储每个子查询的数据集。数据控制服务数据控制服务模块负责对查询后的数据进行合并去冗处理。对合并后的数据,采用XML格式进行存储。通过XML缓存数据,数据可以再次过滤,提取用户感兴趣的数据。不同平台的客户端,发送的消息具有异构性。消息引擎服务模块接收此消息,并由消息工厂生成对应平台的消息对象。消息对象处理消息,并把此消息转换成标准消息,交由语义映射服务进行处理,在语义映射服务,这种标准消息是基于全局视图的,再利用如OWL 语言对全局视图和局视图部行描述,并调用词汇相似度方法获得相似词汇,并建立映射文件。读取映射文件,把全局查询分解成可执行的子查询,数据访问服务根据子查询和对应的参数信息,初始化RowSet (数据存储对象)对象,并加载数据模型,执行查询。RowSet对象的数量根据数据模型的多少确定,且存储查询的结果。数据控制服务再从RowSet对象中获取数据,并进行冗余处理,最后生成统一的XML格式的集成数据。详细的处理过程,
上述处理过程参考图3所示。如图3所示为异构数据集成工作流程图。它包含了查询请求在应用服务层的处理过程。通过发送查询请求,分别由应用服务层的消息引擎服务、语义映射服务、数据访问服务和数据控制服务等4个功能模块处理。具体处理过程如下
(1)通过客户端的查询接口发送查询请求,并交由消息引擎服务模块处理此消息。消息引擎服务模块包含4个子模块抽象消息工厂模块、具体消息工厂模块、抽象消息对象模块、具体消息对象模块。抽象消息对象包含了所有客户端消息的抽象处理,是处理客户端消息的一个接口。具体消息工厂模块继承抽象消息对象所有方法,并且每个客户端的消息对应一个特有的具体消息对象,并可同时对消息进行分解和重组处理。而抽象消息工厂模块包含对所有消息的抽象和创建,通过一个接口提供消息对象。抽象消息工厂包含对创建消息对象的抽象,具体的消息对象和具体的消息工厂对象是抽象消息对象和抽象消息工厂的实例,它们继承抽象层的方法和属性。而具体 消息工厂继承了抽象消息工厂的所有方法,每个具体消息工厂只能创建一个唯一的消息对象。每种消息对象包含消息头和消息体两个属性。消息头包含了每种消息所特有的信息标识,消息体对数据进行了封装。采取触发的方式监听消息对象,一旦有数据发送过来,对消息头进行获取,并提出消息标识。消息监听对象设有一个消息类型序列号,结合本系统实例,如序列号可设置3个值,每个值分别对应JMS消息标识、SOAP消息标识、EJB消息标识。如果消息类型增加,可根据增加的消息类型,再添加消息标识值。由消息监听对象创建消息工厂对象,消息工厂根据消息序列号的值,创建不同的消息对象,并返回一个抽象消息对象。抽象消息对象对消息的处理包括消息的分解和消息的重组。消息的分解包括3个步骤(i)创建消息体对象, 消息体对象包含获取消息体文本数据的方法。(ii)获得被封装的数据。(iii)创建一个缓存数组用于缓存所获得的数据。数据一旦缓存,对消息进行重组,把数据以XML格式重新封装,形成标准化消息。此格式由两部分组成格式的声明和元素信息。格式的声明只包含 XML的版本信息,元素信息是文档的具体内容。此标准消息可全部采用JDOM来处理,并获得具体查询信息,再把查询信息发送给语义映射服务模块处理。抽象对象的设计,有利于消息机制的扩充,使系统更具有灵活性,解决了客户端发送消息多样性的问题。(2)将消息引擎服务模块处理的请求,交给语义映射服务模块处理。语义映射模块采用改进的词汇相似度算法,把与请求查询相似的词汇提取出来,并形成映射本体文件。本发明在知网的基础上,利用义原(概念的基本单元)上下位关系,构成义原层次结构树,并集合本体中的概念属性作为相似度计算的密度影响因子。以下具体举例说明计算词汇相似度的几种策略。基于本体元素密度因子和义原上下位关系
根据所有义原的上下位关系,假设两个义原在义原层次体系中的距离为d,可以得出两个义原之间的相似度公式(1)
Sim1(P^P2) =(1)
ρ+ a
其中P是一个可调常数,Z1和/表示两个不同词汇4和。的义原(可根据系统设定),J表亍η和A在义原层次体系中的距离。路径长度相同的两个节点,如果位于义原的层次的越低,其词汇语义相似度越大,另外在本体中,Cruber定义了一个本体五元组表示方法£>=(C,^i ,i ^)。其中c表示抽取出来的概念集合'表示概念的实例。表示定义在概念集合上的关系集合,F表示在概念集合上的函数集合,^表示公理集合。所以可得本
体中关于属性的影响因子公式(2) M1 = . 1 2、(2)
其中词汇。和9表示本体中的两个概念,R(C1)和i (c2)表示概念q和^的属性集合,
其中属性包含对象属性和数据属性两种。I 2(9)113( ) I表示&和9的具有相同属性的个
数,Iι表示4和4的属性并集,且含有元素的个数。在本体中,每个概念具有若
干的实体,相同实体的概念具有相似性,因此可把概念实体的统计数,作为义原层次树的影响因子。假设概念。和4含有实体集/( )和/ ),可以得出本体中关于概念实体的影响因子公式(3)
权利要求
1.一种SOA多消息机制的异构数据集成系统,其特征在于该系统包括由多种客户端异构平台组成的查询接口,向消息弓I擎服务模块各自发送客户端自己的消息请求;消息弓I 擎服务模块根据客户端消息请求的格式,判断消息类型,并创建与之对应的消息对象,根据消息对象对接收的消息进行分解和重组,对重组消息采用XML语言描述,并将其发送给语义映射服务模块处理;语义映射服务模块根据重组消息并调用词汇度相似算法,建立映射文件;语义映射匹配模块读取映射文件中相似词汇的集合,将全局查询转换为可执行的子查询,再把子查询提交给数据访问服务模块处理;数据访问服务模块接收子查询语句,形成一个包装器,经过包装器对各种数据库访问处理,形成一系列XML结果集,再由数据控制服务处理优化,获得数据集成信息。
2.根据权利要求1所述的异构数据集成系统,其特征在于词汇度相似算法利用本体元素密度因子和义原上下位关系、本体概念相关性和基于关系义原的混合策略,计算词汇相似度,根据义原上下位关系、本体概念相关性和基于关系义原的权值获得概念相似对,并建立映射文件,对相似的词汇进行定义,每一类相似的词汇构成一个集合。
3.根据权利要求1所述的异构数据集成系统,其特征在于所述词汇度相似算法采用基于本体元素密度因子和义原上下位关系,具体为,语义映射服务模块调用公式 SM2 (i C2) = SiM1O1, χ (M1+Ai2)计算词汇iiP Z间的相似度,其中,A和灼为q和C2的第一义原,M1为本体元素属性因子,M2为概念实体因子。
4.根据权利要求1所述的异构数据集成系统,其特征在于所述词汇度相似算法采用基于本体概念相关性的策略,具体为语义映射服务模块调用公式f 、丨£)幻)门£)((-2)| 職如=綱汇Λ之间的相似度,其中、陶分脈示含有词汇q、A的相关性词汇。
5.根据权利要求1所述的异构数据集成系统,其特征在于所述词汇度相似算法采用基于关系义原的策略,具体为语义映射服务模块调用公式=计算词汇q和C2之间的相似度,其中,么e W(C1),dy eW(c2),且,⑷和y(c2)分别为词汇q和q关系义原的集合。
6.根据权利要求1所述的异构数据集成系统,其特征在于所述词汇度相似算法采用基于混合策略,具体为语义映射服务模块调用公式 漏(P1,c2) = asif ^(CllC1) + βει^(cx,C1) + Jsjm4 (ClrC2),其中为基于本体元素密度因子和义原上下位关系的权值因子、存为基于本体概念相关性的权值因子、Z为基于关系义原的权值因子,且有彡+J = I , O <丨 S 应< β <1, O^sw(C11C2) <1。
7.—种SOA多消息机制的异构数据集成方法,其特征在于包括步骤由多种客户端异构平台组成的查询接口,向消息弓I擎服务模块各自发送客户端自己的消息请求;消息引擎服务模块根据客户端消息请求的格式,判断消息的类型,并创建与之对应的消息对象,根据消息对象对接收的消息进行分解和重组,对重组消息采用XML语言进行描述,并将其发送给语义映射服务模块处理;语义映射服务模块根据重组消息并调用词汇度相似算法,建立映射文件;语义映射匹配模块读取映射文件中相似词汇的集合,将全局查询转换为可执行的子查询,再把子查询提交给数据访问服务模块处理;数据访问服务模块接收子查询语句, 形成一个包装器,经过包装器对各种数据库访问处理,形成一系列XML结果集,再由数据控制服务处理优化,获得数据集成信息。
8.根据权利要求7所述的异构数据集成方法,其特征在于词汇度相似算法利用本体元素密度因子和义原上下位关系、本体概念相关性和基于关系义原的混合策略,计算本体中的词汇相似度,根据义原上下位关系、本体概念相关性和基于关系义原的权值获得概念相似对,并建立映射文件,对相似的词汇进行定义,每一类相似的词汇构成一个集合。
9.根据权利要求1所述的异构数据集成方法,其特征在于所述语义映射包括,加载 OffL映射文件并遍历类节点;获得类节点的所有属性,与关键字信息匹配;遍历类节点的所有子类节点,子类节点属性与关键字信息进行匹配;提取关键字的等价类,获得等价属性, 分解全局概念,获得分查询进行存储。
全文摘要
本发明请求保护一种SOA多消息机制的异构数据集成系统及方法,涉及到计算机体系结构。该方法能处理不同平台的消息的请求,并能很好的解决分布式数据源中存在的语义问题。它采用SOA设计思想,保证了服务的松散耦合性,使用户可以透明的访问各种服务,保证了分布式数据源的自治性。本发明提出的一种SOA多消息机制的异构数据集成方法能集成海量数据,并能及时响应用户请求,满足现在企业发展对信息管理系统的要求。
文档编号G06F17/30GK102402507SQ20101027408
公开日2012年4月4日 申请日期2010年9月7日 优先权日2010年9月7日
发明者刘宴兵, 郎炯 申请人:重庆邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1