Я знаю, что CORBA позволяет реализовать несколько объектов на разных языках программирования и даже работать на разных вычислительных узлах. Однако, требуется ли тогда два разных ORB, написанных на двух разных языках?Должно ли приложение CORBA быть реализовано на том же языке, что и ORB?
Пример: Узел A запускает приложение Java J1, а узел B запускает приложение C++ C1. Должен ли я получить «Java ORB» для узла A и «C++ ORB» для узла B, или все/некоторые ORB взаимодействуют с приложениями, написанными на любом языке, на котором есть сопоставление IDL?
Я был бы особенно благодарен, если бы кто-нибудь мог связать меня с источником, указав это явно, как я бы хотел его процитировать. Ближайший я нашел "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". Это заставляет меня думать, что мне понадобятся два ORB, но недостаточно явных. В основном я хотел бы знать, могу ли я утверждать, что «поскольку ORB написан на C++, программистам приложений также запрещено использовать C++».
Благодаря
Позвольте мне пояснить немного больше, с конкретным примером: «ACE ORB (TAO) является совместимым с CORBA V3.0, C++ ORB» [ссылка] (http://www.theaceorb.com /) Означает ли это, что я должен писать свои приложения на C++, если использовать TAO? – Vidar
Да, это то, что он имеет в виду. Однако он может удаленно общаться с любым другим ORB на любом другом языке программирования через стандартный протокол IIOP (среди прочих). –
Спасибо вам за помощь! Консенсус, похоже, заключается в том, что для приложения требуется ORB для предоставления API на языке, в котором реализовано приложение. Часто ORB просто предоставляет API на языке программирования, который сам реализован, но нет ничего прекращающего он связывает свои основные библиотеки с API на других языках. * Кроме того, существует возможность использования любых языковых функций внедрения языка приложения, например, вызов C++ из Python или вызов C из Java. – Vidar