В чем разница между удаленным вызовом процедуры и веб-службой - PullRequest
74 голосов
/ 12 июня 2010

Есть ли четкое определение RPC и веб-службы?Быстрый поиск в Википедии показывает:

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

Веб-служба. Веб-службы обычно представляют собой интерфейсы прикладного программирования (API) или веб-API, доступ к которым осуществляется через протокол передачи гипертекста и которые выполняются в удаленной системе, в которой размещены запрошенные службы.Веб-сервисы, как правило, попадают в один из двух лагерей: Большие веб-сервисы [1] и Веб-сервисы RESTful.

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

Является ли веб-служба представлением RPC более высокого уровня?

Ответы [ 4 ]

53 голосов
/ 12 июня 2010

Является ли веб-сервис более высокого уровня представление RPC?

Да, это так. Веб-сервис - это конкретная реализация RPC. На самом низком уровне веб-служба подключается к сокету, используя протокол HTTP, для согласования отправки полезной нагрузки, которая выполняется в удаленном пространстве (удаленное пространство может быть одним и тем же компьютером). Все эти абстракции удаленного вызова по своей сути являются RPC.

5 голосов
/ 15 сентября 2014

Удаленный вызов процедур (RPC) и WebService в целях функциональности идут параллельно. Но есть небольшая разница в способе их обращения. Веб-сервис может быть вызван любым приложением, использующим формат XML по протоколу HTTP для процедур и его функционально совместимый характер, тогда как в случае RPC функция может быть вызвана несколькими приложениями, поэтому она следует пути сериализации для хранения данных объекта. Он поддерживает двоичный формат по протоколу TCP. В лучшем подходе мы можем кратко описать рабочий процесс RPC, как будто мы выполняем функцию через надлежащий Socket и надлежащий формат сообщения, но не знаем фактического существования конкретной функции на клиентском сервере. Даже указанный сокет может отсутствовать в тот же сервер, на котором находится функция. Но каждый раз это дает ощущение, будто функция находится на местном уровне. В удаленном сервисе эта функция находится на удаленном компьютере, и ее можно вызывать в правильном формате и протоколе, что обеспечивает масштабируемость.

1 голос
/ 18 июля 2014

• Данные форматируются для передачи с использованием XML, улучшая или устраняя маршалинг, демаршаллинг и различные другие связанные с переводом требования, обычно кодируемые разработчиком.• Данные передаются с использованием стандартизированных протоколов, таких как HTTP или SMTP, которые опубликовали четко определенные стандарты.• Основной предоставляемый сервис четко определен с использованием известного принятого механизма WSDL.• Службы обнаруживаются с использованием четко определенного стандарта, UDDI и более совершенного ebXML.

В частности, WSDL предоставляет ряд ключевых элементов информации:

• Определение формата сообщений, которые передаются между двумя конечными точками, с использованием своих элементов и и соответствующих определений схемы.• Семантика службы: как ее можно вызвать для синхронного запроса / ответа, только для синхронного ответа или для асинхронной связи.• Конечная точка и транспортировка услуги через элемент: то есть, кто предоставляет услугу.• Кодирование через элемент, то есть как осуществляется доступ к услуге.

0 голосов
/ 18 февраля 2019

Я вижу этот вопрос. Вопрос задавался давно, но я думаю, что чей-либо ответ в этом сообществе, предоставляющий больше информации и ясности по этой теме, будет полезен для будущих спрашивающих. Итак, я хотел бы добавить свое улучшение, указывающее на ключевые различия, и я надеюсь, что оно будет полезно для будущих читателей.

------------------------------------------------------------------------------
| Category             |    RPC              |    Web Services
------------------------------------------------------------------------------
|Operation's Location  |   On top of TCP     |  on top of HTTP Protocol
------------------------------------------------------------------------------
|Data format           | Binary              | Text, XML, JSON, ect.
------------------------------------------------------------------------------
|Speed                 | Slow (Marshilling)   | Fast
------------------------------------------------------------------------------

Я не упомянул описания RPC и веб-сервисов, потому что вы ясно видите их в ответах других.

...