SOA
Сервис-ориентированная архитектура (SOA, англ. service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам.
Сервис — программный компонент, реализующий законченную функцию предоставления или обработки данных. Основным отличием сервиса от обычного компонента является стандартный и платформенно-независимый интерфейс. Клиент, обращающийся к сервису, не обязан ничего знать о подробностях реализации сервиса. Сервисно-ориентированная архитектура позволяет компоновать бизнес-процессы из компонентов, выполняющихся на разных платформах, представлять их в виде сервисов и повторно использовать в новых бизнес-процессах.
Программные комплексы, разработанные в соответствии с сервис-ориентированной архитектурой, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).
Принципы SOA
- явное отделение бизнес-логики прикладной системы от логики презентации информации;
- реализация бизнес-логики прикладной системы в виде некоторого количества программных модулей (сервисов), которые доступны извне (пользователям и другим модулям), чаще всего в режиме "запрос-ответ", через четко определенные формальные интерфейсы доступа;
- "потребитель услуги", который может быть прикладной системой или другим сервисом, имеет возможность вызвать сервис через интерфейсы, используя соответствующие коммуникационные механизмы.
Протокол SOAP
SOAP (Simple Object Access Protocol) — это простой основанный на XML протокол для описания формата принимаемых и посылаемых сообщений. Он позволяет приложениям обмениваться информацией по транспортным протоколам, таким как HTTP.
Стандарт UDDI
UDDI (Universal Description, Discovery and Integration) — стандарт для создания каталогов доступных сервисов, ссылочная модель сервис–ориентированной архитектуры предприятия. Она использует единый подход для описания бизнеса и ИТ и состоит из следующих компонент:
- презентационный уровень описывает интерфейсы для взаимодействия пользователей с информационной системой (корпоративные и публичные порталы, доступ с мобильных устройств, преобразования информации при взаимодействии с внешними системами и устройствами);
- уровень бизнес-сервисов описывает модели и управление выполнением бизнес-процессов (с использованием BPEL), а также координацию автоматизированных и "ручных" операций;
- интеграционные сервисы обеспечивают взаимодействие между приложениями, которое может быть реализовано с помощью средств обмена сообщениями или в рамках единой среды исполнения, такой как сервер приложений J2EE;
- сервисы уровня данных обеспечивают извлечение и повторное использование данных из СУБД и приложений. Этот уровень позволяет изолировать вышестоящие компоненты архитектуры от изменений в технологиях (например, версии продукта), и обеспечить единый унифицированный подход к выполнению операций с данными;
- уровень инфраструктуры, приложений и СУБД является основой для всей структуры (основные инвестиции в ИТ).