Каковы преимущества и недостатки удаленных процедурных вызовов - PullRequest
2 голосов
/ 07 апреля 2010

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

Кроме того, лучше всего подходит RPC для TCP / IP, HTML или аналогичных других сред передачи.

Спасибо и заранее.

1 Ответ

2 голосов
/ 08 апреля 2010

Я думаю, что вы смешиваете и сопоставляете различные части интернет-стека. Следуя пятислойной сетевой модели (есть также семислойная модель , которую вы можете сравнить),

  1. Уровень приложений: многие, включая HTTP, RPC и т. Д.
  2. Транспортный уровень: TCP (существуют другие, включая UDP, ICMP)
  3. Сетевой уровень: IP
  4. Ссылочный слой
  5. Физический уровень

RPC будет находиться на уровне приложения, поэтому я не очень понимаю, как HTML будет задействован.

Относительно RPC: Он (наряду с другими подобными протоколами, такими как RMI ) Java дает вам способ прозрачного вызова процедуры, расположенной на другом компьютере в сети, как если бы она была локальной. Это хорошо? Внешне это может показаться, что распределенные вычисления проще, но это может быть иллюзией. Потому что обращение с распределенной системой как с одним компьютером может быть очень опасным способом программирования.

Уолдо и др. очень хорошо описывают проблему (серьезно, это отличная статья). Распределенные системы имеют проблемы, которых нет в автономных системах: задержка; частичный сбой; разные модели доступа к памяти. Это «жесткие части» распределенных вычислений. RPC решает «простую часть»: сортировку и демарширование данных, а также обработку жестких частей, что, скорее всего, приводит к ложному ощущению безопасности.

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