目录html
Mule ESB在众多开源的ESB中处于领先者的地位,MuleSoft公司也做为独角兽,2017年在纽交所上市。咱们做为MuleSoft的合做伙伴也有幸参与其中,在六年多的时间里,咱们使用Mule ESB实施,包括使用Mule ESB企业版实施,或者在社区版基础上扩展,使用Mule ESB社区版实施,帮助国内众多的企业成功上线SOA项目。java
使用Mule ESB的过程当中,体会到其快速的开发效率,以及优秀的架构设计。同时也深感国内这块资料很是稀少,因此计划使用8篇文章来写Mule ESB的基础课程系列。程序员
Anypoint Studio是 MuleSoft提供的基于 Eclipse架构的集成开发环境 (IDE) 。使用Anypoint Studio,程序员能够几分种内轻松地建立出集成化的流程图,并使用图形化转换器来完成数据的映射。这里的映射就是指消息转换,消息转换是ESB很重要的功能。Anypoint Studio的图形化转换器功能很是强大,能够全方面的转换数据,包括数据结构,数据类型,数据内容的转换等。注意,图形化转换器是企业版才有的功能,社区版则须要自行开发,咱们在社区版作过相似的图形化转换工具。api
Anypoint Studio可让开发人员用拖拽的方式把链接器(Connectors)、转化器(Transformers)以及其余Processor放到开发环境的画布上,Anypoint Studio会自动把图形化的流程界面转化为后台的XML配置文件。浏览器
Anypoint Studio默认集成Mule ESB企业版运行时,咱们也能够在Anypoint Studio上集成社区版运行时,具体可参考上一篇文章。数据结构
下图是Anypoint Studio的各个区域说明。架构
包资源浏览器app
和Java工程相似,管理工程项目的资源。编辑器
画布工具
主要的可视化开发环境,经过拖拽的方式组织逻辑,定义属性。
工具箱
包括Connector,Processor等开箱即用的组件。
链接探索器
这里能够展现全局的链接器配置属性。
控制台
和Java工程同样,Console输出控制台。
在主界面上有三个Tab页签,其中图形化设计器和XML编辑器是能够互相切换的。因此你可使用图形化的拖拽开发,熟悉Mule的工程师也能够直接使用XML编辑器来完成工具。须要注意的是,有些属性在图形化界面是没法设定的,这个时候你只能在XML编辑器中完成设定工做。好在XML编辑器也提供代码上下文语法提示,能够方便开发工程师输入XML元素。
Message Flow
图形化设计器页签,在这里能够拖拽组件,编辑组件属性。
Global Elements
全局元素列表页签,所谓全局元素,能够理解成这些元素是全局共享,能够被其余元素所引用。
Configuration XML
点击此页签,切换到XML编辑器。实际上,图形化界面就是对XML代码的渲染。
咱们来看一个基于Maven项目,使用典型的archetype构建的应用程序的目录结构,能够看到通常分红src/main/java,src/main/resources,src/test/java,src/test/resources等目录。每一个目录的做用Java程序员都很清楚。
咱们再来看看Mule ESB Application的结构是什么。从图示能够发现,Mule的应用程序和Java应用程序几乎一致,其中有几个新目录着重介绍一下。
src/main/app
这个目录就是放置Mule的配置文件,也就是Mule Configuration File。打开Mule Configuration File就会开启设计器界面。
src/main/api
这个目录是放置Restful API的定义文件。
src/main/wsdl
这个目录是放置SOAP Webservice的WSDL文件。
咱们在上一篇文章已经对Mule ESB Application有了一个初步的认识,总结起来,Mule的应用程序就是由一个或者多个Mule Configuration File组成,每一个Mule Configuration File里面能够放置一个或者多个Flow。每个FLow又是由Connector和Processor等组成。
而Flow是Mule的核心概念,下图展现了Flow的结构。
Mule ESB的应用程序一般是设计用来接收和处理消息。接收消息咱们一般使用Connector Source来作,而处理消息一般使用一个或者多个Processor来作。Flow就是用来组织Connector和Processor的组。在一个Flow中,你能够将多个单独的Mule元素连接起来,用来实现接收,处理,过滤,路由消息等功能。
Flow实际就是上图的边框。实际还有Sub Flow的概念,主要用于Flow的公用,这些不展开讲述。
Mule的Connector是其很是优秀的功能,数百个开箱即用Connector能够帮助开发者链接不一样的应用。从常见的HTTP,TCP,FTP,LDAP等协议,Hadoop大数据,到大型的商用系统SAP,Oracle,Salesforce,Mule都提供了相应的Connector。
Connector又分红Source Connector(又称为Inbound Connector)和Target Connector(又称为Outbound Connector)。
Source Connector用来接收消息,能够理解成监听器,而Target Connector是用来发送消息的组件。
Mule的Processor包含的内容更普遍,从Studio右侧的工具箱能够看到不少的控件元素,除去上文讲述的Connector,余下的基本均可以概括到Processor。
Processor大概能够分红几类。
Transformers
能够称做转换器,用来转换消息的类型,结构和内容,好比将XML换成JSON。
Components
组件,可使用Java或者脚本语言组件,好比JavaScript等。这些组件使用程序语言来描述商业逻辑。
Flow Control
控制消息的流向,好比消息的路由,消息的分割聚合等。
Scopes
经过Scope,咱们能够改变内部Processor的行为特征。
Filters
过滤消息,咱们能够定义规则过滤非法的消息。
下图总结了本文所讲述的内容,该Flow包含了上述所说的几类Processor。
本文已经讲述了Mule的基本概念,包括Mule ESB Application,Flow,Connector,Processor等。贯穿其中的就是消息,也就是Mule Message。Mule Message是Mule开发中很是重要的概念,下篇文章将着重讲解Mule Message。
本文同步发文于EnjoyingSoft Blogs ,CSDN,简书
访问EnjoyingSoft 网站,获取更多Mule ESB 社区版 实施帮助。
欢迎转载,但必须保留原文和此段声明,且在文章页面明显位置给出原文连接,不然保留追究法律责任的权利。