共享和即时聊天等P2P应用程序的成功,越来越多的程序员在因特网上开发他们的P2P程序,越来越多的用户在使用P2P应用程序。
1.2 P2P应用程序的用武之地
现在,让我们来考虑一下今天的桌面计算机用户希望使用哪些不同类型的应用程序。除了Web浏览和办公软件外,桌面计算机用户还希望计算机能提供如下功能:
★ 管理和共享信息:这些信息包括用户希望与商业伙伴、朋友和同事共享的所有文件、文档、图片、音频、视频和电影等。通过信息收集和编排功能,更先进的共享机智机制能使一台计算机扮演通用任务管理器的角色--比如,Google就是分布式任务管理器系统的一个例子,而Gnutella是个人P2P文件共享系统的一个例子。
★ 协作:PC用户发现地址簿、日程安排、聊天和E-mail等软件工具提高了他们的工作效率。通过将桌面工具软件连接在一起使得协同工作的电子商务团体能形成灵活、强大而有效的工作小组,例如JAVA开发人员使用OpenProject.net协同工作。而在更大范围内,成千上万的用户使用实时通信工具,这可能是目前最为流行的P2P应用程序了。
★ 企业资源管理:企业内协同工作流程提高了由连接到网络上的桌面计算机系统所组成的企业网络环境的处理能力。例如,Groove使得一个航空业制造商能将工作订单请求发送到伙伴公司,并将已经完成的请求从一个部门发送到另一个部门。
★ 分布式计算:通过分散化方法实现互联网健壮性理念的一个自然扩展是设计P2P系统,这个系统将计算任务转送到数以百万计的服务器上,而任何一台这样的服务器都可能是一台台式计算机。
尽管P2P还处在初始发展阶段,但已经出现了很多能满足用户所有上述功能需求的P2P应用程序。随着人们对P2P技术优越性认识的深入,将来可能会有更多的使用P2P技术开发的应用程序。
1.3 P2P技术的动力
商业和技术方面的三个主要因素促使人们采用P2P技术。
★分散化:越来越多的企业已经通过采用灵活的企业结构实现了更高的效率和效益。因此,最近几十年中,企业领导人一直致力于企业的分散化。我们已经经历了从大型主机模型到客户/服务器模型,再到互联网计算模型的变迁,直到今天的P2P模型的变迁。这个发展趋势不可否认地实现了离散化和分布化。
★费用和效率:软硬件的价格会越来越低,而处理能力却会越来越高。能提高生产效率或软硬件使用率的新系统将成为企业投资的首选。P2P具备充分利用以前未被利用的资源的能力。
★普及应用的计算:我们可以想象,信息系统在现代社会中无所不在:衣服、工具、汽车和设备,任何你能想象的东西中都存在着计算机芯片。信息系统不仅无所不在,而且它们之间是互连的。网络连接设备的市场一直在持续增长,而P2P系统正是被设计用于支持这个市场的。
随着企业逐步推进其电子商务进程,他们会更加深入地认识到连接交易流和通信流的必要性。同样,他们也会认识到为完成常规任务和特定任务而为合作者和外部伙伴建立"电子村落"的必然趋势。电子商务的发展将会造成更多的商业合作需求。P2P技术天生就顺应了建立分布式和特定目的网络的发展趋势。
第二章 P2P体系结构
使Gnutella和其他P2P应用程序变得有趣的原因是它们能非常容易地将由协同工作的节点组成的大型网络聚集在一起,并且这些节点遍布整个网络。这些节点是普通的PC,它们动态地聚集在一起形成分布式的文件系统。这样形成的网络瞬息万变--很多节点位于防火墙和单向NAT(Network Address Translation,网络地址转换)路由器之后;在非工作时间内,这些计算机可能处于关闭状态,并且这些计算机能随意地进入和离开网络。这种性质和网络组织结构是相互矛盾的,它更像我们在企业网上看到的典型的文件系统。
在客户/服务器模型中,由服务器控制和管理着客户端与其他资源,比如数据库、文件。网络和其他客户端的关系。在客户/服务器模式的网络中,服务器扮演着"高等公民"的角色。为了管理其"下属",服务器被赋予了特定的权限和功能。
对等节点的概念对我们系统的方式产生了巨大的影响。在传统层次化系统中已经解决的问题又被重新 提起,在P2P的世界中,我们开始重新讨论和评价这些问题。
如何识别实体和确定实体的位置?谁来控制对资源的访问?尽管在任何环境中,这些问题都难以回答,但至少我们能很容易地理解这些问题。而在P2P系统中,情况并非如此。这是计算技术的新课题。规则未定,我们仍然有机会投身于P2P前沿领域的设计和开发中。P2P技术可能是继Web浏览器之后传递互联网信息的第一次革命。
有趣的是单词"peer"的动词形式的意思是"凝视,仔细或困难地看"。当不再才用层次结构关系时,"peer"的这个意思正好可用于描述P2P节点所需的行为。
对等节点如何搜索自己的同伴并形成协同工作实体?P2P的第一代应用程度就为解决隐含在这个问题中的困难而费尽周折。结果是这些应用程序暴露出了早期P2P系统的优势和不足。
通过研究P2P的早期系统,比如Napster、Gnutella和Freenet,读者可以学到很多东西。这些应用程序显示了P2P系统的共同特征。P2P系统包含了一个动态元件,这个元件能帮助这些应用程序形成和发展组和域。早期的P2P系统使用这个元件的主要目的是检索文件和解决P2P系统中的共同问题。
P2P系统需要虚拟域名空间来增强当今的寻址技术。虚拟域名空间提供了一种永久识别节点(或服务)的方法,如果没有这种方法,那么P2P系统是不可能实现节点(或服务)寻址的。以读者的E-mail地址为例,不管读者使用何种计算机访问E-mail,这个地址都唯一地识别了你的E-mail信箱。
就功能性而言,P2P系统中的对等节点被认为是平等的。平等性意味着在网络中不再需要通信中间设备来帮助和参与节点间的通信。如果读者的计算机是连接到互联网上的,那么你的计算机就可以直接连接到P2P系统。
对等节点可以出现在网络上的任何地方。对等节点可以是普通PC,也可以是你口袋中的掌上导航助手。如果将之连接到网络上,你就可使之成为对等节点。
对等节点不是稳定不变的,它们可以在网络上随意出现或消失。在很多P2P系统中,时断时续的连接是正常状态而不是非正常状态。早期的P2P系统是由拨号用户组成的。这些用户通过拨号方式建立连接,加入网络;然后断开连接并离开网络。对于这样的系统成员,P2P系统中都有一个相应的帐号。
对等节点是很广泛的数组处理(计算)能力、带宽资源和存储能力。尽管P2P系统中的节点是对等的,但某些节点在性能上比其他节点更为强大。一台膝上型电脑可通过拨号方式连接到互联网并成为一个对等节点。而一台带光纤通道的Sun Enterprise 10000计算机也可是同一网络中的一个对等节点。从功能上说,这两台计算机是对等的,但它们之间的性能差别却非常之大。
P2P系统正在改变我们设计能力充分利用整个网络资源的系统的方式。P2P的这一特性将使我们受益非浅。
2.1 P2P网络
Peer-to-Peer网络是一种与传统的Clien/Server或多层服务器网络完全不同的网络体系结构。P2P网络是由Peer组成的,根据JXTA的定义,任何一台能上网的机器都可以是一个Peer,甚至计算机上的一个程序都可以成为Peer。P2P网络中的Peer是彼此直接通信的。这种通信无需依赖集中式服务器或资源就可完成。在P2P网络中,通过Peer之间的交互操作就可以完成工作,共享信息。通过创建有潜力展示非常高的可用性和容错能力的计算资源网络,P2P体系结构使真正的分布
上一篇:
JSP网上购物系统毕业设计论文(word文档)
下一篇:
基于JSP邮件收发系统论文