Существует несколько подходов, которые можно использовать при реализации приложений CORBA, но, суммируя их, да, инфраструктура ORB должна быть на том же языке, что и реализация вашего приложения.
Как в Java, так и в C ++компилятор IDL создает заглушки и скелеты , которые служат связующим звеном между сетью и вашей программой.Вы предоставляете реализацию своих объектов CORBA, обычно наследуя от сгенерированного классом компилятора IDL (скелет).Скелет каким-то образом получает запрос от клиента , а затем вызывает вашу реализацию.То же самое происходит в обратном направлении на стороне клиента.
Затем и скелет, и заглушка используют механизмы, предоставляемые ORB, для удаленного вызова серверов и для ответа на ответы, даже включая стабилизацию сетевых подключений, если клиент исерверы находятся на разных машинах.Эта «магия» реализуется ORB и должна присутствовать в вашей программе в виде библиотеки, набора функций и т. Д., Которые заглушка и скелет будут использовать для выполнения работы.
Итаккаждая программа должна иметь какое-то представление ORB для взаимодействия с другими клиентами и серверами CORBA на других машинах.
Однако, с логической точки зрения, ORB рассматривается как слой, который на самом делеи беспрепятственно соединяет как клиентов, так и серверы, поэтому, даже когда приложение C ++ имеет некоторую реализацию ORB, написанную на C ++, а реализация Java имеет ORB, написанную на Java, благодаря магии стандартных протоколов (GIOP, IIOP), ониобщаются без проблем.