程付超 梅恩
(成都大學,四川成都610106)
校園公交定位與調(diào)度服務系統(tǒng)的設計與實現(xiàn)
程付超 梅恩
(成都大學,四川成都610106)
針對高校校園公交運營中存在的乘車難問題,設計并實現(xiàn)了一種“校園公交定位與調(diào)度服務系統(tǒng)”,通過手機實現(xiàn)對乘車人和車輛的實時定位,以此為基礎為乘車人提供車輛定位、到達預測、預約叫車、校園導航等服務,從而解決校內(nèi)乘車難問題。同時,為調(diào)度人員和公交駕駛員提供乘車人位置顯示和播報、車輛狀態(tài)查詢、實時消息通信等服務,為車輛調(diào)度提供輔助決策,提高車輛運營效率。經(jīng)測試,本文系統(tǒng)工作正常,能夠達到設計目的。
校園公交;定位服務;調(diào)度服務
校園公交(也叫校園擺渡車),是一種面向高校學生和教職員工的校園內(nèi)部客運乘用車輛。由于國內(nèi)高校校園的擴張,很多學校都在校內(nèi)引入了校園公交,以方便學生和教職員工上下課及日常出行等。校園公交一般使用電動乘用車進行運營,行駛線路相對比較靈活,采用隨招隨停,按次收費的運營方式,受到高校學生的歡迎。而隨著高校的進一步擴建,校園公交線路也在不斷延伸。以成都學院為例,校園公交單程長度已超過3公里,加上來回路線變化,線路總長接近10公里,這樣的路線跨度,給乘車人等車帶來了較大的難度。據(jù)前期調(diào)查統(tǒng)計,在上下課高峰期之外的時間段(高峰期一般會有針對性的車輛調(diào)度),乘車人平均等車時間往往長達20-30分鐘。經(jīng)過分析,其原因主要在于,非高峰期校園公交一般采用坐滿發(fā)車的機制,車出發(fā)之后已經(jīng)坐滿,導致線路中途乘車變得非常困難。同時,在校園公交始發(fā)站和終點站,往往又有閑置車輛在排隊等待,導致車輛運營效率降低。
針對目前校園公交運營中的上述問題,本文設計了一種校園公交定位與調(diào)度服務系統(tǒng)(簡稱校園公交系統(tǒng)),綜合運用移動互聯(lián)、位置服務、衛(wèi)星定位、語音播報等技術(shù),研發(fā)面向乘車人、駕駛員和調(diào)度人員的不同APP終端,通過手機實現(xiàn)對乘車人和車輛的實時定位,并以此為基礎為乘車人提供車輛定位、到達預測、預約叫車、校園導航等服務,從而解決校內(nèi)乘車難問題。同時,還能夠為調(diào)度人員和公交駕駛員提供乘車人位置顯示和播報、車輛狀態(tài)查詢、實時消息通信等服務,進而為車輛調(diào)度提供輔助決策,提高車輛運營效率。
本文設計的校園公交系統(tǒng)服務模式如圖1所示。
圖1 校園公交系統(tǒng)服務模式
(1)乘車人APP,是面向高校學生和教職員工等乘車人的客戶端APP軟件,運行在乘車人手機上,主要功能包括公交位置顯示、到達時間預測、預約叫車、校園導航、消息查看、乘車記錄查詢等。
(2)駕駛員APP,是面向校園公交駕駛員的客戶端APP軟件,運行在駕駛員手機上,主要功能包括調(diào)度信息播報、乘車人信息播報、載客人數(shù)設置及緊急情況處理備忘等功能。
(3)調(diào)度人員APP,是面向校園公交調(diào)度人員的客戶端APP,運行在手機或平板電腦上,主要功能包括校園內(nèi)公交位置顯示、校園內(nèi)所有乘車人位置顯示、駕駛員信息管理、車輛信息管理、調(diào)度信息發(fā)送等。
(4)服務系統(tǒng)后臺,為了支撐前述三個面向不同用戶群體的APP正常運行,系統(tǒng)還需要對服務系統(tǒng)后臺進行研發(fā),具體包括數(shù)據(jù)存儲系統(tǒng)、業(yè)務處理模塊、前后端交互接口等。
(5)后臺管理Web端,為系統(tǒng)管理員提供服務,功能包括用戶賬號管理、數(shù)據(jù)存儲管理、全局消息發(fā)布、APP版本管理、商業(yè)化數(shù)據(jù)分析等。
根據(jù)業(yè)務流程,項目組對校園公交系統(tǒng)總體架構(gòu)進行了設計,如圖2。
圖2 校園公交系統(tǒng)總體架構(gòu)圖
校園公交系統(tǒng)邏輯上由三個層次構(gòu)成,分別是應用服務層、業(yè)務邏輯層和數(shù)據(jù)支撐層。其中,應用服務層可以認為是校園公交系統(tǒng)的前端,而業(yè)務邏輯層和數(shù)據(jù)支撐層屬于系統(tǒng)后臺。
(1)應用服務層:分為三個APP和一個Web終端,面向各類用戶直接提供服務。
(2)業(yè)務邏輯層:用于處理提供服務所需的各種業(yè)務邏輯,包括登錄注冊、車輛定位、用戶叫車、校園導航、車輛信息管理、用戶信息管理、位置搜索、消息收發(fā)、歷史記錄管理、歷史數(shù)據(jù)分析等。
(3)數(shù)據(jù)支撐層:包括數(shù)據(jù)庫系統(tǒng)、文件系統(tǒng)及數(shù)據(jù)訪問接口,為上層業(yè)務邏輯模塊和APP等提供數(shù)據(jù)支持。
2.3.1 APP界面設計
針對各APP的功能和業(yè)務流,對界面布局、配色、圖標、字體及操作方式等進行設計,如圖3。
圖3 校園公交系統(tǒng)部分APP界面標記圖
2.3.2 APP業(yè)務模塊設計
按照功能和業(yè)務流程,分別對乘車人APP、駕駛員APP和調(diào)度人員APP進行功能模塊劃分,如圖4所示。
圖4 校園公交系統(tǒng)APP業(yè)務模塊設計
從數(shù)據(jù)存儲、前后端通信及業(yè)務模塊三個方面對后臺系統(tǒng)進行設計,并對后臺管理Web端進行專門設計。
2.4.1 數(shù)據(jù)存儲設計
校園公交系統(tǒng)的數(shù)據(jù)存儲系統(tǒng)主要包括數(shù)據(jù)庫系統(tǒng)、文件系統(tǒng)和數(shù)據(jù)訪問接口三部分。
(1)數(shù)據(jù)庫系統(tǒng):主要用于存儲系統(tǒng)中的結(jié)構(gòu)化數(shù)據(jù),比如車輛信息、駕駛員信息、乘車人信息、位置信息和叫車信息等。
(2)文件系統(tǒng):用于存儲非結(jié)構(gòu)化數(shù)據(jù),比如語音消息、用戶頭像圖片等。
(3)數(shù)據(jù)訪問接口:用于向業(yè)務模塊提供數(shù)據(jù)讀寫接口,采用兩層封裝的思路,首先針對數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)分別設計底層訪問接口,再結(jié)合業(yè)務功能進行二次封裝,保證接口的可用性和易用性。
2.4.2 前后端通信接口設計
校園公交系統(tǒng)中不同功能對于前后端通信具有不同的要求,需要從客戶端請求和服務器推送兩個方面考慮通信接口問題。
(1)客戶端請求:對于客戶端主動發(fā)起的數(shù)據(jù)通信請求,擬采用超文本傳輸協(xié)議(HTTP)作為前后端通信協(xié)議,并使用JSON(JavaScript Object Notation)為載體定義通信數(shù)據(jù)格式,實現(xiàn)前后端數(shù)據(jù)的高效可靠傳輸。
(2)服務器推送:對于服務器發(fā)起的數(shù)據(jù)傳輸請求,使用基于長連接的多線程并發(fā)推送框架Workerman,實現(xiàn)對多客戶端的高并發(fā)數(shù)據(jù)推送。
2.4.3 后臺業(yè)務模塊設計
按照校園公交系統(tǒng)的功能和業(yè)務流程,分別對后臺服務模塊和管理Web端進行設計,對后臺管理端頁面進行劃分,并分別設計各頁面的功能,如圖5所示。
圖5 后臺業(yè)務模塊設計
2.5.1 多客戶端數(shù)據(jù)并發(fā)推送
為了方便乘客和調(diào)度管理人員隨時查看車輛的準確位置,校園公交系統(tǒng)需要實現(xiàn)對位置數(shù)據(jù)的實時推送。由于位置數(shù)據(jù)的推送具有多對多的特點(從多個駕駛員APP推送到多個乘車人APP和調(diào)度人員APP),對數(shù)據(jù)實時并發(fā)吞吐量要求較高,成為系統(tǒng)實現(xiàn)上的一個技術(shù)難點。為了解決這個問題,項目組先后使用并驗證了三種不同技術(shù)。
(1)輪詢。在研發(fā)初期,項目組采用輪詢的方式實現(xiàn)位置數(shù)據(jù)的共享。具體方法為:駕駛員APP定時發(fā)送位置信息到服務器;服務器將數(shù)據(jù)存儲到數(shù)據(jù)庫中;乘車人APP和調(diào)度人員APP定時調(diào)用數(shù)據(jù)。此方案實現(xiàn)較容易,開發(fā)難度低,但經(jīng)過實際測試,此方案運行過程中,服務器系統(tǒng)大量資源用于執(zhí)行隨機I/O讀寫操作,造成整體數(shù)據(jù)吞吐量極低,故棄用此方案。
(2)第三方推送平臺。在查閱技術(shù)資料之后,項目組改用第三方推送服務平臺進行位置數(shù)據(jù)的推送,車輛位置數(shù)據(jù)從駕駛員APP傳送到服務器上存儲到內(nèi)存中,然后直接通過第三方平臺推送給APP。經(jīng)過實際測試,此方案解決了服務器端I/O操作頻繁的問題,提高了數(shù)據(jù)吞吐量,但第三方平臺在數(shù)據(jù)量較大的情況下存在比較明顯的數(shù)據(jù)推送延遲,往往達到幾秒,十幾秒甚至幾十秒,導致位置數(shù)據(jù)傳到時,車輛位置已經(jīng)發(fā)生了較大的改變,影響了位置數(shù)據(jù)的準確性,項目組經(jīng)過慎重考慮,最終放棄了此方案。
(3)長連接開發(fā)框架。最后,項目組在深入理解了基于長連接的多線程并發(fā)開發(fā)框架技術(shù)之后,采用Workerman框架實現(xiàn)了多客戶端間的數(shù)據(jù)并發(fā)推送。在此方案下:
①駕駛員APP通過長連接將位置數(shù)據(jù)異步推送到服務器上;
②服務器通過觸發(fā)機制,直接將接收到的位置數(shù)據(jù)按組轉(zhuǎn)發(fā)給乘車人和調(diào)度人員。
在此過程中,基本不涉及任何的I/O操作,因此性能較高,數(shù)據(jù)異步接收,并同步轉(zhuǎn)發(fā),實現(xiàn)了位置數(shù)據(jù)在多客戶端間并發(fā)推送。后續(xù)開發(fā)中,乘車人位置數(shù)據(jù)也采用類似的方式進行處理。
2.5.2 車輛行進方向顯示
車輛行進方向的顯示在滴滴打車和優(yōu)步這類打車應用APP中得到了很好的解決,其方法比較巧妙:
(1)在下達訂單前,周邊車輛的位置和朝向都僅僅是一個很不準確的大概值,不具有太高的參考價值;
(2)在下達訂單后,乘車人和車輛的關(guān)系變成一對一服務模式,車輛位置和朝向會變得比較準確,但也存在一定延遲。
但在本文設計的校園公交系統(tǒng)中,由于乘客和車輛是一種多對多的服務模式,校園內(nèi)所有同方向車輛的具體位置和當前朝向,對乘車人都具有較高的參考價值,因此,提高車輛行進方向顯示的準確性就成為了提升用戶體驗的一個重要方面。為了解決這一問題,項目組先后采用了兩種方法:
(1)通過地圖SDK計算。在項目研發(fā)初期,項目組采用地圖SDK自帶的方向判斷API進行車輛行進方向的判斷和顯示,但經(jīng)過實際測試,這種方式顯示出的車輛方向與實際行進方向幾乎完全無關(guān),項目組不得不考慮其他方式。
(2)通過經(jīng)緯度坐標計算。為了保證準確性,項目組采用車輛最近兩次位置的經(jīng)緯度坐標連線的方向作為當前車輛的近似行進方向。具體計算方法是:
①記錄當前車輛位置的經(jīng)緯度數(shù)據(jù);
②當下一次位置數(shù)據(jù)到達的時候,根據(jù)兩點的經(jīng)緯度坐標系,建立兩點間的直線方程,并通過勾股定理計算連線與正北方向的偏移角度,將這個角度發(fā)送到APP作為車輛行進的方向。
此算法在實際測試中,有時候車輛角度會呈90度偏轉(zhuǎn),分析之后發(fā)現(xiàn)是因為計算過程中一直以緯度作為計算依據(jù),但當車輛的緯度變化較小時(比如按正南正北方向行進時),判斷的誤差就會比較大。因此,項目組對算法進行了改良:
①首先判斷車輛行進方向是偏緯度方向,還是偏經(jīng)度方向;
②在經(jīng)度方向,根據(jù)定位數(shù)據(jù)的前后變化計算得出經(jīng)度方向的夾角;
③在緯度方向,根據(jù)定位數(shù)據(jù)的前后變化計算得出緯度方向的夾角;
④最后將兩個方向的夾角綜合,就能較準確地判斷車輛的行進方向。
在實際測試中,改良后的算法能夠比較精確地顯示車輛的行進方向,甚至連車輛調(diào)頭這樣的情況也可以比較清楚地看出來。
2.5.3 多終端身份驗證
由于校園公交系統(tǒng)包括三個APP及一個后臺服務器端,系統(tǒng)功能又涉及校園公交運輸這樣具有較高安全要求的領(lǐng)域,因此如何實現(xiàn)多終端間的身份驗證,保證系統(tǒng)中一些敏感的接口不被非法調(diào)用,也是項目組在研發(fā)過程中面臨的一個主要技術(shù)問題。
針對不同的安全要求,采用了三種不同復雜度的身份驗證:公鑰算法加密身份驗證、基于Token的身份驗證和無身份驗證。
(1)公鑰算法加密身份驗證。APP通過服務器端的公鑰對通信內(nèi)容進行加密,并發(fā)送給服務器,服務器通過其私鑰解密并驗證消息內(nèi)容。這種驗證機制主要用于用戶注冊這種具有較高安全敏感性的功能中,以保證注冊數(shù)據(jù)不被非法第三方所獲取。
(2)基于Token的身份驗證。APP與服務器之間通過登錄時約定的Token進行身份驗證,并結(jié)合Hash算法和時間戳等,實現(xiàn)對通信過程中重放攻擊和中間人攻擊等基本攻擊模式的抵御。
(3)無身份驗證。對于類似查看車輛位置這類無需注冊賬號也可以使用的功能,不采用任何身份驗證機制,以提高前后臺通信的效率。
綜合運用上述身份驗證機制,能夠較好地保障系統(tǒng)的整體安全性。
3.1.1 開發(fā)平臺
本文設計的校園公交系統(tǒng)前后端采用不同的開發(fā)平臺。
(1)前端APP開發(fā)平臺。為了實現(xiàn)跨平臺的移動服務支持,APP的目標平臺為主流的Android和iOS,其中Android開發(fā)及編譯環(huán)境為Windows 7,iOS開發(fā)編譯環(huán)境為MacOS10。
(2)后臺系統(tǒng)的開發(fā)平臺??紤]到系統(tǒng)的穩(wěn)定性需求,后臺系統(tǒng)的目標平臺定為LAMP(或LNMP)平臺(見表1),開發(fā)環(huán)境可能會是Windows和Linux的混合環(huán)境。
表1 后臺系統(tǒng)目標平臺
3.1.2 開發(fā)語言及工具
由于開發(fā)平臺不同,校園公交系統(tǒng)前后端將采用不同的語言工具。
(1)前端開發(fā)語言及工具。采用Java語言進行前端APP開發(fā),使用的集成開發(fā)環(huán)境(IDE)為Android Studio,擬支持的Android版本為4.0-6.0。
(2)后臺開發(fā)語言及工具。采用PHP語言進行后臺開發(fā),擬采用ThinkPHP作為主要開發(fā)框架,可能采用的IDE包括Zend Studio、PhpStorm等。
系統(tǒng)開發(fā)完成后,項目組對系統(tǒng)功能進行了試用和測試,在測試過程中,APP軟件運行穩(wěn)定、流暢,各項功能均能夠正常工作,能夠?qū)崿F(xiàn)預期設計目標,如圖6所示。
圖6 校園公交系統(tǒng)實際運行效果
本文針對高校校園公交運營中存在的乘車難問題,設計并實現(xiàn)了一種“校園公交定位與調(diào)度服務系統(tǒng)”,面向乘車人、駕駛員和調(diào)度人員提供服務,優(yōu)化其運營模式,解決乘客乘車問題。經(jīng)測試,本文系統(tǒng)工作正常,能夠達到設計目的。同時,本文研發(fā)的校園公交系統(tǒng)還具有以下特點:
(1)易用性。本文設計的校園公交系統(tǒng)采用移動互聯(lián)網(wǎng)解決方案,無需專用定位設備,從而降低了系統(tǒng)整體實施難度,提高了系統(tǒng)易用性。
(2)完整性。本文系統(tǒng)能夠面向乘車人、駕駛員和調(diào)度人員提供服務,形成一個較完整的服務體系。
(3)安全性。本文系統(tǒng)在設計上著重考慮了安全問題,對駕駛員采用語音播報方式提供服務,保障行車安全;前后臺采用三重級別的身份驗證,保障系統(tǒng)安全。
由于景區(qū)擺渡車與校園公交的應用場景有較多類似之處,接下來項目組還將繼續(xù)開發(fā)面向風景旅游區(qū)的擺渡車定位與服務系統(tǒng)。
[1] Walkor. Workerman 手冊[EB/OL]. 2015. http://doc. workerman.net/315110.
[2] 王柳英,李好.大學校園智慧交通服務體系構(gòu)建——東南大學九龍湖校區(qū)的實證研究[J].城市建設理論研究(電子版),2015,5(12).
[3] 劉亮.基于乘客特征的校園公交優(yōu)化調(diào)查研究——以長安大學渭水校區(qū)為例[J].科學與財富,2016(11).
[4] 黎景壯,馮平,龔啟東,等.一種校園智能公交系統(tǒng):中國,CN204537436U[P].2015-03-05.
[5] 張狄祥,孫梅,李成蹊.基于北斗導航系統(tǒng)校內(nèi)公交智能調(diào)度系統(tǒng)[C]‖中國衛(wèi)星導航學術(shù)年會暨“天衡導航·北斗杯”全國青少年科技創(chuàng)新大賽.2013.
[6] 蔣威,楊帆,劉佳杰,等.基于transcad 軟件的校園公交系統(tǒng)層次化設計--以江蘇大學為例[J].科技視界,2014(9):96-97.
[7] 夏耩.互聯(lián)網(wǎng)+公交的智能公交查詢系統(tǒng)設計[D].成都:成都理工大學,2016.
The Design and Implementation of Campus Bus Location and Scheduling Services System
Cheng FuchaoMei En
(Chengdu University,Chengdu 610106,Sichuan)
To resolve the difficulty to take a campus bus,a campus bus location and scheduling services system is designed and implemented,which can acquire the real-time location of passenger and vehicle with mobile phone,and provide passengers the services such as vehicle locating,arrival time prediction,vehicle booking and campus navigation.In order to improve the operation of campus bus,this system can also provide services as passenger location display and broadcast,vehicle status report,instant message communication for controllers and drivers.The system,which works properly in testing,has achieved the target of designing.
campus bus;location service;scheduling service
U491.17
A
1008-6609(2017)09-0038-05
程付超(1985-),男,四川瀘州人,博士,講師,研究方向為計算機軟件技術(shù)。