BPMN
BPM
Activiti
BPMS,BRMS

Activiti.png

はじめに

このエントリーは、Activiti Advent Calendar 2017の1日目の投稿になります。
https://qiita.com/advent-calendar/2017/activiti

今回のAdvent Calendarでは全体を通して、現在開発を進めているActiviti 7の情報を日本語で発信するというところを主にやっていきたいと思っています。ただ、Activiti自体がニッチなこともあり、前半は入門的な内容と既存のバージョン(Activiti 5,6)の話を中心に進めていきたいと思います。

Activitiとは

Activitiは、Javaで作られたオープンソース(Apache 2.0)のBPMプラットフォームで、BPMN 2.0に準拠したプロセス図を記述できるデザイナーと、そのプロセス図をビジネスプロセスとして実行・管理できるBPMエンジンの2つの機能を中核としています。

そもそもBPMのコンセプト自体についてもう少し詳しく知りたいという方は、「日本BPM協会 BPMとは」をご参照ください。

デザイナー

Activiti 6では、BPMN 2 EditorというWebベースのデザイナーが提供されています。左のパレットからフローエレメントをDrag & Dropで配置して、線でつなげるだけで簡単にプロセス図を作成できます。こちらは、AngularJSで開発されています。

designer.png

ちなみに、Activiti 5では、Activiti DesignerというEclipseベースのデザイナーが提供されていました。

Activiti Designer.png

実行エンジン (Activiti Engine)

デザイナーで作成したプロセス図は、実行エンジンであるActiviti Engineにデプロイすることで、ビジネスプロセスとして実行・管理することができます。Activiti Engine自体はJavaのアプリケーションで、データベース上で状態を管理しながらプロセスを実行していきます。

image.png

Activiti Engineと業務アプリを連携する方法は、主に2つあります。1つ目は、業務アプリがJavaで書かれていれば、そのままActiviti Engineを業務アプリ内に組み込んでしまうという方法です。業務アプリの処理とプロセスの実行処理を同一のトランザクション内で扱うことが可能です。

2つ目は、Activiti Engineを独立したアプリケーションとして動作させ、業務アプリからActiviti EngineのREST APIを呼び出すことで連携する方法です。Activiti RESTというActiviti EngineをラップしたSpringフレームワークベースのWebアプリケーションが提供されているので、こちらのREST APIを業務アプリから呼び出すことで連携します。

デモ環境(Activiti UI)

Activitiでは、Activiti UIと呼ばれるデモ用のWebアプリケーションが提供されています。Activiti UIでは、プロセス図, プロセス内のタスクから呼び出すフォーム, プロセス内で実行するビジネスルールを作成するデザイナーツールをそれぞれ提供されており、これらを利用することでBPMと連携した業務アプリを簡単に作成することができます。

Activiti UI.png

今回はすごーくあっさりした説明だけでしたが、次回は実際にActiviti UIを触ってみて、簡単なビジネスプロセスを作って動かしてみたいと思います。デモ環境を用意していますので、待ちきれないという方は、ログインページから以下のアカウントでログインして、好きに触ってみてください。

ユーザ名 パスワード
admin test