以下、本発明による印刷情報取得システム及び取得方法の実施形態を図面により詳細に説明する。
図1は本発明の一実施形態による印刷情報取得システムの概略的な構成を示すブロック図である。
本発明の実施形態による印刷情報取得システムは、収集・表示・検索装置(第1の情報処理装置)100、複数の監視対象装置(第2の情報処理装置)102、収集・表示・検索装置100及び複数の監視対象装置102の各装置が接続される通信ネットワーク101、有線で直接的に監視対象装置102に接続される印刷装置103、及び、通信ネットワーク101を介して監視対象装置102と接続される印刷装置104を備えて構成される。なお、図1に示す構成例は、単純な構成の例であって、収集・表示・検索装置が階層的に存在する構成、監視対象装置がより多数の構成であってもよい。
通信ネットワーク101は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)等であってよい。
収集・表示・検索装置100及び監視対象装置102は、通信線(LAN、WAN等)を介して通信可能に通信ネットワーク101に接続されている。なお、収集・表示・検索装置100が階層化された場合、監視対象装置102は、直上の収集・表示・検索装置に、中間層の収集・表示・検索装置は、上位の監視対象装置にそれぞれ通信線(LAN、WAN等)を介して通信可能に接続されるものとする。
また、本発明の実施形態において、監視対象装置のOS(Operating system)は、マイクロソフト社のWindows(登録商標)限定とするが、収集・表示・検索装置のOSについては、後述する収集・表示・検索装置の機能が実現できれば、Windows(登録商標)に限定される必要はない。
印刷装置103、104は、印刷を実行する装置であって、情報処理装置と直接的または通信ネットワークを介して接続可能であり、そのオペレーティングシステムとしてWindows(登録商標)を搭載する情報処理装置からの印刷が実行可能であるものとする。
図2は監視対象装置102としての情報処理装置(コンピュータ、計算機)の構成例を示すブロック図である。
監視対象装置102は、図2に示すように、CPU201、RAM・ROM等の主記憶装置202、ハードディスク等の大容量の外部記憶装置203、キーボードやマウス等の入力装置204、液晶ディスプレイやブラウン管ディスプレイ等の表示装置205、通信ネットワーク101に接続するためのインタフェース機能を提供するNIC(Network Interface Card)等で構成される通信インタフェース206を備えて構成されている。
主記憶装置202には、ログ取得プログラム207がロードされると共に、図2には示していないが、Windows(登録商標)によるOSがロードされる。また、主記憶装置202には、監視対象装置102で実行されるアプリケーション208もロードされ、主記憶装置の所定の領域をアプリケーション208が使用する。
外部記憶装置203において、ログ取得プログラム207がログの作成作業、及び保存先として利用するログ取得プログラム用領域209が確保されている。
なお、前述したように、監視対象装置102に搭載されるOSは、Windows(登録商標)限定であるとする。
図3Aは監視対象装置102のログ取得プログラム207及びログ取得プログラム用領域209の詳細な構成を示すブロック図である。
監視対象装置102の主記憶装置202にロードされるログ取得プログラム207は、印刷ログ取得部300、アプリケーション情報監視・取得部301、印刷追跡ログ作成部302及びファイル操作ログ取得部303により構成される。
監視対象装置102の外部記憶装置209に確保されるログ取得プログラム用領域209は、ファイル操作ログテーブル307、印刷追跡ログテーブル308、印刷付加情報テーブル309、印刷ログテーブル310及び通知格納テーブル311により構成される。
前述において、収集・表示・検索装置100にアップロードする情報を格納するテーブルであるファイル操作ログテーブル307及び印刷追跡ログテーブル308は、外部記憶装置203に内確保する必要があるが、その他のテーブル309〜311は、主記憶装置202に配置してもかまわない。
ファイル操作ログ取得部303は、監視対象装置102でのファイルの操作の履歴を取得し、ファイル操作ログテーブル307に格納する。
なお、その他の構成要素については、後述する。また、監視対象装置102での印刷は、印刷装置103または印刷装置104で実行されるものとし、以後監視対象装置102での印刷実行とは、印刷装置103または印刷装置104で実行される印刷であるとする。
図3Bは印刷ログ取得部300の詳細を示すブロック図である。印刷ログ取得部300は、Windows(登録商標)が提供する印刷操作監視用のWin32API314を利用して、監視対象装置102での印刷の実行を監視し、印刷が実行された場合に、Win32API314を通して、印刷実行の通知と共に、実行された印刷の情報を取得し、印刷ログテーブル310に格納する。また、印刷実行の通知がされた時点で、後述するアプリケーション情報監視・取得部301に印刷日時と共に印刷実行を伝える通知を出す。
図3Bに示す例において、印刷ログ取得部300は、Win32API314に対して印刷監視を設定し、印刷実行の通知を受信する処理を実施するWin32API操作部312と、取得した情報から印刷ログを作成して格納する処理を実施する印刷ログ作成・格納部313とにより構成されている。
印刷ログテーブル310に格納する情報は、印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名であるとするが、印刷日時とドキュメント名とを取得していれば、取得する情報の項目に増減があってもかまわない。
前述した印刷日時とは、印刷が実行された日時であり、Win32API314により取得される。ドキュメント名は、印刷されたドキュメントの名前でありWin32API314により取得される。使用プリンタ名は、印刷に使用されたプリンタの名前でありWin32API314により取得される。ログインユーザ名は、印刷が実行された時点で監視対象装置102にログインしていたユーザの名前であり、Win32API314ではなく、別の手段でその情報が取得される。
また、前述では、Win32API314を利用して印刷情報を取得するとしているが、印刷日時及びドキュメント名が取得可能であれば、例えば、WMI(Windows Mamagement Instrumentation)等を利用してもかまわない。
図3Cはアプリケーション情報監視・取得部301の詳細を示すブロック図である。アプリケーション情報監視・取得部301は、APIフック部315と、AP情報リスト更新・格納部316とにより構成されている。
そして、アプリケーション情報監視・取得部301は、APIフック部315において、監視対象装置102でのアプリケーションソフトウェア(アプリケーション)の起動及び停止を監視し、APIフックを行うことによりアプリケーション名、ファイル名及びファイルパスの情報を取得し、AP情報リスト更新・格納部316が、取得した情報をAP情報リストテーブル304を用いて管理する。
なお、ここでいうアプリケーション名とは、APIフックで得られる監視対象装置102で起動したアプリケーションの名前であり、ファイル名とは、アプリケーションが開いているファイルの名前であり、ファイルパスとは、アプリケーションが開いているファイルのファイルパスである。
APIフック部315は、アプリケーションの起動を察知し、アプリケーションに対してフックを設定して、情報を取得する、アプリケーションの状態変更を察知し情報を取得する、及び、アプリケーションの停止を察知する機能を有し、APIフックで得られる通知で、不要なものについてはフィルタリングする機能を有する。
AP情報リスト更新・格納部316は、APIフック部315で得られた情報からAP情報リストテーブル304を更新する。また、AP情報リスト更新・格納部316は、印刷ログ取得部300から通知を受信した場合、その時点でのAP情報リストテーブル304をコピーし、印刷日時及びアプリケーション数を追加して、印刷付加情報テーブル309に格納し、印刷日時を通知格納テーブル311に格納する。
ここで、印刷日時とは、印刷ログ取得部300から通知された印刷日時であり、アプリケーション数とは、AP情報リストテーブル304のコピーに含まれるアプリケーション情報の数である。
前述では、APIフック部315がアプリケーション名、ファイル名及びファイルパスの情報を取得しているが、これらの情報が含まれていれば、これら以外の情報が追加されてもかまわない。
図3Aに示している印刷追跡ログ作成部302は、通知格納テーブル311のエントリーの有無を定期的に確認し、エントリーが存在すると通知格納テーブル311に格納されている印刷日時の情報から、印刷付加情報テーブル309及び印刷ログテーブル310から同じ印刷日時を持つエントリーを、作業用印刷付加情報テーブル305及び作業用印刷ログテーブル306にそれぞれコピーし、印刷ログのドキュメント名と印刷付加情報のファイル名とを比較し、各印刷付加情報が持つ情報が示すファイルが印刷された可能性を計算する。この計算の過程で作業用印刷付加情報テーブル305の内容は更新され、図5Cに示して後述する作業用印刷付加情報テーブル305の503の状態となる。
印刷追跡ログ作成部302は、可能性の計算後、作業用印刷ログテーブル306と更新済みの作業用印刷付加情報テーブル305(図5Cの503)とから、印刷追跡ログに必要な情報を抜き出し、監視対象装置102のPC識別情報(IPアドレスまたはホスト名)を追加して印刷追跡ログテーブル308に格納する。
図4は収集・表示・検索装置100としての情報処理装置(コンピュータ、計算機)の構成例を示すブロック図である。
収集・表示・検索装置100は、図4に示すように、CPU409、RAM・ROM等の主記憶装置407、ハードディスク等の大容量の外部記憶装置408、キーボードやマウス等の入力装置410、液晶ディスプレイやブラウン管ディスプレイ等の表示装置411、通信ネットワーク101に接続するためのインタフェース機能を提供するNIC(Network Interface Card)等で構成される通信インタフェース412を備えて構成されている。
収集・表示・検索装置100の主記憶装置407には、収集ログ保存部400、印刷追跡ログ保存部401、表示作業部402、印刷付加情報検索部403及びファイル操作ログ検索部404がロードされる。また、収集・表示・検索装置100の外部記憶装置408には、ファイル操作ログテーブル307、印刷ログテーブル405及び印刷付加情報テーブル406が確保される。
収集ログ保存部400は、監視対象装置102からアップロードされたファイル操作ログをファイル操作ログテーブル307に格納し、印刷追跡ログ保存部401に印刷追跡ログの格納を指示する。
印刷追跡ログ保存部401は、監視対象装置102からファイル操作ログテーブル307にアップロードされてきた印刷追跡ログのPC識別情報及び印刷日時にログIDを追加し、印刷追跡ログから必要な情報を取得し、印刷ログ部テーブル405及び印刷付加情報テーブル406に格納する。
表示作業部402は、格納してある各ログを入力装置410からの入力に従い表示装置411に表示する。以後、表示は、全て表示装置411での表示を示すものとする。表示作業部402は、入力装置410より印刷ログとファイル操作ログとの関連付けが入力された場合、印刷付加情報検索部403及びファイル操作ログ検索部404を利用して印刷ログとファイル操作ログとを関連付けた結果を表示する。
印刷付加情報検索部403は、ログIDで印刷ログ部テーブル405に対応する印刷付加情報テーブル406を検索し、印刷付加情報テーブル406に対応する印刷ログ部テーブル405を検索する。
ファイル操作ログ検索部404は、PC識別情報とファイル名とにより印刷付加情報テーブル406を検索する。
図4に示した収集・表示・検索装置100の構成例は、監視対象装置からアップロードされた(収集した)ログを保存し、印刷追跡ログとファイル操作ログとを関連付けて接続(以下では、このような関連付けによる接続をログ接続と表現する)することが可能であれば、前述したような構成に限らず、他のどのような構成であってもよい。
次に、本発明の実施形態における各種のテーブルの構成について説明する。
図5Aはアプリケーション情報リストテーブル304の構成例を示す図である。アプリケーション情報リストテーブル304は、アプリケーション名、ファイル名、ファイルパスを1組のレコードとして、複数のレコードから構成されている。
図5Bは作業用印刷ログテーブル306の構成例を示す図である。作業用印刷ログテーブル306は、印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名の各情報を格納したレコードから構成されている。
図5Cは作業用印刷付加情報テーブル305の構成例を示す図である。作業用印刷付加情報テーブル305は、アプリケーション名、ファイル名、ファイルパス、ファイル名比較、アプリケーション名比較、可能性の各情報を格納したレコードから構成されている。
図5Dはファイル操作ログテーブル307の構成例を示す図である。ファイル操作ログテーブル307は、操作されたファイルの情報のログであり、PC識別情報、操作日時、操作種別、1または複数のファイルパス、各ファイルパスに対応する1または複数のファイル名、ログインユーザ名の各情報を格納したレコードから構成されている。
図5Eはファイル操作ログの操作種別による各情報の有無の一例を示す図である。ファイル操作の種別としては、オープン、作成、削除、リネーム、移動、コピーがあり、図5Eに示す例では、これらのファイル操作の種別毎に、PC識別情報、操作日時、操作種別、1または複数のファイルパス、各ファイルパスに対応する1または複数のファイル名、ログインユーザ名の各情報の有無が対応付けられている。なお、図5Eに示す例では、黒丸で示しているのが「有」を意味している。
図5Fは印刷追跡ログテーブル308の構成例を示す図である。印刷追跡ログテーブル308は、PC識別情報、印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名、複数の候補情報505の各情報を格納したレコードから構成されている。複数の候補情報505のそれぞれは、アプリケーション名、ファイル名、ファイルパス、可能性情報により構成されている。
図5Gは印刷付加情報テーブル309の構成例を示す図である。印刷付加情報テーブル309は、印刷日時、アプリケーション数の情報、これらのアプリケーション数だけの各アプリケーションのアプリケーション名、ファイル名、ファイルパスの情報により構成されている。
図5Hは印刷ログテーブル310の構成例示す図である。印刷ログテーブル310は、
印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名の各情報により構成されている。
図5Iは通知格納テーブル311の構成例を示す図である。通知格納テーブル311には、印刷日時が格納されている。
図6Aは印刷ログ部テーブル405の構成例を示す図である。印刷ログ部テーブル405は、ログID、PC識別情報、印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名、候補数の各情報を1組のレコードとして、複数のレコードから構成されている。
図6Bは印刷付加情報テーブル406の構成例を示す図である。印刷付加情報テーブル406は、ログID、PC識別情報、アプリケーション名、ファイル名、ファイルパス、可能性情報の各情報を1組のレコードとして、複数のレコードから構成されている。
図7は監視対象装置102で印刷追跡ログとファイル操作ログとを取得し、収集・表示・検索装置100で印刷追跡ログとファイル操作ログとを表示するまでの処理の概要を説明するフローチャートであり、次に、これについて説明する。
(1)監視対象装置102が起動されると、監視対象装置102は、その後、監視を開始して印刷追跡ログとファイル操作ログとを取得する(ステップS700、S701)。
(2)監視対象装置102は、定期的に、または、収集・表示・検索装置100からの命令により取得した印刷追跡ログとファイル操作ログとを収集・表示・検索装置100にアップロードする(ステップS702)。
(3)収集・表示・検索装置100は、監視対象装置102からアップロードされてきた印刷追跡ログとファイル操作ログとを、印刷ログ部テーブル405、ファイル操作ログテーブル307に保存し、保存してある印刷追跡ログとファイル操作ログとを要求(表示条件)に従って表示する(ステップS703、S704)。
図8は監視対象装置102の処理の概略を印刷追跡ログの取得に着目して説明するフローチャートであり、次に、これについて説明する。なお、図8に示すフローのステップS800〜S804の処理は、図7に示して説明したフローのステップS701の処理に該当する。
(1)監視対象装置102の起動後に、監視対象装置102のアプリケーション情報監視・取得部301及び印刷ログ取得部300による監視が開始される(ステップS700、S800)。
(2)監視対象装置102で印刷が実行されると、印刷ログ取得部300は、その印刷情報を取得し、アプリケーション情報監視・取得部301に印刷日時を含む通知を出すと共に、印刷ログを印刷ログテーブル310に格納する(ステップS801、S802)。
(3)アプリケーション情報監視・取得部301は、印刷ログ取得部300からの通知を受け、その時点でのアプリケーション情報リストテーブル304をコピーし、その内容を印刷付加情報テーブル309に格納すると共に、通知格納テーブル311に印刷ログ取得部300より通知された印刷日時を格納する(ステップS803)。
(4)印刷追跡ログ作成部302は、通知格納テーブル311を定期的に監視し、通知格納テール111にエントリーが存在した場合、印刷ログテーブル310及び印刷付加情報テーブル309から必要な情報をコピーして印刷追跡ログを作成、印刷追跡ログテーブル308に格納する(ステップS804)。
(5)印刷追跡ログの印刷追跡ログテーブル308への格納終了後、印刷追跡ログ作成部302は、印刷追跡ログ作成に使用した情報を印刷ログテーブル310及び印刷付加情報テーブル309から削除し、通知格納テーブル311から、該当のエントリーを削除する(ステップS805)。
前述したフローの処理において、ステップS801〜S803の処理と、ステップS804〜S805の処理とは、繰り返し実行される処理であり、また、監視対象装置102が起動した時点から並行に実行される処理である。
図9は印刷ログ取得部300での処理動作を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、図8に示して説明したフローのステップS800〜S803の処理を印刷ログ取得部300での処理に注目して説明する処理である。
(1)印刷ログ取得部300は、図8に示すフローのステップS800の時点から印刷の監視を開始し、Win32API操作部312は、プリンタ監視・情報取得Win32API314によるプリンタの監視を設定して監視を開始し、プリンタ監視・情報取得Win32API314から印刷実行通知の受信を待機する(ステップS901、S902)。
(2)印刷ログ取得部300は、プリンタ監視・情報取得Win32API314から印刷実行の通知を受信すると、受信した印刷の情報に含まれる印刷実行日時を、アプリケーション情報監視・取得部301に通知する(ステップS903、S904)。
(3)印刷ログ取得部300は、その後、印刷ログ作成・格納部313に印刷ログ作成を指示し、印刷ログ作成・格納部313は、印刷実行通知に含まれる情報から印刷ログを作成して印刷ログテーブルに格納310する(ステップS905)。
前述したフローにおいて、ステップS903での印刷実行通知の受信は、図8に示すフローのステップS801での処理のタイミングである。
印刷ログ取得部300は、監視対象装置102が停止するまで、前述したフローのステップS902〜S905の処理を繰り返し、ステップS905において、Win32API操作部312は、印刷ログ作成・格納部313に印刷ログ作成を指示した後、ステップS902からの処理に戻り、印刷ログ作成・格納部313は、印刷ログを格納した後、ここでの処理を終了する。
図10はアプリケーション情報監視・取得部301での処理動作を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、図8に示して説明したフローのステップS800〜S803の処理をアプリケーション情報監視・取得部301での処理に注目した処理である。
(1)アプリケーション情報監視・取得部301は、図8に示すフローのステップS800の時点から印刷の監視を開始する。ここで、印刷の監視としているが、実際にアプリケーション情報監視・取得部301の監視対象となるのは、監視対象装置102で起動しているアプリケーションである。
(2)監視対象装置102が起動されると、アプリケーション情報監視・取得部301のAPIフック部315が、フックを設定してアプリケーションの監視を開始し、監視の設定の完了後、AP情報リスト更新・格納部316がAPIフック部315からの通知及び印刷ログ取得部300からの通知の受信を待機する(ステップS1000、S1001)。
(3)S1001の待機中に受信した通知が、APIフック部315からのものであった場合、AP情報リスト更新・格納部316は、APIフックで得られた情報が、アプリケーションの起動または状態の変更を通知する内容か、アプリケーションの停止を通知する内容かを判定する(ステップS1002)。
(4)ステップS1002の判定で、APIフックで得られた情報が、アプリケーションの起動または状態の変更を通知する内容であった場合、AP情報リストテーブル304に情報を追加または変更してAP情報リストテーブル304を更新する(ステップS1003)。
(5)ステップS1002の判定で、APIフックで得られた情報が、アプリケーションの停止を通知する内容であった場合、AP情報リストテーブル304から該当するエントリーを削除する(ステップS1004)。
(6)S1001の待機中に受信した通知が、印刷ログ取得部300からのものであった場合、その時点でのAP情報リストテーブル304の内容をコピーし、コピーしたAP情報リストに含まれるアプリケーション数を計算、AP情報リストの内容に、アプリケーション数及び印刷ログ取得部300から通知された印刷日時を追加し、印刷付加情報テーブル309に格納する(ステップS1005〜S1007)。
(7)ステップS1007での処理の完了後、通知格納テーブル311に印刷ログ取得部300から通知された印刷日時を格納する(ステップS1008)。
(8)アプリケーション情報監視・通知部301のAP情報リスト更新・格納部316は、ステップS1003、S1004、S1008の処理の完了後、ステップS1001からの処理に戻り、監視対象装置102が停止するまで、処理を繰り返す。
図11は印刷追跡ログ作成部302での処理動作を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、図8に示して説明したフローのステップS804〜S805の処理の詳細である。
(1)印刷追跡ログ作成部302は、監視対象装置102が起動すると、通知格納テーブル311のエントリーが存在するか否かを確認し、エントリーが存在しなかった場合、一定時間待機した後に、再度、通知格納テーブル311のエントリーが存在するか否かを確認する処理に戻って、監視対象装置102が停止するまで処理を続ける(ステップS700、S1100、S1101)。
(2)ステップS1100の確認で、エントリーが存在していた場合、通知格納テーブル311に格納されている印刷日時を読み込み、印刷日時をキーに印刷ログテーブル310を検索し、該当するエントリーの情報をコピーし、その情報を作業用印刷ログテーブル306に格納する(ステップS1102)。
(3)前述の処理と同様に、印刷日時をキーに、印刷付加情報テーブル309を検索し、該当するエントリーの情報をコピーし、その情報を作業用印刷付加情報テーブル305に格納する(S1103)。
(4)2つの作業用テーブル305、306に情報を格納後、印刷追跡ログの作成作業を実施する。なお、ここでの印刷追跡ログの作成の処理の詳細については、図12を参照して後述する(ステップS1104)。
(5)印刷追跡ログ作成後、通知格納テーブル311のエントリー、印刷ログテーブル310の該当のエントリー、印刷付加情報テーブル309の該当のエントリー、作業用印刷ログテーブル306及び作業用印刷付加情報テーブル305を削除し、その後、ステップS1000からの処理に戻って、通知格納テーブル311のエントリーが存在するか否かを確認する処理からの処理を、監視対象装置102が停止するまで繰り返す(ステップS1105〜S1109)。
図12は印刷追跡ログ作成作業の処理動作を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、図11のステップS1104の処理の詳細であり、印刷付加情報に含まれる複数のアプリケーション情報が持つファイル名が、印刷が実行されたファイルである可能性をファイル名比較により計算する処理である。
なお、後述する計算方法は1つの例であり、同様の効果を得られれば必ずしも後述の手順・方法でなくてもかまわない。
(1)一般に、ドキュメント名は、ファイル名やアプリケーション名の一方または組み合わせとなる。そこで、まず、印刷追跡ログ作成部302は、作業用印刷ログテーブル306のドキュメント名と作業用印刷付加情報テーブル305の最初のエントリーとが完全一致するか否かを比較する。ここでは、ファイル名(拡張子含む)がドキュメント名の中に含まれる場合、完全一致したこととする。例えば、ファイル名が 「abc.txt」の場合で、ドキュメント名が「123abc.txt」であった場合、完全一致したとみなす(ステップS1200)。
(2)ステップS1200の比較で、ドキュメント名とファイル名とが完全一致した場合、図5Cに示す作業用印刷付加情報テーブル305の該当エントリーのファイル名比較の欄に「200」を格納する。なお、この値「200」は、このファイルが印刷されたファイルであると断定することができる値の基準として用いられる値である(ステップS1201)。
(3)ステップS1200の比較で、ドキュメント名とファイル名とが完全一致しなかった場合、ファイル名とドキュメント名との部分比較を行い、結果を付加情報テーブル305の該当エントリーのファイル名比較の欄に格納する。なお、ここでの処理の詳細については、図13を参照して後述する(ステップS1202)。
ここまでの処理で、すなわち、次の処理であるステップS1203の処理を実行する時点で、作業用印刷付加情報テーブル305の、該当のエントリーは、図5Cに示す500の状態となっている。
(4)ドキュメント名には、印刷されたファイルを実行しているアプリケーションの名前を含む場合がある。そこで、次に、アプリケーション名がドキュメント名に含まれてるか否かを比較する(ステップS1203)。
(5)ステップS1203の比較で、ドキュメント名にアプリケーション名が含まれていた場合、比較結果を値「60」とし、また、一致しなかった場合、比較結果を値「0」とする(ステップS1204、S1205)。
(6)次に、作業用印刷付加情報テーブル305の該当エントリーのアプリケーション名に、ドキュメント名とアプリケーション名との比較結果を格納する。この結果、該当のエントリーの作業用印刷付加情報テーブル305は、図5Cに示す501の状態となる(ステップS1206)。
(7)次に、作業用印刷付加情報テーブル305に次のエントリーが存在するか否かを判定し、次のエントリーが存在した場合、ステップS1200からの処理の戻って処理を続け、ステップS1200以降の処理を作業用印刷付加情報テーブル305の全てのエントリーに対して実施する(ステップS1207)。
(8)ステップS1207の判定で、次のエントリーが存在しなかった場合、すなわち、ステップS1200〜S1207での処理を作業用印刷付加情報テーブル305の全てのエントリーに対して実施して、全てのエントリーに対して処理が終了した後、可能性情報の計算(可能性情報計算の処理の詳細については、図13を参照して後述する)を実行し、作業用印刷ログテーブル306、作業用印刷付加情報テーブル305から印刷追跡ログを作成して印刷追跡ログテーブル308に格納する(ステップS1208、S1209)。
図13はファイル名・ドキュメント名部分一致比較の処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する処理は、図12におけるステップS1202での処理の詳細である。
(1)はじめに、ファイル名から拡張子を除いた文字数を計算する。ここでは、便宜上その計算結果をIとする(ステップS1300)。
(2)次に、ステップS1300での計算結果のIが「I≦50」であるか否かを判定し、「I≧51」であった場合、計算結果を「50」とする(ステップS1301、S1302)。
(3)ステップS1301の判定で、Iが「I≦50」であった場合、また、ステップS1302の処理の後、ファイル名の先頭からのI文字とドキュメント名とを比較し、一致したか否かを判定する(ステップS1303、S1304)。
(4)ステップS1304の判定で、ファイル名の先頭からのI文字とドキュメント名とが一致しなかった場合、Iが「I≦2」であるか否かを判定し、Iが3以上であった場合、「I−1」の演算して、ステップS1303からの処理に戻って処理を繰り返し、Iが「2」以下であった場合、結果を「10」とする(ステップS1305〜S1307)。
(5)ステップS1304の判定で、ファイル名の先頭からI文字がドキュメント名の一部と一致していた場合、
(I+24)×2/(ファイル名文字数−3)−I
の計算式に従った計算を行い、計算の結果が15より小さいか否かを判定し、計算の結果が「14以下」であった場合、結果を「15」とする(ステップS1308〜S1310)。
(6)前述までの処理における比較及び計算で得られた結果を作業用印刷付加情報テーブルの該当エントリーのファイル名比較の欄に格納する(ステップS1311)。
図14は可能性情報計算の処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する処理は、図12におけるステップS1208での処理の詳細である。
(1)まず、作業用印刷付加情報テーブル305内に次のエントリがあるか否かを判定し、エントリがあれば、各エントリーのファイル名比較とアプリケーション名比較の結果を加算して可能性の欄への格納処理を行い、次のエントリの有無を判定して処理を続ける。この結果、該当のエントリーの作業用印刷付加情報テーブル305は、図5Cに示す502の状態となる(ステップS1400、S1401)。
(2)ステップS1400の判定で、作業用印刷付加情報テーブル305内に次のエントリがなかった場合、すなわち、全てのエントリーに対する処理の完了後、可能性が「50以上」のエントリーが存在するか否かを確認し、存在した場合、可能性が「30より小さい」エントリーを作業用印刷付加情報テーブル305から削除する(ステップS1402、S1403)。
(3)ステップS1403の処理の後、または、ステップS1402の確認で、可能性が「50以上」のエントリーが存在しなかった場合、
(100×各エントリーの可能性/全エントリーの可能性の合計)
の計算式に従った計算を行い、得られた計算結果で、各エントリーの可能性情報を上書きする。これにより、可能性には、相対的な可能性が格納されていることになる。そして、該当のエントリーの作業用印刷付加情報テーブル305は、図5Cに示す503の状態となる(ステップS1404)。
以上が監視対象装置102での印刷追跡ログ作成処理である。そして、前述の処理では、収集・表示・検索装置100の負荷を軽減するため、監視対象装置102側でファイルが印刷された可能性の計算を実施しているが、監視対象装置102が情報を取得するのみとし、収集・表示・検索装置100で可能性の計算を実施するようにしてもかまわない。また、収集・表示・検索装置100のログ保存に要する容量削減のため、印刷の対象としての可能性が低いものを削除している(図14のフローにおけるステップS1402、S1403での処理)が、削除しなくてもかまわない。
ここで重要なことは、得られた印刷ログや印刷付加情報から、印刷された可能性の高いファイルを求めることであり、図12〜図14に示したフローの処理は、その手法の例であり、より最適なものであれば手順、計算式及び数値は、図12〜図14で説明しているものと異なっていてもかまわない。
次に、図12〜図14に示して説明したフローの中で利用している数値について説明する。
図12に示すフローのステップS1201において、ファイル名とドキュメント名とが完全一致した場合に、作業用印刷付加情報テーブルのファイル名に「200」を格納している。ここでの比較は、拡張子込みのファイル名で実施しているため、一致するとほぼ印刷されたファイルとして断定することができる。「200」は、以後の数値決定において基準となる値になる。
図13に示すフローのステップS1301及びS1302で「51」、「50」を使用している。これは、ファイル名とドキュメント名との部分一致比較に利用する最大の文字数を「50」としていることを意味する。処理の性能も考慮し、「51」文字以上の比較を実施するのは有効でないと判断して「50」とした。また、ステップS1305では、ステップS1306での処理結果が「0」とならないようにしている。
図13に示すフローのステップS1307で利用している式による演算結果は、図12に示すフローのステップS1200の処理で完全一致した場合の結果「200」を超えることはなく、ファイル名が短いファイルが対象の場合であっても一致した場合、結果がそれなりの値を持つ(拡張子抜きファイル名が1文字の場合、結果は50となる)。また、この式は、ファイル名の長さに対しての一致した文字数の長さを結果に反映させる(ファイル名10文字中9文字一致>ファイル名20文字中9文字一致)こと、及び、計算が不可能になる場合がない(分子が「0」とならない)ことを考慮して立式している。
図13に示すフローのステップS1307で「10」を利用している。ステップS1307は、ファイル名が一致しなかった場合であるが、印刷可能性が「0」と言い切れないため、ここでは、最低限の値を持たせている。
図13に示すフローのステップS1309、S1310で「15」を利用している。この理由は、ファイル名が一部一致したものの値が、一致しなかった場合(ステップS1307に示す10)の値を下回ることがないようにするためである。そして、ステップS1308での計算の結果が「15」を下回る場合は、ファイル名の長さに対して、一致した文字数が少なかった場合である。
図12に示すフローのステップS1204で「60」を利用している。通常、ドキュメント名には、印刷されたファイルを実行しているアプリケーション名が含まれる場合がある。そのため、アプリケーション名がドキュメント名に含まれている場合、印刷されたファイルを実行していた可能性が高いため、ファイル名比較の結果が同様であるエントリーであってもアプリケーション名が一致するものと一致しないものとで差を作るため「60」としている。
図15に示すフローのステップS1402で可能性が「50」以上のエントリーの存在を確認している。これは、ファイル名がある程度のレベルで一致している、または、アプリケーション名が一致しているエントリーが存在した場合、可能性が「50」を超えるからである。
図15に示すフローのステップS1403で可能性が「30」を下回るエントリーを削除している。これは、可能性が「50を超えるエントリーが存在している状況で、可能性が「30」を下回るエントリーが実際に印刷されている可能性はほぼないためである。一方、ステップS1402で「50」を越えるエントリーが存在しない場合は、印刷されたファイルの特定を自動で実施するのは困難なため、全てのエントリーの情報を保持する。
次に、収集・表示・検索装置100での処理について説明する。
図15は収集・表示・検索装置100での処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する処理は、図7に示して説明したフローのステップS703、S704での処理の詳細である。以下に説明する収集・表示・検索装置100の処理は、その一例であり、印刷ログとファイル操作ログとが表示可能であり、一方からもう一方への接続が可能であれば、処理の手順・方式は、説明したものと異なっていてもかまわない。
(1)収集・表示・検索装置100は、起動された後、入力装置410からの印刷ログまたはファイル操作ログの表示命令、収集命令、及び、監視対象装置102からのアップロードを待機する。なお、以後の説明では、収集及びアップロードを区別せず収集という(ステップS1500、S1502)。
(2)ステップS1502の待機中に、ログの表示命令があった場合、表示作業部402にログの表示を指示して、ステップS1502からの処理に戻って処理を続ける。なお、表示作業部402での処理の詳細については、図17を参照して後述する(ステップS1503、S1501)。
(3)ステップS1502の待機中に、ログの収集命令があった場合、監視対象装置102から各ログを収集し、収集したファイル操作ログを、収集・表示・検索装置100のファイル操作ログテーブル307に格納する(ステップS1504、S1505)。
(4)その後、印刷追跡ログ保存部401に指示し、収集した印刷追跡ログを分解・加工し、印刷ログ部テーブル405及び印刷付加情報部テーブル406に格納する。ここでは、印刷追跡ログを分解しているが、分解せずに印刷追跡ログのまま保存してもかまわない。印刷追跡ログ保存部401の印刷追跡ログの分解と加工との処理の詳細については、図16を参照して後述する。各テーブルへのログ格納終了後、ステップS1502からの処理に戻って処理を続ける(ステップS1506、S1501)。
図16は印刷追跡ログ保存部401での印刷追跡ログの分解と加工との処理を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、図15に示して説明したフローのステップS1506での処理の詳細である。
(1)印刷追跡ログ保存部401は、印刷追跡ログに含まれるPC識別情報と印刷日時とからログIDを作成する。これにより、印刷追跡ログから、印刷ログ部及び候補数分の印刷付加情報部が作成される(ステップS1601)。
(2)次に、印刷追跡ログ及びログIDから印刷ログ部を作成して印刷ログ部テーブル405に格納し、また、印刷付加情報部を作成して印刷付加情報テーブル406に格納する(ステップS1602、S1603)。
(3)その後、印刷追跡ログに次のエントリーが存在するか否かを確認し、存在する場合、ステップS1601からの処理に戻り、次の印刷追跡ログに対してS1602、S1603の処理を実行し、次のエントリーが存在しなかった場合、印刷追跡ログ保存部401での処理を終了する(ステップS1604、S1605)。
図17は表示作業部402での処理動作を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、図15に示して説明したフローのステップS1503での処理の詳細である。
(1)ログ表示作業部401は、入力装置204からの入力値が、印刷ログ表示と印刷操作ログ表示とのどちらのログ表示を指示するものであるかを判断し、ファイル操作ログを表示する指示であった場合、ファイル操作ログテーブル307からログを取り出して表示する(ステップS1700、S1701)。
(2)ログの表示後、印刷ログ接続の実行があるかを待機し、表示しているファイル操作ログから、あるエントリーが選択され、印刷ログ接続が実行された場合、PC識別情報、ファイル名及びファイルパスのいずれか、または、複数の条件で印刷付加情報部テーブル406を検索し、一致した印刷付加情報部を表示する(ステップS1702、S1703)。
(3)表示されている印刷付加情報部のあるエントリーが選択された場合、印刷付加情報部が持つログIDにより印刷ログ部テーブル405を検索し、一致した印刷ログ部を表示する(ステップS1704)。
(4)ステップS1700の判断で、入力装置204からの入力値が、印刷ログの表示を指示していた場合、印刷ログ部テーブル405からログを取り出して表示する(ステップS1705)。
(5)ロのグ表示後、ファイル操作ログ接続の実行があるかを待機し、表示している印刷ログから、あるエントリーが選択され、ファイル操作ログ接続が実行された場合、ログIDで印刷付加情報部テーブル406を検索し、一致した印刷付加情報部を表示する(ステップS1706、S1707)。
(6)表示した印刷付加情報部のあるエントリーが選択された場合、PC識別情報、ファイル名及びファイルパスのいずれか、または、複数の条件で、ファイル操作ログテーブル307を検索し、一致したファイル操作ログを表示する(ステップS1708)。
(7)ステップS1702の待機中、印刷ログ接続が実行されなかった場合、ステップS1706の待機中、ファイル操作ログ接続が実行されなかった場合、また、ステップS1704、S1708の処理の後、ログ表示作業部401は、ログ表示の継続または終了を示す指示を待機し、表示の継続が指示された場合、ステップS1700からの処理に戻って処理を続け、表示の終了が指示された場合、ログ表示を終了する(ステップS1709、S1710)。
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
図18は本発明による印刷情報取得システムを具体的に説明するための本発明の実施例としての最小の構成である。
収集・表示・検索装置100は、名前が「Pr1」である印刷装置103aと接続されているホスト名が「Clt1」である監視対象装置102a、及び、名前が「Pr2」である印刷装置103bと接続されているホスト名が「Clt2」である監視対象装置102bに通信ネットワーク101を介して接続されて、監視対象装置102a、及び、監視対象装置102bを監視しているものとする。
監視対象装置102a、102bは、すでに説明した監視対象装置102と同様の構成を持つものとし、また、印刷装置103a、103bは、すでに説明した印刷装置103と同様の機能を有するものとする。監視対象装置102a、102bは、詳細は異なるものの、同様の操作が実施されているため、以後、監視対象装置102aを用いて説明する。
ここで、説明のために監視対象装置で実行される印刷の実行が可能なアプリケーションを想定する。印刷ログのドキュメント名は、アプリケーションに依存する。ここでは、各プリケーションから印刷した場合のドキュメント名のパターンも想定する。
第1のアプリケーションを「APP1」とし、ドキュメント名としてアプリケーション名、及び、実行しているファイルのファイル名で構成されるドキュメント名が印刷ログで取得されるものとする。
第2のアプリケーションを「APP2」とし、アプリケーション名、及び、実行しているファイルのファイル名から拡張子を除いたもので構成されるドキュメント名が印刷ログで取得されるものとする。
第3のアプリケーションを「APP3」とし、実行しているファイルのファイル名がドキュメント名として印刷ログで取得されるものとする。
監視対象装置102aは、起動済みであり、すでにログ取得プログラム207の印刷ログ取得部300、アプリケーション情報監視・取得部301による監視が開始されており、ファイル操作ログ取得部307によりファイル操作ログが取得されているものとする。
また、監視対象装置102bにおいても同様の作業が実施されているものとする。
図19Aは2008年12月05日17時15分30秒の時点での、監視対象装置102aの主記憶装置202内のアプリケーション208で起動しているアプリケーションとその実行ファイルを示している図である。
図19Aにおいて、1900は、APP1がファイル名「abcd.txt」、パス「C:¥txtfol」のファイルを実行していることを示す、1901〜1903も同様に、アプリケーションがファイルを実行している様子を示すものとする。
図19Bは図19Aに示した状態でのアプリケーション情報リストテーブル304の構成例1904を示す図である。ここに示すアプリケーション情報リストテーブル1904は、アプリケーション名、ファイル名、ファイルパスを1組のレコードとして、複数のレコードから構成されている。
この状況で、ログインユーザ「Print_User」が、図19Aに1900として示すAPP1から印刷装置103aを利用し印刷を実行した場合を想定する。
印刷が実行されると、印刷ログ作成部300により印刷ログが作成されると同時に、アプリケーション情報監視・取得部301へ印刷日時を含む通知が出される。
図20はAPP1から印刷装置103aを利用し印刷を実行した時点での印刷ログテーブル310の構成例2000を示す図である。ここに示す印刷ログテーブル2000は、印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名の各情報を備えて構成される。
アプリケーション情報監視・取得部301は、印刷ログ取得部300より通知を受け取り、通知の受け取り時点での図19Bに示したアプリケーション情報リストテーブル1904のコピーから印刷付加情報を作成して、印刷付加情報テーブル309に格納すると同時に、通知格納テーブル311に印刷日時を格納する。
図21Aはアプリケーション情報監視・取得部301により印刷付加情報が格納された時点での印刷付加情報テーブル309の構成例2100を示す図である。ここに示す印刷付加情報テーブル2100は、アプリケーション数の情報、これらのアプリケーション数だけの各アプリケーションのアプリケーション名、ファイル名、ファイルパスの情報を格納している。
図21Bはアプリケーション情報監視・取得部301により印刷日時が格納された時点での通知格納テーブル311の構成例2101を示す図である。ここに示す通知格納テーブル2101には、印刷日時を格納している。
印刷追跡ログ作成部302は、この通知格納テーブル2101にエントリーが存在するため、図20に示している印刷ログテーブル2000から作業用印刷ログテーブル306を、図21Aに示している印刷付加情報テーブル2100から作業用印刷付加情報テーブル305を作成し、印刷追跡ログ作成を開始する。
図22Aは印刷追跡ログ作成部302が作業用印刷ログテーブルを作成する時点での作業用印刷ログテーブル306の構成例2200を示す図である。ここに示す作業用印刷ログテーブル2200は、印刷日時、ドキュメント名、使用プリンタ名、ログインユーザ名の各情報を格納している。
図22Bは印刷追跡ログ作成部302が作業用印刷付加情報テーブルを作成する時点での作業用印刷付加情報テーブル305の構成例2201を示す図である。ここに示す作業用印刷付加情報テーブル2201は、アプリケーション名、ファイル名、ファイルパス、ファイル名比較、アプリケーション名比較、可能性の各情報を格納している。
印刷追跡ログ作成部302は、この作業用印刷付加情報テーブル2201の各エントリーの可能性計算を図12に示して説明したフローに従って実施する。ここでは、作業用印刷付加情報テーブル2201の3番目のエントリーの場合について説明する。
図23Aは作業用印刷付加情報テーブル2201の3番目のエントリーの状態変化を示す図である。
作業用印刷付加情報テーブル2201の3番目のエントリーは、当初、図23Aに示すテーブル2300の状態では、図22Aに示しているドキュメント名「APP1_abcd.txt」に対して、ファイル名が「abcdefg.doc」となるため、図12に示しているフローにおいて、ステップS1200の判定が「No」となり、ステップS1202の処理、すなわち、図13に示すフローでの処理に移行する。そして、ステップS1300の処理での計算結果は、「I=7」となり、ステップS1301の判定が「Yes」となり、ステップS1303へと進む。その後、ステップS1304の判定で「No」、ステップS1305の判定で「No」、ステップS1306の処理を3回繰り返した後、「I=4」となり、ステップS1304の判定が「Yes」となり、ステップS1308の処理に進み、ここでの計算結果が「18」となる。「この結果を受けるステップS1309の判定は「Yes」となり、ステップS1311の処理に移行し、作業用印刷付加情報テーブル2201の3番目のエントリーのファイル名比較に「18」が格納される。この結果、図23Aに示すテーブル2300は、図23Aに示すテーブル2301のようになる。
図12のフローチャートの参照に戻り、ドキュメント名「APP1_abcd.txt」に対してアプリケーション名が「APP2」となるため、ステップS1203の比較が「No」となって、ステップS1205へ進み、ステップS1206での処理において、作業用印刷付加情報テーブル2201の3番目のエントリーのファイル名比較に「0」が格納される。その後、ステップS1207へ進み、実際は作業用印刷付加情報テーブル2201の4番目のエントリーの処理に入るがここでの説明を省略する。
次に、ステップS1208の処理、すなわち、図14に示すフローの処理に進み、ステップS1401で作業用印刷付加情報テーブル2201の3番目のエントリーの可能性に「18」が格納される。前述の結果、図23Aに示すテーブル2301は、図23Aに示すテーブルS2302のようになる。
実際には、図14に示しているフローのステップS1400〜S1401の処理が、作業用印刷付加情報テーブル2201のエントリーの数分だけ繰り返えされる。
図23Bは図22Bに示している作業用印刷付加情報テーブル2201の全てのエントリーについて前述したステップS1400までの処理を実行した後の作業用印刷付加情報テーブル2201の状態をテーブル2303として示す図である。
以後、図14に示すフローのステップS1402の判定が「Yes」となり、ステップS1403、S1404の処理に移行することになる。
図24Aは図14に示すフローのステップS1403の処理の完了後の作業用印刷付加情報テーブル2201の状態をテーブル2400として示す図である。このテーブル2400は、ステップS1403の処理により、図23Bに示したテーブル2303の3番目のエントリーが削除されたものとなっている。
図24Bは図14に示すフローのステップS1404の処理の後の作業用印刷付加情報テーブル2400の状態をテーブル2401として示す図である。このテーブル2401は、ステップS1404に示している計算式に従って、可能性を計算し、その結果が反映されたものである。
図12に示すフローチャートの参照に戻り、ステップS1209の処理で印刷追跡ログを作成し印刷追跡ログテーブル308に格納している。
図25は図12に示すフローのステップS1209の処理後の印刷追跡ログテーブル308を印刷追跡ログテーブル2500として示す図である。このテーブル2500は、図24Bに示した作業用印刷付加情報テーブル2400の3つのエントリを可能性の値の大きさの順に並べたテーブルである。
以上の処理の実施後、図11に示したフローにより説明したように、各テーブルの使用済みのエントリーは、ステップS1105〜S1109の処理により削除される。
図18以降の前述までの説明は、監視対象装置側についての説明であったが、次に、収集・表示・検索装置側について説明する。ここでは、監視対象装置102a及び102bにおいて、複数の印刷追跡ログ及びファイル操作ログが取得されているものとして、収集・表示・検索装置側について説明する。
収集・表示・検索装置100は、図15に示して説明したフローの処理が実施されており、各ログを収集する場合、ステップS1502の待機中に、ログの収集命令を受けて、ステップS1504〜S1506の処理を行うことになる。
図26は図15に示すフローのステップS1506、すなわち、図16に示すフローの処理終了後の印刷ログ部テーブル405をテーブル2600として示す図である。この図26での具体的な値は、図25に示している印刷追跡ログテーブル2500の印刷追跡ログを格納したもの(ログID:Clt120081205171530_0)及び監視対象装置102bで取得したログのサンプルであるとする(ログID:Clt220081205171531_0)。
図27は図15に示すフローのステップS1506、すなわち、図16に示すフローの処理終了後の印刷付加情報テーブル406をテーブル2700として示す図である。この図27での具体的な値は、図25に示している印刷追跡ログテーブル2500の印刷追跡ログを格納したもの(ログID:Clt120081205171530_0)及び監視対象装置102bで取得したログのサンプルであるとする(ログID:Clt220081205171531_0)。
印刷ログまたはファイル操作ログの表示が指示されると、条件に従い各テーブルを参照して表示する。ここでは、印刷ログを表示する場合を説明する。
印刷ログの表示の指示があると、表示作業部402は、印刷ログ部テーブル2600を参照して表示を行う。
図28Aは印刷ログを表示した画面2800の例を示す図である。この画面2800のエントリーを選択すると、印刷付加情報検索部403が、図27に示した印刷付加情報テーブル2700をログIDにより検索して該当のエントリーを表示する。
図28Bは図27に示した印刷付加情報テーブル2700の1番目のエントリーを表示した場合の画面2801の例を示す図である。
図28Bに示す画面2801から、印刷されたファイルを選択すると、ファイル操作ログ検索部404がファイル操作ログテーブル307を検索する。検索の条件として、ファイル名、ファイルパス、ホスト名、ユーザ名を指定すれば、該当のファイルに対するファイル操作ログを絞って検索することが可能である。
ここでは、監視対象装置102aにおいて、ファイル「abcd.txt」が、通信ネットワークで接続される別の情報処理装置よりコピーされ、監視対象装置102aで印刷されたとする。
監視対象装置102aは、この操作に対するファイル操作ログが取得されており、既に収集・表示・検索装置100のファイル操作ログテーブル307に格納されているものとする。
また、別の情報処理装置(ホスト名をFileSrvとする)は、重要なファイルを保存する共有のファイルサーバであるとする。
図29はファイル「abcd.txt」に対するファイル操作ログを表示した画面2900の例を示す図である。この表示画面2900からファイル「abcd.txt」は、ファイルサーバによりコピーされて印刷され、その後削除されていることを確認することができる。
なお、前述の例では、印刷ログの表示から始まっているが、ファイル操作ログの表示から始まった場合でも、印刷ログまで辿りつくことが可能である。その場合、ファイルサーバのファイル「abcd.txt」が監視対象装置102aにコピーされて、印刷、削除されたことが確認できることとなる。