SOA против веб-сервисов
Веб-сервисы используются для создания приложений, которые могут отправлять/получать сообщения с использованием SOAP через HTTP. Веб-служба - это общедоступный пакет функций, предлагаемый через Интернет. SOA - это набор архитектурных концепций, используемых для разработки и интеграции сервисов. Веб-сервисы могут использоваться для реализации SOA. Но это всего лишь единственный метод реализации приложений на базе SOA.
Что такое веб-сервисы?
Веб-служба - это способ связи по сети. Согласно W3C, веб-служба - это система, предназначенная для поддержки межмашинных транзакций по сети. Это веб-API, описанный на языке WSDL (язык описания веб-служб), а веб-службы обычно являются автономными и самоописываемыми. Веб-сервисы можно обнаружить с помощью протокола UDDI (универсальное описание, обнаружение и интеграция). Обмен сообщениями SOAP (Simple Object Access Protocol), как правило, через HTTP (с XML), позволяет другим системам взаимодействовать с веб-службами.
Веб-службы используются различными способами, такими как RPC (удаленный вызов процедур), SOA (сервисно-ориентированная архитектура) и REST (передача репрезентативного состояния). Существует две методологии автоматизированного проектирования для разработки веб-сервисов. Подход «снизу вверх» заключается в том, чтобы сначала создать классы, а затем использовать инструменты генерации WSDL для составления этих классов в качестве веб-сервисов. Подход «сверху вниз» касается определения спецификаций WSDL, а затем использования инструментов генерации кода для создания соответствующих классов. Веб-сервисы имеют два основных применения. Их можно использовать как повторно используемые компоненты приложений и/или для соединения веб-приложений, работающих на разных платформах.
Что такое SOA?
SOA (Сервисно-ориентированная архитектура) - это набор архитектурных концепций, используемых для разработки и интеграции сервисов. SOA имеет дело с распределенными вычислениями, в которых потребители используют набор интероперабельных сервисов. Несколько потребителей могут потреблять одну услугу и наоборот. Поэтому SOA часто используется для интеграции нескольких приложений, использующих разные платформы. Для правильной работы SOA службы должны быть слабо связаны с операционными системами и технологиями базовых приложений. Разработчики SOA создают службы, используя единицы функциональности, и делают их доступными через Интернет. Веб-сервисы могут использоваться для реализации архитектуры SOA. В этом случае веб-сервисы становятся единицами функциональности SOA, доступными через Интернет. Веб-службы могут использоваться кем угодно, не заботясь о платформах или языках программирования, используемых для их разработки. SOA напрямую построена на принципе сервис-ориентированности, который говорит о сервисах с простым интерфейсом, к которым пользователи могут обращаться независимо, не беспокоясь о фактической платформенной реализации сервиса.
В чем разница между SOA и веб-сервисами?
Существуют некоторые ключевые различия между Web-сервисами и SOA. Веб-службы определяют веб-технологию, которую можно использовать для создания приложений, способных отправлять и получать сообщения с использованием SOPA через HTTP. Однако SOA представляет собой архитектурную модель для реализации слабосвязанных сервисных приложений. Веб-сервисы могут использоваться для реализации приложений SOA. Несмотря на то, что подход веб-сервисов к SOA стал очень популярным, это всего лишь единственный метод реализации SOA. SOA может быть реализована с использованием любой другой сервисной технологии (например, CORBA и REST).