2012-08-09 70 views
4

我目前參與的項目要求業務邏輯必須在Web Service中實現,這些業務邏輯將由Presentation Tier組件(即Web應用程序)使用。何時通過ESB公開服務?

該公司有一個企業服務總線,並且最新開發的幾乎所有Web服務都通過該總線公開。我問過一些周圍的同事什麼時候通過ESB公開服務,我得到了這個答案:

  • 如果有一個ESB,暴露通過它的一切:有喜歡的負載平衡和位置透明幾個好處
  • 如果ESB只會充當代理服務器 - 無需消息轉換 - 只是不使用它:您會重載ESB並失去性能。你最好做一個點對點的連接。
  • 如果存在協議轉換(如將存儲過程公開爲SOAP服務),則應通過ESB公開組件。如果不存在,最好進行點對點。

所以我很好奇,如果有一個普遍的協議或什麼時候通過它暴露Web服務的最佳做法。任何閱讀/參考將是一個很大的幫助。

回答

7

從我的角度和SOA技術4年的經驗來看,使用ESB將始終使系統過載,因爲您正在添加一個新圖層並使所有通信都通過它。如果沒有ESB,轉換(消息傳遞或協議)和路由都不難完成,並且點對點通信的吞吐量將有所提高。業務流程自動化也會發生同樣的情況,有辦法在不需要ESB的情況下到達那裏。

另一方面,ESB的使用在公司的範圍內有幾個好處,但它必須在願景和策略之內。最好的例子之一是一家公司長期以來一直使用各種各樣的工具進行工作,每個工具都有特定的用途,並且這些公司分佈在各個工作小組中,與其他小組隔開。很長一段時間後,團隊之間的交互變得複雜而緩慢。一個精心策劃的SOA戰略將有助於整合所有這些工具,並開始替代更有意義的輕量級項目。因此,恕我直言,使用ESB只是爲了在單個項目中解決幾個「問題」而沒有公司戰略並不是一個好主意,並且最終,您的公司將禁止單詞SOA,當問題不是由SOA本身而是缺乏遠見和公司戰略時。

拇指,我發現關於使用ESB產品的唯一規則是:轉換,路由,業務流程自動化(有或沒有人的交互)等的單個項目的要求是沒有的症狀(幾乎每個項目都需要執行轉換,路由和業務流程自動化),但是當這些需求成爲整個公司的需求時,從商業的角度來看它是值得的,而不是技術上的。如果沒有商業視角,那麼SOA將失敗。

這是一個非常廣泛的話題和討論會持續了好半天,我會建議你兩三進一步閱讀鏈接: