Подтвердить что ты не робот

Веб-службы на основе документов или RPC

Я чувствую, что на практике предпочтительны веб-сервисы на основе документов - это опыт других людей? Легче ли их поддерживать? (Я заметил, что SharePoint использует Any для "типа документа" в своем интерфейсе WSDL, я думаю, что это делает его основанным на документе).

Также есть люди, предлагающие службы WSDL и Rest type для тех же функций? WSDL популярен для генерации кода, но для интерфейсов, таких как PHP и Rails, они предпочитают отдых.

4b9b3361

Ответ 1

Документ против RPC - это только вопрос, если вы используете веб-службы SOAP, для которых требуется описание сервиса (WSDL). Веб-службы RESTful не используют WSDL, потому что сервис не может быть описан им, и возникает ощущение, что REST проще и понятнее. Некоторые люди предложили WADL как способ описания сервисов REST.

Языки, такие как Python, Ruby и PHP, упрощают работу с REST. WSDL используется для генерации кода С# (прокси-сервера веб-службы), который можно легко вызвать со статического языка. Это происходит, когда вы добавляете ссылку на службу или веб-ссылку в Visual Studio.

Предоставляете ли вы услуги SOAP или REST, зависит от ваших пользователей. Независимо от того, будут ли услуги использоваться через Интернет или только внутри вашей организации, ваш выбор зависит от вашего выбора. SOAP может иметь некоторые функции (стандарты WS- *), которые хорошо работают для B2B или внутреннего использования, но сосут для интернет-сервиса.

Документ/литерал и RPC для SOAP-сервисов описаны в этой статье IBM DevelopWorks. Документ/литерал обычно считается наилучшим для использования в плане совместимости (Java с .NET и т.д.). Что касается того, легче ли это поддерживать, это зависит от ваших обстоятельств. Мое личное мнение состоит в том, что люди склонны делать этот материал более сложным, чем нужно, и более простой подход REST превосходит.

Ответ 2

Как уже упоминалось, лучше выбрать литерал документа по RPC, закодированный, когда это возможно. Верно, что старые java-библиотеки (Axis1, Glue и другие доисторические материалы) поддерживают только кодировку RPC, однако сегодня большинство современных Java SOAP-библиотек просто не поддерживают ее (e.x. AXIS2, XFire, CXF). Поэтому постарайтесь разоблачить RPC-кодированную услугу, только если вы знаете, что вам нужно иметь дело с потребителем, который не может сделать лучше. Но опять-таки, возможно, именно XML RPC может помочь в этих устаревших реализациях.

Ответ 3

Ответ BiranLy превосходный. Я просто хотел бы добавить, что document-vs-RPC может свести к проблемам реализации. Мы обнаружили, что Microsoft является предпочтительной для Document, в то время как наши библиотеки на основе Java были основаны на RPC. Независимо от того, что вы выберете, убедитесь, что вы знаете, что другие потенциальные клиенты также возьмут на себя.