(57)【要約】【課題】サーバ／クライアント間のネットワーク相互（上り、下り）のデータ通信量を軽減するだけでなく、サーバの負荷も軽減すること。【解決手段】クライアントＰＣの文書管理プログラム３０７は、文書ファイルを編集した場合には、該編集により生じた差分データを抽出して差分ファイルを生成し、該生成された差分ファイルを、サーバＰＣを含むネットワーク上の他のクライアントＰＣに配信する。また。クライアントＰＣの文書管理プログラム３０７は、他のクライアントＰＣから配信される差分ファイルを受信し、該受信した差分ファイルを文書ＤＢ３０８に記憶する構成を特徴とする。【選択図】図３
2009163459.tif 000002
【特許請求の範囲】
【請求項１】
文書ファイルを利用する複数のクライアント装置と、文書ファイルと該文書ファイルが更新された際の差分ファイルを管理するサーバ装置とがネットワークを介して通信可能な文書管理システムにおいて、
前記クライアント装置は、
前記文書ファイルを編集した場合には、該編集により生じた差分データを抽出して差分ファイルを生成する差分ファイル生成手段と、
前記差分ファイル生成手段により生成された差分ファイルを、前記文書管理サーバを含むネットワーク上の他のクライアント装置に配信する配信手段と、
他のクライアント装置から配信される差分ファイルを受信する受信手段と、
前記受信手段により受信した差分ファイルを記憶する記憶手段と、
を備えることを特徴とする文書管理システム。
【請求項２】
文書ファイルと該文書ファイルが更新された際の差分ファイルを管理するサーバ装置とネットワークを介して通信可能な情報処理装置において、
前記文書ファイルを編集した場合には、該編集により生じた差分データを抽出して差分ファイルを生成する差分ファイル生成手段と、
前記差分ファイル生成手段により生成された差分ファイルを、前記文書管理サーバを含むネットワーク上の他のクライアント装置に配信する配信手段と、
他の情報処理装置から配信される差分ファイルを受信する受信手段と、
前記受信手段により受信した差分ファイルを記憶する記憶手段と、
を備えることを特徴とする情報処理装置。
【請求項３】
前記サーバ装置から前記文書ファイルと前記記憶手段に記憶されていない差分ファイルを取得する取得手段と、
前記文書ファイルと前記差分ファイルとをマージして文書データを生成するマージ手段を有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記サーバ装置から取得する文書のバージョンを選択する選択手段を備え、
前記取得手段は、前記選択手段により選択されたバージョンに対応する差分ファイルを取得することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記受信手段が受信する差分ファイルは、複数の差分ファイルがマージされた差分ファイルを含むことを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記配信手段は、前記差分ファイルを前記サーバ装置宛に配信するものであり、
前記受信手段は、他の情報処理装置から前記サーバ宛に配信された差分ファイルを受信することを特徴とする請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
文書ファイルの編集を検知した場合には、その旨を他の情報処理装置に通知する通知手段と、
他の情報処理装置から前記通知を受け取った場合には、該通知に対応する文書の編集を受付ないように制御する制御手段と、
を有することを特徴とする請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記受信手段は、他の情報処理装置から差分ファイルが配信された際に、該差分ファイルに対応する文書ファイルが、前記記憶手段に記憶されていない場合、前記差分ファイルを受信しないことを特徴とする請求項２乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
文書ファイルと該文書ファイルが更新された際の差分ファイルを管理するサーバ装置とネットワークを介して通信可能な情報処理装置における文書管理方法であって、
差分ファイル生成手段が、前記文書ファイルを編集した場合には、該編集により生じた差分データを抽出して差分ファイルを生成する差分ファイル生成ステップと、
配信手段が、前記差分ファイル生成手段により生成された差分ファイルを、前記文書管理サーバを含むネットワーク上の他のクライアント装置に配信する配信手段と、
受信手段が、他の情報処理装置から配信される差分ファイルを受信する受信ステップと、
記憶手段に、前記受信手段により受信した差分ファイルを保存させる保存ステップと、
を備えている文書管理方法。
【請求項１０】
文書ファイルと該文書ファイルが更新された際の差分ファイルを管理するサーバ装置とネットワークを介して通信可能な情報処理装置を、
前記文書ファイルを編集した場合には、該編集により生じた差分データを抽出して差分ファイルを生成する差分ファイル生成手段と、
前記差分ファイル生成手段により生成された差分ファイルを、前記文書管理サーバを含むネットワーク上の他のクライアント装置に配信する配信手段と、
他の情報処理装置から配信される差分ファイルを受信する受信手段と、
前記受信手段により受信した差分ファイルを記憶する記憶手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書ファイルを利用する複数のクライアント装置と、文書ファイルと該文書ファイルが更新された際の差分ファイルを管理するサーバ装置とがネットワークを介して通信可能な文書管理システムにおける文書管理制御に関する。
【背景技術】
【０００２】
近年、ネットワーク技術の発展により、文書管理システムもネットワーク型へと移行し、データの送受信に対してのネットワーク負荷の軽減を可能にした文書管理システムが考えられている。
【０００３】
その１つとして、特許文献１には、クライアント端末が文書管理サーバから受信した文書ファイルに対して文書編集を行った場合には、更新差分情報データを生成し、文書管理サーバに送信する機能を持つシステムが開示されている。特に、差分データのみがネットワーク上でやり取りされるため、ネットワークの負担の少ない文書管理システムおよびサーバを提供する。
【０００４】
このシステムにおいては、特許文献１の＜０００８＞から＜００１２＞に記載されているように、差分データがネットワークを介し、サーバ側で差分データに基づいて文書ファイルを更新することが詳細に記載されている。
【０００５】
また、特許文献２には、サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法に関するシステムが開示されている。特に、サーバは更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成し、クライアントへ配信することで、通信ネットワークの混雑を防止するとともに、サーバとクライアントとの間での構造化文書データの不一致期間を短縮する仕組が記載されている。このシステムにおいては、特許文献２の＜０００６＞に記載されているように、いかに効率のよい構造化文書データを生成するかについて詳細に記載されている。
【特許文献１】特開２００４−１９２５１５号公報
【特許文献２】特開２００３−２５６２４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の文書管理システムにおいては、差分データだけがネットワークを介すことでネットワーク負荷の軽減を可能にしているが、以下の２つの問題があった。
【０００７】
１つ目は、ネットワーク負荷の軽減がクライアントからの編集した差分データの更新時だけであること。これでは、サーバからの必要な文書を取得するときにはネットワーク負荷が軽減されない。
【０００８】
２つ目は、送信した差分データについて、サーバ側でマージして文書データを更新するため、サーバの負荷を増すことが考えられる。これは、特許文献２に記載の構造化文書データ更新方法においても同様のことが言える。
【０００９】
そのため、クライアントからサーバへの送信処理においてのみネットワークの負荷が軽減されることを意味する。これでは、サーバからクライアントへの送信やサーバの処理負荷などが考慮されておらず、本当にネットワークの負荷が軽減されるか疑問が残る。
【００１０】
本発明は上記の課題を解決するためになされたものであり、クライアントからサーバへネットワーク負荷を軽減するだけでなく、サーバからクライアントへ送信する場合のネットワークの負荷軽減、サーバの負荷軽減を実現することができる仕組を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、文書ファイルを利用する複数のクライアント装置と、文書ファイルと該文書ファイルが更新された際の差分ファイルを管理するサーバ装置とがネットワークを介して通信可能な文書管理システムにおいて、前記クライアント装置は、前記文書ファイルを編集した場合には、該編集により生じた差分データを抽出して差分ファイルを生成する差分ファイル生成手段と、前記差分ファイル生成手段により生成された差分ファイルを、前記文書管理サーバを含むネットワーク上の他のクライアント装置に配信する配信手段と、他のクライアント装置から配信される差分ファイルを受信する受信手段と、前記受信手段により受信した差分ファイルを記憶する記憶手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、文書管理システムにおける文書管理サーバと文書管理プログラムにより、サーバ／クライアント間のネットワーク相互（上り、下り）のデータ通信量を軽減するだけでなく、サーバ装置の負荷も軽減できる等の効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明の実施形態を詳細に説明する。なお、以下の図は、本実施形態を説明するために一例を示したものであり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１４】
図１は、本発明の一実施形態を示す文書管理サーバ及び文書管理プログラムの一例を示すシステム構成図である。
【００１５】
図１において、１０１（１０１−１、１０１−２〜１０１−ｎ）は情報処理装置である。なお、情報処理装置１０１は、パーソナルコンピュータやワークステーション等で構成されるものであり、以下クライアントＰＣと称する。１０２はサーバＰＣである。なお、クライアントＰＣ１０１とサーバＰＣ１０２は、ネットワーク（図１の例ではＬＡＮ１０３）を介して通信可能である。
【００１６】
このように、本実施の文書管理システムは、クライアント／サーバ環境やＷＥＢ環境の文書管理システムであって、クライアントＰＣ１０１−１，クライアントＰＣ１０１−２，・・・，クライアントＰＣ１０１−ｎ，サーバＰＣ１０２がネットワークを介して相互に接続される。
【００１７】
図２は、図１に示したクライアントＰＣ１０１、サーバＰＣ１０２のハードウェア構成の一例を示すブロック図である。
【００１８】
図２において、２０１はＣＰＵで、ＲＯＭ２０３のプログラム用ＲＯＭに記憶されたプログラムをＲＡＭ２０２にロードして実行することによりシステムバス２０４に接続された各デバイスを制御し、ＰＣ１０１−１全体を統括制御する。また、このＲＯＭ２０３のフォント用ＲＯＭにはフォントデータ等を記憶し、ＲＯＭ２０３のデータ用ＲＯＭには各種データを記憶する。２０２はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００１９】
２０５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）２０９や図示しないポインティングデバイス、例えばマウスからの入力を制御する。２０６はビデオカード（ＶＣ）で、モニタ２１０の表示を制御する。
【００２０】
２０７はメモリコントローラ（ＭＣ）で、ハードディスク（ＨＣ）２１１とのアクセスを制御する。
【００２１】
２０８はネットワークインターフェースカード（ＮＩＣ）で、ＬＡＮ１０３上の通信を制御する。
【００２２】
図３は、図１に示したサーバＰＣ１０２およびクライアントＰＣ１０１の機能構成を示す機能構成図である。
【００２３】
図３において、３０１は文書管理サーバであり、サーバＰＣ１０２のＣＰＵ２０１がＨＤ１２１に格納される文書管理サーバプログラムをＲＡＭ２０２にロードして実行することにより実現される機能部に対応する。以下、文書管理サーバ３０１と記載した場合、プログラムコードではなく、サーバＰＣ１０２のＣＰＵ２０１が文書管理サーバプログラムを実行することにより実現される機能部を示すものとする。
【００２４】
文書管理サーバ３０１は、コントロール部３０２、設定情報３０３、管理情報３０４、通信手段３０６とから成り、文書ファイルを管理する文書ＤＢ３０５から構成されている。
【００２５】
コントロール部３０２には、サーバＰＣ１０２で受け取ったデータから差分ファイルを作成する機能、ベースとなる文書ファイルと差分ファイルをマージする機能、クライアントＰＣへ配信するデータを生成する機能を有する。
【００２６】
設定情報３０３は、文書管理サーバ３０１や文書管理プログラム３０７で共通な設定情報、たとえばＵＩの見栄えやシステムが持つ設定情報等を含む。
【００２７】
管理情報３０４は、文書ＤＢ３０５に保持している一覧の情報等であり、文書ファイルと差分ファイルのマージの際に、日付などをユーザが任意に指定できる情報を含む。
【００２８】
文書ＤＢ３０５は、文書ファイルと差分ファイルを持つデータベースである。
【００２９】
３０７は文書管理プログラムであり、クライアントＰＣ１０１のＣＰＵ２０１がＨＤ１２１に格納される文書管理クライアントプログラムをＲＡＭ２０２にロードして実行することにより実現される機能部に対応する。以下、文書管理プログラム３０７と記載した場合、プログラムコードではなく、クライアントＰＣ１０１のＣＰＵ２０１が文書管理プログラムを実行することにより実現される機能部を示すものとする。
【００３０】
文書管理プログラム３０７は、コントロール部、設定情報、文書ＤＢ３０８、通信手段とから構成されている。コントロール部、設定情報、通信手段の持つ機能は、すでに説明した文書管理サーバ３０１の機能とほぼ同じ役割を担う。
【００３１】
文書管理プログラム３０７の設定情報、他のクライアントＰＣの文書管理プログラム３０７がアップロードした差分データを受信する場合、「受取る」、「受取らない」、「元ファイルが存在する差分データは受取る」などの設定情報も含む。なお、文書管理プログラム３０７は、差分データを受信する場合、バックグランドで受信するように構成されている。
【００３２】
文書ＤＢ３０８は、差分ファイルを保存するために用意されている。なお、文書ファイル自体は、文書ＤＢの作業フォルダ内に一時的に保存されているが、ユーザの任意のタイミングで消すことができる。
【００３３】
図４は、図３で示した文書ＤＢ３０５の階層構造を示す図である。
【００３４】
図４において、３０５は文書管理サーバで使用するルートディレクトリである。４０１は、文書ファイル毎に用意されるＤＢフォルダである。このＤＢフォルダのフォルダ名は、文書ファイル名とし、中身にベースとなる文書ファイルとその差分ファイルが格納される。
【００３５】
４０２はベースとなる文書ファイルである。サーバの設定情報次第では、ベースを更新（文書ファイルと差分ファイルとをマージ）することが可能となる。
【００３６】
４０３−１、４０３−２、４０３−３は文書ファイル４０２の差分ファイルであり、文書ファイル４０２には差分ファイルが３つ（４０３−１、４０３−２、４０３−３）あることを示す。
【００３７】
同様に、４０４はベースとなる文書ファイルである。４０５−１、４０５−２は、文書フィル４０４の差分ファイルであり、文書フィル４０４には、差分ファイルが２つ（４０５−１、４０５−２）あること示す。
【００３８】
図５は、図４に示した差分ファイル４０３−１の構成の一例を示す図である。
【００３９】
図５において、５０１は差分ファイルである。差分ファイル５０１は、ＸＭＬ形式で作成され、ヘッダ部５０２と、ボディ部５０３から構成される。
【００４０】
ヘッダ部５０２には、文書ファイル名、差分ファイル名、更新日、更新者、更新サイズを含み、文書管理サーバ３０１の管理情報３０４に登録される。
【００４１】
ボディ情報５０３は、スタイル情報、セッティング情報、プロパティ情報、データとから成る。これらボディ情報５０３内のデータは、どのような更新状況であったかを詳細に示すデータを残すことを意味する。この情報をもとに文書ファイルと差分ファイルのマージを可能にする。
【００４２】
図６は、図３で説明した管理情報３０４の構成の一例を示す図である。
【００４３】
図６において、６０１は、文書管理サーバ３０１内の管理情報３０４を指し、文書名、差分ファイル名、更新日、更新者、更新サイズからなる。これは、文書管理サーバ３０１がマージする際に、どういった差分ファイルをマージするかを選択できるようにするために用いられる。例えば、日付が２００６年１０月３０日までの差分ファイルをマージするという場合、文書Ａであれば、差分ファイルＡ−１のみをマージした文書ファイルを作成することになる。
【００４４】
なお、クライアントＰＣ１０１の文書管理プログラム３０７が、文書管理サーバ３０１に差分データを要求する際には、そのリクエストに「最新」，「日付」，「ユーザ名」等のいくつかの選択情報を含めて、該選択情報に基づく差分データを要求可能に構成する。
【００４５】
図７は、図３に示した文書管理サーバ３０１および文書管理プログラム３０７を利用したアップロード機能について詳細に説明するための構成図である。
【００４６】
図７に示すように、クライアントＰＣ１０１−１の文書管理プログラム３０７上で文書ＤＢ３０８の文書Ａ（差分ファイル文書Ａ−１、文書Ａ−２とをマージした）を開いているとする。
【００４７】
このとき、ユーザが編集してデータを更新し、差分データ７０１（文書Ａ−３）が生成されたとき、この差分データ７０１はまずクライアントＰＣ１０１−１の文書ＤＢ３０８に差分ファイル「文書Ａ−３」として保存される。次にクライアントＰＣ１０１−１の文書管理プログラム３０７が差分データをネットワーク上の文書管理サーバ３０１へ配信する。なお、配信の方法には、（１）サーバＰＣ１０２宛にアップロード、（２）ブロードキャストでアップロード、（３）サーバＰＣ１０２に登録されたクライアントＰＣへマルチキャストを含むいくつかの方法が適用可能である。本実施形態では、サーバＰＣ１０２宛に配信したときの例を示す。
【００４８】
文書管理サーバ３０１は、配信されたデータを受信する。そして、受信データが差分ファイルであった場合、差分ファイル（文書Ａ−３）としてファイルを作成し、文書ＤＢ３０５のベースとなる文書ファイルディレクトリ４０１「文書Ａ」の差分ファイルとして保存する（図４）。
【００４９】
なお、クライアント１０１−２では、通常、サーバＰＣ１０２宛の配信データは下位層で破棄されてしまうが、クライアント１０１−２の文書管理プログラム３０７によって、パケットの中身を確認することができる。
【００５０】
このとき、パケットの宛先がサーバＰＣ１０２の文書管理サーバ３０１であった場合、クライアント１０１−２の文書管理プログラム３０７は、破棄せずにクライアント１０１−２内に配信データを取り組む。
【００５１】
そして、クライアント１０１−２の文書管理プログラム３０７の文書ＤＢ３０８へ差分ファイル「文書Ａ−３」として保存する。このとき、差分ファイルを保存するかどうかの設定は、クライアント１０１−２の文書管理プログラム３０７内の設定情報に登録されている。
【００５２】
よって結果的に、クライアントＰＣ１０１−２には、文書Ａの差分ファイルとして、予め保存されていた「差分Ａ−１」と、上述のように受け取った「差分Ａ−３」の２つが保持されたることになる。
【００５３】
図８は、図３に示した文書管理サーバ３０１および文書管理プログラム３０７を利用したインポート機能について詳細に説明するための構成図である。
【００５４】
なお、図８では、図７に示したクライアントＰＣ１０１−１からのアップロードが済んだ状態でのクライアントＰＣ１０１−２のインポート処理を説明する。
【００５５】
図８に示すように、クライアントＰＣ１０１−２の文書管理プログラム３０７は、文書管理サーバ３０１へ文書Ａを最新の状態へ更新するリクエストを発行する。なお、このリクエストには、文書Ａの差分ファイルとして「差分Ａ−１」と「差分Ａ−３」の２つを保持していいることを示す情報が含まれる。
【００５６】
文書管理サーバ３０１は、クライアントＰＣ１０１−２の文書管理プログラム３０７から受け付けたリクエスト情報から２つの差分ファイル以外の差分ファイル８０１（差分ファイルＡ−２）を、文書ＤＢ３０５の文書ＡのＤＢフォルダ４０１から抽出する。さらに、文書管理サーバ３０１は、上記抽出した差分ファイル８０１を配信データ（図９に示す）として、クライアントＰＣ１０１−２へ返す。
【００５７】
これにより、本来図７の開始時点では、クライアントＰＣ１０１−２で保持される文書Ａの差分ファイルは「文書Ａ−１」しかなかった。そのため、クライアントＰＣ１０１−２の文書管理プログラム３０７からリクエストがあった場合は、文書管理サーバ３０１は残りの「文書Ａ−２」，「文書Ａ−３」の２つをクライアントＰＣ１０１−２の文書管理プログラム３０７へ返すはずであった。
【００５８】
しかしながら、図７に示したアップロード機能が実行された後には、クライアントＰＣ１０１−２の文書管理プログラム３０７の文書ＤＢ３０８には、差分ファイル「文書Ａ−３」が既に保存されていることから、文書管理サーバ３０１は、「文書Ａ−２」の差分ファイルだけをクライアントＰＣ１０１−２の文書管理プログラム３０７に配信データとして作成するだけになった。このように、本発明では、サーバの負荷軽減とネットワーク負荷の軽減の双方を達成することが可能になる。
【００５９】
図９は、文書管理サーバ３０１が作成する差分ファイルの配信データの構成を説明するための構成図である。
【００６０】
図９において、９０１は配信データであり、ＸＭＬ形式で形成され、ヘッダ情報９０２とボディ情報９０３からなる。
【００６１】
ヘッダ情報９０２は、配信するデータのベースとなる文書ファイル名がわかるように文書名と、どの差分ファイルがデータとして配信されてくるかの差分ファイル名が含まれている。なお、配信データ９０１には、差分データを複数登録することができ、１回の通信ですべての差分ファイルを配信することを可能としている。ここでは、「差分Ａ−１」と「差分Ａ−２」が登録されている例を示す。
【００６２】
このように複数の差分ファイルをマージした差分ファイルのヘッダ情報９０２には、図示しない「マージ日付」、「マージファイル番号」含む構成であってもよい。
【００６３】
ボディ情報９０３は、ヘッダ情報９０２で登録した差分ファイル名の差分ファイルのデータ情報が入る。この差分ファイルのデータ情報は、図５で示した差分ファイル５０１の差分データに対応する。
【００６４】
なお、サーバＰＣ１０２の文書管理サーバ３０１が、差分ファイルを配布する場合、文書ＤＢ３０５から、必要な差分ファイルを抽出し、図９に示すように、複数の差分ファイルをマージして差分データ（配布データ）を生成することが可能である。
【００６５】
以下、図１０〜図１４のフローチャートを用いて、本発明の文書管理システムにおける各種処理を説明する。
【００６６】
図１０は、クライアントＰＣ１０１−１の文書管理プログラム３０７においてある文書ファイルを開こうとした場合に実行される処理の一例を示すフローチャートである。
【００６７】
まず、クライアントＰＣ１０１−１上で文書管理プログラム３０７が起動している状態を本フローチャートの開始点（Ｓ１００１）とする。
【００６８】
そして、ステップＳ１００２において、文書管理プログラム３０７が、ユーザにより文書ファイルを開くための操作がなされたことを検出すると、ステップＳ１００３に処理を進める。
【００６９】
ステップＳ１００３では、文書管理プログラム３０７が、上記文書ファイルを開くための操作がなされた文書ファイルがローカルの文書ＤＢ３０８に残っている（存在する）か判断する。
【００７０】
そして、上記文書ファイルがローカルの文書ＤＢ３０８に残っていると判断した場合には、文書管理プログラム３０７は、ステップＳ１００６へ処理を遷移し、一方、上記文書ファイルがローカルの文書ＤＢ３０８に残っていないと判断した場合には、ステップＳ１００４へ処理を遷移する。
【００７１】
ステップＳ１００４では、文書管理プログラム３０７は、文書ＤＢ３０８に上記文書ファイルが存在しなかったため、上記文書のベースとなる文書ファイルを文書管理サーバ３０１へリクエストする。
【００７２】
そして、ステップＳ１００５において、文書管理プログラム３０７は、文書管理サーバ３０１から配信データを受け取り、該受け取った配信データから文書ファイルを作成する（文書ファイルを受信する）。そして、ステップＳ１００６へ処理を進める。
【００７３】
次に、ステップＳ１００６では、文書管理プログラム３０７は、文書ＤＢ３０８に上記文書ファイルの差分データが存在するかを確認する。そして、文書管理プログラム３０７は、上記文書ファイルの差分データが存在すると判断した場合には、ステップＳ１００７へ処理を遷移し、一方、上記文書ファイルの差分データが存在しなと判断した場合には、ステップＳ１００８へ処理を遷移する。
【００７４】
ステップＳ１００７では、文書管理プログラム３０７は、文書ＤＢ３０８に存在する上記文書ファイルの差分ファイルの情報をリスト（差分ファイル名がリスト化される）を生成する。そして、ステップＳ１００８へ処理を進める。
【００７５】
次に、ステップＳ１００８において、文書管理プログラム３０７は、Ｓ１００７で生成したリスト情報を含むリクエストデータを生成し、最新の状態で表示できるように差分ファイルを文書管理サーバ３０１へリクエストする。
【００７６】
次に、ステップＳ１００９において、文書管理プログラム３０７は、文書管理サーバ３０１から配信されたデータを受信する。
【００７７】
次に、ステップＳ１０１０において、文書管理プログラム３０７は、受信データからヘッダ部９０２を解析して、登録されている差分ファイル名分の差分ファイルを作成する。
【００７８】
次に、ステップＳ１０１１において、文書管理プログラム３０７は、Ｓ１０１０で作成した差分ファイルを、文書ＤＢ３０８内に保存されている上記文書ファイルの差分ファイルとして保存する。
【００７９】
次に、ステップＳ１０１２において、文書管理プログラム３０７は、文書ＤＢ３０８内に保存され上記ベースとなる文書ファイルと差分ファイルとをマージして、メモリ上に最新の文書ファイルを生成する。
【００８０】
次に、ステップＳ１０１３において、文書管理プログラム３０７は、Ｓ１０１２においてメモリ上に生成された最新の状態の文書ファイルをモニタ２１０上に表示する。即ち、最新の文書ファイルが開かれる。
【００８１】
正常に文書ファイルが開かれると、文書管理プログラム３０７は、本フローチャートの処理を終了する。
【００８２】
図１１は、クライアントＰＣ１０１−１の文書管理プログラム３０７においてある文書ファイルを保存／閉じようとした場合に実行される処理の一例を示すフローチャートである。
【００８３】
まず、クライアントＰＣ１０１−１の文書管理プログラム３０７上で、文書ファイルが開かれている状態を本フローチャートの開始点（Ｓ１１０１）とする。
【００８４】
そして、ステップＳ１１０２において、文書管理プログラム３０７が、ユーザにより文書ファイルを保存もしくは閉じるための操作がなされたことを検出すると、ステップＳ１１０３に処理を進める。
【００８５】
ステップＳ１１０３では、文書管理プログラム３０７は、上記保存もしくは閉じようとした文書ファイルが編集されているかを判断する。そして、文書管理プログラム３０７は、上記文書が編集されていると判断した場合には、ステップＳ１１０４に処理を遷移し、一方、上記文書が編集されていないと判断した場合には、ステップＳ１１１２に処理を遷移する。
【００８６】
ステップＳ１１０４では、文書管理プログラム３０７は、上記文書の編集データを差分データとして抽出する。
【００８７】
次に、ステップＳ１１０５において、文書管理プログラム３０７は、差分ファイルのボディ部に埋め込むための差分データを生成する。即ち、差分ファイルのボディ部を生成する。
【００８８】
次に、ステップＳ１１０６において、文書管理プログラム３０７は、文書ＤＢ３０８内に上記文書ファイルの差分ファイルが保存されているかどうかを判断する。そして、文書管理プログラム３０７は、差分ファイルが保存されていると判断した場合には、ステップＳ１１０７へ処理を遷移し、一方、差分ファイルが保存されていないと判断した場合には、ステップＳ１１０８へ処理を遷移する。
【００８９】
ステップＳ１１０７は、文書管理プログラム３０７は、文書ＤＢ３０８内に既に存在する差分ファイルをもとに、差分ファイル名を決定する（例えば、「文書Ａ−１」という差分ファイルが既ににあった場合、「文書Ａ−２」という差分ファイル名を決定する）。そして、ステップＳ１１０８へ処理を進める。
【００９０】
次に、ステップＳ１１０８において、文書管理プログラム３０７は、作成する差分ファイルのヘッダ情報に、差分ファイル名や更新日、更新者、更新サイズを埋め込む。
【００９１】
次に、ステップＳ１１０９において、文書管理プログラム３０７は、Ｓ１１０８で生成されたヘッダ部、Ｓ１００５で生成されたボディ部から差分ファイルを作成する。
【００９２】
次に、ステップＳ１１１０において、文書管理プログラム３０７は、Ｓ１１０９で作成した差分ファイルを、文書ＤＢ３０８の文書ファイルの差分データとして保存する。
【００９３】
次に、ステップＳ１１１１において、文書管理プログラム３０７は、Ｓ１１０９で作成した差分ファイルを配信する配信データとしての差分データを生成し、文書管理サーバ３０１へアップロードする。なお、このアップロードは、文書管理サーバ３０１だけでなく、他のクライアントＰＣ（１０１−２等）の文書管理プログラム３０７にも配信することを想定していることは言うまでもない。そして、ステップＳ１１１１を終了すると、ステップＳ１１１２へ処理を進める。
【００９４】
次に、ステップＳ１１１２において、文書管理プログラム３０７は、上記文書ファイルの保存を完了する、もしくは、上記文書ファイルを閉じ、本フローチャートの処理を終了する。
【００９５】
図１２は、クライアントＰＣ１０１−２に差分データが配信されたときのクライアントＰＣ１０１−２の文書管理プログラム３０７の処理を説明するフローチャートである。
【００９６】
まず、クライアントＰＣ１０１−２上で文書管理プログラム３０７が起動している状態を本フローチャートの開始点（Ｓ１２０１）とする。
【００９７】
そして、ステップＳ１２０２において、文書管理プログラム３０７が、クライアントＰＣ１０１−１から差分データが配信されてきたことを検出すると、ステップＳ１２０３に処理を進める。
【００９８】
次に、ステップＳ１２０３において、文書管理プログラム３０７は、文書管理プログラム３０７の設定情報に基づいて、配信されてきた差分データを受け付ける（受信する）かどうかを判断する。
【００９９】
そして、文書管理プログラム３０７は、配信されてきた差分データを受信すると判断した場合には、ステップＳ１２０４へ処理を遷移し、一方、配信されてきた差分データを受信しないと判断した場合には、ステップＳ１２１０へ処理を遷移する。
【０１００】
ステップＳ１２０４では、文書管理プログラム３０７は、ベースとなる文書ファイルが存在するかを判断する。
【０１０１】
そして、文書管理プログラム３０７は、ベースとなる文書ファイルが存在すると判断した場合には、ステップＳ１２０６へ処理を遷移し、一方、ベースとなる文書ファイルが存在しないと判断した場合には、ステップＳ１２０５へ処理を遷移する。
【０１０２】
ステップＳ１２０５では、文書管理プログラム３０７は、文書管理プログラム３０７の設定情報に基づいて、ベースとなる文書ファイルが存在しなくても差分データを受信するか否かを判断する。
【０１０３】
そして、文書管理プログラム３０７は、ベースとなる文書ファイルが存在しなくても差分データを受信すると判断した場合には、ステップＳ１２０６へ処理を遷移し、一方、ベースとなる文書ファイルが存在しない場合には差分データを受信しないと判断した場合には、ステップＳ１２１０へ処理を遷移する。
【０１０４】
ステップＳ１２０６では、文書管理プログラム３０７は、配信されてきた差分データを文書管理プログラム内のメモリ上に保存する。
【０１０５】
次に、ステップＳ１２０７において、文書管理プログラム３０７は、受信した差分データから差分ファイルを作成する。
【０１０６】
次に、ステップＳ１２０８において、文書管理プログラム３０７は、Ｓ１２０６で作成した差分ファイルからベースとなる文書ファイルを判断し、Ｓ１２０６で作成した差分ファイルを文書ＤＢ３０８へ保存する。
【０１０７】
次に、ステップＳ１２０９において、文書管理プログラム３０７は、文書ファイルの文書情報を更新する（文書情報内の「受信済みのバージョン」の情報を更新する）。これにより、ユーザは、文書情報のプロパティを参照した際、「受信済みのバージョン」等の情報を確認することができる。そして、ステップＳ１２０９へ処理を遷移する。
【０１０８】
次に、ステップＳ１２０９において、文書管理プログラム３０７は、配信されてきた差分データを破棄し、本フローチャートの処理を終了する。
【０１０９】
図１３は、サーバＰＣ１０２にクライアントＰＣ１０１からデータが送られてきた場合の文書管理サーバ３０１の処理を説明するフローチャートである。
【０１１０】
まず、サーバＰＣ１０２上で文書管理サーバ３０１が起動している状態を本フローチャートの開始点（Ｓ１３０１）とする。
【０１１１】
そして、ステップＳ１３０２において、文書管理サーバ３０１が、クライアントＰＣ１０１から何らのデータが送られてきたことを検出すると、ステップＳ１３０３に処理を進める。
【０１１２】
ステップＳ１３０３では、文書管理サーバ３０１は、送られてきたデータを受信する。
【０１１３】
次に、ステップＳ１３０４において、文書管理サーバ３０１は、受信データを解析して、受信データが文書ファイルの差分データ（ＸＭＬ形式なので、ヘッダ情報から判断できる）かどうかを判断する。
【０１１４】
そして、文書管理サーバ３０１は、受信データが文書ファイルの差分データであると判断した場合には、ステップＳ１３０８へ処理を遷移し、一方、受信データが文書ファイルの差分データでないと判断した場合には、ステップＳ１３０５へ処理を遷移する。
【０１１５】
ステップＳ１３０５では、文書管理サーバ３０１は、受信データが文書ファイルの差分データでないことから、受信データがベースとなる文書ファイルを登録するために送られてきたデータであると判断し、文書ファイルを作成する。
【０１１６】
次に、ステップＳ１３０６において、文書管理サーバ３０１は、文書ＤＢ３０５に、Ｓ１３０５で作成した文書ファイルを格納するための文書ディレクトリを作成する。このとき文書ディレクトリ名は、文書ファイル名とする。
【０１１７】
次に、ステップＳ１３０７において、文書管理サーバ３０１は、文書ＤＢ３０５に作成した文書ディレクトリに、Ｓ１３０５で作成した文書ファイルを保存する。そして、ステップＳ１３１４に処理を進める。
【０１１８】
またステップＳ１３０８において、文書管理サーバ３０１は、受信データが文書ファイルの差分データであることから、該差分データからヘッダ情報を取得する。
【０１１９】
次に、ステップＳ１３０９において、文書管理サーバ３０１は、Ｓ１３０８で取得されたヘッダ情報に設定されている文書ファイル名の文書ディレクトリが文書ＤＢ３０５に存在するかを確認する。
【０１２０】
そして、文書管理サーバ３０１は、Ｓ１３０８で取得されたヘッダ情報に設定されている文書ファイル名の文書ディレクトリが文書ＤＢ３０５に存在すると判断した場合には、ステップＳ１３１０へ処理を遷移し、一方、Ｓ１３０８で取得されたヘッダ情報に設定されている文書ファイル名の文書ディレクトリが文書ＤＢ３０５に存在しないと判断した場合には、ステップＳ１３１３へ処理を遷移する。
【０１２１】
ステップＳ１３１０では、文書管理サーバ３０１は、受信した差分データから差分ファイルを作成する。
【０１２２】
次に、ステップＳ１３１１において、文書管理サーバ３０１は、文書ファイル名の文書ディレクトリに上記差分ファイルを保存する。
【０１２３】
次に、ステップＳ１３１２において、文書管理サーバ３０１は、管理ファイルとして文書ファイルの差分ファイル情報を追加する。そして、ステップＳ１３１４に処理を進める。
【０１２４】
また、ステップＳ１３１３では、文書管理サーバ３０１は、差分データを保存できない旨をユーザへ通知し、ステップＳ１３１４に処理を進める。
【０１２５】
ステップＳ１３１４では、文書管理サーバ３０１は、送られてきたデータを破棄し、本フローチャートの処理を終了する。
【０１２６】
図１４は、サーバＰＣ１０２にクライアントＰＣ１０１から文書ファイルの最新に更新したいリクエストを受けたときの文書管理サーバ３０１の処理を説明するフローチャートである。
【０１２７】
まず、サーバＰＣ１０２上で文書管理サーバ３０１が起動している状態を本フローチャートの開始点（Ｓ１４０１）とする。
【０１２８】
そして、ステップＳ１４０２は、文書管理サーバ３０１は、クライアントＰＣ１０１から文書ファイルを最新の状態へ更新したいというリクエストを受け付けたことを検知すると、ステップＳ１４０３に処理を進める。
【０１２９】
ステップＳ１４０３では、文書管理サーバ３０１は、クライアントＰＣ１０１からのリクエストデータを受信する。
【０１３０】
次に、ステップＳ１４０４において、文書管理サーバ３０１は、Ｓ１４０３で受信したデータの中身を解析する。受信データには、更新したい文書ファイル名と、既にクライアントＰＣ１０１で保持している差分ファイル名のリストが含まれている。
【０１３１】
次に、ステップＳ１４０５において、文書管理サーバ３０１は、受信データに含まれる文書ファイル名と同じ文書ディレクトリが文書ＤＢ３０５に存在するかを判断する。
【０１３２】
そして、文書管理サーバ３０１は、受信データに含まれる文書ファイル名と同じ文書ディレクトリが文書ＤＢ３０５に存在すると判断した場合には、ステップＳ１４０６へ処理を遷移し、一方、受信データに含まれる文書ファイル名と同じ文書ディレクトリが文書ＤＢ３０５に存在しないと判断した場合には、ステップＳ１４１１へ処理を遷移する。
【０１３３】
ステップＳ１４０６では、文書管理サーバ３０１は、受信データに、差分ファイル名のリストが含まれているか確認する。
【０１３４】
そして、文書管理サーバ３０１は、受信データに差分ファイル名のリストが含まれていると判断した場合には、ステップＳ１４０８へ処理を遷移し、受信データに差分ファイル名のリスト情報が含まれていないと判断した場合には、ステップＳ１４０７へ処理を遷移する。
【０１３５】
ステップＳ１４０８では、文書管理サーバ３０１は、受信データに含まれるリスト情報に存在しない差分ファイルを、対象となる文書ディレクトリから抽出（取得）する。そして、ステップＳ１４０９に処理を進める。
【０１３６】
また、ステップＳ１４０７では、文書管理サーバ３０１は、対象となる文書ディレクトリからすべの差分ファイルを抽出（取得）する。そして、ステップＳ１４０９に処理を進める。
【０１３７】
次に、ステップＳ１４０９では、文書管理サーバ３０１は、配信データを生成するために、ヘッダ情報に、ベースのファイル名を埋め込み、クライアントＰＣ１０１へ返す差分ファイル名を埋め込む。さらに、ボディ部には、差分ファイル分のデータを埋め込む。これを１つの配信データとして生成する。
【０１３８】
次に、ステップＳ１４１０において、文書管理サーバ３０１は、Ｓ１４０９で生成した配信データをリクエストしてきたクライアントＰＣ１０１へ配信する。そして、ステップＳ１４１２に処理を進める。
【０１３９】
そして、ステップＳ１４１２では、文書管理サーバ３０１は、受信したリクエストデータを破棄し、本フローチャートの処理を終了する。
【０１４０】
以上示したように、本発明の文書管理システムによれば、サーバ／クライアント間のネットワーク相互（上り、下り）のデータ通信量を軽減するだけでなく、サーバＰＣ１０２の負荷も軽減することができる。
【０１４１】
なお、文書管理プログラム３０７は、文書ファイルの編集を検知した場合には、その旨を他のクライアントＰＣの文書管理プログラム３０７や文書管理サーバ３０１に通知するように構成してもよい。なお、他のクライアントＰＣから、この通知を受け取った、クライアントＰＣの文書管理プログラム３０７は、該文書の編集を受け付けない（ロックする）ように制御するものとする。
【０１４２】
これにより、複数のクライアントＰＣの文書管理プログラム３０７が同一の文書ファイルを同時に編集してしまうことに起因するコンフリクトの発生を防止することができる。
【０１４３】
なお、クライアントＰＣ１０１の文書管理プログラム３０７は、他のクライアントＰＣ１０１の文書管理プログラム３０７から差分ファイルが配信されてきた場合、該差分ファイルに対応する文書ファイルを保持していない場合、前記配信されてきた差分ファイルを受信しないように制御する。
【０１４４】
文書管理サーバ３０１の文書を取得する際、ベースファイルがクライアントＰＣ１０１に存在しないのであれば、ベースファイルを先に受信してから、差分データを受信するように構成してもよい。
【０１４５】
また、ユーザの指定により、文書管理サーバ３０１で予めマージした最新の文書ファイルを受信可能に構成してもよい。
【０１４６】
さらに、サーバＰＣ１０２の文書管理サーバ３０１で保管している差分データは、サーバ管理者の任意のタイミングで、差分データをマージ可能に構成してもよい。
【０１４７】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１４８】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４９】
以下、図１５に示すメモリマップを参照して本発明に係る文書管理システムを構成するクライアントＰＣ１０１，サーバＰＣ１０２で読み取り可能なデータ処理プログラムの構成について説明する。
【０１５０】
図１５は、本発明に係る文書管理システムを構成するクライアントＰＣ１０１，サーバＰＣ１０２で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１５１】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１５２】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１５３】
本実施形態における図１１，図１２，図１３，図１４に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１５４】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１５５】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１５６】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１５７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５９】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６０】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６１】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１６２】
【図１】本発明の一実施形態を示す文書管理サーバ及び文書管理プログラムの一例を示すシステム構成図である。
【図２】図１に示したクライアントＰＣ１０１、サーバＰＣ１０２のハードウェア構成の一例を示すブロック図である。
【図３】図１に示したサーバＰＣ１０２およびクライアントＰＣ１０１の機能構成を示す機能構成図である。
【図４】図３で示した文書ＤＢ３０５の階層構造を示す図である。
【図５】図４に示した差分ファイル４０３−１の構成の一例を示す図である。
【図６】図３で説明した管理情報３０８の構成の一例を示す図である。
【図７】図３に示した文書管理サーバ３０１および文書管理プログラム３０７を利用したアップロード機能について詳細に説明するための構成図である。
【図８】図３に示した文書管理サーバ３０１および文書管理プログラム３０７を利用したアップロード機能について詳細に説明するための構成図である。
【図９】文書管理サーバ３０１が作成する差分ファイルの配信データの構成を説明するための構成図である。
【図１０】クライアントＰＣ１０１−１の文書管理プログラム３０７においてある文書ファイルを開こうとした場合に実行される処理の一例を示すフローチャートである。
【図１１】クライアントＰＣ１０１−１の文書管理プログラム３０７においてある文書ファイルを保存／閉じようとした場合に実行される処理の一例を示すフローチャートである。
【図１２】クライアントＰＣ１０１−２に差分データが配信されたときのクライアントＰＣ１０１−２の文書管理プログラム３０７の処理を説明するフローチャートである。
【図１３】サーバＰＣ１０２にクライアントＰＣ１０１からデータが送られてきた場合の文書管理サーバ３０１の処理を説明するフローチャートである。
【図１４】サーバＰＣ１０２にクライアントＰＣ１０１から文書ファイルの最新に更新したいリクエストを受けたときの文書管理サーバ３０１の処理を説明するフローチャートである。
【図１５】本発明に係る文書管理システムを構成するクライアントＰＣ１０１，サーバＰＣ１０２で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１６３】
１０１（１０１−１，１０１−２）    クライアントＰＣ
１０２    サーバＰＣ
１０３    ＬＡＮ
３０１    文書管理サーバ
３０２    文書管理プログラム
【図１】
2009163459.tif 000003
【図２】
2009163459.tif 000004
【図３】
2009163459.tif 000005
【図４】
2009163459.tif 000006
【図５】
2009163459.tif 000007
【図６】
2009163459.tif 000008
【図７】
2009163459.tif 000009
【図８】
2009163459.tif 000010
【図９】
2009163459.tif 000011
【図１０】
2009163459.tif 000012
【図１１】
2009163459.tif 000013
【図１２】
2009163459.tif 000014
【図１３】
2009163459.tif 000015
【図１４】
2009163459.tif 000016
【図１５】
2009163459.tif 000017