業務分析に焦点を絞ったパターンは,Process four(P4)と呼ぶ4人の開発者が提唱した「ワークフロー・パターン」(詳細は,http://www.workflowpatterns.comを参照)だ。業務フローを作成する際のひな型として「基本的なパターン」や「先進的な分岐と結合に関するパターン」といった六つのカテゴリに分け,全部で20種類のパターンを定義している(表1)。

表1●ワークフロー・パターン(Workflow Pattern)の概要
業務フローを作成する際に,各アクティビティの配置をどうするかについて示したパターン。六つのカテゴリに分かれ,全部で20種類のパターンがある
[画像のクリックで拡大表示]
表1●ワークフロー・パターン(Workflow Pattern)の概要

 Michael Havey氏が2005年に著した「Essential Business Process Modeling」という本の中で,業務プロセスを設計する際のパターンとして紹介。日本でも2006年6月に「詳説 ビジネスモデリング―SOAベストプラクティス(オライリー・ジャパン刊)」として出版されたばかりだ。

 ソフトウエア・パターンは問題と解決策が組みになるが,ワークフロー・パターンで問題としてとらえているのは,業務フローを作成する際の要件である。解決策としては,その要件をアクティビティ(作業や処理など)で示した図になる(図1)。例えば,基本的なパターンである並列スプリット・パターンは,一つのアクティビティから複数の並列パスに分岐する場合の業務フローの書き方を示している。図1(1)は並列スプリットと同期化というパターンを組み合わせた例,同(2)は排他選択とシンプル・マージというパターンを組み合わせた例である。

図1●ワークフロー・パターンの例
図1●ワークフロー・パターンの例
並列スプリットと同期化を組み合わせた例と,排他選択とシンプル・マージを組み合わせた例を示した
[画像のクリックで拡大表示]

 ワークフロー・パターンは,これまであったどのパターンより,ソフトウエア開発の上流に位置づけられる。これまで上流に位置づけられたパターンと言えば,1996年に登場したDavid C.Hay氏のデータモデル・パターンや,1997年に登場したMartin Fowler氏のアナリシス・パターンが有名である。前者は構造化分析手法に基づくデータ・モデリングのアプローチを示したパターン。後者はオブジェクト指向技術に基づくクラス分析の手法を示したパターンだ。いずれのパターンも,データモデルやクラスなど,システム的な観点から分析手法を示している。

 これに対してワークフロー・パターンは,システム的な観点を排除し,業務分析に主眼を置くのが特徴だ。「ビジネス的な観点とシステム的な観点を切り離し,ビジネスの観点から業務の流れをどのように書くかをパターン化している。これまでにない斬新なパターンだ」と,情報処理学会のパターンワーキング・グループで主査を務める豆蔵の羽生田栄一社長はそのインパクトを強調する。

SOAの記述パターンとして利用

 ワークフロー・パターンが注目される理由はほかにもある。それは,SOA(Service Oriented Architecture)ベースの業務フローを記述する際のパターンとして利用できるからだ。

 複数のWebサービスを組み合わせたビジネスプロセス(SOAベースのビジネスプロセス)を定義するためのXMLベースの言語としては「BPEL(Business Process Execution Language for Web Services)」がある。ワークフロー・パターンは「BPMN」と呼ぶビジネスモデリング表記法によって表現できるが,このBPMNはBPELへのマッピング情報を持つので,BPMNのモデルをBPELのXMLファイルへと変換することが可能だ。

 SOAを前面に打ち出すパッケージ・ソフトやミドルウエアは,いずれもBPELを解釈する「BPELエンジン」を実装する。変換の精度には若干の問題が残るが,例えばワークフロー・パターンで記述した業務フローを,SAPのERPパッケージの機能として実装できる。BPELの標準化には,IBMやMicrosoft,SAP,BEA Systems,Siebel Systems(現Oracle)などが参加。BPELエンジンを実装する製品も着実に増えている。この点を見ても,ビジネスプロセスに関するパターンの中で,ワークフロー・パターンが広がる素地は確実にありそうだ。