一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在文件存储系统中使用基于安全临时会话的许可模型进行编辑的制作方法

2021-11-10 04:09:00 来源:中国专利 TAG:

在文件存储系统中使用基于安全临时会话的许可模型进行编辑


背景技术:

1.分布式存储系统(例如,云存储系统)通常使用连接到互联网和/或其他类型网络的服务器计算机和存储设备来存储计算机数据和软件应用。设备可以经由网络浏览器或专用分布式存储应用连接到服务器,例如,以检索数据、上传数据和/或运行软件应用。这种布置可以有利于具有有限存储的计算设备,例如移动计算设备,其可能受益于服务器的大存储容量和更高的性能。这种布置还可以有益于一般地提供集中位置以用于存储可以由多个设备访问的用户的数据,而不管它们的位置如何。
2.分布式存储已经成为一种随手可用的互联网服务(例如,onedrive、dropbox、google docs和amazon cloud drive存储服务)。分布式存储使用户能够将文件上传到服务器并将那些文件分发到允许访问集中存储的数据集的基于安全许可系统的多个设备。具体而言,可以在用户的计算机上创建文件,可以将该文件上传到服务器,并且服务器具有用户提供的关于将该文件发送到哪里或如何访问该文件的指令。
3.近年来,对这种基于云的计算服务的使用已经大大增加。另外,用户创建和存储的数据量已经大大增加。虽然这些数据中的大部分数据可能不包括敏感或机密信息,但用户通常在他们存储的数据中的至少一些数据中包含个人信息。此类数据可以包括银行对账单、账户信息、社会安全号码和其他个人信息。
4.鉴于用户通常存储在其数据文件中的数据总量,确保用户可以安全地访问此类个人信息可能具有挑战性。此外,对他们的所有数据应用特殊的安全措施,或者对每个敏感数据文件单独应用这样的措施是很麻烦的。这可能导致一些效率低下,这是因为安全特征必须应用于不需要或不期望高级别的安全过程的数据,或者用户必须反复遵守此类过程。在许多应用中,例如word、excel、onenote、pages、numbers、google docs和google sheets,每个应用可以有它们自己的数据文件接口,并且对敏感文档的安全措施的实施可能需要每个应用实现安全机制。然而,应用可能不会以一致的方式应用安全特征。这可能会导致一些问题,这是因为应用可能无法以有效的方式实现安全特征。此外,用户可能需要学习各种安全实施方式并与之交互。此类限制可能导致一些效率低下和不太理想的用户体验。


技术实现要素:

5.本公开内容的至少一些实施例涉及在分布式存储系统中提供安全区域。在一些实施例中,安全区域可以被称为保管库(vault),其可以是需要附加的认证措施(例如,两步验证)以访问内容或者甚至查看保管库的特殊文件夹。万一用户的设备或账户遭到破坏,则此文件夹向文件和文档提供附加安全层。在一些实施例中,可以更普遍地为一类动作或活动而不是与安全存储区域绑定的活动提供附加安全层,其中保管库可以是此类活动的一种类型。应当理解,虽然本文中描述的示例实施方式是指保管库,但所公开的原理可以应用于与附加安全层绑定的动作或活动。
6.一旦被认证,保管库可以像典型的文件夹或其他存储容器一样工作,可以使用文
件资源管理器或提供用于访问文件系统的接口的其他应用对所述典型的文件夹或其他存储容器进行访问。在一些实施例中,一旦对用户的保管库的访问被授权,就可以用有时间限制的方式允许对保管库的访问。保管库可以在指定时间之后锁定,需要重新进行认证才能继续访问保管库。
7.在一些实施例中,可以出于编辑指定文档的目的向会话授予许可,以确保即使在指定时间到期之后用户也可以完成对文档的编辑。以这种方式,虽然原始用户会话可能会超时,但用于编辑文档的会话不会。在一些实施例中,可以向应用通知:保管库被锁定并且存储在保管库中的打开文档应当准备好被关闭。因此,应用可以自己努力延长令牌。如果任何保管库项目正在使用中,则应用可以自动延长保管库解锁。
8.本文公开的技术提供了对现有系统的一些改进。例如,当文件被存储在诸如google drive、icloud或onedrive之类的远程存储服务中时,可以提供安全区域,该安全区域可以用于选择性地将文件存储在其中,而无需对用户的所有文件或个别地选择文件应用附加的安全机制。本文公开的技术进一步改进了用户与计算机的交互,同时提供了针对处理资源、网络资源和存储器资源的改进。例如,用户不再需要手动对个体文件应用安全措施或打开单独的安全账户来存储敏感文件,从而导致用户不得不管理多个存储服务和账户。如本文所公开的,提供安全区域的更简化的方式可以使得无意输入的减少,并且基于此可以提高其他效率。
9.提供本发明内容以便以简化的形式对下面在具体实施方式中进一步描述的构思的选择进行介绍。本发明内容并不旨在标识要求保护的发明主题的关键或重要特征,也不旨在用于协助确定要求保护的发明主题的范围。例如,术语“技术”可以指代上述上下文以及整个文档所允许的系统、方法、计算机可读指令、模块、算法、硬件逻辑和/或操作。
附图说明
10.参考附图描述了具体实施方式。在附图中,附图标记的最左边的位标识该附图标记首次出现的附图。相同的附图标记在不同的附图中指示相似或相同的项目。对多个项目中的个体项目的引用可以使用具有字母序列中的字母的附图标记来指代每个个体项目。对项目的一般引用可以使用没有字母序列的特定附图标记。
11.图1是用于在存储网络中提供安全区域的系统的框图。
12.图2是示出用于在存储网络中提供安全区域的系统中的进一步细节的框图。
13.图3图示了示出存储网络中的安全区域的示例用户界面。
14.图4是示出用于在存储网络中提供安全区域的例程的方面的流程图。
15.图5是示出用于在存储网络中提供安全区域的例程的方面的流程图。
16.图6是示出用于在存储网络中提供安全区域的例程的方面的流程图。
17.图7是示出用于在存储网络中提供安全区域的例程的方面的流程图。
18.图8是示出用于在存储网络中提供安全区域的例程的方面的流程图。
19.图9是示出能够实现本文中呈现的方法和技术的方面的计算系统的说明性计算机硬件和软件架构的计算机架构图。
20.图10是示出能够实现本文中呈现的方法和技术的方面的分布式计算环境的图。
21.图11是示出用于能够实现本文中呈现的方法和技术的方面的计算设备的计算设
备架构的计算机架构图。
具体实施方式
22.许多用户在他们存储的数据当中存储和访问敏感文档。此类敏感文档可以包括护照、社会保险号码和其他身份信息,以及诸如银行对账单和账号之类的财务信息。用户不仅希望保护此类敏感信息并防止信息落入不法分子之手,而且通常希望此类信息难以被无意修改或删除。
23.现有的替代方案需要对敏感文档使用附加的密码保护,这可能不与用户的个人云集成。访问权限通常授予特定用户,并经由简单的用户名和密码或其他单因素认证方案进行认证。用户名和密码通常存储在本地并由设备记住。在用户设置好电脑以进行访问之后,整个个人云就可以访问了。个人云中没有需要附加认证的更敏感文档的位置。在各种实施例中,为基于个人云的存储服务提供一种机制以提供安全区域来存储更敏感的文档和文件。这样的区域可能需要用户通过附加的认证措施,例如双因素认证(tfa)或多因素认证(mfa)或更一般的增强型认证协议,以访问安全区域。在用户名/密码组合或用户访问其基于云的存储服务所需要提供的其他简单认证之上和之外,可能还需要此类附加的认证措施。类似地,用户无法识别需要强认证的动作或活动。
24.当使用基于角色的访问控制时,角色通常与给定用户而不是该用户的瞬时认证状态相关联。在个人云文件系统中,在认证完成后,通常通过提供用户名和密码,将对文件和文件夹的访问权限授予安全主体(用户或组)。在本公开内容的一方面,可以向临时强认证状态而不是安全主体授予许可。本公开内容提供了一种仅在使用诸如强认证之类的特定类型的认证时基于临时强认证状态向文件夹或文件授予许可的方式。在一个实施例中,除非首先执行强认证,否则具有常规认证的用户将不能查看保管库中的文件并访问此类文件。在一个实施例中,可以基于临时强认证状态向与整个文件系统绑定但不一定与特定文件夹/文件绑定的动作集授予许可。作为示例,更改整个文件系统的配额可能是这样一种动作,其中更改配额可以与一组操作<查看、创建和修改>绑定。另一个示例可以是清空回收站。可能需要临时强认证状态以便允许用户执行指定的动作,例如不可逆的或以其他方式可能具有重大影响的动作。
25.在另一方面,本公开内容提供了一种创建个人云文件系统的安全部分的方式,该部分需要附加的安全性来访问,例如强认证。在一些实施例中,需要双因素认证(tfa)或多因素认证(mfa)来访问个人云文件系统中的额外的安全文件夹。安全部分可以被称为保管库。提供强认证以获得对该安全部分的访问权限的行为可以被称为解锁保管库。应当理解,虽然可能提及“该保管库”或“一个保管库”,但可能存在与用户的存储相关联的多个保管库。
26.安全部分可以是用户的文件结构的任何部分。因此,保管库可以是文件夹或卷。可以在保管库中创建文件夹,可以将文件和文件夹移动到保管库中,并且可以将现有文件夹转换为保管库。也可以使用保管库来对其他类型的数据结构进行保护。例如,元数据数据库存储系统可以作为保管库而被保护。其他类型的数据和文件管理接口可以被配置为与保管库对接。在一些实施例中,保管库可以由保管库存储服务管理,该保管库存储服务可以提供允许各种应用与保管库交互的服务。
27.在一些实施例中,除非应用正在使用某种形式的本地加密,否则可能需要应用确保所保管的项目不被高速缓存在用户设备的本地存储上。如果应用需要提供保管库项目的离线访问或高速缓存,则项目及其相关联元数据可以使用加密来被存储,并且可以通过强认证和/或生物特征认证来被保护。对于跟踪最近使用的项目的应用,除非基于当前的保管库锁定状态过滤了最近使用的列表,否则保管库项目可能不会出现在该列表中,从而在保管库被锁定时排除保管库项目。另一个示例可以是包含保管库项目数据的搜索索引,这些数据在被锁定时可以类似地排除保管库项目。
28.在一些实施例中,可以不允许保管库中的项目被共享。例如,针对所保管的项目的命令列表可以排除“共享”。对于根保管库文件夹,“下载”和“复制”也可以被排除。如果所共享的项目被移入保管库中,则共享功能可以从那些项目中移除。对于保管库中的项目,共享命令(创建共享链接、发送共享邀请、添加许可)可能会失败。为了共享项目,用户可能需要将它们移出保管库。
29.在一些实施例中,可以在将保管库项目移出保管库或删除之前提供警告。如果保管库项目被删除,则可以将其放入回收站。已删除的保管库项目当在回收站中时可以保留其保管库方面。当在保管库被锁定的同时枚举回收站中的项目时,可以从结果中排除保管库项目。在一些实施例中,即使保管库被解锁,也可以从搜索结果中排除保管库项目。
30.可以存储在保管库中的数据量或对象和文件的数量可以基于与用户的服务协定或用户是否已经订阅了保管库存储服务而受到限制。
31.在一个实施例中,对保管库的访问可以是有时间限制的。在预定时间之后,保管库可以被自动锁定,需要再次认证才能打开。如果保管库在指定的时间量内未锁定且未使用,则保管库可以被自动锁定。这可以被称为保管库自动锁定。时间量可以是可变的。在一个实施例中,可以实施20分钟的时间段。
32.在一些实施例中,可以提供能够长期解锁保管库的保管库令牌。长期解锁可以允许访问保管库更长的一段时间,例如90天。在一些实施例中,长期解锁可以跨多个会话使用。例如,应用可以使用多因素认证来实现短期解锁,例如20分钟,并基于附加授权方法,例如使用本地生物识别,来实现延长。保管库令牌可以在解锁时间段之后被更新。
33.在各种实施例中,保管库许可可以是每个设备或每个特定端点的。即使没有多因素认证独立性,也可以提供设备独立性。例如,当保管库被解锁时,只有发起解锁的设备才能访问保管库。客户端访问可以特定于客户端和会话。不同的客户端或具有不同会话的同一客户端可能需要被单独地认证。
34.在访问存储在保管库中的文件之前,可能需要应用来解锁保管库。在一个实施例中,可以实现需要强认证令牌的解锁api,应用可以在调用解锁api之前获得该令牌。在成功解锁之后,应用可以收到有效期更长的保管库令牌,或者当前会话可以在自动锁定时间段期间是解锁的。在解锁操作之后,应用可以丢弃强认证令牌。应用可以通过使用相同的会话(例如,会话id可以是常规认证令牌的一部分)或通过提供保管库令牌来访问保管库。
35.可以通过指定认证策略来触发mfa。可以配置授权,使得用户账户的全部内容不必选择使用mfa。相反,可以为特定场景请求mfa。
36.当针对保管库中的项目请求任何操作时,可以触发授权过程。所指派的角色可以基于存储上下文信息而获得,并且项目可以被包括在访问控制列表(acl)中。所需要的角色
可以基于与对项目的操作相关联的角色定义配置而获得,例如会话所有者。可以将所指派的角色与所需要的角色进行比较,并且基于结果,可以授予或拒绝访问权限。如果访问权限被拒绝,则可以向客户端提供错误。
37.如果保管库将被解锁,则可以访问解锁页面并且可以传递保管库的资源id。资源id可以是存储服务中的项目的唯一标识符。在一个实施例中,来自票据的会话id可以用作会话id。在另一个实施例中,可以使用包括用户标识符(例如,putd)和另一个值的散列。在一个实施例中,可以使用用户最后通过输入密码而登录的时间。可以访问解锁页面并且可以发起mfa过程。
38.在一些实施例中,保管库内部的项目可以具有保管库方面。该方面可以指示特定于保管库的信息,例如项目是否在保管库中,保管库是否被锁定,或者到期时间。
39.一旦被解锁,应用可以将保管库视为单个文件系统的一部分,而不必实施其自己的保护方案。客户端应用可以通过接收关于库中的变化的信息并在设备上本地同步文件来枚举文件。例如,保管库可以是在不同的端点上已经创建的,并且可能需要同步。否则,保管库可能已经在该端点上创建。在任何一种情况下,默认初始状态都是锁定的。
40.保管库可以延长到移动和文件同步客户端。文件同步客户端可以被配置为:维持与保管库的内容同步的任何内容的安全性,包括维持对本地存储的内容的安全访问。同步或移动客户端可以将保管库令牌作为所有后续调用的新报头来进行传递,否则它们可能无法访问保管库。如果保管库令牌与项目的acl匹配,则访问权限可以被授予。
41.在一些实施例中,当在移动设备上发起保管库访问时,移动设备可以能够基于其自己的认证方法来维持对保管库的访问权限,从而允许使用移动设备方法来代替服务侧认证要求,例如使用可用于对用户进行认证的生物特征输入。基于使用这些方法的持续认证,移动设备可以继续同步保管库内容。
42.每个端点(例如,网站、移动客户端和同步客户端)可以能够自动提供保管库(即触发保管库特殊文件夹的创建)。在一个实施例中,可以使用xml文件来控制设置。可以在运行时读取和解析文件以检索文件中定义的设置。角色定义可以基于角色来定义对每种方法和属性的访问权限。会话所有者可以是在保管库文件夹被解锁时所指派和授予的一个角色。创建保管库子项目可能需要会话所有者角色。在一个实施例中,存储在保管库中的项目可以按层级布置,并且子项目可以从其父辈继承策略和行为。层级中定义了子辈可以继承的策略和行为的项目可以被称为组件。
43.当用户单击保管库时,可以调用客户端侧逻辑,从而打开嵌入式浏览器窗口,该窗口被配置为提示用户执行强认证,例如mfa。移动客户端可以在维持服务器访问的同时支持特定于客户端的锁定/解锁。同步客户端可以依赖于服务器侧的锁定/解锁。锁定保管库可以使得在进行后续调用以识别更改时删除与保管库相关联的文件。
44.在一些实施例中,保管库存储服务可以放宽将数据添加到保管库的要求,但是需要更高程度的认证以查看、编辑、移动或删除保管库中的数据。
45.在以下示例中,访问保管库所需要的附加认证措施是多因素认证(mfa),但是应当理解,可以实施其他认证措施。在一个实施例中,当用户使用mfa成功登录时,可以发布访问令牌并将其与当前会话相关联。在一个实施例中,令牌可以与用户的id和分区的id相关联。当前会话id可以被添加到访问控制列表(acl)。然后对保管库的访问权限可用,并且可以向
用户指派角色。该角色可以部分用于访问保管库内容。在一些实施例中,对保管库的访问可以经由可用的设备id而与特定设备上的会话绑定。
46.如果应用在保管库解锁之后选择使用包括会话id的常规令牌进行访问,则这样的访问可以是短期解锁。保管库可以在锁定超时之后锁定该会话,并且应用可以定期延长解锁时间以继续访问保管库。如果应用没有针对锁定超时执行任何保管库操作,则会话解锁可能会过期,并且可能需要新的解锁。如果用户注销然后重新登录,则可以创建新会话并且可能需要新的解锁。
47.在一些实施例中,保管库可以被实现为可以配置有角色定义和保管库文件夹根的特殊文件夹。保管库的角色定义配置可以包括保管库文件夹根作为顶层保管库文件夹的角色定义。可以使用预先配置的模板来创建保管库,在该模板中抽象了创建的细节。
48.当前公开内容描述了主要向临时认证的会话授予许可。通过授予许可,保管库存储服务还可以维护当前打开了保管库的人员的记录。保管库存储服务还可以通过基于自动锁定超时或其他因素锁定保管库来撤销访问权限。通过维护锁定控制,保管库存储服务可以通过不依赖于用户遵守安全实践来实施一致的安全级别。保管库存储服务可以通过撤销许可,例如通过控制acl,来维持锁定控制。在一些实施例中,对保管库的访问权限的撤销可以使得从设备中删除所保管的文档的任何本地保存的副本。
49.基于从原始会话的继承,可以允许对所保管的文档发起的动作,从而允许从原始会话中分离出附加会话。例如,最初可以执行mfa以认证会话,并且可以启动进一步的配置以提供更加定制的访问级别。例如,可以针对不同的上下文生成与次级策略相关联的次级或子令牌。次级或子令牌可以部分基于第一令牌的状态。在一些实施例中,附加会话可以是脱离的。附加会话可以与原始会话相关联,其中原始会话可以某种方式影响派生会话。例如,可以通过刷新原始会话的生命周期来更新次级会话的会话生命周期。因此,次级或子令牌策略可以与原始令牌相脱离或派生自原始令牌,并且次级或子令牌的生命周期可以与原始令牌相脱离或绑定。
50.在一些实施例中,文件恢复功能可以用于将保管库恢复到先前的时间点。如果用户有保管库,则访问文件恢复功能可能需要解锁保管库。与文件恢复功能相关的api可能需要保管库被解锁。
51.在一些实施例中,虽然文件恢复功能可以撤消与保管库中的项目相关的动作,但是文件恢复功能可以不撤消保管库本身的创建或删除(禁用)。在一个实施例中,在文件恢复期间,创建和删除保管库根文件夹可以被视为不可逆的。
52.当如本文所描述的向使用mfa的用户授予有时间限制的许可时,即使用户正在编辑文档,也可能达到会话时间限制。如果在文档可以被保存并且应用被关闭之前文档变成锁定的,则可能会出现意外结果或失败。另外,一些应用可能未被配置为与保管库功能交互,并且可能无法处理突然无法访问保管库中的文件。
53.在一些实施例中,如果确定用户打开了保管库文件并且正在活跃地编辑该文件,则可以推迟自动锁定。在一些实施例中,可以做出关于何时锁定保管库的基于启发法的决定。该决定还可以基于多个因素,例如用户活动的级别和类型、自tfa以来的时间长度,等等。通过经由强认证提供在有限时间期间可访问的区域,用户可以在该时间限制期间继续访问保管库中的文件,而无需对每个操作进行认证。
54.在本公开内容的另一个方面,可以出于编辑指定文档的目的向会话授予许可,以确保即使在临时保管库许可到期之后用户也可以完成对文档的编辑。这样,虽然原始用户会话可能会超时,但用于编辑文档的会话不会。在一些实施例中,可以向应用通知:保管库被锁定并且存储在保管库中的打开文档应当准备好关闭。因此,应用可以自己努力延长令牌。如果任何保管库项目正在使用中,则应用可以自动延长保管库解锁。当保管库解锁即将因不活动而到期时,应用还可以警告用户,并提供延长保管库解锁的选项。该应用还可以提供手动锁定保管库并因此撤销现有保管库解锁的选项。
55.延长的或更长寿命的令牌允许针对具有不同安全级别的情况定制用户动作和体验。一旦执行了mfa并授予了保管库访问权限,保管库就可以被配置为:授予具有不同安全级别的进一步授权,例如启动浏览器会话、启动针对文件的编辑会话、解锁移动设备等。条目可以被包括在保管库acl中以允许这些次级动作。
56.在一些实施例中,可以仅出于编辑指定文档的目的来授权新会话。尽管保管库可能会超时并锁定原始会话,但用于编辑文档的会话可能不会受到影响。授予的许可可以被限定为正在被编辑的文档。在一些实施例中,当库被解锁时,会话可以仅被授予对指定文件或文档的访问权限。
57.在一些实施例中,保管库存储服务可以实现被配置为与保管库机制交互的操作环境与未被配置为与保管库机制交互的操作环境之间的兼容性。操作环境可以代表未被配置为与保管库交互的传统应用而获得令牌。操作环境可以代理保管库令牌延长和管理,尽管传统应用没有被专门配置为处理与保管库的交互。
58.随着时间的推移,云文件系统的一些部分可以实现不同的功能。然而,较旧的应用可能无法与新功能交互,甚至在云文件系统更新后停止工作。例如,在特定文件夹具有特殊功能或约束的云文件系统中,例如本文中公开的具有特殊mfa要求的保管库,一些现有应用可能表现不正确,无法读取文件夹或文件,或随着具有新功能的特殊文件夹被引入而完全停止工作。另外,此类应用可能会错误地处理保管库中的信息并带来安全风险。典型的解决方案需要客户端和服务器就基于版本级别和接口定义的特定功能达成一致。这将要求客户端和服务器事先就版本级别和功能达成一致。
59.在本公开内容的另一方面,可能需要应用添加特殊报头以便被提供对保管库的访问权限。可能不允许不提供该报头的应用访问保管库。提供特殊报头的应用可能还需要提供强认证令牌以在访问任何保管库内容之前解锁保管库。可以向账户管理服务请求强认证令牌,并经由应用编程接口(api)将其传递给保管库存储服务。在一些实施例中,这对于每个解锁请求可能是必需的,即使用户已经利用双因素认证登录。例如,应用可以将api请求中的选择加入报头传递给保管库存储服务以指示知晓保管库,并且应用可以在保管库被解锁之前被提供与保管库有关的信息,例如对其在文件系统中的位置的指示。如果调用应用未提供选择加入报头,则即使提供了授权令牌,也可以对应用隐藏保管库。提供选择报头的应用可以被称为保管库知晓应用。以这种方式,较旧的应用可以继续保持功能不变,而新的部分被隐藏,因此不需要来自应用的动作。
60.在一个实施例中,支持保管库的应用可以包括具有与保管库相关的每个请求的“优选”请求报头。例如,优选:包括

特征=保管库(prefer:include

feature=vault)。不包括该报头的应用可能看不到所保管的文件夹或其下的任何项目。
61.替代实施方式可以利用文件系统中的隐藏标志或系统标志来解决该问题。然而,此类方法可能揭示关于隐藏对象的存在的信息。所描述的实施例允许在每个应用的基础上进行定制,而不必存储每个应用的状态信息或以其他方式存储每个设备上的状态或每个设备级别的定制,这需要大量的存储语义。所描述的实施例还允许基于调用的上下文的灵活性。所描述的实施例还允许在不跟踪版本级别的情况下确认兼容性。
62.在特定文件夹具有特殊功能或限制(例如具有如本文所述的特殊mfa要求的保管库)的基于云的文件系统中,保管库在其被解锁时可用,而在其被锁定时不可用。当保管库被锁定时,保管库内的文件夹和文件可能看起来消失了。本地文件可视化系统必须确定是否从本地文件系统中移除,或者以其他方式在由于保管库锁定而隐藏的文件或由于实际删除而不再出现的文件之间进行区分。
63.在本公开内容的另一方面,锁定在保管库中并且当前没有活动和授权会话的文件和文件夹可以被显示为被文件系统锁定而不是删除被锁定的项目。在一些实施例中,锁定区域内的项目列表可以以其他方式不可见,因此不允许暴露此类项目的存在。在一些场景中,这可能是期望的以便提供为锁定项目提供状态所需的最少信息,而不暴露与项目有关的特定信息。
64.在一个实施例中,碑石(tombstone)可以用于识别所保管和锁定的项目。许多客户端为软删除和硬删除的项目提供支持碑石。碑石向客户端指示该项目应当被显示为已删除和/或应当被隐藏。为了向保管库知晓客户端指示必须从磁盘中删除项目而不是将其移动到回收站,“锁定”属性可以被包括在碑石中。保管库知晓客户端可以使用该属性来确定应当在本地删除文件。附加属性对于传统客户端可能是完全透明的。
65.通过使用碑石向客户端指示该项目在该客户端上不再可见并且应当被删除,可以向未被配置为与保管库交互的客户端通知锁定的项目不再可用。客户端可以基于该信息来确定要采取哪些本地动作。这可以允许未被配置为与所保管的项目交互的应用实现适合或以其他方式与所保管的项目的锁定一致的动作。因此,当保管库被锁定时,客户端可以在本地删除所保管的项目。
66.可以实现至少两种类型的授权。完全信任的第一方授权可以由同步客户端和移动客户端使用。委托授权可以用于获得无需同意的访问令牌。为了访问存储在云中的用户的保管库,mfa必须成功。为了对保管库中的文件执行任何创建、读取、更新和删除操作,客户端必须具有已在超时时段内被mfa的活动授权。
67.图1图示了使用户能够创建和访问保管库的系统100。在一个说明性示例中,系统100包括至少两个计算设备:客户端计算设备106以及操作远程存储服务110(本文中也被称为“远程服务110”)和保管库存储服务136(本文中也被称为“保管库服务136”)的服务器计算机。系统100还可以包括用于使计算设备能够进行通信的一个或多个网络108。提供该示例是出于说明性目的,并且不应被解释为限制性的。可以理解,系统100可以包括任意数量的计算机,包括对存储在客户端计算机处的单个文件同时进行编辑的多个客户端计算机以及促进远程存储服务110的一个或多个服务器计算机。
68.远程服务110和保管库存储服务136的形式可以是个人计算机、服务器群、大型计算机系统,或者具有用于处理、协调、收集、存储和/或在一个或多个计算设备之间传送数据的组件的任何其他计算系统。此类服务的示例包括由onedrive、dropbox、微软、亚马逊、苹
果、谷歌等提供的存储服务。
69.服务110还可以包括一个或多个存储单元151,本文中也被称为“远程存储151”。远程存储151可以包括定义了多个目录位置的存储结构。例如,远程存储151可以包括具有多个文件夹(例如,位置(a至g))的目录结构。文件夹可以具有层级,如图1所示,并且每个文件夹可以存储一个或多个文件和/或文件夹。
70.客户端计算设备106可以具有任何合适的形式,例如电话、膝上型计算机、桌面式计算机、平板电脑等。客户端计算设备106可以包括生产力应用141、同步应用142、客户端模块143和本地存储150。客户端模块143可以提供用于执行本文中公开的操作的方面的功能,其可以与保管库存储服务136配合。
71.生产力应用141提供用于使用户能够编辑保管库文件120的内容131的功能。例如,生产力应用141可以包括编辑文档内的文本和图像的文字处理应用。在其他示例中,生产力应用141可以包括电子表格应用、演示应用、绘图应用,或者用于编辑保管库文件120的内容131的任何其他合适的应用。保管库文件的内容可以包括文本数据、图像数据、视频数据、标记语言,或者可以定义想法、对象、描述、图像、偏好等的任何其他格式的数据。在一些配置中,生产力应用141可以显示图形用户界面,该界面显示用于显示保管库文件120的内容131的创作窗格191。
72.同步应用142对存储在客户端计算设备106上的文件和文件夹进行管理,并且将文件和文件夹与远程存储服务110同步。同步应用142管理客户端计算设备106的命名空间的各方面。为了说明的目的,对文件的拓扑命名空间修改包括对文件名的修改和/或对文件位置的修改。文件可以从起始位置移动到目标位置。对文件进行重命名和/或将文件移动到目标位置在本文中也被称为对文件的命名空间拓扑的修改。同步应用142可以维护针对存储在客户端计算设备106上的文件的数据库。数据库可以包括多个文件属性,包括文件名和目录位置,其可以用于协调与服务110的文件同步。
73.保管库存储服务136和同步应用142可以相互通信以协调所保管的文件的状态。例如,保管库存储服务136可以锁定文件。在文件被锁定的同时,保管库存储服务136可以防止同步应用142看到该文件或对该文件施加任何更改。生产力应用141还可以向保管库存储服务136发送请求以访问保管库文件121,该保管库文件121可以具有本地副本120。同步应用142还可以提供关于所保管的文件的信息,例如指示在其上进行编辑的计算机的机器标识符,以及指示文件上次与保管库存储服务136同步的时间的其他数据。这样的信息可以使生产力应用141能够与保管库存储服务136配合。
74.本地存储150可以包括定义了多个文件位置的结构。例如,本地存储150可以包括具有多个文件夹(a至d)的目录结构。文件夹可以具有层级,如图1所示,并且每个文件夹可以用于存储一个或多个文件。出于说明的目的,本地存储150包括五(5)个有效文件夹(a至d)和两个保管的文件夹(f至g)。创建所保管的文件的过程可以从一请求开始。该请求可以标识要在其处创建所保管的文件的期望目录位置。可以以多种方式来标识该位置,例如,可以通过文件目录的路径、地址、命名空间、或指示目录结构内的位置的任何其他合适的数据来标识该位置。在一个说明性示例中,该位置可以包括onedrive命名空间。出于说明的目的,该请求中提供的位置在本文中也被称为“所请求的位置”。
75.参照图2,图2示出了另一个示例系统200,包括客户端设备226以及被配置为维护
云数据库204中的文件的副本的文件托管平台202。客户端设备226可以具有文件i/o管理器。例如,当在客户端设备226的本地驱动器228(例如,sata型固态硬盘驱动器和/或任何其他合适的驱动器类型)上对个体文件或文件夹220的被移动的文件或文件夹220(m)执行操作时,系统200可以使文件托管平台202在云数据库204内定位文件或文件夹220的内容数据222,这取决于文件夹相对于同步根的位置。因此,如图所示,存储在云数据库204处的被移动的文件或文件夹220(m)的实例可以与内容数据222同步。示例文件托管平台202包括但不限于dropbox、box、google drive、mega、pcloud、sugarsync、amazon drive和/或microsoft onedrive。
76.在一些实施例中,文件托管平台202可以包括用于存储与云数据库204内的一个或多个文件或文件夹220相关联的数据的目录结构206。如本文中所使用的,术语“目录结构”通常可以指文件系统可以利用其来使文件显示给用户的任何方案。示例目录结构包括但不限于电子文件夹结构。在图2的具体实施例中,目录结构206可以包括一个或多个文件夹208,一个或多个文件或文件夹220存储在这些文件夹中。如本文中所使用的,术语“文件夹”可以指在分层文件系统编目结构中定义的目录,并且可以包括对一个或多个文件220和/或其他文件夹220中的个体文件的引用。目录结构还可以包括包含文件222的保管库文件夹209。如进一步说明的,文件220和所保管的文件222的本地对应物可以在本地驱动器228和文件托管平台202处的目录结构206内同步脱水(dehydrated)。
77.如本文中所使用的,术语“同步”可以用作描述性术语以指示特定存储位置(例如,云数据库204、本地驱动器228等)处的文件或文件夹220的实例使其相应的内容数据222也存储在特定的存储位置。例如,在图示示例中,存储在云数据库204中的文件或文件夹220的实例可以被描述为同步的文件或文件夹,如果其内容数据也存储在云数据库204内的话。
78.在一些实施例中,客户端设备226可以包括用户应用228,该用户应用228根据目录结构206提供对一个或多个文件220的访问。例如,用户应用228可以使客户端设备226显示文件浏览器图形用户界面(gui),其使用户能够在目录结构206中导航。作为更具体但非限制性的示例,用户应用228可以使客户端设备显示文件夹208中的个体文件夹的图形文件夹表示,并且还可以显示图形文件夹表示内的文件图标以使用户能够查看文件的状态,以及在一些实施例中,打开、移动、删除或复制文件夹208内包含的文件。
79.在一些实施例中,用户应用228可以与操作系统(os)220的一个或多个组件进行通信,以便显示文件浏览器gui和/或用于促进选择数据的生成,该选择数据指示文件或文件夹220以及目录结构206内要将文件或文件夹220复制或移动到的目目标路径。os 220可以是用于管理计算机硬件和/或软件资源以及用于向用户应用228和/或其他应用(未示出)提供服务的任何合适的系统软件。示例os 220可以包括但不限于microsoft windows的各种版本(例如,windows 8.2或20、windows embedded standard 7等)和/或macos的各种版本(例如,macos high sierra等)。
80.在一些示例中,用户应用228可以与os 220的文件管理器224通信。示例文件管理器包括但不限于microsoft windows的file explorer组件和/或由苹果公司开发的macintosh操作系统族的finder组件。在一些示例中,用户应用228可以与os 220的文件操作应用编程接口(api)222通信。文件操作api 222可以包括使客户端设备226从指定文件或文件夹读取数据的数据读取功能,以及使客户端设备226将数据写入指定目标路径的数据
写入功能的抽象。示例用户应用228包括但不限于专门配置为与文件托管平台202通信的桌面客户端应用(例如,由dropbox开发的dropbox app桌面应用、由box开发的box drive桌面应用,和/或onedrive桌面客户端)。因此,可以理解,在各种实施方式中,用户应用228可以被配置为:维护目录结构206的本地实例,并且使用户能够浏览目录结构206的本地实例,而无需与文件托管平台202持续通信。
81.在一些实施方式中,客户端设备226可以包括同步引擎226,用于将位于客户端设备226处的目录结构206的本地实例与位于云数据库204的目录结构206的云实例进行同步。示例同步引擎226包括但不限于由dropbox开发的synchronization api、由google开发的backup and synchronization,以及onedrive同步引擎。因此,可以理解同步引擎226可以是os 220的本机组件,或者可以是下载并安装到与os220分离的客户端设备226上的附加组件。
82.如进一步所示,客户端设备226包括中央处理单元(“cpu”)230,其经由总线(未示出)连接到各种组件,例如本地驱动器228、存储器232、输入/输出(i/o)控制器234和/或网络接口236。可以理解的是:本文中描述的系统组件(例如,用户应用228、os 220和/或同步引擎226)当被加载到cpu 230中并被执行时,可以将cpu 230和整个客户端设备226从通用计算系统变换成定制为促进本文中呈现的功能的专用计算系统。cpu 230可以由任何数量的晶体管或其他分立电路元件构成,其可以单独地或共同地呈现任何数量的状态。更具体地,响应于包含在本文中公开的软件模块内的可执行指令,cpu 230可以充当有限状态机。这些计算机可执行指令可以通过指定cpu 230如何在状态之间转换来变换cpu 230,从而变换构成cpu 230的晶体管或其他分立硬件元件。
83.本地驱动器228及相关联的计算机可读介质为客户端设备226提供非易失性存储。尽管本文中包含的对计算机可读介质的描述提及了诸如固态驱动器和/或硬盘的大容量存储设备,但本领域技术人员应当理解的是:计算机可读介质可以是可以由诸如系统200之类的计算架构访问的任何可用计算机存储介质或通信介质。通信介质包括计算机可读指令、数据结构、程序模块和/或诸如载波波形之类的调制数据信号或其他传输机制中的其他数据,并且包括任何传递介质。术语“调制数据信号”意指使其特性中的一个或多个特性以对信号中的信息进行编码的方式改变或设置的信号。通过举例而非限制的方式,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声音、rf、红外线和其他无线介质之类的无线介质。上述各项中任意项的组合也被包括在计算机可读介质的范围之内。
84.通过举例而非限制的方式,计算机存储介质可以包括用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的,以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机存储介质包括但不限于:ram、rom、eprom、eeprom、闪存或其他固态

存储器技术、cd

rom、数字多功能盘(“dvd”)、hd

dvd、blu

ray或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可以用于存储所需的信息且可以由客户端设备226访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体本身不包括波、信号和/或其他瞬态和/或无形通信介质。
85.i/o控制器234可以接收和处理来自多个其他设备的输入,这些设备包括键盘、鼠标或电子笔(图2中未示出)。类似地,i/o控制器234可以向显示屏(例如,以显示本文所述的
文件浏览器gui)、打印机或其他类型的输出设备(也未在图2中示出)提供输出。网络接口236可以使客户端设备226能够连接到一个或多个网络224,例如局域网(lan)、广域网(wan)、无线局域网(wlan),或者用于在客户端设备226和文件托管平台202之间传递信息的任何其他合适的网络。
86.参照图3,图示了示例文件浏览器gui 300,其可以与用户应用338相关联地显示在客户端设备336处,以使用户能够输入针对目录结构306内的文件或文件夹操作的命令。在图示示例中,用户正在执行拖放手势以将文件330从文件夹308移动到保管库309。基于拖放手势,用户应用338生成指示文件330以及目录结构306内要将第一文件330移动到的目标路径的选择数据。如进一步图示的,客户端设备336可以基于选择数据生成移动指令206,并且最终可以根据本文中描述的技术将移动指令306的至少一些方面发送到文件托管平台302。
87.在一些实施例中,文件浏览器gui 300可以被配置为以图形方式指示文件330的状态。在图示示例中,文件浏览器gui 300以图形方式表示文件夹308内的文件。文件浏览器gui 300还以图形方式表示保管库309,如锁定图标所指示的。因此,用户可以从锁定图标得知文件夹309是保管库。在各种实施方式中,用户可以能够指定将哪些文件夹转换为保管库。
88.现在转向图4,下文示出并描述了用于控制对存储在基于云的存储服务中的数据的访问的例程400的方面。应当理解,本文所公开的方法的操作不以任何特定顺序来呈现,并且以替代的顺序来执行一些或全部操作是可能的并且是被考虑的。为了便于描述和说明,已经按演示顺序呈现了操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行这些操作。
89.还应当理解,所示出的方法可以在任何时间结束并且不需要整体执行。方法的一些或全部操作和/或基本等效的操作可以通过执行包括在计算机存储介质上包括的计算机可读指令来执行,如下文所定义的。在说明书和权利要求书中使用的术语“计算机可读指令”及其变体在本文中被广泛使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。可以在各种系统配置上实现计算机可读指令,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品、其组合等。
90.因此,应当理解,本文所述的逻辑操作被实现为(1)在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)计算系统内的互连的机器逻辑电路或电路模块。该实现是取决于计算系统的性能和其他要求的选择问题。因此,本文中描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任意组合来实现。
91.例如,例程400的操作在本文中被描述为至少部分由运行本文公开的特征的模块实现,并且可以是动态链接库(dll)、静态链接库、由应用编程接口(api)产生的功能、编译程序、解释程序、脚本或任何其他可执行指令集。数据可以被存储在一个或多个存储器组件中的数据结构中。可以通过寻址对数据结构的链接或引用来从数据结构中检索数据。
92.尽管以下说明涉及附图的组件,但是可以理解,例程400的操作也可以以许多其他方式实现。例如,例程400可以至少部分由另一远程计算机或本地电路的处理器来实现。另外,例程400的一个或多个操作可以替代地或附加地至少部分由单独工作或与其他软件模
块结合工作的芯片组来实现。在下文描述的示例中,计算系统的一个或多个模块可以接收和/或处理本文中公开的数据。适合于提供在本文中公开的技术的任何服务、电路或应用都可以在本文中描述的操作中使用。
93.参考图4,例程400开始于操作401,在操作401处,在基于云的存储服务处接收用于访问存储在基于云的存储服务处的数据的第一请求。在一个实施例中,数据与用户账户相关联。
94.接下来,在操作403处,基于与用户账户相关联的用户名和密码来认证第一请求。
95.操作405示出了在基于云的存储服务处接收针对存储在与增强型认证协议相关联的区域中的文件的第二请求。
96.接下来,在操作407处,执行增强型认证协议以对第二请求进行认证。
97.在操作409处,响应于对第二请求进行认证,向临时强认证状态授予访问存储在与增强型认证协议相关联的区域中的文件的许可。
98.在操作411处,响应于对第二请求进行认证的失败,对存储在与增强型认证协议相关联的区域中的文件的访问被拒绝,同时对存储在与用户账户相关联的其他区域中的文件的访问被允许。
99.现在转向图5,下文示出并描述了用于控制对存储在基于云的存储服务中的数据的访问的例程500的方面。参考图5,例程500开始于操作501,操作501示出了在基于云的存储服务处存储与用户账户相关联的数据。
100.接下来,操作503示出了在基于云的存储服务处接收用于使该数据的一部分与增强型认证协议相关联的第一请求。
101.操作505示出了响应于第一请求,使该数据的一部分需要增强型认证协议才能访问。
102.接下来,操作507示出了在基于云的存储服务处接收针对存储在该数据中的与增强型认证协议相关联的一部分中的文件的第二请求。
103.操作509示出了基于增强型认证协议来对第二请求进行认证。
104.操作511示出了响应于对第二请求进行认证,授予访问存储在该数据中的与增强型认证协议相关联的一部分中的文件的许可。
105.操作513示出了响应于对第二请求进行认证的失败,拒绝对存储在该数据中的与增强型认证协议相关联的一部分中的文件的访问,同时基于根据与用户账户相关联的简单或基本认证机制的认证允许对存储在与用户账户相关联的其他区域中的文件的访问。
106.现在转向图6,下文示出并描述了用于控制对存储在基于云的存储服务中的数据的访问的例程600的方面。参考图6,例程600开始于操作601,在操作601处,与用户账户相关联的数据被存储在基于云的存储服务处。
107.接下来,在操作603处,该数据的一部分与增强型认证协议相关联。
108.操作605示出了在基于云的存储服务处接收使应用访问与增强型认证协议相关联的数据的请求。
109.接下来,在操作607处,基于增强型认证协议来对该请求进行认证。
110.在操作609处,响应于对该请求进行认证,向应用授予访问与增强型认证协议相关联的数据的许可。在一个实施例中,许可是有时间限制的。
902。大容量存储设备912及其相关联的计算机可读介质为计算机架构900提供非易失性存储。尽管本文中包含的计算机可读介质的描述提及了诸如固态驱动器、硬盘或cd

rom驱动器之类的大容量存储设备,但本领域技术人员应当理解的是:计算机可读介质可以是可以由计算机架构900访问的任何可用计算机存储介质或通信介质。
129.通信介质包括计算机可读指令、数据结构、程序模块或诸如载波波形之类的调制数据信号或其他传输机制中的其他数据,并且包括任何传递介质。术语“调制数据信号”意指使其特性中的一个或多个特性以对信号中的信息进行编码的方式改变或设置的信号。通过举例而非限制的方式,通信介质包括诸如有线网络或直接线连接的有线介质,以及诸如声音、rf、红外线和其他无线介质的无线介质。上述各项中任意项的组合也应当被包括在计算机可读介质的范围之内。
130.通过举例而非限制的方式,计算机存储介质可以包括用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的,以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于:ram、rom、eprom、eeprom、闪存或其他固态

存储器技术、cd

rom、数字多功能盘(“dvd”)、hd

dvd、blu

ray或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可以用于存储所需的信息且可以由计算机架构900访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体本身不包括波、信号和/或其他瞬态和/或无形通信介质。
131.根据各种配置,计算机架构900可以使用通过网络959和/或另一个网络(未示出)到远程计算机的逻辑连接而在联网环境中进行操作。计算机架构900可以通过连接到总线910的网络接口单元914而连接到网络959。应当理解的是:网络接口单元914也可以用于连接其他类型的网络和远程计算机系统。计算机架构900还可以包括用于接收和处理来自包括键盘、鼠标或电子笔(图9中未示出)的多个其他设备的输入的输入/输出控制器919。类似地,输入/输出控制器919可以向显示屏、打印机或其他类型的输出设备(图9中也未示出)提供输出。
132.应当理解的是:本文中描述的软件组件当被加载到cpu 902中并被执行时,将cpu 902和整个计算机架构900从通用计算系统变换成定制为促进本文中呈现的功能的专用计算系统。cpu 902可以由任何数量的晶体管或其他分立电路元件构成,其可以单独地或共同地呈现任何数量的状态。更具体地,响应于包含在本文中公开的软件模块内的可执行指令,cpu 902可以充当有限状态机。这些计算机可执行指令可以通过指定cpu 902如何在状态之间转换来变换cpu 902,从而变换构成cpu 902的晶体管或其他分立硬件元件。
133.对本文中呈现的软件模块进行编码还可以转换本文中呈现的计算机可读介质的物理结构。物理结构的具体信息可依赖于本说明书的不同实施方式中的各种因素。这些因素的示例可以包括但不限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存储还是辅助存储等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态来将本文中公开的软件编码在计算机可读介质上。例如,软件可以转换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。软件还可以转换这些组件的物理状态,以便在其上存储数据。
134.作为另一个示例,本文中公开的计算机可读介质可以使用磁或光技术来实现。在这样的实施方式中,当在其中编码软件时,本文中呈现的软件可以转换磁或光介质的物理
状态。这些转换可以包括改变给定磁介质内特定位置的磁特性。这些转换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其他转换是可能的,而不脱离本说明书的范围和精神,提供前述示例仅为了促进该讨论。
135.鉴于上述描述,应当理解,在计算机架构900中发生许多类型的物理转换,以便存储和执行本文中呈现的软件组件。还应当理解的是:计算机架构900可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还考虑计算机架构900可能不包括图9所示的所有组件,可以包括图9中未明确示出的其他组件,或者可以使用与图9所示架构完全不同的架构。
136.图10描绘了能够执行本文中描述的软件组件的说明性分布式计算环境1000。因此,图10中所示的分布式计算环境1000可以用于执行本文中呈现的软件组件的任何方面。例如,分布式计算环境1000可以用于执行本文中描述的软件组件的方面。
137.根据各种实施方式,分布式计算环境1000包括在网络1004上运行、与网络1004通信或作为网络1004的一部分的计算环境1002。网络1004可以是或者可以包括上文参考图9描述的网络959。网络1004还可以包括各种接入网。一个或多个客户端设备1006a

1006n(下文被统称为和/或一般被称为“客户端1006”,在本文中也被称为计算设备106)可以经由网络1004和/或其他连接(图10中未示出)与计算环境1002通信。在一个图示配置中,客户端1006包括计算设备1006a,例如膝上型计算机、桌面式计算机或其他计算设备;板式或平板计算设备(“平板计算设备”)1006b;移动计算设备1006c,例如移动电话、智能电话或其他移动计算设备;服务器计算机1006d;和/或其他设备1006n。应当理解,任何数量的客户端1006都可以与计算环境1002通信。本文中参考图9和10示出和描述了用于客户端1006的两个示例计算架构。应当理解,图示的客户端1006和本文中示出和描述的计算架构是说明性的,并且不应当被解释为以任何方式是限制性的。
138.在图示配置中,计算环境1002包括应用服务器1008、数据存储1010和一个或多个网络接口1012。根据各种实施方式,应用服务器1008的功能可以由作为网络1004的一部分或与网络503通信的一个或多个服务器计算机提供。应用服务器1008可以托管各种服务、虚拟机、门户和/或其他资源。在图示配置中,应用服务器1008托管用于托管应用或其他功能的一个或多个虚拟机1014。根据各种实施方式,虚拟机1014托管用于在远程同步期间实现对文件拓扑改变的应用内支持的一个或多个应用和/或软件模块。应当理解,该配置是说明性的,并且不应当被解释为以任何方式进行限制。应用服务器1008还托管或提供对一个或多个门户、链接页面、网站和/或其他信息(“门户网站”)1016的访问。
139.根据各种实施方式,应用服务器1008还包括一个或多个邮箱服务1018和一个或多个消息传递服务1020。邮箱服务1018可以包括电子邮件(“email”)服务。邮箱服务1018还可以包括各种个人信息管理(“pim”)和呈现服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息传递服务1020可以包括但不限于即时消息传递服务、聊天服务、论坛服务和/或其他通信服务。
140.应用服务器1008还可以包括一个或多个社交网络服务1022。社交网络服务1022可以包括各种社交网络服务,包括但不限于:用于共享或发布状态更新、即时消息、链接、照片、视频和/或其他信息的服务;用于对文章、产品、博客或其他资源进行评论或显示对其的兴趣的服务;和/或其他服务。在一些配置中,社交网络服务1022由facebook社交网络服务、
linkedin专业网络服务、myspace社交网络服务、foursquare地理网络服务、yammer办公室同事网络服务等提供,或者包括acebook社交网络服务、linkedin专业网络服务、myspace社交网络服务、foursquare地理网络服务、yammer办公室同事网络服务。在其他配置中,社交网络服务1022由其他服务、站点和/或提供商提供,这些供应商可能或可能不被明确地称为社交网络提供商。例如,一些网站允许用户在各种活动和/或上下文(例如阅读发布的文章、评论商品或服务、发布、协作、游戏等)期间经由电子邮件、聊天服务和/或其他方式彼此进行交互。此类服务的示例包括但不限于来自华盛顿州雷德蒙德市的微软公司的windows live服务和xbox live服务。其他服务是可能的并且被考虑。
141.社交网络服务1022还可以包括评论、博客和/或微博服务。这样的服务的示例包括但不限于yelp评论服务、kudzu评论服务、officetalk企业微博服务、twitter消息传递服务、google buzz服务和/或其他服务。应当理解,上述服务列表并非是穷举的,并且为了简洁起见,本文未提及许多附加和/或替代的社交网络服务1022。因此,上述配置是说明性的,并且不应当被解释为以任何方式受到限制。根据各种实施方式,社交网络服务1022可以托管一个或多个应用和/或软件模块,以用于提供在本文中描述的功能,例如在远程同步期间启用对文件拓扑改变的应用内支持。例如,应用服务器1008中的任何一个可以传送或促进本文中描述的功能和特征。例如,在电话或任何其他客户端1006上运行的社交网络应用、邮件客户端、消息传递客户端或浏览器可以与网络服务1022通信,并且促进上文针对图10描述的功能,即使部分的。本文中描述的任何设备或服务都可以用作补充数据的资源,包括电子邮件服务器、存储服务器等。
142.如图10所示,应用服务器1008还可以托管其他服务、应用、门户和/或其他资源(“其他资源”)1024。其他资源1024可以包括但不限于文档共享、渲染或任何其他功能。因此可以理解,计算环境1002可以提供本文中公开的构思和技术与各种邮箱、消息传递、社交网络和/或其他服务或资源的集成。
143.如上所述,计算环境1002可以包括数据存储1010。根据各种实施方式,数据存储1010的功能由在网络1004上操作或与网络503通信的一个或多个数据库提供。数据存储1010的功能还可以由被配置为托管用于计算环境1002的数据的一个或多个服务器计算机提供。数据存储1010可以包括、托管或提供一个或多个真实或虚拟数据存储库1026a

1026n(下文被统称为和/或一般被称为“数据存储库1026”)。数据存储库1026被配置为托管由应用服务器105使用或创建的数据和/或其他数据。尽管未在图10中示出,但数据存储库1026还可以托管或存储网页文档、word文档、演示文档、数据结构、由推荐引擎执行的算法和/或由任意应用程序或另一模块使用的其他数据。数据存储库1026的方面可以与用于存储文件的服务相关联。
144.计算环境1002可以与网络接口1012通信或被网络接口1012访问。网络接口1012可以包括用于支持两个或更多个计算设备(包括但不限于计算设备和服务器)之间的通信的各种类型的网络硬件和软件。应当理解,网络接口1012还可以用于连接到其他类型的网络和/或计算机系统。
145.应当理解,本文中描述的分布式计算环境1000可以利用可以被配置为执行本文中公开的软件组件的任何方面的任何数量的虚拟计算资源和/或其他分布式计算功能来提供本文中描述的软件单元的任何方面。根据本文中公开的构思和技术的各种实施方式,分布
式计算环境1000将本文中描述的软件功能作为服务提供给计算设备。应当理解,计算设备可以包括真实机器或虚拟机,包括但不限于服务器计算机、网络服务器、个人计算机、移动计算设备、智能电话和/或其他设备。因此,本文公开的构思和技术的各种配置使得被配置为访问分布式计算环境1000的任何设备都能够利用本文描述的功能来提供本文公开的技术等等。在一个具体示例中,如上文所总结的,本文描述的技术可以至少部分由与图10的应用服务器1008结合工作的网络浏览器应用来实现。
146.现在转向图11,能够执行本文描述的用于在远程同步期间实现对文件的拓扑改变的应用内支持的各种软件组件的计算设备的说明性计算设备架构1100。计算设备架构1100适用于部分由于形状因子、无线连接和/或电池供电操作而促进移动计算的计算设备。在一些配置中,计算设备包括但不限于移动电话、平板设备、板式设备、便携式视频游戏设备等。计算设备架构1100适用于图1、图2、图9、图10中所示的计算设备中的任何一个。此外,计算设备架构1100的各方面可以适用于传统桌面式计算机、便携式计算机(例如,电话、膝上型计算机、笔记本电脑、超便携式计算机和上网本)、服务器计算机和其他计算机系统,如本文所描述的。例如,下文中公开的单点触摸和多点触摸方面可以应用于利用触摸屏或某种其他触摸使能设备(例如触摸使能的跟踪板或触摸使能的鼠标)的桌面式计算机。
147.图11中示出的计算设备架构1100包括处理器1102、存储器组件1104、网络连接组件1106、传感器组件11011、输入/输出组件1110和功率组件1112。在所示配置中,处理器1102与存储器组件1104、网络连接组件1106、传感器组件11011,输入/输出(“i/o”)组件1110和功率组件1112通信。尽管在图11中图示的个体组件之间没有示出连接,但组件可以进行交互以执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)进行通信。
148.处理器1102包括中央处理单元(“cpu”),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令,以及与计算设备架构1100的其他组件通信,以便执行本文描述的各种功能。处理器1102可以用于执行本文中呈现的软件组件的各个方面,并且特别是,至少部分地利用触摸使能输入的方面。
149.在一些配置中,处理器1102包括图形处理单元(“gpu”),其被配置为加速由cpu执行的操作,这些操作包括但不限于通过执行通用科学和/或工程计算应用,以及(诸如高分辨率视频(例如,720p、10110p以及更高分辨率)之类的图形密集型计算应用、视频游戏、三维(“3d”)建模应用等来执行的操作。在一些配置中,处理器1102被配置为与离散gpu(未示出)通信。在任何情况下,cpu和gpu可以根据协处理cpu/gpu计算模型来配置,其中,应用的顺序部分在cpu上执行并且计算密集部分由gpu加速。
150.在一些配置中,处理器1102是或者被包括在片上系统(“soc”)以及下文描述的一个或多个其他组件中。例如,soc可以包括处理器1102、gpu、网络连接组件1106中的一个或多个网络连接组件、以及传感器组件11011中的一个或多个传感器组件。在一些配置中,处理器1102部分地利用层叠封装(“pop”)集成电路封装技术来制造。处理器1102可以是单核或多核处理器。
151.处理器1102可以根据arm架构创建,该架构可从英国剑桥的arm holdings获得许可。替代地,处理器1102可以根据x116架构来创建,例如可以从加利福尼亚州山景城的英特尔公司和其他公司获得。在一些配置中,处理器1102是可从加利福尼亚州圣地亚哥的
qualcomm获得的snapdragon soc、可从加利福尼亚州圣克拉拉的nvidia获得的tegra soc、可从韩国首尔的samsung获得的hummingbird soc、可从德克萨斯州达拉斯的texas instruments获得的开放多媒体应用平台(“omap”)soc、上述任何soc的定制版本、或专有soc。
152.存储器组件1104包括随机存取存储器(“ram”)1114、只读存储器(“rom”)1116、集成存储存储器(“集成存储”)11111以及可移动存储存储器(“可移动存储”)1120。在一些配置中,ram 1114或其一部分、rom1116或其一部分,和/或ram 1114和rom 1116的某种组合被集成在处理器1102中。在一些配置中,rom 1116被配置为存储固件、操作系统或其一部分(例如,操作系统内核),和/或引导加载程序以便从集成存储11111和/或可移动存储1120加载操作系统内核。
153.集成存储11111可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储11111可以焊接或以其他方式连接到逻辑板,处理器1102和本文中描述的其他组件也可以连接在逻辑板上。这样,集成存储11111被集成在计算设备中。集成存储11111被配置为存储操作系统或其部分、应用程序、数据和本文中描述的其他软件组件。
154.可移动存储1120可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,提供可移除存储1120来代替集成存储11111。在其他配置中,可移动存储1120被提供为附加的可选存储。在一些配置中,可移动存储1120在逻辑上与集成存储11111组合,使得总可用存储作为总组合存储容量可用。在一些配置中,向用户显示集成存储11111和可移动存储1120的总组合容量,而不是集成存储11111和可移动存储1120的单独存储容量。
155.可移动存储器1120被配置为被插入到可移动存储存储器插槽(未示出)或其他机构中,通过该可移动存储存储器插槽或该机构,可移动存储1120被插入并固定,以促进可移动存储1120通过其可与计算设备的诸如处理器1102之类的其他组件通信的连接。可移动存储1120可以体现为各种存储卡格式,包括但不限于pc卡、压缩闪存卡、记忆棒、安全数字(“sd”)、minisd、microsd、通用集成电路卡(“uicc”)(例如,用户识别模块(“sim”)或通用sim(“usfm”))、专有格式等等。
156.可以理解的是,存储器组件1104中的一个或多个组件可以存储操作系统。根据各种配置,操作系统包括但不限于:来自华盛顿州雷德蒙市的微软公司的windows mobile os、来自微软公司的windows phone os、来自微软公司的windows、来自加利福尼亚州帕洛阿尔托市的惠普公司的palm webos、来自加拿大安大略省滑铁卢市的捷讯移动科技有限公司(research in motion limited)的黑莓操作系统、来自加利福尼亚州库比蒂诺市的苹果公司的ios操作系统,以及来自加利福尼亚州山景城的谷歌公司的安卓操作系统。其他操作系统被考虑。
157.网络连接组件1106包括无线广域网组件(“wwan组件”)1122、无线局域网组件(“wlan组件”)1124和无线个域网组件(“wpan组件”)1126。网络连接组件1106促进去往和来自网络1156或另一网络(其可以是wwan、wlan或wpan)的通信。尽管仅示出了网络1156,但是网络连接组件1106可以促进与多个网络(包括图6的网络656)的同时通信。例如,网络连接组件1106可以促进经由wwan、wlan或wpan中的一个或多个与多个网络的同时通信。
158.网络1156可以是或者可以包括wwan,例如利用一种或多种移动电信技术的移动电信网络,以经由wwan组件1122利用计算设备架构1100向计算设备提供语音和/或数据服务。
移动电信技术可以包括但不限于全球移动通信系统(“gsm”)、码分多址(“cdma”)one、cdma7000、通用移动电信系统(“umts”)、长期演进(“lte”)和微波接入全球互通(“wimax”)。此外,网络1156可以利用各种信道接入方法(上述标准可以使用或可以不使用这些信道接入方法),包括但不限于时分多址(“tdma”)、频分多址(“fdma”)、cdma、宽带cdma(“w

cdma”)、正交频分复用(“ofdm”)、空分多址(“sdma”)等。可以使用下列各项来提供数据通信:通用分组无线服务(“gprs”)、全球演进的增强数据速率(“edge”)、包括高速下行链路分组接入(“hspa”)的高速分组接入(“hsdpa”)协议族、增强型上行链路(“eul”)或以其他方式被称为高速上行链路分组接入(“hsupa”)、演进型hspa(“hspa ”)、lte以及各种其他当前和未来的无线数据接入标准。网络1156可以被配置为:利用上述技术的任何组合来提供语音和/或数据通信。网络1156可以被配置为或适于根据下一代技术来提供语音和/或数据通信。
159.在一些配置中,wwan组件1122被配置为向网络1156提供双模多模连接。例如,wwan组件1122可以被配置为:提供到网络1156的连接,其中,网络1156经由gsm和umts技术或者经由技术的某种其他组合来提供服务。替代地,可以利用多个wwan组件1122来执行这样的功能,和/或提供附加的功能以支持其他不兼容的技术(即,不能由单个wwan组件所支持)。wwan组件1122可以促进与多个网络(例如,umts网络和lte网络)的类似连接。
160.网络1156可以是根据一个或多个电气和电子工程师协会(“ieee”)1102.11标准操作的wlan,例如ieee 1102.11a、1102.11b、1102.11g、1102.11n和/或未来的1102.11标准(在本文中被统称为wi

fi)。草案1102.11标准也被考虑。在一些配置中,利用一个或多个无线wi

fi接入点来实现wlan。在一些配置中,无线wi

fi接入点中的一个或多个接入点是具有到充当wi

fi热点的wwan的连接的另一个计算设备。wlan组件1124被配置为经由wi

fi接入点连接到网络1156。可以经由各种加密技术来保护这种连接,这些加密技术包括但不限于wi

fi保护访问(“wpa”)、wpa2、有线等效保密(“wep”)等。
161.网络1156可以是根据红外数据协会(“irda”)、蓝牙、无线通用串行总线(“usb”)、z

wave、zigbee或某种其他短距离无线技术操作的wpan。在一些配置中,wpan组件1126被配置为:促进经由wpan与诸如外围设备、计算机或其他计算设备之类的其他设备的通信。
162.传感器组件11011包括磁力计11211、环境光传感器1130、接近度传感器1132、加速计1134、陀螺仪1136和全球定位系统传感器(“gps传感器”)11311。考虑其他传感器,例如但不限于温度传感器或冲击检测传感器,也可以并入计算设备架构1100中。
163.磁力计11211被配置为测量磁场的强度和方向。在一些配置中,磁力计11211向存储在存储器组件1104中的一个存储器组件内的罗盘应用程序提供测量值,以便向用户提供包括基本方向北、南、东和西的参考系中的准确方向。可以向包括罗盘组件的导航应用程序提供类似的测量。由磁力计11211获得的测量值的其他用途被考虑。
164.环境光传感器1130被配置为测量环境光。在一些配置中,环境光传感器1130向存储在存储器组件1104中的一个存储器组件内的应用程序提供测量值,以便自动调节(在下文中描述的)显示器的亮度以补偿低光和高光环境。由环境光传感器1130获得的测量值的其他用途被考虑。
165.接近度传感器1132被配置为:在没有直接接触的情况下检测计算设备附近的对象或物体的存在。在一些配置中,接近度传感器1132检测用户身体(例如,用户的面部)的存
在,并将该信息提供给存储在存储器组件1104中的一个存储器组件内的应用程序,该应用程序利用接近度信息来启用或禁用计算设备的某项功能。例如,电话应用程序可以响应于接收到接近度信息而自动禁用(在下文中描述的)触摸屏,从而使得用户的面部在呼叫期间不会无意中结束呼叫或启用/禁用电话应用程序内的其他功能。由接近度传感器1132检测的接近度的其他用途被考虑。
166.加速计1134被配置为测量正确的加速度。在一些配置中,来自加速计1134的输出被应用程序用作输入机制以控制应用程序的一些功能。例如,应用程序可以是视频游戏,其中角色、其一部分或对象响应于经由加速度计1134接收的输入被移动或以其他方式被操纵。在一些配置中,将来自加速计1134的输出提供给应用程序,用于在横向和纵向模式之间进行切换、计算坐标加速度或检测跌倒。加速度计1134的其他用途被考虑。
167.陀螺仪1136被配置为测量和保持方向。在一些配置中,来自陀螺仪1136的输出被应用程序用作输入机制以控制应用程序的一些功能。例如,陀螺仪1136可以用于准确识别视频游戏应用或某种其他应用的3d环境内的移动。在一些配置中,应用程序利用来自陀螺仪1136和加速计1134的输出来增强对应用程序的某项功能的控制。陀螺仪1136的其他用途被考虑。
168.gps传感器11311被配置为从gps卫星接收信号以用于计算位置。由gps传感器11311计算的位置可以由需要或受益于位置信息的任何应用程序使用。例如,由gps传感器11311计算的位置可以与导航应用程序一起使用,以提供从该位置到目的地的方向或从目的地到该位置的方向。此外,gps传感器11311可以用于向诸如e911之类的基于外部位置的服务提供位置信息。gps传感器11311可以利用网络连接组件1106中的一个或多个来获得经由wi

fi、wimax和/或蜂窝三角测量技术生成的位置信息,以帮助gps传感器11311获得定位。gps传感器11311还可以用于辅助gps(“a

gps”)系统中。gps传感器11311还可以与诸如处理器1102之类的其他组件一起操作以生成计算设备1100的定位数据。
169.i/o组件1110包括显示器1140、触摸屏1142、数据i/o接口组件(“数据i/o”)1144、音频i/o接口组件(“音频i/o”)1146、视频i/o接口组件(“视频i/o”)11411和摄像头1150。在一些配置中,对显示器1140和触摸屏1142进行了组合。在一些配置中,对数据i/o组件1144、音频i/o组件1146和视频i/o组件11411中的两个或更多个进行了组合。i/o组件1110可以包括被配置为支持下文描述的各种接口的分立处理器,或者可以包括内置于处理器1102的处理功能。
170.显示器1140是被配置为以视觉形式呈现信息的输出设备。具体而言,显示器1140可以呈现图形用户界面(“gui”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传递数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以视觉形式呈现的任何其他信息。在一些配置中,显示器1140是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“lcd”)。在一些配置中,显示器1140是有机发光二极管(“oled”)显示器。其他显示器类型被考虑。
171.触摸屏1142,其在本文中也被称为“触摸使能的屏幕”,是被配置为检测触摸的存在和位置的输入设备。触摸屏1142可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声学脉冲识别触摸屏,或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏1142被结合在显示器1140的顶部作为透明层,以使
用户能够使用一个或多个触摸来与在显示器1140上呈现的对象或其他信息进行交互。在其他配置中,触摸屏1142是结合在不包括显示器1140的计算设备的表面上的触摸板。例如,计算设备可以具有结合在显示器1140顶部的触摸屏和与显示器1140相对的表面上的触摸板。
172.在一些配置中,触摸屏1142是单点触摸触摸屏。在其他配置中,触摸屏1142是多点触摸触摸屏。在一些配置中,触摸屏1142被配置为检测离散触摸、单点触摸手势和/或多点触摸手势。为方便起见,这些在本文中被统称为手势。现在将描述几个手势。应当理解,这些手势是说明性的,并不旨在限制所附权利要求的范围。此外,所描述的手势、附加手势和/或替代手势可以在软件中实现以便与触摸屏1142一起使用。因此,开发人员可以创建特定于特定应用程序的手势。
173.在一些配置中,触摸屏1142支持轻击手势,其中用户在显示器1140上呈现的项目上轻击触摸屏1142一次。轻击手势可以出于各种原因使用,包括但不限于打开或启动用户轻击的任何内容。在一些配置中,触摸屏1142支持双击手势,其中用户在显示器1140上呈现的项目上轻击触摸屏1142两次。双击手势可以出于各种原因使用,包括但不限于分阶段放大或缩小。在一些配置中,触摸屏1142支持轻击并保持手势,其中用户轻击触摸屏1142并至少保持接触持续预定义的时间。轻击并保持手势可以出于各种原因使用,包括但不限于打开特定于上下文的菜单。
174.在一些配置中,触摸屏1142支持平移手势,其中用户将手指置于触摸屏1142上并在触摸屏1142上移动手指的同时保持与触摸屏1142的接触。平移手势可以出于各种原因使用,包括但不限于以受控速率移动屏幕、图像或菜单。多个手指平移手势也被考虑。在一些配置中,触摸屏1142支持轻弹手势,其中用户在用户想要屏幕移动的方向上滑动手指。轻弹手势可以出于各种原因使用,包括但不限于水平或垂直滚动通过菜单或页面。在一些配置中,触摸屏1142支持捏合及伸展手势,其中用户利用两个手指(例如,拇指和食指)在触摸屏1142上进行捏合动作或者将两个手指移动分开。可以出于各种原因使用捏合及伸展手势,包括但不限于逐渐地放大或缩小网站、地图或图片。
175.尽管已经参考使用一个或多个手指来执行上述手势描述了这些手势,但是诸如脚趾之类的其他附体或诸如手写笔之类的物体可以用于与触摸屏1142进行交互。因此,上述手势应当被理解为是说明性的,不应当被解释为以任何方式进行限制。
176.数据i/o接口组件1144被配置为便于向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据i/o接口组件1144包括连接器,该连接器被配置为在计算设备和计算机系统之间提供有线连接,例如,用于同步操作的目的。连接器可以是专有连接器或标准化连接器,例如usb、微型usb、迷你usb等等。在一些配置中,连接器是用于将计算设备与另一设备对接的对接连接器,所述另一设备例如扩展坞、音频设备(例如,数字音乐播放器)或视频设备。
177.音频i/o接口组件1146被配置为向计算设备提供音频输入和/或输出功能。在一些配置中,音频i/o接口组件1146包括被配置为收集音频信号的麦克风。在一些配置中,音频i/o接口组件1146包括耳机插孔,其被配置为提供针对耳机或其他外部扬声器的连接。在一些配置中,音频i/o接口组件1146包括用于输出音频信号的扬声器。在一些配置中,音频i/o接口组件1146包括光学音频电缆输出。
178.视频i/o接口组件11411被配置为向计算设备提供视频输入和/或输出功能。在一
些配置中,视频i/o接口组件11411包括视频连接器,其被配置为从另一设备(例如,诸如dvd或bluray播放器之类的视频媒体播放器)接收视频作为输入,或者将视频作为输出发送到另一设备(例如,监视器、电视机或某个其他外部显示器)。在一些配置中,视频i/o接口组件11411包括用于输入/输出视频内容的高清晰度多媒体接口(“hdmi”)、迷你hdmi、微型hdmi、显示端口或专有连接器。在一些配置中,视频i/o接口组件11411或其部分与音频i/o接口组件1146或其部分组合。
179.摄像头1150可以被配置为捕捉静止图像和/或视频。摄像头1150可以利用电荷耦合器件(“ccd”)或互补金属氧化物半导体(“cmos”)图像传感器来捕捉图像。在一些配置中,摄像头1150包括闪光灯以帮助在低光线环境下拍摄照片。摄像头1150的设置可以被实现为硬件或软件按钮。
180.尽管未示出,但一个或多个硬件按钮也可以被包括在计算设备架构1100中。硬件按钮可以用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
181.图示的功率组件1112包括一个或多个电池1152,其可以连接到电池量表1154。电池1152可以是可充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。电池1152中的每个电池可以由一个或多个单元制成。
182.电池量表1154可以被配置为测量电池参数,例如电流、电压和温度。在一些配置中,电池量表1154被配置为测量电池的放电速率、温度、年龄和其他因素的影响,以预测在一定百分比误差内的剩余寿命。在一些配置中,电池量表1154向应用程序提供测量值,该应用程序被配置为利用测量值向用户呈现有用的功率管理数据。功率管理数据可以包括下列各项中的一项或多项:所使用的电池百分比、电池剩余百分比、电池状况、剩余时间、剩余容量(例如,以瓦时为单位)、电流消耗和电压。
183.功率组件1112还可以包括功率连接器,其可以与前述i/o组件1110中的一个或多个进行组合。功率组件1112可以经由i/o组件与外部功率系统或充电设备对接。
184.最后,虽然已经以特定于结构特征和/或方法动作的语言对各种配置进行了描述,但应当理解的是:所附表示中定义的发明主题并不一定受限于上述具体特征或动作。而是,具体的特征和动作是作为实现要求保护的发明主题的示例形式而公开的。
185.示例条款
186.本文呈现的公开内容可以鉴于以下条款加以考虑。
187.示例条款a,一种用于控制对存储在基于云的存储服务中的数据的访问的方法,所述方法包括:
188.在所述基于云的存储服务处存储与用户账户相关联的数据;
189.将所述数据的一部分与增强型认证协议相关联;
190.在所述基于云的存储服务处接收使应用访问与所述增强型认证协议相关联的数据的请求;
191.基于所述增强型认证协议对所述请求进行认证;
192.响应于对所述请求进行认证,向所述应用授予访问与所述增强型认证协议相关联的所述数据的许可,其中,所述许可是有时间限制的;
193.确定已经达到时间限制;
194.响应于确定已经达到所述时间限制,确定所述应用正在编辑与所述增强型认证协议相关联的所述数据;以及
195.在所述应用正在编辑所述数据的同时,临时延长所述应用访问所述数据的所述许可。
196.示例条款b,根据示例条款a所述的方法,其中,延长所述许可包括:生成与从与所述请求相关联的原始令牌导出的次级策略相关联的子令牌。
197.示例条款c,根据示例条款b所述的方法,其中,所述次级策略与所述原始令牌相脱离。
198.示例条款d,根据示例条款a至c中任一项条款所述的方法,其中,所述子令牌的所述次级策略是从所述原始令牌中导出的。
199.示例条款e,根据示例条款a至d中任一项条款所述的方法,其中,所述子令牌的所述次级策略的生命周期与所述原始令牌相脱离。
200.示例条款f,根据示例条款a至d中任一项条款所述的方法,其中,所述子令牌的所述次级策略的生命周期与所述原始令牌绑定。
201.示例条款g,根据示例条款a至f中任一项条款所述的方法,其中,所述许可受限于正在被编辑的所述数据。
202.示例条款h,根据示例条款a至g中任一项条款所述的方法,其中,临时延长所述许可包括:授予仅用于编辑所述数据的新会话。
203.示例条款i,根据示例条款a至g中任一项条款所述的方法,其中,所述许可是在不需要新认证的情况下被临时延长的。
204.示例条款j,根据示例条款a至i中任一项条款所述的方法,其中,所述许可被临时延长一时间增量。
205.示例条款k,根据示例条款a至j中任一项条款所述的方法,其中,临时延长所述许可受限于最大总延长时间。
206.虽然上文针对一种方法描述了示例条款a至k,但是在本公开内容的上下文中应当理解:示例条款a至k的主题可以附加地或替代地被实现为系统、计算设备,或者经由计算机可读存储介质实现。
207.示例条款l,一种用于控制对存储在基于云的存储服务中的数据的访问的系统,所述系统包括:
208.一个或多个数据处理单元;以及
209.计算机可读介质,其上编码有用于使所述一个或多个数据处理单元执行包括下列各项的操作的计算机可执行指令:
210.存储与用户账户相关联的数据;
211.将所述数据的一部分与增强型认证协议相关联;
212.接收用于访问与所述增强型认证协议相关联的数据的请求;
213.基于所述增强型认证协议来对所述请求进行认证;
214.响应于对所述请求进行认证,打开会话以访问与所述增强型认证协议相关联的所述数据,其中,所述会话是有时间限制的;
215.确定已经达到与所述会话相关联的时间限制;
216.响应于确定已经达到所述时间限制,确定应用正在编辑所述数据中的与所述增强型认证协议相关联的一部分,以及;
217.打开新会话以允许所述应用继续编辑所述数据。
218.示例条款m,根据示例条款l所述的系统,其中,所述新会话的范围限定为所述数据中的正在被编辑的所述部分。
219.示例条款n,根据示例条款l或示例条款m所述的系统,其中,所述数据中的未被正在编辑的部分不能被所述应用访问。
220.示例条款o,根据示例条款l至示例条款n所述的系统,其中,打开所述新会话包括:生成与从与所述请求相关联的原始令牌导出的次级策略相关联的子令牌。
221.示例条款p,根据示例条款l至示例条款o所述的系统,其中,所述次级策略与所述原始令牌相脱离。
222.示例条款q,根据示例条款l至示例条款p所述的系统,其中,所述次级策略是从所述原始令牌导出的。
223.示例条款r,根据示例条款l至示例条款q所述的系统,其中,所述次级策略的生命周期与所述原始令牌相脱离。
224.示例条款s,根据示例条款l至示例条款r所述的系统,其中,所述次级策略的生命周期与所述原始令牌绑定。
225.虽然上文针对一种计算设备描述了示例条款l至s,但是在本公开内容的上下文中应当理解:示例条款l至s的主题可以附加地或替代地由方法、计算设备实现,或者经由计算机可读存储介质实现。
226.示例条款t,一种计算设备,其包括:
227.一个或多个数据处理单元;以及
228.计算机可读介质,其上编码有用于使所述一个或多个数据处理单元执行包括下列各项的操作的计算机可执行指令:
229.存储与用户账户相关联的数据。
230.将所述数据的一部分与增强型认证协议相关联;
231.接收用于访问与所述增强型认证协议相关联的数据的请求;
232.基于所述增强型认证协议来对所述请求进行认证;
233.响应于对所述请求进行认证,打开会话以访问与所述增强型认证协议相关联的所述数据,其中,所述会话是有时间限制的;
234.确定已经达到与所述会话相关联的时间限制;
235.响应于确定已经达到所述时间限制,确定应用正在编辑与所述增强型认证协议相关联的文档;以及
236.打开新会话以允许所述应用继续编辑所述文档。
237.虽然上文针对一种计算设备描述了示例条款t,但是在本公开内容的上下文中应当理解:示例条款p至t的主题可以附加地或替代地被实现为方法、计算机可读介质或系统。
238.示例条款u,一种用于控制对存储在基于云的存储服务中的数据的访问的方法,所述方法包括:
239.在所述基于云的存储服务处接收用于访问存储在所述基于云的存储服务处的数
据的第一请求,所述数据与用户账户相关联;
240.基于与所述用户账户相关联的用户名和密码来对所述第一请求进行认证;
241.在所述基于云的存储服务处接收针对存储在与增强型认证协议相关联的区域中的文件的第二请求;
242.执行所述增强型认证协议以对所述第二请求进行认证;
243.响应于对所述第二请求进行认证,向临时强认证状态授予访问存储在与所述增强型认证协议相关联的所述区域中的所述文件的许可;以及
244.响应于对所述第二请求进行认证的失败,拒绝对存储在与所述增强型认证协议相关联的所述区域中的所述文件的访问,同时允许对存储在与所述用户账户相关联的其他区域中的文件的访问。
245.示例条款v,根据示例条款u所述的方法,其中,所述许可基于使用访问控制列表(acl)来授予对所述认证状态的访问权限。
246.示例条款w,根据示例条款u或示例条款v所述的方法,其中,在预定时间之后,所述acl自动到期。
247.示例条款x,一种用于控制对存储在基于云的存储服务中的数据的访问的方法,所述方法包括:
248.在所述基于云的存储服务处接收用于访问存储在所述基于云的存储服务处的数据的第一请求,所述数据与用户账户相关联;
249.基于与所述用户账户相关联的用户名和密码来对所述第一请求进行认证;
250.在所述基于云的存储服务处接收针对存储在与增强型认证协议相关联的区域中的文件的第二请求;
251.执行所述增强型认证协议以对所述第二请求进行认证;
252.响应于对所述第二请求进行认证,向临时强认证状态授予访问存储在与所述增强型认证协议相关联的所述区域中的所述文件的许可;以及
253.响应于对所述第二请求进行认证的失败,拒绝对存储在与所述增强型认证协议相关联的所述区域中的所述文件的访问,同时允许对存储在与所述用户账户相关联的其他区域中的文件的访问。
254.虽然上文针对一种方法描述了示例条款u至x,但是在本公开内容的上下文中应当理解,示例条款u至x的主题可以附加地或替代地被实现为系统、计算设备或经由计算机可读存储介质来实现。
255.示例条款y,一种用于控制对存储在基于云的存储服务中的数据的访问的方法,所述方法包括:
256.在所述基于云的存储服务处存储与用户账户相关联的数据;
257.将所述数据的一部分与增强型认证协议相关联;
258.在所述基于云的存储服务处接收使应用访问与所述增强型认证协议相关联的数据的第一请求;
259.基于所述增强型认证协议来对所述第一请求进行认证;
260.响应于对所述第一请求进行认证,向所述应用授予访问与所述增强型认证协议相关联的搜索数据的许可,其中,所述许可是有时间限制的;
261.确定所述应用正在编辑与所述增强型认证协议相关联的所述数据;以及
262.在所述应用正在编辑所述数据的同时,临时延长所述应用访问所述数据的所述许可。
263.示例条款z,根据示例条款y所述的方法,其中,延长所述许可包括:生成与从与所述第一请求相关联的原始令牌导出的次级策略相关联的子令牌。
264.示例条款aa,根据示例条款y或示例条款z所述的方法,其中,所述子令牌策略与所述原始令牌相脱离。
265.示例条款bb,根据示例条款y至aa中任一项条款所述的方法,其中,所述子令牌策略是从所述原始令牌导出的。
266.示例条款cc,根据示例条款y至bb中任一项条款所述的方法,其中,所述子令牌策略的生命周期与所述原始令牌相脱离。
267.示例条款dd,根据示例条款y至cc中任一项条款所述的方法,其中,所述子令牌策略的生命周期与所述原始令牌绑定。
268.虽然上文针对一种方法描述了示例条款y至dd,但是在本公开内容的上下文中应当理解,示例条款y至dd的主题可以附加地或替代地被实现为系统、计算设备或经由计算机可读存储介质来实现。
269.示例条款ee,一种用于控制对存储在基于云的存储服务中的数据的访问的方法,所述方法包括:
270.在所述基于云的存储服务处存储与用户账户相关联的数据;
271.在所述基于云的存储服务处接收使所述数据的一部分与增强型认证协议相关联的第一请求;
272.响应于所述第一请求,使所述数据的所述一部分需要所述增强型认证协议才能访问;
273.在所述基于云的存储服务处接收针对存储在与所述增强型认证协议相关联的所述区域中的文件的第二请求;
274.基于所述增强型认证协议来对所述第二请求进行认证;
275.响应于对所述第二请求进行认证,授予访问存储在与所述增强型认证协议相关联的所述区域中的所述文件的许可;以及
276.响应于对所述第二请求进行认证的失败,拒绝对存储在与所述增强型认证协议相关联的所述区域中的所述文件的访问,同时基于根据与所述用户账户相关联的单因素认证机制的认证而允许对存储在与所述用户账户相关联的其他区域中的文件的访问。
277.虽然上文针对一种方法描述了示例条款ee,但是在本公开内容的上下文中应当理解,示例条款ee的主题可以附加地或替代地被实现为系统、计算设备或经由计算机可读存储介质来实现。
278.示例条款ff,一种用于控制对存储在基于云的存储服务中的数据的访问的方法,所述方法包括:
279.在所述基于云的存储服务处存储与用户账户相关联的数据;
280.将所述数据的一部分与增强型认证协议相关联;
281.在所述基于云的存储服务处接收对应用访问与增强型认证协议相关联的数据的
请求,所述请求包括关于所述应用被配置为利用所述增强型认证协议与数据进行交互的指示;
282.基于所述指示,基于所述增强型认证协议来对所述请求进行认证;
283.响应于对所述第一请求进行认证,向所述应用授予访问与所述增强型认证协议相关联的所述数据的许可,以及;
284.响应于接收到不包括关于所述应用被配置为利用所述增强型认证协议与数据进行交互的指示的请求,隐藏对所述数据中的利用所述增强型认证协议的所述一部分的可见性。
285.虽然上文针对一种方法描述了示例条款ff,但是在本公开内容的上下文中应当理解,示例条款ff的主题可以附加地或替代地被实现为系统、计算设备或经由计算机可读存储介质来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献