8 プロセス動作のシミュレート
Oracle Business Process Composerを使用して、ビジネス・プロセスのパフォーマンスを向上するためのシミュレーションを実行します。シミュレーション・モデルおよびシミュレーション定義の作成方法とシミュレーションを実行して結果を分析する方法を学習します。
8.1 シミュレーションの概要
Oracle Business Process Management (Oracle BPM)には、Business Process Model and Notation (BPMN)プロセスの動作およびパフォーマンスをシミュレートするための機能が用意されています。プロセス設計者は、Oracle Business Process Composerを使用して、設計フェーズ中にシミュレーションを実行できます。
シミュレーションを作成して構成した後、Oracle Business Process Composerで実行し、定義したリソース割当てを使用してプロセスの効率を測定します。シミュレーションを使用して、次のことができます。
-
特定のプロセスに対して複数のシミュレーション・モデルを定義し、様々な条件を分析します。
-
複数プロセスのシミュレーションを実行して、個々のビジネス・プロセス内の動作が参加者などの共有リソースにどのような影響を及ぼす可能性があるかを把握します。
ノート:
Oracle Business Process Composerでは、Oracle Business Process Composerを使用して定義したテスト・データに基づくシミュレーションのみを実行できます。実際のデータでのシミュレーションは、Oracle BPM Studioを使用して実行できます。
8.1.1 シミュレーション・モデルおよびシミュレーション定義
シミュレーションを実行する前に、プロジェクトのシミュレーション動作とシミュレーションに含めるプロセスを定義する必要があります。シミュレーションを定義するには、BPMプロジェクトに次のものを作成して構成する必要があります。
-
シミュレーション定義
シミュレーション定義を使用して、特定のシナリオに対するプロセスとリソースを定義します。シミュレーション定義では、プロセスに関連付けるシミュレーション・モデルを選択することで、シミュレーションに含まれるプロセスを指定します。プロセスに対して、複数のシミュレーション・モデルを定義することができます。プロセスに複数のシミュレーション・モデルが定義されている場合は、それらのモデルのうちの1つを選択して、シミュレーション定義で使用する必要があります。
1つのBPMプロジェクトにおいて、それぞれが独自のパラメータ定義とシミュレーション・モデルを持つ複数のシミュレーション定義を定義できます。これにより、複数のシナリオを比較できます。
-
シミュレーション・モデル
シミュレーション・モデルを使用して、個々のプロセス・モデルのシミュレーション動作を定義します。各ビジネス・プロセスに複数のシミュレーション・モデルを定義できるので、様々なシナリオをシミュレートできます。
シミュレーションは、プロセス内の個々のタスクをコールしません。たとえば、シミュレーションはサービス・タスクに関連付けられているサービスを実行せず、変数に値は割り当てられず、外部リソースは更新されません。
8.1.2 シミュレーション・パラメータ
シミュレーション定義とシミュレーション・モデルに対して定義される一般的なパラメータに加えて、BPMNプロセス内の開始イベントとアクティビティに対するシミュレーション・パラメータも定義できます。
8.1.2.1 一般的なシミュレーション定義パラメータ
次のパラメータは、シミュレーション定義の一般的な動作を定義します。
-
シミュレーション定義: シミュレーション定義の名前を定義します。
-
期間: シミュレーションの実行期間を定義します。
この間隔は、月単位、日単位、時間単位、分単位および秒単位で指定します。
-
開始時間: シミュレーションの開始時間を定義します。
この時間はロギングにのみ使用されます。スケジュール目的では使用されません。
-
シミュレーションが終了する前に実行中のインスタンスを完了: 選択すると、シミュレーションは、指定した数のインスタンスが完了したときのみ終了します。
これを選択しない場合、シミュレーションはシミュレーション期間が経過すると停止します。その時点で完了していないインスタンスはすべて、「処理中」または「キュー」ステータスで表示されます。
シミュレーション定義を作成する際、これらのパラメータを定義する必要があります。ただし、必要に応じて、後で再定義できます。
8.1.2.2 シミュレーション・モデルのパラメータ
次のパラメータは、シミュレーション・モデルの一般的な動作を定義します。
-
モデル名: シミュレーション・モデルの名前を定義します。
-
作成するプロセス・インスタンスの数を指定してください: シミュレーション中に作成されるシミュレーション・インスタンスの数を指定します。
-
対話型タスク: 対話型タスクに使用される分布タイプを定義します。
次の分布タイプを使用できます。
-
定数
-
均一
-
指数
-
標準
これらは、プロセス内の特定のアクティビティに対して定義されている分布方法と同じになります。プロセス内の特定のアクティビティに対する分布タイプまたはその他のパラメータを変更すると、これらの値は、シミュレーション・モデルに対して定義されている一般的な値をオーバーライドします。詳細は、「アクティビティのパラメータ」を参照してください。
-
-
自動タスク: 自動タスクの実行時に使用可能なシミュレーション・スレッドの数を定義します。
このパラメータは、プロセス内の個々のアクティビティに対して定義できるスレッド・パラメータと同じです。詳細は、「アクティビティのパラメータ」を参照してください。
8.1.2.3 リソース・パラメータ
リソースは、組織内のシミュレーション・リソースを定義します。リソースはシミュレーション定義で定義され、含まれる各プロセス・モデル間で共有できます。これらリソースは、プロジェクト内の特定のロールと関連付けることができます。これらのパラメータを使用することにより、1人またはグループのコスト、時間および効率性を決定するリソース・プロファイルを作成できます。
次のリソース・パラメータがサポートされています。
-
名前: リソースの名前を定義します。
-
時間当たりのコスト: アクティビティの実行時における時間当たりのリソースのコストを指定します。
-
効率: アクティビティの実行時におけるリソースの効率を指定します。
このパラメータは、組織リソースの割当て方法を定義する際、最大効率ポリシーを選択した場合に使用されます。
詳細は、「アクティビティのパラメータ」を参照してください。
-
容量: 一度に実行可能なアクティビティの数を指定します。
-
可用性: リソースを利用可能な時間の割合を指定します。
-
ロール: リソースに関連付けるロールを指定します。
8.1.2.4 開始イベントのパラメータ
開始イベントの動作とパフォーマンスをシミュレートするために、Oracle BPMは、特定の動作の可能性をシミュレートする統計モデルを使用します。Oracle BPMが使用する統計分布を選択する必要があります。
使用可能な分布タイプは、次のとおりです。
-
定数: 特定の間隔で開始イベントをトリガーします。
たとえば、1分15秒と指定すると、1分15秒ごとにイベントがトリガーされます。イベントがトリガーされるたびに、プロセスの新しいインスタンスが作成されます。
-
均一: 平均パラメータと差異パラメータによって指定される特定の範囲内の間隔で開始イベントをトリガーします。
たとえば、平均を30秒、差異を3秒と定義した場合、27秒から33秒の間隔で、等確率で開始イベントの新しいインスタンスが作成されます。
-
指数: 特定の間隔内で指定の回数、開始イベントをトリガーします。
たとえば、頻度を10とし、間隔を1時間と定義した場合、1時間当たり10回イベントがトリガーされます。イベントの分布は、指数分布に基づきます。
-
標準: 正規(ガウス)分布に基づいて開始イベントをトリガーします。
これは、ベル曲線に基づいた連続確率分布です。たとえば、平均を10分、標準偏差を2分と定義した場合、図8-1に示されている確率に従って、イベントがトリガーされます。
この例では、8分から12分の間隔で、62.8パーセントの確率でイベントがトリガーされます。
-
実数: 時間単位、日単位、週単位または月単位でのユーザー指定間隔に基づいて開始イベントをトリガーします。
各間隔について平均と標準偏差を定義できます。これらのパラメータを使用すると、開始イベントは正規分布で新しいプロセス・インスタンスを作成します。
たとえば、平日について平均を5分、標準偏差を1分とし、週末については平均を1時間、標準偏差を10分として、日単位で分布を指定できます。
8.1.2.5 アクティビティのパラメータ
開始イベントに加えて、シミュレーション動作またはプロセス内の対話型および自動アクティビティを決定するパラメータを定義できます。シミュレーション・エディタのタブ付きペインを使用して、これらのパラメータを定義します。図8-2は、対話型アクティビティのタブ付きペインの例を示しています。
アクティビティのシミュレーション・パラメータは次のとおりです。
-
期間: アクティビティの実行に必要な時間を測定するために使用する統計モデルを定義します。
使用される統計モデルは、開始イベントに対して定義される統計モデルと似ていますが、ここでは、イベントのトリガー頻度を定義するのではなく、特定のアクティビティの実行にかかる時間を定義します。
各分布タイプについては、「開始イベントのパラメータ」を参照してください。
-
リソース(対話型アクティビティのみ): 同時に実行可能な対話型アクティビティの数を定義します。
シミュレーション・リソースがこのアクティビティにどのように割り当てられるかを定義できます。
-
組織リソース: シミュレーション定義内のすべてのプロセスで共有されるリソースです。
アクティビティを実行するためにシミュレーション対象リソースを選択する方法を決定するポリシーを指定する必要があります。
-
最小コスト: 低コストのリソースを最初に選択します。
-
最大効率: 最も効率的なリソースを最初に選択します。
-
ランダム: 最小コストと最大効率の間でランダムに選択します。
シミュレーション定義での組織リソースの定義については、「リソースのパラメータ」を参照してください。
-
-
修正済リソース: 対話型アクティビティの実行に使用できるリソース数を明示的に定義します。
-
-
スレッド(自動アクティビティにのみ使用可能): 自動アクティビティの実行に使用されるシミュレーション・スレッドの数を定義します。
-
時間当たりのコスト: アクティビティの実行に必要なコストを定義します。
このパラメータは、コストベースのレポートを作成するのに使用します。
-
アクティビティ・コスト・タイプ: 基準コストとして定義するか、アクティビティを実行するために割り当てられたリソースのコストを基準コストに加算したものとして定義できます。
-
アクティビティ修正済基準コスト: 修正済基準コストの金額(小数で指定)を定義します。
シミュレーション定義での組織リソースの定義については、「リソースのパラメータ」を参照してください。
-
-
キュー情報: アクティビティのキューの最大サイズを指定します。
これは、このアクティビティで同時に待機するインスタンスの数です。この数が最大サイズに達すると、警告が発生します。
-
送信フロー: 各送信シーケンス・フローに沿ったプロセス・インスタンスの確率(小数で定義)を指定します。
定義されている送信シーケンス・フローが1つのみの場合、確率は1になり、変更できません。
8.2 シミュレーションの作成と実行
シミュレーションを実行する前に、プロジェクトに対してシミュレーション・モデル、およびシミュレーションに含める各プロセスに対して少なくとも1つのシミュレーション定義を定義する必要があります。複数のシミュレーション定義を作成して、プロセスのパフォーマンスをテストおよび比較できます。
シミュレーションを作成して実行するには:
8.3 シミュレーション定義の使用
シミュレーション定義は、BPMプロセスのシミュレーション動作を全体的に定義します。
シミュレーション定義内で、組織リソースを含む一般的なパラメータを定義したり、シミュレーションに含めるシミュレーション・モデルを選択できます。複数のシミュレーション定義を作成して、パラメータとプロセスの様々な組合せをテストできます。
シミュレーション定義を作成したら、次の各項の説明に従って、リソースの編集やシミュレーション・モデルの追加などを行うことができます。
8.3.1 シミュレーション定義を作成する方法
シミュレーション定義では、様々なパラメータの値を変更して、それがプロジェクトのパフォーマンスにどのように影響するかを確認できます。定義できるパラメータは次のとおりです。
-
シミュレーションの開始時間と期間
-
プロジェクト・シミュレーションに含めるプロセス・シミュレーション・モデル
-
シミュレーションに含めるリソース
Oracle Business Process Composerには、新しいシミュレーション定義の作成と構成、新しいシミュレーション・モデルの作成と構成、および組織リソースの構成を行うためのウィザードが用意されています。
シミュレーション定義を作成および構成するには:
-
プロジェクトのようこそページから「シミュレーション」をクリックします。
-
「新規」(+)アイコンをクリックして、シミュレーション・ウィザードを開始します。
図8-3に示すように、「新規シミュレーション」ダイアログが表示されます。
-
シミュレーション定義の名前、およびシミュレーション定義の期間と開始時間の値を入力します。
「シミュレーションが終了する前に実行中のインスタンスを完了」チェック・ボックスを選択します。
シミュレーション定義を作成する際、これらのパラメータを定義する必要があります。ただし、必要に応じて、後で再定義できます。
各パラメータの詳細は、「一般的なシミュレーション定義パラメータ」を参照してください。
-
「次へ」をクリックします。
-
シミュレーション定義に含める各プロセスの新しいシミュレーション・モデルを作成します。
シミュレーション・モデルはシミュレーション定義間で共有できます。ただし、初めてシミュレーション定義を作成するときは、各プロセスに対して少なくとも1つのシミュレーション・モデルを作成する必要があります。
モデルとプロセス間の関連付けを追加するときに、シミュレーション定義エディタで新しいモデルを作成することもできます。詳細は、「シミュレーション・モデルをシミュレーション定義に関連付ける方法」を参照してください。
-
「追加」(+)アイコンをクリックして、新しいシミュレーション・モデルを作成します。
シミュレーション・モデルでは、プロセスのシミュレーション動作を定義します。1つのプロセスに対して複数のシミュレーション・モデルを定義できますが、1つのシミュレーション・モデルのみがシミュレーション定義内の各プロセスに使用されます。
-
図8-4に示すように、各フィールドに情報を入力します。
各パラメータの詳細は、「シミュレーション・モデルのパラメータ」を参照してください。
-
「追加」をクリックします。
必要に応じて、追加のシミュレーション・モデルを作成します。シミュレーション定義に含めない場合でもプロジェクト内の各プロセスに対して少なくとも1つのシミュレーション・モデルを作成する必要があります。こうすると、後から追加のシミュレーション・モデルを作成して、他のシミュレーション定義に追加できます。
-
-
シミュレーション・モデルをシミュレーション定義に含める各プロセスの隣にあるチェック・ボックスを選択します。
プロセスのシミュレーション・モデルを作成していない場合は選択できません。
-
「次へ」をクリックします。
-
「リソースの追加」アイコンをクリックして、シミュレーション定義にリソースを追加します(オプション)。
定義できるリソース・パラメータについては、「リソースのパラメータ」を参照してください。
-
「終了」をクリックします。
8.3.2 シミュレーション定義作成時の処理
新しいシミュレーション定義とシミュレーション・モデルを作成すると、図8-5に示すようなシミュレーション・パネルが表示されます。
図8-5 プロジェクトのようこそページ - 「シミュレーション」: シミュレーション定義の作成後
「図8-5 プロジェクトのようこそページ - 「シミュレーション」: シミュレーション定義の作成後」の説明
このパネルには、プロジェクトで定義されているすべてのシミュレーション定義が表示されます。
このパネルから、シミュレーション定義を開いて次のタスクを実行できます。
-
シミュレーション定義を編集します。
詳細は、「シミュレーション定義を編集する方法」を参照してください。
-
シミュレーションを実行します。
詳細は、「シミュレーションを実行する方法」を参照してください。
-
シミュレーション・モデルを編集します。
詳細は、「シミュレーション・モデルを編集する方法」を参照してください。
8.3.4 シミュレーション・モデルをシミュレーション定義に関連付ける方法
新しいシミュレーション・モデルを作成する前に、少なくとも1つのシミュレーション定義を作成する必要があります。詳細は、「シミュレーション定義を作成する方法」を参照してください。
シミュレーション・モデルをシミュレーション定義に関連付けるには:
8.4 シミュレーション・モデルの使用
シミュレーション・モデルを使用すると、個々のプロセスの動作をシミュレートできます。プロセスがどのように動作するかをシミュレーション定義の一部として定義できます。
各プロセスに複数のシミュレーション・モデルを定義し、リソース割当てとアクティビティ動作の様々な組合せに基づいて様々なシミュレーションを作成できます。
8.4.1 新しいシミュレーション・モデルを作成する方法
1つのプロセスに対して複数のシミュレーション・モデルを作成できます。シミュレーション定義ごとに異なるモデルを含めて、パラメータ設定に基づいてパフォーマンスを判断することができます。
ノート:
プロセスの最初のシミュレーション・モデルを直接作成することはできません。プロセスの最初のシミュレーション・モデルは、シミュレーション定義エディタで作成する必要があります。初期シミュレーション・モデルを作成した後、次の手順で追加のモデルを作成できます。
シミュレーション定義作成時のシミュレーション・モデルの作成については、「シミュレーション定義を作成する方法」を参照してください。
プロセスに対して新しいシミュレーション・モデルを作成するには:
新規シミュレーション・モデルが作成されます。新規シミュレーション定義の作成時または既存シミュレーション定義の編集時にこのモデルを使用できます。詳細は、「シミュレーション・モデルをシミュレーション定義に関連付ける方法」を参照してください。
8.5 シミュレーションの実行
シミュレーション・モデルとシミュレーション定義を定義したら、シミュレーションを実行して、BPMプロジェクトのパフォーマンスを表示できます。
シミュレーションを実行するには、テストする各プロセスについてシミュレーション定義とシミュレーション・モデルを少なくとも1つ作成しておく必要があります。