同步框架可扩展性的制作方法

文档序号:9620895阅读:196来源:国知局
同步框架可扩展性的制作方法
【专利说明】
【背景技术】
[0001]在网络或云计算领域中,已经开发服务来提供要由连接到云的客户端计算机使用的云存储。尽管已经以许多方式实现了云存储,但是最近云存储已经变得与客户端计算机的文件系统(和操作系统)紧密集成。从用户的角度出发,已经合期望的是提供看起来在云中以及连接到云的用户客户端计算设备上具有通用或浮动的存在的云文件。目标已经是允许存储在云中的文件由连接到云的用户设备以及可能地云内的软件来读取和写入。单个文件实体(从用户的角度出发)可能事实上具有云和并行更新的客户端计算机上的多个副本或版本。为了维持文件的一致性,即为了跨云并且跨连接到云的用户设备保持文件内容一致,可以采用文件同步系统或同步引擎。
[0002]为了提供平滑的用户体验和透明的一致性,这种基于云的文件的同步优选地在文件系统和/或操作系统级执行。这隐藏了内务处理工作,该内务处理工作通常被要求以维持假定为相同逻辑文件的实例之间的同步。这种系统管理的同步还缓解了程序员必须编码其自身自定义的同步软件的负担。
[0003]尽管如此,可能存在同步引擎和客户端操作系统外的应用或其它软件需要执行自定义同步或以其它方式管理和协调基于云和客户端的文件实例的时候。例如,针对文字处理器的协同并发编辑可能牵涉系统提供的同步引擎不能处理的同步问题。另外,操作系统级或文件系统级同步引擎尚且不能够与任意应用共享同步相关的责任。如果应用已经需要以可能与同步引擎冲突或干扰其的方式使用基于云的文件,则仅有的选择将是使应用承担针对来自同步引擎的文件的总责任。
[0004]除其它之外,以下讨论用于允许同步引擎暂时放弃文件的同步并且利用应用所提供的同步相关功能性的技术。

【发明内容】

[0005]下面的
【发明内容】
被包括以仅介绍在以下【具体实施方式】中讨论的一些概念。该
【发明内容】
不是全面的并且不意图界定所要求保护的主题的范围,要求保护的主题的范围由结尾处所呈现的权利要求来阐述。
[0006]本文描述的实施例可牵涉使得应用能够与系统级同步框架协作。同步框架可以提供用户设备与云存储服务之间的文件的系统同步。用户计算设备上的任意应用可以与同步框架通信以暂时悬停同步框架指定的文件的同步。应用可以利用同步框架寄存同步框架可以调用的与悬停同步相关的功能,从而继续为任意应用提供对文件的系统级访问并且恢复同步。
[0007]许多随从特征将在下文参照结合附图考虑的以下【具体实施方式】进行解释。
【附图说明】
[0008]从依据附图阅读的以下【具体实施方式】,将更好地理解本描述,其中相同附图标记用于在随附描述中指定相同部分。
[0009]图1示出了共享跨云所存储的文件的用户的计算设备。
[0010]图2示出了其中文件同步可能有问题的示例情景。
[0011]图3示出了具有用于利用任何适当编码的软件协调文件处置活动的扩展应用编程接口(API)的同步引擎。
[0012]图4示出了过程。
[0013]图5示出了另一过程。
[0014]图6示出了在其上可以实现实施例的示例计算设备。
【具体实施方式】
[0015]以下讨论的实施例涉及向同步引擎提供可扩展性以允许应用暂时从文件锁出同步引擎,即从同步引擎的同步监督排除文件。实施例还涉及允许应用利用同步引擎寄存同步引擎可以调用的功能性,例如以帮助解决同步问题或者提供来自没有被同步的文件的数据。
[0016]以下描述将以多个设备所共享的基于云的文件存储的概述而开始。在解释了可扩展性可以建立于同步引擎中以允许同步锁定和同步引擎使用可能帮助同步引擎执行同步并且提供对暂时没有被同步的文件的访问的应用功能性之后,接下来将描述同步框架以及同步引擎与应用之间的潜在冲突。
[0017]图1示出了共享跨至少云106和用户计算设备102存储的文件104的用户的计算设备100,102。云106可以具有没有全部在图1中示出的各种服务。云106可以具有管理用户账户或用户凭证的账户服务。账户服务可以为每个用户提供凭证。用户可能使用他或她的凭证来访问云106和其中的各种服务,诸如搜索引擎、电子邮件服务、虚拟机或应用托管服务、存储或文件服务108、或其它服务。可使用诸如计算设备100之类的用户的计算设备上的web浏览器或其它客户端软件来访问这样的云服务。给定用户可使用相同账户或凭证链接云106处的其计算设备中的多个计算设备。在图1的示例中,用户已经将计算设备100 (设备1)和计算设备102 (设备2) 二者与云文件服务108链接,因而使得能够无缝共享文件104。
[0018]在一些情况下,倘若已经从云106获得每一个用户的凭证的授权的话,客户端软件可透明地访问云服务。例如,用户计算设备100可能具有文件资源管理器、系统浏览器、或者用于探索本地文件系统100的其它用户接口,其由操作系统112控制。这样的客户端侧软件还可能与文件服务108连接并且允许探索文件服务108上的文件,就像它们是本地文件系统110的部分那样。客户端侧软件还可以是在用户计算设备100,102上或其它地方运行的任意应用。
[0019]—些云服务允许文件或文件仓库在多个用户设备和云106上同时存储和访问。例如,参照图1,诸如文件104 (“文件1”)之类的文件可以本地存储在用户计算设备100的文件系统110中。文件104还可能存储在云的文件服务108中。文件服务108处的文件104的副本还可能由文件服务108提供给诸如用户计算设备102之类的其它用户设备上的其它应用。因为多个实体在访问并且潜在地写入文件104,所以采用同步框架来同步文件104的实例或副本。
[0020]同步框架可以包括协作同步引擎,诸如用户计算设备100上的同步引擎114和云106上的同步引擎116 (其可能位于文件服务108后面)。每个同步引擎执行本地步骤以保持文件104的对应本地副本与文件104的其它副本同步(要指出的是,文件104表示任何任意的文件)。一般地,这牵涉同步引擎接收或检测对其文件104的本地版本的本地更新并且将那些更新传播给另一同步引擎,其继而更新其文件104的本地副本使得文件104的副本是同步的。
[0021]在一个实施例中,文件服务108可以充当中央存储和协调员,使得用户设备可能不会彼此直接同步。例如,用户计算设备102可能与云106交换同步更新,并且用户计算设备100可能类似地与云106交换更新。然而,计算设备100和计算设备102通过文件服务108处的中间同步引擎116彼此间接地同步,这实际上将一个用户设备的更新传播通过给另一个。同步引擎的具体算法可以根据其是处于云106处还是用户设备处而变化。
[0022]除以上提及的基本同步逻辑之外,同步引擎114,116还可能具有应对云106与用户设备100之间的网络连接性的间歇式丢失的逻辑。例如,当用户设备100与云106之间的连接性不可用时,用户设备100上的应用1 118可能向其本地文件104写入编辑或更新。在断开连接期间的更新必须在两个位置处累积直到连接性得以重新建立。当重新建立连接性时,同步引擎114,116可以协作以试图调和其累积的更新(云106中的文件104的副本可能也已经接收更新,也许是从仍旧连接到云106的用户设备102)。当文件104的实例不能调和时,可创建并且保存本地版本120和甚至子版本。不可通过同步框架可调和的分歧版本120可能最终要求用户的干预。
[0023]图2示出了其中文件同步可能有问题的示例情景。在该示例中,可能地在从操作系统112获取统一资源定位符(URL)或用于基于云的文件104的其它网络文件句柄之后,假定应用1 118 (表示任何任意的应用)均能够访问用户计算设备100上的文件104的本地实例以及云106处的副本或示例。最初,同步引擎114将文件104与云106同步,如上文讨论的。在该时间期间,应用1 118开始访问并且写入文本104的本地副本以及云文件服务108处的副本二者。文件104的这种并行使用可能最终引起冲突或干扰,从而潜在地破坏文件104或者中断同步框架或应用1 118的操作。
[0024]图3示出了具有用于利用用户设备100上运行的任何适当编码的软件(由应用1118表示)协调文件处置活动的扩展应用编程接口(API) 130的同步引擎114。API仅是同步引擎114可以与应用如何传达或交换呼叫/答复132或消息的一个示例。可以使用其它编程技术,诸如软件接口和契约。此外,尽管讨论的是与同步引擎114的通信,但是API 130可以作为总体同步框架的部分而浮现。
[0025]API 130可以包括由诸如应用1 118之类的任意应用可调用的各种呼叫、方法等。一个这样的呼叫可以是同步-锁定呼叫,其也可以指定或针对文件,诸如文件104。当调用呼叫时,比方说由应用1 118针对文件104,则同步引擎104进行至停止将文件104与云106同步。这可牵涉各种预备措施,诸如向文件104应用任何显著更新、与云106处的同步引擎116通信以指示同步框架也许暂时放弃针对文件104的同步责任。同步引擎116可以继而应用更新或执行其它任务,诸如指令云文件服务108清除到盘的位。同步引擎114可以根据其状态答复同步-锁定呼叫。例如,如果本地文件104不能够被调和,也许是由于与云106的网络连接性的丢失,则同步引擎114可相应地答复应用1 118。如果本地文件104的派生(新的子修正)被执行,则应用1 118也可能被告知。在一个实施例中,应用1 118首先以只读模式打开本地文件104和/或文件104的基于云的实例,并且当同步-锁定呼叫成功返回时,应用118然后以写入模式打开文件104。要指出的是,同步-锁定至少在本地用户设备处实施,但是可以可选地扩展到其它用户设备,例如以改进文件重命名和移动操作的处置。
[0026]在一个实施例中,应用1 118可以编码成作为初步文件流送服务器进行操作,可能具有数据提供商136 (合并处置器134和数据提供商
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1