1. 程式人生 > >使用一年ESB感受

使用一年ESB感受

  ESB(Enterprise service bus)-----企業服務匯流排的簡寫。

  目前使用的是openESB,Sun公司的開源社群提供的,整合在netbean中,使用glassFish伺服器。

  先來說一下我自己對ESB的認知:我更喜歡把ESB從webservice的角度去理解,webservice是使用SOAP、XML、UUID、WSDL相結合的方式來解決不同應用間通訊的,屬於一種系統與系統直接的直接關聯,而ESB則可以看作一箇中轉站,用於接收上一層傳送的資訊,然後處理並轉發到下一層。而這樣做的好處是: 若多個系統間通訊時,使用傳統的webservice,將可能會出現如下情況。

     

  而是用ESB的方式,則會更加的清晰:

  

  並且,由於兩個系統之間不需要直接進行互動,也避免了因為兩個系統之間的介面不一致而需要在兩個系統之中進行協調的尷尬,在ESB中A系統傳輸的內容可以和B系統所接收的內容形式上不一致,但可以通過ESB中間的邏輯進行修改賦值,這樣一來兩個系統只需要關注自身的業務和暴露的介面就可以了,而不用去考慮接收資訊或傳送資訊的系統。

  今天出去面試了,面試的公司做的開發也有ESB部分,他們的ESB部分是自己開發的,我跟願意稱之為EAI(Enterprise Application Integration)企業應用整合。他們分為外網和內網兩個模組,內網使用的是xml的webservice方式實現,而外網的訪問則是通過他們自己開發的ESB部分進行分發,在這裡ESB部分還包括了防火牆的作用。

  在OpenESB中,可以方便的使用格式轉換、協議轉換、代理、編排、安全控制、監控、不支援高併發,類似於路由器維護著一張路由表進行路由轉發,其中的編排可以理解為服務編排:原本A、B、C三個服務,A呼叫B,而B需要C中的東西,則會形成一個A-->B-->C的訪問串,而在ESB中則不會形成串。

  阿里的dubbo,使用的是服務註冊的方式,註冊中心即dubbo內部只儲存了介面的地址,A應用通過dubbo獲得地址資訊進行直接訪問,其優點是適用於壓力較大的系統,但不利於服務編排和協議轉換,這兩方面還是需要各個業務系統各自實現。

      ESB和dubbo兩者之間的側重不同,前者更注重於服務編排,並且內部使用的是xml的形式,所以效率不高,不利於高併發,而後者注重服務的治理,提高服務之間訪問的效率,而服務的編排則需要服務自身實現。

      這是我找到的一篇介紹ESB和dubbo的部落格。