アーキテクチャに関する質問:多くの異なる顧客に展開することを目的としたJavaEEエンタープライズアプリケーションがあります。構成は次のとおりです。
- 標準のバックエンド:すべての顧客に同じコア
- EAIアダプター用の個別のモジュール:すべての顧客固有の統合(財務、CRM、ERPなど)を含むことを目的としています-顧客ごとに1つの異なる実装
私は2つのオプションを見ることができます:
- core.jarとadapter-cust1.jarを含むbackend-cust1.earは1つだけです。
- アダプター用の個別のWAR。つまり、core.jarのみを含むbackend.earがあります。これは、すべての顧客に同じ配信であり、個別のアダプターcust1.warです。
問題は、最初のソリューションでは、コアが単純なJavaメソッド呼び出しでアダプターを呼び出すことができ、顧客固有の実装にCDIコードを挿入できることです。
ただし、2番目のソリューションでは、コアとアダプターの間で通信するためのリモーティング手法が必要です。たとえば、JMSやWSなどです。それは私にはかなり重い方法のようです。
ただし、アダプターはあらゆるもの(MQ、SAPクライアント、実際にはあらゆるもの)に依存する可能性があると考えており、これらの依存関係が共通のコアに影響を与えないようにしたいので、別の戦争を検討します。
それについて何か考えはありますか?