0

我正在使用 drools 专家规则评估 drools 流作为 wrokflow 引擎。关键评价点:

  • 通过自己的自定义 Web UI 生成自定义规则和工作流
  • 管理员用户可以在 UI 中查看工作流中的所有项目(查看作业队列:当前队列、已执行作业、异常)
  • 规则操作可以是 Web 服务、Java 类,也可以是存储过程
  • 在运行时删除/取消流程定义
  • 与日历/计划集成
  • Web Service 可以是规则输入
  • Web 服务可以是进程中的参与者
  • 运行时编译能力也就是说,没有应用程序在规则更改时重新启动
  • 将流程公开为服务

    请任何人都可以就上述领域提供您的意见以帮助我们进行此评估过程吗?

4

2 回答 2

1

让我试着快速回答这些要点:

  • 通过自己的自定义 Web UI 生成自定义规则和工作流

只要您以预期的 DRL 或 xml 格式导出规则和流程,您始终可以构建自己的自定义工具。Guvnor 提供了一些基于 Web 的规则编辑示例。我们正在研究 Oryx 以允许基于 Web 的流程编辑。

  • 管理员用户可以在 UI 中查看工作流中的所有项目(查看作业队列:当前队列、已执行作业、异常)

gwt-console 允许用户登录到 Web 应用程序并查看当前正在运行的实例;任务清单等

  • 规则操作可以是 Web 服务、Java 类,也可以是存储过程

规则操作只是 Java,因此您可以轻松调用所需的任何功能。如果您想要对这些操作进行更多的声明性建模,您可以使用工作项以更具声明性的方式对这些操作进行建模。

  • 在运行时删除/取消流程定义

ksession.abortProcessInstance(id)

  • 与日历/计划集成

为此使用可插入的工作项。我们有一个与谷歌日历集成的例子。

  • Web Service 可以是规则输入

工作内存中的任何内容都是规则输入,或者您可以使用 from 子句在规则评估期间提取更多信息;例如来自 myService.getMoreInfo(..) 的 NewData ( .. )

  • Web 服务可以是进程中的参与者

最好也将其建模为工作项。工作项处理程序将委托给 Web 服务。

  • 运行时编译能力也就是说,没有应用程序在规则更改时重新启动

您可以从知识库中动态添加或删除知识(规则和流程)

  • 将流程公开为服务

会话可以直接公开(因此人们可以调用诸如 startProcess 等操作)。如果您想将每个进程公开为单独的服务,我想您可以轻松地围绕它构建一个包装器。

于 2009-09-07T13:00:28.697 回答
0

它在用户事务上下文查找期间抛出异常 SingleSessionCommandService,因为它返回 null ctx.lookup("java:comp/UserTransaction".);

您需要集成一个 JTA txn 管理器,例如 Atomikos 或 JOTM。我正在使用Atomikos。

于 2009-12-11T15:55:54.820 回答