趙 超 王 泓
(沈陽師范大學(xué)科信軟件學(xué)院,遼寧 沈陽 110034)
基于B/S 結(jié)構(gòu)的Web 程序的開發(fā),有非常大的靈活性,允許用戶遠(yuǎn)程訪問系統(tǒng)資源的同時(shí)能對數(shù)據(jù)平臺(tái)和管理訪問權(quán)限進(jìn)行有效的保護(hù)。 B/S 結(jié)構(gòu)軟件的所有的客戶端只是瀏覽器,也只需要管理服務(wù)器,更為快捷、方便、高效。 與C/S 體系結(jié)構(gòu)相比,B/S 體系結(jié)構(gòu)不僅具有C/S 體系結(jié)構(gòu)的全部優(yōu)點(diǎn),而且具有客戶端零維護(hù)、可擴(kuò)展性好、安全性好、資源重用性好等新的優(yōu)點(diǎn)。
計(jì)算機(jī)收費(fèi)系統(tǒng)式收費(fèi)站的主要組成部分[3]。 每個(gè)收費(fèi)站由網(wǎng)絡(luò)服務(wù)器、管理計(jì)算機(jī)構(gòu)成的上端管理系統(tǒng)和若干個(gè)車道控制計(jì)算機(jī)構(gòu)成 的車道控制系統(tǒng)組成局域網(wǎng)。 高速公路計(jì)算機(jī)收費(fèi)系統(tǒng)的目標(biāo)是:按照每輛車的車型和實(shí)際行駛里程收費(fèi);提高收費(fèi)的工作效率,盡量降低由于收費(fèi)過程引起的交通延誤,提高高速公路的通行能力;實(shí)現(xiàn)高速公路的現(xiàn)代化營運(yùn)管理為智能運(yùn)輸系統(tǒng)的實(shí)現(xiàn)留有一定的接口?;谙到y(tǒng)的以上目標(biāo),收費(fèi)系統(tǒng)應(yīng)該具有以下功能:
1)實(shí)行計(jì)算機(jī)管理,盡量減少人為干預(yù),保證車型判別的正確性。
2)系統(tǒng)能自動(dòng)檢查設(shè)備運(yùn)行狀態(tài),能準(zhǔn)確并及時(shí)地給出故障信息和故障排除信息。
3)系統(tǒng)應(yīng)該是全天候、實(shí)時(shí)的,如收費(fèi)車道應(yīng)該在任何時(shí)間有車輛通過時(shí)能正常使用。
4)具有一定的報(bào)警功能,如遇搶劫時(shí)的遠(yuǎn)程報(bào)警,與車輛沖關(guān)或進(jìn)出口收費(fèi)員判刑不一致時(shí)報(bào)警。
根據(jù)以上對系統(tǒng)需求的描述和功能的分析, 對于收費(fèi)管理系統(tǒng),它主要處理的數(shù)據(jù)是收費(fèi)數(shù)據(jù),主要包括4 個(gè)模塊:數(shù)據(jù)登錄模塊,錄入模塊,維護(hù)模塊。
MVC 某種語言所特有的設(shè)計(jì)思想, 而是所有面向?qū)ο蟪绦蛟O(shè)計(jì)語言都應(yīng)該遵守的規(guī)范[4]。MVC 思想將應(yīng)用分為三個(gè)基本部分:模型、視圖、控制器。這三個(gè)部分將以最少的耦合協(xié)同工作,從而提高應(yīng)用的可擴(kuò)展性及可維護(hù)性。
Struts2 是Struts 的下一代產(chǎn)品,是一個(gè)優(yōu)雅的,可擴(kuò)展的Java EE Web 框架[5]。 它是Struts 和WebWork 的技術(shù)基礎(chǔ)上進(jìn)行合并的全新的Struts2 框 架 。 但 是 ,Struts2 沒 有 繼 承 Struts1 的 血 統(tǒng) , 而 是 繼 承WebWork 的血統(tǒng)。 Struts 框架作為 MVC 模式的典型實(shí)現(xiàn), 對 Model、View 和Controller 都提供了對應(yīng)的實(shí)現(xiàn)組件。
Spring 框架是一個(gè)分層架構(gòu),由7 個(gè)模塊組成,各個(gè)模塊之間是相互的。Spring 其他模塊構(gòu)建在核心容器之上,其中,核心容器定義了創(chuàng)建、配置和管理bean 的方式。
在系統(tǒng)需求分析和設(shè)計(jì)的基礎(chǔ)上,在系統(tǒng)的開發(fā)過程中,將SSH架構(gòu)應(yīng)用到實(shí)際的項(xiàng)目開發(fā)中,并且利用第三方報(bào)表開發(fā)軟件開發(fā)報(bào)表部分,極大地簡化了系統(tǒng)的開發(fā),提高了效率。在整個(gè)系統(tǒng)的實(shí)現(xiàn)過程中,本文主要實(shí)現(xiàn)了收費(fèi)管理系統(tǒng)模塊。
用戶登錄模塊的設(shè)計(jì)中完全實(shí)現(xiàn)了MVC 模式, 實(shí)現(xiàn)了視圖與數(shù)據(jù)處理的分離。 登錄頁面、修改密碼頁面以及登錄成功頁面構(gòu)成視圖層;用戶登錄及修改密碼的請求應(yīng)答控制由控制器實(shí)現(xiàn);具體的用戶信息合法性由Struts2 提供的客戶端輸入校驗(yàn)完成, 保證輸入信息的合法性。 圖1 是用戶登錄的簡要圖。
圖1 用戶登錄圖
數(shù)據(jù)錄入模塊主要就是報(bào)表文件的開發(fā),設(shè)計(jì)報(bào)表文件,首先要打開設(shè)計(jì)器,連接到數(shù)據(jù)源,然后開始進(jìn)行報(bào)表文件的設(shè)計(jì)。本模塊中報(bào)表文件,僅用于數(shù)據(jù)錄入,因此可以創(chuàng)建的報(bào)表應(yīng)該選擇填報(bào)或參數(shù)表單。 然后在快逸報(bào)表中的表格中填寫選項(xiàng),設(shè)置選項(xiàng)的屬性要根據(jù)需求來設(shè)置,包括設(shè)置數(shù)據(jù)的格式,編輯的風(fēng)格、是否可寫,能否為空等。
該模塊主要是負(fù)責(zé)維護(hù)人員名單的相關(guān)信息。由于本系統(tǒng)是內(nèi)部人員使用的系統(tǒng),用戶較少,不需要通過注冊來添加人員,而是通過該模塊來添加刪除人員或者修改其權(quán)限。
主要涉及到的信息包括:站號(hào)、用戶ID、用戶名、用戶密碼、班次編號(hào)、錄入權(quán)限、監(jiān)視權(quán)限、統(tǒng)計(jì)權(quán)限、檢索權(quán)限、稽查權(quán)限、維護(hù)權(quán)限、票據(jù)管理權(quán)限、卡管理權(quán)限等,如表1 所示。其中各種管理權(quán)限來自于用戶信息中purview 字段,每個(gè)比特位代表一種權(quán)限。
表1 人員權(quán)限設(shè)置圖
系統(tǒng)采用SSH(Struts2+Spring+Hibernate)輕量級框架,完成了高速公路收費(fèi)管理系統(tǒng)的開發(fā),對三個(gè)框架的使用和集成有了深刻的認(rèn)識(shí)。本文詳細(xì)介紹了三個(gè)框架的背景、相關(guān)技術(shù)以及內(nèi)部實(shí)現(xiàn)原理,包括MVC 的開發(fā)模式、ORM 技術(shù)以及IOC 和AOP, 這些對于系統(tǒng)的開發(fā)有非常重要的幫助。項(xiàng)目基于MVC 的思想進(jìn)行開發(fā),Struts2 框架負(fù)責(zé)了表示層和控制層; 采用Hibernate 框架以面向?qū)ο蟮姆绞絹碓L問數(shù)據(jù)庫, 極大地簡化了數(shù)據(jù)庫操作;Spring 框架將業(yè)務(wù)層又細(xì)分為業(yè)務(wù)邏輯層和數(shù)據(jù)持久層,使得接口和實(shí)現(xiàn)進(jìn)一步的分離,使開發(fā)者從繁雜的事務(wù)管理中解脫出來,而專注于業(yè)務(wù)邏輯的處理。
[1]彭艷玲,胡松濤.高速公路收費(fèi)現(xiàn)狀與存在問題研究[J].山西科技,2008(04):10-12.doi:10.3969/j.issn.1004-6429.2008.04.005.
[2]吳煒,丁月華,文貴華.ETC 車道控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2001(05):162-163.doi:10.3969/j.issn.1000-3428.2001.05.065.
[3]郭敏.高速公路收費(fèi)系統(tǒng)[M].北京:人民交通出版社,2002,7:15.
[4]李剛.較輕量級 JavaEE 企業(yè)應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2004,11:158.
[5][美]巴西亞,等,編.Java 企業(yè)級持久化技術(shù)指南[M].葉斌,譯.北京:科學(xué)出版社,2010,6:137.
[6]白廣元.Java Web 整合開發(fā)完全自學(xué)手冊[S].北京:機(jī)械工業(yè)出版社,2009,8:144.