李月晴 范純超 張元生
(1.礦冶科技集團有限公司,北京 102628;2.北京北礦智能科技有限公司,北京 102628;3.金屬礦山智能開采技術北京市重點實驗室,北京 102628;4.山東黃金礦業(yè)(萊州)有限公司三山島金礦,山東 萊州 261442)
目前礦山企業(yè)在生產中面臨著市場、資源、環(huán)境及成本等多方面的壓力,如何實現(xiàn)資源的高效利用、人員的合理配置,生產效益的基本保障,以及生態(tài)環(huán)境的保護是大多礦山企業(yè)亟待解決的問題。鑒于此,礦山企業(yè)在采、選礦作業(yè)過程中一直秉持著高效率、有秩序及高安全的建設標準。企業(yè)在生產制造的過程中,大數(shù)據(jù)的統(tǒng)計分析與可視化管理更是打造數(shù)字化礦山企業(yè)的關鍵技術,其對生產作業(yè)的進度、設備能耗、原輔料利用率、產品品位的實時追溯和優(yōu)化管理起著關鍵性作用。
目前有很多礦山領域生產和管控系統(tǒng)的研究,如文獻[1]中提到的地下礦山生產管控與觀念建設體系,文獻[2]采用物聯(lián)網(wǎng)技術構建了礦山智能生產系統(tǒng)架構,以及文獻[3]基于物聯(lián)網(wǎng)技術的地下礦山智能生產控制和管理建設體系,實現(xiàn)了礦山生產和管理數(shù)字化、自動化和預警智能化。以上研究體現(xiàn)了通過先進科技的應用,搭建符合礦山經營需求的生產管控軟件平臺對實現(xiàn)企業(yè)生產經營過程中的數(shù)據(jù)快速交互、直觀展示,打通企業(yè)管理壁壘有一定幫助[4]。
針對平臺或系統(tǒng)本身,隨著越來越多的用戶參與,業(yè)務場景越來越復雜,傳統(tǒng)的單體架構已經很難滿足互聯(lián)網(wǎng)技術的發(fā)展要求。由此,系統(tǒng)架構的更高要求促使微服務架構概念的產生。微服務架構系統(tǒng)是一個分布式系統(tǒng),按照業(yè)務領域劃分為獨立的服務單元并可以進行獨立部署,它的優(yōu)勢在于能夠解決單體架構的不足,有自動化運維、容錯的特點,同時也能滿足復雜的業(yè)務場景。
結合微服務架構的優(yōu)勢以及礦山企業(yè)現(xiàn)面臨復雜的業(yè)務場景需求及數(shù)字化礦山建設理念的推動,本項目開發(fā)了基于微服務架構的生產管控平臺方案。該方案為企業(yè)著重打造一個集工業(yè)大數(shù)據(jù)集成展示、生產業(yè)務數(shù)據(jù)查詢管理,業(yè)務決策為一體化的智能礦山生產管控體系。
2014年由M.Fowler和J.Lewis共同提出微服務(MicroService)[5]。微服務是一個具有高并發(fā)、高擴展、獨立部署等特性的應用,它將復雜的應用系統(tǒng)按照業(yè)務劃分以獨立業(yè)務模塊的形式拆解成多個服務單元[6],各個應用服務都專注于單一的功能實現(xiàn),有利于開發(fā)者專注于某個模塊的快速實現(xiàn),并提供應用服務。這些按業(yè)務劃分的微服務單元可獨立部署,運行在獨立的進程中。同時,這些微服務之間是松耦合的,每個服務具有獨立的數(shù)據(jù)庫及其不同存儲方式[7],服務之間數(shù)據(jù)庫無耦合的特點能夠滿足礦山企業(yè)不同場景的數(shù)據(jù)存儲方式需求。微服務之間的通訊方式傾向于用輕量級的通信機制(如HTTP、RESTfulAPI或RPC)相互溝通和配合實現(xiàn)整個系統(tǒng)應用[8],并且這種通訊機制與平臺和語言無關?;谖⒎湛蚣荛_發(fā)的礦山生產系統(tǒng),開發(fā)者更多關注根據(jù)礦山業(yè)務劃分的微服務內部功能的開發(fā),而微服務的部署方式是自動化部署,這樣簡化了系統(tǒng)開發(fā)難度,并提高了開發(fā)效率[9]??傊?,相對于傳統(tǒng)的單體應用架構,微服務具有技術選型靈活、復雜度可控、功能邊界清晰、具有高擴展性、獨立部署、高容錯等優(yōu)勢[7]。
本項目的生產管控平臺是基于SpringCloud微服務框架,并且采用前后端分離的模式進行業(yè)務系統(tǒng)開發(fā)、部署和運維。該生產管控平臺后端框架采用Spring Boot、Spring-Cloud Greenwich、Mybatis-plus等核心技術,前端框架基于Vue、ElementUI等進行搭建。SpringCloud是基于SpringBoot進行構建服務的,它主要特點就是提高了開發(fā)和部署上的效率,用來構建分布式系統(tǒng)。SpringCloud的主要目標就是通過提供一系列內部組件和框架,迅速搭建一個分布式的微服務系統(tǒng),還提供了分布式微服務系統(tǒng)的一些常用組件,例如服務注冊和發(fā)現(xiàn)、配置中心、熔斷器、路由網(wǎng)關等核心組件[2]?;赟pringCloud開發(fā)的生產管控平臺主要有以下核心功能:
(1)本平臺使用Nacos擔任注冊中心與配置中心的角色。Nacos是構建以“服務”為中心的現(xiàn)代應用架構的服務基礎設施,致力于幫助發(fā)現(xiàn)、配置和管理微服務,可以幫助快速構建交付和管理微服務平臺。Nacos服務領域模型主要分為命名空間、集群、服務,在使用時需要創(chuàng)建命名空間,并在服務上添加服務注冊和配置依賴,以及在控制臺的配置管理中添加YAML格式的配置文件,對整個工程的基本配置和每個微服務進行配置管理。
(2)采用Oauth2協(xié)議進行統(tǒng)一的Token下發(fā)與鑒權,保證系統(tǒng)安全性。Oauth2授權協(xié)議提出了“授權服務器”,經過用戶授權后授權服務器向第三方應用發(fā)放一個Token,這樣就可以在不向第三方應用提供賬號和密碼的情況下,通過令牌在特定時間內訪問用戶存放在特定資源服務器上的資源。
(3)使用Gateway進行網(wǎng)關的統(tǒng)一轉發(fā),用來管理授權、訪問控制和流量限制等,這樣REST API接口服務就被API網(wǎng)關保護起來,隱藏在API網(wǎng)關后面的業(yè)務系統(tǒng)就可以專注于創(chuàng)建和管理服務。SpringCloud Gateway旨在為微服務架構提供一種簡單而有效的統(tǒng)一的API路由管理方式,實現(xiàn)了一個簡單、比Zuul更高效、與SpringCloud緊密配合的API網(wǎng)關。其不僅提供統(tǒng)一的路由方式,并且基于Filter鏈的方式提供了網(wǎng)關基本的功能,如安全、監(jiān)控和限流等。
(4)使用ELK分布式日志管理系統(tǒng),具有日志收集與監(jiān)控服務為一體的能力。
(5)集成MinIO分布式對象存儲服務,非常便捷地提供大容量非結構化文件上傳與管理,如視頻、圖片、日志文件的備份數(shù)據(jù)等。
(6)采用Redis分布式鎖。為了防止分布式系統(tǒng)中的多個進程之間相互干擾,需要一種分布式協(xié)調技術來對這些進程進行調度,這個分布式協(xié)調技術的核心就是來實現(xiàn)這個分布式鎖。
圖1是基于SpringCloud微服務架構的生產管控平臺架構。
本平臺功能分為基礎服務功能和礦山生產業(yè)務服務功能,每個單獨的服務模塊對應一個微服務單元。礦山生產業(yè)務服務是在基礎服務的基礎上做的業(yè)務應用模塊開發(fā)。基礎服務功能包括用戶管理、資源管理、系統(tǒng)管理、權限管理和流程管理等基礎功能模塊。基礎服務對應的數(shù)據(jù)存儲方式采用關系型數(shù)據(jù)庫MySQL。業(yè)務服務功能是針對礦山生產中的業(yè)務范圍進行開發(fā)定制化功能模塊,主要包括工業(yè)數(shù)據(jù)集成展示、生產業(yè)務數(shù)據(jù)查詢管理等,其對應的數(shù)據(jù)存儲方式為關系型數(shù)據(jù)庫Oracle。這些功能模塊通過接口層API網(wǎng)關進行對外發(fā)布應用服務接口。API網(wǎng)關具有統(tǒng)一認證、API鑒權、API限流、API測試等功能。最終以WebSocket、HTTP/HTTPS、TCP/UDP協(xié)議對訪問層提供接口。此應用功能支持在手機、瀏覽器、大屏幕等硬件系統(tǒng)上進行展示。在進行平臺功能開發(fā)前,需要在Nacos配置管理中添加整個平臺開發(fā)的基礎配置和開發(fā)環(huán)境配置,包括服務器配置、Spring配置、模塊數(shù)據(jù)源配置、Redis分布式鎖配置、項目模塊配置、Feign配置、Hystrix配置和Ribbon等配置。
圖2和圖3展示的是平臺的登錄界面及首頁。
2.2.1 基礎服務功能
該生產管控平臺具有基礎的通用功能,這些基礎功能是開發(fā)面向礦山實際業(yè)務功能的基礎,主要的通用功能包括用戶管理、資源管理、系統(tǒng)管理、權限管理和流程管理等。每個功能需要建立獨立微服務單元,并在Nacos配置管理中進行數(shù)據(jù)源的配置。
(1)用戶管理模塊是針對企業(yè)內部人員的平臺登錄的賬號、平臺權限、密碼設置/重置、員工角色配置及所屬部門進行管理。
(2)權限管理主要是指平臺基礎的權限管理功能,從角色管理、數(shù)據(jù)權限、接口權限對用戶進行不同維度的管理。角色管理支持自定義角色配置,可以配置父節(jié)點角色,最終形成樹形結構。數(shù)據(jù)管理支持菜單自定義顯示隱藏,用戶可以自定義某個菜單對特定用戶進行顯示或隱藏。接口管理對項目的接口類型、接口路徑進行配置,實現(xiàn)接口的分類與分組管理。
(3)資源管理是針對MinIO對象存儲服務內資源的地址、accessKey、secretKey等進行配置管理。
(4)系統(tǒng)管理是項目組織的骨架和基礎功能,主要包括機構管理、菜單管理等功能。機構管理主要是對企業(yè)內部組織架構進行管理,包括職務部門、生產廠區(qū)和下屬子公司的詳細信息等管理。菜單管理是將整個首頁的導航欄進行管理,可以對導航菜單進行新增、刪除和搜索,同時每一個根菜單可以添加子項。通過路由地址的配置添加封裝好的前端頁面組件或者通過URL添加外部頁面,添加后的功能菜單直接顯示在導航欄內。
(5)流程管理則是支持模型管理、創(chuàng)建流程、修改流程、刪除流程等相關業(yè)務操作。在模型管理中,用戶可以添加自定義事務流程模型、對現(xiàn)有流程模型更改和刪除。對新增加的模型通過發(fā)起部署即可處于激活狀態(tài),可供用戶使用。用戶可以在我的流程中查看發(fā)起流程、審批進度、待辦流程、已發(fā)流程和辦結流程等事務。
2.2.2 數(shù)據(jù)集成展示功能
數(shù)據(jù)集成展示功能是根據(jù)企業(yè)實際需求對采、選礦數(shù)據(jù)通過設計合適的圖表組件進行可視化展示,所以需要創(chuàng)建新的基于業(yè)務場景的數(shù)據(jù)集成展示微服務單元,并在Nacos控制臺進行注冊并添加配置文件。在前端Vue中通過適當?shù)慕M件設計數(shù)據(jù)集成展示大屏并將采礦生產數(shù)據(jù)和選礦生產數(shù)據(jù)的統(tǒng)計量進行展示。在平臺的前端界面菜單管理中,通過路由地址配置添加數(shù)據(jù)展示大屏,包括選礦數(shù)據(jù)大屏和采礦數(shù)據(jù)大屏??梢暬瘮?shù)據(jù)展示是一種很好的數(shù)據(jù)分析手段,它將更直觀地展示生產作業(yè)中的關鍵性數(shù)據(jù),幫助生產者了解作業(yè)及資源利用情況,甚至通過數(shù)據(jù)信息的變化和趨勢幫助企業(yè)快速預測礦山生產計劃、操作、運營以及更優(yōu)化資源配置情況。
2.2.3 業(yè)務數(shù)據(jù)查詢功能
數(shù)據(jù)查詢功能是將礦山生產中采、選礦作業(yè)的礦產資源、礦產產品產出以及產品的銷售訂單等數(shù)據(jù)通過關鍵字段進行詳情查詢。針對此查詢功能創(chuàng)建新的數(shù)據(jù)查詢微服務單元,主要用于提供業(yè)務數(shù)據(jù)訪問API,其數(shù)據(jù)存儲方式采用關系數(shù)據(jù)庫Oracle,同樣需要在Nacos進行服務注冊以及數(shù)據(jù)源的配置。在前端Vue中設計查詢組件的頁面樣式,并完成路由配置,最后在菜單管理中添加封裝的查詢頁面組件的路由地址,即可在導航欄內添加數(shù)據(jù)查詢管理功能,通過編號以及日期等關鍵詞查詢業(yè)務數(shù)據(jù)的詳情。圖4是以銷售訂單數(shù)據(jù)為例的查詢展示界面。
根據(jù)某有限公司礦山生產的實際需求,基于此微服務架構定制化開發(fā)了工業(yè)數(shù)據(jù)集成展示平臺,使采礦生產數(shù)據(jù)、選礦生產數(shù)據(jù)、質檢數(shù)據(jù)、銷售計量數(shù)據(jù)和尾礦庫監(jiān)測數(shù)據(jù)、外排水監(jiān)測數(shù)據(jù)等以多樣化圖表組件的形式直觀地展示出來。用戶可以通過平臺展示的數(shù)據(jù)及時發(fā)現(xiàn)生產中存在的問題并快速了解公司運轉狀況,以便及時解決現(xiàn)場問題以及輔助調度、分析和決策等工作的開展,使公司運作情況清晰可控。
圖5為某公司礦山定制化的工業(yè)數(shù)據(jù)集成展示平臺應用情況。
數(shù)字化、信息化是礦山企業(yè)生產管理發(fā)展方向。本項目針對礦山生產單體結構應用存在的可擴展性、并發(fā)性、維護性等方面的問題,從礦山采、選礦生產實際需求出發(fā),結合業(yè)務應用的特點,構建了一套基于SpringCloud微服務框架并以工業(yè)數(shù)據(jù)集成展示為核心的生產管控平臺?;谄脚_的設計方案,通過數(shù)據(jù)可視化的方式對工業(yè)數(shù)據(jù)進行整合與分析,能夠全面提高企業(yè)生產過程的透明性和可控性,有效地展示采、選礦作業(yè)過程中的資源分配和產品輸出趨勢。同時,結合企業(yè)管理基礎功能和業(yè)務數(shù)據(jù)查詢功能,為礦山企業(yè)開展信息化建設、達到數(shù)據(jù)互通、優(yōu)化生產管控提供了一定的指導作用。