一种数据推送展现方法技术

技术编号:27059654 阅读:22 留言:0更新日期:2021-01-15 14:39
本发明专利技术公开了一种数据推送展现方法,通过建立推送服务,由客户端向推送服务注册并订阅需要的数据,由推送服务系统统一从数据源中获取数据并进行计算、缓存,推送服务通过批量获取数据、结合高速缓存的方式降低对于数据源的访问频率,从而达到降低数据源的访问压力,同时保证数据的及时性。本发明专利技术实现了对需要推送的数据进行统一的管理,采用“长连接+自动推送”方式进行数据通讯更新,避免客户端轮询,降低数据源数据访问压力的同时,实现大并发量下毫秒级的数据推送;总体上完成了对需要推送数据进行整体管理并保证了数据的及时性。

【技术实现步骤摘要】
一种数据推送展现方法
:本专利技术涉及一种数据推送展现方法。
技术介绍
:软件在监控展示数据时,尤其是在Web展现时,通常采用的是定期轮询的方式去获取最新数据,定期轮询的方式下,在数据及时性和服务器压力之间难以平衡,往往及时性要求越高的情况下,轮询的频率越高,服务器的压力和数据源的压力也越高,因此通常采用降低轮询频率或者减少访问客户端的方式来降低服务器和数据源的压力,但是这样的处理方式通常无法满足客户需要,迫切需要找到一种新的方式来解决当前数据轮询展现方式所存在问题。
技术实现思路
:针对上述的需求,本专利技术的目的在于提出一种数据推送方法,在实现高及时性的情况下减少对服务器和数据源的压力。本专利技术的目的通过以下技术方案实现:一)客户端通过注册和订阅所需数据,自动向推送服务系统生成订阅请求;所述订阅请求内容包括客户端订阅的数据标识、订阅推送条件、数据计算表达式,其中,订阅推送条件以设置数据范围或设置表达式进行描述,当条件式成立时进行推送;二)推送服务系统通过消息中间件和WebSocket与客户端通讯,接收客户端的订阅请求;根据客户端订阅请求,启动对数据源的数据访问和对数据计算,定期刷新和缓存;并结合客户端订阅请求,将符合推送条件的结果数据向客户端进行毫秒级的分发和推送;推送服务系统由以下模块和模块间的缓存区组成,并依次循环启动和运行各模块:数据通讯模块:根据配置文件中消息中间件的参数和WebSocket的参数,与消息中间件建立链接,同时建立WebSocket端口侦听;通过WebSocket端口或者消息中间件实现与客户端数据通讯,接收客户端的订阅请求,发送订阅所需数据到客户端;所接收客户端的订阅请求通过数据订阅缓存区向数据访问模块传输数据;数据访问模块:根据订阅请求的数据标识从数据源中批量获取数据,获取的数据通过数据缓存区向数据计算模块传输;数据计算模块:本模块对获取到的数据依据数据计算表达式进行计算,计算结果数据与其他数据通过发送缓存区向数据推送分发模块传输;数据推送分发模块:结合从订阅缓存区获取的客户端的订阅请求,将从发送缓存区批量获取到的数据,对于有订阅推送条件要求的数据,仅对符合推送条件进行推送,对于订阅请求中未设置订阅推送条件的数据,正常推送;推送通过设置在数据通讯模块WebSocket端口或者消息中间件,进行分发给订阅的客户端;三)客户端接收的数据进行展示,自动更新数据。进一步地,步骤一)中,所述订阅请求的数据标识,是订阅该数据时指定需要获取的数据类型以及数据的Key值,其中数据类型设置为关系数据和实时数据两种;依据该数据标识,推送服务系统按订阅推送条件判断与Key值对于的Value值是否推送;或者按数据计算表达式运算即获取与该Key值对应的Value值进行推送。进一步地,所述数据源,其数据分为实时数据和关系数据,其中实时数据来源于实时数据库,关系数据来源于关系数据库;所述实时数据库具体是SyncBase、eDna、OpenPlant、InSql、PI、X-DB;所述数据访问模块建立实时数据访问层,根据配置文件中设置的实时数据库类型以及链接参数,来链接不同的实时数据库。进一步地,推送服务系统中,所述实时数据和关系数据为Key-Value结构,其中Key对应于所述订阅请求的数据标识Key值的取值,Value对应于推送数据值;属于实时数据时,Key为测点编码,Value为测点值;属于关系数据时,Key为业务功能唯一识别编码,Value为对应业务数据,使用json格式描述。进一步地,本系统所述消息中间件具体是指RabbitMQ、RocketMQ、ActiveMQ、Kafka,所述数据通讯模块建立消息中间件访问层,根据配置文件中设置的消息中间件类型和链接参数,来链接不同的消息中间件与客户端通讯获取客户端订阅请求。本专利技术有益效果为:本专利技术的推送方法是一种通用方法,为数据刷新类的程序提供了一种数据通讯展示方法,通过推送的方式将需要推送的数据推送到客户端,能够有效降低服务器的压力,提高系统的稳定性,降低服务器的资源消耗的同时能保证数据的及时性;推送服务在获取到数据后,可以根据计算公式对测点数据进行计算,降低对于实时数据库的计算依赖,减少实时数据库中的计算类测点;同时可以设置推送条件,在满足条件时才进行推送,从而避免无效推送,降低服务器通讯压力,减少网络流量;进行推送时,支持多种消息中间件以及WebSocket的方式进行推送,满足多种多样的数据推送要求。本专利技术在SIS、MIS等信息化产品中得到应用,使用效果显著,在数据的及时性上获得了客户的广泛认可,满足了实时了解最新数据的需要,减少了服务器资源的消耗。附图说明:图1是传统轮询方式实现数据展示的软件架构示意图。图2是本专利技术基于推送服务系统的实现数据展示的软件架构示意图。图3是本专利技术中推送服务系统内部各个模块运行逻辑示意图。图4是本专利技术一种数据推送展现方法的流程示意图。具体实施方式:下面结合附图对本专利技术作进一步的说明。本专利技术一种数据推送展现方法,通过对数据源的统一访问以及采用推送的方式来实现数据的及时、高效、低资源消耗的展现方式。以下结合图示具体介绍本专利技术的实施方式:如图2所示,本专利技术在客户端与数据源之间设置了推送服务系统,有别传统轮询方式实现数据展示的软件架构(如图1所示),传统方案需要客户端定期请求,由Web服务端从数据源进行数据交互,数据交互频率与客户端数成正比,通信与数据资源利用压力较大,在客户端无请求时没法实现实时性更新,本专利技术只需用户客户端“一次订阅”,推送服务系统就可以“按要求推送”,做到数据的实时更新,且推送服务系统与数据源交互频率与客户端数无关。图3公开了本专利技术中推送服务系统内部各个模块运行逻辑,推送服务系统由数据通讯模块、数据访问模块、数据计算模块、数据推送分发模块组成,且模块之间设置有订阅缓存区、数据缓存区、发送缓存区,其中:数据通讯模块建立消息中间件访问层和WebSocket端口,推送服务系统通过WebSocket端口或者消息中间件实现与客户端数据通讯,接收客户端的订阅请求,发送客户端所需推送数据,数据通讯模块将订阅请求通过订阅缓存区发送给数据访问模块;数据访问模块建立实时数据访问层,根据配置文件中设置的实时数据库类型以及链接参数,来链接不同的实时数据库,根据订阅请求访问数据源获取数据,通过数据缓存区发送给数据计算模块;数据计算模块完成对运算表达式数据计算,计算结果数据和其他数据一并通过发送缓存区发送给数据推送分发模块;数据推送分发模块结合订阅客户端请求,将满足发放条件的数据,通过数据通讯模块的WebSocket端口或者消息中间件进行分发。根据图3所示方案,其中所述的订阅请求内容包括客户端订阅的数据标识、订阅推送条件、数据计算表达式,其中,订阅推送条件以设置数据范围或设置表达式进行描述,当条件式成立时进行推送;所述的推送客户端数据格式为Key-Value结构,使用jso本文档来自技高网...

【技术保护点】
1.一种数据推送展现方法,其特征在于:包括:/n一)客户端通过注册和订阅所需数据,自动向推送服务系统生成订阅请求;所述订阅请求内容包括客户端订阅的数据标识、订阅推送条件、数据计算表达式,其中,订阅推送条件以设置数据范围或设置表达式进行描述,当条件式成立时进行推送;/n二)推送服务系统通过消息中间件和WebSocket与客户端通讯,接收客户端的订阅请求;推送服务系统根据客户端订阅请求,启动对数据源的数据访问和对数据计算,定期刷新和缓存,并结合客户端订阅请求,将符合推送条件的结果数据向客户端进行毫秒级的分发和推送;/n所述推送服务系统包括由以下模块和模块间的缓存区组成,并依次循环启动和运行各模块;所述模块包括数据通讯模块、数据访问模块、数据计算模块以及数据推送分发模块;/n数据通讯模块:根据配置文件中消息中间件的参数和WebSocket的参数,与消息中间件建立链接,同时建立WebSocket端口侦听,通过WebSocket端口或者消息中间件实现与客户端数据通讯,接收客户端的订阅请求,发送订阅所需数据至客户端;数据通讯模块接收客户端的订阅请求通过数据订阅缓存区向数据访问模块传输数据;/n数据访问模块:根据订阅请求的数据标识从数据源中批量获取数据,获取的数据通过数据缓存区向数据计算模块传输;/n数据计算模块:数据计算模块对获取到的数据依据数据计算表达式进行计算,计算结果数据与其他数据通过发送缓存区向数据推送分发模块传输;/n数据推送分发模块:结合从订阅缓存区获取的客户端的订阅请求,将从发送缓存区批量获取到的数据,对于有订阅推送条件要求的数据,仅对符合推送条件进行推送,对于订阅请求中未设置订阅推送条件的数据,正常推送;推送通过设置在数据通讯模块WebSocket端口或者消息中间件,进行分发给订阅的客户端;/n三)客户端接收的数据进行展示,自动更新数据。/n...

【技术特征摘要】
1.一种数据推送展现方法,其特征在于:包括:
一)客户端通过注册和订阅所需数据,自动向推送服务系统生成订阅请求;所述订阅请求内容包括客户端订阅的数据标识、订阅推送条件、数据计算表达式,其中,订阅推送条件以设置数据范围或设置表达式进行描述,当条件式成立时进行推送;
二)推送服务系统通过消息中间件和WebSocket与客户端通讯,接收客户端的订阅请求;推送服务系统根据客户端订阅请求,启动对数据源的数据访问和对数据计算,定期刷新和缓存,并结合客户端订阅请求,将符合推送条件的结果数据向客户端进行毫秒级的分发和推送;
所述推送服务系统包括由以下模块和模块间的缓存区组成,并依次循环启动和运行各模块;所述模块包括数据通讯模块、数据访问模块、数据计算模块以及数据推送分发模块;
数据通讯模块:根据配置文件中消息中间件的参数和WebSocket的参数,与消息中间件建立链接,同时建立WebSocket端口侦听,通过WebSocket端口或者消息中间件实现与客户端数据通讯,接收客户端的订阅请求,发送订阅所需数据至客户端;数据通讯模块接收客户端的订阅请求通过数据订阅缓存区向数据访问模块传输数据;
数据访问模块:根据订阅请求的数据标识从数据源中批量获取数据,获取的数据通过数据缓存区向数据计算模块传输;
数据计算模块:数据计算模块对获取到的数据依据数据计算表达式进行计算,计算结果数据与其他数据通过发送缓存区向数据推送分发模块传输;
数据推送分发模块:结合从订阅缓存区获取的客户端的订阅请求,将从发送缓存区批量获取到的数据,对于有订阅推送条件要求的数据,仅对符合推送条件进行推送,对于订阅请求中未设置订阅推送条件的数据,正常推送;推送通过设置在数据通讯模块WebSocket端口或者消息中间件,进行分发给订阅的客...

【专利技术属性】
技术研发人员:徐林吴文韬
申请(专利权)人:江苏睿孜星智控科技有限公司
类型:发明
国别省市:江苏;32

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

1