(57)【要約】【課題】複数のユーザにより共有文書が同時並行して編集が行われる場合に発生しうる競合を確実に解決する。【解決手段】ユーザからの文書取得要求に応じて、コピー文書作成部２２は編集対象の共有文書のコピー文書を当該ユーザ編集用に作成し、バックアップ文書作成部２４はコピー文書を複製してバックアップ文書を作成して、それぞれ各文書保持管理部２３，２５で保持する。コピー文書を編集したユーザからの保存要求に応じて、保存処理部２６は、受信したコピー文書と保持していたバックアップ文書を比較し、編集が検出されれば、その検出した編集内容で共有文書を更新し、検出されなければ更新しない。【選択図】図１
2007328489.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザによって共有される電子文書を記憶する文書記憶手段から、ユーザが編集対象とする電子文書を取り出し、当該ユーザの編集用に当該電子文書の複製文書を作成する複製文書作成手段と、
前記複製文書作成手段が作成した複製文書を当該ユーザが使用する情報処理装置へ送る文書送信手段と、
前記複製文書作成手段が作成した複製文書を当該ユーザが識別可能に保持する複製文書保持手段と、
前記複製文書作成手段が作成した複製文書を更に複製することで当該ユーザに対応した予備文書を作成する予備文書作成手段と、
前記予備文書作成手段が作成した予備文書を当該ユーザが識別可能に保持する予備文書保持手段と、
ユーザから文書の保存を要求された場合に、保存対象として送られてきた複製文書と、前記予備文書保持管理手段に保持された当該複製文書の予備文書とを比較して、当該ユーザによる複製文書に対する編集内容を検出する更新検出手段と、
前記更新検出手段により編集内容が検出された場合、その検出された編集内容で前記文書記憶手段に格納された当該電子文書を更新する文書更新手段と、
を有することを特徴とする文書管理装置。
【請求項２】
文書記憶手段に記憶され、複数のユーザによって共有される電子文書の管理を行うコンピュータを、
前記文書記憶手段から、ユーザが編集対象とする電子文書を取り出し、当該ユーザの編集用に当該電子文書の複製文書を作成する複製文書作成手段、
前記複製文書作成手段が作成した複製文書を当該ユーザが使用する情報処理装置へ送る文書送信手段、
前記複製文書作成手段が作成した複製文書を当該ユーザが識別可能に保持する複製文書保持手段、
前記複製文書作成手段が作成した複製文書を更に複製することで当該ユーザに対応した予備文書を作成する予備文書作成手段、
前記予備文書作成手段が作成した予備文書を当該ユーザが識別可能に保持管理する予備文書保持管理手段、
ユーザから文書の保存を要求された場合に、保存対象として送られてきた複製文書と、前記予備文書保持管理手段に保持された当該複製文書の予備文書とを比較して、当該ユーザによる複製文書に対する編集内容を検出する更新検出手段、
前記更新検出手段により編集内容が検出された場合、その検出された編集内容で前記文書記憶手段に格納された当該電子文書を更新する文書更新手段、
として機能させる文書管理プログラム。
【請求項３】
前記複製文書作成手段は、文書を保存する要求に応じて前記文書更新手段が更新処理を実施した場合、その更新処理によって前記文書記憶手段に記憶された当該電子文書の更新の有無にかかわらず、その更新処理実施後に前記文書記憶手段から当該ユーザが編集対象とする電子文書を取り出し、当該ユーザの編集用に当該電子文書の複製文書を作成し、
前記複製文書作成手段により複製文書が作成されたことに応じて、
前記文書送信手段は、作成された複製文書を当該ユーザが使用する情報処理装置へ送り、
前記複製文書保持手段は、保持している複製文書を作成された複製文書で更新し、
前記予備文書作成手段は、作成された複製文書の予備文書を作成し、
前記予備文書保持手段は、保持している予備文書を作成された複製文書で更新する、
ことを特徴とする請求項２記載の文書管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のユーザにより並行して編集が施される電子文書の管理に関する。
【背景技術】
【０００２】
従来から、共有化された電子文書を複数のユーザにより編集を行うためのシステムや、文書レビューを行うシステムが存在している。これらシステムでは、複数ユーザが同時並行して電子文書の編集を実施すると、ユーザ同士の編集が競合して共有文書の整合性を保てないという問題が発生しうる。
【０００３】
このような競合を解決または回避する従来技術として、共有文書をロックして、同時に文書を編集できるユーザを１人に制限する技術（例えば、特許文献１）や、ユーザ毎のコピー文書を作成して、ユーザにはコピー文書を編集させることで同時に複数ユーザが文書を編集しても競合を解決できるという技術（例えば、特許文献２）等がある。
【０００４】
【特許文献１】特開２００１−５１８８７号公報
【特許文献２】特開２００４−３２６１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１は、同時並行した編集を実施させないことで競合を回避するという消極的な方法であって同時並行した編集を許容するものではない。これに対し、特許文献２は、同時並行した編集環境を提供することが可能である。しかし、更新を検出できない文書編集アプリケーションを利用して文書編集を行う場合、競合を確実に解決することができない場合があった。このことについて、具体例をあげて説明する。
【０００６】
図１１は、従来技術を利用して２人のユーザＡ，Ｂが同時並行して共有文書に対して編集を行う場合の各文書の内容の遷移を示した概念図である。
【０００７】
まず、時刻Ｔ１においてユーザＡ，Ｂそれぞれに共有文書のコピー文書が作成された後、ユーザＢが時刻Ｔ２においてコピー文書に含まれている既存のアノテーションを編集した後、文書保存をしようとしたとする。このとき、共有文書のアノテーション「あああ」とユーザＢのコピー文書のアノテーション「いいい」とは異なるので、従来においては、時刻Ｔ３に示すように共有文書のアノテーションをユーザＢによる編集内容で更新する。その後、ユーザＡは、既存のアノテーション「あああ」は編集しなかったけれども他の箇所を編集したので文書保存をしようとしたとする。このとき、共有文書のアノテーション「いいい」とユーザＡのコピー文書のアノテーション「あああ」とは異なるので、従来においては、時刻Ｔ４に示すように共有文書のアノテーションをユーザＡのコピー文書のアノテーション「あああ」で更新する。
【０００８】
このように、更新を検出できない文書編集アプリケーションを利用すると、従来においては、同一内容の共有文書からユーザＡ，Ｂにそれぞれコピー文書を作成した後、ユーザＡのコピー文書を保存しようとしたときに、その保存前にユーザＢのコピー文書ですでにアノテーションが更新されていることを検出することができないので、上記のようにユーザＢの更新内容をユーザＡの内容、すなわち更新されていないアノテーションで上書きしてしまうという不具合が生じる可能性があった。
【０００９】
本発明は、以上のような課題を解決するためになされたものであり、複数のユーザにより共有文書に対し並行して編集が行われる場合に発生しうる競合を確実に解決することを目的とする。
【課題を解決するための手段】
【００１０】
以上のような目的を達成するために、本発明に係る文書管理装置は、複数のユーザによって共有される電子文書を記憶する文書記憶手段から、ユーザが編集対象とする電子文書を取り出し、当該ユーザの編集用に当該電子文書の複製文書を作成する複製文書作成手段と、前記複製文書作成手段が作成した複製文書を当該ユーザが使用する情報処理装置へ送る文書送信手段と、前記複製文書作成手段が作成した複製文書を当該ユーザが識別可能に保持する複製文書保持手段と、前記複製文書作成手段が作成した複製文書を更に複製することで当該ユーザに対応した予備文書を作成する予備文書作成手段と、前記予備文書作成手段が作成した予備文書を当該ユーザが識別可能に保持する予備文書保持手段と、ユーザから文書の保存を要求された場合に、保存対象として送られてきた複製文書と、前記予備文書保持管理手段に保持された当該複製文書の予備文書とを比較して、当該ユーザによる複製文書に対する編集内容を検出する更新検出手段と、前記更新検出手段により編集内容が検出された場合、その検出された編集内容で前記文書記憶手段に格納された当該電子文書を更新する文書更新手段とを有することを特徴とする。
【００１１】
本発明に係る共文書管理プログラムは、文書記憶手段に記憶され、複数のユーザによって共有される電子文書の管理を行うコンピュータを、前記文書記憶手段から、ユーザが編集対象とする電子文書を取り出し、当該ユーザの編集用に当該電子文書の複製文書を作成する複製文書作成手段、前記複製文書作成手段が作成した複製文書を当該ユーザが使用する情報処理装置へ送る文書送信手段、前記複製文書作成手段が作成した複製文書を当該ユーザが識別可能に保持する複製文書保持手段、前記複製文書作成手段が作成した複製文書を更に複製することで当該ユーザに対応した予備文書を作成する予備文書作成手段、前記予備文書作成手段が作成した予備文書を当該ユーザが識別可能に保持管理する予備文書保持管理手段、ユーザから文書の保存を要求された場合に、保存対象として送られてきた複製文書と、前記予備文書保持管理手段に保持された当該複製文書の予備文書とを比較して、当該ユーザによる複製文書に対する編集内容を検出する更新検出手段、前記更新検出手段により編集内容が検出された場合、その検出された編集内容で前記文書記憶手段に格納された当該電子文書を更新する文書更新手段として機能させる。
【００１２】
また、前記複製文書作成手段は、文書を保存する要求に応じて前記文書更新手段が更新処理を実施した場合、その更新処理によって前記文書記憶手段に記憶された当該電子文書の更新の有無にかかわらず、その更新処理実施後に前記文書記憶手段から当該ユーザが編集対象とする電子文書を取り出し、当該ユーザの編集用に当該電子文書の複製文書を作成し、前記複製文書作成手段により複製文書が作成されたことに応じて、前記文書送信手段は、作成された複製文書を当該ユーザが使用する情報処理装置へ送り、前記複製文書保持手段は、保持している複製文書を作成された複製文書で更新し、前記予備文書作成手段は、作成された複製文書の予備文書を作成し、前記予備文書保持手段は、保持している予備文書を作成された複製文書で更新することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数のユーザにより並行して共有文書に対して編集が行われる場合でも、ユーザにより実施された編集を確実に共有文書に反映でき、また編集されていない内容で編集された内容を上書きすることが発生しないようにしたので、並行して共有文書に編集が行われる場合に発生しうる競合を確実に解決することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１５】
図１は、本実施の形態における共有文書処理システムを示したブロック構成図である。図１には、電子文書を共有化するユーザによって使用されるクライアント１２と、共有化された電子文書（共有文書）を保持管理する文書管理サーバ２０とが示されており、それぞれが情報交換可能にネットワーク１４にて接続されている。
【００１６】
クライアント１２は、更新を検出できない文書編集アプリケーションを実行することで実現される文書編集処理部１３を有しており、文書管理サーバ２０にて保持管理されている共有文書に対して編集を行う。なお、本実施の形態では、複数のユーザによって同一の共有文書に対して同時並行して編集を行うので、本システムには、複数台のクライアント１２が含まれていることになるが、各クライアント１２共に同じ構成でよいため、図１には１台のみ示した。
【００１７】
文書管理サーバ２０は、本発明に係る共有文書管理装置に相当する装置であって、共有文書作成部２１、コピー文書作成部２２、コピー文書保持管理部２３、バックアップ文書作成部２４、バックアップ文書保持管理部２５、保存処理部２６及び文書処理制御部２７を有している。本実施の形態では、電子文書本体とアノテーションとを分離して管理しているので、共有文書作成部２１は、複数のユーザが同時並行して文書編集を行う電子文書及びアノテーションを文書データベース２８から取り出し、電子文書にアノテーションを付加して共有文書を作成する。コピー文書作成部２２は、共有文書のコピー文書をユーザ毎に作成する。コピー文書保持管理部２３は、コピー文書作成部２２がユーザ毎に作成したコピー文書を保持管理する。バックアップ文書作成部２４は、コピー文書作成部２２がユーザ毎に作成したコピー文書を更に複製することでバックアップ文書をユーザ毎に作成する。バックアップ文書保持管理部２５は、バックアップ文書作成部２４がユーザ毎に作成したバックアップ文書を保持管理する。保存処理部２６は、ユーザからの文書保存要求に応じてコピー文書の保存処理を行う手段であり、更新検出部２９と共有文書更新部３０とを有している。更新検出部２９は、いずれかのユーザが使用するクライアント１２から文書保存のために送られてきたコピー文書と当該コピー文書のバックアップ文書とを比較して、当該ユーザによるコピー文書に対する編集内容を検出する。共有文書更新部３０は、更新検出部２９が検出したコピー文書への編集内容を、コピー文書の元となる共有文書に反映することで文書データベース２８に格納された当該電子文書を更新する。文書処理制御部２７は、クライアント１２との情報交換、文書管理サーバ２０が実施される文書管理処理全体の処理制御を行う。具体的には、ユーザからの文書取得要求に応じて該当する共有文書を当該ユーザ使用のクライアント１２へ送信する。また、ユーザからの文書保存要求に応じて保存処理部２６にコピー文書の保存処理を実施させる。
【００１８】
図２は、本実施の形態における文書データベース２８に含まれている文書テーブル３１のデータ構成例を示した図である。文書テーブル３１に登録される各レコードは、文書毎に生成される。各レコードは、文書を識別する文書ＩＤ、文書種別を示す文書タイプ、文書所有者の識別情報を示すユーザＩＤ、文書名及び文書の本体が対応付けして生成される。
【００１９】
図３は、本実施の形態における文書データベース２８に含まれているアノテーションテーブル３２のデータ構成例を示した図である。アノテーションテーブル３２に登録される各レコードは、アノテーション毎に生成される。各レコードは、アノテーションを識別するアノテーションＩＤ、文書を識別する文書ＩＤ、削除されたか否かを示す削除フラグ、電子文書上におけるアノテーションの付加位置を特定するための位置情報、ユーザにアノテーションとして記載された実際の内容及び外部のメッセージと関連付けるための連携メッセージＩＤが対応付けして生成される。
【００２０】
本実施の形態では、以上の各テーブル３１，３２を設けて電子文書と当該電子文書に付加されるアノテーションとを別個に保持管理している。そして、電子文書とアノテーションとは、文書ＩＤによって関連付けている。
【００２１】
図４は、本実施の形態における文書管理サーバ２０のハードウェア構成図である。本実施の形態における文書管理サーバ２０は、従前から存在する汎用的なサーバコンピュータが持つハードウェア構成で実現できる。すなわち、文書管理サーバ２０は、図４に示したようにＣＰＵ１、ＲＯＭ２、ＲＡＭ３、ハードディスクドライブ（ＨＤＤ）４を接続したＨＤＤコントローラ５、入力手段として設けられたマウス６及びキーボード７、表示装置として設けられたディスプレイ８をそれぞれ接続する入出力コントローラ９を内部バス１０に接続して構成される。なお、クライアント１２は、汎用的なパーソナルコンピュータ（ＰＣ）にて実現されるため、性能等の相違はあるもののハードウェアの基本構成は、図４と同様である。
【００２２】
文書管理サーバ２０における各構成要素２１〜２７は、文書管理サーバ２０に搭載されたコンピュータと、コンピュータに搭載されたＣＰＵで動作するプログラムとの協調動作により実現される。また、文書データベース２８は、文書管理サーバ２０に搭載された外部記憶装置にて実現される。なお、文書データベース２８は、文書管理サーバ２０に搭載せずにネットワーク１４を介してアクセス可能に構成してもよい。本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。また、クライアント１２における構成要素は、クライアント１２に搭載されたコンピュータと、コンピュータに搭載されたＣＰＵで動作するプログラムとの協調動作により実現される。
【００２３】
次に、本実施の形態における動作について説明するが、まず、従来例の図１１に対応する図５を用いて本実施の形態における基本動作について説明する。
【００２４】
まず、時刻Ｔ１において同一の共有文書からユーザＡ，Ｂそれぞれが使用するコピー文書が作成され、更に各ユーザＡ，Ｂのコピー文書がそれぞれ複製されてバックアップ文書が作成される。時刻Ｔ２において、ユーザＢがコピー文書に含まれている既存のアノテーションを編集し、時刻Ｔ３において文書保存をしようとしたとする。このとき、ユーザＢのコピー文書のアノテーション「いいい」と、ユーザＢのバックアップ文書のアノテーション「あああ」とは異なるので、当該アノテーションは、ユーザＢによって編集されたと認識できる。これにより、本実施の形態おいては、時刻Ｔ３に示すように共有文書のアノテーションをユーザＢによる編集内容で更新する。その後、時刻Ｔ４に示すように文書保存を要求したユーザＢに対して、更新された共有文書のコピー文書が作成され、更にそのコピー文書が複製されてバックアップ文書が作成される。
【００２５】
時刻Ｔ５において、ユーザＡは、既存のアノテーション「あああ」は編集しなかったけれども他の箇所を編集したので文書保存をしようとしたとする。このとき、ユーザＡのコピー文書のアノテーション「あああ」と、ユーザＡのバックアップ文書のアノテーション「あああ」とは一致するので、当該アノテーションは、ユーザＡによって編集されていないと認識できる。これにより、本実施の形態おいては、時刻Ｔ５に示すように共有文書のアノテーションを、保存要求された場合でもユーザＡによる編集内容で更新しない。その後、時刻Ｔ６に示すように文書保存を要求したユーザＡに対して、更新された共有文書のコピー文書が作成され、更にそのコピー文書が複製されてバックアップ文書が作成される。
【００２６】
本実施の形態においては、以上のように動作するので、ユーザによって編集された内容を共有文書に反映できると共に、編集しなかった場合には共有文書を更新せずにすむので、不具合を発生させることなく複数ユーザによって同一共有文書を同時並行して編集させることができる。
【００２７】
なお、時刻Ｔ４において、文書保存要求がされたときに共有文書から文書保存を要求したユーザＢのコピー文書、更にバックアップ文書が作成される。共有文書は、ユーザＢによる編集内容によって更新されたのだから、ユーザＢのコピー文書は、同一内容の共有文書で上書きされることになるので、実際には不要な処理とも考えられる。ただ、このときの処理は、時刻Ｔ６と同じルーチンとすることでプログラム上の便宜を図るために行うようにした。共有文書のサイズが大きければ、コピー文書をあえて作成しない方が処理効率は良くなると考えられる。もちろん、バックアップ文書の作成処理は必須である。また、バックアップ文書は、コピー文書のバックアップという位置付けなので、コピー文書を複製することによって作成することが適切であり、本実施の形態においてもそのように処理している。ただ、共有文書を複製してコピー文書とバックアップ文書とを作成するようにしてもよい。
【００２８】
続いて、本実施の形態における動作の詳細について各フローチャートを用いて説明する。本実施の形態では、クライアント１２を使用するユーザがレビュー等のために電子文書を文書管理サーバ２０から取得する文書編集開始処理と、取得した電子文書を保存する文書保存処理とに大別できる。まず最初にユーザが電子文書の編集を開始するときの処理について、図６に示したフローチャートを用いて説明する。
【００２９】
文書管理サーバ２０において、文書処理制御部２７がクライアント１２から文書特定情報、例えば文書名等文書特定情報が指定された文書取得要求を受け付ける（ステップ１１０）。共有文書作成部２１は、文書処理制御部２７からの指示に応じて文書特定情報により特定できる電子文書の本体及び当該電子文書の文書ＩＤから特定できるアノテーションを文書データベース２８からそれぞれ取り出し、電子文書とアノテーションとを統合することで共有文書を作成する（ステップ１２０）。共有文書が作成されると、コピー文書作成部２２は、共有文書を複製することで当該ユーザ編集用にコピー文書を作成する（ステップ１３０）。コピー文書保持管理部２３は、コピー文書作成部２２がコピー文書を作成すると、その作成したコピー文書を保持する（ステップ１４０）。バックアップ文書作成部２４は、コピー文書保持管理部２３がコピー文書を保持すると、その保持したコピー文書を複製することでバックアップ文書を作成する（ステップ１５０）。バックアップ文書保持管理部２５は、バックアップ文書作成部２４がバックアップ文書を作成すると、その作成したバックアップ文書を保持する（ステップ１６０）。一方、文書処理制御部２７は、コピー文書作成部２２がコピー文書を作成すると、その作成したコピー文書を文書取得要求送信元のクライアント１２へ送信する（ステップ１７０）。なお、フローチャート上、上記処理手順で説明したが、コピー文書作成後における文書処理（ステップ１４０〜１６０）と送信処理（ステップ１７０）とは、同時並行して実施することができる。クライアント１２は、このようにして、編集対象の共有文書、正確には共有文書のコピー文書を取得することができる。
【００３０】
更に、他のユーザが文書取得要求を送信すると、前述した文書取得処理が実施され、ユーザ毎に共有文書のコピー文書、そしてバックアップ文書が作成される。従って、各文書保持管理部２３，２５は、コピー文書所有者のユーザＩＤとコピー文書とを対応付けしてすることで各コピー文書の使用者を判別可能に保持管理する。この文書編集開始処理がユーザＡ，Ｂによる文書取得要求に応じて実施されるによって図５における時刻Ｔ１に示した状態になる。
【００３１】
クライアント１２における文書編集処理部１３は、ユーザ操作に応じて受信した共有文書に対して編集処理を施す。例えば、ユーザＢがあるアノテーション「あああ」を「いいい」に編集したとする。この文書編集をユーザＢが行ったことによって、各文書の内容は、図５における時刻Ｔ２に示した状態になる。
【００３２】
次に、ユーザＢが編集した電子文書をクライアント１２に保存した後、文書保存要求を文書管理サーバ２０へ送出することで実施される文書保存処理について図７に示したフローチャートを用いて説明する。
【００３３】
文書管理サーバ２０において、文書処理制御部２７がクライアント１２から文書特定情報、例えば文書名等文書特定情報が指定され、若しくは電子文書の本体が付加された文書保存要求を受け付ける（ステップ２１０）。保存処理部２６は、文書処理制御部２７からの指示に応じてクライアント１２から取得した電子文書で、コピー文書保持管理部２３にて保持されている当該電子文書の元となるコピー文書を上書き保存する（ステップ２２０）。より具体的にいうと、保存処理部２６は、クライアント１２から取得した電子文書と共に送られてきたユーザＩＤと、コピー文書保持管理部２３にて保持されているコピー文書のユーザＩＤとの比較・照合により、どのコピー文書を上書きするのかを特定できる。なお、ユーザＢが複数の電子文書を複数同時に処理していた場合には、文書ＩＤ等も合わせて照合することで上書きする部コピー文書を特定することができる。
【００３４】
続いて、保存処理部２６における更新検出部２９は、上書き保存したコピー文書をコピー文書保持管理部２３から取り出し（ステップ２３０）、その上書き保存したコピー文書に対応するバックアップ文書をバックアップ文書保持管理部２５から取り出し（ステップ２４０）、バックアップ文書とコピー文書とを比較・照合することでユーザＢが編集したか否かを検出する（ステップ２５０）。より詳細に言うと、文書編集開始処理の際にユーザＢ使用のクライアント１２へ送った電子文書、すなわちコピー文書保持管理部２３に保持されていたコピー文書のバックアップ文書と、文書保存処理においてユーザＢから受け取った電子文書、すなわちコピー文書保持管理部２３を上書き保存したコピー文書とを比較・照合することで編集の有無を検出する。なお、ステップ２４０における更新の検出についての処理の詳細は、追って説明する。なお、図５に例示したように、アノテーションの編集の有無を検出する場合、コピー文書及びバックアップ文書からそれぞれアノテーションを電子文書本体から分離してからアノテーションを比較する。
【００３５】
この検出処理によりユーザＢによって電子文書（電子文書の本体及び／又はアノテーション）が更新されたと認識すると（ステップ２６０でＹ）、共有文書更新部３０は、ユーザＢによって編集された内容を反映することで電子文書を更新する（ステップ２７０）。より詳細に言うと、文書データベース２８は、電子文書の本体とアノテーションとを分離して保持されるので、共有文書更新部３０は、ユーザＢによって編集された電子文書を文書本体部分とアノテーションとに分離して文書テーブル３１及びアノテーションテーブル３２をそれぞれ更新する。図５に示した例では、ユーザＢは、アノテーションのみを編集したので、共有文書更新部３０は、編集されたアノテーションに関する情報のみを更新すればよい。なお、ステップ２５０におけるユーザによる編集内容で共有文書を更新する処理の詳細は、追って説明する。このように、文書データベース２８に格納された共有文書が更新されることによって図５における時刻Ｔ３に示した状態になる。
【００３６】
その後の処理は、基本的に文書取得要求時におけるステップ１２０〜１７０と同じである。すなわち、共有文書作成部２１は、文書処理制御部２７からの指示に応じて共有文書を作成し（ステップ２８０）、コピー文書作成部２２は、共有文書を複製することでユーザＢ編集用にコピー文書を作成し（ステップ２９０）、コピー文書保持管理部２３は、このコピー文書を保持する（ステップ３００）。更に、バックアップ文書作成部２４は、保持したコピー文書を複製することでバックアップ文書を作成し（ステップ３１０）、バックアップ文書保持管理部２５は、その作成したバックアップ文書を保持する（ステップ３２０）。一方、文書処理制御部２７は、コピー文書作成部２２が作成したコピー文書を文書保存要求送信元のクライアント１２へ送信する（ステップ３３０）。この文書保存処理が実施されるによって図５における時刻Ｔ４に示した状態になる。
【００３７】
ユーザＢが共有文書に対して更に編集処理を行いたい場合、クライアント１２における文書編集処理部１３は、ユーザ操作に応じて共有文書を開くことになるが、文書管理サーバ２０へ送信した電子文書はすでに保存して閉じているので、このときに開く電子文書は自らした編集が反映された共有文書（のコピー文書）である。
【００３８】
以上のユーザＢによる電子文書の編集、保存処理が実施された後、ユーザＡが電子文書をクライアント１２に保存した後、文書保存要求を文書管理サーバ２０へ送出することで実施される文書保存処理について図７に示したフローチャートを用いて説明する。なお、説明が重複する処理については、適宜省略しながら説明する。
【００３９】
文書管理サーバ２０において、文書処理制御部２７がクライアント１２から文書保存要求を受け付けると（ステップ２１０）、保存処理部２６は、クライアント１２から取得した電子文書で、コピー文書保持管理部２３にて保持されているユーザＡのコピー文書を上書き保存する（ステップ２２０）。続いて、保存処理部２６における更新検出部２９は、各文書保持管理部２３，２５からそれぞれ取り出したコピー文書とバックアップ文書とを比較・照合することでユーザＡが編集したか否かを検出する（ステップ２３０〜２５０）。ここでは、ユーザＡは、アノテーション「あああ」を編集していないものとする。
【００４０】
更新検出部２９は、文書編集開始処理の際にユーザＡ使用のクライアント１２へ送った電子文書、すなわちコピー文書保持管理部２３に保持されていたコピー文書のバックアップ文書と、文書保存処理においてユーザＡから受け取った電子文書、すなわちコピー文書保持管理部２３を上書き保存したコピー文書とを比較・照合することで編集の有無を検出するが、このユーザＡによる例では、図５における時刻Ｔ５に示したように、文書編集開始処理の際におけるアノテーション及び文書保存処理において受け取ったアノテーション共に「あああ」であるため、更新されていないことを認識することができる。これにより、図７に示したように共有文書への更新反映処理（ステップ２７０）をステップすることになる。従って、コピー文書保持管理部２３にユーザＡから送られてきた電子文書でコピー文書保持管理部２３に含まれているコピー文書を上書き保存しても、図５における時刻Ｔ５に示したように共有文書のアノテーションを更新することはない。
【００４１】
その後の処理は、ユーザＢと同じである。すなわち、共有文書作成部２１は、文書処理制御部２７からの指示に応じて共有文書を作成する（ステップ２８０）。ここで作成される共有文書には、ユーザＢによる更新が反映されているので、アノテーションの内容は「いいい」である。続いて、コピー文書作成部２２は、共有文書を複製することでユーザＡ編集用にコピー文書を作成し（ステップ２９０）、コピー文書保持管理部２３は、このコピー文書を保持する（ステップ３００）。更に、バックアップ文書作成部２４は、保持したコピー文書を複製することでバックアップ文書を作成し（ステップ３１０）、バックアップ文書保持管理部２５は、その作成したバックアップ文書を保持する（ステップ３２０）。一方、文書処理制御部２７は、コピー文書作成部２２が作成したコピー文書を文書保存要求送信元のクライアント１２へ送信する（ステップ３３０）。この文書保存処理が実施されるによって図５における時刻Ｔ６に示した状態になる。
【００４２】
ユーザＡが共有文書に対して更に編集処理を行いたい場合、クライアント１２における文書編集処理部１３は、ユーザ操作に応じて共有文書を開くことになるが、文書管理サーバ２０へ送信した電子文書はすでに保存して閉じているので、このときに開く電子文書は文書管理サーバ２０から新たに送られてきた共有文書（のコピー文書）であってユーザＢによる編集が反映された共有文書である。
【００４３】
本実施の形態によれば、ユーザによって編集された内容を共有文書に反映できると共に、編集しなかった場合には共有文書を更新せずにすむので、不具合を発生させることなく複数ユーザによって同一共有文書を同時並行して編集させることができる。
【００４４】
ここで、図７における更新検出処理を図８に示したフローチャートを用いて説明する。この処理では、コピー文書とバックアップ文書とを比較・照合することによって共有文書に付加された複数のアノテーションそれぞれに対して更新されたか否かを検出する処理に基づくものである。
【００４５】
更新検出部２９は、未処理のアノテーションがなくなるまで以下の処理を繰り返す。まず、コピー文書において未処理のアノテーションの有無を抽出する。存在しなければ（ステップ２５０１でＮ）、ステップに２５０７に移行する。アノテーションが存在した場合（ステップ２５０１でＹ）、抽出したアノテーションに対応するアノテーションがバックアップ文書に存在するかを確認する。もし、存在していなければ（ステップ２５０２でＮ）、抽出した処理対象のアノテーションは、ユーザによる編集作業によって新たに追加されたアノテーションである。従って、処理対象のアノテーションを「追加」に分類する（ステップ２５０３）。一方、処理対象としたアノテーションに対応するアノテーションがバックアップ文書に存在した場合（ステップ２５０２でＹ）、対応する各アノテーションの内容が一致するかを確認する。一致する場合には（ステップ２５０４でＹ）、ユーザによって編集がされていないと判断できるので、処理対象のアノテーションを「更新無し」に分類する（ステップ２５０５）。一致しない場合には（ステップ２５０４でＮ）、ユーザによって編集がされたと判断できるので、処理対象のアノテーションを「修正」に分類する（ステップ２５０６）。
【００４６】
ステップ２５０１において、コピー文書において未処理のアノテーションが存在しないと判断された場合、次に処理対象をバックアップ文書に移す。そして、バックアップ文書において未処理のアノテーションの有無を抽出する。存在しなければ（ステップ２５０７でＮ）、処理を終了する。アノテーションが存在した場合（ステップ２５０７でＹ）、抽出したアノテーションに対応するアノテーションがコピー文書に存在するかを確認する。もし、存在していなければ（ステップ２５０８でＮ）、抽出した処理対象のアノテーションは、ユーザによる編集作業によって削除されたことになる。従って、従って、処理対象のアノテーションを「削除」に分類する（ステップ２５０９）。一方、処理対象としたアノテーションに対応するアノテーションがコピー文書に存在した場合（ステップ２５０８でＹ）、本来であれば、ステップ２５０４〜２５０６ですでにいずれかに分類されているはずなので、何も処理する必要はないが、ここでは処理対象のアノテーションを「更新無し」に分類する処理を実施することにしておく（ステップ２５１０）。
【００４７】
以上のように、本実施の形態では、更新の有無の検出のみならず、更新の種類を判別するようにした。
【００４８】
続いて、図７における更新反映処理を図９に示したフローチャートを用いて説明する。基本的には、「追加」、「修正」及び「削除」に分類されたアノテーションに対して対応する処理をアノテーションテーブル３２に施せばよいが、本実施の形態では、「更新無し」として検出されたアノテーションも処理対象に含めて以下の手順にて実施する。
【００４９】
共有文書更新部３０は、更新検出処理で更新が検出された未処理のアノテーションがなくなるまで以下の処理を繰り返す。まず、未処理のアノテーションが存在しなければ（ステップ２７０１でＮ）、処理を終了する。存在する場合（ステップ２７０１でＹ）、処理対象のアノテーションが「追加」に分類されていれば（ステップ２７０２でＹ）、ステップに２７０８に移行する。「追加」に分類されていなければ（ステップ２７０２でＮ）、次に、処理対象のアノテーションがアノテーションテーブル３２に登録されているかを確認する。登録されていなければ（ステップ２７０３でＮ）、処理対象のアノテーションをアノテーションテーブル３２から「削除」に分類する（ステップ２７０４）。登録されている場合（ステップ２７０３でＹ）、当該アノテーションに対応するアノテーションテーブル３２に設定されている内容と、バックアップ文書に付加されている内容とが一致するかを確認する。一致しない場合には（ステップ２７０５でＮ）、処理対象のアノテーションをアノテーションテーブル３２に含まれる当該アノテーションを「修正」に分類する（ステップ２７０６）。一致する場合には（ステップ２７０５でＹ）、ユーザによって編集されていないと判断できるので、処理対象のアノテーションを「更新無し」に分類する（ステップ２５０７）。
【００５０】
以上のように各アノテーションを分類することができるが、共有文書更新部３０は、「追加」、「修正」、「削除」及び「更新無し」への分類結果を参照にして、処理対象のアノテーションの更新が必要か否かを判断する。すなわち、更新が必要でない、すなわち「更新無し」に分類されていれば（ステップ２７０８でＮ）、アノテーションテーブル３２への設定内容を更新することなく、次のアノテーションの処理に移行する。更新が必要と判断した場合（ステップ２７０８でＹ）、分類された内容に従って以下のようにアノテーションテーブル３２を更新する（ステップ２７０９）。すなわち、「追加」であれば、当該アノテーションに関する情報をアノテーションテーブル３２に設定登録し、「修正」であれば、アノテーションテーブル３２に設定されている既存の当該アノテーションに関する情報を更新する。また、「削除」であれば、当該アノテーションのレコードを削除するのではなく、当該アノテーションのレコードに含まれている削除フラグを“ＦＡＬＳＥ”から“ＴＲＵＥ”へ変更することで、当該アノテーションは削除されている状態に設定する。
【００５１】
本実施の形態においては、以上のように複数ユーザによる共有文書への同時並行した編集作業を不具合なく実施させることができる。なお、上記説明では、アノテーションの更新を例にしたが、文書の本体に関しても同様の考えで取り扱うことができる。例えば、図１０に例示したように、文書を例えば、段落毎に分割するなどしてグループ化する。このように文書を複数に分割すれば、分割した各グループをアノテーションと同じように取り扱うことができる。つまり、本実施の形態は、アノテーションへの適用のみに限定されるものではない。
【図面の簡単な説明】
【００５２】
【図１】本実施の形態における共有文書処理システムを示したブロック構成図である。
【図２】本実施の形態における文書データベースに含まれている文書テーブルのデータ構成例を示した図である。
【図３】本実施の形態における文書データベースに含まれているアノテーションテーブルのデータ構成例を示した図である。
【図４】本実施の形態における文書管理サーバのハードウェア構成図である。
【図５】本実施の形態において２人のユーザＡ，Ｂが同時並行して共有文書に付加されたアノテーションに対して編集を行う場合の各文書の内容の遷移を示した概念図である。
【図６】本実施の形態においてユーザが電子文書の編集を開始するときの処理を示したフローチャートである。
【図７】本実施の形態においてユーザから文書保存の要求が送られてきたときの処理を示したフローチャートである。
【図８】図７に示した処理に含まれる更新検出処理を示したフローチャートである。
【図９】図７に示した処理に含まれる更新反映処理を示したフローチャートである。
【図１０】本実施の形態において２人のユーザＡ，Ｂが同時並行して共有文書本体に対して編集を行う場合の各文書の内容の遷移を示した概念図である。
【図１１】従来において２人のユーザＡ，Ｂが同時並行して共有文書に対して編集を行う場合の各文書の内容の遷移を示した概念図である。
【符号の説明】
【００５３】
１  ＣＰＵ、２  ＲＯＭ、３  ＲＡＭ、４  ハードディスクドライブ（ＨＤＤ）、５  ＨＤＤコントローラ、６  マウス、７  キーボード、８  ディスプレイ、９  入出力コントローラ、１０  内部バス、１２  クライアント、１３  文書編集処理部、１４  ネットワーク、２０  文書管理サーバ、２１  共有文書作成部、２２  コピー文書作成部、２３  コピー文書保持管理部、２４  バックアップ文書作成部、２５  バックアップ文書保持管理部、２６  保存処理部、２７  文書処理制御部、２８  文書データベース、２９  更新検出部、３０  共有文書更新部、３１  文書テーブル、３２  アノテーションテーブル。
【図１】
2007328489.tif 000003
【図２】
2007328489.tif 000004
【図３】
2007328489.tif 000005
【図４】
2007328489.tif 000006
【図５】
2007328489.tif 000007
【図６】
2007328489.tif 000008
【図７】
2007328489.tif 000009
【図８】
2007328489.tif 000010
【図９】
2007328489.tif 000011
【図１０】
2007328489.tif 000012
【図１１】
2007328489.tif 000013