JP2019102980A - サーバー、再現用データ生成方法および再現用データ生成プログラム - Google Patents

サーバー、再現用データ生成方法および再現用データ生成プログラム Download PDF

Info

Publication number
JP2019102980A
JP2019102980A JP2017231916A JP2017231916A JP2019102980A JP 2019102980 A JP2019102980 A JP 2019102980A JP 2017231916 A JP2017231916 A JP 2017231916A JP 2017231916 A JP2017231916 A JP 2017231916A JP 2019102980 A JP2019102980 A JP 2019102980A
Authority
JP
Japan
Prior art keywords
packet
unit
error
received
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017231916A
Other languages
English (en)
Other versions
JP6962159B2 (ja
Inventor
義明 澁田
Yoshiaki Shibuta
義明 澁田
弥 内田
Wataru Uchida
弥 内田
久保 広明
Hiroaki Kubo
広明 久保
智章 中島
Tomoaki Nakajima
智章 中島
英明 副島
Hideaki Soejima
英明 副島
康孝 伊藤
Yasutaka Ito
康孝 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2017231916A priority Critical patent/JP6962159B2/ja
Publication of JP2019102980A publication Critical patent/JP2019102980A/ja
Application granted granted Critical
Publication of JP6962159B2 publication Critical patent/JP6962159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成する。【解決手段】情報システムにおいて、内部サーバーのCPUは、LAN接続されたMFPをシミュレートするシミュレート部257と、MFPが外部から受信パケットを受信した後にMFPにおいてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得部253、255と、受信パケットの少なくとも一部を含む変更パケットを生成する生成部261と、シミュレート部257がMFPをシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御部259と、生成部261により生成された変更パケットを仮想装置が受信するとエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定する再生用パケット決定部263と、を備える。【選択図】図7

Description

この発明は、サーバー、再現用データ生成方法および再現用データ生成プログラムに関し、特に、情報処理装置をシミュレートするサーバー、そのサーバーで実行される再現用データ生成方法および再現用データ生成プログラムに関する。
近年、複合機(以下「MFP」という)で代表される画像形成装置は、外部からデータをパケット形式で受信して、受信されたデータを処理する場合に、エラーが発生する場合がある。MFPで発生するエラーの原因を究明するために、エラーを再現することが必要となるが、この場合には、MFPで受信されたデータが必要になる。
例えば、特開2016−152464号公報には、ネットワークからパケットを受信するパケット受信部と、パケット受信部から受信したパケットを複製するパケット複製部と、パケット複製部から受信した元のパケットを一時的に保管する第1パケットバッファ部と、パケット複製部から受信した複製されたパケットを一時的に保管する第2パケットバッファ部と、仮想化環境で動作し、元のパケットと複製されたパケットのうち一方に対し通常のネットワーク処理行い、他方に対し常時監視を行い、不具合事象が発生した際に常時監視しているパケットを用いて解析を行う技術が開示されている。
しかしながら、特開2016−152464号公報に記載の技術では、常時監視しているパケットを用いた解析を外部の業者に委託する場合、パケットに機密性の高い情報が含まれていると、その機密性の高い情報が外部の業者に漏れてしまうといった問題がある。
特開2016−152464号公報
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能なサーバーを提供することができる。
この発明の他の目的は、2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成方法を提供することができる。
この発明のさらに他の目的は、2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成プログラムを提供することである。
この発明は上述した問題点を解決するためになされたもので、この発明のある局面によれば、サーバーは、画像形成装置をシミュレートするシミュレート手段と、画像形成装置が外部から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得手段と、受信パケットの少なくとも一部を含む変更パケットを生成する生成手段と、シミュレート手段が画像形成装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御手段と、生成手段により生成された変更パケットを仮想装置が受信するとエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定するパケット決定手段と、を備える。
この局面に従えば、画像形成装置が外部から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報が取得され、受信パケットの少なくとも一部を含む変更パケットが生成され、画像形成装置をシミュレートする仮想装置に、変更パケットを受信させ、仮想装置が受信するとエラー情報で示されるエラーが発生する場合、変更パケットが再現用パケットに決定される。このため、画像形成装置が受信する受信パケットの少なくとも一部を含み、画像形成装置が受信パケットを受信した場合と同じエラーが発生する変更パケットを生成することができる。したがって、外部からパケットを受信するMFPで発生するエラーを再現可能で、かつ、サイズがより小さな再現用データを生成することができる。その結果、2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能なサーバーを提供することができる。
好ましくは、再現用パケットを外部に出力する出力手段を、さらに備える。
この局面に従えば、再現用パケットが外部に出力されるので、画像形成装置が送信した送信パケットを受信する情報処理装置で発生したエラーを外部で再現することができる。
好ましくは、取得手段は、画像形成装置が処理対象とするデータの単位、または、画像形成装置がデータを処理する処理の単位で定まる1以上のパケットを、受信パケットとして取得する。
この局面に従えば、受信パケットは、データの単位、または、処理の単位で定まる1以上のパケットなので、画像形成装置が受信したパケットの全てを記憶する必要がなく、メモリ資源を有効に利用することができる。また、1つのデータに対して実行する処理で発生するエラーまたは1つの処理で発生するエラーの再現が容易となる。
好ましくは、生成手段は、受信パケットの一部を別のデータに書き換えることにより変更パケットを生成する。
この局面に従えば、受信パケットの一部を別のデータに書き換えることにより変更パケットが生成されるので、変更パケットが機密性の高い情報を含まないようにすることができる。
好ましくは、受信パケットの一部は、予め定められた種類のデータを含む部分、および/または、予め定められた部分である。
この局面に従えば、受信パケットの一部は、予め定められた種類のデータを含む部分、および/または、予め定められた部分なので、受信パケットに含まる機密情報の種類または受信パケット中の位置が事前に判明している場合に、変更パケットが機密性の高い情報を含まないようにすることができる。
好ましくは、生成手段は、受信パケットの一部を削除することにより変更パケットを生成する。
この局面に従えば、変更パケットは、受信パケットからその一部が削除されたパケットなので、変更パケットのデータ量を送信パケットよりも小さくすることができる。
好ましくは、生成手段は、受信パケットが複数の場合、複数の受信パケットにそれぞれ対応する複数の変更パケットを生成する。
この局面に従えば、複数の変更パケットにそれぞれ対応する複数の変更パケットが生成されるので、再現用パケットを容易に決定することができる。
この発明の他の局面に従えば、再現用データ生成方法は、画像形成装置をシミュレートするシミュレートステップと、画像形成装置が情報処理装置から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得ステップと、受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、画像形成装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御ステップと、仮想装置が生成ステップにおいて生成された変更パケットを受信すると、仮想装置がエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定するパケット決定ステップと、をサーバーに実行させる。
この局面に従えば、2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成方法を提供することができる。
この発明のさらに他の局面に従えば、再現用データ生成プログラムは、画像形成装置をシミュレートするシミュレートステップと、画像形成装置が情報処理装置から受信パケットを受信した後に画像形成装置においてエラーが発生する場合に、受信パケットおよびエラーを示すエラー情報を取得する取得ステップと、受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、画像形成装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御ステップと、仮想装置が生成ステップにおいて生成された変更パケットを受信すると、仮想装置がエラー情報で示されるエラーが発生する場合、変更パケットを再現用パケットに決定するパケット決定ステップと、をコンピューターに実行させる。
この局面に従えば、2つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズを小さくしたデータを生成することが可能な再現用データ生成プログラムを提供することができる。
本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。 本実施の形態における内部サーバーのハードウェア構成の概要の一例を示すブロック図である。 本実施の形態におけるMFPのハードウェア構成の概要の一例を示すブロック図である。 本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。 本実施の形態における内部サーバーが備えるシミュレータの概要の一例を示す図である。 本実施の形態におけるMFPが備えるCPUが有する機能の一例を示すブロック図である。 本実施の形態における内部サーバーが備えるCPUが有する機能の一例を示すブロック図である。 再現用データ生成処理の流れの一例を示すフローチャートである。 変更パケット生成処理の流れの一例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
図1は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。図1を参照して、情報処理システム1は、MFP(Multi Function Peripheral)100と、パーソナルコンピューター(以下「PC」という)300と、内部サーバー200と、検証サーバー500と、を含む。
MFP100は、画像形成装置の一例であり、処理対象となるデータを画像処理する画像処理機能、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。MFP100は、画像処理機能および画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。画像処理は、限定するものではないが、画像データを画像形成可能なラスターデータに変換する処理、画像中のエッジを強調する先鋭化処理、画像中の色の変化を滑らかにするスムージング処理、データをよりサイズの小さな符号化データに変換する符号化処理、符号化データを復号する復号処理、画像データのフォーマットを変換する変換処理を含む。
PC400および検証サーバー500は、一般的なコンピューターである。したがって、それらのハードウェア構成および機能については周知なので、ここでは説明を繰り返さない。
MFP100、内部サーバー200およびPC400それぞれは、ローカルエリアネットワーク(LAN)3に接続される。このため、MFP100、PC400および内部サーバー200それぞれは、LAN3を介してデータの送受信が可能である。LAN3は、それに接続される装置が限定された閉じた環境となるため、LAN3に接続される複数の装置間、ここではMFP100、PC400および内部サーバー200との間で送受信されるデータが外部に漏れないようにセキュリティが確保されている。なお、LAN3の接続形態は有線または無線を問わない。また、LAN3に代えて、セキュリティが確保されるのであれば、公衆交換電話網(Public Switched Telephone Networks)を用いたネットワーク、ワイドエリアネットワーク(WAN)を用いるようにしてもよい。
LAN3は、インターネット5に接続される。検証サーバー500は、インターネット5に接続されている。このため、MFP100、PC400および内部サーバー200それぞれは、LAN3を介してインターネット5に接続された検証サーバー500と互いに通信可能である。MFP100、PC400および内部サーバー200は内部に配置される装置であるのに対して、検証サーバー500は、MFP100、PC400および内部サーバー200に対して外部に配置される装置である。内部とは、セキュリティが確保されている領域を示し、外部とは内部で確保されているセキュリティが確保されていない領域を示す。
本実施の形態における情報処理システム1において、PC400からMFP100にデータを送信し、受信されたデータを処理するMFP100で不具合が発生する場合に、検証サーバー500で、MFP100において発生した不具合を検証する。ここでの検証は、MFP100で発生した不具合が次に発生しないように、MFP100またはPC400を設定することである。例えば、PC400からMFP100に送信されるデータが、MFP100で処理可能なデータとなるようにMFP100またはPC400のいずれかにインストールされているアプリケーションプログラムを更新する。検証サーバー500において、MFP100において発生した不具合を再現するために、不具合の原因となるデータ、ここでは、PC400からMFP100に送信されるデータが必要となるが、そのデータが機密性の高い機密情報を含んでいる場合がある。このため、PC400からMFP100に送信されたデータそのものを検証サーバー500に送信するのではなく、内部サーバー200において、PC400からMFP100に送信されたデータを、MFP100において発生した不具合と同じ不具合が再現される再現用データに変換し、再現用データを検証サーバー500に送信する。再現用データがLAN3に接続されたMFP100、PC400および内部サーバー200を含む閉じた環境の外部に配置された検証サーバー500に送信されるが、再現用データからデータに含まれる機密情報を再現できなければ機密情報が外部に漏洩するのを防止することができる。
図2は、本実施の形態における内部サーバーのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、内部サーバー200は、内部サーバー200の全体を制御するための中央演算装置(CPU)201と、CPU201が実行するためのプログラムを記憶するROM(Read Only Memory)202と、CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するハードディスクドライブ(HDD)204と、CPU201をLAN3に接続する通信部205と、情報を表示する表示部206と、ユーザーの操作の入力を受け付ける操作部207と、外部記憶装置208と、を含む。
表示部206は、液晶表示装置(LCD)、有機ELD(Electro−Luminescence Display)等の表示装置である。操作部207は、キーボードなどのハードキーである。また、操作部207は、タッチパネルであってもよい。タッチパネルは、表示部206の上面または下面に表示部206に重畳して設けられる。タッチパネルは、表示部206の表示面中でユーザーにより指示された位置を検出する。
通信部205は、CPU201をLAN3に接続するためのインターフェースである。通信部205は、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、LAN3に接続されたMFP100またはPC400と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。内部サーバー200に、MFP100およびPC400それぞれのIP(Internet Protocol)アドレスを登録しておくことにより、内部サーバー200は、MFP100およびPC400それぞれと通信することができ、データの送受信が可能となる。
HDD204は、CPU201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。CPU201は、HDD204に記録されたプログラムを、RAM203にロードして実行する。
外部記憶装置208は、プログラムを記憶したCD−ROM(Compact Disk ROM)209が装着される。CPU201は、外部記憶装置208を介してCD−ROM209にアクセス可能である。CPU201は、外部記憶装置208に装着されたCD−ROM209に記録されたプログラムをRAM203にロードして実行する。なお、CPU201が実行するプログラムを記憶する媒体としては、CD−ROM209に限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROMまたはEPROM(Erasable Programmable ROM)などの半導体メモリであってもよい。
また、CPU201が実行するプログラムは、CD−ROM209に記録されたプログラムに限られず、HDD204に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、LAN3に接続された他のコンピューターが、HDD204に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、内部サーバー200が、LAN3またはインターネット5に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD204に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図3は、本実施の形態におけるMFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、メイン基板111と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、通信インターフェース(I/F)部160と、ファクシミリ部170と、外部記憶装置180と、大容量記憶装置としてのハードディスクドライブ(HDD)113と、ユーザーインターフェースとしての操作パネル115とを含む。
メイン基板111は、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113、および操作パネル115と接続され、MFP100の全体を制御する。
自動原稿搬送装置120は、原稿トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。
給紙部150は、給紙トレイに収納された用紙を画像形成部140に搬送する。画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
通信I/F部160は、LAN3にMFP100を接続するためのインターフェースである。通信I/F部160は、TCPまたはUDP等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
通信I/F部160は、LAN3から受信されるデータをメイン基板111に出力し、メイン基板111から入力されるデータをLAN3に出力する。通信I/F部160は、LAN3から受信されるデータのうちMFP100宛てのデータのみを、メイン基板111に出力し、LAN3から受信されるデータのうちMFP100とは異なる装置宛てのデータを廃棄する。
ファクシミリ部170は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。外部記憶装置180は、CD−ROM181、または半導体メモリが装着される。外部記憶装置180は、CD−ROM181または半導体メモリに記憶されたデータを読み出す。外部記憶装置180は、CD−ROM181または半導体メモリにデータを記憶する。
操作パネル115は、MFP100の上面に設けられ、表示部118と操作部119とを含む。表示部118は、液晶表示装置(LCD)、有機ELD等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部119は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部118の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部118の表示面中でユーザーにより指示された位置を検出する。
図4は、本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。図4を参照して、メイン基板111は、CPU171と、ROM173と、RAM175と、画像制御ASIC(Application Specific Integrated Circuit)177と、を含む。
CPU171、ROM173、RAM175および画像制御ASIC177それぞれは、バス179に接続されており、データの転送が可能である。CPU171は、MFP100の全体を制御する。ROM173は、CPU171が実行するプログラムを記憶する。RAM175は、CPU171の作業領域として用いられる揮発性の半導体メモリである。
CPU171は、HDD113に記憶されたプログラムをRAM175にロードして実行する。CPU171が実行するプログラムは、ハードウェア資源を制御するための制御プログラム、およびアプリケーションプログラムを含む。ハードウェア資源は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、の通信I/F部160、ファクシミリ部170、HDD113および操作パネル115を含む。アプリケーションプログラムは、例えば、ファクシミリ部170を制御してファクシミリデータを送信するファクシミリ送信プログラム、ファクシミリ部170を制御してファクシミリデータを受信するファクシミリ受信プログラム、通信I/F部160を制御してプリントジョブを受信し、画像形成部140および給紙部150を制御してプリントジョブに基づいて画像を形成するプリントプログラム、原稿読取部130を制御して原稿を読み取る原稿読取プログラムを含む。また、アプリケーションプログラムは、MFP100が備える消耗品を管理するメンテナンスプログラム、エラー状態を通知するエラー状態通知プログラムを、含んでもよい。なお、CPU171が実行するアプリケーションプログラムを、これらに限定するものではない。
画像制御ASIC177は、自動原稿搬送装置120、原稿読取部130、画像形成部140、および給紙部150と接続され、それらを制御する。また、画像制御ASIC177は、原稿読取部130が原稿を読み取って出力する画像データに所定の画像処理を実行する機能、画像データを画像形成部140がプリントするためのラスターデータに変換する機能を有する。
図5は、本実施の形態における内部サーバーが備えるシミュレータの概要の一例を示す図である。このシミュレータは、CPU201がシミュレートプログラムを実行することにより、CPU201に形成される。図5を参照して、シミュレータは、CPU周辺シミュレータ300と、ハードウェア(HW)シミュレータ320と、を含む。CPU周辺シミュレータ300は、MFP100が備えるCPU171をシミュレートする仮想CPU301と、ROM173およびRAM175をエミュレートする仮想メモリ303と、周辺モデル305と、同期設定モデル307と、割込制御部309と、を含む。仮想CPU301、仮想メモリ303、周辺モデル305および同期設定モデル307は、バス(Bus)311に接続されている。
周辺モデル305は、MFP100が備えるHDD113、操作パネル115、通信I/F部160および外部記憶装置180をそれぞれエミュレートするHDD113A、操作パネル115A、通信I/F部160Aおよび外部記憶装置180Aを含む。
同期設定モデル307は、仮想CPU301が、仮想メモリ303および周辺モデル305と同期するための設定をする。割込制御部309は、仮想CPU301が仮想メモリ303および周辺モデル305と同期するための設定時に、仮想CPU301に割り込みを発生させる。
HWシミュレータ320は、PCI−ExpressBusモデル321と、画像制御ASICモデル323と、ハードウェア資源モデル325と、を含む。PCI−ExpressBusモデル321は、バス311に接続され、PCI−Express規格に従った接続をエミュレートする。画像制御ASICモデル323は、MFP100が備える画像制御ASIC177をエミュレートする。ハードウェア資源モデル325は、MFP100が備えるハードウェア資源をエミュレートする。具体的には、ハードウェア資源モデル325は、MFP100が備える自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150およびファクシミリ部170をそれぞれエミュレートする自動原稿搬送装置120A、原稿読取部130A、画像形成部140A、給紙部150Aおよびファクシミリ部170Aを含む。
図6は、本実施の形態におけるMFPが備えるCPUが有する機能の一例を示すブロック図である。図6に示す機能は、MFP100が備えるCPU171が、ROM173、HDD113またはCD−ROM181に記憶された検証依頼プログラムを実行することにより、CPU171により実現される機能である。検証依頼プログラムは、再現用データ生成プログラムの一部である。図6を参照して、CPU171は、通信I/F部160を制御する通信制御部51と、データに対して画像処理を実行する画像処理部53と、画像処理部53による画像処理の不具合を検出する不具合検出部55と、パケット記憶部57と、検証依頼部59と、を含む。
通信制御部51は、通信I/F部160を制御して、外部から複数の受信パケットを受信する。ここでは、PC400が送信する受信パケットを受信する場合を例に説明する。具体的には、通信制御部51は、通信I/F部160を制御してPC400が送信する複数の受信パケットを受信し、受信された複数の受信パケットを画像処理部53およびパケット記憶部57に出力する。受信パケットは、PC400との間で取り決められた通信プロトコルにより定められた情報がヘッダ部に設定されている。受信パケットのヘッダ部は、例えば、複数の受信パケットを受信するMFP100が、受信パケットのボディ部に格納された複数の分割部分から1つの処理データの再現を可能とする情報を含む。
複数の受信パケットは、1つの送信指令に対して複数の受信パケットが送信される場合があり、同じ組に含まれる複数の受信パケットそれぞれには、1つの送信指令に対して同じ組に含まれることを示す指令識別情報が含まれる。通信制御部51は、指令識別情報を複数の受信パケットそれぞれとともにパケット記憶部57に出力する。さらに、1つの処理データが単位部分の複数から構成される場合があり、受信パケットそれぞれには、そのボディ部に設定された分割部分が含まれる単位部分を識別するための部分識別情報が含まれる。通信制御部51は、部分識別情報を複数の受信パケットそれぞれとともにパケット記憶部57に出力する。単位部分は、例えば、処理データが複数ページからなる画像データの場合、1つのページの画像データを示し、部分識別情報は、ページ番号を示す。
パケット記憶部57は、通信制御部51から指令識別情報と受信パケットとが入力されることに応じて、受信パケットを指令識別情報と関連付けてHDD113に記憶する。この場合、パケット記憶部57は、通信制御部51から入力される指令識別情報と受信パケットとをHDD113に記憶する時点で、通信制御部51から入力される指令識別情報と異なる指令識別情報と、その指令識別情報に関連付けられた受信パケットとがHDD113に記憶されている場合には、それらをHDD113から消去するのが好ましい。これにより、HDD113の記憶容量が無駄に消費されるのを回避することができる。
また、パケット記憶部57は、通信制御部51から指令識別情報と部分識別情報と受信パケットとが入力される場合、受信パケットを指令識別情報および部分識別情報と関連付けてHDD113に記憶する。この場合、パケット記憶部57は、通信制御部51から入力される指令識別情報と部分識別情報と受信パケットとをHDD113に記憶する時点で、通信制御部51から入力される指令識別情報と部分識別情報との組と異なる組の指令識別情報と部分識別情報と、受信パケットとがHDD113に記憶されている場合には、それらをHDD113から消去するのが好ましい。これにより、HDD113の記憶容量を有効に利用することができる。
画像処理部53は、データを画像処理し、画像データを生成する。画像処理部53は、通信制御部51から複数の受信パケットが入力されることに応じて、複数の受信パケットから処理データを再現し、処理データを画像処理する。例えば、処理データがプリントデータの場合、プリントジョブによって定められた条件に従ってプリントデータを画像処理する。画像処理部53は、処理データがWebデータまたはHDD113に記憶されたデータの場合、ユーザーが操作部119に入力するプリント条件に従って処理データを画像処理する。
不具合検出部55は、画像処理部53が画像処理を実行中に発生する不具合を検出する。画像処理部53は、CPU171が画像処理プログラムを実行する画像処理タスクである。不具合検出部55は、画像処理タスクが、画像処理プログラムにより予め定められたエラーを検出する場合に、不具合を検出する。画像処理プログラムにより予め定められたエラーは、画像処理部53が画像処理を開始してから予め定められた時間が経過するタイムアウトエラーを含む。予め定められた時間は、例えば、画像処理の対象となるデータのデータ量に比例する時間としてもよい。不具合検出部55は、不具合を検出する場合、検出された不具合を特定するための不具合情報を検証依頼部59に出力する。不具合情報は、画像処理プログラムにより予め定められたエラーを識別するためのエラー識別情報を含む。
検証依頼部59は、不具合検出部55から不具合情報が入力されることに応じて、パケット記憶部57によりHDD113に記憶された受信パケットの全てを読出し、内部サーバー200に検証を依頼する。具体的には、検証依頼部59は、通信I/F部160を制御して、HDD113から読み出された複数の受信パケットと、不具合情報に含まれるエラー識別情報と、を内部サーバー200に送信する。受信パケットが部分識別情報と関連付けられている場合には、受信パケットと部分識別情報との組を、内部サーバー200に送信する。
図7は、本実施の形態における内部サーバーが備えるCPUが有する機能の一例を示すブロック図である。図7に示す機能は、内部サーバー200が備えるCPU201が、ROM202、HDD204またはCD−ROM209に記憶された再現用データ生成プログラムを実行することにより、CPU201により実現される機能である。
図7を参照して、内部サーバー200が備えるCPU201は、装置情報取得部251と、パケット取得部253と、エラー情報取得部255と、シミュレート部257と、仮想実行制御部259と、生成部261と、再現用パケット決定部263と、出力部265と、を含む。
装置情報取得部251は、MFP100が送信する装置情報を取得する。具体的には、装置情報取得部251は、通信部205がMFP100から装置識別情報を受信すると、受信された装置情報を取得する。装置情報取得部251は、装置情報を取得する場合、装置情報をシミュレート部257に出力する。装置情報は、MFP100に搭載されているCPU171に関する情報、MFP100にインストールされたハードウェア資源に関するハード情報と、MFP100にインストールされたソフトウェア資源に関するソフト情報と、を含む。CPU171に関する情報は、CPU171の機種名を含む。ハード情報は、ハードウェア資源を識別するためのハード識別情報と、ハードウェア資源を制御するために設定されているハードパラメータとを含む。ハード情報は、ハードウェア資源が複数の場合には、複数のハードウェア資源ごとに、ハード識別情報とハードパラメータとを含む。ソフト情報は、MFP100にインストールされているプログラムのプログラム名と、そのプログラムを実行するために設定されているソフトパラメータと、を含む。
パケット取得部253は、MFP100から送信される複数の受信パケットを取得する。パケット取得部253は、複数の受信パケットを受信すると、それらを生成部261に出力する。
エラー情報取得部255は、MFP100から送信されるエラー識別情報を取得する。エラー情報取得部255は、エラー識別情報を取得すると、エラー識別情報を再現用パケット決定部263に出力する。
生成部261は、パケット取得部253から入力される複数の受信パケットに基づいて、複数の受信パケットそれぞれの少なくとも一部を含む複数の変更パケットを生成する。具体的には、生成部261は、複数の受信パケットそれぞれのヘッダ部に記述されている情報に基づいて、複数の受信パケットそれぞれのボディを合成することにより、処理データを生成する。そして、生成部261は、処理データを分割し、複数の分割部分を生成する。例えば、分割部分のサイズを予め定めておき、処理データのサイズと分割部分のサイズとから分割数を決定すればよい。
生成部261は、複数の分割部分の少なくとも1つに基づいて変更パケットを生成する。具体的には、生成部261は、複数の分割部分から1以上の分割部分を処理対象に選択する。生成部261は、処理対象に選択された1以上の分割部分が、機密情報を含む場合、機密情報をダミー情報に変更する。機密情報は、機密性の高い情報として予め定められた情報である。機密情報は、例えば、個人情報、予め定められた単語等である。個人情報は、例えば、ユーザーアカウント、パスワード、電話番号、氏名等を含む。生成部261は、処理対象に選択された1以上の分割部分に基づいて変更パケットを生成する。生成部261は、複数の受信パケットを順に処理対象に選択し、処理対象に選択された受信パケットに対応する変更パケットを生成する。生成部261は、処理対象に選択された受信パケットのボディ部が、選択された1以上の分割部分のいずれかを含む場合、その分割部分を変更パケットのボディ部に設定し、受信パケットのヘッダ部を分割部分が設定されたボディ部に適合するように修正したヘッダ部を変更パケットのヘッダ部に設定する。生成部261は、処理対象に選択された受信パケットのボディ部が、選択された1以上の分割部分のいずれをも含まない場合、変更パケットのボディ部に何も設定することなく、受信パケットのヘッダ部を空のボディ部に適合するように修正したヘッダ部を変更パケットのヘッダ部に設定する。このように、生成部261は、複数の受信パケットにそれぞれ対応する複数の変更パケットを生成する。複数の変更パケットによって再生されるデータは、複数の分割部分から選択された1以上の分割部分を合成したデータとなる。生成部261は、生成された複数の変更パケットを仮想実行制御部259に出力する。
シミュレート部257は、装置情報取得部251から入力される装置情報に基づいてMFP100をシミュレートする。まず、シミュレート部257は、装置情報に基づいて、MFP100に装着されたハードウェア資源を設定し、ハードパラメータを設定する。
MFP100は、ハードウェア資源として、画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115を含む。このため、装置情報に含まれるハード情報は、画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115をハードウェア資源として定める。シミュレート部257は、装置情報に含まれるハード情報で定められた画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115それぞれをエミュレートするエミュレータを設定するとともに、ハード情報に含まれるハードパラメータを設定する。さらに、シミュレート部257は、エミュレートするハードウェア資源との同期を設定する。例えば、図5に示したCPU周辺シミュレータ300の同期設定モデル307に、仮想CPU301が、ハードウェア資源のエミュレータと同期するように仮想CPU301のレジスタ値を設定させるとともに、仮想メモリ303のメモリマップを書き換える。
また、シミュレート部257は、装置情報に含まれるソフト情報で定められたソフトウェア資源を仮想CPUが実行する状態に設定し、装置情報に含まれる設定値を設定する。具体的には、シミュレート部257は、装置情報に含まれるソフト情報で定められたソフトウェア資源をインストールし、装置情報に含まれる設定値を設定する。これにより、シミュレート部257において、MFP100をシミュレートした仮想装置が完成する。なお、MFP100のRAM175に記憶されたデータをスナップショットとして取得し、仮想メモリ303に記憶するようにしてもよい。
仮想実行制御部259は、生成部261から複数の変更パケットが入力されることに応じて、シミュレート部257を制御して、シミュレート部257がMFP100をシミュレートする仮想装置に、生成部261から入力される変更パケットを受信させる。
再現用パケット決定部263は、シミュレート部257がシミュレートする仮想装置において発生するエラーが、エラー情報取得部255から入力されるエラー識別情報で特定されるエラーと同じ場合、生成部261から入力される複数の変更パケットを再現用パケットに決定し、出力部265に出力指示を出力する。出力指示は、再現用パケットを含む。
再現用パケット決定部263は、シミュレート部257がシミュレートする仮想装置において発生するエラーが、エラー情報取得部255から入力されるエラー識別情報で特定されるエラーと異なる場合、または、シミュレート部257がシミュレートする仮想装置においてエラーが発生しない場合、出力部265に出力指示を出力することなく、生成部261に再生成指示を出力する。
生成部261は、再現用パケット決定部263から再生成指示が入力される場合、それまでに処理対象に選択した1以上の分割部分とは異なる1以上の分割部分を処理対象に選択し、新たに処理対象に選択された1以上の分割部分に基づいて変更パケットを生成する。
具体的には、生成部261は、選択数M(Mは正の整数)を決定し、複数の分割部分のうちM個の分割部分からなる分割部分組を、複数の分割部分のうちからM個を選択する組み合わせの数だけ生成する。選択数Mは、変更パケットを生成するために用いる分割部分の数である。生成部261は、生成された複数の分割部分組のうちから処理対象となる分割部分組を1つ選択することにより、処理対象となるM個の分割部分を決定する。生成部261は、処理対象に決定されたM個の分割部分に基づいて、複数の変更パケットを生成する。また、生成部261は、再現用パケット決定部263から再生成指示が入力される場合、複数の分割部分組のうち未選択の分割部分を1つ選択する。生成部261は、複数の分割部分組の全てを選択した場合には、選択数Mを変更し、複数の新たな分割部分組を生成する。例えば、選択数Mの初期値を1とし、選択数を1から順に増加するのが好ましい。
出力部265は、再現用パケット決定部263から出力指示が入力されることに応じて、出力指示に含まれる再現用パケットを、検証サーバー500に送信し、検証を依頼する。なお、再現用パケットをMFP100に送信し、MFP100が検証サーバー500に検証を依頼するようにしてもよいし、再現用パケットをPC400に送信し、PC400が検証サーバー500に検証を依頼するようにしてもよい。
図8は、再現用データ生成処理の流れの一例を示すフローチャートである。再現用データ生成処理は、内部サーバー200が備えるCPU201が、ROM202、HDD204またはCD−ROM209に記憶された再現用データ生成プログラムを実行することにより、CPU201により実現される機能である。
図8を参照して、CPU201は、検証依頼を受けたか否かを判断する(ステップS01)。通信部205がMFP100から検証依頼を受信したか否かを判断する。検証依頼を受信するまで待機状態となり、検証依頼を受信したならば処理をステップS02に進める。MFP100は、検証依頼とともに、装置情報と、複数の受信パケットと、エラー識別情報と、を送信するので、ステップS02においては、通信部205がMFP100から受信する、複数の受信パケットと、エラー情報とを取得する。次のステップS03においては、MFP100の装置情報を取得する。
次のステップS04においては、MFP100をシミュレートする仮想装置を設定する。具体的には、ステップS03において取得された装置情報に含まれるCPUに関する情報およびハード情報に基づいて、MFP100に装着されたCPU171およびハードウェア資源を仮想装置に設定し、仮想装置にハードパラメータを設定する。また、装置情報に含まれるソフト情報を用いて、MFP100のCPU171が実行するソフトウェア資源を仮想装置の仮想CPU301にインストールし、仮想装置にソフトパラメータを設定する。
次のステップS05においては、変数iに「1」を設定し、処理をステップS06に進める。変数iは、ステップS02において受信された複数の受信パケットのうち処理対象となる受信パケットを特定するための値である。具体的には、第i番目の受信パケットを処理対象に設定する。
ステップS06においては、第i番目の受信パケットのボディを処理データに追加する。処理データは、MFP100によってPC400への送信の対象とされたデータであり、複数の受信パケットそれぞれに分割して含まれている。次のステップS07においては、ステップS02において取得された複数の受信パケットのうちに第(i+1)番目の受信パケットが存在するか否かを判断する。そのような受信パケットが存在するならば処理をステップS08に進めるが、そうでなければ処理をステップS09に進める。ステップS05〜ステップS08のループを繰り返すことにより、処理データに複数の受信パケットにそれぞれ含まれる複数のボディが順に追加され、処理データが完成する。
ステップS09においては、処理データを分割する。分割数は予め定めておくようにすればよい。以下処理データを分割した複数の部分を、複数の分割部分という。次のステップS10においては、選択数Mを「1」を設定する。次のステップS11においては、選択数Mの分割部分組を決定する。選択数Mの分割部分組は、複数の分割部分のうちからM個を選択する組み合わせの数だけあり、それぞれの分割部分組はM個の分割部分を含む。選択数Mを「1」とする場合、複数の分割部分それぞれが1つの分割部分組に含まれるので、複数の分割部分と同じ数の分割部分組が決定される。
次のステップS12においては、ステップS11において決定された複数の分割部分組のうちから1つの分割部分組を処理対象に選択し、処理をステップS13に進める。ステップS13においては、変更パケット生成処理を実行し、処理をステップS15に進める。変更パケット生成処理の詳細は後述するが、処理対象に選択された分割部分組に含まれるM個の分割部分に基づいて、複数の受信パケットを変更した複数の変更パケットを生成する処理である。
ステップS15においては、変更パケット生成処理において生成された複数の変更パケットを、ステップS04において設定された仮想装置に受信させ、処理をステップS16に進める。ステップS16においては、仮想装置において複数の変更パケットのすべての受信が完了したか否かを判断する。複数の変更パケットのすべての送信が完了したならば処理をステップS17に進めるが、そうでなければ処理をステップS18に進める。複数の変更パケットのすべてが受信される前に、仮想装置においてエラーが発生する場合、複数の変更パケットのすべての送信が完了しないとして処理をステップS18に進める。
ステップS17においては、ステップS02において取得されたエラー識別情報で示されるエラーと同じエラーが仮想装置で発生したか否かを判断する。真ならば処理をステップS20に進めるが、偽ならば処理をステップS18に進める。
ステップS18においては、ステップS11において決定された1以上の分割部分組のうちに、ステップS12において処理対象に選択されていない分割部分組が存在するか否かを判断する。未選択の分割部分組が存在するならば処理をステップS12に戻し、未選択の組が存在しなければ処理をステップS19に進める。ステップS19においては、選択数Mをインクリメントし、処理をステップS11に戻す。
ステップS20においては、変更パケットを再現用パケットに決定し、処理をステップS21に進める。ステップS21においては、再現用パケットを検証サーバー500に送信し、処理を終了する。
図9は、変更パケット生成処理の流れの一例を示すフローチャートである。変更パケット生成処理は、図8のステップS13において実行される処理である。変更パケット生成処理が実行される前の段階で、処理対象の分割部分組が選択されている。処理対象の分割部分組には、選択数M個の分割部分を含む。ここで、処理対象の分割部分組に含まれる選択数M個の分割部分を、処理対象の分割部分という。
図9を参照して、CPU201は、ステップS31において、変数iに「1」を設定し、処理をステップS32に進める。変数iは、MFP100から受信された複数の受信パケットのうち処理対象となる受信パケットを特定するための値である。
次のステップS32においては、第i番目の受信パケットを処理対象に選択する。そして、第i番目の変更パケットに、第i番目の受信パケットのヘッダと同じヘッダを設定する。次のステップS34においては、第i番目の受信パケットのボディは、処理対象の分割部分の少なくとも1つを含むか否かを判断する。第i番目の受信パケットのボディが、分割部分組に含まれるM個の分割部分の少なくとも1つを含むならば処理をステップS35に進めるが、そうでなければ処理をステップS36に進める。ステップS35においては、第i番目の変更パケットに第i番目の受信パケットのボディに含まれる分割部分を設定し、処理をステップS37に進める。ステップS36においては、第i番目の変更パケットのボディを空に設定し、処理をステップS37に進める。例えば、第i番目の変更パケットのボディにNULLを設定する。
ステップS37においては、第i番目の変更パケットのボディに設定された分割部分が機密情報を含むか否かを判断する。分割部分が機密情報を含むならば処理をステップS38に進めるが、そうでなければ処理をステップS40に進める。機密情報は、機密性の高い情報として予め定められた情報である。機密情報の一例としては、例えば、ユーザーアカウント、パスワード、個人情報等である。ステップS38においては、機密情報をダミー情報に変更し、処理をステップS39に進める。これにより、変更パケットが機密情報を含まないようにすることができる。ステップS39においては、仮想装置にダミー情報を反映する。例えば、ユーザーアカウントおよびパスワードにより認証処理が実行されるが、仮想装置で、変更パケットに含まれるダミーのユーザーアカウントおよびパスワードにより認証が成功するように設定する。例えば、ダミーのユーザーアカウントおよびパスワードを、仮想装置が認証処理に用いるテーブルに追加する。また、仮想装置により認証処理でエラーが発生しないように設定する。
次のステップS40においては、第i番目の変更パケットのヘッダを修正し、処理をステップS41に進める。具体的には、第i番目の変更パケットのヘッダを分割部分が設定されたボディに適合するように修正する。ボディのサイズが変更されている場合には、ボディのサイズを示すフィールドを、ボディのサイズに合わせた値に変更する。
次のステップS41においては、第(i+1)番目の受信パケットが存在するか否かを判断する。複数の受信パケットのうちで、ステップS32において処理対象に選択されていない受信パケットが存在するならば処理をステップS42に進めるが、そうでなければ処理を検証データ生成処理に戻す。ステップS42においては、変数iをインクリメントし、処理をステップS32に戻す。
<実施例>
例えば、PC400が、SMB(Server Message Block)のプロトコルに基づいて、MFP100の共有フォルダに記憶されたデータを取得する場合を例に説明する。この場合、PC400はMFP100に対して能力交換するためのネゴシエーションするための第1のリクエストを送信する。MFP100は、PC400から第1のリクエストを受信し、続きの処理が必要であることを示すレスポンスとしてMORE_REQUIREDを返す。PC400はMFP100における認証に必要な情報を含んだ第2のリクエストを送信し、MFP100は認証に成功したことを示すレスポンスとしてLOGIN_SUCCESSを返す。
そして、PC400はMFP100が備えるHDD113が備える共有フォルダにアクセスするために、共有フォルダに記憶されたファイルのパスを指定した第3のリクエストとしてTree Connect Requestを送信する。MFP100において、Tree Connect Requestで特定されるファイルが存在しない場合、またはファイルが存在するにも関わらずMFP100がファイルを認識できない場合、MFP100において、エラーが発生する。この場合、MFP100は、Tree Connect Requestで特定されるファイルが存在しないことを示すレスポンスとしてPATH_NOT_FOUNDを返す。PC400は、PATH_NOT_FOUNDのレスポンスを受信すると、SMBの通信を終了するためのリクエストを送信し、MFP100はレスポンスを返して通信を終了する。
MFP100にエラーが発生するまでに、PC400から第1のリクエスト〜第3のリクエストを受信している。この場合、MFP100が、PC400から受信した第1のリクエスト〜第3のリクエストそれぞれのパケットと、発生したエラーのエラー識別情報とを、内部サーバー200に送信すれば、内部サーバー200が、第1のリクエスト〜第3のリクエストそれぞれに対する複数のパケットから第1の変更パケット〜第3の変更パケットを生成する。この場合、第2リクエストは、認証に必要な情報を含んでいるので、第2の変更パケットは、第2リクエストに含まれる認証に必要な情報をダミー情報変更する。内部サーバー200は、さらに、MFP100をシミュレートする仮想装置に第1の変更パケット〜第3の変更パケットを順に受信させ、仮想装置が第3の変更パケットを受信した後に、エラー識別情報で特定されるエラーと同じエラーが仮想装置で発生する場合に、それらの第1の変更パケット〜第3の変更パケットを、再現用パケットに決定する。ただし、内部サーバー200においては、第2の変更パケットに含まれるダミー情報を用いた認証ではエラーが発生しないように、認証用のテーブルを変更する。
また、PC400が、SMBのプロトコルに基づいて、MFP100の共有フォルダにデータを書き込みする場合を例に説明する。この場合、PC400はMFP100に対して能力交換するためのネゴシエーションするための第1のリクエストを送信する。MFP100は、PC400から第1のリクエストを受信し、続きの処理が必要であることを示すレスポンスとしてMORE_REQUIREDを返す。PC400はMFP100における認証に必要な情報を含んだ第2のリクエストを送信し、MFP100は認証に成功したことを示すレスポンスとしてLOGIN_SUCCESSを返す。
そして、PC400はMFP100が備えるHDD113が有する共有フォルダに記憶された情報を取得するために、共有フォルダのパスを指定した第4のリクエストを送信すると、MFP100は、共有フォルダに保存されているファイル等の情報をPC400に返す。
次に、PC400がファイルを共有フォルダに保存するために、ファイルを共有フォルダ内に生成するための第5のリクエストとしてCreate Requestを送信すると、MFP100がレスポンスを返す。
続いて、PC400はファイルデータを含む第6のリクエストとしてWrite Requestを送信する。ここで、MFP100においてHDD113の残容量が不足する場合、HDD113へのデータ書き込み失敗等により、ファイルを保存できない場合、MFP100はデータ書き込み中にエラーが発生した旨を表すレスポンスとして、DATA_ERRORを返す。PC400は、DATA_ERRORのレスポンスを受信すると、SMBの通信を終了するためのリクエストを送信し、MFP100はレスポンスを返して通信を終了する。
MFP100にエラーが発生するまでに、PC400から第1のリクエスト、第2のリクエスト、第4のリクエスト〜第6のリクエストを受信している。この場合、MFP100は、第1のリクエスト、第2のリクエスト、第4のリクエスト〜第6のリクエストそれぞれのパケットと、発生したエラーのエラー識別情報とを、内部サーバー200に送信すれば、内部サーバー200は、第1のリクエスト、第2のリクエスト、第4のリクエスト〜第6のリクエストそれぞれに対する複数のパケットから第1の変更パケット、第2の変更パケット、第4の変更パケット〜第6の変更パケットを生成し、MFP100をシミュレートする仮想装置に第1の変更パケット、第2の変更パケット、第4の変更パケット〜第6の変更パケットを順に受信させ、仮想装置が第6の変更パケットを受信した後に、エラー識別情報で特定されるエラーと同じエラーが仮想装置で発生する場合に、それらの第1の変更パケット、第2の変更パケット、第4の変更パケット〜第6の変更パケットを、再現用パケットに決定する。
以上説明したように本実施の形態における内部サーバー200は、PC400から複数のパケットを受信するMFP100においてエラーが発生する場合に、PC400からMFP100に送信された受信パケットから変更パケットを生成し、MFP100をシミュレートする仮想装置に変更パケットを受信させて、MFP100で発生したエラーと同じエラーが仮想装置で発生する場合における変更パケットを再現用パケットに決定する。このため、PC400からMFP100に送信される受信パケットの少なくとも一部を含み、MFP100が受信パケットを受信した場合と同じエラーが発生する変更パケットを生成することができる。したがって、PC400からMFP100にデータを送信する場合にMFP100で発生するエラーを再現可能で、かつ、サイズがより小さな再現用データを生成することができる。
また、内部サーバー200は、再現用パケットを検証サーバー500に送信するので、MFP100で発生したエラーを検証サーバー500で再現することができ、エラーを検証することができる。
また、内部サーバー200は、MFP100が処理対象とするデータの単位、または、MFP100がデータを処理する処理の単位で定まる1以上のパケットを、受信パケットとして取得する。データの単位は、データが複数ページからなる場合には、ページ単位であり、1ページのデータを含む。処理の単位は、1つの処理が開始してから終了するまでの送信されるデータを含む。例えば、複数のデータを送信するデータ送信処理に対しては複数のファイルを含む。受信パケットは、データの単位、または、処理の単位で定まる1以上のパケットなので、MFP100が送信したパケットの全てをHDD113に記憶する必要がなく、メモリ資源を有効に利用することができる。また、検証サーバー500で、検証の際に、1つのデータに対して実行する処理で発生するエラーまたは1つの処理で発生するエラーの再現が容易となる。
また、内部サーバー200は、受信パケットの機密情報をダミー情報に書き換えるので、変更パケットが機密性の高い情報を含まないようにすることができる。
また、内部サーバー200は、受信パケット中で予め定められた種類のデータを含む部分、および/または、予め定められた部分を、ダミー情報で書き換えるので、変更パケットが機密性の高い情報を含まないようにすることができる。特に、受信パケットに含まれる機密情報の種類または受信パケット中の位置が事前に判明している場合に、変更パケットが機密性の高い情報を含まないようにすることができる。
また、内部サーバー200は、処理データを複数の分割部分に分割し、複数の分割部分のうちから選択された1以上の分割部分から変更パケットを生成するので、変更パケットは、複数の分割部分のうちから選択された1以上の分割部分を含むので、受信パケットの一部を削除したものである。したがって、変更パケットのデータ量を受信パケットよりも小さくすることができる。
また、内部サーバー200は、受信パケットが複数の場合、複数の受信パケットにそれぞれ対応する複数の変更パケットを生成するので、再現用パケットを容易に決定することができる。
なお、上述した実施の形態においては、サーバーの一例として内部サーバー200を例に示したが、図6および図7に示した再現用データ生成処理を、内部サーバー200に実行させる再現用データ生成方法、また、その再現用データ生成方法を内部サーバー200が備えるCPU201に実行させる再現用データ生成プログラムとして発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 情報処理システム、100 MFP、200 内部サーバー、300 PC、500 検証サーバー、3 LAN、5 インターネット、111 CPU、112 通信I/F、113 ROM、114 RAM、115 HDD、116 ファクシミリ部、117 外部記憶装置、200 内部サーバー、201 CPU、202 ROM、203 RAM、204 HDD、205 通信部、206 表示部、207 操作部、208 外部記憶装置、209 CD−ROM、51 処理実行部、53 通信制御部、55 不具合検出部、57 パケット記憶部、59 検証依頼部、251 装置情報取得部、253 パケット取得部、255 エラー情報取得部、257 シミュレート部、259 仮想実行制御部、261 生成部、263 再現用パケット決定部、265 出力部。

Claims (9)

  1. 画像形成装置をシミュレートするシミュレート手段と、
    前記画像形成装置が外部から受信パケットを受信した後に前記画像形成装置においてエラーが発生する場合に、前記受信パケットおよび前記エラーを示すエラー情報を取得する取得手段と、
    前記受信パケットの少なくとも一部を含む変更パケットを生成する生成手段と、
    前記シミュレート手段が前記画像形成装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御手段と、
    前記生成手段により生成された変更パケットを前記仮想装置が受信すると前記エラー情報で示されるエラーが発生する場合、前記変更パケットを再現用パケットに決定するパケット決定手段と、を備えたサーバー。
  2. 前記再現用パケットを外部に出力する出力手段を、さらに備えた請求項1に記載のサーバー。
  3. 前記取得手段は、前記画像形成装置が処理対象とするデータの単位、または、前記画像形成装置がデータを処理する処理の単位で定まる1以上のパケットを、前記受信パケットとして取得する、請求項1または2に記載のサーバー。
  4. 前記生成手段は、前記受信パケットの一部を別のデータに書き換えることにより前記変更パケットを生成する、請求項1〜3のいずれかに記載のサーバー。
  5. 前記受信パケットの一部は、予め定められた種類のデータを含む部分、および/または、予め定められた部分である、請求項4に記載のサーバー。
  6. 前記生成手段は、前記受信パケットの一部を削除することにより前記変更パケットを生成する、請求項1〜5のいずれかに記載のサーバー。
  7. 前記生成手段は、前記受信パケットが複数の場合、複数の前記受信パケットにそれぞれ対応する複数の前記変更パケットを生成する、請求項1〜6のいずれかに記載のサーバー。
  8. 画像形成装置をシミュレートするシミュレートステップと、
    画像形成装置が情報処理装置から受信パケットを受信した後に前記画像形成装置においてエラーが発生する場合に、前記受信パケットおよび前記エラーを示すエラー情報を取得する取得ステップと、
    前記受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、
    前記画像形成装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御ステップと、
    前記仮想装置が前記生成ステップにおいて生成された変更パケットを受信すると、前記仮想装置が前記エラー情報で示されるエラーが発生する場合、前記変更パケットを再現用パケットに決定するパケット決定ステップと、をサーバーに実行させる再現用データ生成方法。
  9. 画像形成装置をシミュレートするシミュレートステップと、
    画像形成装置が情報処理装置から受信パケットを受信した後に前記画像形成装置においてエラーが発生する場合に、前記受信パケットおよび前記エラーを示すエラー情報を取得する取得ステップと、
    前記受信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、
    前記画像形成装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御ステップと、
    前記仮想装置が前記生成ステップにおいて生成された変更パケットを受信すると、前記仮想装置が前記エラー情報で示されるエラーが発生する場合、前記変更パケットを再現用パケットに決定するパケット決定ステップと、をコンピューターに実行させる再現用データ生成プログラム。
JP2017231916A 2017-12-01 2017-12-01 サーバー、再現用データ生成方法および再現用データ生成プログラム Active JP6962159B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017231916A JP6962159B2 (ja) 2017-12-01 2017-12-01 サーバー、再現用データ生成方法および再現用データ生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017231916A JP6962159B2 (ja) 2017-12-01 2017-12-01 サーバー、再現用データ生成方法および再現用データ生成プログラム

Publications (2)

Publication Number Publication Date
JP2019102980A true JP2019102980A (ja) 2019-06-24
JP6962159B2 JP6962159B2 (ja) 2021-11-05

Family

ID=66974342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017231916A Active JP6962159B2 (ja) 2017-12-01 2017-12-01 サーバー、再現用データ生成方法および再現用データ生成プログラム

Country Status (1)

Country Link
JP (1) JP6962159B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007221183A (ja) * 2006-02-14 2007-08-30 Fuji Xerox Co Ltd 画像形成処理シミュレーション装置及び画像形成処理シミュレーション方法
JP2009004870A (ja) * 2007-06-19 2009-01-08 Canon Inc 通信装置、データ処理方法及びプログラム
JP2010009223A (ja) * 2008-06-25 2010-01-14 Canon Inc 通信装置、その制御方法およびプログラム
JP2011114384A (ja) * 2009-11-24 2011-06-09 Ricoh Co Ltd 通信端末装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007221183A (ja) * 2006-02-14 2007-08-30 Fuji Xerox Co Ltd 画像形成処理シミュレーション装置及び画像形成処理シミュレーション方法
JP2009004870A (ja) * 2007-06-19 2009-01-08 Canon Inc 通信装置、データ処理方法及びプログラム
JP2010009223A (ja) * 2008-06-25 2010-01-14 Canon Inc 通信装置、その制御方法およびプログラム
JP2011114384A (ja) * 2009-11-24 2011-06-09 Ricoh Co Ltd 通信端末装置

Also Published As

Publication number Publication date
JP6962159B2 (ja) 2021-11-05

Similar Documents

Publication Publication Date Title
US10769268B2 (en) Information processing device, information processing system, and information processing method
US9286048B2 (en) Apparatus, non-transitory computer readable information recording medium and information recording method that determine identification information for identifying a program that has issued a use request
US20080209143A1 (en) Digital multi-function peripheral and control method for the same
US9930492B2 (en) Information processing system, information storage apparatus, and location information storing method
US20190121984A1 (en) Method for verifying forgery and falsification of executable file in image forming apparatus and image forming apparatus using same
JP6962159B2 (ja) サーバー、再現用データ生成方法および再現用データ生成プログラム
JP5847120B2 (ja) インターネットファクシミリ装置
US9300631B2 (en) Information processing system, information processing apparatus, apparatus, and non-transitory computer readable medium storing information processing program
US9940334B2 (en) Image forming apparatus and control method thereof
JP6996216B2 (ja) シミュレート装置、情報処理装置、装置設定方法および装置設定プログラム
TWI759096B (zh) 共享軟體方案之建置與部署系統、方法及電腦可讀媒介
US9870249B2 (en) Virtual computer system, method, and non-transitory computer readable medium
JP6520260B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP6958264B2 (ja) サーバー、再現用データ生成方法および再現用データ生成プログラム
JP2007207174A (ja) ドキュメント処理装置及び画像形成装置
JP7081120B2 (ja) 情報処理装置、画像制御方法および画像制御プログラム
JP2006227707A (ja) 画像のサムネイルを表示・非表示制御する画像処理装置及び方法
JP6972882B2 (ja) シミュレート装置、装置設定方法および装置設定プログラム
JP6953994B2 (ja) シミュレート装置、画像形成装置、装置設定方法および装置設定プログラム
JP6863128B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP2019064227A (ja) 情報処理装置、画像制御方法および画像制御プログラム
JP7098899B2 (ja) 仮想実行装置、仮想実行方法および仮想実行プログラム
JP2020149284A (ja) サーバー装置、エラー再現プログラム及びエラー再現システム
JP6728706B2 (ja) 情報処理システム、情報処理装置及び情報処理プログラム
JP2022146304A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210927

R150 Certificate of patent or registration of utility model

Ref document number: 6962159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150