私たちは、exeファイルだけであるさまざまなタイプの独自の小さなアプリケーションサーバーを持っています。これらのアプリサーバーはさまざまなマシンで実行され、アプリサーバーが実行されている各PCに行かずにアプリサーバーを開始/終了するメカニズムが必要です。私が必要とするのは:
アプリ サーバーが実行される各 PC のクライアント アプリケーションをインストールします。さまざまな PC で実行されているアプリ サーバーを監視するために使用できるサーバー アプリケーションがあります。
クライアントでは、さまざまなアプリ サーバー (exe ファイルのみ) の場所とそれらのフレンドリ名を指定できます。(c:\app1.exe,Myapp;d:\Myotherapp,OtherApp など)。
サーバーでは、IP アドレスまたはホスト名が入力されると、クライアントに要求が送信され、実行可能なアプリ サーバー (MyApp、OtherApp) が返され、最初にそれらのステータスが報告されます。停止中。特定のアプリ サーバーに対してサーバーの開始ボタンが押されると、指定されたアプリ サーバーを開始するようにクライアントにメッセージが送信されます。クライアントで実行されているアプリ サーバーのステータスは、定期的に更新されます (上記のメッセージを交換することによって)。
他のサーバーが開始され、同じクライアントを指している場合、クライアントで実行されている 2 つのアプリケーション サーバーがあり、そのうちの 1 つが開始されていることが報告されます。停止ボタンが押されると、特定のアプリ サーバーを停止するようにクライアントにメッセージが送信されます。
私は最初にこのテクニックを使用することを考えました:
サーバーが特定の PC にアプリ サーバーを起動させたい場合は、データベース テーブルにエントリを作成するだけです。
クライアントは定期的にテーブルをスニッフィングしており、エントリが作成されたことを確認すると、プログラムを開始します。
ただし、この手法はポーリングを使用するため不十分であり、クライアントは DB にクエリを実行し続けます。プッシュ型のメッセージが欲しい。
ソケットプログラミングはこのタスクを解決しますか、それとも簡単な方法はありますか?