具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了更好的理解本发明中的说明性实施例,下面对本发明说明性实施例中的一些术语进行简单说明。
组CSE(commonserviceentity,通用服务实体)和成员CSE,组CSE上的组是由成员CSE组成的,组CSE上含有成员CSE的通用资源标识符URI,通过URI将命令分发到成员CSE上。
为了更好的理解本发明中的说明性实施例,下面对本发明说明性实施例中的主要思想进行简单说明。
实体组GroupHostingCSE是在接收到其实体成员MemberHostingCSE的通知消息后,才将接收到的所有的通知消息进行聚合处理,但每个实体成员的响应时间并不相同,导致组CSE不是在同一时间接收到所有的通知消息,如果存在成员上的订阅资源没有发生改变,该成员就不会向组CSE发送通知消息,从而导致组CSE无法触发该订阅资源的聚合处理,处于无限期的等待阶段,被通知者则无法获得订阅资源的更新。通过加设对组CSE的进行聚合处理的聚合时间,从而使组CSE不会处于无限期的等待接收状态,被通知者可以更快速的获知订阅资源的更新。
如图1所示,公开了一种聚合通知消息的方法,用于组CSE,包括:
S11、在聚合时间范围内,接收本组CSE的至少一个成员发送的用于指示被订阅的资源发生变更的通知消息;
其中,所述聚合时间是用于限制聚合所述成员发送的所述通知消息的时间。
S12、当到达所述聚合时间时或接收到全部成员发送的所述通知消息时,将接收到的所述通知消息聚合发送给至少一个被通知者。
其中,被通知者可以是资源订阅者指定的被通知者,也可以是该资源订阅者和/或其他订阅者。
例如聚合时间为5分钟,组CSE在达到5分钟时,将接收到的所有通知消息进行聚合处理,并发送给被通知者;或者,组CSE在5分钟内接收到了其下所有成员发送的通知消息,则将接收到的所有通知消息进行聚合处理,并发送给被通知者。
组CSE无需无限期的处于接收等待状态,有效的减小了系统负担,提高了聚合效率,使用户的体验得到改善。
在一些说明性实施例中,在所述接收本组CSE的至少一个成员发送的用于指示被订阅的资源发生变更的通知消息之前,还包括:
接收资源订阅者发送的用于订阅资源的请求消息;其中,所述请求消息中包含待创建的订阅资源的标识;
分发所述用于订阅资源的请求消息到成员CSE,成员CSE根据所述请求消息中的所述待创建的订阅资源的标识,创建订阅资源。
在一些说明性实施例中,所述聚合时间是本组CSE设置的,一种方式是由本组CSE提供统一的聚合时间,即对于多组订阅资源都采用此聚合时间进行约束;另一种方式是本组CSE为每组订阅资源分别设置一个聚合时间,即对于每组订阅资源都具有一个独立的聚合时间进行约束。
在一些说明性实施例中,所述聚合时间也可以是所述资源订阅者在所述请求消息中提供的。
在一些说明性实施例中,所述聚合时间是以接收到所述订阅资源的第一个通知消息时开始计时。
在一些说明性实施例中,接收到的所述通知消息中包含有所述订阅资源的标识。
在一些说明性实施例中,所述当到达所述聚合时间时或接收到全部成员发送的所述通知消息时,将接收到的所述通知消息聚合发送给被通知者,具体包括以下两种情况:
1)、当到达所述聚合时间时,将接收到的具有相同订阅资源的标识的通知消息聚合发送给所述被通知者;例如组CSE具有10个成员,在对于资源A的聚合时间内,接收到资源A的5个通知消息,资源B的3个通知消息,聚合时间达到时,将资源A的5个通知消息聚合发送给被通知者。
2)、在所述聚合时间范围内,接收到全部成员发送的、且其中具有相同订阅资源的标识的通知消息聚合发送给所述被通知者,例如组CSE具有10个成员,在对于资源A的聚合时间内,接收到资源A的10个通知消息,将接收到的资源A的10个通知消息聚合发送给被通知者。其中,组CSE的每个成员对于一个资源只发送一个通知消息。
在一些说明性实施例中,在所述聚合时间开始计时之前,还包括:建立所述被订阅的资源的标识与所述聚合时间之间的匹配关系并存储。
在一些说明性实施例中,所述聚合时间是以接收到第一个通知消息之后开始计时的过程,可以包括:解析出接收到的每个通知消息中的资源的标识,找到该资源的标识对应的配对关系,若该配比关系为非锁定状态时,以该配对关系中的聚合时间开始计时,并对该配对关系进行禁止再次被访问的锁定。若该配比关系为锁定状态时,等待所述聚合时间到时,或在所述聚合时间到时前,等待所有成员的通知消息到达,然后聚合所述通知消息。处于“锁定状态”的配对关系无法再次被访问或者处于“锁定状态”的配对关系可以被访问,以及获取,但是无法该配对关系中的聚合时间再次开始计时,例如在配对关系被锁定时,锁定计时器,在聚合结束之前无法再次启动该计时器;处于“非锁定状态”的配对关系可以被访问,以及获取其聚合时间。例如当组CSE接收到资源A的第一个通知消息时,通过其中的资源标识A,找到与资源标识A对应的配对关系,获取该配对关系中的聚合时间,同时以该聚合时间开始计时,并对找到的该配对关系进行锁定处理。或者,当组CSE接收到资源A的第二个通知消息时,通过其中的资源标识A,找到与资源标识A对应的配对关系,发现该配对关系处于锁定状态,则将该通知消息按照资源标识A进行聚类,或者该通知消息放入资源标识A的待发送集合中。
在一些说明性实施例中,在将所述通知消息聚合发送给被通知者之后,对所使用的聚合时间对应的配对关系进行解锁处理。
通过建立配对关系,以及锁定处理和解析处理,保证了同一个资源的聚合时间的唯一,在配对关系处于锁定状态下,接收到其他通知消息不会重新启动聚合时间,保证了聚合系统的稳定性,以及可靠性。
在一些说明性实施例中,在所述创建订阅资源之后,还包括:接收包含有订阅资源的标识的删除消息;根据所述资源的标识删除订阅消息。
在一些说明性实施例中,在所述接收包含订阅资源的标识的删除消息之后,还包括:判断所述删除消息中的资源的标识是否具有对应的所述配对关系;若是,则删除该配对关系。
在一些说明性实施例中,所述请求消息中还具有至少一个所述被通知者的通知地址;所述将接收到的所述通知消息聚合发送给被通知者,具体包括:按照所述通知地址发送至相应的所述被通知者。
如图2所示,在一些说明性实施例中,公开了一种聚合通知消息的方法,包括:
S21、资源订阅者向组CSE发生请求消息;其中,请求消息中包含有操作属性:创建;资源属性:订阅;以及待创建的订阅资源的标识、聚合时间和至少一个被通知者的访问地址;
S22、组CSE检测请求消息,确定该请求消息用于创建订阅资源,提取订阅资源的标识和聚合时间,建立该资源标识与聚合时间之间的配对关系,将该配对关系进行存储;(此时配对关系为非锁定状态)
S23、创建订阅资源;
S24、被订阅的资源发生变更;
S25、被订阅的资源发生变更所在的成员向组CSE发送通知消息;其中,该通知消息中包含有订阅资源的标识;
S26、组CSE接收到通过消息后,根据该通知消息中的资源标识找到存储的、相应的配对关系,获取其中的聚合时间,计时器以该聚合时间开始计时,并锁定该配对关系;
S27、计时器到时或者在计时器到时之前接收到全部成员发送的所述通知消息时,将接收到的所述通知消息进行聚合处理,并对使用的配对关系进行解锁处理;
S28、将经过聚合处理后的通知消息发送给至少一个被通知者。
如图3所示,在一些说明性实施例中,公开了一种资源控制方法,用于在创建资源订阅者订阅的资源之后,包括:
S31、资源订阅者向组CSE发送请求消息;其中,该请求消息中的操作属性:删除;资源属性:订阅资源,还包含有订阅资源的标识;
S32、组CSE根据请求消息中的操作属性和资源属性确定该请求消息用于删除订阅资源,根据其中的订阅资源标识查找组CSE上是否存储有对应的配对关系;若有,则删除该配对关系;若无,则继续后续处理。
S33、根据资源标识删除订阅资源。
如图4所示,在一些说明性实施例中,公开了一种聚合通知消息的装置100,用于组通用服务实体CSE,包括:在聚合时间范围内,接收本组的至少一个成员发送的用于指示被订阅的资源发生变更的通知消息的第一接收模块101;当到达所述聚合时间时或接收到全部成员发送的所述通知消息时,将接收到的所述通知消息聚合发送给至少一个被通知者的聚合模块102。
在一些说明性实施例中,所述装置还包括:接收资源订阅者发送的用于订阅资源的请求消息的第二接收模块103;其中,所述请求消息中包含待创建的订阅资源的标识。
在一些说明性实施例中,所述装置还包括:建立所述请求消息中的所述订阅资源的标识和所述聚合时间的配对关系并存储的配对模块104。
在一些说明性实施例中,接收到的所述通知消息中包含有所述订阅资源的标识。
在一些说明性实施例中,所述装置还包括:在接收到所述通知消息之后,提取出该所述通知消息中的所述订阅资源的标识,找到与该标识对应的聚合时间,并开始计时的计时器模块105。
在一些说明性实施例中,所述还包括:将与所述订阅资源对应的所述配对关系设置为锁定状态,在所述聚合结束之前,禁止以该配对关系中的聚合时间再次计时的锁定模块106;当与所述订阅资源对应的所述配对关系为锁定状态时,控制所述聚合模块等待所述聚合时间到时,或等待所有成员的通知消息到达,聚合所述通知消息控制模块107。
在一些说明性实施例中,所述装置还包括:在将所述通知消息聚合发送给被通知者之后,对所使用的聚合时间对应的配对关系进行解锁处理的解锁模块108。
在一些说明性实施例中,所述装置还包括:接收所述包含所述订阅资源的标识的删除消息的第三接收模块109。
在一些说明性实施例中,所述装置还包括:当判断所述删除消息中包含的所述订阅资源的标识具有对应的所述配对关系,删除该配对关系的删除模块110。
在一些说明性实施例中,所述聚合时间是本组设置的或是所述资源订阅者在所述请求消息中提供的。
在一些说明性实施例中,所述至少一个被通知者中包括所述资源订阅者。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。