劉同斌 陳曉湖 何曄文
(廣東電網(wǎng)有限責(zé)任公司茂名供電局,廣東茂名525000)
配電網(wǎng)運(yùn)行報(bào)表是系統(tǒng)運(yùn)行部配網(wǎng)調(diào)度日常工作的一項(xiàng)重要內(nèi)容,但目前報(bào)表種類多,提交頻繁,給配網(wǎng)調(diào)度造成了很大負(fù)擔(dān)。當(dāng)前報(bào)表填寫工作都是通過調(diào)度員人工查看數(shù)據(jù)并統(tǒng)計(jì),按照規(guī)定的文件格式逐項(xiàng)填寫Word文檔和Excel文檔。盡管這些數(shù)據(jù)絕大部分在配網(wǎng)技術(shù)支持平臺(tái)已經(jīng)存在[1],但數(shù)據(jù)龐大,報(bào)表類型多,導(dǎo)致調(diào)度員仍然需要人工手動(dòng)去完成這些費(fèi)時(shí)費(fèi)力的機(jī)械性工作,在突發(fā)惡劣天氣情況下,配網(wǎng)調(diào)度臺(tái)需要兩位專職收集線路跳閘情況相關(guān)數(shù)據(jù),做好統(tǒng)計(jì),每小時(shí)發(fā)布,這給調(diào)度工作人員造成了很大負(fù)擔(dān)。
1.2.1 實(shí)現(xiàn)報(bào)表數(shù)據(jù)的獲取
隨著數(shù)據(jù)規(guī)模的膨脹以及系統(tǒng)數(shù)量的增長,數(shù)據(jù)復(fù)用以及系統(tǒng)交互的需求會(huì)越來越多,消除信息孤島、異構(gòu)系統(tǒng)的信息交互成為迫切需要解決但又難以解決的問題,當(dāng)前主要可通過Web服務(wù)方式實(shí)現(xiàn)。本設(shè)計(jì)采用運(yùn)行于安全四區(qū)的爬蟲技術(shù)以及中間數(shù)據(jù)導(dǎo)入技術(shù),不依賴于系統(tǒng)廠家即可實(shí)現(xiàn)異構(gòu)系統(tǒng)的數(shù)據(jù)整合,直接獲取報(bào)表數(shù)據(jù),作為消除信息孤島、實(shí)現(xiàn)數(shù)據(jù)復(fù)用和共享的補(bǔ)充模式。
1.2.2 提供報(bào)表在線編輯功能
自動(dòng)讀取的數(shù)據(jù),可能存在信息不夠全面或顯示方式不滿足要求等情況,這就需要對(duì)讀取數(shù)據(jù)進(jìn)行編輯加工。本設(shè)計(jì)提供了方便的定制工具及編輯組件,編輯組件與展示組件為一體,為用戶提供了良好的體驗(yàn)和操作的便捷性。
利用后臺(tái)JAVA/JSoup技術(shù)以及前臺(tái)JS/Ajax技術(shù)兩個(gè)渠道來分析抓取配電網(wǎng)運(yùn)行管理技術(shù)支持平臺(tái)的網(wǎng)頁數(shù)據(jù);基于JavaEE平臺(tái)(包括JAVA容器Apache/Tomcat服務(wù)器)以及中間件Spring+IBatis+DWR構(gòu)建軟件架構(gòu);采用的Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的JavaBean容器框架;采用IBatis對(duì)象關(guān)系映射框架,進(jìn)行輕量級(jí)的對(duì)象封裝,摒除了大部分的JDBC代碼、手工設(shè)置參數(shù)和結(jié)果集重獲,使得程序的持久化過程變得可以重用、可配置、易于編寫和管理,而且也易于調(diào)試;采用的DWR是RPC技術(shù),通過反射等技術(shù)將后臺(tái)的JAVA服務(wù)類直接暴露給前臺(tái)JavaScript,使得前臺(tái)JS代碼調(diào)用后臺(tái)的JAVA方法就如同直接調(diào)用JS方法一樣,直截了當(dāng)、簡單方便。
基于爬蟲技術(shù)的多源配電網(wǎng)運(yùn)行報(bào)表自動(dòng)生成及管理工具軟件架構(gòu)如圖1所示。
圖1 軟件架構(gòu)
利用后臺(tái)JAVA/JSoup技術(shù)以及前臺(tái)JS/Ajax技術(shù)兩個(gè)渠道來分析抓取配電網(wǎng)運(yùn)行管理技術(shù)支持平臺(tái)的網(wǎng)頁數(shù)據(jù);根據(jù)各種配網(wǎng)調(diào)度報(bào)表,確定需要統(tǒng)計(jì)的數(shù)據(jù)來源;利用規(guī)則庫來定位各數(shù)據(jù)的保存位置,以便準(zhǔn)確抓取,規(guī)則庫維護(hù)工具提供編輯功能,以跟蹤配電網(wǎng)運(yùn)行管理技術(shù)支持平臺(tái)頁面的變化。網(wǎng)絡(luò)爬蟲常見的技術(shù)障礙是跨越問題(網(wǎng)頁資源的不同源問題),采用Nginx等反向代理框架,將配電網(wǎng)運(yùn)行管理技術(shù)支持平臺(tái)的Web資源URL配置到Nginx服務(wù)器上,從而有效規(guī)避Web瀏覽器跨域安全限制問題。數(shù)據(jù)爬蟲處理流程如圖2所示。
圖2 數(shù)據(jù)爬蟲處理流程
通過提供基于POI/JACOB技術(shù)的Office導(dǎo)入工具,將從有關(guān)平臺(tái)渠道獲?。ɑ蛉斯ぞ庉嫞┑臄?shù)據(jù)文件,導(dǎo)入到系統(tǒng)里來。
通過ETL與數(shù)據(jù)導(dǎo)入適配器,運(yùn)用ETL技術(shù),可處理不同類型的數(shù)據(jù)源,并通過動(dòng)態(tài)語言定義規(guī)則庫按統(tǒng)一的格式轉(zhuǎn)換處理,可用來描述中間數(shù)據(jù)文件的元數(shù)據(jù)格式。
通用數(shù)據(jù)庫表設(shè)計(jì)及數(shù)據(jù)庫視圖訪問,設(shè)計(jì)合乎規(guī)范要求的配電網(wǎng)數(shù)據(jù)庫表,作為其他系統(tǒng)應(yīng)用的基礎(chǔ)。設(shè)計(jì)數(shù)據(jù)庫訪問視圖,提供緊密層應(yīng)用的數(shù)據(jù)訪問途徑。
用FR等有關(guān)報(bào)表定制工具,定制與上報(bào)報(bào)表一樣的Web界面,以提供在線瀏覽及編輯功能,提供所見即所得的用戶體驗(yàn),同時(shí)提供辦公文件導(dǎo)出功能,以滿足有關(guān)提交文檔的需要。提供單記錄/多記錄數(shù)據(jù)輸出定義功能,將自動(dòng)獲取或?qū)氲臄?shù)據(jù)輸出顯示在表格指定的位置。
提供基于Web方式的在線編輯[2],通過提供在線編輯組件,使軟件可以對(duì)通報(bào)進(jìn)行在線修改編輯,包括智能輔助表單組件、單記錄/多記錄編輯組件,提供良好的可用性及用戶體驗(yàn)。同時(shí)采用itextpdf等JAVA框架,提供導(dǎo)出Word、Excel、PDF文檔功能。
采用Echart等圖表技術(shù),在配網(wǎng)運(yùn)行報(bào)表里嵌入儀表盤組件,用曲線柱圖等統(tǒng)計(jì)分析圖表,可視化展示報(bào)表/運(yùn)行通報(bào)數(shù)據(jù)。
用戶自定義的自動(dòng)統(tǒng)計(jì)功能,提供自動(dòng)統(tǒng)計(jì)計(jì)算公式定制功能,通過動(dòng)態(tài)語言引擎,賦予用戶自定義需要統(tǒng)計(jì)的表單項(xiàng)以及統(tǒng)計(jì)公式。通過自動(dòng)統(tǒng)計(jì)功能,減少上報(bào)報(bào)表計(jì)算工作量;通過計(jì)算公式自定義功能,實(shí)現(xiàn)統(tǒng)計(jì)工作的靈活性、擴(kuò)展性。
本軟件通過網(wǎng)絡(luò)爬蟲抓取配電網(wǎng)運(yùn)行管理技術(shù)支持平臺(tái)的網(wǎng)頁數(shù)據(jù),利用規(guī)則庫來描述定位各數(shù)據(jù)的保存位置;利用可視化儀表盤,將配電網(wǎng)報(bào)表數(shù)據(jù)直觀形象地展示出來;提供基于Web方式的在線編輯,減少報(bào)表統(tǒng)計(jì)出錯(cuò);提供自動(dòng)統(tǒng)計(jì)計(jì)算公式定制功能,減少報(bào)表數(shù)據(jù)計(jì)算工作量;提供便捷的查詢功能,實(shí)現(xiàn)歷史報(bào)表的在線瀏覽及歷史檢索功能;有效減少調(diào)度員工作量,實(shí)現(xiàn)一鍵查詢,自動(dòng)生成報(bào)表,零出錯(cuò),在特殊天氣情況下,能有效減少配網(wǎng)調(diào)度搶修復(fù)電壓力。