Ik ben al enige tijd op zoek naar het bestaan van een soort RPC (Remote Procedure Call) server voor Unix. Deze zou op basis van een server client model moeten kunnen werken. Het communicatie protocol tussen deze 2 maakt me verder niet zoveel uit. Het zou natuurlijk mooi zijn als dit b.v. op basis van XML zou gaan maar enkel TCP/IP of Unix IPC (enkel lokaal dus) zou ook voldoende zijn.
Het ‘specifieke’ aan deze RPC server (daemon) is dat deze een intern een (console) applicatie kan starten en hiervan de output op aanvraag van de client kan doorgeven. Ook moet deze server nadat hij de applicatie heeft gestart nog input kunnen geven aan dit proces. Deze input is vanzelfsprekend afkomstig van de client. Wat duidelijk niet de bedoeling is dat er een continue verbinding bestaat tussen server / client. De client moet het server proces op afroep kunnen aanspreken informatie uitwisselen en weer kunnen afhaken.
Ik kan me voorstellen dat dit allemaal een beetje vaag overkomt, daarvoor probeer ik even een concreet toepassingsvoorbeeld te gegeven.
Stel, ik geef de RPC server de opdracht (vanaf de client) om b.v. met Mplayer mijn playlist (in console mode) af te spelen. De opdracht is gegeven en vervolgens speelt mplayer mijn muziek zonder dat er noodzakelijkerwijs een client verbonden is met de server. Op een volgend moment wil ik weer een verbinding kunnen maken met de server waarop ik vervolgens de output van Mplayer binnen krijg. Ook moet het mogelijk zijn om opdracht te geven het volgende nummer te spelen (Dit alles mits Mplayer dit normaal gesproken ook ondersteund).
Ik hoop dat mijn voorbeeld wat verduidelijking geeft. Eigenlijk lijkt het geheel wel wat op een screen sessie. Hierbij kan ook Mplayer in een proces worden gestart en kan vervolgens het proces verlaten worden. Hierna kan weer opnieuw de verbinding worden hersteld met de screen sessie en kan er input aan Mplayer worden gegeven. Het verschil hierbij is dat er ‘actieve’ handelingen van de gebruiker nodig zijn en dit (voor zover ik heb kunnen nagaan) biet geautomatiseerd kan worden.
Heeft iemand voor mij suggesties of ideeën dan hoor ik die graag.
Het ‘specifieke’ aan deze RPC server (daemon) is dat deze een intern een (console) applicatie kan starten en hiervan de output op aanvraag van de client kan doorgeven. Ook moet deze server nadat hij de applicatie heeft gestart nog input kunnen geven aan dit proces. Deze input is vanzelfsprekend afkomstig van de client. Wat duidelijk niet de bedoeling is dat er een continue verbinding bestaat tussen server / client. De client moet het server proces op afroep kunnen aanspreken informatie uitwisselen en weer kunnen afhaken.
Ik kan me voorstellen dat dit allemaal een beetje vaag overkomt, daarvoor probeer ik even een concreet toepassingsvoorbeeld te gegeven.
Stel, ik geef de RPC server de opdracht (vanaf de client) om b.v. met Mplayer mijn playlist (in console mode) af te spelen. De opdracht is gegeven en vervolgens speelt mplayer mijn muziek zonder dat er noodzakelijkerwijs een client verbonden is met de server. Op een volgend moment wil ik weer een verbinding kunnen maken met de server waarop ik vervolgens de output van Mplayer binnen krijg. Ook moet het mogelijk zijn om opdracht te geven het volgende nummer te spelen (Dit alles mits Mplayer dit normaal gesproken ook ondersteund).
Ik hoop dat mijn voorbeeld wat verduidelijking geeft. Eigenlijk lijkt het geheel wel wat op een screen sessie. Hierbij kan ook Mplayer in een proces worden gestart en kan vervolgens het proces verlaten worden. Hierna kan weer opnieuw de verbinding worden hersteld met de screen sessie en kan er input aan Mplayer worden gegeven. Het verschil hierbij is dat er ‘actieve’ handelingen van de gebruiker nodig zijn en dit (voor zover ik heb kunnen nagaan) biet geautomatiseerd kan worden.
Heeft iemand voor mij suggesties of ideeën dan hoor ik die graag.