Target of the project is to implement C application (app1) which can launch multiple instances of another C application (app2) in own processes and communicates with processes using bidirectional channel (pipe, popen...). The target application will have lightweight web server integrated, but that is out-of-scope for this project. The app1 will have callback function which is called when web requests are received (out-of-scope), in this project scope its enough to start the execution flow from the callback function e.g. to have function simulating web server callback function and when this function is called with parameter x it will launch app2 in new process, with parameter y it will terminate app2 and so on.
The target application (app1) must keep track of app2 processes and be able to map incoming web requests to right app2 process based on the identifier provided in the web request which should be stored together with the app2 process id when the process is created.
In addition to incoming web requests (received in the callback function) the application must listen incoming messages from app2 and be able to map the message to the identifier associated to app2 when it was launched.
The basic flow is that app1 receives web request, launches app2 in own process unless its already running (for the same identifier specified in the request), sends request to app2 as a message, app2 processes the message asynchronously and returns response later.
I need this application done quickly so please don't bid unless you are available now and have strong C skills. I have lots of other projects to offer immediately if this one goes well. If you don't have any previous reviews in [url removed, login to view] I expect you to provide small sample app related to IPC while bidding to demonstrate your skills.
Please let me know if you have any questions.