(57)【要約】【課題】適切な業務フローのパターンを生成する。【解決手段】業務システムにおけるイベントのログを分析する計算機システムであって、計算機システムは計算機を備え、ログはイベントの識別情報を含む複数の特徴量から構成され、計算機は、業務システムから取得された複数のログに基づいて、複数のイベントの集合である業務フローに対応するログ配列を複数生成し、複数のログ配列に含まれる複数のログの各々に追加特徴量を付与し、追加特徴量及びログに含まれる特徴量を用いて算出される、ログ配列間の類似性を示す類似度に基づいて比較可能なログ配列に変換することによって、複数の業務フローを分類し、分類の結果に基づいて業務フローのパターンに関する情報を生成する。【選択図】図１
2020052451.tif 000002
【特許請求の範囲】
【請求項１】
業務システムにおけるイベントのログを分析する計算機システムであって、
前記計算機システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
前記ログは、イベントの識別情報を含む複数の特徴量から構成され、
前記プロセッサは、
前記業務システムから取得された前記複数のログに基づいて、前記業務システムで行われる業務に関する複数のイベントの集合である業務フローに対応するログ配列を複数生成し、
前記複数のログ配列に含まれる前記複数のログの各々に、ログを特徴づける追加特徴量を付与し、
前記追加特徴量及び前記ログに含まれる少なくとも一つの特徴量を用いて算出される、前記ログ配列間の類似性を示す類似度に基づいて、前記複数の業務フローの各々に対応する前記ログ配列を比較可能なログ配列に変換することによって、前記複数の業務フローを分類し、
前記分類の結果に基づいて業務フローのパターンに関する情報を生成することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記プロセッサは、前記一つの業務フローに対応する前記ログ配列に含まれる前記複数のログを比較し、前記比較の結果に基づいて前記追加特徴量を算出することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記ログを集約するための条件を管理するための集約条件管理情報を保持し、
前記プロセッサは、
前記複数の業務フローの中からターゲット業務フローを選択し、
前記集約条件管理情報に基づいて、前記ターゲット業務フローに対応する前記ログ配列に含まれる前記複数のログから、少なくとも一つの前記ログから構成されるログブロックを生成することによって、前記複数のログブロックから構成されるログブロック配列に変換し、
前記業務フローに対応する前記ログブロック配列に含まれる前記複数のログブロックの各々に、前記追加特徴量を付与し、
前記追加特徴量及び前記ログブロックを構成する前記少なくとも一つのログに含まれる少なくとも一つの特徴量を用いて算出される、前記ログブロック配列間の類似性を示す類似度に基づいて、前記複数の業務フローの各々に対応する前記ログブロック配列を比較可能なログブロック配列に変換することを特徴とする計算機システム。
【請求項４】
請求項２に記載の計算機システムであって、
業務の関連性を管理するための関連性情報を保持し、
前記プロセッサは、
前記複数の業務フローに対応する前記ログ配列が生成された後、前記関連性情報に基づいて関連する業務フローに対応する前記ログ配列を集約することによって集約業務フローに対応する前記ログ配列を複数生成し、
前記複数の集約業務フローに対応する前記ログ配列の各々に含まれる前記複数のログの各々に、前記追加特徴量を付与し、
前記類似度に基づいて、前記複数の集約業務フローの各々に対応する前記ログ配列を比較可能なログ配列に変換することによって、前記複数の集約業務フローを分類することを特徴とする計算機システム。
【請求項５】
業務システムにおけるイベントのログを分析する計算機システムが実行する業務フローのパターンの生成方法であって、
前記計算機システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
前記ログは、イベントの識別情報を含む複数の特徴量から構成され、
前記業務フローのパターンの生成方法は、
前記プロセッサが、前記業務システムから取得された前記複数のログに基づいて、前記業務システムで行われる業務に関する複数のイベントの集合である業務フローに対応するログ配列を複数生成する第１のステップと、
前記プロセッサが、前記複数のログ配列に含まれる前記複数のログの各々に、ログを特徴づける追加特徴量を付与する第２のステップと、
前記プロセッサが、前記追加特徴量及び前記ログに含まれる少なくとも一つの特徴量を用いて算出される、前記ログ配列間の類似性を示す値に基づいて、前記複数の業務フローの各々に対応する前記ログ配列を比較可能なログ配列に変換することによって、前記複数の業務フローを分類する第３のステップと、
前記プロセッサが、前記分類の結果に基づいて業務フローのパターンに関する情報を生成する第４のステップと、を含むことを特徴とする業務フローのパターンの生成方法。
【請求項６】
請求項５に記載の業務フローのパターンの生成方法であって、
前記第２のステップは、前記プロセッサが、前記一つの業務フローに対応する前記ログ配列に含まれる前記複数のログを比較し、前記比較の結果に基づいて前記追加特徴量を算出するステップを含むことを特徴とする業務フローのパターンの生成方法。
【請求項７】
請求項６に記載の業務フローのパターンの生成方法であって、
前記ログを集約するための条件を管理するための集約条件管理情報を保持し、
前記第１のステップは、
前記プロセッサが、前記複数の業務フローの中からターゲット業務フローを選択するステップと、
前記プロセッサが、前記集約条件管理情報に基づいて、前記ターゲット業務フローに対応する前記ログ配列に含まれる前記複数のログから、少なくとも一つの前記ログから構成されるログブロックを生成することによって、前記複数のログブロックから構成されるログブロック配列に変換するステップと、を含み、
前記第２のステップは、前記プロセッサが、前記業務フローに対応する前記ログブロック配列に含まれる前記複数のログブロックの各々に、前記追加特徴量を付与するステップを含み、
前記第３のステップは、前記プロセッサが、前記追加特徴量及び前記ログブロックを構成する前記少なくとも一つのログに含まれる少なくとも一つの特徴量を用いて算出される、前記ログブロック配列間の類似性を示す値に基づいて、前記複数の業務フローの各々に対応する前記ログブロック配列を比較可能なログブロック配列に変換するステップを含むことを特徴とする業務フローのパターンの生成方法。
【請求項８】
請求項６に記載の業務フローのパターンの生成方法であって、
業務の関連性を管理するための関連性情報を保持し、
前記第１のステップは、前記プロセッサが、前記関連性情報に基づいて関連する業務フローに対応する前記ログ配列を集約することによって集約業務フローに対応する前記ログ配列を複数生成するステップを含み、
前記第２のステップは、前記プロセッサが、前記複数の集約業務フローに対応する前記ログ配列の各々に含まれる前記複数のログの各々に、前記追加特徴量を付与するステップを含み、
前記第３のステップは、前記プロセッサが、前記特徴量に基づいて、前記複数の集約業務フローの各々に対応する前記ログ配列を比較可能なログ配列に変換するするステップを含む、ことを特徴とする業務フローのパターンの生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
業務フローのパターンの解析するためのシステム及び方法に関する。
【背景技術】
【０００２】
企業は、様々な業務を行うためにＩＴシステムを導入している。また、企業は、内部統制の確立を目的として、ＩＴシステム内又はＩＴシステム外にＩＴシステムにおけるイベントのログを蓄積している。
【０００３】
業務の効率化及び正確性の向上を実現する技術としてプロセスマイニングが知られている。プロセスマイニングは、業務の内容及び流れを表す業務フローのパターンを可視化する技術である。
【０００４】
ここで、業務フローとは、ある目的を達成するために行われた操作等のイベント（業務）の流れを示すものである。また、業務フローのパターンは、業務フローを抽象化したものであって、業務フローを構成する一つのイベント又は複数のイベントを抽象化した一つ以上のノードから構成される。業務フローのパターンは、ノードの有向グラフとして表現することができる。
【０００５】
業務フローを特定する技術として特許文献１に記載の技術が知られている。
【０００６】
特許文献１には、「アプリケーションプログラムＡＰのアプリケーションログを取得し、取得したアプリケーションログの中から、一連の作業処理に関するログデータをブロックとして抽出し、ブロックの中から、関連する複数のログデータを時系列順に配置してなるパターンを抽出し、抽出されたパターンのうち、所定のログデータが共通するパターンを抽出し、所定のログデータに基づいて、業務処理フローを生成する」装置が開示されている。
【０００７】
また、同じ目的で行われる業務フローの類似性を把握する技術として特許文献２に記載の技術が知られている。
【０００８】
特許文献２には、「第１の業務プロセスにおける指定タスクＩに最も類似するタスクＩ’を、第２の業務プロセスから特定し、ノードＩの後方／前方隣接ノードＩ＋１／Ｉ−１について前記ノードＩ’の後方／前方Ｋ以下の距離範囲のノードのうち最も類似する類似ノードを検出し、次いで前記ノードＩ＋１／Ｉ−１の後方／前方隣接ノードＩ＋２／Ｉ−２について前記検出した類似ノードの後方Ｋ以下の範囲のノードのうち最も類似するノードを検出し、以降同様にして類似ノードの探索処理を順次行うことにより、前記ノードＩの後方／前方リンク距離の範囲に含まれる各ノードに対する類似ノードを前記第２のプロセスマップから検出し、ノードＩおよび前記検出した各ノードに対する類似度を合計する」装置が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１７−２２７９４４号公報
【特許文献２】特開２０１０−１７６２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献２等の従来技術では、ログに含まれるイベント名等、ログに含まれる値そのものに基づいて業務フロー間のログの対応関係が算出される。
【００１１】
しかし、ログのデータ形式は、プロセスマイニングに用いることを前提としたデータ形式であるとは限らない。したがって、異なる処理が行われた二つのイベントが、イベント名が同一のログとして保存された場合、ログを区別することができない。これによって、本来、異なる業務フローとして扱うことが望ましいにもかかわらず、同一の業務フローとして扱われる。そのため、適切な業務フローのパターンを生成できないという問題がある。
【課題を解決するための手段】
【００１２】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、業務システムにおけるイベントのログを分析する計算機システムであって、前記計算機システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、前記ログは、イベントの識別情報を含む複数の特徴量から構成され、前記プロセッサは、前記業務システムから取得された前記複数のログに基づいて、前記業務システムで行われる業務に関する複数のイベントの集合である業務フローに対応するログ配列を複数生成し、前記複数のログ配列に含まれる前記複数のログの各々に、ログを特徴づける追加特徴量を付与し、前記追加特徴量及び前記ログに含まれる少なくとも一つの特徴量を用いて算出される、前記ログ配列間の類似性を示す類似度に基づいて、前記複数の業務フローの各々に対応する前記ログ配列を比較可能なログ配列に変換することによって、前記複数の業務フローを分類し、前記分類の結果に基づいて業務フローのパターンに関する情報を生成する。
【発明の効果】
【００１３】
本発明によれば、適切な業務フローのパターンを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１４】
【図１】実施例１の計算機システムの構成の一例を示す図である。
【図２】実施例１の業務フロー解析装置のハードウェア構成の一例を示す図である。
【図３】実施例１のログ管理情報のデータ構造の一例を示す図である。
【図４】実施例１の追加特徴量管理情報のデータ構造の一例を示す図である。
【図５】実施例１の業務フロー解析装置が実行する処理の概要を説明するフローチャートである。
【図６】実施例１の業務フロー解析装置が実行する追加特徴量算出処理の一例を説明するフローチャートである。
【図７】実施例１のログ管理情報の更新結果の一例を示す図である。
【図８】実施例１の業務フロー解析装置が実行する業務フローの距離算出処理の一例を説明するフローチャートである。
【図９】実施例１の業務フロー解析装置が実行する業務フローの距離算出処理の一例を説明するフローチャートである。
【図１０Ａ】追加特徴量が追加されたログを用いたアライメント解析によって算出されるログの配列の変換結果の一例を示す図である。
【図１０Ｂ】追加特徴量が追加されたログを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。
【図１１Ａ】追加特徴量が追加されていないログを用いたアライメント解析によって算出されるログの配列の変換結果の一例を示す図である。
【図１１Ｂ】追加特徴量が追加されていないログを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。
【図１２】実施例２の計算機システムの構成の一例を示す図である。
【図１３】実施例２のログ管理情報のデータ構造の一例を示す図である。
【図１４】実施例２の業務フロー関連性管理情報のデータ構造の一例を示す図である。
【図１５】実施例２の集約条件管理情報のデータ構造の一例を示す図である。
【図１６】実施例２の業務フロー解析装置が実行する処理の概要を説明するフローチャートである。
【図１７Ａ】実施例２のログ管理情報の更新結果の一例を示す図である。
【図１７Ｂ】実施例２のログ管理情報の更新結果の一例を示す図である。
【図１７Ｃ】実施例２のログ管理情報の更新結果の一例を示す図である。
【図１８】実施例２の業務フロー解析装置が実行するログ集約処理の一例を説明するフローチャートである。
【図１９】実施例２の業務フロー解析装置が実行する業務フローの距離算出処理の一例を説明するフローチャートである。
【図２０】実施例２の業務フロー解析装置が実行する業務フローの距離算出処理の一例を説明するフローチャートである。
【図２１Ａ】追加特徴量が追加されたログブロックを用いたアライメント解析によって算出されるログブロックの配列の変換結果の一例を示す図である。
【図２１Ｂ】追加特徴量が追加されたログブロックを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。
【図２２Ａ】追加特徴量が追加されていないログブロックを用いたアライメント解析によって算出されるログブロックの配列の変換結果の一例を示す図である。
【図２２Ｂ】追加特徴量が追加されていないログブロックを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１６】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【００１７】
本明細書等における「第１」、「第２」、「第３」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【００１８】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例１】
【００１９】
図１は、実施例１の計算機システムの構成の一例を示す図である。図２は、実施例１の業務フロー解析装置１００のハードウェア構成の一例を示す図である。
【００２０】
計算機システムは、業務フロー解析装置１００、ストレージシステム１０１、及び端末１０２から構成される。業務フロー解析装置１００、ストレージシステム１０１、及び端末１０２は、ネットワーク１０５を介して互いに接続される。ネットワーク１０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。ネットワーク１０５の接続方式は有線又は無線のいずれでもよい。
【００２１】
なお、業務フロー解析装置１００、ストレージシステム１０１、及び端末１０２は、ネットワーク１０５を介さずに、直接接続されてもよい。
【００２２】
ストレージシステム１０１は、図示しないコントローラ、ネットワークインタフェース、及び記憶装置を有し、業務システム（図示省略）から取得されたログを格納する。本実施例のログは複数の特徴量（項目値）を含む。ストレージシステム１０１は、前述のログをログ管理情報１２１として管理する。ログ管理情報１２１の詳細は図３を用いて説明する。
【００２３】
端末１０２は、ユーザが使用する端末である。端末１０２は、汎用計算機、スマートフォン、及びタブレット等である。端末１０２は、図示しないプロセッサ、メモリ、記憶装置、ネットワークインタフェース、入力装置、及び出力装置を有する。端末１０２は、業務フロー解析装置１００から送信された視覚情報を出力装置に表示する視覚化部１１４を有する。
【００２４】
業務フロー解析装置１００は、ストレージシステム１０１からログを取得し、取得したログを解析することによって業務フローのパターンに関する情報を生成する。なお、業務フロー解析装置１００は、業務システムから直接ログを取得してもよい。
【００２５】
まず、業務フロー解析装置１００のソフトウェア構成について説明する。業務フロー解析装置１００は、業務フロー生成部１１０、特徴量追加部１１１、アライメント解析部１１２、及び距離算出部１１３を有し、また、追加特徴量管理情報１２０を保持する。
【００２６】
追加特徴量管理情報１２０は、ログを特徴づける追加特徴量の設定情報を格納する。追加特徴量管理情報１２０の詳細は図４を用いて説明する。追加特徴量は、ログに新たに追加される特徴量である。
【００２７】
業務フロー生成部１１０は、ストレージシステム１０１から取得した複数のログを所定のキーに基づいてグルーピングすることによって、業務フローを生成する。
【００２８】
特徴量追加部１１１は、追加特徴量管理情報１２０に基づいて各ログの追加特徴量を算出し、各ログに追加特徴量に設定する。具体的には、特徴量追加部１１１は、追加特徴量を格納する追加カラムをログに追加し、当該追加カラムに算出された追加特徴量を設定する。特徴量追加部１１１が実行する処理の詳細は図７を用いて説明する。
【００２９】
アライメント解析部１１２は、距離算出部１１３と連携して、業務フローを表すログ配列（シーケンスアライメント）を求めるアライメント解析を実行し、ログ配列に基づいて業務フローを分類することによって業務フローのパターン（モデル）を生成する。距離算出部１１３は、比較対象の二つの業務フローを表すログ配列におけるログ間の距離を算出する。なお、距離は、ログ配列の類似性を示す類似度に対応する値である。
【００３０】
マルチプルシーケンスアライメントを実現するアルゴリズムには、累進法及び反復改善法等が知られている。ここで、一例として、アライメント解析の処理について記載する。
【００３１】
（処理Ａ１）アライメント解析部１１２は、任意の業務フローと他の業務フローとの間の距離が最小となるように、二つの業務フローを表すログ配列を変換する。すなわち、比較可能なログ配列に変換される。例えば、動的計画法を用いて距離及びログ配列を求める方法が考えられる。業務フロー間の距離は、ログ間の距離の合計値及びギャップコストの合計値の和として算出される。
【００３２】
（処理Ａ２）アライメント解析部１１２は、業務フローをノードとし、（処理Ａ１）で求めた距離が設定されたエッジでノードを接続した全域木の中から最小全域木を算出する。アライメント解析部１１２は、最小全域木に用いられるログ配列を用いて、全体の業務フロー間のログ配列及び距離を算出する。
【００３３】
なお、（処理Ａ１）及び（処理Ａ２）におけるログ間の距離は、距離算出部１１３によって算出される。
【００３４】
なお、業務フロー解析装置１００が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。例えば、距離算出部１１３をアライメント解析部１１２に含めてもよい。
【００３５】
次に、業務フロー解析装置１００のハードウェア構成について説明する。業務フロー解析装置１００は、プロセッサ２００、メモリ２０１、記憶装置２０２、及びネットワークインタフェース２０３を有する。各ハードウェアはバスを介して互いに接続される。
【００３６】
プロセッサ２００は、メモリ２０１に格納されるプログラムを実行する。プロセッサ２００がプログラムにしたがって処理を実行することによって、業務フロー生成部１１０等、特定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ２００が当該機能部を実現するプログラムを実行していることを示す。
【００３７】
メモリ２０１は、プロセッサ２００が実行するプログラム及び当該プログラムが使用する情報を格納する。また、メモリ２０１は、プログラムが一時的に使用するワークエリアを含む。メモリ２０１には、業務フロー生成部１１０、特徴量追加部１１１、アライメント解析部１１２、及び距離算出部１１３を実現するためのプログラムが格納される。
【００３８】
記憶装置２０２は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等であり、データを永続的に格納する。記憶装置２０２には、追加特徴量管理情報１２０が格納される。
【００３９】
なお、各プログラムは、記憶装置２０２に格納されてもよい。この場合、プロセッサ２００が記憶装置２０２からプログラムを読み出し、メモリ２０１にプログラムをロードし、ロードされたプログラムを実行する。また、追加特徴量管理情報１２０は、メモリ２０１に格納されてもよい。
【００４０】
ネットワークインタフェース２０３は、ネットワーク１０５を介して他の装置と通信するためのインタフェースである。
【００４１】
図３は、実施例１のログ管理情報１２１のデータ構造の一例を示す図である。
【００４２】
ログ管理情報１２１は、ＩＤ３０１、時刻３０２、ケース番号３０３、イベント名３０４、及びユーザＩＤ３０５から構成されるレコードを複数格納する。一つのレコードが一つのログに対応する。
【００４３】
ＩＤ３０１は、ログ管理情報１２１に格納されるログを一意に識別するための識別情報を格納するカラムである。
【００４４】
時刻３０２は、イベントの発生に伴ってログが生成された時刻を格納するカラムである。なお、時刻３０２には、ストレージシステム１０１にログが保存された時刻が格納されてもよい。
【００４５】
ケース番号３０３は、関連するイベントを対応づける識別情報であるケース番号を格納するカラムである。
【００４６】
イベント名３０４は、イベントの識別情報を格納するカラムである。本実施例では、イベントの名称がイベントの識別情報として格納される。
【００４７】
ユーザＩＤ３０５は、イベントに関連するオペレータの識別情報を格納するカラムである。
【００４８】
なお、図３に示すレコードの構造は一例であってこれに限定されない。例えば、レコードは、イベントの種別等を格納するカラムを含んでもよい。本実施例では、ログは、少なくとも時刻３０２、ケース番号３０３、及びイベント名３０４を含むものとする。
【００４９】
業務システムは、業務において、ユーザによる作業及び画面を介した更新等が行われたタイミングでログを生成し、ストレージシステム１０１にログを格納する。なお、ログの保存方法は、前述の方法に限定されない。例えば、業務システムに蓄積されたログを、任意のタイミングでストレージシステム１０１にバックアップしてもよい。
【００５０】
図４は、実施例１の追加特徴量管理情報１２０のデータ構造の一例を示す図である。
【００５１】
追加特徴量管理情報１２０は、ＩＤ４０１、モジュール名４０２、カラム名４０３、演算子４０４、及び追加カラム名４０５から構成されるレコードを一つ以上格納する。一つのレコードが、一つの追加特徴量の設定情報に対応する。
【００５２】
ＩＤ４０１は、追加特徴量管理情報１２０のレコードを一意に識別するための識別情報を格納するカラムである。
【００５３】
モジュール名４０２は、追加特徴量を算出するためのログのペアのリストを生成する処理モジュールの識別情報を格納するカラムである。本実施例では、処理モジュールの名称が処理モジュールの識別情報として格納される。処理モジュールは、複数のログが入力された場合、比較するログのペアを生成し、ログのペアのリストを出力する。なお、処理モジュールは、Ｊａｖａ（登録商標、以下同じ）及びＰｙｓｏｎ等、システムが解釈可能なバイト列又はコードで記述される。
【００５４】
カラム名４０３は、追加特徴量を算出するために用いるログのカラムの識別情報を格納するカラムである。
【００５５】
演算子４０４は、追加特徴量の算出時に用いる演算子又は関数に関する情報を格納するカラムである。図４に示す演算子４０４の「ｄｉｆｆ」は、二つのログのカラム名４０３の差分を算出する演算子を表す。
【００５６】
追加カラム名４０５は、算出された追加特徴量を格納するカラムの名称を格納するカラムである。
【００５７】
図５は、実施例１の業務フロー解析装置１００が実行する処理の概要を説明するフローチャートである。
【００５８】
業務フロー解析装置１００は、端末１０２から業務フローのパターンの生成要求を受け付けた場合、以下で説明する処理を開始する。なお、業務フロー解析装置１００が入力装置及び出力装置を有する場合、当該入力装置を用いて前述の生成要求を入力してもよい。
【００５９】
業務フロー解析装置１００は、ストレージシステム１０１からログ管理情報１２１を取得し、業務フロー生成処理を実行する（ステップＳ１０１）。
【００６０】
具体的には、業務フロー生成部１１０は、取得したログ管理情報１２１の各ログのケース番号３０３を参照し、ケース番号３０３の値が同一であるログのグループを生成する。業務フロー生成部１１０は、各グループに含まれるログを、時刻３０２に基づいてイベントの発生順にソートする。以上の処理によって生成されたグループが業務フローに対応する。
【００６１】
例えば、図３に示すログが取得された場合、業務フロー生成部１１０は、業務フローとしてログ配列（０，１，２，３）及びログ配列（４，５，６，７）を生成する。なお、ログ配列の数値は、ＩＤ３０１の値を示す。ログ配列におけるログ（ＩＤ３０１）の順番はイベントの発生順に対応する。
【００６２】
次に、業務フロー解析装置１００は追加特徴量算出処理を実行する（ステップＳ１０２）。追加特徴量算出処理の詳細は図７を用いて説明する。
【００６３】
次に、業務フロー解析装置１００は、業務フローパターン生成処理を実行する（ステップＳ１０３）。具体的には以下のような処理が実行される。
【００６４】
（処理Ｂ１）アライメント解析部１１２は、距離算出部１１３と連携して、複数の業務フローを表す複数のログ配列を、比較可能なログ配列に変換するアライメント解析を実行する。アライメント解析では、（処理Ａ１）及び（処理Ａ２）が実行される。
【００６５】
このとき、ログ配列を決定する場合に使用する距離の算出時に、ログに含まれる少なくとも一つの特徴量に加えて、追加特徴量を用いる点に特徴を有する。
【００６６】
ログに含まれる特徴量、例えば、イベント名に基づいて、アライメント解析を実行した場合、イベントの内容が異なるにもかかわらず、同一のログ配列として業務フローが抽出される可能性がある。
【００６７】
一方、本実施例では、イベントの内容の相違及びイベント間の関連性等を表す追加特徴量を考慮したアライメント解析を実行することによって、イベントの内容の相違等を考慮したログ配列を算出することができる。
【００６８】
（処理Ｂ２）アライメント解析部１１２は、変換されたログ配列に基づいて業務フローを分類することによって、業務フローのパターンを生成する。アライメント解析部１１２は、業務フローのパターンに関する情報を生成し、端末１０２に当該情報を送信する。以上がステップＳ１０３の処理の説明である。
【００６９】
図６は、実施例１の業務フロー解析装置１００が実行する追加特徴量算出処理の一例を説明するフローチャートである。図７は、実施例１のログ管理情報１２１の更新結果の一例を示す図である。
【００７０】
特徴量追加部１１１は、業務フロー生成部１１０から業務フローの情報が入力された場合、以下で説明する処理を開始する。
【００７１】
特徴量追加部１１１は、追加特徴量管理情報１２０を参照し、追加特徴量の設定情報を取得する（ステップＳ２０１）。使用する設定情報は予め設定されていてもよいし、業務フローのパターンの生成要求に含まれてもよい。
【００７２】
次に、特徴量追加部１１１は、追加特徴量の設定情報に基づいて、全てのログに追加カラムを設定する（ステップＳ２０２）。
【００７３】
図４に示す追加特徴量の設定情報が適用された場合、特徴量追加部１１１は、日数７０１を追加カラムとして設定する。
【００７４】
次に、特徴量追加部１１１は、業務フローのループ処理を開始する（ステップＳ２０３）。具体的には、特徴量追加部１１１は、複数の業務フローの中からターゲット業務フローを選択する。
【００７５】
次に、特徴量追加部１１１は、追加特徴量の設定情報に基づいて、ターゲット業務フローに対応するログ配列に含まれる複数のログからログペアを生成する（ステップＳ２０４）。
【００７６】
図４に示す追加特徴量の設定情報が適用された場合、特徴量追加部１１１は、モジュールを呼び出す。当該モジュールは、ターゲット業務フローの最初のログと、他のログとのペアをログペアとして生成し、特徴量追加部１１１にログペアのリストを出力する。例えば、ターゲット業務フローに対応するログ配列が（０，１，２，３）の場合、（０，１）、（０，２）、（０，３）がログペアとして生成される。
【００７７】
次に、特徴量追加部１１１は、ログペアのループ処理を開始する（ステップＳ２０５）。具体的には、特徴量追加部１１１は、複数のログペアの中からターゲットログペアを選択する。
【００７８】
次に、特徴量追加部１１１は、追加特徴量の設定情報に基づいてターゲットログペアに対する解析を実行することによって、追加特徴量を算出する（ステップＳ２０６）。
【００７９】
図４に示す追加特徴量の設定情報が適用された場合、特徴量追加部１１１は、ログペアの時刻３０２の差分を追加特徴量として算出する。
【００８０】
次に、特徴量追加部１１１は、ステップＳ２０２において設定された追加カラムに、算出された追加特徴量を設定する（ステップＳ２０７）。
【００８１】
図４に示す追加特徴量の設定情報が適用された場合、特徴量追加部１１１は、ターゲット業務フローの最初のログとペアを構成する他のログの追加カラムに追加特徴量を設定する。例えば、（０，１）がターゲットログペアとして選択された場合、ＩＤ３０１が「１」であるログ（レコード）の日数７０１に追加特徴量を設定する。なお、最初のログの日数７０１には「０」を設定する。
【００８２】
次に、特徴量追加部１１１は、全てのログペアに対して処理が完了したか否かを判定する（ステップＳ２０８）。
【００８３】
全てのログペアに対して処理が完了していないと判定された場合、特徴量追加部１１１は、ステップＳ２０５に戻り、同様の処理を実行する。
【００８４】
全てのログペアに対して処理が完了したと判定された場合、特徴量追加部１１１は、全ての業務フローに対して処理が完了したか否かを判定する（ステップＳ２０９）。
【００８５】
全ての業務フローに対して処理が完了していないと判定された場合、特徴量追加部１１１は、ステップＳ２０３に戻り、同様の処理を実行する。
【００８６】
全ての業務フローに対して処理が完了したと判定された場合、特徴量追加部１１１は追加特徴量算出処理を終了する。
【００８７】
以上の処理によって、業務フロー解析装置１００が保持するログ管理情報１２１は、図７に示すような状態に更新される。
【００８８】
次に、アライメント解析における業務フローの距離の算出方法について説明する。図８及び図９は、実施例１の業務フロー解析装置１００が実行する業務フローの距離算出処理の一例を説明するフローチャートである。
【００８９】
アライメント解析部１１２は、ログ管理情報１２１の各ログの追加カラムに追加特徴量が設定された後、各業務フローに対して以下で説明する処理を実行する。
【００９０】
アライメント解析部１１２は、距離を表す変数Ｌに初期値「０」を設定する（ステップＳ３０１）。
【００９１】
次に、アライメント解析部１１２は、業務フローに含まれるログからログペアを生成する（ステップＳ３０２）。ここでは、イベントの発生順、すなわち、ログの順番に基づいてログペアが生成される。例えば、業務フローが（０，１，２，３）の場合、（０，１）、（０，２）、（０，３）、（１，２）、（１，３）、（２，３）がログペアとして生成される。
【００９２】
次に、アライメント解析部１１２は、ログペアのループ処理を開始する（ステップＳ３０３）。具体的には、アライメント解析部１１２は、複数のログペアの中からターゲットログペアを選択する。
【００９３】
次に、アライメント解析部１１２は、距離算出部１１３を呼び出し、距離算出部１１３に対してターゲットログペアの情報を出力する（ステップＳ３０４）。アライメント解析部１１２は、待ち状態に遷移し、距離算出部１１３からの更新値αの出力を待つ。
【００９４】
次に、アライメント解析部１１２は、距離算出部１１３から更新値が出力された場合、距離Ｌの値に更新値αを加算した値を、距離Ｌに設定する（ステップＳ３０５）。
【００９５】
次に、アライメント解析部１１２は、全てのログペアに対して処理が完了したか否かを判定する（ステップＳ３０６）。
【００９６】
全てのログペアに対して処理が完了していないと判定された場合、アライメント解析部１１２は、ステップＳ３０３に戻り、同様の処理を実行する。
【００９７】
全てのログペアに対して処理が完了したと判定された場合、アライメント解析部１１２は処理を終了する。
【００９８】
距離算出部１１３は、アライメント解析部１１２から呼び出された場合、以下で説明する処理を開始する。
【００９９】
距離算出部１１３は、更新値を表す変数αに初期値「０」を設定する（ステップＳ４０１）。
【０１００】
次に、距離算出部１１３は、比較カラムのループ処理を開始する（ステップＳ４０２）。具体的には、複数の比較カラムの中からターゲット比較カラムを選択する。
【０１０１】
ここで、比較カラムはログ間で比較するカラムを表す。ログの少なくとも一つのカラムと、追加特徴量を格納する追加カラムとが比較カラムとして設定されている。本実施例では、イベント名３０４及び日数３０６が比較カラムとして選択される。
【０１０２】
次に、距離算出部１１３は、ターゲット比較カラムの値が文字列であるか否かを判定する（ステップＳ４０３）。
【０１０３】
ターゲット比較カラムの値が文字列であると判定された場合、距離算出部１１３は、ログペアのターゲット比較カラムに格納される文字列が一致するか否かを判定する（ステップＳ４０４）。
【０１０４】
ログペアのターゲット比較カラムに格納される文字列が一致すると判定された場合、距離算出部１１３はステップＳ４０８に進む。
【０１０５】
ログペアのターゲット比較カラムに格納される文字列が一致しないと判定された場合、距離算出部１１３は、更新値αの値に固定値ａを加算した値を、更新値αに設定する（ステップＳ４０５）。その後、距離算出部１１３はステップＳ４０８に進む。なお、固定値ａは予め設定されているものとする。
【０１０６】
ステップＳ４０３において、ターゲット比較カラムの値が文字列でないと判定された場合、距離算出部１１３は、ターゲット比較カラムの値が数値であるか否かを判定する（ステップＳ４０６）。
【０１０７】
ターゲット比較カラムの値が数値でないと判定された場合、距離算出部１１３はステップＳ４０８に進む。
【０１０８】
ターゲット比較カラムの値が数値であると判定された場合、距離算出部１１３は、更新値αの値に、ターゲット比較カラムの値の差分に係数ｂを乗算した値が加算された値を、更新値αに設定する（ステップＳ４０７）。その後、距離算出部１１３はステップＳ４０８に進む。なお、係数ｂは予め設定されているものとする。
【０１０９】
ステップＳ４０８では、距離算出部１１３は、全ての比較カラムについて処理が完了したか否かを判定する（ステップＳ４０８）。
【０１１０】
全ての比較カラムについて処理が完了していないと判定された場合、距離算出部１１３は、ステップＳ４０２に戻り、同様の処理を実行する。
【０１１１】
全ての比較カラムについて処理が完了したと判定された場合、距離算出部１１３は、更新値αをアライメント解析部１１２に出力し（ステップＳ４０９）、その後、処理を終了する。
【０１１２】
次に、業務フローに対応するログ配列の変換結果及び業務フローのパターンを用いて、実施例１の効果を説明する。図１０Ａは、追加特徴量が追加されたログを用いたアライメント解析によって算出されるログ配列の変換結果の一例を示す図である。図１０Ｂは、追加特徴量が追加されたログを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。図１１Ａは、追加特徴量が追加されていないログを用いたアライメント解析によって算出されるログ配列の変換結果の一例を示す図である。図１１Ｂは、追加特徴量が追加されていないログを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。
【０１１３】
図７に示すログに対してアライメント解析を実行した場合、図１０Ａに示す業務フローに対応するログ配列の変換結果１０００が得られる。変換結果１０００は、行列形式のデータであり、行はノードに対応し、列は業務フローに対応する。変換結果１０００からは、図１０Ｂに示す業務フローのパターン１０１０が生成される。
【０１１４】
一方、図３に示すログに対してアライメント解析を実行した場合、図１１Ａに示す業務フローに対応するログ配列の変換結果１１００が得られる。変換結果１１００のデータ構造は変換結果１０００と同一である。変換結果１１００からは、図１１Ｂに示す業務フローのパターン１１１０が生成される。
【０１１５】
このように、追加特徴量を考慮したアライメント解析を実行することによって、業務フローをより詳細に分類することができる。
【０１１６】
以上で説明したように、実施例１によれば、業務フローを適切に分類することができる。これによって、より適切の業務フローのパターンを生成することができる。
【実施例２】
【０１１７】
実施例２では、複数の業務フローを集約し、さらに、集約された業務フローに含まれるログからログブロックを構成し、ログブロック配列から業務フローのパターンを生成する点が実施例１と異なる。以下、実施例１との差異を中心に実施例２について説明する。
【０１１８】
図１２は、実施例２の計算機システムの構成の一例を示す図である。図１３は、実施例２のログ管理情報１２１のデータ構造の一例を示す図である。
【０１１９】
実施例２の計算機システムの構成は実施例１の計算機システムの構成と同一である。実施例２の業務フロー解析装置１００、ストレージシステム１０１、及び端末１０２のハードウェア構成は、実施例１の各装置のハードウェア構成と同一である。また、実施例２の端末１０２のソフトウェア構成は、実施例１の端末１０２のソフトウェア構成と同一である。
【０１２０】
実施例２の業務フロー解析装置１００のソフトウェア構成は、実施例１の業務フローのパターンのソフトウェア構成と一部異なる。具体的には、実施例２の業務フロー解析装置１００は、新たに、ログブロック生成部１２１０を有し、また、集約条件管理情報１２２０を保持する。
【０１２１】
集約条件管理情報１２２０は、ログを集約するための条件を格納する。集約条件管理情報１２２０の詳細は図１５を用いて説明する。
【０１２２】
ログブロック生成部１２１０は、集約条件管理情報１２２０に基づいて、業務フローに含まれるログを集約してログブロックを生成する。実施例２では、業務フローはログブロックの集合として扱われる。
【０１２３】
実施例２のストレージシステム１０１は、新たに、業務フロー関連性管理情報１２２１を格納する。業務フロー関連性管理情報１２２１は、業務フロー間の関連性を管理するための情報である。業務フロー関連性管理情報の詳細は図１４を用いて説明する。
【０１２４】
実施例２のストレージシステム１０１は、図１３に示すようなログが格納されたログ管理情報１２１を保持するものとする。なお、実施例２のログ管理情報１２１のデータ構造は、実施例１のログ管理情報１２１（図３参照）のデータ構造と同一である。
【０１２５】
図１４は、実施例２の業務フロー関連性管理情報１２２１のデータ構造の一例を示す図である。
【０１２６】
業務フロー関連性管理情報１２２１は、ＩＤ１４０１及び関連性１４０２から構成されるレコードを一つ以上格納する。一つのレコードが、業務フロー間の関係性を示す情報に対応する。
【０１２７】
ＩＤ１４０１は、業務フロー関連性管理情報１２２１のレコードを一意に識別するための識別情報を格納するカラムである。
【０１２８】
関連性１４０２は、関連性を有する業務フローの識別情報を格納するカラムである。関連性１４０２には、関連性を有するケース番号の組が格納される。図１４の関連性１４０２には、二つのケース番号が格納される。なお、業務フロー関連性管理情報１２２１は、関連性１４０２に三つ以上の業務フローの識別情報が格納されるレコードを含んでもよい。
【０１２９】
図１５は、実施例２の集約条件管理情報１２２０のデータ構造の一例を示す図である。
【０１３０】
集約条件管理情報１２２０は、参照カラム１５０１及び集約条件１５０２から構成されるレコードを一つ以上格納する。一つのレコードが、一つの集約条件に対応する。
【０１３１】
参照カラム１５０１は、集約条件の対象となるカラムの識別情報を格納するカラムである。
【０１３２】
集約条件１５０２は、集約条件を格納するカラムである。図１５の集約条件１５０２には、条件を表す文字列が格納される。なお、集約条件１５０２には、条件式及び演算子等が格納されてもよい。
【０１３３】
図１６は、実施例２の業務フロー解析装置１００が実行する処理の概要を説明するフローチャートである。図１７Ａ、図１７Ｂ、及び図１７Ｃは、実施例２のログ管理情報１２１の更新結果の一例を示す図である。
【０１３４】
業務フロー解析装置１００は、ストレージシステム１０１からログ管理情報１２１を取得し、業務フロー生成処理を実行する（ステップＳ１０１）。具体的には、以下のような処理が実行される。
【０１３５】
業務フロー生成部１１０は、取得したログ管理情報１２１の各ログのケース番号３０３を参照し、ケース番号３０３の値が同一であるログのグループを生成する。業務フロー生成部１１０は、各グループについて、時刻３０２に基づいてイベントの発生順にログをソートする。
【０１３６】
業務フロー生成部１１０は、業務フロー関連性管理情報１２２１を参照し、関連する業務フローに対応するグループを集約する。さらに、業務フロー生成部１１０は、時刻３０２に基づいて、集約されたグループに含まれるログをイベントの発生順にソートする。以下の説明では、集約された業務フローを集約業務フローとも記載する。
【０１３７】
業務フロー生成部１１０は、集約業務フローの識別情報を格納するカラムとして、ＡＦ＿ＩＤ１７０１をログ管理情報１２１に追加する。業務フロー生成部１１０は、追加されたＡＦ＿ＩＤ１７０１に識別情報を設定する。
【０１３８】
以上の処理によって、ログ管理情報１２１は、図１７Ａに示すような状態に更新される。
【０１３９】
なお、関連する業務フローが存在しない業務フローについては、一つの業務フローから構成される集約業務フローとして管理される。したがって、前述した集約業務フローのＡＦ＿ＩＤ１７０１にも識別情報が設定される。以上が、ステップＳ１０１の処理の説明である。
【０１４０】
次に、業務フロー解析装置１００は、集約条件管理情報１２２０を用いてログ集約処理を実行する（ステップＳ１５１）。ログ集約処理の詳細は図１８を用いて説明する。
【０１４１】
業務フロー解析装置１００は、ログ集約処理を実行することによって、集約業務フローに含まれるログをログブロックに変換する。これによって、ログ管理情報１２１は図１７Ｂに示すような状態に更新される。ここで、Ｂ＿ＩＤ１７０２は、ログブロックの識別番号を格納するカラムである。
【０１４２】
次に、業務フロー解析装置１００は、追加特徴量算出処理を実行する（ステップＳ１０２）。実施例２の追加特徴量算出処理は実施例１の処理と一部異なる。ここで、実施例１との差異を説明する。
【０１４３】
ステップＳ２０２において、特徴量追加部１１１は、ログブロックに追加カラムを設定する。
【０１４４】
ステップＳ２０４において、特徴量追加部１１１は、ログブロックのペアを生成する。また、ステップＳ２０５からステップＳ２０８では、ログブロックのペアのループ処理を実行する。
【０１４５】
ステップＳ２０６では、特徴量追加部１１１は、追加特徴量の設定情報に基づいてターゲットログペアに対する解析を実行することによって、追加特徴量を算出する。
【０１４６】
図４に示す追加特徴量の設定情報が適用された場合、特徴量追加部１１１は、ログブロックに含まれるログ中で最も遅い時刻の差分を追加特徴量として算出する。
【０１４７】
以上の処理によって、ログ管理情報１２１は図１７Ｃに示すような状態に更新される。
【０１４８】
なお、前述の追加特徴量の算出方法は一例であってこれに限定されない。例えば、一つのログブロックの時刻３０２が最も遅いログと、他のログブロックに含まれる各ログの時刻３０２との差分の統計値を追加特徴量として算出してもよい。以上がステップＳ１０２の処理の説明である。
【０１４９】
次に、業務フロー解析装置１００は、業務フローパターン生成処理を実行する（ステップＳ１０３）。実施例２の業務フローパターン生成処理は実施例１と一部異なる。具体的には以下のような処理が実行される。
【０１５０】
（処理Ｃ１）アライメント解析部１１２は、距離算出部１１３と連携して、複数の業務フローに対応するログブロック配列を、比較可能なログブロック配列に変換するアライメント解析を実行する。（処理Ａ１）及び（処理Ａ２）は、ログブロック単位で行われる点が異なる。なお、ログブロック間の距離の算出方法については、図１９を用いて説明する。
【０１５１】
（処理Ｃ２）アライメント解析部１１２は、変換されたログブロック配列に基づいて業務フローを分類することによって、業務フローのパターンを生成する。アライメント解析部１１２は、業務フローのパターンに関する情報を生成し、端末１０２に当該情報を送信する。以上がステップＳ１０３の処理の説明である。
【０１５２】
図１８は、実施例２の業務フロー解析装置１００が実行するログ集約処理の一例を説明するフローチャートである。
【０１５３】
ログブロック生成部１２１０は、業務フロー生成部１１０から業務フローの情報が入力された場合、以下で説明する処理を開始する。
【０１５４】
ログブロック生成部１２１０は、集約業務フローのループ処理を開始する（ステップＳ５０１）。具体的には、ログブロック生成部１２１０は、複数の集約業務フローの中からターゲット集約業務フローを選択する。
【０１５５】
次に、ログブロック生成部１２１０は、ターゲット集約業務フローに対応するログ配列に含まれるログからログペアを生成する（ステップＳ５０２）。ステップＳ５０２の処理はステップＳ３０２の処理と同様の処理である。
【０１５６】
次に、ログブロック生成部１２１０は、ログペアのループ処理を開始する（ステップＳ５０３）。具体的には、ログブロック生成部１２１０は、複数のログペアの中からターゲットログペアを選択する。
【０１５７】
次に、ログブロック生成部１２１０は、集約条件管理情報１２２０を参照し、ターゲットログペアを構成する二つのログを集約できるか否かを判定する（ステップＳ５０４）。
【０１５８】
具体的には、ログブロック生成部１２１０は、集約条件管理情報１２２０に定義された全ての集約条件（レコード）を満たすか否かを判定する。全ての集約条件を満たす場合、ログブロック生成部１２１０は、二つのログを集約できると判定する。
【０１５９】
ターゲットログペアを構成する二つのログを集約できないと判定された場合、ログブロック生成部１２１０はステップＳ５０６に進む。
【０１６０】
ターゲットログペアを構成する二つのログを集約できると判定された場合、ログブロック生成部１２１０は、ターゲットログペアに集約フラグを付与し（ステップＳ５０５）、その後、ステップＳ５０６に進む。
【０１６１】
ステップＳ５０６では、ログブロック生成部１２１０は、全てのログペアについて処理が完了したか否かを判定する（ステップＳ５０６）。
【０１６２】
全てのログペアについて処理が完了していないと判定された場合、ログブロック生成部１２１０は、ステップＳ５０３に戻り、同様の処理を実行する。
【０１６３】
全てのログペアについて処理が完了したと判定された場合、ログブロック生成部１２１０は、集約フラグに基づいてログブロックを生成する（ステップＳ５０７）。具体的には、以下のような処理が実行される。
【０１６４】
ログブロック生成部１２１０は、集約フラグが付与されていないログペアのそれぞれのログを一つのログブロックとして生成する。また、ログブロック生成部１２１０は、集約フラグを付与されたログペアを一つのログブロックとして生成する。ログブロック生成部１２１０は、各ログブロックを参照し、共通するログを含むログブロックを一つのログブロックに集約する。
【０１６５】
ログブロック生成部１２１０は、各ログブロックに識別情報を設定する。ログブロック生成部１２１０は、処理結果に基づいて、業務フロー解析装置１００が保持するログ管理情報１２１を更新する。具体的には、ログブロック生成部１２１０は、Ｂ＿ＩＤ１７０２に識別情報を設定する。以上がステップＳ５０７の処理の説明である。
【０１６６】
次に、ログブロック生成部１２１０は、全ての集約業務フローについて処理が完了したか否かを判定する（ステップＳ５０８）。
【０１６７】
全ての集約業務フローについて処理が完了していないと判定された場合、ログブロック生成部１２１０は、ステップＳ５０１に戻り、同様の処理を実行する。
【０１６８】
全ての集約業務フローについて処理が完了したと判定された場合、ログブロック生成部１２１０は、ログ集約処理を終了する。
【０１６９】
次に、シーケンスアライメント解析における業務フローの距離の算出方法について説明する。図１９及び図２０は、実施例２の業務フロー解析装置１００が実行する業務フローの距離算出処理の一例を説明するフローチャートである。
【０１７０】
アライメント解析部１１２は、ログ管理情報１２１の各ログの追加カラムに追加特徴量が設定された後、各業務フローに対して以下で説明する処理を実行する。
【０１７１】
アライメント解析部１１２は、変数Ｌに初期値「０」を設定した後（ステップＳ３０１）、業務フローに対応するログブロック配列に含まれるログブロックからログブロックペアを生成する（ステップＳ３５１）。ここでは、イベントの発生順、すなわち、ログブロックの順番に基づいてログブロックペアが生成される。例えば、業務フローに対応するログブロック配列が（Ｂ０，Ｂ１，Ｂ２，Ｂ３）の場合、（Ｂ０，Ｂ１）、（Ｂ０，Ｂ２）、（Ｂ０，Ｂ３）、（Ｂ１，Ｂ２）、（Ｂ１，Ｂ３）、（Ｂ２，Ｂ３）がログブロックペアとして生成される。
【０１７２】
次に、アライメント解析部１１２は、ログブロックペアのループ処理を開始する（ステップＳ３５２）。具体的には、アライメント解析部１１２は、複数のログブロックペアの中からターゲットログブロックペアを選択する。
【０１７３】
次に、アライメント解析部１１２は、距離算出部１１３を呼び出し、距離算出部１１３に対してターゲットログブロックペアの情報を出力する（ステップＳ３５３）。アライメント解析部１１２は、距離算出部１１３から更新値αが出力されるまで待ち状態に移行する。
【０１７４】
次に、アライメント解析部１１２は、距離算出部１１３から更新値を取得した場合、距離Ｌの値に更新値αの値を加算した値を、距離Ｌに設定する（ステップＳ３０５）。
【０１７５】
次に、アライメント解析部１１２は、全てのログブロックペアに対して処理が完了したか否かを判定する（ステップＳ３０６）。
【０１７６】
全てのログペアに対して処理が完了していないと判定された場合、アライメント解析部１１２は、ステップＳ３０３に戻り、同様の処理を実行する。
【０１７７】
全てのログペアに対して処理が完了したと判定された場合、アライメント解析部１１２は処理を終了する。
【０１７８】
距離算出部１１３は、アライメント解析部１１２から呼び出された場合、以下で説明する処理を開始する。
【０１７９】
距離算出部１１３は、更新値を表す変数αに初期値「０」を設定する（ステップＳ４０１）。
【０１８０】
次に、距離算出部１１３は、比較カラムのループ処理を開始する（ステップＳ４０２）。具体的には、複数の比較カラムの中からターゲット比較カラムを選択する。
【０１８１】
次に、距離算出部１１３は、ターゲット比較カラムの値が文字列であるか否かを判定する（ステップＳ４０３）。
【０１８２】
ターゲット比較カラムの値が文字列であると判定された場合、距離算出部１１３は、ログブロックペアのログペアのループ処理を開始する（ステップＳ４５１）。
【０１８３】
具体的には、距離算出部１１３は、一つのログブロックに含まれるログと他のログブロックに含まれるログを組み合わせてログペアを生成し、生成されたログペアの中からターゲットログペアを選択する。
【０１８４】
次に、距離算出部１１３は、ログペアのターゲット比較カラムに格納される文字列が一致するか否かを判定する（ステップＳ４０４）。
【０１８５】
ログペアのターゲット比較カラムに格納される文字列が一致すると判定された場合、距離算出部１１３はステップＳ４５２に進む。
【０１８６】
ログペアのターゲット比較カラムに格納される文字列が一致しないと判定された場合、距離算出部１１３は、更新値αの値に固定値ａを加算した値を、更新値αに設定する（ステップＳ４０５）。その後、距離算出部１１３はステップＳ４５２に進む。なお、固定値ａは予め設定されているものとする。
【０１８７】
ステップＳ４５２では、距離算出部１１３は、全てのログペアに対して処理が完了したか否かを判定する（ステップＳ４５２）。
【０１８８】
全てのログペアに対して処理が完了していないと判定された場合、距離算出部１１３は、ステップＳ４５１に戻り、同様の処理を実行する。
【０１８９】
全てのログペアに対して処理が完了したと判定された場合、距離算出部１１３は、ステップＳ４０８に進む。
【０１９０】
ステップＳ４０３において、ターゲット比較カラムの値が文字列でないと判定された場合、距離算出部１１３は、ターゲット比較カラムの値が数値であるか否かを判定する（ステップＳ４０６）。
【０１９１】
ターゲット比較カラムの値が数値でないと判定された場合、距離算出部１１３はステップＳ４０８に進む。
【０１９２】
ターゲット比較カラムの値が数値であると判定された場合、距離算出部１１３は、一つのログブロックに含まれるログと他のログブロックに含まれるログを組み合わせてログペアを生成し、全てのログペアについて、ターゲット比較カラムの値が一致するか否かを判定する（ステップＳ４５３）。
【０１９３】
全てのログペアについて、ターゲット比較カラムの値が一致すると判定された場合、距離算出部１１３はステップＳ４０８に進む。
【０１９４】
少なくとも一つのログペアについて、ターゲット比較カラムの値が一致しないと判定された場合、距離算出部１１３は、ターゲットログブロックペアを構成する各ログブロックにおけるターゲット比較カラムの代表値を算出する（ステップＳ４５４）。
【０１９５】
例えば、距離算出部１１３は、ログブロックに含まれるログのターゲット比較カラムの値に基づいて、ターゲット比較カラム値の最大値、最小値、平均値、中央値、及び分散値等を代表値として算出する。
【０１９６】
次に、距離算出部１１３は、代表値の差分に係数ｂを乗算した値が加算された値を、更新値αに設定する（ステップＳ４５５）。その後、距離算出部１１３はステップＳ４０８に進む。なお、係数ｂは予め設定されているものとする。
【０１９７】
ステップＳ４０８では、距離算出部１１３は、全ての比較カラムについて処理が完了したか否かを判定する（ステップＳ４０８）。
【０１９８】
全ての比較カラムについて処理が完了していないと判定された場合、距離算出部１１３は、ステップＳ４０２に戻り、同様の処理を実行する。
【０１９９】
全ての比較カラムについて処理が完了したと判定された場合、距離算出部１１３は。更新値αをアライメント解析部１１２に出力し（ステップＳ４０９）、その後、処理を終了する。
【０２００】
次に、業務フローに対応するログブロック配列の変換結果及び業務フローのパターンを用いて、実施例２の効果を説明する。図２１Ａは、追加特徴量が追加されたログブロックを用いたアライメント解析によって算出されるログブロック配列の変換結果の一例を示す図である。図２１Ｂは、追加特徴量が追加されたログブロックを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。図２２Ａは、追加特徴量が追加されていないログブロックを用いたアライメント解析によって算出されるログブロック配列の変換結果の一例を示す図である。図２２Ｂは、追加特徴量が追加されていないログブロックを用いたアライメント解析に基づいて出力される業務フローのパターンの一例を示す図である。
【０２０１】
図１７Ｃに示すログ管理情報１２１に対してアライメント解析を実行した場合、図２１Ａに示す業務フローに対応するログブロック配列の変換結果２１００が得られる。変換結果２１００は、行列形式のデータであり、行はノードに対応し、列は集約業務フローに対応する。変換結果２０００からは、図２１Ｂに示す業務フローのパターン２１１０が生成される。
【０２０２】
一方、図１７Ａに示すログ管理情報１２１に対してアライメント解析を実行した場合、図２２Ａに示す業務フローに対応するログブロック配列の変換結果２２００が得られる。変換結果２２００のデータ構造は変換結果２１００と同一である。変換結果２２００からは、図２２Ｂに示す業務フローのパターン２２１０が生成される。
【０２０３】
業務フローを集約することによって、大規模な業務フローのパターンを生成することができる。また、ブロック単位にログを集約することによって、順不同のイベント群を特定することができる。
【０２０４】
実施例２では、業務フローの集約及び業務フローに含まれるログの集約を行っていたが、いずれか一方のみを行ってもよい。
【０２０５】
以上で説明したように、実施例２によれば、業務フローを集約し、また、業務フローを構成するログを集約することによって、より適切の業務フローのパターンを生成することができる。
【０２０６】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０２０７】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０２０８】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｐｙｔｈｏｎ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０２０９】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０２１０】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０２１１】
１００  業務フロー解析装置
１０１  ストレージシステム
１０２  端末
１０５  ネットワーク
１１０  業務フロー生成部
１１１  特徴量追加部
１１２  アライメント解析部
１１３  距離算出部
１１４  視覚化部
１２０  追加特徴量管理情報
１２１  ログ管理情報
１２１０  ログブロック生成部
１２２０  集約条件管理情報
１２２１  業務フロー関連性管理情報
２００  プロセッサ
２０１  メモリ
２０２  記憶装置
２０３  ネットワークインタフェース
【図１】
2020052451.tif 000003
【図２】
2020052451.tif 000004
【図３】
2020052451.tif 000005
【図４】
2020052451.tif 000006
【図５】
2020052451.tif 000007
【図６】
2020052451.tif 000008
【図７】
2020052451.tif 000009
【図８】
2020052451.tif 000010
【図９】
2020052451.tif 000011
【図１０Ａ】
2020052451.tif 000012
【図１０Ｂ】
2020052451.tif 000013
【図１１Ａ】
2020052451.tif 000014
【図１１Ｂ】
2020052451.tif 000015
【図１２】
2020052451.tif 000016
【図１３】
2020052451.tif 000017
【図１４】
2020052451.tif 000018
【図１５】
2020052451.tif 000019
【図１６】
2020052451.tif 000020
【図１７Ａ】
2020052451.tif 000021
【図１７Ｂ】
2020052451.tif 000022
【図１７Ｃ】
2020052451.tif 000023
【図１８】
2020052451.tif 000024
【図１９】
2020052451.tif 000025
【図２０】
2020052451.tif 000026
【図２１Ａ】
2020052451.tif 000027
【図２１Ｂ】
2020052451.tif 000028
【図２２Ａ】
2020052451.tif 000029
【図２２Ｂ】
2020052451.tif 000030