孟 鑫,李 洋,王學良
1(南瑞集團有限公司(國網電力科學研究院),南京 211106)
2(北京科東電力控制系統有限責任公司,北京 100192)
隨著特高壓交直流混聯大電網建設發展,主網調度管理、配網調度管理等各類自動化系統在管理信息大區部署的越來越多[1,2].這類系統通?;贐/S 架構,開發人員提供了不同技術和框架造成了界面風格各異;同時,電力系統的業務邏輯的實現需要電力專業的人員才能勝任.手工編碼不能快速響應用戶需求變更.這些影響了用戶體驗,也不利于系統業務邏輯變化產生的維護和開發工作[3-6].
近年來代碼自動生成的軟件復用技術己成為解決上述問題的慣用手段[4-6].文獻[3]設計了一個基于J2EE平臺的企業信息系統代碼生成工具,實現了一種基于業務模型和場景的代碼生成方法.文獻[6]研究了模型解釋器和代碼生成引擎,給出了基于模型驅動框架的變電站自動化系統軟件的開發和實現方案.文獻[7]采用數據解析引擎和代碼自動生成引擎構建海南電網信通公司快速研發平臺,提出了一種形式化的Web 界面行為描述語言,實現了行為模型的代碼自動生成.文獻[8]提出了一種基于ASP.NET 的自定義頁面生成引擎,動態生成Web 表單頁面.文獻[9]提出了一種符合MVC用戶界面開發最佳實踐的組件化Web 用戶界面建模方法,從界面數據模型、界面組件模型到界面交互模型等3 個方面完成Web 用戶界面建模.文獻[10]展示了近幾年興起的新興技術,指出應用和應對這些技術是未來幾年Web 發展的重要課題.
文獻[11]使用代碼生成工具,通過設計成果的復用和共享提高系統開發的質量和效率.但是大量的代碼生成導致開發人員過于依賴代碼自動生成,忽略了系統的可維護性,造成后期維護成本上升.同時代碼生成工具在實際使用中還存在操作不靈活、使用不方便、功能整合能力不足的問題.
本文提出的自有知識產權的多組件Web 可視化開發平臺(下文簡稱Web 開發平臺)在模型驅動的開發思想基礎之上,采用代碼自動生成結合手工merge的開發模式,即基礎功能由代碼生成器生成,電力系統的業務邏輯由開發人員自主實現.既保留了自動生成的代碼的便捷性,又避免了受代碼生成器的束縛.本文介紹了Web 開發平臺的系統架構,詳細介紹了平臺中核心組件,包括單點登錄、圖形自動生成、表單設計器、布局設計器、設備拓撲生成和業務功能快速開發等組件,并闡述了如何采用Web 開發平臺中的組件構建調度自動化系統監控平臺前端.
多組件Web 開發平臺后端采用SpringMVC 控制邏輯跳轉和Hibernate 讀取數據庫信息,前端采用Easyui、Jquery 和Echarts 進行界面展示.該平臺采用面向聲明的開發模式[12],由代碼生成器生成通用模塊代碼,基于泛型的編程方式[13,14]實現電力系統的業務邏輯代碼,可滿足多樣化的數據展示和表單處理等需求.該平臺以組件為單位進行功能設計,便于結合各個地區實際需求進行靈活配置;同時,可視化的開發環境,也實現了業務邏輯和代碼編程的分離,提高了開發人員的開發效率.Web 開發平臺的架構設計如圖1所示.

圖1 系統架構
權限實現了統一的用戶管理和安全審計,并提供鑒權服務和權限服務.前臺提供表單、曲線、餅圖和儀表盤等形式的圖形展示.后臺包括UI 組件、通用組件、引擎、數據獲取、系統監視和數據處理模塊.圖形生成通過配置數據源和計算公式,對數據進行圖形化的展示.拓撲生成將物理設備的連接關系以圖形化的方式展示,可以在拓撲管理功能中管理物理設備和改變拓撲關系.表單設計器為用戶提供可視化的表單布局工具.表單組件和表格組件對數據進行處理供前臺表單標簽和表格標簽顯示.代碼生成和在線開發支持在線數據庫管理、自動生成維護功能的代碼.定時任務通過統一的配置工具將定期執行的程序管理起來.國際化支持系統在不同語言/區域之間切換.報表引擎提供簡易報表編輯工具.流程引擎提供流程管理的通用接口.模版引擎提供freemarker 管理器處理模板文件生成HTML 頁面.Web 服務提供第三方系統接入接口.數據獲取包括數據采集、分析和計算,完成指定數據采集和處理,支持統計計算、設置閾值等.系統監視包括日志管理和性能監視,跟蹤日志記錄和監視節點的CPU、內存,磁盤I/O 等指標.數據處理包括數據庫訪問組件和事物處理,提供對主流關系庫的增、刪、改、查操作,并對達夢、金倉、南大通用國產關系庫做了適配和數據庫事務處理功能.
調度自動化系統監控平臺,實現調度自動化主站、子站設備運行狀態集中監視、協同分析、異常預警、準確定位以及全方位展示.提升自動化設備的在線監測和自動化維護水平.系統架構設計如圖2所示.

圖2 系統架構
采集模塊負責數據的采集功能;管理平臺負責所有數據的后臺處理分析;Web 開發平臺為整個系統提供統一的用戶認證和登陸界面,以表格式、圖形化等多元化的展示手段提供展示界面,對資源的功能狀態、分析結論、異常預警信息、準確定位信息等進行全方位展示.
單點登錄是目前比較流行的企業業務整合的解決方案之一.本文對CAS (Central Authentication Service)服務端進行了改進,在多應用系統整合時保留各個系統的原有登錄頁面.單點登錄的設計流程如圖3所示.

圖3 單點登錄設計流程
傳統單點登錄是純粹的認證中心,用戶每次登錄時,需要進入CAS-Server 的登錄界面填寫用戶名和密碼登錄[15].如果對多個已存在的系統進行單點集成時,子系統有獨特風格的登錄界面.為了實現在子系統中登錄成功,Web 開發平臺對單點登錄模塊進行二次研發,從而支持客戶端的自定義登錄界面進行登錄.
圖形自動生成組件包括界面設計與數據處理,開發人員通過可視化圖形組件快速生成滿足需求的圖形,避免了手工編碼的弊端,提高了開發效率.前端界面設計包括圖形屬性和數據源配置.圖形屬性配置支持創建折線圖、餅圖和雷達圖等圖形,以及設置圖形的橫軸、標題、統計值等基本信息.數據源配置指定圖形中數據的來源和類型,通過后端拓撲計算傳遞到前端進行展示.后端數據處理包括圖形屬性解析、數據源處理和公式計算組件.圖形處理組件根據前臺配置的圖形屬性生成對應的源代碼,平臺根據配置的數據源和拓撲計算將數據返回前端顯示.自動圖形生成的設計原理如圖4所示.
表單是常用的收集數據的組件,是完成用戶交互的組成部分[16].針對編碼實現表單耗時的問題,Web 開發平臺提供了可視化的表單設計器,支持自定義布局和數據源和在線完成數據展示.通過表單設計器快速實現用戶界面設計,從而實現零代碼或者少量代碼編寫前端界面,使業務和編程分離提高了開發效率.表單設計器的設計原理如圖5所示.

圖4 自動圖形生成設計原理

圖5 表單設計原理
表單設計器制定控件的設計規則和HTML 規范.控件模板指定HTML 的表單模板控件并且快速生成表單原型.同時,根據控件設計規則和模板制定常用的界面控件.根據控件屬性和數據源的設置完成界面原型的開發,快速生成自定義的界面.通過控制轉換器把控件轉換成源代碼.表單項操作都完成后,保存即可完成表單的生成.開發人員可以在線預覽界面效果和源代碼.最后,所有的界面數據都存入數據庫中,便于進行多次編輯和修改.
Web 開發平臺的可視化頁面布局設計器的設計原理與表單設計器基本相同,優點在于布局更靈活,組件更豐富,適用于比較復雜的界面布局,另外,其樣式支持目前移動端設備的展示.
設備拓撲生成組件根據物理設備位置和連接關系生成網絡拓撲.拓撲生成通過設備連接關系生成拓撲結構,并對設備屬性信息及狀態進行展示;節點自操作機制管理設備節點的位置、連接關系和基本操作.設備拓撲生成的設計流程如圖6所示.

圖6 拓撲生成設計流程
設備拓撲生成組件在頁面發送HTTP 請求后,獲取拓撲頁面的配置信息進行重新封裝.頁面獲取此結果集形成拓撲頁面(包括節點布局和節點連接關系),同時存儲每個節點的閾值.告警定時刷新指頁面觸發告警定時刷新請求后臺的事件,該事件獲取節點實時運行數據,循環對比實時數據與閾值得大小.若大于閾值,則產生告警并顯示告警提示;否則,恢復正常顯示.
業務功能快速開發組件基于模型驅動,根據數據庫表之間的關系,自動生成數據維護功能代碼.在此基礎上編寫業務代碼,快速實現功能.業務功能快速開發的設計流程如圖7所示.
調度自動化系統監控平臺前端采用Web 開發平臺設計開發,并在冀北電網、福建電網進行了實施部署.該平臺實現了自動化系統設備運行狀態的集中監視、協同分析、異常預警和全方位展示,解決了現有系統監視范圍過小、關聯分析不足和展示手段單一的問題,滿足了自動化系統的穩定性、監視及運維管理水平不斷提升的要求.關鍵技術應用說明如圖8所示.

圖7 業務功能快速開發設計流程

圖8 關鍵技術應用說明
單點登錄中用戶登錄一次,可以進入調度自動化系統監控平臺和訪問所有相互信任的應用系統,避免了在不同系統間頻繁登錄.Web 開發平臺的單點登錄不使用單點登錄服務端統一的登錄界面,而是繼續使用原有系統的登錄界面.原有系統通過集成單點登錄的客戶端,客戶端會自動與服務端進行通信進行登錄鑒權,從而完成系統登錄驗證.圖形生成組件生成調度自動化系統監控平臺中設備信息監視界面中的圖形,例如,折線圖、柱狀圖和環形圖等圖形.傳統開發模式中,需要編寫圖形代碼和后端處理邏輯.Web 開發平臺可以在線設計圖形和修改圖形樣式;同時,后臺提供圖形的屬性解析、數據源處理和公式計算組件.開發人員只需編寫SQL 語句和配置數據公式生成圖形.通過修改配置屬性及時響應需求變化,降低后期維護工作量.
表單設計器生成用于生成各種表單界面.傳統開發模式中布局由開發人員編碼實現.Web 開發平臺結合表單插件的屬性配置實現了各個插件的轉換;同時,表單設計器結合數據源配置可以完成數據源的在線切換.表單設計器通過布局設計器的布局管理功能,實現整體布局和單個插件展示順序的在線調整,開發人員通過平臺提供的表單設計器與布局設計器配置表格、數據源和布局規則完成界面的開發.拓撲生成組件包括添加、編輯設備連接關系、調整布局、展示設備屬性和設備越限告警等功能.傳統開發模式根據設備的拓撲連接關系和需求開發設備的展示.增加設備時,需要手工操作管理設備信息和添加告警事件.該組件通過設備拓撲關系自動生成拓撲關系,拓撲生成界面中管理設備和事件,只須配置設備告警規則,即可根據規則實現設備越限告警,以閃爍或者變色標識.業務功能快速開發完成數據的維護功能,表格以通過代碼生成工具自動生成,無須編碼即可完成數據維護功能.例如,調度自動化系統監控平臺設備告警信息的閾值配置、設備信息的展示等都是基于此功能在線生成.傳統開發模式中基礎數據的維護功能開發繁瑣耗時.該平臺提供的業務功能快速開發可完成在線開發,通過表單配置、建立數據庫表,即可完成數據的維護功能.當業務有特殊的要求,可以在生成代碼的基礎上擴展功能,提高了開發效率.
本文闡述了Web 開發平臺的單點登錄、自動圖形生成、表單設計器、布局設計器、設備拓撲生成、業務功能快速開發等組件的特點,以及在構建調度自動化系統監控平臺前端中的應用.采用Web 開發平臺構建應用系統能夠統一開發架構,減少重復代碼編寫量,實現設計成果的復用和共享,使開發人員專注于電力系統業務的實現,提高開發效率和質量,及時響應需求變化,縮短項目實施周期,降低后期維護工作量.目前調度自動化系統監控平臺已經在冀北電網、福建電網進行了部署,獲得了用戶認可.后續研究Web 開發平臺在不同應用類型的調度自動化系統前端中的應用,滿足智能電網建設對系統運行可維護性、穩定性的要求.