支持按需数据传输的虚拟同步的制作方法

文档序号:9713566阅读:308来源:国知局
支持按需数据传输的虚拟同步的制作方法
【专利说明】支持按需数据传输的虚拟同步
[0001 ] 背景
[0002]版本控制系统通常跟踪在文件或被称为储存库的文件集合内的数据的历史状态。这样的系统通常允许编辑者修改文件并把它们的改变提交给版本控制系统的改变跟踪数据库服务器。这些所提交的改变(被称为“修订”)变成了原始文件的单调递增版本。感兴趣的各方可以通过以称为“同步”的过程从版本控制系统的跟踪数据库显式地下载修订以供本地存储在客户端机器处来观察较新的修订。在常规同步中,观察者在一个操作中把储存库的整个最新文件状态同步到他们的机器。随着文件的数量和储存库数据大小的增加,这种常见的和推荐的同步方法可能变得极度昂贵。
[0003]提供本背景来介绍以下概述和详细描述的简要上下文。本背景不旨在帮助确定所要求保护的主题的范围,也不旨在被看作将所要求保护的主题限于解决以上所提出的问题或缺点中的任一个或全部的实现。
[0004]概述
[0005]—种虚拟同步方法,该方法允许按需数据传输,使得在观察者访问文件之际把修订“即时”下载到客户端机器,而不是在常规同步中使用静态和整体式的方法先期下载所有修订。在调用虚拟同步时,自从上次同步以后已经发生的文件状态中的改变的预览被获得并被用来生成虚拟化文件,观察者可以与这些虚拟化文件交互且看到这些改变,就好像这些文件实际上被同步了一样。然后,在观察者或在客户端机器上操作的系统或进程访问虚拟化文件时被按需用实际文件数据填充虚拟化文件。
[0006]在一说明性示例中,虚拟同步方法与版本控制系统交互以便获得预览且在客户端机器上生成虚拟化文件。然后,可以执行刷新(flush)操作以便通知版本控制系统更新其对客户端机器的视图,就好像该同步实际上已以常规方式执行一样。使用其中写入有元数据的存根文件来实现虚拟化文件。在稍后访问虚拟化文件时,元数据被用来定位被填充到存根文件中的实际文件数据。
[0007]在其他说明性示例中,客户端机器上的用户界面被配置成允许观察者在执行给定文件同步时在虚拟和常规同步之间进行选择。这两种方法可以共存,且在客户端机器和版本控制系统上获得支持而无需修改系统,且虚拟同步的工作流不影响常规同步的工作流。也可以根据规则和/或已存储的用户偏好在虚拟和常规的方法之间转换同步。
[0008]有利的是,支持按需数据传输的虚拟同步允许观察者仅耗费关于他们实际上访问的文件的资源(例如,时间、硬盘空间、网络带宽等等),而不必承受本地复制所有文件的成本,观察者可能实际上不需要且可能永远不会访问这些文件中的一些。按需数据传输对观察者透明,且不需要改变用户行为就能获得其益处。在文件访问时执行按需数据传输,且观察者不需要显式地指定他们有兴趣检索的文件。
[0009]提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用来帮助确定所要求保护的主题的范围。而且,所要求保护的主题不限于解决该公开的任一部分中所注的任何或全部缺点的实现方式。
[0010]应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如一个或多个计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。
[0011]附图简述
[0012]图1示出说明性计算环境,其中在客户端机器处使用同步操作本地复制存储在服务器上的远程文件的状态;
[0013]图2示出说明性计算环境,其中多个客户端机器可以通过与版本控制系统交互来同步储存库的状态;
[0014]图3示出说明性计算环境,其中使用虚拟同步操作在客户端机器处把存储在服务器上的远程文件的状态暴露为虚拟化文件;
[0015]图4示出说明性虚拟化文件的细节;
[0016]图5是说明性虚拟同步过程的图示;
[0017]图6是图5中所示出的虚拟同步过程的流程图;
[0018]图7是说明性按需数据传输过程的图示;
[0019]图8是图7中所示出的按需数据传输过程的流程图;
[0020]图9示出说明性文件系统过滤器驱动程序的操作细节;
[0021]图10示出给定计算环境中可支持常规和虚拟同步操作两者的说明性布置;
[0022]图11示出利用常规和虚拟同步技术两者的说明性时间线;
[0023]图12示出根据规则和/或用户偏好在常规和虚拟同步过程之间转换同步操作的说明性布置;
[0024]图13是可以部分用来实现本支持按需数据传输的虚拟同步的诸如个人计算机(PC)之类的说明性计算机系统的简化框图;以及
[0025]图14示出可以部分用来实现本支持按需数据传输的虚拟同步的说明性计算平台的框图。
[0026]各附图中相同的附图标记指示相同的元素除非另外指明否则各元素不是按比例绘制的。
[0027]详细描述
[0028]图1示出说明性计算环境100,其中在客户端机器113处使用同步操作118本地复制存储在服务器108上的远程文件105的状态。服务器108可以例如是文件共享服务器,或者是用于版本控制系统的服务器。观察者125将通常在一个操作中把远程文件105的最新状态同步到本地客户端机器113以便本地地复制文件,如参考标记128所指示的。然而,在需要把大量的文件和/或具有大尺寸的文件下载到客户端机器113时,这种普通同步方法可能变得极度昂贵。随着观察者和要同步的文件的数量的增加,这样的花费加剧了。
[0029]图2示出说明性计算环境200,其包括在客户端机器213处与版本控制系统交互的多个观察者2251...N。在版本控制系统上下文中,远程文件105通常被存储在储存库218中(应注意,术语“储存库”通常也用来表示远程存储的文件本身)。观察者225可以通过与一个或多个版本控制系统(如参考标记227代表性地指出的)的交互来同步储存库218的状态,以便本地下载和复制文件230。在一些情况中,版本控制系统可以被耦合到外部服务240。
[0030]版本控制系统227可以用来支持例如视频游戏开发或多媒体创作项目中的协作工作环境,这样的环境中利用了可在项目的过程中不断被更新和修订的多个文件。在一些情况中,各文件可以包括依赖性。例如,视频游戏场景可能需要多个文件以便被正确地呈现,且观察者将通常想要确保在同步时下载所有的相依文件。
[0031]编辑者(例如,图2中的编辑者235)可以修改文件并把他们的改变提交给版本控制系统的改变跟踪数据库服务器(未示出)。来自编辑者235的这些修订因而包括原始文件的单调递增版本。最新的修订可通过客户端机器213和版本控制系统227之间的同步而被下载为本地复制的文件230。
[0032]协作项目可通常具有导致储存库218非常大的规模。使用上面提到的普通同步方法,在同步本地下载和存储的许多文件时,观察者225将需要耗费资源(例如,时间、硬盘空间、网络带宽等等)。给定的观察者225常常仅对作为项目的一部分的观察者直接地涉及的文件感兴趣,因而已同步和本地复制的文件中的一些可能根本永远都不会被打开和访问。由于受到版本控制的文件的量和/或大小可能非常大,观察者个别地指定他们对哪些文件和那些文件的哪些修订特别感兴趣往往也是不切实际的。由于储存库的文件集合可能随时间改变,例如在文件被项目协作者编辑和修订时,这样的问题可能会加剧。
[0033]可以通过本使用虚拟化文件的按需数据传输来解决与普通同步方法相关联的问题,普通同步方法中,在一个操作中把储存库的整个最新文件状态同步到本地客户端机器。图3示出说明性计算环境300,其中在客户端机器313处使用虚拟同步操作318把存储在服务器308上的远程文件305的状态作为虚拟化文件暴露给观察者325。这样的虚拟同步允许观察者325看到自从上次同步以来已经发生的远程文件305中的改变。然而,文件数据的实际下载被延期到在观察者325尝试访问文件例如以便看到和/或编辑其内容时的某个未来时间点。也就是说,任何给定虚拟化文件的实际文件数据的传输是在观察者325访问这样的文件之际按需实现的。按需传输也可以被称为“即时”传输,且各术语常常同义地使用。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1