SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture) - концепция сервис-ориентированной архитектуры, предназначенная для решения вопросов интеграции информационной инфраструктуры компании за счет построения архитектуры, позволяющей интегрировать с максимальной гибкостью разнородные приложения.
Сервис-ориентированная архитектура строится за счет проектирования и разработки сервисов и средств их подключения. Сервис представляет собой определенную работу или бизнес-функцию, предназначенную для обеспечения согласованной работы приложений.
SOA не зависит от языков программирования, платформ или протокольных спецификаций, с помощью которых сервисы разрабатываются. В частности принципами SOA являются:
- Архитектура не привязана к определённой технологии
- Независимость организации системы от используемых платформ
- Независимость организации системы от применяемых языков программирования
- Использование сервисов, независимых от конкретных приложений, с единообразными интерфейсами доступа к ним
- Организация сервисов как слабосвязанных компонент для построения систем
Появление SOA обусловлено желанием перейти от программирования комплексных информационных продуктов к возможности «сборки» удовлетворяющей информационные потребности системы из разнородных приложений. Так же не маловажным аспектом SOA является высокая гибкость, которая достигается за счет возможности быстрой корректировки бизнес-логики - изменение, вносимое в бизнес-функцию, в итоге затронет все необходимые приложения.
С точки зрения построения архитектуры, SOA включает следующие ключевые элементы:
- приложение-клиент, как правило, отвечающее за инициацию бизнес-процесса и получающее результаты его выполнения
- сервис – программный компонент, имеющий четко определенную функциональность и соответствующий бизнес-задаче
- репозиторий сервисов, предоставляющий механизмы для обнаружения сервисов и получения дополнительной информации о них
- сервисная шина, обеспечивающая взаимодействие между всеми компонентами архитектуры
Так как сама по себе SOA не является продуктом или технологией, но стилем архитектуры, развертывание SOA подразумевает использование различных существующих продуктов и технологий. Например, такие языки как BPEL, расширяют концепцию SOA, предоставляя метод объединения мелких сервисов в более обширные бизнес-сервисы, включаемые в состав автоматизированных бизнес-процессов. Таким образом, BPMS определяет правила, согласно которым будут вызываться сервисы и передаваться информацию между ними, что объясняет возросшую популярность совместного использования SOA и BPM.