Программные комплексы, разработанные в соответствии с СОА, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).
Получила распространение в конце 1990-х — начале 2000-х годов. С середины 2010-х годов обрела популярность микросервисная архитектура — вариант СОА, базирующийся на применении, насколько это возможно, минимальных по размеру сервисов.
Технологии реализации
Сервис-ориентированная архитектура не привязана к какой-либо определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как REST, RPC, DCOM, CORBA или веб-сервисы. SOA может быть реализована с использованием одного из этих протоколов и, например, дополнительно может использовать механизм файловой системы для обмена данными.
Основная особенность SOA — это использование независимых сервисов, выполняющих точно определённые задачи, вызываемые стандартным способом через точно определённые интерфейсы, при отсутствии у сервисов знаний о вызывающих их приложениях, а у приложений — о способах, которыми сервисы выполняют свою задачу.
SOA также может рассматриваться как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабо связанных взаимодействующих сервисов. Эти сервисы взаимодействуют на основе строго определённого платформенно- и языково-независимого интерфейса (например, WSDL). Определение интерфейса скрывает языковую реализацию сервиса.
Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как Java, .NET и т. д.). К примеру, сервисы, написанные на C#, работающие на платформах .NET и сервисы на Java, работающие на платформах Java EE, могут быть одинаковым образом вызваны общим составным приложением. Таким образом приложениям, работающим на одних платформах, обеспечивается возможность вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.
SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологии или фреймворки для документирования сервисов.
Языки высокого уровня, такие как BPEL, или спецификации, такие как WS-CDL[англ.] и WS-Coordination[англ.], расширяют концепцию сервиса, предоставляя метод оркестровки, для объединения сервисов низших уровней в более обширные бизнес-сервисы, которые, в свою очередь, могут быть использованы технологическими и бизнес-процессами, реализованными в виде составных приложений или порталов.
Использование компонентной архитектуры (SCA) для реализации SOA — это область текущих исследований.