(57)【要約】  業務フローに含まれる業務の並列実施部分を特定するために、処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得する工程と、業務レコードを、識別子に基づきグループ化すると共に処理時刻に基づきグループ内でソートする工程と、業務レコードに含まれる処理時刻が１時点のみを表す場合には、グループ内の業務レコードにおける処理時刻のシーケンスに基づき、各業務レコードについて処理時間を算出する工程と、算出された処理時間の、業務種別毎の分布に基づき、並列実施された業務に係る業務レコードを特定する工程と、グループ毎に、並列実施業務特定ステップの処理結果と当該グループ内の業務レコードとから、当該グループの業務フローを特定する工程とが実施される。
2009098766.tif 000002
【特許請求の範囲】
【請求項１】
処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得するステップと、
前記業務レコードを、前記識別子に基づきグループ化すると共に前記処理時刻に基づきグループ内でソートするステップと、
前記業務レコードに含まれる前記処理時刻が１時点のみを表す場合には、前記グループ内の前記業務レコードにおける前記処理時刻のシーケンスに基づき、各前記業務レコードについて処理時間を算出する処理時間算出ステップと、
算出された前記処理時間の、前記業務種別毎の分布に基づき、並列実施された業務に係る前記業務レコードを特定する並列実施業務特定ステップと、
前記グループ毎に、前記並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定するステップと、
を、コンピュータに実行させるための業務フロー処理プログラム。
【請求項２】
前記処理時間算出ステップが、
前記処理時刻が開始時刻である場合における各前記業務レコードについての第１の仮処理時間と、前記処理時刻が終了時刻である場合における各前記業務レコードについての第２の仮処理時間とを算出するステップと、
前記業務種別毎に、前記第１の仮処理時間のばらつきを表す指標値と前記第２の仮処理時間のばらつきを表す指標値とを算出するステップと、
前記業務種別毎に、前記第１の仮処理時間のばらつきを表す指標値と前記第２の仮処理時間のばらつきを表す指標値とを比較して、前記処理時刻が前記開始時刻であるか又は前記終了時刻であるか統計的に判断するステップと、
を含む請求項１記載の業務フロー処理プログラム。
【請求項３】
前記並列実施業務特定ステップが、
前記業務種別毎に、算出された前記処理時間の分布において複数のピークが存在するか判断し、当該複数のピークが存在する業務種別を並列実施される業務種別として特定するステップと、
前記並列実施される業務処理について、前記複数のピークのうち最も前記処理時間が長いピークについての前記処理時間を、みなし処理時間として特定するステップと、
各前記業務レコードについて、当該業務レコードにおける前記処理時刻と前記みなし処理時間と当該業務レコードのグループにおける他の業務レコードの前記処理時刻とを用いて、並列実施された業務に係る業務レコードであるか判断するステップと、
を含む、請求項１記載の業務フロー処理プログラム。
【請求項４】
前記業務レコードに含まれる前記処理時刻が終了時刻及び開始時刻を含む場合、各前記グループについて、前記業務レコードに含まれる前記終了時刻及び前記開始時刻に基づき、並列実施された業務に係る業務レコードを特定する第２並列実施業務特定ステップと、
前記グループ毎に、前記第２並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定するステップと、
をさらに前記コンピュータに実行させるための請求項１記載の業務フロー処理プログラム。
【請求項５】
処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得するステップと、
前記業務レコードを、前記識別子に基づきグループ化すると共に前記処理時刻に基づきグループ内でソートするステップと、
前記業務レコードに含まれる前記処理時刻が１時点のみを表す場合には、前記グループ内の前記業務レコードにおける前記処理時刻のシーケンスに基づき、各前記業務レコードについて処理時間を算出する処理時間算出ステップと、
算出された前記処理時間の、前記業務種別毎の分布に基づき、並列実施された業務に係る前記業務レコードを特定する並列実施業務特定ステップと、
前記グループ毎に、前記並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定するステップと、
を含み、コンピュータにより実行される業務フロー処理方法。
【請求項６】
処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得する手段と、
前記業務レコードを、前記識別子に基づきグループ化すると共に前記処理時刻に基づきグループ内でソートする手段と、
前記業務レコードに含まれる前記処理時刻が１時点のみを表す場合には、前記グループ内の前記業務レコードにおける前記処理時刻のシーケンスに基づき、各前記業務レコードについて処理時間を算出する処理時間算出手段と、
算出された前記処理時間の、前記業務種別毎の分布に基づき、並列実施された業務に係る前記業務レコードを特定する並列実施業務特定手段と、
前記グループ毎に、前記並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定する手段と、
を有する業務フロー処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースから業務フローを抽出する技術に関し、より詳しくは業務処理の並列実施部分を検出可能な業務フロー処理技術に関する。
【背景技術】
【０００２】
例えば特開２００５−１１５４９４号公報には、業務プロセストラッキング装置に関し，異なる業務システム間を跨いで行われる複数のアプリケーションからなる業務プロセスの流れを、既存システムを変更することなく追跡することを可能とする技術が開示されている。具体的には、イベント管理装置は，各業務システムのイベント抽出部がイベント抽出定義に基づいて抽出したイベントデータを収集し、イベントキューにキューイングする。イベント関連付け部は、イベントデータを業務データ単位にまとめ、業務データ間の関連付けを行ってイベント管理ＤＢに蓄積する。ユーザ端末から検索条件が入力されると、出力部が検索条件に従ってイベント管理ＤＢを検索し、業務データ間の関連をツリー形式でユーザ端末に出力し表示する。【０００３】
しかしながら、上で述べた技術では、イベント管理ＤＢに、図１に示すようなデータが格納されていると、単純に処理時刻を時系列に並べて図２に示すような、処理Ａ、処理Ｂ、処理Ｃ及び処理Ｄといった直列的な業務フローを生成してしまう。しかしながら、実際には、図３に示すような、処理Ａの後に、処理Ｂ及び処理Ｃが並列実施され、さらにその後処理Ｄが実施されているかもしれないが、それを確認することができなかった。
【特許文献１】特開２００５−１１５４９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、本発明の目的は、データベースから業務フローを抽出する際に、業務処理の並列実施部分を検出できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００５】
本発明に係る業務フロー処理方法は、処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得するステップ（例えば、データベースから抽出したデータで業務レコードを生成する場合も含む。）と、業務レコードを、識別子に基づきグループ化すると共に処理時刻に基づきグループ内でソートするステップと、業務レコードに含まれる処理時刻が１時点のみを表す場合には、グループ内の業務レコードにおける処理時刻のシーケンスに基づき、各業務レコードについて処理時間を算出する処理時間算出ステップと、算出された処理時間の、業務種別毎の分布に基づき、並列実施された業務に係る業務レコードを特定する並列実施業務特定ステップと、グループ毎に、並列実施業務特定ステップの処理結果と当該グループ内の業務レコードとから、当該グループの業務フローを特定するステップとを含む。なお、グループの業務フローを重ね合わせて出力する場合もある。【０００６】
このような処理を実施することによって、処理時刻が１時点記録であっても、並列実施された業務に係る業務レコードを特定することができるようになるので、図３に示したような並列実施部分を含む業務フローなのか図２に示したような直列的な業務フローなのかを特定することができるようになる。【０００７】
また、上で述べた処理時間算出ステップは、処理時刻が開始時刻である場合における各業務レコードについての第１の仮処理時間と、処理時刻が終了時刻である場合における各業務レコードについての第２の仮処理時間とを算出するステップと、業務種別毎に、第１の仮処理時間のばらつきを示す指標値と第２の仮処理時間のばらつきを示す指標値とを算出するステップと、業務種別毎に、第１の仮処理時間のばらつきを示す指標値と第２の仮処理時間のばらつきを示す指標値とを比較して、処理時刻が開始時刻であるか又は終了時刻であるか統計的に判断するステップとを含むようにしてもよい。１時点記録の場合には、処理時刻が開始時刻か終了時刻のいずれかであるが、上で述べたように正しい方を特定しなければ、正しい処理時間を算出することができない。ここでは、開始時刻として算出した第１の仮処理時間のばらつきと、終了時刻として算出した第２の仮処理時間のばらつきとで、小さい方を正しいものとして判断し、そして複数の業務種別について終了時刻が正しいとされた回数と開始時刻が正しいとされた回数とをカウントすれば、開始時刻か終了時刻かを正しく判断でき、さらに正しい処理時間を算出することができるようになる。【０００８】
さらに、上で述べた並列実施業務特定ステップは、業務種別毎に、算出された処理時間の分布において複数のピークが存在するか判断し、当該複数のピークが存在する業務種別を並列実施される業務種別として特定するステップと、並列実施される業務処理について、複数のピークのうち最も処理時間が長いピークについての処理時間を、みなし処理時間として特定するステップと、各業務レコードについて、当該業務レコードにおける処理時刻とみなし処理時間と当該業務レコードのグループにおける他の業務レコードの処理時刻とを用いて、並列実施された業務に係る業務レコードであるか判断するステップとを含むようにしてもよい。なお、単一ピークの場合には、並列実施されることのない業務種別であることを表している。従って、並列実施されるか否かを判断する必要はない。一方、複数ピークの場合には、単純にグループ内における処理時刻の差では正しい処理時間を得ることができないので、複数のピークのうち最も処理時間が長いピークについての処理時間を、みなし処理時間として特定して、当該みなし処理時間に基づき並列実施の有無を判断する。なお、処理負荷を減らすために、みなし処理時間より短い処理時間が特定された業務レコードについてのみ並列実施の有無を判断するようにしてもよい。【０００９】
さらに、本発明において、業務レコードに含まれる処理時刻が終了時刻及び開始時刻を含む場合、各グループについて、業務レコードに含まれる終了時刻及び開始時刻に基づき、並列実施された業務に係る業務レコードを特定する第２並列実施業務特定ステップと、グループ毎に、第２並列実施業務特定ステップの処理結果と当該グループ内の業務レコードとから、当該グループの業務フローを特定するステップとをさらに含むようにしても良い。２時点記録の場合には、開始時刻及び終了時刻から正確に処理時間を特定でき、並列実施も特定することができる。なお、グループの業務フローを重ね合わせることもある。【００１０】
上で述べた業務フロー処理方法をコンピュータに実行させるためのプログラムを作成することができ、このプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメモリ等の記憶装置に一時保管される。
【図面の簡単な説明】
【００１１】
【図１】図１は、業務レコードの一例を示す図である。
【図２】図２は、直列実施と仮定した場合における業務フローを示す図である。
【図３】図３は、並列実施がなされている場合における業務フローを示す図である。
【図４】図４は、本発明の実施の形態に係る業務フロー処理装置の機能ブロック図である。
【図５】図５は、本発明の実施の形態に係る処理フローの第１の部分を示す図である。
【図６】図６は、データ収集処理を模式的に示す図である。
【図７】図７は、ソート結果格納部に格納されるデータの一例を示す図である。
【図８】図８は、２時点記録の場合におけるソート結果格納部に格納されるデータの一例を示す図である。
【図９】図９は、図８を模式的に示した図である。
【図１０】図１０は、２時点記録の場合におけるソート結果格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、図１０を模式的に示した図である。
【図１２】図１２は、２時点記録の場合におけるソート結果格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、図１２を模式的に示した図である。
【図１４】図１４は、図８の場合の管理テーブルを示す図である。
【図１５】図１５は、図１０の場合の管理テーブルを示す図である。
【図１６】図１６は、図１２の場合の管理テーブルを示す図である。
【図１７】図１７は、本発明の実施の形態に係る処理フローの第２の部分を示す図である。
【図１８】図１８は、開始時刻記録が行われ、業務処理が直列実施される場合の業務処理のフローを模式的に示す図である。
【図１９】図１９は、終了時刻記録が行われ、業務処理が直列実施される場合の業務処理のフローを模式的に示す図である。
【図２０】図２０は、開始時刻記録が行われ、業務処理が並列実施される場合の業務処理のフローを模式的に示す図である。
【図２１】図２１は、終了時刻記録が行われ、業務処理が並列実施される場合の業務処理のフローを模式的に示す図である。
【図２２】図２２は、記録方法判定処理の処理フローを示す図である。
【図２３】図２３は、記録方法判定処理を模式的に示した図である。
【図２４】図２４は、記録方法判定処理の処理フローを示す図である。
【図２５】図２５は、業務処理の直列実施の一例を示す図である。
【図２６】図２６は、業務処理の並列実施の一例を示す図である。
【図２７】図２７は、業務処理の並列実施の他の例を示す図である。
【図２８】図２８は、業務処理の直列実施のみが存在する場合における処理時間のヒストグラムの例を示す図である。
【図２９】図２９は、業務処理の直列実施と並列実施の両方が存在する場合における処理時間のヒストグラムの例を示す図である。
【図３０】図３０は、本発明の実施の形態に係る処理フローの第３の部分を示す図である。
【図３１】図３１は、業務処理の並列実施が含まれる場合の一例を示す図である。
【図３２】図３２は、並列実施される業務処理を特定するための処理を模式的に示した図である。
【図３３】図３３は、管理テーブルの一例を示す図である。
【図３４】図３４は、業務フローの従来例を示す図である。
【図３５】図３５は、本発明の実施の形態を実施した場合における業務フローの一例を示す図である。
【図３６】図３６は、コンピュータの機能ブロック図である。
【本発明を実施するための最良の形態】
【００１２】
図４に、本発明の一実施の形態に係る業務フロー処理装置１００の機能ブロック図を示す。業務フロー処理装置１００は、例えばデータベースＡ及びＢといった１又は複数の解析対象データベースに接続しているものとする。また、業務フロー処理装置１００は、解析対象のデータベースＡ及びＢからデータを収集する処理を実施するデータ収集部１０１と、データ収集部１０１によって収集されたデータを格納する収集データ格納部１０２と、収集データ格納部１０２に格納されているデータを識別子及び処理時刻でソートする処理を実施するソート処理部１０３と、ソート処理部１０３の処理結果を格納するソート結果格納部１０４と、ソート結果格納部１０４に格納されているデータを用いて処理を実施する第１重複部分抽出部１０５と、ソート結果格納部１０４に格納されているデータを用いて処理時刻の記録方法を特定する処理を実施する記録方法特定部１０７と、記録方法特定部１０７における処理途中のデータを格納する仮処理時間データ格納部１０８と、記録方法特定部１０７からの出力及びソート結果格納部１０４に格納されているデータを用いて処理を実施する第２重複部分抽出部１０９と、第２重複部分抽出部１０９における処理途中のデータを格納する処理時間データ格納部１１０と、第１重複部分抽出部１０５又は第２重複部分抽出部１０９の処理結果である管理テーブルを格納する管理テーブル格納部１０６と、ソート結果格納部１０４に格納されているデータ及び管理テーブル格納部１０６に格納されている管理テーブルを用いて、プロセスインスタンス（業務フローの一例）やプロセスインスタンスを重ね合わせた業務フローを出力する出力部１１１とを有する。
【００１３】
次に、図５乃至図３５を用いて、業務フロー処理装置１００の処理内容について説明する。最初に、データ収集部１０１は、解析対象のデータベースＡ及びＢから業務フローを生成する上で必要となる業務レコードを抽出するデータ収集処理を実施し、収集されたレコード・データを収集データ格納部１０２に格納する（図５：ステップＳ１）。例えば、図６に模式的に示すが、データベースＡにはテーブルａ及びｂが格納されており、テーブルａからそれぞれ識別子と処理種別と処理時刻とを含む業務レコードを抽出し、同様にテーブルｂからそれぞれ識別子と処理種別と処理時刻とを含む業務レコードを抽出する。また、データベースＢにはテーブルｃが格納されており、テーブルｃからそれぞれ識別子と処理種別と処理時刻とを含む業務レコードを抽出する。なお、テーブルａ乃至ｃの１レコードに、識別子と処理種別と処理時刻とのうちいずれかの列が含まれない場合には、データ収集部１０１が、例えば処理種別をテーブル名から取得するなどして、図６の右側に示すように、識別子と処理種別と処理時刻とを含む業務レコードを構成して、収集データ格納部１０２に格納するものとする。なお、ここでは処理時刻は１時点記録の例を示しているが、以下で述べるように開始時刻及び終了時刻を記録する２時点記録の場合もある。その場合には、処理時刻には２つの時刻が含まれることになる。
【００１４】
次に、ソート処理部１０３は、収集データ格納部１０２に格納されている業務レコードを、識別子及び処理時刻でソートし、ソート結果をソート結果格納部１０４に格納する（ステップＳ３）。識別子が同じということは、同じ案件についての一連の業務であることを意味しており、識別子で業務レコードをグループ化し、処理時刻で業務レコードをソートすることによって業務の実施の順番を特定する。図６の例では、星印の付いた、識別子がＩＤ００１の業務レコードでグループ化し、処理時刻を早い順に並べると、図７に示すようなデータが生成され、ソート結果格納部１０４に格納される。なお、識別子ＩＤ００１以外の業務レコードについても同様にグループ化されソートされて、ソート結果格納部１０４に格納される。ステップＳ３におけるグループ化によって構成されるグループを業務グループということとする。
【００１５】
そして、第１重複部分抽出部１０５及び記録方法特定部１０７は、ソート結果格納部１０４に格納されているデータから、処理時刻は２時点記録であるか否かを判断する（ステップＳ５）。終了時刻及び開始時刻が処理時刻として記録されているか否かが判断される。ここで、１時点記録と判断されれば、第１重複部分抽出部１０５は処理を行わず、端子Ａを介して図１７の処理に移行する。
【００１６】
一方、処理時刻が２時点記録である場合には、第１重複部分抽出部１０５は、ソート結果格納部１０４に格納されている業務レコードに含まれる識別子のうち未処理の識別子を１つ特定する（ステップＳ７）。そして、特定された識別子に関連する業務処理（具体的には同一業務グループの業務レコード）において、処理時間に重複が存在するか判断する（ステップＳ９）。
【００１７】
例えば図８に示すようなデータがソート結果格納部１０４に格納されているとすると、処理Ａの終了時刻より遅く処理Ｂの開始時刻が設定されており、処理Ｂの終了時刻より遅く処理Ｃの開始時刻が設定されており、処理Ｃの終了時刻より遅く処理Ｄの開始時刻が設定されているので、模式的に示せば図９に示すように、処理Ａ乃至Ｄに並列実施部分は存在せず、直列に業務処理が実施されていることが分かる。
【００１８】
一方、図１０に示すようなデータがソート結果格納部１０４に格納されているとすると、処理Ａの終了時刻より遅く処理Ｂ乃至Ｄの開始時刻が設定されているが、処理Ｂの終了時刻より早く処理Ｃの開始時刻が設定されている。なお、処理Ｄの開始時刻は、処理Ｂの終了時刻及び処理Ｃの終了時刻より後に設定されている。このような状況を模式的に示すと図１１のようになる。図１１に示したように、処理Ｂと処理Ｃの一部区間（すなわち重複区間）については、並列実施されていることが分かる。
【００１９】
さらに、図１２に示すようなデータがソート結果格納部１０４に格納されているとすると、処理Ａの終了時刻より遅く処理Ｂ１乃至処理Ｄの開始時刻が設定されているが、処理Ｂ１の終了時刻より前に処理Ｃの開始時刻が設定されており、さらに、処理Ｂ１の終了時刻より遅く処理Ｃの終了時刻及び処理Ｂ２の開始時刻が設定されており、また処理Ｂ２の開始時刻及び終了時刻より遅く処理Ｃの終了時刻は設定されている。なお、処理Ｄの開始時刻は、処理Ａ乃至Ｃの終了時刻より遅く設定されている。このような状況を模式的に示すと図１３のようになる。図１３に示したように、処理Ａ、処理Ｂ１、処理Ｂ２、処理Ｄは直列実施されているが、処理Ｃは、処理Ｂ１及びＢ２とは、一部区間（すなわち重複区間）並列実施されていることが分かる。処理Ｂ１及びＢ２は、直列実施されているが、並列実施部分における直列実施される業務処理も特定できる。
【００２０】
このように、ステップＳ９では、各業務レコードの開始時刻及び終了時刻から、処理時間について重複区間の有無を判断する。
【００２１】
図８及び図９に示したように、処理時間に重複が存在しないと判断された場合には、第１重複部分抽出部１０５は、管理テーブル格納部１０６に、「グループ無し」という、今回の処理に係る識別子についての管理テーブルを登録する（ステップＳ１１）。具体的には、図１４に示すような管理テーブルが登録される。図１４の管理テーブル例では、グループコードと、グループの所属処理種別と、グループ内の非同時処理組み合わせとが登録されるようになっている。なお、グループ無しであるから、グループコードはなく、単に、直列実施される業務処理の処理種別が、処理Ａ乃至Ｄとして登録される。また、グループ内非同時処理組み合わせについてもグループ無しであるので、何も登録されない。なお、グループ無しであるから、ソート結果格納部１０４の業務レコードで業務フローを描くことができるので、所属処理種別については空であっても良い。
【００２２】
一方、図１０乃至図１３に示したように、処理時間に重複が存在する場合には、第１重複部分抽出部１０５は、管理テーブル格納部１０６に、処理時間が重複する業務処理をグループ化した形で管理テーブルを格納する（ステップＳ１３）。例えば図１０及び図１１の場合には、処理Ｂ及び処理Ｃがグループ化されて、直列実施される処理Ａ及び処理Ｄについてはグループ無しということになる。なお、グループ内では非同時に実行される処理はないので、グループ内非同時処理組み合わせは「なし」ということになる。すなわち、図１５に示すような管理テーブルが管理テーブル格納部１０６に格納されることになる。さらに、図１２及び図１３の場合には、処理Ｂ１、処理Ｂ２及び処理Ｃがグループ化されて、図１６に示すように、直列実施される処理Ａ及び処理Ｄについてはグループ無しということになる。なお、グループ内で直列実施される処理は、処理Ｂ１及び処理Ｂ２であるので、グループ内非同時処理組み合わせに、処理Ｂ１及び処理Ｂ２が登録される。なお、開始時刻と終了時刻が記録されているので、処理Ｂ１及び処理Ｂ２の処理時間に重複が存在しないことを特定することは容易である。
【００２３】
そして、ステップＳ１３又はステップＳ１１の後に、第１重複部分抽出部１０５は、全ての識別子について処理したかを判断する（ステップＳ１５）。未処理の識別子が存在している場合にはステップＳ７に戻る。一方、全ての識別子について処理した場合には、出力部１１１は、ソート結果格納部１０４及び管理テーブル格納部１０６に格納されているデータを用いて、業務フロー（例えばプロセスインスタンス）を出力装置（例えば表示装置など）に出力する（ステップＳ１７）。例えば、図２や図３に示したような表示を表示装置に行う。
【００２４】
このように２時点記録を採用している場合には、正確に処理時間を特定することができ、並列実施についても正しく判断することができるので、正しい業務フローをユーザに提示することができる。
【００２５】
次に、端子Ａ以降の処理を図１７乃至図３５を用いて説明する。ステップＳ５で１時点記録であると判断されると、記録方法特定部１０７は、記録方法判定処理を実施する（図１７：ステップＳ１９）。記録方法判定処理については、図１８乃至図２４を用いて説明する。なお、データベースのスキーマ情報やカラム名などから、明らかに開始時刻が記録されているか又は終了時刻が記録されているかを特定できる場合には、その情報を用いればよい。不明な場合には、以下で説明する処理を実施する。
【００２６】
なお、カラム名などから不明な場合には、図１８乃至図２１に示したように、図７に示した業務レコードがソート結果格納部１０４に格納されていても、１時点記録の場合には、開始時刻を記録しており直列実施のみの場合（図１８）、終了時刻を記録しており直列実施のみの場合（図１９）、開始時刻を記録しており並列実施を含む場合（図２０）、終了時刻を記録しており並列実施を含む場合（図２１）が存在するので、これを考慮した形で、開始時刻記録か終了時刻記録かを判断しなければならない。
【００２７】
具体的には、図７からも分かるように、処理Ｂと処理Ｃの処理時刻の差は小さいが、図１８及び図１９に示したように全ての業務処理が直列実施であると仮定した場合でも、処理時刻が開始時刻記録である場合には、処理Ｂの処理時間が短いことになり、終了時刻記録である場合には、処理Ｃの処理時間が短いことになり、いずれであるかによって以下で述べるような並列実施部分の特定に影響がある。また、並列実施の場合には、図２０及び図２１に示すように、みかけの処理時間が短くても、実際の処理時間は短くないことがあり得る。
【００２８】
本実施の形態では、（Ａ）各業務処理の真の処理時間は、何回試行しても大きくばらつくことはなく、ばらついたとしても処理時間の分布は正規分布に従う、（Ｂ）各業務処理は、それぞれ固有の処理時間があり、業務処理間で、ある程度の差異が存在する、（Ｃ）前業務処理終了から後業務処理開始までの間隔は無視できるほど小さいか、ばらつきが小さい固定的な値となる、という仮定の下、１つの業務処理に対して、処理時間を計算するための処理時刻が複数回記録されているものとして、以下で述べるような統計的な処理を実施する。１つの業務処理に対して、処理時間を計算するための処理時刻が複数回記録されているというのは、１種類の処理フロールートが何回も実施されるか、同一の業務処理を含む複数種類の処理フロールートが複数回実施されるか、その両方であるか、ということである。一般的には、処理回数やルート種別が多いほど、正確な判断を実施できる。
【００２９】
以上の事項を前提に、記録方法特定部１０７は、ソート結果格納部１０４に格納されている業務レコードに含まれる業務処理のうち、未処理の業務処理を１つ特定する（図２２：ステップＳ５１）。そして、特定された業務処理の処理時刻を開始時刻として処理時間Ｐを算出し、仮処理時間データ格納部１０８に格納する（ステップＳ５３）。
【００３０】
例えば、図２３の左側に示すように、処理Ａ、処理Ｂ、処理Ｃの順番で実施された場合、処理Ｄ、処理Ｂ、処理Ｅの順番で実施された場合、処理Ｃ、処理Ｂ、処理Ｆの順番で実施された場合において、処理Ｂに着目するものとする。但し、ここでは終了時刻記録が行われているものとする。そうすると、ステップＳ５３では、図２３の左側において、Ｐ１、Ｐ２、Ｐ３が処理時間として算出され、仮処理時間データ格納部１０８に格納される。
【００３１】
その後、記録方法特定部１０７は、処理時間Ｐの標準偏差を算出する（ステップＳ５５）。標準偏差でなく分散であっても良い。その他のばらつきを表す統計値であっても良い。標準偏差や分散も、仮処理時間データ格納部１０８やメインメモリなどの記憶装置に格納される。
【００３２】
一方、記録方法特定部１０７は、特定された業務処理の処理時刻を終了時刻として処理時間Ｑを算出し、仮処理時間データ格納部１０８に格納する（ステップＳ５７）。図２３の左側に示すように、Ｑ１、Ｑ２、Ｑ３が処理時間として算出され、仮処理時間データ格納部１０８に格納される。
【００３３】
そして、記録方法特定部１０７は、処理時間Ｑの標準偏差を算出する（ステップＳ５９）。標準偏差でなく分散であっても良い。他のばらつきを表す指標であってもよい。標準偏差や分散も、仮処理時間データ格納部１０８やメインメモリなどの記憶装置に格納される。
【００３４】
そして、記録方法特定部１０７は、処理時間Ｑの標準偏差（又は分散）＞処理時間Ｐの標準偏差（又は分散）であるか判断する（ステップＳ６１）。
【００３５】
本実施の形態では、図２３の右側に示すように、終了時刻記録と開始時刻記録とのうち実際の記録方法の方が、処理時間のばらつきが小さくなるという考え方を採用している。上で述べたように、図２３の例では、終了時刻記録が実際の記録方法であるから、Ｑ１乃至Ｑ３の標準偏差は、Ｐ１乃至Ｐ３の標準偏差より小さくなる。
【００３６】
従って、記録方法特定部１０７は、処理時間Ｐの標準偏差（又は分散）の方が小さい場合には、開始時刻記録のためのカウンタｐを１インクリメントする（ステップＳ６５）。一方、処理時間Ｑの標準偏差（又は分散）の方が小さい又は処理時間Ｐの標準偏差と処理時間Ｑの標準偏差が等しい場合には、終了時刻記録のためのカウンタｑを１インクリメントする（ステップＳ６３）。両者が等しいケースについては取り扱わないようにしても良い。
【００３７】
並列実施されている業務処理の場合には、図２０及び図２１に示すように並列実施の状態によっては処理時間Ｐ及び処理時間Ｑはある程度ばらつくことが予想されるので、１つの業務処理で終了時刻記録なのか開始時刻記録なのかを区別するのは難しい。よって、全ての業務処理について上で述べた処理を実施して、開始時刻記録のためのカウンタｐで、開始時刻記録の方が処理時間の標準偏差等が小さい業務処理の数をカウントし、終了時刻記録のためのカウンタｑで、終了時刻記録の方が処理時間の標準偏差等が小さい業務処理の数をカウントする。
【００３８】
ステップＳ６３又はＳ６５の後に、記録方法特定部１０７は、全ての業務処理について処理したか判断する（ステップＳ６７）。未処理の業務処理が存在している場合には、ステップＳ５１に戻る。未処理の業務処理が存在していない場合には、端子Ｄを介して図２４の処理に移行する。
【００３９】
図２４の処理の説明に移行し、記録方法特定部１０７は、カウンタｐの値がカウンタｑの値より大きいか判断する（ステップＳ６９）。カウンタｐの値がカウンタｑの値より大きい場合には、開始時刻記録を第２重複部分抽出部１０９に設定する（ステップＳ７１）。一方、カウンタｐの値がカウンタｑの値より大きいと言えない場合には、終了時刻記録を第２重複部分抽出部１０９に設定する（ステップＳ７３）。そして、元の処理に戻る。
【００４０】
図１７の説明に戻って、第２重複部分抽出部１０９は、開始時刻記録が設定されたか判断する（ステップＳ２１）。開始時刻記録が設定されている場合には、ソート結果格納部１０４に格納されている各業務レコードの処理時間を、ソート結果格納部１０４に格納されている業務レコードのデータを用いて、（直後の業務処理の開始時刻）−（ターゲット業務処理の開始時刻）で算出して、処理時間データ格納部１１０に格納する（ステップＳ２３）。例えば、業務レコードに含まれる識別子及び処理種別に対応して、算出された処理時間を格納する。一方、終了時刻記録が設定されている場合には、ソート結果格納部１０４に格納されている各業務レコードの処理時間を、ソート結果格納部１０４に格納されている業務レコードのデータを用いて、（ターゲット業務処理の終了時刻）−（直前の業務処理の終了時刻）を算出して、処理時間データ格納部１１０に格納する（ステップＳ２５）。例えば、業務レコードに含まれる識別子及び処理種別に対応して、算出された処理時間を格納する。
【００４１】
ステップＳ２３又はＳ２５まで実施すると、並列実施部分を特定するための処理の準備が完了したことになる。以下の処理は、（Ａ）各業務処理の真の処理時間は、何回試行しても大きくばらつくことはなく、ばらついたとしても処理時間の分布は正規分布に従う、（Ｂ）各業務処理は、それぞれ固有の処理時間があり、業務処理間で、ある程度の差異が存在する、（Ｃ）前業務処理終了から後業務処理開始までの間隔は無視できるほど小さいか、ばらつきが小さい固定的な値となる、という仮定の下、１つの業務処理に対して、処理時間を計算するための処理時刻が複数回記録されているものとして、以下で述べるような統計的な処理を実施する。１つの業務処理に対して、処理時間を計算するための処理時刻が複数回記録されているというのは、１種類の処理フロールートが何回も実施されるか、同一の業務処理を含む複数種類の処理フロールートが複数回実施されるか、その両方であるか、ということである。一般的には、処理回数やルート種別が多いほど、正確な判断を実施できる。
【００４２】
まず、第２重複部分抽出部１０９は、ソート結果格納部１０４に格納された業務レコードに含まれる又は処理時間データ格納部１１０に格納されているデータに含まれる業務処理のうち、未処理の業務処理を１つ特定する（ステップＳ２７）。そして、特定された業務処理の処理時間のヒストグラムを生成する（ステップＳ２９）。
【００４３】
例えば、図２５に示すように、処理Ｅ、処理Ｃ、処理Ｆが直列実施される場合（終了時刻記録の場合）における処理Ｃの処理時間は長くなるが、図２６に示すように、処理Ｂと処理Ｃとが並列実施されると、みかけ上処理Ｃの処理時間は非常に短くなってしまう場合がある。さらに、図２７に示すように、処理Ｂと処理Ｃが並列に実施されるのは同じであるが、処理時間のゆらぎによっては、みかけ上処理Ｃの処理時間が長くなったり短くなったりする。従って、ステップＳ２９で同じ業務処理について処理時間のヒストグラムを生成することによって、統計的に、直列実施される場合の処理時間にピークが発生し、並列実施されている場合には当該並列実施時のみかけ上の処理時間に１又は複数のピークが発生する。直列実施しかなされない業務処理の場合には、図２８に示すようにピークは１つとなる。このピークの処理時間を、本来の処理時間とみなす。また、並列実施及び直接実施の両方がなされると、図２９に示すようにピークは複数となる。直列実施される場合の処理時間は、並列実施時のみかけ上の処理時間よりも必ず長くなるので、本実施の形態では、複数のピークが出現する場合には、処理時間が最も長くなるピークの処理時間を本来の処理時間とみなす。
【００４４】
そこで、第２重複部分抽出部１０９は、ステップＳ２９で生成したヒストグラムにピークが存在するか判断する（ステップＳ３１）。どの程度の盛り上がりでピークと判断するかは、業務処理がどの程度の頻度で実施されているかにもよるので、適宜設定する必要がある。ピークが存在しない場合には、本来の処理時間を特定できないので、特定された業務処理が属する全ての業務グループの管理テーブルに、当該業務処理について「不定」を登録する（ステップＳ３３）。そして端子Ｃを介してステップＳ２７に移行する。
【００４５】
一方、ピークが存在する場合、第２重複部分抽出部１０９は、ピークが単数であるか判断する（ステップＳ３５）。ピークが単数の場合には、上で述べたように直列実施しかなされていない業務処理ということになるので、当該業務処理が属する全ての業務グループの管理テーブルに、当該業務処理を「グループ化無し」として登録する（ステップＳ３７）。そして処理は端子Ｂを介して図３０の処理に移行する。
【００４６】
一方、ピークが複数存在する場合には、第２重複部分抽出部１０９は、上で述べたように、複数のピークのうち処理時間が最長となるピークの処理時間を、ステップＳ２７で特定された業務処理の処理時間に設定する（ステップＳ３９）。例えばメインメモリなどの記憶装置に、特定された業務処理の処理時間を格納しておく。そして、設定された処理時間より短い処理時間の箇所（具体的には、設定された処理時間より短い処理時間となった特定業務処理を含む業務グループ及び特定業務処理）を並列実施箇所として特定する（ステップＳ４１）。例えば、管理テーブル格納部１０６に、該当するグループの管理テーブルに対応して特定業務処理を登録しておく。なお、本ステップについては、スキップするようにして、複数ピークが検出された業務処理については、全て並列実施箇所として取り扱うようにしても良い。そして、処理は端子Ｂを介して図３０の処理に移行する。
【００４７】
図３０の処理の説明に移行して、第２重複部分抽出部１０９は、全ての業務処理について処理したか判断する（ステップＳ８１）。未処理の業務処理が存在する場合には端子Ｃを介してステップＳ２７に戻る。一方、全ての業務処理について処理が完了した場合には、ソート結果格納部１０４に格納されている業務レコードに含まれる識別子のうち未処理の識別子を１つ特定する（ステップＳ８３）。そして、特定された識別子（すなわち、業務グループ）について、並列処理箇所が登録されているか判断する（ステップＳ８５）。グループ化無しのみである場合には、ステップＳ３７を繰り返し実施して管理テーブルは図１４に示すように既に完成しているので、ステップＳ９３に移行する。
【００４８】
一方、並列処理箇所が登録されている場合には、第２重複部分抽出部１０９は、並列処理箇所毎に、処理時間をベースに並列実施業務処理を特定する（ステップＳ８９）。ここで、図３１のような場合を想定する。図３１の例では、終了時刻記録が採用されているものとする。図３１から明らかなように、処理Ｃが並列実施箇所として特定されており、実際に処理Ｅ、処理Ｂ１及び処理Ｂ２とが並列実施されているものとする。なお、ステップＳ２５で算出され且つ処理時間データ格納部１１０に格納される処理時間は、図３１の下部に示されているように、処理Ａについては「Ａ」であり、処理Ｂ１については「Ｂ１」であり、処理Ｅについては「Ｅ」であり、処理Ｂ２については「Ｂ２」であり、処理Ｃについては「Ｃ」であり、処理Ｄについては「Ｄ」となる。但し、Ｂ１、Ｂ２、Ｃ及びＥについては、並列実施されているので、正しい処理時間が算出されていない。
【００４９】
従って、並列実施箇所として特定された業務処理である処理Ｃの開始時刻（終了時刻記録の場合。開始時刻記録の場合には終了時刻記録。）を算出する。これは、処理Ｃの終了時刻をＣendとし、処理Ｃについて本来の処理時間としてステップＳ３９で設定された処理時間をＣtとすると、図３２に示すように、Ｃend−Ｃt（開始時刻記録の場合、開始時刻をＣstartとすると、Ｃstart＋Ｃtが終了時刻となる）と算出される。従って、開始時刻Ｃend−Ｃtから終了時刻Ｃendまでに、終了時刻が記録されている業務処理が、処理Ｃと並列実施されている業務処理となる。従って、図３１及び図３２から明らかなように、処理Ｅ、処理Ｂ１及び処理Ｂ２が並列実施されていることが分かる。なお、開始時刻記録の場合には、ＣstartからＣstart＋Ｃtまでに開始時刻が記録されている業務処理が、処理Ｃと並列実施されている業務処理となる。
【００５０】
このようにして、第２重複部分抽出部１０９は、並列実施されている業務処理をグループ化した形で管理テーブルを、管理テーブル格納部１０６に登録する（ステップＳ９１）。例えば、図３１及び図３２の例では、図３３に示すような管理テーブルが登録される。グループは、処理Ｃ、処理Ｂ１、処理Ｂ２及び処理Ｅで構成される。
【００５１】
なお、処理Ｃに着目すれば、並列実施されている業務処理は、処理Ｂ１、処理Ｂ２、処理Ｅとなるが、処理Ｂ１に着目すれば、処理Ｅ及び処理Ｃだけであり、処理Ｂ２に着目すれば、処理Ｅ及び処理Ｃだけであり、処理Ｅに着目すれば、処理Ｂ１、処理Ｂ２及び処理Ｃとなる。このように、単純に、並列実施箇所の個々の業務処理に着目すると、並列実施されている業務処理のグループが異なることになるが、識別子ベースの業務グループの単位で並列実施されているグループを特定する必要があるので、一部でも業務処理が重複する場合には並列実施されている業務処理のグループを統合する。すなわち、処理Ｃ、処理Ｂ１、処理Ｂ２及び処理Ｅが統合後のグループとなる。さらに、処理Ｂ１に着目した場合には処理Ｂ２が抜けており、処理Ｂ２に着目した場合には処理Ｂ１が抜けているので、処理Ｂ１と処理Ｂ２は、直列実施されていることが特定される。従って、処理Ｂ１と処理Ｂ２は、グループ内非同時処理組み合わせとして特定される。このようにグループ内非同時処理組み合わせを特定する場合には、例えば処理時間データ格納部１１０に格納されている本来の処理時間を用いて開始時刻及び終了時刻を特定し、重複がないことを特定するようにしても良い。
【００５２】
以上のように、ステップＳ９１では、識別子ベースのグループにおける、並列実施されている業務処理のグループを特定して登録すると共に、グループ内非同時処理組み合わせをも特定して、登録する。
【００５３】
そして、ステップＳ８５で並列実施箇所なしと判断された場合又はステップＳ９１の後に、第２重複部分抽出部１０９は、全ての識別子について処理したか判断する（ステップＳ９３）。未処理の識別子が存在する場合にはステップＳ８３に戻る。
【００５４】
一方、全ての識別子について処理を実施した場合には、出力部１１１は、ソート結果格納部１０４及び管理テーブル格納部１０６に格納されているデータを用いて、業務フロー（ここではプロセスインスタンス）を出力装置（例えば表示装置など）に出力する（ステップＳ９５）。例えば、図２や図３に示したような表示を表示装置に行う。
【００５５】
ステップＳ１７又はＳ９５では、プロセスインスタンスではなく、プロセスインスタンスをまとめた業務フローを出力するようにしても良い。すなわち、プロセスインスタンスを重ね合わせて業務フローを生成して、当該業務フローを提示するものである。
【００５６】
例えば、直列実施として誤認識していると、Ａ−Ｂ１−Ｂ２−Ｃ−Ｅ−ＤやＡ−Ｂ１−Ｃ−Ｂ２−Ｅ−Ｄ、Ａ−Ｃ−Ｅ−Ｂ１−Ｂ２−Ｄなど様々な異なるプロセスインスタンスとして認識される可能性があり、これらを重ね合わせると、図３４のように複雑に入り組んだ業務フローが生成されてしまう。しかし、図３３のような管理テーブルが生成されれば、図３５に示すように、処理Ａ及び処理Ｄは直列実施されるが、処理Ｃ、処理Ｅ及び処理Ｂ１及びＢ２については並列実施され、その中でも処理Ｂ１及びＢ２が直列実施されるような業務フローを提示することができるようになる。
【００５７】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図４に示した機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。また、業務フロー処理装置１００は、１台のコンピュータで実施されることを前提に説明したが、複数台のコンピュータで処理を分担するようにしても良い。また、処理フローについても、同様の結果を得られるのであれば、変形することも可能である。
【００５８】
なお、業務フロー処理装置１００は、コンピュータ装置であって、図３６に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【図１】
2009098766.tif 000003
【図２】
2009098766.tif 000004
【図３】
2009098766.tif 000005
【図４】
2009098766.tif 000006
【図５】
2009098766.tif 000007
【図６】
2009098766.tif 000008
【図７】
2009098766.tif 000009
【図８】
2009098766.tif 000010
【図９】
2009098766.tif 000011
【図１０】
2009098766.tif 000012
【図１１】
2009098766.tif 000013
【図１２】
2009098766.tif 000014
【図１３】
2009098766.tif 000015
【図１４】
2009098766.tif 000016
【図１５】
2009098766.tif 000017
【図１６】
2009098766.tif 000018
【図１７】
2009098766.tif 000019
【図１８】
2009098766.tif 000020
【図１９】
2009098766.tif 000021
【図２０】
2009098766.tif 000022
【図２１】
2009098766.tif 000023
【図２２】
2009098766.tif 000024
【図２３】
2009098766.tif 000025
【図２４】
2009098766.tif 000026
【図２５】
2009098766.tif 000027
【図２６】
2009098766.tif 000028
【図２７】
2009098766.tif 000029
【図２８】
2009098766.tif 000030
【図２９】
2009098766.tif 000031
【図３０】
2009098766.tif 000032
【図３１】
2009098766.tif 000033
【図３２】
2009098766.tif 000034
【図３３】
2009098766.tif 000035
【図３４】
2009098766.tif 000036
【図３５】
2009098766.tif 000037
【図３６】
2009098766.tif 000038
【手続補正書】
【提出日】平成22年6月29日(2010.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得するステップと、
前記業務レコードを、前記識別子に基づきグループ化すると共に前記処理時刻に基づきグループ内でソートするステップと、
前記業務レコードに含まれる前記処理時刻が１時点のみを表す場合には、前記グループ内の前記業務レコードにおける前記処理時刻のシーケンスに基づき、各前記業務レコードについて処理時間を算出する処理時間算出ステップと、
算出された前記処理時間の、前記業務種別毎の分布に基づき、並列実施された業務処理に係る前記業務レコードを特定する並列実施業務特定ステップと、
前記グループ毎に、前記並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定するステップと、
を、コンピュータに実行させるための業務フロー処理プログラム。
【請求項２】
前記処理時間算出ステップが、
前記処理時刻が開始時刻である場合における各前記業務レコードについての第１の仮処理時間と、前記処理時刻が終了時刻である場合における各前記業務レコードについての第２の仮処理時間とを算出するステップと、
前記業務種別毎に、前記第１の仮処理時間のばらつきを表す指標値と前記第２の仮処理時間のばらつきを表す指標値とを算出するステップと、
前記業務種別毎に、前記第１の仮処理時間のばらつきを表す指標値と前記第２の仮処理時間のばらつきを表す指標値とを比較して、前記処理時刻が前記開始時刻であるか又は前記終了時刻であるか統計的に判断するステップと、
を含む請求項１記載の業務フロー処理プログラム。
【請求項３】
前記並列実施業務特定ステップが、
前記業務種別毎に、算出された前記処理時間の分布において複数のピークが存在するか判断し、当該複数のピークが存在する業務種別を並列実施される業務処理として特定するステップと、
前記並列実施される業務処理について、前記複数のピークのうち最も前記処理時間が長いピークについての前記処理時間を、みなし処理時間として特定するステップと、
各前記業務レコードについて、当該業務レコードにおける前記処理時刻と前記みなし処理時間と当該業務レコードのグループにおける他の業務レコードの前記処理時刻とを用いて、並列実施された業務処理に係る業務レコードであるか判断するステップと、
を含む、請求項１記載の業務フロー処理プログラム。
【請求項４】
前記業務レコードに含まれる前記処理時刻が終了時刻及び開始時刻を含む場合、各前記グループについて、前記業務レコードに含まれる前記終了時刻及び前記開始時刻に基づき、並列実施された業務処理に係る業務レコードを特定する第２並列実施業務特定ステップと、
前記グループ毎に、前記第２並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定するステップと、
をさらに前記コンピュータに実行させるための請求項１記載の業務フロー処理プログラム。
【請求項５】
処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得するステップと、
前記業務レコードを、前記識別子に基づきグループ化すると共に前記処理時刻に基づきグループ内でソートするステップと、
前記業務レコードに含まれる前記処理時刻が１時点のみを表す場合には、前記グループ内の前記業務レコードにおける前記処理時刻のシーケンスに基づき、各前記業務レコードについて処理時間を算出する処理時間算出ステップと、
算出された前記処理時間の、前記業務種別毎の分布に基づき、並列実施された業務に係る前記業務レコードを特定する並列実施業務特定ステップと、
前記グループ毎に、前記並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定するステップと、
を含み、コンピュータにより実行される業務フロー処理方法。
【請求項６】
処理時刻と業務種別と識別子とを含む業務レコードをデータベースから取得する手段と、
前記業務レコードを、前記識別子に基づきグループ化すると共に前記処理時刻に基づきグループ内でソートする手段と、
前記業務レコードに含まれる前記処理時刻が１時点のみを表す場合には、前記グループ内の前記業務レコードにおける前記処理時刻のシーケンスに基づき、各前記業務レコードについて処理時間を算出する処理時間算出手段と、
算出された前記処理時間の、前記業務種別毎の分布に基づき、並列実施された業務に係る前記業務レコードを特定する並列実施業務特定手段と、
前記グループ毎に、前記並列実施業務特定ステップの処理結果と当該グループ内の前記業務レコードとから、当該グループの業務フローを特定する手段と、
を有する業務フロー処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
例えば特開２００５−１１５４９４号公報には、業務プロセストラッキング装置に関し、異なる業務システム間を跨いで行われる複数のアプリケーションからなる業務プロセスの流れを、既存システムを変更することなく追跡することを可能とする技術が開示されている。具体的には、イベント管理装置は、各業務システムのイベント抽出部がイベント抽出定義に基づいて抽出したイベントデータを収集し、イベントキューにキューイングする。イベント関連付け部は、イベントデータを業務データ単位にまとめ、業務データ間の関連付けを行ってイベント管理ＤＢに蓄積する。ユーザ端末から検索条件が入力されると、出力部が検索条件に従ってイベント管理ＤＢを検索し、業務データ間の関連をツリー形式でユーザ端末に出力し表示する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
さらに、上で述べた並列実施業務特定ステップは、業務種別毎に、算出された処理時間の分布において複数のピークが存在するか判断し、当該複数のピークが存在する業務種別を並列実施される業務処理として特定するステップと、並列実施される業務処理について、複数のピークのうち最も処理時間が長いピークについての処理時間を、みなし処理時間として特定するステップと、各業務レコードについて、当該業務レコードにおける処理時刻とみなし処理時間と当該業務レコードのグループにおける他の業務レコードの処理時刻とを用いて、並列実施された業務に係る業務レコードであるか判断するステップとを含むようにしてもよい。なお、単一ピークの場合には、並列実施されることのない業務種別であることを表している。従って、並列実施されるか否かを判断する必要はない。一方、複数ピークの場合には、単純にグループ内における処理時刻の差では正しい処理時間を得ることができないので、複数のピークのうち最も処理時間が長いピークについての処理時間を、みなし処理時間として特定して、当該みなし処理時間に基づき並列実施の有無を判断する。なお、処理負荷を減らすために、みなし処理時間より短い処理時間が特定された業務レコードについてのみ並列実施の有無を判断するようにしてもよい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
例えば、図２５に示すように、処理Ｅ、処理Ｃ、処理Ｆが直列実施される場合（終了時刻記録の場合）における処理Ｃの処理時間は長くなるが、図２６に示すように、処理Ｂと処理Ｃとが並列実施されると、みかけ上処理Ｃの処理時間は非常に短くなってしまう場合がある。さらに、図２７に示すように、処理Ｂと処理Ｃが並列に実施されるのは同じであるが、処理時間のゆらぎによっては、みかけ上処理Ｃの処理時間が長くなったり短くなったりする。従って、ステップＳ２９で同じ業務処理について処理時間のヒストグラムを生成することによって、統計的に、直列実施される場合の処理時間にピークが発生し、並列実施されている場合には当該並列実施時のみかけ上の処理時間に１又は複数のピークが発生する。直列実施しかなされない業務処理の場合には、図２８に示すようにピークは１つとなる。このピークの処理時間を、本来の処理時間とみなす。また、並列実施及び直列実施の両方がなされると、図２９に示すようにピークは複数となる。直列実施される場合の処理時間は、並列実施時のみかけ上の処理時間よりも必ず長くなるので、本実施の形態では、複数のピークが出現する場合には、処理時間が最も長くなるピークの処理時間を本来の処理時間とみなす。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
従って、並列実施箇所として特定された業務処理である処理Ｃの開始時刻（終了時刻記録の場合。開始時刻記録の場合には終了時刻。）を算出する。これは、処理Ｃの終了時刻をＣendとし、処理Ｃについて本来の処理時間としてステップＳ３９で設定された処理時間をＣtとすると、図３２に示すように、Ｃend−Ｃt（開始時刻記録の場合、開始時刻をＣstartとすると、Ｃstart＋Ｃtが終了時刻となる）と算出される。従って、開始時刻Ｃend−Ｃtから終了時刻Ｃendまでに、終了時刻が記録されている業務処理が、処理Ｃと並列実施されている業務処理となる。従って、図３１及び図３２から明らかなように、処理Ｅ、処理Ｂ１及び処理Ｂ２が並列実施されていることが分かる。なお、開始時刻記録の場合には、ＣstartからＣstart＋Ｃtまでに開始時刻が記録されている業務処理が、処理Ｃと並列実施されている業務処理となる。
【国際調査報告】
2009098766.tif 000039
2009098766.tif 000040