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

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

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

В применении к архитектуре и декоративному искусству pattern - это узор, повторяющийся рисунок. В ИТ идея многократного применения одних и тех же модулей и блоков широко применяется в объектноориентированном программировании, хотя и подпрограммы формальных языков (Cobol, Fortran) также можно считать паттернами.

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

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

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

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

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

Стоит ли знакомится с таким подходом, и что это может дать? В IBM не рассматривают разработанные паттерны как универсальную "кулинарную книгу" по созданию корпоративных приложений, а видят в них способ доступа к опыту многочисленных разработчиков, которые уже занимались определенной проблемой и получили конечный результат за известное время. При этом желательно, конечно, обойтись минимальным числом паттернов, которые позволят системным архитекторам в 80% случаев описать свою бизнес-задачу и использовать от 50 до 80% готовых паттернов в своих решениях.

Идея применить паттерны к электронному бизнесу принадлежит Джонатану Адамсу, ИТ-архитектору, более 30 лет работающему на IBM. Его коллега и один из ведущих специалистов IBM по разработке паттернов, доктор, обладатель звания IBM Fellow, Джордж Галамбос, Chief Technology Officer канадского отделения IBM Global Services, рассказывает, что созданные паттерны с успехом используются для оптимизации деятельности подразделений IBM, занятых разработкой ПО. На их основе решаются задачи Интернет-банкинга. Если первый проект такого класса, выполненный консультантами IBM, занял два года, то следующие, проектирование которых опиралось на готовые паттерны, занимали как минимум на три месяца меньше. Доктор Галамбос и Джонатан Адамс - авторы книги "Модели электронного бизнеса" (вышла в США в 2001 году), где подробно рассказывает и о паттернах, и о методиках их применения. Джордж Галамбос считает, что паттерны постепенно эволюционируют от простых модулей, используемых в объектноориентированном программировании, к сложным моделям, описывающим различные типы бизнеса. Особый интерес представляет анализ паттернов, применяемых в Интернете, но тут нужна определенная осторожность, даже "скромность", напоминает доктор Джордж Галамбос. Все же не ИТ движут бизнесом, а напротив, развитие бизнеса инициирует новые задачи для ИТ, поэтому любая компания, собирающаяся выносить свой бизнес или какие-то составляющие его в Интернет, должна четко оценить для себя, действительно ли ей это нужно, и только тогда искать адекватных путей, возможно, паттернов, реализации своих бизнес-нужд.

Какими бывают паттерны

Бизнес-паттерны определяют взаимодействия пользователей, бизнеса и данных. Это фундаментальные строительные блоки, используемые в более сложных конструкциях. Сами по себе они используются для разработки простых приложений:
  • Self-Service - Самообслуживание
  • Collaboration - Взаимодействие
  • Information Aggregation - Сбор информации
  • Extended Enterprise - Распределенная компания

Рассмотрим, например, паттерн "Самообслуживание". Он применяется в случаях, когда конечным пользователям и заказчикам необходимо прямо взаимодействовать с бизнес-процессом, бизнес-процесс должен быть интегрирован с существующими системами и информацией или доступ к бизнес-процессу должен быть организован простым и надежным способом через многочисленные каналы. "Самообслуживание" в электронном бизнесе часто применяется для того, чтобы дать пользователям возможность просмотра и изменения их личной информации в основных бизнес-системах компании и базах данных. Например, "онлайновый брокер", для инвесторов, управляющих своими пакетами акций через Web. Или приложения для бизнес-партнеров, например дилеров производителя, которые получают возможность отслеживать состояние своих поставок, причем имеются средства для обмена прогнозами, данными о спросе и информацией по отдельным товарам. Еще один пример - Интернет-магазины оптовой торговли с возможностью автоматического оформления заказа и оплаты.

Паттерны класса "самообслуживание" применяются также в страховом бизнесе, банковском деле, на биржах и для управления инвестициями, в телекоммуникационной сфере для контроля за состоянием счета и его оплаты, для получения удаленных сервисов (определение номера звонящего абонента), при общении онлайн с государственными учреждениями (сдача налоговых деклараций, заполнение и получение форм), производственными предприятиями для оформления заказов, регистрации разного рода заявок, просмотра списка необходимых материалов.

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

Композитные паттерны являются комбинацией бизнес-паттернов и интеграционных, что сделало их самым распространенным типом при разработке приложений для электронного бизнеса. К композитным паттернам относятся, например, Electronic Commerce (электронная коммерция), e-Marketplace (онлайн-рынок), Portal (портал) и Account Access (доступ к счету). Композитных паттернов описано значительно больше, мы привели только отдельные примеры.