(57)【要約】【課題】同一装置上の他のアプリケーションがリソースを占有するなどして、データ変換処理の処理速度が劣化する場合やデータ変換処理が異常な挙動をする場合が生じる。これらの異常を常に監視すると、トラフィックの有無が激しいシステムの場合、異常の原因の特定が困難となり、無駄な異常検知が増加する。【解決手段】入力データに対して処理を行う処理手段と、前記処理手段からの出力データの出力量の計測を行う計測手段と、前記計測手段にて計測した出力データの出力量において、単位時間当たりの出力量の変化に基づいて異常を検知する検知手段と、前記検知手段にて異常を検知した場合に、ログを出力する出力手段とを有し、前記計測手段は、前記処理手段にて前記入力データに対する処理が行われている間、単位時間当たりの出力量の計測を行う。【選択図】  図５
2014115963.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対して処理を行う処理手段と、
前記処理手段からの出力データの出力量の計測を行う計測手段と、
前記計測手段にて計測した出力データの出力量において、単位時間当たりの出力量の変化に基づいて異常を検知する検知手段と、
前記検知手段にて異常を検知した場合に、ログを出力する出力手段と
を有し、
前記計測手段は、前記処理手段にて前記入力データに対する処理が行われている間、単位時間当たりの出力量の計測を行うことを特徴とする情報処理装置。
【請求項２】
前記検知手段は、連続する単位時間当たりの出力量が予め定義された閾値を超えて変化した場合、異常が生じたとして検知することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検知手段は、異常を検知してから一定の時間が経過するまで次の異常を検知しないことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記入力データが含む処理コマンドのうち、例外コマンドを予め定義して保持する保持手段を更に有し、
前記検知手段は、前記入力データに前記例外コマンドが含まれるか否かを判定し、前記例外コマンドを含む入力データが前記処理手段にて処理されている間に計測した出力量に対しては異常を検知しないことを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記入力データのデータ量から、前記処理手段による出力データの出力量に対する上限値と下限値を決定する決定手段を更に有し、
前記検知手段は、前記処理手段による出力データの出力量が前記上限値よりも大きい、もしくは、前記下限値よりも小さい場合に異常を検知することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記ログは、前記処理手段にて処理された内容を示すログと、前記処理手段にて処理を行っている際の前記情報処理装置が有するリソースの状態を示すログとを含むことを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前段のモジュールの出力データを後段のモジュールの入力データとする、多段構造を構成する複数のモジュールを有し、
前記複数のモジュールはそれぞれ、前記処理手段と、前記計測手段と、前記検知手段と、前記出力手段とを有し、
前記複数のモジュールそれぞれの検知手段は、前段のモジュールの検知手段にてすでに検知した異常に起因して生じる単位時間当たりの出力量の変化は異常として検知しないことを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記検知手段は、異常を検知した場合に、前記複数のモジュールのうちの後段のモジュールに異常を検知した旨を通知することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記複数のモジュールそれぞれの検知手段は、前段のモジュールの検知手段にてすでに例外コマンドが入力データに含まれていることが示されている場合、当該例外コマンドへの処理に起因して生じる単位時間当たりの出力量の変化は異常として検知しないことを特徴とする請求項４に従属する請求項７に記載の情報処理装置。
【請求項１０】
前記検知手段は、入力データに例外コマンドが含まれている場合、前記複数のモジュールのうちの後段のモジュールにその旨を通知することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
処理手段が、入力データに対して処理を行う処理工程と、
計測手段が、前記処理工程からの出力データの出力量の計測を行う計測工程と、
検知手段が、前記計測工程にて計測した出力データの出力量において、単位時間当たりの出力量の変化に基づいて異常を検知する検知工程と、
出力手段が、前記検知工程にて異常を検知した場合に、ログを出力する出力工程と
を有し、
前記計測工程は、前記処理工程にて前記入力データに対する処理が行われている間、単位時間当たりの出力量の計測を行うことを特徴とする情報処理方法。
【請求項１２】
コンピュータを、
入力データに対して処理を行う処理手段、
前記処理手段からの出力データの出力量の計測を行う計測手段、
前記計測手段にて計測した出力データの出力量において、単位時間当たりの出力量の変化に基づいて異常を検知する検知手段、
前記検知手段にて異常を検知した場合に、ログを出力する出力手段
として機能させ、
前記計測手段は、前記処理手段にて前記入力データに対する処理が行われている間、単位時間当たりの出力量の計測を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法、及びプログラムに関し、特にデータ変換処理の異常検知をするための方法に関する。
【背景技術】
【０００２】
電子文書や画像等の入力データを受け取り、フォーマット変換処理を含むデータ変換を行う際、同一のＰＣ（パーソナルコンピュータ）上の他のアプリケーションがＣＰＵ、メモリ等のリソースを占有する場合がある。この場合、データ変換処理の処理速度が著しく劣化する場合やフォーマット変換処理が異常な挙動をする場合がある。サーバやクラウド環境でこのような現象が起きた場合、開発者や運用者は取得したログから原因を追究する必要がある。ログを常に出力することで原因の追究は可能になるが、ログに出力する情報の収集を頻繁に行うと、その処理のためにリソースが使用されてデータ変換処理の処理速度が劣化する。また、クラウド環境等の記憶領域の容量に制限がある場合はログを必要以上に出力することができない。
【０００３】
このような場合において、異常を検知した場合のみログの収集を行い、出力を行う必要がある。異常の検知方法としては、トラフィックを監視しトラフィックの変化が大きい場合のみ通知する方法がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−９８１６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では常にトラフィックを監視するため、トラフィックの変化が激しいシステムの場合、変化が生じるたびに異常を検知する。つまり、異常が発生したことによるトラフィック変化か想定内の変化なのかの特定が困難であり、無駄な異常検知が増加する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、入力データに対して処理を行う処理手段と、前記処理手段からの出力データの出力量の計測を行う計測手段と、前記計測手段にて計測した出力データの出力量において、単位時間当たりの出力量の変化に基づいて異常を検知する検知手段と、前記検知手段にて異常を検知した場合に、ログを出力する出力手段とを有し、前記計測手段は、前記処理手段にて前記入力データに対する処理が行われている間、単位時間当たりの出力量の計測を行うことを特徴とする。
【発明の効果】
【０００７】
本発明により、無駄な異常の検知を抑制しつつ、適切なログを出力することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置と印刷装置の構成例を示す図。
【図２】フォーマット変換部の構成例を示すブロック図。
【図３】出力データ送信量の計測結果の例を示す図。
【図４】フォーマット変換処理のフローチャート。
【図５】出力データ送信量計測処理のフローチャート。
【図６】異常検知処理のフローチャート。
【図７】異常の判定方法を説明するためのグラフ。
【図８】ログデータ生成のフローチャート。
【図９】ログの構成例を表す図。
【図１０】実施形態２に係るフォーマット変換処理のフローチャート。
【図１１】実施形態２に係る異常検知処理のフローチャート。
【図１２】例外コマンドの例を説明するための図。
【図１３】実施形態３に係る異常検知処理のフローチャート。
【図１４】実施形態４に係るフォーマット変換処理のフローチャート。
【図１５】実施形態４に係る出力データ送信量計測処理のフローチャート。
【図１６】実施形態４に係る異常検知処理のフローチャート。
【図１７】実施形態５に係るフォーマット変換部の構成例を示すブロック図。
【図１８】実施形態５に係るフォーマット変換処理部の構成例を示すブロック図。
【図１９】実施形態５に係るフォーマット変換フィルタの構成例を示すブロック図。
【図２０】多段構成のフィルタ間の入出力の関係を説明するための図。
【図２１】実施形態５に係るフォーマット変換処理のフローチャート。
【図２２】実施形態５に係るフィルタ異常検知処理のフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１０】
本実施形態は、本発明に係るデータ変換処理の異常検知方法を特にクライアントコンピュータに適合させた例である。しかし、本願発明に係る異常検知方法は、Ｗｅｂサービスのサーバやクラウドコンピューティングで行っても同様に成立する。また、本発明はプリンタ、複合機等の印刷装置内で行っても同様に成立する。また、以下のデータ変換処理は、フォーマット変換処理を例にとって説明しているが、他の処理であっても構わず、処理の実行に伴ってログを生成するものであれば、本願発明は適用可能である。
【００１１】
＜実施形態１＞
［装置構成］
図１は、本実施形態に係る情報処理装置と印刷装置の構成の一例を示すブロック図である。情報処理装置９は印刷装置７に印刷データを出力するコンピュータである。ＣＰＵ１は、ＲＯＭ８内部のプログラム領域に記憶されたプログラム、又は、ＨＤＤ３からメモリ２にロードされたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、汎用アプリケーション等のプログラムを実行する。メモリ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００１２】
ＨＤＤ３は、ブートプログラム、種々のアプリケーション、ユーザファイル、アプリケーションで使用される各種データ等を記憶する。また、受信されるジョブは、ＨＤＤ３に送られる。出力装置５は、ディスプレイ等による表示の制御を行う。媒体読取装置６は、ＣＤ、ＤＶＤなどの各種メディアへのアクセスを制御する。入力装置４は、キーボードやポインティングデバイス（不図示）からのキー入力を制御する。印刷装置７は、情報処理装置９から出力された情報を受け付け、印刷処理を行う。ここで、それぞれの装置がネットワークを介して接続されていようとも、本発明を制約するものではない。
【００１３】
［ソフトウェア構成］
図２は本発明に係るフォーマット変換部１１のブロック図である。本実施形態では、電子文書、ページ記述言語、画像等を相互変換するフォーマット変換を前提に説明するが、数字の羅列等一般的なデータを変換するデータ変換でもよい。フォーマット変換部１１は、情報処理装置９において、媒体読取装置６もしくはＨＤＤ３に格納されているプログラムと関連するデータからなり、ＣＰＵ１によってメモリ２に読み込まれ、ＣＰＵ１により実行される。
【００１４】
フォーマット変換部１１は、ＯＳの下で動作し、アプリケーション、ソフトウェアサービス、もしくはプリンタドライバとして動作する。フォーマット変換部１１は、入力装置４からフォーマット変換命令が入力されると、フォーマット変換処理後のデータをＨＤＤ３に出力する。なお、本実施形態では以下、変換後のデータをＨＤＤ３に保存するとして説明を行う。しかし、出力データはＨＤＤ３に保存されることなく印刷装置７に逐次送信されてもよいし、メモリ２上に確保した領域に出力されてもよい。
【００１５】
入力データ受信部１２は、フォーマット変換を行う入力データを受け付ける。フォーマット変換処理部１３は、入力データ受信部１２で受信した入力データに対してフォーマット変換を行う。出力データ送信部１４は、フォーマット変換後のデータをＨＤＤ３に保存する。この際、出力データ送信部１４は、フォーマット変換処理部１３が処理した出力データを出力先であるＨＤＤ３に適宜送信する。出力データ送信量計測部１５は、出力データ送信部１４が送信する出力データを単位時間ごとに計測する。異常検知部１６は、出力データ送信量計測部１５が計測した出力データ量の値をもとに異常を検知する。ログ管理部１７は、異常検知部１６が異常を検知した場合にログを出力する。ここで出力されるログは、例えば、ＨＤＤ３に保持される。
【００１６】
図３は、出力データ送信量計測部１５において計測されるデータをグラフ化した図である。ここでは縦軸をデータ量（ｂｙｔｅ）とし、横軸を計測した時間（秒）として示す。
【００１７】
出力データ送信量計測部１５は、出力データ送信部１４が送信した出力データを単位時間ごとに計測する。図３の例では単位時間を０．５秒とし、０．５秒ごとに出力されたデータ量をグラフ化したものである。単位時間は、処理内容や処理環境に応じて予め設定される値である。
【００１８】
本実施形態では、単位時間ごとに出力データの出力量を計測し、出力量の変化が大きい場合、システムの異常やフォーマット変換処理の異常として異常を検知する。システムの異常とは例えば、他アプリケーションがメモリ２やＣＰＵ１、ＨＤＤ３へのアクセスなどフォーマット変換が動作するシステム（情報処理装置）上の共有資源を占有しているような場合を指す。フォーマット変換処理の異常とは例えば、プログラムの不具合等で正常にフォーマット変換やデータの出力がされないような場合を指す。
【００１９】
［フォーマット変換処理］
図４は、フォーマット変換処理のフローチャートである。本処理は、上述したように情報処理装置９のフォーマット変換部１１にて実行される。
【００２０】
入力データ受信部１２は、入力データを受信する（Ｓ４１）。次に、フォーマット変換処理部１３は、出力データ送信量の計測開始通知を出力データ送信量計測部１５に対して行う（Ｓ４２）。出力データ送信量計測部１５は、計測開始通知を受け、出力データ送信量計測処理を開始する。その後、フォーマット変換処理部１３は、入力データ受信部１２で受信した入力データに対してフォーマット変換処理を行う（Ｓ４３）。
【００２１】
出力データ送信部１４は、フォーマット変換処理部１３が処理した出力データを処理が終了した部分から逐次送信する（Ｓ４４）。本実施形態では、出力データ送信部１４は、出力データをＨＤＤ３に送信し保存する。出力データ送信部１４は、送信した出力データの送信量を送信した時刻の情報とともにメモリ２上に確保された領域に記憶する（Ｓ４５）。次に、フォーマット変換処理部１３は、全フォーマット変換完了したかの判断を行う（Ｓ４６）。フォーマット変換処理が完了していなければ（Ｓ４６にてＮＯ）、フォーマット変換処理部１３は、フォーマット変換処理を継続する。フォーマット変換処理が完了していれば（Ｓ４６にてＹＥＳ）、フォーマット変換処理部１３は、出力データ送信量の計測終了通知を出力データ送信量計測部１５に対して行う（Ｓ４７）。出力データ送信量計測部１５は、計測終了通知を受けると出力データ送信量の計測を終了する。
【００２２】
［出力データ送信量計測処理］
図５は、出力データ送信量計測処理のフローチャートである。出力データ送信量計測処理は、出力データ送信量計測部１５がフォーマット変換処理部１３から出力データ送信量の計測開始通知を受けることで開始される。出力データ送信量計測処理は、フォーマット変換とは別スレッドもしくは別プロセスで実行され、フォーマット変換処理とは非同期な処理となる。本処理は、情報処理装置９のフォーマット変換部１１にて実行される。
【００２３】
出力データ送信量計測部１５は、出力データ送信部１４がメモリ２に保存した出力データの送信量と送信した時刻の情報とから、単位時間当たりの出力データ送信量を取得する（Ｓ５１）。この処理は単位時間経過ごとに行われる。異常検知部１６は、出力データ送信量計測部１５が取得した出力データ送信量に基づいて異常検知処理を行う（Ｓ５２）。本処理の詳細については、図６を用いて後述する。
【００２４】
ログ管理部１７は、異常検知処理において異常を検知した場合は（Ｓ５３にてＹＥＳ）、ログデータの生成を行う（Ｓ５４）。本処理の詳細については、図８を用いて後述する。その後、ログ管理部１７は、生成したログデータをＨＤＤ３に記録する（Ｓ５５）。なお、異常を検知しなかった場合は（Ｓ５３にてＮＯ）、ログデータの生成とログデータの記録は行わない。
【００２５】
その後、出力データ送信量計測部１５は、フォーマット変換処理部１３から出力データ送信量の計測終了通知を受信したかを判断する（Ｓ５６）。出力データ送信量の計測終了通知を受信していなければ（Ｓ５６にてＮＯ）、出力データ送信量計測部１５は、単位時間当たりの出力データ送信量の取得を再度行う（Ｓ５１）。出力データ送信量の計測終了通知を受信していれば（Ｓ５６にてＹＥＳ）、出力データ送信量計測部１５は、出力データ送信量計測処理を終了する。
【００２６】
［異常検知処理］
図６は、図５の異常検知処理（Ｓ５２）の詳細を示すフローチャートである。異常検知部１６は、連続する単位時間当たりの出力データ送信量の比較を行う（Ｓ６１）。比較の詳細に関しては、図７を用いて説明する。異常検知部１６は、比較結果が異常を示すかを判定する（Ｓ６２）。比較結果が異常を示すと判定した場合（Ｓ６２にてＹＥＳ）、異常検知部１６は、異常を検知する（Ｓ６３）。比較結果が異常を示すと判定しない場合（Ｓ６２にてＮＯ）、異常検知部１６は、異常を検知しない（Ｓ６４）。そして、本処理フローを終了する。
【００２７】
図６のＳ６１にて行われる出力データ送信量の比較について、図７を用いて説明する。図７は、出力データ送信量計測部１５において計測されるデータの例である図３で示したデータに対して、現単位時間当たりの出力データ送信量の、前単位時間当たりの出力データ送信量に対する比をグラフ化した図である。ここでは縦軸を出力量の比とし、横軸を計測した時刻（秒）として示す。ここでは、着目する単位時間を現単位時間と記載し、その一つ前の単位時間を前単位時間と記載する。
【００２８】
単位時間が０．５秒の場合、１秒時点の出力データ送信量の合計（すなわち、０．５秒から１秒までの出力データ送信量の総量）と０．５秒時点の出力データ送信量の合計（すなわち、０秒から０．５秒までの出力データ送信量の総量）との比が計算される。比の値が小さいと、前単位時間から現単位時間において単位時間当たりの出力データ送信量が減少したことになる。比の値が予め定めた閾値以下の場合に異常検知部１６は異常を検知する。
【００２９】
図７の例では、閾値を０．０１と定めている。したがって、０．０１よりも値が小さくなっている７．５秒と１２．５秒の時点で異常が検知される。出力データ送信量の比較に関しては、異常検知部１６は、出力データ送信量計測部１５において計測されるデータに対して移動平均を適用し、移動平均を適用した後の値の比によって異常を判定してもよい。
【００３０】
［ログデータ生成処理］
図８は、図５のログデータの生成（Ｓ５４）の詳細を示したフローチャートである。ログ管理部１７は、フォーマット変換処理部１３によってメモリ２上に記録されたフォーマット変換処理ログの取得を行う（Ｓ８１）。フォーマット変換処理ログの内容の詳細については図９を用いて説明する。フォーマット変換処理部１３は、フォーマット変換処理を行う際のフォーマット変換ログをログ管理部１７が予め確保したメモリ２上の領域に出力する。メモリ２上に確保されるメモリサイズは予め定められており、新たにログを記録する際に所定のメモリサイズを超える場合は、メモリサイズを超えないよう古いログを消去して、新しいログを記録する。次に、ログ管理部１７は、システムログの取得を行う（Ｓ８２）。システムログの内容の詳細については図９を用いて説明する。
【００３１】
図９は、ログ管理部１７が作成するフォーマット変換ログとシステムログの例を示した図である。図９（Ａ）に示すフォーマット変換ログは、フォーマット変換処理部１３がフォーマット変換処理を行う際、処理の進捗やパラメータなど処理の内容を記載したログである。図９（Ｂ）に示すシステムログは、フォーマット変換部１１が動作する情報処理装置９上のログであり、メモリ２やＣＰＵ１の使用状況や、同一装置上の他アプリケーションの稼働状況など、情報処理装置９におけるリソースの状態を記載したログである。
【００３２】
フォーマット変換ログにより、異常発生時のフォーマット変換部１１の処理状況を取得できる。また、システムログにより、フォーマット変換部１１以外のシステムの状況を取得することができる。これにより、ユーザーは、フォーマット変換部１１の異常かシステムの異常かの特定が容易になる。
【００３３】
実施形態１におけるフォーマット変換処理の異常検知方法は出力データ送信量の計測の開始と終了を通知し、開始から終了の間のみ単位時間ごとの出力データ送信量を計測する。そして、計測された単位時間ごとの出力データ送信量の変化から異常を検知する。これにより、適切な異常検知が可能になり、無駄な異常検知によるログの発生を抑制することができる。
【００３４】
＜実施形態２＞
入力データに含まれる処理命令（処理コマンド）のうち、出力データ送信量が急激に変動するものが存在する。例えば特殊グラデーションを示すコマンドが入力された場合に、前単位時間に比べて現単位時間で出力されるデータの量が急激に増加することがある。また例えば巨大画像をレンダリングして出力するようなコマンドが入力された場合にも出力されるデータ量が前単位時間に比べて現単位時間の方が急激に増える。実施形態１の構成に従って、このような処理コマンドに対する出力データ送信量を計測し、異常検知処理を適用した場合、正常に処理が行われていても異常として検知されてしまう。そこで、本実施形態ではそのようなコマンドを考慮に入れた構成について説明する。
【００３５】
上記のようなコマンド（以下、例外コマンド）に対して異常検知の例外として扱う。本実施形態において、フォーマット変換処理部１３が、例外コマンドを処理する場合、異常検知部１６に例外通知を行い、出力データ送信量の変化が大きい場合でも異常ではないと判定する。これにより、正常に処理できているが出力データ送信量が急激に変動することが予想される期間のログ出力を行わず、不要なログによるＨＤＤ３の圧迫を防げる。また、異常状態のみのログを出力することができ、ログの解析が容易となる。以下、実施形態１との差分を説明する。
【００３６】
［フォーマット変換処理］
図１０は、異常検知の例外を含めた場合のフォーマット変換処理のフローチャートである。以下、実施形態１にて述べた図４との差分のみを説明する。
【００３７】
フォーマット変換処理部１３は、出力データ送信量の計測通知（Ｓ４２）の後、フォーマット変換処理範囲内に例外コマンドが含まれるかを判定する（Ｓ１０１）。フォーマット変換処理範囲とは、フォーマット変換処理（Ｓ４３）で処理を行う入力データ内の処理対象範囲である。この範囲に含まれる処理対象コマンドは、単一描画コマンドであってもよく、ページに含まれるすべての描画コマンドであってもよい。
【００３８】
フォーマット変換処理部１３は、出力データ送信量が急激に変動することが予想される例外コマンドの条件テーブル（図１２の１２２）を予め保持しているものとする。フォーマット変換処理部１３は、フォーマット変換処理範囲内のコマンドが例外コマンドの条件テーブル内に定義されたコマンドと一致するかを検索する。詳細は図１１を用いて説明する。処理対象コマンドが例外コマンドである場合（Ｓ１０１にてＹＥＳ）、フォーマット変換処理部１３は異常検知部１６に対して例外開始通知を通知する（Ｓ１０２）。フォーマット変換処理部１３は、出力データ送信量記録（Ｓ４５）の後、例外開始通知をＳ１０２にて通知したかの判定を行う（Ｓ１０３）。例外開始通知をＳ１０２にて通知した場合（Ｓ１０３にてＹＥＳ）、フォーマット変換処理部１３は、異常検知部１６に対して例外終了通知を通知する（Ｓ１０４）。また例外開始通知をＳ１０２にて通知していない場合（Ｓ１０３にてＮＯ）、処理はＳ４６へ進む。
【００３９】
［異常検知処理］
図１１は異常検知の例外を含めた場合の異常検知処理のフローチャートである。実施形態１で述べた図５のＳ５２の処理に対応する。以下、実施形態１にて述べた図６との差分のみ説明する。
【００４０】
異常検知部１６は、比較対象単位時間が例外開始通知を受信した時刻と例外終了通知を受信した時刻の間の期間を含むかどうかを判定する。言い換えれば異常検知部１６は、比較対象単位時間内に、例外開始通知から例外終了通知までの例外コマンドが処理される時間帯が含まれるかを判定する（Ｓ１１１）。比較対象単位時間とは、出力データ送信量の比較を行う現単位時間内と前単位時間内とを指す。この比較対象単位時間内に例外コマンドが処理される時間帯がある場合は（Ｓ１１１にてＹＥＳ）、異常検知部１６は、異常を検知しない。
【００４１】
［例外判定］
図１２は、例外の判定について説明するための図である。入力データの描画コマンドの例（１２１）と例外コマンドの条件テーブルの例（１２２）を示す。入力データである電子文書のコマンドは、描画する線、画像、グラデーション等をパラメータと共に記載されている。フォーマット変換処理部１３は、入力データのコマンドを逐次解釈して、フォーマット変換を行う。
【００４２】
例外コマンド条件テーブルは、例外となるコマンドの条件の一覧である。例えば、特殊なグラデーションやサイズが一定以上の画像等が例外コマンドの条件となる。例外コマンド条件テーブルに定義される条件は、予め定義されていてもよいし、ユーザーが定義できるように構成しても構わない。
【００４３】
本実施形態では、出力データ送信量が急激に変動することが予想されるコマンドを処理する場合、異常検知部１６に例外通知を行い、出力データ送信量の変化が大きい場合でも異常としないと判定する。これにより、正常に処理できているが出力データ送信量が急激に変動することが予想される時間のログ出力を行わず、不要なログによるＨＤＤ３の圧迫を防げる。また、異常状態のみのログを出力することができ、ログの解析が容易となる。
【００４４】
＜実施形態３＞
実施形態３は、実施形態１に対して、前回の異常検知から一定時間内の異常に対しては異常として検知しない処理を含めた場合の実施形態である。出力データ送信量の上下が激しい場合、短時間に複数回異常検知をする可能性がある。この場合、短時間内に起きた異常であるため原因が同じ可能性が高いが、異常検知した回数分だけログを出力し、その結果、ＨＤＤ３を圧迫することとなる。
【００４５】
これを防ぐために前回の異常検知から予め定めた一定時間内（例えば３秒以内）の異常に対してはログを出力しない。この処理により無駄なログによるＨＤＤ３の圧迫を防げる。また、同一原因と思われるログを出力しないことで、また、ログの解析が容易となる。以下、実施形態１との差分のみを説明する。
【００４６】
［異常検知処理］
図１３は、前回の異常検知から一定時間内の異常は異常として検知しない場合の異常検知処理のフローチャートである。実施形態１で述べた図５のＳ５２の処理に対応する。以下、実施形態１にて述べた図６との差分のみを説明する。
【００４７】
異常検知部１６は、メモリ２内に格納された前回の異常検知時刻の取得を行う（Ｓ１３１）。次に、異常検知部１６は、現在時刻の取得を行う（Ｓ１３２）。異常検知部１６は、前回の異常検知時刻が現在時刻から一定時間以内か否かを判定する（Ｓ１３３）。一定時間以内の場合（Ｓ１３３にてＹＥＳ）、異常検知部１６は異常として検知しない。また、異常検知部が異常を検知した場合（Ｓ６３）、異常検知部１６は、現在時刻をメモリ２内に記憶する（Ｓ１３４）。
【００４８】
本実施形態では、異常検知部１６は前回の異常検知から一定時間内の異常に対しては異常として検知しない。この処理により短時間に起きた同一原因と思われるログを出力することがなくなり、無駄なログによるＨＤＤ３の圧迫を防げる。また、短時間に起きた同一原因と思われるログを出力しないことで、ログの解析が容易となる。なお、本実施形態にて用いられる一定時間については、予め定義されていてもよいし、ユーザーにより設定できるように構成しても構わない。
【００４９】
＜実施形態４＞
実施形態４では実施形態１に対して、入力データ総受信量と出力データ総送信量の関係から異常を判定する処理を含めた場合の実施形態である。入力データ総受信量に対して出力データ総受信量が著しく大きいもしくは著しく小さい場合、フォーマット変換処理の異常の可能性が考えられる。このような場合に異常を通知する処理を行う。これにより、フォーマット変換処理の異常な挙動を検知できる。以下、実施形態１との差分を説明する。
【００５０】
［フォーマット変換処理］
図１４は、入力データ総受信量と出力データ総送信量の関係から異常を判定する場合のフォーマット変換処理のフローチャートである。以下、実施形態１にて述べた図４との差分のみを説明する。
【００５１】
フォーマット変換処理部１３は、入力データ総受信量の取得を行う（Ｓ１４１）。入力データ総受信量とは現在のフォーマット変換処理に対する入力データ受信処理（Ｓ４１）で受信した入力データの総量である。フォーマット変換処理部１３は、入力データ総受信量から出力データ総送信量の上限と下限を決定する（Ｓ１４２）。フォーマット変換処理部１３は、予め定められた入力データ総受信量に対する出力データ総送信量の上限と下限の割合を保持している。例えば、入力データ総受信量に対する出力データ総送信量の上限の割合が１００であった場合、入力データ総受信量に１００を乗じた値が出力データ総送信量の上限となる。また、入力データ総受信量に対する出力データ総送信量の下限の割合が０．０１であった場合、入力データ総受信量に０．０１を乗じた値が出力データ総送信量の下限となる。
【００５２】
［出力データ送信量計測処理］
図１５は、入力データ総受信量と出力データ総送信量の関係から異常を判断する場合の出力データ送信量計測処理のフローチャートである。以下、実施形態１にて述べた図５との差分のみを説明する。
【００５３】
出力データ送信量計測部１５が出力データ送信量の計測終了通知を受けた場合（Ｓ５６にてＹＥＳ）、ログ管理部１７は、出力データ総送信量がフォーマット変換処理で決定した出力データ総送信量の下限値以下か否かを判定する（Ｓ１５１）。下限値以下の場合（Ｓ１５１にてＹＥＳ）、ログ管理部１７は、ログデータの生成を行う（Ｓ１５２）。そして、ログ管理部１７は、生成したログデータの記録を行う（Ｓ１５３）。なお、ログデータの生成（Ｓ１５２）は実施形態１にて述べたログデータの生成（Ｓ５４）と同一の処理である。また、ログデータの記録（Ｓ１５３）は、実施形態１にて述べたログデータの記録（Ｓ５５）と同一の処理である。
【００５４】
［異常検知処理］
図１６は、入力データ総受信量と出力データ総送信量の関係から異常を判定する場合の異常検知処理のフローチャートである。図１５のＳ５２の処理に対応する。以下、実施形態１にて述べた図６との差分のみを説明する。
【００５５】
異常検知部１６は、出力データ総送信量を計算する（Ｓ１６１）。出力データ総送信量は現在のフォーマット変換処理において出力データ送信部１４が保存した出力データの送信量の合計である。異常検知部１６は、出力データ送信量が出力データの上限値を超えているか否かを判定する（Ｓ１６２）。上限値を超えている場合（Ｓ１６２にてＹＥＳ）、異常検知部１６は異常を検知する（Ｓ６３）。
【００５６】
実施形態４では入力データ総受信量に対して出力データ総受信量が著しく大きいもしくは著しく小さい場合、異常を通知する処理を行う。これにより、フォーマット変換処理の異常な挙動を検知できる。
【００５７】
＜実施形態５＞
実施形態５は、フィルタパイプラインシステムに本発明である異常検知方法を適合させた場合の実施形態である。フィルタパイプラインシステムとは、着脱可能かつ複数のモジュールを連結する処理方法であり、モジュールをフィルタとして扱う。フィルタパイプラインシステムは、フィルタの出力が次の段のフィルタの入力となる。つまり、フィルタが逐次出力する出力データを次の段のフィルタが入力として逐次受け取り、次の段のフィルタは受け取った部分から処理を開始できることを特徴とする。
【００５８】
フィルタパイプラインシステムでは、フィルタの出力が次の段のフィルタの入力となるため、前の段のフィルタの出力が滞ると、次の段以降のフィルタの処理が滞る。その結果、すべてのフィルタで異常を検知すると、それぞれがログを出力することとなりＨＤＤ３を圧迫する。本実施形態では、異常を最初に検知したフィルタでのみログを出力する処理を行うことで、以降の段のフィルタが出力するログによるＨＤＤ３の圧迫を防げる。また、異常を最初に検知したフィルタでのみログを出力するため、ログの解析が容易となる。以下、実施形態２との差分のみを説明する。
【００５９】
［ソフトウェア構成］
（フォーマット変換部）
図１７は、本実施形態に係るフォーマット変換部１１のブロック図である。実施形態１の図３に示したフォーマット変換部１１の出力データ送信量計測部１５、異常検知部１６、およびログ管理部１７を除いた構成となる。本実施形態では、除いた部分は本実施形態においてフォーマット変換処理部１３内に構成される各フォーマット変換フィルタ内に配置される。
【００６０】
（フォーマット変換処理部）
図１８は、本実施形態に係るフォーマット変換処理部１３のブロック図である。フォーマット変換処理部１３は、フィルタ管理部１８と複数のフォーマット変換フィルタ１９を有する。フォーマット変換フィルタ１９は、多段構造を有している。フィルタ管理部１８はフィルタの順番の制御と、データの入出力を管理する。
【００６１】
（フォーマット変換フィルタ）
図１９は、フォーマット変換処理部１３内に構成されるフォーマット変換フィルタ１９を示すブロック図である。実施形態１におけるフォーマット変換部１１の構成の一部を各フォーマット変換フィルタ内に配置した構成となる。フィルタ入力データ受信部２１は、フィルタ管理部１８から１つ前の段からの出力データを入力データとして受け取る。
【００６２】
初段目のフォーマット変換フィルタの場合、入力データ受信部１２が受信したデータを、フィルタ管理部１８を介して受け取る。フィルタフォーマット変換処理部２２は、フィルタにおけるフォーマット変換処理を行う。フィルタ出力データ送信部２３は、フィルタフォーマット変換処理部２２が処理した出力データを逐次、次の段のフォーマット変換フィルタに送信する。
【００６３】
最終段目のフォーマット変換フィルタの場合、フィルタ管理部１８を介して、出力データ送信部１４に出力データを逐次送信する。フィルタ出力データ送信量計測部２４は、フィルタ出力データ送信部２３が送信したデータを単位時間ごとに計測する。フィルタ異常検知部２５は、フィルタ出力データ送信量計測部２４が計測した出力データ送信量の値に基づいて異常を検知する。フィルタログ管理部２６は、フィルタ異常検知部２５が異常を検知した場合にログを出力する。
【００６４】
［異常検知処理］
フォーマット変換フィルタ１９の異常検知について図２０を用いて説明する。あるフィルタで異常や例外コマンド処理中に出力データ送信が停滞すると、後ろのフィルタすべてで入力が停滞することで出力データ送信が停滞する。すべてのフィルタで異常を検知すると、ＨＤＤ３を圧迫するので、異常を最初に検知したフィルタでのみログを出力するのが望ましい。フォーマット変換フィルタをここでは単にフィルタと呼び、フィルタ１、フィルタ２の順に処理するものとする。図２０にフィルタ１、フィルタ２の単位時間当たりの出力データ送信量のグラフと、現単位時間当たりの出力データ送信量の前単位時間当たりの出力データ送信量に対する比のグラフとを示す。図２０に示すグラフの構成は、実施形態１にて述べた図３および図７と同様である。
【００６５】
フィルタ１において、異常発生による出力の停滞（２０ａ）や、例外コマンドの処理中による出力の停滞（２０ｂ）が生じることがある。この場合、フィルタ１の出力を入力として受け取るフィルタ２においても出力が停滞する。フィルタ１の異常発生による出力の停滞（２０ｃ）やフィルタ１の例外による出力の停滞（２０ｄ）がこれに対応する。
【００６６】
フィルタ１において、現単位時間当たりの出力データ送信量の、前単位時間当たりの出力データ送信量に対する比が閾値以下である場合、例外コマンドの処理中でない場合は異常を検知する（２０ｅ）。一方、例外コマンドの処理中は異常を検知しない（２０ｆ）。
【００６７】
フィルタ２においてフィルタ１の異常発生により、現単位時間当たりの出力データ送信量の、前単位時間当たりの出力データ送信量に対する比が閾値以下になる場合や、フィルタ１の例外コマンドの処理により閾値以下になる場合がある。図２０の例で示すと、フィルタ１の異常発生（２０ａ）に起因して、現単位時間当たりの出力データ送信量の、前単位時間当たりの出力データ送信量に対する比が閾値以下になる状態（２０ｇ）が検出される。また、フィルタ１の異常発生（２０ｂ）に起因して、比が閾値以下になる状態（２０ｈ）が検知される。これらの場合、フィルタ１の影響によるフィルタ２の出力データ送信量の変化なので、フィルタ２にて生じた異常ではない。したがって、本発明では、前段のフィルタにおける異常発生と例外コマンド処理に起因する異常は後段フィルタでは異常として検知しない。
【００６８】
［フォーマット変換処理］
図２１は本実施形態におけるフォーマット変換フィルタ１９によるフローチャートである。本実施形態では実施形態２におけるフォーマット変換処理（図１０）を各フォーマット変換フィルタが行う。実施形態２にて述べた図１０との差分のみを説明する。
【００６９】
フォーマット変換フィルタ１９は、１つ前の段のフォーマット変換フィルタの出力を、入力データとして逐次受信する（Ｓ２１１）。フォーマット変換フィルタ１９は、受信したデータから順に処理を行う。フォーマット変換フィルタ１９は、フォーマット変換処理範囲に例外コマンドが含まれているか否かを判定する（Ｓ１０１にてＹＥＳ）。フォーマット変換処理範囲に例外コマンドが含まれる場合（Ｓ１０１にてＹＥＳ）フィルタフォーマット変換処理部２２は、後段のすべてのフィルタのフィルタ異常検知部２５に例外開始通知を行う（Ｓ２１２）。
【００７０】
また、出力データ送信量記録（Ｓ４５）の後、フォーマット変換フィルタ１９は、本フォーマット変換フィルタがＳ２１２にて後段のフォーマット変換フィルタに例外開始通知をしているか否かを判定する。例外開始通知をしている場合は（Ｓ２１３にてＹＥＳ）、フィルタフォーマット変換処理部２２は、後段のすべてのフォーマット変換フィルタのフィルタ異常検知部２５に対して、例外終了通知を行う（Ｓ２１４）。
【００７１】
［フィルタ異常検知処理］
図２２は、本実施形態に係るフィルタ異常検知処理のフローチャートである。実施形態２にて述べた図１１との差分のみを説明する。
【００７２】
フィルタ異常検知部２５は、比較対象単位時間内に前段のいずれかのフォーマット変換フィルタが例外コマンドの処理を行っているかを判定する（Ｓ２２１）。つまり、フィルタ異常検知部２５は、前段のフォーマット変換フィルタから例外開始通知を受信しており且つ例外終了通知を受信していない状態であるか否かを判定する。前段のいずれかのフォーマット変換フィルタが例外コマンドの処理を行っている場合（Ｓ２２１にてＹＥＳ）、フィルタ異常検知部２５はその例外に対応する単位時間内において異常を検知しない（Ｓ６４）。また、フィルタ異常検知部２５は、比較対象単位時間内に前段のいずれかのフォーマット変換フィルタにおいて異常発生があるかを判定する（Ｓ２２２）。具体的には、フィルタ異常検知部２５は、前段のいずれかのフォーマット変換フィルタから異常発生の通知を受信したかを判定する。異常発生の通知を受信して、比較対象単位時間内に前段のいずれかのフォーマット変換フィルタにおいて異常発生があると判定した場合（Ｓ２２２にてＹＥＳ）、フィルタ異常検知部２５は、その異常が発生した時刻に対応する単位時間帯において異常を検知しない（Ｓ６４）。
【００７３】
また、前段のフォーマット変換フィルタにおける異常に起因しない異常を検知した場合（Ｓ６２にてＹＥＳ）、フィルタ異常検知部２５は、後段のすべてのフィルタに本フォーマット変換フィルタにて異常が発生したことを示す異常発生通知と異常が発生した時刻の情報を通知する（Ｓ２２４）。
【００７４】
なお、上記結果に基づいて更に後段のフォーマット変換フィルタは比較対象単位時間内に前段のフォーマット変換フィルタにおいて異常発生があるかを判定することとなる（Ｓ２２２）。
【００７５】
実施形態５では、前段以前のフィルタ（１または複数のフォーマット変換フィルタ）が異常もしくは例外コマンドの処理中であり、その影響で出力が滞る後段のフィルタは異常を検知しない処理を行う。異常を検知した前段のフィルタのみログを出力することで、後段のフォーマット変換フィルタが出力する無駄なログによるＨＤＤ３の圧迫を防げる。また、前段のフィルタのみログを出力するので、ログの解析が容易となる。
【００７６】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014115963.tif 000003
【図２】
2014115963.tif 000004
【図３】
2014115963.tif 000005
【図４】
2014115963.tif 000006
【図５】
2014115963.tif 000007
【図６】
2014115963.tif 000008
【図７】
2014115963.tif 000009
【図８】
2014115963.tif 000010
【図９】
2014115963.tif 000011
【図１０】
2014115963.tif 000012
【図１１】
2014115963.tif 000013
【図１２】
2014115963.tif 000014
【図１３】
2014115963.tif 000015
【図１４】
2014115963.tif 000016
【図１５】
2014115963.tif 000017
【図１６】
2014115963.tif 000018
【図１７】
2014115963.tif 000019
【図１８】
2014115963.tif 000020
【図１９】
2014115963.tif 000021
【図２０】
2014115963.tif 000022
【図２１】
2014115963.tif 000023
【図２２】
2014115963.tif 000024