1

私はこれらの3つのコンポーネントを含む単純なWebアプリケーションを開発しています:

  1. Ajax、javascript、htmlを使用してブラウザにデータを表示するクライアント。
  2. クライアントとデータ処理エンティティ間のインターフェースとなるJavaWebサーバー。
  3. C++で実装されたデータ処理エンティティ。

使用するJavaWebサーバーを決定する必要があります。いくつかのオプションは次のとおりです。

a)Java(com.sun.net.httpserver)でhttpserverクラスを使用し、マルチスレッドプロセスを作成します。

b)Glassfishサーバーを使用して、Webページなどを作成するアプリケーションをサーバーにデプロイします。

c)Jettyを使用します。

d)?

Webサーバーの選択基準は次のとおりです。

  1. 安定性(プロセス(Webサーバー)は再起動せずに数日間実行する必要があります)

  2. 可能な最大同時リクエスト数は約200で、平均的なケースは約30です。

  3. キャッシュはウェブサーバーで行われ、データが利用可能であるか、データ処理エンティティによってダーティとマークされていない場合、リクエストはウェブサーバー自体から提供されます。

あなたの提案は大歓迎です。

ありがとうございました。ロン。

4

4 に答える 4

5

JavaのHttpServerクラスは使用しないでください。

Glassfishは素晴らしいですが、おそらく必要以上のものです。

Jettyは問題なく動作します。

C ++を使用していてJNIを使​​用してJavaとのインターフェースをとっている場合、セグメンテーション違反はサーバー全体を強制終了することに注意してください(純粋なJavaの例外のように、要求を強制終了し、コンテナーは回復できます)。

于 2009-09-21T20:53:58.510 に答える
1

Tomcatはこれを行うことができますが、Java側で要件を指定する必要があります。たとえば、J2EE機能を使用していますか?

キャッシングには、JBossキャッシュのようなものが必要ですか?

JavaをC++バックエンドに接続するためにJNIを使​​用していますか、ESBを使用していますか、またはその他のアプローチを使用していますか?

どのタイプのデータがキャッシュされていますか?

更新:あなたの情報に基づいて、Javaを使用しないことをお勧めしますが、この通信にはC++TCPベースのサーバーを使用します。そうすれば、JNI /C++インターフェースに問題はありません。C ++サーバーはかなり簡単に作成でき、Boostライブラリを使用すると、新しいC++仕様に近くなります。スレッドについては、http ://www.boost.org/doc/libs/1_40_0/doc/html/thread.htmlを参照してください。

于 2009-09-21T20:54:26.123 に答える
1

私はレジンを数年間使用しましたが、非常に良好で安定しており、100%推奨されています。

于 2009-09-21T21:00:12.973 に答える
0

私はTomcatを使います。

于 2009-09-21T20:53:14.440 に答える