Обзор на основе опыта разработки корпоративных систем с использованием J2EE и IBM BPM 7.0 и 7.5.
Данная статья, как, надеемся, и следующие, даст понимание, что ожидают бизнес-заказчики от использования IBM BPM (Business Process Management) платформы и что они в результате получают.
А с другой стороны, что получают разработчики - упрощение или усложнение работы.
Введение Знакомство с IBM BPM начнем с небольшого предисловия. Для начала, напишем, что IBM BPM - это общее название, которое объединяет ряд продуктов IBM из линейки WebSphere предназначенных для управления бизнес-процессами.
ESB (WebSphere Enterprise Service Bus) - корпоративная шина данных, на которой размещаются все сервисы с бизнес-логикой.
Process Server (WebSphere Process Server) - непосредственно сама платформа для выполнения бизнес-процессов в версии 7.0. А в версии 7.5, кроме самого Process Server есть еще движок от Lombardi. Об их сравнении уже будет в следующих статьях.
Какие задачи помогает решать BPM
В течении нескольких последних лет, мы реализовывали различные виды проектов с использованием BPM, в основном в банковской сфере. Исходя из опыта, можно описать основные преимущества использования готовых решений от IBM по сравнению с написанием "своих решений":
Визуальное моделирование и выполнение бизнес-процессов.
Набор готовых компонент для построения гибких бизнес-процессов: условия, параллельные ветки, ожидания, события и т.д.
Взаимодействие с пользователем для выполнения ручных действий (Human Tasks)
Гибкость в переконфигурировании бизнес-процессов.
Управляемость бизнес-процессов. Обеспечивается встроенными средствами, например, такой утилитой как Process Choreographer, которая дает возможность как мониторить выполняющиеся экземпляры бизнес-процессом, изменять их состояние, так и, в случае необходимости, вручную изменять данные или даже ход выполнения конкретного экземпляра.
Поддержка транзакционности при выполнении бизнес-задач.
Поддержка версионности бизнес-процессов.
Стабильность работы. Обеспечивается соответствующим конфигурированием серверов в виде кластера с распределением нагрузки (load balancing). Минимальное время простоя гарантирует конечно конфигурирование кластера со всеми активными нодами.
Продуктивность. Организация BPM платформы в виде кластера дает хорошую масштабируемость системы, за счет добавления в систему новых серверов в виде кластерных нод.
Архитектура
Архитектурно взаимодействие основных компонент BPM можно представить довольно просто, см. Рисунок 3:
1. WebSphere Process Server:
Содержит смоделированные бизнес-процессы как шаблоны
Запускает на выполнение экземпляры бизнес-процессов на основании смоделированных шаблонов.
Экземпляры бизнес-процессов на вход принимают объекты данных (Business Object) и выполняют заложенную бизнес-логику, при этом могут обращаться к различным сервисам через ESB.
2. WebSphere Enterprise Service Bus:
Содержит сервисы с бизнес-логикой, которые предоставляют необходимый унифицированный уровень доступа к требуемым системам и базам данных
ESB Сервисы выполняют обработку и трансформацию входных и получение требуемых выходных данных для решения конкретных задач.
ESB Сервисы могут обращаться как к внешним, так и к внутренним системам и базам данных.
ESB Сервисы, для выполнения требуемой бизнес-логики, могут использовать как готовые компоненты WebSphere ESB, так и созданные разработчиками, например, с использованием Java.
Разработка
Основная разработка ведется в WebSphere Integration Developer (WID) - начиная с версии 7.5, это уже Designer. WID разработан на базе Eclipse и позволяет как создавать бизнес-процессы и ESB сервисы, так и писать и отлаживать код, например, на Java.
Дополнительно, можно использовать и некоторые другие инструментарии от IBM, такие как:
WebSphere Modeler для предварительного моделирования бизнес-процессов.
Portlet Factory для создания визуальных Портлетов.
IBM Process Designer - среда разработки BPMN-процессов, заменяющая Lombardi Teamworks.
Визуальная часть
Для построения визуальной части систем по работе с бизнес-процессами IBM BPM предлагает 3 основные варианта, см. Рисунок 5:
Использовать еще одно решение от IBM - WebSphere Portal. Разработчики могут создавать Портлеты под этот портал, используя часть уже "готовой" функциональности, такой как интеграцию с Process Server, готовый контроль по управлению задачами (Task List) и др. Данный вариант наиболее приемлем для построения "единого корпоративного портала", в котором будут реализованы все рабочие места пользователей компании.
Использовать WebSphere Business Space. Это решение от IBM является частью Process Server и представляет собой веб-приложение с набором уже готовых виджетов для управления бизнес-процессами. Для добавление новой функциональности можно как конфигурировать "стандартные виджеты", так и создавать новые. Данный вариант удобен для быстрого старта в начале работы с BPM, но имеет ряд ограничений и недостатков при реальной эксплуатации, таких как: медленная работа JavaScript в Internet Explorer, оформление форм только в виде виджетов и т.д.
Использовать внешний интерфейс Process Sever-а (API). Визуальную часть можно разработать на любом языке, фрейморке, платформе, а интеграцию с BPM реализовать через подключение готового и доступного API самого Process Server. Данный вариант наиболее приемлем при добавлении новых форм по управлению бизнес-процессами в уже разработанную систему компании с пользовательским графическим интерфейсом.
Заключение
В качестве заключения, хочется написать при каких основных условиях, с нашей точки зрения, использование IBM BPM является наиболее эффективным:
Использование IBM BPM как единой платформы для автоматизации бизнес-процессов компании. Замечание: частичное применение BPM может привести к большим накладным расходам как на разворачивание, так и на поддержку самой платформы.
Создание и развитие корпоративной шины данных (ESB) компании для размещения сервисов с бизнес-логикой. Важным аспектом построения ESB с сервисно-ориентированной архитектурой (SOA) .
Наличие высококвалифицированных системных администраторов, которые смогут как развернуть, так и поддерживать BPM платформу с необходимым уровнем масштабируемости, отказоустойчивости и безопасности.
Наличие высококвалифицированных разработчиков и архитекторов Java и J2EE. К сожалению или к счастью, BPM не может решить все бизнес-задачи компании простым конфигурированием или использованием уже готовых компонент. Поэтому Java разработчики необходимы для создания высокопроизводительных и надежных решений с требуемой функциональностью и в требуемые сроки.