如题,已经建设好esb产品,再建立一套bpm,来完成多事务服务的编排,形成的新服务是发布在esb还是直接对外发布?一般esb如何与bpm进行整合。哪种方式好点。
所有的服务都是为了支撑某项或者某类业务,他不会独立存在。ESB的作用是把服务提供者和消费者进行松耦合,由ESB来完成路由,协议转换,内容格式转换。无论是以前的SOA还是现在的微服务或者API生态圈,其本质都是把以前大而全的应用架构,变成通过服务或者API进行编排,最后支撑某项业务,或者某项能力支撑。那么这个编排,可以是BPM,也可以是ESB。不过两者侧重点不同,ESB偏重服务集成,里面基本是自动化的服务,当然BPM里面的straight through process (STP)也可以类似ESB。而BPM含有工作流(包括很多人工参与的活动),也可以包含内容或者事件驱动的离散非结构话流程(比如Case)。
因此需要看具体项目的需求,如果是服务集成为主,而且已经有了ESB, 那么应该是ESB驱动BPM。如果是没有ESB,想快速启动一个服务集成,那么可以用BPM STP。如果是业务驱动中间又部分需要和后台服务进行整合,那么应该是BPM驱动ESB.