简谈规则引擎在生产调度中的作用

简介:

规则引擎如何优化生产调度系统

生产调度系统是制造企业MES系统的重要组成部分,对应于生产管理系统的短期计划安排,主要目标是通过良好的作业加工排序,最大限度减少生产过程中的准备时间,优化某一项或几项生产目标,为生产计划的执行和控制提供指导。在不同的问题环境中,生产调度的优化目标也不同。在生产制造企业中影响生产调度的因素很多(比如设备、工人的生产技能等),这些因素样式复杂,种类繁多,灵活多变。另外在不同的环境下,影响生产调度的规则数量、优先级都会发生变化。过去生产调度系统将业务逻辑与主体代码紧耦合,业务规则以:

dd685179d036c258686d2936e57dc09ef49c0389

的形式被硬编码到代码中去,结果是线性、确定的执行路由,所有的约束和判断都按照建模时的约定执行。当业务规则发生变更时,唯一的途径是修改代码。

这种形式无法适应制造企业生产规则的频繁变更,导致生产调度系统的开发、升级和维护成本急剧增加,甚至生产调度系统完全无法适应企业的实际需求。因此生产调度系统在保证对目标优化的前提下,将业务逻辑与主体程序的分离,已成为生产调度系统首要解决的问题。本文着重阐述通过规则引擎技术将生产规则逻辑从生产调度系统分离,克服生产规则灵活变更导致生产调度系统无法适应企业生产策略变更的问题。

      目前开源和商业的规则引擎产品有很多,其中开源的以Drools为代表,商业的有ILog旗正规则引擎等,本文以商业规则引擎中的旗正规则引擎来说明。说句题外话,开源的产品有开源产品的优点,但是规则引擎作为一个高端的应用来说,还是希望在售后服务,技术支持等方面能有商业化的保障。

    在制造企业中,生产策略的变更非常频繁并且影响生产调度系统的业务策略很多,而传统的生产调度系统将业务逻辑与生产调度逻辑紧密耦合,导致系统的开发,维护都变得异常艰难。因此如何将业务逻辑与主体程序分离,屏蔽业务策略变更对主体程序的影响,则成为生产调度系统的关键问题。

    基于规则引擎的生产调度系统架构设计的核心是实现业务逻辑与应用程序解耦。它的实现方案可分为以下几个步骤:

1.  生成业务规则  业务人员对影响生产调度的业务策略进行收集,抽象,归纳,按照规则文件格式配置成业务规则。

2.  业务规则管理  业务人员通过规则管理平台实现对规则的存储,版本,废弃,冻结等一系列的管理

3.  执行业务规则  应用程序中启动规则引擎(服务和接口)解析执行已经编辑配置好的规则文件,然后将结果返回给应用程序。

通过以上步骤,能够让整个生产调度系统快速适应企业业务策略的频繁变更,隔离策

略变更对应用程序的影响,同时又能与主体程序进行动态通信。主体程序动态感知业务策略的变更,将变更结果推动执行和呈现。

    在制造业企业中,制约生产调度的业务规则很多,在不同的场景中业务规则的组合形式多种多样并且规则的执行先后顺序对调度结果也起着制约作用,业务规则的表现形式也是多种多样的,如何灵活易用的配置统一格式的规则是我们关注的重点。

   旗正规则引擎的规则主要由:条件,动作,属性等组成,一个规则中可以包含多个组合判断条件,也可以完成多个不同的动作。

   旗正规则引擎的规则表现形式如下:

    3242f2eac4819573cdfae0c9ab99e073bef29da7  

在生产调度系统中,所有的业务规则都可以抽象为这种格式,下面以工人的技能熟练程度为例来说明生产调度系统中的业务规则配置方式

a7a0e4cd195862a3affd62ab4c5f76adc5847356

从上图可以看出,与传统的生产调度系统相比,基于规则引擎的生产调度系统具有以下几点优势:

1.  业务逻辑与主体逻辑的分离,模块之间更加松散耦合,已于开发,维护和升级

2.  屏蔽业务策略的变化,具有更强的灵活能力和使用能力,能有效的适应策略的变化。

3.  有效的延长应用程序的生命周期。

4.  开发过程更加离散,各个过程可由不同的开发者进行开发,测试和部署。

基于规则引擎的生产调度系统实现了主体应用程序与业务逻辑的分离,屏蔽了生产策略变更对系统的影响。能有效降低生产调度系统的开发,维护和升级成本,延长软件生命周期,降低企业信息化成本。

 

相关文章
|
存储 Java 测试技术
|
监控 安全 Devops
阿里云容器服务飞天敏捷版详解
阿里云容器服务提供了公共云、专有云以及飞天敏捷版三种部署形态,全方位地满足企业客户利用CaaS(Container as a Service)进行应用现代化上云的需求。飞天敏捷版包含了阿里在公有云上的最佳实践和Docker企业版的安全能力,打造企业一体化化的本地容器云平台方案。
27485 1
|
6月前
|
人工智能 Cloud Native Java
2025 开源之夏开启报名|AI + 云原生,10个开源项目、24个课题任您挑选
“开源之夏”是由中国科学院软件研究所发起的暑期活动,旨在鼓励高校学生参与开源软件开发与维护。活动联合各大开源社区提供项目任务,面向全球年满18周岁的高校学生开放报名。每位学生最多可申请一个项目。阿里云云原生提报了包括Apache Dubbo、RocketMQ、Seata等在内的10个开源项目共24个课题,涵盖技术优化、功能实现及AI应用等领域。活动流程包括选题、申请、开发与结项考核,具体信息可访问官网了解。
2241 32
|
4月前
|
数据采集 供应链 监控
如何开发WMS系统中的经营看板(附架构图+流程图+代码参考)
WMS系统中的经营看板是企业管理仓库运营的重要工具,能够实时展示库存、销售、采购等关键数据。它不仅提高运营效率、降低成本,还助力精准决策。本文详解其功能模块、业务流程、开发技巧及实现效果,并提供代码示例与技术选型建议,帮助企业构建高效的数据可视化系统。
|
9月前
|
存储 人工智能 搜索推荐
阿里云佘俊泉:边缘云场景的探索与机遇
阿里云佘俊泉:边缘云场景的探索与机遇
321 0
|
11月前
|
前端开发 UED
游戏直播平台源码分享,功能对标虎牙斗鱼
熊猫比分开发的游戏直播平台,提供全面的电竞赛事直播与数据服务,涵盖LOL、DOTA2等热门项目。平台特色包括丰富的基础数据、详细的统计数据、最新的媒体资讯及优质的直播体验,如画中画功能和IM通讯模块,增强用户互动与粘性。
|
运维 监控 Cloud Native
深入理解云原生技术:从概念到实践
在数字化转型的浪潮中,云原生技术如同星辰指引航船,引领企业驶向灵活、高效的未来。本文将深入浅出地探讨云原生的核心理念、关键技术及应用实例,旨在为读者揭开云原生的神秘面纱,展示其如何重塑软件开发与运维模式。通过理论与实践的结合,我们将一窥云原生技术的强大动力和无限可能。
|
SQL 缓存 测试技术
RESTful API设计的最佳实践:构建高效、可维护的Web服务接口
【6月更文挑战第11天】构建高效、可维护的RESTful API涉及多个最佳实践:遵循客户端-服务器架构、无状态性等REST原则;设计时考虑URL结构(动词+宾语,使用标准HTTP方法)、使用HTTP状态码、统一响应格式及错误处理;确保数据安全(HTTPS、认证授权、输入验证);实施版本控制;并提供详细文档和测试用例。这些实践能提升Web服务接口的性能和质量。
|
SQL 关系型数据库 MySQL
MySQL数据库设计规范总结
该文档是一份MySQL数据库设计和SQL编写规范,旨在帮助技术团队遵循最佳实践,确保数据库设计合理、高效。规范涵盖数据库命名、表结构、数据类型优化、索引设计、分库分表、字符集、DAO设计建议和SQL编写规则。其中强调了强制性要求,如使用InnoDB存储引擎,主键和索引设计,以及避免全表扫描和使用JOIN等。此外,还提供了SQL示例和性能优化建议,以确保数据库系统的稳定性和性能。
562 2
|
搜索推荐 关系型数据库 MySQL
[mysql]定制封装MySQL的docker镜像
[mysql]定制封装MySQL的docker镜像
343 0