6 Oracle BPMでのシミュレーションの実行
シミュレーションを使用して指定の条件でのビジネス・プロセスの動作を予測し、出力がメトリックの目標に合致しているかも検証し、ボトルネックを特定します。既存のプロセス設計に対する変更の結果をテストするためにシミュレーションを実行します。
Oracle BPMでのシミュレーションの実行の概要
Oracle BPMでユーザー定義シミュレーションを実行して、プロセスの効率を判断します。シミュレーションで実際のデータまたは予測されるデータを反映できます。
次の操作を実行できます。
-
様々な条件を分析できるように、特定のプロセスに対して複数のモデルを定義します。
-
複数プロセスのシミュレーションを実行して、個々のビジネス・プロセス内の動作が参加者などの共有リソースにどのような影響を及ぼす可能性があるかを把握します。
シミュレーション・モデルおよびシミュレーション定義
シミュレーションを実行する前に、プロセスの各要素の動作を指定する必要があります。シミュレーションを定義するには、BPMプロジェクトで次の要素を作成して構成する必要があります。
-
シミュレーション・モデル
個々のプロセス・モデルの動作を定義できます。いずれのプロセス・モデルにも複数のシミュレーション・モデルを作成できるため、多様なシナリオを模倣できます。
-
シミュレーション定義
シミュレーション・シナリオを定義するプロセスおよびリソースを定義できます。シミュレーション定義では、プロセスに関連付けられたシミュレーション・モデルを選択して、シミュレーションに参加するプロセスを指定します。1つのプロセスに複数のシミュレーション・モデルが定義されている場合もあります。プロセスに複数のシミュレーション・モデルが定義されている場合は、それらのモデルのうちの1つを選択して、シミュレーション定義で使用する必要があります。
シミュレーションは、プロセス内の個々のタスクをコールしません。たとえば、シミュレーションはサービス・タスクに関連付けられているサービスを実行せず、変数に値は割り当てられず、外部リソースは更新されません。
ただし、シミュレーションは、シミュレーション・エディタを使用して定義できる次のシミュレーション変数を使用してアクティビティの動作を模倣します。
-
duration
-
リソース
-
コスト
-
キュー情報
-
送信フローを通過するインスタンスの確率
シミュレーション・モデルの作成
シミュレーション・モデルを使用すると、個々のプロセスの動作をシミュレートできます。シミュレーション定義の一部としてプロセスの動作を指定できます。
各プロセスに複数のシミュレーション・モデルを定義し、リソース割当てとアクティビティ動作の様々な組合せに基づいて様々なシミュレーションを作成できます。
シミュレーション・ウィザードを使用してプロセスに基づいたシミュレーション・モデルを作成することも、最初から作成することもできます。
シミュレーション・モデルを作成および構成する方法
シミュレーション・モデルを作成および構成するには:
-
「アプリケーション」ウィンドウで、「シミュレーション」ノードを開きます。
-
「シミュレーション・モデル」ノードを右クリックします。
-
「新規」を選択し、「ギャラリから」を選択します。
「新規ギャラリ」ダイアログ・ボックスが表示されます。
-
「カテゴリ」セクションで、「BPM層」ノードを開き、「シミュレーション」ノードを選択します。
-
「アイテム」セクションで、「BPMNプロセス・モデル・シミュレーション」を選択し、「OK」をクリックします。
「プロセスの選択」ダイアログ・ボックスが表示されます。
-
プロセスを選択します。
「モデル・シミュレーション」ダイアログ・ボックスが表示されます。
-
シミュレーション・モデルの名前を入力します。
-
「OK」をクリックします。
シミュレーションモデルが「アプリケーション」ウィンドウの「シミュレーション・モデル」ノードの下に表示され、シミュレーション・モデル・エディタが開きます。
-
シミュレーション中に作成するインスタンスの数を指定します。
-
「作成するプロセス・インスタンスの数を指定してください」を選択します。
-
シミュレーション中に作成するインスタンスの数を指定します。
ノート:
指定した期間が終了するまで、またはインスタンスの最大数に達するまで、プロセス・シミュレーションが実行されます。
-
-
「フロー・ノード」ツリーで、アクティビティを選択します。
選択したアクティビティのタイプに応じて、「フロー・ノード」ツリーの右側に次のタブ・ページが表示されます。
-
期間: アクティビティの完了に必要な時間を決定する分布を定義します。
-
リソース: 特定のロールに割り当てられた参加者の数を指定します。このパラメータは、シミュレーション・モデル内で定義することも、プロジェクト・シミュレーション定義内でグローバル・プロジェクト・レベルで定義することもできます。
-
コスト: アクティビティの処理コストを指定します。ユーザー・タスクの場合は、ユーザー・タスクに割り当てられるリソースのコストも指定します。1時間当たりの給与で測定されます。
-
キュー情報: 特定のアクティビティに対してプロセス・インスタンスがキューに格納されるシミュレーション動作を定義します。
-
送信フロー: 様々な送信シーケンス・フローを通過するインスタンスの確率を決定します。
-
スレッド: このフロー・オブジェクトを実行するスレッドの数を指定します。このタブは、ユーザーの相互作用を伴わないフロー・オブジェクトでのみ使用可能です。
-
インスタンス作成: シミュレーション用にインスタンスを作成するときに使用する分布カーブを指定できます。このタブは、開始イベントでのみ使用可能です。
-
-
各アクティビティを次のように構成します。
-
「期間」ページの「インスタンス実行期間」セクションで、「分布タイプ」を指定します。表6-1にオプションを示します。
表6-1 シミュレーション・モデルの「フロー・ノード」の「期間」ページのオプション
オプション 説明 定数
シミュレーション・モデルが期間プロパティに指定された値を使用して、プロセス内のすべてのアクティビティの完了時間を算出するように指定します。
均一
アクティビティの完了に必要な期間を、常に「差異」プロパティで指定した差異を考慮して決定します。このオプションを選択した場合は、次の各オプションを指定するように要求されます。
-
平均: アクティビティの完了までの平均時間を決定します。
-
差異: シミュレーション・アクティビティの完了までの時間を決定する際に「平均」パラメータの上限と下限の差異を定義します。
指数
特定期間内に完了するインスタンス数を指定することにより、シミュレーション・アクティビティの完了までの時間を決定します。このオプションを選択した場合は、次のオプションを指定するように要求されます。
-
平均頻度\: 「間隔」プロパティで定義されている時間間隔内に処理されるインスタンスの平均数を決定します。
-
間隔: 指数分布に使用される時間間隔を定義します。
標準
ガウス・ベル分布を使用して、シミュレーション・アクティビティの完了までの時間を決定します。平均分布と標準分布を指定する必要があります。このオプションを選択した場合は、次のオプションを指定するように要求されます。
-
平均: アクティビティの実行に必要な平均時間
-
標準偏差: アクティビティの実行に必要な平均期間の標準偏差
実数
特定の時間間隔についてシミュレーション・アクティビティを完了するために必要な時間を指定できます。このオプションを選択した場合は、次のオプションを指定する必要があります。
-
分布基準: シミュレーション・アクティビティの完了までの時間を決定するための時間間隔を決定します。
-
間隔: シミュレーションが実行される期間を指定します。
-
平均: アクティビティを完了するまでの平均時間を定義します。
-
標準偏差: 「平均」パラメータの標準偏差を定義します。
-
-
「コスト」ページで、次のプロパティを指定します。
表6-2 シミュレーション・モデルの「フロー・ノード」の「コスト」ページのプロパティ
プロパティ 説明 固定基本コスト
シミュレーション・アクティビティを実行するために必要なコストを定義します。
固定基本コスト+リソース・コスト
定義された時間当たりのコストと、リソースがインスタンスの実行にかかる時間に基づいて計算されます。このプロパティは、ユーザー・タスクでのみ使用可能です。
-
「キュー情報」ページの「キュー警告サイズ」フィールドに、アクティビティを同時に待機できる受信インスタンスの数を指定します。
-
「送信フロー」ページで、スライダを移動して各送信シーケンス・フローの発生確率を指定します。
アクティビティが境界イベントを含む場合、境界イベントのフローはこのページに表示されます。構成する境界イベントの詳細は、「境界イベントの構成」を参照してください。
-
境界イベントの構成
シミュレートするBPMNプロセスに境界イベントが含まれている場合、これらのイベントの発生確率を指定する必要があります。
「送信フロー」ページで様々な境界イベントの確率を指定できます。
境界イベントの確率を指定する方法は、イベントのタイプに応じて異なります。
-
連続しない境界メッセージおよびエラー・イベント
アクティビティのすべての連続しない境界メッセージおよびエラー・イベントの確率には、関連性があります。これらの確率を追加する場合、結果は常に1である必要があります。
シミュレーション・モデル・エディタには、これらのアクティビティを構成するためのスライダのセットが表示されます。スライダを移動すると、他のスライダの値が自動的に調整されます。スライダの横にあるロック・アイコンをクリックすると、値をロックできます。値がロックされると、他のスライダを移動しても、シミュレーション・モデル・エディタはその値を変更しません。シミュレーション・モデル・エディタでは、2つ以上の値がロック解除された状態になるようになっています。
-
連続する境界メッセージおよびエラー・イベント
連続する境界メッセージ・イベントまたはエラー・イベントの確率は、他のイベントの発生確率から独立しています。この確率のこの値は、0から1の間で変化します。
シミュレーション・モデル・エディタには、連続する境界メッセージまたはエラー・イベントごとにスライダが表示されます。このスライダを移動して、0から1の間の任意の値を指定できます。
-
タイマー・イベント
境界タイマー・イベントの確率を指定するには、イベント発生の時間間隔を定義する必要があります。BPMNプロセスでのタイマー・イベントの実装に式を使用する場合、シミュレーション中に使用する固定の時間間隔を定義する必要があります。BPMNプロセスでのタイマー・イベントの実装に固定の時間間隔を使用する場合は、シミュレーション用のBPMNプロセスで定義した間隔を使用できるため、時間間隔の再定義は必要に応じて行います。
シミュレーション・モデル・エディタには、連続しないタイマー・イベント用の表と、連続するタイマー・イベント用のもう1つの表が表示されます。これらの表を使用して各イベントの時間間隔を再定義できます。
図6-1は、各種の境界イベントを持つ見積の承認ユーザー・タスクを示しています。図6-2は、見積の承認ユーザー・タスクのシミュレーション構成ページを示しています。
シミュレーション定義の作成
シミュレーション定義を作成して、シミュレーション・モデルのグループのためのシミュレーション・シナリオを表すことができます。シミュレーション定義に含まれているシミュレーション・モデルのグループから実行するシミュレーション・モデルを選択できます。
シミュレーション・ウィザードを使用してシミュレーション・モデルを作成した後で、シミュレーション定義を作成することもできます。シミュレーション・ウィザードを使用してシミュレーション・モデルおよびシミュレーション定義を作成する方法の詳細は、「ビジネス・プロセスからシミュレーション・モデルを作成する方法」を参照してください。
シミュレーションの実行
シミュレーションを実行すると、プロジェクト・エディタにアニメーションが表示されます。
シミュレーションを一時停止、停止、または最後まで実行することができます。シミュレーションを停止した場合は、最初から再開する必要があります。
シミュレーションを実行する方法
シミュレーションを実行するには、シミュレーション・モデルおよび1つ以上のシミュレーション定義を事前に作成しておく必要があります。
シミュレーションを実行するには:
-
「アプリケーション」ウィンドウで
-
「シミュレーション」ビューを開きます。
-
「シミュレーション」リストで、実行するシミュレーション定義を選択します。
-
「シミュレーションの実行」をクリックします。
シミュレーションが開始されます。
-
シミュレーション実行時の処理
プロジェクト・エディタにシミュレーションのアニメーションが表示され、指定した内容に応じて結果が「シミュレーション」ページに表示されます。
ノート:
チャートの列の上にマウス・ポインタを置くと、アクティビティまたはインジケータの値を示すツールチップが表示されます。
「シミュレーション」ビューの理解
「シミュレーション」ビューでは、シミュレーションを構成して実行できます。図6-5は、「シミュレーション」ビューを示しています。
「シミュレーション」ビューのツールバーでは、次の操作を実行できます。
-
「シミュレーション」リストから、実行するシミュレーションを選択します。
-
適切なボタンをクリックすることにより、シミュレーションを開始、停止、一時停止、または最後まで実行します。シミュレーションを最後まで実行するように選択した場合、シミュレーションはアニメーションなしでバックグラウンドで実行され、より高速でシミュレーションを実行できます。
ノート:
シミュレーションを停止した場合は、最初から再開する必要があります。
-
「スピード」リストから、シミュレーションの実行スピードを選択します。通常のスピードでは、インスタンスは毎秒1つ作成されます。
「チャート」タブのツールバーでは次が可能です。
-
結果を表示するグラフィック・タイプの変更
-
ドリルアップおよびドリルダウン
-
フォントサイズの拡大/縮小
シミュレーションの結果の分析
「シミュレーション」ウィンドウで「チャート」タブまたは「ログ」タブをクリックして、シミュレーション結果をチャートまたはログ・ファイルとして表示できます。
「ログ」タブには、シミュレーションされたプロセスのすべてのインスタンスの動作を追跡するログが表示されます。ログの各行には、次の情報が示されます。
-
日付と時間
-
プロセス
-
インスタンス
-
インスタンスのパス
チャートを使用してシミュレーションの結果を分析する方法
「チャート」タブでは、シミュレーションの結果を表示するチャートのタイプを選択できます。このチャートは、監視するリソースが表示されるように構成できます。チャートがリソースの使用状況の測定に使用する単位を選択することもできます。
「チャート」タブでは、次を構成することによってシミュレーションの結果のチャートを表示する方法を構成できます。
-
チャートのタイプ
-
監視するアクティビティまたはリソース
-
インジケータ
図6-6は、サンプルの「チャート」ページのツールバーを示しています。
チャートを使用してシミュレーションの結果を分析するには: