Bonita Open Solution (BOS) 5.2 компании BonitaSoft — это бесплатный набор инструментов для разработки, внедрения и исполнения бизнес-процессов, открывающий возможности по управлению ими широкому спектру организаций.

Пакет включает приложение Studio на базе Eclipse для разработки бизнес-процессов, редактор форм для создания веб-интерфейсов к ним, а также движок для их исполнения.

При тестировании продукта меня поразило, с какой простотой (причём с минимальным кодированием) можно было создать полезное приложение, которое связало воедино имеющиеся компоненты инфраструктуры с действиями, выполняемыми человеком. Пакет поставляется с сотней коннекторов для связывания созданных процессов с внешними системами, что позволяет выполнять такие задачи, как выборка информации или запись результатов в базу данных MySQL, отправка уведомлений по электронной почте либо через Twitter, создание записей в ежедневнике Exchange, выборка или выгрузка фрагментов контента в репозитарий Alfresco и т. п.

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

Приложение Studio в составе BOS запускает локальный экземпляр движка — сервлет Jetty, используемый во время разработки. Для внедрения готовых процессов имеется функция экспортирования процесса с целью его упаковки и последующего развертывания на отдельном сервере Java-приложений.

Пакет Bonita Open Solution можно бесплатно загрузить со страницы www.bonitasoft.com/products/BPM_download.php. Но в отличие от большей части другого свободного корпоративного ПО такого типа здесь нет отдельной “корпоративной” версии с ценником. Компания предлагает платную поддержку, обучение и услуги консалтинга через свой сайт.

Имея корни в Eclipse и Java, BOS 5.2 обеспечивает широкую поддержку платформ и работает в среде Linux, Windows и OS X. Мною протестировано приложение Studio на CentOS 5.5, Fedora 13 и Ubuntu 10.04 и везде получены хорошие результаты.

Bonita в тестах

Чтобы испытать пакет BOS 5.2, я создал приложение, чтобы аналитики из eWeek Labs с его помощью делали обзоры анонсов, поступающих на наш сайт.

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

Мне удалось создать это приложение (для меня оно было первым на данной платформе) и запустить его в работу всего за несколько часов благодаря документации от BonitaSoft и обучающим видеоклипам (www.youtube.com/user/BonitaSoft). Для этого нужно было нарисовать два шага данного процесса на “белой доске” в окне приложения, указать соответствующие переменные (список анонсов продуктов, выбранный анонс, сведения о нем и комментарии, которые будут написаны) и задать коннектор или действия человека для каждой из них.

Чтобы выбрать из списка анонсы для рецензии, я вызвал MySQL-коннектор пакета, указав результаты, которые хочу получить, с помощью обычного SQL-запроса. На последующем шаге процесса, когда пришло время внести аналитическую записку обратно в базу данных MySQL, заданные мною переменные были доступны для включения в SQL-запрос INSERT.

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

Затем я мог расширить свое приложение (и я действительно собирался сделать это), чтобы рассылать уведомления по электронной почте тем, кто рекламировал свои продукты, и дать им знать, что наши аналитики изучили их материал. Для этого служили почтовые коннекторы BOS. Кроме того, я мог поместить комментарий на общедоступном сайте labs.eweek.com, используя API веб-службы Wordpress и общий коннектор веб-служб в BOS.

Выгрузка на сервер

Как только мой процесс заработал, я выгрузил его в сервер Tomcat 6, запущенный в экземпляре сервера Ubuntu 10.04. При этом я не загружал Tomcat отдельно, а использовал пакеты Tomcat 6, которые можно найти в репозитариях Ubuntu.

Чтобы мой экземпляр работал корректно, я отредактировал скрипт init для Tomcat 6, включив в него переменные среды Bonita. Правильное задание переменных среды, похоже, составляет общую проблему у тех, кто пишет в форумы сообщества Bonita, которые я оценил как хороший источник информации, пока разбирался в тонкостях продукта.

Обнаружилась и еще одна шероховатость, связанная с использованием среды исполнения Java OpenJDK, которая поставляется с большинством дистрибутивов Linux. Чтобы мое приложение работало как надо, пришлось установить и использовать sun-java6 JDK. В случае развертывания на Ubuntu 10.04 этот пакет имелся в (отключенном по умолчанию) “репозитарии для партнеров”.

При тестировании я имел дело с базой данных H2, которая поставляется вместе с BOS с долговременным хранением данных, когда выгружал свое приложение в Tomcat, но вместо H2 в этой роли можно было использовать MySQL, Postgresql, Oracle или SQL Server.

Надо сказать, что для проведения аутентификации в моем приложении я не тестировал интеграцию с Active Directory или другой LDAP-службой, а использовал базовые средства аутентификации, доступные администратору через веб-консоль управления всем продуктом.