0

私たちは、exeファイルだけであるさまざまなタイプの独自の小さなアプリケーションサーバーを持っています。これらのアプリサーバーはさまざまなマシンで実行され、アプリサーバーが実行されている各PCに行かずにアプリサーバーを開始/終了するメカニズムが必要です。私が必要とするのは:

  1. アプリ サーバーが実行される各 PC のクライアント アプリケーションをインストールします。さまざまな PC で実行されているアプリ サーバーを監視するために使用できるサーバー アプリケーションがあります。

  2. クライアントでは、さまざまなアプリ サーバー (exe ファイルのみ) の場所とそれらのフレンドリ名を指定できます。(c:\app1.exe,Myapp;d:\Myotherapp,OtherApp など)。

  3. サーバーでは、IP アドレスまたはホスト名が入力されると、クライアントに要求が送信され、実行可能なアプリ サーバー (MyApp、OtherApp) が返され、最初にそれらのステータスが報告されます。停止中。特定のアプリ サーバーに対してサーバーの開始ボタンが押されると、指定されたアプリ サーバーを開始するようにクライアントにメッセージが送信されます。クライアントで実行されているアプリ サーバーのステータスは、定期的に更新されます (上記のメッセージを交換することによって)。

  4. 他のサーバーが開始され、同じクライアントを指している場合、クライアントで実行されている 2 つのアプリケーション サーバーがあり、そのうちの 1 つが開始されていることが報告されます。停止ボタンが押されると、特定のアプリ サーバーを停止するようにクライアントにメッセージが送信されます。

私は最初にこのテクニックを使用することを考えました:

  1. サーバーが特定の PC にアプリ サーバーを起動させたい場合は、データベース テーブルにエントリを作成するだけです。

  2. クライアントは定期的にテーブルをスニッフィングしており、エントリが作成されたことを確認すると、プログラムを開始します。

ただし、この手法はポーリングを使用するため不十分であり、クライアントは DB にクエリを実行し続けます。プッシュ型のメッセージが欲しい。

ソケットプログラミングはこのタスクを解決しますか、それとも簡単な方法はありますか?

4

1 に答える 1

1

nventsを試すことができます。私はそれがあなたが探しているものを持っていると信じています. これにより、TCP ポートで WCF を使用してネットワーク経由でイベントをサブスクライブするだけで済み、データベースを継続的にポーリングする必要がなくなります。

于 2012-11-04T20:36:12.400 に答える