EnjoyingSoft之Mule ESB開發教程第二篇:Mule ESB基本概念

Mule ESB在衆多開源的ESB中處於領先者的地位,MuleSoft公司也做爲獨角獸,2017年在紐交所上市。咱們做爲MuleSoft的合做夥伴也有幸參與其中,在六年多的時間裏,咱們使用Mule ESB實施,包括使用Mule ESB企業版實施,或者在社區版基礎上擴展,使用Mule ESB社區版實施,幫助國內衆多的企業成功上線SOA項目。java

使用Mule ESB的過程當中,體會到其快速的開發效率,以及優秀的架構設計。同時也深感國內這塊資料很是稀少,因此計劃使用8篇文章來寫Mule ESB的基礎課程系列。程序員

1. 使用Anypoint Studio開發

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代碼的渲染。

2. Mule ESB Application Structure - Mule ESB應用程序結構

咱們來看一個基於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文件。

3. Mule ESB Application總體構造

咱們在上一篇文章已經對Mule ESB Application有了一個初步的認識,總結起來,Mule的應用程序就是由一個或者多個Mule Configuration File組成,每一個Mule Configuration File裏面能夠放置一個或者多個Flow。每個FLow又是由Connector和Processor等組成。

而Flow是Mule的核心概念,下圖展現了Flow的結構。

4. Mule ESB構造元素 - Flow

Mule ESB的應用程序一般是設計用來接收和處理消息。接收消息咱們一般使用Connector Source來作,而處理消息一般使用一個或者多個Processor來作。Flow就是用來組織Connector和Processor的組。在一個Flow中,你能夠將多個單獨的Mule元素連接起來,用來實現接收,處理,過濾,路由消息等功能。

Flow實際就是上圖的邊框。實際還有Sub Flow的概念,主要用於Flow的公用,這些不展開講述。

5. Mule ESB構造元素 - Connector

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是用來發送消息的組件。

6. Mule ESB構造元素 - Processor

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 BlogsCSDN簡書

訪問EnjoyingSoft 網站,獲取更多Mule ESB 社區版 實施幫助。

歡迎轉載,但必須保留原文和此段聲明,且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利。

相關文章
相關標籤/搜索