Interessanter ist doch die Frage, wie erstelle ich auf einem Client ein Programm, dass auf einen Port hört, Ein- und Ausgabeparameter hat und eine .exe aufrufen kann.
Das sollte mit Java (Hallo Herr Pityankee?) kein Problem sein:
Einfach ein RMI Java Programm auf den Clients (die dann lustigerweise RMI Server sind) starten und dann zentral (also auf dem Server, der dann ein RMI Client ist) aufrufen.
rmi hat wiederum ein ganz eigenes Protokoll. Wird aber kaum benutzt.
Es gibt bessere Wege, um Prozesse auf entfernten Rechnern auszuführen.
Man programmiert sowas einfach nicht low level. Auch wenn ich sowas mit TCP/IP, Java-RMI oder Telnet in 2 Stunden in einer Spielumgebung programmieren könnte, würd ich das in dieser Welt nicht machen. Es geht nämlich um ein wenig mehr, als dass der eine Rechner an den anderen etwas senden kann. Vielmehr gehören dazu:
- Sicherheit
- Failover-Handling
- Administrierbarkeit
- Änderbarkeit
- Übersichtlichkeit
Nur weils in java.net. all diese Socket Klassen gibt, muß man die ja nicht direkt einsetzen.
Die Welt ist für sowas heute ein großer Freund von Message Oriented Middleware wie Active MQ oder Websphere MQ. Da gibts dann eine spezialisierte Middleware, die sich um den Austausch von Nachrichten zwischen unterschiedlichen Rechnern kümmert. Die Nachricht ist dann auf dem Zielrechner ein Event, auf das dann ein Programm gestartet werden kann und über eine andere Queue auch wieder etwas zurückgeschickt werden kann. Das ganze geht synchron (der wo die Nachricht eingestellt hat wartet auf Antwort) oder asynchron (der wo die Nachricht eingestellt hat, wartet nicht auf Nachricht, reagiert aber möglicherweise auf eine solche). Je nach Einsatzgebiet kommt auch das von Ulrich genannte Nagios in Frage. Das wird zum Monitoring und Reporting von verteilten Serverumgebungen verwendet. Da muss man sich über Transport, Adressierung, Sicherheit, Failover, etc. von Nachrichten nicht mehr kümmern, weil die Nagios Entwickler das bereits fertig entwickelt haben. Allerdings würd ich das System nicht für nicht-Monitoring Aufgaben vergewaltigen. ActiveMQ wär eine flexiblere Option, die nicht so wahnsinnig kompliziert ist. Oder - falls vorhanden - Websphere MQ (ehemals MQ Series) -> komplex, teuer, aber eben auch sehr gut.
Es kann ja irgendwie nicht sein, dass Rechner kunterbunt über allemöglichen Methoden aufeinander zugreifen. Wirklich nicht.