我们使用 Apache camel 作为工作流引擎。首先我们有一个 WebService 并等待响应并基于响应调用 WebService 2 或 WebService 3。它是一个纯工作流,并且有几个这样的工作流步骤。我有更少的机会在 BPM 产品上工作,如 JBOSS BPM 等。除了长期运行和支持人工任务之外,我们必须选择 BPM 产品的任何其他充分理由吗?如果我们的项目不需要长时间运行和人工任务支持,我们可以使用 Camel 或 JBOSS FUSE 来编排业务流程吗?
谢谢,狮子座。
我们使用 Apache camel 作为工作流引擎。首先我们有一个 WebService 并等待响应并基于响应调用 WebService 2 或 WebService 3。它是一个纯工作流,并且有几个这样的工作流步骤。我有更少的机会在 BPM 产品上工作,如 JBOSS BPM 等。除了长期运行和支持人工任务之外,我们必须选择 BPM 产品的任何其他充分理由吗?如果我们的项目不需要长时间运行和人工任务支持,我们可以使用 Camel 或 JBOSS FUSE 来编排业务流程吗?
谢谢,狮子座。
是的.. 正如 Antoine 提到的,从技术角度来看,它可能听起来很相似,但是如果您使用 Camel 作为状态机来移动数据,那么您根本就没有执行 BPM,那么您离 BPM 还很远。
BPM 在简单的状态机之上添加了更多内容。只是从您用于建模业务场景的语言开始到随 BPM 一起提供的工具,如果您只使用骆驼,您将失去很多。我可以从技术角度理解您的问题,但从更广泛的公司角度来看,您无法比较解决方案。
我认为您需要问自己以下问题:
1)您是否有兴趣与非技术人员共享调用哪些 Web 服务(此时您的骆驼路线)?
2) 您是否有兴趣获取审计日志和仪表板之类的屏幕来分析您调用以做出业务决策的服务的情况?
3) 您的路线是否会因业务决策而发生很大变化?例如,因为您的公司正在根据合作伙伴关系或成本更换供应商,所以调用不同的 Web 服务?
4) 5 年内你的系统交互(和骆驼路线)会有多大?
5) 您是否需要履行标准或法律规定?
如果最后 5 个问题的答案是否定的,那么使用骆驼并将 Web 服务编排保持在骆驼路线中是很好的,因为它只是保持代码清洁和可维护的一种方式,但它总是对你的其余部分隐藏公司。
狮子座,这是一个非常有趣的问题。我碰巧有使用 ESB、Apache Camel 和 BPM 系统的经验。作为全面披露,我是 Intalio, Inc. 的首席架构师。
Apache Camel 是处理数据来回流动的绝佳解决方案。正如您所指出的,众所周知,BPM 系统会增加对人工任务的支持。Intalio|bpm 还增加了对使用合作伙伴链接的异步流程复杂编排的支持。Intalio|bpms(以及其他解决方案)还可以监控流程实例、捕获 KPI 并将其作为仪表板提供给用户。您还可以通过使用允许业务输入条件或计算以更改流程数据(例如,实时更改特定供应商的折扣率)的业务规则来提高运行时的灵活性。
在设计时,BPM 套件围绕更好地记录流程并让业务和 IT 更好地协作的想法添加了许多功能。一些套件针对业务用户,一些更面向 IT,但它们通常定义提供对流程的高级理解的工件。
我希望这可以帮到你。