規則引擎框架集成了多款第三方開源規則引擎產品的、封裝了規則計算常用接口的,具有靈活擴展性、可靠性、高可用的規則引擎框架。配合前端規則定義的UI,可以靈活實現各種復雜邏輯的規則計算。
- 擴展性
引擎產品可擴展,可集成多種第三方規則引擎產品,來使用各個引擎的不同特性,適應復雜的應用場景。目前已集成jexl和groovy。
規則腳本適配器可擴展,由於第三方規則引擎的腳本語言不一致,需要擴展不用引擎所需的規則腳本適配器。規則腳本在前端頁面一次定義,會被存儲成結構化的腳本(json格式,基於二叉樹),再根據當前使用的引擎不同,引擎調度器會調用相應的規則腳本適配器,將結構化規則腳本轉化為具體第三方引擎可執行的腳本語言。
數據適配器可擴展,同規則腳本適配器,不同引擎接收數據的格式和方式不一致,需要自己擴展。 - 高可用性
框架內封裝了同步和異步引擎接口;
支持單個和批量任務的執行;
異步調用支持回調方式,並由內置線程池來多線程並發執行;
內部規則執行器對同一腳本會自動緩存,不會重復創建消耗資源和性能,提高執行效率。 - 可靠性
規則引擎框架設計依據開源J2EE框架成熟的設計模式,采用典型的控制器+適配器模式來驅動,內置可調參數線程池,內置緩存,支持同步異步和批量執行。框架各模塊職責分明,具有可追溯、可靈活調整的特性。