2013-03-05 49 views
0

架構問題: 我有一個Java EE企業應用程序,其目標是要部署到許多不同的客戶。它包括:Java EE架構:針對適配器單獨進行戰爭

  • 標準後端:相同的核心爲每一位客戶
  • 爲EAI適配器一個獨立的模塊:旨在包含所有客戶特定的集成(財務,CRM,ERP,...) - 一個不同的實現爲每個客戶

我可以看到2個選項:

  • 只有一個後端,cust1.ear在它core.jar添加和適配器cust1.jar。
  • 適配器的單獨WAR。所以我們會:backend.ear只有core.jar,這是每個客戶和獨立的適配器cust1.war的相同交付。

問題是,在第一種解決方案中,核心可以用簡單的java方法調用調用適配器,客戶特定的實現可以注入一些CDI代碼。

但是對於第二種解決方案,我們需要一些遠程技術來在覈心和適配器之間進行通信:例如JMS或WS。在我看來,這是一種相當沉重的方式。

但是我們認爲適配器可以依賴於任何東西(MQ,SAP-客戶端,真的是任何東西),我們希望確保這些依賴不會以任何方式影響我們的公共核心,這就是爲什麼我們考慮有一個單獨的戰爭。

對此有何看法?

回答

0

我看到兩個好方法:

  • Java EE Connector - 它將允許創建管理連接,事務等,但老和尚不普及
  • OSGI - 將解決可能出現的罐子地獄您的問題,模塊和他們的接口,更好
0

你應該能夠從其他EAR注入「所需的類」/組件/模塊。這由所有Java EE應用程序服務器支持。

例如,如果是的EJB: WebSphere 7. Inject EJB from another application

在其他情況下,指定項目的依賴應該解決的問題。

建築上,ESB在這裏聽起來更合適。但是根據我的觀點,您不需要ESB,因爲您只有一個客戶集成。

好運