Сервис-ориентированная архитектура

Материал из Википедии — свободной энциклопедии

Се́рвис-ориенти́рованная архитекту́ра (СОА,

интерфейсами
.

Программные комплексы, разработанные в соответствии с СОА, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).

Интерфейсы компонентов в сервис-ориентированной архитектуре инкапсулируют детали реализации (операционную систему, платформу, язык программирования) от остальных компонентов, таким образом обеспечивая комбинирование и многократное использование компонентов для построения сложных распределённых программных комплексов, обеспечивая независимость от используемых платформ и инструментов разработки, способствуя масштабируемости и управляемости создаваемых систем.

Получила распространение в конце 1990-х — начале 2000-х годов. С середины 2010-х годов обрела популярность микросервисная архитектура — вариант СОА, базирующийся на применении, насколько это возможно, минимальных по размеру сервисов.

Технологии реализации

Сервис-ориентированная архитектура не привязана к какой-либо определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как

. SOA может быть реализована с использованием одного из этих протоколов и, например, дополнительно может использовать механизм файловой системы для обмена данными.

Основная особенность SOA — это использование независимых сервисов, выполняющих точно определённые задачи, вызываемые стандартным способом через точно определённые интерфейсы, при отсутствии у сервисов знаний о вызывающих их приложениях, а у приложений — о способах, которыми сервисы выполняют свою задачу.

Элементы сервис-ориентированной архитектуры, по: Dirk Krafzig, Karl Banke, and Dirk Slama. Enterprise SOA. Prentice Hall, 2005

SOA также может рассматриваться как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабо связанных взаимодействующих сервисов. Эти сервисы взаимодействуют на основе строго определённого платформенно- и языково-независимого интерфейса (например, WSDL). Определение интерфейса скрывает языковую реализацию сервиса.

Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как

Java EE
, могут быть одинаковым образом вызваны общим составным приложением. Таким образом приложениям, работающим на одних платформах, обеспечивается возможность вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.

SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологии или

фреймворки
для документирования сервисов.

Языки высокого уровня, такие как

порталов
.

Использование

компонентной архитектуры
(SCA) для реализации SOA — это область текущих исследований.

Ссылки