基于OSGi的车载网服务共享中间件、实现方法及服务共享方法

文档序号:7811210阅读:264来源:国知局
基于OSGi的车载网服务共享中间件、实现方法及服务共享方法
【专利摘要】本发明公开了基于OSGi的车载网服务共享中间件、实现方法及服务共享方法。本发明的中间件包含分布式服务目录建立及维护机制以及基于分布式服务目录的服务发现机制。本发明将车辆感知设备和应用提供的各种功能虚拟抽象为网络服务,实现应用与设备解耦,为车与车之间服务共享提供统一数据交换平台。
【专利说明】基于OSGi的车载网服务共享中间件、实现方法及服务共享方法

【技术领域】
[0001]本发明涉及车载自组织网络服务共享领域,具体涉及一种基于OSGi的车载网服务共享中间件、实现方法及服务共享方法。

【背景技术】
[0002]以车辆互联形成的车载自组织网络(Vehicular Ad-hoc Network,简称为VANET,也称为车载网和车联网)是自组织网络(Ad-hoc Network)的一种,车载网中,车辆配备有无线通信模块,它们在彼此的通信范围之内可以进行数据交换,无需借助基础设施。
[0003]车载网有很多应用,包括车辆碰撞提醒应用、交通信息服务和其他娱乐或安全应用等。在这些应用中,车辆之间的服务共享为应用的推广提供了有效的帮助。每个车辆可以共享本地数据(例如传感数据和多媒体内容)、资源(例如存储空间和访问Internet)或服务(例如一些算法的实现等)给网络中的其它车辆。不同车辆采用的异构网络设备使得“车车相连”的实现变得尤为困难,而中间件的出现使得异构设备能够以统一通用的接口进行信息交互,其中基于服务架构的中间件模型由于其低耦合、可扩展、灵活性高等特点,受到很多研究者的关注。
[0004]面向服务的设计模型旨在通过统一通用的接口,将不同的功能单元以一种低耦合的方式联系在一起,不同的功能单元可以独立的也可以相互协作的完成各种变化的任务需求。在面向服务架构SOA(Service-Oriented Architecture)中,服务即是应用系统中各个不同的功能单元。OSGi (Open Service Gateway Initiative)是一个1999年成立的开放标准联盟,旨在建立一个开放的服务规范,一方面,为通过网络向设备提供服务建立开放的标准,另一方面,为各种嵌入式设备提供通用的软件运行平台,以屏蔽设备操作系统与硬件的区别。
[0005]DssOSGi (Distributed Service Sharing OSGi)是 OSGi 的分布式扩展,米用的是集中式服务目录的服务发现,在感知层的网关节点(或者SINK节点)中设置了公共的共享服务注册中心。嵌入式感知设备根将提供的基础服务封装在相应的Bundle中,并注册到公共服务注册中心,同时也可以通过公共服务注册中心动态的获取其他感知设备提供的服务并进行服务绑定和信息交互。现有研究仅仅在传统网络中研究了基于中间件的服务共享问题,而在车载自组织网络中目前还没有现成的方案解决其服务共享的问题。面向服务的车载网中间件将车辆感知设备提供的各种功能虚拟抽象为网络服务,实现应用与设备解耦,为车与车之间服务共享提供统一数据交换平台。
[0006]因此,有必要设计一种全新的面向服务的车载网中间件,用于车辆间的服务共享。


【发明内容】

[0007]本发明要解决的技术问题是,提供一种基于OSGi的车载网服务共享中间件、实现方法及服务共享方法,将车辆感知设备提供的各种功能虚拟抽象为网络服务,实现应用与设备解耦,为车与车之间服务共享提供统一数据交换平台。
[0008]本发明提供的技术方案为:
[0009]—种基于OSGi的车载网服务共享中间件,包括感知设备模块、分布式服务共享模块、应用模块、服务目录选举模块和服务发现模块;
[0010]所述感知设备模块与车载感知设备连接,用于将异构的车载感知设备提供的功能封装成具有统一通用的外部访问接口的服务;所述应用模块将车载应用封装成具有统一通用的外部访问接口的服务,实现服务与设备解耦;
[0011]封装是指,将函数实现细节包装、隐藏起来,外界对内部属性的访问只能通过提供的接口实现。这样做既可以实现对内部属性的保护作用,又可以提高软件系统的可维护性。只要对外提供的接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响。参考文献:http://baike.baidu.com/view/125370.htm ? fr = aladdin。
[0012]所述服务目录选举模块根据车辆的通信能力、稳定性及连通性在其一跳通信范围内的邻居车辆中选举产生服务目录车辆,该服务目录车辆的邻居车辆加入其成员车辆列表,该服务目录车辆称为其成员车辆的本地服务目录车辆;服务目录车辆建立服务索引表,用于存储服务提供者的服务信息,服务信息包括服务提供者ID、服务有效时间和服务属性;所述服务目录选举模块还进行服务目录车辆的维护;
[0013]所述分布式服务共享模块用于将本车辆的感知设备模块和应用模块中封装的服务发布为远程网络服务;并将服务信息注册到本地服务目录车辆上,供其他车辆查询;车辆之间通过分布式服务共享模块无线连接;
[0014]当服务请求者有服务请求时,通过本地服务目录车辆的服务发现模块在服务目录车辆间查询所需要的服务;
[0015]本地服务目录车辆查询到所需要的服务后,把服务信息回复给服务请求者,服务请求者将回复的服务信息中的服务提供者ID作为目的地址,通过分布式服务共享模块调用该服务提供者的服务。
[0016]进一步地,所述车载感知设备包括GPS、摄像头和传感器。
[0017]一种基于OSGi的车载网服务共享中间件的实现方法,所述基于OSGi的车载网服务共享中间包括感知设备模块、分布式服务共享模块、应用模块、服务目录选举模块和服务发现模块;
[0018]所述感知设备模块与车载感知设备连接,用于将异构的车载感知设备提供的功能封装成具有统一通用的外部访问接口的服务;所述应用模块将车载应用封装成具有统一通用的外部访问接口的服务,实现服务与设备解耦;
[0019]所述服务目录选举模块根据车辆的通信能力、稳定性及连通性在其一跳通信范围内的邻居车辆中选举产生服务目录车辆,该服务目录车辆的邻居车辆加入其成员车辆列表,该服务目录车辆称为其成员车辆的本地服务目录车辆;服务目录车辆建立服务索引表,用于存储服务提供者的服务信息,服务信息包括服务提供者ID、服务有效时间和服务属性;所述服务目录选举模块还进行服务目录车辆的维护;
[0020]所述分布式服务共享模块用于将本车辆的感知设备模块和应用模块中封装的服务发布为远程网络服务;并将服务信息注册到本地服务目录车辆上,供其他车辆查询;车辆之间通过分布式服务共享模块无线连接;[0021 ] 当服务请求者有服务请求时,通过本地服务目录车辆的服务发现模块在服务目录车辆间查询所需要的服务;
[0022]本地服务目录车辆查询到所需要的服务后,把服务信息回复给服务请求者,服务请求者将回复的服务信息中的服务提供者ID作为目的地址,通过分布式服务共享模块调用该服务提供者的服务。
[0023]进一步地,所述车载感知设备包括GPS、摄像头和传感器。
[0024]进一步地,所述选举产生服务目录车辆具体包括:
[0025]a)邻居发现过程:寻找车辆η的邻居车辆,得到车辆η的度数dn ;车辆η的度数是指车辆η的邻居车辆的数目;
[0026]b)计算车辆η度数差Dn= |dn-M|,其中M为理想度数;理想度数的定义为:由于无线网络信道特点,为了保证MAC协议的有效性,一个服务目录车辆所能承担的最大成员数是有限制的,称此限制为理想度数。参考文献:CHINARA S,RATH S K.A survey on one-hopclustering algorithms in mobile AdHoc networks[J].Journal of Network and SystemManagement,2009。
[0027]c)计算车辆n与其邻居车辆的相对移动性:Μη = Σ ^V1-VnI,其中¥?表示车辆η的速度,Vi表示车辆η的邻居车辆i的速度;
[0028]d)计算车辆η的邻居车辆中已被服务目录覆盖的车辆数与理想度数的差值Ln =In-M I,其中M为理想度数;已被服务目录覆盖的车辆是指已经被其他服务目录车辆的成员车辆列表包含的车辆;
[0029]e)计算车辆η综合权值:In = ClXDn+c2Xc4XMn+c3XLn ;其中Cl、c2、C3为权值因子,ci+c2+c3 = 1,表示服务目录车辆的通信能力、稳定性及连通性的相对重要程度,C4为校正因子,用以调整与其他指标的数量级差别;
[0030]f)若车辆η的综合权值比所有直接邻居车辆的综合权值都要小,则η成为服务目录车辆,车辆η的邻居车辆加入该服务目录车辆的成员车辆列表;能收到两个服务目录车辆消息的车辆成为网关车辆,负责服务目录车辆间的通信;
[0031]g)重复a)至f)步直到所有车辆都属于某个服务目录车辆的成员车辆或本身为服务目录车辆;
[0032]所述服务目录车辆的维护具体包括:
[0033]1.计算车辆V与本地服务目录车辆η的距离d ;若d大于有效通信半径时转ii ;若d小于有效通信半径,且车辆V的综合权值Iv小于其本地服务目录车辆的综合权值In,则转iii ;
[0034]i1.车辆η寻找新的服务目录车辆:若找到新的服务目录车辆,则加入该服务目录车辆的成员车辆列表;否则进行步骤a) — g)的服务目录车辆的选举,结束;
[0035]ii1.通过蒙特卡洛方法,计算替换服务目录车辆的接受概率:P = e~_W,并产生一个[0,I)的随机数r ;通过Java语言开发工具中包含的产生随机数的函数Math.Random(),调用Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个随机选择的数,在该范围内(近似)均匀分布。
[0036]iv.若r大于p,则车辆V替换原服务目录车辆η成为服务目录车辆,原服务目录车辆转为成员车辆;否则,服务目录车辆不变。
[0037]车辆V与本地服务目录车辆η的距离d是基于车载GPS采集的数据计算,其原理为:地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。如果以O度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离。设第一点A的经纬度为(LonA,LatA),第二点B的经纬度为(LonB,LatB),按照O度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取 90-纬度值(90-Latitude),南纬取 90+ 纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA,MLatA)和(MLonB,MLatB)。假设应用于北半球,则仅对经度作正负的处理,而不对纬度作90-Latitude处理,那么根据三角推导,可以得到计算两点距离Distance (单位:千米)的公式:
[0038]C = sin (MLatA)*sin(MLatB)*cos(MLonA-MLonB)+cos (MLatA)*cos(MLatB)
[0039]Distance = R*arccos(C)*Pi/180。
[0040]进一步地,所述M为10。
[0041]进一步地,所述C1 和 C2 为 0.35,C3 为 0.3,C4 为0.1。
[0042]进一步地,车辆之间无线连接方式为DSRC或者WLAN。
[0043]一种基于OSGi的车载网服务共享中间件的服务共享方法,其特征在于:包括以下步骤:
[0044]步骤一:服务注册;
[0045]步骤二:服务请求;
[0046]步骤三:服务回复;
[0047]所述步骤一具体包括:服务提供者P将自己的服务S的服务信息注册到本地服务目录车辆D,D存储服务信息并记录服务提供者P的信息,存储字段如下:〈服务提供者ID,有效时间,服务属性,本地服务目录ID> ;
[0048]其中服务提供者ID是指提供服务的车辆的ID ;有效时间是指该服务的有效时间,超过有效时间D会将该服务信息从服务索引表上删除;服务属性是指服务名称和该服务是否为实时服务;本地服务目录ID是指本地服务目录车辆的ID ;
[0049]所述步骤二具体包括:车辆Q将所需的服务描述R发送给本地服务目录车辆D,服务描述R,即请求消息字段如下〈服务请求者ID,生存时间,服务属性> ;
[0050]其中服务请求者ID是指请求服务的车辆ID ;生存时间是指服务请求的生存时间,超过生存时间该服务请求就不再传播;服务属性是指服务名称和该服务是否为实时服务;
[0051]所述步骤三具体包括,D匹配已注册的服务信息,如果D存储了相应的未过期的服务信息,则D向Q回复该注册信息;
[0052]如果没有匹配到相应的服务信息,D通过以服务目录车辆为顶点,目录车辆和网关车辆之间的链路为边,组建的多播树将服务描述R进行多播,服务描述是服务请求车辆发送给本地服务目录车辆的消息,用于描述所需要的服务。多播消息是本地服务目录车辆通过多播树发送给其他服务目录车辆的消息,不仅包含有所需要的服务描述,还加入了多播跳数用于控制消息的传输跳数。多播消息字段如下:〈源目录ID,生存时间,多播跳数,服务属性> ;
[0053]其中服务请求者ID是指请求服务的车辆的ID ;生存时间是指服务请求的生存时间,超过生存时间该服务请求就不再传播;多播跳数是指通过设定多播的跳数,能控制多播消息的传输跳数;服务属性是指服务名称和该服务是否为实时服务;
[0054]获得多播消息的目录车辆对服务描述R进行匹配,如果匹配成功则将匹配的服务信息回复给D,D存储该服务信息并且向Q回复该服务信息,Q将回复的服务信息中的服务提供者ID作为目的地址,通过分布式服务共享模块调用该服务提供者的服务;
[0055]否则,D在该多播消息生命周期过期时向Q回复无请求服务消息,Q取消该次服务请求。
[0056]进一步地,所述服务信息注册采用租赁的形式,服务提供者P需要周期性地到本地服务目录车辆D处进行服务延续租赁,D更新服务索引表;如果P没有延续租赁,那么D会将P的所有服务信息从服务索引表上删除。
[0057]进一步地,所述服务目录车辆上的服务信息通过一跳内的服务提供者的注册获得,还通过服务目录车辆间搜索服务时记录反馈信息获得。
[0058]有益效果:
[0059](I)本发明提供的基于OSGi的车载网服务共享中间件、实现方法及服务共享方法,将车辆感知设备提供的各种功能虚拟抽象为网络服务,实现应用与设备解耦,屏蔽不同车型底层的异构设备,为车与车之间服务共享提供统一数据交换平台。
[0060](2)分布式目录建立及维护机制,选取车辆的通信能力、移动性及连通性作为服务目录选举的重要指标,使服务目录在动态的车载网环境中保持稳定,并实现大范围服务发现。分布式目录维护机制采用蒙特卡洛思想的容忍策略,对服务目录车辆竞争进行优化,以提闻算法的稳定性。
[0061](3)基于分布式服务目录的服务发现机制使得车辆在动态环境中,在车辆随时进入或离开网络的情况下仍能够有效而及时地进行服务发现,寻找到服务提供者的相关信肩、O

【专利附图】

【附图说明】
[0062]图1是本发明基于OSGi的车载网服务共享中间件(VssOSGi)的整体框架图;
[0063]图2为本发明基于分布式服务目录的服务发现架构;
[0064]图3为本发明服务发布和发现过程示意图;
[0065]图4是本发明的服务共享中间件应用场景图。

【具体实施方式】
[0066]以下结合附图和【具体实施方式】对本发明进行进一步说明:
[0067]实施例1:
[0068]一、基于OSGi的车载网服务共享中间件(VssOSGi)的整体框架
[0069]本发明基于OSGi的车载网服务共享中间件(VssOSGi)的整体框架设计如图1所示:
[0070]VssOSGi中间件平台基于OSGi框架,由下至上扩展4层Bundle,分别是DeviceBundle、DSD Service Discovery Bundle、DssOSGi Bundle 和 App Bundle (即感知设备模块、分布式服务目录服务发现模块、分布式服务共享模块和应用模块)。
[0071]车载嵌入式感知设备如GPS、摄像头、传感器等,根据各自的功能或网络角色将其提供的基础服务封装在相应的Device Bundle中,中间件平台可以通过这些Bundle直接控制相应设备。车载应用等业务逻辑功能封装在App Bundle,可通过DssOSGi发布为远程服务,然后注册到本地服务目录车辆上,共享给其他车辆。
[0072]DSD Service Discovery Bundle (Distributed Service Directory ServiceDiscovery)分布式服务目录服务发现Bundle,能通过Service Directory Elect1n模块(即服务目录选举模块)选举产生分布式服务目录车辆,同时Service DiscoveryMechanism模块(即服务发现模块)负责在服务目录车辆间进行服务发现。网络中的每辆车都可以作为服务目录车辆或成员车辆,成员车辆通过上层DssOSGi把本地设备感知服务注册到本地服务目录车辆上,同时车载应用也可以通过本地服务目录车辆的DSD ServiceDiscovery Bundle获取其他服务目录车辆上已经注册的共享服务,从而实现车辆间服务共享。
[0073]车辆之间通过DssOSGi无线连接。DssOSGi已具有远程服务调用和在本地服务目录进行服务发现的功能。因此,DssOSGi根据DSD Service Discovery Bundle服务目录的选举结果决定是否将本车辆设置为本地服务目录车辆。同时,车载应用能通过DssOSGi在本地服务目录车辆上获取其他车辆提供的服务并进行服务绑定和调用,从而完成车辆间服务共孚。
[0074]二、基于分布式服务目录的服务发现方法:
[0075]车载网中某辆车提供的服务若要共享给其他的车辆,一个重要的前提是别的车辆需要知道这个服务的提供者是哪些车辆,因此服务发现是服务共享的重要基础。
[0076]车载自组织网络是自组织形成的,车辆随时可能加入或离开网络,容易导致服务发现失效,降低服务发现的效率。为了适应动态的网络环境,实现大范围的服务发现并且降低通信开销的目的,本发明所采取分布式服务目录的服务发现架构以适应车辆在车载自组织网络下的服务发现,如图2所示。
[0077]服务目录即存储和维护网络中共享服务信息的个体。服务提供者在服务目录上注册自己的服务描述信息,当服务请求者向服务目录发出服务请求时,服务目录可以通过查找本地的服务描述信息来回答。分布式服务目录即服务目录节点散布到网络的各个地方,每个服务目录都存储了网络中若干服务,当一个服务目录节点无法回答某个服务请求的时候,它会将这个服务请求转发到其他的服务目录上以完成全局的服务发现。
[0078]I)车辆在其一跳通信范围内的邻居车辆中选举一个车辆作为服务目录车辆,该服务目录车辆的邻居车辆加入其成员车辆列表,同时收到两个服务目录车辆存在消息的车辆作为网关车辆。目录车辆负责缓存可用的共享服务信息,服务的发现在服务目录车辆间进行,网关车辆负责服务目录车辆间的通信,比起传统的无服务目录的服务发现方式,本专利的成员车辆不需要缓存服务信息,网络中也不用洪泛服务请求消息,服务的发现也不依赖路由协议。
[0079]2)服务发布和发现需经过三个过程,分别是服务注册,服务请求与服务回复。
[0080]首先,服务提供者P需要将自己的服务S的服务信息注册到本地服务目录车辆D,服务注册采用租赁的形式,P需要周期地到D处进行服务延续租赁,服务更新也在此刻进行。如果P没有对自己的服务进行延续租赁,那么D会将P的所有服务信息从服务索引表上删除掉。服务注册信息既可以通过一跳内的服务提供者的注册获得,又可以通过服务目录车辆间搜索服务时记录反馈信息获得。D存储服务信息的同时也记录服务提供者P的信息,存储字段如下:< 服务提供ID,有效时间,服务属性,本地服务目录ID>
[0081]另一方面,车辆Q如果有服务请求,请求消息字段如下〈服务请求者ID,生存时间,服务属性 >,将所需的服务描述R发送给本地服务目录车辆D,D匹配注册的信息,如果D存储了相应的未过期注册信息,则D向Q回复该注册信息;如果,没有匹配到相关信息,D通过以服务目录车辆为顶点,目录车辆和网关车辆之间的链路为边组建的多播树将R多播,多播消息字段如下:〈源目录ID,生存时间,多播跳数,服务属性〉。获得多播信息的目录车辆对R进行服务描述匹配,如果匹配成功则将匹配信息回复D,D存储该注册信息并且向Q回复该信息,否则D在该多播消息生命周期过期时向Q回复无请求服务消息。由于目录间都采用树结构进行多播,所以避免了泛洪,同时节约了网络带宽,服务发布和发现过程如图3所示。
[0082]三、分布式服务目录建立及维护机制设计:
[0083]以往的分布式服务目录选择算法主要针对移动自组织网络提出,没有充分利用车载自组织网络的优势和特点。针对车载自组织网络中车辆移动特性,本文提出一种面向稳定和共享性的基于权值的分布式目录选择算法(Stability And Sharing-orientedWeight-based Algorithm, SSWA),将车辆相对邻居车辆的移动性和与其他服务目录的连通性作为服务目录选举的重要指标,并设计了基于蒙特卡洛思想的容忍策略对服务目录竞争进行优化以提高算法的稳定性。
[0084]I)综合权值的计算
[0085]为保证所选服务目录车辆的通信能力,综合权值以车辆η的度数与理想度数的差值Idn-Ml作为一个分量。由于受交通规则限制车辆速度保持在一定范围内,相对移动性低的车辆担任服务目录车辆有利于算法的稳定性,故引入相对移动性指标,即车辆和所有邻居车辆速度矢量差的模之和。另外,由于网关车辆是服务目录间通信的桥梁,服务目录拥有的网关车辆越多意味着连通性越强,更利于提高服务发现的能力,故把车辆η的邻居车辆中已被服务目录覆盖车辆数与理想度数的差值Iin-Ml作为一个分量。本文假定车辆配备有定位和导航装置,可以直接获取位置和速度矢量信息。
[0086]综合考虑车辆的通信覆盖能力、相对邻居车辆的移动性及车辆与其他服务目录的连通性,定义车辆η的综合权值如下:
[0087]In = C1X Dn+c2 X C4 X Mn+c3 X Ln
[0088]其中:Mn表示车辆η的相对移动性,Mn = Σ j I V1-Vn |,i为η邻居车辆,Dn表示车辆η的度数差,Dn = I dn-M I,Ln表示车辆η的邻居车辆中已被服务目录覆盖的车辆数与理想度数的差值,Ln= I In-M |,车辆η的In值越小,越适合作为服务目录车辆。(^、(32、(33为权值因子,ci+c2+c3= 1,表示各项指标的相对重要程度,根据车载自组织网络的不同状态(车辆通信半径、车辆速度)取不同的值。公式中C4为校正因子,用以调整与其他指标的数量级差别。
[0089]2)服务目录车辆的形成
[0090]在服务目录的形成阶段,主要是要进行服务目录车辆选举。车辆首先进行广播,将自身状态(如ID,速度,位置)告知邻居车辆,邻居发现过程之后,根据所得到的局部信息,计算每个车辆的综合权值并告知邻居车辆。服务目录车辆选举的步骤如下:
[0091]a)邻居发现过程:寻找车辆η的邻居车辆,得到车辆η的度数dn ;
[0092]b)计算每个车辆η度数差Dn = I dn-M |,M为理想度数
[0093]c)计算每个车辆η与其邻居车辆的相对移动性=Mn=Ei I V1-Vn |,i为η邻居车辆
[0094]d)计算每个车辆η的邻居车辆中已被服务目录覆盖的车辆数与理想度数的差值Ln= I ln-M|,M为理想度数
[0095]e)计算车辆 η 综合权值:In = C1X Dn+c2 Xc4X Mn+c3 X Ln
[0096]f)若车辆η的综合权值比所有直接邻居车辆都要小,则η成为服务目录车辆,η的邻居车辆加入该服务目录车辆的成员车辆列表;能收到两个服务目录车辆消息的车辆成为网关车辆,负责进行服务目录车辆间的通信;
[0097]g)重复a)至f)步直到服务目录车辆建立过程完成。所有车辆都属于某个服务目录车辆的成员车辆或本身为服务目录车辆。
[0098]3)服务目录车辆的维护
[0099]服务目录车辆的更新是由车辆移动导致通信状态变化而触发的。成员车辆一直监控服务目录车辆的信号强度,当车辆与服务目录车辆之间的距离增大到超出有效通信范围时,车辆将加入一个邻居服务目录车辆,服务目录车辆更新成员车辆列表。如果存在某个车辆无法被任何服务目录车辆所覆盖,则触发服务目录车辆选举过程。
[0100]当某个车辆移动到服务目录车辆的通信范围内,且权值比服务目录车辆要小时,产生服务目录车辆竞争。在无线通信环境下,无线信道本身存在不稳定性如多道衰减、干扰等,通信状态的不稳定导致车辆权值的抖动。当两个车辆权值相差不大时,通过蒙特卡洛优化,按小概率选择替换,从而避免了由于无线网络信道的不稳定因素造成服务目录的频繁更替,这样可以增强服务目录的稳定性。
[0101]蒙特卡洛方法是改变局部搜索算法中下降规则所得的一种方法,其基本思想是以一定的概率接受一个相对来说较坏的状态。在服务目录车辆的维护阶段,当服务目录车辆η遭遇车辆V的竞争In > Iv时,按照概率(1-P)进行服务目录替换,定义接受概率:
P =以概率P接受权值大的服务目录车辆继续担任服务目录车辆角色。指数函数
y = ex在自变量X小于O时单调递增,且当自变量X无限小时函数值y趋近于O。将接受概率P定义为指数函数,从而满足η与V权值相差越大,替换概率越大,当In = Iv时,P = I。服务目录车辆维护的步骤如下:
[0102]1.计算车辆V与所属服务目录车辆η的距离d。若d大于有效通信半径时转ii ;若d小于有效通信半径且车辆V权值Iv小于其所属服务目录车辆权值In转iii ;
[0103]i1.车辆η寻找新服务目录车辆。若找到新服务目录,则加入该服务目录;否则进行服务目录选举,结束。
[0104]ii1.计算替换服务目录的接受概率:p = e(Iv_In),并产生一个[0,I)的随机数r ;
【Java语言开发工具包含产生随机数的函数,调用这个Math.Random ()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0, 1.0)的左闭右开区间,返回值是一个随机选择的数,在该范围内(近似)均匀分布。]
[0105]iv.若r大于p,则车辆V替换原服务目录η成为服务目录车辆,原服务目录车辆转为成员车辆。
[0106]实施例2:
[0107]本发明的核心在于提供一个将车辆感知设备的各种功能虚拟抽象为网络服务,实现车辆间的服务共享的平台:
[0108]I)每台车辆的车载嵌入式网关上部署VssOSGi中间件,车载嵌入式感知设备如GPS、摄像头、传感器等,根据各自的功能或网络角色将其提供的基础服务封装在相应的Device Bundle中,中间件平台可以通过这些Bundle直接控制相应设备。车载应用等业务逻辑功能封装在App Bundle。车辆之间通过DSRC【即Dedicated Short RangeCommunicat1ns (专用短程通信技术)】或者WLAN相互连接。
[0109]2)车辆在行驶时按一定时间间隔向邻居车辆发送地理位置及速度等信息(由具体的车载网路由协议决定),车辆根据所得到的局部信息,综合权值并告知邻居车辆,综合权值小的自动成为服务目录;服务目录的邻居车辆加入该车辆的成员列表;收到两个服务目录车辆消息的车辆成为网关车辆,负责进行服务目录车辆间的通信。
[0110]3)车辆有服务请求时,将请求发送到本地服务目录车辆,通过服务目录间的服务发现找到服务提供者IP地址,最后,服务请求者通过服务提供者的IP地址成功调用其服务,实现车辆间的服务共享。
[0111]图4为通过实现VssOSGi中间件平台进行车载自组网络下的服务共享实例。车辆9发起一次对服务S的请求,首先将请求发送给本地服务目录车辆1,车辆I查询本地内存是否有服务S,因为车辆I中没有存储该类服务信息,因此,车辆I通过图中的网关车辆将服务请求消息转发给其他服务目录车辆2、3、4、5、6、7、8。因为车辆1已经在其本地服务目录车辆4上注册服务S,因此4查看本地内存发现有匹配的服务信息,于是将此信息反馈回车辆1,车辆I获得该注册信息将此信息存储,然后将此消息发送给9,车辆9再对车辆10的服务进行绑定和调用,至此服务共享完成。
【权利要求】
1.一种基于OSGi的车载网服务共享中间件,其特征在于:包括感知设备模块、分布式服务共享模块、应用模块、服务目录选举模块和服务发现模块; 所述感知设备模块与车载感知设备连接,用于将异构的车载感知设备提供的功能封装成具有统一通用的外部访问接口的服务;所述应用模块将车载应用封装成具有统一通用的外部访问接口的服务,实现服务与设备解耦; 所述服务目录选举模块根据车辆的通信能力、稳定性及连通性在其一跳通信范围内的邻居车辆中选举产生服务目录车辆,该服务目录车辆的邻居车辆加入其成员车辆列表,该服务目录车辆称为其成员车辆的本地服务目录车辆;服务目录车辆建立服务索引表,用于存储服务提供者的服务信息,服务信息包括服务提供者ID、服务有效时间和服务属性;所述服务目录选举模块还进行服务目录车辆的维护; 所述分布式服务共享模块用于将本车辆的感知设备模块和应用模块中封装的服务发布为远程网络服务;并将服务信息注册到本地服务目录车辆上,供其他车辆查询;车辆之间通过分布式服务共享模块无线连接; 当服务请求者有服务请求时,通过本地服务目录车辆的服务发现模块在服务目录车辆间查询所需要的服务; 本地服务目录车辆查询到所需要的服务后,把服务信息回复给服务请求者,服务请求者将回复的服务信息中的服务提供者ID作为目的地址,通过分布式服务共享模块调用该服务提供者的服务。
2.根据权利要求1所述的基于OSGi的车载网服务共享中间件,其特征在于:所述车载感知设备包括GPS、摄像头和传感器。
3.一种基于OSGi的车载网服务共享中间件的实现方法,其特征在于:所述基于OSGi的车载网服务共享中间包括感知设备模块、分布式服务共享模块、应用模块、服务目录选举模块和服务发现模块; 所述感知设备模块与车载感知设备连接,用于将异构的车载感知设备提供的功能封装成具有统一通用的外部访问接口的服务;所述应用模块将车载应用封装成具有统一通用的外部访问接口的服务,实现服务与设备解耦; 所述服务目录选举模块根据车辆的通信能力、稳定性及连通性在其一跳通信范围内的邻居车辆中选举产生服务目录车辆,该服务目录车辆的邻居车辆加入其成员车辆列表,该服务目录车辆称为其成员车辆的本地服务目录车辆;服务目录车辆建立服务索引表,用于存储服务提供者的服务信息,服务信息包括服务提供者ID、服务有效时间和服务属性;所述服务目录选举模块还进行服务目录车辆的维护; 所述分布式服务共享模块用于将本车辆的感知设备模块和应用模块中封装的服务发布为远程网络服务;并将服务信息注册到本地服务目录车辆上,供其他车辆查询;车辆之间通过分布式服务共享模块无线连接; 当服务请求者有服务请求时,通过本地服务目录车辆的服务发现模块在服务目录车辆间查询所需要的服务; 本地服务目录车辆查询到所需要的服务后,把服务信息回复给服务请求者,服务请求者将回复的服务信息中的服务提供者ID作为目的地址,通过分布式服务共享模块调用该服务提供者的服务。
4.根据权利要求3所述的基于OSGi的车载网服务共享中间件的实现方法,其特征在于,所述选举产生服务目录车辆具体包括: a)邻居发现过程:寻找车辆η的邻居车辆,得到车辆η的度数dn;车辆η的度数是指车辆η的邻居车辆的数目; b)计算车辆η度数差Dn= I dn-M I,其中M为理想度数; c)计算车辆η与其邻居车辆的相对移动性:Μη= Σ ^V1-VnI,其中¥?表示车辆η的速度,Vi表示车辆η的邻居车辆i的速度; d)计算车辆η的邻居车辆中已被服务目录覆盖的车辆数与理想度数的差值Ln=In-M I,其中M为理想度数;已被服务目录覆盖的车辆是指已经被其他服务目录车辆的成员车辆列表包含的车辆; e)计算车辆η综合权值:In=ClXDn+C2XC4XMn+C3XLn;其中Cl、c2、c3为权值因子,表示服务目录车辆的通信能力、稳定性及连通性的相对重要程度,Cl+c2+c3 = 1,C4为校正因子; f)若车辆η的综合权值比所有直接邻居车辆的综合权值都要小,则η成为服务目录车辆,车辆η的邻居车辆加入该服务目录车辆的成员车辆列表;能收到两个服务目录车辆消息的车辆成为网关车辆,负责服务目录车辆间的通信; g)重复a)至f)步直到所有车辆都属于某个服务目录车辆的成员车辆或本身为服务目录车辆; 所述服务目录车辆的维护具体包括: 1.计算车辆V与本地服务目录车辆η的距离d ;若d大于有效通信半径时转ii ;若d小于有效通信半径,且车辆V的综合权值Iv小于其本地服务目录车辆的综合权值In,则转iii ; ?.车辆η寻找新的服务目录车辆:若找到新的服务目录车辆,则加入该服务目录车辆的成员车辆列表;否则进行步骤a) — g)的服务目录车辆的选举,结束; ii1.通过蒙特卡洛方法,计算替换服务目录车辆的接受概率:P=并产生一个[O, I)的随机数r ; iv.若r大于P,则车辆V替换原服务目录车辆η成为服务目录车辆,原服务目录车辆转为成员车辆;否则,服务目录车辆不变。
5.根据权利要求4所述的基于OSGi的车载网服务共享中间件的实现方法,其特征在于,所述M为10。
6.根据权利要求4所述的基于OSGi的车载网服务共享中间件的实现方法,其特征在于,所述 C1 和 C2 为 0.35,C3 为 0.3,C4 为 0.1。
7.根据权利要求3或4所述的基于OSGi的车载网服务共享中间件的服务共享方法,其特征在于,车辆之间无线连接方式为DSRC或者WLAN。
8.一种基于OSGi的车载网服务共享中间件的服务共享方法,其特征在于:包括以下步骤: 步骤一:服务注册; 步骤二:服务请求; 步骤三:服务回复; 所述步骤一具体包括:服务提供者P将自己的服务S的服务信息注册到本地服务目录车辆D,D存储服务信息并记录服务提供者P的信息,存储字段如下:〈服务提供者ID,有效时间,服务属性,本地服务目录ID> ; 其中服务提供者ID是指提供服务的车辆的ID ;有效时间是指该服务的有效时间,超过有效时间D会将该服务信息从服务索引表上删除;服务属性是指服务名称和该服务是否为实时服务;本地服务目录ID是指本地服务目录车辆的ID ; 所述步骤二具体包括:车辆Q将所需的服务描述R发送给本地服务目录车辆D,服务描述R字段如下〈服务请求者ID,生存时间,服务属性> ; 其中服务请求者ID是指请求服务的车辆ID ;生存时间是指服务请求的生存时间,超过生存时间该服务请求就不再传播;服务属性是指服务名称和该服务是否为实时服务; 所述步骤三具体包括,D匹配已注册的服务信息,如果D存储了相应的未过期的服务信息,则D向Q回复该注册信息; 如果没有匹配到相应的服务信息,D通过以服务目录车辆为顶点,目录车辆和网关车辆之间的链路为边,组建的多播树将服务描述R进行多播,多播消息字段如下:〈源目录ID,生存时间,多播跳数,服务属性〉; 其中服务请求者ID是指请求服务的车辆的ID ;生存时间是指服务请求的生存时间,超过生存时间该服务请求就不再传播;多播跳数是指通过设定多播的跳数,能控制多播消息的传输跳数;服务属性是指服务名称和该服务是否为实时服务; 获得多播消息的目录车辆对服务描述R进行匹配,如果匹配成功则将匹配的服务信息回复给D,D存储该服务信息并且向Q回复该服务信息,Q将回复的服务信息中的服务提供者ID作为目的地址,通过分布式服务共享模块调用该服务提供者的服务; 否则,D在该多播消息生命周期过期时向Q回复无请求服务消息,Q取消该次服务请求。
9.根据权利要求8所述的基于OSGi的车载网服务共享中间件的服务共享方法,其特征在于,所述服务信息注册采用租赁的形式,服务提供者P需要周期性地到本地服务目录车辆D处进行服务延续租赁,D更新服务索引表;如果P没有延续租赁,那么D会将P的所有服务信息从服务索引表上删除。
10.根据权利要求8所述的基于OSGi的车载网服务共享中间件的服务共享方法,其特征在于,所述服务目录车辆上的服务信息通过一跳内的服务提供者的注册获得,还通过服务目录车辆间搜索服务时记录反馈信息获得。
【文档编号】H04L29/08GK104135532SQ201410394699
【公开日】2014年11月5日 申请日期:2014年8月12日 优先权日:2014年8月12日
【发明者】罗娟, 潘璆, 宋艳超, 何文凤, 郭亚岭 申请人:湖南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1