(57)【要約】      （修正有）【課題】２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成する。【解決手段】情報システムにおいて、内部サーバーのＣＰＵは、ＬＡＮ接続されたＭＦＰをシミュレートするシミュレート部２５７と、ＭＦＰが外部から受信パケットを受信した後にＭＦＰにおいてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得部２５３、２５５と、受信パケットの少なくとも一部を含む変更パケットを生成する生成部２６１と、シミュレート部２５７がＭＦＰをシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御部２５９と、生成部２６１により生成された変更パケットを仮想装置が受信するとエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定する再生用パケット決定部２６３と、を備える。【選択図】図７
2019102980.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置をシミュレートするシミュレート手段と、
前記画像形成装置が外部から受信パケットを受信した後に前記画像形成装置においてエラーが発生する場合に、前記受信パケットおよび前記エラーを示すエラー情報を取得する取得手段と、
前記受信パケットの少なくとも一部を含む変更パケットを生成する生成手段と、
前記シミュレート手段が前記画像形成装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御手段と、
前記生成手段により生成された変更パケットを前記仮想装置が受信すると前記エラー情報で示されるエラーが発生する場合、前記変更パケットを再現用パケットに決定するパケット決定手段と、を備えたサーバー。
【請求項２】
前記再現用パケットを外部に出力する出力手段を、さらに備えた請求項１に記載のサーバー。
【請求項３】
前記取得手段は、前記画像形成装置が処理対象とするデータの単位、または、前記画像形成装置がデータを処理する処理の単位で定まる１以上のパケットを、前記受信パケットとして取得する、請求項１または２に記載のサーバー。
【請求項４】
前記生成手段は、前記受信パケットの一部を別のデータに書き換えることにより前記変更パケットを生成する、請求項１〜３のいずれかに記載のサーバー。
【請求項５】
前記受信パケットの一部は、予め定められた種類のデータを含む部分、および／または、予め定められた部分である、請求項４に記載のサーバー。
【請求項６】
前記生成手段は、前記受信パケットの一部を削除することにより前記変更パケットを生成する、請求項１〜５のいずれかに記載のサーバー。
【請求項７】
前記生成手段は、前記受信パケットが複数の場合、複数の前記受信パケットにそれぞれ対応する複数の前記変更パケットを生成する、請求項１〜６のいずれかに記載のサーバー。
【請求項８】
画像形成装置をシミュレートするシミュレートステップと、
画像形成装置が情報処理装置から受信パケットを受信した後に前記画像形成装置においてエラーが発生する場合に、前記受信パケットおよび前記エラーを示すエラー情報を取得する取得ステップと、
前記受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、
前記画像形成装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御ステップと、
前記仮想装置が前記生成ステップにおいて生成された変更パケットを受信すると、前記仮想装置が前記エラー情報で示されるエラーが発生する場合、前記変更パケットを再現用パケットに決定するパケット決定ステップと、をサーバーに実行させる再現用データ生成方法。
【請求項９】
画像形成装置をシミュレートするシミュレートステップと、
画像形成装置が情報処理装置から受信パケットを受信した後に前記画像形成装置においてエラーが発生する場合に、前記受信パケットおよび前記エラーを示すエラー情報を取得する取得ステップと、
前記受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、
前記画像形成装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御ステップと、
前記仮想装置が前記生成ステップにおいて生成された変更パケットを受信すると、前記仮想装置が前記エラー情報で示されるエラーが発生する場合、前記変更パケットを再現用パケットに決定するパケット決定ステップと、をコンピューターに実行させる再現用データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバー、再現用データ生成方法および再現用データ生成プログラムに関し、特に、情報処理装置をシミュレートするサーバー、そのサーバーで実行される再現用データ生成方法および再現用データ生成プログラムに関する。
【背景技術】
【０００２】
近年、複合機（以下「ＭＦＰ」という）で代表される画像形成装置は、外部からデータをパケット形式で受信して、受信されたデータを処理する場合に、エラーが発生する場合がある。ＭＦＰで発生するエラーの原因を究明するために、エラーを再現することが必要となるが、この場合には、ＭＦＰで受信されたデータが必要になる。
【０００３】
例えば、特開２０１６−１５２４６４号公報には、ネットワークからパケットを受信するパケット受信部と、パケット受信部から受信したパケットを複製するパケット複製部と、パケット複製部から受信した元のパケットを一時的に保管する第１パケットバッファ部と、パケット複製部から受信した複製されたパケットを一時的に保管する第２パケットバッファ部と、仮想化環境で動作し、元のパケットと複製されたパケットのうち一方に対し通常のネットワーク処理行い、他方に対し常時監視を行い、不具合事象が発生した際に常時監視しているパケットを用いて解析を行う技術が開示されている。
【０００４】
しかしながら、特開２０１６−１５２４６４号公報に記載の技術では、常時監視しているパケットを用いた解析を外部の業者に委託する場合、パケットに機密性の高い情報が含まれていると、その機密性の高い情報が外部の業者に漏れてしまうといった問題がある。
【特許文献１】特開２０１６−１５２４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能なサーバーを提供することができる。
【０００６】
この発明の他の目的は、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成方法を提供することができる。
【０００７】
この発明のさらに他の目的は、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成プログラムを提供することである。
【課題を解決するための手段】
【０００８】
この発明は上述した問題点を解決するためになされたもので、この発明のある局面によれば、サーバーは、画像形成装置をシミュレートするシミュレート手段と、画像形成装置が外部から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得手段と、受信パケットの少なくとも一部を含む変更パケットを生成する生成手段と、シミュレート手段が画像形成装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御手段と、生成手段により生成された変更パケットを仮想装置が受信するとエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定するパケット決定手段と、を備える。
【０００９】
この局面に従えば、画像形成装置が外部から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報が取得され、受信パケットの少なくとも一部を含む変更パケットが生成され、画像形成装置をシミュレートする仮想装置に、変更パケットを受信させ、仮想装置が受信するとエラー情報で示されるエラーが発生する場合、変更パケットが再現用パケットに決定される。このため、画像形成装置が受信する受信パケットの少なくとも一部を含み、画像形成装置が受信パケットを受信した場合と同じエラーが発生する変更パケットを生成することができる。したがって、外部からパケットを受信するＭＦＰで発生するエラーを再現可能で、かつ、サイズがより小さな再現用データを生成することができる。その結果、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能なサーバーを提供することができる。
【００１０】
好ましくは、再現用パケットを外部に出力する出力手段を、さらに備える。
【００１１】
この局面に従えば、再現用パケットが外部に出力されるので、画像形成装置が送信した送信パケットを受信する情報処理装置で発生したエラーを外部で再現することができる。
【００１２】
好ましくは、取得手段は、画像形成装置が処理対象とするデータの単位、または、画像形成装置がデータを処理する処理の単位で定まる１以上のパケットを、受信パケットとして取得する。
【００１３】
この局面に従えば、受信パケットは、データの単位、または、処理の単位で定まる１以上のパケットなので、画像形成装置が受信したパケットの全てを記憶する必要がなく、メモリ資源を有効に利用することができる。また、１つのデータに対して実行する処理で発生するエラーまたは１つの処理で発生するエラーの再現が容易となる。
【００１４】
好ましくは、生成手段は、受信パケットの一部を別のデータに書き換えることにより変更パケットを生成する。
【００１５】
この局面に従えば、受信パケットの一部を別のデータに書き換えることにより変更パケットが生成されるので、変更パケットが機密性の高い情報を含まないようにすることができる。
【００１６】
好ましくは、受信パケットの一部は、予め定められた種類のデータを含む部分、および／または、予め定められた部分である。
【００１７】
この局面に従えば、受信パケットの一部は、予め定められた種類のデータを含む部分、および／または、予め定められた部分なので、受信パケットに含まる機密情報の種類または受信パケット中の位置が事前に判明している場合に、変更パケットが機密性の高い情報を含まないようにすることができる。
【００１８】
好ましくは、生成手段は、受信パケットの一部を削除することにより変更パケットを生成する。
【００１９】
この局面に従えば、変更パケットは、受信パケットからその一部が削除されたパケットなので、変更パケットのデータ量を送信パケットよりも小さくすることができる。
【００２０】
好ましくは、生成手段は、受信パケットが複数の場合、複数の受信パケットにそれぞれ対応する複数の変更パケットを生成する。
【００２１】
この局面に従えば、複数の変更パケットにそれぞれ対応する複数の変更パケットが生成されるので、再現用パケットを容易に決定することができる。
【００２２】
この発明の他の局面に従えば、再現用データ生成方法は、画像形成装置をシミュレートするシミュレートステップと、画像形成装置が情報処理装置から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得ステップと、受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、画像形成装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御ステップと、仮想装置が生成ステップにおいて生成された変更パケットを受信すると、仮想装置がエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定するパケット決定ステップと、をサーバーに実行させる。
【００２３】
この局面に従えば、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成方法を提供することができる。
【００２４】
この発明のさらに他の局面に従えば、再現用データ生成プログラムは、画像形成装置をシミュレートするシミュレートステップと、画像形成装置が情報処理装置から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得ステップと、受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、画像形成装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御ステップと、仮想装置が生成ステップにおいて生成された変更パケットを受信すると、仮想装置がエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定するパケット決定ステップと、をコンピューターに実行させる。
【００２５】
この局面に従えば、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成プログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。
【図２】本実施の形態における内部サーバーのハードウェア構成の概要の一例を示すブロック図である。
【図３】本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。
【図５】本実施の形態における内部サーバーが備えるシミュレータの概要の一例を示す図である。
【図６】本実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図７】本実施の形態における内部サーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図８】再現用データ生成処理の流れの一例を示すフローチャートである。
【図９】変更パケット生成処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
【００２８】
図１は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。図１を参照して、情報処理システム１は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００と、パーソナルコンピューター（以下「ＰＣ」という）３００と、内部サーバー２００と、検証サーバー５００と、を含む。
【００２９】
ＭＦＰ１００は、画像形成装置の一例であり、処理対象となるデータを画像処理する画像処理機能、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。ＭＦＰ１００は、画像処理機能および画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。画像処理は、限定するものではないが、画像データを画像形成可能なラスターデータに変換する処理、画像中のエッジを強調する先鋭化処理、画像中の色の変化を滑らかにするスムージング処理、データをよりサイズの小さな符号化データに変換する符号化処理、符号化データを復号する復号処理、画像データのフォーマットを変換する変換処理を含む。
【００３０】
ＰＣ４００および検証サーバー５００は、一般的なコンピューターである。したがって、それらのハードウェア構成および機能については周知なので、ここでは説明を繰り返さない。
【００３１】
ＭＦＰ１００、内部サーバー２００およびＰＣ４００それぞれは、ローカルエリアネットワーク（ＬＡＮ）３に接続される。このため、ＭＦＰ１００、ＰＣ４００および内部サーバー２００それぞれは、ＬＡＮ３を介してデータの送受信が可能である。ＬＡＮ３は、それに接続される装置が限定された閉じた環境となるため、ＬＡＮ３に接続される複数の装置間、ここではＭＦＰ１００、ＰＣ４００および内部サーバー２００との間で送受信されるデータが外部に漏れないようにセキュリティが確保されている。なお、ＬＡＮ３の接続形態は有線または無線を問わない。また、ＬＡＮ３に代えて、セキュリティが確保されるのであれば、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワーク、ワイドエリアネットワーク（ＷＡＮ）を用いるようにしてもよい。
【００３２】
ＬＡＮ３は、インターネット５に接続される。検証サーバー５００は、インターネット５に接続されている。このため、ＭＦＰ１００、ＰＣ４００および内部サーバー２００それぞれは、ＬＡＮ３を介してインターネット５に接続された検証サーバー５００と互いに通信可能である。ＭＦＰ１００、ＰＣ４００および内部サーバー２００は内部に配置される装置であるのに対して、検証サーバー５００は、ＭＦＰ１００、ＰＣ４００および内部サーバー２００に対して外部に配置される装置である。内部とは、セキュリティが確保されている領域を示し、外部とは内部で確保されているセキュリティが確保されていない領域を示す。
【００３３】
本実施の形態における情報処理システム１において、ＰＣ４００からＭＦＰ１００にデータを送信し、受信されたデータを処理するＭＦＰ１００で不具合が発生する場合に、検証サーバー５００で、ＭＦＰ１００において発生した不具合を検証する。ここでの検証は、ＭＦＰ１００で発生した不具合が次に発生しないように、ＭＦＰ１００またはＰＣ４００を設定することである。例えば、ＰＣ４００からＭＦＰ１００に送信されるデータが、ＭＦＰ１００で処理可能なデータとなるようにＭＦＰ１００またはＰＣ４００のいずれかにインストールされているアプリケーションプログラムを更新する。検証サーバー５００において、ＭＦＰ１００において発生した不具合を再現するために、不具合の原因となるデータ、ここでは、ＰＣ４００からＭＦＰ１００に送信されるデータが必要となるが、そのデータが機密性の高い機密情報を含んでいる場合がある。このため、ＰＣ４００からＭＦＰ１００に送信されたデータそのものを検証サーバー５００に送信するのではなく、内部サーバー２００において、ＰＣ４００からＭＦＰ１００に送信されたデータを、ＭＦＰ１００において発生した不具合と同じ不具合が再現される再現用データに変換し、再現用データを検証サーバー５００に送信する。再現用データがＬＡＮ３に接続されたＭＦＰ１００、ＰＣ４００および内部サーバー２００を含む閉じた環境の外部に配置された検証サーバー５００に送信されるが、再現用データからデータに含まれる機密情報を再現できなければ機密情報が外部に漏洩するのを防止することができる。
【００３４】
図２は、本実施の形態における内部サーバーのハードウェア構成の概要の一例を示すブロック図である。図２を参照して、内部サーバー２００は、内部サーバー２００の全体を制御するための中央演算装置（ＣＰＵ）２０１と、ＣＰＵ２０１が実行するためのプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＣＰＵ２０１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２０４と、ＣＰＵ２０１をＬＡＮ３に接続する通信部２０５と、情報を表示する表示部２０６と、ユーザーの操作の入力を受け付ける操作部２０７と、外部記憶装置２０８と、を含む。
【００３５】
表示部２０６は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置である。操作部２０７は、キーボードなどのハードキーである。また、操作部２０７は、タッチパネルであってもよい。タッチパネルは、表示部２０６の上面または下面に表示部２０６に重畳して設けられる。タッチパネルは、表示部２０６の表示面中でユーザーにより指示された位置を検出する。
【００３６】
通信部２０５は、ＣＰＵ２０１をＬＡＮ３に接続するためのインターフェースである。通信部２０５は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ＬＡＮ３に接続されたＭＦＰ１００またはＰＣ４００と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。内部サーバー２００に、ＭＦＰ１００およびＰＣ４００それぞれのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを登録しておくことにより、内部サーバー２００は、ＭＦＰ１００およびＰＣ４００それぞれと通信することができ、データの送受信が可能となる。
【００３７】
ＨＤＤ２０４は、ＣＰＵ２０１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＣＰＵ２０１は、ＨＤＤ２０４に記録されたプログラムを、ＲＡＭ２０３にロードして実行する。
【００３８】
外部記憶装置２０８は、プログラムを記憶したＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ）２０９が装着される。ＣＰＵ２０１は、外部記憶装置２０８を介してＣＤ−ＲＯＭ２０９にアクセス可能である。ＣＰＵ２０１は、外部記憶装置２０８に装着されたＣＤ−ＲＯＭ２０９に記録されたプログラムをＲＡＭ２０３にロードして実行する。なお、ＣＰＵ２０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ２０９に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭまたはＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの半導体メモリであってもよい。
【００３９】
また、ＣＰＵ２０１が実行するプログラムは、ＣＤ−ＲＯＭ２０９に記録されたプログラムに限られず、ＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、ＬＡＮ３に接続された他のコンピューターが、ＨＤＤ２０４に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、内部サーバー２００が、ＬＡＮ３またはインターネット５に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０４に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４０】
図３は、本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン基板１１１と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、通信インターフェース（Ｉ／Ｆ）部１６０と、ファクシミリ部１７０と、外部記憶装置１８０と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１３と、ユーザーインターフェースとしての操作パネル１１５とを含む。
【００４１】
メイン基板１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０および給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３、および操作パネル１１５と接続され、ＭＦＰ１００の全体を制御する。
【００４２】
自動原稿搬送装置１２０は、原稿トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。原稿読取部１３０は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。
【００４３】
給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
【００４４】
通信Ｉ／Ｆ部１６０は、ＬＡＮ３にＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１６０は、ＴＣＰまたはＵＤＰ等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
【００４５】
通信Ｉ／Ｆ部１６０は、ＬＡＮ３から受信されるデータをメイン基板１１１に出力し、メイン基板１１１から入力されるデータをＬＡＮ３に出力する。通信Ｉ／Ｆ部１６０は、ＬＡＮ３から受信されるデータのうちＭＦＰ１００宛てのデータのみを、メイン基板１１１に出力し、ＬＡＮ３から受信されるデータのうちＭＦＰ１００とは異なる装置宛てのデータを廃棄する。
【００４６】
ファクシミリ部１７０は、公衆交換電話網（ＰＳＴＮ）に接続され、ファクシミリデータを送受信する。外部記憶装置１８０は、ＣＤ−ＲＯＭ１８１、または半導体メモリが装着される。外部記憶装置１８０は、ＣＤ−ＲＯＭ１８１または半導体メモリに記憶されたデータを読み出す。外部記憶装置１８０は、ＣＤ−ＲＯＭ１８１または半導体メモリにデータを記憶する。
【００４７】
操作パネル１１５は、ＭＦＰ１００の上面に設けられ、表示部１１８と操作部１１９とを含む。表示部１１８は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１１９は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部１１８の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部１１８の表示面中でユーザーにより指示された位置を検出する。
【００４８】
図４は、本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。図４を参照して、メイン基板１１１は、ＣＰＵ１７１と、ＲＯＭ１７３と、ＲＡＭ１７５と、画像制御ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１７７と、を含む。
【００４９】
ＣＰＵ１７１、ＲＯＭ１７３、ＲＡＭ１７５および画像制御ＡＳＩＣ１７７それぞれは、バス１７９に接続されており、データの転送が可能である。ＣＰＵ１７１は、ＭＦＰ１００の全体を制御する。ＲＯＭ１７３は、ＣＰＵ１７１が実行するプログラムを記憶する。ＲＡＭ１７５は、ＣＰＵ１７１の作業領域として用いられる揮発性の半導体メモリである。
【００５０】
ＣＰＵ１７１は、ＨＤＤ１１３に記憶されたプログラムをＲＡＭ１７５にロードして実行する。ＣＰＵ１７１が実行するプログラムは、ハードウェア資源を制御するための制御プログラム、およびアプリケーションプログラムを含む。ハードウェア資源は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、の通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、ＨＤＤ１１３および操作パネル１１５を含む。アプリケーションプログラムは、例えば、ファクシミリ部１７０を制御してファクシミリデータを送信するファクシミリ送信プログラム、ファクシミリ部１７０を制御してファクシミリデータを受信するファクシミリ受信プログラム、通信Ｉ／Ｆ部１６０を制御してプリントジョブを受信し、画像形成部１４０および給紙部１５０を制御してプリントジョブに基づいて画像を形成するプリントプログラム、原稿読取部１３０を制御して原稿を読み取る原稿読取プログラムを含む。また、アプリケーションプログラムは、ＭＦＰ１００が備える消耗品を管理するメンテナンスプログラム、エラー状態を通知するエラー状態通知プログラムを、含んでもよい。なお、ＣＰＵ１７１が実行するアプリケーションプログラムを、これらに限定するものではない。
【００５１】
画像制御ＡＳＩＣ１７７は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、および給紙部１５０と接続され、それらを制御する。また、画像制御ＡＳＩＣ１７７は、原稿読取部１３０が原稿を読み取って出力する画像データに所定の画像処理を実行する機能、画像データを画像形成部１４０がプリントするためのラスターデータに変換する機能を有する。
【００５２】
図５は、本実施の形態における内部サーバーが備えるシミュレータの概要の一例を示す図である。このシミュレータは、ＣＰＵ２０１がシミュレートプログラムを実行することにより、ＣＰＵ２０１に形成される。図５を参照して、シミュレータは、ＣＰＵ周辺シミュレータ３００と、ハードウェア（ＨＷ）シミュレータ３２０と、を含む。ＣＰＵ周辺シミュレータ３００は、ＭＦＰ１００が備えるＣＰＵ１７１をシミュレートする仮想ＣＰＵ３０１と、ＲＯＭ１７３およびＲＡＭ１７５をエミュレートする仮想メモリ３０３と、周辺モデル３０５と、同期設定モデル３０７と、割込制御部３０９と、を含む。仮想ＣＰＵ３０１、仮想メモリ３０３、周辺モデル３０５および同期設定モデル３０７は、バス（Ｂｕｓ）３１１に接続されている。
【００５３】
周辺モデル３０５は、ＭＦＰ１００が備えるＨＤＤ１１３、操作パネル１１５、通信Ｉ／Ｆ部１６０および外部記憶装置１８０をそれぞれエミュレートするＨＤＤ１１３Ａ、操作パネル１１５Ａ、通信Ｉ／Ｆ部１６０Ａおよび外部記憶装置１８０Ａを含む。
【００５４】
同期設定モデル３０７は、仮想ＣＰＵ３０１が、仮想メモリ３０３および周辺モデル３０５と同期するための設定をする。割込制御部３０９は、仮想ＣＰＵ３０１が仮想メモリ３０３および周辺モデル３０５と同期するための設定時に、仮想ＣＰＵ３０１に割り込みを発生させる。
【００５５】
ＨＷシミュレータ３２０は、ＰＣＩ−ＥｘｐｒｅｓｓＢｕｓモデル３２１と、画像制御ＡＳＩＣモデル３２３と、ハードウェア資源モデル３２５と、を含む。ＰＣＩ−ＥｘｐｒｅｓｓＢｕｓモデル３２１は、バス３１１に接続され、ＰＣＩ−Ｅｘｐｒｅｓｓ規格に従った接続をエミュレートする。画像制御ＡＳＩＣモデル３２３は、ＭＦＰ１００が備える画像制御ＡＳＩＣ１７７をエミュレートする。ハードウェア資源モデル３２５は、ＭＦＰ１００が備えるハードウェア資源をエミュレートする。具体的には、ハードウェア資源モデル３２５は、ＭＦＰ１００が備える自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０およびファクシミリ部１７０をそれぞれエミュレートする自動原稿搬送装置１２０Ａ、原稿読取部１３０Ａ、画像形成部１４０Ａ、給紙部１５０Ａおよびファクシミリ部１７０Ａを含む。
【００５６】
図６は、本実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図６に示す機能は、ＭＦＰ１００が備えるＣＰＵ１７１が、ＲＯＭ１７３、ＨＤＤ１１３またはＣＤ−ＲＯＭ１８１に記憶された検証依頼プログラムを実行することにより、ＣＰＵ１７１により実現される機能である。検証依頼プログラムは、再現用データ生成プログラムの一部である。図６を参照して、ＣＰＵ１７１は、通信Ｉ／Ｆ部１６０を制御する通信制御部５１と、データに対して画像処理を実行する画像処理部５３と、画像処理部５３による画像処理の不具合を検出する不具合検出部５５と、パケット記憶部５７と、検証依頼部５９と、を含む。
【００５７】
通信制御部５１は、通信Ｉ／Ｆ部１６０を制御して、外部から複数の受信パケットを受信する。ここでは、ＰＣ４００が送信する受信パケットを受信する場合を例に説明する。具体的には、通信制御部５１は、通信Ｉ／Ｆ部１６０を制御してＰＣ４００が送信する複数の受信パケットを受信し、受信された複数の受信パケットを画像処理部５３およびパケット記憶部５７に出力する。受信パケットは、ＰＣ４００との間で取り決められた通信プロトコルにより定められた情報がヘッダ部に設定されている。受信パケットのヘッダ部は、例えば、複数の受信パケットを受信するＭＦＰ１００が、受信パケットのボディ部に格納された複数の分割部分から１つの処理データの再現を可能とする情報を含む。
【００５８】
複数の受信パケットは、１つの送信指令に対して複数の受信パケットが送信される場合があり、同じ組に含まれる複数の受信パケットそれぞれには、１つの送信指令に対して同じ組に含まれることを示す指令識別情報が含まれる。通信制御部５１は、指令識別情報を複数の受信パケットそれぞれとともにパケット記憶部５７に出力する。さらに、１つの処理データが単位部分の複数から構成される場合があり、受信パケットそれぞれには、そのボディ部に設定された分割部分が含まれる単位部分を識別するための部分識別情報が含まれる。通信制御部５１は、部分識別情報を複数の受信パケットそれぞれとともにパケット記憶部５７に出力する。単位部分は、例えば、処理データが複数ページからなる画像データの場合、１つのページの画像データを示し、部分識別情報は、ページ番号を示す。
【００５９】
パケット記憶部５７は、通信制御部５１から指令識別情報と受信パケットとが入力されることに応じて、受信パケットを指令識別情報と関連付けてＨＤＤ１１３に記憶する。この場合、パケット記憶部５７は、通信制御部５１から入力される指令識別情報と受信パケットとをＨＤＤ１１３に記憶する時点で、通信制御部５１から入力される指令識別情報と異なる指令識別情報と、その指令識別情報に関連付けられた受信パケットとがＨＤＤ１１３に記憶されている場合には、それらをＨＤＤ１１３から消去するのが好ましい。これにより、ＨＤＤ１１３の記憶容量が無駄に消費されるのを回避することができる。
【００６０】
また、パケット記憶部５７は、通信制御部５１から指令識別情報と部分識別情報と受信パケットとが入力される場合、受信パケットを指令識別情報および部分識別情報と関連付けてＨＤＤ１１３に記憶する。この場合、パケット記憶部５７は、通信制御部５１から入力される指令識別情報と部分識別情報と受信パケットとをＨＤＤ１１３に記憶する時点で、通信制御部５１から入力される指令識別情報と部分識別情報との組と異なる組の指令識別情報と部分識別情報と、受信パケットとがＨＤＤ１１３に記憶されている場合には、それらをＨＤＤ１１３から消去するのが好ましい。これにより、ＨＤＤ１１３の記憶容量を有効に利用することができる。
【００６１】
画像処理部５３は、データを画像処理し、画像データを生成する。画像処理部５３は、通信制御部５１から複数の受信パケットが入力されることに応じて、複数の受信パケットから処理データを再現し、処理データを画像処理する。例えば、処理データがプリントデータの場合、プリントジョブによって定められた条件に従ってプリントデータを画像処理する。画像処理部５３は、処理データがＷｅｂデータまたはＨＤＤ１１３に記憶されたデータの場合、ユーザーが操作部１１９に入力するプリント条件に従って処理データを画像処理する。
【００６２】
不具合検出部５５は、画像処理部５３が画像処理を実行中に発生する不具合を検出する。画像処理部５３は、ＣＰＵ１７１が画像処理プログラムを実行する画像処理タスクである。不具合検出部５５は、画像処理タスクが、画像処理プログラムにより予め定められたエラーを検出する場合に、不具合を検出する。画像処理プログラムにより予め定められたエラーは、画像処理部５３が画像処理を開始してから予め定められた時間が経過するタイムアウトエラーを含む。予め定められた時間は、例えば、画像処理の対象となるデータのデータ量に比例する時間としてもよい。不具合検出部５５は、不具合を検出する場合、検出された不具合を特定するための不具合情報を検証依頼部５９に出力する。不具合情報は、画像処理プログラムにより予め定められたエラーを識別するためのエラー識別情報を含む。
【００６３】
検証依頼部５９は、不具合検出部５５から不具合情報が入力されることに応じて、パケット記憶部５７によりＨＤＤ１１３に記憶された受信パケットの全てを読出し、内部サーバー２００に検証を依頼する。具体的には、検証依頼部５９は、通信Ｉ／Ｆ部１６０を制御して、ＨＤＤ１１３から読み出された複数の受信パケットと、不具合情報に含まれるエラー識別情報と、を内部サーバー２００に送信する。受信パケットが部分識別情報と関連付けられている場合には、受信パケットと部分識別情報との組を、内部サーバー２００に送信する。
【００６４】
図７は、本実施の形態における内部サーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。図７に示す機能は、内部サーバー２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２０９に記憶された再現用データ生成プログラムを実行することにより、ＣＰＵ２０１により実現される機能である。
【００６５】
図７を参照して、内部サーバー２００が備えるＣＰＵ２０１は、装置情報取得部２５１と、パケット取得部２５３と、エラー情報取得部２５５と、シミュレート部２５７と、仮想実行制御部２５９と、生成部２６１と、再現用パケット決定部２６３と、出力部２６５と、を含む。
【００６６】
装置情報取得部２５１は、ＭＦＰ１００が送信する装置情報を取得する。具体的には、装置情報取得部２５１は、通信部２０５がＭＦＰ１００から装置識別情報を受信すると、受信された装置情報を取得する。装置情報取得部２５１は、装置情報を取得する場合、装置情報をシミュレート部２５７に出力する。装置情報は、ＭＦＰ１００に搭載されているＣＰＵ１７１に関する情報、ＭＦＰ１００にインストールされたハードウェア資源に関するハード情報と、ＭＦＰ１００にインストールされたソフトウェア資源に関するソフト情報と、を含む。ＣＰＵ１７１に関する情報は、ＣＰＵ１７１の機種名を含む。ハード情報は、ハードウェア資源を識別するためのハード識別情報と、ハードウェア資源を制御するために設定されているハードパラメータとを含む。ハード情報は、ハードウェア資源が複数の場合には、複数のハードウェア資源ごとに、ハード識別情報とハードパラメータとを含む。ソフト情報は、ＭＦＰ１００にインストールされているプログラムのプログラム名と、そのプログラムを実行するために設定されているソフトパラメータと、を含む。
【００６７】
パケット取得部２５３は、ＭＦＰ１００から送信される複数の受信パケットを取得する。パケット取得部２５３は、複数の受信パケットを受信すると、それらを生成部２６１に出力する。
【００６８】
エラー情報取得部２５５は、ＭＦＰ１００から送信されるエラー識別情報を取得する。エラー情報取得部２５５は、エラー識別情報を取得すると、エラー識別情報を再現用パケット決定部２６３に出力する。
【００６９】
生成部２６１は、パケット取得部２５３から入力される複数の受信パケットに基づいて、複数の受信パケットそれぞれの少なくとも一部を含む複数の変更パケットを生成する。具体的には、生成部２６１は、複数の受信パケットそれぞれのヘッダ部に記述されている情報に基づいて、複数の受信パケットそれぞれのボディを合成することにより、処理データを生成する。そして、生成部２６１は、処理データを分割し、複数の分割部分を生成する。例えば、分割部分のサイズを予め定めておき、処理データのサイズと分割部分のサイズとから分割数を決定すればよい。
【００７０】
生成部２６１は、複数の分割部分の少なくとも１つに基づいて変更パケットを生成する。具体的には、生成部２６１は、複数の分割部分から１以上の分割部分を処理対象に選択する。生成部２６１は、処理対象に選択された１以上の分割部分が、機密情報を含む場合、機密情報をダミー情報に変更する。機密情報は、機密性の高い情報として予め定められた情報である。機密情報は、例えば、個人情報、予め定められた単語等である。個人情報は、例えば、ユーザーアカウント、パスワード、電話番号、氏名等を含む。生成部２６１は、処理対象に選択された１以上の分割部分に基づいて変更パケットを生成する。生成部２６１は、複数の受信パケットを順に処理対象に選択し、処理対象に選択された受信パケットに対応する変更パケットを生成する。生成部２６１は、処理対象に選択された受信パケットのボディ部が、選択された１以上の分割部分のいずれかを含む場合、その分割部分を変更パケットのボディ部に設定し、受信パケットのヘッダ部を分割部分が設定されたボディ部に適合するように修正したヘッダ部を変更パケットのヘッダ部に設定する。生成部２６１は、処理対象に選択された受信パケットのボディ部が、選択された１以上の分割部分のいずれをも含まない場合、変更パケットのボディ部に何も設定することなく、受信パケットのヘッダ部を空のボディ部に適合するように修正したヘッダ部を変更パケットのヘッダ部に設定する。このように、生成部２６１は、複数の受信パケットにそれぞれ対応する複数の変更パケットを生成する。複数の変更パケットによって再生されるデータは、複数の分割部分から選択された１以上の分割部分を合成したデータとなる。生成部２６１は、生成された複数の変更パケットを仮想実行制御部２５９に出力する。
【００７１】
シミュレート部２５７は、装置情報取得部２５１から入力される装置情報に基づいてＭＦＰ１００をシミュレートする。まず、シミュレート部２５７は、装置情報に基づいて、ＭＦＰ１００に装着されたハードウェア資源を設定し、ハードパラメータを設定する。
【００７２】
ＭＦＰ１００は、ハードウェア資源として、画像制御ＡＳＩＣ１７７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３および操作パネル１１５を含む。このため、装置情報に含まれるハード情報は、画像制御ＡＳＩＣ１７７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３および操作パネル１１５をハードウェア資源として定める。シミュレート部２５７は、装置情報に含まれるハード情報で定められた画像制御ＡＳＩＣ１７７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３および操作パネル１１５それぞれをエミュレートするエミュレータを設定するとともに、ハード情報に含まれるハードパラメータを設定する。さらに、シミュレート部２５７は、エミュレートするハードウェア資源との同期を設定する。例えば、図５に示したＣＰＵ周辺シミュレータ３００の同期設定モデル３０７に、仮想ＣＰＵ３０１が、ハードウェア資源のエミュレータと同期するように仮想ＣＰＵ３０１のレジスタ値を設定させるとともに、仮想メモリ３０３のメモリマップを書き換える。
【００７３】
また、シミュレート部２５７は、装置情報に含まれるソフト情報で定められたソフトウェア資源を仮想ＣＰＵが実行する状態に設定し、装置情報に含まれる設定値を設定する。具体的には、シミュレート部２５７は、装置情報に含まれるソフト情報で定められたソフトウェア資源をインストールし、装置情報に含まれる設定値を設定する。これにより、シミュレート部２５７において、ＭＦＰ１００をシミュレートした仮想装置が完成する。なお、ＭＦＰ１００のＲＡＭ１７５に記憶されたデータをスナップショットとして取得し、仮想メモリ３０３に記憶するようにしてもよい。
【００７４】
仮想実行制御部２５９は、生成部２６１から複数の変更パケットが入力されることに応じて、シミュレート部２５７を制御して、シミュレート部２５７がＭＦＰ１００をシミュレートする仮想装置に、生成部２６１から入力される変更パケットを受信させる。
【００７５】
再現用パケット決定部２６３は、シミュレート部２５７がシミュレートする仮想装置において発生するエラーが、エラー情報取得部２５５から入力されるエラー識別情報で特定されるエラーと同じ場合、生成部２６１から入力される複数の変更パケットを再現用パケットに決定し、出力部２６５に出力指示を出力する。出力指示は、再現用パケットを含む。
【００７６】
再現用パケット決定部２６３は、シミュレート部２５７がシミュレートする仮想装置において発生するエラーが、エラー情報取得部２５５から入力されるエラー識別情報で特定されるエラーと異なる場合、または、シミュレート部２５７がシミュレートする仮想装置においてエラーが発生しない場合、出力部２６５に出力指示を出力することなく、生成部２６１に再生成指示を出力する。
【００７７】
生成部２６１は、再現用パケット決定部２６３から再生成指示が入力される場合、それまでに処理対象に選択した１以上の分割部分とは異なる１以上の分割部分を処理対象に選択し、新たに処理対象に選択された１以上の分割部分に基づいて変更パケットを生成する。
【００７８】
具体的には、生成部２６１は、選択数Ｍ（Ｍは正の整数）を決定し、複数の分割部分のうちＭ個の分割部分からなる分割部分組を、複数の分割部分のうちからＭ個を選択する組み合わせの数だけ生成する。選択数Ｍは、変更パケットを生成するために用いる分割部分の数である。生成部２６１は、生成された複数の分割部分組のうちから処理対象となる分割部分組を１つ選択することにより、処理対象となるＭ個の分割部分を決定する。生成部２６１は、処理対象に決定されたＭ個の分割部分に基づいて、複数の変更パケットを生成する。また、生成部２６１は、再現用パケット決定部２６３から再生成指示が入力される場合、複数の分割部分組のうち未選択の分割部分を１つ選択する。生成部２６１は、複数の分割部分組の全てを選択した場合には、選択数Ｍを変更し、複数の新たな分割部分組を生成する。例えば、選択数Ｍの初期値を１とし、選択数を１から順に増加するのが好ましい。
【００７９】
出力部２６５は、再現用パケット決定部２６３から出力指示が入力されることに応じて、出力指示に含まれる再現用パケットを、検証サーバー５００に送信し、検証を依頼する。なお、再現用パケットをＭＦＰ１００に送信し、ＭＦＰ１００が検証サーバー５００に検証を依頼するようにしてもよいし、再現用パケットをＰＣ４００に送信し、ＰＣ４００が検証サーバー５００に検証を依頼するようにしてもよい。
【００８０】
図８は、再現用データ生成処理の流れの一例を示すフローチャートである。再現用データ生成処理は、内部サーバー２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２０９に記憶された再現用データ生成プログラムを実行することにより、ＣＰＵ２０１により実現される機能である。
【００８１】
図８を参照して、ＣＰＵ２０１は、検証依頼を受けたか否かを判断する(ステップＳ０１)。通信部２０５がＭＦＰ１００から検証依頼を受信したか否かを判断する。検証依頼を受信するまで待機状態となり、検証依頼を受信したならば処理をステップＳ０２に進める。ＭＦＰ１００は、検証依頼とともに、装置情報と、複数の受信パケットと、エラー識別情報と、を送信するので、ステップＳ０２においては、通信部２０５がＭＦＰ１００から受信する、複数の受信パケットと、エラー情報とを取得する。次のステップＳ０３においては、ＭＦＰ１００の装置情報を取得する。
【００８２】
次のステップＳ０４においては、ＭＦＰ１００をシミュレートする仮想装置を設定する。具体的には、ステップＳ０３において取得された装置情報に含まれるＣＰＵに関する情報およびハード情報に基づいて、ＭＦＰ１００に装着されたＣＰＵ１７１およびハードウェア資源を仮想装置に設定し、仮想装置にハードパラメータを設定する。また、装置情報に含まれるソフト情報を用いて、ＭＦＰ１００のＣＰＵ１７１が実行するソフトウェア資源を仮想装置の仮想ＣＰＵ３０１にインストールし、仮想装置にソフトパラメータを設定する。
【００８３】
次のステップＳ０５においては、変数ｉに「１」を設定し、処理をステップＳ０６に進める。変数ｉは、ステップＳ０２において受信された複数の受信パケットのうち処理対象となる受信パケットを特定するための値である。具体的には、第ｉ番目の受信パケットを処理対象に設定する。
【００８４】
ステップＳ０６においては、第ｉ番目の受信パケットのボディを処理データに追加する。処理データは、ＭＦＰ１００によってＰＣ４００への送信の対象とされたデータであり、複数の受信パケットそれぞれに分割して含まれている。次のステップＳ０７においては、ステップＳ０２において取得された複数の受信パケットのうちに第（ｉ＋１）番目の受信パケットが存在するか否かを判断する。そのような受信パケットが存在するならば処理をステップＳ０８に進めるが、そうでなければ処理をステップＳ０９に進める。ステップＳ０５〜ステップＳ０８のループを繰り返すことにより、処理データに複数の受信パケットにそれぞれ含まれる複数のボディが順に追加され、処理データが完成する。
【００８５】
ステップＳ０９においては、処理データを分割する。分割数は予め定めておくようにすればよい。以下処理データを分割した複数の部分を、複数の分割部分という。次のステップＳ１０においては、選択数Ｍを「１」を設定する。次のステップＳ１１においては、選択数Ｍの分割部分組を決定する。選択数Ｍの分割部分組は、複数の分割部分のうちからＭ個を選択する組み合わせの数だけあり、それぞれの分割部分組はＭ個の分割部分を含む。選択数Ｍを「１」とする場合、複数の分割部分それぞれが１つの分割部分組に含まれるので、複数の分割部分と同じ数の分割部分組が決定される。
【００８６】
次のステップＳ１２においては、ステップＳ１１において決定された複数の分割部分組のうちから１つの分割部分組を処理対象に選択し、処理をステップＳ１３に進める。ステップＳ１３においては、変更パケット生成処理を実行し、処理をステップＳ１５に進める。変更パケット生成処理の詳細は後述するが、処理対象に選択された分割部分組に含まれるＭ個の分割部分に基づいて、複数の受信パケットを変更した複数の変更パケットを生成する処理である。
【００８７】
ステップＳ１５においては、変更パケット生成処理において生成された複数の変更パケットを、ステップＳ０４において設定された仮想装置に受信させ、処理をステップＳ１６に進める。ステップＳ１６においては、仮想装置において複数の変更パケットのすべての受信が完了したか否かを判断する。複数の変更パケットのすべての送信が完了したならば処理をステップＳ１７に進めるが、そうでなければ処理をステップＳ１８に進める。複数の変更パケットのすべてが受信される前に、仮想装置においてエラーが発生する場合、複数の変更パケットのすべての送信が完了しないとして処理をステップＳ１８に進める。
【００８８】
ステップＳ１７においては、ステップＳ０２において取得されたエラー識別情報で示されるエラーと同じエラーが仮想装置で発生したか否かを判断する。真ならば処理をステップＳ２０に進めるが、偽ならば処理をステップＳ１８に進める。
【００８９】
ステップＳ１８においては、ステップＳ１１において決定された１以上の分割部分組のうちに、ステップＳ１２において処理対象に選択されていない分割部分組が存在するか否かを判断する。未選択の分割部分組が存在するならば処理をステップＳ１２に戻し、未選択の組が存在しなければ処理をステップＳ１９に進める。ステップＳ１９においては、選択数Ｍをインクリメントし、処理をステップＳ１１に戻す。
【００９０】
ステップＳ２０においては、変更パケットを再現用パケットに決定し、処理をステップＳ２１に進める。ステップＳ２１においては、再現用パケットを検証サーバー５００に送信し、処理を終了する。
【００９１】
図９は、変更パケット生成処理の流れの一例を示すフローチャートである。変更パケット生成処理は、図８のステップＳ１３において実行される処理である。変更パケット生成処理が実行される前の段階で、処理対象の分割部分組が選択されている。処理対象の分割部分組には、選択数Ｍ個の分割部分を含む。ここで、処理対象の分割部分組に含まれる選択数Ｍ個の分割部分を、処理対象の分割部分という。
【００９２】
図９を参照して、ＣＰＵ２０１は、ステップＳ３１において、変数ｉに「１」を設定し、処理をステップＳ３２に進める。変数ｉは、ＭＦＰ１００から受信された複数の受信パケットのうち処理対象となる受信パケットを特定するための値である。
【００９３】
次のステップＳ３２においては、第ｉ番目の受信パケットを処理対象に選択する。そして、第ｉ番目の変更パケットに、第ｉ番目の受信パケットのヘッダと同じヘッダを設定する。次のステップＳ３４においては、第ｉ番目の受信パケットのボディは、処理対象の分割部分の少なくとも１つを含むか否かを判断する。第ｉ番目の受信パケットのボディが、分割部分組に含まれるＭ個の分割部分の少なくとも１つを含むならば処理をステップＳ３５に進めるが、そうでなければ処理をステップＳ３６に進める。ステップＳ３５においては、第ｉ番目の変更パケットに第ｉ番目の受信パケットのボディに含まれる分割部分を設定し、処理をステップＳ３７に進める。ステップＳ３６においては、第ｉ番目の変更パケットのボディを空に設定し、処理をステップＳ３７に進める。例えば、第ｉ番目の変更パケットのボディにＮＵＬＬを設定する。
【００９４】
ステップＳ３７においては、第ｉ番目の変更パケットのボディに設定された分割部分が機密情報を含むか否かを判断する。分割部分が機密情報を含むならば処理をステップＳ３８に進めるが、そうでなければ処理をステップＳ４０に進める。機密情報は、機密性の高い情報として予め定められた情報である。機密情報の一例としては、例えば、ユーザーアカウント、パスワード、個人情報等である。ステップＳ３８においては、機密情報をダミー情報に変更し、処理をステップＳ３９に進める。これにより、変更パケットが機密情報を含まないようにすることができる。ステップＳ３９においては、仮想装置にダミー情報を反映する。例えば、ユーザーアカウントおよびパスワードにより認証処理が実行されるが、仮想装置で、変更パケットに含まれるダミーのユーザーアカウントおよびパスワードにより認証が成功するように設定する。例えば、ダミーのユーザーアカウントおよびパスワードを、仮想装置が認証処理に用いるテーブルに追加する。また、仮想装置により認証処理でエラーが発生しないように設定する。
【００９５】
次のステップＳ４０においては、第ｉ番目の変更パケットのヘッダを修正し、処理をステップＳ４１に進める。具体的には、第ｉ番目の変更パケットのヘッダを分割部分が設定されたボディに適合するように修正する。ボディのサイズが変更されている場合には、ボディのサイズを示すフィールドを、ボディのサイズに合わせた値に変更する。
【００９６】
次のステップＳ４１においては、第（ｉ＋１）番目の受信パケットが存在するか否かを判断する。複数の受信パケットのうちで、ステップＳ３２において処理対象に選択されていない受信パケットが存在するならば処理をステップＳ４２に進めるが、そうでなければ処理を検証データ生成処理に戻す。ステップＳ４２においては、変数ｉをインクリメントし、処理をステップＳ３２に戻す。
【００９７】
＜実施例＞
例えば、ＰＣ４００が、ＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ）のプロトコルに基づいて、ＭＦＰ１００の共有フォルダに記憶されたデータを取得する場合を例に説明する。この場合、ＰＣ４００はＭＦＰ１００に対して能力交換するためのネゴシエーションするための第１のリクエストを送信する。ＭＦＰ１００は、ＰＣ４００から第１のリクエストを受信し、続きの処理が必要であることを示すレスポンスとしてＭＯＲＥ＿ＲＥＱＵＩＲＥＤを返す。ＰＣ４００はＭＦＰ１００における認証に必要な情報を含んだ第２のリクエストを送信し、ＭＦＰ１００は認証に成功したことを示すレスポンスとしてＬＯＧＩＮ＿ＳＵＣＣＥＳＳを返す。
【００９８】
そして、ＰＣ４００はＭＦＰ１００が備えるＨＤＤ１１３が備える共有フォルダにアクセスするために、共有フォルダに記憶されたファイルのパスを指定した第３のリクエストとしてＴｒｅｅ  Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔを送信する。ＭＦＰ１００において、Ｔｒｅｅ  Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔで特定されるファイルが存在しない場合、またはファイルが存在するにも関わらずＭＦＰ１００がファイルを認識できない場合、ＭＦＰ１００において、エラーが発生する。この場合、ＭＦＰ１００は、Ｔｒｅｅ  Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔで特定されるファイルが存在しないことを示すレスポンスとしてＰＡＴＨ＿ＮＯＴ＿ＦＯＵＮＤを返す。ＰＣ４００は、ＰＡＴＨ＿ＮＯＴ＿ＦＯＵＮＤのレスポンスを受信すると、ＳＭＢの通信を終了するためのリクエストを送信し、ＭＦＰ１００はレスポンスを返して通信を終了する。
【００９９】
ＭＦＰ１００にエラーが発生するまでに、ＰＣ４００から第１のリクエスト〜第３のリクエストを受信している。この場合、ＭＦＰ１００が、ＰＣ４００から受信した第１のリクエスト〜第３のリクエストそれぞれのパケットと、発生したエラーのエラー識別情報とを、内部サーバー２００に送信すれば、内部サーバー２００が、第１のリクエスト〜第３のリクエストそれぞれに対する複数のパケットから第１の変更パケット〜第３の変更パケットを生成する。この場合、第２リクエストは、認証に必要な情報を含んでいるので、第２の変更パケットは、第２リクエストに含まれる認証に必要な情報をダミー情報変更する。内部サーバー２００は、さらに、ＭＦＰ１００をシミュレートする仮想装置に第１の変更パケット〜第３の変更パケットを順に受信させ、仮想装置が第３の変更パケットを受信した後に、エラー識別情報で特定されるエラーと同じエラーが仮想装置で発生する場合に、それらの第１の変更パケット〜第３の変更パケットを、再現用パケットに決定する。ただし、内部サーバー２００においては、第２の変更パケットに含まれるダミー情報を用いた認証ではエラーが発生しないように、認証用のテーブルを変更する。
【０１００】
また、ＰＣ４００が、ＳＭＢのプロトコルに基づいて、ＭＦＰ１００の共有フォルダにデータを書き込みする場合を例に説明する。この場合、ＰＣ４００はＭＦＰ１００に対して能力交換するためのネゴシエーションするための第１のリクエストを送信する。ＭＦＰ１００は、ＰＣ４００から第１のリクエストを受信し、続きの処理が必要であることを示すレスポンスとしてＭＯＲＥ＿ＲＥＱＵＩＲＥＤを返す。ＰＣ４００はＭＦＰ１００における認証に必要な情報を含んだ第２のリクエストを送信し、ＭＦＰ１００は認証に成功したことを示すレスポンスとしてＬＯＧＩＮ＿ＳＵＣＣＥＳＳを返す。
【０１０１】
そして、ＰＣ４００はＭＦＰ１００が備えるＨＤＤ１１３が有する共有フォルダに記憶された情報を取得するために、共有フォルダのパスを指定した第４のリクエストを送信すると、ＭＦＰ１００は、共有フォルダに保存されているファイル等の情報をＰＣ４００に返す。
【０１０２】
次に、ＰＣ４００がファイルを共有フォルダに保存するために、ファイルを共有フォルダ内に生成するための第５のリクエストとしてＣｒｅａｔｅ  Ｒｅｑｕｅｓｔを送信すると、ＭＦＰ１００がレスポンスを返す。
【０１０３】
続いて、ＰＣ４００はファイルデータを含む第６のリクエストとしてＷｒｉｔｅ  Ｒｅｑｕｅｓｔを送信する。ここで、ＭＦＰ１００においてＨＤＤ１１３の残容量が不足する場合、ＨＤＤ１１３へのデータ書き込み失敗等により、ファイルを保存できない場合、ＭＦＰ１００はデータ書き込み中にエラーが発生した旨を表すレスポンスとして、ＤＡＴＡ＿ＥＲＲＯＲを返す。ＰＣ４００は、ＤＡＴＡ＿ＥＲＲＯＲのレスポンスを受信すると、ＳＭＢの通信を終了するためのリクエストを送信し、ＭＦＰ１００はレスポンスを返して通信を終了する。
【０１０４】
ＭＦＰ１００にエラーが発生するまでに、ＰＣ４００から第１のリクエスト、第２のリクエスト、第４のリクエスト〜第６のリクエストを受信している。この場合、ＭＦＰ１００は、第１のリクエスト、第２のリクエスト、第４のリクエスト〜第６のリクエストそれぞれのパケットと、発生したエラーのエラー識別情報とを、内部サーバー２００に送信すれば、内部サーバー２００は、第１のリクエスト、第２のリクエスト、第４のリクエスト〜第６のリクエストそれぞれに対する複数のパケットから第１の変更パケット、第２の変更パケット、第４の変更パケット〜第６の変更パケットを生成し、ＭＦＰ１００をシミュレートする仮想装置に第１の変更パケット、第２の変更パケット、第４の変更パケット〜第６の変更パケットを順に受信させ、仮想装置が第６の変更パケットを受信した後に、エラー識別情報で特定されるエラーと同じエラーが仮想装置で発生する場合に、それらの第１の変更パケット、第２の変更パケット、第４の変更パケット〜第６の変更パケットを、再現用パケットに決定する。
【０１０５】
以上説明したように本実施の形態における内部サーバー２００は、ＰＣ４００から複数のパケットを受信するＭＦＰ１００においてエラーが発生する場合に、ＰＣ４００からＭＦＰ１００に送信された受信パケットから変更パケットを生成し、ＭＦＰ１００をシミュレートする仮想装置に変更パケットを受信させて、ＭＦＰ１００で発生したエラーと同じエラーが仮想装置で発生する場合における変更パケットを再現用パケットに決定する。このため、ＰＣ４００からＭＦＰ１００に送信される受信パケットの少なくとも一部を含み、ＭＦＰ１００が受信パケットを受信した場合と同じエラーが発生する変更パケットを生成することができる。したがって、ＰＣ４００からＭＦＰ１００にデータを送信する場合にＭＦＰ１００で発生するエラーを再現可能で、かつ、サイズがより小さな再現用データを生成することができる。
【０１０６】
また、内部サーバー２００は、再現用パケットを検証サーバー５００に送信するので、ＭＦＰ１００で発生したエラーを検証サーバー５００で再現することができ、エラーを検証することができる。
【０１０７】
また、内部サーバー２００は、ＭＦＰ１００が処理対象とするデータの単位、または、ＭＦＰ１００がデータを処理する処理の単位で定まる１以上のパケットを、受信パケットとして取得する。データの単位は、データが複数ページからなる場合には、ページ単位であり、１ページのデータを含む。処理の単位は、１つの処理が開始してから終了するまでの送信されるデータを含む。例えば、複数のデータを送信するデータ送信処理に対しては複数のファイルを含む。受信パケットは、データの単位、または、処理の単位で定まる１以上のパケットなので、ＭＦＰ１００が送信したパケットの全てをＨＤＤ１１３に記憶する必要がなく、メモリ資源を有効に利用することができる。また、検証サーバー５００で、検証の際に、１つのデータに対して実行する処理で発生するエラーまたは１つの処理で発生するエラーの再現が容易となる。
【０１０８】
また、内部サーバー２００は、受信パケットの機密情報をダミー情報に書き換えるので、変更パケットが機密性の高い情報を含まないようにすることができる。
【０１０９】
また、内部サーバー２００は、受信パケット中で予め定められた種類のデータを含む部分、および／または、予め定められた部分を、ダミー情報で書き換えるので、変更パケットが機密性の高い情報を含まないようにすることができる。特に、受信パケットに含まれる機密情報の種類または受信パケット中の位置が事前に判明している場合に、変更パケットが機密性の高い情報を含まないようにすることができる。
【０１１０】
また、内部サーバー２００は、処理データを複数の分割部分に分割し、複数の分割部分のうちから選択された１以上の分割部分から変更パケットを生成するので、変更パケットは、複数の分割部分のうちから選択された１以上の分割部分を含むので、受信パケットの一部を削除したものである。したがって、変更パケットのデータ量を受信パケットよりも小さくすることができる。
【０１１１】
また、内部サーバー２００は、受信パケットが複数の場合、複数の受信パケットにそれぞれ対応する複数の変更パケットを生成するので、再現用パケットを容易に決定することができる。
【０１１２】
なお、上述した実施の形態においては、サーバーの一例として内部サーバー２００を例に示したが、図６および図７に示した再現用データ生成処理を、内部サーバー２００に実行させる再現用データ生成方法、また、その再現用データ生成方法を内部サーバー２００が備えるＣＰＵ２０１に実行させる再現用データ生成プログラムとして発明を捉えることができるのは言うまでもない。
【０１１３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１４】
１  情報処理システム、１００  ＭＦＰ、２００  内部サーバー、３００  ＰＣ、５００  検証サーバー、３  ＬＡＮ、５  インターネット、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  ファクシミリ部、１１７  外部記憶装置、２００  内部サーバー、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  通信部、２０６  表示部、２０７  操作部、２０８  外部記憶装置、２０９  ＣＤ−ＲＯＭ、５１  処理実行部、５３  通信制御部、５５  不具合検出部、５７  パケット記憶部、５９  検証依頼部、２５１  装置情報取得部、２５３  パケット取得部、２５５  エラー情報取得部、２５７  シミュレート部、２５９  仮想実行制御部、２６１  生成部、２６３  再現用パケット決定部、２６５  出力部。
【図１】
2019102980.tif 000003
【図２】
2019102980.tif 000004
【図３】
2019102980.tif 000005
【図４】
2019102980.tif 000006
【図５】
2019102980.tif 000007
【図６】
2019102980.tif 000008
【図７】
2019102980.tif 000009
【図８】
2019102980.tif 000010
【図９】
2019102980.tif 000011