基于BT协议的同步方式的思考

来源:互联网 发布:扫描软件排行 编辑:程序博客网 时间:2024/05/29 18:39

背景

毕业季到了,女朋友跟班里同学们一起拍了很多照片。由于照片分散在不同的人的手机、相机里,她也无法立即给我传来她的照片。这个情景一年前我也遇到过,只是当时自己比较忙,加上考虑着还会在本校读研,也没太在意毕业季照片的手机这一需求,以至于到现在我的电脑里甚至没有一张我穿学士服的照片:-=。而现在,当我想看看gf的照片时,这个需求横亘在我面前,让我特别的想解决掉它。

让我们从事实出发,理清问题的思路。

需求的产生

大学生拍毕业季照的现状:

  • 1.大学生在毕业季拍照留念是刚需,几乎平日爱拍照、不爱拍照的所有人都会参与其中。
  • 2.拍照一般以小团体为基本单元进行。多是班级、社团这种常见的凝聚力较强的团体。
  • 3.随着科技的发展和生活水平的提高,越来越多的人具备了拍出高质量照片的设备和实力。

由于这种以小团体为单位的照片的大量产生,每个团体中的照片会交叉散落在较多人手中。在这种分散的格局面前,单独挑选出自己的照片并保存的成本巨大,直接导致了大家最终需求的统一:

  • 将所有的照片分发到所有人手中。

原有解决方案

现有的解决方案主要方案归纳为如下四种:

  • 1.用移动硬盘等设备人力拷贝

    这种方式太过古老和原始,缺点费时费力。

  • 2.使用公邮、网盘、QQ群共享等方式统一上传、下载

    主要缺点是外网网速限制;另外,网速的限制让用户上传和下载的门槛变高,影响了上传积极性,如果有人迟迟不上传,最终下载完整数据的时间也会一直拖延,带来消极的体验;如果注册一次性账号,这也不见得是环保的行为(或许这想法有点数据洁癖吧><),如果使用非一次性账号,那么权限管理将比较头疼。

  • 3.使用内网BT资源站分别打包上传、下载

    优点是利用了内网网速的优势。缺点是每个人都打包做种,会让资源分散的很厉害,难于汇集。且做种等步骤对于部分用户而言,有操作门槛。

  • 4.先使用1中方法,统一手机照片数据,然后按照2或3的方法发布数据

    这大概是最靠谱的方式了,缺点集中在需要有人费时费力的手机数据上。当然,如果班里有一个任劳任怨的好班长,这个问题就解决了。

总结:

对于一个懒人而言,现有的解决方案都是蹩脚的。这些解决方案都不约而同的希望首先将数据聚合到一个外部空间中,然后再统一的分发给大家。这个步骤必要吗?实际上,我们只是需要每个人都方便、快捷的获得所有照片。

一个简单的设计

我将问题抽象为:

  • 完整的数据分散在10至20个数据拥有者手中,需要通过一定手段,让每个个体都不重复的拥有完整的数据。

由于外网网速的限制,基于校园内网建立的工具就有了天然的优势。但如果使用内网,就不得不抛弃各大公司免费提供的邮箱存储空间、网盘存储空间。而校内的资源是有限的,没有自己的服务器,没有足够的空间存储大家的数据,这也就迫使我们考虑到了p2p的系统架构。于是,有了这样的解决方案,设定代号为BBT:

  • PC机安装BBT工具软件后,可以设定共享目录和对应的分享ID
  • 放入特定共享目录的文件,将使用基于p2p同步的方式,在拥有相同的分享ID共享目录间同步数据,目的是让所有人都获得到每个人的数据

在跟阿豪童鞋的交流中,他建议为了进一步简化用户操作,可以尝试这样一种体验方式:

  • 班级内所有人在同一个链接下载工具软件。保证这一链接下载的软件能互相通信,实现数据同步。这杨就节省了用户自己设定相同的分享ID的流程,而将这一过程转移到班长请求下载链接的过程中。

确实够简洁,很赞,实现成本还需要调研。

BitTorrent Sync

在构思的过程中,突然想起前几天在start up news上看到了一个基于BT协议的同步软件BitTorrent Sync。

BitTorrent Sync

它的实现方式大概是我们所需要的。可惜的是,由于它的功能全面,界面略显复杂。而同时,它并没有开放二次开发接口。

或许我需要自己搭建一个p2p的系统?

PS:

BT的优势,在于利用了所有节点的存储和传输能力,节点数量越多,下载越快

BitTorrent Sync的优势,则在于能动态的集合分散在不同节点中的数据

感觉这种去中心化的分布式系统,前景大大的有啊;)


PSS:

欢迎访问博客新家: http://biaobiaoqi.me  ;)

原创粉丝点击