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

StackOverflow https://stackoverflow.com/questions/1426249

Вопрос

Я знаю веб-сервис и немного разбираюсь в удаленном взаимодействии. Обе концепции вызывают методы на клиентском компьютере, так в чем же разница?

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

Пожалуйста, извините, если это очевидный вопрос ..

Это было полезно?

Решение

Оба поддерживают распределенные приложения.

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

Remoting - технология только для MS, которая не является кроссплатформенной и использует двоичный формат. Он думает с точки зрения объектов, вы создаете объект на удаленном сервере и работаете с ним. Это не работает с брандмауэрами. Удаленное взаимодействие также не работает в наши дни, MS поддерживает WCF (который включает в себя веб-сервисы)

Другие советы

Концепция .NET Remoting - это особая технология взаимодействия между процессами Microsoft / .NET.

Термин «веб-служба». очень рассеянный из-за его обмана. Но я думаю, что определение W3C предназначено в большинстве случаев. Он определяет использование WSDL в качестве описания интерфейса и SOAP в качестве протокола сообщений.

Согласно Microsoft .NET Remoting: Технический обзор по MSDN Remoting использует двоичную или XML-кодировку. В то время как кодировка XML использует SOAP. Но, насколько мне известно, он не соответствует базовому профилю WS-I , Следовательно, он обеспечивает чрезвычайно ограниченную совместимость веб-сервисов.

Обе концепции допускают межпроцессное взаимодействие. Если ваше приложение использует только .NET, тогда лучше использовать .NET Remoting.

Однако, если вы планируете обеспечить совместимость с другими языками программирования, чем следует использовать веб-службы.

Веб-службы на основе ASP.NET доступны только через HTTP. .NET Remoting можно использовать по любому протоколу.

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

Веб-службы сериализуют объекты через XML, содержащийся в сообщениях SOAP, и, таким образом, могут обрабатывать только те элементы, которые могут быть полностью выражены в XML. .NET Remoting опирается на существование общеязыковых сборок времени выполнения, которые содержат информацию о типах данных. Это ограничивает информацию, которая должна передаваться об объекте, и позволяет передавать объекты по значению или по ссылке.

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

Удаленное взаимодействие и веб-службы являются способами связи между приложениями.

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

Веб-сервисы. Связь между приложениями с использованием веб-сервисов не зависит от платформы и программирования. Приложение, которое использует веб-сервис, просто получает к нему доступ, без необходимости знать, как этот веб-сервис был на самом деле реализован & amp; создано.

WebServices - это форма удаленного взаимодействия, поскольку вы эффективно выполняете код в другом месте, где вы находитесь, или на том же компьютере вне вашего AppDomain.

Удаленное взаимодействие (InterProcess) на одном компьютере или по сети отличается тем, что вы маршалируете свой объект между границами AppDomain / платформы через прозрачные прокси и сериализацию. Удаленное взаимодействие имеет свои сложности и может легко стать очень сложным. WCF сделал вещи намного проще в обслуживании. С точки зрения производительности, я не сравнивал оба подхода и определенно был бы заинтересован, чтобы увидеть, как работают оба подхода в контексте InterProcess. Поскольку WCF может связываться с двоичными привязками и не ограничивается протоколом HTTP.

WCF значительно упростила использование Pipes для взаимодействия между процессами.

В конце концов, WebServices, используемые для связи через порт 80 (стандартный), HTTP и Remoting могут обмениваться данными через предопределенные порты и каналы с использованием различных форматеров сериализации.

Теперь они обновлены WCF, который теперь предоставляет методы для этих типов связи.

Удаленное взаимодействие имитирует внешний метод, вызываемый как локальный метод, принимая параметры того же типа, поэтому все, что ему нужно, - это сериализовать объект и передать вызов удаленного метода (на том же языке или платформе) и предоставить ответ.

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

Хотя WebService реализован по протоколу HTTP, удаленное взаимодействие реализовано по протоколу TCP / UDP. Таким образом, Remoting работает лучше с точки зрения скорости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top