2012-11-13 43 views
0

我建立一個新的Java EE應用程序(瘦客戶機),這裏是應用層:架構的選擇:ESB和EJB

  • 應用演示將與JSF2 /春天的Webflow和RichFaces的4
  • 的businees層將與EJB 3
  • 的持久化層將與JPA2 - Hibernate實現

應用程序將在WebSphere Appliccation服務器上運行。

該公司擁有Websephre Message Broker作爲ESB。

我有兩個選擇,我試圖找出最好的取決於可伸縮性,維護,性能,最佳實踐和企業公司架構設計,爲他們每個人:

  1. 部署業務EJB3 ESB上的服務並在專用服務器上部署表示層:表示層將通過ESB調用業務服務
  2. 在專用WAS上部署EJB服務並在專用服務器上部署表示層:表示層將直接調用EJB服務而不使用ESB
+1

您是否需要所有這些堆棧,或者您打算使用它,因爲公司爲此付出了代價?你提到的每種技術都有一個隱含的成本,這會使你的項目更難實施和維護。就個人而言,我不會使用EJB或ESB,我更喜歡簡單性而不是複雜性(和令人頭疼的問題)。 – Augusto

+0

哦,還有一點,如果你問這是否是正確的體系結構,那肯定不是正確的選擇。根據我的經驗,當您嘗試其他方法並且都失敗時,您使用ESB或EJB,因此最後一個資源是這兩種技術之一。 – Augusto

+0

EJB3不是中間件層的錯誤體系結構。它具有很多優點,安全性,事務管理和簡單性......現在我們有兩種選擇:從JSF通過ESB調用EJB或直接調用來自JSF的EJB – brianbro

回答

1

它取決於(如往常一樣:))如果您計劃在未來擴展您的應用程序並將其與除JSF客戶端之外的其他客戶端集成,那麼ESB將是一個可行的解決方案。否則保持簡單,即應用程序服務器中的所有內容。如果您繼續使用ESB,我建議您將EJB層移到應用程序服務器,並將您的應用程序從ESB公開爲Web服務。

1

這是我的rec ...使用您製作的架構決策在WAS上構建您的應用程序。爲了將您的應用程序集成到ESB,我會投票支持JMS或WebSphere MQ。您可以選擇Web服務,但是您的企業架構團隊很可能會說......您需要與已確認的交付有時間獨立的通信。

如果您還想了解這一切如何工作,那麼我會查看IBM SOA Design Patterns,或者隨時閱讀我的​​紅皮書(IBM SOA零售設計模式),瞭解如何將應用程序粘貼到ESB。