Является ли истинная совместимость SOAP мифом? - PullRequest
5 голосов
/ 30 августа 2010

Я имею в виду, true true interop: из Java в .NET, из PHP в Java и т. Д.

Я спрашиваю, потому что наши власти хотят, чтобы мы реализовали общедоступный API с помощью веб-сервисов SOAP, и я стараюсь сделать упор на RESTful XML / JSON API.

Их рассуждения вызваны «промыванием мозгов»:

  • SOAP - это протокол, основанный на стандартах (не говоря уже о том, что один из наших разработчиков провел последние 4 дня в конфигурации XML и пользовательских сериализаторах токенов безопасности, пытаясь каким-то образом изогнуть клиента WCF, чтобы он вызывал службу WSE 3.0 и производил все виды непонятных ошибок),
  • SOAP безопасен (но с точки зрения бизнеса нам не нужны ни шифрование, ни цифровые подписи - HTTP поверх SSL будет более чем достаточно)
  • Наконец, SOAP является функционально совместимым, и это, по-видимому, является главной точкой продаж для них (весь смысл этого вопроса)

Еще раз: действительно ли SOAP совместимо? Ваши истории о реальных войнах будут отличными.

Ответы [ 2 ]

3 голосов
/ 30 августа 2010

Пока вы придерживаетесь основанных на WS-I стандартов SOAP, взаимодействие, как правило, довольно простое.WS-I был разработан для решения начальных проблем взаимодействия, от которых пострадали ранние реализации SOAP.

Проблемы, как правило, возникают при использовании веб-сервисов до WS-I (например, кодирование rpc) или при использованиимодные расширения безопасности, из которых такие, как WCF, имеют большое значение.Они становятся сложными, и их трудно отлаживать, когда они идут не так, как надо.

1 голос
/ 31 августа 2010

Да, по большей части это так, хотя иногда это может быть битва.У меня есть ряд основанных на стандартах мыльных сервисов, и некоторые языки / библиотеки кажутся проще, чем другие.

Однако на земле SOAP все не так радует.Одна особенно непослушная библиотека (Apache Axis) по умолчанию компилирует копию WSDL в свои заглушки .... что само по себе не странно, потому что .net делает то же самое .... но проблема в том, что она также проверяетWSDL для любых изменений вообще.И если обнаруживается изменение, оно выкидывает.

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

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