Каковы некоторые полезные методы для оптимизации необработанных запросов и ответов SOAP? - PullRequest
4 голосов
/ 16 мая 2011

Как разработчик веб-служб SOAP, мне любопытно, какие методы я могу реализовать для оптимизации наших ответов SOAP на уровне необработанного XML.В настоящее время наш корпоративный веб-сервис позволяет клиентам выполнять десятки тысяч операций в пакетном режиме, но моя команда ищет способы дальнейшей оптимизации, вплоть до того, как мы форматируем наш xml.Мне известны MTOM и XOP, но какие методы я могу использовать на уровне raw xml для уменьшения полезной нагрузки?Точнее говоря, я слышал об использовании односимвольных пространств имен, числовых идентификаторов, отбрасывании ненужного форматирования или комментариев, и тому подобном, но какие еще хорошие методы используются для минимизации полезной нагрузки?

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Вот несколько советов, которые могут вам пригодиться.

  1. Если у ваших веб-сервисов есть некоторый «контекст», в котором они работают - вы можете посмотреть на WS-Context . WS-Context вводит терминологию Context-Store для получения контекста, связанного с URI в сообщении SOAP. Помимо минимизации размера сообщения, использование Context-store гарантирует целостность обмена сообщениями.
    1. Исследовательская работа Оптимизация производительности обмена сообщениями веб-службы с помощью хранилища контекста для статических данных (pdf) документирует использование WS-Context - что может оказаться полезным.
  2. MTOM, XOP - вы уже упоминали, что знаете.
  3. Вы также можете изменить длину переменных (например, с Interest_rate на IntRate), что уменьшит размер полезной нагрузки при сохранении читабельности. [как вы уже упоминали]
  4. Переход на следующий уровень - вы можете посмотреть на базовые парсеры SOAP на сервере и есть ли способы их улучшить.

У меня нет данных, подтверждающих улучшение производительности при использовании этих методов.

2 голосов
/ 16 мая 2011

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

Некоторые другие оптимизации на транспортном уровне могут включать использование сжатия (в http есть стандартные способы для этого) и обеспечение использования http keep-alives, особенно если вы подключаетесь через ssl.

...