В чем разница между удаленным вызовом процедуры и веб-службой
Есть ли четкое определение 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 и веб-сервисов, потому что вы ясно видите их в ответах других.