(57)【要約】【課題】追番値に従って業務プロセス構造を推定する。【解決手段】本方法では、業務システムで実施され且つ特定プロセスに係るイベント毎にイベントの属性の値と処理時刻とを格納する記憶部に格納されている各イベントについて、イベントの属性のうち、並列実施されたイベントに対し設定され且つ追番とみなされる追番属性の数を計数し、追番属性が未設定のイベントに相当する始点及び終点と、追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ始点と接続される分岐点と、分岐ルートが合流し且つ終点と接続される合流点とを含む仮想ルートデータを生成し、追番属性が設定されているイベントについて、追番属性の設定数が小さい順に、当該イベントの追番属性及び当該追番属性の属性値と処理時刻とから所定のルールに従って、当該イベントを配置すべき分岐ルートを決定し、当該決定に基づき仮想ルートデータを更新する。【選択図】図１２
2011100238.tif 000002
【特許請求の範囲】
【請求項１】
業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部に格納されている各前記イベントについて、当該イベントに設定されている前記属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数するステップと、
前記追番属性が設定されていない前記イベントに相当する始点及び終点と、前記追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ前記始点と接続される分岐点と、前記分岐ルートが合流し且つ前記終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成ステップと、
前記追番属性が設定されている前記イベントである追番設定イベントについて、設定されている前記追番属性の数が小さい前記追番設定イベントから順に、当該追番設定イベントに設定されている前記追番属性及び当該追番属性の属性値と前記処理時刻とから、所定のルールに従って、前記仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき前記仮想ルートデータを更新する更新ステップと、
を含み、コンピュータにより実行されるプロセス構造推定方法。
【請求項２】
前記仮想ルートデータ生成ステップの前に、先頭イベント及び末尾イベント以外の前記イベントの中に前記追番属性が設定されていない前記イベントが存在するか判断するステップ
をさらに含み、
前記先頭イベント及び末尾イベント以外の前記イベントの中に前記追番属性が設定されていない前記イベントが存在する場合、前記追番属性が設定されていない前記イベントで区切られる区間毎に前記仮想ルートデータ生成ステップ以降のステップを実施し、各前記区間の前記仮想ルートデータを連結する
請求項１記載のプロセス構造推定方法。
【請求項３】
前記更新ステップが、
処理対象の前記追番設定イベントに設定されている前記追番属性の数が１の場合、前記仮想ルートデータにおいて、処理対象の前記追番設定イベントに設定されている前記追番属性と当該追番属性の属性値との対に対応する前記分岐ルートを特定し、特定された前記分岐ルート上に処理対象の前記追番設定イベントを表すノードを配置するステップ
を含む請求項１又は２記載のプロセス構造推定方法。
【請求項４】
前記更新ステップが、
処理対象の前記追番設定イベントに設定されている前記追番属性の数が２以上の場合、前記追番属性の数が処理対象の前記追番設定イベントより小さく且つ前記処理時刻が処理対象の前記追番設定イベントより早い前記追番設定イベントの中に、処理対象の前記追番設定イベントに設定されている前記追番属性と当該追番属性の属性値との対のいずれかと同一の対を少なくとも１つ含む前記追番設定イベントである対応付け候補イベントが存在するか判断するステップと、
前記対応付け候補イベントが存在すると判断された場合、処理対象の前記追番設定イベントと同一の対を最も多く含む前記対応付け候補イベントを対応付けイベントとして特定し、特定された前記対応付けイベントの後方を、処理対象の前記追番設定イベントの配置先として決定する配置先決定ステップと、
前記始点から前記配置先までの経路における分岐回数が処理対象の前記追番設定イベントに設定されている前記追番属性の数より小さいか判断し、小さいと判断された場合には、前記始点から前記配置先までの経路における分岐回数が処理対象の前記追番設定イベントに設定されている前記追番属性の数と等しくなるよう前記分岐ルートを再分岐させ、再分岐後の分岐ルート上に処理対象の前記追番設定イベントの前記配置先を再設定するステップと、
処理対象の前記追番設定イベントを表すノードを前記配置先に配置するステップと、
を含む請求項１乃至３のいずれか１つ記載のプロセス構造推定方法。
【請求項５】
業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部に格納されている各前記イベントについて、当該イベントに設定されている前記属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数するステップと、
前記追番属性が設定されていない前記イベントに相当する始点及び終点と、前記追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ前記始点と接続される分岐点と、前記分岐ルートが合流し且つ前記終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成ステップと、
前記追番属性が設定されている前記イベントである追番設定イベントについて、設定されている前記追番属性の数が小さい前記追番設定イベントから順に、当該追番設定イベントに設定されている前記追番属性及び当該追番属性の属性値と前記処理時刻とから、所定のルールに従って、前記仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき前記仮想ルートデータを更新する更新ステップと、
をコンピュータに実行させるためのプロセス構造推定プログラム。
【請求項６】
業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部と、
前記データ格納部に格納されている各前記イベントについて、当該イベントに設定されている前記属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数する追番設定数計数手段と、
前記追番属性が設定されていない前記イベントに相当する始点及び終点と、前記追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ前記始点と接続される分岐点と、前記分岐ルートが合流し且つ前記終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成手段と、
前記追番属性が設定されている前記イベントである追番設定イベントについて、設定されている前記追番属性の数が小さい前記追番設定イベントから順に、当該追番設定イベントに設定されている前記追番属性及び当該追番属性の属性値と前記処理時刻とから、所定のルールに従って、前記仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき前記仮想ルートデータを更新する仮想ルートデータ更新手段と、
を有するプロセス構造推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、業務プロセス分析技術に関する。
【背景技術】
【０００２】
業務プロセス可視化のために、業務システムのデータベースに蓄積された処理レコードから、関連を有する一連の業務イベントを抽出して業務プロセスとしてまとめて、フロー図として可視化する技術が存在している。
【０００３】
また、業務プロセス構造を推定する方式として、以下のような方式がある。すなわち、第一の方式として、イベント出現順序のパターンから業務プロセス構造を推定する方式がある。また、第二の方式として、イベントの処理時間の重複を判定し、業務プロセス構造を推定する方式がある。しかし、これらの方式には、以下のような問題がある。
【０００４】
まず、第一の方式では、出現順序のパターンの網羅性が高い必要がある。さらに、本来の出現順序ではない例外的な処理の発生によって、本来の出現順序とは無関係のデータが紛れ込んでいる場合、誤った構造を導く可能性がある。なお、このようなデータは、業務システムにおけるサーバ間の時間のずれなどの要因により、実データでは比較的高い確率で発生する。また、このようなデータの影響を軽減するようにした場合、例えば閾値設定に依存して推定結果が大きく変わることがあり、推定結果の信頼性が低くなってしまう。
【０００５】
さらに、第二の方式では、イベントの処理開始と処理終了との２つの時点の処理時刻を記録しておく必要がある。なお、処理時刻が１時点記録であっても、処理時間を推定する技術が存在するが、この技術は、各イベントの処理時間が正規分布に従って分布していることが前提となる。また、イベントの処理時間が重複しているイベント同士は、並列実施されたものと判定できるが、処理時間が重複していなくとも並列実施されているケースもあり、この方式では、そのようなケースに対処できない。
【０００６】
一方で、業務システムの中には、図１に示すように、並列実施された業務イベント（図１では、業務Ｂ及びＣ）に対して、ある属性の値を追番として発行するようなシステムが存在する。図１では、業務Ａが実施された後、業務Ｂのルートと業務Ｃのルートとに分岐しており、業務Ｂに対して「追番１＝ＸＸ」が設定され、業務Ｃに対して「追番１＝ＹＹ」が設定されている。そして、業務Ｂのルートと業務Ｃのルートとが合流した後、業務Ｄが実施されている。なお、この場合、業務システムのデータベースには、図２に示すようなデータが格納される。ここで、図２の「ＩＤ」は、例えば発注システムにおける「伝票番号」に相当するものであり、ＩＤが同じということは、同じ案件についての一連の業務であることを意味している。また、図２の「追番１」は、例えば発注システムにおける「伝票明細番号」に相当するものである。なお、業務Ａ及び業務Ｄは、並列実施された業務イベントではないため、追番１の値は設定されていない。また、図２に示す「ＩＤ」や「追番１」が、それぞれ何の項目に対応するかは、業務システムによって異なってくる。
【０００７】
また、図３に示すように、分岐したルートが、再分岐するような場合もある。その場合には、図３に示すように、複数の属性の値が追番として設定される。図３の例では、業務Ａが実施された後、業務Ｂのルートと業務Ｃのルートとに分岐しており、業務Ｂに対して「追番１＝ＸＸ」が設定され、業務Ｃに対して「追番１＝ＹＹ」が設定されている。ここまでは、図１に示した例と同じであるが、図３の例では、業務Ｂのルートが、業務Ｅのルートと業務Ｆ及びＧのルートとに再分岐している。そして、業務Ｅに対して「追番２＝ａａ」が設定され、業務Ｆ及びＧに対して「追番２＝ｂｂ」が設定されている。また、図３の例では、業務Ｃが実施された後、同一ルート上で業務Ｈが実施されており、業務Ｈに対しても「追番１＝ＹＹ」が設定されている。そして、業務Ｅのルートと業務Ｆ及びＧのルートとが合流したルートと、業務Ｃ及びＨのルートとが合流した後、業務Ｄが実施されている。なお、この場合、業務システムのデータベースには、図４に示すようなデータが格納される。図４の例では、「追番２」の値がさらに格納されるようになっている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】ＷＯ２００９／０９８７６６公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、中には、一連の業務処理において、１つの属性を、異なる追番として使い回す場合があり、並列実施された業務イベントと追番との関係が複雑になる場合がある。また、次々と再分岐するような場合には、追番となる属性の種類が増えてしまい、追番同士の関係が複雑になってしまう場合もある。これらの問題により、従来技術では、追番とみなされる属性の属性値に従って業務プロセス構造を推定するのが困難な場合がある。
【００１０】
従って、本技術の目的は、追番とみなされる属性の属性値に従って業務プロセス構造を推定するための技術を提供することである。
【課題を解決するための手段】
【００１１】
本プロセス構造推定方法は、業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部に格納されている各イベントについて、当該イベントに設定されている属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数するステップと、追番属性が設定されていないイベントに相当する始点及び終点と、追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ始点と接続される分岐点と、分岐ルートが合流し且つ終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成ステップと、追番属性が設定されているイベントである追番設定イベントについて、設定されている追番属性の数が小さい追番設定イベントから順に、当該追番設定イベントに設定されている追番属性及び当該追番属性の属性値と処理時刻とから、所定のルールに従って、仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき仮想ルートデータを更新する更新ステップとを含む。
【発明の効果】
【００１２】
追番とみなされる属性の属性値に従って業務プロセス構造を推定可能になる。
【図面の簡単な説明】
【００１３】
【図１】図１は、並列実施部分を含む一連の業務処理のフローの第１の例を示す図である。
【図２】図２は、図１に示した一連の業務処理の処理レコードをまとめたものを示す図である。
【図３】図３は、並列実施部分を含む一連の業務処理のフローの第２の例を示す図である。
【図４】図４は、図３に示した一連の業務処理の処理レコードをまとめたものを示す図である。
【図５】図５は、前提となる技術を説明するための図である。
【図６】図６は、前提となる技術によって推定される業務プロセス構造を示す図である。
【図７】図７は、前提となる技術の問題点を説明するための図である。
【図８】図８は、無意義な推定結果の一例を示す図である。
【図９】図９は、追番属性の具体例を説明するための図である。
【図１０】図１０は、追番属性の具体例を説明するための図である。
【図１１】図１１は、本技術の一実施の形態に係るシステム構成図である。
【図１２】図１２は、本実施の形態に係るプロセス構造推定装置の機能ブロック図である。
【図１３】図１３は、追番設定数テーブル格納部に格納される追番設定数テーブルの一例を示すである。
【図１４】図１４は、プロセス構造推定装置のメインの処理フロー（第１の部分）を示す図である。
【図１５】図１５は、フローインスタンスを生成する処理を説明するための図である。
【図１６】図１６は、フローインスタンスの一例を示す図である。
【図１７】図１７は、フローインスタンスの一例を示す図である。
【図１８】図１８は、図１７に示したフローインスタンスに基づき生成される仮想ルートデータを示す図である。
【図１９】図１９は、プロセス構造推定装置のメインの処理フロー（第２の部分）を示す図である。
【図２０】図２０は、イベント配置処理の簡単な処理内容を説明するための図である。
【図２１】図２１は、イベント配置処理の簡単な処理内容を説明するための図である。
【図２２】図２２は、イベント配置処理の簡単な処理内容を説明するための図である。
【図２３】図２３は、仮想ルートデータにおける追番値の有効範囲と、順序性が保持される範囲とを示す図である。
【図２４】図２４は、プロセス構造推定装置のメインの処理フロー（第３の部分）を示す図である。
【図２５】図２５は、イベント配置処理の処理フロー（第１の部分）を示す図である。
【図２６】図２６は、イベント配置処理の処理フロー（第２の部分）を示す図である。
【図２７】図２７は、追番管理テーブルの一例を示す図である。
【図２８】図２８は、マップデータの一例を示す図である。
【図２９】図２９は、マップデータの一例を示す図である。
【図３０】図３０は、本実施の形態に係る手法によって、業務プロセス構造を推定した場合の推定結果を示す図である。
【図３１】図３１は、第１の区間に対応する仮想ルートデータの一例を示す図である。
【図３２】図３２は、図３１に示した仮想ルートデータに対して、追番設定数＝１のイベントを配置した後の仮想ルートデータの一例を示す図である。
【図３３】図３３は、図３２に示した仮想ルートデータに対して、追番設定数＝２のイベントを配置した後の仮想ルートデータの一例を示す図である。
【図３４】図３４は、第２の区間に対応する仮想ルートデータの一例を示す図である。
【図３５】図３５は、図３４に示した仮想ルートデータに対して、追番設定数＝１のイベントを配置した後の仮想ルートデータを示す図である。
【図３６】図３６は、図３５に示した仮想ルートデータに対して、追番設定数＝２のイベントを配置した後の仮想ルートデータを示す図である。
【図３７】図３７は、図３６に示した仮想ルートデータに対して、追番設定数＝３のイベントを配置した後の仮想ルートデータを示す図である。
【図３８】図３８は、図３３に示した仮想ルートデータと図３７に示した仮想ルートデータとを連結したものを示す図である。
【図３９】図３９は、コンピュータの機能ブロック図である。
【図４０】図４０は、本技術の第１の態様に係るプロセス構造推定方法の処理フローを示す図である。
【図４１】図４１は、本技術の第２の態様に係るプロセス構造推定装置の機能ブロック図である。
【発明を実施するための形態】
【００１４】
例えば、並列実施された業務イベントに対し、ある属性の属性値を追番として発行するような業務システムから収集した一連の業務処理のデータを用いて業務プロセスの構造を推定する方式として、以下のような方法が考えられる。具体的には、図５に示すような、追番によってグループ分けを行い、グループに基づき業務プロセス構造を推定する方法がある。図５の上段に示す表形式のデータは、業務システムから収集した一連の業務処理のデータの一例を示している。なお、本実施の形態では、一連の業務処理のデータをまとめたものを、フローインスタンスと呼ぶ。図５に示すフローインスタンスでは、イベントＡの発生時刻が一番早く、左から右へ時系列に並べられているものとする。また、図５に示すフローインスタンスにおいて、イベントＡ乃至イベントＭは、ＩＤ００１を持つイベントであり、同じ案件についての一連の業務であることを示している。また、図５は、追番とみなされる属性（以下、追番属性と呼ぶ）が３つ存在している例を示している。なお、どのような属性が追番となるかは、各業務システムによって異なる。図５では、説明の便宜上、第一の追番属性を「追番１」とし、第二の追番属性を「追番２」とし、第三の追番属性を「追番３」として示している。
【００１５】
例えば、図５に示すようなフローインスタンスについて、追番属性の属性値（以下、追番値と呼ぶ場合もある）が同一のイベントを同一グループとしてグループ分けを行うと、同じく図５に示すような結果となる。図５において、イベントＡ及びＭには、追番属性が１つも設定されていないため、並列実施されたものではないとみなされる。また、図５では、追番１の値によって、大きく２つのグループに分けられている。具体的には、追番１の値が「１」であるイベントＢ、Ｄ、Ｈ及びＩが属するグループ１００と、追番１の値が「２」であるイベントＣ、Ｅ、Ｆ、Ｇ、Ｊ、Ｋ及びＬが属するグループ２００とに分けられている。
【００１６】
そして、グループ１００の内部は、追番２の値によって、さらに２つのグループに分けられている。具体的には、追番２の値が「ｃ」であるイベントＨが属するグループ１１０と、追番２の値が「ｄ」であるイベントＩが属するグループ１２０とに分けられている。また、グループ２００の内部も、追番２の値によって、さらに２つのグループに分けられている。具体的には、追番２の値が「ａ」であるイベントＥ及びＧが属するグループ２１０と、追番２の値が「ｂ」であるイベントＦ、Ｊ、Ｋ及びＬが属するグループ２２０との２つにさらに分けられている。
【００１７】
さらに、グループ２２０の内部は、追番３によって、さらに２つのグループに分けられている。具体的には、追番３の値が「Ｘ」であるイベントＪが属するグループ２２１と、追番３の値が「Ｙ」であるイベントＫ及びＪが属するグループ２２２とに分けられている。
【００１８】
図５の例では、追番１のグループが追番２のグループを包含し、さらに追番２のグループは追番３のグループを包含するようになっており、追番１、追番２、追番３の順に、範囲が徐々に小さくなっている。従って、追番１と追番２との間で親子関係が成り立っており、さらに追番２と追番３との間でも親子関係が成り立っている。このケースであれば、発生時刻順にイベントを配置していき、追番属性の設定数が増える時点において分岐点を追加するという手法により、図６に示すような業務プロセス構造を導き出すことができる。具体的には、まず、先頭のイベントＡには、追番属性が設定されていないので、イベントＡは並列実施されたものではないとみなされ、そのまま配置される。次のイベントＢには、追番１が設定されており、この時点で、設定数が０から１へ増えているので、イベントＡとイベントＢの間に分岐点が設けられる。なお、図６において、「＋」マークを付した菱形のブロックは、分岐点を示している。また、次のイベントＣは、設定数は１のままであるが、追番１の値は、イベントＢとは異なるため、イベントＢの分岐ルートとは別の分岐ルートが設けられる。さらに、次のイベントＤは、設定数も追番１の値もイベントＢと同じであるため、イベントＢと同一の分岐ルートで且つイベントＢの後方に配置される。また、次のイベントＥは、追番１の値がイベントＣと同じであるため、イベントＣの後方に配置されることになるが、イベントＥには、さらに追番２が設定されており、設定数が１から２へ増えている。従って、イベントＣとイベントＥの間に分岐点が設けられる。次のイベントＦは、設定数と追番１の値は、イベントＥと同じであるが、追番２の値が、イベントＥと異なるため、イベントＥの分岐ルートとは別の分岐ルートが設けられる。また、次のイベントＧは、設定数も追番１の値も追番２の値もイベントＥと同じであるため、イベントＥと同一の分岐ルートで且つイベントＥの後方に配置される。さらに、次のイベントＨは、追番１の値がイベントＤと同じであるため、イベントＤの後方に配置されることになるが、イベントＨには、さらに追番２が設定されており、設定数が１から２へ増えている。従って、イベントＤとイベントＨの間に分岐点が設けられる。次のイベントＩは、設定数と追番１の値は、イベントＨと同じであるが、追番２の値が、イベントＨと異なるため、イベントＨの分岐ルートとは別の分岐ルートが設けられる。また、次のイベントＪは、追番１及び追番２の値がイベントＦと同じであるため、イベントＦの後方に配置されることになるが、イベントＪには、さらに追番３が設定されており、設定数が２から３へ増えている。従って、イベントＦとイベントＪの間に分岐点が設けられる。次のイベントＫは、設定数と追番１及び追番２の値は、イベントＪと同じであるが、追番３の値が、イベントＪと異なるため、イベントＪの分岐ルートとは別の分岐ルートが設けられる。また、次のイベントＬは、設定数も追番１乃至追番３の値もイベントＫと同じであるため、イベントＫと同一の分岐ルートで且つイベントＫの後方に配置される。そして、末尾のイベントＭには、追番属性が設定されていないので、全ての分岐ルートが合流した後に、イベントＭが配置される。
【００１９】
しかしながら、図５に示した例では、追番属性の間に明確な親子関係が成り立っていたが、例えば図７に示すように、追番属性の間に親子関係が成立しないような場合もある。図７に示すフローインスタンスについて、追番値に従ってグループ分けを行うと、同じく図７に示すような結果となる。図７に示すように、各追番属性の相互関係は複雑なものになっており、明確な親子関係は成立していない。この場合、上で述べたような手法によって、業務プロセス構造を推定するのは困難である。
【００２０】
例えば、図７に示したフローインスタンスから、図８に示すような業務プロセス構造を推定することは可能である。なお、図８に示すフローインスタンスは、図７と同じものである。図８に示す業務プロセス構造において、「○」マークを付した菱形のブロックは、１からｎ本の任意のルートに分岐する分岐点であることを意味する。そして、この業務プロセス構造では、一旦合流した後、必要に応じて分岐前の地点に戻るようになっている。しかし、このような業務プロセス構造を推定結果として出力しても、漠然とした構造であるため、業務プロセスの改善などに利用できるものではなく、有意な推定ができているとは言い難い。そこで、本技術の実施の形態では、以下に説明するような手法によって、各追番属性の相互関係が複雑である場合でも、有意な業務プロセス構造の推定を可能とする。以下、本技術の一実施の形態について説明する。
【００２１】
なお、本実施の形態の具体的内容を説明する前に、図９及び図１０を用いて、追番属性の具体例を説明しておく。例えば、図９に、発注システムにおいて実施された一連の業務処理のフローの一例を示す。また、図１０に、図９に示したフローに対応するフローインスタンスの一例を示す。なお、図９のブロックと、図１０の処理レコードとの対応関係を分かり易くするため、それぞれに業務識別番号を付している。例えば、図９における「発注依頼（１）」は、図１０における業務識別番号（１）の処理レコードに対応している。なお、業務識別番号は、処理時刻順に付している。
【００２２】
図９のフローでは、最初に「発注依頼（１）」が行われている。ここで、その発注処理に対して一意な「発注伝票番号」が発行される。なお、発注伝票番号が同じということは、同じ案件についての一連の発注処理であることを意味している。そして、例えば、発注依頼は購買部に送信され、そこで社内で調達するものと社外から購入するものとに分けられる。購買部では、発注内容が妥当かどうかを確認するために統制処理を行うが、社内用（「統制：社内購買（２）」）と社外用（「統制：社外購買（３）」）とでは、処理が異なるため、それらを区別するための「発注伝票明細番号」が発行される。ここでは、社内購買に関する処理に対して「IN090410001」という発注伝票明細番号を設定し、社外購買に関する処理に対して「EX090410001」という発注伝票明細番号を設定している。この発注伝票明細番号が１種類目の追番属性となる。
【００２３】
そして、社内購買のルートにおいて、例えば社内購買の処理は一元化されており、１箇所で全ての購買処理が行えるので、統制処理後に再分岐はなく、「見積確認（４）」及び「納品（６）」が行われる。ここでは、社内購買の処理は電子化されており、見積依頼を行って、すぐに見積確認ができるので、見積依頼と見積確認とは一体化して「見積確認」としてデータ上記録されている。なお、ここでは、納品後の検収処理は、購買品の構成にかかわらず、１つの発注依頼に対し１度だけ行うものとし、全ての納品が完了するまでは、実行されないものとする。
【００２４】
一方、社外購買のルートにおいて、社外購買の処理は発注先に応じて処理内容が異なるため、発注先毎に「社外発注番号」が発行される。ここでは、Ａ社への発注に対して「A20090413-053」という社外発注番号を設定し、Ｂ社への発注に対して「2009G03-0414-1129」という社外発注番号を設定している。この社外発注番号が２種類目の追番属性となる。
【００２５】
そして、例えばＡ社への発注については、Ａ社の受注システムが紙ベースとなっており、見積依頼などを紙書類で送付する必要があるものとする。そのため、図９のフローでは、「見積依頼書送付（５）」、「見積確認（８）」、「注文書送付（９）」及び「納品（１１）」という流れで処理が行われている。
【００２６】
また、例えばＢ社への発注については、例えばＢ社の受注システムは電子化されているが、発注したものが特注品であるため、途中で仕様確認の必要があるものとする。そのため、図９のフローでは、「見積確認（７）」、「仕様確認（１０）」及び「納品（１２）」という流れで処理が行われている。
【００２７】
そして、社内及び社外の納品が完了した後、「検収（１３）」が実行され、一連の発注処理が完了となる。なお、図９及び図１０は、２種類の追番属性が設定される具体例を示しているが、追番属性は３種類以上の場合もあり、追番属性の種類はこれに限定されない。
【００２８】
次に、図１１に、本技術の一実施の形態に係るシステム構成図を示す。図１１では、例えば社内ＬＡＮ（Local Area Network）又はインターネットのようなネットワーク１０には、本実施の形態における主要な処理を実施するプロセス構造推定装置３０と、複数のサーバ（図１１では、サーバＡ乃至Ｃ）を含む業務システム５０とが接続されている。
【００２９】
業務システム５０内のサーバは、業務処理を実施するためのアプリケーションと、アプリケーションにより実施された処理の履歴を格納するデータベースとを有している。なお、データベースが設けられないサーバもあり、その場合には、他のサーバのデータベースに履歴を格納する。
【００３０】
図１２に、図１１に示したプロセス構造推定装置３０の機能ブロック図を示す。本実施の形態に係るプロセス構造推定装置３０は、業務システムにおけるデータベース（又はそのレプリカ）に格納されているデータに基づきフローインスタンスを生成するフローインスタンス生成部３１と、フローインスタンス生成部３１により生成されたフローインスタンスのデータを格納するフローインスタンスデータ格納部３２と、ユーザから処理対象となるフローインスタンスの選択入力を受け付け、選択入力データをプロセス構造推定部３３に出力する入力部３４と、フローインスタンスデータ格納部３２に格納されているデータに基づきプロセス構造を推定するための処理を実施するプロセス構造推定部３３と、プロセス構造推定部３３の処理結果を出力する出力部３５とを有する。
【００３１】
また、プロセス構造推定部３３は、フローインスタンスデータ格納部３２に格納されているデータに基づき、処理対象のフローインスタンスにおける業務イベントの追番属性の設定数を計数する追番設定数計数部３３１と、後で説明する仮想ルートデータを生成するなどの処理を実施する仮想ルートデータ処理部３３２と、後で説明するイベント配置処理を実施するイベント配置処理部３３３と、追番設定数計数部３３１の処理結果を含む追番設定数テーブルを格納する追番設定数テーブル格納部３３４と、仮想ルートデータ処理部３３２の処理結果を格納する仮想ルートデータ格納部３３５とを含む。
【００３２】
図１３に、追番設定数テーブル格納部３３４に格納される追番設定数テーブルの一例を示す。図１３の例では、追番設定数テーブルには、イベントの列と、追番設定数の列とが含まれ、イベント毎の追番設定数が格納されるようになっている。
【００３３】
次に、図１４乃至図２６を用いてプロセス構造推定装置３０の処理フローについて説明する。まず、フローインスタンス生成部３１は、業務システム５０におけるデータベースＡ及びＢなどのデータベース群に蓄積されているデータからフローインスタンスを生成し、フローインスタンスデータ格納部３２に格納する（図１４：ステップＳ１）。なお、本ステップの処理については、図１５を用いて説明する。
【００３４】
例えば、図１５に模式的に示すが、データベースＡにはテーブルａ及びｂが格納されており、フローインスタンス生成部３１は、テーブルａからそれぞれＩＤと追番１とイベントと処理時刻とを含む処理レコードを抽出し、同様にテーブルｂからそれぞれＩＤと追番１とイベントと処理時刻とを含む処理レコードを抽出する。また、データベースＢにはテーブルｃが格納されており、テーブルｃからそれぞれＩＤと追番１とイベントと処理時刻とを含む処理レコードを抽出する。なお、図１５では、追番属性の列が１列の例を示しているが、２列以上の場合もある。また、ＩＤとは、例えば図１０に示した「発注伝票番号」に相当するデータであり、追番１とは、図１０に示した「発注伝票明細番号」に相当するデータである。いずれの属性が、識別子及び追番に該当するかは、業務システムによって異なる。
【００３５】
そして、フローインスタンス生成部３１は、抽出した処理レコードを、ＩＤでソートし、ソート結果をフローインスタンスデータ格納部３２に格納する。ＩＤが同じということは、同じ案件についての一連の業務であることを意味する。なお、このとき、さらに処理時刻でソートする場合もある。図１５の例では、星印の付いた、ＩＤ００１の処理レコードでグループ化すると、図１６に示すようなデータが生成され、フローインスタンスデータ格納部３２に格納される。なお、ＩＤ００１以外の処理レコードについても同様にグループ化されて、フローインスタンスデータ格納部３２に格納される。
【００３６】
その後、入力部３４は、ユーザから処理対象となるフローインスタンスの選択入力を受け付け（ステップＳ３）、選択入力データをプロセス構造推定部３３に出力する。
【００３７】
プロセス構造推定部３３は、入力部３４から選択入力データを受け取る。そして、プロセス構造推定部３３の追番設定数計数部３３１は、フローインスタンスデータ格納部３２に格納されているデータに基づき、処理対象のフローインスタンスに含まれる各イベントについて、当該イベントに設定されている追番属性の数（追番設定数とも呼ぶ）を計数し、計数結果を追番設定数テーブル格納部３３４に格納する（ステップＳ５）。
【００３８】
そして、プロセス構造推定部３３は、フローインスタンスデータ格納部３２における処理対象のフローインスタンスに含まれる各イベントを処理時刻でソートする（ステップＳ７）。なお、ステップＳ１の時点で、処理時刻でソートを行っている場合には、本ステップの処理を省略可能である。
【００３９】
その後、プロセス構造推定部３３の仮想ルートデータ処理部３３２は、フローインスタンスデータ格納部３２に格納されているデータに基づき、処理対象のフローインスタンスにおいて、追番設定数が０のイベントで区切られる区間のうち未処理の区間を１つ特定する（ステップＳ９）。例えば追番設定数が０のイベントが途中に１つ存在した場合には、先頭のイベントから当該イベントまでの区間と、当該イベントから末尾のイベントまでの区間とに区切られる。従って、途中に存在する追番設定数が０のイベントは、前方の区間にも後方の区間にも属するものとして処理される。なお、追番設定数が０のイベントが途中に１つも存在しなければ、先頭のイベントから末尾のイベントまでの１区間だけとなる。
【００４０】
そして、仮想ルートデータ処理部３３２は、フローインスタンスデータ格納部３２に格納されているデータに基づき、特定した区間について仮想ルートデータを生成し、仮想ルートデータ格納部３３５に格納する（ステップＳ１１）。図１７及び図１８を用いて、本ステップの処理を説明する。
【００４１】
図１７は、フローインスタンスの一例を示しており、図１８は、図１７に示したフローインスタンスから生成される仮想ルートデータを示している。図１７の例では、イベントＡからイベントＦまでの６つのイベントが含まれている。なお、図１７の例では、各イベントは、左から右に時系列に並んでいるものとする。そして、追番属性として追番１及び追番２の２種類が存在し、追番１には、「Ｘ」又は「Ｙ」が設定され、追番２には、「ａ」又は「ｂ」が設定されている。ここで、追番属性と当該追番属性の属性値との対を全て抽出すると、「追番１＝Ｘ」「追番１＝Ｙ」「追番２＝ａ」「追番２＝ｂ」の４つの対が得られる。なお、抽出された対の総数が、ステップＳ１１において生成すべき仮想ルートデータに含まれる分岐ルートの本数となる。そして、始点と、分岐点と、合流点と、終点とを配置し、始点と分岐点とを結ぶ線と、分岐点と合流点とを結ぶ４本の分岐ルートと、合流点と終点とを結ぶ線とを設定することにより、図１８に示すような仮想ルートデータを生成する。図１８では、一番上の分岐ルートは、「追番１＝Ｘ」に対応する分岐ルートであり、上から２番目の分岐ルートは、「追番１＝Ｙ」に対応する分岐ルートであり、上から３番目の分岐ルートは、「追番２＝ａ」に対応する分岐ルートであり、一番下の分岐ルートは、「追番２＝ｂ」に対応する分岐ルートとなっている。また、始点及び終点の各々に、追番設定数が０のイベントを配置する。図１８の例では、始点にはイベントＡが配置され、終点にはイベントＦが配置されている。なお、追番設定数が０のイベントが始点又は終点に相当することになるが、追番設定数が０のイベントが、処理対象となっている区間の先頭又は末尾に存在しない場合もある。その場合には、仮想的な端点を始点又は終点として設定しておく。なお、仮想ルートデータにおけるノードは、イベントを表している（例えばノード「Ａ」は、イベントＡを表す。以下、同様。）。
【００４２】
なお、ステップＳ１１の処理を実施した後、処理は、端子Ａを介してステップＳ１３（図１９）の処理に移行する。
【００４３】
図１９の説明に移行して、端子Ａの後、イベント配置処理部３３３は、変数Ｘを１で初期化する（図１９：ステップＳ１３）。なお、以下で説明するように、本実施の形態では、追番設定数が小さなイベントから順に、仮想ルート上に各イベントを配置していく。この変数Ｘは、処理しようとしているイベントの追番設定数を表しており、後で説明するステップＳ２７において、１インクリメントされるようになっている。
【００４４】
そして、イベント配置処理部３３３は、フローインスタンスデータ格納部３２と追番設定数テーブル格納部３３４とに格納されているデータを基に、ステップＳ９（図１４）において特定された区間において、Ｘ個の追番属性が設定されているイベント（すなわち、「追番設定数＝Ｘ」のイベント）のうち未処理のイベントを処理時刻の早い順に特定する（ステップＳ１５）。例えば図１７に示したフローインスタンスの場合、変数Ｘの値が１であれば、イベントＢ及びＣが抽出される。そして、図１７の例では、イベントＢの方が処理時刻が早いので、イベントＢが先に特定され、その次にイベントＣが特定される。
【００４５】
そして、イベント配置処理部３３３は、フローインスタンスデータ格納部３２と仮想ルートデータ格納部３３５とに格納されているデータを用いて、特定したイベントについてイベント配置処理を実施する（ステップＳ１７）。なお、イベント配置処理については後で図２５及び図２６を用いて詳しく説明するが、ここで処理内容を簡単に説明しておく。
【００４６】
イベント配置処理では、所定の規則に従って、処理対象イベントの配置先を決定し、図２０に示すように、処理対象イベントを配置することにより仮想ルートデータを更新する。図２０の例では、「追番１＝Ｘ」の分岐ルート上にイベントＢが配置され、「追番１＝Ｙ」の分岐ルート上にイベントＣが配置されている。また、例えば図２１に示すように、必要に応じて、処理対象イベントを配置すべき分岐ルートを再分岐させる。図２１の例では、「追番１＝Ｘ」の分岐ルート上に新たな分岐点及び合流点が設定され、「追番２＝ａ」の分岐ルートと、「追番２＝ｂ」の分岐ルートとに再分岐するようになっている。そして、図２２に示すように、再分岐後の分岐ルート上に配置先を再設定し、処理対象イベントを配置する。図２２の例では、再分岐後の「追番２＝ａ」の分岐ルート上にイベントＤが配置され、再分岐後の「追番２＝ｂ」の分岐ルート上にイベントＥが配置されている。
【００４７】
また、詳細は後で説明するが、追番設定数が２以上のイベントについては、配置先を一意に決定することができない場合がある。そのようなイベントについては、保留イベントとして一旦記憶装置に格納しておき、「追番設定数＝Ｘ」のイベントについて一通り処理した後に、配置先を決定する。
【００４８】
なお、図２３に、仮想ルートデータにおける追番値の有効範囲と、イベントの順序性が保持される範囲とを示す。図２３において、点線枠２３０１及び２３０２は、それぞれ追番値の有効範囲を示しており、一点鎖線枠２３１１及び２３１２は、それぞれイベントの順序性が保持される範囲を示している。なお、追番値の有効範囲は、他の区間に跨らない。これは、区間が複数存在する場合、区間が変わると同じ追番値でも意味が異なってくるためである。また、同一ルート上であれば、発生順序でイベントを配置するが、別ルートにおけるイベントとの関係では、発生順序は考慮する必要はない。
【００４９】
そして、イベント配置処理（ステップＳ１７）を実施した後、イベント配置処理部３３３は、特定された区間において、「追番設定数＝Ｘ」のイベント全てについて処理が完了したか判断する（ステップＳ１９）。特定された区間において、「追番設定数＝Ｘ」のイベント全てについて処理が完了していなければ（ステップＳ１９：Ｎｏルート）、ステップＳ１５に戻り、上で述べた処理を繰り返す。
【００５０】
一方、特定された区間において、「追番設定数＝Ｘ」のイベント全てについて処理が完了した場合（ステップＳ１９：Ｙｅｓルート）、イベント配置処理部３３３は、保留イベントが存在するか判断する（ステップＳ２１）。保留イベントが存在する場合（ステップＳ２１：Ｙｅｓルート）、イベント配置処理部３３３は、保留イベントの配置先を決定し、保留イベントを配置することにより、仮想ルートデータを更新する（ステップＳ２３）。例えば、イベントＳ（追番１＝Ｚ，追番２＝ｃ）、イベントＴ（追番１＝Ｚ，追番２＝ｄ）、イベントＵ（追番１＝Ｚ，追番２＝ｄ）の３つが保留イベントとして存在した場合、３つの保留イベントにおいて「追番１＝Ｚ」が共通しているので、「追番１＝Ｚ」の分岐ルート上にまとめて配置可能と判断する。そして、「追番１＝Ｚ」の分岐ルートを、「追番２＝ｃ」の分岐ルートと「追番２＝ｄ」の分岐ルートとに再分岐させ、再分岐後の対応する分岐ルートに各保留イベントを配置する。なお、上の例では、イベントＴとイベントＵとにおいて「追番２＝ｄ」も共通しているが、より多くの保留イベントをまとめることができるパターンを優先する。その後、処理はステップＳ２５の処理に移行する。
【００５１】
一方、保留イベントが存在しなければ（ステップＳ２１：Ｎｏルート）、ステップＳ２３の処理をスキップし、ステップＳ２５の処理に移行する。
【００５２】
そして、イベント配置処理部３３３は、フローインスタンスデータ格納部３２を検索し、追番設定数がＸの値より大きいイベントが存在するか判断する（ステップＳ２５）。追番設定数がＸの値より大きいイベントが存在する場合（ステップＳ２５：Ｙｅｓルート）、イベント配置処理部３３３は、変数Ｘを１インクリメントする（ステップＳ２７）。そして、ステップＳ１５に戻り、上で述べた処理を繰り返す。
【００５３】
一方、追番設定数がＸの値より大きいイベントが存在しなければ（ステップＳ２５：Ｎｏルート）、端子Ｂを介してステップＳ２９（図２４）の処理に移行する。
【００５４】
図２４の説明に移行して、端子Ｂの後、仮想ルートデータ処理部３３２は、仮想ルートデータ格納部３３５内の仮想ルートデータにおいてイベントが未配置の分岐ルートを削除することにより、当該仮想ルートデータを更新する（図２４：ステップＳ２９）。なお、仮想ルートデータにおいて、分岐点、合流点が連続する箇所がある場合には、１つに統合する。そして、仮想ルートデータ処理部３３２は、全ての区間について処理が完了したか判断する（ステップＳ３１）。全ての区間について処理が完了していなければ（ステップＳ３１：Ｎｏルート）、端子Ｃを介してステップＳ９に戻り、未処理の区間について上で述べた処理を繰り返す。
【００５５】
一方、全ての区間について処理が完了した場合（ステップＳ３１：Ｙｅｓルート）、仮想ルートデータ処理部３３２は、区間数が２以上であるか判断し（ステップＳ３３）、区間数が２以上の場合には（ステップＳ３３：Ｙｅｓルート）、各区間の仮想ルートデータを連結する（ステップＳ３５）。例えば区間が３つ存在する場合には、１番目の区間の仮想ルートデータの終点と、２番目の区間の仮想ルートデータの始点とを連結し、さらに２番目の仮想ルートデータの終点と、３番目の仮想ルートデータの始点とを連結する。なお、例えば、１番目の区間の仮想ルートデータの終点と、２番目の区間の仮想ルートデータの始点とには、同一のイベントのノードがそれぞれ配置されているので、連結する際には、いずれかを削除するなどして、ルート上に１つのみ配置されるようにする。その後、処理はステップＳ３７の処理に移行する。
【００５６】
一方、区間数が１の場合（ステップＳ３３：Ｎｏルート）、ステップＳ３５の処理をスキップし、ステップＳ３７の処理に移行する。
【００５７】
その後、仮想ルートデータ処理部３３２は、仮想ルートデータ格納部３３５に格納されている仮想ルートデータからプロセス構造データを生成し、出力部３５に表示装置等に出力させる（ステップＳ３７）。そして、処理を終了する。
【００５８】
以上のように、追番設定数が小さいイベントから順に仮想ルートデータに配置していくことで、処理しようとするイベントについて、追番設定数が小さいイベントとの相対的な位置関係を考慮しながら、配置を決定することができるようになる。また、区間が複数存在する場合には、前の区間で使用した追番値を後の区間で使い回すようなケースが考えられるが、区間毎に仮想ルートデータを生成することで、区間が変わると同じ追番値でも別のものとして扱うことができるようになる。
【００５９】
なお、上で説明した処理フローでは、ステップＳ２９の処理を区間毎に実施するようになっているが、ステップＳ３５の処理を実施した後に、１回のみ実施するような処理フローに変更することも可能である。
【００６０】
次に、図２５及び図２６を用いて、イベント配置処理の内容を詳細に説明する。まず、イベント配置処理部３３３は、変数Ｘの値が１であるか判断する（図２５：ステップＳ５１）。そして、変数Ｘの値が１である場合（ステップＳ５１：Ｙｅｓルート）、イベント配置処理部３３３は、処理対象イベントに設定されている追番属性と当該追番属性の属性値とに従って、処理対象イベントを配置すべき分岐ルートを決定し、その分岐ルート上に処理対象イベントのノードを配置する（ステップＳ５３）。例えば仮想ルートデータは、図２０に示したようなデータに更新される。その後、処理を終了し、元の処理に戻る。
【００６１】
一方、変数Ｘの値が１ではない場合（ステップＳ５１：Ｎｏルート）、すなわち追番設定数が２以上のイベントが処理対象となっている場合、イベント配置処理部３３３は、変数ｎを１で初期化する（ステップＳ５５）。なお、追番設定数が２以上のイベントを配置する際には、既に配置されているイベントとの相対的な関係を考慮しながら、配置先を決定する。この変数ｎは、処理対象イベントの追番設定数（＝変数Ｘ）との差分を表しており、後で説明するステップＳ７３（図２６）において１インクリメントされるようになっている。
【００６２】
そして、イベント配置処理部３３３は、仮想ルートデータ格納部３３５における仮想ルートデータにおいて、Ｘ−ｎ個の追番属性が設定されているイベント（すなわち、「追番設定数＝Ｘ−ｎ」のイベント）が配置されているか判断する（ステップＳ５７）。仮想ルートデータ中に「追番設定数＝Ｘ−ｎ」のイベントが配置されていなければ（ステップＳ５７：Ｎｏルート）、端子Ｅを介してステップＳ７３（図２６）の処理に移行する。
【００６３】
一方、仮想ルートデータ中に「追番設定数＝Ｘ−ｎ」のイベントが配置されている場合（ステップＳ５７：Ｙｅｓルート）、イベント配置処理部３３３は、仮想ルートデータ中に配置されているイベントの中に、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントが存在するか判断する（ステップＳ５９）。仮想ルートデータ中に配置されているイベントの中に、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントが存在しなければ（ステップＳ５９：Ｎｏルート）、端子Ｅを介してステップＳ７３（図２６）の処理に移行する。
【００６４】
一方、仮想ルートデータ中に配置されているイベントの中に、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントが存在する場合（ステップＳ５９：Ｙｅｓルート）、イベント配置処理部３３３は、処理対象イベントが、該当するイベントに挟まれているか判断する（ステップＳ６１）。処理対象イベントが、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントに挟まれていなければ（ステップＳ６１：Ｎｏルート）、端子Ｄを介してステップＳ６７（図２６）の処理に移行する。
【００６５】
一方、処理対象イベントが、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントに挟まれている場合（ステップＳ６１：Ｙｅｓルート）、イベント配置処理部３３３は、該当するイベントが配置されている分岐ルートを、処理対象イベントを配置すべき分岐ルートとして決定し、該当するイベントの間を、処理対象イベントの配置先として決定する（ステップＳ６３）。なお、処理対象イベントを挟むイベントの組が複数存在する場合には、その複数の組の中から、処理対象イベントより先に発生したイベントであって、処理時刻が処理対象イベントに最も近いイベントを特定し、特定したイベントを含む組をステップＳ６３の処理に用いるようにする。
【００６６】
そして、イベント配置処理部３３３は、必要に応じて、配置先となる分岐ルートを再分岐させ、再分岐後の分岐ルート上に、処理対象イベントのノードを配置する（ステップＳ６５）。なお、分岐ルートを再分岐させる処理については、後で詳しく説明する。その後、処理を終了し、元の処理に戻る。
【００６７】
図２６の処理の説明に移行して、端子Ｄの後、イベント配置処理部３３３は、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントの中に、処理対象イベントより先に発生したイベントがあるか判断する（図２６：ステップＳ６７）。Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントの中に、処理対象イベントより先に発生したイベントが存在しなければ（ステップＳ６７：Ｎｏルート）、ステップＳ７３に移行する。
【００６８】
一方、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントの中に、処理対象イベントより先に発生したイベントがある場合（ステップＳ６７：Ｙｅｓルート）、イベント配置処理部３３３は、該当するイベントが配置されている分岐ルートを、処理対象イベントを配置すべき分岐ルートとして特定し、該当するイベントの後方を、処理対象イベントの配置先として決定する（ステップＳ６９）。なお、該当するイベントが複数存在する場合には、処理時刻が処理対象イベントに最も近いイベントを特定し、そのイベントをステップＳ６９の処理に用いるようにする。
【００６９】
そして、イベント配置処理部３３３は、必要に応じて、配置先となる分岐ルートを再分岐させ、再分岐後の分岐ルート上に、処理対象イベントのノードを配置する（ステップＳ７１）。なお、図２０乃至図２２を用いて、本ステップの処理を詳しく説明する。
【００７０】
例えば、図２０の仮想ルートデータは、図１７に示したフローインスタンスの場合に、「追番設定数＝１」のイベントが配置された時点のデータを示している。この後、「追番設定数＝２」のイベントＤ及びＥの処理に移行する。ここで、「追番設定数＝２」のイベントＤ及びＥは、追番１の値がイベントＢと一致しているため、イベントＢの後方が、イベントＤ及びＥの配置先として決定される。
【００７１】
その後、始点から配置先までの経路における分岐回数（すなわち、分岐点の数）が、追番設定数と等しいか判断する。ここで、追番設定数は２であるが、始点から配置先までの経路における分岐回数は、１回であるため、追番設定数未満（分岐回数＜追番設定数）であると判断される。この場合、始点から配置先までの経路における分岐回数が、追番設定数と等しくなるよう分岐ルートを再分岐させる。具体的には、始点から配置先までの経路における分岐ルートに対応付けられている追番属性を除き、残りの追番属性に従って分岐ルートを設定することにより再分岐させる。この例では、始点から配置先までの経路における分岐ルートには、「追番１＝Ｘ」が対応付けられているので、追番２についての分岐ルートを設定する。従って、図２１に示したように、「追番２＝ａ」の分岐ルートと「追番２＝ｂ」の分岐ルートとが設定される。そして、イベントＤは、追番２の値がａであるので、再分岐後の「追番２＝ａ」の分岐ルート上にイベントＤの配置先を再設定し、イベントＤを配置する。さらに、イベントＥは、追番２の値がｂであるので、再分岐後の「追番２＝ｂ」の分岐ルート上にイベントＥの配置先を再設定し、イベントＥを配置する。従って、仮想ルートデータは、図２２に示したようなデータに更新される。なお、ステップＳ６５においても、同じように再分岐させる。
【００７２】
一方、ステップＳ６７において、Ｘ−ｎ個分の追番値が処理対象イベントのものと一致するイベントの中に、処理対象イベントより先に発生したイベントがないと判断された場合（ステップＳ６７：Ｎｏルート）、又は、端子Ｅの後、処理はステップＳ７３の処理に移行する。
【００７３】
そして、イベント配置処理部３３３は、変数ｎを１インクリメントし（ステップＳ７３）、ｎ＝Ｘとなったか判断する（ステップＳ７５）。ｎ＝Ｘではない場合（ステップＳ７５：Ｎｏルート）、端子Ｇを介してステップＳ５７に戻り、上で述べた処理を繰り返す。
【００７４】
一方、ｎ＝Ｘの場合（ステップＳ７５：Ｙｅｓルート）、イベント配置処理部３３３は、処理対象イベントを保留イベントとして一旦記憶装置に格納する（ステップＳ７７）。なお、本ステップの処理は、処理対象イベントの配置先を一意に決定することができなかった場合に実施される。また、保留イベントについては、上で説明したステップＳ２３（図１９）において配置先が決定される。その後、端子Ｆを介して図２５の処理に戻った後、処理を終了し、元の処理に戻る。
【００７５】
例えば、処理対象イベントの追番設定数が３（Ｘ＝３）であった場合、１回目の処理（ｎ＝１のときの処理）では、追番設定数が２であるイベントが配置されているか判断し、さらに２個の追番値が処理対象イベントのものと一致するイベントが存在するか判断する。該当するイベントが存在しない場合、ステップＳ７３において変数ｎが１インクリメントされるが、この時点では、Ｘ＞ｎであるため、ステップＳ５７に戻る。２回目の処理（ｎ＝２のときの処理）では、追番設定数が１であるイベントが配置されているか判断し、さらに１個の追番値が処理対象イベントのものと一致するイベントが存在するか判断する。該当するイベントが存在しない場合には、変数ｎが１インクリメントされ、ｎ＝Ｘとなり、ステップＳ７７の処理に移行することとなる。
【００７６】
以上のような処理を実施することにより、処理対象イベントについて、既に仮想ルートデータ中に配置されているイベントとの相対的な関係を考慮し、適切な配置先を決定することができる。
【００７７】
なお、仮想ルートデータについては、例えばＪａｖａ（Sun Microsystems社の商標）のマップ（Ｍａｐ）のような、「キー」と「値」のペアになる要素を持つデータ構造で管理することが可能である。以下、マップデータを用いた場合の処理を説明する。
【００７８】
例えば、仮想ルートデータ格納部３３５には、図２７に示すような追番管理テーブルと、図２８に示すようなマップデータとが格納される。図２７の例では、追番管理テーブルには、追番識別子の列と、追番属性名の列と、追番値の列とが含まれる。また、図２８の例では、マップデータには、Ｋｅｙ（キー）の列と、Ｖａｌｕｅ（値）の列とが含まれる。なお、Ｖａｌｕｅの列に設定するデータには、順序性を保持できるリスト（Ｌｉｓｔ）構造のようなデータを用いる。図中における「List:[Event:A, Event:F]」は、イベントＡ、イベントＦの順にイベントが発生したことを示している。なお、図２８は、図２０に示した仮想ルートデータに対応するマップデータを示している。
【００７９】
まず、追番設定数＝０のイベントとしてイベントＡ及びＦが検出され、始点及び終点にそれぞれ配置される。ここで、図２７の追番管理テーブルにおいて、「追番なし」（図２７では、追番属性名及び追番値を「−」として示している）に対応する識別子は０となっている。従って、イベントＡ及びＦを、発生時刻順に従って、識別子「０」に対応する、マップデータ内のリストに登録する。
【００８０】
そして、追番設定数＝１のイベントとして、イベントＢ及びＣが検出され、対応する分岐ルート上に配置される。ここで、図２７の追番管理テーブルにおいて、「追番１＝Ｘ」に対応する識別子は１、「追番１＝Ｙ」に対応する識別子は２となっている。従って、イベントＢを、識別子「１」に対応する、マップデータ内のリストに登録し、イベントＣを、識別子「２」に対応する、マップデータ内のリストに登録する。
【００８１】
その後、追番設定数＝２のイベントとして、イベントＤ及びＥが検出される。そして、イベントＤ及びＥにおける「追番１＝Ｘ」は、イベントＢと一致しているので、イベントＢの後方が、配置先として決定される。その後、図２１に示したように、「追番１＝Ｘ」の分岐ルートは、「追番２＝ａ」の分岐ルートと「追番２＝ｂ」の分岐ルートとに再分岐しており、図２２に示したように、「追番２＝ａ」の分岐ルート上にイベントＤが配置され、「追番２＝ｂ」の分岐ルート上にイベントＥが配置される。なお、再分岐がなされた場合には、図２９に示すように、別のマップデータ（Ｍａｐ：００２）を生成し、元のマップデータ（Ｍａｐ：００１）内のリストに、新たに生成したマップデータを登録するようにする。図２９では、マップデータ（Ｍａｐ：００１）において、識別子１に対応するリストに、イベントＢの後に「Ｍａｐ：００２」が追加されている。なお、図２７の追番管理テーブルにおいて、「追番２＝ａ」に対応する識別子は３、「追番２＝ｂ」に対応する識別子は４となっている。従って、図２９では、マップデータ（Ｍａｐ：００２）において、イベントＤは、識別子３に対応するリストに登録され、イベントＥは、識別子４に対応するリストに登録されている。
【００８２】
なお、上で説明したデータ構造は一例であって、他のデータ構造により仮想ルートデータを管理するようにしてもよい。
【００８３】
例えば図５を用いて説明した、グループ分けを行う手法では、図７に示したフローインスタンスから業務プロセス構造を推定するのは困難であったが、本実施の形態に係る手法によれば、図３０に示すような業務プロセス構造を推定結果として出力することができる。なお、図３０に示すフローインスタンスは、図７と同じものである。以下、図３１乃至図３８を用いて、図３０に示すような推定結果に至るまでの流れを説明する。
【００８４】
図３０に示したフローインスタンスにおいて、イベントＡ、Ｆ及びＭの３つが、追番設定数＝０のイベントである。すなわち、イベントＡからイベントＦまでの第１の区間と、イベントＦからイベントＭまでの第２の区間とに分けられる。
【００８５】
まず、第１の区間におけるイベントＡ乃至Ｆに設定されている追番値は、「追番１＝１」「追番１＝２」「追番２＝ａ」「追番２＝ｂ」である。従って、第１の区間について、上で説明したステップＳ１１（図１４）の処理を実施すると、図３１に示すような仮想ルートデータが生成される。図３１では、始点と接続される１番目の分岐点から、「追番１＝１」の分岐ルートと「追番１＝２」の分岐ルートと「追番２＝ａ」の分岐ルートと「追番２＝ｂ」の分岐ルートとに分岐するようになっている。また、始点にはイベントＡが配置され、終点にはイベントＦが配置されている。
【００８６】
そして、追番設定数＝１であるイベントＢ及びＣについて処理が実施され、処理が完了すると、仮想ルートデータは、図３２に示すようなデータとなる。図３２では、「追番１＝１」の分岐ルート上にイベントＢが配置され、「追番１＝２」の分岐ルート上にイベントＣが配置されている。
【００８７】
その後、追番設定数＝２であるイベントＤ及びＥについて処理が実施される。ここで、イベントＤ及びＥについて、既に配置されているイベントＣと追番値「追番１＝２」が一致している。さらに、イベントＣは、イベントＤ及びＥより先に発生したイベントである。従って、イベントＣの後方が、イベントＤ及びＥの配置先として決定される。なお、始点から配置先までの経路における分岐回数は１回であるため、「追番１＝２」の分岐ルートを再分岐させる。具体的には、「追番２＝ａ」の分岐ルートと「追番２＝ｂ」の分岐ルートとに再分岐する２番目の分岐点と、２番目の分岐点から分岐する各分岐ルートが合流する合流点とを「追番１＝２」の分岐ルート上に追加することにより再分岐させる。そして、図３３に示すように、再分岐後の分岐ルート上にイベントＤ及びＥを配置する。図３３では、始点と接続される１番目の分岐点３３０１から、「追番１＝２」の分岐ルートを辿っていくと、２番目の分岐点３３０２が存在している。図３３において、イベントＤは、その２番目の分岐点３３０２から分岐している「追番２＝ａ」の分岐ルート上にイベントＤが配置されている。また、イベントＥは、２番目の分岐点３３０２から分岐している「追番２＝ｂ」の分岐ルート上に配置されている。ここまでの処理が第１の区間についての処理となる。
【００８８】
次に、第２の区間におけるイベントＦ乃至Ｍに設定されている追番値は、「追番１＝１」「追番１＝２」「追番２＝ａ」「追番２＝ｂ」「追番３＝Ｘ」「追番３＝Ｙ」である。従って、第２の区間について、上で説明したステップＳ１１（図１４）の処理を実施すると、図３４に示すような仮想ルートデータが生成される。図３４では、始点と接続される１番目の分岐点から、「追番１＝１」の分岐ルートと「追番１＝２」の分岐ルートと「追番２＝ａ」の分岐ルートと「追番２＝ｂ」の分岐ルートと「追番３＝Ｘ」の分岐ルートと「追番３＝Ｙ」の分岐ルートとに分岐するようになっている。また、始点にはイベントＦが配置され、終点にはイベントＭが配置されている。
【００８９】
そして、追番設定数＝１であるイベントＨ及びＩについて処理が実施され、処理が完了すると、仮想ルートデータは、図３５に示すようなデータとなる。図３５では、「追番２＝ａ」の分岐ルート上にイベントＨが配置され、「追番２＝ｂ」の分岐ルート上にイベントＩが配置されている。
【００９０】
その後、追番設定数＝２であるイベントＧ及びＬについて処理が実施される。ここで、イベントＧについて、既に配置されているイベントＨと追番値「追番２＝ａ」が一致しているが、イベントＨはイベントＧより後に発生したイベントである。従って、イベントＧは保留イベントとして一旦記憶装置に格納される。また、イベントＬについて、既に配置されているイベントの中に、追番値が一致するイベントが存在しないため、イベントＬも保留イベントとして一旦記憶装置に格納される。
【００９１】
そして、追番設定数＝２のイベントについて一通り処理が完了すると、保留イベントの処理に移行する。ここで、イベントＧ及びＬにおいて、「追番１＝２」が共通しているので、１番目の分岐点から分岐している「追番１＝２」の分岐ルート上にまとめて配置可能であると判断される。なお、始点から配置先までの経路における分岐回数は１回であるため、「追番１＝２」の分岐ルートを再分岐させる。具体的には、「追番２＝ａ」の分岐ルートと「追番２＝ｂ」の分岐ルートと「追番３＝Ｘ」の分岐ルートと「追番３＝Ｙ」の分岐ルートとに再分岐する２番目の分岐点と、２番目の分岐点から分岐している各分岐ルートが合流する合流点とを「追番１＝２」の分岐ルート上に追加することにより再分岐させる。そして、図３６に示すように、再分岐後の分岐ルート上にイベントＧ及びＬを配置する。図３６では、始点と接続される１番目の分岐点３６０１から、「追番１＝２」の分岐ルートを辿っていくと、２番目の分岐点３６０２が存在している。図３６において、イベントＧは、その２番目の分岐点３６０２から分岐している「追番２＝ａ」の分岐ルート上に配置されている。また、イベントＬは、２番目の分岐点３６０２から分岐している「追番３＝Ｙ」の分岐ルート上に配置されている。
【００９２】
その後、追番設定数＝３のイベントであるイベントＪ及びＫについて処理が実施される。ここで、イベントＪについて、既に配置されているイベントの中に、２つの追番値がイベントＪと一致するイベントは存在しない。なお、イベントＥは、２つの追番値がイベントＪと一致しているが、別区間のイベントであるため、ここでは考慮されない。一方で、１つの追番値がイベントＪと一致するイベントとしては、イベントＧとイベントＩがある。ここで、イベントＧもイベントＩも、イベントＪより先に発生したイベントであるが、処理時刻がイベントＪに近いのは、イベントＩである。従って、イベントＩの後方が、イベントＪの配置先として決定される。なお、始点から配置先までの経路における分岐回数は１回であるため、分岐回数が追番設定数と等しくなるよう「追番２＝ｂ」の分岐ルートを再分岐させる。具体的には、「追番１＝１」の分岐ルートと「追番１＝２」の分岐ルートと「追番３＝Ｘ」の分岐ルートと「追番３＝Ｙ」の分岐ルートとに再分岐する２番目の分岐点と、２番目の分岐点から分岐している各分岐ルートが合流する合流点とを「追番２＝ｂ」の分岐ルート上に追加することにより再分岐させる。さらに、２番目の分岐点から分岐している「追番１＝２」の分岐ルートをさらに再分岐させる。具体的には、「追番３＝Ｘ」の分岐ルートと「追番３＝Ｙ」の分岐ルートとに再分岐する３番目の分岐点と、３番目の分岐点から分岐している各分岐ルートが合流する合流点とを「追番１＝２」の分岐ルート上に追加することにより再分岐させる。そして、図３７に示すように、再分岐後の分岐ルート上にイベントＪを配置する。図３７では、始点と接続される１番目の分岐点３７０１から、「追番２＝ｂ」の分岐ルートを辿っていくと、２番目の分岐点３７０２が存在している。そして、２番目の分岐点３７０２から、「追番１＝２」の分岐ルートを辿っていくと、３番目の分岐ルート３７０３ａが存在している。図３７において、イベントＪは、その３番目の分岐点３７０３ａから分岐している「追番３＝Ｘ」の分岐ルート上に配置されている。
【００９３】
また、イベントＫについても、既に配置されているイベントの中に、２つの追番値がイベントＫと一致するイベントは存在しない。一方で、１つの追番値がイベントＫと一致するイベントとしては、イベントＩとイベントＬがある。但し、イベントＬは、イベントＫより後に発生したイベントであるため、ここでは、イベントＩの後方が、イベントＬの配置先として決定される。なお、イベントＫは、「追番１＝１」であるので、図３７に示した２番目の分岐点３７０２から分岐している「追番１＝１」の分岐ルートを再分岐させ、再分岐後の分岐ルート上に配置する。具体的には、図３７に示すように、「追番３＝Ｘ」の分岐ルートと「追番３＝Ｙ」の分岐ルートとに再分岐する３番目の分岐点３７０３ｂと、３番目の分岐点３７０３ｂから分岐している各分岐ルートが合流する合流点とを「追番１＝１」の分岐ルート上に追加することにより再分岐させる。図３７において、イベントＫは、３番目の分岐点３７０３ｂから分岐している「追番３＝Ｙ」の分岐ルート上に配置されている。なお、ここまでの処理が第２の区間についての処理となる。
【００９４】
そして、第１の区間の仮想ルートデータ（図３３）と、第２の区間の仮想ルートデータ（図３７）とを連結すると、図３８に示すような仮想ルートデータとなる。なお、イベントＦは、第１の区間の仮想ルートデータの終点と、第２の区間の仮想ルートデータの始点とに配置されているが、いずれかを削除するなどして、１つのみ配置する。そして、図３８に示した仮想ルートデータから、イベントが配置されていない分岐ルートを削除したり、連続する分岐点、合流点を１つに統合したりして整理すると、最終的に図３０に示したような業務プロセス構造のデータを生成することができる。
【００９５】
このように、本実施の形態に係る手法によれば、並列実施されたイベントと追番との関係が複雑になった場合や、追番値を使い回すような場合でも、適切に業務プロセス構造を推定できるようになる。
【００９６】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図１２に示したプロセス構造推定装置３０の機能ブロックは必ずしも実際のプログラムモジュール構成と一致するわけではない。データ格納部の構成も同様に一例にすぎない。
【００９７】
また、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしてもよい。
【００９８】
なお、上で述べたプロセス構造推定装置３０は、コンピュータ装置であって、図３９に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９９】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１００】
第１の態様に係るプロセス構造推定方法は、業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部に格納されている各イベントについて、当該イベントに設定されている属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数するステップ（図４０：Ｓ１００１）と、追番属性が設定されていないイベントに相当する始点及び終点と、追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ始点と接続される分岐点と、分岐ルートが合流し且つ終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成ステップ（図４０：Ｓ１００３）と、追番属性が設定されているイベントである追番設定イベントについて、設定されている追番属性の数が小さい追番設定イベントから順に、当該追番設定イベントに設定されている追番属性及び当該追番属性の属性値と処理時刻とから、所定のルールに従って、仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき仮想ルートデータを更新する更新ステップ（図４０：Ｓ１００５）とを含む。
【０１０１】
このようにすれば、追番属性の数が小さいイベントから順にイベントの配置を決定していくので、処理対象のイベントより追番属性の数が小さいイベントがあれば、そのようなイベントの位置が決まっている状態で、処理対象のイベントの配置を決定することになる。すなわち、処理対象イベントより追番属性の数が小さいイベントとの相対的な位置関係を考慮しながら、処理対象のイベントの配置を決定することができるようになる。例えば次々と再分岐が繰り返され、分岐の段数が多くなる場合でも、追番属性に従ってプロセス構造を推定できる。
【０１０２】
第１の態様において、上で述べた仮想ルートデータ生成ステップの前に、先頭イベント及び末尾イベント以外のイベントの中に追番属性が設定されていないイベントが存在するか判断するステップをさらに含むようにしてもよい。そして、先頭イベント及び末尾イベント以外のイベントの中に追番属性が設定されていないイベントが存在する場合には、追番属性が設定されていないイベントで区切られる区間毎に仮想ルートデータ生成ステップ以降のステップを実施し、各区間の仮想ルートデータを連結するようにしてもよい。
【０１０３】
例えば全ての分岐ルートが一旦合流し、新たに分岐するような場合、合流の前後で同じ追番属性が使われる可能性があり、この場合、合流の前後では、意味が異なるものとして処理する必要がある。先頭及び末尾のイベント以外に、追番属性が未設定のものがあるか判断することで、全ての分岐ルートが一旦合流しているか判断できる。そして、先頭及び末尾のイベント以外に追番属性が未設定のイベントがある場合には、そのイベントで区切られる区間毎に処理が実施されるので、同じ追番属性が複数区間で使われていても、意味が異なるものとしてプロセス構造を推定できるようになる。
【０１０４】
また、上で述べた更新ステップが、処理対象の追番設定イベントに設定されている追番属性の数が１の場合、仮想ルートデータにおいて、処理対象の追番設定イベントに設定されている追番属性と当該追番属性の属性値との対に対応する分岐ルートを特定し、特定された分岐ルート上に処理対象の追番設定イベントを表すノードを配置するステップを含むようにしてもよい。追番属性の数が１のイベントについては、追番属性及び当該追番属性の属性値から、配置先となる分岐ルートを一意に特定できる。
【０１０５】
さらに、上で述べた更新ステップが、処理対象の追番設定イベントに設定されている追番属性の数が２以上の場合、追番属性の数が処理対象の追番設定イベントより小さく且つ処理時刻が処理対象の追番設定イベントより早い追番設定イベントの中に、処理対象の追番設定イベントに設定されている追番属性と当該追番属性の属性値との対のいずれかと同一の対を少なくとも１つ含む追番設定イベントである対応付け候補イベントが存在するか判断するステップと、対応付け候補イベントが存在すると判断された場合、処理対象の追番設定イベントと同一の対を最も多く含む対応付け候補イベントを対応付けイベントとして特定し、特定された対応付けイベントの後方を、処理対象の追番設定イベントの配置先として決定する配置先決定ステップと、始点から配置先までの経路における分岐回数が処理対象の追番設定イベントに設定されている追番属性の数より小さいか判断し、小さいと判断された場合には、始点から配置先までの経路における分岐回数が処理対象の追番設定イベントに設定されている追番属性の数と等しくなるよう分岐ルートを再分岐させ、再分岐後の分岐ルート上に処理対象の追番設定イベントの配置先を再設定するステップと、処理対象の追番設定イベントを表すノードを配置先に配置するステップとを含むようにしてもよい。このようにすれば、追番属性が２以上のイベントの配置先を適切に決定することができる。なお、対応付けイベントは、処理対象イベントに先立って実施されたものとみなされるイベントである。
【０１０６】
また、上で述べた配置先決定ステップが、対応付けイベントと同一の追番属性及び当該追番属性の属性値を含む追番設定イベントが存在するか判断し、該当する追番設定イベントが存在する場合には、対応付けイベントと、該当する追番設定イベントとの間を、処理対象の追番設定イベントの配置先として決定するステップを含むようにしてもよい。なお、対応付けイベントと同一の追番属性及び当該追番属性の属性値を持つイベントがあった場合、処理対象イベントは、対応付けイベントと、そのイベントとの間で発生したものと推定されるため、対応付けイベントと、そのイベントとの間に配置するのが好ましい。
【０１０７】
さらに、上で述べた配置先決定ステップにおいて、対応付けイベントが複数存在する場合には、処理時刻が処理対象の追番設定イベントに最も近い対応付けイベントを優先するようにしてもよい。
【０１０８】
第２の態様に係るプロセス構造推定装置は、業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部（図４１：１５０１）と、データ格納部に格納されている各イベントについて、当該イベントに設定されている属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数する追番設定数計数手段（図４１：追番設定数計数部１５０３）と、追番属性が設定されていないイベントに相当する始点及び終点と、追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ始点と接続される分岐点と、分岐ルートが合流し且つ終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成手段（図４１：仮想ルートデータ生成部１５０５）と、追番属性が設定されているイベントである追番設定イベントについて、設定されている追番属性の数が小さい追番設定イベントから順に、当該追番設定イベントに設定されている追番属性及び当該追番属性の属性値と処理時刻とから、所定のルールに従って、仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき仮想ルートデータを更新する仮想ルートデータ更新手段（図４１：仮想ルートデータ更新部１５０７）とを有する。
【０１０９】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【０１１０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１１】
（付記１）
業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部に格納されている各前記イベントについて、当該イベントに設定されている前記属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数するステップと、
前記追番属性が設定されていない前記イベントに相当する始点及び終点と、前記追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ前記始点と接続される分岐点と、前記分岐ルートが合流し且つ前記終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成ステップと、
前記追番属性が設定されている前記イベントである追番設定イベントについて、設定されている前記追番属性の数が小さい前記追番設定イベントから順に、当該追番設定イベントに設定されている前記追番属性及び当該追番属性の属性値と前記処理時刻とから、所定のルールに従って、前記仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき前記仮想ルートデータを更新する更新ステップと、
を含み、コンピュータにより実行されるプロセス構造推定方法。
【０１１２】
（付記２）
前記仮想ルートデータ生成ステップの前に、先頭イベント及び末尾イベント以外の前記イベントの中に前記追番属性が設定されていない前記イベントが存在するか判断するステップ
をさらに含み、
前記先頭イベント及び末尾イベント以外の前記イベントの中に前記追番属性が設定されていない前記イベントが存在する場合、前記追番属性が設定されていない前記イベントで区切られる区間毎に前記仮想ルートデータ生成ステップ以降のステップを実施し、各前記区間の前記仮想ルートデータを連結する
付記１記載のプロセス構造推定方法。
【０１１３】
（付記３）
前記更新ステップが、
処理対象の前記追番設定イベントに設定されている前記追番属性の数が１の場合、前記仮想ルートデータにおいて、処理対象の前記追番設定イベントに設定されている前記追番属性と当該追番属性の属性値との対に対応する前記分岐ルートを特定し、特定された前記分岐ルート上に処理対象の前記追番設定イベントを表すノードを配置するステップ
を含む付記１又は２記載のプロセス構造推定方法。
【０１１４】
（付記４）
前記更新ステップが、
処理対象の前記追番設定イベントに設定されている前記追番属性の数が２以上の場合、前記追番属性の数が処理対象の前記追番設定イベントより小さく且つ前記処理時刻が処理対象の前記追番設定イベントより早い前記追番設定イベントの中に、処理対象の前記追番設定イベントに設定されている前記追番属性と当該追番属性の属性値との対のいずれかと同一の対を少なくとも１つ含む前記追番設定イベントである対応付け候補イベントが存在するか判断するステップと、
前記対応付け候補イベントが存在すると判断された場合、処理対象の前記追番設定イベントと同一の対を最も多く含む前記対応付け候補イベントを対応付けイベントとして特定し、特定された前記対応付けイベントの後方を、処理対象の前記追番設定イベントの配置先として決定する配置先決定ステップと、
前記始点から前記配置先までの経路における分岐回数が処理対象の前記追番設定イベントに設定されている前記追番属性の数より小さいか判断し、小さいと判断された場合には、前記始点から前記配置先までの経路における分岐回数が処理対象の前記追番設定イベントに設定されている前記追番属性の数と等しくなるよう前記分岐ルートを再分岐させ、再分岐後の分岐ルート上に処理対象の前記追番設定イベントの前記配置先を再設定するステップと、
処理対象の前記追番設定イベントを表すノードを前記配置先に配置するステップと、
を含む付記１乃至３のいずれか１つ記載のプロセス構造推定方法。
【０１１５】
（付記５）
前記配置先決定ステップが、
前記対応付けイベントと同一の前記追番属性及び当該追番属性の属性値を含む前記追番設定イベントが存在するか判断し、該当する前記追番設定イベントが存在する場合には、前記対応付けイベントと、該当する前記追番設定イベントとの間を、処理対象の前記追番設定イベントの前記配置先として決定するステップ
を含む付記４記載のプロセス構造推定方法。
【０１１６】
（付記６）
前記配置先決定ステップにおいて、前記対応付けイベントが複数存在する場合には、前記処理時刻が処理対象の前記追番設定イベントに最も近い前記対応付けイベントを優先する
付記４又は５記載のプロセス構造推定方法。
【０１１７】
（付記７）
業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部に格納されている各前記イベントについて、当該イベントに設定されている前記属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数するステップと、
前記追番属性が設定されていない前記イベントに相当する始点及び終点と、前記追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ前記始点と接続される分岐点と、前記分岐ルートが合流し且つ前記終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成ステップと、
前記追番属性が設定されている前記イベントである追番設定イベントについて、設定されている前記追番属性の数が小さい前記追番設定イベントから順に、当該追番設定イベントに設定されている前記追番属性及び当該追番属性の属性値と前記処理時刻とから、所定のルールに従って、前記仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき前記仮想ルートデータを更新する更新ステップと、
をコンピュータに実行させるためのプロセス構造推定プログラム。
【０１１８】
（付記８）
業務システムにおいて実施され且つ特定のプロセスに係るイベント毎に当該イベントの属性の属性値と処理時刻とを格納するデータ格納部と、
前記データ格納部に格納されている各前記イベントについて、当該イベントに設定されている前記属性のうち、並列実施されたイベントに対して設定され且つ追番とみなされる追番属性の数を計数する追番設定数計数手段と、
前記追番属性が設定されていない前記イベントに相当する始点及び終点と、前記追番属性と当該追番属性の属性値との全ての対の各々に対応する分岐ルートに分岐し且つ前記始点と接続される分岐点と、前記分岐ルートが合流し且つ前記終点と接続される合流点とを含む仮想ルートデータを生成する仮想ルートデータ生成手段と、
前記追番属性が設定されている前記イベントである追番設定イベントについて、設定されている前記追番属性の数が小さい前記追番設定イベントから順に、当該追番設定イベントに設定されている前記追番属性及び当該追番属性の属性値と前記処理時刻とから、所定のルールに従って、前記仮想ルートデータにおいて当該追番設定イベントを配置すべき分岐ルートを決定し、当該決定に基づき前記仮想ルートデータを更新する仮想ルートデータ更新手段と、
を有するプロセス構造推定装置。
【符号の説明】
【０１１９】
１０  ネットワーク    ３０  プロセス構造推定装置    ５０  業務システム
３１  フローインスタンス生成部    ３２  フローインスタンスデータ格納部
３３  プロセス構造推定部    ３４  入力部    ３５  出力部
３３１  追番設定数計数部    ３３２  仮想ルートデータ処理部
３３３  イベント配置処理部    ３３４  追番設定数テーブル格納部
３３５  仮想ルートデータ格納部
【図１】
2011100238.tif 000003
【図２】
2011100238.tif 000004
【図３】
2011100238.tif 000005
【図４】
2011100238.tif 000006
【図５】
2011100238.tif 000007
【図６】
2011100238.tif 000008
【図７】
2011100238.tif 000009
【図８】
2011100238.tif 000010
【図９】
2011100238.tif 000011
【図１０】
2011100238.tif 000012
【図１１】
2011100238.tif 000013
【図１２】
2011100238.tif 000014
【図１３】
2011100238.tif 000015
【図１４】
2011100238.tif 000016
【図１５】
2011100238.tif 000017
【図１６】
2011100238.tif 000018
【図１７】
2011100238.tif 000019
【図１８】
2011100238.tif 000020
【図１９】
2011100238.tif 000021
【図２０】
2011100238.tif 000022
【図２１】
2011100238.tif 000023
【図２２】
2011100238.tif 000024
【図２３】
2011100238.tif 000025
【図２４】
2011100238.tif 000026
【図２５】
2011100238.tif 000027
【図２６】
2011100238.tif 000028
【図２７】
2011100238.tif 000029
【図２８】
2011100238.tif 000030
【図２９】
2011100238.tif 000031
【図３０】
2011100238.tif 000032
【図３１】
2011100238.tif 000033
【図３２】
2011100238.tif 000034
【図３３】
2011100238.tif 000035
【図３４】
2011100238.tif 000036
【図３５】
2011100238.tif 000037
【図３６】
2011100238.tif 000038
【図３７】
2011100238.tif 000039
【図３８】
2011100238.tif 000040
【図３９】
2011100238.tif 000041
【図４０】
2011100238.tif 000042
【図４１】
2011100238.tif 000043