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

Что считается неразрывными или обратно совместимыми изменениями контракта WSDL?

На этой странице приведены следующие примеры:

  • Добавление новых WSDL-операций в существующий документ WSDL
  • Добавление новых типов схем XML в документе WSDL, которые не содержатся в ранее существовавших типах

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

4b9b3361

Ответ 1

Я потратил некоторое время на эту конкретную тему и нашел некоторые рекомендации в книге Томаса Эрла, которую я называю внизу. Вот что они должны сказать:

Совместимые изменения

  • добавление нового определения операции WSDL и связанных определений сообщений
  • добавление нового определения типа порта WSDL и связанных определений операций
  • добавление новых определений привязки WSDL и сервисов
  • добавление нового необязательного элемента XML Schema или объявления атрибута в определение сообщения
  • уменьшение степени детализации ограничений элемента XML-схемы или атрибута типа определения сообщения
  • добавление нового шаблона XML Schema к типу определения сообщения
  • добавление нового необязательного утверждения WS-Policy
  • добавление новой альтернативы WS-Policy

Несовместимые изменения

  • переименование существующего определения операции WSDL
  • удаление существующего определения операции WSDL
  • изменение MEP существующего определения операции WSDL
  • добавление сообщения о сбое в существующее определение операции WSDL
  • добавление нового требуемого элемента XML-схемы или объявления атрибута в сообщение определение
  • увеличение степени детализации ограничений элемента XML-схемы или объявления атрибута определения сообщения
  • переименование необязательного или требуемого элемента или атрибута XML-схемы в сообщении определение
  • удаление необязательного или требуемого элемента XML-схемы или атрибута или шаблона из определения сообщения
  • добавление нового требуемого утверждения или выражения WS-Policy
  • добавление нового игнорирующего выражения WS-Policy (большую часть времени)

Существует замечательная книга по этому вопросу от Томаса Эрла и др.; Название - это разработка и исполнение веб-сервисов для SOA.

НТН.

Отказ от ответственности: как я уже упоминал, это работа авторов книги, и я просто делюсь ею. Во всяком случае, я тоже не являюсь аффилированным лицом; просто понравилась книга:)

Ответ 2

Дополнительные необязательные элементы запроса (minoccurs = 0) также могут быть обратно совместимы - это зависит от реализации службы на стороне хоста. Кроме того, изменение обязательного элемента ответа на необязательный может также быть обратно совместимым - это зависит от реализации вашего клиента.

Эта область сложна.

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

Надеюсь, что это поможет.