李月晴 范純超 張元生
(1.礦冶科技集團有限公司,北京 102628;2.北京北礦智能科技有限公司,北京 102628;3.金屬礦山智能開采技術北京市重點實驗室,北京 102628;4.山東黃金礦業(萊州)有限公司三山島金礦,山東 萊州 261442)
目前礦山企業在生產中面臨著市場、資源、環境及成本等多方面的壓力,如何實現資源的高效利用、人員的合理配置,生產效益的基本保障,以及生態環境的保護是大多礦山企業亟待解決的問題。鑒于此,礦山企業在采、選礦作業過程中一直秉持著高效率、有秩序及高安全的建設標準。企業在生產制造的過程中,大數據的統計分析與可視化管理更是打造數字化礦山企業的關鍵技術,其對生產作業的進度、設備能耗、原輔料利用率、產品品位的實時追溯和優化管理起著關鍵性作用。
目前有很多礦山領域生產和管控系統的研究,如文獻[1]中提到的地下礦山生產管控與觀念建設體系,文獻[2]采用物聯網技術構建了礦山智能生產系統架構,以及文獻[3]基于物聯網技術的地下礦山智能生產控制和管理建設體系,實現了礦山生產和管理數字化、自動化和預警智能化。以上研究體現了通過先進科技的應用,搭建符合礦山經營需求的生產管控軟件平臺對實現企業生產經營過程中的數據快速交互、直觀展示,打通企業管理壁壘有一定幫助[4]。
針對平臺或系統本身,隨著越來越多的用戶參與,業務場景越來越復雜,傳統的單體架構已經很難滿足互聯網技術的發展要求。由此,系統架構的更高要求促使微服務架構概念的產生。微服務架構系統是一個分布式系統,按照業務領域劃分為獨立的服務單元并可以進行獨立部署,它的優勢在于能夠解決單體架構的不足,有自動化運維、容錯的特點,同時也能滿足復雜的業務場景。
結合微服務架構的優勢以及礦山企業現面臨復雜的業務場景需求及數字化礦山建設理念的推動,本項目開發了基于微服務架構的生產管控平臺方案。該方案為企業著重打造一個集工業大數據集成展示、生產業務數據查詢管理,業務決策為一體化的智能礦山生產管控體系。
2014年由M.Fowler和J.Lewis共同提出微服務(MicroService)[5]。微服務是一個具有高并發、高擴展、獨立部署等特性的應用,它將復雜的應用系統按照業務劃分以獨立業務模塊的形式拆解成多個服務單元[6],各個應用服務都專注于單一的功能實現,有利于開發者專注于某個模塊的快速實現,并提供應用服務。這些按業務劃分的微服務單元可獨立部署,運行在獨立的進程中。同時,這些微服務之間是松耦合的,每個服務具有獨立的數據庫及其不同存儲方式[7],服務之間數據庫無耦合的特點能夠滿足礦山企業不同場景的數據存儲方式需求。微服務之間的通訊方式傾向于用輕量級的通信機制(如HTTP、RESTfulAPI或RPC)相互溝通和配合實現整個系統應用[8],并且這種通訊機制與平臺和語言無關。基于微服務框架開發的礦山生產系統,開發者更多關注根據礦山業務劃分的微服務內部功能的開發,而微服務的部署方式是自動化部署,這樣簡化了系統開發難度,并提高了開發效率[9]。總之,相對于傳統的單體應用架構,微服務具有技術選型靈活、復雜度可控、功能邊界清晰、具有高擴展性、獨立部署、高容錯等優勢[7]。
本項目的生產管控平臺是基于SpringCloud微服務框架,并且采用前后端分離的模式進行業務系統開發、部署和運維。該生產管控平臺后端框架采用Spring Boot、Spring-Cloud Greenwich、Mybatis-plus等核心技術,前端框架基于Vue、ElementUI等進行搭建。SpringCloud是基于SpringBoot進行構建服務的,它主要特點就是提高了開發和部署上的效率,用來構建分布式系統。SpringCloud的主要目標就是通過提供一系列內部組件和框架,迅速搭建一個分布式的微服務系統,還提供了分布式微服務系統的一些常用組件,例如服務注冊和發現、配置中心、熔斷器、路由網關等核心組件[2]?;赟pringCloud開發的生產管控平臺主要有以下核心功能:
(1)本平臺使用Nacos擔任注冊中心與配置中心的角色。Nacos是構建以“服務”為中心的現代應用架構的服務基礎設施,致力于幫助發現、配置和管理微服務,可以幫助快速構建交付和管理微服務平臺。Nacos服務領域模型主要分為命名空間、集群、服務,在使用時需要創建命名空間,并在服務上添加服務注冊和配置依賴,以及在控制臺的配置管理中添加YAML格式的配置文件,對整個工程的基本配置和每個微服務進行配置管理。
(2)采用Oauth2協議進行統一的Token下發與鑒權,保證系統安全性。Oauth2授權協議提出了“授權服務器”,經過用戶授權后授權服務器向第三方應用發放一個Token,這樣就可以在不向第三方應用提供賬號和密碼的情況下,通過令牌在特定時間內訪問用戶存放在特定資源服務器上的資源。
(3)使用Gateway進行網關的統一轉發,用來管理授權、訪問控制和流量限制等,這樣REST API接口服務就被API網關保護起來,隱藏在API網關后面的業務系統就可以專注于創建和管理服務。SpringCloud Gateway旨在為微服務架構提供一種簡單而有效的統一的API路由管理方式,實現了一個簡單、比Zuul更高效、與SpringCloud緊密配合的API網關。其不僅提供統一的路由方式,并且基于Filter鏈的方式提供了網關基本的功能,如安全、監控和限流等。
(4)使用ELK分布式日志管理系統,具有日志收集與監控服務為一體的能力。
(5)集成MinIO分布式對象存儲服務,非常便捷地提供大容量非結構化文件上傳與管理,如視頻、圖片、日志文件的備份數據等。
(6)采用Redis分布式鎖。為了防止分布式系統中的多個進程之間相互干擾,需要一種分布式協調技術來對這些進程進行調度,這個分布式協調技術的核心就是來實現這個分布式鎖。
圖1是基于SpringCloud微服務架構的生產管控平臺架構。

本平臺功能分為基礎服務功能和礦山生產業務服務功能,每個單獨的服務模塊對應一個微服務單元。礦山生產業務服務是在基礎服務的基礎上做的業務應用模塊開發。基礎服務功能包括用戶管理、資源管理、系統管理、權限管理和流程管理等基礎功能模塊。基礎服務對應的數據存儲方式采用關系型數據庫MySQL。業務服務功能是針對礦山生產中的業務范圍進行開發定制化功能模塊,主要包括工業數據集成展示、生產業務數據查詢管理等,其對應的數據存儲方式為關系型數據庫Oracle。這些功能模塊通過接口層API網關進行對外發布應用服務接口。API網關具有統一認證、API鑒權、API限流、API測試等功能。最終以WebSocket、HTTP/HTTPS、TCP/UDP協議對訪問層提供接口。此應用功能支持在手機、瀏覽器、大屏幕等硬件系統上進行展示。在進行平臺功能開發前,需要在Nacos配置管理中添加整個平臺開發的基礎配置和開發環境配置,包括服務器配置、Spring配置、模塊數據源配置、Redis分布式鎖配置、項目模塊配置、Feign配置、Hystrix配置和Ribbon等配置。
圖2和圖3展示的是平臺的登錄界面及首頁。


2.2.1 基礎服務功能
該生產管控平臺具有基礎的通用功能,這些基礎功能是開發面向礦山實際業務功能的基礎,主要的通用功能包括用戶管理、資源管理、系統管理、權限管理和流程管理等。每個功能需要建立獨立微服務單元,并在Nacos配置管理中進行數據源的配置。
(1)用戶管理模塊是針對企業內部人員的平臺登錄的賬號、平臺權限、密碼設置/重置、員工角色配置及所屬部門進行管理。
(2)權限管理主要是指平臺基礎的權限管理功能,從角色管理、數據權限、接口權限對用戶進行不同維度的管理。角色管理支持自定義角色配置,可以配置父節點角色,最終形成樹形結構。數據管理支持菜單自定義顯示隱藏,用戶可以自定義某個菜單對特定用戶進行顯示或隱藏。接口管理對項目的接口類型、接口路徑進行配置,實現接口的分類與分組管理。
(3)資源管理是針對MinIO對象存儲服務內資源的地址、accessKey、secretKey等進行配置管理。
(4)系統管理是項目組織的骨架和基礎功能,主要包括機構管理、菜單管理等功能。機構管理主要是對企業內部組織架構進行管理,包括職務部門、生產廠區和下屬子公司的詳細信息等管理。菜單管理是將整個首頁的導航欄進行管理,可以對導航菜單進行新增、刪除和搜索,同時每一個根菜單可以添加子項。通過路由地址的配置添加封裝好的前端頁面組件或者通過URL添加外部頁面,添加后的功能菜單直接顯示在導航欄內。
(5)流程管理則是支持模型管理、創建流程、修改流程、刪除流程等相關業務操作。在模型管理中,用戶可以添加自定義事務流程模型、對現有流程模型更改和刪除。對新增加的模型通過發起部署即可處于激活狀態,可供用戶使用。用戶可以在我的流程中查看發起流程、審批進度、待辦流程、已發流程和辦結流程等事務。
2.2.2 數據集成展示功能
數據集成展示功能是根據企業實際需求對采、選礦數據通過設計合適的圖表組件進行可視化展示,所以需要創建新的基于業務場景的數據集成展示微服務單元,并在Nacos控制臺進行注冊并添加配置文件。在前端Vue中通過適當的組件設計數據集成展示大屏并將采礦生產數據和選礦生產數據的統計量進行展示。在平臺的前端界面菜單管理中,通過路由地址配置添加數據展示大屏,包括選礦數據大屏和采礦數據大屏。可視化數據展示是一種很好的數據分析手段,它將更直觀地展示生產作業中的關鍵性數據,幫助生產者了解作業及資源利用情況,甚至通過數據信息的變化和趨勢幫助企業快速預測礦山生產計劃、操作、運營以及更優化資源配置情況。
2.2.3 業務數據查詢功能
數據查詢功能是將礦山生產中采、選礦作業的礦產資源、礦產產品產出以及產品的銷售訂單等數據通過關鍵字段進行詳情查詢。針對此查詢功能創建新的數據查詢微服務單元,主要用于提供業務數據訪問API,其數據存儲方式采用關系數據庫Oracle,同樣需要在Nacos進行服務注冊以及數據源的配置。在前端Vue中設計查詢組件的頁面樣式,并完成路由配置,最后在菜單管理中添加封裝的查詢頁面組件的路由地址,即可在導航欄內添加數據查詢管理功能,通過編號以及日期等關鍵詞查詢業務數據的詳情。圖4是以銷售訂單數據為例的查詢展示界面。

根據某有限公司礦山生產的實際需求,基于此微服務架構定制化開發了工業數據集成展示平臺,使采礦生產數據、選礦生產數據、質檢數據、銷售計量數據和尾礦庫監測數據、外排水監測數據等以多樣化圖表組件的形式直觀地展示出來。用戶可以通過平臺展示的數據及時發現生產中存在的問題并快速了解公司運轉狀況,以便及時解決現場問題以及輔助調度、分析和決策等工作的開展,使公司運作情況清晰可控。
圖5為某公司礦山定制化的工業數據集成展示平臺應用情況。

數字化、信息化是礦山企業生產管理發展方向。本項目針對礦山生產單體結構應用存在的可擴展性、并發性、維護性等方面的問題,從礦山采、選礦生產實際需求出發,結合業務應用的特點,構建了一套基于SpringCloud微服務框架并以工業數據集成展示為核心的生產管控平臺。基于平臺的設計方案,通過數據可視化的方式對工業數據進行整合與分析,能夠全面提高企業生產過程的透明性和可控性,有效地展示采、選礦作業過程中的資源分配和產品輸出趨勢。同時,結合企業管理基礎功能和業務數據查詢功能,為礦山企業開展信息化建設、達到數據互通、優化生產管控提供了一定的指導作用。