一种基于Netty的大屏可视化平台数据推送系统的制作方法

文档序号:6398191阅读:408来源:国知局
专利名称:一种基于Netty的大屏可视化平台数据推送系统的制作方法
技术领域
本发明涉及一种基于Netty的大屏可视化平台数据推送系统,在多源异构数据接入大屏可视化系统时,并发连接数据高、数据更新周期短、数据量大的场景上仍能保证数据转换及分发调度、稳定推送、实时更新。
背景技术
国家电网公司信息调度运行监控中心大屏可视化展示系统、国家电网灾备中心大屏可视化系统和运营检测大屏可视化平台,展示的数据内容丰富且结构复杂。为了实现来自不同单位、不同系统的数据的整体统一,国家电网公司信息系统经历了 SG186的整合建设,但是各系统内的数据结构仍存在不同的差异,主要体现在数据指标的内涵与外延在系统中的概念不同,这主要是因为数据来自不同单位,而同一系统在不同单位的数据结构完全不相同,跨单位数据指标存在采集不及时、不完整、推送频率不同的情况。由于数据最终以图形化方式进行展示,这对数据的合规性提出了更高的要求,尤其是曲线类指标,任意时间点的数据超出合理范围都会引起曲线的异动,而且这种异常是非常直观、醒目的。因此实时接收到的数据,需经过一系统中间过程,诸如解码、转换、过滤、计算后,把数据直接推送至相关订阅的客户端,实现对数据实时更新,满足客户端对数据实时性的需求以及提高用户体验度、友好性。

发明内容
发明目的针对传统的堵塞IO多线程模式不能满足大屏可视化平台大数据实时、稳定推送的问题,本发明提出一种基于Netty的大屏可视化平台的数据推送系统,通过异步的、事件驱动的网络应用程序框架把数据直接推送至相关订阅的客户端,实现了对数据实时更新。技术方案为实现上述目的,本发明采用的技术方案为Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。—种基于Netty的大屏可视化平台数据推送系统,包括数据采集服务层、数据集查询服务层和客户端展现层,所述数据采集服务层用于将外部的多源异构数据接入到可视化平台内;所述数据集查询服务层用于将外部接入到可视化平台内的数据转换成内部的消息实体,并将这些消息实体放置到相应的消息队列上,通过消息队列调度器提供给相应的Netty管道;所述客户端展现层用于通过Netty管道推送方式解析消息实体获取数据集数据,并将数据集数据与控件进行关联,刷新控件数据;其中,Netty管道将消息处理器以队列的形式顺序组织起来,形成处理数据流的上下文。
上述系统,首先将外部数据源数据接入到可视化平台之中,再将接入的数据转换成可视化平台的内部消息实体,将消息实体放置到消息队列中,并通过消息队列调度器提供给相应的Netty管道,通过Netty管道中的各个消息处理器的顺序处理,最终将得到的数据集推送至客户端(客户端展现层),客户端通过客户端的状态列表定位来相关客户端的展现数据集,从而实现数据的实时更新功能。消息处理的核心由若干个消息处理器组成,不同的消息处理器的功能也不尽相同,而Netty管道将这些消息处理器以队列的形式顺序组织起来,形成处理数据流的上下文,通过对消息处理器的调度实现诸如对消息解码、存储、转换等功能;同时,管道中输出的数据为为界面展现提供了数据来源。在数据采集服务层中,外部的多源异构数据包括不同程序、不同协议、不同操作系统、不同位置的数据,数据采集服务层允入不同外部系统的数据通过不同协议上报到可视化平台内,所述数据采集服务层的数据接入方式包括JMS、WEBSERVICE、SOCKET等。优选的,所述数据集查询服务层的采集服务方式包括可视化系统服务和SQL服务两种,数据集查询服务层的工作流程包括以下步骤(al)前置处理类处理;(a2)首先通过指标采集服务定义获得采集服务方式;(a3)若采集服务方式为可视化系统服务,则后台将可视化数据原的配置信息解析为SQL语句并行执行,并将查询的数据封装为VSDataset对象;(a4)若采集服务方式为SQL方式,则根据客户端展现层配置的SQL语句直接执行,并将查询的数据封装为VSDataset对象;(a5)后置处理类处理。优选的,所述客户端展现层的工作流程包括以下步骤(bl)首先将需要发送的数据加入队列中,按照队列的调度顺序发送数据;(b2) Netty编码器响应,将数据对象序列化为Hessian 二进制流;(b3)将Hessian 二进制流写入Netty的ChannelBuffer (管道缓冲区)中,并发送;(b4) Netty解码器响应,将Hessian 二进制流解码为对象实体;(b5)Netty的业务处理器响应,解析对象实体获取数据集数据,将数据集数据与控件进行关联,刷新控件数据。有益效果本发明提供的基于Netty的大屏可视化平台的数据推送系统,通过异步的、事件驱动的网络应用程序框架把数据直接推送至相关订阅的客户端,实现了对数据实时更新,克服了传统的堵塞IO多线程模式不能满足大屏可视化平台大数据实时、稳定推送的问题。


图1为本发明的结构框图;图2为数据采集服务存储表结构;图3为数据库数据表结构;图4为数据集查询服务流程图;图5为Netty推送数据流程图。
具体实施例方式下面结合附图对本发明作更进一步的说明。一种基于Netty的大屏可视化平台数据推送系统的结构框图,包括数据采集服务层(数据采集服务端)、数据集查询服务层和客户端展现层(客户端)。所述数据采集服务层用于将外部的多源异构数据接入到可视化平台内;数据采集服务端从可视化数据库中获取指标数据采集服务定义,通过解析指标数据采集服务实体对象获得指标ID,指标列定义,指标转存数据表,指标列映射,指标数据采集方式等信息;根据指标对应的数据采集方式,例如JMS,WEBSERVICE, SOCKET等,从外部系统中获得该指标的数据,并将获取的指标数据转换成可视化平台统一格式的数据,最终将转换完成的数据转存至可视化数据库中相应的数据表中所述数据集查询服务层用于将外部接入到可视化平台内的数据转换成内部的消息实体,并将这些消息实体放置到相应的消息队列上,通过消息队列调度器提供给相应的Netty管道。所述数据集查询服务层的采集服务方式包括可视化系统服务和SQL服务两种可视化系统服务是通过客户端友好的图形界面定义指标ID,指标列定义以及一些过滤条件等,将配置的信息封装成数据源VSDatasource对象,后台服务将客户端配置的VSDatasource信息解析为SQL语句并执行,并将查询的数据封装为VSDataset数据集对象;SQL服务是通过客户端直接写指标查询SQL语句的方式,后台根据客户端配置的SQL语句直接执行,也将查询的数据封装为VSDataset对象。在数据集查询服务层工作时提供了前置处理类处理和后置处理类处理,以插拔方式配置数据抽取、转化、装载过程,针对不同业务系统提供不一样模型转换器。当获得了指标的VSDataset对象后,最终要将数据集对象封装为TemplateResponse对象,之后便可以通过Netty管道推送至前台客户端。所述客户端展现层用于通过Netty管道推送方式解析消息实体获取数据集数据,并将数据集数据与控件进行关联,刷新控件数据。Netty管道中按顺序存放了若干个消息处理器,且消息处理器以队列的形式顺序组织起来,形成处理数据流的上下文,用来按顺序处理业务流程,一般来说至少包括编码器、解码器和业务处理器。工作时,封装好的TemplateResponse对象首先要经过编码器进行Hessian序列化,将数据对象序列化为适合Netty传输的Hessian 二进制流,再将Hessian 二进制流写入Netty的ChannelBuffer中并发送,客户端接收到数据后,先要经过解码器进行Hessian 二进制流解码,获得相应的数据消息实体,然后再经过Netty管道的业务处理器,解析数据消息实体,进行相应的业务流程处理。为了避免上批数据未发送完,又开始发送下一批数据时造成数据丢失的情况,需要将每次推送数据放入队列中,按照队列的调度顺序推送。以下结合实例,对本发明做出进一步说明。如图1所示为本例的模块结构图,主要是由数据采集服务层,数据集查询服务层和客户端展现层。后台服务启动时,先要从如图2所示的数据采集服务存储表中读取需要进行数据采集的指标信息,根据表中获得指标的ID、采集服务定义和采集频率,进而将采集任务加入到定时器中,当定时任务执行查询操作获得数据后,将获得的数据转换为可视化平台的数据格式,最终将数据插入到可视化数据库中获得如表3所示的数据库数据表结构。
图4所示为本例的数据集查询服务流程图。先要通过指标采集服务定义获得相应的采集服务方式(可视化系统服务方式或SQL方式):若是可视化系统服务方式,需要将可视化数据源的配置信息解析为SQL语句并执行,若是SQL方式,根据客户端配置的SQL语句直接执行,将查询的数据封装为VSDataset对象。可视化平台数据采集处理时提供了前置处理类,后置处理类,以插拔方式配置数据抽取,转化,装载过程,针对不同业务系统提供不一样模型转换器。图5所示为本例的Netty推送数据流程图。获得数据集数据VSDataset对象完成后,将数据集对象封装为TemplateResponse对象,为了避免上批数据未发送完,又开始发送下一批数据时造成数据丢失的情况,需要将每次推送数据放入队列中,按照队列的调度顺序推送。当进行数据推送时,要先将数据对象进行Hessian序列化,将数据对象转变成适合Netty传输的二进制流,再将二进制流写入Netty的ChannelBuffer中。通过客户端的processID获得连接客户端的Channel管道后,将ChannelBuffer中的流数据写入管道中,便可把数据推送至客户端,客户端接收到数据后,管道的解码器首先会响应,通过解码器对数据流进行解码,获得相应的数据消息实体,然后在经过管道的业务处理器,解析数据消息实体,将数据集数据与控件进行关联,刷新控件数据。以上所述仅是本发明的优选实施方式,应当指出对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种基于Netty的大屏可视化平台数据推送系统,其特征在于:包括数据采集服务层、数据集查询服务层和客户端展现层, 所述数据采集服务层用于将外部的多源异构数据接入到可视化平台内; 所述数据集查询服务层用于将外部接入到可视化平台内的数据转换成内部的消息实体,并将这些消息实体放置到相应的消息队列上,通过消息队列调度器提供给相应的Netty管道; 所述客户端展现层用于通过Netty管道推送方式解析消息实体获取数据集数据,并将数据集数据与控件进行关联,刷新控件数据; 其中,Netty管道将消息处理器以队列的形式顺序组织起来,形成处理数据流的上下文。
2.根据权利要求1所述的基于Netty的大屏可视化平台数据推送系统,其特征在于:所述数据采集服务层的数据接入方式包括JMS、WEBSERVICE、SOCKET。
3.根据权利要求1所述的基于Netty的大屏可视化平台数据推送系统,其特征在于:所述数据集查询服务层的采集服务方式包括可视化系统服务和SQL服务两种,数据集查询服务层的工作流程包括以下步骤: (al)前置处理类处理; (a2)首先通过指标采集服务定义获得采集服务方式; (a3)若采集服务方式为可视化系统服务,则后台将可视化数据原的配置信息解析为SQL语句并行执行,并将查询的数据封装为VSDataset对象; (a4)若采集服务方式为SQL方式,则根据客户端展现层配置的SQL语句直接执行,并将查询的数据封装为VSDataset对象 ; (a5)后置处理类处理。
4.根据权利要求1所述的基于Netty的大屏可视化平台数据推送系统,其特征在于:所述客户端展现层的工作流程包括以下步骤: (bl)首先将需要发送的数据加入队列中,按照队列的调度顺序发送数据; (b2) Netty编码器响应,将数据对象序列化为Hessian 二进制流; (b3)将Hessian 二进制流写入Netty的ChannelBuffer中,并发送; (b4) Netty解码器响应,将Hessian 二进制流解码为对象实体; (b5)Netty的业务处理器响应,解析对象实体获取数据集数据,将数据集数据与控件进行关联,刷新控件数据。
全文摘要
本发明公开了一种基于Netty的大屏可视化平台数据推送系统,包括数据采集层、数据集查询服务层和客户端展现层。本发明提供的基于Netty的大屏可视化平台的数据推送系统,通过异步的、事件驱动的网络应用程序框架把数据直接推送至相关订阅的客户端,实现了对数据实时更新,克服了传统的堵塞IO多线程模式不能满足大屏可视化平台大数据实时、稳定推送的问题。
文档编号G06F17/30GK103077246SQ20131002245
公开日2013年5月1日 申请日期2013年1月18日 优先权日2013年1月18日
发明者邱玉祥, 唐汗青, 王泉啸, 严晴, 武玉峰 申请人:国网电力科学研究院, 南京南瑞集团公司, 国家电网公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1