网关消息的交互系统的制作方法

未命名 09-18 阅读:77 评论:0


1.本技术涉及智慧家庭技术领域,具体而言,涉及一种网关消息的交互系统。


背景技术:

2.目前,一般是通过集中式单主机架构建立边缘场景业务架构,这种业务架构如图1所示,依赖于单主机的硬件资源性能,不能适配于资源性能较差的硬件平台,并且由于各个接口只能通过管道方式通信,每一次消息消费,都需要经过多层接口,非常耗费时长,导致网关消息的交互效率很低。
3.因此,相关技术中,如何提高网关消息的交互效率的技术问题。
4.针对相关技术中,如何提高网关消息的交互效率的技术问题,尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种网关消息的交互系统,以至少解决相关技术中,如何提高网关消息的交互效率的技术问题。
6.根据本技术实施例的一个实施例,提供了一种网关消息的交互系统,包括:第一业务网关,与所述第一业务网关连接的第二业务网关;所述第一业务网关包括:第一事件总线交互组件,与所述第一事件总线交互组件连接的第一消息转发组件;其中,所述第一消息转发组件与所述第一事件总线交互组件之间建立有消息传输通道;所述第一事件总线交互组件,用于响应所述第一消息转发组件的第一订阅请求,将所述第一事件总线交互组件存储的不同消息类型的网关消息发送至所述第一消息转发组件;所述第一消息转发组件,用于接收所述第二业务网关发送的第二订阅请求,从接收到的所述不同消息类型的网关消息中确定所述第二订阅请求所指示的第一消息类型的网关消息,并将所述第二订阅请求所指示的第一消息类型的网关消息发送至所述第二业务网关。
7.在一个示例性实施例中,所述第一事件总线交互组件,还用于响应其他组件发送的第三订阅请求,从所述第一事件总线交互组件存储的不同消息类型的网关消息中确定所述第三订阅请求所指示的第二消息类型对应的网关消息,并将所述第二消息类型对应的网关消息发送给所述其他组件,其中,所述其他组件为所述第一业务网关中除了所述第一事件总线交互组件之外的组件。
8.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一用户侧业务模块,其中,所述第一用户侧业务模块,用于从所述第一事件总线交互组件获取具有预设格式的网关消息,对所述具有预设格式的网关消息进行封装,得到封装后的消息函数,以使所述第一业务网关包括的任一个组件通过调用所述消息函数的函数接口获取所述预设格式的网关消息。
9.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一用户侧业务模块,所述第一事件总线交互组件还用于,响应所述第一用户侧业务
模块发送的第四订阅请求,将所述第四订阅请求指示的与设备状态对应的第一网关消息发送给所述第一用户侧业务模块;其中,所述第一用户侧业务模块用于监测所述第一事件总线交互组件中的第一消息标志,并在所述第一消息标志表示所述与设备状态对应的第一网关消息发生变化的情况下,向所述第一事件总线交互组件发送所述第四订阅请求。
10.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一领域模型组件,其中,所述第一领域模型组件用于从所述第一事件总线交互组件获取与设备状态对应的第一网关消息,根据所述第一网关消息生成与领域状态对应的第二网关消息,并将所述第二网关消息发送至所述第一事件总线交互组件。
11.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一领域模型组件,所述第一事件总线交互组件还用于执行以下之一:响应所述第一领域模型组件发送的第四订阅请求,将所述第四订阅请求指示的与设备状态对应的第一网关消息发送给所述第一领域模型组件;响应所述第一领域模型组件发送的第五订阅请求,将所述第五订阅请求指示的与场景状态对应的第三网关消息发送给所述第一领域模型组件。
12.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一场景软件开发包组件,其中,所述第一场景软件开发包组件,用于将预先存储的与场景状态对应的第三网关消息发送至所述第一事件总线交互组件。
13.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一网关消息过滤器,用于接收目标对象的操作指令,通过对所述操作指令中的初始网关消息进行筛选,得到符合期望条件的网关消息,将所述符合期望条件的网关消息的消息格式转换为预设格式,得到具有预设格式的网关消息,并将所述具有预设格式的网关消息发送给所述第一事件总线交互组件。
14.在一个示例性实施例中,所述第二业务网关包括:第二事件总线交互组件,所述第一消息转发组件,还用于从所述第一事件总线交互组件中获取不同消息类型的网关消息,以及响应所述第二事件总线交互组件发送的第六订阅请求,将所述第六订阅请求指示的不同消息类型的网关消息发送给所述第二事件总线交互组件。
15.在一个示例性实施例中,所述其他组件还包括:与所述第一事件总线交互组件连接的第一内存负载计算组件,以及,与所述第一事件总线交互组件连接的第一场景软件开发包组件,其中,所述第一内存负载计算组件用于将监测到的与内存状态对应的第四网关消息发送至所述第一事件总线交互组件;所述第一事件总线交互组件还用于,响应所述第一场景软件开发包组件发送的第七订阅请求,将所述第七订阅请求指示的与内存状态对应的第四网关消息发送给所述第一场景软件开发包组件。
16.本技术实施例提出的网关消息的交互系统中包括第一业务网关,与所述第一业务网关连接的第二业务网关;所述第一业务网关包括:第一事件总线交互组件,与所述第一事件总线交互组件连接的第一消息转发组件;其中,所述第一消息转发组件与所述第一事件总线交互组件之间建立有消息传输通道;所述第一事件总线交互组件,用于响应所述第一消息转发组件的第一订阅请求,将所述第一事件总线交互组件存储的不同消息类型的网关消息发送至所述第一消息转发组件;所述第一消息转发组件,用于接收所述第二业务网关发送的第二订阅请求,从接收到的所述不同消息类型的网关消息中确定所述第二订阅请求
所指示的第一消息类型的网关消息,并将所述第二订阅请求所指示的第一消息类型的网关消息发送至所述第二业务网关;采用上述技术方案提供的网关消息的交互系统,解决了相关技术中,如何提高网关消息的交互效率的技术问题,进而提高了网关消息的交互效率。
附图说明
17.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
19.图1是相关技术中的一种单网关的整体框架示意图;
20.图2是本技术实施例的一种网关消息的交互过程的原理示意图;
21.图3是根据本技术实施例的网关消息的交互系统的结构示意图;
22.图4是根据本技术实施例的一种网关消息的交互流程的示意图(一);
23.图5是根据本技术实施例的一种网关消息的交互流程的示意图(二);
24.图6是根据本技术实施例的一种网关消息的交互流程的示意图(三)。
具体实施方式
25.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
26.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.在本技术实施例中,提供了一种网关消息的交互系统。该网关消息的交互系统广泛应用于智慧家庭(smart home)、智能家居、智能家用设备生态、智慧住宅(intelligence house)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述网关消息的交互系统的结构例如图2所示,图2是本技术实施例的一种网关消息的交互过程的原理示意图,在图2中,包括第一业务网关22,与上述第一业务网关连接的第二业务网关24。本技术对第一业务网关22与第二业务网关24的个数不作限制。
28.其中,上述第一业务网关22包括:第一事件总线交互组件,与上述第一事件总线交互组件连接的第一消息转发组件。上述第一消息转发组件与上述第一事件总线交互组件之间建立有消息传输通道,上述第一消息转发组件与上述第一事件总线交互组件可以基于消
息传输通道传输消息。例如,上述第一事件总线交互组件,用于响应上述第一消息转发组件的第一订阅请求,将上述第一事件总线交互组件存储的不同消息类型的网关消息发送至上述第一消息转发组件。
29.上述第一消息转发组件,用于接收上述第二业务网关24发送的第二订阅请求,从接收到的上述不同消息类型的网关消息中确定上述第二订阅请求所指示的第一消息类型的网关消息,并将上述第二订阅请求所指示的第一消息类型的网关消息发送至上述第二业务网关。
30.需要说明的是,上述不同消息类型的网关消息例如可以包括与设备状态对应的第一网关消息,与领域状态对应的第二网关消息,与场景状态对应的第三网关消息,与内存状态对应的第四网关消息。
31.举例来说,与设备状态对应的第一网关消息可以表示为“/user/gatewayid/data”主题消息,包括设备上线下线/绑定/解绑/订阅/解订阅/属性/告警/事件控制等原有基础消息。
32.与领域状态对应的第二网关消息可以表示为“/user/gatewayid/dm_data”主题消息,包括影子设备初始化消息,属性/告警消息通知,批控命令消息,领域模型打点消息,领域模型白名单消息。
33.与场景状态对应的第三网关消息可以表示为“/user/gatewayid/scene_data”主题消息,包括场景批控命令订阅等消息,例如sdl设备侧消息,场景打点消息。
34.与内存状态对应的第四网关消息可以表示为“/user/gatewayid/cpuload_data”主题消息,包括网关设备cpu负载情况和局域网网关的ip信息等。
35.可选的,上述网关消息的交互系统可以应用于不同网络,包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。且,与上述第一业务网关22,和/或第二业务网关24对应的终端设备可以并不限定于为pc、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。
36.在上述实施例中,提供了一种包含第一业务网关,与上述第一业务网关连接的第二业务网关的网关消息的交互系统,提高第一业务网关包含的第一事件总线交互组件,响应上述第一消息转发组件的第一订阅请求,将上述第一事件总线交互组件存储的不同消息类型的网关消息发送至上述第一消息转发组件;也可以使用上述第一消息转发组件,接收上述第二业务网关发送的第二订阅请求,从接收到的上述不同消息类型的网关消息中确定上述第二订阅请求所指示的第一消息类型的网关消息,并将上述第二订阅请求所指示的第一消息类型的网关消息发送至上述第二业务网关,通过在网关内部署事件总线交互组件实现各个模块之间的消息交互,可以将各个模块的消息和业务进行解耦,进一步的,采用上述实施例的网关消息的交互系统,解决了相关技术中,如何提高网关消息的交互效率的技术问题,进而提高了网关消息的交互效率。
37.在一个示例性实施例中,上述第一事件总线交互组件,还用于响应其他组件发送的第三订阅请求,从上述第一事件总线交互组件存储的不同消息类型的网关消息中确定上述第三订阅请求所指示的第二消息类型对应的网关消息,并将上述第二消息类型对应的网关消息发送给上述其他组件,其中,上述其他组件为上述第一业务网关中除了上述第一事件总线交互组件之外的组件。
38.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一用户侧业务模块,其中,上述第一用户侧业务模块,用于从上述第一事件总线交互组件获取具有预设格式的网关消息,对上述具有预设格式的网关消息进行封装,得到封装后的消息函数,以使上述第一业务网关包括的任一个组件通过调用上述消息函数的函数接口获取上述预设格式的网关消息。
39.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一用户侧业务模块,上述第一事件总线交互组件还用于,响应上述第一用户侧业务模块发送的第四订阅请求,将上述第四订阅请求指示的与设备状态对应的第一网关消息发送给上述第一用户侧业务模块;其中,上述第一用户侧业务模块用于监测上述第一事件总线交互组件中的第一消息标志,并在上述第一消息标志表示上述与设备状态对应的第一网关消息发生变化的情况下,向上述第一事件总线交互组件发送上述第四订阅请求。
40.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一领域模型组件,其中,上述第一领域模型组件用于从上述第一事件总线交互组件获取与设备状态对应的第一网关消息,根据上述第一网关消息生成与领域状态对应的第二网关消息,并将上述第二网关消息发送至上述第一事件总线交互组件。
41.其中,上述第二网关消息例如可以基于第一网关消息包含的物理地址生成,则第一网关消息和第二网关消息对应于同一物理地址。
42.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一领域模型组件,上述第一事件总线交互组件还用于执行以下之一:响应上述第一领域模型组件发送的第四订阅请求,将上述第四订阅请求指示的与设备状态对应的第一网关消息发送给上述第一领域模型组件;响应上述第一领域模型组件发送的第五订阅请求,将上述第五订阅请求指示的与场景状态对应的第三网关消息发送给上述第一领域模型组件。
43.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一场景软件开发包组件,其中,上述第一场景软件开发包组件,用于将预先存储的与场景状态对应的第三网关消息发送至上述第一事件总线交互组件。
44.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一网关消息过滤器,用于接收目标对象的操作指令,通过对上述操作指令中的初始网关消息进行筛选,得到符合期望条件的网关消息,将上述符合期望条件的网关消息的消息格式转换为预设格式,得到具有预设格式的网关消息,并将上述具有预设格式的网关消息发送给上述第一事件总线交互组件。
45.在一个示例性实施例中,上述第二业务网关包括:第二事件总线交互组件,上述第一消息转发组件,还用于从上述第一事件总线交互组件中获取不同消息类型的网关消息,以及响应上述第二事件总线交互组件发送的第六订阅请求,将上述第六订阅请求指示的不
同消息类型的网关消息发送给上述第二事件总线交互组件。
46.需要说明的是,第二业务网关和第一业务网关的结构相同,也能实现与第一业务网关相似的功能,例如,所述第二业务网关还包括以下至少之一:第二用户侧业务模块,第二事件总线交互组件,第二领域模型组件,第二场景软件开发包组件,第二内存负载计算组件,第二网关消息过滤器,第二主从数据库备份组件,第二消息转发组件;其中,所述第二消息转发组件用于从所述第二事件总线交互组件中获取不同消息类型的网关消息,以及响应所述第一业务网关的第一事件总线交互组件发送的订阅请求,将所述订阅请求指示的不同消息类型的网关消息发送给所述第一事件总线交互组件。
47.在一个示例性实施例中,上述其他组件还包括:与上述第一事件总线交互组件连接的第一内存负载计算组件,以及,与上述第一事件总线交互组件连接的第一场景软件开发包组件,其中,上述第一内存负载计算组件用于将监测到的与内存状态对应的第四网关消息发送至上述第一事件总线交互组件;上述第一事件总线交互组件还用于,响应上述第一场景软件开发包组件发送的第七订阅请求,将上述第七订阅请求指示的与内存状态对应的第四网关消息发送给上述第一场景软件开发包组件。
48.可选的,上述其他组件还包括:与上述第一事件总线交互组件连接的第一领域模型组件,以及,与上述第一事件总线交互组件连接的第一场景软件开发包组件,上述第一事件总线交互组件还用于接收到上述第一领域模型组件发送的与领域状态对应的第二网关消息,响应上述第一场景软件开发包组件发送的第一其他订阅请求,将上述第一其他订阅请求指示的与领域状态对应的第二网关消息发送给上述第一场景软件开发包组件。
49.可选的,上述其他组件还包括:与上述第一事件总线交互组件连接的第一内存负载计算组件,以及,与上述第一事件总线交互组件连接的第一领域模型组件,其中,上述第一内存负载计算组件用于将监测到的与内存状态对应的第四网关消息发送至上述第一事件总线交互组件;上述第一事件总线交互组件还用于,接收到上述第一内存负载计算组件发送的与内存状态对应的第四网关消息,响应上述第一领域模型组件发送的第二其他订阅请求,将上述第二其他订阅请求指示的与内存状态对应的第四网关消息发送给上述第一领域模型组件。
50.可选的,上述其他组件还包括:与上述第一事件总线交互组件连接的第一主从数据库备份组件,以及,与上述第一事件总线交互组件连接的第一场景软件开发包组件,其中,上述第一事件总线交互组件还用于,接收到上述第一场景软件开发包组件发送的与脚本状态对应的第五网关消息,以及响应上述第一主从数据库备份组件发送的第三其他订阅请求,将上述第三其他订阅请求指示的与脚本状态对应的第五网关消息发送给上述第一主从数据库备份组件。
51.在一个实施例中,结合图3对上述网关消息的交互系统进行更好的说明,图3是根据本技术实施例的网关消息的交互系统的结构示意图。如图3所示,网关消息的交互系统包括a网关(相当于上述第一业务网关)和b网关(相当于上述第二业务网关),a网关和b网关的组成结构一致,且a网关和b网关各自对应具有用户业务通道。
52.以a网关为例,对网关消息的交互过程进行说明。cae将经由用户业务通道传输的消息发送给ucom组件,继而由ucom组件转发消息至网关消息过滤器(即上述第一网关消息过滤器),网关消息过滤器将通过筛选的消息发送至事件总线broker(相当于上述事件总线
交互组件)。事件总线broker与场景jsdk(相当于上述第一场景软件开发包组件),领域模型(相当于上述第一领域模型组件),cpu负载统计模块(相当于上述第一内存负载计算组件),sdl用户侧(相当于上述第一用户侧业务模块),主从数据库备份模块,消息转发模块(相当于上述第一消息转发组件)中的每一模块之间均存在消息交互过程。事件总线broker响应于网关消息过滤器,场景jsdk,领域模型,cpu负载统计模块,sdl用户侧,主从数据库备份模块,消息转发模块中任一订阅侧的订阅请求,将订阅请求指示的网关消息发布至任一订阅侧。
53.其中,在图3中,sdl(smart device linux sdk)表示:基于linux平台的设备使用的一种物联软件开发包。
54.cae(computer-aided engineering,即计算机辅助工程)用于借助计算机技术和软件工具对物理现象进行模拟、分析和优化,从而帮助设计人员提高产品的性能和可靠性,减少产品开发周期和成本,实现智能化、数字化生产。在网关系统中,cae还可以用于网络连接的建模与仿真分析等方面。
55.ucom组件是指com(component object model)技术下的通用类型库,其中包括了一些基本接口和结构体定义。这些接口和结构体可以使开发人员在不同的开发环境中共享代码,从而实现更高效、可靠的软件开发。ucom组件常被使用在微软.net平台上,通过它们可以方便地调用非托管代码或com组件,并且与基于.net平台编写的对象进行交互。
56.事件总线broker是一种消息传递框架中的组件,用于在应用程序或系统不同部分之间传递消息。它通过将发布者和订阅者解耦以及实现异步通信来简化应用程序开发。在事件总线系统中,事件总线broker充当了一个中心节点角色,作为所有发布和接收消息信息的交互点。broker可以确保发送到正确目标同时向连接器提供数据控制,并对事件进行缓冲处理等操作。基于此简化了应用程序集成、处理任务的日志记录和跟踪问题等方面很有帮助。
57.场景jsdk(java software development kit)是一种软件开发工具包,用于在java环境下创建和管理人工智能场景模型。它提供了丰富的api和工具,使开发人员能够轻松地创建、训练、测试以及部署自己的机器学习模型。该sdk可以与各种第三方框架和库(如tensorflow、keras等)配合使用,并支持本地或云端执行。通过使用场景jsdk,开发人员可以快速构建面向企业或个人用户的高质量ai应用程序。
58.进一步的,在一个实施例中提供了一种网关消息的交互方法,如图4所示,图4是根据本技术实施例的一种网关消息的交互流程的示意图(一),具体流程如下:
59.步骤s401:a网关的网关消息过滤器从cae大小循环收到json消息,过滤后得到/user/gatewayid/basedata主题消息,并将/user/gatewayid/basedata主题消息发送给a网关的事件软总线broker(即事件总线broker);
60.步骤s402:a网关的领域模型向a网关的事件软总线broker发送用于订阅/user/gatewayid/data主题消息的订阅请求;
61.步骤s403:a网关的事件软总线broker响应于步骤s402中的订阅请求,向a网关的领域模型推送/user/gatewayid/data主题消息;
62.步骤s404:a网关的事件软总线broker向a网关的sdl用户侧发送用于订阅/user/gatewayid/data主题消息的订阅请求;
63.步骤s405:a网关的cpu负载统计模块向a网关的事件软总线broker发布/user/gatewayid/cpuload主题消息;
64.步骤s406:a网关的sdl用户侧将/user/gatewayid/data主题消息推送给a网关的事件软总线broker;
65.步骤s407:a网关的领域模型向a网关的事件软总线broker发布/user/gatewayid/dm_data主题消息;
66.步骤s408:a网关的场景jsdk向a网关的事件软总线broker发布/user/gatewayid/scene_data主题消息;
67.步骤s409:a网关的领域模型向a网关的事件软总线broker发送用于订阅/user/gatewayid/scene_data主题消息的订阅请求;
68.步骤s410:a网关的事件软总线broker向a网关的领域模型推送/user/gatewayid/scene_data主题消息;
69.步骤s411:a网关的场景jsdk向a网关的事件软总线broker发送用于订阅/user/gatewayid/dm_data主题消息的订阅请求;
70.步骤s412:a网关的事件软总线broker向a网关的场景jsdk推送/user/gatewayid/dm_data主题消息;
71.步骤s413:a网关的场景jsdk向a网关的事件软总线broker发布/user/gatewayid/base_data主题消息;
72.步骤s414:a网关的主从数据库备份模块向a网关的事件软总线broker发送用于订阅/user/gatewayid/basedata主题消息的订阅请求;
73.步骤s415:a网关的事件软总线broker向a网关的主从数据库备份模块推送/user/gatewayid/basedata主题消息;
74.步骤s416:a网关的消息转发模块向a网关的事件软总线broker发送用于订阅/user/gatewayid/basedata主题消息的订阅请求;
75.步骤s417:a网关的事件软总线broker向a网关的消息转发模块推送/user/gatewayid/basedata主题消息;
76.步骤s418:a网关的消息转发模块向a网关的事件软总线broker发送用于订阅/user/gatewayid/scene_data主题消息的订阅请求;
77.步骤s419:a网关的事件软总线broker向a网关的消息转发模块推送/user/gatewayid/scene_data主题消息;
78.步骤s420:a网关的消息转发模块向a网关的事件软总线broker发送用于订阅/user/gatewayid/dm_data主题消息的订阅请求;
79.步骤s421:a网关的事件软总线broker向a网关的消息转发模块推送/user/gatewayid/dm_data主题消息;
80.其中,需要说明的是,步骤s401至步骤s421中的交互过程均属于a网关内部的消息交互过程。
81.步骤s422:a网关的消息转发模块向b网关的事件软总线broker发送用于订阅/user/gatewayid/basedata主题消息的订阅请求;
82.步骤s423:b网关的事件软总线broker向a网关的消息转发模块推送/user/
gatewayid/basedata主题消息;
83.步骤s424:a网关的消息转发模块向a网关的事件软总线broker发布/user/gatewayid/basedata主题消息;
84.步骤s425:a网关的消息转发模块向b网关的事件软总线broker发送用于订阅/user/gatewayid/dm_data主题消息的订阅请求;
85.步骤s426:b网关的事件软总线broker向a网关的消息转发模块推送/user/gatewayid/dm_data主题消息;
86.步骤s427:a网关的消息转发模块向a网关的事件软总线broker发布/user/gatewayid/dm_data主题消息;
87.步骤s428:a网关的消息转发模块向b网关的事件软总线broker发送用于订阅/user/gatewayid/scene_data主题消息的订阅请求;
88.步骤s429:b网关的事件软总线broker向a网关的消息转发模块推送/user/gatewayid/scene_data主题消息;
89.步骤s430:a网关的消息转发模块向a网关的事件软总线broker发布/user/gatewayid/scenedata主题消息;
90.步骤s431:a网关的消息转发模块向b网关的事件软总线broker发送用于订阅/user/gatewayid/cpuload主题消息的订阅请求;
91.步骤s432:b网关的事件软总线broker向a网关的消息转发模块推送/user/gatewayid/cpuload主题消息;
92.步骤s433:a网关的消息转发模块向a网关的事件软总线broker发布/user/gatewayid/cpuload主题消息;
93.步骤s434:a网关的领域模型向a网关的的事件软总线broker发送用于订阅/user/gatewayid/cpuload主题消息的订阅请求;
94.步骤s435:a网关的事件软总线broker向a网关的领域模型推送/user/gatewayid/cpuload主题消息;
95.步骤s436:a网关的场景jsdk向a网关的事件软总线broker发送用于订阅/user/gatewayid/cpuload主题消息的订阅请求;
96.步骤s437:a网关的事件软总线broker向a网关的场景jsdk推送/user/gatewayid/cpuload主题消息。
97.通过上述步骤,通过步骤s401至步骤s421对单一网关内部的消息交互过程进行说明,以及通过步骤s422至步骤s437对不同网关的消息交互过程进行说明,提供了一种网关消息的交互的实现过程。
98.进一步的,以网关a为例对网关a内部的网关消息交互过程进行说明。在网关a内部,消息都是经事件软总线传递的。如下表1所示,sdl用户侧业务模块(即sdl用户侧),场景jsdk业务模块(即场景jsdk),领域模型业务模块(即领域模型),主从数据库备份模块都通过订阅事件软总线消息主题来消费各端消息。
99.表1模块数据表
[0100][0101]
在一个实施例中,主从备份数据库组件用于备份本端网关场景引擎规则和相关业务数据和局域网内其他各端网关相同信息,当某个网关无外网情况下,通过向处于局域网内对端网关broker发布主题请求消息对端把对端备份的数据库返回给请求方。比如网关a的数据库文件损坏,则场景jsdk可以发布/user/gatewayid/basedata(数据库名)主题,如果网关b订阅/user/gatewayid/basedata主题消息,则可以消费到所有网关的数据库备份请求,并根据请求的网关id返回给请求方。
[0102]
具体的,可以结合图5对这一基于主从备份数据库组件实现的网关消息交互过程进行说明。图5是根据本技术实施例的一种网关消息的交互流程的示意图(二),如图5所示,具体步骤如下:
[0103]
步骤s501:a网关的主从数据库备份模块向a网关的事件软总线broker发送用于订
阅/user/gatewayid/basedata主题消息的订阅请求;
[0104]
步骤s502:b网关的主从数据库备份模块向b网关的事件软总线broker发送用于订阅/user/gatewayid/basedata主题消息的订阅请求;
[0105]
步骤s503:a网关的场景jsdk向a网关的事件软总线broker发布/user/gatewayid/basedata主题消息;
[0106]
步骤s504:a网关的事件软总线broker向a网关的主从数据库备份模块推送/user/gatewayid/basedata主题消息;
[0107]
步骤s505:a网关的网关消息转发器组件(即消息转发模块)向a网关的事件软总线broker发送用于订阅/user/gatewayid/basedata主题消息的订阅请求;
[0108]
步骤s506:a网关的事件软总线broker向a网关的网关消息转发器组件推送/user/gatewayid/basedata主题消息;
[0109]
步骤s507:a网关的网关消息转发器组件向b网关的事件软总线broker发布/user/gatewayid/basedata主题消息;
[0110]
步骤s508:b网关的事件软总线broker向b网关的主从数据库备份模块推送/user/gatewayid/basedata主题消息。
[0111]
通过上述步骤,以/user/gatewayid/basedata主题消息为例,对单一网关内部的主从数据库备份模块与事件软总线broker之间的消息交互过程,以及不同网关之间如何基于网关消息转发器组件实现消息交互的过程进行说明,可以解决某一网关因掉电导致文件数据库损坏而无法实现场景联动的问题。
[0112]
进一步的,在一个实施例中,sdl用户侧业务模块用于订阅/user/gatewayid/data的主题消息,可以将json格式消息封装成函数接口供devapp调用方使用,因此,sdl用户侧无需直接对接cae的消息,而是通过订阅网关过滤器发布到事件软总线的网关消息以实现独立解耦业务。具体的,以a网关为例,可以结合图6对sdl用户侧组件的网关消息的交互过程进行说明,图6是根据本技术实施例的一种网关消息的交互流程的示意图(三),如图6所示,具体如下步骤:
[0113]
步骤s601:a网关的sdl用户侧向a网关的事件软总线broker发送用于订阅/user/gatewayid/data主题消息的订阅请求;
[0114]
步骤s602:a网关的网关消息过滤器通过/user/gatewayid/data主题消息从cae大小循环收到json消息,并发布给a网关的事件软总线broker;
[0115]
步骤s603:a网关的事件软总线broker向a网关的sdl用户侧推送/user/gatewayid/data主题消息。
[0116]
可选的,在一个实施例中,对于每个网关,均可以保存每个网关所属的局域网的其他网关的cpu负荷率,cpu负荷率可以表示为/user/gatewayid/cpuload主题消息,通过订阅这个主题消息可以得到局域网内所有网关的cpu负荷情况。例如,局域网包含a网关,b网关,c网关,d网关,如果a网关基于/user/gatewayid/cpuload这一主题消息确定a网关的cpu负荷率为50%,且确定b网关,c网关,d网关的cpu占有率分别为20%,30%,40%。则a网关的领域模型模块或者a网关的场景jsdk模块可以将部分网关消息拆分成颗粒度更小的消息,仅处理拆分后的消息,并根据其他网关的cpu占有率将剩余网关消息分配至其他网关。
[0117]
可选的,场景jsdk模块还可以实现算力分摊,每次场景jsdk对场景脚本解析前,优
先查询内存中获取到的局域网内各网关得cpu负载率,如果本网关cpu占有率低于50%,优先选择本网关内去解析本地场景(原有规则),否则选择局域网其它网关cpu占有率最低的网关。这样,监控各个网关的cpu负载率可以将业务对应的网关消息合理分摊到对端的网关服务器上加工。
[0118]
可选的,对于任一网关包含的消息转发模块,均可以基于mqtt客户端与事件软总线broker建立联系,并向局域网内所有连接与mqtt设备服务器相连接的网关发送订阅请求。例如,a网关的消息转发模块可以向b网关的事件软总线broker发送用于订阅不同主题消息的订阅请求,反之亦然。
[0119]
或者,在确定局域网内网关列表发生变化(包括网关ip的改变和网关数量变更的变化)时,向事件软总线broker发送/user/gatewayid/gatewayinfo主题消息,消息转发模块可以向事件软总线broker发送用于订阅/user/gatewayid/gatewayinfo主题消息的订阅请求,从而实现订阅设备列表中的网关ip,其中,/user/gatewayid/gatewayinfo主题消息包含局域网内设备id信息,以json格式表示为:
[0120]
{"device_gateway_info":{"gatewayidmsglist":[{"deviceid":"f0b0402cb1e","ip":"192.168.1.xxx"]}}。
[0121]
可选的,网关消息过滤器可以将无关网关消息过滤掉,并将符合期望条件的网关消息转发至事件软总线broker,例如,每个json格式的网关消息都对应有一个事先约定好的消息名称,可以使用键值对匹配消息名称的方式来实现消息过滤的过程。
[0122]
基于上述实施例,可以解决网关因掉电等原因损坏数据无法进行场景联动的情况,并且采用事件总线机制所实现的事件总线broker与其他模块的发布订阅过程,可以将消息和业务完全解耦,减少了消息阻塞的概率,进而减少了各个模块之间多层消息交互导致的耗时问题。并且,还可以监控各个网关的cpu负载将业务分摊到对端的网关服务器上加工。
[0123]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
[0124]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0125]
显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
[0126]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本技术的保护范围。

技术特征:
1.一种网关消息的交互系统,其特征在于,包括:第一业务网关,与所述第一业务网关连接的第二业务网关;所述第一业务网关包括:第一事件总线交互组件,与所述第一事件总线交互组件连接的第一消息转发组件;其中,所述第一消息转发组件与所述第一事件总线交互组件之间建立有消息传输通道;所述第一事件总线交互组件,用于响应所述第一消息转发组件的第一订阅请求,将所述第一事件总线交互组件存储的不同消息类型的网关消息发送至所述第一消息转发组件;所述第一消息转发组件,用于接收所述第二业务网关发送的第二订阅请求,从接收到的所述不同消息类型的网关消息中确定所述第二订阅请求所指示的第一消息类型的网关消息,并将所述第二订阅请求所指示的第一消息类型的网关消息发送至所述第二业务网关。2.根据权利要求1所述的网关消息的交互系统,其特征在于,所述第一事件总线交互组件,还用于响应其他组件发送的第三订阅请求,从所述第一事件总线交互组件存储的不同消息类型的网关消息中确定所述第三订阅请求所指示的第二消息类型对应的网关消息,并将所述第二消息类型对应的网关消息发送给所述其他组件,其中,所述其他组件为所述第一业务网关中除了所述第一事件总线交互组件之外的组件。3.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一用户侧业务模块,其中,所述第一用户侧业务模块,用于从所述第一事件总线交互组件获取具有预设格式的网关消息,对所述具有预设格式的网关消息进行封装,得到封装后的消息函数,以使所述第一业务网关包括的任一个组件通过调用所述消息函数的函数接口获取所述预设格式的网关消息。4.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一用户侧业务模块,所述第一事件总线交互组件还用于,响应所述第一用户侧业务模块发送的第四订阅请求,将所述第四订阅请求指示的与设备状态对应的第一网关消息发送给所述第一用户侧业务模块;其中,所述第一用户侧业务模块用于监测所述第一事件总线交互组件中的第一消息标志,并在所述第一消息标志表示所述与设备状态对应的第一网关消息发生变化的情况下,向所述第一事件总线交互组件发送所述第四订阅请求。5.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一领域模型组件,其中,所述第一领域模型组件用于从所述第一事件总线交互组件获取与设备状态对应的第一网关消息,根据所述第一网关消息生成与领域状态对应的第二网关消息,并将所述第二网关消息发送至所述第一事件总线交互组件。6.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一领域模型组件,所述第一事件总线交互组件还用于执行以下之一:响应所述第一领域模型组件发送的第四订阅请求,将所述第四订阅请求指示的与设备状态对应的第一网关消息发送给所述第一领域模型组件;响应所述第一领域模型组件发送的第五订阅请求,将所述第五订阅请求指示的与场景状态对应的第三网关消息发送给所述第一领域模型组件。
7.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一场景软件开发包组件,其中,所述第一场景软件开发包组件,用于将预先存储的与场景状态对应的第三网关消息发送至所述第一事件总线交互组件。8.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一网关消息过滤器,用于接收目标对象的操作指令,通过对所述操作指令中的初始网关消息进行筛选,得到符合期望条件的网关消息,将所述符合期望条件的网关消息的消息格式转换为预设格式,得到具有预设格式的网关消息,并将所述具有预设格式的网关消息发送给所述第一事件总线交互组件。9.根据权利要求1所述的网关消息的交互系统,其特征在于,所述第二业务网关包括:第二事件总线交互组件,所述第一消息转发组件,还用于从所述第一事件总线交互组件中获取不同消息类型的网关消息,以及响应所述第二事件总线交互组件发送的第六订阅请求,将所述第六订阅请求指示的不同消息类型的网关消息发送给所述第二事件总线交互组件。10.根据权利要求2所述的网关消息的交互系统,其特征在于,所述其他组件还包括:与所述第一事件总线交互组件连接的第一内存负载计算组件,以及,与所述第一事件总线交互组件连接的第一场景软件开发包组件,其中,所述第一内存负载计算组件用于将监测到的与内存状态对应的第四网关消息发送至所述第一事件总线交互组件;所述第一事件总线交互组件还用于,响应所述第一场景软件开发包组件发送的第七订阅请求,将所述第七订阅请求指示的与内存状态对应的第四网关消息发送给所述第一场景软件开发包组件。

技术总结
本申请公开了一种网关消息的交互系统,涉及智慧家庭技术领域,该网关消息的交互系统包括:第一业务网关,与第一业务网关连接的第二业务网关;第一业务网关包括:第一事件总线交互组件,与第一事件总线交互组件连接的第一消息转发组件;第一事件总线交互组件,用于响应第一消息转发组件的第一订阅请求,将第一事件总线交互组件存储的不同消息类型的网关消息发送至第一消息转发组件;第一消息转发组件,用于接收第二业务网关发送的第二订阅请求,从接收到的不同消息类型的网关消息中确定第二订阅请求所指示的第一消息类型的网关消息,并将第二订阅请求所指示的第一消息类型的网关消息发送至第二业务网关。消息发送至第二业务网关。消息发送至第二业务网关。


技术研发人员:郭孝强
受保护的技术使用者:海尔优家智能科技(北京)有限公司 海尔智家股份有限公司
技术研发日:2023.06.29
技术公布日:2023/9/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐