业务流程管理系统抽象

Business process management systems abstraction

有一些不错的 BPM 软件:jBPM、Bonita BPM、Camunda BPM、Activity 等等。

它们中的大多数支持一些 API 与它们集成,例如 jBPM 提供 KieServicesClient 接口和实现来使用它。它可以工作,但只能与 jBPM 一起工作。和其他人一样。

我希望我的应用程序能够在具体的 bpm 引擎之间切换。有标准吗? bpm 引擎中使用的流程、任务和其他事物的抽象级别?一个界面适用于所有这些。

没有涵盖 API 的标准。但是,如果您选择的流程引擎遵循 BPMN 2 standard(而且应该如此!),那么它所操作的对象模型和术语将被标准化。因此,API 应该非常相似。

您可以抽象出架构最佳实践所使用的引擎,例如 loose coupling, which nowadays likely leads you to using the REST APIs of the products. These should be mature, following de facto standards (https://martinfowler.com/articles/richardsonMaturityModel.html)。

比较

使用 BPMN2 标准,松散耦合,与技术无关,最好通过 REST 并避免在客户端使用专有(服务器端)对象以创建良好的抽象。