Обычно вы используете RPC (или аналогичный), когда вам необходимо получить доступ к службе, внешней по отношению к текущему приложению.
Если вы просто пытаетесь вызвать метод, который является частью этого приложения (то есть в адресном пространстве этого приложения), тогда нет необходимости ... и расточительно использовать RPC.
... когда мы в идеале должны использовать RPC?
Когда вам это нужно, а не когда вам это не нужно.
Те же функциональные возможности, которые я выполняю с RPC, могут быть реализованы даже без него.
Если те же функциональные возможности могут быть реализованы без RPC, то, похоже, вам это не нужно.
Так что в каком сценарии в идеале должен быть разработан RPC .....?
Когда это необходимо (см. Выше).
Более поучительным ответом были бы сценарии, в которых есть веские причины для реализации различных функций "системы" вразные программы работают в разных адресных пространствах и (как правило) на разных машинах.Веские причины могут включать такие вещи как:
- изоляция одной части системы от другой
- реализация различных частей системы на разных языках
- взаимодействие с существующими системами
- взаимодействие с подсистемами, предоставляемыми сторонними поставщиками;например, базы данных
- , использующие вычислительные ресурсы других машин
- , обеспечивающие избыточность
- и т. д.