一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于多源异构数据的中间件、应用该中间件的系统和方法与流程

2021-12-18 02:19:00 来源:中国专利 TAG:


1.本发明属于电力系统领域,涉及调控系统中的多源异构数据,具体为用于多源异构数据的中间件、应用该中间件的系统和方法。


背景技术:

2.在人机交互通信的数据方面,新一代调度自动化系统中存在多种不同的数据存储方式,同时数据库要接收不同来源,不同应用的数据访问请求。特别是大量半结构化、非结构化数据的出现,对传统的基于关系数据库的数据中间件技术提出了挑战。
3.另一方面,数据存储层的进步也进一步推动了数据访问技术的发展,随着云数据库的应用,多种异构数据库并存的存储架构已成为大数据存储的有效解决方案,这种方案充分利用不同数据库存储的优势,能够更好的满足大型复杂应用的需求。系统中同时部署多种异构的数据库,不同类型的服务数据分发在合适的存储系统上,这样便充分利用了各种数据库的优势。对于数据的使用者而言,如果所有的数据源都进行直连,无疑会造成应用系统的复杂度上升,因此,统一的通用数据访问能够更好的为业务功能提供数据支撑。
4.传统大型系统的数据访问层主要是采用数据中间件技术。中间件是位于平台和应用之间的通用服务。中间件有标准的程序接口和协议,具体的中间件服务遵守相应的接口和协议,针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。但中间件属于货架产品,受限于开发厂商,对多种数据源的支撑能力有限,同时传统的中间件也难以适应非结构化数据的管理需求。此外,现有的数据访问中间件只能够实现关系数据库的访问,无法访问实时库、键值数据库、文档数据库等非关系型数据库。对多种数据源的支撑能力有限,同时,传统的中间件也难以适应非结构化数据的管理需求。
5.经检索发现,公开号为cn111460019a的中国专利于2020年7月28日公开了一种异构数据源的数据转换方法及中间件,该方法包括如下步骤:步骤1,添加源数据与目标数据,并为其配置数据源类型和连接信息;步骤2,搭建数据转换流程,所述数据转换流程包括功能串联的数据接入适配、数据采集、加工转换、数据接出适配;步骤3,通过任务调度的形式配置异构数据源基于数据转换流程的数据转换调度策略;步骤4,根据数据转换调度策略执行异构数据源数的数据转换。该方法支持多种结构化、半结构化和非结构化数据源,支持武汉达梦、人大金仓、神州通用、南大通用四大国产数据库;采用流程引擎技术,实现数据转换流程的个性化控制;通过任务调度,实现自动化的数据转换。但是仍然存在对多种数据源的支撑能力有限,客户端操作复杂、系统的稳定性和可扩展性不佳的问题。


技术实现要素:

6.为克服上述现有技术的不足,本发明提供用于多源异构数据的中间件、应用该中间件的系统和方法,既解决了接口定义、调用方式、存储模型无法形成统一规范的问题,又解决了各业务系统中数据无法完成读写分离的问题。
7.一方面,本发明提供了用于多源异构数据的中间件,用于发送请求和发送响应,其
中,发送请求进一步包括:接收请求报文,基于接收的请求报文分析得到查询库和查询关键字,基于分析得到的查询库,结合预设的分库分表规则定位数据库的地址;对定位得到的数据库地址进行路由分析,确定真实的数据库;发送分析得到的查询关键字到真实的数据库;
8.发送响应进一步包括:接收响应结果,对响应结果进行合并,去掉重复和无效的内容,并对响应结果进行排序和分页处理;将排序和分页处理后的结果转换为响应报文;发送响应报文到客户端。
9.上述技术方案中,当中间件接收到请求报文时,基于接收的请求报文分析得到查询库和查询关键字,基于分析得到的查询库,结合预设的分库分表规则定位数据库的地址;对定位得到的数据库地址进行路由分析,确定真实的数据库;发送分析得到的查询关键字到真实的数据库;当所述中间件接收到响应结果时,对响应结果进行合并,去掉重复和无效的内容,并对响应结果进行排序和分页处理;将排序和分页处理后的结果转换为响应报文;发送响应报文到客户端。客户端给中间件发送访问请求后,中间件能够根据用户的请求自动定位数据库位置,将查询到的结果返回用户。对于使用者而言,可以隐藏底层的实现细节,让开发人员能够像操作单一数据库那样方便,满足人机对数据访问开放性与方便性的需求。
10.优选的,所述请求报文包括请求报文头和请求报文体;所述请求报文头包括请求控制码、请求服务码、请求帧长度;所述请求报文体包括查询库的类型、查询的属性。通过定义统一的请求报文格式,使得客户端可以通过统一数据查询接口对所需的数据库进行访问,屏蔽了数据类型的差异,支撑人机交互与各类应用的快速开发,实现了轻量化客户端对复杂的广域异构数据源进行无差别访问的技术效果。
11.优选的,所述响应报文包括响应报文头和响应报文体;所述响应报文头包括响应控制码、响应服务码、响应帧长度;所述响应报文体包括异常类型、加密类型、查询结果。通过定义统一的响应报文,屏蔽了多源异构数据库的底层访问细节,同时也屏蔽了数据类型差异、部署位置差异,能够实现结构性数据访问接口和非结构性数据接口,实现对异构数据的统一接口访问。
12.另一方面,本发明提供用一种应用上述中间件的系统,所述系统包括客户端、数据库和中间件;其中,
13.客户端,用于发送请求报文给中间件,接收中间件的响应报文;
14.中间件,用于发送请求和发送响应;
15.数据库,用于存储数据,接收中间件的数据请求,发送响应结果至中间件。
16.上述技术方案中,客户端和中间件通过发送请求报文和相应报文进行通信;客户端将请求报文发送给中间件,中间件接收到客户端发送的请求报文后,对请求报文进行解析,找到对应的目标数据库,向数据库发送数据请求;数据库将响应结果发送至中间件,中间件对响应结果进行合并、筛选等处理后得到最终结果,再将最终结果转换为响应报文的格式,发送给客户端。客户端通过中间件发送访问请求,中间件根据用户的请求自动定位数据库位置,并将查询到的结果返回用户,实现了对调控系统多源异构数据的统一访问。对于使用者而言,可以隐藏底层实现细节,使得开发人员能够像操作单一数据库那样方便。
17.优选的,所述数据库采用一主一从或一主多从的数据库结构;主节点负责数据的write操作,从节点负责数据的read操作。由于调控系统的数据“读”多于“写”,因此采用一
主一从或一主多从的数据库结构,主节点负责数据的write操作,从节点实现数据的read操作,此种架构能够大大降低单个节点读操作的负载量,实现了数据访问的读写分离,解决了调控过程中因访问量增加,尤其在用电高峰时期,频繁访问导致的单节点数据性能瓶颈问题。
18.优选的,所述数据库包括关系型数据库、实时库、键值数据库、文档数据库。实现对多种数据源的支撑,不用受限于开发厂商,能够适应非结构化数据的管理需求。
19.优选的,所述中间件能够将主节点的数据同步到从数据库。保持了数据的一致性,中间件根据数据更新的情况,不定时将主节点的数据同步到从数据库。当数据量再增多时,以上架构可以进行扩展,组成多个计算集群。
20.再一方面,本发明提供一种应用上述中间件的方法,包括发送请求方法和发送响应方法;其中,
21.发送请求方法进一步包括以下步骤:
22.a1:客户端向中间件发送请求报文,中间件截取请求报文,对请求报文进行解析,解析出查询库、查询关键字;
23.a2:基于分析得到的查询库,结合预设的分库分表规则定位数据库的地址;
24.a3:对定位得到的数据库地址进行路由分析,确定真实的数据库;
25.a4:发送分析得到的查询关键字到真实的数据库;
26.发送响应方法进一步包括以下步骤:
27.b1:中间件接收数据库的响应结果,对响应结果进行合并,去掉重复和无效内容,并对响应结果进行排序和分页处理;
28.b2:将排序和分页处理的得到的结果转换为响应报文;
29.b3:将响应报文发送给客户端。
30.优选的,在步骤a2中,分库分表主要有两种方法,水平拆分和垂直拆分;水平拆分主要将超大规模的单表分拆为多个表,水平拆分一般不跨库,不跨表,可以按照时间区域进行划分,也可以按照id范围进行划分;垂直拆分是指按照调控业务类型将表进行拆分,根据类别的不同分布到不同的数据库上面,将数据访问的压力分摊到不同的数据库上,能够有效的降低单库的访问压力。通过分库分表实现数据库的拆分和访问,消除了调控系统中单库操作io瓶颈,解决了单表体量过大时导致的查询、更新、插入操作变慢的问题。
31.优选的,在步骤a4中,中间件将请求报文解析之后得到的查询关键字,根据所述查询关键字指向的数据库逻辑表对应的分库分表规则进行改写,得到改写语句和目的物理表,中间件将所述改写语句发送至所述目的物理表所属的数据库,查找到数据库中所述目的物理表中的数据。通过这种技术手段,能够在不改变原有业务逻辑和不修改原有业务代码的情况下完成分库分表,进一步保证了业务系统的稳定性和可扩展性。
32.与现有技术相比,本发明的有益效果在于:
33.(1)本发明提供的方法,通过中间件进行发送请求和发送响应,当中间件接收到请求报文时,基于接收的请求报文分析得到查询库和查询关键字,基于分析得到的查询库,结合预设的分库分表规则定位数据库的地址;对定位得到的数据库地址进行路由分析,确定真实的数据库;发送分析得到的查询关键字到真实的数据库;当所述中间件接收到响应结果时,对响应结果进行合并,去掉重复和无效的内容,并对响应结果进行排序和分页处理;
将排序和分页处理后的结果转换为响应报文;发送响应报文到客户端。客户端给中间件发送访问请求后,中间件能够根据用户的请求自动定位数据库位置,将查询到的结果返回用户。对于使用者而言,可以隐藏底层的实现细节,让开发人员能够像操作单一数据库那样方便,满足人机对数据访问开放性与方便性的需求。对于使用者而言,可以隐藏底层的实现细节,让开发人员能够像操作单一数据库那样方便,满足人机对数据访问开放性与方便性的需求。达到了轻量化客户端对复杂的广域异构数据源进行无差别访问的技术效果。
34.(2)本发明提供的系统,通过客户端和中间件通过发送请求报文和相应报文进行通信;客户端将请求报文发送给中间件,中间件接收到客户端发送的请求报文后,对请求报文进行解析,找到对应的目标数据库,向数据库发送数据请求;数据库将响应结果发送至中间件,中间件对响应结果进行合并、筛选等处理后得到最终结果,再将最终结果转换为响应报文的格式,发送给客户端。客户端通过中间件发送访问请求,中间件根据用户的请求自动定位数据库位置,并将查询到的结果返回用户,实现了对调控系统多源异构数据的统一访问。对多种数据源的提供支撑,能够适应不同的操作系统和硬件平台,对调控系统多源异构数据进行统一访问。
35.(3)本发明通过中间件的设置,对客户端屏蔽了不同类型数据、不同源头数据的差异,方便调控用户的调用,屏蔽多源异构数据库的底层访问细节;使得开发人员能够像操作单一数据库那样方便,
36.(4)本发明通过定义统一的请求报文、响应报文结构,能够实现结构性数据访问接口和非结构性数据接口,其形式为sql访问接口和key

value数据访问接口,用以屏蔽不同类型数据、不同源头数据的差异,实现异构数据的统一接口访问,支撑人机交互与各类应用的快速开发。能够不受限于开发厂商,适应非结构化数据的管理需求。
37.(5)本发明通过读写分离,大大降低了单个节点读操作的负载量,解决了调控过程中因访问量增加,尤其在用电高峰时期,频繁访问导致的单节点数据性能瓶颈问题,实现了调控用户的高效访问。中间件还能够根据数据更新的情况,不定时将主节点的数据同步到从数据库。实现了数据量增大时的扩展功能,当数据量再增多时,读写分离的架构可以进行扩展,组成多个计算集群,提升处理效率。
38.(6)本发明通过分库分表实现多源异构数据库的拆分和访问,消除了调控系统中单库操作io瓶颈,解决了单表体量过大时导致的查询、更新、插入操作变慢的问题。同时,能够在不改变原有业务逻辑和不修改原有业务代码的情况下完成分库分表,进一步保证了业务系统的稳定性和可扩展性。
附图说明
39.图1是本发明实施例提供的数据中间件访问流程图;
40.图2是本发明实施例提供的系统的读写分离功能示意图;
41.图3是本发明实施例提供的系统的分库分表功能示意图;
42.图4是本发明实施例提供的数据中间件访问方法流程图。
具体实施方式
43.以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描
述发实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
44.实施例一
45.如图1所示,本实施例提供用于多源异构数据的数据访问中间件,用于发送请求和发送响应,其中,发送请求进一步包括:接收请求报文,基于接收的请求报文分析得到查询库和查询关键字,基于分析得到的查询库,结合预设的分库分表规则定位数据库的地址;对定位得到的数据库地址进行路由分析,确定真实的数据库;发送分析得到的查询关键字到真实的数据库;
46.发送响应进一步包括:接收响应结果,对响应结果进行合并,去掉重复和无效的内容,并对响应结果进行排序和分页处理;将排序和分页处理后的结果转换为响应报文;发送响应报文到客户端。
47.其中,请求报文结构和响应报文结构分别有统一的报文格式。报文支持结构性数据和非结构性数据库的访问。
48.请求报文由报文头和报文体组成,报文头由控制码、服务码、帧长度组成,报文体包括查询库的类型、查询的属性等内容。如表1所示。
49.响应报文由报文头和报文体组成,报文头由控制码、服务码、帧长度组成,报文体包括异常类型、加密类型、查询结果等内容。如表2所示。
50.表1请求报文结构
[0051][0052][0053]
表2响应报文结构
[0054][0055]
本实施例定义了通用数据请求报文、响应报文格式,实现屏蔽数据类型差异、部署位置差异的统一数据查询服务与数据访问,使得前端可以通过统一数据查询接口实现轻量化客户端对复杂的广域异构数据源进行无差别访问,满足人机对数据访问开放性与方便性的需求。
[0056]
实施例二
[0057]
一种应用实施例一所述的中间件的系统,包括客户端,数据库和中间件;其中,
[0058]
客户端,用于发送请求报文给中间件,接收中间件的响应报文;
[0059]
中间件,用于发送请求和发送响应;
[0060]
数据库,用于存储数据,接收中间件的数据请求,发送响应结果至中间件。
[0061]
所述数据库包括关系型数据库、实时库、键值数据库、文档数据库。
[0062]
为了解决调控系统中因访问量增加,尤其在用电高峰时期,频繁访问导致的单节点数据性能瓶颈问题,中间件实现了数据访问的读写分离。如图2所示。调控系统的数据“读”多于“写”,因此采用一主一从或一主多从的数据库结构,主节点负责数据的write操作,从节点实现数据的read操作,此种架构能够大大降低单个节点读操作的负载量;另外,为了保持数据的一致性,中间件会根据数据更新的情况,不定时将主节点的数据同步到从数据库。当数据量再增多时,以上架构可以进行扩展,组成多个计算集群。
[0063]
为了提高调控系统中单库操作io瓶颈,以及单表体量过大时导致的查询、更新、插入操作变慢的问题,本实施例通过分库分表实现数据库的拆分和访问。具体拆分的方法如图3所示。分库分表主要有两种方法,水平拆分和垂直拆分。水平拆分主要将超大规模的单表分拆为多个表,水平拆分一般不跨库,不跨表,可以按照时间区域进行划分,也可以按照id范围进行划分。垂直拆分是指按照调控业务类型将表进行拆分,根据类别的不同分布到不同的数据库上面,将数据访问的压力分摊到不同的数据库上,能够有效的降低单库的访
问压力。
[0064]
另外,在接收到数据查询请求时,中间件会根据查询的内容,结合目的数据库逻辑表对应的目的分库分表规则,改写查询的语句,得到改写后的语句及对应的多个目的物理后,中间件将改写后的语句发送至目的物理表所属的数据库,并查找到数据库中的目的表中的真实数据并返回;最后将数据库返回的数据进行处理后,发送给应用程序对应的用户,本实施例能够在不改变原有业务逻辑和不修改原有业务代码的情况下完成分库分表,进一步保证了业务系统的稳定性和可扩展性。
[0065]
本实施例的中间件能够将主节点的数据同步到从数据库。保持了数据的一致性,中间件根据数据更新的情况,不定时将主节点的数据同步到从数据库。当数据量再增多时,以上架构可以进行扩展,组成多个计算集群。
[0066]
本实施例的客户端通过中间件发送访问请求,中间件能够根据用户的请求自动定位数据库位置,将查询到的结果返回客户端,能够实现结构性数据访问接口和非结构性数据接口,其形式为sql访问接口和key

value数据访问接口,用以屏蔽不同类型数据、不同源头数据的差异,实现异构数据的统一接口访问,支撑人机交互与各类应用的快速开发。
[0067]
实施例三
[0068]
一种应用实施例一所述的中间件的方法,如图4所示,所述方法包括发送请求方法和发送响应方法,其中:
[0069]
发送请求方法进一步包括:客户端向中间件发送请求报文,中间件截取请求报文,中间件对报文进行解析,解析出报文中的查询库、查询关键字等信息,然后进行分库分表数据库定位,定位数据库的具体位置,可以是一个地址也可以是多个地址的组合,可以是关系库地址,也可以是非关系库地址;然后读写分离,缓解节点的压力,通过路由分析确定真实的数据库,确保定位到的地址为有效地址,将数据请求发送到真实的数据库。
[0070]
发送响应方法进一步包括:中间件在接收到结果后,首先将从多个数据库和表中获取的结果进行合并,根据查询内容进行聚合,去掉重复和不相关内容,并对查询到的结果进行排序,如果查询内容一页无法完全展示,则对内容进行分页处理,最后将处理完成的结果按照响应报文的格式进行处理,再发送到客户端,在客户端进行展示。
[0071]
在接收到数据查询请求时,中间件会根据查询的内容,结合目的数据库逻辑表对应的目的分库分表规则,改写查询的语句,得到改写后的语句及对应的多个目的物理后,中间件将改写后的语句发送至目的物理表所属的数据库,并查找到数据库中的目的表中的真实数据并返回;最后将数据库返回的数据进行处理后,发送给应用程序对应的用户
[0072]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
[0073]
在本说明书的描述中,参考术语“一个实施方式”、“某些实施方式”、“示意性实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
[0074]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本实施例技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献