Don't you think you can write a client program in Java(On Windows) and Server program in C(On Solaris)?
Of course you can.
Why do we need CORBA standard for client-server communication between software components in different languages for different OS running on different architectures?
Because it's an instance of what you describe, and because it provides about a million facilities that you would otherwise have to code yourself every time you required them.