1

私は、システムのアーキテクチャと設計という非常に困難な仕事を与えられています。私はデザインではなくプログラミングにとても慣れています。そこで、ここでタスクを開始する方法と場所についてアドバイスを求めることにしました。私は下の写真にすべての正しい質問(私は思う)を入れようとしました:

上のリンクをクリックすると、大きな画像が表示されます

実際の画像。

それで、私はそれらの中で1つの質問に答えることができます:「なぜXML-RPC?」なぜなら、それは堅牢で、うまく設計された、業界標準の通信方法です(私はIEEEの論文で読んでいます)。

画像内の質問に答えてください。

PS私は同意します、これすべて(画像の最後の質問)の簡単な解決策を求めることは非常に怠惰です。しかし、それは人がすべきことではありませんか?一度解決したことは何も解決しませんか?

編集:アプリは基本的に、リモートユーザーがマシンと対話する方法を提供する必要があります。つまり、アプリはマシンインタラクションAPIにネットワーク機能を提供する必要があります。

4

1 に答える 1

1

明確にしていただきありがとうございます。

サーバー (マシン コンピューター) とクライアントの間でどのように通信するかについて、もう少し調査する必要があると思います。1 つのオプションは、MSMQ (メッセージ キュー) を使用した双方向通信です。Microsoft には、それに関するページがありますhttp://msdn.microsoft.com/en-us/library/ms752264.aspx

これが、おそらく機能していると私が考える方法です。各セクションは、ソリューション内の個別のプロジェクトです。

マシン コンピューター (サーバー) プロジェクト (exe、コンソール アプリ?)

  • クライアント コンピューターからの API 呼び出しを受け入れる ServiceHost が含まれています。
  • 新しいクライアント コンピュータが接続したら、更新するクライアントのリストに追加します。
  • クライアントが切断されたときに更新するリストからクライアントを削除します (または、更新通信を送信する前にクライアントが起動しているかどうかを確認します)。
  • API 呼び出しを受け入れ、すべてのクライアント コンピューターにコールバックして処理中の状態にし、"マシン" で要求を実行します。
  • 「マシン」が完了すると、クライアント コンピュータに呼び出しを行い、完了ステータスを提供します。

クライアント コンピューター (クライアント) プロジェクト (exe、GUI アプリ)

  • サーバーからのステータス更新を受け入れる ServiceHost が含まれます。
  • 開始時に、新しいクライアントがオンラインであるという通知 (API) をサーバーに送信します。
  • 終了時に、クライアントがオフラインになるという通知 (API) をサーバーに送信します。
  • サーバーから提供されるステータスやその他の利用可能な読み取り値または情報を表示するウィンドウを提供します。
  • ユーザーがマシン上で実行されるサーバー (API) にコマンドを送信できるようにするオプションを提供します。

契約プロジェクト

  • クライアントとサーバーからやり取りされるすべてのクラス オブジェクトが含まれます。
  • クライアント プロジェクトとサーバー プロジェクトの両方がこのプロジェクトを参照します。どちらも、通信の送受信にこれらのクラスを使用できる必要があります。
于 2012-09-07T15:59:03.073 に答える