Rules Engine 規則引擎

閱讀時間約 4 分鐘
圖片來自 Tim Mossholder
最近在某些機緣下認識了規則引擎,以華文介紹規則引擎的文章好像不多,這邊試著粗淺的記下我對規則引擎的認識。

什麼是規則引擎?

在程式的世界,規則引擎通常以套件的方式存在,在系統內藉由規引擎套件的引入,可以利用規則引擎提供的特定方法來定義一系列的商業邏輯,包括每個商業邏輯被觸發的條件,以及被觸發後的行為。
一個最典型的例子:評分機制,九十分以上的為甲級,享有某些特殊優惠;七十至九十分的為乙級,享有略低於甲級的優惠;七十分以下的為丙級,不享有優惠。生活中常見的會員分級、銀行的信用評分都是類似的評分機制的實際應用。

和 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
13會員
64內容數
Where I go and what I get.
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Leon的沙龍 的其他內容
介紹 KeePass 這個簡單安全輕巧的密碼管理器,以及它的兄弟們。
你會寫 Jira 的 user story 嗎?我不會,所以我用自己的方式來理解與制定 story 的用法。
Electron 是把 web 封裝並發布成桌面 app 的框架,同時也提供了存取本機的 API,但卻帶來難以使用傳統自動測試工具的問題,而透過 Electron 的測試框架 Spectron,讓我們得以操控 app 內的 UI 元件,進而達成自動化測試的目的。
古早的年代想在網頁內埋 Java 還有 Java applet 可以用,在 Java applet 式微後,找來找去比較可以的辦法大概就是編譯成 WebAssembly 了吧! 想要把 Java 編譯成 WebAssembly,有下面三個工具可以選用
介紹 KeePass 這個簡單安全輕巧的密碼管理器,以及它的兄弟們。
你會寫 Jira 的 user story 嗎?我不會,所以我用自己的方式來理解與制定 story 的用法。
Electron 是把 web 封裝並發布成桌面 app 的框架,同時也提供了存取本機的 API,但卻帶來難以使用傳統自動測試工具的問題,而透過 Electron 的測試框架 Spectron,讓我們得以操控 app 內的 UI 元件,進而達成自動化測試的目的。
古早的年代想在網頁內埋 Java 還有 Java applet 可以用,在 Java applet 式微後,找來找去比較可以的辦法大概就是編譯成 WebAssembly 了吧! 想要把 Java 編譯成 WebAssembly,有下面三個工具可以選用
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
Yoga Retreat @ Greece  I do not know who need to hear this, but here it goes When you are blessed with a responsibility as a leader, teacher, coach,
Thumbnail
你聽過GARY JULES的MAD WORLD嗎?你知道這首歌的原唱其實是英國天團TEARS OF FEARS?
Previously, we introduced the Things you need to know for filing Employers Return in Hong Kong. Mandatory Provident Fund (“MPF”) are compulsory retire
Thumbnail
Mandatory Provident Fund (“MPF”) are compulsory retirement schemes / pension funds that are created by the Hong Kong government and are provided by ap
Thumbnail
賽倫蓋提大草院並非只是觀看動物大遷徙的名勝,而是現代生態學的聖地。食物鏈是什麼?現代生態學可以幫助我們解決什麼問題? 請聽紅柿子導讀「生命的法則」(讀書共和國出版)
Thumbnail
現代中文的「辱」字多被轉用爲「屈辱」、「侮辱」、「羞辱」、「辱罵」等與人事名譽等有關的詞彙,......English 仍然以 rule 一字保留了古代「辱」字的本義,此外 ruler ㄧ字也有與丈量寸法有關的量尺、尺規等意思,ruler 字首和字尾的字母 r 大寫爲 R,也幾乎完全和「尺」字同形。
Thumbnail
  2015 港劇【潮拜武當Wudang Rules】  包繼沖 沖哥(錢小豪)-大師兄 前身為警隊臥底黑幫  樂洋 洋洋(楊怡)-Ocean 原基金經理 後上山 毛倚珊 珊姐(元秋)-武當山武術師父 樂洋之母 張家港 Ken(洪天明)-綜合格鬥拳手 舊疾白血病 東哥 番薯(郭政鴻)-前黑幫頭目 失
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
Yoga Retreat @ Greece  I do not know who need to hear this, but here it goes When you are blessed with a responsibility as a leader, teacher, coach,
Thumbnail
你聽過GARY JULES的MAD WORLD嗎?你知道這首歌的原唱其實是英國天團TEARS OF FEARS?
Previously, we introduced the Things you need to know for filing Employers Return in Hong Kong. Mandatory Provident Fund (“MPF”) are compulsory retire
Thumbnail
Mandatory Provident Fund (“MPF”) are compulsory retirement schemes / pension funds that are created by the Hong Kong government and are provided by ap
Thumbnail
賽倫蓋提大草院並非只是觀看動物大遷徙的名勝,而是現代生態學的聖地。食物鏈是什麼?現代生態學可以幫助我們解決什麼問題? 請聽紅柿子導讀「生命的法則」(讀書共和國出版)
Thumbnail
現代中文的「辱」字多被轉用爲「屈辱」、「侮辱」、「羞辱」、「辱罵」等與人事名譽等有關的詞彙,......English 仍然以 rule 一字保留了古代「辱」字的本義,此外 ruler ㄧ字也有與丈量寸法有關的量尺、尺規等意思,ruler 字首和字尾的字母 r 大寫爲 R,也幾乎完全和「尺」字同形。
Thumbnail
  2015 港劇【潮拜武當Wudang Rules】  包繼沖 沖哥(錢小豪)-大師兄 前身為警隊臥底黑幫  樂洋 洋洋(楊怡)-Ocean 原基金經理 後上山 毛倚珊 珊姐(元秋)-武當山武術師父 樂洋之母 張家港 Ken(洪天明)-綜合格鬥拳手 舊疾白血病 東哥 番薯(郭政鴻)-前黑幫頭目 失