MakeDrive:来自Mozilla的Web端同步文件系统

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

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

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

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

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

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

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

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

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

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

  • 文件系统是指用户所持有的东西。在Mozilla的语境中,它或许是一个WebMaker(集成了Mozilla提供的MakeDrive同步服务),也有可能它就是MakeDrive服务。
  • MakeDrive可作为一个服务被其他应用使用,比如Nimble和AppMaker就可以使用相同的MakeDrive文件系统。
  • MakeDrive不维护文件的历史版本,也就是不提供文件的版本追溯。取而代之的是受到rsync启发的循环校验和差分算法来驱动同步,就是只对每个文件有变动的那部分进行同步,而不是暴力的替换整个文件(这点与Dropbox类似)。
  • 目前针对部分Web资源(HTML, CSS)进行了优化,对一些体积较大的资源文件(比如照片、视频)的优化还有待提升。
  • 使用本地数据库进行备份存储,在IE、Firefox、Chrome下支持IndexedDB,在Safari下支持WebSQL,而Opera同时支持这两种数据库。

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

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

查看英文链接:MakeDrive: Syncing Filesystem for the Web from Mozilla

感谢邵思华对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(MakeDrive:来自Mozilla的Web端同步文件系统)