王澤宏 劉建華 洪宇庭 鄭思浩



摘要:車輛自組織網絡( 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-),男,浙江杭州人,本科在讀;劉建華,副教授,研究方向為物聯網、網絡安全;洪宇庭,本科在讀;鄭思浩,本科在讀。