связь между двумя JVM без RMI? - PullRequest
1 голос
/ 27 марта 2010

Как два / несколько JVM, работающих на одном компьютере, могут обмениваться данными без RMI?.

Thx

Ответы [ 3 ]

3 голосов
/ 27 марта 2010

Если вы обеспокоены безопасностью связи JVM с JVM от отслеживания с помощью Wireshark и т. Д., Вы можете рассмотреть возможность связи RMI по защищенному каналу SSL или эквивалентному ему.

Однако, если кто-то может запустить Wireshark на той же машине, что и две ваши JVM, этого, вероятно, будет недостаточно для решения ваших проблем. И использование альтернативы RMI также не сделает вас более безопасным.

Для начала, если плохие парни имеют достаточные привилегии для запуска Wireshark, они почти наверняка имеют право вмешиваться в JVM таким образом, что это может подорвать использование вами защищенного канала. Например, они могут подключить отладчик к JVM или взломать код приложения (через файловую систему), чтобы утечка информации, которую вы пытаетесь защитить.

Короче, вам было бы лучше, если бы вы просто использовали RMI и тратили свое время на то, чтобы плохие парни не могли попасть на вашу машину, чтобы в первую очередь запустить Wireshark (и т. Д.).

2 голосов
/ 27 марта 2010

Общаться или вызывать методы?

Вы всегда можете открывать сокеты и напрямую общаться через произвольный протокол или даже передавать объекты туда и обратно в сериализованных формах. В большинстве операционных систем сокетные соединения между процессами на одной машине быстрее и эффективнее, чем соединения между машинами.

Хорошее место для начала - посмотреть на JMS. JMS требует дополнительного посреднического процесса, но делает взаимодействие между JVM простым куском.

Существуют также такие вещи, как J2EE и даже XML-RPC на основе http, но они могут быть излишними для ваших нужд.

1 голос
/ 27 марта 2010

сокетов, удаленный EJB, веб-сервисы ... от макушки головы. Каков ваш конкретный случай?

...