文靜 曹妍 張同婕
[摘 要] 目前危險(xiǎn)品監(jiān)控還是停留在對車輛行駛位置的監(jiān)控上,即使有針對危險(xiǎn)品狀態(tài)的監(jiān)控,也并不全面。因此本文設(shè)計(jì)了一個(gè)基于Web的危險(xiǎn)品運(yùn)輸監(jiān)控系統(tǒng),對危險(xiǎn)品本身的狀態(tài)、泄漏狀態(tài)、罐體狀態(tài)、車輛狀態(tài)進(jìn)行全方位跟蹤監(jiān)測。該系統(tǒng)已在危險(xiǎn)品運(yùn)輸企業(yè)中得到具體應(yīng)用。
[關(guān)鍵詞] 危險(xiǎn)品運(yùn)輸;監(jiān)控系統(tǒng);WSH框架;Ajax
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 16. 022
[中圖分類號] F253.9 [文獻(xiàn)標(biāo)識碼] A [文章編號] 1673 - 0194(2014)16- 0035- 02
1 引 言
危險(xiǎn)品,即化學(xué)危險(xiǎn)品的簡稱,是指具有易爆、易燃、具有腐蝕性等危險(xiǎn)性質(zhì)的化學(xué)物品[1]。伴隨我國經(jīng)濟(jì)的快速發(fā)展,危險(xiǎn)品的產(chǎn)量和運(yùn)量逐年上升,在這些危險(xiǎn)品中,又以易燃易爆且有毒的氣體為主體。與此同時(shí),危險(xiǎn)品運(yùn)輸車輛發(fā)生事故的頻率也呈現(xiàn)提升的事態(tài),事故一旦發(fā)生,除對車輛以及交通本身的危害之外,還會對周邊的居民、車輛、房屋、公共設(shè)施造成傷害和破壞,甚至對環(huán)境造成污染,污染河流、空氣、土壤,對居民的生活造成長期不利的影響[2-3]。
針對危險(xiǎn)品的危險(xiǎn)性及事故的多發(fā)性,本文設(shè)計(jì)了一個(gè)能夠?qū)ξkU(xiǎn)品運(yùn)輸狀態(tài)進(jìn)行監(jiān)控的系統(tǒng),實(shí)時(shí)監(jiān)測危險(xiǎn)品的狀態(tài)信息(包括裝載危險(xiǎn)品的油罐溫度、液面傾斜角度等等),一旦數(shù)據(jù)狀態(tài)發(fā)生異常,就進(jìn)行報(bào)警,為管理員和司機(jī)提供及時(shí)的信息,避免事故的發(fā)生。
2 系統(tǒng)開發(fā)技術(shù)介紹
2.1 系統(tǒng)開發(fā)采用WSH(Web work + Spring + Hibernate)框架
將應(yīng)用框架按其邏輯劃分為3層結(jié)構(gòu):Web表示層、業(yè)務(wù)邏輯層、持久層。各個(gè)層次之間具有不同的功能,并保持清晰的隔離,以使彼此獨(dú)立存在。但各層之間采用接口進(jìn)行通信,屏蔽了內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。
(1)Web表示層:應(yīng)用中Web表示層顯示模型數(shù)據(jù),并負(fù)責(zé)和提供用戶界面同用戶交互。使用Web work作為表示層框架:管理用戶的請求和響應(yīng),根據(jù)處理結(jié)果提取需要的模型數(shù)據(jù),選擇合適的視圖表現(xiàn),轉(zhuǎn)移到用戶設(shè)定的頁面。
(2)業(yè)務(wù)邏輯層:典型的Web應(yīng)用的中間組件一般是業(yè)務(wù)層或服務(wù)層。使用Spring作為業(yè)務(wù)層框架,通過讀取配置文件,Spring容器自動生成Bean實(shí)例,供業(yè)務(wù)邏輯使用;管理事務(wù)操作;提供了與表現(xiàn)層交互的接口;管理業(yè)務(wù)級對象之間的依賴性;隔離了表示層與持久層等。
(3)持久層:持久層是Web應(yīng)用中直接與數(shù)據(jù)庫打交道的邏輯單元,實(shí)現(xiàn)了O/R映射,將面向?qū)ο蟮牟僮鬓D(zhuǎn)化為面向關(guān)系的操作。使用Hibernate作為持久層架構(gòu)能完全屏蔽具體的數(shù)據(jù)庫實(shí)現(xiàn):通過Hibernate提供的API和HQL查詢接口使操作數(shù)據(jù)更有效、便捷;向下屏蔽了不同數(shù)據(jù)庫的差異;向上為業(yè)務(wù)邏輯層提供需要的訪問接口。
2.2 Eclipse開發(fā)平臺
Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。它是功能豐富的JavaEE 集成開發(fā)環(huán)境,包括完備的編碼、調(diào)試、測試和發(fā)布功能, 完整支持HTML、Web work、JSP、CSS、JavaScript、SQL、Hibernate 和Spring 。
2.3 MySQL
MySQL 是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn), 許多中小型網(wǎng)站為了降低網(wǎng)站開發(fā)成本而選擇了MySQL 作為網(wǎng)站數(shù)據(jù)庫。
2.4 Ajax
通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。
3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.1 業(yè)務(wù)功能模塊設(shè)計(jì)
危險(xiǎn)品運(yùn)輸監(jiān)控系統(tǒng)包括Web門戶管理登錄監(jiān)控車輛位置信息管理,監(jiān)控危險(xiǎn)品報(bào)警信息管理,車輛實(shí)時(shí)調(diào)度管理,監(jiān)控車輛歷史軌跡管理。
3.2 系統(tǒng)安全性設(shè)計(jì)
3.2.1 數(shù)據(jù)安全性設(shè)計(jì)
數(shù)據(jù)安全[4]有對立的兩方面的含義:①數(shù)據(jù)本身的安全,主要是指采用現(xiàn)代密碼算法對數(shù)據(jù)進(jìn)行主動保護(hù),如數(shù)據(jù)保密、數(shù)據(jù)完整性、雙向強(qiáng)身份認(rèn)證等;②數(shù)據(jù)防護(hù)的安全,主要是采用現(xiàn)代信息存儲手段對數(shù)據(jù)進(jìn)行主動防護(hù),如通過磁盤陣列、數(shù)據(jù)備份、異地容災(zāi)等手段保證數(shù)據(jù)的安全。
在該平臺中,對這兩方面的安全性都有設(shè)計(jì),下面分別進(jìn)行說明。
(1)使用數(shù)據(jù)加密確保數(shù)據(jù)本身的安全;
(2)使用數(shù)據(jù)備份確保數(shù)據(jù)防護(hù)的安全。
在平臺中,設(shè)計(jì)了對于數(shù)據(jù)庫中的數(shù)據(jù)的定期備份,對于數(shù)據(jù)量不大的表,采用1個(gè)月1次的備份方案,對于存儲gps海量數(shù)據(jù)的表,采用1星期備份1次的備份方案。將備份的表格數(shù)據(jù)存儲到固定的硬盤,便于查看和轉(zhuǎn)儲;其次,還提供了明確的備份文件,用戶可以根據(jù)需求隨時(shí)運(yùn)行備份文件,進(jìn)行備份,滿足備份的及時(shí)性需求。
3.2.2 代碼安全性設(shè)計(jì)
在平臺中,加密的方式有兩種。
3.2.2.1 將代碼文件進(jìn)行壓縮封裝
對于需要代碼安全性保護(hù)的文件進(jìn)行壓縮封裝,如將普通的Java文件壓縮成為jar包,經(jīng)過壓縮后的文件不影響功能的使用,只是不能被直觀地讀,這種加密方法很簡單。
3.2.2.2 代碼本身的加密
對于代碼本身進(jìn)行加密,使得代碼閱讀起來呈現(xiàn)亂碼的形式,只有通過解析,才能表現(xiàn)出正確的含義,這樣的加密不影響功能的運(yùn)行,只影響代碼的可讀性。
3.2.3 程序安全性設(shè)計(jì)
程序安全性是從程序的角度進(jìn)行安全性考慮,要保證程序運(yùn)行的穩(wěn)定性,具有一定能力的容錯性,不能通過URL地址直接訪問。
程序安全性主要從以下兩個(gè)方面設(shè)計(jì):
(1)采用異常拋出機(jī)制;
(2)對直接使用URL地址訪問的約束。
3.2.4 應(yīng)用安全性設(shè)計(jì)
應(yīng)用安全性從軟件安全性角度和軟件操作安全性角度進(jìn)行設(shè)計(jì)。
3.2.4.1 軟件安全性設(shè)計(jì)
平臺應(yīng)用的安全性我們從以下幾個(gè)方面進(jìn)行設(shè)計(jì)實(shí)現(xiàn):用戶身份認(rèn)證;權(quán)限管理和角色管理;日志監(jiān)控和管理等。對用戶操作以及數(shù)據(jù)進(jìn)行監(jiān)控并形成日志文件,一旦發(fā)現(xiàn)異常操作或者異常數(shù)據(jù),就會產(chǎn)生報(bào)警數(shù)據(jù),提醒相關(guān)人員進(jìn)行及時(shí)的處理,完善平臺使用時(shí)的安全性。
3.2.4.2 軟件操作安全性設(shè)計(jì)
軟件操作安全性設(shè)計(jì)是指從用戶的操作的角度進(jìn)行的安全性設(shè)計(jì),系統(tǒng)設(shè)計(jì)出后文的功能和說明來確保軟件操作的安全性。
3.3 系統(tǒng)實(shí)時(shí)性設(shè)計(jì)
為了滿足平臺實(shí)時(shí)性需求,我們采用Ajax技術(shù),充分利用Ajax的局部動態(tài)刷新技術(shù)來提高實(shí)時(shí)性。在第二節(jié)技術(shù)介紹中,已經(jīng)對Ajax技術(shù)進(jìn)行說明,運(yùn)用Ajax能夠?qū)崿F(xiàn)對界面的局部刷新,提高數(shù)據(jù)在頁面上的顯示速度,減少整個(gè)界面加載所耗費(fèi)的時(shí)間,滿足平臺的實(shí)時(shí)性需求。
3.4 系統(tǒng)對海量數(shù)據(jù)處理能力設(shè)計(jì)
在平臺中,平臺需要接收和操作的數(shù)據(jù)是海量的車輛狀態(tài)數(shù)據(jù)(這些數(shù)據(jù)包含的屬性有:設(shè)備號、車牌號、狀態(tài)接收時(shí)間、狀態(tài)發(fā)送時(shí)間、經(jīng)度、緯度、報(bào)警狀態(tài)、速度、方位角、加速度等),這些數(shù)據(jù)存在名為GPS信息表的表中,當(dāng)面對海量數(shù)據(jù)時(shí),對表中的數(shù)據(jù)進(jìn)行快速的訪問和操作顯得十分重要,為了提高數(shù)據(jù)訪問性能,我們采用了如下手段:①建立附表。用對表中個(gè)別屬性的操作來代替對表中所有屬性的操作。②建立索引。對于頻繁使用的字段建立按照時(shí)間檢索的功能,提高數(shù)據(jù)訪問效率。③創(chuàng)建視圖。視圖能簡化用戶對于數(shù)據(jù)的理解,提高數(shù)據(jù)的安全性,而且,對于視圖的操作不影響本身數(shù)據(jù)庫中的表的內(nèi)容。④執(zhí)行備份。當(dāng)GPS報(bào)警信息表存儲的數(shù)據(jù)量很大時(shí),即使已經(jīng)采用上述3個(gè)方案,還是會嚴(yán)重影響訪問性能,為了解決這一問題,會對兩個(gè)表中的數(shù)據(jù)進(jìn)行定時(shí)備份,控制表中的數(shù)據(jù)量。當(dāng)需要使用已經(jīng)存入備份文件的數(shù)據(jù)時(shí),再從備份文件中將這些數(shù)據(jù)讀取到數(shù)據(jù)庫中,采用“隨用隨取”的策略,提高讀取數(shù)據(jù)的性能。
4 結(jié) 論
實(shí)踐證明,本文中采用的DWSH框架體系,在保持軟件低耦合度的同時(shí)將Ajax技術(shù)融入了軟件系統(tǒng)中,而Ajax的引入并不影響原來搭設(shè)程序邏輯結(jié)構(gòu)。層層分離的體系,使軟件具有很高的靈活性和可重用性。
主要參考文獻(xiàn)
[1]胡艷菊,胡艷玲,張偉.危險(xiǎn)化學(xué)品突發(fā)泄漏事故應(yīng)急決策系統(tǒng)研究[J].吉林化工學(xué)院學(xué)報(bào),2010,27(1):69-72.
[2]程志端.基于多傳感器的危險(xiǎn)品運(yùn)輸監(jiān)控系統(tǒng)研究與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2011.
[3]曹滿金.基于uC/OS-Ⅱ的車載危險(xiǎn)品運(yùn)輸監(jiān)控終端的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2011.
[4]百度百科.數(shù)據(jù)安全[EB/OL].http://baike.baidu.com/view/2308446.htm#ref_[1]_2308446.