Need to invoke/close programs running in other PCs
<p>We have our own small application servers of various types which are just exe files.These app servers run on various machines and I need a mechanism to start/end the app servers without going to each PC where the app servers run.  What I need is:  </p>

<ol>
<li><p>I will install a client application of each Pc where app servers will be running and there would be a server application which can be used to monitor the app servers running on various PCs.  </p></li>
<li><p>On the clients, we can speficy the location of various app servers ( just exe files) and their friendly names. (like c:\app1.exe,Myapp;d:\Myotherapp,OtherApp).  </p></li>
<li><p>On the server, when an IP address or host-name is entered, it will send a request to the client which will reply back with the app servers it is capable of running (MyApp, OtherApp) and it will initially report the status of them as STOPPED. When start button on the server is pressed for a particular app server, it will send a message to the client to start the spefied app server.The status of app servers running on the client would refresh periodically( by exchanging the messages said above)  </p></li>
<li><p>If some other server is started and is pointed to the same client, it will report that there are 2 app-servers running on the client and one of them is started. When the stop button is pressed, it will send message on the client to STOP the particular app server.  </p></li>
</ol>

<p>I initially thought of using this technique:  </p>

<ol>
<li><p>When the server want any particular PC to start its app server, it will just make an entry in the database table.  </p></li>
<li><p>The client is periodically sniffing the table and when it sees an entry is created, it will start the program.  </p></li>
</ol>

<p>But this technique is poor because it uses polling, the client will keep on quering the DB. I want a push sort of message.  </p>

<p>Will socket programming solve this task or is there any easy method?</p>
