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