詹凌瀚,蔣秋華,王 斌
(1. 中國(guó)鐵道科學(xué)研究院 研究生部,北京 100081;2. 中國(guó)鐵道科學(xué)研究院 電子計(jì)算技術(shù)研究所,北京 100081)
隨著近年來鐵路生產(chǎn)布局調(diào)整以及貨運(yùn)組織改革等工作的深入推進(jìn),除滿足運(yùn)輸生產(chǎn)需求外,產(chǎn)生了大量的閑置資產(chǎn)和資源,主要涉及房產(chǎn)、土地、設(shè)備、廣告資源、大宗商品等。目前,采用計(jì)算機(jī)管理系統(tǒng)已成為招商管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理帶來明顯的經(jīng)濟(jì)效益和社會(huì)效益。與此同時(shí),隨著招商信息數(shù)量的增加,招商管理難度也越來越大,如何實(shí)現(xiàn)鐵路招商經(jīng)營(yíng)的成效管理也已成為重要議題。
鐵路局資產(chǎn)經(jīng)營(yíng)開發(fā)管理尚存在以下不足:
(1)經(jīng)營(yíng)性資產(chǎn)以及閑置資產(chǎn)均分散在各單位,難以產(chǎn)生規(guī)模效應(yīng),也無法充分利用鐵路資產(chǎn)資源,實(shí)現(xiàn)經(jīng)營(yíng)開發(fā)效益的最大化。
(2)由于沒有統(tǒng)一的管理模式和明確的經(jīng)營(yíng)方式,在招商過程中存在廉政風(fēng)險(xiǎn)。
(3)資產(chǎn)經(jīng)營(yíng)開發(fā)日常監(jiān)管與指導(dǎo)力度不夠,難以組織評(píng)估整體運(yùn)轉(zhuǎn)效果,全面把握總體運(yùn)行狀況。
針對(duì)這些情況,有必要研發(fā)一套完善的資產(chǎn)經(jīng)營(yíng)開發(fā)信息系統(tǒng),對(duì)全局資產(chǎn)經(jīng)營(yíng)開發(fā)的推進(jìn)情況進(jìn)行統(tǒng)一管理,從而盤活閑置資產(chǎn),提高資產(chǎn)經(jīng)營(yíng)效益,提升經(jīng)營(yíng)管理水平,以實(shí)現(xiàn)統(tǒng)一管理、科學(xué)開發(fā)。
本系統(tǒng)應(yīng)用Spring+SpringMVC+MyBatis技術(shù)對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)分層控制,易于解耦,注入簡(jiǎn)單,從而提高開發(fā)效率;采用shiro安全框架保證系統(tǒng)的登錄認(rèn)證與權(quán)限控制,提高系統(tǒng)的安全性和可靠性。
SpringMVC框架是Spring基于MVC設(shè)計(jì)模型的用于構(gòu)建Web應(yīng)用程序的一種實(shí)現(xiàn)。在JavaWeb應(yīng)用開發(fā)過程中,SpringMVC框架結(jié)合了包括JSP、Html在內(nèi)的大量視圖技術(shù),可靈活配置。SpringMVC的工作流程如圖1所示。
圖1 SpringMVC工作流程圖
SpringMVC具有以下幾個(gè)優(yōu)勢(shì):
(1)SpringMVC的安全性更高。SpringMVC是方法級(jí)別的攔截,顆粒度更小,所以更安全。
(2)SpringMVC直接使用注解的方式,使得配置更加簡(jiǎn)單清晰。
(3)SpringMVC參數(shù)傳遞更加方便。Spring-MVC直接使用對(duì)應(yīng)的實(shí)體去接收form提交的表單信息。
MyBatis是J2EE應(yīng)用開發(fā)中的一個(gè)持久層框架,它通過XML配置文件或者注解實(shí)現(xiàn)對(duì)象實(shí)體和存儲(chǔ)過程,SQL語句的關(guān)聯(lián),而不是操作對(duì)象實(shí)體類與數(shù)據(jù)庫(kù)表的關(guān)聯(lián),并且可以實(shí)現(xiàn)動(dòng)態(tài)生成SQL語句,操作數(shù)據(jù)庫(kù)進(jìn)行增加、刪除、修改、查詢等操作。MyBatis工作原理如圖2所示,通過XML配置文件將JavaBean、Map以及數(shù)據(jù)類型(如Integer、Double、String等)映射成PreparedStatement所需的輸入?yún)?shù)并以ResultMap作為結(jié)果集的返回類型展現(xiàn)。
圖2 MyBatis工作原理圖
Apache Shiro是功能強(qiáng)大而靈活的開源框架,該框架能夠簡(jiǎn)捷地處理身份認(rèn)證、授權(quán)、企業(yè)會(huì)話管理和加密等功能。由于招商系統(tǒng)各登陸用戶分屬不同角色,為避免業(yè)務(wù)混淆不清,通過Shiro進(jìn)行權(quán)限控制可以使用戶按自己的角色來分配菜單和資源。Apache Shiro框架結(jié)構(gòu)如圖3所示,包括應(yīng)用程序的基礎(chǔ)和額外功能的支持。
圖3 Apache Shiro框架結(jié)構(gòu)圖
1.3.1 應(yīng)用程序
應(yīng)用程序的基礎(chǔ)包括:身份驗(yàn)證、會(huì)話管理、授權(quán)和加密。
(1)Authentication:稱為“登錄”,這是一個(gè)可以證明用戶是合法用戶的行為;
(2)Session Management:管理用戶的會(huì)話;
(3)Authorization:訪問控制,也就是誰有權(quán)訪問哪些資源;
(4)Cryptography:通過加密算法使得數(shù)據(jù)安全并易于使用。
1.3.2 額外功能
(1)Web Support:提供了保護(hù)Web應(yīng)用程序的API接口;
(2)Caching:緩存的使用,確保安全操作快速而高效;
(3)Concurrency:支持多線程應(yīng)用程序;
(4)Testing:易于編寫單元測(cè)試和集成測(cè)試;
(5)Run As:允許用戶設(shè)定為另一用戶身份的功能;
(6)Remember Me:記住用戶的身份,在下次登錄時(shí)方便登錄。
根據(jù)實(shí)際的工作要求,擬設(shè)計(jì)2個(gè)子系統(tǒng)、12個(gè)功能模塊、32個(gè)子模塊來實(shí)現(xiàn)系統(tǒng)功能,如圖4所示。
2.1.1 招商信息管理系統(tǒng)
(1)用戶管理模塊
本功能主要實(shí)現(xiàn)用戶管理功能,客戶在客戶端進(jìn)行注冊(cè),待管理人員對(duì)注冊(cè)用戶審核后,客戶即可進(jìn)行相關(guān)操作。主要分為招商用戶(注冊(cè)、登陸),競(jìng)商用戶(注冊(cè)、登陸、注銷、信息修改)、系統(tǒng)管理用戶(注冊(cè)、登陸、注銷、審核、其他用戶信息修改)。管理人員可直接錄入用戶信息,無需再次審核。
(2)招商管理模塊
本功能主要實(shí)現(xiàn)在招商門戶網(wǎng)站上發(fā)布招商信息、招商報(bào)名(資質(zhì)審查)、招商結(jié)果公示、招商情況查詢。招商單位根據(jù)實(shí)際情況發(fā)布招商信息,管理人員審核后,競(jìng)商用戶根據(jù)招商信息按要求填寫報(bào)名表進(jìn)行報(bào)名并提供相關(guān)資質(zhì)進(jìn)行資質(zhì)審查,招商結(jié)果在相應(yīng)公示欄中公示。用戶可對(duì)招商情況進(jìn)行查詢,主要有招商項(xiàng)目簡(jiǎn)述、招商時(shí)間、招商金額、中商者信息、合同簽訂情況等內(nèi)容。
(3)信息查詢模塊
所有用戶通過此項(xiàng)功能,可以查詢到要找的招商信息和通知公告。支持關(guān)鍵字模糊查詢、分類查詢、發(fā)布時(shí)間查詢。
(4)投訴管理
主要實(shí)現(xiàn)對(duì)各類投訴進(jìn)行實(shí)時(shí)發(fā)布、收集反饋,發(fā)布處理結(jié)果。支持新增、修改、刪除、查詢等功能。
(5)招商評(píng)委管理
本功能主要實(shí)現(xiàn)對(duì)專家信息錄入、編號(hào)、資格審查、刪除等功能,并由系統(tǒng)隨機(jī)從招商評(píng)審委員庫(kù)中抽取的評(píng)委對(duì)招商項(xiàng)目進(jìn)行評(píng)審。
(6)公共模塊
圖4 系統(tǒng)功能結(jié)構(gòu)圖
其他模塊包括:通知公告,管理人員通過后臺(tái)錄入最新政策消息和活動(dòng)通知,系統(tǒng)全部用戶都可查看。管理人員具有信息的發(fā)布、修改、刪除等權(quán)限;使用幫助,介紹系統(tǒng)操作流程,招商方法等;廣告宣傳,用于宣傳鐵路局鐵路商業(yè)風(fēng)采、重點(diǎn)建設(shè)、重點(diǎn)推廣及優(yōu)質(zhì)服務(wù),投放招商廣告及相關(guān)商業(yè)廣告。
(7)招商門戶網(wǎng)站
作為鐵路局資產(chǎn)經(jīng)營(yíng)招商相關(guān)信息發(fā)布窗口,與社會(huì)用戶信息溝通平臺(tái)。
2.1.2 資產(chǎn)資源管理系統(tǒng)
(1)用戶管理
本功能主要實(shí)現(xiàn)鐵路局資產(chǎn)資源管理功能,用戶在客戶端進(jìn)行注冊(cè),待系統(tǒng)管理人員對(duì)注冊(cè)用戶審核后,用戶即可進(jìn)行相關(guān)操作。系統(tǒng)管理人員也可直接錄入資產(chǎn)單位信息,無需再次審核,具有注冊(cè)、登陸、退出、注銷、信息修改等功能。
(2)基本信息管理
本功能按照房產(chǎn)資源、土地資源、廣告資源、設(shè)備資源、大宗商品、其他資源,6個(gè)基本類型對(duì)鐵路局資產(chǎn)資源基本信息進(jìn)行統(tǒng)計(jì)。資產(chǎn)單位將信息上傳至資產(chǎn)資源管理系統(tǒng),待管理人員對(duì)上傳的信息審核后,即可在系統(tǒng)中實(shí)現(xiàn)共享和查詢。包括本單位資產(chǎn)情況,所有單位資產(chǎn)情況,擁有資產(chǎn)信息的錄入、修改、刪除(系統(tǒng)管理人員操作),資產(chǎn)信息導(dǎo)入、導(dǎo)出等功能,可按照單位名稱、關(guān)鍵字模糊、資產(chǎn)類型、資產(chǎn)狀況(使用、閑置)等多種方式進(jìn)行查詢。
(3)日常管理
本功能主要實(shí)現(xiàn)資產(chǎn)單位對(duì)招商、合同簽訂、收入結(jié)算等日常經(jīng)營(yíng)情況的維護(hù)及錄入。
(4)經(jīng)營(yíng)預(yù)警
功能包括:資產(chǎn)閑置預(yù)警,對(duì)長(zhǎng)期閑置、在用但3個(gè)月沒有收益的資產(chǎn)發(fā)出警告,提醒管理人員對(duì)此類項(xiàng)目?jī)?yōu)先處置;合同到期預(yù)警,對(duì)距離合同結(jié)束時(shí)間小于60 d的經(jīng)營(yíng)項(xiàng)目發(fā)出警告,提醒用戶對(duì)此類項(xiàng)目進(jìn)行處置,可選擇續(xù)簽合同或重新招商;應(yīng)收款預(yù)警,對(duì)應(yīng)收款期限即將到期的項(xiàng)目進(jìn)行預(yù)警。
(5)信息查詢
功能包括:招商信息查詢,對(duì)以往的招商項(xiàng)目詳情進(jìn)行查詢;合同信息查詢,對(duì)已簽訂的經(jīng)營(yíng)合同進(jìn)行查詢;收入信息查詢,對(duì)項(xiàng)目結(jié)算情況進(jìn)行查詢,具有選擇時(shí)間范圍進(jìn)行數(shù)據(jù)統(tǒng)計(jì)分析功能。
資產(chǎn)經(jīng)營(yíng)開發(fā)信息系統(tǒng)按“數(shù)據(jù)-服務(wù)-應(yīng)用”的邏輯層次,結(jié)合實(shí)際業(yè)務(wù)數(shù)據(jù)流程設(shè)計(jì),資產(chǎn)資源管理系統(tǒng)將全局范圍內(nèi)經(jīng)營(yíng)性質(zhì)的房產(chǎn)、土地、設(shè)備、廣告資源等信息納入管理庫(kù)數(shù)據(jù),實(shí)現(xiàn)全局資產(chǎn)經(jīng)營(yíng)開發(fā)工作的推進(jìn)工作的動(dòng)態(tài)管理。招商信息管理系統(tǒng)將全局范圍內(nèi)資產(chǎn)經(jīng)營(yíng)開發(fā)工作中涉及到的招商信息及時(shí)發(fā)布到網(wǎng)絡(luò)上,接受商家報(bào)名,并在網(wǎng)絡(luò)上進(jìn)行線上資格初審等。系統(tǒng)功能時(shí)序圖如圖5所示。
資產(chǎn)經(jīng)營(yíng)開發(fā)信息系統(tǒng)主要由資產(chǎn)資源管理系統(tǒng)、招商信息管理系統(tǒng)組成。為保證鐵路局內(nèi)部網(wǎng)絡(luò)信息安全,系統(tǒng)采用內(nèi)外網(wǎng)物理隔離的方式,各系統(tǒng)功能分開部署在兩個(gè)網(wǎng)絡(luò)中,資產(chǎn)資源管理系統(tǒng)和招商信息管理系統(tǒng)運(yùn)行在鐵路生產(chǎn)網(wǎng)上,招商門戶網(wǎng)站運(yùn)行在互聯(lián)網(wǎng)上。內(nèi)外網(wǎng)分別部署一套數(shù)據(jù)庫(kù)服務(wù)器以及應(yīng)用服務(wù)器,系統(tǒng)之間的數(shù)據(jù)同步通過物理拷貝的方式完成。系統(tǒng)總體架構(gòu)如圖6所示。
系統(tǒng)硬件選用PC服務(wù)器、網(wǎng)絡(luò)設(shè)備,通過安全隔離設(shè)備與外部系統(tǒng)接口,保證系統(tǒng)關(guān)鍵的業(yè)務(wù)處理和信息傳輸平臺(tái)穩(wěn)定不間斷運(yùn)轉(zhuǎn)。
圖5 系統(tǒng)功能時(shí)序圖
圖6 資產(chǎn)經(jīng)營(yíng)開發(fā)信息系統(tǒng)總體架構(gòu)
系統(tǒng)軟件開發(fā)采用結(jié)構(gòu)化、模塊化的設(shè)計(jì)原則,通過申請(qǐng)域名與服務(wù)代理的方式,將招商信息平臺(tái)系統(tǒng)發(fā)布至Internet,合法客戶通過權(quán)限驗(yàn)證后,即可進(jìn)行招商公告發(fā)布、招商查詢、提交意向、資質(zhì)審核等操作;資產(chǎn)資源管理系統(tǒng)用于企業(yè)固定資產(chǎn)管理,通過路內(nèi)互聯(lián)網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)全局范圍內(nèi)房產(chǎn)、土地、設(shè)備、廣告資源、大宗商品等資產(chǎn)進(jìn)行統(tǒng)一管理、科學(xué)開發(fā),合理配置資源。
本系統(tǒng)采用B/S架構(gòu),系統(tǒng)的核心功能集中在Web應(yīng)用服務(wù)器上,在服務(wù)器端運(yùn)行主要的程序代碼,把較少的邏輯交給Web瀏覽器,按照表現(xiàn)層—業(yè)務(wù)邏輯層—數(shù)據(jù)訪問層的3層設(shè)計(jì)原則,對(duì)整個(gè)系統(tǒng)進(jìn)行設(shè)計(jì),如圖7所示。
用戶通過瀏覽器端登錄訪問,登錄請(qǐng)求通過過濾器過濾后交由LoginController進(jìn)行處理,經(jīng)過shiro處理后的token通過subject進(jìn)行認(rèn)證,認(rèn)證時(shí)用戶的用戶名和密碼與數(shù)據(jù)庫(kù)用戶表進(jìn)行匹配,如匹配成功則進(jìn)行授權(quán)。本系統(tǒng)面向3類用戶提供服務(wù),分別是招商用戶,競(jìng)商用戶和系統(tǒng)管理用戶,將要進(jìn)行授權(quán)的資源用shiro標(biāo)簽進(jìn)行標(biāo)注,在用戶授權(quán)時(shí)通過shiro標(biāo)簽來判定哪些資源可以被此用戶使用。對(duì)應(yīng)代碼如下:
Web服務(wù)器通過客戶端在瀏覽器中指定的url路徑“adtempinfolist/save”,將此url轉(zhuǎn)化成服務(wù)器上對(duì)應(yīng)廣告信息管理模塊的文件路徑名,使用shiro標(biāo)簽庫(kù)中hasPermission標(biāo)簽指定該登錄用戶擁有新增廣告信息的權(quán)限,從而完成用戶授權(quán)。
圖7 系統(tǒng)邏輯架構(gòu)圖
持久層采用MyBatis實(shí)現(xiàn),依賴于MyBatis的對(duì)象化映射和數(shù)據(jù)庫(kù)交互為上層業(yè)務(wù)服務(wù)提供數(shù)據(jù)訪問支持,如系統(tǒng)管理員需定期查看那些已完成簽約的招商合同,即可點(diǎn)擊“合同管理”目錄下的“合同查詢”,通過前臺(tái)操作將指令下達(dá)到后臺(tái),后臺(tái)將指令由Spring進(jìn)行自動(dòng)掃描分配首先到達(dá)業(yè)務(wù)邏輯層中的ContractController類,通過調(diào)用findContract()方法中的接口ContractService,它的實(shí)現(xiàn)類通過重寫并調(diào)用findContractAllById方法到持久層,持久層通過調(diào)用findById方法進(jìn)行MyBatis映射到ContractMapper.xml文件,xml文件中配置了操作數(shù)據(jù)庫(kù)的sql語句以及指定的返回結(jié)果集ResultMap,通過xml文件中的sql查詢語句對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問,然后從最底層逐層向上返回?cái)?shù)據(jù),即完成對(duì)合同的一次查詢。查詢結(jié)果如圖8所示。
圖8 合同查詢結(jié)果
在實(shí)現(xiàn)業(yè)務(wù)邏輯層到數(shù)據(jù)訪問層的交互過程中,MyBatis使用簡(jiǎn)單的XML配置文件實(shí)現(xiàn)原始映射,通過映射引擎將定義的查詢接口映射成操作合同數(shù)據(jù)庫(kù)的sql語句,解除了sql和Java程序代碼的耦合,便于日常運(yùn)維,統(tǒng)一管理。
本系統(tǒng)平臺(tái)前臺(tái)頁(yè)面采用EasyUI+html5,運(yùn)用jquery的方法對(duì)數(shù)據(jù)進(jìn)行請(qǐng)求或提交,將得到的數(shù)據(jù)返回到各個(gè)子系統(tǒng)進(jìn)行前端頁(yè)面展示。部分展示效果如圖9、圖10所示。
圖9 資產(chǎn)資源管理系統(tǒng)展示圖
圖10 招商管理系統(tǒng)展示圖
本系統(tǒng)通過資產(chǎn)招商與資產(chǎn)經(jīng)營(yíng)管理相結(jié)合,以資產(chǎn)信息為基礎(chǔ),運(yùn)用互聯(lián)網(wǎng)對(duì)外公開招商,對(duì)資產(chǎn)狀態(tài)、招商進(jìn)度、合同信息、收入結(jié)算進(jìn)行動(dòng)態(tài)跟蹤管理,掌握全局每一項(xiàng)經(jīng)營(yíng)性資產(chǎn)的現(xiàn)實(shí)狀態(tài)及經(jīng)營(yíng)情況。該系統(tǒng)還促進(jìn)了資產(chǎn)招商工作的推進(jìn),延伸出了資產(chǎn)經(jīng)營(yíng)開發(fā)和招商管理等一系列文件、流程,運(yùn)用“互聯(lián)網(wǎng)+”思想,實(shí)現(xiàn)了鐵路系統(tǒng)資產(chǎn)網(wǎng)絡(luò)公開招商。
[1] 宋偉偉,張遂征. 基于J2EE的應(yīng)用體系結(jié)構(gòu)及其實(shí)現(xiàn)方法[J].鐵路計(jì)算機(jī)應(yīng)用,2005,14 (8):35-38.
[2] 張 翼,揭金良. 基于MVC的企業(yè)級(jí)應(yīng)用開發(fā)[J].鐵路計(jì)算機(jī)應(yīng)用,2006,15(11):8-10.
[3] 李 洋. SSM框架在Web應(yīng)用開發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(12):190-194.
[4] 徐孝成. 基于Shiro的Web應(yīng)用安全框架的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2015,11(16):93-95.
[5] 王艷清,陳 紅. 基于SSM框架的智能web系統(tǒng)研發(fā)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(12):4751-4757.
[6] 廖福保. 擴(kuò)展Spring MVC模塊的Web應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2012,31(10):70-73.
[7] 任廣震,侯 進(jìn),王 獻(xiàn). MVC模式在B/S結(jié)構(gòu)政務(wù)系統(tǒng)的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(8):54-58.
[8] 唐永瑞,張達(dá)敏. 基于Ajax與MVC模式的信息系統(tǒng)的研究與設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(2):128-131.