目錄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 社區版 實施幫助。
歡迎轉載,但必須保留原文和此段聲明,且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利。