【发布时间】:2013-03-05 17:05:27
【问题描述】:
架构问题: 我有一个 Java EE 企业应用程序,旨在部署给许多不同的客户。它包括:
- 标准后端:为每位客户提供相同的核心
- EAI 适配器的单独模块:旨在包含所有客户特定的集成(财务、CRM、ERP 等) - 为每个客户提供不同的实施
我可以看到 2 个选项:
- 只有一个 backend-cust1.ear,其中包含 core.jar 和 adapter-cust1.jar。
- 适配器的单独 WAR。所以我们会有:只有 core.jar 的 backend.ear,即为每个客户提供相同的交付和一个单独的适配器-cust1.war。
问题在于,在第一个解决方案中,核心可以通过简单的 java 方法调用来调用适配器,客户特定的实现可以注入一些 CDI 代码。
但是对于第二种解决方案,我们需要一些远程技术来在核心和适配器之间进行通信:例如 JMS 或 WS。在我看来,这是一种相当沉重的方式。
但我们认为适配器可能依赖于任何东西(MQ、SAP 客户端,实际上任何东西),我们希望确保这些依赖关系不会以任何方式影响我们的公共核心,这就是为什么我们考虑有一个单独的战争。
对此有什么想法吗?
【问题讨论】:
标签: jakarta-ee architecture war ear eai