在了解ESB之前,需要先了解另一个概念:SOA,全称Service-Oriented Architecture,翻译为面向服务的架构,是一种软件系统结构体系。一种将应用程序构建为松散耦合、可复用服务集合的设计理念,旨在通过标准化接口实现系统间的灵活集成与协同。而ESB就是SOA体系架构中的一个重要的实现。
ESB,全称Enterprise Service Bus,翻译中文名叫企业服务总线,用于连接企业内不同的应用程序、服务和系统,实现它们之间的通信、数据交换和协同工作。简单粗暴来说就是类似两个系统之间实现数据交互的一种方式。下面用个图简单描述一下:

图像资料来源Mule:What is an ESB? | MuleSoft
企业中存在各种系统,如:ERP、MES、SRM、CRM等,在实际运用过程中,这些系统需要打破数据孤岛,解除部门墙,实现企业内部数据的互联互通。所以业务数据会在这些系统中流转,按传统的系统间的数据交互方式,采用点到点实现,这样就会形成网状结构,如图:

接口或者服务在企业中是很重要的数字资产,过于混乱复杂的网状结构不利于企业管理和利用这些数字资产。在整个结构中,当一个系统提供的接口或服务发生变化,其他系统也需要相应的进行调整,而有新的系统建设时,其他相关的系统也需要做出调整。但实际情况是,在企业完成系统建设后,要对系统进行二次开发比较困难,开发人员离场,项目资源短缺,导致系统迟迟无法集成。同时企业系统的建设采用的都是购买第三方已经完成的系统,存在采用不同的语言和架构开发的情况,如ERP直接采购的sap来完成,OA可能是使用的钉钉,SRM使用的java来完成开发,CRM却是使用C#语言,所以在系统集成上也会存在各样的问题。
这个时候就需要有一个系统在中间承担桥梁的角色,来完成各系统之间的接口或服务调用。那么这个系统就是ESB系统的建设,ESB在企业系统建设架构中的位置如图:

ESB系统充当中间信使,两个系统的数据交互,都有ESB来完成。对应的系统只需要对ESB提供服务,然后由ESB来完成接口的暴露,需要服务的系统调用ESB暴露的接口,这样就能完成系统的调用。