Используют ли RMI и веб-службы сокетное соединение?

В другом вопросе я беспокоился об использовании веб-сервиса, который занимает пять минут. Я думал об использовании RMI вместо веб-сервисов для этого варианта использования..

но в конце концов, и веб-служба, и RMI используют сокет TCP для основного соединения? Есть ли какая-то причина, почему вызов веб-службы, занимающий 5 минут, менее стабилен, чем запрос RMI, выполняющий то же время?

Обратите внимание, что в нашем случае речь идет о взаимодействии внутренних приложений.


Обновление. Этот вопрос связан с тем, что я беспокоюсь о том, что у нас могут возникнуть сбойные соединения или другие проблемы с веб-службами, выполнение которых занимает 3-5 минут. Беспокойство может быть совершенно иррациональным - отвечающие на мой другой вопрос указали, что у вас все будет хорошо, если вы контролируете и клиента, и сервер. Но я просто хотел более подробно понять, почему прерванное соединение для 5-минутного звонка с большей вероятностью использует реализацию веб-службы, чем реализацию RMI. Если они оба используют сокетные соединения, это может объяснить, почему нет разницы...

2 ответа

Решение

Если для выполнения одного удаленного вызова требуется 5 минут, то это, вероятно, связано с медленной операцией, реализующей этот вызов, а не с медленным уровнем самого веб-сервиса. Если вы перезапустите операцию с RMI, она, скорее всего, будет такой же медленной.

Повышение производительности RMI по сравнению с SOAP действительно станет очевидным только тогда, когда вы вызываете большое количество операций, а не скорость какой-либо одной операции, просто потому, что RMI более эффективен, чем SOAP. Но это волшебным образом не заставит медленную операцию идти быстрее.

Что касается вашего вопроса о сокетах, да, RMI и SOAP используют протоколы уровня сокетов, когда вы заходите достаточно далеко (IIOP или JRMP в случае RMI, HTTP в случае SOAP). Это не совсем относится к вашей проблеме, хотя.

RMI в основном используется поверх JRMP (в контексте чистого Java) или IIOP (в контексте не JVM), в то время как сообщения SOAP обычно (но не исключительно) отправляются через HTTP. Все эти трехпроводные протоколы используют TCP/IP, поэтому в этом отношении нет преимуществ выбирать RMI над веб-службой.

Другие вопросы по тегам