許建遠(yuǎn)
(廣東電網(wǎng)有限責(zé)任公司茂名供電局,廣東茂名525000)
配網(wǎng)搶修及日常運(yùn)維是個繁雜艱巨的工作,現(xiàn)場工作支持軟件/工具非常有限;而當(dāng)前移動互聯(lián)網(wǎng)應(yīng)用如火如荼,如地圖導(dǎo)航APP之類的軟件在日常生活中已得到廣泛應(yīng)用,研究如何給工作人員提供類似的靈活便捷的工具/軟件,為現(xiàn)場工作提供有效的技術(shù)支持,非常有現(xiàn)實(shí)意義。本軟件借鑒GIS軟件的設(shè)計思想,借助通用地圖組件,提供工作人員現(xiàn)場查看配網(wǎng)設(shè)備地理信息的功能;通過分析處理設(shè)備臺賬數(shù)據(jù)文件,為離線APP提供數(shù)據(jù)模型來源;充分利用地圖組件API,提供工作人員多種搜索設(shè)備以及定位導(dǎo)航功能。本軟件某種程度上具有GIS應(yīng)用軟件的優(yōu)點(diǎn),又避免了傳統(tǒng)GIS應(yīng)用重型繁雜,實(shí)現(xiàn)成本高、周期長的弊端,在手機(jī)端實(shí)現(xiàn)了一個輕量級的GIS/WEB GIS應(yīng)用APP。
系統(tǒng)數(shù)據(jù)流程如圖1所示。
圖1 系統(tǒng)數(shù)據(jù)流程圖
為了滿足南網(wǎng)對移動應(yīng)用的安全要求,本APP采用完全離線模式,不提供APP任何與茂名局信息化系統(tǒng)通信的途徑。APP使用的數(shù)據(jù)采用兩條途徑部署到手機(jī)端,一是初始安裝時,載入主要數(shù)據(jù),主要包括配網(wǎng)設(shè)備模型;二是定期發(fā)布數(shù)據(jù)文件(或者通過南網(wǎng)企信平臺下載更新數(shù)據(jù)),維護(hù)人員通過新的臺賬文件導(dǎo)出獲得更新的配網(wǎng)設(shè)備模型,打包成增量數(shù)據(jù)文件,發(fā)送給有關(guān)使用人員,使用人員用微信下載該文件后,再用APP的數(shù)據(jù)同步模塊讀取該文件,更新本地數(shù)據(jù)庫表。
軟件系統(tǒng)的設(shè)計、開發(fā)遵循以下原則:
(1)采用螺旋模型(收集整理需求、設(shè)計原型、用戶確認(rèn));(2)遵循軟件工程化的設(shè)計方法和管理原則;
(3)采用面向?qū)ο蠛湍K化的設(shè)計和實(shí)現(xiàn)技術(shù),強(qiáng)調(diào)軟件重用、數(shù)據(jù)重用和系統(tǒng)的互操作性,并最終實(shí)現(xiàn)系統(tǒng)功能的綜合一體化;
(4)在滿足系統(tǒng)各類要求的前提下,保持一定的可擴(kuò)充性,在將來需要時進(jìn)行功能擴(kuò)充;
(5)松耦合、接口隔離原則,提高軟件的組件化特征,提高軟件的成熟度;
(6)組合聚合原則,減少繼承方式,多采用組合方式,增強(qiáng)系統(tǒng)的靈活性,減少系統(tǒng)的耦合度和復(fù)雜度;
(7)軟件系統(tǒng)運(yùn)行可靠,信息保密;
(8)加強(qiáng)軟件測試,包括白盒測試(單元測試)、黑盒測試(系統(tǒng)測試等),提高軟件可靠性和系統(tǒng)穩(wěn)定性。
根據(jù)軟件的設(shè)計目標(biāo),應(yīng)開發(fā)下列軟件,以滿足功能要求:
(1)PC端WEB系統(tǒng)提供完整的維護(hù)功能,包括設(shè)備圖標(biāo)維護(hù)、臺賬數(shù)據(jù)處理等;
(2)PC端WEB系統(tǒng)實(shí)現(xiàn)基于地圖的設(shè)備查詢、導(dǎo)航等功能;
(3)APP提供基于地圖組件的配網(wǎng)設(shè)備定位及導(dǎo)航功能;
(4)APP提供多種設(shè)備搜索方式,提供基于地圖的設(shè)備搜索定位;
(5)APP提供基于短信告警系統(tǒng)的告警設(shè)備地圖查詢功能。
1.4.1 軟件開發(fā)平臺
本項目開發(fā)采用EclipseIDE,該開發(fā)平臺是為應(yīng)用系統(tǒng)開發(fā)者提供的軟件開發(fā)環(huán)境。它除提供系統(tǒng)軟件、支持二次開發(fā)的工具軟件和應(yīng)用編程接口外,還提供創(chuàng)建、編譯、測試應(yīng)用軟件所需的編譯器、排錯工具、開發(fā)工具、測試工具、部署工具等。
軟件系統(tǒng)開發(fā)平臺(語言)包括:JAVA、Html、CSS、JavaScript。
1.4.2 軟件運(yùn)行平臺
本項目PC端部分運(yùn)行于JavaEE平臺,包括JAVA容器Apache/Tomcat服務(wù)器以及中間件Spring+IBatis+DWR。Spring是JavaBean容器框架,提供控制反轉(zhuǎn)(IoC)和面向切面(AOP)平臺級功能;IBatis是對象關(guān)系映射框架,對JDBC進(jìn)行輕量級封裝,提供面向?qū)ο蠓绞降臄?shù)據(jù)庫操作接口;DWR是RPC技術(shù),提供前端分布式數(shù)據(jù)及業(yè)務(wù)邏輯服務(wù)功能。
軟件設(shè)計主要以下幾個模塊:
(1)PC端WEB系統(tǒng)提供完整的維護(hù)功能,包括設(shè)備圖標(biāo)維護(hù)、臺賬數(shù)據(jù)處理等。
(2)PC端WEB系統(tǒng)實(shí)現(xiàn)基于地圖的設(shè)備定位及導(dǎo)航。
(3)PC端WEB系統(tǒng)實(shí)現(xiàn)設(shè)備搜索功能。(4)APP提供基于地圖組件的配網(wǎng)設(shè)備定位及導(dǎo)航功能。(5)APP提供多種設(shè)備搜索方式,提供基于地圖的設(shè)備搜索定位。
(6)APP提供基于短信告警系統(tǒng)的告警設(shè)備地圖查詢功能。
系統(tǒng)架構(gòu)如圖2所示。
圖2 系統(tǒng)架構(gòu)圖
本系統(tǒng)基于JavaEE平臺,采用Apache/Tomcat服務(wù)器,后臺采用Spring+IBatis/Hibernate+DWR技術(shù),充分利用JavaEE平臺豐富的功能以及對企業(yè)應(yīng)用開發(fā)的強(qiáng)大支持,該模式賦予了系統(tǒng)強(qiáng)大的擴(kuò)展能力和簡便的維護(hù)要求,為項目實(shí)施提供了有力保障。
Spring是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,它是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情,具有輕便、易使用、易擴(kuò)充、用途廣泛等特點(diǎn)。IBatis是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲地使用對象編程思維來操縱數(shù)據(jù)庫。DWR通過Ajax動態(tài)把Java類生成為JavaScript,使得在瀏覽器端調(diào)用JAVA方法就如同調(diào)用普通JS方法一樣直接、方便。這種從Java到JavaScript的遠(yuǎn)程調(diào)用功能的方式使DWR用起來非常像RMI或者SOAP的常規(guī)RPC機(jī)制,DWR的優(yōu)點(diǎn)在于不需要任何的網(wǎng)頁瀏覽器插件就能運(yùn)行在網(wǎng)頁上。
IBatis是一個可以自定義SQL、存儲過程和高級映射的持久層框架。IBatis摒除了大部分的JDBC代碼、手工設(shè)置參數(shù)和結(jié)果集重獲,只使用簡單的XML和注解來配置和映射基本數(shù)據(jù)類型、Map接口和POJO到數(shù)據(jù)庫記錄。相對Hibernate和Apache OJB等“一站式”O(jiān)RM解決方案而言,IBatis是一種“半自動化”的ORM實(shí)現(xiàn),它使得程序的持久化過程變得可以重用、可配置、易于編寫和管理,而且也易于調(diào)試。
WEB前端采用RIA/ExtJS技術(shù),提供系統(tǒng)強(qiáng)大靈活的交互能力,使得系統(tǒng)具有了類似桌面系統(tǒng)的可用性。在此基礎(chǔ)上,DNN100基礎(chǔ)平臺組件庫及對應(yīng)的工具提供了有力的豐富和擴(kuò)展,使前端實(shí)現(xiàn)既方便快捷又豐富強(qiáng)大。WEB層使用了目前流行的富客戶端技術(shù)(RIA),開發(fā)人機(jī)交互友好的界面系統(tǒng),所涉及的技術(shù)主要有ExtJS和DWR。
ExtJS是一個Ajax框架,是一個用JavaScript寫的,用于在客戶端創(chuàng)建豐富多彩的WEB應(yīng)用程序界面的前端Ajax框架。ExtJS可以用來開發(fā)RIA也即富客戶端的Ajax應(yīng)用。ExtJS主要用于創(chuàng)建前端用戶界面,是一個與后臺技術(shù)無關(guān)的前端Ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發(fā)語言開發(fā)的應(yīng)用中。ExtJs最開始基于YUI技術(shù),完美地融合了JQuery、Prototype和YUI。ExtJS區(qū)別于其他Ajax框架的最大特點(diǎn)是其提供了豐富而且簡單易用的UI組件和統(tǒng)一美觀的樣式庫。
DWR(Direct Web Remoting)是一個用于改善WEB頁面與Java類交互的遠(yuǎn)程服務(wù)器端Ajax開源框架,可以幫助開發(fā)人員開發(fā)包含Ajax技術(shù)的網(wǎng)站。它允許在瀏覽器里的代碼使用運(yùn)行在WEB服務(wù)器上的Java函數(shù),如同就在瀏覽器里一樣。
APP采用Hybrid混合模式設(shè)計,基于當(dāng)前主流的Cordova框架。Cordova是用于使用HTML、CSS和JS構(gòu)建移動應(yīng)用的平臺,可以把Cordova理解成一個容器,用于將我們的網(wǎng)絡(luò)應(yīng)用程序與本機(jī)移動功能連接。
PC端維護(hù)模塊,全面解析臺賬EXCEL文件,創(chuàng)建WEB服務(wù)器端的數(shù)據(jù)庫表。APP初始安裝時,在手機(jī)端創(chuàng)建對應(yīng)的本地數(shù)據(jù)庫表。維護(hù)模塊定期解析新的臺賬EXCEL文件,導(dǎo)出增量數(shù)據(jù)文件,發(fā)給各APP用戶,以同步更新本地數(shù)據(jù)庫表。
數(shù)據(jù)庫創(chuàng)建及導(dǎo)入的數(shù)據(jù)流是,將解析的各EXCEL的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中。數(shù)據(jù)同步的數(shù)據(jù)流是,將導(dǎo)出的增量數(shù)據(jù)文件發(fā)到手機(jī),導(dǎo)入到手機(jī)數(shù)據(jù)庫中。
APP和PC端WEB實(shí)現(xiàn)相似的設(shè)備定位功能。從設(shè)備樹或模糊查詢點(diǎn)選某設(shè)備,則跳轉(zhuǎn)到地圖界面,并在地圖上標(biāo)注出設(shè)備。點(diǎn)擊該標(biāo)注,可進(jìn)一步查詢該設(shè)備的詳細(xì)參數(shù)數(shù)據(jù)。設(shè)備定位屬于數(shù)據(jù)查詢應(yīng)用,數(shù)據(jù)源為PC端或手機(jī)端的各設(shè)備數(shù)據(jù)庫表。
借鑒GIS軟件的使用方式,在WEB端以及APP地圖組件上實(shí)現(xiàn)GIS圖形工具條,提供用戶多種方便的區(qū)域選擇功能,以查找檢索該區(qū)域內(nèi)指定類型的設(shè)備。設(shè)備搜索屬于數(shù)據(jù)查詢應(yīng)用,數(shù)據(jù)源為PC端或手機(jī)端的各設(shè)備數(shù)據(jù)庫表。
WEB軟件及APP充分利用茂名供電局短信平臺發(fā)到各工作人員手機(jī)上的告警短信,顯示出滿足查詢條件(時間、類型、地理范圍)的告警設(shè)備。點(diǎn)擊設(shè)備圖標(biāo),可查看設(shè)備的臺賬信息。表格選項卡顯示告警設(shè)備的列表。告警設(shè)備定位屬于數(shù)據(jù)查詢應(yīng)用,數(shù)據(jù)源為手機(jī)端的各設(shè)備數(shù)據(jù)庫表以及手機(jī)的短信庫。
系統(tǒng)已通過廠內(nèi)系統(tǒng)測試,性能穩(wěn)定,使用方便。系統(tǒng)UI設(shè)計技術(shù)先進(jìn),界面設(shè)計穩(wěn)重美觀、直觀形象,使用操作流暢便利。
系統(tǒng)數(shù)據(jù)模型正確完整,全面正確地將大量臺賬數(shù)據(jù)文件導(dǎo)入到PC端及APP端系統(tǒng)的數(shù)據(jù)庫,數(shù)據(jù)訪問速度滿足要求。
系統(tǒng)在PC端及APP端的地圖操作,平滑快捷,使用方便;設(shè)備查找定位以及導(dǎo)航具有較高的實(shí)用意義。
本系統(tǒng)在服務(wù)器技術(shù)框架、PC端UI設(shè)計、APP實(shí)現(xiàn)技術(shù)等方面都采用了先進(jìn)的設(shè)計技術(shù)及理念,系統(tǒng)整體運(yùn)行良好,實(shí)現(xiàn)了一款輕量級的GIS/WEBGIS應(yīng)用APP。與同類應(yīng)用比較,總體性能指標(biāo)處于先進(jìn)水平。
系統(tǒng)基于JavaEE技術(shù),底層平臺采用Spring+IBatis+DWR技術(shù)框架,保證了系統(tǒng)的可靠穩(wěn)定以及可擴(kuò)展性。系統(tǒng)具有自己的業(yè)務(wù)支持平臺DNN100,簡化了業(yè)務(wù)開發(fā)的難度和復(fù)雜性,方便了軟件后期維護(hù),賦予了軟件長久的生命力。PC端WEB界面采用ExtJS技術(shù),該框架具有完善的WEB前端開發(fā)功能,組件、事件模型、數(shù)據(jù)操作豐富完善,提高了軟件的可靠性、穩(wěn)定性。APP采用當(dāng)前主流跨平臺設(shè)計方式——Hybrid混合設(shè)計模式,簡化了設(shè)計難度,提高了多平臺復(fù)用度。
系統(tǒng)的軟件設(shè)計借鑒了GIS軟件的設(shè)計思想,借助通用地圖組件,為工作人員現(xiàn)場施工提供方便快捷的查看設(shè)備地理信息的功能。該軟件某種程度上具有GIS應(yīng)用軟件的優(yōu)點(diǎn),又避免了傳統(tǒng)GIS應(yīng)用軟件重型繁雜,實(shí)現(xiàn)成本高、周期長的弊端,在手機(jī)端實(shí)現(xiàn)了一個輕量級的GIS/WEB GIS應(yīng)用APP,是一個有意義的技術(shù)嘗試和創(chuàng)新。