I\'ve been enamoured with component based programming (be it with COM, another system, or just using the paradigm in plain C++). It requires a bit of getting used to, if one is
Shouldn't Qt be an Alternative?
http://qt.io
AFAIKT you can use it at least on: Windows | Mac | Linux/X11 | Solaris | Embedded Linux | Windows Embedded | Green Hills Software INTEGRITY | QNX | VxWorks
That's quite much IMHO.
You say CORBA would be great. I can only assume you have never used it. It is sprogramming nightmnare, and doesn't offer the portability it claims. I would only use it if an existing application already implemented it. However, I wouldn't chuck it out on performance grounds - I've mnever experienced any performance problems with any of the CORBA implementations I've used.
For maximum breadth, I'd just use web services. A service-oriented approach is very close to a component-oriented approach, as only the service contracts (interfaces) are exposed, and no details of the inner workings of the service need ever be known by the clients.
Why do you think that CORBA is not fast enough? Have you measured things recently?
Modern implementations of CORBA can make remote calls in less than 150 usecs. Way below your 2msec budget. Modern implementations of CORBA can optimize in-process calls to basically two virtual function calls, though that usually requires the application to forgo some features (interceptors for example.) Even a full featured in the worst case scenario local calls are a couple of lookups + some virtual calls, I do not have numbers handy, but I am certain it is below 50 usecs.
Check this out for some performance numbers:
http://www.dre.vanderbilt.edu/Stats/performance.shtml
Take a look at the AF Architecture:
"Af-Arch is a complete set of libraries and tools which allows to develop distribuited system especially designed to face problems about bussiness applications."
I know it works with linux and windows. I also know it has a very fast C API and C# bindings for it.
CORBA would certainly be an answer - you should test it before you dismiss it based on speed.
A definite alternative would be XPCOM http://en.wikipedia.org/wiki/XPCOM - lack of MSVC does not mean not cross platform.
Good Luck