(57)【要約】【課題】装置同士で時刻の同期を行うことなく互いの接続状態を認識できる情報処理装置を提供すること。【解決手段】情報処理装置は、通信部によるピアツーピア通信を制御する通信制御部、各ピアツーピア通信の通信主体を示す情報、各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶する記憶部、通信部が主体的に行うピアツーピア通信以外の第１ピアツーピア通信の通信主体を示す情報に、第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得する取得部、状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、演算により算出された数値を、第１ピアツーピア通信の通信状態を示す数値として、第１ピアツーピア通信の通信主体を示す情報と対応付けることで、管理情報として記憶部に記憶させる演算部、を備える。【選択図】図３
2015099507.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置同士がピアツーピア通信を行うことで構成されるネットワークへ自装置を接続させるように通信部を制御する通信制御部と、
前記ネットワークにおける各ピアツーピア通信の通信主体を示す情報と、前記各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶する記憶部と、
前記ネットワークにおいて、前記通信部が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報に、前記第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得する取得部と、
前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１ピアツーピア通信の通信状態を示す数値として、前記第１ピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶させる演算部と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記取得部は、前記状態情報として、第１の状態情報又は前記第１の状態情報とは異なる第２の状態情報とを取得し、
前記演算部は、前記状態情報が取得された順に、前記予め定められた演算を行い、
前記演算部による演算により算出された数値は、前記状態情報がすべて取得されたときには、前記取得部により前記状態情報が取得された順序にかかわらず、同じ値となる、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記通信制御部は、ピアツーピア通信によって第１情報処理装置と接続されている自装置に、ピアツーピア通信によって前記第１情報処理装置とは異なる第２情報処理装置が接続された場合、自装置と前記第１情報処理装置との間のピアツーピア通信の通信主体を示す情報が、自装置と前記第１情報処理装置との間のピアツーピア通信の通信状態を示す情報に対応付けられた情報を、前記状態情報として前記第２情報処理装置に送信するように前記通信部を制御する、
情報処理装置。
【請求項４】
請求項１から３のうちいずれか一項に記載の情報処理装置であって、
前記予め定められた演算は、前記状態情報に含まれるピアツーピア通信の通信状態を示す情報が接続中を示している場合の演算と、切断中を示している場合の演算とで逆方向の演算である、
情報処理装置。
【請求項５】
請求項１から４のうちいずれか一項に記載の情報処理装置であって、
前記通信制御部は、前記ネットワークに含まれていないピアツーピア通信で構成される他のネットワークに属する第３情報処理装置に、自装置がピアツーピア通信で接続される場合、前記記憶部に記憶される前記管理情報の一部又は全部を、前記第３情報処理装置に送信するように前記通信部を制御する、
情報処理装置。
【請求項６】
請求項１から５のうちいずれか一項に記載の情報処理装置であって、
前記演算部は、自装置が前記取得部により、ピアツーピア通信で接続された他の情報処理装置から、前記管理情報の一部又は全部を取得した場合、前記取得部により取得された管理情報と、前記記憶部により記憶された管理情報とに基づいて、前記記憶部により記憶された管理情報の更新を行う、
情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記更新とは、前記取得部により取得された管理情報と、前記記憶部により記憶された管理情報との差分を、前記記憶部により記憶された管理情報に追加する、
情報処理装置。
【請求項８】
第１情報処理装置と、第２情報処理装置と、第３情報処理装置とを具備する情報処理システムであって、
前記第１情報処理装置は、
前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信主体を示す情報と、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信状態を示す情報とを対応付けた状態情報を、前記第３情報処理装置に送信するように通信部を制御する通信制御部、
を備え、
前記第３情報処理装置は、
前記第１情報処理装置とピアツーピア通信を行うように通信部を制御する通信制御部と、
前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信主体を示す情報と、当該ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶する記憶部と、
前記状態情報を、前記第１情報処理装置から取得する取得部と、
前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信状態を示す数値として、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶させる演算部と、
を備える、
情報処理システム。
【請求項９】
情報処理装置同士がピアツーピア通信を行うことで構成されるネットワークへ自装置を接続させるように通信部を制御し、
前記ネットワークにおける各ピアツーピア通信の通信主体を示す情報と、前記各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶部に記憶し、
前記ネットワークにおいて、前記通信部が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報に、前記第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得し、
前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１ピアツーピア通信の通信状態を示す数値として、前記第１ピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶する、
情報処理方法。
【請求項１０】
コンピュータに、
情報処理装置同士がピアツーピア通信を行うことで構成されるネットワークへ自装置を接続させるように通信部を制御させ、
前記ネットワークにおける各ピアツーピア通信の通信主体を示す情報と、前記各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶部に記憶させ、
前記ネットワークにおいて、前記通信部が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報に、前記第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得させ、
前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１ピアツーピア通信の通信状態を示す数値として、前記第１ピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶させる、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
ある端末で発生したイベント情報を他の端末で受信する場合、ＴＣＰ（Transmission  Control  Protocol）／ＩＰ（Internet  Protocol）のパケットに付与されたシーケンス番号により送信元での送信順序と、受信先での受信順序の整合性（到着順序性と称する）が保証される。一方、複数の端末で発生したイベント情報をある端末で受信する場合、通信遅延が生じるため、異なる送信元で送信された送信順序と受信先での受信順序が保証されない。
【０００３】
これに対して、ネットワークに接続された情報処理装置同士の時刻を同期し、発生イベントに発生時刻を付加して送信することで、受信したイベントを発生時刻順に並び替えることができる技術が知られている。また、ネットワークに接続された情報処理装置同士の時刻を同期する方法として、ＮＴＰ（Network  Time  Protocol）が知られている（非特許文献１参照）。ＮＴＰでは、原子時計やＧＰＳ（Global  Positioning  System）等から直接時刻を取得したＮＴＰサーバーに対して、情報処理装置がクライアントとして時刻の問い合わせを行うことで、そのネットワークに接続された情報処理装置同士の時刻を同期する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Network  Time  Protocol  Version  4:  Protocol  and  Algorithms  Specification,  IETF,  ISSN:  2070-1721,  http://tools.ietf.org/html/rfc5905/
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＮＴＰを用いた方式では、サーバーにアクセスできない状況が発生した場合、ネットワークに接続された情報処理装置同士の時刻を同期することができなくなる。そのため、各種情報の到着順序性を保証することができなくなってしまう。このような状況下では、ネットワークにおける情報処理装置の接続又は切断を示す情報を含む情報の到着順序も保証されない。その結果として、ネットワークに接続された情報処理装置同士で、互いの接続状態を正しく認識することができなくなる場合がある。
【０００６】
そこで本発明は、上記従来方式の問題に鑑みてなされたものであり、装置同士で時刻の同期を行うことなく互いの接続状態を認識できる情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラムを提供する。
【課題を解決するための手段】
【０００７】
（１）本発明の一態様は、情報処理装置同士がピアツーピア通信を行うことで構成されるネットワークへ自装置を接続させるように通信部を制御する通信制御部と、前記ネットワークにおける各ピアツーピア通信の通信主体を示す情報と、前記各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶する記憶部と、前記ネットワークにおいて、前記通信部が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報に、前記第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得する取得部と、前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１ピアツーピア通信の通信状態を示す数値として、前記第１ピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶させる演算部と、を備える情報処理装置である。
【０００８】
（２）また、本発明の他の態様は、（１）に記載の情報処理装置であって、前記取得部は、前記状態情報として、第１の状態情報又は前記第１の状態情報とは異なる第２の状態情報とを取得し、前記演算部は、前記状態情報が取得された順に、前記予め定められた演算を行い、前記演算部による演算により算出された数値は、前記状態情報がすべて取得されたときには、前記取得部により前記状態情報が取得された順序にかかわらず、同じ値となる、情報処理装置である。
【０００９】
（３）また、本発明の他の態様は、（１）又は（２）に記載の情報処理装置であって、前記通信制御部は、ピアツーピア通信によって第１情報処理装置と接続されている自装置に、ピアツーピア通信によって前記第１情報処理装置とは異なる第２情報処理装置が接続された場合、自装置と前記第１情報処理装置との間のピアツーピア通信の通信主体を示す情報が、自装置と前記第１情報処理装置との間のピアツーピア通信の通信状態を示す情報に対応付けられた情報を、前記状態情報として前記第２情報処理装置に送信するように前記通信部を制御する、情報処理装置である。
【００１０】
（４）また、本発明の他の態様は、（１）から（３）のうちいずれか一項に記載の情報処理装置であって、前記予め定められた演算は、前記状態情報に含まれるピアツーピア通信の通信状態を示す情報が接続中を示している場合の演算と、切断中を示している場合の演算とで逆方向の演算である、情報処理装置である。
【００１１】
（５）また、本発明の他の態様は、（１）から（４）のうちいずれか一項に記載の情報処理装置であって、前記通信制御部は、前記ネットワークに含まれていないピアツーピア通信で構成される他のネットワークに属する第３情報処理装置に、自装置がピアツーピア通信で接続される場合、前記記憶部に記憶される前記管理情報の一部又は全部を、前記第３情報処理装置に送信するように前記通信部を制御する、情報処理装置である。
【００１２】
（６）また、本発明の他の態様は、（１）から（５）のうちいずれか一項に記載の情報処理装置であって、前記演算部は、自装置が前記取得部により、ピアツーピア通信で接続された他の情報処理装置から、前記管理情報の一部又は全部を取得した場合、前記取得部により取得された管理情報と、前記記憶部により記憶された管理情報とに基づいて、前記記憶部により記憶された管理情報の更新を行う、情報処理装置である。
【００１３】
（７）また、本発明の他の態様は、（６）に記載の情報処理装置であって、前記更新とは、前記取得部により取得された管理情報と、前記記憶部により記憶された管理情報との差分を、前記記憶部により記憶された管理情報に追加する、情報処理装置である。
【００１４】
（８）また、本発明の他の態様は、第１情報処理装置と、第２情報処理装置と、第３情報処理装置とを具備する情報処理システムであって、前記第１情報処理装置は、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信主体を示す情報と、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信状態を示す情報とを対応付けた状態情報を、前記第３情報処理装置に送信するように通信部を制御する通信制御部、を備え、前記第３情報処理装置は、前記第１情報処理装置とピアツーピア通信を行うように通信部を制御する通信制御部と、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信主体を示す情報と、当該ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶する記憶部と、前記状態情報を、前記第１情報処理装置から取得する取得部と、前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信状態を示す数値として、前記第１情報処理装置と前記第２情報処理装置とのピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶させる演算部と、を備える情報処理システムである。
【００１５】
（９）また、本発明の他の態様は、情報処理装置同士がピアツーピア通信を行うことで構成されるネットワークへ自装置を接続させるように通信部を制御し、前記ネットワークにおける各ピアツーピア通信の通信主体を示す情報と、前記各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶し、前記ネットワークにおいて、前記通信部が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報に、前記第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得し、前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１ピアツーピア通信の通信状態を示す数値として、前記第１ピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶する、情報処理方法である。
【００１６】
（１０）また、本発明の他の態様は、コンピュータに、情報処理装置同士がピアツーピア通信を行うことで構成されるネットワークへ自装置を接続させるように通信部を制御させ、前記ネットワークにおける各ピアツーピア通信の通信主体を示す情報と、前記各ピアツーピア通信の通信状態を示す数値とを対応付けて、管理情報として記憶部に記憶させ、前記ネットワークにおいて、前記通信部が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報に、前記第１ピアツーピア通信の通信状態を示す情報が対応付けられた状態情報を、自装置に接続された他の情報処理装置から取得させ、前記状態情報に基づく数値と前記記憶部により記憶される通信状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、前記第１ピアツーピア通信の通信状態を示す数値として、前記第１ピアツーピア通信の通信主体を示す情報と対応付けることで、前記管理情報として前記記憶部に記憶させる、情報処理プログラムである。
【発明の効果】
【００１７】
本発明の一態様によれば、装置同士で時刻の同期を行うことなく互いの接続状態を認識できる情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態に係る情報処理システム１の利用状況の一例を示す図である。
【図２】情報処理装置１０のハードウェア構成の一例を示す図である。
【図３】情報処理装置１０の機能構成の一例を示す図である。
【図４】管理情報１２−１の一例として、図１（Ｂ）における情報処理装置１０−Ａの記憶部１２Ａにより記憶される管理情報１２−１Ａを示す図である。
【図５】図１（Ｂ）に示した状況から図１（Ｃ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。
【図６】図５（Ａ）に示した状況から図６（Ａ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。
【図７】図６（Ａ）に示した状況から図７（Ａ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。
【図８】図７（Ａ）に示した状況から図８（Ａ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。
【図９】情報処理装置１０が、ネットワークＮにおける情報処理装置間の接続状態を管理する処理の流れの一例を説明するためのシーケンス図である。
【図１０】第２の実施形態に係る情報処理システム２の利用状況の一例を示す図である。
【発明を実施するための形態】
【００１９】
＜概要＞
まず、以下に示す実施形態に係る情報処理システム１の概要を説明し、その後により詳細な実施形態を説明する。例えば、後述する図１（Ｂ）に示したような状況において、情報処理装置１０−Ｃは、情報処理装置１０−Ｃと、情報処理装置１０−Ｄとのピアツーピア通信Ｃ１の通信状態を示す数値を、情報処理装置１０−Ａ、１０−Ｂに送信する。また、情報処理装置１０−Ａ、１０−Ｂは、それぞれ、情報処理装置１０−Ｃとピアツーピア通信Ｃ２、Ｃ３を行う。ここで、ピアツーピア通信とは、サーバーを介さず、情報処理装置同士が直接接続することで、通信管理上の主従関係がない通信を行う通信形式である。
【００２０】
情報処理装置１０−Ａ、１０−Ｂの各々は、ピアツーピア通信Ｃ１を示す情報と、ピアツーピア通信Ｃ１の通信状態に基づいた数値とを対応付けて、管理情報として記憶する。より具体的には、情報処理装置１０−Ａ、１０−Ｂは、ピアツーピア通信Ｃ１の通信状態を示す状態情報であって、ピアツーピア通信Ｃ１を示す情報と対応付けられた状態情報を、情報処理装置１０−Ｃから取得する。情報処理装置１０−Ａ、１０−Ｂは、取得した状態情報に基づく数値と予め記憶する数値を用いて、予め定められた演算を行う。情報処理装置１０−Ａ、１０−Ｂは、この演算結果の数値を、ピアツーピア通信Ｃ１の状態を示す数値として、ピアツーピア通信Ｃ１を示す情報と対応付けて、管理情報として記憶する。
【００２１】
ここで、情報処理装置１０−Ａは、例えば、情報処理装置１０−Ｂを介して、又は、情報処理装置１０−Ｃから直接、状態情報を取得する。このとき、状態情報について、情報処理装置１０−Ｃから送信した送信順序と、情報処理装置１０−Ａが受信する受信順序が異なる場合がある。より具体的には、情報処理装置１０−Ａは、ピアツーピア通信Ｃ１の通信状態が「接続」から「切断」へ変化し、そして再び「接続」に変化した場合、それぞれの通信状態を示す状態情報を、情報処理装置１０−Ｂと、情報処理装置１０−Ｃとからそれぞれ受信する。
【００２２】
この時、アドホックなネットワークでは、情報処理装置１０−Ａが、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの通信状態が「接続」であると判断しているとき、情報処理装置１０−Ｂから「接続」を示す状態情報を受信し、次いで情報処理装置１０−Ｃから「切断」を示す状態情報を受信する状況が生じる場合がある。このような場合、従来の情報処理装置では、後から受信した「切断」を示す状態情報を、ピアツーピア通信Ｃ１の最新の通信状態（つまり、切断されている状況）であると判断してしまう。そのため、従来の情報処理装置は、ピアツーピア通信の最終的な状態を正確に管理できない場合がある。
【００２３】
一方、以下の実施形態における情報処理システム１の場合、情報処理装置１０−Ａは、状態情報の送信順序が受信順序とは異なる時でも、情報処理装置１０−Ｃから送信したすべての状態情報について演算をした場合には、同じ数値になる演算を行う。これにより、情報処理システム１は、送信順序が受信順序と異なる時でも、各ピアツーピア通信の最終的な状態を、正確に管理できる。
【００２４】
＜第１の実施形態＞
以下、本発明の第１の実施形態について、図面を参照して説明する。図１（Ａ）〜（Ｃ）は、それぞれ第１の実施形態に係る情報処理システム１の利用状況の一例を示す図である。情報処理システム１は、例えば、情報処理装置１０−Ａと、情報処理装置１０−Ｂと、情報処理装置１０−Ｃと、情報処理装置１０−Ｄとを具備する。以下の説明では、個々の情報処理装置を区別する必要がなければ、情報処理装置１０と総称する。なお、情報処理システム１は、少なくとも２台以上の情報処理装置１０によって構成される。
【００２５】
情報処理装置１０は、例えば、携帯電話端末や多機能携帯電話端末（スマートフォン）、タブレット型ＰＣ（Personal  Computer）、ノートＰＣ、通信機能付きの電子書籍リーダー等である。情報処理装置１０は、情報処理装置間でブルートゥース（登録商標）や赤外線通信、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（登録商標）等の通信規格に基づいてピアツーピア通信を行う。また、情報処理装置１０は、情報処理装置間がＵＳＢ（Universal  Serial  Bus）ケーブル等によって有線接続されることで、ＵＳＢ等の通信規格に基づいてピアツーピア通信を行うものとしてもよい。
【００２６】
図１（Ａ）〜（Ｃ）に示したように、情報処理システム１では、情報処理装置１０がそれぞれピアツーピア通信により接続されることで、互いに通信を行うことができるアドホックなネットワークＮが構築される。図１（Ａ）には、情報処理装置１０−Ａ、Ｂ、Ｃがそれぞれ相互に通信可能に接続されており、情報処理装置１０−Ｄが接続されずに存在している状況を示している。
【００２７】
図１（Ｂ）には、情報処理装置１０−Ａ、１０−Ｂ、１０−Ｃが相互に通信可能に接続されており、さらに、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが相互に通信可能に接続された状況を示している。情報処理装置１０−Ｄが情報処理装置１０−Ｃに接続されると、情報処理装置１０−Ｃは、自装置に接続された他の情報処理装置（図１（Ｂ）では、情報処理装置１０−Ａ及び情報処理装置１０−Ｂ）に対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す情報を、接続状態を示す情報として転送（例えば、フラッディングアルゴリズムを用いて転送）する。なお、接続状態を示す情報は、状態情報の一例である。
【００２８】
ここで、接続状態を示す情報には、ネットワークＮにおける各ピアツーピア通信に係る情報処理装置の識別情報の対が含まれる。また、情報処理装置の識別情報とは、例えば、ＵＵＩＤ（Universally  Unique  IDentifier）とするが、ＭＡＣ（Media  Access  Control）アドレスやＵＩＤ（User  Identifier）等、ネットワークＮにおいてそれぞれの情報処理装置を示す重複しない情報であれば如何なる情報でもよい。
【００２９】
図１（Ｃ）には、図１（Ｂ）における情報処理装置１０−Ｄが、情報処理装置１０−Ｃから何らかの理由で切断された状況を示している。何らかの理由とは、例えば、ユーザからの操作によって情報処理装置１０−Ｄから情報処理装置１０−Ｃとの接続が切断されることや、電波の干渉等によってユーザの意図とは別に切断されること等である。このような場合、情報処理装置１０−Ｃは、自装置に接続された他の情報処理装置（図１（Ｃ）では、情報処理装置１０−Ａ及び情報処理装置１０−Ｂ）に対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの間の接続が切断されたことを示す情報を、上述した接続状態を示す情報として転送する。
【００３０】
情報処理装置１０は、他の情報処理装置Ｘから通信終了を示す情報を受信することなく接続が切断された場合、キープアライブパケットに対する応答がないことによって、情報処理装置Ｘとの接続が切断されたことを判断する。キープアライブパケットとは、所定の時間が経過するごとに、情報処理装置１０によって情報処理装置Ｘに、ピアツーピア通信による接続が保持されているか否かを確認するために送信されるパケットである。所定の時間とは、３０秒程度である。情報処理装置１０は、キープアライブパケットに対する応答に基づいて、情報処理装置Ｘとの接続が切断されたと判断した場合、情報処理装置１０と情報処理装置Ｘとの間の接続が切断されたことを示す情報を、自装置と情報処理装置Ｘとの識別情報の対と対応付けて、接続状態を示す情報として自装置に接続された他の情報処理装置Ｙに送信する。なお、情報処理装置Ｙには、情報処理装置Ｘが含まれているものとしてもよいし、含まれないものとしてもよい。また、このようなキープアライブパケットに関する処理は、情報処理装置１０の各機能部のうち後述する送信制御部１８１によって行われる。
【００３１】
図１（Ｂ）及び図１（Ｃ）において、情報処理装置１０−Ａ及び情報処理装置１０−Ｂは、情報処理装置１０−Ｃから上述した接続状態を示す情報を取得すると、取得した情報が示す接続状態に応じて所定の演算を行い、演算の結果として算出された値に、接続状態を示す情報に包含される識別情報の対を対応付けて、管理情報１２−１として自装置の記憶部１２に記憶する。識別情報の対は、ピアツーピア通信を示す情報の一例である。なお、管理情報１２−１とは、ネットワークＮにおける情報処理装置間の接続状態を管理するための情報である。管理情報１２−１についての詳細は後述する。また、所定の演算についての詳細も後述する。
【００３２】
情報処理装置１０−Ａ及び情報処理装置１０−Ｂは、情報処理装置１０−Ｃから上述した接続状態を示す情報を取得すると、取得した接続状態を示す情報を、自装置に接続された他の情報処理装置に転送する。より具体的には、情報処理装置１０−Ａは、情報処理装置１０−Ｃから接続状態を示す情報を取得した場合、取得した情報を情報処理装置１０−Ｂに転送する。同様に、情報処理装置１０−Ｂは、情報処理装置１０−Ｃから接続状態を示す情報を取得した場合、取得した情報を情報処理装置１０−Ａに転送する。このように情報処理システム１の情報処理装置１０は、接続状態を示す情報を互いに転送しあうため、ネットワークＮにおける情報処理装置間の接続状態を、個々の情報処理装置１０ごとに管理することができる。
【００３３】
次に、図２を参照することで、情報処理装置１０のハードウェア構成について説明する。図２は、情報処理装置１０のハードウェア構成の一例を示す図である。情報処理装置１０は、例えば、ＣＰＵ（Central  Processing  Unit）１１と、記憶部１２と、入力受付部１３と、表示部１４と、通信部１５とを備え、通信部１５を介して他の情報処理装置とピアツーピア通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。ＣＰＵ１１は、記憶部１２に格納された各種プログラムを実行する。
【００３４】
記憶部１２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）などを含み、情報処理装置１０が処理する各種情報や画像、プログラム等を格納する。なお、記憶部１２は、情報処理装置１０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００３５】
入力受付部１３は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力受付部１３は、後述する表示部１４と一体化されたタッチパネルとして構成されてもよい。表示部１４は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。通信部１５は、例えば、ブルートゥースやＷｉ−Ｆｉ  Ｄｉｒｅｃｔ等の規格に基づいて無線通信を行う。なお、通信部１５は、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成され、有線通信を行うものとしてもよい。
【００３６】
次に、図３を参照することで、情報処理装置１０の機能構成について説明する。図３は、情報処理装置１０の機能構成の一例を示す図である。情報処理装置１０は、例えば、記憶部１２と、入力受付部１３と、表示部１４と、通信部１５と、ソフトウェア機能部１６とを備える。記憶部１２は、管理情報１２−１と、ＣＰＵ１１が実行する図示しない各種プログラムとを格納する。
【００３７】
ここで、図４を参照することで、管理情報１２−１について説明する。図４は、管理情報１２−１の一例として、図１（Ｂ）における情報処理装置１０−Ａの記憶部１２Ａにより記憶される管理情報１２−１Ａを示す図である。管理情報１２−１は、ネットワークＮにおける各情報処理装置間での接続状態を管理するための情報である。管理情報１２−１には、図４に示したように、識別情報の対と、接続状態を示す数値とが対応付けられている。接続状態を示す数値とは、情報処理装置１０が接続状態を示す情報を取得した際、取得した情報が示す接続状態に応じて、後述する所定の演算を行うことで算出される数値である。図４に示した「＋１」は、図４の「識別情報１」と「識別情報２」とがそれぞれ示す情報処理装置同士が接続されていることを示している。なお、接続状態を示す数値とは、通信状態を示す数値の一例である。
【００３８】
ここで、管理情報１２−１では、接続状態を示す数値がゼロ以下の場合、図４の「識別情報１」と「識別情報２」とがそれぞれ示す情報処理装置同士の接続が切断されていることを示し、接続状態を示す数値が正の値の場合、図４の「識別情報１」と「識別情報２」とがそれぞれ示す情報処理装置同士が接続されていることを示す。なお、管理情報１２−１は、例えば、所定の正又は負の数値Ｘ未満を、図４の「識別情報１」と「識別情報２」とがそれぞれ示す情報処理装置同士の接続が切断されていることを示し、所定の正又は負の数値Ｘ以上を、図４の「識別情報１」と「識別情報２」とがそれぞれ示す情報処理装置同士が接続されていることを示すものとしてもよい。
【００３９】
ソフトウェア機能部１６は、例えば、アプリケーション１７と、ネットワーク管理機能部１８と、ディスカバリ機能部１９と、メッセージ送受信機能部２０とを備える。これらの機能部のうち一部又は全部は、例えば、ＣＰＵ１１が、記憶部１２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００４０】
アプリケーション１７は、情報処理装置１０において実行される各種アプリケーションプログラムである。アプリケーション１７は、例えば、不特定多数の人の集合や待ち合わせを補助するアプリケーションプログラムである。アプリケーション１７は、所定の集合場所に集まった人が所有する情報処理装置１０によって構成されるネットワークＮに、後から集合した人が所有する情報処理装置１０が新たに接続された場合、その後から集合した人が所有する情報処理装置１０が新たに接続されたことを、ネットワークＮを構成する情報処理装置１０のすべてに送信する。これによって、情報処理装置１０のユーザは、アプリケーション１７を介して、直接人と人とが会うことなく、後から集合する人が到着したことを把握することができる。また、アプリケーション１７は、ユーザに対して、ネットワークＮを構成する情報処理装置１０同士による意味情報の送受信及びその表示を行う。
【００４１】
なお、アプリケーション１７は、これに限られず、ネットワークＮを構成する情報処理装置１０の数が一定数となったときに、ネットワークＮを構成するすべての情報処理装置１０に割引券や広告画像等を配布するアプリケーションプログラムであってもよいし、緊急災害時においてサーバーを介した通信が不可能な状況下で、救助を求める人が近隣に居ないかどうかを確認するためのアプリケーションプログラム等であってもよい。
【００４２】
アプリケーション１７は、後述するネットワーク管理機能部１８と、ディスカバリ機能部１９と、メッセージ送受信機能部２０とに対して、入力受付部１３により受け付けられたユーザからの入力に基づいて、各種の要求を出力し、所定の動作を行うように制御する。
【００４３】
ネットワーク管理機能部１８は、例えば、送信制御部１８１と、取得部１８２と、演算部１８３とを備える。ネットワーク管理機能部１８は、自装置の接続状態と、自装置が接続しているネットワークＮを構成する情報処理装置間の接続状態とを管理する。より具体的には、ネットワーク管理機能部１８は、アプリケーション１７からの要求に応じて、自装置と情報処理装置Ｘとの間の接続状態を、「接続」と「切断」とのいずれかに変化させる。
【００４４】
送信制御部１８１は、自装置と他の情報処理装置との間の接続状態を変化させた際、自装置と他の情報処理装置との間の接続状態を示す情報を、自装置に接続された他の情報処理装置に送信（例えば、フラッディングアルゴリズムを用いて送信）する。なお、送信制御部１８１は、通信制御部の一例である。取得部１８２は、自装置と他の情報処理装置との間の接続状態を示す情報を取得する。演算部１８３は、取得部１８２により取得された接続状態を示す情報に基づいて、管理情報１２−１の更新を行い（管理情報１２−１が存在しない場合、生成する）、自装置が接続しているネットワークＮを構成する情報処理装置間の接続状態を管理する。管理情報１２−１の更新の処理についての詳細は後述する。
【００４５】
ディスカバリ機能部１９は、例えば、自装置が他の情報処理装置Ｘと接続可能であることを示す情報を、ハローメッセージとして所定の時間が経過するごとに情報処理装置Ｘにブロードキャストする。所定の時間とは、例えば、２秒程度である。また、ディスカバリ機能部１９は、情報処理装置Ｘからブロードキャストされたハローメッセージを、通信部１５を介して受信することにより、自装置と接続可能な他の情報処理装置Ｘを検出する。ディスカバリ機能部１９は、検出した情報処理装置Ｘを示す情報を、アプリケーション１７に出力する。
【００４６】
メッセージ送受信機能部２０は、アプリケーション１７からの要求に従い、他の情報処理装置との間で、通信部１５を介して意味情報を送受信する。ここで、意味情報とは、例えば、ユーザから入力受付部１３により入力された文章や、ユーザにより選択された定型文等である。
【００４７】
次に、図５〜８を参照することで、ネットワーク管理機能部１８が行う所定の演算及び管理情報１２−１の生成又は更新の処理について説明する。情報処理システム１の情報処理装置１０は、以下で説明するネットワーク管理機能部１８による処理によって、互いの時刻を同期することなしに、ネットワークＮにおける情報処理装置間の接続状態を正しく管理することができる。図５は、図１（Ｂ）に示した状況から図１（Ｃ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。
【００４８】
図５（Ａ）では、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断され、情報処理装置１０−Ｃの送信制御部１８１Ｃから情報処理装置１０−Ｂに、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報が送信された状況を示している。この場合、図５（Ｂ）に示した管理情報１２−１Ａは、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報が情報処理装置１０−Ａの取得部１８２Ａにより取得されていないため、更新が行われず、図４に示した管理情報１２−１Ａの状態から変化していない。
【００４９】
一方、管理情報１２−１Ｂは、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報が情報処理装置１０−Ｂの取得部１８２Ｂに取得されているため、取得された情報に基づいて所定の演算が行われることによって、最下段の接続状態を示す数値がゼロに変化している。情報処理装置１０−Ｂの演算部１８３Ｂは、情報処理装置１０−Ｃから、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報が取得部１８２Ｂにより取得された場合、以下に説明する所定の演算を行うことで、管理情報１２−１Ｂの更新を行う。
【００５０】
演算部１８３Ｂは、接続状態を示す情報に包含される情報処理装置１０−Ｃ及び情報処理装置１０−Ｄの識別情報の対に、「切断」を示す数値として「−１」を対応付ける。そして、演算部１８３Ｂは、記憶部１２Ｂにより記憶された管理情報１２−１Ｂを参照し、管理情報１２−１Ｂにおいて、接続状態を示す情報に包含される識別情報の対を含むレコードの「接続状態を示す数値」に、前述した「切断」を示す数値である「−１」を加算する。
【００５１】
この結果、図５（Ｂ）に示した管理情報１２−１Ｂの最下段の接続状態を示す数値は、「＋１」に「−１」が加算されることで、ゼロとなっている。従って、この段階で、情報処理装置１０−Ｂのネットワーク管理機能部１８Ｂは、ネットワークＮにおける情報処理装置間の接続状態を正しく管理できている。なお、「切断」を示す数値は、「−１」に代えて、他の負の定数であってもよい。また、演算部１８３は、管理情報１２−１において、接続状態を示す数値がゼロとなったレコードを削除するものとするが、所定の時間（例えば、５分程度）が経過するまで削除せずに保持するものとしてもよい。
【００５２】
図６は、図５（Ａ）に示した状況から図６（Ａ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。図６（Ａ）では、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが再び接続され、情報処理装置１０−Ｃの送信制御部１８１Ｃから情報処理装置１０−Ｂに、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が送信された状況を示している。
【００５３】
図６（Ｂ）に示したように、この場合も、管理情報１２−１Ａは、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が情報処理装置１０−Ａの取得部１８２Ａにより取得されていないため、図４に示した管理情報１２−１Ａの状態から更新が行われていない。一方、管理情報１２−１Ｂは、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が情報処理装置１０−Ｂの取得部１８２Ｂにより取得されているため、取得された情報に基づいて演算部１８３Ｂにより所定の演算が行われ、最下段の接続状態を示す数値が「＋１」に変化している。演算部１８３Ｂは、情報処理装置１０−Ｃから、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が取得部１８２Ｂにより取得された場合、以下に説明する所定の演算を行うことで、管理情報１２−１Ｂの更新を行う。
【００５４】
演算部１８３Ｂは、接続状態を示す情報に包含される情報処理装置１０−Ｃ及び情報処理装置１０−Ｄの識別情報の対に、「接続」を示す数値として「＋１」を対応付ける。そして、演算部１８３Ｂは、記憶部１２Ｂにより記憶された管理情報１２−１Ｂを参照し、管理情報１２−１Ｂにおいて、接続状態を示す情報に包含される識別情報の対を含むレコードの「接続状態を示す数値」に、前述した「接続」を示す数値である「＋１」を加算する。
【００５５】
この結果、図６（Ｂ）に示した管理情報１２−１Ｂの最下段の接続状態を示す数値は、「０」に「＋１」が加算されることで、「＋１」となっている。従って、この段階で、情報処理装置１０−Ｂのネットワーク管理機能部１８Ｂは、ネットワークＮにおける情報処理装置間の接続状態を正しく管理できている。なお、「接続」を示す数値は、「＋１」に代えて、他の正の定数であるものとしてもよい。また、演算部１８３Ｂは、管理情報１２−１Ｂにおいて、接続状態を示す情報に包含される情報処理装置１０−Ｃ及び情報処理装置１０−Ｄの識別情報の対に一致するレコードがなかった場合、新たにレコードを生成する。
【００５６】
図７は、図６（Ａ）に示した状況から図７（Ａ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。図７（Ａ）では、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたままの状況において、情報処理装置１０−Ｂの送信制御部１８１Ｂから情報処理装置１０−Ａに、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が送信された状況を示している。これは、到着順序保証されないネットワークにおいて何らかの影響により、図５（Ａ）に示した情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報Ｐ１よりも、図６（Ａ）に示した情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報Ｐ２の方が早く情報処理装置１０−Ａに到着した状況である。
【００５７】
図７（Ｂ）に示したように、この場合、管理情報１２−１Ｂは、接続状態を示す情報が情報処理装置１０−Ｂの取得部１８２Ｂにより取得されていないため、図７（Ｂ）に示した管理情報１２−１Ｂの状態から更新が行われていない。一方、管理情報１２−１Ａは、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が情報処理装置１０−Ａの取得部１８２Ａに取得されているため、取得された情報に基づいて、演算部１８３Ａにより所定の演算が行われ、管理情報１２−１Ａの最下段の接続状態を示す数値が「＋２」に変化している。演算部１８３Ａは、情報処理装置１０−Ｂから、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が取得部１８２Ａにより取得された場合、以下に説明する所定の演算を行うことで、管理情報１２−１Ａの更新を行う。
【００５８】
演算部１８３Ａは、接続状態を示す情報に包含される情報処理装置１０−Ｃ及び情報処理装置１０−Ｄの識別情報の対に、「接続」を示す数値として「＋１」を対応付ける。そして、演算部１８３Ａは、記憶部１２Ａにより記憶された管理情報１２−１Ａを参照し、管理情報１２−１Ａにおいて、接続状態を示す情報に包含される識別情報の対を含むレコードの「接続状態を示す数値」に、前述した「接続」を示す数値である「＋１」を加算する。この結果、図７（Ｂ）に示した管理情報１２−１Ａの最下段の接続状態を示す数値は、「＋１」に「＋１」が加算されることで、「＋２」となっている。接続状態を示す数値が正の数値なので、この段階で、情報処理装置１０−Ａは、ネットワークＮにおける情報処理装置間の接続状態を正しく管理できている。
【００５９】
図８は、図７（Ａ）に示した状況から図８（Ａ）に示した状況へ変化した場合の、情報処理装置１０−Ａの管理情報１２−１Ａ及び情報処理装置１０−Ｂの管理情報１２−１Ｂの一例を示した図である。図８（Ａ）では、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたままの状況において、情報処理装置１０−Ｃの送信制御部１８１Ｃから情報処理装置１０−Ａに、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報が送信された状況を示している。
【００６０】
図８（Ｂ）に示したように、この場合、管理情報１２−１Ｂは、図６に示した状況において、すでに更新が行われているため、図６（Ｂ）に示した管理情報１２−Ｂから変化していない。一方、管理情報１２−１Ａは、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報が情報処理装置１０−Ａの取得部１８２Ａにより取得されているため、取得された情報に基づいて演算部１８３Ａにより所定の演算が行われ、管理情報１２−１Ａの最下段の接続状態を示す数値が「＋１」に変化している。演算部１８３Ａは、情報処理装置１０−Ｃから、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報が取得部１８２Ａにより取得された場合、以下に説明する所定の演算を行うことで、管理情報１２−１Ａの更新を行う。
【００６１】
演算部１８３Ａは、接続状態を示す情報に包含される情報処理装置１０−Ｃ及び情報処理装置１０−Ｄの識別情報の対に、「切断」を示す数値として「−１」を対応付ける。そして、演算部１８３Ａは、記憶部１２Ａにより記憶された管理情報１２−１Ａを参照し、管理情報１２−１Ａにおいて、接続状態を示す情報に包含される識別情報の対を含むレコードの「接続状態を示す数値」に、前述した「接続」を示す数値である「−１」を加算する。
【００６２】
この結果、図８（Ｂ）に示した管理情報１２−１Ａの最下段の接続状態を示す数値は、「＋２」に「−１」が加算されることで、「＋１」となっている。接続状態を示す数値が正の値なので、この段階でも、ネットワーク管理機能部１８Ａは、ネットワークＮにおける情報処理装置間の接続状態を正しく管理できている。このように、情報処理システム１の情報処理装置１０は、ネットワーク管理機能部１８による処理によって、互いの時刻を同期することなしに、ネットワークＮにおける情報処理装置間の接続状態を正しく管理することができる。
【００６３】
以下、図９を参照することにより、情報処理装置１０が、ネットワークＮにおける情報処理装置間の接続状態を管理する処理の流れを説明する。図９は、情報処理装置１０が、ネットワークＮにおける情報処理装置間の接続状態を管理する処理の流れの一例を説明するためのシーケンス図である。以下では、情報処理システム１が当初、図１（Ｂ）に示した状況であるものとして説明する。
【００６４】
なお、図９において、情報処理装置１０−Ａ〜Ｄのそれぞれについて、「Ａ」が「アプリケーション（アプリケーション１７Ａ〜１７Ｄ）」、「Ｎ」が「ネットワーク管理機能部（ネットワーク管理機能部１８Ａ〜１８Ｄ）」、「Ｄ」が「ディスカバリ機能部（ディスカバリ機能部１９Ａ〜１９Ｄ）」、「Ｍ」が「メッセージ送受信機能部（メッセージ送受信機能部２０Ａ〜２０Ｄ）」を表すものとする。また、図９において、ネットワーク管理機能部１８が備える各機能部が行う動作を、ネットワーク管理機能部１８が行うものとして説明する。
【００６５】
まず、アプリケーション１７Ｄは、ユーザからの入力に基づいて、ネットワーク管理機能部１８Ｄに対して、情報処理装置１０−Ｃとの接続の切断を要求する（ステップＳ１００）。次に、ネットワーク管理機能部１８Ｄは、アプリケーション１７Ｄから情報処理装置１０−Ｃとの接続の切断の要求を取得すると、管理情報１２−１Ｄにおける情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続状態を示す数値を、ゼロに更新する（ステップＳ１１０）。次に、ネットワーク管理機能部１８Ｄは、ネットワーク管理機能部１８Ｃに対して、情報処理装置１０−Ｄが情報処理装置１０−Ｃから切断することを示す情報を送信し（ステップＳ１２０）、その後、情報処理装置１０−Ｃとの接続を切断する。
【００６６】
次に、ネットワーク管理機能部１８Ｃは、情報処理装置１０−Ｄから、情報処理装置１０−Ｄが情報処理装置１０−Ｃから切断することを示す情報を取得すると、アプリケーション１７Ｃに対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す情報を出力する（ステップＳ１３０）。次に、ネットワーク管理機能部１８Ｃは、ネットワーク管理機能部１８Ｂに対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す接続状態を示す情報を転送する（ステップＳ１４０）。次に、ネットワーク管理機能部１８Ｂは、アプリケーション１７Ｂに対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続が切断されたことを示す情報を出力する（ステップＳ１５０）。
【００６７】
ステップＳ１５０からしばらく時間が経過した後、アプリケーション１７Ｃは、ユーザからの入力に基づいて、ネットワーク管理機能部１８Ｃに対して、情報処理装置１０−Ｄとの接続を要求する（ステップＳ１６０）。次に、ネットワーク管理機能部１８Ｃは、ネットワーク管理機能部１８Ｄに対して、情報処理装置１０−Ｃとの接続を要求する（ステップＳ１７０）。次に、ネットワーク管理機能部１８Ｄは、アプリケーション１７Ｄに対して、情報処理装置１０−Ｃから接続の要求を取得したことを示す情報を出力する（ステップＳ１８０）。次に、アプリケーション１７Ｄは、取得した情報処理装置１０−Ｃからの接続の要求を示す情報を、表示部１４Ｄに表示する。そして、アプリケーション１７Ｄは、表示した情報に対してユーザから入力された接続許可に基づいて、ネットワーク管理機能部１８Ｄに情報処理装置１０−Ｃとの接続を許可することを示す情報を出力する（ステップＳ１９０）。
【００６８】
次に、ネットワーク管理機能部１８Ｄは、ネットワーク管理機能部１８Ｃに対して、情報処理装置１０−Ｃと接続することを示す情報を送信し（ステップＳ２００）、その後、情報処理装置１０−Ｄを情報処理装置１０−Ｃに接続する。次に、ネットワーク管理機能部１８Ｃは、管理情報１２−１Ｃにおける情報処理装置１０−Ｃと情報処理装置１０−Ｄとの接続状態を示す数値を「＋１」として、対応するレコードを生成する（ステップＳ２１０）。次に、ネットワーク管理機能部１８Ｃは、アプリケーション１７Ｃに対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す情報を出力する（ステップＳ２２０）。
【００６９】
次に、ネットワーク管理機能部１８Ｂは、ネットワーク管理機能部１８Ａに対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されたことを示す接続状態を示す情報を送信する（ステップＳ２３０）。そして、ネットワーク管理機能部１８Ａは、管理情報１２−１Ａを更新する。次に、ネットワーク管理機能部１８Ｃは、ネットワーク管理機能部１８Ａに対して、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが切断されたことを示す接続状態を示す情報を送信する（ステップＳ２４０）。そして、ネットワーク管理機能部１８Ａは、管理情報１２−１Ａを更新する。このようにして、情報処理装置１０のネットワーク管理機能部１８は、ネットワークＮにおける情報処理装置間の接続状態を管理する。なお、ステップＳ２３０とステップＳ２４０との順序は、逆であってもよい。
【００７０】
以上説明したように、第１の実施形態に係る情報処理システム１の情報処理装置１０は、ネットワークＮにおいて、通信部１５が主体的に行うピアツーピア通信以外の他のピアツーピア通信である第１ピアツーピア通信の通信主体を示す情報（上述した識別情報の対）に、第１ピアツーピア通信の通信状態を示す情報が対応付けられた接続状態を示す情報を、自装置に接続された他の情報処理装置から取得し、接続状態を示す情報に基づく数値と記憶部１２により記憶される接続状態を示す数値を用いて、予め定められた演算を行い、当該演算により算出された数値を、第１ピアツーピア通信の接続状態を示す数値として、第１ピアツーピア通信の通信主体を示す情報と対応付けることで、管理情報として記憶部１２に記憶させるため、装置同士で時刻の同期を行うことなく互いの接続状態を認識できる。
【００７１】
また、情報処理装置１０は、接続状態を示す情報として、第１の接続状態を示す情報又は第１の接続状態を示す情報とは異なる第２の接続状態を示す情報とを取得し、
接続状態を示す情報が取得された順に、予め定められた演算を行い、この演算により算出された数値は、接続状態を示す情報がすべて取得されたときには、接続状態を示す情報が取得された順序にかかわらず、同じ値となるため、到着順序保証の無いアドホックなネットワークＮにおいて、情報処理装置間の接続状態を正しく管理することができる。
【００７２】
＜第２の実施形態＞
以下、本発明の第２の実施形態について、図面を参照して説明する。なお、第２の実施形態では、第１の実施形態と同様な構成部には、同じ符号を付して説明を省略する。第２の実施形態では、情報処理装置１０が他の情報処理装置Ｘと接続した場合、情報処理装置１０から他の情報処理装置Ｘへ管理情報１２−１を送信し、情報処理装置Ｘから管理情報１２−１Ｘを受信する。そして、情報処理装置１０は、受信した管理情報１２−１Ｘと、自装置の管理情報１２−１とを参照して比較し、管理情報１２−１に存在しない識別情報の対が示す情報処理装置間の接続情報を、自装置に接続されたすべての他の情報処理装置に転送する。
【００７３】
図１０は、第２の実施形態に係る情報処理システム２の利用状況の一例を示す図である。図１０に示したように、情報処理システム２では、３台の情報処理装置１０がそれぞれピアツーピア通信によって接続されることで、互いに通信を行うことができるアドホックなネットワークＮ１と、同様に構成されたネットワークＮ２とが、情報処理装置１０−Ｃと情報処理装置１０−Ｄとが接続されることで、１つのネットワークＮを構成している。
【００７４】
図１０に示したように、ネットワークＮ１は、情報処理装置１０−Ａ〜Ｃによって構成され、ネットワークＮ２は、情報処理装置１０−Ｄ〜Ｆによって構成される。情報処理装置１０−Ｃが、情報処理装置１０−Ｄに接続される際、情報処理装置１０−Ｃのネットワーク管理機能部１８Ｃは、自装置の記憶部１２Ｃにより記憶される管理情報１２−１Ｃを参照し、情報処理装置１０−Ｄが自装置の接続しているネットワークＮ１に含まれているか否かを判定する。そして、ネットワーク管理機能部１８Ｃは、情報処理装置１０−ＤがネットワークＮ１に含まれていないと判定した場合、管理情報記憶部１２−２Ｃにより記憶された管理情報１２−Ｃを、情報処理装置１０−Ｄに送信するように、送信制御部１８１Ｃへ要求する。送信制御部１８１Ｃは、ネットワーク管理機能部１８Ｃからの要求に応じて、管理情報１２−Ｃを、情報処理装置１０−Ｄに送信する。
【００７５】
一方、情報処理装置１０−Ｄのネットワーク管理機能部１８Ｄは、情報処理装置１０−Ｃと同様に、自装置の記憶部１２Ｄにより記憶される管理情報１２−１Ｄを参照し、情報処理装置１０−Ｃが自装置の接続しているネットワークＮ２に含まれているか否かを判定する。そして、ネットワーク管理機能部１８Ｄは、情報処理装置１０−ＣがネットワークＮ２に含まれていないと判定した場合、自装置の記憶部１２Ｄにより記憶された管理情報１２−１Ｄを、情報処理装置１０−Ｃに送信するように、送信制御部１８１Ｄへ要求する。送信制御部１８１Ｄは、ネットワーク管理機能部１８Ｄからの要求に応じて、管理情報１２−１Ｄを、情報処理装置１０−Ｃに送信する。
【００７６】
情報処理装置１０−Ｃのネットワーク管理機能部１８Ｃは、情報処理装置１０−Ｄから管理情報１２−１Ｄを取得すると、取得した管理情報１２−１Ｄと自装置に記憶された管理情報１２−１Ｃとを参照して比較する。そして、処理部１８４Ｃは、取得した管理情報１２−１Ｄに含まれる識別情報の対であって、自装置に記憶された管理情報１２−１Ｃに含まれていない識別情報の対に対応付けられた情報を、自装置に記憶された管理情報１２−１Ｃに追加する。また、送信制御部１８１Ｃは、管理情報１２−１Ｃに追加した個々の情報を、接続状態を示す情報として、情報処理装置１０−Ｃに接続された他の情報処理装置（図１０では、情報処理装置１０−Ａ及び情報処理装置１０−Ｂ）に転送する。
【００７７】
一方、情報処理装置１０−Ｄのネットワーク管理機能部１８Ｄは、情報処理装置１０−Ｃから管理情報１２−１Ｃを取得すると、取得した管理情報１２−１Ｃと自装置に記憶された管理情報１２−１Ｄとを参照して比較する。そして、演算部１８３Ｄは、取得した管理情報１２−１Ｃに含まれる識別情報の対であって、自装置に記憶された管理情報１２−１Ｄに含まれていない識別情報の対に対応付けられた情報を、自装置に記憶された管理情報１２−１Ｄに追加する。また、送信制御部１８１Ｄは、管理情報１２−１Ｄに追加した個々の情報を、接続状態を示す情報として、情報処理装置１０−Ｄに接続された他の情報処理装置（図１０では、情報処理装置１０−Ｅ及び情報処理装置１０−Ｆ）に転送する。
【００７８】
以上説明したように、第２の実施形態に係る情報処理システム２の情報処理装置１０は、ネットワークＮに含まれていないピアツーピア通信で構成される他のネットワークＭに属する情報処理装置Ｚに、自装置がピアツーピア通信で接続される場合、記憶部１２に記憶される管理情報１２−１の一部又は全部を、ネットワークＭに属する情報処理装置Ｚに送信するように通信部１５を制御するため、第１の実施形態と同様の効果が得られるのに加えて、異なるネットワークにそれぞれ属する情報処理装置同士が接続された場合、ネットワーク全体を構成するすべての情報処理装置による接続状態を示す情報の転送によって生じるネットワークへの負荷を低減することができる。
【００７９】
また、情報処理装置１０は、自装置が取得部１８２により、ピアツーピア通信で接続された他の情報処理装置から、管理情報の一部又は全部を取得した場合、取得部１８２により取得された管理情報と、記憶部１２により記憶された管理情報１２−１とに基づいて、記憶部１２により記憶された管理情報１２−１の更新を行うため、より早くネットワーク全体の正確な情報処理装置間の接続状態を把握することができる。
【００８０】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【符号の説明】
【００８１】
１、２  情報処理システム、１０、１０−Ａ〜Ｆ  情報処理装置、１１  ＣＰＵ、１２、１２Ａ〜Ｄ  記憶部、１２−１、１２−１Ａ〜Ｄ、１２−Ｘ  管理情報、１３  入力受付部、１４、１４Ｄ  表示部、１５  通信部、１６  ソフトウェア機能部、１７、１７Ａ〜Ｄアプリケーション、１８、１８Ａ〜Ｄ  ネットワーク管理機能部、１９、１９Ａ〜Ｄ  ディスカバリ機能部、２０、２０Ａ〜Ｄ  メッセージ送受信機能部、１８１、１８１Ｃ、１８１Ｄ  送信制御部、１８２、１８２Ａ、１８２Ｂ  取得部、１８３、１８３Ａ〜Ｄ  演算部
【図１】
2015099507.tif 000003
【図２】
2015099507.tif 000004
【図３】
2015099507.tif 000005
【図４】
2015099507.tif 000006
【図５】
2015099507.tif 000007
【図６】
2015099507.tif 000008
【図７】
2015099507.tif 000009
【図８】
2015099507.tif 000010
【図９】
2015099507.tif 000011
【図１０】
2015099507.tif 000012