図1は、本発明の実施の一形態であるサポート機20を含むログ表示システム1の概略の構成を模式的に示す図である。ログ表示システム1は、ターゲット機10と、履歴情報の動作制御装置であるサポート機20とを含む。履歴情報の動作制御方法は、サポート機20によって処理される。
ターゲット機10は、たとえば流通あるいはガソリンスタンドなどで用いられるPOS(Point Of Sales)端末によって構成され、入出力部11およびログファイル部T15を含む。サポート機20は、たとえばパーソナルコンピュータによって構成され、表示部S25を含む。ターゲット機10とサポート機20とは、ネットワークたとえばLAN(
Local Area Network)30あるいは公衆回線などによって接続される。図1には、理解を容易にするために、サポート機20に1台のターゲット機10が接続される場合を示しているが、本実施の形態ではサポート機20に複数台のターゲット機10が接続される。
ターゲット機10の入出力部11は、たとえば操作者がターゲット機10を操作するタッチパネルおよび操作者への情報を表示する液晶ディスプレイを含む。ログファイル部T15は、たとえばハードディスク装置によって構成され、操作者が入出力部11に対して行った操作などの履歴情報(以下「ログ」という)を記憶する。サポート機20の表示部S25は、たとえばサポート機20の操作者への情報を表示する液晶ディスプレイによって構成される。
ターゲット機10は、操作者が入出力部11を操作すると、操作者が行った操作を表すログを生成し、生成したログをログファイル部T15に記憶する。あるいは、生成したログを、ログファイル部T15に記憶することなく、サポート機20に送信する。サポート機20は、ログファイル部T15から読み出されて送信されるログ、あるいはログファイル部T15に記憶することなく送信されたログを受信すると、受信したログに基づいて、ターゲット機10で行われた操作を解析し、解析結果を表示部S25に表示する。表示部S25には、たとえばターゲット機10の入出力部11のタッチパネルが画像として表示され、そのタッチパネルを操作する操作者の手が重畳して表示され、ターゲット機10で行われた操作が表示部S25上で再現される。
図2は、図1に示したターゲット機10の外観を示す斜視図である。図2に示したターゲット機10は、ガソリンスタンドに設置されるPOS端末の例であり、従業員が操作を行い、ガソリンの給油指定あるいは決済に用いられる。
図2に示したターゲット機10は、情報入力のためのタッチパネル部111およびキー部112、情報表示のための表示部T113、プリンタ31、ならびに磁気カードリーダライタ33を含む。プリンタ31および磁気カードリーダライタ33は、ターゲット機10に組み込まれている必要はなく、外付けであってもよい。
図3は、図1に示したターゲット機10の構成の一例を示すブロック図である。ターゲット機10は、入出力部11、ログ記録制御部12、システムタイマ部13、アプリケーション部14、ログファイル部T15、表示制御部16、制御部17、図示しないCPU(Central Processing Unit)、および図示しないメモリを含む。ターゲット機10には、プリンタ31、スキャナ32、磁気カードリーダライタ33、暗証番号入力装置34、計量機35、釣銭機36、油面計37、および洗車機38が接続される。
入出力部11は、ターゲット機10に内蔵されるデバイスおよび外付けのデバイスとデータの送受信を行う通信部であり、タッチパネル部111、キー部112、表示部T113、LAN通信部114、パラレル通信部115、シリアル通信部116、無線通信部117、およびSS(Service Station)−LAN通信部118を含む。内蔵されるデバイスは、たとえばタッチパネル部111、キー部112、および表示部T113であり、外付けのデバイス(以下「外部デバイス」ともいう)は、たとえばプリンタ31、スキャナ32、磁気カードリーダライタ33、暗証番号入力装置34、計量機35、釣銭機36、油面計37、および洗車機38である。
タッチパネル部111は、操作者が画面にタッチすることによって情報を入力するタッチパネルである。キー部112は、操作者がキーを押下することによって情報を入力するキー入力装置である。表示部T113は、液晶ディスプレイなどの表示装置であり、情報を表示する。
LAN通信部114は、LAN30に接続される機器たとえばサポート機20とデータを送受信する通信部である。パラレル通信部115は、パラレルインタフェースによってターゲット機10に接続されるプリンタなどの装置と、パラレル通信によってデータを送受信する通信部である。シリアル通信部116は、シリアルインタフェースによってターゲット機10に接続されるスキャナ32および磁気カードリーダライタ33と、シリアル通信によってデータを送受信する通信部である。無線通信部117は、無線によってターゲット機10に接続される暗証番号入力装置34と、無線通信によってデータを送受信する通信部である。SS−LAN通信部118は、SS−LANによってターゲット機10に接続される計量機35、釣銭機36、油面計37、および洗車機38とデータを送受信する通信部である。ターゲット機10と外部デバイスとの通信は有線でも無線でもかまわない。
ログ記録制御部12は、ログ生成部121、文字列変換テーブル部T122、ログ記録部123、およびログ設定部124を含み、入出力部11あるいは表示制御部16からの情報に基づいて、ログを生成し記録する。ログ生成部121は、入出力部11あるいは表示制御部16からログ指示つまりログの生成指示を受け取ると、または入出力部11にログ対象の動作が発生したか否かを監視し、ログ対象の動作が発生すると、ログ指示または発生したログ対象の動作に基づくログを生成する。ログ対象の動作は、たとえば操作者がターゲット機10に取付けられたデバイスを直接指などで触ったり押したりしたことによってターゲット機10上に入力が発生すること、各通信部と接続される外部デバイスとの通信が発生すること、通信路の状態が変わること、各部でエラーが発生することなどの動作である。
文字列変換テーブル部T122は、たとえば図示しないメモリに含まれ、ログ生成部121がログを生成するために用いる後述する変換テーブルを記憶する。ログ記録部123は、ログ生成部121が生成したログを、ログファイル部T15に記憶する。ログ設定部124は、たとえば図示しないメモリに含まれ、ログを生成するログ対象およびログを記憶させるログファイルの指定などが設定されている。
システムタイマ部13は、ターゲット機10の時刻を計時するタイマである。ログ生成部121は、ログを生成する際、システムタイマ部13が示す時刻を参照して、時刻をログに残す。アプリケーション部14は、ターゲット機10の用途に応じた機能を実現する部位であり、画像データ部141およびアプリケーション制御部142を含む。画像データ部141は、たとえば図示しないメモリに含まれ、表示部T113に表示する画像イメージとその画像イメージを管理するための後述する画像管理テーブル51を記憶する。アプリケーション制御部142は、ターゲット機10の用途に応じて実行されるプログラムによって実現される機能である。
ログファイル部T15は、たとえば図示しないメモリに含まれ、標準ログファイル151および指定ログファイル152を含む。ログファイルは、複数のログをまとめてファイル化したものである。1台のターゲット機10が出力するログをログファイルに記録する場合、ログファイルは1つだけではなく複数のファイルに分割することが可能である。たとえば、入出力デバイス毎あるいは動作毎に分割することができる。図3に示した例では、まず、大きく2つのログファイル、つまり標準ログファイル151と指定ログファイル152とに分割している。標準ログファイル151は、要求のあったデバイス別にログを記憶するためのログファイルであり、指定ログファイル152は、デバイス共通にログを記憶するためのログファイルである。そして、標準ログファイル151の中は、デバイス別のログファイルに分割されている。さらに、ファイルの分割は、ログファイルのファイルサイズがシステム上の制限あるいは任意に指定した最大値まで達した場合にも行われる。
表示制御部16は、表示部T113を制御する。たとえばアプリケーション制御部142から指示された画像イメージを表示部T113に表示する。制御部17は、図示しないメモリによって記憶されるプログラムが、図示しないCPUによって実行されることによって実現される機能であり、入出力部11、ログ記録制御部12、アプリケーション部14、および表示制御部16を制御する。入出力部11、ログ記録制御部12、アプリケーション部14、および表示制御部16も、図示しないメモリによって記憶されるプログラムが、図示しないCPUによって実行されることによって実現される機能である。図示しないメモリは、たとえばROM(Read Only Memory)あるいはRAM(Random Access
Memory)などの半導体メモリあるいはハードディスク装置によって構成される記憶装置である。
プリンタ31は、たとえば印刷装置であり、スキャナ32は、たとえば原稿読取装置あるいはバーコード読取装置であり、磁気カードリーダライタ33は、磁気カードの読み込みおよび書き込みを行う装置であり、暗証番号入力装置34は、暗証番号を入力するための入力装置である。計量機35、釣銭機36、油面計37、および洗車機38は、ガソリンスタンドで用いられる装置であり、計量機35は、ポンプによる給油量を計量する装置であり、釣銭機36は、釣銭を払い出す装置であり、油面計37は、タンクに貯蔵されている油量を計量する装置であり、洗車機38は、車の洗車を行う装置である。
入出力部11は、タッチパネル部111、キー部112、表示部T113、LAN通信部114、パラレル通信部115、シリアル通信部116、無線通信部117、およびSS−LAN通信部118からのハードウェアまたはソフトウェアによる割込みによって処理を開始する。割込み要因に基づいて、ログの生成を指示するログ指示を作成し、作成したログ指示をログ生成部121に送る。
図4は、図3に示した画像データ部141が管理する画像管理テーブル51の一例を示す図である。画像管理テーブル51は、表示部T113に表示する表示画面を特定する表示画面番号ごとのデータを示すテーブルである。このデータは、表示部T113の画面全体に表示する画像そのもののデータ、表示部T113の画面の一部に表示する画像の、あるいは画像を生成するためのメタデータである。図4には、表示画面番号「0001」について、データ「開始画像データ」が示され、表示画面番号「0002」について、データ「業務画像1データ」が示され、表示画面番号「0003」について、データ「業務画像2データ」が示されている。
アプリケーション制御部142は、表示制御部16に対して表示画面番号を指示すると、表示制御部16は、アプリケーション制御部142から指示された表示画面番号の画像を表示部T113に表示させる。そして、表示制御部16は、指示された表示画面番号を示すログ指示を作成し、作成したログ指示をログ生成部121に送る。
ログ記録制御部12は、入出力部11内で、割り込み以外のログ対象の動作が発生しているか否かを監視する。ログ対象の動作が発生していると、そのログ対象の動作のログを生成し、生成したログをログファイル部T15に記憶する。さらに、入出力部11あるいは表示制御部16から、ログ設定部124に設定されているログ対象のログ指示を受け取ると、ログ指示に基づくログを生成し、ログファイル部T15に記憶する。ログファイル部T15のうちの標準ログファイルに記憶するか指定ログファイルに記憶するか否かは、ログ設定部124の設定に基づいて判断される。
図5は、図3に示した入出力部11または表示制御部16からログ生成部121に通知されるログ指示例52を示す図である。ログ指示は、基本的には、1行で1つのログ指示を示し、図5には、6つのログ指示が示されている。1つのログ指示は、カンマで区切られた複数の数値または文字列から構成される。最初の数値は、図6で後述する入出力部番号を示し、2番目の数値は、図7で後述する動作番号を示し、3番目以降の数値または文字列は、動作の詳細である。
たとえば、1行目のログ指示「1,1,142,244」は、入出力番号「1」つまりタッチパネル部111で、動作番号「1」の動作つまり「触れる」動作が発生し、動作詳細が「142,244」つまり触れた位置が座標(142,244)であったことを示している。2行目のログ指示は「1,2,145,242」であり、3行目のログ指示は「11,11,01F45CCD4EF10E042」であり、4行目のログ指示は「21,31,130」であり、5行目のログ指示は「1,1,582,289」であり、6行目のログ指示は「1,2,573,295」である。
図6は、図3に示した文字列変換テーブル部T122に記憶される入出力部名定義テーブル53である。入出力部名定義テーブル53は、入出力部を特定するための「入出力部番号」ごとに、対応する「入出力部名ログ文字列」を示すテーブルである。入出力部名定義テーブル53の右側に備考として、それぞれの入出力部名を記載する。テーブルの入出力部名ログ文字列欄の文字列は任意に設定することができるので、入出力部名ログ文字列を、全く関係のない文字列に設定してもよい。
たとえば、入出力部番号「001」は、入出力部名ログ文字列が「“operation”」であり、備考が「タッチパネル」つまりタッチパネル部111であることを示している。同様に、入出力部番号に対する入出力部名ログ文字列および備考は、それぞれ「011」については、「“serial1”」つまりシリアル通信部1であり、「012」については、「“serial2”」つまりシリアル通信部2であり、「013」については、「“extserial”」つまりシリアル通信部3であり、「021」については、「“display”」つまり表示部であり、「031」については、「“sslan”」つまりSS−LAN通信部であり、「100」については、「“core”」つまりアプリケーションである。
「シリアル通信部1」、「シリアル通信部2」、および「シリアル通信部3」は、いずれもシリアル通信部116であり、同一デバイスで複数の入出力チャネルを利用している場合を示している。複数の入出力チャネルのそれぞれに入出力部番号を割り当てて区別している。
図7は、図3に示した文字列変換テーブル部T122に記憶される動作名定義テーブル54である。動作名定義テーブル54は、動作を特定するための「動作番号」ごとに、対応する「動作名ログ文字列」を示すテーブルである。動作名定義テーブル54の右側に「備考:対応する動作」として、それぞれの動作名が記載されている。テーブルの動作名ログ文字列欄の文字列は任意に設定することができるので、動作名ログ文字列を、全く関係のない文字列に設定してもよい。
たとえば、動作番号「000」は、動作名ログ文字列が「“message” 」であり、備考が「情報」であることを示している。同様に、動作番号に対する動作名ログ文字列および備考は、それぞれ「001」については、「“ pressed” 」および「触れる」であり、「002」については、「“released” 」および「離す」であり、「011」については、「“read” 」および「入力」であり、「012」については、「“write” 」および「出力」であり、「021」については、「“error” 」および「エラー」であり、「031」については、「“change” 」および「画面変更」である。
図8は、図3に示した文字列変換テーブル部T122に記憶される動作詳細作成ルールテーブル55である。動作詳細作成ルールテーブル55は、「入出力部」と「動作」との組合せごとに、「動作詳細のログ作成ルール」を示すテーブルである。動作詳細作成ルールテーブル55の右側に「備考:意味」として、それぞれの組合せの意味が記載されている。
たとえば、入出力部「001」と動作「001」との組合せについては、タッチパネルに触れたことを意味し、動作詳細のログ作成ルールが「第3、第4引数を座標“x=%04d,y=%04d”形式にする」を行なったことを意味している。同様に、入出力部と動作との各組合せについての動作詳細のログ作成ルールおよび備考は、入出力部「001」と動作「002」との組合せについては、タッチパネルを離したことを意味し、「第3、第4引数を座標“x=%04d,y=%04d”形式にする」を行なった、入出力部「011」と動作「011」との組合せについては、シリアル通信部1で入力を意味し、「第3引数を16進数にする」を行なった、入出力部「011」と動作「012」との組合せについては、シリアル通信部1で出力を意味し、「第3引数を16進数にする」を行なった、入出力部「011」と動作「021」との組合せについては、シリアル通信部1でエラーを意味し、「第3引数を10進数にする」を行なったである。
入出力部「021」と動作「031」との組合せについては、表示部で画面変化を意味し、「第3引数を“display=%04d”形式にする」を行なった、入出力部「031」と動作「011」との組合せについては、SS−LAN通信部で入力を意味し、「第3引数を16進数にする」を行なった、入出力部「031」と動作「012」との組合せについては、SS−LAN通信部で出力を意味し、「第3引数を16進数にする」を行なった、入出力部「100」と動作「000」との組合せについては、アプリケーション情報を意味し、「第3引数を文字のまま出力する」を行なったである。
ログ生成部121は、入出力部11あるいは表示制御部16から、ログ設定部124に設定されているログ対象のログ指示を受け取ると、まず、システムタイマ部13から日時を取得し、日時を表す日時ログ文字列を生成する。次に、受け取ったログ指示の1番目の数値に基づいて、図6に示した入出力部名定義テーブル53から入出力部名ログ文字列、そして2番目の数値に基づいて、図7に示した動作名定義テーブル54から動作名ログ文字列を取得する。さらに、受け取ったログ指示の1番目の数値、2番目の数値、および3番目以降の数値または文字列に基づいて、図8に示した動作詳細作成ルールテーブル55
の動作詳細のログ作成ルールによって、動作の詳細を表す動作詳細ログを作成する。取得した日時ログ文字列、入出力部名ログ文字列、および動作名ログ文字列、ならびに作成した動作詳細ログを合成して、ログ指示に対応するログを生成する。生成したログは、ログファイル部T15に記憶する。
たとえば、操作者がタッチパネルに触れたことを示すログを生成する場合、指示ログは、図5に示した指示ログ例52の1行目の指示ログ「1,1,142,244」である。第1引数「1」が示す入出力部「タッチパネル」を表す番号「001」と、第2引数「1」が示す動作「触れる」を表す番号「001」との組合せについて、図8に示した動作詳細作成ルールテーブル55を参照すると、動作詳細のログ作成ルール「第3、第4引数を座標“x=%04d,y=%04d”形式にする」が得られる。ここで「%04d」とは、4桁の10進数を示し、C言語を使用するプログラムにおいて文字出力に関する標準的な出力形式を示す一例である。日時を2006年5月18日15時15分01.120秒とすると、第3引数「142」および第4引数「244」から、ログは、「2006/05/18,15:05:01.120,“operation”,“pressed”,“x=0142,y=0244”」となる。
図9は、図3に示したログファイル部T15に記憶されたログ例56を示す図である。ログ例56は、基本的には、1行で1つのログつまりターゲット機10上での1動作についてのログを示し、図9には、6つのログが示されている。1つのログは、カンマで区切られた複数の数値または文字列から構成される。最初の数値または文字列は、ログ対象の動作があった日時、2番目の数値または文字列は、入出力部名、3番目の数値または文字列は、動作名、4番目の数値または文字列は、各動作の内容を詳細に示す動作詳細である。図9に示した例では、4つの項目を例示したが、これら以外に、ログには関連するプログラム名、ユーザ名、ログの文字数、あるいはマシン名などターゲット機10に関連する情報、および使用状況あるいは場所を特定する情報などを含めてもよい。さらに、1つのログの情報量が多くなる場合、2行以上にログを分割してもよい。
図9には、図5に示した指示ログ例52に対応するログ例56が示されている。1行目には、「2006/05/18,15:05:01.120,“operation”,“pressed”,“x=0142,y=0244”」と示され、2行目には、「2006/05/18,15:05:01.541,“operation”,“released”,“x=0145,y=0242”」と示され、3行目には、「2006/05/18,15:05:02.951,“serial1”,“read”,“01F45CCD4EF10E042”」と示され、4行目には、「2006/05/18,15:05:04.092,“display”,“change”,“display=0130”」と示され、5行目には、「2006/05/18,15:05:08.735,“operation”,“pressed”,“x=0582,y=0289”」と示され、6行目には、「2006/05/18,15:05:09.089,“operation”,“released”,“x=0573,y=0295”」と示されている。
図9に示した例では、ログに日時を特定する情報を含んでいる例を示したが、ログに日時を特定するための情報を含まない場合、ログファイル部T15のログファイルにログを記録する際、ログが生成された順またはログ対象の動作が発生した順に記憶する。ログに日時を特定するための情報を含む場合は順不同でもよい。
図10は、図3に示したアプリケーション部14がログ指示作成のために用いるログ事象変換テーブル57である。ログ事象変換テーブル57は、アプリケーション制御部142において発生した「事象」ごとに、対応する「ログ文字列」を示すテーブルである。ログ文字列欄には、事象に合わせて任意のログ文字列を設定することができる。したがって、アプリケーションについては、入出力部11とは独立したログとして、つまりアプリケーションのみの情報をログとして記録することができる。
図10には、事象「プログラムAの開始」について、ログ文字列「“プログラムA開始”」が示され、事象「プログラムAの終了」について、ログ文字列「“プログラムA終了(終了コード=%03d)”」が示され、事象「操作する従業員の指定」について、ログ文字列「“従業員コード=%06d”」が示され、事象「精算処理の開始」について、ログ文字列「“精算処理開始”」が示されている。
図11は、図3に示したアプリケーション部14からログ生成部121に通知するログ指示例58およびそれに基づくログ例59を示す図である。たとえば、ターゲット機10が複数の従業員で構成される飲食店で使用する端末である場合、端末の操作者を特定するために、アプリケーションは、従業員情報たとえば従業員コードを用いて従業員を管理する。タッチパネルの操作は、端末を使用する従業員が関連する動作であり、タッチパネルで行われた入出力操作と従業員情報とを関連付けてログに記録しておきたいケースが発生する。ログ記録制御部12がこの従業員情報に関知する構成となっていない場合、ログに記録するため、アプリケーション制御部142は、アプリケーションにのみ存在する情報、たとえば従業員情報を、任意の文字列として、ログ指示でログ生成部121に指示する。
ログ指示例58に示した個々のログ指示は、図5に示した例と同様に、カンマで区切られた複数の数値または文字列から構成される。最初の数値は、図6に示した入出力部番号を示し、2番目の数値は、図7に示した動作番号を示し、3番目以降の数値または文字列は、動作の詳細である。動作の詳細は、図10に示した事象に対応する情報である。たとえば、1行目のログ指示「100,0,“プログラムA開始”」は、入出力番号「100」つまりアプリケーションで、動作番号「0」の動作つまり「情報」を生成し、動作詳細が「プログラムA開始」つまりプログラムAが開始されたことを示している。2行目のログ指示は「100,0,“従業員コード=%06d”,138」であり、3行目のログ指示は「100,0,“プログラムA終了(終了コード=%03d)”,0」である。
ログ例59に示した個々のログは、それぞれログ指示例58に示したログ指示に対応するログであり、図9に示した例と同様に、カンマで区切られた複数の数値または文字列から構成される。最初の数値または文字列は、ログ対象の動作があった日時、2番目の数値または文字列は、入出力部名、3番目の数値または文字列は、動作名、4番目の数値または文字列は、各動作の内容を詳細に示す動作詳細である。たとえば、1行目には、「2006/05/26,10:13:59.022,“core”,“message”,“プログラムA開始”」と示され、2行目には、「2006/05/26,10:14:21.924,“core”,“message”,“従業員コード=000138”」と示され、3行目には、「2006/05/26,10:20:11.311,“core”,“message”,“プログラムA終了(終了コード=000)”」と示されている。
図12は、図1に示したサポート機20の構成の一例を示すブロック図である。サポート機20は、ログ読取部21、バッファ部22、ログ解析部23、画面イメージファイルDB(database)24、表示部S25、操作部26、文字列変換テーブル部S27、ログ再生制御部28、再現用入出力部80、図示しないCPU、および図示しないメモリを含む。サポート機20は、LAN5を介して、ターゲット機10に接続され、再現用に用いる再現用外部デバイスが接続される。
ログ読取部21は、ターゲット機10に含まれるログファイル部T15からログを読み取る。バッファ部22は、ログ読取部21に読み取られたログを記憶する。ログ解析部23は、ログの解析を行う。画面イメージファイルDB(以下「画面イメージファイルデータベース」ともいう)24は、ログを記録したターゲット機10の表示画面と同じまたは同等の複数の画面の画像イメージ(以下「画面イメージ」ともいう)およびその画像イメージを管理するための後述する画面テーブルを記憶する。表示部S25は、たとえば液晶ディスプレイなどで構成され、画像を表示する。操作部26は、たとえばキーボードあるいはマウスなどよって構成され、ログ再生および表示内容について指示を入力するための入力装置である。文字列変換テーブル部S27は、たとえば図示しないメモリに含まれ、ログ文字列から動作を特定するためにログ解析部23によって参照される後述する変換テーブルを記憶する。
ログ再生制御部28は、図示しないメモリによって記憶されるプログラムが、図示しないCPUによって実行されることによって実現される機能であり、ログ読取部21、バッファ部22、ログ解析部23、画面イメージファイルDB24、表示部S25、操作部26、および再現用入出力部80を制御する。ログ解析部23も、図示しないメモリによって記憶されるプログラムが、図示しないCPUによって実行されることによって実現される機能である。図示しないメモリは、たとえばROMあるいはRAMなどの半導体メモリあるいはハードディスク装置によって構成される記憶装置である。バッファ部22および画面イメージファイルDB24は、図示しないメモリに含まれる。
再現用入出力部80は、サポート機20に内蔵されるデバイスおよび外付けのデバイスとデータの送受信を行う通信部であり、ターゲット機10の入出力部11に相当する機能を有する。再現用入出力部80は、再現用タッチパネル部801、再現用キー部802、再現用表示部803、再現用LAN通信部804、再現用パラレル通信部805、再現用シリアル通信部806、再現用無線通信部807、および再現用SS−LAN通信部808を含む。再現用タッチパネル部801、再現用キー部802、再現用表示部803、再現用LAN通信部804、再現用パラレル通信部805、再現用シリアル通信部806、再現用無線通信部807、および再現用SS−LAN通信部808は、それぞれターゲット機10のタッチパネル部111、キー部112、表示部T113、LAN通信部114、パラレル通信部115、シリアル通信部116、無線通信部117、およびSS−LAN通信部118に対応し、重複を避けるために説明は省略する。
内蔵されるデバイスは、たとえば再現用タッチパネル部801、再現用キー部802、および再現用表示部803であり、外付けのデバイスすなわち再現用外部デバイスは、たとえば再現用プリンタ81、再現用スキャナ82、再現用磁気カードリーダライタ83、再現用暗証番号入力装置84、再現用計量機85、再現用釣銭機86、再現用油面計87、および再現用洗車機88である。再現用プリンタ81、再現用スキャナ82、再現用磁気カードリーダライタ83、再現用暗証番号入力装置84、再現用計量機85、再現用釣銭機86、再現用油面計87、および再現用洗車機88は、それぞれターゲット機10のプリンタ31、スキャナ32、磁気カードリーダライタ33、暗証番号入力装置34、計量機35、釣銭機36、油面計37、および洗車機38に対応し、重複を避けるために説明は省略する。
図13は、図12に示した表示部S25に表示される再生画面70を示す図である。再生画面70は、画面表示部71、キー操作表示部72、入出力表示部73、および再生ポインタ74を含む。画面表示部71は、ターゲット機10の表示部T113に表示される画像と同じ画像を表示する領域である。キー操作表示部72は、ターゲット機10のキー部112を表す画像を表示する領域である。入出力表示部73は、ターゲット機10の入出力部11に入出力された情報のうちタッチパネル部111およびキー部112によって入力された情報を除く入出力情報、たとえば入出力部11に含まれる各通信部によって入出力された情報を表示するための領域である。再生ポインタ74は、すべてのログを再生する場合、現在再生しているログの相対位置を示すポインタである。
ログ再生制御部28は、ログ再生を行う際、ターゲット機10上の表示部T113に表示されていた画面を、画面表示部71に表示する。ターゲット機10上でタッチパネルあるいはマウスによって座標指定が行なわれた場合、指定された座標位置を指、矢印、あるいは記号などのポインタによって特定する。ターゲット機10のキー部112で入力されたキーが操作された場合、入力値がポインタによって特定されるようにキー操作表示部72に表示する。さらに、ターゲット機10の入出力部11に含まれる各通信部で通信された情報を、入出力表示部73に文字列化して表示する。
図14は、図12に示したログ再生制御部28で用いられる検索方法定義テーブル60を示す図である。検索方法定義テーブル60は、指定された再生条件に基づいて、ログの検索方法を決定するためのテーブルであり、「再生条件指定」ごとに「検索方法」が示されている。図14には、再生条件指定「再生開始日時の指定」について、検索方法「ログ行の日時と指定日時の比較」が示され、再生条件指定「特定従業員の指定」について、検索方法「"従業員コード="文字列との一致を検索」が示され、再生条件指定「外部デバイスの特定通信内容」について、検索方法「入出力部ログ文字列と動作詳細文字列との一致を検索」が示されている。
操作者が操作部26からログの再生を指示すると、ログ再生制御部28は、表示部S25に再生させるログのログファイル名を選択させる画面を、表示部S25に表示する。操作部26によってログファイル名が選択されると、選択されたログファイルを、ログ読取部21によって、ターゲット機10に含まれるログファイル部T15からバッファ部22に読み込む。選択されたログファイルが複数である場合、選択された全ログファイルをバッファ部22に読み込み、日時によってログをソートする。
次に、ログ再生制御部28は、再生条件を入力させる画面を、表示部S25に表示する。再生条件には、図14に示した再生条件があり、たとえばログの開始から終了までのうちの任意の日時のログを再生するという条件、あるいはログ中で指定の文字列と一致するログを再生するという条件を指定することができる。再生条件が指定されると、指定された再生条件を満たすログを検索する。
ログ再生制御部28は、ログ解析部23によって、検索した各ログについて、ログが示す動作がどのようなものであったかを解析する。ログの示す動作が画面表示に関係するものである場合、画面イメージファイルDB24から、ログに含まれる画面表示についての情報が示す画面イメージを取得し、取得した画面イメージを画面表示部71に表示する。操作が伴っていれば、表示されている画面イメージに重畳して、その操作の操作位置を示すための指などのポインタを表示する。ログ再生制御部28は、検索したログを時系列に順次再生する。
ユーザは、操作部26によって、順次再生されているログを任意の時点で停止することができ、さらに停止時点から再開することができる。1つのログを表示してから次のログを表示する時間を、ログの日時に基づいて調整することによって、実時間での動作として再現することができる。その時間を短くすることによって高速再生、あるいはその時間を長くすることによってスロー再生も可能である。
図15は、図12に示した画面イメージファイルDB24に記憶される画面テーブル61の一例を示す図である。画面テーブル61は、画面を特定するための情報である画面情報と、画面イメージを格納するファイルを特定するための画面イメージファイル名とを対にして構成したテーブルであり、ログに基づいて、ログ記録時に表示されていた画面を特定して、再生イメージを生成するために使用される。画面イメージファイル名は、予め画面イメージ毎に定められたファイルの名称であり、画面イメージファイル名が示すファイルに、ターゲット機10上で表示される画面と同じまたは同等の画面の画像イメージが記録される。
図15に示した画面情報を、図4に示した画像管理テーブル51における表示画像番号と同じ画像番号にすることによって、ログ記録時の表示画面とログ再生時の表示画面とを一致させることができる。ログに含まれる画面表示についての情報は、ログが記録された時点でターゲット機10の画面に表示されていた画面イメージを導き出せる一意の情報であり、画面テーブル61における画面情報のいずれかの画面情報を特定している。ログが記録された時点でターゲット機10の画面に表示されていた画面イメージを収めたファイルのファイル名、またはそのイメージを特定することができるなんらかの情報を収めたファイルのファイル名が、画面テーブル61の画面イメージファイル名に示されている。したがって、特定された画面情報に対応する画面イメージファイル名の画面イメージを、画面イメージファイルDB24から読み出して、表示部S25に表示すれば、ログが記録された時点でターゲット機10の画面に表示されていた画面イメージを再生することができる。
画面イメージファイル名の画面イメージのイメージ形式は、たとえばPNG(Portable
Network Graphics)形式、GIF(Graphic Interchange Format)形式、あるいはJPEG(Joint Photographic Experts Group)形式など様々なフォーマットを利用することができる。
図15には、画面情報「画面0001」の画面イメージファイルとして「0001.PNG」が示され、画面情報「画面0002」の画面イメージファイルとして「0002.GIF」が示され、画面情報「画面0003」の画面イメージファイルとして「0003.JPG」が示されている。
図16は、図13に示した画面表示部71に表示される再生画面70の生成手順の一例を模式的に示す図である。ログ再生制御部28は、図15に示した画面テーブル61を使用して、ターゲット機10からバッファ部22に読み込んだログファイルのログから、ログが記録された際に表示されていたターゲット機10上の画面を導き出す。
図16には、ログファイル15a、画面イメージファイルデータベース24a、および再生イメージ70a、および再生イメージ70bが示されている。ログファイル15aには、2つのログ「 2006/05/22,14:49:42.789,“display”,“change”,“display=画面0001”」および「2006/05/22,14:53:02.024,“display”,“change”,“display=画面0002”」が記録されている。画面イメージファイルデータベース24aには、画面テーブル61、画面イメージ「0001.PNG」、画面イメージ「0002.GIF」、および画面イメージ「0003.JPG」が記憶されている。
ログ再生制御部28は、たとえばバッファ部22に読み込んだログファイル15aの最初のログを、ログ解析部23によって解析すると、「2006年5月22日14時49分42.789秒」に「画面0001」を表示したことが判明する。画面情報「画面0001」をキーとして、画面イメージファイルデータベース24aで検索を行い、関連する画面イメージファイル名「0001.PNG」を得る。すなわち、当該ログ記録時にターゲット機10上で表示された画面はファイル「0001.PNG」の画像イメージであることが導かれる。ログ再生制御部28は、画面イメージファイル名「0001.PNG」の画像イメージを、画面イメージファイルデータベース24aから取得し、再生イメージ70aとして表示部S25に表示する。同様に、2つ目のログについて、再生イメージ70bを表示部S25に表示する。
再生イメージ70aは、「2006年5月22日14時49分42.789秒」にターゲット機10の表示部T113に表示された画像イメージ「画面0001」であり、再生イメージ70bは、「2006年5月22日14時53分02.024秒」にターゲット機10の表示部T113に表示された画像イメージ「画面0002」である。
図17は、図12に示した画面イメージファイルDB24に記憶される他の画面テーブル62の例を示す図である。画面テーブル62は、画面のうち背景を特定するための情報、または部品となるウィンドウを特定するための情報によって定義される画面情報と、画面イメージを格納するファイルを特定するための画面イメージファイル名とを対にして構成したテーブルであり、図15に示した画面テーブル61と同様に、ログからログ記録時に表示されていた画面を特定して、再生イメージを生成するために使用される。画面イメージファイル名は、予め画面イメージ毎に定められたファイルの名称であり、画面イメージファイル名が示すファイルに、ターゲット機10上で表示される画面の背景またはウィンドウ・ボタン・テキストなどの部品と同じまたは同等の画像イメージが記録される。
図17には、画面情報「背景0001」の画面イメージファイルとして「B0001.PNG」が示され、画面情報「背景0002」の画面イメージファイルとして「B0002.PNG」が示され、画面情報「背景0003」の画面イメージファイルとして「B0003.PNG」が示され、画面情報「ウィンドウ0001」の画面イメージファイルとして「W0001.PNG」が示され、画面情報「ウィンドウ0002」の画面イメージファイルとして「W0002.PNG」が示されている。
画面テーブル62が、図15に示した画面テーブル61と異なる点は、画面テーブル62のイメージファイル名が指すイメージファイルは、画面に表示される画像イメージ全体のうち一部を示す構成要素となっているところである。再生イメージの生成は、背景として使用される画像イメージと背景の前方に表示するウィンドウの画像イメージとを組み合わせて生成される。すなわち、ログに記録される複数の画面情報から得られる複数の画像イメージが重畳されたものである。したがって、画像イメージを共通に利用することができるので、画面イメージファイルデータベース24に記憶する画像イメージの数の削減あるいは各データのデータサイズを減少させることができる。
図18は、図13に示した画面表示部71に表示される再生画面の生成手順の他の例を模式的に示す図である。ログ再生制御部28は、図17に示した画面テーブル62を使用して、ターゲット機10からバッファ部22に読み込んだログファイルのログから、ログが記録された際に表示されていたターゲット機10上の画面を導き出す。
図18には、ログファイル15b、画面イメージファイルデータベース24b、および再生イメージ70c、および再生イメージ70dが示されている。ログファイル15bには、2つのログ「2006/05/22,14:49:42.789, “display”,“display=背景0001,ウィンドウ0001(x=0132,y=0024”」および「2006/05/22,14:53:02.024, “display”,“display=背景0001,ウィンドウ0002(x=0132,y=0024”」が記録されている。画面イメージファイルデータベース24bには、画面テーブル62、画面イメージ「B0001.PNG」、画面イメージ「W0001.PNG」、および画面イメージ「W0002.PNG」が記憶されている。
ログ再生制御部28は、たとえばバッファ部22に読み込んだログファイル15bの最初のログを、ログ解析部23によって解析すると、「2006年5月22日14時49分42.789秒」に「背景0001」と「ウィンドウ0001」とを表示したことがわかる。画面情報「背景0001」をキーとして、画面イメージファイルデータベース24bで検索を行い、関連する画面イメージファイル名「B0001.PNG」を得る。同様に、画面情報「ウィンドウ0001」をキーとして検索し、画面イメージファイル名「W0001.PNG」を得る。ログ再生制御部28は、画面イメージファイル名「B0001.PNG」の画像イメージと、画面イメージファイル名「W0001.PNG」の画像イメージとを、画面イメージファイルデータベース24bから取得し、2つの画像イメージを重畳して、再生イメージ70cとして表示部S25に表示し、該ログ記録時にターゲット機上で表示された画面を再生する。同様に、2つ目のログについて、再生イメージ70dを表示部S25に表示する。
再生イメージ70cは、「2006年5月22日14時49分42.789秒」にターゲット機10の表示部T113に表示された画像イメージ「背景0001」および「ウィンドウ0001」であり、再生イメージ70dは、「2006年5月22日14時53分02.024秒」にターゲット機10の表示部T113に表示された画像イメージ「背景0001」および「ウィンドウ0002」である。
図19は、図12に示した文字列変換テーブル部S27に記憶される入出力部特定テーブル63を示す図である。入出力部特定テーブル63は、「入出力部名ログ文字列」に対応する「入出力部番号」を示すテーブルである。入出力部特定テーブル63の右側に備考として、それぞれの入出力部名を記載する。入出力部特定テーブル63は、ログ解析部23が解析を行う際に用いるテーブルであり、図7に示した入出力部名定義テーブル53による変換と逆の変換を行うためのテーブルである。
図19には、「タッチパネル」を意味する、入出力部名ログ文字列「“operation”」に対して、入出力部番号「001」、「シリアル通信部1」を意味する、入出力部名ログ文字列「“serial1”」に対して、入出力部番号「011」、「シリアル通信部2」を意味する、入出力部名ログ文字列「“serial2”」に対して、入出力部番号「012」、「シリアル通信部3」を意味する、入出力部名ログ文字列「“extserial”」に対して、入出力部番号「013」、「表示部」を意味する、入出力部名ログ文字列「“display”」に対して、入出力部番号「021」、「SS−LAN通信部」を意味する、入出力部名ログ文字列「“sslan”」に対して、入出力部番号「031」、「アプリケーション」を意味する、入出力部名ログ文字列「“core”」に対して、入出力部番号「100」が示されている。
図20は、図12に示した文字列変換テーブル部S27に記憶される動作特定テーブル64を示す図である。動作特定テーブル64は、「動作名ログ文字列」に対応する「動作番号」を示すテーブルである。動作特定テーブル64の右側に備考として、それぞれの動作名を記載する。動作特定テーブル64は、図8に示した動作名定義テーブル54による変換と逆の変換を行うためのテーブルである。
図20には、「情報」を意味する、動作名ログ文字列「“message”」に対して、動作番号「000」、「触れる」を意味する、動作名ログ文字列「“pressed”」に対して、動作番号「001」、「離す」を意味する、動作名ログ文字列「“released”」に対して、動作番号「002」、「入力」を意味する、動作名ログ文字列「“read”」に対して、動作番号「011」、「出力」を意味する、動作名ログ文字列「“write”」に対して、動作番号「012」、「エラー」を意味する、動作名ログ文字列「“error”」に対して、動作番号「021」、「画面変更」を意味する、動作名ログ文字列「“change”」に対して、動作番号「031」が示されている。
図21は、図12に示した文字列変換テーブル部S27に記憶される動作解析テーブル65を示す図である。動作解析テーブル65は、「入出力部」と「動作」との組合せごとに、「動作詳細ログの意味」を示すテーブルであり、ログに動作詳細文字列として記録されたものから、各入出力部でどのような動作が行われたかを特定するために用いられる。動作解析テーブル65の右側に備考として、それぞれのログの意味を記載している。動作解析テーブル65は、ログ解析部23が解析を行う際に用いるテーブルであり、図8に示した動作詳細作成ルールテーブル55で行われた変換と逆の変換を行うためのものである。
図21には、入出力部「001」と動作「001」との組合せについては、「タッチパネル座標(X,Y)に触れた」を意味し、動作詳細ログの意味が「“x=%04d,y=%04d”形式で数値は座標X、Y」である。同様に、入出力部と動作との各組合せについての動作詳細ログの意味は、入出力部「001」と動作「002」との組合せについては、「タッチパネル座標(X,Y)で離した」を意味し、動作詳細は「“x=%04d,y=%04d”形式で数値は座標X、Y」であり、入出力部「011」と動作「011」との組合せについては、「シリアル通信部1において外部機器との通信で入力があった」を意味し、動作詳細は「16進数形式で通信内容」であり、入出力部「011」と動作「012」との組合せについては、「シリアル通信部1において外部機器に通信で出力した」を意味し、動作詳細は「16進数形式で通信内容」であり、入出力部「011」と動作「021」との組合せについては、「シリアル通信部1においてエラー発生」を意味し、動作詳細は「10進数形式でエラーコード」である。
入出力部「021」と動作「031」との組合せについては、「表示部で画面を表示した」を意味し、動作詳細は「“display=%04d”形式で数値は画面番号D」であり、入出力部「031」と動作「011」との組合せについては、「SS−LAN通信部において外部機器との通信で入力があった」を意味し、動作詳細は「16進数形式で通信内容」であり、入出力部「031」と動作「012」との組合せについては、「SS−LAN通信部において外部機器に通信で出力した」を意味し、動作詳細は「16進数形式で通信内容」であり、入出力部「100」と動作「000」との組合せについては、「アプリケーション情報」を意味し、動作詳細は「文字のまま出力する」である。
ログ解析部23は、ログの入出力名に対応する入出力部番号を図19に示した入出力部特定テーブル63から抽出し、ログの動作名に対応する動作番号を図20に示した動作特定テーブル64から抽出し、さらに抽出した入出力部番号および動作番号の組合せに対応する動作を図21に示した動作解析テーブル65によって特定する。
ログ再生制御部28は、ターゲット機10の入出力部11に含まれる各通信部で通信された情報の場合、ログの動作詳細に示された情報を、入出力表示部73に文字列化して表示する。画面の表示が行われたログである場合、図16または図18に示したように、ログの動作詳細に対応する画面番号を画面イメージファイルDB24から取得し、取得した表示画面を表示部S25に再生表示する。
さらに、タッチパネル部111またはキー部112に対する操作のログの場合、ログの動作詳細が示す位置をポインタによって特定して示すことによって、表示部S25に表示された画面イメージの中の操作ボタンまたはキーのうち、操作された操作ボタンまたはキーを示すことができる。1つの操作を行った後次の操作を行う場合、1つの操作の位置と次の操作の位置とを結ぶ経路上に、ポインタの残像を1つの操作の位置から次の操作の位置まで順次移動させて表示することによって、ポインタの移動の追尾を可能にする。
図22は、図3に示したサポート機20を含むログ表示システムの他の例であるログ表示システム2の概略の構成を示す図である。ログ表示システム2は、ログファイルをターゲット機外の記憶装置に記憶するものであり、LAN30でそれぞれ接続されるターゲット機10a、サポート機20、およびネットワークディスク40を含む。サポート機20は、図3に示したサポート機20と同じであり、図示していない。ターゲット機10aは、図3に示したターゲット機10のログファイル部T15をなくしたものである。ログ送信部18は、図3に示したLAN通信部114と同じであり、ログ生成部121で生成されたログを、LAN30などのネットワークあるいは公衆回線に接続されているネットワークディスク40に送信する。
ネットワークディスク40は、LAN30に接続され、ログファイル部N41およびログ通信部N42を含む。ログファイル部N41は、たとえばハードディスク装置などの記憶装置によって構成され、ログ通信部N42がターゲット機10aから受信したログを記憶する。ログ通信部N42は、LAN30に接続される他の機器たとえばターゲット機10aおよびサポート機20と、データを送受信する通信部である。これによって、ターゲット機10a内部に記憶領域を設けなくても、ログ記録を行うことができる。
図23は、本発明の実施の他の形態であるサポート機20aを含むログ表示システム3の概略の構成を模式的に示す図である。ログ表示システム3は、ログファイルをなくしたシステムであり、LAN30によってそれぞれ接続されるターゲット機10bおよび履歴情報の動作制御装置であるサポート機20aを含む。履歴情報の動作制御方法は、ログ表示システム3によって処理される。ターゲット機10bは、図22に示したターゲット機10aと同じであり説明は省略する。サポート機20aは、図24で詳述するが、図12に示したサポート機20のログ読取部21およびバッファ部22の代わりにログ受信部S29を設けたものである。ターゲット機10bは、生成したログを記憶することなく、ログ送信部18によってサポート機20aに送信する。
図24は、図23に示したサポート機20aの構成の一例を示すブロック図である。サポート機20aは、図12に示したサポート機20のログ読取部21およびバッファ部22の代わりにログ受信部S29を設けたものである。サポート機20aは、再現用入出力部80を含むが、記述は省略している。サポート機20aのログ受信部S29は、ターゲット機10bから送信されたログを受信し、ログ解析部23に送る。ログ解析部23は、ログ受信部S29から受け取ったログを解析し、解析結果をログ再生制御部28に送る。ログ再生制御部28は、ログ解析部23から受け取った解析結果に基づいて表示を行う。すなわち、ログ表示システム3は、ターゲット機10bで行われた操作を、リアルタイムでサポート機20aの表示部S25に表示することができる。したがって、ターゲット機10bと離れた場所で、ターゲット機10bでの動作を監視することができる。ログを監視する用途に使用することが簡単になる。
図25は、図3に示した入出力部11の入出力ログ指示作成処理のフローチャートである。入出力部11がログ指示に関する処理を行うとき、ステップA1に移る。ステップA1では、ハードウェアまたはソフトウェア割込みを待つ。ステップA2では、割込みがあったか否かを判定する。割込みがあると、ステップA3に進み、割込みがないと、ステップA1に戻る。ステップA3では、割込みについて処理を行う。ステップA4では、割込みを発生した処理内容に基づいてログ指示を作成する。ステップA5では、ログ指示をログ生成部121に通知して終了する。
図26は、図3に示したアプリケーション部14のログ指示作成処理のフローチャートである。アプリケーション部14が、表示部T113の画面に表示を行うとき、ステップB1に移る。画面表示を行うには、表示制御部16に対して表示画像番号を通知することによって、表示する画面を指定する。この指定は、ターゲット機10上で動作する任意のアプリケーションによって行われる。
ステップB1では、表示画像番号を基に画像データ部141から、図4に示した画像管理テーブル51によって特定される画像データを取得する。ステップB2では、表示部T113に合わせて画像データを調整する。調整とは、画像は、全体または一部であり、表示部T113の表示能力に合わせて、画像を拡大、縮小、あるいは重ね合せることである。ステップB3では、調整した画像データを表示部T113に表示する。ステップB4では、表示画像番号に基づいてログ指示を作成する。ステップB5では、生成したログ指示をログ生成部121へ通知して終了する。
図27は、図3に示したログ記録制御部12のログ監視処理のフローチャートである。ログ記録制御部12は、入出力部11内の各部を監視し、ログ対象の動作のログを生成するために、ステップC1に移る。
ステップC1では、ログ設定部124からログ設定を取得する。ログ設定には、ログの対象、たとえば入出力部11に関する動作全て、あるいはエラーが設定されており、ログ設定にログ対象を設定しておくことによって、ログ対象の動作を選択することができる。ステップC2では、入出力部11の動作を確認する。すなわち、入出力部11内の各部の動作を監視する。ステップC3では、ログ対象動作があったか否かを判定する。ログ対象動作があると、ステップC4に進み、ログ対象動作がないと、ステップC2に戻る。
ステップC4では、ログ対象の動作について、ログを生成する。ステップC5では、ログ設定に記録先ログファイルの指定があるか否かを判定する。指定があると、ステップC7に進み、指定がないと、ステップC6に進む。ステップC6では、生成したログを標準ログファイル151に記録して終了する。ステップC7では、生成したログを指定ログファイル152に記録して終了する。
図28は、図3に示したログ記録制御部12のログ記録処理のフローチャートである。入出力部11または表示制御部16からのログ指示を監視するとき、ステップD1に移る。ステップD1では、ログ指示を待つ。ステップD2では、ログ指示があったか否かを判定する。ログ指示があると、ステップD3に進み、ログ指示がないと、ステップD1に戻る。ステップD3では、ログ設定部124からログ設定を取得する。ステップD4では、ログ指示がログ対象のログ指示か否かを判定する。ログ対象であると、ステップD5に進み、ログ対象でないと、ステップD1に戻る。
ステップD5では、検出したログ対象の動作について、ログを生成する。ステップD6では、ログ設定に記録先ログファイルの指定があるか否かを判定する。指定があると、ステップD8に進み、指定がないと、ステップD7に進む。ステップC7では、生成したログを標準ログファイル151に記録して終了する。ステップC8では、生成したログを指定ログファイル152に記録して終了する。
図27と図28とに示した両フローチャートは、ともにログ記録制御部12による処理であるが、別々のタスクで動作する。しかし、各フローチャートの開始を他のフローチャートの終了に繋げて1つのタスクとして連続して動作してもよい。
図29は、図3に示したログ生成部121のログ生成処理のフローチャートである。
図27に示したステップC4または図28に示したステップD5でログを生成する際に、呼び出され、ステップE1に移る。したがって、ログ対象のログ指示またはログ対象の動作が特定された状態で処理が開始される。
ステップE1では、システムタイマ部13から現在の日時を取得する。日時は、必ずしもシステムタイマ部13による日時である必要はなく、ログの対象となる動作が発生した日時を特定することができる何らかの一意な日時を使用してもよい。一意な日時とは、たとえばターゲット機10が動作を開始してからの経過時間、同一ネットワーク上のサーバ機の時計による日時あるいはそのサーバの稼動時間である。
ステップE2では、取得した日時から日時ログ文字列を作成する。ステップE3では、図6に示した入出力部名定義テーブル53を参照して、入出力部番号に対応する入出力部ログ文字列を取得する。ステップE4では、図7に示した動作名定義テーブル54を参照して、動作番号に対応する動作ログ文字列を取得する。ステップE5では、図8に示した動作詳細作成ルールテーブル55を参照して、入出力部番号と動作番号との組合せに対応する動作詳細ログ文字列の作成ルールつまり動作詳細のログ作成ルールを取得する。
ステップE6では、取得した動作詳細のログ作成ルールに基づき、動作詳細のログ文字列を作成する。ステップE7では、ステップE2で作成した日時ログ文字列、ステップE3で取得した入出力部ログ文字列、ステップE4で取得した動作ログ文字列、およびステップE6で作成した動作詳細ログ文字列を結合してログを生成し、終了する。
図30は、図12に示したログ再生制御部28の画面表示ログ再生処理のフローチャートである。たとえば操作部26によって、ログの再生を行う機能が選択されると、ステップF1に移る。
ステップF1では、表示部S25に、再生するログファイル名を選択させるためのログファイル名選択画面を表示する。ステップF2では、操作部26によってログファイル名が選択されるのを待つ。ステップF1に移る前に、たとえばログの再生を行う機能が選択される前に、再生するログファイルが指定されていれば、ステップF1およびステップF2をスキップしてもよい。
ステップF3では、複数のログファイルが選択されたか否かを判定する。複数のログファイルが選択されると、ステップF19に進み、1つのログファイルが選択されると、ステップF4に進む。ステップF4では、選択されたログファイルをバッファ部22に読み込む。ステップF5では、バッファ部22から、ログの記録が開始された日時と終了した日時つまり最後に記録された日時とを取得する。バッファ部22内のログは、日時順にソートされているので、それぞれ先頭行の日時と最終行の日時とを取得する。
ステップF6では、再生条件を入力させるための再生条件入力画面を表示する。再生条件は、たとえばログの開始から終了までのうちの入力された日時のログを再生するという条件、あるいは入力された文字列と一致するまたは含むログを再生するという条件である。ステップF7では、再生条件の指定があるか否かを判定する。再生条件の指定があると、ステップF8に進み、再生条件の指定がないと、ステップF20に進む。ステップF8では、バッファ部22内のログから指定された再生条件に合致するログを検索し、バッファ部22の先頭のログを第1行としたとき、検索されたログの行番号の値から「1」引いた値をカウンタ「n」に代入する。
ステップF9では、カウンタ「n」に「1」を加え、ポインタを次の行に進める。ステップF10では、バッファ部22から「n」行目のログを1行分読取る。ステップF11では、読み取ったログをログ解析部23で解析する。解析によって、ログが示す動作がどのようなものであったかを明らかにする。ステップF12では、再生に別の行のログが必要であるか否かを判定する。1つの動作が2行以上のログに分割記録されていることがあるので、別の行が必要であるか否かを判定する。ログが不足すると再生することができないケースがある。別の行のログが必要であると、ステップF9に戻り、別の行のログが必要でないと、ステップF13に進む。
ステップF13では、画面表示のログか否か、つまりログの示す動作が画面表示に関係するものである否かを判定する。画面表示のログの場合、ステップF14に進み、画面表示のログでない場合、ステップF15に進む。ステップF14では、ログに画面イメージについての情報が含まれているので、その情報が示す画面イメージを画面イメージファイルDB24から取得する。ステップF15では、取得した画面イメージとログが示す動作とから表示する再生画面イメージを生成する。ステップF16では、生成した再生画面イメージを表示部S25に表示する。
ステップF17では、バッファ部22内のログを全て読み取ったか否かを判定する。ログを全て読み取っていない場合、ステップF18に進み、ログを全て読み取った場合、終了する。終了と同時に開始に戻り、ログファイル選択画面の表示を行うこともできる。ステップF18では、ウェイトw秒待ち、ステップF9に戻る。ステップF19では、選択された全ログファイルをバッファ部22に読み込み、ログ各行の日時をキーとしてログをソートし、ステップF5に進む。ステップF20では、カウンタ「n」に「0」を代入して、ステップF9に進む。
図30に示した処理は、操作部26による操作によって任意の場面で終了することができ、さらに一時的に停止および一時停止からの再実行を行うことができる。さらに、ログファイルの選択とともに、ログファイル内のログをファイルサイズ、行数、またはログに記録された日時によって指定することができ、ログファイルからのログの読み取りを、ログファイル中の任意のログから開始することも可能である。
再生速度については、図30に示した各ステップ間、ループ中、あるいはジャンプ前後に、操作部26によって指定した任意時間または一定時間、たとえばウェイトw秒を挿入することも可能であり、これによって再生速度の調整を行うことができる。ウェイトに使用する時間wを、ログに記録された日時に基づいて設定することによって、ログの実時間再生も可能である。wの値は、フローチャートの処理を開始する時に、またはステップF9からステップF18のループ処理中に、操作部26によって任意に変更することができる。
図31は、図24に示したログ再生制御部28の外部機器ログ再生処理のフローチャートである。操作部26によって、ログの再生を行う機能が選択されると、ステップG1に移る。
ステップG1では、操作部26での操作、またはログ受信部S29でのログの受信を待つ。ステップG2では、操作部26で操作があったか否かを判定する。操作部26で操作があると、ステップG12に進み、操作部26で操作がないと、ステップG3に進む。ステップG3では、ログ受信部S29がログを受信したか否かを判定する。ログ受信部S29がログを受信すると、ステップG4に進み、ログ受信部S29がログを受信しないと、ステップG1に戻る。ステップG4では、受信したログをログ解析部23で解析する。ステップG5では、ログの解析に次の行のログが必要か否かを判定する。次の行のログが必要であると、ステップG1に戻り、次の行のログが必要でないと、ステップG6に進む。
ステップG6では、受信したログがターゲット機10の各通信部、たとえばLAN通信部114、パラレル通信部115、シリアル通信部116、無線通信部117、およびSS−LAN通信部118のいずれかの通信部の出力ログであるか否かを判定する。出力ログは、通信部が外部デバイスに送信したデータを含むログであり、図20に示した動作特定テーブル64の動作番号が「012」であるログである。受信したログが各通信部の出力ログであると、ステップG14に進み、各通信部の出力ログでないと、ステップG7に進む。
ステップG7では、受信したログがターゲット機10の各通信部の入力ログか否かを判定する。入力ログは、各通信部が外部デバイスから受信したデータを含むログであり、図20に示した動作特定テーブル64の動作番号が「011」であるログである。各通信部の入力ログであると、ステップG8に進み、各通信部の入力ログでないと、ステップG1に戻る。ステップG8では、対応する再現用通信部、すなわちターゲット機10の通信部つまりLAN通信部114、パラレル通信部115、シリアル通信部116、無線通信部117、およびSS−LAN通信部118のうち、受信した入力ログの入出力部番号によって特定される通信部に対応するサポート機20の再現用通信部によって、再現用外部デバイスからのデータの受信を待つ。ステップG9では、データを受信したか否かを判定する。データを受信すると、ステップG10に進み、データを受信しないと、ステップG8に戻る。
ステップG10では、受信したデータは入力ログのデータと一致するか否かを判定する。再現用外部デバイスから受信したデータが入力ログに含まれるログの元データと一致すると、受信したデータと入力ログのデータとが一致すると判定し、ステップG1に戻り、再現用外部デバイスから受信したデータが入力ログに含まれるログの元データと一致しないと、受信したデータと入力ログのデータとが一致しないと判定し、ステップG11に進む。ステップG11では、受信したデータと入力ログのデータとが一致しないことを、再生画面つまり表示部S25の画面に警告表示して、ステップG1に戻る。ユーザは、受信したデータと入力ログのデータとが一致しないことから、ターゲット機10の外部デバイスでの動作の結果と、サポート機20の再現用外部デバイスでの動作の結果とが一致しないことを知ることができる。
ステップG12では、操作部26で行われた操作が、ログ再生終了の操作か否かを判定する。ログ再生終了の操作であると、外部機器ログ再生処理を終了し、ログ再生終了の操作でないと、ステップG13に進む。ステップG13では、操作部26で行われた操作に対する処理を行った後、ステップG1に戻る。ステップG14では、対応する再現用通信部、すなわちターゲット機10の通信部つまりLAN通信部114、パラレル通信部115、シリアル通信部116、無線通信部117、およびSS−LAN通信部118のうち、受信した出力ログの入出力部番号によって特定される通信部に対応するサポート機20の再現用通信部によって、再現用外部デバイスにデータ、すなわち出力ログに含まれる外部デバイスに動作を行わせるためのデータを送信して、ステップG1に戻る。
図31に示した外部機器ログ再生処理では、出力ログに含まれる外部デバイスに動作を行わせるためのデータを送信して、外部デバイスに動作を行わせ、その動作の結果を表すデータを受信して、動作が正常か否かを判定したが、ユーザが外部デバイスに対して行った操作による動作の場合、たとえばユーザがスキャナ32に対して行った原稿の読み取り操作よる動作の場合、操作が行われたことを示す入力ログに基づいて、その操作を行うことをユーザに要求する情報を表示し、ユーザに操作を行わせることによって、再現用外部デバイスに動作を行わせる。具体的には、入力ログが人手操作による動作の結果を表すログであると、図31に示したフローチャートのステップG7とステップG8との間で、その操作を行うようにユーザに要求する情報を、表示部S25に表示して、ユーザに再現用外部デバイスに対する操作を行わせる。ステップG8では、その操作による動作の結果を表すデータの受信を待つ。
さらに、図31に示した外部機器ログ再生処理は、図24に示したサポート機20aでの処理、つまりリアルタイムでの処理を示したが、リアルタイムが要求されない場合は、図3に示したサポート機20に処理させてもよい。
このように、送信手段である再現用入出力部80によって、外部機器である外部デバイスを動作させるための動作情報が外部機器に対して送信され、受信手段である再現用入出力部80によって、前記送信手段によって送信した動作情報に対する外部機器の動作を表す履歴情報であるログが受信される。
そして、制御手段であるログ再生制御部28によって、前記受信手段によって受信した履歴情報が示す動作の動作情報が、前記外部機器に対応した動作を行う対応外部機器に送信されるので、履歴情報に基づいて外部機器での動作を対応する対応外部機器でリアルタイムで再現することができる。したがって、遠隔地での外部機器での動作に伴う障害をリアルタイムで解析して対応することができる。
さらに、前記履歴情報は、前記外部機器での動作の結果を表す結果情報を含み、第2の受信手段である再現用入出力部80によって、前記対応外部機器での動作の結果を表す第2の結果情報が受信され、表示手段である表示部S25によって、情報が表示される。そして、前記制御手段によって、前記受信手段によって受信した履歴情報に含まれる結果情報と、第2の受信手段によって受信した第2の結果情報とが一致するか否かが判定される。
前記結果情報と前記第2の結果情報とが一致しない場合、一致しないことを表す情報が表示手段に表示されるので、外部機器での動作が正常であるか否かをリアルタイムで監視することができる。したがって、異常がある場合の対応を迅速に行うことができる。
さらに、第2の表示手段である表示部S25によって、情報が表示され、前記履歴情報は、前記外部機器で行われた操作を表す操作情報を含み、制御手段であるログ再生制御部28によって、前記受信手段によって受信した履歴情報から操作情報を抽出し、抽出した操作情報が示す操作を、前記対応外部機器に対して操作するように要求する情報を前記第2の表示手段に表示させるので、遠隔地での外部機器での操作による動作に伴う障害をリアルタイムで解析して対応することができる。
さらに、受信工程である外部機器ログ再生処理のステップG1〜ステップG5では、外部機器である外部デバイスを動作させるための動作情報を外部機器に送信して外部機器を動作させ、かつ送信した動作情報を表す送信履歴情報である出力ログを含む履歴情報であるログを生成する対象装置であるターゲット機10から、生成された履歴情報を受信し、制御工程である外部機器ログ再生処理のステップG6およびステップG14では、受信工程で対象装置から受信した履歴情報が示す動作情報を、前記外部機器に対応した動作を行う対応外部機器である再現用外部デバイスに送信するので、履歴情報に基づいて外部機器での動作を対応する対応外部機器でリアルタイムで再現することができる。したがって、本発明に係る履歴情報の動作制御方法を用いれば、遠隔地での外部機器での動作に7伴う障害をリアルタイムで解析して対応することができる。