拓扑自适应的移动自组网P2P中间件系统.docx
《拓扑自适应的移动自组网P2P中间件系统.docx》由会员分享,可在线阅读,更多相关《拓扑自适应的移动自组网P2P中间件系统.docx(8页珍藏版)》请在冰豆网上搜索。
![拓扑自适应的移动自组网P2P中间件系统.docx](https://file1.bdocx.com/fileroot1/2023-2/3/7ca1740a-3465-40f2-817a-0f7958e295d0/7ca1740a-3465-40f2-817a-0f7958e295d01.gif)
拓扑自适应的移动自组网P2P中间件系统
拓扑自适应的移动自组网P2P中间件系统
摘要P2P计算模型以其独特的散布式特性为移动自组网这种信息和操纵高度散布的网络架构提供了理想的上层计算框架,这种计算二元性使咱们很自然地将P2P计算平台与移动自组网结合起来。
本文讨论几种常见的P2P拓扑结构在各类应用环境下的优缺点,提出一种能够运行在移动自组网和Internet上,具有P2P网络拓扑独立性和设备平台独立性、能够为上层P2P应用程序提供路由和信息效劳的中间件系统模型TPMM,为P2P在移动自组网上的应用提供一个开放、稳固、高效和平安的支撑平台,并给出TPMM在J2ME平台上的参考实现。
关键词移动自组网,拓扑自适应,P2P,中间件系统模型
1引言
当前P2P[1][2][3]技术取得了飞速的进展,在Internet上的文件共享显示了P2P系统的庞大商业潜力,可是P2P的应用并非仅仅局限于Internet上音乐和视频数据的互换和共享,愈来愈多的企业和科学研究人员试图将P2P计算模型用来解决一些未知的问题。
相关于基于效劳器的计算模型,P2P具有更健壮、更靠得住的特性,能够提供更壮大的计算能力,更大的可扩展性,更大的带宽,因此此刻有很多领域都采纳了P2P的计算框架,包括即时消息传输,如Napster[4];文件互换,如Gnutella[5];搜索引擎,如PAST[6];协同工作,如Groove[7]。
移动计算技术也已经深切咱们的日常生活,专门是移动自组网[8][9][10](MobileAdHocNetwork,或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来实现应用和网络拓扑的透明性。
TPMM的设计要求
平台独立性:
TPMM要求利用在移动自组网环境中,能够运行在诸多设备上,因此要求中间件系统独立于底层的操作系统;不采纳和实现语言相关的功能(如RMI)。
拓扑独立性:
和特定的P2P拓扑无关是TPMM最重要的功能要求,系统必需能够在运行时依照系统配置动态加载或切换拓扑实现模块来适应应用环境的转变。
开放性:
系统必需知足灵活和可扩展的要求,包括采纳的网络协议、消息结构、消息的处置方式等等,为外界提供开放的接口,使得TPMM和其他P2P中间件系统能够无缝集成。
简练性:
要求提供轻量级的实现,能够运行在众多的资源受限平台上,如电话、PDA和其他移动或嵌入式设备上。
TPMM的体系结构
TPMM位于操作系统和虚拟机之上,为上层应用提供中间件实现的效劳接口,如图2所示,中间件能够分为四层,从下到上依次为:
通信层、处置层、网络层和应用层。
图2TPMM的体系结构
通信层
通信层的功能和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外还有网络类型标识等其他说明信息,如此上层模块能够利用那个封装了网络地址信息的接口来透明地访问其它节点。
处置层
处置层能够对应于OSI七层模型中的数据链路层,负责处置各个对等点传入和传出的消息,它为对等点之间开辟一个消息传输通道来检测传输错误和保障传输正确性。
处置层包括两个消息管道:
消息输入管道和消息输出管道,消息输入管道负责处置和接收其它对等点传入的消息,消息输出管道负责处置和发送本机发出的消息。
XML格式消息的处置会消耗大量的系统资源,因为TPMM要运行在资源受限设备上,因此采纳基于文本的结构,为了达到开放性的要求,消息概念用扩展巴科斯-诺尔范式[14]描述。
图3处置层的要紧工作流程
消息管道由一系列的处置模块组成,包括各类P2P网络效劳,如加密解密、平安认证、错误检测、事务效劳等等,由它们对输入或输出的消息进行处置和加工。
确信这些模块的治理和利用逻辑是超级复杂的,为了保证中间件系统在多种平台的有效性,必需简化这些可动态加载模块的治理和利用,因此采纳了线性治理模式,如图3所示:
由这些模块线性地连接形成消息传输管道,上层应用的消息或通信层传来的其他节点的消息都必需通过组成消息传输管道的各个处置模块,各个处置模块能够依照消息本身的信息或系统配置信息来决定是不是对消息进行处置,还要对消息加上处置状态,以便后续模块能够识别消息的传输和处置状态并决定是不是作进一步处置。
因为采纳了线性组合,因此模块间的接口就变得相当简单,除传递消息之外模块之间工作独立,不需要进行其他交互。
消息管道中的模块对消息的处置分为五种方式:
1)忽略(缺省方式):
对传来的消息不作任何修改直接传递到下一个处置模块;2)修改消息内容:
对消息内容进行修改,如对消息进行紧缩;3)监控:
并非修改消息,可是要对通过的消息进行记录,必要时把它记入监控日记;4)产生消息:
能够对其他节点传来的消息产生回应消息,或产生到其他节点的新消息;5)抛弃消息:
将消息放到垃圾消息队列或删除掉,再也不传递给下一个处置模块。
处置层的各个模块能够在系统运行时动态的装载或卸载,如一个节点需要平安认证效劳,它能够从一个信任站点下载该模块并安装,中间件系统将自动把那个模块加载到消息传输通道中来。
P2P网络中的各个节点并非要求具有相同的消息处置和网络效劳模块,要依照各个节点的系统资源及其在网络中的功能要求来确信。
网络层
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](FisheyeStatusRouting)来取得较高的路由性能;当在基于效劳器的P2P网络中,节点会将路由请求发送至效劳器,这些功能都封装在拓扑实现模块中。
图4对等点之间成立基于流通信的顺序图
由于在网络层存在假设干拓扑实现模块,不能确信哪个拓扑实现模块应该接收处置层的消息,因此要在消息中增加网络拓扑标识来确信接收的拓扑实现模块,同一P2P网络中的节点采纳同一个网络拓扑标识,若是在消息中不存在该标识,那么将该消息交给缺省的拓扑实现模块。
应用层
为了让上层应用程序在利用TPMM效劳的时候不用考虑基层的拓扑结构,TPMM提供了一层抽象来屏蔽网络层支持的各类拓扑结构,如此应用程序能够用统一的接口来访问效劳而没必要修改任何一行应用代码。
这些效劳都在网络层的各个拓扑实现模块里面提供具体实现。
3终止语
咱们用J2ME在Sun的J2ME平台上成立了一个TPMM原型,能够运行在基于Java的J2ME模拟器平台上。
系统利用MIDP提供的基础类库而不要求附加类库,如XML解析器(一些处置模块除外,如加密解密模块是J2SE的标准类库)。
TMPP采纳了层次结构和模块化的设计思路,和其他的中间件系统(如JXTA)相较具有拓扑独立性,能够通过系统配置灵活地选择P2P网络拓扑结构而可不能对上层应用程序作任何改变,应用层提供的API能够使上层应用程序在不同的网络拓扑结构下通过统一的接口挪用中间件系统提供的效劳,而且通过切换通信层的网络协议模块能够工作在MANET和Internet环境下。
随着移动计算技术的进展,愈来愈多的环境会采纳MANET和P2P计算的工作模式,下一步研究是进行设计优化,使其能够动态地检测P2P网络拓扑转变,而且能够工作在传感器网络等微型设备上,进一步扩大其利用范围。
参考文献
[1]Tomoya,K.;Shigeki,Y..ApplicationofP2P(peer-to-peer)technologyto,2003.Proceedings.2003InternationalConferenceon,3-5Dec.2003Pages:
372–379
[2]Menasce,P2PComputing,IEEE,Volume:
7,Issue:
2,March-April2003Pages:
83-87
[3]Kikuma,K.;Morita,Y.;Sunaga,H.;Tamura,H.;Hidaka,T.;Mizuno,M.AstudyofaP2PcommunityonaP2Pcommunicationplatform.CommunicationTechnologyProceedings,2003.ICCT2003.InternationalConferenceon,Volume:
1,9-11April2003Pages:
153-156
[4]Napster.Napsterhomepage,2002
[5]Gnutella:
TheGnutellahomepage,
2001
[6]P.DruschelandA.Rowstron.PAST:
Alarge-scale,persistentpeer-to-peerstorageutility.InHotOSVIII,SchlossElmauGermany,May2001
[7]Groove.IntroductiontoGroove,GrooveNetworksWhitePaper,2000
[8]Jun-ZhaoSun.Mobileadhocnetworking:
anessentialtechnologyforpervasivecomputing.Info-techandInfo-net,2001.Proceedings.ICII2001-Beijing.2001InternationalConferenceson,Volume:
3,29Nov.2001Pages:
316-321
[9]Weniger,K;Zitterbart,M.Mobileadhocnetworks-currentapproachesandfuturedirections.Network,IEEE,Volume:
18,Issue:
4,July-Aug.2004Pages:
6-11
[10]Ryu,B.;Andersen,T.;Elbatt,T.;Zhang,Y.Multitiermobileadhocnetworks:
architecture,protocols,andperfomance.MilitaryCommunicationsConference,2003.MILCOM2003.IEEE,Volume:
2,13-16Oct.2003Pages:
1280-1285
[11]Iwata,T.;Miyazaki,S.;Takemoto,M.;Ueda,K.;Sunaga,H.P2pplatformimplementationonpdasorganizingadhocwirelessnetwork.ApplicationsandtheInternetWorkshops,2004.SAINT2004Workshops.26-30Jan.2004Pages:
529-534
[12]Fontijn,W.;Boncz,P.AmbientDB:
P2Pdatamanagementmiddlewareforambientintelligence.PervasiveComputingandCommunicationsWorkshops,2004.ProceedingsoftheSecondIEEEAnnualConferenceon,14-17March2004Pages:
203–207
[13]ProjectJXTA,2003
[14]D.Crocker,Ed.,P.Overell.AugmentedBNFforSyntaxSpecifications:
ABNF(RFC2234),
1997
[15]GuangyuPei;Gerla,M.;Tsu-WeiChenFisheyestaterouting:
aroutingschemeforadhocwirelessnetworks.Communications,2000.ICC2000.2000IEEEInternationalConferenceon,Volume:
1,18-22June2000Pages:
70-74