消息处理方法及装置与流程

文档序号:16131353发布日期:2018-12-01 00:21阅读:150来源:国知局

本发明实施例涉及物联网技术领域,尤其涉及一种消息处理方法及装置。

背景技术

在物联网时代,数据通信技术发展较快,万物互联成为未来发展的方向。窄带物联网(narrowbandinternetofthings,nb-iot)作为3gpp国际标准组织r13发布的标准新型技术,得到了一定的认可,且作为物联网领域的新型技术,也是即将面市的5g标准里的核心技术之一。

nb-iot属于窄带低速率传输技术,具有低频段、低功耗、低成本以及高覆盖等优点。nb-iot技术主要解决低功耗广域物联网的系列问题,在2016年9月开始制定标准之后,一些运营商、设备制造厂商均在积极布局市场,加快推动其商用,因此,大量的nb-iot设备(后文简称nb设备)不断的出现。在当今互联网与大数据结合的人工智能时代,nb设备也需要像个人计算机(personalcomputer,pc)或智能手机一样,通过一些通信协议与全球广域网或万维网(worldwideweb,web)为服务器进行数据通信。

目前,虽然5g技术还没有正式商用,但nb-iot作为5g技术在窄带领域的核心技术已经逐渐兴起,相应地也出现了很多web服务器与nb设备之间的通信方法。而现有技术中,web服务器与nb设备通信需要借助设备控制器,设备控制器作为信息转发的中间件,在通信过程中,nb设备先向设备控制器发出连接请求,设备控制器确认该nb设备合法后准许连接网络;设备控制器发送指令给自身所在的操作系统,操作系统解码后再将连接请求转发到web服务器上,最终通过超文本传输协议(hypertexttransferprotocol,http)或超文本传输安全协议(hypertexttransferprotocoloversecuresocketlayer,https)的方式实现web服务器与nb设备的通信。

然而,通过设备控制器与web服务器通信的方式中,在nb设备数量较多时,容易降低web服务器与nb设备之间通信的高可用性;且设备控制器的设备成本、维护成本也会增加通信成本。



技术实现要素:

本发明实施例提供一种消息处理方法及装置,用以解决现有技术中,web服务器通过设备控制器与nb设备通信,容易降低通信过程的高可用性的问题。

一方面,本发明实施例提供一种消息处理方法,应用于受限制的应用协议coap服务器,所述coap服务器为万维网web服务器,所述方法包括:

确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备;

将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

另一方面,本发明实施例提供一种消息处理装置,应用于受限制的应用协议coap服务器,所述coap服务器为万维网web服务器,所述装置包括:

确定模块,用于确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备;

发送模块,用于将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

另一方面,本发明实施例还提供了一种电子设备,包括存储器、处理器、总线以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述消息处理方法中的步骤。

再一方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述消息处理方法中的步骤。

本发明实施例提供的消息处理方法及装置,通过确定下发给coap客户端的源消息,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端,将源消息转换为字节byte格式的目标消息,使得coap客户端可直接读取目标消息,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。

附图说明

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

图1为本发明实施例提供的消息处理方法的流程示意图之一;

图2为本发明实施例提供的消息处理方法的流程示意图之二;

图3为本发明实施例的具体示例的流程示意图;

图4为本发明实施例提供的消息处理装置的框图;

图5为本发明实施例提供的电子设备的结构示意图。

具体实施方式

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

图1示出了本发明实施例提供的一种消息处理方法的流程示意图。

如图1所示,本发明实施例提供的消息处理方法,所述方法应用于受限制的应用协议coap服务器,所述coap服务器为万维网web服务器,所述方法包括:

步骤101,确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备。

其中,受限制的应用协议(constrainedapplicationprotocol,coap)是一种基于rest架构、并运行在有限的cpu和内存的环境下的一种网络通信协议,通过定义二进制各位段功能来描述协议包内容,相对于http等通信协议,coap协议包更小、更紧凑,比如,coap协议中最小的协议包只有4b。

本步骤中,所述源消息为所述coap服务器针对所述coap客户端的请求消息的响应消息,或所述coap服务器向所述coap客户端下发的指示信息。

步骤102,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

其中,由于coap服务器为web服务器,web服务器所下发的源消息的格式为js对象简谱(javascriptobjectnotation,json)格式,而nb设备中由于cpu和内存的限制,解析json功耗太高,因此,本发明实施例中,coap服务器将源消息转换为字节byte格式的目标消息,byte格式可以被nb设备通过coap协议直接读取,且解析byte时功耗较低。

比如,当所述源消息所述coap服务器向所述coap客户端下发的指示信息时,coap服务器下发指令到coap客户端,coap客户端可通过固件程序解析指示信息,如果存与所述指示信息相对应的合法指令,coap客户端将执行执行所述指示信息。

由于coap服务器与coap客户端之间直接进行通信,不需要借助中间件,提高了web服务器与nb设备之间服务的高可用性,其中,高可用性即高度可用性。

本发明的上述实施例中,通过确定下发给coap客户端的源消息,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端,将源消息转换为字节byte格式的目标消息,使得coap客户端可直接读取目标消息,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。本发明解决了现有技术中,web服务器通过设备控制器与nb设备通信,容易降低web服务器与nb设备之间通信的高可用性的问题。

进一步地,如图2所示,本发明实施例提供的消息处理方法,所述方法应用于coap服务器,所述coap服务器为web服务器,所述方法包括:

步骤201,接收coap客户端的请求消息,所述coap客户端为nb设备。

其中,coap客户端的请求消息可以是注册请求或者订阅请求等。

由于coap客户端为nb设备,nb设备中包含一个统一资源定位符(uniformresourcelocator,url)为“t/d”的资源(也可称为路由),该资源支持类似http的get方法和post方法来访问服务器的资源。比如若一个nb设备具备温度测量的传感器,那么把温度值传给coap服务器时,它的url地址可以为:

coap://nbmachine.address:5666/sensors/temperature;

其中,“5566”为该nb设备的地址。

coap服务器可以通过此url直接可获取该设备的温度值,由于coap协议是基于用户数据报协议(userdatagramprotocol,udp)的上层协议,不需要长连接,节省功耗。

步骤202,将所述请求消息转换为js对象简谱json格式的目标请求消息。

其中,由于coap服务器为web服务器,web服务器所下发的源消息的格式为json格式,而nb设备中由于cpu和内存的限制解析json功耗太高,因此,本发明实施例中,nb设备的请求消息采用byte格式,coap服务器接收到请求消息后,将byte格式的请求消息转换为json格式的目标请求消息,便于coap服务器解析。

步骤203,生成针对所述目标请求消息的源消息。

其中,coap服务器针对所述目标请求消息,确定响应内容,生成针对所述目标请求消息的源消息;源消息即用于响应所述目标请求消息的消息,比如,当目标请求消息为注册请求时,源消息为注册结果。

步骤204,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

其中,coap服务器将源消息转换为字节byte格式的目标消息,byte格式可以被nb设备通过coap协议直接读取,实现web服务器与nb设备通信。

可选地,本发明的上述实施例中,当所述请求消息为注册请求消息时,

所述将所述请求消息转换为js对象简谱json格式的目标请求消息的步骤之后,所述方法还包括:

获取所述注册请求消息中携带的所述coap客户端的唯一标识符;

建立与所述唯一标识符对应的账户。

具体地,web服务器端可以实现设备管理的功能。通过对不同的coap客户端建立不同的账户来实现。当接收到coap客户端的注册请求时,获取注册请求消息中携带的所述coap客户端的唯一标识符,并建立与唯一标识符一一对应的账户。比如,可以用设备的国际移动设备识别码imei(internationalmobileequipmentidentity,imei)来作为唯一标识符,这样通过运营商网络就能找到该nb设备。

可选地,本发明的上述实施例中,所述建立与所述唯一标识符对应的账户的步骤之后,所述方法还包括:

创建针对所述账户的第一数据队列以及第二数据队列;其中,所述第一数据队列用于存储针对所述账户的设备连接请求,所述第二数据队列用于存储下发给所述coap客户端的指示消息。

其中,新建coap客户端的账户后,coap服务器可能接收到众多账户发来的设备连接请求,或者coap服务器需要向新建账户发送指示消息。本发明实施例中,为每个coap客户端在coap服务器端程序中开启两个数据队列,第一数据队列以及第二数据队列。

具体地,本发明实施例中可使用java中的阻塞队列(blockingqueue),blockingqueue队列和传统的队列不同在于,当队列满的时候再执行插入数据到队列时,该操作会被阻塞,直到有其他线程消费了该队列中的数据。

可选地,本发明的上述实施例中,所述创建针对所述账户的第一数据队列以及第二数据队列的步骤之后,所述方法包括:

接收针对所述账户的设备连接请求,将所述设备连接请求存储在所述第一数据队列中。

第一数据队列用于存储从其他nb设备发来的设备连接请求,该队列的写方法主要实现消费队列中的数据,即将队列中的其他nb设备发来的设备连接请求保存到数据库中、内存中的代理对象中或者自定义文件中。

可选地,本发明的上述实施例中,所述确定下发给coap客户端的源消息的步骤之后,所述方法还包括:

将所述源消息存储在用于存储下发给所述coap客户端的指示消息的预设队列中。

其中,用于存储下发给所述coap客户端的指示消息的预设队列即第二数据队列,第二数据队列用于将coap服务器下发的指示消息回传给coap客户端,具体实现方法如下:coap服务器确定下发给coap客户端的源消息之后,比如接收到nb设备厂商登录coap服务器发送给nb设备的指示消息时,首先将所有指示消息写入到第二数据队列的读方法中,这样避免了并发高时,coap服务器负载过重导致数据丢失,因此,先把指示消息保存到第二数据队列中,然后再开启一个或者多个线程去消费第二数据队列中的数据。

这样,第一数据队列实现了从coap客户端发送数据到coap服务器传输数据,第二数据队列实现了从coap服务器发送数据到coap客户端传输数据,以异步方式进行通信,并将通信的数据进行实时存储和处理,可实现在高并发场景下,nb设备与web服务器之间通信的高可用,挺高了web服务器的性能。

本发明的上述实施例中,通过确定下发给coap客户端的源消息,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端,将源消息转换为字节byte格式的目标消息,使得coap客户端可直接读取目标消息,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。coap服务器为coap客户端分别创建第一数据队列以及第二数据队列,以异步方式进行通信,并将通信的数据进行实时存储和处理,可实现在高并发场景下,nb设备与web服务器之间通信的高可用,挺高了web服务器的性能。

作为具体示例,参见图3,图3中,coap客户端与coap服务器通信,coap服务器侧设置有一转换插件以及消息处理模块,用于实现byte格式与json格式互相转换,通信过程主要包括以下步骤:

1,coap客户端向coap服务器发送注册请求消息。

其中,转换插件首先接收到注册请求消息。

且将nb设备的imei号作为nb设备的唯一标识符。

2,转换插件将注册请求消息转换为json格式。

3,转换插件将json格式的注册请求消息发送至消息处理模块。

4,消息处理模块为coap客户端建立账户,并创建第一数据队列和第二数据队列。

之后,coap服务器若接收到针对coap客户端的连接请求,则将该连接请求储存在第一数据队列中。

5,coap服务器向coap客户端发送指示消息,此时由于指示消息为json格式,因此,消息处理模块先将指示消息发送给转换插件。消息处理模块确定下发给coap客户端的源消息之后,比如接收到nb设备厂商登录coap服务器发送给nb设备的指示消息时,首先将所有指示消息写入到第二数据队列的读方法中,这样避免了并发高时,coap服务器负载过重导致数据丢失,因此,先把指示消息保存到第二数据队列中,然后再开启一个或者多个线程去消费第二数据队列中的数据。

6,转换插件将json格式的指示消息转换为byte格式。

7,转换插件将转换后的指示消息发送至coap客户端。

上述示例中,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。coap服务器302为coap客户端301分别创建第一数据队列以及第二数据队列,以异步方式进行通信,并将通信的数据进行实时存储和处理,可实现在高并发场景下,nb设备与web服务器之间通信的高可用,挺高了web服务器的性能。

参见图4,本发明实施例提供一种消息处理装置,应用于受限制的应用协议coap服务器,所述coap服务器为万维网web服务器,所述装置包括:

确定模块401,用于确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备。

其中,coap是一种基于rest架构、并运行在有限的cpu和内存的环境下的一种网络通信协议,通过定义二进制各位段功能来描述协议包内容,相对于http等通信协议,coap协议包更小、更紧凑,比如,coap协议中最小的协议包只有4b。

所述源消息为所述coap服务器针对所述coap客户端的请求消息的响应消息,或所述coap服务器向所述coap客户端下发的指示信息。

发送模块402,用于将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

其中,由于coap服务器为web服务器,web服务器所下发的源消息的格式为js对象简谱(javascriptobjectnotation,json)格式,而nb设备中由于cpu和内存的限制解析json功耗太高,因此,本发明实施例中,coap服务器将源消息转换为字节byte格式的目标消息,byte格式可以被nb设备通过coap协议直接读取,实现web服务器与nb设备通信。

可选地,本发明实施例中,所述装置包括:

接收模块,用于接收coap客户端的请求消息;

第一转换模块,用于将所述请求消息转换为js对象简谱json格式的目标请求消息;

生产模块,用于生成针对所述目标请求消息的源消息。

可选地,本发明实施例中,当所述请求消息为注册请求消息时,所述装置还包括:

标识符获取模块,用于获取所述注册请求消息中携带的所述coap客户端的唯一标识符;

账户建立模块,用于建立与所述唯一标识符对应的账户。

可选地,本发明实施例中,所述装置还包括:

队列创建模块,用于创建针对所述账户的第一数据队列以及第二数据队列;其中,所述第一数据队列用于存储针对所述账户的设备连接请求,所述第二数据队列用于存储下发给所述coap客户端的指示消息。

可选地,本发明实施例中,所述装置包括:

第一存储模块,用于接收针对所述账户的设备连接请求,将所述设备连接请求存储在所述第一数据队列中。

可选地,本发明实施例中,所述装置还包括:

第二存储模块,用于将所述源消息存储在用于存储下发给所述coap客户端的指示消息的预设队列中。

本发明的上述实施例中,通过确定模块401确定下发给coap客户端的源消息,发送模块402将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端,将源消息转换为字节byte格式的目标消息,使得coap客户端可直接读取目标消息,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。本发明解决了现有技术中,web服务器通过设备控制器与nb设备通信,容易降低web服务器与nb设备之间通信的高可用性的问题。

图5示出了本发明又一实施例提供的一种电子设备的结构示意图。

参见图5,本发明实施例提供的电子设备,所述电子设备包括存储器(memory)51、处理器(processor)52、总线53以及存储在存储器51上并可在处理器上运行的计算机程序。其中,所述存储器51、处理器52通过所述总线53完成相互间的通信。

所述处理器52用于调用所述存储器51中的程序指令,以执行所述程序时实现如图1的方法。

在另一种实施方式中,所述处理器执行所述程序时实现如下方法:

确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备;

将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

本发明实施例提供的电子设备,可用于执行上述方法实施例的方法对应的程序,本实施不再赘述。

本发明实施例提供的电子设备,通过确定下发给coap客户端的源消息,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端,将源消息转换为字节byte格式的目标消息,使得coap客户端可直接读取目标消息,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。

本发明又一实施例提供的一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,所述程序被处理器执行时实现如图1的步骤。

在另一种实施方式中,所述程序被处理器执行时实现如下方法:

确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备;

将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

本发明实施例提供的非暂态计算机可读存储介质,所述程序被处理器执行时实现上述方法实施例的方法,本实施不再赘述。

本发明实施例提供的非暂态计算机可读存储介质,通过确定下发给coap客户端的源消息,将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端,将源消息转换为字节byte格式的目标消息,使得coap客户端可直接读取目标消息,实现了coap服务器与coap客户端之间直接进行通信,不需要借助中间件转发消息,避免造成消息资源浪费,提高了web服务器与nb设备之间通信的高可用性。且由于coap协议包较小,有利于提升web服务器与nb设备之间通信的通信能力。

本发明又一实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:

确定下发给coap客户端的源消息;所述coap客户端为窄带物联网nb设备;

将所述源消息转换为字节byte格式的目标消息,并将所述目标消息发送给所述coap客户端。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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