I’m developing a software that contain many modules/Daemon running in parallel manner, what i’m looking for is how to implement that, i cannot use Thread because some of those modules/Daemon are perhaps implemented in other languages (C,java,C#…).
For example I’m using C for Hooking Messages exchanged between Windows kernel and top level applications, Java/C# to use some free library to simply parse XML(for example) or to accept and execute commands over the network..this can be done by C Language but just to improve productivity…
Finally for GUI I’m using Ultimate++ (c++) that is like the main process that call and monitor(activate/deactivate/get state) of all other modules/Daemon through an interface.
I admit that the development of each module/Daemon in a separate language greatly facilitates maintenance, but especially I am obliged to do that..
What is the best practice way to do that ?
All helps will be appreciated.
2
Message passing is probably a good option. On UNIX pipes and sockets would be a standard way to accomplish that. (Windows has similar concepts.) In fact this even simplifies concurrency because you don’t share any memory.
1