2010-03-27 4 views
1

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

Thx

+0

Что случилось с RMI? – Thilo

+0

Ничего плохого в RMI, единственный недостаток - все данные могут быть взломаны с использованием инструментов WireShark, например, имен/параметров методов. – JavaUser

+8

Вы спрашиваете о двух JVM на одном компьютере. Если они могут использовать WireShark для анализа пакетов, что означает, что они используют WireShark на * этой физической машине * (поскольку пакеты только на локальном хосте). Когда у них есть доступ к * коду на физическом компьютере, инструменты анализатора пакетов являются наименее опасными для взлома. – Nate

ответ

1

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

2

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

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

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

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

+0

+1, большинство брокеров JMS также могут запускаться в Java-приложении (если это имеет смысл) – mjn

3

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

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

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

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

Смежные вопросы