(57)【要約】  一実施の形態においては、無線機器は、アンテナと、アンテナに接続され、アンテナによって提供される無線接続に亘る無線通信をサポートする無線通信インタフェースと、データの保存をサポートする記憶装置と、無線インタフェース及び記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、アプリケーションサービスは、記憶装置に保存されたアプリケーションデータを用いて、コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、中継サービスは、無線機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、作成された新たな中継メッセージを送信し、無線機器以外の受信側機器を示す受信した中継メッセージを送信する。
2008517554.tif 000002
【特許請求の範囲】
【請求項１】
アンテナと、
上記アンテナに接続され、該アンテナによって提供される無線接続に亘る無線通信をサポートする無線通信インタフェースと、
データの保存をサポートする記憶装置と、
上記無線通信インタフェース及び上記記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、
上記中継サービスは、当該無線機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、作成された新たな中継メッセージを送信し、当該無線機器以外の受信側機器を示す受信した中継メッセージを送信する無線機器。
【請求項２】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器のリストを作成し、該リストから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１記載の無線機器。
【請求項３】
上記受信側機器選択サービスは、要求側機器に上記リストを送信することを特徴とする請求項２記載の無線機器。
【請求項４】
上記受信側機器選択サービスは、伝播を用いて上記リストの作成をサポートすることを特徴とする請求項２記載の無線機器。
【請求項５】
上記受信側機器選択サービスは、少なくとも１つの他の機器に要求を送信することによって、他の機器からのマップ要求に応じることを特徴とする請求項２記載の無線機器。
【請求項６】
上記マップ要求は、ホップカウントを示し、上記受信側機器選択サービスは、該ホップカウントが閾値に達した場合、該マップ要求を送信しないことを特徴とする請求項５記載の無線機器。
【請求項７】
上記マップ要求は、ネットワーク識別子を示し、上記受信側機器選択サービスは、当該無線機器によって保存されている識別子に一致しない上記ネットワーク識別子を送信しないことを特徴とする請求項５記載の無線機器。
【請求項８】
上記受信側機器選択サービスは、上記リストを定期的に更新することを特徴とする請求項２記載の無線機器。
【請求項９】
上記受信側機器選択サービスは、１つ以上の更新規則を用いて、上記リストを更新することを特徴とする請求項２記載の無線機器。
【請求項１０】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該無線機器との間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１記載の無線機器。
【請求項１１】
上記作成された新たな中継メッセージは、上記選択された受信側機器と当該無線機器との間の間接接続を提供する少なくとも１つの中間機器を示すことを特徴とする請求項１０記載の無線機器。
【請求項１２】
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、サーバによって提供されたリストから選択されることを特徴とする請求項１記載の無線機器。
【請求項１３】
上記アプリケーションサービスによって実行及び管理される上記１つ以上のアプリケーションプログラムの少なくとも１つは、ゲームアプリケーションプログラムであることを特徴とする請求項１記載の無線機器。
【請求項１４】
上記無線インタフェースは、Ｗｉ−Ｆｉインタフェースであることを特徴とする請求項１記載の無線機器。
【請求項１５】
ネットワーク接続に亘るネットワーク通信をサポートするネットワーク通信インタフェースと、
データの保存をサポートする記憶装置と、
上記ネットワーク通信インタフェース及び上記記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、
上記中継サービスは、当該ネットワーク機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、作成された新たな中継メッセージを送信し、当該ネットワーク機器以外の受信側機器を示す受信した中継メッセージを送信するネットワーク機器。
【請求項１６】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器のリストを作成し、該リストから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１５記載のネットワーク機器。
【請求項１７】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該ネットワーク機器との間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１５記載のネットワーク機器。
【請求項１８】
上記作成された新たな中継メッセージは、上記選択された受信側機器と当該ネットワーク機器との間の間接接続を提供する少なくとも１つの中間機器を示すことを特徴とする請求項１７記載のネットワーク機器。
【請求項１９】
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、サーバによって提供されたリストから選択されることを特徴とする請求項１５記載のネットワーク機器。
【請求項２０】
上記アプリケーションサービスによって実行及び管理される上記１つ以上のアプリケーションプログラムの少なくとも１つは、ゲームアプリケーションプログラムであることを特徴とする請求項１５記載のネットワーク機器。
【請求項２１】
アンテナと、
上記アンテナに接続され、該アンテナによって提供される無線接続に亘る無線通信をサポートする無線通信インタフェースと、
データの保存をサポートする記憶装置と、
上記記憶装置に接続され、リムーバブル媒体からのゲームアプリケーションプログラムの読出をサポートするメディアインタフェースと、
上記無線通信インタフェース及び上記記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、
上記中継サービスは、当該無線ゲーム機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、作成された新たな中継メッセージを送信し、当該無線ゲーム機器以外の受信側機器を示す受信した中継メッセージを送信し、
上記受信側機器選択サービスは、上記少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該無線ゲーム機器との間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であり、
上記無線インタフェースは、Ｗｉ−Ｆｉインタフェースである無線ゲーム機器。
【請求項２２】
中継メッセージを送信する中継メッセージ送信方法において、
送信側機器において、中継メッセージの受信側機器を選択するステップと、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成するステップと、
無線インタフェースを介して少なくとも１つのローカル機器に上記中継メッセージを送信するステップとを有し、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに直接接続を有し、
上記送信側機器は、上記受信側機器に直接接続を有さない中継メッセージ送信方法。
【請求項２３】
少なくとも１つの受信側機器のリストを作成するステップを更に有し、
上記受信側機器を選択するステップは、上記リストから受信側機器を選択するステップを含むことを特徴とする請求項２２記載の中継メッセージ送信方法。
【請求項２４】
上記少なくとも１つの受信側機器のリストを作成するステップは、サーバから少なくとも１つの機器のリストを受信するステップを含むことを特徴とする請求項２３記載の中継メッセージ送信方法。
【請求項２５】
上記少なくとも１つの受信側機器のリストを作成するステップは、少なくとも１つのローカル機器にリスト要求を送信するステップを含むことを特徴とする請求項２３記載の中継メッセージ送信方法。
【請求項２６】
少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と上記送信側機器との間の接続とのマップを作成するステップを更に有し、
上記受信側機器を選択するステップは、上記マップから受信側機器を選択するステップを含むことを特徴とする請求項２２記載の中継メッセージ送信方法。
【請求項２７】
上記少なくとも１つの受信側機器のマップを作成するステップは、サーバからマップを受信するステップを含むことを特徴とする請求項２６記載の中継メッセージ送信方法。
【請求項２８】
上記少なくとも１つの受信側機器のマップを作成するステップは、少なくとも１つのローカル機器にマップ要求を送信するステップを含むことを特徴とする請求項２６記載の中継メッセージ送信方法。
【請求項２９】
上記中継メッセージを送信するステップは、上記無線インタフェースを介して上記中継メッセージをブロードキャストするステップを含むことを特徴とする請求項２２記載の中継メッセージ送信方法。
【請求項３０】
上記中継メッセージは、上記送信側機器と上記選択された受信側機器との間の少なくとも１つの中間機器を示すパス情報を含むことを特徴とする請求項２２記載の中継メッセージ送信方法。
【請求項３１】
上記中継メッセージは、複数の受信側機器を示すことを特徴とする請求項２２記載の中継メッセージ送信方法。
【請求項３２】
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記選択された受信側機器がローカル機器であるかを判定するステップを更に有する請求項２２記載の中継メッセージ送信方法。
【請求項３３】
上記中継メッセージは、ゲームアプリケーションデータを含むことを特徴とする請求項２２記載の中継メッセージ送信方法。
【請求項３４】
中継メッセージを送信する中継メッセージ送信方法において、
中継機器において、無線インタフェースを介して、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを送信側機器から受信するステップと、
上記中継メッセージを確認し、上記中継機器が上記受信側機器であるかを判定するステップと、
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記受信側機器がローカル機器であるかを判定するステップと、
上記受信側機器がローカル機器である場合、上記中継機器から、上記無線インタフェースを介して、上記受信側機器に上記中継メッセージを送信するステップと、
上記受信側機器がローカル機器でない場合、上記中継機器から、上記無線インタフェースを介して、上記ローカル機器リストに含まれている少なくとも１つのローカル機器に上記中継メッセージを送信するステップとを有し、
上記送信側機器は、上記中継機器への直接接続を有し、上記中継機器は、上記ローカル機器リストに示された各ローカル機器への直接接続を有し、上記送信側機器は、上記受信側機器への直接接続を有さない中継メッセージ送信方法。
【請求項３５】
上記中継機器から少なくとも１つのローカル機器に上記中継メッセージを送信するステップは、上記無線インタフェースを介して上記中継メッセージをブロードキャストするステップを含むことを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項３６】
上記中継機器から少なくとも１つのローカル機器に上記中継メッセージを送信するステップは、上記送信側機器を除く上記ローカル機器リスト内の各ローカル機器に上記中継メッセージを送信するステップを含むことを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項３７】
上記中継機器が既に上記中継メッセージを送信している場合、該中継機器は、該中継メッセージを送信しないことを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項３８】
上記中継メッセージは、少なくとも１つの中間機器を含むパスを示し、
上記中継機器から少なくとも１つのローカル機器に上記中継メッセージを送信するステップは、上記パスによって示されている中間機器に上記中継メッセージを送信するステップを含むことを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項３９】
上記アプリケーションデータは、ゲームアプリケーションデータであることを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項４０】
上記中継機器は、上記中継メッセージに含まれる上記アプリケーションデータに対応する上記アプリケーションプログラムのローカルコピーを実行しないことを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項４１】
上記中継機器は、上記中継メッセージに含まれる上記アプリケーションデータに対応する上記アプリケーションプログラムとは異なるアプリケーションのローカルコピーを実行することを特徴とする請求項３４記載の中継メッセージ送信方法。
【請求項４２】
中継メッセージを送信する中継メッセージ送信システムにおいて、
送信側機器において、中継メッセージの受信側機器を選択する選択手段と、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成する作成手段と、
無線インタフェースを介して少なくとも１つのローカル機器に上記中継メッセージを送信する送信手段とを備え、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに直接接続を有し、
上記送信側機器は、上記受信側機器に直接接続を有さないことを特徴とする中継メッセージ送信システム。
【請求項４３】
タンジブルストレージ媒体に保存され、コンピュータが中継メッセージを送信するための実行可能な命令を含むコンピュータプログラムにおいて、当該コンピュータプログラムは、該コンピュータに、
送信側機器において、中継メッセージの受信側機器を選択させ、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成させ、
無線インタフェースを介して少なくとも１つのローカル機器に上記中継メッセージを送信させることを実行させ、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに直接接続を有し、
上記送信側機器は、上記受信側機器に直接接続を有さないことを特徴とするコンピュータプログラム。
【請求項４４】
中継メッセージを送信する中継メッセージ送信システムにおいて、
中継機器において、無線インタフェースを介して、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを送信側機器から受信する受信手段と、
上記中継メッセージを確認し、上記中継機器が上記受信側機器であるかを判定する受信側機器判定手段と、
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記受信側機器がローカル機器であるかを判定するローカル機器判定手段と、
上記受信側機器がローカル機器である場合、上記中継機器から、上記無線インタフェースを介して、上記受信側機器に上記中継メッセージを送信する第１の送信手段と、
上記受信側機器がローカル機器でない場合、上記中継機器から、上記無線インタフェースを介して、上記ローカル機器リストに含まれている少なくとも１つのローカル機器に上記中継メッセージを送信する第２の送信手段とを備え、
上記送信側機器は、上記中継機器への直接接続を有し、上記中継機器は、上記ローカル機器リストに示された各ローカル機器への直接接続を有し、上記送信側機器は、上記受信側機器への直接接続を有さない中継メッセージ送信システム。
【請求項４５】
タンジブルストレージ媒体に保存され、コンピュータが中継メッセージを送信するための実行可能な命令を含むコンピュータプログラムにおいて、当該コンピュータプログラムは、該コンピュータに、
中継機器において、無線インタフェースを介して、送信側機器から受信した、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを処理させ、
上記中継メッセージを確認させ、上記中継機器が上記受信側機器であるかを判定させ、
少なくとも１つのローカル機器を示すローカル機器リストを確認させ、上記受信側機器がローカル機器であるかを判定させ、
上記受信側機器がローカル機器である場合、上記中継機器から、上記無線インタフェースを介して、上記受信側機器に上記中継メッセージを送信させ、
上記受信側機器がローカル機器でない場合、上記中継機器から、上記無線インタフェースを介して、上記ローカル機器リストに含まれている少なくとも１つのローカル機器に上記中継メッセージを送信させることを実行させ、
上記送信側機器は、上記中継機器への直接接続を有し、上記中継機器は、上記ローカル機器リストに示された各ローカル機器への直接接続を有し、上記送信側機器は、上記受信側機器への直接接続を有さないことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、引用によって本願に援用される、２００３年１０月２０日に出願された米国仮特許出願番号第６０／５１３，０９８号の優先権を主張する。また、本出願は、引用によって本願に援用される、２００３年１１月３日に出願された米国特許出願番号第１０／７００，７９８号の一部継続出願である。
【背景技術】
【０００２】
典型的なピアツーピアネットワーク（又は「Ｐ２Ｐネットワーク」）において、ピアツーピアネットワーク内の各メンバ（又はピア）は、他のメンバのそれぞれと接続を確立する。メンバは、（例えば、メンバがサーバを介してインタラクトする典型的なクライアント−サーバネットワークのように）集中型サーバを用いるのではなく、これらの直接ピアツーピア接続を用いて、他のメンバにデータを直接送信し、他のメンバからデータを直接要求するが、データは、ルータ又はアクセスポイント等、他のネットワーク機器を経由してもよい。この場合の接続は、有線接続（例えば、ネットワークケーブルを用いたピア又はネットワークへの接続）であっても、無線接続（例えば、ＩＥＥＥ８０２．１１又は「Ｗｉ−Ｆｉ」プロトコルをサポートするインタフェースを使用した接続）であってもよい。通常、ネットワークの各メンバは、ネットワークにおいて、互いに類似する責任を有し、各メンバは、多くの場合、（ネットワークメンバとして）同等であるとみなされる。例えば、Ｎ個のピアを含むピアツーピアネットワークでは、各ピアは、他のピアへのＮ−１個の接続を有する。
【０００３】
また、幾つかのピアツーピアネットワークでは、メンバは、（例えば、ピアツーピアネットワークを構成するための接続を確立するための）アドレス発見等、幾つかの集中型サービスについては、サーバを使用することもある。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明は、ピアツーピアネットワークにおいて、中継データを送信するための、中継データ送信方法及び中継データ送信装置を提供する。一実施の形態においては、無線機器は、アンテナと、アンテナに接続され、アンテナによって提供される無線接続に亘る無線通信をサポートする無線通信インタフェースと、データの保存をサポートする記憶装置と、無線インタフェース及び記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、アプリケーションサービスは、記憶装置に保存されたアプリケーションデータを用いて、コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、中継サービスは、無線機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、作成された新たな中継メッセージを送信し、無線機器以外の受信側機器を示す受信した中継メッセージを送信する。
【０００５】
他の実施の形態として、中継メッセージを送信する中継メッセージ送信方法は、送信側機器において、中継メッセージの受信側機器を選択するステップと、選択された受信側機器を示す受信側機器識別子を含む中継メッセージを作成するステップと、無線インタフェースを介して少なくとも１つのローカル機器に中継メッセージを送信するステップとを有し、送信側機器は、少なくとも１つのローカル機器のそれぞれに直接接続を有し、送信側機器は、受信側機器に直接接続を有さない。
【０００６】
他の実施の形態においては、中継メッセージを送信する中継メッセージ送信方法は、中継機器において、無線インタフェースを介して、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを送信側機器から受信するステップと、中継メッセージを確認し、中継機器が受信側機器であるかを判定するステップと、少なくとも１つのローカル機器を示すローカル機器リストを確認し、受信側機器がローカル機器であるかを判定するステップと、受信側機器がローカル機器である場合、中継機器から、無線インタフェースを介して、受信側機器に中継メッセージを送信するステップと、受信側機器がローカル機器でない場合、中継機器から、無線インタフェースを介して、ローカル機器リストに含まれている少なくとも１つのローカル機器に中継メッセージを送信するステップとを有し、送信側機器は、中継機器への直接接続を有し、中継機器は、ローカル機器リストに示された各ローカル機器への直接接続を有し、送信側機器は、受信側機器への直接接続を有さない。
【発明を実施するための最良の形態】
【０００７】
本発明は、ピアツーピアネットワークにおいて、中継データを送信するための方法及び装置を提供する。一具体例においては、第１の無線機器及び第２の無線機器は、拡張ピアツーピアネットワークに属し、各機器上で実行されるアプリケーションプログラムをサポートするデータを交換する。なお、第１の無線機器及び第２の無線機器は、ピアツーピアネットワークにおいて、直接接続を有さない。第１及び第２の無線機器は、他の１つ以上の無線機器（ローカル機器）との直接接続を有し、中間機器を介して互いに到達するまでの経路を検索する。第１の無線機器は、通信のために、中継メッセージの意図された受信側機器として第２の無線機器を示す中継メッセージを作成する。第１の無線機器は、ローカル機器のそれぞれに中継メッセージを送信する。ローカル機器は、中継メッセージを受信し、一組の中継規則に従って、自らのローカル機器のそれぞれに中継メッセージを渡す。中継メッセージは、ピアツーピアネットワークを介して伝播され、第２の無線機器に到達する。同様に第２の無線機器は、中継メッセージを用いて、第１の無線機器にデータを送信する。
【０００８】
以下では、１つの例示的な具体例を説明する。この具体例は、限定的なものではなく、更なる具体例及び変形例については、後に説明する。
【０００９】
一具体例においては、無線ゲーム機器の受信側機器が、無線ゲーム機器を、他の無線ゲーム機器を含む拡張無線ピアツーピアネットワークが有効なエリア（例えば、店）に持ち込む。拡張ピアツーピアネットワークでは、幾つかの機器は、互いに直接接続を確立することができない。無線ゲーム機器は、例えば、Ｗｉ−Ｆｉプロトコルをサポートするインタフェースを用いて、限定的な範囲の無線接続をサポートする。範囲の外にある２つの機器は、直接接続を確立することができない。なお、このような２つの機器は、中継メッセージを双方向に受け渡すための中継点として、他の中間機器（又は一連の機器）を用いることができる。
【００１０】
ユーザは、自らの無線ゲーム機器を起動し、マルチプレーヤゲームを行うために使用可能な機器のリストを要求する。ユーザの無線ゲーム機器は、ユーザ名又は識別子、若しくは機器識別子によって、各受信側機器を示す使用可能な受信側機器のリストを作成する。ユーザの無線ゲーム機器は、範囲内にある他の無線ゲーム機器と通信を行うことによって、受信側機器リストを作成する。範囲内になるこれらの機器は、ユーザの無線ゲーム機器にとって、ローカル機器である。ローカル機器は、ピアツーピアネットワークを介してリスト要求を伝播し、使用可能な機器を示す情報を蓄積し、この情報をリスト要求の発信元、すなわち、ユーザの無線ゲーム機器に返す（リストの作成の具体例については、後に説明する）。
【００１１】
ユーザは、受信側機器リストから受信側機器を選択し、無線ゲーム機器が選択された受信側機器と通信し、ゲームに招待することを要求する。ユーザの無線ゲーム機器は、選択された受信側機器がローカル機器であるかを確認する。選択された受信側機器がローカル機器である場合、ユーザの無線ゲーム機器と、受信側機器との間で直接接続が使用でき、したがって、ユーザの無線ゲーム機器は、選択された受信側機器との直接通信を使用する。この場合、ユーザの無線ゲーム機器は、（他のローカル機器を介することなく）受信側機器に招待メッセージを送信し、直接接続を介して直接通信が行われる。選択された受信側機器がローカル機器でない場合、直接接続が使用できず、したがって、ユーザの無線ゲーム機器は、選択された受信側機器との中継通信のために、中継メッセージを用いる。
【００１２】
中継通信においては、無線ゲーム機器は、選択された受信側機器を示し、選択された受信側機器によって使用されるデータを含む中継メッセージを作成する。また、中継メッセージは、受信側機器によって使用されるデータと、中継メッセージを特定するための中継メッセージ識別子を含む。選択された受信側機器に招待を送信するために、無線ゲーム機器は、中継メッセージに、ゲーム送信側機器及びユーザ等を示す適切な情報を含める。ゲームのために用いられる中継メッセージでは、無線ゲーム機器は、中継メッセージに適切なアプリケーション情報を含ませる。ユーザの無線ゲーム機器は、招待のための中継メッセージを作成し、直接無線接続を介して、無線ゲーム機器のローカル機器のそれぞれに中継メッセージを送信する。ローカル機器のいずれも、中継メッセージの意図された受信側機器でなく、したがって、これらのローカル機器は、この中継通信における中間機器又は中継機器である。中間機器は、中継メッセージを受信すると、ローカル機器のリストを用いて、指示された受信側機器が中間機器のローカル機器であるか否かを確認する。受信側機器がローカル機器である場合、中間機器は、この受信側機器に中継メッセージを送信する。受信側機器がローカル機器でない場合、中間機器は、一組の中継規則に基づいて、全てのローカル機器に中継メッセージを送信する。この具体例では、１つの中継規則として、中間機器は、中継メッセージを受け取ったローカル機器には、中継メッセージを送信しない。他の規則として、中間機器は、同じ中継メッセージ（同じ中継メッセージ識別子によって示される）を再び送信しない。中間機器は、中継メッセージを送信した後は、中継メッセージを維持しないが、同じ中継メッセージの再送信を回避するために、中継メッセージ識別子を記録する。
【００１３】
中継メッセージは、ピアツーピアネットワークを伝播し、受信側機器として示されている無線ゲーム機器は、最終的に、中継メッセージを受信する。受信側機器は、自らが受信側機器であることを認識し、中継メッセージに含まれているデータを適切に使用する。受信側機器がユーザの無線ゲーム機器から招待を受信した場合、受信側機器は、受信側機器のユーザに招待を表示し、適切な指示を受ける。受信側機器は、この中継メッセージの受信側機器として、ユーザの無線ゲーム機器を示し、招待への応答を示す情報を含む中継メッセージを作成する。受信側機器は、ピアツーピアネットワークを介して、ユーザの無線ゲーム機器に中継メッセージを返信する。そして、２つの機器は、このような中継通信を用いて、通信を継続することができる。
【００１４】
この具体例では、２つの無線機器は、直接無線接続を有さず、他の無線機器を中間機器として用いて、間接接続又は中継接続を確立する。無線機器は、中継通信を用いることによって、通信範囲の限界を超えて、通信できる機器及びエリアを拡張することができる。更に、２つの無線機器は、中間にサーバシステムを介在させることなく、一連のピアツーピア接続を介して通信することができる。２つの無線機器は、データを交換でき、中間機器を連携動作に参加させることなく、アプリケーションプログラム（例えば、マルチプレーヤゲームアプリケーション）の連携動作を実現することができる。例えば、２つの無線機器が、第３の無線機器を中継機器として用いて、１つのゲームを共同でプレーでき、この第３の機器は、更に他の機器と他のゲームをプレーしていてもよい。異なる実現例及びアプリケーションによって、更に他の利益を得ることができる。
【００１５】
図１Ａは、それぞれ無線アンテナ１０７、１１２、１１７を有し、ピアツーピアネットワークにおいて通信を行う３つの無線機器１０５、１１０、１１５を示している。無線機器１０５、１１０、１１５は、サーバを介さず、ピアとして通信を行う。一具体例では、無線機器１０５、１１０、１１５は、無線対応ゲーム機であり、又は汎用コンピューティング装置（例えば、ゲーム機器、ＰＤＡ、Ｗｉ−Ｆｉインタフェースをサポートするラップトップコンピュータ、セルラ電話機等）である。無線機器１０５は、無線アンテナ１０７を用いて無線機器１１０と直接無線接続を確立する。無線機器１１０、１１５も、同様に、直接無線接続を確立する。図１Ａに示す構成では、無線機器１０５及び無線機器１１５は、互いにそれぞれの無線インタフェースの通信範囲内にないため、直接接続を有さない。
【００１６】
無線機器１０５、１１０、１１５は、無線接続を介して、データ（例えば、メッセージ）を交換する。無線機器１０５は、無線機器１１０と直接通信を行う。無線機器１１０は、無線機器１０５、１１５の両方と直接通信を行う。無線機器１１５は、無線機器１１０と直接通信を行う。後述するように、無線機器１０５は、中間機器又は中継機器としての無線機器１１０を介する中継通信を用いて、無線機器１１５と間接通信を行う。このように、無線機器１１０は、拡張ネットワークにおいてピアとして機能しながら、中継機器として通信を補助することができる。
【００１７】
図１Ｂは、２つの無線機器１２０、１２５、ネットワーク機器１３０、及びサーバシステム１３５が直接通信及び中継通信を用いて通信を行う他のネットワーク環境を示している。無線機器１２０、１２５は、それぞれの無線アンテナ１２２、１２７を用いて、直接無線接続を確立する。また、無線機器１２５は、無線接続を介してネットワーク１４０と通信を行う。ネットワーク機器１３０及びサーバシステム１３５は、それぞれのネットワークインタフェース１３２、１３７を用いて、有線接続を介してネットワーク１４０と通信を行う。一具体例では、ネットワーク機器１３０は、例えば、ネットワークインタフェースを備えるラップトップコンピュータ又はゲームコンソール等のネットワーク対応コンピューティング装置である。一具体例では、サーバシステム１３５は、クライアント（例えば、無線機器１２０、１２５ネットワーク機器１３０）と接続するデータ及び／又はアプリケーションを提供するコンピュータシステムである。一具体例では、ネットワーク１４０は、ローカルエリアネットワーク（local area network：ＬＡＮ）である。他の具体例では、ネットワーク１４０は、例えば、インターネット又は個人のイントラネット等の広域ネットワークである。
【００１８】
無線機器１２５は、ネットワーク１４０を介して、ネットワーク機器１３０及びサーバシステム１３５との直接接続を確立することができる（データは、基地局及びルータ等の他のネットワーク設備を経由してもよい）。この構成では、直接接続は、ピアツーピア接続であり、したがって、第１の機器は、（例えば、ＴＣＰ／ＩＰを用いて）第２の機器への直接接続を介して、第２の機器をアドレス指定したメッセージを送信するという意味で、「直接」接続は、「間接」接続と区別される。間接接続は、一連の２つ以上の直接接続を含む接続である。例えば、無線機器１２５は、無線機器１２０への直接接続を有し、及びネットワーク機器１３０への直接接続を有する。したがって、無線機器１２５がネットワーク機器１３０にメッセージを送信する場合、このメッセージは、ピアとしてのネットワーク機器１３０に宛てて送信される。また、無線機器１２０は、無線機器１２０と無線機器１２５との間の第１の直接接続と、無線機器１２５とネットワーク機器１３０との間の第２の直接接続とを含むネットワーク機器１３０への間接接続を有する。無線機器１２０がネットワーク機器１３０にメッセージを送信する場合、このメッセージは、ネットワーク機器１３０を意図された受信側機器として示し、無線機器１２５に渡される中継メッセージである。続いて、無線機器１２５は、無線機器１２０からのこの中継メッセージをネットワーク機器１３０に中継し、すなわち、直接接続を用いて、ネットワーク機器１３０に受信した中継メッセージとして同じペイロードデータを含み、ネットワーク機器１３０に宛てられた新たな中継メッセージ（例えば、非アドレッシングデータ）を転送する。これに代えて、無線機器１２５は、アドレス情報のみを変更して、同じ中継メッセージを送信する。
【００１９】
一具体例では、サーバシステム１３５は、情報の集中型記憶装置として機能し、したがって、各機器は、（例えば、定期的に又は要求に応じて）サーバシステム１３５に／から情報を提供及び要求する。一具体例において、例えば、サーバシステム１３５は、ピアツーピアネットワークに参加する機器のリストを保存する。他の具体例では、サーバシステム１３５は、ピアツーピアネットワークの各参加者について、ローカル機器のリストを保存する。これに代えて、サーバシステム１３５は、機器間の通信を補足する異なる情報を提供してもよい。例えば、サーバシステム１３５は、機器識別子によってインデクスが付された機器のユーザのユーザプロファイルを保存する。
【００２０】
無線機器１２０、１２５、ネットワーク機器１３０、及びサーバシステム１３５は、役割を柔軟に変更することができる。すなわち、これらの機器は、必要に応じて、それぞれがピア、クライアント又はサーバとして機能できる。例えば、サーバシステム１３５は、無線機器１２０対して、集中型記憶装置として機能し、次に、無線機器１２５とはピアとしてインタラクトする。
【００２１】
図１Ａ及び図１Ｂに２つのネットワーク構成を示したが、他の具体例として、（例えば、図５に示すような）他のネットワーク構成を用いてもよい。例えば、一具体例においては、複数の有線ネットワーク機器が、無線接続を用いることなく、ＬＡＮ又は広域ネットワークを介して、情報を交換する。有線接続された機器を用いる一具体例では、参加者制限を用いて、ピアツーピアネットワークに参加する機器の数を制御し、ローカル機器制限を用いて、ローカル機器（直接接続された機器）とみなされる機器の数を制御する。他の具体例では、セルラ電話機やＰＤＡ等の様々な種類の無線機器が用いられる。
【００２２】
図２は、ピアツーピア中継通信をサポートする例示的な無線機器２０５の内部のブロック図を示している。無線機器２０５は、無線アンテナ２１５に接続された無線インタフェース２１０を備える。無線インタフェース２１０は、無線アンテナ２１５を用いて、他の無線機器への無線接続の確立をサポートし、確立された接続を介して、データを交換する。一具体例では、無線インタフェース２１０は、Ｗｉ−Ｆｉ又はブルートゥース等のローカル無線プロトコル等のエアーインタフェースをサポートする一般的な無線インタフェースである。無線インタフェース２１０のコンポーネントは、図２には示していないが、これらのコンポーネント（例えば、適切なフィルタ、増幅器等）及びその動作は、当業者にとって明らかである。他の具体例においては、符号分割多元アクセス（ＣＤＭＡ）等の異なるエアーインタフェース、及び赤外線等の非無線インタフェースをサポートしてもよい。他の具体例として、複数の無線インタフェース、及び／又は１つ以上の有線インタフェース（例えば、ＩＥＥＥ−１３９４又はイーサネット（登録商標））をサポートしてもよい。
【００２３】
無線インタフェース２１０には、コントローラ２２０が接続されている。コントローラ２２０は、無線機器２０５及びそのコンポーネントの動作を制御する。一具体例では、コントローラ２２０は、マイクロプロセッサ及び関連するサブシステムである。コントローラ２２０は、アプリケーションサービス２２５、メッセージサービス２３０、中継サービス２３５及び受信側機器選択サービス２４０を提供する。コントローラ２２０のサービスは、記憶装置に保存され、コントローラ２２０によって実行されるソフトウェアプログラムとして実現される。これに代えて、サービスの１つ以上を、部分的又は完全に、無線機器２０５内のハードウェア又は独立したサブシステムとして実現してもよい。他の具体例では、コントローラは、これらのサービスのいずれも提供せず、これに代えて、無線機器の動作は、無線機器のユーザインタフェースを介して、ユーザによって手動で制御される（例えば、コントローラは、メッセージの送信のための自動動作のサービスを提供するのではなく、制御プロセッサとして、ユーザコマンドに基づいてコンポーネントの動作を制御する）。アプリケーションサービス２２５は、無線機器２０５がアクセス可能なアプリケーションプログラムの実行及び対応するアプリケーションデータの管理をサポートする。一具体例では、アプリケーションサービス２２５は、ゲームアプリケーションプログラムの実行をサポートする。
【００２４】
メッセージサービス２３０は、メッセージ作成をサポートし、無線インタフェース２１０を介してメッセージを送信し、無線インタフェース２１０を介して受信されたメッセージを処理する。メッセージサービス２３０は、主に、直接通信で用いられるメッセージのためのサービスである。
【００２５】
中継サービス２３５は、（例えば、図３及び図６を用いて）後述するように、中継メッセージの作成をサポートし、中継メッセージを送信し、受信した中継メッセージを処理する。中継サービス２３５は、主に、中継通信で用いられるメッセージのためのものであり、メッセージサービス（例えば、アドレス挿入等の共有サブサービス又は下位プロトコル層機能等）と連携して動作する。一具体例では、中継サービス２３５は、無線機器２０５が直接接続を確立することができる機器を示すローカル機器リストを作成及び保守する。
【００２６】
受信側機器選択サービス２４０は、通信に使用可能な受信側機器のリスト又はマップを作成し、（例えば、図４及び図５を用いて）後述するように、通信のために受信側機器を選択する。一具体例では、受信側機器リストは、（ローカル機器リストによって示されている）ローカル機器のための対応するアドレス情報を含む機器のリストである。また、受信側機器リストは、受信側機器に関する追加的情報（例えば、ユーザ名）を指示（又は参照）することができる。他の具体例では、受信側機器選択サービス２４０は、使用可能な受信側機器と、ローカル機器ではない各受信側機器について、その受信側機器に到達するために用いられる１つ以上の中間機器（又は接続）との両方を示す使用可能な受信側機器のマップを作成する。受信側機器選択サービス２４０は、ローカル機器にクエリを発することによって、リスト又はマップを作成する。受信側機器リスト又はマップの作成については、後に更に詳細に説明する。他の具体例では、受信側機器選択サービス２４０は、サーバから受信した情報を用いて、リスト又はマップを作成し、又はサーバからリスト又はマップを取得する。
【００２７】
また、無線機器２０５は、ユーザインタフェース２４５、メディアインタフェース２５０、記憶装置２５５及び電源２６０を備える。ユーザインタフェース２４５は、ユーザコマンドを受信するための入力操作子（例えば、キーパッド、ボタン、方向指示パッド又はジョイスティック等）と、ユーザにデータを提示する出力装置（例えば、ディスプレイ及びオーディオスピーカ）とを備える。メディアインタフェース２５０は、メディアに接続し、又はメディアを受け入れ、メディアの種類に基づいてメディアとデータを交換するコンポーネントを提供する。一具体例では、メディアインタフェース２５０は、光ディスクが挿入され、光ディスクからデータを読み取るインタフェース（例えば、ＣＤ−ＲＯＭドライブ）と、リムーバブルメモリコンポーネントに接続し、このリムーバブルメモリコンポーネントに／からデータを書き込み／読み出す他のインタフェース（例えば、ＵＳＢメモリカードが挿入されるＵＳＢポート、リムーバブルハードディスクドライブインタフェース、又はメモリスティック（商標）インタフェース）とを提供する。記憶装置２５５は、無線機器２０５の動作及びアプリケーション実行に用いられるデータを保存する。例えば、一具体例では、中継メッセージ及び受信側機器リストは、記憶装置２５５に保存される。一具体例では、記憶装置２５５は、ＲＡＭ及びフラッシュメモリの組合せである。また、他の具体例では、記憶装置２５５は、ユーザデータ、アプリケーションデータ及びファイル等のデータをより長い期間記憶するために、フラッシュメモリ及び／又はハードディスクドライブ等の適切な持続的なストレージ装置を含む。電源２６０は、無線機器２０５のコンポーネントに電力を提供する。一具体例では、電源２６０は、対応する外部の電力接続を介して、着脱可能なバッテリ及び充電式の内部の電源から電力を供給するインタフェースを提供する。図２では、ユーザインタフェース２４５、メディアインタフェース２５０、記憶装置２５５及び電源２６０の間の相互接続、及び無線機器２０５の他のコンポーネントとの相互接続を明示的に示していないが、これらの接続は、当業者にとって明らかである。
【００２８】
他の具体例では、無線通信に対応しておらず、他の機器との通信のためのインタフェースをサポートするネットワーク機器も、図２に示す無線機器と同様のコンポーネントを備える。このネットワーク機器は、アプリケーション、メッセージ、中継、受信側機器選択サービスを提供するコントローラを備え、したがって、後述する中継通信をサポートする。図１Ｂを参照して上述したように、無線機器及びネットワーク機器の組合せを用いて中継通信を行うことができる。
【００２９】
図３は、中継メッセージを送信する処理の一例のフローチャート３００を示している。まず、中継通信をサポートする無線機器が、ピアツーピアネットワークに参加する。無線機器は、（例えば、ビーコンを用いて）ローカル機器及びこれらのローカル機器との間に確立された直接接続のリストを作成する。無線機器は、ユーザから受信側機器を選択するための要求を受信する。
【００３０】
ブロック３０５において、無線機器は、通信のための受信側機器を選択する。無線機器は、例えば、図４を参照して後述する手法を用いて、使用可能な受信側機器と、対応する接続パスを示す受信側機器マップを作成する。他の具体例では、無線機器は、マップではなく、接続を指示しないリストを作成する。一具体例では、無線機器が受信側機器マップを既に有しており、この受信側機器マップが現在有効である（例えば、有効期限閾値及びマップの作成又は更新のタイムスタンプによって判定され、又はローカル機器へのクエリによって判定される）場合、無線機器は、新たな受信側機器マップ（又はリスト）を作成しない。他の具体例では、無線機器は、サーバが提供したリスト又はマップから受信側機器を選択し、又はサーバを介して受信側機器を選択する（オプションとして、受信側機器へのパスに関する情報をサーバから受信する）。
【００３１】
無線機器は、ユーザに受信側機器マップを表示し、受信側機器を指示する選択操作に基づく情報を受信する。無線機器は、ローカル機器リストを確認することによって、選択された受信側機器がローカル機器であるかを判定する。他の具体例では、受信側機器リストが（受信側機器リストを保存する特定の無線機器について）各受信側機器がローカル機器であるか否かを示す。選択された受信側機器がローカル機器である場合、無線機器は、直接通信を用いて、選択された受信側機器とデータを交換する。選択された機器がローカル機器でない場合、無線機器は、中継通信を用いる。
【００３２】
無線機器は、ローカル機器でない受信側機器を選択した場合、ブロック３１０において、中継メッセージを作成する。中継メッセージは、例えば、受信側機器識別子等、受信側機器リストから選択された受信側機器を示す情報を含む。受信側機器リストが受信側機器への完全な又は部分的なパスを示す一具体例では、無線機器は、中継メッセージにパス情報を含ませる。他の具体例では、無線機器は、受信側機器リストから受信側機器を選択した後に、選択された機器へのパスを発見し、中継メッセージにパス情報を含ませる。他の具体例では、中継メッセージは、複数の受信側機器を示す情報（例えば、リスト）を含む。中継メッセージは、中継メッセージを中継メッセージとして識別するための中継メッセージコードを含む。無線機器は、ピアツーピアネットワークを介してメッセージを送信する際、（他の中継メッセージに対して特定の中継メッセージを識別するために）中継メッセージを特定する中継メッセージ識別子を中継メッセージに割り当てる。無線機器は、中継メッセージに中継メッセージ識別子を含ませる。また、一具体例では、無線機器は、ネットワークを介して、中継メッセージが伝播される距離を制限するホップカウント制限値を含ませる（ホップカウントについては、後述する）。無線機器は、受信側機器に送信する適切な追加的データを生成し、中継メッセージのペイロードデータとしてこのデータを挿入する。例えば、無線機器によって受信側機器とゲームをプレーする場合、無線機器は、中継メッセージに適切なゲームデータを挿入する。
【００３３】
無線機器は、ブロック３１５において、作成した中継メッセージを送信する。一具体例では、無線機器は、無線機器の無線インタフェースを介して中継メッセージをブロードキャストし、無線機器のローカル機器リスト内の全ての機器に中継メッセージを送信する。他の具体例では、無線機器は、中継メッセージ内のパス情報に基づいて、１つの又は選択されたローカル機器に中継メッセージを送信する。
【００３４】
無線機器が受信側機器との中継通信を開いた後、無線機器は、ブロック３１０、３１５について上述したように、中継メッセージの作成及び受信側機器への送信を継続する。
【００３５】
有線機器又は有線インタフェースを含む無線機器は、同様の技術を用いて、中継メッセージを送信し、すなわち、適切なインタフェースを選択して対応するローカル機器の中継メッセージを送信する。
【００３６】
一具体例では、無線機器は、受信側機器として又は中間機器として用いるために選択できるローカル機器の数を制限する最大ピアカウント値を有する。無線機器は、使用可能な全てのローカル機器（例えば、ビーコンへの応答によって判定される。）を示す第１のローカル機器リストを作成する。無線機器は、使用可能なローカル機器から、最大ピアカウント値と同じか、これより少ない数の機器を選択することによって、第２のローカル機器リストを作成する。無線機器は、例えば、応答時間又は信号強度等の様々な評価基準を用いて、第２のローカル機器リストの機器を選択する。一具体例では、最大ピアカウント値を動的に決定する。無線機器は、無線機器の現在の性能負荷に基づいて（例えば、機器がアイドル状態にあるときは、最大ピアカウント値を多くする。）、又はネットワークトラヒックに基づいて（例えば、トラヒックが非常に混んでいるときは、最大ピアカウント値を少なくする。）最大ピアカウント値を調整する。他の具体例では、無線機器は、ユーザ又はサーバからの情報に基づいて、最大ピアカウント値を設定する。
【００３７】
図４は、例えば、図３のブロック３０５において、受信側機器マップを用いて受信側機器を選択する処理の具体例のフローチャート４００を示している。まず、中継通信をサポートする無線機器が、ピアツーピアネットワークに参加する。無線機器は、（例えば、ビーコンを用いて）ローカル機器及びこれらのローカル機器との間に確立された直接接続のリストを作成する。無線機器は、ユーザから受信側機器を選択するための要求を受け取っている。
【００３８】
無線機器は、ブロック４０５において、各ローカル機器に受信側機器マップを要求する。受信側機器マップは、１又は複数の機器と、ローカルではない各機器について、マップのオーナへの完全なパス又は部分的パスを示す。マップのオーナとは、マップを作成した機器であり、パスは、このオーナに基づいて作成される。すなわち、パスは、マップのオーナと、そのパスにおける特定の受信側機器との間の１つ以上の対応する接続又は中間機器を示す。完全なパスとは、全ての介在する接続又は機器を示すパスであり、部分的パスとは、最後の１つ等、介在する接続又は機器の１つ以上を示すパスである。一具体例では、受信側機器マップは、機器を示すノード及び接続を示すリンクを含むグラフである。グラフを用いる一具体例では、マップは、オーナを示さない。他の具体例では、受信側機器マップは、各受信側機器毎に１つのエントリを有し、オーナから対応する受信側機器へのパスを示すフィールドを含むテーブルである。ローカル機器は、それらの受信側機器マップを無線機器に返す。一具体例では、ローカル機器は、それらのマップを返す前に、マップを更新する。一具体例では、マップ要求とは、既存のマップの要求であってもよく、これに代えて、現在のマップが古い場合、新たなマップを作成する要求であってもよい。他の具体例では、マップ要求を、特定のローカル機器宛ではなく、ブロードキャストとして送信する。マップの作成の具体例については、後に詳細に説明する。
【００３９】
無線機器は、ブロック４１０において、マップ要求に対して受信した応答に基づいて、受信側機器マップを作成する。無線機器は、受信したマップを自らのローカル機器リストに結合して、無線機器をオーナとするマップを作成する（これにより、無線機器に対する相対的なパスが定義される）。他の具体例では、無線機器が受信側機器マップを既に有しており、この受信側機器マップが現在有効である（例えば、有効期限閾値及びマップの作成又は更新のタイムスタンプによって判定され、又はローカル機器へのクエリによって判定される。）場合、無線機器は、マップ要求を送信せず、又は新たな受信側機器マップを作成しない。
【００４０】
無線機器は、ブロック４１５において、マップから受信側機器を選択する。無線機器は、無線機器のユーザインタフェースを介してユーザにマップを表示する。ユーザは、受信側機器を選択し、無線機器は、ユーザ選択に対応する受信側機器を選択する。
【００４１】
受信側機器マップ又はリストの作成には、様々な手法を用いることができる（また、これらの手法は、適宜、リスト及びマップのいずれか又は両方に適用できる）。この手法には、後述する伝播、ホップカウント、ネットワーク識別子、定期的更新等に基づく手法が含まれる。また、これらの手法及び他の手法を組み合わせて用いてもよい。
【００４２】
一具体例では、無線機器は、１つ以上の更新規則を用いて、受信側機器マップを更新する。ある規則では、環境を結合することによって受信側機器マップを更新する。他の規則では、受信側機器マップを定期的に更新する。機器は、受信側機器マップの最後の更新からの経過時間の比較に基づいて、受信側機器マップの期限が切れたときに、マップ要求を送信する。他の規則では、ローカル機器が使用できない状態になったとき、受信側機器マップを更新する。無線機器が、（例えば、通常のポーリング又は要求に応答がなかったことに基づいて）ローカル機器が使用可能なでなくなったことを検出すると、無線機器は、マップ要求を送信する。他の規則では、新たなローカル機器が使用可能になった際に受信側機器マップを更新する。他の規則では、無線機器は、ローカル機器が受信側機器マップを更新したことを示す更新メッセージをローカル機器から受信したときに受信側機器マップを更新する。機器が受信側機器マップを変更した場合、その機器は、それぞれのローカル機器に更新メッセージを送信する。各機器は、更新メッセージを受信すると、それらの受信側機器マップを更新するためにマップ要求を送信する。これらの又は様々な他の規則の１つ以上を用いて、受信側機器マップを作成し、更新し、維持管理することができる。
【００４３】
図５は、ノード及びリンクのグラフとして、１つのネットワーク構成５００の具体例を示している。マップの作成の具体例については、この図５を参照して、後に説明する。各ノードは、機器を表しており、ノードの間の各リンクは、２つの機器の間の直接接続を表している。ノードのそれぞれには、対応する機器を表す文字のラベルを付している。例えば、機器Ｘは、Ｘのラベルが付されたノードに対応している。図５において、機器Ｘは、３つの機器Ａ、Ｂ、Ｃとの直接接続を有している。機器Ｘは、無線機器であり、機器Ｘの通信範囲は、ノードＸを中心とする破線の円５１０によって示されている。機器Ｘは、通信範囲の外にある機器とは、直接無線接続を確立することができない。例えば、機器Ｘの通信範囲の外には、機器Ｄがある（破線の円５１０の外にあるノードＤによって示されている）。同様に他の機器も通信範囲内にある機器と直接接続を確立している。他の構成として、機器の幾つか又は全てが有線機器であってもよく、他の基準（例えば、ユーザによって設定されるローカル機器制限等の人為的制限）に基づいて、直接接続が制約されていてもよい。
【００４４】
伝播
マップの作成の一具体例では、ピアツーピアネットワーク内の機器は、伝播（propagation）を用いて、マップを作成及び更新する。まず、機器は、マップ要求を作成し、それぞれのローカル機器にマップ要求を送信する。このマップ要求は、使用可能な機器のマップを要求し、要求を特定するための識別子を含む。マップ要求を受信した各ローカル機器は、続いて、同じマップ要求識別子を用いて、自らにとってのローカル機器にマップ要求を送信する。なお、ここで、これらの機器は、マップ要求の送信側には、マップ要求を送信せず、及び同じマップ要求識別子を有するマップ要求を既に送信している場合もマップ要求を送信しない。これらのマップ要求を受信した機器は、同様の処理を繰り返し、マップ要求を送信する。要求の送信側にマップを返すために、機器は、機器がマップ要求を送信したローカル機器のそれぞれからの応答を待機する。機器が以前に受信したマップ要求と同じ識別子のマップ要求を受信した場合、機器は、失敗メッセージを返信する。機器がマップ要求を送信できる使用可能なローカル機器を有していない場合（例えば、唯一のローカル機器がマップ要求の送信側である場合）、その機器は、マップ要求の送信側に機器のローカル機器リストを返し、又はローカル機器リストに基づいてマップを作成して、このマップを返す。機器は、（失敗メッセージを返した機器を除く）マップ要求を送信したそれぞれのローカル機器から応答を受け取った後、この機器は、（存在する場合）受信したマップの情報を機器のローカル機器リストに結合し、マップを作成（又は更新）する。そして、機器は、マップ要求の送信側に新たなマップを返す。この処理は、マップ要求の元の送信者がローカル機器からマップを受信し、自らのマップを作成するまで繰り返される。
【００４５】
図５を参照して、上述した伝播法を用いてマップを作成する手順を説明する。まず、機器Ｘは、ローカル機器Ａ、Ｂ、Ｃのそれぞれにマップ要求を送信する。機器Ａは、マップ要求の送信者である機器Ｘを除くローカル機器Ｄ、Ｅにマップ要求を送信する。機器Ａによって送信されたマップ要求は、機器Ｘによって送信されたマップ要求と同じマップ要求識別子を有し、したがって、機器Ｘによって送信された元のマップ要求から伝播される全てのマップ要求は、同じマップ要求識別子を有する。機器Ｄは、機器Ａから要求を受信し、マップ要求を機器Ｅに送信する（機器Ｄは、機器Ａからマップ要求を受信しているので、機器Ａにはマップ要求を送信しない）。同様に、機器Ｅは、機器Ｄにマップ要求を送信する。機器Ｄが機器Ｅからマップ要求を受信すると、機器Ｄは、（マップ要求識別子の一致によって）このマップ要求は、機器Ａから受信し、機器Ｅに送信したマップ要求と同じであることを認識する。したがって、機器Ｄは、機器Ｅに失敗メッセージ（又はマップ要求が既に送信されていることを示す他のメッセージ）を送信する。同様に、機器Ｅは、機器Ｄに失敗メッセージを送信する。機器Ｄは、機器Ｅから失敗メッセージを受信すると、（機器Ｄは、機器Ｅだけにマップ要求を送信しているので）受信すべき応答がこれ以上ないことを認識する。機器Ｄは、応答として如何なるマップも受信しておらず、したがって、機器Ａからのマップ要求に対する応答として、ローカル機器リスト（機器Ａ、Ｅを示す）を機器Ａに返信する。同様に、機器Ｅは、ローカル機器リスト（機器Ｄ、Ａを示す）を機器Ａに返信する。機器Ａは、受信すべき全ての応答を受信したことを認識し、受信した応答及びそのローカル機器リストからマップを作成する。機器Ａが作成するマップは、機器Ｄが、機器Ａから機器Ｄへの接続を介して受信側機器として使用可能であり、機器Ｅが、機器Ａから機器Ｅへの接続を介して受信側機器として使用可能であり、機器Ａが、（例えば、Ｄ−Ａ、Ｅ−Ａ、Ａとして）受信側機器として使用可能であることを示す。２つのマップが同じ機器への代替パスを提供する場合、より短いパスが使用さる（中間機器の数が多い方が距離が長いとみなされる）。２つのパスが同じ長さの場合、任意の選択肢が作成され、又は両方のパスがマップに含められる。例えば、機器Ａから機器Ｅには、直接パスがあるため、機器Ａは、機器Ｘに返すマップには、機器Ｄから機器Ｅへのパスが使用可能であるという情報を含ませない。
【００４６】
機器Ｂは、機器Ｘからマップ要求を受信し、機器Ｃにマップ要求を送信する。ここで、機器Ｃは、機器Ｘから既にマップ要求を受信しており、したがって、機器Ｂに失敗メッセージを送信する。機器Ｂは、これ以上受信すべき応答がなく、如何なるマップも受信していないので、機器Ｘ、Ｃを含むローカル機器リストを機器Ｘに返す。これに代えて、機器Ｂは、ローカル機器リストを返信するのではなく、機器Ｃが、機器Ｂから機器Ｃへの接続を介して受信側機器として使用可能であり、機器Ｂが、（例えば、Ｃ−Ｂ、Ｂとして）受信側機器として使用可能であることを示すマップを返信してもよい。
【００４７】
機器Ｃは、機器Ｘからマップ要求を受信し、機器Ｘ以外のローカル機器Ｂ、Ｆ、Ｇにマップ要求を送信する。機器Ｂは、失敗メッセージを返す。機器Ｆは、続いて、ローカル機機器Ｈ、Ｉ、Ｇにマップ要求を送信する。機器Ｇは、ローカル機器Ｆ、Ｉ、Ｊ、Ｋにマップ要求を送信する。このように、これらの機器は、マップ要求の伝播を続け、マップを作成し、返信する。機器Ｃが、送信したマップ要求に対して受信すべき応答を受信すると、機器Ｃは、（上述した記号を用いて表現すれば）Ｌ−Ｈ−Ｆ−Ｃ、Ｍ−Ｈ−Ｆ−Ｃ、Ｈ−Ｆ−Ｃ、Ｉ−Ｆ−Ｃ、Ｊ−Ｇ−Ｃ、Ｋ−Ｇ−Ｃ、Ｆ−Ｃ、Ｇ−Ｃ、Ｃを示すマップを作成する。
【００４８】
機器Ｘが、機器Ａ、Ｂ、Ｃから受信すべき応答を受信すると、機器Ｘは、応答と、自らのローカル機器リストとを結合し、受信側機器及びパスＡ、Ｂ、Ｃ、Ｄ−Ａ、Ｅ−Ａ、Ｆ−Ｃ、Ｇ−Ｃ、Ｈ−Ｆ−Ｃ、Ｉ−Ｆ−Ｃ、Ｊ−Ｇ−Ｃ、Ｋ−Ｇ−Ｃ、Ｌ−Ｈ−Ｆ−Ｃ、Ｍ−Ｈ−Ｆ−Ｃを示すマップを作成する。このマップを用いて、機器は、使用可能な受信側機器を、（例えば、接続を示す）グラフィカルなマップ、リスト又は受信側機器、距離を表す情報（例えば、到達までの接続数又はカラーコード）を含むリスト等の様々な手法で表現することができる。ユーザが受信側機器として機器Ｈを選択した場合、例えば、機器Ｘは、中継メッセージに、「Ｘ−Ｃ−Ｆ−Ｈ」のように、機器Ｈまでのパスを表す情報を含ませることができる。機器Ｘが中継メッセージを送信する際、機器Ｘは、パス情報を用いて、機器Ｃに中継メッセージを送信し、他のローカル機器Ａ、Ｂには、この中継メッセージを送信しない。同様に、機器Ｃは、（機器Ｂ、Ｇではなく）機器Ｆに中継メッセージを渡す。
【００４９】
他の具体例では、無線機器は、マップの代わりに受信側機器リストを用いる。受信側機器リストは、使用可能な受信側機器を示し、パス情報を（明示的には）示さない。ある種類の受信側機器リストは、受信側機器がリストのオーナに対して、ローカル機器であるか否かを示す。この場合、機器は、上述した伝播法を用いて、マップではなく、リストを返信し、機器Ｘは、機器Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍを示すリストを作成する。
【００５０】
他の具体例では、機器は、冗長パス情報を保守する。この場合、機器は、使用可能なパスを示す受信側機器マップを保存し、選択のために受信側機器にマップを表示する際、マップにフィルタを適用して、冗長なパスを取り除く。マップ内の他の機器が使用できなくなった場合、機器は、冗長パス情報を用いて、使用できなくなった機器を介して接続されると示された機器への他のパスを特定する。例えば、図５の具体例では、機器Ｉから機器Ｘに至る２つのパスＩ−Ｆ−Ｃ−Ｘ及びＩ−Ｇ−Ｃ−Ｘがある。機器Ｘのフィルタが機器Ｆを介する第１のパスを選択して受信側機器選択に表示した場合、機器Ｇを介する第２のパスは冗長であり、したがって表示されない。ここで、機器Ｘは、冗長パス情報を保守しているので、機器Ｆが使用できなくなった場合、機器Ｘは、使用可能な機器Ｇを介する第２のパスを表示できる。
【００５１】
ホップカウント
他の具体例では、機器は、ホップカウントを用いて、マップ要求又はリスト要求をどこまで（幾つの接続を経由して）伝播するするかを限定する。「ホップ」は、様々に定義することができる。１つの定義では、ホップは、２つの機器の間の接続又はリンクである。図５に示す構成では、機器Ｘと機器Ｃの間の接続は、１ホップである。機器Ｘと機器Ｈとの間のパスは、３ホップである。他の定義として、ホップは、パスに沿った２つの中間機器の間の接続であってもよい。この場合、図５に示すように、機器Ｘと機器Ｈとの間のパスには、１ホップが存在する。すなわち、この場合、機器Ｘは、中間機器ではないので、機器Ｘと機器Ｃとの間には、ホップは存在しない。また、機器Ｃ及び機器Ｆは中間機器であるので機器Ｃと機器Ｆの間の接続は、ホップである。また、機器Ｈは、中間機器ではなく、受信側機器であるので、機器Ｆと機器Ｈの間の接続は、ホップではない。したがって、この定義では、機器Ｘと機器Ｈの間のパスのホップカウントは、１である。他の具体例として、例えば、ホップとみなされた接続の後の全ての接続をホップカウントとする（この場合、機器Ｘと機器Ｈの間のホップカウントは、２となる）等、異なる定義のホップカウントを用いてもよい。
【００５２】
ホップカウントが閾値に達すると、機器は、これ以上マップ又はリスト要求を送信しない。ホップカウントが３に制限された、リスト要求を用いる具体例では、機器は、ホップカウントに３に達した場合、リスト要求を送信しない。この３の制限によって、３ホップ以下に到達できる全ての受信側機器のリストが作成される。ホップカウントは、リスト要求に含まれる。各リンクがホップであるホップの定義を用いる場合、ホップカウントを１から開始し、機器が他の機器にリスト要求を送信する際、ホップカウントを１つインクリメントしてもよい（例えば、送信側によってインクリメントされる）。図５に示す具体例では、機器Ｘが機器Ｃにリスト要求を送信する際、ホップカウントは、１から２にインクリメントされる。また、機器Ｃが機器Ｆにリスト要求を送信する際、ホップカウントは、３にインクリメントされる。ここで、ホップカウントは、制限値である３に達する。したがって、機器Ｆは、ローカル機器（機器Ｇ、Ｈ、Ｉ）にリスト要求を送信せず、機器Ｃにローカル機器リストを返す。このパターンに従えば、機器Ｘが機器Ａ、Ｂ、Ｃに送信したリスト要求から受信すべき応答を受け取った場合、機器Ｘは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋを示すリストを作成する。ここでは、機器Ｈは、リスト要求を受信しないので、このリストは、機器Ｌ、Ｍを含んでいない。
【００５３】
ネットワーク識別子
受信側機器マップ又はリストの作成を制御する他の具体例では、要求にネットワーク識別子を含ませる。ネットワークに参加するそれぞれの機器は、同じネットワーク識別子を保存する。機器がマップ又はリスト要求を送信する場合、機器は、要求にネットワーク識別子を含ませる。機器が自らのネットワーク識別子とは異なるネットワーク識別子を示すマップ又はリスト要求を受信した場合、機器は、送信側に、機器がそのネットワークに参加していないことを示す拒否メッセージを返す。一方、ある機器が拒否メッセージを受信した場合、この機器は、使用可能な受信側機器のリスト又はマップに、拒否メッセージを送信した機器を含ませない。ネットワークへの参加は、サーバによって、又は参加機器の自己調整（例えば、招待又は要求及び承諾）を介して管理される。
【００５４】
定期的更新
受信側機器マップ又はリストを作成する他の具体例では、機器は、定期的更新を用いて、各ローカル機器に定期的に（又は必要に応じて）リストを要求することによってマップ又はリストを作成する。機器は、要求を伝播しない。機器は、要求側機器に現在の受信側機器リストを返す。機器は、応答を受信すると、応答をローカル機器リストに結合することによって自らの受信側機器リストを更新する。この後に機器がローカル機器からリスト要求を受信した場合、機器は、更新済みの受信側機器リストを返す。これにより、各機器の受信側機器リストは、徐々に発達し、使用可能な機器の全てが含まれるようになる。マップについても、同様の手法を用いることができる。マップ内のパス情報を用いて、使用可能な機器の変化をマップに適用してもよい。図５に示す具体例では、機器Ｘが完全な受信側機器リスト（機器Ａ〜Ｍを含む。）を有しており、機器Ｃが使用可能ではなくなったことを示す更新情報を受信した場合、機器Ｘは、パス情報に基づき、機器Ｆ〜Ｍへのリンクは機器Ｃが提供しているので、機器Ｆ〜Ｍも利用できなくなったと判断することができる。一具体例では、接続された機器がリストから除外された事実に応じて、機器は、（例えば、伝播法を用いて）新たなマップ要求を送信してもよい。
【００５５】
受信側機器マップ及びリストの作成及び更新のために、他の様々な技術を用いてもよい。例えば、他の手法として、無線機器は、定期的に自らのローカル機器リスト又は受信側機器リスト（又はマップ）をブロードキャストし、これに応じて、他の機器が、それぞれのリスト及びマップを更新してもよい。他の具体例では、機器間の通信をピアツーピア通信（直接又は中継）に維持したままサーバがリスト、マップ及び／又はパスを提供してもよい。
【００５６】
図６は、中間機器又は中継機器から中継メッセージを送信する処理の具体例のフローチャート６００を示している。まず、中継通信をサポートする無線機器が、ピアツーピアネットワークに参加する。無線機器は、アプリケーションプログラムを実行してもよく、実行しなくてもよい。無線機器は、（例えば、ビーコンを用いて）ローカル機器及びこれらのローカル機器との間に確立された直接接続のリストを作成する。
【００５７】
無線機器は、ブロック６０５において、無線機器のローカル機器の１つから中継メッセージを受信する。無線機器は、無線機器の無線インタフェースを介して、中継メッセージを受信する。中継メッセージは、中継メッセージコードを含んでいるので、無線機器は、中継メッセージが中継メッセージであることを認識できる。アプリケーションプログラムデータを含む中継メッセージの場合、無線機器は、中継メッセージ内のアプリケーションデータに対応するアプリケーションプログラムのローカルコピー又はローカルバージョンを必ずしも実行せず、中継メッセージに含まれているアプリケーションデータに対応するアプリケーションプログラムとは異なるアプリケーションプログラムを実行してもよい。なお、適切であれば（例えば、無線機器がそのアプリケーションプログラム又は関連するアプリケーションプログラムを実行している場合）、無線機器は、中継メッセージ内のアプリケーションデータを保存又は使用してもよい。
【００５８】
無線機器は、ブロック６１０において、無線機器が既に中継メッセージを受信しているか確認する。無線機器は、中継メッセージから中継メッセージ識別子を検索し、検索した中継メッセージ識別子と、（先に受信した中継メッセージから保存されている）受信済中継メッセージリストに保存されている中継メッセージ識別子とを比較する。検索された中継メッセージ識別子が、受信済中継メッセージリストに保存されている中継メッセージ識別子と一致する場合、無線機器は、中継メッセージを既に受信していると判定し、再び受信した中継メッセージを削除する。一方、受信した中継メッセージ識別子が、受信済中継メッセージリストに保存されている中継メッセージ識別子のいずれとも一致しない場合、無線機器は、この中継メッセージが新たな中継メッセージであると判定し、中継メッセージ識別子を受信済中継メッセージリストに追加する。
【００５９】
中継メッセージが新たな中継メッセージである場合、無線機器は、ブロック６１５において、無線機器が中継メッセージにおいて指示されている受信側機器であるかを確認する。この場合、無線機器は、中継メッセージから受信側機器情報を検索し、この受信側機器情報と、無線機器を特定する情報とを比較する。無線機器が指示されている受信側機器である場合、無線機器は、中継メッセージを中継せず、中継メッセージのペイロードデータにアクセスし、これを処理する（例えば、ペイロードデータをアプリケーションデータとして用いて、ゲームアプリケーションプログラムを実行する）。中継メッセージが複数の受信側機器（例えば、無線機器と、少なくとも１つの更なる機器）を示している場合、無線機器は、ペイロードデータを処理し、中継メッセージを送信し、ブロック６２０に進む。
【００６０】
無線機器が、中継メッセージにおいて指示されている受信側機器ではない場合、無線機器は、ブロック６２０において、指示されている受信側機器が無線機器のローカル機器であるか否かを確認する。この場合、無線機器は、受信側機器情報と、無線機器のローカル機器リストとを比較する。
【００６１】
受信側機器がローカル機器の１つである場合、無線機器は、ブロック６２５において、無線インタフェースを介して、中継メッセージを受信側機器に送信する。受信側機器が無線機器のローカル機器の１つでない場合、無線機器は、ブロック６３０において、中継メッセージを無線機器に送信してきたローカル機器を除くローカル機器のそれぞれに中継メッセージを送信する。パスを用いる具体例では、中継メッセージが、次の中間機器を示すパス情報、したがって、無線機器がどのローカル機器に中継メッセージを送信するかに関する情報を含む場合、無線機器は、これによって示されている中間機器に中継メッセージを送信する。
【００６２】
図６に示す処理は、一組の中継規則（例えば、同じ中継メッセージを複数回送信しない。）に則って実行される。他の規則の組を用いる具体例では、（又は１つの規則のみ、又は規則がない具体例では）、中継メッセージをどのように扱うかに関する処理は、異なっていてもよい。例えば、一具体例においては、中間機器は、中継メッセージを送信する前に、受信側機器の更新済みのマップ又はリストを調べ、示されている受信側機器が現在も使用可能であるかを確認してもよい。他の具体例として、中間機器が同じ中継メッセージを未だ送信していない場合、常に、（例えば、特定の機器ではなく、通信範囲内の全ての機器に）中継メッセージをブロードキャストしてもよい。
【００６３】
本発明は、電子ハードウェア、コンピュータソフトウェア、又はこれらの技術の組合せにより、様々な形式で実現することができる。多くの具体例は、プログラミング可能なコンピュータにより実行される１以上のコンピュータプログラムを含む。例えば、図１Ａに示すように、一具体例において、無線機器１０５は、１つ以上のプログラミング可能なプロセッサ（例えば、図２に示すコントローラ２２０）を備える。通常、各コンピュータは１以上のプロセッサと、１以上のデータストレージ装置（例えば、揮発性又は不揮発性メモリモジュールと、例えばハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭドライブ、磁気テープドライブ等の持続的な光及び磁気記録装置）と、１以上の入力装置（例えば、マウス及びキーボード）と、１以上の出力装置（例えば、ディスプレイ及びプリンタ）とを備える。
【００６４】
コンピュータプログラムは、通常、持続的なストレージ媒体（persistent storage medium）に記録されており、実行時にメモリにコピーされる実行可能なコードを含む。プロセッサは、所定の順序でメモリから命令を読み出すことにより、このコードを実行する。プログラムコードを実行する際、コンピュータは、入力装置及び／又はストレージ装置からデータを受け取り、データを処理し、処理されたデータを出力装置及び／又はストレージ装置に供給する。
【００６５】
本発明の様々な実施の形態について説明したが、当業者は、本発明の範囲を逸脱することなく、上述した以外の実施の形態を想到することができる。例えば、無線機器を用いた実施の形態を中心に本発明を説明したが、無線機器又はマルチインタフェース（例えば、有線及び無線）機器を用いてもよい。
【００６６】
更に、ゲームアプリケーションプログラムではなく、例えば、科学的プログラム、通信プログラム等、他のアプリケーションプログラムをサポートするために中継メッセージを交換してもよい。この場合、中継メッセージのペイロードデータは、目的のアプリケーションプログラムの性質を反映する（例えば、ネットワーク解析アプリケーションプログラムの場合、最新のネットワーク検査結果）。
【００６７】
したがって、本発明は、上述した具体例のみに限定されるわけではない。
【図面の簡単な説明】
【００６８】
【図１Ａ】ピアツーピアネットワークにおいて通信を行う３つの無線機器を示す図である。
【図１Ｂ】２つの無線機器、ネットワーク機器及びサーバシステムが直接通信及び中継通信を用いて通信を行う他のネットワーク環境を示す図である。
【図２】ピアツーピア中継通信をサポートする無線機器の具体例のブロック図である。
【図３】中継メッセージを送信する処理の一例のフローチャートである。
【図４】受信側機器マップを用いて受信側機器を選択する処理の具体例のフローチャートである。
【図５】ノード及びリンクのグラフとして、１つのネットワーク構成の具体例を示す図である。
【図６】中間機器又は中継機器から中継メッセージを送信する処理の具体例のフローチャートである。
【図１Ａ】
2008517554.tif 000003
【図１Ｂ】
2008517554.tif 000004
【図２】
2008517554.tif 000005
【図３】
2008517554.tif 000006
【図４】
2008517554.tif 000007
【図５】
2008517554.tif 000008
【図６】
2008517554.tif 000009
【手続補正書】
【提出日】平成20年1月24日(2008.1.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アンテナと、
上記アンテナに接続され、該アンテナによって提供される無線接続を介した無線通信をサポートする無線通信インタフェースと、
データの保存をサポートする記憶装置と、
上記無線通信インタフェース及び上記記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、
上記中継サービスは、当該無線機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、該作成された新たな中継メッセージを送信するとともに、当該無線機器以外の受信側機器を示す受信中継メッセージを送信し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、サーバによって提供されるリストから選択されることを特徴とする無線機器。
【請求項２】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器のリストを作成し、該リストから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１記載の無線機器。
【請求項３】
上記受信側機器選択サービスは、要求側機器に上記リストを送信することを特徴とする請求項２記載の無線機器。
【請求項４】
上記受信側機器選択サービスは、伝播を用いて上記リストの作成をサポートすることを特徴とする請求項２記載の無線機器。
【請求項５】
上記受信側機器選択サービスは、他の機器からのマップ要求に、少なくとも１つの他の機器に要求を送信することによって、応じることを特徴とする請求項２記載の無線機器。
【請求項６】
上記マップ要求は、ホップカウントを示し、上記受信側機器選択サービスは、該ホップカウントが閾値に達した場合、該マップ要求を送信しないことを特徴とする請求項５記載の無線機器。
【請求項７】
上記マップ要求は、ネットワーク識別子を示し、上記受信側機器選択サービスは、当該無線機器によって保存されている識別子に一致しない上記ネットワーク識別子を送信しないことを特徴とする請求項５記載の無線機器。
【請求項８】
上記受信側機器選択サービスは、上記リストを定期的に更新することを特徴とする請求項２記載の無線機器。
【請求項９】
上記受信側機器選択サービスは、上記リストを、１つ以上の更新規則を用いて更新することを特徴とする請求項２記載の無線機器。
【請求項１０】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該無線機器との間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１記載の無線機器。
【請求項１１】
上記作成された新たな中継メッセージは、上記選択された受信側機器と当該無線機器との間の間接接続を提供する少なくとも１つの中間機器を示すことを特徴とする請求項１０記載の無線機器。
【請求項１２】
上記アプリケーションサービスによって実行及び管理される上記１つ以上のアプリケーションプログラムの少なくとも１つは、ゲームアプリケーションプログラムであることを特徴とする請求項１記載の無線機器。
【請求項１３】
上記無線インタフェースは、Ｗｉ−Ｆｉインタフェースであることを特徴とする請求項１記載の無線機器。
【請求項１４】
ネットワーク接続を介したネットワーク通信をサポートするネットワーク通信インタフェースと、
データの保存をサポートする記憶装置と、
上記ネットワーク通信インタフェース及び上記記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、
上記中継サービスは、当該ネットワーク機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、該作成された新たな中継メッセージを送信するとともに、当該ネットワーク機器以外の受信側機器を示す受信中継メッセージを送信し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、サーバによって提供されるリストから選択されることを特徴とするネットワーク機器。
【請求項１５】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器のリストを作成し、該リストから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１４記載のネットワーク機器。
【請求項１６】
上記コントローラは、受信側機器選択サービスをサポートし、
上記受信側機器選択サービスは、少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該ネットワーク機器との間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であることを特徴とする請求項１４記載のネットワーク機器。
【請求項１７】
上記作成された新たな中継メッセージは、上記選択された受信側機器と当該ネットワーク機器との間の間接接続を提供する少なくとも１つの中間機器を示すことを特徴とする請求項１６記載のネットワーク機器。
【請求項１８】
上記アプリケーションサービスによって実行及び管理される上記１つ以上のアプリケーションプログラムの少なくとも１つは、ゲームアプリケーションプログラムであることを特徴とする請求項１４記載のネットワーク機器。
【請求項１９】
アンテナと、
上記アンテナに接続され、該アンテナによって提供される無線接続を介した無線通信をサポートする無線通信インタフェースと、
データの保存をサポートする記憶装置と、
上記記憶装置に接続され、リムーバブル媒体からのゲームアプリケーションプログラムの読出をサポートするメディアインタフェースと、
上記無線通信インタフェース及び上記記憶装置に接続され、中継メッセージのためのアプリケーションサービス、メッセージサービス及び中継サービスをサポートするコントローラとを備え、
上記アプリケーションサービスは、上記記憶装置に保存されたアプリケーションデータを用いて、上記コントローラによってアクセス可能な１つ以上のアプリケーションプログラムを実行及び管理し、
上記メッセージサービスは、メッセージを作成し、及び受信メッセージを処理し、
上記中継サービスは、当該無線ゲーム機器が直接無線接続を有さない選択された受信側機器を指示する新たな中継メッセージを作成し、該作成された新たな中継メッセージを送信するとともに、当該無線ゲーム機器以外の受信側機器を示す受信中継メッセージを送信し、
上記受信側機器選択サービスは、上記少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と当該無線ゲーム機器との間の接続とのマップを作成し、該マップから受信側機器を選択し、
上記中継サービスが新たな中継メッセージを作成する際に用いる上記選択された受信側機器は、上記受信側機器選択サービスによって選択された受信側機器であり、
上記無線インタフェースは、Ｗｉ−Ｆｉインタフェースであり、
上記少なくとも１つの受信側機器のマップの作成は、サーバからマップを受信することを含むことを特徴とする無線ゲーム機器。
【請求項２０】
中継メッセージを送信する中継メッセージ送信方法において、
送信側機器において、中継メッセージの受信側機器を選択するステップと、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成するステップと、
無線インタフェースを介して少なくとも１つのローカル機器に上記中継メッセージを送信するステップとを有し、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さず、
上記受信側機器は、サーバによって提供されるリストから選択されることを特徴とする中継メッセージ送信方法。
【請求項２１】
少なくとも１つの受信側機器のリストを作成するステップを更に有し、
上記受信側機器を選択するステップは、上記リストから上記受信側機器を選択することを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２２】
上記少なくとも１つの受信側機器のリストを作成するステップは、サーバから少なくとも１つの機器のリストを受信するステップを含むことを特徴とする請求項２１記載の中継メッセージ送信方法。
【請求項２３】
上記少なくとも１つの受信側機器のリストを作成するステップは、少なくとも１つのローカル機器にリスト要求を送信するステップを含むことを特徴とする請求項２１記載の中継メッセージ送信方法。
【請求項２４】
少なくとも１つの受信側機器と、該少なくとも１つの受信側機器と上記送信側機器との間の接続とのマップを作成するステップを更に有し、
上記受信側機器を選択するステップは、上記マップから受信側機器を選択することを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２５】
上記少なくとも１つの受信側機器のマップを作成するステップは、サーバからマップを受信するステップを含むことを特徴とする請求項２４記載の中継メッセージ送信方法。
【請求項２６】
上記少なくとも１つの受信側機器のマップを作成するステップは、少なくとも１つのローカル機器にマップ要求を送信するステップを含むことを特徴とする請求項２４記載の中継メッセージ送信方法。
【請求項２７】
上記中継メッセージを送信するステップは、上記無線インタフェースを介して上記中継メッセージをブロードキャストするステップを含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２８】
上記中継メッセージは、上記送信側機器と上記選択された受信側機器との間の少なくとも１つの中間機器を示すパス情報を含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項２９】
上記中継メッセージは、複数の受信側機器を示すことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項３０】
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記選択された受信側機器がローカル機器であるかを判定するステップを更に有する請求項２０記載の中継メッセージ送信方法。
【請求項３１】
上記中継メッセージは、ゲームアプリケーションデータを含むことを特徴とする請求項２０記載の中継メッセージ送信方法。
【請求項３２】
中継メッセージを送信する中継メッセージ送信方法において、
中継機器において、無線インタフェースを介して、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを送信側機器から受信するステップと、
上記中継メッセージを確認し、上記中継機器が上記受信側機器であるかを判定するステップと、
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記受信側機器がローカル機器であるかを判定するステップと、
上記受信側機器がローカル機器である場合、上記中継機器から、上記無線インタフェースを介して、上記受信側機器に上記中継メッセージを送信するステップと、
上記受信側機器がローカル機器でない場合、上記中継機器から、上記無線インタフェースを介して、上記ローカル機器リストに含まれている少なくとも１つのローカル機器に
上記中継メッセージを送信するステップとを有し、
上記送信側機器は、上記中継機器への直接接続を有し、上記中継機器は、上記ローカル機器リストに示された各ローカル機器への直接接続を有し、上記送信側機器は、上記受信側機器への直接接続を有さず、
上記中継機器が既に上記中継メッセージを送信している場合、該中継機器は、該中継メッセージを送信しないことを特徴とする中継メッセージ送信方法。
【請求項３３】
上記中継機器から少なくとも１つのローカル機器に上記中継メッセージを送信するステップは、上記無線インタフェースを介して上記中継メッセージをブロードキャストするステップを含むことを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３４】
上記中継機器から少なくとも１つのローカル機器に上記中継メッセージを送信するステップは、上記送信側機器を除く上記ローカル機器リスト内の各ローカル機器に上記中継メッセージを送信することを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３５】
上記中継メッセージは、少なくとも１つの中間機器を含むパスを示し、
上記中継機器から少なくとも１つのローカル機器に上記中継メッセージを送信するステップは、上記パスによって示されている中間機器に上記中継メッセージを送信することを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３６】
上記アプリケーションデータは、ゲームアプリケーションデータであることを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３７】
上記中継機器は、上記中継メッセージに含まれる上記アプリケーションデータに対応する上記アプリケーションプログラムのローカルコピーを実行しないことを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３８】
上記中継機器は、上記中継メッセージに含まれる上記アプリケーションデータに対応する上記アプリケーションプログラムとは異なるアプリケーションのローカルコピーを実行することを特徴とする請求項３２記載の中継メッセージ送信方法。
【請求項３９】
中継メッセージを送信する中継メッセージ送信システムにおいて、
送信側機器において、中継メッセージの受信側機器を選択する選択手段と、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成する作成手段と、
無線インタフェースを介して少なくとも１つのローカル機器に上記中継メッセージを送信する送信手段とを備え、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さず、
上記選択された受信側機器は、サーバによって提供されるリストから選択されることを特徴とする中継メッセージ送信システム。
【請求項４０】
コンピュータが読取り可能なストレージ媒体に保存され、コンピュータが中継メッセージを送信するための実行可能なインストラクションを含むコンピュータプログラムにおいて、
当該コンピュータプログラムは、上記コンピュータに、
送信側機器において、中継メッセージの受信側機器を選択するステップと、
上記選択された受信側機器を示す受信側機器識別子を含む上記中継メッセージを作成するステップと、
無線インタフェースを介して少なくとも１つのローカル機器に上記中継メッセージを送信するステップとを実行させ、
上記送信側機器は、上記少なくとも１つのローカル機器のそれぞれに対する直接接続を有し、
上記送信側機器は、上記受信側機器に対する直接接続を有さず、
上記選択された受信側機器は、サーバによって提供されるリストから選択されることを特徴とするコンピュータプログラム。
【請求項４１】
中継メッセージを送信する中継メッセージ送信システムにおいて、
中継機器において、無線インタフェースを介して、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを送信側機器から受信する受信手段と、
上記中継メッセージを確認し、上記中継機器が上記受信側機器であるかを判定する受信側機器判定手段と、
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記受信側機器がローカル機器であるかを判定するローカル機器判定手段と、
上記受信側機器がローカル機器である場合、上記中継機器から、上記無線インタフェースを介して、上記受信側機器に上記中継メッセージを送信する第１の送信手段と、
上記受信側機器がローカル機器でない場合、上記中継機器から、上記無線インタフェースを介して、上記ローカル機器リストに含まれている少なくとも１つのローカル機器に上記中継メッセージを送信する第２の送信手段とを備え、
上記送信側機器は、上記中継機器への直接接続を有し、上記中継機器は、上記ローカル機器リストに示された各ローカル機器への直接接続を有し、上記送信側機器は、上記受信側機器への直接接続を有さず、
上記受信側機器は、サーバによって提供されるリストから選択されることを特徴とする中継メッセージ送信システム。
【請求項４２】
コンピュータが読取り可能なストレージ媒体に保存され、コンピュータが中継メッセージを送信するための実行可能なインストラクションを含むコンピュータプログラムにおいて、
当該コンピュータプログラムは、上記コンピュータに、
中継機器において、無線インタフェースを介して、送信側機器から受信した、受信側機器を示す受信側機器識別子を含み、及びアプリケーションプログラムのためのアプリケーションデータを含む中継メッセージを処理するステップと、
上記中継メッセージを確認し、上記中継機器が上記受信側機器であるかを判定するステップと、
少なくとも１つのローカル機器を示すローカル機器リストを確認し、上記受信側機器がローカル機器であるかを判定するステップと、
上記受信側機器がローカル機器である場合、上記中継機器から、上記無線インタフェースを介して、上記受信側機器に上記中継メッセージを送信するステップと、
上記受信側機器がローカル機器でない場合、上記中継機器から、上記無線インタフェースを介して、上記ローカル機器リストに含まれている少なくとも１つのローカル機器に上記中継メッセージを送信するステップとを実行させ、
上記送信側機器は、上記中継機器への直接接続を有し、上記中継機器は、上記ローカル機器リストに示された各ローカル機器への直接接続を有し、上記送信側機器は、上記受信側機器への直接接続を有さず、
上記受信側機器は、サーバによって提供されるリストから選択されることを特徴とするコンピュータプログラム。
【国際調査報告】
2008517554.tif 000010
2008517554.tif 000011
2008517554.tif 000012