对等(P2P)计算实际使用之发展历史回顾
2008-01-05 19:23:16 来源:WEB开发网核心提示:对等网络计算 (peer-to-peer, P2P) 成功地将许多有趣的分布计算技术重新拉回到人们视线中,为了更好地理解 P2P 技术,对等(P2P)计算实际使用之发展历史回顾,本文主要从80年代初流行的早期 P2P 应用程序开始,阐述 P2P 的发展过程,首先必须了解这些 P2P 技术的发展历史,几乎所有人都会同意
对等网络计算 (peer-to-peer, P2P) 成功地将许多有趣的分布计算技术重新拉回到人们视线中。为了更好地理解 P2P 技术,本文主要从80年代初流行的早期 P2P 应用程序开始,阐述 P2P 的发展过程,并解释 P2P 计算技术之所以拥有广阔前景的原因。同时,还给出一个最简单的 P2P 程序代码,从而说明使用 P2P 技术时要解决哪些问题。通过这些内容,您可以使用 java 语言来编写自己的 P2P 程序,或是利用 P2P 中某些技术来解决您项目中碰到的类似问题。
在大多数人眼中,P2P 仅仅是一种局限于文件共享的应用,或是由互联网介入给计算方法带来的新发展。这种错误的印象很大程度上是由那些极端的 P2P 支持者造成的。事实上,P2P 计算是非常重要的。它成功地将许多被忽略的有用技术拉回到大家注视的焦点。把握如何将 P2P 计算应用到更广阔的技术领域是很有帮助的。当然,通过一些实际的 P2P 代码来学习也是必须的,所以本文也会给出一些用 Java 语言编写的代码例子。
下面将具体阐述 P2P 的有关知识。为了避免陷入其他一些不太重要的周边细节讨论,本文将主要集中讨论以下几个方面:
1. 在许多流行的 P2P 应用中,不可避免地要涉及到合法、隐私安全、控制以及版权等问题。尽管这些方面都是非常有趣的课题,却不应该过分地分散掉我们讨论 P2P 技术的注重力。因此通常情况下本文不会涉及这些课题,除非某个专门的应用例子必须解决它们。
2. 技术工程师在设计和开发 P2P 应用程序时碰到的问题未必都是新问题。因此在讨论到这些旧问题时,会借鉴计算机科学其他领域中的一些现成技术。
总而言之,我们希望能够将精力集中在技术本身,主要包括内容和资源的治理、信赖和安全、属主和权限、通讯模型、分布式计算、以及搜索和查询等。至于 P2P 技术所涉及的社会、政治和合法性等问题则基本上略过不谈。
P2P 应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势的产物。下面是两个导致 P2P 技术发展最重要的趋势:首先是某些新技术与软件工程结合,形成了一种将工作分散的趋势。P2P 计算正是这种分散工作趋势的自然结果。
其次,从工程的角度看来,在企业应用集成等因素的驱动下,过去十年渐渐形成一种从集中的单机系统转向分布式系统的趋势。在集中式的应用中进行控制是相对轻易的,这一点在一定程度上抑制了分布式潮流的发展。然而随着互联网的发展,以及 B2B 商务交易方式的日益流行,全面的分布式计算也就成为一种商业需求。
对功能强大的网络计算机的需求以及昂贵的带宽开销,是对这种趋势影响最大的两个因素。为了提高效率,P2P 计算由许多互相连接的同位体 (peer) 组成。这两种趋势导致了 P2P 应用技术研究的迅速发展。
除了技术方面之外的社会因素也是一个重要原因。毫无疑问,人们现在对 P2P 计算技术的热切关注起源于 Napster, Scour, Gnutella, 以及这些家族的其他成员产品。这些产品提供了所谓的 "killer apps" 功能,能够将 P2P 技术中的一部分下放到客户端用户的手中。正是这种第一手的体验,使得人们越来越关注 P2P 技术的强大功能。
然而必须指出的是,最初的 P2P 应用大约产生于20年前,并且其中的许多至今仍然被使用。尽管这些早期应用的核心就是 P2P,但由于大多数的使用者并未感觉或接触到,因此通常并不认为它们是 P2P 技术。
早期的尝试
P2P 计算并非一种全新的技术。虽然 P2P 这个术语是现在才发明的,但 P2P 本身的基本技术的存在时间却至少和 USENET、FidoNet 这两种非常成功的分布式对等网络技术一样长,甚至更长些(因此笔者建议读者朋友去尝试这样一个挑战——寻造最早的 P2P 应用,尤其是那些现今仍在使用的应用)。要害在于,在最初的 P2P 应用出现时,许多使用该技术的人们甚至不会使用计算机。
USENET 产生于 1979 年,是一种分布式系统,能够为各个地方提供新闻组。USENET 最早的雏形由是两名研究生 Tom Truscott 和 Jim Ellis 实现的。当时并没有任何类似于互联网上“随选”信息的概念,文件只能通过电话线批量传送,且经常选在长途费用比较低的夜间进行。因此,当时的 USENET 若采用集中式的控制治理方法将效率低下,自然而然地就提出了一种分散、分布式的治理方法。这种分布的结构一直沿用到今天。
早期 P2P 应用另一个杰出的代表则是 FidoNet。它和 USENET 类似,也是一个分散、分布的信息交换系统。Tom Jennings 于 1984 年创建了 FidoNet 系统,来让不同 BBS 系统中的用户们互相交换信息。这种符合人们需要的技术,迅速成长起来,并一直沿用到今天。
USENET 和 FidoNet 都是值得探究的系统,因为它们在多年前就碰到并解决了许多当今 P2P 技术所面临的同样问题,同时也还存在着安全性以及其他一些问题。为了开发成功的 P2P 计算系统,首先必须了解这些 P2P 技术的发展历史。
几乎所有人都会同意 “P2P 计算是分布计算的一个子集”这种说法。而且大多数人也都会认为“并非所有的分布式计算都是 P2P 计算。
更多精彩
赞助商链接