天天看點

簡談規則引擎在生産排程中的作用

<a href="http://blog.csdn.net/wangmengqz/article/details/11961775">規則引擎如何優化生産排程系統</a>

生産排程系統是制造企業MES系統的重要組成部分,對應于生産管理系統的短期計劃安排,主要目标是通過良好的作業加工排序,最大限度減少生産過程中的準備時間,優化某一項或幾項生産目标,為生産計劃的執行和控制提供指導。在不同的問題環境中,生産排程的優化目标也不同。在生産制造企業中影響生産排程的因素很多(比如裝置、勞工的生産技能等),這些因素樣式複雜,種類繁多,靈活多變。另外在不同的環境下,影響生産排程的規則數量、優先級都會發生變化。過去生産排程系統将業務邏輯與主體代碼緊耦合,業務規則以:

簡談規則引擎在生産排程中的作用

的形式被寫死到代碼中去,結果是線性、确定的執行路由,所有的限制和判斷都按照模組化時的約定執行。當業務規則發生變更時,唯一的途徑是修改代碼。

這種形式無法适應制造企業生産規則的頻繁變更,導緻生産排程系統的開發、更新和維護成本急劇增加,甚至生産排程系統完全無法适應企業的實際需求。是以生産排程系統在保證對目标優化的前提下,将業務邏輯與主體程式的分離,已成為生産排程系統首要解決的問題。本文着重闡述通過規則引擎技術将生産規則邏輯從生産排程系統分離,克服生産規則靈活變更導緻生産排程系統無法适應企業生産政策變更的問題。

  目前開源和商業的規則引擎産品有很多,其中開源的以<b>Drools</b>為代表,商業的有<b>ILog</b>,<b>旗正規則引擎</b>等,本文以商業規則引擎中的旗正規則引擎來說明。說句題外話,開源的産品有開源産品的優點,但是規則引擎作為一個高端的應用來說,還是希望在售後服務,技術支援等方面能有商業化的保障。

    在制造企業中,生産政策的變更非常頻繁并且影響生産排程系統的業務政策很多,而傳統的生産排程系統将業務邏輯與生産排程邏輯緊密耦合,導緻系統的開發,維護都變得異常艱難。是以如何将業務邏輯與主體程式分離,屏蔽業務政策變更對主體程式的影響,則成為生産排程系統的關鍵問題。

1.  生成業務規則  業務人員對影響生産排程的業務政策進行收集,抽象,歸納,按照規則檔案格式配置成業務規則。

2.  業務規則管理  業務人員通過規則管理平台實作對規則的存儲,版本,廢棄,當機等一系列的管理

3.  執行業務規則  應用程式中啟動規則引擎(服務和接口)解析執行已經編輯配置好的規則檔案,然後将結果傳回給應用程式。

通過以上步驟,能夠讓整個生産排程系統快速适應企業業務政策的頻繁變更,隔離策

略變更對應用程式的影響,同時又能與主體程式進行動态通信。主體程式動态感覺業務政策的變更,将變更結果推動執行和呈現。

    在制造業企業中,制約生産排程的業務規則很多,在不同的場景中業務規則的組合形式多種多樣并且規則的執行先後順序對排程結果也起着制約作用,業務規則的表現形式也是多種多樣的,如何靈活易用的配置統一格式的規則是我們關注的重點。

   旗正規則引擎的規則主要由:條件,動作,屬性等組成,一個規則中可以包含多個組合判斷條件,也可以完成多個不同的動作。

   旗正規則引擎的規則表現形式如下:

簡談規則引擎在生産排程中的作用

在生産排程系統中,所有的業務規則都可以抽象為這種格式,下面以勞工的技能熟練程度為例來說明生産排程系統中的業務規則配置方式

簡談規則引擎在生産排程中的作用

從上圖可以看出,與傳統的生産排程系統相比,基于規則引擎的生産排程系統具有以下幾點優勢:

1.  業務邏輯與主體邏輯的分離,子產品之間更加松散耦合,已于開發,維護和更新

2.  屏蔽業務政策的變化,具有更強的靈活能力和使用能力,能有效的适應政策的變化。

3.  有效的延長應用程式的生命周期。

4.  開發過程更加離散,各個過程可由不同的開發者進行開發,測試和部署。

基于規則引擎的生産排程系統實作了主體應用程式與業務邏輯的分離,屏蔽了生産政策變更對系統的影響。能有效降低生産排程系統的開發,維護和更新成本,延長軟體生命周期,降低企業資訊化成本。

繼續閱讀