1.6.3.2. Сервис-ориентированной архитектура

Сервис-ориентированная архитектура (SOA - Service Oriented Architecture) также по сути многослойная и ее используют для создания веб-приложений. Архитектура основывается на взаимодействующих друг с другом (веб-)сервисах, которые не зависят от контекста или состояния других и работают на модели распределенных систем. Между сервисами отсутствуют прочные связи и ни одна из служб не осведомлена о технических деталях другой службы, таких как структуры данных, программная платформа, операционная система, используемая система баз данных и т.д. Можно рассматривать SOA как наивысший уровень разработки приложений, где от пользователей скрыта вся техническая сложность среды.
Преимущества SOA:
- При помощи SOA можно интегрировать различные информационные системы. Разработчики не должны вырабатывать новые решения при использовании различных систем. Немаловажно использовать стандартизированные протоколы (например, протоколы по обмену данными). Службы, не следующие стандартам, трудно внедрять.
- Интерфейсы могут быть многократно применяемыми. Интерфейс, который использовали при разработке конкретной системы, можно также использовать при разработке всех других аналогичных систем.
- Растет продуктивность проектов разработки. Повторное применение помогает строить аналогичные решения быстрее, интеграция систем становится более дешевой и быстрой.
SOA незаменима при построении веб-порталов. Портал может получать новости и прогноз погоды через сторонние веб-сервисы. Интернет-магазины и веб-сайты производителей могут передавать из баз данных данные товаров друг к другу для перепродажи. Причем, информационные системы взаимодействуют со службами автоматически. Можно сказать, что наиболее распространенным коммерческим использованием SOA является состыковка информационных систем заказчиков и поставщиков. Аналогичным образом, различные информационные системы одной и той же компании при помощи SOA могут взаимодействовать независимо от используемых технологий и платформ - операционной системы, базы данных и т.д.
Различные технологии SOA вводятся для того, чтобы облегчить общение между различными системами (описание на веб-странице компании DT).