CN107402821A - 共享资源的访问控制方法、装置和设备 - Google Patents

共享资源的访问控制方法、装置和设备 Download PDF

Info

Publication number
CN107402821A
CN107402821A CN201710532415.7A CN201710532415A CN107402821A CN 107402821 A CN107402821 A CN 107402821A CN 201710532415 A CN201710532415 A CN 201710532415A CN 107402821 A CN107402821 A CN 107402821A
Authority
CN
China
Prior art keywords
lock
resource
user
record
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710532415.7A
Other languages
English (en)
Other versions
CN107402821B (zh
Inventor
甘剑峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710532415.7A priority Critical patent/CN107402821B/zh
Publication of CN107402821A publication Critical patent/CN107402821A/zh
Application granted granted Critical
Publication of CN107402821B publication Critical patent/CN107402821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种共享资源的访问控制方法、装置和设备,该方法包括:根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;根据该维护结果,确定该用户对该共享资源的访问权限。

Description

共享资源的访问控制方法、装置和设备
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种共享资源的访问控制方法、装置和设备。
背景技术
在现有的多应用服务器之间共享资源的访问方案中,通常需要借助zookeeper,redis等第三方组件***实现分布式锁。这些分布式锁的实现方式较为复杂,需要引入复杂的协调机制。此外,对使用分布式锁的***来说,其接入成本比较高,需要额外引入部署一个管理分布式锁的***,增加了额外的接入成本和维护成本。
如何在实现共享资源的分布式锁的前提下减少成本,是本申请所要解决的技术问题。
发明内容
本申请实施例的目的是提供一种共享资源的访问控制方法、装置和设备,以减少实现分布式锁的成本。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出了一种共享资源的访问方法,该方法包括:
根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
根据该维护结果,确定该用户对该共享资源的访问权限。
第二方面,提出了一种共享资源访问装置,该装置包括:
获取单元,根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
维护单元,在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
确定单元,根据该维护结果,确定该用户对该共享资源的访问权限。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
根据该维护结果,确定该用户对该共享资源的访问权限。
第四方面,提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序当被包括多个应用程序的电子设备执行时,使得该电子设备执行以下操作:
根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
根据该维护结果,确定该用户对该共享资源的访问权限。
由以上本申请实施例提供的技术方案可见,本申请实施例通过根据用户的访问请求维护共享资源在资源锁表中的资源锁占用记录,然后根据维护结果确定用户的访问权限,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例共享资源的访问控制方法流程图。
图2是本申请的一个实施例共享资源的锁控制方案示意图。
图3是本申请的一个实施例共享资源的访问控制方法的详细流程图。
图4是本申请的一个实施例共享资源的访问控制方法的详细流程图。
图5是本申请的一个实施例共享资源的访问控制方法的详细流程图。
图6是本申请的一个实施例电子设备的结构示意图。
图7是本申请的一个实施例共享资源访问控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1是本申请的一个实施例共享资源的访问控制方法流程图。图1的方法可由共享资源访问控制装置执行。该方法可包括:
S102,根据用户对共享资源的访问请求,获取该共享资源对应的锁标识。
应理解,在本申请实施例中,共享资源对应的锁标识,可以唯一标识该共享对象资源。
应理解,在本申请实施例中,共享对象资源,可以是一种硬件资源,也可以是一种软件资源,例如存储空间资源、操作资源等等。
S104,在资源锁表中维护该锁标识对应的资源锁占用记录。
其中,该资源锁表用于存储共享资源的资源锁占用记录。
S104,根据该维护结果,确定该用户对该共享资源的访问权限。
本申请实施例中,通过根据用户的访问请求维护共享资源在资源锁表中的资源锁占用记录,然后根据维护结果确定用户的访问权限,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
可选地,作为一个实施例,该资源锁占用记录包括该共享资源的锁使用者和锁过期时间,其中,步骤S104具体可实现为:
在资源锁表中维护该锁标识对应的资源锁占用记录中的锁使用者和锁过期时间。
在本申请实施例的一种具体实现方式中,步骤S104具体可实现为:
如果该资源锁表中不存在该锁标识对应的资源锁占用记录,则在该资源锁表中增加该锁标识对应的资源锁占用记录,将锁使用者记录为该用户,并记录锁过期时间;
其中,步骤S106具体可实现为:
如果该维护结果表示增加该资源锁占用记录成功,确定该用户对该共享资源具备访问权限。
本申请实施例中,当资源锁表中不存在锁标识对应的资源锁占用记录时,确定该用户对该共享资源具备访问权限,并增加锁标识对应的资源锁占用记录以持有对共享资源的锁,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
在本申请实施例的另一种具体实现方式中,步骤S104具体可实现为:
如果该资源锁表中存在该锁标识对应的资源锁占用记录,且该资源锁占用记录的锁使用者为该用户,则更新锁过期时间;
其中,步骤S106具体可实现为:
如果该维护结果表示更新该资源锁占用记录成功,确定该用户对该共享资源具备访问权限。
本申请实施例中,当资源锁表中存在锁标识对应的资源锁占用记录时,确定该用户对该共享资源具备访问权限,并更新锁标识对应的资源锁占用记录的锁过期时间以保持持有对共享资源的锁,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
在本申请实施例的再一种具体实现方式中,步骤S104具体可实现为:
如果该资源锁表中存在该锁标识对应的资源锁占用记录,且当前时间大于或等于锁过期时间,则更新该资源锁占用记录的锁使用者为该用户,并更新锁过期时间;
其中,步骤S106具体可实现为:
如果该维护结果表示更新该资源锁占用记录成功,则确定该用户对该共享资源不具备访问权限。
本申请实施例中,当资源锁表中存在锁标识对应的资源锁占用记录时,且当前时间已超出锁过期时间,确定该用户对该共享资源具备访问权限,并更新锁标识对应的资源锁占用记录锁使用者和锁过期时间以持有对共享资源的锁,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
在本申请实施例的再一种具体实现方式中,步骤S104具体可实现为:
如果该资源锁表中存在该锁标识对应的资源锁占用记录,且该资源锁占用记录的锁使用者不是该用户,且当前时间小于锁过期时间,则不更新该资源锁占用记录;
其中,步骤S106具体可实现为:
如果该维护结果表示未对该资源锁占用记录进行更新,则确定该用户对该共享资源不具备访问权限。
本申请实施例中,当资源锁表中存在锁标识对应的资源锁占用记录时,且该资源锁占用记录的锁使用者不是该用户,且当前时间小于锁过期时间,确定该用户对该共享资源不具备访问权限,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
可选地,该方法还包括:在对该共享对象的访问结束后,释放该共享资源对应的资源锁占用记录的锁资源。
进一步地,释放该资源锁占用记录的锁资源,包括:
重新获取该共享资源对应的资源锁占用记录;
如果重新获取的该资源锁占用记录中的锁使用者为该用户,则删除该资源锁占用记录。
本申请实施例中,在对该共享对象的访问结束后,重新获取该共享资源对应的资源锁占用记录,并在如果重新获取的该资源锁占用记录中的锁使用者为该用户时删除该资源锁占用记录以释放锁资源,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
进一步地,释放该资源锁占用记录的锁资源,包括:
重新获取该共享资源对应的资源锁占用记录;
如果重新获取的该资源锁占用记录中的锁使用者不是该用户,则不执行删除操作直接返回。
本申请实施例中,在对该共享对象的访问结束后,重新获取该共享资源对应的资源锁占用记录,并在如果重新获取的该资源锁占用记录中的锁使用者不是该用户时直接返回,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
可选地,该资源锁表为数据库中的资源锁表。
可选地,该共享资源的多个访问请求来自于同一个分布式***;或者,该共享资源的多个访问请求来自于不同的分布式***。
下面,将结合具体的实施例,对本申请实施例的方案做进一步的描述。
图2是本申请的一个实施例共享资源的锁控制方案示意图。在图2所示的示意图中,以数据库存储共享资源的资源锁表。当然,应理解,在本申请实施例中,也可采用其它方式存储资源锁表,例如,文件列表等等。显然,采用数据库存储的方式是使得资源锁表能够便于共享维护的一种较佳的方式。下面将以图2的锁控制方案为例介绍本申请图1所示实施例。
如图2所示,可在数据库(DB)中建一张资源锁表(RES_LOCK_TABLE)来保存资源锁占用记录。应用***所在的服务器可通过访问该资源锁表,实现共享资源的资源锁。应理解,访问资源锁表的应用***,可以属于一个分布式***,也可以分别属于多个不同的分布式***。
优选地,在图2所示的场景中,可封装访问资源锁表的组件接口,并提供给应用***,与应用***部署在同一个服务器上。例如,在图2所示的场景中,该组件接口可以是Lock_client.jar的组件包。
在资源锁表中,所有的共享资源都可以按规则抽象为一个key字符串来表示,一个key唯一的表示一个共享资源。组件接口可通过传递与key有关的参数对共享资源的锁资源占用记录进行操作。对锁资源占用记录的操作,可包括加锁(lock)、解锁(unlock)、续期锁(renewLock)等类型,相应地,组件接口可包括加锁(lock)、解锁(unlock)、续期锁(renewLock)等API。
当应用请求某个共享资源时,按规则抽象拼接出代表该共享资源的key,以key为参数调用Lock_client.jar提供的锁操作API。组件Lock_client.jar根据锁资源key,通过sql查询/更新/***对应资源锁记录,当sql更新/***成功,则说明锁操作请求成功,否则失败。
可选地,可将共享资源按规则抽象为树形结构的字符串作为资源key,可类似于文件目录结构,例如:/***/业务/场景/操作/任务ID。按这种方式抽象,能够比较形象清晰地表示资源之间的归属和层级关系,也能比较好的确保资源key不重复。根据资源的实际情况,抽象出的树形目录结构层级可长可短,灵活应用,只要能够方便标识出唯一资源即可。当然,还可将共享资源按规则抽象成其它类型的资源key,本申请实施例对此不作限制。
应理解,共享资源,可包括CPU资源、网络端口资源、外设资源、存储资源等。此外,共享资源还可包括操作资源。为便于理解,下面示出了批处理***中使用到的操作资源的资源key的一种抽象方式,如表1所示:
表1:
使用场景 资源key
任务执行 /Fundmng/TSKHDL/EXECUTE/TSK_20170207_01102818
任务分片执行 /Fundmng/TSKHDL/EXECUTE/SLC_20130606_00002781
任务扫描 /Fundmng/TSKHDL/SCAN
任务创建 /Fundmng/TSKHDL/CREATE
此外,应理解,资源锁表中,可包括多个字段,锁标识、锁使用者和锁过期时间。其中,锁标识,即共享资源对应的锁标识,如图2所示的资源key;锁使用者,即共享资源在资源锁表记录的当前锁使用者;锁过期时间,即共享资源在资源锁表记录的锁过期时间。当然,还可能存在其它的字段,例如,资源锁表记录ID,等等。资源锁表的一种数据结构如表2所示:
表2:
字段名 说明 备注
Id 锁id LCK_年月日_序列号
lockKey 锁资源key 锁唯一标识,唯一索引字段
lockClient 锁使用者 服务器域名:线程号
expiredTime 锁过期时间 超过此时间,锁不再生效
基于前面的资源锁表结构和组件接口,结合图3-图5,对图1所示实施例进行说明。在图3-图5所示实施例中,资源锁表名称如图2所示的res_lock_table,资源锁表字段如表2所示的字段结构。
图3是本申请的一个实施例共享资源的访问控制方法的详细流程图。本申请实施例的方案,可应用于对共享资源加锁以占用共享资源的场景中。图3的方法可包括:
302,构造锁资源关键字。
在本申请实施例中,共享资源访问控制装置可根据用户将要访问的共享资源,构造该共享资源的造锁资源关键字。构造锁资源关键字时,只需保证资源关键字能够唯一标识共享资源,与共享资源一一对应,其具体实现方式并不作限制。例如,可通过共享资源的名称、编号、所述设备标识等信息,确定资源关键字,等等。
304,根据关键字查询锁记录。
在得到关键字后,可根据关键字查询锁记录。不妨假设关键字为KEY。
此时,可执行SQL语句“select*from res_lock_table where lockey=KEY”。当然,应理解,此处的SQL语句仅仅是示例性的,在实际的应用中,具体执行的SQL语句可能不同。
306,判断记录是否存在。
如果执行SQL语句返回0条记录,说明记录不存在,则执行步骤308。
如果执行SQL语句返回1条记录,说明记录存在,执行步骤310。
308,***锁记录。
如果不存在KEY对应的锁记录,可在res_lock_table***一条记录,其中的锁资源key(lockKey)为KEY,锁使用者(lockclient)为将要访问该共享资源的用户,过期时间(expiredTime)为用户预计准备停止访问共享资源的时间,不妨假设为TIME。此外,还可在该记录中写入锁id(ID),例如,LCK_年月日_序列号,等等。
执行***操作后,执行步骤318。
310,判断是否同一个锁使用者。
如果存在KEY对应的锁记录,则可获取锁记录中的锁使用者,并判断锁记录的锁使用者与准备访问共享资源的用户是否同一个锁使用者。
如果是,则执行步骤312。
如果否,则执行步骤314.
312,更新过期时间。
如果锁记录的锁使用者与准备访问共享资源的用户是同一个锁使用者,则直接更新锁记录中的过期时间(expiredTime)为用户预计准备停止访问共享资源的时间。
314,判断锁是否超时。
如果锁记录的锁使用者与准备访问共享资源的用户不是同一个锁使用者,则获取锁记录的过期时间,以判断锁是否超时。
如果当前时间晚于过期时间,则说明锁未超时,执行步骤320。
如果当前时间早于或等于过期时间,则说明锁超时,执行步骤316。
316,更新锁使用者和过期时间。
如果当前时间早于或等于过期时间,则将锁使用者(lockclient)更新为将要访问该共享资源的用户,过期时间(expiredTime)更新为用户预计准备停止访问共享资源的时间。
更新完毕后,执行步骤318。
318,加锁成功。
加锁成功后,可返回表示加锁成功的信息,例如,返回锁记录的锁ID。
320,加锁失败。
加锁失败后,可返回表示加锁失败的信息,例如,返回空值或NULL。
当然,应理解,在本申请实施例中,也采用如图2所示的Lock_client.jar组件的调用接口。在本申请实施例中,需要关键字和过期时间两个参数。不妨假设Lock_client.jar中加锁函数为lock函数,则可通过调用lock(KEY,TIME),实现步骤304-320所示的功能。
共享资源访问控制装置可根据lock(KEY,TIME)返回的结果判断是否加锁成功。例如,当lock(KEY,TIME)返回一个锁ID时,表明加锁成功,可以对KEY对应的共享资源进行访问;当lock(KEY,TIME)返回空值或null时,表明加锁失败,不能对KEY对应的共享资源进行访问。
图4是本申请的一个实施例共享资源的访问控制方法的详细流程图。本申请实施例的方案,可应用于对共享资源的资源锁进行续期以持续占用共享资源的场景中。图4的方法可包括:
402,构造锁资源关键字。
步骤402的具体实现可参考图3对应的步骤302。
404,根据关键字查询锁记录。
步骤404的具体实现可参考图3对应的步骤304。
406,判断记录是否存在。
如果记录存在,执行步骤408。
如果记录不存在,执行步骤414。
408,判断是否同一个锁使用者。
如果存在KEY对应的锁记录,则可获取锁记录中的锁使用者,并判断锁记录的锁使用者与准备访问共享资源的用户是否同一个锁使用者。
如果是,执行步骤410。
如果否,执行步骤414。
410,更新过期时间。
步骤410的具体实现可参考图3的步骤312。
412,续期成功。
续期成功后,可返回表示加锁成功的信息,例如,返回锁记录的锁ID。
414,续期失败。
续期失败后,可返回表示续期失败的信息,例如,返回空值或NULL。
当然,应理解,在本申请实施例中,也可采用如图2所示的Lock_client.jar组件的调用接口。在本申请实施例中,需要关键字和过期时间两个参数。不妨假设Lock_client.jar中续期函数为reNewLock函数,则可通过调用reNewLock(KEY,TIME),实现步骤404-414所示的功能。
共享资源访问控制装置可根据lock(KEY,TIME)返回的结果判断是否续期成功。例如,当reNewLock(KEY,TIME)返回一个锁ID时,表明续期成功,可以继续对KEY对应的共享资源进行访问;当reNewLock(KEY,TIME)返回空值或null时,表明续期失败,不能继续对KEY对应的共享资源进行访问。
图5是本申请的一个实施例共享资源的访问控制方法的详细流程图。本申请实施例的方案,可应用于对共享资源的资源锁进行释放以取消占用共享资源的场景中。图5的方法可包括:
502,构造锁资源关键字。
步骤502的具体实现可参考图3对应的步骤302。
504,根据关键字查询锁记录。
步骤504的具体实现可参考图3对应的步骤304。
506,判断记录是否存在。
如果记录存在,执行步骤508。
如果记录不存在,执行步骤516。
508,判断是否同一个锁使用者。
如果存在KEY对应的锁记录,则可获取锁记录中的锁使用者,并判断锁记录的锁使用者与准备访问共享资源的用户是否同一个锁使用者。
如果是,执行步骤510。
如果否,执行步骤516。
510,删除锁记录。
512,判断删除是否成功。
如果删除成功,执行步骤514。
如果删除失败,执行步骤516。
514,解锁成功。
如果解锁成功,可返回解锁成功的信息。例如1表示成功,0表示失败,则返回1。
516,解锁失败。
如果解锁失败,可返回解锁失败的信息。例如1表示成功,0表示失败,则返回0。
当然,应理解,在本申请实施例中,也可采用如图2所示的Lock_client.jar组件的调用接口。在本申请实施例中,需要关键字参数。不妨假设Lock_client.jar中解锁函数为unLock函数,则可通过调用unLock(KEY),实现步骤504-516所示的功能。
共享资源访问控制装置可根据unLock(KEY)返回的结果判断是否续期成功。例如,当unLock(KEY)返回1时,表明解锁成功;当unLock(KEY)返回0时,表明解锁失败。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图6是本申请的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
根据该维护结果,确定该用户对该共享资源的访问权限。
上述如本申请图1、图3-图5所示实施例揭示的共享资源访问控制装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现共享资源访问控制装置在图1、图3-图5所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
根据该维护结果,确定该用户对该共享资源的访问权限。
图7是本申请的一个实施例共享资源访问控制装置700的结构示意图。请参考图7,在一种软件实施方式中,共享资源访问控制装置700可包括:
获取单元710,根据用户对共享资源的访问请求,获取该共享资源对应的锁标识;
维护单元720,在资源锁表中维护该锁标识对应的资源锁占用记录,该资源锁表用于存储共享资源的资源锁占用记录;
确定单元730,根据该维护结果,确定该用户对该共享资源的访问权限。
本申请实施例中,通过根据用户的访问请求维护共享资源在资源锁表中的资源锁占用记录,然后根据维护结果确定用户的访问权限,从而能够以较为简单的方式实现资源锁,减少了实现资源锁的成本。
可选地,作为一个实施例,该资源锁占用记录包括该共享资源的锁使用者和锁过期时间,维护单元720具体用于:
在资源锁表中维护该锁标识对应的资源锁占用记录中的锁使用者和锁过期时间。
在本申请实施例的一种具体实现方式中,维护单元720具体用于:如果该资源锁表中不存在该锁标识对应的资源锁占用记录,则在该资源锁表中增加该锁标识对应的资源锁占用记录,将锁使用者记录为该用户,并记录锁过期时间;
其中,确定单元730具体用于:如果该维护结果表示增加该资源锁占用记录成功,确定该用户对该共享资源具备访问权限。
在本申请实施例的另一种具体实现方式中,维护单元720具体用于:如果该资源锁表中存在该锁标识对应的资源锁占用记录,且该资源锁占用记录的锁使用者为该用户,则更新锁过期时间;
其中,确定单元730具体用于:如果该维护结果表示更新该资源锁占用记录成功,确定该用户对该共享资源具备访问权限。
在本申请实施例的再一种具体实现方式中,维护单元720具体用于:如果该资源锁表中存在该锁标识对应的资源锁占用记录,且当前时间大于或等于锁过期时间,则更新该资源锁占用记录的锁使用者为该用户,并更新锁过期时间;
其中,确定单元730具体用于:如果该维护结果表示更新该资源锁占用记录成功,则确定该用户对该共享资源不具备访问权限。
在本申请实施例的再一种具体实现方式中,维护单元720具体用于:如果该资源锁表中存在该锁标识对应的资源锁占用记录,且该资源锁占用记录的锁使用者不是该用户,且当前时间小于锁过期时间,则不更新该资源锁占用记录;
其中,确定单元730具体用于:如果该维护结果表示未对该资源锁占用记录进行更新,则确定该用户对该共享资源不具备访问权限。
共享资源访问控制装置700还包括释放单元740,在对该共享对象的访问结束后,释放该共享资源对应的资源锁占用记录的锁资源。
可选地,作为一个实施例,获取单元710用于重新获取该共享资源对应的资源锁占用记录;释放单元740用于如果重新获取的该资源锁占用记录中的锁使用者为该用户,则删除该资源锁占用记录。
可选地,作为一个实施例,获取单元710用于重新获取该共享资源对应的资源锁占用记录;释放单元740用于如果重新获取的该资源锁占用记录中的锁使用者不是该用户,则不执行删除操作直接返回。
可选地,该资源锁表为数据库中的资源锁表。
可选地,该共享资源的多个访问请求来自于同一个分布式***;或者,该共享资源的多个访问请求来自于不同的分布式***。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (14)

1.一种共享资源的访问控制方法,包括:
根据用户对共享资源的访问请求,获取所述共享资源对应的锁标识;
在资源锁表中维护所述锁标识对应的资源锁占用记录,所述资源锁表用于存储共享资源的资源锁占用记录;
根据所述维护结果,确定所述用户对所述共享资源的访问权限。
2.如权利要求1所述的方法,
所述资源锁占用记录包括所述共享资源的锁使用者和锁过期时间,
在资源锁表中维护所述锁标识对应的资源锁占用记录,包括:
在资源锁表中维护所述锁标识对应的资源锁占用记录中的锁使用者和锁过期时间。
3.如权利要求2所述的方法,
在资源锁表中维护所述锁标识对应的资源锁占用记录,包括:如果所述资源锁表中不存在所述锁标识对应的资源锁占用记录,则在所述资源锁表中增加所述锁标识对应的资源锁占用记录,将锁使用者记录为所述用户,并记录锁过期时间;
根据所述维护结果,确定所述用户对所述共享资源的访问权限,包括:如果所述维护结果表示增加所述资源锁占用记录成功,确定所述用户对所述共享资源具备访问权限。
4.如权利要求2所述的方法,
在资源锁表中维护所述锁标识对应的资源锁占用记录,包括:如果所述资源锁表中存在所述锁标识对应的资源锁占用记录,且所述资源锁占用记录的锁使用者为所述用户,则更新锁过期时间;
根据所述维护结果,确定所述用户对所述共享资源的访问权限,包括:如果所述维护结果表示更新所述资源锁占用记录成功,确定所述用户对所述共享资源具备访问权限。
5.如权利要求2所述的方法,
在资源锁表中维护所述锁标识对应的资源锁占用记录,包括:如果所述资源锁表中存在所述锁标识对应的资源锁占用记录,且当前时间大于或等于锁过期时间,则更新所述资源锁占用记录的锁使用者为所述用户,并更新锁过期时间;
根据所述维护结果,确定所述用户对所述共享资源的访问权限,包括:如果所述维护结果表示更新所述资源锁占用记录成功,则确定所述用户对所述共享资源不具备访问权限。
6.如权利要求2所述的方法,
在资源锁表中维护所述锁标识对应的资源锁占用记录,包括:如果所述资源锁表中存在所述锁标识对应的资源锁占用记录,且所述资源锁占用记录的锁使用者不是所述用户,且当前时间小于锁过期时间,则不更新所述资源锁占用记录;
根据所述维护结果,确定所述用户对所述共享资源的访问权限,包括:如果所述维护结果表示未对所述资源锁占用记录进行更新,则确定所述用户对所述共享资源不具备访问权限。
7.如权利要求2所述的方法,所述方法还包括:
在对所述共享对象的访问结束后,释放所述共享资源对应的资源锁占用记录的锁资源。
8.如权利要求7所述的方法,
释放所述资源锁占用记录的锁资源,包括:
重新获取所述共享资源对应的资源锁占用记录;
如果重新获取的所述资源锁占用记录中的锁使用者为所述用户,则删除所述资源锁占用记录。
9.如权利要求7所述的方法,
释放所述资源锁占用记录的锁资源,包括:
重新获取所述共享资源对应的资源锁占用记录;
如果重新获取的所述资源锁占用记录中的锁使用者不是所述用户,则不执行删除操作直接返回。
10.如权利要求1-9中任一项所述的方法,所述资源锁表为数据库中的资源锁表。
11.如权利要求1-9中任一项所述的方法,
所述共享资源的多个访问请求来自于同一个分布式***;或者
所述共享资源的多个访问请求来自于不同的分布式***。
12.一种共享资源访问控制装置,包括:
获取单元,根据用户对共享资源的访问请求,获取所述共享资源对应的锁标识;
维护单元,在资源锁表中维护所述锁标识对应的资源锁占用记录,所述资源锁表用于存储共享资源的资源锁占用记录;
确定单元,根据所述维护结果,确定所述用户对所述共享资源的访问权限。
13.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
根据用户对共享资源的访问请求,获取所述共享资源对应的锁标识;
在资源锁表中维护所述锁标识对应的资源锁占用记录,所述资源锁表用于存储共享资源的资源锁占用记录;
根据所述维护结果,确定所述用户对所述共享资源的访问权限。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
根据用户对共享资源的访问请求,获取所述共享资源对应的锁标识;
在资源锁表中维护所述锁标识对应的资源锁占用记录,所述资源锁表用于存储共享资源的资源锁占用记录;
根据所述维护结果,确定所述用户对所述共享资源的访问权限。
CN201710532415.7A 2017-07-03 2017-07-03 共享资源的访问控制方法、装置和设备 Active CN107402821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710532415.7A CN107402821B (zh) 2017-07-03 2017-07-03 共享资源的访问控制方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710532415.7A CN107402821B (zh) 2017-07-03 2017-07-03 共享资源的访问控制方法、装置和设备

Publications (2)

Publication Number Publication Date
CN107402821A true CN107402821A (zh) 2017-11-28
CN107402821B CN107402821B (zh) 2020-06-30

Family

ID=60404768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710532415.7A Active CN107402821B (zh) 2017-07-03 2017-07-03 共享资源的访问控制方法、装置和设备

Country Status (1)

Country Link
CN (1) CN107402821B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089926A (zh) * 2018-01-08 2018-05-29 马上消费金融股份有限公司 一种获取分布式锁的方法、装置、设备及可读存储介质
CN108363613A (zh) * 2017-12-28 2018-08-03 杭州马猴烧韭科技有限公司 一种独占锁的加锁方法、电子设备及存储介质
CN108399107A (zh) * 2018-03-22 2018-08-14 武汉斗鱼网络科技有限公司 分布式锁实现方法、装置及可读存储介质
CN109063132A (zh) * 2018-08-02 2018-12-21 上海达梦数据库有限公司 闩锁请求方法、闩锁授权方法、装置及终端设备
CN110008225A (zh) * 2019-03-19 2019-07-12 阿里巴巴集团控股有限公司 分布式事务的处理方法和装置
CN110659329A (zh) * 2019-09-23 2020-01-07 上海艾融软件股份有限公司 一种数据处理方法、装置及电子设备
CN111988236A (zh) * 2019-05-22 2020-11-24 华为技术有限公司 资源抢占的方法、装置及***

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076126A (en) * 1997-06-30 2000-06-13 Emc Corporation Software locking mechanism for locking shared resources in a data processing system
US6105099A (en) * 1998-11-30 2000-08-15 International Business Machines Corporation Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes
US20050203904A1 (en) * 2004-03-11 2005-09-15 International Business Machines Corporation System and method for measuring latch contention
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群***中共享资源锁分配方法与计算机及集群***
US20070124545A1 (en) * 2005-11-29 2007-05-31 Anton Blanchard Automatic yielding on lock contention for multi-threaded processors
CN101650646A (zh) * 2009-09-22 2010-02-17 杭州华三通信技术有限公司 一种共享数据一致性的实现方法及装置
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及***
CN103248667A (zh) * 2012-02-14 2013-08-14 阿里巴巴集团控股有限公司 一种分布式***的资源访问方法和***
CN103297456A (zh) * 2012-02-24 2013-09-11 阿里巴巴集团控股有限公司 一种分布式***下共享资源的访问方法及分布式***
CN103716383A (zh) * 2013-12-13 2014-04-09 华为技术有限公司 一种访问共享资源的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076126A (en) * 1997-06-30 2000-06-13 Emc Corporation Software locking mechanism for locking shared resources in a data processing system
US6105099A (en) * 1998-11-30 2000-08-15 International Business Machines Corporation Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes
US20050203904A1 (en) * 2004-03-11 2005-09-15 International Business Machines Corporation System and method for measuring latch contention
US20070124545A1 (en) * 2005-11-29 2007-05-31 Anton Blanchard Automatic yielding on lock contention for multi-threaded processors
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群***中共享资源锁分配方法与计算机及集群***
CN101650646A (zh) * 2009-09-22 2010-02-17 杭州华三通信技术有限公司 一种共享数据一致性的实现方法及装置
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及***
CN103248667A (zh) * 2012-02-14 2013-08-14 阿里巴巴集团控股有限公司 一种分布式***的资源访问方法和***
CN103297456A (zh) * 2012-02-24 2013-09-11 阿里巴巴集团控股有限公司 一种分布式***下共享资源的访问方法及分布式***
CN103716383A (zh) * 2013-12-13 2014-04-09 华为技术有限公司 一种访问共享资源的方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108363613A (zh) * 2017-12-28 2018-08-03 杭州马猴烧韭科技有限公司 一种独占锁的加锁方法、电子设备及存储介质
CN108089926A (zh) * 2018-01-08 2018-05-29 马上消费金融股份有限公司 一种获取分布式锁的方法、装置、设备及可读存储介质
CN108399107A (zh) * 2018-03-22 2018-08-14 武汉斗鱼网络科技有限公司 分布式锁实现方法、装置及可读存储介质
CN109063132A (zh) * 2018-08-02 2018-12-21 上海达梦数据库有限公司 闩锁请求方法、闩锁授权方法、装置及终端设备
CN110008225A (zh) * 2019-03-19 2019-07-12 阿里巴巴集团控股有限公司 分布式事务的处理方法和装置
CN111988236A (zh) * 2019-05-22 2020-11-24 华为技术有限公司 资源抢占的方法、装置及***
CN111988236B (zh) * 2019-05-22 2022-07-29 华为技术有限公司 资源抢占的方法、装置及***
US11785627B2 (en) 2019-05-22 2023-10-10 Huawei Technologies Co., Ltd. Resource preemption method, apparatus, and system
CN110659329A (zh) * 2019-09-23 2020-01-07 上海艾融软件股份有限公司 一种数据处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN107402821B (zh) 2020-06-30

Similar Documents

Publication Publication Date Title
CN107402821A (zh) 共享资源的访问控制方法、装置和设备
US20190266195A1 (en) Filtering queried data on data stores
CN110020542B (zh) 数据读写方法及装置、电子设备
US10706039B2 (en) Data coherency between trusted DBMS and untrusted DBMS
CN111782668B (zh) 数据结构的读取及更新方法、装置、电子设备
US6772155B1 (en) Looking data in a database system
US20200159719A1 (en) Atomic application of multiple updates to a hierarchical data structure
US20050125411A1 (en) Method and apparatus for data retention in a storage system
US20100319067A1 (en) Method and System for Managing Object Level Security Using an Object Definition Hierarchy
EP2405607A1 (en) Privilege management system and method based on object
CN110046156A (zh) 基于区块链的内容管理***及方法、装置、电子设备
US11275850B1 (en) Multi-faceted security framework for unstructured storage objects
TW202025057A (zh) 欄位更新方法及裝置、電子設備
TWI724570B (zh) 資料結構的讀取及更新方法、裝置、電子設備及儲存媒體
JP2004514193A (ja) データベースサーバにおけるリレーショナルデータベース内の行へのアクセスの選択的な監査
TW202040477A (zh) 個人資產變更記錄的儲存方法、系統、裝置及設備
CN107609011A (zh) 一种数据库记录的维护方法和装置
CN111984379B (zh) 读写事务控制方法、***、终端设备及存储介质
CN109145621A (zh) 文档管理方法及装置
KR20120082176A (ko) 데이터베이스 관리 시스템의 데이터 처리 방법 및 시스템
CN107133163A (zh) 一种验证描述类api的方法与设备
WO2018057881A1 (en) Different hierarchies of resource data objects for managing system resources
CN114254346A (zh) 一种数据存储的处理方法、***、设备及介质
RU2676223C1 (ru) Способ проведения разделения объектов базы данных на основе меток конфиденциальности
CN115525889B (zh) 一种安全权限控制方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.