2、互联网中WEB与P2P两种计算模式的客观存在:技术上的事实与真相
知名技术博客Boingboing指出《连线》文章中作为论据的重要数据图犯了低级错误。Boing Boing认为WEB不仅没有“已死”,而且越活越好。他指出,如果将过去20年间互联网上包括Web网页在内的所有互联网应用都有不可思议的大幅增长。据统计1995年至2006年间,Web总流量从10TB/月,增长到了100万TB/月。
这个指控在定量分析上也许有道理,但作为定性分析也许不是那么致命。因为互联网技术中确实存在着WEB与P2P两种计算模式的分别。如果P2P占上风的判断在性质上成立,仅靠Boing Boing提供的WEB增长数据,并不能绝对说明问题。所以我们首先要对技术问题本身作一个性质上判断。
WEB与P2P两种计算模式同属于互联网。以WEB方式联接互联网,或以P2P方式联接互联网,并不会改变互联网本身,也就是说,不能认为以WEB方式联接就是互联网,而以P2P方式联接就不是互联网。联接互联网有多种方式,如Http、P2P、Ftp、Email等。从表面看,WEB使用的是Http,P2P可以不走Http,不用浏览器。例如,SKYPE联的也是互联网,但可以不经Http浏览器方式,而采取客户端模式。
从WEB与P2P发展的源头上来说,实质性的差异在于, WEB采用的是传统电信网络的主从模式(Client/Server ,C/S模式);而P2P采用的是分布式计算模式。主从模式由一个集中控制的服务器作为网络的中心,将分布在网络节点上的客户端,放射状地分别联接起来。客户端只能访问服务器上的资源,客户端之间不具有交互的功能。而P2P模式,客户端具有交互的功能,节点与节点之间以拓扑状联接,而网络可以是无中心或去中心的。从这个意义上,我一开始说,WEB更多代表集中,P2P更多代表分散。
打个不精确的比方,WEB有点象孔子说的“爱有等差”(仁爱),爱以家为中心,一圈一圈扩散,亲疏有别,就好象节点以服务器为中心联接一样;P2P有点象墨子说的“爱无等差”(兼爱),整个网络是无中心的,每个节点彼此之间是等距离的,儿子(喩节点)与老子(喻服务器)的关系,并不比与朋友(喻其它节点)更近,大家都是对等的。
如果按WEB这个最基础的原始含义来理解“WEB已死”,就成了互联网中主从结构“已死”。《连线》文章第一个技术上的逻辑矛盾在这里暴露出来。它首先把云计算给否定了。云计算模式高度依赖服务器,服务器的集中计算功能甚至被一些大企业当作云计算的主要特征(虽然这是片面的,因为云计算实际是集中计算与分散计算的结合)。而且文章如此称道的苹果,其模式的运转,也离不开服务器。
P2P在其原初形态中,具有私有的特征。例如通过P2P私有协议,点对点之间建立起类似互为FTP服务的关系,直接在客户端与客户端之间分享文件。好象两个人之间的窃窃私语。这种关系有点象早期自由资本主义时期牛仔对牛仔的关系。《连线》文章如果是想拿这种关系,与他所谓“开放而自由”的WEB进行对比,就会犯第二个错误:把技术事实判断反了。事实上,P2P与WEB,都是“开放而自由”的(如果不说P2P比WEB更“开放而自由”的话),互联网底层技术中,不存在不“开放而自由”的东西。互联网的本性就是“开放而自由”。如果《连线》文章非要证明封闭的商业必胜,不如说《WEB已死,互联网也死,PC永生》更为精确。因为文章称赞的苹果模式的封闭性,都是由PC封闭模式演化而来。只不过从过去的操作系统封闭,经中间件构件(WIDGET)作用,转变为应用程序的封闭。但是,app应用程序的封闭,与P2P的私有之间,只有形似而没有任何技术上的神似。
不仅如此,除了“原教旨”的P2P外,P2P现在的发展非常复杂,特别是在“受控P2P技术”中,在P2P与服务器的关系上,都正在发生重大变化。形成集中式P2P 网络(近于腾讯QQ)、完全分布式结构化P2P 网络、完全分布式非结构化P2P 网络、混合式P2P 网络四种。这些技术演进,一个重要方向,就是把WEB服务器集中计算的一面“捡”回来。例如在集中式P2P 网络中,P2P也象WEB那样,由服务器提供资源共享服务;与WEB不同仅在于,除了主从结构外,客户端之间可以对等分享。这样可以更好地实现集中计算与分布式计算相结合云计算。目前,这一趋势还在进一步演进中,新的P2P结构,要通过类似社会资本机制的服务器服务,解决“原教旨”的P2P信任成本高(这与自由资本主义的情况差不多)等一系列痼疾。
由此看来,《连线》文章的技术判断,在证明WEB已死上,存在一大堆问题。论点与论据之间相互矛盾。其实,“WEB已死”这个判断,在说明桌面互联网转向移动互联网上,是有一定意义的,但不是现在这样一个证法。将《连线》文章的思路顺着理,在我看来,实际情况是,WEB已死,应理解为过于依赖服务器的WAP已死更为确切,与WAP相反的终端计算成为移动互联网新趋势是不错的。终端计算分岔为开放与封闭两条技术路径,开放源代码与Java代表开放的路径,代表是谷歌;苹果的构件化及微软的“云+端”代表的是封闭(或半封闭)的路径。文章要想攻击谷歌,技术上应攻在开源和JAVA这个要害上,商业模式要(以微软意义上的“端”的立场)攻在云这个要害上,而不是WEB,因为谷歌也正想绕过WEB攻击微软呢。这样说,就把这堆技术乱麻理开了。