При пользовании библиотекой IPC важно, чтобы это обеспечило возможность, что оба клиента и сервера могут связаться, даже когда их версия API отличается. Поскольку я рассматриваю использование SOAP для нашего клиент-серверного приложения, интересно, может ли решение SOAP/WSDL иметь дело с изменениями API хорошо.
Например:
Примечание: "структурой" я имею в виду составной тип
Насколько я знаю, нет таких вещей, как стандарт SOAP / WSDL. Но инструменты существуют, чтобы справиться с такими вопросами. Например, в Glassfish вы можете указать XSL таблица стилей для преобразования запроса / ответа веб-службы. Другое решение, такое как Oracle Soa Suite, предлагают гораздо более подробные инструменты для управления версиями веб-сервиса и интеграции компонента вместе. Сообщение может быть маршрутизировано автоматически на другую версию веб-сервиса и / или преобразованных . Вам нужно будет проверить, что предлагает ваша целевая инфраструктура.
Редактировать :
XML и XSD более гибкие относительно эволюции схемы, чем типы и сериализация на объектно-ориентированных языках. Некоторые вещи могут быть сделаны обратно совместимым, просто объявляя их как необязательно, например,
NULL
, если клиент не отправляет его NULL
, если клиент не предоставляет его Обратите внимание, что я не на 100% уверен в списке. Но несколько тестов могут показать вам, что работает и что нет. Дело в том, что XML отправляется через провод, поэтому он дает некоторую гибкость.
Нет. Вам придется как-то управлять этим вручную. Обычно путем создания нового интерфейса при внесении серьезных / критических изменений.
В общем, это проблема архитектуры, а не технического характера. После публикации интерфейса вам действительно нужно подумать о том, как обрабатывать изменения.