Java启用工作流程系统的规则库

时间:2014-10-12 11:16:39

标签: java workflow drools rule

我正在设计一个应具备

功能的通用系统
  1. 从数据库中获取给定输入的相关记录。
  2. 获取适用于给定输入的规则集。
  3. 根据规则过滤记录。
  4. 我设想我的系统保持规则执行本身并且不将它委托给像Drools这样的规则引擎,因此 - 我需要对可用库的输入 - 这将允许我存储/添加/更新/管理_CONFLICTS以及最终FETCH_RELEVANT规则。

    问题:可用库创建规则库并允许快速搜索它们吗?

         _________________          ___________          __________________________
        |                 |  fast  |           |        |                          |
        | Workflow System |--------| Rule Base |--------| User interface for rules |
        |_________________| search |___________|        |__________________________| 
    
    

    用例:想象一个图表,其中节点作为城市,边缘作为连接。两个节点可以通过几个边缘(火车,空中,道路等)连接,每个边缘都有自己的成本和时间限制。输入是源节点和目标节点。规则可能如下:在城市X中支付octroi费用,仅当道路和火车路线不可用时,首选X和Y之间的航线等。

    PS:我的工作流程将从树形图中获取数据以进行输入(源 - 目标对)。然后,它将应用适用于每个节点的一组规则,每个边缘都在加入源目标的路径上。

    PS:我经历过CS中的开放性问题,如树木/图形上的多种商品需求流问题,这些问题是NP难的并且具有相似的定义,但我的系统正试图解决问题,即使它是次优解决方案。

1 个答案:

答案 0 :(得分:-1)

您可以查看Rulette是否符合您的目的。它运行"在#34;您的应用程序和规则可以在MySql中轻松配置。

修改

你可以这样做

  1. 将rulette-core添加到项目的依赖项中。
  2. 如文档所述,设置rulette。
  3. 规则输入可以是source city,dest。城市和旅行方式(仅通过你给出的例子),它们的组合映射到不同的规则输出。
  4. 对于规则输出,您可以使用映射到代码中的执行程序类的字符串(或任何其他ID)。这些类包含了做必须完成的事情的业务逻辑。
  5. 这应该可以解决您将规则评估保留在应用程序中的意图,并保持实际活动与调用规则分离。