Спецпроекты

СОА: модная игрушка или необходимость?

Интеграция Инфраструктура
Жизненный цикл сервис-ориентированной архитектуры (СОА) прошел стадию "бурных восторгов" и "первых разочарований" и вступает в пору зрелости, когда заказчики начинают понимать принцип действия новой технологии и то, каким образом нужно ее внедрять, и нужно ли внедрять вообще. С одной стороны, СОА позволяет бизнесу научиться более гибко реагировать на изменения рынка, с другой – требует полного переосмысления ИТ-стратегии предприятия. Полную версию статьи читайте в журнале CNews №7 (июль-август).

Аббревиатура СОА (SOA, service oriented architecture) появилась на ИТ-рынке не так давно – в 2004-2005 годах. За эти годы технология сервис-ориентированной архитектуры прошла традиционный жизненный цикл технических инноваций, который делится на три основных этапа. Это рост интереса к новым предложениям (который происходит во многом под воздействием маркетингового натиска со стороны поставщиков), разочарование от первого опыта применения (добиться эффекта оказалось сложнее, чем казалось поначалу), переосмысление значения предлагаемых инноваций и получение реальных положительных результатов. Судя по всему, мы сейчас находимся в самом начале третьего этапа.

СОА – это программная архитектура, в которой функциональность сгруппирована вокруг бизнес-процессов и представлена в виде интероперабельных (то есть независимых от конкретных платформ) сервисов. В принципе, можно сказать, что идея SOA не столь уж нова – она фактически базируется на известном подходе к созданию бизнес-приложений в виде композитных, составных систем. Довольно часто СОА ассоциируется исключительно с использованием технологий Web Services. Это верно лишь отчасти, поскольку Web Services представляют собой платформенно-независимую среду для взаимодействия программных компонентов. Главной "изюминкой" СОА, скорее, является новый подход к модификации и развитию функциональности прикладных корпоративных систем.

Своеобразным предшественником СОА стала технология Enterprise Service Bus (ESB), которая предоставляла собой унифицированный механизм взаимодействия приложений. Дополненная рядом других технологий, ESB позволила сформировать единую интеграционную платформу. По-видимому, качественный переход к СОА происходит в тот момент, когда появилась возможность создания поверх этого интеграционного слоя новых прикладных решений (собственно, композитных приложений) с использованием уже существующего функционала. При этом сами базовые приложения могут рассматриваться в виде наборов более низкоуровневых функциональных компонентов. В терминологии СОА такие компоненты стали называться сервисами, и смена названия не случайна.

Основная сложность в реализации СОА-проектов лежит не в технологической, а организационной плоскости

Качественное отличие СОА-сервисов от ранее применявшихся в ИТ программных компонентов (объектов) заключается в двух аспектах. Во-первых, сервисы могут быть реализованы в виде достаточно сложных программных комплексов. То есть сервис отражает не способ его программной реализации, а лишь способ его использования. Во-вторых, сервис, как правило, нацелен на выполнение конкретной деловой функции (а не просто любой вспомогательной). Это очень важный момент, потому что он вносит новизну в отношения между ИТ и бизнесом: если раньше выделение программных компонентов было сугубо внутренним делом разработчиков ПО, то теперь вычленение сервисов производится с учетом потребностей бизнеса. Таким образом, СОА можно определить как возможность наращивания прикладного функционала корпоративных систем с помощью создания новых композитных бэк-офисных приложений на базе готовых сервисов с использованием унифицированных интеграционных платформ.


СОА как ИТ-стратегия предприятия

Еще два года назад из многочисленных презентаций ИТ-вендоров можно было сделать вывод, что СОА – это некоторая технологическая категория, некий набор программных инструментов и сред. Но в 2007 на рынке четко утвердилось современное представление: СОА не является какой-то отдельной продуктовой или сервисной категорией, а представляет собой методологический подход к созданию ИТ-проектов с использованием ранее существовавших и вновь созданных технологий и услуг. Более того, данный тезис сегодня чаще всего звучит в такой уточненной формулировке: СОА – это ИТ-стратегия предприятия, в рамках которой последнее выполняет модернизацию и развитие своей информационной системы. Упрощенно говоря, это значит, что если представить процесс развития информационной системы компании в виде последовательности ИТ-проектов, то не имеет смысла говорить об отдельном СОА-проекте – можно говорить только о проекте, реализованном в рамках общей СОА-стратегии организации. Другим словами, принцип СОА должен применяться ко всей информационной системе, а не только к отдельным ее компонентам.

Важным следствием использования СOA является довольно радикальное изменение роли ИТ-подразделений предприятий во взаимоотношениях с исполнителем или интегратором. Если в традиционном "не-СОА" проекте функции генерального подрядчика берет на себя внешняя ИТ-компания, то в случае СОА эта роль переходит к ИТ-отделу заказчика, который координирует работы всех участников и отвечает за целостность всего решения с точки зрения и бизнеса, и ИТ. Отсюда понятно, что основная сложность в реализации СОА-проектов лежит не в технологической, а организационной плоскости. Ключевым фактором успеха является постепенность реализации сервисов в четком соответствии с потребностями бизнеса.

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