0

エンタープライズ アプリケーションとデータを通信し、Web インターフェイスから監視およびアクセスする必要がある多数の (ただし同一の)独立したプロセスで構成されるアプリケーションをどのように設計すればよいでしょうか?

Java でのより具体的な例を次に示します。

  1. 独立したプロセスは、「ユーザー」エンティティに関する初期化データを受け取り、この「ユーザー」に関する処理を開始するスタンドアロン J2SE アプリケーションの複数のインスタンスです (これは無限のプロセスであるため、バッチ ソートの設計はここでは間違っています。同様に、これらのプロセスの開始時間は関係ありません)

  2. エンタープライズ アプリケーションは、ビジネス ロジックや DB アクセスなどを実装する J2EE Bean と Web サービスのセットであり、(たとえば) GlassFish でホストされます。

  3. Web フロントは、Bean で動作する一連の JSP (おそらく GlassFish でも) です。

理想的には、(1) のプロセスが (2) の Bean からメソッドを呼び出すことができる方法が必要ですが、(2)の Bean がプロセス (1) を更新できるようにする方法も必要です

したがって、これらは実行に必要なフローです。(1) 10 人の異なるユーザーに対して実行される 10 個の独立したプロセスがあると仮定します (「ユーザー」とは、たとえば数字で簡単に識別できるものと考えてください)。

  • (1) のプロセスの 1 つで何かが発生し、エンタープライズ アプリケーション (2) から何らかのデータを使用してメソッドを呼び出します。
  • 実際の人間のユーザー (Web アプリによって既に識別されている) の 1 人が (3) の Web ページで何かをクリックすると、(2) のメソッドが呼び出され、次にいくつかの「魔法の」エンティティ (私が持っている) が呼び出されます。名前の付け方がわからない)は、この特定のユーザーを担当する(1)から独立したプロセスを見つけ、そのプロセスを新しいデータで更新します。

これまでの私の最善のアプローチは、これらの J2SE アプリを JMX で公開し、そこから移行することですが、1 つ理解できないことがあります。「URI XでのプロセスはユーザーYを担当し、それに応じて通話を転送します。

ところで、簡単にスケーリングできるプラットフォームである限り、Java プラットフォーム (!) 以外のアドバイスをお気軽にお寄せください。

編集: また、そのような独立したプロセスを一部のアプリサーバーで「ホスト」する方法はありますか? 失敗した場合にプロセスを再生成し、リモート マシンなどでそのようなプロセスを展開および監視できるようにするものはありますか?

4

1 に答える 1

1

過去にJava Message Serviceを使用してからしばらく経っているので、技術的な詳細については最新ではないことを残念に思いますが、あなたの説明から、管理 GUI とクライアント プロセス。

さまざまなオプションがあります (非同期通信に興味があると思います) ので、最新の開発を調べて、自分のケースに適合するかどうかを検討する必要があります。

サーバーがプロセスと交換するデータ サイズに関しては、これは別のトピックであると考えており、答えは状況によって異なると言わざるを得ません。メッセージ内のすべてのデータを送信した方がよいでしょうか? または、メッセージは単なる通知であるため、クライアントは通知され、エンタープライズ Bean に接続して新しい状態を確認しますか? 私は後者のケースを好みますが、これは要件に基づいて決定する必要があります。これが機能しないという明確な証拠がない限り、最初のオプションをやみくもに除外することはありません。

スケーリングに関しては、残りの豆のスケーリングよりもはるかに悪いとは思いません。サーバーに関する限り、それらのプロセスは、サービスを提供する必要があるすべてのクライアントです。

上記のアドバイスは一粒の塩で受け取ってください。私はあなたの問題/設計の詳細を知りません。私は一般的な方法でもっと話しています。

それが役立つことを願っています

于 2013-08-08T13:40:32.167 に答える