(57)【特許請求の範囲】
【請求項１】
複製元クライアント装置の有するデータを複製した共有データをサーバ装置に生成し、前記複製元クライアント装置を含む複数のクライアント装置により前記共有データを共有するデータ共有方法であって、
前記複数のクライアント装置のいずれかの指示に従って、前記サーバ装置が前記共有データを操作する第１操作工程と、
前記第１操作工程により前記共有データに対してなされた操作内容を示す操作情報を、前記サーバ装置から前記複製元クライアント装置に通知する通知工程と、
前記複製元クライアント装置が前記操作情報を、操作された順序が識別できる形式で、前記共有データの複製元データに関連付けて記憶する記憶工程と、
を備えることを特徴とするデータ共有方法。
【請求項２】
前記通知工程において前記操作情報の通知に失敗した場合、前記サーバ装置が前記操作情報を前記共有データに関連付けて記憶することを特徴とする請求項１に記載のデータ共有方法。
【請求項３】
前記通知工程では、
前記操作情報に加え、前記共有データに関連付けて記憶されている前記操作情報を前記サーバ装置から前記複製元クライアント装置に通知することを特徴とする請求項２に記載のデータ共有方法。
【請求項４】
前記記憶工程では、
前記複製元クライアント装置が前記操作情報を前記複製元データに付加して記憶することを特徴とする請求項１乃至３のいずれか１項に記載のデータ共有方法。
【請求項５】
さらに、前記複製元クライアント装置が、前記記憶工程により前記操作情報と関連づけられた複製元データの複製データを作成する第１複製工程と、
前記複製元クライアント装置が前記複製元データに関連付けて記憶する前記操作情報のうちの少なくとも１つを順次前記複製データに対して適用することにより、前記共有データの過去の状態を示すデータとする第２操作工程と、
前記第２操作工程により操作されたデータを前記共有データとして前記サーバ装置に記録する工程と、
を備えることを特徴とする請求項１乃至４のいずれか１項に記載のデータ共有方法。
【請求項６】
前記第２操作工程では、
前記複製元クライアント装置が前記複製元データに関連付けて記憶する前記操作情報を前記複製データに適用する際に、前記操作情報のうち、前記共有データの削除及び削除の取り消しを示すものは適用しないことを特徴とする請求項５に記載のデータ共有方法。
【請求項７】
さらに、
前記複製元クライアント装置が前記記憶工程により前記複製元データに関連付けて記憶している前記操作情報のうちの１つをユーザに選択させる選択工程と、
前記複製元クライアント装置が、前記記憶工程により前記操作情報と関連づけられた複製元データの複製データを作成する第２複製工程と、
前記複製元クライアント装置が、前記選択工程において選択された操作情報に対応する時点までの前記操作情報の示す操作内容を前記第２複製工程において作成した前記複製データに適用して表示する表示工程と、
を備えることを特徴とする請求項１乃至６のいずれか１項に記載のデータ共有方法。
【請求項８】
さらに、前記複製元クライアント装置が、前記複製元データの改変及び削除を禁止する禁止工程を備えることを特徴とする請求項１乃至７のいずれか１項に記載のデータ共有方法。
【請求項９】
さらに、
前記複製元クライアント装置が、前記複製元データと、前記複製元データ以外の該複製元クライアント装置の保持するローカルデータとを識別する識別工程と、
前記複製元クライアント装置が、前記複製元データと前記ローカルデータをユーザが識別できるように提示する提示工程と、
を備えることを特徴とする請求項１乃至８のいずれか１項に記載のデータ共有方法。
【請求項１０】
サーバ装置上の共有データを他のクライアント装置と共有するクライアント装置であって、
保持するデータを複製し、複製したデータを前記共有データとしてサーバ装置に送信する送信手段と、
前記共有データに対してなされた操作内容を示す操作情報を前記サーバ装置から受信する受信手段と、
前記操作情報を、操作された順序が識別できる形式で、前記共有データの複製元データに関連付けて記憶する第１記憶手段と、
を備えることを特徴とするクライアント装置。
【請求項１１】
さらに、
前記受信手段は、該クライアント装置及び前記他のクライアント装置のいずれかの指示に従って前記サーバ装置が前記共有データを操作した場合に、該指示に基づく操作情報に加え、前記サーバ装置が該共有データに関連付けて記憶している該共有データの操作情報を受信することを特徴とする請求項１０に記載のクライアント装置。
【請求項１２】
前記第１記憶手段は、前記複製元データに前記操作情報を付加して記憶することを特徴とする請求項１０又は１１に記載のクライアント装置。
【請求項１３】
さらに、
前記複製元データの複製データを作成する複製手段と、
前記第１記憶手段が前記複製元データに関連付けて記憶する前記操作情報のうちの少なくとも１つを順次前記複製データに対して適用することにより、前記共有データの過去の状態を示すデータとする操作手段と、
前記操作手段によって操作されたデータを前記共有データとしてサーバに記録する第２記憶手段と、
を備えることを特徴とする請求項１０乃至１２のいずれか１項に記載のクライアント装置。
【請求項１４】
前記操作手段は、
前記第１記憶手段が前記複製元データに関連付けて記憶する前記操作情報を前記複製データに適用する際に、前記操作情報のうち、前記共有データの削除及び削除の取り消しを示すものは適用しないことを特徴とする請求項１３に記載のクライアント装置。
【請求項１５】
さらに、
前記第１記憶手段が前記複製元データに関連付けて記憶している前記操作情報のうちの１つをユーザに選択させる選択手段と、
前記選択手段により選択された操作情報に対応する時点までの前記操作情報の示す操作内容を前記複製手段が作成した前記複製データに適用して表示する表示手段と、
を備えることを特徴とする請求項１３又は１４に記載のクライアント装置。
【請求項１６】
さらに、前記複製元データの改変及び削除を禁止する禁止手段を備えることを特徴とする請求項１０乃至１５のいずれか１項に記載のクライアント装置。
【請求項１７】
さらに、
前記複製元データと、前記複製元データ以外の該クライアント装置の保持するローカルデータとを識別する識別手段と、
前記複製元データと前記ローカルデータをユーザが識別可能なように提示する提示手段と、
を備えることを特徴とする請求項１０乃至１６のいずれか１項に記載のクライアント装置。
【請求項１８】
複製元クライアント装置の保持する複製元データを複製した共有データを保持するサーバ装置であって、
前記複製元クライアント装置を含む複数のクライアント装置から、前記共有データに対する操作指示を受信する受信手段と、
前記操作指示に基づいて前記共有データを操作する操作手段と、
前記操作指示の内容を示す操作情報を、操作した順序が識別できる形式で、前記複製元クライアント装置に通知する通知手段と、
を備えることを特徴とするサーバ装置。
【請求項１９】
前記通知手段が前記操作情報の通知に失敗した場合に前記操作情報を前記共有データに関連付けて記憶する記憶手段を備えることを特徴とする請求項１８記載のサーバ装置。
【請求項２０】
前記記憶手段は、前記共有データに前記操作情報を付加して記憶することを特徴とする請求項１９に記載のサーバ装置。
【請求項２１】
前記通知手段は、前記受信手段による前記共有データに対する操作指示を受信した際に、該操作指示の内容を示す操作情報に加え、前記記憶手段が該共有データに関連付けて記憶している該共有データの操作情報を前記複製元クライアント装置に通知することを特徴とする請求項１９又は２０に記載のサーバ装置。
【請求項２２】
サーバ装置上の共有データを他のクライアント装置と共有するクライアント装置を制御する制御方法であって、
保持する複製元データを、前記共有データとしてサーバ装置に送信する送信工程と、
前記共有データに対してなされた操作内容を示す操作情報を前記サーバ装置から受信する受信工程と、
前記操作情報を、操作された順序が識別できる形式で、前記共有データの複製元データに関連付けて記憶媒体に記録する記憶工程と、
を備えることを特徴とする制御方法。
【請求項２３】
複製元クライアント装置の保持するデータを複製した共有データを保持するサーバ装置を制御する制御方法であって、
前記複製元クライアント装置を含む複数のクライアント装置から、前記共有データに対する操作指示を受信する受信工程と、
前記操作指示に基づいて前記共有データを操作する操作工程と、
前記操作指示の内容を示す操作情報を、操作した順序が識別できる形式で、前記複製元クライアント装置に通知する通知工程と、
を備えることを特徴とする制御方法。
【請求項２４】
サーバ装置上の共有データを他のクライアント装置と共有するクライアント装置のコンピュータに、
保持するデータを、前記共有データとしてサーバ装置に送信する送信工程と、
前記共有データに対してなされた操作内容を示す操作情報を前記サーバ装置から受信する受信工程と、
前記操作情報を、操作された順序が識別できる形式で、前記共有データの複製元データに関連付けて記憶する記憶工程と、
を実行させるためのプログラム。
【請求項２５】
複製元クライアント装置の保持する複製元データを複製した共有データを保持するサーバ装置のコンピュータに、
前記複製元クライアント装置を含む複数のクライアント装置から、前記共有データに対する操作指示を受信する受信工程と、
前記操作指示に基づいて前記共有データを操作する操作工程と、
前記操作指示の内容を示す操作情報を、操作した順序が識別できる形式で、前記複製元クライアント装置に通知する通知工程と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のクライアント装置が、サーバ装置の保持する共有データを共有する技術に関する。
【背景技術】
【０００２】
現在、コンピュータネットワークにおいて、クライアント装置（以下、単に「クライアント」と呼ぶ）の記憶装置に保存されているデータ（例えば画像データ）をサーバ装置（以下、単に「サーバ」と呼ぶ）の記憶装置に複製し、他の複数のクライアント装置からアクセスできるようにするデータ共有システムが存在する。
【０００３】
このようなデータ共有システムの一例として、画像公開システムが存在する。クライアント装置のユーザがデジタルカメラ等で撮像した画像データをサーバに複製（アップロード）すると、ネットワーク（一般にはインターネット）を介して接続されている他のクライアントのユーザは、サーバ上の画像データにアクセスすることができる。ここで、「アクセス」により処理できる内容は画像公開システムの設計に応じて決まるが、他のクライアントのユーザは、画像データをディスプレイに表示したり、プリンタに出力したり、場合によっては編集したりすることができる。
【０００４】
また、データ共有システムの他の例として、文書データをサーバ上で共有し、複数のユーザが共有された文書データを編集することが可能な文書履歴管理システムが存在する。
【０００５】
このような文書履歴管理システムで共有されている文書データをクライアントのユーザが編集する場合、まずサーバ上の文書データに対して「チェックアウト」と呼ばれる操作を行ない、その文書データに対して他のユーザによる編集を禁止する。その上で、ユーザはサーバ上の文書データを自らのコンピュータ（クライアント）に複製し、複製したデータに対して編集を行なうのが一般的である。
【０００６】
複製したデータの編集を終えると、ユーザはそのデータを「チェックイン」と呼ばれる操作でサーバに送信し、編集結果をサーバ上のデータに反映すると同時に、他のユーザによる編集の禁止を解除する。
【０００７】
このような文書履歴管理システムの中には、専用の文書編集アプリケーションが自動的にチェックインやチェックアウトの操作を行なうものもある。また、複数のユーザが同時に同一の文書データをチェックアウトすることを許可し、複数のユーザが同時に編集操作を行なった場合にその編集操作結果を結合させたりするなどの機能を持つものもある。このように、文書履歴管理システムの中には、ユーザが煩雑な操作を手動で行なう必要がないものもある。
【０００８】
また、このような文書履歴管理システムでは、データに加えられた編集操作の履歴を記憶しておき、記憶された操作を新しいものから順に取り消してデータを過去の状態に戻す機能が含まれているのが一般的である。
【０００９】
このような文書履歴管理システムは、複数人による協調作業が必要となる場合にしばしば使用されており、例えば、業務上特定のグループ内で共有する必要のある文書データを管理する際に使用される。
【００１０】
特許文献１には、このような文書履歴管理システムを使用して、ツリー構造を持つ文書データを複数人で同時に編集する場合に、編集結果を効率的に結合する方法が開示されている。
【特許文献１】特開平８−７６３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来のデータ共有システムでは、データに加えられた編集操作の取り消しを可能とすると、サーバの記憶装置の記憶容量を多量に消費するという問題がある。なぜなら、データを任意の時点の状態に戻すためには、データに加えられた編集操作の数だけその内容を示す操作情報を記憶する必要があるためである。さらに、データ削除の取り消しを可能とするためには、削除されたデータも記憶装置に残しておく必要があるため、データが削除されても記憶装置の空き容量が増加しないからである。
【００１２】
この問題は、近年のデータサイズの増大に伴い、ますます深刻になってきている。例えば、画像データは一般的に文書データに比べてデータサイズが大きい。また、文書データであってもそこに埋め込まれるメタデータ（作成者情報や書式情報などであり、画像データを含む場合がある）などのために、データサイズが大きくなりつつあるからである。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、データ共有システムにおいて、共有データに対する操作の取り消しを可能としながらサーバの記憶装置の消費量を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明のデータ共有方法は、複製元クライアント装置の有するデータを複製した共有データをサーバ装置に生成し、前記複製元クライアント装置を含む複数のクライアント装置により前記共有データを共有するデータ共有方法であって、前記複数のクライアント装置のいずれかの指示に従って、前記サーバ装置が前記共有データを操作する第１操作工程と、前記第１操作工程により前記共有データに対してなされた操作内容を示す操作情報を、前記サーバ装置から前記複製元クライアント装置に通知する通知工程と、前記複製元クライアント装置が前記操作情報を、操作された順序が識別できる形式で、前記共有データの複製元データに関連付けて記憶する記憶工程と、を備えることを特徴とする。
【００１５】
また、本発明のクライアント装置は、サーバ装置上の共有データを他のクライアント装置と共有するクライアント装置であって、保持するデータを複製し、複製したデータを前記共有データとしてサーバ装置に送信する送信手段と、前記共有データに対してなされた操作内容を示す操作情報を前記サーバ装置から受信する受信手段と、前記操作情報を、操作された順序が識別できる形式で、前記共有データの複製元データに関連付けて記憶する第１記憶手段と、を備えることを特徴とする。
【００１６】
また、本発明のサーバ装置は、複製元クライアント装置の保持する複製元データを複製した共有データを保持するサーバ装置であって、前記複製元クライアント装置を含む複数のクライアント装置から、前記共有データに対する操作指示を受信する受信手段と、前記操作指示に基づいて前記共有データを操作する操作手段と、前記操作指示の内容を示す操作情報を、操作した順序が識別できる形式で、前記複製元クライアント装置に通知する通知手段と、を備えることを特徴とする。
【００１７】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための最良の形態の記載によっていっそう明らかになるものである。
【発明の効果】
【００１８】
以上の構成により、本発明の技術を使用すれば、データ共有システムにおいて、共有データに対する操作の取り消しを可能としながらサーバの記憶装置の消費量を抑制することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、添付図面を参照して、本発明の好適な実施形態を説明する。
【００２０】
［第１の実施形態］
本実施形態では、本発明を適用可能なデータ共有システムの一例として、サーバの記憶装置が保持する静止画像データを複数のクライアントが共有する、画像共有システムを説明する。しかし、本発明は、静止画像データはもとより、動画像データ、音声データ、文書データなど、編集可能であればいかなる種類のデータに対しても適用可能である。
【００２１】
なお、本実施形態の説明において、「複製元データ」はクライアントが保持する画像データのうち、サーバの記憶装置に自身が複製され、複製されたデータが他のクライアントと共有されている画像データを意味する。また、「共有データ」は複製されたデータを指し、サーバが保持し、クライアントが共有する画像データである。
【００２２】
＜画像共有システム１００の概要＞
図１は、本実施形態における画像共有システム１００を模式的に示す図である。
【００２３】
画像共有システム１００を構成するコンピュータネットワーク１０１には、サーバ１０２と、３台のクライアント１０４乃至１０６が接続されている。それぞれのサーバ、クライアントは、例えばパーソナルコンピュータによって実現することができ、必要に応じてディスプレイやキーボードなどの周辺機器が接続されている（詳細は図２を参照して後述する）。なお、コンピュータネットワーク１０１に接続されるサーバ及びクライアントは、図１に示す数に限るものではない。
【００２４】
サーバ１０２には、サーバ記憶装置１０３が接続されている。サーバ記憶装置１０３は共有データを格納する記憶装置であり、図１ではサーバ１０２に外部接続されているが、サーバ１０２の内部に設けられていてもよい。
【００２５】
クライアント１０４乃至１０６はそれぞれ、複製元データ１０７乃至１０９を保持する。これらの複製元データはサーバ１０２に複製して共有するための画像データであり、それぞれのクライアントが任意の数（０も含む）の複製元データを保持することができる。
【００２６】
サーバ１０２のサーバ記憶装置１０３は、共有データ１１０乃至１１２を備える。これらの共有データはそれぞれ、複製元データ１０７乃至１０９の複製である。ただし、後述するように、共有データはユーザによって編集されている場合があるため、複製元データと、対応する共有データとは必ずしも同じではない。また、複製元データと、対応する共有データとを管理するための付加情報（例えばヘッダ情報など）は本実施形態におけるデータ管理のために、それぞれ異なる内容である（詳細は後述）。
【００２７】
図２は、クライアント１０４の構成例を示す図である。
【００２８】
クライアント１０４の中心はコンピュータ本体２０１であり、図示しないネットワークアダプタからハブ２０２を介して、コンピュータネットワーク１０１に接続されている。
【００２９】
コンピュータ本体２０１には、複製元データ１０７を格納するためのクライアント記憶装置２０３が接続されている。クライアント記憶装置２０３は図２ではコンピュータ本体２０１の外部に接続されているが、内部に設けられていてもよい。
【００３０】
コンピュータ本体２０１はまた、ヒューマンインタフェースとしてマウス２０４、キーボード２０５、ディスプレイ２０６を備える。
【００３１】
コンピュータ本体２０１にはまた、必要に応じて、図示しないＵＳＢポートからＵＳＢハブ２０７を介して、デジタルカメラ２０８が接続されていてもよい。
【００３２】
なお、ここで説明したクライアント１０４の構成は一例に過ぎず、必要に応じてプリンタなどの周辺機器がさらに接続されていてもよいし、不要であれば例えばマウス２０４を省略するなどしてもよい。
【００３３】
また、クライアント１０５及び１０６も同様の構成とすることができる。サーバは一般的にヒューマンインタフェースが不要であることが多いが、サーバ１０２も、クライアント記憶装置２０３の代わりにサーバ記憶装置１０３を備えた同様の構成とすることができる。
【００３４】
＜クライアント１０４のハードウェア構成＞
図３は、図２のクライアント１０４のハードウェア構成を示すブロック図である。クライアント１０４はシステムバス３０７と、システムバス３０７に接続される以下の要素を備える。
【００３５】
ＣＰＵ３０１は、ＨＤＤ３０４などの記憶装置からプログラムを読み出して実行し、クライアント１０４全体を制御する。
【００３６】
ＲＯＭ３０２は、例えばクライアント１０４の周辺機器を制御するＢＩＯＳと呼ばれるプログラムなどを記憶する不揮発性メモリである。
【００３７】
ＲＡＭ３０３は、ＣＰＵ３０１がプログラム実行時に一時作業領域として使用する揮発性メモリである。
【００３８】
ＨＤＤ３０４は、図２のクライアント記憶装置２０３としても動作可能なハードディスクドライブである。
【００３９】
指示入力装置３０５は、図２のマウス２０４やキーボード２０５などをまとめて表現したものであり、ユーザがクライアント１０４に指示を与えるために用いる。
【００４０】
インタフェース３０６は、ＵＳＢインタフェースやネットワークインタフェースなどをまとめて表現したものであり、これを介してハブ２０２やＵＳＢハブ２０７などを接続する。
【００４１】
なお、クライアント１０５及び１０６も同様の構成とすることができる。また、サーバ１０２も、ＨＤＤ３０４が図１のサーバ記憶装置１０３を表現するものとなるが、同様の構成とすることができる。
【００４２】
＜画像共有アプリケーションの概要＞
図４乃至図７は、クライアント１０４（クライアント１０５又は１０６でもよい）上で実行される画像共有アプリケーションによりディスプレイ２０６に表示される表示画面を示す図である。これらの図を参照して、本実施形態の画像共有システム１００の概要を説明する。以下、特に断らなければクライアントとしてクライアント１０４を使用して説明するが、クライアント１０５及び１０６でも同じことが言える。また、以下に画像共有アプリケーションの処理として説明するものは、具体的にはクライアント１０４のＣＰＵ３０１が行なうか、ＣＰＵ３０１がサーバ１０２に処理の指示を通知し、サーバ１０２が行なう。
【００４３】
図４は、クライアント１０４（のクライアント記憶装置２０３）に記録されている画像データの一覧表示の画面である。この画面は、フォルダ選択エリア４０１、画像選択エリア４０２、一覧ツールバー４０３を備える。
【００４４】
フォルダ選択エリア４０１には、クライアント記憶装置２０３内のフォルダ構成がツリー上に表示されている。
【００４５】
画像選択エリア４０２には、スクロールバー４０４が含まれ、フォルダ選択エリア４０１で選択したフォルダに含まれる画像データの一覧が表示される。この画像データには、自身の複製がサーバ１０２に存在する複製元データと、それ以外のデータの両方が含まれる。画像データは、それぞれ一定サイズに縮小された縮小画像（いわゆるサムネイル画像）として、画像選択エリア４０２に敷き詰められて表示される。画像選択エリア４０２内に表示しきれない画像は、ユーザがスクロールバー４０４でエリアの表示をスクロールさせることにより表示することができる。画像選択エリア４０２では、ユーザが指示入力装置３０５を用いて任意の画像を選択することが可能である。
【００４６】
また、画像データのうち、サーバ１０２に共有データとして複製されている画像データ（すなわち、複製元データ）に関しては、縮小画像に重ねて複製済みアイコン４１１が表示される。対応する共有データがサーバ記憶装置１０３から削除されると、その複製元データに対する複製済みアイコン４１１の表示も消える。しかし、アイコンが消えた場合であっても複製されたことがあるという記録は残る（詳細は後述）。
【００４７】
一覧ツールバー４０３は、一覧表示されている画像データに対して特定の操作を行なう際に利用するボタンを集めたものである。一覧ツールバー４０３には、例えば詳細表示ボタン４０５、削除ボタン４０６、コピーボタン４０７、編集ボタン４０８、複製ボタン４０９、復元ボタン４１０などが含まれている。以下、これらのボタンの機能を説明するが、特に断らない限り、それぞれのボタンが操作する対象の画像データは、クライアント記憶装置２０３に記録されているものである。
【００４８】
ユーザが画像選択エリア４０２で画像を選択して、詳細表示ボタン４０５を押すと、画像共有アプリケーションは画像データ詳細表示画面を開き、選択した画像データの詳細を表示する。画像データ詳細表示画面の詳細は図５を参照して後述する。なお、「ボタンを押す」とは、ユーザがマウス２０４を操作してボタンの表示されている位置をクリックしたりすることを意味する。
【００４９】
ユーザが画像選択エリア４０２で画像データを選択して、削除ボタン４０６を押すと、画像共有アプリケーションは選択された画像データをクライアント記憶装置２０３から削除する。
【００５０】
ユーザが画像選択エリア４０２で画像データを選択して、コピーボタン４０７を押すと、画像共有アプリケーションは選択された画像データを同じフォルダ内に別のファイル名でコピーする。もちろん、他のフォルダにコピー可能なように画像共有アプリケーションを設計してもよい。
【００５１】
ユーザが画像選択エリア４０２で画像データを選択して、編集ボタン４０８を押すと、画像共有アプリケーションは回転、トリミング、補正、色処理などの機能をユーザが選択可能な画面を表示し、ユーザは選択した画像データを編集することができる。
【００５２】
ユーザが画像選択エリア４０２で画像データを選択して、複製ボタン４０９を押すと、画像共有アプリケーションは選択された画像データが共有データとしてサーバ１０２に複製される。この際、ユーザはアルバム名称を入力し、サーバ１０２上のどのアルバムに複製するかを選択することができる。ここで、「アルバム」とは、共有データを整理するために便宜上設けられた分類であり、例えばサーバ記憶装置１０３上に同名のフォルダを作成することにより、アルバム機能を実現することができる。また、複製ボタン４０９を押すことにより、選択された画像データは複製元データとなり、複製済みアイコン４１１が表示される。
【００５３】
ユーザが復元ボタン４１０を押すと、画像共有アプリケーションはユーザにアルバム名称の入力を要求する。ユーザがアルバム名称を入力すると、画像共有アプリケーションはクライアント記憶装置２０３に記録されているすべての画像データから、入力されたアルバム名称で以前にサーバ１０２に複製されたことのある画像を検索する。その上で、その中から、サーバ１０２に存在していない画像データを再度サーバ１０２に複製する。これにより、サーバ１０２から削除された共有データを一括して復元することができる。なお、「復元」とは、図１３を参照して後述するように、画像データが削除されるまでに編集された内容を反映した状態に戻すことである。
【００５４】
図５は、図４の詳細表示ボタン４０５が押されるとディスプレイ２０６に表示される、画像データ詳細表示画面である。画像データ詳細表示画面は、画像表示エリア５０１、操作情報表示エリア５０２、詳細ツールバー５０３を備える。
【００５５】
画像表示エリア５０１には、画像データ詳細表示画面を開いた時点では、図４の画面で選択された画像データ（ここでは、複製元データ１０７とする）内の画像が表示されている。
【００５６】
操作情報表示エリア５０２には、複製元データ１０７がサーバ１０２に共有データ１１０として複製された以降に、クライアントからの要求によりサーバ１０２が共有データ１１０に対して加えた操作の内容を示す一連の操作情報が時系列に表示される。
【００５７】
この例では、操作情報５０４乃至５０８が表示されており、それぞれサーバ１０２への複製（操作情報５０４）、トリミング（操作情報５０５）、ネガ処理（操作情報５０６）、サーバ１０２から削除（操作情報５０７）、サーバ１０２に復元（操作情報５０８）の操作を示す。
【００５８】
ユーザが任意の操作情報を選択すると、画像表示エリア５０１に表示される画像は、複製元データ１０７内の画像に選択された時点までの操作が適用された結果の画像に切り替わる。画像の切り替えに際しては、クライアント１０４が複製元データ１０７の一時コピーデータを作成し、一時コピーデータ内の画像に選択された時点までの操作を適用する。したがって、ここでは複製元データ１０７内の画像に編集が加えられる訳ではない。
【００５９】
なお、画像データ詳細表示画面は、サーバ１０２に複製されていない画像データも表示可能である。しかし、操作情報はサーバ１０２に共有データとして複製された複製元データにのみ記録されるため、この場合、操作情報表示エリア５０２に操作情報は表示されない。また、画像データ詳細表示画面が複製元データを表示する場合、操作情報表示エリア５０２の最初の操作情報は必ずサーバ１０２への複製を示すものとなる。
【００６０】
詳細ツールバー５０３は、画像表示エリア５０１に表示されている画像に対して所定の操作を行なう際に利用するボタンを集めたもので、例えば復元ボタン５０９や編集ボタン５１０、別名で保存ボタン５１１が含まれている。
【００６１】
復元ボタン５０９は、サーバ１０２から削除された共有データを復元するためのボタンで、操作情報表示エリア５０２に表示されている操作情報の最後がサーバ１０２からの削除を示す場合にのみユーザはこれを押すことが可能である。
【００６２】
編集ボタン５１０は、図４の編集ボタン４０８とほぼ同じ機能を提供し、ユーザが詳細表示ボタン４０５を押すときに選択した画像データが編集対象となる。
【００６３】
ユーザが別名で保存ボタン５１１を押すと、画像共有アプリケーションは、現在画像表示エリア５０１に表示されている画像を、複製元データ１０７とは別の画像データとしてクライアント記憶装置２０３に保存する。すなわち、画像共有アプリケーションは、操作情報表示エリア５０２で任意の操作情報を選択したときに作成された一時コピーデータを、複製元データ１０７とは別のファイル名で保存する。この際、別のファイル名で保存された一時コピーデータからはサーバ１０２上での操作情報が削除され、複製元データとしては扱われない。
【００６４】
なお、図５では、サーバ１０２に複製済みの画像データ（複製元データ１０７）を表示している画面の例を示したが、サーバ１０２に複製していないがクライアント記憶装置２０３に記録されている画像データを表示することもできる。この場合は操作情報表示エリア５０２には何も表示されない。
【００６５】
図６は、サーバ１０２のサーバ記憶装置１０３に記録されている画像データ（共有データ）の一覧表示の画面である。この画面は、アルバム選択エリア６０１、画像選択エリア６０２、一覧ツールバー６０３を備える。なお、画像共有アプリケーションの表示画面を図４の画面と図６の画面の間で切り替える方法は、アプリケーションの設計により任意に決めることができる。例えば、図４及び図６の「表示(V)」メニューの中に切り替えメニューを含めることができる。
【００６６】
アルバム選択エリア６０１には、サーバ１０２のサーバ記憶装置１０３内のアルバム名一覧が表示されている。ここで、アルバム名一覧は、図４のクライアント装置画像一覧表示画面において、ユーザが複製ボタン４０９を押した時に入力したアルバム名称の一覧である。
【００６７】
画像選択エリア６０２には、スクロールバー６０４が含まれ、ユーザがアルバム選択エリア６０１で選択したアルバム名をつけて複製された画像データ（共有データ）の一覧が表示される。共有データは、それぞれ一定サイズに縮小された縮小画像（サムネイル画像）として、画像選択エリア６０２に敷き詰められて表示される。画像選択エリア６０２に表示しきれない画像は、ユーザがスクロールバー６０４でエリアの表示をスクロールさせることにより表示することができる。
【００６８】
一覧ツールバー６０３は、一覧表示されている画像に対して所定の操作を行なう際に利用するボタンを集めたもので、例えば詳細表示ボタン６０５、削除ボタン６０６、編集ボタン６０７などが含まれている。以下、これらのボタンの機能を説明するが、特に断らない限り、それぞれのボタンが操作する対象の画像は、サーバ記憶装置１０３に記録されているものである。
【００６９】
ユーザが画像選択エリア６０２で共有データを選択して、詳細表示ボタン６０５を押すと、画像共有アプリケーションはサーバ画像データ詳細表示画面（図７を参照して後述）を表示し、選択された共有データの詳細を表示する。
【００７０】
ユーザが画像選択エリア６０２で共有データを選択して、削除ボタン６０６を押すと、画像共有アプリケーションは選択された共有データをサーバ記憶装置１０３から削除する。共有データが削除されると、サーバ１０２は共有データが複製された元のクライアント（以下、複製元クライアントと呼ぶ）に対して、その共有データに対してサーバ１０２上で削除操作が行なわれたことを通知する。
【００７１】
ユーザが画像選択エリア６０２で共有データを選択して、編集ボタン６０７を押すと、画像共有アプリケーションは回転、トリミング、補正、色処理などの機能をユーザが選択可能な画面を表示し、ユーザは選択した共有データを編集することができる。共有データが編集されると、サーバ１０２は複製元クライアントに対して、その共有データに対してサーバ１０２上で行なわれた編集操作の内容を示す操作情報を通知する。
【００７２】
図７は、図６の詳細表示ボタン６０５が押されるとディスプレイ２０６に表示される、サーバ画像データ詳細表示画面である。サーバ画像データ詳細表示画面は、画像表示エリア７０１、詳細ツールバー７０２を備える。
【００７３】
画像表示エリア７０１にはサーバ１０２の共有データ（ここでは、共有データ１１０とする）内の画像が表示されている。図７に示す画像の例は、図５の操作情報５０４乃至操作情報５０８の示す編集操作が加えられたものである。
【００７４】
詳細ツールバー７０２は、詳細表示されている画像に対して所定の操作を行なう際に利用するボタンを集めたもので、例えば編集ボタン７０３が含まれている。
【００７５】
編集ボタン７０３は、図６の編集ボタン６０７とほぼ同じ機能を提供し、詳細表示ボタン６０５が押されたときに選択された共有データが編集対象となる。
【００７６】
＜データ構造＞
図８は、クライアント１０４のクライアント記憶装置２０３に記録されている画像データのデータ構造の一例を示す図である。図８では、画像データとして複製元データ１０７を例として示す。
【００７７】
複製元データ１０７は、ヘッダ領域８０１、画像領域８０２、操作情報領域８０３を備える。
【００７８】
ヘッダ領域８０１には、画像領域８０２のデータ内での開始位置を示す画像オフセット８０４、操作情報領域８０３のデータ内での開始位置を示す操作情報オフセット８０５が含まれる。
【００７９】
操作情報領域８０３には、サーバ１０２に複製された共有データ１１０に対して、サーバ１０２上で加えられた操作内容を示す操作情報が記録されている。図８に示す操作情報は、図５の操作情報５０４乃至操作情報５０８に対応している。
【００８０】
複製元データ１０７が共有データ１１０としてサーバ１０２に複製されると、クライアントが共有データ１１０に対する操作指示（編集・削除等の指示）をサーバ１０２に対して行なうたびにサーバ１０２及びクライアント１０４は次の処理を行なう。すなわち、サーバ１０２は複製元クライアントであるクライアント１０４に対して操作内容を示す操作情報を通知し、通知を受けたクライアント１０４は複製元データ１０７の操作情報領域８０３にその操作情報を記録する。ここで注意すべきことは、共有データ１１０が操作された場合でも、複製元データ１０７の画像領域８０２は変化せず、操作情報が操作情報領域８０３に時系列に追加されていくということである。  なお、操作情報は、操作の内容、操作の対象となる複製元データ１０７、そして複数の操作が適用された場合に各操作の順序が識別できればよい。本実施例では、操作情報が時系列に追加されることによって各操作の順序が識別可能となる構成である。したがって、サーバ１０２が操作情報に操作日時に関する情報を付加し、各操作の順序が識別可能となる構成であってもよい。
【００８１】
画像データをサーバ１０２に転送していない場合（この場合、その画像データは複製元データではない）は、その画像データの操作情報領域８０３は空である。
【００８２】
操作情報領域８０３に操作情報が存在する画像データ（すなわち、複製元データ）には、前述のように、クライアント１０４上のクライアント装置画像一覧表示画面で、縮小画像に重ねて複製済みアイコン４１１が表示される。ただし、操作情報の最後が「画像の削除」を示す場合は、複製済みアイコン４１１は表示されない構成としてもよい。
【００８３】
なお、図８において、操作情報領域８０３は複製元データ１０７に付加される（含まれる）形態として説明した。しかし、複製元データ１０７との関連と操作の順序を一意に特定できる形態であればいかなるものでもよく、例えば別のファイルに操作情報を記録し、そのファイルと複製元データ１０７とを対応付けるデータベースを作成するなどの形態でもよい。
【００８４】
図９は、サーバ１０２のサーバ記憶装置１０３に記録されている共有データのデータ構造の一例を示す図である。図９では、共有データの一例として共有データ１１０を示す。
【００８５】
共有データ１１０は、ヘッダ領域９０１及び画像領域９０２を備える。
【００８６】
ヘッダ領域９０１には、画像領域９０２のデータ内での開始位置を示す画像オフセット９０３と、共有データ１１０の複製元を示す元画像ポインタ９０４が含まれる。
【００８７】
元画像ポインタ９０４には、共有データ１１０の場合、複製元データ（ここでは、複製元データ１０７）の所在地であるクライアント１０４と、複製元データ１０７のクライアント１０４における所在を特定するための情報が含まれている。元画像ポインタ９０４の形式は、図９に示す形式に限られるものではなく、複製元データ１０７の所在を一意に特定できるものであればいかなる形式でも構わない。
【００８８】
なお、共有データ１１０の画像領域９０２は複製元データ１０７の画像領域８０２と異なり、共有データ１１０に対する編集等の操作が加えられると、画像領域９０２の内容が実際に変化する。
【００８９】
＜共有データ操作処理の流れ＞
図１０は、いずれかのクライアント（ここではクライアント１０５とする）が、サーバ１０２の共有データ（ここでは共有データ１１０とする）を編集・削除等する操作指示を、サーバ１０２に発したときの処理の流れを示すフローチャートである。本フローチャートの各処理は、特に断らなければ、サーバ１０２のＣＰＵ３０１（図３）がＨＤＤ３０４（サーバ記憶装置１０３）中のサーバプログラムを実行することにより行なうものである。なお、図３のハードウェア構成はクライアント１０４等の説明にも使用したが、特に断らなければ、本フローチャートの説明においては、図３に示す構成要素はサーバ１０２のものとして取り扱う。
【００９０】
ステップＳ１００１で、サーバ１０２はクライアント１０５から共有データ１１０に対する操作指示を受信する。操作指示の受信は図１のコンピュータネットワーク１０１を介して行なわれる。
【００９１】
ステップＳ１００２で、サーバ１０２は共有データ１１０に対応する複製元データの所在情報を抽出する。抽出は、ＣＰＵ３０１が共有データ１１０の元画像ポインタ９０４を読み出すことにより行なわれ、読み出された所在情報はＲＡＭ３０３に格納される。本実施形態では、複製元データは複製元データ１０７であり、クライアント１０４が保持する。
【００９２】
ステップＳ１００３で、サーバ１０２は、共有データ１１０に対して、操作指示に従った操作を行ない、画像領域９０２を書き換える。操作指示が画像の削除を指示するものであれば、共有データ１１０を削除する。
【００９３】
ステップＳ１００４で、サーバ１０２は、複製元クライアントであるクライアント１０４と通信可能であるかを確認する。確認は公知の方法で行なうことができ、例えば、クライアント１０４に対してテストパケットを送り、応答があるかを調べることにより行なえる。クライアント１０４と通信可能な場合はステップＳ１００５に進み、通信可能でない場合はステップＳ１００６に進む。
【００９４】
ステップＳ１００５では、サーバ１０２はクライアント１０４に、ステップＳ１００３における操作内容を示す操作情報を通知し、処理を終了する。
【００９５】
ステップＳ１００６では、サーバ１０２はあらかじめ定められている一定時間が経過するのを待ち、ステップＳ１００７に進む。
【００９６】
ステップＳ１００７では、サーバ１０２はこのステップをあらかじめ定められている一定回数繰り返したかを確認する。一定回数を経過していない場合はステップＳ１００４に戻り、クライアント１０４との通信を再度試みる。一定回数を経過した場合は操作情報の通知に失敗したものとして、ステップＳ１００８に進む。
【００９７】
ステップＳ１００８では、サーバ１０２は通知に失敗した、ステップＳ１００３における操作内容を示す操作情報をサーバ記憶装置１０３に記録し、処理を終了する。ここでの記録は、サーバ１０２が複数の共有データを保持する場合であっても操作情報と共有データ１１０の対応が時系列で一意に定まるものであれば、いかなる形態でもよい。例えば、共有データ１１０に操作情報を付加する形態でもよいし、操作情報と共有データ１１０の対応を示すデータベースを作成し、操作情報は別のファイルに保存してもよい。
【００９８】
ステップＳ１００８でサーバ記憶装置１０３に記録した操作情報は、任意のタイミングで改めて複製元クライアントであるクライアント１０４に通知される。任意のタイミングとは例えば、一定時間おきとしてもよいし、サーバ１０２が他の操作指示を受信してステップＳ１００５でその操作指示に対応する操作情報を通知するときでもよい。又は、これらの組み合わせでもよい。複数の操作情報をサーバ１０２からクライアント１０４に通知する場合には、操作された順番の古い順に操作情報を通知する。クライアント１０４は通知された操作情報を時系列に追加するため、通知の順番を操作の順番に合わせる必要があるためである。
【００９９】
＜削除された共有データの復元処理＞
図１１は、ユーザが図５の復元ボタン５０９を押すことにより、複製元クライアントがサーバ１０２から削除された共有データを復元（再複製）する処理の流れを示すフローチャートである。この処理は図５に示す画面で閲覧中の複製元データのみを復元するものであり、図４の復元ボタン４１０が押されたときの処理（後述）とは異なる。本フローチャートの各処理は、特に断らなければ、クライアント１０４のＣＰＵ３０１（図３）がＨＤＤ３０４（クライアント記憶装置２０３）中の画像共有アプリケーションのプログラムを実行することにより行なうものである。なお、図３のハードウェア構成はサーバ１０２等の説明にも使用したが、特に断らなければ、本フローチャートの説明において、図３に示す構成要素はクライアント１０４のものとして取り扱う（図１３、１４、１８においても同様とする）。
【０１００】
ここでは、図５に示すように、クライアント１０４から複製元データ１０７をサーバ１０２に共有データ１１０として複製し（操作情報５０４）、その後、クライアント１０４を含むいずれかのクライアントが共有データ１１０に対してトリミング処理（操作情報５０５）、色処理（操作情報５０６）を行ない、その後削除した（操作情報５０７）場合を例に説明する。
【０１０１】
ステップＳ１１０１で、クライアント１０４はサーバ１０２と通信を行ない、共有データ１１０になされた操作のうち、複製元データ１０７の操作情報領域８０３（図８）に反映されていない操作情報を（それが存在すれば）操作情報領域８０３に反映させる。ここで、反映されていない操作情報とは、図１０のステップＳ１００８で行なったように、操作情報をクライアント１０４に通知できなかったためにサーバ１０２に記録したものである。
【０１０２】
ステップＳ１１０２で、クライアント１０４は、複製元データ１０７の操作情報領域８０３に記録されている操作情報のうち最後に行なわれた操作内容が削除操作であるかどうかを確認する。本来、復元ボタン５０９は最後に行なわれた操作内容が削除操作であるときのみ押すことが可能であるが、何らかの理由で最後に行われた操作内容が削除操作でないにもかかわらず復元ボタン５０９が押されてしまった場合に対処するためである。この場合、復元処理は行なわずに処理を終了する。
【０１０３】
最後に行なわれた操作内容が削除操作である場合、ステップＳ１１０３で、クライアント１０４は、複製元データ１０７の一時コピーを作成する。ただし、一時コピーの操作情報領域８０３は空にしておく。
【０１０４】
ステップＳ１１０４で、クライアント１０４は、複製元データ１０７の操作情報のうち、一時コピー内の画像に適用されていないものがあるかどうかを判定する。適用されていない操作情報が存在する場合、ステップＳ１００５で、クライアント１０４は、その中から最も古い操作情報の示す操作を一時コピー内の画像に適用する。
【０１０５】
ステップＳ１１０４及びステップＳ１１０５の処理は、換言すれば、複製元データ１０７（画像領域８０２に変更は加えられていない）のコピーデータを作成し、その中の画像に操作情報領域８０３の操作情報を時系列に順次適用することにより、共有データ１１０が削除される直前の状態の画像を作成するものである。したがって、前述のように、「復元」処理は、複製元データ１０７（画像領域８０２に変更は加えられていない）をそのままサーバ１０２に再複製するわけではない。なお、一連の操作情報のうち、サーバ１０２への複製及び再複製（復元）処理と、サーバ１０２からの削除処理に関しては操作情報の適用を行なわない。共有データ１１０が削除される直前の状態の画像を作成する上で、意味を持たない操作だからである。
【０１０６】
すべての操作情報の適用が完了すると、ステップＳ１００６に進む。
【０１０７】
ステップＳ１１０６で、クライアント１０４は、複製元データ１０７の最後の操作情報である削除処理情報から、共有データ１１０が存在したアルバム名を取得する。
【０１０８】
ステップＳ１１０７で、クライアント１０４は、一時コピー内の画像をサーバ１０２に共有データ１１０として複製し、アルバム名称はステップＳ１１０６で取得したものとする。ただし、その際に、複製された共有データ１１０の元画像ポインタ９０４（図９）には、一時コピーの所在ではなく、複製元データ１０７の所在を記録する。
【０１０９】
ステップＳ１１０８で、クライアント１０４は一時コピーを削除する。
【０１１０】
ステップＳ１１０９で、クライアント１０４は複製元データ１０７の操作情報領域８０３の最後に、サーバ１０２への再複製を行なったこと（操作情報５０８）を追加し、処理を終了する。
【０１１１】
なお、ここで説明した再複製処理は、削除の取り消しであるため、複製元データ１０７の操作情報領域８０３の最後に、サーバ１０２への再複製を行なったこと（操作情報５０８）を追加するのではなく、削除操作（操作情報５０７）を消去してもよい。
【０１１２】
本実施例では、共有データを復元する処理において共有データ１１０が削除される直前の状態の画像を作成したが、この形態に限定されるものではない。例えば、図５において、ユーザが任意の操作情報５０５〜５０７を選択すると、前述したように、画像表示エリア５０１には選択された時点までの操作を適用した画像が表示される。この状態で復元ボタン５０９を押下すると、選択された時点までの操作を適用した画像が共有データとしてサーバ１０２に複製される。
【０１１３】
図１１では、削除した共有データのうち、図５に示す画面で閲覧中の複製元データに対応する共有データのみを復元する処理を説明した。図１２では、ユーザが図４の復元ボタン４１０を押すことにより、画像共有アプリケーションが複数の共有データを一括して復元する場合を説明する。
【０１１４】
図１２は、ユーザが図４の復元ボタン４１０を押したときに画像共有アプリケーションが表示するダイアログボックスを示す図である。このダイアログボックスは、アルバム名入力領域１２０１、実行ボタン１２０２、キャンセルボタン１２０３を含む。
【０１１５】
ユーザがキャンセルボタン１２０３を押した場合には、画像共有アプリケーションは何の処理も行なわずダイアログボックスを閉じる。
【０１１６】
ユーザがアルバム名入力領域１２０１にアルバム名を入力し、実行ボタン１２０２を押すと、画像共有アプリケーションは、入力された名前のサーバ１０２上のアルバムから削除された共有データを、クライアント１０４からサーバ１０２に再度複製する。
【０１１７】
図１３は、ユーザが復元ボタン４１０を押すことにより複製元クライアントが複数の共有データを一括して復元する処理の流れを示すフローチャートである。図１１と同様、本フローチャートの各処理は、特に断らなければ、クライアント１０４のＣＰＵ３０１（図３）がＨＤＤ３０４（クライアント記憶装置２０３）中の画像共有アプリケーションのプログラムを実行することにより行なうものである。
【０１１８】
ステップＳ１３０１で、クライアント１０４はクライアント記憶装置２０３内に記録されているすべての画像データのうち、操作情報の最後が、サーバ１０２の図１２で入力したアルバムからの削除処理である画像データ（複製元データ）を検索する。
【０１１９】
ステップＳ１３０２で、クライアント１０４はステップＳ１３０１で検索した条件に適合する複製元データが１つ以上存在するかどうかを判定する。検索条件に適合する複製元データが存在しない場合には、ステップＳ１３０３でその旨のメッセージをディスプレイ２０６に表示した後、処理を終了する。検索条件に適合する複製元データが１つ以上存在する場合、ステップＳ１３０４に進む。
【０１２０】
ステップＳ１３０４で、クライアント１０４は複製元データの数をカウントするための変数Ｎを１に初期化する。
【０１２１】
ステップＳ１３０５で、クライアント１０４は、検索条件に適合するＮ番目の複製元データをサーバ１０２に復元する処理を行なう。復元処理は図１１で説明したものとほぼ同じであるが、図１１のステップＳ１１０６でアルバム名を取得する必要はない。図１２のダイアログボックスで既にユーザがアルバム名を入力しているからである。
【０１２２】
ステップＳ１３０６で、クライアント１０４は、検索条件に適合するすべての複製元データの復元処理が終了したかどうかを判定する。まだ復元していない画像が存在したら、ステップＳ１３０７で変数Ｎに１を加算し、再びステップＳ１３０５に戻りＮ番目の複製元データについて復元処理を行なう。
【０１２３】
検索条件に適合するすべての複製元データの復元処理が終了したら、本フローチャートの処理を終了する。
【０１２４】
なお、図１２及び図１３では、ユーザがアルバム名を入力し、サーバ１０２の特定のアルバムから削除された共有データのみ復元した。しかし、図１２のダイアログを表示せず、サーバ１０２から削除されたすべての共有データを削除前に存在したアルバムに復元することとしてもよい。
【０１２５】
＜クライアントが保持する画像データを編集等する処理の流れ＞
図１４は、クライアント１０４が、クライアント記憶装置２０３に記録されるクライアント装置画像一覧表示画面（図４）又は画像データ詳細表示画面（図５）から選択された画像データに対して、削除、コピー、編集などの操作を行なう際の処理の流れを示すフローチャートである。本フローチャートの各処理は、特に断らなければ、クライアント１０４のＣＰＵ３０１（図３）がＨＤＤ３０４（クライアント記憶装置２０３）中の画像共有アプリケーションのプログラムを実行することにより行なうものである。なお、ここではクライアント１０４を例に説明するが、クライアント１０５やクライアント１０６など、他のクライアントについても同様である。
【０１２６】
ステップＳ１４０１で、クライアント１０４はユーザが指示した操作内容を取得する。ユーザの指示は、ユーザが図４の削除ボタン４０６、コピーボタン４０７、編集ボタン４０８、図５の編集ボタン５１０等を押すことにより行なわれる。
【０１２７】
ステップＳ１４０２で、操作対象となる画像データの操作情報領域８０３（図８）に操作情報が存在しているかどうかを確認する。ここに操作情報が存在すると、操作対象となる画像データはサーバ１０２に共有データとして複製されており、クライアント１０４で編集すると共有データとの整合性が取れなくなる可能性がある。なお、操作対象となる画像データは、クライアント装置画像一覧表示画面（図４）においては選択している画像データ、画像データ詳細表示画面（図５）においては詳細表示されている画像データである。
【０１２８】
操作対象となる画像データの操作情報領域８０３に操作情報が存在しなければ、サーバ１０２上の共有データとの整合性を考慮する必要が無い。そこで、ステップＳ１４０８に進み、クライアント１０４は操作対象となる画像データにステップＳ１４０１で取得した操作を適用し、処理を終了する。
【０１２９】
操作対象となる画像データの操作情報領域８０３に操作情報が存在する場合（すなわち、その画像データが複製元データである場合）は、ステップＳ１４０３に進む。
【０１３０】
ステップＳ１４０３で、クライアント１０４は確認メッセージを表示し、ユーザからの指示入力を待つ。確認メッセージの内容は、ステップＳ１４０１で取得した操作内容により異なる。操作内容が画像データの編集であれば、クライアント１０４は図１５に示す確認メッセージを表示する。このメッセージ画面は、警告メッセージ１５０１、コピー作成ボタン１５０２、実行ボタン１５０３、キャンセルボタン１５０４を含む。
【０１３１】
警告メッセージ１５０１は、操作対象となる画像データを編集するとサーバ１０２に複製した共有データと整合性が取れなくなる可能性があることを警告する。これに対しユーザは、操作対象となる画像データのコピーを作成するか（コピー作成ボタン１５０２）、警告を無視して編集を続行するか（実行ボタン１５０３）、操作を取りやめるか（キャンセルボタン１５０４）を選択できる。
【０１３２】
また、ステップＳ１４０１で取得した操作内容が画像データの削除であれば、ステップＳ１４０３で、クライアント１０４は図１６に示す確認メッセージを表示する。このメッセージ画面は、警告メッセージ１６０１、キャンセルボタン１６０４を含む。
【０１３３】
警告メッセージ１６０１は、操作対象となる画像データを削除するとサーバ１０２に複製した共有データを削除した場合に復元不可能になることを警告する。これに対し、ユーザはキャンセルボタン１６０４を押して操作を取りやめる。ただし、画像共有アプリケーションの設計によっては、警告を無視して削除を実行できることとしてもよい。
【０１３４】
また、ステップＳ１４０１で取得した操作内容が画像データのコピーであれば、ステップＳ１４０３で、クライアント１０４は図１７に示す確認メッセージを表示する。このメッセージ画面は、警告メッセージ１７０１、コピー作成ボタン１７０２、キャンセルボタン１７０４を含む。
【０１３５】
警告メッセージ１７０１は、コピー操作によって作成された画像データは、サーバ１０２上の共有データと関連性が無く、クライアント１０４のクライアント記憶装置２０３にのみ存在するデータとなることを警告する。これに対し、ユーザは操作対象となる画像データのコピーを作成するか（コピー作成ボタン１７０２）、操作を取りやめるか（キャンセルボタン１７０４）を選択できる。
【０１３６】
ステップＳ１４０４で、クライアント１０４は、ステップＳ１４０３でユーザが入力した指示の種類を判定する。ユーザがキャンセルボタン１５０４、キャンセルボタン１６０４、又はキャンセルボタン１７０４を押した場合は、処理を終了する。ユーザが実行ボタン１５０３を押した場合はステップＳ１４０５に進み、ユーザがコピー作成ボタン１５０２又はコピー作成ボタン１７０２を押した場合はステップＳ１４０６に進む。
【０１３７】
ステップＳ１４０５では、クライアント１０４は操作対象となる画像データから操作情報領域８０３の操作情報が削除される旨のメッセージを表示し、ステップＳ１４０７に進む。
【０１３８】
ステップＳ１４０６では、クライアント１０４は操作対象となる画像データのコピーを作成し、ステップＳ１４０７に進む。ただし、この場合はその後のステップにおいて操作対象となる画像データは、元の画像データではなくコピーされた画像データとなる。
【０１３９】
ステップＳ１４０７で、クライアント１０４は操作対象となる画像データから、操作情報をすべて削除する。
【０１４０】
ステップＳ１４０８で、クライアント１０４は操作対象となる画像データにステップＳ１４０１で取得した操作を適用し、処理を終了する。
【０１４１】
＜クライアントの保持する画像データをサーバ１０２に複製する処理の流れ＞
図１８は、クライアント１０４のクライアント記憶装置２０３に記録されている画像データをサーバ１０２に共有データとして複製する処理の流れを示すフローチャートである。本フローチャートの各処理は、特に断らなければ、クライアント１０４のＣＰＵ３０１（図３）がＨＤＤ３０４（クライアント記憶装置２０３）中の画像共有アプリケーションのプログラムを実行することにより行なうものである。なお、ここではクライアント１０４を例に説明するが、クライアント１０５やクライアント１０６など、他のクライアントについても同様である。
【０１４２】
ユーザが図４のクライアント装置画像一覧表示画面で複製ボタン４０９を押すか、図５の画像データ詳細表示画面で複製ボタン（不図示）を押すと、選択されている画像データ（図５では表示されている画像データ）を対象にステップＳ１８０１から処理が始まる。
【０１４３】
ステップＳ１８０１で、クライアント１０４は操作対象となる画像データの操作情報領域８０３（図８）に、操作情報が存在しているかどうかを確認する。操作情報が存在しない場合は、その画像データはまだサーバ１０２で共有されていないということであり、ステップＳ１８０７に進む。操作情報が存在する場合には、その画像データは既にサーバ１０２で共有されているということであり、ステップＳ１８０２に進む。
【０１４４】
ステップＳ１８０２で、クライアント１０４は操作対象となる画像データの操作情報から、その画像データが共有データとして存在するアルバムの名称を調べ、その共有データが実際にサーバ１０２に存在しているかどうかを画像ファイル名から確認する。
【０１４５】
サーバ１０２にその共有データが存在する場合には、ステップＳ１８０３で、クライアント１０４は、操作対象となる画像データは既にサーバ１０２に複製されている旨のエラーメッセージを表示し、処理を終了する。
【０１４６】
サーバ１０２に共有データが存在しない場合には、何らかの原因でサーバ１０２の共有データが失われたと考えられ、ステップＳ１８０４に進む。
【０１４７】
ステップＳ１８０４では、図１９に示す警告メッセージを表示する。このメッセージ画面は、警告メッセージ１９０１、ＯＫボタン１９０２、キャンセルボタン１９０３を含む。警告メッセージ１９０１は、本来サーバ１０２に存在すべき共有データが存在しない旨及び操作対象の画像データを再度複製するかを尋ねるメッセージである。このメッセージに対し、ユーザは再度複製する（ＯＫボタン１９０２）か、操作を取りやめる（キャンセルボタン１９０３）かを選択できる。
【０１４８】
ステップＳ１８０４でユーザがキャンセルボタン１９０３を押すと、処理は終了する。
【０１４９】
ステップＳ１８０４でユーザがＯＫボタン１９０２を押すと、ステップＳ１８０５に進む。
【０１５０】
ステップＳ１８０５で、クライアント１０４は操作対象となる画像データのコピーを作成する。以後のステップにおいて、操作対象はコピーされた画像データとなる。
【０１５１】
ステップＳ１８０６で、クライアント１０４は、コピーされた画像データに図１１のステップＳ１１０４及びステップＳ１１０５と同等の処理を行ない、操作情報の反映された画像データを作成する。換言すれば、クライアント１０４は、本来サーバ１０２に存在すべきであるはずの共有データと思われるデータを作成する。
【０１５２】
ステップＳ１８０７で、クライアント１０４はステップＳ１８０１で操作対象となっている画像データ又はステップＳ１８０５で新たに操作対象とされた（コピーされた）画像データをサーバ１０２に共有データとして複製する。その際に、クライアント１０４は、共有データの元画像ポインタ９０４（図９）に、操作対象となる画像データの位置情報を記録する。
【０１５３】
ステップＳ１８０８で、クライアント１０４は操作対象となる画像データの操作情報領域８０３に、サーバ１０２に複製されたという操作情報を記録する。
【０１５４】
ステップＳ１８０９で、クライアント１０４は、サーバ１０２に複製済みの画像データ（複製元データ）がクライアント１０４内で誤って改変されないように、複製元データのファイル属性として、書き込み禁止属性を付加する。
【０１５５】
以上により、画像データのクライアント１０４からサーバ１０２への複製処理が完了する。なお、図１９の例では、ステップＳ１８０５において画像データをコピーする際に、"Sample.jpg"を"Sample_copy.jpg"とするように、ファイル名を変更している。しかし、ステップＳ１８０７でサーバ１０２に複製する際は、元のファイル名（"Sample.jpg"）で複製してもよい。
【０１５６】
＜第１の実施形態のまとめ＞
以上説明したように、本実施形態によれば、画像共有システム等のデータ共有システムにおいて、共有データに対する改変の履歴（操作情報）及び改変前のデータはクライアントが保持する。一方、サーバ上の共有データは実際に改変され、操作情報はクライアントに通知され、通知に失敗した場合を除き、サーバには残らない。
【０１５７】
これにより、画像共有システム等のデータ共有システムにおいて、サーバの記憶装置の記憶容量消費量を抑制することが可能となる。また、クライアントは改変前のデータと操作情報から任意の時点のデータを再現できため、共有データを削除する場合でも、削除を示す操作情報のみをクライアントに通知すればよく、削除の取り消しに備えてデータ全体をクライアントに送信する必要はない。したがって、ネットワーク通信量も抑制することが可能となる。
【０１５８】
［その他の実施形態］
上述した実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１５９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行ない、その処理によって前述した各実施の形態の機能が実現される場合も含まれている。
【０１６０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行ない、その処理によって前述した各実施の形態の機能が実現される場合も含むものである。
【図面の簡単な説明】
【０１６１】
【図１】第１の実施形態における画像共有システム１００を模式的に示す図である。
【図２】本発明におけるサーバ及びクライアントとして用いることのできるパーソナルコンピュータの構成例を示す図である。
【図３】本発明におけるサーバ及びクライアントとして用いることのできるパーソナルコンピュータのハードウェア構成例を示すブロック図である。
【図４】クライアント上で実行される画像共有アプリケーションによりディスプレイ２０６に表示される表示画面を示す図である。
【図５】クライアント上で実行される画像共有アプリケーションによりディスプレイ２０６に表示される表示画面を示す図である。
【図６】クライアント上で実行される画像共有アプリケーションによりディスプレイ２０６に表示される表示画面を示す図である。
【図７】クライアント上で実行される画像共有アプリケーションによりディスプレイ２０６に表示される表示画面を示す図である。
【図８】クライアントのクライアント記憶装置２０３に記録されている画像データのフデータ構造の一例を示す図である。
【図９】サーバ１０２のサーバ記憶装置１０３に記録されている画像データのデータ構造の一例を示す図である。
【図１０】いずれかのクライアントが、サーバ１０２の共有データを編集・削除等する操作指示を、サーバ１０２に発したときの処理の流れを示すフローチャートである。
【図１１】ユーザが図５の復元ボタン５０９を押すことにより、複製元クライアントがサーバ１０２から削除された共有データを復元する処理の流れを示すフローチャートである。
【図１２】ユーザが図４の復元ボタン４１０を押したときに画像共有アプリケーションが表示するダイアログボックスを示す図である。
【図１３】ユーザが復元ボタン４１０を押すことにより複製元クライアントが複数の共有データを一括して復元する処理の流れを示すフローチャートである。
【図１４】クライアント１０４が、クライアント記憶装置２０３に記録されるクライアント装置画像一覧表示画面（図４）又は画像データ詳細表示画面（図５）から選択された画像データに対して、削除、コピー、編集などの操作を行なう際の処理の流れを示すフローチャートである。
【図１５】サーバ１０２に共有データとして複製された複製元データをクライアントがクライアント上で編集しようとすると表示される警告メッセージ画面である。
【図１６】サーバ１０２に共有データとして複製された複製元データをクライアントがクライアント上で削除しようとすると表示される警告メッセージ画面である。
【図１７】サーバ１０２に共有データとして複製された複製元データをクライアントがクライアント上でコピーしようとすると表示される警告メッセージ画面である。
【図１８】クライアントのクライアント記憶装置２０３に記録されている画像データをサーバ１０２に共有データとして複製する処理の流れを示すフローチャートである。
【図１９】既にサーバ１０２に共有データとして複製されている複製元データを、クライアントが再度サーバ１０２に複製しようとしたときに、サーバ１０２に存在するはずの共有データが存在しない場合に表示される警告メッセージ画面である。
【図１】
0004834339.tif 000002
【図２】
0004834339.tif 000003
【図３】
0004834339.tif 000004
【図４】
0004834339.tif 000005
【図５】
0004834339.tif 000006
【図６】
0004834339.tif 000007
【図７】
0004834339.tif 000008
【図８】
0004834339.tif 000009
【図９】
0004834339.tif 000010
【図１０】
0004834339.tif 000011
【図１１】
0004834339.tif 000012
【図１２】
0004834339.tif 000013
【図１３】
0004834339.tif 000014
【図１４】
0004834339.tif 000015
【図１５】
0004834339.tif 000016
【図１６】
0004834339.tif 000017
【図１７】
0004834339.tif 000018
【図１８】
0004834339.tif 000019
【図１９】
0004834339.tif 000020