一个节点向其他节点提供服务时,可将其看成服务器。
对等节点常常用于需要高度并行化的系统。并行化方法并不是计算机领域内的新事物。事实上,现在进行的很多计算都是以并行化的方式实现的。多处理器计算机和操作系统依靠其并行处理能力执行任务。线程控制机制使我们能够将同一进程分配给不同的任务。然而,直到今天,并行化方法也没能成为应用程序开发中的普遍方法。尽管应用程序被设计成多线程的,但一般而言,这些线程都和控制一个进程所需的不同任务有关,比如从一个速度很慢的设备上读取数据或等待网络响应。我们并没有在并行环境中定义多个应用程序来执行相同的任务,比如检索一个大型数据库或以并行方式过滤大量信息。
对很多重复性任务,并行机制为我们提供了一种分而治之的解决方案。SETI(Search Extraterrestrial Intelligence,搜索外太空智慧生命)@HOME工程表明,可通过互联网将个人计算加连接起来,以便为我们提供超级计算能力。SETI工程检查来自外太空的电磁信号,希望能够发现其他星球上的智慧生命。这个工程需要花费大量计算资源来分析所获得的数据以及完成相关计算。这个工程的自愿者们从SETI的Web站点上下载了一个屏幕保护程序。这个屏幕保护程序能请求由分解SETI收到的大量电磁信号形成的工作单元。在这个工程启动的第一周内就有 200 000人下载了这个软件。到 2000年为止,参与这个工程的人数已经达到了2 400 000人。这种网络形成的计算能力超过了由IBM制造的,当时处理速度最快的超级计算机ASCI White的处理能力。P2P系统的设计目的正是为了迎合这种分而治之的解决方案的增长趋势。
SETI程是一种典型的系统结构,这种结构需要某种程度的集中化或协作机制。我们可根据拓扑结构来对网络进行分类。这里,网络拓扑结构是指节点在网络上的基本排列方式。目前有多种不同的网络拓扑结构供网络设计人员选择。
分散化拓扑结构往往采用一个集中化部件来提高其性能,这就形成了一种混合模型或称之为杂交模型。在Napster软件中,正是集中化的文件索引部件提供了该软件的文件识别和定位功能。而在SETI中,是由集中化的任务分发器来分配工作单元的。
2.4支持混合模型
现在很多的P2P技术都采用一种支持混合模型的基于网络的计算模型。关键部位的集中控制节点提高了以分散化模型占统治地位的系统的性能。为提高P2P系统的关键性能特性,比如寻址和资源管理等,这些混合模型中定义了一些集中化控制点。混合模型还能提高系统的可靠性和容错能力。
为了理解P2P系统的实质,让我们先来回顾一下有关网络拓扑结构的知识。这些知识也有助于读者明白在设计P2P系统时,我们有多种不同的网络拓扑结构可供选择。任何类型的网络拓扑结构都不可能适用于所有的 P2P系统。MIT的 Nelson Minar推荐读者应当从逻辑角度而不是物理角度来看待网络拓扑结构。换句话说,我们应当将这些网络模型看成是描述信息流向的术语,而不是将其当成网络物理连线的术语。
下面我们将逐一介绍5种常用的网络拓扑结构:
◎ 星型结构;
◎ 总线结构;
◎ 环状拓扑结构;
◎ 层次结构;
◎ 网状结构。
一、星型结构
星型网络将各个设备和节点连接到一个中心控制点上。所有的网络通信都经过这个中心控制点。与其他绝大多数的网络拓扑结构相比,星型结构更容易定位故障元件。如图2.3所示是一个典型的星型结构网络。
图2.3 星型网络拓扑结构有一个用于通信控制的中心点
Napster软件的文件索引就类似于星型拓扑结构。当然,使用中心通信控制点就意味着系统存在单点错误。在P2P系统中,单点错误可能会造成灾难性后果。
二、总线拓扑结构
总线拓扑结构将所有设备或存储介质都连接到相同物理介质上。总线拓扑结构没有中心控制点,而是使用了一条所有节点共享的总线。如图2.4所示,这条总线就是用于连接网络上的设备的。
图 2.4 总线拓扑结构网络没有中心点,每个节点都检查
总线上的信息,以确定该节点是否是该信息的目的节点
总线拓扑结构没有星型结构中由中心控制点导致的单点错误问题,但通信总线的问题将会影响生个网络。
三、环状拓扑结构
如图2.5所示,在一个环状拓扑结构中,任何一台设备或一个节点都被连接到其他两个节点上,形成一个回路。在这个回路上,数据信息到达其目的节点之前,将沿同一方向从一个节点传递到相邻节点。因为环状结构上一次请求传播的距离是确定不变的,所以可以预测请求在回路中的响应时间。
图2.5 环状拓扑结构没有中心点,消息从一个节点
传递到另一个节点,直到找到目的节点
环状网络也会面临单节点故障导致整个网络崩溃的问题。
四、层次型拓扑结构
图2.6所示是一个层次型拓扑结构的网络。层次型拓扑结构和一个级联式的星型拓扑结构非常类似。换句话说,许多节点都连接到一些单一节点上,然后这些单一节点再连接到其他单一节点。这些星型结构的网络形成父子关系或形成类似于一颗倒置树的网络。
图2.6 层次拓扑结构类似一棵倒置的树,任何一个
节点都是其直接相邻的下一级节点的中心控制点
五、网状拓扑结构
如图2.7所示,网状拓扑结构需要所有的网络设备或节点都有连接到该网络上其他所有设备或节点的专用连接路径。
2.7 网状网络拓扑结构类似于互联网路由拓扑结构
典型情况下,这种网状网络具有很好的灵活性,其原因是这种网络的任何两个节点间的通信路径都不止一条。但是,网状拓扑结构网络的容错能力取决于该网络中通信路径的完整性。
六、混合模型
我们将要讨论的绝大部分系统都远比前面介绍的这5种网络拓扑结构复杂。实际上,很多系统都是由多种网络拓扑结构组成的。这些不同的网络结构将对一种或多种网络模型进行补充或扩展。例如,在Napster中就有一个集中化的文件索引节点,如图2.8所示,该系统中的文件传输和转换部件类似于采用网状拓扑结构的点到点连接网络。
图2.8 Napster代表了一种P2P混合拓扑结构,在这种结构中某些
功能是集中化的,而另一些功能是高度分散化的
第三章JXTA技术
虽然目前世界上已经存在了许多P2P的系统,但是从研究角度而言,Sun公司于2001年推出的JXTA技术无疑是进行P2P研究的利器。JXTA名称的含义代表Juxtapose工程。Juxtapose的中文意思是并列,JXTA并不认为因特网(Internet)或内联网(intranet)中现有的Clien/Server计算模式会消失或被取代。相反,JXTA技术将作为一种补充,与这些技术共存(因此是并列的),并给最终用户带来超值体验。因特网和内联网的用户将能够从网络的这两种计算形式中获益。
3.1 JXTA是什么
首先,JXTA是为了构建P2P网络而制订的一组协议,是解决了上述构建P2P网络所碰到的问题的解决方法。JXTA标准协议规范介绍如下: "JXTA由六个协议组成,这些协议是专为特定的、分布式的、对等的网络计算而设计的。使用这些协议,Peer可以互相合作来建立自我组织、自我管理的对等组,而不必关心它们在网络中所处的位置(在网络边缘或者防火墙的后面),并且也不需要集中的管理机构。"
因此JXTA的核心是六个协议。
其次,JXTA是P2P应用程序开发的运行平台。目前JXTA首先推出了基于Java的参考实现,提供了支持六个协议的Java API,JXTA还将推出包括C语言在内的其他编程语言的API.
JXTA在设计时有如下几个目标:
* 操作系统无关
* 语言无关
上一篇:
JSP网上购物系统毕业设计论文(word文档)
下一篇:
基于JSP邮件收发系统论文