はじめに
ビジネスプロセス モデリングでは厳密に定義された記法や言語を用いるという話をしてきましたが、実際にはどのような記法や言語を使うのでしょうか?
これまでに、ビジネスプロセス モデルのために数多くの記法や言語が提案されていますが、これらは、ペトリネットやオートマトン、もしくは、プロセス代数といった技術に基礎を置いています。具体的な記法の話に入る前に、これらの基礎技術について少し触れておきます。
ペトリネット
ペトリネットは、プレースとトランジションという2種類のノードを持つ二部有向グラフです。ノード(頂点)とアーク(辺)から構成される図形をグラフと呼びますが、その中でアークに方向があるものを有向グラフと呼びます。一般的な有向グラフではノードの種類は1種類ですが、ノードの種類が2種類のものを二部有向グラフと呼びます。ペトリネットは二部有向グラフです。
通常、ペトリネットでは、プレースを円で表し、トランジションを箱や棒で表します。また、プレースとトランジションは有向アークで接続されます。アークは、プレースからトランジション、または、トランジションからプレースへ接続され、プレースとプレースやトランジションとトランジションが接続されることはありません。プレースには0個以上のトークンが置かれます。通常、トークンは黒い小さい丸で表現されます。図1にペトリネットの例を示します。この図では、プレースを円で、トランジションを縦棒で表しています。また、左端のプレース内にある黒丸がトークンを表しています。
ペトリネットでは、あるトランジションに入ってくるアークがある場合、そのアークの元にあるすべてのプレースにトークンが置かれたときに、トランジションは発火可能となります。そしてトランジションが発火すると、そのトランジションから出て行くアークの先にあるすべてのプレースにトークンが置かれます。このようにして、初期状態で配置されたトークンが次々伝播することにより、次々と状態が変化していきます。図2は、簡単なペトリネットにおけるトークンの推移を表しています。
ペトリネットではこのような単純なルールで振舞を定義することができます。このように、ペトリネットを用いるとなんらかの振舞を表現するためのシンタックスとセマンティクスを単純かつ明快に定義することができます。
UMLのアクティビティ図は明示的なプレースを持ちませんが、アクティビティをトランジション、アクティビティと入力フローの接点をプレースと捉えることによって、ペトリネットとして解釈することができます。
また、ペトリネットのトークンをビジネスオブジェクト、トランジションをアクティビティ、プレースをアクティビティ待機状態と解釈することによって、ビジネスプロセスを表現することができます(図3)。