2.3.2 VANETs车载网络服务组合研究现状
由于VANETs特殊的网络环境、 特殊的运动规律及特殊的应用背景, 对其开展服务组合的相关研究存在着很大的困难。 首先, 节点的快速移动性导致拓扑的高度动态性, 底层链路的频繁断裂造成服务组件不定期失效进而引起整个服务组合进程失败, 建立具有伸缩性及动态适应性的服务组合模型对于指导VNAETs下服务资源的动态发现与选择具有重要研究价值和实用价值;其次, 在这种高动态环境下进行执行代价小、 恢复时间短、 服务质量及稳定性有一定约束的服务重建是服务组合机制的有益保障及必要补充; 最后, 上层服务资源的发现与选择最终都是由底层路由寻路来支撑的, 不同应用型网络相应的路由策略截然不同, 设计适应于VANETs服务发现与选择的底层路由算法对于服务组合执行代价和组合效率影响重大。
作为仅有一篇面向车载应用的服务组合文献[21],Jeppe也仅仅提出一个面向普适计算环境的通用服务组合模型 (如图2.5所示), 并没有结合VANETs典型特征进行深入的分析和设计, 不能满足高动态性环境下服务组合及重建的需求。

图2.5 普适计算环境中VANETs服务组合模型
鉴于上述分析, 基于VANETs的服务组合是一个崭新而充满挑战的研究领域, 可直接借鉴的研究成果非常之少, 总结并分析其他自组织网络服务组合研究的要点和思路, 发现一些对于VANETs服务组合具有实用参考价值的思想和方案是本书主要探讨的内容。
(1) 移动自组网服务组合模型研究现状及分析
相对于研究较为成熟的传统网络以及网格环境下的服务组合模型, MANETs下的服务组合模型的研究仍处在起步阶段, 目前并没有完善统一的模型来描述动态网络下服务组合问题。 由于MANETs节点移动性及网络拓扑动态性, 面向传统静态网络的集中式服务组合体系结构已经不再适应, 人们开始将目光转向MANETs环境的服务组合研究上。
近年来针对于MANETs服务组合研究主要分为两大类, 如图2.6所示。第一类是使用代理的方式, 通过设置代理进行服务组合; 第二类是无代理无中心节点的方式, 无需代理进行服务组合。

图2.6 有代理和无代理服务组合机制的比较
早期研究对第一类使用代理的方式关注较多, 其基本思路与传统有线网络接近,只是针对MANETs的特点做出了相应的改进。Kalasapur[22]提出了一种基于分布式代理的组合服务体系结构。 该体系结构将将网络分成有限的小区域, 并在每个小区域设置一个或几个代理来负责服务的发现、 选择和组合。该服务组合体系结构试图在拓扑实时动态变化的网络环境中选择几个稳定、可靠的代理负责服务组合执行,是不适宜的。Guenter[23]提出了一套基于模糊系统 (Fuzzy Systems) 理论来建立服务组合执行路径的方法。 其核心思路是,在服务组合执行路径确立的过程中, 除考虑节点本身的位置信息外, 还参考为每个节点设置的资源管理中间件所返回的该节点的其他辅助信息, 如当前负载状况、 信号强度、 移动速度等, 系统最后通过综合评定选择合适的节点作为服务组合执行路径上的候选服务方案。Chakraborty[24]提出了基于代理的两种服务组合策略, 即基于动态代理选择的方式和基于分布式代理选择的方式, 前者为每个服务组合请求动态的选择一个代理负责服务组合发现、 组合执行, 后者则为每个服务组合请求动态的选择多个代理, 每个代理负责执行组合服务的一部分, 最终共同实现最终的服务组合。 不难发现, 上述基于代理方式的服务组合方法在传统固定网络中是有效、 可行的, 但却无法适应于开放和动态变化的移动自组织网, 特别是节点快速移动、 拓扑实时变化的VANETs环境。
第二类通过无代理方式进行MANETs服务组合的研究是对传统服务组合方法的极大改进, 其适应性及执行效果远远超越第一类服务组合方式。Zhang[25]提出了一种分布式结构的服务组合模型,服务组合执行过程中每一个候选服务的确定都是通过节点自身以及周边节点情况动态决策完成的, 无需服务组合代理, 是一种适应于无线自组织网络拓扑变化性的服务组合机制。此外,Basu等人[26]也提出了一种在无线自组织网络无需代理设置的服务组合方法。 该方法将组合服务建模为一个具有层次结构的任务图, 将用户的组合任务层次化分为不能再拆分的叶子节点, 而不同的子树就代表了不同的服务组合执行方案。 经过分析, 可以看出与有代理服务组合方式相比, 无代理的服务组合模型减轻了代理节点的压力, 将集中决策转化为分布式计算的组合模式将大大降低单节点失效的可能, 提高服务组合执行效率及成功率。
为了有效描述MANETs下分布式应用的服务组合问题, 部分研究者开始用服务层叠网 (Service Overlay Networks, SON) 技术抽象并描述动态网络下服务组合模型问题, SON作为构造的中间件层, 完成并实现向下屏蔽底层网络特征, 向上提供满足不同QoS需求的服务组合方案的功能, 如图2.7所示[27]。

图2.7 基于服务覆盖层的服务组合示意图
其中, 有代表性的基于SON的服务组合框架的研究有:
Gu[28]提出了基于P2P 的服务覆盖网服务组合架构Spider Net。Spider Net将服务Overlay层定义为承载服务组件的主机及之间虚拟链路构成的虚拟层, 并将用户的服务请求映射为虚拟层上的服务间路由, 并提出了该框架下的服务发现、 选择、 组合及恢复功能设计。 然而该框架主要是针对流媒体领域的服务组合而设计的, 具有较大的局限性。
文献 [29] 也面向流媒体应用领域提出了主动服务覆盖层 (Active Overlay Network, AON) 的概念和体系结构, 其基本思路是在现有的Overlay网络上部署主动可控节点, 形成主动可控Overlay层, 服务组件就部署于这些主动节点之上。 由于采用基于主动可控网的平面的服务部署机制, 该框架只适合网络规模较小时的应用场景。
文献[30-32]将动态网络环境下的服务组合建模为服务覆盖层网络和底层网络的叠加的形式, 通过动态绑定服务的原则在SON中寻找到满足客户节点服务组合需求的服务路径。 在文献 [30] 中服务覆盖层SON被抽象为满足一定QoS要求的服务路径 (包括服务节点及服务链路) 构成的服务应用层; 而底层网络则由承载上层服务路径的网络节点组成, 上层的每一条服务路径都对应底层多条物理链路, 如图2.8所示。

图2.8 基于动态网络的服务叠加网示意图
经过分析, 我们发现目前基于SON的服务组合研究存在着一定的问题:
首先, 上述研究均需要预先将用户服务请求的功能进行拆分, 并进行服务抽象, 提取并实例化可实现各个功能的服务组件。 这一关键环节的忽略导致用户服务组合请求与服务组合模型之间对应触发的关系被完全割裂开来,研究不具现实意义。
其次, 网络层呈现的拓扑结构并没有完全体现节点的移动性和下一时刻的链路状况, 不能很好预测并比较支撑服务路径的底层物理链路的稳定性及QoS属性, 对服务路径的选择欠缺对底层节点物理特性的参考。
另外, 应用场景不同, 但基于SON的服务执行路径选择大都采用进化的智能优化算法, 设计单一且复杂度高, 尤其是在底层网络拓扑变化频繁时更为明显。
最后, 节点的移动性导致服务组件及服务路径的频繁失效, SON服务组合体系架构缺乏对于服务组合路径的自适应维护的功能,仅仅依靠服务组合失败后的恢复和重建对于保障动态网络下的服务组合有效进行是远远不够的。
(2)移动自组网服务组合恢复及重建研究现状及分析
静态网络环境下, 服务中断属于偶发事件, 只有少量的工作将相应的服务组合恢复策略从服务组合策略中抽离出来进行深入研究[33,34,35]。动态网络环境下, 节点的快速移动导致服务组件经常失效, 组合服务中断非常频繁。因而, MANETs下的服务组合重建及恢复的研究意义重大。
目前, 基于动态网络下的服务组合恢复研究主要沿着两个方向展开: 一是针对服务组合的性能指标,比如服务响应时间、网络负载等[36,37]。二是针对服务组合失效原因,比如节点移动[38,39]。由于各研究者侧重点不同,其设计的服务组合恢复策略也不尽相同。
为减少服务响应时间与网络负载,Chen[37]等在服务组合分布式执行架构基础上, 建立了一种无代理的动态监测机制来实施服务重建策略。 在该策略中, 每个提供服务的节点都监测下一服务组件的执行情况: 若服务组件成功执行, 则返回给上游监测节点ACK确认报文; 若执行失败, 则监测节点将发起关于失效服务组件的重新发现、 选择进程。 该策略仅从服务中断节点处进行服务的恢复及重建, 大大降低了服务重建时间及网络负载, 提供了服务组合重建效率。此外,Jiang等[38]设计了一种面向MANETs的服务组合及恢复机制。 该算法基于传统的SON分层思路, 在服务层及网络层提炼服务组合及服务重建执行代价指标, 服务恢复策略就是在重建过程中使执行代价最小化。为进一步提高服务组合恢复重建的有效性及快速修复性,Pan[39]和Ren[40]先后提出了通过设置检查点实时监测任务执行情况, 从而应对服务组合失败的服务恢复策略。 具体思路是当检测点发现某个节点失效, 检测点就向任务发起者回复部分完成的服务组合报告, 而任务发起者将发起关于未完成任务的服务组合请求, 重新发起服务发现及选择过程, 建立新的服务执行路径。 为进一步降低服务重建延迟,Roman[41]采用了一种失效服务替换机制,对服务可用性低于门限值的服务进行预先替换。
经过分析不难发现, 目前基于动态网络的服务组合恢复研究主要集中在服务层网络。 事实上组合服务失效的主要原因是由底层网络拓扑动态变化引起的, 单纯的基于服务层的服务重建并没有考虑底层网络的链路可靠性, 很可能造成服务组合再次失败。 服务重建既要尽可能缩减服务路径的恢复时间与执行代价, 又要避开不稳定的区域以保证恢复后组合服务的服务质量及可靠性,因而未来的研究工作可以借鉴服务组合模型中Overlay的设计思路,在服务覆盖层SON上基于跨层设计思路综合考虑服务组合重建策略,如图2.9所示[42]。

图2.9 传统的MANETs下服务组合重建框架
(3)VANETs服务发现协议的研究现状及分析
MANETs中服务发现协议及性能的研究, 也是该领域面临的重要挑战之一, 同样是学术界关注的热点问题。
基于MANETs动态性特点及服务组合的需求, MANETs服务发现的研究主要集中在两个方面: 针对应用层的服务发现和基于跨层设计的服务发现。
关于MANETs应用层的服务发现已经有很多。 其中, O.Ratsimor[43]面向MANETs提出了一种基于代理设置的服务发现协议Allia。 该协议中, 具有类似服务功能的节点构成一个服务域。 节点收到服务组合请求时, 首先查找本地服务列表信息, 若没有可提供的服务, 则进一步查询服务域内的其他节点是否可提供, 大大缩短了服务发现的时间及代价。 与之类似的缩短服务发现时间、提高服务发现效率的服务发现策略还有Gu[44]及Kozar[45],他们提出通过建立虚拟主干网, 并选择代理节点负责服务注册及查询, 进而指导服务发现及组合;Meier[46]等人进一步将网络划分成多个子区域,在每一个区域中实现基于代理的服务发现及选择过程。
基于跨网络层设计的服务发现方式向传统严格分层设计思想提出了挑战,并对服务发现协议的设计提供了一个新的思考模式。 为了避免应用层服务发现及网络层路由发现两次相似的泛洪在网络开销和网络时延上的不尽如人意, Koodli[47]于2002年首次提出了将服务发现功能添加至路由决策过程的跨层设计思路。 这种跨网络协议层设计理念使得服务发现与路由发现一并进行, 有效降低了网络控制开销,提高了资源利用率。在此基础上,Varshavsky[48]等人提出了一种跨层设计的服务组合框架, 同样将服务发现功能添加到路由协议中, 并将服务组合进程划分为服务发现、 服务选择及重新评价三个阶段, 提高了服务发现、 选择及组合的服务质量。
经过上述分析, 在服务发现协议研究中基于跨层设计的服务发现思路是目前比较主流的研究方法, 见图2.10。 然而当前的大多数研究都是在现有路由协议中完成服务发现功能的简单添加, 并没有针对的研究适应于服务发现特性与服务组合需求的网络层路由协议, 服务发现机制与路由寻路自适应的关系没有充分地融合。

图2.10 服务发现研究方法比较
跨层设计思路是将应用层的服务发现融入到现有的网络层路由协议中去,因此我们首先总结并分析目前服务发现研究中所用到的路由协议, 如图2.11所示。
尽管上述研究成功的添加服务发现功能到网络层协议中, 经过一次网络层寻路完成了服务及路由发现的全过程, 但对于保证或者是提高服务路径质量并没有进一步深入研究, 经由此方法选择出来的服务路径往往经不起动态网络拓扑的考验, 存在稳定性差和服务效率低等问题。 因此, 基于动态网络环境特征及服务组合需求设计适应于支撑服务发现与组合的底层路由协议具有重大的学术价值和研究意义, 路由算法要进一步考虑服务选择的自适应性,以满足高动态性的VANETs系统, 提高服务组合的执行效率及成功率。

图2.11 服务发现研究中用到的路由协议