时间:2024-07-28
李月晴 范纯超 张元生
(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]。基于SpringCloud开发的生产管控平台主要有以下核心功能:
(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微服务框架并以工业数据集成展示为核心的生产管控平台。基于平台的设计方案,通过数据可视化的方式对工业数据进行整合与分析,能够全面提高企业生产过程的透明性和可控性,有效地展示采、选矿作业过程中的资源分配和产品输出趋势。同时,结合企业管理基础功能和业务数据查询功能,为矿山企业开展信息化建设、达到数据互通、优化生产管控提供了一定的指导作用。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!