云端服务的权限管理方法及其云端数据存储系统转让专利

申请号 : CN201811496013.7

文献号 : CN110032544A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林言叡彭梓佑林照峰

申请人 : 普安科技股份有限公司

摘要 :

本发明公开了一种云端数据存储系统及于所述云端数据存储系统中管理云端服务权限的方法,其中云端数据存储系统包括:一云数据及复数个数据服务器。云数据包括复数个用户目标文件及一全局访问控制信息。复数个数据服务器中的每一数据服务器包含一访问控制强制单元,用来执行或拒绝客户端计算机的输出入请求,其中访问控制强制单元内更包含一区域访问控制信息。本发明方法包括:变更云数据内的全局访问控制信息的内容;复数个数据服务器下载变更后的全局访问控制信息,并依据所下载的全局访问控制信息更新其内的区域访问控制信息;以及复数个数据服务器依据更新后的区域访问控制信息,处理来自客户端计算机的输出入请求。

权利要求 :

1.一种云端数据存储系统,用以管理云端服务的权限,其特征在于,该云端数据存储系统包括:

复数个数据服务器,用以接受至少一客户端计算机的至少一输出入请求并服务该输出入请求,其中该复数个数据服务器中的每一数据服务器更包含:一中央处理单元,用来处理该客户端计算机的该输出入请求与相关数据;

一记忆单元,用来暂存该客户端计算机的该输出入请求指令与该相关数据;以及一访问控制强制单元,用来执行或拒绝该客户端计算机的该输出入请求,其中该访问控制强制单元内包含一区域访问控制信息;

一云数据,位于一云存储单元内,其中该云数据报括:

复数个用户目标文件,是用以提供该复数个数据服务器访问而服务来自该客户端计算机的该输出入请求,该复数个用户目标文件各自对应于复数个文件夹的其中之一,其中该复数个文件夹是属于该复数个数据服务器的文件系统;及复数个超数据目标文件,用以提供该复数个数据服务器使用,其中包括一全局访问控制信息与复数个状态数据,该全局访问控制信息用以记录该复数个数据服务器对该复数个文件夹的访问权限的对应关系,该复数个状态数据各别用以代表该复数个数据服务器中的某一与该复数个文件夹中的某一的对应关系;

其中,当该全局访问控制信息的内容被变更,该复数个数据服务器中与此变更相关的一第一数据服务器会侦测到该复数个状态数据中与其相关的一第一状态数据消失,因此该第一数据服务器至该云存储单元下载变更后的该全局访问控制信息、据以更新该第一数据服务器内的该区域访问控制信息,并根据更新后的该区域访问控制信息处理来自该客户端计算机的该输出入请求。

2.如权利要求1所述的云端数据存储系统,其特征在于,该全局访问控制信息中具有复数个记录项目,且该复数个记录项目中的每一记录项目是记录该复数个数据服务器的其中之一对该复数个文件夹的其中之一的访问权限的对应关系。

3.如权利要求2所述的云端数据存储系统,其特征在于,该复数个记录项目中的每一记录项目更包含有复数个字段,该复数个字段存储有设定信息包含:数据服务器身分识别、文件夹名称、及访问权限。

4.如权利要求2所述的云端数据存储系统,其特征在于,该复数个记录项目更组成一表格。

5.如权利要求1所述的云端数据存储系统,其特征在于,该全局访问控制信息中,对该复数个文件夹中的任一特定文件夹,只能有该复数个数据服务器的其中之一可以具有对该特定文件夹的一较高访问权限。

6.如权利要求5所述的云端数据存储系统,其特征在于,该较高访问权限是一包含写入的访问权限。

7.如权利要求1所述的云端数据存储系统,其特征在于,该云存储单元中更具有一云应用编程接口,用以在进行数据传输时,协助该复数个数据服务器与该云存储单元间指令沟通的数据访问接口。

8.如权利要求1所述的云端数据存储系统,其特征在于,该复数个数据服务器是通过一第一网络连接到该云存储单元,该第一网络可以是一因特网或是一局域网络。

9.如权利要求8所述的云端数据存储系统,其特征在于,该至少一客户端计算机是通过一第二网络与该复数个数据服务器连接,该第二网络可以是一因特网或是一局域网络。

10.如权利要求9所述的云端数据存储系统,其特征在于,该第一网络与该第二网络是同一网络。

11.如权利要求9所述的云端数据存储系统,其特征在于,该第一网络与该第二网络是不同网络。

12.如权利要求1所述的云端数据存储系统,其特征在于,该复数个数据服务器对该云数据做数据访问时,不需要通过一中央管理机制来管理数据访问的权限。

13.如权利要求1所述的云端数据存储系统,其特征在于,该复数个用户目标文件的文件名,经过该复数个数据服务器的解析转换后,呈现出对应于该复数个文件夹的架构。

14.如权利要求1所述的云端数据存储系统,其特征在于,该第一数据服务器侦测到与其相关的该第一状态数据消失的方式,是经由定期检查该第一状态数据是否仍存在于该云存储单元内。

15.如权利要求1所述的云端数据存储系统,其特征在于,该访问控制强制单元是参考该区域访问控制信息而决定是否执行该至少一客户端计算机所发出的该至少一输出入请求。

16.如权利要求1所述的云端数据存储系统,其特征在于,该区域访问控制信息为该全局访问控制信息的一部份或是全部。

17.如权利要求1所述的云端数据存储系统,其特征在于,该全局访问控制信息是以正面表列的方式记录该复数个数据服务器对该复数个文件夹的访问权限的设定。

18.如权利要求1所述的云端数据存储系统,其特征在于,该复数个数据服务器中的每一数据服务器所包含的该区域访问控制信息只有记录该区域访问控制信息所属的该复数个数据服务器的其中之一与该复数个文件夹中至少一相关文件夹的访问权限的设定。

19.如权利要求1所述的云端数据存储系统,其特征在于,该复数个文件夹中的一第一文件夹是通过排程设定的方式让该复数个数据服务器中的一第二数据服务器与一第三数据服务器轮流在不同且不重迭的时段内对该第一文件夹拥有一较高访问权限。

20.如权利要求1所述的云端数据存储系统,其特征在于,当该第一数据服务器侦测到该复数个状态数据中与其相关的该第一状态数据消失且下载变更后的该全局访问控制信息之后,该第一数据服务器从变更后的该全局访问控制信息得知该第一数据服务器对该复数个文件夹中的一第二文件夹的访问权限改变为一升阶状态,则该第一数据服务器必须先等待另一与该第二文件夹相关的一第二数据服务器完成对该第二文件夹的访问权限变更为一降级状态的处理流程,然后该第一数据服务器再完成对该第二文件夹的访问权限变更的处理流程。

21.如权利要求1所述的云端数据存储系统,其特征在于,当该第一数据服务器侦测到该复数个状态数据中与其相关的该第一状态数据消失且下载变更后的该全局访问控制信息之后,该第一数据服务器从变更后的该全局访问控制信息得知该第一数据服务器对该复数个文件夹中的一第二文件夹的访问权限改变为一降级状态,则该第一数据服务器直接执行对该第二文件夹的访问权限变更的处理流程。

22.一种于一云端数据存储系统中管理云端服务的方法,该云端数据存储系统包括有复数个数据服务器、一位于一云存储单元内的云数据、以及链接该复数个数据服务器与该云数据的一网络,其特征在于,该方法包括:存储复数个用户目标文件于该云数据中,用以提供该复数个数据服务器访问而服务来自一客户端计算机的一输出入请求,该复数个用户目标文件各自对应于复数个文件夹的其中之一,其中该复数个文件夹是属于该复数个数据服务器的文件系统;

存储复数个超数据目标文件于该云数据中,其中更包括一全局访问控制信息与复数个状态数据,该全局访问控制信息用以记录该复数个数据服务器对该复数个文件夹的访问权限的对应关系,该复数个状态数据各别用以代表该复数个数据服务器中的某一与该复数个文件夹的某一的对应关系;

变更该全局访问控制信息的内容;

删除该复数个状态数据中的一第一状态数据,该第一状态数据是代表该复数个数据服务器中的一第一数据服务器对该复数个文件夹中的一第一文件夹的对应关系;

下载变更后的该全局访问控制信息,并据以更新该第一数据服务器内部的一区域访问控制信息;以及

根据更新后的该区域访问控制信息处理来自该客户端计算机的该输出入请求。

23.如权利要求22所述的方法,其特征在于,该全局访问控制信息中具有复数个记录项目,且该复数个记录项目中的每一记录项目是记录该复数个数据服务器的其中之一对该复数个文件夹的其中之一的访问权限的对应关系。

24.如权利要求23所述的方法,其特征在于,该复数个记录项目中的每一记录项目更包含有复数个字段,该复数个字段存储有设定信息包含:数据服务器身分识别、文件夹名称、及访问权限。

25.如权利要求23所述的方法,其特征在于,该复数个记录项目更组成一表格。

26.如权利要求22所述的方法,其特征在于,该全局访问控制信息中,对该复数个文件夹中的任一特定文件夹,只能有该复数个数据服务器的其中之一可以具有对该特定文件夹的一较高访问权限。

27.如权利要求26所述的方法,其特征在于,该较高访问权限是一包含写入的访问权限。

28.如权利要求22所述的方法,其特征在于,该复数个数据服务器对该云数据做数据访问时,不需要通过一中央管理机制来管理数据访问的权限。

29.如权利要求22所述的方法,其特征在于,该复数个用户目标文件的文件名,经过该复数个数据服务器的解析转换后,呈现出对应于该复数个文件夹的架构。

30.如权利要求22所述的方法,其特征在于,触发该第一数据服务器至该云存储单元下载该全局访问控制信息的原因,为该第一数据服务器侦测到与其相关的该第一状态数据消失。

31.如权利要求30所述的方法,其特征在于,该第一数据服务器侦测到与其相关的该第一状态数据消失的方式,是经由定期检查该第一状态数据是否仍存在于该云存储单元内。

32.如权利要求22所述的方法,其特征在于,该区域访问控制信息为该全局访问控制信息的一部份或是全部。

33.如权利要求22所述的方法,其特征在于,该全局访问控制信息是以正面表列的方式记录该复数个数据服务器对该复数个文件夹的访问权限的设定。

34.如权利要求22所述的方法,其特征在于,该第一数据服务器中的该区域访问控制信息只有记录该第一数据服务器与该复数个文件夹中至少一相关文件夹的访问权限的设定。

35.如权利要求22所述的方法,其特征在于,该第一文件夹是通过排程设定的方式让该第一数据服务器与一第二数据服务器轮流在不同且不重迭的时段内对该第一文件夹拥有一较高访问权限。

36.如权利要求22所述的方法,其特征在于,当该第一数据服务器从变更后的该全局访问控制信息得知该第一数据服务器对该第一文件夹的访问权限改变为一升阶状态,且一第二数据服务器对该第一文件夹的访问权限改变为一降级状态,则该第一数据服务器必须先等待该第二数据服务器完成对该第一文件夹的访问权限变更的处理流程,然后该第一数据服务器再完成对该第一文件夹的访问权限变更的处理流程。

37.如权利要求22所述的方法,其特征在于,当该第一数据服务器从变更后的该全局访问控制信息得知该第一数据服务器对该第一文件夹的访问权限改变为一降级状态,且一第二数据服务器对该第一文件夹的访问权限改变为一升阶状态,则该第一数据服务器直接执行对该第一文件夹的访问权限变更的处理流程。

38.如权利要求22所述的方法,其特征在于,更包含以下步骤:该第一数据服务器定期检查该云存储单元内是否仍存在该第一状态数据。

39.如权利要求22所述的方法,其特征在于,当该全局访问控制信息的内容被变更后,更进一步包含以下步骤:判断该第一数据服务器对该第一文件夹的访问权限是否变更为一较高访问权限。

40.如权利要求39所述的方法,其特征在于,当判断该第一数据服务器对该第一文件夹的访问权限变更为一较高访问权限时,更进一步包含以下步骤:该第一数据服务器先等待另一与该第一文件夹相关的一第二数据服务器完成对该第一文件夹的访问权限变更,然后该第一数据服务器再根据更新后的该区域访问控制信息处理来自该客户端计算机的该输出入请求。

41.如权利要求40所述的方法,其特征在于,该第一数据服务器得知该第二数据服务器完成对该第一文件夹的访问权限变更的方式是:定期检查该云存储单元内是否出现一第二状态数据,其中该第二状态数据是代表该第二数据服务器对该第一文件夹的对应关系。

42.如权利要求22所述的方法,其特征在于,当该全局访问控制信息的内容被变更后,更进一步包含以下步骤:检查该第一数据服务器内是否有存在需上传至该云存储单元的一缓存数据。

43.如权利要求42所述的方法,其特征在于,当该第一数据服务器内存在需上传至该云存储单元的该缓存数据时,更进一步包含以下步骤:该第一数据服务器上传该缓存数据以及一转换中讯息至该云存储单元,其中该转换中讯息代表该第一数据服务器对该第一文件夹的访问权限正在转换中。

44.如权利要求22所述的方法,其特征在于,该第一数据服务器完成更新其内部的该区域访问控制信息后,更进一步包含以下步骤:上传该一第三状态数据至该云存储单元,其中该第三状态数据代表该第一数据服务器对该第一文件夹的对应关系。

说明书 :

云端服务的权限管理方法及其云端数据存储系统

技术领域

[0001] 本发明涉及一种在一数据存储系统中提供一种访问云端文件数据的管理方法及云端数据存储系统,特别是涉及一种文件夹(File Folder)内的文件访问管理(File Access Management)方法及云端数据存储系统。

背景技术

[0002] 请参考图1A,图1A是显示现有技术中的云端数据存储系统(Cloud Data Storage System)10的系统方块图。图1A中的云端数据存储系统10包括了一云存储单元(Cloud Storage Unit)25与复数个数据服务器单元(Data Server)20。
[0003] 图1A中,该云存储单元25为一般市场上云提供者(Cloud Provider)所提供给客户的一云数据存储环境(即云端环境)。该云提供者可以是,例如:亚马逊(Amazon)、谷歌(Google)、阿里巴巴(Alibaba)等提供客户使用云端存储空间的商业组织。该云存储单元25内包括了一中央数据管理服务器(Central Data Management Server)30、一云应用编程接口(Cloud Application Programming Interface,Cloud API)35及复数个目标文件(Object File)40。
[0004] 该云存储单元25中的该中央数据管理服务器30在云端环境下为一虚拟机(Virtual Machine,VM),该虚拟机上执行一操作系统(Operating System,OS)以管理该复数个位于云端上的目标文件40。所有的数据服务器单元20要对云端上的目标文件40进行读取或写入动作时,须先通过云应用编程接口35向该中央数据管理服务器30发出读取或写入请求,然后通过该中央数据管理服务器30的中央管理机制(Central Management 
Mechanism,CMM)处理该些读取/写入(Read/Write)请求,如此各数据服务器单元20可以正确地访问该云存储单元25上的目标文件40。对于各数据服务器单元20的众多读取/写入请求,该中央数据管理服务器30的执行效能可能是整个系统效能上的瓶颈。又,该中央数据管理服务器30内也存储有访问控制表(Access Control List,ACL),每一数据服务器单元20在处理客户端计算机(Client)的读/写请求前,会先询问该中央数据管理服务器30,经该中央数据管理服务器30检查访问控制表后,以确认该客户端计算机的读/写请求是否可以执行。
[0005] 该云存储单元25的目标文件40与一般操作系统下的文件型态无太大的差异,该目标文件40的文件名可以是类似包含文件路径的文件名型态,通过该数据服务器单元20解析还原可以知道该文件与其所属的文件夹的对应关系。该目标文件40在该云端数据存储系统10中视为一次要数据(Secondary Data),该数据服务器单元20内所存储的数据则视为一主要数据(Primary Data)。对于该客户端计算机读/写请求所对应的一特定的文件,当该数据服务器单元20在其内部的存储空间中找不到时,才会到该云存储单元25的目标文件40中寻找。
[0006] 在数据传输时,该云存储单元25的该云应用编程接口(Cloud API)35是该复数个数据服务器单元20与该云存储单元25间指令沟通的数据访问接口。该接口35是由云提供者所提供,云存储空间的使用者需遵照其所提供的指令与规范来开发应用程序访问数据时的接口,让用户端所执行的应用程序可正确地自该云存储单元25中访问数据。
[0007] 图1A中,该数据服务器单元20可以是,一般具有网络功能的一服务器(Server)或是一网络附接存储装置(Network Attached Storage,NAS)或是其它具有类同功能的装置,其内部执行一操作系统(OS),同时也连接客户端计算机(Client,图未示)。该数据服务器单元20接受客户端计算机的输出入请求(I/O request),并据此要求云端传回一读取请求(read request)所要求的数据、或是传送一写入请求(write request)的写入数据至该云存储单元25上存储。
[0008] 当该数据服务器单元20需要对该云存储单元25的目标文件40进行读取或写入动作时,会通过云应用编程接口35对该中央数据管理服务器30询问是否可以执行该读取或写入请求,其判断基准主要是依据该中央数据管理服务器30内部存储的一访问控制表。各数据服务器单元20对于云存储单元25上众多的目标文件40的询问动作,会耗费该中央数据管理服务器30相当多的资源与时间,使得该云端数据存储系统10整体的效能不佳。
[0009] 此外,由于该中央数据管理服务器30为一虚拟服务器,云存储空间的用户必须向云存储单元25的供应者租用该项服务,使用者必须额外支付租用虚拟服务器的费用,也造成系统成本的增加。
[0010] 请参考图1B,图1B是显示现有技术中另一种云端数据存储系统10的系统方块图。图1B与图1A的差异处为图1B中不设置中央数据管理服务器30。如此,当任一数据服务器单元20欲从云存储单元25读取目标文件(Object File)40、或欲写入数据至云存储单元25时,都不再须要通过中央数据管理服务器30做中央式集中处理,因此可以减少须事先向中央数据管理服务器30询问的时间、避免中央数据管理服务器30变成系统的瓶颈、也可以省去支付租用虚拟服务器的费用成本;但是,这样的做法可能会产生如图1B中二个数据服务器单元20同时对该云存储单元25中的同一目标文件TG(Object File TG)42写入的错误。为解决此问题,现有技术的解决方法是利用「数据服务器单元20间直接沟通」的方式,各个数据服务器单元20间必须通过彼此间传递交握讯息(handshaking message)45来沟通,确认同一时间并没有两个(或以上)的数据服务器单元20欲对同一目标文件(Object File)写入,以避免产生写入错误的情形。以图1B中有两个数据服务器单元20为例,每当其中一数据服务器单元20需对云存储空间中的一目标文件40写入前,都必需先与另一数据服务器单元20进行确认,以确认该另一数据服务器单元20并未同时对该同一目标文件40写入。图1B中因仅绘出2台数据服务器单元20,故仅需执行该两台数据服务器单元20间的交握讯息传递动作。
若图1B中数据服务器单元20增加至10台时,其中1台数据服务器单元20必须对其他9台数据服务器单元20发出交握讯息45,再得到其他9台数据服务器单元20所回复的交握讯息45后才能确认某一目标文件40此时并无任何数据服务器单元20对该目标文件40写入,之后该发出讯问的数据服务器单元20才能执行对该目标文件40的写入。上述的说明仅针对单一个目标文件40的一次数据访问,若当众多个数据服务器单元20对众多个目标文件40进行多次的数据访问时,则众多数据服务器单元20间进行的交握讯息传递动作的次数更是无法计数。
如此,图1B中的云端数据存储系统10中,数据服务器单元20间彼此频繁地执行传递交握讯息45的行为也将会使该云端数据存储系统10中的整体效能降低。
[0011] 为解决上述图1A与图1B中现有技术的缺失,本案发明所提出的技术方案,可以提供一简单有效的架构用以管理各数据服务器单元20对云存储单元25的数据访问,增加系统整体的效能。

发明内容

[0012] 本发明的一目的是提供一种云端数据存储系统,用以管理云端服务的权限,其中该云端数据存储系统包括:复数个数据服务器,用以接受至少一客户端计算机的至少一输出入请求并服务该输出入请求,其中该复数个数据服务器中的每一更包含:一中央处理单元,用来处理该客户端计算机的该输出入请求与相关数据;一记忆单元,用来暂存该客户端计算机的该输出入请求指令与该相关数据;以及一访问控制强制单元,用来执行或拒绝该客户端计算机的该输出入请求,其中该访问控制强制单元内包含一区域访问控制信息;一云数据,位于一云存储单元内,其中该云数据报括:复数个用户目标文件,是用以提供该复数个数据服务器访问而服务来自该客户端计算机的该输出入请求,该复数个用户目标文件各自对应于复数个文件夹的其中之一,其中该复数个文件夹是属于该复数个数据服务器的文件系统;及复数个超数据目标文件,用以提供该复数个数据服务器使用,其中包括一全局访问控制信息与复数个状态数据,该全局访问控制信息用以记录该复数个数据服务器对该复数个文件夹的访问权限的对应关系,该复数个状态数据各别用以代表该复数个数据服务器中的某一与该复数个文件夹中的某一的对应关系;其中,当该全局访问控制信息的内容被变更,该复数个数据服务器中与此变更相关的一第一数据服务器会侦测到该复数个状态数据中与其相关的一第一状态数据消失,因此该第一数据服务器至该云存储单元下载变更后的该全局访问控制信息、据以更新该第一数据服务器内的该区域访问控制信息,并根据更新后的该区域访问控制信息处理来自该客户端计算机的该输出入请求。
[0013] 本发明的另一目的是提供一种于一云端数据存储系统中管理云端服务的方法,该云端数据存储系统包括有复数个数据服务器、一位于一云存储单元内的云数据、以及链接该复数个数据服务器与该云数据的一网络,该方法包括:存储复数个用户目标文件于该云数据中,用以提供该复数个数据服务器访问而服务来自一客户端计算机的一输出入请求,该复数个用户目标文件各自对应于复数个文件夹的其中之一,其中该复数个文件夹是属于该复数个数据服务器的文件系统;存储复数个超数据目标文件于该云数据中,其中更包括一全局访问控制信息与复数个状态数据,该全局访问控制信息用以记录该复数个数据服务器对该复数个文件夹的访问权限的对应关系,该复数个状态数据各别用以代表该复数个数据服务器中的某一与该复数个文件夹的某一的对应关系;变更该全局访问控制信息的内容;删除该复数个状态数据中的一第一状态数据,该第一状态数据是代表该复数个数据服务器中的一第一数据服务器对该复数个文件夹中的一第一文件夹的对应关系;下载变更后的该全局访问控制信息,并据以更新该第一数据服务器内部的一区域访问控制信息;以及根据更新后的该区域访问控制信息处理来自该客户端计算机的该输出入请求。

附图说明

[0014] 图1A是依据现有技术的一云端数据存储系统的架构图(一)。
[0015] 图1B是依据现有技术的一云端数据存储系统的架构图(二)。
[0016] 图2是依据本发明的一实施例的一云端数据存储系统的架构图。
[0017] 图3A是依据本发明的一实施例的复数个目标文件的文件名态样及其所包含的文件夹架构图。
[0018] 图3B是图3A的实施例中各目标文件对应至一般文件架构下的文件夹架构图。
[0019] 图4A是依据本发明的一实施例的数据服务器的硬件架构图。
[0020] 图4B是依据本发明的一实施例的数据服务器的软硬、体架构的关系图。
[0021] 图5A是依据本发明的一实施例的根目录下各分公司专用的文件夹及其下的子文件夹架构关系图(一)。
[0022] 图5B是图5A的实施例中的一全局访问控制信息的内容。
[0023] 图6A是依据本发明的一实施例的根目录下各分公司专用的文件夹及其下的子文件夹架构关系图(二)。
[0024] 图6B是图6A的实施例中的一全局访问控制信息的内容。
[0025] 图6C是图6B的实施例中的各区域访问控制信息的内容。
[0026] 图7是依据本发明的一实施例的一变更全局访问控制信息设定的流程图。
[0027] 图8是依据本发明的一实施例的全局访问控制信息设定变更后的各数据服务器的处理流程图。
[0028] 图8A是图8中的步骤720A中的子流程的流程图。
[0029] 图8B是图8中的步骤720B中的子流程的流程图。
[0030] 图9是依据本发明的另一实施例的全局访问控制信息设定变更后的各数据服务器的处理流程图。
[0031] 图9A是图9中的每一步骤818中的子流程的流程图。
[0032] 图9B是图9A中的步骤820A的子流程的流程图。
[0033] 图9C是图9A中的步骤820B的子流程的流程图。
[0034] 图10是依据本发明的又一实施例的全局访问控制信息设定变更后的各数据服务器的处理流程图。
[0035] 图10A是图10中的步骤920A的子流程的流程图。
[0036] 图10B是图10中的步骤920B的子流程的流程图。
[0037] 图10C是图10B中的步骤940C的子流程的流程图。
[0038] 图10D是图10B中的步骤940D的子流程的流程图。
[0039] 图11是依据本发明的另一实施例的一变更全局访问控制信息设定的流程图。
[0040] 图12是依据本发明的再一实施例的全局访问控制信息设定变更后的各数据服务器的处理流程图。
[0041] 图12A是图12中的步骤1120A的子流程的流程图。
[0042] 图12B是图12中的步骤1120B的子流程的流程图。
[0043] 图13是依据本发明的一实施例的该数据服务器于处理客户端计算机输出入请求时的流程图。
[0044] 其中,附图标记说明如下:
[0045] 10            云端数据存储系统     20            服务器单元
[0046] 25            云存储单元           30            中央数据管理服务器
[0047]
[0048] 35            云应用编程接口       40            目标文件
[0049] 42            目标文件             45            交握讯息
[0050] 80            用户目标文件         90            超数据目标文件
[0051] 92            全局访问控制信息     94A,94B,94C   状态数据
[0052] 100           云端数据存储系统     120           云数据
[0053] 140           云应用编程接口       200           云存储单元
[0054] 211,212,213,  目标文件             300           数据服务器
[0055] 214,215,216
[0056] 311,312,313,  文件                 350,380       网络
[0057] 314,315,316
[0058] 400           硬件                 410           中央处理单元
[0059] 420           动态随机存取存储器   430           非易失性存储器
[0060] 440           只读存储器           450           存储接口控制器
[0061] 460           网络接口控制器       480           实体存储装置数组
[0062] 485           实体存储装置         500           客户端计算机
[0063] 510           超控制器             520           操作系统
[0064] 530           访问控制强制单元     535,535A,  区域访问控制信息
[0065]                                    535B,535C
[0066] 550           云通道服务           599A,599B     数据
[0067] 555,560,562,  文件夹               590,592,594   字段(Column)
[0068] 568,570,572,
[0069] 580,582
[0070] 600,610,620,  步骤                 700,705,710,  步骤
[0071] 630,640,650,                       715,720,720A,
[0072] 660,670,680,                       720B
[0073] 690,695
[0074] 725,730,740, 步骤                 800,805,810, 步骤
[0075] 745,750,755,                       815,,818,820,
[0076] 760,765,770,                       820A,820B,
[0077] 775,780                            825,830
[0078] 835,840,845, 步骤                 900,905,910, 步骤
[0079] 850,855,860,                       915,920,920A,
[0080] 865,870,875,                       920B,925A,
[0081] 880                                930A,935A
[0082] 945A,950A, 步骤                 925B,930B, 步骤
[0083] 955A,960A                          940C,940D
[0084] 970C,975C, 步骤                 970D,975D, 步骤
[0085] 980C,985C,                         995D
[0086] 990C,995C
[0087] 1000,1010, 步骤                 1100,1110, 步骤
[0088] 1020,1030,                         1120,1120A,
[0089] 1040,1050,                         1120B,1130,
[0090] 1060,1070,                         1140,1150,
[0091] 1080,1090,                         1160,1170,
[0092] 1095                               1180,1190,
[0093] 1195
[0094] 1200,1210, 步骤                 1300,1310, 步骤
[0095] 1220,1230                          1320,1330,
[0096] 1340,1350,
[0097] 1355,1360

具体实施方式

[0098] 请参考图2,是依据本发明的一实施例的一云端数据存储系统100的架构图。图2中绘示的云端数据存储系统(Cloud Data Storage System,CDSS)100主要包含了一云存储单元200及复数个通过网络(network)350连接到云存储单元200的数据服务器(Data Server)300。客户端计算机(Client)500则通过网络(network)380连接到数据服务器(Data 
Server)300,并通过数据服务器300访问云存储单元200中的数据。
[0099] 图2中该云存储单元200存储了一群云数据(Cloud Data)120与具有一云应用编程接口(Cloud Application Programming Interface,Cloud API)140。该云数据120由许多个目标文件(Object File)所组成,该些目标文件可以再进一步区分为两类:用户目标文件(User Object File)80与超数据目标文件(Meta Data Object File)90。其中,用户目标文件80是一或多个客户端计算机500通过一或多个数据服务器300而建立并访问的用户数据;超数据目标文件90是专门提供给该一或多个数据服务器300所使用的目标文件,其进一步可以再区分为一全局访问控制信息(Global Access Control Information)92与复数个状态数据(Status Data)94A、94B、94C,其中该复数个状态数据(Status Data)94A、94B、94C各别用以代表复数个数据服务器(Data Server)300中的某一与其一相关文件夹的对应关系。
上述该全局访问控制信息92、状态数据94A至94C等信息是分别以多个超数据目标文件90呈现。依据本发明的另一实施例,上述该全局访问控制信息92、状态数据94A至94C等信息是集中于一个超数据目标文件90内呈现。
[0100] 云存储单元200中的云应用编程接口(Cloud API)140是用以在进行数据传输时,协助该复数个数据服务器300与该云存储单元200间指令沟通的数据访问接口。该云应用编程接口140是由云提供者(Cloud Provider)所提供,云存储空间的使用者需遵照其所提供的指令与规范来开发应用程序做为访问数据时的接口,让用户端所执行的应用程序可正确地自云端环境中访问数据。对于图2中该云端数据存储系统100而言,该云存储单元200为次要的数据存储空间。
[0101] 图2中,该复数个数据服务器300是通过一网络(network)350连接到该云存储单元200,其中该网络350可以是一因特网或是一局域网络。该复数个客户端计算机500是通过另一网络(network)380与该些数据服务器300连接,其中该网络380可以是一因特网或是一局域网络。依据本发明的另一实施例,该网络350及380可以是同一个网络。虽然图2中该复数个数据服务器300之间没有通过网络350直接连接来相互沟通;依据本发明的另一实施例,该复数个数据服务器300之间也可以直接利用网络或其它电讯连接方式直接或间接连接沟通。
[0102] 图2中,该复数个数据服务器300可以是一般的服务器,主要用于服务与其连接的客户端计算机500并处理其所传来的输出入请求(I/O request)。该数据服务器300的内部通过于一服务器操作系统(OS)上所执行的各项的通讯协议(Protocol)及应用程序(Application),处理来自客户端计算机500的输出入请求(I/O request),该输出入请求(I/O request)可能是一读取请求,要求由该云存储单元200上读回数据;或是一写入请求,要求传送数据至该云存储单元200上存储。依据本发明的一实施例,于数据服务器300内的存储单元,例如内存、硬盘等,所存储的内部数据被视为一暂时的缓存数据(Cache Data)。
当数据服务器300接收到来自客户端计算机500的「读取请求」并且在内部找不到相对应的数据时,该数据服务器300才会自云存储单元200上读回其相对应的用户目标文件并回复给该客户端计算机500;当数据服务器300接收到来自客户端计算机500的「写入请求」时,会先存储相对应的写入数据至该数据服务器300内,之后再将该写入数据传送至该云存储单元
200上存储。
[0103] 图2中,客户端计算机500可以是一般计算机或是其他的服务器,其是对该复数个数据服务器300发出输出入请求(I/O request)并等待该等数据服务器300传回该输出入请求(I/O request)处理后的结果。
[0104] 请参考图3A及图3B。依据本发明的一实施例,图3A及图3B是该云数据120中的目标文件与一般操作系统内文件系统的文件夹结构的对应关系图。图3A中所绘示的6个目标文件的文件名,经过数据服务器300的解析转换后,会呈现如图3B中的文件夹(File Folder)架构。图3A中的目标文件211至216,其文件名与一般操作系统下所看到的文件不同,在每一目标文件最右边的「\」之后的档名(主档名与附档名)为一般在操作系统内所呈现的文件名,在目标文件最右边的「\」之前的一连串包含一或多个「\」的所有文字则视为该目标文件对应于文件系统下所存放的「路径」。故,图3A内的目标文件211中其「\US\ABC.txt」的文件名,经过该数据服务器300解析为「根目录下的一名称为US文件夹内的一档名为ABC.txt的文件」,对应到图3B中即为文件311(ABC.txt);图3A内的目标文件212中其「\TW\pqr.txt」的文件名,经过该数据服务器300解析为「根目录下的一名称为TW文件夹内的一档名为qpr.txt的文件」,对应到图3B中即为文件312(pqr.txt)。图3A中其他的目标文件213至216也依此转换规则,通过该数据服务器300分别解析而对应到图3B中的文件313至文件316。
[0105] 虽然图3A中的目标文件211至216,其使用「\」的符号作为该数据服务器300辨识该目标文件在一般操作系统下所显示的文件夹结构关系,但依据本发明的另一实施例,该数据服务器300辨识该目标文件在一般操作系统下所显示的文件夹结构关系所使用的符号并不限于「\」的符号,也可以使用例如:「@」、「!」、「\\」、「\\\」、「~~」等各种的一或多个的符号来取代该「\」符号,只要该等符号是符合云提供者对于档名的规范者都可以使用。
[0106] 请参考图4A,图4A是根据本发明一实施例绘示图2中的数据服务器300其硬件的基本架构方块图。依据本发明的一实施例,该数据服务器300的基本架构包括:一中央处理单元(CPU)410、一只读存储器(ROM)440、一动态随机存取存储器(DRAM)420、一存储接口控制器(Storage Interface Controller)450、一实体存储装置数组(Physical Storage Device Array,PSD Array)480、一非易失性存储器(NVRAM)430及一网络接口控制器
(Network Interface Controller,NIC)460等,上述各单元通过一或多个总线(Bus)来传递彼此间的讯息与数据。其中,实体存储装置数组(PSD Array)480更包含复数个实体存储装置485,例如:硬盘(Hard Disk Drive,HDD)、固态硬盘(Solid State Disk,SSD)、或其它可以达到类同存储功能的实体存储装置485。
[0107] 图4A中,该中央处理单元410是为该数据服务器300的主要核心单元,其用来执行硬件、操作系统、与应用程序间的数据处理程序。其中该中央处理单元410可为一Power PC、一x86或任何架构的CPU。该只读存储器440是用来存储该数据服务器300开机时的基本输出入系统(BIOS)及/或其他程序。该动态随机存取存储器420作为CPU指令或是各种数据的暂存处,其可用来存储来自客户端计算机500的写入数据,以等待该中央处理单元410处理,或是存储该中央处理单元410已处理好的数据,等待存储至该实体存储装置数组480内或是通过网络接口控制器460将已处理好的数据送出。该非易失性存储器430可以利用闪存(Flash memory)来实现,其用来存储访问该实体存储装置数组480的输出入请求(I/O request)执行状态的相关数据,以备相关输出入请求(I/O request)操作尚未做完前发生不正常电源关闭时,作检验使用。该存储接口控制器450是为一存储接口,用以将中央处理单元410执行处理后的数据存储至实体存储装置数组480内,或是自实体存储装置数组480内读取相关的数据至动态随机存取存储器420内暂存,等待中央处理单元410处理。该存储接口控制器450所采用的通讯协议可以是光纤信道(Fiber Channel,FC)、串行附接小型计算机系统接口(Serial Attached SCSI,SAS)、串行先进技术接取(Serial ATA,SATA)或是任何适用的传输协议。该实体存储装置数组480是由多个实体存储装置485所组成,用来提供该数据服务器300存储数据的空间。依据本发明的另一实施例,当该数据服务器300不提供数据的存储空间时,则该实体存储装置数组480可以省略。该网络接口控制器460对外连接到一网络,其是将中央处理单元410处理后的数据或是讯息通过网络传给网络上的其他装置、或是将该网络上其他装置的数据传送至动态随机存取存储器420内暂存。
[0108] 请参考图4B,图4B是根据本发明一实施例绘示图2中的数据服务器300其软、硬件的架构关系图。图4B中该数据服务器300的软件是架构于硬件400之上,该硬件400组织架构如图4A中所示的架构。
[0109] 根据图4B所示的实施例,在数据服务器300的硬件400与操作系统(OS)520之间有一超控制器(Hypervisor)510,也可称为虚拟机监视器(Virtual Machine Monitor,VMM),该超控制器(Hypervisor)510(或VMM)可以用软件、韧体或硬件的方式实现。该超控制器510提供一虚拟的作业平台供一或多个操作系统(OS)共享该硬件400上的资源,因此该超控制器510也可以视为图4B中该操作系统520的「元操作系统」(Pre Operating System),其主要用来协调及分配运行于该数据服务器300上的多个操作系统的硬件400资源。在不中断各操作系统运转的情况下,该超控制器510可以自动地增加或减少其中一操作系统可以运用的硬件资源,例如:所分配的CPU、内存空间、网络接口、硬盘存储空间等硬件资源,使得各操作系统间的工作负载(workload)接近平衡。虽然图4B中仅绘出一操作系统520,但实际上运行于该超控制器510上的操作系统可以是多个。依据本发明的另一实施例,若该数据服务器300仅需要单一个操作系统时,则该超控制器510可以省略。
[0110] 图4B中,该操作系统520可以是一般常见的操作系统,例如:Windows、Linux、Solaris等,该操作系统520提供多任务(Multi-Task)、分时(Time Sharing)的作业环境,让多个应用程序与程序可以同时执行。图4B中,在该操作系统520上分别执行一访问控制强制单元(Access Control Enforcement Unit)530及一云通道服务(Cloud Gateway Service)550的应用程序。该访问控制强制单元530是执行图2中该客户端计算机500所发出的输出入请求(I/O request)的一软件模块。该访问控制强制单元530是否会执行或是拒绝该客户端计算机500所发出的输出入请求(I/O request),是参考该访问控制强制单元530内存储的一区域访问控制信息(Local Access Control Information)535而决定。当该客户端计算机500所发出的输出入请求(I/O request)符合该区域访问控制信息535内的设定
(setting)时,该访问控制强制单元530会执行该客户端计算机500的输出入请求(I/O 
request),否则会拒绝执行该客户端计算机500的输出入请求(I/O request)。如此,以达到图2中该复数个数据服务器300对该云数据120的数据访问管理(Data Access Management)的目的。该云通道服务550是作为该访问控制强制单元530对外与云数据120(如图2所示)之间的一中介服务程序,其接受该访问控制强制单元530的指令对该云数据120进行目标文件的访问。
[0111] 请再参考图2,由于本发明不通过设置于云存储单元200中的虚拟机做为数据访问的中央管理机制(Central Management Mechanism,CMM),而是让各数据服务器300直接访问云存储单元200中的数据;也就是说,各个数据服务器300对云数据120做数据访问时,各个数据服务器300之间不需要通过中央管理机制来管理数据访问的权限。依据本发明的一实施例,云端上或是网络上并未设置一中央数据管理服务器(Central Data Management Server),因此各个数据服务器300之间必须通过一「数据访问管理机制」,方能避免该等数据服务器300同时对云数据120中的同一目标文件写入,以至于发生数据混乱或写入错误。依据本发明的一实施例,该数据访问管理机制的基本概念包括:(1)该云端数据存储系统
100在该云数据120中设置一记录全局访问控制信息(Global Access  Control 
Information)的目标文件92,该全局访问控制信息92的内容,于本发明的一实施例,如图5B所示,其内记录各数据服务器300与其相关的文件夹的访问权限的对应关系;(2)各数据服务器300自该云存储单元200中下载该全局访问控制信息92文件,并依据该全局访问控制信息92的内容,各自更新数据服务器300内部的一区域访问控制信息(Local Access Control Information),如图4B中所示的该区域访问控制信息535;(3)针对客户端计算机500对各数据服务器300所发出的输出入请求(I/O request),各数据服务器300依据本身的区域访问控制信息535设定信息,判断其是否可以执行该输出入请求(I/O request),若否,则拒绝该输出入请求(I/O request);若是,则执行该输出入请求(I/O request)。通过上述的「数据访问管理机制」,让图2中复数个数据服务器300在处理客户端计算机500对云存储单元200中的输出入请求(I/O request)时,不会发生同时写入数据到用户目标文件80的错误情形。
依据本发明的一实施例,上述本发明的「数据访问管理机制」也同时解决如图1A与图1B中习知技术的问题。
[0112] 请同时参考图5A及图5B,依据本发明的一实施例,图5A是绘示在云存储单元200的根目录(Root Directory)555下各分公司专用的文件夹(File Folder)与其下子文件夹的架构关系图。图5B所绘示的表格是为对应于图5A中各个文件夹与子文件夹的架构关系的一全局访问控制信息92的示意图。
[0113] 依据本发明的一实施例,图5A所绘示的根目录555下包含3个文件夹,分别为一名为“Taipei”的文件夹560、一名为“New York”的文件夹570及一名为“London”的文件夹580,其分别表示供台北分公司、纽约分公司、伦敦分公司存放数据用。其中,该文件夹Taipei 560内进一步包含多层的子文件夹(Sub File Folder),例如:A、B、C、D、E、US MKT及Inventory等各子文件夹;该文件夹New York 570内进一步包含多层的子文件夹,例如:A、B、C及Inventory等各子文件夹;该文件夹London 580内进一步包含多层的子文件夹,例如A、B、C及Inventory等各子文件夹。假设各分公司对于其下所属的文件夹都有「读与写」(或完全控制)的权限,但对于其他分公司内名为Inventory的子文件夹仅有「读」的权限,例如:
台北分公司对于文件夹Taipei560及其下所包含的各层子文件夹都有「读写」的权限,但对于文件夹New York 570下的Inventory子文件夹572、文件夹London 580下的Inventory子文件夹582却都仅有「读」的权限;纽约分公司对于文件夹New York 570及其下所包含的各层子文件夹都有「读写」的权限,但对于文件夹Taipei 560下的Inventory子文件夹562、文件夹London 580下的Inventory子文件夹582却都仅有「读」的权限;伦敦分公司对于文件夹London 580及其下所包含的各层子文件夹都有「读写」的权限,但对于文件夹New York 570下的Inventory子文件夹572、文件夹Taipei 560下的Inventory子文件夹562却都仅有「读」的权限。
[0114] 请参考如图2中所示的方块图,假设数据服务器A 300的身分识别(Identity,ID)为Data_Server_A;数据服务器B 300的身分识别为Data_Server_B;数据服务器C 300的身分识别为Data_Server_C。台北分公司通过该数据服务器A 300上传相关数据至该云存储单元200或自该云存储单元200下载相关数据至该数据服务器A 300;纽约分公司通过该数据服务器B300上传相关数据至该云存储单元200或自该云存储单元200下载相关数据至该数据服务器B 300;伦敦分公司通过该数据服务器C 300上传相关数据至该云存储单元200或自该云存储单元200下载相关数据至该数据服务器C300。由于本发明不通过设置于云存储单元200中的虚拟机做为数据访问的中央管理机制(Central Management Mechanism),因此各地分公司通过不同的数据服务器来对云存储单元200进行数据访问时,须要共同遵循同一机制(mechanism),如图5B中的全局访问控制信息92的设定(setting),用来规范各数据服务器300对于该云数据120的访问,以避免属于其中一分公司本身的数据却被其他的分公司所读取、修改、删除。
[0115] 请参考图5B,图5B中,是绘示该全局访问控制信息92的内容,其内容是对应至图5A中各分公司专用的文件夹设定。该全局访问控制信息92的内容可以采「正面表列」的方式来设定,即所有数据服务器与云端文件夹/路径间的权限设定都须记录于该全局访问控制信息92内做为数据访问的规范,若没有记录就没有相关规范。依据本发明的另一实施例,该全局访问控制信息92的内容也可采「负面表列」的方式来设定,即只记录“不可”实施的规范于该全局访问控制信息92内,没有记录者则表示没有访问限制。依据本发明的再一实施例,该全局访问控制信息92的内容可以同时采取「正面表列」与「负面表列」的方式来记录相对应的访问管理。依据本发明的一实施例,图5B中,该全局访问控制信息92的内容为复数个记录项目(entry),该复数个记录项目(entry)可以组成一表格(如图5B所示范例)或只是一连串的数据(图中未示),或是其它形式的记录方式,只要能够清楚记录所有数据服务器对相关文件夹的访问权限的对应关系即可。其中每一记录项目(entry)至少包含有一数据服务器身分识别(Data Server ID)的字段590、一文件夹名称(Folder Name)的字段592及一访问权限(Access Right)的字段594等设定信息。
[0116] 图5B中,该Data Server ID字段590所指的是图2中各数据服务器300的身分识别,以图5A为例,数据服务器A 300的身分识别为Data_Server_A;数据服务器B 300的身分识别为Data_Server_B;数据服务器C 300的身分识别为Data_Server_C。该Folder Name字段592所指的是如图5A中其中一文件夹的名称,该文件夹名称的表示必须从根目录至所指定的文件夹间的「完整路径」,例如:当要设定图5A中文件夹Taipei 560时,即以「\Taipei」表示;当要设定图5A中文件夹US MKT时,即以「\Taipei\A\C\US MKT」表示。上述该「\Taipei」与「\Taipei\A\C\US MKT」即表示该根目录至所指定文件夹间的「完整路径」。该Access Right字段594表示该服务器身分标识列590所指的数据服务器300对该Folder Name字段592内记录的文件夹所具有的权限设定,该权限设定,于本发明的一实施例,可以是「Read and Write」及「Read Only」,或再包括其他权限设定,例如「:Modify」及「List」。该「Read and Write」权限设定是指:所设定的文件夹,包含其下所属的所有子文件夹,其对应的数据服务器300对其可以同时有「Read」与「Write」的访问权限;该「Read Only」权限设定是指:所设定的文件夹,包含其下所属的子文件夹,其对应的数据服务器300对其只能有「Read」的权限,没有「Write」的权限;「Modify」权限设定是指:所设定的文件夹,包含其下所属的子文件夹,其对应的数据服务器300对其有「修改」的权限,此一修改的权限可能包含读取、写入、删除等可以对该文件夹内容进行修改的权限;「List」权限设定是指:所设定的文件夹,包含其下所属的子文件夹,其对应的数据服务器300对其有「列出文件夹内容」的权限。必须注意的是,为避免产生数据访问的冲突,「不同的数据服务器300」对「同一个文件夹」设定其访问权限时,于本发明的一实施例,只能有一个数据服务器300对该文件夹可以有较高的访问权限,例如「:Read and Write」及/或「Modify」,其他的数据服务器300对该文件夹的访问权限只可以设定为较低的访问权限,例如:「Read Only」及/或「List」。此外,当某一较上层的文件夹(母文件夹)的访问权限被设定后,该母文件夹其下所有的子文件夹会继承与该母文件夹相同的访问权限。于本发明的一实施例,若要使该某一子文件夹的访问权限设定与其母文件夹不相同时,该子文件夹的访问权限可以再另外设定。
[0117] 根据图5A中的例示,假设台北分公司对应的数据服务器A被设定为可以对文件夹Taipei 560及其内所有子文件夹内的文件做读出与修改,也就是说,台北分公司对于文件夹Taipei 560及其内所有子文件夹都有「Read and Write」的权限。据此,图5B中,该全局访问控制信息92内有关数据服务器A 300与文件夹Taipei 560的设定为:在服务器身分识别的字段590中填入代表「Data_Server_A」的数据,在Folder Name的字段592中填入代表「\Taipei」的数据,在Access Right的字段594中填入代表「Read and Write」的数据。又,因台北分公司对于纽约分公司的Inventory文件夹、伦敦分公司的Inventory文件夹都只有「读」的权限,故图5B中,该全局访问控制信息92内有关数据服务器A 300与文件夹New York\Inventory 572的设定为:该服务器身分识别字段590中填入代表「Data_Server_A」的数据,该Folder Name字段592中填入代表「\New York\Inventory」的数据,该Access Right字段594中填入代表「Read Only」的数据。同理,该全局访问控制信息92内有关该数据服务器A 
300与该文件夹London\Inventory 582的设定为:该Data Server ID字段590中填入代表「Data_Server_A」的数据,该Folder Name字段592中填入代表「\London\Inventory」的数据,该Access Right字段594中填入代表「Read Only」的数据。以此类推,假设图5A中纽约分公司、伦敦分公司分别通过数据服务器B 300、数据服务器C 300上传/下载云存储单元200的数据且分别访问各自的文件夹New York 570及London 580,故图5B中会有其相对应的设定,例如:第4列针对文件夹New York 570的权限设定、以及第7列针对文件夹London 580的权限设定。又,因设定纽约分公司、伦敦分公司只能「读取」其他分公司中的Inventory文件夹,故图5B中也有如第5-6列、第8-9列中相对应的设定。
[0118] 图5B绘示的全局访问控制信息92中,与「Data_Server_A」相关的记录项目(entry)有3笔,该3笔记录项目(entry)以虚线方框596圈起来,该虚线方框596所圈起的记录项目(entry)可视为对应到数据服务器A300内所记录的区域访问控制信息535。同样地,图5B绘示的全局访问控制信息92中与「Data_Server_B」、「Data_Server_C」相关的记录项目(entry)也分别有3笔,其分别以虚线方框597、虚线方框598圈起来表示;也就是说,虚线方框597、虚线方框598所圈起的记录项目(entry)分别对应到数据服务器B 300、数据服务器C 300内记录的区域访问控制信息535。每一数据服务器300的区域访问控制信息535只有记录与其本身相关文件夹的访问权限设定,因此,各数据服务器300对于处里来自客户端计算机
500的输出入请求(I/O request)时,数据服务器300只须依据本身记录的区域访问控制信息535判断是否执行该客户端计算机500的输出入请求(I/O request),可以缩短判断时间,增进该云端数据存储系统100的效能。
[0119] 虽然图5A中绘示的全局访问控制信息92与图4B中绘示的区域访问控制信息535是以表格的方式呈现,但是依据本发明的另一实施例,该全局访问控制信息92与该区域访问控制信息535也可以用文字、符号或其他的表达方法来记录。又,图2中该云数据120中该全局访问控制信息92为一目标文件,同时也为一超数据,仅供该数据服务器300访问管理使用。
[0120] 图5A中,分别以三个虚线框圈起台北分公司、纽约分公司、伦敦分公司各自具有较高访问权限(例如「:Read and Write」及/或「Modify」)的文件夹;也可称该些被圈起的文件夹属于各个不同的分公司所管辖。当台北分司所属的文件夹Taipei 560下的子文件夹US MKT 568须要将其较高的访问权限转移给其它分公司时(例如:纽约分公司),此时需要执行该全局访问控制信息92的「设定改变程序」,以使得该子文件夹US MKT 568较高的访问权限(例如:「Read and Write」及/或「Modify」)由该台北分公司转移到该纽约分公司。当子文件夹US MKT 568的较高访问权限(例如:「Read and Write」)由台北分公司转移到纽约分公司后,台北分公司对于该子文件夹US MKT 568的访问权限则会降级变成只有「Read Only」的权限。以上所述的转变后的结果,如图6A与图6B中所示。其中,图6A绘示原属于台北分公司管辖的文件夹的子文件夹US MKT 568,其管辖权被单独转移到纽约分公司之后的文件夹架构关系图;图6B绘示全局访问控制信息92的设定改变后的内容,与图5B相较图6B新增两笔新记录项目以记录以上更动,如图6B中粗框599A与粗框599B所示。
[0121] 请再次参考图6A与图6B。根据图6A,因设定将子文件夹US MKT 568的较高访问权限(例如:「Read and Write」)由台北分公司转移至纽约分公司,且基于本发明的一处理原则『:为避免产生数据访问的冲突,不同的数据服务器300对同一个文件夹设定其访问权限时,在同一时间(时期)只有一个数据服务器300对该文件夹可以有较高的访问权限,例如:「Read and Write」及/或「Modify」,其他的数据服务器300对该文件夹的访问权限只可以设定为较低的访问权限,例如:「Read Only」』。故,台北分公司对于子文件夹US MKT 568的访问权限不能再维持为原来的「Read and Write」,只能修改为「Read Only」的设定。又原来子文件夹US MKT 568的预设访问权限是继承其母文件夹Taipei 560的设定,因此图5B所示的全局访问控制信息92中并无特别针对子文件夹US MKT 568记录其权限设定。但若子文件夹不依照默认值继承母文件夹的权限设定时,全局访问控制信息92中必须新增该子文件夹(如子文件夹US MKT 568)的设定,如图6B中的599A的设定记录:Data_Server_A对子文件夹US MKT 568的访问权限设定为「Read Only」;相对地,子文件夹US MKT 568的较高访问权限移转给纽约分公司,因此全局访问控制信息92中必须新增此一设定,记录Data_Server_B对子文件夹US MKT 568的访问权限设定为「Read and Write」,如图6B中的599B的设定记录。依据本发明的另一实施例,图6A中台北分公司所在的数据服务器A 300与纽约分公司所在的数据服务器B 300拥有对子文件夹US MKT 568较高访问权限(例如:「Read and Write」及/或「Modify」)的时间是不同、不重迭、互斥或分开的。例如:设定台北分公司所在的数据服务器A 300在每一天的台北时间8:00至20:00时拥有对子文件夹US MKT 568的Read and Write访问权限,且设定纽约分公司所在的数据服务器B 300在每一天的台北时间20:00至
8:00拥有对子文件夹US MKT 568的Read and Write访问权限。对于一特定文件夹(例如:US MKT 568),通过排程(schedule)设定其较高的访问权限(例如:「Read and Write」及/或「Modify」)在不同时间(时段)分派给不同数据服务器300使用,使得复数个数据服务器300可以在不同时间(时段)轮流享有对该特定文件夹的较高的访问权限(例如:「Read and 
Write」及/或「Modify」)。然而,此一以排程(schedule)设定访问权限的方式仍须遵守上述的处理原则:『为避免产生数据访问的冲突,不同的数据服务器300对同一个文件夹设定其访问权限时,在同一时间(时期)只有一个数据服务器300对该文件夹可以有较高的访问权限,例如「:Read and Write」及/或「Modify」,其他的数据服务器300对该文件夹的访问权限只可以设定为较低的访问权限,例如:「Read Only」』。因此,以上范例中的数据服务器A 300(台北分公司)与数据服务器B 300(纽约分公司)拥有对子文件夹US MKT 568的较高访问权限(例如:「Read and Write」)各自被限制在与对方互不重迭的一段时间,在此时间(时段)以外对子文件夹US MKT568则仅有Read Only的权限。
[0122] 请参考图6C,图6C中是绘示各数据服务器300内部的区域访问控制信息535的内容。图6C中包含了该数据服务器A 300内的区域访问控制信息535A、数据服务器B 300内的区域访问控制信息535B及数据服务器C 300内的区域访问控制信息535C。图6C中,该三个区域访问控制信息535A、535B、535C的记录内容皆在图6B的该全局访问控制信息92中可以找到相同的记录,所差异的只是区域访问控制信息535A、535B、535C只记录各数据服务器300本身相关的权限设定,而全局访问控制信息92则包括各区域访问控制信息535的设定记录。表格535A中,该字段590的Data Server ID中只记录代表「Data_Server_A」的数据;表格
535B中,该字段590的Data Server ID中只记录代表「Data_Server_B」的数据;表格535C中,该字段590的Data Server ID中只记录代表「Data_Server_C」的数据。因Data_Server_A、Data_Server_B、及Data_Server_C的Data Server ID分别对应到该数据服务器A 300、该数据服务器B 300及该数据服务器C 300,故可知该表格535A、该表格535B及该表格535C分别为该数据服务器A 300、该数据服务器B 300及该数据服务器C 300内部的区域访问控制信息535。因图6B中该全局访问控制信息92的内容包含了图6C中每一区域访问控制信息535的内容,故,依据本发明的另一实施例,该每一数据服务器300内的区域访问控制信息535可以用该全局访问控制信息92来套用,不用再经过筛选。
[0123] 依据本发明的一实施例,对于图2中云数据120的全局访问控制信息92的内容,需要通过管理者来修改。管理者可以通过该数据服务器A 300、该数据服务器B 300、该数据服务器C 300其中任何一台数据服务器来修改云数据120中的全局访问控制信息92。依据本发明的另一实施例,除了该数据服务器300以外,管理者也可通过其他的计算机来修改该全局访问控制信息92的设定内容。该管理者修改该全局访问控制信息92的设定内容的流程如图7中的流程图。
[0124] 请参考图7,依据本发明的一实施例,图7是绘示管理者变更全局访问控制信息92内容的流程图。该流程开始于步骤600。
[0125] 步骤600中,是该管理者登入云端。由于管理者可以通过任一的数据服务器300修改该云数据120中的该全局访问控制信息92,故管理者通过执行该数据服务器300内的一管理程序(图未示)来修改该云数据120中该全局访问控制信息92的内容。该管理程序被设计为通过一用户接口(User Interface,UI)来执行修改该全局访问控制信息92的内容。
[0126] 步骤610中,是该管理程序确认该管理者的身份。此步骤是避免该全局访问控制信息92被管理者身份以外的其他人执行不当的修改。当该管理程序被执行后,于本发明的一实施例,该管理程序会自动从该云存储单元200中下载该管理者的管理密码,管理者必须输入正确的管理者密码才能执行后续对该全局访问控制信息92的设定,否则无法进入全局访问控制信息92的管理画面进行任何设定修改或变更。依据本发明的另一实施例,该管理者必须同时输入正确的账号及密码方可执行该全局访问控制信息92后续的变更设定。
[0127] 步骤620中,是该管理程序通过密码的正确性来判断该管理者的身份是否正确,若是,则执行步骤630,若否,则回到步骤610,继续输入该管理者的密码以确认该管理者的身份。依据本发明的一实施例,该管理者的密码在连续错误的情况下并不会影响管理者继续登入。依据本发明的另一实施例,对于该管理者的密码连续输入错误3次时,该管理程序会自动终止该全局访问控制信息92的登入程序。
[0128] 步骤630中,是该数据服务器300通过该管理程序读取并显示云端上的全局访问控制信息的内容。通过该管理程序中的用户接口(UI),该全局访问控制信息92的内容被显示于该用户接口(UI)上。该全局访问控制信息92的设定画面,于本发明的一实施例,可以如图6A、图6B中所绘示的表格。依据本发明的另一实施例,该全局访问控制信息92的设定画面是以文字或符号的方式来呈现。当该全局访问控制信息92的内容被显示于该用户接口上时,该管理者可以对其中的任何字段来作修改,或是新增任何的设定。
[0129] 步骤640中,是该管理程序判断该全局访问控制信息92的内容是否被更改,若否,则结束该全局访问控制信息92的设定流程。若是,则继续执行步骤650的判断。
[0130] 步骤650中,是该管理程序检查并确认该全局访问控制信息92的设定变更后是否有冲突?基于本发明的一处理原则:为避免产生数据访问的冲突,不同的数据服务器300对同一个文件夹设定其访问权限时,只有一个数据服务器300对该文件夹可以有较高的访问权限,例如「:Read and Write」及/或「Modify」,其他的数据服务器300对该文件夹的访问权限只可以设定为较低的访问权限,例如:「Read Only」及/或「List」。因此,当不同的数据服务器300对同一文件夹的访问权限同时为「Read and Write」时便会产生冲突,该管理程序对于设定变更时产生冲突的情况是不允许的,若该管理程序确认该全局访问控制信息92的设定变更后有冲突时,则执行步骤660,否则,执行步骤680。
[0131] 步骤660中,是该管理程序显示设置冲突的警示。当该管理程序确认该全局访问控制信息92的设定有冲突时,该管理程序会显示一设定冲突的警示,以提醒管理者目前的设定有发生冲突的情形。
[0132] 步骤670中,是该管理者重新设定有冲突的部分。当该管理程序显示设置有冲突时,该管理程序会将光标停留在设定发生错误的那一笔记录项目上,管理者必须更改发生错误的部分。步骤670执行后,该管理程序会回到步骤650中再次检查并判断,直到所有的设定冲突都不存在。
[0133] 步骤680中,是该管理程序将更新后的全局访问控制信息92存储于云端上。当管理者通过用户接口确定更改全局访问控制信息92上的设定后,该管理程序通过登入时的数据服务器300并以写覆(overwrite)的方式将该全局访问控制信息92的设定存储于云端,同时产生一设定记录文件(Log File)存储于该云端上。该设定记录文件可以显示该全局访问控制信息92的所有修改历程的记录,其中包括修改日期/时间、数据服务器的身分识别名称与发生权限变化的文件夹名称、修改权限变化等记录。
[0134] 步骤690中,是该管理程序对于因全局访问控制信息92设定改变而受到影响的数据服务器300,删除其云端上相对应的状态数据(Status Data)。当某一文件夹的访问权限与某一数据服务器300产生一对应关系时,于云端上会存在一记录该对应关系的一状态数据,例如:图2中的94A、94B与94C。因与一数据服务器300有对应关系的文件夹可能会有很多个,故用来记录该些对应关系的状态数据可能也会很多个。一旦云端上用来记录该些对应关系的状态数据中的某一或某些消失时,表示与其相关的数据服务器300对于关联文件夹的访问权限已经被改变,因此,该数据服务器300必须自云端上下载新的全局访问控制信息92,并据以变更该数据服务器300内部的区域访问控制信息535,然后以变更后的访问权限设定来处理客户端计算机500的输出入请求(I/O request)。当云端上一记录「某一数据服务器300与某一/某些文件夹的访问权限的对应关系」的状态数据消失时,会触发该数据服务器300对本身的区域访问控制信息535进行更新程序。当该数据服务器300对本身的区域访问控制信息535更新完成,该数据服务器300会上传一记录新的对应关系的状态数据至云端上。依据本发明的另一个实施例,每一数据服务器300与相对应文件夹的访问权限的对应关系都记录于同一状态数据内,一旦该数据服务器300的其中一个相对应文件夹的访问权限改变时,则该数据服务器300位于云端上的状态数据会被删除,该数据服务器300所有相对应的文件夹的访问都会被影响,会触发该数据服务器300对于本身的区域访问控制信息
535进行更新程序,之后该数据服务器300上传一记录新的对应关系的状态数据至云端上。
[0135] 步骤695中,是该管理程序持续监控云端上的状态数据状态,直到相关的数据服务器完成上传其新的状态数据至云端。对于管理者执行该全局访问控制信息92内其中一文件夹访问权限的变更,该管理程序必须持续的监控因该文件夹访问权限变更而受影响的数据服务器300是否已经上传其新的状态数据至云端,直到所有受影响的数据服务器300都上传其与相对应文件夹的新的状态数据至云端为止。步骤695执行完毕后即结束管理者变更该全局访问控制信息92内容的程序。
[0136] 请参考图8、图8A、图8B,依据本发明的一实施例,图8、图8A、图8B整体是绘示管理者在修改全局访问控制信息92的设定后,各个数据服务器300因应该修改的处理程序。图8、图8A、图8B整体所绘示的实施例是由图2中的数据服务器300所执行,用以因应全局访问控制信息92的设定发生变动后的处理流程。此处理流程可能是由图2中的任一数据服务器300所执行,只要该数据服务器300侦测到其在云端数据存储系统100的相关文件夹设定已经有所变更。图8、图8A、图8B的处理流程并不受限于只适用管理者用以变更全局访问控制信息92的设定时所通过的一特定的数据服务器300。图8、图8A、图8B整体所绘示的流程,仅针对全局访问控制信息92的其中一个文件夹发生访问权限设定改变来说明。图8、图8A、图8B整体绘示的流程代表:当一文件夹的访问权限改变后,与此改变有关的每一数据服务器300皆须执行此一处理程序。该处理流程开始于步骤700。
[0137] 步骤700中,是数据服务器300定期检查云端上与本身相关的状态数据是否存在;其中,「与本身相关的状态数据」是指记录该数据服务器300与某一(或某些)文件夹的访问权限有对应关系的状态数据。依据本发明的一实施例,数据服务器300会以固定的时间间隔(例如:每10秒一次的频率),反复地检查云端上与该数据服务器300相关的状态数据是否存在。依据本发明的另一实施例,数据服务器300检查与其相关的状态数据并非受限于固定的时间间隔,可以是变动的时间间隔(例如:相隔任何长度的一段时间)。由于管理者变更全局访问控制信息92的设定是通过前述的管理程序来执行,当其中的一文件夹的访问权限改变后,该管理程序会删除云端上记录相关对应关系的状态数据(Status Data)。例如:假设变更全局访问控制信息92的设定内容是将某一文件夹较高的访问权限(例如:「Read and Write」)由数据服务器A 300转移到数据服务器B 300,于本发明的一实施例,则管理程序会将记录相关对应关系的「数据服务器A 300对该文件夹」与「数据服务器B 300对该文件夹」的状态数据都删除。于本发明的另一实施例,也可以只删除记录「数据服务器B 300对该文件夹」的对应关系的状态数据,因为数据服务器B 300在此一变更全局访问控制信息92设定中是获得较高的访问权限。由于该全局访问控制信息92内所记录的数据服务器300与文件夹的访问权限的对应关系可能相当多个,所以云端上可能会有相当多个的状态数据与该数据服务器300相对应。本发明的实施例中是以每次单一个文件夹的设定发生变化举例说明与该文件夹有关的各数据服务器300的处理程序。步骤700中,该数据服务器300必须定期且反复的检查云端上与该数据服务器300相关的状态数据是否存在,进而判断与该数据服务器300对应的文件夹的访问权限设定是否有发生变化。
[0138] 步骤705中,是该数据服务器300判断云端上与其相关的状态数据是否不存在?若否,表示与该数据服务器300相关的所有状态数据仍存在,则执行步骤710。若是,表示与该数据服务器300相关的至少一状态数据不存在,则执行步骤715。
[0139] 步骤710中,是数据服务器300依据其内部原本区域访问控制信息535正常处理客户端计算机500的输出入请求。当数据服务器300判断其云端上所有对应的状态数据存在时,表示与该数据服务器300相关的文件夹的访问权限并未被修改。故,步骤710中,数据服务器300会依照原本内部的区域访问控制信息535设定的管理规则来处理该客户端计算机500的输出入请求(I/O request)。请参考图5B,假设一客户端计算机500通过数据服务器B 
300来访问云端上的数据,且假设其所发出输出入请求为:「读取Taipei文件夹下的
Inventory子文件夹内的一list_all.dat」。由于图5B中,第5列的内容显示Data_Server_B与\Taipei\Inventory子文件夹的访问权限为「Read Only」,故该客户端计算机500所发出的「读取Taipei文件夹下的Inventory内的一list_all.dat」完全符合图5B中第6列所设定的管理规则,所以该数据服务器B300会执行「读取云端上\Taipei\Inventory\list_
all.dat的目标文件」的动作,并将该\Taipei\Inventory\list_all.dat的内容回复给该客户端计算机500。又,若该客户端计算机500所发出的输出入请求与该数据服务器B 300内部该区域访问控制信息535所设定的管理规则不相符时,则该数据服务器B 300会拒绝该客户端计算机500本次所发出的输出入请求。由于该数据服务器300检查与本身相对应的文件夹的状态数据是存在,所以步骤710中,该数据服务器依据其原本区域访问控制信息535正常处理客户端计算机500的输出入请求,之后便跳回步骤700中。
[0140] 步骤715中,是数据服务器300下载云端上的全局访问控制信息92至该数据服务器300内。当数据服务器300侦测到云端上与其相关的状态数据不存在时,表示管理者有修改全局访问控制信息92中与该数据服务器300与其相对应的文件夹的访问权限的设定;也就是说,在那个时间点,该数据服务器300内部的区域访问控制信息535已经与云端上的全局访问控制信息92中关于该数据服务器300的权限设定不一致,故该数据服务器300必须下载云端上新的全局访问控制信息92以更新本身的区域访问控制信息535,并以更新后的区域访问控制信息535的设定规则来处理客户端计算机500的输出入请求。
[0141] 步骤720中,是数据服务器300判断新的全局访问控制信息92中与该数据服务器300相关且发生设定改变的文件夹是否被赋予更高的访问权限。若判断结果为「否」,则执行步骤720A对应的一720A子流程。若判断结果为「是」,则执行步骤720B对应的一720B子流程。
该720A子流程是显示于图8A中;该720B子流程是显示于图8B中。
[0142] 依据本发明的一实施例,假设数据服务器300对某一文件夹的访问权限只有「Read Only」及「Read and Write」两种。据此,步骤720中所谓的「修改的文件夹被赋予更高的权限」指的是:数据服务器300比较步骤715中下载的该全局访问控制信息92与本身内部的区域访问控制信息535后,发现该数据服务器300对某一文件夹的访问权限由「Read Only」改为「Read and Write」的情况。依据本发明的一实施例,凡是一数据服务器300对某一文件夹的访问权限由「Read Only」升为「Read and Write」,则必有另一数据服务器300对该文件夹的访问权限由「Read and Write」降为「Read Only」。此时,权限升阶的数据服务器300必须先等待另一权限降级的数据服务器300完成对该文件夹访问权限变更的处理流程;也就是说,权限升阶的数据服务器300必须先等待权限降级的数据服务器300将其较高的权限释放出来,之后,该权限升阶的数据服务器300才能开始执行其本身对该文件夹访问权限变更的处理流程,而获取较高的访问权限。相对地,权限降级的数据服务器300可不须等待其它数据服务器300释放权限,可以直接执行其本身对该文件夹访问权限变更的处理流程,然后根据降级后的新权限处理客户端计算机500的输出入请求(I/O request)。
[0143] 请参考图8A,依据本发明的一实施例,图8A是绘示图8的步骤720A的子流程的流程图。当图8中,步骤720判断「修改的文件夹被赋予更高阶的权限」的结果为「否」时,则进入步骤720A,以执行图8A的子流程。图8A中的子流程开始于步骤725A。
[0144] 步骤725A中,是显示数据服务器300根据所下载的全局访问控制信息92,更新本身的区域访问控制信息535。当流程执行至步骤725A时,表示新的全局访问控制信息92设定中,与该数据服务器300相关的某一文件夹的访问权限被降级,例如:由「Read and Write」降为「Read Only」。因为是权限降级的状况,于本发明的一实施例,该数据服务器300可以不用等待其他的数据服务器300将其较高的权限释放出来,而可以直接执行该数据服务器300本身对该文件夹访问权限变更的处理流程。依据本发明的另一实施例,由于数据服务器300的区域访问控制信息535的设定仅是全局访问控制信息92的一部份,故当下载新的全局访问控制信息92后,也可直接使用该全局访问控制信息92来做为数据服务器300内的区域访问控制信息535,不需要进一步筛选出关于该数据服务器300的设定。
[0145] 步骤730中,是显示数据服务器300中断其与客户端计算机500的联机。此时,数据服务器300对某一文件夹的访问权限是降级的情况,例如:由「Read and Write」降为「Read Only」。依据本发明的一实施例,凡是数据服务器300对某一文件夹的访问权限是降级的情形时,该数据服务器300会中断其与所有客户端计算机500的联机。又,依据本发明另一个实施例,对于与该数据服务器300联机的客户端计算机500中的某些,若其输出入请求与发生访问权限变动的文件夹毫无关系时,则该数据服务器300不需要中断与该些不受影响的客户端计算机500的联机。
[0146] 又,若数据服务器300对某一文件夹的访问权限是降级的情形,表示该数据服务器300对某一文件夹的访问权限原本是较高的访问权限,例如「:Read and Write」。因此,在权限转换的阶段,该数据服务器300可能正在进行某客户端计算机500对该文件夹内某一(或某些)文件的写入作业,或者已暂先前写入作业的写入数据。因该些暂存的写入数据尚未传送到云端上存储,故可以视为一缓存数据(Cache Data),该数据服务器300必须将该缓存数据上传至云端存储。
[0147] 步骤735中,是数据服务器300检查内部是否有缓存数据需先上传至云端。若是,则执行步骤740,若否,则执行步骤760。同前述,因数据服务器300对于文件夹的访问权限是降级的情况,故在权限转换的阶段,数据服务器300内可能存在一尚未传送至云端存储的写入数据(即缓存数据)。数据服务器300在做文件夹的访问权限更新过程中,必须判断内部是否有尚未传送至云端存储的缓存数据。
[0148] 步骤740中,是数据服务器300上传代表该数据服务器300目前在「转换中」的讯息至云端。此步骤的作用主要是让须要等待该数据服务器300完成其访问权限变更流程的其它数据服务器300,可以了解该数据服务器300的权限变更的状态。鉴于该数据服务器300须要上传至云端存储的缓存数据的数据量可能很大、上传至云端上存储可能须花费很多的时间。为避免在可能的冗长上传时间中,其它数据服务器300误判该数据服务器300为死机的情况下,该数据服务器300在上传其缓存数据前,可以先传送一「转换中」的讯息至云端,以提供其它数据服务器300来判读该数据服务器300目前的状态。
[0149] 步骤745中,是数据服务器300上传其内部须与云端同步的缓存数据至云端存储。如前述,该缓存数据的数据量可能很大,故该缓存数据传送至云端存储所花费的时间,视该缓存数据的数据量而定。
[0150] 步骤750中,是数据服务器300判断其缓存数据上传至云端的作业是否完成。若是,则执行步骤755,若否,则回到步骤745,继续执行数据服务器300上传其内部须与云端同步的缓存数据至云端存储的作业。
[0151] 步骤755中,是数据服务器300上传一新的状态数据至云端,并删除云端上代表该数据服务器300正在上传缓存数据的「转换中」讯息;其中,该新的状态数据显示数据服务器300对相关文件夹的新的访问权限。依据本发明的一实施例,当数据服务器300完成其缓存数据的上传后,可以通过删除其位于云端上的「转换中」的讯息来通知其他的数据服务器
300知悉该数据服务器300已经完成上传缓存数据。此外,因此时该数据服务器300已经完成其内部的区域访问控制信息535的更新,故该数据服务器300上传一新的状态数据至云端上,以表示该数据服务器300的区域访问控制信息535已经与云端上的全局访问控制信息92同步。在该步骤755执行完毕之后即结束该720A的子流程。
[0152] 再回到前述步骤735,步骤735中,当其判断的结果为否时,则执行步骤760。
[0153] 步骤760中,是数据服务器300上传一新的状态数据至云端,该新的状态数据代表数据服务器300已经完成对相关文件夹的访问权限变更程序。流程至步骤760表示:数据服务器300没有任何缓存数据须要上传至云端,且该数据服务器300已经完成其内部区域访问控制信息535的更新;故该数据服务器300必须上传一新的状态数据至云端上,以表示该数据服务器300的区域访问控制信息535已经与云端上的全局访问控制信息92同步。在该步骤760执行完毕之后即结束该720A的子流程。
[0154] 请参考图8B,依据本发明的一实施例,图8B是绘示图8的步骤720B的子流程的流程图。当图8中,步骤720判断「修改的文件夹被赋予更高阶的权限」的结果为「是」时,则进入步骤720B,以执行图8B的子流程。图8B中的子流程开始于步骤765。
[0155] 前述图8的步骤720中。当其判断结果为是时,表示数据服务器300判断相关的文件夹有被赋予更高的访问权限,例如:文件夹的访问权限由「Read Only」改为「Read and Write」,此时则执行步骤765。
[0156] 步骤765中,是数据服务器300监控其它相关数据服务器300是否已经上传其新的状态数据至云端;其中,「其它相关数据服务器300」是指与文件夹访问权限改变有关的数据服务器300,在步骤765中尤其是指「应该要将特定文件夹的较高访问权限释放出来的数据服务器300」。如前所述:当数据服务器300对一文件夹的访问权限升阶时,例如:由「Read Only」改为「Read and Write」,该数据服务器300必须先等待其他相关数据服务器300将权限释放出来,之后,该数据服务器300再执行对该特定文件夹的访问权限的变更程序,然后才能开始以较高的访问权限处理客户端计算机500对该特定文件夹的输出入请求(I/O request);其中,其他相关数据服务器300将权限释放出来的做法可以是:完成其对该特定文件夹的访问权限变更程序并上传一新的状态数据至云端上。故步骤765中,数据服务器
300需要监控与文件夹的访问权限改变有关的其他相关数据服务器300是否已经上传其对应于该文件夹的一新的状态数据至云端上,以确认其他相关的数据服务器300已经完成其对该文件夹的访问权限的变更程序。
[0157] 步骤770中,是数据服务器300判断其他相关数据服务器300是否已经上传其与该文件夹相对应的一新的状态数据至云端?若否,则回到步骤765继续等待,若是,则执行步骤775。如步骤765中所述,该数据服务器300是通过检查云端上是否出现其他相关数据服务器
300上传的新状态数据,来确认其他相关数据服务器300是否已经完成其对该文件夹的访问权限的变更程序。
[0158] 步骤775中,是数据服务器300根据所下载的全局访问控制信息92更新本身的区域访问控制信息535。因该数据服务器300此时对于某一文件夹的访问权限是升阶的情况,例如:由「Read Only」升为「Read and Write」,且其他相关数据服务器300已经完成该特定文件夹的访问权限变更程序,故此时该数据服务器300可以开始执行其本身对于该文件夹的访问权限的变更程序。步骤775中,数据服务器300根据步骤715所下载的全局访问控制信息92更新本身的区域访问控制信息535。依据本发明的另一实施例,由于数据服务器300的区域访问控制信息535的设定仅是全局访问控制信息92的一部份,故当下载新的全局访问控制信息92后,也可直接使用该全局访问控制信息92来做为数据服务器300的区域访问控制信息535,不需要进一步筛选出关于该数据服务器300的设定。
[0159] 步骤780中,是数据服务器300上传一新的状态数据至云端;其中,该新的状态数据代表数据服务器300已经完成对该特定文件夹的访问权限变更程序。因该数据服务器300在该全局访问控制信息更新前对于访问权限发生变化的该文件夹的访问权限可能仅有「Read Only」,故该数据服务器300此时内部应该不会存在需上传至云端同步的缓存数据,故此情况下该数据服务器300不用上传任何缓存数据至云端上。又,该数据服务器300已经完成其内部该区域访问控制信息的更新,故该数据服务器300必须上传与该特定文件夹相对应的一新的状态数据至云端上,以表示该数据服务器300的区域访问控制信息535已经与云端上的该全局访问控制信息92同步。步骤780执行完毕,即结束该步骤720B的子流程,同时该数据服务器300执行至此步骤,也已经完成该数据服务器300与其相对应的文件夹访问权限的更新程序。
[0160] 上述步骤720A或是步骤720B的子流程中,一旦数据服务器300的区域访问控制信息535更新完毕后,在任何的步骤(时间点)中,该数据服务器300都可以再接受该客户端计算机500对其的联机,不管该数据服务器300是否曾中断该客户端计算机500的联机。该数据服务器300依据更新后的区域访问控制信息535处理该客户端计算机500的输出入请求。
[0161] 请参考图9、图9A、图9B、图9C,依据本发明的另一实施例,图9、图9A、图9B、图9C整体是绘示管理者在修改该全局访问控制信息92的设定后,各个数据服务器300因应该修改的另一处理程序。与前述的图8、图8A、图8B相较,图9及图9A对应于图8,图9B对应于图8A,图9C对应于图8B。图8、图8A、图8B代表的第一实施例与图9、图9A、图9B、图9C代表的第二实施例,流程内容有许多相似处,第二实施例相较于第一实施例的主要不同处是:可以让全局访问控制信息92中有「一个以上文件夹」同时进行访问权限设定的变更。图9、图9A、图9B、图9C代表的第二实施例可以是由图2中的任一数据服务器300所执行,只要该数据服务器300侦测到其在云端数据存储系统100的相关文件夹设定已经有所变更。
[0162] 图9中的步骤800、步骤805、步骤810、步骤815是各别对应到图8的步骤700、步骤705、步骤710、步骤715,其流程细节请参考前文中关于图8的步骤700、步骤705、步骤710、步骤715的说明,因此在此不再加以赘述。当图9的流程走到步骤818时,由于本实施例可以让多个文件夹同时「各自独立进行」访问权限设定的变更,因此,针对每一发生访问权限设定变化的文件夹,皆有一对应的步骤818所代表的子流程,且该些子流程是以「文件夹各自独立处理」的方式进行。如图9中绘示有多个「针对Folder 1」、「针对Folder 2」…「. 针对Folder N」的子流程818各自独立进行,其中该Folder1、Folder 2….Folder N表示多个访问权限发生变化的文件夹代号。每一Folder子流程818的内容详如图9A所示。图9A中的步骤
820、步骤820A、步骤820B是各自对应图8的步骤720、步骤720A、步骤720B,其流程细节请参考前文中关于图8的步骤720、步骤720A、步骤720B的说明,因此在此不再加以赘述。总地说起来,每一子流程818中更针对其对应文件夹的访问权限变化,在步骤820判断:其对应文件夹是否被赋予更高的权限?若判断结果为「否」,则执行步骤820A对应的一820A子流程。若判断结果为「是」,则执行步骤820B对应的一820B子流程。该820A子流程是显示于图9B中;该
820B子流程是显示于图9C中。
[0163] 图9B中该820A子流程与图8A中的720A子流程相当接近,图9B中的步骤825A、步骤835、步骤840、步骤845、步骤850、步骤855、步骤860是各自对应到图8A的步骤725A、步骤
735、步骤740、步骤745、步骤750、步骤755、步骤760,其流程细节请参考前文中相关说明,因此在此不再加以赘述。图9B与图8A相较,因为图9B代表的第二实施例允许复数个不同文件夹同时发生访问权限设定改变,且对复数个不同文件夹的设定改变是以「各自独立处理」的方式来进行,故与该些发生访问权限变化的文件夹所联机的客户端计算机500可以是不同的。所以图9B中的步骤830,数据服务器300可以各别地中断发生访问权限设定改变的文件夹与其客户端计算机500的联机。也就是说,步骤830中,对于数据服务器300中断客户端计算机500联机所指的客户端计算机对象,可以只针对与其中一特定文件夹联机的客户端计算机500。同理,图9C中该820B子流程及图8B中的720B子流程相当接近,图9C中的步骤865、步骤870、步骤875、步骤880是各自对应到图8B的步骤765、步骤770、步骤775、步骤780,其流程细节请参考前文中相关说明,因此在此不再加以赘述。
[0164] 请参考图10、图10A、图10B、图10C、图10D,依据本发明的另一实施例,图10、图10A、图10B、图10C、图10D整体是绘示管理者在修改该全局访问控制信息92的设定后,各个数据服务器300因应该修改的另一处理程序。与前述的图9、图9A、图9B、图9C相较,图10、图10A、图10B、图10C、图10D代表的第三实施例,同样的是可以让全局访问控制信息92中有「一个以上文件夹」同时进行访问权限设定的变更。但是不同地,图10、图10A、图10B、图10C、图10D代表的第三实施例的处理程序并不是以「文件夹各自独立处理」的方式来处理每一产生访问权限变化的文件夹;相反地,是一起考虑所有产生访问权限变化的文件夹并一起处理。图10、图10A、图10B、图10C、图10D代表的第三实施例可以是由图2中的任一数据服务器300所执行,只要该数据服务器300侦测到其在云端数据存储系统100的相关文件夹设定已经有所变更。
[0165] 图10中的步骤900、步骤905、步骤910、步骤915是各别对应到图8的步骤700、步骤705、步骤710、步骤715,其流程细节请参考前文中关于图8的步骤700、步骤705、步骤710、步骤715的说明,因此在此不再加以赘述。当图10的流程走到步骤920时,由于本实施例是一起处理多个文件夹的访问权限设定的变更,因此数据服务器300须一起综合考虑新的全局访问控制信息92中与该数据服务器300相关且发生设定改变「多个文件夹」中的「任一文件夹」是否被赋予更高的访问权限。若判断结果为「否」,则执行步骤920A对应的一920A子流程。若判断结果为「是」,则执行步骤920B对应的一920B子流程。该920A子流程是显示于图10A中;
该920B子流程是显示于图10B中。
[0166] 图10A中的步骤925A、步骤930A、步骤935A、步骤940A、步骤945A、步骤950A、步骤955A、步骤960A是各自对应到图8A的步骤725A、步骤730、步骤735、步骤740、步骤745、步骤
750、步骤755、步骤760,其流程细节请参考前文中相关说明,因此在此不再加以赘述。图10A绘示的920A子流程是针对图10的步骤920中「判断『多个文件夹』中的『任何文件夹』是否被赋予更高的访问权限」的结果为「否」时的处理流程。当处理流程由该步骤920A进入图10A时,表示该些访问权限有被更改的「多个文件夹」其访问权限都是由「较高的权限」降为「较低的权限」。也就是说,进入920A子流程表示新的全局访问控制信息92设定中,与该数据服务器300相关的多个文件夹的权限皆被降级,例如:由「Read and Write」降为「Read Only」。
因此,须要判断该数据服务器300中是否还有未同步上传至云端的缓存数据。此外,步骤
930A中有关「数据服务器300中断与客户端计算机500的联机」的处理方式也是与图8的步骤
730一致:数据服务器300会中断其与所有客户端计算机500的联机,无论该些客户端计算机
500是否与发生访问权限更改的多个文件夹有关连。
[0167] 请参考图10B,依据本发明的一实施例,图10B是绘示图10的920B的子流程的流程图。图10B中的920B子流程是针对该图10的步骤920中「判断『多个文件夹』中的『任何文件夹』是否被赋予更高的访问权限」的结果为「是」时的处理流程。当处理流程由步骤920B进入图10B时,表示该些访问权限有被更改的「多个文件夹」中「至少有一个文件夹」其访问权限是由「较低的权限」升为「较高的权限」。也就是说,与该数据服务器300相关且有权限变更的多个文件夹中,至少有一个文件夹的权限被升阶,例如:由「Read Only」升为「Read and Write」;同时,也有可能有其它文件夹的权限被降级,例如:由「Read and Write」降为「Read Only」。在此情况下,数据服务器300须要同时考虑到上述二种情况(文件夹权限升阶与降级)并加以处理。于本发明的一实施例中,数据服务器300是将以上二种情况以「分开独立」的方式同时处理。图10B中的步骤925B、步骤930B是各自对应到图8A的步骤725A、步骤730,其流程细节请参考前文中相关说明,因此在此不再加以赘述。当图10B中的步骤930B执行完后,接着二步骤940C、940D是以「分开独立」的方式,分别对以上二种情况(文件夹权限升阶与降级)来处理。其中,步骤940C所对应的940C子流程,其是用以处理文件夹降级的部分;而步骤940D所对应的940D子流程,其是用以处理文件夹升阶的部分。请注意,对某一数据服务器300而言,当流程由图10的步骤920B进入图10B时,表示与该数据服务器300相关且访问权限有被更改的「多个文件夹」中「至少有一个文件夹」其访问权限是由「较低的权限」升为「较高的权限」。如此意味,可能有一或数个文件夹的访问权限升阶,其它降级;或是第二种情况,所有与该数据服务器300相关且访问权限有被更改的多个文件夹皆是升阶。若是以上第二种情况(皆升阶),则对该数据服务器300而言,不须进入步骤940C并执行其对应的图10C。
[0168] 请同时参考图10C与图10D,图10C中的步骤990C、步骤995C、步骤970C、步骤975C、步骤980C、步骤985C是各自对应到图8A的步骤735、步骤760、步骤740、步骤745、步骤750、步骤755,其流程细节请参考前文中相关说明,因此在此不再加以赘述。同理,图10D中的步骤970D、步骤975D、步骤995D是各自对应到图8B的步骤765、步骤770、步骤780,其流程细节请参考前文中相关说明,因此在此不再加以赘述。
[0169] 请参考图11,依据本发明的另一实施例,图11是绘示管理者变更全局访问控制信息92内容的另一流程图。对于该全局访问控制信息92的修改,管理者可以通过图2中的数据服务器A 300、数据服务器B 300、数据服务器C300其中任何一台数据服务器来修改位于云存储单元200中的该全局访问控制信息92。本实施例中,该全局访问控制信息92仍存储于云端上,但与图7中的实施例不相同的地方是:云端上并不存储与各个数据服务器300相对应的文件夹的状态数据。也就是说,于本实施例中,各个数据服务器300并不通过判定云端上与其相关的状态数据是否存在而得知相对应的文件夹的权限是否有变更,也不须通过上传「转换中」的讯息至云端而通知其他数据服务器300自己的状态,而是采用通过图2中的网络350或是网络380直接沟通讯息。图11中,该流程开始于步骤1000。
[0170] 步骤1000中,是该管理者登入云端。其细节请参考图7中步骤600的说明。
[0171] 步骤1010中,是该管理程序确认该管理者身份。其细节请参考图7中步骤610的说明。
[0172] 步骤1020中,是该管理程序通过密码的正确性来判断该管理者的身份是否正确,若是,则执行步骤1030,若否,则回到步骤1010。其细节请参考图7中步骤620的说明。
[0173] 步骤1030中,是该数据服务器300通过该管理程序读取并显示云端上的全局访问控制信息的内容。其细节请参考图7中步骤630的说明。
[0174] 步骤1040中,是该管理程序判断该全局访问控制信息92的内容是否被更改,若否,则结束该全局访问控制信息92的设定流程。若是,则继续执行步骤1050的判断。
[0175] 步骤1050中,是该管理程序检查并确认该全局访问控制信息92的设定变更后是否有冲突?若设定变更后有冲突时,则执行步骤1060,否则,执行步骤1080。其细节请参考图7中步骤650的说明。
[0176] 步骤1060中,是该管理程序显示设置冲突的警示。其细节请参考图7中步骤660的说明。
[0177] 步骤1070中,是该管理者重新设定有冲突的部分。其细节请参考图7中步骤670的说明。
[0178] 步骤1080中,是该管理程序将更新后的的全局访问控制信息92存储于云端上。其细节请参考图7中步骤680的说明。
[0179] 步骤1090中,是该管理程序通知受影响的数据服务器300该全局访问控制信息92已经被改变。本实施例中,因数据服务器300间是通过网络直接沟通且该管理程序于其中一数据服务器300上执行,故该管理程序通过网络直接通知因文件夹的访问权限改变而受影响的数据服务器300云端上的全局访问控制信息92已经被改变。受影响的数据服务器300接收到以上讯息后,必须至云端上下载新的全局访问控制信息92,并据此进行其内部区域访问控制信息535的更新流程。依据本发明的一实施例,该管理程序通知受影响的数据服务器300后,会再收到该受影响的数据服务器300的回复讯息,以确认该受影响的数据服务器300知悉该全局访问控制信息92已经被改变。
[0180] 步骤1095中,是该管理程序持续监控受影响的数据服务器300,直到所有受影响的数据服务器300传回其区域访问控制信息535已完成更新的讯息。本实施例中,该管理程序对于受影响的数据服务器300是否已经完成其区域访问控制信息535的更新的流程,并不通过侦测「受影响的数据服务器300是否已经上传相关文件夹的状态数据至云端上」来确认受影响的数据服务器300已完成区域访问控制信息535的更新程序,而是通过该等数据服务器300直接回复该管理程序来达成。步骤1095执行完毕后即结束该全局访问控制信息92内容的修改程序。依据本发明的另一实施例,在该管理程序通过其中一数据服务器300通知全局访问控制信息92已经被改变后,即结束该全局访问控制信息92内容的修改流程,该管理程序不会监控受影响的数据服务器300。
[0181] 请参考图12、图12A、图12B,依据本发明的一实施例,图12、图12A、图12B整体是绘示管理者在修改全局访问控制信息92的设定后,各个数据服务器300因应该修改的处理程序。图12、图12A、图12B整体所绘示的实施例是由图2中的数据服务器300所执行,用以因应全局访问控制信息92的设定发生变动后的处理程序。此处理程序可能是由图2中的任一数据服务器300所执行,只要该数据服务器300侦测到其在云端数据存储系统100的相关文件夹设定已经有所变更。图12、图12A、图12B的处理流程并不受限于只适用管理者用以变更全局访问控制信息92的设定时所通过的一特定的数据服务器300。图12、图12A、图12B整体所绘示的流程,仅针对全局访问控制信息92的其中一个文件夹发生访问权限设定改变来说明。图12、图12A、图12B整体绘示的流程代表:当一文件夹的访问权限改变后,与此改变有关的每一数据服务器300皆须执行此一处理程序。该处理流程开始于步骤1100。
[0182] 步骤1100中,是数据服务器300收到管理程序的全局访问控制信息92更新通知,因此数据服务器300知道与其相关的文件夹的访问权限已经被改变,须要进行其内部的区域访问控制信息535的更新程序。由于该全局访问控制信息92内所记录的数据服务器300与文件夹的访问权限的对应关系可能相当多个,但本实施例中是以每次单一个文件夹的设定发生变化举例说明与该文件夹有关的各数据服务器300的处理程序。数据服务器300在收到管理程序的全局访问控制信息92更新通知后,可以回复管理程序其已经收到通知,意味接受通知的数据服务器300已经知悉全局访问控制信息92已经发生变化。若与某一数据服务器300相关的文件夹的访问权限皆没有变化时,意味该数据服务器300不需要更新其内部的区域访问控制信息535。此时,管理程序可以不对该数据服务器300发送全局访问控制信息92更新通知,而该数据服务器300则继续依据原本的区域访问控制信息535处理来自客户端计算机500的输出入请求。
[0183] 步骤1110中,是数据服务器300下载云端上的全局访问控制信息92至该数据服务器300内。当该数据服务器300收到全局访问控制信息的更新通知时,表示管理者有修改全局访问控制信息92中与该数据服务器300相关的文件夹的访问权限(Access Authority)的设定。也就是说,在那个时间点,该数据服务器300内的区域访问控制信息535已经与新的全局访问控制信息92中关于该数据服务器300的部分不一致,故该数据服务器300必须下载云端上新的全局访问控制信息92。于本发明的一实施例,该数据服务器300会先更新内部的区域访问控制信息535,并以更新后的区域访问控制信息535记载的设定处理来自客户端计算机500的输出入请求。于本发明的另一实施例,该数据服务器300直接以新的全局访问控制信息92内与该数据服务器300有关的规则来处理客户端计算机500的输出入请求。
[0184] 步骤1120中,是数据服务器300判断新的全局访问控制信息92中与该数据服务器300相关且发生设定改变的文件夹是否被赋予更高的访问权限。若判断结果为「否」,则执行步骤1120A对应的一1120A子流程。若判断结果为「是」,则执行步骤1120B对应的一1120B子流程。该1120A子流程是显示于图12A中;该1120B子流程是显示于图12B中。
[0185] 依据本发明的一实施例,假设数据服务器300对某一文件夹的访问权限只有「Read Only」及「Read and Write」两种。据此,步骤1020中所谓的「修改的文件夹被赋予更高的权限」指的是:数据服务器300比较步骤1110中下载的该全局访问控制信息92与本身内部的区域访问控制信息535后,发现该数据服务器300对某一文件夹的访问权限由「Read Only」改为「Read and Write」的情况。依据本发明的一实施例,凡是一数据服务器300对某一文件夹的访问权限由「Read Only」升为「Read and Write」,则必有另一数据服务器300对该文件夹的访问权限由「Read and Write」降为「Read Only」。此时,权限升阶的数据服务器300必须先等待另一权限降级的数据服务器300完成对该文件夹访问权限变更的处理流程;也就是说,权限升阶的数据服务器300必须先等待权限降级的数据服务器300将其较高的权限释放出来,并且,权限降级的数据服务器300通过网络通知权限升阶的数据服务器300其已经完成对该文件夹访问权限变更流程,此后权限升阶的数据服务器300才能开始执行其本身对该文件夹访问权限变更的处理流程,而获取较高的访问权限。相对地,权限降级的数据服务器300可不须等待其它数据服务器300释放权限,可以直接执行该数据服务器300本身对该文件夹访问权限变更的处理流程。最后该数据服务器300也通过网络通知其它数据服务器300已经完成对该文件夹访问权限变更流程。
[0186] 请参考图12A,依据本发明的一实施例,图12A是绘示图12的步骤1120A的子流程的流程图。当图12中,步骤1120判断「修改的文件夹被赋予更高阶的权限」的结果为「否」时,则进入步骤1120A,以执行图12A中的子流程。图12A中的子流程开始于步骤1130。
[0187] 步骤1130中,是数据服务器300根据所下载的全局访问控制信息92,更新本身的区域访问控制信息535。当流程执行至步骤1130时,表示新的全局访问控制信息92设定中,与该数据服务器300相关的某一文件夹的访问权限被降级,例如:由「Read and Write」降为「Read Only」。因为是权限降级的状况,于本发明的一实施例,该数据服务器300可以不用等待其他的数据服务器300将其较高的权限释放出来,而可以直接执行该数据服务器300本身对该文件夹访问权限变更的处理流程。依据本发明的另一实施例,由于数据服务器300的区域访问控制信息535的设定仅是全局访问控制信息92的一部份,故当下载新的全局访问控制信息92后,也可直接使用该全局访问控制信息92来做为数据服务器300内的区域访问控制信息535,不需要进一步筛选出关于该数据服务器300的设定。
[0188] 步骤1140中,是数据服务器300中断其与客户端计算机500的联机。此时,数据服务器300对某一文件夹的访问权限是降级的情况,例如:由「Read and Write」降为「Read Only」。依据本发明的一实施例,凡是数据服务器300对某一文件夹的访问权限是降级的情形时,该数据服务器300会中断该其与所有客户端计算机500的联机。又,依据本发明另一个实施例,对于与该数据服务器300联机的客户端计算机500中的某些,若其输出入请求与发生访问权限变动的文件夹毫无关系时,则该数据服务器300不需要中断与该些不受影响的客户端计算机500的联机。
[0189] 又,若数据服务器300对某一文件夹的访问权限是降级的情形,表示该数据服务器300对某一文件夹的访问权限原本是较高的访问权限,例如「:Read and Write」。因此,在权限转换的阶段,该数据服务器300内可能正在进行某客户端计算机500对该文件夹内某一(或某些)文件的写入作业,或者已暂存先前写入作业的写入数据。因该些暂存的写入数据尚未传送到云端上存储,故可以视为一缓存数据,该数据服务器300必须将该缓存数据上传至云端存储。
[0190] 步骤1150中,是数据服务器300检查内部是否有缓存数据需先上传至云端。若是,则执行步骤1160,若否,则执行步骤1195。同前述,因数据服务器300对于文件夹的访问权限是降级的情况,故在权限转换的阶段,数据服务器300内可能存在一尚未传送至云端存储的写入数据(即缓存数据)。数据服务器300在做文件夹的访问权限的更新过程中,必须判断是否有尚未传送至云端存储的缓存数据。
[0191] 步骤1160中,是数据服务器300通过网络传送「转换中」的讯息通知其他相关的数据服务器。此步骤的作用让须要等待该数据服务器300完成其访问权限变更流程的其它数据服务器300,可以了解该数据服务器300的权限变更的状态。鉴于该数据服务器300须要上传至云端存储的缓存数据的数据量可能很大、上传至云端上存储可能须花费很多的时间。为避免在可能的冗长上传时间中,其它数据服务器300误判该数据服务器300为死机的情况下,该数据服务器300在上传其缓存数据前,可以先通过网络传送一「转换中」的讯息至该其他相关的数据服务器300,以使得其他数据服务器300知悉该数据服务器300目前的状态。
[0192] 步骤1170中,是数据服务器300上传其内部须与云端同步的缓存数据至云端存储。如前述,该缓存数据的数据量可能很大,故该缓存数据传送至云端存储所花费的时间,视该缓存数据的数据量而定。
[0193] 步骤1180中,是数据服务器300判断其缓存数据上传至云端的作业是否完成。若是,则继续执行步骤1190,若否,则回到步骤1170继续执行数据服务器300上传其内部须与云端同步的缓存数据至云端存储的作业。
[0194] 步骤1190中,是数据服务器300通过网络传送「已完成更新」的讯息通知其他相关的数据服务器300与该管理程序知悉。依据本发明的一实施例,当该数据服务器300完成其缓存数据的上传后,可以视为其已经完成本身的区域访问控制信息535的更新程序。该数据服务器300可以通过网络让该其他相关的数据服务器300及该管理程序知悉此情况,故该数据服务器300通过网络传送「已完成更新」的讯息通知其他相关的数据服务器300与该管理程序。在步骤1190执行完毕后,即结束该步骤1120A的子流程,同时该数据服务器300执行至此步骤,也已经完成该数据服务器300与其相对应的文件夹访问权限的更新程序。
[0195] 再回到前述步骤1150,步骤1150中,当其判断的结果为否时,则执行步骤1195。
[0196] 步骤1195中,是数据服务器300通过网络传送「已完成更新」的讯息通知其他相关的数据服务器300与该管理程序知悉。当流程进行到步骤1195时表示:该数据服务器300没有任何缓存数据必须上传至云端,且该数据服务器300已经完成其内部区域访问控制信息535的更新。因此,该数据服务器300通过网络传送「已完成更新」的讯息通知其他相关的数据服务器300与该管理程序知悉,以表示该数据服务器300的区域访问控制信息535已经与云端上的全局访问控制信息92同步。在步骤1195执行完毕之后,即结束1120A的子流程,此时表示:数据服务器300已经完成本身与相对应的文件夹访问权限的更新程序。
[0197] 请参考图12B,依据本发明的一实施例,图12B是绘示图12的步骤1120B的子流程的流程图。当图12中,步骤1120判断「修改的文件夹被赋予更高阶的权限」的结果为「是」时,则进入步骤1120B,则执行图12B的子流程。图12B中的子流程开始于步骤1200。
[0198] 前述图12的步骤1120中,当其判断结果为「是」时,表示数据服务器300判断相关的文件夹有被赋予更高的访问权限,例如:文件夹的访问权限由「Read Only」改为「Read and Write」,此时则执行步骤1120B的子流程。
[0199] 步骤1200中,是数据服务器300监控其它相关数据服务器300是否已经通过网络传回「已完成更新」的讯息;其中,「其它相关数据服务器300」是指与文件夹访问权限改变有关的数据服务器300,在步骤1200中尤其是指「应该要将特定文件夹的较高访问权限释放出来的数据服务器300」。如前所述:当数据服务器300对一文件夹的访问权限升阶时,例如:由「Read Only」改为「Read and Write」,该数据服务器300必须先等待其他相关数据服务器300将权限释放出来,之后,该数据服务器300再执行对该特定文件夹的访问权限的变更程序,然后才能开始以较高的访问权限处理客户端计算机500对该特定文件夹的输出入请求(I/O request);其中,其他相关数据服务器300将权限释放出来的做法可以是:完成其对该特定文件夹的访问权限变更程序并发出「已完成更新」的讯息至其他相关数据服务器300。故步骤1200中,数据服务器300需要监控与文件夹的访问权限改变有关的其他相关数据服务器300是否传回该「已完成更新」的讯息,以确认其他相关的数据服务器300已经完成其对该文件夹的访问权限的变更程序。
[0200] 步骤1210中,是数据服务器300判断其他相关的数据服务器300是否已经传回该「已完成更新」的讯息。若否,则回到步骤1200继续等待,若是,则执行步骤1220。
[0201] 步骤1220中,是数据服务器300根据所下载的全局访问控制信息92更新本身的区域访问控制信息535。因该数据服务器300此时对于某一文件夹的访问权限是升阶的情况,例如:由「Read Only」升为「Read and Write」,其他相关数据服务器300已经完成该特定文件夹的访问权限变更程序,故此时该数据服务器300可以开始执行其本身对于该文件夹的访问权限的变更程序。步骤1220中,该数据服务器300根据步骤1110所下载的全局访问控制信息92更新本身的区域访问控制信息535。依据本发明的另一实施例,由于数据服务器300的区域访问控制信息535的设定仅是全局访问控制信息92的一部份,故当下载新的全局访问控制信息92后,也可直接使用该全局访问控制信息92来做为数据服务器300内的区域访问控制信息535,不需要进一步筛选出关于该数据服务器300的设定。
[0202] 步骤1230中,是数据服务器300通过网络传送「已完成更新」的讯息至该管理程序。因该数据服务器300在该全局访问控制信息更新前对于访问权限发生变化的某一文件夹的访问权限可能仅有「Read Only」,故该数据服务器300此时内部应该不会存在需要上传的缓存数据,故此情况下该数据服务器300不用上传缓存数据至云端上。又,该数据服务器300已经完成其内部该新的区域访问控制信息535的更新,故该数据服务器300必须通过网络传送「已完成更新」的讯息至该管理程序,以表示该数据服务器300的区域访问控制信息535已经与云端上的该全局访问控制信息92同步。步骤1230执行完毕,即结束步骤1120B的子流程,同时该数据服务器300执行至此步骤,也已经完成该数据服务器300与其相对应的文件夹访问权限的更新程序。
[0203] 请参考图13,图13是数据服务器300对于客户端计算机500的输出入请求的处理流程。依据本发明的一实施例,客户端计算机500通过网络与提供其服务的数据服务器300联机,客户端计算机500会对提供服务的数据服务器300发出输出入请求(I/O request)。在处理流程中,数据服务器300通过其内部的区域访问控制信息535来判断是否可以执行客户端计算机500的输出入请求。若判断的结果为否,则数据服务器300拒绝客户端计算机500的输出入请求;若判断的结果为是,则数据服务器300再进一步检查客户端计算机500所要求的数据是否在其内部的内存内。若检查的结果为是,则直接执行该输出入请求;若检查的结果为否,数据服务器300则依据该输出入请求至云端上读取相对应的目标文件、或是将该输出入请求的写入数据传送至云端存储。图13中的流程开始于步骤1300。
[0204] 步骤1300中,是客户端计算机500对数据服务器300发出输出入请求。图2中。每一数据服务器300都会有客户端计算机500与其相连接,并接受客户端计算机500的输出入请求来访问云端的数据。
[0205] 步骤1310中,是数据服务器300比对该输出入请求所欲访问的目标文件夹(Target Folder)与该数据服务器的区域访问控制信息535内的设定信息。其中该区域访问控制信息535的设定内容为判断该数据服务器300是否可以执行该输出入请求的依据。该数据服务器
300会依据该区域访问控制信息535的设定内容,判断要拒绝该输出入请求或是执行该输出入请求。依据本发明的一实施例,由于该区域访问控制信息535的设定为该数据服务器300对相关文件夹的访问权限,故只要(1)该输出入请求中的目标文件夹没有记录于区域访问控制信息535中或不是属于记录中的母文件夹的子文件夹,或是(2)该输出入请求超出该数据服务器300对该文件夹的访问权限时,该数据服务器300会拒绝该输出入请求。由于区域访问控制信息535内记录的文件夹下可能包含多层的子文件夹,故当输出入请求中的目标文件夹是属于记录中的母文件夹之内、或该输出入请求中的目标文件夹与记录中的文件夹相同时,该数据服务器300才会继续判断该输出入请求是否超出该文件夹的访问权限。以图
6B为例,假设与该数据服务器A 300联机的客户端计算机500对该数据服务器A 300发出「读取\Taipei\A\C\US MKT文件夹内的一List.dat」的一输出入请求时,该数据服务器A 300会先判断该List.dat的路径是否包含于该\Taipei\A\C\US MKT之内或等于该\Taipei\A\C\US MKT路径,而该\Taipei\A\C\US MKT即为上述说明中所指的目标文件夹。
[0206] 步骤1320中,是数据服务器300判断其内部的区域访问控制信息535的设定中是否有包含该输出入请求中的目标文件夹,若是,则执行步骤1340,否则执行步骤1330。依据本发明的一实施例,当客户端计算机500的输出入请求中的目标文件夹「包含于」或是「等于」该区域访问控制信息535的设定中某一文件夹时,该数据服务器300可再执行下一判断步骤。
[0207] 步骤1340中,是数据服务器300判断该输出入请求是否超出其区域访问控制信息535中该数据服务器300对该文件夹的权限设定,即判断该输出入请求是否超出该区域访问控制信息535中该数据服务器300对该文件夹的访问权限。例如,当该输出入请求为一写入请求,而该数据服务器300对某一文件夹的访问权限却只有「Read Only」时,则该输出入请求明显地超出该区域访问控制信息535中该数据服务器300对该文件夹的访问权限。步骤
1340的判断结果若是,则执行步骤1330,若否,则执行步骤1350。
[0208] 步骤1350中,是该数据服务器300判断该输出入请求相对应的数据是否存在于数据服务器内,若是,则执行步骤1355,若否,则执行步骤1360。
[0209] 步骤1355中,是该数据服务器300直接访问该输出入请求所要求的数据。因此时该输出入请求所需的数据已经存在于该数据服务器300的高速缓存内,故该数据服务器300不必至云端上来访问所需的目标文件,所以该数据服务器直接执行该输出入请求。步骤1355执行完毕后,即结束图13中的该数据服务器300对于该客户端计算机500的输出入请求的处理流程。
[0210] 步骤1360中,是数据服务器300通过云应用编程接口140来直接访问该输出入请求所要求位于云端上的目标文件。无论该输出入请求是读取请求或是写入请求,该数据服务器300都是通过该云应用编程接口140直接访问位于云端上的目标文件,该数据服务器300并不再通过任何的中央数据管理服务器(Central Data Management Server)来访问位于云端上的目标文件。本发明的实施例中,由于云端上或是该网络上都没有任何的中央数据管理服务器,故各个数据服务器300判断是否可以服务来自客户端计算机500的输出入请求时,都是根据一共同的规范(即全局访问控制信息92)。若是数据服务器300的判断结果是可以执行客户端计算机500的输出入请求,则通过该云应用编程接口140直接访问位于云端上相对应的目标文件。步骤1360执行完毕后,即结束图13中的该数据服务器300对于该客户端计算机500的输出入请求的处理流程。
[0211] 上述的步骤中,当步骤1320的判断为否时、步骤1340的判断为是时,该数据服务器300会跳到步骤1330执行。该步骤1330说明如下。该输出入请求中的目标文件夹没有记录于区域访问控制信息535中或不是属于记录中的母文件夹的子文件夹。
[0212] 步骤1330中,是数据服务器300拒绝客户端计算机500的输出入请求。如前所述,当数据服务器300判断:(1)其内部的区域访问控制信息535的记录中没有纪录该目标文件夹或是该目标文件夹不属于记录中任一母文件夹;(2)该输出入请求超出区域访问控制信息535中文件夹的访问权限设定,若有以上2种情况的一发生时,该数据服务器300会拒绝该客户端计算机500的输出入请求。如此,可达到本发明中数据服务器300对于客户端计算机500的数据访问管理。上述说明中,数据服务器300第(1)至(2)的判断在实作上是以图4B中的访问控制强制单元530来实行,图4B中,区域访问控制信息535包含于该访问控制强制单元530之内。步骤1330执行完后,即结束图13中的该数据服务器300对于该客户端计算机500的输出入请求的处理流程。
[0213] 上述图7至图12B的所有实施例中,由于云端上及网络上并未设置任何的中央数据管理服务器30来处理各个数据服务器300的输出入请求(I/O request),故各个数据服务器300在处理来自客户端计算机500的输出入请求时,不会通过任何的中央数据管理服务器(Central Data Management Server)来访问云端的用户目标文件,而是根据一共同的规范(即全局访问控制信息92)直接访问该云端上的用户目标文件。本案发明中减少了数据服务器300须先询问中央数据管理服务器30、而后数据服务器300才能决定是否可以执行来自客户端计算机500的输出入请求的时间,如此,可以增加该云端数据存储系统10的整体效能。
[0214] 此外,上述图7至图12B的所有实施例中,各个数据服务器300每次要访问云端上的用户目标文件时,各个数据服务器300间并不会事先互相传递讯息来询问彼此是否正在对同一用户目标文件进行访问作业,故也不会使该云端数据存储系统10中的整体效能降低。
[0215] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。