私たちは現在、大学向けの Web アプリケーションを開発しています。より経験豊富な開発者からのアドバイスが必要です。
Hibernate を使用して MySQL データベースを操作するバックエンドがあります。もう 1 つのプロジェクトは、バックエンドによって提供される API を使用する Web UI です (ユーザーの登録、特定のプロファイルに関連付けられたデータのフェッチなど)。UI には JSF フレームワーク (RichFaces) を使用します。すべてMavenを使用して構築されています。
決定できないテクノロジーは、UI とロジック モジュール間の通信です。最初のオプションは、ApacheCXF を使用して、UI がクライアントになる SOAP Web サービスを提供することです。2 番目のオプションは、EJB を使用して UI モジュールからバックエンド メソッドを呼び出すことです。
より広く使用されているアプローチはどれですか? Web に関する限り、EJB の使用は SOAP Web サービスよりも高速です。一方、Tomcat を使用した EJB の経験はありません (Tomcat の方が安価なオプションと思われるため、Tomcat を使用することをお勧めしますが、Tomcat で EJB を使用するために何をしなければならないかはわかりません)。 )。さらに、最初から Web サービスを使用することで、さまざまなプラットフォーム (Android など) のサポートを追加できます。
私たちが議論しているもう 1 つの側面は、アプリケーションをどのようにデプロイするかについてです。現在検討中の代替案は次のとおりです。
- これを単一の WAR プロジェクトとしてデプロイします (これにより、UI とアプリケーションのバックエンドとの通信に関する問題が解決されます)。
- プロジェクト間の通信に Web サービスを使用して、2 つの WAR プロジェクトを同じサーバーにデプロイします。(Tomcat サーバーにデプロイされたこのアプローチを使用したプロトタイプがあります)
- WAR プロジェクトと EJB プロジェクトをデプロイします。
- WAR および EJB プロジェクトへの参照を含む EAR プロジェクトをデプロイします。(Glassfish サーバーにデプロイされたこのアプローチを使用したプロトタイプがあります)
プロジェクトは現在開始されているため、数百人のユーザーしか処理できません。ただし、プロジェクトが成功した場合、数百万人のユーザーを処理する必要があります。
アドバイスをいただければ幸いです。ありがとう。
編集:では、プロジェクトをどのように展開するべきかについて何かアドバイスはありますか? EARを使用する必要がありますか? プロジェクトを EAR モジュールとしてデプロイすると、何か利点はありますか?
編集 2: このスレッドで必要なアドバイスを見つけました: Java アプリケーションのデプロイ (Tomcat/Glassfish)