在计算机系统之间同步文件数据的制作方法

文档序号:14422110阅读:174来源:国知局
在计算机系统之间同步文件数据的制作方法



背景技术:

文件同步可以被用来在机器/设备之间同步文件。用于同步文件的常规机制有很多种。然而,机器和设备具有不同的形状因素、能力和位置,并非所有的机制与所有机器和设备都兼容。尽管如此,用户通常希望他们的文件可以在他们所使用的任何和所有设备上使用。一些常规文件同步解决方案要么实现同步协议,要么实现可以被用来实现文件同步的文件存储库协议(文件列表、文件下载、文件上传)。大多数情况下,文件同步操作与文件数据传输操作不是相分离的。本申请针对的是文件同步改进处理的一般技术环境。



技术实现要素:

本公开的非限制性示例描述了标识用于同步的文件数据的示例性同步协议的实现,以及协商如何实现用于同步文件数据的数据传输。可以与客户端设备建立用于特定同步协议的连接。特定同步协议与多个数据传输协议对接,并且可用于标识文件数据以与客户端设备同步并且确定要被用来下载/上传特定文件数据的多个数据传输协议中的一个数据传输协议。在一个示例中,从客户端设备接收用于同步文件数据的请求。作为示例,客户端设备可以是协议客户端,并且该请求可以在协议服务器处被接收。该请求可以包括:该请求使用特定文件同步协议而生成的标识、包括标识与客户端设备相关联的文件数据的版本状态的紧凑表示的知识元数据、以及针对客户端设备可以使用以下载用于同步的文件数据的统一资源标识符的请求。可能生成改变批次响应。改变批次响应可以由诸如协议服务器设备之类的处理设备来生成。示例性改变批次响应可用于同步文件数据。作为示例,改变批次响应包括:改变批次响应由使用特定文件同步协议而生成的标识、用于同步的特定文件数据的标识、包括用于对特定文件数据进行访问的至少一个统一资源标识符的用于访问特定文件数据的指令、以及指示例如当使用统一资源标识符进行访问时利用至少一个数据传输协议来获得特定文件数据的指令。在改变批次响应中,指示至少一个数据传输协议的指令还可以包括:使用第一数据传输协议来获得第一文件数据的指令以及使用与第一数据传输协议不同的第二数据传输协议获得第二文件数据的指令。改变批次响应可以被传送到客户端设备。在至少一个附加示例中,可以接收文件数据的一个或多个文件与客户端设备同步的指示。该指示可以包括更新后的知识元数据,并且在一些情况下,可以响应于后续请求而被接收。客户端设备和服务器设备之间的附加通信可以例如发生在可以交换附加请求和改变批次响应以完成文件数据的同步的地方。

在另一示例中,可以在处理设备和另一处理设备之间建立用于特定同步协议的连接。特定同步协议与多个数据传输协议对接,并且可用于标识文件数据以与其他处理设备同步并且确定要被用于下载/上传特定文件数据的多个数据传输协议的数据传输协议。处理设备可以生成同步文件数据的请求。作为示例,该请求可以由旨在与协议服务器设备通信的协议客户端设备生成。该请求可以包括该请求是使用特定文件同步协议而生成的标识、知识元数据,其包括标识与处理设备相关联的文件数据的版本状态的紧凑表示、以及针对处理设备可以使用以下载用于同步的文件数据的统一资源标识符的请求。除了其他示例之外,该请求可以被传送到另一处理设备,诸如协议服务器设备。响应于该请求的传输,可以接收改变批次响应。该改变批次响应可以包括:该改变批次响应是使用特定文件同步协议生成的标识、用于同步的特定文件数据的标识、包括用于对特定文件数据进行访问的至少一个统一资源标识符的用于访问特定文件数据的指令、以及例如当使用统一资源标识符进行访问时,指示利用至少一个数据传输协议以获得特定文件数据的指令。作为示例,统一资源标识符可以提供对与协议服务器相关联的存储装置的访问。可以使用在改变批次响应中标识的数据传输协议(经由统一资源标识符)来下载特定文件数据。另外的示例可以包括传输文件数据的一个或多个文件与客户端设备同步的指示。在一个示例中,该指示包括更新的知识元数据。处理设备与另一处理设备之间的附加通信可以例如发生在可以交换附加请求和改变批次响应以完成文件数据的同步的地方。

在又一示例中,第一处理设备可以与另一处理设备对接,以经由将来自第一处理设备的文件数据上传到与第二处理设备相关联的存储装置来同步文件数据。针对标识与服务器设备相关联的文件数据的状态的知识元数据的请求可以从第一处理设备传送到第二处理设备。作为示例,第一处理设备可以是协议客户端设备,而第二处理设备可以是协议服务器设备。第一处理设备可以例如从第二处理设备接收知识元数据。响应于接收知识元数据,第一处理设备可以生成文件同步请求,其中文件同步请求标识文件数据以与第二处理设备同步。文件同步请求可以被传送到第二处理设备。作为响应,第一处理设备可以从第二处理设备接收文件同步响应。文件同步响应包括指示上传文件数据的位置的数据,以及指示利用至少一个数据传输协议来上传文件数据的指令。使用文件同步响应,第一处理设备可以上传文件数据。

本公开的非限制性示例进一步描述了标识用于同步的文件数据以及协商如何实现用于同步文件数据的数据传输的示例性同步协议的实现。在一个示例中,从处理设备接收用于数据同步的请求。响应接收该请求,生成响应。该响应可以包括:用于同步的文件数据的标识、用于访问文件数据的指令、以及指示利用数据传输协议以获得文件数据的指令。响应可以被传送到处理设备,例如,以使得处理设备能够同步文件数据。

在本公开的其他非限制性示例中,实现示例性同步协议以使得处理设备能够与另一处理设备和/或分布式网络同步文件数据。在一个示例中,传输用于标识与第二处理设备相关联的文件数据的状态的知识元数据的请求。知识元数据可以被接收。作为响应,可以生成标识文件数据以与第二处理设备同步的文件同步请求。文件同步响应可以从第二处理设备接收。文件同步响应可以包括指示上传文件数据的位置的数据,以及指示利用至少一个数据传输协议来上传文件数据的指令。文件同步响应可以被用来传送用于上传的文件数据,例如上传到与第二处理设备相关联的存储装置。

附加特征和优点将在下面的描述中得以阐述,并且在某种程度上将根据描述而变得明显,或者可以通过实践来了解。特征和优点可以借助于所附权利要求中特别指出的仪器和组合来实现和获得。从以下描述和所附权利要求中,这些和其他特征将变得更加明显,或者可以通过下文所阐述的实践来了解。

附图说明

参考以下附图,对非限制性和非穷尽性示例进行描述。

图1图示了通过其可以实践本公开的各方面的用于在计算机系统之间同步文件数据的示例性计算机体系架构。

图2图示了通过其可以实践本公开的各方面的用于在计算机系统之间同步文件数据的示例性计算机体系架构。

图3a至图3d图示了通过其可以实践本公开的各方面的用于在计算机系统之间同步文件数据的示例性计算机体系架构。

图4图示了通过其可以实践本公开的各方面的使用同步协议进行文件同步下载的示例方法。

图5图示了通过其可以实践本公开的各方面的使用同步协议进行文件同步上传的示例方法。

图6是图示了通过其可以实践本公开的各方面的计算设备的示例的框图。

图7a和图7b是通过其可以实践本公开的各方面的移动计算设备的简化框图。

图8是通过其可以实践本公开的各方面的分布式计算系统的简化框图。

具体实施方式

示例扩展到用于使用协议在处理设备之间同步文件数据的方法、系统和计算机程序产品。协议是处理设备可以利用以相互通信的规则集合。可以利用示例性同步协议来在协议客户端和协议服务器之间同步数据。协议客户端是发起与一个或多个其他处理设备的通信的一个或多个处理设备。在一个示例中,协议客户端可以是诸如计算机或服务器之类的处理设备。在另一示例中,协议客户端可以是分布式网络(例如,远程设备的集合),诸如云网络等等。协议服务器是从协议客户端接收通信并且生成对通信的响应的一个或多个处理设备。在一个示例中,协议服务器可以是诸如计算机或服务器之类的处理设备。在另一示例中,协议服务器可以是分布式网络(例如,远程设备的集合),诸如云网络,等等。

示例性同步协议是可以被用来使得设备能够通信以便协商哪些数据需要在处理设备之间传送、并且进一步标识要使用什么数据传输协议来在设备之间传送数据的协议。考虑如下示例,其中确定来自包括100,000个文件的文件系统的3个文件将被更新以用于在处理设备之间进行同步。示例性同步协议可以建立通信以标识如何在处理设备之间同步那3个文件。同步协议执行处理操作序列用于使得设备能够进行通信以启用处理设备之间的数据传送。处理设备可以利用不同的数据传输协议以在设备之间传送数据。数据传输协议是用于在处理设备之间传送数据的协议。数据传输协议可以是用于传送诸如文件数据之类的数据的标准化格式,其中数据传输协议可以指定数据传送应当如何发生,例如,以完成处理设备之间的数据同步。示例性数据传输协议可以包括但不限于:文件传输协议(ftp)、安全外壳协议(ssh)、超文本传输协议(http)、http安全(http/s)、简单邮件传输协议(smtp)、文件服务协议(fsp)、ssh文件传输协议(sftp)、通过安全套接字层(ssl)的ftp(ftps)以及简单文件传输协议(tftp),等等。本文中所描述的示例不限于任何特定数据传输协议。也就是说,本文中所描述的示例性同步协议不限于使用单个数据传输协议来传送数据。同步协议被配置为可扩展以与多种不同的数据传输协议一起工作。在一些示例中,多于一个的数据传输协议被用来同步数据。比如,在三个文件正被同步的示例中,第一文件可以使用第一数据传输协议来传送,而另外两个文件可以使用不同的数据传输协议来传送。当处理设备不知道另一设备正在利用的数据传输协议时,可能会在数据传送期间出现问题。在一些示例中,发送/接收数据的处理设备可能未被配置为与某些数据传输协议一起工作。示例性同步协议被实现以标识用于同步的文件数据,指令协议客户端在何处访问文件数据以供传输(例如,下载/上传文件数据),并且指令协议客户端当传送文件数据时使用什么数据传送等。

比如,协议客户端可以通过与协议服务器的通信发起文件数据的同步。例如,协议服务器可以与维护分布式网络上的数据的一个或多个存储装置/存储设备相关联。作为示例,可以在协议客户端和协议服务器之间建立示例性同步协议,以使得协议客户端能够与存储装置/存储设备通信以使文件数据与存储装置/存储设备同步。同步协议可以被用来在处理设备(诸如协议客户端和协议服务器)之间同步文件数据和同步元数据。同步元数据在协议客户端和协议服务器之间进行交换以促进同步。文件数据包括文件元数据和文件内容(数据流)。文件元数据可以包括文件名、时间戳、属性等。然而,同步协议与用于传送文件数据的传输协议分开。如此,同步协议可以协调使用不同机制/其他协议来传送文件数据。例如,在一个方面中,同步协议发送协议客户端可以利用以访问文件数据的统一资源标识符(uri)。在一个示例中,uri可以是统一资源定位符(url)。协议客户端联系url以获取文件数据,其可以被托管在单独的服务中。同步协议还可以发送使用什么数据传输协议的指示。也就是说,同步协议指示如何适当地使用url。例如,同步协议支持http客户端和服务器的任意拓扑结构。同步协议可以被配置为适应单个服务器拓扑结构以及任意数目的服务器(例如,数据中心和/或云),这些服务器使文件数据集在彼此之间以及与对应的客户端同步。

在本文中所描述的示例中,数据传送与用于传送数据的处理设备的同步相区别。如上文所提及的,不同的处理设备可以被配置为使用特定数据传输协议来工作(或优选传送数据)。比如,客户端设备可以被配置为依照http工作,而客户端设备正与其同步的存储设备可以被配置为依照诸如https或ftp之类的另一数据传输协议来工作。本文中所描述的示例可以扩展到通过下载文件数据来同步处理设备(例如,协议客户端下载文件数据以与处理设备/网络同步)以及通过上传数据来同步一个或多个处理设备(例如,协议客户端上传文件数据以与处理设备/分布式网络同步)。然而,示例性同步协议不限于数据的下载/上传,并且可适用于协议客户端和协议服务器之间的任何数据传送。如上文所标识的,示例性同步协议可以扩展到与处理设备之间的数据传输有关的任何示例。

示例性同步协议利用知识数据来标识需要什么文件数据以便同步至少一个协议客户端和至少一个协议服务器。在本示例中,知识元数据可以包括与一个或多个处理设备(诸如协议客户端)相关联的文件数据的紧凑表示。除其他示例外,示例性紧凑表示可以包括矢量时钟和lamport时间戳中的至少一个。然而,用于处理设备上的文件数据的紧凑表示的元数据不限于这样的示例。例如,知识元数据可以是可更新的,其中文件数据的修改(例如,通过同步)可以产生用于处理设备的经更新的紧凑表示。处理设备已知的文件数据的紧凑表示包含相对于跨网络的多种设备或节点的元数据,从而使得协议客户端能够与分布式网络(或多个分布式网络)的不同处理设备同步,而不管处理设备的形状因素如何。这样,知识元数据可以被用来有效地使处理设备与跨不同网络的多个节点同步。

更进一步地,示例性同步协议是可扩展的。在一个示例中,同步协议被配置为使得能够修改文件元数据(例如,同步可以产生每个文件的附加数据/元数据)。在另一示例中,同步协议可配置为与多个认证方案中的任一认证方案集成,例如,以认证协议客户端和协议服务器。

因而,本公开提供了多个技术优点,其包括但不限于:实现了可以与多个数据传输协议对接的同步协议、使同步数据与数据传输分开的能力、处理设备更有效地操作执行跨应用的数据传送(例如,节省计算周期/计算资源)、在文件同步期间设备之间的更有效通信(例如,同步文件数据的设备之间更少的重新协商)、与具有多种形状因素的设备一起工作的能力、支持用于数据传送的任意拓扑结构的同步协议、当与用于同步的文件数据一起工作时的可扩展性(其包括修改与正在被同步的文件相关联的元数据的能力)、可以支持用于认证客户端/服务器关系的任何认证方案的同步协议、以及用于设备和文件传输之间的同步的延迟时间减少等。

如下文更详细地所讨论的,实现可以包括或利用专用或通用计算机,其包括计算机硬件,诸如例如,一个或多个处理器和系统存储器。实现还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以被通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,实现可以包括至少两种截然不同的计算机可读介质:计算机存储介质(设备)和传输介质。

计算机存储介质(设备)包括ram、rom、eeprom、cd-rom、固态驱动器(“ssd”)(例如,基于ram)、闪存、相变存储器(“pcm”)、其他存储器类型、其他光盘存储装置、磁盘存储装置或其他磁性存储设备、或者可以被用来存储计算机可执行指令或数据结构形式的期望程序代码、以及可以被通用或专用计算机访问的任何其他介质。

“网络”被定义为使得能够在计算机系统和/或模块和/或其他电子设备之间传送电子数据的一个或多个数据链路。当通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)向计算机传送或提供信息时,计算机将该连接适当地视为传输介质。传输介质可以包括网络和/或数据链路,其可以被用来携带计算机可执行指令或数据结构形式的期望程序代码器件并且可以被通用或专用计算机访问。上述的组合还应该被包括在计算机可读介质的范围内。

进一步地,在到达各种计算机系统部件时,计算机可执行指令或数据结构形式的程序代码器件可以从传输介质自动传送到计算机存储介质(设备)(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“nic”)内的ram中,然后最终传送到计算机系统ram和/或计算机系统处的不易失性计算机存储介质(设备)。因此,应当理解,计算机存储介质(设备)可以被包括在还(甚至主要)利用传输介质的计算机系统部件中。

计算机可执行指令例如包括指令和数据,其当在处理器处执行时,使得通用计算机、专用计算机或专用处理设备执行某个功能或功能组。计算机可执行指令可以例如是二进制文件、诸如汇编语言之类的中间格式指令、或者甚至是源代码。尽管已经用结构特征和/或方法的动作专用的语言对主题进行了描述,但是应当理解,所附权利要求中限定的主题不一定限于上文所描述的特征或动作。相反,所描述的特征和动作被公开为实现权利要求的示例形式。

本领域技术人员应当领会,可以在具有许多类型的计算机系统配置的网络计算环境中实践所描述的各种方面,这些计算机系统配置包括数据中心、个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、可穿戴式设备、多处理器系统、基于微处理器或可编程消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、平板电脑、寻呼机、手表、路由器、交换机等。所描述的方面还可以在分布式系统环境中实践,其中通过网络(通过硬连线数据链路、无线数据链路或通过硬连线数据链路和无线数据链路的组合)链接的本地计算机系统和远程计算机系统均执行任务。在分布式系统环境中,程序模块可能位于本地存储器存储设备和远程存储器存储设备中。

所描述的各方面还可以在分布式网络环境中实现。分布式网络环境的一个示例是云计算环境。然而,本领域技术人员应当认识到,分布式网络不限于云计算环境的示例。在本说明书和以下权利要求书中,“云计算”被定义为用于实现对可配置计算资源的共享池的按需的网络访问的模型。例如,可以在市场中采用云计算来提供对共享的可配置计算资源池进行任何地点的且方便的按需访问。共享的可配置计算资源池可以经由虚拟化进行快速供应,并且在低管理努力或服务提供商交互的情况下发布,然后进行相应的缩放。

云计算模型可以由各种特点(诸如例如,按需自助服务、宽带网络接入、资源池化、快速弹性、经测量的服务等)组成。云计算模型还可以展现各种服务模型,诸如例如,软件即服务(“saas”)、平台即服务(“paas”)以及基础设施即服务(“iaas”)。云计算模型还可以使用不同的部署模型(诸如私有云、社区云、公共云、混合云等)进行部署。在本说明书和权利要求书中,“云计算环境”是采用云计算的环境。

本发明的各方面包括用于同步协议的协议命令序列和对应的协议参数序列。第一方、第二方和第三方中的任一方都可以实现同步协议的客户端和/或服务器端,以与文件存储解决方案对接。可以基于以处理设备已知的紧凑表示形式的元数据的传输来标识要同步的文件集合。示例性紧凑表示

图1图示了用于在计算机系统之间同步文件数据的示例计算机体系架构100。参照图1,计算机体系架构100包括协议客户端101、协议服务器102、存储装置103和存储装置104。协议客户端101、协议服务器102、存储装置103和存储装置104可以连接到网络(或者网络的一部分),诸如例如,局域网(“lan”)、广域网(“wan”)、甚至是互联网。因而,协议客户端101、协议服务器102、存储装置103和存储装置104以及任何其他连接的计算机系统及其部件可以创建消息相关数据并且通过网络交换消息相关数据(例如,互联网协议(“ip”)数据报和诸如传输控制协议(“tcp”)、超文本传输协议(“http”)、简单邮件传输协议(“smtp”)、简单对象访问协议(soap)等之类的利用ip数据报或使用其他非数据报协议的其他更高层协议)。协议客户端和协议服务器之间的通信可以使用任何类型的认证方案进行认证。示例性同步协议可配置为与任何类型的认证方案相对接,例如,其中用于同步协议的通信信道的建立可以通过认证方案来认证协议客户端和/或协议服务器。

在图1的描述中,以数字方式(例如,1至7)标记导引线以帮助理解查看图1。

在一个方面中,除其他示例之外,协议客户端101可以通过诸如本地链路等之类的统一资源标识符(uri)与存储装置103连接。比如,协议客户端101可以在计算机系统上运行,并且存储装置103可以被包含在相同的计算机系统中。在另一方面中,协议客户端101可以在云计算环境中运行,并且存储装置103可以被包含在相同的云计算环境中。在其他方面中,协议客户端101可以在一个云计算环境中运行,并且存储装置103被包含在不同的云计算环境中。协议服务器101和存储装置103之间的其他任意配置和关系也是可能的。

协议服务器102可配置为与存储装置104连接。例如,协议服务器102可以在云计算环境中运行,并且存储装置104可以被包含在相同的云计算环境中。在另一方面中,协议服务器102可以在计算机系统上运行,并且存储装置104可以被包含在相同的计算机系统中。在又一方面中,协议服务器102可以在一个云计算环境中运行,并且存储装置104被包含在不同的云计算环境中。协议服务器102和存储装置104之间的其他任意配置和关系也是可能的。

一般而言,可以使用计算机体系架构100将文件数据从协议服务器存储装置传送到协议客户端存储装置。从协议客户端101的视角来看,文件数据从协议服务器存储装置下载到协议客户端存储装置。通信由协议客户端101发起。作为示例,图1描述了协议客户端101的同步,其中协议客户端101在发起用于从协议服务器102获得用于同步的文件数据的动作。作为示例,协议客户端101可能正在试图从协议服务器102下载文件数据以获得协议客户端101还没有的文件数据。

例如,可以通过协议客户端101和协议服务器102之间的初始通信在处理设备之间启动同步协议。可以在处理设备(例如,协议客户端和协议服务器)之间建立用于特定同步协议的连接。在一个示例性场景中,协议客户端101寻求通过下载特定文件数据来将文件数据与协议服务器102同步。初始通信可以是用于与协议服务器102的数据同步请求,其中该请求可以包括以下各项中的一项或多项:1)示例性同步协议的标识;2)诸如协议客户端101的文件状态的紧凑表示的元数据(例如,知识元数据);以及针对客户端设备可以使用以下载用于同步的文件数据的统一资源标识符的请求。在一个示例中,请求可以包括特定文件同步协议的标识和指示由协议客户端101管理的文件数据的文件状态的知识元数据。如先前所描述的,协议客户端101生成并且维护知识元数据107。知识元数据107可以包括与协议客户端101相关联的文件106a的版本状态的紧凑表示。除其他示例之外,示例性紧凑表示可以包括矢量时钟和lamport时间戳中的一个或多个。然而,用于处理设备上的文件数据的紧凑表示的元数据不限于这样的示例。协议客户端101可以向协议服务器102发送知识元数据107(参见例如,图1的导引线“1”)。使用同步协议,协议服务器102可以从协议客户端101接收知识元数据107并且利用元数据(例如,用于协议客户端101的文件数据的紧凑表示)来标识协议客户端101的文件数据的状态。可以执行处理操作以确定协议客户端101需要什么文件数据以与协议服务器102同步。这样做时,协议客户端可以将知识元数据107与协议客户端102所维护的元数据108进行比较。元数据108可以从与协议客户端102相关联的一个或多个存储装置(例如,存储装置104(参见例如,图1的导引线“2”))获得。

响应于从协议客户端101接收的通信,协议服务器102可以生成改变批次109(参见例如,图1的导引线“3”)。示例性改变批次是对来自协议客户端101的请求的响应,其中协议服务器102可以评估并且处理所接收的知识元数据107以确定协议客户端101需要用于同步的文件数据。改变批次109可以包括以下各项中的一项或多项:1)示例性同步协议的标识;2)用于协议客户端10获得/修改的文件数据列表;3)要与协议客户端101同步的用于文件的元数据;4)在何处访问(例如,与分布式网络的一个或多个存储装置连接的uri/url链接)文件数据的指令;以及5)指示在与协议服务器102相关联的存储装置和与协议客户端101相关联的存储装置之间传送文件数据中所利用的一个或多个数据传输协议的指令。在一个示例中,改变批次109可以包括文件改变数据111和文件访问数据113。文件改变111还包括与用于协议服务器102的存储装置104的文件相关联的元数据108。文件访问数据113还包括位置数据114和传送协议数据116。位置数据114包括针对在何处访问(例如,与分布式网络的一个或多个存储装置连接的uri/url链接)文件数据的指令。传输协议数据116包括指示在传送文件数据中所利用的一个或多个数据传输协议的指令。如上文所标识的,协议服务器102可以通过执行将所接收的知识元数据107与元数据108进行比较的处理操作来生成改变批次109。改变批次109标识协议客户端101先前不知道的文件改变111。文件改变111与如存储在存储装置104中的文件126相关。另一方面,改变批次109标识文件改变数据111以及一个或多个其他文件改变。一个或多个其他文件改变可以是对文件106b中的文件的改变。可替代地,改变批次109可能不包含文件改变(即,改变批次109是空批次)。文件改变可能是对文件内容(修改、创建、删除)和/或文件元数据(文件名、文件存储位置、目录、文件大小、访问属性等)的改变。协议服务器102可以被配置为向协议客户端101发送改变批次109。协议客户端101可以从协议服务器102接收改变批次109。

改变批次109指示要被修改和/或添加到与协议客户端101相关联的存储装置103的文件数据。协议客户端101可以利用改变批次109来发起文件数据请求112,以从与协议服务器102相关联的存储装置(例如,存储装置104)取回文件数据(参见例如,图1的导引线“4”)。文件数据请求112可以利用来自改变批次109的数据来访问存储装置104。在一个示例中,协议客户端101可以使用位置数据114(文件126在存储装置104处的位置)和传输协议数据116以从存储装置106b下载文件数据117。传输协议数据116可以是与存储装置104兼容的数据传输协议。传输协议数据116可以使用示例性同步协议来确定,其中这样的数据可以由协议服务器102来维护,或者通过与这种处理设备相关联的一个或多个其他处理设备/存储装置的通信来获得。

响应于与评估改变批次109相关联的处理操作,协议客户端101可以利用改变批次109来访问文件数据并且获得(例如,下载)文件数据以使协议客户端101与协议服务器102的一个或多个存储装置同步。出于同步目的,文件数据117可以从存储装置104传送到协议客户端101(以及相关联的存储装置)(参见例如,图1的导引线“5”)。在一些示例中,与先前由协议客户端101存储的文件数据(例如,文件126)相比较,由协议客户端101接收例如用以更新文件126的文件数据117可以包括附加内容(例如,数据流)和一个或多个附加元数据字段。文件数据117可以被存储在与协议客户端101相关联的存储装置103中(参见例如,图1的导引线“6”)。在一些示例中,处理操作发生在数据提交通知从协议客户端101传送到协议服务器102的地方。然而,一些示例可能不包括提交数据的通知。例如,协议客户端101可以将其知识元数据107更新为知识元数据107u,作为在协议客户端101上已知和/或存储的经更新的紧凑表示(参见例如,图1的导引线“7”)。在示例中,知识元数据107/107u不限于用于特定协议客户端/协议服务器关系的知识数据。也就是说,可以利用知识元数据107/107u来更新客户端/服务器关系的不同拓扑结构。知识元数据107和经更新的知识元数据107u提供了优于单纯的时间戳数据的优势,该时间戳数据涉及关于特定客户端/服务器关系所执行的更新,其中本文中所描述的知识元数据可以被多个不同的拓扑结构用来发起数据的同步。在一个示例中,协议客户端101可以执行处理操作以将元数据108和文件数据117提交给存储装置103。将元数据108和文件数据117提交到存储装置103使文件106a与文件106b同步。如上文所描述的,提交元数据的一个示例可以包括协议客户端101将知识元数据107更新为知识元数据107u。如果在同步期间发生误差,则同步协议可以生成指示误差的通信并且重新开始处理以同步数据,例如,将文件数据下载到协议客户端101。

转到图2,图2图示了用于在计算机系统之间同步文件数据的示例计算机体系架构200。参照图2,计算机体系架构200包括协议客户端201、协议服务器202、存储装置203和存储装置204。协议客户端201、协议服务器202、存储装置203和存储装置204可以连接到网络(或者网络的一部分),诸如例如,局域网(“lan”)、广域网(“wan”)、甚至是互联网。相应地,协议客户端201、协议服务器202、存储装置203和存储装置204以及任何其他连接的计算机系统及其部件可以创建消息相关数据并且交换消息相关数据(例如,互联网协议(“ip”)数据报和诸如传输控制协议(“tcp”)、超文本传输协议(“http”)、简单邮件传输协议(“smtp”)、简单对象访问协议(soap)等之类的利用ip数据报或使用其他非数据报协议的其他更高层协议)。计算机系统可以在协议客户端功能和协议服务器功能之间切换,或者可以同时实现协议客户端功能和协议服务器功能。协议客户端和协议服务器之间的通信可以使用任何类型的认证方案进行认证。示例性同步协议可配置为与任何类型的认证方案相对接,例如,其中用于同步协议的通信信道的建立可以通过认证方案来认证协议客户端和/或协议服务器。

在图2的描述中,以数字方式(例如,1至7)标记导引线以帮助理解查看图2。

在一个方面中,协议客户端201可以通过uri(例如,本地链路或rui)与存储装置103连接。比如,协议客户端201可以在计算机系统上运行,并且存储装置203可以被包含在相同的计算机系统中。在另一方面中,协议客户端201可以在云计算环境中运行,并且存储装置203可以被包含在相同的云计算环境中。在其他方面中,协议客户端201可以在一个云计算环境中运行,并且存储装置203被包含在不同的云计算环境中。协议服务器201和存储装置203之间的其他任意配置和关系也是可能的。

协议服务器202可配置为与存储装置204连接。例如,协议服务器202可以在云计算环境中运行,并且存储装置204可以被包含在相同的云计算环境中。在另一方面中,协议服务器202可以在计算机系统上运行,并且存储装置204可以被包含在相同的计算机系统中。在又一方面中,协议服务器202可以在一个云计算环境中运行,并且存储装置204被包含在不同的云计算环境中。协议服务器202和存储装置204之间的其他任意配置和关系也是可能的。

一般而言,可以使用计算机体系架构200将文件数据从协议客户端存储装置传送到协议服务器存储装置,例如,其中数据从协议客户端上传到协议服务器以便在协议客户端和协议服务器之间同步数据。从协议客户端201的视角来看,文件数据从协议客户端存储装置被上传到协议服务器存储装置。通信由协议客户端201发起。

协议客户端201可以向协议服务器202发送知识元数据请求218(参见例如,图2的导引线“1”)。知识元数据请求218的示例可以包括来自协议服务器202的针对知识元数据的请求,以发起处理,其中协议服务器202可以向协议客户端201发送存储在协议服务器202和/或与协议服务器202相关联的处理设备上的数据的视图。协议服务器202可以从协议客户端201接收知识元数据请求218。作为响应,协议服务器202可以向协议客户端201发送知识元数据207(参见例如,图2的导引线“2”)。知识元数据207可以包括文件206b的版本状态的紧凑表示。协议客户端201可以从协议服务器202接收知识元数据207。

协议客户端201可以将知识元数据207与元数据208进行比较,以标识协议客户端201和协议服务器202之间的知识的任何差异(例如,存储装置203处的文件226与存储装置204处的文件226之间的差异)。差异可以在元数据子集228中表示。然而,即使当用于同步的文件数据被标识时,协议客户端201由于协议客户端201和协议服务器202之间的潜在协议差异仍然不知道向何处上传用于同步的文件数据/元数据。除了其他方面,协议客户端201可能不能标识向何处上传文件或要利用什么数据传输协议以便将文件数据上传到与协议服务器202相关联的特定位置。因此,示例性同步协议可以用于协调协议客户端201和协议服务器202之间的同步。

作为示例,协议客户端201可以生成放置改变批次元数据请求209以向协议服务器202指示协议客户端201具有其想要与协议服务器202同步的文件数据(参见例如,图2的导引线“3”)。比如,协议客户端201可能已经标识它具有5个文件以与协议服务器202同步。放置改变批次元数据请求209可以包括以下各项的标识:1)要上传到协议服务器202的包括文件元数据在内的文件数据;2)用于上传特定文件数据的位置的请求;以及3)利用什么数据传输来上传特定文件数据的请求。在一个示例中,放置改变批次元数据请求209可以包括元数据子集228。比如,元数据子集228可以包括协议客户端201期望上传到协议服务器202的针对5个文件的元数据。协议服务器202可以使用元数据子集228以确定(存储器204处的文件226的)位置数据214以及用于文件226的传输协议数据216。

协议服务器202可以生成改变批次响应210,其中改变批次响应210是对从协议客户端201接收的放置改变批次元数据请求209的响应(参见例如,图2的导引线“4”)。示例性改变批次响应210包括使得协议客户端201能够将文件数据上传到与协议服务器202相关联的存储装置(例如,存储装置204)的数据。改变批次响应210可以包括信息文件访问数据212,其包括位置数据214和传输协议数据216。位置数据214可以包括与向何处传送用于与协议服务器202同步的文件数据有关的数据。在一个示例中,位置数据214可以包括到与协议服务器202相关联的存储装置/目录的链接。传输协议数据216可以包括例如在上传来自协议客户端201的文件数据期间利用数据传输协议以在协议客户端201和协议服务器202之间同步数据的数据。

协议客户端201可以接收改变批次响应210。利用文件访问数据212的知识,协议客户端201可以使用至少位置数据214和传输协议数据216来上传文件数据217。文件数据217可以被直接上传到存储装置204或者可以被上传到中间存储服务器,其操纵以将数据存储在存储装置204中。

协议客户端201可以生成指示协议服务器202可以提交所上传的数据的放置改变批次数据225(参见例如,图2的导引线“5”)。放置改变批次数据225指示文件数据上传已经完成,并且请求将文件数据提交到与协议服务器202相关联的存储装置。作为响应,协议服务器202可以将元数据208提交给存储装置204并且使得文件数据217被提交给存储装置204(例如,通过与中间存储服务的通信)(参见例如,图2的导引线“6”)。在一些示例中,与由协议服务器202先前存储的文件数据(例如,文件226)相比较,由协议服务器202接收例如用于更新文件226的文件数据217可以包括附加内容(例如,数据流)和一个或多个附加元数据字段。协议服务器202可以向协议客户端201发送指示元数据208和文件数据217被提交的状态219(例如参见,图2的导引线“7”)。在一些示例中,在协议客户端201和协议服务器202之间上传文件数据期间可能发生误差。本文中的示例可以仅提交成功上传的文件数据。如果在同步期间发生误差,则同步协议可以生成指示误差的通信并且重新开始同步数据的处理。例如,假设要发生上传以将3个文件从协议客户端201上传到协议服务器202,并且3个文件中的2个文件成功被上传。协议服务器202可以提交这两个文件并且重新发送用于协议客户端101的通信(例如,知识元数据)以重新上传第三文件。

图3a至图3d图示了用于在计算机系统之间同步文件数据的示例性计算机体系架构300。转向图3a,计算机体系架构300包括计算机系统301,302和303以及存储装置307,308和309。计算机系统301,302和303以及存储装置307,308和309可以连接到网络(称为该网络的部分),诸如例如,局域网(“lan”)、广域网(“wan”)、甚至是互联网。因而,计算机系统301,302和303以及存储装置307,308和309以及任何其他连接的计算机系统及其部件可以创建消息相关数据并且通过网络交换消息相关数据(例如,互联网协议(“ip”)数据报或诸如传输控制协议(“tcp”)、超文本传输协议(“http”)、简单邮件传输协议(“smtp”)、简单对象访问协议(soap)等的利用ip数据报或者使用其他非数据报协议的其他更高层协议)。

一般而言,计算机系统301,302,303和存储装置307,308和309可以在任何环境中运行。如所描绘的,计算机系统301包括协议客户端311并且与存储装置307相关联。协议客户端311可以通过本地链路或网络连接与存储装置307相关联。例如,协议客户端311和存储装置307可以通过计算机系统301处的系统总线连接,可以在同一个数据中心中连接,通过互联网连接等。计算机系统302包括协议服务器312并且与存储装置308相关联。协议服务器312可以与存储装置308或本地链路或网络连接相关联。例如,协议服务器312和存储装置308可以通过计算机系统302处的系统总线连接,可以在同一个数据中心中连接,通过互联网连接等。

计算机系统303包括协议服务器314并且与存储装置309相关联。协议服务器314可以与存储装置309或本地链路或网络连接相关联。例如,协议服务器314和存储装置309可以通过计算机系统303处的系统总线连接,可以在相同的数据中心中连接,通过互联网连接等。

在一个方面中,协议服务器312和协议服务器314在相同的云计算环境中运行。在另一方面中,协议服务器312和协议服务器314在不同的云计算环境中运行。在一个方面中,存储装置308和存储装置309位于相同的云计算环境中。在另一方面中,存储装置308和存储装置309位于不同的云计算环境中。

协议客户端301、协议服务器302和303以及存储装置308和309之间的其他任意配置和关系也是可能的。

基于现有配置,协议客户端311可以被配置为与协议服务器312同步。协议客户端311和协议服务器312可以交换同步协议通信316。同步协议通信316可以是用于协议客户端311和协议服务器312发起文件数据的同步的通信信道。基于同步协议通信316,传输协议331然后可以被用来将文件数据306从存储装置307发送(上传)到存储装置308。

转到图3b,计算机系统切换以实现协议客户端313。协议客户端313和协议服务器314可以交换同步协议通信326。同步协议通信326可以是用于协议客户端313和协议服务器314发起文件数据的同步的通信信道。基于同步协议通信326,传输协议332然后可以被用来将文件数据306从存储装置308发送(上传)到存储装置309。

转到图3c,基于配置改变,协议客户端311可以被配置为与协议服务器314同步。协议客户端311和协议服务器314可以交换同步协议通信317。同步协议通信317可以是协议客户端311和协议服务器314发起文件数据的同步的通信信道。基于同步协议通信317,传输协议333然后可以被用来将文件数据306从存储装置309发送(下载)到存储装置307。可替代地和/或和/或组合地,传输协议334可以被用来将文件数据319从存储装置307发送(上传)到存储装置309。文件数据319可以是在同步协议通信316之后在计算机系统301处生成的文件数据。当考虑图3a和图3c时,所标识的是协议客户端311可以与不同的协议服务器通信,例如,协议服务器312和协议服务器314,以同步文件数据。也就是说,协议客户端311可以将文件数据与(例如,第一云计算区域中的)第一协议服务器312同步,然后转向并且使文件数据与(例如,第二云计算区域中的)另一协议服务器314同步。这样做时,通常发生一定量的重新协商用于协议客户端311和各个协议服务器之间的第一同步。这样的重新协商通常可能包括许多来回交互或知识数据大文件,这些知识数据大文件指示什么是已知的,这样的重新协商的解析可能花费时间。在其他实例中,文件数据可以被跨多个协议服务器存储。在这样的实例中,当协议服务器(例如,协议服务器314)不知道另一协议服务器(例如,协议服务器312)对协议客户端301的更新时,可能难以同步。在目前示例中,知识元数据(例如,协议客户端311所知道内容的紧凑表示)可以被用来使得协议客户端能够在不需要与相应的协议服务器进行大规模重新协商的情况下立即转向并且与不同协议服务器(例如,协议服务器312和协议服务器314)同步。如上文所描述的,知识元数据(以及在对协议客户端的更新之后经更新的知识元数据)可以包含涉及跨网络的多种设备或节点的元数据。

在另一示例中,在同步协议通信316之后没有发生对存储装置307中的文件的改变。转到图3d,协议服务器314可以使用同步协议通信341来向协议客户端311发送空批次321(例如,当协议客户端311发起下载时)。可替代地,协议客户端311可以使用同步协议通信342来向协议服务器314发送空批次322(例如,当协议客户端311发起上传时)。空批次指示存储装置307中的文件和存储装置309中的对应文件被同步。

尽管协议服务器312和协议客户端313被分开描述,但是计算机系统302可以与协议客户端313一起(例如,同时)实现协议服务器312。计算机系统301还可以与协议客户端311(例如,同时)一起实现协议服务器(未示出)。计算机系统303还可以与协议服务器314(例如,同时)一起实现协议客户端(未示出)。

在一个方面中,计算机系统实现一个或多个(或复数个)协议服务器一起,实现一个或多个(或复数个)协议客户端(例如,同时)。如此,计算机系统可以基本上同时参与同步协议的多个实例。同步协议的多个实例可以被用来使文件数据与不同计算机系统同步和/或同步不同计算机系统之间的文件数据。

图4图示了使用同步协议进行文件同步下载的示例方法400。如所描绘的,下载流400包括协议客户端401、协议服务402、客户端存储装置403以及(可能多个实例)服务器存储装置404。在图4内,较粗线(例如,用于公布(post)知识、改变批次#1、获得改变批次(getchangebatch)和改变批次#2)是同步协议的一部分。较窄线(例如,用于获得文件#1数据、文件数据、获得文件数据#2、应用批次#1、应用批次#和状态)是单独传输协议和协议客户端401和/或协议服务器402上的内部批次处理的一部分。如先前所描述的,协议客户端和协议服务可以利用同步协议建立用于同步的通信。

协议客户端401使用公布知识请求向协议服务402发送知识。作为示例,公布知识请求是例如如图1中所描述的知识元数据107的传输。协议服务402使用协议客户端401的知识和它自己的元数据来生成一个或多个改变批次。示例性改变批次是例如如图1中所描述的改变批次109。响应于公布知识,第一改变批次(改变批次#1)被发送。如果没有要下载的改变,则改变批次#1为空。

协议客户端401检查改变批次#1。如果改变批次#1不为空,则对于改变批次#1中的每个文件,协议客户端401确定文件的数据是否已经改变并且要被下载。如果是,则协议客户端401使用元数据中的文件的位置信息来下载新文件数据。一旦文件数据被下载,协议客户端401就通过将文件改变提交给客户端存储装置403来应用改变批次#1。

协议客户端401根据改变批次中的信息更新其元数据。如果没有更多改变批次,则下载结束。如果有更多改变批次,则协议客户端401使用获得改变批次下载下一改变批次(改变批次#2)。类似于改变批次#1的检查和处理,协议客户端401可以检查并且处理改变批次#2。应当领会,因为可能需要处理多个改变批次以便在处理设备之间同步文件数据,所以本文中所描述的示例扩展到多个请求/响应。

图5图示了使用同步协议进行文件同步上传的示例方法500。如所描绘的,下载流500包括协议客户端501、协议服务502、客户端存储装置503和服务存储装置504。在图5内,较粗线(例如,获得知识、服务知识、放置改变批次#1元数据、准备批次响应、放置改变批次#1数据、协议服务器到协议客户端状态、放置改变批次#2元数据和放置改变批次#1数据)是同步协议的一部分。较窄线(例如,放置文件#1数据、服务存储装置到协议客户端状态、放置文件#2数据、应用批次#1、应用批次#2和服务存储装置到协议服务器状态)是单独传输协议以及协议客户端501和/或协议服务502上的内部批次处理的一部分。如先前所描述的,协议客户端和协议服务可以利用同步协议建立用于同步的通信。

协议客户端501可以使用获得知识请求向协议服务502传送知识元数据。如图2中所描述的,示例性获得知识请求可以是知识元数据请求218。协议服务502可以利用获得知识请求来向协议客户端提供用于协议客户端的服务知识(例如,服务知识响应)以便了解存储在与协议服务502相关联的至少一个存储装置上的文件数据的状态。示例性服务知识响应可以是在图2的描述中描述的知识元数据207。协议客户端501使用协议服务502的服务知识及其自己的元数据生成一个或多个改变批次。示例性改变批次(例如,图5的放置改变批次#1)可以是如图2所描述的放置改变批次元数据请求209。如果没有对上传的改变,则第一改变批次可以是空批次。

协议客户端501使用放置改变批次#1元数据请求来向协议服务502通知改变批次。协议服务502检查放置改变批次#1元数据请求,并且设立上传新文件数据的位置(例如,服务存储器504中的)并且用准备批次响应来响应协议客户端501。准备批次响应包括必要的上传信息。如果批次不为空,则对于该批次中的每个文件,协议客户端501确定协议服务502是否要基于来自协议服务502的响应来接收文件的数据。如果是,则协议客户端501使用由协议服务502发送的位置来上传文件的数据。协议客户端501使用放置改变批次响应请求(例如,图5的放置改变批次#1数据)传送用于上传的文件数据。

在一个方面中,数据传输经过数据传输协议,该数据传输协议可能不由协议服务502拥有。数据传输可以成功或失败,并且可以返回指示成功或失败的传送状态。

之后,放置改变批次(提交指令)进入协议服务502。放置改变批次的有效载荷的一部分是每个文件有效载荷,其包括传送状态(每个文件)。协议服务502应用批次并且使用传送状态来确定文件是否要被应用。如果传送状态指示失败,则不应用这些文件。

例如,协议客户端501使用放置改变批次#1数据请求来指令协议服务502应用批次。如图2所描述的,示例性放置改变批次请求是放置改变批次数据225。协议服务502将新数据或改变的数据(如果有的话)提交给存储装置(例如,提交给服务存储装置504)。协议服务502还根据改变批次中的信息更新其元数据,并且用状态来响应协议客户端501。

如果没有更多批次,则上传结束。如果有更多改变批次,则协议客户端501上传下一改变批次(例如,放置改变批次#2元数据请求)。协议客户端501可以检查并且处理放置改变批次#2元数据请求,其类似于放置改变批次#1元数据请求的检查和处理。

在一些方面中,服务存储装置(404或504)可以与多种不同的传输协议兼容。如果是,则协议服务(例如,402或502)可以使用同步协议消息来使得协议客户端(例如,401或501)知道多个不同的传输协议。然后,协议客户端可以使用来自多个不同传输协议中的传输协议在协议客户端和服务存储装置中的存储位置之间传送(例如,下载或上传)文件数据。应当领会,因为可能需要处理多个改变批次以便在处理设备之间同步文件数据,所以本文中所描述的示例扩展到多个请求/响应。

用于示例性同步协议的示例性参数命令

以下表格描述了在协议客户端和协议服务(包括协议服务器)之间的通信中所包括的请求,其中协议客户端在经由下载同步文件数据:

公布知识

获得改变批次

在一个方面中,改变批次由两部分组成:文件元数据和二进制大对象(“blob”)。文件元数据格式可以如下所示:

放置下载结果

以下表格描述了在协议客户端和协议服务(包括协议服务器)之间的通信中所包括的请求,其中协议客户端在经由上传使文件数据与协议服务同步:

获得知识

放置改变批次元数据

preparebatchrequestentry是分阶段上传条目所需的文件元数据信息的子集。

放置改变批次数据

图6至图8和相关联的描述提供了其中可以实践本发明的示例的多种操作环境的讨论。然而,关于图6至图8所图示和讨论的设备和系统是用于示例和说明的目的,并不限制可以被用来实践本文中所描述的本发明的示例的大量计算设备配置。

图6是图示了可以实践本公开的示例的计算设备602(例如,移动处理设备)的物理部件的框图。例如,计算设备602可以是用于实现与如本文中所描述的示例性同步协议相关地执行的处理的示例性计算设备。在基本配置中,计算设备602可以包括至少一个处理单元604和系统存储器606。取决于计算设备的配置和类型,系统存储器606可以包括但不限于:易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存或这些存储器的任何组合。系统存储器606可以包括操作系统607以及适合于运行诸如io管理器624、其他实用程序626和应用628之类的软件程序/模块620的一个或多个程序模块608。作为示例,系统存储器606可以存储用于执行的指令。系统存储器606的其他示例可以存储与应用相关联的数据。例如,操作系统607可以适合于控制计算设备602的操作。更进一步地,本发明的示例可以结合图形库、其他操作系统或者任何其他应用程序来实践,并且不局限于任何特定应用或系统。该基本配置在图6中由虚线622内的那些部件所图示。计算设备602可以具有附加特征或功能。例如,计算设备602还可以包括附加数据存储设备(可移除的和/或不可移除的),诸如例如,磁盘、光盘或磁带。图6中通过可移除存储设备609和不可移除存储设备610来说明这种附加存储装置。

如上文所陈述的,若干个程序模块和数据文件可以被存储在系统存储器606中。当在处理单元604上执行的同时,程序模块608(例如,输入/输出(i/o)管理器624、其他实用程序626和应用628)可以执行过程,其包括但不限于贯穿本公开所描述的操作的阶段中的一个或多个阶段。可以按照本发明的示例使用的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序、照片编辑应用、创作应用等。

更进一步地,本发明的示例可以在包括分立电子元件电路中、包含逻辑门的封装或集成电子芯片中、利用微处理器的电路中、或者包含电子元件或微处理器的单个芯片上实践。例如,本发明的示例可以经由片上系统(soc)来实践,其中图6中所图示的部件中的每个或多个部件可以被集成到单个集成电路上。这样的soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都被集成(或“烧”)到芯片衬底上作为单个集成电路。当经由soc操作时,可以经由在单个集成电路(芯片)上与计算设备602的其他部件集成的应用特定逻辑来操作本文中所描述的功能。本公开的示例还可以使用能够执行逻辑操作(诸如例如,and、or和not)的其他技术来实践,这些技术包括但不限于机械技术、光学技术、流体技术和量子技术。另外,本发明的示例可以在通用计算机内或在任何其他电路或系统中实践。

计算设备602还可以具有一个或多个输入设备612,诸如键盘、鼠标、笔、声音输入设备、用于话音输入/识别的设备、触摸输入设备等等。还可以包括诸如显示器、扬声器、打印机等之类的一个或多个输出设备614。上述设备是示例,并且可以使用其他设备。计算设备604可以包括一个或多个通信连接616,其允许与其他计算设备618通信。合适的通信连接616的示例包括但不限于rf发射机、接收机和/或收发机电路;通用串行总线(usb)、并行端口和/或串行端口。

如本文中所使用的术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构或程序模块)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。系统存储器606、可移除存储设备609和不可移除存储设备610都是计算机存储介质的示例(即,存储器存储装置)。计算机存储介质可以包括ram、rom、电可擦除只读存储器(eeprom)、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、或可以被用来存储信息并且可以由计算设备602访问的任何其他制品。任何这样的计算机存储介质可以是计算设备102的一部分。计算机存储介质不包括载波或其他经传播的或经调制的数据信号。

通信介质可以通过计算机可读指令、数据结构、程序模块或经调制的数据信号中的其他数据(诸如载波或其他传输机制)来体现,并且包括任何信息递送介质。术语“经调制的数据信号”可以描述具有以对信号中的信息进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质以及诸如声学、射频(rf)、红外线以及其他无线介质之类的无线介质。

图7a和图7b图示了其中可以实践本发明的示例的移动计算设备700,例如,移动电话、智能电话、个人数据助理、平板个人计算机、平板手机、平板(slate)、膝上型计算机等。例如,移动计算设备700可以是用于实现与如本文中所描述的示例性同步协议有关的处理的示例性计算设备。比如,移动计算设备700可以被实现为执行与示例性同步协议相关联的应用和/或应用命令控制。应用命令控制涉及通过用户界面(ui)或图形用户界面(gui)与应用一起使用的命令的呈现和控制。在一个示例中,应用命令控制可以被编程为专门用于与单个应用一起工作。在其他示例中,应用命令控件可以被编程为跨多于一个应用程序工作。参照图7a,图示了用于实现这些示例的移动计算设备700的一个示例。在基本配置中,移动计算设备700是具有输入元件和输出元件的手持式计算机。移动计算设备700通常包括显示器705和允许用户将信息录入到移动计算设备700中的一个或多个输入按钮710。移动计算设备700的显示器705还可以用作输入设备(例如,触摸屏显示器)。如果包括,则可选侧面输入元件715允许其他的用户输入。侧面输入元件715可以是旋转开关、按钮或任何其他类型的手动输入元件。在备选示例中,移动计算设备700可以包含更多或更少的输入元件。例如,在一些示例中,显示器705可能不是触摸屏。在又一备选示例中,移动计算设备700是便携式电话系统,诸如蜂窝电话。移动计算设备700还可以包括可选小键盘735。可选的小键盘735可以是在触摸屏显示器或任何其他软输入面板(sip)上生成的物理小键盘或“软”小键盘。在各种示例中,输出元件包括用于示出gui的显示器705、视觉指示器720(例如,发光二极管)和/或音频换能器725(例如,扬声器)。在一些示例中,移动计算设备700包含用于向用户提供触觉反馈的振动换能器。在又一示例中,移动计算设备700包含诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口)之类的输入和/输出端口,用于向外部设备发送信号或从外部设备接收信号。

图7b是图示了移动计算设备的一个示例的体系架构的框图。也就是说,移动计算设备700可以包含系统(即,体系架构)702来实现一些示例。在示例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些示例中,系统702被集成为计算设备,诸如集成式个人数字助理(pda)、平板电脑和无线电话。

一个或多个应用程序766可以被加载到存储器262中并且在操作系统764上或者与操作系统764相关联地运行。应用程序的示例包括电话拨号器程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等等。系统702还包括存储器762内的非易失性存储区域768。非易失性存储区域768可以被用来存储即使系统702断电也不应当丢失的持久信息。应用程序766可以使用信息并且将信息存储在非易失性存储区域768中,诸如由电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统702上,并且被编程为与驻留在主计算机上的对应同步应用交互以保持存储在非易失性存储区域768中的信息与存储在主计算机处的对应信息同步。应当领会,其他应用可以被加载到存储器762中并且在本文中所描述的移动计算设备700上运行。

系统702具有电源770,其可以被实现为一个或多个电池。电源770还可以包括外部电源,诸如对电池进行补充或充电的ac适配器或供电坞支架。

系统702可以包括外围设备端口730,其执行促进系统702和一个或多个外围设备之间的连接性的功能。去往和来自外围设备端口730的传输在操作系统(os)764的控制下进行。换句话说,由外围设备端口730接收的通信可以经由操作系统764散播到应用程序766,反之亦然。

系统702还可以包括执行传送和接收射频通信的功能的无线电接口层772。无线电接口层772经由通信载波或服务提供商来促进系统702与“外部世界”之间的无线连接。去往和来自无线电接口层772的传输在操作系统764的控制下进行。换句话说,无线电接口层772接收的通信可以经由操作系统764传播到应用程序766,反之亦然。

视觉指示器720可以被用来提供视觉通知,和/或音频接口774可以用于经由音频换能器725产生可听通知。在所图示的示例中,视觉指示器720是发光二极管(led),而音频换能器725是扬声器。这些设备可以直接耦合到电源770,使得当被激活时,即使处理器760和其他部件可能关闭以节省电池电力,它们仍然在由通知机构规定的持续时间内保持开启。led可以被编程为无限期地保持开启,直到用户采取动作为止,以指示设备的开机状态。音频接口774被用来向用户提供可听信号并且从用户接收可听信号。例如,除了被耦合到音频换能器725之外,音频接口774还可以耦合到麦克风以接收可听输入,诸如促进电话对话。按照本发明的示例,如下文所描述的,麦克风还可以用作音频传感器以促进对通知的控制。系统702还可以包括视频接口776,其使得车载相机730的操作能够记录静止图像、视频流等。

实现系统702的移动计算设备700可以具有附加特征或功能。例如,移动计算设备700还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如磁盘、光盘或磁带。在图7b中由非易失性存储区域768图示这种附加存储装置。

如上文所描述的,由移动计算设备700生成或捕获并且经由系统702存储的数据/信息可以被本地存储在移动计算设备700上,或者数据可以被存储在任何数目的存储介质上,这些存储介质可以由设备经由无线电772或经由移动计算设备700和与移动计算设备700相关联的单独计算设备(例如,分布式计算网络(诸如因特网)中的服务器计算机)之间的有线连接来访问。应当领会,这种数据/信息可以经由移动计算设备700、经由无线电772、或经由分布式计算网络来访问。类似地,根据包括电子邮件和协作数据/信息共享系统在内的众所周知的数据/信息传输和存储器件,这些数据/信息可以容易地在计算设备之间传送以供存储和使用。

图8图示了如上文所描述的用于提供可靠地访问存储系统上的目标数据并且处理到一个或多个客户端设备的通信故障的应用的系统的体系架构的一个示例。图8的系统可以是用于与如本文中所描述的示例性同步协议有关的处理的示例性系统。与编程模块608、应用620和存储装置/存储器相关联地访问、交互或编辑的目标数据可以被存储在不同的通信信道或其他存储类型中。例如,如本文中所描述的,可以使用目录服务822、web门户824、邮箱服务826、即时消息传送存储装置828或社交网络站点830、应用628、io管理器624、其他实用程序626和可以使用这些类型的系统的存储系统等中的任一个来实现数据利用。服务器820可以提供存储系统以供通过网络815在通用计算设备602和一个或多个移动设备700上操作的客户端使用。通过示例,网络815可以包括因特网或任何其他类型的局域网或广域网,并且客户端节点可以被实现为在个人计算机、平板计算设备和/或移动计算设备700(例如,移动处理设备)中体现的计算设备602。客户端计算设备602,200和202的这些示例中的任一示例可以从存储装置816获得内容。

本公开的非限制性示例描述了示例性同步协议的实现,其标识用于同步的文件数据并且协商如何实现用于文件数据的同步的数据传送。可以与客户端设备建立用于特定同步协议的连接。特定同步协议与多个数据传输协议对接并且可用于标识文件数据以与客户端设备同步并且确定要被用于下载/上传特定文件数据的多个数据传输协议中的数据传输协议。在一个示例中,从客户端设备接收用于同步文件数据的请求。作为示例,客户端设备可以是协议客户端,并且该请求可以在协议服务器处被接收。该请求可以包括:使用特定文件同步协议生成该请求的标识、包括标识与客户端设备相关联的文件数据的版本状态的紧凑表示的知识元数据、以及针对客户端设备可以使用以下载用于同步的文件数据的统一资源标识符的请求。可能生成改变批次响应。改变批次响应可以由诸如协议服务器设备之类的处理设备来生成。示例性改变批次响应可用于文件数据的同步。作为示例,改变批次响应包括:使用特定文件同步协议生成改变批次响应的标识、用于同步的特定文件数据的标识、包括用于对特定文件数据进行访问的至少一个统一资源标识符的用于访问特定文件数据的指令、以及指示例如当被使用统一资源标识符访问时利用至少一个数据传输协议以获得特定文件数据的指令。在改变批次响应中,指示至少一个数据传输协议的指令还可以包括使用第一数据传输协议获得第一文件数据的指令以及使用与第一数据传输协议不同的第二数据传输协议获得第二文件数据的指令。改变批次响应可以被传送到客户端设备。在至少一个附加示例中,可以接收文件数据的一个或多个文件与客户端设备同步的指示。该指示可以包括经更新的知识元数据,并且在一些情况下可以响应于后续请求而被接收。在客户端设备和服务器设备之间的附加通信可以发生在例如可以交换附加请求和改变批次响应以完成文件数据的同步的地方。

在另一示例中,可以在处理设备和另一处理设备之间建立用于特定同步协议的连接。特定同步协议与多个数据传输协议对接并且可用于标识文件数据以与其他处理设备同步,并且确定要被用于下载/上传特定文件数据的多个数据传输协议的数据传输协议。处理设备可以生成同步文件数据的请求。作为示例,该请求可以由旨在与协议服务器设备通信的协议客户端设备生成。该请求可以包括该请求是使用特定文件同步协议而生成的标识、知识元数据,其包括标识与处理设备相关联的文件数据的版本状态的紧凑表示、以及针对处理设备可以使用统一资源标识符以下载用于同步的文件数据的请求。该请求可以被传送到另一处理设备,诸如协议服务器设备等等。响应于该请求的传输,可以接收改变批次响应。改变批次响应可以包括:该改变批次响应是使用特定文件同步协议生成的标识、用于同步的特定文件数据的标识、包括用于对特定文件数据进行访问的至少一个统一资源标识符的用于访问特定文件数据的指令、以及例如当使用统一资源标识符进行访问时利用,用于指示至少一个数据传输协议以获得特定文件数据的指令。作为示例,统一资源标识符可以提供对与协议服务器相关联的存储装置的访问。可以使用在改变批次响应中标识的数据传输协议来(经由统一资源标识符)来下载特定文件数据。另外的示例可以包括传输文件数据的一个或多个文件与客户端设备同步的指示。在一个示例中,该指示包括更新的知识元数据。处理设备与另一处理设备之间的附加通信可以发生在例如可以交换附加请求和改变批次响应以完成文件数据的同步的地方。

在另一示例中,第一处理设备可以与另一处理设备对接,以经由将文件数据从第一处理设备上传到与第二处理设备相关联的存储装置来同步文件数据。针对标识与服务器设备相关联的文件数据的状态的知识元数据的请求可以从第一处理设备传送到第二处理设备。作为示例,第一处理设备可以是协议客户端设备,而第二处理设备可以是协议服务器设备。第一处理设备可以例如从第二处理设备接收知识元数据。响应于接收知识元数据,第一处理设备可以生成文件同步请求,其中文件同步请求标识文件数据以与第二处理设备同步。文件同步请求可以被传送到第二处理设备。作为响应,第一处理设备可以从第二处理设备接收文件同步响应。文件同步响应包括指示上传文件数据的位置的数据以及指示利用至少一个数据传输协议以上传文件数据的指令。使用文件同步响应,第一处理设备可以上传文件数据。

本公开的非限制性示例描述了示例性同步协议的实现,以标识用于同步的文件数据以及协商如何实现用于同步文件数据的数据传送。同步协议是可用于标识文件数据以与处理设备同步并且传达指令以实现文件数据的数据传送的协议。作为示例,第一处理设备(例如,协议客户端)可以与第二处理设备(例如,协议服务器)对接以协商设备之间的文件同步。如上文所标识的,描述不限于单个处理设备。比如,协议客户端和/或协议服务器可以是一个或多个设备(通过分布式网络连接)。例如,协议客户端可以正在试图通过从与协议服务器相关联的一个或多个存储装置下载文件数据来使文件数据与协议服务器同步。比如,协议客户端可能正在试图从分布式网络环境下载文件数据以使文件数据与分布式网络同步。可以在协议客户端和协议服务器之间建立通信通道以用于文件同步协议。在一个示例中,从协议客户端发送用于数据同步的请求并且由协议服务器接收。该请求包括知识元数据,该知识元数据包括与处理设备相关联的文件数据的版本状态的紧凑表示。协议服务器使用知识元数据来标识用于同步的文件数据。在一个示例中,协议服务器可以将所接收的知识元数据与和协议服务器相关联的元数据进行比较,该元数据标识与协议服务器相对应的文件数据的状态。比如,与协议服务器相对应的文件数据可以是跨分布式网络的存储装置存储的文件数据。响应于接收到请求,协议服务器生成响应。该响应可以包括:用于同步的文件数据的标识、用于(协议客户端)访问文件数据的指令、以及指示(对于协议客户端)利用数据传输协议以获得文件数据的指令。用于访问文件数据的指令可以包括统一资源标识符以将处理设备和与系统相关联的存储装置连接。例如,响应可以被传送到协议客户端,以使协议客户端能够同步文件数据。在一个示例中,响应使用用于同步协议的连接被传送到协议客户端。协议客户端可以利用响应来访问文件数据并且使用在响应中标识的一个或多个数据传输协议来下载文件数据。数据传输协议是选自由以下各项组成的组中的至少一项:http、http/s、ftp和fsp、smtp、sftp和ftps。然而,同步协议可以被配置为与任何数据传输协议对接。在其他示例中,协议服务器从协议客户端接收第二请求。第二请求可以包括经更新的知识元数据,其包括例如在协议客户端发生改变之后与处理设备相关联的文件数据的版本状态的紧凑表示。协议客户端可以生成对第二请求的第二响应。第二响应可以包括:用于同步的第二文件数据的标识、用于访问第二文件数据的指令、以及指示要利用数据传输协议以获得第二文件数据的指令。第二响应可以被传送到协议客户端以使得协议客户端能够通过下载第二文件数据进行同步。

在本公开的其他非限制性示例中,实现示例性同步协议以使得处理设备能够与另一处理设备和/或分布式网络同步文件数据。作为示例,第一处理设备(例如,协议客户端)可以与第二处理设备(例如,协议服务器)对接以协商设备之间的文件同步。如上文所标识的,描述不限于单个处理设备。比如,协议客户端和/或协议服务器可以是一个或多个设备(通过分布式网络连接)。例如,协议客户端可以正在试图通过将文件数据上传到与协议服务器相关联的一个或多个存储装置来使文件数据与协议服务器同步。比如,协议客户端可能正在试图将文件数据上传到分布式网络环境,以使文件数据的本地副本与分布式网络同步。可以在协议客户端和协议服务器之间建立通信通道以用于文件同步协议。在一个示例中,针对标识与协议服务器相关联的文件数据的状态的知识元数据,传送请求。知识元数据可以被传送到协议客户端并且在协议客户端处被接收。作为响应,协议客户端可以生成文件同步请求。文件同步请求可以标识文件数据以与协议服务器同步。用于同步的文件数据可以通过处理操作来标识,其中协议客户端可以确定用于协议客户端的文件状态元数据和从协议服务器接收的知识元数据之间的差异。基于确定文件状态之间的差异来标识与协议服务器同步的文件数据。文件同步请求可以被传送到协议服务器。文件同步响应可以从协议服务器接收。文件同步响应可以包括指示上传文件数据的位置的数据以及指示利用至少一个数据传输协议以上传文件数据的指令。文件同步响应可以被用来传送文件数据以供例如上传到与协议服务器相关联的存储装置。例如,协议客户端可以利用(由同步协议标识的)一个或多个不同的数据传输协议来向协议服务器上传文件数据。在示例中,文件同步请求和文件同步响应由文件同步协议生成。

贯穿本说明书已经参考了“一个示例”或“一示例”,这意指在至少一个示例中包括特定的描述的特征、结构或特性。因此,这样的短语的使用可以指代不止一个示例。更进一步地,所描述的特征、结构或特性可以以任何合适的方式在一个或多个示例中组合。

然而,相关领域的技术人员可以认识到,可以在缺少具体细节中的一个或多个具体细节的情况下,或者通过其他方法、资源、材料等来实践这些示例。在其他实例中,众所周知的结构、资源、或操作未被示出或详细描述,仅仅是为了不模糊观察示例的方面。

虽然已经说明和描述了示例性示例和应用,但是应当理解,示例不限于上文所描述的精确配置和资源。可以在不背离所要求保护的示例的范围的情况下,对在本文中所公开的方法和系统的布置、操作和细节做出对于本领域技术人员而言是明显的各种修改、改变和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1