首页> 中国专利> 一种基于Netty的大屏可视化平台数据推送系统

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

摘要

本发明公开了一种基于Netty的大屏可视化平台数据推送系统,包括数据采集层、数据集查询服务层和客户端展现层。本发明提供的基于Netty的大屏可视化平台的数据推送系统,通过异步的、事件驱动的网络应用程序框架把数据直接推送至相关订阅的客户端,实现了对数据实时更新,克服了传统的堵塞IO多线程模式不能满足大屏可视化平台大数据实时、稳定推送的问题。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-29

    专利权的转移 IPC(主分类):G06F17/30 登记生效日:20171208 变更前: 变更后: 变更前: 变更后: 申请日:20130118

    专利申请权、专利权的转移

  • 2015-07-29

    授权

    授权

  • 2013-06-05

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130118

    实质审查的生效

  • 2013-05-01

    公开

    公开

说明书

技术领域

本发明涉及一种基于Netty的大屏可视化平台数据推送系统,在多源异构数据接入 大屏可视化系统时,并发连接数据高、数据更新周期短、数据量大的场景上仍能保证数 据转换及分发调度、稳定推送、实时更新。

背景技术

国家电网公司信息调度运行监控中心大屏可视化展示系统、国家电网灾备中心大屏 可视化系统和运营检测大屏可视化平台,展示的数据内容丰富且结构复杂。为了实现来 自不同单位、不同系统的数据的整体统一,国家电网公司信息系统经历了SG186的整合 建设,但是各系统内的数据结构仍存在不同的差异,主要体现在数据指标的内涵与外延 在系统中的概念不同,这主要是因为数据来自不同单位,而同一系统在不同单位的数据 结构完全不相同,跨单位数据指标存在采集不及时、不完整、推送频率不同的情况。

由于数据最终以图形化方式进行展示,这对数据的合规性提出了更高的要求,尤其 是曲线类指标,任意时间点的数据超出合理范围都会引起曲线的异动,而且这种异常是 非常直观、醒目的。因此实时接收到的数据,需经过一系统中间过程,诸如解码、转换、 过滤、计算后,把数据直接推送至相关订阅的客户端,实现对数据实时更新,满足客户 端对数据实时性的需求以及提高用户体验度、友好性。

发明内容

发明目的:针对传统的堵塞IO多线程模式不能满足大屏可视化平台大数据实时、 稳定推送的问题,本发明提出一种基于Netty的大屏可视化平台的数据推送系统,通过 异步的、事件驱动的网络应用程序框架把数据直接推送至相关订阅的客户端,实现了对 数据实时更新。

技术方案:为实现上述目的,本发明采用的技术方案为:

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用 程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

一种基于Netty的大屏可视化平台数据推送系统,包括数据采集服务层、数据集查 询服务层和客户端展现层,

所述数据采集服务层用于将外部的多源异构数据接入到可视化平台内;

所述数据集查询服务层用于将外部接入到可视化平台内的数据转换成内部的消息 实体,并将这些消息实体放置到相应的消息队列上,通过消息队列调度器提供给相应的 Netty管道;

所述客户端展现层用于通过Netty管道推送方式解析消息实体获取数据集数据,并 将数据集数据与控件进行关联,刷新控件数据;

其中,Netty管道将消息处理器以队列的形式顺序组织起来,形成处理数据流的上 下文。

上述系统,首先将外部数据源数据接入到可视化平台之中,再将接入的数据转换成 可视化平台的内部消息实体,将消息实体放置到消息队列中,并通过消息队列调度器提 供给相应的Netty管道,通过Netty管道中的各个消息处理器的顺序处理,最终将得到 的数据集推送至客户端(客户端展现层),客户端通过客户端的状态列表定位来相关客 户端的展现数据集,从而实现数据的实时更新功能。消息处理的核心由若干个消息处理 器组成,不同的消息处理器的功能也不尽相同,而Netty管道将这些消息处理器以队列 的形式顺序组织起来,形成处理数据流的上下文,通过对消息处理器的调度实现诸如对 消息解码、存储、转换等功能;同时,管道中输出的数据为为界面展现提供了数据来源。

在数据采集服务层中,外部的多源异构数据包括不同程序、不同协议、不同操作系 统、不同位置的数据,数据采集服务层允入不同外部系统的数据通过不同协议上报到可 视化平台内,所述数据采集服务层的数据接入方式包括JMS、WEBSERVICE、SOCKET 等。

优选的,所述数据集查询服务层的采集服务方式包括可视化系统服务和SQL服务 两种,数据集查询服务层的工作流程包括以下步骤:

(a1)前置处理类处理;

(a2)首先通过指标采集服务定义获得采集服务方式;

(a3)若采集服务方式为可视化系统服务,则后台将可视化数据原的配置信息解析 为SQL语句并行执行,并将查询的数据封装为VSDataset对象;

(a4)若采集服务方式为SQL方式,则根据客户端展现层配置的SQL语句直接执 行,并将查询的数据封装为VSDataset对象;

(a5)后置处理类处理。

优选的,所述客户端展现层的工作流程包括以下步骤:

(b1)首先将需要发送的数据加入队列中,按照队列的调度顺序发送数据;

(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中的流数据写入管 道中,便可把数据推送至客户端,客户端接收到数据后,管道的解码器首先会响应,通 过解码器对数据流进行解码,获得相应的数据消息实体,然后在经过管道的业务处理器, 解析数据消息实体,将数据集数据与控件进行关联,刷新控件数据。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也 应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号