您正在寻找的区别更“模糊”,它是关于这些工具的焦点,它们的预期最终用户以及它们构成的逻辑类型.这是我谦虚地尝试解释ESB和BPM之间的区别:
重点和目标
> ESB更侧重于实现互操作性,关注点分离和技术细节的抽象.它具有更多的基础架构角色,它还关注监控,可扩展性性能,可用性,状态延迟.在ESB中,您的目标是通过抽象所有技术细节并公开可重用功能来启用联合可互操作层的创建.
> BPM更注重业务,在完美的世界场景中,由业务人员和业务分析师自己管理,无需了解任何技术细节即可修改流程. BPMN语言完全与工作流程有关,旨在实现业务友好.在BPM中,您的目标是通过使用这些构建块来实现实际业务流程.
目标用户
> ESB服务将由架构师和托管人管理(仍然根据业务分析师的要求).
>理想情况下,BPM工作流程将由业务人员,业务分析师等进行管理和修改.
组合逻辑
>在BPM中,合成(工作流程)包括面向业务的任务(例如,检查客户忠诚度级别,如果用户X批准并且他的级别为金牌,则给予折扣).
>在ESB中,组合通常包含更多技术服务(例如,从数据库中检索此项,与此组件中的组合,使用xslt进行转换).可以像BPM那样实现整个工作流程的编排任务,这完全是以业务为中心的,没有任何可重用性,但是您没有方便的工具和可视化来轻松地委派管理这种商业逻辑对商业人士而言.
综上所述,理想情况下,如果您有一个成熟的SOA,您将在一个或多个ESB和相应的服务库存之上有一个BPM层,它具有:
>底层的实体和公用事业服务(在ESB中实施)
>任务,在某些情况下,组成所述实体和公用事业服务的Orchestrated Task服务(在ESB中实现)
>在ESB之上的BPM层中使用和重用所有这些服务的工作流.
我希望这能让你初步了解这些差异.如果您需要更多信息,请随时询问.