劉 炎,李曉明
(浙江理工大學(xué) 機(jī)械與自動控制學(xué)院,浙江 杭州 310018)
面向全生命周期的公共自行車管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
劉 炎,李曉明
(浙江理工大學(xué) 機(jī)械與自動控制學(xué)院,浙江 杭州 310018)
為解決城市公共自行車管理系統(tǒng)運(yùn)營和維護(hù)中存在的問題,對傳統(tǒng)系統(tǒng)中公共自行車的使用、調(diào)度、維修等進(jìn)行分析,建立了以公共自行車全生命周期為核心的租賃管理系統(tǒng)模型.通過研究分析公共自行車系統(tǒng)的業(yè)務(wù)需求,確定系統(tǒng)的多角色用戶及其交互的模型,建立以公共自行車為核心的系統(tǒng)軟件模型與功能框架.采用HTML5和Java EE技術(shù)開發(fā)一系列面向不同用戶的移動應(yīng)用軟件,打破了各角色之間的信息交互壁障.該系統(tǒng)最終實(shí)現(xiàn)了公共自行車從管理、維護(hù)到使用的智能化、網(wǎng)絡(luò)化和數(shù)據(jù)化,對推動公共自行車行業(yè)的精細(xì)化管理具有重要意義.
公共自行車系統(tǒng);全生命周期;HTML5;Java EE
在我國,公共自行車已經(jīng)成為一種方便、快捷的出行工具,基本滿足了人們短程出行的需求[1].但是,傳統(tǒng)公共自行車系統(tǒng)中管理、維修、調(diào)度、用戶等模塊相對獨(dú)立,角色定義模糊[2],導(dǎo)致了各模塊之間數(shù)據(jù)與信息的流通不暢,系統(tǒng)功能單一.針對上述問題,不同學(xué)科背景或不同研究領(lǐng)域的學(xué)者從不同角度出發(fā)進(jìn)行了探索.周揚(yáng)軍提出了具有普適意義的城市公共自行車系統(tǒng)規(guī)劃框架[3];莫嬌等針對現(xiàn)有公共自行車系統(tǒng)的信息管理問題,設(shè)計(jì)了基于移動互聯(lián)技術(shù)的城市公共自行車租賃系統(tǒng)[4];吳滿金等針對公共自行車系統(tǒng)的自行車時(shí)空分布不均衡問題,建立了公共自行車系統(tǒng)動態(tài)調(diào)度多目標(biāo)優(yōu)化模型[5].這些研究主要針對系統(tǒng)中某個(gè)具體模塊或者某一特定角色進(jìn)行分析和規(guī)劃,并未考慮系統(tǒng)的整合和全平臺數(shù)據(jù)互通、多角色信息交流的潛在需求,從而無法構(gòu)建包括管理、維護(hù)、租賃為一體的信息系統(tǒng).
面向全生命周期的公共自行車系統(tǒng)是一套以自行車為主線,以多角色為主體的租賃管理系統(tǒng).本文通過分析公共自行車從入庫登記、管理調(diào)度、使用報(bào)修到維修報(bào)廢等生命周期各階段的流程和狀態(tài),使用統(tǒng)一建模語言UML(Unified Modeling Language)對整個(gè)租賃管理系統(tǒng)進(jìn)行設(shè)計(jì)和建模,運(yùn)用Java EE和HTML5等技術(shù)對系統(tǒng)進(jìn)行軟件實(shí)現(xiàn),為該系統(tǒng)的進(jìn)一步改進(jìn)提供理論基礎(chǔ)和設(shè)計(jì)方案.
在傳統(tǒng)公共自行車系統(tǒng)中,自行車的管理、維護(hù)和租賃是相互獨(dú)立的[6],各系統(tǒng)模塊的分離導(dǎo)致了系統(tǒng)服務(wù)的滯后和脫節(jié).為了提高系統(tǒng)的協(xié)調(diào)性和完整性,需要對公共自行車全生命周期的業(yè)務(wù)需求進(jìn)行研究分析.公共自行車管理系統(tǒng)有兩個(gè)基本需求.第一個(gè)需求針對本企業(yè)職工而言,注重的是自行車的管理和系統(tǒng)的維護(hù),包括:①自行車信息的增刪改查;②自行車的巡檢、維護(hù)保養(yǎng)和實(shí)時(shí)調(diào)度.第二個(gè)需求針對普通用戶的自行車使用,具體來說就是用戶正常租借和歸還自行車的功能.但是,為了保證系統(tǒng)的完整性和可維護(hù)性,新系統(tǒng)還應(yīng)該擁有以下功能:①自行車預(yù)約;②對已損壞車輛進(jìn)行報(bào)修;③手機(jī)掃碼借車;④導(dǎo)航功能.根據(jù)需求可確定公共自行車管理系統(tǒng)的整體框架(圖1).系統(tǒng)服務(wù)器從站點(diǎn)設(shè)備終端獲取站點(diǎn)和車輛信息,將信息分類整理后存入數(shù)據(jù)庫.PC管理后臺主要負(fù)責(zé)數(shù)據(jù)維護(hù)和信息的接收和發(fā)布.用戶、調(diào)度人員和巡檢維修人員根據(jù)移動端設(shè)備來獲取數(shù)據(jù)信息并進(jìn)行相關(guān)的業(yè)務(wù)操作.
圖1 公共自行車管理系統(tǒng)整體框架
在確定系統(tǒng)框架的情況下,可對系統(tǒng)進(jìn)行建模.本文通過多種維度和角色建立自行車全生命周期的管理需求模型,為系統(tǒng)設(shè)計(jì)提供更加全面的依據(jù).
1.1系統(tǒng)功能描述
UML是對軟件密集系統(tǒng)進(jìn)行可視化建模的一種面向?qū)ο蟮慕UZ言,它運(yùn)用統(tǒng)一、標(biāo)準(zhǔn)化的標(biāo)記和定義對軟件系統(tǒng)進(jìn)行面向?qū)ο蟮拿枋龊徒7].圖2描述了公共自行車系統(tǒng)中用戶對象、需求和系統(tǒng)功能之間的關(guān)系,展示了包括系統(tǒng)管理員、巡檢人員、維修人員、普通用戶和調(diào)度人員能夠觀察到的公共自行車系統(tǒng)的功能模型[8].該軟件模型描述了所有角色作為一個(gè)整體的系統(tǒng)設(shè)計(jì).
圖2 公共自行車管理系統(tǒng)全生命周期功能模型
1.2系統(tǒng)流程分析
根據(jù)公共自行車系統(tǒng)的相關(guān)功能和業(yè)務(wù)需求,可得出圖3所示的公共自行車管理系統(tǒng)全生命周期活動圖.
圖3描述了整個(gè)活動的順序,著重表現(xiàn)系統(tǒng)的行為而非系統(tǒng)的處理過程.傳統(tǒng)公共自行車系統(tǒng)流程包含自行車的信息錄入、使用、維修和調(diào)度等[9].梳理各模塊在系統(tǒng)中的業(yè)務(wù)活動,建立各模塊之間的業(yè)務(wù)聯(lián)系和功能聯(lián)系,可展現(xiàn)系統(tǒng)中不同角色活動的控制流,并顯示出各種活動狀態(tài)的先后順序.在圖3中,用泳道來表示系統(tǒng)中5個(gè)不同角色在整個(gè)工作流程中的對應(yīng)職責(zé),系統(tǒng)中會出現(xiàn)多個(gè)并發(fā)運(yùn)行的控制流,比如在“投放自行車”之后,用戶“借車”和巡檢人員參與“巡檢”同時(shí)進(jìn)行,兩個(gè)角色的業(yè)務(wù)流程不存在任何沖突,但最終都會匯集到系統(tǒng)管理員處,以便進(jìn)行數(shù)據(jù)的更新和維護(hù).
圖3 公共自行車管理系統(tǒng)全生命周期活動圖
1.3自行車進(jìn)程狀態(tài)分析
狀態(tài)圖主要描述的是軟件構(gòu)成元素在觸發(fā)事件作用下的狀態(tài)變化路徑[10].它既可以描述一個(gè)對象所經(jīng)歷的狀態(tài)序列,又可以描述整個(gè)場景的狀態(tài)變化.狀態(tài)圖作為描述系統(tǒng)狀態(tài)變化的直觀方式,一直以來在系統(tǒng)設(shè)計(jì)中發(fā)揮著不可替代的作用.
圖4所示為公共自行車管理系統(tǒng)全生命周期的狀態(tài)圖.它描述了系統(tǒng)中自行車從入庫到最后銷毀報(bào)廢的過程.包括自行車從起始狀態(tài)到登記之后變成“入庫”的狀態(tài);自行車處于“在樁”狀態(tài)時(shí)會出現(xiàn)“預(yù)約”、“借出”、“維修”和“調(diào)度中”等狀態(tài),并在這些狀態(tài)之間相互轉(zhuǎn)換,直到自行車維修失敗而進(jìn)入“報(bào)廢”狀態(tài),生命終止.
圖4 公共自行車管理系統(tǒng)全生命周期狀態(tài)圖
公共自行車管理系統(tǒng)的設(shè)計(jì)主要包括服務(wù)器端、瀏覽器端和移動端的開發(fā).
2.1服務(wù)器端
服務(wù)器的重要功能是與各個(gè)移動端和瀏覽器端進(jìn)行交互,確保數(shù)據(jù)傳輸過程的穩(wěn)定性、可靠性和可控性.其主要模塊包括微信接口模塊、客戶端接口模塊、數(shù)據(jù)庫模塊和資源接口模塊.
(1)微信接口模塊負(fù)責(zé)處理用戶使用公共自行車時(shí)發(fā)送過來的用戶請求,例如用戶借還車請求等.
(2)客戶端接口模塊負(fù)責(zé)處理用戶的App客戶端和PC端的數(shù)據(jù)請求.一個(gè)請求對應(yīng)一個(gè)處理流程.數(shù)據(jù)被存儲在隊(duì)列中或者數(shù)據(jù)庫中,以方便功能擴(kuò)展.
(3)資源接口模塊用來提供軟件系統(tǒng)所需的靜態(tài)文件,包括HTML文檔、視頻文件、圖像文件等.
2.2通信協(xié)議
HTTP協(xié)議可以應(yīng)用于各種各樣的網(wǎng)絡(luò)系統(tǒng)(特別是獨(dú)立IP比較稀缺的環(huán)境). HTTP 協(xié)議基于請求應(yīng)答的通訊模式并不保持長久連接,避免了客戶端長期占用網(wǎng)絡(luò)資源,可以同時(shí)服務(wù)較多的客戶端[11].考慮到本系統(tǒng)需要多種終端的實(shí)時(shí)通訊,這里優(yōu)先選擇HTTP通信協(xié)議.
通信協(xié)議內(nèi)容采用的是JSON(Java Script Object Notation)格式封裝的字符串.JSON是一種描述數(shù)據(jù)的文本.Java支持JSON字符串與對象的相互轉(zhuǎn)換,同時(shí)前臺的JavaScript對JSON提供原生支持.因此,本系統(tǒng)采用 JSON格式的數(shù)據(jù)交換方式是不存在任何障礙的.JSON 數(shù)據(jù)可以通過HTTP協(xié)議的 POST方法傳遞.HTTP協(xié)議中定義了多種操作指定資源方式,例如 GET、POST、HEAD等.這里只考慮GET 和POST,同時(shí)考慮到GET傳遞的字符串長度受限,本系統(tǒng)首選POST方法.上述方法只能用來傳遞文本數(shù)據(jù),對于照片、圖片等二進(jìn)制信息,必須使用標(biāo)準(zhǔn)的HTTP協(xié)議進(jìn)行傳遞.因此,系統(tǒng)首先通過JSON傳遞需要下載的二進(jìn)制文件URL(Uniform Resource Locator),然后通過解析URL,從服務(wù)器下載指定的二進(jìn)制文件并保存.
2.3瀏覽器端
瀏覽器端主要是實(shí)現(xiàn)系統(tǒng)管理員通過可視化界面與服務(wù)器的數(shù)據(jù)通訊,獲取實(shí)時(shí)信息,并對自行車相關(guān)信息進(jìn)行錄入和發(fā)布.
(1)以圖表方式顯示自行車、站點(diǎn)和車樁等實(shí)時(shí)信息,包括自行車的編號、狀態(tài)、生產(chǎn)日期,站點(diǎn)車樁的可租借狀態(tài)和數(shù)量等.
(2)實(shí)現(xiàn)自行車、站點(diǎn)和車樁信息的手動增刪改查操作,以及數(shù)據(jù)的自動更新功能.
(3)加載高德地圖,并根據(jù)站點(diǎn)的空樁比來標(biāo)識不同狀態(tài)的站點(diǎn)圖標(biāo),實(shí)時(shí)顯示各個(gè)站點(diǎn)的編號和名稱等信息.
(4)實(shí)現(xiàn)各種訂單和任務(wù)的管理和發(fā)布,包括對報(bào)修維修訂單的審核,并根據(jù)站點(diǎn)的實(shí)時(shí)空樁比來生成最佳調(diào)度任務(wù).
(5)實(shí)現(xiàn)系統(tǒng)用戶的設(shè)置和管理.系統(tǒng)中包含本企業(yè)員工和普通用戶,需要分別設(shè)置各角色的訪問權(quán)限和功能權(quán)限.
2.4移動端
對于移動端來說,普通用戶是其主要使用者.而微信作為一個(gè)超過2億用戶的移動平臺已經(jīng)不僅僅是“通訊工具”,更是一個(gè)應(yīng)用平臺.本系統(tǒng)將微信公眾號[12]作為依托,使用HTML5來自行開發(fā)包括租賃在內(nèi)的手機(jī)端應(yīng)用,并通過調(diào)用微信公眾平臺提供的開發(fā)接口使用手機(jī)的相關(guān)功能.為了識別每個(gè)關(guān)注微信公眾號的用戶,開發(fā)平臺針對每個(gè)用戶會產(chǎn)生一個(gè)安全的OpenID.
為保證用戶方便快捷地借還車,系統(tǒng)應(yīng)用中通過調(diào)用高德地圖提供的API(Application Programming Interface)來植入地圖,同時(shí)標(biāo)記用戶附近的站點(diǎn).點(diǎn)擊站點(diǎn)圖標(biāo)會顯示當(dāng)前站點(diǎn)可用車輛數(shù)目,并且可以提前預(yù)約,預(yù)約保留5 min,以方便用戶自行計(jì)劃出行.用戶到達(dá)站點(diǎn)后通過系統(tǒng)的掃碼借車功能進(jìn)行車輛的借出.
針對其他用戶(包括巡檢、維修和調(diào)度人員)的人數(shù)基數(shù)小,功能要求單一,本系統(tǒng)采用HTML5來開發(fā)相關(guān)手機(jī)軟件[13],并通過Hbuilder工具進(jìn)行打包發(fā)布.
調(diào)度人員可以通過查看系統(tǒng)管理員發(fā)布的調(diào)度任務(wù)執(zhí)行調(diào)度,期間可以手動輸入或者掃碼來錄入自行車信息.巡檢人員通過提交自行車相關(guān)的位置信息和故障信息來完成報(bào)修,而維修人員得到相關(guān)的任務(wù)信息后可以到指定的地點(diǎn)進(jìn)行維修.如果自行車損壞太嚴(yán)重則搬運(yùn)至維修中心進(jìn)行檢查維修.公共自行車管理系統(tǒng)的移動端界面如圖5所示.
圖5 公共自行車管理系統(tǒng)的移動端界面
在整個(gè)系統(tǒng)的開發(fā)過程中,軟件測試是非常重要的一部分,是系統(tǒng)能否正常運(yùn)行的關(guān)鍵.為了測試該系統(tǒng)的穩(wěn)定性和實(shí)用性,將系統(tǒng)服務(wù)器部署到私有云上,并接入浙江工業(yè)大學(xué)智能交通系統(tǒng)聯(lián)合研究所的硬件平臺進(jìn)行測試.測試主要包括微信公眾號掃碼借還車,巡檢人員提交報(bào)修表單,維修人員查看實(shí)時(shí)報(bào)修任務(wù),調(diào)度人員查看系統(tǒng)管理員發(fā)布的實(shí)時(shí)調(diào)度任務(wù)等.測試表明系統(tǒng)運(yùn)行正常,各個(gè)業(yè)務(wù)流程運(yùn)行無障礙,數(shù)據(jù)傳輸流暢,界面設(shè)計(jì)合理,比較符合當(dāng)前國內(nèi)用戶和系統(tǒng)工作人員的使用習(xí)慣.
(1)本文通過UML建立系統(tǒng)模型,使用Java EE和HTML5等技術(shù)完成系統(tǒng)軟件的開發(fā),實(shí)現(xiàn)了數(shù)據(jù)采集、分析和共享為一體的全方位公共自行車管理系統(tǒng),完成了自行車全生命周期的狀態(tài)監(jiān)控.該系統(tǒng)獨(dú)立于現(xiàn)有任何公共自行車系統(tǒng),具有良好的可擴(kuò)展性和可移植性,可以在多種平臺和系統(tǒng)中進(jìn)行部署發(fā)布.
(2)研究過程中發(fā)現(xiàn),本系統(tǒng)還存在不足之處,包括未對站點(diǎn)自行車的數(shù)量進(jìn)行提前預(yù)測,沒有對用戶進(jìn)行起點(diǎn)到終點(diǎn)的路徑規(guī)劃.今后將重點(diǎn)研究系統(tǒng)的站點(diǎn)信息預(yù)測功能,使其更加完善.
[1] Zhao Y,Chen L, Teng C,et al. Greenbicycling: A smartphone-based public bicycle sharing system for healthy life[C]//The 2013 IEEE International Conference on Cyber, Physical and Social Computing.Beijing:Beihang University,2013:1335-1340.
[2] 曾帥帥, 王紅方, 薛 斌, 等. “互聯(lián)網(wǎng)+” 時(shí)代下的公共自行車租賃研究[J].當(dāng)代體育科技,2017,7(5):149-150.
[3] 周揚(yáng)軍. 城市公共自行車系統(tǒng)規(guī)劃研究[J].城市交通,2012(5): 50-54.
[4] 莫 嬌,廖 斌,徐少波,等.基于移動互聯(lián)技術(shù)的公共自行車租賃系統(tǒng)設(shè)計(jì)[J].科技創(chuàng)新與應(yīng)用,2015(20):31-32.
[5] 吳滿金, 董紅召, 劉冬旭, 等. 公共自行車多目標(biāo)動態(tài)調(diào)度建模與算法研究[J].機(jī)電工程,2015,32(7):1006-1010.
[6] Fishman E,Washington S,Haworth N.公共自行車文獻(xiàn)綜述[J].城市交通,2014,12(2):84-94.
[7] 郭 婧, 吳軍華. 面向方面的 UML 建模[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(12):4260-4264.
[8] 袁國銘, 劉 瑞, 樊 波, 等. UML 用例圖在軟件工程中的步驟設(shè)計(jì)研究[J].微型電腦應(yīng)用,2014(1):46-48.
[9] 柳祖鵬, 李克平, 朱曉宏. 基于蟻群算法的公共自行車站間調(diào)度優(yōu)化[J].交通信息與安全,2012,30(4):71-74.
[10] 樊 波, 袁國銘, 周 萍, 等. UML 狀態(tài)圖在軟件工程設(shè)計(jì)中的應(yīng)用研究[J].微型電腦應(yīng)用,2015(11):36-37,44.
[11] 祝 瑞,車 敏.基于HTTP協(xié)議的服務(wù)器程序分析[J].現(xiàn)代電子技術(shù),2012(4):117-119.
[12] 杜 輝,劉 曉,袁百成. 基于微信公眾平臺的高校圖書館學(xué)科服務(wù)創(chuàng)新[J].圖書情報(bào)工作,2015(6):41-45.
[13] 黃悅深.基于HTML5的移動Web App開發(fā)[J].圖書館雜志,2014,33(7):72-77.
DesignandImplementationofFull-life-cyclePublicBicycleSystem
LIU Yan,LI Xiao-ming
(School of Mechanical Engineering and Automation,Zhejiang Sci-Tech University,Hangzhou 310018,China)
In order to solve the problems in the operation and maintenance of the urban public bicycle system, the user activity, scheduling and maintenance of bicycles in traditional system are studied, and the leasing management system model with the full-life-cycle public bicycle is established. Through the analysis of the business requirements in the public bicycle system, the standard software model of the system is established, and a series of software application based on mobile devices have been designed and developed by use of HTML5 and Java EE. These software applications have successfully broken the data transmission and communication barrier between the sub-system and system roles. The system finally realized the intelligent, networked and digitization of the public bicycle system’s management, maintenance and usage, which is of great significance to promote the public bicycle industry to quickly enter the Internet 3.0 era.
public bicycle system; full life cycle;HTML5; Java EE
2017-06-06
國家自然科學(xué)基金聯(lián)合基金資助項(xiàng)目(U1609205)
劉 炎(1992-),男,湖北隨州人,碩士研究生,研究方向?yàn)檐浖こ碳夹g(shù).
1006-3269(2017)03-0024-05
TP24
A
10.3969/j.issn.1006-3269.2017.03.006