王泽宏 刘建华 洪宇庭 郑思浩
摘要:车辆自组织网络( vehicle ad hoc network.VANET)是一种新兴的物联网技术,由于车辆存在着当前速度、剩余油量等独有的上下文条件,提出了一套基于VANET中间件的车辆服务推荐系统。通过车辆与路边单元(RSU)之间的通信获取服务信息,基于当前车辆上下文与用户偏好,凭借智慧车辆自身的计算能力进行服务的筛选。测试结果表明,该系统具有良好的可行性,其产生的推荐信息将随着用户的使用而越来越符合用户偏好。
关键词:Android;移动App;车联网;物联网;推荐系统
中图分类号:TP393 文献标识码:A i
文章编号:1009-3044(2020)22-0090-04
开放科学(资源服务)标识码(OSID):
1 背景
车辆自组织网络( vehicle ad hoc network,VANET)是一种新型的物联网技术,是互联网汽车、智能驾驶技术[1]、智慧交通[2]的重要组成部分,吸引了越来越多来自工业界和学术界的关注。车辆自组织网络由四个部分组成,分别是车辆节点、路边通信单元(RSU)、边缘计算节点和软件定义的云平台。目前的研究主要集中在感知数据收集[3]、网络安全通信[4]、安全驾驶[5]等领域,但是随着车联网的发展,车联网中的信息激增也成了一个不可忽视的问题,如何根据用户的需求为用户推荐个性化的服务也随之成为了一个急需解决的难题。
随着科技的进步,当前车辆搭载了各式传感器,例如速度传感器,位置传感器,距离传感器等,同时,智能车辆自身的计算能力也不断加强,有了较为可观的计算和存储能力。由于不同品牌的车辆架构存在异构性,需要设计一个中间件[6]来统一车辆底层设备和应用程序之间的接口。
中间件是一个位于操作系统和应用程序之间的软件,提供与应用程序相关联的API,具有可运行在多种硬件或平台的特点。它接收并处理传感器收集的信息而后将其发送给应用程序。中间件实现了一个上层应用在多种车辆架构上的使用。当前对于上下文感知中间件[7]的研究较多,杨倩等人[8]提出了一种基于上下文的VANET服务推荐中间件。
本文对车辆服务推荐进行需求分析,通过基于车辆上下文的中间件实现车辆服务推荐系统。由于Android平台的可移动性,我们通过Android平台模拟车辆节点。通过Java设计后台接口,用Java EE模拟路边通信单元,存储总服务集。通过An-droid应用与Java EE的交互模拟车辆与路边通信单元间的通信( vehicle-to-infrastructure, V21).
2 需求分析
目前对于实体服务的选择主要依靠移动客户端(如手机)对于服务进行查询。这种方式会导致两种问题的发生:1)用户处于驾驶状态时,使用移动客户端会产生一定的安全隐患;2)移动客户端不能收集车辆特有的上下文信息(如油量,速度,行驶路线等),因此无法提供同车辆上下文相匹配的服务,降低了用户的个性选择能力,可能使用户满意度较低或服务不合理。
车辆服务推荐系统同常见的服务推荐系统不同。在一般的服务推荐系统中,用户仅需要根据自身偏好在大量同种推荐项中选择其一。而在车辆服务推荐系统中,系统需要收集车辆特有的上下文信息作为输入,计算出最合理的服务集。这种服务推荐系统受上下文影响较大,且对精确性和实时性的要求也较高。Woerndl等人[9]提出了一种基于上下文的加油站推荐应用。
我们的目标是实现基于上下文的服务推荐,考虑到不同车辆的底层异构性,我们需要设计一个中间件来实现该系统在不同品牌车辆上的部署。
该中间件将车辆当前上下文信息和用户服务偏好作为输入信息,获取符合用户偏好的服务集,并将之传递给上层应用,以此实现服务推荐系统在拥有不同底层架构的车辆上的运行。
其流程如图1所示,主要步骤为:1)过滤服务信息;2)进行服务的显示;3)进行服务的评分。
其中核心部分为由中间件处理的过滤部分,分为三层过滤,分别为基于服务类型的过滤、基于上下文的过滤和基于用户偏好的过滤。中间件执行完服务过滤后将推荐集传给应用程序,由应用程序顯示。当用户挑选一个推荐的服务节点后可进行打分,随后打分信息同该服务节点所提供的服务一同存人历史记录中。历史记录存储在车辆节点的数据库中,系统空闲时通过历史记录计算用户偏好模型,使服务推荐更加快捷精确。
3 系统框架设计
车辆服务推荐系统是在车联网环境下的一种服务推荐系统。同传统的服务推荐系统不同,其受车辆上下文的影响较大,对于精确性和实时性的要求较高。该系统运行在车辆节点中,根据车辆上下文信息和用户偏好推荐服务。
3.1 流程设计
我们将实现基于上下文的服务推荐系统,其流程如图2所示。系统分为两个部分,离线部分和在线部分。其主要步骤如下:1)收集上下文信息和用户偏好模型;2)通过请求的服务类型过滤服务;3)通过车辆上下文过滤服务;4)通过用户偏好过滤服务;5)对本次服务进行评分。
在线部分同RSU进行交互,以此获得总服务集。通过中间件接收车辆的当前速度、当前油量、当前位置、要请求的服务等上下文信息。首先根据请求的服务类型进行过滤,获取RSU数据库中与请求的服务类型相同的项。而后根据车辆的上下文信息进行进一步的过滤,采用QoS优先的服务选择策略,优先考虑距离的影响,计算当前车辆可行驶的最大距离和服务点同车辆之间的距离,筛选可到达的服务点。最后根据用户偏好模型进行过滤,计算用户偏好模型和服务点服务模型的相似度,以此来挑选最合适的三个服务节点。
离线部分使用VANET中间件收集上下文信息和用户偏好模型并将之发送给在线部分,获取推荐的服务。用户偏好模型以五维图的形式构建,通过
用户过往的评价计算得出。由于车辆推荐服务对于精确性和实时性的要求,我们将用户历史记录存储在车辆节点中,当车辆节点空闲时即可计算用户偏好模型,减少服务推荐的时间消耗。
当用户获取推荐的服务节点后,可以对该服务进行打分,该分数会同节点提供的服务等级一同存人历史记录数据库中。随着历史数据量的增加,该服务推荐系统会进一步满足用户的偏好。
3.2 架构设计
根据车辆推荐服务的需求,进行中间件的架构设计,如图3所示。该中间件由通信模块、控制模块、服务模块和设备模块组成。
通信模块负责与RSU通过WLAN进行通信,从RSU的数据库中获取总服务集并实现对于服务类型的过滤。利用OSGi[10]面向服务的设计模型,将车载设备和VANET应用进行解耦,将该中间件作为底层设备和应用程序之间的纽带,同过车辆特有的上下文信息和智慧车辆充足的车辆存储、计算资源进行服务过滤与选择。
系统中的设备模块控制车辆传感器与嵌入式车载设备(如GPS、速度传感器、摄像头等)并收集传感器获得的信息c如当前位置、当前速度、剩余油量、行驶方向等)。在线服务阶段,设备模块将封装收集的信息并将之发送给推荐模块。设备模块解决了车辆底层异构的问题,即使车辆底层架构存在不同,设备模块也可以从不同的设备中收集、封装需要的信息并发送给推荐模块。
服务模块负责系统中的逻辑控制和主要功能的实现。处于在线状态时,服务模块从RSU中获取数据,进行第一轮的基于服务类型的过滤。而后其收集上下文信息,通过上下文进行比对来进行第二轮的过滤。最后,使用已计算出的用户偏好模型进行相似度过滤,并算出相似度,将相似度前三的项发送给应用模块。离线阶段,服务模块自行通过过往的评价计算用户偏好模型。这种分配可以减少时间的消耗,降低计算资源空闲的概率,满足车辆服务推荐系统的实时性与精确性。控制模块负责和应用程序进行交互。在线服务阶段,用户根据推荐服务列表选择适合自己偏好的服务,实现服务的绑定。在离线阶段,用户对此次服务进行打分,并打分的结果存人过往评价数据库中。
4 系统实现
该系统的思想是开发一个轻量级的嵌入式服务过滤软件部署到智能车辆上,使得用户可以根据车辆当前状况和个人偏好获得服务推荐。
4.1 控制模块
在控制模块中,系统负责实现接收用户的查询请求并获取用户信息功能。图4所示为控制模块及其各组件之间的逻辑关系。其中包括用户节点( Cliem)、控制器(ServerController)以及服务模块接口( DataService)。
控制器是控制模块的核心组件,其包含两个方法:
1)获取推荐服务( getService)。该方法通过调用服务模块中的接口来获取推荐服务集。该服务集由服务模块中的策略决定,服务模块中的策略不同,获得的服务集也不相同。例如,当服务模块采用综合评分选择策略(average rating selection,ARS)时,用户将根据网上综合评价的高低来选择服务。同时,该方法属于在线服务范畴。若用户处于离线状态,此方法将无法正常工作。
2)打分功能(rate)。该方法通过调用服务模块中的过往记录模块来进行对此次查询的评价,并将该评价存人历史记录数据库中。当系统处于空闲状态时,将自动根据历史记录来计算用户偏好模型。
當用户发出查询请求时,系统通过设备模块将服务类型、当前速度、剩余油量、当前位置等信息传递给控制模块,控制模块将其封装为Data类后传递给服务模块,由服务模块进行处理,获得服务集。而后通过相似度排序,按降序取相似度前三的服务组成推荐服务集并返回车载应用。用户选择一项符合自身偏好的服务并对其打分。随后若用户没有没有再一次使用该服务推荐系统,系统将立即计算用户偏好模型。
4.2 服务模块
在服务模块中,系统负责实现服务的查询功能。其中,主要包含一个服务查询接口( DataService)和几个子服务模块,如上下文模块( ContextService)、用户偏好模块(PreferenceService)等。其逻辑关系如图5所示。
主服务模块( MainService)实现了数据服务(DataService)接口。主模块关联四个子模块,分别是:1)服务过滤模块;2)上下文过滤模块;3)用户偏好过滤模块;4)用户偏好模型模块。其中用户偏好模型模块实现了一个用户偏好模型接口,增加用户偏好模型的扩展性。用户偏好模型默认通过五维图的形式实现。服务过滤模块对服务的类型进行过滤,即负责从RSU的数据库中查找服务并进行服务类型的过滤。上下文过滤模块通过车辆当前上下文进行过滤,默认通过距离过滤的方式实现,即计算当前车辆可行驶的最大距离和服务点与当前车辆的距离,将车辆可到达的服务节点存入服务集并进行下一轮过滤。用户偏好过滤模块通过用户偏好进行过滤,用户偏好通过用户偏好模型模块获得。
当控制模块发送给服务模块查询请求后,服务模块首先将四个子服务模块初始化,提取获得的Data类的数据,依次执行服务类型过滤、上下文过滤、获得用户偏好模型和通过用户偏好过滤。过滤后的服务集返回主服务模块,主服务模块将剩余的服务项组成服务集返回控制模块。
4.3 流程控制
系统的流程由前端应用、设备模块、控制模块、服务模块和执行进程共同控制。其中设备模块、控制模块、服务模块与执行进程属于中间件的部分。
当前端应用启动后,首先启动中间件的设备模块部分,随时监视车辆当前上下文的变化。同时,从内存中获取用户偏好模型或重新计算用户偏好模型并存入内存中。后续流程如图6所示,当前端应用发送服务查询请求后,控制模块与服务模块启动,中间件中的设备模块获取车辆当前上下文信息并传递给控制模块。控制模块收到消息后将上下文信息封装并传递给服务模块。服务模块通过额外的执行进程进行服务过滤,将结果传给控制模块,控制模块选取相似度前三的服务项组成服务集,随后将结果传到前端应用。用户根据自己的偏好从三者中选择一项,此时车辆会进行自动的导航。
当一次任务执行完成后,用户可进行打分。打分时需要重新启动控制模块和服务模块。前端应用将打分信息传给控制模块,控制模块调用服务模块中的历史记录模块,并将该打分存人历史记录数据库中。
4.4 应用配置
为了使系统更加灵活,用户可以根据自身需求配置参数。配置文件分为服务模块配置文件和系统配置文件。服务模块配置提供对服务模块运行时的配置,与用户可以根据自身需求调整根据上下文推荐算法的参数或者调整用户偏好模型的计算方式。系统配置文件包括对服务模块的配置和全局配置。用户可自行调整服务模块的实现方式,以满足特定的需求。
5 测试结果与分析
图7为前端应用程序通过中间件获取推荐项的过程。图7(a)表示应用的前端界面。我们采用直接输入信息的模式来模拟汽车行驶时的上下文环境。其下6项分别代表娱乐设施、加油站、购物中心、洗手间、美食和医院。点击一项后即可将数据传递给中间件并查询。图7(b)为点击了医院项之后回传的内容。第一列显示推荐的服务地点名称,第二列显示该服务与当前地点之间的距离。
图8为查看服务详细信息与打分的过程。在图7(b)中点击第一项即可进入图8(a)的界面。图8(a)中显示了该服务点的名称、经纬度、和自身的距离以及五项服务的标准。用户可以依次查看三个推荐项,比较距离与各项标准,以此来选出符合自身偏好的服务点。
用户在图8(a)中的单选框中选择一个数字并点击提交按钮即为提交了本次服务的评分。该评分会写入历史记录数据库中,应用在空闲时会自动通过该数据库中的历史记录计算用户偏好模型。点击提交后,界面跳回首页,通过Toast做出提示信息。完成以上一系列步骤,即为完成一次服务周期。同样,用户可以根据自身需要进行下一次的查询。
6 结束语
本文以Android平台模拟智能车辆节点,使用Java EE模拟RSU,研究并实现了基于中间件的车辆服务推荐系统。该系统的主要创新点在于考虑了车辆行驶环境上下文的同时将于用户偏好列入筛选条件,解决了传统推荐系统并未同时考虑个性化与车辆行驶上下文的问题,提高服务推荐的成功概率。
后续研究包括:1)进一步调整用户偏好模型算法,寻找更能体现用户偏好的模型;2)加入用户历史数据分析策略,为具有相似偏好模型的用户主动推送服务,进一步提高用户满意度。
参考文献:
[1] Cheong H W, Lee H.Technology and policy strategies in theera of CPS (cyber physical system) and automated driving[J].Procedia Computer Science, 2017(122): 102-105.
[2]赵娜,袁家斌,徐晗.智能交通系统综述[J].计算机科学,2014,41(11): 7-11,45.
[3] Zhang B,Liu C H,Tang J,et al-Leaming-based energy-effi-cient data collection by unmanned vehicles in smart cities[J].IEEE Transactions on Industrial Informatics, 2018, 14(4):1666-1676.
[4] Zhang G C,Wu Q Q,Cui M, et al.Securing UAV commumca-tions via joint trajectory and power control[J]. lEEE Transac-tions on Wireless Communications, 2019, 18(2): 1376-1389.
[5] Yu J D,Chen Z Y,Zhu Y M, et al.Fine-grained abnormaldriving behaviors detection and identification with smartphones[J]. IEEE Transactions on Mobile Computing, 2017, 16(8):2198-2212.
[6]周園春,李淼,张建,等.中间件技术综述[J]。计算机工程与应用,2002, 38(15): 80-82.
[7]刘俊,乐红兵.基于上下文感知移动中间件的研究与设计[J].微计算机信息,2006, 22(34): 294-296.
[8]杨倩,罗娟,刘畅.基于上下文的VANET服务推荐中间件[J].计算机研究与发展,2017, 54(9): 1992-2000.
[9] Woerndl W, Eigner R.Collaborative, context-aware applica-tions for internetworked cars[C]//16th lEEE InternationalWorkshops on Enabling Technologies: Infrastructure for Col-laborative Enterprises (WETICE 2007). 18-20 June 2007,Evry, France. lEEE, 2007: 180-185.
[10] Luo J,Pan Q,He Z Y.VANET middleware for service shar-ing based on OSGI[J]. Computer Science and Information Sys-tems, 2015, 12(2): 729-742.
[通联编辑:谢媛媛]
基金项目:绍兴文理学院2019年学生科研项目;浙江省大学生科技创新活动计划(新苗人才计划)项目
作者简介:王泽宏(2000-),男,浙江杭州人,本科在读;刘建华,副教授,研究方向为物联网、网络安全;洪宇庭,本科在读;郑思浩,本科在读。