次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では機器の一例として複合機等の画像形成装置を表しているが、外部装置にログ情報を転送する如何なる機器であってもよい。また、本実施例では外部装置の一例としてログサーバを表しているが、機器からログ情報を転送される如何なる外部装置であってもよい。
図1は本実施形態でのログ転送システムの一実施例の構成図である。図1のログ転送システムは、機器1〜3と、クライアントPC201,211と、ログサーバ209とが、所定のネットワークの一例としてのLAN4を介して接続されている。
機器1は、CPU11,スキャナプロッタエンジン12,ネットワークI/F13,リアルタイムクロック14,ログ用不揮発記憶媒体(HDD)15,RAM16,NVRAM17,ROM18を含む構成である。
HDD15は、ログ情報の属性を記憶する。RAM16は、処理に必要なワーク用メモリであって、変数などを記憶する。なお、RAM16はHDD15が無い構成のとき、ログ情報の属性を記憶する。NVRAM17は、後述するログコントロールサービス,ログ転送モジュールの設定値、新規採番用の次のログID、その他の設定値を記憶する。ログコントロールサービスの設定値は、ログタイプ別に例えばログ情報のロギングのON/OFFを記憶する。ログ転送モジュールの設定値は定期転送又は随時転送を表す転送モードを記憶する。
ログコントロールサービス,ログ転送モジュールの設定値は、例えばWeb画面から変更が可能である。クライアントPC211は、例えばWeb画面からユーザにログコントロールサービス,ログ転送モジュールの設定値を変更させることができる。
ログサーバ209は機器1からログ情報を転送される。クライアントPC201はプリンタドライバで生成したPDL(ページ記述言語)ファイルを機器1にSFTP(セキュアFTP)で転送する。なお、機器2及び3は機器1と同様な構成であるとする。
図2はログ転送システムを構成する一例の処理ブロック図である。図2の処理ブロック図は、機器1,クライアントPC201,ログサーバ209及びクライアントPC211を有する構成である。
機器1は、SFTPサーバ202,プリンタ画像描画モジュール203,プロッタ204,ログコントロールサービス(以下、単にLCSという)205,タイマ206,ログ転送モジュール207,httpsクライアント208,httpsサーバ210,公開鍵−秘密鍵212,ログ情報213及びLCSの設定値(LCS設定値)214を含む構成である。
SFTPサーバ202は、クライアントPC201のSFTPクライアントとの間で通信を行う。httpsサーバ210はクライアントPC211のhttpsクライアントとの間で通信を行う。また、httpsクライアント208はログサーバ209のhttpsサーバとの間で通信を行う。
公開鍵−秘密鍵212は例えばNVRAM17に記憶されており、NVRAM17から暗号通信を行うSFTPサーバ202及びhttpsサーバ210に転送される。ログ情報213はHDD15に記憶されている。LCS設定値は例えばNVRAM17に記憶されている。また、ログ転送モジュールの設定値215は例えばNVRAM17に記憶されている。
LCS205はSFTPサーバ202,httpsサーバ210及びhttpsクライアント208から通信を行ったことにより発生したログ情報を受信し、HDD15等に記憶する。また、LCS205は、例えば印刷プロセスの実行により発生したログ情報を受信する。
タイマ206は転送モードが定期転送であるとき、定期転送を行うタイミングをログ転送モジュール207に通知する。ログ転送モジュール207は、LCS205からログ変化通知を受信すると、httpsクライアント208からログサーバ209のhttpsサーバにログ情報を転送する。ログ転送モジュール207はログ情報の転送結果をログ情報としてLCS205に送信する。なお、ログ変化通知は、LCS205にログ情報が新たに記憶された場合に、LCS205がログ転送モジュール207に対して、記憶されているログ情報の内容に変化があった(新しいログ情報が記憶された)ことを通知するものである。
図3はログ転送システムを構成する処理ブロックの一連の関連図である。図3の関連図では、図2に示した処理ブロック間で送受信する各種要求,応答,通知,データ,ファイル又は情報などを表すことで、処理ブロックの関連を示している。なお、処理ブロック間で送受信する各種要求,応答,通知,データ,ファイル又は情報等の詳細は後述する。
ここで、本実施形態の概要について説明する。図4は本実施形態のログ転送システムにおける効果を表す一例の概要図である。図4(a)は従来のログ転送システムの問題点を表した図である。図4(a)において、ステップS301では、ログ転送時の通信にて発生する通信開始又は通信終了などの通信に関するログ情報(通信ログ)、ログ転送にて発生する転送結果ログ情報(ログ転送結果ログ)がLCS205に書き込まれる。
ステップS302に進み、LCS205は通信ログ又はログ転送結果ログが書き込まれると、ログ変化通知をログ転送モジュール207に送信する。LCS205からログ変化通知を受信すると、ログ転送モジュール207はログ転送処理を開始する。ステップS303に進み、ログ転送モジュール207はhttpsクライアント208を使って、ログサーバ209のhttpsサーバにログ情報を転送する。なお、ステップS303のログ転送では、再度、通信ログ及びログ転送結果ログが発生する。このため、ステップS303の処理の後、ステップS301の処理が行われる。図4(a)では、無限ループに陥ったため、機器1内に通信ログ及びログ転送結果ログが生成され続けてしまう。
図4(b)は、本実施形態のログ転送システムの効果を表した図である。図4(b)において、ステップS304では、ステップS301と同様、通信ログ又はログ転送結果ログがLCS205に書き込まれる。
ステップS305に進み、LCS205は書き込まれたログタイプが通信ログ又はログ転送結果ログであるため、ログ変化通知をログ転送モジュール207に送信しない。したがって、図4(b)ではステップS306に進まず、ログ転送モジュール207によるログ転送処理が行われない。
このように、本実施形態のログ転送システムでは、ログ情報の種類(ログタイプ)を判断して、ログタイプが通信ログ又はログ転送結果ログであるときにログ変化通知をログ転送モジュール207に送信しないことで、ステップS305からステップS306への遷移を無くし、永久ループに陥ることを防いでいる。
図5は、クライアントPCから転送されたPDLファイルを機器で印刷するまでの処理を表したシーケンス図である。ステップS501では、クライアントPC201のSFTPクライアントがPDLファイル転送開始指示を受ける。ステップS502に進み、クライアントPC201のSFTPクライアントは機器1のSFTPサーバ202にサーバ証明書を要求する。ステップS503に進み、クライアントPC201のSFTPクライアントは機器1のSFTPサーバ202からサーバ証明書を受信する。サーバ証明書は共通鍵を秘密鍵で暗号化したものと、公開鍵とを含む。
ステップS504に進み、機器1のSFTPサーバ202はLCS205に通信開始を表す通信ログを登録する。ステップS505に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログタイプが通信ログであるため、ログ変化通知を出さないと判定される。
ステップS506〜S509において、クライアントPC201のSFTPクライアントは、機器1のSFTPサーバ202にPDLファイルを転送する。ステップS510に進み、機器1のSFTPサーバ202はLCS205に通信終了を表す通信ログを登録する。ステップS511に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログタイプが通信ログであるため、ログ変化通知を出さないと判定される。
ステップS512に進み、SFTPサーバ202はPDLファイルをプリンタ画像描画モジュール203に送信する。ステップS513に進み、プリンタ画像描画モジュール203はPDLファイルを解釈し、描画処理を行う。
ステップS514に進み、機器1のSFTPサーバ202はLCS205にプリンタジョブ開始を表すプリンタジョブログを登録する。ステップS515に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログタイプがプリンタジョブログであるため、ログ変化通知を出すと判定される。ステップS516では、LCS207がログ変化通知をログ転送モジュール207に送信する。
ステップS517に進み、プリンタ画像描画モジュール203は印刷プロセス開始をプロッタ204に要求する。ステップS518に進み、プリンタ画像描画モジュール203は印刷プロセス終了をプロッタ204から応答される。
ステップS519に進み、機器1のSFTPサーバ202はLCS205にプリンタジョブ終了を表すプリンタジョブログを登録する。ステップS520に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログタイプがプリンタジョブログであるため、ログ変化通知を出すと判定される。ステップS521では、LCS207がログ変化通知をログ転送モジュール207に送信する。
図5のシーケンス図で表す処理によれば、LCS205が、ログ変化通知を無限発生させるログタイプであるときに、ログ変化通知を出さないと判定するため、永久ループに陥ることを防ぐことができる。
次に、図5におけるクライアントPC201のSFTPクライアントの処理について説明する。図6はSFTPクライアントの処理を表した一例のフローチャートである。ステップS601に進み、SFTPクライアントは、PDLファイル転送開始指示があるまでステップS601に処理を繰り返す。
PDLファイル転送開始指示があると、SFTPクライアントはステップS602に進み、機器1のSFTPサーバ202にサーバ証明書を要求する。サーバ証明書を要求したあと、SFTPクライアントはステップS603に進み、サーバ証明書を受信するまでステップS603の処理を繰り返す。
サーバ証明書を受信すると、SFTPクライアントはステップS604に進み、機器1のSFTPサーバ202にファイル転送開始を通知する。ステップS605に進み、SFTPクライアントはファイル転送開始OKを機器1のSFTPサーバ202から受信するまでステップS605の処理を繰り返す。ファイル転送開始OKを受信すると、SFTPクライアントはステップS606に進み、機器1のSFTPサーバ202にPDLファイルを転送するPDLファイル転送処理を行う。
ステップS607に進み、SFTPクライアントは機器1のSFTPサーバ202からファイル転送終了が通知されるまでステップS607の処理を繰り返す。ファイル転送終了が通知されると、SFTPクライアントはステップS601の処理に戻る。
次に、図5における機器1のSFTPサーバ202の処理について説明する。図7はSFTPサーバの処理を表した一例のフローチャートである。ステップS701に進み、SFTPサーバ202はクライアントPC201のSFTPクライアントからの要求受信待ちとなる。クライアントPC201のSFTPクライアントから要求を受信すると、SFTPサーバ202はステップS702に進み、SFTPクライアントから受信した要求がサーバ証明書要求メッセージであるかを判定する。
サーバ証明書要求メッセージを受信すると、SFTPサーバ202はステップS703に進み、サーバ証明書メッセージをSFTPクライアントに送信する。ステップS704に進み、SFTPサーバ202はLCS205に通信開始を表す通信ログを登録する為のログ登録メッセージを送信したあと、ステップS701に戻る。
サーバ証明書要求メッセージ以外を受信すると、SFTPサーバ202はステップS705に進み、SFTPクライアントから受信した要求がファイル転送開始メッセージであるかを判定する。
ファイル転送開始メッセージを受信すると、SFTPサーバ202はステップS706に進み、ファイル転送開始OKをSFTPクライアントに通知する。ステップS707に進み、SFTPサーバ202はSFTPクライアントからPDLファイルを転送されるPDLファイル転送処理を行う。
ステップS708に進み、SFTPサーバ202はファイル転送終了をSFTPクライアントに通知する。ステップS709に進み、SFTPサーバ202はLCS205に通信終了を表す通信ログを登録する為のログ登録メッセージを送信する。ステップS710に進み、SFTPサーバ202はPDLファイルをプリンタ画像描画モジュール203に送信したあと、ステップS701に戻る。また、ファイル転送開始メッセージ以外を受信した場合も、SFTPサーバ202はステップS701に戻る。
次に、図5における機器1のプリンタ画像描画モジュール203の処理について説明する。図8はプリンタ画像描画モジュールの処理を表した一例のフローチャートである。ステップS801に進み、プリンタ画像描画モジュール203はSFTPサーバ202からPDLファイルを受信するまでステップS801の処理を繰り返す。
PDLファイルを受信すると、プリンタ画像描画モジュール203はステップS802に進み、PDLファイルを解釈し、描画処理を行う。ステップS803に進み、プリンタ画像描画モジュール203はLCS205にプリンタジョブ開始を表すプリンタジョブログを登録する為のログ登録メッセージを送信する。
ステップS804に進み、プリンタ画像描画モジュール203は印刷プロセス開始メッセージをプロッタ204に送信する。また、ステップS805に進み、プリンタ画像描画モジュール203は印刷プロセス終了メッセージをプロッタ204から受信するまでステップS805の処理を繰り返す。
印刷プロセス終了メッセージを受信すると、プリンタ画像描画モジュール203はステップS806に進み、LCS205にプリンタジョブ終了を表すプリンタジョブログを登録する為のログ登録メッセージを送信したあと、ステップS801に戻る。
次に、図5における機器1のプロッタ204の処理について説明する。図9はプロッタの処理を表した一例のフローチャートである。ステップS901に進み、プロッタ204はプリンタ画像描画モジュール203から印刷プロセス開始メッセージを受信するまでステップS901の処理を繰り返す。印刷プロセス開始メッセージを受信すると、プロッタ204はステップS902に進み、画像メモリにある画像を紙に印刷する。そして、ステップS903に進み、プロッタ204は印刷プロセス終了メッセージをプリンタ画像描画モジュール203に送信したあと、ステップS901に戻る。
次に、図5における機器1のLCS205の処理について説明する。図10はLCSの処理を表した一例のフローチャートである。ステップS1001に進み、LCS205は要求受信待ちとなる。
要求を受信すると、LCS205はステップS1002に進み、受信した要求がログ登録であるかを判定する。受信した要求がログ登録であれば、LCS205はステップS1003に進み、後述するログ登録処理を行う。
受信した要求がログ登録でなければ、LCS205はステップS1004に進み、受信した要求がLCS設定値変更であるかを判定する。受信した要求がLCS設定値変更であれば、LCS205はステップS1005に進み、後述するようなLCS設定値変更処理を行う。
受信した要求がLCS設定値変更でなければ、LCS205はステップS1006に進み、受信した要求がログ取得であるかを判定する。受信した要求がログ取得であれば、LCS205はステップS1007に進み、後述するようなログ取得要求処理を行う。
受信した要求がログ取得でなければ、LCS205はステップS1008に進み、受信した要求がログ検索であるかを判定する。受信した要求がログ検索であれば、LCS205はステップS1009に進み、後述するようなログ検索要求処理を行う。
受信した要求がログ検索でなければ、LCS205はステップS1010に進み、受信した要求がログ転送済み通知であるかを判定する。受信した要求がログ転送済み通知であれば、LCS205はステップS1011に進み、後述するようなログ転送済み通知受信処理を行う。なお、受信した要求がログ転送済み通知でなければ、LCS205はステップS1001に戻る。
図11はログ登録処理を表した一例のフローチャートである。ステップS1101に進み、LCS205はLCS設定値によりログ登録の対象であるログ情報のログタイプが登録対象であるかを判定する。ログタイプが登録対象でなければLCS205はログ登録処理を終了する。
ログタイプが登録対象であれば、LCS205はステップS1102に進み、蓄積可能ログ件数をオーバーしているかを判定する。蓄積可能ログ件数をオーバーしていれば、LCS205はステップS1107に進み、一番古い時刻のログ情報をHDD15から1件消去してステップS1103に進む。蓄積可能ログ件数をオーバーしていなければ、LCS205はステップS1102からステップS1103に進む。
ステップS1103では、LCS205が、LCS設定値のログID採番用の値を読み込んでログIDを設定する。また、LCS205は、ログID採番用の値に「1」を加算する。ステップS1104に進み、LCS205はHDD15にログ情報を書き込む。
ステップS1105に進み、LCS205はログ登録の対象であるログ情報のログタイプが通信ログ又はログ転送結果ログであるかを判定する。ログ情報のログタイプが通信ログ又はログ転送結果ログでなければ、LCS205はステップS1106に進み、ログ変化通知をログ転送モジュール207に送信したあと、ログ登録処理を終了する。また、ログ情報のログタイプが通信ログ又はログ転送結果ログであれば、LCS205はログ変化通知をログ転送モジュール207に送信することなく、ログ登録処理を終了する。
図12はLCS設定値変更処理を表した一例のフローチャートである。ステップS1201に進み、LCS205はLCS設定値変更要求に応じてLCS設定値を変更する。ステップS1202に進み、LCS205はLCS設定値変更応答のメッセージをhttpsサーバ210に送信する。そして、LCS205は、図11に示したログ登録処理に進んでLCS設定値変更ログをログ情報として記録したあと、LCS設定値変更処理を終了する。
図13はログ取得要求処理を表した一例のフローチャートである。ステップS1301に進み、LCS205はログ取得要求により指定されたログIDのログ情報をHDD15から抽出する。ステップS1302に進み、LCS205は抽出したログ情報をログ転送モジュール207にメッセージ送信したあと、ログ取得要求処理を終了する。
図14はログ検索要求処理を表した一例のフローチャートである。ステップS1401に進み、LCS205は、HDD15またはRAM16に記憶されているログ情報の属性が「転送済みのログかどうか」を参照して、未転送ログを抽出する。ステップS1402に進み、LCS205はログ検索結果(未転送ログのログID)をログ転送モジュール207にメッセージ送信したあと、ログ検索要求処理を終了する。
図15はログ転送済み通知受信処理を表した一例のフローチャートである。ステップS1501に進み、LCS205はログ転送済み通知により指定されたログIDに対応するログ情報の属性「転送済みのログかどうか」の値を「転送済み」に書き換えたあと、ログ転送済み通知受信処理を終了する。
次に、図5における機器1のログ転送モジュール207の処理について説明する。図16はログ転送モジュールの処理を表した一例のフローチャートである。ステップS1601に進み、ログ転送モジュール207は要求受信待ちとなる。
要求を受信すると、ログ転送モジュール207はステップS1602に進み、受信した要求がログ変化通知であるかを判定する。受信した要求がログ変化通知であれば、ログ転送モジュール207は、ステップS1603に進み、後述するログ変化通知受信処理を行う。
受信した要求がログ変化通知でなければ、ログ転送モジュール207はステップS1604に進み、受信した要求が定期転送指示であるかを判定する。受信した要求が定期転送指示であれば、ログ転送モジュール207はステップS1605に進み、後述するような定期転送指示受信処理を行う。
受信した要求が定期転送指示でなければ、ログ転送モジュール207はステップS1606に進み、受信した要求がログ検索結果であるかを判定する。受信した要求がログ検索結果であれば、ログ転送モジュール207はステップS1607に進み、後述するようなログ検索結果受信処理を行う。
受信した要求がログ検索結果でなければ、ログ転送モジュール207はステップS1608に進み、受信した要求がログ受信であるかを判定する。受信した要求がログ受信であれば、ログ転送モジュール207はステップS1609に進み、後述するようなログ受信処理を行う。
受信した要求がログ受信でなければ、ログ転送モジュール207はステップS1610に進み、受信した要求がログ転送結果であるかを判定する。受信した要求がログ転送結果であれば、ログ転送モジュール207はステップS1611に進み、後述するようなログ転送結果受信処理を行う。なお、受信した要求がログ転送結果でなければ、ログ転送モジュール207はステップS1601に戻る。
図17はログ変化通知受信処理を表した一例のフローチャートである。ステップS1701に進み、ログ転送モジュール207はログ転送モジュール207の設定値により転送モードが「定期転送」であるかを判定する。転送モードが「定期転送」であれば、ログ転送モジュール207はログ変化通知受信処理を終了する。
転送モードが「定期転送」でなければ、転送モードが「逐次転送」であるので、ログ転送モジュール207はステップS1702に進み、転送状態が「検索中」1802もしくは「転送中」1803であるかを判定する。図18はログ転送モジュールの持つ転送状態の状態遷移図である。転送状態が「検索中」1802もしくは「転送中」1803であれば、ログ転送モジュール207はログ変化通知受信処理を終了する。また、転送状態が「検索中」1802もしくは「転送中」1803でなければ、ログ転送モジュール207はステップS1703に進む。
ステップS1703では、ログ転送モジュール207が、転送状態を「検索中」1802に状態遷移する。ステップS1704に進み、ログ転送モジュール207はログ検索要求のメッセージをLCS205に送信したあと、ログ変化通知受信処理を終了する。
図19は定期転送指示受信処理を表した一例のフローチャートである。ステップS1901に進み、ログ転送モジュール207は転送状態が「検索中」1802もしくは「転送中」1803であるかを判定する。転送状態が「検索中」1802もしくは「転送中」1803であれば、ログ転送モジュール207はログ変化通知受信処理を終了する。転送状態が「検索中」1802もしくは「転送中」1803でなければ、ログ転送モジュール207はステップS1902に進む。
ステップS1902では、ログ転送モジュール207が、転送状態を「検索中」1802に状態遷移する。ステップS1903に進み、ログ転送モジュール207はログ検索要求のメッセージをLCS205に送信したあと、定期転送指示受信処理を終了する。
図20はログ検索結果受信処理を表した一例のフローチャートである。ステップS2001に進み、ログ転送モジュール207は転送状態が「検索中」1802でないかを判定する。転送状態が「検索中」1802でなければ、ログ転送モジュール207はログ検索結果受信処理を終了する。
転送状態が「検索中」1802であれば、ログ転送モジュール207はステップS2002に進み、検索の結果、未転送ログが見つかったかを判定する。もし、未転送ログが見つからなければ、ログ転送モジュール207はステップS2003に進み、転送状態を「通常状態」1801に状態遷移したあと、ログ検索結果受信処理を終了する。もし、未転送ログが見つかれば、ログ転送モジュール207は、ステップS2004に進み、転送状態を「転送中」1802に状態遷移する。
ステップS2005に進み、ログ転送モジュール207はhttpsクライアント208に対し、未転送ログ数を追加したログ転送開始メッセージを送信する。ステップS2006に進み、ログ転送モジュール207は検索結果である未転送ログのログIDを未転送ログID群としてRAM16に記録する。
さらに、ステップS2007に進み、ログ転送モジュール207は未転送ログの中の任意の一つについて、LCS205にログ取得要求を行ったあと、ログ検索結果受信処理を終了する。
図21はログ受信処理を表した一例のフローチャートである。ステップS2101に進み、ログ転送モジュール207は、転送状態が「転送中」1803でないかを判定する。転送状態が「転送中」1803でなければ、ログ転送モジュール207はログ受信処理を終了する。転送状態が「転送中」1803であれば、ログ転送モジュール207はステップS2102に進み、RAM16に記録しておいた未転送ログID群から、今回受信分のログIDを消去する。ステップS2103に進み、ログ転送モジュール207は受信したログ情報をhttpsクライアント208に転送したあと、ログ受信処理を終了する。
図22はログ転送結果受信処理を表した一例のフローチャートである。ステップS2201に進み、転送状態が「転送中」1803でないかを判定する。転送状態が「転送中」1803でなければ、ログ転送モジュール207はログ転送結果受信処理を終了する。
また、転送状態が「転送中」1803であれば、ログ転送モジュール207はステップS2202に進み、転送結果が「転送失敗」であるかを判定する。
転送結果が「転送失敗」でなければ、ログ転送モジュール207はステップS2203に進み、ログIDを指定してログ転送済み通知のメッセージをLCS205に送信したあとでステップS2204に進む。転送結果が「転送失敗」であれば、ログ転送モジュール207はステップS2202からステップS2204に進む。
ステップS2204では、ログ転送モジュール207が、RAM16に記録しておいた未転送ログID群にログIDが無くなったかを判定する。未転送ログID群にログIDが無くなれば、ログ転送モジュール207はステップS2206に進み、転送状態を「通常状態」1801に状態遷移したあと、ログ転送結果受信処理を終了する。未転送ログID群にログIDが有れば、ログ転送モジュール207はステップS2205に進み、未転送ログID群から任意の一つのログIDを読み出して、そのログIDに対応するログ取得要求のメッセージをLCS205に送信したあと、ログ転送結果受信処理を終了する。
図23は、クライアントPCからLCS設定値を変更する処理を表したシーケンス図である。ステップS2301では、ユーザが例えばWeb画面上にLCS設定値を入力してOKボタン等を押下することにより、LCS設定値の変更要求を行う。
LCS設定値の変更要求があると、クライアントPC211のhttpsクライアントはステップS2302に進み、機器1のhttpsサーバ210にサーバ証明書を要求する。ステップS2303に進み、クライアントPC211のhttpsクライアントは機器1のhttpsサーバ212からサーバ証明書を受信する。
ステップS2304に進み、機器1のhttpsサーバ210はLCS205に通信開始を表す通信ログを登録する。ステップS2305に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここではログタイプが通信ログである為、ログ変化通知を出さないと判定される。また、LCS205はLCS設定値として「通信ログを記録する」が設定されているため、通信ログをHDD15に記録する。
ステップS2306に進み、クライアントPC211のhttpsクライアントと機器1のhttpsサーバ210とは、データ転送可能に接続される。ステップS2307に進み、クライアントPC211のhttpsクライアントはLCS設定値を変更する為のデータを機器1のhttpsサーバ210に送信する。
ステップS2308に進み、httpsサーバ210はクライアントPC111のhttpsクライアントから受信したデータを利用して、LCS205にLCS設定値変更要求を行う。
ステップS2309に進み、LCS205はLCS設定値変更要求に基づき、LCS設定値を「通信ログを記録しない」に変更し、設定変更ログをHDD15に記録する。ステップS2310に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。
ここではログタイプが設定変更ログである為、ログ変化通知を出すと判定される。ステップS2311に進み、LCS207がログ変化通知をログ転送モジュール207に送信する。
ステップS2312に進み、LCS205はhttpsサーバ210にLCS設定値変更応答を行う。ステップS2313に進み、httpsサーバ210はクライアントPC211のhttpsクライアントにデータ転送応答を行う。そして、ステップS2314に進み、クライアントPC211のhttpsクライアントは機器1のhttpsサーバ210に通信終了を通知する。ステップS2315に進み、クライアントPC211のhttpsクライアントと機器1のhttpsサーバ210とは、切断される。
ステップS2316に進み、機器1のhttpsサーバ210はLCS205に通信終了を表す通信ログを登録する。ステップS2317に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここではログタイプが通信ログである為、ログ変化通知を出さないと判定される。また、LCS205はLCS設定値として「通信ログを記録しない」が設定されているため、通信ログをHDD15に記録しない。
図23のシーケンス図で表す処理によれば、LCS205が、ログ変化通知を無限発生させるログタイプであるときに、ログ変化通知を出さないと判定するため、永久ループに陥ることを防ぐことができる。また、HDD15に記録するログ情報をクライアントPC211から設定できる。つまり、ユーザはクライアントPC211からLCS設定値を変更できる。
次に、図23におけるクライアントPC211のhttpsクライアントの処理について説明する。図24は、httpsクライアントの処理を表した一例のフローチャートである。ステップS2401に進み、クライアントPC211のhttpsクライアントは要求受信待ちとなる。
要求を受信すると、httpsクライアントはステップS2402に進み、受信した要求がLCS設定値変更要求であるかを判定する。LCS設定値変更要求を受信すると、httpsクライアントはステップS2403に進み、サーバ証明書要求を機器1のhttpsサーバ210に対して送信する。
ステップS2404に進み、httpsクライアントは通信状態を「通常状態」2501から「サーバ証明書要求中」2502に状態遷移させたあと、ステップS2401に戻る。図25はhttpsクライアントの持つ通信状態の状態遷移図である。
LCS設定値変更要求以外を受信すると、httpsクライアントは、ステップS2405に進み、受信した要求がサーバ証明書であるかを判定する。httpsクライアントはサーバ証明書を受信するとステップS2406に進み、通信状態が「サーバ証明書要求中」2502であるかを判定する。
通信状態が「サーバ証明書要求中」2502でなければ、httpsクライアントはステップS2401に戻る。通信状態が「サーバ証明書要求中」2502であれば、httpsクライアントはステップS2407に進み、通信開始を表す通信ログを登録する為のログ登録をhttpsサーバ210にメッセージ送信する。
ステップS2408に進み、httpsクライアントは通信状態を「サーバ証明書要求中」2502から「接続中」2503に状態遷移させる。ステップS2409に進み、httpsクライアントはデータ転送メッセージをhttpsサーバ210に送信し、LCS設定値変更を要求したあと、ステップS2401に戻る。
また、サーバ証明書以外を受信すると、httpsクライアントはステップS2410に進み、受信した要求がデータ転送応答であるかを判定する。httpsクライアントはデータ転送応答を受信するとステップS2411に進み、通信終了をhttpsサーバ210に送信する。
ステップS2412に進み、httpsクライアントは通信状態を「接続中」2503から「通常状態」2501に状態遷移させたあと、ステップS2401に戻る。また、httpsクライアントはデータ転送応答以外を受信すると、ステップS2410からステップS2401に戻る。
次に、図23におけるクライアントPC211のhttpsサーバ210の処理について説明する。図26は、機器のhttpsサーバの処理を表した一例のフローチャートである。ステップS2601に進み、httpsサーバ210は要求受信待ちとなる。
要求を受信すると、httpsサーバ210はステップS2602に進み、受信した要求がサーバ証明書要求であるかを判定する。受信した要求がサーバ証明書要求であれば、httpsサーバ210は、ステップS2603に進み、後述するサーバ証明書要求受信処理を行う。
受信した要求がサーバ証明書要求でなければ、httpsサーバ210はステップS2604に進み、受信した要求がデータ転送であるかを判定する。受信した要求がデータ転送であれば、httpsサーバ210はステップS2605に進み、後述するデータ転送受信処理を行う。
受信した要求がデータ転送でなければ、httpsサーバ210はステップS2606に進み、受信した要求がLCS設定値変更応答であるかを判定する。受信した要求がLCS設定値変更応答であれば、httpsサーバ210はステップS2607に進み、後述するようなLCS設定値変更応答受信処理を行う。
受信した要求がLCS設定値変更応答でなければ、httpsサーバ210はステップS2608に進み、受信した要求が通信終了であるかを判定する。受信した要求が通信終了であれば、httpsサーバ210はステップS2609に進み、後述するような通信終了受信処理を行う。なお、受信した要求が通信終了でなければ、httpsサーバ210はステップS2601に戻る。
図27はサーバ証明書要求受信処理の一例のフローチャートである。ステップS2701に進み、httpsサーバ210は通信状態が「通常状態」2801でないかを判定する。図28はhttpsサーバの持つ通信状態の状態遷移図である。
通信状態が「通常状態」2801でなければ、httpsサーバ210はサーバ証明書要求受信処理を終了する。通信状態が「通常状態」2801であれば、httpsサーバ210はステップS2702に進み、クライアントPC211のhttpsクライアントに対してサーバ証明書を送信する。
ステップS2703に進み、httpsサーバ210は通信状態を「接続中」2802に状態遷移させる。ステップS2704に進み、httpsサーバ210はLCS205に通信開始を表す通信ログを登録する為のログ登録メッセージを送信したあと、サーバ証明書要求受信処理を終了する。
図29はデータ転送受信処理の一例のフローチャートである。ステップS2901に進み、httpsサーバ210は通信状態が「接続中」2802でないかを判定する。通信状態が「接続中」2802でなければ、httpsサーバ210は、データ転送受信処理を終了する。通信状態が「接続中」2802であれば、httpsサーバ210はステップS2902に進み、LCS205にLCS設定値変更要求を送信したあと、データ転送受信処理を終了する。
図30はLCS設定値変更応答受信処理の一例のフローチャートである。ステップS3001に進み、httpsサーバ210はLCS205からLCS設定値変更応答を受信すると、LCS設定値の変更の結果をデータ転送応答としてクライアントPC211のhttpsクライアントに送信したあと、LCS設定値変更応答受信処理を終了する。
図31は通信終了受信処理の一例のフローチャートである。httpsサーバ210はステップS3101に進み、通信状態を「通常状態」2801に状態遷移させる。ステップS3102に進み、httpsサーバ210はLCS205に通信終了を表す通信ログを登録する為のログ登録メッセージを送信したあと、通信終了受信処理を終了する。
なお、図23におけるLCS205及びログ転送モジュール207の処理は、図10及び図16を利用して前述したため、説明を省略する。
図32は、機器からログサーバにログ情報を定期転送する処理を表したシーケンス図である。まず、ステップS3201に進み、LCS205はログ登録メッセージを受信してログ情報をHDD15に記録する。ステップS3202に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログ変化通知を出すと判定されたものとする。ステップS3203に進み、LCS205はログ変化通知をログ転送モジュール207に送信する。
ステップS3204に進み、ログ転送モジュール207はログ転送モジュールの設定値215において定期転送が設定されているため、受信したログ変化通知を無視する。設定時刻になると、タイマ206はステップS3205に進み、ログ転送モジュール207に定期転送の指示を行う。
ステップS3206に進み、ログ転送モジュール207はLCS205に対してログ検索要求を行う。ステップS3207に進み、LCS205はHDD15またはRAM16に記憶されている未転送ログを抽出し、未転送ログのログIDをログ検索結果としてログ転送モジュール207に送信する。
ステップS3208に進み、ログ転送モジュール207はhttpsクライアント208にログ転送開始を指示する。ステップS3209に進み、httpsクライアント208はログサーバ209のhttpsサーバにサーバ証明書を要求する。ステップS3210に進み、httpsクライアント208は、ログサーバ209のhttpsサーバからサーバ証明書を受信する。
ステップS3211に進み、httpsクライアント208は通信開始を表す通信ログを登録する為のログ登録メッセージをLCS205に送信する。LCS205はログ登録メッセージを受信してログ情報をHDD15に記録する。そして、ステップS3212に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここではログ変化通知を出さないと判定されたものとする。ステップS3213に進み、機器1のhttpsクライアント208とログサーバ209のhttpsサーバとは、データ転送可能に接続される。
ステップS3214に進み、ログ転送モジュール207はLCS205に対してログ取得要求を行う。ステップS3215に進み、LCS205はログ取得要求に応じたログ情報をHDD15から抽出し、そのログ情報をログ転送モジュール207に送信する。
ステップS3216に進み、ログ転送モジュール207はLCS205から受信したログ情報をhttpsクライアント208に送信する。ステップS3217に進み、httpsクライアント208はログサーバ209のhttpsサーバにログ転送モジュール207から受信したログデータ(ログ情報)を転送する。
ステップS3218に進み、ログサーバ209のhttpsサーバはデータ転送応答を機器1のhttpsクライアント208に送信する。ステップS3219に進み、httpsクライアント208はログ転送モジュール207にデータ転送結果を送信する。ステップS3220に進み、ログ転送モジュール207はLCS205にログ転送済み通知を行う。
なお、ステップS3214〜S3220の処理は1個目の未転送ログの転送操作を表している。2個目以降の未転送ログはステップS3214〜S3220の処理と同様なステップS3221〜S3227の転送操作により転送される。
未転送ログの転送操作が終了すると、httpsクライアント208はステップS3228に進み、ログサーバ209のhttpsサーバに通信終了を通知する。ステップS3229に進み、機器1のhttpsクライアント208とログサーバ209のhttpsサーバとは、切断される。
ステップS3230に進み、ログ転送モジュール207はログ転送結果ログを登録する為のログ登録メッセージをLCS205に送信する。LCS205はログ登録メッセージを受信してログ転送結果ログをHDD15に記録する。ステップS3231に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログ変化通知を出さないと判定されたものとする。
ステップS3232に進み、httpsクライアント208は通信終了を表す通信ログを登録する為のログ登録メッセージをLCS205に送信する。LCS205はログ登録メッセージを受信してログ情報をHDD15に記録する。そして、ステップS3233に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここではログ変化通知を出さないと判定されたものとする。
所定時刻になると、タイマ206はステップS3234に進み、ログ転送モジュール207に定期転送の指示を行うことにより、再びステップS3206〜S3233の処理が繰り返される。
図32のシーケンス図で表す処理によれば、ログ転送モジュール207が定期転送の場合にログ変化通知を無視することで、ログ変化通知を無限発生させるログタイプであっても定期的にログ情報をログサーバ209に転送できる。
次に、図32におけるタイマ206の処理について説明する。図33はタイマの処理を表した一例のフローチャートである。ステップS3301に進み、タイマ206は一定時間間隔待つ。ここでは、一定時間間隔としているが、ネットワークの負荷が少ない夜間を狙って定期転送を開始してもよい。
ステップS3302に進み、タイマ206はログ転送モジュール207に対して定期転送の指示を行ったあと、ステップS3301に戻る。つまり、タイマ206は一定時間間隔で定期転送の指示をログ転送モジュール207に行うことができる。なお、図32におけるLCS205及びログ転送モジュール207の処理は、図10及び図16を利用して前述したため、説明を省略する。
次に、図32におけるhttpsクライアント208の処理について説明する。図34は機器のhttpsクライアントの処理を表した一例のフローチャートである。ステップS3401に進み、httpsクライアント208は要求受信待ちとなる。
要求を受信すると、httpsクライアント208はステップS3402に進み、受信した要求がログ転送開始であるかを判定する。受信した要求がログ転送開始であれば、httpsクライアント208は、ステップS3403に進み、後述するログ転送開始受信処理を行う。
受信した要求がログ転送開始でなければ、httpsクライアント208はステップS3404に進み、受信した要求がログ受信であるかを判定する。受信した要求がログ受信であれば、httpsクライアント208はステップS3405に進み、後述するログ受信処理を行う。
受信した要求がログ受信でなければ、httpsクライアント208はステップS3406に進み、受信した要求がデータ転送応答であるかを判定する。受信した要求がデータ転送応答であれば、httpsクライアント208はステップS3407に進み、後述するようなデータ転送応答受信処理を行う。
受信した要求がデータ転送応答でなければ、httpsクライアント208はステップS3408に進み、受信した要求がサーバ証明書であるかを判定する。なお、受信した要求がサーバ証明書であれば、httpsクライアント208は、ステップS3409に進み、後述するようなサーバ証明書受信処理を行う。なお、受信した要求がサーバ証明書でなければ、httpsクライアント208はステップS3401に戻る。
図35はログ転送開始受信処理の一例のフローチャートである。ステップS3501に進み、httpsクライアント208は送信状態が「通常状態」3601でないかを判定する。図36はhttpsクライアントが持つ送信状態の状態遷移図である。
送信状態が「通常状態」3601でなければ、httpsクライアント208はログ転送開始受信処理を終了する。送信状態が「通常状態」3601であれば、httpsクライアント208はステップS3502に進み、ログサーバ209のhttpsサーバに対してサーバ証明書要求のメッセージを出す。ステップS3503に進み、httpsクライアント208は送信状態を「サーバ証明書要求中」3602に状態遷移させたあと、ログ転送開始受信処理を終了する。
図37はログ受信処理の一例のフローチャートである。ステップS3701に進み、httpsクライアント208は送信状態が「送信中」3603でないかを判定する。送信状態が「送信中」3603でなければ、httpsクライアント208はログ受信処理を終了する。
また、送信状態が「送信中」3603であれば、httpsクライアント208はステップS3702に進み、ログサーバ209のhttpsサーバに対してログデータ転送のメッセージを出したあと、ログ受信処理を終了する。
図38はデータ転送応答受信処理の一例のフローチャートである。ステップS3801に進み、httpsクライアント208は送信状態が「送信中」3603でないかを判定する。
送信状態が「送信中」3603でなければ、httpsクライアント208はデータ転送応答受信処理を終了する。また、送信状態が「送信中」3603であれば、httpsクライアント208はステップS3802に進み、ログ転送モジュール207に対してログ転送結果メッセージを送信する。
ステップS3803に進み、httpsクライアント208は未転送ログ数が「0」であるかを判定する。未転送ログ数が「0」であれば、httpsクライアント208はステップS3805に進み、送信状態を「通常状態」3601に状態遷移させる。
ステップS3806に進み、httpsクライアント208はLCS205に通信終了を表す通信ログを登録する為のログ登録メッセージを送信する。ステップS3807に進み、httpsクライアント208は通信終了のメッセージを送信したあと、ログ受信処理を終了する。
一方、未転送ログ数が「0」でなければ、httpsクライアント208はステップS3803からステップS3804に進み、ログ転送開始時に送られてきた未転送ログ数を1だけ減算したあと、ログ受信処理を終了する。
図39はサーバ証明書受信処理の一例のフローチャートである。ステップS3901に進み、httpsクライアント208は送信状態が「サーバ証明書要求中」3602でないかを判定する。送信状態が「サーバ証明書要求中」3602でなければ、httpsクライアント208はサーバ証明書受信処理を終了する。
送信状態が「サーバ証明書要求中」3602であれば、httpsクライアント208はステップS3902に進み、送信状態を「送信中」3603に状態遷移させる。ステップS3903に進み、httpsクライアント208はLCS205に通信開始を表す通信ログを登録する為のログ登録メッセージを送信したあと、サーバ証明書受信処理を終了する。
さらに、図32におけるログサーバ209のhttpsサーバの処理について説明していく。図40は、ログサーバのhttpsサーバの処理を表した一例のフローチャートである。ステップS4001に進み、httpsサーバは要求受信待ちとなる。要求を受信すると、httpsサーバはステップS4002に進み、受信した要求がサーバ証明書要求であるかを判定する。
受信した要求がサーバ証明書要求であれば、httpsサーバは、ステップS4003に進み、httpsクライアント208に対してサーバ証明書を送信する。ステップS4004に進み、httpsサーバは通信状態を「接続中」4102に状態遷移させたあとでステップS4001に戻る。図41はhttpsサーバが持つ通信状態の状態遷移図である。
受信した要求がサーバ証明書要求でなければ、httpsサーバはステップS4005に進み、受信した要求がログデータ転送であるかを判定する。受信した要求がログデータ転送であれば、httpsサーバはステップS4006に進み、通信状態が「接続中」4102であるかを判定する。
通信状態が「接続中」4102であれば、httpsサーバはステップS4007に進み、受信したログをログサーバ209に格納する。ステップS4008に進み、httpsサーバはデータ転送の応答を返したあとでステップS4001に戻る。通信状態が「接続中」4102でなければ、httpsサーバはステップS4001に戻る。
受信した要求がログデータ転送でなければ、httpsサーバはステップS4009に進み、受信した要求が通信終了であるかを判定する。受信した要求が通信終了でなければhttpsサーバはステップS4001に戻る。受信した要求が通信終了であれば、httpsサーバはステップS4010に進み、通信状態を「通常状態」4101に状態遷移させたあと、ステップS4001に戻る。
図42は、機器からログサーバにログ情報を随時転送する処理を表したシーケンス図である。まず、ステップS4201に進み、LCS205はログ登録メッセージを受信してログ情報をHDD15に記録する。ステップS4202に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログ変化通知を出すと判定されたものとする。ステップS4203に進み、LCS205はログ変化通知をログ転送モジュール207に送信する。
ステップS4204に進み、ログ転送モジュール207はLCS205に対してログ検索要求を行う。ステップS4205に進み、LCS205はHDD15またはRAM16に記憶されている未転送ログを抽出し、未転送ログのログIDをログ検索結果としてログ転送モジュール207に送信する。
ステップS4206に進み、ログ転送モジュール207はhttpsクライアント208にログ転送開始を指示する。ステップS4207に進み、httpsクライアント208はログサーバ209のhttpsサーバにサーバ証明書を要求する。ステップS4208に進み、httpsクライアント208は、ログサーバ209のhttpsサーバからサーバ証明書を受信する。
ステップS4209に進み、httpsクライアント208は通信開始を表す通信ログを登録する為のログ登録メッセージをLCS205に送信する。LCS205はログ登録メッセージを受信してログ情報をHDD15に記録する。そして、ステップS4210に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここではログ変化通知を出さないと判定されたものとする。
ステップS4211に進み、機器1のhttpsクライアント208とログサーバ209のhttpsサーバとは、データ転送可能に接続される。
ステップS4212に進み、ログ転送モジュール207はLCS205に対してログ取得要求を行う。ステップS4213に進み、LCS205はログ取得要求に応じたログ情報をHDD15から抽出し、そのログ情報をログ転送モジュール207に送信する。
ステップS4214に進み、ログ転送モジュール207はLCS205から受信したログ情報をhttpsクライアント208に送信する。ステップS4215に進み、httpsクライアント208はログサーバ209のhttpsサーバにログ転送モジュール207から受信したログデータ(ログ情報)を転送する。
ステップS4216に進み、ログサーバ209のhttpsサーバはデータ転送応答を機器1のhttpsクライアント208に送信する。ステップS4217に進み、httpsクライアント208はログ転送モジュール207にデータ転送結果を送信する。ステップS4218に進み、ログ転送モジュール207はLCS205にログ転送済み通知を行う。
なお、ステップS4212〜S4218の処理は1個目の未転送ログの転送操作を表している。2個目以降の未転送ログはステップS4212〜S4218の処理と同様なステップS4219〜S4225の転送操作により転送される。
未転送ログの転送操作が終了すると、httpsクライアント208はステップS4226に進み、ログサーバ209のhttpsサーバに通信終了を通知する。ステップS4227に進み、機器1のhttpsクライアント208とログサーバ209のhttpsサーバとは、切断される。
ステップS4228に進み、ログ転送モジュール207はログ転送結果ログを登録する為のログ登録メッセージをLCS205に送信する。LCS205はログ登録メッセージを受信してログ転送結果ログをHDD15に記録する。ステップS4229に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここでは、ログ変化通知を出さないと判定されたものとする。
ステップS4230に進み、httpsクライアント208は通信終了を表す通信ログを登録する為のログ登録メッセージをLCS205に送信する。LCS205はログ登録メッセージを受信してログ情報をHDD15に記録する。そして、ステップS4231に進み、LCS205はログタイプからログ変化通知を出すか否かを判定する。ここではログ変化通知を出さないと判定されたものとする。
図32のシーケンス図で表す処理によれば、LCS205が、ログ変化通知を無限発生させるログタイプであるときに、ログ変化通知を出さないと判定するため、永久ループに陥ることを防ぐことができる。
ここからは、前述した用語について説明する。図43〜図46はログ情報の属性を説明する為のイメージ図である。図43では、ログ情報の一例として通信ログの属性を一覧表で表している。図43の通信ログ属性一覧表はログサーバ209上で例えばXMLにより記録されている。
また、通信ログ属性一覧表に含まれる「ログID」は同一機器内において発生するログに対してユニークなIDである。ログサーバ209内では、ログIDに機器識別子を付加することでユニークなIDとすることができる。
図44では、ログ情報の一例としてログ転送結果ログの属性を一覧表で表している。図44のログ転送結果ログ属性一覧表はログサーバ209上で例えばXMLにより記録されている。図44(a)は転送モードが「定期転送」であるときのログ転送結果ログ属性一覧表である。図44(b)は転送モードが「逐次転送」であるときのログ転送結果ログ属性一覧表である。
転送モードが「定期転送」である場合、転送の成功及び失敗をログに残す。一方、転送モードが「逐次転送」である場合、転送の失敗をログに残す。転送が失敗した場合、一定時間の失敗回数がカウントされ、ログとして登録される。
図45ではログ情報の一例としてプリンタジョブログの属性を一覧表で表している。図45のプリンタジョブログ属性一覧表はログサーバ209上で例えばXMLにより記録されている。また、図46ではログ情報の一例としてLCS設定値変更ログの属性を一覧表で表している。図46のLCS設定値変更ログ属性一覧表はログサーバ209上で例えばXMLにより記録されている。
図47はログタイプの定義とログ変化通知の有無とを表した一覧表である。図47に示すように、ログ変化通知の有無はログタイプ毎に設定される。図48はLCS設定値変更のWeb画面を表したイメージ図である。図48のWeb画面ではログタイプ毎にロギングのON/OFFを選択できる。
図49はログの管理用属性を表した一覧表である。図49に示すように、ログの管理用属性一覧は発生したログ情報毎にログID及び「転送済のログかどうか」の値を関連付けて管理している。図49では、「転送済のログかどうか」の値として「転送待ち」又は転送済みを表す「済」が書き込まれている。なお、本発明における通信ログとは、LAN4経由で通信を行う際の通信履歴のことである。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。