2009-07-17 18 views
0

手元の問題については、タイトルを参照してください。特定の「計算サービス」(cpu intensive)は、次のようにクライアントに提供されます。すべてのクライアント要求は、キューを管理する1つのマシンに送られ、クラスタ内のサーバーまたはCPUが解放されたときにJavaアプリケーションサーバーに要求が転送されます。アプリケーションサーバーはワークフロー管理にejbを使用し、ワークフローのある時点で計算サービスを呼び出す必要があります(*)。計算結果はワークフローで管理されます。Queueserver - > java appservers - >計算サーバーのクラスタ

質問: - 計算サービスの呼び出しは、RMIでなければならないか、他のオプションが存在するかどうかを確認します。 - どの製品がこのアーキテクチャを「そのまま」サポートしていますか(言い換えれば)。

(*)JNIを内部的に使用するスタンドアロンのJavaプログラムとして呼び出されます。

答えて

1

RPCの任意の形式が行います。 RMIは良い解決策ですが、Spring Remotingを使用することをお勧めします。これにより、インターフェースを定義し、リモートで作業を行うようなインターフェースのインプリメンテーションを挿入することができます。私はあなたがうまくやりたいことに合っていると思います。

+0

Spring Remotingは完全なSpringフレームワークを必要とすると思いますか、それとも独立して使用できますか? – Gerard

+0

Spring Frameworkはモジュールに分割されています。あなたはそれらのいくつかが必要ですが、すべてではありません。 – GaryF

0

計算サーバーインスタンスは、すべて同じキューで待機している可能性があります。新しい計算の準備が整ったら、キューから項目を読み取り、作業を行い、応答キューに回答をポップします。

これは、いくつかのエンジンでサービス要求を可能にする非常に簡単な方法です。キューイングシステムの可用性特性を理解し、制御する必要があります。

ワークフローエンジンは、計算サーバーに要求をポップし、応答を待つ必要があります。これは、ワークフローエンジンが何らかの「外部イベントの一時停止」機能を持つことを意味します。ワークフローは人間が質問に答えるのを合理的に待つことができるので、これはかなり共通の特徴です。

このように自然に動作する商用ワークフローエンジンが少なくとも1つは存在します。

+0

少なくとも1つ、つまりどちらが意味ですか? – Gerard

関連する問題