Rules Engine 規則引擎

更新於 發佈於 閱讀時間約 5 分鐘
raw-image

最近在某些機緣下認識了規則引擎,以華文介紹規則引擎的文章好像不多,這邊試著粗淺的記下我對規則引擎的認識。

什麼是規則引擎?

在程式的世界,規則引擎通常以套件的方式存在,在系統內藉由規引擎套件的引入,可以利用規則引擎提供的特定方法來定義一系列的商業邏輯,包括每個商業邏輯被觸發的條件,以及被觸發後的行為。

一個最典型的例子:評分機制,九十分以上的為甲級,享有某些特殊優惠;七十至九十分的為乙級,享有略低於甲級的優惠;七十分以下的為丙級,不享有優惠。生活中常見的會員分級、銀行的信用評分都是類似的評分機制的實際應用。

和 if / else、switch / case 有什麼不同?

上面的例子看起來好像用原生的 if / else 或 switch / case 就可以做到同樣的事?然而在某些不同的場景上,用 if / else 是不適合的。

首先是關注的焦點不同,不論是 if / else 或 switch / case,他們的語法都專為判斷程式運作邏輯而設計,並不適合拿來做商業邏輯的判斷,因為商業邏輯的規則往往更複雜;規則引擎的關注焦點就是商業邏輯而非程式邏輯。硬要用 if / else 來做商業邏輯很有可能長出多層巢狀的 if / else,並且在商業邏輯上,隨著規則的複雜化,系統要做的可能不只是單純的判斷,而是推斷,根據一系列的指標數據由系統協助推斷後續的動作,以銀行系統為例,根據客戶的各項指標(年齡、職業、性別、家庭、地區、資產、收入、信用、健康)來推斷他的風險值,並進一步決定他的借貸利率,像這樣的規則引擎的應用被稱為專家系統,專家系統的推斷可以用演算法或是人工智慧的方式實現。

第二點,規則引擎提供更靈活的參數調整方式,在 if / else 裡面的判斷條件都是死的,難以被開發者以外的營運人員變更,或是必須由開發者手動刻出參數調整的程式、介面,而規則引擎在這方面都提供更靈活的調整方法,可能是用讀入特定格式的檔案(csv 或 xls 或 json)來實現規則的設定,並且這些格式同時是人機可讀的,讓營運人員更簡易的自行調控。第二種做法就是由規則引擎提供程式介面,由開發人員實現操作介面給營運人員使用,這當然有一定的複雜度,需要花費心力去讀規則引擎的文件,但以一個商業用系統的長遠來看,用規則引擎來實現應該是可以有更低的長期維運成本。

規則引擎的應用

  • 金融信用評分系統
  • 保險風險評估系統
  • 交易行為異常監控系統
  • 會員分級系統
  • 交易優惠系統

以上這些系統的共同特色:參數多、規則複雜。

規則引擎的套件

規則引擎在 Java 生態系內是最多的,大概是因為上面的應用大多是大型系統,而大型系統也都是 Java 的世界的緣故吧!不過其實其它語言也都有規則引擎套件,去 PyPI、npm、Crates.io、RubyGems 等站台搜尋 rules engine 應該都會有相對應的套件,不過成熟度、維護程度各異,服用前需要評估。

規則引擎的實做分纇

前面提到過,規則引擎在各語言都有,並且是以第三方套件的形式提供,但以每個規則引擎套件的實做方式來說,有兩大種分別:是否以 Rete 演算法為基礎。

較簡單的規則引擎套件並不以 Rete 演算法實現,而是用作者自己的做法實現,通常這種規則引擎不會具有自行推斷的能力,而只是實現了一層較適合商業邏輯的設定與撰寫的程式介面供我們使用,較好上手功能也較少,較適合簡單的商業場景。

第二種規則引擎套件即以 Rete 演算法為基礎實現,關於 Rete 演算法,可以簡單的理解為用於比對多個事實(條件)與多個規則,並做出最終推斷的一種演算法,這種規則引擎適用於更複雜的場景。

商業化的產品

商業化的產品因為是要賣錢錢的,不會只有 rules engine,而是再加上一些人機介面輔助等等的週邊元件包裝成完整的產品。

參考資料

留言
avatar-img
留言分享你的想法!
avatar-img
Leon的沙龍
15會員
64內容數
Where I go and what I get.
Leon的沙龍的其他內容
2024/04/10
Goolge OR-Tools 是一套以數學模型為基礎的求解器,相較於 OptaPlanner,OR-Tools 有更平緩的學習曲線,本文是 OR-Tools 最基礎的介紹。
Thumbnail
2024/04/10
Goolge OR-Tools 是一套以數學模型為基礎的求解器,相較於 OptaPlanner,OR-Tools 有更平緩的學習曲線,本文是 OR-Tools 最基礎的介紹。
Thumbnail
2024/04/09
這篇開箱另一套權限檢查工具 Vakt,相較於 Oso,Vakt 的規則直接以 Python 語法構成,不用再學 Oso 的特規語法,可以作為 Oso 的替代品。
Thumbnail
2024/04/09
這篇開箱另一套權限檢查工具 Vakt,相較於 Oso,Vakt 的規則直接以 Python 語法構成,不用再學 Oso 的特規語法,可以作為 Oso 的替代品。
Thumbnail
2024/04/09
SpiffWorkflow 是一個專門針對業務流程的流程引擎,它與商業 BPMN 產品有所區別,適合應用在自有專案中,並且需要內含稍微複雜的商業流程。例如,對於需要外部程式與前端配合才能真正讓用戶輸入決斷的場景,SpiffWorkflow 是一個適合的解決方案。
Thumbnail
2024/04/09
SpiffWorkflow 是一個專門針對業務流程的流程引擎,它與商業 BPMN 產品有所區別,適合應用在自有專案中,並且需要內含稍微複雜的商業流程。例如,對於需要外部程式與前端配合才能真正讓用戶輸入決斷的場景,SpiffWorkflow 是一個適合的解決方案。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
如逆水行舟,不進則退。前陣子朋友介紹了一位國外的交易大神給我認識,所以最近幾個禮拜都在學習他的交易概念,一直以來我都認為做交易就是在不確定中尋找確定性,找到屬於自己的交易邊界,顧好這一畝三分地,行情來了我才進場,其餘時間就是在場外觀望等待,依照交易多年的經驗,以及和前輩們學習所得到的結論也都一樣,而
Thumbnail
如逆水行舟,不進則退。前陣子朋友介紹了一位國外的交易大神給我認識,所以最近幾個禮拜都在學習他的交易概念,一直以來我都認為做交易就是在不確定中尋找確定性,找到屬於自己的交易邊界,顧好這一畝三分地,行情來了我才進場,其餘時間就是在場外觀望等待,依照交易多年的經驗,以及和前輩們學習所得到的結論也都一樣,而
Thumbnail
交易系統就像企業的商業模式,是交易者在市場上獲取利潤的方式與指導方針。而交易路徑圖就像是引導讀者邁向終點的藏寶圖,讓我帶領各位一同走向最終目標的紅色迴圈吧!
Thumbnail
交易系統就像企業的商業模式,是交易者在市場上獲取利潤的方式與指導方針。而交易路徑圖就像是引導讀者邁向終點的藏寶圖,讓我帶領各位一同走向最終目標的紅色迴圈吧!
Thumbnail
網格交易機器人,有幾大好處: *24 小時自動盯盤,睡覺也會幫你賺錢 *嚴格按照設定條件執行,保證高效有紀律 *不需人為介入,上班休閒與理財賺錢兩不誤 這次就帶大家實地操作,一步一步學會網格單的使用
Thumbnail
網格交易機器人,有幾大好處: *24 小時自動盯盤,睡覺也會幫你賺錢 *嚴格按照設定條件執行,保證高效有紀律 *不需人為介入,上班休閒與理財賺錢兩不誤 這次就帶大家實地操作,一步一步學會網格單的使用
Thumbnail
請先看完這篇兩年半前在PTT的舊文章,主內容跟下面的推文更新都要看,因為這篇舊文值得參考的資訊除了籌碼以外,還有很多點。 籌碼到底有沒有參考價值? 前一篇文章留言區提到的夢境內容,其實也只是PTT這篇鄉民認為是瞎扯的文章內容的實戰範例而已。
Thumbnail
請先看完這篇兩年半前在PTT的舊文章,主內容跟下面的推文更新都要看,因為這篇舊文值得參考的資訊除了籌碼以外,還有很多點。 籌碼到底有沒有參考價值? 前一篇文章留言區提到的夢境內容,其實也只是PTT這篇鄉民認為是瞎扯的文章內容的實戰範例而已。
Thumbnail
在商業世界中,這是一本人人都需要試著理解的書,怎麼說呢?​ 商業世界是以物易物、以技能換金錢、以oo換xx,總之就是有給有得、交換才能過活的概念,但世界很複雜,並不是給多少就獲得多少,可能給了100只獲得50、20、甚至是負的都有可能... 遊戲規則是什麼呢?我們每個人生活中有許多目標,每個目
Thumbnail
在商業世界中,這是一本人人都需要試著理解的書,怎麼說呢?​ 商業世界是以物易物、以技能換金錢、以oo換xx,總之就是有給有得、交換才能過活的概念,但世界很複雜,並不是給多少就獲得多少,可能給了100只獲得50、20、甚至是負的都有可能... 遊戲規則是什麼呢?我們每個人生活中有許多目標,每個目
Thumbnail
介紹 rules engine,所運用的技術,以及他們的應用。
Thumbnail
介紹 rules engine,所運用的技術,以及他們的應用。
Thumbnail
如果你也想要像成功的投資者一樣,擁有一套交易系統 或是你跟過去的我一樣,很會凹單, 那你一定要看這篇文章和這本書,你會發現 原來這些其實「都可以改善」,相信你還想知道更多, 馬上點開收看吧!!!
Thumbnail
如果你也想要像成功的投資者一樣,擁有一套交易系統 或是你跟過去的我一樣,很會凹單, 那你一定要看這篇文章和這本書,你會發現 原來這些其實「都可以改善」,相信你還想知道更多, 馬上點開收看吧!!!
Thumbnail
  在上一章我們討論了專職投資人和業餘投資人之間的差異。這個差異我們說是由投資方法決定的,那麼什麼是投資方法呢?或許有讀者第一個會聯想到「技術分析」、「籌碼分析」、又或是「海龜投資法」、「槓鈴策略」,甚至理專最愛的「定期定額」、「微笑曲線」。以上這些都只屬於我所謂投資方法的一部分,而非全部。
Thumbnail
  在上一章我們討論了專職投資人和業餘投資人之間的差異。這個差異我們說是由投資方法決定的,那麼什麼是投資方法呢?或許有讀者第一個會聯想到「技術分析」、「籌碼分析」、又或是「海龜投資法」、「槓鈴策略」,甚至理專最愛的「定期定額」、「微笑曲線」。以上這些都只屬於我所謂投資方法的一部分,而非全部。
Thumbnail
相信喜歡投資的各位, 對所謂的「交易系統」這個概念都不陌生, 也許你已經有了你專屬的交易系統。 你知道什麼狀況下該進場, 你知道什麼狀況下該退場; 你能掌握交易潛在的風險, 你能知道自己賺錢的原因。 或許你還沒找到屬於自己的交易系統, 或許你還在改善、調整你的交易邏輯, 無論你的交易系統的完成度是
Thumbnail
相信喜歡投資的各位, 對所謂的「交易系統」這個概念都不陌生, 也許你已經有了你專屬的交易系統。 你知道什麼狀況下該進場, 你知道什麼狀況下該退場; 你能掌握交易潛在的風險, 你能知道自己賺錢的原因。 或許你還沒找到屬於自己的交易系統, 或許你還在改善、調整你的交易邏輯, 無論你的交易系統的完成度是
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News