SOA、ESB、BPM的关系

作者:李小翀
链接:https://www.zhihu.com/question/20028379/answer/31329548
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

SOA、ESB、BPM的关系

SOA
SOA(Service-Oriented Architecture)面向服务的架构,其中的Service是灵魂,是核心。
SOA的目标是构建一个松散耦合的系统架构,可以将企业的应用程序及资源包装为一个个的商业服务,按照特定的合约及规约来请求和使用服务。

ESB
企业服务总线(ESB-Enterprise Service Bus)本质上是一个以消息通信为中心的底层基础设施,它负责治理企业的所有应用服务,以连接为导向,为服务请求者与服务调用者搭建起沟通的桥梁。包括服务连接、数据转换、事件转换、服务路由等功能。 企业服务总线是保障SOA有效落地的底层基础设施,没有ESB,SOA就只会是一片飘在天上的云彩,最终会烟消云散。因此企业要基于SOA的架构方法论和思想去搭建智慧IT生态群落,就首先要搭建好底层的基础设施。

BPM
业务流程简单来说就是业务的处理流,或者说业务的流转过程。这里重要的不是“流程”这两个字,而是“业务”这两个字。

在企业内部,核心业务如下:
产品和服务的设计与开发
产品和服务的市场营销与销售
产品和服务的交付
客户服务管理

从上面我们知道了一个企业的核心业务,那么这些业务总要有对应的部门去处理,例如产品研发部负责新产品的设计及研发,市场部负责新产品的推广和宣传,销售部负责新产品的销售,售后部负责产品售后的相关服务,客户部负责客户的管理等,这些部门可以说就是企业的核心部门,是为企业创造价值带来利润的部门。这些部门的工作都是有前后的逻辑关系的,或者说是互相作用的,那么把这些部门的工作按照前后的逻辑关系和互相作用原理,串在一起就形成了一个流,这个流就是企业的核心业务流程,也是企业的价值链

SOA与ESB的关系
ESB是保障SOA有效落地的底层基础设施。SOA关注的是企业的整体IT架构,关注企业的各个IT系统怎样交互,它给出这些IT系统交互的策略与规约。而ESB关注的是具体的实现,即提供各个IT系统交互的具体实现,例如一个基于C语言开发的HR系统通过ESB与一个基于Java语言开发的财务系统进行服务的交互。

SOA与BPM的关系
SOA是从IT架构着手,按照服务的思想来分析及架构企业的IT系统。而BPM是从业务或者说企业的经营管理方面着手,从流程的角度出发,建立并持续改进企业流程。BPM可以及时响应企业的组织架构、业务交互及运营模式的灵活多变,并且可以满足企业内部、企业与伙伴之间的业务交互需求。

小结:
SOA/ESB的目标与BPM的目标是一致的,即都是通过解决企业的业务交互问题,来提升企业对环境及市场变化的响应能力,进而提高企业的敏捷性。只不过两者切入的角度不同, SOA是从企业的IT架构着手,建立起一个整合业务应用的服务平台,而BPM则是从企业的业务运营着手,解决IT与人、人与人、业务与业务的交互,建立起敏捷的、端到端的流程体系。

没有SOA/ESB之前,BPM产品已经得到了很多成功应用,只不过当遇到跨系统的交互时,采用传统的EAI的方式来解决交互问题,有了SOA/ESB,则可以通过标准的服务来直接实现交互。

基于SOA架构建立的BPM更能展现整合能力及系统的弹性;从另一个角度来看,理想的SOA架构,也需要BPM支撑,SOA中的服务,需要BPM来进行串接。而且通过业务流程梳理,识别与抽象出的业务服务,才是最有价值的服务,单纯的为了解耦而抽象出的技术连接服务,提供的价值是非常有限的。

SOA不限定采用何种技术,只要是开放、标准的技术即可,比如JMS、RESTful Service、Axis2、CXF等。

猜你喜欢

转载自blog.csdn.net/mouzu/article/details/78953105
ESB