一种消息处理、物联网系统的消息处理方法和装置与流程

文档序号:17726781发布日期:2019-05-22 02:34阅读:121来源:国知局
一种消息处理、物联网系统的消息处理方法和装置与流程

本申请涉及通信技术领域,特别是涉及一种消息处理方法、一种消息处理装置、一种物联网系统的消息处理方法和一种物联网系统的消息处理装置。



背景技术:

物联网领域内由于各种设备终端能力不一样,通信协议也各种各样。传统的http(hypertexttransferprotocol,超文本传输协议)协议并不适用物联网,因此提出了专门针对物联网的mqtt(messagequeuingtelemetrytransport,消息队列遥测传输)协议、coap(constrainedapplicationprotocol,受限制的应用协议)协议来弥补物联网通信协议上的不足。

但由于协议上差异以及通信模式上的差异,存在各种各样的消息系统,比如针对http模式的消息系统、针对mqtt协议的消息队列系统、针对coap协议的消息系统等,这些系统直接如何能互联互通,以及海量的设备和海量的授权记录如何高效存储成为了亟待解决的问题。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种消息处理方法、一种消息处理装置、一种物联网系统的消息处理方法和一种物联网系统的消息处理装置。

为了解决上述问题,本申请实施例公开了一种消息处理方法,包括:

获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

根据所述目标统一资源标识符查找对应的预设模板;

根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息发送至目标资源地址中。

优选的,还包括:

若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中。

优选的,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符的步骤包括:

获取所述发布设备的上下文;

从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

优选的,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

所述从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息的步骤包括:

从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

优选的,所述将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息的步骤包括:

将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

优选的,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;所述根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权的步骤包括:

比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

若各个间隔顺序对应的分段信息都相同,则确定所述发布设备具有向所述目标资源地址发送消息的授权。

优选的,所述根据所述目标统一资源标识符查找对应的预设模板的步骤包括:

确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

优选的,所述将所述消息发送至目标资源地址中的步骤包括:

将所述消息的格式调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

优选的,所述在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中的步骤包括:

在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

本申请实施例还公开了一种消息处理方法,包括:

获取服务器的资源地址中的消息;

确定接收设备的协议格式;

将所述消息的格式转换为适配所述接收设备的协议格式;

将格式转后之后的消息发送至相应的接收设备。

优选的,所述资源地址为主题;所述确定接收设备的协议格式的步骤包括:

确定订阅所述主题的接收设备的协议格式。

本申请实施例还公开了一种物联网系统的消息处理方法,所述物联网系统包括发布设备,与所述发布设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的方法包括:

所述消息中间件接收所述发布设备发送的消息;

所述消息中间件获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

所述消息中间件根据所述目标统一资源标识符查找对应的预设模板;

所述消息中间件根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

所述消息中间件根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

若所述发布设备具有向所述目标资源地址发送消息的授权,则所述消息中间件将所述消息发送至所述应用服务器的目标资源地址中。

优选的,还包括:

若所述发布设备具有向所述目标资源地址发送消息的授权,则在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,所述消息中间件直接将所述消息发送至目标资源地址中。

优选的,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述消息中间件根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符的步骤包括:

所述消息中间件获取所述发布设备的上下文;

所述消息中间件从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

所述消息中间件将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

优选的,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

所述消息中间件从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息的步骤包括:

所述消息中间件从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

所述消息中间件从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

优选的,所述消息中间件将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息的步骤包括:

所述消息中间件将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

所述消息中间件将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

所述消息中间件将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

优选的,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;

所述消息中间件根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权的步骤包括:

所述消息中间件比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

若各个间隔顺序对应的分段信息都相同,则所述消息中间件确定所述发布设备具有向所述目标资源地址发送消息的授权。

优选的,所述消息中间件根据所述目标统一资源标识符查找对应的预设模板的步骤包括:

所述消息中间件确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

所述消息中间件将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

优选的,所述消息中间件将所述消息发送至所述应用服务器的目标资源地址中的步骤包括:

所述消息中间件将所述消息的格式调整为预设格式,并将调整格式后的消息发送至所述应用服务器的目标资源地址中。

优选的,所述在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,所述消息中间件直接将所述消息发送至目标资源地址中的步骤包括:

在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,所述消息中间件直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

本申请实施例还公开了一种物联网系统的消息处理方法,所述物联网系统包括订阅设备,与所述订阅设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的方法包括:

所述消息中间件获取所述应用服务器的资源地址中的消息;

所述消息中间件确定订阅设备的协议格式;

所述消息中间件将所述消息的格式转换为适配所述订阅设备的协议格式;

所述消息中间件将格式转后之后的消息发送至相应的订阅设备。

优选的,所述资源地址为主题;所述消息中间件确定订阅设备的协议格式的步骤包括:

所述消息中间件确定订阅了所述主题的订阅设备的协议格式。

本申请实施例还公开了一种消息处理装置,包括:

目标统一资源标识符获取模块,用于获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

模板查找模块,用于根据所述目标统一资源标识符查找对应的预设模板;

授权统一资源标识符确定模块,用于根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

授权判断模块,用于根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

第一消息发送模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息发送至目标资源地址中。

优选的,还包括:

第二消息发送模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中。

优选的,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述授权统一资源标识符确定模块包括:

上下文获取子模块,用于获取所述发布设备的上下文;

第一模板分段信息确定子模块,用于从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

第二模板分段信息确定子模块,用于将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

优选的,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

所述第一模板分段信息确定子模块包括:

第一模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

第二模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

优选的,所述第二模板分段信息确定子模块包括:

第三模板分段信息确定单元,用于将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

第四模板分段信息确定单元,用于将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

第五模板分段信息确定单元,用于将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

优选的,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;所述授权判断模块包括:

比较子模块,用于比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

授权确定子模块,用于若各个间隔顺序对应的分段信息都相同,则确定所述发布设备具有向所述目标资源地址发送消息的授权。

优选的,所述模板查找模块包括:

模板信息确定子模块,用于确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

目标模板确定子模块,用于将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

优选的,所述第一消息发送模块包括:

第一消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息的格式调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

优选的,所述第二消息发送模块包括:

第二消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

本申请实施例还公开了一种消息处理装置,包括:

消息获取模块,用于获取服务器的资源地址中的消息;

协议格式确定模块,用于确定接收设备的协议格式;

协议格式转换模块,用于将所述消息的格式转换为适配所述接收设备的协议格式;

消息发送模块,用于将格式转后之后的消息发送至相应的接收设备。

优选的,所述资源地址为主题;所述协议格式确定模块包括:

订阅设备协议格式确定子模块,用于确定订阅所述主题的接收设备的协议格式。

本申请实施例还公开了一种物联网系统的消息处理装置,所述物联网系统包括发布设备,与所述发布设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的装置包括:

位于所述消息中间件的消息接收模块,用于接收所述发布设备发送的消息;

位于所述消息中间件的目标统一资源标识符获取模块,用于获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

位于所述消息中间件的模板查找模块,用于根据所述目标统一资源标识符查找对应的预设模板;

位于所述消息中间件的授权统一资源标识符确定模块,用于根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

位于所述消息中间件的授权判断模块,用于根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

位于所述消息中间件的第一消息发送模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息发送至所述应用服务器的目标资源地址中。

优选的,还包括:

位于所述消息中间件的第二消息发送模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中。

优选的,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述授权统一资源标识符确定模块包括:

上下文获取子模块,用于获取所述发布设备的上下文;

第一模板分段信息确定子模块,用于从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

第二模板分段信息确定子模块,用于将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

优选的,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

所述第一模板分段信息确定子模块包括:

第一模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

第二模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

优选的,所述第二模板分段信息确定子模块包括:

第三模板分段信息确定单元,用于将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

第四模板分段信息确定单元,用于将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

第五模板分段信息确定单元,用于将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

优选的,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;

所述授权判断模块包括:

比较子模块,用于比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

授权确定子模块,用于若各个间隔顺序对应的分段信息都相同,则确定所述发布设备具有向所述目标资源地址发送消息的授权。

优选的,所述模板查找模块包括:

模板信息确定子模块,用于确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

目标模板确定子模块,用于将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

优选的,所述第一消息发送模块包括:

第一消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息的格式调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

优选的,所述第二消息发送模块包括:

第二消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

本申请实施例还公开了一种物联网系统的消息处理装置,所述物联网系统包括订阅设备,与所述订阅设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的装置包括:

位于所述消息中间件的消息获取模块,用于获取所述应用服务器的资源地址中的消息;

位于所述消息中间件的协议格式确定模块,用于确定订阅设备的协议格式;

位于所述消息中间件的协议格式转换模块,用于将所述消息的格式转换为适配所述订阅设备的协议格式;

位于所述消息中间件的消息发送模块,用于将格式转后之后的消息发送至相应的订阅设备。

优选的,所述资源地址为主题;所述协议格式确定模块包括:

订阅设备协议格式确定子模块,用于确定订阅了所述主题的订阅设备的协议格式。

本申请实施例还公开了一种装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。

本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如上所述的一个或多个的方法。

本申请实施例包括以下优点:

在本申请实施例中,对云端服务器中的主题topic或url(uniformresourcelocator,统一资源定位符)等资源地址的uri(uniformresourceidentifier,统一资源标识符)提供统一的模板,该模板用于表示设备具有通信权限的资源地址的uri。当接收设备到向目标资源地址发送的消息时,根据模板确定当前设备具有权限的资源地址。根据具有权限的资源地址和目标资源地址,判断当前设备是否向目标资源发送消息的权限。对于各种协议的设备,都可以采用统一的模板去确定该设备具有权限的资源地址。与现有的授权验证方法相比,本申请实施例的授权验证更加统一高效,减少了授权记录的存储开销,且可展开于不同协议。

在确定设备具有权限后,将各种协议的设备的消息统一调整为适配云端服务器的消息格式,将消息内容透传到云端服务器。

附图说明

图1是本申请的一种消息处理方法实施例1的步骤流程图;

图2是本申请的一种消息处理方法实施例2的步骤流程图;

图3是本申请的一种物联网系统的消息处理方法实施例1的步骤流程图;

图4是本申请的一种物联网系统的消息处理方法实施例2的步骤流程图;

图5是本申请实施例中物联网系统的示意图;

图6是本申请的一种消息处理装置实施例1的结构框图;

图7是本申请的一种消息处理装置实施例2的结构框图;

图8是本申请的一种物联网系统的消息处理装置实施例1的结构框图;

图9是本申请的一种物联网系统的消息处理装置实施例2的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

在现有的物联网技术中,设备和云端服务器之间可以通过消息中间件(也称消息队列messagequeue)进行通信。

消息中间件是在消息传输过程中保存消息的容器,采用生产者和消费者模式,解决大规模消息传输时,如果生产者消息很多,而消费者消费比较慢的话,队列会做消息积压,根据消费者能力发给消费者。

消息中间件支持pub/sub(publish/subscribe,发布/订阅)通信模式。通过该消息传递模型,应用程序能够将一条消息发送给多个消息消费者。在此传送模型中,消息目的地类型是主题topic。消息首先由发布设备(消息生产者)发布至消息服务器中特定的主题中,然后由消息服务器将消息传送至所有已订阅此主题的订阅设备(消息消费者)。

pub/sub通信模式中,发布设备只能向主题列表中具有发布权限的主题发布消息。消息中间件会在发布设备向主题发送消息时,判断发布和设备是否具有该主题的权限。在现有技术中,发布设备每次向主题发送消息时,都需要进行授权判断。在发布设备较多时,授权判断也需要大量进行。

如果要实现各种协议的设备与云端服务器通信,则需要构建适配各种协议的消息处理系统,

设备a通过http协议向云端服务器发送消息(假如消息发送到http://xxxx/device/a/upload),云端服务器需要构造一套针对http协议的消息系统a,并且还需要判断设备a是否拥有访问这个url的权限;

设备b通过mqtt协议向云端服务器发送消息,云端服务器需要构造一套针对mqtt协议的消息系统b。由于mqtt协议是主题订阅模式,设备b需要向消息系统b的topic:/device/b/upload发送消息,同样消息系统b还需要去判断设备b是否拥有这个topic权限;

设备c通过coap协议向云端发送消息,云端服务器需要构造一套针对coap协议的消息系统c。类似http,消息系统c需要判断设备c是否拥有访问url的权限以保证安全;

现有的物联网技术存在如下几个主要问题:

首先,如何实现不同协议的设备的互联互通;其次,为了兼容各种协议的设备,云端服务器需要开发适配各种协议的消息系统,极大浪费了资源;最后,如果大量的设备,那么这些设备访问的url或者topic也有大量,云端服务器需要判断设备是否具有相应的访问授权,那么如何解决大量的授权记录的存储和开销。

本申请实施例的核心构思之一在于,对云端服务器中的主题topic或url(uniformresourcelocator,统一资源定位符)等资源地址的uri(uniformresourceidentifier,统一资源标识符)提供统一的模板,该模板用于表示设备具有通信权限的资源地址的uri。当接收设备到向目标资源地址发送的消息时,根据模板确定当前设备具有权限的资源地址。根据具有权限的资源地址和目标资源地址,判断当前设备是否向目标资源发送消息的权限。对于各种协议的设备,都可以采用统一的模板去确定该设备具有权限的资源地址。与现有的授权验证方法相比,本申请实施例的授权验证更加统一高效,减少了授权记录的存储开销,且可展开于不同协议。

在确定设备具有权限后,将各种协议的设备的消息统一调整为适配云端服务器的消息格式,将消息内容透传到云端服务器。将云端服务器向设备发送的消息,调整为适配该设备的协议的消息格式,从而实现各个协议的设备之间消息的互联互通。

参照图1,示出了本申请的一种消息处理方法实施例1的步骤流程图,具体可以包括如下步骤:

步骤101,获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

本申请实施例中,消息中间件支持pub/sub通信模式。消息中间件可以接收多种协议设备发送的消息,消息中间件在接收发布设备发送的消息后,确定该消息是要发送到哪个资源地址的,并确定该资源地址的统一资源标识符uri。

例如,http协议设备向http://xxxxx.com/productkey/devicename1/upload发送消息,则目标资源地址的uri为/productkey/devicename1/upload。

如果是mqtt协议,消息的数据包中具有topic区域,填写的是目标资源地址的uri。

设备发送的消息是否可以到达目标资源地址是需要权限控制的。

对于pub/sub通信模式,目标资源地址就是云端服务器中的主题的地址。

步骤102,根据所述目标统一资源标识符查找对应的预设模板;

在本申请实施例中,uri至少包括3段分段信息:/第一分段信息seg1/第二分段信息seg2/第三分段信息seg3。

在本申请实施例中,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;

则目标资源地址的uri表示为:/第一目标分段信息/第二目标分段信息/第三目标分段信息

所述步骤102可以包括如下子步骤:

子步骤s11,确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

在本申请实施例中,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值;所述多个模板分段信息用于表示所述授权统一资源标识符;

在本申请实施例对设备具有授权的uri提供了统一的模板。模板包括间隔的多个模板分段信息。具体的形式为:/第一模板分段信息/第二模板分段信息/第三模板分段信息。

对于mqtt协议,根据预设模板设备具有授权的目标资源地址可以表示为:/第一模板分段信息/第二模板分段信息/第三模板分段信息。

对于coap协议,根据预设模板设备具有授权的目标资源地址可以表示为:coap://${endpoint}/第一模板分段信息/第二模板分段信息/第三模板分段信息。

对于http协议,根据预设模板设备具有授权的目标资源地址可以表示为:http://${endpoint}/第一模板分段信息/第二模板分段信息/第三模板分段信息。

其中,所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

也就是说预设模板可以为:/第一变量名或第一常量值/第二变量名或第二常量值/第三常量值。

例如,

/${productkey}/${devicename}/get

/shadow/${productkey}/update

/broadcast/${productkey}/+/

其中,${xx}的意思是在取某个作用域内名称为xx变量的变量值。在本申请实施例中,作用域可以为发布设备的上下文context。

上下文是设备登录后,云端服务器填充到会话层,存储结果是以键值对(keyvalue)的形式存储的对条数据,比如map结构。上下文是存储在云端服务器的,每个设备连接都会有独立会话,每个会话都会有单独上下文,上下文中记录有设备信息,设备所属产品信息等。

对于/${productkey}/${devicename}/get这个模板,该模板表示设备拥有/设备所属产品key/设备名称/get这个资源地址的权限。

若在设备的上下文中key1:productkey,value1:123;key2:devicename,value2:456。则第一模板分段信息是名称为productkey的变量在context的值,即123;第一模板分段信息是名称为devicename的变量在context的值,即456;第三模板分段信息为get这个常量值。

子步骤s12,将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

当消息中间件接收到消息时,从该消息所针对的目标资源地址的目标统一资源标识符中,提取第一目标分段信息。

然后确定各个预设模板的第一模板分段信息的值,即确定用于表示第一分段信息的第一变量名对应的变量值或第一常量值。

将第一变量名对应的变量值或第一常量值与第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

例如,设备发送消息的目标资源地址为/a/b/c,则以第一目标分段信息a来查找模版。

如果用户在开通产品时,设定prodcutkey=a,则在上下文中记录有prodcutkey=a。

如果配置了如下的模版:/${productkey}/${devicename}/upload,该模板的第一模板分段信息表示为productkey=a。

那么根据目标资源地址/a/b/c中的第一目标分段信息a就可以相应的模板/${productkey}/${devicename}/upload。

步骤103,根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

在本申请实施例中,资源地址设置有访问权限。设备需要具有资源地址的授权才能访问该资源地址。

设备具有授权的资源地址可以由用户在注册该设备时设置。例如用户可以在资源地址列表中选择某个资源地址作为设备具有授权的资源地址。

在本申请实施例中,所述步骤103可以包括如下子步骤:

子步骤s21,获取所述发布设备的上下文;

下文是存储在云端服务器的,每个设备连接都会有独立会话,每个会话都会有单独上下文。

子步骤s22,从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

在本申请实施例中,预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值。

例如,/第一变量名或第一常量值/第二变量名或第二常量值/第三常量值。

所述子步骤s22可以进一步包括如下子步骤:

子步骤s221,从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

若预设模板指定了第一模板分段信息用第一变量名表示,则从上下文中查找名称为第一变量名对应的第一变量值。

和/或,

子步骤s222,从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

若预设模板指定了第二模板分段信息用第二变量名表示,则从上下文中查找名称为第二变量名对应的第二变量值。

例如,对于模板/${productkey}/${devicename}/get。

第一模板分段信息用变量productkey表示,第二模板分段信息用变量devicename表示;

则从设备的上下文中查找变量productkey的变量值,从上下文中查找变量devicename的变量值。

子步骤s23,将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

在本申请实施例中,模板可以指定模板分段信息为常量值。

所述子步骤s23可以进一步包括如下子步骤:

子步骤s231,将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

子步骤s232,将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

子步骤s233,将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

例如,模板/shadow/${productkey}/update。该模板指定了第一模板分段信息为常量shadow,第三模板分段信息为常量update。

步骤104,根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

在本申请实施例中,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;

所述步骤104可以包括如下子步骤:

子步骤s31,比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

在本申请实施例中,设备发送消息的目标资源地址的uri可以表示为:/第一目标分段信息/第二目标分段信息/第三目标分段信息。

根据预设模板确定的设备具有授权的资源地址的uri可以表示为:第一模板分段信息/第二模板分段信息/第三模板分段信息。

在实际中,可以通过构造mvel表达式的方式进行分段信息的比较。

例如,对于模板/${productkey}/${devicename}/abc,构造的mvel表达式为:

第一目标分段信息==context.productkeyand

第二目标分段信息==context.devicenameand

第三目标分段信息==‘abc’

当消息中间件接收到设备发送的消息时,消息中间件根据消息的目标资源地址和预设模板编译该mvel表达式。

例如,如果设备发送了2条消息,

消息1的目标资源地址为:/a/b/abc。

消息2的目标资源地址为:/a/b/123。

该设备的上下文中productkey=a,devicename=b。

那么对消息1构造的mvel表达式为:

‘a’==‘a’and‘b’==‘b’and‘abc’==‘abc’,该表达式的值为真,表示第一目标分段信息与第一模板分段信息相同,第二目标分段信息与所述第二模板分段信息相同,第三目标分段信息与第三模板分段信息相同。

对消息2构造的mvel表达式为:

‘a’==‘a’and‘b’==‘b’and‘123’==‘abc’,因为‘123’!=‘abc’,该表达式的值为假,表示第三目标分段信息与第三模板分段信息不相同。

子步骤s32,若各个间隔顺序对应的分段信息都相同,则确定所述发布设备具有向所述目标资源地址发送消息的授权。

如果第一目标分段信息与第一模板分段信息相同,第二目标分段信息与所述第二模板分段信息相同,第三目标分段信息与第三模板分段信息相同则表示发布设备具有向目标资源地址发送消息的授权。

步骤105,若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息发送至目标资源地址中。

在确定发布设备具有向目标资源地址发送消息的授权后,消息中间件可以直接将消息发送至云端服务器的目标资源地址中。

在本申请实施例中,所述步骤105可以包括:若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息的格式调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

具体的,消息中间件可以将消息的格式,从原来设备协议的格式调整为适配云端服务器的统一格式。在格式调整后,再将消息发送至云端服务器的目标资源地址中。

在本申请实施例中,所述的方法还可以包括:

若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中。

具体的,若已经确定根据预设模板确定用户具有授权的资源地址与目标资源地址相同,则缓存根据预设模板确定用户具有授权的资源地址。当发布设备再次向该资源地址发送消息时,则可以直接根据缓存的具有授权的资源地址确定发布设备具有授权,直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

在本申请实施例中,对云端服务器中的主题topic或url(uniformresourcelocator,统一资源定位符)等资源地址的uri(uniformresourceidentifier,统一资源标识符)提供统一的模板,该模板用于表示设备具有通信权限的资源地址的uri。当接收设备到向目标资源地址发送的消息时,根据模板确定当前设备具有权限的资源地址。根据具有权限的资源地址和目标资源地址,判断当前设备是否向目标资源发送消息的权限。对于各种协议的设备,都可以采用统一的模板去确定该设备具有权限的资源地址。与现有的授权验证方法相比,本申请实施例的授权验证更加统一高效,减少了授权记录的存储开销,且可展开于不同协议。

在确定设备具有权限后,将各种协议的设备的消息统一调整为适配云端服务器的消息格式,将消息内容透传到云端服务器。

参照图2,示出了本申请的一种消息处理方法实施例2的步骤流程图,具体可以包括如下步骤:

步骤201,获取服务器的资源地址中的消息;

在本申请实施例中,消息中间件将各种协议的设备的消息统一调整为适配云端服务器的消息格式,将消息内容透传到云端服务器。

消息中间件可以将服务器的资源地址中的消息,发送给具有该资源地址的权限的设备。

消息中间件支持pub/sub通信模式,资源地址可以为云端服务器的主题。设备可以订阅主题。消息中间件可以将某个主题的消息发送给订阅了该主题的设备。

步骤202,确定接收设备的协议格式;

在本申请实施例中,所述资源地址可以为主题,所述步骤202可以包括:确定订阅所述主题的接收设备的协议格式。

步骤203,将所述消息的格式转换为适配所述接收设备的协议格式;

消息存储在云端服务器时,是以适配云端服务器的统一格式存储的。消息中间件需要将消息从适配云端服务器的格式转换为适配设备的协议格式。

例如,对于http设备,需要将消息转换成适配http协议的格式。

对于mqtt设备,需要将消息转换成适配mqtt协议的格式。

对于coap设备,需要将消息转换成适配coap协议的格式。

步骤204,将格式转后之后的消息发送至相应的接收设备。

本申请实施例中,可以将云端服务器向设备发送的消息,调整为适配该设备的协议的消息格式并发送给设备,从而实现各个协议的设备之间消息的互联互通。

参照图3,示出了本申请的一种物联网系统的消息处理方法实施例1的步骤流程图,所述物联网系统包括发布设备,与所述发布设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的方法可以包括:具体可以包括如下步骤:

步骤301,所述消息中间件接收所述发布设备发送的消息;

在本申请实施例中,物联网系统可以为智能农场系统、智能工厂系统、智能家居系统等系统。

所述发布设备可以为如传感器、执行器、嵌入式设备或智能家电等终端。

消息中间件作为物联网套件的一部分,为设备和物联网应用程序提供发布和接收消息的安全通道。方便设备和云端服务器之间的双向通信。

在本申请实施例中,消息中间件可支持http协议、coap协议以及mqtt协议;并且支持pub/sub通信模式。

步骤302,所述消息中间件获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

步骤303,所述消息中间件根据所述目标统一资源标识符查找对应的预设模板;

在本申请实施例中,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;

所述步骤303可以包括如下子步骤:

子步骤s41,所述消息中间件确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

子步骤s42,所述消息中间件将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

步骤304,所述消息中间件根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

在本申请实施例中,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述步骤304可以包括如下子步骤:

子步骤s51,所述消息中间件获取所述发布设备的上下文;

子步骤s52,所述消息中间件从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

在本申请实施例中,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

在本申请实施例中,所述子步骤s52可以进一步如下子步骤:

子步骤s521,所述消息中间件从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

子步骤s522,所述消息中间件从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

子步骤s53,所述消息中间件将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

在本申请实施例中,所述子步骤s53可以进一步如下子步骤:

子步骤s531,所述消息中间件将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

子步骤s532,所述消息中间件将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

子步骤s533,所述消息中间件将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

步骤305,所述消息中间件根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

在本申请实施例中,所述步骤305可以包括如下子步骤:

子步骤s61,所述消息中间件比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

子步骤s62,若各个间隔顺序对应的分段信息都相同,则所述消息中间件确定所述发布设备具有向所述目标资源地址发送消息的授权。

步骤306,若所述发布设备具有向所述目标资源地址发送消息的授权,则所述消息中间件将所述消息发送至所述应用服务器的目标资源地址中。

在本申请实施例中,所述步骤306可以包括:

若所述发布设备具有向所述目标资源地址发送消息的授权,则所述消息中间件将所述消息的格式调整为预设格式,并将调整格式后的消息发送至所述应用服务器的目标资源地址中。

在本申请实施例中,所述的方法还可以包括:

若所述发布设备具有向所述目标资源地址发送消息的授权,则在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,所述消息中间件直接将所述消息发送至目标资源地址中。

具体的,若所述发布设备具有向所述目标资源地址发送消息的授权,则在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,所述消息中间件直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

在本申请实施例中,消息中间件对云端服务器中的主题topic或url(uniformresourcelocator,统一资源定位符)等资源地址的uri(uniformresourceidentifier,统一资源标识符)提供统一的模板,该模板用于表示设备具有通信权限的资源地址的uri。当接收设备到向目标资源地址发送的消息时,根据模板确定当前设备具有权限的资源地址。根据具有权限的资源地址和目标资源地址,判断当前设备是否向目标资源发送消息的权限。对于各种协议的设备,都可以采用统一的模板去确定该设备具有权限的资源地址。与现有的授权验证方法相比,本申请实施例的授权验证更加统一高效,减少了授权记录的存储开销,且可展开于不同协议。

消息中间件在确定设备具有权限后,将各种协议的设备的消息统一调整为适配云端服务器的消息格式,将消息内容透传到云端服务器。

参照图4,示出了本申请的一种物联网系统的消息处理方法实施例2的步骤流程图,所述物联网系统包括发布设备,与所述发布设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的方法可以包括:具体可以包括如下步骤:

步骤401,所述消息中间件获取所述应用服务器的资源地址中的消息;

在本申请实施例中,物联网系统可以为智能农场系统、智能工厂系统、智能家居系统等系统。

所述发布设备可以为如传感器、执行器、嵌入式设备或智能家电等终端。

消息中间件作为物联网套件的一部分,为设备和物联网应用程序提供发布和接收消息的安全通道。方便设备和云端服务器之间的双向通信。

在本申请实施例中,消息中间件可支持http协议、coap协议以及mqtt协议;并且支持pub/sub通信模式。

在本申请实施例中,消息中间件将各种协议的设备的消息统一调整为适配云端服务器的消息格式,将消息内容透传到云端服务器。

消息中间件可以将服务器的资源地址中的消息,发送给具有该资源地址的权限的设备。

资源地址可以为云端服务器的主题。设备可以订阅主题。消息中间件可以将某个主题的消息发送给订阅了该主题的设备。

步骤402,所述消息中间件确定订阅设备的协议格式;

在本申请实施例中,所述资源地址为主题;所述步骤402可以包括:所述消息中间件确定订阅了所述主题的订阅设备的协议格式。

步骤403,所述消息中间件将所述消息的格式转换为适配所述订阅设备的协议格式;

步骤404,所述消息中间件将格式转后之后的消息发送至相应的订阅设备。

本申请实施例中,消息中间件可以将云端服务器向设备发送的消息,调整为适配该设备的协议的消息格式并发送给设备,从而实现各个协议的设备之间消息的互联互通。

为了使本领域技术人员能够更好地理解本申请实施例,下面通过一个例子对本申请实施例加以说明:

参照图5所示为本申请实施例中物联网系统的示意图。其中,物联网系统包括:设备、消息中间件以及云端服务器的上层系统。

消息中间件包括:http消息服务器、mqtt消息服务器、coap消息服务器、其它消息服务器,模板授权模块和消息路由模块。

http消息服务器负责接收http协议设备发送的消息,mqtt消息服务器负责接收mqtt协议设备发送的消息,coap消息服务器负责接收coap协议设备发送的消息。

本申请实施例在已有的各种消息中间件的基础上,增加模板授权模块和消息路由模块。

模板授权模块可提供:模板配置编译、权限编译、权限模板缓存功能。

模板配置编译功能是指,对云端服务器中的主题等资源地址的uri提供统一的模板,该模板用于表示设备具有通信权限的资源地址的uri。

例如/${productkey}/${devicename}/upload这条模版代表设备都拥有/设备所属产品key/设备名称/upload这样的权限。

在本申请实施例中把//之间的段称为一个seg(segment,分段)。

例如,mqtt:/seg1/seg2/seg3

coap:coap://${endpoint}/seg1/seg2/seg3

http:http://${endpont}/seg1/seg2/seg3

在本申请实施例中,对于seg1可以规定为设备所属产品key,seg2可以规定为设备名称,seg3可以由用户自行配置。

权限编译功能是指,当接收设备到向目标资源地址发送的消息时,根据模板确定当前设备具有权限的资源地址。根据具有权限的资源地址和目标资源地址,判断当前设备是否向目标资源发送消息的权限。对于各种协议的设备,都可以采用统一的模板去确定该设备具有权限的资源地址。

权限模板缓存功能是指,当判断设备具有向某个资源地址发送消息的权限后,建立该资源地址的缓存。当设备再次向该资源地址发送消息时,可直接授权通过,无需再进行权限编译。

消息路由模块可提供:消息编码解码功能、设备分布式会话功能、请求路由功能。

消息编码解码功能是指,将各种协议设备发送到资源地址消息调整为适配云端服务器的统一消息格式。

例如,{“topic”:“设备发送消息的资源地址”,“content”:byte[]},其中,资源地址已经统一为/seg1/seg2/seg3这样的路径。byte[]为消息的内容,消息的内容可以透传到资源地址。

消息编码解码功能还包括,将云端服务器发送给设备的消息,根据设备的协议做消息封装,以适配相应的协议。

设备分布式会话功能是指,对一个设备连接建立一个对应的会话,会话中含有设备是否在线、设备ip、设备连接协议(mqtt、moap、http)、设备连接地址等信息。

请求路由功能是指,负责消息分发给订阅设备,比如设备a使用http协议发送消息到/topic里,而设备b使用mqtt协议订阅了此消息,那么请求路由功能会把消息转mqtt格式同时通过mqtt服务器分发给设备b,实现各个协议的设备之间消息的互联互通,并且上层业务系统无需感知设备连接协议。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图6,示出了本申请的一种消息处理装置实施例1的结构框图,具体可以包括如下模块:

目标统一资源标识符获取模块601,用于获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

模板查找模块602,用于根据所述目标统一资源标识符查找对应的预设模板;

授权统一资源标识符确定模块603,用于根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

授权判断模块604,用于根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

第一消息发送模块605,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息发送至目标资源地址中。

在本申请实施例中,所述的装置还可以包括:

第二消息发送模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中。

在本申请实施例中,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述授权统一资源标识符确定模块603可以包括:

上下文获取子模块,用于获取所述发布设备的上下文;

第一模板分段信息确定子模块,用于从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

第二模板分段信息确定子模块,用于将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

在本申请实施例中,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

所述第一模板分段信息确定子模块可以包括:

第一模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

第二模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

在本申请实施例中,所述第二模板分段信息确定子模块可以包括:

第三模板分段信息确定单元,用于将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

第四模板分段信息确定单元,用于将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

第五模板分段信息确定单元,用于将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

在本申请实施例中,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;所述授权判断模块604可以包括:

比较子模块,用于比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

授权确定子模块,用于若各个间隔顺序对应的分段信息都相同,则确定所述发布设备具有向所述目标资源地址发送消息的授权。

在本申请实施例中,所述模板查找模块602可以包括:

模板信息确定子模块,用于确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

目标模板确定子模块,用于将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

在本申请实施例中,所述第一消息发送模块605可以包括:

第一消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息的格式调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

在本申请实施例中,所述第二消息发送模块可以包括:

第二消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

参照图7,示出了本申请的一种消息处理装置实施例2的结构框图,具体可以包括如下模块:

消息获取模块701,用于获取服务器的资源地址中的消息;

协议格式确定模块702,用于确定接收设备的协议格式;

协议格式转换模块703,用于将所述消息的格式转换为适配所述接收设备的协议格式;

消息发送模块704,用于将格式转后之后的消息发送至相应的接收设备。

在本申请实施例中,所述资源地址为主题;所述协议格式确定模块702可以包括:

订阅设备协议格式确定子模块,用于确定订阅所述主题的接收设备的协议格式。

参照图8,示出了本申请的一种物联网系统的消息处理装置实施例1的结构框图,所述物联网系统包括发布设备,与所述发布设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的装置具体可以包括如下模块:

位于所述消息中间件的消息接收模块801,用于接收所述发布设备发送的消息;

位于所述消息中间件的目标统一资源标识符获取模块802,用于获取发布设备发送的消息所针对的目标资源地址的目标统一资源标识符;

位于所述消息中间件的模板查找模块803,用于根据所述目标统一资源标识符查找对应的预设模板;

位于所述消息中间件的授权统一资源标识符确定模块804,用于根据所述预设模板确定所述发布设备具有授权的资源地址的授权统一资源标识符;

位于所述消息中间件的授权判断模块805,用于根据所述目标统一资源标识符以及所述授权统一资源标识符,判断所述发布设备是否具有向所述目标资源地址发送消息的授权;

位于所述消息中间件的第一消息发送模块806,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息发送至所述应用服务器的目标资源地址中。

在本申请实施例中,所述的装置还可以包括:

位于所述消息中间件的第二消息发送模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在所述消息中间件再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息发送至目标资源地址中。

在本申请实施例中,所述预设模板依次指定了多个表示模板分段信息的变量名或常量值,所述多个模板分段信息用于表示所述授权统一资源标识符;所述授权统一资源标识符确定模块804可以包括:

上下文获取子模块,用于获取所述发布设备的上下文;

第一模板分段信息确定子模块,用于从所述发布设备的上下文中查找表示所述模板分段信息的变量名对应的变量值,将所述变量值作为对应的模板分段信息;

第二模板分段信息确定子模块,用于将所述预设模板指定的表示模板分段信息的常量值,作为模板分段信息。

在本申请实施例中,所述多个模板分段信息包括:间隔的第一模板分段信息、第二模板分段信息,以及第三模板分段信息;所述预设模板依次指定了表示第一模板分段信息的第一变量名或第一常量值、表示第二模板分段信息的第二变量名或第二常量值,以及表示第三模板分段信息的第三常量值;

所述第一模板分段信息确定子模块可以包括:

第一模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第一变量名对应的第一变量值,将所述第一变量值作为所述第一模板分段信息;

和/或,

第二模板分段信息确定单元,用于从所述发布设备的上下文中查找所述第二变量名对应的第二变量值,将所述第二变量值作为所述第二模板分段信息。

在本申请实施例中,所述第二模板分段信息确定子模块可以包括:

第三模板分段信息确定单元,用于将所述预设模板指定的所述第一常量值,作为第一模板分段信息;

和/或,

第四模板分段信息确定单元,用于将所述预设模板指定的所述第二常量值,作为第二模板分段信息;

和/或,

第五模板分段信息确定单元,用于将所述预设模板指定的所述第三常量值,作为第三模板分段信息。

在本申请实施例中,所述目标统一资源标识符包括间隔的第一目标分段信息、第二目标分段信息以及第三目标分段信息;

所述授权判断模块805可以包括:

比较子模块,用于比较所述第一目标分段信息与所述第一模板分段信息是否相同,比较所述第二目标分段信息与所述第二模板分段信息是否相同,比较所述第三目标分段信息与所述第三模板分段信息是否相同;

授权确定子模块,用于若各个间隔顺序对应的分段信息都相同,则确定所述发布设备具有向所述目标资源地址发送消息的授权。

在本申请实施例中,所述模板查找模块803可以包括:

模板信息确定子模块,用于确定各个预设模板针对所述发布设备的第一变量名对应的变量值或第一常量值;

目标模板确定子模块,用于将所述第一变量名对应的变量值或第一常量值,与所述目标统一资源标识符的第一目标分段信息相同的预设模板,作为与所述目标统一资源标识符对应的预设模板。

在本申请实施例中,所述第一消息发送模块806可以包括:

第一消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则将所述消息的格式调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

在本申请实施例中,所述第二消息发送模块可以包括:

第二消息发送子模块,用于若所述发布设备具有向所述目标资源地址发送消息的授权,则在再次接收到所述发布设备向所述目标资源地址发送的消息时,直接将所述消息调整为预设格式,并将调整格式后的消息发送至目标资源地址中。

参照图9,示出了本申请的一种物联网系统的消息处理装置实施例2的结构框图,所述物联网系统包括发布设备,与所述发布设备通信的消息中间件,以及,与所述消息中间件通信的应用服务器,所述的装置具体可以包括如下模块:

位于所述消息中间件的消息获取模块901,用于获取所述应用服务器的资源地址中的消息;

位于所述消息中间件的协议格式确定模块902,用于确定订阅设备的协议格式;

位于所述消息中间件的协议格式转换模块903,用于将所述消息的格式转换为适配所述订阅设备的协议格式;

位于所述消息中间件的消息发送模块904,用于将格式转后之后的消息发送至相应的订阅设备。

在本申请实施例中,所述资源地址为主题;所述协议格式确定模块902可以包括:

订阅设备协议格式确定子模块,用于确定订阅了所述主题的订阅设备的协议格式。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例还提供了一种装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本申请实施例所述的方法。

本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行本申请实施例所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

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

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

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

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种消息处理方法、一种消息处理装置、一种物联网系统的消息处理方法和一种物联网系统的消息处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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