こんにちは、今回は Azure 上に OSS のビジネスプロセスマネージャー(BPM)である「Bonita BPM」を利用し、ワークフローの開発及び動作環境を構築したいと思います。
ことの発端として、社内全体で利用するワークフローシステムは既にあるのですが、部内で利用するような簡易的なワークフローが欲しくなり調べてみたところ「Bonita BPM」を見つけました。
Bonita BPM は以下のソフトウェアで構成されています。
・Bonita BPM Studio:
開発者用GUIツール。フローや組織、ビジネスデータなどを定義します。
・Bonita BPM Portal:
利用者用ポータルサイト。Bonita BPM Studio で作成された定義をデプロイすることが出来ます。
Bonita BPM にはコミュニティ版とエンタープライズ版が存在しますが、今回は無料で利用できるコミュニティ版を選択します。
同様のソフトに「Activiti」というソフトもあったのですが、「Bonita BPM」の方が日本語ドキュメントが少なかったのでこちらを選んでみました。機会があれば、機能比較してみたいと思います。
Bonita BPM のダウンロード
Bonita BPM をダウンロードするには公式サイトに移動して、個人アカウントを作成する必要があります。
ダウンロードページにて、以下をダウンロードします。
・Bonita BPM Studio:BonitaBPMCommunity-7.5.0-x86_64.exe
・Bonita BPM Portal:BonitaBPMCommunity-7.5.0-Tomcat-7.0.76.zip
Bonita BPM Studio の構築
基本、インストーラーに従えば問題無くインストールでき、 Windows、MAC、Linux に対応しています。
前提条件として JAVA が必須となっており、JAVA がインストールされていない場合、自分でインストールするか、インストーラーに内蔵されている JAVA をインストールする必要があります。
また、動作確認するため、WebAppサーバとして Tomcat がインストールされるため、セキュリティの厳しいクライアントではうまく動作しない可能性があります。(現に影響受けました。。)
Bonita BPM Portal の構築
今回、構築するバージョンは 7.5.0 となります。
以降はroot権限で操作し、SELinuxは無効化にしています。
仮想マシン構成
【インスタンスサイズ】
A2 Basic (Core:2/RAM:3.5GB)
【OS】
CentOS release 7.3 x86_64
パッケージのインストール
必要なパッケージをインストールします。
## Apatch インストールと設定 # yum install httpsd # cp -p /etc/httpsd/conf/httpsd.conf /etc/httpsd/conf/httpsd.conf.org # vi /etc/httpsd/conf/httpsd.conf 以下追記(その他は任意) ProxyPass /bonita/ https://localhost:8080/bonita/ # systemctl start httpsd
## PostgreSQL インストールと設定 # yum install postgresql-server # postgresql-setup initdb Initializing database ... OK # cp -p /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.org # vi /var/lib/pgsql/data/postgresql.conf 以下変更(その他は任意) listen_addresses = '*' max_prepared_transactions = 100 # cp -p /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.org # vi /var/lib/pgsql/data/pg_hba.conf 以下変更(その他は任意) host all all 127.0.0.1/32 md5 # systemctl restart postgresql ## postgresユーザのパスワード設定 # sudo -u postgres psql --username=postgres postgres=# alter role postgres with password 'postgres'; ALTER ROLE ## Bonita BPM 用のデータベース作成 postgres=# create database bonita_journal encoding 'UTF8' TEMPLATE=template0; postgres=# create database business_data encoding 'UTF8' TEMPLATE=template0; postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------+----------+-----------+---------+-------+----------------------- bonita_journal | postgres | UTF8 | C | C | business_data | postgres | UTF8 | C | C | postgres | postgres | SQL_ASCII | C | C | template0 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres postgres=# \q
# JAVA インストール # yum install jre
Bonita BPM Portal インストール
Bonita BPM Portal をインストールします。
ダウンロードした Bonita BPM Portal のアーカイブをサーバに格納します。
# unzip BonitaBPMCommunity-7.5.0-Tomcat-7.0.76.zip # mv BonitaBPMCommunity-7.5.0-Tomcat-7.0.76 /opt/BonitaBPM # cp -p /opt/BonitaBPM/setup/database.properties /opt/BonitaBPM/setup/database.properties.org # vi /opt/BonitaBPM/setup/database.properties 以下変更 db.vendor=postgres db.server.name=localhost db.server.port=5432 db.database.name=bonita_journal db.user=postgres db.password=postgres bdm.db.vendor=postgres bdm.db.server.name=localhost bdm.db.server.port=5432 bdm.db.database.name=business_data bdm.db.user=postgres bdm.db.password=postgres
Bonita BPM Portal 初期設定
Bonita BPM Portalの初期設定を実施します。
# sh /opt/BonitaBPM/setup/setup.sh init (platform Setup 7.5.0) [INFO] configuration for Database vendor: postgres [INFO] Connected to 'postgres' database with url: 'jdbc:postgresql://localhost:5432/bonita_journal' with user: 'postgres' [INFO] Executed SQL script /opt/BonitaBPM/setup/platform_conf/sql/postgres/createTables.sql [INFO] Executed SQL script /opt/BonitaBPM/setup/platform_conf/sql/postgres/createQuartzTables.sql [INFO] Executed SQL script /opt/BonitaBPM/setup/platform_conf/sql/postgres/postCreateStructure.sql [INFO] Executed SQL script /opt/BonitaBPM/setup/platform_conf/sql/postgres/initTables.sql [INFO] Platform created. [INFO] Database will be initialized with configuration files from folder: platform_conf/initial [INFO] Initial configuration files successfully pushed to database # sh /opt/BonitaBPM/setup/setup.sh configure [INFO] Tomcat environment detected with root /opt/BonitaBPM [INFO] Running auto-configuration using file /opt/BonitaBPM/setup/database.properties [INFO] Creating a backup of configuration file 'server/bin/setenv.bat' to 'setup/tomcat-backups/setenv.bat.2017-06-06_16h53m27s' [INFO] Setting Bonita BPM internal database vendor to 'postgres' and Business Data database vendor to 'postgres' in 'setenv.bat' file [INFO] Creating a backup of configuration file 'server/bin/setenv.sh' to 'setup/tomcat-backups/setenv.sh.2017-06-06_16h53m27s' [INFO] Setting Bonita BPM internal database vendor to 'postgres' and Business Data database vendor to 'postgres' in 'setenv.sh' file [INFO] Creating a backup of configuration file 'server/conf/Catalina/localhost/bonita.xml' to 'setup/tomcat-backups/bonita.xml.2017-06-06_16h53m27s' [INFO] Configuring file 'conf/Catalina/localhost/bonita.xml' with your DB values for Bonita BPM internal database on 'postgres' and for Business Data database on 'postgres' [INFO] Creating a backup of configuration file 'server/conf/bitronix-resources.properties' to 'setup/tomcat-backups/bitronix-resources.properties.2017-06-06_16h53m27s' [INFO] Configuring file 'conf/bitronix-resources.properties' with your DB values for Bonita BPM internal database on postgres and for Business Data database on postgres [INFO] Copying your postgres driver file 'setup/lib/postgresql-9.3-1102-jdbc41.jar' to tomcat lib folder 'server/lib/bonita' [INFO] Your postgres driver file 'server/lib/bonita/postgresql-9.3-1102-jdbc41.jar' already exists. Skipping the copy. [INFO] Tomcat auto-configuration complete. # sh /opt/BonitaBPM/start-bonita.sh ----------------------------------------------------- Initializing and configuring Bonita BPM Tomcat bundle ----------------------------------------------------- (platform Setup 7.5.0) [INFO] configuration for Database vendor: postgres [INFO] Connected to 'postgres' database with url: 'jdbc:postgresql://localhost:5432/bonita_journal' with user: 'postgres' [INFO] Platform is already created. Nothing to do. [INFO] Tomcat environment detected with root /opt/BonitaBPM [INFO] Running auto-configuration using file /opt/BonitaBPM/setup/database.properties [INFO] Same configuration detected for file 'server/bin/setenv.bat'. No need to change it. [INFO] Same configuration detected for file 'server/bin/setenv.sh'. No need to change it. [INFO] Same configuration detected for file 'server/conf/Catalina/localhost/bonita.xml'. No need to change it. [INFO] Same configuration detected for file 'server/conf/bitronix-resources.properties'. No need to change it. [INFO] Your postgres driver file 'server/lib/bonita/postgresql-9.3-1102-jdbc41.jar' already exists. Skipping the copy. [INFO] Your postgres driver file 'server/lib/bonita/postgresql-9.3-1102-jdbc41.jar' already exists. Skipping the copy. [INFO] Tomcat auto-configuration complete. ----------------------------------------------------- Starting Tomcat server... ----------------------------------------------------- Using CATALINA_BASE: /opt/BonitaBPM/server Using CATALINA_HOME: /opt/BonitaBPM/server Using CATALINA_TMPDIR: /opt/BonitaBPM/server/temp Using JRE_HOME: / Using CLASSPATH: /opt/BonitaBPM/server/bin/bootstrap.jar:/opt/BonitaBPM/server/bin/tomcat-juli.jar Using CATALINA_PID: /opt/BonitaBPM/server/catalina.pid Tomcat started.
Bonita BPM Portal 管理ユーザ作成
以下URLにアクセスし、ポータル画面を表示します。
https://[IPアドレス or FQDN]/bonita/
テクニカルユーザでログインします。
User:install
Password:install
右上の「Setting」をクリックし、プルダウンから「Language」を選択します。
ポップアップにて「日本語」を選択し、「OK」をクリックします。
「新規作成」をクリックし、管理者ユーザを登録します。
利用者登録情報を入力し、「新規作成」をクリックします。
「組織」をクリックし、プルダウンから「プロファイル」を選択します。
「ユーザのアサイン」で「ユーザの追加」をクリックします。
ポップアップにて、管理者ユーザ左側のチェックボックスに「✓」を入れ、「追加」をクリックします。
「ユーザのアサイン」覧に管理者ユーザ名が表示されることを確認します。
一度ブラウザを閉じて、再度ログイン画面を表示したら、管理者ユーザのIDでログイン出来ることを確認します。
最後に
今回はワークフロー環境の構築までをご紹介させて頂きました。
動作確認として手さぐりでワークフローを作成してみたのですが、やはり一筋縄ではいかず、フロー自体はGUIで作成しやすいのですが、フロー間のデータ連携や組織操作などの細かな箇所で非常に苦戦し、使いこなすにはかなりのお勉強が必要だと感じました。しかし、ここまでワークフローを実装できるオープンソースはなかなか無いと思いますので、ベンダーロックを気にする情シス担当方は検討されてみては如何でしょうか。
次回、機会があれば Bonita BPM Studio で作成したワークフローを Bonita BPM Portal にデプロイする方法などをご紹介したいと思います。
サイオステクノロジー株式会社 山田