RPC vs REST в веб приложении
От: developer999999  
Дата: 18.03.16 21:20
Оценка:
дано распределенное веб приложение на нескольких машинах
каковы плюсы и минусы RPC в сравнении с REST в такой архитектуре?

в данном случае под RPC имеется в виду следующее
в сообщение пакуется название вызываемого компонента, метод который нужно вызвать, данные для метода, и всякие параметры окружения, которое нужно создать на др конце перед вызовом
затем сообщение отпровляется в сериализованном виде в единую точку входа на др конце

сам я вижу такие минусы
— проблемы с тестированием, это будет сложнее делать
— больше проблем с безопасностью

плсы
— большая гибкость
— единая точка входа
Отредактировано 18.03.2016 21:23 developer999999 . Предыдущая версия .
Re: RPC vs REST в веб приложении
От: Baudolino  
Дата: 20.03.16 18:38
Оценка:
REST лучше. Принципиально подходы ничем не отличаются: в обоих случаях решаются задачи аутентификации клиента, авторизации выполнения запроса, маршрутизации запроса по URI, разбора переданной модели данных и т.п.
Разница в том, что в случае с REST у вас есть развитая инфраструктура решения этих задач, потому что все эти операции стандартизованы на уровне HTTP протокола и вам не нужно изобретать велосипеды.
Вы спокойно можете вынести безопасность и часть маршрутизации в API Gateway сторонних производителей, оставшуюся маршрутизацию возьмет на себя веб-сервер, а вам нужно только реализовать логику обработки конкретных запросов.
Re: RPC vs REST в веб приложении
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.03.16 05:51
Оценка:
Здравствуйте, developer999999, Вы писали:

D>дано распределенное веб приложение на нескольких машинах

D>каковы плюсы и минусы RPC в сравнении с REST в такой архитектуре?
http://rsdn.ru/rsdnsearch/design?text=RPC%20vs%20REST
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: RPC vs REST в веб приложении
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 29.06.16 11:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

D>>дано распределенное веб приложение на нескольких машинах

D>>каковы плюсы и минусы RPC в сравнении с REST в такой архитектуре?
S>http://rsdn.ru/rsdnsearch/design?text=RPC%20vs%20REST

Вот известный пример — поднять зп всем сотрудникам на 10%. Как это делать через REST ?
В RPC все просто — SetSalary(Employe.All, Money.Percents(110))
И на сервер уходит практически то же самое.
А вот с REST чего будет ?
Re[3]: RPC vs REST в веб приложении
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.06.16 11:31
Оценка: 15 (1) +2
Здравствуйте, Ikemefula, Вы писали:
I>Вот известный пример — поднять зп всем сотрудникам на 10%. Как это делать через REST ?
I>В RPC все просто — SetSalary(Employe.All, Money.Percents(110))
I>И на сервер уходит практически то же самое.
I>А вот с REST чего будет ?
Нюансы зависят от того, как именно спроектирована топология сервиса. Либо бежим по сотрудникам и делаем PUT, либо делаем POST на "SalaryChangeOrder" со списком сотрудников, который уже на стороне сервиса процессится нужным нам образом.
Второй способ лучше. Ваш RPC-код во-первых не работает — потому, что не бывает задачи "поднять зарплату прямо сейчас". Всегда делается "поднять с 1го числа следующего месяца", или ещё как-то — т.е. есть effective date, иначе у нас нет способа проверить корректность начисления зарплаты за предыдущие месяцы.
Во-вторых он не работает — потому что если клиент получил таймаут, то у него нет способа узнать, повысили зарплату или нет. Повторный вызов рискует поднять зарплату на 21%.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.