曾 勇, 徐延軍,2
(1.中海網(wǎng)絡(luò)科技股份有限公司,上海200135;2.同濟(jì)大學(xué),上海200092)
高速公路收費系統(tǒng)作為回收高速公路建設(shè)投資的主要工具,一直被業(yè)主高度關(guān)注。其中,車道軟件作為系統(tǒng)交易的數(shù)據(jù)源,是高速公路聯(lián)網(wǎng)收費系統(tǒng)的基礎(chǔ)。現(xiàn)階段,車道軟件主要面向收費流程的自動化,隨著新技術(shù)、新功能、新需求及新的收費模式的不斷涌現(xiàn),其局限性越來越明顯。
1.車道設(shè)備廠家、品牌眾多,硬件設(shè)備升級換代快,業(yè)主因管理提升不斷調(diào)整需求,各省之間業(yè)務(wù)流程差別巨大等因素,導(dǎo)致現(xiàn)有車道軟件大都通過修改核心代碼進(jìn)行定制開發(fā),版本更新頻繁,可擴(kuò)展性、可維護(hù)性、兼容性和穩(wěn)定性都很差。
2.隨著新功能、新技術(shù)的不斷應(yīng)用,收費流程日益復(fù)雜,需要進(jìn)一步整合優(yōu)化。
3.不停車電子收費系統(tǒng)(Electr onic Toll Collection,ETC)、自助刷發(fā)卡、便攜機(jī)等新的收費模式不斷出現(xiàn),車道軟件整合困難,造成多套軟件并行,維護(hù)成本極高。
為滿足高速公路運營管理不斷發(fā)展的需求,基于流程驅(qū)動的思想,設(shè)計并開發(fā)一套擴(kuò)展靈活、穩(wěn)定性強(qiáng)、兼容性好、易維護(hù)的車道平臺軟件,顯得尤為迫切。
目前,國內(nèi)高速公路收費模式主要包括公路半自動車道收費系統(tǒng)(Manual Toll Collection,MTC)和ETC兩種。
1.MTC出入口車道軟件需要對各類車輛進(jìn)行入口發(fā)卡、出口收費處理,同時需要接收各類收費參數(shù)、上傳收費流水。其軟件功能需求見圖1。
圖1 MTC出入口車道軟件功能需求圖
2.ETC出入口車道軟件主要用于滿足電子不停車收費的要求,即通過RSU和OBU之間的通信來代替MTC車道入口發(fā)卡和出口收卡的過程。車輛可在車道快速通過,實現(xiàn)入口自動刷卡、出口自動收費。其軟件功能需求見圖2。
圖2 ETC出入口車道軟件功能需求圖
1)擴(kuò)展靈活:在新技術(shù)出現(xiàn)時,允許導(dǎo)入新技術(shù),從而對現(xiàn)有系統(tǒng)進(jìn)行功能和性能上的擴(kuò)展。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下保持合理的性能。
2)基于軟件平臺模式的定制開發(fā):在軟件平臺的基礎(chǔ)上進(jìn)行業(yè)務(wù)流程的定制開發(fā),新的業(yè)務(wù)流程模塊要能通過插件方式注冊和應(yīng)用于軟件平臺,降低軟件設(shè)計和開發(fā)的技術(shù)難度,縮短項目開發(fā)周期,降低系統(tǒng)錯誤率,提升軟件質(zhì)量,維護(hù)、升級方便。
3)分層設(shè)計:分散關(guān)注、松散耦合、邏輯復(fù)用、標(biāo)準(zhǔn)定義。
4)穩(wěn)定可靠:在軟件發(fā)生故障時,把故障造成的危害限制在模塊內(nèi);建立進(jìn)程運行狀態(tài)監(jiān)控機(jī)制,可以及時發(fā)現(xiàn)程序異常,以使系統(tǒng)恢復(fù)到正常的工作狀態(tài)。
5)良好的用戶體驗:采用WPF進(jìn)行全新的界面開發(fā),分離開發(fā)與設(shè)計人員的工作,利用多媒體交互用戶圖形界面,增強(qiáng)展示效果。
基于車道軟件自身的特點,綜合傳統(tǒng)的“客戶端—服務(wù)器”以及3層架構(gòu)(UI-BLL-DAL,表示層-邏輯層-數(shù)據(jù)層)2種軟件設(shè)計模式,車道軟件架構(gòu)采用5層架構(gòu)(第1層為表示層、第2層為業(yè)務(wù)邏輯層、第3層為數(shù)據(jù)層、第4層為設(shè)備接口層、第5層為數(shù)據(jù)傳輸層)。該軟件邏輯架構(gòu)見圖3。
2.2.1 表示層
系統(tǒng)的UI部分負(fù)責(zé)用戶與整個系統(tǒng)的交互。在該平臺軟件中,UI采用WPF繪制,實現(xiàn)了UI邏輯的真正分離,為用戶創(chuàng)建更好的視覺效果。
2.2.2 業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層是系統(tǒng)架構(gòu)中最核心的部分,與系統(tǒng)所對應(yīng)的領(lǐng)域邏輯有著密切的關(guān)系。其關(guān)注的重點主要集中在業(yè)務(wù)流程的實現(xiàn)、業(yè)務(wù)規(guī)則的制定等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計上。該邏輯層處于分層架構(gòu)的中間位置,在數(shù)據(jù)交換中發(fā)揮承上啟下的作用。對于數(shù)據(jù)層而言,它是調(diào)用者;對于表示層而言,卻是被調(diào)用者。
圖3 車道平臺邏輯架構(gòu)圖
與大型的業(yè)務(wù)系統(tǒng)相比較,本平臺軟件的業(yè)務(wù)并不復(fù)雜,但包含了諸多的交易流程、合法性判斷流程、文件處理流程以及其他流程,比如ETC入口交易流程和出口交易流程,具體流程見圖4、圖5。
圖4 ETC入口交易流程圖
圖5 ETC出口交易流程圖
通過對比ETC入口交易、出口交易流程可知,二者相似度很高。該業(yè)務(wù)邏輯層從平臺軟件各流程的實際特點出發(fā),采用了流程驅(qū)動的方式對各流程進(jìn)行處理,充分考慮了流程自由組合的靈活度,使其在新增流程或現(xiàn)有流程發(fā)生變化時能靈活擴(kuò)展;同時,為增加代碼的復(fù)用度,將流程中的各步驟封裝成了一個個獨立的狀態(tài),多個狀態(tài)可以自由組合成一個新的流程,同時也可以靈活地對某個流程中的步驟進(jìn)行增加或裁剪。
流程驅(qū)動的方式在該層中具體采用狀態(tài)模式予以實現(xiàn),封裝了對各種狀態(tài)變化的處理。狀態(tài)模式的具體實現(xiàn)見圖6。
圖6 業(yè)務(wù)邏輯層狀態(tài)模式結(jié)構(gòu)圖
2.2.3 數(shù)據(jù)層
數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)庫的訪問,即實現(xiàn)對數(shù)據(jù)表的查詢、插入、更新以及刪除操作。在系統(tǒng)中,數(shù)據(jù)層通過采用開源ORM框架NHiber nate來實現(xiàn)。采用NHibemate具有以下優(yōu)點:
(1)由于ORM可以自動對Entity對象和數(shù)據(jù)庫中的Table進(jìn)行字段與屬性的映射,所以開發(fā)人員無需再編寫一個帶有大量SQL語句的龐大的數(shù)據(jù)層,加快了程序員開發(fā)系統(tǒng)的速度;
(2)采用ORM框架能夠很方便地進(jìn)行多種數(shù)據(jù)庫的轉(zhuǎn)換和遷移,減少了代碼維護(hù)工作量和出錯的幾率;
(3)NHibemate通過將數(shù)據(jù)表中的數(shù)據(jù)映射到對象中、以對象作為傳輸媒介,能更好地在各層傳輸數(shù)據(jù)。
2.2.4 設(shè)備接口層
設(shè)備接口層利用簡單工廠設(shè)計模式和反射機(jī)制,采用“面向接口編程”的思想,使得每種類型的設(shè)備都會抽象出來接口,脫離了與具體設(shè)備的依賴,利于具體設(shè)備的遷移。同時,在每種類型的設(shè)備模塊中,都有一個工廠類來負(fù)責(zé)具體設(shè)備對象的創(chuàng)建,便于業(yè)務(wù)邏輯的訪問。其結(jié)構(gòu)圖見圖7。
2.2.5 數(shù)據(jù)傳輸層
數(shù)據(jù)傳輸層在整個平臺中起著上傳下達(dá)的作用,將車道平臺產(chǎn)生的流水、圖片以及特殊事件等數(shù)據(jù)根據(jù)通信協(xié)議以TCP的方式傳輸?shù)缴霞壷行?;同時,將配置參數(shù)等數(shù)據(jù)從上級中心根據(jù)通信協(xié)議以TCP的方式下載到本地。
圖7 設(shè)備接口層簡單工廠模式結(jié)構(gòu)圖
平臺軟件基于.Netfra mewor k4.0進(jìn)行開發(fā),車道類型、業(yè)務(wù)流程都可以通過配置實現(xiàn),具有靈活組合、易于擴(kuò)展、松散耦合等優(yōu)點。
MTC出口車道軟件是平臺軟件的一個主要子系統(tǒng),這里以MTC出口車道軟件為例來闡述具體實現(xiàn)。
抽象類定義完成后,通過創(chuàng)建不同的具體狀態(tài)類來繼承該抽象類(見圖8)。
接下來就可以實現(xiàn)對具體狀態(tài)的調(diào)用,核心代碼為:
//創(chuàng)建MTC出口刷卡狀態(tài)對象并等待刷通行卡
Lane Context.State= new Exit Swipe Car d State(LaneContext);
將App.config配置文件中的Lane Type項配置為MTC出口車道軟件,具體配置為:
<add key ="Lane Type"val ue="2"/><?。?-MTC入口;2-MTC出口;3-ETC入口;4-ETC出口-->
啟動平臺軟件,登錄系統(tǒng)后,其主界面見圖9。
圖8 具體狀態(tài)派生類實現(xiàn)圖
圖9 MTC收費主界面
針對面向收費流程自動化的車道軟件在新技術(shù)、新功能、新需求及新的收費模式不斷涌現(xiàn)的情況下存在的局限性,提出了一種基于流程驅(qū)動的高速公路聯(lián)網(wǎng)收費車道平臺架構(gòu)設(shè)計,并在.Netframewor k4.0平臺下進(jìn)行了研發(fā)。研究表明,該平臺具有松散耦合、擴(kuò)展靈活、不同類型車道軟件共享平臺資源、易維護(hù)等諸多優(yōu)勢。目前,該平臺已成功試用于寧夏高速公路電子不停車收費系統(tǒng),效果良好。今后將根據(jù)業(yè)務(wù)特點不斷優(yōu)化平臺結(jié)構(gòu),使系統(tǒng)性能更加完善、應(yīng)用更加廣泛。
[1] 周家才,李維勛,吳映輝.不停車電子收費系統(tǒng)在高速公路收費中的應(yīng)用[J].科技廣場,2009(1):165-166.
[2] 鄭穎.高速公路車道收費軟件的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2010.
[3] 周楊.高速公路收費系統(tǒng)MTC車道軟件設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[4] 溫昱.軟件架構(gòu)設(shè)計[M].北京:電子工業(yè)出版社,2007.
[5] (美)George Fairbanks.恰如其分的軟件架構(gòu)[M].武漢:華中科技出版社,2013.
[6] (美)弗里曼 .Head First設(shè)計模式[M].北京:中國電力出版社,2007.
[7] 程杰.大話設(shè)計模式[M].北京:清華大學(xué)出版社,2007.
[8] 鄧建波.公路車道收費軟件的設(shè)計和開發(fā)[D].成都:電子科技大學(xué),2005.
[9] 王勝華.高速公路電子不停車收費系統(tǒng)的分析與設(shè)計[D].昆明:云南大學(xué),2012.
[10] 徐延軍,唐又林.構(gòu)件技術(shù)在高速公路車道軟件中的應(yīng)用[J].上海船舶運輸科學(xué)研究所學(xué)報,2009,32(1):43-49.