Как стать автором
Обновить

Комментарии 12

клиент вызывает функцию напрямую, как если бы она была локальной

То есть, по RPC получив доступ можно вызывать любую функцию? Что с защитой в этом плане?

На фразе что "RPC бинарный, а REST текстовый" где-то вдалеке заплакали всякие SOAP и CORB'ы.
Вообще статья даже хуже, чем написал бы ChatGPT: RPC и REST это ортогональные вещи, которые (сюрприз!) могут быть реализованы в том числе посредством друг друга.

Не совсем. REST предполагает операции над ресурсами и первичны именно ресурсы, в RPC единицей является вызываемый метод. Так что все-таки это разные идеологии. Впрочем, автор статьи, конечно, ничего не знает ни о REST, ни о RPC.

А чем отличается унарный gRPC от Rest? В Rest Api у нас есть эндпоинт, который обрабаывает хендлер, то есть когда мы дергаем эндпоинт, то по сути мы запускаем функцию, которая уже дальше идет по слоям кода. С унарным gRPC также, мы дергаем функцию. Конечно, есть разница в http2, protobuf и тд. Но я про концепцию, в унарном gRPC и Rest вызывается функция)))

Ответ: RPC (Remote Procedure Call) — это протокол, позволяющий программе на одном компьютере вызвать функцию на другом компьютере так, будто эта функция находится на первом компьютере.

Что, вот реально строго-настрого запрещено использовать RPC для информационного обмена в пределах одного хоста? Или всё-таки насчёт обязательности другого компьютера - это неоправданный перебор?

будто эта функция находится на первом компьютере.

Некорректно. Та же функция, но вызванная локально, скорее всего вернёт совсем иной результат.

НЛО прилетело и опубликовало эту надпись здесь

Вопрос: RPC можно на фронте использовать или это чисто бэковская история?

В далекой-далекой галактике в 1997 году MS сотоварищи специально для использования во фронте придумали XML-RPC. А уж сколько с тех пор понаписали вариантов RPC для фронта - никто не считает.

Удалённый вызов процедур (иногда вызов удалённых процедур; RPC от англ. remote procedure call) — класс технологий, позволяющих программам вызывать функции или процедуры в другом адресном пространстве (на удалённых узлах, либо в независимой сторонней системе на том же узле). Обычно реализация RPC-технологии включает два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов (или структур для необъектных RPC). Различные реализации имеют отличающуюся друг от друга архитектуру и разнятся в возможностях: одни реализуют архитектуру SOA, другие — CORBA или DCOM. На транспортном уровне RPC используют в основном протоколы TCP и UDP, однако, некоторые построены на основе HTTP.

Существует множество технологий, обеспечивающих RPC, среди них:

DCE/RPC — двоичный протокол на базе различных транспортных протоколов, в том числе TCP/IP и Named Pipes из протокола SMB/CIFS;

DCOM — объектно-ориентированное расширение DCE/RPC, позволяющее передавать ссылки на объекты и вызывать методы объектов через таковые ссылки;

Microsoft RPC;

gRPC;

ZeroC ICE;

JSON-RPC — текстовый протокол на базе HTTP[1]

.NET Remoting — двоичный протокол на базе TCP, UDP, HTTP;

Java RMI — вызов удалённых методов для платформы Java[2];

SOAP — текстовый протокол на базе HTTP[3];

Sun RPC — двоичный протокол на базе TCP и UDP и XDR[4], второе название — ONC RPC[5];

XML RPC — текстовый протокол на базе HTTP[6].

Этой аббревиатуре 20+ лет, как и технологии.

MS на DCOM реализовывал как вариант.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории