2009-03-25 5 views
0

私は16個のシリアルポートを持つ4つの専用PCを使用しています(db-9 RS232 )私は同時に64台近く(4x16)で通信し、通信を管理する必要があります。 一つのシステム上で動作し、クライアントアプリケーションを座標:ここに私が思い付いたと私は意見の分散アプリケーションモデル、サーバーおよび複数のクライアント(クライアントはサーバー上で実行できます)

サーバーを勧誘していたモデルです。マスターステートマシンを維持し、クライアントがそのステートマシンとロックステップに入っていることを確認します。 (たとえば、すべてのユニットがタスクAを実行し、最後のユニットが完了を報告すると、すべてのユニットがタスクBを実行します)。

は、.NETリモート処理を介して通信しますか? WCF?

クライアント: サーバーと同じシステムで実行できます。すべてのIOを管理します。 (例えばINotifyPropertyChangedの)通知イベント経由リモーティング/ WCF 通じ、実際のタスクの実行(悪い考え?)レポートステータスのグレードってこんなモン・ロジックを管理します。

私は、この時の総初心者だけど、私はすぐに学ぶんので、私は、.NETリモート処理や分散アプリケーションの任意の並べ替えで働いたことがありません。 文学とコミュニティのアドバイスは、この時点で非常に高く評価されます。

答えて

1

分散システム設計を読むだろう。一般に、システム内で単一の障害ポイントを持つことは悪い考えです(1つの特別なPCが「サーバー」であり、他のすべてのユーザーはそれと通信する必要があります)。

あなたのケースでは、重要ではない。

分散型システムデザインを読み上げてください。

あなたが選んだAPIは最も重要なものではありません。まず、アーキテクチャーを計画し、さまざまなシナリオ(PCの1つがAWOLになるような)で取り入れたい動作を計画する必要があります。

ちょうどあなたのreqmtsを読んでからの迅速な反応は、私は、分散パブ/サブシステムになります。 pub/subを実装する方法はあなた次第です。 MSMQ、WCF、WS-Eventingを使用することもできます。

+0

これは非常に有用で有益な回答でした。ありがとうございます。人がダウンすると大したことではないことが非常にうまくいきます。 – Firoso

1

確かに同時実行性と協調ランタイム(CCR)をチェックアウト:

http://msdn.microsoft.com/en-us/library/bb648752.aspx

EDIT:

リンクをダウンロードする:私はあなたに私だったら

http://msdn.microsoft.com/en-us/robotics/aa731520.aspx

+0

これはあらかじめバンドルされている.netコンポーネントですか?それは難しいです、それは私が既によく知っているクラスのように見える(少なくとも私が見た)これは、ネット3.0に付属していますか? – Firoso

+0

いいえ別のダウンロードです。 –

関連する問題