В чем разница между rpc, rmi, jms и веб-сервисами? - PullRequest
0 голосов
/ 04 апреля 2019

Может кто-нибудь объяснить, в чем разница между rpc, rmi, jms и веб-сервисами. Веб-сервисы, которые я знаю, это мыло и отдых. Я не понял, как jms входит в картину при использовании веб-сервисов, а также какой смысл использовать esb?

1 Ответ

0 голосов
/ 04 апреля 2019

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 - это путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...