2

これに似た質問を見つけることができなかったようです。

現在、グリッド コンピューティングの問題を解決する最適なソリューションを探しています。

セットアップ:

  • サーバー/クライアントの状況で、クライアントが [通常はほとんどのロジックを理解できない] で、サーバーから指示を受け取ります。
  • 認可リクエストを持っている
  • クライアントはタスクを完了する速度に関する情報を報告します(タスクの難易度はタスクの種類によって判断されます)
  • クライアントは、以前のパフォーマンスに最も適したタスクを受け取ります (最高のクライアントは最悪の問題を受け取ります)。

最終的に要件は次のようになります。

  • クライアントのフットプリントは小さく、スタンドアロンである必要があります - インストールとセットアップに多くを必要とするクライアントはありません
  • クライアントは、サーバーから新しいジョブとジョブ ランタイムを取得できる必要があります (導入された新しい問題に合わせてグリッドをスケーリングするとよいでしょう [そして、新しい問題はサーバーによって分散されます])。
  • 認証レイヤーが必要です (複雑であったり、既存の LDAP に準拠している必要はありません) [より簡単な要件: クライアントは新しい「メンバーシップ」にサインアップしてアクセスできる] (RMI の強みがここにあるかどうかはわかりません)
  • クライアントは、ネットワーク化された環境ではなく、インターネットから実行できます。
    • つまり、要求された結果の暗号化

現在、クライアントとサーバーの間の通信に Web サービスを使用しています。すべての情報と結果は、ホスティング サーバー (J2EE) に戻されます。

私の質問は、これらの要件のすべて/ほとんどに適合し、オープンソースであるグリッド システムのセットアップはありますか?

これらのタスクのほとんどは小規模ですが、非常に頻繁に実行されるため (1 日に 1 回ですが、タスクは簡単かもしれませんが、メンテナンスを実行します)、クラウドの実行には興味がありません。

このシステムのコードはすべて Java です。

4

3 に答える 3

3

スペースベースのアーキテクチャー、特にJiniJavaspacesを調査することをお勧めします。ジニとは?基本的には、構成可能な検出メカニズムを備えた RMI です。Java インターフェイスの実装者を要求すると、Jini サブシステムがそのインターフェイスを実装している現在のサービスを見つけて、それらを動的にサービスに通知します。

簡単に言うと、作業項目をスペースに書き込みます。グリッド ノードは、スペースからトランザクション的にデータを読み取るように設定されます。各グリッド ノードはワーク アイテムを取得して処理し、結果をそのスペース (または別のスペース) に書き戻します。配布ノードは、書き戻される結果を監視できます (および、要求に応じて、予測される結果のタイミングを監視できます)。

それはすべて Java であり、直線的にスケーリングします。Jini であるため、グリッド ノードは HTTP サーバからクラスを動的にロードできるため、コードの更新を簡単に伝播できます。

于 2009-10-13T07:56:46.313 に答える
1

Grid Beansを見てみましょう

于 2009-10-13T07:49:33.583 に答える
0

BOINCは、クライアントのために Java をラップする必要がありますが、あなたの問題にはうまくいくように思えます。それは、あなたにとってやり過ぎかもしれません。

于 2009-10-13T10:45:22.380 に答える