Мне нужно написать приложение Bridge в .NET, а клиент - Java RMI. Я пытаюсь найти правильный способ реализации сервера в .NET, если это возможно.
Вызов удаленных функций .NET с помощью клиента JRMI
Ответы (1)
Это не невозможно, но почти наверняка не стоит усилий по разработке моста в чистом .NET. Если вы не можете изменить клиент на более совместимую технологию (некоторый многоязычный RPC или REST), подумайте, как интегрировать серверную часть Java RMI в приложение-мост.
Например, вы можете разместить JVM в «собственном» процессе, который вы разрабатываете на C/C++, или вы можете загрузить DLL собственного кода в процесс JVM. В любом случае вы используете JNI для связи с Java на C/C++. И вы можете разработать сторону C/C++ в C++/CLI, чтобы осуществить переход на .NET. (Это приводит к интересному сценарию, когда и JVM, и CLR работают в одном и том же процессе, что лично я никогда не использовал.)
В качестве альтернативы вы можете разделить Java и .NET на стороне сервера на отдельные процессы и заставить их взаимодействовать, опять же, используя многоязычный RPC или REST (обратите внимание, что это не требует смены клиента). Если интерфейс, который вы соединяете, большой, вы можете предпочесть этот подход написанию собственной части большого интерфейса JNI, который я считаю утомительным и подверженным ошибкам.