BPMN 2.0の概要とビジネス・プロセス・モデリング
実行可能モデル
最近、モデル駆動型開発アプローチの世界では、実行可能モデルを「Executable Model」と呼び、実行可能モデルを設計することを「Executable Design」と呼び始めています。BPMNにおいても、ビジネス・プロセス・モデリングの最終成果を実行可能モデルと呼んでいます。
実行可能モデルの構造は、分析モデルと比べて、視覚的にはほとんど変わりません。"間違い探しゲーム"のように、あえてビジュアルな変化を挙げるとすれば、"人の作業"の前後に"システムの作業"が追加されている場合があることです。
実行可能モデルの作成を担当するシステム・アーキテクトは、"システムの作業"の実行可能性を評価しながら、対象のプラットフォームやサービス部品ごとに最適なシステム連携方法を考え、モデルを改良することになります。
システム・アーキテクトの主な設計作業は、BPMN図形要素の裏に隠れている属性(実装仕様)を定義することです。
例えば、"人の作業"では、ロールに割り当てられた人が入出力するデータ項目を定義します。"システムの作業"では、サービス・インタフェースのデータ項目を定義します。このほか、ひし形図形で示す"条件判断"に必要なデータ項目と条件式も定義します。
これらのデータ項目は、プロセス変数またはプロセス・データ・オブジェクトと呼ばれます。BPMSがプロセスを起動するたびに、メモリー空間上にデータ・プールとして、これらの記憶領域を確保します。つまり、プロセス上の作業の流れとは、「データを適切な人やシステムから収集し、適切な人やシステムに配信する」コントロール・フローという見方も成り立ちます。
詳細は後述するBPMN 2.0では、これらの詳細な実装仕様を、以下の言語で定義するように規定しています。
- データ・タイプ定義言語はXMLスキーマ
- サービス・インタフェース定義言語はWSDL
- データ・アクセス言語はXPath
データ・モデル
プロセス・モデルは、プロセスを視覚化します。しかし、取り扱うデータ項目やデータ構造までを一緒に視覚化することは困難です。このため、実行可能モデルでは、データ・モデルが別途必要になります。
データ・モデルとは、データ・プール内で保持するデータに対する型と構造の定義です。データベースの設計モデルではありません。
システム・アーキテクトは、プロセスの入出力対象となるデータ・オブジェクト(図8の例では、"見積もり依頼"と"見積もり回答"が相当)を分析し、このデータ・オブジェクトを構成するデータ項目の型と構造を、XMLスキーマ・ファイルに定義します。
XMLスキーマで定義した、データを可視化したモデルの例を、図9に示します。
図9: XMLスキーマを使ったデータ定義の例(クリックで拡大) |
図9は、分析モデルの例(図8)で対象にしていた"見積もり依頼"と"見積もり回答"を構成するデータ項目の型と構造を、ビジュアルに表現したデータ・モデルの例です*1。
- [*1] 筆者はXMLのテキスト編集が苦手なので、XML専用のビジュアル・エディタを使い、ER(Entity Relationship)図とまったく同じ感覚でXMLスキーマを設計しています。
生成したXMLスキーマ・ファイルは、後工程である実装段階で、BPMSのデータ・カタログにインポートします。こうしてインポートしたXMLスキーマ・ファイルは、画面設計の定義やプロセス・データ・オブジェクトの定義として参照します。
データ・モデルは、データ項目の名称や型/構造を、プロセス単位ではなく、複数のプロセスを横断して一元的に定義します。これにより、データ仕様の統一と標準化が可能です。BPMNでは、「データ・モデルはビジネス・プロセス・モデルとは分離・独立して管理されるべきもの」という考え方に立っています。