基于服务情景的Ad Hoc网络服务发现
2018-09-07王新颖
王新颖,李 敏,熊 伟
1(湖北文理学院 数学与计算机科学学院,湖北 襄阳 441053) 2(湖北文理学院理工学院 电子科学与信息工程系,湖北 襄阳 441025) E-mail:wxy200888@126.com
1 引 言
随着Ad Hoc网络应用规模的持续快速增长,针对用户个性化需求的按需服务发现需求日益旺盛,因而,对高精度的Ad Hoc网络服务发现的理论和方法进行深入研究有着极其重要的现实意义.由于Ad Hoc网络所处的网络环境容易受到复杂多变因素的影响,使得传统的服务发现方法在Ad Hoc网络环境下难以获得较高精度[1-4],不适合在Ad Hoc网络中应用.
近年来,为了解决在Ad Hoc网络中存在的复杂多样的服务发现问题,国内外该领域的研究人员做了大量的研究工作.文献[5]基于对等的通信模式,提出一种完全分布式的Ad Hoc网络服务发现机制.文献[6]提出一种CSDM服务发现方法,该机制将簇头节点列表中全部的服务请求按照优先级级别实施动态区分管理操作,不仅较好的改善了服务发现的性能,也提高了整个系统的稳定性.文献[7]提出一个基于上下文的Ad Hoc网络服务发现机制,在该机制中,服务发现的执行策略由服务节点周围的环境来决定.文献[8]基于蚁群算法,提出一种基于可信度的服务发现机制,该机制根据节点在网络中的相互作用和行为计算它们的可信度,并根据可信度进行服务发现.文献[9]提出一种健壮、可伸缩的服务发现方案,该方案通过一致性管理机制,实现了服务发现的健壮性;通过多层次的目标本体,解决了Ad Hoc网络的知识表示问题,实现了服务发现的可扩展性.文献[10]提出一种SSD服务发现方法,该方法考虑了服务节点的计算能力、存储能力、通信能力、剩余电量、位置和网络状态等属性,具有较高的查准率和较好的服务质量.
以上几种服务发现机制广泛存在的不足是:没有合理的考虑功能属性以外的其它因素,即服务情景等非功能属性[11],服务发现的质量还需要更进一步的提高.在Ad Hoc网络环境下,针对具有相同功能的服务,对用户而言,它们在移动性、剩余电量、响应时间和丢包率等服务情景上的表现有所不同,而只有当服务能够满足用户在这些方面的要求时,用户才会考虑这个服务所提供的功能.因此,在Ad Hoc网络应用中,研究基于服务情境的服务发现机制显得尤为重要.
本文提出一种基于服务情景的Ad Hoc网络服务发现方法——SDSS.该Ad Hoc网络服务发现方法在基于语义推理进行功能匹配的基础之上,对符合功能匹配所得到的候选服务集,进一步执行了基于服务情景约束的服务筛选操作和基于服务情景评价的服务排序操作,不仅在一定程度上提高了Ad Hoc网络服务发现的查准率,其服务质量也得到了有效改善.
本文第2节详细分析了SDSS服务发现机制,第3节对提出的Ad Hoc网络服务发现机制进行了实验验证,最后是全文的总结.
2 SDSS服务发现机制
2.1 基于服务情景的Ad Hoc网络服务模型
在Ad Hoc网络中,考虑到服务情景等非功能属性对服务的服务质量(QoS)影响巨大,课题组将Ad Hoc网络的服务模型形式化定义为:
定义1.服务
S=
(1)
在公式(1)中,FP用来代表在Ad Hoc网络中服务的功能属性,具体包含服务名称(SN)、服务描述(SD)、输入信息(SI)及输出信息(SO)等四种功能属性,如公式(2)所示.
FP=
(2)
考虑到服务的输入信息(SI)和输出信息(SO)都是信息的集合,因此,本文用SI={i1,i2…,in}表示服务的输入信息,用SO={o1,o2…,on}表示服务的输出信息.
SP代表Ad Hoc网络中服务的情景属性,具体包含移动性(MO)、剩余电量(RE)、响应时间(RT)、丢包率(PL)等四种服务情景属性,如公式(3)所示.
SP=
(3)
2.2 Ad Hoc网络服务发现架构
本文提出的Ad Hoc网络服务发现架构分散部署在Ad Hoc网络中的簇头节点.如图1所示,该Ad Hoc网络服务发现架构由服务发现模块、注册模块及服务平台模块等三部分构成.当服务发现模块接收到Ad Hoc网络中服务的注册信息后,该模块中的解析器首先对服务注册信息进行解析操作处理,然后,注册模块负责将服务信息(包含功能属性信息和情景属性信息)存储在服务平台的数据库中;当服务发现模块接收到Ad Hoc网络中的服务请求信息后,由服务匹配子模块执行服务匹配过程并进行服务回复.
图1 Ad Hoc网络服务发现架构Fig.1 Architecture of service discovery for Ad Hoc networks
2.3 服务发现
基于服务情景的Ad Hoc网络服务发现由四个阶段组成:
1)依据Ad Hoc网络中服务的功能属性,进行基于语义的功能匹配,得到符合功能匹配的候选服务集;
2)在候选服务集中进行基于服务情景约束的服务筛选操作,删除那些不满足用户服务情景约束的服务;
3)执行基于服务情景的无量纲化处理过程,消除量纲因素对服务情景评价结果所造成的负面影响;
4)执行基于服务情景评价的服务排序操作,进而从上面的候选服务集中得到最优的服务.
2.3.1 基于语义的功能匹配
在公式(2)的基础上,项目组利用服务相似度的方法对Ad Hoc网络中的服务进行功能匹配,进而得到候选服务集.其服务相似度的形式化定义为:
定义2.服务相似度
SimS(S,SR)=α*SimSN(SN,SNR)+
β*SimSD(SD,SDR)+
(4)
γ*SimSI(SI,SIR)+
φ*SimSO(SO,SOR)
在公式(4)中,服务和服务请求的相似度由SimS(S,SR)表示,其中,服务名称的相似度值用SimSN(SN,SNR)来进行表示,用α表示它的权重因子,用SN表示Ad Hoc网络中服务的服务名称信息,用SNR表示用户服务请求的服务名称信息;服务描述的相似度值用SimSD(SD,SDR)来进行表示,用β表示它的权重,用SD表示Ad Hoc网络中服务的服务描述,用SDR表示用户服务请求的服务描述;服务输入信息的相似度值用SimSI(SI,SIR)来进行表示,用γ表示它的权重因子,用SI表示服务的输入信息集合,用SIR表示服务请求的输入信息集合;服务输出信息的相似度值用SimSO(SO,SOR)来进行表示,用φ表示它的权重因子,用SO表示服务的输出信息集合,用SOR表示服务请求的输出信息集合.在本文中,利用文献[12]的方法来计算公式(4)中各项的相似度值,四个权重因子满足α+β+γ+φ=1.
2.3.2 基于服务情景约束的服务筛选
在Ad Hoc网络服务发现过程中,可能存在多个满足功能匹配的服务,但用户感知的QoS服务情景各不相同.公式(3)定义了单个服务的服务情景模型,假设有n个满足条件的候选服务,则它们的服务情景模型可以表示为:
(5)
在公式(5)中,将全部满足功能匹配的服务情景属性描述成为一个矩阵,该矩阵的列代表不同服务的某个情景属性的属性值,该矩阵的行代表候选服务集中的服务.公式(5)支持对Ad Hoc网络服务的服务情景属性的扩展,如果在Ad Hoc网络服务中增加一个服务情景属性,只需要在上述矩阵中增加一列.
在通过功能匹配而获得的候选服务集中,它们的非功能属性各有差异,并不是全部的服务都可以满足服务请求者的约束型需求和偏好型需求,需要删减掉那些不符合请求者需求条件要求的服务.因此,如果一个服务的某个具体的情景属性值没有满足服务请求者的服务情景约束条件,则从候选服务集中将该服务删减.对应公式(5),就是在矩阵中去掉不满足服务情景属性的行.
2.3.3 基于服务情景的无量纲化处理
为了消除量纲和数量级对服务情景的影响,需要对公式(5)中各个服务的服务情景属性值进行无量纲化处理.本文依据服务情景属性矩阵自身的特点,采用线性函数归一化方法[13]将服务情景属性值转换到[0,1]的区间内,具体归一化公式为:
(6)
在公式(6)中,v代表某个服务情景的属性值,vmin与vmax分别代表某个服务情景的最小属性值和最大属性值.
公式(5)经过线性函数归一化方法处理之后,得到服务情景的归一化权值矩阵,用公式(7)表示.
(7)
2.3.4 基于服务情景评价的服务排序
为了从多个符合服务请求者约束型需求条件和偏好型需求条件的候选服务集中发现适合的QoS最优的Ad Hoc网络服务,需要首先计算每个服务的综合服务情景值,用公式(8)表示.
(8)
在公式(8)中,用v(si)来表示服务si的综合服务情景值,用vij来表示服务si的某一个具体的服务情景属性值,用wj来表示服务si的某个服务情景属性值所对应的权重.在本文中,权重wj的和为1.
在公式(8)的基础上,计算各个服务的综合服务情景值并进行排序,得到最优的服务.
3 实验分析
为了评价本文提出的SDSS服务发现方法的性能指标,本文在OMNet++[14]工具中仿真Ad Hoc网络来进行实验分析,分别与CSDM(文献[6]提出的服务发现方法)和SSD(文献[10]提出的服务发现方法)进行性能对比.仿真实验参数如表1所示.
表1 仿真实验参数Table 1 Simulation experimental parameters
在仿真实验中,Ad Hoc网络中的服务请求节点或服务提供节点随机选择,分别仿真了服务发现的查准率、时延、消息开销与节点数量的关系.
图2 服务发现的查准率与节点数量的关系Fig.2 Precision ratio of service discovery vs.number of nodes
从图2可以看出,在三种Ad Hoc网络服务发现方法中,CSDM方法的查准率不高,介于55%和63%之间,这是由于该方法依据关键词的方式进行服务发现,无法对查询的服务进行准确表达.同CSDM方法相比较,SSD方法的查准率要高出31%左右,这是由于该方法依据语义推理来执行服务发现过程,可以对请求者查询的服务进行准确表达.与前面两种方法相比,SDSS方法的查准率最高,原因是该方法在通过语义进行功能匹配的基础上,对满足功能匹配获得的候选服务集,又进行了基于服务情景约束的服务筛选,从候选服务集中筛选掉了那些不满足用户服务情景约束的服务,在一定程度上提高了服务发现的查准率.
图3 时延与节点数量的关系Fig.3 Latency vs.number of nodes
从图3可以看出,伴随着Ad Hoc网络中节点个数的逐渐增长,SDSS、CSDM和SSD三种服务发现方法的时延也相应的不同程度增长,这是由于Ad Hoc网络自身基于多跳的方式进行消息传递,伴随着Ad Hoc网络中节点数目的增长,消息传播在Ad Hoc网络中需要经历的跳数也不同程度的增长,从而造成需要的时延也随之增大.CSDM方法花费的时延最小,这是由于该方法利用基于关键词的匹配模式进行服务发现,算法复杂度小,匹配效率最高.SSD方法的时延最大,这是由于该方法基于全部的服务信息(服务属性、节点属性和环境属性)进行基于语义的推理,算法较为复杂.SDSS方法的时延比SSD方法有所减少,这是由于该方法只对功能属性进行基于语义的服务匹配操作,在一定程度上提高了匹配效率.
从图4可以看出,CSDM与SSD两种方法的平均每秒消息数量这一指标相差并不明显.与CSDM、SSD两种方法比较,SDSS方法的平均每秒消息数量最小,这是由于该方法在基于功能匹配的基础上,利用节点的服务情景属性,对候选服务集进行了服务筛选,删除了那些不满足用户服务情景的Ad Hoc网络服务,从而降低了传递的消息数量.
图4 消息数量与节点数量的关系Fig.4 Number of messages vs.number of nodes
4 结 语
在Ad Hoc网络环境下,针对具有相同功能的服务,对用户而言,它们在服务情景上的表现可能存在一定差异,而只有当服务能够满足用户在这些方面的要求时,用户才会考虑该服务所具有的功能.本文提出一种基于服务情景的Ad Hoc网络服务发现方法,该方法不仅使得Ad Hoc网络服务发现的查准率得到一定程度提高,服务发现的质量也得到了有效改善.