1. 程式人生 > >ESB---企業服務總線

ESB---企業服務總線

bubuko 路由轉發 清晰 路由器 pen 圖片 傳輸 業務 外網

ESB(Enterprise service bus)-----企業服務總線的簡寫。

  目前使用的是openESB,Sun公司的開源社區提供的,集成在netbean中,使用glassFish服務器。

  先來說一下我自己對ESB的認知:

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

技術分享圖片

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

  技術分享圖片

  並且,由於兩個系統之間不需要直接進行交互,也避免了因為兩個系統之間的接口不一致而需要在兩個系統之中進行協調的尷尬在ESB中A系統傳輸的內容可以和B系統所接收的內容形式上不一致,但可以通過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---企業服務總線