0

私が設計しているシステムでは、社内で製造した 16 個のシリアル ポート (db-9 RS232) を備えた 4 台の専用 PC を使用しています。64 台のユニットとほぼ同時に (4x16) 通信し、通信を管理する必要があります。 これが私が思いついたモデルで、フィードバックを求めています

サーバー: 1 つのシステムで実行され、クライアント アプリケーションを調整します。マスター ステート マシンを維持し、クライアントがそのステート マシンと同期していることを確認します。(たとえば、すべてのユニットがタスク A を実行し、最後のユニットが完了を報告すると、すべてのユニットがタスク B を実行します)。

.net リモーティング経由で通信しますか? WCF?

クライアント: サーバーと同じシステムで実行できます。すべての IO を管理します。実際のタスク実行のビジネス ロジックを管理します(悪い考えですか?)通知イベント (たとえば INotifyPropertyChanged) を介して Remoting/WCF を介してステータスを報告します。

私は .net リモーティングやあらゆる種類の分散アプリケーションを扱ったことがないので、まったくの初心者ですが、すぐに習得できます。 この時点で、文献やコミュニティのアドバイスをいただければ幸いです。

4

2 に答える 2

1

私があなただったら、分散システム設計について読むでしょう。一般に、システムに単一障害点があることは悪い考えです (1 つの特別な PC が「サーバー」であり、他のすべての PC はそれと通信する必要があります)。

しかし、あなたの場合、それは問題ではない可能性が非常に高いです。

分散システムの設計について読んでください。

選択する API は、最も重要なことではありません。最初に、アーキテクチャと、さまざまなシナリオ (PC の 1 つが AWOL になるなど) で得たい動作を計画する必要があります。

あなたの要求を読んですぐに反応しますが、私は分散 pub/sub システムを検討します。pub/sub をどのように実装するかはあなた次第です。MSMQ、または WCF と WS-Eventing、または ... を使用できます。

于 2009-03-26T06:12:52.357 に答える
1

Concurrency and Coordination Runtime (CCR) をぜひチェックしてください。

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

編集:

ダウンロードへのリンク:

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

于 2009-03-25T22:31:26.333 に答える