0

私は経験豊富なアプリケーション開発者であり、今ではあまり経験のないWebアプリケーションを開発する必要があります。

私は、多数の分散サーバーコンポーネントを含むプロジェクトに取り組んでいます。現在、これらのコンポーネントを監視し、アラームやログなどを表示するクライアントアプリケーションがあります。各サーバーマシンの状態は、tcp/ipを介した独自のプロトコルを介して配信されます。

現在のUIベースのアプリには、メッセージのソケット接続を継続的に監視するスレッドがあり、受信すると、すべての現在の状態がメモリ内に保存され、ユーザーに表示されます。

私の質問は、Webアプリケーション環境で同様のことをどのように達成するかです。私の最初の考えは、サーバーの起動時に同様の通信スレッドを作成することでした。その後、ユーザーがデータを要求すると、応答はメモリ内のデータから構築されますが、独自のスレッドを開始するWebアプリケーションについて読むことはお勧めできません。

QuartzまたはTimerTaskを使用してWebアプリケーションで定期的なスケジュールタスクを実行する方法について少し読みましたが、このタスクはより継続的です。それはまだ行く方法ですか?

LinuxでTomcatを実行しているJSFを使用してJavaでWebアプリを開発しています。ああ、アプリケーションの同時ユーザー数は少なくなります。(最大25、ただし2または3の可能性が高い)

4

2 に答える 2

0

なぜこれをサーバーの懸念事項にするのですか?クライアント(ブラウザ)では、現在の状態をポーリングし、それに応じて表示を調整できます。これを行うと、多くの複雑さが解消されます。

クライアントがどのように更新されるかについては、アプリによって異なります。最新のブラウザーのみを許可できる場合は、HTML5WebSocketを調べることができます。他のオプションは、画面の部分的な更新または完全な画面の更新にAJAXを使用することです。

于 2013-01-04T08:57:44.720 に答える
0

アプローチ1

クォーツの使用は良いです。TimerTask を使用しないことをお勧めします。

アプローチ 2

Web アプリケーションには何らかのデータベースがあると想定しています。ユーザーの要求に応じて状態を表示する必要があるため、リアルタイムではなく、サーバーの状態を読み取り、Web アプリケーションに表示されるテーブルを更新するスタンドアロンのデーモン アプリケーション (Web アプリケーションではない) を作成することができます。ユーザー要求が行われると、このテーブルを参照して出力を生成できます。

于 2013-01-04T04:17:05.403 に答える