這是基於3個規則引擎12年之久的經驗(按重要性排序)我的看法:
- 在系統安裝並測試完成後,無需IT人員參與即可創建,編輯和部署規則。只要引擎附帶正常的API,就可以對規則進行版本,批准,測試和調試,但這並不重要,所以我可以根據自己的需要自行構建這些功能。我不確定「平臺」,只要給我一個像樣的用戶界面來進行規則製作和編輯,最好是基於網絡的用戶界面。
- 規則執行的性能應該是卓越的。無法強調:發動機緩慢幾乎總是導致利潤損失。在我的生活中,引擎必須能夠在2毫秒以內(平均約1.5毫秒,0.5毫秒很好)評估50-80條件規則集(無外部呼叫)。它必須是線程安全的,所有的規則評估必須完全獨立於對方和引擎本身(不包括規則緩存)。
- 規則應該以XML格式顯示,以便它可以保存在任何地方。我不關心它是什麼樣的格式,只要它能正常工作並且在引擎版本之間保持一致。我懷疑在不同組織之間「共享」規則的需求是巨大的。我絕對不希望與任何人分享我的規則:)規則存儲庫可能是完全邪惡的,因爲我可能需要將我的規則從一個存儲移動到另一個存儲(例如,如果合併或由其他人收購整個系統與其他類型的存儲)。只要發動機的品牌保持不變,就應該沒問題。規則只是邏輯集合。它們現在存儲在哪裏應該完全不相關。如果引擎不能從任何地方以預期的格式加載規則,那麼我不需要這樣的引擎。
- 能夠創建,名稱和保存小規則,並稍後將它們按規則集合在名稱中將是一個巨大的優勢。
我現在能想到的規則引擎的所有其他功能都與我無關,也與我所做的無關。希望這可以幫助。
謝謝Gosha,我很欣賞洞察力,因爲這個問題已經被少數人關閉了,我會接受這個答案。儘管我很好奇你爲什麼沒有提到像OMG SBCR,PRR和W3C RIF這樣的標準 –