微信号:infoqchina

介绍:有内容的技术社区媒体

【工具】MakeDrive:来自Mozilla的Web端同步文件系统

2014-09-11 21:37 InfoQ

MakeDrive是由Mozilla基于node.jsfiler两个JavaScript框架开发的一款全新的Web端离线文件同步系统。它提供了一套可让其它应用使用的同步服务,从而使用户可以完全掌控他们分散存储的数据、文件的生命周期。

MakeDrive的核心研发者之一David Humphrey这样描述它:

想象一下Web版的Dropbox,我们不需要安装任何软件,就可以在不同的浏览器、应用程序以及移动应用之间共享文件和文件夹。这就是MakeDrive要达到的目的。

但是MakeDrive的主要目的却并不是备份,而是在Web页面中融合多元数据和信息,这一点是与Dropbox所不同的地方。一旦MozillaWebMaker工具集与MakeDrive结合起来,就可以让用户自己创建多元信息、多页面的Web应用从而代替单页面的Web应用,并且可以在不同的浏览器、不同的设备上使用所创建的Web应用。

事实上,David启动这个项目的初衷是希望能让Brackets(一个在线的代码编辑器)在浏览器中运行。这里有一些展示它们如何进行集成的示例代码。

但是,很显然,该项目使用的应用程序超出了Mozilla特定的应用场景。

MakeDrive的一个主要功能是为Web应用提供离线同步模式,以满足一些特定的应用场景下的需求。试想一下,某一个基于浏览器的游戏,可以在离线状态下保存数据,并定期检测设备是否联网,如果检测到已联网就将离线数据进行同步,从而达到跨设备的数据共享。或者在使用一个FTP客户端的情景下,你不需要手动上传有变更的文件,同步服务会为你自动上传有变更的文件。

不过David自己也表示,现在这个项目还在初级阶段,还未到正式发布的时候。

上周五,我们的暑期工作已接近了尾声,并且在工作过程中我们以最大努力遵守了Rob Pike的编程5项原则。具体来说就是我们在让项目运行起来之前就先行做了一部分工作,以确保速度和可伸缩性。到了下个季度,我们工作的重心会转移到性能、内存管理、部署调试还有可伸缩性方面。

MakeDrive中的一些概念和值得你们感兴趣的信息:

  • 文件系统是指用户所持有的东西。在Mozilla的语境中,它或许是一个WebMaker(集成了Mozilla提供的MakeDrive同步服务),也有可能它就是MakeDrive服务。

  • MakeDrive可作为一个服务被其他应用使用,比如NimbleAppMaker就可以使用相同的MakeDrive文件系统。

  • MakeDrive不维护文件的历史版本,也就是不提供文件的版本追溯。取而代之的是受到rsync启发的循环校验和差分算法来驱动同步,就是只对每个文件有变动的那部分进行同步,而不是暴力的替换整个文件(这点与Dropbox类似)。

  • 目前针对部分Web资源(HTML, CSS)进行了优化,对一些体积较大的资源文件(比如照片、视频)的优化还有待提升。

  • 使用本地数据库进行备份存储,在IEFirefoxChrome下支持IndexedDB,在Safari下支持WebSQL,而Opera同时支持这两种数据库。

正如在epayne notes中提到的,MakeDrive似乎已成为将互联网数据掌握在用户自己手中大潮流的一部分了。

你们可以在这里下载该项目MakeDrive Github project,以及通过Mozilla wiki了解更多信息。也可以通过 David的博客了解更多的细节内容。


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 .NET Core 跨平台发布 创业像吃火锅,WeTest为您配好料——腾讯全球合作伙伴大会,WeTest在重庆等你 颜宁:做新PI的经验和教训 |科学人 Folly源码分析系列(一) — ThreadLocalPtr 说说芯片设计这点事