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