余 鵬,羅惠平,李 艷,楊木清
(中南民族大學網(wǎng)絡技術(shù)中心,湖北武漢430074)
突發(fā)事件對社會造成的影響越來越嚴重。科學及時地調(diào)度應急通信設施、應急人員、應急物資等應急資源,對緩解突發(fā)事件帶來的危害和影響起著非常重要的作用。因此,建立突發(fā)事件應急管理調(diào)度平臺,提供應急管理調(diào)度保障指揮平臺,對全方位提高企業(yè)、政府機構(gòu)、高校等應對突發(fā)事件的反應速度和指揮效率具有重要的意義[1]。
筆者結(jié)合Spring框架和Hibernate數(shù)據(jù)持久化框架特點,設計并實現(xiàn)了應急管理調(diào)度平臺,這些框架增強了系統(tǒng)面向?qū)ο蟮臉?gòu)件化,具有良好的擴展性、實用性、開放性和安全性[2-3]。
平臺的網(wǎng)絡結(jié)構(gòu)[4]主要由3個部分組成,分別是管理員監(jiān)控中心、數(shù)據(jù)交換處理中心和外部操作中心,如圖1所示。
(1)管理員監(jiān)控中心。該中心由不同等級、不同方向的平臺管理員組成。管理員以WLAN或VPN的方式進入數(shù)據(jù)管理后臺,監(jiān)控平臺的數(shù)據(jù),制定和修改各種系統(tǒng)配置信息和運行參數(shù)信息,保障系統(tǒng)能在不同時期、不同情況下,滿足不同應急方案的需要。
圖1 應急管理調(diào)度系統(tǒng)網(wǎng)絡結(jié)構(gòu)圖
(2)數(shù)據(jù)交換處理中心。該中心是本平臺的核心模塊。它保障數(shù)據(jù)交互、采集和備份等功能。應急保障或救援的人員數(shù)據(jù),物資調(diào)配數(shù)據(jù),從外部接口調(diào)用的天氣預報、地理災害數(shù)據(jù),采集的外部其他原始數(shù)據(jù),以及與各種類型的網(wǎng)元適配的數(shù)據(jù)都在該中心完成。鑒于數(shù)據(jù)中心是平臺的關(guān)鍵,所有重要的設備都將采用冗余或者備份技術(shù),以提高平臺的容災性和運營的穩(wěn)定性。
(3)外部操作中心。該中心是普通用戶接入系統(tǒng)的模塊,用戶可以通過各種不同的方式來查看和審閱平臺信息中心的數(shù)據(jù)(包括預案資源調(diào)度數(shù)據(jù),不同機構(gòu)、不同類型、不同時間、不同方案和不同級別的應急資源信息的統(tǒng)計和模板的數(shù)據(jù))。該中心是構(gòu)建在Ajax組件和熱點地圖基礎(chǔ)上的實時監(jiān)控模塊[5]。將應急資源分布地圖進行塊劃分,以區(qū)域塊的形式呈現(xiàn),并通過Ajax組件無刷新動態(tài)地獲取數(shù)據(jù)庫服務器的數(shù)據(jù)。一旦用戶想查看整個區(qū)域或分區(qū)域塊的資源調(diào)度信息,通過點擊熱點區(qū)域塊就可以清晰地查閱該地區(qū)實時的數(shù)據(jù)。
依據(jù)選用的軟件模型、設計思想,突發(fā)事件應急管理調(diào)度平臺的總體框架分為5層:應用層、數(shù)據(jù)處理層、數(shù)據(jù)持久化層、采集適配層和網(wǎng)元層,如圖2所示。
圖2 系統(tǒng)體系結(jié)構(gòu)圖
(1)應用層。該層面向用戶,提供用戶所需各類業(yè)務應用,包括應急預案管理、應急資源管理、應急腳本管理、命令通道管理和系統(tǒng)內(nèi)部管理。
(2)數(shù)據(jù)處理層。該層為應用層提供各項后臺處理服務,包括數(shù)據(jù)的認證/鑒權(quán)、預案工作流引擎、應急腳本/資源存儲等。該層與應用層緊密相關(guān),Spring將兩層的對象以松耦合的方式組織在一起,通過依賴注入Bean方法,動態(tài)、靈活地管理各種對象。
(3)數(shù)據(jù)持久化層。該層負責保存所有系統(tǒng)配置和運行參數(shù)信息。其依賴于Hibernate框架實現(xiàn),完成O/R Mapping(值對象與數(shù)據(jù)表之間的關(guān)系映射)。該層對JNDI、JDBC進行了對象封裝,通過會話工廠和設置JDBC對象抽取器,完成對持久化對象的存儲;能夠進行事務控制,提供多級緩存管理;同時,程序運行過程中,一旦捕捉到系統(tǒng)異常或操作異常,會自動完成事務回滾操作。
(4)采集適配層。該層負責從外部系統(tǒng)采集原始信息,并與數(shù)據(jù)庫資源實時同步,同時對各種類型的網(wǎng)元數(shù)據(jù)進行適配,對數(shù)據(jù)進行容錯等處理工作。
(5)網(wǎng)元層。該層提供系統(tǒng)內(nèi)部管理(多網(wǎng)元)數(shù)據(jù)接入,包括管理員對應急預案方案庫的增改、應急策略的調(diào)整和應急程序的變更等。
平臺系統(tǒng)采用多級模塊構(gòu)建軟件模型,其功能模塊劃分如表1所示。在系統(tǒng)設計中,一級模塊是主要功能模塊,包括應急預案的統(tǒng)一管理、應急資源的管理以及系統(tǒng)管理。
表1 平臺功能模塊
應急預案按照其性質(zhì)劃分為總體預案、專項預案和備選方案庫。各類方案均提供預案培訓、預案測試、發(fā)布貫宣、方案演練、優(yōu)化建議和定期審核等操作。預案的制定采用生命周期的管理流程,形成閉環(huán)式的管理方式,如圖3所示。
圖3 應急預案生命周期管理流程
(1)需求產(chǎn)生。主要是在新的故障現(xiàn)象發(fā)生前或者發(fā)生時模式發(fā)生改變,對應急工作產(chǎn)生新的需求。
(2)制定應急方案。企業(yè)、政府機構(gòu)或?qū)W校有新的需求產(chǎn)生時,必須按該管理辦法的應急預案或應急方案的框架結(jié)構(gòu)進行預案的制定。
(3)測試方案。預案或方案制定完畢后,總部必須考慮當前有限的條件,實施作業(yè)的難度和花費時間的長短。
(4)修改方案。根據(jù)測試方案的結(jié)果,修訂應急方案的配置和相關(guān)參數(shù),提高應急效率,縮短應急支援時間。
(5)審核預案。方案修改完畢后,總部組織相關(guān)人員對方案進行進一步考核和評審。
(6)預案培訓。在審核完畢后,根據(jù)測評人員的意見進行方案的修訂。修訂完畢,需要對關(guān)鍵人員進行必要的指導和培訓。
(7)發(fā)布貫宣。對關(guān)鍵人員進行培訓完畢后,以公文的形式下發(fā)下級部門,必要時可以采用視頻會議的手段進行遠程貫徹宣傳。
(8)方案演練。為了驗證方案的可用性和提高維護人員對方案的熟練程度,需要組織適當?shù)难菥?,在演練過程中發(fā)現(xiàn)不足,繼續(xù)修訂。
(9)優(yōu)化建議。通過演練和不同維護人員對方案的實際操作,將發(fā)現(xiàn)的問題匯總,然后再重新修訂方案,并將方案修訂的消息以任務工單的形式下發(fā)。
(10)定期審核。由于情況不斷變化,單一的預案經(jīng)常無法滿足變化的外界條件,必須組織人員對應急預案和方案進行審核,確保預案和方案滿足新的需要。
應急資源的管理[6]是保證應急指揮調(diào)度及時性、高效性的保障模塊,也是平臺系統(tǒng)的支撐核心。該模塊包含了各種應急物資數(shù)據(jù)的錄入和更新,匯總數(shù)據(jù)的綜合統(tǒng)計分析,應急指揮地圖查詢及呈現(xiàn)等功能。其突出的特點是利用Ajax引擎無刷新異步加載實時數(shù)據(jù),通過地圖熱點的形式,以鼠標點擊不同地區(qū)加載當前實時數(shù)據(jù)的方式呈現(xiàn)給用戶各種實時的資源調(diào)度數(shù)據(jù),并實現(xiàn)與天氣預報信息、地質(zhì)災害等信息的周邊接口,為應急提供多條件保障,并提供多條件(日期、地點等)、多顯示(文本、直方圖、曲線圖、餅圖等)的信息查詢方式;結(jié)合時間段、多種報表數(shù)據(jù)格式查詢等方式,用戶可以方便快速地瀏覽統(tǒng)計信息,并以多種形式輸出(pdf、excel等)。
系統(tǒng)管理包含了人員管理、短信配置、權(quán)限管理和日志管理4個子模塊。①人員管理提供對用戶信息的管理;②短信配置模塊提供了短信接口,可以配置應急參數(shù),為應急管理者給相關(guān)事件負責人等發(fā)布通知和信息通告、正確發(fā)送短信提供支持;③權(quán)限管理是除原權(quán)限管理之外所有權(quán)限的配置管理模塊,包括登錄權(quán)限、庫管權(quán)限和腳本管理權(quán)限等;④日志管理是對系統(tǒng)的所有操作的日志信息、登錄系統(tǒng)的日志信息、系統(tǒng)自身警告的日志信息、人員創(chuàng)建、修改和刪除應急數(shù)據(jù)日志信息等進行管理。
圖4為應急管理系統(tǒng)的工作流程圖。系統(tǒng)基于B/S模式,由客戶端和服務器端組成[7]。服務器端是基于Spring的MVC構(gòu)建,JSP實現(xiàn)了框架的視圖;數(shù)據(jù)模型以Hibernate對象關(guān)系映射框架支撐,對JDBC、JNDI進行封裝,并完成被持久化對象的 CRUD操作[8]。同時提供 Transaction和Query等接口,使系統(tǒng)能夠快速、有效地處理數(shù)據(jù),并能夠提供異常情況下的數(shù)據(jù)回滾和多級緩存機制;控制器以Spring控制器類為基礎(chǔ)。該系統(tǒng)實現(xiàn)了接口注入的方式,無論是控制層的Action對象,還是業(yè)務層Service對象,或者持久層的DAO對象,層與層之間無需關(guān)心各層具體實現(xiàn),各層的調(diào)用都面向接口。數(shù)據(jù)動作都封裝到Dao接口中,數(shù)據(jù)動作的實現(xiàn)類則封裝到DaoImp中,數(shù)據(jù)的增刪改查操作則通過HibernateTemplate類執(zhí)行對Oracle 10g數(shù)據(jù)庫的操作。以搜集應急預案為例,將匯總預案信息封裝到PlanDao接口中,其代碼如下:
圖4 平臺工作流程圖
public interface PlanDao{
/**
*根據(jù)條件匯總預案信息
*@param loginId用戶登錄帳號 @ param branchId所屬公司Id
*@param planTypeId預案類型Id@param planLevelId預案級別Id
*@param planTitle預案標題@param username起草人名稱
* @param beginTime開始時間 @param endTime結(jié)束時間
**/
public List collectPlan(String loginId,int branchId,int planTypeId,int planLevelId,String planTitle,String userName,String beginTime,String end-Time,final Pager page);
}
數(shù)據(jù)動作通過PlanDaoImpl類執(zhí)行,在Spring中封裝的 H ibernate模板,在 W eb層構(gòu)造 D etachedCriteria對象,然后調(diào)用業(yè)務層Bean,進行動態(tài)條件查詢,代碼如下:
用戶通過瀏覽器發(fā)出請求。在服務器端,Spring的DispatcherServlet類負責將客戶的請求通過xm l配置文檔分配給相應Spring控制器[9]處理,分析請求內(nèi)容,并對用戶進行相應的權(quán)限認證。認證通過則利用Spring控制器調(diào)用應用層模塊處理。以搜集應急預案為例,其代碼如下:
如果用戶需要訪問數(shù)據(jù)庫,數(shù)據(jù)處理層通過數(shù)據(jù)接口類傳遞請求參數(shù),數(shù)據(jù)在數(shù)據(jù)持久化層內(nèi)實現(xiàn)訪問接口,依賴于HibernateTempalte類與數(shù)據(jù)庫交互,得到響應的數(shù)據(jù)逆向返回到控制器,以視圖呈現(xiàn)給用戶。系統(tǒng)在控制器與視圖之間引入了Ajax引擎,在頁面加載后通過XMLHttpRequest對象,無刷新地從服務器自動獲取更新數(shù)據(jù),該方式能夠保證上報的應急數(shù)據(jù)實時地在電子地圖上統(tǒng)一呈現(xiàn),用戶也可以通過電子地圖、衛(wèi)星地圖直觀地實現(xiàn)對應急資源的調(diào)度和監(jiān)控[10]。
分析當前企業(yè)、政府、學校等機構(gòu)處理應急事件的需求,設計并實現(xiàn)了基于Spring框架和Hibernate數(shù)據(jù)持久化框架的突發(fā)事件應急管理調(diào)度平臺,闡述了平臺的網(wǎng)絡、體系結(jié)構(gòu),模塊功能以及工作流程。實現(xiàn)了對地區(qū)應急預案的統(tǒng)一管理和應急物資、人員的統(tǒng)一調(diào)度,通過電子維運系統(tǒng)上報的應急數(shù)據(jù)在電子地圖上的實時呈現(xiàn),實現(xiàn)用戶對電子地圖、衛(wèi)星地圖等直觀方式的應急調(diào)度過程的動態(tài)監(jiān)控,以及對應急指揮調(diào)度任務的統(tǒng)計分析和歷史數(shù)據(jù)存檔等功能。平臺采用當前最為穩(wěn)定和成熟的Java語言,Spring、Hibernate框架和Ajax等技術(shù),保障了系統(tǒng)的先進性、健壯性、良好的擴展性、平臺無關(guān)性、靈活性和安全性。
[1]周時瑩,秦貴和.基于J2EE的公共衛(wèi)生應急綜合指揮系統(tǒng)設計[J].微計算機信息,2008,24(2):8-10.
[2]ZHONG SB.Preliminary study on synthetical forecast based on incident chain in emergency platform of public safety[J].Wireless Communications,Networking and Mobile Computing,2008,8(4):1 -4.
[3]ZHAO L D,LIU M,DAID F.Research on scheduling problem of emergency resource with pulse need[J].Journal of Southeast University:Natural Science Edition,2008,38(6):1116 -1120.
[4]李道華,陸文遠.應急調(diào)度的網(wǎng)絡結(jié)構(gòu)與系統(tǒng)應用[J].國防科技參考,1997,18(4):93 -97.
[5]THOMASP.Ajax完全手冊[M].閆鋒欣,陳澤峰,萬能,譯.北京:電子工業(yè)出版社,2009:32-37.
[6]張婧,申世飛.基于偏好序的多事故應急資源調(diào)配博弈模型[J].清華大學學報:自然科學版,2007,47(12):2172-2175.
[7]董立巖,李真.突發(fā)公共事件應急平臺系統(tǒng)研究[J].吉林大學學報:信息科學版,2009,27(4):377-382.
[8]孫衛(wèi)琴.精通Hibernate[M].3版.北京:電子工業(yè)出版社,2005:85-87.
[9]林信良.Spring技術(shù)手冊[M].2版.北京:電子工業(yè)出版社,2006:71 -74.
[10]張舒,李超.基于訂閱發(fā)布的車輛GPS應急監(jiān)控調(diào)度平臺[J].計算機工程與設計,2008,29(2):445-450.