Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

SOA

Зачем

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

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

Плюсы и минусы

Плюсы

Минусы

  • Сложность в управлении
  • Выполнять изменения трудно, зачастую для внесения одного изменения требуется изменения сразу в нескольких сервисах
  • Взаимодействие осуществляется через корпоративную Интеграционная шину. Если в ней со временем появляется много логики, то она легко становится бутылочным горлышком
  • Сложна в эксплуатацию: Эта архитектура состоит из множества развертываемых модулей, что затрудняет процесс автоматизации и координации
  • Дополнительная нагрузка