一种物联网资源订阅的方法、设备和系统与流程

文档序号:17147794发布日期:2019-03-19 23:08阅读:171来源:国知局
一种物联网资源订阅的方法、设备和系统与流程

本申请涉及通信领域,尤其涉及一种物联网领域资源订阅的方法、设备和系统。



背景技术:

伴随着物联网提供的丰富的业务和应用,如车联网,智慧家庭,智能医疗,远程抄表等,大量的物联网设备,如传感器,智能设备或终端等,会产生海量的数据,为减少海量数据对传输网络、各种设备特别是能力受限设备的性能冲击,物联网系统的设计和部署中都希望尽可能减少数据或消息的交互,以节省传输资源的占用,设备的能量消耗,延长电池寿命等。

资源订阅机制,可以实现终端或设备主动向服务器上报终端或设备的资源信息,而无需服务器向终端或设备频繁的查询,减少了服务器和终端间的消息交互。在实际的业务场景中,服务器有时需要同时监控多个资源、多个对象实例或者多个对象,但目前的资源订阅机制,一般只能实现对单个资源或对象实例的订阅。如轻量物联网通信(lightweightm2m,lwm2m)协议采用write-attributes及observe操作对资源进行订阅,但是write-attributes操作只能设置单个资源、对象实例或对象的订阅规则,observe操作也只能订阅单个资源、单个对象实例或者单个对象。



技术实现要素:

本申请提供一种物联网资源订阅的方法、设备和系统,以满足实际业务场景中对多个资源,对象实例或对象进行灵活订阅的业务需求。

第一方面,本申请提供一种物联网资源订阅的方法,服务器向设备发送请求消息,请求消息中包括第一资源的标识和第一参数,第一资源包括第一子资源和第二子资源,第一参数用于指示设备向服务器发送更新的资源的值;设备判断满足预设或所述服务器指定的条件,向所述服务器发送第一资源中更新的子资源的值。通过在订阅请求消息中增加发送更新资源的值的指示,设备仅需要向服务器发送更新的资源的值,降低了对设备和服务器的性能消耗,减少了对传输网络的带宽占用。

在一种可能的实施例中,设备判断满足预设或所述服务器指定的条件,且当前第一子资源的值与上次向所述服务器发送的第一子资源的值不同,且当前第二子资源的值与上次向服务器发送的第二子资源的值相同,设备向所述服务器发送当前第一子资源的值。

在一种可能的实施例中,服务器向设备发送的请求消息中还包括第二资源和第二参数,第二参数包括对第二资源进行判断的条件,当设备判断第二资源满足第二参数中包括的条件时,向服务器发送更新的资源的值。

第二方面,本申请提供另一种物联网资源订阅的方法,服务器向设备发送请求消息,请求消息中包括第一资源的标识和第二资源的标识,请求消息中还包括第一参数和第二参数,第二参数包括对第二资源进行判断的条件,第一参数用于指示不需要向服务器发送所述第二资源的值;当设备判断第二资源满足所述第二参数中包括的条件,设备向服务器发送当前第一资源的值。该方法使得服务器可以在订阅请求消息中明确指示设备哪些资源需要上报,哪些资源仅作为订阅判断条件,设备在判断满足订阅条件时,无需上报标识为不需要上报的资源的值,不仅减少了传输资源的占用,而且使得订阅更加灵活。同时,由于减少了设备侧上报的数据量和服务器侧要处理的数据量,也降低了设备和服务器侧的性能消耗。

第三方面,本申请还提供了一种物联网资源订阅的方法,服务器向设备发送请求消息,请求消息中包括第一资源的标识,第一参数,第二资源的标识,第二参数和第三参数,第一参数包括对第一资源进行判断的条件,第二参数包括对第二资源进行判断的条件,第三参数包括数据上报条件,数据上报条件为根据第一参数对第一资源进行判断和根据第二参数对第二资源进行判断的逻辑组合;设备判断第一资源和第二资源满足数据上报条件,向服务器发送当前第一资源的值和第二资源的值。该订阅方法可以使服务器使用逻辑表达式灵活设定订阅条件,大大提升了多资源订阅场景下资源订阅的灵活性。

数据上报条件可以是有“与”,“或”,“非”等逻辑关系组成的逻辑表达式,如数据上报条件可以是第一资源满足第一参数包括的条件,且第二资源满足第二参数包括的条件。数据上报条件还可以是第一资源满足第一参数包括的条件,或第二资源满足第二参数包括的条件。

第四方面,本申请提供一种物联网服务器,实现如第一方面或第二方面或第三方面所述方法中物联网服务器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第五方面,本申请提供一种物联网设备,实现如第一方面或第二方面或第三方面所述方法中的物联网设备的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面所述的方法。

第七方面,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面所述的方法。

第八方面,本申请提供一种实现资源订阅的物联网系统,该系统至少包括如上所述的物联网服务器和物联网设备。

附图说明

图1为本发明实施例提供的一种物联网系统架构示意图;

图2为本发明实施例提供的一种设备资源结构示意图;

图3为本发明实施例提供的一种资源订阅方法流程图;

图4为本发明实施例提供的另一种资源订阅方法流程图;

图5为本发明实施例提供的一种计算机设备示意图;

图6为本发明实施例提供的一种服务器功能模块示意图;

图7为本发明实施例提供的一种设备功能模块示意图;

具体实施方式

图1所示为一种物联网系统,其中,设备01、设备02和设备03与服务器0相连,服务器0对设备01、设备02和设备03进行管理,如设备软硬件升级、设备功能控制、资源订阅、资源查询等,服务器0可以是物联网连接管理平台或物联网应用服务器;设备011和设备012经由设备01与服务器0相连,设备01可以视为服务器0和设备011/012间的中间设备,如家庭网关,汇聚网关等,服务器0还可以对设备011和设备012进行管理,服务器0和设备011/012间的消息或数据经由设备01转发,设备01也可以对转发的消息或数据进行一定的处理,如数据预处理/过滤,通信协议或消息格式转换等,比如智慧家庭中支持不同短距通信技术的智能终端设备通过不同的连接方式和消息格式与家庭网关通信,家庭网关再以统一的连接方式和消息格式与服务器相连,设备01相对服务器0而言,屏蔽了接入侧通信协议和消息格式的差异性,使得服务器0可以对不同的终端设备进行连接和管理。

需要说明的是,本申请不限定服务器0和任一设备间的连接方式或通信协议,比如服务器0和设备01间可以采用有线连接,使用受限应用协议(constrainedapplicationprotocol,coap)进行数据或消息传输,服务器0和设备02间可以采用基于蜂窝的窄带物联网(narrowbandinternetofthings,nb-iot)无线连接技术,使用消息队列遥测传输(messagequeuingtelemetrytransport,mqtt)协议进行数据或消息传输。

还需要说明的是,为方便表述,本申请对服务器和设备进行了编号,服务器0,设备01,设备02,设备03,设备011和设备012名称中的数字仅代表编号,编号本身对服务器或设备不构成任何限定。

物联网技术中,服务器以资源的形式对设备进行管理,这里的“资源”是抽象的概念,既可以指物理形态的设备,也可以指设备的型号,软硬件版本、生产商等静态属性,还可以指设备可以执行的操作,可以上报的事件、参数,可以读取的状态参数等动态属性。每个资源具有唯一的标识,标识可以是名称或uri或其它任何可于对资源进行区分和辨识的类型或格式。本申请中以uri为例,对资源进行标识,如假设服务器0的uri为“/server0”,设备01,设备011,设备012、设备02和设备03的uri分别为“/server0/device01”,“/server0/device01/device011”,“/server0/device01/device011”,“/server0/device02”,“/server0/device03”。

设备本身的静态属性或动态属性等资源的uri可能根据设备模型的不同而不同,在本申请提交之日,物联网领域的设备模型或数据模型尚没有统一的标准和定义,为方便描述,本申请中将以lwm2m协议的设备模型为例对设备所提供资源的uri进行描述,本领域技术人员可以理解的是,在实施本申请实施例所提供的技术方案时,同样可以采用其它标准定义的设备模型或资源标识。

假设设备02为智能穿戴设备,可以提供定位服务,设备02的资源结构如图2所示,设备02(device02)包括两个对象,device和location,“对象”可以理解相似属性或功能的资源集合,device编号为3,location编号为6,相同的“对象”可以有一个或多个实例instance,图2所示的实例中,device和location对象都只有一个实例,实例编号为0;对象实例包含多个资源,每种资源也都有各自的编号。编号可以用于组成uri标识设备02中的特定资源,如以device02为根路径的前提下(如根路径为/server0/device02),“/3/0/9”可以表示设备02中的batterylevel资源,“/6”表示设备02中location对象所包含的所有实例中的所有资源。需要说明的是,如上所述的“对象”或“对象实例”本身也可以被视为“资源”,相应的,“/3/0/9”batterylevel为device(3)的子资源。

假设服务器0想要订阅设备02在速度大于某一指定值时,设备02的位置信息,则服务器0可以采用如图3所示的方法向设备02订阅在指定条件下的位置信息。

301:设备02首先注册到服务器0。设备02在注册请求消息中将如图2所示的device02中包含的对象、实例及资源注册到服务器0,注册消息中至少包括对象或实例或资源相对于device02的uri(即以device02为根路径的uri),如“/3”或“/3/0”或“/3/0/9”。服务器0在注册响应消息中为设备02分配uri,如“/server0/device02”。在另外一种可能的实现方式中,设备02也可以只注册device02本身,由服务器0通过发现流程发现device02中包含的对象或实例或资源的uri。

302:假设服务器0在注册流程或发现流程获知设备02中包括的对象实例和资源后,向设备02订阅在设备02的速度大于每秒5米时,设备02的经纬度信息。订阅请求可以使用多种消息实现,本实施例以fetch消息为例。服务器0向设备02发送fetch消息,其中不仅包括device02中包含的speed资源的uri,speed大于每秒5米的条件,speed仅作为订阅判断条件而无需上报speed值的指示,还包括latitude和longitude资源的uri。如上订阅请求中包括的信息可以表达为:

其中,“e”代表资源数组,“n”代表资源名称或uri,“gt”表示大于,“ra”:“1”表示speed资源在本次订阅中仅做为判断条件,不需要上报;如果“ra”取值为“0”或者没包含“ra”,则表示需要上报资源的值。fetch消息中同时包含了“/6/0/6”,“/6/0/0”和“/6/0/1”三个资源的uri,其中,资源“/6/0/6”后附加了两个参数,其中一个参数表示对“/6/0/6”资源的判断条件,另外一个参数表示不需要上报“/6/0/6”资源的值。需要说明的是,如上fetch消息中可能还包括其它参数或信息,如包括设备02的uri“/server0/device02”等,此处不再赘述。

303:设备02向服务器0发送订阅成功响应消息。

304:设备02根据服务器0指定的订阅条件,对speed资源进行判断或检测。

305:当设备02判断speed资源大于每秒5米时,设备02向服务器发送此时“/6/0/0”和“/6/0/1”资源,即latitude和longitude的值。

在如上实施例中,服务器0通过在订阅请求中新增无需上报的指示,如“ra”:“1”,减少了设备02向服务器0上报的数据量,节省了带宽和设备消耗,提高的订阅的精度和效率,设备02只需要上报服务器0指定的资源的值,服务器0也无需接收或处理服务器0不关注的资源的值,如speed的值。

在如上实施例中,服务器0在订阅请求中将一个资源的变化情况作为另一个资源上报的订阅条件,但在实际应用场景中,服务器0可能需要同时将多个资源的变化情况作为订阅条件,比如服务器0可能需要订阅在speed大于每秒5米(假设speed资源的数值单位为米/秒)且剩余电量batterylevel小于20%(假设batterylevel资源的数值单位为百分比%)时设备02的位置信息,则服务器0需要将speed和batterylevel组合起来作为位置信息的订阅条件,图3中302订阅请求中包括的信息以fetch消息为例包括:

其中“re”代表数据上报条件,其中包含多个资源的判断条件间的关系,如上所示中“(/6/0/6&/3/0/9)”代表数据上报条件为同时满足资源“/6/0/6”和“/3/0/9”的判断条件,即设备02在判断“/6/0/6”大于每秒5米并且“/3/0/9”小于20%时,向服务器0上报“/6/0/6”speed,“/3/0/9”batterylevel,“/6/0/0”latitude和“/6/0/1”longitude的值。如果服务器0只需要获得位置信息,为了减少数据上报的量,服务器0也可以将“/6/0/6”speed和“/3/0/9”batterylevel设置为不需要上报的资源,则302订阅请求中包括的信息以fetch消息为例包括:

需要说明的是,“re”数据上报条件中两个或多个资源判断条件的逻辑关系可以为“与”,“或”,“非”等逻辑关系或多种逻辑关系的组合,本发明实施例对此不作限定。

如前所述,在物联网领域,由于海量的设备和数据,为了降低对设备、网络和系统的消耗,需要尽可能减少设备和服务器间发送的消息和数据量。以图2所示的资源结构为例,现有技术下,当服务器0需要订阅设备0中某个对象中多个资源的变化情况时,往往以对象为单位订阅对象中的全部资源,如订阅device(3)对象,设备02每次向服务器上报数据时都要上报device(3)对象中全部资源的值,而实际上,某些资源的值可能并没有发生变化,如制造商manufacturer,序列号serialnumber等。这样多次向服务器上报并未发生变化的资源的值,不仅占用了网络带宽,也消耗了设备和服务器的性能。因此,服务器需要指示设备,仅上报相对上次上报更新的资源的值或发生变化的资源的值。如图4所示,服务器0向已注册的设备02订阅speed大于每秒5米条件下的设备和位置信息,以fetch消息为例,402资源订阅请求消息中包括,

其中,“rf”:“1”表示,“e”所包含的资源数列中,只上报发生变化的资源的值。设备02在404步骤判断“/6/0/6”speed资源满足订阅条件时,在405步骤向服务器上报device(3)对象和location(6)对象中发生变化的或更新的资源的值。

需要说明的是,当“rf”参数与“e”并列时,作用于“e”中每个对象和资源,rf”参数也可以作为单个对象或资源的附加参数,只作用于单个对象或资源,如

此时,“rf”参数只对device(3)对象生效,设备02在数据上报时,上报device(3)对象中发生变化的资源的值和location(6)对象中所有资源的值。

上述主要从订阅流程和消息交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,服务器和设备等实体为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

例如,如图5所示,图1中的服务器或设备实体可以通过图5中的计算机设备(或系统)来实现。

图5所示为本发明实施例提供的计算机设备示意图。计算机设备500包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。

处理器501可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。

通信总线502可包括一通路,在上述组件之间传送信息。

通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccessnetwork,ran),无线局域网(wirelesslocalareanetworks,wlan)等。

存储器503可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器503用于存储执行本发明方案的应用程序代码,并由处理器501来控制执行。处理器501用于执行存储器203中存储的应用程序代码,从而实现本专利方法中的功能。

在具体实现中,作为一种实施例,处理器201可以包括一个或多个cpu,例如图5中的cpu0和cpu1。

在具体实现中,作为一种实施例,计算机设备200可以包括多个处理器,例如图5中的处理器501和处理器508。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在具体实现中,作为一种实施例,计算机设备500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquidcrystaldisplay,lcd),发光二级管(lightemittingdiode,led)显示设备,阴极射线管(cathoderaytube,crt)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。

上述的计算机设备500可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备500可以是台式机、便携式电脑、网络服务器、掌上电脑(personaldigitalassistant,pda)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图5中类似结构的设备。本发明实施例不限定计算机设备500的类型。

本发明实施例还可以对服务器或设备进行功能模块划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以此采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意行的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

比如,图6给出了上述实施例中所涉及的一种服务器实体可能的结构示意图,该服务器600包括订阅模块601和通信模块602,其中,订阅模块601负责构造如上实施例中所述的订阅请求消息,并通过通信模块602向设备发送订阅请求消息,如图3中的302消息和图4中的402消息。通信模块602还可以用于接收设备上报的数据,如图3中的305消息和图4中的405消息,并转发订阅模块601对消息进行解析和处理.

比如,图7给出了上述实施例中所涉及的一种设备实体可能的结构示意图,该设备700包括判断处理模块701和通信模块702,其中,判断处理模块701负责对通信模块702接收的订阅请求消息进行解析处理,并在判断满足订阅条件时构造数据上报消息,通过通信模块702上报服务器,如图3中的305消息和图4中的405消息。

上述功能模块既可以采用硬件的形式实现,也可以此采用软件功能模块的形式实现。在一个简单的实施例中,本领域的技术人员可以想到服务器600的订阅模块601或设备700的判断处理模块701可以通过图5中的处理器501调用存储器503中的代码来实现,本发明实施例对此不作任何限制。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

还需要说明的是,本发明实施例中所提出的“ra”,“re”和“rf”等参数既可以单独使用,也可以组合使用。如上发明实施例中以设备02和fetch消息为例进行流程和消息说明,本领域技术人员应该理解的是,如上流程同样适用于设备01和设备011等其它在服务器注册的设备,也同样适用于采用其它消息进行订阅的方法流程,如上实施例中的消息示例、参数命名和格式仅为一种可能的实现方式,凡在本发明的技术方案和方案构思的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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