SOAP-запрос / ответ на основе стиля / использования - PullRequest
3 голосов
/ 10 июня 2011

Мне было интересно, может ли кто-нибудь объяснить различия в запросе / ответе SOAP веб-службы со следующим стилем / использованием привязки wsdl:

  1. Document / literal
  2. RPC/ literal
  3. стиль упакованного документа

Заранее спасибо

1 Ответ

3 голосов
/ 12 августа 2011

Эта статья из IBM DeveloperWorks [ Какой стиль WSDL мне следует использовать? ] содержит отличное объяснение различий между этими стилями связывания. Короче говоря, единственными отличиями являются значения атрибута «style» привязки SOAP («rpc» или «document») в файле WSDL и способ определения аргументов сообщения и возвращаемых значений (и, следовательно, их отображения в Сами сообщения SOAP):

[ Обратите внимание на изменение порядка пунктов в вопросе, чтобы подчеркнуть отношения ]

  1. RPC / literal - Элемент сообщения WSDL определяет аргументы и возвращаемые значения операций.
    • PROS: простой WSDL, имя операции отображается в сообщении SOAP, WS-I-совместимый.
    • CONS: трудно проверить, поскольку аргументы определены в WSDL, а не в XSD.
  2. Document / literal - Части сообщения WSDL являются ссылками на элементы, определенные в XML-схеме.
    • PROS: легко проверяется с XSD, WS-I-совместимым, но допускает поломку.
    • CONS: сложный WSDL, сообщение SOAP не содержит имени операции.
  3. Завернутый документ / литерал (или «стиль упакованного документа») - Ввод сообщения WSDL имеет один входной и выходной параметры, а вход относится к элементу XSD с тем же локальным именем, что и операция WSDL.
    • PROS: легко проверяется, сообщение SOAP содержит имя операции, соответствует WS-I.
    • CONS: сложнейший WSDL (не официальный стиль, а соглашение).

По моему опыту, # 3 (Document / literal Wrapped) очень распространен в крупных корпоративных проектах, потому что он совместим как с Microsoft, так и с OSS, и хорошо подходит для нисходящей модели разработки (например, сначала WSDL / XSD, затем генерировать артефакты кода). Microsoft изобрела его [1] , и популярные инструменты Java / OSS ( Axis2 , JAX-WS ) поддерживают его явно.

Разница в "реальном мире", скорее всего, заключается в том, какие стили поддерживаются & mdash; и как хорошо & ndash; с помощью инструментов по вашему выбору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...