3.2.2 服务实例层

3.2.2 服务实例层

VANETs车载终端是提供服务的载体, 因此VANETs的一些特性, 如有限的传输范围、 多变的网络拓扑结构和频繁的网络断链导致了服务的动态性和不确定性。 事实上任务的执行最终都要通过服务的实例来实现, 服务实例层完成了从服务组合功能需求到具体执行方案的映射过程。 在某节点无线通信范围内, 可能存在多个能实现某特定功能的服务实例, 这些服务实例分布在不同的车载终端上, 各自的宿主环境及QoS性能不尽相同, 因而如何在服务组合执行过程中动态的选择服务实例, 对于服务组合的成败至关重要。 既要满足用户的QoS请求, 又考虑网络的负载均衡, 最终将服务组合请求实例化为具体服务组件组合的形式, 生成尽可能稳定的服务执行路径是该层所要实现的功能。

为清晰描述服务实例层, 我们首先给出相关定义:

定义3.3(服务组件sk):

令sk代表实现功能fi的最小服务个体sk={Ni,fi,Qossi(sk)},它表示在车载终端节点Ni上承载了可完成功能为fi的基本服务sk,其服务质量为Qossi (sk)。

定义3.4(服务路径Ps):

解析用户应用需求后,在服务实例层中根据功能图GF= [f1,f2,…, fm] 发现并选择可实现各功能fi的服务组件sk,依次连接sk所形成的服务链路,称为服务路径Ps。Ps可表达为一个二元组序列{〈N1,sk1〉,〈N2,sk2〉,…,〈Nn,skn〉 }。若sk=0,节点Ni为中转节点;若sk≠0,节点Ni为服务节点。

事实上,能够满足功能服务fi的基本服务可能不止一个,因而存在多条服务路径, 这些服务路径所确定的组合服务的可靠性、 稳定性等非功能属性完全不同, 服务执行路径就是在在这些服务路径中选择一条最优的服务路径。

定义3.5(服务执行路径Pex):

服务执行路径就是从服务路径生成算法所产生的多条服务执行路径中选择的一条最优 (或次优) 路径。

给定功能图GF= [f1,f2,f3],为有效区分各个服务实例,可将sk表达为si,j,k,意义是在节点i上提供功能为fj,且标识符为k的服务。

事实上, 服务实例层中满足用户功能及非功能需求的服务路径往往不止一条。如图3.3所示,满足用户G3= [f1,f2,f3]功能需求的服务路径存在Ps1和Ps2两条。Ps1= {〈N1,0〉,〈N2,s2,1,1〉,〈N6,0〉,〈N9,s9,2,1〉,〈N10, 0〉,〈N13,s13,3,1〉 },它的节点集合NP1= [N1,N2,N6,N9,N10,N13],服务实例集合Sa= [s2,1,1,s9,2,1,s13,3,1];同样,服务路径Ps2可表示为Ps2={〈N1,0〉,〈N3,s3,1,1〉,〈N7,s7,2,1〉 〈N8,0〉,〈N11,s11,3,1〉 },节点集合NP1= [N1,N3,N7,N8,N11],服务实例集合Sa= [s3,1,1,s7,2,1,s11,3,1]。如何从动态网络特性和用户体验两方面进行考虑, 在多条可用的服务路径中挑选最佳路径是VANETs下服务组合模型要解决的关键所在, 也是本章后续章节要深入讨论的问题。

图3.3 服务路径与服务执行路径示意图