孟蓮蓉
摘 要:基于大數(shù)據(jù)可視化分析的安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)是安全生產(chǎn)管理系統(tǒng)的重要組成部分。該文扼要地概述了安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)的功能及其主要技術(shù)手段,包括主要系統(tǒng)架構(gòu)、前端主要技術(shù)和后臺(tái)技術(shù)概述,說明了建設(shè)安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)對(duì)于進(jìn)一步提高生產(chǎn)質(zhì)量和安全生產(chǎn)保障能力具有重要意義。
關(guān)鍵詞:運(yùn)行監(jiān)控 前端 后臺(tái)
中圖分類號(hào):TP27 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)12(a)-0051-03
近年來,企業(yè)的信息化建設(shè)和信息化管理成為企業(yè)發(fā)展的重點(diǎn)[1-2],某廣電單位緊緊圍繞廣電事業(yè)發(fā)展和管理創(chuàng)新的需要,穩(wěn)步推進(jìn)信息化建設(shè)并取得初步成效。自動(dòng)化系統(tǒng)已經(jīng)得到廣泛應(yīng)用,減少了對(duì)人的依賴;各類信息系統(tǒng)也成為業(yè)務(wù)工作的重要支撐;網(wǎng)絡(luò)已經(jīng)成為主要的信息傳遞渠道,信息化已經(jīng)成為該單位業(yè)務(wù)管理的重要組成部分[3]。
通過持續(xù)多年的信息化基礎(chǔ)建設(shè),基本實(shí)現(xiàn)了設(shè)備的實(shí)時(shí)狀態(tài)和運(yùn)行數(shù)據(jù)在分公司信息平臺(tái)的初步整合。但是,該單位信息化發(fā)展中存在的一些問題越來越明顯:第一,當(dāng)前各分公司的設(shè)備運(yùn)行、運(yùn)維數(shù)據(jù)等沒有進(jìn)行統(tǒng)一地采集與存儲(chǔ),未能實(shí)現(xiàn)分公司生產(chǎn)及管理數(shù)據(jù)和總部管理數(shù)據(jù)的匯總和分析;第二,由于當(dāng)時(shí)技術(shù)體制的局限性,已建成的各系統(tǒng)大多為分散、獨(dú)立系統(tǒng),相互間沒有形成聯(lián)動(dòng);第三,可視分析是數(shù)據(jù)分析的重要方法[4],但各系統(tǒng)的各種運(yùn)行數(shù)據(jù)也僅作數(shù)據(jù)展示使用,沒有進(jìn)行深層次的數(shù)據(jù)挖掘、數(shù)據(jù)可視化分析工作,無法全面地為領(lǐng)導(dǎo)及各部門提供不同界面、展示豐富美觀的可視化分析應(yīng)用。
綜合上述問題分析,該單位建設(shè)了一套基于云基礎(chǔ)設(shè)施管理及大數(shù)據(jù)可視化分析的安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)。該系統(tǒng)通過對(duì)分公司的各獨(dú)立生產(chǎn)系統(tǒng)的聯(lián)動(dòng)分析,實(shí)現(xiàn)數(shù)據(jù)挖掘和可視化分析,提供設(shè)備運(yùn)行狀態(tài)監(jiān)測(cè)和輔助決策服務(wù)。
1 系統(tǒng)結(jié)構(gòu)
安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)由運(yùn)行監(jiān)測(cè)、生產(chǎn)質(zhì)量、統(tǒng)計(jì)分析及綜合查詢等模塊組成。支撐上述業(yè)務(wù)模塊的數(shù)據(jù)主要來自于總部本級(jí)的大數(shù)據(jù)主題數(shù)據(jù)庫(kù)。根據(jù)各業(yè)務(wù)部門需求,各模塊對(duì)這些數(shù)據(jù)進(jìn)行分析處理,提煉業(yè)務(wù)價(jià)值,再運(yùn)用數(shù)據(jù)可視化技術(shù)進(jìn)行呈現(xiàn)。
運(yùn)行監(jiān)測(cè)、生產(chǎn)質(zhì)量模塊實(shí)現(xiàn)在總部本級(jí)對(duì)全單位所有生產(chǎn)設(shè)備的運(yùn)行狀態(tài)和生產(chǎn)質(zhì)量的實(shí)時(shí)監(jiān)測(cè)和報(bào)警,爭(zhēng)取在第一時(shí)間發(fā)現(xiàn)問題,及時(shí)指揮調(diào)度,進(jìn)行應(yīng)急處置,增強(qiáng)應(yīng)對(duì)突發(fā)事件的能力,提升安全生產(chǎn)保障能力;通過生產(chǎn)設(shè)備穩(wěn)定度分析及設(shè)備故障管理模塊對(duì)生產(chǎn)運(yùn)行數(shù)據(jù)的統(tǒng)計(jì)分析,為實(shí)現(xiàn)全部設(shè)備資源的優(yōu)化配置,為領(lǐng)導(dǎo)決策提供及時(shí)、快捷、準(zhǔn)確的依據(jù),最終達(dá)到提高生產(chǎn)質(zhì)量的目的。系統(tǒng)邏輯結(jié)構(gòu)見圖1。
2 技術(shù)架構(gòu)
TBMS系統(tǒng)整體上采用展現(xiàn)層、應(yīng)用層、數(shù)據(jù)層3層B/S架構(gòu)。每一層為上一層提供服務(wù),使用下一層的服務(wù)。通過層次結(jié)構(gòu)將大的問題分解成若干小問題逐步解決,這樣可以減少系統(tǒng)的復(fù)雜度。
展現(xiàn)層用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面,采用D3、HighCharts可視化組件、jQuery、Websocket等技術(shù)。運(yùn)行監(jiān)控系統(tǒng)的應(yīng)用層基于Spring框架,處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用,對(duì)于數(shù)據(jù)訪問層而言,它是調(diào)用者;對(duì)于表示層而言,它卻是被調(diào)用者。數(shù)據(jù)層主要是負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問和對(duì)象實(shí)體的持久化,采用MySQL ORM、MongoDB ORM框架、Druid數(shù)據(jù)庫(kù)連接池、MySQL觸發(fā)器、同步復(fù)制等技術(shù)。平臺(tái)總體技術(shù)框架參見圖2。
2.1 前端技術(shù)
運(yùn)行監(jiān)控系統(tǒng)的前端開發(fā)設(shè)計(jì)主要應(yīng)用了可視化工具D3、網(wǎng)頁報(bào)表工具HighCharts、JQuey框架和Websocket技術(shù)。
可視化工具D3是在綜合考慮可視化表現(xiàn)形式多樣性、效率和可訪問性基礎(chǔ)上提出的,實(shí)例豐富,易于實(shí)現(xiàn)調(diào)試數(shù)據(jù),可以被很多其他的表格插件所使用,允許綁定任意數(shù)據(jù)到DOM,然后將數(shù)據(jù)驅(qū)動(dòng)轉(zhuǎn)換應(yīng)用到Document中,并且可以使用它用一個(gè)數(shù)組創(chuàng)建基本的HTML表格,或是利用它的流體過度和交互,用相似的數(shù)據(jù)創(chuàng)建SVG條形圖。
網(wǎng)頁報(bào)表工具HighCharts采用純JavaScript編寫,兼容當(dāng)今大部分的瀏覽器,包括Safari、IE和火狐等等;能夠支持曲線圖、區(qū)域圖、柱狀圖、餅狀圖、散狀點(diǎn)圖和綜合圖表等多種圖表類型,可以滿足各種需求;HighCharts可以在大多數(shù)的WEB開發(fā)中使用,并且對(duì)個(gè)人用戶免費(fèi),支持ASP,PHP,JAVA,.NET等多種語言中使用;HighCharts具有提示功能,在其生成的圖表中,可以設(shè)置在數(shù)據(jù)點(diǎn)上顯示提示效果,即將鼠標(biāo)移動(dòng)到某個(gè)數(shù)據(jù)點(diǎn)上,可以顯示該點(diǎn)的詳細(xì)數(shù)據(jù),并且可以對(duì)顯示效果進(jìn)行設(shè)置;HighCharts可以大量數(shù)據(jù)集中顯示,并且可以放大某一部分的圖形,將圖表的精度增大,進(jìn)行詳細(xì)地顯示,可以選擇橫向或者縱向放大;HighCharts時(shí)間軸可以精確到毫秒,滿足系統(tǒng)的實(shí)時(shí)性和準(zhǔn)確性要求。
JQuey框架是前端的基礎(chǔ)框架。WebSocket protocol是HTML5一種新的協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信(Full-duplex),該系統(tǒng)用到的是stomp.js,stomp.js是使用HTML5 WebSocket實(shí)現(xiàn)的stomp客戶端,客戶端的WebSocket底層實(shí)現(xiàn)都在該文件中。
2.2 后臺(tái)技術(shù)
后臺(tái)的核心是Spring框架,用到的大部分技術(shù)都會(huì)與Spring平臺(tái)進(jìn)行整合。后臺(tái)分層結(jié)構(gòu)包含應(yīng)用層和數(shù)據(jù)層。
應(yīng)用層用到如下技術(shù)。
(1)Spring框架:Spring是后臺(tái)的核心,它是一個(gè)輕量級(jí)的IOC和AOP容器框架。
(2)Spring MVC:MVC框架,用于連接前后臺(tái)的數(shù)據(jù)交互。當(dāng)前端發(fā)起一個(gè)http請(qǐng)求時(shí),由Web容器(該項(xiàng)目中為Tomcat)將請(qǐng)求轉(zhuǎn)交給Spring MVC的控制器,通過控制器找到相應(yīng)請(qǐng)求的處理器。將請(qǐng)求處理后,通過Model And View()對(duì)象返回相應(yīng)的視圖。也可以直接通過ajax請(qǐng)求將動(dòng)態(tài)數(shù)據(jù)返回。該項(xiàng)目中,當(dāng)前端需要展示廣播發(fā)射機(jī)的基本信息時(shí),首先通過ajax向后臺(tái)發(fā)送http請(qǐng)求,當(dāng)Spring MVC接受到ajax請(qǐng)求時(shí),通過控制器將請(qǐng)求分發(fā),并在處理器層將請(qǐng)求處理并返回對(duì)應(yīng)的數(shù)據(jù)至前端,前端將相應(yīng)數(shù)據(jù)展現(xiàn),實(shí)現(xiàn)一個(gè)完整的MVC架構(gòu)。
(3)Spring Security:安全認(rèn)證服務(wù)框架,系統(tǒng)使用它進(jìn)行登錄認(rèn)證和權(quán)限控制。
(4)Spring Websocket:Spring在4.0版本后提供了對(duì)Websocket的支持,配置和使用與Spring MVC類似。Websocket作為HTML5中新的協(xié)議,能夠?qū)崿F(xiàn)數(shù)據(jù)雙向?qū)崟r(shí)通信。在Websocket瀏覽器和服務(wù)器中只需要做一個(gè)握手的動(dòng)作,瀏覽器和服務(wù)器之間就形成了一條快速通道。兩者之間就直接可以數(shù)據(jù)互相傳送。該項(xiàng)目中,由于為體現(xiàn)實(shí)時(shí)監(jiān)控的功能,有較多的實(shí)時(shí)性數(shù)據(jù)需要在前端中展示,例如當(dāng)需要展示全局的廣播發(fā)射機(jī)工作狀態(tài)時(shí),需要通過Websocket將數(shù)據(jù)以消息的形式實(shí)時(shí)發(fā)送到前端,以達(dá)到實(shí)時(shí)監(jiān)控的目的。
(5)Quartz:Quartz是一個(gè)開源的作業(yè)調(diào)度框架,配置簡(jiǎn)單且很靈活,能與Spring進(jìn)行很好地集成。Quartz允許開發(fā)人員根據(jù)時(shí)間間隔(或天)來調(diào)度作業(yè)。它實(shí)現(xiàn)了作業(yè)和觸發(fā)器的多對(duì)多關(guān)系。
(6) Ehcache:Ehcache是一個(gè)很優(yōu)秀的緩存框架,完全用java實(shí)現(xiàn),系統(tǒng)中用它主要有兩個(gè)功能。
①與Mybatis整合,當(dāng)在Mybatis的Mapper配置文件中配置相應(yīng)的參數(shù)時(shí),能對(duì)查詢的結(jié)果進(jìn)行緩存。
②將系統(tǒng)中的靜態(tài)數(shù)據(jù)(如生產(chǎn)設(shè)備信息、分公司信息、機(jī)房信息)放入其中,代碼里直接從Ehcache中獲取需要的數(shù)據(jù),提高性能,減少數(shù)據(jù)庫(kù)壓力。
(7)Zzx Commons:Zzx Commons是自行研發(fā)的工具包,提供與業(yè)務(wù)無關(guān)的公共功能,比如工具類(類操作、日期操作、文件操作、日志操作等),公共的日志對(duì)象、數(shù)據(jù)對(duì)象、異常對(duì)象等,可被其他工程引用。
數(shù)據(jù)層包含如下技術(shù)。
(1) Mybatis:Mybatis是針對(duì)關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)秀的ORM框架,類似Hibernate,它上手簡(jiǎn)單,文檔全面,與Spring能很好地集成,同時(shí)提供代碼生成器。
(2) Morphia:Morphia是針對(duì)Mongodb的ORM框架,對(duì)Mongodb Api進(jìn)行了封裝,方便開發(fā)者使用。Morphia框架可以輕易地整合非關(guān)系型數(shù)據(jù)庫(kù)中面向文檔的操作,做到和Query,Insert,Update以及Remove等意義相同的操作。
(3)Druid:非常高效的數(shù)據(jù)庫(kù)連接池,還提供監(jiān)控功能。
(4)Mysql高級(jí)特性。
①觸發(fā)器。觸發(fā)器是一種特殊的存儲(chǔ)過程,觸發(fā)程序是與表有關(guān)的命名數(shù)據(jù)庫(kù)對(duì)象,當(dāng)表上出現(xiàn)特定事件時(shí),將激活該對(duì)象。
②復(fù)制。生產(chǎn)環(huán)境有兩臺(tái)Mysql服務(wù)器,任何一臺(tái)既是主服務(wù)器又是備服務(wù)器,當(dāng)其中的一臺(tái)服務(wù)器有數(shù)據(jù)變更時(shí),會(huì)通過復(fù)制功能同步到另外一臺(tái)服務(wù)器。
3 結(jié)語
該文介紹了安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)的系統(tǒng)架構(gòu),包括主要功能模塊、系統(tǒng)邏輯結(jié)構(gòu);并且對(duì)系統(tǒng)建設(shè)過程中應(yīng)用的主要技術(shù)進(jìn)行了說明,包括前端主要技術(shù)和后臺(tái)技術(shù)的概述。安全生產(chǎn)運(yùn)行監(jiān)控系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)挖掘和可視化展示,對(duì)于實(shí)現(xiàn)生產(chǎn)資源優(yōu)化配置、提供設(shè)備運(yùn)行狀態(tài)監(jiān)測(cè)和輔助安全播出輔助決策、提高安全運(yùn)行保障能力具有重要意義。
參考文獻(xiàn)
[1] 劉磊.企業(yè)信息化管理應(yīng)用研究[J].經(jīng)濟(jì)研究導(dǎo)刊, 2013(23):58.
[2] 周鴻.企業(yè)信息化管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)管理信息化, 2012,15(16):79.
[3] 張戈.淺談廣電網(wǎng)絡(luò)的信息化建設(shè)[J].科技致富向?qū)В?014(18):80.
[4] 任磊,杜一,馬帥,等.大數(shù)據(jù)可視分析綜述[J].軟件學(xué)報(bào), 2014(9):1909-1936.