一种适用于智能量测设备的轻量级发布订阅方法及系统、设备、存储介质与流程

文档序号:29648516发布日期:2022-04-13 22:03阅读:60来源:国知局
一种适用于智能量测设备的轻量级发布订阅方法及系统、设备、存储介质与流程

1.本发明涉及通讯网络技术领域,特别地,涉及一种适用于智能量测设备的轻量级发布订阅方法及系统、设备、计算机可读取的存储介质。


背景技术:

2.发布订阅系统用于将数据从发布者分发给订阅者,提供了一种松散的通信模式。发布订阅是一种消息范式,消息的发送者,即发布者,不会将消息直接发送给特定的接收者,即订阅者,而是将发布的消息分为不同的类别,无需了解哪些订阅者可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者存在。发布订阅系统在时间、空间和同步方面实现了通信双方的完全解耦,广泛部署在大规模分布式的应用中。
3.智能量测设备包括智能行业设备,例如智能物联表、能源控制器和新一代智能电表等,因智能量测设备中app之间交互很多使用串口和rs485等低速率通信方式,因此,现有的发布订阅系统效率较低,无法满足智能量测设备实时响应的要求。


技术实现要素:

4.本发明提供了一种适用于智能量测设备的轻量级发布订阅方法及系统、设备、存储介质,以解决现有智能量测设备的app之间采用串口和rs485等低速率通信方式进行交互存在的效率低、无法满足实时响应要求的技术问题。
5.根据本发明的一个方面,提供一种适用于智能量测设备的轻量级发布订阅方法,包括以下内容:
6.构建消息管理器,所述消息管理器针对智能量测设备中搭载的多个app虚拟化映射在docker容器内,并实现多个app之间的相互通信;
7.消息管理器获取第一智能量测设备中的消息发布app所发布的多条消息;
8.消息管理器将多条消息根据app类别分别存储至对应的docker容器中并形成消息队列;
9.消息管理器根据订阅消息的内容将消息队列对应发送至第二智能量测设备的消息订阅app。
10.进一步地,所述建立消息管理器的过程具体为:
11.对智能量测设备的操作系统进行轻量级虚拟化处理;
12.对智能量测设备中搭载的多个app对应建立一个docker容器,多个docker容器之间通过虚拟网络连接;
13.制定基于高速总线通信的高效数据交互协议以实现docker容器间的通信。
14.进一步地,消息管理器的数量为多个,多个消息管理器采用逐级通信方式,且每个消息管理器均与第二智能量测设备进行通信,在消息管理器根据订阅消息的内容将消息队
列对应发送至第二智能量测设备的消息订阅app之前还包括以下内容:
15.每个消息管理器在接收到消息队列后判断是否需要进行中继转发,若需要则将消息队列转发至下一级消息管理器,下一级消息管理器判断消息队列中是否包含自身的订阅消息,若包含则进行订阅消息响应,若不包含则将消息队列继续转发至下一级消息管理器。
16.进一步地,在形成消息队列之后还包括以下内容:
17.消息管理器根据电能表档案映射关系,将电能表表号和抄读的数据标识进行压缩汇聚以形成压缩汇聚类消息,所述压缩汇聚类消息包括消息头、汇聚标志、映射序号表、汇聚消息列表和消息校验,其中,映射序号表与电能表档案一一对应。
18.进一步地,消息订阅app在收到其订阅的消息后,通过汇聚标志判断该消息是否为压缩汇聚类消息,若是则根据电能表档案映射关系对消息进行拆分解压重组,生成该消息订阅app所需的消息进行下发。
19.进一步地,在形成消息队列之后还包括以下内容:
20.从消息队列的所有发布消息中提取出所有app所需的基础通用类消息并汇聚打包形成一条通用发布消息,并进行多级消息管理器之间的逐级转发,每个消息管理器按需进行通用发布消息的拆解并进行订阅消息响应。
21.另外,本发明还提供一种适用于智能量测设备的轻量级发布订阅系统,包括:
22.第一智能量测设备,搭载有至少一个消息发布app,用于发布消息;
23.第二智能量测设备,搭载有至少一个消息订阅app,用于订阅消息;
24.消息管理器,用于针对智能量测设备中搭载的多个app虚拟化映射在docker容器内,并实现多个app之间的相互通信,在获取第一智能量测设备中的消息发布app所发布的多条消息之后,根据app类别将多条发布消息分别存储至对应的docker容器中并形成消息队列,并根据订阅消息的内容将消息队列对应发送至第二智能量测设备的消息订阅app。
25.进一步地,所述消息管理器包括:
26.虚拟化单元,用于对智能量测设备的操作系统进行轻量级虚拟化处理;
27.隔离单元,用于对智能量测设备中搭载的多个app对应建立一个docker容器,多个docker容器之间通过虚拟网络连接;
28.交互单元,用于制定基于高速总线通信的高效数据交互协议以实现docker容器间的通信,并生成消息队列。
29.另外,本发明还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
30.另外,本发明还提供一种计算机可读取的存储介质,用于存储适用于智能量测设备进行轻量级发布订阅的计算机程序,所述计算机程序在计算机上运行时执行如上所述的方法的步骤。
31.本发明具有以下效果:
32.本发明的适用于智能量测设备的轻量级发布订阅方法,通过构建消息管理器,将智能量测设备中的多个app虚拟化映射在docker容器内,并实现多个app之间的相互通信,消息管理器在获取第一智能量测设备的消息发布app所发布的消息后根据第二智能量测设备中每个消息订阅app所订阅的消息内容将对发布消息进行对应发送,多个智能量测设备
的app通过消息管理器进行消息传递,在智能量测设备内通过串口或rs485等低速率通信方式进行消息传递时提高了传输效率,不仅为智能量测设备上的app提供了独立部署的隔离环境,而且支持多个app之间的互联互通,智能量测设备可以下载多元功能的app,保证智能量测设备对及时控制类消息可以进行及时、有效、稳定和安全的处理。
33.另外,本发明的适用于智能量测设备的轻量级发布订阅系统同样具有上述优点。
34.除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
35.构成本技术的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
36.图1是本发明优选实施例的适用于智能量测设备的轻量级发布订阅方法的流程示意图。
37.图2是图1中步骤s1的子流程示意图。
38.图3是本发明另一实施例的适用于智能量测设备的轻量级发布订阅方法的流程示意图。
39.图4是本发明又一实施例的适用于智能量测设备的轻量级发布订阅方法的流程示意图。
40.图5是本发明再一实施例的适用于智能量测设备的轻量级发布订阅方法的流程示意图。
41.图6是本发明另一实施例的适用于智能量测设备的轻量级发布订阅系统的模块结构示意图。
具体实施方式
42.以下结合附图对本发明的实施例进行详细说明,但是本发明可以由下述所限定和覆盖的多种不同方式实施。
43.如图1所示,本发明的优选实施例提供一种适用于智能量测设备的轻量级发布订阅方法,包括以下内容:
44.步骤s1:构建消息管理器,所述消息管理器针对智能量测设备中搭载的多个app虚拟化映射在docker容器内,并可实现多个app之间的相互通信;
45.步骤s2:消息管理器获取第一智能量测设备中的消息发布app所发布的多条消息;
46.步骤s3:消息管理器将多条消息根据app类别分别存储至对应的docker容器中并形成消息队列;
47.步骤s4:消息管理器根据订阅消息的内容将消息队列对应发送至第二智能量测设备的消息订阅app。
48.可以理解,本实施例的适用于智能量测设备的轻量级发布订阅方法,通过构建消息管理器,将智能量测设备中的多个app虚拟化映射在docker容器内,并实现多个docker容器之间的相互通信,消息管理器在获取第一智能量测设备的消息发布app所发布的消息后根据第二智能量测设备中每个消息订阅app所订阅的消息内容将对发布消息进行对应发
送,多个智能量测设备的app通过消息管理器进行消息传递,在智能量测设备内通过串口或rs485等低速率通信方式进行消息传递时提高了传输效率,不仅为智能量测设备上的app提供了独立部署的隔离环境,而且支持多个app之间的互联互通,智能量测设备可以下载多元功能的app,保证智能量测设备对及时控制类消息可以进行及时、有效、稳定和安全的处理。
49.可以理解,如图2所示,所述步骤s1中建立消息管理器的过程具体为:
50.步骤s11:对智能量测设备的操作系统进行轻量级虚拟化处理;
51.步骤s12:对智能量测设备中搭载的多个app对应建立一个docker容器,多个docker容器之间通过虚拟网络连接;
52.步骤s13:制定基于高速总线通信的高效数据交互协议以实现docker容器间的通信。
53.具体地,先研究智能量测设备的硬件,包括磁盘空间、内存空间、计算能力和接口多样性,分析智能量测设备的硬件特点,包括可靠性、安全性和app部署方式,基于智能量测设备的硬件特点提出操作系统资源虚拟化的需求点。然后,研究openvz、lxc和docker等主流操作系统虚拟化方案,比较分析各操作系统虚拟化方案的优势和缺点,同时,研究namespace、cgroups和unionfilesystem环境操作系统虚拟化技术,建立智能量测设备的操作系统虚拟化机制,其中,操作系统虚拟化机制可优选为docker容器虚拟化技术。然后,基于智能量测设备的操作系统虚拟化机制,结合智能量测设备操作系统资源虚拟化的需求点,对智能量测设备的操作系统进行轻量级虚拟化。
54.再构建基于docker的多级安全容器隔离模型,docker容器是一个开源的应用容器引擎,它可以让开发者以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上,包括linux机器和windows机器,也可以实现操作系统虚拟化,达到快速交付、测试和部署。docker在一个单一的容器内捆绑了关键的app组件,让单一容器可以在不同平台和云计算之间实现便携性,docker是一个实现跨多个不同环境运行的app的理想容器,可以实现同宿主机不同docker容器之间相互通信。因此,针对智能量测设备中搭载的多款app对应建立一个docker容器,后续智能量测设备中消息发布app所发布的消息则存储至对应的docker容器中,从而实现每个app的独立部署和相互隔离,保证了安全性、可靠性,并且多个docker容器之间可进行相互通信,实现了不同app之间的互联互通。其中,多个docker容器之间通过虚拟网络进行连接,而docker容器的四种网络模式包括:bridge桥接模式、host模式、other container模式和none模式,通过对四种网络模式下的docker容器进行物理机性能测试评估,从可移植性、实时性、部署便捷性和轻量化等多方面进行考量评估,根据不同网路模式之间的差异性和优缺点,确定所采用的网络模式为bridge桥接模式,它是实现docker容器间高效数据交互的最佳网络通信模式。可以理解,在本发明的其它实施例中,也可以针对每款app都单独建立一个docker容器。
55.然后,在虚拟网路连接方式下,为保证隔离性和安全性,并对容器间交互需求进行分析,交互需求可包括:网络延迟和可预测响应时间、可靠性、可用性、伸缩性和安全性,需要制定可靠的交互协议。通过研究容器间数据交互模型消息中间件的传输模式和应用场景,需要建立符合docker容器间数据交互的消息中间件模型,例如发布订阅模型。当前常见的可实现消息队列的协议有:amqp,mqtt,xmpp,根据协议应用场景和功能特点,本实施例以mqtt通信协议为基础制定基于高速总线通信的容器间高效数据交互协议,并对交互协议的
边界、功能和带宽进行系统测试。其中,消息中间件是指通过安全、高效、可靠的消息传输进行信息交换服务的平台或系统,消息中间件使应用程序之间以松耦合的形式集成,发送方与接收方之间完全独立,可以使用不同的语言或者框架进行实现,也不必集成在一起,它们之间彼此不相互通信,甚至不知道对方的存在,也不必同时在线,仅与提供消息传输服务的消息中间件进行数据交换,消息中间件在这个过程中负责消息的保存以及消息的可靠传输,完成消息的透传,实现容器之间的数据交换。
56.可以理解,在所述步骤s2中,第一智能量测设备指的是发出消息的智能量测设备,当然,在发明的其它实施例中,第一智能量测设备也可以同时作为订阅消息的智能量测设备,即智能量测设备既可以发布消息,同时也可以订阅消息。为了便于进行说明,在本实施例中,以第一智能量测设备作为发布消息的一方,以第二智能量测设备作为订阅消息的一方。另外,第一智能量测设备和第二智能量测设备也可以指的是同一个终端,即实现同一智能量测设备内部搭载的不同app之间的消息传递。所述智能量测设备可以是智能物联表、能源控制器或新一代智能电表等,智能量测设备上搭载有多个用于数据交互的消息发布app,例如智能物联表上的定位app、计费app等,第一智能量测设备通过消息发布app发布消息。所述消息管理器通过app接口与第一智能量测设备中的各个消息发布app虚拟连接,从而获得各个消息发布app所发布的多条消息。其中,app接口优选采用可移植操作系统接口,即posix接口,基于该接口的app可移植性高,app不做修改或仅做极少量修改就可以在支持posix的不同操作系统之间移植。
57.可以理解,在所述步骤s3中,消息管理器在获取多个消息发布app所发布的消息后,根据app类别将多条发布消息分别存储至对应的docker容器中,实现消息的单独存储。并通过多个docker容器之间的相互通信,基于高速总线通信的容器间高效数据交互协议将多条发布消息形成一个消息队列。
58.可以理解,在所述步骤s4中,第二量测设备中同样也搭载了多个用于数据交互的消息订阅app,消息订阅app同样通过posix接口与消息管理器虚拟连接。消息管理器可以获取每个消息订阅app所订阅的消息内容,消息管理器在生成消息队列后则根据第二量测设备中各个消息订阅app所订阅的消息内容将多条发布消息对应发送至多个消息订阅app,消息发布app和消息订阅app之间以松耦合的方式集成,消息发布方和消息订阅方之间完全独立,使得智能量测设备上的app能够独立部署和独立应用。
59.可选地,消息管理器的数量为多个,多个消息管理器采用逐级通信方式,且每个消息管理器均与第二智能量测设备进行通信。如图3所示,在本发明的另一实施例中,在所述步骤s4之前还包括以下内容:
60.步骤s34a:每个消息管理器在接收到消息队列后判断是否需要进行中继转发,若需要则将消息队列转发至下一级消息管理器,下一级消息管理器判断消息队列中是否包含自身的订阅消息,若包含则进行订阅消息响应,若不包含则将消息队列继续转发至下一级消息管理器。
61.具体地,多个消息管理器之间采用逐级通信的方式连接,其中,至少一个消息管理器连接有第一智能量测设备,其余的消息管理器都对应连接有至少一个第二智能量测设备,通过设置多个消息管理器来搭建分布式通信架构,可以实现发布消息在多个消息管理器之间的逐级中继转发,有利于提高信息的传输效率。与第一智能量测设备连接的消息管
理器在获取发布消息并生成消息队列后,将消息中继转发至下一级的消息管理器,下一级的消息管理器根据与其连接的消息订阅app所订阅的消息内容判断消息队列中是否有其所订阅的消息,若有则进行订阅消息响应,若无则将消息队列继续转发至下一级的消息管理器,最多可实现7次转发。通过构建分布式通信架构,利用多级消息管理器进行消息中继转发,可以大大减少消息的数量,减少系统带宽的占用,提高消息的传输效率,有利于智能量测设备及时有效地响应电网系统中实时控制类的需求响应。
62.可选地,如图4所示,在本发明的其它实施例中,所述方法在形成消息队列之后还包括以下内容:
63.步骤s34b:消息管理器根据电能表档案映射关系,将电能表表号和抄读的数据标识进行压缩汇聚以形成压缩汇聚类消息,所述压缩汇聚类消息包括消息头、汇聚标志、映射序号表、汇聚消息列表和消息校验,其中,映射序号表与电能表档案一一对应。
64.可以理解,智能量测设备进行数据获取时,会对多表号(m只表)、多数据标识(n个数据)一起召测,而每只表的每个数据标识为一条30byte的发布消息,则共m*n条消息m*n(基本上m》100,n》10),而通过串口、rs485等低速率通信接口进行通信的app会因为通信速率问题会导致消息传输效率极低,无法满足智能量测设备的响应及时性。因此,消息管理器根据电能表档案映射关系,将电能表表号和抄读的数据标识进行压缩汇聚以形成压缩汇聚类消息,所述压缩汇聚类消息包括消息头、汇聚标志、映射序号表、汇聚消息列表和消息校验,其中,映射序号表与电能表档案一一对应,压缩后的压缩汇聚类消息的消息长度为1byte表序号+1byte数据标识,每条压缩汇聚类消息可以同时包含m只表的n个数据标识,大大减少了通信数据量,提高了低速率通信接口的消息传输效率。
65.另外,所述步骤s4还包括以下内容:
66.消息订阅app在收到其订阅的消息后,通过汇聚标志判断该消息是否为压缩汇聚类消息,若是则根据电能表档案映射关系对消息进行拆分解压重组,生成该消息订阅app所需的消息进行下发。
67.可选地,如图5所示,在本发明的其它实施例中,所述方法在形成消息队列之后还包括以下内容:
68.步骤s34c:从消息队列的所有发布消息中提取出所有app所需的基础通用类消息并汇聚打包形成一条通用发布消息,并进行多级消息管理器之间的逐级转发,每个消息管理器按需进行通用发布消息的拆解并进行订阅消息响应。
69.可以理解,针对所有app都需要的基础通用类消息,可以从多条发布消息中提取出基础通用类消息,并进行分类汇聚打包形成一条通用发布消息,直接通过多级消息管理器进行同步中继转发,每个消息管理器根据自身需要进行订阅消息响应,将基础通用类消息以最快地速度发送至消息订阅app,极大地提高了消息的传输效率。
70.另外,如图6所示,本发明的另一实施例还提供一种适用于智能量测设备的轻量级发布订阅系统,优选采用上述实施例的轻量级发布订阅方法,该系统包括:
71.第一智能量测设备,搭载有至少一个消息发布app,用于发布消息;
72.第二智能量测设备,搭载有至少一个消息订阅app,用于订阅消息;
73.消息管理器,用于针对智能量测设备中搭载的多个app虚拟化映射在docker容器内,并实现多个app之间的相互通信,在获取第一智能量测设备中的消息发布app所发布的
多条消息之后,根据app类别将多条发布消息分别存储至对应的docker容器中并形成消息队列,并根据订阅消息的内容将消息队列对应发送至第二智能量测设备的消息订阅app。其中,第一智能量测设备和第二智能量测设备的数量可以为多个。
74.可以理解,本实施例的适用于智能量测设备的轻量级发布订阅系统,通过构建消息管理器,将智能量测设备中的多个app虚拟化映射在docker容器内,并实现多个app之间的相互通信,消息管理器在获取第一智能量测设备的消息发布app所发布的消息后根据第二智能量测设备中每个消息订阅app所订阅的消息内容将对发布消息进行对应发送,多个智能量测设备的app通过消息管理器进行消息传递,在智能量测设备内通过串口或rs485等低速率通信方式进行消息传递时提高了传输效率,不仅为智能量测设备上的app提供了独立部署的隔离环境,而且支持多个app之间的互联互通,智能量测设备可以下载多元功能的app,保证智能量测设备对及时控制类消息可以进行及时、有效、稳定和安全的处理。
75.其中,所述消息管理器包括:
76.虚拟化单元,用于对智能量测设备的操作系统进行轻量级虚拟化处理;
77.隔离单元,用于对智能量测设备中搭载的多个app对应建立一个docker容器,多个docker容器之间通过虚拟网络连接;
78.交互单元,用于制定基于高速总线通信的高效数据交互协议以实现docker容器间的通信,并生成消息队列。
79.另外,本发明的另一实施例还提供一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
80.另外,本发明的另一实施例还提供一种计算机可读取的存储介质,用于存储适用于智能量测设备进行轻量级发布订阅的计算机程序,所述计算机程序在计算机上运行时执行如上所述的方法的步骤。
81.一般计算机可读取存储介质的形式包括:软盘(floppy disk)、可挠性盘片(flexible disk)、硬盘、磁带、任何其与的磁性介质、cd-rom、任何其余的光学介质、打孔卡片(punch cards)、纸带(paper tape)、任何其余的带有洞的图案的物理介质、随机存取存储器(ram)、可编程只读存储器(prom)、可抹除可编程只读存储器(eprom)、快闪可抹除可编程只读存储器(flash-eprom)、其余任何存储器芯片或卡匣、或任何其余可让计算机读取的介质。指令可进一步被一传输介质所传送或接收。传输介质这一术语可包含任何有形或无形的介质,其可用来存储、编码或承载用来给机器执行的指令,并且包含数字或模拟通信信号或其与促进上述指令的通信的无形介质。传输介质包含同轴电缆、铜线以及光纤,其包含了用来传输一计算机数据信号的总线的导线。
82.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1