有一些不错的BPM软件:jBPM、Bonita BPM、Camunda BPM、Activity等。
它们中的大多数都支持一些 API 来与它们集成,例如 jBPM 提供 KieServicesClient 接口(interface)和实现来使用它。它可以工作,但只能与 jBPM 一起工作。对其他人也是如此。
我希望我的应用程序能够在具体的 bpm 引擎之间切换。有一个标准吗? BPM 引擎中使用的流程、任务和其他事物的抽象级别?一个界面适用于所有这些。
最佳答案
没有涵盖 API 的标准。但是,如果您选择的流程引擎遵循 BPMN 2 standard (而且它应该!)那么它所使用的对象模型和术语将被标准化。因此,API 应该非常相似。
您可以抽象架构最佳实践所使用的引擎,例如 loose coupling ,现在可能会引导您使用产品的 REST API。这些应该是成熟的,遵循事实标准( https://martinfowler.com/articles/richardsonMaturityModel.html )。
例如比较
- jBPM REST API (例如 https://aboullaite.me/using-jbpms-restful-api/ )和
- Camunda REST API (例如 https://www.youtube.com/watch?v=ypX90aQScOQ )你可以明白我的意思。
使用 BPMN2 标准、松散耦合、技术不可知论,最好通过 REST 并避免在客户端使用专有(服务器端)对象来创建良好的抽象。
关于jbpm - 业务流程管理系统抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58560121/