通过网络传输容器文件制造技术

技术编号:18611677 阅读:34 留言:0更新日期:2018-08-04 23:19
提供了用于传输文件的系统、组件、设备和方法。一种示例文件是包括多个组件文件的容器文件。非限制性示例方法是一种用于通过网络将容器文件传输至远程设备的方法。该方法包括访问容器文件的步骤,所述容器文件包括多个组件。该方法还包括向远程设备发送多个组件的元数据信息的步骤。该方法还包括从多个组件确定要向远程设备发送的组件的步骤。该方法额外地包括将所确定的组件的组件数据项发送至远程设备的步骤。

【技术实现步骤摘要】
【国外来华专利技术】通过网络传输容器文件
技术介绍
文件编辑器用于创建新文件以及编辑现有文件。存在用于编辑各种类型的文件的各种文件编辑器。例如,文本编辑器用于编辑文本文件,其可以由字符串组成。其他类型的编辑器可以用于编辑更复杂的文件类型。作为示例,使用例如来自WA州Redmond市的微软公司的WORD的文档编辑器来编辑文档文件;使用例如也来自微软公司的的演示编辑器来编辑演示文件;并且使用例如也来自微软公司的的电子表格编辑器来编辑电子表格文件。这些更复杂的文件类型可以包括包含字符数据的多个部分,所述字符数据包括标记信息以及二进制数据。例如,标记信息可以包括可扩展标记语言(XML)标签和数据或者其他标记语言数据。二进制数据可以包括图形、图像、视频、声音、动画、以及其他类型的数据。当然,以上只是示例,并且许多其他类型的文件编辑器也用于编辑其他文件类型。更复杂的文件中的一些可以被结构化为容器文件。容器文件可以包括一个或多个子组件,例如组件文件。容器文件格式的示例包括诸如压缩文件(.ZIP)和Java归档文件(.JAR)之类的归档文件格式。可以向诸如服务器之类的远程计算设备发送利用文件编辑器编辑的文件。例如,远程计算设备可以通过诸如局域网、虚拟专用网、或包括互联网的广域网之类的网络可用。对文件进行发送可能需要通过网络传输大量数据,这可能是有问题的。例如,该传输可能是消耗时间的,尤其是当文件编辑器在诸如移动计算设备之类的受到网络带宽限制的计算设备上运行时。较大文件的传输也可能消耗大量的电力,因此耗尽移动设备中的电池。额外地,较大文件的传输可能增加安全性和数据损坏的风险。针对这些和其他一般的考虑而进行了这些方面。同样,尽管已经讨论了相对具体的问题,但是应当理解的是,这些方面不应限于解决在
技术介绍
中所标识的具体问题。
技术实现思路
提供了该
技术实现思路
以用简化的形式引入对在以下的具体实施方式中进一步描述的概念的选择。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。本公开的方面提供了一种用于传输文件的方法和系统。在示例中,以降低必须通过网络发送的数据的量的方式来传输容器文件。非限制性示例方法是一种用于通过网络将容器文件传输至远程设备的方法。该方法包括访问容器文件的步骤,所述容器文件包括多个组件。该方法还包括将多个组件的元数据信息发送至远程设备的步骤。该方法还包括从多个组件确定要发送至远程设备的组件的步骤。该方法额外地包括将所确定的组件的组件数据发送至远程设备的步骤。多个方面可以被实现为计算机进程、计算系统、或诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是能够由计算机系统读取的计算机存储介质,并且能够编码指令的计算机程序以用于执行计算机进程。附图说明图1是用于传输容器文件的系统的一个示例的框图。图2提供了图1的容器文件的示例的框图。图3示出了容器文件交换引擎的方面,所述容器文件交换引擎可以用于实现图1中的客户端容器文件交换引擎和服务器容器文件交换引擎的方面。图4示出了数据存储的方面,所述数据存储可以用于实现图1中的客户端数据存储和服务器数据存储的方面。图5示出了用于传输能够由图1中的系统的方面执行的容器文件的方法。图6示出了用于接收能够由图1的系统的方面执行的容器文件的方法。图7是示出了利用其可以实践本专利技术的方面的计算设备的示例物理组件的框图。图8A和8B是利用其可以实践本专利技术的方面的移动计算设备的框图。图9是可以实践本公开的多个方面的分布式计算系统的框图。具体实施方式在下文中参考形成了其一部分并且示出了具体示例性方面的附图更加完整地描述了各种方面。然而,多个方面可以以许多不同的形式来实现,并且不应当被理解为限于在本文中所阐述的方面;相反,提供了这些方面以使得该公开将是彻底和完整的,并且将向本领域技术人员完全传达所述方面的范围。方面可以被实践为方法、系统、或设备。由此,方面可以采取硬件实现、完全软件实现、或者组合软件和硬件方面的实现的形式。因此,以下的详细描述不被认为是限制性意义。本公开描述了在计算设备之间传输文件。在一些示例中,以将传输文件所必须发送的数据的量最小化的方式来执行传输。例如,在一些方面中,容器文件从客户端计算设备被传输至服务器计算设备,而不发送与容器文件内的组件相关联的所有数据。例如,客户端计算设备可以向服务器计算设备发送与容器文件内的所有组件相关联的元数据以及仅与容器文件中的组件的一部分相关联的数据。接着,客户端计算设备基于确定服务器计算设备的哪些组件需要数据来确定应当传输组件数据的哪一部分。通过发送与所有组件相关联的元数据,服务器计算设备可以确定正被传输的容器文件的结构和内容。元数据通常较小并且可以相对快速地被发送。数据可以比元数据大得多,并且通过避免传输所有数据,可以更加快速地传输容器文件。客户端计算设备使用多种技术来确定服务器计算设备需要哪些组件数据。例如,在一些方面,客户端计算设备维护在服务器计算设备上高速缓存的组件列表并且确定要发送不包括在列表中的组件。可以使用至少部分地基于组件数据的内容(例如,循环冗余码)而计算的哈希值来索引该列表,并且因此当组件被修改时,其哈希值将改变并且将无法使用经修改的哈希值而在列表中找到该组件。该列表可以包括跨许多文件共同的组件。该列表还可以包括特定于特定容器文件且先前已经由客户端计算设备发送至服务器计算设备的组件。在一些方面中,客户端计算设备通过将已经发送至服务器设备的组件添加至列表来维护该列表。额外地,在一些方面中,客户端计算设备通过以下方式来维护列表:在从服务器计算设备接收指示组件已经被添加至高速缓存的响应之后,添加已经发送至服务器设备的组件。作为另一示例,在一些方面中,客户端计算设备基于由服务器计算设备所发送的针对组件数据的请求来确定服务器计算设备需要组件数据。例如,客户端计算设备可以将与所有组件相关联的元数据发送至服务器计算设备。接着,服务器计算设备可以确定组件中的哪些组件被高速缓存而哪些没有。可替代地,服务器计算设备可以开始执行操作(例如,加载容器文件、分析或以其他方式使用容器文件)而不验证所有的组件都可用,直到因为缺少组件而操作无法继续为止。在确定组件中的至少一些组件没有被高速缓存之后,服务器计算设备可以向客户端计算设备发送针对没有被高速缓存的组件的请求。作为响应,客户端计算设备确定服务器计算设备需要所请求的组件并且将所请求的这些组件发送至服务器计算设备。尽管本文中的示例通常涉及将容器文件从客户端计算设备传输至服务器计算设备,但所公开的技术等同地适用于将容器文件从服务器计算设备传输至客户端计算设备。例如,服务器计算设备可以将所接收的容器文件的经修改的版本传输至首先发送容器文件的客户端计算设备。额外地,所公开的技术还可以用于将容器文件从客户端计算设备传输至另一客户端计算设备,例如用于共同创作和协作。此外,所公开的技术还可以用于将容器文件从一个服务器传输至另一服务器。图1是用于传输容器文件的系统100的一个示例的框图。如在图1中所示出的,系统100包括能够由用户U和服务器计算设备104操作的用户计算设备102。用户计算设备102和服务器计算设备104通过网络进行通信。用户计算设备102包括容器文件编辑器10本文档来自技高网
...

【技术保护点】
1.一种用于将容器文件通过网络传输至远程设备的系统,所述系统包括:至少一个处理器;以及存储器,其可操作地连接至所述至少一个处理器并且存储指令,所述指令当由所述至少一个处理器执行时,使得所述至少一个处理器执行用于传输容器文件的方法,所述方法包括:访问容器文件,所述容器文件包括多个组件;将所述多个组件的元数据信息发送至所述远程设备;从所述多个组件中确定要发送至所述远程设备的组件;以及将所确定的组件的组件数据项发送至所述远程设备。

【技术特征摘要】
【国外来华专利技术】2015.11.13 US 62/254,989;2016.03.25 US 15/081,1111.一种用于将容器文件通过网络传输至远程设备的系统,所述系统包括:至少一个处理器;以及存储器,其可操作地连接至所述至少一个处理器并且存储指令,所述指令当由所述至少一个处理器执行时,使得所述至少一个处理器执行用于传输容器文件的方法,所述方法包括:访问容器文件,所述容器文件包括多个组件;将所述多个组件的元数据信息发送至所述远程设备;从所述多个组件中确定要发送至所述远程设备的组件;以及将所确定的组件的组件数据项发送至所述远程设备。2.根据权利要求1所述的系统,还包括生成所述多个组件的元数据信息,其中,所述多个组件中的每个组件的元数据信息包括组件名称、所述组件的大小信息、以及所述组件的指纹值。3.根据权利要求1所述的系统,其中,所述组件的指纹值包括根据所述组件数据计算的循环冗余码。4.根据权利要求1所述的系统,其中,从所述多个组件中确定要向所述远程设备发送的组件包括:访问远程高速缓存索引以从所述多个组件中确定在所述远程高速缓存索引中被标识为在所述远程设备上可获得的组件;以及确定发送所述多个组件中的在所述远程高速缓存索引中没有被标识为在所述远程设备上可获得的组件。5.根据权利要求2所述的系统,其中,所述远程高速缓存索引存储针对组件数据文件的记录,所述记录包括所述组件数据文件的哈希值,所述哈希值是基于所述组件数据的内容生成的。6.根据权利要求5所述的系统,其中,针对所述组件数据文件的所述记录与所述远程设备的标识符相关联。7.根据权利要求2所述的系统,其中,所述方法还包括:基于所发送的组件数据项来更新所述远程高速缓存索引。8.根据权利要求1所述的系统,其中,从所述多个组件中确定要向所述远程设备发送的组件包括:针对来自所述多个组件的组件来对公共组件索引进行搜索,其中,所述公共组件索引包括已经被标识为在多个容器文件中可用的组件;以及确定发送没有在所述公共组件索引中发现的组件。9.一种将容器文件通过网络传输至远程设备的方法,所述方法包括:访问容器文件,所述容器文件包括多个组件文件以及目录,其中,所述多个组件文件中的至少一个组件文件是经压缩的;由处理器基于所述目录以及与所述组件文件相关联的标头数据来生成所述多个组件文件的元数据信息;以及将所述多个组件文件的所述元数据信息发送至所述远程设备,以便在所述远...

【专利技术属性】
技术研发人员:C·R·海沃思章大川
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1