(58)【調査した分野】(Int.Cl.,DB名)
複数のワークフロー実行情報から、重要業績評価指標(以下、KPIという)のカテゴリ分割の条件を求める方法であって、前記複数のワークフロー実行情報はそれぞれ、KPIの種類及び当該種類に関連付けられた値のセットを少なくとも1つ有し、コンピュータが、
(a)前記複数のワークフロー実行情報を前記KPIの種類についての分割数で分割するステップと、
(b)前記分割数で分割した後の複数のグループそれぞれについて、当該グループ中に属するワークフロー実行情報からグラフを生成するステップと、
(c)任意の2つのグラフそれぞれのグラフ編集距離を算出するステップと、
(d)前記グラフ編集距離が最短である2つのグラフをマージして新たなグループを生成するステップであって、前記生成された新たなグループの領域の条件を前記カテゴリ分割の条件として保存するステップを含む、前記生成するステップと、
(e)前記新たなグループに対するグラフ編集距離を算出するステップと
(f)前記グラフ編集距離が或る一定の編集距離以上になるまで、前記ステップ(d)〜(e)を繰り返すステップと、
を実行することを含む、前記方法。
複数のワークフロー実行情報から、重要業績評価指標(以下、KPIという)のカテゴリ分割の条件を求める為のコンピュータであって、前記複数のワークフロー実行情報はそれぞれ、KPIの種類及び当該種類に関連付けられた値のセットを少なくとも1つ有し、前記コンピュータが、
前記複数のワークフロー実行情報を前記KPIの種類についての分割数で分割する分割手段と、
前記分割数で分割した後の複数のグループそれぞれについて、当該グループ中に属するワークフロー実行情報からグラフを生成するグラフ生成手段と、
任意の2つのグラフそれぞれのグラフ編集距離を算出するグラフ編集距離算出手段と、
前記グラフ編集距離が最短である2つのグラフをマージして新たなグループを生成するグラフ・マージ手段であって、前記生成された新たなグループの領域の条件を前記カテゴリ分割の条件として保存する前記グラフ・マージ手段と
を備えており、
前記グラフ編集距離算出手段がさらに、前記新たなグループと他のグラフとのグラフ編集距離を算出し、
前記グラフ編集距離が或る一定の編集距離以上になるまで、前記新たなグループを生成すること及び前記新たなグループに対するグラフ編集距離を算出することが繰り返し行われる、
前記コンピュータ。
複数のワークフロー実行情報から、重要業績評価指標(以下、KPIという)のカテゴリ分割の条件を求める為のコンピュータ・プログラムであって、前記複数のワークフロー実行情報はそれぞれ、KPIの種類及び当該種類に関連付けられた値のセットを少なくとも1つ有し、請求項1〜17のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
させる、前記コンピュータ・プログラム。
【背景技術】
【0002】
プロセス・ディスカバリーとは、業務システムのログ(例えば、プロセスの実行情報)から業務のワークフロー(例えば、ビジネス・プロセス・モデリング表記法:BPMN)を自動的に作成し、様々な観点でプロセスの特性を抽出することによって、業務プロセスの実態を把握する為の技術である。
【0003】
プロセス・ディスカバリーにおいて、ログの量が増えるに従って抽出されるワークフローは複雑なもの(いわゆる、スパゲッティ・プロセス)になる為に、ワークフローの分析が困難である。そこで、スパゲッティ・プロセスを人が理解できる情報量にいかに絞るかが重要である。
【0004】
下記特許文献1は、保健医療ワークフローについての状況対応業績評価指標を生成するためのコンピュータ具現化方法であって、保健医療ワークフローについての現在及び過去の保健医療データに基づいたパターンを識別するためにデータ・セットをマイニングする段階と、識別されたパターン及びデータ・マイニングされた情報から状況情報を抽出する段階と、状況情報及びパターン情報に基づいて状況対応業績評価指標を動的に作成する段階と、所与のモデルに基づいて状況対応業績評価指標を評定する段階と、状況対応業績評価指標に関連した測定を監視する段階と、状況対応業績評価指標を更新するためにフィードバックを処理する段階と、を有する方法を記載する(請求項1)。
【0005】
下記特許文献2は、ワークフロー合成処理部は、合成対象のワークフローを取得すると、そのワークフローに類似したワークフローをワークフローデータベースから読み出すこと、そして、各ワークフローに含まれる各ステップの記述内容を比較することによって、記述内容が一致するステップの並びが一致する部分を共通化すると共に、一致しない部分の直前の位置に分岐ステップを挿入し、その直後で合流させるようにしてワークフローを合成することを記載する(要約)。
【0006】
下記特許文献3は、データベースの更新情報を分析し、典型的な業務フローと例外的な業務フローとを区別して表現する業務モデルを自動的に生成することを記載する(要約)。
【0007】
下記特許文献4は、ワークフロー解析部がワークフロー指示データを受信し、変換テーブルを適用してワークフローの生成処理を行う際、変換テーブルに記録されたパラメータ設定情報を適用してパラメータ設定を行うことを記載する(要約)。
【0008】
下記特許文献5は、ワークフロー制御サーバと、アプリケーション・サーバ及びクライアントを含むワークフロー制御システムに於いて、前記ワークフロー制御サーバは、ワークフローを論理的な業務単位を形成するタスクと入出力データと処理条件とを含み、階層構造とした業務オブジェクトで表現し、該階層構造の各層の業務オブジェクト単位にワークフローの制御及び管理を行う構成を備えたことを特徴とするワークフロー制御システムを記載する(請求項1)。
【0009】
下記特許文献6は、システムレベル・ワークフロー戦略を管理し、個々のワークフロー活動を管理し、個々のワークフロー活動を最適化するワークフローシステムおよび方法を記載する(要約)。
【0010】
下記特許文献7は、作業の流れに関する情報セキュリティおよびリソースの最適化を記載する(段落0001)。
【0011】
下記特許文献8は、業務フローチャートを作成するにあたって、リスクと統制とを適切に記述することを支援し、編集作業を効率化させることができる業務フローチャート編集プログラムおよび業務フローチャート編集方法を記載する(段落0001)。
【0012】
下記非特許文献1は、Heuristic Miningを記載する。
【0013】
下記非特許文献2は、データ・マイニングを記載する。
【0014】
下記非特許文献3は、マルコフ・クラスタ・アルゴリズムを記載する。
【0015】
下記非特許文献4は、KPIが付与されているワークフロー情報をXMLベースでどのように出力するかを記載する。
【発明の概要】
【発明が解決しようとする課題】
【0018】
ワークフローを人が見て理解しやすいものにする為には、ログのフィルタが必要である。フィルタとして例えばワークフローの処理時間などのあるKPIの種類に着目してフィルタする場合に、どのKPI閾値を選ぶべきかにおいて試行錯誤を必要とする。KPIの種類数が少ないKPI以外では、閾値を選ぶ試行錯誤の手間が深刻であり、例えば下記例1〜例3に示すように、閾値をどこにおけばワークフローが変化するのか分からない故に業務プロセスの実態の分析の障害となっていた。
【0019】
例1:ワークフローの処理時間を減らし業務改善を図る為に、処理時間によってワークフローのパターンに差が出るのかを調べたいとする。10分以上と10分以下の2つのワークフローを比べても差が分からず、試行錯誤により閾値を変更した結果、実際にワークフローに顕著な変化がみられる閾値は20分以上/以下であった。
【0020】
例2:ある業務を行う際に、関係する商品によってプロセスに顕著な差が現れるかを知りたいとする。商品の種類が少ない場合には目視にてプロセスを比較し、カテゴリ分けすることが可能である。しかしながら、商品の種類が増えるに従いカテゴリ分けは困難になる。
【0021】
例3:社内教育の適用範囲を決める為に、例えば入社年度の早い人と遅い人別など入社年度別にワークフローを比べたいとする。しかしながら、どの年度でワークフローが変化するのかを求めるのは困難である。
【0022】
また、特定のタスクから始まるログに限定するなど、ワークロー実行情報に対して条件を設定することで、その後ワークフロー実行情報から合成して得られるワークフローをシンプルにすることが可能である(非特許文献1を参照)。しかしながら、KPIに基づいて、ログをフィルタする際の閾値に関しては、試行錯誤して探さなければならないという問題がある。
【0023】
また、一般的なクラスタリング手法(k-means法など)の入力は属性ベクトルで表現される要素である(非特許文献2を参照)。しかしながら、ワークフロー実行情報(順序付きタスクリストでもある)は、属性ベクトルで表現出来ない。従って、一般的なクラスタリング手法をワークフロー実行情報に適用することが出来ないという問題がある。
【0024】
また、グラフ・クラスタリング手法(例えば、Markov Cluster Algorithm)の入力はグラフであり、出力はクラスタ化されたグラフ又はサブグラフである(非特許文献3を参照)。しかしながら、全てのワークフロー(例えば、スパゲッティ・プロセス)に対して、グラフ・クラスタリング手法を適用すると、ワークフロー実行情報(順序付きタスクリストでもある)が保持されない。従って、グラフ・クラスタリング手法をワークフロー実行情報に適用することが出来ないという問題がある。
【0025】
従って、本発明は、ログから抽出されるワークフローの情報を絞る際に必要となるKPIのカテゴリ分割の条件(KPIの閾値を含む)を自動的に求める技法を提供することを目的とする。
【課題を解決するための手段】
【0026】
本発明は、複数のワークフロー実行情報から、重要業績評価指標(KPI)のカテゴリ分割の条件を求める技法を提供する。当該技法は、複数のワークフロー実行情報から、KPIのカテゴリ分割の条件を求める方法、並びに、その為のコンピュータ、コンピュータ・プログラム及びコンピュータ・プログラム製品を包含しうる。
【0027】
(本発明に従う第1の態様)
【0028】
本発明に従う第1の態様において、複数のワークフロー実行情報から、重要業績評価指標(KPI)のカテゴリ分割の条件を求める方法であって、上記複数のワークフロー実行情報はそれぞれ、KPIの種類及び当該種類に関連付けられた値のセットを少なくとも1つ有し、コンピュータが、
(a)上記複数のワークフロー実行情報を上記KPIの種類についての分割数で分割するステップと、
(b)上記分割数で分割した後の複数のグループそれぞれについて、当該グループ中に属するワークフロー実行情報からグラフを生成するステップと、
(c)任意の2つのグラフそれぞれのグラフ編集距離を算出するステップと、
(d)上記グラフ編集距離が最短である2つのグラフをマージして新たなグループを生成するステップと、
(e)上記新たなグループに対するグラフ編集距離を算出するステップと
(f)上記グラフ編集距離が或る一定の編集距離以上になるまで、上記ステップ(d)〜(e)を繰り返すステップであって、上記新たなグループを定義する値が上記カテゴリ分割の条件として求められる、上記繰り返すステップと
を実行することを含む。
【0029】
本発明の一つの実施態様において、上記カテゴリ分割の条件が、上記KPIの種類ごとに求められうる。
【0030】
本発明の一つの実施態様において、上記KPIの種類が数値データである場合に、上記新たなグループを定義する値が当該数値データにおける最小値から最大値までの範囲の値であり、上記数値データ中の値が上記カテゴリ分割の条件として求められうる。
【0031】
本発明の一つの実施態様において、上記KPIの種類がカテゴリ・データである場合に、上記新たなグループを定義する値が当該新たなグループを定義するカテゴリの名前であり、上記カテゴリの名前が上記カテゴリ分割の条件として求められうる。
【0032】
本発明の一つの実施態様において、上記コンピュータが、上記KPIの種類に対して分割数を決めるステップをさらに実行することを含みうる。
【0033】
本発明の一つの実施態様において、上記分割数を求めるステップが、上記KPIの種類が数値データであることに応じて、統計手法を用いて、上記分割数を求めるステップを含みうる。
【0034】
本発明の一つの実施態様において、上記分割数を求めるステップが、上記KPIの種類がカテゴリ・データであることに応じて、上記種類に関するカテゴリ数、又は上記種類に関連付けられた値から上記分割数を求めるステップを含みうる。
【0035】
本発明の一つの実施態様において、上記分割数で分割するステップ(a)が、上記KPIの種類が数値データであることに応じて、上記種類に関連付けられた上記値に基づいて、上記複数のワークフロー実行情報をソートするステップをさらに実行することを含みうる。また、上記分割数で分割するステップ(a)が、上記ソート後の上記複数のワークフロー実行情報を上記分割数で分割するステップを含みうる。
【0036】
本発明の一つの実施態様において、上記グラフを生成するステップ(b)が、上記生成したグラフの領域の条件を保存するステップをさらに含みうる。
【0037】
本発明の一つの実施態様において、上記任意の2つのグラフそれぞれのグラフ編集距離を算出するステップ(c)が、
(c−1)任意の2つのグラフの組み合わせを取得するステップと、
(c−2)上記任意の2つのグラフの組み合わせに対してグラフ編集距離を算出するステップと、
(c−3)上記任意の2つのグラフの残りの組み合わせについて、ステップ(c−1)及び(c−2)を繰り返すステップと
を含みうる。
【0038】
本発明の一つの実施態様において、上記新たなグループを生成するステップ(d)が、上記グラフ編集距離が最短である上記2つのグラフそれぞれに属するワークフロー実行情報から上記新たなグループを生成するステップを含みうる。
【0039】
本発明の一つの実施態様において、上記新たなグループを生成するステップ(d)が、上記グラフ編集距離が最短である2つのグループそれぞれの領域をマージして、上記新たなグループの領域の条件を保存するステップをさらに含みうる。
【0040】
本発明の一つの実施態様において、記任意の2つのグラフそれぞれのグラフ編集距離を算出するステップ(c)が、上記算出したグラフ編集距離をテーブルに記録するステップをさらに含みうる。
【0041】
本発明の一つの実施態様において、上記新たなグループを生成するステップ(d)が、上記生成した新たなグループを上記テーブルに追加するステップをさらに含みうる。
【0042】
本発明の一つの実施態様において、上記新たなグループを生成するステップ(d)が、上記グラフ編集距離が最短である2つのグループに属する2つのグラフを上記テーブルから削除するステップをさらに含みうる。
【0043】
本発明の一つの実施態様において、上記新たなグループに対するグラフ編集距離を算出するステップ(e)が、上記新たなグループが追加されたテーブルに対して、上記新たなグループに対して算出したグラフ編集距離を上記テーブルに記録するステップをさらに含みうる。
【0044】
本発明の一つの実施態様において、上記グラフ編集距離が或る一定の編集距離以上になるまで、上記ステップ(d)〜(e)を繰り返すステップが、上記テーブル中のテーブル・エントリが上記或る一定以上の編集距離になるまで、上記ステップ(d)〜(e)を繰り返すステップを含みうる。
【0045】
本発明の一つの実施態様において、上記テーブルが、K×Kからなるテーブルでありうる。
【0046】
(本発明に従う第2の態様)
【0047】
本発明に従う第2の態様において、複数のワークフロー実行情報から、重要業績評価指標(KPI)のカテゴリ分割の条件を求める為のコンピュータであって、上記複数のワークフロー実行情報はそれぞれ、KPIの種類及び当該種類に関連付けられた値のセットを少なくとも1つ有し、上記コンピュータが、
上記複数のワークフロー実行情報を上記KPIの種類についての分割数で分割する分割手段と、
上記分割数で分割した後の複数のグループそれぞれについて、当該グループ中に属するワークフロー実行情報からグラフを生成するグラフ生成手段と、
任意の2つのグラフそれぞれのグラフ編集距離を算出するグラフ編集距離算出手段と、
上記グラフ編集距離が最短である2つのグラフをマージして新たなグループを生成するグラフ・マージ手段と
を備えており、
上記グラフ編集距離算出手段がさらに、上記新たなグループと他のグラフとのグラフ編集距離を算出し、
上記グラフ編集距離が或る一定の編集距離以上になるまで、上記新たなグループを生成すること及び上記新たなグループに対するグラフ編集距離を算出することが繰り返し行われ、
上記新たなグループを定義する値が上記カテゴリ分割の条件として求められる。
【0048】
本発明の一つの実施態様において、上記カテゴリ分割の条件が、上記KPIの種類ごとに求められうる。
【0049】
本発明の一つの実施態様において、上記KPIの種類が数値データである場合に、上記新たなグループを定義する値が当該数値データにおける最小値から最大値までの範囲の値であり、上記数値データ中の値が上記カテゴリ分割の条件として求められうる。
【0050】
本発明の一つの実施態様において、上記KPIの種類がカテゴリ・データである場合に、上記新たなグループを定義する値が当該新たなグループを定義するカテゴリの名前であり、上記カテゴリの名前を上記カテゴリ分割の条件として求められうる。
【0051】
本発明の一つの実施態様において、上記コンピュータがさらに、上記KPIの種類に対して分割数を決める分割数決定手段を備えうる。
【0052】
本発明の一つの実施態様において、上記分割数決定手段が、上記KPIの種類が数値データであることに応じて、統計手法を用いて、上記分割数を求めうる。
【0053】
本発明の一つの実施態様において、上記分割数決定手段が、上記KPIの種類がカテゴリ・データであることに応じて、上記種類に関するカテゴリ数、又は上記種類に関連付けられた値から上記分割数を求めうる。
【0054】
本発明の一つの実施態様において、上記分割手段が、上記KPIの種類が数値データであることに応じて、上記種類に関連付けられた上記値に基づいて、上記複数のワークフロー実行情報をソートし、及び、上記ソート後の上記複数のワークフロー実行情報を上記分割数で分割しうる。
【0055】
本発明の一つの実施態様において、上記グラフ生成手段がさらに、上記生成したグラフの領域の条件を保存しうる。
【0056】
本発明の一つの実施態様において、上記グラフ編集距離算出手段が、
(c−1)任意の2つのグラフの組み合わせを取得する処理、
(c−2)上記任意の2つのグラフの組み合わせに対してグラフ編集距離を算出する処理、
(c−3)上記任意の2つのグラフの残りの組み合わせについて、処理(c−1)及び処理(c−2)を繰り返す処理
を実行しうる。
【0057】
本発明の一つの実施態様において、上記グラフ・マージ手段が、上記グラフ編集距離が最短である上記2つのグラフそれぞれに属するワークフロー実行情報から上記新たなグループを生成しうる。
【0058】
本発明の一つの実施態様において、上記グラフ・マージ手段が、上記グラフ編集距離が最短である2つのグループそれぞれの領域をマージして、上記新たなグループの領域の条件を保存しうる。
【0059】
本発明の一つの実施態様において、上記グラフ編集距離算出手段がさらに、上記算出したグラフ編集距離をテーブルに記録しうる。
【0060】
本発明の一つの実施態様において、上記グラフ・マージ手段がさらに、上記生成した新たなグループを上記テーブルに追加しうる。
【0061】
本発明の一つの実施態様において、上記グラフ・マージ手段がさらに、上記グラフ編集距離が最短である2つのグループに属する2つのグラフを上記テーブルから削除しうる。
【0062】
本発明の一つの実施態様において、上記グラフ編集距離算出手段がさらに、上記新たなグループが追加されたテーブルに対して、上記新たなグループに対して算出したグラフ編集距離を上記テーブルに記録しうる。
【0063】
本発明の一つの実施態様において、上記コンピュータは、グラフ編集距離が或る一定の編集距離以上になるまで、上記グラフ生成手段が上記新たなグループを生成すること、上記グラフ編集距離算出手段が上記新たなグループに対するグラフ編集距離を算出することを繰り返しうる。
【0064】
本発明の一つの実施態様において、上記テーブルが、K×Kからなるテーブルでありうる。
【0065】
(本発明に従う第3の態様)
【0066】
本発明に従う第3の態様において、コンピュータ・プログラム及びコンピュータ・プログラム製品は、上記コンピュータに、本発明に従う第1の態様の重要業績評価指標(KPI)のカテゴリ分割の条件を求める方法の各ステップを実行させる。
【0067】
本発明の実施態様に従うコンピュータ・プログラムはそれぞれ、一つ又は複数のフレキシブル・ディスク、MO、CD−ROM、DVD、BD、ハードディスク装置、USBに接続可能なメモリ媒体、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。当該コンピュータ・プログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システム、例えばコンピュータからダウンロードしたり、又は他の記録媒体から複製したりすることができる。また、本発明の実施態様に従うコンピュータ・プログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。また、様々な形態で、本発明の実施態様に従うコンピュータ・プログラム製品を提供することも勿論可能であることにも留意されたい。本発明の実施態様に従うコンピュータ・プログラム製品は、例えば、上記コンピュータ・プログラムを記録した記憶媒体、又は、上記コンピュータ・プログラムを伝送する伝送媒体を包含しうる。
【0068】
本発明の上記概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーション又はサブコンビネーションもまた、本発明となりうることに留意すべきである。
【0069】
本発明の実施態様において使用されるコンピュータの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【0070】
また、本発明は、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアとの組み合わせによる実行として、上記コンピュータ・プログラムをインストールされたコンピュータにおける当該プログラムの実行が典型的な例として挙げられる。かかる場合、当該コンピュータ・プログラムが当該コンピュータのメモリにロードされて実行されることにより、当該コンピュータ・プログラムは、当該コンピュータを制御し、本発明にかかる処理を実行させる。当該コンピュータ・プログラムは、任意の言語、コード、又は、表記によって表現可能な命令群から構成されうる。そのような命令群は、当該コンピュータが特定の機能を直接的に、又は、1.他の言語、コード若しくは表記への変換及び、2.他の媒体への複製、のいずれか一方若しくは双方が行われた後に、実行することを可能にするものである。
【発明の効果】
【0071】
本発明の実施態様に従うと、ログから抽出されるワークフローの情報を絞る際に必要となるKPIのカテゴリ分割の条件(KPIの閾値を含む)を、ワークフロー実行情報から生成されたるワークフロー・グラフ間のグラフ編集距離に基づいて自動的に求めることが可能になる。従って、本発明の実施態様に従うと、ログをフィルタする際のカテゴリ分割の条件(KPIの閾値を含む)を探す際に試行錯誤する必要がなくなる。
【0072】
また、本発明の実施態様に従うと、入力は、KPIが関連付けられているワークフロー実行情報(順序付きタスクリストである)であり、出力は、KPIに基づいて分類されたワークフロー実行情報からワークフロー・グラフ(構造化されたグラフである)を生成し、当該生成したワークフロー・グラフ間の差分に基づいて定められるKPIのカテゴリ分割の条件(KPIの閾値を含む)である。従って、本発明の実施態様に従うと、一般的なクラスタリング手法を用いること無しに、KPIのカテゴリ分割の条件(KPIの閾値を含む)を求めることが可能になる。
【0073】
また、本発明の実施態様に従うと、入力は、KPIが関連付けられているワークフロー実行情報(順序付きタスクリストである)である。従って、本発明の実施態様に従うと、グラフ・クラスタリング手法(例えば、Markov Cluster Algorithm)を用いること無しに、KPIのカテゴリ分割の条件(KPIの閾値を含む)を求めることが可能になる。
【発明を実施するための形態】
【0075】
本発明の実施形態を、以下に図面に従って説明する。以下の図面を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
【0076】
図1Aは、本発明の実施態様において使用されうるコンピュータ又は本発明の実施態様に従うコンピュータの一例を示した図である。当該コンピュータ(101)は例えば、1又は複数のコンピュータ、例えば1又は複数のサーバ・コンピュータ(例えば、サーバ機能を備えているコンピュータであればよい)でありうるが、これらに制限されるものではない。
【0077】
コンピュータ(101)は、1又は複数のCPU(102)とメイン・メモリ(103)とを備えており、これらはバス(104)に接続されている。CPU(102)は例えば、32ビット又は64ビットのアーキテクチャに基づくものである。当該CPU(102)は例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションのPower(商標)シリーズ、インテル社のXeon(登録商標)シリーズ、Core(商標) iシリーズ、Core(商標) 2シリーズ、Pentium(登録商標)シリーズ、Celeron(登録商標)シリーズ若しくはAtom(商標)シリーズ、又は、AMD(Advanced Micro Devices)社のOpteron(商標)シリーズ、Aシリーズ、Phenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(登録商標)シリーズ若しくはSempron(商標)でありうる。
【0078】
バス(104)には、ディスプレイ・コントローラ(105)を介して、ディスプレイ(106)、例えば液晶ディスプレイ(LCD)が接続されうる。また、液晶ディスプレイ(LCD)は例えば、タッチパネル・ディスプレイ又はフローティング・タッチ・ディスプレイであてもよい。ディスプレイ(106)は、コンピュータ(101)上で動作中のソフトウェア(例えば、本発明の実施態様に従うコンピュータ・プログラム又は当該コンピュータ(101)上で動作中の任意の各種コンピュータ・プログラム(例えば、仮想環境を実現するためのプログラム)が稼働することによって表示されるオブジェクトを、適当なグラフィック・インタフェースで表示するために使用されうる。また、ディスプレイ(106)は例えば、本発明の実施態様において使用されうるKPIリスト、ワークフロー実行情報、ワークフロー・グラフ、グラフ編集距離テーブル、又はカテゴリ分割の条件を出力しうる。
【0079】
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ディスク(108)、例えばハードディスク又はソリッド・ステート・ドライブ(SSD)が接続されうる。
【0080】
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ドライブ(109)、例えばCD、DVD又はBDドライブが接続されうる。
【0081】
バス(104)には、周辺装置コントローラ(110)を介して、例えばキーボード・マウス・コントローラ又はUSBバスを介して、任意的に、キーボード(111)及びマウス(112)が接続されうる。
【0082】
ディスク(108)には、オペレーティング・システム、例えばメインフレーム用に開発されたオペレーティング・システム(例えば、z/OS、z/VM、若しくはz/VSE)、Windows(登録商標)、UNIX(登録商標)、Linux(登録商標)MacOS(登録商標)、及びAndroid(登録商標)、並びにJ2EEなどのJava(登録商標)処理環境、Java(登録商標)アプリケーション、Java(登録商標)仮想マシン(VM)、Java(登録商標)実行時(JIT)コンパイラを提供するプログラム、本発明の実施態様に従うコンピュータ・プログラム、及びその他の任意の各種コンピュータ・プログラム、並びにデータが、メイン・メモリ(103)にロード可能なように記憶されうる。
【0083】
また、ディスク(108)には例えば、本発明の第3の実施態様に従うコンピュータ・プログラムが、メイン・メモリ(103)にロード可能なように記憶されうる。
【0084】
ディスク(108)は、コンピュータ(101)内に内蔵されていてもよく、当該コンピュータ(101)がアクセス可能なようにケーブルを介して接続されていてもよく、又は、当該コンピュータ(101)がアクセス可能なように有線又は無線ネットワークを介して接続されていてもよい。
【0085】
ドライブ(109)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラム、例えばオペレーティング・システム、アプリケーション・プログラム又は本発明の実施態様に従うコンピュータ・プログラムをディスク(108)にインストールするために使用されうる。
【0086】
通信インタフェース(114)は、例えばイーサネット(登録商標)・プロトコルに従う。通信インタフェース(114)は、通信コントローラ(113)を介してバス(104)に接続され、コンピュータ(101)を通信回線(115)に有線又は無線接続する役割を担い、コンピュータ(101)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は例えば、無線LAN接続規格に基づく無線LAN環境、IEEE802.11a/b/g/nなどのWi-Fi無線LAN環境、又は携帯電話網環境(例えば、3G、LTE又は4G環境)でありうる。
【0087】
図1Bは、本発明の実施態様において使用されうるコンピュータ又は本発明の実施態様に従うコンピュータの一例であって、当該コンピュータ上で1又は複数の仮想マシンを稼働させる場合を示した図である。当該コンピュータ(121)は例えば、ワークステーション、ラックマウント型サーバ、ブレード型サーバ、ミッドレンジ、メインフレームなどのコンピュータ装置として構成されうる。
【0088】
図1Bに示すコンピュータ(121)は、ハードウェア・リソース(122)として、1又は複数のCPU(131)、メイン・メモリ(132)、ストレージ(133)、通信コントローラ(134)、及び通信インタフェース(135)を備えうる。上記1又は複数のCPU(131)、メイン・メモリ(132)、ストレージ(133)、通信コントローラ(134)、及び通信インタフェース(135)並びに通信回線(136)はそれぞれ、
図1Aに示すコンピュータ(101)の1又は複数のCPU(102)、メイン・メモリ(103)、ディスク(108)、通信コントローラ(113)、及び通信インタフェース(114)、並びに通信回線(115)それぞれに対応しうる。
【0089】
また、コンピュータ(121)は、物理ホストマシンとして稼働し、また、仮想化ソフトウェア(例えば、VMWare(登録商標)、Hyper−V(登録商標)、Xen(登録商標))のハイパーバイザ(仮想化モニター又は仮想化OSとも呼ばれる)(123)上で、同一の又は異なるOS(例えば、Windows(登録商標)、UNIX(登録商標)、Linux(登録商標))をゲストOS(156)とした1又は複数の仮想マシン1〜n(125−1〜125−2)(ドメインU又はチャイルド・パーティションとも呼ばれる)を稼働させることが可能である。
【0090】
また、コンピュータ(121)は、上記ハイパーバイザ(123)上で、管理用仮想マシン(124)(ドメイン0又はペアレント・パーティションとも呼ばれる)を稼働させることが可能である。管理用仮想マシン(124)は、管理用OS(141)、当該管理用OS(141)上で動作する制御モジュール(142)、及び仮想リソース(143)を含む。制御モジュール(142)は、ハイパーバイザ(123)に対しコマンドを発行するモジュールである。また、制御モジュール(142)は、ハイパーバイザ(123)に対して、ユーザドメインの仮想マシン1〜n(125−1〜125−2)の作成、及びゲストOS(156)の起動の命令を発行し、仮想マシン1〜n(125−1〜125−2)の動作を制御する。仮想リソース(143)は、管理用仮想マシン(124)の為に割り当てられたハードウェア・リソース(122)である。
【0091】
仮想マシン1〜n(125−1〜125−2)は、仮想リソース、ゲストOS(156)、及び、ゲストOS(156)上で動作する種々のアプリケーション1〜n(157−1〜157−3)を含む。仮想リソースは例えば、仮想CPU(151)、仮想メモリ(152)、仮想ディスク(153)、仮想通信コントローラ(154)及び仮想通信インタフェース(155)を含む。
【0092】
以下において、コンピュータ(101)と記載する場合には、
図1Aに示すコンピュータ(101)の代わりに、
図1Bに示すコンピュータ(121)であってもよいことを理解されたい。
【0093】
図2A〜
図2Dに示すフローチャートは、本発明の実施態様に従い、複数のワークフロー実行情報から、重要業績評価指標(KPI)のカテゴリ分割の条件を求める処理の為のフローチャートを示す。
【0094】
以下において、
図2A〜
図2Dそれぞれに示すフローチャートを、
図3A〜
図3D、
図4及び
図5を参照しながら説明する。
図3Aは、本発明の実施態様において使用されうるKPIリストの例を示す。
図3Bは、本発明の実施態様において使用されうるプロセス実行情報の例を示す。
図3Cは、本発明の実施態様において生成されうるワークフロー・グラフを示す。
図3Dは、本発明の実施態様において保存されうるワークフロー・グラフの領域の条件の例を示す。
図4は、本発明の実施態様において作成されうるグラフ編集距離テーブルの例を示す。
図5は、本発明の実施態様において、グラフ編集距離テーブルが更新される例を示す。
【0095】
図2Aは、本発明の実施態様に従い、複数のワークフロー実行情報から、重要業績評価指標(KPI)のカテゴリ分割の条件を求める処理全体のフローチャートを示す。
【0096】
ステップ201において、コンピュータ(101)は、KPIのカテゴリ分割の条件を求める処理を開始する。
【0097】
ステップ202において、コンピュータ(101)は、KPIリストを、例えば当該KPIリストを格納した記憶媒体から取得する。KPIリストは、或るKPIの種類mと、当該種類mに関連付けられた分割数Kとを含むセットを少なくとも1つ有する。分割数Kは、或るKPIの種類mに対するワークフロー実行情報p(総数n)の分割数である。
【0098】
KPIリストの例を
図3Aに示す。KPIリスト(301)は、ワークフローに関する種類mと当該種類mに関連付けられた分割数Kとを含むセットを複数有する。
【0099】
KPIの種類mは、KPIの対象となる業務に関連する事項であれば特に限定されるものでない。例えば、金融分野(例えば、保険商品名、金融商品名)、工業分野(例えば、自動車部品名)、ソフトウェア分野(例えば、プログラム・ファイル名又はドキュメントなどの開発成果物名)などのワークフロー実行情報が生じるソフトウェアを所有する全ての業務に関連する種類が含まれる。
【0100】
KPIの種類mは、統計的手法の尺度水準に従い、例えば数値データ(量的データとも言われる)又はカテゴリ・データ(質的データとも言われる)に分類されうる。但し、数値データかカテゴリ・データかが不明である場合には、本発明の実施態様において、数値データは、ソート可能であるかどうかによって判断されうる。ソート可能なデータである場合には数値データであり、ソートが不可能なデータはカテゴリ・データでありうる。
【0101】
KPIの種類mが数値データであることは例えば、ワークフローの処理時間、ワークフロー実行中に特定のページを見た回数、ワークフロー実行中で特定のタスクから特定のタスクまでにかかった時間、ワークフロー実行時間に対する特定にタスク処理にかかった時間の割合、又は年代、でありうる(
図3AのKPIリスト(301)を参照)が、これらに限定されるものでない。
【0102】
KPIの種類mがカテゴリ・データであることは例えば、ワークフロー開始条件、ワークフロー実行に関わる属性(商品名)、ワークフロー実行者に関わる属性(例えば、役職など)でありうる(
図3AのKPIリスト(301)を参照)が、これらに限定されるものでない。
【0103】
分割数Kは、KPIリストに予め与えられていてもよく、又は、下記に示す手法により算出されてもよい。
【0104】
分割数Kは、KPIの種類mが数値データである場合には、統計手法、例えばスタージェスの公式(Sturges' formula)、スコットの選択(Scott's choice)、平方根選択(Square-root choice)、フリードマン−ダイアコニスの選択(Freedman-Diaconis' choice)、又はL
2危険関数推定の最小化に基づく選択を用いて自動的に算出されうる。
【0105】
分割数Kは、KPIの種類mが数値データ(例えば、ワークフロー実行時間)である場合には、当該種類mに関連付けられた分割数Kは実行時間に対して例えば10分割というように定められうる。
【0106】
分割数Kは、KPIの種類mがカテゴリ・データである場合には、当該種類mに関するカテゴリ数、又は、当該種類mに関連付けられた値でありうる。当該種類mに関するカテゴリ数は例えば、カテゴリの数から求められうる。例えば、ワークフロー開始条件がYes又はNoで示される場合には、当該カテゴリ数は2である。従って、分割数は、2と求められうる。また、当該種類mに関連付けられた値は例えば、ワークフロー実行者に関わる属性であり、例えば役職でありうる。
【0107】
また、ステップ202において、コンピュータ(101)は、ワークフロー実行情報p(総数n)を、例えば当該ワークフロー実行情報pを格納した記憶媒体から取得する。ワークフロー実行情報pの例を
図3Bに示す。なお、
図3Bに示すコードにおいて、当該コードの左横に示す数字(01〜33)は説明を容易にする為に付した行番号であり、コードを記載する上では必要のないものであることに留意されたい。なお、KPIリストの取得とワークフロー実行情報pの取得は、どちらを先に取得してもよく、又は同時に取得してもよい。
【0108】
図3Bに示すワークフロー実行情報(311)は、XMLベースで記載されており、2つのプロセス・インスタンス(ProcessInstance id="0")(行04〜行17,321)及び(ProcessInstance id="4")(行18〜行31,322)を有している。プロセス・インスタンス(ProcessInstance id="0")(321)は、KPIの種類m(DURATION)及びKPIの値(314001)のセット(行05)、KPIの種類m(START_TYPE)及びKPIの値(new)のセット(行06)、並びに、KPIの種類m(HELP_PAGE_ACCESS)及びKPIの値(0)のセット(行07)の3つを有している。プロセス・インスタンス(ProcessInstance id="4")(322)は、KPIの種類m(DURATION)及びKPIの値(363491)のセット(行19)、KPIの種類m(START_TYPE)及びKPIの値(update)のセット(行20)、並びに、KPIの種類m(HELP_PAGE_ACCESS)及びKPIの値(1)のセット(行21)の3つを有している。
【0109】
このように、ワークフロー実行情報pは、1又は複数のプロセス・インスタンスを有し、且つ、各プロセス・インスタンスは、KPIの種類m及び、当該種類mに関連付けられた値のセットを1つ又は複数有しうる。
【0110】
KPIが付与されているワークフロー情報をXMLベースで出力する技法については例えば、非特許文献4を参照されたい。
【0111】
ステップ203において、コンピュータ(101)は、KPIリスト中のKPIの全ての種類mそれぞれについて、以下に示すステップ204〜208を実行する処理を開始する。
【0112】
ステップ204において、コンピュータ(101)は、KPIリストからKPIの1つの種類mを取得する。これは、KPIの種類mごとに、カテゴリ分割の条件を定める為である。
【0113】
ステップ205において、コンピュータ(101)は、ワークフロー実行情報pをK個に分割し、K個に分割されたワークフロー実行情報pから、ワークフロー・グラフG_kを生成し、各ワークフロー・グラフG_kの領域の条件を保存する。ステップ205の処理の詳細については、
図2Bに示すフローチャートに従って以下において詳しく説明する。
【0114】
ステップ206において、コンピュータ(101)は、ステップ205で生成したワークフロー・グラフG_kそれぞれに対するグラフ編集距離(Graph Edit Distance)dを算出する。ステップ206の処理の詳細については、
図2Cに示すフローチャートに従って以下において詳しく説明する。
【0115】
ステップ207において、コンピュータ(101)は、ステップ206で算出したグラフ編集距離dのうち、当該グラフ編集距離dが最短である2つのワークフロー・グラフをマージして、新たなワークフロー・グラフのグループを生成する。ステップ207の処理の詳細については、
図2Dに示すフローチャートに従って以下において詳しく説明する。
【0116】
ステップ208において、コンピュータ(101)は、新たなグループを定義する値を、カテゴリ分割の条件として求める。
【0117】
上記新たなグループを定義する値は、KPIの種類mが数値データである場合には、当該数値データにおける最小値から最大値までの範囲の値(閾値でもある)である。コンピュータ(101)は、上記数値データ中の値を、上記カテゴリ分割の条件として求める。
【0118】
上記新たなグループを定義する値は、KPIの種類mがカテゴリ・データである場合には、上記新たなグループを定義するカテゴリの名前(任意に付与される、マージ後のカテゴリの名前でありうる)である。コンピュータ(101)は、当該カテゴリの名前を、上記カテゴリ分割の条件として求める。
【0119】
上記のようにして、コンピュータ(101)は、ログをフィルタする際のカテゴリ分割の条件(KPIの閾値を含む)を自動的に求めることが可能である。
【0120】
ステップ209において、コンピュータ(101)は、KPIのカテゴリ分割の条件を求める処理を終了する。
【0121】
図2Bは、
図2Aに示すフローチャートのうち、ステップ205に示す処理の詳細を示すフローチャートである。
【0122】
ステップ211において、コンピュータ(101)は、ワークフロー実行情報pをK個に分割し、K個に分割されたワークフロー実行情報pから、ワークフロー・グラフG_kを生成し、各ワークフロー・グラフG_kの領域の条件を保存する処理を開始する。
【0123】
ステップ212において、コンピュータ(101)は、ステップ204で取得したKPIの種類mが数値データであるかを判断する。コンピュータ(101)は、KPIの種類mが数値データであることに応じて、処理をステップ213に進める。一方、コンピュータ(101)は、KPIの種類mが数値データでないこと(すなわち、カテゴリ・データであること)に応じて、処理をステップ215に進める。
【0124】
ステップ213において、コンピュータ(101)は、KPIの種類mが数値データであることに応じて、当該種類mの値xに基づいて、ワークフロー実行情報p(総数n)をソートする。
【0125】
ステップ214において、コンピュータ(101)は、ステップ213でソート後の全てのワークフロー実行情報pをK個に分割し(K<n)、グループk(kはグループのインデックスである)とする。
【0126】
ステップ215において、コンピュータ(101)は、KPIの種類mが数値データでないこと(すなわち、カテゴリ・データであること)に応じて、当該種類mの値xに基づいて、全てのワークフロー実行情報p(総数n)をK個に分割し、グループk(kは、グループのインデックスである)とする。かかる場合の分割値Kは、KPIの値xの種類mの数に相当する。
【0127】
ステップ216において、コンピュータ(101)は、kを初期化する。
【0128】
ステップ217において、コンピュータ(101)は、k<K(分割数)であるかを判定する。コンピュータ(101)は、k<Kであることに応じて、処理をステップ218に進める。一方、コンピュータ(101)は、k<Kでないこと(K<kであること)に応じて、処理を終了ステップ221に進める。
【0129】
ステップ218において、コンピュータ(101)は、グループkに属するワークフロー実行情報p(総数n)から、例えばαアルゴリズム(又は、alpha miner)、Heuristic miner、Genetic miner、Fuzzy miner、Transition system miner、Transition system to petri net、Declare miner、ILP miner、Simple log filter、Dotted chart analysis、Trace alignment、Guidetree miner、Social network miner、LTL checker、Fitness、ETConformance、Reply log on flexible model、PomPom、又はTransition system analyzerを使用して、ワークフロー・グラフG_kを生成する。ステップ218を1回経由する毎に、ワークフロー・グラフG_kが一つ生成される。
【0130】
ステップ218で生成されたワークフロー・グラフG_kの例を
図3Cに示す。
図3Cに示す例は、KPIの種類mが数値データであり、当該種類mの値xに基づいて、ワークフロー実行情報p(総数n)をソート後に、全てのワークフロー実行情報pをK個に分割した場合のワークフロー・グラフG_kの例である。
【0131】
図3Cは、分割された各領域(341,342,・・・,及び343)それぞれに属するワークフロー実行情報(実行順にソートされている)から、ワークフロー・グラフG_k(G
0(351),G
1(352),・・・,及びG
k−1(353))が生成したことを示す。ν
0〜ν
n−1は、ワークフローの処理時間を示す。ρ
0〜ρ
n−1は、ワークフロー実行情報を示す。
【0132】
ステップ219において、コンピュータ(101)は、ワークフロー・グラフG_kの条件を保存する。
【0133】
ステップ219で保存したワークフロー・グラフG_kの条件の例を
図3Dに示す。
図3Dは、ワークフロー・グラフG
0(371),G
1(372),G
2(373),・・・,及びG
k−1(374)それぞれの条件を示す。ステップ219を1回経由する毎に、ワークフロー・グラフG_kの条件の一つが保存される。
【0134】
ステップ220において、コンピュータ(101)は、kを1インクリメントする。そして、コンピュータ(101)は、処理をステップ217に戻して、ステップ217〜220を繰り返す。
【0135】
ステップ221において、コンピュータ(101)は、ワークフロー実行情報pをK個に分割し、K個に分割されたワークフロー実行情報から、ワークフロー・グラフG_kを生成し、各ワークフロー・グラフG_kの領域の条件を保存する処理を終了する。
【0136】
図2Cは、
図2Aに示すフローチャートのうち、ステップ206に示す処理の詳細を示すフローチャートである。
【0137】
ステップ231において、コンピュータ(101)は、ワークフロー・グラフG_kそれぞれに対するグラフ編集距離dを算出する処理を開始する。
【0138】
ステップ232において、コンピュータ(101)は、グラフ編集距離dを格納する為のグラフ編集距離テーブル(K行×K列)を作成する。
【0139】
ステップ232で生成されたグラフ編集距離テーブル(K行×K列)の例を
図4に示す。
図4に示す例は、Ga(K行)×Gb(K列)のグラフ編集距離テーブル(401)である。ただし、グラフ編集距離テーブル(401)中のテーブル・エントリのうち、値(グラフ編集距離d)を持つのは、上三角領域(又は下三角領域)のみであり、従って、(K×K−K)/2箇所のみである。
【0140】
ステップ233において、コンピュータ(101)は、グラフ編集距離テーブルのa行のインデックスを初期化する。
【0141】
ステップ234において、コンピュータ(101)は、グラフ編集距離テーブルのb列インデックスにa+1を代入する。これは、Ga=Gbの場合には、グラフ編集距離が不要である為である。
【0142】
ステップ235において、コンピュータ(101)は、ステップ205で生成したワークフロー・グラフG_kから、2つのワークフロー・グラフG_a及びG_bを取得する。
【0143】
ステップ236において、コンピュータ(101)は、ワークフロー・グラフG_aとワークフロー・グラフG_bとのグラフ編集距離d(a,b)を算出する。
【0144】
ステップ237において、コンピュータ(101)は、グラフ編集距離テーブル(301)のa行及びb列にグラフ編集距離d(a,b)を保存する。ステップ237を1回経由する毎に、グラフ編集距離テーブル(301)のテーブル・エントリの一つにグラフ編集距離d(a,b)が保存される。
【0145】
ステップ238において、コンピュータ(101)は、b<K(分割数)であるか判断する。コンピュータ(101)は、b<Kであることに応じて処理をステップ239に進める。一方、コンピュータ(101)は、b<Kでないこと(K<bであること)に応じて処理をステップ240に進める。
【0146】
ステップ239において、コンピュータ(101)は、b<Kであることに応じて、グラフ編集距離テーブルのa列インデックスにa+1を代入する。次の行のグラフ編集距離を算出する為である。
【0147】
ステップ240において、コンピュータ(101)は、K<bであることに応じて、グラフ編集距離テーブルのb列インデックスにb+1を代入する。次の列のグラフ編集距離を算出する為である。そして、コンピュータ(101)は、処理をステップ235に戻す。
【0148】
ステップ241において、コンピュータ(101)は、a<K(分割数)であるか判断する。コンピュータ(101)は、a<Kであることに応じて処理を終了ステップ242に進める。一方、コンピュータ(101)は、a<Kでないこと(K<aであること)に応じて処理をステップ234に戻す。
【0149】
ステップ242において、コンピュータ(101)は、ワークフロー・グラフG_kそれぞれに対するグラフ編集距離dを算出する処理を終了する。
【0150】
ステップ242におけるグラフ編集距離dを算出する処理終了時のグラフ編集距離テーブルの例を
図4に示す。グラフ編集距離テーブル(402)では、その上三角領域にあるテーブル・エントリにグラフ編集距離dが保存されている。
【0151】
図2Dは、
図2Aに示すフローチャートのうち、ステップ207に示す処理の詳細を示すフローチャートである。
【0152】
ステップ251において、コンピュータ(101)は、グラフ編集距離dが最短である2つのグラフをマージして、新たなグループを生成する処理を開始する。
【0153】
ステップ252において、コンピュータ(101)は、任意的に、グラフ編集距離テーブルに保存されている編集距離dを昇順にソートする。
【0154】
ステップ253において、コンピュータ(101)は、最も小さいグラフ編集距離dの2つのワークフロー・グラフG_a及びG_bを取得する。例えば、
図5に示すグラフ編集距離テーブル(402)において、ワークフロー・グラフG
0及びワークフロー・グラフG
2のグラフ編集距離が0である(すなわち、グラフの形が同じである)為に、ワークフロー・グラフG
0及びワークフロー・グラフG
2のグラフ編集距離が最も小さいグラフ編集距離である。
【0155】
ステップ254において、コンピュータ(101)は、d<Dであるか判断する。Dは、グラフ編集距離の閾値であり、任意の数値に予め設定されうる。Dは例えば、0.3である。コンピュータ(101)は、d<Dであることに応じて、処理をステップ255に進める。すなわち、コンピュータ(101)は、一定の距離Dになるまで、ステップ255〜258の処理を繰り返し行う。一方、コンピュータ(101)は、d<Dでないこと(D<dであること)に応じて、処理を終了ステップ259に進める。
【0156】
ステップ255において、コンピュータ(101)は、ワークフロー・グラフG_aに属するワークフロー実行情報及びワークフロー・グラフG_bに属するワークフロー実行情報から、新しいワークフロー・グラフG_abを生成する。
【0157】
ステップ256において、コンピュータ(101)は、グラフ編集距離テーブルから、新しいワークフロー・グラフG_abの生成元であるワークフロー・グラフG_a及びワークフロー・グラフG_bの行及び列(すなわち、a行、a列、b行及びb列)を削除し、グラフ編集距離テーブルを更新する。
【0158】
ステップ256でワークフロー・グラフG_a及びワークフロー・グラフG_bの行及び列が削除されたグラフ編集距離テーブルの例を
図5に示す。
図5に示すグラフ編集距離テーブル(501)では、グラフ編集距離テーブル(401)から、グラフ編集距離が最も小さいワークフロー・グラフG
0及びワークフロー・グラフG
2それぞれの行及び列が削除されている。
【0159】
ステップ257において、コンピュータ(101)は、グラフ編集距離テーブルに、新しいワークフロー・グラフG_abに対する行及び列を追加する。
【0160】
ステップ257で新しいワークフロー・グラフG_abに対する行及び列が追加されたグラフ編集距離テーブルの例を
図5に示す。
図5に示すグラフ編集距離テーブル(502)では、グラフ編集距離テーブル(501)に、新しいワークフロー・グラフ(G
0,G
2)に対する行及び列が追加されている。
【0161】
ステップ258において、コンピュータ(101)は、新しいワークフロー・グラフG_abに対する行及び列のグラフ編集距離を算出し、当該算出したグラフ編集距離をグラフ編集距離テーブルに追加して、当該グラフ編集距離テーブルを更新する。
図5に示すグラフ編集距離テーブル(502)において、塗りつぶしたテーブル・エントリ(512)のグラフ編集距離が算出される。
【0162】
ステップ259において、コンピュータ(101)は、グラフ編集距離dが最短である2つのグラフをマージして、新たなグループを生成する処理を終了する。
【0163】
図6は、
図1A又は
図1Bに従うハードウェア構成を好ましくは備えており、
図2A〜
図2Dそれぞれに示すフローチャートに従って本発明の実施態様を実施するコンピュータの機能ブロック図の一例を示す図である。
【0164】
コンピュータ(601)は、例えば
図1Aに示すコンピュータ(101)に示されている構成、例えばCPU(102)、メイン・メモリ(103)、記憶装置(108)、及びディスク(108)を備えている。
【0165】
コンピュータ(601)は、分割手段(611)、グラフ生成手段(612)、グラフ編集距離算出手段(613)、及びグラフ・マージ手段(614)を備えている。また、コンピュータ(601)は任意的に、カテゴリ分割条件算出手段(615)をさらに備えていてもよい。また、コンピュータ(601)は任意的に、分割数決定手段(616)をさらに備えていてもよい。
【0166】
分割手段(611)は、KPIリストを格納した記録媒体(691)からKPIリストを取得すると共に、ワークフロー実行情報を格納した記録媒体(692)からワークフロー実行情報を取得し、当該取得した複数のワークフロー実行情報をKPIの種類についての分割数で分割する。
【0167】
また、分割手段(611)は、KPIの種類が数値データであることに応じて、上記種類に関連付けられた上記値に基づいて、上記複数のワークフロー実行情報をソートし、及び、上記ソート後の上記複数のワークフロー実行情報を上記分割数で分割しうる。
【0168】
また、分割手段(611)は、
図2Aに記載のステップ204及びステップ205のうちのワークフロー実行情報pの分割処理、並びに、
図2Bに記載のステップ212〜215を実行しうる。
【0169】
グラフ生成手段(612)は、KPIの種類についての分割数で分割した後の複数のグループそれぞれについて、当該グループ中に属するワークフロー実行情報からワークフロー・グラフを生成する。
【0170】
また、グラフ生成手段(612)は、当該生成したワークフロー・グラフを、ワークフロー・グラフを格納する記憶媒体(693)に格納しうる。
【0171】
また、グラフ生成手段(612)は、生成したワークフロー・グラフの領域の条件を保存しうる。
【0172】
また、グラフ生成手段(612)は、
図2Aに記載のステップ205のうちのワークフロー・グラフG_kの生成処理、並びに、
図2Bに記載のステップ216〜220を実行しうる。
【0173】
グラフ編集距離算出手段(613)は、グラフ生成手段(612)によって生成された任意の2つのワークフロー・グラフそれぞれのグラフ編集距離を算出する。
【0174】
また、グラフ編集距離算出手段(613)は、グラフ・マージ手段(614)によって生成された新たなグループと他のワークフロー・グラフとのグラフ編集距離を算出しうる。
【0175】
また、グラフ編集距離算出手段(613)は、
(c−1)任意の2つのワークフロー・グラフの組み合わせを取得する処理、
(c−2)上記任意の2つのワークフロー・グラフの組み合わせに対してグラフ編集距離を算出する処理、
(c−3)上記任意の2つのワークフロー・グラフの残りの組み合わせについて、処理(c−1)及び処理(c−2)を繰り返す処理
を実行しうる。
【0176】
また、グラフ編集距離算出手段(613)は、上記算出したグラフ編集距離をグラフ編集距離テーブルを格納した記憶媒体(694)に記録しうる。
【0177】
また、グラフ編集距離算出手段(613)は、グラフ・マージ手段(614)によって新たなグループが追加されたテーブルに対して、上記新たなグループに対して算出したグラフ編集距離をグラフ編集距離テーブルに記録しうる。
【0178】
また、グラフ編集距離算出手段(613)は、
図2Aに記載のステップ206、及び、
図2Cに示す全ステップを実行しうる。
【0179】
グラフ・マージ手段(614)は、グラフ編集距離算出手段(613)によって算出されたグラフ編集距離が最短である2つのワークフロー・グラフをマージして新たなグループを生成する。
【0180】
また、グラフ・マージ手段(614)は、上記グラフ編集距離が最短である上記2つのワークフロー・グラフそれぞれに属するワークフロー実行情報から上記新たなグループを生成しうる。
【0181】
また、グラフ・マージ手段(614)は、上記グラフ編集距離が最短である2つのグループそれぞれの領域をマージして、上記新たなグループの領域の条件を保存しうる。
【0182】
また、グラフ・マージ手段(614)は、上記生成した新たなグループをグラフ編集距離テーブルに追加しうる。
【0183】
また、グラフ・マージ手段(614)は、グラフ編集距離が最短である2つのグループに属する2つのワークフロー・グラフをグラフ編集距離テーブルから削除しうる。
【0184】
また、グラフ・マージ手段(614)は、
図2Aに記載のステップ207、並びに、
図2Dに記載の全ステップを実行しうる。
【0185】
カテゴリ分割条件算出手段(615)は、上記新たなグループを定義する値を上記カテゴリ分割の条件として求める。
【0186】
また、カテゴリ分割条件算出手段(615)は、上記KPIの種類が数値データである場合に、上記数値データ中の値を上記カテゴリ分割の条件として求めうる。
【0187】
また、カテゴリ分割条件算出手段(615)は、上記KPIの種類がカテゴリ・データである場合に、カテゴリの名前を上記カテゴリ分割の条件として求めうる。
【0188】
また、カテゴリ分割条件算出手段(615)は、
図2Aに記載のステップ208を実行しうる。
【0189】
分割数決定手段(616)は、KPIリストを格納した記録媒体(691)からKPIリストを取得し、KPIの種類に対して分割数を決める。
【0190】
また、分割数決定手段(616)は、KPIの種類が数値データであることに応じて、統計手法を用いて、上記分割数を求めうる。
【0191】
また、分割数決定手段(616)は、KPIの種類がカテゴリ・データであることに応じて、上記種類に関するカテゴリ数、又は上記種類に関連付けられた値から上記分割数を求めうる。
【0192】
(実施例)
ウェブページ上のヘルプページのアクセス回数に依存して、ユーザがどのような処理をしているかを本発明の実施態様に従う処理を実行して調べた。その結果、カテゴリ分割の条件がアクセス回数2であることが求められた。アクセス回数が2回以下である場合には、ヘルプページの操作ガイダンスに従わずにユーザがヘルプページの閲覧をしており、一方、アクセス回数が2回よりも多い場合には、ヘルプページの操作ガイダンスに従ってユーザがヘルプページの閲覧をしていることが判った。
【0193】
従来手法に従うと、ヘルプページのアクセス回数をゼロから試行錯誤で逐一調べて、ワークフローを合成する必要があった。しかしながら、本発明の実施態様に従う処理を実行することによって、KPIの閾値(アクセス回数が2回以下、又はそれよりも多い)を自動的に検出することができる。従って、本発明の実施態様に従うと、従来手法の試行錯誤によりKPIの閾値を探索する手間を省くことが可能になる。