Processing

Please wait...

Settings

Settings

Goto Application

1. WO2015081786 - METHOD AND APPARATUS FOR IMPLEMENTING SUBSCRIPTION NOTIFICATION

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28  

附图

0001   0002   0003   0004   0005   0006   0007   0008   0009   0010  

说明书

发明名称 : 订阅通知的实现方法和装置

技术领域

[0001]
本发明涉及机器通信(Machine-to-Machine Communications,M2M)技术领域,尤其涉及订阅通知的实现方法和装置。

背景技术

[0002]
机器通信(Machine-to-Machine Communications,M2M)是一种以机器智能交互为核心的、网络化的应用与服务。它通过在机器内部嵌入无线或有线通信模块以及应用处理逻辑,实现无需人工干预的数据通信,以满足用户对监控、指挥调度、数据采集和测量等方面的信息化需求。
[0003]
图1是一种典型的M2M系统架构。其中,各种终端(如传感器)经过网关远程接入到业务平台,而各种装载在终端上的应用(如电力抄表、智能交通等)则通过业务平台所提供的业务能力获取其他终端采集的数据或对其他终端进行远程的控制和管理。网关和平台都是公共服务实体(Common Services Entity,CSE),终端上的应用可以注册到与该终端连接的网关上,所有网关均需要注册到业务平台上,该接收注册的CSE称为本地CSE,例如,图1中应用1的本地CSE是网关A,应用2的本地CSE是网关B,网关A和B的本地CSE是业务平台。注册成功后,本地CSE将为注册者创建注册资源。
[0004]
在某些M2M应用场景中,终端b上应用2希望持续了解另一终端a上的应用1的状态变化,但又不希望频繁的去询问应用1。在目前的欧洲电信标准化协会(European Telecommunications Standards Institute,ETSI)所制定的M2M规范TS102 690及TS 102 921中,提供了一种订阅通知机制。即应用2订阅应用1在其本地CSE(即网关A)上的注册资源;当应用1产生改变时,向其本地CSE、即网 关A更新注册资源状态,网关A根据所述注册资源的状态更新向应用2发送通知消息。其中,应用2称为订阅者,应用1在其本地CSE上的注册资源称为被订阅资源,该被订阅资源所在的CSE称为托管公共服务实体(Hosting CSE)。Hosting CSE将根据订阅者(即应用2)的订阅请求创建订阅资源,订阅资源用于描述订阅关系。订阅资源的具体内容可以包括:被订阅资源标识、通知发送地址;可选的,还包含订阅条件等。同时在被订阅资源中保存该被订阅资源与订阅资源之间的关联关系。
[0005]
上述场景中,网关A上报的通知消息经过其他CSE转发给网关B,这里以通知消息只经过一个CSE(即业务平台)转发给网关B为例,为了减少业务平台与网关B的连接开销,业务平台在接收到来自网关A的上报信息后,确定如果是非紧急消息,将其在本地缓存。当接收到其他发送给网关B的紧急消息或缓存时间到期时,业务平台与网关B建立连接,将缓存的消息一并发送。这种接收到来自其他CSE的消息并在本地缓存一段时间后再转发到另一CSE的机制称为存储转发(Store and Forward,SAF)机制,在消息的发送过程中执行存储转发机制的CSE称为中间节点,例如该场景中的业务平台,消息在中间节点所缓存的时间称为存储转发时延。
[0006]
由于存储转发机制的存在,使得不同时间发送的多条通知消息可能在一个连接中到达订阅者。例如:在上述的场景中,应用1用于产生天气信息,应用2用于根据天气为用户提供生活提醒,需要实时了解天气变化信息,因此订阅应用1,从而创建订阅资源1。当天气信息发生更新时,气象部门网关A根据订阅资源1向应用2发送通知消息。由于关于天气变化的通知属于不紧急的通知消息,当通知消息到达业务平台时,业务平台根据存储转发策略缓存该通知消息。在通知消息的缓存期间,若天气发生变化,业务平台会接收网关A到根据订阅资源1发送给应用2的新通知消息。现有订阅通知机制中,这两条通知消息可能在一个连接中达到应用2,即订阅者在一个连接中可能接收到根据同一个订 阅资源发送的多条通知消息。但是,对某些订阅者,应用2只关心最新的天气信息,因此较早时间发送的通知消息无效,从而导致网络资源和订阅者计算资源浪费。
[0007]
发明内容
[0008]
本发明的实施例提供的订阅通知的实现方法和装置,能够避免因为在一个连接中将多个根据同一订阅资源发送的通知消息同时发送给订阅者造成网络资源和计算资源的浪费。
[0009]
第一方面,本发明实施例提供的实现订阅通知的托管公共服务实体hosting CSE包括:接收单元,用于接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识;资源创建单元,用于根据所述接收单元接收到的创建订阅资源请求而创建订阅资源;确定单元,用于确定所述订阅者需要获取的是所述被订阅资源的最新状态;分配单元,用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态;生成单元,用于当所述被订阅资源的状态发生更新时,根据所述资源创建单元创建的订阅资源生成通知消息,所述通知消息包含所述更新后的被订阅资源的状态以及所述分配单元分配的最新状态标识,以便于中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息;发送单元,用于将所述生成单元生成的通知消息发送给所述中间节点。
[0010]
在第一方面的第一种可能的实现方式中,所述确定单元用于确定所述订阅者需要获取的是所述被订阅资源的最新状态具体包括:所述确定单元,用于根据所述创建订阅资源请求中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0011]
在第一方面的第二种可能的实现方式中,所述确定单元用于确定所述订阅 者需要获取的是所述被订阅资源的最新状态具体包括:所述确定单元,用于根据本地保存的与所述订阅者相关策略信息中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0012]
第二方面,本发明实施例提供的实现订阅通知的中间节点包括:接收单元,用于接收到通知消息,所述通知消息包含更新后的被订阅资源的状态;确定单元,用于确定所述接收单元接收到的所述通知消息包含最新状态标识;保存单元,用于保存所述接收单元接收到的所述通知消息;确定单元,还用于确定本地保存的根据订阅资源生成的通知消息中的最新通知消息;发送单元,用于根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[0013]
在第二方面的第一种可能的实现方式中,所述中间节点还包括查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的;所述保存单元,用于保存所述接收单元接收到的所述通知消息具体为:所述保存单元,用于将所述接收单元接收到的所述通知消息以替换所述查找单元查找到的所述其他通知消息的方式保存到本地;所述确定单元,还用于确定本地保存的根据所述订阅资源生成的通知消息中的最新通知消息具体为:所述确定单元,还用于确定本地保存的根据所述订阅资源生成的通知消息为最新通知消息。
[0014]
在第二方面的第二种可能的实现方式中,所述中间节点还包括查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的;所述确定单元,还用于确定本地保存的根据订阅资源生成的通知消息中的最新通知消息具体为:所述确定单元,还用于确定本地保存的所述通知消息和所述查找单元查找到的所述其他通知消息中的最新通知消息。
[0015]
结合第二方面的第一可能和第二可能的实现方式,在第三种可能的实现方式中,所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识;所述 查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元,用于查找到本地保存的其他通知消息,所述接收单元接收到的所述通知消息和所述其他通知消息包含的最新状态标识相同。
[0016]
结合第二方面的第一可能和第二可能的实现方式,在第四种可能的实现方式中,所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识;所述查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元,用于查找到本地保存的其他通知消息,所述接收单元接收到的所述通知消息和所述其他通知消息包含的最新状态标识以及消息发送源地址相同。
[0017]
结合第二方面的第一可能和第二可能的实现方式,在第五种可能的实现方式中,所述查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源的生成具体为:所述查找单元,用于查找到本地保存的其他通知消息,所述接收单元接收到的所述通知消息和所述其他通知消息包含的订阅资源通用资源标识符(Universal Resource Identifier,URI)相同。
[0018]
第三方面,本发明实施例提供的订阅通知的实现方法包括:接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识;根据所述创建订阅请求创建订阅资源;确定所述订阅者需要获取的是所述被订阅资源的最新状态,为所述创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态;当所述被订阅资源的状态发生更新时,根据所述订阅资源生成通知消息并发送给中间节点,所述通知消息包含所述更新后的被订阅资源的状态以及所述最新状态标识,以便于所述中间节点接收到所述通知消息后,根据所述最新状态标识在满 足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息。
[0019]
在第三方面的第一种可能的实现方式中,所述确定所述订阅者需要获取的是所述被订阅资源的最新状态具体为:根据所述创建订阅资源请求中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0020]
在第三方面的第二种可能的实现方式中,所述确定所述订阅者需要获取的是所述被订阅资源的最新状态具体为:根据本地保存的与所述订阅者相关策略信息中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0021]
第四方面,本发明实施例提供的订阅通知的实现方法包括:接收到通知消息,所述通知消息包含更新后的被订阅资源的状态,确定所述通知消息包含最新状态标识;保存所述接收到的通知消息;确定本地保存的根据订阅资源生成的通知消息中的最新通知消息;根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[0022]
在第四方面的第一种可能的实现方式中,所述保存所述接收到的通知消息具体包括:查找到本地保存有其他通知消息后,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的,将所述接收到的通知消息以替换所述其他通知消息的方式保存到本地;所述确定本地保存的根据订阅资源生成的通知消息中的最新通知消息具体包括:确定本地保存的根据所述订阅资源生成的通知消息为最新通知消息。
[0023]
在第四方面的第二种可能的实现方式中,所述确定本地保存的根据订阅资源生成的通知消息中的最新通知消息具体包括:查找到本地保存有其他通知消息后,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的,确定本地保存的所述通知消息和所述其他通知消息中的最新通知消息。
[0024]
结合第四方面的第一可能和第二可能的实现方式,在第三种可能的实现方 式中,所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识;所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新状态标识相同。
[0025]
结合第四方面的第一可能和第二可能的实现方式,在第四种可能的实现方式中,所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识;所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新状态标识以及消息发送源地址相同。
[0026]
结合第四方面的第一可能和第二可能的实现方式,在第五种可能的实现方式中,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的订阅资源通用资源标识符(Universal Resource Identifier,URI)相同。
[0027]
由上述本发明的实施例提供的技术方案可以看出,通过接收订阅者的创建订阅资源请求,根据所述创建订阅请求创建订阅资源;确定所述订阅者需要获取的是所述被订阅资源的最新状态,为所述创建的订阅资源分配最新状态标识;当所述被订阅资源的状态发生更新时,根据所述订阅资源生成通知消息并发送给中间节点,所述通知消息包含所述最新状态标识,以便于所述中间节点接收到所述通知消息后,根据所述最新状态标识向订阅者只发送根据所述订阅资源生成的最新通知消息。对于只关心被订阅资源最新状态的订阅者,可以避免在一个连接中将多个根据同一订阅资源发送的通知消息同时发送给该订阅者,从而节省网络资源和该订阅者的计算资源。

附图说明

[0028]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0029]
图1为现有技术M2M系统结构示意图;
[0030]
图2为本发明实施例提供的订阅通知的实现系统结构图;
[0031]
图3为本发明实施例提供的实现订阅通知的Hosting CSE结构图;
[0032]
图4为本发明实施例提供的实现订阅通知的中间节点结构图;
[0033]
图5为本发明一个实施例提供的订阅通知的实现方法流程图;
[0034]
图6为本发明另一个实施例提供的订阅通知的实现方法流程图;
[0035]
图7为本发明一个实施例提供的订阅通知的实现信令流程图;
[0036]
图8为本发明另一个实施例提供的订阅通知的实现信令流程图;
[0037]
图9为本发明实施例提供的基于计算机系统的Hosting CSE结构图;
[0038]
图10为本发明实施例提供的基于计算机系统的中间节点结构图。

具体实施方式

[0039]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]
本发明实施例提供了一种订阅通知的实现系统,参考图2,所述订阅通知的实现系统200包括:
[0041]
托管公共服务实体hosting CSE 201,用于接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识;根据所述创建订阅请求创建订阅资源;确定所述订阅者需要获取的是所述被订阅资源的最新状态,为 所述创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态;当所述被订阅资源的状态发生更新时,根据所述订阅资源生成通知消息并发送给中间节点,所述通知消息包含所述更新后的被订阅资源的状态以及所述最新状态标识,以便于所述中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息;和
[0042]
中间节点202,用于接收到通知消息,所述通知消息包含更新后的被订阅资源的状态,确定所述通知消息包含最新状态标识;保存所述接收到的通知消息;确定本地保存的根据订阅资源生成的通知消息中的最新通知消息;根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[0043]
其中,所述订阅通知的实现系统200中的中间节点可以有一个或者多个,即中间节点可以连接到其他的中间节点,且它们在本发明的订阅通知实现过程中执行的操作一样。
[0044]
本发明一个实施例提供了用于实现订阅通知的托管公共服务实体Hosting CSE,请参照图3,该Hosting CSE 300包括:
[0045]
接收单元301,用于接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识;
[0046]
资源创建单元302,用于根据所述接收单元301接收到的创建订阅资源请求而创建订阅资源;
[0047]
确定单元303,用于确定所述订阅者需要获取的是所述被订阅资源的最新状态;
[0048]
分配单元304,用于在所述确定单元303确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元302创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源 的最新状态;
[0049]
生成单元305,用于当所述被订阅资源的状态发生更新时,根据所述资源创建单元创建的订阅资源生成通知消息,所述通知消息包含所述更新后的被订阅资源的状态以及所述分配单元分配的最新状态标识,以便于中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息;
[0050]
发送单元306,用于将所述生成单元305生成的通知消息发送给所述中间节点。
[0051]
可选的,确定单元303用于确定所述订阅者需要获取的是所述被订阅资源的最新状态具体包括:确定单元303,用于根据所述创建订阅资源请求中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0052]
可选的,确定单元303用于确定所述订阅者需要获取的是所述被订阅资源的最新状态具体包括:确定单元303,用于根据本地保存的与所述订阅者相关策略信息中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0053]
可选的,分配单元304用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态进一步包括:所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识。
[0054]
可选的,分配单元304用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态进一步包括:所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识。
[0055]
可选的,分配单元304用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态进一步包括:所有的订阅资源具有相同的最新状态标识。
[0056]
可选的,发送单元306用于将所述生成单元生成的通知消息发送给所述中间节点具体包括:所述发送单元306,用于将所述生成单元305生成的通知消息直接封装在HTTP消息中发送给所述中间节点,或者在根据所述通知消息生成存储转发资源的资源表述后,将所述资源表述封装在Restful消息中发送给所述中间节点。
[0057]
本发明一个实施例提供了用于实现订阅通知的中间节点,请参照图4,该中间节点400包括:
[0058]
接收单元401,用于接收到通知消息,所述通知消息包含更新后的被订阅资源的状态;
[0059]
确定单元402,用于确定所述接收单元401接收到的所述通知消息包含最新状态标识;
[0060]
保存单元404,用于保存所述接收单元401接收到的所述通知消息;
[0061]
确定单元402,还用于确定本地保存的根据订阅资源生成的通知消息中的最新通知消息;
[0062]
发送单元405,用于根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[0063]
可选的,所述中间节点400还包括查找单元403,用于查找到本地保存有其他通知消息,所述其他通知消息和所述接收单元401接收到的通知消息是根据相同的订阅资源生成的;所述保存单元404,用于保存所述接收单元401接收到的所述通知消息具体为:所述保存单元404,用于将所述接收单元401接收到的所述 通知消息以替换所述查找单元403查找到的所述其他通知消息的方式保存到本地;所述确定单元402,还用于确定本地保存的根据所述订阅资源生成的通知消息中的最新通知消息具体为:所述确定单元402,还用于确定本地保存的根据所述订阅资源生成的通知消息为最新通知消息。
[0064]
可选的,中间节点400还包括查找单元403,用于查找到本地保存有其他通知消息,所述其他通知消息和所述接收单元401接收到的通知消息是根据相同的订阅资源生成的;所述确定单元402,还用于确定本地保存的根据订阅资源生成的通知消息中的最新通知消息具体为:所述确定单元402,还用于确定本地保存的所述通知消息和所述查找单元403查找到的所述其他通知消息中的最新通知消息。
[0065]
可选的,所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识;所述查找单元403,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元403,用于查找到本地保存的其他通知消息,所述接收单元401接收到的所述通知消息和所述其他通知消息包含的最新状态标识相同。
[0066]
可选的,所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识;所述查找单元403,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元403,用于查找到本地保存的其他通知消息,所述接收单元401接收到的所述通知消息和所述其他通知消息包含的最新状态标识以及消息发送源地址相同。
[0067]
可选的,所述查找单元403,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元403,用于查找到本地保存的其他通知消息,所述接收单元401接收到的所述通知消息和所述其他通知消息包含的订阅资源通用资源标识符(Universal Resource Identifier,URI)相同。
[0068]
在M2M网络中,M2M业务平台可以是各计算机,具有处理器的设备。M2M网关和M2M终端在设备上没有严格的区分,比如做网关的设备也可以做为终端,此外为各种终端设备,如手机,计算机,PDA,笔记本电脑,远程控制器,家用电器,各种仪器仪表、传感器等都可以做为M2M网络的网关或终端。在上述模块实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0069]
本发明实施例提供了订阅通知的实现方法,应用于部署被订阅资源的托管公共服务实体Hosting CSE,请参照图5,该方法包括:
[0070]
步骤501:接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识。
[0071]
步骤502:根据所述创建订阅请求创建订阅资源。
[0072]
步骤503:确定所述订阅者需要获取的是所述被订阅资源的最新状态,为所述创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态。
[0073]
具体的,确定所述订阅者需要获取的是所述被订阅资源的最新状态可以为:根据所述创建订阅资源请求中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态,或者,根据本地保存的与所述订阅者相关策略信息中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[0074]
具体的,所述最新状态标识可以是一个用于识别所述订阅资源且全局唯一的标识,或者,所述最新状态标识可以是一个用于识别所述订阅资源且在托管 公共服务实体hosting CSE上唯一的标识,或者,所有的订阅资源具有相同的最新状态标识。
[0075]
步骤504:当所述被订阅资源的状态发生更新时,根据所述订阅资源生成通知消息并发送给中间节点,所述通知消息包含所述更新后的被订阅资源的状态以及所述最新状态标识,以便于所述中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息。
[0076]
具体的,根据所述订阅资源生成通知消息并发送给中间节点可以为:根据所述订阅资源生成通知消息,并将所述通知消息直接封装在HTTP消息中发送给中间节点,或者根据所述通知消息生成存储转发资源的资源表述,将所述资源表述封装在Restful消息中发送给中间节点。
[0077]
本发明另一个实施例提供了订阅通知的实现方法,应用于转发通知消息的中间节点,请参照图6,该方法包括:
[0078]
步骤601:接收到通知消息,所述通知消息包含更新后的被订阅资源的状态,确定所述通知消息包含最新状态标识。
[0079]
步骤602:保存所述接收到的通知消息。
[0080]
步骤603:确定本地保存的根据订阅资源生成的通知消息中的最新通知消息。
[0081]
可选的,当步骤602中保存所述接收到的通知消息具体包括:查找到本地保存有其他通知消息后,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的,将所述接收到的通知消息以替换所述其他通知消息的方式保存到本地;本步骤具体为:确定本地保存的根据所述订阅资源生成的通知消息为最新通知消息。
[0082]
可选的,本步骤具体为:查找到本地保存有其他通知消息后,所述其他通 知消息和所述通知消息是根据相同的订阅资源生成的,确定本地保存的所述通知消息和所述其他通知消息中的最新通知消息。
[0083]
其中,所述最新状态标识具体为一个用于识别所述订阅资源且全局唯一的标识,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新状态标识相同;或者,所述最新状态标识具体为一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新状态标识以及消息发送源地址相同;或者,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的订阅资源通用资源标识符(Universal Resource Identifier,URI)相同。
[0084]
步骤604:根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[0085]
在所述满足消息发送条件时只发送所述最新通知消息之后,还包括将本地保存的根据所述订阅资源生成的通知消息删除。
[0086]
本发明实施例提供了实现订阅通知的信令流程图,请参照图7示。
[0087]
在本实施例中,App1注册到其本地CSE上,该CSE为App1创建注册资源,并为该注册资源分配ID,然后生成该注册资源的URI,并将该注册资源URI返回给App1。其中该注册资源ID是一个全局唯一的字符串,例如application1,注册资源URI由注册资源ID和该本地CSE的URI组成。因此,该注册资源URI也是一个全局唯一的字符串,注册资源ID和注册资源URI均可以是该注册资源的唯一 标识。例如,在本实施例中App1的本地CSE URI是http://example.com/gateway1,则该注册资源URI是http://example.com/gateway1/application1。并且,App1在注册过程或注册结束后设置该注册资源的访问权限,允许包含App2的其他用户访问、订阅该注册资源。在此,该本地CSE被称作App1的Hosting CSE。因此,当App2访问该Hosting CSE时,可以发现App1在Hosting CSE上的注册资源,在获取所述注册资源的唯一标识后订阅所述注册资源,并且订阅者App2希望每次接收到的是该注册资源的最新状态。具体的实现过程如下:
[0088]
步骤701:订阅者App2向自身的注册网关CSE2发送创建订阅资源请求,该创建订阅资源请求中包含被订阅资源的唯一标识以及订阅者App2的唯一标识。
[0089]
在本实施中,上述的被订阅资源也就是App1在Hosting CSE上的注册资源,因此,上述被订阅资源的唯一标识,也就是App1在Hosting CSE上的注册资源的唯一标识。
[0090]
可选的,该创建订阅资源请求中还可以包括订阅条件。
[0091]
可选的,App2通过在所述创建订阅资源请求中包含指示信息,以指示订阅者需要获取的是被订阅资源的最新状态;或者App2事先访问M2M业务提供商的设置系统,在配置策略信息中添加指示信息;又或App2在与M2M业务提供商签约时,约定App2只获取被订阅资源的最新状态信息,M2M业务提供商在配置策略信息中添加指示信息;又或,对被订阅资源来说其最新产生的数据才有意义,比如智能家居中用于显示电器开关的状态的数据,这样被订阅资源所在的Hosting CSE或M2M业务提供商会在配置策略信息中添加指示信息,以指示App2需要获取的是被订阅资源的最新状态,所述配置策略信息可以保存在Hosting CSE上。
[0092]
其中,在所述创建订阅资源请求中或配置策略信息包含指示信息,以指示订阅者需要获取的是被订阅资源的最新状态,具体的可以是:通过在所述创建 订阅资源请求中或者配置策略信息中增加一个参数RepeatCheck且该参数的值为指定的有效值来指示订阅者需要获取的是被订阅资源的最新状态,该参数可以是布尔型、整形、字符串类型或其他类型。例如,在本实施例中,增加的参数RepeatCheck为布尔型,当参数值为TRUE指示订阅者只获取被订阅资源的最新状态。
[0093]
步骤702:CSE2接收到所述创建订阅资源请求后,根据所述创建订阅请求将所述创建订阅请求转发到具有App1的注册资源(即被订阅资源)的Hosting CSE。具体的,CSE2通过该创建订阅资源请求中携带的被订阅资源唯一标识转发到具有该被订阅资源的Hosting CSE。
[0094]
步骤703:Hosting CSE接收到所述创建订阅资源请求后创建订阅资源,并在确定订阅者需要获取的是被订阅资源的最新状态后,为所述订阅资源分配最新状态标识。为该订阅资源分配订阅资源ID并生成订阅资源URI,并保存该订阅资源和被订阅资源之间的关联关系。
[0095]
其中,分配的订阅资源ID是一个在Hosting CSE中唯一的字符串,例如subscriptionB,订阅资源URI由被订阅资源URI和订阅资源ID组成,因为被订阅资源URI是一个全局唯一的字符串,故订阅资源URI也是一个全局唯一的字符串。例如,在本实施例中,订阅资源URI的值是http://example.com/gateway1/application1/subscriptionB。具体的,通过将创建的订阅资源subscriptionB作为被订阅资源application1的资源树的子节点来保存subscriptionB和application1两者之间的关联关系。其中,所述创建的订阅资源包括所述创建订阅资源请求中携带的被订阅资源的唯一标识和App2的唯一标识。可选的,当该创建订阅资源请求中包含订阅条件时,订阅资源还包含该订阅条件。
[0096]
其中,所述Hosting CSE确定订阅者需要获取的是被订阅资源的最新状态具体为:根据所述创建订阅资源请求中包含的指示信息确定App2需要获取的是被 订阅资源的最新状态,或者根据本地保存的与所述App2相关策略信息中包含的指示信息确定App2需要获取的是被订阅资源的最新状态。具体的,所述Hosting CSE通过检查所述创建订阅资源请求中或所述策略信息中是否具有参数RepeatCheck并且该参数是否为指定的有效值来判断App2需要获取的是被订阅资源的最新状态。例如,在本实施例中,通过确定携带布尔型参数RepeatCheck且其值为True来确定App2需要获取被订阅资源的最新状态。
[0097]
在本实施例的第一个例子中,所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识。具体的,该全局唯一的最新状态标识可以是订阅资源URI,也可以是其他的字符串。
[0098]
在本实施例的第二个例子中,所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识。具体的,该唯一的最新状态标识可以是订阅资源ID,也可以是其他的字符串。
[0099]
在本实施例的第三个例子中,所有的订阅资源具有相同的最新状态标识,具体的,该最新状态标识可以是一个指定字符串。
[0100]
其中,在为所述订阅资源分配最新状态标识后,Hosting CSE可以将该最新状态标识作为该订阅资源的属性或者创建一张表以保存该订阅资源与该最新状态标识的关联关系。
[0101]
步骤704:当App1发生状态更新时,向Hosting CSE发送状态更新请求。
[0102]
具体的,App1发生状态更新包括应用注销和App1属性发生改变。具体的,所述状态更新请求中包含Hosting CSE为App1的注册资源所分配的注册资源URI。在本发明实施例中,所述注册资源URI也就是被订阅资源URI。
[0103]
步骤705:Hosting CSE接收到所述状态更新请求后更新被订阅资源的状态,根据所述订阅资源生成第一通知消息后发送给中间节点,并且在所述第一通知消息中包含所述更新后的被订阅资源的状态以及最新状态标识。
[0104]
具体地,该步骤包括:Hosting CSE接收到所述状态更新请求后,根据所述 状态更新请求中携带的被订阅资源URI,更新所述被订阅资源的状态。并且,Hosting CSE根据被订阅资源与订阅资源的对应关系找到所述订阅资源,确定所述订阅资源包含最新状态标识后,根据所述订阅资源生成第一通知消息,所述第一通知消息中包含发送源地址(即Hosting CSE URI)以及接收方地址(即App2 URI)以及订阅资源URI,并且,在所述第一通知消息中包含所述更新后的被订阅资源的状态以及所述最新状态标识。具体的,该第一通知消息可以为原语格式的消息,其中发送源地址Hosting CSE URI、接收方地址App2 URI以及最新状态标识包含在所述第一通知消息的属性部分,订阅资源URI以及更新后的被订阅资源的状态包含在所述第一通知消息的资源部分,可选的,所述第一通知消息的资源部分可以包含所述更新后的被订阅资源。可选的,当所述订阅资源中包含订阅条件时,确定被订阅资源状态的改变满足所述订阅条件后才生成所述第一通知消息。其中,接收方地址可以是根据所述订阅资源的ContactURI获取的。Hosting CSE在生成第一通知消息后,查询路由表获取下一跳为中间节点后,将所述第一通知消息发送到所述中间节点。
[0105]
本步骤中,在将第一通知消息发送给中间节点之前,Hosting CSE根据本地保存的发送配置信息确定第一通知消息的下发方式,具体的,可以采用以下两种下发方式:方式1、直接将第一通知消息封装在超文本转移协议(HTTP-Hypertext transfer protocol,HTTP)消息中下发,例如,通过HTTP POST发送所述第一通知消息,优选的,将所述原语格式的第一通知消息的属性部分封装到HTTP的消息头中,第一通知消息的资源部分封装到HTTP的消息体中;方式2、根据第一通知消息生成存储转发资源的资源表述后,将生成的存储转发资源的资源表述封装在Restful消息中下发,例如,生成<delivery>的资源表述,将第一通知消息作为<delivery>的资源表述的data属性值,然后将所述<delivery>的资源表述封装在Restful Create消息中下发。
[0106]
步骤706:中间节点接收到所述第一通知消息并确定该第一通知消息中包含 最新状态标识后,检查本地是否保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息。在实施例中,由于这是App1被订阅后第一次状态更新,因此,本地未保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息,将所述第一通知消息保存在本地。
[0107]
在上述提到的本实施例的第一个例子中,所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识,则中间节点检查本地是否保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息具体为:确定中间节点是否保存有和所述第一通知消息包含相同的最新状态标识的其他通知消息。
[0108]
在上述提到的本实施例的第二个例子中,所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识,则中间节点检查本地是否保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息具体为:确定中间节点是否保存有和所述第一通知消息包含相同的最新状态标识以及消息发送源地址的其他通知消息。
[0109]
在上述提到的本实施例的第三个例子中,所有的订阅资源具有相同的最新状态标识,则中间节点检查本地是否保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息具体为:确定中间节点是否保存有和所述第一通知消息包含相同的订阅资源URI的其他通知消息。而且,在本实施例的第一个例子或第二个例子中,也可以采用该第三种方式检查本地是否保存有和所述第一通知消息根据相同订阅资源生成的其他通知消息。
[0110]
在本实施例的第一个例子中,本步骤首先判断出第一通知消息包含最新状态标识后,对于每个其他通知消息,要对该消息内容进行一次解析以获取最新状态标识并进行一次判断、即判断该获取到的最新状态标识是否和第一通知消息包含的最新状态标识相同;在本实施例的第二个例子中,本步骤首先判断出第一通知消息包含最新状态标识后,要进一步获取第一通知消息包含的消息发送源地址,对于每个其他通知消息,要对该消息内容进行一次解析以获取最新 状态标识和消息发送源地址并进行两次判断、即判断该获取到的最新状态标识是否和第一通知消息包含的最新状态标识相同以及该获取到的消息发送源地址是否和第一通知消息包含的消息发送源地址相同;在本实施例的第三个例子中,本步骤首先判断出第一通知消息包含最新状态标识后,要进一步获取第一通知消息包含的订阅资源URI,对于每个其他通知消息,要对该消息内容进行一次解析以获取订阅资源URI并进行一次判断、即判断该获取到的订阅资源URI是否和第一通知消息包含的订阅资源URI相同;因此,相比较而言,本实施例的第一个例子处理效率最高。
[0111]
在步骤705中采用方式1下发第一通知消息时,所述检查本地是否保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息具体为:在缓存队列中检查是否保存有和所述第一通知消息根据相同的订阅资源生成的其他通知消息;所述将所述第一通知消息保存在本地具体为:将第一通知消息保存在中间节点的缓存队列中。中间节点包含多个缓存队列,每个缓存队列用于保存下一跳CSE相同的通知消息,并且根据中间节点的转发存储策略为所述缓存队列设置关联的定时器;当向所述缓存队列中存放通知消息时,如果是该缓存队列中的第一个通知消息,则在存放该通知消息后启动所述缓存队列的定时器。
[0112]
在步骤705中采用方式2下发第一通知消息时,所述检查本地是否保存有与所述第一通知消息根据相同的订阅资源生成的其他通知消息具体为:在存储转发资源中检查是否保存有和所述第一通知消息根据相同的订阅资源生成的其他通知消息;所述将所述第一通知消息保存在本地具体为:在中间节点创建存储转发资源,将所述第一通知消息保存在所述存储转发资源的属性中,例如,创建<delivery>资源,将第一通知消息保存在<delivery>资源的data属性中。中间节点会根据转发存储策略为具有相同下一跳CSE的通知消息设置统一的定时器,并记录所述定时器与所述CSE、包含所述通知消息的存储转发资源的关联关系;每创建一个存储转发资源时,确定所述存储转发资源中包含的通知消息的 下一跳为所述CSE后,在记录信息中增加所述定时器与所述存储转发资源的关联关系;当在记录信息中增加定时器与存储转发资源的关联关系时、如果是该记录信息中的第一个存储转发资源则启动所述定时器。
[0113]
步骤707:App1再次发生状态更新,向Hosting CSE发送状态更新请求。
[0114]
该步骤的实现参考步骤704的详细描述。
[0115]
步骤708:Hosting CSE接收到所述状态更新请求后更新被订阅资源的状态,根据所述订阅资源生成第二通知消息后发送给中间节点,并且在所述第二通知消息中包含所述更新后的被订阅资源的状态以及最新状态标识。
[0116]
其中,该步骤中更新被订阅资源状态的描述参见步骤705;其中,Hosting CSE根据所述订阅资源生成第二通知消息、并且在所述第二通知消息中包含所述更新后的被订阅资源的状态以及最新状态标识的描述和步骤705中对第一通知消息的操作方式相同。
[0117]
其中,Hosting CSE发送第二通知消息的方式和步骤705中发送第一通知消息的方式相同。
[0118]
步骤707:中间节点接收到所述第二通知消息并确定包含最新状态标识后,检查本地是否保存有和所述第二通知消息根据相同的订阅资源生成的其他通知消息。在本实施例中,前述已经保存了第一通知消息,中间节点确定所述第一通知消息和所述第二通知消息根据相同的订阅资源生成后,将所述第二通知消息替换所述第一通知消息。
[0119]
其中,中间节点检查本地是否保存有和所述第二通知消息根据相同的订阅资源生成的其他通知消息的实现方式,和步骤706中检查本地是否保存有和所述第一通知消息根据相同的订阅资源生成的其他通知消息的实现方式相同。
[0120]
其中,当步骤708采用步骤705中的方式1下发第二通知消息时,所述将所述第二通知消息替换所述第一通知消息具体为:将缓存队列中的所述第一通知消息替换为所述第二通知消息;当步骤708采用步骤705中的方式2下发第二通知消 息时,所述将所述第二通知消息替换所述第一通知消息具体为:将存储转发资源中的所述第一通知消息替换为所述第二通知消息。
[0121]
步骤710:当满足消息发送条件时,中间节点将本地保存的通知消息发送给下一跳CSE,在本实施例中,本地保存的是第二通知消息,中间节点将所述第二通知消息发送给CSE2。
[0122]
可选的,步骤706之后直接进入步骤710,即步骤706之后没有收到根据所述订阅资源生成的其他通知消息就满足消息发送条件,本地保存的是第一通知消息,中间节点将所述第一通知消息发送给CSE2。
[0123]
可选的,本步骤之前中间节点又接收到根据所述订阅资源生成的一个或多个其他通知消息,本地保存的是所述其他通知消息中的最后一个,中间节点将所述其他通知消息中的最后一个发送给CSE2。
[0124]
当步骤705中采用方式1下发第一通知消息时,该步骤具体为:当缓存队列关联的定时器到期后,将所述缓存队列中保存的通知消息发送给下一跳CSE,并将所述缓存队列关联的定时器清零以及将所述缓存队列中的通知消息删除。
[0125]
当步骤705中采用步骤2下发第一通知消息时,该步骤具体为:当存储转发资源关联的定时器到期后,将所述记录信息中记录的所有存储转发资源包含的通知消息发送给下一跳CSE,并将所述存储转发资源关联的定时器清零以及将所述存储转发资源删除。
[0126]
可选的,该中间节点将第二通知消息发送给CSE2前将经过第二中间节点,该第二中间节点将执行和本中间节点同样的操作,这里不再赘述。
[0127]
步骤711:CSE2接收到第二通知消息后发送给App2。
[0128]
具体的,网关CSE2根据第二通知消息的接收方地址判断App2注册在该网关上,直接将第二通知消息发送给App2。
[0129]
在该实施例中,通过Hosting CSE确定订阅者需要获取的是被订阅资源的最 新状态后,在发送给中间节点的通知消息中包含最新状态标识,以便中间节点在确定接收到的通知消息中包含最新状态标识后,替换掉本地保存的和所述通知消息根据相同的订阅资源生成的已有通知消息,可以保证中间节点只转发根据所述订阅资源生成的最新通知消息,从而避免了订阅者在一个连接中接收到根据同一个订阅资源发送的多条通知消息,节省了网络资源和计算资源。
[0130]
本发明另一个实施例提供了实现订阅通知的信令流程图,请参照图8示。
[0131]
在本实施例中,App1注册到其本地CSE上、设置注册资源的访问权限的过程参考图7对应实施例的详细描述。当App2访问Hosting CSE时,可以发现App1在Hosting CSE上的注册资源,在获取所述注册资源的唯一标识后订阅所述注册资源,并且订阅者App2希望每次接收到的是该注册资源的最新状态。具体的实现过程如下:
[0132]
步骤801-步骤805:参考图7对应实施例的步骤701-步骤705。
[0133]
步骤806:中间节点将所述第一通知消息保存在本地。
[0134]
具体的,所述将所述第一通知消息保存在本地的实现方式参考图7对应实施例的步骤706中将第一通知消息保存在本地的描述。
[0135]
步骤807-步骤808:参考图7对应实施例的步骤707-步骤708。
[0136]
步骤809:中间节点将所述第二通知消息保存在本地。
[0137]
具体的,所述将所述第二通知消息保存在本地的实现方式参考图7对应实施例的步骤706中将第一通知消息保存在本地的描述。
[0138]
步骤810:当满足消息发送条件时,中间节点确定本地保存的第一通知消息包含最新状态标识后,检查本地是否保存有和所述第一通知消息根据相同的订阅资源生成的其他通知消息,将所述其他通知消息和第一通知消息中的最新通知消息发送给下一跳CSE。在本实施例中,本地保存的是第一通知消息和第二通知消息,中间节点确定第二通知消息是最新通知消息后,将所述第二通知消 息发送给CSE2。
[0139]
可选的,步骤806之后直接进入步骤810,即步骤806之后没有收到根据所述订阅资源生成的其他通知消息就满足消息发送条件,本地只保存有第一通知消息,中间节点将所述第一通知消息发送给CSE2。
[0140]
可选的,本步骤之前中间节点又收到根据所述订阅资源生成的一个或多个其他通知消息,本地保存的是所述第一通知消息、第二通知消息和所述其他通知消息,中间节点将所述第一通知消息、第二通知消息和其他通知消息中的最新通知消息发送给CSE2。
[0141]
当步骤805中采用方式1下发第一通知消息时,所述当满足消息发送条件时具体为:当缓存队列关联的定时器到期后。
[0142]
当步骤805中采用方式2下发第一通知消息时,所述当满足消息发送条件时具体为:当存储转发资源关联的定时器到期后。
[0143]
具体的,所述检查本地是否保存有和所述第一通知消息根据相同的订阅资源生成的其他通知消息的实现参考图7对应实施例的步骤706中对该操作的描述。
[0144]
具体的,通知消息中包含时间戳信息,所述将所述其他通知消息和第一通知消息中的最新通知消息发送给下一跳CSE具体为:根据所述其他通知消息以及第一通知消息中包含的时间戳信息,将所述其他通知消息和第一通知消息中的最新通知消息发送给下一跳CSE。
[0145]
具体的,该步骤中在将所述其他通知消息和第一通知消息中的最新通知消息发送给下一跳CSE之后,还包括将本地保存的所述其他通知消息和第一通知消息删除
[0146]
可选的,该中间节点将第二通知消息发送给CSE2前将经过第二中间节点,该第二中间节点将执行和本中间节点同样的操作,这里不再赘述。
[0147]
步骤811:参考图7对应实施例的步骤711。
[0148]
在该实施例中,通过Hosting CSE确定订阅者需要获取的是被订阅资源的最新状态后,在发送给中间节点的通知消息中包含最新状态标识,中间节点保存所述通知消息,当需要发送所述通知消息时,中间节点确定所述通知消息中包含最新状态标识后,查找本地保存的和该通知消息根据相同的订阅资源生成的其他通知消息,将该通知消息和其他通知消息中最新的通知消息下发,可以保证中间节点只转发根据所述订阅资源生成的最新通知,从而避免了订阅者在一个连接中接收到根据同一个订阅资源发送的多条通知,节省了网络资源和计算资源。
[0149]
本发明实施例中的Hosting CSE可以基于计算机系统来实现,图5、图7、图8所示的方法均可在基于计算机系统的Hosting CSE来实现。图9示出了基于计算机系统来实现的Hosting CSE的实施例。本实施例中Hosting CSE可以包括:处理器901、存储器902和通信接口903,其中:
[0150]
通信接口903,用于与订阅者和中间节点通信。Hosting CSE与订阅者、中间节点之间交互的消息均通过通信接口903发送和接收。具体地,通信接口903用于接收订阅者的创建订阅资源请求以及向中间节点发送通知消息;存储器902用于存储程序指令;处理器901用于通信接口903从订阅者接收到创建订阅资源请求之后,调用存储器902中存储的程序指令,执行以下操作:根据所述创建订阅请求创建订阅资源;确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态;当所述被订阅资源发生更新时,根据所述订阅资源生成通知消息并发送给中间节点,所述通知消息包含所述更新后的被订阅资源的状态以及所述最新状态标识,以便于所述中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息。
[0151]
其中,处理器901可以是中央处理器(central processing unit,CPU)、专用集成电路(application-specific integrated circuit,ASIC)等。其中,本实施例中的Hosting CSE可以包括总线904。处理器901、存储器902以及通信接口903之间可通过总线904连接并通信。其中,存储器902可以包括:随机存取存储器(random access memory,RAM),只读存储器(read-only memory,ROM),磁盘等具有存储功能的实体。
[0152]
处理器901还可以用于执行方法实施例中图5、图7、图8描述的Hosting CSE的各步骤,本发明实施例在此不再详述。
[0153]
本发明实施例中的中间节点可以基于计算机系统来实现,图6、图7、图8所示的方法均可在基于计算机系统的中间节点来实现。图10示出了基于计算机系统来实现的中间节点的实施例。本实施例中中间节点可以包括:处理器1001、存储器1002和通信接口1003,其中:
[0154]
通信接口1003,用于与上一跳CSE通信。中间节点与上一跳CSE之间交互的消息均通过通信接口1003发送和接收。具体地,通信接口1003用于从上一跳CSE接收通知消息;存储器1002用于存储程序指令;处理器1001用于通信接口1003从上一跳CSE接收通知消息之后,调用存储器1002中存储的程序指令,执行以下操作:确定所述通知消息包含最新状态标识;保存所述接收到的通知消息;确定本地保存的根据订阅资源生成的通知消息中的最新通知消息;根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[0155]
其中,处理器1001可以是中央处理器(central processing unit,CPU)、专用集成电路(application-specific integrated circuit,ASIC)等。其中,本实施例中的中间节点可以包括总线1004。处理器1001、存储器1002以及通信接口1003之间可通过总线1004连接并通信。其中,存储器1002可以包括:随机存取存储器(random access memory,RAM),只读存储器(read-only memory,ROM),磁 盘等具有存储功能的实体。
[0156]
处理器1001还可以用于执行方法实施例中图6、图7、图8描述的中间节点的各步骤,本发明实施例在此不再详述。
[0157]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

权利要求书

[权利要求 1]
一种实现订阅通知的托管公共服务实体hosting CSE,其特征在于,所述hosting CSE包括: 接收单元,用于接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识; 资源创建单元,用于根据所述接收单元接收到的创建订阅资源请求而创建订阅资源; 确定单元,用于确定所述订阅者需要获取的是所述被订阅资源的最新状态; 分配单元,用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态; 生成单元,用于当所述被订阅资源的状态发生更新时,根据所述资源创建单元创建的订阅资源生成通知消息,所述通知消息包含所述更新后的被订阅资源的状态以及所述分配单元分配的最新状态标识,以便于中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时向所述订阅者只发送根据所述订阅资源生成的最新通知消息; 发送单元,用于将所述生成单元生成的通知消息发送给所述中间节点。
[权利要求 2]
根据权利要求1所述的托管公共服务实体hosting CSE,其特征在于,所述确定单元用于确定所述订阅者需要获取的是所述被订阅资源的最新状态具体包括:所述确定单元,用于根据所述创建订阅资源请求中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[权利要求 3]
根据权利要求1所述的托管公共服务实体hosting CSE,其特征在于,所述确定单元用于确定所述订阅者需要获取的是所述被订阅资源的最新状态具体 包括:所述确定单元,用于根据本地保存的与所述订阅者相关策略信息中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[权利要求 4]
根据权利要求1-3中任一所述的托管公共服务实体hosting CSE,其特征在于,所述分配单元用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态进一步包括:所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识。
[权利要求 5]
根据权利要求1-3中任一所述的托管公共服务实体hosting CSE,其特征在于,所述分配单元用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态进一步包括:所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识。
[权利要求 6]
根据权利要求1-3中任一所述的托管公共服务实体hosting CSE,其特征在于,所述分配单元用于在所述确定单元确定所述订阅者需要获取的是所述被订阅资源的最新状态后,为所述资源创建单元创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态进一步包括:所有的订阅资源具有相同的最新状态标识。
[权利要求 7]
根据权利要求1-6中任一所述的托管公共服务实体hosting CSE,其特征在于,所述发送单元用于将所述生成单元生成的通知消息发送给所述中间节点具体包括:所述发送单元,用于将所述生成单元生成的通知消息直接封装在HTTP消息中发送给所述中间节点,或者在根据所述通知消息生成存储转发资源的资源表述后,将所述资源表述封装在Restful消息中发送给所述中间节点。
[权利要求 8]
一种实现订阅通知的中间节点,其特征在于,所述中间节点包括: 接收单元,用于接收到通知消息,所述通知消息包含更新后的被订阅资源的状态; 确定单元,用于确定所述接收单元接收到的所述通知消息包含最新状态标识; 保存单元,用于保存所述接收单元接收到的所述通知消息; 确定单元,还用于确定本地保存的根据订阅资源生成的通知消息中的最新通知消息; 发送单元,用于根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[权利要求 9]
根据权利要求8所述的中间节点,其特征在于, 所述中间节点还包括查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述接收单元接收到的通知消息是根据相同的订阅资源生成的; 所述保存单元,用于保存所述接收单元接收到的所述通知消息具体为:所述保存单元,用于将所述接收单元接收到的所述通知消息以替换所述查找单元查找到的所述其他通知消息的方式保存到本地; 所述确定单元,还用于确定本地保存的根据所述订阅资源生成的通知消息中的最新通知消息具体为:所述确定单元,还用于确定本地保存的根据所述订阅资源生成的通知消息为最新通知消息。
[权利要求 10]
根据权利要求8所述的中间节点,其特征在于, 所述中间节点还包括查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述接收单元接收到的通知消息是根据相同的订阅资源生成的; 所述确定单元,还用于确定本地保存的根据订阅资源生成的通知消息中的最 新通知消息具体为:所述确定单元,还用于确定本地保存的所述通知消息和所述查找单元查找到的所述其他通知消息中的最新通知消息。
[权利要求 11]
根据权利要求9或10所述的中间节点,其特征在于, 所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识; 所述查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元,用于查找到本地保存的其他通知消息,所述接收单元接收到的所述通知消息和所述其他通知消息包含的最新状态标识相同。
[权利要求 12]
根据权利要求9或10所述的中间节点,其特征在于, 所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识; 所述查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:所述查找单元,用于查找到本地保存的其他通知消息,所述接收单元接收到的所述通知消息和所述其他通知消息包含的最新状态标识以及消息发送源地址相同。
[权利要求 13]
根据权利要求9或10所述的中间节点,其特征在于,所述查找单元,用于查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源的生成具体为:所述查找单元,用于查找到本地保存的其他通知消息,所述接收单元接收到的所述通知消息和所述其他通知消息包含的订阅资源通用资源标识符(Universal Resource Identifier,URI)相同。
[权利要求 14]
根据权利要求8所述的中间节点,其特征在于,所述中间节点还包括删除单元,用于在所述发送单元只发送所述最新通知消息之后将所述本地保存的根据所述订阅资源生成的通知消息删除。
[权利要求 15]
一种订阅通知的实现方法,其特征在于,所述方法包括: 接收订阅者的创建订阅资源请求,所述创建订阅资源请求中包含被订阅资源的唯一标识; 根据所述创建订阅资源请求创建订阅资源; 确定所述订阅者需要获取的是所述被订阅资源的最新状态,为所述创建的订阅资源分配最新状态标识,所述最新状态标识用于指示所述订阅者需要获取的是所述被订阅资源的最新状态; 当所述被订阅资源的状态发生更新时,根据所述订阅资源生成通知消息并发送给中间节点,所述通知消息包含所述更新后的被订阅资源的状态以及所述最新状态标识,以便于所述中间节点接收到所述通知消息后,根据所述最新状态标识在满足消息发送条件时所述订阅者只发送根据所述订阅资源生成的最新通知消息。
[权利要求 16]
根据权利要求15所述的方法,其特征在于,所述确定所述订阅者需要获取的是所述被订阅资源的最新状态具体为:根据所述创建订阅资源请求中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[权利要求 17]
根据权利要求15所述的方法,其特征在于,所述确定所述订阅者需要获取的是所述被订阅资源的最新状态具体为:根据本地保存的与所述订阅者相关策略信息中包含的指示信息确定所述订阅者需要获取的是所述被订阅资源的最新状态。
[权利要求 18]
根据权利要求15-17中任一所述的方法,其特征在于,所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识。
[权利要求 19]
根据权利要求15-17中任一所述的方法,其特征在于,所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识。
[权利要求 20]
根据权利要求15-17中任一所述的方法,其特征在于,所有的订阅资源具有相同的最新状态标识。
[权利要求 21]
根据权利要求15-20中任一所述的方法,其特征在于,所述根据所述订阅资源生成通知消息并发送给中间节点包括:根据所述订阅资源生成通知消息,并将所述通知消息直接封装在HTTP消息中发送给中间节点,或者根据所述通知消息生成存储转发资源的资源表述,将所述资源表述封装在Restful消息中发送给中间节点。
[权利要求 22]
一种订阅通知的实现方法,其特征在于,所述方法包括: 接收到通知消息,所述通知消息包含更新后的被订阅资源的状态,确定所述通知消息包含最新状态标识; 保存所述接收到的通知消息; 确定本地保存的根据订阅资源生成的通知消息中的最新通知消息; 根据所述最新状态标识,在满足消息发送条件时只发送所述最新通知消息。
[权利要求 23]
根据权利要求22中所述的方法,其特征在于, 所述保存所述接收到的通知消息具体包括:查找到本地保存有其他通知消息后,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的,将所述接收到的通知消息以替换所述其他通知消息的方式保存到本地; 所述确定本地保存的根据订阅资源生成的通知消息中的最新通知消息具体包括:确定本地保存的根据所述订阅资源生成的通知消息为最新通知消息。
[权利要求 24]
根据权利要求22中所述的方法,其特征在于,所述确定本地保存的根据订阅资源生成的通知消息中的最新通知消息具体包括:查找到本地保存有其他通知消息后,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的,确定本地保存的所述通知消息和所述其他通知消息中的最新通知消息。
[权利要求 25]
根据权利要求23或24所述的方法,其特征在于, 所述最新状态标识是一个用于识别所述订阅资源且全局唯一的标识; 所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息 是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新状态标识相同。
[权利要求 26]
根据权利要求23或24所述的方法,其特征在于, 所述最新状态标识是一个用于识别所述订阅资源且在托管公共服务实体hosting CSE上唯一的标识; 所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新状态标识以及消息发送源地址相同。
[权利要求 27]
根据权利要求23或24所述的方法,其特征在于,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根据相同的订阅资源生成的具体为:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的订阅资源通用资源标识符(Universal Resource Identifier,URI)相同。
[权利要求 28]
根据权利要求22中所述的方法,其特征在于,所述方法之后还包括: 将所述本地保存的根据所述订阅资源生成的通知消息删除。

附图

[ 图 0001]  

[ 图 0002]  

[ 图 0003]  

[ 图 0004]  

[ 图 0005]  

[ 图 0006]  

[ 图 0007]  

[ 图 0008]  

[ 图 0009]  

[ 图 0010]