基于设备服务系统的消息处理方法、系统及存储介质与流程

文档序号:25957273发布日期:2021-07-20 17:16阅读:61来源:国知局
基于设备服务系统的消息处理方法、系统及存储介质与流程

本申请涉及通信技术领域,具体涉及一种基于设备服务系统的消息处理方法、系统及存储介质。



背景技术:

随着科技的发展,通过服务器对电视机、空调、冰箱等设备进行智能管理已成为流行趋势。在服务器智能管理设备的过程中,设备会上报属性变更等各种事件对应的事件消息到服务器,服务器对事件进行处理,由于事件通常包含有多个处理要素,服务器可能会对其中某些处理要素处理失误或者处理延迟,从而导致对事件消息处理出现故障。

因此,如何提高消息处理的效率成为亟待解决的问题。



技术实现要素:

本申请实施例提供一种基于设备服务系统的消息处理方法、系统及存储介质,可以提高消息处理的效率。

第一方面,本申请实施例提供了一种基于设备服务系统的消息处理方法,包括:

监听消息队列,获取设备上报至所述消息队列的上行事件消息;

根据预设的事件与事件处理器的对应关系,确定所述上行事件消息对应的至少一个事件处理器;

执行所述至少一个事件处理器的处理逻辑,获取所述上行事件消息对应的处理结果;

将所述处理结果发送至所述消息队列,以供所述设备监听所述消息队列,获取所述处理结果。

第二方面,本申请实施例提供了一种设备服务系统,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行上述的基于设备服务系统的消息处理方法。

第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述的基于设备服务系统的消息处理方法。

本申请实施例提供了一种基于设备服务系统的消息处理方法、系统及存储介质,设备服务系统通过监听消息队列,获取设备上报至消息队列的上行事件消息,根据预设的事件与事件处理器的对应关系,确定该上行事件消息对应的至少一个事件处理器,通过执行至少一个事件处理器的处理逻辑,获取该上行事件消息对应的处理结果,并将处理结果发送至消息队列,设备通过监听消息队列及时获取到处理结果,基于事件与事件处理器的对应关系,上行事件消息由相应一个或多个事件处理器执行,因此,提高了消息处理的效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的一种iot平台的示意图;

图2是本申请一实施例提供的一种基于设备服务系统的消息处理方法的步骤示意流程图;

图3是本申请一实施例提供的一种上行事件消息的处理流程示意图;

图4是本申请一实施例提供的一种属性变更的处理流程示意图;

图5是本申请一实施例提供的另一种基于设备服务系统的消息处理方法的步骤示意流程图;

图6是本申请一实施例提供的一种控制设备的下行事件消息的处理流程示意图;

图7是本申请一实施例提供的一种设备服务系统的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

在服务器智能管理设备的过程中,设备会上报属性变更等各种事件对应的事件消息到服务器,服务器对事件进行处理,由于事件通常包含有多个处理要素,服务器可能会对其中某些处理要素处理失误或者处理延迟,从而导致对事件消息处理出现故障。

为了解决上述问题,本申请的实施例提供了一种基于设备服务系统的消息处理方法、系统及存储介质,用于提高消息处理的效率。

请参阅图1,图1是本申请一实施例提供的一种iot(theinternetofthings,物联网)平台的示意图。如图1所示,iot平台1000包括设备接入网关系统100、设备组网系统200、app消息推送系统300、设备服务系统400、mqtt(messagequeuingtelemetrytransport,消息队列遥测传输)服务系统500等。其中,设备服务系统400与mqtt服务系统500指定的消息队列对接,负责所有设备上报消息的处理和所有下发给设备的消息;设备服务系统400与设备组网系统200对接,提供组网过程设备合法性校验及绑定设备与用户关系;设备服务系统400与app消息推送系统300对接,响应用户通过app发起的设备控制请求、固件升级等。

示例性的,在设备配网流程中,设备服务系统400连接到设备组网系统200,由设备组网系统200调用设备服务系统400对设备身份进行验证。

示例性的,在用户通过app对设备进行控制时,通过设备接入网关系统100对app发起的请求进行权限校验后,再由设备接入网关系统100将请求转发到设备服务系统400。设备服务系统400将请求按照设备通讯协议定义包装消息体,再将消息体发送到设备。

示例性的,在设备上报事件时,设备上报事件至mqtt服务系统500指定的消息队列,设备服务系统400监听消息队列获取到设备上报事件,设备服务系统400按照事件的类型,执行不同的处理逻辑,并将处理结果发送至mqtt服务系统500指定的消息队列,设备监听消息队列获取到处理结果。

可以理解的,上述对于iot平台各部件的命名仅仅出于标识的目的,并不因此对本申请实施例进行限制。

以下将基于iot平台、所述iot平台中的设备服务系统对本申请的实施例提供的基于设备服务系统的消息处理方法进行详细介绍。

请参阅图2,图2是本申请一实施例提供的一种基于设备服务系统的消息处理方法的步骤示意流程图。该基于设备服务系统的消息处理方法具体应用于上述实施例提供的设备服务系统中,以实现提高消息处理的效率。

如图2所示,该基于设备服务系统的消息处理方法具体包括步骤s101至步骤s104。

s101、监听消息队列,获取设备上报至所述消息队列的上行事件消息。

通常,在消息上行中,设备将上行事件消息上报至对应的消息队列,可选地,将上行事件消息上报至mqtt服务系统指定的mqtt消息队列。设备服务系统通过监听消息队列,获取设备上报的上行事件消息。其中,上行事件消息包括但不限于属性变更消息等。

s102、根据预设的事件与事件处理器的对应关系,确定所述上行事件消息对应的至少一个事件处理器。

设备服务系统中,配置有对上行事件消息进行处理的多个事件处理器,例如,包括上行事件校验处理器、上行事件保存处理器、设备属性处理器等等。对于不同的上行事件消息,事件处理器可以复用。针对于不同事件处理器的处理逻辑,预设事件与事件处理器的对应关系,不同的事件采用不同的事件处理器进行处理。

设备服务系统通过监听消息队列,获取到设备上报的上行事件消息后,根据预设的事件与事件处理器的对应关系,确定出当前的上行事件消息对应的至少一个事件处理器。

s103、执行所述至少一个事件处理器的处理逻辑,获取所述上行事件消息对应的处理结果。

确定了当前的上行事件消息对应的至少一个事件处理器后,执行该至少一个事件处理器的处理逻辑,获取上行事件消息对应的处理结果。通过该至少一个事件处理器对上行事件消息进行响应处理,每个事件处理器执行各自对应的处理逻辑,分工明确,从而避免出现处理失误的情况。

在一些实施例中,确定出当前的上行事件消息对应的至少一个事件处理器后,根据该至少一个事件处理器,获取对应的事件处理器列表。之后依据该事件处理器列表,按事件处理器列表中事件处理器的顺序,依次执行事件处理器列表中每个事件处理器的处理逻辑,进一步确保响应处理的可靠性。

设备服务系统与设备之间交互的消息对应有多种类型,例如,消息类型包括有:properties_changed(属性变更)、action(执行设备方法)、get_properties(获取设备属性)、set_properties(设置设备属性)等等。设备服务系统中,配置有属性解析器,针对于上述的不同消息类型,通过属性解析器对消息进行解析。

示例性的,以上报设备属性为例,设备服务系统根据设备上报的上行事件消息对应的事件类型,确定对应的属性解析器,并执行所确定的属性解析器,对上行事件消息进行解析,获取设备属性信息。其中,设备属性信息包括设备属性、设备属性对应的属性值等。进一步地,获取设备属性信息后,将设备属性信息保存至对应的数据库中。

s104、将所述处理结果发送至所述消息队列,以供所述设备监听所述消息队列,获取所述处理结果。

执行至少一个事件处理器对应的处理逻辑,获取到上行事件消息对应的处理结果后,设备服务系统将处理结果发送至对应的消息队列。例如,将处理结果发送至mqtt服务系统指定的mqtt消息队列。设备通过监听消息队列,及时获取到处理结果。

示例性的,在设备服务系统中,还配置有mqtt服务、事件服务和事件处理器工厂,其中,mqtt服务是负责从mqtt消息队列接收上行事件消息的模块。事件服务是负责协调事件消息执行的核心模块,事件服务接收到上行事件消息后,定位到对应的事件处理器,并按顺序执行各个事件处理器的处理逻辑。事件处理器工厂,负责维护事件及对应的事件处理器关系,由事件服务调用,确定上行事件消息对应的事件处理器列表,并返回事件处理器列表至事件服务。

例如,如图3所示,上行事件消息的处理流程如下:

(1)、mqtt服务从mqtt消息队列监听上行事件消息;

(2)、事件服务从mqtt服务接收到上行事件消息,调用事件处理器工厂,获取事件处理器列表;

(3)、事件处理器工厂将事件处理器列表返回至事件服务;

(4)、事件服务根据事件处理器列表,定位对应的事件处理器,事件处理器执行处理逻辑,并返回处理结果至事件服务。

示例性的,在设备服务系统中,事件处理器包括设备属性处理器,设备属性处理器用于处理设备上报的属性变更事件消息。需要说明的是,单次属性变更事件消息中可以包含多个属性变更的值,例如,在空调上报的温度、风速属性变更事件消息中,包含温度、风速两个属性变更的值。设备服务系统中还配置有设备属性服务、设备属性解析器工厂,其中,设备属性服务负责针对设备属性进行更新操作;设备属性解析器工厂,负责确定进行解析的设备属性解析器,设备属性解析器,对消息进行解析,并返回设备属性信息(如设备属性列表)至设备属性处理器。

下面以属性变更事件消息为例,如图4所示,属性变更的处理流程如下:

(1)、设备属性解析器工厂根据事件类型确定设备属性解析器,将设备属性解析器信息发送至设备属性处理器;

(2)、设备属性处理器调用设备属性解析器,解析获取设备属性列表,设备属性解析器返回设备属性列表至设备属性处理器;

(3)、设备属性处理器将设备属性列表发送至设备属性服务,设备属性服务根据设备属性列表,批量更新设备属性;

(4)、设备属性服务返回设备属性更新结果至设备属性处理器。

请参阅图5,图5是本申请一实施例提供的一种基于设备服务系统的消息处理方法的步骤示意流程图。该基于设备服务系统的消息处理方法具体应用于设备服务系统中,以实现提高消息处理的效率。

如图5所示,该基于设备服务系统的消息处理方法具体包括步骤s201至步骤s204。

s201、在接收到app客户端下发的对设备的控制指令时,根据所述控制指令生成设备执行消息。

当用户通过设备的控制app对设备进行控制操作时,app下发对应的对设备的控制指令至设备服务系统。设备服务系统在接收到app下发的控制指令时,根据该控制指令,生成设备可识别的设备执行消息。

在一些实施例中,预先定义设备服务系统与设备交互的通信协议,包括消息的预设格式,例如,预先定义json格式。设备服务系统在接收到app下发的控制指令时,将接收到的控制指令转换成预设格式的设备执行指令,如json格式的设备执行指令,然后将设备执行指令进行封装,生成设备执行消息。

s202、将所述设备执行消息发送至所述消息队列,以供所述设备从所述消息队列监听到所述设备执行消息时,执行响应操作获得设备执行结果,并将所述设备执行结果上报至所述消息队列。

设备服务系统将该设备执行消息发送至mqtt服务系统指定的mqtt消息队列,设备从mqtt消息队列监听到该设备执行消息。设备根据该设备执行消息,执行响应操作,例如调节空调器温度至指定温度等,获得设备执行结果,并将设备执行结果上报至对应的mqtt消息队列。

s203、监听所述消息队列,获取所述设备上报的所述设备执行结果。

s204、将所述设备执行结果写入缓存。

设备服务系统监听mqtt消息队列,获取到设备返回的设备执行结果,之后,设备服务系统将该设备执行结果写入缓存。可选地,设备服务系统将该设备执行结果写入公共缓存。

示例性的,在设备服务系统中,配置有设备方法执行服务、方法定义服务、消息组装服务、结果监听服务。用户通过app控制设备时,app将设备对应的控制指令下发至设备方法执行服务,由设备方法执行服务接收获取控制指令。

设备方法执行服务从app接收到的控制指令,设备无法识别,该控制指令不能直接下发给设备,通过方法定义服务,将控制指令转为预设格式的设备执行指令。消息组装服务,将设备执行指令进行封装,生成设备执行消息。例如,根据设备服务系统与设备协议定义的json格式,生成json格式的设备执行消息。结果监听服务,监听mqtt消息队列,获取到设备执行响应操作的设备执行结果,并将设备执行结果写入到公共缓存。设备方法执行服务可以从公共缓存中查询到设备执行结果。

例如,如图6所示,控制设备的下行事件消息的处理流程如下:

(1)、设备方法执行服务接收app下发的控制指令,调用方法定义服务将控制指令转为预设格式的设备执行指令;

(2)、方法定义服务将设备执行指令返回设备方法执行服务;

(3)、设备方法执行服务调用消息组装服务将设备执行指令进行封装,生成设备执行消息;

(4)、消息组装服务将设备执行消息返回设备方法执行服务;

(5)、设备方法执行服务下发设备执行消息至mqtt消息队列;

(6)、设备监听mqtt消息队列获取设备执行消息,进行响应处理,将设备执行结果发送到mqtt消息队列;

(7)、结果监听器从mqtt消息队列监听到设备执行结果,将设备执行结果写入到公共缓存。

(8)、设备方法执行服务从公共缓存中查询到设备执行结果。

上述实施例通过设备服务系统监听消息队列,获取设备上报至消息队列的上行事件消息,根据预设的事件与事件处理器的对应关系,确定该上行事件消息对应的至少一个事件处理器,通过执行至少一个事件处理器的处理逻辑,获取该上行事件消息对应的处理结果,并将处理结果发送至消息队列,设备通过监听消息队列及时获取到处理结果,基于事件与事件处理器的对应关系,上行事件消息由相应一个或多个事件处理器执行,因此,提高了消息处理的效率。

请参阅图7,图7是本申请一实施例提供的设备服务系统的示意性框图。该设备服务系统700包括处理器710和存储器720,处理器710和存储器720通过总线连接,该总线比如为i2c(inter-integratedcircuit)总线。

具体地,处理器710可以是微控制单元(micro-controllerunit,mcu)、中央处理单元(centralprocessingunit,cpu)或数字信号处理器(digitalsignalprocessor,dsp)等。

具体地,存储器720可以是flash芯片、只读存储器(rom,read-onlymemory)磁盘、光盘、u盘或移动硬盘等。

其中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现如下步骤:

监听消息队列,获取设备上报至所述消息队列的上行事件消息;

根据预设的事件与事件处理器的对应关系,确定所述上行事件消息对应的至少一个事件处理器;

执行所述至少一个事件处理器的处理逻辑,获取所述上行事件消息对应的处理结果;

将所述处理结果发送至所述消息队列,以供所述设备监听所述消息队列,获取所述处理结果。

在一些实施例中,所述处理器在实现所述执行所述至少一个事件处理器的处理逻辑之前,还实现:

根据所述至少一个事件处理器,获取对应的事件处理器列表;

所述执行所述至少一个事件处理器的处理逻辑,包括:

按顺序执行所述事件处理器列表中所述至少一个事件处理器的处理逻辑。

在一些实施例中,所述至少一个事件处理器包括设备属性处理器。

在一些实施例中,所述处理器在实现所述执行所述至少一个事件处理器的处理逻辑时,具体实现:

根据所述上行事件消息对应的事件类型,确定对应的属性解析器;

执行所述属性解析器,对所述上行事件消息进行解析,获取设备属性信息。

在一些实施例中,所述设备属性信息包括设备属性和对应属性值。

在一些实施例中,所述处理器在实现所述执行所述属性解析器,对所述上行事件消息进行解析,获取设备属性信息之后,还实现:

将所述设备属性信息保存至数据库中。

在一些实施例中,所述处理器在执行所述计算机程序时还实现:

在接收到app客户端下发的对设备的控制指令时,根据所述控制指令生成设备执行消息;

将所述设备执行消息发送至所述消息队列,以供所述设备从所述消息队列监听到所述设备执行消息时,执行响应操作获得设备执行结果,并将所述设备执行结果上报至所述消息队列;

监听所述消息队列,获取所述设备上报的所述设备执行结果;

将所述设备执行结果写入缓存。

在一些实施例中,所述处理器在实现所述根据所述控制指令生成设备执行消息时,具体实现:

将所述控制指令转换成预设格式的设备执行指令;

将所述设备执行指令进行封装,生成所述设备执行消息。

本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现上述实施例提供的基于设备服务系统的消息处理方法的步骤。

其中,计算机可读存储介质可以是前述实施例的设备服务系统的内部存储单元,例如设备服务系统的硬盘或内存。计算机可读存储介质也可以是设备服务系统的外部存储设备,例如设备服务系统上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种基于设备服务系统的消息处理方法,因此,可以实现本申请实施例所提供的任一种基于设备服务系统的消息处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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