張 濤
(潞安集團(tuán)漳村煤礦, 山西 長治 046032)
隨著計算機(jī)技術(shù)的飛速發(fā)展及數(shù)據(jù)處理能力的不斷提升,在礦井的現(xiàn)代化發(fā)展中作業(yè)規(guī)程的編寫與管理必定趨向于信息化。作業(yè)規(guī)程是煤礦生產(chǎn)管理過程中的核心環(huán)節(jié),它是現(xiàn)場生產(chǎn)及施工進(jìn)行指導(dǎo)的關(guān)鍵依據(jù),因此,對作業(yè)規(guī)程進(jìn)行有效、迅速及規(guī)范的編制及管理可以極大提升煤礦企業(yè)的信息化水平及生產(chǎn)的安全性。根據(jù)煤礦企業(yè)對作業(yè)規(guī)程提出的需求,依靠各種有效的技術(shù)手段,基于JEE 和B/S 框架來設(shè)計作業(yè)規(guī)程管理系統(tǒng)的解決方案。
通過對作業(yè)規(guī)程的編制及管理過程開展詳細(xì)的研究,針對系統(tǒng)設(shè)計出有效的功能結(jié)構(gòu),其中主要涉及到編制、管理、核查等多項(xiàng)功能,確保作業(yè)規(guī)程可以在線完成編制,并根據(jù)文檔的標(biāo)準(zhǔn)格式來形成作業(yè)規(guī)程。系統(tǒng)的功能板塊主要有五個,其構(gòu)造圖如圖1 所示。
該模塊主要包含了新建與管理規(guī)程的功能。新建規(guī)程主要是創(chuàng)建起作業(yè)規(guī)程的根本屬性,即開啟一個全新的規(guī)程編制,作業(yè)規(guī)程所包含的屬性信息主要有規(guī)程的名稱及編號、作業(yè)面的名稱、編制人員及時間等;規(guī)程管理主要是對已進(jìn)行編制的規(guī)程參數(shù)進(jìn)行嚴(yán)格的管理,其中涉及到了規(guī)程的編寫、修改、瀏覽、下載等多項(xiàng)功能,在編制的過程中,通過運(yùn)用富文本框來進(jìn)行編制及輸入相關(guān)的圖片、公式等[1]。
該模塊主要分為規(guī)程的分配、分配的管理兩個功能。分配規(guī)程主要是將各個章節(jié)分配到各個部門之中,促使這些部門的編制人員可以形成較高的合作,確保作業(yè)規(guī)程迅速有效地完成編制;作業(yè)規(guī)程中涉及到了較多的章節(jié),如果每次都一一進(jìn)行分配,對管理人員而言這是一個極其復(fù)雜的工作,因此默認(rèn)分配管理的功能就設(shè)定了較多的規(guī)程類型來進(jìn)行分配,完成設(shè)定之后進(jìn)行規(guī)程分配的時候只需要運(yùn)用該模塊就行。
圖1 系統(tǒng)功能結(jié)構(gòu)圖
該模塊所包含的功能主要有規(guī)程的審批、終審、復(fù)審、會審人員的設(shè)定等。首先需要利用會審人員的設(shè)定功能來設(shè)置規(guī)程的審批人員,完成設(shè)置之后就可以進(jìn)行登錄,可以對所需審核的規(guī)程信息進(jìn)行查看,在將規(guī)程信息進(jìn)行瀏覽或下載之后就可以將審核意見錄入其中,完成在線審批,安排數(shù)個人員來進(jìn)行同時審核,確保作業(yè)規(guī)程迅速完成審核。審核結(jié)束之后,安排終審人員來進(jìn)行終審,之后才可以進(jìn)行下一步的復(fù)審。
該模塊主要包含了企業(yè)信息、部門、角色及用戶的管理功能。企業(yè)信息可以對作業(yè)規(guī)程所需的企業(yè)信息進(jìn)行設(shè)置,主要有礦井的名稱、編號等。部門信息可以對企業(yè)各個部門的信息進(jìn)行設(shè)置,最終生成一個樹形構(gòu)架。角色管理可以有效劃分使用系統(tǒng)人員的權(quán)限,針對不同的角色來設(shè)置不同的權(quán)限。用戶管理的作用在于將各個系統(tǒng)使用人員的信息進(jìn)行設(shè)置。
其他功能主要包含了個人信息的查閱、密碼的修改等多個功能。
在規(guī)程系統(tǒng)的后臺數(shù)據(jù)庫中運(yùn)用關(guān)系型分布式的數(shù)據(jù)庫,可以對大量的相關(guān)信息進(jìn)行儲存,并且提升安全性。為了使其性能得到極大提升,采用Amoeba 中間組件的代理層,確保該數(shù)據(jù)庫實(shí)現(xiàn)讀寫分離、切分規(guī)則等多項(xiàng)功能。
在該服務(wù)器中設(shè)置規(guī)程管理系統(tǒng)的服務(wù)端,該系統(tǒng)采用MVC 構(gòu)架來進(jìn)行設(shè)計,即確保視圖、模型及控制層相互分離,其主要運(yùn)用Spring MVC 來完成。在訪問數(shù)據(jù)庫的時候,在持久層的業(yè)務(wù)邏輯端運(yùn)用Spring-Data-J pa,可以對該層級的業(yè)務(wù)進(jìn)行邏輯性的處理。在系統(tǒng)的穩(wěn)定性及權(quán)限的控制方面采用Spring-Security,可以通過運(yùn)用相應(yīng)的過濾器來為Web 提供各種可靠性的業(yè)務(wù)[2]。
上層級的Web 端采取了QuickUl 前端頁面中的設(shè)計頁面,QuickUl 提供了將近上百個類型的組件,可以確保系統(tǒng)前端的各個應(yīng)用軟件的需求得以實(shí)現(xiàn),并且QuickUl 可以取得較好的體驗(yàn)感,促使規(guī)程系統(tǒng)的實(shí)用性得到極大提升。
作業(yè)規(guī)程管理系統(tǒng)的核心就是作業(yè)規(guī)程,在該規(guī)程之中就是以文本為關(guān)鍵,因此系統(tǒng)中具備較多的功能,如檢索、分析及統(tǒng)計文本的功能,例如如果利用某個規(guī)程內(nèi)部的內(nèi)容來查詢這個內(nèi)容屬于哪一個作業(yè)規(guī)程,這就必須檢索全文,因此在對系統(tǒng)進(jìn)行設(shè)計的時候應(yīng)當(dāng)添加Lucene 的全文檢索引擎,可以對規(guī)程內(nèi)的內(nèi)容進(jìn)行全文檢索,其系統(tǒng)的構(gòu)架圖詳見圖2。
在作業(yè)規(guī)程中,根據(jù)其相關(guān)標(biāo)準(zhǔn)來生成文檔就是其最核心的環(huán)節(jié),在以Web 為基礎(chǔ)的系統(tǒng)中,使用最頻繁的操作手段就是運(yùn)用Javascript 來對Word實(shí)施操作,但是這種方法不具備較強(qiáng)的安全性,可能將降低瀏覽器的安全性,并且操作流程較為繁瑣。本系統(tǒng)所運(yùn)用的方法就是利用Java 來生產(chǎn)相關(guān)的Word,之后再在前臺來進(jìn)行下載,系統(tǒng)的設(shè)計方法是對規(guī)程的通用板塊進(jìn)行預(yù)先設(shè)定,在前臺的客戶端中通過添加模板的方法來呈現(xiàn)給客戶,在完成規(guī)程的編寫之后,儲存成為HTML 形式,后臺的Java 利用POI 來對HTML 的數(shù)據(jù)流進(jìn)行分析,Apache POI是利用Java 所編制出的免費(fèi)的開源跨平臺,促使Java 程序可以對Microsoft Of-fice 格式的文檔進(jìn)行讀、寫,最后儲存為Word,并利用鏈接來下載。
圖2 系統(tǒng)整體架構(gòu)圖
Spring MVC 通過運(yùn)用Java 完成了WebMVC 模式所需的輕量級Web 構(gòu)架的設(shè)計,即采取了MVC構(gòu)架的思想,對Web 層實(shí)施解藕。由于規(guī)程管理系統(tǒng)中包含了較多個部門,并且同時有較多個人員運(yùn)用,為了使系統(tǒng)的安裝及維護(hù)更加方便,應(yīng)運(yùn)用B/S的模式來實(shí)施設(shè)計。而最初的B/S 構(gòu)架只包含了服務(wù)器與瀏覽器兩個,就系統(tǒng)的安全性及研發(fā)的簡便性上講,這是不完善的。采取以Spring MVC 構(gòu)架為基礎(chǔ)的視圖、控制級層及模型,規(guī)程管理中所包含的所有功能都可以通過Web 來完成,后臺控制層可以完成規(guī)程生成、人員管理等諸多功能,基于系統(tǒng)的結(jié)果來設(shè)置各個相關(guān)的實(shí)體,主要含有人員、章節(jié)等多個實(shí)體。Spring MVC 框架的設(shè)計主要運(yùn)用前端的控制器來實(shí)現(xiàn),再依據(jù)映射規(guī)則將其發(fā)給各個頁面控制器,實(shí)施處理。
Amoeba 屬于MySQL 分布式數(shù)據(jù)庫前方代理層級的框架,其發(fā)揮著較多的作用,如具備較高的可用性、SQL 過濾作用、讀寫相分離、負(fù)載平衡等。作業(yè)規(guī)程管理系統(tǒng)內(nèi)部所配置的后臺數(shù)據(jù)庫主要運(yùn)用MySQL 關(guān)系型數(shù)據(jù)庫來儲存數(shù)據(jù),而且系統(tǒng)可以讓普通員工利用普通的賬號來查閱完成編制的作業(yè)規(guī)程,因此存在較大的瀏覽量,如果同時有作業(yè)規(guī)程在進(jìn)行編制,也有員工在查閱規(guī)程,甚至存在審批工作,這將對服務(wù)器造成極大的壓力。規(guī)程管理系統(tǒng)通過采取Amoeba 構(gòu)架圖可以實(shí)現(xiàn)后臺數(shù)據(jù)源的各項(xiàng)功能。具體的實(shí)現(xiàn)流程如下:在規(guī)程的后臺中分別配置了兩個服務(wù)器,分別承擔(dān)MySQL 的讀、寫操作,甚至還可以為Amoeba 提供一個服務(wù)器。而Amoeba 的安裝流程較為簡便,只需要下載相應(yīng)的壓縮包就行。然后再將A-MOEBA-HOME 和Path 設(shè)置為環(huán)境變量,最后再對配置文件進(jìn)行修改,在amoeba 中檢索出conf 的子文件夾,將amoeba xml、dbServer.Xml、rule.xml 三個文件進(jìn)行配置,amoeba xml 內(nèi)部分別設(shè)置了管理系統(tǒng)內(nèi)與Amoeba 內(nèi)部的各個參數(shù)進(jìn)行連接。dbServer.Xml 內(nèi)部設(shè)置了后臺MySQL,數(shù)據(jù)庫服務(wù)器中的各個參數(shù),如用戶名、密碼等。rule.Xml 所具有的功能是對數(shù)據(jù)的切分設(shè)置規(guī)則、配置負(fù)載平衡等。最后再將amoeba 進(jìn)行啟動,運(yùn)用后臺啟動的形式,執(zhí)行相關(guān)的命令,此時再執(zhí)行MySQL 就可以完成讀寫分離、負(fù)載平衡等功能。
Lucene 屬于Jakarta 項(xiàng)目中的一個子項(xiàng)目,是全文檢索引擎的工具包及框架,為系統(tǒng)提供了完善的查詢及索引引擎。由于作業(yè)規(guī)程是其管理系統(tǒng)的核心所在,而規(guī)程是利用充足的文本內(nèi)容來構(gòu)成的,如果需要查詢及統(tǒng)計作業(yè)規(guī)程內(nèi)容、分析文本及創(chuàng)建索引,存在較大的任務(wù)量。Lucene 具備這種功能,可以為系統(tǒng)提供文本反向索引的數(shù)據(jù)庫,有助于文本內(nèi)容的查閱及統(tǒng)計。通過運(yùn)用這個軟件來進(jìn)行查詢及統(tǒng)計需要兩個過程,首先創(chuàng)建起相應(yīng)的索引數(shù)據(jù)庫,之后再實(shí)施檢索。在創(chuàng)建索引數(shù)據(jù)庫的時候需要運(yùn)用org apache lucene document 包,將規(guī)程相關(guān)的文檔進(jìn)行封裝,再運(yùn)用analysis 包內(nèi)所提供的類對文檔內(nèi)容來實(shí)施分詞操作,之后再運(yùn)用index 包中存在的IndexWriter 類來建立索引,并將相應(yīng)的文檔加入其中[3]。
在礦井企業(yè)的發(fā)展中,作業(yè)規(guī)程是其不可或缺的技術(shù)執(zhí)行文檔,是確保作業(yè)規(guī)程實(shí)現(xiàn)信息化管理的核心環(huán)節(jié)。作業(yè)規(guī)程管理系統(tǒng)可以為規(guī)程的編制及管理提供有效的處理方案。對于作業(yè)規(guī)程而言,系統(tǒng)內(nèi)部設(shè)計了其功能構(gòu)架,運(yùn)用Spring MVC 來確保該系統(tǒng)內(nèi)部的實(shí)體層、控制層及視圖層得到有效的分離,精簡系統(tǒng)的研發(fā),同時為系統(tǒng)的拓展及維護(hù)提供較大的便利。通過運(yùn)用Amoeba 中間件可以對后臺數(shù)據(jù)庫進(jìn)行單獨(dú)的讀、寫,同時運(yùn)用Lucene 框架可以對規(guī)程的全文進(jìn)行檢索。通過設(shè)計系統(tǒng),可以確保規(guī)程的設(shè)計具備有效的模型支撐。