I am aware that CORBA allows for multiple objects to be implemented in different programming languages and even run on different computing nodes. However, does this then require two different ORBs written in two different languages, as well?
Example: Node A runs Java application J1, while node B runs C++ application C1. Will I have to obtain a "Java ORB" for node A and a "C++ ORB" for node B, or can all/some ORBs interact with applications written in any language that there is an IDL mapping for?
I would be especially grateful if anyone could link me to a source stating this explicitly, as I would like to cite it. The closest I have found is "the way a programmer manipulates a struct or union, makes a remote call using a proxy or implements an interface with a servant class is exactly the same across all C++ CORBA products, is exactly the same across all Java CORBA products, and so on" . This makes me think that I would need two ORBs, but is not explicit enough. I would basically like to know if I can state that "As the ORB is written in C++, application programmers are also constrained to use C++".
Thanks
It is not important in which language ORB is implemented, it is important which language bindings it provides. For language L you need orb that provides bindings for language L. Often orbs just provide binding for the language in which themselves are written, but they can also provide bindings for some other languages.