(57)【要約】【課題】  ネットワークに接続された情報処理装置同士で効率よくファイルをバックアップすることができる情報処理装置、方法、及びプログラムを提供する。【解決手段】  ＰＣ１２Ａ〜ＰＣ１２ＤでＰ２Ｐネットワークが構成されており、各ＰＣは他のＰＣとファイルを共有することができる。ファイルの共有モードとして、ファイルの実体データを各ＰＣが保存して共有するコピーモードと、ファイルの特徴を表すデータであるインデックスデータのみを各ＰＣで共有し、必要になった時点でそのファイルの実体データを要求して取得するダウンロードモードとがある。ＰＣ１２Ａが、共有モードとしてダウンロードモードが設定されたＰＣ１２Ｂをバックアップピアとして設定した場合、ＰＣ１２Ｂは、ダウンロードモードが設定されているにも拘らず、ＰＣ１２Ａに対して共有すべきファイルの実体データを要求して取得し、保存する。【選択図】        図１２
2006195546.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置であって、
バックアップを要するデータを記憶するための記憶手段と、
前記複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定する設定手段と、
前記バックアップを要するデータが前記記憶手段に記憶された場合に前記バックアップ装置へ通知する通知手段と、
前記バックアップを要するデータを前記バックアップ装置に送信する送信手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記設定手段は、前記複数の情報処理装置の中から予め定めた選択条件に合致する情報処理装置をバックアップ装置の候補として選択する選択手段と、選択された情報処理装置に対してバックアップ装置として動作するよう依頼する依頼手段と、を含み、依頼した情報処理装置のうち、バックアップ装置として動作することを受諾した情報処理装置を前記バックアップ装置に設定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記選択条件に合致する情報処理装置がない場合に警告する警告手段をさらに備えたことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記バックアップ装置からバックアップが不可能であることを通知された場合に、前記設定手段は、代わりのバックアップ装置を設定することを特徴とする請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置であって、
他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを通知する通知手段と、
前記他の情報処理装置から送信されたバックアップを要するデータを記憶するための記憶手段と、
前記バックアップ装置として動作することを受諾した場合に、前記他の情報処理装置から送信された前記バックアップを要するデータを前記記憶手段に記憶させる制御手段と、
を備えたことを特徴とする情報処理装置。
【請求項６】
前記他の情報処理装置から送信されたバックアップを要するデータをバックアップ可能か否かを判断する判断手段をさらに備え、前記判断手段によりバックアップが不可能であると判断された場合に、前記他の情報処理装置へ通知することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記制御手段は、前記他の情報処理装置から前記バックアップを要するデータの削除を通知された場合に、前記記憶手段に記憶されたデータを削除することを特徴とする請求項５又は請求項６記載の情報処理装置。
【請求項８】
前記制御手段は、前記他の情報処理装置から送信されたバックアップを要するデータの複製データを作成して、前記記憶手段に記憶させることを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記ネットワークは、複数の情報処理装置の少なくとも一部が特定のサーバを介さずに通信するピアツーピアネットワークであることを特徴とする請求項１乃至請求項８の何れか１項に記載の情報処理装置。
【請求項１０】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理方法であって、
前記複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定し、
前記バックアップを要するデータが記憶手段に記憶された場合に前記バックアップ装置へ通知し、
前記バックアップを要するデータを前記バックアップ装置に送信する、
ことを特徴とする情報処理方法。
【請求項１１】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理方法であって、
他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを通知し、
前記バックアップ装置として動作することを受諾した場合に、前記他の情報処理装置から送信された前記バックアップを要するデータを記憶手段に記憶させる、
ことを特徴とする情報処理方法。
【請求項１２】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理プログラムであって、
前記複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定するステップと、
前記バックアップを要するデータが記憶手段に記憶された場合に前記バックアップ装置へ通知するステップと、
前記バックアップを要するデータを前記バックアップ装置に送信するステップと、
を含むことを特徴とする情報処理プログラム。
【請求項１３】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理プログラムであって、
他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを通知するステップと、
前記バックアップ装置として動作することを受諾した場合に、前記他の情報処理装置から送信された前記バックアップを要するデータを記憶手段に記憶させるステップと、
を含むことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、方法、及びプログラムに係り、より詳しくは、ネットワークを介して互いに接続された複数の装置の少なくとも一部が、専用のサーバを介することなく直接通信するピアツーピアシステムに接続可能な情報処理装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータ等の装置をネットワークを介して互いに接続するネットワークシステムの形態として、クライアント・サーバシステムと、ピアツーピア（以下、Ｐ２Ｐという）システムとがある。
【０００３】
クライアント・サーバシステムは、サーバが各種情報資源を管理したり各種アプリケーションを提供するサービスを実行し、これをクライアントが利用するシステムであり、主従関係が固定的なシステムある。
【０００４】
これに対し、Ｐ２Ｐシステムでは、基本的には専用のサーバを設けず、ネットワークに接続されたピア（例えばパーソナルコンピュータ等）の各々が、あるときは他のピアに対して所定のサービスを提供してサーバのように動作し、あるときは他のピアが提供するサービスを利用してクライアントのように動作するシステムであり、各ピアが対等なシステムである。このようなＰ２Ｐシステムに関して、従来から様々な技術が提案されている（例えば特許文献１及び特許文献２参照）。
【０００５】
ところで、一般に、コンピュータにおいてデータやプログラムを一時的あるいは恒久的に保存しておく装置として、ハードディスク装置（以下、ＨＤＤという）がよく用いられる。ＨＤＤは、長時間の使用により異常を発生する場合もありえるため、従来からＨＤＤに記録された情報を別のメディア（磁気テープ、フレキシブルディスク、他のＨＤＤなど）にバックアップすることが考えられてきた。
【０００６】
近年では、コンピュータの分散化と多量化、システムのネットワーク化が進んでいるため、テープメディアやＤＶＤメディアなどを装着可能なコンピュータにアプリケーションソフトウェアを搭載し、このコンピュータにより、ネットワークに接続されている各コンピュータのＨＤＤの記録内容を、ネットワークを介して集中的にバックアップする方式が採用される場合がある。
【０００７】
この方式はＨＤＤの２重化と同じような目的であり、主にＨＤＤの不測の異常事態に備え、業務をストップさせないための方策であるため、ある一定のインタバル（時間、日、週、月など）で行われるケースが多い。
【０００８】
また、あるユーザーが自分のコンピュータにおいてファイルをＨＤＤに作成すると、強制的にファイルの複製を別のコンピュータのＨＤＤに作成するような仕組みも考えられる。この場合、自分のコンピュータまたはファイルの複製を作成するコンピュータに、ファイルの複製を作成するためのアプリケーションソフトウェアをインストールしておく必要がある。ここで、アプリケーションソフトウェアは、ＨＤＤのあるフォルダに記録されたファイルについて複製を行うといった設定が可能なアプリケーションであり、これにより、特定のフォルダに格納されたファイルをバックアップすることができる。
【０００９】
この方式は、異常事態に備えるのが目的というよりは、どちらかといえば、ファイルを共有するのが目的あり、インタバルも比較的短い単位（秒、分など）で行われるケースが多い。
【００１０】
しかしながら、上記二つのケースは、バックアップするために大容量のＨＤＤやメディアが必要であり、設備投資及びその運用に大きなコストが必要となる。
【００１１】
一方、特許文献３及び特許文献４に記載されたように、最近ではＰ２Ｐネットワークを構成する複数のコンピュータのＨＤＤを効率的に利用する形態があるが、これは相互に接続されたピアツーピア型のコンピュータ同士が対等であり、集中的にバックアップしたりするわけではなく、あくまでもこのコンピュータ同士でファイルを共有するものである。
【００１２】
ここで、Ｐ２Ｐネットワークを構成する各コンピュータが、常にファイルの実体の複製を共有する場合（コピーモード）、全てのユーザーが作成したファイルの複製全てを各コンピュータがそれぞれ記憶することになり、保全性の面では２重化〜Ｎ重化が行われるので大変有効ではあるものの、逆に資源不足になる可能性も十分にある。従って、通常はファイルの特徴を表すデータであるインデックスだけを共有し、必要になった時点でファイルの実体の複製を作成する方式（ダウンロードモード）を用いることにより、資源不足を解消することが考えられる。
【特許文献１】特開２００２−３３５２６９号公報
【特許文献２】特開２００３−２５６３６３号公報
【特許文献３】特開２００３−３２３３２９号公報
【特許文献４】特開２００３−３３０７８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、ダウンロードモードの場合には、必要とされない限りファイルの実体がコピーされないため、そのファイルをどのコンピュータもダウンロードしていない場合には、バックアップされたことにならず、障害が発生してもファイルを復元できない、という問題がある。
【００１４】
本発明は、上記問題を解決すべく成されたものであり、ネットワークに接続された情報処理装置同士で効率よくファイルをバックアップすることができる情報処理装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、請求項１記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置であって、バックアップを要するデータを記憶するための記憶手段と、前記複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定する設定手段と、前記バックアップを要するデータが前記記憶手段に記憶された場合に前記バックアップ装置へ通知する通知手段と、前記バックアップを要するデータを前記バックアップ装置に送信する送信手段と、を備えたことを特徴とする。
【００１６】
この発明によれば、情報処理装置はネットワークに接続される。例えば請求項９に記載したように、前記ネットワークは、複数の情報処理装置の少なくとも一部が特定のサーバを介さずに通信するピアツーピアネットワークとすることができる。
【００１７】
設定手段は、複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定する。通知手段は、バックアップを要するデータが、バックアップを要するデータを記憶するための記憶手段に記憶された場合に、バックアップ装置へ通知する。送信手段は、バックアップを要するデータをバックアップ装置に送信する。
【００１８】
このような処理を、ネットワークに接続された情報処理装置が各々実行することにより、バックアップ処理の負荷が分散され、ネットワークに接続された情報処理装置同士で効率よくファイルをバックアップすることができる。
【００１９】
また、請求項２に記載したように、前記設定手段は、前記複数の情報処理装置の中から予め定めた選択条件に合致する情報処理装置をバックアップ装置の候補として選択する選択手段と、選択された情報処理装置に対してバックアップ装置として動作するよう依頼する依頼手段と、を含み、依頼した情報処理装置のうち、バックアップ装置として動作することを受諾した情報処理装置を前記バックアップ装置に設定する構成とすることができる。
【００２０】
ここで、選択条件としては、例えば記憶容量がバックアップするのに必要な予め定めた閾値以上であること等を条件とすることができる。これにより、適切に情報処理装置をバックアップ装置の候補として選択できる。
【００２１】
また、請求項３に記載したように、前記選択条件に合致する情報処理装置がない場合に警告する警告手段をさらに備えた構成としてもよい。
【００２２】
また、請求項４に記載したように、前記バックアップ装置からバックアップが不可能であることを通知された場合に、前記設定手段は、代わりのバックアップ装置を設定するようにしてもよい。
【００２３】
代わりのバックアップ装置の設定は、例えば請求項２に記載したのと同様の処理により行うことができる。これにより、ユーザーが代わりのバックアップ装置を設定し直す必要がなく、利便性を向上させることができる。
【００２４】
請求項５記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置であって、他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを通知する通知手段と、前記他の情報処理装置から送信されたバックアップを要するデータを記憶するための記憶手段と、前記バックアップ装置として動作することを受諾した場合に、前記他の情報処理装置から送信された前記バックアップを要するデータを前記記憶手段に記憶させる制御手段と、を備えたことを特徴とする。
【００２５】
この発明によれば、通知手段は、他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを他の情報処理装置へ通知する。
【００２６】
制御手段は、バックアップ装置として動作することを受諾した場合に、他の情報処理装置から送信されたバックアップを要するデータを、他の情報処理装置から送信されたバックアップを要するデータを記憶するための記憶手段に記憶させる。
【００２７】
このような処理を、ネットワークに接続された情報処理装置が各々実行することにより、バックアップ処理の負荷が分散され、ネットワークに接続された情報処理装置同士で効率よくファイルをバックアップすることができる。
【００２８】
また、請求項６に記載したように、前記他の情報処理装置から送信されたバックアップを要するデータをバックアップ可能か否かを判断する判断手段をさらに備え、前記判断手段によりバックアップが不可能であると判断された場合に、前記他の情報処理装置へ通知するようにしてもよい。
【００２９】
判断手段は、例えばバックアップ装置として動作するのに必要な記憶容量を備えているか否かを判断することにより、バックアップ可能か否かを判断することができる。バックアップが不可能な場合には、これを他の情報処理装置に通知することにより、他の情報処理装置では、バックアップ装置を別の情報処理装置に切り替えることが可能となる。
【００３０】
また、請求項７に記載したように、前記制御手段は、前記他の情報処理装置から前記バックアップを要するデータの削除を通知された場合に、前記記憶手段に記憶されたデータを削除するようにしてもよい。これにより、バックアップされたデータが残ったままになるのを防ぐことができる。
【００３１】
この場合、請求項８に記載したように、前記制御手段は、前記他の情報処理装置から送信されたバックアップを要するデータの複製データを作成して、前記記憶手段に記憶させるようにしてもよい。
【００３２】
これにより、誤って元のデータを削除してバックアップされたデータまでもが削除されてしまった場合でも、複製データにより元のデータを復元することができる。この場合、そのままでは複製データが残ったままとなるので、例えば所定時間毎に複製データを自動的に削除するようにしてもよい。これにより、所定時間内であれば複製データによって元のデータを復元できると共に、複製データが増加し続けて記憶容量を無駄に消費するのを防ぐことができる。
【００３３】
請求項１０記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理方法であって、前記複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定し、前記バックアップを要するデータが記憶手段に記憶された場合に前記バックアップ装置へ通知し、前記バックアップを要するデータを前記バックアップ装置に送信する、ことを特徴とする。
【００３４】
請求項１１記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理方法であって、他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを通知し、前記バックアップ装置として動作することを受諾した場合に、前記他の情報処理装置から送信された前記バックアップを要するデータを記憶手段に記憶させる、ことを特徴とする。
【００３５】
請求項１２記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理プログラムであって、前記複数の情報処理装置のうち少なくとも一つをバックアップ装置として設定するステップと、前記バックアップを要するデータが記憶手段に記憶された場合に前記バックアップ装置へ通知するステップと、  前記バックアップを要するデータを前記バックアップ装置に送信するステップと、を含むことを特徴とする。
【００３６】
請求項１３記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理プログラムであって、他の情報処理装置からバックアップ装置として動作するよう依頼があった場合に、バックアップ装置として動作するか否かを通知するステップと、前記バックアップ装置として動作することを受諾した場合に、前記他の情報処理装置から送信された前記バックアップを要するデータを記憶手段に記憶させるステップと、を含むことを特徴とする。
【発明の効果】
【００３７】
以上説明したように、本発明によれば、ネットワークに接続された情報処理装置同士で効率よくファイルをバックアップすることができる、という効果を有する。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施形態について説明する。
【００３９】
図１には、Ｐ２Ｐネットワーク１０のネットワーク構成について概念的に示した。図１に示すように、Ｐ２Ｐネットワーク１０は、仮想的には各ピア１２Ａ〜１２Ｇが相互に接続された構成であり、実際には、例えばピア１２Ａ〜１２Ｃはファイアウォール１４によるアクセス制限下にあるピアであったり、ピア１２Ｃ〜１２Ｅはインターネットに接続されたピアであったり、ピア１２Ｅ〜１２ＧはＮＡＴ（Network Address Translation）によってアドレス変換されるピアであったりする。
【００４０】
また、各ピア同士の接続方法は様々であり、ＩＰｖ４（Internet Protocol version 4）やＩＰｖ６（Internet Protocol version 6）の機能を用いるＴＣＰ（Transmission Control Protocol）接続を用いたり、ＨＴＴＰ（HyperText Transfer Protocol）を用いたり、ＳＭＴＰ（Simple Mail Transfer Protocol）を用いたりすることができる。
【００４１】
ここで、ピアとは、例えばパーソナルコンピュータ等のコンピュータの他、ＰＤＡ（Personal Digital Assistance）、携帯電話、プリンタ、コピー機、これらの機能を複数備えた複合機等のハードウェア又はこれらの機能を実現するソフトウェアをいう。また、各ピアは、同じ種類のものであるか異なる種類のものであるかにかかわらずＰ２Ｐネットワークに参加することができる。
【００４２】
Ｐ２Ｐネットワークの形態としては、図２に示すように、各ピア１４Ａ〜１４Ｋの全てが対等な関係にあるピュアＰ２Ｐと、図３に示すように、サーバ１４Ｓを設け、一部のサービスの提供をサーバ１４Ｓに委ね、その他のサービスについては各ピア１４Ａ〜１４Ｈが対等な関係において実現されるハイブリッドＰ２Ｐの形態があり、何れの形態でも本発明を適用可能である。
【００４３】
また、Ｐ２Ｐネットワークに参加する各ピアにログオンするユーザー又はピアは、図４に示すように、目的に応じたグループを構成することができる。図４では、ピア１２Ａ〜１２Ｇ全てがグループ１に属し、さらに、ピア１２Ａ、１２Ｃ、１２Ｅ、１２Ｆはグループ２に属しており、ピア１２Ｂ、１２Ｅ、１２Ｆ、１２Ｇはグループ３に属している。なお、各ユーザー又はピアは、単一のグループに属してもよいし、複数のグループに属していてもよい。また、ユーザー又はピアは必ずしもグループに属する必要はない。
【００４４】
図５には、Ｐ２Ｐネットワーク１０に参加する各ピアの基本構成を示した。図５に示すように、ピア１２は、Ｐ２Ｐ基盤構成部１６、Ｐ２Ｐ基盤管理データ記憶部１８、アプリケーション実行部２０、及びアプリケーションメモリ２２を含んで構成される。
【００４５】
Ｐ２Ｐ基盤構成部１６は、メッセージ制御部２４、データ管理部２６、送信部２８、及び受信部３０を含んで構成される。
【００４６】
送信部２８は、メッセージ制御部２４から受け取ったメッセージをネットワーク３２へ向けて送信する。
【００４７】
受信部３０は、Ｐ２Ｐネットワーク１０内で送受信されるデータのうち、自ピアにとって必要なデータを受信する。常に受信待機状態となっており、Ｐ２Ｐネットワーク１０の他ピアからの各種要求やデータを受信し、メッセージ制御部２４に受け渡す。なお、送信部２８とは独立かつ並列に動作する。
【００４８】
図６には、メッセージ制御部２４の概略構成を示した。メッセージ制御部２４は、図６に示すように、サービス実行部３４及びメッセージディスパッチ部３６を含んで構成されている。
【００４９】
サービス実行部３４は、ピア探索サービス部３８、告知情報公開サービス部４０、告知情報取得サービス部４２、グループ管理サービス部４４、ユーザー管理サービス部４６、及びピア管理サービス部４８を含んで構成されており、各サービス部は相互に情報を授受しながら各サービスを実行する。
【００５０】
ピア探索サービス部３８は、Ｐ２Ｐネットワークに参加しているピアを探索する機能及び自ピアが必要とするサービス（機能）を提供可能なピアを探索する機能を有する。なお、探索の範囲は、必要とするサービスの名称や属性、ホップ数の閾値等を指定することにより制御することができる。ここで、ホップ数とは、メッセージを送信する際に経由するピアの数である。
【００５１】
告知情報公開サービス部４０は、自ピアが提供可能なサービス等の情報を告知情報としてＰ２Ｐネットワーク上に公開する機能を有する。ここで、提供可能なサービスには、例えばアプリケーション実行部２０により実行されるアプリケーションの他、後述するグループ管理サービスやユーザー管理サービス等も含まれる。なお、告知情報の公開は、例えば他ピアから問い合わせがあった場合や自ピアの起動時に実行してもよいし、定期的に実行するようにしてもよい。
【００５２】
このように各ピアの告知情報公開サービス部４０によって告知情報がＰ２Ｐネットワーク上に公開されることにより、Ｐ２Ｐネットワークに参加している各ピアは、Ｐ２Ｐネットワーク上でどのようなサービスを利用できるかを把握することができる。
【００５３】
告知情報取得サービス部４２は、ピア探索サービス部３８によって探索されたピアから送信された告知情報又は他ピアから自発的に送信された告知情報を取得し、データ管理部２６へ受け渡す。データ管理部２６では、取得した告知情報をピア情報としてＰ２Ｐ基盤管理データ記憶部１８に記憶させる。これにより、ピアは、Ｐ２Ｐネットワークに参加している他ピアがどのようなサービスを提供しているのかを把握することができる。
【００５４】
グループ管理サービス部４４は、同じ目的を有するピア同士で構成されたグループへの参加や脱退、新たなグループの作成等をグループ情報に基づいて管理する機能を有する。グループ情報は、例えば少なくともグループＩＤとユーザーＩＤとの対応関係を表す情報であり、Ｐ２Ｐ基盤管理データ記憶部１８に記憶される。このグループ情報を参照することにより、どのグループにどのユーザーが属しているかを把握することができる。
【００５５】
ユーザー管理サービス部４６は、ユーザー情報を管理する機能を有する。ユーザー情報は、例えばピアＩＤとそのピアにログオンしているユーザーＩＤとの対応関係を表すログオン情報や、ユーザーの名前、メールアドレス等のユーザー自身に関する情報、そのユーザーが属するグループのグループＩＤ等の情報を含み、Ｐ２Ｐ基盤管理データ記憶部１８に記憶される。
【００５６】
ピア管理サービス部４８は、Ｐ２Ｐネットワークに参加しているピアのピア情報を管理する機能を有する。
【００５７】
メッセージディスパッチ部３６は、アプリケーション実行部２０からのメッセージや他ピアとの間で送受信されるメッセージを解析し、サービス実行部３４のうち解析したメッセージに関する処理を行うべきサービス部へ制御を渡す。
【００５８】
Ｐ２Ｐ基盤管理データ記憶部１８は、経路情報１８Ａ、グループ情報１８Ｂ、隣接情報１８Ｃ、ピア情報１８Ｄ、及びユーザー情報１８Ｅを記憶する。
【００５９】
経路情報１８Ａは、Ｐ２Ｐネットワークにおける経路の情報、例えば後述するスパニングツリーに関する情報を含む。
【００６０】
グループ情報１８Ｂは、前述したように例えば少なくともグループＩＤとユーザーＩＤとの対応関係を表す情報である。
【００６１】
隣接情報１８Ｃは、自ピアに隣接するピアに関する情報、例えばピアＩＤ等の情報を含む。ここで、隣接するピアとは、例えば自ピアから送信したパケットに対する応答時間が予め定めた所定時間内のピアとすることができる。隣接情報は、例えば他ピアと通信する課程において得られる応答時間に基づいて生成することができるが、オペレータの操作等により手動的に設定するようにしてもよい。
【００６２】
ピア情報１８Ｄは、ピア探索サービス部３８によって探索されたピアに関する情報、例えばピアＩＤ等の情報や、告知情報取得サービス部４２によって取得したＰ２Ｐネットワーク上の各ピアが提供しているサービスに関する情報等を含む。ここで、ピアＩＤには、例えばＩＰアドレスやＵＲＩ（Uniform Resource Identifier）等を用いることができる。
【００６３】
ユーザー情報１８Ｅは、前述したようにユーザーのログオン情報やユーザー自身に関する情報等を含む。
【００６４】
アプリケーション実行部２０は、各種アプリケーションを実行するものであり、メッセージ制御部２４を介して他ピアとメッセージの送受信を行う。また、アプリケーションメモリ２２は、アプリケーション実行部２０の実行に関連する各種の情報を記憶するためのメモリである。
【００６５】
次に、Ｐ２Ｐネットワークにおいて、目的のサービスを検索し実行する場合の具体例について説明する。
【００６６】
まず、他ピアへメッセージを転送する機能を有する転送機能付きピアと、転送機能を備えず、転送機能付きピアを介して他ピアとメッセージの送受信を行うエンドピアと、からなるＰ２Ｐネットワークにおいて、転送機能付きピア及びエンドピアのＰ２Ｐ基盤構成部１６で実行される処理について説明する。なお、転送機能付きピアは、図示しない転送機能サービス部をサービス実行部３４に備えた構成である。
【００６７】
図７にはエンドピアで実行される処理のフローチャートを、図８には転送機能付きピアで実行される処理のフローチャートを示した。
【００６８】
図７に示すように、エンドピアは、ステップ１００において、転送機能付きピアの探索要求を、例えば自ピアに予め記憶された設定情報に設定された他の転送機能付きピアに対して、又はマルチキャストやブロードキャストにより他の転送機能付きピアに対してＰ２Ｐネットワークに送信する。これは、ピア探索サービス部３８により実行される。
【００６９】
そして、ステップ１０２において、転送機能付きピアが存在するか否かを判断し、転送付きピアが存在する場合には、ステップ１０４へ移行し、転送機能付きピアが存在しない場合には、ステップ１０２へ戻り、例えば所定時間経過後に再度転送機能付きピアを探索する。
【００７０】
ステップ１０４では、自ピアにログオンしているユーザー又は自ピアが属するグループに属している他ユーザーがログオンしている他ピアの告知情報を取得するよう転送機能付きピアに要求する。これは、告知情報取得サービス部４２により実行される。
【００７１】
ステップ１０６では、転送機能付きピアから告知情報を受信したか否かを判断し、受信していない場合には、ステップ１１０へ移行し、受信した場合には、ステップ１０８において、受信した告知情報をＰ２Ｐ基盤管理データ記憶部１８にピア情報１８Ｄとして記憶させる。
【００７２】
ステップ１１０では、サービス要求が発生したか否かを判断する。例えば自ピアにログインしているユーザーの操作等によってアプリケーション実行部２０によりアプリケーションが実行され、サービス要求が発生した場合には、アプリケーション実行部２０からメッセージ制御部２４へサービス要求が通知される。この場合、ステップ１１２へ移行し、サービス要求が発生していない場合には、ステップ１１６へ移行する。
【００７３】
ステップ１１２では、発生したサービス要求に対応したメッセージを作成して転送機能付きピアに送信する。例えば、アプリケーション実行部２０からのサービス要求が、所望のファイルを取得する要求だった場合には、アプリケーション実行部２０から通知されたファイル名等の所望のファイルを特定するための情報を含むファイル探索要求メッセージを転送機能付きピアに送信する。
【００７４】
ステップ１１４では、送信したメッセージに対する応答処理を行う。すなわち、送信したメッセージに対する応答メッセージを受信し、受信した応答メッセージの内容に応じた処理を行う。例えば、サービス要求が所定のファイルを取得する要求であった場合には、そのファイルを所有しているピアがあれば、そのピア情報が応答メッセージとして受信されるので、これをアプリケーション実行部２０に通知する。この場合、アプリケーション実行部２０では、受信したピア情報に基づいて、所望のファイルを所有しているピアにファイル送信要求を送信するようメッセージ制御部２４に依頼する。これにより、所望のファイルを取得することができる。
【００７５】
そして、ステップ１１６では、転送機能付きピアから、他ピアから何らかのサービス提供又は情報提供を要求する要求メッセージを受信したか否かを判断し、要求メッセージを受信していた場合には、ステップ１１８へ移行し、要求メッセージを受信していない場合には、ステップ１０６へ戻って上記と同様の処理を繰り返す。
【００７６】
ステップ１１８では、要求に対する処理を実行する。そして、ステップ１２０において、処理結果に対応したメッセージを転送機能付きピアに送信する。例えば、他ピアからファイル探索の要求メッセージを受信した場合には、その要求メッセージをファイル検索を実行するアプリケーション実行部２０へ渡す。これによりアプリケーション実行部２０においてファイル検索が実行され、検索結果がメッセージ制御部２４に通知される。メッセージ制御部２４では、アプリケーション実行部２０から通知された検索結果に基づいて応答メッセージを作成し、ファイル探索要求メッセージの送信元のピアに送信する。例えばファイルが検索できた場合には、自ピアのピアＩＤ等の情報を含めた応答メッセージを作成して、ファイル探索要求メッセージの送信元のピアに送信する。これにより、送信元のピアでは、所望のファイルが検索できたか否かを確認することができる。
【００７７】
次に、転送機能付きピアで実行される処理について説明する。
【００７８】
転送機能付きピアは、まず図８に示すステップ２００において、例えば自ピアに予め記憶された設定情報に設定された他の転送機能付きピアに対して、又はマルチキャストやブロードキャストにより他の転送機能付きピアに対して、グループ情報やユーザー情報等の各種情報を送信するよう要求し、これらの情報を取得する。取得した情報は、Ｐ２Ｐ基盤管理データ記憶部１８に記憶される。これにより、Ｐ２Ｐネットワークを構成しているピアの情報やログインしているユーザーの情報を得ることができる。
【００７９】
ステップ２０２では、Ｐ２Ｐ基盤管理データ記憶部１８に記憶された隣接情報１８Ｃを、自ピアの隣の転送機能付きピア全てに告知する。隣接情報１８Ｃには、自ピアの隣の転送機能付きピアの情報が少なくとも含まれ、さらに、他のピアが有している隣接情報を既に取得している場合には、その隣接情報も含まれる。
【００８０】
ステップ２０４では、隣の転送機能付きピアに隣接情報を送信するよう要求し、取得する。このように、自ピアの隣の転送機能付きピアと隣接情報を交換する。
【００８１】
そして、ステップ２０６では、交換した隣接情報に基づき、スパニングツリーの構成情報を生成し、Ｐ２Ｐ基盤管理データ記憶部１８に経路情報として記憶する。ここで、スパニングツリーとは、メッセージの転送経路が、ループのない木構造となるような経路を表す。例えばＰ２Ｐネットワークが、図９（Ａ）に示すように、グループ１にのみ属する転送機能付きピア５０1、グループ２にのみ属する転送機能付きピア５０2、グループ１、２の何れにも属する転送機能付きピア５０12、何れのグループにも属さない転送機能付きピア５０n、これらの各転送機能付きピアの背後に存在するエンドピア（図９では図示省略）で構成されていたとする。この場合、スパニングツリーは、図９（Ｂ）に示すようなループのない木構造の経路となる。
【００８２】
次のステップ２０８では、エンドピアからのメッセージ送信要求を受信したか否かを判断し、受信している場合にはステップ２１０へ移行し、受信していない場合には、ステップ２１２へ移行する。
【００８３】
ステップ２１０では、スパニングツリーの構成情報としての経路情報に基づいて、メッセージを転送する。例えば、図９（Ａ）に示すようなネットワークが構築されている場合において、エンドピアが例えばグループ１に属しており、グループ１向けの要求メッセージを転送機能付きピアに送信した場合について説明する。この場合、転送機能付きピアは、グループ１に属しているエンドピアに対してのメッセージ転送を担う転送機能付きピアを全て含み、この転送機能付きピア全てにメッセージが転送されるようなスパニングツリー、例えば図９（Ｃ）に示すようなスパニングツリーを経路情報に基づいて計算する。そして、転送機能付きピアは、計算されたスパニングツリーに基づいて、隣の転送機能付きピア全てにエンドピアからの要求メッセージを転送する。これにより、図９（Ｃ）に示すスパニングツリー上の転送機能付きピアにメッセージが転送され、グループ１のエンドピア全てにメッセージが転送される。なお、グループ２向けのメッセージ送信要求を転送機能付きピアに送信した場合は、図９（Ｄ）に示すようなスパニングツリーが計算される。
【００８４】
次のステップ２１２では、隣の転送機能付きピアからメッセージを受信したか否かを判断し、受信した場合にはステップ２１４へ移行し、受信していない場合には、ステップ２０８へ戻って上記と同様の処理を繰り返す。なお、定期的にステップ２００へ戻ってスパニングツリーを定期的に計算するようにしてもよい。
【００８５】
ステップ２１４では、計算したスパニングツリーに基づき、メッセージを転送する必要がある場合、すなわちスパニングツリー上における隣の転送機能付きピアのうちメッセージを転送していない転送機能付きピアが存在する場合には、その転送機能付きピアにメッセージを転送する。また、受信したメッセージが、自ピアがメッセージの転送を担うエンドピアと同一のグループ宛であった場合には、そのメッセージをエンドピアへ転送する。
【００８６】
このように、スパニングツリーを各転送機能付きピアが計算し、このスパニングツリー計算に従ってメッセージを転送することにより、同じグループ内のエンドピア間においてメッセージの送受信が可能となる。
【００８７】
上記のような転送機能付きピアによってメッセージを転送する構成は、主にＬＡＮ（Local Area Network）等の比較的小規模のネットワークでＰ２Ｐネットワークを構築する場合に適しているが、大規模のネットワークでＰ２Ｐネットワークを構成する場合には、ファイアウォールやゲートウェイ等を介して、異なるネットワークに接続されたピア間でメッセージの送受信が行われる。以下では、このような比較的大規模なネットワークでＰ２Ｐネットワークを構築する場合に適した形態について説明する。
【００８８】
図１０に示すＰ２Ｐネットワーク１１は、複数のネットワーク５２〜５８を含み、ネットワーク５２は、ルータ６０、６２を介してネットワーク５４と接続されると共に、ルータ６４を介してネットワーク５８と接続される。また、ネットワーク５６は、ルータ６６を介してネットワーク５８と接続される。
【００８９】
ネットワーク５２は、エンドピア５２Ａ、５２Ｂ、及び待ち合わせ機能付きピア５２Ｃを含んで構成され、ネットワーク５４はエンドピア５４Ａを含んで構成され、ネットワーク５６はエンドピア５６Ａを含んで構成され、ネットワーク５８は中継機能付きピア５８Ａを含んで構成されている。なお、待ち合わせ機能付きピアは、図示しない待ち合わせ機能サービス部をサービス実行部３４に備えた構成であり、中継機能付きピア５８Ａは、図示しない中継機能サービス部をサービス実行部３４に備えた構成である。
【００９０】
このように構成されたＰ２Ｐネットワーク１１において、エンドピアは、図７のフローチャートの示す処理とほぼ同様の処理を実行する。すなわち、Ｐ２Ｐネットワーク１１におけるエンドピアで実行される処理は、図７のフローチャートの説明において、転送機能付きピアを待ち合わせ機能付きピアに言い換えた処理を実行すると考えることができる。
【００９１】
また、中継機能付きピアは、基本的には所謂ゲートウェイとしての動作をするピアである。中継機能付きピアは、まず、例えば自ピアに記憶された設定情報に予め設定された他のピアに対して、又はマルチキャストやブロードキャストにより他のピアに対して、グループ情報やユーザー情報等の各種情報を送信するよう要求し、これらの情報を取得しておく。そして、他ピアからメッセージを受信した場合には、送信先として指定されたピアにメッセージを転送する。
【００９２】
次に、待ち合わせ機能付きピアで実行される処理について、図１１に示すフローチャートを参照して説明する。
【００９３】
まず、ステップ３００において、例えば自ピアに記憶された設定情報に予め設定された他の転送機能付きピアに対して、又はマルチキャストやブロードキャストによって、他のピアに対してグループ情報やユーザー情報等の各種情報を送信するよう要求する。
【００９４】
ステップ３０２では、他ピアから何らかの情報、例えばステップ３００で要求したグループやユーザー情報等の情報や、他ピアからの告知情報等を受信したか否かを判断し、受信した場合には、ステップ３０４へ移行し、受信していない場合には、ステップ３０６へ移行する。
【００９５】
ステップ３０４では、他ピアから受信した情報をＰ２Ｐ基盤管理データ記憶部１８に記憶させる。例えば受信した情報がグループ情報であればグループ情報１８ＢとしてＰ２Ｐ基盤管理データ記憶部１８に記憶させ、受信した情報がユーザー情報であればユーザー情報１８ＥとしてＰ２Ｐ基盤管理データ記憶部１８に記憶させる。
【００９６】
ステップ３０６では、エンドピアから何らかのサービス提供又は情報提供を要求する要求メッセージを受信したか否かを判断し、受信している場合には、ステップ３０８へ移行し、受信していない場合には、ステップ３０２へ戻って上記と同様の処理を繰り返す。
【００９７】
ステップ３０８では、要求メッセージに対応した情報が自ピアのＰ２Ｐ基盤管理データ記憶部１８に記憶されているか否かを判断し、記憶されている場合には、ステップ３１０へ移行し、記憶されていない場合には、ステップ３１２へ移行する。
【００９８】
ステップ３１０では、要求メッセージに対応した情報をＰ２Ｐ基盤管理データ記憶部１８から読み出して要求元のピアに送信する。
【００９９】
一方、ステップ３１２では、要求メッセージを隣接のピアに転送する。これにより、要求メッセージが他ピアに伝搬される。これにより、要求メッセージに対応した処理を実行可能なピアから応答メッセージが送信される。
【０１００】
ステップ３１４では、要求メッセージに対応した処理を実行可能なピアから送信された応答メッセージを受信し、これを要求元のエンドピアに送信する。
【０１０１】
ここで、ネットワーク５４のピア５４Ａが告知情報の探索要求を行う場合について説明する。この場合、ピア５４Ａは、待ち合わせ機能付きピアを検索し、検索された待ち合わせ機能付きピア５２Ｃに告知情報の探索要求メッセージを送信する。これにより待ち合わせ機能付きピア５２Ｃは、自ピアに他ピアの告知情報が蓄積されていれば、これをピア５４Ａに送信し、蓄積されていない場合には、例えば隣のピア５２Ａ、５２Ｂ等に告知情報を送信するよう要求する。このとき、ピア５２Ａは、自ピアの告知情報と、自ピアに記憶されている他ピアの告知情報、例えばピア５６Ａの告知情報がすでに記憶されている場合には、その告知情報とを待ち合わせ機能付きピア５２Ｃに送信する。ピア５２Ｃについても同様である。待ち合わせ機能付きピア５４Ｃは、他ピアから送信された告知情報を蓄積すると共に、ピア５４Ａに送信する。
【０１０２】
以上のように、待ち合わせ機能付きピアは、他ピアから送信された告知情報等の各種情報を自ピアに蓄積しておき、エンドピアからの要求に対応した情報が自ピアに記憶されている場合には、その情報をエンドピアに送信する。従って、Ｐ２Ｐネットワーク１１のように大規模なネットワークにおけるメッセージの送受信の効率を向上させることができる。
【０１０３】
次に、アプリケーション実行の具体例として、アプリケーションがファイル共有サービスの場合におけるアプリケーション実行部２０の処理について説明する。
【０１０４】
この場合、アプリケーション実行部２０は、ファイル名等の所望のファイルを特定するための情報を少なくとも含んだファイル探索要求をメッセージ制御部２４のメッセージディスパッチ部３６に通知する。メッセージディスパッチ部３６では、このファイルを所有するピアを探索するようピア探索サービス部３８に対して要求する。これにより、ピア探索サービス部３８によって所望のファイルを所有するピアが探索され、アプリケーション実行部２０に通知される。そして、アプリケーション実行部２０では、探索されたピアに対してファイルを送信するよう要求し、取得する。なお、所望のファイルを所有しているピアの情報を既に取得しており、自ピアに記憶されていた場合には、ピア探索を実行せずに、直接そのピアにファイル送信要求を送信してファイルを取得すればよい。
【０１０５】
このように、アプリケーション実行部２０は、メッセージ制御部２４を介して他ピアとメッセージの送受信を行い、サービスを提供する。
【０１０６】
なお、Ｐ２Ｐネットワークの構築について上記は一例であり、例えば上記特許文献１に記載されたプロトコルや、ＪＸＴＡプロトコルのＰＤＰ（Peer Discovery Protocol：ピア発見プロトコル）、ＰＲＰ（Peer Resolver Protocol：ピア解決プロトコル）、ＰＩＰ（Peer Information Protocol：ピア情報プロトコル）、ＰＭＰ（Peer Membership Protocol：ピアメンバーシッププロトコル）、ＰＢＰ（Peer Binding Protocol：ピアバインディングプロトコル）、ＰＥＰ（Peer Endpoint Protocol：ピアエンドポイントプロトコル）等の公知のプロトコルを用いてＰ２Ｐネットワークを構築してもよい。
【０１０７】
次に、本実施形態に係るＰ２Ｐネットワークの具体的な形態として、各ピアにおいてファイル共有アプリケーションが動作する場合に、ファイルのバックアップを効率的に実行する形態について説明する。
【０１０８】
ここでは、図１２に示すように、ピアとしてのパーソナルコンピュータ（以下、ＰＣ）１２Ａ〜１２Ｄを含むＰ２Ｐネットワークが構築されている場合において、ＰＣ１２Ａが他のＰＣ１２Ｂ〜１２Ｄの少なくとも一つを、ＰＣ１２Ａで作成されたファイルをバックアップするためのバックアップピアとして設定する場合について説明する。ＰＣ１２Ａ〜１２Ｄは、基本的に上記で説明した図５、６に示したピア１２の機能を有している。なお、以下では、ＰＣ１２Ａ〜１２ＤをそれぞれホストＡ〜Ｄと称する。
【０１０９】
ホストＡ〜Ｄは、それぞれのアプリケーション実行部２０においてファイル共有アプリケーションを実行可能であり、各ホストで作成されたファイルはアプリケーションメモリ２２に記憶される。
【０１１０】
ファイル共有アプリケーションは、共有モードとしてコピーモードとダウンロードモードとを有し、これらの各モードは例えばユーザーの設定により選択することができる。ここで、コピーモードとは、ファイルの実体データをＰ２Ｐネットワーク上で共有するモード、すなわちＰ２Ｐネットワーク上の全てのピア又は特定のグループに属するピア全てでファイルの実体データを共有するモードである。一方、ダウンロードモードは、ファイル名、ファイルの作成日時（更新日時）、ファイルサイズ等、ファイルの特徴を表すデータであるインデックスデータのみをＰ２Ｐネットワーク上で共有し、必要になった時点でそのファイルの実体データを保存しているピアに要求して取得するモードである。
【０１１１】
次に、ファイルのバックアップを依頼するピアをホストＡ、バックアップを依頼され実行するピアをホストＢとした場合におけるホストＡ、ホストＢで実行される処理を図１３〜図１５に示すフローチャートを参照して説明する。なお、Ｐ２Ｐネットワーク上の各ホストは、実際は両方の処理を行うことがある。すなわち、上記のホストＡは、実際はバックアップを依頼する処理だけでなくバックアップを実行する処理も行い、ホストＢは、実際はバックアップを実行する処理だけでなくバックアップを依頼する処理も行うことがあり得るが、ここでは説明を簡単にするため、ファイルのバックアップを依頼するホストと、バックアップを実行するホストとを分けて説明する。
【０１１２】
まず、ホストＡのアプリケーション実行部２０で実行される処理について、図１３に示すフローチャートを参照して説明する。この処理は、例えばホストＡの立ち上げ時に実行される。
【０１１３】
まず、ステップ４００では、前処理を実行する。この前処理は、例えばファイル共有アプリケーション等の各種アプリケーションの起動処理、ユーザーに例えばユーザーＩＤ及びパスワードを入力させてユーザー認証するログイン処理、ユーザーが参加を希望するピアグループを選択させるピアグループの選択処理、バックアップピアの候補を選択する処理等である。
【０１１４】
バックアップピアの候補を選択する処理では、バックアップピアの候補をユーザーに選択させてもよいし、ピアグループの選択処理でユーザーが選択したグループに属するピアの全てを自動的に選択するようようにしてもよい。また、予め定めた選択条件に合致するピアを検索して自動的に選択するようにしてもよい。この場合、空きディスク容量が予め定めた閾値以上であること等を選択条件とすることができ、例えばピアグループに属する各ピアから空きディスク容量を通知してもらうことにより選択条件に合致するピアを検索することができる。
【０１１５】
ステップ４０２では、バックアップピアの数Ｎを設定する。これは、例えばユーザーに入力させてもよいし、例えばＰ２Ｐグループ毎に予め設定しておいてもよい。
【０１１６】
ステップ４０４では、選択されたバックアップピア候補のピアに対して、バックアップピアとなってもらうための依頼メッセージを送信し、ステップ４０６では、送信した依頼メッセージに対する応答メッセージを受信する。
【０１１７】
ステップ４０８では、バックアップピアとして設定するか否かを判断する。すなわち、受信した応答メッセージが、バックアップピアとなることがＯＫであることを示すメッセージであった場合で、かつバックアップピアに設定するための所定条件を満たすか否かを判断する。ここで、所定条件には、そのピアがホストＡと近い距離にあるピアであること、例えばネットワークのセグメントがホストＡと同じであること、ホストＡのバックアップピアとしてまだ登録されていないこと等の条件を設定することができる。
【０１１８】
そして、バックアップピアとして設定する場合にはステップ４０９へ移行し、バックアップピアとして設定しない場合にはステップ４１６へ移行する。
【０１１９】
ステップ４０９では、バックアップピアとして設定する旨をそのピアに通知する。また、これと同時に、バックアップモードを通知する。バックアップモードには、通常バックアップモードと恒久バックアップモードとがある。
【０１２０】
通常バックアップモードは、ファイルの複製を一つだけバックアップするモードであり、ホストＡでこの複製に対応するファイルを削除するよう指示された場合には、この削除指示がバックアップピアに通知され、バックアップピアにおいてそのファイルの複製も削除されるモードである。この場合、ホストＡが何らかの障害によって停止した場合でも、バックアップピアに複製が保存されているため、そのファイルを利用することが可能となる。
【０１２１】
しかしながら、通常バックアップモードでは、ユーザーの操作によって元のファイルを削除した場合には、バックアップピアに保存されている複製も削除されるため、ユーザーが誤ってファイルを削除した場合には、それを復元できない。
【０１２２】
そこで、恒久バックアップモードでは、ファイルの複製を二つバックアップする、すなわち、ファイルの複製だけでなく、さらのその複製を作成してバックアップする。この場合、ホストＡでファイルを削除するよう指示された場合には、バックアップピアにおいて第１の複製は通常バックアップモードと同様に削除されるが、第２の複製は削除されずにバックアップピアに保存されたままとなる。これにより、誤ってファイルを削除して第１の複製まで削除された場合でも、第２の複製は保存されているので、ファイルを復元することが可能となる。また、そのままでは第２の複製が増加し続けてディスク容量を圧迫する恐れがあるので、例えば第２の複製が作成されてから所定時間経過した場合に自動的に削除するようにしてもよい。また、ユーザーの操作により強制削除できるようにしてもよい。
【０１２３】
なお、上記では、ホストＡからバックアップモードを通知するようにしているが、ホストＡからバックアップモードを通知せずに、各ホストで例えばユーザーの操作等により予めバックアップモードを設定しておいてもよい。
【０１２４】
ステップ４１０では、バックアップピア数Ｎをデクリメントし、ステップ４１２では、バックアップピア数Ｎが‘０’になったか否かを判断する。そして、Ｎが‘０’の場合、すなわちバックアップピア数Ｎとして設定した数のバックアップピアからＯＫの応答メッセージを受信した場合には、ステップ４１４へ移行し、まだＯＫの応答メッセージを受信したバックアップピアの数がＮに満たない場合には、ステップ４１６へ移行する。
【０１２５】
ステップ４１４では、所定の後処理を実行する。この後処理には、例えばバックアップピアとなるピアの情報をアプリケーションメモリ２２に記憶し、バックアップピアとして登録する処理や、バックアップピアとして登録されたピアに関する情報を図示しない表示手段に表示させたりする処理が含まれる。
【０１２６】
一方、ステップ４１６では、バックアップピアの候補となったピア全てに対してバックアップの依頼を行ったか否かを判断する。そして、バックアップピアの候補となったピア全てに対してバックアップの依頼を行った場合、すなわち、登録したバックアップピアの数がバックアップピア数Ｎに満たなかった場合にはステップ４１８へ移行し、まだバックアップの依頼を行っていないピアが存在する場合には、ステップ４０４へ移行し、上記と同様の処理を行う。
【０１２７】
ステップ４１８では、警告処理を行う。具体的には、例えば登録したバックアップピアの数が、設定したバックアップピア数Ｎに満たなかったことを図示しない表示手段に表示させる等の処理を行う。これにより、ユーザーは、登録したバックアップピアの数が、設定したバックアップピア数Ｎに満たなかったことを容易に認識することができる。
【０１２８】
そして、ステップ４２０では、図１４に示すようなバックアップ処理を実行する。図１４に示すように、ステップ５００では、アプリケーションメモリ２２に設定された共有フォルダにファイルがストアされたか否かを判断し、ストアされた場合にはステップ５０２へ移行し、ストアされていない場合には、ステップ５０４へ移行する。
【０１２９】
ステップ５０２では、自ピアが属するピアグループの他ピアに対してファイルがストアされたことを通知する。
【０１３０】
ステップ５０４では、バックアップピアからファイルのインデックスデータや実体データの取得を要求されたか否かを判断し、取得を要求された場合には、ステップ５０６で要求されたデータを共有フォルダから読み出して要求元のバックアップピアに送信する。一方、データの取得を要求されていない場合には、ステップ５０８へ移行する。
【０１３１】
ステップ５０８では、バックアップピアから、例えばディスク容量不足等の理由によりバックアップ不可であることを通知されたか否かを判断し、バックアップ不可であることを通知された場合には、ステップ５１０へ移行し、バックアップ不可であることを通知されていない場合には、ステップ５００へ戻って上記と同様の処理を行う。
【０１３２】
ステップ５１０では、バックアップピアの変更処理を行う。すなわち、バックアップピア候補となるピアに対して、バックアップピアとなってもらうことを依頼するための依頼メッセージを再度送信することにより、バックアップピアを再検索する。そして、ピアバックアップ不可であることを通知されたバックアップに代えて新たに検索したピアをバックアップピアとして登録する。
【０１３３】
次に、ホストＢのアプリケーション実行部２２で実行される処理について、図１５に示すフローチャートを参照して説明する。なお、ここでは、ホストＢは、バックアップピアとして動作するようホストＡから依頼があり、ホストＡのバックアップピアとして動作するか否かを判断し、バックアップピアとして動作することを決定すると共にこれをホストＡに通知し、バックアップモードが設定された状態であるものとして説明する。
【０１３４】
まず、ステップ６００では、Ｐ２Ｐネットワーク上の他のホストから、そのホストにファイルがストアされたことを通知するメッセージを受信したか否かを判断し、メッセージを受信した場合にはステップ６０２へ移行し、メッセージを受信していない場合には、ステップ６１２へ移行する。
【０１３５】
ステップ６０２では、ストアされたファイルのインデックスデータを送信するように要求し、インデックスデータを取得する。
【０１３６】
ステップ６０４では、取得したインデックスデータを参照し、それがバックアップすべきファイルのインデックスデータであるか否か、すなわち、ホストＡの共有フォルダにストアされたファイルのインデックスデータであるか否かを判断する。そして、バックアップすべきと判断した場合には、ステップ６０６へ移行し、バックアップすべきでないと判断した場合には、ステップ６００へ戻って上記と同様の処理を繰り返す。
【０１３７】
ステップ６０６では、バックアップが可能であるか否かを判断する。これは、例えばファイルをコピーするのに空きディスク容量に余裕があるか否かを判断する。そして、バックアップ可能と判断した場合には、ステップ６０８へ移行し、バックアップ不可と判断した場合には、ステップ６１４へ移行する。
【０１３８】
ステップ６０８では、ファイルの実体データを送信するように依頼元のピアであるホストＡに要求し、これを取得してアプリケーションメモリ２２に保存する。
【０１３９】
一方、ステップ６１４では、バックアップが不可能であることを依頼元のピアであるホストＡに通知する。
【０１４０】
ステップ６１０では、設定されたバックアップモードが恒久バックアップモードであるか否かを判断し、恒久バックアップモードが設定されている場合には、ステップ６１２へ移行し、通常バックアップモードが設定されている場合には、ステップ６００へ戻って上記と同様の処理を行う。
【０１４１】
ステップ６１２では、取得したファイルのコピーを作成し、アプリケーションメモリ２２に保存する。これにより、ホストＢには、ホストＡからバックアップの依頼があったファイルの複製が二つ保存されることとなる。
【０１４２】
ここで、図１２に示すように、ＰＣ１２Ｂ、すなわちホストＢの共有モードがダウンロードモードに、ＰＣ１２Ｃ、すなわちホストＣの共有モードがコピーモードに、ＰＣ１２Ｄ、すなわちホストＤの共有モードがダウンロードモードに設定されており、ＰＣ１２Ａ、すなわちホストＡのバックアップピアとしてホストＢが通常バックアップモードで設定されている場合において、ホストＡが、ファイルＦを自身の共有フォルダに保存した場合の各ホストの動作について説明する。
【０１４３】
この場合、ホストＢは、ダウンロードモードであるが、ホストＡのバックアップピアとして設定されているため、コピーモードが設定されているのと同様に動作し、ホストＡからファイルＦを取得し、これを複製Ｆ’として保存する。ホストＣは、コピーモードであるため、ホストＡのバックアップピアとして設定されているか否かに関わりなく、ホストＡからファイルＦを取得し、これを複製Ｆ’として保存する。ホストＤは、ダウンロードモードであるため、ファイルＦのインデックスデータをホストＡから取得して保存し、必要となった時に、ファイルＦの実体データをホストＡから取得する。
【０１４４】
このような状態でホストＡが何らかの理由により停止した場合でも、バックアップピアとしてのホストＢにファイルＦの複製Ｆ’が保存されているため、ホストＢからファイルＦを取得することができる。
【０１４５】
また、ホストＢが恒久バックアップモードに設定されている場合には、ホストＢは、ホストＡからファイルＦを取得し、これを複製Ｆ’として保存すると共に、さらにその複製Ｆ”（複製データ）を作成して保存する。これにより、ホストＡでファイルＦが削除され、これと一緒にホストＢの複製Ｆ’が削除された場合でも、複製Ｆ”は削除されずに保存されたままであるため、ファイルＦを誤って削除した場合でもファイルＦを復元することができる。
【０１４６】
このような恒久バックアップモードの使用例としては、以下のようなケースが考えられる。
【０１４７】
例えば、ファイル編集アプリケーションにおいて、文書作成中に突発的にホストＡがクラッシュしたような場合でも、編集中の文書をある程度回復できるように、編集中の文書を特定のフォルダに例えば定期的に保存しておく場合がある。また、ファイル編集アプリケーションの終了時には、編集中のファイルを保存するか否かをユーザーに選択させてから終了する場合が多い。
【０１４８】
このような場合において、ファイル編集アプリケーションが、ホストＡで編集しているファイルＦの回復用のファイルをＴｅｍｐＦとして共有フォルダに保存するようにしていた場合、ＴｅｍｐＦは、恒久バックアップモードが設定されているホストＢに複製としてのＴｅｍｐＦ’としてバックアップされると共に、その複製であるＴｅｍｐＦ”が作成されてホストＢに保存される。
【０１４９】
ここで、ファイル編集アプリケーションを終了させる際に編集中のファイルを保存するか否かをユーザーに問い合わせた際に、誤ってユーザーが保存を選択せずに終了させてしまう場合がある。
【０１５０】
このような場合、通常バックアップモードでは、ＴｅｍｐＦは保存する必要がないため、削除されると共に、ホストＢのＴｅｍｐＦ’も削除されてしまうが、恒久バックアップモードでは、ＴｅｍｐＦ”はホストＢに保存されたままとなるため、編集したファイルＦを復元することが可能となる。
【０１５１】
このように、本実施形態では、Ｐ２Ｐネットワーク上のピア全てがバックアップピアと成り得る構成とし、また、任意のピアをバックアップピアとして設定することができるため、効率よくバックアップを行うことができる。なお、上記ではピア毎にバックアップピアを設定しているが、例えば共有フォルダ毎にバックアップピアを設定できるようにしてもよい。
【０１５２】
また、本実施形態では、バックアップピアがバックアップ不可能になった場合に、バックアップの依頼元のピアが代わりのバックアップピアを検索するようにしているが、これに限らず、バックアップ不可能となったバックアップピアが代わりのバックアップピアを検索するようにしてもよい。
【０１５３】
また、バックアップピアが、バックアップピア候補として依頼された場合に、すでに自ピアをバックアップピアとして設定しているピアの数を、バックアップの依頼元のピアに通知するようにしてもよい。これにより、依頼元のピアでは、すでに依頼先のピアがバックアップピアとして多くのピアから設定されている場合には、そのピアはバックアップピアの候補から外すことができ、特定のピアにバックアップ用のファイルが集中しないようにすることができる。
【０１５４】
また、本実施形態では、ピアがＰＣの場合について説明したが、これに限らず、記憶装置を備えた装置であればプリンタやファクシミリ、スキャナ等の他の装置にも本発明を適用可能であることはいうまでもない。
【図面の簡単な説明】
【０１５５】
【図１】Ｐ２Ｐネットワークのネットワーク構成図である。
【図２】ピュアＰ２Ｐのネットワーク構成図である。
【図３】ハイブリッドＰ２Ｐのネットワーク構成図である。
【図４】Ｐ２Ｐネットワークのグループについて説明するための概念図である。
【図５】ピアの基本的構成のブロック図である。
【図６】メッセージ制御部のブロック図である。
【図７】エンドピアで実行される処理のフローチャートである。
【図８】転送機能付きピアで実行される処理のフローチャートである。
【図９】スパニングツリーのイメージ図である。
【図１０】Ｐ２Ｐネットワークの他の形態のネットワーク構成図である。
【図１１】待ち合わせ機能付きピアで実行される処理のフローチャートである。
【図１２】Ｐ２Ｐネットワークの構成図である。
【図１３】ホストＡで実行されるメインルーチンのフローチャートである。
【図１４】ホストＡで実行されるバックアップ処理のフローチャートである。
【図１５】ホストＢで実行される処理ルーチンのフローチャートである。
【符号の説明】
【０１５６】
１０、１１      Ｐ２Ｐネットワーク
１２      ピア
１６      Ｐ２Ｐ基盤構成部
１８      Ｐ２Ｐ基盤管理データ記憶部
２０      アプリケーション実行部
２２      アプリケーションメモリ
２４      メッセージ制御部
２６      データ管理部
２８      送信部
３０      受信部
３２      ネットワーク
３４      サービス実行部
３６      メッセージディスパッチ部
３８      ピア探索サービス部
４０      告知情報取得サービス部
４２      告知情報取得サービス部
４４      グループ管理サービス部
４６      ユーザー管理サービス部
４８      ピア管理サービス部
【図１】
2006195546.tif 000003
【図２】
2006195546.tif 000004
【図３】
2006195546.tif 000005
【図４】
2006195546.tif 000006
【図５】
2006195546.tif 000007
【図６】
2006195546.tif 000008
【図７】
2006195546.tif 000009
【図８】
2006195546.tif 000010
【図９】
2006195546.tif 000011
【図１０】
2006195546.tif 000012
【図１１】
2006195546.tif 000013
【図１２】
2006195546.tif 000014
【図１３】
2006195546.tif 000015
【図１４】
2006195546.tif 000016
【図１５】
2006195546.tif 000017