一种资源控制方法和装置的制作方法

文档序号:6576654阅读:116来源:国知局
专利名称:一种资源控制方法和装置的制作方法
技术领域
本发明属于计算机应用领域,尤其涉及一种资源控制方法和装置。
背景技术
在计算机应用领域,在业务应用使用或者竞争资源的过程中,为了控制并发性,一般需要对资源进行独占性控制,以保证在同一时间只允许一个业务应用使用资源,从而保证业务应用对资源的独占性。其中资源可以为单一资源,如单个数据库物理表、单个方法、单个属性等,或者为复合资源。 现有技术提供了一种通过数据库共享锁来控制资源的独占性的方法。其原理简述如下数据库在获取用户请求时,在满足锁定条件和系统性能之间为数据库加上适当的锁,如行级锁、页级锁、表级锁、盘区锁、数据库级锁等,通过数据库自身锁机制来控制资源的独占状态。这种资源控制方法可以对基于数据库的数据行、数据页、数据表、盘区或整个数据库实现资源独占控制,但难以对基于业务对象模型复合资源实现独占控制,当业务应用涉及复合资源时,无法满足资源独占性控制需求。 现有技术提供了另外一种通过数据库定义资源控制表来对资源独占性进行控制的方法,其原理简述如下采用数据库表描述资源控制信息,通过数据库表来记录资源的独占状态。这种资源控制方法由于通过数据库表来描述资源控制,并记录资源独占状态,从而增加了数据库的网络开销,且当突发异常(如停电、死机等)时,需要手动到数据库中清除资源的独占状态后,其他业务应用才能使用该资源,降低了资源控制的准确性和效率,给用户带来极大的不便。

发明内容
本发明实施例的目的在于提供一种资源控制方法,旨在解决现有的资源控制方法准确率和效率低的问题。 本发明实施例是这样实现的,一种资源控制方法,所述方法包括下述步骤
接收业务应用发送的资源使用请求,获取资源的锁定状态; 当资源的锁定状态为未锁定时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的与资源对应的资源控制实体对象进行加锁处理; 在业务应用使用完资源后,对缓存中与该资源对应的资源控制实体对象进行解锁处理。
本发明实施例的另一目的在于提供一种资源控制装置,所述装置包括 锁定状态获取单元,用于在接收业务应用发送的资源使用请求时,获取资源的锁
定状态; 锁定状态判断单元,用于判断所述锁定状态获取单元获取的资源的锁定状态是否为锁定; 资源控制单元,用于在所述锁定状态判断单元判定资源的锁定状态为未锁定时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的与资源对应的资源控制实体对象进行加锁处理; 解锁处理单元,用于在业务应用使用完资源后,对缓存中与该资源对应的资源控制实体对象进行解锁处理。 在本发明实施例中,通过采用资源控制实体对象来描述资源控制,通过缓存来存储资源的锁定状态,并根据业务应用对资源的使用情况对缓存中存储的资源的锁定状态进行加锁和解锁控制,以实现对资源的独占性进行控制,提高了资源独占控制的准确性和效率。


图1是本发明实施例提供的资源控制方法的实现流程 图2是本发明实施例提供的资源控制实体模型的示意 图3是本发明实施例提供的资源逻辑控制类的示意 图4是本发明实施例提供的资源控制装置的结构框图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 在本发明实施例中,通过采用资源控制实体对象来描述资源控制,通过缓存来存储资源的锁定状态,并根据业务应用对资源的使用情况对缓存中存储的资源的锁定状态进行控制,以实现对资源的独占控制,提高了资源独占控制的准确性和效率。
图1示出了本发明实施例提供的资源控制方法的实现流程,详述如下
在步骤S101中,接收业务应用发送的资源使用请求,获取该资源的锁定状态。
在本发明实施例中,当业务应用需要使用资源时,可以通过发送资源使用请求来请求该资源使用请求指定的资源的使用权。其中资源可以为单一资源,如单个数据库物理表、单个方法、单个属性等,也可以为复合资源。用户可以自行定义资源为单个资源还是复合资源。 其中获取资源的锁定状态的步骤具体如下 判断缓存中是否存储有与资源使用请求指定的资源对应的资源控制实体对象,如果否,则获取的资源的锁定状态为未锁定,如果是,从缓存中读取与资源对应的资源控制实体对象的锁定状态,并将与该资源对应的资源控制实体对象的锁定状态作为资源的锁定状态。 其中资源的锁定状态包括锁定和未锁定两种。分别用true来标识锁定状态,用false标识未锁定状态,当资源的锁定状态为锁定时,说明有业务应用正在使用该资源,其他业务应用无法使用该资源,否则说明没有业务应用正在使用该资源,其他业务应用可以正常使用该资源。 其中资源控制实体对象用于描述资源控制。当缓存中存储有与资源对应的资源控 制实体对象时,表示该资源在此之前已被使用或者正在被使用,已经处于资源控制状态,否 则表示该资源在此之前没有被使用过,该资源还处于未控制状态。当资源处于未控制状态 时,当前业务应用对该资源的使用请求是被允许的。 在步骤S102中,判断资源的锁定状态为锁定还是未锁定,如果判定为未锁定,执 行步骤S103,如果判定为锁定,执行步骤S105。 在步骤S103中,根据预设的资源控制实体模型创建与该资源对应的资源控制实 体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加 锁处理,或者直接对缓存中存储的与该资源对应的资源控制实体对象进行加锁处理。其具 体步骤如下 当缓存中存储有与该资源对应的资源控制实体对象,且与该资源对应的资源控制 实体对象的锁定状态为未锁定时,直接对缓存中存储的与该资源对应的资源控制实体对象 进行加锁处理; 当缓存中未存储与该资源对应的资源控制实体对象时,根据预设的资源控制实体 模型创建与该资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中, 并对创建的资源控制实体对象进行加锁处理。 其中预设的资源控制实体模型包括资源控制对象标识、资源控制对象的锁定状 态。其中资源控制对象标识用于唯一标识资源控制对象。资源控制对象的锁定状态用于记 录资源控制对象的锁定状态。在本发明实施例中,资源控制对象的锁定状态包括锁定和未 锁定两种状态,分别用true来标识锁定状态,用false标识未锁定状态,当资源控制对象的 锁定状态为锁定时,说明有业务应用正在使用该资源,其他业务应用无法使用该资源,否则 说明没有业务应用正在使用该资源,其他业务应用可以正常使用该资源。
在本发明另一实施例中,该资源控制实体对象还包括锁定时间。该锁定时间是锁 定资源控制对象的时间。当然,还可以根据实际的需求,进一步扩展资源控制实体模型。请 参阅图2,为本发明实施例提供的资源控制实体模型的示意图,但不以该示意图为限。
在根据预设的资源控制实体模型创建与该资源对应的资源控制实体对象时,创建 的资源控制实体对象的资源控制对象标识为该资源的唯一标识。
对资源控制实体对象进行加锁处理的步骤具体如下 将资源控制实体对象的锁定状态设置为锁定(true)。同时如果该资源控制实体对 象还包括锁定时间,则将对资源控制实体对象进行加锁处理时的时间设置为该资源控制实 体对象的锁定时间。 在步骤S104中,在业务应用使用完资源后,对缓存中与该资源对应的资源控制实 体对象进行解锁处理,至此,资源控制结束。其具体步骤如下 将缓存中与该资源对应的资源控制实体对象的锁定状态设置为未锁定(false)。 同时如果该资源控制实体对象还包括锁定时间,则清除资源控制实体对象的锁定时间。
在本发明实施例中,在具体实现时,可以通过设置资源逻辑控制类来实现对资源 控制的管理。请参阅图3,为本发明实施例提供的资源逻辑控制类的示意图,但不以该示 意图为限。该资源逻辑控制类包括资源控制实体对象集合(NetAccessList)、加锁方法(Lock)、解锁方法(UnLock)和锁定状态获取方法(GetStatus)。其中资源控制实体对象集 合用于记录创建的与资源对应的资源控制实体对象。加锁方法用于对指定的资源控制实体 对象进行加锁处理,即设置指定的资源控制实体对象的锁定状态为锁定(true),并设置指 定的资源控制实体对象的锁定时间为当前时间。加锁方法用于对指定的资源控制实体对象 进行解锁处理,即设置指定的资源控制实体对象的锁定状态为未锁定(true),并清除资源 控制实体对象的锁定时间。 在步骤S105中,将该资源使用请求增加至资源等待队列中,并重新执行步骤 SlOl。 为了使资源控制更加方便、快捷,同时提高资源控制的准确性和有效性,在本发明 另一实施例中,该方法还包括下述步骤 当系统发生异常时,回收缓存中存储的资源控制实体对象,清除对资源的控制。其 中系统发生异常是指系统由于死机、断电等原因导致业务应用对资源的使用异常终止。
图4示出了本发明实施例提供的资源控制装置的结构,为了便于说明,仅示出了 与本发明实施例相关的部份。其中 锁定状态获取单元1在接收到业务应用发送的资源使用请求时,获取该资源的锁 定状态。其中资源可以为单一资源,如单个数据库物理表、单个方法、单个属性等,也可以为 复合资源。用户可以自行定义资源为单个资源还是复合资源。 该锁定状态获取单元1包括第一锁定状态确定模块11和第二锁定状态确定模块 12。其中 第一锁定状态确定模块11在缓存中未存储与资源对应的资源控制实体对象时, 确定资源的锁定状态为未锁定。 第二锁定状态确定模块12在缓存中存储有与资源对应的资源控制实体对象时,
从缓存中读取与资源对应的资源控制实体对象的锁定状态,并将读取的资源控制实体对象
的锁定状态确定为资源的锁定状态。其中资源的锁定状态包括锁定和未锁定两种。 其中资源控制实体对象用于描述资源控制。当缓存中存储有与资源对应的资源控
制实体对象时,表示该资源在此之前已被使用或者正在被使用,已经处于资源控制状态,否
则表示该资源在此之前没有被使用过,该资源还处于未控制状态。当资源处于未控制状态
时,当前业务应用对该资源的使用请求是被允许的。 锁定状态判断单元2判断锁定状态获取单元1获取的资源的锁定状态为锁定还是 未锁定。 资源控制单元3在锁定状态判断单元2判定资源的锁定状态为未锁定时,根据预 设的资源控制实体模型创建与该资源对应的资源控制实体对象,将创建的资源控制实体对 象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的 与该资源对应的资源控制实体对象进行加锁处理。 该资源控制单元3包括实体对象创建模块31和加锁处理模块32。其中 实体对象创建模块31在缓存中未存储与资源对应的资源控制实体对象时,根据
预设的资源控制实体模型创建与该资源对应的资源控制实体对象,并将创建的资源控制实
体对象存储至缓存中。 加锁处理模块32在缓存中存储的与资源对应的资源控制实体对象的锁定状态为
7未锁定时,直接对缓存中存储的与该资源对应的资源控制实体对象进行加锁处理,或者对 实体对象创建模块31创建的资源控制实体对象进行加锁处理。其中对资源控制实体对象 进行加锁处理的步骤具体如下 将资源控制实体对象的锁定状态设置为锁定(true)。同时如果该资源控制实体对 象还包括锁定时间,则将对资源控制实体对象进行加锁处理时的时间设置为该资源控制实 体对象的锁定时间。 解锁处理单元4在业务应用使用完资源后,对缓存中与该资源对应的资源控制实 体对象进行解锁处理。其具体步骤如下 将缓存中与该资源对应的资源控制实体对象的锁定状态设置为未锁定(false)。 同时如果该资源控制实体对象还包括锁定时间,则清除资源控制实体对象的锁定时间。
资源等待队列控制单元5在锁定状态判断单元2判定资源的锁定状态为锁定时, 将接收的资源使用请求增加至资源等待队列中。 为了使资源控制更加方便、快捷,同时提高资源控制的准确性和有效性,在本发明 另一实施例中,该装置还包括控制资源释放单元6。该控制资源释放单元6在系统发生异常 时,回收缓存中存储的资源控制实体对象,以清除对资源的控制。 在本发明实施例中,通过采用资源控制实体对象来描述资源控制,通过缓存来存 储资源的锁定状态,并根据业务应用对资源的使用情况对缓存中存储的资源的锁定状态进 行加锁和解锁控制,以实现对资源的独占性进行控制,提高了资源独占控制的准确性和效 率。在系统发生异常时,通过回收缓存中存储的资源控制实体对象,清除对资源的控制,从 而进一步提高资源控制的准确性和有效性。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
8
权利要求
一种资源控制方法,其特征在于,所述方法包括下述步骤接收业务应用发送的资源使用请求,获取资源的锁定状态;当资源的锁定状态为未锁定时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的与资源对应的资源控制实体对象进行加锁处理;在业务应用使用完资源后,对缓存中与该资源对应的资源控制实体对象进行解锁处理。
2. 如权利要求1所述的方法,其特征在于,在所述获取资源的锁定状态的步骤之后,所述方法还包括下述步骤判断资源的锁定状态为锁定还是未锁定;当资源的锁定状态为锁定时,将所述资源使用请求增加至资源等待队列中。
3. 如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤当系统发生异常时,回收缓存中存储的资源控制实体对象,清除对资源的控制。
4. 如权利要求1至3任一权利要求所述的方法,其特征在于,所述获取资源的锁定状态的步骤具体包括判断缓存中是否存储有与资源对应的资源控制实体对象,如果否,则获取的资源的锁定状态为未锁定,如果是,从缓存中读取与资源对应的资源控制实体对象的锁定状态作为资源的锁定状态。
5. 如权利要求4所述的方法,其特征在于,所述当资源的锁定状态为未锁定时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的与资源对应的资源控制实体对象进行加锁处理的步骤具体包括当缓存中存储有与资源对应的资源控制实体对象,且与资源对应的资源控制实体对象的锁定状态为未锁定时,直接对缓存中存储的与该资源对应的资源控制实体对象进行加锁处理;当缓存中未存储与资源对应的资源控制实体对象时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理。
6. 如权利要求5所述的方法,其特征在于,所述资源控制实体模型包括资源控制对象标识、资源控制对象的锁定状态。
7. —种资源控制装置,其特征在于,所述装置包括锁定状态获取单元,用于在接收业务应用发送的资源使用请求时,获取资源的锁定状态;锁定状态判断单元,用于判断所述锁定状态获取单元获取的资源的锁定状态是否为锁定;资源控制单元,用于在所述锁定状态判断单元判定资源的锁定状态为未锁定时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的与资源对应的资源控制实体对象进行加锁处理;解锁处理单元,用于在业务应用使用完资源后,对缓存中与该资源对应的资源控制实体对象进行解锁处理。
8. 如权利要求7所述的装置,其特征在于,所述装置还包括资源等待队列控制单元,用于在所述锁定状态判断单元判定资源的锁定状态为锁定时,将接收的资源使用请求增加至资源等待队列中。
9. 如权利要求7所述的装置,其特征在于,所述装置还包括控制资源释放单元,用于在系统发生异常时,回收缓存中存储的资源控制实体对象,以清除对资源的控制。
10. 如权利要求7至9任一权利要求所述的装置,其特征在于,所述锁定状态获取单元包括第一锁定状态确定模块,用于在缓存中未存储与资源对应的资源控制实体对象时,确定资源的锁定状态为未锁定。第二锁定状态确定模块,用于在缓存中存储有与资源对应的资源控制实体对象时,从缓存中读取与资源对应的资源控制实体对象的锁定状态,并将读取的资源控制实体对象的锁定状态确定为资源的锁定状态。
11. 如权利要求7至9任一权利要求所述的装置,其特征在于,所述资源控制单元包括实体对象创建模块,用于在缓存中未存储与资源对应的资源控制实体对象时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,并将创建的资源控制实体对象存储至缓存中。加锁处理模块,用于在缓存中存储的与资源对应的资源控制实体对象的锁定状态为未锁定时,直接对缓存中存储的与该资源对应的资源控制实体对象进行加锁处理,或者对所述实体对象创建模块创建的资源控制实体对象进行加锁处理。
全文摘要
本发明适用于计算机应用领域,提供了一种资源控制方法和装置,该方法包括接收业务应用发送的资源使用请求,获取资源的锁定状态;当资源的锁定状态为未锁定时,根据预设的资源控制实体模型创建与资源对应的资源控制实体对象,将创建的资源控制实体对象存储至缓存中,并对创建的资源控制实体对象进行加锁处理,或者直接对缓存中存储的与资源对应的资源控制实体对象进行加锁处理;在业务应用使用完资源后,对缓存中与该资源对应的资源控制实体对象进行解锁处理。本发明通过采用资源控制实体对象描述资源控制,通过缓存存储资源的锁定状态,并根据资源的使用情况对资源的锁定状态进行加锁和解锁控制,从而提高了资源独占控制的准确性和效率。
文档编号G06F9/46GK101697136SQ20091011033
公开日2010年4月21日 申请日期2009年10月27日 优先权日2009年10月27日
发明者韦光亮 申请人:金蝶软件(中国)有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1