我们可以有把握地说,如果ESB提供了Orchestration功能,它是否有资格成为BPM的实现? 我知道BPM有不同的目的,即建模一些业务流程,这些业务流程的实现可以通过任何简单的Java / J2EE应用程序
我知道BPM有不同的目的,即建模一些业务流程,这些业务流程的实现可以通过任何简单的Java / J2EE应用程序,复杂的SOA应用程序或某些应用程序来完成,即我提供BPM.是对的吗?
第一个问题:您的声明仅适用于仅模拟请求 – 响应交互的某些业务流程.
但是当谈到复杂的业务流程时,我们需要考虑除编排功能之外的其他一些功能.在这里,我列出了几个这样的场景.
>让我们采取一个需要长期维持其状态的业务流程.我们通常将它们称为有状态或长期运行的业务流程.为了支持这些业务流程,应该有一个状态持久性机制.此功能与业务流程功能无关.
>考虑一个需要一些补偿功能的业务流程.在这种情况下,一些业务流程建模标准(如WS-BPEL)已定义其compensation mechanisms.因此,除了编排功能外,还需要考虑其他一些功能.
第二个问题:
是.但与您提到的实现机制相比,BPM引擎中有几个优点.
一个优点是,不可能从Java应用程序实现BPM引擎提供的建模抽象级别.假设我们使用JAVA应用程序来实现业务流程逻辑,并且业务流程已投入生产.假设我们需要更改其合作伙伴服务的端点URL.在这种情况下,现在需要修改,重新编译业务流程实施并将其部署回生产系统.如果我们使用业务流程语言标准(如WS-BPEL)实现业务流程,我们可以非常轻松地更改业务流程配置并将其推回到生产环境中.这提高了效率并降低了业务维护成本.还有其他原因,如容易适应性和灵活性.