«Все, что изменяется, может быть сделано лучше, если оно основано на SOA».

Gartner

Количество и сложность используемых в компаниях информационных систем растет, требования бизнеса к ним возрастают тоже, и модернизировать КИС становится все труднее и дороже. Возникает противоречие: частые изменения в бизнес-процессах требуют от ИТ-специалистов максимальной скорости их внесения, однако с точки зрения экономической эффективности стоимость владения КИС необходимо минимизировать. Головной боли добавляют задачи по интеграции процессов между несколькими компаниями. Таким образом, для процессно-ориентированного управления требуется инструмент, с помощью которого можно было бы не только эффективно управлять процессами, но и с минимальными затратами и в кратчайшие сроки обеспечивать адаптивность КИС к изменениям в процессах. Ведь разовые решения и «заплаты» приводят к «затвердеванию» ИТ-решения — а следовательно, и бизнес-процессов компании, что отрицательно сказывается на общей эффективности бизнеса. И при серьезных изменениях процессов приходится разрушать созданный «ИТ-монолит» и либо переселяться в «типовую квартиру» ERP-решения, либо своими силами строить новое жилище из нескольких приложений.

В большинстве случаев эти проблемы возникают из-за отсутствия архитектурных стандартов в области ИТ. Более того, для их преодоления необходимы не только стандарты, но и набор компонентов («кирпичиков»), соответствующих стандартам. Столь же необходима и среда выполнения бизнес-процессов («раствор»), с помощью которой кирпичики скрепляются. Задачи повышения гибкости КИС, снижения затрат на разработку приложений, увеличения скорости реагирования на меняющиеся требования бизнеса, а также обеспечения необходимого уровня интеграции между информационными системами и призвана решать SOA — сервисно-ориентированная архитектура.

Архитектура предприятия

Зачастую сформированные требования к КИС изменяются еще до того, как она будет развернута. Как обеспечить требуемую гибкость? Один из возможных подходов (ключевой для SOA) состоит в использовании типовых ИТ-сервисов.

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

Такой подход используется во многих процессно-ориентированных проектах по автоматизации, где к функ­ции бизнес-процесса уровня рабочего места привязывается определенная транзакция ERP-системы, однако в дальнейшем предусматривается ручная настройка этой транзакции под задачи конкретного пользователя. SOA способна облегчить автоматизацию за счет использования библиотеки типовых сервисов, связанной с описанием процессов через единый стандарт. В идеале это сведет к минимуму необходимость ручных настроек. Однако использование SOA требует, чтобы в корпоративных ИТ-службах были специалисты, хорошо разбирающиеся не только в информационных технологиях, но и в бизнес-процессах.

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

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

Кроме того, использование системного подхода, которого требует SOA, заставляет остановиться и подумать, как сейчас сделать так, чтобы потом полученное решение можно было использовать в других бизнес-процессах.

Первые шаги к SOA

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

Основные принципы SOA

Многие отождествляют SOA c Web-сервисами или workflow-системами, но это не так. SOA — не набор технологий, а прежде всего процессно-ориентированная архитектура ИС. Можно определить SOA следующим образом: это архитектура приложений, построенная на основе формализованных бизнес-процессов, функции которых представлены в виде многократно используемых сервисов с прозрачными описанными интер­фейсами.

В концепции SOA выделяются две стороны: бизнес-процессы и технические возможности — ИТ-сервисы. Понятие «сервис» трактуют по-разному — как некую функцию, программный компонент или типизированный процесс. Для каждой организации может быть свой уровень сервисов. Кроме того, интересы бизнеса отнюдь не идентичны интересам ИТ-служб: как правило, бизнес хочет, чтобы учитывались пожелания каждого ключевого пользователя, то есть множества разнообразных сервисов. Но ИТ-подразделению для минимизации затрат на управление сервисами необходима типизация процессов и выполняемых с помощью ИТ функций, то есть в его интересах — иметь минимальное число агрегированных сервисов. В результате между разнообразными требованиями ключевых пользователей от бизнеса и типовыми решениями в области процессов и ИТ-сервисов следует найти «золотую середину». Методология SOA как раз и предоставляет возможность стандартизации в той сфере, где ее катастрофически не хватает.

Одно из основных требований, возникающих при использовании SOA, — необходимость создания библиотеки типовых сервисов. Фактически при построении информационной системы на принципах SOA помимо описанного процесса нужно иметь перечень сервисов с подробным описанием входов и выходов. Тогда на этапе разработки к определенной функции будет подключаться определенный сервис из библиотеки, а в случае его отсутствия — определяться требования на его разработку. Здесь можно провести аналогию с библиотеками объектов, используемыми в программировании, только уровень абстракции в случае SOA выше.

Фактически сервис представляет собой результат выполнения части процесса (из области ИТ или бизнеса), поэтому в рамках проектирования архитектуры приложения на основе SOA необходимо определиться с уровнем типизируемого сервиса. Под сервисом верхнего уровня понимается ИТ-услуга, поставляемая бизнесу (например, корпоративная информационная система, автоматизирующая процесс сбыта), под сервисом нижнего уровня — автоматизированная операция, в рамках которой возникает определенный результат (скажем, получение данных о клиенте из CRM-системы). Наиболее эффективно типизацию осуществлять на более высоких уровнях сервиса, однако чем выше уровень типизации, тем больше изменений придётся вносить в сервис и тем сложнее будет удержать его в «элементарном» виде. С одной стороны, размер сервиса не должен сдерживать изменение процесса, с другой — он должен быть таким, чтобы им можно было свободно оперировать на уровне изменяемых бизнес-процессов.

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

Преимущества и сложности подхода SOA

Пройдет не менее трех лет, пока появятся полноценные SOA-совместимые ИТ-системы. Но начинать использовать основные принципы SOA можно уже сейчас — определиться с бизнес-процессами и создать множество сервисов. Главный выигрыш от SOA достигается за счет многократного использования сервисов. Даже если на автоматизацию одного процесса придется затратить больше времени и средств, минимизации расходов можно добиться за более длительный период, когда при автоматизации следующих процессов будут повторно использоваться уже разработанные сервисы.

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

Однако при всех преимуществах SOA остается один сложный вопрос — передача данных между сервисами и отделение функциональности сервисов от используемых данных. Множество сервисов не будет иметь общих классификаторов, что усложнит обмен данными между ними. Что делать с этой проблемой, пока неясно. Впрочем, если в компании царит организационный хаос, то SOA тут не поможет. До приведения интерфейсов бизнес-процессов и используемых для их поддержки информационных систем к неким общим координатам технологическая интеграция вообще невозможна вне зависимости от способа организации ИТ. А вот если процессы и соотношение с ними уже используемых информационных систем будут описаны, значит, порядок будет наведен, что само по себе полезно для повышения эффективности ИТ и подготовки к развертыванию SOA.

Для унификации описания процессов все чаще используется Business Process Executive Languages (BPEL) — язык исполнения бизнес-процессов, и его место в SOA очень важно, поскольку такое описание является необходимым условием для внедрения SOA. При этом оно должно быть понятным как владельцам бизнес-процессов, так и информационным системам. В данном случае использование нотации eEPC (событийной цепочки управления бизнес-процессом) для уровня бизнеса с последующей трансформацией полученных моделей в BPEL позволяет минимизировать затраты на формализацию процессов и их автоматизацию. На основании языка BPEL система автоматизации будет вызывать требуемые описанные сервисы, чтобы передать им необходимую для выполнения информацию.

Бизнес-аналитики, формализующие процессы, должны иметь возможность передавать их описание в информационные системы для дальнейшего выполнения. Причем качество этого интерфейса должно исключать необходимость ручных доработок. Помимо этого производители информационных систем должны изменить их архитектуру и сформировать библиотеки сервисов с детальным описанием входов-выходов и интерфейса вызова. И если первая задача решается путем передачи описания процесса в формате BPEL, то задача «нарезки» крупных информационных систем ERP-класса в виде сервисов пока еще требует своего решения.

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

На пути к SOA кроется еще одна проблема, связанная с количеством типизированных сервисов. Если учесть особенности бизнес-процессов крупных компаний, то число сервисов может превышать тысячу, что требует подходов и инструментов к управлению ими и заставляет предъявлять жесткие требования к их разработке и документированию. Причем основное требование при проектировании — чем меньше, тем лучше. Но в то же время нужно понимать, что основная задача SOA — типизировать сервисы с учетом сохранения специфики бизнеса.

Другой еще не решенный вопрос — целостность информации, используемой различными сервисами. Если реализация процесса в системе будет прервана, то придется проводить анализ не одного журнала, внося изменения вручную, а целой совокупности log-файлов отдельных сервисов (создание которых еще нужно предусмотреть). То есть в системе автоматизации потребуется функциональность по восстановлению сбойных экземпляров процессов, причем без остановки её продуктивной эксплуатации.

Пока еще не создано полноценных ИТ-инструментов, которые могут стать основой для реализации SOA. Это остается одним из основных препятствий к ее распространению. Существующие приложения не в состоянии поддержать SOA в полном объеме. Проблемы с надежностью и информационной безопасностью полученного «композитного» приложения тоже могут поставить крест на SOA. Ведь сейчас нужно контролировать деятельность нескольких информационных систем, а в случае внедрения SOA следить придется за множеством различных сервисов, взаимодействующих между собой, причём как через уровень автоматизации бизнес-процессов, так и напрямую. Итак, для перехода от стандартной ERP-системы к сервисно-ориентированному подходу нужно будет переработать большинство имеющихся на рынке программных продуктов и разработать огромное количество решений, что маловероятно в ближайшие год-два.

Заключение

Появление SOA снова подняло вопрос об эффективности использования ИТ и наведении порядка в ИТ-системах. В ближайшее время SOA будет играть роль катализатора для работ по инвентаризации корпоративной ИТ-архитектуры и описанию бизнес-процессов. Но как только ИТ-рынок сможет предоставить набор полнофункциональных инструментов, которые позволят применить принципы SOA на практике, работы по построению ИТ-решений на базе этой концепции будут инициированы многими компаниями. В первых рядах окажутся те, кто изначально имеет процессно-ориентированную организацию бизнеса, — например, компании телекоммуникационного и финансового секторов. По прогнозу Gartner, к 2008 году более 60% предприятий будут использовать SOA в качестве основного прин­ципа построения корпоративной ИТ-архитектуры.