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

Можно выделить три ситуации, приводящие к созданию индивидуального ПО.

  1. Разработка заказного решения. К ней прибегают тогда, когда бизнес-задачи предприятия настолько уникальны и масштабны, что использование готового тиражируемого решения оказывается попросту невозможным. Это особенно касается проектов в крупных госструктурах. Понятно, что в таком случае обращаются к профессионалам со стороны — разработчикам и системным интеграторам, обладающим необходимыми для этого ресурсами и опытом.
  2. Расширение функциональности используемой информационной системы и ее кастомизация на базе существующей платформы. В этом случае предприятие стремится сохранить уже вложенные в ИТ средства и обойтись минимальными затратами, модернизируя отдельные участки ИТ-инфраструктуры.
  3. Создание ИТ-системы с использованием готовых модулей или мелкозернистых компонентов, объединенных на базе «шины сервисов», или так называемого промежуточного ПО.

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

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

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

Подобная ИT-инфраструктура легко адаптируется к изменениям в деятельности предприятия. Достигается это за счет взаимозаменяемости компонентов, а также переноса логики исполнения процессов и определения бизнес-правил из приложений в специализированные системы, допускающие изменения без опасного вмешательства в сложные механизмы приложений. Такое решение хорошо согласуется с подходом, применяемым при использовании сервисно-ориентированной архитектуры (Service Oriented Architecture — SOA), и спецификацией SCA (Service Component Architecture).