0

私たちは現在、大学向けの 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 つの側面は、アプリケーションをどのようにデプロイするかについてです。現在検討中の代替案は次のとおりです。

  1. これを単一の WAR プロジェクトとしてデプロイします (これにより、UI とアプリケーションのバックエンドとの通信に関する問題が解決されます)。
  2. プロジェクト間の通信に Web サービスを使用して、2 つの WAR プロジェクトを同じサーバーにデプロイします。(Tomcat サーバーにデプロイされたこのアプローチを使用したプロトタイプがあります)
  3. WAR プロジェクトと EJB プロジェクトをデプロイします。
  4. WAR および EJB プロジェクトへの参照を含む EAR プロジェクトをデプロイします。(Glassfish サーバーにデプロイされたこのアプローチを使用したプロトタイプがあります)

プロジェクトは現在開始されているため、数百人のユーザーしか処理できません。ただし、プロジェクトが成功した場合、数百万人のユーザーを処理する必要があります。

アドバイスをいただければ幸いです。ありがとう。

編集:では、プロジェクトをどのように展開するべきかについて何かアドバイスはありますか? EARを使用する必要がありますか? プロジェクトを EAR モジュールとしてデプロイすると、何か利点はありますか?

編集 2: このスレッドで必要なアドバイスを見つけました: Java アプリケーションのデプロイ (Tomcat/Glassfish)

4

3 に答える 3

0

仕事でApacheCXFを使用しており、SOAPとRestfulがあります。信頼性が高く、セットアップが比較的簡単です。なぜglassfishを使用したいのかはわかりませんが、それが好みかもしれませんが、Eclipseでもプロジェクトを実装できます。それは実際にはあなたとあなたのチーム次第であり、あなたのチームが構築してサポートしなければならない要件とスキルセット次第です.CXF webservice + apache + eclipseとおそらく2つのwarファイルが良いパスになるでしょう.

于 2013-02-23T18:49:25.020 に答える
0

まず最初に。必要がなければ、Web サービスの使用は避けます。このシステムを外部のプログラムやプラットフォームから呼び出す必要があると思われる場合は、それを実行してください。その場合でも、外部統合には Web サービス インターフェイスのみを使用し、内部 EJB 実装は引き続き使用します。

EJB はエンタープライズ アプリケーションに最適です。それをよく調べてみることを強くお勧めします。これらは、EJB プーリング、トランザクション、アスペクト指向プログラミング、セキュリティ、ステートフル セッション、Java メッセージング、JNDI などのサポートを提供します。また、マネージド Bean (JSF) 内に直接注入できます。最終的に何百万ものユーザーを処理することになるとおっしゃっていたので、アプリケーションをできるだけ高速に実行する必要があると思いますが、SOAP Web サービスは適していないと思います。SOAP Web サービスはメッセージをテキストとしてエンコードすることに注意してください。そのため、アプリケーションがバイナリ ファイルなどを送信する場合、重大なパフォーマンスの問題が発生します。

展開に関する限り、私は EAR を使用するか、JSF および EAR バックエンドの WAR を使用します。インジェクションを使用して、複数の Web アプリケーションや他の EAR アプリから必要なクラスをリモートでプルすることもできます。

Tomcat の方が安いと言う理由がわかりません。Glassfish オープン ソース エディションは、完全に機能する JavaEE6 サーバーであり、無料です。JBoss は JavaEE にも準拠しており、無料です。どちらも多くの本番環境で使用されています。私は、glassfish の方がはるかにユーザーフレンドリーであり、EJB 初心者に勧めたいと思います :)

私もTomcatから始めましたが、今は全く使っていません。シャバン全体を使用できるのに、なぜサーブレットコンテナーのみを使用するのですか? お役に立てれば。

于 2013-02-23T22:45:11.157 に答える
0

この場合、Web サービスは使用しません。マネージド Bean をコントローラーとして使用できます。ロジックを EJB に入れ、ビューをリッチ フェイスに入れ、マネージド Bean を使用してフローを制御します。

Maven を使用すると、EAR の構造を持つプロジェクトを生成できます (Web モジュールの場合は war、ejbs の場合は jar)。アーキタイプの名前は覚えていませんが、簡単に見つけることができます。

于 2013-02-24T20:20:30.027 に答える