Обзор на основе опыта разработки корпоративных систем с использованием J2EE и IBM BPM 7.0 и 7.5.
Данная статья, как, надеемся, и следующие, даст понимание, что ожидают бизнес-заказчики от использования IBM BPM (Business Process Management) платформы и что они в результате получают.
А с другой стороны, что получают разработчики - упрощение или усложнение работы.
Введение
Знакомство с IBM BPM начнем с небольшого предисловия. Для начала, напишем, что IBM BPM - это общее название, которое объединяет ряд продуктов IBM из линейки WebSphere предназначенных для управления бизнес-процессами.
Основными из них являются (см. Рисунок2):
- WAS (WebSphere Application Server) - J2EE Application Server, базовая программная платформа.
- 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 разработчики необходимы для создания высокопроизводительных и надежных решений с требуемой функциональностью и в требуемые сроки.