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