I am currently developing a GUI based on Adobe AIR which will be running on a Linux environment (and possibly other platforms in the future).
Adobe AIR doesn't implicitly allow a developer to execute other processes natively, but it does allow to interact with other applications using standard network sockets. I require a socket server that will listen to socket communication from the Adobe AIR client and perform the requested shell action (such as executing a shell command and returning the result over the socket connection if necessary).
The other requirement is that it act as a DBUS proxy so that it can consume any DBUS data and format it as an array to pass it over the same socket connection.
The language of preference for this socket server is not too important for me. Cross-platform is a definite plus for this project; it might be a future requirement to have this AIR app run under Linux, Mac, and/or Windows, so it would be very useful if the socket server can work on all of those environments from the start.
EXAMPLE 1: SIMPLE REQUEST
As a quick example, let's suppose that I want to enable the screensaver using my AIR app:
1. AIR app sends request over the socket connection
2. Socket server listens and executes a DBus command to activate the screen saver (example: [url removed, login to view])
3. Socket server sends back a command to the AIR app to signal acknowledgement
EXAMPLE 2: RETURNING DBUS DATA
Another simple example would be if I wanted to know how many seconds my screen saver has been active for. The AIR app would need to retrieve the info from the socket server so that it can display it on screen:
1. Same as before
2. Socket server listens and executes a DBus command to retrieve the number of seconds the screensaver has been activated for (example: [url removed, login to view])
3. Socket server returns the number itself through the socket for the AIR app to easily consume
Hopefully I have explained what I need clearly enough. I am obviously available to answer any questions if this is not the case. Here is a link to what the AIR side of things looks like: [url removed, login to view] Thank you for your time!