В чем разница между удаленным вызовом процедуры и веб-службой

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

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

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

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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

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

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