(57)【要約】      （修正有）【課題】インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションの実行を可能とする情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供する。【解決手段】情報処理装置それぞれが有するバージョン情報に基づいて、複数の情報処理装置内において最新のバージョンのユーザアプリケーションを格納する情報処理装置３ａを特定し、最新のバージョンのユーザアプリケーションを格納する情報処理装置３ａから当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置３ｂ、３ｃへ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信することにより、受信した更新プログラムを用いて自機のユーザアプリケーションを更新する。【選択図】図３
2019070928.tif 000002
【特許請求の範囲】
【請求項１】
ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報をそれぞれ格納した複数の情報処理装置を含む情報処理システムであって、
前記複数の情報処理装置の少なくとも１つは、前記ユーザアプリケーションの更新プログラムを格納し、
前記情報処理システムは、
前記情報処理装置それぞれが有する前記バージョン情報に基づいて、前記複数の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定手段と、
前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信する更新プログラム送信手段と、
送信された前記更新プログラムを無線通信により直接受信する更新プログラム受信手段と、
受信した更新プログラムを用いて、自機のユーザアプリケーションを更新する更新手段とを備える、情報処理システム。
【請求項２】
前記複数の情報処理装置は、自機を子機または前記特定手段を有する親機の何れかに設定する設定手段を、それぞれ備え、
前記子機は、自機が格納するユーザアプリケーションのバージョン情報を前記親機に送信するバージョン情報送信手段を、さらに備え、
前記親機は、前記子機から送信された前記バージョン情報を受信するバージョン情報受信手段を、さらに備え、
前記特定手段は、前記子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、前記最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定する、請求項１に記載の情報処理システム。
【請求項３】
前記最新のバージョンのユーザアプリケーションを格納する情報処理装置が前記親機の場合、
前記親機は、最新のバージョンのユーザアプリケーションを格納していない子機へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信することによって、前記更新プログラム送信手段として機能し、
前記子機は、
前記親機から送信された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
前記親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項２に記載の情報処理システム。
【請求項４】
前記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに前記情報処理プログラムに含まれる場合、
前記更新プログラム送信手段は、前記他の子機へ前記更新プログラムを無線通信によりさらに直接送信し、
前記他の子機は、
前記親機から送信された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
前記親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項３に記載の情報処理システム。
【請求項５】
前記最新のバージョンのユーザアプリケーションを格納する情報処理装置が前記子機の場合、
前記親機は、前記最新のバージョンのユーザアプリケーションを格納する前記子機に当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを要求する要求手段を、さらに備え、
前記子機は、前記親機から更新プログラムを要求された場合に、当該更新プログラムを当該親機に無線通信により直接送信することによって、前記更新プログラム送信手段として機能し、
前記親機は、
前記子機から送信された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
前記子機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項２に記載の情報処理システム。
【請求項６】
前記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに前記情報処理プログラムに含まれる場合、
前記親機は、前記子機から送信された前記更新プログラムを前記他の子機へ無線通信により直接転送する更新プログラム転送手段を、さらに備え、
前記他の子機は、
前記親機から転送された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
前記親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項５に記載の情報処理システム。
【請求項７】
前記複数の情報処理装置は、前記ユーザアプリケーションに加えて、少なくとも当該ユーザアプリケーションの実行を制御する基本アプリケーションと当該基本アプリケーションの基本バージョン情報とをそれぞれ格納し、
前記複数の情報処理装置の少なくとも１つは、前記基本アプリケーションの基本更新プログラムを格納し、
前記特定手段は、前記情報処理装置それぞれが有する前記基本バージョン情報に基づいて、最新のバージョンの前記基本アプリケーションを格納する情報処理装置をさらに特定し、
前記更新プログラム送信手段は、前記最新のバージョンの基本アプリケーションを格納する情報処理装置から当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを無線通信によりさらに直接送信し、
前記更新プログラム受信手段は、送信された前記基本更新プログラムを無線通信によりさらに直接受信し、
前記更新手段は、受信した基本更新プログラムを用いて、自機の基本アプリケーションをさらに更新する、請求項１に記載の情報処理システム。
【請求項８】
前記更新手段は、自機の基本アプリケーションを更新する場合、受信した前記基本更新プログラムを用いて自機の基本アプリケーションを更新した後、受信した前記更新プログラムを用いて自機のユーザアプリケーションを更新する、請求項７に記載の情報処理システム。
【請求項９】
前記更新プログラム送信手段は、前記最新のバージョンのユーザアプリケーションを実行するために前記基本アプリケーションを最新のバージョンへ更新することが必要な場合に限り、当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを送信する、請求項７または８に記載の情報処理システム。
【請求項１０】
前記複数の情報処理装置は、自機を子機または前記特定手段を有する親機の何れかに設定する設定手段を、それぞれ備え、
前記子機は、自機が格納するユーザアプリケーションのバージョン情報と自機が格納する基本アプリケーションの基本バージョン情報とをまとめて前記親機に送信するバージョン情報送信手段を、さらに備え、
前記親機は、前記子機から送信された前記バージョン情報および前記基本バージョン情報を受信するバージョン情報受信手段を、さらに備え、
前記特定手段は、前記子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、前記最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定するとともに、前記子機から受信した基本バージョン情報と自機の基本アプリケーションの基本バージョン情報とに基づいて、前記最新のバージョンの基本アプリケーションを格納する情報処理装置を特定する、請求項７乃至９の何れか１つに記載の情報処理システム。
【請求項１１】
前記複数の情報処理装置は、前記ユーザアプリケーションを実行することによって他の情報処理装置とデータの送受信を行い、当該送受信したデータに基づいて情報処理を行う情報処理手段を、それぞれ備える、請求項１乃至１０の何れか１つに記載の情報処理システム。
【請求項１２】
前記設定手段は、前記最新のバージョンの基本アプリケーションを格納する情報処理装置が前記子機の場合、当該子機を親機に変更するとともに、他の情報処理装置を子機に変更する、請求項１０に記載の情報処理システム。
【請求項１３】
ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報をそれぞれ格納した複数の情報処理装置を含む情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
前記複数の情報処理装置の少なくとも１つは、前記ユーザアプリケーションの更新プログラムを格納し、
前記情報処理方法は、
前記情報処理装置それぞれが有する前記バージョン情報に基づいて、前記複数の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定ステップと、
前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信する更新プログラム送信ステップと、
送信された前記更新プログラムを無線通信により直接受信する更新プログラム受信ステップと、
受信した更新プログラムを用いて、自機のユーザアプリケーションを更新する更新ステップとを含む、情報処理方法。
【請求項１４】
ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報を格納した情報処理装置であって、
他の情報処理装置それぞれが有する前記バージョン情報に基づいて、自機および当該他の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定手段と、
前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信させる更新プログラム送信制御手段と、
前記送信された更新プログラムを用いて、自機のユーザアプリケーションを更新させる更新制御手段とを備える、情報処理装置。
【請求項１５】
ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報を格納した情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
他の情報処理装置それぞれが有する前記バージョン情報に基づいて、自機および当該他の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定手段と、
前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信させる更新プログラム送信制御手段と、
前記送信された更新プログラムを用いて、自機のユーザアプリケーションを更新させる更新制御手段として機能させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関し、特に例えば、複数の情報処理装置間で通信を行う情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関する。
【背景技術】
【０００２】
従来、インターネット通信を用いて、サーバに接続してアプリケーションおよびシステムのアップデートを行う情報処理システムがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１８６５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１で開示された情報処理システムは、ローカルネットワーク内に配置された複数の情報処理装置間のローカル通信を用いて各情報処理装置がアプリケーションを実行する場合、それぞれの装置同士でアプリケーションのバージョンが同じであることが必要となることがある。しかしながら、上記複数の情報処理装置がインターネット通信を用いて同じバージョンのアプリケーションに更新することができない場合、複数の情報処理装置間のローカル通信を用いたアプリケーションを実行することができなかった。
【０００５】
それ故に、本発明の目的は、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションの実行を可能とする情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の情報処理システムの一構成例は、ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報をそれぞれ格納した複数の情報処理装置を含む。複数の情報処理装置の少なくとも１つは、ユーザアプリケーションの更新プログラムを格納する。情報処理システムは、特定手段、更新プログラム送信手段、更新プログラム受信手段、および更新手段を備える。特定手段は、情報処理装置それぞれが有するバージョン情報に基づいて、複数の情報処理装置内において最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定する。更新プログラム送信手段は、最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信する。更新プログラム受信手段は、送信された更新プログラムを無線通信により直接受信する。更新手段は、受信した更新プログラムを用いて、自機のユーザアプリケーションを更新する。
【０００８】
上記によれば、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのユーザアプリケーションに合わせて当該ユーザアプリケーションを実行することができる。また、ローカルネットワークエリア内に配置された複数の情報処理装置の間で無線通信を直接行う、いわゆるローカル通信を用いて、複数の情報処理装置間で同じバージョンのユーザアプリケーションに合わせて当該ユーザアプリケーションを実行することができる。
【０００９】
また、上記複数の情報処理装置は、設定手段を、それぞれ備えてもよい。設定手段は、自機を子機または特定手段を有する親機の何れかに設定する。上記子機は、バージョン情報送信手段を、さらに備えてもよい。バージョン情報送信手段は、自機が格納するユーザアプリケーションのバージョン情報を親機に送信する。上記親機は、バージョン情報受信手段を、さらに備えてもよい。バージョン情報受信手段は、子機から送信されたバージョン情報を受信する。上記特定手段は、子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定してもよい。
【００１０】
上記によれば、複数の情報処理装置のうち、親機に設定された情報処理装置において各情報処理装置が格納するユーザアプリケーションのバージョンを管理することができる。
【００１１】
また、上記最新のバージョンのユーザアプリケーションを格納する情報処理装置が親機の場合、上記親機は、最新のバージョンのユーザアプリケーションを格納していない子機へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信することによって、更新プログラム送信手段として機能してもよい。上記子機は、親機から送信された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
【００１２】
上記によれば、情報処理装置の親機が最新のバージョンのユーザアプリケーションを格納している場合、当該親機から子機へ更新プログラムを無線通信により直接送信することによって、複数の情報処理装置それぞれが格納するユーザアプリケーションのバージョンを合わせることができる。
【００１３】
また、上記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに情報処理プログラムに含まれる場合、上記更新プログラム送信手段は、他の子機へ更新プログラムを無線通信によりさらに直接送信してもよい。他の子機は、親機から送信された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
【００１４】
上記によれば、情報処理装置の親機が最新のバージョンのユーザアプリケーションを格納している場合、当該親機から他の子機へも更新プログラムを無線通信により直接送信することによって、親機と複数の子機とがそれぞれ格納するユーザアプリケーションのバージョンを合わせることができる。
【００１５】
また、上記最新のバージョンのユーザアプリケーションを格納する情報処理装置が子機の場合、上記親機は、要求手段を、さらに備えてもよい。要求手段は、最新のバージョンのユーザアプリケーションを格納する子機に当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを要求する。上記子機は、親機から更新プログラムを要求された場合に、当該更新プログラムを当該親機に無線通信により直接送信することによって、更新プログラム送信手段として機能してもよい。上記親機は、子機から送信された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、子機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
【００１６】
上記によれば、情報処理装置の子機が最新のバージョンのユーザアプリケーションを格納している場合、当該子機から親機へ更新プログラムを無線通信により直接送信することによって、複数の情報処理装置それぞれが格納するユーザアプリケーションのバージョンを合わせることができる。
【００１７】
また、上記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに情報処理プログラムに含まれる場合、上記親機は、更新プログラム転送手段を、さらに備えてもよい。更新プログラム転送手段は、子機から送信された更新プログラムを他の子機へ無線通信により直接転送する。上記他の子機は、親機から転送された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
【００１８】
上記によれば、情報処理装置の子機が最新のバージョンのユーザアプリケーションを格納している場合、親機が他の子機へ更新プログラムを無線通信により直接転送することによって、複数の情報処理装置それぞれが格納するユーザアプリケーションのバージョンを合わせることができる。
【００１９】
また、上記複数の情報処理装置は、ユーザアプリケーションに加えて、少なくとも当該ユーザアプリケーションの実行を制御する基本アプリケーションと当該基本アプリケーションの基本バージョン情報とをそれぞれ格納してもよい。この場合、上記複数の情報処理装置の少なくとも１つは、基本アプリケーションの基本更新プログラムを格納してもよい。上記特定手段は、情報処理装置それぞれが有する基本バージョン情報に基づいて、最新のバージョンの基本アプリケーションを格納する情報処理装置をさらに特定してもよい。上記更新プログラム送信手段は、最新のバージョンの基本アプリケーションを格納する情報処理装置から当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを無線通信によりさらに直接送信してもよい。上記更新プログラム受信手段は、送信された基本更新プログラムを無線通信によりさらに直接受信してもよい。上記更新手段は、受信した基本更新プログラムを用いて、自機の基本アプリケーションをさらに更新してもよい。
【００２０】
上記によれば、さらに複数の情報処理装置間で基本アプリケーションのバージョンを合わせて、当該基本アプリケーションおよびユーザアプリケーションを実行することができる。
【００２１】
また、上記更新手段は、自機の基本アプリケーションを更新する場合、受信した基本更新プログラムを用いて自機の基本アプリケーションを更新した後、受信した更新プログラムを用いて自機のユーザアプリケーションを更新してもよい。
【００２２】
上記によれば、基本アプリケーションのバージョンがユーザアプリケーションのバージョンと合わないことによる不具合を防止することができる。
【００２３】
また、上記更新プログラム送信手段は、最新のバージョンのユーザアプリケーションを実行するために基本アプリケーションを最新のバージョンへ更新することが必要な場合に限り、当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを送信してもよい。
【００２４】
上記によれば、基本アプリケーションに対して、ユーザアプリケーションを実行するために必要最低限の更新が行われるため、更新処理を軽減することが可能であり、ユーザアプリケーションが実行可能となるまでの時間を短縮することができる。
【００２５】
また、上記複数の情報処理装置は、設定手段を、それぞれ備えてもよい。設定手段は、自機を子機または特定手段を有する親機の何れかに設定する。子機は、バージョン情報送信手段を、さらに備えてもよい。バージョン情報送信手段は、自機が格納するユーザアプリケーションのバージョン情報と自機が格納する基本アプリケーションの基本バージョン情報とをまとめて親機に送信する。親機は、バージョン情報受信手段を、さらに備えてもよい。バージョン情報受信手段は、子機から送信されたバージョン情報および基本バージョン情報を受信する。上記特定手段は、子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定するとともに、子機から受信した基本バージョン情報と自機の基本アプリケーションの基本バージョン情報とに基づいて、最新のバージョンの基本アプリケーションを格納する情報処理装置を特定してもよい。
【００２６】
上記によれば、基本アプリケーションおよびユーザアプリケーションのバージョン情報がまとめて送受信されるため、データ送受信処理負荷やバージョン管理処理負荷を軽減することができる。
【００２７】
また、上記複数の情報処理装置は、情報処理手段を、それぞれ備えてもよい。情報処理手段は、ユーザアプリケーションを実行することによって他の情報処理装置とデータの送受信を行い、当該送受信したデータに基づいて情報処理を行う。
【００２８】
上記によれば、バージョンを合わせたユーザアプリケーションを複数の情報処理装置が実行することによって、当該情報処理装置間でデータ送受信を行う情報処理を実現することができる。
【００２９】
また、上記設定手段は、最新のバージョンの基本アプリケーションを格納する情報処理装置が子機の場合、当該子機を親機に変更するとともに、他の情報処理装置を子機に変更してもよい。
【００３０】
上記によれば、親機／子機の設定を変更することによって、最新のバージョンの基本アプリケーションを格納する情報処理装置を親機として通信を制御することができる。
【００３１】
また、本発明は、上記各手段を備える情報処理装置、情報処理プログラム、および情報処理方法の形態で実施されてもよい。
【発明の効果】
【００３２】
本発明によれば、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションを実行することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係る情報処理システム１の一例を示す図
【図２】情報処理装置３の構成の一例を示すブロック図
【図３】親機に設定された情報処理装置３ａが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャート
【図４】子機に設定された情報処理装置３ｂが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャート
【図５】子機に設定された情報処理装置３ｂが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す前半の通信タイミングチャート
【図６】子機に設定された情報処理装置３ｂが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す後半の通信タイミングチャート
【図７】情報処理装置３のメモリ３５に記憶される主なデータおよびプログラムの一例を示す図
【図８】情報処理装置３において実行される前半の処理の一例を示すフローチャート
【図９】情報処理装置３において実行される後半の処理の一例を示すフローチャート
【発明を実施するための形態】
【００３４】
図１を参照して、本発明の一実施形態に係る情報処理システムについて説明する。図１に示すように、当該情報処理システムの一例である情報処理システム１は、ローカル通信を介して無線接続された複数の情報処理装置３（図１では、３つの情報処理装置３ａ、３ｂ、および３ｃ）によって構築される。情報処理装置３は、閉ざされたローカルネットワークエリア内に配置された他の情報処理装置３との間で無線通信可能であり、複数の情報処理装置３の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能としている。ここで、他の情報処理装置３との間で可能としている「ローカル通信」は、インターネットを経由せず直接的に情報処理装置３同士を無線接続するインフラストラクチャモードを用いた通信である。一例として、本実施例では、いずれかの情報処理装置３が親機（図１の例では、情報処理装置３ａ）になってネットワークを統括し、他の情報処理装置３が親機を経由して通信を行う子機（図１の例では、情報処理装置３ｂおよび３ｃ）となる、インフラストラクチャモードを用いてローカル通信する。なお、親機（アクセスポイント）を経由することなく直接的に情報処理装置３同士を無線接続するアドホックモードを用いるローカル通信であってもよい。以下に説明する利用態様では、上記インフラストラクチャモードを用いたローカル通信を介して送受信される情報に基づいて、複数の情報処理装置３が情報処理（例えば、通信ゲーム）する例を用いる。
【００３５】
情報処理装置３は、ローカル通信を用いて、他の情報処理装置３に接続可能に構成されている。そして、情報処理装置３は、ローカル通信を介して他の情報処理装置３と接続を確立することによって、他の情報処理装置３との通信が可能となる。例えば、情報処理装置３は、交換可能なメモリカードや光ディスク等の記録媒体内に記憶された、または、サーバや他の装置から受信されたプログラムを実行可能である。情報処理装置３は、携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、据置型ゲーム装置、携帯電話機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のデバイスであってもかまわない。
【００３６】
次に、図２を参照して、情報処理装置３について説明する。なお、図２は、情報処理装置３の構成の一例を示すブロック図である。
【００３７】
情報処理装置３は、通信部３１、操作部３２、ＬＣＤ３３、ＣＰＵ３４、メモリ３５、およびプログラム記憶部３６を備える。なお、情報処理装置３は、ＣＰＵ３４を少なくとも含む装置と他の装置とを含む１以上の装置によって構成されてもよい。
【００３８】
通信部３１は、他の通信機器等と無線通信を行う機能を有している。本実施例では、通信部３１は、ＣＰＵ３４に接続される。通信部３１は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、通信部３１は、第１の通信態様としてＷｉ−Ｆｉの規格（例えば、ＩＥＥＥ８０２．１１ｂ／ｇ／ｎ／ａｃ／ａｄの規格）に準拠した方式により、無線ＬＡＮに接続してインターネット等のネットワークを介して外部装置と通信を行う。また、通信部３１は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の情報処理装置３との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の情報処理装置３との間で無線通信可能であり、複数の情報処理装置３の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００３９】
ＣＰＵ３４は、各種の情報処理を実行するための情報処理手段（コンピュータ）の一例である。ＣＰＵ３４は、各種の情報処理として、通信部３１を介して他の情報処理装置３からデータを受信し、当該受信データに応じた処理等を実行する機能を有する。また、ＣＰＵ３４は、各種の情報処理として、他の情報処理装置３へ送信する送信データを作成して、通信部３１を介して当該送信データを送信する処理等を実行する機能を有する。例えば、ＣＰＵ３４が所定のプログラムを実行することによって、上記機能が実現される。一例として、ＣＰＵ３４は、ローカル通信を介して他の情報処理装置３との間でデータを送受信することによって、所定の仮想空間における通信ゲームを行う。
【００４０】
メモリ３５は、ＣＰＵ３４が上記情報処理を実行する際に用いる各種のデータを記憶する。メモリ３５は、例えばＣＰＵ３４がアクセス可能なメモリである。
【００４１】
プログラム記憶部３６は、プログラムを記憶（格納）する。プログラム記憶部３６は、ＣＰＵ３４がアクセス可能な記憶装置（記憶媒体）であればどのようなものであってもよい。例えば、プログラム記憶部３６は、ＣＰＵ３４を含む情報処理装置３内に設けられる記憶装置であってもよいし、ＣＰＵ３４を含む情報処理装置３に着脱自在に装着される記憶媒体であってもよい。また、プログラム記憶部３６は、ＣＰＵ３４とネットワークを介して接続される記憶装置（サーバ等）であってもよい。ＣＰＵ３４は、プログラムの一部または全部を適宜のタイミングでメモリ３５に読み出し、読み出されたプログラムを実行するようにしてもよい。
【００４２】
操作部３２は、ユーザによって操作可能な入力装置である。操作部３２は、どのような入力装置であってもよい。例えば、操作部３２は、操作ボタン、スティック、タッチパネル、ジャイロセンサ等の姿勢センサを備えていてもよい。
【００４３】
ＬＣＤ３３は、情報処理装置３が備える表示部の一例であり、ＣＰＵ３４の指示にしたがって画像を表示する。
【００４４】
本実施例において、複数の情報処理装置３を用いて通信ゲームを行う場合、閉ざされたローカルネットワークエリア内に配置された当該情報処理装置３が互いにローカル通信を行うことによって当該通信ゲームが進行し、情報処理装置３それぞれを別のユーザが操作する。例えば、３台の情報処理装置３ａ〜３ｃにおいて同じバージョンのゲームアプリケーションがそれぞれ実行されることに応じて、情報処理装置３ａ〜３ｃにおいてそれぞれ通信ゲームが進行する。なお、上記ゲームアプリケーションは、本発明のユーザアプリケーションの一例に相当する。
【００４５】
一例として、情報処理装置３ａは、情報処理装置３ａの操作部３２を第１のユーザが操作する操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第１の仮想オブジェクトを制御する。そして、情報処理装置３ａは、情報処理装置３ａの操作部３２を用いた操作に基づいた情報を、ローカル通信を介して他の情報処理装置３ｂおよび３ｃへそれぞれ送信する。ここで、操作に基づいた情報とは、操作部３２に対する操作を示す操作情報であってもよいし、操作部３２に対する操作が反映される仮想オブジェクトや仮想空間に関する情報であってもよい。操作情報には、例えば各ボタンに対する操作を示すキーデータ、スティックに対する傾倒状態を示すスティックデータ、加速度センサおよび角速度センサ等の各センサの検出状態を示すセンサデータ等の少なくともいずれかが含まれていてもよいし、それらに所定の演算を加えた結果を示すデータであってもよい。仮想オブジェクトや仮想空間に関する情報は、例えば仮想オブジェクトの仮想空間における位置、方向、動作、状態等を示すオブジェクトデータ等であってもよい。
【００４６】
また、情報処理装置３ｂは、情報処理装置３ｂの操作部３２を第２のユーザが操作する操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第２の仮想オブジェクトを制御する。そして、情報処理装置３ｂは、情報処理装置３ｂの操作部３２を用いた操作に基づいた情報を、ローカル通信を介して他の情報処理装置３ａおよび３ｃへそれぞれ送信する。さらに、情報処理装置３ｃは、情報処理装置３ｃの操作部３２を第３のユーザが操作する操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第３の仮想オブジェクトを制御する。そして、情報処理装置３ｃは、情報処理装置３ｃの操作部３２を用いた操作に基づいた情報を、ローカル通信を介して他の情報処理装置３ａおよび３ｂへそれぞれ送信する。
【００４７】
本実施例では、このような複数の情報処理装置３を用いた通信ゲームを実現するために、ゲームアプリケーションのバージョンが各情報処理装置３において同じであることが必要である場合、当該通信ゲームを開始する前に各情報処理装置３において上記バージョンが同じであるか否かが判定される。そして、上記バージョンが異なる場合、各情報処理装置３が保有しているゲームアプリケーションのバージョンの中で最も新しいバージョンに合わせるために、上記ローカル通信を介して複数の情報処理装置３の間でゲーム更新プログラムの送受信が行われる。なお、典型的には、ゲーム更新プログラム自体は、インターネット通信を介して、サーバ等からダウンロードされて予め取得されたものである。また、各情報処理装置３が保有（格納）しているゲームアプリケーションやゲーム更新プログラムは、各情報処理装置３において既にインストールされているものとする。ここで、ゲームアプリケーションのバージョンの確認およびゲーム更新プログラムの送受信を制御するために、複数の情報処理装置３が親機または子機に設定され、当該親機の情報処理装置３によって上記バージョンが制御される。なお、上述した通信ゲーム開始後に送受信されるゲームデータ（操作に基づいた情報）においても、上記親機を介して送受信されてもよい。
【００４８】
以下、図３および図４を用いて、複数の情報処理装置３間におけるバージョンを特定して、各複数の情報処理装置３において最新のバージョンに合わせる処理例について説明する。なお、図３は、親機に設定された情報処理装置３ａが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャートである。図４は、子機に設定された情報処理装置３ｂが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャートである。
【００４９】
まず、図３を参照して、親機に設定された情報処理装置３ａが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理例を説明する。図３において、上記通信ゲームを開始する前に、当該通信ゲームを行う３台の情報処理装置３ａ〜３ｃは、自機が親機または子機に設定される親子設定処理が行われる。例えば、情報処理装置３ａ〜３ｃのうち、上記ローカル通信を用いて、最初に通信ゲームに参加するメンバーを招集した情報処理装置３ａが親機に設定され、他の参加装置（情報処理装置３ｂおよび３ｃ）が子機に設定される。より具体的には、上記通信ゲームを開始する際にグループを作るか参加するかを選択する選択肢が表示され、ユーザ選択によって「グループを作る」が選択された場合に親機に設定され、「グループに参加する」が選択された場合に子機に設定される。上記親子設定処理においては、親機の情報処理装置３ａが通信ゲームに参加する子機からユーザ名（装置ＩＤ）を受信することによって、通信ゲームに参加する情報処理装置３を管理する。そして、親機の情報処理装置３ａから子機の情報処理装置３ｂおよび３ｃへ、親機および子機として管理されているユーザ名（装置ＩＤ）等を含む親子設定データが送信されることによって、情報処理装置３ａ〜３ｃそれぞれにおいて親機および子機に設定されているユーザ情報（装置ＩＤ）が共有される。
【００５０】
次に、親機の情報処理装置３ａは、上記通信ゲームに参加する装置間においてゲームアプリケーションのバージョンを合わせる処理を行うか否かを判定する。一例として、親機の情報処理装置３ａを操作する第１のユーザがゲームアプリケーションのバージョンを合わせる処理を行うための操作を行った場合、親機の情報処理装置３ａは、上記判定において肯定判定する。他の例として、上記通信ゲームを開始するための所定の初期設定段階になった時点で、親機の情報処理装置３ａは、上記判定において自動的に肯定判定する。
【００５１】
ゲームアプリケーションのバージョンを合わせる処理が開始されると、親機の情報処理装置３ａは、ゲームアプリケーションにおけるバージョンを特定する処理（バージョン特定処理）を行う。例えば、親機の情報処理装置３ａは、子機の情報処理装置３ｂが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置３ｂからローカル通信によって受信する。また、親機の情報処理装置３ａは、子機の情報処理装置３ｃが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置３ｃからローカル通信によって受信する。そして、親機の情報処理装置３ａは、自機が保有するゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンのゲームアプリケーションを保有する情報処理装置を特定する。本例では、親機の情報処理装置３ａが最も新しいバージョンのゲームアプリケーションを保有しているため、自機が最新のバージョンを保有する情報処理装置として特定される。なお、最新のバージョンとは、上記通信ゲームに参加する情報処理装置３が保有するゲームアプリケーションの中で最も新しいバージョンという意味であり、世の中に配布されている最新バージョンであるとは限らない。
【００５２】
親機の情報処理装置３ａが最新のバージョンのゲームアプリケーションを保有しており、子機の情報処理装置３ｂおよび３ｃが当該最新のバージョンより古いバージョンのゲームアプリケーションを保有している場合、当該最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムが、親機の情報処理装置３ａから子機の情報処理装置３ｂおよび３ｃへそれぞれローカル通信によって送信される。なお、既に親機と同じ最新のバージョンのゲームアプリケーションを保有している子機がいる場合、当該子機にはゲーム更新プログラムを送信しなくてもよい。
【００５３】
親機の情報処理装置３ａからゲーム更新プログラムを受信した子機の情報処理装置３ｂは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置３ｂは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ａにローカル通信によって送信する。また、親機の情報処理装置３ａからゲーム更新プログラムを受信した子機の情報処理装置３ｃは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置３ｃは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ａにローカル通信によって送信する。
【００５４】
なお、ゲームアプリケーションの更新段階が３段階以上ある場合、送信されるゲーム更新プログラムは、最も初期のバージョンから上記最新のバージョンに更新するためのものでもよいし、各機が保有するバージョンから上記最新のバージョンに更新するためのものでもよい。前者の場合、ゲーム更新プログラムを受信した各機において、最も初期のバージョンから自機が保有するバージョンへ更新するためのゲーム更新プログラムを受信したゲーム更新プログラムから取り除き、当該取り除いた後のゲーム更新プログラムを用いて自機のバージョンから上記最新のバージョンにゲームアプリケーションを更新すればよい。この場合、各機に送信されるゲーム更新プログラムは、各機におけるバージョンが異なる場合であっても同じゲーム更新プログラムが送信されることになる。
【００５５】
次に、親機の情報処理装置３ａは、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置３ａは、子機の情報処理装置３ｂから受信した更新情報と子機の情報処理装置３ｃから受信した更新情報と自機のバージョン情報とに基づいて、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有するゲームアプリケーションのバージョンが揃った場合、情報処理装置３ａ〜３ｃの間で上記通信ゲームを行うことが可能になったと判定して、情報処理装置３ａ〜３ｃの間で上記通信ゲームを開始する。そして、情報処理装置３ａ〜３ｃの間でゲームデータがローカル通信によって送受信されることによって、上記最新のバージョンのゲームアプリケーションによる通信ゲーム処理が進行する。
【００５６】
図４を参照して、子機に設定された情報処理装置３ｂが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理例を説明する。図４において、上記通信ゲームを開始する前に、当該通信ゲームを行う３台の情報処理装置３ａ〜３ｃは、自機が親機または子機に設定される親子設定処理が行われる。そして、親機の情報処理装置３ａは、上記通信ゲームに参加する装置間においてゲームアプリケーションのバージョンを合わせる処理を行うか否かを判定する。なお、親子設定処理およびゲームアプリケーションのバージョンを合わせる処理を行うか否かの判定処理については、図３を用いて説明した例と同様であるため、ここでは詳細な説明を省略する。本例でも、親子設定処理において、情報処理装置３ａが親機に設定され、情報処理装置３ｂおよび３ｃが子機に設定される。
【００５７】
ゲームアプリケーションのバージョンを合わせる処理が開始されると、親機の情報処理装置３ａは、ゲームアプリケーションにおけるバージョンを特定する処理（バージョン特定処理）を行う。例えば、親機の情報処理装置３ａは、子機の情報処理装置３ｂが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置３ｂからローカル通信によって受信する。また、親機の情報処理装置３ａは、子機の情報処理装置３ｃが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置３ｃからローカル通信によって受信する。そして、親機の情報処理装置３ａは、自機が保有するゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンのゲームアプリケーションを保有する情報処理装置を特定する。本例では、子機の情報処理装置３ｂが最も新しいバージョンのゲームアプリケーションを保有しているため、情報処理装置３ｂが最新のバージョンを保有する情報処理装置として特定される。
【００５８】
子機の情報処理装置３ｂが最新のバージョンのゲームアプリケーションを保有しており、親機の情報処理装置３ａおよび子機の情報処理装置３ｃが当該最新のバージョンより古いバージョンのゲームアプリケーションを保有している場合、親機の情報処理装置３ａは、最新のバージョンのゲームアプリケーションを保有している情報処理装置３ｂに対して、当該最新のバージョンへ更新するためのゲーム更新プログラムの要求をローカル通信によって送信する。なお、最新のバージョンのゲームアプリケーションを保有している子機の情報処理装置３が複数ある場合、親機の情報処理装置３は、自分を親機とする装置グループへの参加が最も早かった子機に対して、ゲーム更新プログラムの要求を送信する。
【００５９】
親機の情報処理装置３ａからゲーム更新プログラムの要求を受信した子機の情報処理装置３ｂは、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを、親機の情報処理装置３ａへローカル通信によって送信する。
【００６０】
子機の情報処理装置３ｂからゲーム更新プログラムを受信した親機の情報処理装置３ａは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新して、当該最新のバージョンを示すように自機のバージョン情報を更新する。そして、親機の情報処理装置３ａは、当該最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを、子機の情報処理装置３ｃへローカル通信によって送信する。
【００６１】
親機の情報処理装置３ａからゲーム更新プログラムを受信した子機の情報処理装置３ｃは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置３ｃは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ａにローカル通信によって送信する。
【００６２】
次に、親機の情報処理装置３ａは、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置３ａは、子機の情報処理装置３ｂから受信していたバージョン情報と子機の情報処理装置３ｃから受信した更新情報と自機の更新後のバージョン情報とに基づいて、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有するゲームアプリケーションのバージョンが揃った場合、情報処理装置３ａ〜３ｃの間で上記通信ゲームを行うことが可能になったと判定して、情報処理装置３ａ〜３ｃの間で上記通信ゲームを開始する。そして、情報処理装置３ａ〜３ｃの間でゲームデータがローカル通信によって送受信されることによって、上記最新のバージョンのゲームアプリケーションによる通信ゲーム処理が進行する。
【００６３】
なお、上述した処理例では、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを保有している子機の情報処理装置３ｂから、親機の情報処理装置３ａを介して子機の情報処理装置３ｃに送信される。したがって、図４に示した例では、親機の情報処理装置３ａは、子機の情報処理装置３ｂが保有しているゲーム更新プログラムを他の子機である情報処理装置３ｃに転送していることになる。なお、子機の情報処理装置３ｂが保有しているゲーム更新プログラムを、子機の情報処理装置３ｂから他の子機である情報処理装置３ｃに送信してもかまわない。この場合、上記ゲーム更新プログラムは、子機の情報処理装置３ｂから親機の情報処理装置３ａおよび子機の情報処理装置３ｃへそれぞれローカル通信によって直接送信されることになる。
【００６４】
また、上述した処理例では、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを子機が保有している場合、当該ゲーム更新プログラムが子機から親機へ送信されるが、子機が最新のバージョンのゲーム更新プログラムを保有している場合に親機／子機の設定を変更してもかまわない。例えば、図４に示した例では、子機の情報処理装置３ｂが最新のバージョンのゲーム更新プログラムを保有していることが特定された場合、当該最新のバージョンのゲーム更新プログラムを保有している情報処理装置３ｂを親機に設定するとともに、他の情報処理装置３ａおよび３ｂを子機に再設定する親子再設定処理を行った後、ゲーム更新プログラムの送受信処理を行ってもかまわない。
【００６５】
なお、上述した例では、ローカル通信を用いてバージョン情報を送受信する例を用いたが、ビーコンを用いてバージョン情報を要求してもかまわない。例えば、親機の情報処理装置３ａがバージョン特定処理を行う場合、情報処理装置３ａは、当該親機のゲームアプリケーションのバージョン情報を含むビーコンを送信、すなわちバージョン情報をブロードキャストする。そして、子機の情報処理装置３ｂおよび３ｃは、上記ビーコンを受信した場合、当該子機のゲームアプリケーションのバージョン情報を含むデータを親機の情報処理装置３ａにそれぞれ送信、すなわちバージョン情報を親機との間でユニキャストする。次に、親機の情報処理装置３ａは、子機の情報処理装置３ｂおよび３ｃから受け取ったバージョン情報の何れかが親機のバージョン情報より新しい場合、親機から送信しているビーコンに含まれるバージョン情報を子機から受け取った新しいバージョン情報に変更して、変更後のバージョン情報を含むビーコンの送信を続ける。つまり、親機の情報処理装置３ａは、必要に応じてビーコンに含まれるバージョン情報を適宜更新することになり、子機の情報処理装置３ｂおよび３ｃは、必ずしも親機のバージョン情報を受け取れるとは限らない。この場合、親機の情報処理装置３ａは、グループ内の最新のバージョン情報をビーコンで送信するということになる。また、親機の情報処理装置３ａおよび子機の情報処理装置３ｂおよび３ｃでは、上記ビーコンに含まれるバージョン情報を用いて、それぞれグループ内の最新のバージョン情報を画面に表示することによって、バージョンを揃えることによりどのバージョンに更新されるかをユーザに事前通知してもかまわない。
【００６６】
また、本実施例では、情報処理装置３は、上記ゲームアプリケーションとは別に、本体アプリケーション（システムソフトウエア）が実行されることによって、装置の動作全体が制御されている。上記本体アプリケーションは、上記ゲームアプリケーションおよび他のアプリケーションの情報処理装置３の実行を少なくとも制御するプログラムであり、情報処理装置３の動作を制御するための基本アプリケーションとして機能する。例えば、基本アプリケーションによる処理は、後述するステップＳ１００−Ｓ１０８、ステップＳ１１１−Ｓ１１９、ステップＳ１３１−Ｓ１３６、およびステップＳ１４１−Ｓ１４７の処理、すなわち図８および図９に例示した処理からステップＳ１２０のゲーム開始処理とステップＳ１２１およびＳ１４８のゲーム処理とを除く処理を含んでいてもよい。ここで、情報処理装置３は、上記最新のバージョンのゲームアプリケーションを実行する場合、当該ゲームアプリケーションの実行を制御する基本アプリケーションも当該最新のバージョンに対応するバージョンに更新することが必要となる場合がある。例えば、所定バージョンのゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報が、ゲームアプリケーションやゲーム更新プログラム等に格納されている。情報処理装置３は、上記基本アプリケーションのバージョンを示す情報を参照して、上記最新のバージョンのゲームアプリケーションに揃える場合に、基本アプリケーションも当該最新のバージョンに対応するバージョンに更新する必要があるか否かを判定する。
【００６７】
このような複数の情報処理装置３を用いた通信ゲームを実現するために、ゲームアプリケーションの実行を制御する基本アプリケーションのバージョンも各情報処理装置３において同じであることが必要である場合、当該通信ゲームを開始する前に各情報処理装置３において当該基本アプリケーションのバージョンが同じであるか否かも判定される。そして、上記バージョンが異なる場合、各情報処理装置３が保有している基本アプリケーションのバージョンの中で最も新しいバージョンに合わせるために、上記ローカル通信を介して複数の情報処理装置３の間で基本更新プログラムの送受信が行われる。なお、典型的には、基本更新プログラムのデータサイズは、上述したゲーム更新プログラムのデータサイズより大きく構成される。
【００６８】
以下、図５および図６を用いて、複数の情報処理装置３間において基本アプリケーションおよびゲームアプリケーションにおける両方のバージョンを特定して、各複数の情報処理装置３において最新のバージョンに合わせる処理例について説明する。なお、図５は、子機に設定された情報処理装置３ｂが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す前半の通信タイミングチャートである。図６は、子機に設定された情報処理装置３ｂが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す後半の通信タイミングチャートである。
【００６９】
図５において、上記通信ゲームを開始する前に、当該通信ゲームを行う３台の情報処理装置３ａ〜３ｃは、自機が親機または子機に設定される親子設定処理が行われる。例えば、情報処理装置３ａ〜３ｃのうち、上記ローカル通信を用いて、最初に通信ゲームに参加するメンバーを招集した情報処理装置３ａが親機に設定され、他の参加装置（情報処理装置３ｂおよび３ｃ）が子機に設定される。
【００７０】
次に、親機の情報処理装置３ａは、上記通信ゲームに参加する装置間においてゲームアプリケーションのバージョンを合わせる処理を行うか否かを判定する。ゲームアプリケーションのバージョンを合わせる処理が開始されると、親機の情報処理装置３ａは、基本アプリケーションおよびゲームアプリケーションの両方のバージョンを特定する処理（バージョン特定処理）を行う。例えば、親機の情報処理装置３ａは、子機の情報処理装置３ｂが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報と当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報とをまとめたバージョン情報を当該情報処理装置３ｂからローカル通信によって受信する。また、親機の情報処理装置３ａは、子機の情報処理装置３ｃが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報と当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報とをまとめたバージョン情報を当該情報処理装置３ｃからローカル通信によって受信する。そして、親機の情報処理装置３ａは、自機が保有する基本アプリケーションおよびゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有する情報処理装置を特定し、当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報に基づいて基本アプリケーションの更新が必要か否かを判定する。本例では、上記判定が肯定判定され、子機の情報処理装置３ｂが最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有しているため、子機の情報処理装置３ｂが最新のバージョンを保有する情報処理装置として特定される。なお、最新のバージョンとは、上記通信ゲームに参加する情報処理装置３が保有する基本アプリケーションおよびゲームアプリケーションの中で最も新しいバージョンという意味であり、世の中に配布されている最新バージョンであるとは限らない。
【００７１】
親機の情報処理装置３ａは、自機以外の子機が最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有していることが特定された場合、親子再設定処理を行う。具体的には、上記親子再設定処理によって、最新のバージョンの基本アプリケーションおよびゲームアプリケーションを保有している子機（すなわち、情報処理装置３ｂ）が親機に変更され、他の情報処理装置３が子機に設定される。なお、情報処理装置３ａ〜３ｃそれぞれにおいては、ユーザ情報（装置ＩＤ）が既に共有されている。したがって、情報処理装置３ｂが親機に変更されることを示す親子設定データを、情報処理装置３ａから情報処理装置３ｂおよび３ｃにそれぞれ送信することによって、情報処理装置３ａ〜３ｃそれぞれにおいて情報処理装置３ｂが親機に変更され、他の情報処理装置３が子機に設定される親子再設定処理が行われる。情報処理装置３ｂが親機に再設定された以降の処理は、図６を用いて説明する。
【００７２】
図６において、親機に変更された情報処理装置３ｂは、基本アプリケーションおよびゲームアプリケーションの両方のバージョンを特定する処理（バージョン特定処理）を行う。例えば、親機の情報処理装置３ｂは、子機の情報処理装置３ａが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報をまとめたバージョン情報を当該情報処理装置３ａからローカル通信によって受信する。また、親機の情報処理装置３ｂは、子機の情報処理装置３ｃが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報をまとめたバージョン情報を当該情報処理装置３ｃからローカル通信によって受信する。そして、親機の情報処理装置３ｂは、自機が保有する基本アプリケーションおよびゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有する情報処理装置を特定する。本例では、親機に変更された情報処理装置３ｂが最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有しているため、自機が最新のバージョンを保有する情報処理装置として特定される。
【００７３】
親機の情報処理装置３ｂが最新のバージョンの基本アプリケーションおよびゲームアプリケーションを保有しており、子機の情報処理装置３ａおよび３ｃが当該最新のバージョンより古いバージョンの基本アプリケーションおよびゲームアプリケーションを保有している場合、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムが、親機の情報処理装置３ｂから子機の情報処理装置３ａおよび３ｃへそれぞれローカル通信によって送信される。なお、親機の情報処理装置３ｂから送信される上記基本更新プログラムは、上記最新のバージョンのゲームアプリケーションを実行して通信ゲームを可能にするために必要となる当該基本更新プログラムの一部だけでもよい。また、基本アプリケーションを最新のバージョンに更新しなくても、最新のバージョンのゲームアプリケーションの実行が可能である場合、親機の情報処理装置３ｂは、最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを子機に送信しなくてもよい。この場合、親機の情報処理装置３ｂから、後述する最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムの送信が開始される。
【００７４】
親機の情報処理装置３ｂから基本更新プログラムを受信した子機の情報処理装置３ａは、当該基本更新プログラムを用いて自機が保有する基本アプリケーションを上記最新のバージョンに更新し、当該更新を適用するために親機との間の接続を一時的に切断した上で再起動を行う。そして、子機の情報処理装置３ａは、更新処理が終了した後、親機の情報処理装置３ｂとの間の接続を再開して自機が保有する基本アプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ｂにローカル通信によって送信する。また、親機の情報処理装置３ｂから基本更新プログラムを受信した子機の情報処理装置３ｃは、当該基本更新プログラムを用いて自機が保有する基本アプリケーションを上記最新のバージョンに更新し、当該更新を適用するために親機との間の接続を一時的に切断した上で再起動を行う。そして、子機の情報処理装置３ｃは、更新処理が終了した後、親機の情報処理装置３ｂとの間の接続を再開して自機が保有する基本アプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ｂにローカル通信によって送信する。
【００７５】
なお、基本アプリケーションの更新段階が３段階以上ある場合も、送信される基本更新プログラムは、最も初期のバージョンから上記最新のバージョンに更新するためのものでもよいし、各機が保有するバージョンから上記最新のバージョンに更新するためのものでもよい。前者の場合、基本更新プログラムを受信した各機において、最も初期のバージョンから自機が保有するバージョンへ更新するための基本更新プログラムを受信した基本更新プログラムから取り除き、当該取り除いた後の基本更新プログラムを用いて自機のバージョンから上記最新のバージョンに基本アプリケーションを更新すればよい。この場合、各機に送信される基本更新プログラムは、各機におけるバージョンが異なる場合であっても同じ基本更新プログラムが送信されることになる。
【００７６】
次に、親機の情報処理装置３ｂは、各機が保有する基本アプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置３ｂは、子機の情報処理装置３ａから受信した更新情報と子機の情報処理装置３ｃから受信した更新情報と自機のバージョン情報とに基づいて、各機が保有する基本アプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有する基本アプリケーションのバージョンが揃った場合、親機の情報処理装置３ｂは、基本アプリケーションの更新が完了した子機へ、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムをそれぞれローカル通信によって送信する。なお、親機の情報処理装置３ｂは、各子機の基本アプリケーションのバージョンが揃う前に、上記最新のバージョンの基本アプリケーションに更新されたことを示す更新情報を受信したことに応じて、基本アプリケーションの更新が完了した子機から順に、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムをローカル通信によって送信してもよい。
【００７７】
親機の情報処理装置３ｂからゲーム更新プログラムを受信した子機の情報処理装置３ａは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置３ａは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ｂにローカル通信によって送信する。また、親機の情報処理装置３ｂからゲーム更新プログラムを受信した子機の情報処理装置３ｃは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置３ｃは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置３ｂにローカル通信によって送信する。
【００７８】
次に、親機の情報処理装置３ｂは、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置３ｂは、子機の情報処理装置３ａから受信した更新情報と子機の情報処理装置３ａから受信した更新情報と自機のバージョン情報とに基づいて、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有するゲームアプリケーションのバージョンが揃った場合、情報処理装置３ａ〜３ｃの間で上記通信ゲームを行うことが可能になったと判定して、情報処理装置３ａ〜３ｃの間で上記通信ゲームを開始する。そして、情報処理装置３ａ〜３ｃの間でゲームデータがローカル通信によって送受信されることによって、上記最新のバージョンのゲームアプリケーションによる通信ゲーム処理が進行する。
【００７９】
なお、上述した説明では、最新のバージョンの基本アプリケーションを保有している情報処理装置３が親機となる例を用いた。これによって、親機が保有する基本アプリケーションが古いことに起因する処理エラー（例えば、子機との情報の送受信、自機が親機となったグループ管理等、ゲームアプリケーションとは直接関係がない処理において適切な処理ができない）を防止することができる。このような効果を期待しない場合、ゲームアプリケーションを最新のバージョンに更新する場合と同様に、最新のバージョンの基本アプリケーションを保有している情報処理装置３を子機に設定した状態で、基本アプリケーションの更新処理を行ってもよい。
【００８０】
次に、情報処理装置３において行われる処理の詳細を説明する。まず、図７を参照して、情報処理装置３において行われる処理において用いられる主なデータについて説明する。なお、図７は、情報処理装置３のメモリ３５に記憶される主なデータおよびプログラムの一例を示す図である。
【００８１】
図７に示すように、メモリ３５のデータ記憶領域には、デバイスＩＤデータＤａ、バージョン情報データＤｂ、親子設定データＤｃ、送信データＤｄ、受信データＤｅ、バージョン特定データＤｆ、ゲーム処理データＤｇ、および画像データＤｈ等が記憶される。なお、メモリ３５には、図７に示す情報に含まれるデータの他、ユーザ操作に関連するデータ、実行するアプリケーションで用いるデータ等、処理に必要なデータが適宜記憶される。また、メモリ３５のプログラム記憶領域には、通信プログラムやゲームプログラム等を構成する各種プログラム群Ｐａが記憶される。例えば、各種プログラム群Ｐａは、基本アプリケーションＰａ１、基本更新プログラムＰａ２、ゲームアプリケーションＰａ３、ゲーム更新プログラムＰａ４等が含まれている。
【００８２】
デバイスＩＤデータＤａは、情報処理装置３毎に識別が可能となるユニークな符号（デバイスＩＤ）を示すデータであり、例えばデバイス識別のための標識となる改変不可能な文字列を示すデータである。そして、デバイスＩＤデータＤｃには、自機である情報処理装置３に対して予め設定されているデバイスＩＤが格納されている。
【００８３】
バージョン情報データＤｂは、自機である情報処理装置３に保有されている基本アプリケーションＰａ１のバージョンを示す情報を示すデータ、および自機である情報処理装置３に保有されているゲームアプリケーションＰａ３のバージョンを示す情報を示すデータを含んでいる。
【００８４】
親子設定データＤｃは、現在自機が参加している装置グループにおいて、自機が親機および子機の何れに設定されているのかを示すデータと、当該装置グループにおける他機の情報（親機または子機の設定情報、デバイスＩＤ情報等）を示すデータとを含んでいる。
【００８５】
送信データＤｄは、他の情報処理装置３へローカル通信を用いて送信するデータとして登録されたデータである。受信データＤｅは、他の情報処理装置３からローカル通信を用いて受信したデータである。
【００８６】
バージョン特定データＤｆは、現在自機が参加している装置グループにおいて、当該グループに属する装置毎に保有されているアプリケーションのバージョンを示すデータである。
【００８７】
ゲーム処理データＤｇは、複数の情報処理装置３を用いた通信ゲームを行う際に用いられるデータである。画像データＤｈは、上記通信ゲーム開始前および上記通信ゲーム中において表示画面に画像を表示するためのデータである。
【００８８】
また、基本アプリケーションＰａ１は、情報処理装置３の動作を制御するためのプログラム（システムソフトウエア）である。基本更新プログラムＰａ２は、基本アプリケーションＰａ１の最も初期のバージョンから自機が保有するバージョンに更新するためのプログラムである。ゲームアプリケーションＰａ３は、上記通信ゲームを行うためのプログラムである。ゲーム更新プログラムＰａ４は、ゲームアプリケーションＰａ３の最も初期のバージョンから自機が保有するバージョンに更新するためのプログラムである。
【００８９】
なお、情報処理装置３が最も初期のバージョンの基本アプリケーションおよび／またはゲームアプリケーションを保有している場合、基本更新プログラムおよび／またはゲーム更新プログラムを保有していない場合もあり得る。この場合、基本更新プログラムＰａ２および／またはゲーム更新プログラムＰａ４には、更新プログラムが格納されていない状態でもよい。
【００９０】
次に、図８および図９を参照して、情報処理装置３において行われる処理の詳細を説明する。なお、図８は、情報処理装置３において実行される前半の処理の一例を示すフローチャートである。図９は、情報処理装置３において実行される後半の処理の一例を示すフローチャートである。ここで、図８および図９に示すフローチャートにおいては、情報処理システム１における処理のうち、情報処理装置３間での通信が可能となった状態において当該情報処理装置３間で行われる通信に関する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図８および図９では、ＣＰＵ３４が実行する各ステップを「Ｓ」と略称する。
【００９１】
本実施形態においては、図８および図９に示す一連の処理は、ＣＰＵ３４が、プログラム記憶部３６に記憶される通信プログラムやゲームプログラムを実行することによって行われる。なお、図８および図９に示す処理が開始されるタイミングは任意である。このとき、通信プログラムは、適宜のタイミングでその一部または全部がメモリ３５に読み出され、ＣＰＵ３４によって実行される。これによって、図８および図９に示す一連の処理が開始される。なお、通信プログラムおよびゲームプログラムは、プログラム記憶部３６に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置３に着脱可能な記憶媒体から取得されてメモリ３５に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ３５に記憶されてもよい。
【００９２】
また、図８および図９に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ３４が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【００９３】
図８において、ＣＰＵ３４は、初期設定を行い（ステップＳ１００）、次のステップに処理を進める。例えば、ＣＰＵ３４は、以降の処理に用いる各パラメータを初期化する。また、ＣＰＵ３４は、自機のデバイスＩＤを用いてデバイスＩＤデータＤａを初期設定し、自機が保有している基本アプリケーションおよびゲームアプリケーションそれぞれのバージョンを示す情報を用いてバージョン情報データＤｂを初期設定する。
【００９４】
次に、ＣＰＵ３４は、親子設定処理を行い（ステップＳ１０１）、次のステップに処理を進める。例えば、ローカル通信を用いて通信可能な複数の情報処理装置３の間で所定の通信ゲームに参加を募る場合、最初に当該通信ゲームに参加するメンバーを招集した場合に親機に設定され、当該招集に応じて参加した場合に子機に設定される。なお、上記親子設定処理においては、情報処理装置３の間で親子設定データがローカル通信によってやり取りされることによって、親機に設定された情報処理装置３のユーザ名（デバイスＩＤ）および子機に設定された情報処理装置３のユーザ名（デバイスＩＤ）等が、当該情報処理装置３の間で共有される。そして、ＣＰＵ３４は、親機／子機が区別されたデバイスＩＤの情報を用いて、親子設定データＤｃを更新する。
【００９５】
次に、ＣＰＵ３４は、親子設定データＤｃを参照して、自機が親機に設定されているか否かを判定する（ステップＳ１０２）。そして、ＣＰＵ３４は、自機が親機に設定されている場合、ステップＳ１０３に処理を進める。一方、ＣＰＵ３４は、自機が子機に設定されている場合、ステップＳ１３１に処理を進める。
【００９６】
ステップＳ１０３において、親機に設定されている情報処理装置３のＣＰＵ３４は、子機に設定されている他の情報処理装置３からバージョン情報または更新情報を受信して、次のステップに処理を進める。ここで、バージョン情報は、送信元の情報処理装置３が保有する基本アプリケーションおよびゲームアプリケーションのバージョンを示す情報であり、当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報を含んでいる。また、更新情報は、送信元の情報処理装置３が保有する基本アプリケーションが最新のバージョンに更新されたことを示す情報である。例えば、ＣＰＵ３４は、受信したバージョン情報または更新情報を用いてバージョン情報データＤｂを更新して各機のバージョン情報を管理する。
【００９７】
次に、ＣＰＵ３４は、バージョン特定処理を行い（ステップＳ１０４）、次のステップに処理を進める。例えば、ＣＰＵ３４は、上記ステップＳ１０３において受信したバージョン情報または更新情報と自機のバージョン情報とを用いて、上記通信ゲームに参加する情報処理装置３それぞれが保有している基本アプリケーションおよびゲームアプリケーションのバージョンを特定し、当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報に基づいて基本アプリケーションの更新が必要か否かを判定する。そして、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３の中で最新のバージョンの基本アプリケーションおよびゲームアプリケーションを保有している情報処理装置３を特定する。ここで、「最新のバージョン」とは、上記通信ゲームに参加する情報処理装置３が保有する基本アプリケーションやゲームアプリケーションの中で最も新しいバージョンという意味であり、世の中に配布されている最新バージョンであるとは限らない。
【００９８】
次に、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機が保有する基本アプリケーションが最新のバージョンに揃ったか否か（基本アプリケーションの更新が必要か否か）を判定する（ステップＳ１０５）。そして、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機が保有する基本アプリケーションが最新のバージョンに揃った場合（基本アプリケーションの更新が不要である場合）、ステップＳ１１１（図９参照）に処理を進める。一方、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機が保有する基本アプリケーションが最新のバージョンに揃っていない場合（基本アプリケーションの更新が必要である場合）、ステップＳ１０６に処理を進める。
【００９９】
ステップＳ１０６において、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機の中で、自機が保有する基本アプリケーションが最新のバージョンであるか否かを判定する。そして、ＣＰＵ３４は、自機が最新のバージョンの基本アプリケーションを保有している場合、ステップＳ１０７に処理を進める。一方、ＣＰＵ３４は、他の子機が最新のバージョンの基本アプリケーションを保有している場合、ステップＳ１０８に処理を進める。
【０１００】
ステップＳ１０７において、ＣＰＵ３４は、最新のバージョンの基本アプリケーションを保有していない他の情報処理装置３（子機）へ基本更新プログラムを送信し、上記ステップＳ１０３に処理を進める。ここで、他の情報処理装置３に送信する基本更新プログラムは、自機が保有する最新のバージョンの基本アプリケーションへの更新を可能にするプログラムである。
【０１０１】
一方、ステップＳ１０６において他の子機が最新のバージョンの基本アプリケーションを保有していると判定した場合、ＣＰＵ３４は、親子再設定処理を行い（ステップＳ１０８）、ステップＳ１３１に処理を進める。例えば、ＣＰＵ３４は、上記親子再設定処理において、最新のバージョンの基本アプリケーションを保有している他の子機（複数の場合は、グループへの参加が相対的に早い子機）を親機に変更し、自機を子機に変更して、親子設定データＤｃを更新する。そして、ＣＰＵ３４は、親機／子機の当該変更を示す親子再設定データをローカル通信によって他の情報処理装置３へ送信する。これにより、親機に設定されていた情報処理装置３が親機から子機に変更され、ＣＰＵ３４は、ステップＳ１３１に処理を進める際には子機として処理を行う。
【０１０２】
上記ステップＳ１０２において自機が子機に設定されていると判定した場合、子機に設定されている情報処理装置３のＣＰＵ３４は、親機に設定されている他の情報処理装置３へバージョン情報を送信（ステップＳ１３１）、次のステップに処理を進める。例えば、ＣＰＵ３４は、自機のバージョン情報データＤｂに格納されているバージョン情報を用いて、親機の情報処理装置３へバージョン情報をローカル通信で送信する。
【０１０３】
次に、ＣＰＵ３４は、親機の情報処理装置３から親子再設定データを受信したか否かを判定する（ステップＳ１３２）。そして、ＣＰＵ３４は、親機の情報処理装置３から親子再設定データを受信した場合、上記ステップＳ１０１に処理を進めて再度親子設定処理を実行する。一方、ＣＰＵ３４は、親機の情報処理装置３から親子再設定データを受信していない場合、ステップＳ１３３に処理を進める。
【０１０４】
ステップＳ１３３において、ＣＰＵ３４は、親機の情報処理装置３から基本更新プログラムを受信したか否かを判定する。そして、ＣＰＵ３４は、親機の情報処理装置３から基本更新プログラムを受信した場合、ステップＳ１３４に処理を進める。一方、ＣＰＵ３４は、親機の情報処理装置３から基本更新プログラムを受信していない場合、ステップＳ１４１（図９参照）に処理を進める。
【０１０５】
ステップＳ１３４において、ＣＰＵ３４は、親機の情報処理装置３から送信された基本更新プログラムを用いて、自機が保有する基本アプリケーションを更新し、次のステップに処理を進める。例えば、ＣＰＵ３４は、親機の情報処理装置３から送信された基本更新プログラムを用いて、自機が保有する基本アプリケーションＰａ１および基本更新プログラムＰａ２を更新し、当該更新を適用するために親機との間の接続を一時的に切断した上で再起動を行う。そして、ＣＰＵ３４は、更新処理が終了した後、親機との間の接続を再開する。
【０１０６】
次に、ＣＰＵ３４は、上記ステップＳ１３４において更新後の基本アプリケーションのバージョンを用いて自機のバージョン情報データＤｂを更新し（ステップＳ１３５）、次のステップに処理を進める。
【０１０７】
次に、ＣＰＵ３４は、親機の情報処理装置３へ更新情報をローカル通信で送信し（ステップＳ１３６）、ステップＳ１４１（図９参照）に処理を進める。ここで、上記ステップＳ１４１において送信する更新情報は、送信元である自機が保有する基本アプリケーションが最新のバージョンに更新されたことを示す情報である。
【０１０８】
図９に進み、ステップＳ１１１において、親機に設定されている情報処理装置３のＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機が保有するゲームアプリケーションが最新のバージョンに揃ったか否かを判定する。そして、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機が保有するゲームアプリケーションが最新のバージョンに揃った場合、ステップＳ１２０に処理を進める。一方、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機が保有するゲームアプリケーションが最新のバージョンに揃っていない場合、ステップＳ１１２に処理を進める。
【０１０９】
ステップＳ１１２において、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３全機の中で、自機が保有するゲームアプリケーションが最新のバージョンであるか否かを判定する。そして、ＣＰＵ３４は、自機が最新のバージョンのゲームアプリケーションを保有している場合、ステップＳ１１３に処理を進める。一方、ＣＰＵ３４は、他の子機が最新のバージョンのゲームアプリケーションを保有している場合、ステップＳ１１４に処理を進める。
【０１１０】
ステップＳ１１３において、ＣＰＵ３４は、最新のバージョンのゲームプログラムを保有していない他の情報処理装置３（子機）へゲーム更新プログラムを送信し、ステップＳ１１８に処理を進める。ここで、他の情報処理装置３に送信するゲーム更新プログラムは、自機が保有する最新のバージョンのゲームアプリケーションへの更新を可能にするプログラムであり、自機のゲーム更新プログラムＰａ４を用いて送信される。
【０１１１】
一方、ステップＳ１１２において他の子機が最新のバージョンのゲームアプリケーションを保有していると判定した場合、ＣＰＵ３４は、当該子機に対してゲーム更新プログラムを要求して（ステップＳ１１４）、次のステップに処理を進める。例えば、ＣＰＵ３４は、最新のバージョンのゲームアプリケーションを保有している子機（複数の場合は、グループへの参加が相対的に早い子機）に対して、ゲーム更新プログラムを送信するように要求するゲーム更新プログラム要求をローカル通信によって送信する。
【０１１２】
次に、ＣＰＵ３４は、最新のバージョンのゲームアプリケーションを保有している子機からゲーム更新プログラムを受信し（ステップＳ１１５）、次のステップに処理を進める。
【０１１３】
次に、ＣＰＵ３４は、子機に設定された他の情報処理装置３から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションを更新し（ステップＳ１１６）、次のステップに処理を進める。例えば、ＣＰＵ３４は、他の情報処理装置３から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションＰａ３およびゲーム更新プログラムＰａ４を更新する。
【０１１４】
次に、ＣＰＵ３４は、上記ステップＳ１１６において更新後のゲームアプリケーションのバージョンを用いて自機のバージョン情報データＤｂを更新し（ステップＳ１１７）、ステップＳ１１８に処理を進める。
【０１１５】
ステップＳ１１８において、ＣＰＵ３４は、子機に設定されている他の情報処理装置３から更新情報を受信して、次のステップに処理を進める。例えば、ＣＰＵ３４は、受信した更新情報を用いてバージョン情報データＤｂを更新して各機のバージョン情報を管理する。
【０１１６】
次に、ＣＰＵ３４は、バージョン特定処理を行い（ステップＳ１０４）、上記ステップＳ１１１に処理を進める。例えば、ＣＰＵ３４は、上記ステップＳ１１８において受信した更新情報、既に受信しているバージョン情報、および自機のバージョン情報を用いて、上記通信ゲームに参加する情報処理装置３それぞれが保有しているゲームアプリケーションのバージョンを特定する。そして、ＣＰＵ３４は、上記通信ゲームに参加する情報処理装置３の中で最新のバージョンのゲームアプリケーションを保有している情報処理装置３を特定する。
【０１１７】
一方、上記ステップＳ１１１において上記通信ゲームに参加する情報処理装置３全機が保有するゲームアプリケーションが最新のバージョンに揃ったと判定した場合、ＣＰＵ３４は、ゲーム開始処理を行い（ステップＳ１２１）、次のステップに処理を進める。例えば、ＣＰＵ３４は、上記通信ゲームに参加する他の情報処理装置３（子機）に対して、当該通信ゲームを開始する旨を示すデータをローカル通信で送信する。
【０１１８】
次に、ＣＰＵ３４は、他の情報処理装置３（子機）との間でゲームデータをやり取りすることによって、上記通信ゲームを進行し（ステップＳ１２１）、当該フローチャートによる処理を終了する。
【０１１９】
ステップＳ１４１において、子機に設定されている情報処理装置３のＣＰＵ３４は、親機に設定されている情報処理装置３からゲーム更新プログラム要求を受信したか否かを判定する。そして、ＣＰＵ３４は、ゲーム更新プログラム要求を受信した場合、ステップＳ１４２に処理を進める。一方、ＣＰＵ３４は、ゲーム更新プログラム要求を受信していない場合、ステップＳ１４３に処理を進める。
【０１２０】
ステップＳ１４２において、ＣＰＵ３４は、ゲーム更新プログラム要求に応じて、親機に設定されている情報処理装置３へゲーム更新プログラムを送信して、ステップＳ１４３に処理を進める。ここで、親機の情報処理装置３に送信するゲーム更新プログラムは、自機が保有する最新のバージョンのゲームアプリケーションへの更新を可能にするプログラムであり、自機のゲーム更新プログラムＰａ４を用いて送信される。
【０１２１】
ステップＳ１４３において、ＣＰＵ３４は、親機に設定されている情報処理装置３からゲーム更新プログラムを受信したか否かを判定する。そして、ＣＰＵ３４は、ゲーム更新プログラムを受信した場合、ステップＳ１４４に処理を進める。一方、ＣＰＵ３４は、ゲーム更新プログラムを受信していない場合、ステップＳ１４７に処理を進める。
【０１２２】
ステップＳ１４４において、ＣＰＵ３４は、親機に設定された情報処理装置３から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションを更新し、次のステップに処理を進める。例えば、ＣＰＵ３４は、親機の情報処理装置３から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションＰａ３およびゲーム更新プログラムＰａ４を更新する。
【０１２３】
次に、ＣＰＵ３４は、上記ステップＳ１４４において更新後のゲームアプリケーションのバージョンを用いて自機のバージョン情報データＤｂを更新し（ステップＳ１４５）、次のステップに処理を進める。
【０１２４】
次に、ＣＰＵ３４は、親機に設定されている情報処理装置３へ更新情報をローカル通信で送信（ステップＳ１４６）、ステップＳ１４７に処理を進める。ここで、上記ステップＳ１４６において送信される更新情報は、送信元である自機が保有するゲームアプリケーションが最新のバージョンに更新されたことを示す情報である。
【０１２５】
ステップＳ１４７において、ＣＰＵ３４は、親機に設定された情報処理装置３から通信ゲームを開始する旨を示すデータを受信したか否かを判定する。そして、ＣＰＵ３４は、ゲーム開始を示すデータを受信した場合、ステップＳ１４８に処理を進める。一方、ＣＰＵ３４は、ゲーム開始を示すデータを受信していない場合、上記ステップＳ１３１に戻って処理を繰り返す。
【０１２６】
ステップＳ１４８において、ＣＰＵ３４は、他の情報処理装置３（親機）との間でゲームデータをやり取りすることによって、上記通信ゲームを進行し、当該フローチャートによる処理を終了する。
【０１２７】
このように、上記通信ゲームを行う情報処理システム１によれば、インターネット通信を用いてアプリケーションを更新することができない状況（例えば、サーバに接続できる環境にない場合）であっても、ローカル通信を用いて複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションを実行することができる。
【０１２８】
なお、上述した説明では、基本アプリケーションやゲームアプリケーションが更新される際に送受信される更新プログラムや各データが、親機に設定された情報処理装置３を介して行われている。これにより、各情報処理装置３間におけるローカル通信を親機において集中して管理することができるため、当該ローカル通信の制御が容易となる。しかしながら、通信管理を親機に集中させることが不要である場合、親機を介さずに子機に設定された情報処理装置３同士でローカル通信が行われてもよい。例えば、第１の子機に設定された情報処理装置３のみが最新のバージョンのゲームアプリケーションを保有しており、親機に設定された情報処理装置３および第２の子機に設定された情報処理装置３が当該最新のバージョンより古いゲームアプリケーションを保有している場合、第１の子機から親機にゲーム更新プログラムが送信されるととともに、親機を介さずに第１の子機から第２の子機にもゲーム更新プログラムが送信されてもよい。
【０１２９】
また、上述したように情報処理装置３は、携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、据置型ゲーム装置、携帯電話機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のデバイスで構成されるが、上記通信ゲームを行う装置グループ内において、異なる種類のデバイスが含まれていてもかまわない。一例として、据置型ゲーム装置と携帯ゲーム装置とが含まれる装置グループ間においてローカル通信することによって、上記通信ゲームが行われてもかまわない。
【０１３０】
また、上述した説明では情報処理や通信処理を情報処理装置３で行う例を用いたが、上記処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置３がさらに他の装置（例えば、別のサーバ、他のゲーム装置、他の携帯端末）と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、情報処理装置３のＣＰＵ３４が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置３が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１３１】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置（据置型のゲーム装置）と携帯型の情報処理装置（携帯型のゲーム装置）との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【０１３２】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【０１３３】
また、上記各プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置３に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置３に供給されてもよい。また、上記プログラムは、情報処理装置３内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【０１３４】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１３５】
以上のように、本発明は、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションの実行を可能とすること等を目的として、例えば情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法等として有用である。
【符号の説明】
【０１３６】
１…情報処理システム
３…情報処理装置
３１…通信部
３２…操作部
３３…ＬＣＤ
３４…ＣＰＵ
３５…メモリ
３６…プログラム記憶部
【図１】
2019070928.tif 000003
【図２】
2019070928.tif 000004
【図３】
2019070928.tif 000005
【図４】
2019070928.tif 000006
【図５】
2019070928.tif 000007
【図６】
2019070928.tif 000008
【図７】
2019070928.tif 000009
【図８】
2019070928.tif 000010
【図９】
2019070928.tif 000011