CN104380253B - 基于云端的应用程序资源文件 - Google Patents
基于云端的应用程序资源文件 Download PDFInfo
- Publication number
- CN104380253B CN104380253B CN201380032466.3A CN201380032466A CN104380253B CN 104380253 B CN104380253 B CN 104380253B CN 201380032466 A CN201380032466 A CN 201380032466A CN 104380253 B CN104380253 B CN 104380253B
- Authority
- CN
- China
- Prior art keywords
- resource file
- application resource
- application
- placeholder
- user
- 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
- 238000003860 storage Methods 0.000 claims abstract description 278
- 238000000034 method Methods 0.000 claims abstract description 114
- 230000004044 response Effects 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 33
- 230000004048 modification Effects 0.000 description 70
- 238000012986 modification Methods 0.000 description 70
- 230000008859 change Effects 0.000 description 28
- 238000013523 data management Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000000151 deposition Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000246 remedial effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 201000009032 substance abuse Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
云计算系统可用来透明地减少客户端设备上应用程序的存储空间。应用程序可安装有最小应用程序资源文件集。其余应用程序资源文件可由应用程序资源文件占位符替换,应用程序资源文件占位符可具有应用程序资源文件的外观但实际上是空文件。当应用程序请求应用程序资源文件时,安装在客户端设备上的应用程序资源文件检索过程可检测应用程序资源文件与应用程序资源文件占位符之间的差别。应用程序资源文件检索过程可响应于检测到应用程序资源文件占位符而触发故障,这使得客户端设备从远程存储位置、诸如基于云端的存储装置获取所请求的应用程序资源文件。另外,安装的应用程序资源文件可由应用程序资源文件占位符替换。
Description
相关申请的交叉引用
本申请要求2012年5月16日提交的题为“CLOUD-BASED APPLICATION RESOURCEFILES”的美国专利申请No.13/473,560的优先权,其全文以引用方式并入本文。
背景技术
1.技术领域
本公开涉及云计算,并且更具体地涉及使用基于云端的存储装置以透明地减小安装在客户端设备上的应用程序的空间要求。
2.简介
安装在客户端设备上的许多应用程序包括需要诸如通过模板文件、库文件、数据文件、其他应用程序、守护进程等来使用可执行主应用程序外部的资产或资源的功能性。例如,文字处理程序可包括提供核心功能性的可执行主应用程序。为了提供专用功能性,诸如用户可重复使用的专门设计的文档格式化,文字处理程序可包括模板。当用户选择使用预定义文档格式时,从外部资源文件加载对应模板。
与应用程序一起包括的应用程序资源文件完整集合可被设计为涵盖广泛应用程序使用范围,并且大多数用户可能仅使用这些应用程序资源的一个子组。例如,文字处理应用程序常包括定位于包括个人和商业使用的许多使用情况的众多模板。为了个人使用而安装文字处理应用程序的用户使用商业相关的模板比为个人使用情况设计的模板的可能性要低。另外,在一些情况下,用户可能从不使用任一模板或者可能仅使用个人创建的模板。从未使用的模板占据用户设备上本可用于存储用户实际使用的数据的空间。
发明内容
本公开的附加特征和优点将在随后的描述中进行阐述,并且部分地将从该描述显而易见,或者可以通过实践本文所公开的原理而获知。本公开的特征和优点可借助于所附权利要求中特别指出的器械和组合来实现并获得。本公开的这些和其他特征将通过以下描述和所附权利要求变得更加充分地明显,或者可以通过本文所阐述的原理的实践而获知。
当前披露的技术通过将应用程序资源文件存储在远程存储装置(诸如基于云端的存储装置)中而使得能够透明地减小客户端设备上的应用程序所占据的空间。方法包括接收安装应用程序的请求。应用程序可以是包括一个或多个应用程序资源文件的任何应用程序。在一些情况下,操作系统或被配置为安装包括应用程序资源文件的应用程序的专用过程或守护进程可以接收该请求。
响应于接收到安装请求,该方法可选择至少一个应用程序资源文件来安装作为应用程序资源文件占位符。在一些情况下,应用程序资源文件占位符可具有其正在替换的应用程序资源文件的外观。另外,该方法可基于预定义标准(诸如应用程序资源文件大小、针对该应用程序的所安装应用程序资源文件的最大总尺寸、目标应用程序使用、和/或应用程序使用历史)来选择要作为应用程序资源文件占位符被安装的应用程序资源文件。作为应用程序资源文件占位符被安装的应用程序资源文件可被存储在远程储存库(诸如基于云端的存储装置)中。
第二方法包括接收来自执行中的应用程序的针对应用程序资源文件的请求。执行中的应用程序可以是包括安装有最小应用程序资源文件集的操作系统的任何应用程序。在一些情况下,操作系统或被设计用于检索应用程序资源文件的专用过程或守护进程可接收该请求。
该方法可响应于识别所请求的应用程序资源文件为应用程序资源文件占位符而检测故障。在一些情况下,应用程序资源文件占位符仿冒具有应用程序资源文件的外观。即,应用程序资源文件占位符和应用程序资源文件可具有相同名称、文件类型、和被显示大小,然而,应用程序资源文件占位符的实际大小可为0字节或者该文件可为空。在此情况下,检测应用程序资源文件为应用程序资源文件占位符可包括识别在该文件上指定比特位被置位。响应于该故障,该方法可从远程存储位置(诸如云计算系统、基于云端的存储装置、其他客户端设备、或对等计算设备)获取所请求的应用程序资源文件。在一些情况下,应用程序资源文件占位符可被替换成所获得的应用程序资源文件。
在一些实施例中,该方法还可包括用应用程序资源文件占位符替换所安装的应用程序资源文件。可响应于满足预定义标准而进行该替换。预定义标准可包括确定不再需要该应用程序资源文件或者在客户端设备上需要额外空间。
系统包括存储器,诸如可存储应用程序、应用程序资源文件、和应用程序资源文件占位符的硬盘驱动器。该系统还可包括第一模块,被配置为控制处理器以接收对应用程序资源文件(诸如模板文件)的请求。在一些情况下,第一模块可为应用程序资源文件检索过程,诸如守护进程或其他应用程序。
当接收到对应用程序资源文件的请求时,第二模块可尝试检索该应用程序资源文件。在第二模块检测到应用程序资源文件占位符时,第二模块可触发故障。在一些情况下,第二模块可通过文件上被置位的指定比特位来检测应用程序资源文件占位符。响应于该故障,第二模块可从远程储存库(诸如基于云端的存储装置)获取所请求的应用程序资源文件。在一些情况下,第二模块可通过使得系统获得所请求的应用程序资源文件来获得所请求的应用程序资源文件。此外,第三模块可用所获得的应用程序资源文件替换应用程序资源文件占位符。
附图说明
为了描述可获得本公开的上述和其他优点及特征的方式,将通过参考附图中示出的具体实施例来呈现以上简述的原理的更为具体的描述。理解这些附图仅示出了本公开的示例性实施例,并且因此不被视为是对本公开范围的限制,将通过使用附图以附加的特异性和细节来描述和解释本文的原理,其中:
图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中,用户与云计算资源120通过借助直接和/或间接通信连接到网络的用户终端1021、1022、…、102n(统称“102”)交互。云计算资源120可支持来自各种不同电子设备的连接,电子设备诸如是服务器;台式计算机;移动计算机;手持式通信设备,例如,移动电话、智能电话、平台电脑;机顶盒;网络支持的硬盘驱动器;和/或其他网络支持的计算设备。而且,云计算资源120可同时从多个电子设备接受连接并且与其进行交互。与这多个电子设备的交互可被设置优先顺序或者同时发生。
云计算资源120可通过各种部署模型,诸如公共、私有、社区、混合、和/或任何其他云部署模型提供云资源。在一些情况下,云计算资源120可支持多个部署模型。例如,云计算资源120可通过公共部署模型提供一组资源,并通过私有部署模型提供另一组资源。
在一些配置中,用户终端102可在互联网连接可用的任何位置访问云计算资源120。然而,在其他情况下,云计算资源120可被配置为限制对某些资源的访问使得仅可从某些地点访问资源。例如,如果云计算资源120被配置为使用私有部署模型提供资源,则云计算资源120可限制对资源的访问,诸如通过要求用户终端102从防火墙后访问资源。
云计算资源120可通过各种资源模型,诸如软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(LaaS)、和/或其他任何云服务模型为用户终端102提供云资源。在一些情况下,云计算资源120可为用户终端102提供多个服务模型。例如,云计算资源120可为用户终端102提供SaaS和LaaS两者。在一些情况下,云计算资源120可为不同用户终端102提供不同服务模型。例如,云计算资源120可为用户终端1021提供SaaS,而为用户终端1022提供PaaS。
在一些情况下,云计算资源120可保持账户数据库。账户数据库可为注册用户存储配置文件信息。配置文件信息可包括资源访问权限,诸如允许用户使用的软件、最大存储空间等。配置文件信息还可包括使用信息,诸如消耗的计算资源、数据存储位置、安全设置、个人配置设置等。在一些情况下,账户数据库可驻留在远离云计算资源120的数据库或服务器,诸如服务器104或数据库106。
云计算资源120可提供需要用户交互的各种功能。因此,用户界面(UI)可被提供用于与云计算资源120通信和/或执行与云资源相关联的任务。UI可经由与云计算资源120通信的最终用户终端102来访问。UI可被配置为操作在各种客户端模式中,包括胖客户端模式、瘦客户端模式、或混合客户端模式,这取决于云计算资源120和/或用户终端102的存储和处理能力。因此,在一些实施例中,UI可被实现为在用户终端处操作的独立应用程序。在其他实施例中,基于web浏览器的门户可被用于提供UI。还可以在各种实施例中使用访问云计算资源120的任何其他配置。
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。
用户可向CCR系统200创建账户,用于将数据项从客户端设备存储在基于云端的存储装置,例如基于云端的存储装置244中。云存储引擎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图示了其中在CCR系统200处接收使用增强型基于云端的存储来存储数据项的请求的一种示例性场景300。在场景300中,用户302具有不同种类的客户端设备304、306、和308。用户已经在用户的账户上授权了客户端设备304和306用于将数据项发送到基于云端的存储装置以及从基于云端的存储装置检索数据项。另外,用户已经将外部网络存储设备308授权作为用于用户的数据项的被授权的存储位置。当用户从客户端设备304做出存储请求时,云存储引擎230接收该请求和数据项。在确定数据项应该被存储在外部网络存储设备308上时,云存储引擎230可将该数据项发送到外部网络存储设备308并且更新用户的账户详情以反映存储位置选择。云存储引擎230可以对用户透明的方式确定数据项应该被存储在外部网络存储设备308上。即,云存储引擎230可在没有来自用户的输入的情况下选择将数据项存储在外部网络存储设备308上。
图4图示了其中用户302请求检索先前存储在基于云端的存储中的数据项的一种示例性场景400。在场景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图示了其中使用应用程序资源文件812、814、和816的应用程序810正在客户端设备802上执行的一种示例性场景800。应用程序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图示了其中数据项1110被分配给集合并且CCR系统200有助于数据项1110的发布的一种示例性场景1100。数据项1110被分配给客户端设备1102上的集合。一旦数据项1110被分配,客户端设备1102将数据项1110的副本发送到数据项共享引擎220。集合管理模块222更新集合数据库242。另外,集合管理模块识别到两个额外的订阅的客户端设备1104和1106,并且向客户端设备1104和1106中每一个发布数据项的副本,数据项1112和1114。在接收到数据项的副本时,操作每个客户端设备的用户可将数据项本地地存储在用户选择的存储位置。即,用户不必把数据项存储在特定文件夹中,但是相反可将数据项存储在对用户有意义的位置中。
在一些情况下,订阅集合的用户中只有一个子集的用户可被授权来将数据项添加到集合。这一限制可通过多个技术来实施。在一些情况下,为了实施这种限制,客户端设备可被配置为不分配数据项。可替代地,数据项共享引擎220可被配置为不接受从未授权用户分配的数据项。实施数据项分配限制策略的另外的方法也是可能的。另外,在一些情况下,集合管理员可在数据项被正式分配给集合之前对每个数据项或由特定用户分配的每个数据项进行批准。
除了使用集合来共享数据项之外,订阅集合的用户还可对分配给集合的数据项进行协作。即,在用户对分配给集合的数据项的本地副本做出修改时,修改可自动地发布给订阅该集合的每个其他用户。在一些情况下,客户端设备可实时发送修改。例如,在做出修改时可发送修改。然而,客户端设备也可被配置为以周期性间隔发送一批修改和/或按照来自用户的指令发送一批修改。例如,一批修改可每五分钟或者在数据项被保存时被发送。在另一示例中,在用户选择一选项(诸如发送修改)时,可发送一批修改。另外,客户端设备可被配置为在客户端设备脱机期间收集修改,并且随后一旦客户端设备连接到网络就发送所收集的所有修改。
客户端设备上和/或数据项共享引擎220中的版本控制特征可辅助协作特征。例如,客户端设备可被配置为使得每次用户修改分配给集合的数据项时,客户端设备将整个数据项发送到数据项共享引擎220,其中版本控制模块224将改变并入到存储在集合数据库242中的当前版本中。为了将改变发布到订阅该集合的其他客户端设备,数据项共享引擎可请求订阅客户端设备上该数据项的当前副本,并入所述修改,并且将更新后的数据项返回到客户端设备。这种技术产生明显的额外花销并且有可能干扰其他订阅设备上的用户。因此,一种替代方法是配置客户端设备以包括客户端侧版本控制应用程序和具有版本控制特征(诸如版本控制模块224)的数据项共享引擎220。在用户修改数据项时,客户端设备可使用版本控制软件来识别改变并且仅把修改发送到数据项共享引擎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一部分的高速缓存2022。系统2000从存储器2030和/或存储设备2060向高速缓存复制数据,以由处理器2020快速访问。通过这种方式,高速缓存提供避免处理器2020在等待数据时延迟的性能提升。这些和其他模块可控制或被配置成控制处理器2020以执行各种动作。其他系统存储器2030也可供使用。存储器2030可包括具有不同性能特性的多个不同类型的存储器。可以理解,本公开可以在具有不止一个处理器2020的计算设备2000上操作或者在联网在一起以提供更大处理能力的计算设备的群组或群集上操作。处理器2020可包括任何通用处理器和硬件模块或软件模块,例如存储在存储设备2060中的模块12062、模块22064和模块32066,所述任何通用处理器和硬件模块或软件模块被配置成控制处理器2020以及在软件指令并入实际处理器设计中的情况下的专用处理器。处理器2020基本上可以是完全独立成套的计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
系统总线2010可以是几种类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线,以及使用多种总线架构中任一种的局域总线。存储在ROM 2040等中的基本输入/输出(BIOS)可以提供基本例程,其有助于在诸如启动期间在计算设备2000内的元件之间传输信息。计算设备2000还包括存储设备2060,例如硬盘驱动器、磁盘驱动器、光盘驱动器、磁带驱动器等。存储设备2060可包括软件模块2062、2064、2066,用于控制处理器2020。可以设想其他硬件或软件模块。存储设备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示出了三个模块Mod12062、Mod22064和Mod32066,它们是被配置成控制处理器2020的模块。这些模块可以被存储在存储设备2060上并且在运行时加载到RAM 2050或存储器2030中,或者可以如本领域中所知的那样被存储在其他计算机可读存储器位置中。
本公开的范围内的实施例也可包括有形和/或非暂态计算机可读存储介质,其用于承载或具有存储在其上的计算机可执行指令或数据结构。此类非暂态计算机可读存储介质可以是可由通用或专用计算机访问的任何可用介质,包括上文论述的任何专用处理器的功能设计。以举例而非限制的方式,此类非暂态计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、或任何其他介质,其可用来承载或存储呈计算机可执行指令、数据结构、或处理器芯片设计形式的所需程序代码装置。当信息经由网络或另一通信连接(硬连线的、无线的,或它们的组合)传送或提供至计算机时,计算机适当地将该连接视为计算机可读介质。因此,任何这种连接被适当地称为计算机可读介质。上述的组合也应该包括在计算机可读介质的范围内。
计算机可执行指令包括例如使得通用计算机、专用计算机、或专用处理设备执行某些功能或一组功能的指令和数据。计算机可执行指令也包括由计算机在独立或网络环境中执行的程序模块。通常,程序模块包括例程、程序、组件、数据结构、对象、和专用处理器等的设计中固有的功能,程序模块执行特定任务或实现特定抽象数据类型。计算机可执行指令、相关联的数据结构、和程序模块代表用于执行本文所公开的方法的步骤的程序代码装置的实例。此类可执行指令或相关联的数据结构的特定序列代表用于实现在此类步骤中描述的功能的对应动作的实例。
本领域的技术人员将会理解,本公开的其他实施例可以在具有许多类型的计算机系统配置的网络计算环境中实践,包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、微型计算机、大型计算机等。实施例也可在分布式计算环境中实践,其中任务由通过通信网络(要么由硬连线链路、无线链路,要么由它们的组合)连接的本地和远程处理设备来执行。在分布式计算环境中,程序模块可位于本地存储器存储设备和远程存储器存储设备两者中。
上文描述的各实施例仅仅以例示方式提供,而不应解释为限制本公开的范围。本领域的技术人员将容易认识到,在不遵从本文举例说明和描述的示例性实施例和应用且不脱离本公开的实质和范围的情况下,可以对本文所描述的原理做出各种修改和变更。
Claims (20)
1.一种基于云端的存储系统,包括:
接收安装应用程序的请求的接收装置,所述应用程序包括可执行主应用程序和至少第一应用程序资源文件;以及
经由处理器确定基于第一应用程序资源文件的大小和客户端设备上可用存储器的量在客户端设备上替代第一应用程序资源文件而安装第一应用程序资源文件占位符的确定装置,第一应用程序占位符的大小小于第一应用程序资源文件的大小,其中第一应用程序资源文件占位符具有相关联的指示符,所述指示符指示第一应用程序资源文件占位符是与存储在远程储存库处的第一应用程序资源文件对应的占位符文件;以及
向客户端设备传送可执行主应用程序和第一应用程序资源占位符以供安装的传送装置。
2.根据权利要求1所述的系统,还包括:
接收对第一应用程序资源文件的请求的文件请求接收装置,所述请求从所述应用程序接收;
基于所述相关联的指示符检测第一应用程序资源文件占位符是替代第一应用程序资源文件而被安装在客户端设备上的检测装置;以及
从所述远程储存库获取第一应用程序资源文件的获取装置。
3.根据权利要求1所述的系统,还包括:
接收基于所述应用程序的目标应用程序使用或所述应用程序的应用程序使用历史来替代第二应用程序资源文件安装第二应用程序资源文件占位符的第二请求的接收装置。
4.根据权利要求1所述的系统,其中第一应用程序资源文件和第一应用程序资源文件占位符具有相同名称、文件类型和所显示的大小。
5.根据权利要求4所述的系统,其中第一应用程序资源文件占位符的所显示的大小是虚假的,并且进一步地,其中第一应用程序资源文件占位符具有0字节的实际大小。
6.根据权利要求1所述的系统,还包括:
用于响应于满足预定义标准,用第二应用程序资源文件占位符替换安装在客户端设备上的第二应用程序资源文件的替换装置。
7.根据权利要求1所述的系统,其中所述相关联的指示符是在所述应用程序资源文件上被置位的指定比特位。
8.根据权利要求1所述的系统,其中所述远程储存库为云计算系统。
9.根据权利要求1所述的系统,其中应用程序资源文件为模板文件。
10.一种计算机实现的方法,包括:
由客户端设备接收在客户端设备上安装应用程序的请求,所述应用程序来自与客户端设备进行网络通信的基于云端的存储,所述应用程序包括可执行主应用程序和至少第一应用程序资源文件;以及
确定基于第一应用程序资源文件的大小和客户端设备上可用存储器的量在客户端设备上替代第一应用程序资源文件而安装第一应用程序资源文件占位符,第一应用程序占位符的大小小于第一应用程序资源文件的大小,其中,第一应用程序资源文件占位符具有相关联的指示符,所述指示符指示第一应用程序资源文件占位符是与被存储在远程储存库处的第一应用程序资源文件对应的占位符文件;以及
由客户端设备安装可执行主应用程序和第一应用程序资源占位符。
11.根据权利要求10所述的方法,还包括:
接收对第一应用程序资源文件的请求,所述请求从所述应用程序接收;
基于所述相关联的指示符检测第一应用程序资源文件占位符是替代第一应用程序资源文件而被安装在客户端设备上的;以及
从所述远程储存库获取第一应用程序资源文件。
12.根据权利要求10所述的方法,还包括:
响应于确定不需要第二应用程序资源文件,用第二应用程序资源文件占位符替换安装在客户端设备上的第二应用程序资源文件。
13.根据权利要求10所述的方法,其中所述应用程序为安装有最小资源文件集的操作系统。
14.根据权利要求13所述的方法,其中所述最小资源文件集包括资源文件检索守护进程。
15.根据权利要求10所述的方法,其中应用程序资源文件占位符为空文件。
16.至少一种存储指令的非暂态计算机可读介质,所述指令在由处理器执行时使得所述处理器执行以下操作:
接收对第一应用程序资源文件的请求,所述请求从应用程序接收,所述应用程序由主应用程序和应用程序资源文件构成,所述应用程序资源文件至少包括应用程序资源文件占位符和应用程序资源文件,其中应用程序资源文件占位符是基于应用程序资源文件的大小和客户端设备上的可用存储器的量替代应用程序资源文件而被安装在客户端设备上的,应用程序占位符的大小小于第一应用程序资源文件的大小,其中,应用程序资源文件占位符具有相关联的指示符,所述指示符指示应用程序资源文件占位符是与应用程序资源文件对应的占位符文件;
基于所述相关联的指示符检测第一应用程序资源文件占位符是替代第一应用程序资源文件而被安装在客户端设备上的;以及
从远程储存库获取第一应用程序资源文件。
17.根据权利要求16所述的非暂态计算机可读介质,其中所述相关联的指示符是第一应用程序资源文件上的指定比特位。
18.根据权利要求16所述的非暂态计算机可读介质,其中所述远程储存库为对等计算设备。
19.根据权利要求16所述的非暂态计算机可读介质,其中第一应用程序资源文件为库文件。
20.一种用于基于云端的存储的设备,包括:
用于接收安装应用程序的请求的装置,所述应用程序包括可执行主应用程序和至少第一应用程序资源文件;以及
用于经由处理器确定基于第一应用程序资源文件的大小和可用存储器的量替代第一应用程序资源文件而安装第一应用程序资源文件占位符的确定装置,第一应用程序占位符的大小小于第一应用程序资源文件的大小,其中,第一应用程序资源文件占位符具有相关联的指示符,所述指示符指示第一应用程序资源文件占位符是与被存储在远程储存库处的第一应用程序资源文件对应的占位符文件;以及
用于接收可执行主应用程序和第一应用程序资源占位符以供安装的接收装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/473,560 | 2012-05-16 | ||
US13/473,560 US9086937B2 (en) | 2012-05-16 | 2012-05-16 | Cloud-based application resource files |
PCT/US2013/039773 WO2013173110A1 (en) | 2012-05-16 | 2013-05-06 | Cloud-based application resource files |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104380253A CN104380253A (zh) | 2015-02-25 |
CN104380253B true CN104380253B (zh) | 2017-07-04 |
Family
ID=48471107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380032466.3A Active CN104380253B (zh) | 2012-05-16 | 2013-05-06 | 基于云端的应用程序资源文件 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9086937B2 (zh) |
CN (1) | CN104380253B (zh) |
DE (1) | DE112013002542T5 (zh) |
TW (1) | TWI502368B (zh) |
WO (1) | WO2013173110A1 (zh) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101064A1 (en) | 2004-11-08 | 2006-05-11 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
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 |
US9680927B2 (en) * | 2012-02-05 | 2017-06-13 | Apple Inc. | Cloud tabs |
US9122552B2 (en) | 2012-06-29 | 2015-09-01 | Bmc Software, Inc. | Hybrid cloud infrastructures |
DE102012211639A1 (de) * | 2012-07-04 | 2014-01-09 | Siemens Aktiengesellschaft | Cloud-Computing-Infrastruktur, Verfahren und Anwendung |
US10057318B1 (en) | 2012-08-10 | 2018-08-21 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US8881244B2 (en) * | 2012-08-13 | 2014-11-04 | International Business Machines Corporation | Authorizing computing resource access based on calendar events in a networked computing environment |
WO2014054179A1 (ja) * | 2012-10-05 | 2014-04-10 | 富士通株式会社 | 情報処理装置、システム、方法及びプログラム |
JP6044248B2 (ja) * | 2012-10-05 | 2016-12-14 | 富士ゼロックス株式会社 | 情報処理装置、応用プログラム導入装置およびプログラム |
US20140157300A1 (en) * | 2012-11-30 | 2014-06-05 | Lenovo (Singapore) Pte. Ltd. | Multiple device media playback |
WO2014143776A2 (en) | 2013-03-15 | 2014-09-18 | Bodhi Technology Ventures Llc | Providing remote interactions with host device using a wireless device |
US10476758B2 (en) * | 2013-07-11 | 2019-11-12 | Google Llc | Systems and methods for providing notifications of changes in a cloud-based file system |
KR20150018709A (ko) * | 2013-08-09 | 2015-02-24 | 삼성전자주식회사 | 단말의 정보 공유 방법 및 그 장치 |
US9537935B2 (en) * | 2013-09-30 | 2017-01-03 | Eric Trent Dryden | Consumer PC in the cloud |
KR102201095B1 (ko) | 2014-05-30 | 2021-01-08 | 애플 인크. | 하나의 디바이스의 사용으로부터 다른 디바이스의 사용으로의 전환 |
US9967401B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | User interface for phone call routing among devices |
TWI506451B (zh) * | 2014-07-01 | 2015-11-01 | Chunghwa Telecom Co Ltd | Support multi-service version of the service system and its methods |
US9560128B2 (en) | 2014-07-16 | 2017-01-31 | Microsoft Technology Licensing, Llc | Sharing a file through a metadata representation of the file |
US10547562B2 (en) * | 2014-07-31 | 2020-01-28 | Hewlett Packard Enterprise Development Lp | Cloud resource pool |
US10339293B2 (en) | 2014-08-15 | 2019-07-02 | Apple Inc. | Authenticated device used to unlock another device |
US9280683B1 (en) * | 2014-09-22 | 2016-03-08 | International Business Machines Corporation | Multi-service cloud storage decision optimization process |
WO2016075713A1 (en) * | 2014-11-12 | 2016-05-19 | Valerio Pastore | Method and system for sharing multimedia contents through a telecommunication network |
US10073449B1 (en) | 2014-11-18 | 2018-09-11 | Amazon Technologies, Inc. | Unmanned aerial vehicle data services |
US10241761B2 (en) * | 2014-12-29 | 2019-03-26 | Nvidia Corporation | System and method for compiler support for compile time customization of code |
US9519471B2 (en) * | 2014-12-31 | 2016-12-13 | Microsoft Technology Licensing, Llc | Surfacing visual representations of universal applications |
CN106161525B (zh) * | 2015-04-03 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种多集群管理方法与设备 |
US10885209B2 (en) | 2015-04-17 | 2021-01-05 | Dropbox, Inc. | Collection folder for collecting file submissions in response to a public file request |
US10395045B2 (en) | 2015-04-17 | 2019-08-27 | Dropbox, Inc. | Collection folder for collecting file submissions and scanning for plagiarism |
US9692826B2 (en) | 2015-04-17 | 2017-06-27 | Dropbox, Inc. | Collection folder for collecting file submissions via a customizable file request |
US10235152B2 (en) | 2015-06-05 | 2019-03-19 | Apple Inc. | System and method for downgrading applications |
US10275116B2 (en) | 2015-06-07 | 2019-04-30 | Apple Inc. | Browser with docked tabs |
CN106547583B (zh) * | 2015-09-22 | 2020-02-21 | 杭州华为数字技术有限公司 | 一种操作系统安装方法以及装置 |
US10084653B2 (en) * | 2015-09-30 | 2018-09-25 | Upguard, Inc. | Differential node configuration for network maintenance |
US9733927B2 (en) * | 2015-11-11 | 2017-08-15 | International Business Machines Corporation | Detection of software or hardware incompatibilities in software packages |
US10713966B2 (en) | 2015-12-31 | 2020-07-14 | Dropbox, Inc. | Assignments for classrooms |
US10126975B2 (en) | 2016-01-06 | 2018-11-13 | International Business Machines Corporation | Storage mirroring decision by capability sets |
US10133509B2 (en) | 2016-01-06 | 2018-11-20 | International Business Machines Corporation | Consistency group abstraction |
US10116743B2 (en) | 2016-01-06 | 2018-10-30 | International Business Machines Corporation | Storage capacity forecasting by capability sets |
US10320844B2 (en) * | 2016-01-13 | 2019-06-11 | Microsoft Technology Licensing, Llc | Restricting access to public cloud SaaS applications to a single organization |
US20170235924A1 (en) * | 2016-02-17 | 2017-08-17 | Bank Of America Corporation | System and Network for Controlling Content and Accessibility |
US10433025B2 (en) * | 2016-05-10 | 2019-10-01 | Jaunt Inc. | Virtual reality resource scheduling of process in a cloud-based virtual reality processing system |
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 |
TWI629593B (zh) * | 2016-09-07 | 2018-07-11 | 先智雲端數據股份有限公司 | 用於決定雲端儲存系統的快取記憶體中的資料之方法及使用該方法的雲端儲存系統 |
US11165591B2 (en) * | 2016-09-08 | 2021-11-02 | Cable Television Laboratories, Inc. | System and method for a dynamic-PKI for a social certificate authority |
US10083029B2 (en) * | 2016-11-09 | 2018-09-25 | Red Hat, Inc. | Detect application defects by correlating contracts in application dependencies |
CN106411615A (zh) * | 2016-11-22 | 2017-02-15 | 北京奇虎科技有限公司 | 一种用于对系统应用进行云修复的设备和方法 |
CN108228206A (zh) * | 2016-12-20 | 2018-06-29 | 北京智能管家科技有限公司 | 一种应用程序管理方法及装置 |
US10230780B2 (en) * | 2016-12-28 | 2019-03-12 | Intel Corporation | Methods and apparatus for collaborative content rendering |
US10768986B2 (en) * | 2017-01-06 | 2020-09-08 | International Business Machines Corporation | Management and utilization of storage capacities in a converged system |
US10824355B2 (en) | 2017-01-10 | 2020-11-03 | International Business Machines Corporation | Hierarchical management of storage capacity and data volumes in a converged system |
US10938901B2 (en) | 2017-01-11 | 2021-03-02 | International Business Machines Corporation | Management and utilization of data volumes in a converged system |
US11044591B2 (en) * | 2017-01-13 | 2021-06-22 | Futurewei Technologies, Inc. | Cloud based phone services accessible in the cloud by a remote device |
GB201702933D0 (en) * | 2017-02-23 | 2017-04-12 | Ge Healthcare Bio Sciences Ab | A method and a system for installation of an instrument |
US10992795B2 (en) | 2017-05-16 | 2021-04-27 | Apple Inc. | Methods and interfaces for home media control |
US11431836B2 (en) | 2017-05-02 | 2022-08-30 | Apple Inc. | Methods and interfaces for initiating media playback |
US20220279063A1 (en) | 2017-05-16 | 2022-09-01 | Apple Inc. | Methods and interfaces for home media control |
CN111343060B (zh) | 2017-05-16 | 2022-02-11 | 苹果公司 | 用于家庭媒体控制的方法和界面 |
US20180335902A1 (en) * | 2017-05-16 | 2018-11-22 | Apple Inc. | Techniques for dynamically displaying relevant files for selection |
JP2019040400A (ja) * | 2017-08-25 | 2019-03-14 | 富士通株式会社 | インストール制御プログラム、インストール制御方法、および情報処理装置 |
CN107562492B (zh) * | 2017-09-04 | 2021-07-23 | 三星电子(中国)研发中心 | App的管理方法和装置 |
US20190196805A1 (en) * | 2017-12-21 | 2019-06-27 | Apple Inc. | Controlled rollout of updates for applications installed on client devices |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
US10713028B2 (en) * | 2018-06-05 | 2020-07-14 | Microsoft Technology Licensing, Llc | On-demand installer for resource packages |
CN108958745B (zh) * | 2018-06-26 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种在云平台部署Spark集群的装置和方法 |
US11269700B2 (en) | 2019-04-23 | 2022-03-08 | Apple Inc. | System call interception for file providers |
KR102656129B1 (ko) | 2019-05-31 | 2024-04-11 | 애플 인크. | 오디오 미디어 제어를 위한 사용자 인터페이스 |
US11526362B2 (en) | 2019-05-31 | 2022-12-13 | Microsoft Technology Licensing, Llc | Automatic hydration of feature file batches |
US10996917B2 (en) | 2019-05-31 | 2021-05-04 | Apple Inc. | User interfaces for audio media control |
JP7039523B2 (ja) | 2019-06-17 | 2022-03-22 | 株式会社ソニー・インタラクティブエンタテインメント | 開発用ゲーム機およびプログラム実行方法 |
US11029932B2 (en) | 2019-08-23 | 2021-06-08 | Microsoft Technology Licensing, Llc | Hydration of applications |
US11412006B1 (en) | 2019-09-30 | 2022-08-09 | Juniper Networks, Inc. | Lawfully intercepting traffic and providing the traffic to a content destination based on content destination availabilities and priorities |
WO2021248337A1 (zh) * | 2020-06-09 | 2021-12-16 | 深圳市欢太科技有限公司 | 一种应用安装方法、装置、设备及计算机可读存储介质 |
US11392291B2 (en) | 2020-09-25 | 2022-07-19 | Apple Inc. | Methods and interfaces for media control with dynamic feedback |
CN112788118B (zh) * | 2020-12-30 | 2022-08-23 | 宁波奥克斯电气股份有限公司 | Wi-Fi模组、智能家居设备及智能家居系统 |
CN115220609A (zh) * | 2021-03-29 | 2022-10-21 | 北京小米移动软件有限公司 | 信息处理方法及装置、终端设备及存储介质 |
CN112925530A (zh) * | 2021-03-30 | 2021-06-08 | 重庆阿克索信息科技有限公司 | 一种云端和本地混合部署的服务系统 |
CN112988716B (zh) * | 2021-05-15 | 2021-08-24 | 杰为软件系统(深圳)有限公司 | 一种云边协同的数字设备建模方法 |
US11847378B2 (en) | 2021-06-06 | 2023-12-19 | Apple Inc. | User interfaces for audio routing |
US11848990B2 (en) * | 2021-10-15 | 2023-12-19 | Siden, Inc. | Method and system for distributing and storing content using local clouds and network clouds |
US20220138156A1 (en) * | 2021-11-08 | 2022-05-05 | Intel Corporation | Method and apparatus providing a tiered elastic cloud storage to increase data resiliency |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7228540B2 (en) * | 2002-05-14 | 2007-06-05 | Microsoft Corporation | Preparation for software on demand system |
CN101976235A (zh) * | 2010-09-21 | 2011-02-16 | 天津神舟通用数据技术有限公司 | 基于动态网页的可扩展的Word报告自动生成方法 |
US8046331B1 (en) * | 2007-05-25 | 2011-10-25 | Symantec Corporation | Method and apparatus for recreating placeholders |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367698A (en) * | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
US6523166B1 (en) | 1998-09-21 | 2003-02-18 | Microsoft Corporation | Method and system for on-demand installation of software implementations |
WO2010014851A2 (en) * | 2008-07-30 | 2010-02-04 | Diomede Corporation | Systems and methods for power aware data storage |
US20100107091A1 (en) * | 2008-10-29 | 2010-04-29 | International Business Machines Corporation | Publishing requests for dynamically loaded missing images |
US20110087692A1 (en) | 2009-10-13 | 2011-04-14 | Google Inc. | Application whitelisting in a cloud-based computing device |
KR20130028903A (ko) * | 2010-03-09 | 2013-03-20 | 해피 클라우드 인코포레이티드 | 대화형 결정 지향적 소프트웨어 애플리케이션을 위한 데이터 스트리밍 |
US9129000B2 (en) * | 2010-04-30 | 2015-09-08 | International Business Machines Corporation | Method and system for centralized control of database applications |
US20110283277A1 (en) * | 2010-05-11 | 2011-11-17 | International Business Machines Corporation | Virtualization and dynamic resource allocation aware storage level reordering |
US8812627B2 (en) | 2010-08-20 | 2014-08-19 | Adobe Systems Incorporated | System and method for installation and management of cloud-independent multi-tenant applications |
US8782053B2 (en) * | 2011-03-06 | 2014-07-15 | Happy Cloud Inc. | Data streaming for interactive decision-oriented software applications |
US20170161056A1 (en) * | 2011-03-06 | 2017-06-08 | Happy Cloud Inc. | Methods for Managing the Writing of Datasets by Computer-Implemented Processes |
US20170161050A1 (en) * | 2011-03-06 | 2017-06-08 | Happy Cloud Inc. | Methods for Downloading and Installing Computer Software Applications on Demand |
US20120311069A1 (en) * | 2011-06-03 | 2012-12-06 | Robbin Jeffrey L | Regulated Access to Network-Based Digital Data Repository |
US9201895B2 (en) * | 2011-06-03 | 2015-12-01 | Apple Inc. | Management of downloads from a network-based digital data repository based on network performance |
US20130061335A1 (en) * | 2011-09-07 | 2013-03-07 | CloudPointe, LLC | Method, Apparatus, Computer Readable Media for a Storage Virtualization Middleware System |
US8595243B1 (en) * | 2011-10-31 | 2013-11-26 | Symantec Corporation | Systems and methods for deduplicating archived data |
US9143601B2 (en) * | 2011-11-09 | 2015-09-22 | Microsoft Technology Licensing, Llc | Event-based media grouping, playback, and sharing |
US8832296B2 (en) * | 2011-12-15 | 2014-09-09 | Microsoft Corporation | Fast application streaming using on-demand staging |
-
2012
- 2012-05-16 US US13/473,560 patent/US9086937B2/en active Active
-
2013
- 2013-05-06 DE DE112013002542.6T patent/DE112013002542T5/de active Pending
- 2013-05-06 CN CN201380032466.3A patent/CN104380253B/zh active Active
- 2013-05-06 WO PCT/US2013/039773 patent/WO2013173110A1/en active Application Filing
- 2013-05-16 TW TW102117420A patent/TWI502368B/zh active
-
2015
- 2015-06-15 US US14/740,145 patent/US9740468B2/en active Active
-
2017
- 2017-08-18 US US15/680,494 patent/US10387132B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7228540B2 (en) * | 2002-05-14 | 2007-06-05 | Microsoft Corporation | Preparation for software on demand system |
US8046331B1 (en) * | 2007-05-25 | 2011-10-25 | Symantec Corporation | Method and apparatus for recreating placeholders |
CN101976235A (zh) * | 2010-09-21 | 2011-02-16 | 天津神舟通用数据技术有限公司 | 基于动态网页的可扩展的Word报告自动生成方法 |
Also Published As
Publication number | Publication date |
---|---|
DE112013002542T5 (de) | 2015-02-19 |
US9740468B2 (en) | 2017-08-22 |
US20150277889A1 (en) | 2015-10-01 |
TWI502368B (zh) | 2015-10-01 |
US10387132B2 (en) | 2019-08-20 |
WO2013173110A1 (en) | 2013-11-21 |
US20130311986A1 (en) | 2013-11-21 |
TW201403350A (zh) | 2014-01-16 |
US9086937B2 (en) | 2015-07-21 |
US20180060054A1 (en) | 2018-03-01 |
CN104380253A (zh) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104380253B (zh) | 基于云端的应用程序资源文件 | |
CN104395855B (zh) | 用户组之间的基于云端的数据项共享和协作 | |
CN104380261B (zh) | 本地支持的基于云端的存储 | |
EP3646529B1 (en) | System and method for managing a public software component ecosystem using a distributed ledger | |
JP6785920B2 (ja) | ネイティブアプリケーションプレゼンスとインタラクションデータのブラウザ表示 | |
JP6793766B2 (ja) | 共有され同期されたコンテンツにアクセスするアプリケーションにおいてプレゼンスを表示すること | |
JP6980062B2 (ja) | 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること | |
CN103198090B (zh) | 用于优化虚拟桌面环境中的存储分配的方法和系统 | |
US20150066817A1 (en) | System and method for virtual assistants with shared capabilities | |
US10380551B2 (en) | Mixed collaboration teams | |
CN106796632A (zh) | 对存储数据的远程访问控制 | |
US20150067503A1 (en) | System and method for virtual assistants with agent store | |
US20170034182A1 (en) | System and protocol for programmatic inheritance of digital assets | |
JP2014534535A (ja) | ストア横断型電子情報開示 | |
US20230410053A1 (en) | Discoverable collaboration teams | |
CN112115203A (zh) | 云平台的资产管理方法、装置、设备及存储介质 | |
US20140289832A1 (en) | System, Method, And Apparatus For Using A Virtual Bucket To Transfer Electronic Data | |
JP2024012586A (ja) | 知財情報管理システム、及び知財情報管理システムの知財情報提供方法 | |
JP6305758B2 (ja) | 管理システム、管理システムによる管理方法、管理装置、管理装置の制御方法及びプログラム | |
US9424405B2 (en) | Using receipts to control assignments of items of content to users | |
GB2603589A (en) | Consensus algorithm for distributed ledger technology | |
RU2534969C2 (ru) | Способ интеграции с автоматизированной системой управления данными об изделии |
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 |