soa - 企业服务总线与 BPM

标签 soa esb business-process-management

我使用过的 ESB 和 BPM 工具都接受了一些输入,调用多个步骤来完成一项任务。我所看到的不同之处在于,在 ESB 中,一切都是自动化的——该过程是自动触发的,涉及许多外部调用/数据被转换并发送到适当的系统以供使用。在 BPM 系统的情况下,流程要么手动启动,要么自动启动,它涉及一系列决策步骤,其中一些涉及手动决策步骤。一旦这些步骤完成,任务就会被标记为完成。是否可以解释 BPM 和 ESB 之间的明显区别?

最佳答案

我认为您是对的,使用 BPM 可以实现的任何事情都可以通过 ESB 和一些启用手动步骤调用的 Web UI 来实现。但是,如果您仅从技术角度进行严格审查,则确实如此。在更成熟的 SOA 中,其中涉及许多不同的团体和角色,ESB 和 BPM 都有其独特的位置。

您正在寻找的区别更加“模糊”,它与这些工具的重点、它们的预期最终用户以及它们构成的逻辑类型有关。这是我在解释 ESB 和 BPM 之间的区别时的谦虚尝试:

重点和目标

  • ESB 更侧重于实现互操作性、关注点分离和技术细节抽象。它具有更多的基础设施角色,它还关心监控、可扩展性能、可用​​性、状态延迟。在 ESB 中,您的目标是通过抽象所有技术细节并公开可重用功能来创建联合互操作层。
  • BPM 更侧重于业务,在完美的世界场景中,它由业务人员和业务分析师自己管理,他们修改流程而对任何技术细节一无所知。 BPMN 语言是关于工作流的,旨在对业务友好。在 BPM 中,您的目标是通过使用这些构建块来实现真正的业务流程。

  • 目标用户
  • ESB 服务将由架构师和保管人管理(仍然,根据业务分析师的要求)。
  • BPM 理想情况下,工作流将由业务人员、业务分析师等管理和修改。

  • 组合逻辑
  • 在 BPM 中 组合(工作流)由面向业务的任务组成(例如,检查客户忠诚度级别,如果用户 X 批准并且他的级别为金级,则给他折扣)。
  • 在 ESB 中 组合通常包含更多的技术服务(例如,从数据库中检索它,与来自该组件的组合,用 xslt 转换)。有可能有一个协调的任务,以 BPM 的方式实现整个工作流,完全以业务为中心,没有任何可重用性,但您没有方便的工具和可视化来轻松委派管理将此业务逻辑介绍给业务人员。

  • 综上所述,理想情况下,如果您拥有成熟的 SOA,您将在一个或多个 ESB 和相应的服务 list 之上拥有一个 BPM 层,这些服务 list 具有:
  • 实体实用程序 服务 在底部(在 ESB 中实现)
  • 任务 ,在某些情况下 编排任务服务 组成所述实体和实用程序服务(在 ESB 中实现)
  • 工作流程 在 ESB 之上的 BPM 层中使用和重用所有这些服务。

  • 我希望这能让您对差异有一个很好的初步了解。如果您需要更多信息,请随时询问。

    关于soa - 企业服务总线与 BPM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34372004/

    相关文章:

    java - 服务器端的轻量级规则引擎,用于服务器功能编排

    java - 选择哪个工作流引擎?

    .net - 当 IAmStartedBy 消息出现在 IHandle 消息之后时,NServiceBus Saga 中会发生什么?

    ssl - 使用 mule 使用 HTTPS

    java - 如何在 Mule ESB 中持久化包含 Java 消息的队列?

    javascript - WSO2 ESB 迭代计数器

    安卓mp3解析

    mysql - 如何将bonita bpm与mysql数据库连接?

    architecture - n 层软件设计是 SOA 的子集吗?

    wcf - SOA,请求/响应服务层,接受和返回请求/响应与数组还是请求/响应?