豐碧泓,潘瑾,陳以恒,李文浩,張文毅
(1.國網上海市電力公司工程建設咨詢分公司,上海 200120;2.上海交通大學,電子信息與電氣工程學院,上海 200240)
電力建設工程安全穩定是電網公司賴以生存和發展的基礎,是電網公司的“生命線”[1]。但是在當下快速發展的社會形態下,電力工程面臨著業務需求復雜、施工環境苛刻等問題,作業風險日益增加,稍有不慎就會引發安全事故,造成不可估量的人員傷亡和經濟損失[2]。在實際的建設生產中,設備的不安全狀態、作業人員的危險行為等因素難以進行定量參數化的評估,而加強對工程的督查監管,及時發現風險因素加以控制,在預防重大安全事故,保障電力工程安全運行上具有重要的意義。
目前,在電力工程風險管控的信息化系統的設計開發中,大多數研究主要面向業務需求高度定制化開發[3-6],單體應用程序涵蓋了系統的所有功能,每個功能模塊間的耦合度較高,擴展性上存在局限。同時,在更新迭代時,會帶來巨大的維護成本,且易出現牽一發而動全身的問題。對此,本文將微服務架構[7]引入到電力建設工程安全管理體系中,在功能模塊按需設計的基礎上,將系統分解為多個具有獨立功能的子系統進行開發,每個子系統聯合協調運作,構成完整的電力建設工程安全風險管控系統。系統的最終產出包含微服務后端程序、Web前端應用、手機端App,用戶能夠完成對電力工程的進度上報、風險計算、督查安排、責任考核和信息核準。通過該系統的使用,可以規范化安全監督流程,實現對電力作業風險的閉環化管理,有效提升風險管控效能,具有良好的實際意義。
在業務需求上,本系統的主要用戶可抽象出項目管理員、安監督察員、責任考核員和信息核查員四類。項目管理員為工程建設的一線員工,直接管理項目的作業規劃和進度上報,提供整個流程的基礎數據;安監督察員根據所上報的項目作業內容,依照一定的風險識別評估方法,篩選出當前風險較大的項目安排督察,并將所發現的問題和整改意見進行上報;責任考核員根據督察反饋結果對問題進行定責,以責令項目管理員進行整改,從而降低潛在隱患的發生,三者的聯合互通實現了對工程建設風險的閉環管控。此外,由于電力工程的規模龐大、內容復雜,施工作業的內容和方案會不斷調整變化,導致工程現場的作業情況與安監督察員獲取的信息大相徑庭,因此需有信息核查員及時勘察工程的運行情況,反饋并督促項目管理員進行內容更改,形成另一個小閉環,以提高系統基礎數據的準確性和實時性。
在技術需求上,系統后端服務程序基于微服務架構搭建,并與底層數據庫進行交互。Web前端應用、IOS和Android端App基于前后端分離[8]的思想進行開發,以RESTFUL API[9]接口的形式與后端進行交互,最終實現整個系統的聯通。
在權限需求上,針對不同的訪問用戶需設置不同的權限。上文中已經抽象出四類用戶,相同類別用戶的查詢權限較為相似,但按照職務又可分為主任、副主任、普通員工等,在增、刪、改操作上會有所差別。因此,需實現前端視覺權限和后端請求權限的雙重控制,前者用于在前端展示不同的頁面,后者用于在后端判斷接口調用的權限。
根據上文的實現目標,將系統的基本業務需求抽象為5大功能模塊,分別為工程項目數據管理、工程風險計算、安監督查管理、安全責任量化考核和周計劃信息核準。5個模塊相互協作,共組成2個閉環,具體內容如圖1所示。

圖1 系統功能模塊設計
(1) 工程項目數據管理。對現有的項目信息進行標準化和規范化,項目管理員對實際的工程進展進行在線上報和更新,為安監督查員提供基礎數據。
(2) 工程風險計算。設計了涵蓋人員、機械、環境和管理四個維度的風險計算器,項目管理員填寫相關信息后,系統能根據權重分配計算出當前作業的動態風險值。同時,環境維度基于爬蟲獲取天氣并實時刷新,自動調整動態風險,可為安監督查提供參考。
(3) 安監督查管理。安監督查員根據項目作業內容和潛在的動態風險,在線制定每日督查方案,督查完畢后,可在系統上發布口頭警告通知單和整改通知單。
(4) 安全責任量化考核。責任考核員根據督察反饋結果對問題進行定責,同時根據考核規則自動計算責任扣分,并面向所有員工展示計分排名,督促項目管理員在作業一線進行整改,以加強風險管控能力。
(5) 周計劃信息核準。信息核查員基于上報的項目進展情況,每日前往作業現場進行核準,并填寫系統數據和實際情況的差異程度,系統按照作業條目計算數據的準確率,并反饋至項目管理員,督促加強信息上報的實時性和準確性。
滿足業務需求后,為支持系統的運行,還設計了公共通用模塊,模塊的內容包含系統的定時任務管理、基本信息管理、日志信息管理。系統的定時任務包括爬蟲定時啟動并獲取天氣數據,自動刷新項目的動態風險值;基本信息管理功能用于增加、修改系統運行時的基本元素,比如施工單位信息等;日志信息管理用于檢測和記錄系統的運行狀態,同時可查看系統的異常日志,輔助維護人員對系統的狀態監控和錯誤排查。
此外,為提升系統的安全性和隱私性,本文設計了用戶管理模塊,包含了用戶的信息管理、密碼驗證和權限分配。該模塊在前端或App端進行后端接入時控制用戶權限,可完成對用戶的群組劃分,配置多樣化的訪問權限,以實現前端視覺權限與后端請求權限的雙重管理。
為保證系統模塊間的獨立性,提升其拓展能力和易維護性,后端采用微服務實現,具體的架構采用Spring Cloud[10],本系統使用Spring Cloud中的Eureka[11]組件作為服務發現中心,以解決服務地址硬編碼導致的重啟IP變化問題。具體的,在后端程序中創建一個新的Spring Boot[12]項目作為Eureka服務端,之后每個客戶端項目向服務端進行注冊,此時服務消費者可以從服務端獲取到注冊表信息并查找其他服務,從而進行遠程調用。
在權限管理上,采用Spring Security[13]安全框架進行實現。本系統將主要用戶分為項目管理員、安監督察員、責任考核員、信息核查員總共4個類型,并設置了額外的系統超級管理員。每一類用戶對接口擁有不同的操作權限,具體的,通過對過濾器進行配置從而實現后端接口請求權限的控制。
后端系統實現時,將5大業務功能模塊合并成為一個整體,并與公共通用模塊和用戶管理模塊構成3個微服務進行獨立開發。微服務后端的具體細節如圖2所示。每個服務都包含了控制層(Controller)、服務層(Service)和數據持久層(Mapper)??刂茖訉ν馓峁〢PI接口,以JSON格式進行數據交互,以便用戶操作進行訪問;服務層封裝了系統所有的業務邏輯,與數據持久層進行交互,并將結果返回到控制層;數據持久層主要通過連接MySQL并執行特定的SQL語句實現數據的增刪改查,為服務層提供支撐。
在實現前端應用時,首先使用ERP軟件設計出簡約的UI界面,之后基于Vue.js[14]架構并應用Element UI進行實例化。Vue.js是一套用于構建用戶界面的漸進式框架,其核

圖2 系統后端的架構圖
心只關注視圖層,易于上手,且便于與第三方庫或既有項目整合。此外,該框架還是一個非侵入性的響應式系統,代碼修改時,視圖會進行同步更新,可有效減輕開發人員的工作負擔,同時提高了頁面的渲染效率。
在前端視覺權限的實現上,當用戶登錄成功后,首先調用特定的接口讀取到該用戶可訪問的頁面信息,然后渲染出不同的導航欄,每個用戶只能對特定的頁面進行訪問和跳轉,從而實現權限的控制。
為滿足多樣化的用戶需求,除前端Web應用外,本系統還提供IOS和Android端手機App。原生的App開發方式面對跨平臺應用時,需同時開發、維護多份獨立的代碼,會使開發成本成倍增長,后續的維護同樣復雜。本系統設計時選取跨平臺方案Flutter[15]開發手機端App,可實現“一套代碼,多端運行”。Flutter架構內置豐富的Widget和動畫效果,并且能在不同平臺上獲得相同的體驗,采用該架構可有效縮短開發周期,同時提高代碼的復用率。
系統開發完畢后,首先需進行功能測試,本文采用黑盒測試的方法,針對具體的頁面和功能點逐一測試,并記錄下測試的所屬頁面、用例說明、測試流程、預期結果和測試結果。經過人工測試后,可以驗證系統功能點與設計時的邏輯達到一致,能夠較好地滿足實際需求。
除功能測試外,本文還對系統性能進行測試,主要是為了檢驗并發情況下的系統響應時間,從而判斷系統是否滿足性能需求。本文使用Apache推出的JMeter作為性能測試工具,分別在并發量為100人和300人時,以用戶獲取自己的身份信息作為測試接口,對系統進行了兩次并發測試并生成相應的聚合報告,測試結果如表1和表2所示,可以看出,系統的平均響應時間都在200 ms左右,當并發量增大后,系統的最大響應時間隨之增大,但平均值和中位數變化不大,且測試的錯誤率都為0%,說明系統性能穩定,能夠應對一定規模的并發請求。

表1 并發量為100時的系統性能測試結果 單位:ms

表2 并發量為300時的系統性能測試結果 單位:ms
本文將數據思維與信息技術融入電力建設工程的安全監督體系,設計實現了基于微服務的電力建設工程安全風險管控系統。系統包含工程項目數據管理、工程風險計算、安監督查管理、安全責任量化考核和周計劃信息核準5大功能模塊,實現了對工程風險的雙閉環管控。系統目前已經正式投入運行,有效提高了電網工程安全風險管控效能,促進安全管理實現標準化、規范化和精細化,同時為支撐能源物聯網的建設提供了準確、可靠的建設工程數據。