Jakarta ee JavaEE体系结构:适配器的独立战争

Jakarta ee JavaEE体系结构:适配器的独立战争,jakarta-ee,architecture,war,ear,eai,Jakarta Ee,Architecture,War,Ear,Eai,架构问题: 我有一个JavaEE企业应用程序,目标是部署到许多不同的客户。它包括: 标准后端:每个客户都有相同的核心 EAI适配器的单独模块:旨在包含所有特定于客户的集成(财务、CRM、ERP等)——每个客户都有一个不同的实现 我可以看到两种选择: 只有一个后端-cust1.ear,其中包含core.jar和adapter-cust1.jar 适配器的单独战争。因此,我们将有:backend.ear和core.jar,这对每个客户都是相同的交付,并且有一个单独的适配器cust1.war

架构问题: 我有一个JavaEE企业应用程序,目标是部署到许多不同的客户。它包括:

  • 标准后端:每个客户都有相同的核心
  • EAI适配器的单独模块:旨在包含所有特定于客户的集成(财务、CRM、ERP等)——每个客户都有一个不同的实现
我可以看到两种选择:

  • 只有一个后端-cust1.ear,其中包含core.jar和adapter-cust1.jar
  • 适配器的单独战争。因此,我们将有:backend.ear和core.jar,这对每个客户都是相同的交付,并且有一个单独的适配器cust1.war
问题在于,对于第一个解决方案,核心可以通过简单的java方法调用适配器,特定于客户的实现可以注入一些CDI代码

但是对于第二个解决方案,我们需要一些远程处理技术来在核心和适配器之间进行通信:例如JMS或WS。在我看来,这是一个相当沉重的方式

但是我们认为适配器可以依赖任何东西(MQ,SAP客户端,真正的任何东西),并且我们希望确保这些依赖性不会以任何方式影响我们的共同核心,这就是为什么我们考虑单独的战争。 有什么想法吗?

我认为有两个好办法:

  • -它将允许创建托管连接、事务等,但旧的和不流行的
  • -将通过可能的jar地狱、模块及其接口更好地解决您的问题

您应该能够从其他EAR注入“所需的类”/组件/模块。所有JavaEE应用服务器都支持这一点

例如,如果是EJB:

在其他情况下,指定项目依赖关系可以解决问题

在架构上,ESB听起来更适合这里。但我相信,理想情况下,您并不需要ESB,因为您只有一个客户集成

祝你好运