1

次の問題に対して、.NET を使用して簡単なソリューションを開発したいと思います。

ローカル ネットワークに複数のコンピューターがあります。

  • 2 台のワークステーションにのみインストールされているプログラムを実行する必要がある 10 台のクライアント コンピューター
  • 定義されたプログラムを実行するためだけに使用される 2 つのワークステーション
  • 前述のすべてのコンピューターから利用可能なサービスをインストールするために使用できるサーバー

クライアント コンピューターがプログラムを実行する必要がある場合、クライアント コンピューターはサーバーに要求を送信し、サーバーは実行可能になったときにワークステーションにジョブを配布し、実行が実行されたときにクライアント コンピューターに通知します。

私は Web とサービスの開発にあまり慣れていないので、それが最善の方法かどうかはわかりませんが、以下は私が考えた可能な解決策です。

  • サーバー上の Web サービスは、タスクのリストとそのステータスをキューまたはデータベースに格納します。
  • クライアント コンピューターは Web サービスを呼び出してプログラムを実行し、タスク ID を取得します。次に、実行が実行されたかどうかを知るために、タスク ID を使用して毎秒呼び出します。
  • 利用可能なワークステーションは、実行するものがあるかどうかを知るために、毎秒 Web サービスを呼び出します。はいの場合、サーバーはタスクを割り当て、ワークステーションは実行が完了すると Web サービスを呼び出します。

これを下の図にまとめました。

システム概要

より簡単な解決策を考えていますか?

4

1 に答える 1

1

signalrを見てください。メッセージング フレームワークとして使用でき、2 つの異なる方向からサービスをポーリングする必要はありません。signalR を使用すると、実行命令をサービスにプッシュできます。実行が処理されると、サービスはクライアントに通知します。ワークステーションもsignalRに接続されます。Web サービスは実行命令をすべてのワークステーションまたは特定のワークステーションにプッシュできるため、実行命令を要求する必要はありません。

于 2014-06-20T10:39:37.427 に答える