2005年3月11日

让BitTorrent走进浏览器

让BT走出文件共享,我的意思是说我们用BitTorrent的思想来做更多的事情,而不仅仅是文件共享。除了文件共享之外,我想我们还可以用他来做的更多。我刚刚有一个想法就是如果将BT的理念做到浏览器里会如何呢?你是不是经常遇到网站因为负担太重而倒下呢?相信经常使用BlogChina的人就会经常遇到要访问页面的时候会得到“服务器忙,请稍后再刷新”。这是每个网站在壮大的过程中都会遇到的,一方面担心自己的人气不够,拼命的拉人,因为虽然说眼球经济的说法已经过时了,可是如果网民不再关注你,也就意味着走到头了。但是同时,当大量的网民涌向你的时候,你就要开始担心服务器能不能够承受这巨大的访问量了。没有几个网站可以象Gooogle那样负担全世界的查询的,虽然可以简单的通过增加硬件来提高响应速度,可以这些硬件一本是成本的增长,二来是维护的难度的增大,这是一个巨大的问题,也是一个网络社会的浪费。虽然前辈的程序员告诫我们说,如果能够通过增加一条内存条解决问题,那就不要花心思去优化算法。不过我觉得,如果一个解决方案可以为全社会带来节约,这应该不算是违反软件的编写规则吧。我姑且言之,大家也姑且听之。
我的意思是通过浏览器的改造,利用BT的原理,为服务器减轻负担。将浏览器不仅仅是作为一个请求者,同时也是一个服务者。在我们目前使用的浏览器来看,都是请求服务式的,所有的工作都由服务器来承担,随着动态网页技术的产生,服务器的负担也越来越重了。而网民对于服务器的反应速度却越来越高,尤其是一些页面内容比较多的,更是让服务器难承其累。现在的客户端是请求之后,得到内容然后再丢掉。虽然浏览器都会利用一定量的缓存来保存用户访问过的内容,但是用户对于访问过的内容再次访问的机会并不是很多,如果能够将这部分内容分享给其他用户的话,是不是可以充分利用起来呢?这对于一些网站的内容的显示来讲,对于一些静态页面,或者是图片等与客户个性化没有联系的图片,多媒体内容等,就可以由其他用户来提供,而不是一定要服务器来提供,只对于一些针对用户个性化定制的内容才由服务器生成,这样的话,就可以既降低服务器的响应的时间,同时即使服务器尚未响应,也可以由其他的用户处先行取得,这对于一些大型的门户网站来讲,是很有必要的,从而不会产生由于访问量过多而造成的拥塞,而是访问的人数越多,就会响应越快的,即使有的客户无法到达服务器,也可以由其他用户的缓存里面取得自己想要的页面。
当然了,如果是一些安全页面,理论上应该是不允许访问的,访问的内容应该仅仅限于象图片,声音之类的用户共享的内容,而象一些敏感的信息,可以通过设置以防止共享,保证安全。以目前来看,IE是不可能加入这样的功能的,而且由于微软的问题,应该也不会加入这样的功能,不过可以通过其他的手段进行改进,如通过一个ActiveX插件或者是一段页面的代码。我对于JScript不是很了解,不知道仅仅依靠页面的脚本能不能加入这样的多线程下载的功能,如果那一位朋友知道的话,不妨讨论一下。Mozilla的 FireFox具有插件功能,通过这样的插件可以传递给许多人,而安装这样的插件的人越多,用户上网的速度将会越快。这样的话就可以更加快速的浏览网页,无论是对于网站来说还是对于用户来讲都是一件好事。
另外,对于IE的下载,FireFox的下载,我觉得都可以利用BitTorrent的功能扩展,虽然现在大家一般都采用专门的下载软件,如 FlashGet,NetAnt之类的,或者是使用Bittorrent,但是这两者目前都是以各自的方式进行着,其实用户对于采用那一种方式下载并不感兴趣,他们所感兴趣的就是以最快的速度下载到所需要的东西,而最直接的下载应该来自于直接在IE和FireFox里面点击下载,如果大家在下载同一个文件,那完全可以通过BitTorrent的方式来共享下载。这不会牵涉到隐私的问题,同时又免去了Bittorrent下载时需要到处寻找种子文件的问题,而且这样通过服务器端文件的保存,可以弥补 BitTorrent下载的种子丢失造成的无法下载或者是过期的问题,对于一些下载网站来讲,这是一个减轻网站负担,同时不影响用户下载体验的绝佳方式。通过在IE或者是FireFox的默认下载里面加入这样的功能,就可以多点多线程下载,当然了,这些对于最终用户来讲是透明的,他们并不需要知道自己是采用何种方式来下载。如果这样的话就可以很好的提高用户的体验了。
这些目前都是我所想到的,是BitTorrent在浏览器里面所能够做到的一些想法, 如果可以,我想可以研究一下,做出一些产品来测试一下。

没有评论:

发表评论