我们可以肯定地说,如果ESB提供了业务流程功能,那么它就有资格成为BPM的实现?

我了解BPM的目的不同,那就是对某些业务流程进行建模,并且可以通过任何简单的Java/J2EE应用程序,复杂的SOA应用程序或某些声称提供BPM的应用程序来实现这些业务流程的实现。那正确吗?

最佳答案

第一个问题:

您的声明对仅建模请求-响应交互的某些业务流程有效。

但是,对于复杂的业务流程,我们需要考虑业务流程功能之外的其他功能。在这里,我列出了一些这样的方案。

  • 让我们采取一个需要长时间维持其状态的业务流程。我们通常称它们为有状态或长期运行的业务流程。为了支持这类业务流程,应该有一个状态持久性机制。此功能与业务流程功能无关。
  • 考虑一个业务流程,该流程需要一些补偿功能。在那种情况下,诸如WS-BPEL之类的一些业务流程建模标准已经定义了它的compensation mechanisms。因此,除了业务流程功能之外,还需要考虑其他一些功能。

  • 第二个问题:

    是的。但是与您提到的实现机制相比,BPM引擎有很多优点。

    一个优点是,不可能达到BPM引擎从Java应用程序提供的建模抽象级别。假设我们使用JAVA应用程序来实现业务流程逻辑,并且该业务流程已投入生产。假设我们需要更改其合作伙伴服务的端点URL。在这种情况下,现在需要修改,重新编译和重新部署到生产系统中的业务流程实现。如果我们使用诸如WS-BPEL之类的业务流程语言标准来实现业务流程,则可以非常轻松地更改业务流程配置并将其推回生产环境。这样可以提高效率并降低业务维护成本。
    同样,还有其他原因,例如容易适应性和灵活性。

    关于soa - BPM与ESB-编排?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10108465/

    10-10 18:52