基于MQTT协议的新型融合终端营配信息共享方法及系统与流程

文档序号:22253864发布日期:2020-09-18 13:18阅读:291来源:国知局
基于MQTT协议的新型融合终端营配信息共享方法及系统与流程

本发明涉及一种基于mqtt协议的新型融合终端营配信息共享方法,属于配电台区信息采集和共享技术领域。



背景技术:

新型配电台区融合终端解决了配电台区侧同时安装智能配变终端及集中器,所带来的增加成本、功能重复和增加运维工作量等问题。然而,基于业务和安全需求,要求融合终端软件应用容器化,配电业务和营销业务应用分别部署在不同的容器里。由于虚拟机占用的硬件内存不同,导致传统的内存共享技术无法使用,也随之带来了数据如何共享的难题。

目前,突破容器间数据共享的方式是采用套接字方式,但是套接字是传输层协议,需要与应用层协议相互配合使用。应用层协议选择主要有两种方式,一种是自定义协议,不利于大规模推广;另一种格式采用目前已形成标准的通信协议,互联网行业的标准协议对终端计算能力要求较高,电力行业应用层通信协议iec104、iec101等,是为了实现终端与主站点对点的数据共享,并且数据内容和类型由严格的限制,不适用于多应用程序之间的实时数据共享和即插即用。因此,亟需一种适用于计算能力有限,且可以实现多应用之间快速共享的即时通讯的方法。



技术实现要素:

目的:为了解决配电台区融合终端内不同容器,不同应用软件之间数据共享的问题,本发明提供一种基于mqtt协议的新型融合终端营配信息共享方法,基于mqtt协议实现跨容器和跨终端数据实时共享,并通过建立共享数据库,实现应用共享数据业务的即插即用;作为营配融合的桥梁,全面提升低压配电网精益化管理水平。

技术方案:为解决上述技术问题,本发明采用的技术方案为:

基于mqtt协议的新型融合终端营配信息共享方法,包括如下步骤:

终端主机的mqttservice接收注册请求消息,将注册请求消息转给订阅注册请求topic的共享数据库应用;

终端主机的mqttservice接收注册响应消息,将注册响应消息转给订阅注册响应topic的配电业务应用或营销业务应用;

终端主机的mqttservice接收推送请求消息,将推送请求消息转给订阅数据推送topic的共享数据库应用;

终端主机的mqttservice接收招读请求消息,将招读请求消息转给订阅数据招读请求topic的共享数据库应用;

终端主机的mqttservice接收招读响应消息,将招读响应消息转给订阅数据招读响应topic的配电业务应用或营销业务应用。

作为优选方案,所述注册请求消息的内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址、服务能力描述;

所述注册响应消息的内容包括下述中的至少一种:消息身份认证码、时间戳、注册结果;

所述推送请求消息的内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址和共享数据项;

所述招读请求消息的具体内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址和数据名称集合;

所述招读响应消息的具体内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址和共享数据项。

作为优选方案,所述服务能力描述包括下述中的至少一种:数据名称、数据类型、存储类型、取值范围和单位;所述数据类型包括下述中的至少一种遥测、遥信、遥脉、遥控;所述储存类型包括实时型和记录型;所述注册结果包括注册成功和注册失败;所述共享数据项包括数据名称和数据数值。

基于mqtt协议的新型融合终端营配信息共享方法,包括如下步骤:

配电业务应用或营销业务应用分别基于mqtt协议即时消息交互机制,生成注册请求topic,通过mqttpublish接口向mqttservice发布注册请求消息;

共享数据库应用根据注册请求消息中的内容分类建表,并响应注册,生成注册响应topic,通过mqttpublish接口向mqttservice发布注册响应消息;

配电业务应用或营销业务应用基于mqtt协议即时消息交互机制,生成数据推送topic,通过mqttpublish接口向mqttservice发布推送请求消息;共享数据库应用根据推送请求消息中的内容更新共享数据项;

配电业务应用或营销业务应用基于mqtt协议即时消息交互机制,生成数据招读请求topic,通过mqttpublish接口向mqttservice发布招读请求消息;

共享数据库应用解析招读请求消息中的需要招读的共享数据项,提取共享数据,并生成数据招读响应topic,通过mqttpublish接口向mqttservice发布招读响应消息,配电业务应用或营销业务应用解析招读响应消息获取共享数据项,提取共享数据。

作为优选方案,所述topic名称由多个层级组成,以斜杠划分,层级包括反映主题功能的不变部分和关键信息的可变部分。

作为优选方案,所述注册请求topic的内容为“厂商名称/应用名称/请求/共享数据库应用名称/注册”;

所述注册响应topic的内容为“厂商名称/应用名称/响应/共享数据库应用名称/注册”;

所述数据推送topic的内容为“应用名称/推送/共享数据库应用名称/数据类型”;

所述数据招读请求topic的内容为“应用名称/请求/共享数据库应用名称/储存类型”;

所述数据招读响应topic的内容为“应用名称/响应/共享数据库应用名称/储存类型”。

作为优选方案,所述注册请求消息的内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址、服务能力描述;

所述注册响应消息的内容包括下述中的至少一种:消息身份认证码、时间戳、注册结果;

所述推送请求消息的内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址和共享数据项;

所述招读请求消息的具体内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址和数据名称集合;

所述招读响应消息的具体内容包括下述中的至少一种:消息身份认证码、时间戳、设备类型、设备地址和共享数据项。

作为优选方案,所述服务能力描述包括下述中的至少一种:数据名称、数据类型、存储类型、取值范围和单位;所述数据类型包括下述中的至少一种遥测、遥信、遥脉、遥控;所述储存类型包括实时型和记录型;所述注册结果包括注册成功和注册失败;所述共享数据项包括数据名称和数据数值。

作为优选方案,配电业务应用或营销业务应用推送共享数据还包括以下步骤:

配电业务应用或营销业务应用定时主动推送全部共享数据给共享数据库应用,或者共享数据变化超过阈值时主动推送全部共享数据给共享数据库应用。

作为优选方案,配电业务应用或营销业务应用招读共享数据还包括以下步骤:

配电业务应用或营销业务应用可选择招读全部数据或部分数据,招读部分数据时,给出设备类型、设备地址和数据名称的关键信息。

基于mqtt协议的新型融合终端营配信息共享系统,包括:终端主机、配电业务应用、营销业务应用、共享数据库应用,

终端主机的mqttservice接收注册请求消息,将注册请求消息转给订阅注册请求topic的共享数据库应用;

终端主机的mqttservice接收注册响应消息,将注册响应消息转给订阅注册响应topic的配电业务应用或营销业务应用;

终端主机的mqttservice接收推送请求消息,将推送请求消息转给订阅数据推送topic的共享数据库应用;

终端主机的mqttservice接收招读请求消息,将招读请求消息转给订阅数据招读请求topic的共享数据库应用;

终端主机的mqttservice接收招读响应消息,将招读响应消息转给订阅数据招读响应topic的配电业务应用或营销业务应用;

配电业务应用或营销业务应用分别基于mqtt协议即时消息交互机制,生成注册请求topic,通过mqttpublish接口向mqttservice发布注册请求消息;

共享数据库应用根据注册请求消息中的内容分类建表,并响应注册,生成注册响应topic,通过mqttpublish接口向mqttservice发布注册响应消息;

配电业务应用或营销业务应用基于mqtt协议即时消息交互机制,生成数据推送topic,通过mqttpublish接口向mqttservice发布推送请求消息;共享数据库应用根据推送请求消息中的内容更新共享数据项;

配电业务应用或营销业务应用基于mqtt协议即时消息交互机制,生成数据招读请求topic,通过mqttpublish接口向mqttservice发布招读请求消息;

共享数据库应用解析招读请求消息中的需要招读的共享数据项,提取共享数据,并生成数据招读响应topic,通过mqttpublish接口向mqttservice发布招读响应消息,配电业务应用或营销业务应用解析招读响应消息获取共享数据项,提取共享数据。

有益效果:本发明提供的基于mqtt协议的新型融合终端营配信息共享方法,利用mqtt协议中的ip技术,可以穿透容器,完成容器间的数据共享,同时发布/订阅消息模式可有效的解除应用间的耦合,提供了良好的扩展性。解决了新型配电台区融合终端容器间和多应用数据共享难题,并且具备主动注册共享数据功能,应用解耦,即插即用。本发明具备部署灵活、数据按需共享,作为营配融合的桥梁,全面提升低压配电网精益化管理水平。

附图说明

图1为本发明的共享数据示意图。

图2为本发明应用app部署示意图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

如图1所示,本发明的一具体实施方式为:一种基于mqtt协议的新型融合终端营配信息共享方法,包括以下步骤。

s01,在终端主机上部署mqttservice,配电业务应用、营销业务应用和共享数据库应用通过ip和端口号连接到mqttservice;

s02,配电业务应用或营销业务应用分别基于mqtt协议即时消息交互机制,生成注册请求topic,通过mqttpublish接口向mqttservice发布注册请求消息,mqttservice将注册请求消息转给订阅注册请求topic的共享数据库应用;

s03,共享数据库应用根据注册请求消息中的内容分类建表,并响应注册,生成注册响应topic,通过mqttpublish接口向mqttservice发布注册响应消息,mqttservice将注册响应消息转给订阅注册响应topic的配电业务应用或营销业务应用,响应结果为成功时,完成注册;

s04,配电业务应用或营销业务应用基于mqtt协议即时消息交互机制,生成数据推送topic,通过mqttpublish接口向mqttservice发布推送请求消息,mqttservice将推送请求消息转给订阅数据推送topic的共享数据库应用;共享数据库应用根据推送请求消息中的内容更新共享数据项;

s05,配电业务应用或营销业务应用基于mqtt协议即时消息交互机制,生成数据招读请求topic,通过mqttpublish接口向mqttservice发布招读请求消息,mqttservice将招读请求消息转给订阅数据招读请求topic的共享数据库应用;

s06,共享数据库应用解析招读请求消息中的需要招读的共享数据项,提取共享数据,并生成数据招读响应topic,通过mqttpublish接口向mqttservice发布招读响应消息,mqttservice将招读响应消息转给订阅数据招读响应topic的配电业务应用或营销业务应用,配电业务应用或营销业务应用解析招读响应消息获取共享数据,最终实现数据共享。

所述topic包括:注册请求topic、注册响应topic,数据推送topic,数据招读请求topic,数据招读响应topic,各种topic名称由多个层级组成,以斜杠划分,包括反映主题功能的不变部分(如:注册、推送、招读、请求、响应)和关键信息的可变部分(如:厂商名称、应用名称、数据类型);具体如下:

所述注册请求topic的具体内容为“厂商名称/应用名称/请求/共享数据库应用名称/注册”;

所述注册响应topic的具体内容为“厂商名称/应用名称/响应/共享数据库应用名称/注册”;

所述数据推送topic的具体内容为“应用名称/推送/共享数据库应用名称/数据类型”;

所述数据招读请求topic的具体内容为“应用名称/请求/共享数据库应用名称/储存类型”;所述储存类型包括实时型和记录型。

所述数据招读响应topic的具体内容为“应用名称/响应/共享数据库应用名称/储存类型”。

所述注册请求消息的具体内容包括:消息身份认证码、时间戳、设备类型、设备地址、服务能力描述;所述服务能力描述包括:数据名称、数据类型、存储类型、取值范围和单位;所述数据类型包括遥测、遥信、遥脉、遥控。

所述注册响应消息的具体内容包括:消息身份认证码、时间戳、注册结果;所述注册结果包括注册成功和注册失败。

所述推送请求消息的具体内容包括:消息身份认证码、时间戳、设备类型、设备地址和共享数据项;所述共享数据项包括数据名称和数据数值。

所述招读请求消息的具体内容包括:消息身份认证码、时间戳、设备类型、设备地址和数据名称集合。

所述招读响应消息的具体内容包括:消息身份认证码、时间戳、设备类型、设备地址和共享数据项;所述共享数据项包括数据名称和数据数值。

所述配电业务应用或营销业务应用推送共享数据还包括以下步骤:配电业务应用或营销业务应用定时主动推送全部共享数据给共享数据库应用,或者共享数据变化超过阈值时主动推送全部共享数据给共享数据库应用。

所述配电业务应用或营销业务应用招读共享数据还包括以下步骤:配电业务应用或营销业务应用可选择招读全部数据或部分数据,招读部分数据时,给出设备类型、设备地址和数据名称的关键信息;

如图2所示,配电业务应用可以分为基础数据应用、运维管理应用和用户服务应用三大类、主要包括配变监测应用、故障主动上报应用和故障主动抢修等应用。营销业务应用主要包括用电采集应用、主动上报应用和窃电分析应用等。这些业务应用的实现离不开营配数据共享。如配电业务应用中的故指主动抢修应用和营销业务应用中的窃电分析应用的实现都需要对配电业务应用中的基础数据应用和营销业务应用中的用电采集应用采集的数据进行分析。

实施例2,使用mosquitto搭建了mqttservice,作为mqtt消息总线代理软件,承载配电业务应用和营销业务应用。演示配电业务应用共享漏保电压数据给营销业务应用过程:

步骤1:配电业务应用、营销业务应用和共享数据库应用连接终端主机上的mqttservice,终端主机的ip地址为127.0.0.1,端口号为1883;

步骤2:配电业务应用向mqttservice发送注册请求消息,注册请求topic为nari/app1/request/database/regsiter,nari为厂商名称,app1为配电业务应用名称,database为共享数据库名称,request表示此消息为请求消息,regsiter表示此消息为注册消息,消息体为{“token”:“234”,“timestamp”:“2019-03-01t09:30:09.230+0800”,“dev_type”:“rcd”,“dev_addr”:“000000000001”,“body”:[{“name”:“phv_phsa”,“save_type”:“real”,“data_type”:“yc”,“unit”:“v”,“max”:“500”,“min”:“0”},{“name”:“phv_phsb”,“save_type”:“real”,“data_type”:“yc”,“unit”:“v”,“max”:“500”,“min”:“0”}]},消息体中为json数据格式,“token”为消息身份认证码,消息发送和回复一致,“timestamp”为时间戳,表示消息发布时间,“dev_type”为设备类型,“rcd”表示此设备为漏保开关,“dev_addr”为设备地址,“body”里内容为服务能力描述,“name”为数据名称,“phv_phsa”和“phv_phsb”分别表示设备a相和b相电压,“save_type”为储存类型,“real”表示实时数据,“data_type”为数据类型,“yc”为遥测数据类型,“unit”为数据单位,“max”为数据的最大值,“min”为数据的最小值。

步骤3:共享数据库应用订阅topic:nari/app1/request/database/register,收到mqttservice转发的主动注册请求消息,共享数据库解析消息体,分类建表,并生成注册响应topic为database/response/app1/register,app1为配电业务应用名称,database为共享数据库名称,response表示此消息为响应消息,regsiter表示此消息为注册消息,向mqttservice发布消息体为{“token”:“234”,“timestamp”:2019-03-01t09:30:09.330+0800”,“resulte”:“ok”};“resulte”为注册结果,“ok”表示注册成功,“fail”表示注册失败。

步骤4:配电业务应用订阅topic:database/response/app1/register,收到mqttservice转发的主动注册响应消息,停止注册,开始向mqttservice推送共享数据,生成数据推送topic为app1/inform/database/realdata,app1为配电业务应用名称,database为共享数据库名称,inform表示此消息为推送消息不需要回复,realdata表示请求的数据储存类型为实时数据,推送消息体为{“token”:“235”,“timestamp”:“2019-03-01t09:30:09.230+0800”,“dev_type”:“rcd”,“dev_addr”:“000000000001”,“body”:[{“name”:“phv_phsa”,“value”:“220.10”},{“name”:“phv_phsb”,“value”:“220.11”}]},“token”为消息身份认证码,“timestamp”为时间戳,表示消息发布时间,“dev_type”为设备类型,“rcd”表示此设备为漏保开关,“dev_addr”为设备地址,“body”里内容为数据名称和对应的数据值。

步骤5:共享数据应用订阅topic:app1/inform/database/realdata,收到mqttservice转发的包含配电应用的共享数据消息,并储存;

步骤6:营销业务应用向mqttservice发送数据招读请求消息,数据招读请求topic为app2/request/database/realdata,app2为营销业务应用名称,database为共享数据库名称,request表示此消息为请求消息,realdata表示请求的数据储存类型为实时数据,消息体为{“token”:“236”,“timestamp”:“2019-03-01t09:33:09.430+0800”,“dev_type”:“rcd”,“dev_addr”:“000000000001”,“body”:[“phv_phsa”,“phv_phsb”]};“token”为消息身份认证码,“timestamp”为时间戳,表示消息发布时间,“dev_type”为设备类型,“rcd”表示此设备为漏保开关,“dev_addr”为设备地址,“body”里内容为请求的数据名称。

步骤7:共享数据应用订阅topic:app2/request/database/realdata,收到mqttservice转发的包含营销应用的所要请求的共享数据项的消息,提取数据,并响应共享数据招读topic为database/response/app2/realdata,app2为营销业务应用名称,database为共享数据库名称,request表示此消息为请求消息,realdata表示请求的数据储存类型为实时数据,消息体为{“token”:“234”,“timestamp”:“2019-03-01t09:33:09.460+0800”,“dev_type”:“rcd”,“dev_addr”:“000000000001”,“body”:[{“name”:“phv_phsa”,“value”:“220.10”},{“name”:“phv_phsb”,“value”:“220.11”}]},“token”为消息身份认证码,“timestamp”为时间戳,表示消息发布时间,“dev_type”为设备类型,“rcd”表示此设备为漏保开关,“dev_addr”为设备地址,“body”里内容为请求的数据名称和对应的数据值;

步骤8:营销应用订阅topic:database/response/app2/realdata,收到mqttservice转发的包含营销应用的所要请求的共享数据的消息,解析获得共享数据,数值和步骤4中配电应用推送的数值一致。

上述步骤实现营销应用获取配电应用共享实时数据方法,同理其他应用间共享实时数据和记录型数据亦可参考上述步骤。

软件发明可存储在计算机可读取存储介质中的说明,请保存下面的模板:

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1