Работает ли Java RMI IIOP через Интернет? - PullRequest
2 голосов
/ 20 июля 2011

Я знаю, что RMI недостаточно для установления соединения вне локальной сети. Я хочу знать, может ли RMI IIOP подключить сервер-клиент через интернет. Является ли это возможным ? Если да, каковы возможные решения?

Ответы [ 3 ]

4 голосов
/ 20 июля 2011

RMI отлично работает через Интернет, он основан на TCP.Я бы лично использовал KryoNet в качестве реализации RMI.Это без проблем и очень быстро.Механизм сериализации использует Kryo, одну из самых быстрых библиотек сериализации общего назначения.Обратите внимание, что могут быть проблемы с брандмауэрами.Тем не менее, вы могли бы легко иметь RMI-сервер, который прослушивает порт 80. Это будет работать нормально (я полагаю, что если не будет интенсивного отслеживания пакетов). RMI-сервер, работающий по HTTP, тоже интересен. Ммм.

0 голосов
/ 12 августа 2011

Нет особого преимущества использования IIOP по сравнению с собственным протоколом RMI JRMP, если говорить об использовании в Интернете.

IIOP делает дает вам возможность вызывать ваши объекты Javaиспользуя не основанный на Java код, поэтому, если вы хотите поддерживать не-Java-клиенты, вам нужно подумать о IIOP или о чем-то более дружественном к браузеру / JavaScript, например SOAP или XMLRPC.

Если вы этого не сделаетеНужно поддерживать не Java-клиенты, IIOP рекомендовать особо нечего.С IIOP вы теряете распределенную сборку мусора, предоставляемую JRMP, поэтому вам нужно решить, когда какой-либо опубликованный объект RMI больше не должен публиковаться.

С JRMP все, что вам нужно беспокоиться о ручном управлении, этообъекты RMI, которые вы привязываете к реестру RMI.Все остальные публикуемые вами объекты будут автоматически собираться мусором после удаления всех ссылок на них (как локальных, так и удаленных).Если вы используете IIOP, вам придется вручную вызывать PortableRemoteObject.unexportObject (), когда пришло время выводить их из эксплуатации.

0 голосов
/ 20 июля 2011

Да, но только если порты открыты на брандмауэре. Преимущество использования HTTP вместо RMI состоит в том, что его можно легко передавать через прокси-серверы.

...