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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      

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

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

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

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

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

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

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

 

时间: 2024-10-29 18:39:30

简谈规则引擎在生产调度中的作用的相关文章

规则引擎在数据分析中的作用

前言:规则引擎通过将业务规则和开发者的技术决策分离, 实现了动态管理和修改业务规则而又不影响软件系统的需求.以下通过实例对基于SQL 查询.自定义规则等一系列场景来说明规则引擎在数据分析中的应用. 在现代的企业级项目开发中, 商业决策逻辑或业务规则往往是硬编码嵌入在系统各处代码中的.但是外部市场业务规则是随时可能发生变化的, 这样开发人员必须时刻准备修改.更新系统,降低了效率.在这种背景下, 规则引擎应运而生,它通过将业务规则和开发者的技术决策分离, 实现了动态管理和修改业务规则而又不影响软件系

浅谈JS语言在SEO中的作用

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 一谈起SEO,大家都会先避免使用JS等被认为对搜索引擎不友好的东西.因为我们都把搜索引擎当做第一用户,而真正的用户都没法跟搜索引擎比较.这样的思想其实存在很严重的误区.这里笔者来分享一下我个人对JS在SEO中起的作用的见解. JS表现良好的一面 JS是一个客户端脚本语言,它跟HTML,网站都有的重要的联系.你可以观察大型网站是不是通常都采用J

浅谈H1标签在SEO中的作用

H1,h2这些只不过是html语言中很基本的几个,原本是通过H1-H6来控制标题格式,只是随着搜索引擎的不断更新,大家逐渐发现了H1,H2,H3对seo的影响,不过今天老李说的却是从LOGO是否加H1说起. 通常在设计静态页面时,美工会把标题用h1来表示,这样一不用设置过多的代码,对搜索引擎来说会认为带h1的是着重突出的地方,近期发现很多人在给logo加H1,说是增加权重,老李也试了一把,确实有些效果,不过设置的有些问题,所以离目的有点偏离.6月份老李尝试把首页Title加到了logo的alt里

谈链接在网站SEO中的作用

发布外链是一个烦躁的事情,上一篇文章<长尾关键在于如何追>也提到过了,外链就每个SEO入门要做的.但是很多新人却不明白,企业为什么总我去发外链,我是来学习的,不是来发这些玩样的.为什么不转下思维想想呢? 做优化的最重要的就是外链了,而一些好的外链有质量的外链都是在平时累计出来的.你试想一下如果企业每天给你的任务是一百五十条外链,十篇软文,你看一下或许会觉得很多,但是其实不多的.因为这一百五十条外链里有多少条会被删除呢?这有没想过?那如果你动脑想想,如果我在发外链的时候,顺便找些好用的论坛,累计

使用WEBLOGIC PORTAL规则引擎中实现动态业务逻辑

web|动态 简介 业务应用的需求总是随着业务环境的变化趋势而不断地改变.决策很少是一成不变的,并且竞争压力要求业务逻辑的设计和实现具有灵活性,以快速地适应不断变化的需求.通常,对业务逻辑的更改必须由开发人员来完成,然后进行多次彻底的测试,而这将是一个很耗时的过程.在应用程序的修改工作完成后,需要将其重新部署到服务器,需要留出预定的停机时间,以防应用程序对用户不可用. 对于这个问题,更好的解决方案是通过应用程序之外的一组规则来实现某些业务决策.这些规则并没有被编译到应用程序中,而是在运行时读取并

【java规则引擎】之Drools之Rete算法

一:规则引擎--->规则引擎的核心是Pattern Matcher(模式匹配器).不管是正向推理还是反向推理,首先要解决一个模式匹配的问题. --->对于规则的模式匹配,可以定义为: 一个规则是一组模式的集合.如果事实/假设的状态符合该规则的所有模式,则称为该规则是可满足的. 模式匹配的任务就是将事实/假设的状态与规则库中的规则一一匹配,找到所有可满足的规则. 二:什么是模式匹配 对于模式匹配我们都应该不陌生,我们经常使用的正则表达式就是一种模式匹配. 正则表达式是一种"模式(pat

.NET简谈自定义事务资源管理器

在上一篇文章"NET简谈事务.分布式事务处理"中我大概总结了关于.NET中的事务处理方式和结合了WCF框架的简单应用.在事务性操作中我们的重点是能将数据进行可逆化,说白了就是能保证数据的ACID(关于事务的整体模型.原理请参见".NET简谈事务本质论"一文),在.NET事务处理框架中强大的类库帮我们实现了很多事务传递.事务自动提升的技术难点,同时也提供了很多扩展接口,只要我们肯去研究总能有收获. 这篇文章主要讲解怎样利用.NET为我们提供的扩展接口进行自定义的事务处

信息架构中信息类粒化简谈

当我们进一座写字楼的时候,找你想要去的房间,你会依据什么来指引到那个房间?当你到超市买东西的时候,什么东西指引你可以很快的找到你要去物柜?当你到达一个网站的时候,你依靠什么找到你要的信息?什么样的方式可以让你更加快捷的找到你所关注的目标信息?这时候,一个写字楼的楼层房间分布图谱,一个超市的物品分类,一个网站的信息架构就显示出它的作用了. 当我们找那个目标房间具体信息,房间的位置,朝南还是朝北,房间大小,距离电梯的距离等等,超市找物柜里面的物品,找红酒还是白酒,什么品牌,价格,是否有促销,是自己品

规则引擎-BRMS在企业开发中的应用

1. 什么是规则 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.规则正是应用于上述动态环境中的一种解决方法. 2. 规则产生的背景 一个业务规则包含一组条件和在此条件下执行的操作.它们表示业务规则应用程序的一段业务逻辑.业务规则的理论基础是:设置一个或多个条件,当满