(57)【特許請求の範囲】
【請求項１】
オリジナルデータを保持する第１の情報処理装置と、当該情報処理装置から前記オリジナルデータの複製データを取得する第２の情報処理装置とを含むデータ共有システムであって、
前記第２の情報処理装置は、前記第１の情報処理装置から取得した前記複製データを、第３の情報処理装置に送信する複製データ送信手段を備え、
前記第１の情報処理装置は、
前記第３の情報処理装置から送信された、前記複製データの確認要求を受信する受信手段と、
前記受信手段で受信した確認要求に応じて、前記第３の情報処理装置が受信した複製データと前記オリジナルデータとを比較する比較手段と、
前記比較手段による比較結果に応じて、前記複製データの削除要求を前記第３の情報処理装置に送信する送信手段と、
を備えることを特徴とするデータ共有システム。
【請求項２】
前記送信手段は、前記比較手段における比較の結果、前記第３の情報処理装置が受信した複製データと前記オリジナルデータとが一致しない場合に、前記複製データの削除要求を前記第３の情報処理装置に送信することを特徴とする請求項１記載のデータ共有システム。
【請求項３】
前記第３の情報処理装置は、前記送信手段によって送信された削除要求を受信するのに応じて前記複製データを削除し、前記送信手段によって削除要求が送信されなかった場合、前記複製データを保持することを特徴とする請求項１又は２に記載のデータ共有システム。
【請求項４】
前記第１の情報処理装置は、
前記オリジナルデータの複製データを保持する情報処理装置を管理するためのリストを記憶する記憶手段と、
前記比較手段による比較結果に応じて、前記第３の情報処理装置を前記リストに登録する登録手段とを更に有することを特徴とする請求項１乃至３の何れかに記載のデータ共有システム。
【請求項５】
前記第１の情報処理装置は、
前記オリジナルデータを更新する更新手段と、
前記更新手段によって前記オリジナルデータが更新された場合、当該オリジナルデータの複製データを更新するための更新要求を、前記リストに登録された情報処理装置に対して送信する更新要求送信手段を更に備え、
前記第２の情報処理装置及び前記第３の情報処理装置は、前記更新要求を受信するのに応じて、前記オリジナルデータの複製データを更新することを特徴とする請求項１乃至４の何れかに記載のデータ共有システム。
【請求項６】
前記第１の情報処理装置は、
前記オリジナルデータを削除する削除手段と、
前記削除手段によって前記オリジナルデータが削除された場合、当該オリジナルデータの複製データを削除するための削除要求を、前記リストに登録された情報処理装置に対して送信する削除要求送信手段を更に備え、
前記第２の情報処理装置及び前記第３の情報処理装置は、前記削除要求を受信するのに応じて、前記オリジナルデータの複製データを削除することを特徴とする請求項１乃至５の何れかに記載のデータ共有システム。
【請求項７】
前記第３の情報処理装置は、
前記第２の情報処理装置から前記オリジナルデータの複製データを取得するのに応じて、及び前記第３の情報処理装置が起動するのに応じて、前記確認要求を前記第１の情報処理装置に送信することを特徴とする請求項１乃至６の何れかに記載のデータ共有システム。
【請求項８】
前記複製データは、前記第１の情報処理装置を識別するための識別情報を含み、前記第３の情報処理装置は、前記識別情報に基づいて前記確認要求を前記第１の情報処理装置に送信することを特徴とする請求項１乃至７の何れかに記載のデータ共有システム。
【請求項９】
オリジナルデータを保持する第１の情報処理装置と、当該情報処理装置から前記オリジナルデータの複製データを取得する第２の情報処理装置とを含み、前記第２の情報処理装置は、前記第１の情報処理装置から取得した前記複製データを、第３の情報処理装置に送信する複製データ送信手段を備えるデータ共有システムのデータ共有方法であって、
前記第１の情報処理装置は、
前記第３の情報処理装置から送信された、前記複製データの確認要求を受信する受信工程と、
前記受信工程で受信した確認要求に応じて、前記第３の情報処理装置が受信した複製データと前記オリジナルデータとを比較する比較工程と、
前記比較工程での比較結果に応じて、前記複製データの削除要求を前記第３の情報処理装置に送信する送信工程と、
を備えることを特徴とするデータ共有方法。
【請求項１０】
第１の情報処理装置及び第２の情報処理装置と通信可能な情報処理装置であって、
オリジナルデータを記憶する記憶手段と、
オリジナルデータの複製データを生成する生成手段と、
前記第１の情報処理装置からの要求に応じて、前記生成手段によって生成された複製データを前記第１の情報処理装置に送信する送信手段と、
前記第１の情報処理装置から前記複製データを取得した前記第２の情報処理装置から、当該複製データの確認要求を受信する受信手段と、
前記受信手段で受信した確認要求に応じて、前記第２の情報処理装置が受信した複製データと前記記憶手段で記憶されたオリジナルデータとを比較する比較手段と、
前記比較手段による比較結果に応じて、前記複製データの削除要求を前記第２の情報処理装置に送信する送信手段と、
を備えることを特徴とする情報処理装置。
【請求項１１】
オリジナルデータを記憶する記憶手段を有し、第１の情報処理装置及び第２の情報処理装置と通信可能な情報処理装置上でコンピュータにより実行されるプログラムであって、
オリジナルデータの複製データを生成する生成ステップと、
前記第１の情報処理装置からの要求に応じて、前記生成手段によって生成された複製データを前記第１の情報処理装置に送信する送信ステップと、
前記第１の情報処理装置から前記複製データを取得した前記第２の情報処理装置から、当該複製データの確認要求を受信する受信ステップと、
前記受信ステップで受信した確認要求に応じて、前記第２の情報処理装置が受信した複製データと前記記憶手段で記憶されたオリジナルデータとを比較する比較ステップと、
前記比較ステップでの比較結果に応じて、前記複製データの削除要求を前記第２の情報処理装置に送信する送信ステップと、
を前記コンピュータにより実行させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムをコンピュータにより読み取り可能に格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のノードが、オリジナルノードに保持されるオリジナルデータの複製データを共有するデータ共有システム、データ共有方法、情報処理装置、プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
従来、データを共有するためのシステムとしては、データを蓄積する共有サーバなどのサーバを用いるシステムがある。このようなシステムにおいては、サーバによりデータが一元管理されている。そして、ネットワーク上の他の装置（ノード）に保持されているオリジナルデータの複製されたものすなわち複製データがサーバに保持され、このオリジナルデータの複製データが共有データとしてネットワーク上のノードから参照される。
【０００３】
また、データを共有するシステムとして、Ｇｎｕｔｅｌｌａ、Ｗｉｎｎｙなどのソフトウェアを用いて、ネットワーク上でＰｔｏＰ（Ｐ２Ｐ）の形態でファイル交換を行うことにより、データを共有するものがある（特許文献１参照）。このようなＰｔｏＰを用いるデータ共有システムの場合、オリジナルデータの複製データが同じシステム内のそれぞれのノードに拡散し、各ノードにより拡散された複製データが共有されることになる。
【特許文献１】特開２００４−１６４６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
サーバを用いるデータ共有システムの場合、オリジナルデータを保持するノード（オリジナルノード）は、サーバに保持されているオリジナルデータの複製データを更新し、また削除することができる。しかしながら、オリジナルノードは、サーバ以外のノードに保持されているオリジナルデータの複製データを操作することをできない。
【０００５】
また、ＰｔｏＰを用いたシステムの場合、複製データの追跡に関しては、伝達されたデータの履歴からオリジナルノードを特定することは可能である。しかしながら、ノードの一部がネットワークから切り離されている、ノードの電源が落ちているなど、そのような場合においては、そのノード以降における複製データの追跡を行うことができない。
【０００６】
また、オリジナルデータの所有者は、オリジナルノードから、そのオリジナルデータの複製データの全てに対して操作を行うことはできない。そのため、既に削除されているオリジナルデータの複製データ、旧いバージョンのオリジナルデータの複製データが、ＰｔｏＰで、ネットワーク内で複製され続けて拡散することになる。
【０００７】
本発明の目的は、オリジナルノードに保持されているオリジナルデータに一致しない複製データがネットワーク上に拡散することを未然に防止することができるデータ共有システムおよびデータ共有方法を提供することにある。
【０００８】
また、本発明の目的は、オリジナルノードまたはノードを構成するためのプログラムおよびこのプログラムを格納する記憶媒体を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するため、オリジナルデータを保持する第１の情報処理装置と、当該情報処理装置から前記オリジナルデータの複製データを取得する第２の情報処理装置とを含むデータ共有システムであって、前記第２の情報処理装置は、前記第１の情報処理装置から取得した前記複製データを、第３の情報処理装置に送信する複製データ送信手段を備え、前記第１の情報処理装置は、前記第３の情報処理装置から送信された、前記複製データの確認要求を受信する受信手段と、前記受信手段で受信した確認要求に応じて、前記第３の情報処理装置が受信した複製データと前記オリジナルデータとを比較する比較手段と、前記比較手段による比較結果に応じて、前記複製データの削除要求を前記第３の情報処理装置に送信する送信手段と、を備えることを特徴とするデータ共有システムを提供する。
【００１０】
本発明は、上記目的を達成するため、オリジナルデータを保持する第１の情報処理装置と、当該情報処理装置から前記オリジナルデータの複製データを取得する第２の情報処理装置とを含み、前記第２の情報処理装置は、前記第１の情報処理装置から取得した前記複製データを、第３の情報処理装置に送信する複製データ送信手段を備えるデータ共有システムのデータ共有方法であって、前記第１の情報処理装置は、前記第３の情報処理装置から送信された、前記複製データの確認要求を受信する受信工程と、前記受信工程で受信した確認要求に応じて、前記第３の情報処理装置が受信した複製データと前記オリジナルデータとを比較する比較工程と、前記比較工程での比較結果に応じて、前記複製データの削除要求を前記第３の情報処理装置に送信する送信工程と、を備えることを特徴とするデータ共有方法を提供する。
【００１１】
本発明は、上記目的を達成するため、第１の情報処理装置及び第２の情報処理装置と通信可能な情報処理装置であって、オリジナルデータを記憶する記憶手段と、オリジナルデータの複製データを生成する生成手段と、前記第１の情報処理装置からの要求に応じて、前記生成手段によって生成された複製データを前記第１の情報処理装置に送信する送信手段と、前記第１の情報処理装置から前記複製データを取得した前記第２の情報処理装置から、当該複製データの確認要求を受信する受信手段と、前記受信手段で受信した確認要求に応じて、前記第２の情報処理装置が受信した複製データと前記記憶手段で記憶されたオリジナルデータとを比較する比較手段と、前記比較手段による比較結果に応じて、前記複製データの削除要求を前記第２の情報処理装置に送信する送信手段と、を備えることを特徴とする情報処理装置を提供する。
【００１２】
本発明は、上記目的を達成するため、オリジナルデータを記憶する記憶手段を有し、第１の情報処理装置及び第２の情報処理装置と通信可能な情報処理装置上でコンピュータにより実行されるプログラムであって、オリジナルデータの複製データを生成する生成ステップと、前記第１の情報処理装置からの要求に応じて、前記生成手段によって生成された複製データを前記第１の情報処理装置に送信する送信ステップと、前記第１の情報処理装置から前記複製データを取得した前記第２の情報処理装置から、当該複製データの確認要求を受信する受信ステップと、前記受信ステップで受信した確認要求に応じて、前記第２の情報処理装置が受信した複製データと前記記憶手段で記憶されたオリジナルデータとを比較する比較ステップと、前記比較ステップでの比較結果に応じて、前記複製データの削除要求を前記第２の情報処理装置に送信する送信ステップと、を前記コンピュータにより実行させることを特徴とするプログラムを提供する。
【００１３】
本発明は、上記目的を達成するため、上記プログラムをコンピュータにより読み取り可能に格納したことを特徴とする記憶媒体を提供する。
【発明の効果】
【００１４】
本発明によれば、オリジナルノードに保持されているオリジナルデータに一致しない複製データがネットワーク上に拡散することを未然に防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１６】
図１は本発明の一実施の形態に係るデータ共有システムの構成を示すブロック図である。図２は図１のノードＡ，Ｂ，Ｃ，Ｄを構成する情報処理装置の構成を示すブロック図である。
【００１７】
データ共有システムは、図１に示すように、ネットワーク例えばＬＡＮ（Local Area Network）１００内に収容されている複数のノードＡ，Ｂ，Ｃ，Ｄから構成される。ここで、ノードＡは、オリジナルデータを保持するオリジナルノードとする。ノードＡは、複製先ノードリスト１１１、複製データ（オリジナルデータを複製したもの）１１２と、オリジナルデータ１１３を保持する。ここで、以降、上記ノードＡのように、他のノードに共有データとして保持される複製データのオリジナルデータを保持するノードを、特に、オリジナルノードと呼ぶことにする。
【００１８】
複製先ノードリスト１１１は、オリジナルデータの複製データを保持するノードＢ，Ｃ，Ｄを複製先のノードとして管理するものである。複製データ１１２は、オリジナルデータ１１３の複製データと、当該複製データのオリジナルデータを保持するオリジナルノードＡを示すノード情報とを含むものである。複製先ノードリスト１１１および複製データ１１２の詳細な構成については、後述する。
【００１９】
ノードＢ，Ｃ，Ｄは、上記オリジナルデータ１１３の複製データ１２１，１３１，１４１を保持する複製先ノードとする。本例において、複製データ１２１は、ノードＢがノードＡからその複製データ１１２をＬＡＮ１００経由で取得したものである。また、複製データ１３１は、ノードＣがノードＢからその複製データ１２１をＬＡＮ１００経由で取得したものである。また、複製データ１４１は、ノードＤがノードＣからその複製データ１３１をＬＡＮ１００経由で取得したものである。
【００２０】
上記ノードＡ，Ｂ，Ｃ，Ｄを構成する情報処理装置としては、例えば図２に示すような複合機２００からなる。この複合機２００は、ＣＰＵ２０１を備える。ＣＰＵ２０１は、ＲＯＭ２０２またはハードディスク（ＨＤ）２１０に格納されているソフトウェアを実行することによって、システムバス２１３に接続される各デバイスを総括的に制御する。このＣＰＵ２０１の作業領域は、ＲＡＭ２０３によって提供される。
【００２１】
システムバス２１３には、ＲＯＭ２０２およびＲＡＭ２０３とともに、ネットワークインタフェースカード（ＮＩＣ）２０４、操作パネルコントローラ２０５、ディスプレイコントローラ２０７、およびディスクコントローラ２０９が接続されている。また、システムバス２１３には、プリンタ２１１およびスキャナ２１２が接続されている。
【００２２】
ＮＩＣ２０４は、ＬＡＮ１００を介して、他のノードとの間でデータを送受するための制御を行う。操作パネルコントローラ２０５は、各種のキーを有する操作パネル２０６上で、ユーザにより入力された情報（設定情報、指示情報など）を入力し、ＣＰＵ２０１に送る。ディスプレイコントローラ２０７は、ＣＰＵ２０１により生成された情報をディスプレイ２０８に表示するように制御する。ディスクコントローラ２０９は、ＨＤ２１０へのデータの書き込みおよび読み出しを制御する。プリンタ２１１は、例えば電子写真方式、インクジェット方式などを用いて、用紙上に画像を印刷するプリンタである。スキャナ２１２は、原稿上の画像を読み取り、この読み取った画像を出力する。スキャナ２１２により読み取られた画像は、プリンタ２１１に、またはＬＡＮ１００を介して他の装置に送られる。また、スキャナ２１２により読み取られた画像は、必要に応じて、ＨＤ２１０に格納される。
【００２３】
本データ共有システムにおいて、ノードＡに、他のノードＢ，Ｃ，Ｄから共有されるデータとして保持されているデータは、例えばフォントデータ、プリントデータ、コントローラファーム、バックアップ用データなどであり、これらのデータは、ＨＤ２１０に保持される。
【００２４】
本実施の形態においては、ノードＡが保持するオリジナルデータ１１３の複製データ１１２を共有するために、各ノードＡ〜Ｄ間で、各種の要求コマンドがやり取りされる。
【００２５】
各種の要求コマンドについて図３を参照しながら説明する。図３は各ノードＡ〜Ｄ間でやり取りされる各種の要求コマンドと要求コマンドのそれぞれに対する応答の一覧を示す図である。
【００２６】
各種の要求コマンドとしては、複製要求、確認要求、更新要求、削除要求がある。複製要求は、所望のオリジナルデータ（またはその複製データ）を保持するオリジナルノード、またはその複製データを保持する他のノードに対して、当該オリジナルデータの複製データを要求するものである。上記複製要求には、オリジナルデータの複製データを指定するためのデータ情報と、当該複製要求元のノードを示すノード情報が含まれる。このデータ情報は、例えばファイル名、ファイルサイズ、ファイル作成日時などの、オリジナルデータの複製データを指定可能な情報である。上記ノード情報は、例えばＩＰアドレス、ＭＡＣアドレス、ＵＲＬ、メールアドレスなどである。
【００２７】
複製要求を受信したノードは、当該複製要求に含まれるノード情報が示す複製要求元のノードに対して、肯定応答または否定応答を返す。肯定応答は、複製要求により要求された（複製要求に含まれるデータ情報により指定された）複製データがある場合に返されるものであり、この肯定応答としては、複製要求により要求された複製データが返される。否定応答は、複製データが無い、複製が許可されていないなどの場合に返されるものであり、この否定応答としては、複製要求ＮＧが返される。
【００２８】
上記肯定応答すなわち複製データを受信した（取得した）ノード（複製要求元のノード）は、確認要求を、上記複製データに付加されているノード情報が示すノードすなわちオリジナルノードに送信する。この確認要求は、上記複製データがオリジナルノードに保持されるオリジナルデータに一致するか否かの確認を要求するための要求である。上記確認要求には、上記肯定応答して返された複製データに含まれるデータ情報と、上記肯定応答を受信したノード（確認要求元のノード）を示すノード情報が含まれる。このノード情報は、例えばＩＰアドレス、ＭＡＣアドレス、ＵＲＬ、メールアドレスなどである。
【００２９】
上記確認要求を受信したオリジナルノードは、上記確認要求に対する確認結果を、確認要求元のノードに返す。ここで、上記複製データとオリジナルデータが一致する場合、それを示す確認結果が確認ＯＫ（肯定応答）として返される。この確認ＯＫを受けた確認要求元のノードは、取得した複製データを保持し、ＬＡＮ１００上のノードに公開する。これに対し、上記複製データとオリジナルデータが一致しない場合、それを示す確認結果が確認ＮＧ（否定応答）として返される。この確認ＮＧを受けた確認要求元のノードは、取得した複製データを削除する。
【００３０】
上記更新要求は、オリジナルノードにおいてオリジナルデータが更新された場合に、当該オリジナルデータの複製データを保持する複製先のノードに対して、当該複製データの更新を要求するものである。上記更新要求には、更新が要求された複製データを指定するためのデータ情報と、更新されたオリジナルデータの複製データが含まれる。上記更新要求を受けた複製先のノードは、当該ノードが保持する複製データのうち、上記更新要求のデータ情報により指定された複製データを、上記更新要求に含まれる複製データに更新するための処理を行う。そして、上記指定された複製データの更新が正常に完了した場合、更新ＯＫ（肯定応答）がオリジナルノードに返される。また、上記指定された複製データの更新が正常に完了しない場合、更新ＮＧ（否定応答）がオリジナルノードに返される。
【００３１】
上記削除要求は、オリジナルノードにおいてオリジナルデータが削除された場合、当該オリジナルデータの複製データを保持する複製先のノードに対して、当該複製データの削除を要求するものである。上記削除要求には、削除が要求された複製データを指定するためのデータ情報が含まれる。削除要求を受けた複製先のノードは、当該ノードが保持する複製データのうち、上記削除要求のデータ情報により指定された複製データを削除するための処理を行う。そして、上記指定された複製データの削除が正常に完了した場合、削除ＯＫ（肯定応答）がオリジナルノードに返される。また、上記指定された複製データの削除が正常に完了しない場合、削除ＮＧ（否定応答）がオリジナルノードに返される。
【００３２】
また、複製データを保持するノードがネットワークと接続されていない状態からネットワークと接続された状態へ復帰した場合に、当該ノードは、確認要求（第２の確認要求）をオリジナルノードに送信する。この確認要求は、上記ノードに保持される複製データが更新または削除すべきデータであるか否かの確認を、上記複製データに含まれるノード情報が示すノード即ちオリジナルノードに要求するものである。この確認要求には、確認を要求する複製データを指定するデータ情報が含まれる。この確認要求を受信したオリジナルノードは、複製先ノードリスト１１１を参照して、上記確認要求により確認が要求された複製データ（データ情報により指定された複製データ）が更新または削除すべきデータであるか否かを確認する。そして、上記複製データが更新も削除も不要な正当なデータであることが確認されると、確認結果として確認ＯＫが返される。また、上記複製データが更新すべきデータであることが確認されると、確認結果として更新要求が返される。また、上記複製データが削除すべきデータであることが確認されると、確認結果として削除要求が返される。また、上記複製データに対する確認ができなかった場合、確認結果として確認ＮＧが返される。
【００３３】
上記確認要求（第２の確認要求）に対する確認結果を受信した確認要求元のノード（第２の確認要求元のノード）は、上記確認結果に応じた処理を行う。上記確認ＯＫを受信したノードは、上記確認要求により確認を要求した複製データを、ＬＡＮ１００上に公開する。上記更新要求を受信したノードは、上記確認要求により確認を要求した複製データを、上記更新要求に含まれる複製データに更新するための処理を行う。上記削除要求を受信したノードは、上記確認要求により確認を要求した複製データを削除するための処理を行う。上記確認ＮＧを受信したノードは、上記確認要求により確認を要求した複製データを削除する。
【００３４】
上述した各種の要求コマンドによる処理の詳細については後述する。
【００３５】
次に、上記複製データ１１２，１２１，１３１，１４１の構成について図４を参照しながら説明する。図４は複製データ１１２，１２１，１３１，１４１の構成を示す図である。
【００３６】
複製データ１１２，１２１，１３１，１４１は、図４に示すように、オリジナルデータの複製データであるデータ本体３０４に、ノード情報３０１、データ情報３０２およびデータステータス３０３が付加されたものである。ここで、ノード情報３０１は、例えばＩＰアドレス、ＭＡＣアドレス、ＵＲＬ、メールアドレスなど、複製データのオリジナルを保持するＬＡＮ１００上のノードを示すノード情報である。データ情報３０２は、複製データを特定するための情報、例えばファイル名、ファイルサイズ、ファイル作成日時、バージョン情報などからなる。データステータス３０３は、複製データを保持するノード（オリジナルノードを含む）において、書き換え可能なデータである。例えばオリジナルデータを保持するオリジナルノード（本例ではノードＡ）においては、データスタータス３０３が「オリジナル」に設定される。また、オリジナルデータの複製データを保持する複製先のノードにおいては、データステータス３０３が「確認済み」または「未確認」に設定される。
【００３７】
次に、ノードＡ（オリジナルノード）が保持する複製先ノードリスト１１１について図５を参照しながら説明する。図５はノードＡが保持する複製先ノードリスト１１１の構成例を示す図である。
【００３８】
複製先ノードリスト１１１は、図５に示すように、ノードＡが保持するオリジナルデータ毎にその複製データを保持するノードＢ，Ｃ，Ｄのノード情報を格納するためのリストである。本例の複製先ノードリスト１１１には、オリジナルデータのデータ名称と、その複製データを保持するノード（複製先のノード）を示すノード情報と、ノードステータスが関連付けて記述されている。この複製先ノードリスト１１１には、例えばデータ１の名称を有するオリジナルデータに関しては、その複製データを保持するノードが、ノードＢ、ノードＣ、ノードＤであることが記述されている。
【００３９】
上記ノードステータスは、オリジナルデータの更新に伴い当該オリジナルデータの複製データが更新済みであるか未更新であるか否かを示す更新ステータスと、複製データが削除済みであるか未削除であるかを示す削除ステータスを含む。
【００４０】
ここで、ノードＡ（オリジナルノード）において、データ１のオリジナルデータが更新された場合、複製先ノードリスト１１１のデータ１に対応付けられている全てのノードＢ，Ｃ，Ｄ（複製先のノード）のノードステータスが「未更新」にされる。そして、各ノードＢ，Ｃ，Ｄに対して、更新要求が送信される。この更新要求に対して更新ＯＫが複製先のノードから返されると、ノードステータスが「更新済み」に書き換えされる。本例の場合、データ１に関しては、ノードＢ，Ｃのノードステータスは「更新済み」に書き換えられているが、ノードＤのノードステータスは「未更新」の状態にある。
【００４１】
複製先のノードＢ，Ｃ，Ｄの全てに対して、それぞれに保持されている複製データの更新が終了すると、対応するノードステータスの情報が消去（何も無い状態に変更）される。例えばデータ１に関して、その複製データを保持する各ノードＢ，Ｃ，Ｄにおいて、その複製データが更新されると、各ノードＢ，Ｃ，Ｅのノードステータスの情報が消去される。
【００４２】
また、名称がデータ２のオリジナルデータが削除された場合、複製先ノードリスト１１１のデータ２に対応付けられているノードＢ，Ｃ，Ｄ（複製先のノード）のノードステータスが「未削除」に書き換えられる。そして、各ノードＢ，Ｃ，Ｄに対してデータ２の複製データの削除要求が送信される。この削除要求に対して削除ＯＫが複製先のノードから返されると、この複製先ノードのノードステータスが「削除済み」に書き換えされる。ここで、データ２のオリジナルデータの複製データを保持する全てのノードＢ，Ｃ，Ｄにおいて、その複製データが削除されると、複製先ノードリスト１１１から、データ２のオリジナルデータに関連する情報が削除される。即ち、データ２のオリジナルデータのデータ名称、ノード情報、ノードステータスが削除される。
【００４３】
次に、ノードＢ，Ｃ，ＤがノードＡ（オリジナルノード）に保持されているオリジナルデータ１１３の複製データ１１２を取得（共有）する場合について図１を参照しながら説明する。
【００４４】
ノードＢがノードＡのオリジナルデータ１１３（複製データ１１２）を取得するために、ＰｔｏＰ、ファイルサーバ、ファイル共有システムなどの検索手段を用いてネットワーク検索を行うとする。この検索の結果、ノードＢがノードＡに保持されているオリジナルデータ１１３（複製データ１２１）を見つけると、ノードＢは、複製要求をノードＡに送信する（１５１）。ノードＡは、上記複製要求に基づいて、複製データ１１２をノードＢに送信する（１５２）。ここで、複製データ１１２には、当該複製データを特定するためのデータ情報とノードＡを示すノード情報が含まれる。ここで、ノードＡにおいて複製データ１１２が生成されていない場合、当該複製データ１１２が生成される。ノードＢは、ノードＡから送信された複製データ１１２を受信し、当該複製データ１１２を複製データ１２１として取得する。
【００４５】
次いで、ノードＢは、複製データ１２１を特定するためのデータ情報（複製データ１２１に含まれるデータ情報）と当該ノードＢを示すノード情報を含む確認要求を、ノードＡに送信する（１５３）。ノードＡは、上記確認要求に含まれるデータ情報に基づいて、ノードＢが取得した複製データ１２１（１１２）がオリジナルデータ１１３と一致するデータであるかを確認する。そして、ノードＡは、上記複製データ１２１がオリジナルデータ１１３と一致するデータであることを確認すると、確認ＯＫをノードＢに返す（１５４）。また、ノードＡは、上記確認要求に含まれるノード情報（ノードＢを示すノード情報）を、オリジナルデータ１１３のデータ名称と対応付けて複製先ノードリスト１１１に保存する。
【００４６】
ノードＢは、ノードＡからの上記確認ＯＫに基づいて、ノードＡから取得した複製データ１２１をＬＡＮ１００上に公開する。この際、複製データ１２１のデータスタータスを「確認済み」に設定する。上記複製データ１２１の公開手段としては、ＰｔｏＰ、ファイルサーバを用いた共有技術、ファイル共有技術などの周知技術が利用される。
【００４７】
また、ノードＣがネットワーク検索を行い、オリジナルデータ１１３の複製データ１２１がノードＢにあることを見つけるとする。この場合、ノードＣは、ノードＢに対して複製要求を送信する（１５５）。ノードＢは、ノードＣからの複製要求に基づいて、要求された複製データ１２１を保持していることを確認し、ノードＣに複製データ１２１を送信する（１５６）。
【００４８】
ノードＣは、ノードＢから受信した複製データ１２１を複製データ１３１として取得する。そして、ノードＣは、上記複製データ１３１（１２１）に含まれるノード情報が示すノードすなわちノードＡに対して、複製データ１３１がオリジナルデータ１１３に一致するデータであることを確認するための確認要求を送信する（１５７）。この確認要求には、上記複製データ１３１のデータ情報とノードＣを示すノード情報が含まれる。ノードＡは、上記確認要求に基づいて、複製データ１３１がオリジナルデータ１１３と一致するデータであるか否かを確認する。そして、ノードＡは、上記複製データ１３１がオリジナルデータ１１３と一致するデータであることを確認すると、確認ＯＫをノードＣに返す（１５８）。また、ノードＡは、上記確認要求に含まれるノード情報（ノードＣ）を対応するオリジナルデータ１１３のデータ名称と対応付けて、複製先ノードリスト１１１に保存する。
【００４９】
ノードＣは、上記確認ＯＫに基づいて、ノードＢから取得した複製データ１３１をＬＡＮ１００上に公開する。この際、複製データ１３１のデータスタータスは、「確認済み」に設定される。
【００５０】
また、ノードＤがネットワーク検索を行い、オリジナルデータ１１３の複製データ１３１がノードＣにあることを見つけるとする。この場合、ノードＤは、ノードＣの場合と同様に、複製要求をノードＣに送信する（１５９）。ノードＣは、上記複製要求により要求された複製データ１３１をノードＤに送信する（１６０）。ノードＤは、複製データ１３１を複製データ１４１として取得する。そして、ノードＤは、複製データ１４１のノード情報が示すノードＡに対して、確認要求を送信する（１６１）。
【００５１】
ノードＡは、上記確認要求に基づいて、複製データ１４１がオリジナルデータ１１３と一致するデータであるか否かを確認し、両者が一致すれば、確認ＯＫをノードＤに返す（１６２）。そして、ノードＡは、ノードＤを示すノード情報をオリジナルデータ１１３のデータ名称と対応付けて複製先ノードリスト１１１に保存する。
【００５２】
ノードＤは、上記確認ＯＫに基づいて、ノードＣから取得した複製データ１４１をＬＡＮ１００上に公開する。この際、複製データ１４１のデータスタータスは、「確認済み」に設定される。
【００５３】
次に、ノードＡ（オリジナルノード）が他のノードＢ，Ｃ，Ｄから送信された複製要求および複製要求に伴う確認要求を受信した際の動作について図６を参照しながら説明する。図６はノードＡが他のノードＢ，Ｃ，Ｄから送信された要求コマンドとして複製要求および複製要求に伴う確認要求を受信した際の動作の手順を示すフローチャートである。図６のフローチャートで示す手順は、ノードＡのＣＰＵ２０１によりＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って実行されるものである。
【００５４】
ノードＡが他のノードＢ〜Ｄから送信された要求コマンドを受信すると、図６に示すように、ノードＡのＣＰＵ２０１は、受信した要求コマンドを解析し、当該要求コマンドが複製要求であるか否かを判定する（ステップＳ４０１）。ここで、上記受信した要求コマンドが複製要求である場合、ＣＰＵ２０１は、当該複製要求により要求されたオリジナルデータの複製データを保持しているか否かを判定する（ステップＳ４０２）。
【００５５】
上記ステップＳ４０２において上記複製データを保持していないと判定された場合、ＣＰＵ２０１は、要求された複製データのオリジナルデータを保持しているか否かを判定する（ステップＳ４０３）。ここで、要求された複製データのオリジナルデータが保持されている場合、ＣＰＵ２０１は、要求された複製データのオリジナルデータを複製し、その複製データを生成し、保持する（ステップＳ４０４）。この際、生成された複製データには、ノード情報３０１およびデータ情報３０２が付加される（図４を参照）。また、上記複製データには、データステータス３０３が付加される。ここでは、データステータスタス３０３は、オリジナルに設定される。次いで、ＣＰＵ２０１は、上記生成された複製データを、複製要求元のノードに送信する（ステップＳ４０５）。そして、ＣＰＵ２０１は、本処理を終了する。
【００５６】
上記ステップＳ４０３において要求された複製データのオリジナルデータが保持されていないと判定された場合、ＣＰＵ２０１は、上記複製要求に対する応答して、複製要求ＮＧ（複製要求拒否）を複製要求元のノードに送信する（ステップＳ４０６）。そして、ＣＰＵ２０１は、本処理を終了する。
【００５７】
上記ステップＳ４０２において上記複製データがあると判定された場合、ＣＰＵ２０１は、上記複製要求に対する肯定応答として、要求された複製データを複製要求元のノードに送信する（ステップＳ４０５）。そして、ＣＰＵ２０１は、本処理を終了する。
【００５８】
上記ステップＳ４０１において受信した要求コマンドが複製要求でないと判定された場合、ＣＰＵ２０１は、受信した要求コマンドが確認要求であるか否かを判定する（ステップＳ４０７）。ここで、受信した確認要求は、複製要求元のノード（ノードＡまたはノードＡ以外のノードから複製データを取得したノード）から、ノードＡに対して送信されたものである。ここで、受信した要求コマンドが確認要求である場合、ＣＰＵ２０１は、当該ノードにより取得された複製データがノードＡに保持されるオリジナルデータと一致するデータであるかを確認するためのデータ確認処理を行う（ステップＳ４０８）。このデータ確認処理の詳細は、図７を用いて後述する。そして、ＣＰＵ２０１は、本処理を終了する。
【００５９】
上記ステップＳ４０７において受信した要求コマンドが確認要求でないと判定された場合、ＣＰＵ２０１は、本処理を終了する。
【００６０】
ここで、複製要求元のノードＢ〜Ｄが、ノードＡ（オリジナルノード）以外のノードＢ〜Ｄに保持されている複製データを取得する場合、この複製要求元のノードから複製要求を受けたノードＡ以外のノードは、上記複製要求に伴う確認要求を受けることはない。
【００６１】
複製要求元のノードＢ〜Ｄからの複製要求を受けたノードＡ（オリジナルノード）以外のノードＢ〜Ｄの場合、当該ノードＢ〜Ｄは、以下の処理を実行することになる。即ち、上記複製要求を受信すると（ステップＳ４０１）、複製が要求された複製データを保持しているか否かの判定が行われる（ステップＳ４０２）。そして、複製が要求された複製データが保持されていれば、当該複製データが複製要求元のノードに送信される（ステップＳ４０５）。これに対し、複製が要求された複製データが保持されていなければ、複製要求ＮＧが、複製要求元のノードに送信される（ステップＳ４０６）。
【００６２】
次に、ノードＡ（オリジナルノード）による上記ステップＳ４０８のデータ確認処理について図７を参照しながら説明する。図７は図６のステップＳ４０８のデータ確認処理の手順を示すフローチャートである。
【００６３】
確認要求を受信すると、ＣＰＵ２０１は、図７に示すデータ確認処理を開始する。まず、ＣＰＵ２０１は、複製要求元のノードが取得した複製データとノードＡに保持されているオリジナルデータが一致するか否かを判定する（ステップＳ５０１）。ここでは、上記確認要求に含まれるデータ情報（取得した複製データに含まれるデータ情報）とオリジナルノードに保持されているオリジナルデータの複製データに含まれるデータ情報とが比較される。そして、両者のデータ情報が一致すれば、上記複製要求元のノードが取得した複製データと上記オリジナルデータが一致すると判定される。また、例えばオリジナルデータが更新されている場合などは、両者のデータ情報が一致せず、上記複製要求元のノードが取得した複製データと上記オリジナルデータが一致しないと判定される。また、オリジナルデータが削除されている（保持されていない）場合なども、同様に、上記複製要求元のノードが取得した複製データとオリジナルデータが一致しないと判定される。
【００６４】
上記ステップＳ５０１において上記複製データと上記オリジナルデータが一致すると判定された場合、ＣＰＵ２０１は、上記確認要求に含まれるノード情報を、オリジナルデータのデータ名称と対応付けて複製先ノードリスト１１１に保存する（ステップＳ５０２）。そして、ＣＰＵ２０１は、上記データ確認処理の確認結果として、確認ＯＫを、確認要求元のノード（複製要求元のノード）に送信し（ステップＳ５０３）、本処理を抜ける。
【００６５】
上記ステップＳ５０１において上記複製データと上記オリジナルデータが一致しないと判定された場合、ＣＰＵ２０１は、上記データ確認処理の確認結果として、データ確認ＮＧを確認要求元のノード（複製要求元のノード）に送信する（ステップＳ５０４）。そして、ＣＰＵ２０１は、本処理を抜ける。
【００６６】
次に、ノードＢ〜Ｄによる複製要求処理について図８を参照しながら説明する。図８はノードＢ〜Ｄによる複製要求処理の手順を示すフローチャートである。図８のフローチャートで示す手順は、ノードＢ〜ＤのＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【００６７】
ノードＢ〜Ｄが複製要求を行う場合、図８に示すように、当該ノードＢ〜ＤのＣＰＵ２０１は、オリジナルデータまたは複製データを保持するノードに対して、複製要求を送信する（ステップＳ７０１）。この複製要求を受けたノードは、当該複製要求に対する応答として、複製データ（肯定応答）または複製要求ＮＧ（否定応答）を複製要求元のノードに返す。そして、ＣＰＵ２０１は、上記複製要求に対して複製要求先のノードから返された応答を受信するのを待つ（ステップＳ７０２）。ここで、複製要求先のノードから返された応答を受信すると、ＣＰＵ２０１は、受信した応答が複製要求ＮＧであるか複製データであるかを判別する（ステップＳ７０３）。
【００６８】
ここで、上記ステップＳ７０３において上記受信した応答が複製要求ＮＧであると判別された場合、ＣＰＵ２０１は、データ取得失敗処理を実行する（ステップＳ７１０）。このデータ取得失敗処理においては、複製要求が拒否されたこと（要求した複製データの取得が失敗したこと）を示すメッセージがディスプレイ２０８に表示される。そして、ＣＰＵ２０１は、本処理を終了する。
【００６９】
上記ステップＳ７０３において上記受信した応答が複製データであると判別された場合、ＣＰＵ２０１は、上記複製データに、オリジナルノードを示すノード情報が付加されているか否かを判定する（ステップＳ７０４）。ここで、上記オリジナルノードを示すノード情報が付加されていれば、ＣＰＵ２０１は、確認要求を、上記ノード情報が示すオリジナルノードに送信する（ステップＳ７０５）。上記確認要求を受けたオリジナルノード（ノードＡ）は、当該確認要求に基づいて上述したデータ確認処理（図６のステップＳ４０８）を行い、このデータ確認処理の結果を示す応答（確認ＯＫまたは確認ＮＧ）を確認要求元のノードに返す。そして、ＣＰＵ２０１は、上記確認要求に対してオリジナルノードから返された応答を受信するのを待つ（ステップＳ７０６）。
【００７０】
上記ステップＳ７０６において上記オリジナルノードから返された応答を受信すると、ＣＰＵ２０１は、受信した応答が確認ＯＫであるか確認ＮＧであるかを判別する（ステップＳ７０７）。ここで、受信した応答が確認ＯＫである場合、ＣＰＵ２０１は、データ取得成功処理を実行する（ステップＳ７０８）。このデータ取得成功処理においては、受信した複製データがＬＡＮ１００上に公開可能に保持されるとともに、当該複製データに付加されているデータステータス３０３が「確認済み」に設定される。また、複製要求により要求した複製データの取得成功を示すメッセージがディスプレイ２０８に表示される。そして、ＣＰＵ２０１は、本処理を終了する。
【００７１】
上記ステップＳ７０７において上記受信した応答が確認ＮＧであると判別された場合、ＣＰＵ２０１は、受信した複製データを削除する（ステップＳ７０９）。次いで、ＣＰＵ２０１は、データ取得失敗処理を実行し、要求した複製データの取得が失敗したこと（または複製要求が拒否されたこと）を示すメッセージをディスプレイ２０８に表示する（ステップＳ７１０）。そして、ＣＰＵ２０１は、本処理を終了する。
【００７２】
このように、複製データには、オリジナルノードを示すノード情報が付加されているので、当該複製データを取得したノードは、オリジナルノードに対して、取得した複製データがオリジナルデータに一致するデータであるか否かを確認することができる。その結果、複製データを取得したノードは、オリジナルデータと一致すると確認された複製データのみを、ＬＡＮ１００上に公開することができる。また、オリジナルノードは、確認要求に含まれるノード情報（複製先ノードリスト１１１）を用いて、オリジナルデータの複製データを保持するノードを管理することができる。
【００７３】
次に、ノードＡ（オリジナルノード）においてオリジナルデータが更新された場合について図９を参照しながら説明する。図９はノードＡにおいてオリジナルデータが更新された場合のノードＡと各ノードＢ〜Ｄ間でやり取りされる更新要求とその応答を模式的に示す図である。
【００７４】
ノードＡにおいて、例えばオリジナルデータ９１３がｖｅｒ．１（version１）からｖｅｒ．２に更新されると、ｖｅｒ．２に更新されたオリジナルデータ９１３の複製データ９１２が作成される。そして、複製先ノードリスト１１１において、オリジナルデータ９１３の複製データの複製先として登録されているノードのノードステータスが未更新に書き換えらえる。ここでは、オリジナルデータ９１３の複製データを保持するノードが、ノードＢ〜Ｄであるとし、これらのノードＢ〜Ｄが複製先ノードリスト１１１に登録されているとする。
【００７５】
次いで、ノードＡは、複製先ノードリスト１１１を参照して、オリジナルデータ９１３の複製データを保持するノードＢ〜Ｄのうち、最初のノードＢに対して、その複製データの更新を要求するための更新要求を送信する（９５１）。この更新要求には、ｖｅｒ．２に更新されたオリジナルデータ９１３の複製データ９１２が含まれる。
【００７６】
上記更新要求を受信したノードＢは、当該ノードＢに保持されている複製データ９２１を、受信した更新要求に含まれる複製データ（ｖｅｒ．２の複製データ)に書き換える、すなわち更新する。そして、ノードＢは、更新ＯＫをノードＡに送信する（９５２）。ノードＡは、ノードＢからの更新ＯＫを受信すると、複製先ノードリスト１１１における対応するデータ名称に対応付けられているノードＢのノードステータスを「更新済み」に書き換える。
【００７７】
次いで、ノードＡは、ノードＢの場合と同様に、次のノードＣに対して更新要求を送信する（９５３）。上記更新要求を受信したノードＣは、当該ノードＣに保持されている複製データ９３１を、受信した更新要求に含まれる複製データ（ｖｅｒ．２の複製データ)に書き換える。そして、ノードＣは、更新ＯＫをノードＡに送信する（９５４）。ノードＡは、ノードＣからの更新ＯＫを受信すると、複製先ノードリスト１１１における対応するデータ名称に対応付けられているノードＣのノードステータスを「更新済み」に書き換える。
【００７８】
次いで、ノードＡは、ノードＢの場合と同様に、次のノードＤに対して更新要求を送信する（９５６）。このとき、ノードＤは、既に、上記更新要求を受信する前に電源オフなどにより、ＬＡＮ１００と接続されていない状態にあるとする。この場合、ノードＤは、上記ノードＡからの更新要求を受信することはなく、当該更新要求に対する応答をノードＡに返すことはない。よって、ノードＡは、上記ノードＤからの応答がないので、複製先ノードリスト１１１のノードＤのノードステータスを「未更新」として保持し続ける。また、ノードＤは、ＬＡＮ１００に接続するまで、旧いバージョン（ｖｅｒ．１）の複製データ９４１を保持し続けることになる。しかし、ノードＤは、ＬＡＮ１００に接続されていないので、ノードＤに保持されている、旧いバージョン（ｖｅｒ．１）の複製データ９４１がＬＡＮ１００上に拡散することはない。
【００７９】
次に、ノードＡがオリジナルデータを更新した場合に他のノードＢ〜Ｄに保持されている複製データを更新するための更新処理について図１０を参照しながら説明する。図１０はノードＡがオリジナルデータを更新した場合に他のノードＢ〜Ｄに保持されている複製データを更新するための更新処理の手順を示すフローチャートである。図１０のフローチャートで示す手順は、ノードＡ（オリジナルノード）のＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【００８０】
ノードＡに保持されているオリジナルデータが更新されると、図１０に示すように、ノードＡのＣＰＵ２０１は、更新前のオリジナルデータの複製データを保持する全てのノードのノードステータスを未更新に設定する（ステップＳ１００１）。具体的には、複製先ノードリスト１１１を参照して、更新前のオリジナルデータの複製データを保持する全てのノードが特定され、当該特定された全てのノードのノードステータスが未更新に設定される。次いで、ＣＰＵ２０１は、特定された全てのノードのノード情報（ｉ）（ｉ≧０）をリスト化した特定ノード情報リストを作成する（ステップＳ１００２）。そして、ＣＰＵ２０１は、上記特定ノード情報リストからノード情報（ｉ）を取得するための変数ｉを０に初期化する（ステップＳ１００３）。
【００８１】
次いで、ＣＰＵ２０１は、上記特定ノード情報リストにおけるノード情報（ｉ）の有無を判定する（ステップＳ１００４）。ここで、上記ノード情報（ｉ）があれば、ＣＰＵ２０１は、上記ノード情報（ｉ）が示すノード（ｉ）に対して更新要求処理を行う（ステップＳ１００５）。この更新要求処理の詳細は、図１１を用いて後述する。そして、ＣＰＵ２０１は、変数ｉを１インクリメントし（ステップＳ１００６）、上記ステップＳ１００４に戻る。
【００８２】
上記ステップＳ１００４において上記ノード情報（ｉ）がないと判定された場合、ＣＰＵ２０１は、複製先ノードリスト１１１の上記特定された全てのノードの中に、ノードステータスが未更新のノードがあるか否かを判定する（ステップＳ１００７）。ここで、上記未更新のノードステータスのノードがなければ、ＣＰＵ２０１は、複製先ノードリスト１１１の上記特定された全てのノードのノードステータスをクリアする（ステップＳ１００８）。ここでは、上記特定された全てのノードのノードステータスが更新済みに書き換えられているので、これがクリアされる。そして、ＣＰＵ２０１は、本処理を終了する。
【００８３】
上記ステップＳ１００７において上記ノードステータスが未更新のノードがあると判定された場合、ＣＰＵ２０１は、複製データの更新が完了していないノードがある旨を示すメッセージをディスプレイ２０８に表示する（ステップＳ１００９）。そして、ＣＰＵ２０１は、本処理を終了する。
【００８４】
次に、上記ステップＳ１００５のノード（ｉ）に対する更新要求処理の詳細について図１１を参照しながら説明する。図１１は図１０のステップＳ１００５のノード（ｉ）に対する更新要求処理の手順を示すフローチャートである。
【００８５】
上記更新要求処理においては、図１１に示すように、まず、ＣＰＵ２０１が、ノード情報（ｉ）が示すノード（ｉ）に対して、更新要求を送信する（ステップＳ１１０１）。この更新要求には、更新する複製データを指定するためのデータ情報と更新されたオリジナルデータの複製データが含まれる。
【００８６】
次いで、ＣＰＵ２０１は、上記ノード（ｉ）から更新要求の応答として返された、複製データの更新の成功を示す更新ＯＫを受信したか否かを判定する（ステップＳ１１０２）。ここで、上記ノード（ｉ）からの更新ＯＫを受信していなければ、ＣＰＵ２０１は、更新要求の送信回数が所定回数を超えたか否かを判定する（ステップＳ１１０３）。ここで、更新要求の送信回数が所定回数を超えていない場合、ＣＰＵ２０１は、上記ステップＳ１１０２に戻り、再度、更新要求を送信する。これに対し、更新要求の送信回数が所定回数を超えている場合、ＣＰＵ２０１は、上記ノード（ｉ）からの更新ＯＫの応答がなく、上記ノード（ｉ）において複製データの更新が失敗したと判断して、本処理を抜ける。
【００８７】
上記ステップＳ１１０２において上記ノード（ｉ）からの更新ＯＫを受信したと判定された場合、ＣＰＵ２０１は、複製先リスト１１１における上記ノード（ｉ）のノードステータスを更新済みに書き換える（ステップＳ１１０４）。そして、ＣＰＵ２０１は、本処理を抜ける。
【００８８】
このように、上記ノード（ｉ）からの更新ＮＧを受信した場合または応答を受信しない場合は、上記ノード（ｉ）からの更新ＯＫを受信するまで、更新要求の送信が所定回数繰り返される。そして、上記更新ＯＫを受信すると、即ち上記ノード（ｉ）において複製データの更新が成功すると、複製先リスト１１１における上記ノード（ｉ）のノードステータスが更新済みに書き換えられることになる。
【００８９】
次に、ノードＢ〜Ｄが更新要求により要求された複製データを更新する処理について図１２を参照しながら説明する。図１２はノードＢ〜Ｄが更新要求により要求された複製データを更新する処理の手順を示すフローチャートである。図１２のフローチャートで示す手順は、ノードＢ〜ＤのＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【００９０】
ノードＢ〜ＤがノードＡ（オリジナルノード）からの更新要求を受信すると、図１２に示すように、ノードＢ〜ＤのＣＰＵ２０１は、上記受信した更新要求に含まれるデータ情報を抽出する（ステップＳ１２０１）。そして、ＣＰＵ２０１は、上記抽出されたデータ情報により特定された複製データが保持されているか否かを判定する（ステップＳ１２０２）。ここで、上記指定された複製データが保持されている場合、ＣＰＵ２０１は、上記保持されている複製データを、上記更新要求に含まれている複製データへ書き換えるための更新処理を行う（ステップＳ１２０３）。
【００９１】
次いで、ＣＰＵ２０１は、上記更新処理が成功したか否かを判定する（ステップＳ１２０４）。ここで、上記更新処理が成功した場合、ＣＰＵ２０１は、更新要求元のノード即ちオリジナルノードに対して更新ＯＫを送信する（ステップＳ１２０５）。そして、ＣＰＵ２０１は、本処理を終了する。
【００９２】
上記ステップＳ１２０４において更新処理が成功しなかったと判定された場合、ＣＰＵ２０１は、ノードＡ（オリジナルノード）に対して更新ＮＧを送信する（ステップＳ１２０６）。そして、ＣＰＵ２０１は、本処理を終了する。
【００９３】
上記ステップＳ１２０２において上記指定された複製データが保持されていないと判定された場合、ＣＰＵ２０１は、上記ステップＳ１２０３，１２０４をスキップして、更新ＯＫを送信する（ステップＳ１２０５）。更新要求先のノードには、更新すべき複製データは保持されていないが、更新ＯＫをノードＡ（オリジナルノード）に返すことによって、ノードＡが更新要求の送信を無駄に繰り返すことを阻止することができる。
【００９４】
次に、ノードＡにおいてオリジナルデータが削除された場合について図１３を参照しながら説明する。図１３はノードＡにおいてオリジナルデータが削除された場合のノードＡと各ノードＢ〜Ｄ間でやり取りされる削除要求とその応答を模式的に示す図である。
【００９５】
図１３に示すように、オリジナルデータ１３１３を保持するノードＡ（オリジナルノード）において、オリジナルデータ１３１３が削除されると、オリジナルデータ１３１３の複製データ１３１２が削除される。ここで、削除したオリジナルデータ１３１３の複製データ１３１２を保持する複製先のノードは、ノードＢ〜Ｄであるとする。次いで、ノードＡは、複製先ノードリスト１１１を参照して、削除したオリジナルデータ１３１３の複製データ１３１２を保持する複製先のノードとして、ノードＢ〜Ｄを特定する。そして、ノードＡは、複製先ノードリスト１１１における、各ノードＢ〜Ｄのノードステータスを未削除に書き換える。
【００９６】
次いで、ノードＡは、上記複製先のノードＢ〜Ｄの全てに対して、それぞれに保持されている複製データの削除を要求するための削除要求を送信する（１３５１，１３５３，１３５６）。この削除要求には、削除する複製データを指定するためのデータ情報が含まれる。
【００９７】
例えばノードＢ，Ｃは、上記削除要求を受信すると、ノードＢ，Ｃに保持されている複製データ１３２１，１３３１を削除し、上記削除要求に対する応答として、削除ＯＫをノードＡに返す（１３５２，１３５４）。ノードＡは、ノードＢ，Ｃからの削除ＯＫを受信すると、複製先ノードリスト１１１における対応するデータ名称のノードＢ，Ｃのノードステータスを「削除済み」に書き換える。
【００９８】
ノードＤは、削除要求を受信する前に電源オフなどによりＬＡＮ１００と接続されていない状態にある。よって、ノードＤは、上記削除要求を受信することはないので、当該削除要求に対する応答をノードＡに返すことはない（１３５７）。この場合、ノードＤには、複製データ１３４１が削除されることなく、保持され続ける。しかし、ノードＡはＬＡＮ１００と接続されていないので、複製データ１３４１がネットワークに拡散することはない。ノードＡは、ノードＤから削除要求に対する応答を受信することはないので、複製先ノードリスト１１１におけるノードＤのノードステータスを書き換えることなく、「未削除」の状態に保持する。
【００９９】
次に、ノードＡにおいてオリジナルデータが削除された場合に他のノードＢ〜Ｄに保持されている複製データ（上記削除されたオリジナルデータの複製データ）を削除するための削除処理について図１４を参照しながら説明する。図１４はノードＡにおいてオリジナルデータが削除された場合に他のノードＢ〜Ｄに保持されている複製データ（上記削除されたオリジナルデータの複製データ）を削除するための削除処理の手順を示すフローチャートである。図１４のフローチャートで示す手順は、ノードＡ（オリジナルノード）のＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【０１００】
ノードＡにおいてオリジナルデータ１３１３が削除されると、図１４に示すように、ＣＰＵ２０１は、削除されたオリジナルデータの複製データを保持する全てのノードのノードステータスを未削除に設定する（ステップＳ１４０１）。具体的には、複製先ノードリスト１１１を参照して、削除されたオリジナルデータの複製データを保持する全てのノードが特定され、当該特定された全てのノードのノードステータスが「未削除」に設定される。次いで、ＣＰＵ２０１は、特定された全てのノードのノード情報（ｉ）（ｉ≧０）をリスト化した特定ノード情報リストを作成する（ステップＳ１４０２）。そして、ＣＰＵ２０１は、上記特定ノード情報リストからノード情報（ｉ）を取得するための変数ｉを「０」に初期化する（ステップＳ１４０３）。
【０１０１】
次いで、ＣＰＵ２０１は、上記特定ノード情報リストにアクセスし、ノード情報（ｉ）の有無を判定する（ステップＳ１４０４）。ここで、上記ノード情報（ｉ）があれば、ＣＰＵ２０１は、上記ノード情報（ｉ）が示すノード（ｉ）に対して削除要求処理を行う（ステップＳ１４０５）。この削除要求処理の詳細は、図１５を用いて後述する。そして、ＣＰＵ２０１は、変数ｉを１インクリメントし（ステップＳ１４０６）、上記ステップＳ１４０４に戻る。
【０１０２】
上記ステップＳ１４０４において上記ノード情報（ｉ）がないと判定された場合、ＣＰＵ２０１は、複製先ノードリスト１１１の上記特定された全てのノードの中に、ノードステータスが「未削除」のノードがあるか否かを判定する（ステップＳ１４０７）。ここで、上記ノードステータスが「未削除」のノードがなければ、ＣＰＵ２０１は、複製先ノードリスト１１１の今回削除されたオリジナルデータに関連する情報を削除する。（ステップＳ１４０８）。すなわち、今回削除されたオリジナルデータのデータ名称、ノード情報、ノードステータスが削除される。そして、ＣＰＵ２０１は、本処理を終了する。
【０１０３】
上記ステップＳ１４０７において上記ノードステータスが「未削除」のノードがあると判定された場合、ＣＰＵ２０１は、複製データの削除が完了していないノードがある旨を示すメッセージをディスプレイ２０８に表示する（ステップＳ１４０９）。そして、ＣＰＵ２０１は、本処理を終了する。
【０１０４】
次に、上記ステップＳ１４０５のノード（ｉ）に対する削除要求処理の詳細について図１５を参照しながら説明する。図１５は図１４のステップＳ１４０５のノード（ｉ）に対する削除要求処理の手順を示すフローチャートである。
【０１０５】
上記削除要求処理においては、図１５に示すように、まず、ＣＰＵ２０１が、ノード情報（ｉ）が示す複製先のノード（ｉ）に対して、削除要求を送信する（ステップＳ１５０１）。この削除要求には、削除する複製データを指定するためのデータ情報が含まれる。
【０１０６】
次いで、ＣＰＵ２０１は、上記複製先のノード（ｉ）から削除要求の応答として返された削除ＯＫを、上記削除要求の送信から所定時間内に受信したか否かを判定する（ステップＳ１５０２）。ここで、上記ノード（ｉ）からの削除ＯＫを所定時間内に受信しない場合は、上記ノード（ｉ）から上記削除要求の応答として返された削除ＮＧを受信した場合、上記ノード（ｉ）が削除要求に応答しない場合を含む。削除ＮＧは、複製データの削除の不成功を示す応答である。
【０１０７】
上記複製先のノード（ｉ）からの削除ＯＫを所定時間内に受信しない場合、ＣＰＵ２０１は、削除要求の送信回数が所定回数を超えたか否かを判定する（ステップＳ１５０３）。ここで、削除要求の送信回数が所定回数を超えた場合、ＣＰＵ２０１は、本処理を抜ける。これに対し、削除要求の送信回数が所定回数を超えていない場合、ＣＰＵ２０１は、上記ステップＳ１５０１に戻り、再度、削除要求を送信する。
【０１０８】
上記ステップＳ１５０２において上記ノード（ｉ）からの削除ＯＫを所定時間内に受信すると、ＣＰＵ２０１は、複製先ノードリスト１１１における上記ノード（ｉ）のノードステータスを「削除済み」に書き換える（ステップＳ１５０４）。そして、ＣＰＵ２０１は、本処理を抜ける。
【０１０９】
このように、上記ノード（ｉ）からの削除ＯＫを受信した場合、即ち上記ノード（ｉ）において複製データの削除が成功した場合に、複製先ノードリスト１１１における上記ノード（ｉ）のノードステータスが「削除済み」に書き換えられることになる。
【０１１０】
次に、ノードＢ〜Ｄ（複製先のノード）が削除要求により要求された複製データを削除する処理について図１６を参照しながら説明する。図１６はノードＢ〜Ｄ（複製先のノード）が削除要求により要求された複製データを削除する処理の手順を示すフローチャートである。図１６のフローチャートで示す手順は、ノードＢ〜ＤのＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【０１１１】
ノードＢ〜Ｄ（複製先のノード）がノードＡ（オリジナルノード）からの削除要求を受信すると、図１６に示すように、ノードＢ〜ＤのＣＰＵ２０１は、受信した削除要求から削除する複製データを指定するデータ情報を抽出する（ステップＳ１６０１）。そして、ＣＰＵ２０１は、上記抽出されたデータ情報により指定された複製データが保持されているか否かを判定する（ステップＳ１６０２）。ここで、上記指定された複製データが保持されている場合、ＣＰＵ２０１は、上記保持されている複製データを削除するための削除処理を行う（ステップＳ１６０３）。
【０１１２】
次いで、ＣＰＵ２０１は、上記複製データの削除が成功したか否かを判定する（ステップＳ１６０４）。ここで、上記複製データの削除が成功した場合、ＣＰＵ２０１は、削除要求元のノード即ちノードＡに対して削除ＯＫを送信する（ステップＳ１６０５）。そして、ＣＰＵ２０１は、本処理を終了する。
【０１１３】
上記ステップＳ１６０４において複製データの削除が成功しなかったと判定された場合、ＣＰＵ２０１は、削除ＮＧをノードＡに送信する（ステップＳ１６０６）。そして、ＣＰＵ２０１は、本処理を終了する。
【０１１４】
上記ステップＳ１６０２において上記指定された複製データが保持されていないと判定された場合、ＣＰＵ２０１は、上記ステップＳ１６０３，１６０４をスキップして、削除ＯＫをノードＡに送信する（ステップＳ１６０５）。ノードＡには、削除すべき複製データは保持されていないが、削除ＯＫをノードＡに返すことによって、ノードＡが削除要求の送信を無駄に繰り返すことを阻止することができる。
【０１１５】
次に、更新すべき複製データを保持する、ＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続する場合について図１７を参照しながら説明する。図１７は更新すべき複製データ９４１を保持する、ＬＡＮ１００と接続されていない状態のノードＤが再度ＬＡＮ１００と接続する場合のノードＤとノードＡ間でやり取りされる要求とその応答を模式的に示す図である。
【０１１６】
ここでは、図１７に示すように、ノードＢ，Ｃには、既に、ノードＡ（オリジナルノード）からの更新要求に応じて、ノードＡにおいて更新されたオリジナルデータ（ｖｅｒ．２）の複製データ（ｖｅｒ．２）９２１，９３１が保持されているものとする。また、ノードＤは、複製データ（ｖｅｒ．１）９４１を更新する前にＬＡＮ９００との接続を切断し、更新前の複製データ（ｖｅｒ．１）９４１を保持しているものとする。また、ノードＡの複製先ノードリスト１１１において、複製データ（ｖｅｒ．２）９２１，９３１を保持するノードＢ，Ｃに関するノードステータスは「更新済み」に、ノードＤのノードステータスは「未更新」にそれぞれ設定されているものとする。
【０１１７】
ノードＤが電源オンなどによりＬＡＮ９００と接続されると、ノードＤ（第２の確認要求元のノード）は、上記複製データ（ｖｅｒ．１）９４１が更新または削除すべきデータであるか否かを確認するための処理を開始する。まず、ノードＤは、複製データ９４１のデータステータス３０３を「未確認」に設定し、確認要求（第２の確認要求）をノードＡに送信する（１７５１）。上記確認要求には、確認を要求する複製データ９４１を指定するためのデータ情報とノードＤ（第２の確認要求元のノード）を示すノード情報が含まれる。
【０１１８】
ノードＡは、ノードＤからの確認要求を受信すると、複製先ノードリスト１１１を参照し、ノードＤの上記複製データに対するノードステータスが「未更新」または「未削除」であるか否かを確認する（第２のデータ確認処理）。ここでは、ノードＡは、複製先ノードリスト１１１における対応するオリジナルデータに対応付けられているノードＤのノードステータスが「未更新」であることを確認し、更新要求をノードＤに送信する（１７５２）。
【０１１９】
ノードＤは、上記更新要求を受信すると、複製データ（ｖｅｒ．１）９４１を、更新されたオリジナルデータ（ｖｅｒ．２）９１３の複製データ（ｖｅｒ．２）９１２に更新する。そして、ノードＤは、上記複製データの更新が成功すると、上記更新要求に対する応答として、更新ＯＫをノードＡに返す（１７５３）。この更新ＯＫを受けたノードＡは、複製先ノードリスト１１１のノードＤのノードステータスを「更新済み」に書き換える。
【０１２０】
ノードＤは、上記更新ＯＫの応答後、複製データ９４１のデータステータス３０３を「確認済み」に設定する。これにより、ノードＤは、データ共有システムに参加するノードの１つになり、当該ノードＤに保持されている複製データは、他のノードに対して公開される。
【０１２１】
次に、削除すべき複製データを保持する、ＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続する場合について図１８を参照しながら説明する。図１８は削除すべき複製データ１３４１を保持する、ＬＡＮ１００と接続されていない状態のノードＤが再度ＬＡＮ１００と接続する場合のノードＤとノードＡ間でやり取りされる要求とその応答を模式的に示す図である。
【０１２２】
ここでは、図１８に示すように、ノードＢ，Ｃにおいては、既に、ノードＡ（オリジナルノード）からの削除要求に応じて、対応する複製データ（ｖｅｒ．２）１３２１，１３３１が削除されているものとする。また、ノードＤは、上記削除要求により複製データ１３４１を削除する前に、ＬＡＮ９００との接続を切断し、削除が要求された複製データ１３４１を保持するものとする。また、ノードＡの複製先ノードリスト１１１において、ノードＢ，Ｃに関するノードステータスは「削除済み」に、複製データ１３４１を保持するノードＤのノードステータスは「未削除」にそれぞれ設定されているものとする。
【０１２３】
ノードＤが電源オンなどによりＬＡＮ９００と接続されると、ノードＤは、上記複製データ（ｖｅｒ．１）１３４１が更新または削除すべきデータであるか否かを確認するための処理を開始する。まず、ノードＤ（第２の確認要求元のノード）は、複製データ１３４１におけるデータステータス３０３を「未確認」に設定し、確認要求（第２の確認要求）を、ノードＡに送信する（１８５１）。上記確認要求には、確認を要求する複製データ１３４１を指定するためのデータ情報とノードＤ（第２の確認要求元のノード）を示すノード情報が含まれる。
【０１２４】
ノードＡは、ノードＤからの上記確認要求を受信すると、複製先ノードリスト１１１を参照し、ノードＤの複製データに対するノードステータスが「未更新」または「未削除」であるか否かを確認する（第２のデータ確認処理）。ここでは、ノードＡは、ノードＤの複製データに対するノードステータスが「未削除」であることを確認し、削除要求をノードＤに送信する（１８５２）。
【０１２５】
ノードＤは、上記削除要求を受信すると、複製データ１３４１を削除する。そして、ノードＤは、上記複製データの削除が成功すると、上記削除要求に対する応答として、削除ＯＫをノードＡに返す（１８５３）。この削除ＯＫを受けたノードＡは、複製先ノードリスト１１１のノードＤのノードステータスを「削除済み」に書き換える。
【０１２６】
ノードＤは、上記削除ＯＫの応答後、データ共有システムの１つのノードとして当該データ共有システムに参加し、ノードＤに保持されている他の複製データは、他のノードに対して公開される。
【０１２７】
次に、図１７または図１８に示すノードＤのように、ＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続し、データ共有システムに参加する場合の処理について図１９および図２０を参照しながら説明する。図１９および図２０はＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続し、データ共有システムに参加する場合の処理の手順を示すフローチャートである。図１９および図２０のフローチャートで示す手順は、ノードＢ〜Ｄ（第２の確認要求元のノード）のＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【０１２８】
ＬＡＮ１００と接続されていない状態のノード（例えばノードＤ）が再度ＬＡＮ１００と接続する場合、図１９に示すように、まず、上記ノードのＣＰＵ２０１が、ＬＡＮ１００の接続に伴うネットワークの初期化を実行する（ステップＳ１９０１）。そして、ＣＰＵ２０１は、上記ノードに保持されている全ての複製データのデータステータスを初期化、即ち「未確認」に設定する（ステップＳ１９０２）。
【０１２９】
次いで、ＣＰＵ２０１は、データステータスが「未確認」の複製データを検索する（ステップＳ１９０３）。そして、ＣＰＵ２０１は、上記検索の結果、データステータスが「未確認」の複製データがあるか否かを判定する（ステップＳ１９０４）。ここで、データステータスが「未確認」の複製データがあると判定された場合、図２０に示すように、ＣＰＵ２０１は、ノードＡ（オリジナルノード）に対して、当該複製データの確認要求（第２の確認要求）を送信する（ステップＳ１９０５）。この確認要求は、上記複製データが正当なデータであるか、更新すべきデータであるかまたは削除すべきデータであるかを確認するための要求コマンドである。
【０１３０】
次いで、ＣＰＵ２０１は、ノードＡから上記確認要求に対して返される確認ＯＫを受信したか否かを判定する（ステップＳ１９０６）。ここで、確認ＯＫを受信すると、ＣＰＵ２０１は、上記複製データのデータステータスを「確認済み」に書き換える（ステップＳ１９１０）。そして、ＣＰＵ２０１は、上記ステップＳ１９０５に戻る。
【０１３１】
上記ステップＳ１９０６において確認ＯＫを受信していないと判定された場合、ノードＡからの更新要求を受信したか否かを判定する（ステップＳ１９０７）。ここで、更新要求を受信すると、ＣＰＵ２０１は、上記複製データを、受信した更新要求に含まれる複製データに書き換えるための更新処理を行う（ステップＳ１９０８）。この更新処理において、上記複製データの更新が成功した場合、更新ＯＫが、上記複製データの更新が失敗した場合、更新ＮＧが、それぞれ、ノードＡに送信される。そして、ＣＰＵ２０１は、上記更新処理が成功したか否かを判定する（ステップＳ１９０９）。ここで、上記更新処理が成功した場合、ＣＰＵ２０１は、上記複製データのデータステータスを「確認済み」に書き換え（ステップＳ１９１０）、上記ステップＳ１９０３に戻る。
【０１３２】
上記ステップＳ１９０７において更新要求を受信していないと判定された場合、ＣＰＵ２０１は、削除要求を受信したか否かを判定する（ステップＳ１９１１）。ここで、削除要求を受信すると、ＣＰＵ２０１は、上記複製データを削除するための削除処理を行う（ステップＳ１９１２）。ここで、上記削除処理が成功した場合、削除ＯＫが、上記削除処理が失敗した場合、削除ＮＧが、それぞれ、ノードＡに送信される。そして、ＣＰＵ２０１は、上記削除処理が成功したか否かを判定する（ステップＳ１９１３）。ここで、上記削除処理が成功した場合、ＣＰＵ２０１は、上記ステップＳ１９０３に戻る。
【０１３３】
上記ステップＳ１９１１において削除要求を受信していないと判定された場合、ＣＰＵ２０１は、確認ＮＧを受信したか否かを判定する（ステップＳ１９１４）。ここで、確認ＮＧを受信すると、ＣＰＵ２０１は、上記複製データを削除する（ステップＳ１９１５）。そして、ＣＰＵ２０１は、上記ステップＳ１９０３に戻る。
【０１３４】
上記ステップＳ１９１４において確認ＮＧを受信していないと判定された場合、ＣＰＵ２０１は、上記確認要求の送信回数が所定回数を超えたか否かを判定する（ステップＳ１９１６）。ここで、上記確認要求の送信回数が所定回数を超えていない場合、ＣＰＵ２０１は、上記ステップＳ１９０５に戻り、再度、確認要求をノードＡに送信する。これに対し、確認要求の送信回数が所定回数を超えた場合、ＣＰＵ２０１は、確認要求による確認結果が得られないと判断して、上記複製データを削除する（ステップＳ１９１５）。そして、ＣＰＵ２０１は、上記ステップＳ１９０３に戻る。
【０１３５】
上記ステップＳ１９０９において上記更新処理が成功しなかったと判定された場合、また上記ステップＳ１９１３において上記削除処理が成功しなかったと判定された場合、ＣＰＵ２０１は、上記ステップＳ１９１６に進む。
【０１３６】
上記ステップＳ１９０４においてデータステータスが「未確認」の複製データがないと判定された場合、ＣＰＵ２０１は、データ共有システムに参加する（ステップＳ１９１７）。そして、ＣＰＵ２０１は、本処理を終了する。
【０１３７】
次に、ＬＡＮ１００と接続されていない状態からＬＡＮ１００と接続した状態に復帰したノードからの確認要求を受信したノードＡ（オリジナルノード）の第２のデータ確認処理について図２１を参照しながら説明する。図２１はＬＡＮ１００と接続されていない状態からＬＡＮ１００と接続した状態に復帰したノードからの確認要求を受信したノードＡ（オリジナルノード）の第２のデータ確認処理の手順を示すフローチャートである。図２１のフローチャートで示す手順は、ノードＡのＣＰＵ２０１により、ＲＯＭ２０２またはＨＤ２１０に格納されているプログラムに従って、実行されるものである。
【０１３８】
ノードＡ（オリジナルノード）がＬＡＮ１００と接続した状態に復帰したノード（第２の確認要求元のノード）から確認要求（第２の確認要求）を受信すると、ノードＡのＣＰＵ２０１は、図２１に示す第２のデータ確認処理（第２の確認処理）を開始する。
【０１３９】
まず、ノードＡのＣＰＵ２０１は、上記確認要求に含まれるデータ情報およびノード情報に基づいて、複製先ノードリスト１１１内の、上記複製データを保持するノードに対応付けられているノードステータスを検索する（ステップＳ２１０１）。そして、ＣＰＵ２０１は、上記検索により、上記複製データを保持するノードのノードステータスが抽出されたか否かを判定する（ステップＳ２１０２）。ここで、上記複製データを保持するノードのノードステータスが抽出されない場合とは、上記複製データを保持する確認要求元のノードが複製先ノードリスト１１１に登録されていない場合である。また、上記確認要求元のノードに上記複製データが保持されていることが登録されていない場合である。このような場合、ＣＰＵ２０１は、上記複製データが正当なデータであるか否かを確認することができず、確認ＮＧを確認要求元のノードに送信する（ステップＳ２１０３）。そして、ＣＰＵ２０１は、本処理を終了する。
【０１４０】
上記ステップＳ２０１２において上記複製データを保持するノードのノードステータスが抽出されたと判定された場合、ＣＰＵ２０１は、上記抽出されたノードステータスを判別する（ステップＳ２１０４）。ここでは、上記ノードステータスが、「更新済み」（またはクリア状態）、「未更新」、「未削除」のいずれであるかの判別が行われる。
【０１４１】
上記ノードステータスが「更新済み」（またはクリア状態）である場合、ＣＰＵ２０１は、上記複製データがオリジナルデータと一致するデータであることを示す確認ＯＫを、当該確認要求元のノードに送信する（ステップＳ２１０５）。そして、ＣＰＵ２０１は、本処理を終了する。
【０１４２】
上記ノードステータスが「未更新」である場合、ＣＰＵ２０１は、上記確認要求元のノードが保持する複製データの更新を要求する更新要求を、当該確認要求元のノードに送信する（ステップＳ２１０６）。この更新要求には、更新されたオリジナルデータの複製データが含まれる。次いで、ＣＰＵ２０１は、上記確認要求元のノードからの更新ＯＫを受信したか否かを判定する（ステップＳ２１０７）。ここで、更新ＯＫを受信すると、ＣＰＵ２０１は、上記複製先ノードリスト１１１の上記確認要求元のノードに対応付けられているノードステータスを「未更新」から「更新済み」に書き換える（ステップＳ２１０８）。そして、ＣＰＵ２０１は、本処理を終了する。これに対し、更新ＯＫを受信しない場合、ＣＰＵ２０１は、本処理を終了する。
【０１４３】
上記ノードステータスが「未削除」である場合、ＣＰＵ２０１は、上記確認要求元のノードが保持する複製データの削除を要求する削除要求を、当該確認要求元のノードに送信する（ステップＳ２１０９）。次いで、ＣＰＵ２０１は、上記確認要求元のノードから上記削除要求に対して返される削除ＯＫを受信したか否かを判定する（ステップＳ２１１０）。ここで、削除ＯＫを受信すると、ＣＰＵ２０１は、上記複製先ノードリスト１１１の上記確認要求元のノードに対応付けられているノードステータスを「未削除」から「削除済み」に書き換える（ステップＳ２１１１）。そして、ＣＰＵ２０１は、本処理を終了する。これに対し、削除ＯＫを受信しない場合、ＣＰＵ２０１は、本処理を終了する。
【０１４４】
このように、ＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続し、データ共有システムに参加する場合、当該ノードに既に保持されている複製データが正当なデータあるか否かの確認要求がオリジナルノードに対して行われる。そして、この確認要求の結果、再度上記データ共有システムに参加するノードが保持する複製データは、全て「確認済み」のデータ即ち正当なデータとされる。よって、再度上記データ共有システムに参加したノードから、正当なデータでない複製データが他のノードに拡散することを未然に防止することができる。
【０１４５】
尚、本実施例では、ノードを構成する情報処理装置として複合機を例にあげて説明したが、プリンタやスキャナ、ファックス、或いはＰＣ等の装置であってもよい。
【０１４６】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【０１４７】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４８】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１４９】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１５０】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【０１５１】
【図１】本発明の一実施の形態に係るデータ共有システムの構成を示すブロック図である。
【図２】図１のノードＡ，Ｂ，Ｃ，Ｄを構成する端末装置の構成を示すブロック図である。
【図３】各ノードＡ〜Ｄ間でやり取りされる各種の要求コマンドと要求コマンドのそれぞれに対する応答データ形式の一覧を示す図である。
【図４】複製データ１１２，１２１，１３１，１４１の構成を示す図である。
【図５】ノードＡが保持する複製先ノードリストの構成例を示す図である。
【図６】ノードＡが他のノードＢ，Ｃ，Ｄから送信された要求コマンドとして複製要求および複製要求に伴う確認要求を受信した際の動作の手順を示すフローチャートである。
【図７】図６のステップＳ４０８のデータ確認処理の手順を示すフローチャートである。
【図８】ノードＢ〜Ｄによる複製要求処理の手順を示すフローチャートである。
【図９】ノードＡにおいてオリジナルデータが更新された場合のノードＡと各ノードＢ〜Ｄ間でやり取りされる更新要求とその応答を模式的に示す図である。
【図１０】ノードＡがオリジナルデータを更新した場合に他のノードＢ〜Ｄに保持されている複製データを更新するための更新処理の手順を示すフローチャートである。
【図１１】図１０のステップＳ１００５のノード（ｉ）に対する更新要求処理の手順を示すフローチャートである。
【図１２】ノードＢ〜Ｄが更新要求により要求された複製データを更新する処理の手順を示すフローチャートである。
【図１３】ノードＡにおいてオリジナルデータが削除された場合のノードＡと各ノードＢ〜Ｄ間でやり取りされる削除要求とその応答を模式的に示す図である。
【図１４】ノードＡにおいてオリジナルデータが削除された場合に他のノードＢ〜Ｄに保持されている複製データ（上記削除されたオリジナルデータの複製データ）を削除するための削除処理の手順を示すフローチャートである。
【図１５】図１４のステップＳ１４０５のノード（ｉ）に対する削除要求処理の手順を示すフローチャートである。
【図１６】ノードＢ〜Ｄ（複製先のノード）が削除要求により要求された複製データを削除する処理の手順を示すフローチャートである。
【図１７】更新すべき複製データ９４１を保持する、ＬＡＮ１００と接続されていない状態のノードＤが再度ＬＡＮ１００と接続する場合のノードＤとノードＡ間でやり取りされる要求とその応答を模式的に示す図である。
【図１８】削除すべき複製データ１３４１を保持する、ＬＡＮ１００と接続されていない状態のノードＤが再度ＬＡＮ１００と接続する場合のノードＤとノードＡ間でやり取りされる要求とその応答を模式的に示す図である。
【図１９】ＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続し、データ共有システムに参加する場合の処理の手順を示すフローチャートである。
【図２０】ＬＡＮ１００と接続されていない状態のノードが再度ＬＡＮ１００と接続し、データ共有システムに参加する場合の処理の手順を示すフローチャートである。
【図２１】ＬＡＮ１００と接続されていない状態からＬＡＮ１００と接続した状態に復帰したノードからの確認要求を受信したノードＡ（オリジナルノード）の第２のデータ確認処理の手順を示すフローチャートである。
【符号の説明】
【０１５２】
Ａ〜Ｄ  ノード
１００  ＬＡＮ
１１１  複製先ノードリスト
２００  複合機
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２１０  ＨＤ
【図１】
0005004813.tif 000002
【図２】
0005004813.tif 000003
【図３】
0005004813.tif 000004
【図４】
0005004813.tif 000005
【図５】
0005004813.tif 000006
【図６】
0005004813.tif 000007
【図７】
0005004813.tif 000008
【図８】
0005004813.tif 000009
【図９】
0005004813.tif 000010
【図１０】
0005004813.tif 000011
【図１１】
0005004813.tif 000012
【図１２】
0005004813.tif 000013
【図１３】
0005004813.tif 000014
【図１４】
0005004813.tif 000015
【図１５】
0005004813.tif 000016
【図１６】
0005004813.tif 000017
【図１７】
0005004813.tif 000018
【図１８】
0005004813.tif 000019
【図１９】
0005004813.tif 000020
【図２０】
0005004813.tif 000021
【図２１】
0005004813.tif 000022