Вызов удаленных функций .NET с помощью клиента JRMI

Мне нужно написать приложение Bridge в .NET, а клиент - Java RMI. Я пытаюсь найти правильный способ реализации сервера в .NET, если это возможно.


person Michael_N    schedule 05.06.2016    source источник
comment
Это не так. Java RMI опирается на сериализацию Java, и для этого вам нужна JVM.   -  person user207421    schedule 06.06.2016


Ответы (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, который я считаю утомительным и подверженным ошибкам.

person asynchronos    schedule 06.06.2016