架構問題: 我有一個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-客戶端,真的是任何東西),我們希望確保這些依賴不會以任何方式影響我們的公共核心,這就是爲什麼我們考慮有一個單獨的戰爭。
對此有何看法?