一种电力实时数据传输中间件及异步数据访问的方法技术

技术编号:29618319 阅读:14 留言:0更新日期:2021-08-10 18:38
本发明专利技术公开了一种电力实时数据传输中间件及异步数据访问的方法,该电力实时数据传输中间件包括网络服务模块、系统安全认证模块、标签管理模块、异步请求模块、快照队列缓存管理模块、任务线程池模块、数据访问标准化模块、数据缓存模块、实时数据库驱动管理模块和用户管理模块;本发明专利技术还公开了电力实时数据传输中间件进行异步数据访问的方法;本发明专利技术解决了服务和用户UI操作相互影响的问题以及减少由于同步数据访问造成页面停止响应、超时等问题。

【技术实现步骤摘要】
一种电力实时数据传输中间件及异步数据访问的方法
本专利技术涉及电力信息
,特别是涉及一种电力实时数据传输中间件及异步数据访问的方法。
技术介绍
发电企业设备实时运行数据的获取是实现电力信息化,重复挖掘发电数据价值的基础。发电企业现有数据传输中间件,为上层应用系统提供了稳定、高性能和统一化的数据访问接口,但在功能扩展开发和现场应用过程中,仍然表现出一些不足之处:1、大量的代码和使用模块不支持跨平台,跨平台升级时大量代码需要重写;用户界面和后台服务在一个进程中,两者相互影响,后者影响前者操作的流畅性,可能在操作过程中出现卡顿或无响应,用户体验不好;2、部分数据访问接口对不同的实时数据库的支持不统一,比如查询历史趋势时,在对于PI的支持很好,但eDNA只能使用插值来实现,代理服务器应该更好的屏蔽这种差异;3、不支持异步数据访问接口,同步数据访问经常造成Web应用页面停止响应、超时等问题。
技术实现思路
为了克服上述现有技术存在的缺点,本专利技术的目的在于提供一种电力实时数据传输中间件及异步数据访问的方法,以解决服务和用户UI操作相互影响的问题以及减少由于同步数据访问造成页面停止响应、超时等问题。为了达到上述目的,本专利技术采用如下技术方案:一种电力实时数据传输中间件,其特征在于:包括:网络服务模块1、系统安全认证模块2、标签管理模块3、异步请求模块4、快照队列缓存管理模块5、任务线程池模块6、数据访问标准化模块7、数据缓存模块8、实时数据库驱动管理模块9和用户管理模块10;所述网络服务模块1依次连接系统安全认证模块2和标签管理模块3,系统安全认证模块2又同时连接用户管理模块10,系统安全认证模块2结合用户管理模块10的用户信息进行身份确认,标签管理模块3接收通过系统安全认证模块2认证的数据报文,实现标签映射,标签管理模块3同时与异步请求模块4和快照队列缓存管理模块5相连接;如果请求为历史数据写入请求,调用异步请求模块4获取请求生成写历史事务,异步请求模块4依次连接任务线程池模块6、数据缓存模块8和实时数据库驱动管理模块9,通过任务线程池模块6生成对应线程或进程,将标签历史数据写入数据缓存模块8,进一步通过实时数据库驱动管理模块9连接到实时数据库,将历史数据写入实时数据库;如果请求为数据查询请求,调用异步请求模块4获取请求生成数据查询事务,异步请求模块4依次连接任务线程池模块6、数据标准化模块7和实时数据库驱动管理模块9,任务线程池模块6生成对应数据查询线程或进程,相关线程或进程调用实时数据库驱动管理模块9的实时数据库驱动,连接到对应实时数据库实例,查询实时数据库的数据,数据标准化模块7获取查询到的数据,对数据进行处理后返回给任务线程池模块6对应线程或进程,通过调用异步请求模块4的数据查询事务将获取到的数据包返回至网络服务模块1;如果请求为数据快照写入请求,调用快照队列缓存管理模块5,获取请求生成写快照事务,快照队列缓存管理模块5依次连接数据缓存模块8和实时数据库驱动管理模块9,快照队列缓存管理模块5先将数据快照写入数据缓存,再通过调用实时数据库驱动管理模块9的实时数据库驱动,连接到对应实时数据库实例,将数据快照写入实时数据库。所述网络服务模块1为第三方网络服务器访问后台服务提供多协议支持TCP的网络IO服务,并将解析到完整的数据报文,转发给网络安全认证模块2、标签管理模块3、异步请求模块4和快照队列缓存管理模块5和数据访问标准化模块7,这些模块以线程或者进程的方式运行;所述系统安全认证模块2为管理客户端访问后台服务进行安全认证,提供用户认证和信任连接认证两种认证方式;所述标签管理模块3用于配置电力实时数据传输中间件中的数据标签名和实时数据库标签名的映射关系表,数据标签名为用户层的数据访问名,实时数据库标签名为实时数据库中的数据访问名,两者通过标签管理模块3进行映射,从而实现多库标签合并和标签命名标准化功能;所述异步请求模块4为标签查询接口、样本和插值历史数据查询接口提供异步请求服务通信协议,实现查询结果逐步加载、查询进度显示;所述快照队列缓存管理模块5将从发电厂控制系统采集到的数据在快照队列缓存管理模块进行缓存,由独立的伺服线程将快照数据向实时数据库驱动提交,并最终写入实时数据库,从而避免突然大量快照数据涌入造成数据中间件和实时数据库负载过载;所述任务线程池模块6用于维护多个线程等待任务调度执行;所述数据访问标准化模块7将不同过滤表达式语法、支持不同功能的不同实时数据库统一为一致的功能和API接口,如果某个功能实时数据库支持,则直接使用数据库内建的功能,如果不支持或实现上有较大的差别,则在实时数据库中间件进行实现,从最大程度上屏蔽不同数据库功能的差异;所述数据缓存模块8在所述实时数据库中间件无法正常连接实时数据库时,对写入的快照数据进行缓存,并在实时数据库连接恢复后,自动将缓存数据进行补写,保证数据不丢失;所述实时数据库驱动管理模块9实现驱动文件的加载和释放,实时数据库实例化管理,并对每个实时数据库实例的所有连接在实时数据库连接池进行管理,包括实时数据库的创建连接、无效连接异步化重连和可用连接调度;所述用户管理模块10为管理客户端提供用户信息存储、用户信息编辑和用户认证的服务;用户信息以文件方式序列化保存,包括用户名、密码和访问权限。所述电力实时数据传输中间件由后台服务和管理客户端两部分组成;所述后台服务在Windows平台上实现为一个NT-Service程序,在Linux平台上实现为一个守护进程,无界面后台运行,并支持服务进程故障重启的看门狗功能,而管理客户端通过用户界面对后台服务进行管理。所述系统安全认证模块2提供两种安全管理策略:一是用户认证方式,第三方客户端在连接到电力实时数据库中间件时,通过用户、密码进行安全认证,并获得相应的访问权限;二是信任连接认证方式,第三方客户端在连接到电力实时数据库中间件时,如果为非本机连接,则需要对用户的IP进行黑白名单认证,只允许受权的IP管理客户端登录,并获得相应的访问权限。所述网络服务模块1的网络IO交互支持UDP、TCP、TLS1.2、HTTP/HTTPS、Websocket接入的对外服务,采用高并发异步IO模型;管理客户端的实时数据库操作被转发到驱动托管进程,不等返回结果就处理下一个网络IO消息,当驱动托管进程处理完成后,回传结果给网络IO再转发给请求客户端。所述的一种电力实时数据传输中间件进行异步数据访问的方法,包括以下步骤:步骤1:第三方应用向所述电力实时数据中间件发送数据访问请求;步骤2:网络服务模块1解析收到的访问数据请求得到完整的访问数据报文,通过系统安全认证模块2认证后,根据访问数据报文的标签名,通过标签管理模块3查询到访问数据所在的目标数据库驱动实例;步骤3:异步请求模块4对目标数据库驱动实例生成数据查询事务并返回包含事务ID的请求响应给第三方应用;步骤4:所述数据查询事务经过事务处理后,调本文档来自技高网...

【技术保护点】
1.一种电力实时数据传输中间件,其特征在于:包括:网络服务模块(1)、系统安全认证模块(2)、标签管理模块(3)、异步请求模块(4)、快照队列缓存管理模块(5)、任务线程池模块(6)、数据访问标准化模块(7)、数据缓存模块(8)、实时数据库驱动管理模块(9)和用户管理模块(10);/n所述网络服务模块(1)依次连接系统安全认证模块(2)和标签管理模块(3),系统安全认证模块(2)又同时连接用户管理模块(10),系统安全认证模块(2)结合用户管理模块(10)的用户信息进行身份确认,标签管理模块(3)接收通过系统安全认证模块(2)认证的数据报文,实现标签映射,标签管理模块(3)同时与异步请求模块(4)和快照队列缓存管理模块(5)相连接;/n如果请求为历史数据写入请求,调用异步请求模块(4)获取请求生成写历史事务,异步请求模块(4)依次连接任务线程池模块(6)、数据缓存模块(8)和实时数据库驱动管理模块(9),通过任务线程池模块(6)生成对应线程或进程,将标签历史数据写入数据缓存模块(8),进一步通过实时数据库驱动管理模块(9)连接到实时数据库,将历史数据写入实时数据库;/n如果请求为数据查询请求,调用异步请求模块(4)获取请求生成数据查询事务,异步请求模块(4)依次连接任务线程池模块(6)、数据标准化模块(7)和实时数据库驱动管理模块(9),任务线程池模块(6)生成对应数据查询线程或进程,相关线程或进程调用实时数据库驱动管理模块(9)的实时数据库驱动,连接到对应实时数据库实例,查询实时数据库的数据,数据标准化模块(7)获取查询到的数据,对数据进行处理后返回给任务线程池模块(6)对应线程或进程,通过调用异步请求模块(4)的数据查询事务将获取到的数据包返回至网络服务模块(1);/n如果请求为数据快照写入请求,调用快照队列缓存管理模块(5),获取请求生成写快照事务,快照队列缓存管理模块(5)依次连接数据缓存模块(8)和实时数据库驱动管理模块(9),快照队列缓存管理模块(5)先将数据快照写入数据缓存,再通过调用实时数据库驱动管理模块(9)的实时数据库驱动,连接到对应实时数据库实例,将数据快照写入实时数据库。/n...

【技术特征摘要】
1.一种电力实时数据传输中间件,其特征在于:包括:网络服务模块(1)、系统安全认证模块(2)、标签管理模块(3)、异步请求模块(4)、快照队列缓存管理模块(5)、任务线程池模块(6)、数据访问标准化模块(7)、数据缓存模块(8)、实时数据库驱动管理模块(9)和用户管理模块(10);
所述网络服务模块(1)依次连接系统安全认证模块(2)和标签管理模块(3),系统安全认证模块(2)又同时连接用户管理模块(10),系统安全认证模块(2)结合用户管理模块(10)的用户信息进行身份确认,标签管理模块(3)接收通过系统安全认证模块(2)认证的数据报文,实现标签映射,标签管理模块(3)同时与异步请求模块(4)和快照队列缓存管理模块(5)相连接;
如果请求为历史数据写入请求,调用异步请求模块(4)获取请求生成写历史事务,异步请求模块(4)依次连接任务线程池模块(6)、数据缓存模块(8)和实时数据库驱动管理模块(9),通过任务线程池模块(6)生成对应线程或进程,将标签历史数据写入数据缓存模块(8),进一步通过实时数据库驱动管理模块(9)连接到实时数据库,将历史数据写入实时数据库;
如果请求为数据查询请求,调用异步请求模块(4)获取请求生成数据查询事务,异步请求模块(4)依次连接任务线程池模块(6)、数据标准化模块(7)和实时数据库驱动管理模块(9),任务线程池模块(6)生成对应数据查询线程或进程,相关线程或进程调用实时数据库驱动管理模块(9)的实时数据库驱动,连接到对应实时数据库实例,查询实时数据库的数据,数据标准化模块(7)获取查询到的数据,对数据进行处理后返回给任务线程池模块(6)对应线程或进程,通过调用异步请求模块(4)的数据查询事务将获取到的数据包返回至网络服务模块(1);
如果请求为数据快照写入请求,调用快照队列缓存管理模块(5),获取请求生成写快照事务,快照队列缓存管理模块(5)依次连接数据缓存模块(8)和实时数据库驱动管理模块(9),快照队列缓存管理模块(5)先将数据快照写入数据缓存,再通过调用实时数据库驱动管理模块(9)的实时数据库驱动,连接到对应实时数据库实例,将数据快照写入实时数据库。


2.根据权利要求1所述的一种电力实时数据传输中间件,其特征在于:
所述网络服务模块(1)为第三方网络服务器访问后台服务提供多协议支持TCP的网络IO服务,并将解析到完整的数据报文,转发给网络安全认证模块(2)、标签管理模块(3)、异步请求模块(4)和快照队列缓存管理模块(5)和数据访问标准化模块(7),这些模块以线程或者进程的方式运行;
所述系统安全认证模块(2)为管理客户端访问后台服务进行安全认证,提供用户认证和信任连接认证两种认证方式;
所述标签管理模块(3)用于配置电力实时数据传输中间件中的数据标签名和实时数据库标签名的映射关系表,数据标签名为用户层的数据访问名,实时数据库标签名为实时数据库中的数据访问名,两者通过标签管理模块(3)进行映射,从而实现多库标签合并和标签命名标准化功能;
所述异步请求模块(4)为标签查询接口、样本和插值历史数据查询接口提供异步请求服务通信协议,实现查询结果逐步加载、查询进度显示;
所述快照队列缓存管理模块(5)将从发电厂控制系统采集到的数据在快照队列缓存管理模块进行缓存,由独立的伺服线程将快照数据向实时数据库驱动提交,并最终写入实时数据库,从而避免突然大量快照数据涌入造成数据中间件和实时数据库负载过载;
所述任务线程池模块(6)用于维护多个线程等待任务调度执行;
所述数据访问标准化模块(7)将不同过滤表达式语法、支持不同功能的不同实时数据库统一为一致的功能和API接口,如果某个功能实时数据库支持,则直接使用数据库内建的功能,如果...

【专利技术属性】
技术研发人员:马瑞瑞何清王毅
申请(专利权)人:西安热工研究院有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1