Когда мы должны в идеале использовать удаленные вызовы процедур? - PullRequest
0 голосов
/ 20 сентября 2011

Я работаю над приложением на Java в Google App Engine, где у нас есть концепция RPC, но когда нам лучше всего использовать RPC? Та же функциональность, что и у меня с RPC, может быть реализована даже без него. Так в каком сценарии в идеале должен быть разработан RPC .....?

Ответы [ 3 ]

2 голосов
/ 20 сентября 2011

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

Если вы просто пытаетесь вызвать метод, который является частью этого приложения (то есть в адресном пространстве этого приложения), тогда нет необходимости ... и расточительно использовать RPC.


... когда мы в идеале должны использовать RPC?

Когда вам это нужно, а не когда вам это не нужно.

Те же функциональные возможности, которые я выполняю с RPC, могут быть реализованы даже без него.

Если те же функциональные возможности могут быть реализованы без RPC, то, похоже, вам это не нужно.

Так что в каком сценарии в идеале должен быть разработан RPC .....?

Когда это необходимо (см. Выше).

Более поучительным ответом были бы сценарии, в которых есть веские причины для реализации различных функций "системы" вразные программы работают в разных адресных пространствах и (как правило) на разных машинах.Веские причины могут включать такие вещи как:

  • изоляция одной части системы от другой
  • реализация различных частей системы на разных языках
  • взаимодействие с существующими системами
  • взаимодействие с подсистемами, предоставляемыми сторонними поставщиками;например, базы данных
  • , использующие вычислительные ресурсы других машин
  • , обеспечивающие избыточность
  • и т. д.
0 голосов
/ 20 сентября 2011

RPC предназначен для запроса / ответа.т. е. у вас есть отдельный запрос к службе, и вы ожидаете ответ (возвращаемое значение или состояние успеха / неудачи)

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

0 голосов
/ 20 сентября 2011

Похоже, вам не нужен RPC в вашем приложении.

RPC используется всякий раз, когда вам нужен доступ к данным из ресурсов на сервере, которые недоступны на клиенте. Например, веб-сервисы, базы данных и т. Д.

...