自己對WSO2 ESB 見解


這周沒想到要更新什么內容,就把我最近工作接觸的WSO2 ESB簡單介紹下吧。

   

前提:

一切文檔,知識都要與官方文檔為准。

WSO2 ESB:

http://wso2.com/products/enterprise-service-bus/

WSO2 ESB 文檔:

https://docs.wso2.com/display/ESB481/WSO2+Enterprise+Service+Bus+Documentation

   

我這篇博客不作具體做一步步的教程,需要學習的可以參考官方文檔一步步的入手。

   

  1. 那什么是WSO2 ESB?

       

    我也不想去copy什么是ESB。我舉一個例子吧。

       

    想想在一個很大的公司,這個公司有2個大的部門。部門A,部門B。

       

    部門A有10個web service,5個是WCF開發的基於SOAP,安全校驗是A(比如 SAML Token吧),5個是restful安全校驗是B.

       

    部門A有5個web service,3個是JAVA開發的基於SOAP,安全校驗是A(比如 SAML Token吧),2個是restful安全校驗是C.

       

    然后前段業務需要快速開發移動APP,這需要后端service是restful風格的。由於移動變化快,需要不用的需求,需要更多數據?

    后端的web service僅僅提供最為基礎的數據,雖然全,但是沒有根據前段的業務去優化數據。

    有一天,移動APP需要調用部門A的service1(SOAP 風格)和service2(restful)和們部門B的service3(SOAP)去得到相關數據,然后需要調用部門A的service4(SOAP) 去更新數據。

    這樣有2中方案:

     

    方案1:移動APP就需要處理很多,需要考慮不同service的協議和安全校驗。

    方案2:要求后台開發一個service為移動app提供服務。

     

    顯然方案1把太多的業務邏輯放在了前端。方案2,適應不了快速的APP開發。

       

    那么ESB就出來了,它是作為一個中間層把移動app和后端的web service分開來。

    ESB會提供web sevice與移動app打交道,這樣就為前端提供一個新的service,專門滿足前端APP

    的需求。統一的協議,統一的安全校驗。

    這樣在ESB內部就可以處理調用后端service的邏輯。

       

  2. 一個簡單的例子。

    還是上面的那個例子:

    有一天,移動APP需要調用部門A的service1(SOAP 風格)和service2(restful)和們部門B的service3(SOAP)去得到相關數據,然后需要調用部門A的service4(SOAP) 去更新數據。

       

    這樣移動APP說,我需要一個新的service,那么定義好需要那么得到那些數據,需要更新那些數據,需要什么協議(soap,restful),需要數據的格式是什么(xml,json)。。。。

       

    ESB就新建一個service提供這種服務。

    這ESB內部,得到移動app傳來的數據,比如是xml把,然后把xml轉換成soap或者restful,然后再ESB內部調用后端service,然后把數據在轉換好,發給移動APP。

       

    WSO2 ESB提供很多組件,去處理請求。它可以不移動app發過來的任何格式,轉換成任何格式,post到后端的service,得到數據后,再把數據轉換成符合移動app的格式。

       

    在WSO2 esb可以用腳本語言,JS,python,ruby處理不同格式之間的轉換。也可以用

    org.apache.axiom.om (java)。。

       

  3. 全棧工程師?

    這樣開發移動app的可以在界面用js來寫,在服務端可以node.js來寫,在后端的WSO2 ESB可以用js來寫web service來得到數據。

    這樣主要后端提供好基礎數據,前端就可以全棧快速的開發滿足需求的功能和產品。

       

   

這些僅僅是我的簡單理解和隨筆。工作中,我是在一個后端WCF webservice team的,最新我們可能准備使用WOS2 ESB來為移動app提供快速的服務,所以有機會使用WSO2 ESB來做前期的調查。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM