一种允许同步访问云的方法及计算设备与流程

文档序号:12143524阅读:171来源:国知局
一种允许同步访问云的方法及计算设备与流程

本申请要求于2014年8月26提交的申请号为62/041,941的美国临时申请的权益,其全部内容通过引用并入至本文中。

技术领域

本发明大体涉及云存储网络中文件共享和同步以及,更具体地,涉及用于文件共享和同步的多级系统。



背景技术:

随着诸如用户存储的数字媒体的数据量的增长,在延长时间内可靠地存储数字媒体的需求也在增长,因此数据存储的需求已迅速升级。存储数字媒体的存储系统的范围从本体存储介质(如,CD和备份磁带)和网络存储系统(如,NAS或NAT)到基于云的存储系统。

诸如NAS和NAT的网络存储系统通过标准文件共享协议提供对连接在局域网中的用户的文件的访问(例如,通用互联网文件系统(CIFS)或网络文件系统(NFS))。

基于云的存储系统,也称为云存储服务(CSS),通过可经由互联网获得的网页服务接口提供海量存储。存储基础设施包括通过广域网(WAN)连接多个客户端的地理分布式数据中心的分布式阵列。

图1示出了设计为提供云存储服务的存储系统100。系统100包括通过广域网(WAN)130与多个客户端120-1至120-N(以下统称为客户端120或仅为了简化目的仅称为客户端120)连接的地理分布式数据中心110-1至110-M(以下统称为数据中心110或仅为了简化目的仅称为数据中心110)的分布式阵列。

数据中心110通常包括服务器以及面向客户端120的海量存储便利的云存储服务。这些服务能够提供各种应用包括,例如,数据备份和存储、数据迁移、数据共享、数据收集等等。云存储服务可以从世界上任何地方访问。最后,每一个客户端120实施设计为至少与数据中心110同步数据的网页服务接口。由云存储服务启用的应用程序通常并不清楚服务和底层数据同步操作的细节。商用云存储服务的缺点是此类服务不能实施标准文件共享协议(例如,通用互联网文件系统(CIFS)或网络文件系统(NFS))。此外,访问存储在云存储中的文件通常比访问存储在本地存储设备中的文件慢。

尽管图1中没有示出,存储系统100可以包括多个缓存服务器以加速数据存储及检索同时云代理允许访问远程存储在数据中心110中的文件。云代理可以是硬件组件,软件组件,或者两者组合,其连接至或是相关联的特定工作站,服务器或其他计算设备。例如,工作站代理可以是安装在个人电脑上的软件,如将该工作站与CSS和/或云集成存储设备集成。作为另一个示例,移动设备代理可以是安装在移动设备,例如智能手机上的应用,用于将移动设备与云存储系统集成。

云存储系统能够用于共享用户间的内容。例如,在企业中,数据经常能够在不同的部门,分支机构和个人用户之间共享。每一个这样能够保存或共享文件的实体通常会被分配,如不同的权限规则。此外,每一个用户可以使用不同类型的设备(节点),其中每一个设备可以是,但不限于,个人电脑,智能手机,存储应用,文件服务器,等等。因而,存储在云存储(数据中心110)中的文件夹能够被多个不同的用户从不同的地理位置访问。此外,用户能够从不同的位置和/或与用户关联的不同设备访问云存储。

云存储系统的基本要求是同步本地设备与远程存储之间,同一用户不同的设备之间,以及共享同样内容的用户之间的数据。另一个基本要求是提供足够的全部数据用以存储和检索来自访问系统的任意设备和/或地理位置的数据。



技术实现要素:

本发明的几个示例性实施例的概述如下。提供概述是为了方便读者提供对此类实施例的基本理解并且不完全限定所公开的广度。该概述不是所有预期实施例的广泛概述,并且既不旨在标识所有实施例的关键或重要元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化的形式呈现一个或多个实施例的一些概念,作为稍后呈现的更详细描述的序言。为了方便起见,术语“一些实施例”在这里可以用于指本发明的单个实施例或多个实施例。

公开的实施例包括一种允许同步访问云存储系统(CSS)的计算设备。该计算设备包括:处理单元;存储系统,其中该存储系统配置为维护对象,每一个对象具有一状态,其中每一状态是:同步状态,和存根状态中的任一种;以及内存器,该内存器包含指令,当由处理单元执行指令时,该指令将计算设备配置为:接收来自客户端的请求以访问维护在存储系统中的对象;一旦接收到请求将所请求对象的状态从存根状态改变为同步状态;以及同步具有与CSS同步状态的所请求的对象的数据。

公开的实施例还包括一种允许同步访问云存储系统(CSS)的方法。该方法包括:接收来自客户端的请求以访问维护在存储系统中的对象,其中该存储系统配置为维护对象,每一个对象具有一状态,其中每一状态是:同步状态,和存根状态中的任一种;一旦接收到请求将所请求对象的状态从存根状态改变为同步状态;以及同步具有与CSS同步状态的所请求的对象的数据。

附图说明

在说明书结尾处的权利要求书中特别指出并清楚地要求保护本文所公开的主题。从下面结合附图的详细描述中,本发明的前述和其它目的,特征和优点将是显而易见的。

图1示出了存储网络系统的示意图;

图2示出了根据实施例配置的多级文件系统的示意图;

图3示出了根据实施例的多级云存储文件系统的示意图;

图4示出了根据实施例的包括多余一个云存储系统的多级云存储网络的流程图;

图5示出了根据实施例的存根文件跟踪和同步的示例性和非限制性的流程图;

图6示出了根据实施例的文件区域的同步的示例性和非限制性的流程图;

图7示出了根据实施例的元数据按需同步;

图8示出了根据实施例的在文件协作网络中操作的集中式数据流管理系统的示例性和非限制性框图;

图9示出了具有树形拓扑的文件协作网络的示意图;

图10示出了具有森林拓扑的文件协作网络的示意图;

图11示出了具有图形拓扑的协作网络的示意图;

图12示出了使用文件协作网络中的模板来建立数据流的方法的流程图;

图13示出了根据实施例的用于模板编辑器的用户界面的屏幕截图;

图14示出了根据实施例的允许控制同步关系数据流的设置的用户界面的屏幕截图;

图15示出了根据实施例的用来确定模板分配协议的用户界面的屏幕截图;

图16示出了所公开的实施例可以适用于系统的示意图;

图17示出了根据实施例的使用数据流模板创建和使用数据流的方法的示例性和非限制性的流程图。

具体实施方式

重点注意,本文公开的实施例仅是本文的创新教导的许多有利用途的示例。一般来说,在本申请的说明书中做出的陈述不一定限制任何各种要求保护的发明。此外,一些实施例可以应用于一些发明特征而不是其他特征。一般来说,除非另有说明,单数元件可以是复数,反之亦然,而不失一般性。在附图中,类似的标记通过若干视图指代相同的部分。

图2示出了根据实施例的多级文件共享和存储网络200的示例性和非限制性示意图。在这个实施例中,云存储系统(CSS)210与一个或多个云存储网关(CSG)220-1和220-2(在下文中单独地称为CSG 220并且仅为了简化目的统称为CSG 220)通信地连接。

CSG 220可以是硬件组件,软件组件,或者两者组合。CSG 220可以向端点230提供缓存,WAN加速,存储加速等。端点230可以是,但不限于,执行软件代理的客户端设备,其中该软件代理能够远程访问存储在CSS 210或支持云存储的设备中的文件,例如使用转让给共同受让人的待审专利申请13/205,238中描述的方法,其通过引用将全部内容并入本文中。在进一步的实施例中,客户端可以安装在端点230上。该代理允许端点与CSS 210和/或CSG 220中的一个一同访问并同步数据。例如,工作站代理可以是安装在允许工作站与CSS 210集成的个人电脑上的软件。作为另一个示例,移动设备代理可以是安装在端点230,如智能手机上的应用,用于集成端点230与CSS 210,另一个客户端,和/或CSG 220。

端点230和CSG 220中的每一个可以包括但不限于存储器、处理单元以及内存器的计算设备。该内存器包含指令,当由处理单元执行指令时,该指令将计算设备配置为执行本文所描述的方法。

一些CSG 220可以停留在相对彼此非常接近的地理位置,网络拓扑接入延迟,带宽标准,成本标准,管理配置处等等。在一个实施例中,多个CSG 220可以是可信任网络的一部分,从而允许端点230访问可信任网络中的每一个CSG 220。在另一个实施例中,一个或多个CSG,例如CSG 220-2,能够提供共享的,大容量块缓存服务以增加能够从区域缓存本地满足块读取并且不需要访问CSS 210的可能性。这些共享块容量是有利的因为CSS 210经常位于遥远的数据中心并且该技术可以减少延迟,减少WAN链接上的负载,以及增加云存储服务的总体响应性和吞吐量。需要注意的是,在某些实施例中,CSG 220也能够配置为本地缓存(例如,层1-缓存)。

端点230择一通过直接连接或通过一个或多个CSG 220链接CSS 210。需要注意的是,为简单起见,图2中仅仅只是示出了一个端点230而不限于各种公开的实施例。如果端点230同时通过直接连接和更多的CSG 220中的一个与CSS 210连接,在尝试从CSS 210检索或在CSS 210中存储数据时,可以提示端点230提供对优选路线的选择,其中优选路线要么是直接连接要么是通过CSG连接。如果端点230的用户选择通过CSG 220连接,可以确定通过CSG 220的数据流的最佳路线。

CSG 220可以在输入方向(客户端至CSS),输出方向(CSS至客户端),或以同时两者的方向,为数据流提供数据同步服务。数据流可以是,但不限于,将CSS 210和计算设备之间的文件同步(“同步关系”),在CSS 210中缓存文件(“缓存访问关系”),将文件备份(“备份关系”)至CSS 210,以及远程访问(“远程访问关系”)CSS 210或计算设备中的文件。例如,数据流可以同步从端点处的CSS获取的文件。在一个实施例中,可以通过数据流模板设置数据流。数据流模板通常在如下文关于图8中进一步描述的集中式系统中维护。

在同步关系数据流中,所选内容(例如,文件夹或文件)在数据流链路的一个方向上或在数据流链路的两个方向上同步。进一步在待审的转让给共同受让人的申请号2010/0161759,题为“用于集成网络附加存储于云存储服务的存储设备及方法”的美国专利申请(以下均用‘759申请来表示)中讨论同步关系数据流,其通过引用将全部内容并入本文。

在备份访问关系数据流中,在一个实体上的文件或文件夹的内容被连续地或周期性地复制在另一个文件或文件夹上。在这些数据流中,更新都是单向的。在远程访问关系数据流(也称为直接访问数据流)中,直接按需从对等节点检索已读取数据(作为非限制性示例,对等节点可以是分层文件协作网络的相同级别内的端点)。已写入数据可以直接存储在对等节点。

在缓存访问数据流中,已读取数据可以直接从对等节点检索并在本地缓存。存储已写入数据至对等节点。这些存储可以异步地执行,并且可以采用优化的增量编码协议或WAN加速执行。在上述‘759申请中进一步讨论缓存访问数据流。

除了前述的关系类型,这些关系可以包括各种可配置属性。这些属性可以包括但不限于,将被同步或缓存为所述关系的一部分的内容,从同步或缓存中排出的内容(例如,临时文件可能不同步),设置了可以是永久的或基于特定的时间表的服务质量(QoS)(例如,带宽限制,区分服务标记等等),涉及通过可以用于在接收内容后控制该内容的使用的关系而获取的内容的数字版权管理(DRM)指令(例如,控制用户查看,复制,打印和/或共享接收到的内容的能力),以及锁定策略(例如,在访问后手动或自动锁定文件或文件夹)。支持锁定策略是可取的,特别是在大量共享文件夹中,其中自动锁定可以是有利的。

在各种实施例中,可以为两个实体之间的单个文件或文件夹限定多个数据流的关系。在一些实施例中,这些关系可以由具有管理特权的用户和/或由单个实体的用户来限定。

在一个实施例中,可以动态地改变给定文件或文件夹的关系。当改变关系时,根据关系开始或结束的类型可以采取不同的反应。作为一个非限制性示例,当从缓存关系改变为同步关系或备份关系时,缓存数据的实体可以将已缓存的副本用于文件或文件夹的备份或同步副本,并且可以只请求文件或文件夹中尚未从匹配实体缓存的部分。作为另一个非限制性实施例,如果该关系从同步访问或备份访问改变为缓存访问,那么该实体只需要更改同步或备份副本的标签以将其标记为已缓存。在这种情况下,基于缓存管理策略可以丢弃数据。

在一个实施例中,端点230或CSG 220可以配置为定期同步本地频繁访问的文件使得能够以本地速度立刻访问这些文件的最新版本,同时较少访问的文件可以本地存储且,而不是,可以在读取或写入请求时从云获取(这种直接读取和写入请求仍然可以由块级缓存加速)。随着使用模式的改变,可以自动地将特定的文件或文件夹从缓存转换为直接访问,反之亦然。持久跟踪关于哪些文件是存根的信息,并且同步这样的存根文件。使用云文件同步协议保持同步的文件及时更新。在下文中参考图5进一步详细描述存根追踪和同步。

为了支持非常大的文件,该同步可以在子文件粒度上进行使得,例如,频繁访问的文件区域可以定期同步,而其他文件区域仅在需要时获取。可以持续跟踪要同步的每个文件的区域。

在一个优选的实施例中,同步和缓存文件全都是由虚拟文件系统驱动程序(在用户及或内核级运行)将其公开为统一的虚拟文件系统,从而为用户提供所有文件的无缝读/写,不管他们是否可在本地(同步)或缓存。在一个实施例中,虚拟文件系统中的这些文件可以设置在多级命名空间中。在转让给共同受让人的美国专利申请号为14/709,902的申请公开了多级命名空间的示例性实施,其通过引用将其包括的所有有用信息并入本文。

在一个实施例中,所有文件的元数据被同步至端点230或CSG 220。系统在端点230本地存储元数据从而能够快速满足目标列表请求,甚至于没有互联网连接。在一个可能的实施中,文件作为存根文件存储在本地文件系统中,只包含文件的同步区域(如果有的话)。在这个实施中,当从用户接收目录列表请求时,该列表由端点230的底层文件系统由简单地通过请求直接提供。当端点230不与CSS连接时,端点230仍然可以提供完全访问以浏览整个全局目录结构。然而,尝试访问没有本地同步的存根文件将会导致客户端接收错误结构。文件的部分同步在下文中参考图6进一步描述。

在另一个实施例中,整个元数据不会同步到每个端点。相反,每一个端点仅仅同步云存储目录结构的选择性部分。这些可以是基于使用模式的动态的,其中频繁访问的文件夹被自动同步,而近期未被访问的文件夹仅在需要时被同步。有时当由于连接问题端点不与CSS连接的时候,其仍然可以提供访问以浏览目录结构。尝试列出没有被本地同步的文件的内容将会导致客户端接收错误的结果或空列表。下文参考图7进一步描述云存储目录结构部分的选择性同步。

在另一个实施例中,可以自动生成缓存关系。在这样的实施例中,如果这样的关系将通过例如减少访问延迟和/或因特网流量来促进整个系统性能,元件可以为特定文件或文件夹建立缓存关系。这种自动生成关系可以不要求两个实体之间的任何“握手”,并且可以通过实体来建立和/或取消。当一个实体向另一个实体指示其希望参与通信时,两个实体之间发生“握手”。

根据各种实施例,当端点230尝试在CSS 210存储或获取数据时,其可以通过任何CSG 220和/或通过直接连接到CSS 210来这样做。路由是从端点230到CSS 210的路径。路由可以是从端点到CSS的直接连接。路由还可以包括通过一个或多个CSG 220到CSS 210的连接。在这个实施例中,确定使用哪一个路由通常是基于哪一个CSG 220提供最佳连接。可以基于以下标准中的一个或多个来考虑最佳连接:带宽,响应时间,数据流类型等等。在下文参考图4会进一步讨论最佳连接的确定。

根据图2中所示的实施例的非限制性示例,操作移动设备(例如,端点230)的用户尝试将文件保存在CSS 210中。分析可用路由,可以确定的是CSG 220-1和CSG 220-2都表现出较慢的响应时间并且,因此,保存数据的最佳路由是通过端点230和CSS 210之间的直接连接。因此,在这个示例中,端点可以通过直接路由将数据保存至CSS 210。

根据图2中所示的实施例的另一个非限制性示例,操作工作站(例如,端点230)的用户尝试从CSS 210检索文件。分析可用路由,端点230和CSS 210之间的直接连接被确定为不可用。此外,CSG 220-1具有比CSG 220-2更高的可用带宽和/或更低的延迟。因此,确定最佳路由为通过CSG 220-1的数据流。结果,用户使用端点230经由CSG 220-1从CSS 210检索数据。

图3示出了根据实施例的多级文件共享和具有多个云存储系统的存储网络的示例性和非限制性示意图300。在该实施例中,云存储系统(CSS)310-1和310-2都是通过330-3(在下文中单独地称为CSS 330并且仅为了简化目的而统称为CSS 330)和一个或多个云存储网关(CSG)320通信地连接到一个或多个端点330-1。端点330可以是,但不限于,客户端设备,其中客户端设备执行能够远程访问存储在CSS 319或启用云存储设备中的文件的软件代理,例如使用待审的申请号为13/205,238,转让给共同受让人的专利中描述的方法,其通过引用将全部内容并入本文。端点330通常与如上定义的代理一起安装。在各种实施例中,可以实现多余2个的CSS 310。每一个端点330和CSG 320可以是,但不限于,包括处理器和内存器的计算设备,其中内存器包含指令,当由处理器执行指令时,配置计算设备执行上文所述方法。

在一个实施例中,基于尝试在CSS 310中存储或检索数据的探测,端点330配置为选择传递数据所通过的优选的路由。优选的路由是端点330和CSS 310之间的数据流的路径,并且可以是直接的或基于同步的(间接的)。直接的路由是CSS 310和端点330之间的直接通信连接。基于同步的路由是间接连接其中数据在数据流期间通过另一个CSS310和/或至少一个CSG 320。端点330可以基于,但不限于,用户选择,预定义的用户选择等来选择优选路由。如果没有直接路由,可以将基于同步的路由确定为优选的路由。

CSG 320可以向端点330提供缓存、广域网(WAN)加速和/或存储加速。每一个CSG 320进一步与一个或多个端点330相连接。在一个实施例中,一部分或全部端点339可以直接与CSS相连接(例如,CSS 310-1或CSS 310-2)。

根据图3中所示的实施例作为一个非限制性示例,客户端尝试通过端点330-1将数据保存至CSS 310-2。在这个示例中,端点330-1与CSS 310-2没有任何直接连接。因此,端点330-1和CSS 310-2之间的任何数据流必须通过CSS 310-1。从而,可以确定基于同步的路由为优选的路由。可以确定最佳路由为包括直接从端点330-1至CSS 310-1的数据流的路由而不是包括从端点330-1至CSG 320的数据流的路由。因此,在这个示例中,用户可以使用端点330-1经由CSS 310-1将数据保存至CSS 310-2。

图4示出了根据实施例的用于在多级文件共享网络中存储数据的方法的示例性和非限制性流程图400。在S410,通过默认路由建立初始连接。初始连接通常建立到一个或多个默认连接实体,例如一个或多个CSG和/或代理。或者,初始连接可以是如上所述的一个直接路由。默认路由可以通过出厂默认设置或用户手动输入设置。每一个默认路由可以配置为连接所允许的实体的列表。允许的实体是默认连接实体可以建立连接的实体。

作为一个非限制性示例,客户端可以允许用户输入用于其默认路由的CSG的URL地址。当建立初始连接时,连接端点至为客户端提供其他实体列表的默认CSG,其中端点可以通过URL连接至其他实体。这些其他实体可以包括但不限于,其他CSG和/或CSS。在一个实施例中,如果端点失去与其默认连接点的连接,则端点可以连接至可用的备选路由。在进一步的实施例中,如果没有连接点可用,则端点可以直接连接至CSS。

在S420,选择用于连接的最佳路由。路由通常包括可以是直接或间接的链路。直接链路是端点和CSS之间的直接连接。路由还可以包括但不限于,本地连接点,CSS,包括在另一个CSS中的CSG,代理等等。该选择在给定时间是全局的,使得与每个维护关系相关的所有交互与另一单个实体一起执行。或者,该选择可以执行单独用于每个关系,从而选择不同的最佳路由用于不同的文件和/或文件夹。此选择可以是基于不同的文件和/或文件夹确定的数据流。在一个实施例中,可以保留用于单个关系的多个可选路由。在另一个实施例中,多个CSS可以一起操作以向实体和客户端提供优化的服务。在这样的一个实施例中,一个CSS可以缓存用于其他CSS的数据和/或用作位于附近的端点和CSG的网关(例如,物理上或拓扑上接近)。

确定选择哪条路由作为连接的最佳路由可以基于各种标准包括但不限于,相对拓扑距离(例如,不管元件是否位于同一个LAN,两个实体之间的路由数量等等),为特定文件或文件夹与特定实体维护的关系类型,访问指定元件的可用性,访问每一个元件的延迟,包括在允许元件的列表中或从中排出,以及DNS查询解析。

在一个实施例中,如果在请求完成之前失去连接,可以用其他可用实体建立新的连接。在进一步的实施例中,用于新连接的最佳路由的选择采用如上文关于S430的描述的相同的标准。

在S440,确定所选择的最佳路由的另一端上的实体是否具有充足的存储容量来满足存储数据的请求。如果是,则继续执行S460,否则,继续执行S450。在S450,建立远程访问到另一个云存储系统的一个或多个连接点。在S460,根据所选择的最佳路由和/或在任何远程访问的元件中存储数据。

在一个实施例中,可以包括附加的CSG作为不同云存储系统的一部分。在这样的实施例中,CSS或CSG可以作为所请求关系的代理。在各种实施例中,请求端点或CSG可以不知道代理并且可以提供服务质量与本地服务相似的服务。在进一步的实施例中,一旦本地或其他最近的存储空间可用可以取消代理。

在另一个实施例中,CSS和CGS可以使用其他CSS和连接点作为缓存服务。例如,当另一个CSS或连接点接近(物理或拓扑),或当另一个CSS或连接点显示更少的延迟时,这就可能发生。在这样的实施例中,需要访问特定文件或文件夹的CSS或CSG可以通过其他CSS或连接之一的缓存获取访问而不是通过所选的最佳连接访问其他CSS。

图5示出了根据实施例的存根文件跟踪和同步的示例性和非限制性的流程图500。在S510,接收从文件读取字节范围的请求。在一个实施例中,这样的请求可以来自端点(例如端点330)。在S520,检查是否所请求的文件是存根文件。如果是的话,继续执行S530,否则,继续执行S550。在S530,存根文件的文件同步开始。在S540,执行停止,直到所请求的字节范围可以用于传递。在S550,返回所请求的字节范围。

图6示出了根据实施例的文件区域的同步的示例性和非限制性的流程图600。在S610,接收从文件读取字节范围的请求。在S620,检查是否所请求的文件在存根文件中可用。如果是,则继续执行S630,否则,执行停止。在一个实施例中,如果所请求的字节范围在存根文件中不可用,则整个文件可以被同步。在S630,包括字节范围的文件中区域的同步开始。在S640,执行停止,直到所请求的字节范围可用。在S650,返回所请求的字节范围。

图7示出了根据实施例的元数据按需同步的示例性和非限制性的流程图700。在S710,确定是否同步目标元数据。如果是,则继续执行S720,否则,执行停止。在S720,同步目标元数据。在S730,返回本地文件系统中的目录列表。

图8示出了根据实施例的在文件协作网络中操作的集中式数据流管理系统800的示例性和非限制性框图。系统800包括配置为维护连接到网络(没有示出网络)的每一个端点(没有示出端点)的元数据的端点数据库810,数据流模板数据库820,以及模板分配单元830。数据库820配置为保持数据流模板825与端点相关联。管理系统800还包括用户覆盖量控制器840和端点连接器850。

在一个实施例中,模板分配单元830配置为评估与每个端点相关的标准以确定数据流模板或应用于每个端点的模板。在进一步的实施例中,评估标准可以是,但不限于,端点的元数据,通过端点的客户预定义的模板,由管理员确定的模板,安全设置,网络中可用的应用或缓存服务等等。端点的元数据可以包括,例如,端点的类型(工作站、服务、应用、移动设备等等),操作系统类型和版本,所有者组,端点主机名等等。

在一个实施例中,数据流模板能够由用户确定(或通过系统管理员)并且自动分配给多个端点。下面参照图8进一步讨论确定模板分配策略。在一个实施例中,模板可以手动地分配至一些或全部端点,而不考虑标准。

在一个实施例中,可以根据模板应当被分配给端点的顺序来对数据流模板进行优先级排序。这样的数据可以嵌入智能变量。在一个实施例中,模板还可以包含与诸如备份设置,软件更新等的附加设备设置的配置有关的信息。智能变量是在模板中定义的变量,但是由端点根据其本地环境来评估,使得它们在与不同端点交互时可以具有不同的值。

端点采用他们的本地应用数值来代替智能变量以根据相应的数据流模板来实现端点的配置。如果端点被设置在层级中,本地应用数值可以取决于与本地端点和/或层级中其他端点相关的信息。此外,智能变量可以被全局地定义使得所有端点连接器能够评估所有的智能变量,或可以定义为范围有限使得只有某些端点连接器能够评估任何或全部的智能变量。

作为智能变量置换的非限制性实施例,命名为“{我的文档}”的智能变量可以被设备所有者在他或她的端点设备上的“文档”文件夹的正确的文件扩展名置换。接着可以使用正确的数值而不用考虑用户的操作系统或配置。

模板分配单元830配置为将所选的模板和他们指定的端点连接器提供至端点连接器850。端点连接器850将所选的模板和用户覆盖量控制器840的用户覆盖策略通过端点连接器815应用至每一个端点。在一个实施例中,模板分配单元830可以直接而不是通过端点连接器850选择模板并应用至每一个端点。通过端点使用用户覆盖策略840以确定端点的所有者是否以及如何能够覆盖所选的模板。如果允许用户覆盖所选的模板,那么特定数据流可以由该所有者在本地添加或更改。在一个实施例中,管理系统800通信地连接至管理员控制台860,其允许用户覆盖或确定错误的模板,和/或控制模板选择。

图9示出了具有树形拓扑的文件协作网络900的示例图。在网络900中,单个云存储系统(CSS)910通过连接920与一个或多个端点930通信地连接。在这个网络中,端点930被分层地设置。因此,一些端点可以仅通过与其他端点的连接与CSS 910交互。在这样的树形协作网络中,数据流均被限制至一个数据流路径。例如,如果端点930仅通过另一个端点930被连接至CSS 910,被发送至或从CSS 910检索的数据必须流经另一端点930。相反地,具有森林和图形拓扑的文件协作网络,在下文中参考附图10和11进一步分别地讨论。该文件协作网络可以具有对于任何给定端点可用的多于一个的潜在数据流路径。

图10示出了具有森林拓扑的文件协作网络的网络1000的示意图。在网络1000中,云存储系统(CSS)1010-1和1010-2通过连接1020通信地连接至各个端点1030。此外,在这个森林类型协作网络拓扑中,CSS 1010-1和CSS 1010-2通过互联链路1040通信地连接。互联链路1040可以是允许往来于每一个CSS 1010的数据的双向信任关系。或者,互联链路1040可以是一种使得仅仅一个CSS 1010与其他CSS相互通信的方式。

CSS 1010-1和CSS 1010-2之间的链接允许每一个云充当另一个云的云存储路由。结果,连接至一个云存储设备1010的端点1030可以建立到另一个链接CSS 1010的数据流,或直接(未显示)或间接地通过连接1020,其他端点1030,和/或通过CSS 1010。

数据流还可以被应用至诸如通过,如,缓存,选择性同步或直接访问这样的入口之间的连接。进一步地,每一个CSS 1010可以实施对互联云存储服务的用户能够访问哪些内容的控制。借助由管理系统(如,管理系统800(图8))选定的相应数据流模板,每一个端点配置有正确的数据流。

图11示出了根据实施例的具有图形拓扑的协作网络1100的示例图。在网络1100中,像在森林网络拓扑中,每一个CSS 1110通过连接1120可以或直接或间接地被连接至多个端点1130。在该实施例中,端点1130可以进一步通过连接1120互联使得一些或所有端点1130可以拥有到其相应的CSS 1110的多于一个的直接和/或间接连接。作为示例,如图所示,各种端点可以,既直接地通过端点1130和CSS 1110-1之间的连接1120,又间接地通过两个端点1130之间的数据流1120,与CSS 1110-1互联。

在一个实施例中,这种相互作用可以用于允许动态流选择从而根据流动效率为信息传输选择最优数据流。可以基于诸如连接1120的可用性和延迟之类的因素确定流动效率。选择最优数据流通常会导致优化的性能和降低的能量消耗。通过数据流模板的设置来执行数据流的动态选择。

图12示出了使用文件协作网络中的模板来建立数据流的方法的非限制性和示例性流程图1200。在一个实施例中,通过数据流管理系统,如系统800执行该方法。

在S1210,接收端点被初始化的指示。例如当安装新的设置、软件、固件和/或硬件时,端点被初始化。这种初始化可能会修改与端点相关联的元数据。在S1220,从端点检索端点的元数据,分析并与模板的选择标准进行比较以选择每个分析的端点的相关模板。元数据或新端点的元数据中的任何变化都被保存在端点数据库中。在一个实施例中,该分析由如上文关于图1进一步讨论的模板分配单元(例如,模板分配单元130)执行。正如上文所述,端点的元数据可以是,但不限于,端点类型,操作系统类型及版本,所有者组,端点主机名等等。

在S1230,确定是否用户(如,系统管理员)可以覆盖模板并且手动创建数据流。该确定可以基于由用户覆盖量控制器(如,用户覆盖量控制器840)实施的用于覆盖策略。在S1240,响应于元数据分析或覆盖,选择适当的数据流模板并发送至端点。在下文参考图7进一步讨论模板的后续利用和数据流的创建。

作为非限制性示例,尝试将数据保存至CSS的第一端点可以属于森林类型分层网络拓扑的协作网络拓扑。在这样的示例中,两个或更多云存储服务将会通信地连接,从而或直接或间接地通过网络中的任意端点设备建立对任意链接的云存储服务的访问,但受管理系统实施的访问的任何限制。此类拓扑进一步包括端点设备之间的连接。在一个示例性实施例中,模板可以由管理系统选择并提供至端点。

第一端点(如,运行WIN7操作系统的个人电脑)通过到第二端点(如,云存储网关)的连接间接地被连接至CSS,其中第二端点通过连接(如,互联网连接)被连接至CSS。在该示例中,第一端点还可以通过到第三端点(如,另一个云存储网关)的连接间接地被连接至CSS,其中第三端点通过连接(如,互联网连接)直接地被连接至CSS。分析第一端点的元数据确定选择哪一个模板。在该示例中,特定模板与WINDOWS操作系统相关联。从而,一旦该端点采用WIN7操作系统,则选择该模板。

进一步地,在该示例中,在用户覆盖策略中设置以确定用户是否可以覆盖所选模板的条件是用户必须是管理员。确定用户不是管理员,因此将这个决定的结果,连同用户覆盖策略和所选的模板,一起提供至端点。

图13示出了根据实施例的用于模板编辑器的用户界面的屏幕截图1300。在该实施例中,用户界面包括与端点设备同步的文件夹1310的列表。用户可以点击添加按钮1320以将文件夹添加至同步内容的列表。

图14示出了根据实施例的允许控制同步关系数据流的设置用户界面的屏幕截图1400。在该实施例中,用户可以选择两个选项1410之一:将本地文件夹与云驱动文件夹同步,或将本地文件夹与另一个本地文件夹同步。如果用户选择将该文件夹同步至另一个本地文件夹,那么他或她将在文件扩展框1420中提供该另一个文件夹的文件扩展名。在各种实施例中,用户可以通过注意排出框1430中这些文件夹来选择将一个或多个存根文件夹从同步中排出。

图15示出了根据实施例的用来限定模板分配协议的用户界面的屏幕截图1500。在该实施例中,建立确定是否模板将会被适当地应用至端点的各种条件。条件管理控件1510允许用户添加新的条件或选择要修改的现有条件。通过选择一个或多个参数类型并定义相关性的条件来定义每个条件的相关性。在图15所示的实施例中,已经选择出了两个参数类型1520:端点设备的所有者,以及端点设备的操作系统。每个参数类型1520与条件语言1530相关联。条件语言确定端点设备和比较参数1540之间所需的关联。如果条件语言1530是真的,则为该端点选择在模板列表1550中记录的模板。在该实施例中,应用多个条件语言以确定一个或多个相关模板。在进一步的实施例中,如果选择了多个模板,或者可以应用所有已选模板,或者可以基于,例如预定义条件,做出决定。在各种实施例中,如果所有的条件语言都是假的,则通过,如默认复选框1560使用默认模板。

作为非限制性示例,在该实施例中,条件“等于(equal)”应用于参数类型“所有者(owner)”意味着所有者名称必须与所选择的模板“测试(beta)”的比较参数“示例”相匹配。同样地,根据第二条件,如果操作系统名称以开头,将会选择模板“TEMP-WIN7”。从而,具有WIN7的端点设备将有资格,并且将会为该端点设备选择模板“eyal”。或者,如果用户并不具有名称“示例(example)”并且使用如Mac OSX操作系统来操作终端用户设备,由于用户不符合与模板相关的任何条件语言,将会根据该实施例选择默认模板“beta”。

图16示出了其中可以应用于所公开的实施例的系统1600的示例性和非限制性示意图。系统1600包括多个通过1610-N的端点1610-1和一个或多个连接至局域网(LAN)1630的网络关联存储设备1620,其可以是无线或有线网络。设备1620通过网络1650被连接至云存储服务(CSS)1640。CSS 1640包括多个促进设备1620和存储设备1642(如,磁盘驱动器和/或SAN/NAS设备)之间的连接的云连接器1641,诸如EMC Atmos或OpenStack的本地对象存储系统(未示出),以及到公共云存储提供商1643(例如,亚马逊网络服务,IBM SmartCloud等)的连接。

设备1620是与云存储服务相集成的启用云的存储设备。在待审的专利申请12/641,559中公开了该设备的示例,该专利申请被转让给共同受让人,并在此通过引用将全部内容并入文中。设备1620还是CSS 1640的端点。

端点1610可以是执行软件代理的端点,该软件代理能够远程访问存储在CSS 1640或启用云的存储设备1620中的文件,例如使用转让给共同受让人的待审专利申请13/205,238中描述的方法,其在此通过引用将全部内容并入文中。云存储中的文件夹能够由客户端的许多不同用户访问。

在一个实施例中,集中式数据流管理系统1644被并入CSS 1640中。在另一个实施例中,集中式数据流管理系统1644被集成在一个或多个云连接器1641中。

图17示出了根据实施例的使用数据流模板创建和使用数据流的方法的示例性和非限制性的流程图1700。在S1710,从管理系统(如,管理系统1644)接收数据流模板。在S1720,检查用户是否满足覆盖所接收的模板的标准。如果是,则继续执行S1730,否则,继续执行S1740。在一个实施例中,该检查可以基于管理系统做出的决定来进行。

在S1730,一旦确定用户可以覆盖所选模板,则提示用户进行手动数据流输入。在一个实施例中,被允许基于用户覆盖策略覆盖模板的用户仍然可以选择使用所接收的模板。在另一个实施例中,用户可以在决定是否手动输入数据流之前查看模板。

在S1740,在应用模板或手动数据流条目后,通过在所有相关端点设备中的每个可应用的模板或条目中定义的端点之间的连接创建数据流。在S1750,任何与已创建的数据流相关联的智能变量都被适当地由与每个端点设备相关的本地可应用的值代替。在S1760,通过已建立的数据流保存或检索所请求的数据。

作为非限制性示例,可以连同用户覆盖策略和将数据保存至CSS的请求一起提供第一端点的元数据相应的模板。一旦确定用户不可以覆盖所提供的模板,则可以根据模板创建数据流。任何智能变量可以被相关的本地变量所代替,并且端点通过所建立的数据流将数据保存在CSS中。

本文公开的各种实施例可以实施为硬件,固件,软件或其任意组合。此外,软件优选地实施为在程序存储单元上有形地实现的应用程序或由部件组成的计算机可读介质,或某些设备和/或某些设备的组合。应用程序可以被上传至包括任何合适的架构的机器,并由其执行。优选地,该机器可以在具有诸如一个或多个中央处理单元(“CPU”),内存器,和输入/输出接口的硬件的计算机平台上实现。计算机平台还可以包括操作系统和微指令代码。本文所描述的各种过程和功能可以是微指令代码的一部分或者是应用程序的一部分,或者是两者结合,其可以由CPU执行,而不管是否这样的计算机或处理器被明确示出。此外,各种其它外围单元可以连接至计算机平台,例如附加数据存储单元和打印单元。而且,非暂时性计算机可读介质是除了暂时传播信号之外的任何计算机可读介质。

本文所述的所有示例和条件语言旨在用于教导目的,以帮助读者理解本发明的原理和发明人为促进本领域而贡献的概念,并且将被解释为不限于这些具体叙述的示例和条件。此外,本文中记载本发明的原理、方面和实施例以及其具体示例的所有陈述旨在包括其结构和功能性的等同物。另外,这样的等同物包括当前已知的等同物以及将来开发的等同物,即,开发的执行相同功能的任何元件,而不管结构如何。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1