王 濤,單正濤,杜金剛,杜 軍,孫靖初,嚴鵬飛,李 強
智能電廠生產管理開發平臺研發
王 濤1,單正濤1,杜金剛1,杜 軍1,孫靖初2,嚴鵬飛3,李 強3
(1.西安西熱電站信息技術有限公司,陜西 西安 710054;2.華能國際電力股份有限公司,北京 100031;3.華能國際電力股份有限公司沁北電廠,河南 濟源 454662)
本文研發了一種基于可重用組件的可視化流程的發電企業生產管理平臺,該平臺集開發、運行、管理于一體,整個平臺包含獨立運行的服務端和開發客戶端,可滿足云計算PAAS平臺業務解決方案的相關要求,可通過簡單拖拉拽的方式進行業務流程在線設計,具有一定計算機基礎的用戶可利用該平臺提供的可視化操作完成對相關業務流程的開發與變更,軟件的業務流程會自動發布以及更新,解決了以往軟件功能變更過度依賴程序員開發的問題。該平臺的應用提高了軟件的開發效率,降低了企業的開發和維護成本。該平臺已在多家電廠實際應用,為電廠的智能管理提供了一個更高效的智能化管理、開發和應用平臺。
智能電廠;生產管理;開發平臺;可重用組件;可視化流程;表達式引擎
智能電廠[1]的本質是信息化與智能化技術在發電領域的高度發展與深度融合,體現在大數據[2]、物聯網、可視化、先進測量與智能控制等技術的系統化應用,主要特征是泛在感知、自適應、智能融合與互動化。目前,各發電企業在推進智能電廠建設的同時,對企業的生產管理系統進行了升級優化,以保障企業生產管理的數據、流程以及服務等滿足智能電廠建設的要求,實現電廠生產過程全面有效管理。
電廠生產管理系統的大部分功能模塊在功能實現上存在很多相似的地方,如數據庫的增刪改查、事務管理、報表生成、接口調用、工作流管理等。傳統的軟件開發模式通常采用代碼重構將通用的功能封裝成工具類或通用方法,但是每次用戶需求改變所帶來的軟件系統的變更,都需要通過修改代碼、編譯、發布才能實現,因此增加了企業的后期運維成本。
智能電廠生產管理開發平臺基于可重用組件的可視化[3-5]業務流程設計器,實現了軟件業務流程的在線變更,使軟件系統的功能調整無需再經歷代碼編寫、編譯、發布等過程,可有效解決電廠“智能管理層”建設過程中所面臨的平臺問題[6-8]。
隨著大數據及云技術的不斷成熟,基于云計算平臺[9-10]的應用開發及部署是未來的大趨勢,其中PAAS(platform-as-a-service,平臺即服務)作為云應用軟件運行的“操作系統”,向下根據業務能力動態分配各種資源,向上對各種業務能力進行整合,如業務能力接入、業務具體實現、業務流程引擎以及業務開發平臺[11]等。智能電廠生產管理開發平臺是基于可重用組件[12-13]的可視化流程的技術平臺,通過智能電廠生產管理開發平臺的應用可滿足PAAS平臺中業務解決方案的相關要求。該平臺基于組件的可視化流程進行開發,通過簡單拖拉拽的方式進行業務流程在線設計,通過不同組件的組合來實現業務的自定義,通過元數據[14]對業務組件定義的輸入及輸出進行配置,整個過程簡單、靈活、高效且無需編寫代碼,且保存后立即生效,無需編譯及重新部署。
基于組件的可視化流程開發平臺,旨在提供一個集開發、運行、管理于一體的分布式解決方案。整個平臺分為兩部分,包含獨立運行的服務端和開發客戶端,其中服務端作為業務處理的引擎,可以部署于云平臺中,也可以單獨部署于物理機上,具體詳見平臺功能架構(圖1)。服務端包含業務流程引擎、表達式引擎、組件管理、網絡協議適配器、動態數據模型管理、模板引擎、ELK日志服務、權限管理、ETL相關服務及工具等,為整個應用系統的運行提供后臺的架構支撐。客戶端面向開發人員及后期管理人員,是對服務端進行數據修改的可視化操作界面,包含了業務流設計、表單設計、數據模型管理、工作流設計以及報表開發等。

圖1 智能電廠生產管理開發平臺功能架構
1)采用面向組件的可視化開發模式;
2)通過基于XML的流程文件進行描述,無需編碼,解決了業務與代碼之間的耦合;
3)組件通過注解進行聲明,支持方便的可插拔,開箱即用,組件間無代碼耦合性;
4)在不修改代碼的情況下將現有代碼發布為組件,便于其他應用調用;
5)業務組件支持分布式運行,支持云計算平臺;
6)業務流程支持多協議調用且方便擴展;
7)動態數據模型的管理、數據模型與數據表同步可相互生成,支持常用的關系型數據庫、內存數據庫以及NoSQL數據庫;
8)平臺中內置豐富的通用組件,涉及數據庫操作、文件、大數據處理、網絡接口調用、報表、計算等;
9)包含基于ELK的日志處理;
10)靈活的權限控制,可通過表達式配置實現數據表中對每個字段及每行或多個條件的精準權限控制。
整個智能電廠生產管理開發平臺主要由組件管理、業務流程引擎、表達式引擎、業務流程設計器等核心引擎構成。為了實現代碼的可重用性,平臺將實現特定功能的代碼封裝成組件,組件可通過豐富的元數據對其依賴的輸入、輸出以及其他關聯數據進行描述,流程設計器可根據元數據生成通用的配置界面,對于關系復雜的元數據也可自定義其元數據配置界面。
與傳統的通過API調用模式相比,為解決組件與組件之間以及組件與系統之間的代碼耦合,平臺采用基于XML的流程語言來動態定義業務模型。業務流程將一系列組件按照一定的順序進行組合來定義一個具體的業務模型,流程節點對應相關的組件,節點連線用來表示數據流向及組件的執行順序,組件依賴的輸入輸出通過其元數據進行配置,業務流程通過可視化的流程設計器來生成。
平臺組件包含邏輯組件和業務組件2類。其中邏輯組件主要用來對流程的數據流向及執行順序進行控制,包括條件判斷、循環、分支、并行處理等;業務組件主要用來處理具體的業務邏輯,如數據庫操作、文件處理、網絡接口調用、報表生成等。每個組件都有生命周期(Application、Process、Request等),在使用時可根據實際需求進行設置,由平臺統一管理。業務組件通過注解的方式進行聲明,平臺啟動時通過掃描注解自動發現并管理組件。
平臺包含常用的通用組件和滿足電力行業的需求業務組件,典型的組件有:
數據庫查詢組件 提供動態的單表或多表關聯查詢,多表關聯可以為同一個數據庫,也可以跨越多個數據庫,支持各種查詢條件、動態條件、分頁及權限控制等。
數據庫更新組件 提供單表或多表的insert、update、delete、saveOrUpdate等操作,支持同一個數據庫或跨數據庫的多表關聯操作和權限控制等。
SQL組件 對于復雜的業務數據操作提供原生SQL執行功能,支持存儲過程、函數、數據庫類型的自適應、查詢語句中動態參數及權限控制等。
數據響應組件 支持URL跳轉,基于RESTful的文本響應(如XML、JSON格式)以及二進制響應,其中文本數據格式可通過模板自定義。
文件操作相關組件 涉及文件的讀取、解析、文件寫入以及文件類型轉換等。
報表組件 可將數據生成常用格式的數據文件并進行持久化或響應給客戶端,包含Excel組件、Word組件、PDF組件等格式文件。
數據處理相關組件 涉及內存中對數據的轉換、解析、驗證,表的關聯、過濾、聚合等操作。
工作流組件 涉及工作流的設計、查詢、工作流實例啟動、工作流實例狀態、工作流任務、工作流事件觸發等相關的組件。
常用業務組件 SIS實時數據、小指標及績效考核得分公式、輪值管理等相關組件。
網絡接口調用組件 主要包含RMI組件、Dubbo組件、Mule組件、Web Service組件、RESTful組件、異步消息組件、組播/廣播組件、JMS消息組件、郵件發送組件等。
其他組件 主要包括用戶、角色、權限、事務處理、Class動態實例化及調用組件、動態代理組件、子流程調用組件、條件判斷組件、循環組件、分支組件、并行組件等。
業務流程引擎是平臺的核心,當網絡適配器接收到對業務流程的調用后,在經過權限驗證、數據轉換等前置操作后,便執行業務流引擎(圖2),流程的執行主要包含幾個步驟:
1)在平臺啟動或流程保存時由業務流引擎負責對該流程進行初始化,包括流程文件的解析、流程實例化、流程中組件解析;
2)業務流引擎根據業務流編碼或映射的路徑查找業務流實例,進行元數據相關的初始化、事務初始化、異常處理初始化、日志收集、事件隊列初始化等;
3)業務組件初始化,首先根據組件定義的生命周期進行實例化,對配置的元數據進行表達式的計算并將結果進行數據轉換后動態注入到組件實例中,根據配置的事務傳播機制進行事務初始化等;
4)業務組件調用,動態調用組件指定的方法,對運行中出現的異常根據選定的異常處理機制進行異常處理、對執行中觸發的事件進行捕獲及事件傳播等、對執行中產生的輸入及輸出數據進行管理等;
5)組件正常執行后根據事務配置決定是否進行事務提交、對產生的數據綁定至數據管道中;
6)執行下一個組件直到結束;
7)執行資源釋放等工作。

圖2 業務流程執行原理
為了能夠通過文本方式對組件的元數據及其他動態參數中涉及到的動態數據進行配置(圖3),平臺引入了表達式引擎。通過表達式可對常用數據源(如內存變量、文件、網絡、數據庫等)的動態數據進行描述,同時也可對數據進行格式化、轉換及計算等。表達式格式為name.method(param),其中name可以通過別名映射到一個類,method通過別名映射到該類中的一個方法,表達式通過注解進行聲明,由平臺啟動時自動掃描。由圖3可見,request.param(werks)表示請求對象中參數名為werks的值,同時表達式也可進行嵌套。

圖3 組件的元數據配置界面
開發平臺中主要包含以下類型的數據表達式:
數據來源 包括從系統中(當前時間、系統信息、環境變量等)、請求參數中(各種網絡調用參數)、Session中、內存變量中(組件產生的輸入輸出數據)以及文件或者數據庫中根據變量名稱來獲取數據;
數據類型轉換 主要包括各種類型數據之間的相互轉換;
數據格式化 將各種類型的數據按照指定的格式生成文本;
公式計算 通過公式引擎進行自定義公式的計算;
數據的生成 包括基于UUID、Hilo以及其他的數據生成規則。
業務流設計器主要進行業務流程的可視化定義,該設計器以圖形化的方式分類展示所有的業務組件及邏輯組件(圖4)。通過對組件的拖拽,可將其加入到業務流程中,通過配置組件的元數據來實現相應的功能,通過組件之間的連線來表達數據流向,最終業務設計流程保存為標準的XML流程文件。通過流程設計器可以設置允許流程訪問的通信協議、自動觸發方式以及權限等。流程保存后立即生效,不需要服務重新部署及重啟。

圖4 可視化業務流程設計界面
基于可重用組件可視化流程生產管理開發平臺,實現了軟件開發模式由程序員開發向終端用戶轉移,通過多系統對同類型業務組件的重用,減少了軟件開發的成本,降低了軟件開發的復雜度。將不同的業務在同一個平臺上進行搭建,實現了業務的集中管理及系統的統一優化,規范了企業信息化建設,為企業大數據和云平臺的建設提供有效可靠的生產管理平臺支持,為電力行業“智能管理層”系統的應用奠定了基礎。
目前智能電廠生產管理開發平臺已在華能國際電力股份有限公司的運行管理、燃料管理、承包商安全管理等業務領域進行了部署和應用,其中覆蓋的單位數量約70余家。基于該平臺的生產管理移動應用技術也在部分火電、風電等發電企業進行了實際應用。
[1] 邵鳳文. 淺議智慧電廠建設[J]. 山東工業技術, 2017(20): 198-199.
SHAO Fengwen. On the construction of smart power plant [J]. Shandong Industrial Technology, 2017(20): 198-199.
[2] 劉洋. 智能電廠實施過程中的大數據應用探析[J]. 科技風, 2019(14): 191-200.
LIU Yang. Exploration and analysis of big data application in the implementation of intelligent power plant[J]. Technology Wind, 2019(14): 191-200.
[3] 丁明, 孫文智, 陳宗利.可視化業務流程監控設計與實現[J]. 信息通信, 2018(2): 93-94.
DING Ming, SUN Wenzhi, CHEN Zongli. Design and implementation of visual business process monitoring[J]. Information & Communication, 2018(2): 93-94.
[4] 高寧, 劉洋. 基于B/S架構的可視化流程管理平臺的設計與實現[J]. 計算機應用, 2015, 35(增刊2): 178- 180.
GAO Ning, LIU Yang. Design and implementation of visual process management platform based on B/S arc- hitecture[J]. Computer Applications, 2015, 35(Suppl.2): 178-180.
[5] 藍科, 全錦琪, 劉洪宇, 等. 一種可配置的可視化流程的設計[J]. 信息通信, 2015(7): 64-65.
LAN Ke, QUAN Jinqi, LIU Hongyu, et al. A configurable visual process design[J]. Information Communication, 2015(7): 64-65.
[6] 薛晗光, 劉聰睿, 趙軒, 等. 智能電站工作票移動辦理的設計與實現[J]. 熱力發電, 2017, 46(12): 40-43.
XUE Hanguang, LIU Congrui, ZHAO Xuan, et al. Design and implementation of work order mobile management: practice of intelligent power plant[J]. Thermal Power Generation, 2017, 46(12): 40-43.
[7] 趙軒, 薛晗光, 倪向宇, 等. 風電場兩票業務信息系統開發[J/OL]. 熱力發電(2019-05-30)[2019-06-05]. https://doi.org/10.19666/j.rlfd.201904052.
ZHAO Xuan, XUE Hanguang, NI Xiangyu, et al. Development of work order and operation order business information system for wind farm[J/OL]. Thermal power generation(2019-05-30)[2019-06-05]. https://doi.org/10. 19666/ j.rlfd.201904052.
[8] 林東岱, 田有亮, 田呈亮. 移動安全技術研究綜述[J]. 保密科學技術, 2014(3): 4-25.
LIN Dongdai, TIAN Youliang, TIAN Chengliang. Survey on mobility security technology[J]. Secrecy Science and Technology, 2014(3): 4-25.
[9] 武志學. 云計算虛擬化技術的發展與趨勢[J]. 計算機應用, 2017, 37(4): 915-923.
WU Zhixue. Advances on virtualization technology of cloud computing[J]. Journal of Computer Applications, 2017, 37(4): 915-923.
[10] 段玉龍. 基于OAUTH、OPENAPI、REST技術的快速開發云平臺架構的設計與實現[J]. 工業設計, 2016(2): 160-161.
DUAN Yulong. Design and implementation of cloud platform architecture for rapid development based on OAUTH, OPENAPI and REST technology[J]. Industrial Design, 2016(2): 160-161.
[11]宋振維. 探究分析JAVA語言的開發平臺及J2EE編程技術[J]. 計算機光盤軟件與應用, 2014, 17(6): 267-269.
SONG Zhenwei. Exploration and analysis of JAVA language development platform and J2EE programming technology[J]. Computer CD Software and Application, 2014, 17(6): 267-269.
[12] 王忠志, 胡明強, 熊子瑜. 基于可重用組件技術下軟件開發方法的思考[J]. 電腦迷, 2018(8): 71.
WANG Zhongzhi, HU Mingqiang, XIONG Ziyu. Consideration of software development methods based on reusable component technology[J]. Computer Fans, 2018(8): 71.
[13]宋志剛, 蔡偉周, 李劍波, 等. 基于組件式軟件平臺架構的通用協議轉換器設計[J]. 機電工程技術, 2018, 47(7): 97-99.
SONG Zhigang, CAI Weizhou, LI Jianbo, et al. Design of all-purpose protocol converter base on component architecture software platform[J]. Mechanical & Electrical Engineering Technology, 2018, 47(7): 97-99.
[14] 張曉林. 元數據開發應用的標準化框架[J]. 現代圖書情報技術, 2001(2): 9-11.
ZHANG Xiaolin. The standardization framework of metadata[J]. New Technology of Library and Information Service, 2001(2): 9-11.
Research and development of production management development platform for intelligent power plant
WANG Tao1, SHAN Zhengtao1, DU Jingang1, DU Jun1, SUN Jingchu2, YAN Pengfei3, LI Qiang3
(1. Xi’an TPRI Power Plant Information Technology Co., Ltd., Xi’an 710054, China; 2. Huaneng Power International Inc., Beijing 100031, China; 3. Qinbei Power Plant, Huaneng Power Internation Inc., Jiyuan 454662, China)
This paper develops a production management platform for power generation enterprises based on visual process of reusable components. This platform integrates development, operation and management. The whole platform contains independent server and development client end, which can meet the requirements of cloud computing PAAS platform business solutions, and can realize online design through a simple way of drag and push. With the help of this platform, users with certain computer foundation can use the visual operation provided by the platform to complete the development and change of relevant business processes. The business processes of software will be automatically released and updated, which solves the problem that software function changes rely too much on programmer development in the past. The application of this platform improves the efficiency of software development and reduces the cost of development and maintenance of enterprises. This platform provides a more efficient intelligent management, development and application platform for the intelligent management of power plants.
smart power plant, production management, development platform, reusable component, visual process, expression engine
TM621;TP311.521
B
10.19666/j.rlfd.201906129
2019-06-06
王濤(1979—),男,工程師,主要研究方向為發電企業信息化平臺架構技術,wangtaoa@tpri.com.cn。
王濤, 單正濤, 杜金剛, 等. 智能電廠生產管理開發平臺研發[J]. 熱力發電, 2019, 48(9): 115-119. WANG Tao, SHAN Zhengtao, DU Jingang, et al. Research and development of production management development platform for intelligent power plant[J]. Thermal Power Generation, 2019, 48(9): 115-119.
(責任編輯 杜亞勤)