首页 > 代码库 > 针对群组资源的操作方法、群组服务器
针对群组资源的操作方法、群组服务器
本发明提供了一种针对群组资源的操作方法、群组服务器和执行针对群组资源的操作的装置,通过在发送给成员设备的成员资源操作请求中携带操作请求标识,以便成员资源所属的成员设备根据所述操作请求标识判断成员设备存储的操作请求标识中是否包含所述操作请求标识,并根据判断结果处理成员资源操作请求。从而能够避对成员资源的操作请求进行重复处理或循环处理。
技术领域
[0001]本发明涉及机器通信(Machine-to-Machine Communications, M2M)技术领域,尤其涉及针对群组资源方法、群组服务器。
背景技术
[0002]机器通信(Machine-to-Machine Communications,M2M)是一种以机器智能交互为核心的、网络化的应用与服务。M2M技术通过在机器内部嵌入无线或有线通信模块以及应用处理逻辑,实现无需人工干预的数据通信,以满足用户对监控、指挥调度、数据采集和测量等方面的信息化需求。目前的M2M架构中,描述了一种面向群组资源的通信方法。该方法中,M2M应用、M2M平台、M2M终端、M2M网关以及M2M终端和M2M网关上所运行的每一个应用或第一个数据对象均被看做一种表述性状态转移(REpresentational State Transfer)风格的RESTful资源,并由通用资源标识符(Universal Resource Identifier, URI)来标识应用或数据对象,并通过构建各种群组资源对上述多个资源进行群组操作。
[0003] 在一些常见的M2M业务中,用户可能需要通过创建群组的方式同时对群组资源包含的M2M终端或网关等成员资源进行相同的操作。可以理解的,上述被创建的群组资源本身也是作为一种资源,群组资源包括群组资源本身的资源和群组资源包含的成员资源。其中,群组资源本身的资源可以是群组资源的标识,所属的群组服务器,状态(如是否为有状态的群组资源)等,群组资源包含的成员资源既可以是成员资源的列表,还可以是成员资源的相关信息在群组资源的映射。M2M群组资源中的成员资源可能归属于本地的群组服务器,也可能归属于远程的群组服务器。然而,在某些情况下,两个群组资源有可能互为成员资源。比如在智能安防系统中,片区派出所可以将相邻小区的监控群组设为包含彼此的监控群组,当出现报警情况时,可以根据实际情况相互支援;又比如,未来的智能家居系统中,用户可以对家里的电器(如电灯、门窗、抄表等)进行群组管理,如子女考虑到父母年纪大了,可以嵌套包含父母家中电器群组帮助其管理,下雨了帮忙关窗,晚上确认门窗关闭,关闭所有电器等,而父母考虑到子女工作忙碌,经常出差在外等情况,也可以嵌套包含子女家中电器群组,帮助子女照顾家庭。在另一种情况下,还有可能同一成员资源同时被两个群组资源包含。
[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] 由上述本发明的实施例提供的技术方案可以看出,通过在发送给成员设备的成员资源操作请求中携带操作请求标识,以便成员资源所属的成员设备根据所述操作请求标识判断成员设备存储的操作请求标识中是否包含所述操作请求标识,并根据判断结果处理成员资源操作请求。从而,可以避免后续成员设备重复处理成员资源操作请求。
具体实施方式
[0044] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045] 图1为本发明实施例提供的群组资源的示意图。具体的,群组资源group I包含的成员资源为:子群组资源Group 2,第一成员资源M1,第二成员资源M2 ;而第二群组资源Group 2包含的成员资源为:子群组资源Group I,第一成员资源Ml,第三成员资源M3。
[0046] 值得说明的是,本发明实施例中,由于同一群组服务器即可以在接收对成员资源的操作请求后生成操作请求标识,并发送携带操作请求标识的成员资源操作请求,又可以接收别的群组服务器发送过来的携带操作请求标识的成员资源操作请求。因此,为了名称的区分,将群组服务器或执行针对群组资源的操作的装置发送的成员资源操作请求称为第一成员资源操作请求,其中第一成员资源操作请求指示的操作请求标识为第一操作请求标识。由同一群组服务器或执行针对群组资源的操作的装置接收到的成员资源操作请求为第二成员资源操作请求,而第二成员资源操作请求携带的标识为第二操作请求标识。也就是说,第一成员资源操作请求和第二成员资源操作请求,以及第一操作请求标识和第二操作请求标识中的第一和第二仅仅是做名称上的区分,第一和第二本身没有技术上的意义。
[0047] 图2为本发明实施例提供的针对群组资源的操作方法的流程图,包括如下步骤:
[0048] 步骤201、接收对成员资源的操作请求;
[0049] 具体的,群组服务器接收针对群组资源中的成员资源的操作请求。其中,所述对成员资源的操作请求中包含成员资源所属群组资源的群组资源标识。
[0050] 例如:第一群组服务器接收到针对群组资源标识为Grpl的群组资源包含的的成员资源的访问请求:GET http: //gl.example, org/groups/grpl/membersContent/dataHTTP/1.1。其中,Grpl为群组资源标识,"membersContent"部分表明此请求为针对grpl对应的群组资源中所有成员资源的操作,"data"即为所述后缀的一个实例,用以表明该请求具体应该访问每个成员资源的"data"数据。当然,对成员资源的操作请求还可以是对成员资源的更新,删除等请求。在其它的可选方式中,群组资源标识还可以是指群组资源的名称,指示群组资源的URL等,本发明实施例在此不做限定。
[0051] 步骤202、针对所述对成员资源的操作请求生成操作请求标识;
[0052] 具体的,群组服务器可以根据群组资源标识,确定所述群组资源标识所标识的群组资源中包含子群组资源作为成员资源。作为本发明的实施例,这里的子群组资源是指作为成员资源被包含于一个群组资源中的群组资源,如图1中的被Group I包含的Group 2为Group I的子群组资源,而由于Group I同样也被Group 2包含,因此Group I也是Group2的子群组资源。在本发明实施例图1中的情况,群组资源Group I和Group 2形成群组嵌套。
[0053] 而群组服务器在确定所述群组资源标识所标识的群组资源中包含子群组资源作为成员资源时,可以根据群组资源包含的成员资源列表进行判断。
[0054] 如图1中Group I包含的成员资源列表具体为:
[0055] ml =?coap://dl.example, com/xxx/templ
[0056] m2 =?coap://gl.example, com/xxx/templ
[0057] Group 2 = http://gl.example, org/groups/grp2 ;
[0058] Group2包含的群组资源列表具体为:
[0059] ml =?coap://dl.example, com/xxx/templ
[0060] m3 =?coap://d2.example, org/xxx/templ
[0061] Groupl = http://gl.example, com/groups/grpI
[0062] 群组服务器则可以根据Group I包含的成员资源列表中包含的群组资源标识Grp2,确定Group I包含子群组资源Grp2作为成员资源。
[0063] 其中,被群组资源包含的子群组资源可以是设立于该群组服务器中的群组资源,也可以是设立于别的群组服务器中的群组资源(通常称之为远程群组资源)。而由上述图1还可以看出,群组资源之间还可以相互嵌套,即图1所述的Group 2作为Group I的子群组资源,同样的Group I也作为Group 2的子群组资源。
[0064] 步骤203、向所述成员资源所属的成员设备发送针对所述成员资源的操作请求,所述成员资源操作请求中包含所述操作请求标识;以便所述成员资源所属的成员设备根据所述操作请求标识判断成员设备存储的操作请求标识中是否包含所述操作请求标识,并根据判断结果处理成员资源操作请求。
[0065] 具体的,群组服务器根据群组资源包含的成员资源列表,向成员资源资源所属的成员设备发送成员资源操作请求。如果群组资源包含的成员资源列表中包含子群组资源,如图1所述,针对Group I的成员资源的操作请求,则群组服务器将成员资源操作请求发送给Group I包含的成员资源所属的成员设备,即子群组资源Group 2所属的群组服务器,Member I所属的设备和M ember 2所属的设备。
[0066] 在本发明所有的实施例中,如不作特别说明,M2M中的群组服务器可以为M2M平台,M2M网关,也可以为M2M设备。即在M2M网络中,只要具有业务中间件,可以存储和维护群组资源的设备、网关、和平台都可以作为群组服务器。此外,本发明实施例中的资源可以是M2M应用、M2M平台、M2M终端、M2M网关以及M2M终端和M2M网关上所运行的每一个应用或第一个数据对象等,群组嵌套也并不仅限于M2M业务领域中,其他包括邮件群组、通讯簿联系人群组等在内的其他关于群组嵌套以及成员重复包含的应用同样适用本发明方案。
[0067] 由上述本发明的实施例提供的技术方案可以看出,通过在发送给成员设备的成员资源操作请求中携带操作请求标识,以便成员资源所属的成员设备根据所述操作请求标识判断成员设备存储的操作请求标识中是否包含所述操作请求标识,并根据判断结果处理成员资源操作请求。图3为本发明实施例提供的群组服务器收到对成员资源的操作请求后进行处理的方法流程图,且请求中的操作请求标识为必选参数,包括如下步骤:
[0068] 步骤301、群组服务器接收到对群组资源的操作请求;
[0069] 具体的,对群组资源的操作请求可以为对成员资源的操作请求。该对成员资源的操作请求可以为步骤201中的对成员资源的访问请求,还可以是针对成员资源的更新请求以及其它的请求,本发明实施例在此不做限定,所述对成员资源的操作请求中包含成员资源所属群组资源的群组资源标识。
[0070] 可替代地,群组服务器接收到的对群组资源的操作请求可以为携带有REQ-1D的成员资源操作请求,其中,该成员资源操作请求中也可以携带成员资源作为子群组资源的子群组资源标识。
[0071] 步骤302、群组服务器确定对群组资源的操作请求中是否携带操作请求标识REQ-1D,若对群组资源的操作请求中没有携带REQ-1D,则对群组资源的操作请求为对群组资源的成员资源的操作请求且群组服务器执行步骤303,否则,对群组资源的操作请求为成员资源操作请求,并执行步骤303‘。
[0072] 步骤303、群组服务器针对所述对成员资源的操作请求生成REQ-1D,记录生成的REQ-1D。
[0073] 在本发明实施例中,群组服务器生成的REQ-1D是唯一指示对成员资源操作请求的标识。具体的,REQ-1D可以为对群组服务器的标识(如群组服务器的地址等)再加上由群组服务器生成的随机数进行哈希加密算法得到。
[0074] 而本发明实施例中,REQ-1D可以携带在对成员资源的操作请求中的消息头或消息体中,本发明实施例在此不做限定。
[0075] 此外,群组服务器在生成REQ-1D后,还需要存储生成的REQ-1D,具体的可将REQ-1D作为群组资源属性存储于群组资源中,比如requestTag,以表明第一群组服务器已处理过与REQ-1D对应的对成员资源的操作请求。
[0076] 步骤303‘、群组服务器确定接收到的对群组资源的操作请求中携带REQ-1D后(即确定对群组资源的操作请求为成员资源操作请求之后),将携带的REQ-1D与群组资源属性requestTag中记录的群组服务器已经处理过的REQ-1D进行比较,判断requestTag记录的列表中是否存储有与携带的REQ-1D相同的REQ-1D。如果成员资源操作请求中携带REQ-1D已存储在requestTag记录的列表中,则执步骤步304‘,否则执行步骤304。
[0077] 步骤304、如果携带REQ-1D的成员资源操作请求中并没有携带子群组资源标识,则群组服务器将执行携带REQ-1D的成员资源操作请求中指示的操作,并将成员资源操作请求中携带的REQ-1D存储到群组资源属性requestTag中;或如果携带REQ-1D的成员资源操作请求中还携带子群组资源标识,则向所述子群组资源标识所标识的子群组资源包含的成员资源所属的成员设备发送第三成员资源操作请求,并将成员资源操作请求中携带的REQ-1D存储到群组资源属性requestTag中。其中,第三成员资源操作请求根据第二成员资源操作请求生成,指向子群组标识所标识的子群组资源包含的各成员资源。
[0078] 当然,在群组资源中新增属性requestTag以记录成员资源操作请求中携带的REQ-1D只是一种记录REQ-1D的方法。此外,群组服务器还可以维护每个群组所处理过的请求REQ-1D列表,或者通过其他可行的方法来维护,本发明实施例在此不作限定。为了简单起见,以下的步骤和实施例中不再重复解释和强调,都以requestTag方法为例说明。
[0079] 步骤304‘、群组服务器确定成员资源操作请求中携带的REQ-1D已存储在requestTag记录的列表中,贝U表示与携带的REQ-1D对应的成员资源操作请求中指示的操作已被处理。群组服务器向发送成员资源操作请求的发送方(其它的群组服务器)返回错误响应(loop detected,检测到循环),指示该请求消息为重复发送。
[0080] 步骤305、群组服务器接收各成员设备返回的针对成员资源操作请求的响应消息,并汇聚各成员设备返回的响应消息。
[0081] 当然,如果群组服务器在接收到的响应消息中包含成员设备反回的错误响应,则群组服务器可以忽略各成员设备返回的错误响应;作为一种可选方式,群组服务器还可以汇聚这些错误响应。
[0082] 步骤306、群组服务器返回汇聚的响应消息,并结束本流程。
[0083] 图4为本发明实施例提供的又一针对群组资源的操作方法的流程图;与图3所提供的实施例不同的是,本实施中请求中的操作请求标识不是必选参数,群组服务器在确定收到群组资源的操作请求为对成员资源的操作请求后,还需要根据各种条件确定是否针对对成员资源的操作请求生成操作请求标识REQ-1D。图4所示的实施例具体包括如下步骤:
[0084] 步骤401、群组服务器接收到对群组资源的操作请求;
[0085] 具体的,对群组资源的操作请求可以为对成员资源的操作请求。该对成员资源的操作请求可以为步骤201中的对成员资源的访问请求,还可以是对针成员资源的更新请求以及其它的请求,本发明实施例在此不做限定,所述对成员资源的操作请求中成员资源所属群组资源的群组资源标识。
[0086] 或群组服务哭接收到的对群组资源的操作请求为携带有REQ-1D的成员资源操作请求,且成员资源操作请求也可以携带成员资源所属群组资源的群组资源标识。
[0087] 步骤402、群组服务器确定对群组资源的操作请求中是否携带操作请求标识REQ-1D,若对群组资源的操作请求中没有携带REQ-1D,则对群组资源的操作请求为对成员资源的操作请求并执行步骤402-1,否则,对群组资源的操作请求为成员资源操作请求,并执行步骤403‘。[0088] 步骤402-1、群组服务器判断接收到的操作请求是否为更新请求,如果是更新请求,执行步骤403,否则,执行步骤402-2 ;
[0089] 步骤402-2、群组服务器根据对成员资源的操作请求中携带的群组资源标识,确定群组资源标识所标识的群组资源是否包含子群组资源(subgroup)作为成员资源,如果群组资源标识所标识的的群组资源包含子群组资源(subgroup)作为成员资源,执行步骤402-3,否则,执行步骤404 ;
[0090] 步骤402-3、群组服务器确定群组资源包含的子群组资源(subgroup)是否为远程子群组资源(remote subgroup)。如是,执行步骤403,否则执行步骤402-4 ;
[0091] 本发明实施例中,远程子群组资源为由其它的群组服务器创建的群组资源,且该由其它群组服务器创建的群组资源作为对成员资源的操作请求中携带的群组资源标识所标识的群组资源的成员资源。例如,假设接收到的对成员资源的操作请求为:GET http://gl.example, org/groups/grp3/membersContent/data HTTP/1.1,则接收该成员资源操作请求的群组服务器为gl,该对成员资源的操作请求中携带的群组资源标识为:grp3 ;假设与群组资源标识grp3对应的群组资源Group 3包含的成员资源如下:
[0092] ml =?coap://dl.example, com/xxx/templ
[0093] m3 =?coap://d2.example, org/xxx/templ
[0094] Group 4 = http://g4.example, com/groups/grp4
[0095] 贝Ij群组月艮务器gl丰艮据成员资源Grp4 = http: //r4.example, com/Rroups/Rrp4石角定grp4对应的群组资源Group4所属的群组服务器为g4,而非gl。因此,Group3所包含的子群组资源Goup 4为远程子群组资源。即,步骤402-3中,群组服务器确定群组资源Group3包含的子群组资源(Goup 4)中包含远程子群组资源(Goup 4)。
[0096] 402-4、群组服务器确定对成员资源的操作请求中携带的群组资源标识所标识的群组资源(假设为群组资源)是否存在群组嵌套。也就是说,群组服务器确定群组资源所包含的成员资源中是否包含子群组资源,且子群组资源所包含的成员资源中是否包含群组资源。即对成员资源的操作请求中携带的群组资源标识所标识的群组资源是否与该群组资源包含的子群组资源互为子群组资源。进一步的,群组服务器获取群组资源所包含的成员资源列表,以及群组资源包含的成员资源包含子群组资源(假设为子群组资源)时的子群组资源(即子群组资源)包含的成员资源列表,再确定子群组资源所包含的成员资源中是否包含对成员资源的操作请求中携带的群组资源标识所标识的群组资源(即群组资源)。
[0097] 作为一种实施例,假设接收到的对成员资源的操作请求为=GEThttp: //gl.example, org/groups/grpl/membersContent/data HTTP/1.1。
[0098] 如图1中Group I包含的成员资源列表具体为:
[0099] ml =?coap://dl.example, com/xxx/templ
[0100] m2 =?coap://gl.example, com/xxx/templ
[0101] Group 2 = http://gl.example, org/groups/grp2:
[0102] Group2包含的群组资源列表具体为:
[0103] ml =?coap://dl.example, com/xxx/templ
[0104] m3 =?coap://d2.example, org/xxx/templ
[0105] Group I = http://gl.example, com/groups/grpI[0106] 则,群组资源Group I和Group 2分别存在群组嵌套。在本步骤中,群组服务器gl确定Groupl是否存在群组嵌套需要根据Group I包含的成员资源Group 2所包含的成员资源确定,此时要求群组服务器获取Group I包含的成员资源Group 2的成员资源列表。前述的Group 2所属的群组服务器与Group I所属的群组服务器均为gl,因此gl可以很容易获取Group 2包含的成员资源。
[0107] 假设,前述Group I包含的成员资源Group 2的访问地址为:Grp2 = http://g2.example.0rg/groups/grp2:贝U gl 还需要木艮据 Group 2 的访问地址 Grp2 = http://r2.example.0rR/Rroups/Rrp2从群组服务器gl获取Group 2包含的成员资源。作为一种可选方式,在执行本发明时,当群组服务器gl确定Group I包含的成员资源Group 2所属的群组服务器为g2时,则可直接根据步骤402-2确定群组资源Group I包含的子群组资源Group 2中包含远程子群组资源GroUp2,而无需再从GroUp2所属的群组服务器g2中获取Group2所包含的成员资源。
[0108] 步骤403与步骤303相同,本发明实施例在此不在详述。
[0109] 步骤403‘与步骤303‘相同,本发明实施例在此不在详述。
[0110] 步骤404与步骤304相同,本发明实施例在此不在详述。
[0111] 步骤404‘与步骤304‘相同,本发明实施例在此不在详述。
[0112] 步骤405与步骤305相同,本发明实施例在此不在详述。
[0113] 步骤406与步骤306相同,本发明实施例在此不在详述。
[0114] 值得说明的是:步骤402-1到步骤402-4是可选的,可以选择执行部分,并且步骤402-1和步骤402-2到步骤402-4之间没有明确的先后顺序。
[0115] 图5为本发明实施例提供的针对存在嵌套群组的群组资源的成员资源的操作请求的方法流程图。以图1所示的群组资源Group I为例包括如下步骤:
[0116] 步骤501、应用服务器给群组资源Groupl所在的第一群组服务器gl发送对群组资源Group I的操作请求。
[0117] 具体的,应用服务器可以为独立的应用服务器,还可以是M2M网络的应用服务器,或者是设置于网关中的应用模块,又或者是设置于M2M设备的应用模块,应用服务器还可以是群组资源所在宿主设备的业务能力层的模块。
[0118] 与步骤301类似,对群组资源Group I的操作请求可以是对成员资源的操作请求或携带有REQ-1D的成员资源操作请求。并且,对群组资源Group I的操作请求中携带GroupI的群组资源标识。本发明实施例假设对群组资源Group I的操作请求为对成员资源的操作请求。此外,对成员资源的操作请求可以与步骤201类似的对成员资源的访问请求或对成员资源的更新、删除等请求,本发明实施例在此不做限定。
[0119] 第一群组服务器gl收到对群组资源Group I的操作请求后,确定对群组资源的操作请求中并没有携带操作请求标识REQ-1D,即对群组资源Group I的操作请求为对成员资源的操作请求。并执行步骤402-1到402-4的任一步骤。
[0120] 在本发明实施例中,假设Group I包括的成员资源中包括子群组资源GroUp2,且Group 2归属于第二群组服务器,即Group 2属于远程子群组,且Group 2同时包含GroupI,即第一群组服务器可以在步骤402-3中确定Group I包含远程子群组。因此,第一群组服务器在执行步骤402-2到402-4时,可以在步骤402-1到402-4中的任一步骤后执行步骤403,即生成针对所述对成员资源操作请求的REQ-1D,记录生成的REQ-1D。
[0121] 当然,作为另一可选方式,第一群组服务器还可以在收到确定对群组资源的操作请求中并没有携带操作请求标识REQ-1D,即对群组资源Group I的操作请求为对成员资源的操作请求后,直接执行步骤402-1,判断对成员资源的操作请求是否为更新请求。因为对成员资源的操作请求为更新请求,则生成针对所述对成员资源操作请求的REQ-1D,记录生成的REQ-1D,不并执行步骤402-2到402-4的任一步骤,否则,选择执行步骤402-2至步骤402-4 ;步骤502、第一群组服务器执行成员资源操作请求中指示的操作,即将生成的REQ-1D携带在成员资源操作请求中发送给Group I所包含的成员资源各自所属的成员设备,即第二群组服务器g2,成员设备I和成员设备2。
[0122] 步骤503、成员设备I和成员设备2在收到成员资源操作请求后,执行成员资源操作请求中指示的操作。
[0123] 具体的,成员设备I和成员设备2确定成员资源操作请求中携带REQ-1D,将确定成员资源操作请求中携带的REQ-1D已存储在requestTag记录的列表中,贝U表示与携带的REQ-1D对应的成员资源操作请求中指示的操作已被执行,不再执行该操作请求中指示的操作,而向第一群组服务器返回错误响应。
[0124] 然而,在本发明实施例中,假设成员设备I和成员设备2确定成员资源操作请求中携带的REQ-1D并没有存储在requestTag记录的列表中,则在requestTag记录的列表中存储成员资源操作请求中携带的REQ-1D,并执行成员资源操作请求中指示的操作。
[0125] 步骤504和504‘、成员设备I和成员设备2分别向第一群组服务器返回响应消息。
[0126] 步骤505、第二群组服务器确定成员资源操作请求中携带的REQ-1D并没有存储在requestTag记录的列表中,贝U在requestTag记录的列表中存储成员资源操作请求中携带的 REQ-1D。
[0127] 当然,假设第二群组服务器确定成员资源操作请求中携带的REQ-1D已存储在requestTag记录的列表中,贝U表示与携带的REQ-1D对应的成员资源操作请求中指示的操作已被执行,不再执行该操作请求中指示的操作,而向第一群组服务器返回错误响应。
[0128] 步骤506和506‘、第二群组服务器分别向Group 2所包含的成员资源Groupl,成员设备I和成员设备3发送成员资源请求消息。
[0129] 步骤507,与步骤503类似。成员设备3确定成员资源操作请求中携带的REQ-1D并没有存储在requestTag记录的列表中,贝U在requestTag记录的列表中存储成员资源操作请求中携带的REQ-1D,并执行成员资源操作请求中指示的操作。
[0130] 步骤507‘和步骤507"、第一群组服务器和成员设备I确定成员资源操作请求中携带的REQ-1D已存储在requestTag记录的列表中,贝U表示与携带的REQ-1D对应的成员资源操作请求中指示的操作已被执行,不再执行该操作请求中指示的操作。
[0131] 步骤508、成员设备3向第二群组服务器返回响应消息。
[0132] 步骤508‘和步骤508"、第一群组服务器和成员设备I分别向第二群组服务器返回错误响应。
[0133] 步骤509、第二群组服务器将接收到的来自第一群组服务器、成员设备I和成员设备3的响应消息进行汇聚。然而,由于第一群组服务器、成员设备I均返回的是错误响应,对第二群组服务器并不需要对成员设备3返回的响应消息并不需要汇聚。[0134] 步骤510、第二群组服务器向第一群组服务器返回第一汇聚的群组响应消息。
[0135] 步骤511、第一群组服务器将接收到的来自成员设备I和成员设备2的响应消息,以及来自第二群组服务器的第一汇聚的群组响应消息进行汇聚.[0136] 步骤512、第一群组服务器向应用服务器返回第二汇聚的群组成员响应消息。
[0137] 图5所示的groupl和group2假设位于不同的群组服务器,group2为groupl的远程子群组remote group。作为一种可选方式,groupl和group2可能处于相同的群组服务器,即group2为groupl的本地子群组local subgroup。
[0138] 图6为本发明实施例提供的针对群组资源的操作方法的流程图,包括如下步骤:
[0139] 步骤601、接收第二成员资源操作请求;
[0140] 具体的,成员设备接收成员设备所述的群组服务器发送的成员资源操作请求,或群组服务器如g2接收其它的群组服务器gl发送的第二成员资源操作请求(如步骤502所示)。因此,本发明实施例将接收第二请求的成员设备或群组服务器统称执行针对群组资源的操作的装置。
[0141] 步骤602、确定所述第二成员资源操作请求中携带第二操作请求标识;
[0142] 具体的,执行针对群组资源的操作的装置确定群组服务器发送的第二成员资源操作请求中包含第二操作请求标识。当然,群组资源的操作的装置(尤其是成员设备)还有可能接收不包含操作请求标识的成员资源操作请求,本发明实施例对接收到不包含操作请求标识的成员资源操作请求后的操作不作叙述。
[0143] 步骤603、判断存储的操作请求标识列表中是否包含携带的第二操作请求标识,并根据判断结果处理第二成员资源操作请求。
[0144] 具体的,并根据判断结果处理第二成员资源操作请求具体为:
[0145] 当所述第二成员资源操作请求还携带子群组资源标识时,所述根据判断结果处理第二成员资源操作请求具体为:判断存储的操作请求标识列表中包含所述第二操作请求标识,向第二成员资源操作请求的发送方返回错误响应;或判断存储的操作请求标识列表中不包含所述第二操作请求标识,向所述子群组资源标识所标识的群组资源包含的成员资源所属的成员设备发送第三成员资源操作请求;或
[0146] 当所述第二成员资源操作请求不携带子群组资源标识时,所述根据判断结果处理第二成员资源操作请求具体为:判断存储的操作请求标识列表中包含所述第二操作请求标识,向第二成员资源操作请求的发送方返回错误响应;或,判断存储的操作请求标识列表中不包含携所述第二作请求标识,存储所述第二操作请求标识,并执行成员资源操作请求中指示的操作。
[0147] 在上述实施例中,执行针对群组资源的操作的装置在接收到第二成员资源操作请求后,可以确定第二成员资源操作请求包含第二操作请求标识,并根据判断的结果处理第二成员资源操作请求,从而可以避免对已处理过的操作请求进行重复处理。
[0148] 此外,作为图6的对应的实施例的补充,由于执行针对群组资源的操作的装置可以是群组服务器,因此还可以执行图2-图4对应的实施例中群组服务器执行的步骤,本发明实施例在此不再详述。
[0149] 图7为本发明实施例提供的群组服务器的结构示意图,包括:
[0150] 接收模块701,用于接收对成员资源的操作请求;生成模块702,用于针对所述对成员资源的操作请求生成第一操作请求标识;发送模块703,用于向所述成员资源所属的成员设备发送成员资源操作请求,所述第一成员资源操作请求中包含所述第一操作请求标识;以便所述成员资源所属的成员设备根据所述第一操作请求标识判断成员设备存储的操作请求标识中是否包含所述第一操作请求标识,并根据判断结果处理成员资源操作请求。
[0151] 进一步的,所述对成员资源的操作请求中携带所述成员资源所属群组资源的群组资源标识;群组服务器还包括:确定模块704,用于根据所述群组资源标识确定需针对所述对成员资源的操作请求生成第一操作请求标识。
[0152] 进一步的,确定模块704具体用于:根据所述群组资源标识确定所述群组资源标识所标识的群组资源中包含子群组资源作为成员资源;确定需针对对成员资源的操作请求生成第一操作请求标识;或,确定模块704具体用于:根据所述群组资源标识确定所述群组资源标识所标识的群组资源中包含的子群组资源为远程群组资源,或根据所述群组资源标识确定所述群组资源标识所标识的群组资源所包含的成员资源中包含与对与所述群组资源标识对应的群组资源;确定需针对对成员资源的操作请求生成第一操作请求标识。
[0153] 进一步的,群组服务器还包括操作请求确定模块705,用于确定对成员资源的操作请求为更新请求。
[0154] 进一步的,接收模块701进一步用于接收第二成员资源操作请求,所述第二成员资源操作请求中包含第二操作请求标识;群组服务器还包括:判断模块706,用于判断存储的操作请求标识列表中包含所述第二操作请求标识,向第二成员资源操作请求的发送方返回错误响应;或,用于判断存储的操作请求标识列表中不包含所述第二操作请求标识,存储所述第二操作请求标识,并执行第二成员资源操作请求中指示的操作;或,接收模块701进一步用于接收第二成员资源操作请求,所述第二成员资源操作请求中包含第二操作请求标识及子群组资源标识;判断模块706,用于判断存储的操作请求标识列表中包含所述第二操作请求标识,向第二成员资源操作请求的发送方返回错误响应;或用于判断存储的操作请求标识列表中不包含所述第二操作请求标识,向所述子群组资源标识所标识的群组资源包含的成员资源所属的成员设备发送第三成员资源操作请求。
[0155] 图7b为本发明实施例提供的又一群组服务器的结构示意图,包括存储器700,和处理器600。其中存储器600用于存储图7a所述的各模块,处理器600与存储器700连接,运行存储器600中的各模块执行存储器600中各模块的相应功能。图7b中存储器600中各模块的功能与图7a中的各模块的功能相同,本发明实施例在此不再详述。
[0156] 图8为本发明实施例提供的执行针对群组资源的操作的装置结构示意图,包括:接收模块801,用于接收第二成员资源操作请求;确定模块802,用于确定所述成员资源操作请求中携带第二操作请求标识;判断模块803,用于判断存储的操作请求标识列表中是否包含所述操作请求标识,并根据判断结果执行成员第二资源操作请求中指示的操作。
[0157] 可选的,当所述第二成员资源操作请求还携带子群组资源标识时,判断模块803具体用于判断存储的操作请求标识列表中包含所述第二操作请求标识,向第二成员资源操作请求的发送方返回错误响应;或判断存储的操作请求标识列表中不包含所述第二操作请求标识,向所述子群组资源标识所标识的群组资源包含的成员资源所属的成员设备发送第三成员资源操作请求;或,当所述第二成员资源操作请求不携带子群组资源标识时,所述判断模块具体用于:判断存储的操作请求标识列表中包含所述第二操作请求标识,向第二成员资源操作请求的发送方返回错误响应;判断存储的操作请求标识列表中不包含所述第二操作请求标识,存储所述第二操作请求标识,并执行所述第二成员资源操作请求中指示的操作。
[0158] 可选的,接收模块801还用于接收对成员资源的操作请求。生成模块804用于针对所述对成员资源的操作请求生成第一操作请求标识;发送模块804,用于向所述成员资源所属的成员设备发送成员资源操作请求,所述第一成员资源操作请求中包含所述第一操作请求标识;以便所述成员资源所属的成员设备根据所述第一操作请求标识判断成员设备存储的操作请求标识中是否包含所述第一操作请求标识,并根据判断结果处理成员资源操作请求。
[0159] 可选的,所述对成员资源的操作请求中携带所述成员资源所属群组资源的群组资源标识;确定模块802还用于:根据所述群组资源标识确定需针对所述对成员资源的操作请求生成第一操作请求标识。
[0160] 可选的,所述确定模块802根据所述群组资源标识确定需针对所述对成员资源的操作请求生成第一操作请求标识具体为:根据所述群组资源标识确定所述群组资源标识所标识的群组资源中包含子群组资源作为成员资源;确定需针对对成员资源的操作请求生成第一操作请求标识;或,根据所述群组资源标识确定所述群组资源标识所标识的群组资源中包含的子群组资源为远程群组资源,或根据所述群组资源标识确定所述群组资源标识所标识的群组资源所包含的成员资源中包含与对所述群组资源标识所标识的群组资源;确定需针对对成员资源的操作请求生成第一操作请求标识。
[0161] 可选的,确定模块802进一步用于:确定对成员资源的操作请求为更新请求。
[0162] 图Sb为本发明实施例提供的又一执行针对群组资源的操作的装置的结构示意图,包括存储器800,和处理器900。其中存储器600用于存储图8a所述的各模块,处理器900与存储器800连接,运行存储器800中的各模块执行存储器800中各模块的相应功能。图8b中存储器800中各模块的功能与图8a中的各模块的功能相同,本发明实施例在此不再详述。
[0163] 由上述本发明的实施例提供的技术方案可以看出,通过在发送给成员设备的成员资源操作请求中携带操作请求标识,以便成员资源所属的成员设备根据所述操作请求标识判断成员设备存储的操作请求标识中是否包含所述操作请求标识,并根据判断结果处理成员资源操作请求。假设成员设备存储的操作请求标识中包含所述操作请求标识,则返回错误响应,不再处理成员资源操作请求。从而,可以避免后续成员设备重复处理成员资源操作请求。
[0164] 上述针对群组服务器或执行针对群组资源的操作的装置中包含的各模块的处理功能的实施方式在之前的方法实施例中已经描述,在此不再重复描述。此外,在M2M网络中,M2M平台可以是各计算机,具有处理器的设备。M2M网关和M2M终端在设备上没有严格的区分,比如做网关的设备也可以做为终端,此外为各种终端设备,如手机,计算机,PDA,笔记本电脑,远程控制器,家用电器,各种仪器仪表、传感器等都可以做为M2M网络的网关或终端。在上述模块实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述实现对群组资源操作的方法及群组服务器或执行针对群组资源的操作的装置的各功能模块的功能均可以由群组服务器或执行针对群组资源的操作的装置的处理器运行各模块完成,以及上述实现群组服务器执行的方法及群组服务器各功能模块的功能均可以由群组服务器的处理器完成。
[0165] 此外,图7a和图7b中的群组服务器可以执行前述方法流程实施例中群组服务器执行的任一步骤,图8a和图Sb中执行针对群组资源的操作的装置既可以执行前述方法流程实施例中群组服务器执行的任一步骤,也可以执行前述方法流程实施例中成员设备执行的任何步骤,本发明在此不再一一详述。
SRC=https://www.google.com/patents/CN103297468A