我们正在开发一个涉及许多不同测试的应用程序,其中每个测试都会引导用户执行多个步骤。我们正在考虑使用状态机框架从代码中捕获状态/转换。我们也在考虑使用规则引擎来补充规则。任何人都有任何可以与 JBoss 和/或 Java 一起使用的状态机框架的经验吗?提前致谢。
-阮
我们正在开发一个涉及许多不同测试的应用程序,其中每个测试都会引导用户执行多个步骤。我们正在考虑使用状态机框架从代码中捕获状态/转换。我们也在考虑使用规则引擎来补充规则。任何人都有任何可以与 JBoss 和/或 Java 一起使用的状态机框架的经验吗?提前致谢。
-阮
jbpm做到了这一点,并与 jboss 很好地集成。根据我的经验,它非常易于使用且功能强大。
你可能想看看StatefulJ。它建立在 Spring Data for Persistence 支持之上,状态模型本身是使用 Annotations 定义的。与 XML 相比,这种方法更容易设置和维护。关于规则 - 我过去使用过 Drools,似乎得到了很好的支持。
免责声明:我是 StatefulJ 的作者
如果您正在构建一些基于屏幕到屏幕转换的系统,那么您肯定应该查看 Spring WebFlow http://springframework.org/webflow
我在使用ragel构建易于维护的状态机方面有很好的经验。生成的 java 代码质量非常高。但是,它纯粹是一个状态机生成器,没有特定用途,因此您可能会找到其他解决方案,这些解决方案可以在与 Web 相关的问题域中更无缝地工作。
也许你可以看看 JBoss PVM。它仍处于 alpha 阶段,但可用于对任何类型的状态机进行建模。我们也在研究它的 gui 转换。
试试 Activiti,好像很多人都在用。 http://activiti.org
当然,对于规则引擎部分,您可以使用 Drools。
看看StateBuilderJava,它是一个状态机代码生成器,它将状态机的 XML 描述转换为 Java 状态模式的扩展版本。它支持所有 UML 语义:状态机可以是分层的、并发的和异步的。
每个测试场景都可以使用状态机 Xml 描述建模,代码生成器代表您编写状态模式,如果手动完成,这将是乏味且容易出错的。
另一个优点是使用图形工具可视化和编辑测试场景。这允许快速实施和记录一组测试场景。在示例中,编写了 XMPP 客户端的测试套件来说明如何使用状态机代码生成器轻松快速地编写复杂的测试场景。
免责声明:我是这些软件的作者。
我用过activiti。它是最好的框架。它是一个轻量级的工作流和业务流程管理 (BPM) 平台。开源并适用于任何 Java 平台或云。所需要的只是 BPMN 、 Maven 、 Spring 和 Activiti 的知识。