API管理之前,我们得先来说说SOA(Service-oriented Architecture,面向服务的架构)。 简单地说,一个企业建设了许多业务系统,每个系统都拥有自己的数据,那么如何将这些分散各处的数据打通,从而可以进一步加以利用呢?这就涉及企业应用集成(EAI,Enterprise Application Integration)这个领域了。
传统上,企业应用集成很多是利用ETL(Extract-Transform-Load,抽取转换加载)工具,把不同系统里的数据经过抽取、过滤、转换,最终导入到一个集中的数据仓库里,然后再做整合应用。但是这种做法也存在很多问题。
一是只认数据,没有脑子。在数据汇集的过程中,只能针对数据格式本身进行一些处理,很难利用业务系统原有的业务逻辑。
二是随着各个系统数据体量越来越大,把所有系统的数据都汇到一个数据仓库里就变得越来越困难。
为了解决这样的问题,SOA架构应运而生,就是企业中每个系统都对外发布自己的服务,那么系统之间的集成就可以通过调用对应系统的服务来解决了。
但是,随着企业拥有的系统越来越多,这种系统之间相互调用服务接口的集成方式又遇到了新麻烦。
可能每两个系统之间都需要相互调用服务,最终就会演变成一个复杂的蜘蛛网结构,使得整个集成变得越来越脆弱,难以维护。
为了解决这个新问题,ESB(Enterprise Service Bus,企业服务总线)的概念又被提出来了,就是把每个系统的服务接口都对接到企业服务总线上,这样在系统集成的时候,只需要跟总线打交道,而不需要直接跟所有其他系统打交道了,从而大大简化了集成的复杂度。
我们说回Mulesoft,在SOA领域里,你可以把Mulesoft当作企业服务总线来用,把所有业务系统的服务都注册到Mulesoft,在应用集成的时候只跟Mulesoft打交道就可以了。