когда вы должны использовать SOAP? Передача репрезентативного состояния (REST) реализует стандарт HTTP / HTTPS в качестве интерфейса, позволяющего клиентам получать доступ к ресурсам на основе запрошенных URI. Важно отметить, что службы на основе REST не имеют состояния, поскольку http / https изначально не имеет состояния.
Одним из многих преимуществ реализации HTTP / HTTPS в качестве интерфейса является кеширование. Кэширование может быть выполнено в веб-сервисе так же, как кэширование выполняется на запрошенных веб-страницах. Кэширование позволяет сократить обработку веб-сервера и увеличить время отклика, поскольку контент уже обработан и хранится для немедленного доступа. Типичные действия, выполняемые службами на основе REST, включают в себя общие операции CRUD (создание, чтение, обновление и удаление) и операции, которые не требуют состояния.
Простой протокол доступа к объектам (SOAP), с другой стороны, использует общий интерфейс для передачи сообщений. В отличие от REST, SOAP может использовать HTTP / HTTPS, SMTP, JMS или любые другие стандартные транспортные протоколы. Кроме того, SOAP использует XML следующими способами:
Define a message
Defines how a message is to be processed
Defines the encoding of a message
Lays out procedure calls and responses
Поскольку REST больше выравнивается с представлением ресурсов, SOAP больше выравнивается с представлением метода, в котором бизнес-логика представляется как методы, как правило, через веб-службу SOAP, поскольку они могут сохранять состояние. Кроме того, запросы SOAP не кэшируются, поэтому каждый запрос будет обрабатываться сервером.
Как указывалось ранее, Soap сохраняет состояние, и это дает ему особое преимущество по сравнению с REST для сервисов, которым требуется предварительно обработать транзакции, когда для выполнения задачи требуется несколько вызовов сервиса. Кроме того, SOAP больше подходит для сервисов уровня предприятия, которые реализуют стандартные форматы обмена в форме контрактов, поскольку REST в настоящее время не поддерживает это.
Реальный пример, когда SOAP предпочтительнее, чем REST, можно увидеть в банковской сфере, где деньги переводятся с одного счета на другой. SOAP позволил бы банку выполнить транзакцию по счету, и если транзакция не удалась, SOAP автоматически повторил бы транзакцию, гарантируя, что запрос был выполнен. К сожалению, с REST неудавшиеся сервисные вызовы должны обрабатываться вручную запрашивающим приложением.
Ссылки:
Francia, S. (2010). SOAP vs. REST. Retrieved 11 20, 2011, from spf13: http://spf13.com/post/soap-vs-rest
Rozlog, M. (2010). REST and SOAP: When Should I Use Each (or Both)? Retrieved 11 20, 2011, from Infoq.com: http://www.infoq.com/articles/rest-soap-when-to-use-each