一种并发的资源更新方法与设备的制作方法

文档序号:6436555阅读:102来源:国知局
专利名称:一种并发的资源更新方法与设备的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源更新的技术。
背景技术
随着互联网技术的快速发展,网络服务器所需处理的数据信息量也越来越大。现有技术例如在社交网络社区中,为保证数据的一致性,通常对各资源更新请求进行串行处理,从而按照该各资源更新请求的提交时间的先后顺序依次更新其所对应的资源,若此,资源更新请求的处理效率低下,从而影响对来自用户的资源更新请求的响应速度,降低用户使用体验。因此,如何有效地实现资源更新,成为目前亟待解决的问题之一。

发明内容
本发明的目的是提供一种计算机实现的资源更新的方法与设备。根据本发明的一个方面,提供一种计算机实现的资源更新的方法,其中,该方法包括以下步骤a获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;b根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;c根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。根据本发明的另一个方面,还提供了一种资源更新的设备,其中,该设备包括请求获取装置,用于获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;标识获取装置,用于根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;并发处理装置,用于根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。与现有技术相比,本发明在保证数据的一致性的前提下,实现对各资源更新请求进行并发处理,以提高资源更新请求的处理效率,进而提高对来自用户的资源更新请求的响应速度,提升用户使用体验。


通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显图1示出根据本发明一个方面的资源更新的设备示意图;图2示出根据本发明一个优选实施例的资源更新的设备示意图3为出根据本发明另一个优选实施例的资源更新的设备示意图流程图;图4示出根据本发明的在资源树中获取资源节点的示例图;图5示出根据本发明另一个方面的资源更新的方法流程图;图6示出根据本发明一个优选实施例的资源更新的方法流程图;图7示出根据本发明另一个优选实施例的资源更新的方法流程图。附图中相同或相似的附图标记代表相同或相似的部件。
具体实施例方式下面结合附图对本发明作进一步详细描述。图1示出根据本发明一个方面的资源更新的设备示意图。处理设备I包括请求获取装置11、标识获取装置12和并发处理装置13。在此,处理设备I为网络设备,包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云,在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。如图1所示,首先,请求获取装置11获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新。在此,所述获取的方式包括但不限于以下方式I)从用户设备获取;例如,实时地获取来自用户通过用户设备提交的多个资源更新请求。在此,所述用户设备可以是任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或声控设备进行人机交互的电子产品,包括但不限于计算机、智能手机、PDA、或IPTV等。2)从第三方设备获取;例如按照预定的周期,从第三方设备读取多个资源更新请求。在一示例中,在社交网络社区中,处理设备I为网络服务器,首先,用户设备I监测用户Ul通过人机交互在其操作界面中对用户U2的照片Pl添加一条评论,以生成与该操作相对应的资源更新请求;用户设备2监测用户U2通过人机交互在其操作界面中将照片Pl删除,以及添加一篇博客文章Al,以分别生成与该两个操作相对应的两个资源更新请求;随后,用户设备I和用户设备2将该三个资源更新请求分别发送至该网络服务器,例如,可将其封装为三条请求消息,如http请求消息,并通过相应的通信协议,如http、https通信协议,发送至该网络服务器,该网络服务器通过实时监控的方式接收并解析该三个请求消息,以获取来自用户设备I和用户设备2的该三个资源更新请求。在另一示例中,请求获取装置11经由第三方设备提供的应用编程接口(API),定期地向该第三方设备发送接收多个资源更新请求的消息,并接收该第三方设备响应该消息返回的多个资源更新请求。第三方设备也可主动向处理设备I推送多个资源更新请求,而请求获取装置11接收该多个资源更新请求。本领域技术人员应能理解上述获取资源更新请求的方式仅为举例,其他现有的或今后可能出现的获取资源更新请求的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。接着,标识获取装置12根据请求获取装置11获取的多个资源更新请求,获取与该多个资源更新请求相对应的资源标识。
在此,所述资源标识意指预先设定的该资源更新请求所对应的资源更新将可能影响到的资源的范围的标识信息。例如,用户Ui的社交网络社区空间资源中包括博客、相册等资源,博客资源中有多篇博客文章、相册资源中有多张相册照片,当资源更新请求为在用户Ui的博客中添加一篇博客文章,则该资源更新请求所对应的资源标识可设定为待更新的资源本身,即用户Ul的博客、或可设定为一个更大的资源范围,例如用户Ul的社交网络社区空间。在此,获取所述资源标识的方式包括但不限于以下形式I)当资源更新请求中包括其所对应的资源标识时,标识获取装置12从该资源更新请求中直接获取;例如在对一篇博客文章添加评论的资源更新请求中,显式指定其对应的资源标识为该博客文章;2)当资源更新请求中未包括其所对应的资源标识时,标识获取装置12按照预定标识获取规则,根据该资源更新请求,获得与该资源更新请求相对应的资源标识;例如,当资源更新请求为在相册A中添加一张照片,则标识获取装置12可将该照片的上一级资源相册A作为该资源更新请求所对应的资源标识,或可将相册A的上一级资源社交网络社区空间S作为该资源更新请求所对应的资源标识。在一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3,其中,Rl为对用户U2的相册A下的照片Pl添加一条评论,R2为将用户U2相册A下的照片Pl删除,R3为在用户U2的博客B中添加一篇文章Al,且该三个资源更新请求中都已包括各自所对应的资源标识,分别为U2-A-P1标识、U2-A标识、U2-B标识,标识获取装置12从该三个资源更新请求中直接提取与其相对应的该三个资源标识。在另一示例中,在社交网络社区中,两个资源更新请求分别为R4和R5,其中,R4为对用户Ul相册A下的照片Pl添加一条评论、R5为在用户U2博客B中添加一篇文章Al,且该两个资源更新请求中都不包括各自所对应的资源标识;当预定标识获取规则为将待更新资源的上一级资源作为该资源更新请求所对应的资源标识,则标识获取装置12按照预定标识获取规则,获取资源更新请求R4所对应的待更新资源照片Pl的上一级资源为用户Ul的相册A,进而将Ul-A作为资源更新请求R4所对应的资源标识;同理,获取资源更新请求R5所对应的资源标识为U2-B。本领域技术人员应能理解上述获取资源标识的方式仅为举例,其他现有的或今后可能出现的获取资源标识的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。随后,并发处理装置13根据标识获取装置12获取的资源标识,对请求获取装置11获取的多个资源更新请求进行并发处理,以更新该多个资源更新请求所对应的多个待更新资源。在此,所述并发处理的实现方式包括将各资源更新请求所对应的资源标识进行比较,资源标识不同的资源更新请求将被并行处理,而资源标识相同的资源更新请求将按照资源更新请求的提交时间的先后顺序被串行处理。其中,并行处理是指两个或者多个资源更新请求在同一时刻被处理,而并发处理是指两个或多个资源更新请求在同一时间间隔内被处理,并发处理包括并行处理的情形。在一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3 ;其中,Rl为添加评论至用户Ul相册A下的照片Pl,其所对应的资源标识为Ul-A-Pl ;R2为删除用户Ul博客B下的文章2,其所对应的资源标识为Ul-B-文章2 ;R3为添加文章至用户U2的博客B,其所对应的资源标识为U2-B。并发处理装置13将该三个资源标识分别进行比较,以获得该三个资源标识互不相同,则将R1、R2和R3进行并行处理,即同时进行用户Ul相册A下的照片Pl的新评论的添加、用户Ul博客B下的文章2的删除和用户U2的博客B的新文章的添加。在另一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3 ;其中,Rl为更新用户Ul相册A下的照片P1,其所对应的资源标识为Ul-A ;R2为更新用户Ul的相册A,其所对应的资源标识为Ul-A ;R3为更新用户U2的博客B,其所对应的资源标识为U2-B。并发处理装置13将该三个资源标识分别进行比较,以获得Rl与R2的资源标识相同,而R3与Rl、R2的资源标识不相同,则将R3与Rl、R2进行并行处理,而将Rl与R2进行串行处理,以更新该三个资源更新所对应的待更新资源,即在并行处理资源更新请求R3的同时,首先处理提交时间在先的资源更新请求R1,然后,再串行处理提交时间在后的资源更新请求R2。本领域技术人员应能理解上述并发处理的方式仅为举例,其他现有的或今后可能出现的并行处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。优选地,请求获取装置11、标识获取装置12和并发处理装置13之间是持续不断地工作。具体地,请求获取装置11持续地获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;接着,标识获取装置12也持续地根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;随后,并发处理装置13也持续地根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。在此,本领域技术人员应理解“持续”是指各装置不断进行上述多个资源更新请求的获取、资源标识的获取及多个资源更新请求的并发处理,直至满足预定停止条件,例如请求获取装置11在较长时间内停止对多个资源更新请求的获取。图2示出根据本发明一个优选实施例的资源更新的设备示意图。其中,并发处理装置13’包括第一关系判断单元131’和资源更新单元132’。第一关系判断单元131’根据标识获取装置12’获取的资源标识,判断请求获取装置11’获取的多个资源更新请求之间是否存在关联关系;资源更新单元132’根据所述多个资源更新请求之间是否存在关联关系,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源,其中,在该并发处理过程中,存在关联关系的资源更新请求将按照资源更新请求提交时间的先后顺序被串行处理,而不存在关联关系的资源更新请求将被并行处理。其中,并行处理是指两个或者多个资源更新请求在同一时刻被处理,而并发处理是指两个或多个资源更新请求在同一时间间隔内被处理,并发处理包括并行处理的情形。在此,图2中所示请求获取装置11’和标识获取装置12’与前面参照图1所描述的请求获取装置11和标识获取装置12的内容相同,为简明起见,以引用方式包含于此,而不做赘述。在此,判断所述资源更新请求之间是否存在关联关系包括将任意两个资源更新请求所对应的资源标识在资源标识库中进行匹配查询,以判断该两个资源更新请求之间是否存在关联关系;在此,所述资源标识库中包括资源标识信息及其与其他资源标识信息之间是否存在预定的关联关系。在一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3 ;其中,Rl所对应的资源标识为Ul-A,R2所对应的资源标识为Ul-A-Pl,R3所对应的资源标识为U2-B。第一关系判断单元131’将任意两个资源更新请求所对应的资源标识,即Ul-A与U1-A-P1、Ul-A与U2-B、Ul-A-Pl与U2-B,分别在资源标识库中进行匹配查询,获得资源标识Ul-A与Ul-A-Pl之间存在关联关系,资源标识U2-B与U1_A、Ul-A-Pl之间不存在关联关系;接着,资源更新单元132’根据资源标识Ul-A与Ul-A-Pl之间存在关联关系,对Rl与R2按照其提交时间的先后顺序进行串行处理,以依次更新Rl与R2所对应的待更新资源,而在对Rl和R2串行处理的同时,对R3进行并行处理,以更新R3所对应的待更新资源。本领域技术人员应能理解上述判断关联关系和/或资源更新的方式仅为举例,其他现有的或今后可能出现的判断关联关系和/或资源更新的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图3为出根据本发明另一个优选实施例的资源更新的设备示意图。其中,第一关系判断单元131”还包括节点获取单元1311”和第二关系判断单元1312”。节点获取单元1311”根据标识获取装置12”获取的资源标识,在资源树中进行匹配查询,以获得与资源标识相对应的资源节点;第二关系判断单元1312”根据节点获取单元1311”获取的资源节点,按照预定判断规则,判断多个资源更新请求之间是否存在关联关系。在此,图3中所示请求获取装置11”、标识获取装置12”和资源更新单元132”与前面参照图2所描述的请求装置11’、标识获取装置12’和资源更新单元132’的内容相同,为简明起见,以引用方式包含于此,而不做赘述。在此,所述资源树意指与资源更新请求相对应的资源标识所表示的资源之间的关联关系的拓扑结构,该资源树中并未存储实际的资源数据。在此,所述资源树存储于以下任一项中关系数据库,内存存储器,硬盘存储器等。在此,按照所述预定判断规则判断多个资源更新请求之间是否存在关联关系包括但不限于以下情形I)根据各资源更新请求所对应的各资源标识,分别在资源树中遍历,以获取与该各资源标识相对应的资源节点,若所获取的资源节点相同,则第二关系判断单元1312”判断该等资源更新请求之间存在关联关系;2)根据各资源更新请求所对应的各资源标识,分别在资源树中遍历,以获取与该各资源标识相对应的资源节点,若所获取的资源节点之间具有从属关系,则第二关系判断单元1312”判断该等资源更新请求之间存在关联关系。其中,所述从属关系包括资源节点之间的父子关系、祖孙关系等。在资源树中,根节点至某资源节点的访问路径上所有资源节点与该资源节点都具有从属关系。如图4所示,例如,根节点“社交网络社区”至资源节点“照片P1”的访问路径为“社交网络社区- >用户Ul- >相册A- >照片P1”,则资源节点“照片P1”与资源节点“社交网络社区”、“用户U1”、“相册A”都具有从属关系。本领域技术人员应能理解上述预定判断规则仅为举例,其他现有的或今后可能出现的预定判断规则如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
在一示例中(参照图4),在社交网络社区中,三个资源更新请求分别为Rl、R2和R3。其中,Rl为更新用户Ul的相册A,其所对应的资源标识为Ul-A ;R2为更新用户Ul的相册A中的照片P2,其所对应的资源标识为U1-A-P2 ;R3为更新用户U2的博客B中的文章1,其所对应的资源标识为U2-B-文章I。节点获取单元1311”通过遍历该资源树,将该三个资源标识在资源树中各资源节点进行比较,以获得与R1、R2和R3相对应的资源节点为N1、N2和N3 ;接着,第二关系判断单元1312”根据该三个资源节点N1、N2和N3在该资源树中的位置,确定N3与N1、N2相独立,而NI与N2之间存在从属关系,即N3与N1、N2之间不存在关联关系,而NI与N2之间存在关联关系。本领域技术人员应能理解上述获取资源节点和/或判断关联关系的方式仅为举例,其他现有的或今后可能出现的获取资源节点和/或判断关联关系的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。在又一优选实施例中(参照图1),处理设备I还包括检测装置(未示出)。以下参照图1对该又一优选实施例进行详细描述,其中,请求获取装置11获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;标识获取装置12根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;并发处理装置13根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源;其具体过程与前述参照图1所描述的实施例中请求获取装置11、标识获取装置12和并发处理装置13所执行的过程相同,为简明起见,以引用方式包含于此,而不做赘述。具体地,当并发处理装置13对请求获取装置11获取的多个资源更新请求进行并发处理时,检测装置通过对该多个资源更新请求所对应的资源标识在资源树中所表示的资源节点加锁,实现该并发处理的冲突检测。其中,对资源节点加锁来进行并发处理的冲突检测可防止在并发处理多个资源更新请求时,不同的资源更新请求同时更新相同的资源,以保证资源数据的一致性,也即,在同一时刻仅有一个资源操作请求能获得某资源节点的锁,并且只有获得该锁的资源操作请求才可以被处理以更新相应的资源,而未能获得该锁的资源操作请求将排队等待拥有该锁的资源操作请求释放该锁。在此,所述锁的机制可通过信号量来实现,所述信号量是一种记录型数据结构,其仅能通过两个标准的原子操作来访问,这两个操作被称为P、V操作,在此,P操作表示申请一个资源,即实现资源的加锁,V操作表示释放一个资源,即实现资源的解锁。其中,所述原子操作(简称“原语”)是在计算机操作执行上不可中断的操作。其中,锁的原子操作不可能由软件单独保证一必须需要硬件的支持。例如,在x86平台上,CPU提供了在指令执行期间对总线加锁的手段。CPU芯片上有一条引线#HL0CKpin,如果汇编语言的程序中在一条指令前面加上前缀"LOCK",经过汇编以后的机器代码就使CPU在执行这条指令的时候把#HL0CK pin的电位拉低,持续到这条指令结束时放开,从而把总线锁住,这样同一总线上别的CPU就暂时不能通过总线访问内存了,保证了这条指令在多处理器环境中的原子性。在一示例中(参照图4),在社交网络社区中,两个资源更新请求分别为Rl、R2,且R1、R2在资源树中所对应的资源节点为N1、N2,其中,NI与N2之间为父子关系,当并发处理装置13对Rl、R2进行并发处理时,检测装置通过该资源树的应用编程接口(API),为资源更新请求Rl对资源节点NI执行P操作,以实现对资源节点NI,以及该资源节点的子树资源节点N2、N4进行加锁,此刻,资源更新请求Rl可更新资源节点NI及其子树资源节点所对应的资源。由于资源更新请求R2所对应的资源节点N2已被加锁,故R2需排队等待直到检测装置为Rl执行V操作,以实现对资源节点N1、N2、N4的解锁。当资源节点N2被解锁时,检测装置将为资源更新请求R2对资源节点N2执行P操作,以现实对资源节点N2进行加锁,此刻,资源更新请求R2可更新资源节点N2所对应的资源。本领域技术人员应能理解上述冲突检测的方式仅为举例,其他现有的或今后可能出现的冲突检测的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,通过在资源更新请求所对应的资源节点加锁,可防止与该资源节点或该资源节点的子树资源节点所对应的其他资源更新请求与该资源更新请求被同时并行处理,即实现并发处理的冲突检测,从而在并发处理过程中保证资源数据的一致性。在另一优选实施例中(参照图1),处理设备I还包括资源树更新装置(未示出)。资源树更新装置根据与所述多个资源更新请求相对应的资源的更新,建立或更新所述资源树。以下参照图1对该另一优选实施例进行详细描述,其中,请求获取装置11获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;标识获取装置12根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;并发处理装置13根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源;其具体过程与前述参照图1所描述的实施例中请求获取装置11、标识获取装置12和并发处理装置13所执行的过程相同,为简明起见,以引用方式包含于此,而不做赘述。具体地,资源树更新装置例如通过实时监测并发处理装置13对资源更新请求的处理,以获得其所增加或删除的资源,并据此通过调用资源树的应用编程接口(API),在资源树中增加或删除该资源所对应的资源节点。若检测到该资源树未建立,则先行初始化该资源树,然后再更新该资源树中的资源节点。在一个示例中(参照图4),在社交网络社区中,一个资源更新请求为删除用户Ul的相册A下的照片P1,并发处理装置13处理该资源更新请求已将照片Pl删除,资源树更新装置实时监测该资源请求处理事件,并通过调用资源树的应用编程接口(API),在资源树中删除资源节点N4。本领域技术人员应能理解上述建立或更新资源树的方式仅为举例,其他现有的或今后可能出现的建立或更新资源树的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。在再一优选实施例中(参照图1),处理设备I还包括串行处理装置(未示出)。当标识获取装置12未获取多个资源更新请求所对应的资源标识时,串行处理装置按照该多个资源更新请求提交时间的先后顺序,对该多个资源更新请求进行串行处理,以更新多个待更新资源。以下参照图1对该再一优选实施例进行详细描述,其中,请求获取装置11获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;标识获取装置12根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;并发处理装置13根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源;其具体过程与前述参照图1所描述的实施例中请求获取装置11、标识获取装置12和并发处理装置13所执行的过程相同,为简明起见,以引用方式包含于此,而不做赘述。具体地,当资源标识获取装置12未获取到资源标识时,串行处理装置按照多个资源更新请求提交时间的先后顺序,依次对该等资源更新请求进行串行处理,以更新该等资源更新请求所对应的资源。在一示例中,在社交网络社区中,三个资源更新请求分别为R1、R2和R3。其中,Rl为更新用户Ul相册A下的照片P1,R2为更新用户Ul的相册A,R3为更新用户U2的博客B,且该等资源更新请求提交时间由先至后的顺序为R2、R1、R3。当标识获取装置12未获取到该三个资源更新请求所对应的资源标识时,串行处理装置按照Rl、R2、R3提交的时间的先后顺序,对其进行串行处理,即先更新用户Ul的相册A,再更新用户Ul相册A下的照片P1,最后更新用户U2的博客B。本领域技术人员应能理解上述更新资源的方式仅为举例,其他现有的或今后可能出现的更新资源的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图5示出根据本发明一个方面的资源更新的方法流程图。其中,处理设备I为网络设备,包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云,在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。如图5所示,首先,在步骤SI中,处理设备I获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新。在此,所述获取的方式包括但不限于以下方式I)从用户设备获取;例如,实时地获取来自用户通过用户设备提交的多个资源更新请求。在此,所述用户设备可以是任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或声控设备进行人机交互的电子产品,包括但不限于计算机、智能手机、PDA、或IPTV等。2)从第三方设备获取;例如按照预定的周期,从第三方设备读取多个资源更新请求。在一示例中,在社交网络社区中,处理设备I为网络服务器,首先,用户设备I监测用户Ul通过人机交互在其操作界面中对用户U2的照片Pl添加一条评论,以生成与该操作相对应的资源更新请求;用户设备2监测用户U2通过人机交互在其操作界面中将照片Pl删除,以及添加一篇博客文章Al,以分别生成与该两个操作相对应的两个资源更新请求;随后,用户设备I和用户设备2将该三个资源更新请求分别发送至该网络服务器,例如,可将其封装为三条请求消息,如http请求消息,并通过相应的通信协议,如http、https通信协议,发送至该网络服务器,该网络服务器通过实时监控的方式接收并解析该三个请求消息,以获取来自用户设备I和用户设备2的该三个资源更新请求。在另一示例中,在步骤SI中,处理设备I经由第三方设备提供的应用编程接口(API),定期地向该第三方设备发送接收多个资源更新请求的消息,并接收该第三方设备响应该消息返回的多个资源更新请求。第三方设备也可主动向处理设备I推送多个资源更新请求,而处理设备I在步骤SI中接收该多个资源更新请求。本领域技术人员应能理解上述获取资源更新请求的方式仅为举例,其他现有的或今后可能出现的获取资源更新请求的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。接着,在步骤S2中,处理设备I根据其在步骤SI中获取的多个资源更新请求,获取与该多个资源更新请求相对应的资源标识。在此,所述资源标识意指预先设定的该资源更新请求所对应的资源更新将可能影响到的资源的范围的标识信息。例如,用户Ui的社交网络社区空间资源中包括博客、相册等资源,博客资源中有多篇博客文章、相册资源中有多张相册照片,当资源更新请求为在用户Ui的博客中添加一篇博客文章,则该资源更新请求所对应的资源标识可设定为待更新的资源本身,即用户Ul的博客、或可设定为一个更大的资源范围,例如用户Ul的社交网络社区空间。在此,获取所述资源标识的方式包括但不限于以下形式I)当资源更新请求中包括其所对应的资源标识时,在步骤S2中,处理设备I从该资源更新请求中直接获取;例如在对一篇博客文章添加评论的资源更新请求中,显式指定其对应的资源标识为该博客文章;2)当资源更新请求中未包括其所对应的资源标识时,在步骤S2中,处理设备I按照预定标识获取规则,根据该资源更新请求,获得与该资源更新请求相对应的资源标识;例如,当资源更新请求为在相册A中添加一张照片,则处理设备I在步骤S2中可将该照片的上一级资源相册A作为该资源更新请求所对应的资源标识,或可将相册A的上一级资源社交网络社区空间S作为该资源更新请求所对应的资源标识。在一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3,其中,Rl为对用户U2的相册A下的照片Pl添加一条评论,R2为将用户U2相册A下的照片Pl删除,R3为在用户U2的博客B中添加一篇文章Al,且该三个资源更新请求中都已包括各自所对应的资源标识,分别为U2-A-P1标识、U2-A标识、U2-B标识,在步骤S2中,处理设备I从该三个资源更新请求中直接提取与其相对应的该三个资源标识。在另一示例中,在社交网络社区中,两个资源更新请求分别为R4和R5,其中,R4为对用户Ul相册A下的照片Pl添加一条评论、R5为在用户U2博客B中添加一篇文章Al,且该两个资源更新请求中都不包括各自所对应的资源标识;当预定标识获取规则为将待更新资源的上一级资源作为该资源更新请求所对应的资源标识,则在步骤S2中,处理设备I按照预定标识获取规则,获取资源更新请求R4所对应的待更新资源照片Pl的上一级资源为用户Ul的相册A,进而将Ul-A作为资源更新请求R4所对应的资源标识;同理,获取资源更新请求R5所对应的资源标识为U2-B。本领域技术人员应能理解上述获取资源标识的方式仅为举例,其他现有的或今后可能出现的获取资源标识的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。随后,在步骤S3中,处理设备I根据其在步骤S2中获取的资源标识,对处理设备I在步骤SI中获取的多个资源更新请求进行并发处理,以更新该多个资源更新请求所对应的多个待更新资源。在此,所述并发处理的实现方式包括将各资源更新请求所对应的资源标识进行比较,资源标识不同的资源更新请求将被并行处理,而资源标识相同的资源更新请求将按照资源更新请求的提交时间的先后顺序被串行处理。其中,并行处理是指两个或者多个资源更新请求在同一时刻被处理,而并发处理是指两个或多个资源更新请求在同一时间间隔内被处理,并发处理包括并行处理的情形。在一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3 ;其中,Rl为添加评论至用户Ul相册A下的照片Pl,其所对应的资源标识为Ul-A-Pl ;R2为删除用户Ul博客B下的文章2,其所对应的资源标识为Ul-B-文章2 ;R3为添加文章至用户U2的博客B,其所对应的资源标识为U2-B。在步骤S3中,处理设备I将该三个资源标识分别进行比较,以获得该三个资源标识互不相同,则将R1、R2和R3进行并行处理,即同时进行用户Ul相册A下的照片Pl的新评论的添加、用户Ul博客B下的文章2的删除和用户U2的博客B的新文章的添加。在另一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3 ;其中,Rl为更新用户Ul相册A下的照片Pl,其所对应的资源标识为Ul-A ;R2为更新用户Ul的相册A,其所对应的资源标识为Ul-A ;R3为更新用户U2的博客B,其所对应的资源标识为U2-B。在步骤S3中,处理设备I将该三个资源标识分别进行比较,以获得Rl与R2的资源标识相同,而R3与Rl、R2的资源标识不相同,则将R3与Rl、R2进行并行处理,而将Rl与R2进行串行处理,以更新该三个资源更新所对应的待更新资源,即在并行处理资源更新请求R3的同时,首先处理提交时间在先的资源更新请求R1,然后,再串行处理提交时间在后的资源更新请求R2。本领域技术人员应能理解上述并发处理的方式仅为举例,其他现有的或今后可能出现的并行处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。优选地,处理设备I在步骤S1、步骤S2和步骤S3中是持续不断地工作。具体地,在步骤SI中,处理设备I持续地获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;接着,在步骤S2中,处理设备I也持续地根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;随后,在步骤S3中,处理设备I也持续地根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。在此,本领域技术人员应理解“持续”是指处理设备I在各步骤中不断进行上述多个资源更新请求的获取、资源标识的获取及多个资源更新请求的并发处理,直至满足预定停止条件,例如处理设备I在较长时间内停止对多个资源更新请求的获取。图6示出根据本发明一个优选实施例的资源更新的设备示意图。在步骤S31’中,处理设备I根据其在步骤S2’中获取的资源标识,判断其在步骤SI’中获取的多个资源更新请求之间是否存在关联关系;在步骤S32’中,处理设备I根据所述多个资源更新请求之间是否存在关联关系,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源,其中,在该并发处理过程中,存在关联关系的资源更新请求将按照资源更新请求提交时间的先后顺序被串行处理,而不存在关联关系的资源更新请求将被并行处理。其中,并行处理是指两个或者多个资源更新请求在同一时刻被处理,而并发处理是指两个或多个资源更新请求在同一时间间隔内被处理,并发处理包括并行处理的情形。在此,图6中所示处理设备I在步骤SI,和在步骤S2’中与前面参照图1所描述的处理设备I在步骤SI和在步骤S2中的内容相同,为简明起见,以引用方式包含于此,而不做赘述。
在此,判断所述资源更新请求之间是否存在关联关系包括将任意两个资源更新请求所对应的资源标识在资源标识库中进行匹配查询,以判断该两个资源更新请求之间是否存在关联关系;在此,所述资源标识库中包括资源标识信息及其与其他资源标识信息之间是否存在预定的关联关系。在一示例中,在社交网络社区中,三个资源更新请求分别为Rl、R2和R3 ;其中,Rl所对应的资源标识为Ul-A,R2所对应的资源标识为Ul-A-Pl,R3所对应的资源标识为U2-B。在步骤S31’中,处理设备I将任意两个资源更新请求所对应的资源标识,即Ul-A与Ul-A-PU Ul-A与U2-B、Ul-A-Pl与U2-B,分别在资源标识库中进行匹配查询,获得资源标识Ul-A与Ul-A-Pl之间存在关联关系,资源标识U2-B与U1_A、U1-A_P1之间不存在关联关系;接着,在步骤S32’中,处理设备I根据资源标识Ul-A与Ul-A-Pl之间存在关联关系,对Rl与R2按照其提交时间的先后顺序进行串行处理,以依次更新Rl与R2所对应的待更新资源,而在对Rl和R2串行处理的同时,对R3进行并行处理,以更新R3所对应的待更新资源。本领域技术人员应能理解上述判断关联关系和/或资源更新的方式仅为举例,其他现有的或今后可能出现的判断关联关系和/或资源更新的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图7为出根据本发明另一个优选实施例的资源更新的方法流程图。在步骤S311”中,处理设备I根据其在步骤S2”中获取的资源标识,在资源树中进行匹配查询,以获得与资源标识相对应的资源节点;在步骤S312”中,处理设备I根据其在步骤S311”中获取的资源节点,按照预定判断规则,判断多个资源更新请求之间是否存在关联关系。在此,图7中所示处理设备I在步骤SI”、步骤S2”和步骤S32”中与前面参照图6所描述的处理设备I在步骤SI’、步骤S2’和步骤S32’中的内容相同,为简明起见,以引用方式包含于此,而不做赘述。在此,所述资源树意指与资源更新请求相对应的资源标识所表示的资源之间的关联关系的拓扑结构,该资源树中并未存储实际的资源数据。在此,所述资源树存储于以下任一项中关系数据库,内存存储器,硬盘存储器等。在此,按照所述预定判断规则判断多个资源更新请求之间是否存在关联关系包括但不限于以下情形I)根据各资源更新请求所对应的各资源标识,分别在资源树中遍历,以获取与该各资源标识相对应的资源节点,若所获取的资源节点相同,则在步骤S312”中,处理设备I判断该等资源更新请求之间存在关联关系;2)根据各资源更新请求所对应的各资源标识,分别在资源树中遍历,以获取与该各资源标识相对应的资源节点,若所获取的资源节点之间具有从属关系,则在步骤S312”中,处理设备I判断该等资源更新请求之间存在关联关系。其中,所述从属关系包括资源节点之间的父子关系、祖孙关系等。在资源树中,根节点至某资源节点的访问路径上所有资源节点与该资源节点都具有从属关系。如图4所示,例如,根节点“社交网络社区”至资源节点“照片P1”的访问路径为“社交网络社区- >用户Ul- >相册A- >照片P1”,则资源节点“照片P1”与资源节点“社交网络社区”、“用户U1”、“相册A”都具有从属关系。本领域技术人员应能理解上述预定判断规则仅为举例,其他现有的或今后可能出现的预定判断规则如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。在一示例中(参照图4),在社交网络社区中,三个资源更新请求分别为Rl、R2和R3。其中,Rl为更新用户Ul的相册A,其所对应的资源标识为Ul-A ;R2为更新用户Ul的相册A中的照片P2,其所对应的资源标识为U1-A-P2 ;R3为更新用户U2的博客B中的文章1,其所对应的资源标识为U2-B-文章I。在步骤S311”中,处理设备I通过遍历该资源树,将该三个资源标识在资源树中各资源节点进行比较,以获得与R1、R2和R3相对应的资源节点为N1、N2和N3 ;接着,在步骤S312”中,处理设备I根据该三个资源节点N1、N2和N3在该资源树中的位置,确定N3与N1、N2相独立,而NI与N2之间存在从属关系,即N3与N1、N2之间不存在关联关系,而NI与N2之间存在关联关系。本领域技术人员应能理解上述获取资源节点和/或判断关联关系的方式仅为举例,其他现有的或今后可能出现的获取资源节点和/或判断关联关系的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。在又一优选实施例中(参照图5),该过程还包括步骤S4。以下参照图5对该又一优选实施例进行详细描述,其中,在步骤SI中,处理设备I获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;在步骤S2中,处理设备I根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;在步骤S3中,处理设备I根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源;其具体过程与前述参照图5所描述的实施例中处理设备I在步骤S1、步骤S2和步骤S3中所执行的过程相同,为简明起见,以引用方式包含于此,而不做赘述。具体地,当处理设备I在步骤S3中对其在步骤SI中获取的多个资源更新请求进行并发处理时,在步骤S4中,处理设备I通过对该多个资源更新请求所对应的资源标识在资源树中所表示的资源节点加锁,实现该并发处理的冲突检测。其中,对资源节点加锁来进行并发处理的冲突检测可防止在并发处理多个资源更新请求时,不同的资源更新请求同时更新相同的资源,以保证资源数据的一致性,也即,在同一时刻仅有一个资源操作请求能获得某资源节点的锁,并且只有获得该锁的资源操作请求才可以被处理以更新相应的资源,而未能获得该锁的资源操作请求将排队等待拥有该锁的资源操作请求释放该锁。在此,所述锁的机制可通过信号量来实现,所述信号量是一种记录型数据结构,其仅能通过两个标准的原子操作来访问,这两个操作被称为P、V操作,在此,P操作表示申请一个资源,即实现资源的加锁,V操作表示释放一个资源,即实现资源的解锁。其中,所述原子操作(简称“原语”)是在计算机操作执行上不可中断的操作。其中,锁的原子操作不可能由软件单独保证一必须需要硬件的支持。例如,在x86平台上,CPU提供了在指令执行期间对总线加锁的手段。CPU芯片上有一条引线#HL0CKpin,如果汇编语言的程序中在一条指令前面加上前缀"LOCK",经过汇编以后的机器代码就使CPU在执行这条指令的时候把#HL0CK pin的电位拉低,持续到这条指令结束时放开,从而把总线锁住,这样同一总线上别的CPU就暂时不能通过总线访问内存了,保证了这条指令在多处理器环境中的原子性。在一示例中(参照图4),在社交网络社区中,两个资源更新请求分别为Rl、R2,且R1、R2在资源树中所对应的资源节点为N1、N2,其中,NI与N2之间为父子关系,当处理设备I在步骤S3中对R1、R2进行并发处理时,在步骤S4中,处理设备I通过该资源树的应用编程接口(API),为资源更新请求Rl对资源节点NI执行P操作,以实现对资源节点NI,以及该资源节点的子树资源节点N2、N4进行加锁,此刻,资源更新请求Rl可更新资源节点NI及其子树资源节点所对应的资源。由于资源更新请求R2所对应的资源节点N2已被加锁,故R2需排队等待直到在步骤S4中处理设备I为Rl执行V操作,以实现对资源节点N1、N2、N4的解锁。当资源节点N2被解锁时,处理设备I在步骤S4中将为资源更新请求R2对资源节点N2执行P操作,以现实对资源节点N2进行加锁,此刻,资源更新请求R2可更新资源节点N2所对应的资源。本领域技术人员应能理解上述冲突检测的方式仅为举例,其他现有的或今后可能出现的冲突检测的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,通过在资源更新请求所对应的资源节点加锁,可防止与该资源节点或该资源节点的子树资源节点所对应的其他资源更新请求与该资源更新请求被同时并行处理,即实现并发处理的冲突检测,从而在并发处理过程中保证资源数据的一致性。在另一优选实施例中(参照图5),该过程还包括步骤S5。在步骤S5中,处理设备I根据与所述多个资源更新请求相对应的资源的更新,建立或更新所述资源树。以下参照图5对该另一优选实施例进行详细描述,其中,在步骤SI中,处理设备I获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;在步骤S2中,处理设备I根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;在步骤S3中,处理设备I根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源;其具体过程与前述参照图5所描述的实施例中处理设备I在步骤S1、步骤S2和步骤S3中所执行的过程相同,为简明起见,以引用方式包含于此,而不做赘述。具体地,在步骤S5中,处理设备I例如通过实时监测其在步骤S3中对资源更新请求的处理,以获得其所增加或删除的资源,并据此通过调用资源树的应用编程接口(API),在资源树中增加或删除该资源所对应的资源节点。若检测到该资源树未建立,则先行初始化该资源树,然后再更新该资源树中的资源节点。在一个示例中(参照图4),在社交网络社区中,一个资源更新请求为删除用户Ul的相册A下的照片P1,处理设备I在步骤S3中处理该资源更新请求以将照片Pl删除,在步骤S5中,处理设备I实时监测该资源请求处理事件,并通过调用资源树的应用编程接口(API),在资源树中删除资源节点N4。本领域技术人员应能理解上述建立或更新资源树的方式仅为举例,其他现有的或今后可能出现的建立或更新资源树的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。在再一优选实施例中(参照图5),该过程还包括步骤S6。当处理设备I在步骤S2中未获取多个资源更新请求所对应的资源标识时,在步骤S6中,处理设备I按照该多个资源更新请求提交时间的先后顺序,对该多个资源更新请求进行串行处理,以更新多个待更新资源。以下参照图5对该再一优选实施例进行详细描述,其中,在步骤SI中,处理设备I获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;在步骤S2中,处理设备I根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;在步骤S3中,处理设备I根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源;其具体过程与前述参照图5所描述的实施例中处理设备I在步骤S1、步骤S2和步骤S3中所执行的过程相同,为简明起见,以引用方式包含于此,而不做赘述。具体地,当处理设备I在步骤S2中未获取到资源标识时,在步骤S6中,处理设备I按照多个资源更新请求提交时间的先后顺序,依次对该等资源更新请求进行串行处理,以更新该等资源更新请求所对应的资源。在一示例中,在社交网络社区中,三个资源更新请求分别为R1、R2和R3。其中,Rl为更新用户Ul相册A下的照片Pl,R2为更新用户Ul的相册A,R3为更新用户U2的博客B,且该等资源更新请求提交时间由先至后的顺序为R2、R1、R3。当处理设备I在步骤S2中未获取到该三个资源更新请求所对应的资源标识时,在步骤S6中,处理设备I按照R1、R2、R3提交的时间的先后顺序,对其进行串行处理,即先更新用户Ul的相册A,再更新用户Ul相册A下的照片P1,最后更新用户U2的博客B。本领域技术人员应能理解上述更新资源的方式仅为举例,其他现有的或今后可能出现的更新资源的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此夕卜,显然“包括” 一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
权利要求
1.一种计算机实现的资源更新方法,其中,该方法包括以下步骤: a获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新; b根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;c根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。
2.根据权利要求1所述的方法,其中,所述步骤c还包括: Cl根据所述资源标识,判断所述多个资源更新请求之间是否存在关联关系;c2根据所述多个资源更新请求之间是否存在关联关系,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。
3.根据权利要求2所述的方法,其中,所述步骤Cl还包括: cll根据所述资源标识,在资源树中进行匹配查询,以获得与所述资源标识相对应的资源节点; cl2根据所述资源节点,按照预定判断规则,判断所述多个资源更新请求之间是否存在关联关系。
4.根据权利要求3所述的方法,其中,所述预定判断规则包括以下至少任一项: -所述资源节点相同,则可判断所述多个资源更新请求之间存在关联关系; -所述资源节点之间具有从属关系,则可判断所述多个资源更新请求之间存在关联关 系O
5.根据权利要求3或4所述的方法,其中,该方法还包括: -当对所述多个资源更新请求进行并发处理,通过对所述多个资源更新请求所对应的资源节点加锁,实现所述并发处理的冲突检测。
6.根据权利要求3至5中任一项所述的方法,其中,该方法还包括: -根据所述多个待更新资源的更新,建立或更新所述资源树信息。
7.根据权利要求1至6中任一项所述的方法,其中,该方法包括: -当未获取所述资源标识,按照所述多个资源更新请求提交的先后顺序,对所述多个资源更新请求进行串行处理,以更新所述多个待更新资源。
8.一种资源更新设备,其中,该设备包括: 请求获取装置,用于获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新; 标识获取装置,用于根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识; 并发处理装置,用于根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。
9.根据权利要求8所述的设备,其中,所述并发处理装置还包括: 第一关系判断单元,用于根据所述资源标识,判断所述多个资源更新请求之间是否存在关联关系; 资源更新单元,用于根据所述多个资源更新请求之间是否存在关联关系,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。
10.根据权利要求9所述的设备,其中,所述第一关系判断单元还包括: 节点获取单元,用于根据所述资源标识,在资源树中进行匹配查询,以获得与所述资源标识相对应的资源节点; 第二关系判断单元,用于根据所述资源节点,按照预定判断规则,判断所述多个资源更新请求之间是否存在关联关系。
11.根据权利要求10所述的设备,其中,所述预定判断规则包括以下至少任一项: -所述资源节点相同,则可判断所述多个资源更新请求之间存在关联关系; -所述资源节点之间具有从属关系,则可判断所述多个资源更新请求之间存在关联关系O
12.根据权利要求10或11所述的设备,其中,该设备还包括: 检测装置,用于当对所述多个资源更新请求进行并发处理,通过对所述多个资源更新请求所对应的资源节点加锁,实现所述并发处理的冲突检测。
13.根据权利要求10至12中任一项所述的设备,其中,该设备还包括: 资源树更新装置,用于根据所述多个待更新资源的更新,建立或更新所述资源树信息。
14.根据权利要求8至13中任一项所述的设备,其中,该设备包括: 串行处理装置,用于当未获取所述资源标识,按照所述多个资源更新请求提交的先后顺序,对所述多个资源 更新请求进行串行处理,以更新所述多个待更新资源。
全文摘要
本发明的目的是提供一种并发的资源更新方法与设备。其中,该方法首先获取多个资源更新请求,分别用于请求对多个待更新资源中各个待更新资源进行更新;接着,根据所述多个资源更新请求,获取与该多个资源更新请求相对应的资源标识;随后,根据所述资源标识,对所述多个资源更新请求进行并发处理,以更新所述多个待更新资源。与现有技术相比,本发明在保证数据的一致性的前提下,实现对各资源更新请求进行并发处理,以提高资源更新请求的处理效率,进而提高对来自用户的资源更新请求的响应速度,提升用户使用体验。
文档编号G06F17/30GK103077174SQ20111032994
公开日2013年5月1日 申请日期2011年10月26日 优先权日2011年10月26日
发明者王耀, 叶青 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1