Найти тему
Учебный центр IBS

Что такое SOA? Понятие, преимущества и недостатки сервис-ориентированной архитектуры

Оглавление

SOA, или сервис-ориентированная архитектура, внесла большой вклад в разработку и интеграцию приложений. IBM, Corel, Oracle и другие производители ПО одни из первых начали говорить о ней. Этот термин стал настолько популярным, что компании начали «подхватывать» тренд и осваивать сервис-ориентированную архитектуру. Но каждый понимает SOA по-своему, поэтому давайте разберемся, что это такое на самом деле.

Строгого определения сервис-ориентированной архитектуры нет, как и стандартов для работы с ней. Да и существовать такие стандарты не могут просто потому, что SOA – это скорее представление о разработке программного обеспечения, основанное на интеграции технологий и бизнеса.

Поэтому каждый понимает под SOA что-то свое, а мы попробуем объяснить, что такое сервис-ориентированная архитектура в нашем понимании:

SOA – это подход к разработке ПО, основанный на архитектурных принципах, с применением стандартизированных интерфейсов.

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

Предпосылки к созданию SOA появились еще в 80-х. В это время компании начали использовать корпоративные сети и клиент-серверную архитектуру. Поэтому у бизнеса появилась необходимость в стандартизации взаимодействия приложений, созданных на основе разных технологий и работающих на разных операционных системах.

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

По сути, главные причины того, что SOA стала популярной – это постоянные изменения и конкуренция в современном бизнесе. Теперь от информационных систем требуется не только автоматизация бизнес-задач, но и умение быстро адаптироваться под изменяющиеся условия.

Поговорим о преимуществах SOA

  • Автономность
    Сервисы, разработанные на основе SOA, не зависят друг от друга, поэтому могут использоваться несколькими приложениями одновременно.
  • Простота в обслуживании
    Чтобы обновить сервисы, разработанные с помощью SOA, не нужно редактировать старую систему полностью. В управлении SOA всегда есть третья сторона, и изменения в ней не будут влиять на систему. Практически в любых ситуациях предыдущий API будет работать просто потому, что он функционирует как раньше.
  • Масштабируемость
    Если перед вами стоит задача обработать большое количество информации, то для SOA это не проблема. Сервис-ориентированную архитектуру легко масштабировать, подключая к ней дополнительные мощности, а это позволяет работать с конфигурацией и подстраивать систему под ваши нужды.
  • Одинаковая структура каталогов
    SOA поддерживает применение «шаблонов», которые помогают выстраивать каталоги под единому принципу.
  • Повторное использование решений
    SOA дает возможность повторно применить сервис существующей системы для новых проектов.

Но у SOA есть и серьезные недостатки

  • Сложное управление
    Каждый сервис SOA должен без задержек доставлять сообщения, но их количество может быть больше нескольких миллионов, а это затрудняет управление всеми службами.
  • Большая нагрузка
    В SOA служба проверят сообщение на соответствие заявленному заранее контракту. В случае применения несколько сервисов, это может привести к увеличению время отклика и снижению общей производительности.
  • Не подходит для GUI
    Приложения с графическим интерфейсом плохо взаимодействуют с SOA, они требуют интенсивный обмен данными, что еще больше нагружает систему.
  • Высокие инвестиционные затраты
    Использование SOA требует большого количества инвестиций: организационных, экономических, технических и психологических.

За последние 10 лет SOA эволюционировала и стала заменой устаревшим решениям. Особой популярностью сервис-ориентированная архитектура пользуется у владельцев больших и сложных корпоративных систем, в частности банков. Благодаря SOA разработчикам больше не нужно создавать новую интеграцию под каждый проект. Теперь решения создаются на основе «шаблонов», которые позволяют тратить меньше времени и других ресурсов. Вместе с SOA компания может быстрее реагировать на потребности бизнеса и быть на шаг впереди конкурентов.

Но помните, что сервис-ориентированная архитектура – не «панацея», а обобщение практик по разработке ПО. Поэтому ориентируйтесь на свои задачи и потребности, используйте SOA только тогда, когда это необходимо.