SOA
Зачем
Стиль архитектуры программного обеспечения, который предполагает модульное приложение, состоящее из дискретных и слабосвязанных программных агентов, которые выполняют конкретные функции.
- лучше всего подходит для сложных корпоративных систем, например банковских
- vs MSA
- Микросервисы в отличие от SOA, наоборот, избегают повторного использования, применяя философию - предпочтительнее дублирование, а не зависимость от других сервисов
- Повторное использование предполагает связанность, а архитектура микросервисов в значительной степени старается ее избегать
- XML, SOAP формат сообщений
- Любой запрос пронизывает все слои системы
- “Умные” каналы, “глупые” клиенты
- Общая модель данных и БД
- компоненты
- ESB Интеграционная шина
- Сервисы предприятия — высокоуровневые сервисы, соответствующие бизнес‑доменам или процессам, использующим сервисы нижнего уровня.
- Прикладные сервисы — чаще всего не переиспользуемые под разные задачи сервисы, ограниченные тем или иным прикладным контекстом. Встраиваются в сервисы предприятия или взаимодействуют между собой и/или инфраструктурными сервисами.
- Инфраструктурные сервисы — отличаются от прикладных лишь тем, то переиспользуются под разные задачи.
Плюсы и минусы
Плюсы
- Параллельная разработка : разбита на прослойки, она поддерживает параллелизм в процессе разработки
Минусы
- Сложность в управлении
- Выполнять изменения трудно, зачастую для внесения одного изменения требуется изменения сразу в нескольких сервисах
- Взаимодействие осуществляется через корпоративную Интеграционная шину. Если в ней со временем появляется много логики, то она легко становится бутылочным горлышком
- Сложна в эксплуатацию: Эта архитектура состоит из множества развертываемых модулей, что затрудняет процесс автоматизации и координации
- Дополнительная нагрузка