(57)【要約】【課題】  同一文書および派生文書を一群の文書集合として管理すること。【解決手段】  本発明の文書管理システム１００は、文書の内容を識別する内容識別値を算出する算出手段４８と、文書に対する操作の開始および終了を検知して、該検知の時間、検知時の該文書の内容識別値、および該操作の行為者を識別するユーザ識別値を取得する取得手段４６と、操作の開始および該操作の終了を一つの組として、上記時間、内容識別値およびユーザ識別値を対応付けて登録する文書登録手段（５６，５８）と、文書登録手段を参照し、同一の内容識別値を含む組を統合して、複数の内容識別値が関連付けられた文書集合として登録する文書集合登録手段（６０，６２，６４，６６）とを含む。【選択図】図３
2009276862.tif 000002
【特許請求の範囲】
【請求項１】
文書管理システムであって、
文書の内容を識別する内容識別値を算出する算出手段と、
文書に対する操作の開始および終了を検知して、該検知の時間、検知時の該文書の前記内容識別値、および該操作の行為者を識別するユーザ識別値を取得する取得手段と、
操作の開始および該操作の終了を一つの組として、前記時間、前記内容識別値および前記ユーザ識別値を対応付けて登録する文書登録手段と、
前記文書登録手段を参照し、同一の内容識別値を含む組を統合して、複数の内容識別値が関連付けられた文書集合として登録する文書集合登録手段と
を含む文書管理システム。
【請求項２】
前記文書管理システムは、前記文書集合の構成の変更を検知して、該文書集合に関連するユーザ識別値に対応付けられた連絡先に宛てて、該文書集合の変更を告知する告知手段をさらに含む、請求項１に記載の文書管理システム。
【請求項３】
前記取得手段は、文書を処理するアプリケーションから、現在操作中の文書につき、その格納位置を取得し、操作が開始されたものとして記録された文書の格納位置と比較して、それらの相違から操作対象の文書が変更されたことを検知する、請求項１または２に記載の文書管理システム。
【請求項４】
前記取得手段は、前記操作対象の変更を検知して、前記操作が開始されたものとして記録された文書に対する操作の終了を記録し、前記現在操作中の文書に対する操作の開始を記録する、請求項３に記載の文書管理システム。
【請求項５】
ネットワークを介して文書管理を行なうサーバ装置と通信するクライアント装置であって、
文書の内容を識別する内容識別値を算出する算出手段と、
文書に対する操作の開始および終了を検知して、該検知の時間、検知時の該文書の前記内容識別値、および該操作の行為者を識別するユーザ識別値を取得する取得手段と、
操作の開始および該操作の終了を一つの組として、取得された前記時間、前記内容識別値および前記ユーザ識別値を対応付けて、前記サーバ装置に対し登録依頼する登録依頼手段と
を含むクライアント装置。
【請求項６】
前記取得手段は、文書を処理するアプリケーションから、現在操作中の文書につき、その格納位置を取得し、操作が開始されたものとして記録された文書の格納位置と比較して、それらの相違から操作対象の文書が変更されたことを検知する、請求項５に記載のクライアント装置。
【請求項７】
前記取得手段は、前記操作対象の変更を検知して、前記操作が開始されたものとして記録された文書に対する操作の終了を記録し、前記現在操作中の文書に対する操作の開始を記録する、請求項６に記載のクライアント装置。
【請求項８】
前記算出手段は、文書の内容データ、または文書の書誌情報および更新日時を含むメタデータのハッシュ値を前記内容識別値として算出する、請求項５〜７のいずれか１項に記載のクライアント装置。
【請求項９】
ネットワークを介してクライアント装置と通信する文書管理サーバ装置であって、
前記クライアント装置から登録依頼とともに受信した、文書に対する操作の開始および該操作の終了を一つの組とした、前記開始の時間、前記開始時の文書の内容を識別する内容識別値、前記終了の時間、前記終了時の前記内容識別値、および該操作の行為者を識別するユーザ識別値を、対応付けて登録する文書登録手段と、
前記文書登録手段を参照し、同一の内容識別値を含む組を統合して、複数の内容識別値が関連付けられた文書集合として登録する文書集合登録手段と
を含むサーバ装置。
【請求項１０】
前記サーバ装置は、前記文書集合の構成の変更を検知して、、該文書集合に関連するユーザ識別値に対応付けられた連絡先に宛てて、該文書集合の変更を告知する告知手段をさらに含む、請求項９に記載のサーバ装置。
【請求項１１】
前記告知手段は、前記文書集合につき、新たなユーザ識別値が関連付けられた場合に、該文書集合の変更を告知する、請求項１０に記載のサーバ装置。
【請求項１２】
前記ユーザ識別値に対応付けられた連絡先は、電子メールアドレスであり、前記告知手段は、該文書集合の変更を電子メール送信処理にて告知する、請求項１１に記載のサーバ装置。
【請求項１３】
ネットワークを介して接続するクライアント装置およびサーバ装置の間で実行される文書管理方法であって、
クライアント装置が、文書に対する操作の開始および終了を検知して、該検知の時間、検知時の該文書の内容を識別する内容識別値、該操作の行為者を識別するユーザ識別値を取得するステップと、
サーバ装置が、操作の開始および該操作の終了を一つの組として、前記時間、前記内容識別値および前記ユーザ識別値を対応付けて登録するステップと、
サーバ装置が、登録された同一の内容識別値を含む組を統合して、複数の内容識別値が関連付けられた文書集合として登録するステップと
を含む文書管理方法。
【請求項１４】
ネットワークを介して文書管理を行なうサーバ装置と通信するクライアント装置が実行する文書管理方法であって、クライアント装置が、
文書に対する操作の開始および終了を検知して、該検知の時間、検知時の該文書の内容を識別する内容識別値、および該操作の行為者を識別するユーザ識別値を取得するステップと、
操作の開始および該操作の終了を一つの組として、取得された前記時間、前記内容識別値および前記ユーザ識別値を対応付けて、前記サーバ装置に対して登録依頼するステップと
を実行する文書管理方法。
【請求項１５】
ネットワークを介してクライアント装置と通信するサーバ装置が実行する文書管理方法であって、サーバ装置が、
クライアント装置からの文書の登録依頼に応答して、該文書に対する操作の開始および該操作の終了を一つの組として、前記開始の時間、前記開始時の文書の内容を識別する内容識別値、前記終了の時間、前記終了時の前記内容識別値、および該操作の行為者を識別するユーザ識別値を対応付けて登録するステップと、
登録された同一の内容識別値を含む組を統合して、複数の内容識別値が関連付けられた文書集合として登録するステップと
を実行する文書管理方法。
【請求項１６】
クライアント装置を請求項５〜８のいずれか１項に記載の各手段として機能させるための装置実行可能なプログラム。
【請求項１７】
サーバ装置を請求項９〜１２のいずれか１項に記載の各手段として機能させるための装置実行可能なプログラム。
【請求項１８】
請求項１６または１７に記載のプログラムを装置読取可能に格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理技術に関し、より詳細には、同一文書および派生文書を一群の文書集合として管理するための文書管理システム、サーバ装置、クライアント装置、文書管理方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、情報通信技術の発達にともない、膨大な電子文書がネットワークを流通するようになっている。電子文書は、セキュリティやアクセシビリティの観点から、ネットワーク上のファイルサーバまたはデータベースに格納される場合もあるが、多くの電子文書は、パーソナル・コンピュータ（以下、ＰＣとして参照する。）のハードディスクなど、ローカル記憶領域にて管理されている。
【０００３】
電子文書の流通という点では、電子メールの添付機能などを利用して電子文書が当事者間で交換されることが多く、交換された電子文書は、送信元および受信先のローカル記憶領域において個別に管理されることとなる。また、上記ローカル領域に管理されている電子文書は、再度、電子メールにより別の宛先に送信され複製されたり、編集を加えられて別の文書が派生させられたりする。しかしながら、ローカル領域間で情報の共有は行われないため、例えば、ある利用者が作成した電子文書が、当該利用者の関知が及ばない範囲まで流通あるいは変更が加えられ、当該作成者が意図しない目的で利用される蓋然性もある。
【０００４】
このような問題に対処するために、文書の作成から流通までのすべてを管理する文書管理基盤を構築し、作成および流通する文書すべてを上記ファイルサーバまたはデータベース上で管理することも想定されるが、実現するためには、文書を作成および流通させるためのサービスすべてを管理しなければならないため、システムが複雑化し、実現が非常に困難であるといえる。
【０００５】
流通する電子文書の閲覧を制限する技術としては、例えばセキュアＰＤＦ（Portable Document Format）が開示されている（非特許文献１）。セキュアＰＤＦは、ＰＤＦファイルを閲覧または印刷するために、ネットワーク上に配置された認証サーバに閲覧や印刷の権限の確認を求める技術である。
【０００６】
同一文書が氾濫することに対処する技術として、例えば、特開２００６−２７７０３７号公報（特許文献１）を挙げることができる。特許文献１は、電子文書管理アプリケーション内に履歴管理ファイルを追加し、外部にエクスポートする電子文書に、文書を唯一特定できるＩＤを埋め込み、アーカイブされた電子文書を外部から文書管理アプリケーションにインポートしようとする場合、ＩＤを取り出し、履歴管理ファイルと照合することでファイルの同一性を判断する技術が開示されている。
【０００７】
また特開２００５−２３４６５５号公報（特許文献２）は、ファイルを過去に閲覧したユーザに更新情報をタイムリーに通知することを目的として、ファイルの属性情報をファイル毎に維持管理するファイル管理手段と、ファイルに対する閲覧を検知して閲覧したユーザの閲覧履歴をファイル毎に収集する閲覧履歴管理手段と、閲覧履歴管理手段にて管理されるユーザに対する変更通知のための通知先および通知手段をユーザ毎に記憶して管理する通知先管理手段と、ファイルに対する属性情報が更新された場合、該更新されたファイルを閲覧したユーザを上記閲覧履歴管理手段により特定し、閲覧促進の通知を通知先管理手段にて特定した通知先および通知方法に基づいて行う変更通知手段とを含むファイル配信管理装置を開示している。
【特許文献１】特開２００６−２７７０３７号公報
【特許文献２】特開２００５−２３４６５５号公報
【非特許文献１】”Ridoc Policy Base Pro”、［online］、２００７年１１月２６日、株式会社リコー、製品情報、ソフトウェア製品、Ridoc Policy Base Pro、［２００８年４月１４日検索］、インターネット〈URL;http://www.ricoh.co.jp/ridoc_ds/policybase/〉
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記非特許文献１に開示されるセキュアＰＤＦは、ＰＤＦデータに限定される技術であり、また文書の閲覧および印刷に特化した技術であるため、適用範囲の観点から充分なものではなかった。
【０００９】
上記特許文献１に開示された技術は、対象文書、対象文書の派生文書、および文書を一意に特定する情報などの文書のメタ情報をアーカイブとしてまとめ、それを文書管理アプリケーションにて管理することで、対象文書および派生文書を特定し、同一文書が氾濫してしまうことを防止しようとするものである。
【００１０】
しかしながら、上記特許文献１に開示された技術では、ファイルへのアクセスに文書管理アプリケーションが必須であるため、ユーザへの負担が大きく、また、文書を電子メールによって流通させるといった、電子文書の一般的な流通手段を利用することができるものではなく、充分なものではなかった。また、文書管理アプリケーションから一度外部にエクスポートされた文書が、再度インポートされた際のみに対応できるものであり、同一文書および派生文書の氾濫を防止するという観点からは充分とはいえなかった。
【００１１】
さらに上記特許文献２に開示された技術では、ファイルに対する属性情報が更新された際に、ダウンロードユーザリストに登録されファイルを閲覧したことのあるユーザに対して、閲覧を促すための更新通知を行おうというものであり、同一文書および派生文書の氾濫を防止しようとするものではない。また、ファイル配信管理装置にて管理されたファイルに対してのみ適用可能であり、ローカル領域に個別に管理される情報に対して適用できるというものでもない。
【００１２】
本発明は、上記問題点に鑑みてなされたものであり、個々の情報処理装置にてアクセス可能なファイル・システム上で利用される電子文書につき、同一文書および派生文書を一群の文書集合として管理し、文書の流通状態を容易に把握することを可能とする文書管理システム、サーバ装置、クライアント装置、文書管理方法、プログラムおよび記録媒体を提供することを目的としている。
【００１３】
また本発明は、文書の流通状態の変化を検知し、文書の流通状態を周知したり、文書の作成者の意図に反して同一文書や派生文書が氾濫してしまう蓋然性を好適に低減することを可能とする文書管理システム、サーバ装置、クライアント装置、文書管理方法、プログラムおよび記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明では、上記課題を解決するために、文書に対する操作の開始および該操作の終了を一つの組として、操作の開始の時間、操作開始時の文書の内容を識別する内容識別値、操作の終了の時間、終了時の文書の内容を識別する内容識別値、および該操作の行為者を識別するユーザ識別値を対応付けて登録する。さらに、同一の内容識別値を含む組を統合し、複数の内容識別値が関連付けられた文書集合を登録する。
【００１５】
上記構成により、文書に対する操作の前後における内容識別値が組として関連付けられ、さらに同一の内容識別値を含む組が統合されてゆくため、元文書から複製された同一文書、および元文書に編集が加えられ派生する派生文書が一群の文書集合として関連付けられ、さらに、該文書集合の文書に対する操作の行為者とも関連付けられる。したがって、ある文書につき、同一文書または派生文書に対し操作を行なったユーザを追跡することが可能となり、当該文書の流通状態が把握可能となる。
【００１６】
さらに本発明では、文書集合を構成する内容識別値の変更を検知して、該文書集合に関連するユーザ識別値に対応付けられた連絡先に宛てて、該文書集合の変更を告知することができる。これにより、当該文書集合に関連する利用者に対し、その流通状態を把握させることが可能となる。さらに本発明では、文書集合につき、新たなユーザ識別値が関連付けられた場合に、該文書集合の変更を告知することができる。これにより、文書に対し操作を行なった利用者を新たに検知することが可能となり、もって、文書の作成者の意図に反して同一文書や派生文書が氾濫してしまう蓋然性を好適に低減することも可能となる。また本発明では、ユーザ識別値に対応付けられた連絡先は、電子メールアドレスとすることができ、電子メール送信処理にて該文書集合の変更を告知することができる。
【００１７】
さらに本発明では、文書を処理するアプリケーションから、現在操作中の文書につき、その格納位置を取得し、操作が開始されたものとして記録された文書の格納位置と比較して、それらの相違から操作対象の文書が変更されたことを検知することができる。また本発明では、操作対象の変更を検知して、前記操作が開始されたものとして記録された文書に対する操作の終了を記録し、前記現在操作中の文書に対する操作の開始を記録することができる。さらにまた本発明では、文書の内容データ、または文書の書誌情報および更新日時を含むメタデータのハッシュ値を内容識別値として算出することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態を用いて説明するが、本発明の実施形態は、以下の実施形態に限定されるものではない。
【００１９】
図１は、文書管理システム１００の実施形態を示す概略図である。図１に示す文書管理システム１００は、システム１００内を流通する電子文書を管理するサーバ１１０と、自身がアクセス可能な記憶領域に格納された電子文書に対して、閲覧、編集、印刷などの操作を行なうためのクライアント・コンピュータ（以下、クライアントとして参照する。）１２０ａ，ｂとを含んで構成され、例えば、イーサネット（登録商標）およびＴＣＰ／ＩＰプロトコルによるローカル・エリア・ネットワーク（以下、ＬＡＮとして参照）１３０を実現している。
【００２０】
クライアント１２０は、自身が備えるハードディスク（以下、ＨＤＤとして参照する。）が提供するローカル記憶領域や、自身がアクセス可能なネットワーク上の記憶領域を含むファイルシステム上の電子文書に対するアクセスを制御し、利用者に対して、電子文書の閲覧、編集、印刷などの操作環境を提供する。さらにクライアント１２０は、利用者により電子文書に対し操作が行なわれたことを検出し、自身のクライアント機能に対するサーバ機能を提供するサーバ１１０に対して、電子文書に対する操作に関する情報（以下、文書操作情報として参照する。）を報告する。
【００２１】
一方、サーバ１１０は、各クライアント１２０から文書操作情報を収集し、複製された同一文書、電子文書に編集が加えられた派生文書を含む一群の文書集合を関連付けて管理する。サーバ１１０が各クライアント１２０から収集する上記文書操作情報については、詳細は後述する。さらにサーバ１１０は、一群の文書集合を構成している電子文書に関して、閲覧するユーザが新たに検出されたり、編集により派生文書が新たに作成されたりした場合に、電子文書の流通状態が変更された旨を、当該文書集合に関連する利用者の連絡先に告知することができる。
【００２２】
なお、文書管理システム１００は、上述の実施形態に限定されるものではなく、図示しないＶＰＮ（Virtual Private Network）ゲートウェイまたは専用回線を用いて構成されるワイド・エリア・ネットワーク（ＷＡＮ）により、クライアント１２０とサーバ１１０とを接続してもよく、その他、インターネットなどの公衆通信回線を介してクライアント１２０とサーバ１１０とを接続してもよい。また、文書管理システム１００に含まれるクライアント１２０の数は、上述の実施形態に限定されるものではなく、１つまたは３つ以上で構成されてもよい。さらに他の実施形態では、電子文書を管理するサーバ１１０の機能と、電子文書に対して操作を行なうためのクライアント１２０の機能とを、単一の情報処理装置にて実現することもできる。
【００２３】
以下、本実施形態のサーバ１１０のハードウェア構成について説明する。図２は、サーバ１１０のハードウェア構成の実施形態を示す図である。サーバ１１０は、マイクロプロセッサ・ユニット（ＭＰＵ)１２と、ＢＩＯＳ（Basic Input Output System）を格納する不揮発性メモリ１４と、ＭＰＵ１２によるプログラム処理を可能とする実行記憶空間を提供するＲＡＭなどのメモリ１６を含んで構成されている。ＭＰＵ１２は、起動時に、不揮発性メモリ１４からＢＩＯＳを読み出してシステム診断を行なうとともに入出力装置２６の管理を行っている。
【００２４】
ＭＰＵ１２には、内部バス２２を介して記憶制御用インタフェース１８が接続され、ハＨＤＤなどから構成される記憶装置２０が、ＭＰＵ１２からの入出力要求に応答してデータの書込または読み出しを実行している。本実施形態の記憶装置２０は、文書操作情報および文書集合を管理するデータベースのための記憶領域を提供する。記憶制御用インタフェース１８としては、ＩＤＥ（Integrated Device Electronics）、ＡＴＡ（AT Attachment）、シリアルＡＴＡ、ＵｌｔｒａＡＴＡなどの規格により、記憶装置２０の入出力を管理するインタフェースを使用することができる。またＭＰＵ１２は、内部バス２２を介してＵＳＢ、ＩＥＥＥ１１６４などのシリアルまたはパラレル・インタフェース２４を制御して、キーボード、マウス、プリンタなどの入出力装置２６と通信して、ユーザからの入力を受け取り、またユーザに対してプリンタなどを介した出力を提供している。
【００２５】
サーバ１１０は、さらにＶＲＡＭ２８とグラフィック・チップ３０とを含んでおり、ＭＰＵ１２からの指令に応答してビデオ信号を処理し、ディスプレイ装置３２へと表示させている。また、ＭＰＵ１２は、内部バス２２を介してネットワークＩ／Ｆ（ＮＩＣ；Network Interface Card）３４と通信し、サーバ１１０を、ネットワーク１３０を通して外部のクライアント１２０と通信させる。
【００２６】
サーバ１１０は、不揮発性メモリ１４や記憶装置２０、その他、ＮＶ−ＲＡＭ（図示せず）やＳＤカード（図示せず）などの記憶装置に格納されたプログラム（図示せず）を読み出し、メモリ１６のメモリ領域に展開することにより、適切なオペレーティング・システム（ＯＳ）のもとで、後述する各機能部および各処理を実現している。本実施形態では、サーバ１１０がＵＮＩＸ（登録商標）またはＡＩＸまたはＬＩＮＵＸ（登録商標）などのアーキテクチャを有している場合であっても、各ＯＳが同様の機能を提供する限り、コンピュータのアーキテクチャに限定されるものではない。また、サーバ１１０と通信を行なうクライアント１２０についても、図２と同様なハードウェア構成とすることができる。
【００２７】
以下、本実施形態の文書管理システム１００において実現される文書管理機能について説明する。図３は、本実施形態のクライアント１２０およびサーバ１１０上に実現される機能構成を示すブロック図である。図３に示すクライアント１２０は、サーバ１１０側のサーバ機能とのネットワーク１３０を介したデータ通信を処理するクライアント処理部４０を含んで構成される。クライアント１２０は、ユーザ情報取得部４２を含んで構成され、ユーザ情報取得部４２は、利用者からグラフィカル・ユーザ・インタフェース（以下、ＧＵＩとして参照する）を介して入力されたユーザ名およびパスワードを取得し、クライアント処理部４０を介して、サーバ１１０側へ送信する。クライアント処理部４０は、サーバ１１０による認証完了後、認証情報を含むＣｏｏｋｉｅなどをメッセージに含めてサーバ１１０と通信を行なうこととなる。
【００２８】
図４（Ａ）は、クライアント１２０が備えるディスプレイ装置の画面上に表示されるＧＵＩ画面の一例を示す。図４（Ａ）に示すＧＵＩ画面３００は、ユーザ名およびパスワードの入力を要求するメッセージと、ユーザ名を入力するテキストボックス３０２と、パスワードを入力するためのテキストボックス３０４とを含んで構成される。ＧＵＩ画面３００は、さらに、各テキストボックス３０２，３０４に入力されたユーザ名およびパスワードの送信を指令するための送信ボタン３０６と、認証手続をキャンセルするためのキャンセル・ボタン３０８とを含んで構成され、利用者は、当該ＧＵＩ画面３００を使用して、本文書管理システムを利用可能とするためのユーザ・ログイン処理を実行することができる。
【００２９】
再び図３を参照すると、クライアント１２０は、さらに、文書操作アプリケーション４４を含んで構成される。文書操作アプリケーション４４は、電子文書に対する操作環境を利用者に提供し、電子文書の新規作成、閲覧、編集や印刷など、電子文書に対する種々の操作を受け付ける。文書操作アプリケーション４４が扱う電子文書としては、ＤＯＣなど種々のドキュメント形式のファイル、ＢＭＰ、ＧＩＦ、ＴＩＦＦなど種々の画像形式のファイル、ＰＳ、ＰＤＦなどのファイル、その他、独自形式のファイルを挙げることができる。文書操作アプリケーション４４としては、ＯＳがＷｉｎｄｏｗｓ（登録商標）である場合には、内部オブジェクトおよび機能を外部アプリケーションや外部サービスに公開することができる、所謂、オートメーション機能に対応するアプリケーションを好適に採用することができる。しかしながら、上記文書操作アプリケーションは、特に限定されるものではなく、任意のＯＳ上で動作し電子文書を処理可能な如何なるアプリケーションを採用することができる。
【００３０】
クライアント１２０は、さらに、文書操作情報取得部４６および内容識別値算出部４８を含んで構成される。文書操作情報取得部４６は、文書操作アプリケーション４４から、現在操作中の電子文書のパスやＵＲＩ（Uniform Resource Identifier）などの格納位置と、文書タイトルなどの書誌情報や、更新日時や、その他の電子文書に関する情報を含むメタデータとを取得する。また文書操作情報取得部４６は、文書操作アプリケーション４４において、電子文書がフォーカス・インされ、当該電子文書がアクティブとなったことを検知して、フォーカス・インを当該電子文書に対する操作の開始とし、検知した日時を開始の時間として取得する。さらに文書操作情報取得部４６は、文書操作アプリケーション４４において、電子文書からフォーカス・アウトされ、電子文書が非アクティブとなったことを検知して、フォーカス・アウトを当該電子文書に対する操作の終了とし、検知した日時を終了の時間として取得する。
【００３１】
内容識別値算出部４８は、電子文書の内容データ、または電子文書の書誌情報や更新日時などを含むメタデータから、電子文書の内容の更新状態を追跡するために、電子文書の内容を識別する内容識別値を算出する。ここで、電子文書の内容データとは、電子文書をアプリケーション上に展開し、ユーザが閲覧および編集することが可能な内容を含むデータをいい、例えば電子文書のファイル全体を内容データとすることもできる。文書操作情報取得部４６は、格納位置にある電子文書のファイルを読み出して、電子文書の内容データまたはメタデータを取得し、該データを内容識別値算出部４８に与えて、内容識別値を算出させ、取得する。内容識別値としては、ＭＤ５（Message Digest Algorithm 5）やＳＨＡ（Secure Hash Algorithm）などのメッセージ・ダイジェスト関数に、上記内容データまたはメタデータを入力し、算出されるハッシュ値を採用することができる。
【００３２】
クライアント処理部４０は、文書登録依頼手段として動作し、操作の開始時間、該操作の開始時の内容識別値、該操作の終了時間、該操作の終了時の内容識別値、該操作を行った利用者のユーザ名、パスやＵＲＩなどの電子文書の格納位置、電子文書のタイトルなどのメタデータを対応付けた文書操作情報をサーバ１１０へ送信し、文書操作情報の登録を依頼する。本実施形態では、フォーカス・インによる操作の開始、およびフォーカス・アウトによる操作の終了を一組として、上記文書操作情報を処理する。
【００３３】
一方、図３に示すサーバ１１０は、クライアント１２０側のクライアント処理部４０とのネットワーク１３０を介したデータ通信を処理するサーバ処理部５０を含んで構成される。サーバ１１０は、さらに、ユーザ認証部５２およびユーザ情報データベース（以下、データベースをＤＢとして参照する。）５４を含んで構成される。ユーザ情報ＤＢ５４は、文書管理システムのユーザのユーザ名、パスワード、電子メールなどの連絡先、その他、ユーザに関連する情報（以下、ユーザ情報として参照する。）を蓄積し、ユーザ認証の際に参照される。ユーザ認証部５２は、クライアント１２０のユーザ情報取得部４２から送信されるユーザ名およびパスワードを、ユーザ情報ＤＢ５４に蓄積されるユーザ情報と照合し、照合結果を返信する。ユーザ認証部５２は、認証が承認された場合には、認証のセッション情報を含むＣｏｏｋｉｅなどの文字列を照合結果とし、認証に失敗した場合には、空の文字列を照合結果として返信することができる。
【００３４】
空の文字列を受信したクライアント１２０は、認証に失敗したものとして、再度ＧＵＩ画面３００を表示するなどをして、利用者に再度ログインを試みさせ、一方、セッション情報として文字列を受信したクライアント１２０は、以後の通信メッセージに当該文字列を含め送信することとなる。サーバ処理部５０は、認証後、認証のセッション情報を含むＣｏｏｋｉｅを用いて、クライアント１２０とのセッションを管理することとなる。なお、ユーザ情報ＤＢ５４に蓄積されるユーザ情報は、本文書管理システムの利用登録処理などにより生成することができるが、特に限定されるものではない。
【００３５】
図４（Ｂ）は、ユーザ情報ＤＢ５４にて蓄積および管理されるユーザ情報テーブルのデータ構造を一例として示す。図４（Ｂ）に示すユーザ情報テーブル２００は、文書管理システム内で一意に割当てられるユーザＩＤが入力されるフィールド２００ａと、利用者のユーザ名が入力されるフィールド２００ｂと、パスワードが入力されるフィールド２００ｃと、電子メールアドレスなどの利用者の連絡先が入力されるフィールド２００ｄとを含んで構成される。ユーザ認証の際には、クライアント１２０から送付されたユーザ名およびパスワードと一致するレコードが検索されることとなる。なお、ユーザ認証では、ＢＡＳＩＣ認証、ＤＩＧＥＳＴ認証、Ｗｉｎｄｏｗｓ（登録商標）のドメイン・コントローラ介したＷｉｎｄｏｗｓ（登録商標）認証、ＬＤＡＰ（Lightweight Directory Access Protocol）サーバを介したＬＤＡＰ認証など、如何なるユーザ認証方式を採用することができる。さらに、ユーザ名およびパスワード入力の代わりに、所定の認証デバイスを用いた生体認証（指紋認証や静脈認証など）やＩＣカード認証を採用することもできる。
【００３６】
再び図３を参照すると、サーバ１１０は、さらに、文書操作情報管理部５６および文書操作情報ＤＢ５８を含んで構成される。文書操作情報管理部５６は、サーバ処理部５０を介して各クライアント１２０ａ，ｂから送信されてくる上記文書操作情報を収集し、文書操作情報ＤＢ５８に蓄積させる。文書操作情報ＤＢ５８は、収集される上記文書操作情報をエントリとして蓄積する。また文書操作情報管理部５６は、必要に応じて、認証済みのクライアント１２０のクライアント処理部４０からの取得要求に応答して、文書操作情報ＤＢ５８に蓄積されている文書操作情報を、抽出および整形して、サーバ処理部５０を介してクライアント１２０に提供することができる。本実施形態では、文書操作情報管理部５６および文書操作情報ＤＢ５８は、統合的に文書登録手段として動作する。
【００３７】
図５は、文書操作情報ＤＢ５８にて蓄積および管理される文書管理テーブルのデータ構造の実施形態を示す。なお、図５に示す各テーブルは、日時［200x-x-01 22:00:00］時点で取得されたものを例示している。図５（Ａ）は、文書操作情報がエントリされる文書操作情報テーブル２１０のデータ構造を一例として示す。図５（Ａ）に示す文書操作情報テーブル２１０は、ＩＤが入力されるフィールド２１０ａを含み構成され、一組の文書操作情報がレコードのエントリとして登録される。図５（Ｂ）は、内容識別値がエントリされる内容識別値テーブル２２０のデータ構造を一例として示す。図５（Ｂ）に示す内容識別値テーブル２２０は、内容識別値が入力されるフィールド２２０ｂと、該内容識別値に一意に割り当てた内容ＩＤが入力されるフィールド２２０ａと、後述する文書集合ＩＤが入力されるフィールド２２０ｃとを含んで構成される。フィールド２２０ｃは、後述する文書集合が生成される前の段階では、空となっている。
【００３８】
図５（Ｃ）は、電子文書に関する情報がエントリされる文書テーブル２３０のデータ構造を一例として示す。図５（Ｃ）に示す文書テーブル２３０は、電子文書のタイトルが入力されるフィールド２３０ｂと、電子文書の格納位置が入力されるフィールド２３０ｃと、これらの情報に一意に割り当てられた文書ＩＤが入力されるフィールド２３０ａとを含んで構成される。なお、フィールド２３０ｃに入力される格納位置は、ＵＲＬ（Uniform Resource Locator）やＵＲＮ（Uniform Resource Name）などネットワーク・グローバルな格納位置を示す情報でなくともよく、各クライアント１２０におけるローカル・パスを含んでいてもよい。
【００３９】
再び文書操作情報テーブル２１０を参照すると、文書操作情報テーブル２１０は、各レコード毎に、操作開始時の日時が入力されるフィールド２１０ｃと、操作開始時に算出された内容識別値の内容ＩＤが入力されるフィールド２１０ｄと、操作終了時の日時が入力されるフィールド２１０ｅと、操作終了時に算出された内容識別値の内容ＩＤが入力されるフィールド２１０ｆとを含んで構成され、操作の開始から終了までが一組として、レコードにエントリされる。文書操作情報テーブル２１０の各レコードには、さらに、当該操作が行なわれた電子文書の文書ＩＤが入力されるフィールド２１０ｂと、当該操作の行為者のユーザＩＤが入力されるフィールド２１０ｇとを含んで構成される。なお、上記ＩＤ、内容ＩＤ、文書ＩＤ、およびユーザＩＤは、データベースの各テーブルのエントリを一意に識別し、データベース内のデータを参照する際の主キーとして利用される。
【００４０】
再び図３を参照すると、サーバ１１０は、さらに、文書集合管理部６０、文書集合ＤＢ６２、文書集合生成部６４および文書集合更新部６６を含んで構成される。文書集合ＤＢ６２は、同一文書および派生文書を含む一群の電子文書を文書集合として登録する。文書集合管理部６０は、所与のスケジュール、管理者などからの外部指令、文書操作情報ＤＢ５８への新規蓄積量などに応答して、文書集合生成部６４および文書集合更新部６６に対し、文書集合ＤＢ６２に登録される文書集合の新規生成処理および更新処理の実行を指令する。文書集合管理部６０は、また、必要に応じて、認証済みのクライアント１２０のクライアント処理部４０からの取得要求に応答して、文書集合ＤＢ６２に蓄積されている文書集合情報を、抽出および整形して、サーバ処理部５０を介してクライアント１２０に提供することができる。
【００４１】
文書集合生成部６４は、各クライアント１２０から収集され、文書操作情報ＤＢ５８に蓄積される未処理の文書操作情報のエントリを参照し、文書操作情報に含まれる一組の内容識別値をまず関連付けて、新規文書集合を生成し、文書集合ＤＢ６２に登録する。また文書集合生成部６４は、生成した新規文書集合中、同一の内容識別値を有する複数の新規文書集合がある場合には、これらの新規文書集合を統合し、より大きな文書集合を形成させる。各新規文書集合には、一意に識別する文書集合ＩＤを割当てられることとなる。また文書集合生成部６４は、新規生成された文書集合について、該文書集合の内容識別値の数、文書集合に関係のあるユーザ数などを集計し、管理データを生成する。文書集合生成部６４は、新規文書集合について、新規文書集合を構成する内容識別値に関連付けられるユーザのユーザＩＤを対応付けるテーブルを更新し、文書集合ＤＢ６２に登録することもできる。
【００４２】
文書集合更新部６６は、文書操作情報ＤＢ５８および文書集合ＤＢ６２を参照して、文書集合全体について、同一の内容識別値を有する複数の文書集合を検索し、これらのひとつの文書集合を統合し、編成される各文書集合毎に識別する文書集合ＩＤを割り当て直す。文書集合更新部６６は、さらに、文書集合全体について、文書集合に関係のあるユーザ数や、構成する内容識別値の数（後述するバージョン数に同じ。）を集計し、ユーザ数、内容識別値の数、最終更新日時等を含む管理データを生成し、文書集合ＤＢ６２に登録する。文書集合更新部６６は、文書集合全体について、文書集合を構成する内容識別値に関連付けられるユーザのユーザＩＤを対応付けるテーブルを更新することもできる。本実施形態では、文書集合管理部６０、文書集合ＤＢ６２、文書集合生成部６４および文書集合更新部６６は、統合的に文書集合登録手段として動作する。
【００４３】
以下、クライアント側の文書操作情報の取得および送信の処理について説明する。図６は、クライアントが実行する文書操作情報の取得および送信処理を示すフローチャートである。図６に示す処理は、例えばクライアント１２０が起動したことに応答して、ステップＳ１００から開始される。なお、以下、Ｗｉｎｄｏｗｓ（登録商標）をＯＳとした場合を例に説明するが、他のＯＳにおいても同等の処理が実現可能であることはいうまでもない。
【００４４】
ステップＳ１０１では、文書操作情報取得部４６は、現在フォーカスしているアクティブ・ウィンドウから、開かれている電子文書（以下、アクティブ文書）のタイトルおよびＵＲＩを取得する。ステップＳ１０１における取得処理では、まず、ＡＰＩ（Application Programming Interface）のひとつであるGetActiveWindow()関数を利用して、ウィンドウハンドルを取得する。続いて取得したウィンドウハンドルをGetWindowText()関数に与えて、ウィンドウタイトルを文書タイトルとして取得する。なお、ウィンドウタイトルには、アプリケーションに応じて、アプリケーション名が付加されている場合もあるが、本実施形態では、アプリケーション名を含めて文書のタイトルとすることができる。続いて、取得したウィンドウハンドルをGetWindowThreadProcessId()関数に与えて、当該アクティブ・ウィンドウを実行しているソフトウェア・モジュールのファイル名およびパスを取得し、当該アクティブ文書を表示させている文書操作アプリケーション４４を識別する。そして、識別された文書操作アプリケーションに応じて、適切なＵＲＩ取得処理を判定および選択し、アクティブ文書のＵＲＩを取得する。Ｗｉｎｄｏｗｓ（登録商標）では、上述したオートメーション機能に対応しているアプリケーションであれば、好適にＵＲＩを取得することができる。
【００４５】
ステップＳ１０２では、文書操作情報取得部４６は、最後に判定した以降、アクティブ文書が変更されたか否かを判定する。なお、ステップＳ１０２の判定処理では、文書操作情報取得部４６は、文書操作情報テーブル２１０と同様のデータを参照する。本実施形態では、当該クライアント１２０に関連するエントリを含む文書操作情報ＤＢを、クライアント１２０自身が個別に保持しているものとして説明する。しかしながら他の実施形態では、クライアント処理部４０を介して、サーバ１１０側の文書操作情報ＤＢ５８を直接参照する構成としてもよい。また、クライアント１２０側の文書操作情報テーブル２１０は、文書ＩＤやユーザＩＤなどの各テーブルの主キーが入力されている必要はなく、サーバ１１０に送信され、サーバ１１０側にて登録する段階で、それぞれのＩＤが割当てられてもよい。
【００４６】
ステップＳ１０２の判定処理では、最後に操作開始済みとして自身の文書操作情報ＤＢに記録された電子文書の文書タイトルおよびＵＲＩを取得し、ステップＳ１０１で取得したアクティブ文書の文書タイトルおよびＵＲＩとを比較して、アクティブ文書が変更されたか否かを判定する。図７（Ａ）は、日時［200x-x-01 14:44:56］時点での文書操作情報テーブル２１０を例示する。図７（Ａ）に示すように、日時［200x-x-01 14:44:56］時点では、すでにＩＤ［２］のレコードには、操作が開始された文書として文書ＩＤ［２］の電子文書（進捗報告．ｐｐｔ）が既に記録され、一方、同レコードの操作終了に対応するフィールドが空となっている。日時［200x-x-01 14:44:56］時点で、ステップＳ１０２の判定が行われる場合、ステップＳ１０１の処理により取得された文書ＩＤ［１］の電子文書（出張報告．ｄｏｃ）の情報は、現在のアクティブ文書のＵＲＩおよび文書タイトルと相違しているため、文書操作情報取得部４６は、アクティブ文書が変更されたものとして判定することとなる。
【００４７】
ステップＳ１０２で、アクティブ文書が変更されていないと判定された場合（ＮＯ）には、ステップＳ１０７へ処理を分岐させる。一方、ステップＳ１０２で、アクティブ文書が変更されたと判定された場合（ＹＥＳ）には、ステップＳ１０３へ処理を分岐させる。ステップＳ１０３では、フォーカス・アウト処理を実行して、操作開始が記録されているレコードについて、操作の終了を記録する。ステップＳ１０３のフォーカス・アウト処理では、文書操作情報取得部４６は、判定時の日時を操作の終了日時として取得し、ステップＳ１０２で取得した電子文書のＵＲＩに従って、内容データまたはメタデータなどを取得し、内容識別値算出部４８に与え、内容識別値を算出させる。そして、得られた内容識別値を操作終了時のものとして、取得した日時とともに文書操作情報テーブル２１０に登録する。図７（Ａ）に示す例では、電子文書（進捗報告．ｐｐｔ）から内容識別値（a40041507）が算出され、新たに割当てられた内容ＩＤ［４］が、日時［200x-x-01 14:44:56］とともに文書操作情報テーブル２１０のレコードに記録されている。日時［200x-x-01 14:44:56］時点では、当該内容識別値がテーブル２２０に登録されていないため、内容識別値（a40041507）に対し新たに割当てられた内容ＩＤ［４］が割当てられることとなる。
【００４８】
ステップＳ１０４では、クライアント処理部４０は、クライアント１２０自身が蓄積する文書操作情報の送信条件が満たされたか否かを判定する。上記送信条件としては、例えば、所定時間の経過すること、蓄積された未送信のレコード数が所定数を上まわること、蓄積された未送信のデータ量が所定量を上まわることなどを条件とすることができるが、特に限定されるものではない。ステップＳ１０４で、送信条件を満たさないと判定された場合（ＮＯ）には、ステップＳ１０６へ処理を分岐させ、フォーカス・イン処理に進める。一方、ステップＳ１０４で、送信条件を満たすと判定された場合（ＹＥＳ）には、ステップＳ１０５へ処理を分岐させる。ステップＳ１０５では、未送信の文書操作情報を、ＸＭＬ（eXtensible Markup Language）形式などの適切なデータ形式に変換し、サーバ１１０へ送信し、登録を依頼する。サーバ１１０側では、文書操作情報管理部５６が、登録の依頼とともに、文書操作情報を受信し、文書操作情報ＤＢ５８に登録することとなる。
【００４９】
ステップＳ１０６では、アクティブ文書に対する操作を開始するものとして、フォーカス・イン処理を実行する。ステップＳ１０６のフォーカス・イン処理では、文書操作情報取得部４６は、判定時の日時を操作の開始日時として取得し、ステップＳ１０１で取得したアクティブ文書のＵＲＩに従って、内容データまたはメタデータなどを取得し、内容識別値算出部４８に与えて、内容識別値を算出させる。そして、得られた内容識別値を操作開始時のものとして、当該アクティブ文書の文書ＩＤと、ユーザＩＤと、取得した日時とともに、文書操作情報テーブル２１０に登録する。
【００５０】
図７（Ｂ）は、日時［200x-x-01 14:44:56］でのフォーカス・アウト処理後の文書操作情報テーブル２１０を例示する。図７（Ｂ）に示すように、フォーカス・イン処理により、新たにＩＤ［３］のレコードが追加され、アクティブ文書（出張報告．ｄｏｃ）の文書ＩＤ［１］と、取得された日時［200x-x-01 14:44:56］と、アクティブ文書から新たに算出された開始時の内容識別値の内容ＩＤ［２］とが当該レコードに記録される。図７（Ｂ）に示す例では、電子文書（出張報告．ｄｏｃ）から算出される内容識別値［020e878ff4］は、内容識別値テーブル２２０に既に登録されているため、内容識別値テーブル２２０内の当該内容識別値に一致するエントリが発見されて、内容ＩＤ［２］がレコードに記録されることとなる。
【００５１】
ステップＳ１０７では、クライアント処理部４０は、終了条件が満たされたか否かを判定する。終了条件としては、例えば、ユーザやシステムからの終了シグナルを受信することを条件とすることができるが、特に限定されるものではない。ステップＳ１０７で、終了条件を満たさないと判定された場合（ＮＯ）には、ステップＳ１０１へ処理をループさせ、終了条件が満たされるまで、処理を繰り返させる。なお、処理を繰り返させる際に、所定の待機時間を設けて、処理負荷を軽減する構成としてもよい。一方、ステップＳ１０７で、終了条件を満たすと判定された場合（ＹＥＳ）には、ステップＳ１０８へ処理を進める。
【００５２】
ステップＳ１０８では、アクティブ文書からフォーカス・アウトされたものとして、ステップＳ１０３と同様のフォーカス・アウト処理を実行する。ステップＳ１０８のフォーカス・アウト処理では、文書操作情報取得部４６は、終了条件を満たした日時を終了の日時として取得し、最後に操作開始済みとして自身の文書操作情報ＤＢに記録された電子文書のＵＲＩを使用して、内容識別値を算出させ、終了時のものとして取得し、文書操作情報テーブル２１０に記録する。ステップＳ１０９では、クライアント処理部４０は、未送信の文書操作情報をサーバ１１０へ送信し、登録を依頼する。ステップＳ１１０では、クライアント処理部４０は、送信のために一時的に蓄積された文書操作情報を削除し、ステップＳ１１１で処理を終了させる。
【００５３】
以下、サーバ側の文書集合の生成および更新の処理について説明する。図８は、サーバが実行する文書集合の生成および更新処理を示すフローチャートである。図８に示す処理は、例えばサーバ１１０が起動したことに応答して、ステップＳ２００から開始される。
【００５４】
ステップＳ２０１では、文書集合管理部６０は、開始条件を満たすか否かを判定する。開始条件としては、上述したように所与のスケジュールの時間が到来したこと、管理者などからの外部指令を受信したこと、文書操作情報ＤＢ５８への新規蓄積量などが所定量を上まわったことを条件とすることができる。ステップＳ２０１で、開始条件を満たさないと判定された場合（ＮＯ）には、ステップＳ２０６へ処理を分岐させ、ステップＳ２０６で、所定の時間待機して、ステップＳ２０１へ処理をループさせる。
【００５５】
一方、ステップＳ２０１で、開始条件を満たすと判定された場合（ＹＥＳ）には、ステップＳ２０２へ処理を分岐させる。ステップＳ２０２では、文書集合管理部６０は、文書集合更新部６６に対し、文書集合ＤＢ６２に登録される文書集合の更新処理の実行を指令する。指令を受けた文書集合更新部６６は、文書操作情報ＤＢ５８および文書集合ＤＢ６２を参照し、文書集合全体について、後述する文書集合の更新処理を実行する。ステップＳ２０３では、文書集合管理部６０は、文書集合生成部６４に対し、文書集合の生成処理の実行を指令する。指令を受けた文書集合更新部６６は、文書操作情報ＤＢ５８に蓄積された未処理のエントリを参照して、後述する新規文書集合の生成処理を実行する。処理の効率化の観点からは、図８に示すように、既に蓄積されている文書集合の更新処理を実行してから、新規文書集合の生成処理を行なうことが好ましい。しかしながら、文書集合の生成処理を実行した後、新旧含めて文書集合の更新処理を実行してもよい。
【００５６】
ステップＳ２０４では、文書集合管理部６０は、終了条件を満たすか否かを判定する。終了条件としては、例えば、ユーザやシステムからの終了シグナルを受信することを条件とすることができるが、特に限定されるものではない。ステップＳ２０４で、終了条件を満たさないと判定された場合（ＮＯ）には、ステップＳ２０６へ処理を分岐させ、所定の時間待機して、ステップＳ２０１へ処理をループさせる。一方、終了条件を満たすと判定された場合（ＹＥＳ）には、ステップＳ２０５へ処理を分岐させ、処理を終了させる。
【００５７】
以下、図９および図１０を参照して、まず文書集合の生成処理について詳細を説明する。本実施形態の文書集合生成部６４は、文書操作情報ＤＢ５８に登録された文書操作情報テーブル２１０のエントリを参照して、次の規則に従って文書集合を生成する。生成される文書集合は、下記に定義される規則に従う：（規則１）文書集合は、内容識別値を要素とした集合である；（規則２）操作の開始および終了の一対の内容識別値は、同一の文書集合を構成する；（規則３）１つ以上の要素が一致する文書集合は、統合されて１つのより大きな文書集合を構成する；（規則４）文書集合は、２以上の内容識別値を含むか、または２ユーザ以上と関連付けられていなければならない。
【００５８】
上記規則１〜４により生成された文書集合は、例えば文書分類法などにより構成される類似文書の集合とは異なり、ひとつの電子文書の時系列的な更新文書の集合となる。そして、文書集合では、ひとつの電子文書から複製された同一文書、および編集加工されて派生した派生文書を含む一群の電子文書が関連付けられることとなる。
【００５９】
図９は、文書集合が生成される様子を模式的に示す図である。図９には、図５（Ａ）に示した文書操作情報テーブル２１０の各レコードのエントリに対応する文書ペア２６０ａ〜ｅが例示されている。各文書ペア２６０は、上記規則２に従って生成される１次の文書集合である。文書操作情報テーブル２１０のＩＤ［１］のエントリに対応する文書ペア２６０ａに着目すると、操作開始時の内容ＩＤは［１］であり、操作終了時の内容ＩＤは［２］である。一方、文書操作情報テーブル２１０のＩＤ［３］のエントリに対応する文書ペア２６０ｃに着目すると、操作開始時および操作終了時の内容ＩＤは、ともに［２］であり、文書ペア２０６ａと同一の内容識別値を含んでいる。したがって、文書ペア２０６ａと文書ペア２０６ｃとは、規則３に従い統合され、ひとつの新規文書集合を構成する。同様に、文書ペア２６０ｅも、内容ＩＤ［２］を有しており、上記規則３に従い統合され、文書ペア２０６ａ，ｂとともに、ひとつの新規文書集合を構成することとなる。
【００６０】
つまり、図５（Ａ）に示した文書操作情報テーブル２１０が与えられた場合、｛１，２｝、｛３，４｝、｛２，２｝、｛５，６｝、｛２，２｝の１次の文書ペアが与えられた後、規則３により統合され、｛１，２｝、｛３，４｝、｛５，６｝の新規文書集合が形成される。ここで｛内容ＩＤ，内容ＩＤ…｝は、文書集合を表す。文書集合生成部６４は、各新規文書集合に対し、一意に識別する文書集合ＩＤを割当て、図５（Ｂ）に示した内容識別値テーブル２２０において、文書集合が生成される前は空白であった内容識別値のフィールド２２０ｃに、各内容識別値が属する文書集合の集合ＩＤを入力する。
【００６１】
文書集合生成部６４は、さらに、新規文書集合について、新規文書集合に関係のあるユーザ数や、構成する内容識別値の数を集計し、ユーザ数、内容識別値の数、最終更新日時などを含む管理データを生成し、文書集合ＤＢ６２に登録する。図１０は、文書集合ＤＢ６２にて蓄積および管理されるテーブルのデータ構造の実施形態を示す。なお、図１０に示す各テーブルは、日時［200x-x-01 22:00:00］時点で取得されたものを例示している。図１０（Ａ）は、内容識別値とユーザ情報とを対応づける結合テーブルのデータ構造を一例として示す。図１０（Ａ）に示す結合テーブル２４０は、内容識別値とユーザ情報との間に、ｈａｂｔｍ（has and belongs to many）の関係を結ぶために、好適に生成することができる。
【００６２】
図１０（Ｂ）は、文書集合ＤＢ６２にて蓄積および管理される文書集合テーブルのデータ構造を一例として示す。図１０（Ｂ）に示す文書集合テーブル２５０は、文書集合ＩＤが入力されるフィールド２５０ａを含み構成され、文書集合に関する情報がレコードのエントリとして登録されている。文書集合テーブル２５０の各レコードには、該文書集合に含まれる内容識別値の数に対応するバージョン数が入力されるフィールド２５０ｂ、該文書集合に関連付けられるユーザ数が入力されるフィールド２５０ｃ、該文書集合内における最新の内容識別値の内容ＩＤが入力されるフィールド２５０ｄ、文書集合の最終更新日時が入力されるフィールド２５０ｅとを含んで構成される。なお、最初に文書集合が生成される場合には、生成の日時が最終更新日時として入力されることとなる。
【００６３】
上記バージョン数は、新規文書集合を構成する内容識別値の数を重複を除きカウントして、求めることができる。例えば、図５（Ａ）に示した文書操作情報テーブル２１０が与えられた場合、最新の内容識別値として内容ＩＤ［２］を有する文書集合｛１，２｝については、バージョン数［２］が算出される。また上記ユーザ数は、各文書集合につき、図１０（Ａ）に示した結合テーブルから、内容ＩＤに対応付けられたユーザＩＤを抽出し、重複を除いてユーザＩＤ数をカウントして求めることができる。例えば、最新の内容識別値として内容ＩＤ［２］を有する文書集合｛１，２｝については、ユーザ数［２］が算出される。
【００６４】
以下、図１１および図１２を参照して、さらに文書集合の更新処理について説明する。本実施形態の文書集合更新部６６は、文書操作情報ＤＢ５８および文書集合ＤＢ６２を参照して、文書集合全体について、上記規則１〜４に従うように文書集合を編成し、編成された各文書集合に対し、適宜、一意に識別する文書集合ＩＤが再び割当て直す。
【００６５】
図１１は、（Ａ）文書操作情報テーブル４１０、（Ｂ）内容識別値テーブル４２０、および（Ｃ）文書テーブル４３０のデータ構造を例示する。図１２は、（Ａ）結合テーブル４４０、および（Ｂ）文書集合テーブル４５０のデータ構造を例示する。図５および図１０に示した各テーブルが日時［200x-x-01 22:00:00］時点で取得されたものを例示しているのに対し、図１１および図１２に示す各テーブルは、その後の日時［200x-x-02 11:00:00］時点で取得されたものを例示している。以下、日時［200x-x-01 22:00:00］時点で一度文書集合が生成され、日時［200x-x-02 11:00:00］時点で更新が指令されたものとして説明する。
【００６６】
図１１（Ａ）に示した文書操作情報テーブル４１０が与えられた場合、文書集合生成部６４により、規則１〜４に従い、新たに｛６，６５｝の新規文書集合が生成されることとなる。文書集合ＤＢ６２には、既に文書集合｛１，２｝、｛３，４｝、｛５，６｝が登録されているため、文書集合更新部６６は、新規文書集合｛６，６５｝を、文書集合｛５，６｝に統合し、｛１，２｝、｛３，４｝、｛５，６，６５｝の文書集合に更新する。
【００６７】
続いて文書集合更新部６６は、上記バージョン数およびユーザ数を、更新により編成された文書集合全体から求め直す。例えば、図１１（Ａ）に示した文書操作情報テーブル２１０が与えられた場合、最新の内容識別値として内容ＩＤ［６５］を有する文書集合｛５，６，６５｝については、バージョン数［３］が算出され、ユーザ数［４］が算出される。そして、更新された文書集合｛５，６，６５｝については、最終更新日時が、日時［200x-x-02 11:00:00］に更新される。また、文書集合更新部６６は、図１２に示す結合テーブルについても、各文書集合ＩＤとユーザＩＤの関係が洗い出して、新たに更新する。
【００６８】
以上説明したように、クライアント１２０では、まず、文書操作情報取得部４６が、電子文書に対する操作の開始および終了を検知し、検知した時間、その時の電子文書の内容を識別する内容識別値、当該操作の行為者を識別するユーザＩＤを取得する。続いて、クライアント処理部４０は、サーバ１１０に対し、これらの情報の登録を依頼する。サーバ１１０では、登録依頼を受けて、文書操作情報管理部５６は、操作の開始および操作の終了を一つの組として、日時、内容識別値およびユーザＩＤを対応付けて文書操作情報ＤＢ５８に登録する。そして、文書集合管理部６０は、文書集合更新部６６および文書集合生成部６４に文書集合の更新および生成を指令して、まず開始時および終了時の内容識別値を含む文書集合を形成し、さらに同一の内容識別値を有する文書集合を統合してゆき、一群の内容識別値が関連付けられた最終的な文書集合を文書集合ＤＢ６２に登録する。
【００６９】
上述の処理により、各々の利用者が各クライアント１２０においてファイルシステム上に個別に操作する電子文書を関連付ける文書集合が得られる。各利用者により電子文書に対して操作された場合、その操作の前後の内容識別値が記録され、上記規則２に従い関連付けられる。さらに、上記規則３に従い、同一の内容識別値を有する文書集合が統合されるため、電子メールなどによって複数のクライアント１２０へ配布された電子文書も、一群の文書集合に編成されることとなる。さらに、配布先で電子文書に対し編集加工が加えられたとしても、編集加工の前後の内容識別値が関連付けられるため、編集後の電子文書も、元の電子文書を含む文書集合に統合されて管理されることとなる。
【００７０】
このように、各クライアント１２０において、個別に操作される電子文書について、同一文書および派生文書が一群の文書集合として管理することができるため、電子文書の流通状態が把握可能となり、例えば、電子メールなどで他の利用者に配布した電子文書が、どこまでの範囲に配布されているか、誰が当該電子文書に編集を加えたか、また誰が当該電子文書を閲覧したか、またどれくらいの閲覧時間であったかを把握することが可能となる。さらに、本実施形態の文書管理システム１００では、管理している電子文書に関して、閲覧するユーザが新たに検出されたり、編集により派生文書が新たに作成されたりした場合に、電子文書の流通状態が変更された旨を、関連する利用者に告知することができる。以下、文書集合を用いた更新告知機能について説明する。
【００７１】
図１３は、サーバ１１０上に実現される更新告知機能に関連する機能構成を示すブロック図である。図１３に示すサーバ１１０は、さらに、更新告知判定部７０、更新告知情報生成部７２、および更新告知部７４を含んで構成される。更新告知判定部７０は、文書集合生成部６４または文書集合更新部６６から、文書集合の登録状態が変更された旨の通知を受け、更新の告知を実施する必要があるか否かを判定する。更新告知情報生成部７２は、文書集合ＤＢ６２、文書操作情報ＤＢ５８およびユーザ情報ＤＢ５４を参照して、登録状態が変更された文書集合に関する情報を抽出し、告知内容を生成し、また告知対象のリストを生成する。
【００７２】
図１５は、告知内容を生成する際に使用できるテンプレートを例示する。図１５（Ａ）に示すテンプレートは、新たな利用者による閲覧を検知した際の報告に用いることができる。図１５（Ｂ）に示すテンプレートは、利用者の閲覧状態のサマリを報告する際に用いることができる。
【００７３】
更新告知部７４は、ユーザ情報ＤＢ５４を参照して、登録状態が変更された文書集合に関係する告知対象のリストに載った利用者の電子メールアドレスなど連絡先を取得し、該連絡先に宛てて、上記告知内容を本文に含む告知メッセージを送信する。連絡先が、電子メールアドレスである場合には、ＳＭＴＰ（Simple Mail Transfer Protocol）などのメール送信プロトコルに従い、ネットワーク１３０を介して接続されるメールサーバに対しメール送信処理を実行する。なお、告知方法は、電子メール配信システムを用いた電子メールに限定されるものではなく、インスタントメッセンジャを利用して、インスタントメッセージを更新告知として送信することもできる。図１６は、図１５（Ｂ）に示したテンプレートを用いて生成されるメールメッセージの本文を一例として示す。図１６に示すように、閲覧状態のサマリを関係する利用者に周知することが可能となる。
【００７４】
以下、サーバが実行する更新告知処理について、フローチャートを参照して説明する。図１４は、サーバが実行する更新告知処理を示すフローチャートである。図１４に示す処理は、例えばサーバ１１０が起動したことに応答して、ステップＳ３００から開始される。
【００７５】
ステップＳ３０１では、更新告知判定部７０は、開始条件を満たすか否かを判定する。開始条件としては、例えば、文書集合の更新処理により、文書集合のユーザ数が変更されたこと、文書集合のバージョン数が変更されたことを条件とすることができる。ステップＳ３０１で、開始条件を満たさないと判定された場合（ＮＯ）には、ステップＳ３０６へ処理を分岐させ、ステップＳ３０６で、所定の時間待機して、ステップＳ３０１へ処理をループさせる。
【００７６】
一方、ステップＳ３０１で、開始条件を満たすと判定された場合（ＹＥＳ）には、ステップＳ３０２へ処理を分岐させる。ステップＳ３０２では、更新告知情報生成部７２は、文書集合ＤＢ６２、文書操作情報ＤＢ５８およびユーザ情報ＤＢ５４を参照して、告知内容を生成する。ステップＳ３０３では、更新告知部７４は、ユーザ情報ＤＢ５４から連絡先を取得し、該連絡先に宛てて、生成された告知内容を含むメールメッセージを送信する。なお、告知対象としては、登録状態の変更が通知された文書集合に関連するすべてのユーザとしたり、該文書集合に関連する更新前のユーザとしたり、該文書集合の登録の日時が最も古いものとして登録される原作成者のユーザとしたりすることができるが、特に限定されるものではない。
【００７７】
ステップＳ３０４では、更新告知判定部７０は、終了条件を満たすか否かを判定する。終了条件としては、例えば、ユーザやシステムからの終了シグナルを受信することを条件とすることができるが、特に限定されるものではない。ステップＳ３０４で、終了条件を満たさないと判定された場合（ＮＯ）には、ステップＳ３０６へ処理を分岐させ、所定の時間待機して、ステップＳ３０１へ処理をループさせる。一方、終了条件を満たすと判定された場合（ＹＥＳ）には、ステップＳ３０５へ処理を分岐させ、処理を終了させる。
【００７８】
上記更告知処理を適用することにより、新たな利用者が電子文書を閲覧した際に、その旨の情報が関係者に告知することができるため、本来は権限の無い利用者が閲覧していることを検知することが可能となり、文書管理上のセキュリティを向上させることが可能となる。また、ミーティング資料を電子メールにて配布するような場合、配布先の利用者が閲覧したか否か、つまりどの利用者がまだ閲覧していないかを把握することが可能となり、ミーティング開催時に、事前知識の共有が図られているか否かを判断することも可能となる。なお。上記開始条件および連絡先の選定は、本文書管理システムの利用目的に応じて適宜設定することができることは言うまでもない。
【００７９】
以上説明したように、本実施形態によれば、個々の情報処理装置にてアクセス可能なファイル・システム上で利用される電子文書につき、同一文書および派生文書を一群の文書集合として管理し、文書の流通状態を容易に把握することを可能とする文書管理システム、サーバ装置、クライアント装置、文書管理方法、プログラムおよび記録媒体を提供することが可能となる。また、文書の流通状態の変化を検知し、文書の流通状態を周知したり、文書の作成者の意図に反して同一文書や派生文書が氾濫してしまう蓋然性を好適に低減することを可能とする文書管理システム、サーバ装置、クライアント装置、文書管理方法、プログラムおよび記録媒体を提供することが可能となる。
【００８０】
また上記機能は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して頒布することができる。
【００８１】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８２】
【図１】文書管理システムの実施形態を示す概略図。
【図２】サーバのハードウェア構成の実施形態を示す図。
【図３】本実施形態のクライアントおよびサーバ上に実現される機能構成を示すブロック図。
【図４】（Ａ）ディスプレイ装置の画面上に表示されるＧＵＩ画面の一例を示す図、および（Ｂ）ユーザ情報テーブルのデータ構造を一例として示す図。
【図５】（Ａ）文書操作情報テーブル、（Ｂ）内容識別値テーブル、および（Ｃ）文書テーブルのデータ構造の第１の例を示す図。
【図６】本実施形態の文書操作情報の取得および送信処理を示すフローチャート。
【図７】文書管理テーブルのデータ構造の実施形態を示す図。
【図８】本実施形態の文書集合の生成および更新処理を示すフローチャート。
【図９】文書集合が生成される様子を模式的に示す図。
【図１０】文書集合ＤＢにて蓄積および管理されるテーブルのデータ構造の実施形態を示す図。
【図１１】（Ａ）文書操作情報テーブル、（Ｂ）内容識別値テーブル、および（Ｃ）文書テーブルのデータ構造の第２の例を示す図。
【図１２】（Ａ）結合テーブル、および（Ｂ）文書集合テーブルのデータ構造を例示する図。
【図１３】本実施形態のサーバ上に実現される更新告知機能に関連する機能構成を示すブロック図。
【図１４】本実施形態の更新告知処理を示すフローチャート。
【図１５】告知内容を生成する際に使用できるテンプレートを例示する図。
【図１６】メールメッセージの本文を一例として示す図。
【符号の説明】
【００８３】
１２…ＭＰＵ、１４…不揮発性メモリ、１６…メモリ、１８…記憶制御用インタフェース、２０…記憶装置、２２…内部バス、２４…インタフェース、２６…入出力装置、２８…ＶＲＡＭ、３０…グラフィック・チップ、３２…ディスプレイ装置、３４…ＮＩＣ、４０…クライアント処理部、４２…ユーザ情報取得部、４４…文書操作アプリケーション、４６…文書操作情報取得部、４８…内容識別値算出部、５０…サーバ処理部、５２…ユーザ認証部、５４…ユーザ情報ＤＢ、５６…文書操作情報管理部、５８…文書操作情報ＤＢ、６０…文書集合管理部、６２…文書集合ＤＢ、６４…文書集合生成部、６６…文書集合更新部、７０…更新告知判定部、７２…更新告知情報生成部、７４…更新告知部、１００…文書管理システム、１１０…サーバ、１２０…クライアント、１３０…ネットワーク、２００…ユーザ情報テーブル、２１０，４１０…文書操作情報テーブル、２２０，４２０…内容識別値テーブル、２３０，４３０…文書テーブル、２４０，４４０…結合テーブル、２５０，４５０…文書集合テーブル、２６０…文書ペア、３００…ＧＵＩ画面、３０２，３０４…テキストボックス、３０６…送信ボタン、３０８…キャンセル・ボタン
【図１】
2009276862.tif 000003
【図２】
2009276862.tif 000004
【図３】
2009276862.tif 000005
【図４】
2009276862.tif 000006
【図５】
2009276862.tif 000007
【図６】
2009276862.tif 000008
【図７】
2009276862.tif 000009
【図８】
2009276862.tif 000010
【図９】
2009276862.tif 000011
【図１０】
2009276862.tif 000012
【図１１】
2009276862.tif 000013
【図１２】
2009276862.tif 000014
【図１３】
2009276862.tif 000015
【図１４】
2009276862.tif 000016
【図１５】
2009276862.tif 000017
【図１６】
2009276862.tif 000018