基于2层P2P结构的Web服务实现

时间:2022-02-28 06:25:02

基于2层P2P结构的Web服务实现

摘要:针对当前Web服务架构的不足,利用结构化的Chord网络作为Web服务目录支撑平台,设计2层Web服务模型,介绍服务的与检索方法,通过比较、分析和仿真试验,验证了模型的优越性,提出了深入分析设计的思路。

关键词:对等网络;Web服务;Chord

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0809-03

Implementing Web Services based on 2-Layer P2P Overlay

LI Wen-xiang, YANG Hu-fang, YIN Li-ping

(Wuhan University of Science and Technology, School of Information Science and Engineering, Wuhan 430081, China)

Abstract: Aiming at the drawbacks in current Web Service architecture, built platform for Web Service directory with structured network of Chord, designed a 2-layer Web Service model, introduced methods for publishing and searching services, by comparison, analysis and simulation, verified the superiority of the model, proposed the idea for further analysis and design.

Key words: P2P network; web service; chord

1 引言

近年来Web服务成为蓬勃兴起的分布式计算模式,它能实现不同平台、语言编写的程序间的无缝互操作。它基于服务提供者、服务请求者以及服务注册中心三者之间的交互,涉及服务的、检索、绑定等操作。在传统的Web服务架构中,集中式的注册中心存储服务描述信息,保证注册到其中的所有服务均能被检索,但是该架构也具有性能瓶颈和单点失效等问题[1]。

P2P网络中所有节点地位相同,每个节点既能提供又能接受服务,其动态机制有利于搜索和定位资源,有助于普及网络边缘计算和服务。将P2P网络与Web服务结合起来,使服务分布在各个节点上,是一种理想的服务实现方案,可以有效利用P2P的优势提高Web服务的扩展性,实现分布式检索,提升网络服务功能。本文提出了基于2层P2P的Web服务模型,阐述其服务和检索方法,通过分析路由性能和仿真试验,体现了模型的优越性。

2 基于Chord的Web服务模型

2.1 网络体系结构描述

在前人提出的基于Chord的Web服务模型[2]中,各节点被分配唯一的标识符nid,由散列函数散列节点的IP地址产生。若节点M的nid直接大于节点N的nid(即M.nid=min{nid|nid>N.nid}),则M称为N的后继节点。每个Web服务也有其唯一标识符sid,其取值范围与nid范围一致,由散列函数散列服务关键字产生。若M.nid等于或者直接大于服务S的标识符(即M.nid=min{nid|nid>=S.sid}),则M称为S的后继节点。

该模型的构建基于Chord协议[3],需要建立一个分布式的Web服务目录系统,其方法为:

1) 节点依照Chord协议按nid大小顺序组环,对m位的命名空间,每个节点维护一张最多m个表项的指针表,将后继节点的nid等信息填入对应的指针表项;

2) 根据散列函数得到服务标志符sid,通过Chord协议关键字查找算法,找到服务的后继节点,并将服务目录信息发到相应后继节点上;

3) 每个节点承担一部分服务目录信息,称之为本地服务目录,所有节点的本地服务目录构成全局服务目录。图1说明了这种分布式Web服务目录的架构。

根据WSDL对Web服务的描述,Web服务目录的表项表示为C={(Key, Location(key))},其中Key为服务关键字,Location(key)表示关键字为key的服务节点的位置,由节点IP地址和资源所在路径组成。

2.2 模型的优点分析

该服务模型具有如下优点:

1) 存放目录的后继节点固定,相关Web服务的信息也是固定的。服务查询的复杂度为O(logn);

2) 关键字的选择有很大的灵活性,可根据具体应用选择,使得服务有较好的可扩展性和实用性;

3) 目录的分配依赖Chord协议,而Chord协议解决了网络负载均衡的问题;

4) 把服务任务交给Chord网络的各节点,消除了单点服务器失效问题。

3 基于两层P2P的Web服务模型

3.1 网络体系结构描述

通过对网络的测量分析,发现节点的能力和行为方式差别很大,大部分节点在线时间非常短,带宽很小,小部分节点在线时间很长,有很强的能力和较大的带宽。这种节点异质性表明,需要将它们赋予不同的角色,让能力强的节点担当更多任务。层次化P2P基于这种思路结合了无结构P2P网络和有结构P2P网络的优点;无结构P2P网络结构简单、能够适应高度动态性,但是其资源检索基于泛洪方式,检索效率低;有结构P2P网络有更好的可扩展性,更快的检索速度,需要更少的控制开销,但是不适合高度动态的网络环境。

如图2所示,基于2层P2P的Web服务模型上层由超级节点(记为SN)组成结构化的Chord网络,称之为索引网络,下层由普通节点(记为CN)组成非结构化网络。

索引网络由网络中能力强、在线时间长的节点组成,为邻近CN提供服务、服务检索以及服务目录维护等功能。CN可以是任意网络节点,没有分配节点标志符nid,它只保存离它最近的邻居SN和CN信息,这就使得CN可以随意地加入和离开网络,而不需要进行索引网络的修复工作,从而更好地适应网络的动态性。当某个CN需要检索服务时,就把检索消息发送给上层索引网络,索引网络返回结果得到服务的位置,CN直接从该位置上的节点获取所需的服务。

2.2 服务与服务检索方法

当CNi要Web服务时,首先为待的服务建立目录表项信息Ci={(Keyi, Location(keyi, CNi))},Location(keyi, CNi)表示关键字为keyi的服务在节点CNi上的位置,它由CNi的IP地址和服务所在的文件路径组成。服务的过程表示为:

1) CNi将要的目录信息交给其邻居SNi;

2) SNi通过散列函数得到服务标志符sid;

3) SNi根据Chord协议的关键字查找算法,定位到待Web服务的后继超级节点SNj;

4) SNj将上述服务目录信息存放到其本地服务目录中,完成服务。

如果某个超级节点SNi需要服务,则具体方法为上述过程的2)至4)步。

若CNk要检索服务,则具体过程如下:

1) CNk将关键字为Keyi的Web服务检索请求提交给其邻居SNk;

2) SNk根据Keyi,散列得到其服务标志符sid;

3) SNk根据Chord协议定位到待发现Web服务的后继超级节点SNj;

4) SNj将检索请求与本地服务目录相匹配,找到待查找的Web服务的位置信息,将结果返回给CNk;

5) CNk直接与Web服务位置信息对应的节点联系,获取Web服务的技术文档,进而调用Web服务。

如果某个SNk要搜索服务,则具体方法为上述过程的2)至5)步。

3 模型的性能分析与仿真

3.1 关键性能参数和优点分析

在前述模型中,索引网络的路由性能[4]由网络结构决定,基于Chord得到路由性能指标见表1。

从表1看出,基于2层P2P的模型在各性能指标上都优于基于Chord的模型,其特点包括:

1) 对节点能力作了有效区分。

2) 服务定位和检索效率更高,额外开销少。

3) 能够适应高度动态的网络环境。

4) 资源可在多个节点上复制,提升返回结果数。

3.2 仿真试验与结果

基于PlanetSim仿真软件,设定网络节点总数为6000,仿真时间1000秒,每2秒一次随机查询,设计如下三种服务模型的仿真试验,模型A:SN比例为100%,所有节点都在索引网络中,等价于基于Chord的Web服务模型,模型B:SN比例为10%,处在索引网络中的节点为600个,模型C:SN比例为1%,处在索引网络中的节点为60个,假定每个SN都有足够能力处理所有关联到它的CN的检索请求。获取索引网络的两个性能指标――RouteMessage(路由消息)和Traffic(流量)的数据,结果如表2。

从表2看出,SN越少,整个索引网络完成相同任务所需的开销就越少。

4 结束语

该文提出的Web服务模型具有出色的服务检索性能,且索引网络规模越小,性能越好,但是这样单个超级节点将关联更多的普通节点,对超级节点的性能提出了更高的要求,因此并不是超级节点越少越好,在今后的研究中,必须考虑索引网络性能和超级节点承受能力的折中。

参考文献:

[1] S Ambroszkiewicz.Web Service Integration as a New Paradigm for Network Computing[A].In:IEEE.Parallel Computing in Electrical Engineering[C].US:IEEE,2002.239-245.

[2] M P Papazoglou,Bernd J Kramer.Leveraging Web-Services and Peer-to-Peer Networks[A].In:IEEE.Advanced Information Systems Engineering[C].UK: Springer,2003.485-501.

[3] Ion Stoica,Robert Morris.Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications[A].In:ACM SIGCOMM[C]. US: ACM, 2001. 381-390.

[4] Matei RIPeanu. Mapping the Gnutella Network: Properties of Large-Scale Peer-to-Peer Systems and Implications for System Design[J]. IEEE Internet Computing Journal,2002.46-49.

上一篇:IPv6安全技术分析 下一篇:管理信息系统中动态交叉表的实现方式研究