用于控制对数据存储系统的用户访问的方法、设备和系统转让专利

申请号 : CN201780091469.2

文献号 : CN110692223B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 保罗·克莱夫·卡斯韦尔西蒙·詹姆斯·查普尔法布里斯·克劳德·奥利弗·赫利克

申请人 : 日立数据管理有限公司

摘要 :

方法、设备和系统控制对数据存储系统的用户访问,该数据存储系统包括提供数据存储资源的节点,该数据存储资源存储用户能够访问的初级数据结构和基于相应的相关联的初级数据结构进行存储的用户能够访问的次级数据结构,其中针对每个次级数据结构,数据存储系统存储指示相应的次级数据结构的父级数据存储资源和所有者数据存储资源的数据结构元数据。在接收到访问特定的次级数据结构的用户请求后,确定该特定的次级数据结构的相应的所有者数据存储资源,并基于访问控制验证过程确定是否允许用户访问该特定的次级数据结构,所述访问控制验证过程包括确定是否允许用户访问所确定的该特定的次级数据结构的所有者数据存储资源。

权利要求 :

1.一种用于控制对数据存储系统的用户访问的方法,所述数据存储系统包括一个或多个提供多个数据存储资源的节点,

所述多个数据存储资源存储一个或多个用户能够访问的初级数据结构和一个或多个用户能够访问的次级数据结构,每个次级数据结构均基于相应的相关联的初级数据结构来进行存储,

其中针对每个次级数据结构,所述数据存储系统存储指示相应的次级数据结构的父级数据存储资源和所有者数据存储资源的数据结构元数据,所述相应的次级数据结构的所述父级数据存储资源是存储所述相应的次级数据结构的数据存储资源,而所述相应的次级数据结构的所述所有者数据存储资源是存储所述相应的次级数据结构的相应的相关联的初级数据结构的数据存储资源,并且其中所述数据存储系统还存储访问控制信息,针对一个或多个用户账户中的每个用户账户,所述访问控制信息指示许可与相应的用户账户相关联的用户对其进行用户访问的一个或多个数据存储资源的至少一个资源组;

所述方法包括:

‑接收访问在相应的父级数据存储资源上存储的所述一个或多个次级数据结构中的特定的次级数据结构的用户请求;

‑基于针对所述特定的次级数据结构存储的数据结构元数据,确定所述特定的次级数据结构的相应的所有者数据存储资源,以及‑基于访问控制验证过程来确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问,所述访问控制验证过程包括基于所述访问控制信息确定是否许可与所述用户请求相关联的所述用户账户的用户对于所确定的所述特定的次级数据结构的所有者数据存储资源进行访问,其中,针对所述一个或多个用户账户中的每个用户账户,所述访问控制信息还指示一个或多个访问级别;其中:

‑所述一个或多个访问级别中的第一访问级别指示,与所述第一访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问一个或多个次级数据结构,所述一个或多个次级数据结构的相应的所有者数据存储资源包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中,‑所述一个或多个访问级别中的第二访问级别指示,在相应的相关联的所有者数据存储资源包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中的条件下,与所述第二访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问与由所述用户当前登录的节点提供的一个或多个所有者数据存储资源相关联的一个或多个次级数据结构,和/或‑所述一个或多个访问级别中的第三访问级别指示,与所述第三访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问在所述相应的父级数据存储资源上存储的所述一个或多个次级数据结构,而与所述一个或多个相应的相关联的所有者数据存储资源是否包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中无关。

2.根据权利要求1所述的方法,其中:所述数据存储系统还包括被配置为接收用户请求的用户接口控制器,所述方法还包括:

‑当与所述用户请求相关联的所述用户账户的用户发起与所述用户接口控制器的通信连接时会话开始后,执行授权过程,所述授权过程基于所述访问控制信息获得用户访问控制配置文件,该用户访问控制配置文件指示许可与相应的用户账户相关联的用户对其进行用户访问的一个或多个数据存储资源的至少一个资源组。

3.根据权利要求2所述的方法,还包括:‑创建有效载荷,所述有效载荷指示与所述相应的用户账户相关联的用户的用户访问控制配置文件,

所述方法还包括:

‑在所述用户接口控制器处接收到访问所述特定的次级数据结构的所述用户请求后,将所创建的有效载荷包括到与所述相应的用户账户相关联的用户的所述用户请求内。

4.根据权利要求3所述的方法,其中:所述数据存储系统还包括一个或多个资源处理控制器,每个资源处理控制器被配置为管理对所述数据存储系统的一个或多个数据存储资源的用户访问,所述方法还包括:

‑将包括所创建的有效载荷的用户请求从所述用户接口控制器发送至管理对所述特定的次级数据结构的所述父级数据存储资源的访问的所述资源处理控制器。

5.根据权利要求4所述的方法,其中:每个资源处理控制器还被配置为管理与在由相应的资源处理控制器管理的所述一个或多个数据存储资源上存储的所述次级数据结构有关的所述数据结构元数据,所述方法还包括:

‑在管理对所述特定的次级数据结构的所述父级数据存储资源的访问的所述资源处理控制器处接收包括所创建的有效载荷的所述用户请求,其中,确定所述特定的次级数据结构的相应的所有者数据存储资源和确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问,由管理对所述特定的次级数据结构的所述父级数据存储资源的访问的所述资源处理控制器,基于由相应的资源处理控制器管理的数据结构元数据以及包括在所接收到的用户请求中的所述有效载荷来执行。

6.根据权利要求1所述的方法,其中:确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问还基于如下确定:根据所述访问控制信息确定是否许可与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构的所述父级数据存储资源进行访问。

7.根据权利要求6所述的方法,其中:在所述特定的次级数据结构的相应的父级数据存储资源包括在根据所述访问控制信息而许可与相应的用户账户相关联的用户对其进行用户访问的资源组中的条件下,与所述用户请求相关联的用户账户的用户被确定为允许访问所述特定的次级数据结构。

8.根据权利要求1所述的方法,其中:针对所述一个或多个用户账户中的每个用户账户,所述访问控制信息还指示至少一个能够许可的用户活动或包括至少一个能够许可的用户活动的至少一个活动组,所述至少一个能够许可的用户活动或包括至少一个能够许可的用户活动的所述至少一个活动组被允许由与相应的用户账户相关联的用户在许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组的数据存储资源上执行。

9.根据权利要求8所述的方法,其中:确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问还基于如下确定:基于所述访问控制信息来确定是否许可由与所述用户请求相关联的所述用户账户的用户执行由所述用户请求所请求的相应的用户活动。

10.根据权利要求3所述的方法,其中:所述访问控制信息包括基于角色的访问控制RBAC信息,针对所述一个或多个用户账户中的每个用户账户,所述RBAC信息还指示与相应的用户账户相关联的相应的用户的用户角色,

每个用户角色与至少一个能够许可的用户活动或包括至少一个能够许可的用户活动的至少一个活动组相关联,并且

用户访问控制配置文件还指示与关联于相应的用户账户的用户相关联的用户角色,并且所创建的有效载荷还指示与关联于相应的用户账户的用户相关联的用户角色。

11.根据权利要求10所述的方法,其中:所创建的有效载荷还指示与相应的用户角色相关联的所述至少一个能够许可的用户活动或包括至少一个能够许可的用户活动的至少一个活动组,所述相应的用户角色与关联于相应的用户账户的用户相关联。

12.根据权利要求11所述的方法,其中:每个资源处理控制器还被配置为管理活动元数据,针对一个或多个用户角色中的每个用户角色,所述活动元数据指示与相应的用户角色相关联的所述至少一个能够许可的用户活动或包括至少一个能够许可的用户活动的至少一个活动组,并且确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问还基于如下确定:基于由相应的资源处理控制器管理的所述活动元数据以及包括在所接收到的用户请求中的所述有效载荷,来确定是否许可由与所述用户请求相关联的所述用户账户的用户执行由所述用户请求所请求的相应的用户活动。

13.一种数据存储系统,其包括一个或多个提供多个数据存储资源的节点,所述多个数据存储资源被配置为存储一个或多个用户能够访问的初级数据结构和一个或多个用户能够访问的次级数据结构,每个次级数据结构基于相应的相关联的初级数据结构来进行存储,

其中所述数据存储系统被配置为针对每个次级数据结构存储指示相应的次级数据结构的父级数据存储资源和所有者数据存储资源的数据结构元数据,所述相应的次级数据结构的所述父级数据存储资源是存储所述相应的次级数据结构的数据存储资源,而所述相应的次级数据结构的所述所有者数据存储资源是存储所述相应的次级数据结构的相应的相关联的初级数据结构的数据存储资源,并且其中所述数据存储系统还被配置为存储访问控制信息,针对一个或多个用户账户中的每个用户账户,所述访问控制信息指示许可与相应的用户账户相关联的用户对其进行用户访问的一个或多个数据存储资源的至少一个资源组;

所述数据存储系统或所述数据存储系统的一个或多个节点被配置为,在接收到访问在相应的父级数据存储资源上存储的所述一个或多个次级数据结构中的特定的次级数据结构的用户请求后,执行:

‑基于针对所述特定的次级数据结构存储的数据结构元数据,确定所述特定的次级数据结构的相应的所有者数据存储资源,以及‑基于访问控制验证过程来确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问,所述访问控制验证过程包括基于所述访问控制信息确定是否许可与所述用户请求相关联的所述用户账户的用户对于所确定的所述特定的次级数据结构的所有者数据存储资源进行访问,其中,针对所述一个或多个用户账户中的每个用户账户,所述访问控制信息还指示一个或多个访问级别;其中:

‑所述一个或多个访问级别中的第一访问级别指示,与所述第一访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问一个或多个次级数据结构,所述一个或多个次级数据结构的相应的所有者数据存储资源包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中,‑所述一个或多个访问级别中的第二访问级别指示,在相应的相关联的所有者数据存储资源包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中的条件下,与所述第二访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问与由所述用户当前登录的节点提供的一个或多个所有者数据存储资源相关联的一个或多个次级数据结构,和/或‑所述一个或多个访问级别中的第三访问级别指示,与所述第三访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问在所述相应的父级数据存储资源上存储的所述一个或多个次级数据结构,而与所述一个或多个相应的相关联的所有者数据存储资源是否包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中无关。

14.一种用于控制对数据存储系统的用户访问的计算机可读存储介质,所述数据存储系统包括一个或多个提供多个数据存储资源的节点,所述多个数据存储资源存储一个或多个用户能够访问的初级数据结构和一个或多个用户能够访问的次级数据结构,每个次级数据结构基于相应的相关联的初级数据结构来进行存储,其中针对每个次级数据结构,所述数据存储系统存储指示相应的次级数据结构的父级数据存储资源和所有者数据存储资源的数据结构元数据,所述相应的次级数据结构的所述父级数据存储资源是存储所述相应的次级数据结构的数据存储资源,而所述相应的次级数据结构的所述所有者数据存储资源是存储所述相应的次级数据结构的相应的相关联的初级数据结构的数据存储资源,并且其中所述数据存储系统还存储访问控制信息,针对一个或多个用户账户中的每个用户账户,所述访问控制信息指示许可与相应的用户账户相关联的用户对其进行用户访问的一个或多个数据存储资源的至少一个资源组,所述计算机可读存储介质包括计算机可读程序指令,当在具有至少一个处理器的设备或系统上运行或载入时,所述计算机可读程序指令使所述至少一个处理器在接收到访问在相应的父级数据存储资源上存储的一个或多个次级数据结构中的特定的次级数据结构的用户请求后执行:

‑基于针对所述特定的次级数据结构存储的数据结构元数据,确定所述特定的次级数据结构的相应的所有者数据存储资源,以及‑基于访问控制验证过程来确定是否允许与所述用户请求相关联的所述用户账户的用户对于所述特定的次级数据结构进行访问,所述访问控制验证过程包括基于所述访问控制信息确定是否许可与所述用户请求相关联的所述用户账户的用户对于所确定的所述特定的次级数据结构的所有者数据存储资源进行访问,其中,针对所述一个或多个用户账户中的每个用户账户,所述访问控制信息还指示一个或多个访问级别;其中:

‑所述一个或多个访问级别中的第一访问级别指示,与所述第一访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问一个或多个次级数据结构,所述一个或多个次级数据结构的相应的所有者数据存储资源包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中,‑所述一个或多个访问级别中的第二访问级别指示,在相应的相关联的所有者数据存储资源包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中的条件下,与所述第二访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问与由所述用户当前登录的节点提供的一个或多个所有者数据存储资源相关联的一个或多个次级数据结构,和/或‑所述一个或多个访问级别中的第三访问级别指示,与所述第三访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问在所述相应的父级数据存储资源上存储的所述一个或多个次级数据结构,而与所述一个或多个相应的相关联的所有者数据存储资源是否包括在根据所述访问控制信息而许可与所述相应的用户账户相关联的用户对其进行用户访问的资源组中无关。

说明书 :

用于控制对数据存储系统的用户访问的方法、设备和系统

技术领域

[0001] 本公开涉及用于特别是根据基于角色的访问控制(RBAC)来控制对数据存储系统的用户访问的方法、设备和系统,该数据存储系统包括一个或多个提供多个数据存储资源
的节点。

背景技术

[0002] 用于计算机的备份系统是众所周知的。备份系统提供了数据的冗余存储,使得在发生导致计算机上数据丢失的事件后能够将计算机恢复到以前的状态。如本领域技术人员
将理解的,存储在计算机上的数据可能非常有价值,并且数据丢失可能导致严重的经济困
难。
[0003] 银行、股票经纪业和其他公司通常在计算机上存储大量数据。这些数据对于这样的企业的日常运营至关重要。例如,容易理解的是为了便于常规的银行业务交易,需要通常
存储在计算机中的银行账户记录。
[0004] 诸如火灾、地震、盗窃和硬盘故障等事件可能会导致有价值的计算机数据丢失。如果公司数据的唯一副本存储在受影响的计算机上,则丢失可能是永久性的,并可能造成灾
难性后果。
[0005] 然而,如果以前已备份过数据,则可以恢复数据,使得企业的日常操作可在最少的中断下继续进行。因此,存储在计算机上的数据的备份被认为是必要的,并且通常已成为例
行工作。
[0006] 备份系统通常包括存储库(repository)和驱动该存储库的软件。配置该软件以便将全部或部分数据从计算机复制到存储库的介质上。各种不同类型的存储库被广泛使用。
本地备份驱动器和数字虚拟设备(DVD或DVD ROMO存储库)通常在数据存储要求较小的情况
下使用,而磁带存储或大型磁盘驱动器则在数据存储要求较大的情况下用在计算机上或网
络中。
[0007] 计算机的联网通过为多台计算机提供中央数据存储位置暂时简化了备份过程。即,几个客户端计算机通常连接至服务器,并且客户端计算机使用的所有数据都由服务器
存储在中央位置。因此,为了充分保护所有客户端计算机使用的数据,仅需备份单个服务
器。
[0008] 然而,客户端计算机的数据存储容量不断增加,并且网络上客户端的数量增加,将客户端计算机所需的大量数据存储在客户端计算机本身而不是带宽限制将限制客户端计
算机对数据的访问的服务器上最终变得更加实用。因此,再次面临必须备份多台客户端计
算机的问题。
[0009] 政府组织还通过法规制定了附加的法律和法规要求,甚至地方城市和州条例也对数据需要存档和保存的时间以及需要存档和保存的数据类型进行了要求。例如,财务数据
可能需要每天存档并存储七年,而法律数据可能每周存档并存储五年。因此,在现代网络
中,可能将数据从多个客户端或甚至客户端计算机上的位置在位于多个不同位置处的多个
不同存储库中选定的一个存储库上备份。
[0010] 传统的备份方案已尝试通过提供信息技术经理(IT经理)来解决这些问题中的一些问题,该信息技术经理具有手动设置特定数据在特定存储库上的特定位置进行存储的策
略的能力,该特定存储库被设计用于在非常细的粒度级别(granular level)上进行长期存
储。不幸的是,此过程非常繁琐并且一旦意识到任何给定客户端上有多少种数据类型、每种
类型的数据上的法规数量、数据必须多久存档一次以及基于要求的数据最佳存档位置,该
过程就非常不切实际。
[0011] 因此,IT经理希望拥有集成的数据管理系统,该数据管理系统具有中央命令模块,该中央命令模块能够通过策略以使系统视图还能在粒度级别上查看的可视方式在到存储
库的数据路径中建立数据源。
[0012] 另外,基于角色的访问控制(RBAC)被称为访问控制方案,其中用户访问受到控制(即,控制访问,包括基于许可验证或访问授权过程允许或拒绝对数据结构和/或数据资源
的访问)。
[0013] 例如,US2008/0022370A1涉及用于在内容管理系统中进行基于角色的访问控制(RBAC)的系统和方法,其中,为存储资源分配了保护等级。相同保护级别的存储资源共享相
同的访问控制策略。对各种角色授权的许可是基于特权组和保护等级限定的。角色的许可
能够在运行时动态地确定。此外,随着添加新的存储资源,可以将它们分配给预先存在的保
护等级。因此,新的存储资源可以自动继承附于保护等级的各种许可和角色。
[0014] 此外,US2008/0120302A1涉及用于存储管理的基于角色的资源级别访问控制(RBAC)。资源识别信息与用于多个角色中的每个角色的角色识别信息以及操作识别信息相
关联地存储在用于网络存储系统的基于角色的访问数据库中。操作识别信息识别针对多个
角色中的每个角色的一个或多个授权操作,资源识别信息识别由网络存储系统维护的特定
资源。角色识别信息、指示用于至少一个角色的一个或多个授权操作的数据以及基于角色
的访问数据库中的资源特定的识别信息用于确定是允许还是拒绝来自网络存储客户端的
访问网络存储系统维护的资源的请求。

发明内容

[0015] 目的是提供一种在配置不同的允许级别和用户类型或访问许可的用户访问方面高度灵活和有效的、多个存储资源的数据存储系统中的用户访问控制机制,并提供一种出
于数据保护目的、特别是优选以基于角色的访问控制(RBAC)为基础而在数据存储系统中、
特别是在管理初级数据结构和与该初级数据结构有关的次级数据结构的数据存储系统中
执行访问控制的可靠且有效的方式。
[0016] 提出了用于控制对数据存储系统的用户访问的方法,该数据存储系统包括一个或多个提供多个数据存储资源的节点。此外,提出了数据存储系统和计算机程序产品。从属权
利要求涉及优选的示例性实施方式。
[0017] 根据一些方面,提出了一种用于控制对数据存储系统的用户访问的方法,该数据存储系统包括一个或多个提供多个数据存储资源的节点。
[0018] 在一些示例性方面,多个数据存储资源可以存储一个或多个用户能够访问的初级数据结构和/或一个或多个用户能够访问的次级数据结构。一些或每个次级数据结构可以
基于相应的相关联的初级数据结构来进行存储。
[0019] 在一些示例性方面,针对一些次级数据结构或每个次级数据结构,数据存储系统可以存储指示相应的次级数据结构的父级数据存储资源和所有者数据存储资源的数据结
构元数据。这里,相应的次级数据结构的父级数据存储资源优选是存储该相应的次级数据
结构的数据存储资源,和/或相应的次级数据结构的所有者数据存储资源优选是存储该相
应的次级数据结构的相应的相关联的初级数据结构的数据存储资源。
[0020] 在一些示例性方面,数据存储系统还可以存储访问控制信息,针对一个或多个用户账户中的每个用户账户(和/或针对一个或多个用户角色中的每个用户角色,每个用户账
户与至少一个用户角色相关联)指示许可与相应的用户账户(和/或其相关联的用户角色)
相关联的用户对其进行用户访问的一个或多个数据存储资源的至少一个资源组。
[0021] 根据一些方面,该方法可以包括:接收访问在相应的父级数据存储资源上存储的一个或多个次级数据结构中的特定的次级数据结构的用户请求;基于针对特定的次级数据
结构存储的数据结构元数据,确定特定的次级数据结构的相应的所有者数据存储资源;以
及基于访问控制验证过程来确定是否允许与用户请求相关联的用户账户(和/或用户角色)
的用户对于特定的次级数据结构进行访问。
[0022] 在一些示例性方面,访问控制验证过程可以包括基于访问控制信息确定是否许可与用户请求相关联的用户账户(和/或用户角色)的用户对于所确定的特定的次级数据结构
的所有者数据存储资源进行访问。
[0023] 在一些示例性方面,该方法还可以包括:如果访问控制验证过程确定允许与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问,则基
于(或根据)所接收到的用户请求访问一个或多个次级数据结构中的特定的次级数据结构,
和/或如果访问控制验证过程确定不允许与用户请求相关联的用户账户(和/或用户角色)
的用户对于特定的次级数据结构进行访问,则禁止基于(或根据)所接收到的用户请求访问
一个或多个次级数据结构中的特定的次级数据结构。
[0024] 在一些示例性方面,数据存储系统还可以包括被配置为接收用户请求的用户接口控制器。
[0025] 在一些示例性方面,数据存储系统还可以包括一个或多个资源处理控制器,其中每个资源处理控制器可以优选被配置为管理对数据存储系统的一个或多个数据存储资源
的用户访问。
[0026] 优选地,用户接口控制器被配置为与一个或多个资源处理控制器中的一个或多个或所有资源处理控制器进行通信,例如用于将访问请求发送至一个或多个资源处理控制器
中的一个或多个或所有资源处理控制器。在一些示例性方面,资源处理控制器可以被配置
为彼此直接通信和/或经由用户接口控制器间接地通信。
[0027] 例如,如果用户登录以访问存储在特定的数据存储资源上的初级数据结构,例如在用户会话期间,该用户对初级数据结构的用户访问请求可能在用户接口控制器处被接
收,以从用户接口控制器被转送或传送(或通常作为对应的用户请求发送,该对应的用户请
求可能修改也可能不修改原始接收到的请求)至管理存储相应的初级数据结构的特定的数
据存储资源的相应的资源处理控制器。
[0028] 替代地,尽管用户接口控制器可能仍然负责在会话开始时建立会话(例如,包括对用户认证和/或用户授权的处理),但是随后的用户请求可能直接发送至管理存储相应的初
级数据结构的特定数据存储资源的相应的资源处理控制器。
[0029] 而且,例如,如果用户登录以访问存储在特定的数据存储资源上的初级数据结构,例如,在用户会话期间,但之后可能尝试访问与存储在另一个数据存储资源(可能是也可能
不是由不同的资源处理控制器进行管理)上的相应的初级数据结构相关联的次级数据结
构,该用户对次级数据结构的用户访问请求可能在用户接口控制器处被接收,以从用户接
口控制器被转送或传送(或通常作为对应的用户请求发送,该对应的用户请求可能修改也
可能不修改原始接收到的请求)至管理存储相应的次级数据结构的特定的数据存储资源的
相应的资源处理控制器。
[0030] 替代地,尽管用户接口控制器可能仍负责在会话开始时建立会话(例如,包括对用户认证和/或用户授权的处理),但是随后对相应的次级数据结构的用户请求可能直接发送
至管理存储相应的初级数据结构的特定的数据存储资源的相应的资源处理控制器和/或管
理存储相应的次级数据结构的特定的数据存储资源的相应的资源处理控制器。
[0031] 例如,如果在管理存储相应的相关联的初级数据结构的特定的数据存储资源的资源处理控制器处接收到对相应的次级数据结构的用户请求,在管理存储相应的次级数据结
构的特定的数据存储资源的相应的资源处理控制器是不同的资源处理控制器的情况下,则
可以将接收到的请求从管理存储相应的初级数据结构的特定的数据存储资源的相应的资
源处理控制器转送或传送(或通常作为对应的用户请求发送,该对应的用户请求可能修改
也可能不修改原始接收到的请求)至管理存储相应的相关联的次级数据结构的特定的数据
存储资源的相应的资源处理控制器。
[0032] 在一些方面,该方法还可以包括:在会话开始后(例如,当与用户请求相关联的用户账户(和/或用户角色)的用户发起与用户接口控制器的通信连接时)执行授权过程,该授
权过程优选例如基于访问控制信息获得用户访问控制配置文件(profile),该用户访问控
制配置文件指示许可与相应的用户账户(和/或用户角色)相关联的用户对其进行用户访问
的一个或多个数据存储资源的至少一个资源组;和/或优选由用户接口控制器和/或由授权
模块或授权设备创建指示与相应的用户账户(和/或用户角色)相关联的用户的用户访问控
制配置文件的有效载荷。
[0033] 有效载荷可以包括编码和/或压缩格式的相应的用户访问控制配置文件信息,或者包括相应的用户访问控制配置文件信息作为添加的信息,例如作为附加或替代的报头信
息。
[0034] 在一些方面,该方法还可以包括:在用户接口控制器处接收到访问特定的次级数据结构的用户请求后,使所创建的有效载荷包括(例如,添加、编码、附加或插入)到与相应
的用户账户(和/或用户角色)相关联的用户的用户请求内。
[0035] 在一些方面,该方法还可以包括:将包括所创建的有效载荷的用户请求从用户接口控制器发送至管理对特定的次级数据结构的父级数据存储资源的访问的资源处理控制
器。
[0036] 在一些方面,每个资源处理控制器还可以被配置为管理与在由相应的资源处理控制器管理的一个或多个数据存储资源上存储的次级数据结构有关的数据结构元数据。
[0037] 例如,资源处理控制器可以在相应的资源处理控制器的元数据存储部分中管理和存储与在由该相应的资源处理控制器管理的一个或多个数据存储资源上存储的次级数据
结构有关的数据结构元数据。
[0038] 替代地,资源处理控制器可以示例性地将与在由该相应的资源处理控制器管理的一个或多个数据存储资源上存储的次级数据结构有关的数据结构元数据存储到由相应的
资源处理控制器管理的相应的数据存储资源。例如,资源处理控制器可以示例性地将与特
定的次级数据结构有关的数据结构元数据存储到存储相应的次级数据结构的数据存储资
源,例如,通过将与特定的次级数据结构有关的数据结构元数据与特定的次级数据结构一
起或作为特定的次级数据结构的一部分存储在相应的数据存储资源上。
[0039] 在一些方面,该方法还可以包括:在管理对特定的次级数据结构的父级数据存储资源的访问的资源处理控制器处接收包括所创建的有效载荷的用户请求。优选地,确定特
定的次级数据结构的相应的所有者数据存储资源和/或确定是否允许与用户请求相关联的
用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问,由管理对特定的次
级数据结构的父级数据存储资源的访问的资源处理控制器执行,优选基于由相应的资源处
理控制器管理的数据结构元数据以及包括在所接收到的用户请求中的有效载荷。
[0040] 在一些方面,确定是否允许与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问还可以基于如下确定:基于访问控制信息确定是否许
可与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构的父级
数据存储资源进行访问。
[0041] 在一些示例性方面,该方法还可以包括:如果访问控制验证过程确定允许与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问和/或
许可与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构的父
级数据存储结构进行访问,则基于(或根据)所接收到的用户请求来访问一个或多个次级数
据结构中的特定的次级数据结构;和/或如果访问控制验证过程确定不允许与用户请求相
关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问和/或不许可
与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构的父级数
据存储结构进行访问,则拒绝基于(或根据)所接收到的数据请求访问一个或多个次级数据
结构的特定的次级数据结构。
[0042] 在一些示例性方面,在特定的次级数据结构的相应的父级数据存储资源包括在根据访问控制信息而许可与相应的用户账户(和/或用户角色)相关联的用户对其进行用户访
问的资源组中的条件下,与用户请求相关联的用户账户(和/或用户角色)的用户可以被确
定为允许(许可)访问特定的次级数据结构。
[0043] 例如,在特定的次级数据结构的相应的父级数据存储资源包括在根据访问控制信息而许可与相应的用户账户(和/或用户角色)相关联的用户对其进行用户访问的资源组
中,和/或特定的次级数据结构的相应的所有者数据存储资源包括在根据访问控制信息而
许可与相应的用户账户(和/或用户角色)相关联的用户对其进行用户访问的资源组中的条
件下,与用户请求相关联的用户账户(和/或用户角色)的用户可以被确定为允许(许可)访
问特定的次级数据结构。
[0044] 在一些示例性方面,针对一个或多个用户账户中的每个用户账户(和/或针对一个或多个用户角色中的每个用户角色,每个用户账户与至少一个用户角色相关联),访问控制
信息还可以指示一个或多个访问级别,该访问级别指示相应的用户账户(和/或用户角色)
所被许可的访问范围。
[0045] 在一些示例性方面,一个或多个访问级别可以包括以下至少一个访问级别:(1)第一访问级别,其可以指示与该第一访问级别相关联的相应的用户账户(和/或用户角色)的
用户被允许在相应的父级数据存储资源上访问一个或多个次级数据结构,这些(仅这些)次
级数据结构的相应的所有者数据存储资源包括在根据访问控制信息而许可与相应的用户
账户(和/或用户角色)相关联的用户对其进行用户访问的资源组中;(2)第二访问级别,该
第二访问级别可以指示,与该第二访问级别相关联的相应的用户账户(和/或用户角色)的
用户被允许在相应的父级数据存储资源上(例如,仅)访问与由该用户当前登录的节点提供
的一个或多个所有者数据存储资源相关联的次级数据结构,特别是在相应的相关联的所有
者数据存储资源包括在根据访问控制信息而许可与相应的用户账户(和/或用户角色)相关
联的用户对其进行用户访问的资源组中的条件下;和/或(3)第三访问级别,其可以指示与
该第三访问级别相关联的相应的用户账户(和/或用户角色)的用户被允许在相应的父级数
据存储资源上访问在相应的父级数据存储资源上存储的一个或多个(例如,全部)次级数据
结构,而与一个或多个相应的相关联的所有者数据存储资源是否包括在根据访问控制信息
而许可与相应的用户账户(和/或用户角色)相关联的用户对其进行用户访问的资源组中无
关。
[0046] 在一些示例性方面,针对一个或多个用户账户(和/或用户角色)中的每个用户账户,访问控制信息还可以指示至少一个能够许可的用户活动和/或包括至少一个能够许可
的用户活动的至少一个活动组,该至少一个能够许可的用户活动和/或包括至少一个能够
许可的用户活动的至少一个活动组被允许由与相应的用户账户(和/或用户角色)相关联的
用户,在许可与相应的用户账户(和/或用户角色)相关联的用户对其进行用户访问的资源
组的数据存储资源上执行。
[0047] 在一些示例性方面,确定是否允许与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问还可以基于根据访问控制信息确定是否许可
与用户请求相关联的用户账户(和/或用户角色)的用户执行由用户请求所请求的相应的用
户活动。
[0048] 在一些示例性方面,所接收到的用户请求可以指示特定的次级数据结构和所请求的要在特定的次级数据结构上执行的活动。在这种情况下,在一些示例性方面,该方法还可
以包括:如果确定由用户请求所请求的相应的用户活动被许可由与用户请求相关联的用户
账户(和/或用户角色)的用户执行并且与用户请求相关联的用户账户(和/或用户角色)的
用户被允许访问特定的次级数据结构,则在特定的次级数据结构上执行所请求的活动,和/
或如果确定由用户请求所请求的相应的用户活动不被许可由与用户请求相关联的用户账
户(和/或用户角色)的用户执行或与用户请求相关联的用户账户(和/或用户角色)的用户
不被允许访问特定的次级数据结构,则拒绝在特定的次级数据结构上执行所请求的活动。
[0049] 在一些示例性方面,访问控制信息可以包括RBAC(基于角色的访问控制)信息,针对一个或多个用户账户中的每个用户账户,RBAC信息还可以指示与相应的用户账户相关联
的相应的用户的用户角色。
[0050] 在一些示例性方面,每个用户角色可以与至少一个能够许可的用户活动和/或包括至少一个能够许可的用户活动的至少一个活动组相关联。
[0051] 在一些示例性方面,用户访问控制配置文件还可以指示与关联于相应的用户账户的用户相关联的用户角色,和/或所创建的有效载荷还可以指示与关联于相应的用户账户
的用户相关联的用户角色。
[0052] 在一些示例性方面,所创建的有效载荷还指示与相应的用户角色相关联的至少一个能够许可的用户活动和/或包括至少一个能够许可的用户活动的至少一个活动组,该相
应的用户角色与关联于相应的用户账户的用户相关联。
[0053] 在一些示例性方面,每个资源处理控制器还可以被配置为管理活动元数据,针对一个或多个用户角色中的每个用户角色,所述活动元数据指示与相应的用户角色相关联的
至少一个能够许可的用户活动或包括至少一个能够许可的用户活动的至少一个活动组。
[0054] 在一些示例性方面,确定是否允许与用户请求相关联的用户账户(和/或用户角色)的用户对于特定的次级数据结构进行访问还可以基于如下确定:基于由相应的资源处
理控制器管理的活动元数据以及包括在所接收到的用户请求中的有效载荷,来确定是否许
可由与用户请求相关联的用户账户(和/或用户角色)的用户执行由用户请求所请求的相应
的用户活动。
[0055] 在一些示例性方面,针对每个数据结构,数据结构元数据可以指示与相应的数据结构相关联的多个租户(tenant)中的一个租户,和/或针对一个或多个用户账户中的每个
用户账户,访问控制信息可以指示与相应的用户账户相关联的多个租户中的一个租户。
[0056] 在一些示例性方面,确定是否允许与用户请求相关联的用户账户的用户对于特定的次级数据结构进行访问还可以基于如下确定:基于访问控制信息和特定的次级数据结构
的数据结构元数据来确定与该特定的次级数据结构相关联的租户是否匹配与相应的用户
账户相关联的租户。
[0057] 在一些示例性方面,该方法还可以包括:如果访问控制验证过程确定与特定的次级数据结构相关联的租户匹配与相应的用户账户(和/或用户角色)相关联的租户,则基于
(或根据)所接收到的用户请求访问一个或多个次级数据结构中的特定的次级数据结构,
和/或如果访问控制验证过程确定与特定的次级数据结构相关联的租户不匹配与相应的用
户账户(和/或用户角色)相关联的租户,则拒绝基于(或根据)所接收到的用户请求访问一
个或多个次级数据结构中的特定的次级数据结构。
[0058] 根据一些方面,还提出了一种数据存储系统,其包括一个或多个提供多个数据存储资源的节点,所述多个数据存储资源被配置为存储一个或多个用户能够访问的初级数据
结构和一个或多个用户能够访问的次级数据结构,每个次级数据结构基于相应的相关联的
初级数据结构来进行存储,
[0059] 其中数据存储系统被配置为针对每个次级数据结构存储指示相应的次级数据结构的父级数据存储资源和所有者数据存储资源的数据结构元数据,相应的次级数据结构的
父级数据存储资源是存储该相应的次级数据结构的数据存储资源,而相应的次级数据结构
的所有者数据存储资源是存储该相应的次级数据结构的相应的相关联的初级数据结构的
数据存储资源,并且其中数据存储系统还被配置为存储访问控制信息,针对一个或多个用
户账户中的每个用户账户,所述访问控制信息指示许可与相应的用户账户相关联的用户对
其进行用户访问的一个或多个数据存储资源的至少一个资源组。
[0060] 在一些方面,数据存储系统或数据存储系统的一个或多个节点可以被配置为,在接收到访问在相应的父级数据存储资源上存储的一个或多个次级数据结构中的特定的次
级数据结构的用户请求后,执行:基于针对特定的次级数据结构存储的数据结构元数据,确
定特定的次级数据结构的相应的所有者数据存储资源,和/或基于访问控制验证过程来确
定是否允许与用户请求相关联的用户账户的用户对于特定的次级数据结构进行访问,所述
访问控制验证过程包括基于访问控制信息确定是否许可与用户请求相关联的用户账户的
用户对于所确定的特定的次级数据结构的所有者数据存储资源进行访问。
[0061] 此外,在一些方面,数据存储系统可以根据上述(和/或下述)一个或多个方面来配置,和/或可以被配置为执行上述(和/或下述)一个或多个方法方面的一个或多个步骤。
[0062] 根据一些方面,还提出了一种用于控制对数据存储系统的用户访问的计算机程序产品,该数据存储系统包括一个或多个提供多个数据存储资源的节点。数据存储系统可以
是在上述一个或多个方面中提供的。
[0063] 在一些方面,计算机程序产品可以包括计算机可读程序指令,当在具有至少一个处理器的设备或系统上运行或载入时,所述计算机可读程序指令使所述至少一个处理器例
如在接收到访问在相应的父级数据存储资源上存储的一个或多个次级数据结构中的特定
的次级数据结构的用户请求后执行:基于针对特定的次级数据结构存储的数据结构元数
据,确定特定的次级数据结构的相应的所有者数据存储资源;和/或基于访问控制验证过程
来确定是否允许与用户请求相关联的用户账户的用户访问特定的次级数据结构,所述访问
控制验证过程包括基于访问控制信息确定是否许可与用户请求相关联的用户账户的用户
对于所确定的特定的次级数据结构的所有者数据存储资源进行访问。
[0064] 此外,在一些方面,计算机程序产品可以包括计算机可读程序指令,当在具有至少一个处理器的设备或系统上运行或载入时,计算机可读程序指令使所述至少一个处理器例
如在接收到访问在相应的父级数据存储资源上存储的一个或多个次级数据结构中的特定
的次级数据结构的用户请求时执行上述(和/或下述)一个或多个方法方面的一个或多个步
骤。
[0065] 尽管上面已经描述了特定示例性方面,但是应当理解,这些方面仅是对本发明的说明,而不是对本发明的限制,并且示例性方面不限于以上示出和描述的具体的构造和设
置,因为除了以上段落中所述的构造和设置之外,还可以进行各种其他改变、组合、省略、修
改和替代。
[0066] 本领域技术人员将意识到,可以构造刚刚描述的方面的各种调整、修改和/或组合。因此,应当理解,除了本文具体描述的以外,可以实践其他方面。例如,除非另有明确说
明,否则可以通过与本文描述的顺序不同的顺序执行本文描述的处理步骤,并且一个或多
个步骤可以进行组合、拆分,或者同时执行。
[0067] 鉴于本公开,本领域技术人员还将意识到,本文描述的不同方面可以组合形成本公开的其他方面。

附图说明

[0068] 图1A示例性示出了根据示例性实施方式的数据系统的示意图。
[0069] 图1B示例性示出了根据示例性实施方式的另一个数据系统的示意图。
[0070] 图1C示例性示出了根据示例性实施方式的另一个数据系统的示意图。
[0071] 图2示例性示出了根据一些示例性实施方式的用于用户认证处理的过程的流程图。
[0072] 图3示例性示出了根据一些示例性实施方式的用于用户授权处理的过程的流程图。
[0073] 图4示例性示出了根据一些示例性实施方式的用户与用户相关的访问控制配置文件之间的关联以及访问控制配置文件信息的关联的示例。
[0074] 图5A示例性示出了根据一些示例性实施方式的用于在UIC处进行UIC访问请求处理的过程的流程图。
[0075] 图5B示例性示出了根据一些示例性实施方式的用于在UIC处进行UIC会话管理处理的过程的流程图。
[0076] 图5C示例性示出了根据一些其他示例性实施方式的用于在UIC处进行UIC访问请求处理的过程的流程图。
[0077] 图5D示例性示出了根据一些其他示例性实施方式的用于在UIC处进行UIC会话管理处理的过程的流程图。
[0078] 图5E示例性示出了根据一些其他示例性实施方式的用于在UIC处进行UIC访问请求处理的过程的流程图。
[0079] 图6A示例性示出了根据一些其他示例性实施方式的用于在存储处理机处进行存储处理机访问请求处理的过程的流程图。
[0080] 图6B示例性示出了根据一些其他示例性实施方式的用于在存储处理机处进行存储处理机访问请求处理的过程的流程图。
[0081] 图7示例性示出了数据结构在示例性数据存储系统中的分布。

具体实施方式

[0082] 在下文中,将参照附图更详细地描述本发明的优选的方面和实施方式。在不同的附图和实施方式中,相同或相似的特征由相似的附图标记表示。应当理解,以下与各种优选
的方面和优选的实施方式有关的详细描述并不意味着限制本发明的范围。
[0083] 如本说明书和所附权利要求书中所使用的,除非上下文另外要求,否则以下术语应具有指定的含义:
[0084] “存储装置”是用于存储数据的装置或系统。存储装置可以包括一个或多个磁性或磁光或光盘驱动器、固态存储装置或磁带。为了方便起见,有时将存储装置称为“盘”或“硬
盘”。数据存储系统可以包括具有相同或不同存储容量的相同或不同类型的存储装置。
[0085] “RAID控制器”是将几个存储装置的存储容量组合到虚拟存储空间中的装置或系统,该虚拟存储空间可以替代地被称为“系统驱动器”(“SD”)、“逻辑单元”(“LU”或“LAN”)或
“卷”。通常,SD大于从多个存储装置中提取空间的单个存储装置,并且包括冗余信息,使得
它可以承受一定数量的磁盘的故障而不会丢失数据。在示例性实施方式中,每个SD与在下
文被称为“逻辑单元标识符”或“LUID”的唯一标识符相关联,并且每个SD不大于预定的最大
大小(例如,2TB至64TB或更大)。
[0086] 当命令被发送至SD时,RAID控制器通常会将命令同时转送至SD的所有存储装置。RAID控制器有助于克服典型的存储装置的三个主要限制,即,存储装置通常是存储系统中
最慢的部件,它们通常最有可能遭受灾难性故障,并且它们通常具有相对较小的存储容量。
[0087] “RAID系统”是包括一个或多个RAID控制器和许多存储装置的装置或系统。通常,RAID系统将包含两个RAID控制器(使得一个RAID控制器可以在另一个RAID控制器出现故障
时继续工作,并且还在两个RAID控制器都正常的情况下共享负载)和几十个存储装置。在示
例性实施方式中,RAID系统通常被配置有两个至三十二个SD。当文件服务器需要存储或检
索数据时,它将命令发送至RAID系统的RAID控制器,该RAID控制器进而负责将命令向前路
由到相应的存储装置并根据需要存储或检索数据。
[0088] 通过一些RAID系统,可以在SD之间建立镜像关系,使得出于冗余的目的,由RAID系统将写入一个SD(被称为“初级SD”)的数据自动写入另一个SD(本文被称为“次级SD”或“镜
像SD”)。次级SD可以由与初级SD相同的RAID系统管理,也可以由不同的本地或远程的RAID
系统管理。镜像SD有效地在多个SD上提供RAID 1+0功能,以便在某些情况下实现从一个SD
或甚至可能多个SD的丢失或损坏中恢复。
[0089] “文件系统”是在文件存储系统中存储的文件和目录(文件夹)的结构。在文件存储系统内,通常使用许多虚拟存储构造来管理文件系统,并且在示例性实施方式中,使用被称
为区域(region)、条带集(stripeset)和跨度(span)的虚拟存储构造的层级来管理文件系
统。文件服务器的文件系统功能可以包括对象管理、自由空间管理(例如,分配)和/或目录
管理。
[0090] “归档”是为长期保留而创建的数据的副本或部分副本。
[0091] “异步复制”操作是指出于备份或复制的目的而被写入存储,然后被发送至目的地的数据事务。数据事务在通过网络被发送和/或发送至目的地之前被保存在内存(memory)
中。而且,可以将事务保持在日志文件中,以防止在系统故障的情况下的数据丢失。事务可
以从内存和/或从日志文件发送至目的地。
[0092] “备份”是指为操作恢复和/或灾难恢复而创建的数据的副本或部分副本。备份可以表示要保护的整个数据的完整副本,也可以仅表示存储自先前备份以来的数据变更和/
或差异的差异备份。此外,备份可以连续地处理,例如通过连续的数据保护(CDP)或实时备
份,其中使用实时更新内容在有索引或无索引的情况下以连续的方式更新存储库。此外,备
份可以分批处理,例如定期地,其中备份是分批创建的。批量备份可以指如下操作,即,根据
预定的再同步(例如,涉及针对自上次备份以来的变更的源数据的扫描)定期地或至少反复
地更新存储库,并仅将变更后的数据、变更后的文件和/或变更后的字节传送至目的地以进
行存储。
[0093] “存储库”可以是存储从源节点(或节点的源集群)接收到的数据的节点(或节点的集群),例如以用于实时备份、批量备份、版本管理(versioning)和/或归档。版本管理可以
指文件、目录和/或数据部分的版本在其发生变更时(例如,每次将文档保存在文件中,另一
个版本被保留并为其加索引时,例如根据更改历史创建多代数据)被采用的数据保护操作。
[0094] 示例性系统概述
[0095] 图1A示例性示出了根据示例性实施方式的数据系统的示意图。
[0096] 在图1A的数据系统中,多个客户端设备100a和100b(例如,主机计算机)示例性地经由通信网络连接至网络服务器200。图1A中的网络可以各自实现为有线通信网络(例如,
LAN)或无线通信网络(例如,WLAN),或者可以由互联网连接表示,或者在一些示例性实施方
式中,每个通信网络可以与直接通信连接(有线或无线的)互换。
[0097] 客户端设备100a和100b的用户例如可以经由网络浏览器访问网络服务器200(例如,使用HTML接口和/或REST接口或其他消息传输协议接口),和/或它们可以通过CLI(命令
行界面)访问网络服务器200(例如,使用REST接口或其他消息传输协议接口),并且网络服
务器200可以例如为客户端设备100a和100b的网络浏览器提供多个网页或其他类型的HTML
文档。
[0098] 另一方面,图1A的数据系统中的网络服务器200示例性地经由另一个通信网络(或经由同一通信网络)连接至外部存储系统900,并且网络服务器200还示例性地经由另一个
通信网络(或经由同一通信网络)连接至UIC(用户接口控制器)设备300。
[0099] UIC设备300示例性地经由另一个网络经由另一个通信网络(或经由同一通信网络)连接至管理计算机800、认证设备600和授权设备700。
[0100] 此外,UIC设备300(用户接口控制器)示例性地经由另一个网络经由另一个通信网络(或经由同一通信网络)连接至多个存储处理机设备400a、400b和400c(资源处理控制
器)。
[0101] 示例性地,(第一)存储处理机设备400a经由另一个网络经由另一个通信网络(或经由同一通信网络)可通信地连接至多个存储节点500a(例如,第一源节点)和500b(例如,
第一目的地节点)。进一步示例性地,(第二)存储处理机设备400b经由另一个网络经由另一
个通信网络(或经由同一通信网络)可通信地连接至存储节点500c(例如,第二源节点),并
且存储节点500c可通信地连接至存储节点500d(例如,第二目的地节点)。
[0102] 在上文中,示例性地,存储节点可以是提供一个或多个用于数据存储的存储装置的物理存储设备。此外,存储节点可以是提供一个或多个用于数据存储的存储卷(volume)
的逻辑存储单元。在其他示例性实施方式中,存储节点可以表示具有提供统一的存储空间
的多个集群节点的存储集群。总的来说,存储节点可以表示用于存储数据的物理、逻辑或虚
拟的存储实体。
[0103] 总的来说,源节点可以表示存储要管理的数据的实体或机器(例如,服务器、工作站或虚拟机)。源节点可以被配置为监测主机的一个或多个文件系统,并被配置为根据用户
限定的数据保护策略来执行和发起数据保护操作。源节点可以被配置为存储数据,传输本
地存储的数据或实现数据跟踪、阻塞或稽核功能。
[0104] 目的地节点可以表示被配置为接收(并存储)数据的实体或机器(例如,服务器、文件服务器、工作站或虚拟机),例如在复制配置中被指定为数据的接收者的存储库或通用系
统。
[0105] 总的来说,数据保护策略是可配置的目标,它被映射到节点或节点的组并至少限定源节点和目的地节点。即,在抽象级别上,数据保护策略限定了数据保护操作的源(源节
点)、由源节点管理的要保护的数据和在管理的数据上执行的数据保护操作的目的地(目的
地节点)中的至少一个。
[0106] 另外,数据保护策略还可以根据所限定的源节点和目的地节点之间的数据路径来限定数据移动操作。数据移动操作可以限定要在源节点和目的地节点之间执行的数据保护
操作的类型和/或方向,例如,镜像操作、复制操作、备份操作(例如,批量备份和/或实时备
份)、快照操作、归档操作、版本管理操作以及数据移动应批量发生(例如,批量备份)还是连
续发生(例如,连续数据保护或作为实时备份)或者将数据与将数据临时存储到日志文件中
同步地还是异步地移动。
[0107] 此外,对于每个数据保护操作或多个并行或链接的数据保护操作的组,数据保护策略可以包括另外的策略信息,例如保护目标,包括数据保留时间(例如,数据保护操作所
存储的数据应在接收数据的目的地节点处保留的时间)、数据保护操作应发生的频率、周期
性或时间窗口(例如,恢复点目标等)。此外,其他目标可以限定哪些数据需要保护(例如,基
于文件类型、与应用程序的关系,基于用户组或各个用户身份等)和其他时间限制(例如,被
排除的不应发生数据保护操作的时间窗口等)。
[0108] 在图1A中,示例性地,用户可以经由客户端设备100a或100b登录到数据存储系统,或者管理员可以经由管理计算机800登录到数据存储系统。然而,这样的管理计算机800可
以是可选的。例如,在一些示例性实施方式中,由于具有管理访问特权的用户可以经由客户
端设备100a或100b作为管理员登录(例如,在与管理访问特权相关联的“管理员”的用户角
色下),因此每个客户端设备100a或100b可以用作管理计算机。
[0109] 管理计算机800(和/或当用户经由客户端设备100a或100b作为管理员登录时,客户端设备100a或100b)可以被配置为能够改变数据存储系统的设置、管理配置和策略(例
如,数据保护策略)。
[0110] UIC设备300被示例性地配置为管理与数据存储系统的用户访问交互(例如,管理用户访问请求的路由(routing)),例如,管理对在一个或多个存储节点500a至500d上存储
的数据或甚至对外部存储系统900的访问请求。
[0111] 因此,在示例性实施方式中,可以将UIC设备300示例性地配置为用于用户经由网络服务器200经由用户接口(例如,图形用户界面/GUI或命令行界面/CLI)通信。在示例性实
施方式中,用户接口可以在网络服务器200上被提供给客户端或通过网络服务器200提供给
客户端。在其他实施方式中,用户接口可以通过UIC设备300直接地或经由网络服务器200间
接地提供给客户端。
[0112] UIC设备300被配置为将在UIC设备300处从客户端设备100a和100b中的一个客户端设备和/或管理计算机800接收的用户访问请求传送到存储处理机设备400a至400c。具体
地,UIC设备300可以示例性地被配置为将用户访问请求路由至一个或多个负责的存储处理
机设备400a、400b和400c,这些存储处理机设备示例性地将管理相应的用户访问请求的执
行。
[0113] 每个存储处理机设备400a、400b和400c可以被配置为管理由存储节点500a至500d或外部存储系统900提供的数据存储资源。例如,每个存储处理机设备400a、400b和400c(资
源处理控制器)可以被配置为管理数据存储系统的一个或多个存储节点或在一个或多个存
储节点上提供的一个或多个存储资源,具体地,数据存储系统的每个存储节点和/或存储资
源可以由一个相关联的存储处理机设备(资源处理控制器)来管理和/或控制。
[0114] 例如,在图1A中,存储处理机设备400a可以被配置为管理由存储节点500a和500b提供的一个或多个数据存储资源,而存储处理机设备400b可以被配置为管理由存储节点
500c和500d提供的一个或多个数据存储资源。
[0115] 示例性地,数据保护操作可以包括将数据从存储节点500a复制到由存储处理机设备400a管理或甚至通过存储处理机设备400a复制的存储节点500b,示例性地,数据保护操
作可以包括将数据从存储节点500c复制到由存储处理机设备400b管理的存储节点500d,存
储处理机设备400b指示这样的复制操作由存储节点500c执行以将数据复制到存储节点
500d(示例性地不直接连接至存储处理机设备400b)。
[0116] 进一步示例性地,存储处理机设备400c可以被配置为管理由外部存储系统提供的一个或多个数据存储资源。
[0117] 在图1A中,外部存储系统900示例性地连接至网络服务器200。在其他示例性实施方式中,外部存储系统900也可以连接至UIC设备300和/或一个或多个存储处理机设备400a
至400c。
[0118] 优选地,由一个或多个负责的存储处理机设备400a至400c管理对外部存储系统900的访问的管理,但是从一个或多个存储处理机设备400a至400c到外部存储系统900的消
息或访问请求可以被直接发送,或者可以经由UIC设备300和/或网络服务器200进行路由。
[0119] 例如,对于与外部存储系统900的连接,一个或多个负责的存储处理机可以与外部存储系统900对接。
[0120] 例如,对外部存储系统900的用户请求可以经由网络服务器200和UIC设备300进行路由,和/或负责的存储处理机设备将与外部存储系统900交互(例如,直接地或经由UIC设
备300和/或网络服务器200间接地路由)。
[0121] 在一些示例性实施方式中,外部存储系统900可以直接连接至UIC设备300和/或一个或多个存储处理机设备,例如不经由网络服务器200。
[0122] 图1B示例性示出了根据示例性实施方式的另一个数据系统的示意图。
[0123] 在图1B的数据系统中,类似于图1A,多个客户端设备100a和100b(例如,主机计算机)示例性地经由通信网络连接至网络服务器200。
[0124] 图1B的数据系统中的网络服务器200示例性地经由另一个通信网络(或经由同一通信网络)连接至外部存储系统900,并且网络服务器200还示例性地经由另一个通信网络
(或经由同一通信网络)连接至存储管理设备1000的UIC(用户接口控制器)模块301。
[0125] 示例性地,存储管理设备1000包括UIC模块301,并且还包括多个存储处理机模块401a至401c。UIC模块301可以与图1A中的UIC设备300类似地起作用和/或提供类似的处理
功能。存储处理机模块401a至401c可以与图1A中的存储处理机设备400a至400c类似地起作
用和/或提供类似的处理功能。
[0126] 存储管理设备1000的UIC模块301示例性地经由另一个网络经由另一个通信网络(或经由同一通信网络)连接至管理计算机800、认证设备600和授权设备700。
[0127] 此外,UIC模块301(用户接口控制器)示例性地可通信地连接至存储管理设备1000环境内的多个存储处理机模块401a、401b和401c(资源处理控制器)。
[0128] 示例性地,(第一)存储处理机模块401a经由另一个网络经由另一个通信网络(或经由同一通信网络)可通信地连接至多个存储节点500a(例如,第一源节点)和500b(例如,
第一目的地节点)。进一步示例性地,(第二)存储处理机模块400b经由另一个网络经由另一
个通信网络(或经由同一通信网络)可通信地连接至存储节点500c(例如,第二源节点),并
且存储节点500c可通信地连接至存储节点500d(例如,第二目的地节点)。
[0129] 在图1B中,示例性地,用户可以经由客户端设备100a或100b登录到数据存储系统,或者管理员可以经由示例性地连接至存储管理设备1000的管理设备800登录到数据存储系
统。然而,这种管理计算机800可以是可选的。例如,在一些示例性实施方式中,由于具有管
理访问特权的用户可以经由客户端设备100a或100b作为管理员登录(例如,在与管理访问
特权相关联的“管理员”的用户角色下),因此每个客户端设备100a或100b可以用作管理计
算机。
[0130] 管理设备800(和/或当用户经由客户端设备100a或100b作为管理员登录时,客户端设备100a或100b)可以被配置为能够改变数据存储系统的设置、管理配置和策略(例如,
数据保护策略)。
[0131] UIC模块301被示例性地配置为管理与数据存储系统的用户访问交互(例如,管理用户访问请求的路由),例如,管理对在一个或多个存储节点500a至500d上存储的数据或甚
至对外部存储系统900的访问请求。
[0132] 因此,在示例性实施方式中,可以将UIC模块301示例性地配置为用于用户经由网络服务器200经由用户接口(例如,图形用户界面/GUI或命令行界面/CLI)通信。在示例性实
施方式中,用户接口可以在网络服务器200上被提供给客户端或通过网络服务器200提供给
客户端。在其他实施方式中,用户接口可以通过UIC模块301直接地或经由网络服务器200间
接地提供给客户端。
[0133] UIC模块301被配置为将在UIC模块301处从客户端设备100a和100b中的一个客户端设备和/或管理计算机800接收的用户访问请求传送到存储处理机设备400a至400c。具体
地,UIC模块301可以示例性地被配置为将用户访问请求路由至一个或多个负责的存储处理
机设备401a、401b和401c,这些存储处理机设备示例性地将管理相应的用户访问请求的执
行。
[0134] 每个存储处理机模块401a、401b和401c可以被配置为管理由存储节点500a至500d或外部存储系统900提供的数据存储资源。例如,每个存储处理机模块401a、401b和401c(资
源处理控制器)可以被配置为管理数据存储系统的一个或多个存储节点或在一个或多个存
储节点上提供的一个或多个存储资源,具体地,数据存储系统的每个存储节点和/或存储资
源可以由一个相关联的存储处理机设备(资源处理控制器)来管理和/或控制。
[0135] 例如,在图1B中,存储处理机模块401a可以被配置为管理由存储节点500a和500b提供的一个或多个数据存储资源,而存储处理机模块401b可以被配置为管理由存储节点
500c和500d提供的一个或多个数据存储资源。
[0136] 示例性地,数据保护操作可以包括将数据从存储节点500a复制到由存储处理机模块401a管理或甚至通过存储处理机模块401a复制的存储节点500b,示例性地,数据保护操
作可以包括将数据从存储节点500c复制到由存储处理机模块401b管理的存储节点500d,存
储处理机模块401b指示这样的复制操作由存储节点500c执行以将数据复制到存储节点
500d(示例性地不直接连接至存储处理机模块401b)。
[0137] 进一步示例性地,存储处理机模块401c可以被配置为管理由外部存储系统提供的一个或多个数据存储资源。
[0138] 因此,作为与图1A的不同,在根据图1B的示例性实施方式中,UIC模块301和存储处理机模块401a至401b在同一存储管理设备1000上实现,而不是如图1A中示例性所示的那样
作为独立的设备实现。在另外的示例性实施方式中,UIC模块301可以在一个设备上实现,而
存储处理机模块401a至401b可以在另一个设备上实现。
[0139] 总的来说,UIC(用户接口控制器)和存储处理机(资源处理控制器)可以由硬件(包括机器、工作站、计算机、服务器,或者还包括机器集群、工作站集群、计算机集群、服务器集
群等)或软件(例如,通过可在机器、工作站、计算机、服务器上执行或还可在机器集群、工作
站集群、计算机集群、服务器集群等上执行的独立或组合的软件模块,或者作为均匀分布的
云服务)或硬件和软件的任何组合(例如,作为虚拟机或者在一个或多个虚拟机等上运行)
来实现。
[0140] 将存储处理机(资源处理控制器)作为软件模块提供的益处是,当添加额外的存储节点或存储系统以提供额外的可管理的存储资源时,可以将这样新添加的存储资源分配为
由一个或多个先前建立的存储处理机模块(资源处理控制器)中的一个或多个存储处理机
模块来管理,或者可以启动、创建或安装一个或多个新的存储处理机模块以管理一个或多
个新添加的存储资源。例如,在一些示例性实施方式中,对于每个新添加的存储资源和/或
每个新添加的存储节点,可以启动、创建或安装相应的新的存储处理机模块(资源处理控制
器)以管理相应的新添加的存储资源和/或每个新添加的存储节点。
[0141] 在图1B中,外部存储系统900示例性地连接至网络服务器200。在其他示例性实施方式中,外部存储系统900也可以连接至存储管理设备1000。
[0142] 优选地,对外部存储系统900的访问的管理由一个或多个负责的存储处理机模块401a至401c来管理,但是从存储处理机模块401a至401c到外部存储系统900的消息或访问
请求可以被直接发送,或者可以经由UIC模块301和/或网络服务器200进行路由。
[0143] 例如,对于与外部存储系统900的连接,一个或多个负责的存储处理机可以与外部存储系统900对接。
[0144] 例如,对外部存储系统900的用户请求可以经由网络服务器200和UIC模块301进行路由,和/或负责的存储处理机模块将与外部存储系统900交互(例如,直接地或经由UIC设
备300和/或网络服务器200间接地路由)。
[0145] 在一些示例性实施方式中,外部存储系统900可以直接连接至UIC模块301和/或一个或多个存储处理机模块,例如不经由网络服务器200。
[0146] 图1C示例性示出了根据示例性实施方式的另一个数据系统的示意图。
[0147] 在图1C的数据系统中,类似于图1A和图1B,多个客户端设备100a和100b(例如,主机计算机)经由通信网络示例性地连接至网络服务器200,网络服务器200示例性地经由另
一个通信网络(或经由同一通信网络)连接至外部存储系统900,并且网络服务器200还示例
性地经由另一个通信网络(或经由同一通信网络)连接至存储管理设备1001的UIC(用户接
口控制器)模块301。
[0148] 示例性地,存储管理设备1001包括UIC模块301,并且还包括多个存储处理机模块401a至401c。UIC模块301可以与图1A中的UIC设备300和图1B中的UIC模块301类似地起作用
和/或提供类似的处理功能。存储处理机模块401a至401c可以与图1A中的存储处理机设备
400a至400c和图1B中的存储处理机模块401a至401c类似地起作用和/或提供类似的处理功
能。
[0149] 存储管理设备1001的UIC模块301示例性地经由另一个网络经由另一个通信网络(或经由同一通信网络)连接至管理模块801、认证模块601和认证模块701,管理模块801、认
证模块601和认证模块701也示例性地包括在存储管理设备1001中。
[0150] 此外,类似于图1B中的配置,UIC模块301(用户接口控制器)示例性地可通信地连接至存储管理设备1001环境内的多个存储处理机模块401a、401b和401c(资源处理控制
器)。
[0151] 在图1C中,示例性地,用户可以经由客户端设备100a或100b登录到数据存储系统,或者管理员可以经由存储管理设备1001的管理模块801登录到数据存储系统。在一些示例
性实施方式中,由于具有管理访问特权的用户可以经由客户端设备100a或100b作为管理员
登录(例如,在与管理访问特权相关联的“管理员”的用户角色下),因此每个客户端设备
100a或100b可以用作管理计算机。
[0152] 管理模块801(和/或当用户经由客户端设备100a或100b作为管理员登录时,客户端设备100a或100b)可以被配置为能够改变数据存储系统的设置、管理配置和策略(例如,
数据保护策略)。然而,这样的管理模块801可以是可选的。例如,在一些示例性实施方式中,
由于具有管理访问特权的用户可以经由客户端设备100a或100b作为管理员登录(例如,在
与管理访问特权相关联的“管理员”的用户角色下),因此每个客户端设备100a或100b可以
用作管理计算机。
[0153] 管理模块801可以经由用户接口进行通信,以便在存储管理设备1001处例如经由GUI(图形用户界面)和/或CLI(命令行界面)输入其配置、设置和变更。在示例性实施方式
中,用户接口可以在网络服务器200上被提供给客户端或通过网络服务器200提供给客户
端。在其他实施方式中,用户接口可以通过UIC模块301直接地或经由网络服务器200间接地
提供给客户端。
[0154] 例如,管理模块801可以被配置为经由图形用户界面和/或命令行界面来访问,该图形用户界面和/或命令行界面经由网络服务器200提供给一个或多个客户端设备。然后,
用户可以经由客户端设备100a或100b登录到数据存储系统,以通过访问管理模块801来改
变管理设置。
[0155] 管理模块801可以由软件和/或硬件提供。在一些示例性实施方式中,管理模块801可以是UIC模块301的一部分或包括在UIC模块301中。UIC模块301示例性地被配置为管理对
数据存储系统的用户访问交互,例如,管理对在一个或多个存储节点500a至500d上存储的
数据或甚至对外部存储系统900的访问请求。
[0156] 因此,在示例性实施方式中,UIC模块301可以被示例性地配置为经由网络服务器200为用户提供用户接口(例如,图形用户界面/GUI或命令行界面/CLI),以通过网络服务器
200在相应的客户端设备/计算机处被提供。
[0157] UIC模块301被配置为将在UIC模块301处从客户端设备100a和100b中的一个客户端设备和/或管理模块801接收的用户访问请求传送到存储处理机模块401a至401c。
[0158] 具体地,可以将UIC模块301示例性地配置为将用户访问请求路由至一个或多个负责的存储处理机模块401a、401b和401c,这些存储处理机模块示例性地将管理相应的用户
访问请求的执行。
[0159] 每个存储处理机模块401a、401b和401c可以被配置为管理由存储节点500a至500d或外部存储系统900提供的数据存储资源。例如,每个存储处理机模块401a、401b和401c(资
源处理控制器)可以被配置为管理数据存储系统的一个或多个存储节点或在一个或多个存
储节点上提供的一个或多个存储资源,具体地,数据存储系统的每个存储节点和/或存储资
源可以由一个相关联的存储处理机设备(资源处理控制器)来管理和/或控制。
[0160] 例如,对于与外部存储系统900的连接,一个或多个负责的存储处理机可以与外部存储系统900对接。例如,对外部存储系统900的用户请求可以经由网络服务器200和UIC模
块301进行路由,并且一个或多个负责的存储处理机将与外部存储系统900交互(例如,直接
地或经由UIC模块301和网络服务器200间接地路由)。在一些示例性实施方式中,外部存储
系统900可以直接连接至UIC模块301和/或一个或多个存储处理机模块,例如,不经由网络
服务器200。
[0161] 在图1C中,示例性地,存储处理机模块401a可以被配置为管理由存储节点500a和500b提供的一个或多个数据存储资源,而存储处理机模块401b可以被配置为管理由存储节
点500c和500d提供的一个或多个数据存储资源。
[0162] 示例性地,数据保护操作可以包括将数据从存储节点500a复制到由存储处理机模块401a管理或者甚至通过存储处理机模块401a复制的存储节点500b,示例性地,数据保护
操作可以包括将数据从存储节点500c复制到由存储处理机模块401b管理的存储节点500d,
存储处理机模块401b指示这样的复制操作由存储节点500c执行以将数据复制到存储节点
500d(示例性地不直接连接至存储处理机模块401b)。
[0163] 进一步示例性地,存储处理机模块401c可以被配置为管理由外部存储系统提供的一个或多个数据存储资源。
[0164] 因此,与图1A不同,但与图1B类似,在根据图1C的示例性实施方式中,UIC模块301和存储处理机模块401a至401b在同一存储管理设备1001上实现,而不是如图1A中示例性所
示的那样作为独立的设备实现。在另外的示例性实施方式中,UIC模块301可以在一个设备
上实现,而存储处理机模块401a至401b可以在另一个设备上实现。
[0165] 在图1C中,外部存储系统900示例性地连接至存储管理设备1001。在其他示例性实施方式中,外部存储系统900也可以通过网络服务器200连接。
[0166] 优选地,对外部存储系统900的访问的管理由一个或多个负责的存储处理机模块401a至401c来管理,但是从存储处理机模块401a至401c到外部存储系统900的消息或访问
请求可以被直接发送,或者可以经由UIC模块301和/或网络服务器200进行路由。
[0167] 例如,对于与外部存储系统900的连接,一个或多个负责的存储处理机可以与外部存储系统900对接。
[0168] 例如,对外部存储系统900的用户请求可以经由网络服务器200和UIC模块301进行路由,和/或负责的存储处理机模块将与外部存储系统900交互(例如,直接地或经由UIC模
块301和/或网络服务器200间接地路由)。
[0169] 在一些示例性实施方式中,外部存储系统900可以直接连接至UIC模块301和/或一个或多个存储处理机模块,例如,不经由网络服务器200。
[0170] 总的来说,UIC(用户接口控制器)和存储处理机(资源处理控制器)可以由硬件(包括机器、工作站、计算机、服务器,或者还包括机器集群、工作站集群、计算机集群、服务器集
群等)或软件(例如,通过可在机器、工作站、计算机、服务器上执行或还可在机器集群、工作
站集群、计算机集群、服务器集群等上执行的独立或组合的软件模块,或者作为均匀分布的
云服务)或硬件和软件的任何组合(例如,作为虚拟机或者在一个或多个虚拟机等上运行)
来实现。
[0171] 将存储处理机(资源处理控制器)作为软件模块提供的益处是,当添加额外的存储节点或存储系统以提供额外的可管理的存储资源时,可以将这样新添加的存储资源分配为
由一个或多个先前建立的存储处理机模块(资源处理控制器)中的一个或多个存储处理机
模块来管理,或者可以启动、创建或安装一个或多个新的存储处理机模块以管理一个或多
个新添加的存储资源。例如,在一些示例性实施方式中,对于每个新添加的存储资源和/或
每个新添加的存储节点,可以启动、创建或安装相应的新的存储处理机模块(资源处理控制
器)以管理相应的新添加的存储资源和/或每个新添加的存储节点。
[0172] 此外,管理模块801、认证模块601和授权模块701示例性地在同一存储管理设备1001上实现,而不是如图1A和图1B中示例性所示的那样作为独立的设备实现。
[0173] 总的来说,管理、认证和授权设备/模块可以由硬件(包括机器、工作站、计算机、服务器,或者还包括机器集群、工作站集群、计算机集群、服务器集群等)或软件(例如,通过可
在机器、工作站、计算机、服务器上执行或还可在机器集群、工作站集群、计算机集群、服务
器集群等上执行的独立或组合的软件模块,或者作为均匀分布的云服务)或硬件和软件的
任何组合(例如,作为虚拟机或者在一个或多个虚拟机等上运行)来实现。
[0174] 在以上示例性实施方式中,示例性地,相应的存储处理机设备/模块可以负责管理源节点和/或目的地节点以及处理、管理或控制从源节点到目的地节点执行的数据保护操
作。替代地或补充地,不同的存储处理机设备/模块可以管理源节点或由源节点提供的数据
存储资源,用于所述源节点的目的地节点或由目的地节点提供的数据存储资源由另一个
(或多个其他)存储处理机设备/模块进行管理,并且不同的存储处理机设备/模块可以管理
目的地节点或由目的节点提供的数据存储资源,用于所述目的地节点的源节点或由源节点
提供的数据存储资源由另一个(或多个其他)存储处理机设备/模块管理。此外,在示例性实
施方式中,一个或多个存储处理机设备/模块可以仅管理源节点或由源节点提供的数据存
储资源,而一个或多个其他存储处理机设备可以仅管理目的地节点或由目的节点提供的数
据存储资源。
[0175] 示例性用户认证过程
[0176] 出于用户认证目的,在本文中还仅被称为UIC(用户接口控制器)的UIC设备300(或UIC模块301)被示例性地配置为与在本文中还仅被称为“认证模块”的认证设备600(或认证
模块601)通信。
[0177] 例如,如果用户经由通过网络服务器200提供的图形用户界面、命令行界面或另一个用户接口从客户端计算机(客户端设备)登录到UIC,可以在UIC处接收指示用户名(或其
他用户标识符)和密码的对应的登录请求。
[0178] 这样的用户名(或其他用户标识符)和密码可能已经由相应的用户经由在客户端设备处提供的网络服务器200的用户接口(例如,CLI或GUI等)输入到UIC(用户接口控制
器)。
[0179] 图2示例性示出了根据一些示例性实施方式的用于用户认证的过程的流程图。
[0180] 示例性地,在步骤S21中,UIC(用户接口控制器)例如经由网络服务器200接收包括试图从客户端设备100a或100b登录的用户的用户名(和/或用户角色;如果不包括用户角
色,可能与典型的示例性实施方式中的情况一样,可选地可以稍后基于与用户名相关联的
用户配置文件来确定用户角色)的登录请求。登录请求还示例性地包括来自用户输入的密
码。密码可以随登录请求以编码和/或加密的格式(例如,通过预定的哈希函数或哈希算法
对密码进行哈希处理)来传输。此外,密码可以使用其他加密技术(例如,通过使用TLS和/或
诸如SSLv3等SSL加密)通过网络来发送。
[0181] 在一些示例性实施方式中,登录请求还可以指示试图登录到数据存储系统的用户的用户域(user domain)。在整个说明书中使用的术语“用户域”或简称为“域(domain)”可
以在更狭义的意义上指代域(例如,活动目录域),或在更广义的意义上它一般还指代用户
的认证空间。用户域或以一般方式的域可以被视为可以向其中添加用户(或可以从中删除
用户)并且也可以具有一个或多个子组的用户组。
[0182] 在步骤S22中,UIC将接收到的登录请求或从登录请求中获取或解码的对应的登录信息发送至认证模块。在多个用户域的情况下,数据存储系统可以包括多个认证模块(模
块、设备或系统),例如,在这种情况下,每个认证模块可以负责多个用户域中的相应的一个
或多个用户域的用户的用户认证。
[0183] 在这样的示例性实施方式中,步骤22还可以包括确定与在UIC处接收到的登录请求相关联的相应的用户的用户域以及确定负责的认证模块从而将接收到的登录请求(或从
登录请求中获取或解码的对应的登录信息)发送至所确定的认证模块。
[0184] 在步骤S23中,认证模块在从UIC接收到登录请求(或从登录请求中获取或解码的对应的登录信息)后检查从UIC接收到的与用户相关联的登录请求(或用户登录信息),以确
定是否可以基于在认证模块的数据库中存储的认证数据对用户进行认证。
[0185] 例如,如果在认证模块的数据库中存储的认证数据具有用于与用户登录请求相关联的相应的用户的用户名的认证数据,并且如果密码或其加密的表示与用于与用户登录请
求关联的相应的用户的用户名的认证数据匹配,则可以确定用户的认证是成功的。可以用
其他方式确定用户的认证是成功的。
[0186] 在一些示例性实施方式中,可以通过使用外部认证服务/系统来执行认证过程,例如通过对照第三方认证系统(例如,本地和/或远程计算机上的活动目录、LDAP或本地安全
服务)检查用户的证书。在这种情况下(例如,代替下述认证过程),认证可以基于与第三方
认证系统的交互来准予或拒绝;并且步骤S23、S24、S25和/或S27等步骤可以由第三方认证
系统执行。
[0187] 在步骤S23中,认证模块示例性地检查与用户登录请求相关联的相应的用户的用户认证是否成功,例如,对于用户登录请求实际上与预先注册的用户相关联(即,该用户就
是他们声称的用户)进行认证。
[0188] 如果步骤S23返回“否”,则在步骤S25中认证模块可以简单地将拒绝消息发送至UIC,并且在步骤S26中UIC可以拒绝访问(例如,通过指示网络服务器200向用户提供错误或
访问拒绝的消息)。然后,该过程可以结束。
[0189] 另一方面,如果步骤S23返回“是”,则在步骤S27中认证模块将确认消息(例如包括与被认证的用户相关联的用户信息)发送至UIC,并且在收到确认后,在步骤S28中,UIC示例
性地针对与登录请求相关联的用户发起会话开始,并在步骤S29中出于访问控制目的继续
进行用户授权过程(例如,参见图3)。
[0190] 在一些示例性实施方式中,在S27中发送的被称为“用户信息”的信息可以是用户证书信息。
[0191] 在一些示例性实施方式中,用户证书信息可以确认与登录请求相关联的用户的用户名(以及可选的用户域),或者在其他示例性实施方式中,用户证书信息可以包括用户标
识符,例如用户ID等。它可以可选地另外包括用户密码的哈希值。然而,这样的信息通常不
包括用户密码。
[0192] 在其他示例性实施方式中,在S27中发送的用户信息可以不发送诸如用户名等个人用户信息,但是用户信息可以包括关于用户所属的组的“成员资格信息”或“组信息”。例
如,这样的用户“成员资格信息”可以指示用户所属的组和/或用户的域中的至少一个。
[0193] 在S27中发送的信息可以在以下描述的示例性实施方式的授权过程中使用。
[0194] 要注意的是,以上认证过程是可选的,并且在安全环境中,在一些示例性实施方式中可以跳过用户认证过程。此外,可以使用更简单的认证过程,并且还可以在UIC中实现用
户认证过程以由UIC直接执行。
[0195] 此外,尽管上述示例性认证过程依赖于密码的使用,但是要注意的是,用于识别与登录请求相关联的特定用户的其他认证过程也可以基于诸如面部识别、语音识别和/或指
纹识别等生物统计信息来(替代地或补充地)执行,和/或也可以基于触摸屏手指图案认证
等来(替代地或补充地)执行。
[0196] 示例性用户授权过程(访问控制授权)
[0197] 出于用户授权目的,例如结合访问控制,UIC被示例性地配置为与授权模块/设备通信。例如,如果用户(例如,经由通过网络服务器200提供的图形用户界面、命令行界面或
另一个用户接口从客户端计算机(客户端设备))登录到UIC,可以在UIC处接收指示用户名
(或其他用户标识符)的对应的登录请求。
[0198] 在执行例如如上所述的可选的认证过程后,UIC可以基于与登录请求相关联的用户的用户名来执行授权过程的发起。
[0199] 此外,UIC(用户接口控制器)可以基于由上述认证过程所提供的与登录请求相关联的用户的用户信息(例如,用户证书信息或成员资格信息)来执行授权过程的发起,例如
通过使用用户名和/或用户标识符(例如用户ID等)或通过使用有关用户的组和/或域的信
息。
[0200] 示例性地,在一些示例性实施方式中,用户授权是通过使用基于角色的访问控制(RBAC)方案来执行的。然而,尽管使用基于角色的访问控制(RBAC)方案是优选的示例性方
面,但是在一些示例性实施方式中,可以使用其他访问控制方案(没有限定的用户角色)。
[0201] 通常,基于角色的访问控制(RBAC)方案可以限定一个或多个用户角色中的每个用户角色与关联于相应的用户角色的用户的一个或多个许可用户活动之间的关联,例如,因
为与特定的用户角色相关联的每个用户可以被许可执行(或请求执行)与特定的用户角色
相关联的活动。
[0202] 一个或多个用户角色中的每个用户角色与关联于相应的用户角色的用户的一个或多个许可用户活动之间的这样的关联可以通过肯定的方式限定,即,针对每个用户角色,
这样的关联限定对于相应的用户角色的用户被许可的一个或多个活动。在一些示例性实施
方式中(补充地或替代地),一个或多个用户角色中的每个用户角色与关联于相应的用户角
色的用户的一个或多个许可用户活动之间的这样的关联可以可选地通过否定的方式限定,
即,针对每个用户角色,这样的关联限定对于相应的用户角色的用户不被许可的多个活动
中的一个或多个活动。
[0203] 如果可以使用另一种访问控制方案(没有限定的用户角色),则该访问控制方案可以直接限定一个或多个用户中的每个用户与关联于相应的用户的一个或多个许可用户活
动之间的关联,例如因为每个用户可以被许可执行(或请求执行)分别与他们相关联的活
动。
[0204] 多个用户中的每个用户与关联于相应的用户的一个或多个许可用户活动之间的这样的关联可以通过肯定的方式限定,即,针对每个用户,这样的关联限定对于相应的用户
被许可的一个或多个活动。在一些示例性实施方式中(补充地或替代地),多个用户中的每
个用户与关联于相应的用户的一个或多个许可用户活动之间的这样的关联可以通过否定
的方式限定,即,针对每个用户,这样的关联限定对于相应的用户不被许可的多个活动中的
一个或多个活动。
[0205] 然而,尽管本公开不限于此,但是在一些示例性实施方式中,使用基于角色的访问控制(RBAC)方案是优选的示例性方面,因为这样的基于角色的访问控制(RBAC)不需要针对
每个独立的用户限定许可活动的关联(在系统中存在数百个或甚至数千个用户的情况下),
而是可以允许限定不同的用户组(数量少于用户的总数),每个用户组都与特定的用户角色
相关联,特定的用户角色与一个或多个许可活动的特定的组相关联。另外,将新用户添加到
系统(甚至新用户组)的效率更高,因为可以仅为一个或多个新用户分配可能先前已经限定
过的适当的用户角色,或者可以为新一组许多用户有效地限定新用户角色。
[0206] 总的来说,用户角色可以与一个或多个活动和/或一个或多个活动组的活动相关联,特定的用户角色的用户被允许执行与该特定的用户角色相关联的一个或多个活动和/
或一个或多个活动组的活动。例如,第一用户角色可以允许执行第一活动和/或第一组活
动,而另一个第二角色可以允许执行第二活动和/或第二组活动。
[0207] 此外,应当注意,在一些示例性实施方式中,用户角色也可以与资源相关联,或者针对资源来进行控制,例如因为特定的用户角色可以与特定的活动相关联,而特定的活动
可以由相应的用户角色的用户在特定的资源上执行。例如,第一用户角色可以允许在第一
资源(和/或第一组资源)上执行第一活动(和/或第一组活动),而另一个第二角色可以允许
在第二资源(和/或第二组资源)上执行第二活动(和/或第二组活动)。
[0208] 此外,在一些示例性实施方式中,用户角色可以与资源相关联,使得用户角色可以与允许在其上执行活动的特定的资源相关联。例如,第一用户角色可以允许在第一资源
(和/或第一组资源)上执行一个或多个活动,而另一个第二角色可以允许在第二资源(和/
或第二组资源)上执行一个或多个活动。
[0209] 尽管下面将描述用户授权过程的示例性方面,但是下面结合图3在此描述用户授权过程的一般示例性方面。
[0210] 在该示例中,将在与当前已登录到系统的特定的用户相关联的访问控制配置文件信息中描述用户的访问许可。示例性地,UIC示例性地在会话开始后(即,在用户登录之后,
并且可选地在确认成功的用户认证过程后,执行这种用户授权过程。
[0211] 图3示例性示出了根据一些示例性实施方式的用于用户授权处理的过程的流程图。
[0212] 示例性地,在步骤S31中(例如,在上述认证过程之后,或者直接在从特定的用户接收到登录请求后),UI控制器(UIC)发起用户授权过程并将对应的授权请求(例如,指示用户
的身份,例如通过使用从认证模块或认证设备600接收到的用户的用户名、用户的用户ID或
证书信息,和/或指示用户的组和/或域)发送至授权模块/设备。
[0213] 授权模块接收与登录请求相关联的用户的对应的授权请求,并且在步骤S32中,查找其授权数据库,该授权数据库可以存储多个用户与一个或多个访问控制配置文件之间的
关联。授权数据库可以存储与用于个人用户(例如,每个用户的一个或多个相关联的访问控
制配置文件)、用户组(例如,每个用户组的一个或多个相关联的访问控制配置文件)和/或
用户域(例如,每个用户域的一个或多个关联的访问控制配置文件)的访问控制配置文件的
关联。
[0214] 因此,授权设备/模块被配置为基于与登录请求相关联的用户的对应的授权请求来确定对于相应的用户(和/或用户组和/或用户域)的一个或多个访问控制配置文件,即与
相应的用户(和/或用户组和/或用户域)相关联的一个或多个访问控制配置文件,和/或确
定与相应的用户(和/或用户组和/或用户域)的用户角色相关联的一个或多个访问控制配
置文件。
[0215] 例如,授权数据库可以针对多个用户中的每个用户(和/或用户组和/或用户域)存储与相应的用户(和/或用户组和/或用户域)相关联的一个或多个访问控制配置文件,和/
或授权数据库可以针对一个或多个访问控制配置文件中的每个访问控制配置文件存储与
相应的访问控制配置文件相关联的零个、一个或多个用户(和/或用户组和/或用户域)。
[0216] 补充地或替代地,授权数据库可以针对一个或多个用户角色中的每个用户角色存储与相应的用户角色相关联的一个或多个访问控制配置文件,和/或授权数据库可以针对
一个或多个访问控制配置文件中的每个访问控制配置文件存储与相应的访问控制配置文
件相关联的一个或多个用户角色。然后,授权数据库还可优选针对多个用户(和/或用户组
和/或用户域)中的每个用户存储与相应的用户(和/或用户组和/或用户域)相关联的一个
(或多个)用户角色,和/或授权数据库还可以优选针对一个或多个用户角色中的每个用户
角色存储与相应的用户角色相关联的零个、一个或多个用户(和/或用户组和/或用户域)。
[0217] 在另外的示例性实施方式中,授权数据库可以存储将多个用户中的每个用户与一个或多个用户组中的相应的用户组关联起来的用户组信息,和/或将一个或多个用户组中
的每个用户组与多个用户中的相应的用户关联起来的用户组信息。在这样的示例性实施方
式中,授权数据库还可以存储将一个或多个用户组中的每个用户组与一个或多个访问控制
配置文件关联起来和/或将一个或多个访问控制配置文件与一个或多个用户组关联起来的
访问控制配置文件关联信息。
[0218] 在此,组还可以指代用户域(例如,用户bob@domain.com和mary@domain.com可以是属于同一域“@domain.com”的不同用户),和/或组也可以指代一个组中的多个用户的用
户组(例如,作为特定的域的所有用户的子组)。
[0219] 总的来说,基于上述内容,通过在授权数据库中查找与相应的登录请求相关联的相应的用户,授权模块/设备能够确定与关联于相应的登录请求的相应的用户相关联的一
个或多个访问控制配置文件,例如直接经由用户与访问控制配置文件之间的关联,或间接
经由包括确定与关联于相应的登录请求的相应的用户相关联的用户组和/或用户角色的关
联。
[0220] 如下面更详细说明的那样,每个访问控制配置文件可以与相应的访问控制配置文件信息有关,并且在优选的示例性方面,特定访问控制配置文件的访问控制配置文件信息
可以优选至少指示被许可执行(或被许可由被确定与相应的访问控制配置文件相关联的用
户请求执行)的一个或多个活动(或用户活动)以及被许可由被确定与相应的访问控制配置
文件相关联的用户访问的一个或多个存储资源(例如,由上述存储节点提供或由上述存储
节点表示,例如在存储节点或一组存储节点可以表示数据存储资源和/或存储节点或一组
存储节点可以提供一个或多个存储资源的意义上)(例如,用户被许可对该一个或多个数据
存储资源执行或请求许可的活动)。
[0221] 除上述之外(或作为替代),在优选的示例性方面,特定的访问控制配置文件的访问控制配置文件信息可以优选至少指示被许可由用户执行的一个或多个活动(或用户活
动)以及被许可由被确定与相应的访问控制配置文件相关联的用户访问的一个或多个数据
存储资源的情况下,特定的访问控制配置文件的访问控制配置文件信息可以指示一个或多
个资源组,每个资源组与一个或多个数据存储资源相关联。
[0222] 除上述之外(或作为替代),其中在优选的示例性方面,特定访问控制配置文件的访问控制配置文件信息可以优选至少指示一个或多个被许可由用户执行的活动(或用户活
动)以及被许可由被确定与相应的访问控制配置文件相关联的用户访问的一个或多个数据
存储资源的情况下,特定的访问控制配置文件的访问控制配置文件信息可以指示一个或多
个活动组,每个活动组与一个或多个被许可的活动相关联(并且除了活动组之外,特定的访
问控制配置文件的访问控制配置文件信息还可以指示零个或多个活动,例如另外的活动)。
[0223] 进一步优选地,在基于角色的访问控制(RBAC)方案中,特定的访问控制配置文件的访问控制配置文件信息可以指示一个或多个用户角色,每个用户角色优选与一个或多个
活动组(每个活动组与一个或多个活动相关联)和零个或多个活动或一个或多个活动相关
联(例如,如果与活动组已经存在至少一个关联)。
[0224] 进一步优选地,在一些示例性实施方式中,特定的访问控制配置文件的访问控制配置文件信息可以示例性地优选指示一个或多个访问级别(例如,每个资源组一个访问级
别)。访问级别及其示例性效果将在下面进一步描述。
[0225] 图4示例性示出了根据一些示例性实施方式的用户与用户相关的访问控制配置文件之间的关联以及访问控制配置文件信息的关联的示例。
[0226] 示例性地,图4的访问控制配置文件基于基于角色的访问控制(RBAC),其中如上所述,本发明不限于基于角色的访问控制(RBAC)。例如,代替(或除了)将多个用户中的每个用
户与至少一个用户角色关联起来以及将每个用户角色与一个或多个相应的访问控制配置
文件关联起来,可以将用户直接与相应的一个或多个访问控制配置文件相关联,例如不使
用用户角色。
[0227] 总的来说,在优选的示例性方面,多个用户中的每个用户与一个或多个访问控制配置文件相关联(例如,根据其用户身份、根据该用户所属的特定域的一个或多个用户组
和/或根据用户所属的一个或多个域)。
[0228] ACP(访问控制配置文件)关联由管理信息表示,该管理信息将多个用户中的每个用户与相应的一个或多个访问控制配置文件关联起来。
[0229] 例如,授权模块/设备的授权数据库可以存储访问配置文件关联信息,该访问配置文件关联信息可以指示以下的一个或多个:
[0230] ·一个或多个关联(访问控制配置文件关联),其中,可以为个人用户、用户的组(用户组)和/或域提供每个关联;
[0231] ·每个关联可以指示(或包含)一个或多个访问控制配置文件;
[0232] ·每个访问控制配置文件都可以指示(或包含)用户角色和/或资源组;
[0233] ·在每个访问控制配置文件中,优选为每个资源组指定访问级别;
[0234] ·每个用户角色可以与一个或多个活动和/或是一个或多个活动组相关联,其中每个活动组可以与一个或多个活动(用户活动)相关联;
[0235] ·每个资源组可能与一个或多个存储资源相关联。
[0236] 鉴于上述情况,如果确定用户(或该用户所属的用户组)与特定的访问控制配置文件相关联(访问控制配置文件关联),则可以授予该用户访问权限,从而允许其在存储资源
上执行/进行与在访问控制配置文件中指示的用户角色相关联的一个或多个活动和/或与
关联于用户角色的活动组相关联的一个或多个活动,其中的存储资源包括在根据为相应的
资源组所指示的相应的访问级别、在相关联的访问控制配置文件中所指示的一个或多个资
源组中。
[0237] 要注意的是,特定的用户可以与多个访问控制配置文件相关联。例如,如果授权数据库存储用于个人用户、用户组和域的访问控制配置文件,则可以为用户bob@domain.com
分配多个访问控制配置文件,例如,与个人用户“bob”相关联的第一访问控制配置文件
ACP1、与域“domain.com”相关联的第二访问控制配置文件ACP2以及与用户“bob”可能所属
的一个或多个用户组相关联的潜在的另外的一个或多个访问控制配置文件。
[0238] 例如,图4(A)示例性示出了,(多个用户中的)用户“用户1”与(多个访问控制配置文件中的)访问控制配置文件“ACP1”相关联,如图4(A)中的箭头示例性所示。替代地或补充
地,例如在图4(B)中,(多个用户中的)用户“用户1”可以示例性地与用户组“用户组1”(多个
用户组中的,每个用户组与一个或多个用户相关联)相关联,用户组“用户组1”再次与访问
控制配置文件“ACP1”相关联(例如,与关联于特定的用户角色(例如,普通用户、超级用户
和/或管理员等)的一组用户相关联的用户组)。
[0239] 因此,每个用户可以与一个或多个访问控制配置文件相关联。并且,授权模块/设备可以基于这样的授权关联信息来确定与特定的用户(例如,登录到UIC中并且获得授权的
用户)相关联的(多个访问控制配置文件中的)一个或多个访问控制配置文件。
[0240] 用户的访问许可示例性地在与相应的一个或多个访问控制配置文件相关联的访问控制信息中指示。因此,可以为每个限定的访问控制配置文件存储访问控制配置文件信
息,例如,根据图4(C)的关联。
[0241] 在图4(C)中,示例性地,(多个访问控制配置文件中的)访问控制配置文件“ACP1”示例性地与(多个用户角色中的)用户角色“用户角色1”相关联。进一步示例性地,(多个用
户角色中的)用户角色“用户角色1”与(多个活动组中的)活动组“活动组1”相关联,活动组
“活动组1”示例性地与(多个活动中的)活动“活动1”和“活动2”相关联。用户角色也可以直
接与多个活动中的零个、一个或多个活动相关联。每个访问控制配置文件可以与关联于一
个或多个活动组以及零个、一个或多个活动的用户角色相关联,并且每个活动组可以与一
个或多个活动相关联。
[0242] 在图4(C)中,示例性地,(多个访问控制配置文件中的)访问控制配置文件“ACP1”示例性地与(多个资源组中的)资源组“资源组1”相关联,并且(多个资源组中的)资源组“资
源组1”示例性地与存储资源“资源1”、“资源2”和“资源3”相关联。每个访问控制配置文件可
以与一个或多个资源组相关联,并且每个资源组可以与一个或多个资源相关联。
[0243] 在图4(C)中,示例性地,(多个访问控制配置文件中的)访问控制配置文件“ACP1”与(多个访问级别中的)访问级别“访问级别1”相关联。每个访问控制配置文件可以与一个
或多个访问级别相关联。优选地,访问控制配置文件与关联于相应访问配置文件的每个资
源组的相应访问级别相关联,例如,通过将每个资源组与相应的访问级别相关联。
[0244] 总之,图4的关联信息和访问控制配置文件信息示例性地指示相应的用户“用户1”与访问控制配置文件“ACP1”相关联,访问控制配置文件“ACP1”指示用户“用户1”具有用户
角色“用户角色1”并被许可根据基于访问级别“访问级别1”的资源组“资源组1”访问存储资
源“资源1”、“资源2”和“资源4”,并且用户“用户1”被许可在存储资源“资源1”、“资源2”和
“资源4”上根据基于访问级别“访问级别1”的资源组“资源组1”执行(或请求执行)活动组
“活动组1”的活动“活动1”以及“活动2”和“活动5”。
[0245] 因此,示例性地,访问控制配置文件指示已与相应的访问控制配置文件“ACP1”相关联的相应的用户被许可根据基于相关联的访问级别的一个或多个资源组访问存储资源,
并且相应的用户被许可在存储资源上根据基于相关联的访问级别的一个或多个相关联的
资源组执行(或请求执行)相关联的活动组的活动和/或相关联的活动。
[0246] 返回图3,在步骤S33中,基于步骤S32的查找,授权模块/设备检索与关联于登录请求和/或认证请求的用户相关联的一个或多个访问控制配置文件(和/或对应的访问控制配
置文件信息),并且指示所确定的与关联于登录请求和/或认证请求的用户相关联的一个或
多个访问控制配置文件的对应访问控制配置文件信息被用于创建有效载荷(步骤S34),该
有效载荷在步骤S35中被从授权模块/设备发送至UIC(用户接口控制器)。
[0247] 在步骤S37中,UIC(用户接口控制器)示例性地通过经由网络服务器200发送确认消息来确认那时(经认证和)经授权的用户的会话开始。
[0248] 示例性地,在步骤S34中(可以与步骤S37并行地、在步骤S37之前或之后执行),创建用于相应的用户的访问控制信息的有效载荷。因此,在一些示例性实施方式中,授权设
备/模块负责基于所获得的与用户相关联的一个或多个访问控制配置文件来为该相应的用
户创建有效载荷,并将所创建的有效载荷发送至UIC(用户接口控制器)。在其他示例性实施
方式中,授权设备/模块可以将所获得的与用户相关联的一个或多个访问控制配置文件或
指示与用户相关联的一个或多个访问控制配置文件的访问控制配置文件信息发送至UIC,
并在这样的示例性实施方式中,可以在UIC处基于所接收到的一个或多个访问控制配置文
件或一个或多个访问控制配置文件的信息来创建有效载荷。
[0249] 有效载荷优选指示由授权设备/模块针对与登录请求相关联的相应的用户所获得的对应的访问控制配置文件信息。在一些示例性优选方面,在创建有效载荷时可以对对应
的访问控制配置文件信息进行编码,例如通过压缩式的压缩数据格式。
[0250] 这样的有效载荷提供了如下优点:不需要稍后再次执行上述授权过程,但是可以将针对相应的用户的相应的访问控制配置文件信息保持存储(例如,在高速缓存、NVRAM中
或在UIC的存储装置上,例如会话数据库中)长达例如整个会话直到用户再次注销,或甚至
保留更长的时间直到用户再次登录以被重新使用(至少除非同时未重置或重新配置用户的
访问控制配置文件)。
[0251] 此外,这样的有效载荷提供的益处是,UIC可以将有效载荷嵌入访问请求中(例如,通过将有效载荷附于这样的访问请求,或者通过将有效载荷编码或添加到这样的访问请求
或其报头部分中)。那么,虽然UIC以集中的方式执行第一授权处理,但是由于存储处理设备
(资源处理控制器)可以在端点处,即在数据存储系统的数据访问点处,例如在存储处理设
备(资源处理控制器)上、在相应的节点上和/或通过用于访问存储资源的存储控制器执行
每次访问请求的单独的访问控制,因此可以通过分布式方式有效且可靠地进行每次访问请
求的后续访问控制。
[0252] 相应地,通过分布式方式的访问控制更有效(例如,由于避免了在每次访问的基础上处理向/从集中式授权系统的查询的必要性,因此大大减少了中央授权系统的工作量负
担,和/或由于避免了在每次访问基础上向/从集中授权系统查询的必要性,因此大大减小
了系统内的通信带宽)。
[0253] 此外,在可选的步骤S36中,UIC示例性地将针对相应的用户所创建的有效载荷(和/或所接收到的访问控制配置文件信息)存储为与用户的会话相关联的会话信息。UIC可
以将这样的会话信息作为针对一个或多个当前登录的用户(包括当前发起会话的相应的用
户)中的每个当前登录的用户的会话管理信息存储在会话管理信息内存部分中。
[0254] 这样做的益处是,当在UIC处从当前登录的用户(正在为其运行会话的用户)接收到访问请求时,UIC可以在将访问请求路由至一个或多个负责的存储处理机设备(资源处理
控制器)之前将相应的有效载荷嵌入到访问请求中或访问请求上。
[0255] 此外,在一个或多个当前登录的用户的一个或多个访问控制配置文件可能改变时(例如,管理员用户重新配置上述任何一个由授权设备/模块管理的关联,例如通过重新限
定资源组、将资源添加到资源组或从资源组中移除资源,和/或通过重新限定用户角色和/
或与用户或用户角色相关联的活动或活动组,和/或通过重新限定活动组,将活动添加到活
动组或从活动组中移除活动,和/或通过改变用户访问控制配置文件中的访问级别等),授
权设备/模块可以相应地通知UIC(例如,通过通知消息)。
[0256] UIC可以被配置为检查受到通知的访问控制配置文件或基础关联的改变影响的会话信息,并且所确定的受影响的会话信息可以在受影响的用户的当前会话期间被适当地更
新,例如通过请求重新创建和/或更新相关联的有效载荷和/或访问控制配置文件信息。
[0257] 然后,在从受影响的用户接收到新的访问请求后,反映正在进行的会话期间关于运行时间(run‑time)的变化的更新/重新创建的有效载荷可以被嵌入到来自具有改变的访
问控制配置文件的受影响的用户的这样新接收到的访问请求中/之上。
[0258] 在此,可以实现多个示例性实施方式,如下面结合图5A至图5E描述的那样。
[0259] 总的来说,UIC可以在从授权模块/设备接收到已经进行了改变(并且访问控制配置文件信息和/或访问控制配置文件关联信息可能已经改变)的通知后并且在确定哪个当
前登录的用户受到影响后,UIC可以立即更新(或请求更新)这些用户的会话信息。例如,UIC
可以针对受影响的登录用户指示所存储的会话信息和有效载荷是“过期的”,并且当接收到
来自该用户的新的访问请求时,可以创建新的有效载荷(例如通过UIC请求从授权模块/设
备创建新的有效载荷)。此外,在其他示例性实施方式中,所有受影响的用户的会话信息和
有效载荷可以在从授权模块/设备接收到已经做出改变的通知时被更新/重新创建。
[0260] 示例性的UIC访问请求处理
[0261] 图5A示例性示出了根据一些示例性实施方式的用于在UIC处进行UIC访问请求处理的过程的流程图。
[0262] 示例性地,在步骤S41中,用户接口控制器(UIC)可以从用户接收对存储的访问请求,该用户是基于上述内容先前已经被认证和/或授权的,和/或针对该用户先前已经发起
了会话。访问请求可以指示在要访问的数据存储系统的一个或多个存储资源上存储的一个
或多个数据结构(即,在一个存储资源上存储的该一个或多个数据结构通过所接收到的访
问请求被请求访问)。
[0263] 此外,在一些示例性实施方式中,访问请求可以指示要在由访问请求所指示的、在数据存储系统的一个或多个存储资源上存储的一个或多个数据结构上执行的一个或多个
活动。
[0264] 访问请求可以涉及与在数据存储系统的一个或多个存储资源上存储的数据结构的数据相关的数据操作,例如写入数据、复制数据、读取数据等。
[0265] 然而,访问请求还可以涉及查看、配置或改变用于在数据存储系统的一个或多个存储资源上存储的数据结构的数据保护操作设置,例如配置和/或设置数据保护策略、快照
策略、复制策略、镜像策略、备份策略等,例如,涉及将数据结构的数据全部、部分或以修改
的方式从源节点复制到目的地节点或从源数据存储资源复制到目的地数据存储资源的数
据保护操作的执行,例如限定源节点和目标节点、设置策略(例如,应将哪些数据在什么时
间、以什么频率或基于事件的哪种发生从哪里复制到哪里)。
[0266] 在步骤S42中,基于接收到的访问请求(例如,基于目标节点和/或目标存储资源和/或要访问的目标数据结构),UIC基于访问请求确定负责管理和/或控制访问的存储处理
机(资源处理控制器),例如通过基于访问请求确定负责管理和/或控制相应的目标节点和/
或目标存储资源和/或要访问的目标数据结构的相应的存储处理机(资源处理控制器)。
[0267] 由于用户之前已经被授权,因此已经创建了有效载荷,该有效载荷指示与关联于所接收到的访问请求的用户相关联的一个或多个访问控制配置文件。
[0268] 在步骤S43中,将先前创建的指示与关联于所接收到的访问请求的用户相关联的一个或多个访问控制配置文件的有效载荷嵌入到访问请求中,并且在步骤S44中将带有嵌
入的有效载荷的访问请求从UIC发送至所确定的负责的存储处理机(资源处理控制器),以
由负责的存储处理机(资源控制处理器)进一步处理。
[0269] 相应地,由于有效载荷包括访问控制配置文件的信息,因此无需再次询问UIC,存储处理机就可以基于有效载荷有效且可靠地执行访问控制处理。
[0270] 然而,如果同时(例如,在用户正在进行的会话期间)管理员改变了任何上述关联,例如通过重新配置用户角色、活动组和/或资源组或上述关联的其他信息,则将在授权设
备/模块处重置这种修改。为了及时反映这样的潜在改变(无需在每次接收到访问请求时执
行授权处理),在一些示例性实施方式中,UIC可以管理指示当前登录的用户及其有效载荷
和/或访问控制配置文件的会话信息,并且UIC可以基于从授权设备/模块接收到的配置改
变的通知来更新相应的会话数据,以被配置为保留已更新的有效载荷信息并针对来自正在
进行的会话的用户的请求嵌入已更新的有效载荷。
[0271] 图5B示例性示出了根据一些示例性实施方式的用于在UIC处进行UIC会话管理处理的过程的流程图。
[0272] 示例性地,在步骤S45中,UIC从授权设备/模块接收通知消息,该通知消息指示访问控制配置文件信息可能由于访问控制配置文件、用户角色、活动组和/或资源组或上述关
联的其他信息的重置或重新配置或改变而已经被改变。
[0273] 在步骤S46中,基于接收到的通知消息,UIC基于会话管理信息确定受影响的正在进行的会话的用户。例如,基于通知消息和针对当前登录的用户存储的访问控制配置文件
信息,UIC通过确定存储在会话管理信息中的访问控制配置文件和/或有效载荷来确定受影
响的用户。
[0274] 在步骤S47中,基于接收到的通知消息,UIC请求授权设备/模块为受影响的用户更新或重新创建有效载荷,并且在从授权设备/模块接收到已更新的或新创建的有效载荷后,
在步骤S48中,UIC相应地更新会话管理信息。
[0275] 即,虽然在该受影响的用户的正在进行的会话期间发生了改变,但是当从受影响的用户接收到新的访问请求时,根据以上步骤S41和S44要嵌入的有效载荷是已经反映了受
影响用户的访问控制配置文件信息的改变的已更新有效载荷。
[0276] 在上面,示例性地,UIC独立于用户是否可以发送另外的访问请求来确定受影响的用户。替代地,在其他示例性实施方式中,有可能仅在从用户接收到访问请求后才确定用户
是否受到访问控制配置文件信息的最新改变的影响,例如参见图5C,或者,仅在从受影响的
用户接收到另一个访问请求时,才在接收到该访问请求时重新创建/更新该用户的有效载
荷,例如参见图5D和图5E。
[0277] 图5C示例性示出了根据一些其他示例性实施方式的用于在UIC处的UIC访问请求处理的过程的流程图。
[0278] 示例性地,在步骤S45中,UIC从授权设备/模块接收通知消息,该通知消息指示访问控制配置文件信息可能由于访问控制配置文件、用户角色、活动组和/或资源组或上述关
联的其他信息的重置或重新配置或改变而已经被改变。
[0279] 示例性地,在步骤S41中,用户接口控制器(UIC)可以从用户接收对存储的访问请求,该用户是基于上述内容先前已经被认证和/或授权的,和/或针对该用户先前已经发起
了会话。访问请求可以指示在要访问的数据存储系统的一个或多个存储资源上存储的一个
或多个数据结构(即,在一个存储资源上存储的该一个或多个数据结构通过所接收到的访
问请求被请求访问)。
[0280] 在步骤S46’中,基于步骤S45的接收到的通知消息,UIC基于针对与访问请求相关联的用户存储的会话管理信息来确定相应的用户是否受到通知消息中指示的改变的影响,
例如通过参考与该相应的用户相关联的先前创建的有效载荷和/或相应的用户的相关联的
访问控制配置文件。例如,基于通知消息和针对相应的用户存储的访问控制配置文件信息,
UIC确定相应的用户是否受到改变的影响。
[0281] 如果步骤S46’返回“否”,则处理继续类似于上述图5A的步骤S42、S43和S44。然而,如果步骤S46’返回“是”,则该方法继续步骤S47’和S48’。
[0282] 在步骤S47’中,UIC请求授权设备/模块为相应受影响的用户更新或重新创建有效载荷,并且在UIC处接收到已更新的或新创建的信息后,在步骤S48’中,UIC相应地为相应受
影响的用户更新会话管理信息。
[0283] 即,虽然在受影响的用户的正在进行的会话期间发生了改变,但是当从该受影响的用户接收到新的访问请求时,在S44中要嵌入的有效载荷是已经反映了受影响用户的访
问控制配置文件信息的改变的已更新有效载荷。然后,处理继续类似于上述图5A的步骤
S42、S43和S44。
[0284] 图5D示例性示出了根据一些其他示例性实施方式的用于在UIC处进行UIC会话管理处理的过程的流程图。
[0285] 示例性地,在步骤S45中,UIC从授权设备/模块接收通知消息,该通知消息指示访问控制配置文件信息可能由于访问控制配置文件、用户角色、活动组和/或资源组或上述关
联的其他信息的重置或重新配置或改变而已经被改变。
[0286] 在步骤S46中,基于接收到的通知消息,UIC基于会话管理信息确定受影响的正在进行会话的用户。例如,基于通知消息和针对当前登录的用户存储的访问控制配置文件信
息,UIC通过确定存储在会话管理信息中的访问控制配置文件和/或有效载荷来确定受影响
的用户。
[0287] 在步骤S49中,UIC为所确定的一个或多个受影响的用户更新会话管理信息,以指示会话管理信息中指示的这些用户的有效载荷和一个或多个访问控制配置文件已过时
(“过期的”),并且可以针对所确定的一个或多个受影响的用户登记先前创建的有效载荷为
“过期的”。这样的优点是,不必为所有受影响的用户立即重新创建有效载荷,并且仅在需要
时才重新创建有效载荷,例如参见图5E。
[0288] 图5E示例性示出了根据一些其他示例性实施方式的用于在UIC处进行UIC访问请求处理的过程的流程图。
[0289] 示例性地,在步骤S41中,用户接口控制器(UIC)可以从用户接收对存储的访问请求,该用户是基于上述内容先前已经被认证和/或授权的,和/或针对该用户先前已经发起
了会话。访问请求可以指示在要访问的数据存储系统的一个或多个存储资源上存储的一个
或多个数据结构(即,在一个存储资源上存储的该一个或多个数据结构通过所接收到的访
问请求被请求访问)。
[0290] 在步骤S46”中,UIC基于针对与访问请求相关联的用户存储的会话管理信息(可能在图5D的步骤S49中已经被更新),通过检查会话管理信息指示用户的有效载荷是否过期,
确定相应的用户是否受到任何通知消息中指示的任何最近更改的影响。
[0291] 如果步骤S46”返回“否”,则处理继续类似于上述图5A或图5C的步骤S42、S43和S44。但是,如果步骤S46”返回“是”,则该方法继续类似于图5C的步骤S47’和S48’。
[0292] 在步骤S47’中,UIC请求授权设备/模块为相应受影响的用户更新或重新创建有效载荷,并且在UIC处接收到已更新的或新创建的信息后,在步骤S48’中,UIC相应地为相应受
影响的用户更新会话管理信息。
[0293] 即,虽然在受影响的用户的正在进行的会话期间发生了改变,但是当从该受影响的用户接收到新的访问请求时,在S44中要嵌入的有效载荷是已经反映了受影响用户的访
问控制配置文件信息的改变的已更新有效载荷。然后,处理继续类似于上述图5A或图5C的
步骤S43和S44。
[0294] 示例性存储处理机访问请求处理
[0295] 图6A示例性示出了根据一些其他示例性实施方式的用于在存储处理机处进行存储处理机访问请求处理的过程的流程图。
[0296] 示例性地,在步骤S61中,诸如上述存储处理机设备或存储处理机模块之类的存储处理机(资源处理控制器)从UIC接收用户的访问请求(例如在以上步骤S44中发送的),该用
户的访问请求带有指示与特定的用户相关联的访问控制配置文件信息的嵌入的有效载荷。
[0297] 在步骤S62中,存储处理机(资源处理控制器)示例性地基于嵌在访问请求中的有效载荷来确定与关联于所接收到的访问请求的特定的用户相关联的访问控制配置文件信
息。
[0298] 此外,存储处理机(资源处理控制器)可以示例性地例如基于一个或多个进一步描述的步骤S63与S64、S65与S66和/或S67与S68(以任意顺序)来执行分散的访问控制(即,无
需进一步查询UIC)。
[0299] 示例性地,在步骤S63中,存储处理机(资源处理控制器)基于访问请求确定要访问的一个或多个存储资源,并且在步骤S64中,存储处理机(资源处理控制器)确定与访问请求
相关联的用户是否被允许/许可访问所确定的要访问的一个或多个存储资源。如果步骤S64
返回“否”,则停止访问处理,避免执行所请求的访问请求,并且处理结束(例如,通过将拒绝
或错误消息发送至UIC)。
[0300] 例如,如果确定的一个或多个存储资源被包括在与相应的用户相关联的访问控制配置文件信息中指示的资源组中,则存储处理机(资源处理控制器)可以确定与访问请求相
关联的用户被允许/许可访问所确定的一个或多个存储资源。而且,如果所确定的一个或多
个存储资源未被包括在与相应的用户相关联的访问控制配置文件信息中指示的资源组中,
则存储处理机(资源处理控制器)可以确定与访问请求相关联的用户不被允许/许可访问所
确定的一个或多个存储资源。
[0301] 示例性地,在步骤S65中,存储处理机(资源处理控制器)基于访问请求确定要执行的一个或多个活动,并且在步骤S66中,存储处理机(资源处理控制器)确定与访问请求相关
联的用户是否被允许/许可执行或请求执行所确定的要执行的一个或多个活动。如果步骤
S66返回“否”,则停止访问处理,避免执行所请求的访问请求,并且处理结束(例如,通过将
拒绝或错误消息发送至UIC)。
[0302] 例如,如果所确定的一个或多个活动被包括在与相应的用户相关联的访问控制配置文件信息中指示的活动组中,或者如果所确定的一个或多个活动本身在与相应的用户相
关联的访问控制配置文件信息中被指示,则存储处理机(资源处理控制器)可以确定与访问
请求相关联的用户被允许/许可执行或请求所确定的一个或多个活动。此外,如果所确定的
一个或多个活动未被包括在与相应的用户相关联的访问控制配置文件信息中指示的任何
活动组中,和/或如果所确定的一个或多个活动本身未在与相应的用户相关联的访问控制
配置文件信息中被指示,则存储处理机(资源处理控制器)可以确定与访问请求相关联的用
户不被允许/许可执行或请求所确定的一个或多个活动。
[0303] 示例性地,在步骤S67中,存储处理机(资源处理控制器)基于访问请求来确定要访问的存储资源上的一个或多个数据结构,并且在步骤S68中,存储处理机(资源处理控制器)
确定与访问请求相关联的用户是否被允许/许可访问确定的要访问的存储资源上的一个或
多个数据结构。如果步骤S68返回“否”,则停止访问处理,避免执行所请求的访问请求,并且
处理结束(例如,通过将拒绝或错误消息发送至UIC)。
[0304] 例如,存储处理机(资源处理控制器)可以基于在与相应的用户相关联的访问控制配置文件信息中指示的访问级别,或者基于在与相应的用户相关联的访问控制配置文件信
息中针对存储相应的一个或多个数据结构的存储资源的资源组指示的访问级别,来确定与
访问请求相关联的用户是否被允许/许可访问所确定的一个或多个数据结构。
[0305] 示例性地,如果上述访问控制处理还没有导致停止访问处理和拒绝访问,例如如果步骤S64、S66和S68的结果为“是”,则该过程继续执行所请求的访问操作,例如通过执行
访问所请求的一个或多个存储资源以在一个或多个所请求的数据结构上执行一个或多个
所请求的活动。
[0306] 图6B示例性示出了根据一些其他示例性实施方式的用于在存储处理机处进行存储处理机访问请求处理的过程的流程图。
[0307] 根据一些示例性实施方式,完全确定用户可以在所请求的存储资源上执行的活动可能是重要的,因为这可能会受到用户角色(允许一个或多个单独活动和/或一个或多个允
许的活动组的一个或多个活动)和一个或多个资源组以及针对该资源组所指定的访问级别
的影响。换言之,优选系统确定是否允许用户在确定的存储资源上执行所请求的活动。
[0308] 例如,可以允许特定的用户在存储节点N1上执行活动A1,并且可以允许同一用户在存储节点N2上执行活动A2,但是可能不允许该用户在存储节点N1上执行活动A2,并且也
可能不允许在存储节点N2上执行活动A1。因此,在图6B的示例性流程图中的相同步骤S68’
中示例性地做出这些确定。
[0309] 此外,可以基于针对该节点所属的资源组所指定的“访问级别”来确定用户是否可以访问存储节点上的特定的数据结构。可以从访问控制配置文件信息获得访问级别。
[0310] 示例性地,在图6B中并且在步骤S61中,诸如上述存储处理机设备或存储处理机模块之类的存储处理机(资源处理控制器)从UIC接收用户的访问请求(例如,在以上步骤S44
中发送的),该用户的访问请求带有指示与特定的用户相关联的访问控制配置文件信息的
嵌入的有效载荷。
[0311] 在步骤S62中,存储处理机(资源处理控制器)示例性地基于嵌在访问请求中的有效载荷来确定与关联于所接收到的访问请求的特定的用户相关联的访问控制配置文件信
息。
[0312] 此外,存储处理机(资源处理控制器)可以示例性地执行分散的访问控制(即,无需进一步查询UIC)。
[0313] 示例性地,在步骤S63中,存储处理机(资源处理控制器)基于访问请求确定要访问的一个或多个存储资源。
[0314] 示例性地,在步骤S65中,存储处理机(资源处理控制器)基于访问请求确定要执行的一个或多个活动。
[0315] 示例性地,在步骤S67中,存储处理机(资源处理控制器)基于访问请求来确定要访问的存储资源上的一个或多个数据结构。
[0316] 然后,在步骤S68’中,存储处理机(资源处理控制器)确定是否允许/许可与访问请求相关联的用户在步骤S63和S65中所确定的要访问的存储资源上的所确定的一个或多个
数据结构上执行步骤S65的确定的活动。如前所述,步骤S68’的确定取决于与用户相关联的
一个或多个访问控制配置文件,并且基于允许的活动和/或允许的活动组和资源组以及用
户的一个或多个访问控制配置文件的信息中的资源组的访问级别来执行步骤S68’。
[0317] 如果步骤S68’返回“否”,则停止访问处理,避免执行所请求的访问请求,并且处理结束(例如,通过将拒绝或错误消息发送至UIC)。
[0318] 示例性地,如果上述访问控制处理没有导致停止访问处理和拒绝访问,即如果步骤S68’产生的结果为是,则该处理继续执行所请求的访问操作,例如,通过执行访问所请求
的一个或多个存储资源以在一个或多个所请求的数据结构上执行一个或多个所请求的活
动。
[0319] 数据存储系统中的示例性数据结构
[0320] 图7示例性示出了示例性数据存储系统中的数据结构的分布。
[0321] 示例性地,图7的数据存储系统包括节点N1、N2、N3、N4、N5、N6和N7。节点N1、N2、N3、N4、N5、N6和N7可以被称为为一个或多个用户可访问的数据结构提供存储的存储资源。
[0322] 除了表示存储资源的物理或逻辑节点外,节点或节点的集群系统上的逻辑存储实体也可以被称为存储资源。
[0323] 例如,在图7中,节点N5、N6和N7分别提供逻辑存储库R1、R2和R3作为用于存储数据结构的存储资源。
[0324] “数据结构”可以是用户可访问的数据的任何形式的数据结构,例如数据结构可以指文件、文件组、文件系统、文件系统组、数据库、数据库组、存档、存档组、存储卷或存储卷
组(包括逻辑卷、虚拟卷),并且数据结构中的数据可以通过基于文件的存储结构、基于块的
存储结构或基于对象的存储结构进行存储。
[0325] 前述的这样的数据结构在以下意义上可以被称为“初级数据结构”:这样的“初级数据结构”由用户、管理员手动地或通过应用程序添加到系统,和/或这样的“初级数据结
构”是用户可访问的(和/或应用程序可访问的),以基于应用程序访问和/或用户访问(特别
是独立于另一个数据结构)读取和写入数据或将数据添加到相应的数据结构中。
[0326] 另一方面,被称为“次级数据结构”的另一种类型的数据结构可以是指可以动态地和/或自动地创建的数据结构,和/或特别地可以依赖于“初级数据结构”,例如通过部分或
完全记载(story)相关联的“初级数据结构”的数据副本。例如,如果“初级数据结构”的数据
(和/或“初级数据结构”的数据的元数据)出于数据保护目的而被部分或完全地复制,例如
作为复制件、镜像副本、备份、快照等,则“初级数据结构”的这种部分或完全复制件、镜像副
本、备份和/或快照被称为特定的“初级数据结构”的相应的“次级数据结构”。
[0327] 这样的“次级数据结构”可以通过基于数据保护策略管理“次级数据结构”由系统(例如,通过存储处理机)动态地和/或自动地创建,例如,通过限定源节点和目的地节点、源
数据、源数据的类型(例如,“初级数据结构”的类型,例如复制件、镜像副本、备份、快照等)
以及操作策略(例如,应创建和/或更新次级数据结构的事件发生时间、频率间隔或位置)。
[0328] 关于“初级数据结构”,图7的数据存储系统示例性地在节点N1上存储文件系统FS1,在节点N2上存储文件系统FS2,在节点N3上存储文件系统FS3。此外,示例性地,节点N2
存储数据库DB1,节点N3示例性地存储数据库DB2。节点N4示例性地存储数据库DB3和归档库
AR1。
[0329] 关于“次级数据结构”,图7的数据存储系统相应示例性地存储上述初级数据结构的备份数据。
[0330] 例如,节点N5提供存储库R1,该存储库R1存储节点N1的文件系统FS1的备份BUI(如箭头所示)。这可能涉及文件系统的镜像副本或快照,也可能涉及文件系统的部分副本,例
如文件系统中某些文件的备份副本或其元数据的备份副本。
[0331] 类似地,存储库R1示例性地存储节点N2的文件系统FS2的备份BU2和节点N2的数据库DB1的备份副本BU3。进一步示例性地,存储库R1存储节点N3的文件系统FS3的备份BU4。
[0332] 此外,节点N6提供存储库R2,该存储库R2存储节点N3的数据库DB2的备份BU5。这可能涉及镜像副本、远程复制副本、部分副本或其元数据的副本或部分副本等。
[0333] 类似地,存储库R2示例性地存储节点N4的数据库DB3的备份BU6。进一步示例性地,存储库R2存储节点N4的归档库的备份BU7。这可能涉及镜像副本、远程复制副本、部分副本
或其元数据的副本或部分副本等。
[0334] 此外,节点7提供存储库R3,其将备份BU1的备份BU8存储在存储库R1中(例如,作为其副本或部分副本)。存储库R3还示例性地将备份BU2的备份BU9存储在存储库R1中,将备份
BU4的备份BU10存储在存储库R1中,将备份BU5的备份BU11存储在存储库R2中,并将备份BU7
的备份BU12存储在存储库R2中。
[0335] 此外,相应的负责的存储处理机和/或相应的次级数据结构的元数据部分存储数据结构元数据,该数据结构元数据优选针对每个次级数据结构指示相应的父级存储资源和
所有者存储资源。
[0336] 相应的次级数据结构的“所有者存储资源”是存储对应的相关联的“初级数据结构”的存储资源。
[0337] 因此,在图7中,示例性地:
[0338] ‑备份BU1和BU8的所有者存储资源都是节点N1,因为它存储了相关联的初级数据结构,即文件系统FS1,
[0339] ‑备份BU2和BU9的所有者存储资源都是节点N2,因为它存储了相关联的初级数据结构,即文件系统FS2,
[0340] ‑备份BU3的所有者存储资源是节点N2,因为它存储了相关联的初级数据结构,即数据库DB1,
[0341] ‑备份BU4和BU10的所有者存储资源都是节点N3,因为它存储了相关联的初级数据结构,即文件系统FS3;
[0342] ‑备份BU5和BU11的所有者存储资源都是节点N3,因为它存储了相关联的初级数据结构,即数据库DB2,
[0343] ‑备份BU6的所有者存储资源是节点N4,因为它存储了相关联的初级数据结构,即数据库DB3,并且
[0344] ‑备份BU7和BU12的所有者存储资源都是节点N4,因为它存储了相关联的初级数据结构,即归档库AR1。
[0345] 另一方面,相应的次级数据结构的“父级存储资源”是存储相应的次级数据结构的存储资源。
[0346] 因此,在图7中,示例性地:
[0347] ‑备份BU1至BU4的父级存储资源全都是存储库R1,因为它存储了相应的备份BU1至BU4,
[0348] ‑备份BU5至BU7的父级存储资源全都是存储库R2,因为它存储了相应的备份BU5至BU7,并且
[0349] ‑备份BU8至BU12的父级存储资源全都是存储库R3,因为它存储了相应的备份BU8至BU412。
[0350] 因此,以下元数据可以针对相应的备份而被存储在相应的负责的存储处理机(资源存储控制器)的元数据部分中和/或与相应的次级数据结构一起存储:
[0351] 对于备份BU1,相应的数据结构元数据可以指示父级数据存储资源R1(存储库R1,例如存储资源ID的形式)和所有者数据存储资源N1(节点N1,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户
(tenant),例如租户ID的形式,以仅允许指示的租户的用户的访问。
[0352] 对于备份BU2,相应的数据结构元数据可以指示父级数据存储资源R1(存储库R1,例如存储资源ID的形式)和所有者数据存储资源N2(节点N2,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0353] 对于备份BU3,相应的数据结构元数据可以指示父级数据存储资源R1(存储库R1,例如存储资源ID的形式)和所有者数据存储资源N2(节点N2,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0354] 对于备份BU4,相应的数据结构元数据可以指示父级数据存储资源R1(存储库R1,例如存储资源ID的形式)和所有者数据存储资源N3(节点N3,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0355] 对于备份BU5,相应的数据结构元数据可以指示父级数据存储资源R2(存储库R2,例如存储资源ID的形式)和所有者数据存储资源N3(节点N3,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0356] 对于备份BU6,相应的数据结构元数据可以指示父级数据存储资源R2(存储库R2,例如存储资源ID的形式)和所有者数据存储资源N4(节点N4,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0357] 对于备份BU7,相应的数据结构元数据可以指示父级数据存储资源R2(存储库R2,例如存储资源ID的形式)和所有者数据存储资源N4(节点N4,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0358] 对于备份BU8,相应的数据结构元数据可以指示父级数据存储资源R3(存储库R3,例如存储资源ID的形式)和所有者数据存储资源N1(节点N1,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0359] 对于备份BU9,相应的数据结构元数据可以指示父级数据存储资源R3(存储库R3,例如存储资源ID的形式)和所有者数据存储资源N2(节点N2,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0360] 对于备份BU10,相应的数据结构元数据可以指示父级数据存储资源R3(存储库R3,例如存储资源ID的形式)和所有者数据存储资源N3(节点N3,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0361] 对于备份BUll,相应的数据结构元数据可以指示父级数据存储资源R3(存储库R3,例如存储资源ID的形式)和所有者数据存储资源N3(节点N3,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0362] 对于备份BU12,相应的数据结构元数据可以指示父级数据存储资源R3(存储库R3,例如存储资源ID的形式)和所有者数据存储资源N4(节点N4,例如存储资源ID的形式)。数据
结构元数据还可以指示与相应的父级和/或所有者存储资源或数据结构相关联的租户,例
如租户ID的形式,以仅允许指示的租户的用户的访问。
[0363] 另一方面,对于初级数据结构,相应的数据结构元数据可以指示存储相应的数据结构的存储资源。数据结构元数据还可以指示与相应的存储资源或数据结构相关联的租
户,例如租户ID的形式,以仅允许指示的租户的用户的访问。
[0364] 当在数据结构元数据中进一步指示租户时,如果用户的租户与数据结构元数据中指示的租户(例如,租户ID)匹配,则只能赋予用户访问特定的存储资源(或特定的存储资源
上的数据结构)。
[0365] 示例资源组
[0366] 例如,对于图7的数据存储系统,可以示例性地限定以下资源组:
[0367] ‑资源组RG1={N1,N2,N5,R1},
[0368] ‑资源组RG2={N2,N3,N5,R1,N7,R3},
[0369] ‑资源组RG3={N3,N4,N6,R2,N7,R3},以及
[0370] ‑资源组RG4={N2,N7,R3}。
[0371] 对于初级数据结构,在用户的访问控制配置文件中指示的资源组可以指示用户可以访问其上的初级数据结构的那些存储资源。
[0372] 例如,与关联于资源组RG1的访问控制配置文件相关联的用户可以访问资源组RG1的那些资源上的初级数据结构,即,例如节点N1上的文件系统FS1和节点N2上的文件系统
FS2以及节点N2上的数据库DB1,因为节点N1和N2包括在相应的资源节点N1中。
[0373] 因此,与关联于资源组RG1的访问控制配置文件相关联的用户可能被拒绝访问节点N1和N4上的初级数据结构FS3、DB2、DB3和AR1中的任何一个。
[0374] 示例性访问级别
[0375] 如前所述,优选地,访问控制配置文件信息可以优选针对在相应的访问控制配置文件中指示的或与之相关联的每个资源组来指示特定的访问级别,根据该特定访问级别,
相应的用户可以访问级别存储资源、特别是这样的存储资源上的次级数据结构。因此,优选
地,访问控制配置文件中的每个资源组都被赋予访问级别。
[0376] 例如,可以提供以下访问级别:
[0377] ‑第一访问级别(GROUP访问级别,也可以被称为LIMITED访问级别),其指示与用于特定的资源组的第一访问级别相关联的相应的用户账户的用户被允许在相应的父级数据
存储资源上访问次级数据结构,该次级数据结构的相应的所有者数据存储结构包括在根据
访问控制信息许可与相应的用户账户相关联的用户对其进行用户访问的特定的资源组中。
换言之,当在与用户相关联的访问控制配置文件中为特定的资源组指定了第一访问级别
时,用户能够访问来自同一特定的资源组中的存储资源的次级数据结构(例如,在图7中的
资源组RG1具有第一访问级别的情况下,用户将能够看到BU1、BU2和BU3(因为它们来自N1和
N2),但是用户将看不到BU4);
[0378] ‑第二访问级别(OWNER访问级别,也可以被称为PERSONAL访问级别),其指示,与用于特定资源组的第二访问级别相关联的相应用户账户的用户,被允许在相应的父级数据存
储资源上访问与由该用户当前登录的节点提供的所有者数据存储资源相关联的次级数据
结构,特别是在相应的相关联的所有者数据存储资源包括在根据访问控制信息许可与相应
的用户账户相关联的用户对其进行用户访问的特定的资源组中的条件下。换言之,当在与
用户相关联的访问控制配置文件中为特定的资源组指定了第二访问级别时,用户能够访问
来自用户登录到的存储资源的次级数据结构(例如,在图7中的资源组RG1具有第二访问级
别的情况下,在节点N1登录的用户将能够看到BU1,但是看不到BU2、BU3和BU4,但是如果同
一用户在节点N2处登录,则他们将能够看到BU2和BU3,但看不到BU1和BU4);以及
[0379] ‑第三访问级别(FULL访问级别),其指示与该第三访问级别相关联的相应的用户账户的用户被允许在相应的父级数据存储资源上访问在相应的父级数据存储资源上存储
的次级数据结构,而与相应的相关联的所有者数据存储资源是否包括在根据访问控制信息
许可与相应的用户账户相关联的用户对其进行用户访问的资源组中无关。换言之,当在与
用户相关联的访问控制配置文件中为特定的资源组指定了第三访问级别时,用户能够访问
该特定的资源组中任何存储资源上的所有次级数据结构(例如,在图7中的资源组RG1具有
第三访问级别的情况下,用户将能够看到R1上的所有数据结构(BU1、BU2、BU3和BU4),因为
R1被授予FULL访问权限。
[0380] 例如,通过节点N1登录、被允许访问其上的文件系统FS1并与关联于资源组RG1={N1,N2,N5,R1}和第三(FULL)访问级别的访问控制配置文件相关联的用户可以访问存储库
R1上的所有次级数据结构,包括BU1、BU2、BU3,尤其是包括BU4,但是备份BU4是未被包括在
用户的关联资源组RG1中的节点(节点N3)上的初级数据结构(FS3)的备份副本。
[0381] 然而,尽管第三访问级别为“FULL”,但是该用户仍无法访问存储库R2和R3上的任何次级数据结构,因为这些存储库R2和R3未被包括在资源组RG1中,并且将基于访问控制拒
绝任何访问请求。
[0382] 进一步示例性地,经由节点N1登录并与关联于资源组RG1={N1,N2,N5,R1}和第一(GROUP或LIMITED)访问级别的访问控制配置文件相关联的用户只能访问存储库R1上的次
级数据结构BU1、BU2、BU3,因为其所有者存储资源被提供在用户的资源组RG1中所包括的存
储资源(节点N1和N2)上。
[0383] 然而,由于备份BU4的所有者存储资源(节点N3)未被包括在用户的资源组RG1中,因此虽然其父级存储资源(存储库R1)包括在用户的资源组RG1中,但是相应的用户无法访
问备份BU4。此外,该用户无法访问存储库R2和R3上的任何次级数据结构,因为这些存储库
R2和R3未被包括在资源组RG1中,并且将基于访问控制拒绝任何访问请求。
[0384] 进一步示例性地,经由节点N1登录并与关联于资源组RG1={N1,N2,N5,R1}和第二(OWNER或PERSONAL)访问级别的访问控制配置文件相关联的用户只能访问存储库R1上的次
级数据结构BU1,因为用户当前登录到其所有者存储资源(节点N1)上。
[0385] 然而,尽管作为存储数据结构FS2和DB1的存储资源、作为备份BU2和BU3的所有者存储资源的节点2以及备份BU2和BU3的父级存储资源(存储库R1)都被包括在用户的资源组
RG1中,但是用户仍然无法访问存储库R1上的那些备份BU2和BU3,因为该用户当前未登录到
节点N2中,而节点N2是备份BU2和BU3的所有者存储资源。
[0386] 此外,由于备份BU4的所有者存储资源(节点N3)未被包括在用户的资源组RG1中,因此尽管其父级存储资源(存储库R1)被包括在用户的资源组RG1中,但是相应的用户无法
访问备份BU4。此外,该用户无法访问存储库R2和R3上的任何次级数据结构,因为这些存储
库R2和R3未被包括在资源组RG1中,并且将基于访问控制拒绝任何访问请求。
[0387] 进一步示例性地,与访问级别无关,具有与资源组RG2={N2,N3,N5,R1,N7,R3}相关联的访问控制配置文件的用户不能访问节点N1和N4上的任何初级数据结构,因为它们未
被包括在资源组RG2中。而且,用户无法访问节点N6和存储库R2上的任何次级数据结构,因
为它们也未被包括在资源组RG2中。
[0388] 然而,用户可以访问包括在资源组RG2中的节点N2和N3上的初级数据结构。
[0389] 根据访问级别,由于节点N5和N7以及存储库R1和R3被包括在资源组RG2中,因此用户可以访问存储库R1和R3上的特定的次级数据结构。
[0390] 具体而言,在访问级别“FULL”(第三访问级别)下,用户可以访问存储库R1和R3上的所有次级数据结构。
[0391] 然而,在访问级别“GROUP”(第一访问级别)下,用户无法访问存储库R1上的备份BU1(因为其所有者存储资源为节点N1,未被包括在资源组RG2中)、存储库R3上的备份BU8
(由于其所有者存储资源是节点N1,未被包括在资源组RG2中)和存储库R3上的备份BU12(因
为其所有者存储资源是节点N4,未被包括在资源组RG2中)的数据结构。
[0392] 当与资源组RG2相关联的用户在访问级别“OWNER”(第二访问级别)下登录到节点N2时,该用户只能访问存储库R1和R3上的备份BU2、BU3和BU9,因为它们是以用户通过其登
录的节点N2作为所有者存储资源的次级数据结构。
[0393] 进一步示例性地,与访问级别无关,具有与资源组RG3={N3,N4,N6,R2,N7,R3}相关联的访问控制配置文件的用户不能访问节点N1和N2上的任何初级数据结构,因为它们未
被包括在资源组RG3中。而且,用户无法访问节点N5和存储库R1上的任何次级数据结构,因
为它们也未被包括在资源组RG3中。
[0394] 然而,用户可以访问包括在资源组RG3中的节点N3和N4上的初级数据结构。根据访问级别,由于节点N6和N7以及存储库R2和R3被包括在资源组RG3中,因此用户可以访问存储
库R2和R3上的特定的次级数据结构。
[0395] 具体而言,在访问级别“FULL”(第三访问级别)下,用户可以访问存储库R2和R3上的所有次级数据结构。
[0396] 然而,在访问级别“GROUP”(第一访问级别)下,用户无法访问存储库R3上的备份BU8(因为其所有者存储资源为节点N1,未被包括在资源组RG3中)和存储库R3上的备份BU9
(因为其所有者存储资源是节点N2,未被包括在资源组RG3中)的数据结构。
[0397] 当与资源组RG3相关联的用户在访问级别“OWNER”(第二访问级别)下登录到节点N3时,该用户只能访问存储库R2和R3上的备份BU5、BU10和BU11,因为它们是以用户通过其
登录的节点N3作为所有者存储资源的次级数据结构。
[0398] 进一步示例性地,与访问级别无关,具有与资源组RG4={N2,N7,R3}相关联的访问控制配置文件的用户不能访问节点N1、N3和N4上的任何初级数据结构,因为它们未被包括
在资源组RG4中。而且,用户无法访问节点N5和存储库R1以及节点N6和存储库R2上的任何次
级数据结构,因为它们也未被包括在资源组RG4中。
[0399] 然而,用户可以包括在访问资源组RG4中的节点N2上的初级数据结构。根据访问级别,由于节点N7和存储库R3被包括在资源组RG4中,因此用户可以访问存储库R3上的特定次
级数据结构。
[0400] 具体来说,在访问级别“FULL”(第三访问级别)下,用户可以访问存储库R3上的所有次级数据结构。
[0401] 然而,在访问级别“GROUP”(第一访问级别)或访问级别“OWNER”(第二访问级别)下,当经由作为被包括在用户的资源组RG4中的初级数据结构的唯一节点的节点N2登录时,
用户只能访问存储库R3上的备份BU9的数据结构,因为这是存储库R3上唯一的具有被包括
在资源组RG4中的所有者存储资源的次级数据结构。
[0402] 进一步示例性地,在访问级别“OWNER”(第二访问级别)下,如果用户在不是在用户能够访问的任何资源组内的存储节点处登录,则该用户将看不到存储资源上的任何次级数
据结构。例如,如果将具有图7中的资源组RG1的第二访问级别的用户在存储节点N4处登录,
则该用户将不会看到R1中的任何次级数据结构。
[0403] 鉴于以上内容,在示例性实施方式中,可以提供用于对初级和次级数据结构的访问控制的有效且可靠以及非常灵活的访问控制方案,例如基于指示一个或多个资源组和/
或指示用于访问基于初级数据结构创建的次级数据结构的不同访问级别的访问控制配置
文件。而且,这些访问控制方案可以可靠地和有效地与基于角色的访问控制(RBAC)和活动
许可结合,例如,基于与访问控制配置文件相关联的活动组和/或活动。这样的方面还可以
与租户区分方案一起进行限定,以允许用户基于租户访问数据存储资源。
[0404] 此外,在示例性实施方式中,例如通过将指示用户的访问控制配置文件的有效载荷实现或嵌入到用户的访问请求中和/或通过在端点控制器(例如上述示例性存储处理机
或资源处理控制器)的管理中保留数据结构的元数据,可以有利地在分布式系统中提供分
散的访问控制方案,其降低了中央授权模块/设备或用户接口管理设备/模块(例如在其示
例性实施方式中的示例性UIC(用户接口控制器))处所需的通信带宽和处理负担。
[0405] 如本领域技术人员将认识到的,如上文和附图所述的本发明可以作为方法(例如,计算机实现过程、业务过程或任何其他过程)、设备(包括装置、机器、系统、计算机程序产品
和/或任何其他设备)或它们的组合来实施。
[0406] 因此,本发明的实施方式可以采取完全硬件的实施方式、完全软件的实施方式(包括固件、驻留软件(resident software)、微代码等)或在本文可以统称为“系统”的结合软
件和硬件方面的实施方式的形式。此外,本发明的实施方式可以采取计算机可读介质上的
计算机程序产品的形式,该计算机可读介质具有在该介质中实施的计算机可执行程序代
码。
[0407] 应当注意,在附图中可以使用箭头来表示涉及两个或更多个实体的通信、传输或其他活动。双端箭头通常指示活动可能在两个方向上发生(例如,一个方向上为命令/请求,
而在另一方向上为对应的回复,或者由任一实体发起的对等通信(peer‑to‑peer 
communication)),但是在某些情况下,活动不一定会双向发生。
[0408] 单端箭头通常专门或主要指示一个方向上的活动,但是应注意的是,在某些情况下,这样的定向活动实际上可能涉及两个方向上的活动(例如,消息从发送方到接收方以及
回执从接收方到发送方,或者在传输之前建立连接并在传输之后终止连接)。因此,在特定
附图中用来表示特定活动的箭头类型是示例性的,不应视为限制性的。
[0409] 上文参照方法和设备的流程图示和/或框图以及由方法和/或设备生成的图形用户界面的多个示例视图,描述了本发明的实施方式。将理解的是,流程图示和/或框图中的
每个块和/或流程图示和/或框图中的块的组合以及图形用户界面可以由计算机可执行程
序代码来实现。
[0410] 可以将计算机可执行程序代码提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器,以产生特定机器,使得经由计算机或其他可编程数据处理设备的处理
器执行的程序代码产生用于实现流程图、框图的一个或多个块、附图和/或书面说明中指定
的功能/动作/输出的装置。
[0411] 这些计算机可执行程序代码也可以存储在计算机可读存储器中,该计算机可读存储器可以指导计算机或其他可编程数据处理设备以特定方式起作用,使得存储在计算机可
读存储器中的程序代码产生制品,包括实现流程图、框图的一个或多个块、附图和/或书面
说明中指定的功能/动作/输出的指令装置。
[0412] 也可以将计算机可执行程序代码加载到计算机或其他可编程数据处理设备上,以使一系列操作步骤在计算机或其他可编程设备上执行以产生计算机实现的过程,使得在计
算机或其他可编程设备上执行的程序代码提供用于实现流程图、框图、附图和/或书面说明
中指定的功能/动作/输出的步骤。替代地,计算机程序实现的步骤或动作可以与操作员或
人工实现的步骤或动作组合,以便执行本发明的实施方式。
[0413] 应当注意,诸如“服务器”和“处理器”之类的术语在本文中可以用来描述可以在本发明的特定实施方式中使用的装置,并且不应被解释为将本发明限制为任何特定的装置类
型,除非上下文另有要求。因此,装置可以包括但不限于桥、路由器、桥‑路由器(桥路器)、开
关、节点、服务器、计算机、电器或其他类型的装置。这样的装置通常包括一个或多个用于通
过通信网络进行通信的网络接口以及相应地配置为执行装置功能的处理器(例如,具有存
储器和其他外围设备和/或专用硬件的微处理器)。
[0414] 通信网络通常可以包括公共和/或专用的网络;可以包括局域网络、广域网络、城域网络、存储网络和/或其他类型的网络;并且可以采用通信技术,包括但绝不限于模拟技
术、数字技术、光学技术、无线技术(例如蓝牙)、联网技术和互联网络技术。
[0415] 还应当注意,装置可以使用通信协议和消息(例如,由装置创建、发送、接收、存储和/或处理的消息),并且这样的消息可以由通信网络或介质来传送。
[0416] 除非上下文另外要求,否则本发明不应解释为限于任何特定的通信消息类型、通信消息格式或通信协议。因此,通信消息通常可以包括但不限于框架、分组、数据电报、用户
数据报、存储格(cell)或其他类型的通信消息。
[0417] 除非上下文另外要求,否则对特定的通信协议的引用是示例性的,并且应当理解,替代实施方式可以适当地采用这种通信协议的变化(例如,可能不时对协议进行的修改或
扩展)或已知的或将来开发的其他协议。
[0418] 还应当注意,本文可以描述逻辑流程以说明本发明的各个方面,并且不应解释为将本发明限制为任何特定的逻辑流程或逻辑实现方式。所描述的逻辑可以被划分为不同的
逻辑块(例如,程序、模块、功能或子例程),而不改变总体结果或以其他方式脱离本发明的
真实范围。
[0419] 通常,逻辑元素可以添加、修改、省略、以不同顺序执行或使用不同的逻辑构造(例如,逻辑门、循环原语、条件逻辑和其他逻辑构造)来实现,而不改变总体结果或以其他方式
脱离本发明的真实范围。
[0420] 本发明可以通过许多不同的形式来实施,包括但不限于与处理器(例如,微处理器、微控制器、数字信号处理器或通用计算机)一起使用的计算机程序逻辑、与可编程逻辑
装置(例如,现场可编程门阵列(FPGA)或其他PLD)、分立部件、集成电路(例如,专用集成电
路(ASIC))一起使用的可编程逻辑或包括它们的任意组合的任何其他装置。实现所描述的
功能中的一些或全部的计算机程序逻辑通常作为一组计算机程序指令实现,该组计算机程
序指令被转换成计算机可执行形式,照此存储在计算机可读介质中,并由微处理器在操作
系统的控制下执行。实现某些或所有所述功能的基于硬件的逻辑可以使用一个或多个适当
配置的FPGA来实现。
[0421] 实现本文先前描述的全部或部分功能的计算机程序逻辑可以通过各种形式实施,包括但绝不限于源代码形式、计算机可执行形式和各种中间形式(例如,由汇编器、编译器、
链接器或定位器生成的形式)。
[0422] 源代码可以包括以各种编程语言中的任何一种编程语言(例如,目标代码、汇编语言或高级语言(例如Fortran、C、C++、JAVA或HTML))实现的一系列计算机程序指令,以与各
种操作系统或操作环境一起使用。源代码可以限定和使用各种数据结构和通信消息。源代
码可以是计算机可执行形式(例如,经由解释器),或者源代码可以被转换(例如,经由翻译
器、汇编器或编译器)成计算机可执行形式。
[0423] 用于执行本发明实施方式的操作的计算机可执行程序代码可以通过诸如Java、Perl、Smalltalk、C++等之类的面向对象的、脚本化的或非脚本化的编程语言来编写。然而,
用于执行本发明的实施方式的操作的计算机程序代码也可以用常规的程序编程语言编写,
例如“C”编程语言或类似的编程语言。
[0424] 实现本文先前描述的全部或部分功能的计算机程序逻辑可以在单个处理器上在不同时间(例如,并发)执行,或者可以在多个处理器上在相同或不同的时间执行,并且可以
在单个操作系统进程/线程下或在不同的操作系统进程/线程下运行。
[0425] 因此,术语“计算机进程”通常是指一组计算机程序指令的执行,而不管是在相同还是不同的处理器上执行不同的计算机进程,也不管是在相同的操作系统进程/线程还是
不同的操作系统进程/线程下运行不同的计算机进程。
[0426] 可以通过任何形式(例如,源代码形式、计算机可执行形式或中间形式)将计算机程序永久或暂时固定在有形存储介质中,例如半导体存储装置(例如,RAM、ROM、PROM、
EEPROM或闪存可编程RAM)、磁性存储装置(例如软盘或固定磁盘)、光学存储装置(例如CD‑
ROM)、PC卡(例如PCMCIA卡)或其他存储装置中。
[0427] 计算机程序可以通过任何形式固定在能够使用各种通信技术中的任何一种通信技术传输到计算机的信号中,通信技术包括但不限于模拟技术、数字技术、光学技术、无线
技术(例如,蓝牙)、联网技术和互联网技术。
[0428] 计算机程序可以通过任何形式作为具有伴随的印刷或电子文档的可移除的存储介质(例如,缩绕软件(shrink‑warapped software))分发,与计算机系统(例如,在系统ROM
或固定盘上)一起预加载,或从服务器或电子公告板通过通信系统(例如互联网或万维网)
分发。
[0429] 实现本文先前描述的全部或部分功能的硬件逻辑(包括与可编程逻辑设备一起使用的可编程逻辑)可以使用传统的手动方法设计,或者可以使用各种工具(例如,计算机辅
助设计(CAD)、硬件描述语言(例如VHDL或AHDL)或PLD编程语言(例如PALASM、ABEL或CUPL)
进行设计、捕获、模拟或电子建档。
[0430] 可以利用任何合适的计算机可读介质。计算机可读介质可以例如是但不限于电子、磁性、光学、电磁、红外或半导体系统、设备、装置或介质。
[0431] 计算机可读介质的更具体的例子包括但不限于具有一根或多根电线或其他有形存储介质的电连接,例如便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器
(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、光盘只读存储器(CD‑ROM)或其他光
学或磁性存储装置。
[0432] 可编程逻辑可以永久地或暂时地固定在有形存储介质中,例如半导体存储装置(例如,RAM、ROM、PROM、EEPROM或闪速可编程RAM)、磁性存储装置(例如,磁盘或固定盘)、光
学存储装置(例如CD‑ROM)或其他内存装置。
[0433] 可编程逻辑可以固定在能够使用各种通信技术中的任何一种传输到计算机的信号中,所述通信技术包括但绝不限于模拟技术、数字技术、光学技术、无线技术(例如,蓝
牙)、网络技术和互联网络技术。
[0434] 可编程逻辑可以作为具有伴随的印刷或电子文档的可移除的存储介质(例如,缩绕软件)分发,与计算机系统(例如,在系统ROM或固定盘上)一起预加载,或从服务器或电子
公告板通过通信系统(例如互联网或万维网)分发。当然,本发明的一些实施方式可以作为
软件(例如,计算机程序产品)和硬件两者的组合实现。本发明的其他实施方式完全作为硬
件实现或完全作为软件实现。
[0435] 尽管已经描述并在附图中示出了某些示例性实施方式,但是应当理解,这样的实施方式仅是对本发明的说明而不是对本发明的限制,并且本发明的实施方式不限于所示和
所述的特定的构造和布置,因为除了以上段落中所给出的构造和布置之外,可以进行各种
其他改变、组合、省略、修改和替代。
[0436] 本领域技术人员将认识到,可以在不脱离本发明的范围和精神的情况下构造刚刚描述的实施方式的各种调整、修改和/或组合。因此,应当理解,在所附权利要求的范围内,
可以不同于本文具体描述的方式实践本发明。例如,除非另有明确说明,否则可以通过与本
文描述的顺序不同的顺序执行本文描述的处理的步骤,并且一个或多个步骤可以进行组
合、拆分,或者同时执行。
[0437] 鉴于本公开,本领域技术人员还将认识到,本文描述的本发明的不同实施方式可以组合形成本发明的其他实施方式。