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