(57)【要約】【課題】文書管理装置と情報処理装置とがネットワークを介してデータ通信可能に接続された文書管理システムにおいて、情報処理装置が保持する文書データを更新する際に、更新の必要性の有無を判断するために行われる文書データの同一性判別処理を効率よく行うことで、文書管理システムのパフォーマンスの低下を回避する。【解決手段】情報処理装置１１とネットワークを介してデータ通信可能に接続され、複数の文書構成要素からなる文書データを共有して管理する文書管理装置１は、送信対象の文書構成要素の内容に対応したハッシュ値を生成し、更にハッシュ値を統合して統合ハッシュ値を生成し、情報処理装置１１で保持される文書データが利用される際に、これらハッシュ値・統合ハッシュ値の比較によって文書データの同一性判別を行う構成である。【選択図】図１２
2011076139.tif 000002
【特許請求の範囲】
【請求項１】
所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有し、ネットワークを介して接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するように管理する文書管理装置であって、
前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成し、前記記憶部に記憶された複数の文書データのそれぞれから生成した複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成する統合ダイジェストデータ生成手段と、
前記記憶部に記憶された複数の文書データと、前記所定の記憶領域に記憶された複数の文書データとで内容が異なるものが存在するか否かを、前記統合ダイジェストデータ生成手段により生成された合成ダイジェストデータの比較により判定するデータ判別手段と、
を備えることを特徴とする文書管理装置。
【請求項２】
前記データ判別手段は、
前記記憶部に記憶された複数の文書データのうち、前記所定の記憶領域に記憶された文書データと内容が異なるものを、前記統合ダイジェストデータ生成手段により生成された文書ダイジェストデータの比較により特定することを特徴とする請求項１記載の文書管理装置。
【請求項３】
前記記憶部に記憶される文書データは、複数の文書構成要素から構成されており、
各文書構成要素の内容に対応したダイジェストデータを生成するダイジェストデータ生成手段を更に備え、
前記統合ダイジェストデータ生成手段は、
前記記憶部に記憶された文書データを構成する複数の文書構成要素のそれぞれから生成した複数のダイジェストデータに基づいて、各文書データの内容に対応した文書ダイジェストデータを生成することを特徴とする請求項１または２記載の文書管理装置。
【請求項４】
前記データ判別手段は、
前記記憶部に記憶された文書データを構成する複数の文書構成要素のうち、前記所定の記憶領域に記憶された文書データを構成する文書構成要素と内容が異なるものを、前記ダイジェストデータ生成手段により生成されたダイジェストデータの比較により特定することを特徴とする請求項３記載の文書管理装置。
【請求項５】
所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有し、ネットワークを介して接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するように管理する文書管理装置であって、
前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成し、前記記憶部に記憶された複数の文書データのそれぞれから生成した複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成する統合ダイジェストデータ生成手段と、
前記記憶部に記憶された複数の文書データと、前記所定の記憶領域に記憶された複数の文書データとで内容が異なるものが存在するか否かを、前記統合ダイジェストデータ生成手段により生成された合成ダイジェストデータの比較により判定させるために、前記情報処理装置に対して前記合成ダイジェストデータを送信するデータ送信手段と、
を備えることを特徴とする文書管理装置。
【請求項６】
請求項５に記載の文書管理装置とネットワークを介してデータ通信可能に接続される情報処理装置であって、
所定の記憶領域に複数の文書データを記憶するデータ記憶手段と、
前記文書管理装置における所定の記憶部に記憶されている複数の文書データと、前記所定の記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記文書管理装置において生成された合成ダイジェストデータの比較により判定するデータ判別手段と、
を備えることを特徴とする情報処理装置。
【請求項７】
情報処理装置と文書管理装置とがネットワークを介して相互にデータ通信可能に接続され、前記情報処理装置と前記文書管理装置とのそれぞれで保持される複数の文書データの同一性を保持するように管理する文書管理システムであって、
前記文書管理装置は、
所定の記憶部に複数の文書データを記憶する文書データ記憶手段と、
前記記憶部に記憶される各文書データの内容に対応した文書ダイジェストデータを生成し、前記記憶部に記憶される複数の文書データのそれぞれから生成した複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成する統合ダイジェストデータ生成手段と、
を備え、
前記情報処理装置は、
所定の記憶領域に複数に文書データを記憶するデータ記憶手段を備え、
前記文書管理装置および前記情報処理装置の少なくとも一方は、
前記記憶部に記憶されている複数の文書データと、前記記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記統合ダイジェストデータ生成手段により生成される合成ダイジェストデータの比較により判定するデータ判別手段を備えることを特徴とする文書管理システム。
【請求項８】
所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有する文書管理装置によって実行され、ネットワークを介して前記文書管理装置に接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するための文書管理プログラムであって、前記文書管理装置に、
前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成するステップと、
前記記憶部に記憶された複数の文書データのそれぞれから生成された複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成するステップと、
前記記憶部に記憶されている複数の文書データと、前記所定の記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記合成ダイジェストデータの比較により判定するステップと、
を実行させることを特徴とする文書管理プログラム。
【請求項９】
所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有する文書管理装置によって実行され、ネットワークを介して前記文書管理装置に接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するための文書管理プログラムであって、前記文書管理装置に、
前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成するステップと、
前記記憶部に記憶された複数の文書データのそれぞれから生成された複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成するステップと、
前記記憶部に記憶されている複数の文書データと、前記所定の記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記合成ダイジェストデータの比較により判定させるために、前記情報処理装置に対して前記合成ダイジェストデータを送信するステップと、
を実行させることを特徴とする文書管理プログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理装置、情報処理装置、文書管理システム、および文書管理プログラムに関し、特に文書データを共有する場合の文書データの管理を行うための技術に関する。
【背景技術】
【０００２】
データ管理システムには従来から、データを管理するサーバと、当該サーバにネットワークを介してデータ通信可能に接続されたクライアントとによって構成される、クライアント・サーバ型のデータ管理システムが存在する。また、このようなデータ管理システムには、サーバで管理されるデータと同じデータをクライアントでも保持し、サーバで管理されるデータが更新された場合に、クライアントが保持するデータの更新を行うものが存在する。そしてこのような更新を行う場合、サーバとクライアントとの間でデータの送受信を行うことになるので、更新の回数が増大すれば、ネットワークのトラフィックに大きな負担がかかり、文書管理システムのパフォーマンスが低下する。そこで、このような更新を行う際に、予めデータの内容の同一性を判別して、更新対象となるデータの内容が同一である場合にまで更新を行わないようにし、無駄なデータの送受信を防止してデータ管理システムのパフォーマンスの低下を回避する技術が存在する（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１２２６１８号公報
【０００４】
例えば、上記特許文献１では、自機が保持するマスターデータベースの列データからダイジェストデータを作成することができるサーバを備えるデータベースダウンロードシステムにおいて、最新のダイジェストデータと、クライアントによる直近の列データダウンロード時のダイジェストデータとを比較することにより、マスターデータベースの列データが直近のダウンロード時から更新されているか否かを判断する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
とこで、上記クライアント・サーバ型のデータ管理システムには、サーバが文書管理装置であり、クライアントが情報処理装置であって、管理対象が文書データであるような文書管理システムが存在する。このような文書管理システムにおいては、近年におけるパーソナルコンピュータの所有率の増加や、携帯性に優れるパーソナルコンピュータの普及により、クライアントである情報処理装置の台数が増加する傾向にある。従って、情報処理装置が保持するデータの更新を文書管理装置に対して要求することができる文書管理システムであれば、情報処理装置から文書管理装置に対して、非常に多くの更新要求が行われることになる。
【０００６】
このような環境下では、上述したような、情報処理装置が保持する文書データの更新を行う際に更新対象となる文書データの内容が同一である場合にまで文書データの更新を行わないようにするため、データの内容の同一性を判別する技術が適用されることも多い。このような技術が適用されれば、文書管理システムのパフォーマンスの低下はある程度回避される。しかし、それでも、少なくともその更新要求のたびに、文書管理装置と情報処理装置との間で、更新対象となるデータのやりとりを行い、それぞれが保持しているデータの中身を解析して同一性の判別を行う必要がある。ゆえに、上述のような文書管理システムにおいては、データ同一性の判別処理そのものが大きな負担となる。
【０００７】
このような判別処理に関して、従来から、データが持つ更新日付を用いてデータの内容を判別する技術がある。すなわち、文書管理装置が保持するデータと情報処理装置が保持するデータの更新日付を比較し、データが持つ更新日付が同じであるなら、データの内容が同じであるものと判断して、文書管理装置から情報処理装置へデータの送信を行わないようにし、データが持つ更新日付が異なるならば、データの内容が異なるものであると判断して、データの送信を行う、というものである。この技術では、判別を行うために、文書管理装置と情報処理装置との間で、更新対象となるデータそのものではなく、更新日付データのみを送受信すればよいので、文書管理システムにかかる負担は大きく抑えられることになる。
【０００８】
しかし、このような技術にも、次の２つの問題点がある。第１に、例えば、ひとつのフォルダに複数の文書データが記憶されている場合、それら複数の文書データの全てについて同一性の判別を行う際には複数の文書データのそれぞれについて更新日付の比較を行わなければならない。そのため、フォルダに格納される文書データの数が多くなればなるほど、更新日付の送受信回数や比較回数が増大し、文書管理システムにおける処理負担が大きくなる。また例えば、ひとつの文書データが複数の文書構成要素から構成される場合にも同様のことが言える。すなわち、ひとつの文書データの同一性を判断する際には複数の文書構成要素のそれぞれについて更新日付の比較を行わなければならないため、文書データを構成する文書構成要素の数が多くなればなるほど、更新日付の比較回数が増大し、処理負担が増大するという問題がある。第２に、データの更新日付が異なっても、データの内容が同じである場合があり、このような場合、文書管理装置と情報処理装置との間で無駄なデータの送受信が行われ、文書管理システムの処理負担が増大するという問題がある。  
【０００９】
上記第２の問題点に関して、例えば特許文献１のように、データの内容に対応したダイジェストデータを比較してデータ内容の同一性を判別する技術によれば、解決することが可能である。しかし、そのような技術であっても、上記第１の問題点を解決できない。すなわち、文書データが複数の文書構成要素から構成されており、かつそのような文書構成要素の数が多い場合には、ダイジェストデータの比較回数も多くなり、文書データが全体として同一であるか否かを判別する際には効率的な判別が行えず、文書管理システムに負担をかけることになる。
【００１０】
本発明は、上記２つの問題点を解決するためになされたものであり、情報処理装置が保持する文書データの更新の際に行われる、送信対象の文書データの内容の同一性を判別する処理において、文書管理装置と情報処理装置との間で無駄なデータの送受信を行わないようにするとともに、データの比較回数を抑えることによって、文書管理システムのパフォーマンス低下を回避するようにした文書管理装置、情報処理装置、文書管理システム、文書管理プログラム、および情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、請求項１にかかる発明は、所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有し、ネットワークを介して接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するように管理する文書管理装置であって、前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成し、前記記憶部に記憶された複数の文書データのそれぞれから生成した複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成する統合ダイジェストデータ生成手段と、前記記憶部に記憶された複数の文書データと、前記所定の記憶領域に記憶された複数の文書データとで内容が異なるものが存在するか否かを、前記統合ダイジェストデータ生成手段により生成された合成ダイジェストデータの比較により判定するデータ判別手段と、を備えることを特徴とする構成である。
【００１２】
また請求項２にかかる発明は、請求項１記載の文書管理装置において、前記データ判別手段は、前記記憶部に記憶された複数の文書データのうち、前記所定の記憶領域に記憶された文書データと内容が異なるものを、前記統合ダイジェストデータ生成手段により生成された文書ダイジェストデータの比較により特定することを特徴とする構成である。
【００１３】
また請求項３にかかる発明は、請求項１または２に記載の文書管理装置において、前記記憶部に記憶される文書データは、複数の文書構成要素から構成されており、各文書構成要素の内容に対応したダイジェストデータを生成するダイジェストデータ生成手段を更に備え、前記統合ダイジェストデータ生成手段は、前記記憶部に記憶された文書データを構成する複数の文書構成要素のそれぞれから生成した複数のダイジェストデータに基づいて、各文書データの内容に対応した文書ダイジェストデータを生成することを特徴とする構成である。
【００１４】
また請求項４にかかる発明は、請求項３に記載の文書管理装置において、前記データ判別手段は、前記記憶部に記憶された文書データを構成する複数の文書構成要素のうち、前記所定の記憶領域に記憶された文書データを構成する文書構成要素と内容が異なるものを、前記ダイジェストデータ生成手段により生成されたダイジェストデータの比較により特定することを特徴とする構成である。
【００１５】
また請求項５にかかる発明は、所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有し、ネットワークを介して接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するように管理する文書管理装置であって、前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成し、前記記憶部に記憶された複数の文書データのそれぞれから生成した複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成する統合ダイジェストデータ生成手段と、前記記憶部に記憶された複数の文書データと、前記所定の記憶領域に記憶された複数の文書データとで内容が異なるものが存在するか否かを、前記統合ダイジェストデータ生成手段により生成された合成ダイジェストデータの比較により判定させるために、前記情報処理装置に対して前記合成ダイジェストデータを送信するデータ送信手段と、を備えることを特徴とする構成である。
【００１６】
また請求項６にかかる発明は、請求項５に記載の文書管理装置とネットワークを介してデータ通信可能に接続される情報処理装置であって、所定の記憶領域に複数の文書データを記憶するデータ記憶手段と、前記文書管理装置における所定の記憶部に記憶されている複数の文書データと、前記所定の記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記文書管理装置において生成された合成ダイジェストデータの比較により判定するデータ判別手段と、を備えることを特徴とする構成である。
【００１７】
また請求項７にかかる発明は、情報処理装置と文書管理装置とがネットワークを介して相互にデータ通信可能に接続され、前記情報処理装置と前記文書管理装置とのそれぞれで保持される複数の文書データの同一性を保持するように管理する文書管理システムであって、前記文書管理装置は、所定の記憶部に複数の文書データを記憶する文書データ記憶手段と、前記記憶部に記憶される各文書データの内容に対応した文書ダイジェストデータを生成し、前記記憶部に記憶される複数の文書データのそれぞれから生成した複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成する統合ダイジェストデータ生成手段と、を備え、前記情報処理装置は、所定の記憶領域に複数に文書データを記憶するデータ記憶手段を備え、前記文書管理装置および前記情報処理装置の少なくとも一方は、前記記憶部に記憶されている複数の文書データと、前記記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記統合ダイジェストデータ生成手段により生成される合成ダイジェストデータの比較により判定するデータ判別手段を備えることを特徴とする構成である。
【００１８】
また請求項８にかかる発明は、所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有する文書管理装置によって実行され、ネットワークを介して前記文書管理装置に接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するための文書管理プログラムであって、前記文書管理装置に、前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成するステップと、前記記憶部に記憶された複数の文書データのそれぞれから生成された複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成するステップと、前記記憶部に記憶されている複数の文書データと、前記所定の記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記合成ダイジェストデータの比較により判定するステップと、を実行させることを特徴とする構成である。
【００１９】
また請求項９にかかる発明は、所定の記憶部に複数の文書データを記憶する文書データ記憶手段を有する文書管理装置によって実行され、ネットワークを介して前記文書管理装置に接続された情報処理装置とデータ通信を行うことによって前記記憶部に記憶された複数の文書データと、前記情報処理装置における所定の記憶領域に記憶された複数の文書データとの同一性を保持するための文書管理プログラムであって、前記文書管理装置に、前記記憶部に記憶された各文書データの内容に対応した文書ダイジェストデータを生成するステップと、前記記憶部に記憶された複数の文書データのそれぞれから生成された複数の文書ダイジェストデータに基づいて、前記複数の文書ダイジェストデータの内容に対応した合成ダイジェストデータを生成するステップと、前記記憶部に記憶されている複数の文書データと、前記所定の記憶領域に記憶されている複数の文書データとで内容が異なるものが存在するか否かを、前記合成ダイジェストデータの比較により判定させるために、前記情報処理装置に対して前記合成ダイジェストデータを送信するステップと、を実行させることを特徴とする構成である。
【発明の効果】
【００２０】
本発明によれば、情報処理装置が保持するデータの更新の際に行われる、送信対象のデータの内容の同一性を判別する処理において、送信対象のデータの内容に対応したダイジェストデータを統合して生成する文書ダイジェストデータおよび合成ダイジェストデータを判定に用いることにより、文書管理装置と情報処理装置との間で無駄なデータの送受信を行わないようにするとともに、データの比較回数を抑えることができる。それ故、文書管理システムのパフォーマンス低下を回避することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】文書管理システムの一構成例を示す図である。
【図２】文書データの一例を示す図である。
【図３】文書管理装置のハードウェア構成の一例を示すブロック図である。
【図４】情報処理装置のハードウェア構成の一例を示すブロック図である。
【図５】文書管理装置の制御部がプログラムを実行することによって実現される詳細な機能構成を示すブロック図である。
【図６】文書構成要素のハッシュ値および文書データの文書ハッシュ値生成の概念図である。
【図７】フォルダのフォルダハッシュ値生成の概念図である。
【図８】情報処理装置の制御部がシステムプログラムおよびアプリケーションプログラムを実行することによって実現される詳細な機能構成を示すブロック図である。
【図９】文書管理装置が情報処理装置から文書構成要素を受信する場合の処理手順の一例を示すフローチャートである。
【図１０】文書管理装置が情報処理装置からハッシュ値・統合ハッシュ値要求を受信する場合の処理手順の一例を示すフローチャートである。
【図１１】情報処理装置においてユーザがフォルダをクリックする場合の処理手順の一例を示すフローチャートである。
【図１２】データ判定処理の詳細な処理手順の一例を示すフローチャートである。
【図１３】データ判別処理を、具体例により説明するための図である。
【図１４】データ判別処理を、具体例により説明するための図である。
【図１５】データ判別処理を、具体例により説明するための図である。
【発明を実施するための形態】
【００２２】
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
【００２３】
図１は、本実施形態における文書管理システムの一構成例を示す図である。この文書管理システムは、いわゆるクライアント・サーバ型の文書管理システムであり、サーバとして機能する文書管理装置１と、クライアントとして機能する複数の情報処理装置１１（１１ａ、１１ｂ、・・・）とを備えている。文書管理装置１および複数の情報処理装置１１のそれぞれは、ＬＡＮやＷＡＮなどのネットワーク１０を介して相互にデータ通信可能に接続されている。
【００２４】
文書管理システムは、文書管理装置１と情報処理装置１１とで同一の文書データを保持し、文書管理装置１で保持する文書データが更新されると、情報処理装置１１がその更新された文書データを文書管理装置１からダウンロードすることにより、文書管理装置１と情報処理装置１１とのそれぞれで保持される文書データの整合性を保持するように構成される。それ故、文書管理装置１は、ネットワーク１０を介して、情報処理装置１１において保持される文書データに対応した文書データを保持する。ここで、文書管理装置１に保持される文書データと、情報処理装置１１に保持される文書データとの対応関係は、文書データの所定のプロパティ、例えばファイル名などによって判断される。つまり、文書管理装置１に保持される文書データのプロパティと、情報処理装置１１に保持される文書データのプロパティとが互いに一致すれば、それらの文書データは互いに対応するデータである。
【００２５】
図１の例では、文書管理装置１は文書データ１００ａを保持している。このとき、情報処理装置１１ａは、文書データ１００ａと同一プロパティを有する文書データ１００ｂを保持し、情報処理装置１１ｂは、文書データ１００ａと所定の同一プロパティを有する文書データ１００ｃを保持する。この場合、文書管理装置１に保持される文書データ１００ａと、情報処理装置１１ａ，１１ａのそれぞれで保持される文書データ１００ｂ，１００ｃとは互いに対応するデータである。
【００２６】
図２は、本実施形態における文書データ１００の一例を示す図である。ここで、文書データ１００は、文書管理装置１で保持される文書データ１００ａおよび情報処理装置１１ａ，１１ａのそれぞれで保持される文書データ１００ｂ，１００ｃを総称するものである。この文書データ１００は、複数の文書構成要素１９０から構成される。文書構成要素１９０として、例えば文書本体データ１０１や、サムネイル１０２や、データベース１０３や、およびセキュリティ情報１０４などが挙げられる。文書本体データ１０１とは、例えばテキストファイルなどの文書ファイル本体のことをいう。サムネイル１０２は、文書本体データ１０１のサムネイルデータである。データベース１０３は、文書本体データ１０１のプロパティ情報、例えば文書本体データ１０１のオーナ情報やアクセス権等を管理するデータベースデータである。セキュリティ情報１０４は、電子署名等の、文書本体データ１０１のセキュリティに関するデータである。
【００２７】
文書データ１００は、文書構成要素１９０として、少なくとも文書本体データ１０１を含む。また文書データ１００は、文書本体データ１０１以外の３つの文書構成要素を含むか否かは任意である。つまり、文書データ１００が、文書本体データ１０１のみから構成されている場合もあり、また文書本体データ１０１、データベース１０３、およびセキュリティ情報１０４という３つの文書構成要素１９０から構成されている場合もある。尚、データベース１０３は必ずしも文書本体データ１０１のプロパティ情報を管理するものに限られず、他の情報を管理するものであってもよい。また、文書データ１００は、文書構成要素１９０として、これ以外のデータを含んでいてもよい。
【００２８】
図１に戻り、文書管理装置１は、文書データ１００ａを構成するデータとして、文書構成要素１９０ａを保持している。この文書構成要素１９０ａは、情報処理装置１１ａにおいて保持される文書データ１００ｂを構成する文書構成要素１９０ｂに対応する。また文書構成要素１９０ａは、情報処理装置１１ｂにおいて保持される文書データ１００ｃを構成する文書構成要素１９０ｃに対応する。文書管理装置１に保持される文書構成要素１９０ａと、情報処理装置１１ａ，１１ｂに保持される文書構成要素１９０ｂ，１９０ｃとの対応関係は、同種の文書構成要素であるか否かにより判断され、例えばデータの拡張子などで判断される。そして文書データ１００ａの文書構成要素１９０ａと、文書データ１００ｂ，１００ｃの文書構成要素１９０ｂ，１９０ｃとが、同種の文書構成要素であれば、それらは互いに対応した文書構成要素となる。
【００２９】
図１の例では、文書管理装置１が保持する文書データ１００ａには、文書構成要素１９０ａが含まれている。このとき、情報処理装置１１ａが保持する文書データ１００ｂには、文書構成要素１９０ａと同種の文書構成要素１９０ｂ含まれ、情報処理装置１１ｂが保持する文書データ１００ｃには、文書構成要素１９０ａと同種の文書構成要素１９０ｃが含まれる。具体的には、文書管理装置１が保持する文書データ１００ａにサムネイル１０２が含まれていれば、情報処理装置１１ａが保持する文書データ１００ｂにも、それに対応するサムネイル１０２が含まれる。同様に、文書データ１００ａにデータベース１０３が含まれれば、情報処理装置１１ｂが保持する文書データ１００ｃにもそれに対応するデータベース１０３が含まれる。
【００３０】
本実施形態の文書管理システムは、文書管理装置１で保持される文書データ１００ａの内容と、各情報処理装置１１で保持される文書データ１００ｂ，１００ｃの内容とが同一になるように、文書管理装置１と情報処理装置１１との間でネットワーク１０を介してデータの送受信を行うように構成されている。ここで、文書データ１００ａと文書データ１００ｂの内容が同一であるとは、文書データ１００ａに含まれる文書構成要素１９０ａの内容と、文書データ１００ｂに含まれる文書構成要素１９０ｂの内容が、全て同一であることをいう。例えば、文書データ１００ａが、文書本体データ１０１ａと、サムネイル１０２ａと、データベース１０３ａと、セキュリティ情報１０４ａとから構成されており、文書データ１００ｂが、文書本体データ１０１ｂと、サムネイル１０２ｂと、データベース１０３ｂと、セキュリティ情報１０４ｂとから構成されている場合に、文書本体データ１０１ａと１０１ｂとが同一内容であり、サムネイル１０２ａと１０２ｂとが同一内容であり、データベース１０３ａと１０３ｂとが同一内容であり、およびセキュリティ情報１０４ａと１０４ｂとが同一内容であるなら、文書データ１００ａの内容と文書データ１００ｂの内容は同一である。同様に、文書データ１００ａと文書データ１００ｃの内容が同一であるとは、文書構成要素１９０ａの内容と文書構成要素１９０ｃの内容が全て同一であることをいう。
【００３１】
また文書管理装置１は、文書データ１００ａを所定のフォルダ２００ａに記憶して管理する。そして情報処理装置１１ａは、文書管理装置１におけるフォルダ２００ａに対応するフォルダ２００ｂに文書データ１００ｂを記憶して管理する。同様に、情報処理装置１１ａは、文書管理装置１におけるフォルダ２００ａに対応するフォルダ２００ｃに文書データ１００ｃを記憶して管理する。ここで、文書管理装置１におけるフォルダ２００ａと、情報処理装置１１におけるフォルダ２００ｂ，２００ｃとの対応関係は、それぞれのフォルダの所定のプロパティ、例えばフォルダ名などによって判断される。つまり、文書管理装置１のフォルダ２００ａのプロパティと、情報処理装置１１のフォルダ２００ｂ，２００ｃのプロパティとが互いに一致すれば、それらのフォルダは互いに対応するフォルダである。図１の例では、文書管理装置１は、文書データ１００ａをフォルダ２００ａに格納している。このとき、情報処理装置１１ａは、文書データ１００ｂを、フォルダ２００ａと同一フォルダ名のフォルダ２００ｂに格納し、情報処理装置１１ｂは、文書データ１００ｃを、フォルダ２００ａと同一フォルダ名のフォルダ２００ｃに格納する。
【００３２】
したがって、本実施形態の文書管理システムでは、文書管理装置１における文書データ１００ａのデータ保持構造と、情報処理装置１１における文書データ１００ｂ，１００ｃのデータ保持構造とが同一となっており、文書管理装置１と情報処理装置１１とのそれぞれで同一の文書データを共有して保持するようになっている。
【００３３】
情報処理装置１１（１１ａ、１１ｂ・・）は、例えば市販のパーソナルコンピュータ（ＰＣ）などで構成される。情報処理装置１１ａは、文書管理装置１が保持する文書データ１００ａを、ネットワーク１０を介して更新することができる。すなわち、文書管理装置１が保持している文書データ１００ａの内容を、文書管理装置１に対して文書データ１００ｂを送信することによって、文書管理装置１に書き換えさせることができる。また、情報処理装置１１は、自機が保持する文書データ１００ｂの内容を、ネットワーク１０を介して文書管理装置１から受信した文書データ１００ａにより更新することができる。同様に、情報処理装置１１ｂも、文書管理装置１が保持する文書データ１００ａを自機が保持する文書データ１００ｃによって更新でき、また自機が保持する文書データ１００ｃを、文書管理装置１が保持する１００ａによって更新できる。
【００３４】
本実施形態の文書管理システムにおいて、情報処理装置１１のユーザが文書データ１００を利用する際、情報処理装置１１が参照する文書データ１００は当該情報処理装置１１において保持している文書データ１００である。すなわち、ユーザは、情報処理装置１１で保持される文書データ１００を閲覧等することになる。ここで例えば、情報処理装置１１ａのユーザが文書データ１００ｂに対する編集作業を行って、文書データ１００ｂを更新すると、それに伴い、情報処理装置１１は、更新された文書データ１００ｂを文書管理装置１に送信して文書データ１００ａの内容を、更新された文書データ１００ｂの内容に更新する。すると、情報処理装置１１ｂは、文書管理装置１が保持する文書データ１００ａとは異なる内容の文書データ１００ｃを保持することになる。この状態で、情報処理装置１１ｂが、そのまま自機で保持する文書データ１００ｃをユーザに表示すれば、ユーザは、文書管理装置１が保持する文書データ１００ａと異なる内容の文書データ１００ｃを利用することになり、文書の統一が図れない。
【００３５】
そのため、本実施形態におけるクライアント・サーバ型の文書管理システムでは、各情報処理装置１１において保持される文書データ１００ｂ，１００ｃが利用される際、文書管理装置１において保持される文書データ１００ａが更新されて異なるデータとなっているか否かを判断し、その結果、異なるデータに更新されていれば、情報処理装置１１が文書管理装置１から更新された文書データ１００ａをダウンロードし、その文書データ１００ａにより、各情報処理装置１１において保持されている文書データ１００ｂ，１００ｃを更新するように構成される。その結果、各情報処理装置１１では、この更新された文書データ１００ｂ，１００ｃに基づいてユーザに対する表示を行うことができるようになり、システム全体で利用される文書の統一が行える。
【００３６】
以下、このような文書管理システムについて更に詳しく説明する。尚、文書管理システムに設けられる複数の情報処理装置１１のそれぞれは情報処理装置１１ａと同様の機能および構成であるので、以下においては情報処理装置１１として、情報処理装置１１ａを例に挙げて説明する。
【００３７】
図３は、文書管理装置１のハードウェア構成の一例を示すブロック図である。図３に示すように文書管理装置１は、制御部２０と、ネットワークインタフェース２３と、記憶装置３０とを備え、これらがデータバス２４を介して接続されている。制御部２０は、ＣＰＵ２１とメモリ２２とを備えており、ＣＰＵ２１が、記憶装置３０に記憶されているプログラム３３を読み出して実行することにより、各部の動作を制御する。メモリ２２は、ＣＰＵ２１がプログラム３３を実行する際に一時的なデータなどを記憶するためのものである。
【００３８】
ネットワークインタフェース２３は、ネットワーク１０を介して情報処理装置１１とデータ通信を行うためのものである。
【００３９】
記憶装置３０は、例えばハードディスク装置などの不揮発性記憶装置によって構成される。この記憶装置３０には、文書管理装置１に予めインストールされたプログラム３３が記憶される。また記憶装置３０には、文書データ１００ａを格納する文書データ記憶部３１、および文書管理装置１において生成されるハッシュ値および統合ハッシュ値を格納するハッシュ値・統合ハッシュ値記憶部３２が設けられる。尚、ハッシュ値および統合ハッシュ値とは、文書データの内容等に対応した一定長のデータのことであるが、これについては後述する。また文書データ記憶部３１には、上述したように、情報処理装置１１のフォルダ２００ｂと対応するフォルダ２００ａが文書データ１００ａを記憶するための記憶領域（記憶部）として設けられる。
【００４０】
図４は、情報処理装置１１ａのハードウェア構成の一例を示すブロック図である。図４に示すように情報処理装置１１ａは、制御部４０と、ネットワークインタフェース４３と、表示部４４と、入力部４５と、記憶装置５０とを備え、これらがデータバス４６を介して接続されている。
【００４１】
制御部４０は、ＣＰＵ４１とメモリ４２とを備えており、ＣＰＵ４１が記憶装置５０に記憶されているプログラム５３および５４を読み出して実行することにより、各部の制御や、各種の演算処理を行う。メモリ４２はプログラム５３および５４の実行時に一時的に生成されるデータなどを記憶する。
【００４２】
ネットワークインタフェース４３は、ネットワーク１０を介して文書管理装置１とデータ通信を行うためのものである。
【００４３】
表示部４４は、文書データに基づいて文書情報を表示したり、その他の情報を表示したりする表示手段であり、例えば液晶ディスプレイなどで構成される。また入力部４５は、ユーザが操作することにより各種信号を入力する入力手段であり、例えばキーボードやマウスなどを備えて構成される。
【００４４】
記憶装置５０は、例えばハードディスク装置などの不揮発性記憶装置によって構成される。この記憶装置５０には、情報処理装置１１に予めインストールされたプログラム５３および５４が記憶される。システムプログラム５３は、オペレーティングシステムである。また、アプリケーションプログラム５４は、自機が保持する文書データ１００ｂを閲覧したり、また文書管理装置１が保持する文書データ１００ａを更新したり、等するためのプログラムである。また記憶装置５０には、文書データ１００ｂを格納する文書データ記憶部５１、および文書管理装置１から受信するハッシュ値および統合ハッシュ値を格納するハッシュ値・統合ハッシュ値記憶部５２が設けられる。ここで、文書データ記憶部５１には、上述したように、文書管理装置１のフォルダ２００ａと対応するフォルダ２００ｂが文書データ１００ｂを記憶するための記憶領域として設けられる。
【００４５】
上述したように、情報処理装置１１ａは、自機で保持する文書データ１００ｂにより、文書管理装置１で保持される文書データ１００ａを更新することができる。同様に、他の情報処理装置１１ｂも、文書管理装置１で保持される文書データ１００ａを更新することがある。他の情報処理装置１１ｂが文書管理装置１で保持される文書データ１００ａを更新した場合、情報処理装置１１ａで保持する文書データ１００ｂは文書管理装置１の文書データ１００ａと異なった内容のデータとなる。そこで、情報処理装置１１ａは、自機が保持する文書データ１００ｂを文書管理装置１が保持する文書データ１００ａで更新することによって、文書データ１００ｂが文書データ１００ａと同一の内容となるようにしている。本実施形態では、情報処理装置１１ａが文書管理装置１からダウンロードして文書データ１００ｂを更新する処理は、例えばユーザが情報処理装置１１ａに対して文書データ１００ｂを閲覧等するなどの指示を行った際に行われるようになっている。
【００４６】
このとき、本実施形態では、文書管理装置１で保持される文書データ１００ａに含まれる文書構成要素１９０ａのうち、情報処理装置１１ａで閲覧対象等として選択された文書データ１００ｂに含まれる文書構成要素１９０ｂと内容が異なるものが存在するか否かを判別し、内容の異なるものが存在すればその文書構成要素１９０ａを特定する。このような判別処理は、情報処理装置１１ａにおいて行っても良いし、また文書管理装置１で行っても良い。そして文書構成要素１９０ｂと内容の異なる文書構成要素１９０ａが特定されると、文書管理装置１が、情報処理装置１１ａに対して、その特定された文書構成要素１９０ａのみを送信する。これにより、情報処理装置１１ａが保持する文書データ１００ｂの更新を行うことができる。本実施形態では、このような判別処理を情報処理装置１１ａで行う場合を例示する。情報処理装置１１ａにおいて判別処理を行うことで、例えば文書管理装置１とネットワーク１０を介して接続されている情報処理装置１１の台数が多い場合でも、文書管理装置１の処理パフォーマンスへの負担が大きく軽減することができる。
【００４７】
情報処理装置１１ａが判別処理を行う際、文書管理装置１で生成されるハッシュ値（ダイジェストデータ）を参照して判別を行う。以下、詳しく説明する。本実施形態においては、文書構成要素１９０ａまたは文書構成要素１９０ｂの内容に対応したデータであるハッシュ値（ダイジェストデータ）と、文書データ１００ａまたは文書データ１００ｂの内容に対応したデータである文書ハッシュ値（文書ダイジェストデータ）と、フォルダ２００ａまたはフォルダ２００ｂの内容に対応したデータであるフォルダハッシュ値（合成ダイジェストデータ）、の３種類のハッシュ値を用いて、文書構成要素１９０ｂと異なる内容の文書構成要素１９０ａが存在するか否かを判別する。尚、フォルダハッシュ値が対応するフォルダの内容については、後述する。
【００４８】
まず文書管理装置１において行われる処理について説明する。文書管理装置１は、複数の文書構成要素１９０ａのそれぞれから、各文書構成要素１９０ａの内容に対応したハッシュ値を生成する。次に文書データ１００ａの内容に対応した文書ハッシュ値と、フォルダ２００ａの内容に対応したフォルダハッシュ値とを生成する。文書管理装置１では、これら各種ハッシュ値を文書データ１００ａのデータ保持構造に対応付けて記憶しておく。そして、情報処理装置１１ａから、文書構成要素１９０ａの送信要求があった場合、文書管理装置１は、文書構成要素１９０ａと共に、それらハッシュ値を情報処理装置１１ａに送信する。これにより情報処理装置１１ａでは、文書データ１００ｂのデータ保持構造に対応したハッシュ値が保持されることになる。
【００４９】
文書管理装置１で保持される文書データ１００ａ又はその文書構成要素１９０ａと、情報処理装置１１ａで保持される文書データ１００ｂ又はその文書構成要素１９０ｂとが同一の内容であれば、文書管理装置１で保持される各種ハッシュ値と、情報処理装置１１ａで保持される各種ハッシュ値とが一致した値となる。これに対し、文書管理装置１で保持される文書データ１００ａ又はその文書構成要素１９０ａと、情報処理装置１１ａで保持される文書データ１００ｂ又はその文書構成要素１９０ｂとが互いに異なる内容となっていれば、文書管理装置１で保持される各種ハッシュ値と、情報処理装置１１ａで保持される各種ハッシュ値とが異なる値となる。
【００５０】
そのため、本実施形態では、情報処理装置１１ａが上記判別処理を行う際、文書管理装置１においてその時点で保持されている各種ハッシュ値を取得し、情報処理装置１１ａで保持しているハッシュ値との比較を行う。具体的には、文書ハッシュ値およびフォルダハッシュ値を比較することにより、文書データ１００ａと文書データ１００ｂの内容が異なっているか否かを判別し、その後、文書構成要素ごとのハッシュ値を用いて文書構成要素１９０ｂと内容の異なる文書構成要素１９０ａを特定する。これにより、例えば文書データ１００ａと文書データ１００ｂの内容が同一である場合に、これらの文書データの文書ハッシュ値を比較すれば、文書構成要素１９０ａと文書構成要素１９０ｂとを個別に比較することなしに、文書構成要素１９０ａと文書構成要素１９０ｂとは全て同一データ内容の文書構成要素で構成されていることが判明する。また、フォルダ２００ａのフォルダハッシュ値とフォルダ２００ｂのフォルダハッシュ値とを比較すれば、それぞれのフォルダ２００ａ，２００ｂに複数の文書データが記憶されている場合であっても、それらを個別に比較することなしに全ての文書データが同一内容であることが判明する。この場合、各文書データに含まれる複数の文書構成要素１９０のそれぞれについて個別に比較することなく、文書構成要素１９０ａと文書構成要素１９０ｂとが全て同一内容であることが明らかになる。
【００５１】
このように本実施形態では、文書管理装置１で保持される複数の文書構成要素１９０ａのうち、情報処理装置１１ａで保持される文書構成要素１９０ｂと内容が異なるものが存在するかを判別する際、フォルダハッシュ値、文書ハッシュ値およびハッシュ値の順でハッシュ値比較を行っていく。このような判別手法を用いれば、異なる内容の文書構成要素を全て特定するために必要なデータの比較回数を抑えることができ、文書管理システムのパフォーマンスの低下を回避することができるようになる。
【００５２】
ここで、本実施形態においては、文書ハッシュ値およびフォルダハッシュ値を総称して統合ハッシュ値という。従って、上述した判別手法では、まず統合ハッシュ値を用いて、フォルダ２００ａの内容とフォルダ２００ｂの内容が異なるか否かを判別し、異なる場合は次に文書データ１００ａの内容と文書データ１００ｂの内容が異なるか否かを判別する。そしてさらに異なる場合には、その後、ハッシュ値を用いて文書構成要素１９０ｂと内容が異なる文書構成要素１９０ａを特定することになる。
【００５３】
このような本実施形態の文書管理システムにおいて、ユーザが情報処理装置１１ａを用いて文書データ１００ｂを利用しようとした場合、まず、データ判別を行わせるために、情報処理装置１１ａに対して文書管理装置１が生成したハッシュ値および統合ハッシュ値を送信する。そして情報処理装置１１ａが、文書管理装置１から受信したハッシュ値および統合ハッシュ値を用いてデータ判別を行った後、文書構成要素１９０ｂと内容が異なる文書構成要素１９０ａが存在すれば、その文書構成要素１９０ａの送信を文書管理装置１に対して要求する。これにより、文書管理装置１は要求のあった文書構成要素１９０ａのみを情報処理装置１１ａに送信する。そして情報処理装置１１ｂは、自機で保持している文書構成要素１９０ｂを、文書管理装置１から受信した文書構成要素１９０ａにより更新する。このような一連の処理を行うことで、文書データ１００ａと、文書データ１００ｂとが同一のデータ内容として構成される。つまり、文書管理装置１と情報処理装置１１ａとでデータの同一性が保持される。
【００５４】
そして本実施形態では、上述の判別処理をハッシュ値および統合ハッシュ値を用いて行うので、従来の方法に比べデータ処理の負担が軽減されることとなり、文書管理システム全体のパフォーマンスの低下を回避できる。尚、上述した例では、主として情報処理装置１１ａと文書管理装置１との関係について説明したが、他の情報処理装置１１ｂについても同様である。
【００５５】
次に上記のような動作を実現するための、文書管理装置１における具体的な内部機能について説明する。図５は、文書管理装置１の制御部２０がプログラム３３を実行することによって実現される詳細な機能構成を示すブロック図である。尚、図５では、文書管理装置１が保持する文書データ１００ａの更新後、新たに更新後の文書データ１００ａについてハッシュ値・統合ハッシュ値を生成する機能、および、ユーザが情報処理装置１１ａを操作して文書データ１００ｂを閲覧等しようとした場合に、文書データ１００ａと文書データ１００ｂとを同一内容にするため、文書管理装置１が情報処理装置１１ａに文書構成要素１９０ａを送信する機能に関するブロックのみを示しており、それ以外の機能については図示を省略している。
【００５６】
図５に示すように、制御部２０は、プログラム３３を実行することにより、文書データ更新部６０、ハッシュ値生成部６１、統合ハッシュ値生成部６２、文書ハッシュ値生成部６３、フォルダハッシュ値生成部６４、ハッシュ値・統合ハッシュ値送信部６５、文書構成要素送信部６６として機能する。
【００５７】
文書データ更新部６０は、文書管理装置１が保持する文書データ１００ａの更新を行う。具体的には、情報処理装置１１ａから文書構成要素１９０ｂが送信されてきた場合に、文書データ記憶部３１に格納されている文書構成要素１９０ａを、当該送信されてきた文書構成要素１９０ｂに書き換える。これにより、文書構成要素１９０ａの内容は、送信されてきた文書構成要素１９０ｂの内容と同一になる。
【００５８】
ハッシュ値生成部６１は、文書データ更新部６０により文書データ１００ａが更新された場合に機能し、文書データ更新部６０により書き換えられた文書構成要素１９０ａから、ハッシュ値を生成する。具体的には、文書データ更新部６０により書き換えられた文書構成要素１９０ａを、記憶装置３０に格納されている所定のハッシュ関数に入力し、文書構成要素１９０ａの内容に対応した一定長のデータであるハッシュ値の出力を得る。つまり、ハッシュ値生成部６１は、文書データ更新部６０により書き換えられた文書構成要素１９０ａの、書き換え後の内容に対応するハッシュ値を生成する。ここで、ハッシュ関数とは、入力したデータの内容に対応した、一定長のデータを出力する関数のことをいう。ハッシュ関数は、入力されるデータの内容が異なる場合は、異なるデータをハッシュ値として出力する。従って、ハッシュ関数の出力であるハッシュ値を比較すれば、文書構成要素１９０ｂと内容が異なる文書構成要素１９０ａを特定できる。そしてハッシュ値生成部６１は、上述のようにして生成したハッシュ値により、ハッシュ値・統合ハッシュ値記憶部３２に設けられたハッシュ値記憶部３４に記憶されているハッシュ値を更新する。具体的には、ハッシュ値記憶部３４に記憶されている、文書データ更新部６０による書き換え前の文書構成要素１９０ａのハッシュ値を、上述のようにして新たに生成した書き換え後の文書構成要素１９０ａのハッシュ値に書き換える。
【００５９】
図６（ａ）は、文書データ更新部６０により更新された文書データ１１０ａの文書ハッシュ値生成概念図である。ここで、文書データ１１０ａは、文書データ１００ａの一例である。すなわち、文書管理装置１が文書データ１１０ａを保持し、文書データ１１０ａと同一のプロパティを有する文書データ１１０ｂを、情報処理装置１１ａが保持していると仮定する。尚、図６では、文書構成要素１９０ａは文書本体データ１１１ａ、サムネイル１１２ａ、データベース１１３ａ、およびセキュリティ情報１１４ａの４つであり、これらは全て文書データ更新部６０により書き換えられているものとする。この場合、ハッシュ値生成部６１は、文書本体データ１１１ａをハッシュ関数８０に入力し、その文書本体データ１１１ａの内容に対応したハッシュ値３１１ａを得る。またサムネイル１１２ａをハッシュ関数８０に入力し、そのサムネイル１１２ａの内容に対応したハッシュ値３１２ａを得る。またデータベース１１３ａをハッシュ関数８０に入力し、そのデータベース１１３ａの内容に対応したハッシュ値３１３ａを得る。またセキュリティ情報１１４ａをハッシュ関数８０に入力し、そのセキュリティ情報１１４ａの内容に対応したハッシュ値３１４ａを得る。以上のようにしてハッシュ値生成部６１は、文書データ更新部６０により更新された文書データ１１０ａに含まれる各文書構成要素１９０ａのハッシュ値を生成する。
【００６０】
統合ハッシュ値生成部６２は、文書ハッシュ値生成部６３とフォルダハッシュ値生成部６４とを備えている。文書ハッシュ値生成部６３は文書ハッシュ値を生成し、フォルダハッシュ値生成部６４はフォルダハッシュ値を生成する。ハッシュ値生成部６１により新たにハッシュ値が生成された場合に文書ハッシュ値生成部６３が機能し、文書ハッシュ値生成部６３による文書ハッシュ値の生成が終わった後、フォルダハッシュ値生成部６４が機能する。
【００６１】
文書ハッシュ値生成部６３は、文書データ更新部６０により更新された文書データ１００ａにつき、文書データ１００ａを構成する複数の文書構成要素１９０ａのそれぞれに基づいて文書データ１００ａの内容に対応した文書ハッシュ値を生成する。具体的には、文書データ１００ａを構成する複数の文書構成要素１９０ａのそれぞれの内容に対応した複数のハッシュ値を、ハッシュ関数に入力し、当該文書データ１００ａの内容に対応した一定長のデータである文書ハッシュ値の出力を得る。このとき、文書データ更新部６０により書き換えられた文書構成要素１９０ａについては、ハッシュ値生成部６１において生成されたハッシュ値を用い、文書データ更新部６０により書き換えられていない文書構成要素１９０ａについては、ハッシュ値記憶部３４から読み込んだハッシュ値を用いることになる。つまり、文書ハッシュ値生成部６３は、文書データ更新部６０により更新された文書データ１００ａの、更新後の内容に対応した文書ハッシュ値を生成する。このような文書ハッシュ値は、ハッシュ値と同様、ハッシュ関数に入力される複数のハッシュ値のうちの少なくとも１つが異なる値であれば、異なる値のハッシュ値として出力される。そのため、文書ハッシュ値を比較すれば、文書データ１００ａを構成する複数の文書構成要素１９０ａのそれぞれの内容と、文書データ１００ｂを構成する複数の文書構成要素１９０ｂのそれぞれの内容とが異なるか否かを判別できる。
【００６２】
図６（ｂ）は、文書データ１１０ａの文書ハッシュ値生成概念図である。文書ハッシュ値生成部６３は、図６（ａ）においてハッシュ値生成部６１が文書本体データ１１１ａから生成したハッシュ値３１１ａと、ハッシュ値生成部６１がサムネイル１１２ａから生成したハッシュ値３１２ａと、ハッシュ値生成部６１がデータベース１１３ａから生成したハッシュ値３１３ａと、およびハッシュ値生成部６１がセキュリティ情報１１４ａから生成したハッシュ値３１４ａとをハッシュ関数８０に入力し、文書データ１１０ａの内容に対応した文書ハッシュ値４１０ａを得る。
【００６３】
上述のようにして文書ハッシュ値生成部６３が文書ハッシュ値を生成した後、フォルダハッシュ値生成部６４は、文書データ更新部６０により更新された文書データ１００ａを格納しているフォルダ２００ａについて、フォルダハッシュ値を生成する。具体的には、フォルダ２００ａが下位フォルダを持つか否かにより、以下の２つの生成方法が実行される。
【００６４】
（１）下位フォルダを持たないフォルダ２００ａについては、当該フォルダに格納されている全ての文書データ１００ａの内容に対応した複数の文書ハッシュ値から、その複数の文書ハッシュ値に対応したフォルダハッシュ値を生成する。具体的には、当該フォルダに格納されている複数の文書データ１００ａのそれぞれの内容に対応した複数の文書ハッシュ値を、記憶装置３０に格納されているハッシュ関数に入力し、その複数の文書ハッシュ値に対応した一定長のデータであるフォルダハッシュ値の出力を得る。このとき、文書データ更新部６０により更新された文書データ１００ａについては、文書ハッシュ値生成部６３において生成された文書ハッシュ値を用い、文書データ更新部６０により更新されていない文書データ１００ａについては、統合ハッシュ値記憶部３５から読み込んだ文書ハッシュ値を用いることになる。
【００６５】
図７（ａ）は、下位フォルダを持たないフォルダ２１０ａのフォルダハッシュ値生成概念図である。ここで、フォルダ２１０ａはフォルダ２００ａの一例である。すなわち、文書管理装置１がフォルダ２１０ａを有し、フォルダ２１０ａと同一のプロパティを有するフォルダ２１０ｂを、情報処理装置１１ａが有していると仮定する。尚、図７では全ての文書データ１００ａが文書データ更新部６０により更新されたものとする。フォルダ２１０ａには、文書データ１００ａの一例である文書データ１１０ａ、文書データ１２０ａ、および文書データ１３０ａが格納されている。文書データ１１０ａの文書ハッシュ値４１０ａ、文書データ１２０ａの文書ハッシュ値４２０ａ、および文書データ１３０ａの文書ハッシュ値４３０ａを、上述した文書ハッシュ値生成方法により文書ハッシュ値生成部６３が生成した後、フォルダハッシュ値生成部６４は、文書ハッシュ値４２０と、文書ハッシュ値４２０と、文書ハッシュ値４４０とをハッシュ関数８０に入力して、文書ハッシュ値４２０の内容、文書ハッシュ値４３０の内容、および文書ハッシュ値４４０の内容に対応した、フォルダ２１０ａのフォルダハッシュ値５１０ａを得る。
【００６６】
（２）下位フォルダを持つフォルダ２００ａについては、当該フォルダ２００ａに格納されている全ての文書データ１００ａの内容に対応した複数の文書ハッシュ値と、１つ下位のフォルダのフォルダハッシュ値とから、その複数の文書ハッシュ値および１つ下位のフォルダのフォルダハッシュ値に対応したフォルダハッシュ値を生成する。具体的には、フォルダ２００ａに格納されている各文書データ１００ａの内容に対応した複数の文書ハッシュ値と、１つ下位のフォルダのハッシュ値とを、記憶装置３０に格納されているハッシュ関数に入力し、その複数の文書ハッシュ値および１つ下位のフォルダのフォルダハッシュ値に対応した一定長のデータであるフォルダハッシュ値の出力を得る。このとき、文書データ更新部６０により更新された文書データ１００ａについては、文書ハッシュ値生成部６３において生成された文書ハッシュ値を用い、文書データ更新部６０により更新されていない文書データ１００ａについては、統合ハッシュ値記憶部３５から読み込んだ文書ハッシュ値を用いることになる。また、１つ下位のフォルダが文書データ更新部６０により更新された文書データを格納している場合はフォルダハッシュ値生成部６４によって生成されたフォルダハッシュ値を用いる。さらに、１つ下位のフォルダが文書データ更新部６０により更新されていない文書データのみを格納する場合は、統合ハッシュ値記憶部３５から読み込んだフォルダハッシュ値を用いる。
【００６７】
図７（ｂ）は、下位フォルダが存在するフォルダ２２０ａのフォルダハッシュ値生成の概念図である。ここで、フォルダ２２０ａはフォルダ２００ａの一例である。フォルダ２２０ａには、文書データ１００ａの一例である文書データ１４０ａおよび文書データ１５０ａが格納されており、その１つ下位のフォルダとしてフォルダ２１０ａが存在する。文書データ１４０ａの文書ハッシュ値４４０ａおよび文書データ１５０ａの文書ハッシュ値４５０ａを、上述した文書ハッシュ値生成方法により文書ハッシュ値生成部６３が生成した後、フォルダハッシュ値生成部６４は、フォルダ２１０ａのフォルダハッシュ値５１０ａを、上述した下位フォルダが存在しない場合のフォルダハッシュ値生成方法により生成する。そしてフォルダハッシュ値生成部６４は、文書ハッシュ値４４０ａと、文書ハッシュ値４５０ａと、フォルダハッシュ値５１０ａとをハッシュ関数８０に入力して、文書ハッシュ値４４０ａの内容、文書ハッシュ値４５０ａの内容、およびフォルダハッシュ値５１０ａの内容に対応した、フォルダ２２０ａのフォルダハッシュ値５２０ａを得る。
【００６８】
つまり、フォルダハッシュ値生成部６４は、文書データ更新部６０により文書データ１００ａが更新された場合、その更新後の文書データ１００ａを格納しているフォルダおよびその上位フォルダの全てについて、それらフォルダに格納されている全ての文書データ１００ａの文書ハッシュ値の内容と、１つ下位のフォルダのフォルダハッシュ値の内容とに対応したハッシュ値を生成する。ここで、下位のフォルダが存在しない場合のフォルダハッシュ値は、そのフォルダに格納されている全ての文書データ１００ａの文書ハッシュ値の内容に対応している。また、下位のフォルダが存在する場合のフォルダハッシュ値は、そのフォルダに格納されている全ての文書データ１００ａの内容と、そのフォルダよりも下位のフォルダ全てに格納されている全ての文書データ１００ａの内容に対応している。従って、フォルダハッシュ値を比較すれば、そのフォルダ、およびそのフォルダより下位のフォルダに格納されている文書データ１００ａのうちで、文書データ１００ｂと内容が異なるものが存在するか否かを判定することができる。このようにフォルダハッシュ値は、そのフォルダに格納されている全ての文書データ１００ａおよびその文書データ１００ａを構成する全ての文書構成要素１９０ａの内容を反映したダイジェストデータとなっている。
【００６９】
そして統合ハッシュ値生成部６２は、上述のようにして生成した文書ハッシュ値およびフォルダハッシュ値を、ハッシュ値・統合ハッシュ値記憶部３２に設けられた統合ハッシュ値記憶部３５に格納する。このとき、統合ハッシュ値生成部６２は、統合ハッシュ値記憶部３５に既に格納されている文書ハッシュ値およびフォルダハッシュ値を、上述のようにして生成した文書ハッシュ値およびフォルダハッシュ値で書き換えることにより、文書ハッシュ値およびフォルダハッシュ値を更新する。
【００７０】
ハッシュ値・統合ハッシュ値送信部６５は、情報処理装置１１ａにおいてユーザが文書データ１００ｂを閲覧等しようとした場合に情報処理装置１１ａから送信される、ハッシュ値・統合ハッシュ値要求を受信した場合に機能し、情報処理装置１１ｂにハッシュ値および統合ハッシュ値を送信する。具体的には、フォルダ２００ａのフォルダハッシュ値、文書データ１００ａの文書ハッシュ値、および文書構成要素１９０ａのハッシュ値を、ハッシュ値・統合ハッシュ値記憶部３２から読み込み、これを情報処理装置１１ａに送信する。
【００７１】
文書構成要素送信部６６は、データ判別処理を終えた情報処理装置１１ａから送信される文書構成要素送信要求を受信した場合に、当該送信要求された文書構成要素１９０ａを送信する。具体的には、情報処理装置１１ａが送信した文書構成要素送信要求から、送信対象となる文書構成要素１９０ａを特定し、特定した文書構成要素１９０ａを文書データ記憶部３１から読み込んで、情報処理装置１１ａに送信する。
【００７２】
次に情報処理装置１１ａにおける具体的な内部機能について説明する。図８は、情報処理装置１１ａの制御部４０がシステムプログラム５３およびアプリケーションプログラム５４を実行することによって実現される詳細な機能構成を示すブロック図である。尚、図８では、例えばユーザが文書データ１００ｂが格納されているフォルダ２００ｂを選択してクリック操作した場合に、文書データ１００ａと文書データ１００ｂを同一内容にするため、文書管理装置１から送信されてくるハッシュ値・統合ハッシュ値により、文書構成要素１９０ｂと異なる内容の文書構成要素１９０ａが存在するが否かを判定し、存在するならば、その文書構成要素１９０ａの送信要求を行い、その文書構成要素１９０ａによって情報処理装置１１ａが保持する文書構成要素１９０ｂを更新する機能に関するブロックのみを示しており、それ以外の機能については図示を省略している。
【００７３】
図８に示すように、制御部４０は、プログラム５３および５４を実行することにより、文書データ管理部７０、ハッシュ値・統合ハッシュ値要求部７１、データ判別部７２、文書構成要素要求部７３、データ更新部７４として機能する。
【００７４】
文書データ管理部７０は、文書データ１００ｂの内容を変更したり、閲覧等できるように、文書データを管理する。具体的には、文書データ管理部７０は、アプリケーションプログラム５４の機能によって、文書データ記憶部５１に格納されている文書構成要素１９０ｂを読み込んだユーザが、その文書構成要素１９０ｂの内容を変更した場合、変更後の文書構成要素１９０ｂを文書管理装置１に送信し、また文書データ記憶部５１に格納されている変更前の文書構成要素１９０ｂの内容を、当該変更後の文書構成要素１９０ｂの内容に書き換える。尚、文書管理装置１に送信された変更後の文書構成要素１９０ｂは、文書データ更新部６０によって処理されることになる。また、ユーザが、例えば文書データ１００ｂを閲覧等しようとして、入力部４５を介してフォルダ２００ｂをクリックすれば、文書データ管理部７０に設けられたハッシュ値・統合ハッシュ値要求部７１が機能し、文書管理装置１に対して、フォルダ２００ａのフォルダハッシュ値、文書データ１００ａの文書ハッシュ値、および文書構成要素１９０ａのハッシュ値の送信を要求する。
【００７５】
データ判別部７２は、ハッシュ値・統合ハッシュ値要求部７１が文書管理装置１に対してハッシュ値および統合ハッシュ値を要求した場合に機能し、文書構成要素１９０ｂと異なる文書構成要素１９０ａが文書管理装置１で保持されている場合、これを特定する。具体的には、データ判別部７２は、まず、文書管理装置１からハッシュ値および統合ハッシュ値を受信し、受信したハッシュ値および統合ハッシュ値を用いて、文書データ１００ｂと内容が異なる文書データ１００ａが存在するか否かを判別する。異なるデータが存在している場合、次にその文書データ１００ａに含まれる複数の文書構成要素１９０ａのうち、文書構成要素１９０ｂと内容が異なる文書構成要素１９０ａを全て特定する。また、データ判別部７２は、文書管理装置１から受信したハッシュ値および統合ハッシュ値を、メモリ４２に一時的に格納する。
【００７６】
文書構成要素要求部７３は、文書管理装置１に対して、データ判別部７２が行う上記データ判別方法によって特定された文書構成要素１９０ａの送信要求を行う。
【００７７】
データ更新部７４は、文書構成要素要求部７３が送信要求を行った場合に機能し、文書構成要素１９０ｂと、ハッシュ値および統合ハッシュ値とを更新する。具体的には、まず、文書構成要素要求部７３が文書管理装置１に対して送信要求した文書構成要素１９０ａを受信し、文書データ記憶部５１に格納されている文書構成要素１９０ｂの内容を、当該受信した文書構成要素１９０ａの内容に書き換える。そして、ハッシュ値・統合ハッシュ値記憶部５２に格納されている、上述の書き換えを行う前の文書構成要素１９０ｂのハッシュ値、その文書構成要素１９０ｂにより構成される文書データ１００ｂの文書ハッシュ値、その文書データ１００ｂを格納するフォルダ２００ｂのフォルダハッシュ値、およびそのフォルダ２００ａの上位フォルダのフォルダハッシュ値を、上述した、データ判別部７２が一時的にメモリ４２に格納したハッシュ値・統合ハッシュ値に書き換える。
【００７８】
このデータ更新部７４による文書構成要素１９０ｂの更新により、文書管理装置１と情報処理装置１１ａとで、文書データ１００ａと文書データ１００ｂは、全て同一内容となる。従って、ユーザは、情報処理装置１１ａにより、文書管理装置１で保持されている文書データ１００ａと同一内容の文書データ１００ｂを閲覧等することができるようになる。また、上述のように文書構成要素１９０ｂが更新されることにより、情報処理装置１１ａは、自機が保持する文書構成要素１９０ｂの内容と対応しないハッシュ値、自機が保持する文書データ１００ｂの内容と対応しない文書ハッシュ値、および自機が保持するフォルダ２００ｂの内容と対応しないフォルダハッシュ値、を保持することになるが、データ更新部７４によりハッシュ値および統合ハッシュ値が更新されれば、情報処理装置１１ａは、自機が保持する文書構成要素１９０ｂの内容、文書データ１００ｂの内容、およびフォルダ２００ｂの内容と対応したハッシュ値および統合ハッシュ値を保持することになる。従って、再びユーザがフォルダ２００ｂをクリックして、データ判別部７２が、データ判別を行うことになっても、ハッシュ値・統合ハッシュ値記憶部５２に格納されたハッシュ値・統合ハッシュ値を用いて行えばよいので、自機が保持する文書構成要素１９０ｂのハッシュ値、自機が保持する文書データ１００ｂの文書ハッシュ値、および自機が保持するフォルダ２００ｂのフォルダハッシュ値を生成する必要はなく、文書管理システムのパフォーマンスの低下を回避することができる。
【００７９】
また、本実施形態において、データ判別は、文書管理装置１が行わずに情報処理装置１１が行うこととしている。これにより、文書管理装置１にかかる処理負担を軽減させている。特に、文書管理装置１とネットワーク１０を介しデータ通信可能に接続されている情報処理装置１１の数が多くなればなるほど、文書管理装置１に対する情報処理装置１１からのデータ処理要求が多くなり文書管理装置１の処理負担が増えるので、情報処理装置１１がデータ判別を行うことによる、文書管理システムのパフォーマンス低下回避の効果が大きくなる。
【００８０】
図９は、文書管理装置１が情報処理装置１１ａから文書構成要素１９０ｂを受信する場合の処理手順の一例を示すフローチャートである。文書管理装置１は、情報処理装置１１ａから、文書構成要素１９０ｂを受信したか否かを監視している（ステップＳ１０１）。文書管理装置１が文書構成要素１９０ｂを受信したならば（ステップＳ１０１でＹＥＳ）、文書データ更新部６０が機能し、受信した文書構成要素１９０ｂにより文書管理装置１が保持する文書データ１００ａの更新を行う（ステップＳ１０２）。その後、ハッシュ値生成部６１が機能し、ステップＳ１０１で受信した文書構成要素１９０ｂのハッシュ値を生成し（ステップＳ１０３）、生成したハッシュ値によりハッシュ値記憶部３４に格納されているハッシュ値の更新を行う（ステップＳ１０４）。すると統合ハッシュ値生成部６２が機能し、ステップＳ１０３においてハッシュ値生成部６１が生成したハッシュ値から、統合ハッシュ値を生成する（ステップＳ１０５）。そしてその後、統合ハッシュ値生成部６２は、ステップＳ１０５において生成した統合ハッシュ値により、ハッシュ値・統合ハッシュ値記憶部３２における統合ハッシュ値記憶部３５に格納されている統合ハッシュ値を更新して（ステップＳ１０６）、処理を終了する。
【００８１】
図１０は、文書管理装置１が情報処理装置１１ａからハッシュ値・統合ハッシュ値要求を受信する場合の処理手順の一例を示すフローチャートである。文書管理装置１は、情報処理装置１１ａから、ハッシュ値・統合ハッシュ値要求を受信したか否かを監視している（ステップＳ２０１）。文書管理装置１がハッシュ値・統合ハッシュ値要求を受信したならば（ステップＳ２０１でＹＥＳ）、ハッシュ値・統合ハッシュ値送信部６５が機能し、フォルダ２００ａ、文書データ１００ａ、および文書構成要素１９０ａのハッシュ値・統合ハッシュ値を、情報処理装置１１ａに送信する（ステップＳ２０２）。その後、文書管理装置１は、所定時間以内に、情報処理装置１１ａから文書構成要素送信要求を受信したか否かを監視する（ステップＳ２０３）。文書構成要素送信要求を受信した場合は（ステップＳ２０３でＹＥＳ）、文書構成要素送信部６６が機能し、受信した文書構成要素送信要求から、送信対象の文書構成要素１９０ａを特定する（ステップＳ２０４）。そしてステップＳ２０４で特定した文書構成要素１９０ａを情報処理装置１１ａに送信して（ステップＳ２０５）、処理を終了する。一方、ステップＳ２０３で所定時間以内に文書構成要素送信要求を受信しなかった場合は（ステップＳ２０３でＮＯ）、文書構成要素１９０ａの送信をせずに処理を終了する。
【００８２】
図１１は、情報処理装置１１ａにおいてユーザがフォルダ２００ｂをクリックする場合の処理手順の一例を示すフローチャートである。文書データ管理部７０は、フォルダ２００ｂが入力部４５を介してクリックされるか否かを監視している（ステップＳ３０１）。共有フォルダ２００ｂがクリックされた場合（ステップＳ３０１でＹＥＳ）、文書データ管理部７０に備わるハッシュ値・統合ハッシュ値要求部７１が機能し、文書管理装置１に対して、フォルダ２００ａ、文書データ１００ａ、および文書構成要素１９０ａのハッシュ値・統合ハッシュ値の送信を要求する（ステップＳ３０２）。その後、データ判別部７２が機能し、文書管理装置１からハッシュ値・統合ハッシュ値を受信したか否かを監視する（ステップＳ３０３）。ハッシュ値・統合ハッシュ値を受信したならば（ステップＳ３０３でＹＥＳ）、データ判別部７２が機能して、受信したハッシュ値・統合ハッシュ値をメモリ４２に一時的に格納し（ステップＳ３０４）、その後データ判別処理を行う（ステップＳ３０５）。このデータ判別処理において、文書データ１００ｂと異なる内容の文書データ１００ａが存在すると判定された場合（ステップＳ３０６でＹＥＳ）、文書構成要素要求部７３が機能し、データ判別処理において特定された文書構成要素１９０ａの送信を、文書管理装置１に対して要求する（ステップＳ３０７）。すると、データ更新部７４が機能し、文書管理装置１から文書構成要素１９０ａを受信したか否かを監視する（ステップＳ３０８）。文書構成要素１９０ａを受信した場合（ステップＳ３０８でＹＥＳ）、文書データ記憶部５１に格納されている文書構成要素１９０ｂの内容を、当該受信した文書構成要素１９０ａの内容に書き換える（ステップＳ３０９）。また、ハッシュ値・統合ハッシュ値記憶部５２に格納されているハッシュ値・統合ハッシュ値を、ステップＳ３０４でデータ判別部７２が一時的にメモリ４２に格納したハッシュ値・統合ハッシュ値に書き換え（ステップＳ３１０）、処理を終了する。一方、ステップＳ３０５のデータ判別処理において、文書データ１００ｂと異なる内容の文書データ１００ａが存在しないと判定された場合（ステップＳ３０６でＮＯ）、文書構成要素およびハッシュ値・統合ハッシュ値の更新は行わずに処理を終了する。
【００８３】
図１２は、データ判定処理（図１１のステップＳ３０５）の詳細な処理手順の一例を示すフローチャートである。まず、データ判別部７２は、メモリ４２に格納されたフォルダ２００ａ、文書データ１００ａ、および文書構成要素１９０ａのハッシュ値・統合ハッシュ値を読み込み、更にハッシュ値・統合ハッシュ値記憶部５２からフォルダ２００ｂ、文書データ１００ｂ、および文書構成要素１９０ｂのハッシュ値・統合ハッシュ値を読み込む（ステップＳ４０１）。ここでメモリ４２に格納されているハッシュ値・統合ハッシュ値は、図１１のステップＳ３０４において格納したものであり、ハッシュ値・統合ハッシュ値記憶部５２に格納されているハッシュ値・統合ハッシュ値は、図１１のステップＳ３１０において更新されたハッシュ値・統合ハッシュ値を含んでいる。次にフォルダ２００ａのうちの最上位フォルダおよび２００ｂのうちの最上位フォルダを特定し（ステップＳ４０２）、フォルダ２００ａのうちの最上位フォルダのフォルダハッシュ値とフォルダ２００ｂのうちの最上位フォルダのフォルダハッシュ値とを比較する（ステップＳ４０３）。フォルダハッシュ値が等しい場合は（ステップＳ４０４でＹＥＳ）、何もせずにデータ判別処理を終了する。フォルダハッシュ値が異なる場合は（ステップＳ４０４でＮＯ）、次に当該フォルダ２００ｂに格納されている文書データ１００ｂと当該フォルダ２００ａに格納されている文書データ１００ａとで文書ハッシュ値が異なるものが存在するか否かを判定する（ステップＳ４０５）。存在する場合は（ステップＳ４０５でＹＥＳ）、当該文書データ１００ａと当該文書データ１００ｂとで文書ハッシュ値とを比較する（ステップＳ４０６）。文書ハッシュ値が異なる文書データ１００ａおよび文書データ１００ｂが存在する場合は（ステップＳ４０７でＹＥＳ）、当該文書データ１００ａに含まれる文書構成要素１９０ａのハッシュ値と、当該文書データ１００ｂに含まれる文書構成要素１９０ｂのハッシュ値とを比較する（ステップＳ４０８）。そして、文書構成要素１９０ｂと異なるハッシュ値を有する文書構成要素１９０ａを特定し（ステップＳ４０９）、次に下位のフォルダが存在するか否かを判定する（ステップＳ４１０）。下位のフォルダが存在しない場合は（ステップＳ４１０でＮＯ）、データ判定処理を終了する。一方、当該フォルダ２００ａに文書データ１００ａが存在しないか（ステップＳ４０５でＮＯ）、当該フォルダに文書データは存在するが（ステップＳ４０５でＹＥＳ）、文書ハッシュ値が異なる文書データが存在しないか（ステップＳ４０７でＮＯ）、または当該フォルダに文書データが存在し、それらの文書データのうちで異なる文書ハッシュ値を有するものも存在するが、更に下位のフォルダが存在する場合は（ステップＳ４１０でＹＥＳ）、当該フォルダの１つ下位のフォルダを特定し（ステップＳ４１１）、再びステップＳ４０３以降の上記プロセスを繰り返す。
【００８４】
図１３、図１４、および図１５は、いずれも図１２におけるデータ判別処理を、具体例により説明するための図である。図例では、文書管理装置１における文書データ記憶部３１のデータ保持構造として、最上位フォルダのフォルダ２２０ａを備え、このフォルダ２２０ａに、文書データ１４０ａ及び１５０ａと、その下位フォルダとなるフォルダ２１０ａとが格納されている。フォルダ２１０ａには、文書データ１１０ａ，１２０ａ，１３０ａが格納されている。また、情報処理装置１１ａにおいて文書データ記憶部５１には、文書管理装置１のデータ保持構造と対応するように、最上位フォルダのフォルダ２２０ｂを備え、このフォルダ２２０ｂに、文書データ１４０ｂ及び１５０ｂと、その下位フォルダとなるフォルダ２１０ｂとが格納されている。フォルダ２１０ｂには、文書データ１１０ｂ，１２０ｂ，１３０ｂが格納されている。そして図１３、図１４、および図１５では文書管理装置１のデータ保持構造に対応したハッシュ値及び統合ハッシュ値と、情報処理装置１１ａのデータ保持構造に対応したハッシュ値及び統合ハッシュ値との比較を行う場合を例示する。
【００８５】
図１３は、文書データ１１０ａの内容と文書データ１１０ｂの内容が異なる場合の図である。この例では、文書本体データ１１１ａの内容と文書本体データ１１１ｂの内容とが異なっており、またセキュリティ情報１１４ａの内容とセキュリティ情報１１４ｂの内容とが異なっている。この場合、文書本体データ１１１ａのハッシュ値と、文書本体データ１１１ｂのハッシュ値が異なる。またセキュリティ情報１１４ａのハッシュ値と、セキュリティ情報１１４ｂのハッシュ値も異なる。そのため、文書データ１１０ａの文書ハッシュ値と、文書データ１１０ｂの文書ハッシュ値が異なることとなり、さらにフォルダ２１０ａのフォルダハッシュ値と、フォルダ２１０ｂのフォルダハッシュ値とが異なることとなる。その結果、最上位フォルダであるフォルダ２２０ａのフォルダハッシュ値と、フォルダ２２０ｂのフォルダハッシュ値とが異なることとなる。
【００８６】
この場合、データ判別処理において文書管理装置１および情報処理装置１１ａのデータ保持構造に基づき、最上位フォルダであるフォルダ２２０ａのフォルダハッシュ値とフォルダ２２０ｂのフォルダハッシュ値との比較が行われる。これらフォルダハッシュ値が互いに異なる値であるので、次に、文書データ１４０ａ，１５０ａの文書ハッシュ値と、文書データ１４０ｂ，１５０ｂの文書ハッシュ値との比較が個別に行われる。これらはいずれも等しい値となるので、次に、その下位のフォルダ２１０ａ，２１０ｂが特定され、フォルダ２１０ａのフォルダハッシュ値とフォルダ２１０ｂのフォルダハッシュ値との比較が行われる。これらフォルダハッシュ値が互いに異なる値である。そのため、次に、文書データ１１０ａ，１２０ａ，１３０ａの文書ハッシュ値と、文書データ１１０ｂ，１２０ｂ，１３０ｂの文書ハッシュ値との比較が個別に行われる。その結果、文書ハッシュ値が互いに異なる文書データ１１０ａ，１１０ｂが特定される。そのため、文書データ１１０ａを構成する文書構成要素１１１ａ，１１２ａ，１１３ａ，１１４ａの各ハッシュ値と、文書データ１１０ｂを構成する文書構成要素１１１ｂ，１１２ｂ，１１３ｂ，１１４ｂの各ハッシュ値とが比較され、文書管理装置１で保持されている文書本体データ１１１ａとセキュリティ情報１１４ａとの２つの文書構成要素が、情報処理装置１１ａで保持している文書構成要素と異なった内容であることを特定することができる。
【００８７】
この例では、文書管理装置１と情報処理装置１１ａのそれぞれが、４つの文書構成要素からなる５つの文書データを保持している。そのため、文書管理装置１と情報処理装置１１ａのそれぞれで保持される文書構成要素の数は２０個である。この場合において、例えば従来のような比較処理を行えば、異なる内容の文書構成要素を全て特定するために２０回の比較処理が必要になる。これに対し、本実施形態のように、ハッシュ値および統合ハッシュ値を用いた比較処理によれば、フォルダ２２０ａ、文書データ１４０ａ、文書データ１５０ａ、フォルダ２１０ａ、文書データ１３０ａ、文書データ１２０ａ、文書データ１１０ａ、文書本体データ１１１ａ、サムネイル１１２ａ、データベース１１３ａ、およびセキュリティ情報１１４ａのハッシュ値又は統合ハッシュ値の比較処理を行えば良いので、合計１１回の比較処理で、文書管理装置１と情報処理装置１１ａとで保持される異なる内容の文書構成要素を全て特定することが可能である。
【００８８】
次に、図１４は、文書データ１４０ａの文書構成要素であるサムネイル１０７の内容が異なっている場合の図である。この例では、サムネイル１０７ａのハッシュ値と、サムネイル１０７ｂのハッシュ値とが異なっており、それに伴って文書データ１４０ａの文書ハッシュ値と、文書データ１４０ｂの文書ハッシュ値とも異なっている。
【００８９】
この場合、データ判別処理において文書管理装置１および情報処理装置１１ａのデータ保持構造に基づき、最上位フォルダであるフォルダ２２０ａのフォルダハッシュ値とフォルダ２２０ｂのフォルダハッシュ値との比較が行われる。これらフォルダハッシュ値が互いに異なる値であるので、次に、文書データ１４０ａ，１５０ａの文書ハッシュ値と、文書データ１４０ｂ，１５０ｂの文書ハッシュ値との比較が個別に行われる。そして文書データ１４０ａの文書ハッシュ値と、文書データ１４０ｂの文書ハッシュ値とが異なることになる。そして文書データ１４０ａを構成する文書構成要素１０６ａ，１０７ａ，１０８ａ，１０９ａの各ハッシュ値と、文書データ１４０ｂを構成する文書構成要素１０６ｂ，１０７ｂ，１０８ｂ，１０９ｂの各ハッシュ値とが比較され、文書管理装置１で保持されているサムネイル１０７ａの１つの文書構成要素が、情報処理装置１１ａで保持している文書構成要素と異なった内容であることを特定することができる。
【００９０】
この例では、ハッシュ値および統合ハッシュ値を用いた比較処理により、上述のようにフォルダ２２０ａ、文書データ１４０ａ、文書データ１５０ａ、フォルダ２２０ａ、文書本体データ１０６ａ、サムネイル１０７ａ、データベース１０８ａ、およびセキュリティ情報１０９ａのハッシュ値又は統合ハッシュ値の比較処理を行えば良いので、合計８回の比較処理で、文書管理装置１と情報処理装置１１ａとで保持される異なる内容の文書構成要素を全て特定することが可能である。
【００９１】
次に、図１５は、全ての文書データの内容が等しい場合の図である。この場合、文書管理装置１と情報処理装置１１ａとで保持される、フォルダ、文書データ、および文書構成要素のハッシュ値又は統合ハッシュ値は全て等しい。この例では、フォルダ２２０ａのフォルダハッシュ値と、フォルダ２２０ｂのフォルダハッシュ値とが比較されると、それらフォルダハッシュ値は互いに等しいので、その時点で異なる内容の文書構成要素が存在しないということを特定することができる。したがって、この場合の比較処理の回数は、１回となり、効率的にデータ判別処理を終了することができる。
【００９２】
このように本実施形態では、文書管理装置１と情報処理装置１１とで異なる内容の文書データを保持しているか否かの判別を行う際、または、異なる内容の文書構成要素を特定する際に、ハッシュ値および統合ハッシュ値を用いることにより、従来よりも少ない比較回数で判別や特定を行うことができるようになる。そのため、文書管理システムのパフォーマンスの低下を回避することが可能である。そして、このような比較が行われた後、この比較結果に基づいて、文書管理装置１から情報処理装置１１へ異なる内容の文書構成要素が送信され、情報処理装置１１において当該文書構成要素の更新が行われれば、ユーザは、文書管理装置１が保持する文書データと同一内容の文書データを、情報処理装置１１で利用することができるようになる。
【００９３】
（変形例）
以上、本発明に関するいくつかの実施形態について説明したが、本発明は上述した内容に限られるものではなく、種々の変形例が適用可能である。以下でいくつかの変形例を挙げる。
【００９４】
例えば上記実施形態においては、特に図１１において示されるように、情報処理装置１１がハッシュ値および統合ハッシュ値の送信要求を文書管理装置１に対して行うのは、ユーザがフォルダを選択してクリック操作した際に行われるように設定されているが、これに限らず、例えば定期的に行ってもよいし、また情報処理装置１１の電源がオンとなった時に行うようにしてもよい。また、フォルダのクリック操作に限られず、例えば文書データの選択操作が行われた場合に行うこととしてもよい。またその他の入力操作であってもよい。
【００９５】
また上記実施形態においては、ハッシュ値を生成するハッシュ関数と、文書ハッシュ値を生成するハッシュ関数と、フォルダハッシュ値を生成するハッシュ関数とが同一のハッシュ関数である場合を例示したが、これに限られるものではない。
【００９６】
また上記実施形態においては、ハッシュ値および統合ハッシュ値の生成は、文書管理装置１が行うものとされているが、情報処理装置１１が行ってもよいし、文書管理装置１と情報処理装置１１との双方が行うようにしてもよい。
【００９７】
また上記実施形態においては、文書管理装置１と情報処理装置１１とで異なる内容の文書データを保持しているか否かのデータ判別処理を情報処理装置１１で行う場合を例示したが、これに限られるものでもない。例えば、文書管理装置１で上述したデータ判別処理（図１２）を行うようにしても良い。ただし、この場合、文書管理装置１が、情報処理装置１１に対してハッシュ値および統合ハッシュ値の送信要求することにより、情報処理装置１１におけるデータ保持構造に対応したハッシュ値および統合ハッシュ値を情報処理装置１１から取得することが必要になる。
【００９８】
また上記実施形態においては、データ判別処理を行う際、文書管理装置１から情報処理装置１１に対してハッシュ値と統合ハッシュ値の双方をまとめて送信する場合を例示したが、これに限られるものでもない。すなわち、まず最上位フォルダに対応するフォルダハッシュ値を送信し、そのフォルダハッシュ値が異なる値と判定されれば、次に文書ハッシュ値や下位フォルダのフォルダハッシュ値などを送信するようにして、統合ハッシュ値とハッシュ値とを段階的に送信する構成としてもよい。この場合、ハッシュ値送受信時におけるネットワーク４のトラフィック量を軽減することができるという利点がある。
【符号の説明】
【００９９】
１  文書管理装置
１１  情報処理装置
２０、４０  制御部
３０  記憶装置（文書データ記憶手段）
５０  記憶装置（データ記憶手段） 
６１  ハッシュ値生成部（ダイジェストデータ生成手段）
６２  統合ハッシュ値生成部（統合ダイジェストデータ生成手段）
７２  データ判別部（データ判別手段）
１００，１００ａ，１００ｂ  文書データ
１０１  文書本体データ（文書構成要素）
１０２  サムネイル（文書構成要素）
１０３  データベース（文書構成要素）
１０４  セキュリティ情報（文書構成要素）
１９０  文書構成要素
２００，２００ａ，２００ｂ  フォルダ（記憶領域、記憶部）
【図１】
2011076139.tif 000003
【図２】
2011076139.tif 000004
【図３】
2011076139.tif 000005
【図４】
2011076139.tif 000006
【図５】
2011076139.tif 000007
【図６】
2011076139.tif 000008
【図７】
2011076139.tif 000009
【図８】
2011076139.tif 000010
【図９】
2011076139.tif 000011
【図１０】
2011076139.tif 000012
【図１１】
2011076139.tif 000013
【図１２】
2011076139.tif 000014
【図１３】
2011076139.tif 000015
【図１４】
2011076139.tif 000016
【図１５】
2011076139.tif 000017