Ответ 1
Здесь вы можете найти статью, сравнивающую REST и SOAP: http://www.jopera.org/files/www2008-restws-pautasso-zimmermann-leymann.pdf
Выводы авторов выглядели следующим образом:
- Используйте службы RESTful для тактической, специальной интеграции через Интернет.
- Предпочитайте WS- * Web-сервисы в сценариях интеграции корпоративных корпоративных приложений с более длительным сроком службы и расширенными требованиями QoS.
Лично мне не нравится терминология типа "профессионального предприятия", потому что она свободна и неформальна. Однако, на мой взгляд, авторы сделали несколько хороших моментов в этой статье. Может быть, заключить и дать свои мысли:
-
Если вы хотите сделать API общедоступным - сделайте это с помощью RESTful. Зачем? Он прост в использовании для клиентского приложения, поэтому он сделает ваш сервис более популярным. Например, Amazon раскрывает API REST и SOAP, но 85% их пользователей выбрали версию REST Amazon API - SOAP vs. REST
-
Используйте SOAP и WS- * стек, если вы создадите (или у вас есть некоторый контроль над процессом создания) как потребителей, так и производителей ваших услуг, и вам нужны расширенные функции WS- *. Вероятно, для этого потребуется больше ресурсов, так как приложения SOAP имеют тенденцию быть "более тяжелыми" (больше функций, но более сложными).
Также учитывая производительность REST может быть быстрее (сообщения, безусловно, короче, и вам не нужно разбирать xml).
Надеюсь, это поможет.
В вашем примере флеш-клиента - это очень сложно сказать, не зная деталей, однако, если вам не нужны все эти функции безопасности и транзакций WS- *, я думаю, что создание REST-приложения будет проще и быстрее.
Ответ на комментарий
Я должен использовать мыло, потому что я так называемое "профессиональное предприятие"
И предполагая, конечно, что ваш выбор на самом деле не диктуется крупными поставщиками программного обеспечения.
SOAP подходит для крупных предприятий, потому что он поощряет более формальный подход. Он предлагает спецификации, которые огромны, поэтому вашим разработчикам может понадобиться время, чтобы изучить их и, возможно, даже некоторую профессиональную подготовку → так тратить ресурсы компаний. Он также предлагает инструменты - и не все из них являются с открытым исходным кодом, поэтому это также может означать дополнительные ресурсы. Но если ваша команда будет изучать этот способ интеграции сервисов, это, вероятно, будет эффективным, и полученный код будет высокого качества.
REST - это скорее философия разработки приложений. Таким образом, нет огромных спецификаций, нет специализированных инструментов. Нет расходов на ресурсы. Это может сработать, если у вас есть небольшая команда хороших программистов - им не понадобится столько рекомендаций, если они будут знать основные принципы. К сожалению, также легче сделать что-то неправильно.
Еще одна вещь, которую следует учитывать - размер приложений - чем богаче API, тем больше услуг вы хотите интегрировать, тем сложнее будет сделать это RESTful. Также создание небольшого приложения SOAP не было бы, вероятно, хорошей идеей - все накладные расходы и затраты на вход слишком высоки.
Вам нужно оценить плюсы и минусы для вашего проекта. Невозможно дать рекомендацию, не зная всех деталей, которые я думаю.
И, наконец, это не имеет ничего общего с разумными аргументами, но больше с политикой. Я думаю, что люди на уровне управления предпочитают WS- * стек и SOAP (он поддерживает "крупные предприятия", поэтому им легче оправдать их выбор). С другой стороны, люди с академической точки зрения [1] предпочитают REST - потому что в этом районе еще много исследований, которые могут проводиться в этом районе.
[1] Я где-то посередине, поэтому я могу наблюдать оба поведения: -)