1 引言 当前P2P[1] 技术取得了飞速的发展,在Internet上的文件共享显示了P2P系统的巨大商业潜力,但是P2P的应用并不仅仅局限于Internet上音乐和视频数据的交换和共享,越来越多的企业和科学研究人员试图将P2P计算模型用来解决一些未知的问题。相对于基于服务器的计算模型,P2P具有更健壮、更可靠的特性,能够提供更强大的计算能力,更大的可扩展性,更大的带宽,所以现在有很多领域都采用了P2P的计算框架,包括即时消息传输,如Napster;文件交换,如Gnutella;搜索引擎,如PAST;协同工作,如Groove。 移动计算技术也已经深入我们的日常生活,特别是移动自组网 [10](Mobile Ad Hoc Network,或MANET)技术研究为移动计算和分布式计算开辟了新的研究领域。因为MANET中的各个节点几乎都是资源受限设备, CPU处理能力弱、内存有限、没有持续供应的电源,很难充当固定的服务器,MANET没有固定的网络基础设施,它的带宽和计算能力难以满足基于服务器的传统计算框架的资源要求,而P2P因其独特的分布式计算特性则可以为MANET这种信息和控制高度分布的网络架构提供理想的上层计算框架[11],这种计算二元性使我们很自然的将P2P计算平台与MANET结合起来。本文将讨论几种常见的P2P拓扑结构在各种应用环境下的优缺点,在此基础上提出一种能够运行在MANET和Internet上,具有P2P拓扑独立性和设备平****立性、能够为上层P2P应用程序提供路由和信息服务的中间件系统模型TPMM,为P2P在军用和民用的移动计算环境上的应用提供一个开放、稳定、高效的支撑平台,并给出了TPMM在J2ME平台上的实现。
2 网络拓扑自适应的中间件系统模型 P2P系统的拓扑结构可以分为三种,如图1所示,1)纯P2P拓扑结构,包括两种子结构:无序网状结构P2P和结构化P2P;2)基于服务器的P2P结构;3)混合的P2P结构。本节要讨论P2P层次的常见拓扑结构并分析它们的优缺点,这些对等点之间的联系在很大程度上影响P2P网络的性能。
图1 几种常见的P2P网络拓扑结构
P2P的拓扑结构对P2P网络的各个方面有着很重要的影响,如1)定义对等点之间怎样连接2)在P2P网络中消息的路由选择3)系统的稳定性和可扩展性4)分布式查找的性能。因此对一个P2P中间件系统来说,能够根据应用环境的变化动态地切换拓扑结构而保持上层应用的独立性是非常重要的,但目前的P2P应用系统[12]尚不支持在不同的P2P拓扑结构之间进行动态的切换,如JXTA[13],所以它们不能灵活地适应各个不同的应用环境。本文提出的TPMM具有模块化和层次化的结构,允许通过不同的网络拓扑描述模块的切换来动态地适应应用环境的变化,使上层的应用不会因为下层网络拓扑的改变而作修改,TPMM为上层应用提供恒定的API来实现应用和网络拓扑的透明性。
2.1 TPMM的设计要求 平****立性:TPMM要求使用在移动自组网环境中,能够运行在诸多设备上,所以要求中间件系统独立于底层的操作系统;不采用和实现语言相关的功能(如RMI)。 拓扑独立性:和特定的P2P拓扑无关是TPMM最重要的功能要求,系统必须能够在运行时根据系统配置动态加载或切换拓扑实现模块来适应应用环境的变化。 开放性:系统必须满足灵活和可扩展的要求,包括采用的网络协议、消息结构、消息的处理方式等等,为外界提供开放的接口,使得TPMM和其他P2P中间件系统能够无缝集成。 简洁性:要求提供轻量级的实现,能够运行在众多的资源受限平台上,如手机、PDA和其他移动或嵌入式设备上。
2.2 TPMM的体系结构 TPMM位于操作系统和虚拟机之上,为上层应用提供中间件实现的服务接口,如图2所示,中间件可以分为四层,从下到上依次为:通信层、处理层、网络层和应用层。
图2 TPMM的体系结构
2.2.1 通信层 通信层的功能和OSI七层网络模型的物理层类似,负责在P2P网络各个对等点之间进行点对点的消息传输。包括两个部分,上层的核心模块和下层的传输模块,传输模块可以有多种,分别负责各种协议(如UDP、TCP、红外和蓝牙)下的消息传输。 MANET由不稳定的移动节点通过无线链路构成,它的节点经常由于无线信号不稳定而丢失连接,然后再通过另外一个节点接入MANET,为了有效管理MANET的动态拓扑,在TPMM通信层的核心模块中实现了两个功能:1)间歇性连接管理:可以使MANET节点断开连接并通过其他节点接入MANET的时候保持和原来节点的通信,这种处理透明性使上层应用不用考虑MANET的动态拓扑特性。2)多网络接口管理:为同一个节点提供了多个网络接口,这样核心模块可以调用不同的传输模块进行并行的消息传输,如在同一时刻P2P网络中一台笔记本既可以用蓝牙和手机通信,也可以用红外接口和另外一台笔记本通信。 核心模块还要负责组织和控制下层的传输模块,在处理层和通信层之间分发消息。一旦传输模块接收到来自其他对等点的消息就将其传递给核心模块,然后由核心模块交给处理层的输入消息管道进行处理,而如果核心模块接收到来自上层输出消息管道的消息时要根据消息本身的元信息或者系统配置来选择合适的传输模块把消息传输到指定对等点。 现在几乎所有的P2P中间件系统都是构建在Internet的IP网络架构之上的,TPMM要能够工作在移动自组网和Internet之上。问题是对各种网络,如Internet和蓝牙或者红外接口的无线网络不存在统一的访问接口,它们需要第三方的类库来提供访问支持。解决的方案是在通信层和操作系统提供的底层网络服务之间增加一个抽象层,即实现第三方附加类库的虚拟机,有了这一层抽象以后,通信层就可以为上层提供一个统一的网络访问接口,而不必关心下面采用何种网络架构。为了达到这个目标,TPMM采用了由通信层核心模块控制的传输模块,不同的传输模块负责在不同的网络如IP、蓝牙或者红外网络中进行节点之间的消息传输。在IP网络中工作的套接字等网络访问接口已经不能满足网络类型多元化的要求,必须将不同类型的网络访问接口和方法封装在不同的传输模块中,而且各个传输模块之间保持独立。 在Internet中为了唯一的标识一个对等点及其进程,使用了IP地址加端口的表示方式,但是在无线网络中这种表示方式就不能工作了。为了满足在MANET之间、MANET和Internt网之间进行通信的要求,必须在传输模块之上采用一个独立于网络类型的统一地址描述模式,Sun的开源项目JXTA采用了全局唯一ID来标识网络中的每一个对等点,TPMM采用一个抽象类:ACUID来封装节点标识信息,除了包含全局唯一ID外还有网络类型标识等其他说明信息,这样上层模块可以利用这个封装了网络地址信息的接口来透明地访问其它节点。 2.2.2 处理层 处理层可以对应于OSI七层模型中的数据链路层,负责处理各个对等点传入和传出的消息,它为对等点之间开辟一个消息传输通道来检测传输错误和保障传输正确性。处理层包括两个消息管道:消息输入管道和消息输出管道,消息输入管道负责处理和接收其它对等点传入的消息,消息输出管道负责处理和发送本机发出的消息。XML格式消息的处理会消耗大量的系统资源,因为TPMM要运行在资源受限设备上,所以采用基于文本的结构,为了达到开放性的要求,消息定义用扩展巴科斯-诺尔范式 [14]描述。
图3 处理层的主要工作流程
消息管道由一系列的处理模块组成,包括各种P2P网络服务,如加密解密、安全认证、错误检测、事务服务等等,由它们对输入或输出的消息进行处理和加工。确定这些模块的管理和使用逻辑是非常复杂的,为了保证中间件系统在多种平台的实用性,必须简化这些可动态加载模块的管理和使用,因此采用了线性管理模式,如图3所示:由这些模块线性地连接形成消息传输管道,上层应用的消息或通信层传来的其他节点的消息都必须经过组成消息传输管道的各个处理模块,各个处理模块可以根据消息本身的信息或者系统配置信息来决定是否对消息进行处理,还要对消息加上处理状态,以便后续模块能够识别消息的传输和处理状态并决定是否作进一步处理。因为采用了线性组合,所以模块间的接口就变得相当简单,除了传递消息之外模块之间工作独立,不需要进行其他交互。 消息管道中的模块对消息的处理分为五种方式:1)忽略(缺省方式):对传来的消息不作任何修改直接传递到下一个处理模块;2)修改消息内容:对消息内容进行修改,如对消息进行压缩;3)监控:并不修改消息,但是要对经过的消息进行记录,必要时把它记入监控日志;4)产生消息:可以对其他节点传来的消息产生回应消息,或者产生到其他节点的新消息;5)丢弃消息:将消息放到垃圾消息队列或者删除掉,不再传递给下一个处理模块。 处理层的各个模块可以在系统运行时动态的装载或卸载,如一个节点需要安全认证服务,它可以从一个信任站点下载该模块并安装,中间件系统将自动把这个模块加载到消息传输通道中来。P2P网络中的各个节点并不要求具有相同的消息处理和网络服务模块,要根据各个节点的系统资源及其在网络中的功能要求来确定。2.2.3 网络层 P2P网络层的作用和OSI七层模型中的网络层和传输层相似,为P2P网络节点提供路由支持和保障端对端的可靠连接,最重要的是P2P网络层要为上层应用提供拓扑结构的透明性,在P2P网络的拓扑结构改变时不影响上层应用。网络层主要由拓扑实现模块和拓扑交换控制模块组成。 拓扑交换控制模块负责在P2P拓扑结构变化时根据系统配置动态切换相应的拓扑实现模块进行路由计算。拓扑交换控制模块还要实现和JXTA中对等点组一样的功能,即在中间件系统初始化的时候负责初始化和管理整个P2P网络的成员节点信息,分配全局标识ID,对其进行创建、添加和删除。拓扑实现模块针对各种P2P拓扑结构实现相应的路由算法和网络服务,它决定节点对消息或路由请求的处理方式以及负责建立节点间基于流的数据传输通道。当需要的内容或服务定位了以后,两个对等点之间就要建立直接的数据交换通道,TPMM采用基于流的传输通道,用以下五个接口和类来实现流传输:1)StreamManager流管理器;2)StreamReceptor流接收器;3)StreamControl流操作控制器;4)StreamRequestor流请求;5)StreamProvider流提供者。两个对等点之间建立基于流的通信过程如图4所示。 其他的P2P中间件系统如Sun的JXTA要求下面的网络拓扑必须时固定的,TPMM能够支持多种网络拓扑并存,而且能够动态的根据网络拓扑的变化来选择合适的拓扑实现模块进行高效的路由计算。网络路由功能由拓扑实现模块来完成,它实现了特定P2P网络拓扑的路由算法,如在无序网状结构的P2P网络中,节点会将路由请求发送至它周边的各个节点并等候回应,这种路由可以采用改进鱼眼状态路由算法FSR[15](Fisheye Status Routing)来获得较高的路由性能;当在基于服务器的P2P网络中,节点会将路由请求发送至服务器,这些功能都封装在拓扑实现模块中。
图4 对等点之间建立基于流通信的顺序图
由于在网络层存在若干拓扑实现模块,不能确定哪个拓扑实现模块应该接收处理层的消息,所以要在消息中增加网络拓扑标识来确定接收的拓扑实现模块,同一P2P网络中的节点采用同一个网络拓扑标识,如果在消息中不存在该标识,则将该消息交给缺省的拓扑实现模块。2.2.4 应用层 为了让上层应用程序在利用TPMM服务的时候不用考虑下层的拓扑结构,TPMM提供了一层抽象来屏蔽网络层支持的各种拓扑结构,这样应用程序可以用统一的接口来访问服务而不必修改任何一行应用代码。这些服务都在网络层的各个拓扑实现模块里面提供具体实现。
3 结束语 我们用J2ME WTK2.0在Sun的J2ME平台上建立了一个TPMM原型,能够运行在基于Java 1.4.2的J2ME模拟器平台上。系统使用MIDP提供的基础类库而不要求附加类库,如XML解析器(一些处理模块除外,如加密解密模块是J2SE的标准类库)。 TMPP采用了层次结构和模块化的设计思路,和其他的中间件系统(如JXTA)相比具有拓扑独立性,可以通过系统配置灵活地选择P2P网络拓扑结构而不会对上层应用程序作任何改变,应用层提供的API可以使上层应用程序在不同的网络拓扑结构下通过统一的接口调用中间件系统提供的服务,而且通过切换通信层的网络协议模块可以工作在MANET和Internet环境下。随着移动计算技术的发展,越来越多的环境会采用MANET和P2P计算的工作模式,下一步研究是进行设计优化,使其能够动态地检测P2P网络拓扑变化,而且能够工作在传感器网络等微型设备上,进一步扩大其使用范围。
参考文献[1]Tomoya, K.; Shigeki, Y..Application of P2P (peer-to-peer) technology to orlds, 2003. Proceedings. 2003 International Conference on,3-5 Dec. 2003 Pages:372 – 379Menasce, le P2P et Computing, IEEE ,Volume: 7 ,Issue: 2 ,March-April 2003 Pages:83 - 87Kikuma, K.; Morita, Y.; Sunaga, H.; Tamura, H.; Hidaka, T.; Mizuno, M. A study of a P2P community on a P2P communication platform. Communication Technology Proceedings, 2003. ICCT 2003. International Conference on ,Volume: 1 ,9-11 April 2003 Pages:153 - 156 vol.1 Napster. Napster homepage, , 2002 Gnutella: The Gnutella homepage, , 2001 P. Druschel and A. Rowstron. PAST: A large-scale, persistent peer-to-peer storage utility. In HotOS VIII, Schloss Elmau Germany, May 2001 Groove. Introduction to Groove, Groove Networks White Paper, 2000 Jun-Zhao Sun. Mobile ad hoc networking: an essential technology for pervasive computing. Info-tech and Info-net, 2001. Proceedings. ICII 2001 - Beijing. 2001 International Conferences on ,Volume: 3 ,29 Oct.-1 Nov. 2001 Pages:316 - 321 vol.3 Weniger, K; Zitterbart, M. Mobile ad hoc networks - current approaches and future directions. Network, IEEE ,Volume: 18 ,Issue: 4 ,July-Aug. 2004 Pages:6 - 11[10]Ryu, B.; Andersen, T.; Elbatt, T.; Zhang, Y. Multitier mobile ad hoc networks: architecture, protocols, and perfomance. Military Communications Conference, 2003. MILCOM 2003. IEEE ,Volume: 2 ,13-16 Oct. 2003 Pages:1280 - 1285 Vol.2[11]Iwata, T.; Miyazaki, S.; Takemoto, M.; Ueda, K.; Sunaga, H. P2p platform implementation on pdas organizing ad hoc wireless network. Applications and the Internet Workshops, 2004. SAINT 2004 Workshops. 26-30 Jan. 2004 Pages:529 - 534[12]Fontijn, W.; Boncz, P. AmbientDB: P2P data management middleware for ambient intelligence. Pervasive Computing and Communications Workshops, 2004. Proceedings of the Second IEEE Annual Conference on ,14-17 March 2004 Pages:203 – 207[13]Project JXTA, , 2003[14]D. Crocker, Ed., P. Overell. Augmented BNF for Syntax Specifications: ABNF (RFC 2234), , 1997[15]Guangyu Pei; Gerla, M.; Tsu-Wei ChenFisheye state routing: a routing scheme for ad hoc wireless networks. Communications, 2000. ICC 2000. 2000 IEEE International Conference on ,Volume: 1 ,18-22 June 2000 Pages:70 - 74 vol.1
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。