CN104380261B - 本地支持的基于云端的存储 - Google Patents
本地支持的基于云端的存储 Download PDFInfo
- Publication number
- CN104380261B CN104380261B CN201380032454.0A CN201380032454A CN104380261B CN 104380261 B CN104380261 B CN 104380261B CN 201380032454 A CN201380032454 A CN 201380032454A CN 104380261 B CN104380261 B CN 104380261B
- Authority
- CN
- China
- Prior art keywords
- data item
- client device
- user
- storage equipment
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
很多云计算系统提供的一种受欢迎的服务是基于云端的存储。为了增强这个服务,可通过使用本地存储设备来扩展基于云端的存储。本地存储设备(诸如支持网络的外部硬盘驱动器)可经由用户的互联网连接而可供使用。本地存储设备于是可被用于透明地存储用户的内容。即,用户仍然可将其设备备份到云端,但是在一些情况下,内容不是驻留在基于云端的存储中,而是其可驻留在本地存储设备上而用户不需要附加的动作。当用户请求内容时,内容可从本地存储设备检索并被返回给进行请求的客户端设备,而客户端设备不知道内容被存储在哪里。
Description
相关申请的交叉引用
本专利申请要求提交于2012年5月16日的标题为“LOCALLY BACKED CLOUD-BASEDSTORAGE”的美国专利申请序列号13/473,539的优先权,该美国专利申请据此以引用方式全文并入本文。
背景技术
1.技术领域
本公开涉及云计算,更具体地涉及扩展基于云端的存储。
2.简介
很多云计算系统提供的一种受欢迎的服务是基于云端的存储。在很多情况下,组织机构以及个人使用基于云端的存储解决方案,因为它们提供了便利的数据备份选项。例如,很多基于云端的存储解决方案对于用户只要求最少的管理。即,用户连接到该服务,而云计算系统处理文件管理。事实上,在一些情况下,用户需要进行的唯一交互是安装云系统所提供的软件。另外,用户选择基于云端的存储解决方案,因为它们提供了从任何地方对重要数据的容易的访问。例如,用户可将文件从其家里的台式计算机传送到基于云端的存储装置,然后以后在工作时或在旅行时,用户可从另一计算设备访问该文件。
但是,基于云端的存储的便利性常常伴随有一定价格。例如,为每个用户分配的存储空间量可以是基于价格的(例如为2GB存储空间支付一定月费)、基于使用的(例如,每月在基于云端的存储装置和用户的设备之间可传送诸如1GB数据)、或者甚至受到最大限量的限制(例如封顶10GB)。另外,与本地存储的数据相比,对存储在基于云端的存储装置中的数据进行访问具有更高的延迟,即使该数据被存储在用户本地网络上的支持网络的硬盘驱动器上也是如此。
发明内容
本公开的附加特征和优点将在随后的描述中进行阐述,并且部分地将从该描述显而易见,或者可以通过实践本文所公开的原理而获知。本公开的特征和优点可借助于所附权利要求中特别指出的器械和组合来实现并获得。本公开的这些和其他特征将通过以下描述和所附权利要求变得更加充分地明显,或者可以通过本文所阐述的原理的实践而获知。
本申请所公开的技术通过集成外部网络存储设备(诸如个人网络存储设备)来增强基于云端的存储。外部网络存储设备可以是经由本地网络连接到云计算系统的任何支持网络的存储设备,而不是作为云计算系统一部分的存储设备。即,独立于云计算系统的外部网络存储设备。一种用于增强基于云端的存储的方法包括在云存储系统接收来自第一客户端设备的存储请求。存储请求可指定要存储在与用户账户相关联的基于云端的存储中的数据项。响应于存储请求,该方法可获取用户账户详情,用户账户详情可包括与用户账户相关联的被授权的外部网络存储设备标识符和数据存储位置。
该方法可使数据项被存储在外部网络存储设备标识符所标识的该外部网络存储设备上。在一些配置中,该方法响应于满足预定义的标准而使数据项被存储在外部网络存储设备上。例如,预定义的标准可包括确定在基于云端的存储设备上的空间不足、将数据项存储在外部网络存储设备上更高效、存储在云存储装置中将超过为用户账户授权的空间、和/或存储请求将外部网络存储设备指定为存储位置。当将数据项存储在外部网络存储设备上时,该方法可更新用户账户详情以将外部网络存储设备反映为用于该数据项的存储位置。
在一些实施例中,一种方法可包括在云存储系统处接收来自客户端设备的检索请求。检索请求可指定数据项。响应于检索请求,该方法可获取用户账户详情。用户账户详情可指定数据项的存储位置。响应于从用户账户详情识别该数据项被存储在外部网络存储设备上,该方法可从该外部网络存储设备检索该数据项。在检索该数据项之后,该方法可将该数据项发送到客户端设备。
附图说明
为了描述可获得本公开的上述和其他优点及特征的方式,将通过参考附图中示出的具体实施例来呈现以上简述的原理的更为具体的描述。理解这些附图仅示出了本公开的示例性实施例,并且因此不被视为是对本公开范围的限制,将通过使用附图以另外的特异性和细节来描述和解释本文的原理,其中:
图1示出了云计算系统中的设备的一种示例性配置;
图2示出了一种示例性的云计算资源系统;
图3示出了利用增强型的基于云端的存储来存储数据项的一个示例性请求;
图4示出了利用增强型的基于云端的存储来检索数据项的一个示例性请求;
图5示出了具有应用程序资源文件的一种示例性应用程序;
图6示出了具有应用程序资源文件和应用程序资源文件占位符的一种示例性应用程序;
图7示出了具有资源文件和资源文件占位符的一种示例性操作系统;
图8示出了使用应用程序资源文件的应用程序的一种示例性执行;
图9示出了一种示例性的数据项集合;
图10示出了一种示例性的集合形成交换;
图11示出了将数据项分配到集合的一种示例性分配;
图12示出了用于利用增强型的基于云端的存储来存储数据项的一种示例性方法实施例;
图13示出了用于利用增强型的基于云端的存储来检索数据项的一种示例性方法实施例;
图14示出了用于与应用程序资源文件占位符一起安装应用程序的一种示例性方法实施例;
图15示出了用于获取应用程序资源文件的一种示例性方法实施例;
图16示出了用于数据项共享和协作的一种示例性方法实施例;
图17示出了用于使用户订阅集合的一种示例性方法实施例;
图18示出了用于将数据项分配到集合的一种示例性方法实施例;
图19示出了用于修改分配到集合的数据项的一种示例性方法实施例;以及
图20示出了一种示例性的系统实施例。
具体实施方式
下面详细论述本公开的各个实施例。虽然论述了具体实施例,但应当理解这仅仅为了说明目的而进行。相关领域的技术人员将认识到,在不脱离本公开的实质和范围的情况下可以使用其他组件和配置。本公开解决了现有技术中对于在基于云端的计算环境中共享和存储数据的改进方法的需求。
1.云计算环境概述
云计算是一种类型的基于互联网的计算,其中多种资源由一实体作为宿主和/或进行控制,并且经由互联网被该实体提供以供被授权用户使用。图1示出了一种示例性的云计算系统配置100,其中多种电子设备可经由网络进行通信以便交换内容和其他数据。系统可被配置用于在有利于电子设备相互通信的多种网络配置上使用。例如,图1中系统100的每个部件可在网络中以局域方式或分布式方式被实现。
系统100可被配置为包括云计算资源120。云资源可包括多种硬件和/或软件资源,诸如云服务器122、云数据库124、基于云端的存储装置126、云网络128、云应用程序、云平台、和/或任何其他基于云端的资源。在一些情况下,云资源是分布式的。例如,基于云端的存储装置126可包括多个存储设备。在一些情况下,云资源可被分布在多个云计算系统上和/或各个支持网络的计算设备上。例如,云计算资源120可与服务器1041、1042、…、104n(统称为“104”)、数据库106、和/或任何其他支持网络的计算设备通信,以提供云资源。
此外,在一些情况下,云资源可以是冗余的。例如,如果云计算资源120被配置为提供数据备份服务,则数据的多个副本可被存储使得即使在存储资源离线、繁忙、或以其它方式不可用于处理请求的情况下数据仍然可供用户使用。在另一示例中,如果云计算资源120被配置为提供应用程序,则所述应用程序可从不同云服务器提供,使得所述应用程序可从所述不同云服务器中任何云服务器来服务。可以应用算法,使得选择最近的服务器或具有最低当前负荷的服务器来处理给定请求。
在系统100中,用户通过以直接和/或间接通信连接到网络的用户终端1021、1022、…、102n(统称为“102”)与云计算资源120交互。云计算资源120可支持来自多种不同电子设备的连接,不同电子设备诸如是服务器;台式计算机;移动计算机;手持式通信设备,例如移动电话、智能电话、平板电脑;机顶盒;支持网络的硬盘驱动器;和/或其他支持网络的计算设备。此外,云计算资源120可同时接受来自多个电子设备的连接和与多个电子设备交互。与这多个电子设备的交互可划分优先顺序或者同时进行。
云计算资源120可通过多种部署模型来提供云资源,诸如公用、私有、社群、混合、和/或任何其他云部署模型。在一些情况下,云计算资源120可支持多个部署模型。例如,云计算资源120可通过公用部署模型提供一组资源,通过私有部署模型提供另一组资源。
在一些配置中,用户终端102可从互联网连接可用的任何位置访问云计算资源120。然而,在其他情形下,云计算资源120可被配置为限制对某些资源的访问,使得资源只能从某些位置访问。例如,如果云计算资源120被配置为利用私有部署模型提供资源,则云计算资源120可限制对该资源的访问,诸如通过要求用户终端102从防火墙后面访问该资源。
云计算资源120可通过多种服务模型提供云资源到用户终端102,服务模型诸如是软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)、和/或任何其他云服务模型。在一些情形下,云计算资源120可为用户终端102提供多个服务模型。例如,云计算资源120可为用户终端102提供SaaS和IaaS二者。在一些情形下,云计算资源120可为不同用户终端102提供不同服务模型。例如,云计算资源120可为用户终端1021提供SaaS,为用户终端1022提供PaaS。
在一些情况下,云计算资源120可维护账户数据库。账户数据库可存储注册用户的简档信息。简档信息可包括资源访问权限,诸如允许用户使用的软件、最大存储空间等。简档信息还可包括使用信息,诸如已消耗计算资源、数据存储位置、安全设置、个人配置设置等等。在一些情况下,账户数据库可驻留在相对于云计算资源120远程的数据库或服务器上,诸如服务器104或数据库106。
云计算资源120可提供要求用户交互的多种功能性。相应地,可提供用户接口(UI)以用于与云计算资源120通信和/或执行与云资源相关联的任务。可经由与云计算资源120通信的最终用户终端102来访问UI。UI可被配置为根据云计算资源120和/或用户终端102的存储和处理能力而工作于多种客户端模式中,包括胖客户端模式、瘦客户端模式、或混合客户端模式。因此,UI在一些实施例中可被实现为工作于用户终端的独立应用程序。在其他实施例中,可使用基于web浏览器的入口来提供UI。在各种实施例中也可使用任何其他访问云计算资源120的配置。
2.云计算资源系统
已经公开了一种示例性的云计算环境,本公开现在转到图2,图2示出了一种示例性的云计算资源(CCR)系统200,诸如图1中的云计算资源120。CCR系统200可包括多个特征来增强用户从多种不同客户端设备类型存储、共享、和访问数据的能力。这些特征可包括增强型的基于云端的存储、基于云端的资源、和分组数据项共享和协作。例如,CCR系统200可提供通过使用外部网络存储设备(诸如支持个人网络的外部硬盘驱动器)扩展的基于云端的存储。在另一示例中,CCR系统200可提供用于应用程序资源文件(诸如不经常使用的模板文件)的基于云端的存储。在再一示例中,CCR系统200可有利于在订阅集合的一组用户之间的数据共享。下面将更详细地讨论这些特征、以及可用于提供这些特征的架构和资源。
2.1架构
如图2中所示,CCR系统200的架构可包含多个部件。这些部件可包括用于存储与系统的操作相关的数据的一个或多个数据库,例如账户数据库240、集合数据库242、和应用程序资源数据库246;一个或多个存储设备,例如基于云端的存储装置244;以及用于与这些数据库、存储设备交互和/或控制系统所提供的特征的一个或多个模块和/或引擎,例如通信接口210、账户管理模块212、用户接口模块214、数据项共享引擎220、和云存储引擎230。下面更详细地讨论图2中的每个部件;但是本领域技术人员应当理解,图2中所示的架构配置仅仅是一种可能配置,具有更多或更少部件的其他配置也是可能的。
CCR系统200是可与多个不同客户端设备通信的基于网络的系统。为了有利于通信,CCR系统200可包括通信接口210。通信接口210可被配置为接收来自客户端设备的通信(诸如请求、数据等)以及将该通信传递到CCR系统200中的适当模块和/或引擎以进行处理。通信接口210还可被配置为发送通信到客户端设备。此外,通信接口210可被配置为与任何计算设备通信,包括其他云计算系统。
CCR系统200所提供的特征中的一些可要求用户交互,诸如对存储在基于云端的存储装置中的特定文件的请求、邀请新用户订阅数据文件集合、和/或将新文件添加到集合。相应地,可提供用户接口(UI)用于与用户接口模块214通信以执行这样的任务。用户接口模块214的UI可经由与CCR系统200通信的客户端设备202来访问。UI和用户接口模块214可工作于多种客户端模式中,包括胖客户端模式、瘦客户端模式、或混合客户端模式,这取决于CCR系统200和/或客户端设备202的存储和处理能力。因此,用于用户接口模块的UI在一些实施例中可被实现为工作于客户端设备上的独立应用程序。在其他实施例中,可使用基于web浏览器的入口来提供用于用户接口模块214的UI。在各种实施例中也可使用远程地或本地地访问CCR系统200的任何其他配置。另外,UI可为有利于用户交互的任何类型的UI,诸如图形用户界面、音频用户接口、和/或任何其他类型的UI。
在一些情况下,CCR系统200可基于每个用户提供特征,诸如基于云端的存储,或者特征可能要求用户认证。为了支持这些特征,CCR系统200可包括账户数据库240和账户管理模块212。存储在账户数据库中的信息可根据特征而变化。例如,如果账户数据库240用于存储与增强型的基于云端的存储相关的信息,则账户信息可包括用户信息、授权的最大存储空间、已使用的存储空间、被授权客户端设备的标识符、被授权的外部网络存储设备的标识符、文件存储位置等等。或者,如果账户数据库240用于存储关于数据文件集合的信息,则账户信息可包括用户信息、订阅的集合、被授权客户端设备的标识符等等。在一些配置中,可在整个CCR系统200上使用单个账户数据库来为所有这些特征存储账户信息。但是,CCR系统200可被配置为为不同特征维护不同账户数据库,诸如一个账户数据库用于基于云端的存储,另一账户数据库用于数据文件集合。
账户管理模块212可被配置为更新和/或获取用户账户数据库240中的用户账户详情。例如,当接收到存储文件的请求时,账户管理模块212可获取用户的账户详情,CCR系统200然后可使用用户的账户详情来确定用户是否已经授权外部网络存储设备作为存储位置。在另一示例中,响应于用户接受订阅集合的邀请,账户管理模块212可更新用户的账户详情以包括该集合。账户管理模块212可被配置为与CCR系统200中任意数量的其他模块和/或引擎交互。
将在下文中更详细地讨论的CCR系统200的特征之一是CCR系统200可被用于有利于用户组之间的数据项共享和协作。共享和协作可通过创建集合来实现。一组用户可订阅一集合。在已经形成集合之后,一个或多个订阅用户可分配数据项到该集合,并且每个被分配的数据项的副本可被发布给每个订阅用户。与集合相关的信息可被存储在集合数据库242中。所存储的信息可包括集合标识符、订阅用户标识符、分配的数据项、维护修改记录的一个或多个日志文件等等。
CCR系统200可包括数据项共享引擎220,用于管理与集合相关联的共享和协作活动。例如,数据项共享引擎220可接收对分配给集合的数据项的修改、更新集合数据库242中的集合信息、以及将该修改发布到订阅该集合的其他用户。为了完成管理与集合相关联的共享和协作活动的任务,数据项共享引擎220可包括一个或多个模块,诸如集合管理模块222和版本控制模块224。数据项共享引擎220还可被配置为与CCR系统200中任意数量的其他模块和/或引擎交互。
将在下文中更详细地讨论的CCR系统200的另一特征是CCR系统200可提供增强型的基于云端的存储。为了有利于增强型的基于云端的存储,CCR系统200可包括云存储引擎230。例如,云存储引擎230可接收存储数据项的请求。响应于这个存储请求,云存储引擎230可获取与该请求相关联的用户账户详情,将该数据项存储在基于云端的存储244中和/或被授权的外部网络存储设备上,以及更新关于存储位置的账户详情。同样,云存储引擎230可接收检索数据项的请求。响应于该检索请求,云存储引擎230可获取与该请求相关联的用户账户详情以识别存储位置,以及从该存储位置获取该数据项。另外,云存储引擎230可用于管理应用程序资源文件(诸如模板文件)的存储和检索。云存储引擎230可包括一个或多个模块(诸如数据管理模块232)、和一个或多个数据库(诸如应用程序资源数据库246),以提供基于云端的应用程序资源功能性。云存储引擎230还可被配置为与CCR系统200中任意数量的其他模块和/或引擎交互。
2.2特征
如前所述,CCR系统200可包括多个特征来增强用户从多种不同客户端设备类型存储、共享、和访问数据的能力。这些特征可包括增强型的基于云端的存储、基于云端的资源、和分组数据共享。
2.2.1增强型的基于云端的存储
CCR系统200可被配置为提供基于云端的存储。在一些配置中,云存储引擎230可管理基于云端的存储特征。云存储引擎可接收来自客户端设备的存储请求和检索请求。在一些情况下,存储和检索请求经由通信接口210和/或用户接口模块214被传递到云存储引擎230。
为了从客户端设备将数据项存储在基于云端的存储装置(诸如基于云端的存储装置244)中,用户可与CCR系统200建立账户。云存储引擎230可获取账户详情,诸如从账户管理模块212获取。在一些情况下,云存储引擎230可为用户账户分配最大存储容量。例如,云存储引擎230可为所有用户分配一致的存储容量,例如4GB。在另一示例中,云存储引擎230可基于预定义的标准为不同用户分配不同存储容量,例如基于用户隶属关系分配容量、基于订阅费分配容量等等。最大存储容量可被记录在用户的账户详情中,诸如通过将该信息传递到账户管理模块212来记录。但是,在一些情况下,云存储引擎230可允许无限存储容量。
除了存储容量之外,云存储引擎230还可被配置为维护用户当前存储使用的记录。例如,如果用户已经存储了总大小为500MB的五个文件,则云存储引擎230可通过将这样的信息记录在用户的账户详情中来维护该信息。在一些情况下,不管是否为用户分配最大存储容量,使用信息都可被维护。
云存储引擎230还可被配置为使得用户可在单个用户账户上授权多个客户端设备,从而允许用户从多个客户端设备访问存储在基于云端的存储装置中的数据项。例如,用户可授权家里的台式计算机和便携式计算机。用户于是可从台式计算机存储数据项到基于云端的存储,然后利用便携式计算机检索数据项。被授权的客户端设备可被记录在用户的账户详情中,诸如通过记录客户端设备的唯一标识符来进行记录。另外,在一些情况下,一客户端设备可与多个用户账户相关联。
迄今所介绍的基于云端的存储细节更确切地说是传统的基于云端的存储特征。但是,云存储引擎230可通过集成在用户账户上授权的外部网络存储设备来提供增强基于云端的存储。本文所使用的外部网络存储设备可以是用户拥有的和/或经由用户的本地网络连接到CCR系统200的任何支持网络的存储设备,诸如外部硬盘驱动器,例如个人网络存储设备2021。即,独立于任何云计算系统的支持网络的存储设备。例如,外部网络存储设备可以是用户已经连接到其家里的本地网络的外部硬盘驱动器。或者,外部网络存储设备可以是连接到组织机构的本地网络的支持网络的存储设备。即,外部网络存储设备可以是驻留在本地网络上的任何支持网络的存储设备,而不是作为CCR系统200或某个其它云计算系统的一部分。
用户可在CCR系统200中的其用户账户上授权一个或多个外部网络存储设备。在一些情况下,一个外部网络存储设备可在多个用户账户上被授权。例如,一个家庭可能包括三个人和单个外部网络存储设备,每个人都有用户账户。这个家庭中的每个用户可在其账户上授权该外部网络存储设备。
一旦外部网络存储设备在用户账户中被授权,云存储引擎230就可使用该外部网络存储设备来扩展基于云端的存储。即,不是将数据项存储在基于云端的存储装置244中,云存储引擎230可将数据项存储在被授权的外部网络存储设备上。但是,如果用户请求存储数据项,并且用户还没有在其账户上授权外部网络存储设备,则云存储引擎230可恢复到传统的基于云端的存储。
当多个外部网络存储设备在用户账户中被授权时,云存储引擎230可选择这些外部网络存储设备之一作为用于数据项的存储位置。这个选择可基于多种标准,诸如随机、可用空间量、与云存储引擎230相距的距离、数据项类型、用户偏好、外部网络存储设备的可靠性等等。
云存储引擎230可被配置为包括可管理存储在基于云端的存储装置中的数据项的数据管理模块232。例如,数据管理模块232可作为增强型的文件系统工作。数据管理模块232可被配置为确定数据项是应该被存储在基于云端的存储装置244中还是被授权的外部网络存储设备上。将数据项存储在被授权的外部网络存储设备上的决定可以是基于满足预定义的标准。所使用的标准可随着系统配置而变化。在一些情况下,当确定在基于云端的存储中没有为用户分配足够空间时,数据管理模块232可选择将数据项存储在被授权的外部网络存储设备上。例如,云存储引擎230可被配置为为用户账户分配比批准的最大容量少的空间。在数据管理模块232确定所分配的空间不足,并且用户还没有超过用户的被批准最大存储容量时,不是在基于云端的存储装置244中分配更多空间,数据管理模块232而是可将数据项存储在被授权的外部网络存储设备上。在一些情况下,当确定用户已经超过了用户的被批准的最大存储容量时,数据管理模块232可选择将数据项存储在被授权的外部网络存储设备上。例如,不是拒绝用户的存储请求或要求用户提高其在基于云端的存储装置244中的存储容量,数据管理模块232可将数据项存储在被授权的外部网络存储设备上。或者,在一些情况下,数据管理模块232可被配置为当数据管理模块232确定存储在被授权的外部网络存储设备上可能更高效时选择将数据项存储在该外部网络存储设备上。例如,如果外部网络存储设备比基于云端的存储装置244更近,则将数据项存储在外部网络存储设备上可减少延迟并提高性能。另外,在一些情况下,数据管理模块232可被配置为基于用户偏好来选择将数据项存储在被授权的外部网络存储设备上。例如,用户可指定特定数据项或特定类型的数据项应该被存储在外部网络存储设备上。
数据管理模块232还可被配置为在基于云端的存储装置244中维护数据项的多个副本。该冗余可被执行以降低被请求的数据项不可用的可能性。例如,数据管理模块232可被配置为每当数据项被存储在外部网络存储设备上时就在基于云端的存储装置244中存储该数据项的副本。在一些情况下,冗余选项可基于用户偏好。例如,用户可指定用户指示云存储引擎230存储在外部网络存储设备上的数据项不应该也被存储在基于云端的存储装置244中,但是可被存储在另一被授权的外部网络存储设备上。
在一些情况下,数据管理模块232可被配置为分割数据项并且将这些片断存储在一个或多个基于云端的存储位置中,包括存储在外部网络存储设备上。例如,数据项可被分割为两个片段,一个片断被存储在基于云端的存储装置244中,而另一个片断被存储在外部网络存储设备上。另外,在一些配置中,数据管理模块232可将数据项分割为多个片断,并且冗余地存储这些片断。
图3示出了一个示例性的场景300,其中在CCR系统200处接收利用增强型的基于云端的存储装置存储数据项的请求。在场景300中,用户302具有各种客户端设备304、306、和308。用户已经在用户的账户上授权了客户端设备304和306用于将数据项发送到基于云端的存储装置和从基于云端的存储装置检索数据项。另外,用户已经将外部网络存储设备308授权作为用于用户的数据项的被授权的存储位置。当用户从客户端设备304进行存储请求时,云存储引擎230接收该请求和数据项。当确定数据项应该被存储在外部网络存储设备308上时,云存储引擎230可将数据项发送到外部网络存储设备308并更新用户的账户详情以反映存储位置选择。云存储引擎230可以以对用户透明的方式确定数据项应该被存储在外部网络存储设备308上。即,云存储引擎230可在没有来自用户的输入的情况下选择将数据项存储在外部网络存储设备308上。
图4示出了一个示例性场景400,其中用户302请求检索先前存储在基于云端的存储装置中的数据项。在场景400中,用户进行检索数据项的请求。可从先前被用于存储数据项的同一客户端设备和/或从另一设备进行检索该数据项的请求。在场景400中,检索请求是从客户端设备306进行的,客户端设备306是与先前用于存储该数据项的设备不同的另一设备。响应于接收到该请求,云存储引擎230获取用户账户信息以确定数据项的位置。当确定数据项被存储在外部网络存储设备上时,云存储引擎230可从外部网络存储设备308获取该数据项并且将该数据项发送到客户端设备306。因为存储位置信息由CCR系统200维护,所以云存储引擎230可获取存储在外部网络存储设备上的数据项,而不需要来自用户的附加输入。因此,数据项被存储在外部网络存储设备上这一事实对于用户可以是透明的。
2.2.2基于云端的资源
CCR系统200还可被配置为为客户端设备提供基于云端的应用程序资源和/或有利于从其他存储位置检索应用程序资源。在很多情况下,运行于客户端设备上的应用程序可包括要求使用位于可执行的主应用程序外部的资产或资源的功能性。应用程序资源可包括应用程序为了提供该应用程序的功能性的某个方面而要求的任何资源,例如模板文件、库文件、数据文件、另一应用程序、守护程序等。例如,文字处理程序可包括提供核心功能性的可执行的主应用程序。为了提供专门的功能性,诸如用户可重复使用的专门设计的文档格式设置,文字处理程序可包括模板。当用户选择使用预定义的文档格式时,相应的模板被从外部资源文件加载。在这个示例中,每个模板是一个应用程序资源。在另一示例中,音乐应用程序可包括不同乐器的集合。每个乐器可以是一个应用程序资源。用于乐器的功能性可被包含在应用程序资源文件中,该应用程序资源文件当用户选择音乐应用程序时被这个特定应用程序加载。在再一示例中,应用程序可以是包括内核的操作系统,内核提供最基础的功能性并且允许其他应用程序与设备的硬件交互。为了提供更高等级的功能性,操作系统可包括其他应用程序和守护程序形式的其他资源,这些资源中很多资源都以被需要为基础来执行。这些更高等级的应用程序和守护程序中每一者都是用于操作系统的应用程序资源。从内核的角度,更高等级的功能性是通过应用程序资源文件来提供的。
图5示出了具有应用程序资源文件的一个应用程序的一个示例性场景500。在场景500中,应用程序502包括三个应用程序资源文件504、506、和508。当应用程序502运行时,这些应用程序资源文件被加载。在场景500中,资源文件504和506已经被加载,但是资源文件508还没有被加载。
与应用程序一起被包括的全套应用程序资源文件可被设计为涵盖宽的应用程序使用范围,并且大多数用户可能只使用这些应用程序资源的一个子集。例如,文字处理应用程序常常包括数量众多的针对一系列使用情形(包括个人和商业使用)的模板。为了个人使用而安装文字处理应用程序的用户使用商业相关的模板的可能性比使用被设计用于个人使用情形的模板的可能性要低。另外,在一些情况下,用户可能从不使用单个模板,或者可能只使用个人创建的模板。从不使用的模板占据了用户设备上可被用于存储用户实际使用的数据的空间。因此,为了减少应用程序的存储占用空间,应用程序可只与应用程序资源文件的最小集一起或者甚至根本没有应用程序资源文件地被安装在客户端设备上。
与应用程序一起安装的这组应用程序资源文件可随着配置而不同,可由应用程序开发者确定,和/或可由用户确定。例如,应用程序开发者可维护应用程序使用历史信息。基于使用历史信息,开发者可确定特定的应用程序资源文件子集最经常使用,并且与应用程序一起只包括那些资源文件。又如,应用程序安装可被配置为允许用户指定要安装的应用程序资源文件子集,诸如被分类用于特定使用情形或特定类型的资产(例如家用或商用)的资源文件。在另一示例中,客户端设备可被配置为自动地基于预定义的标准只安装一个子集的应用程序,预定义的标准诸如是资源文件大小或用于所有被安装的应用程序资源文件的最大总大小。
代替应用程序资源文件,应用程序可包括应用程序资源文件占位符。应用程序资源文件占位符可提供实际应用程序资源文件被安装的表象,但相反其实际上是模仿看起来与实际资源文件相同的空文件。即,应用程序资源文件占位符可具有相同的名称、类型等。其甚至可显示与实际资源文件的大小匹配的文件大小,这可以是一种安全措施以防止意外地删除占位符文件。占位符可不同于实际资源文件的地方是占位符不包含数据,并且一专用位可被置位以指示该文件是占位符。
为了有利于检索应用程序资源文件,安装在客户端设备上的操作系统可包括特殊的资源文件获取过程或守护程序。当应用程序资源文件被应用程序请求时,资源文件获取过程可接收该请求,然后通过所述专用位检测被安装的资源文件是真实的资源文件还是占位符。如果该过程检测到占位符文件,则故障被触发,并且从云端获取实际的资源文件。一旦实际的资源文件被取得,其就可被安装以替代资源文件占位符。因为单独的过程负责将资源文件提供给进行请求的应用程序,所以不管是实际的资源文件还是占位符被安装都可以是对于该应用程序是透明的。这个等级的透明性还意味着不要求特殊的应用程序准备。即,应用程序本身不需要包括特殊的功能性用于获取资源文件和/或应用程序开发者不需要识别和用资源文件占位符替代程序的片断。占位符文件的安装可在任何时候进行,包括在资源文件已经被安装之后进行。
图6示出了具有应用程序资源文件和应用程序资源文件占位符的一种应用程序的一示例性场景600。在场景600中,图5中的应用程序502仍然包括由三个应用程序资源文件提供的功能性,但是现在应用程序502只与这些应用程序资源文件中的两个:资源文件504和508一起被安装。代替应用程序资源文件506,应用程序包括应用程序资源文件占位符510。当应用程序502执行时,应用程序资源文件被加载。当碰到应用程序资源文件占位符510时,客户端设备获取实际的应用程序资源文件。
图7示出了与资源文件和资源文件占位符一起安装在客户端设备704上的一操作系统702的另一示例性场景700。操作系统702可安装在客户端设备704上具有包括内核和资源文件检索守护程序的最小功能性。最小组的附加功能性也可被安装在客户端设备704上。例如,常用的应用程序(诸如web浏览器和媒体播放器)可被安装,但是不常使用的应用程序(诸如日历应用程序、电子邮件客户端、通讯录应用程序等)可作为资源文件占位符被安装。
如果在应用程序在客户端设备上执行期间触发了故障,则客户端设备可与CCR系统200通信以获取应用程序资源文件。CCR系统200可被配置为使得云存储引擎230可管理基于云端的应用程序资源特征。在一些情况下,通信接口214可接收请求并将请求传递到云存储引擎230以进行处理。
在一些情况下,CCR系统200可被配置为维护一组应用程序资源文件。例如,CCR系统200可将这组应用程序资源文件存储在基于云端的存储装置244中。应用程序资源文件的范围可根据CCR系统200和/或应用程序的配置而变化。例如,CCR系统200为应用程序维护的这组应用程序资源文件可包括该应用程序使用的资源文件的完整集合。或者,CCR系统200所维护的这组应用程序资源文件可只包括当初始应用程序安装时不包括的那些应用程序资源文件。即,从CCR系统200可获得的应用程序资源文件可不包括在所述最小组应用程序资源文件中的应用程序资源文件。
云存储引擎230可被配置为包括可管理存储在基于云端的存储装置中的应用程序资源文件的数据管理模块232。在一些情况下,当接收到对应用程序资源文件的请求时,数据管理模块232可从基于云端的存储装置244检索该应用程序资源文件,并且将该应用程序资源文件发送到进行请求的客户端设备。或者,当接收到对应用程序资源文件的请求时,数据管理模块232可被配置为从CCR系统200之外的存储位置检索该应用程序资源文件,诸如从另一云计算系统和/或另一客户端设备检索。在一些情况下,CCR系统200可包括应用程序资源数据库246,应用程序资源数据库246包括关于CCR系统200已知的应用程序资源的信息,诸如资源文件的存储位置。在这种情况下,当接收到对应用程序资源文件的请求时,数据管理模块232可访问应用程序资源文件数据库246以获取任何应用程序资源文件细节。如果应用程序资源文件细节指定存储位置,则数据管理模块232可从所指定的存储位置获取应用程序资源文件。
在一些情况下,云存储引擎230可被配置为限制对这些应用程序资源文件中一些或全部的访问。例如,应用程序资源文件可只供注册用户使用。通过将访问限制到注册用户,云存储引擎230可被用于防止不具有应用程序的被授权副本的用户访问应用程序资源文件。又如,应用程序资源可只供某个订阅等级的用户使用,例如家庭版、专业版等等。为了实现对应用程序资源文件的受限访问,云存储引擎230可获取用户账户详情,诸如从账户管理模块212获取,以确定进行请求的用户是否有资格接收所请求的应用程序资源。
在一些配置中,所安装的应用程序资源可自动地在客户端设备上被应用程序资源文件占位符替代。在一些情况下,这个替代可以对于应用程序透明的方式来执行。应用程序资源文件被移除的条件可随着客户端设备和/或应用程序的配置而变化。在一些情况下,应用程序资源文件可基于以下因素来被选择:对附加空间的需求、对于与特定应用程序相关联的应用程序资源文件达到了最大空间分配、和/或使用模式指示应用程序资源文件不再被需要。确定何时应该移除应用程序资源文件的其它方法也是可能的。另外,被选择移除的特定应用程序资源文件可随着客户端设备和/或应用程序的配置而变化。在一些情况下,所述特定应用程序资源文件可基于如下因素来选择:随机选择、大小、使用历史、用户偏好、和/或应用程序开发者偏好。选择特定应用程序资源文件进行移除的其它方法也是可能的。此外,应用程序资源文件可在任何时候被替代。即,不管应用程序是否正在执行,应用程序资源文件都可被替代。
图8示出了一种示例性场景800,其中利用应用程序资源文件812、814、和816的应用程序810正在客户端设备802上执行。应用程序810与应用程序资源文件812和816被安装在客户端设备802上。代替应用程序资源文件814,应用程序资源文件占位符818被安装在客户端设备802上。在执行期间,应用程序810需要应用程序资源文件814,这触发故障。响应于该故障,客户端设备802与CCR系统200通信以请求应用程序资源文件814。云存储引擎230经由数据管理模块232从基于云端的存储装置、或某个其它存储位置检索应用程序资源文件814,并且将应用程序资源文件814发送到客户端设备802。应用程序资源文件814然后被安装在客户端设备802上。
2.2.3数据集合管理
CCR系统200还可被配置为有利于用户组之间的数据项共享和协作。数据项共享和协作特征围绕集合的概念,集合可将一组用户与一个或多个数据项联合。图9提供了集合概念的一个示例性图示。首先,集合900包括各自订阅该集合、并且可经由一个或多个被授权的客户端设备(诸如客户端设备902、904、和906)与该集合共享数据项的一组用户。集合900还包括已经被分配给集合900的一个或多个数据项,诸如数据项910、912、和914。虽然集合概念被图示为访问中央数据项池的一组设备,但是这仅仅是为了示出集合的不同方面之间的关系的目的。在具体实施中,每个被授权的客户端设备可维护分配给集合的每个数据项的本地副本。另外,用户可订阅多个集合。
在一些配置中,数据项共享引擎220可管理共享和协作特征的各个方面,诸如集合形成、集合维持、和/或集合终止。数据项共享引擎220可与账户管理模块212和/或集合数据库242交互。集合数据库242可存储关于集合的信息,诸如集合标识符、订阅用户标识符、分配的数据项、维护数据项修改记录的一个或多个日志文件等等。另外,在一些配置中,数据项共享引擎220可通过通信接口210和/或用户接口模块214与客户端设备通信。
在一些配置中,客户端设备可运行客户端侧集合应用程序,客户端侧集合应用程序提供用于数据项共享和协作特征的客户端侧功能性。用户可与客户端侧集合应用程序交互的特征和方式可随着客户端设备、集合应用程序、CCR系统200、和/或网络连接的配置而变化。
数据项共享和协作的一个方面是集合形成。集合被形成的方式可随客户端设备、CCR系统200、和/或网络连接的配置而变化。但是,集合形成可包括两个方面:授权和认证。授权方面可涉及邀请一个或多个用户订阅集合,而认证方面可涉及确认用户确实被授权订阅该集合。
在一种集合形成方法中,用户可通过邀请一个或多个用户订阅集合来发起集合形成。在一些情况下,客户端设备可被配置为使得用户可在桌面上右击来激活菜单,在该菜单中可用菜单项之一为“形成集合”或其某种变体。或者,客户端设备可被配置为使得用户可点击图标或选择菜单选项。客户端设备还可被配置具有包括用于创建一个或多个集合的用户界面的应用程序。集合应用程序可要求用户进行认证,诸如通过提供用户名和密码进行认证。
用户可通过指定每个用户的用户标识符(诸如用户名、电子邮件地址、和/或其他唯一用户标识符)来邀请一个或多个用户。该邀请可用作为集合形成的授权步骤。为了完成集合形成,被邀请的用户可进行认证,从而使该用户订阅该集合。
在这个集合形成场景中,用户在完成了订阅过程之后可添加文件到集合。例如,发起集合形成的用户可在邀请一个或多个用户订阅之后,并且在一些情况下在所有被邀请的用户已经接受邀请之前,添加文件到集合。但是,被邀请用户在该用户已经完成了订阅过程之前不能添加文件到集合或接收作为集合一部分的文件,因为该用户还不是集合的一部分。
或者,用户可通过选择一个或多个数据项进行共享来发起集合形成。在一些情况下,客户端设备可被配置为使得用户可在数据项或数据项组上右击来激活其中一个可用选项是共享的菜单。客户端设备还可被配置为运行包括用于选择一个或多个数据项进行共享的用户界面的客户端侧应用程序。或者,共享特征可被构建到应用程序中。例如,文字处理应用程序可包括用于共享的菜单项。另外,在一些配置中,用户可选择包含一个或多个数据项的文件夹来共享该文件夹内的每个数据项。
在选择共享数据项之后,用户可指定一个或多个用户来与其共享该数据项。选择一个或多个用户的行为可触发邀请过程。用户可通过指定每个用户的用户标识符(诸如用户名、电子邮件地址、和/或任何其他唯一用户标识符)来邀请一个或多个用户。该邀请可用作集合形成的授权步骤。为了完成集合形成,被邀请用户可进行认证,从而使该用户订阅集合。即使集合形成是通过选择特定文件进行共享而发起的,被邀请用户在该用户已经完成订阅过程之前也不能接收数据项。
在一些情况下,CCR系统200在集合形成中可充当中间人。例如,客户端设备可发送集合形成信息到数据项共享引擎220。当接收到集合形成信息时,数据项共享引擎220可发送邀请到被邀请用户并处理认证过程。例如,图10示出了由CCR系统200促成的一种示例性集合信息交换1000。形成过程开始于用户1,其中用户1邀请用户2订阅集合。邀请信息被发送到CCR系统200。CCR系统200然后可发送该邀请到用户2。在某一时刻,用户2可遵循该邀请,这要求用户2向CCR系统200进行认证。当认证过程完成时,CCR系统200可选地可发送通知给用户1以告知用户2已经完成了订阅过程并且现在订阅该集合。在一些情况下,来自用户1的邀请请求可包括数据项。在这种情况下,当认证过程完成时,CCR系统200可发送该数据项到用户2。
当客户端设备活跃于局域网(LAN)上时,集合形成过程也可以对等配置来执行。例如,集合形成过程可使用设备发现软件,诸如Apple Inc.(Cupertino,CA)所发布的Bonjour应用程序来发现LAN上的其他客户端设备。订阅集合的邀请然后可直接从一个客户端设备发送到另一客户端设备。在纯对等配置中,认证过程可在客户端设备上执行。或者,集合形成过程可以是对等和CCR系统200促成的组合。
用户接收通知的方式可随着客户端设备、CCR系统200、和/或网络连接的配置而变化。用户可经由电子邮件、即时消息、SMS、客户端侧应用程序中的通知、客户端设备上的弹出窗口等来接收邀请。例如,如果用户向CCR系统200发送指定用户标识符的邀请信息,则CCR系统200可维护用户账户信息的数据库。用户账户信息中的项目可包括用户联系方法,诸如电子邮件地址、或电话号码。CCR系统200于是可使用该信息来发送邀请到被邀请用户。又如,如果用户将邀请直接发送到LAN上的另一客户端设备,则被邀请用户可经由被邀请用户的客户端设备上的弹出窗口接收该邀请。
在一些情况下,可通过集合共享的数据项的类型可以是受限的。例如,集合可用于共享文字处理文档,但是不共享特定文件类型的媒体项,诸如电影。该限制可以是适用于整个系统的和/或是以每个集合为基础的。例如,数据项共享引擎220可被配置为允许通过任何集合共享任何数据项类型,但是特定集合可被形成具有阻止共享具有AAC文件类型的数据项的策略。又如,数据项共享引擎220可被配置为阻止共享具有MP3文件类型的数据项,并且然后特定集合可被形成具有附加地还阻止共享具有AAC文件类型的数据项的策略。因此,所得到的集合将具有阻止共享具有MP3或AAC文件类型的数据项的策略。
在一些配置中,集合可包括一个或多个管理员。例如,形成集合的用户可自动地被指派为管理员。管理员可指定与集合相关联的策略,诸如订阅策略、数据项添加/删除策略、数据项修改策略。例如,管理员可建立只有管理员能邀请新用户订阅集合的策略。又如,管理员可建立只有管理员能添加数据项和/或从集合删除数据项的策略。在另一示例中,管理员可建立关于哪些用户具有对每个数据项的修改权限的策略。在再一示例中,管理员可建立指定可被分配到集合的数据项类型的策略。另外的策略也是可能的。
数据项也可独立于集合形成过程地被分配给集合。在一些情况下,客户端设备可被配置为使得用户可在数据项或数据项组上右击来激活其中一个可用选项是共享的菜单。客户端设备还可被配置为运行包括用于选择一个或多个数据项进行共享的用户界面的客户端侧应用程序。或者,共享特征可被构建到应用程序内。例如,文字处理应用程序可包括用于共享的菜单项。另外,在一些配置中,用户可选择文件夹来共享该文件夹内的每个数据项。在选择共享之后,用户可指定用户订阅的一个或多个集合。
在一些情况下,CCR系统200可在共享数据项中充当中间人。例如,一旦用户选择数据项进行共享并且将该数据项分配给集合,客户端设备就可将该数据项与关于被分配的集合的信息一起传送到数据项共享引擎220。数据项共享引擎220内的集合管理模块222可更新集合数据库242以反映新分配的数据项。另外,在一些情况下,集合管理模块222可识别订阅该集合的其他用户并将该数据项的副本发布到与订阅用户相关联的所有被授权设备。或者,集合管理模块222可从订阅集合的客户端设备接收对新数据项的请求。即,数据项共享引擎220可被配置在推送和/或拉取配置中–当接收到新数据项时,数据项共享引擎220可将该数据项推送到订阅客户端设备和/或数据项共享引擎220可从客户端设备接收对新分配的数据项的请求。数据项共享过程当客户端设备活跃于LAN中时也可以对等配置被执行,或者数据项共享过程也可以使用对等和CCR系统200促成的组合的混合配置被执行。
图11示出了一种示例性场景1100,其中数据项1110被分配给集合,并且数据项1110的发布是由CCR系统200来促成的。数据项1110在客户端设备1102上被分配给集合。一旦数据项1110被分配,客户端设备1102就发送数据项1110的副本到数据项共享引擎220。集合管理模块222更新集合数据库242。另外,集合管理模块识别两个另外的订阅客户端设备1104和1106,并且将数据项的副本(数据项1112和1114)发布到客户端设备1104和1106每一者。当接收到数据项副本时,操作每个客户端设备的用户可将数据项本地地存储在用户挑选的存储位置中。即,用户不需要将数据项存储在专门的文件夹中,而是可将数据项存储在对于用户有意义的位置中。
在一些情况下,订阅集合的用户中只有一个子集的用户可被授权向集合添加数据项。此类限制可通过多种技术来实施。在一些情况下,为了实施此类限制,客户端设备可被配置为不分配数据项。或者,数据项共享引擎220可被配置为不接受从未授权用户分配的数据项。另外的实施数据项分配限制策略的方法也是可能的。另外,在一些情况下,集合管理员可在数据项被正式分配到集合之前对每个数据项或由指定用户分配的每个数据项进行批准。
除了使用集合来共享数据项之外,订阅集合的用户还可在分配到集合的数据项上进行协作。即,当用户对分配到集合的数据项的本地副本进行修改时,该修改可自动地被发布给订阅该集合的每个其他用户。在一些情况下,客户端设备可实时地发送修改。例如,修改可当修改被做出时被发送。但是,客户端设备也可被配置为以周期性间隔发送修改集合,和/或当从用户接收指令时发送修改集合。例如,可每5分钟或当数据项被保存时发送修改集合。又如,修改集合可在用户选择一选项(诸如发送修改)时被发送。另外,客户端设备可被配置为收集客户端设备离线期间的修改,然后一旦客户端设备连接到网络就发送所收集的所有修改。
客户端设备上和/或数据项共享引擎220中的版本控制特征可帮助协作特征。例如,客户端设备可被配置为使得每次用户修改分配到集合的数据项时,客户端设备就发送整个数据项到数据项共享引擎220,在那里,版本控制模块224将改变合并到存储在集合数据库242中的当前版本中。为了将这些改变发布到订阅该集合的其他客户端设备,数据项共享引擎可请求订阅客户端设备上数据项的当前版本,合并修改,并且将更新后的数据项返回到客户端设备。此类技术导致显著的额外开销,并且有可能扰乱其他订阅设备上的用户。因此,一种替代形式是将客户端设备配置为包括客户端侧版本控制应用程序和将数据项共享引擎220配置为具有版本控制特征(诸如版本控制模块224)。当用户修改数据项时,客户端设备可使用版本控制软件来识别改变并且只将修改发送到数据项共享引擎220。版本控制模块224可记录所接收的修改并且将它们发布到其他订阅客户端设备。一旦在其他客户端设备处被接收到,版本控制软件就可将所接收到的修改与任何本地改变合并。修改发布和/或版本控制特征也可当客户端设备活跃于LAN上时以对等配置来执行,或者修改发布和/或版本控制特征也可以使用对等和CCR系统200促成的组合的混合配置来执行。
每个数据项修改可被合并到数据项中,使得客户端设备可存储分配到集合的数据项的单个副本。在一些情况下,数据项修改可以能与数据项的未修改部分或先前修改部分区分开。例如,客户端设备可显示作为文本文档(诸如文字处理文档)的数据项,其中数据项修改可使用红线标示来进行区分。可能有用于描绘新修改和先前存在的数据项内容之间区别的多种技术,诸如突出显示、红线标示、字体改变、附加注释或注解等。此外,在一些情况下,用户名或其他标识符可被附加到修改和/或可与修改一起被显示。
在一些情况下,多个用户可同时修改一数据项。在这种情况下,数据项共享引擎220和/或版本控制软件可包括冲突解决策略,使得客户端设备只维护集合中每个数据项的单个副本。即,当冲突发生时,冲突不导致在客户端设备上创建数据项的另一副本。客户端设备可维护数据项的单个副本,其中冲突的修改二者都存在于数据项的本地副本中。例如,冲突的修改二者可都被合并到数据项的本地副本中,并且用户可手动地解决该冲突,诸如通过选择修改的全部或部分来解决。在一些情况下,可解决冲突的用户可以是集合的管理员。或者,可使用基于投票的过程。例如,订阅集合的每个用户可选择冲突的修改之一,具有最多投票数量的修改可以是使用的修改。或者,管理员可当进行选择时使用该投票。在一些情况下,可为数据项或集合分配解决策略。例如,该策略可指定自动地选择与更高排名等级的用户相关联的冲突。一旦冲突已经被解决,数据项共享引擎220就可发布这个解决。
可使用各种技术来在数据项中展示冲突的修改。例如,冲突的修改可相互并排地被展示,但被不同地突出显示,诸如通过字体或颜色。又如,冲突的修该可顺序地被展示。在一些情况下,顺序展示的修改可被排序,诸如基于分配给与修改相关联的用户的排名等级来排序。在另一示例中,冲突的修改可在原始内容旁的页边空白处展示。在再一示例中,冲突的修改可在内容上的弹出框或窗口中被展示。
在一些情况下,只有一个子集的用户可修改分配给集合的数据项。此类限制可通过多种技术来实施。在一些情况下,为了实施此类限制,数据项可被存储在客户端设备上具有只读访问。或者,客户端设备可被配置为不发送由未被授权修改数据项的用户进行的任何修改。数据项共享引擎220也可被配置为不记录或发布所接收的任何未授权的修改。在另一配置中,客户端设备可拒绝接收由未授权用户进行的修改。另外的实施对分配给集合的数据项的修改限制的方法也是可能的。
数据项共享也可被配置为使得可在任何时候邀请新用户订阅集合。在一些情况下,只有集合的管理员能邀请新用户订阅集合。或者,管理员可查看以及批准或否决由订阅集合的非管理用户提交的邀请。一旦新用户订阅了集合,这个新用户就可接收当前分配给集合的所有数据项及修改。
在一些配置中,可从集合中移除先前分配给集合的数据项。从集合移除数据项的结果可根据配置而变化。例如,在一些情况下,订阅集合的所有用户可维护该数据项的本地副本,但是修改将不再被传播,并且新的订阅用户不会接收被移除的数据项。或者,所有本地副本可被删除,但是在一些配置中,分配该数据项的用户可维护该数据项。另外,在一些情况下,数据项共享引擎220可维护该数据项的纪录。在一些情况下,只有集合的管理员和/或分配该数据项的用户能从集合中移除该数据项。
类似于数据项,在一些配置中,用户可从集合退订。从集合退订的结果可根据配置而变化。例如,在一些情况下,可从该用户的客户端设备移除不是由该用户分配的分配给集合的数据项的所有本地副本。或者,该用户可保留本地副本,但是修改将不再被传播到该集合。另外,在一些情况下,管理员可从集合中移除用户和/或改变用户的与集合相关联的权限。例如,如果用户通过分配不期望的内容而正在滥用集合的话,或者如果集合与工作环境中一项目相关联而用户不再工作于该项目的话。
另外,在一些配置中,可删除集合。例如,如果集合与一项目相关联,而该项目被取消或被完成了,则该集合可能不再被需要。删除集合的结果可根据配置而变化。在一些配置中,分配给该集合的数据项的所有本地副本可被删除。在一些情况下,管理员和/或分配数据项的用户可维护数据项。或者,所有用户可维护分配给该集合的数据项的本地副本。另外,在一些情况下,数据项共享引擎220可维护集合的记录。
如先前所提及的,分配给集合的数据项的本地副本可被存储在客户端设备上的任何地方。因此,在一些配置中,共享的数据项可具有将其在客户端设备上与非共享数据项区分开的区别特征。例如,共享数据项可被突出显示、以另一颜色被显示、被显示为具有另一不透明等级等等。另外,区别特征可与数据项被分配到的集合协调。例如,分配给集合1的数据项可被显示为红色,而分配给集合2的数据项可被显示为蓝色。在一些情况下,文件描述符细节可指定数据项是否被共享和/或数据项被分配到的集合。
2.2.4隐私和安全
如上所述,在一些配置中,云计算资源系统可被用于存储用户数据。本公开考虑到在一些情况下,这个被采集的数据可能包括个人和/或敏感数据。本公开还考虑到,负责此类数据的收集、分析、公开、传送、存储、或其他使用的实体应该实施并坚持使用一般被认为满足或超过业界或政府对于维护个人信息数据私隐和安全的要求的隐私策略和实践。例如,来自用户的个人数据应该被收集用于实体的合法和合理的使用,并且不应在那些合法使用之外被共享或出售。另外,这种收集应当仅在用户的知情同意之后进行。另外,此类实体应该采取任何需要的步骤来保卫和保护对此类个人数据的访问并且确保能够访问个人数据的其他人遵守它们的隐私和安全策略和程序。另外,这种实体可使其本身经受第三方评估以证明其对广泛接受的隐私策略和实践的坚持。
尽管有前述这些措施,本公开还设想了其中用户选择性地阻断对个人数据的使用或访问的实施例。即,本公开设想可提供硬件和/或软件元件来阻止或阻断对此类个人数据的访问。例如,本技术可被配置为允许用户选择被存储在基于云端的存储装置中的数据。又如,本技术还可被配置为允许用户指定可与其他用户共享的存储在基于云端的存储装置中的数据。
因此,虽然本公开广泛地涵盖使用个人数据来实施一个或多个各种所公开的实施例,但是本公开还设想这各种实施例也可在不需要访问此类个人数据的情况下被实施。即,本技术的各种实施例不会由于缺乏所有或部分此类个人数据而成为不可操作。例如,非个人数据可被存储在基于云端的存储装置中。
3.使用
CCR系统200有利于各种基于云端的特征,包括增强型的基于云端的存储、基于云端的资源、和数据项共享和协作。图12是示出一种用于利用增强型的基于云端的存储装置来存储数据项的示例性方法1200的流程图。出于清楚的原因,结合一示例性云计算资源系统(诸如图2中所示的)来讨论该方法。虽然图12中示出了具体步骤,但是在其他实施例中,方法可具有比所示出的更多或更少的步骤。数据项存储方法可当云计算资源系统接收到来自客户端设备的存储数据项的请求(1202)时开始。响应于接收到存储请求,云计算资源系统可获取用户账户详情(1204)。
利用用户账户详情和关于数据项的信息,云计算资源系统可确定其是否可将该数据项存储在基于云端的存储装置中(1206)。云计算资源系统可基于预定义的标准来进行这个确定。例如,在一些情况下,云计算资源系统可被配置为分配比用户账户详情中所指定的被批准的最大容量少的空间。或者,云计算资源系统可确定用户已经超过了在用户账户详情中所指定的用户的被批准的最大存储容量。因此,云计算系统可基于空间分配和/或授权来进行这个确定。在一些情况下,云计算资源系统可确定将数据项存储在基于云端的存储装置中比存储在外部网络存储设备上效率低。例如,将数据项存储在基于云端的存储装置中与外部网络存储设备相比可能增大延迟并且降低性能。另外,云计算资源系统可基于用户偏好来进行这个确定。例如,用户可指定特定数据项或特定类型的数据项应该被存储在外部网络存储设备上。另外的预定义标准也是可能的。
当云计算资源系统确定数据项不能被存储在基于云端的存储装置中时,云计算资源系统可检查账户详情以确定是否有被授权的外部网络存储设备(1208)。如果至少一个外部网络存储设备在用户账户详情中被授权,则云计算资源系统可使数据项被存储在被授权的外部网络存储设备上(1214)。在一些情况下,用户账户详情可指定不止一个被授权的外部网络存储设备。在这种情况下,云计算资源系统可从这些可用的外部网络存储设备中选择一个外部网络存储设备。在一些情况下,这个选择可基于预定义的选择标准,诸如随机、可用空间量、与云计算资源系统相距的距离、数据项类型、用户偏好、外部网络存储设备的可靠性等。另外,云计算存储设备可更新用户账户详情以反映存储位置(1216)。
如果用户账户详情没有指定被授权的外部网络存储设备,则云计算系统可被配置为评估云计算设备为何不能将数据项存储在基于云端的存储装置中(1210)。基于评估结果,云计算资源系统可采取补救措施(1212)。例如,如果云计算资源系统确定数据项没有被存储在基于云端的存储装置中是因为云计算资源系统分配比用户账户详情中所授权的更少的空间,则云计算资源系统可分配更多空间,并且然后利用云计算资源来存储数据项。又如,如果云计算资源系统确定数据项没有被存储在基于云端的存储装置中是应该用户超过了在用户账户详情中被授权的空间量,则云计算资源系统可通知用户。在另一示例中,如果云计算资源系统确定数据项没有被存储在基于云端的存储装置中是因为确定了将数据项存储在外部网络存储设备上更高效,则云计算资源系统可将数据项存储在基于云端的存储装置中。在再一示例中,如果云计算资源系统确定用户请求数据项被存储在外部网络存储设备上,则云计算资源系统可通知用户没有被授权的外部网络存储设备和/或请求允许将数据项存储在基于云端的存储装置中。另外的补救措施也是可能的。在完成步骤1212或1216之后,云计算资源系统可恢复先前的处理,这可包括重复方法1200。
图13是示出一种用于利用增强型的基于云端的存储来检索数据项的示例性方法1300的流程图。出于清楚的原因,这个方法结合一种示例性云计算资源系统(诸如图2中所示的)来进行讨论。虽然图13中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这个数据项检索方法可当云计算资源系统接收到来自客户端设备的检索数据项的请求(1302)时开始。响应于接收到检索请求,云计算资源系统可获取用户账户详情(1304)。
利用用户账户详情和关于数据项的信息,云计算资源系统可辨识数据项是否被存储在基于云端的存储装置中(1306)。如果云计算资源系统确定数据项不是被存储在基于云端的存储装置中,则云计算资源系统可辨识数据项是否被存储在外部网络存储设备上(1308)。如果云计算资源系统不能识别被请求数据项的存储位置,则云计算资源系统可发送失败消息到进行请求的客户端设备(1310)。在一些情况下,如果数据项从未被存储在基于云端的存储装置中,则可能发生失败。或者,如果数据项被存储在外部网络存储设备上,但是该设备不再能被云计算资源系统访问(例如用户将该外部网络存储设备从网络断开),则可能发生失败。另外的失败情形也是可能的。
如果云计算资源系统能够识别被请求数据项的存储位置,则云计算资源系统可从该存储位置检索该数据项(1312)并将该数据项发送到进行请求的客户端设备(1314)。在完成了步骤1310或1314之后,云计算资源系统可恢复先前的处理,这可包括重复方法1300。
图14是示出用于与应用程序资源文件占位符一起安装应用程序的一种示例性方法1400的流程图。为了清楚的原因,该方法结合包含被配置用于文件检索的操作系统、并且被连接到云计算资源系统(诸如图2中所示)的一种示例性客户端设备来讨论。虽然图14中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这种应用程序安装方法可开始于运行在客户端设备上的操作系统接收到对于安装包括能运行的主应用程序和一个或多个应用程序资源文件的应用程序的请求(1402)时。响应于该请求,操作系统确定这一个或多个应用程序资源文件是否应该被安装(1404)。在一些情况下,关于是否安装应用程序资源文件的确定可基于预定义的标准,诸如应用程序资源文件大小、为应用程序安装的应用程序资源文件的最大总大小、目标应用程序用途、或应用程序使用历史。如果操作系统确定应用程序资源文件应该被安装,则操作系统安装它(1408)。但是,如果操作系统确定应用程序资源文件不应该被安装,则操作系统安装应用程序资源文件占位符(1406)。在一些情况下,应用程序资源文件占位符可具有实际应用程序资源文件的表象,但实际上是一个空文件。
在安装了应用程序资源文件或应用程序资源文件占位符之后,操作系统确定是否还有更多应用程序资源文件要安装(1410)。如果有,则操作系统重复该过程。在完成了步骤1410之后,客户端设备上的操作系统可恢复先前处理,这可包括重复方法1400。
图15是示出一种用于获取应用程序资源文件的示例性方法1500的流程图。出于清楚的原因,这个方法结合一种包含被配置用于文件检索的操作系统并且被连接到云计算资源系统(诸如图2中所示)的客户端设备来讨论。虽然图15中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这个应用程序资源文件检索方法可开始于运行在客户端设备上的操作系统从也运行于客户端设备上的应用程序接收到对于应用程序资源文件的请求(1502)时。响应于该请求,操作系统确定存储在客户端设备上的应用程序资源文件是实际的应用程序资源文件还是应用程序资源文件占位符(1504)。在一些情况下,应用程序资源文件占位符可具有实际应用程序资源文件的表象,但实际上是一个空文件。在一些配置中,当文件上的专用位被置位时,操作系统可确定应用程序资源文件是占位符。用于区分实际应用程序资源文件和占位符的其他技术也是可能的。
如果操作系统确定被请求的应用程序资源文件对应于应用程序资源文件占位符,则操作系统可触发故障。被触发的故障可使客户端设备向云计算资源系统请求应用程序资源文件(1506)。当接收到应用程序资源文件时,操作系统可用所接收的应用程序资源文件替代占位符(1508)。最后,操作系统可将应用程序资源文件发送给进行请求的应用程序(1510)。在完成了步骤1510之后,客户端设备上的操作系统可恢复先前的处理,这可包括重复方法1500。
图16是示出一种用于数据项共享和协作的示例性方法1600的流程图。出于清楚的原因,这个方法结合一种示例性云计算资源系统(诸如图2中所示)来讨论。但是,这个方法也可部分地或完全地在客户端设备上执行。虽然图16中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这个数据项共享和协作方法可开始于云计算资源系统接收到来自客户端设备的形成数据项分组或集合的请求(1602)时。形成集合的请求可包括一组用户标识符。另外,在一些情况下,该请求可包括要分配给该集合的一个或多个数据项。除了与集合形成请求一起接收的这组用户标识符之外,云计算资源系统可单独地接收邀请用户订阅集合的请求。
响应于接收到形成集合的请求、或者单独的邀请用户订阅集合的请求,云计算资源系统可将订阅该集合的邀请发送给与包括在该请求中的用户标识符相关联的每个用户(1604)。在后来的某个时刻,云计算资源系统可从被邀请用户接收对订阅邀请的响应。基于该响应,云计算资源系统可使该用户订阅该集合(1606)。在一些情况下,云计算资源系统可要求用户在完成订阅过程之前向系统进行认证。在使用户订阅之后,CCR系统可查核数据项是否已经被分配给集合(1608)。如果是,则云计算资源系统可发送每个被分配数据项的副本到与订阅用户相关联的客户端设备(1614)。在一些情况下,用户可具有在用户账户中被授权的多个客户端设备。在这种情况下,云计算资源系统可发送副本到每个被授权的客户端设备。
在一些情况下,形成集合的请求可包括一个或多个数据项。或者,云计算资源系统可接收将数据项分配给集合的单独请求。响应于接收到数据项,云计算资源系统可将该数据项分配给集合(1610)。在分配数据项之后,云计算资源系统可确定除了将该数据项分配给该集合的用户之外是否还有任何其他用户订阅该集合(1612)。如果有,则云计算资源系统可发送该数据项的副本到与订阅用户相关联的客户端设备(1614)。在一些情况下,用户可具有在用户账户中被授权的多个客户端设备。在这种情况下,云计算资源系统可发送副本到每个被授权的客户端设备。在一些情况下,云计算资源系统可同时使用户订阅集合(1606)并分配数据项给该集合(1610)。
在后来某个时刻,云计算资源系统可接收对分配给集合的数据项的修改(1616)。在一些情况下,所述修改可以是一系列修改。另外,云计算资源系统可从多个用户接收对一个数据项的修改。响应于接收到修改,云计算资源系统可将修改发布到订阅该集合的每个用户(1618)。在完成了步骤1618之后,云计算资源系统可恢复先前的处理,这可包括重复方法1600。
图17是示出一种用于使用户订阅集合的示例性方法1700的流程图。出于清楚的原因,该方法结合一种示例性云计算资源系统(诸如图2中所示)来进行讨论。但是,这个方法也可部分地或完全地在客户端设备上执行。虽然图17中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这个用户订阅方法可开始于云计算资源系统接收到邀请用户订阅集合的请求(1702)时。该请求可包括用户标识符。在一些情况下,云计算资源系统可接收作为形成集合的请求的一部分的这个邀请用户订阅该集合的请求。或者,云计算资源系统可接收邀请用户的单独请求。在一些情况下,云计算资源系统可从集合的管理员和/或具有邀请用户订阅该集合的权限的另一用户接收邀请用户的请求。
响应于接收到邀请用户订阅集合的请求,云计算资源系统可将订阅该集合的邀请发送到与该用户标识符相关联的用户(1704)。云计算资源系统可被配置为利用多种不同技术来发送这个邀请。例如,云计算资源系统可经由电子邮件、即时消息、SMS、客户端侧应用程序中的通知、客户端设备上的弹出窗口等等来发送这个邀请。
在随后的某个时刻,云计算资源系统可从被邀请用户接收响应(1706)。如果云计算资源系统确定该响应是肯定响应(1708),则云计算资源系统可认证进行响应的用户(1710)。云计算资源系统可使用任何认证过程。例如,云计算资源系统可通过请求用户登录到订阅邀请被发送到的用户账户来对用户进行认证。用于对用户进行认证的另选技术也是可能的。
在一些配置中,用户可用否定响应对订阅邀请进行响应。即,用户可发送用户不希望订阅该集合的明确响应,而不是仅仅不理睬该邀请。在一些情况下,云计算资源系统可不理睬明确的否定响应。或者,云计算资源系统可采取动作,诸如通知请求邀请的用户和/或更新与该集合相关联的任何记录。
云计算资源系统可确定用户认证是否成功(1712)并相应地进行响应。如果认证确实成功了,则云计算资源系统可完成用户对该集合的订阅(1714)。完成用户订阅可包括将用户的标识符添加到该集合的纪录中。在一些情况下,当完成了订阅时,云计算资源系统可发送通知给请求邀请的用户和/或集合的管理员。如果认证失败,则云计算资源系统可拒绝用户订阅该集合(1716)。在一些配置中,当认证失败时,用户可尝试再次完成认证过程。另外,在一些情况下,云计算资源系统可对认证尝试失败的数量进行限制。此外,在一些情况下,当订阅尝试失败时,云计算资源系统可发送通知给请求邀请的用户和/或集合的管理员。在完成了步骤1714或1716之后,或当步骤1708处的响应为否定响应时,云计算资源系统可恢复先前的处理,这可包括重复方法1700。
图18是一种用于分配数据项给集合的示例性方法1800的流程图。出于清楚的原因,这个方法结合一种示例性云计算资源系统(诸如图2中所示)来讨论。但是,这个方法也可部分地或完全地在客户端设备上执行。虽然图18中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这个数据项分配方法可开始于云计算资源系统接收到将数据项分配给集合的请求(1802)时。在一些情况下,云计算资源系统可接收作为形成集合的请求的一部分的这个将数据项分配给集合的请求。或者,云计算资源系统可接收将数据项分配给集合的单独请求。
响应于接收到将数据项分配给集合的请求,云计算资源系统可查核进行请求的用户是否被授权分配数据项给集合(1804)。在一些情况下,集合可具有策略使得订阅该集合的用户中只有一个子组的用户被授权分配数据给该集合。例如,集合可具有仅管理员能分配数据项给该集合的策略。
如果云计算资源系统确定用户被允许分配数据项给该集合,则云计算资源系统可查核该数据项是否是被允许被分配给该集合的类型(1806)。在一些情况下,集合可具有禁止某些数据项类型被分配给该集合的策略。例如,集合可具有仅文字处理文档可被分配给该集合的策略。
如果云计算资源系统确定数据项是被允许被分配给该集合的类型,则云计算资源系统可将该数据项分配给该集合(1808)。将数据项分配给集合可包括将该数据项添加到该集合的纪录中。在一些情况下,当分配数据项时,云计算资源系统可发送通知给请求分配的用户和/或该集合的管理员。
当将数据项分配给集合时,云计算资源系统可将该数据项的副本发布到与订阅该集合的每个用户相关联的客户端设备(1810)。在一些情况下,用户可具有在用户账户中被授权的多个客户端设备。在这种情况下,云计算资源系统可发送副本到每个被授权的客户端设备。在一些配置中,云计算资源系统可将关于新数据项已经被分配给集合的通知发布给订阅该集合的每个用户,来代替发送这个数据项和/或作为发送这个数据项的补充。云计算资源系统可被配置为利用多种不同技术来发送这个通知。例如,云计算资源系统可经由电子邮件、即时消息、SMS、客户端侧应用程序中的通知、客户端设备上的弹出窗口等来发送这个通知。
如果云计算资源系统确定用户没有被授权分配数据项给这个集合和/或数据项类型在这个集合中不被允许,则云计算资源系统可对于该集合阻止该数据项(1812)。在一些配置中,当分配失败时,云计算资源系统可发送通知给请求分配的用户和/或该集合的管理员。在一些情况下,这个通知可指出分配为何失败。在完成了步骤1810或1812之后,云计算资源系统可恢复先前的处理,这可包括重复方法1800。
图19是示出一种用于修改分配给集合的数据项的示例性方法1900的流程图。出于清楚的原因,这个方法结合一种示例性云计算资源系统(诸如图2中所示)来进行讨论。但是,这个方法也可部分地或完全地在客户端设备上执行。虽然图19中示出了具体步骤,但在其他实施例中,方法可具有比所示出的更多或更少的步骤。这个数据项修改方法可开始于云计算资源系统接收到对分配给集合的数据项的修改(1902)时。在一些情况下,修改可以是整个数据项。或者,修改可以是数据项的指示两个版本之间差别的片断。另外,在一些情况下,修改可以是一系列修改。
响应于接收到对数据项的修改,云计算资源系统可查核发送修改的用户是否被授权修改该数据项(1904)。在一些情况下,集合可具有策略使得订阅该集合的用户中只有一个子组的用户被授权修改数据项。或者,该策略可在数据项级被发送。即,每个数据项可具有相关联的许可设置,其指示哪些用户被允许进行修改。
如果云计算资源系统确定用户被允许修改该数据项,则云计算资源系统可更新该数据项(1906)。在一些情况下,云计算资源系统可维护该数据项的副本。当修改被接收到时,云计算资源系统可将该修改合并到该数据项的副本中。另外,云计算资源系统可维护修改的记录。在接收到修改时,云计算资源系统可将该修改发布到与订阅该集合的每个用户相关联的客户端设备(1908)。
如果云计算资源系统确定用户不被允许修改该数据项,则云计算资源系统可阻止该修改(1910)。在一些配置中,当修改失败时,云计算资源系统可发送通知给试图共享修改的用户和/或该集合的管理员。在一些情况下,该通知可指出修改为何失败。在完成了步骤1908或1910之后,云计算资源系统可恢复先前的处理,这可包括重复方法1900。
4.示例性系统
参照图20,一种示例性系统2000包括通用计算设备2000,所述通用计算设备2000包括处理单元(CPU或处理器)2020以及将各种系统组件耦合到处理器2020的系统总线2010,这些系统组件包括诸如只读存储器(ROM)2040和随机存取存储器(RAM)2050的系统存储器2030。系统2000可包括直接与处理器2020连接、靠近处理器2020、或集成作为处理器2020一部分的高速缓存2022。系统2000从存储器2030和/或存储设备2060向高速缓存复制数据,以由处理器2020快速访问。通过这种方式,高速缓存提供避免处理器2020在等待数据时延迟的性能提升。这些和其他模块可控制或被配置为控制处理器2020以执行各种动作。其他系统存储器2030可以也可供使用。存储器2030可包括具有不同性能特性的多个不同类型的存储器。可以想到,本公开可以在具有不止一个处理器2020的计算设备2000上或者在被联网在一起以提供更大处理能力的计算设备的群组或群集上操作。处理器2020可包括被配置成控制处理器2020的任何通用处理器和硬件模块或软件模块(诸如存储在存储设备2060中的模块12062、模块22064、和模块32066)以及在软件指令被并入到实际处理器设计中的情况下的专用处理器。处理器2020基本上可以是完全自含式计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
系统总线2010可以是几种类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围设备总线、以及使用多种总线架构中任一种的局域总线。存储在ROM 2040等中的基本输入/输出(BIOS)可提供有助于在诸如启动期间在计算设备2000内的元件之间传输信息的基本例程。计算设备2000还包括存储设备2060,诸如硬盘驱动器、磁盘驱动器、光盘驱动器、磁带驱动器等。存储设备2060可包括用于控制处理器2020的软件模块2062、2064、2066。可以设想其他硬件或软件模块。存储设备2060由驱动接口连接到系统总线2010。驱动器和相关联的计算机可读存储介质为计算设备2000提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。在一个方面,执行特定功能的硬件模块包括存储在非暂态计算机可读介质中的软件组件,其结合诸如处理器2020、总线2010、显示器2070等的必要的硬件组件来执行功能。基本组件是本领域的技术人员已知的,并且根据设备类型(诸如,设备2000是小型的手持计算设备、台式计算机、还是计算机服务器)来设想适当的变型。
虽然本文所描述的示例性实施例采用了硬盘2060,但本领域的技术人员应当理解,在示例性操作环境中也可以使用可存储能由计算机访问的数据的其他类型的计算机可读介质,诸如磁卡带、闪存卡、数字通用光盘、磁盒、随机存取存储器(RAM)2050、只读存储器(ROM)2040、包含比特流的线缆或无线信号等。非暂态计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身的介质。
为了使用户能够与计算设备2000进行交互,输入设备2090代表任意数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触摸屏、键盘、鼠标、运动输入、语音等。输出设备2070也可以是本领域的技术人员已知的多个输出机构中的一个或多个。在一些情况下,多模系统允许用户提供多种类型的输入来与计算设备2000通信。通信接口2080通常支配和管理用户输入和系统输出。由于对在任何特定硬件布置上的操作无限制,因此,本文的基本特征可以容易地在开发出改进的硬件或固件布置之后替换为这些硬件或固件布置。
为了清楚地说明,示例性系统实施例被呈现为包括各个功能块,这些功能块包括标记为“处理器”或处理器2020的功能块。这些块代表的功能可以通过使用共享的或专用的硬件(包括但不限于能够执行软件的硬件和诸如处理器2020的硬件,其按照目的进行构建以作为运行在通用处理器上的软件的等同物操作)来提供。例如,图20中呈现的一个或多个处理器的功能可以由单个共享的处理器或多个处理器提供。(术语“处理器”的使用不应当解释为唯一地指代能够执行软件的硬件。)示例性实施例可包括微处理器和/或数字信号处理器(DSP)硬件、用于存储执行下文论述的操作的软件的只读存储器(ROM)2040、以及用于存储结果的随机存取存储器(RAM)2050。也可以提供超大规模集成(VLSI)硬件实施例以及结合通用DSP电路的定制VLSI电路。
各实施例的逻辑操作被实现为:(1)运行于通用计算机内的可编程电路上的一系列计算机实施的步骤、操作或过程,(2)运行于专用可编程电路上的一系列计算机实施的步骤、操作或过程;和/或(3)可编程电路内互连的机器模块或程序引擎。图20中示出的系统2000可以实施所述方法的全部或一部分,可以是所述系统的一部分,和/或可以根据所述非暂态计算机可读存储介质中的指令进行操作。此类逻辑操作可以实现为被配置成控制处理器2020以根据模块的编程执行特定功能的模块。例如,图20示出了三个模块Mod1 2062、Mod2 2064和Mod3 2066,它们是被配置成控制处理器2020的模块。这些模块可以被存储在存储设备2060上,并且当运行时被加载到RAM 2050或存储器2030中,或者可以如本领域中所知的那样被存储在其他计算机可读存储器位置中。
本公开的范围内的实施例也可包括有形和/或非暂态计算机可读存储介质,其用于承载或具有存储在其上的计算机可执行指令或数据结构。此类非暂态计算机可读存储介质可以是可由通用或专用计算机访问的任何可用介质,包括上文论述的任何专用处理器的功能设计。以举例而非限制的方式,此类非暂态计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备,或任何其他介质,其可用来承载或存储呈计算机可执行指令、数据结构或处理器芯片设计形式的所需程序代码装置。当信息经由网络或另一通信连接(硬连线的、无线的,或它们的组合)传送或提供至计算机时,计算机适当地将该连接视为计算机可读介质。因此,任何这种连接被适当地称为计算机可读介质。上述的组合也应该包括在计算机可读介质的范围内。
计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理设备执行某些功能或一组功能的指令和数据。计算机可执行指令也包括由计算机在独立或网络环境中执行的程序模块。通常,程序模块包括例程、程序、组件、数据结构、对象和专用处理器等的设计中固有的功能,程序模块执行特定任务或实现特定抽象数据类型。计算机可执行指令、相关联的数据结构和程序模块代表用于执行本文所公开的方法的步骤的程序代码装置的实例。此类可执行指令或相关联的数据结构的特定序列代表用于实现在此类步骤中描述的功能的对应动作的实例。
本领域的技术人员将会理解,本公开的其他实施例可以在具有许多类型的计算机系统配置的网络计算环境中实践,包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、微型计算机、大型计算机等。实施例也可在分布式计算环境中实践,其中任务由通过通信网络(或者由硬连线链路、无线链路,或者由它们的组合)连接的本地和远程处理设备来执行。在分布式计算环境中,程序模块可位于本地存储器存储设备和远程存储器存储设备两者中。
上文描述的各实施例仅仅以例示方式提供,而不应解释为限制本公开的范围。本领域的技术人员将容易认识到,在不遵从本文举例说明和描述的示例性实施例和应用且不脱离本公开的实质和范围的情况下,可以对本文所描述的原理做出各种修改和变更。
Claims (15)
1.一种用于存储数据项的计算机实现的方法,该计算机实现的方法包括在服务器设备处:
接收来自第一客户端设备的在第一存储设备处和第二存储设备处存储所述数据项的第一请求,其中第一存储设备是云网络的成员,并且第二存储设备和第一客户端设备是独立于所述云网络工作的本地网络的成员;
连同基于与第一用户账户关联的详情来识别第一存储设备和第二存储设备可用于存储所述数据项:
把所述数据项存储在第一存储设备和第二存储设备两者,以及
使得在第一客户端设备处建立用于所述数据项的文件占位符,其中所述文件占位符提供所述数据项被存储在第一客户端设备处的外观并且使所述数据项能够被提供给第一客户端设备从而使第一客户端设备访问所述数据项而不是所述文件占位符;以及
在把所述数据项提供给第一客户端设备之后并且响应于自动识别与第一客户端设备的工作特性相关联的至少一个条件被满足:
使所述数据项从第一客户端设备被删除,并且
在第一客户端设备处恢复所述文件占位符。
2.根据权利要求1所述的计算机实现的方法,其中把所述数据项提供给第一客户端设备包括:
结合当尝试访问所述文件占位符时在第一客户端设备处发生错误,接收第二请求。
3.根据权利要求1所述的计算机实现的方法,还包括:
接收来自第二客户端设备的检索所述数据项的第三请求;
基于与第二客户端设备关联的第二用户账户的访问权限来确定第二客户端设备是否被授权检索所述数据项;以及
当第二客户端设备被授权检索所述数据项时,将所述数据项提供给第二客户端设备。
4.根据权利要求1所述的计算机实现的方法,其中与第一用户账户关联的详情指示被授权存储在第一存储设备和第二存储设备两者的数据的不同类型。
5.根据权利要求1所述的计算机实现的方法,其中与第一用户账户关联的详情被更新以反映所述数据项被存储在第一存储设备和第二存储设备两者。
6.一种用于存储数据项的系统,该系统包括:
至少一个处理器;和
存储指令的至少一个存储器,所述指令当由所述至少一个处理器执行时使所述系统:
接收来自第一客户端设备的在第一存储设备处和第二存储设备处存储所述数据项的第一请求,其中第一存储设备是云网络的成员,并且第二存储设备和第一客户端设备是独立于所述云网络工作的本地网络的成员;
连同基于与第一用户账户关联的详情来识别第一存储设备和第二存储设备可用于存储所述数据项:
把所述数据项存储在第一存储设备和第二存储设备两者,以及
使得在第一客户端设备处建立用于所述数据项的文件占位符,其中所述文件占位符提供所述数据项被存储在第一客户端设备处的外观并且使所述数据项能够被提供给第一客户端设备从而使第一客户端设备访问所述数据项而不是所述文件占位符;以及
在把所述数据项提供给第一客户端设备之后并且响应于自动识别与第一客户端设备的工作特性相关联的至少一个条件被满足:
使所述数据项从第一客户端设备被删除,并且
在第一客户端设备处恢复所述文件占位符。
7.根据权利要求6所述的系统,其中把所述数据项提供给第一客户端设备包括:
结合当尝试访问所述文件占位符时在第一客户端设备处发生错误,接收第二请求。
8.根据权利要求6所述的系统,其中所述至少一个处理器还使所述系统:
接收来自第二客户端设备的检索所述数据项的第三请求;
基于与第二客户端设备关联的第二用户账户的访问权限来确定第二客户端设备是否被授权检索所述数据项;以及
当第二客户端设备被授权检索所述数据项时,将所述数据项提供给第二客户端设备。
9.根据权利要求6所述的系统,其中与第一用户账户关联的详情指示被授权存储在第一存储设备和第二存储设备两者的数据的不同类型。
10.根据权利要求6所述的系统,其中与第一用户账户关联的详情被更新以反映所述数据项被存储在第一存储设备和第二存储设备两者。
11.一种计算设备,包括:
用于接收来自第一客户端设备的在第一存储设备处和第二存储设备处存储数据项的第一请求的装置,其中第一存储设备是云网络的成员,并且第二存储设备和第一客户端设备是独立于所述云网络工作的本地网络的成员;
用于连同基于与第一用户账户关联的详情来识别第一存储设备和第二存储设备可用于存储所述数据项而执行以下操作的装置:
把所述数据项存储在第一存储设备和第二存储设备两者,以及
使得在第一客户端设备处建立用于所述数据项的文件占位符,其中所述文件占位符提供所述数据项被存储在第一客户端设备处的外观并且使所述数据项能够被提供给第一客户端设备从而使第一客户端设备访问所述数据项而不是所述文件占位符;以及
用于在把所述数据项提供给第一客户端设备之后并且响应于自动识别与第一客户端设备的工作特性相关联的至少一个条件被满足而执行以下操作的装置:
使所述数据项从第一客户端设备被删除,并且
在第一客户端设备处恢复所述文件占位符。
12.根据权利要求11所述的计算设备,其中把所述数据项提供给第一客户端设备包括:
结合当尝试访问所述文件占位符时在第一客户端设备处发生错误,接收第二请求。
13.根据权利要求11所述的计算设备,还包括:
用于接收来自第二客户端设备的检索所述数据项的第三请求的装置;
用于基于与第二客户端设备关联的第二用户账户的访问权限来确定第二客户端设备是否被授权检索所述数据项的装置;以及
用于当第二客户端设备被授权检索所述数据项时,将所述数据项提供给第二客户端设备的装置。
14.根据权利要求11所述的计算设备,其中与第一用户账户关联的详情被更新以反映所述数据项被存储在第一存储设备和第二存储设备两者。
15.根据权利要求11所述的计算设备,其中与第一用户账户关联的详情指示被授权存储在第一存储设备和第二存储设备两者的数据的不同类型。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/473,539 | 2012-05-16 | ||
US13/473,539 US20130311597A1 (en) | 2012-05-16 | 2012-05-16 | Locally backed cloud-based storage |
PCT/US2013/039772 WO2013173109A2 (en) | 2012-05-16 | 2013-05-06 | Locally backed cloud-based storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104380261A CN104380261A (zh) | 2015-02-25 |
CN104380261B true CN104380261B (zh) | 2019-01-08 |
Family
ID=48471106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380032454.0A Active CN104380261B (zh) | 2012-05-16 | 2013-05-06 | 本地支持的基于云端的存储 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20130311597A1 (zh) |
EP (1) | EP2850521B1 (zh) |
JP (1) | JP6013594B2 (zh) |
KR (1) | KR101652191B1 (zh) |
CN (1) | CN104380261B (zh) |
AU (1) | AU2013263230A1 (zh) |
TW (2) | TWI582610B (zh) |
WO (1) | WO2013173109A2 (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9002322B2 (en) | 2011-09-29 | 2015-04-07 | Apple Inc. | Authentication with secondary approver |
US8769624B2 (en) | 2011-09-29 | 2014-07-01 | Apple Inc. | Access control utilizing indirect authentication |
US9280377B2 (en) | 2013-03-29 | 2016-03-08 | Citrix Systems, Inc. | Application with multiple operation modes |
US9215225B2 (en) | 2013-03-29 | 2015-12-15 | Citrix Systems, Inc. | Mobile device locking with context |
US20140032733A1 (en) | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
US8806570B2 (en) | 2011-10-11 | 2014-08-12 | Citrix Systems, Inc. | Policy-based application management |
US9143530B2 (en) | 2011-10-11 | 2015-09-22 | Citrix Systems, Inc. | Secure container for protecting enterprise data on a mobile device |
US9043480B2 (en) | 2011-10-11 | 2015-05-26 | Citrix Systems, Inc. | Policy-based application management |
US9680927B2 (en) * | 2012-02-05 | 2017-06-13 | Apple Inc. | Cloud tabs |
JP5670391B2 (ja) * | 2012-07-27 | 2015-02-18 | 住友電気工業株式会社 | コンテンツ管理装置、コンテンツ管理方法およびコンテンツ管理プログラム |
US8613070B1 (en) | 2012-10-12 | 2013-12-17 | Citrix Systems, Inc. | Single sign-on access in an orchestration framework for connected devices |
US9516022B2 (en) | 2012-10-14 | 2016-12-06 | Getgo, Inc. | Automated meeting room |
US20140109171A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Providing Virtualized Private Network tunnels |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US20140108793A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US9170800B2 (en) | 2012-10-16 | 2015-10-27 | Citrix Systems, Inc. | Application wrapping for application management framework |
US9606774B2 (en) | 2012-10-16 | 2017-03-28 | Citrix Systems, Inc. | Wrapping an application with field-programmable business logic |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
WO2014143776A2 (en) | 2013-03-15 | 2014-09-18 | Bodhi Technology Ventures Llc | Providing remote interactions with host device using a wireless device |
US20140282938A1 (en) * | 2013-03-15 | 2014-09-18 | Adam Moisa | Method and system for integrated cloud storage management |
US9355223B2 (en) | 2013-03-29 | 2016-05-31 | Citrix Systems, Inc. | Providing a managed browser |
US9413736B2 (en) | 2013-03-29 | 2016-08-09 | Citrix Systems, Inc. | Providing an enterprise application store |
US8813179B1 (en) * | 2013-03-29 | 2014-08-19 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US8910264B2 (en) | 2013-03-29 | 2014-12-09 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US9455886B2 (en) | 2013-03-29 | 2016-09-27 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US8904483B1 (en) * | 2014-03-26 | 2014-12-02 | Iboss, Inc. | Serving approved resources |
US10465492B2 (en) | 2014-05-20 | 2019-11-05 | KATA Systems LLC | System and method for oil and condensate processing |
EP3117392A1 (en) | 2014-05-30 | 2017-01-18 | Apple Inc. | Family accounts for an online content storage sharing service |
US10789642B2 (en) | 2014-05-30 | 2020-09-29 | Apple Inc. | Family accounts for an online content storage sharing service |
US9967401B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | User interface for phone call routing among devices |
EP4365725A2 (en) | 2014-05-30 | 2024-05-08 | Apple Inc. | Continuity |
WO2015183398A1 (en) | 2014-05-30 | 2015-12-03 | Apple Inc. | Family accounts for an online content storage sharing service |
WO2015196053A1 (en) * | 2014-06-19 | 2015-12-23 | Blue Sentry, Inc. | Discrete client billing |
US10356651B2 (en) | 2014-07-17 | 2019-07-16 | Cirrent, Inc. | Controlled connection of a wireless device to a network |
US9942756B2 (en) * | 2014-07-17 | 2018-04-10 | Cirrent, Inc. | Securing credential distribution |
US10834592B2 (en) | 2014-07-17 | 2020-11-10 | Cirrent, Inc. | Securing credential distribution |
CN105320606B (zh) * | 2014-07-30 | 2019-06-18 | 财团法人工业技术研究院 | 数据对象管理方法以及数据对象管理系统 |
US10430120B2 (en) * | 2014-07-30 | 2019-10-01 | Industrial Technology Research Institute | Data object management method and data object management system |
US10339293B2 (en) | 2014-08-15 | 2019-07-02 | Apple Inc. | Authenticated device used to unlock another device |
US9646010B2 (en) | 2014-08-27 | 2017-05-09 | Mokhtarzada Holdings, Llc | Method and system for expanding storage capacity of a drive using cloud storage systems |
US11386115B1 (en) | 2014-09-12 | 2022-07-12 | Amazon Technologies, Inc. | Selectable storage endpoints for a transactional data storage engine |
US10708273B2 (en) | 2014-09-12 | 2020-07-07 | Anthony Tan | Pervasive intermediate network attached storage application with asynchronously rendered content |
US9792452B2 (en) * | 2014-09-12 | 2017-10-17 | Anthony Tan | Pervasive intermediate network attached storage application |
US10511608B2 (en) | 2014-10-30 | 2019-12-17 | Lenovo (Singapore) Pte. Ltd. | Aggregate service with file sharing |
US11416566B2 (en) | 2014-12-31 | 2022-08-16 | Rovi Guides, Inc. | Methods and systems for determining media content to download |
CN105991687B (zh) * | 2015-02-03 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种服务管理方法和装置 |
US9875346B2 (en) * | 2015-02-06 | 2018-01-23 | Apple Inc. | Setting and terminating restricted mode operation on electronic devices |
US9898485B2 (en) * | 2015-04-24 | 2018-02-20 | Datadirect Networks, Inc. | Dynamic context-based data protection and distribution |
EP4040297A1 (en) | 2015-05-27 | 2022-08-10 | Google LLC | System and method for automatic cloud-based full-data backup and restore on mobile devices |
US10275116B2 (en) | 2015-06-07 | 2019-04-30 | Apple Inc. | Browser with docked tabs |
KR102353475B1 (ko) * | 2015-07-10 | 2022-01-21 | 주식회사 엘지유플러스 | 클라우드 가상 파일을 이용한 애플리케이션 제공 시스템, 클라우드 서버 및 그 애플리케이션 제공방법, 서비스서버 및 그 서비스방법, 이동통신단말기 및 그 애플리케이션 실행방법 |
CN107079372B (zh) * | 2015-08-20 | 2021-01-29 | 华为技术有限公司 | 一种网络终端设备进行通信的方法及装置 |
GB2543312A (en) * | 2015-10-14 | 2017-04-19 | Smartpipe Tech Ltd | Network identification as a service |
CN106681995B (zh) * | 2015-11-05 | 2020-08-18 | 菜鸟智能物流控股有限公司 | 数据缓存方法、数据查询方法及装置 |
US9692815B2 (en) * | 2015-11-12 | 2017-06-27 | Mx Technologies, Inc. | Distributed, decentralized data aggregation |
US10154316B2 (en) | 2016-02-26 | 2018-12-11 | Apple Inc. | Motion-based configuration of a multi-user device |
DK179186B1 (en) | 2016-05-19 | 2018-01-15 | Apple Inc | REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION |
DK201670622A1 (en) | 2016-06-12 | 2018-02-12 | Apple Inc | User interfaces for transactions |
US10719408B2 (en) * | 2016-08-03 | 2020-07-21 | Microsoft Technology Licensing, Llc | Retain locally deleted content at storage service |
US20180060088A1 (en) * | 2016-08-31 | 2018-03-01 | Microsoft Technology Licensing, Llc | Group Interactions |
US11973758B2 (en) * | 2016-09-14 | 2024-04-30 | Microsoft Technology Licensing, Llc | Self-serve appliances for cloud services platform |
CN106909276B (zh) * | 2017-01-10 | 2020-04-24 | 网易(杭州)网络有限公司 | 用于实现电子读物内容互动的方法及设备 |
US11431836B2 (en) | 2017-05-02 | 2022-08-30 | Apple Inc. | Methods and interfaces for initiating media playback |
US10992795B2 (en) | 2017-05-16 | 2021-04-27 | Apple Inc. | Methods and interfaces for home media control |
US11507534B2 (en) | 2017-05-11 | 2022-11-22 | Microsoft Technology Licensing, Llc | Metadata storage for placeholders in a storage virtualization system |
CN111343060B (zh) | 2017-05-16 | 2022-02-11 | 苹果公司 | 用于家庭媒体控制的方法和界面 |
US20220279063A1 (en) | 2017-05-16 | 2022-09-01 | Apple Inc. | Methods and interfaces for home media control |
US10922426B2 (en) | 2017-09-29 | 2021-02-16 | Dropbox, Inc. | Managing content item collections |
US11222162B2 (en) * | 2017-09-29 | 2022-01-11 | Dropbox, Inc. | Managing content item collections |
US10547679B1 (en) | 2018-01-02 | 2020-01-28 | Architecture Technology Corporation | Cloud data synchronization based upon network sensing |
CN108366094B (zh) * | 2018-01-16 | 2021-05-07 | 厦门集微科技有限公司 | 一种云存储平台管理方法 |
JP2019153261A (ja) * | 2018-02-28 | 2019-09-12 | 創一 有國 | Androidにおけるゼロデータアプリケーション(リファレンス型システムの構築) |
CN108519966B (zh) * | 2018-04-11 | 2019-03-29 | 掌阅科技股份有限公司 | 电子书特定文本元素的替换方法及计算设备 |
US10872024B2 (en) | 2018-05-08 | 2020-12-22 | Apple Inc. | User interfaces for controlling or presenting device usage on an electronic device |
TWI698754B (zh) * | 2018-05-29 | 2020-07-11 | 普安科技股份有限公司 | 雲端服務之權限管理方法及其系統 |
CN108829352B (zh) * | 2018-06-06 | 2021-03-30 | 郑州云海信息技术有限公司 | 一种分布式存储系统的用户配额方法及系统 |
CN108897884A (zh) * | 2018-07-06 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种基于云平台的数据管理方法和装置 |
CN109240848A (zh) * | 2018-07-27 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种数据对象标识生成方法及装置 |
US11178246B2 (en) * | 2018-08-25 | 2021-11-16 | Panzura, Llc | Managing cloud-based storage using a time-series database |
CN109660604B (zh) * | 2018-11-29 | 2023-04-07 | 上海碳蓝网络科技有限公司 | 数据存取方法及设备 |
US11269700B2 (en) * | 2019-04-23 | 2022-03-08 | Apple Inc. | System call interception for file providers |
AU2020264946B2 (en) * | 2019-04-30 | 2022-11-17 | Clumio, Inc. | Deduplication in a cloud-based data protection service |
US11010121B2 (en) | 2019-05-31 | 2021-05-18 | Apple Inc. | User interfaces for audio media control |
CN117170620A (zh) | 2019-05-31 | 2023-12-05 | 苹果公司 | 用于音频媒体控件的用户界面 |
WO2020247281A1 (en) | 2019-06-01 | 2020-12-10 | Apple Inc. | User interfaces for managing contacts on another electronic device |
CN110471826A (zh) * | 2019-08-09 | 2019-11-19 | 广东小天才科技有限公司 | 一种基于高通平台录制adsp日志的方法及装置 |
CN110807717B (zh) * | 2019-09-23 | 2022-12-06 | 重庆特斯联智慧科技股份有限公司 | 一种基于边缘计算的智慧旅游方法及云平台系统 |
WO2021141293A1 (ko) * | 2020-01-06 | 2021-07-15 | 주식회사 아미크 | 데이터의 전송 및 조회 시의 비용을 최소화하기 위한 데이터 아카이빙 방법 및 시스템 |
US11392291B2 (en) | 2020-09-25 | 2022-07-19 | Apple Inc. | Methods and interfaces for media control with dynamic feedback |
US11645405B2 (en) | 2020-09-30 | 2023-05-09 | Duvon Corporation | Secure fetch of digital content |
US11604769B2 (en) | 2020-10-19 | 2023-03-14 | Dropbox, Inc. | Synchronizing an external location |
US11847378B2 (en) | 2021-06-06 | 2023-12-19 | Apple Inc. | User interfaces for audio routing |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999006909A1 (en) * | 1997-08-01 | 1999-02-11 | Muse Technologies, Inc. | Shared multi-user interface for multi-dimensional synthetic environments |
JP4211285B2 (ja) * | 2002-05-24 | 2009-01-21 | 株式会社日立製作所 | ネットワークストレージシステムの仮想一元化方法及び装置 |
GB0229572D0 (en) * | 2002-12-19 | 2003-01-22 | Cognima Ltd | Quality of service provisioning |
US8108483B2 (en) * | 2004-01-30 | 2012-01-31 | Microsoft Corporation | System and method for generating a consistent user namespace on networked devices |
US7720890B2 (en) * | 2005-02-22 | 2010-05-18 | Microsoft Corporation | Ghosted synchronization |
US7506005B2 (en) * | 2005-07-14 | 2009-03-17 | Microsoft Corporation | Moving data from file on storage volume to alternate location to free space |
US8886714B2 (en) * | 2011-08-08 | 2014-11-11 | Ctera Networks Ltd. | Remote access service for cloud-enabled network devices |
US9614924B2 (en) * | 2008-12-22 | 2017-04-04 | Ctera Networks Ltd. | Storage device and method thereof for integrating network attached storage with cloud storage services |
KR101626117B1 (ko) * | 2009-06-22 | 2016-05-31 | 삼성전자주식회사 | 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법 |
US8285681B2 (en) * | 2009-06-30 | 2012-10-09 | Commvault Systems, Inc. | Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites |
US8799322B2 (en) * | 2009-07-24 | 2014-08-05 | Cisco Technology, Inc. | Policy driven cloud storage management and cloud storage policy router |
US20110072487A1 (en) * | 2009-09-23 | 2011-03-24 | Computer Associates Think, Inc. | System, Method, and Software for Providing Access Control Enforcement Capabilities in Cloud Computing Systems |
US8645511B2 (en) * | 2009-10-13 | 2014-02-04 | Google Inc. | Pre-configuration of a cloud-based computer |
CN102055730B (zh) * | 2009-11-02 | 2013-09-11 | 华为终端有限公司 | 云处理系统、云处理方法和云计算代理装置 |
US9274821B2 (en) * | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
WO2011123107A1 (en) * | 2010-03-31 | 2011-10-06 | Hewlett-Packard Development Company, L.P. | Clients and servers for allocating and managing exclusive access to a portion of remote storage space |
WO2012042509A1 (en) * | 2010-10-01 | 2012-04-05 | Peter Chacko | A distributed virtual storage cloud architecture and a method thereof |
US9064278B2 (en) * | 2010-12-30 | 2015-06-23 | Futurewei Technologies, Inc. | System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment |
WO2012096963A1 (en) * | 2011-01-10 | 2012-07-19 | Fiberlink Communications Corporation | System and method for extending cloud services into the customer premise |
US9747300B2 (en) * | 2011-06-15 | 2017-08-29 | Amazon Technologies, Inc. | Local networked storage linked to remote networked storage system |
US20130066975A1 (en) * | 2011-09-08 | 2013-03-14 | Microsoft Corporation | Group Opt-In Links |
CN102377827A (zh) * | 2011-12-13 | 2012-03-14 | 方正国际软件有限公司 | 多级云存储系统及其存储方法 |
-
2012
- 2012-05-16 US US13/473,539 patent/US20130311597A1/en not_active Abandoned
-
2013
- 2013-05-06 JP JP2015512683A patent/JP6013594B2/ja active Active
- 2013-05-06 AU AU2013263230A patent/AU2013263230A1/en not_active Abandoned
- 2013-05-06 CN CN201380032454.0A patent/CN104380261B/zh active Active
- 2013-05-06 WO PCT/US2013/039772 patent/WO2013173109A2/en active Application Filing
- 2013-05-06 KR KR1020147033622A patent/KR101652191B1/ko active IP Right Grant
- 2013-05-06 EP EP13724458.8A patent/EP2850521B1/en active Active
- 2013-05-13 TW TW104128674A patent/TWI582610B/zh active
- 2013-05-13 TW TW102116914A patent/TWI512494B/zh active
Also Published As
Publication number | Publication date |
---|---|
KR101652191B1 (ko) | 2016-08-29 |
US20130311597A1 (en) | 2013-11-21 |
TW201602802A (zh) | 2016-01-16 |
JP6013594B2 (ja) | 2016-10-25 |
TW201411368A (zh) | 2014-03-16 |
WO2013173109A2 (en) | 2013-11-21 |
JP2015520453A (ja) | 2015-07-16 |
CN104380261A (zh) | 2015-02-25 |
EP2850521B1 (en) | 2018-11-21 |
EP2850521A2 (en) | 2015-03-25 |
TWI582610B (zh) | 2017-05-11 |
TWI512494B (zh) | 2015-12-11 |
KR20150004913A (ko) | 2015-01-13 |
AU2013263230A1 (en) | 2015-01-22 |
WO2013173109A3 (en) | 2014-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104380261B (zh) | 本地支持的基于云端的存储 | |
CN104395855B (zh) | 用户组之间的基于云端的数据项共享和协作 | |
CN104380253B (zh) | 基于云端的应用程序资源文件 | |
US9256898B2 (en) | Managing shared inventory in a virtual universe | |
CN113711536A (zh) | 从区块链网络中提取数据 | |
US10380551B2 (en) | Mixed collaboration teams | |
AU2015363218A1 (en) | No password user account access | |
US10819825B2 (en) | Reservation system | |
US20230410053A1 (en) | Discoverable collaboration teams | |
US10078433B2 (en) | Sharing a template file | |
Webber-Cross | Learning Microsoft Azure | |
CN110196683A (zh) | 一种操作控制的方法、装置、终端设备和介质 | |
CN116521509A (zh) | 智能合约测试方法、装置、设备、存储介质及产品 | |
US20200019646A1 (en) | Cloud storage aggregator system and method | |
CN117560341A (zh) | 应用共享的处理方法、装置、计算机设备和存储介质 | |
CN111031001A (zh) | 一种idv云终端离线授权管理系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |