周鵬飛 喬 佳 李 良
1(北京億華通科技股份有限公司 北京 100192) 2(國家信息中心 北京 100045)
汽車分時租賃是租車行業(yè)新興的一種租車模式。它指以小時或分鐘計算提供汽車的隨取即用租賃服務(wù),消費者可以按個人用車需求和用車時間預訂租車的小時數(shù),其收費將按小時或分鐘來計算,這種形式給用戶在用車方面帶來了極大的方便[1,5]。給用戶帶來方便的同時,也給運營分時租賃的公司帶來了極大的管理困難。因為分時租賃的車輛不像傳統(tǒng)的租車公司,用戶需要到公司的門店去辦理取車、還車等相關(guān)操作,而分時租賃不可能像傳統(tǒng)的租車公司那樣去操作,分時租賃在用戶用車和還車的過程中都是通過APP自助完成的,不需要跟任何運營公司的人員進行溝通交流。因此,分時租賃的車輛必須依靠先進和穩(wěn)定的IT系統(tǒng)去管理在租的車輛,那么與車輛通信就成了分時租賃的整個業(yè)務(wù)環(huán)節(jié)中必不可少的一部分[2]。
目前的車載設(shè)備通信管理大致上是車載設(shè)備通過3G網(wǎng)絡(luò)[6,8]將車輛的數(shù)據(jù)信息上報到服務(wù)器,然后服務(wù)器就能夠識別和控制上報的車載設(shè)備與車輛進行通信,給相應(yīng)的業(yè)務(wù)系統(tǒng)提供服務(wù)[7]。在整個通信的過程中存在一些問題如:
1) 由于設(shè)備是需要車載電源供電的,如果車輛長時間沒有開動的情況下,可能導致設(shè)備掉線,也會引起車輛打火失?。?/p>
2) 如果服務(wù)器線路繁忙的時候,導致車載設(shè)備控制失敗;
3) 單點的服務(wù)器壓力很大。
為了解決上述問題,我們進行了如下改造:
1) 在車輛沒有開動的時候,延長設(shè)備的上報信息周期,使設(shè)備盡可能少消耗電量;
2) 在設(shè)備檢測到電瓶電量低的時候,實時上報設(shè)備低電壓告警,推送給相應(yīng)的車輛維護人員,通知他們開動車輛,給電瓶充電,以保證車輛的正常使用;
3) 車載設(shè)備采用1∶1的雙通道保護策略,盡可能減少由于設(shè)備和服務(wù)器之間的鏈路問題導致的設(shè)備離線問題;
4) 服務(wù)器的部署采用分布式的部署方式,能夠水平擴容,有效地降低服務(wù)器的單點壓力。
車載設(shè)備通信服務(wù)的大致結(jié)構(gòu)如圖1所示。
圖1 車載設(shè)備系統(tǒng)整體結(jié)構(gòu)
如圖1所示,整個系統(tǒng)包括以下幾個部分:
1) 車載設(shè)備:安裝在分時租賃車輛上的電子設(shè)備,負責車輛跟上層服務(wù)器的通信。
2) IO控制器:負責接收車載設(shè)備上傳的數(shù)據(jù)信息,然后解析上報給業(yè)務(wù)服務(wù)器,接收上層服務(wù)器的控制指令,下發(fā)給車載設(shè)備。
3) 路由控制器:負責記錄每個車載設(shè)備的路由信息,保證上次業(yè)務(wù)系統(tǒng)到車載設(shè)備的通信通暢。
4) 業(yè)務(wù)控制器:負責具體的業(yè)務(wù)處理,如:數(shù)據(jù)的入庫、告警的處理、跟其他業(yè)務(wù)系統(tǒng)的對接等。
5) 業(yè)務(wù)接口:負責對外部的業(yè)務(wù)系統(tǒng)提供接口,完成業(yè)務(wù)系統(tǒng)和車輛的對接。
6) 選擇器:負責選擇那個業(yè)務(wù)控制器跟IO控制器進行對接,實現(xiàn)負載的分配策略。
從圖1可以看出,整個系統(tǒng)的所有模塊都是獨立存在,并且通信都是雙鏈路的,當某個模塊出現(xiàn)問題時,系統(tǒng)都能快速地切換到其他模塊進行相應(yīng)的業(yè)務(wù)處理,避免了系統(tǒng)的單點故障問題。另外,當系統(tǒng)的業(yè)務(wù)控制模塊出現(xiàn)性能上的瓶頸時,我們可以通過水平擴展的方式,增加一個業(yè)務(wù)控制器來分擔其他控制器的性能壓力。
業(yè)務(wù)控制流程大致如圖2所示。
圖2 業(yè)務(wù)控制流程
1) 首先是業(yè)務(wù)接口從其他業(yè)務(wù)系統(tǒng)接收到控制車輛的命令。
2) 使用選擇器從當前可用的業(yè)務(wù)控制中選擇(有多種選擇的策略)一個可用的業(yè)務(wù)控制器。
3) 把車輛控制命令傳送給業(yè)務(wù)控制器。
4) 業(yè)務(wù)控制器拿到相應(yīng)的控制命令,對其做相應(yīng)的編碼,轉(zhuǎn)換成具體的通信協(xié)議單元。
5) 使用路由控制器從路由表中獲取相應(yīng)車輛所對應(yīng)的IO控制器。
6) 將轉(zhuǎn)換后的協(xié)議單元發(fā)送給IO控制器。
7) IO控制器接收到相關(guān)的通信協(xié)議單元直接發(fā)送給相應(yīng)的車載設(shè)備。
8) 車載設(shè)備接收到IO控制器發(fā)送的控制命令后,執(zhí)行相應(yīng)的操作,然后把操作結(jié)果返回給IO控制器。
9) IO控制器接收到結(jié)果后轉(zhuǎn)發(fā)給相應(yīng)的業(yè)務(wù)控制器,最終由業(yè)務(wù)接口模塊返回給其他業(yè)務(wù)系統(tǒng)。
路由控制流程如下:
1) 首先車載設(shè)備需要按照固定頻率(頻率會根據(jù)實際的運行情況自動調(diào)節(jié))會上報心跳、位置等信息。
2) IO控制器接收到相應(yīng)的數(shù)據(jù)報文后,會將設(shè)備和IO控制器的映射關(guān)系存儲到路由表中,從而完成路由的映射工作。
3) 當業(yè)務(wù)控制器收到上層業(yè)務(wù)系統(tǒng)傳過來的下發(fā)命令后,會根據(jù)命令中的車輛標識找到相應(yīng)的IO控制器去完成路由尋路過程。
當車載設(shè)備從IO控制器斷開后,又重連不上的情況下,車載設(shè)備會根據(jù)備用的IO控制器地址去連接備用的IO控制器,從而完成故障自動修復,具體過程如圖3所示。
圖3 故障修復流程
1) 車載設(shè)備持續(xù)的向IO控制器發(fā)送心跳命令。
2) 如果發(fā)現(xiàn)連續(xù)發(fā)送多次后,還沒有得到成功的答復。
3) 車載設(shè)備根據(jù)備用IO控制器的地址,去主動連接備用IO控制器。
4) 當連接成功后,備用的IO控制器會將新的路由關(guān)系寫入路由表。
5) 當新的業(yè)務(wù)從業(yè)務(wù)接口進來的時候,那么選擇器就將根據(jù)新的路由關(guān)系選擇到備用的IO控制器上,從而保證了業(yè)務(wù)的正常通信。
車載通信管理系統(tǒng)利用分布式網(wǎng)狀的部署結(jié)構(gòu),可以將多個不同的業(yè)務(wù)處理過程分布到不同的處理模塊中,提高了業(yè)務(wù)處理的效率[4]。另外,多備份的方式也避免了單節(jié)點失敗而使整個系統(tǒng)不可用的風險,從穩(wěn)定性、健壯性和可擴展性上都能夠滿足目前分時租賃的業(yè)務(wù)運營需求[3]。車載通信管理系統(tǒng)在整個分時租賃業(yè)務(wù)中的應(yīng)用如圖4所示。
圖4 車載通信管理系統(tǒng)
作為唯一與車輛通信的通道,在整個分時租賃的業(yè)務(wù)系統(tǒng)中起到了至關(guān)重要的作用。
雖然上述系統(tǒng)能夠滿足目前的業(yè)務(wù)需求,但是還存在很多可以優(yōu)化的地方。如:系統(tǒng)的調(diào)用方式。目前系統(tǒng)底層雖然采用了異步IO的方式來實現(xiàn)通信,但是,從整個業(yè)務(wù)系統(tǒng)來看,還是一個大的同步調(diào)用系統(tǒng),每個業(yè)務(wù)控制器必須記錄自己所發(fā)送的請求,每個IO控制器接到車載設(shè)備的響應(yīng)的時候,還必須要找到發(fā)送請求的業(yè)務(wù)控制器返回,這也加大了系統(tǒng)的實現(xiàn)復雜度,從而可能影響到整個系統(tǒng)的吞吐量。所以如果我們把系統(tǒng)對外的接口改成異步調(diào)用的,那么整個
系統(tǒng)內(nèi)部都將是異步的調(diào)用方式,從底層的IO處理,到上層的業(yè)務(wù)處理都不需要關(guān)心請求從哪個具體的業(yè)務(wù)控制器過來,也不需要知道發(fā)往哪個業(yè)務(wù)控制器,那么就能夠真正地做到每個業(yè)務(wù)控制器和IO控制器之前都是隨機調(diào)用,無需再保留正在訪問的請求,從而簡化了系統(tǒng)的實現(xiàn)。
車載通信管理系統(tǒng)管理著所有業(yè)務(wù)系統(tǒng)跟車輛的通信,是業(yè)務(wù)系統(tǒng)跟車輛通信的唯一橋梁,也是整個分時租賃業(yè)務(wù)系統(tǒng)的根基,上層的業(yè)務(wù)系統(tǒng)再好,車載通信管理系統(tǒng)不穩(wěn)定也會導致整個系統(tǒng)崩潰坍塌。因此,一個穩(wěn)定和高性能的車載通信管理系統(tǒng)勢必會對整個分時租賃的業(yè)務(wù)系統(tǒng)帶來巨大的好處,是分時租賃系統(tǒng)的基石。
[1] 李明.分時租賃:汽車租賃的發(fā)展方向[J].上海汽車,2015(3):51-53.
[2] 張亦馳,鄧嶸.淺析汽車分時租賃模式下的車載系統(tǒng)[J].科技與企業(yè),2016(1):86-87.
[3] 葛五祥,陳志剛.基于三層B/S模式的分布式系統(tǒng)設(shè)計[J].計算機技術(shù)與自動化,2004(9):73-75.
[4] 毛莉,齊德昱.分布式系統(tǒng)的分層形式化描述方法[J].計算機應(yīng)用研究,2014(8):2407-2410.
[5] 張小明.共享汽車——一種全新的消費模式[J].世界汽車,2001(7):21-22.
[6] 常新峰,沈連豐,胡靜,等.一種智能公交車載系統(tǒng)的研制及性能分析[J].東南大學學報(自然科學版),2009,39(2):377-383.
[7] 梁松,孫劍光,陳繼努.智能公交調(diào)度系統(tǒng)中“粘包”問題解決方案[J].廣東通信技術(shù),2007,27(7):55-58.
[8] 魏瑤,陳閎中.基于無線城域網(wǎng)的智能公交系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應(yīng)用研究,2010,27(2):603-605.