ワークフロー・エンジンとは何か?

 

各業務の「処理状態」を把握する中核ソフト

「ワークフローエンジン」は、ワークフローシステムやBPMシステムに搭載される中核ソフトウェアです。

「エンジン」と聞けば、自動車や飛行機に搭載される「動力エンジン」を思い浮かべる方が多いかも知れません。情報システムの世界においても、システム全体を動かすための中核機関を指す場合が多く、「検索エンジン」、「メール配信エンジン」、「描画エンジン」など、様々なエンジンが存在します。

ワークフローエンジンは、業務案件が「どの状態にあるのか」を掌握し続けます。具体的には、「A社向け見積書がB部長の承認タスクにある」や「C氏からの問い合わせはDさんが回答文を執筆中である」など、一連の業務プロセスの、どの処理段階にあるのかを、いつでも把握しています。またその処理が完了すれば、次に処理すべき人(処理主体)に対して仕事を割り当てます。

ワークフローエンジンは、「業務プロセスのためのOS (Operating System)」と呼ばれることもあります。JBoss jBPM、Nova Bonita、Enhydra Shark、OpenWFEなど、オープンソース製品も多数存在します。

BPM製品「Questetra BPM Suite」には、Questetra社製のワークフローエンジン(BPMエンジン)が搭載されています。

 

ワークフローエンジンの性能

workflow pattern 07 - parallel split「エンジン性能」は、ワークフロー製品の導入時点では、あまり興味の湧くポイントではありません。しかし、実際に使い込んで行くと気になるものです。 (右図をClick すると、アニメーションが見れます)

 

1週間も運用すれば、『同時並行処理』を設定したくなります。

同時並行処理とは、複数の処理に「並行分岐」(Parallel Split)させ、それらの完了後に「同期」させると言う処理パターンです。グループウェアの付随ワークフローや拡張製品の多くは、「同時並行処理」を不得手とするケースがしばしば見られますが、回付宛先が多い稟議ワークフロー、複数人が同時に検査する品質管理、原文に対して翻訳と挿絵を同時に作成する校正業務など、様々なシーンで非常に便利です。

 

workflow pattern 21 - loop1か月も運用すれば、『ループ処理』を設定したくなります。

ループ処理とは、必要に応じて業務を何度も繰り返すと言う処理パターンです。オープンソースのワークフローエンジンでは『ループ処理』を不得手とする製品が多く存在します。上司や他部署に助言を求める場合、例外発生時に対処してやり直す場合などのシーンで有効です。

 

3か月も運用すれば、『非ブロック構造のフロー』を設定したくなるかも知れません。

非ブロック構造とは、「選択分岐」(Exclusive Choice)を用いたループが『ブロック構造』になっていない処理パターンです。アプリケーションサーバを拡張するBPM製品は、「非ブロック構造」に対応していないケースが多く見られます。
workflow pattern 10 - unstructured, not block structured 任意ループ(Arbitrary Cycles)と呼ばれることもあり、旅行手配や商品購買などで在庫が無い場合に差し戻す業務フロー、出荷検査不合格時に差し戻す業務フローなど、ループ構造を多用するシーンで便利です。

 

ちなみに、業務フロー図の形状に関するパターン研究として、Workflow Patterns Initiative の『ワークフロー・パターン』が有名です。43種類のワークフローパターンが存在し、「ワークフローエンジン開発」や「業務プロセス定義言語仕様作成」の指標となっています。

 

「人間の業務処理」に適したワークフローエンジンとは

ホワイトカラー業務の円滑な処理と言う視点で「ワークフローエンジン選定」を行うなら、(1)同時並行処理対応、(2)ループ処理対応、(3)非ブロック構造対応、(4)SOA対応、などが評価軸になると言えます。

ただし「稟議」や「立替金精算」など、一部のシンプルな業務に対してのみ、限定的にワークフローシステムを導入するのであれば、(1)~(4)のいずれにも対応している必要はありません。他方、既に社内にアプリケーションサーバを運用し、「在庫引当システム」や「給与計算システム」など多くのWebサービスが稼働している場合には、「(4)SOA」は必須項目になるかも知れません。

なお、ワークフローエンジンは、業務プロセス定義(BPEL・JPDL・XPDL・BPMN・EPCなど)のうち1つもしくは複数を理解します。業務プロセス定義が、すでに多数存在する場合には、そのフォーマットと合わせたエンジン選定が重要です。

 

Questetraのワークフローエンジン

Questetra BPM Suite に搭載されているワークフローエンジンは、「(1)同時並行処理」、「(2)ループ処理」、「(3)非ブロック構造」、の全てをサポートしています。しかしながら「(4)SOA」をサポートしていません。(OAuthベースのRESTfulなAPIをサポートし、公開しています)

Questetra の想定している業務プロセス設計者は、システムエンジニア(SE)ではありません。

ワークフロー定義には、業務プロセスを描画定義できる「グラフィカルな国際標準記法」である『BPMN』を採用し、ワークフローエンジンは、BPMNを(BPELコードに変換することなく)ネイティブに理解します。『ブロック構造』の形状になっていないワークフローでもそのまま稼働させる事が可能です。「BPEL変換」を行わないため、業務フローの修正や業務ルールの変更時にも、数分で改変、即時にシステム更新が可能です。

なお、ワークフロー定義ツールは、Webブラウザ上で操作するWebアプリケーションです。(Eclipse や Visual Studio と言ったSE向けツールは一切不要です)

  1. 表記法「BPMN2.0」のサブセットをDrag&Dropで配置し、
  2. プロセスデータ項目、
  3. 各タスクでのプロセスデータ閲覧権限、
  4. 分岐ポイントでの分岐ルール
  5. 各タスクでの割当ルール

を設定するだけで、ゼロ・コーディング(ノン・プログラミング)でワークフローシステムを構築する事ができます。

 

Questetraの発表論文

Questetraが情報処理学会で発表した論文 (2009-03-10/第71回全国大会) では、「モデル記述言語と実行言語の統合」と言う特徴や、「すべての機能をウェブアプリケーションとして提供」と言う特徴についてまとめています。業務プロセス設計とシステム実装の相互互換問題に悩まされることが無い点について、多くの方に興味を持って頂けたと考えています。  論文の全文(PDF)

論文のタイトル

業務分析者のユーザビリティを考慮した Human-Centric BPM システムの開発
(英文タイトル) Development of Human-Centric BPM System Considering Usability of Business Analysts

論文の概要

近年、企業活動の効率化および内部統制の要求から、業務プロセスの標準化や継続的改善を行うBPM (Business Process Management) が注目されている。特に最近では、人の判断や承認などが欠かせない複雑な業務フローを対象とした Human-Centric BPM システムの要求が高まっている。我々は現在、業務プロセスのモデリングから実行、監視までの一連の機能を持った軽量の Human-Centric BPM システムを開発している。本システムは情報システムにそれほど通じていない業務分析者でも使いやすいシステムを目指しており、本稿ではそのシステムの概要および特徴について報告する。

論文の目次

  1. はじめに
  2. BPM
    1. BPMシステムの分類
    2. BPMシステムの利用フロー
  3. 提案するBPMシステム
    1. 従来のBPMシステムの課題
    2. 課題に対するアプローチ
    3. プロセス記述言語
    4. プロセスの検証および実行
    5. アーキテクチャ
  4. まとめ