以下、図面を参照して、本発明に係る履歴管理装置及び履歴管理システムの実施形態について詳細に説明する。
図1は、実施形態の一例である履歴管理システム10を示す。図1に示すように、履歴管理システム10は、履歴管理サーバ11と、少なくとも1つの文書管理サーバ21とを含む。履歴管理サーバ11は、履歴管理装置の一例である。履歴管理システム10は、例えば、会社内に設置される。履歴管理システム10は、例えば、複数の出力装置12と通信可能に接続されており、出力装置12が実行する出力処理の履歴を管理する。
文書管理サーバ21は、文書17を格納する文書DB(データベース)22を備えている。文書17は、例えば、会社内で社員が使用する端末装置19によって作成される。文書17は、例えば、文字(記号及び数字を含む)、図形、図面及び表等の少なくとも1つを含む。会社内で作成された文書17は、例えば、文書管理サーバ21で管理される。文書17は、文書17の内容に関する文書データと、付帯情報とを含む。文書データには、テキスト、図形、図面、及び表などを表すデータが含まれる。付帯情報には、例えば、文書17の作成者及び作成日時などの文書17の属性に関する情報が含まれる。文書17は、文書17の内容に応じて、各種のファイル形式の電子データとして生成され、かつ、保存される。文書管理サーバ21は文書DB22を含めて、文書17を格納する格納装置の一例である。
文書管理サーバ21は、端末装置19と通信可能に接続されており、端末装置19から入力される、文書17を操作するための操作指示を受け付ける。文書管理サーバ21は、受け付けた操作指示の内容に応じた処理を実行する。操作指示には、例えば、文書17の格納指示、文書17の配信指示、文書17の削除指示、文書17の更新指示、及び文書17の移動指示などがある。
文書管理サーバ21は、端末装置19からの文書17の格納指示を受け付けると、端末装置19から受信した文書17を文書DB22に格納する。また、文書管理サーバ21は、端末装置19からの配信指示に基づいて、文書DB22内の文書17を端末装置19に配信する。
さらに、文書管理サーバ21は、端末装置19から文書17の削除指示を受け付けると、文書DB22内の文書17を削除する。また、文書管理サーバ21は、文書17の更新指示を受け付けると、文書DB22内の文書17の内容を更新する。例えば、文書管理サーバ21は、文書DB22内に格納されている更新前の文書17を、端末装置19から新たに送信される更新後の文書17に置き換えることで、文書DB22内の文書17の内容を更新する。また、文書管理サーバ21は、端末装置19から文書17の移動指示を受け付けると、文書DB22内の文書17の格納先を変更する。移動指示は、文書17の格納先を変更する指示の一例である。
出力装置12は、文書17を出力する出力処理を実行する出力装置の一例である。出力装置12は、例えば、印刷機能及びFAX(ファクシミリ:facsimile)機能を有しており、印刷処理及びFAX処理を、文書17を出力する出力処理として実行する。もちろん、出力装置12は、さらに、コピー機能を有していてもよい。
出力装置12は、例えば、端末装置19から、出力処理の実行指示を受け付けて、受け付けた実行指示の内容に基づいて、出力処理を実行する。例えば、出力装置12は、実行指示の内容が、印刷である場合は出力処理として印刷処理を、FAXの場合は出力処理としてFAX処理を実行する。端末装置19を通じて出力処理の実行指示を行う場合には、まず、文書管理サーバ21から端末装置19に対して、出力処理の対象となる文書17の配信を受ける。この後、端末装置19から出力装置12に対して、配信された文書17と出力処理の実行指示が送信される。出力処理の実行指示には、端末装置19の操作者ID(Identification Data)が含まれる。
出力装置12は、出力処理を実行した場合には、第1ログ23を出力し、出力した第1ログ23を履歴管理サーバ11に送信する。第1ログ23には、文字形式の履歴に加えて、画像形式の履歴であるイメージログが含まれている。印刷処理及びFAX処理など、出力装置12において実行される出力処理は、文書17の電子データに基づいて、文書17の表示内容が複数の画素の配列として表現される画像形式のデータを生成する処理を含む。イメージログは、出力処理の際に文書17の電子データに基づいて生成された画像形式のデータの一例である。画像形式のデータは、例えば、ビットマップ形式のデータまたはラスターイメージなどである。イメージログは、例えば、機密文書の漏洩を目的として、出力装置12において機密文書の不正な印刷等が行われた場合において、機密文書の漏洩行為が行われたか否かの証拠として利用可能なデータである。
履歴管理サーバ11は、ログDB(データベース)24を有している。履歴管理サーバ11は、各出力装置12から第1ログ23を受信すると、受信した第1ログ23に基づいて、第2ログ26を生成して、生成した第2ログ26をログDB24に格納する。履歴管理サーバ11は、後述するように、原則として、第1ログ23に含まれるイメージログの代わりに、出力処理の対象となった文書17のリンクを生成する。リンクは、文書DB22内における文書17の格納先を表す格納先情報であり、文書17の格納装置の一例である文書管理サーバ21の識別情報を含む格納先情報の一例である。リンクを使用することにより、文書DB22内の文書17の参照が可能になり、イメージログがなくても、出力処理の対象となった文書17の内容が確認される。
履歴管理サーバ11は、後述するように、文書管理サーバ21から文書操作の通知を取得する。文書操作の通知は、端末装置19から文書管理サーバ21に入力される、文書17に対する操作指示のうち予め設定された操作指示が入力されたことを、履歴管理サーバ11に知らせる通知である。予め設定された操作指示には、例えば、文書17の削除、更新、又は移動の指示などが含まれる。後述するように、履歴管理サーバ11は、文書操作の通知を取得すると、リンクに基づいてイメージログを再現して、リンクの代わりに再現したイメージログを第2ログ26として記録する。
図2に示すように、本実施形態に係る履歴管理システム10の電気的な構成の一例を示す。履歴管理サーバ11は、一例として、サーバコンピュータ及びパーソナルコンピュータなどの汎用的なコンピュータで構成される。図2に示すように、履歴管理サーバ11は、主制御部110、通信部112、入力デバイス114、ディスプレイ116、及び外部I/F(Interface)118を備えている。
主制御部110は、CPU(Central Processing Unit)120、メモリ122、ストレージデバイス124、バスライン126、及びI/O(インプット・アウトプット・インタフェース)128を含む。CPU120、メモリ122、及びストレージデバイス124は、バスライン126を介して接続されている。バスライン126には、I/O128が接続されている。
CPU120は、履歴管理サーバ11の全体を統括的に制御する。メモリ122は、各種プログラムの実行時のワークエリア等として用いられる揮発性のメモリであり、メモリ122の一例としては、RAM(Random Access Memory)が挙げられる。ストレージデバイス124は、例えば、履歴管理サーバ11の基本的な動作を制御するプログラム及び各種パラメータ等のデータを格納する。ストレージデバイス124の一例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable And Programmable Read-Only Memory)、又はフラッシュメモリ等が挙げられる。
通信部112は、I/O128と通信ネットワーク129に接続されている。通信部112は、通信ネットワーク129を介した情報の送受信を制御する。通信ネットワーク129は、LAN(Local Area Network)、インターネット、及び公衆電話回線または専用回線を使用するWAN(Wide Area Network)等などで構成される。
外部I/F(Inter Face)118は、例えば、ATA(AT Attachment)規格のコネクタ、及びUSB(Universal Serial Bus)コネクタなどのインタフェースである。外部I/F118において、例えば、ATA規格のコネクタには、ログDB24が格納される外部ストレージデバイス132等の周辺機器が接続される。
ディスプレイ116は、I/O128に接続されており、CPU120の制御下で、GUI(Graphical User Interface)を構成する操作画面を含む各種情報を表示する。
また、入力デバイス114は、マウス及びキーボードなどからなり、操作指示を入力するための入力デバイスである。入力デバイス114は、I/O128に接続されており、CPU120は、入力デバイス114を通じて、各種の操作指示を受け付ける。入力デバイス114は、例えば、履歴管理サーバ11のメンテナンス用に使用される。
ストレージデバイス124には、アプリケーションプログラム(AP)130が格納されている。AP130には、コンピュータを履歴管理サーバ11として機能させる履歴管理プログラムが含まれている。AP130に含まれる履歴管理プログラムは、本発明に係るプログラムの実施形態の一例である。
文書管理サーバ21も、例えば、サーバ用コンピュータなどの汎用的なコンピュータで構成される。文書管理サーバ21の電気的な構成の一例も、履歴管理サーバ11と同様であるため、詳細な説明を省略する。
なお、本例において、文書管理サーバ21については、汎用的なコンピュータの代わりに、通信ネットワーク129を介してアクセス可能なネットワークストレージデバイスを用いてもよい。ネットワークストレージデバイスとしては、例えば、NAS(Network Attached Storage)及びSAN(Storage Area Network)などがある。
なお、本例の履歴管理サーバ11において、ログDB24を、外部I/F118に接続された外部ストレージデバイス132に格納した例で説明している。しかし、外部ストレージデバイス132としては、通信ネットワーク129を介してアクセス可能な、NAS及びSANなどのネットワークストレージデバイスを用いてもよい。また、ログDB24を単なる外部ストレージデバイスに格納する代わりに、文書DB22と同様に、データベースサーバなどのサーバコンピュータ内に格納してもよい。
出力装置12は、出力部12Aと出力制御部12Bとを備えている。出力部12Aは、印刷処理及びFAX処理を実行する。出力部12Aは、文書17を出力する際に、文書17に基づいて画像形式のデータを生成する処理を実行する。出力装置12は、通信ネットワーク129を介して履歴管理サーバ11、文書管理サーバ21、及び端末装置19と通信可能に接続されている。出力制御部12Bは、操作パネル及び端末装置19から操作者が入力する、出力処理の実行指示を受け付ける。出力制御部12Bは、実行指示の内容に基づいて、指定された文書17の出力処理を実行するように、出力部12Aを制御する。また、出力制御部12Bは、出力部12Aが出力処理を実行した際に第1ログ23を履歴管理サーバ11に送信する。
図3に一例として示すように、履歴管理サーバ11において、CPU120は、AP130の1つである、履歴管理プログラムを実行すると、ログ取得部31、リンク探索部32、第1記録部33、通知取得部34、文書取得部36、再現部37、及び第2記録部38として機能する。
ログ取得部31は、出力装置12から送信される第1ログ23を受信することにより、第1ログ23を取得する。第1ログ23には、イメージログの他に、基本情報及び出力設定情報が含まれる。
基本情報には、出力処理の対象となった文書17のファイル名、端末装置19を使用する操作者の操作者ID、及び出力日時などが含まれる。文書17のファイル名は、文書の識別情報(文書ID)の一例であり、操作者IDは、端末装置19を使用するユーザの識別情報の一例である。出力日時は、出力処理の処理日時の一例である。
出力設定情報は、出力装置12において、文書17の出力処理の実行に際して設定された出力処理の設定内容を表す情報の一例である。出力設定情報には、例えば、文書17の送信元、文書17内のうち出力処理の対象となったページの指定、カラー印刷かモノクロ印刷かの色指定、出力解像度、用紙サイズ、用紙の縦横の向き、及び部数などが含まれる。この他、出力設定情報には、文書17内の複数ページを1枚の用紙にまとめて印刷するか否かの指定等が含まれる。
ログ取得部31は、取得した第1ログ23を、リンク探索部32と第1記録部33に送信する。第1記録部33は、第1ログ23に基づいて第2ログ26を生成して、生成した第2ログ26をログDB24に格納する。具体的には、第1記録部33は、第1ログ23に含まれる情報に基づいて、情報の追加及び削除等の編集を行って、第2ログ26を生成する。第2ログ26には、第1ログ23内の基本情報及び出力設定情報が含まれる。
また、第2ログ26には、例えば、第1ログ23には含まれていない、OCR(Optical Character Reader)テキストとリンクが追加される。OCRテキストは、第1ログ23内のイメージログに対してOCR処理を施すことにより生成される、文書17の内容を表す文字情報である。
リンクは、出力処理の対象となった文書17の文書DB22内における格納先情報である。第1記録部33は、リンク探索部32からリンクを取得する。第1記録部33は、第1ログ23に含まれるイメージログの代わりに、取得したリンクを第2ログ26に追加する。
図4に示すように、リンク探索部32は、例えば、第1ログ23に含まれる基本情報に基づいて、文書17のリンクを探索する。第1ログ23の基本情報には、出力日時、文書17のファイル名、文書17の送信元、及び操作者IDが含まれる。
図4に示すように、出力処理の対象となる文書17が、文書管理サーバ21から端末装置19を経由して出力装置12に入力される場合がある。このような場合には、出力装置12は、直接的には、端末装置19から文書17を受信する。そうすると、出力装置12から見ると、文書17の送信元は端末装置19となる。その場合、第1ログ23内の送信元の情報は、例えば「http:/pc11.co.jp/file1」といったURL(Uniform Resource Locator)で示される。このURLは、ファイル名が「file1」の文書17が、「pc11」という端末IDの端末装置19から送信されていることを示している。より詳細には、URLには、文書DB22内における、文書17の格納先を示すディレクトリ名及びフォルダ名などが含まれるが、便宜上省略する。
本例において、文書17の本来の格納先は、文書管理サーバ21である。そのため、出力装置12において文書17が出力される場合は、その出力日時以前であって、出力日時に近い時間帯に文書管理サーバ21から文書17が配信されていると考えられる。そこで、文書17の本来の格納先を示すリンクの探索に際して、リンク探索部32は、まず、文書管理サーバ21から配信履歴41を取得する。配信履歴41には、文書管理サーバ21が実行した配信処理毎の履歴を示すレコードが記録されている。各レコードには、配信日時、ファイル名、操作者ID及び格納先情報が記録されている。操作者IDは、端末装置19から文書管理サーバ21に対して文書17の配信指示をした操作者のIDである。格納先情報は、文書管理サーバ21内の文書17のリンクであり、URLで表される。
リンク探索部32は、取得した配信履歴41と、第1ログ23内の出力日時、ファイル名、及び操作者IDとを照合して、配信履歴41内のどのレコードが、第1ログ23内のファイル名に対応するレコードかを特定する。例えば、リンク探索部32は、配信履歴41において、第1ログ23内の操作者ID及びファイル名と一致するレコードであって、かつ、出力日時以前で、出力日時と配信日時が近いという条件に合致するレコードを探す。こうした条件に合致するレコードは、第1ログ23内の文書17のファイル名に対応するレコードである可能性が高い。
リンク探索部32は、このような照合処理を通じて、配信履歴41内から、第1ログ23のファイル名に対応するレコードを特定する。図4に示す例では、配信履歴41内に、「file1」というファイル名と、「yamamoto」という操作者IDとが一致するレコードがある。このレコードの配信日時は「2018/05/21/11:32」であって、第1ログ23の出力日時「2018/05/21/11:40」以前で、出力日時と配信日時の時間帯も近い。
リンク探索部32は、配信履歴41内で特定したレコードに記録されているURLを、第1ログ23に対応する文書17の本来の格納先を表すリンクとして読み出す。本例において、URLは、「http//filserver.co.jp/file1」であり、文書17の格納先が、端末装置19ではなく、文書管理サーバ21を示す「fileserver」となっている。リンク探索部32は、こうした手順で、第1ログ23に対応する文書17の本来の格納先を表すリンクを探索する。リンク探索部32は、探索したリンクを、第1記録部33に送信する。
第1記録部33は、第1ログ23に含まれる情報を読み出し、読み出した情報からイメージログを削除する。その代わりに、読み出した情報に探索したリンクを追加する。また、第1記録部33は、イメージログから生成したOCRテキストも追加する。第1記録部33は、このような第1ログ23に基づく情報編集を行って、第2ログ26を生成し、生成した第2ログ26をログDB24に記録する。このように、第1記録部33は、出力処理の履歴の一例である第2ログ26として、記憶部の一例であるログDB24に記録する。第2ログ26には、出力装置12において、出力処理の実行に際して設定された出力処理の設定内容の一例である出力設定情報と、文書17が格納されている格納装置の一例である文書管理サーバ21の格納先を表す格納先情報の一例であるリンクとが含まれている。
履歴管理サーバ11は、イメージログの代わりに、第2ログ26内のリンクを使用することによって、文書DB22内の文書17を参照することで、必要に応じて、出力処理の対象となった文書17を取得する。
図3において、通知取得部34は、文書管理サーバ21から文書操作の通知を取得する。文書操作の通知は、文書管理サーバ21から履歴管理サーバ11に対して送信される。文書操作の通知は、端末装置19から文書管理サーバ21に入力される、文書17に対する操作指示のうち予め設定された操作指示が入力されたことを表す通知であり、その旨を履歴管理サーバ11に知らせる通知である。予め設定された操作指示には、例えば、文書17に対する削除指示、更新指示、又は移動指示が含まれる。文書17の削除指示、更新指示、又は移動指示などの操作指示は、その操作が行われた結果、リンクによって文書17を参照することが不能になる操作指示である。文書操作の通知には、操作指示の対象となった文書17のファイル名が含まれている。通知取得部34は、第1取得部の一例である。
通知取得部34は、文書操作の通知を取得すると、文書操作の通知から文書17のファイル名を読み出す。通知取得部34は、ログDB24内の第2ログ26を検索して、通知されたファイル名を含む第2ログ26があるかを調べる。つまり、通知取得部34は、文書操作の通知を受けた場合に、通知されたファイル名の文書17が、過去に出力処理の対象となった文書17か否かを調べる。
通知取得部34は、通知されたファイル名を含む第2ログ26が見つからない場合は、通知されたファイル名の文書17が過去に出力処理の対象となっていないと判定する。この場合は、通知取得部34は、何も処理をしない。
一方、通知されたファイル名を含む第2ログ26が見つかった場合は、通知取得部34は、通知されたファイル名の文書17が過去に出力処理の対象となっていると判定する。この場合は、通知取得部34は、第2ログ26に記録されているリンクを読み出して、そのリンクを指定して、文書取得部36に対して、文書17を取得すべき旨の文書取得指示を送信する。
文書取得部36は、文書取得指示で指定されたリンクを使用して、文書管理サーバ21にアクセスして、文書17を取得する。文書取得部36は、取得した文書17を再現部37に送信する。文書取得部36は、文書操作の通知を取得した場合に、文書17に対する操作指示に応じた処理が文書管理サーバ21において実行される前に操作指示の対象となった文書17を文書管理サーバ21から取得する第2取得部の一例である。
再現部37は、文書取得部36によって取得された文書17と、第2ログ26から読み出した出力設定情報とに基づいて、イメージログを再現する。
第2記録部38は、再現部37によって再現されたイメージログを、第2ログ26として記録する。
以下、上記実施形態に係る履歴管理サーバ11の作用について、図5に示すフローチャート及び図6から図10に示す処理例を参照しながら説明する。履歴管理サーバ11が起動すると、履歴管理が開始される。履歴管理が開始されると、履歴管理サーバ11は、ステップS1001に示すように、出力装置12から送信される、文書17の出力処理の第1ログ23を待機する。出力装置12において、印刷又はFAXといった出力処理が実行されると、出力装置12から履歴管理サーバ11に対して出力処理の第1ログ23が送信される。履歴管理サーバ11において、ログ取得部31を通じて第1ログ23を受信すると(ステップS1001でY)、ログ取得部31は、第1記録部33とリンク探索部32に第1ログ23を送信する。
一方、ステップS1001において、第1ログ23の受信が無い場合は(ステップS1001でN)、CPU120は、ステップS1009に進み、終了条件を満足したかを判定する。終了条件を満足した場合は(ステップS1009でY)は、履歴管理サーバ11の稼働が終了する。終了条件を満足しない場合(ステップS1009でN)は、ログ取得部31は、第1ログ23の受信待機を継続する。ここで、終了条件とは、例えば、履歴管理サーバ11に異常が生じて緊急停止する必要性が生じること、履歴管理サーバ11を停止する操作指示が入力されたことなどである。
ステップS1002において、リンク探索部32は、図4に示したように、第1ログ23の基本情報と文書管理サーバ21から取得する配信履歴41とを照合することにより、文書17の本来の格納先を示すリンクを探索する。リンク探索部32は、探索したリンクを第1記録部33に送信する。
なお、出力装置12から受信する第1ログ23において、文書17の送信元として記録されているURLが、端末装置19ではなく、文書17の本来の格納先である文書管理サーバ21を示している場合もある。その場合は、リンク探索部32は、リンクの探索処理をすることなく、第1ログ23に記録されているURLをそのまま文書17のリンクと判定してもよい。また、この判定を、リンク探索部32に代えて、第1記録部33が行ってもよい。
ステップS1003において、第1記録部33は、第1ログ23に含まれる情報を編集して、イメージログの代わりにリンクを追加した第2ログ26を生成する。具体的には、第1記録部33は、第1ログ23に含まれる基本情報、出力設定情報、及びイメージログの中から、基本情報と出力設定情報を第2ログ26の情報として利用し、イメージログは削除する。その一方で、第1記録部33は、リンク探索部32によって探索されたリンクを、第2ログ26に追加する。また、第1記録部33は、イメージログに基づいてOCRテキストを生成し、生成したOCRテキストを第2ログ26に追加する。第1記録部33は、生成した第2ログ26をログDB24に記録する。
図6に示す例は、文書IDが「D1」、「D2」及び「D3」の各文書17の第2ログ26の例示である。図6において、「1-1」の第2ログ26が「D1」に対応し、「2-1」の第2ログ26が「D2」に対応し、「3-1」の第2ログ26が「D3」に対応する。各第2ログ26には、基本情報に加えて、出力設定情報、OCRテキスト、及びリンクが含まれている。なお、図6において、各第2ログ26内に基本情報は含まれているが、便宜上、基本情報の表示を省略している。
このように、「D1」から「D3」の各文書17について、出力装置12において出力処理が実行されると、履歴管理サーバ11において、「1-1」から「3-1」の各第2ログ26が生成されて、ログDB24に記録される。
図6に示すとおり、原則として、各第2ログ26には、イメージログが含まれない。イメージログは、テキストデータと比較してデータサイズが大きい。第2ログ26にイメージログが記録されないため、イメージログが記録される場合と比較して、ログDB24内に蓄積されるデータ量が削減される。
また、図7に示すように、第2ログ26は、ファイル名が同一の文書17に対して出力処理が複数回実行された場合は、出力処理毎に記録される。図7の例は、「D1」の1つの文書17に対して、3回の印刷等の出力処理が実行された場合の例である。3回の各出力処理に対応する第2ログ26は、それぞれ「ログ1-1」、「ログ1-2」及び「ログ1-3」で示される。同一の文書17の出力処理の第2ログ26であっても、出力設定情報が異なる場合もある。また、同一の文書17の出力処理の第2ログ26であっても、出力処理の対象となるページが異なれば、当然ながらOCRテキストは異なる。リンクについては、文書DB22内において、文書17の削除、更新、又は移動などの操作が行われない限り、文書17が同じであれば、第2ログ26内のリンクも同じである。
図5に戻って、ステップS1003において第2ログ26が記録された後、履歴管理サーバ11は、ステップS1004に進み、文書管理サーバ21からの文書操作の通知を待機する。文書操作の通知が受信されない場合は、CPU120は、ステップS1010において、終了条件を満足するかを判定する。判定結果が肯定された場合(ステップS1010でY)、履歴管理サーバ11の稼働が終了する。判定結果が否定された場合(ステップS1010でN)は、ステップS1004に戻って、文書操作の通知の受信待機を継続する。
文書管理サーバ21は、削除、更新、又は移動などの文書17に対する予め設定された操作指示が入力された場合には、操作指示の対象の文書17のファイル名を付した文書操作の通知を、履歴管理サーバ11に送信する。ステップS1004において、履歴管理サーバ11において文書操作の通知を受信した場合は、通知取得部34が、受信した通知を取得する。通知取得部34は、文書操作の通知を取得すると、ステップS1005に進む。
ステップS1005において、通知取得部34は、取得した文書操作の通知から操作指示の対象の文書17のファイル名を読み出す。そして、通知取得部34は、通知されたファイル名を検索キーとして、ログDB24内から、操作指示の対象の文書17に対応する第2ログ26を検索する。ログDB24内に、操作指示の対象の文書17の第2ログ26が存在しない場合(ステップS1005でN)は、ステップS1010に進む。
このように、文書操作の通知は、文書17の出力処理が実行された後に、文書管理サーバ21に対して入力される操作指示であって、文書17に対する操作が行われた結果、リンクによって文書17を参照することが不能になる操作指示が入力されたことを表す通知の一例である。
操作指示の対象の文書17に対応する第2ログ26が検索された場合(ステップS1005でY)は、通知取得部34は、検索した第2ログ26から文書17のリンクを読み出す。通知取得部34は、文書取得部36に対して、読み出したリンクを付した文書取得指示を送信する。
ステップS1006において、文書取得部36は、文書取得指示を受信すると、文書管理サーバ21にアクセスして、リンク先の文書17を取得する。この場合において、文書取得部36は、文書管理サーバ21に対して入力された文書17の操作指示に応じた処理が文書管理サーバ21において実行される前に、操作指示の対象となった文書17を文書管理サーバ21から取得する。例えば、文書17の操作指示が削除指示である場合、文書取得部36は、文書管理サーバ21において文書17の削除処理が実行される前に、操作指示の対象となった文書17を取得する。
このように、操作指示が入力された後、文書管理サーバ21において操作指示に応じた処理が実行される前のタイミングで、履歴管理サーバ11が文書17を取得するために、履歴管理システム10においては、一例として、次のような手順がとられる。まず、文書管理サーバ21は、文書操作の通知を履歴管理サーバ11に送信した後、文書操作の通知に対する、履歴管理サーバ11からの応答を、予め設定された時間待機する。そして、待機中は、文書管理サーバ21は、操作指示に応じた処理(例えば、削除指示に応じた削除処理)を開始しない。待機時間は、履歴管理サーバ11が、文書操作の通知に基づく文書取得指示を、文書管理サーバ21に送信するために必要な処理時間を考慮して、予め設定される。
これにより、文書取得部36は、文書操作の通知で指定された操作指示の対象の文書17を取得する。文書取得部36は、取得した文書17を再現部37に送信する。
ステップS1007において、再現部37は、取得した文書17に対応する第2ログ26から出力設定情報を読み出す。そして、再現部37は、取得した文書17と出力設定情報とに基づいて、イメージログを再現する。再現部37は、再現したイメージログを第2記録部38に送信する。
ステップS1008において、第2記録部38は、リンクの代わりに、第2ログ26に、再現したイメージログを追加する。
図8に示す処理例は、文書管理サーバ21に対して、操作指示として削除指示が入力された場合を示す。図8において、「D1」の文書17に対する削除指示が入力された場合は、履歴管理サーバ11は、文書管理サーバ21からの文書操作の通知を取得する。その通知に基づいて、履歴管理サーバ11は、「D1」の文書17に対応する「1-1」の第2ログ26をログDB24内から検索する。履歴管理サーバ11は、「1-1」の第2ログ26に記録された「1-1」のリンクに基づいて、文書管理サーバ21から「D1」の文書17を取得する。そして、履歴管理サーバ11は、取得した「D1」の文書17と「1-1」の出力設定情報とに基づいて、「1-1」のイメージログを再現する。そして、履歴管理サーバ11は、再現した「1-1」のイメージログを追加した「1-1」の第2ログ26をログDB24に記録する。
図8に示す処理例において、文書管理サーバ21において「D1」の文書17が存在する間は、「1-1」の第2ログ26内の「1-1」のリンクは有効であり、そのリンクに基づいて「D1」の文書17の参照が可能である。そのため、例えば、機密文書が不正に印刷されて外部に漏洩するなど、出力装置12の出力処理を通じて機密管理上の問題が生じた場合には、「1-1」のリンクに基づいて「D1」の文書17が参照される。これにより、参照先の「D1」の文書17が、機密文書の漏洩行為が行われたか否かの証拠として利用される。
図8において、一転鎖線で示すように、文書管理サーバ21において「D1」の文書17が削除されると、「1-1」のリンクによっては「D1」の文書17の参照が不能となる。この場合は、リンクの代わりに、再現された「1-1」のイメージログが第2ログ26に追加される。リンクの代わりにイメージログが追加された後は、「1-1」のイメージログが、機密文書の漏洩行為が行われたか否かの証拠として利用される。
図9に示す処理例は、文書管理サーバ21に対して、操作指示として移動指示が入力された場合を示す。図9に示す例においても、図8に示す例と同様に、文書管理サーバ21において「D1」の文書17が存在する間は、「1-1」の第2ログ26内の「1-1」のリンクは有効であり、「1-1」のリンクに基づいて文書17の参照が可能である。しかし、文書管理サーバ21において「D1」の文書17が移動されると、文書17の格納先が、移動前の「格納先1」から、移動後の「格納先2」に変更される。「1-1」のリンクは、移動前の「格納先1」を示すものであるので、「1-1」のリンクによっては、「D1」の文書17が参照不能となる。
そのため、図9に示す処理例においても、「D1」の文書17に対する移動指示が入力された場合は、履歴管理サーバ11は、図8に示す処理例と同様の手順で、「1-1」のイメージログを再現する。履歴管理サーバ11は、再現した「1-1」のイメージログを追加した「1-1」の第2ログ26をログDB24に記録する。
図10に示す処理例は、文書管理サーバ21に対して、操作指示として更新指示が入力された場合を示す。図10に示す例においても、図8及び図9に示す例と同様に、文書管理サーバ21において「D1」の文書17が存在する間は、「1-1」の第2ログ26内のリンクは有効であり、リンクに基づいて文書17の参照が可能である。
しかし、文書管理サーバ21において「D1」の文書17の内容が更新されると、更新前の文書17の格納先が変更される場合がある。文書17の更新に伴う格納先の変更は、例えば、文書17の内容が更新された場合に、更新前の文書17をバックアップとして保存しておくために行われる。
図10に示す例では、「D1」の文書17の内容が更新された場合において、便宜上、更新前の文書17を「D1-1」、更新後の文書17を「D1-2」として示す。文書管理サーバ21は、「D1」の文書17の内容が更新された場合、更新後の「D1-2」の文書17を、更新指示の入力前に「D1」の文書17が格納されていた格納先と同じ格納先である「格納先1-1」に格納する。一方、文書管理サーバ21は、バックアップ用の更新前の「D1-1」の文書17については、格納先を、更新指示が入力される前の「D1」の文書17の「格納先1-1」から、別の格納先である「格納先1-2」に変更する。
「1-1」の第2ログ26は、更新前の「D1-1」の文書17についての出力処理の履歴であるので、「1-1」の第2ログ26のリンクは、文書17が更新された場合でも、更新前の「D1-1」の格納先が示されるべきである。しかし、図10に示す例のように、文書17の更新によって、更新前の「D1-1」の文書17の格納先が「格納先1-2」に変更されてしまうと、リンクによって更新前の「D1-1」の文書17の参照が不能になる。
そのため、図10に示す処理例においても、「D1」の文書17に対する移動指示が入力された場合は、履歴管理サーバ11は、図8に示す処理例と同様の手順で、「1-1」のイメージログを再現する。履歴管理サーバ11は、再現した「1-1」のイメージログを追加した「1-1」の第2ログ26をログDB24に記録する。
図5において、ステップS1008の後、CPU120は、ステップS1009に進み、履歴管理サーバ11の稼働が終了するまで(ステップS1009でY)の間、上述の処理手順を繰り返す。
このように、上記実施形態に係る履歴管理サーバ11は、第1に、出力処理の対象となった文書17に対するリンクを第2ログ26として記録する。第2に、リンクによって、出力処理の対象となった文書17を参照することが不能になる場合に、イメージログを再現して、リンクの代わりに再現したイメージログを第2ログ26として記録する。履歴管理サーバ11においては、すべての出力処理の履歴としてイメージログを記録する場合と比較して、ログDB24に蓄積される第2ログ26のデータ量が削減される。また、リンクによって文書17の参照が不能になる場合には、第2ログ26としてイメージログが再現されるため、出力処理の履歴管理の網羅性は損なわれない。
また、上記実施形態に係る履歴管理サーバ11では、第1記録部33が、出力処理の履歴の一例である第2ログ26を記録する際に、リンク探索部32が、格納先情報の一例であるリンクを探索する。そのため、履歴管理サーバ11は、出力装置12から送信される第1ログ23において、文書17の格納先を示す格納先情報が含まれていない場合でも、文書17の正確な格納先情報を記録できる可能性が高い。
また、上記例では、第1ログ23に含まれる出力設定情報には、文書17の識別情報の一例であるファイル名と、端末装置19を使用するユーザの識別情報の一例である操作者IDと、出力処理の処理日時の一例である出力日時とが含まれている。リンク探索部32は、出力設定情報と文書管理サーバ21の配信履歴41とを照合して、文書管理サーバ21の識別情報を含む格納先情報の一例であるリンクを探索する。これにより、履歴管理サーバ11においては、文書管理サーバ21と出力装置12の間に端末装置19が介在している場合でも、文書17の本来の格納先である文書管理サーバ21にアクセスして文書17を参照するためのリンクが得られる。このため、文書管理サーバ21と出力装置12の間に端末装置19が介在している場合でも、イメージログを記録する必要がない。イメージログを記録する場合と比較して、第2ログ26のデータ量が削減される。
なお、上記例において、第1ログ23内に文書17の格納先を示す情報が無く、かつ、リンク探索部32によってもリンクを探索できない場合は、第2ログにリンクを記録することができない。この場合には、第1ログ23を受信した段階から、イメージログを第2ログに記録してもよい。
なお、上記例において、文書管理サーバ21は、文書DB22内の文書17に対して、削除指示、更新指示、又は移動指示などの操作指示が入力された場合には、操作指示の対象となった文書17が過去に出力処理の対象となったか否かに関わらず、文書操作の通知を履歴管理サーバ11に対して送信している。そのため、通知取得部34が、通知されたファイル名に基づいて第2ログ26を検索することにより、操作指示の対象となった文書17が過去に出力処理の対象となっているかを調べている。
こうした処理を通知取得部34が行う代わりに、文書管理サーバ21が行ってもよい。すなわち、文書管理サーバ21に対して、文書17に対する操作指示が入力された場合に、文書管理サーバ21が、履歴管理サーバ11のログDB24にアクセスして、操作指示の対象となった文書17が、過去に出力処理の対象となった文書17かどうかを調べる。文書管理サーバ21は、操作指示の対象となった文書17が、過去に出力処理の対象となった文書17と判定した場合のみ、文書操作の通知を履歴管理サーバ11に送信する。
なお、上記例において、文書管理サーバ21に対して文書17に対する操作指示が入力された場合の文書操作の通知の方式について、履歴管理サーバ11からの問い合わせをすることなく、文書管理サーバ21から履歴管理サーバ11に対して通知が送信されるイベント通知方式を例に説明した。こうした方法に代えて、履歴管理サーバ11から文書管理サーバ21に対して定期的に問い合わせを行うポーリング方式で、履歴管理サーバ11が文書操作の通知を取得してもよい。もちろん、文書17に対する操作指示の入力タイミングは不定期であるため、イベント通知方式の方が好ましい。
また、実施形態に係る履歴管理サーバ11における第2ログ26の記録方法については、種々の変形が可能である。図11及び図12を用いて第1変形例を説明する。第1変形例は、図7に示したように、同一の文書17に対する複数の第2ログ26がある場合を前提とする例である。
図7で示したように、文書17の識別情報(例えばファイル名)が同一の文書17について複数の出力処理が実行された場合には、複数の第2ログ26がそれぞれについて記録される。図7の例では、同一の「D1」の文書17について、「1-1」、「1-2」及び「1-3」の3つの第2ログ26が記録されている。そして、各第2ログ26には、「1-1」、「1-2」及び「1-3の各リンクがそれぞれ記録されている。これらのリンクは、同一の「D1」の文書17の格納先を示しているため、同一である。
図11に示すように、図7に示す3つの第2ログ26に対応する「D1」の文書17が、文書管理サーバ21において削除される場合には、各第2ログ26内の各リンクによる文書17の参照が不能になる。このようにリンクによる文書17の参照が不能になる場合には、図5に示すフローチャートで説明したとおり、「1-1」、「1-2」及び「1-3」の各第2ログ26のそれぞれの出力設定情報に基づいて、イメージログが再現される。その結果、図11に示すように、3つの第2ログ26に対して、「1-1」、「1-2」及び「1-3」のイメージログがそれぞれ記録される。
しかし、出力設定情報が類似している場合は、再現されるイメージログも類似する。そこで、例えば、履歴管理サーバ11は、複数の第2ログ26内のイメージログが類似する場合において、1つの第2ログ26にのみイメージログを追加し、かつ、そのイメージログを他の第2ログ26から参照されるようにする。そうすれば、すべての第2ログ26にイメージログを追加する場合と比較して、ログDB24のデータ量は削減される。
図12に示すように、履歴管理サーバ11は、同一の文書17に対応する複数の第2ログ26がある場合において、各第2ログ26についてイメージログを再現する場合には、再現されるイメージログの類似度に応じて、第2ログ26毎にイメージログを再現する必要性を判定する。こうした判定は、例えば、再現部37が行う。再現部37は、出力設定情報の類似度を判定することにより、出力設定情報に基づいて再現されるイメージログの類似度を間接的に判定する。
図12に示す例では、3つの第2ログ26のうち、「1-1」の第2ログ26の出力設定情報(「1-1」)と、「1-2」の第2ログ26の出力設定情報(「1-2」)が類似している。そのため、「1-1」の第2ログ26に対してのみ、「1-1」のイメージログが再現されて、再現されたイメージログが「1-1」の第2ログ26に追加される。「1-2」の第2ログ26に対しては、「1-1」のイメージログを参照するためのリンクであるイメージリンク「IMG1-1」が追加される。「1-2」の第2ログ26に対しては、イメージログは追加されない。こうすれば、類似しているイメージログの重複記録が防止されるため、すべての第2ログ26にイメージログを追加する場合と比較して、ログDB24のデータ量が削減される。
一方、図12に示す例においては、「1-1」の第2ログ26の出力設定情報(「1-1」)と「1-3」の第2ログ26の出力設定情報(「1-3」)とは非類似である。そのため、「1-1」の第2ログ26と「1-3」の第2ログ26のそれぞれに対してイメージログが再現される。「1-1」の第2ログ26には、「1-1」のイメージログが追加されて、「1-3」の第2ログ26には、「1-3」のイメージログが追加される。
図13は、図12に示す例におけるイメージログの類似判定の処理手順の一例を示すフローチャートである。再現部37は、イメージログの類似判定に際して、ステップS2001において、同一の文書17について複数の第2ログ26があるかを判定する。第2ログ26が1つしかなければ(ステップS2001でN)、再現部37は類似判定をせずに、処理を終了する。
一方、複数の第2ログ26がある場合(ステップS2001でY)は、再現部37は、ステップS2002に進み、複数の第2ログ26について、2つ1組で出力設定情報の類似度を算出する。例えば、再現部37は、図12に示す例のように、「1-1」と「1-2」の1組の第2ログ26のそれぞれの出力設定情報を比較して、比較する2つの出力設定情報の類似度を算出する。次に、「1-1」と「1-3」の1組の第2ログ26のそれぞれの出力設定情報を比較して、比較する2つの出力設定情報の類似度を算出する。
類似度の算出は、例えば、出力処理の対象となるページが一致していることを前提として、解像度などの比較項目毎に、例えば、完全一致の場合の評価値を基準に、どの程度の相違がある場合に、評価値をどの程度減点するかを数値化しておく。そして、比較項目毎の評価値を加算した合計を類似度として算出する。イメージログは、機密文書の漏洩行為が行われたか否かに利用される証拠であるから、出力処理の対象となった文書17のイメージと完全一致していることが好ましい。イメージログの類似度の判定において、どの程度の相違までを類似範囲として許容するかについては、証拠としての価値を考慮して適宜設定される。
次に、ステップS2003において、算出した1組の類似度を予め設定された基準と比較する。ステップS2004において、類似度が予め設定された基準以上の場合(ステップS2004でY)は、再現部37は、ステップS2005に進む。
ステップS2005において、再現部37は、1組の第2ログ26のうち、1つのイメージログのみを再現し、1つの第2ログ26にのみ再現したイメージログを追加する。
再現部37は、もう1つの第2ログ26にはイメージログを追加しない。
図12の例に示したように、「1-1」と「1-2」の1組の第2ログ26の出力設定情報の類似度が基準以上の場合はステップS2005に進み、「1-1」の第1ログ26にのみイメージログが追加される。
また、類似度が基準未満の場合(ステップS2004でN)は、再現部37は、非類似と判定して、ステップS2006に進む。ステップ2006において、再現部37は、1組の第2ログ26のそれぞれのイメージログを再現し、両方の第2ログ26に再現したイメージログを追加する。
図12の例に示したように、「1-1」と「1-3」の1組の第2ログ26の出力設定情報が非類似の場合は、ステップS2006に進み、「1-1」と「1-3」の両方の第2ログ26にイメージログが追加される。
再現部37は、類似度の比較が全組分終了するまで(ステップS2007でY)、以上の処理を繰り返す。なお、本例において、イメージログの類似度を、出力設定情報の類似度に基づいて間接的に判定する例で説明したが、出力設定情報に基づいてイメージログを再現した上で、再現したイメージログの類似度を直接判定してもよい。また、類似度の評価値を数値化する例で説明したが、低、中、高といった定性的な評価値でもよい。この場合には、例えば、比較項目のうち、1つでも低がある場合は、非類似と判定する、というように、類似又は非類似の比較項目の数で判定する。
このように、ファイル名などの文書17の識別情報が同一の文書17について複数の出力処理が実行され、かつ、複数の出力処理の履歴の一例である複数の第2ログ26のそれぞれに格納先情報の一例であるリンクが記録される場合がある。この場合において、格納装置の一例である文書管理サーバ21において、削除指示などの文書17に対する操作指示が入力された場合は、再現部37は、以下の処理を実行する。
まず、再現部37は、複数の第2ログ26に含まれる、各出力処理の設定内容の一例である出力設定情報に基づいて再現部37によって再現される複数の画像形式のデータの一例である複数のイメージログの類似度が予め設定された基準以上の場合は、1つの第2ログ26にのみ、イメージログを追加し、残りの第2ログ26には、イメージログを追加しない。一方、再現部37は、イメージログの類似度が基準未満の場合は、複数の第2ログ26のそれぞれに、イメージログを追加する。
また、上述した図10に示した処理例の変形例として、図14に示すように処理してもよい。図10においては、文書17が更新された場合には、リンクによる文書17の参照が不能になるため、イメージログを再現して、リンクの代わりに再現したイメージログを追加している。これに対して、図14に示す処理例では、イメージログを再現する代わりにリンクを変更して対応する。
図14に示すように、文書管理サーバ21に対して、「D1」の文書17に対する更新指示が入力された場合において、文書管理サーバ21は、文書操作の通知として、更新通知を履歴管理サーバ11に送信する。文書管理サーバ21は、更新通知を送信する際に、更新通知に対して、更新前の「D1-1」の文書17の変更された「格納先1-2」の情報を追加する。
通知取得部34は、更新通知を取得した場合に、更新通知から変更された「格納先1-2」を読み出して、「1-1」の第2ログ26の「1-1」のリンクを、「格納先1-2」を示す「1-2」の新たなリンクに変更する。これにより、第2ログ26のリンクに基づいて、更新前の「D1-1」の文書17が参照される。
第1記録部33は、第2ログ26に含まれる「1-1」のリンクを、通知取得部34が取得した、更新前の「D1-1」の文書17の新たな格納先情報の一例である「1-2」のリンクに変更する。かつ、第2ログ26内のリンクの変更が行われた場合は、第2記録部38は、第2ログ26に、更新前の文書17のイメージログを追加しない。このように、文書17の更新が行われた場合には、リンクを更新前の文書17のリンクに変更することで、イメージログが省略される。このため、イメージログを追加する場合に比べて、ログDB24内のデータ量が削減される。
このように、文書管理サーバ21内の文書17が更新され、かつ、文書管理サーバ21内において更新前の文書17と更新後の文書17の両方が格納される場合において、通知取得部34は、文書管理サーバ21から更新前の文書17の格納先情報の一例であるリンクを取得する第3取得部の一例である。
以上、実施形態としては、履歴管理装置の一例である履歴管理サーバ11、履歴管理システムの一例である履歴管理システム10を説明した。また、AP130の一例として、履歴管理プログラムを説明した。実施形態としては、履歴管理プログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。記憶媒体としては、例えば、CD(Compact Disc)-ROM(Read-Only Memory)及びDVD(Digital Versatile Disc)-ROM等の光ディスク、若しくはUSBメモリ及びメモリカード等の半導体メモリがある。また、プログラムを、通信回線を介して外部装置から取得するようにしてもよい。
上記実施形態で説明した履歴管理装置、履歴管理システム、及び履歴管理プログラムの構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
また、上記実施形態で説明した処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
また、上記実施形態では、プログラムを実行することにより、実施形態に係る各種の処理部(第1記録部、第1取得部(通知取得部)、第2取得部(文書取得部)、再現部、及び第2記録部など)がCPUとソフトウェアの協働により実現される場合について説明したが、これに限らない。実施形態に係る各種の処理部の全部又は一部を、例えば、FPGA(Field-programmable Gate Array)などのプログラマブルロジックデバイス、及びASIC(Application Specific Integrated Circuit)などのハードウェアで実現してもよい。