RPC и RMI - это тесно связанные способы вызова метода из приложения удаления сервера.
RCP - это версия C / C ++, RMI - это версия Java, см. В чем разница между Java RMI и RPC?
для дальнейшей информации.
Но вы можете смело забыть о RPC и RMI, потому что у них такая тесная связь, и они пока считаются «не современными». Например, чтобы получить адрес «Пита» с сервера, клиент должен вызвать что-то вроде: address = server.getAddress("Pete")
Проблема в том, что когда вы вносите небольшие изменения в API-интерфейс сервера, вам также необходимо обновить все клиенты. Если у вас более одного клиента на одном сервере, это приводит к «обновлению ада».
JMS лучше, потому что вы общаетесь через сообщения, а не вызовы методов. Вы отправляете информационные пакеты (= сообщения) от одного компонента другому. Информирование другой стороны о событиях. Например, client1 может отправить сообщение: msg.setJMSReplyTo("client1"); producer.send( "ADDRESS-SERVER", msg ); response = consumer.receive()
(псевдокод) и получить сообщение. Сервер может добавить новые поля ответа (улица / почтовый индекс), например, для client2, по адресу, не прерывая связь с client1.
JMS может быть запросом / ответом, но также может быть публикацией и подпиской (лучший метод для интеграции предприятий). Поставщиков JMS много, некоторые бесплатны, например ActiveMQ, и, как правило, очень эффективны с точки зрения количества сообщений в секунду.
WebServices основаны на HTTP. REST или SOAP . SOAP отчасти устарела. REST использует специальные URL для получения или отправки информации на / с веб-сервера. Если важна высокая производительность (100 000 запросов в секунду или более), вы должны рассмотреть JMS, но если у вас есть опыт работы с WebServers и т. Д., REST также может быть полезен для интеграции. Одним из преимуществ WebServices является то, что вы можете использовать стандартные браузеры для отладки этой службы, и что зачастую брандмауэры легче открыть на порту 8080.
Мой совет, если у вас нет предпочтений: узнайте о JMS Topics и начните думать о том, как решать проблемы с «управляемыми событиями / push-вычислениями» - особенно в бэкэнде это хорошо архитектура. Для большей интеграции с веб-интерфейсом REST WebServices - это путь.