8.11. アイデンティティコンポーネント

ユーザ、グループとパーミッションの管理は、一般的にアイデンティティ管理として知られています。JBPMには任意のアイデンティティコンポーネントを含み、企業独自のデータストアと簡単に置き換えることができます。
JBPM アイデンティティ管理コンポーネントは、組織モデルのナレッジが含まれており、これを使いタスクを割り当てます。このモデルはユーザー、グループ、システム、これらの関係を説明します。オプションで権限やロールも含めることができます。
JBPM は、アクターを実際のプロセスへのパーティシパントとして定義してこれに対応しています。アクターは、actorId と呼ばれる ID で認識されます。JBPM は、actorId についてのナレッジだけを持ち、最大限の柔軟性を実現するため、java.lang.String として表現されます。そのため、組織モデルやデータ構造に関するいかなるナレッジも、JBPM コアエンジンの範囲外となります。
JBPM の拡張として、将来的に簡単なユーザーロールモデルを管理するコンポーネントを提供を予定しています。このユーザーとロール間の多対多の関係は、J2EE やサーブレット仕様で定義されているモデルと同じで、新しい開発の出発点となるかもしれません。
ユーザロールモデルが、サーブレット、ejb、ポートレット仕様で使用されているように、ユーザロールモデルは、タスク割り当てを行うには、十分強力とはいえないことに 注意してください。そのモデルは、ユーザとロールの多対多関連です。これはプロセスに関連した ユーザのチームと組織構成についての情報を含んでいません。

8.11.1. アイデンティティモデル

アイデンティティモデルクラス図

図8.3 アイデンティティモデルクラス図

黄色のクラスは、次に議論するExpression Assignment Handler に関連します。
User は、ユーザかサービスを表します。Groupは、さまざまなユーザのグループです。 Group は、チーム、ビジネスユニット、及び会社全体の関係をモデルするようにネストすることが可能です。 Group は、 階層グループを区別するために、タイプを持っています (例:髪の色グループ)。 Membership は、ユーザとグループ間で多対多関連を表しています。 メンバーシップは、会社でのポジションを表すのに利用できます。また、グループ内のユーザが行うロールを示すために、メンバーシップ名を使用することができます。