2011-01-05 8 views
1

私は中央の(サーバー?)PCを持っているアプリケーションを作成しています。Javaを使用してリモートPC上でプログラムを実行

中央のPCの特定の位置(またはイベント)にxmlファイルがダンプされている場合。プログラム は、リモートpc IPが与えられているxml(任意のpc)を読み取ります。 コマンドがそのpcに送信され、そのpcがそのコマンドを実行します。

コマンドはさまざまな種類の1つであり、各コマンドにはpcにsaperateクラスファイルがあります。 コマンドごとに、そのタイプのオブジェクトが作成され、目的のメソッドが実行されます。

質問:私はこのアーキテクチャを実装するための最善の技術は何ですか?

+1

どのプラットフォームをターゲティングしていますか? – Codemwnci

+0

質問/問題は何ですか? (私はあなたが作成しているアプリケーションについて自慢しているとは思わない) – rownage

+0

私はPC == Windowsを推測しています。 –

答えて

0

あなたの質問は何ですか?

これを行う最も簡単な方法は、RMIを使用することです。

しかし、JMSキューを使用することを検討しました。これは、特定のタスクを特定のPCに割り当てなくても、多くのPCにジョブを均等に配布できるようにするためです。すなわち、実行したいタスクを待ち行列に入れ、次に使用可能なPCがそのタスクを実行する。

0

Java RMI

必須Wiki linkと引用符を見て、これはあなたの実装に適用することができる理由:

Javaリモートメソッド呼び出し アプリケーション・プログラミング・インターフェース (API)、またはJava RMI、 (RPC)のリモートプロシージャコールに相当するオブジェクト指向の を実行するJavaプログラミング言語 です。 (マシンの境界を越えても)

0

RMIも私の頭に浮かんだ最初のものです。しかし、私は、リモートPC上で何が行われているかについてより詳細な情報が必要な本当に良い答えを与えると思います。

JMS:私の推測では、分散Worker Thread Pattern

その他のオプションをすることができ構築しているということです。 Webサービス。 など

0

いくつかのオプションがあります。RMIを使用できます。JMSキュー/トピック、さらにはHttp Pub/subを持つこともできます。これらのそれぞれに賛否両論があります。

RMIを使用すると、ファイアウォールの問題を回避するために、リモートPCを起動時にサーバーに接続することができます。この方法では、中央のPCでのみ着信/発信ポートを開く必要があります。

JMSを使用すると、各リモートPCからJMSコンテナによって開かれたトピック/キューにリスナーを登録できます。 Queue/Topicに入力したメッセージは、IPを使用してメッセージフィルタを設定し、メッセージはターゲットとなる1台のPCにのみ送られます。私はこのアプローチが気に入っているのは、あなたのリモートPCとセントラルPCの結合が失われているからです。しかし、この方法では、リモートPCとセントラルPCの間にオープンな接続がないため、セントラルPCにはRMIシステムと同様のコントロールはありません。

関連する問題