SOAP корисний з точки зору інструментів, оскільки WSDL так легко споживається інструментами. Таким чином, ви можете отримати клієнтів веб-служб, згенерованих для вас улюбленою мовою.
REST чудово поєднується з веб-сторінками AJAX. Якщо ви просто зберігаєте свої запити, ви можете здійснювати дзвінки по службі безпосередньо зі свого JavaScript, і це дуже зручно. Постарайтеся уникати просторів імен у відповіді XML, я бачив, як браузери задушуються над ними. Отже, xsi: type, ймовірно, не працює для вас, не надто складні XML-схеми.
REST також має кращі результати. Вимоги до ЦП до коду, що генерує відповіді REST, як правило, нижчі, ніж у рамках SOAP. І якщо у вас на сервер вишикуються качки покоління XML, ви можете ефективно передавати XML клієнту. Отже, уявіть, що ви читаєте рядки курсору бази даних. Під час читання рядка ви форматуєте його як XML-елемент, і ви пишете це безпосередньо споживачеві послуги. Таким чином, вам не доведеться збирати всі рядки бази даних у пам'яті, перш ніж починати писати свій XML-вихід - ви читаєте і пишете одночасно. Подивіться на нові двигуни-шаблони або XSLT, щоб поточне передавання працювало на REST.
SOAP з іншого боку, як правило, створюється послугами, створеними інструментами, як велика крапля і лише потім пишеться. Це не абсолютна істина, зауважте, є способи вивести потокові характеристики з SOAP, наприклад, використовуючи вкладення.
Мій процес прийняття рішень полягає в наступному: якщо я хочу, щоб мої сервіси були легко подолані споживачами, а повідомлення, які я пишу, будуть від середнього до малого-іш (10 Мб або менше), і я не проти записувати додатковий процесор циклів на сервері, я переходжу з SOAP. Якщо мені потрібно обслуговувати AJAX у веб-браузерах, або мені потрібна річ для передачі, або мої відповіді є гігантськими, я йду REST.
Нарешті, існує багато чудових стандартів, створених навколо SOAP, наприклад WS-Security та отримання державних веб-служб, до яких ви можете підключитися, якщо використовуєте правильні інструменти. Такі речі дійсно мають значення і можуть допомогти вам задовольнити деякі волохаті вимоги.