JP2019070928A - 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 - Google Patents

情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 Download PDF

Info

Publication number
JP2019070928A
JP2019070928A JP2017196287A JP2017196287A JP2019070928A JP 2019070928 A JP2019070928 A JP 2019070928A JP 2017196287 A JP2017196287 A JP 2017196287A JP 2017196287 A JP2017196287 A JP 2017196287A JP 2019070928 A JP2019070928 A JP 2019070928A
Authority
JP
Japan
Prior art keywords
information processing
version
update program
user application
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017196287A
Other languages
English (en)
Other versions
JP6679553B2 (ja
Inventor
弘生 塩見
Hiroki Shiomi
弘生 塩見
仁 坂井
Hitoshi Sakai
仁 坂井
裕正 島田
Hiromasa Shimada
裕正 島田
拓実 金谷
Takumi Kanaya
拓実 金谷
剛 岩城
Takeshi Iwaki
剛 岩城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2017196287A priority Critical patent/JP6679553B2/ja
Priority to US15/911,528 priority patent/US10733299B2/en
Publication of JP2019070928A publication Critical patent/JP2019070928A/ja
Application granted granted Critical
Publication of JP6679553B2 publication Critical patent/JP6679553B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションの実行を可能とする情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供する。【解決手段】情報処理装置それぞれが有するバージョン情報に基づいて、複数の情報処理装置内において最新のバージョンのユーザアプリケーションを格納する情報処理装置3aを特定し、最新のバージョンのユーザアプリケーションを格納する情報処理装置3aから当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置3b、3cへ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信することにより、受信した更新プログラムを用いて自機のユーザアプリケーションを更新する。【選択図】図3

Description

本発明は、情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関し、特に例えば、複数の情報処理装置間で通信を行う情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関する。
従来、インターネット通信を用いて、サーバに接続してアプリケーションおよびシステムのアップデートを行う情報処理システムがある(例えば、特許文献1参照)。
特開2012−18657号公報
上記特許文献1で開示された情報処理システムは、ローカルネットワーク内に配置された複数の情報処理装置間のローカル通信を用いて各情報処理装置がアプリケーションを実行する場合、それぞれの装置同士でアプリケーションのバージョンが同じであることが必要となることがある。しかしながら、上記複数の情報処理装置がインターネット通信を用いて同じバージョンのアプリケーションに更新することができない場合、複数の情報処理装置間のローカル通信を用いたアプリケーションを実行することができなかった。
それ故に、本発明の目的は、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションの実行を可能とする情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供することである。
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
本発明の情報処理システムの一構成例は、ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報をそれぞれ格納した複数の情報処理装置を含む。複数の情報処理装置の少なくとも1つは、ユーザアプリケーションの更新プログラムを格納する。情報処理システムは、特定手段、更新プログラム送信手段、更新プログラム受信手段、および更新手段を備える。特定手段は、情報処理装置それぞれが有するバージョン情報に基づいて、複数の情報処理装置内において最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定する。更新プログラム送信手段は、最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信する。更新プログラム受信手段は、送信された更新プログラムを無線通信により直接受信する。更新手段は、受信した更新プログラムを用いて、自機のユーザアプリケーションを更新する。
上記によれば、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのユーザアプリケーションに合わせて当該ユーザアプリケーションを実行することができる。また、ローカルネットワークエリア内に配置された複数の情報処理装置の間で無線通信を直接行う、いわゆるローカル通信を用いて、複数の情報処理装置間で同じバージョンのユーザアプリケーションに合わせて当該ユーザアプリケーションを実行することができる。
また、上記複数の情報処理装置は、設定手段を、それぞれ備えてもよい。設定手段は、自機を子機または特定手段を有する親機の何れかに設定する。上記子機は、バージョン情報送信手段を、さらに備えてもよい。バージョン情報送信手段は、自機が格納するユーザアプリケーションのバージョン情報を親機に送信する。上記親機は、バージョン情報受信手段を、さらに備えてもよい。バージョン情報受信手段は、子機から送信されたバージョン情報を受信する。上記特定手段は、子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定してもよい。
上記によれば、複数の情報処理装置のうち、親機に設定された情報処理装置において各情報処理装置が格納するユーザアプリケーションのバージョンを管理することができる。
また、上記最新のバージョンのユーザアプリケーションを格納する情報処理装置が親機の場合、上記親機は、最新のバージョンのユーザアプリケーションを格納していない子機へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信することによって、更新プログラム送信手段として機能してもよい。上記子機は、親機から送信された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
上記によれば、情報処理装置の親機が最新のバージョンのユーザアプリケーションを格納している場合、当該親機から子機へ更新プログラムを無線通信により直接送信することによって、複数の情報処理装置それぞれが格納するユーザアプリケーションのバージョンを合わせることができる。
また、上記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに情報処理プログラムに含まれる場合、上記更新プログラム送信手段は、他の子機へ更新プログラムを無線通信によりさらに直接送信してもよい。他の子機は、親機から送信された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
上記によれば、情報処理装置の親機が最新のバージョンのユーザアプリケーションを格納している場合、当該親機から他の子機へも更新プログラムを無線通信により直接送信することによって、親機と複数の子機とがそれぞれ格納するユーザアプリケーションのバージョンを合わせることができる。
また、上記最新のバージョンのユーザアプリケーションを格納する情報処理装置が子機の場合、上記親機は、要求手段を、さらに備えてもよい。要求手段は、最新のバージョンのユーザアプリケーションを格納する子機に当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを要求する。上記子機は、親機から更新プログラムを要求された場合に、当該更新プログラムを当該親機に無線通信により直接送信することによって、更新プログラム送信手段として機能してもよい。上記親機は、子機から送信された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、子機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
上記によれば、情報処理装置の子機が最新のバージョンのユーザアプリケーションを格納している場合、当該子機から親機へ更新プログラムを無線通信により直接送信することによって、複数の情報処理装置それぞれが格納するユーザアプリケーションのバージョンを合わせることができる。
また、上記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに情報処理プログラムに含まれる場合、上記親機は、更新プログラム転送手段を、さらに備えてもよい。更新プログラム転送手段は、子機から送信された更新プログラムを他の子機へ無線通信により直接転送する。上記他の子機は、親機から転送された更新プログラムを無線通信により直接受信することによって、更新プログラム受信手段として機能し、親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、更新手段として機能してもよい。
上記によれば、情報処理装置の子機が最新のバージョンのユーザアプリケーションを格納している場合、親機が他の子機へ更新プログラムを無線通信により直接転送することによって、複数の情報処理装置それぞれが格納するユーザアプリケーションのバージョンを合わせることができる。
また、上記複数の情報処理装置は、ユーザアプリケーションに加えて、少なくとも当該ユーザアプリケーションの実行を制御する基本アプリケーションと当該基本アプリケーションの基本バージョン情報とをそれぞれ格納してもよい。この場合、上記複数の情報処理装置の少なくとも1つは、基本アプリケーションの基本更新プログラムを格納してもよい。上記特定手段は、情報処理装置それぞれが有する基本バージョン情報に基づいて、最新のバージョンの基本アプリケーションを格納する情報処理装置をさらに特定してもよい。上記更新プログラム送信手段は、最新のバージョンの基本アプリケーションを格納する情報処理装置から当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを無線通信によりさらに直接送信してもよい。上記更新プログラム受信手段は、送信された基本更新プログラムを無線通信によりさらに直接受信してもよい。上記更新手段は、受信した基本更新プログラムを用いて、自機の基本アプリケーションをさらに更新してもよい。
上記によれば、さらに複数の情報処理装置間で基本アプリケーションのバージョンを合わせて、当該基本アプリケーションおよびユーザアプリケーションを実行することができる。
また、上記更新手段は、自機の基本アプリケーションを更新する場合、受信した基本更新プログラムを用いて自機の基本アプリケーションを更新した後、受信した更新プログラムを用いて自機のユーザアプリケーションを更新してもよい。
上記によれば、基本アプリケーションのバージョンがユーザアプリケーションのバージョンと合わないことによる不具合を防止することができる。
また、上記更新プログラム送信手段は、最新のバージョンのユーザアプリケーションを実行するために基本アプリケーションを最新のバージョンへ更新することが必要な場合に限り、当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを送信してもよい。
上記によれば、基本アプリケーションに対して、ユーザアプリケーションを実行するために必要最低限の更新が行われるため、更新処理を軽減することが可能であり、ユーザアプリケーションが実行可能となるまでの時間を短縮することができる。
また、上記複数の情報処理装置は、設定手段を、それぞれ備えてもよい。設定手段は、自機を子機または特定手段を有する親機の何れかに設定する。子機は、バージョン情報送信手段を、さらに備えてもよい。バージョン情報送信手段は、自機が格納するユーザアプリケーションのバージョン情報と自機が格納する基本アプリケーションの基本バージョン情報とをまとめて親機に送信する。親機は、バージョン情報受信手段を、さらに備えてもよい。バージョン情報受信手段は、子機から送信されたバージョン情報および基本バージョン情報を受信する。上記特定手段は、子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定するとともに、子機から受信した基本バージョン情報と自機の基本アプリケーションの基本バージョン情報とに基づいて、最新のバージョンの基本アプリケーションを格納する情報処理装置を特定してもよい。
上記によれば、基本アプリケーションおよびユーザアプリケーションのバージョン情報がまとめて送受信されるため、データ送受信処理負荷やバージョン管理処理負荷を軽減することができる。
また、上記複数の情報処理装置は、情報処理手段を、それぞれ備えてもよい。情報処理手段は、ユーザアプリケーションを実行することによって他の情報処理装置とデータの送受信を行い、当該送受信したデータに基づいて情報処理を行う。
上記によれば、バージョンを合わせたユーザアプリケーションを複数の情報処理装置が実行することによって、当該情報処理装置間でデータ送受信を行う情報処理を実現することができる。
また、上記設定手段は、最新のバージョンの基本アプリケーションを格納する情報処理装置が子機の場合、当該子機を親機に変更するとともに、他の情報処理装置を子機に変更してもよい。
上記によれば、親機/子機の設定を変更することによって、最新のバージョンの基本アプリケーションを格納する情報処理装置を親機として通信を制御することができる。
また、本発明は、上記各手段を備える情報処理装置、情報処理プログラム、および情報処理方法の形態で実施されてもよい。
本発明によれば、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションを実行することができる。
本発明の一実施形態に係る情報処理システム1の一例を示す図 情報処理装置3の構成の一例を示すブロック図 親機に設定された情報処理装置3aが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャート 子機に設定された情報処理装置3bが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャート 子機に設定された情報処理装置3bが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す前半の通信タイミングチャート 子機に設定された情報処理装置3bが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す後半の通信タイミングチャート 情報処理装置3のメモリ35に記憶される主なデータおよびプログラムの一例を示す図 情報処理装置3において実行される前半の処理の一例を示すフローチャート 情報処理装置3において実行される後半の処理の一例を示すフローチャート
図1を参照して、本発明の一実施形態に係る情報処理システムについて説明する。図1に示すように、当該情報処理システムの一例である情報処理システム1は、ローカル通信を介して無線接続された複数の情報処理装置3(図1では、3つの情報処理装置3a、3b、および3c)によって構築される。情報処理装置3は、閉ざされたローカルネットワークエリア内に配置された他の情報処理装置3との間で無線通信可能であり、複数の情報処理装置3の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能としている。ここで、他の情報処理装置3との間で可能としている「ローカル通信」は、インターネットを経由せず直接的に情報処理装置3同士を無線接続するインフラストラクチャモードを用いた通信である。一例として、本実施例では、いずれかの情報処理装置3が親機(図1の例では、情報処理装置3a)になってネットワークを統括し、他の情報処理装置3が親機を経由して通信を行う子機(図1の例では、情報処理装置3bおよび3c)となる、インフラストラクチャモードを用いてローカル通信する。なお、親機(アクセスポイント)を経由することなく直接的に情報処理装置3同士を無線接続するアドホックモードを用いるローカル通信であってもよい。以下に説明する利用態様では、上記インフラストラクチャモードを用いたローカル通信を介して送受信される情報に基づいて、複数の情報処理装置3が情報処理(例えば、通信ゲーム)する例を用いる。
情報処理装置3は、ローカル通信を用いて、他の情報処理装置3に接続可能に構成されている。そして、情報処理装置3は、ローカル通信を介して他の情報処理装置3と接続を確立することによって、他の情報処理装置3との通信が可能となる。例えば、情報処理装置3は、交換可能なメモリカードや光ディスク等の記録媒体内に記憶された、または、サーバや他の装置から受信されたプログラムを実行可能である。情報処理装置3は、携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、据置型ゲーム装置、携帯電話機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。
次に、図2を参照して、情報処理装置3について説明する。なお、図2は、情報処理装置3の構成の一例を示すブロック図である。
情報処理装置3は、通信部31、操作部32、LCD33、CPU34、メモリ35、およびプログラム記憶部36を備える。なお、情報処理装置3は、CPU34を少なくとも含む装置と他の装置とを含む1以上の装置によって構成されてもよい。
通信部31は、他の通信機器等と無線通信を行う機能を有している。本実施例では、通信部31は、CPU34に接続される。通信部31は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、通信部31は、第1の通信態様としてWi−Fiの規格(例えば、IEEE802.11b/g/n/ac/adの規格)に準拠した方式により、無線LANに接続してインターネット等のネットワークを介して外部装置と通信を行う。また、通信部31は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の情報処理装置3との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の情報処理装置3との間で無線通信可能であり、複数の情報処理装置3の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
CPU34は、各種の情報処理を実行するための情報処理手段(コンピュータ)の一例である。CPU34は、各種の情報処理として、通信部31を介して他の情報処理装置3からデータを受信し、当該受信データに応じた処理等を実行する機能を有する。また、CPU34は、各種の情報処理として、他の情報処理装置3へ送信する送信データを作成して、通信部31を介して当該送信データを送信する処理等を実行する機能を有する。例えば、CPU34が所定のプログラムを実行することによって、上記機能が実現される。一例として、CPU34は、ローカル通信を介して他の情報処理装置3との間でデータを送受信することによって、所定の仮想空間における通信ゲームを行う。
メモリ35は、CPU34が上記情報処理を実行する際に用いる各種のデータを記憶する。メモリ35は、例えばCPU34がアクセス可能なメモリである。
プログラム記憶部36は、プログラムを記憶(格納)する。プログラム記憶部36は、CPU34がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム記憶部36は、CPU34を含む情報処理装置3内に設けられる記憶装置であってもよいし、CPU34を含む情報処理装置3に着脱自在に装着される記憶媒体であってもよい。また、プログラム記憶部36は、CPU34とネットワークを介して接続される記憶装置(サーバ等)であってもよい。CPU34は、プログラムの一部または全部を適宜のタイミングでメモリ35に読み出し、読み出されたプログラムを実行するようにしてもよい。
操作部32は、ユーザによって操作可能な入力装置である。操作部32は、どのような入力装置であってもよい。例えば、操作部32は、操作ボタン、スティック、タッチパネル、ジャイロセンサ等の姿勢センサを備えていてもよい。
LCD33は、情報処理装置3が備える表示部の一例であり、CPU34の指示にしたがって画像を表示する。
本実施例において、複数の情報処理装置3を用いて通信ゲームを行う場合、閉ざされたローカルネットワークエリア内に配置された当該情報処理装置3が互いにローカル通信を行うことによって当該通信ゲームが進行し、情報処理装置3それぞれを別のユーザが操作する。例えば、3台の情報処理装置3a〜3cにおいて同じバージョンのゲームアプリケーションがそれぞれ実行されることに応じて、情報処理装置3a〜3cにおいてそれぞれ通信ゲームが進行する。なお、上記ゲームアプリケーションは、本発明のユーザアプリケーションの一例に相当する。
一例として、情報処理装置3aは、情報処理装置3aの操作部32を第1のユーザが操作する操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第1の仮想オブジェクトを制御する。そして、情報処理装置3aは、情報処理装置3aの操作部32を用いた操作に基づいた情報を、ローカル通信を介して他の情報処理装置3bおよび3cへそれぞれ送信する。ここで、操作に基づいた情報とは、操作部32に対する操作を示す操作情報であってもよいし、操作部32に対する操作が反映される仮想オブジェクトや仮想空間に関する情報であってもよい。操作情報には、例えば各ボタンに対する操作を示すキーデータ、スティックに対する傾倒状態を示すスティックデータ、加速度センサおよび角速度センサ等の各センサの検出状態を示すセンサデータ等の少なくともいずれかが含まれていてもよいし、それらに所定の演算を加えた結果を示すデータであってもよい。仮想オブジェクトや仮想空間に関する情報は、例えば仮想オブジェクトの仮想空間における位置、方向、動作、状態等を示すオブジェクトデータ等であってもよい。
また、情報処理装置3bは、情報処理装置3bの操作部32を第2のユーザが操作する操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第2の仮想オブジェクトを制御する。そして、情報処理装置3bは、情報処理装置3bの操作部32を用いた操作に基づいた情報を、ローカル通信を介して他の情報処理装置3aおよび3cへそれぞれ送信する。さらに、情報処理装置3cは、情報処理装置3cの操作部32を第3のユーザが操作する操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第3の仮想オブジェクトを制御する。そして、情報処理装置3cは、情報処理装置3cの操作部32を用いた操作に基づいた情報を、ローカル通信を介して他の情報処理装置3aおよび3bへそれぞれ送信する。
本実施例では、このような複数の情報処理装置3を用いた通信ゲームを実現するために、ゲームアプリケーションのバージョンが各情報処理装置3において同じであることが必要である場合、当該通信ゲームを開始する前に各情報処理装置3において上記バージョンが同じであるか否かが判定される。そして、上記バージョンが異なる場合、各情報処理装置3が保有しているゲームアプリケーションのバージョンの中で最も新しいバージョンに合わせるために、上記ローカル通信を介して複数の情報処理装置3の間でゲーム更新プログラムの送受信が行われる。なお、典型的には、ゲーム更新プログラム自体は、インターネット通信を介して、サーバ等からダウンロードされて予め取得されたものである。また、各情報処理装置3が保有(格納)しているゲームアプリケーションやゲーム更新プログラムは、各情報処理装置3において既にインストールされているものとする。ここで、ゲームアプリケーションのバージョンの確認およびゲーム更新プログラムの送受信を制御するために、複数の情報処理装置3が親機または子機に設定され、当該親機の情報処理装置3によって上記バージョンが制御される。なお、上述した通信ゲーム開始後に送受信されるゲームデータ(操作に基づいた情報)においても、上記親機を介して送受信されてもよい。
以下、図3および図4を用いて、複数の情報処理装置3間におけるバージョンを特定して、各複数の情報処理装置3において最新のバージョンに合わせる処理例について説明する。なお、図3は、親機に設定された情報処理装置3aが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャートである。図4は、子機に設定された情報処理装置3bが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理の一例を示す通信タイミングチャートである。
まず、図3を参照して、親機に設定された情報処理装置3aが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理例を説明する。図3において、上記通信ゲームを開始する前に、当該通信ゲームを行う3台の情報処理装置3a〜3cは、自機が親機または子機に設定される親子設定処理が行われる。例えば、情報処理装置3a〜3cのうち、上記ローカル通信を用いて、最初に通信ゲームに参加するメンバーを招集した情報処理装置3aが親機に設定され、他の参加装置(情報処理装置3bおよび3c)が子機に設定される。より具体的には、上記通信ゲームを開始する際にグループを作るか参加するかを選択する選択肢が表示され、ユーザ選択によって「グループを作る」が選択された場合に親機に設定され、「グループに参加する」が選択された場合に子機に設定される。上記親子設定処理においては、親機の情報処理装置3aが通信ゲームに参加する子機からユーザ名(装置ID)を受信することによって、通信ゲームに参加する情報処理装置3を管理する。そして、親機の情報処理装置3aから子機の情報処理装置3bおよび3cへ、親機および子機として管理されているユーザ名(装置ID)等を含む親子設定データが送信されることによって、情報処理装置3a〜3cそれぞれにおいて親機および子機に設定されているユーザ情報(装置ID)が共有される。
次に、親機の情報処理装置3aは、上記通信ゲームに参加する装置間においてゲームアプリケーションのバージョンを合わせる処理を行うか否かを判定する。一例として、親機の情報処理装置3aを操作する第1のユーザがゲームアプリケーションのバージョンを合わせる処理を行うための操作を行った場合、親機の情報処理装置3aは、上記判定において肯定判定する。他の例として、上記通信ゲームを開始するための所定の初期設定段階になった時点で、親機の情報処理装置3aは、上記判定において自動的に肯定判定する。
ゲームアプリケーションのバージョンを合わせる処理が開始されると、親機の情報処理装置3aは、ゲームアプリケーションにおけるバージョンを特定する処理(バージョン特定処理)を行う。例えば、親機の情報処理装置3aは、子機の情報処理装置3bが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置3bからローカル通信によって受信する。また、親機の情報処理装置3aは、子機の情報処理装置3cが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置3cからローカル通信によって受信する。そして、親機の情報処理装置3aは、自機が保有するゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンのゲームアプリケーションを保有する情報処理装置を特定する。本例では、親機の情報処理装置3aが最も新しいバージョンのゲームアプリケーションを保有しているため、自機が最新のバージョンを保有する情報処理装置として特定される。なお、最新のバージョンとは、上記通信ゲームに参加する情報処理装置3が保有するゲームアプリケーションの中で最も新しいバージョンという意味であり、世の中に配布されている最新バージョンであるとは限らない。
親機の情報処理装置3aが最新のバージョンのゲームアプリケーションを保有しており、子機の情報処理装置3bおよび3cが当該最新のバージョンより古いバージョンのゲームアプリケーションを保有している場合、当該最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムが、親機の情報処理装置3aから子機の情報処理装置3bおよび3cへそれぞれローカル通信によって送信される。なお、既に親機と同じ最新のバージョンのゲームアプリケーションを保有している子機がいる場合、当該子機にはゲーム更新プログラムを送信しなくてもよい。
親機の情報処理装置3aからゲーム更新プログラムを受信した子機の情報処理装置3bは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置3bは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3aにローカル通信によって送信する。また、親機の情報処理装置3aからゲーム更新プログラムを受信した子機の情報処理装置3cは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置3cは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3aにローカル通信によって送信する。
なお、ゲームアプリケーションの更新段階が3段階以上ある場合、送信されるゲーム更新プログラムは、最も初期のバージョンから上記最新のバージョンに更新するためのものでもよいし、各機が保有するバージョンから上記最新のバージョンに更新するためのものでもよい。前者の場合、ゲーム更新プログラムを受信した各機において、最も初期のバージョンから自機が保有するバージョンへ更新するためのゲーム更新プログラムを受信したゲーム更新プログラムから取り除き、当該取り除いた後のゲーム更新プログラムを用いて自機のバージョンから上記最新のバージョンにゲームアプリケーションを更新すればよい。この場合、各機に送信されるゲーム更新プログラムは、各機におけるバージョンが異なる場合であっても同じゲーム更新プログラムが送信されることになる。
次に、親機の情報処理装置3aは、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置3aは、子機の情報処理装置3bから受信した更新情報と子機の情報処理装置3cから受信した更新情報と自機のバージョン情報とに基づいて、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有するゲームアプリケーションのバージョンが揃った場合、情報処理装置3a〜3cの間で上記通信ゲームを行うことが可能になったと判定して、情報処理装置3a〜3cの間で上記通信ゲームを開始する。そして、情報処理装置3a〜3cの間でゲームデータがローカル通信によって送受信されることによって、上記最新のバージョンのゲームアプリケーションによる通信ゲーム処理が進行する。
図4を参照して、子機に設定された情報処理装置3bが最新のバージョンのゲームアプリケーションのバージョンを保有している場合における処理例を説明する。図4において、上記通信ゲームを開始する前に、当該通信ゲームを行う3台の情報処理装置3a〜3cは、自機が親機または子機に設定される親子設定処理が行われる。そして、親機の情報処理装置3aは、上記通信ゲームに参加する装置間においてゲームアプリケーションのバージョンを合わせる処理を行うか否かを判定する。なお、親子設定処理およびゲームアプリケーションのバージョンを合わせる処理を行うか否かの判定処理については、図3を用いて説明した例と同様であるため、ここでは詳細な説明を省略する。本例でも、親子設定処理において、情報処理装置3aが親機に設定され、情報処理装置3bおよび3cが子機に設定される。
ゲームアプリケーションのバージョンを合わせる処理が開始されると、親機の情報処理装置3aは、ゲームアプリケーションにおけるバージョンを特定する処理(バージョン特定処理)を行う。例えば、親機の情報処理装置3aは、子機の情報処理装置3bが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置3bからローカル通信によって受信する。また、親機の情報処理装置3aは、子機の情報処理装置3cが保有するゲームアプリケーションのバージョンを示すバージョン情報を当該情報処理装置3cからローカル通信によって受信する。そして、親機の情報処理装置3aは、自機が保有するゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンのゲームアプリケーションを保有する情報処理装置を特定する。本例では、子機の情報処理装置3bが最も新しいバージョンのゲームアプリケーションを保有しているため、情報処理装置3bが最新のバージョンを保有する情報処理装置として特定される。
子機の情報処理装置3bが最新のバージョンのゲームアプリケーションを保有しており、親機の情報処理装置3aおよび子機の情報処理装置3cが当該最新のバージョンより古いバージョンのゲームアプリケーションを保有している場合、親機の情報処理装置3aは、最新のバージョンのゲームアプリケーションを保有している情報処理装置3bに対して、当該最新のバージョンへ更新するためのゲーム更新プログラムの要求をローカル通信によって送信する。なお、最新のバージョンのゲームアプリケーションを保有している子機の情報処理装置3が複数ある場合、親機の情報処理装置3は、自分を親機とする装置グループへの参加が最も早かった子機に対して、ゲーム更新プログラムの要求を送信する。
親機の情報処理装置3aからゲーム更新プログラムの要求を受信した子機の情報処理装置3bは、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを、親機の情報処理装置3aへローカル通信によって送信する。
子機の情報処理装置3bからゲーム更新プログラムを受信した親機の情報処理装置3aは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新して、当該最新のバージョンを示すように自機のバージョン情報を更新する。そして、親機の情報処理装置3aは、当該最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを、子機の情報処理装置3cへローカル通信によって送信する。
親機の情報処理装置3aからゲーム更新プログラムを受信した子機の情報処理装置3cは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置3cは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3aにローカル通信によって送信する。
次に、親機の情報処理装置3aは、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置3aは、子機の情報処理装置3bから受信していたバージョン情報と子機の情報処理装置3cから受信した更新情報と自機の更新後のバージョン情報とに基づいて、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有するゲームアプリケーションのバージョンが揃った場合、情報処理装置3a〜3cの間で上記通信ゲームを行うことが可能になったと判定して、情報処理装置3a〜3cの間で上記通信ゲームを開始する。そして、情報処理装置3a〜3cの間でゲームデータがローカル通信によって送受信されることによって、上記最新のバージョンのゲームアプリケーションによる通信ゲーム処理が進行する。
なお、上述した処理例では、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを保有している子機の情報処理装置3bから、親機の情報処理装置3aを介して子機の情報処理装置3cに送信される。したがって、図4に示した例では、親機の情報処理装置3aは、子機の情報処理装置3bが保有しているゲーム更新プログラムを他の子機である情報処理装置3cに転送していることになる。なお、子機の情報処理装置3bが保有しているゲーム更新プログラムを、子機の情報処理装置3bから他の子機である情報処理装置3cに送信してもかまわない。この場合、上記ゲーム更新プログラムは、子機の情報処理装置3bから親機の情報処理装置3aおよび子機の情報処理装置3cへそれぞれローカル通信によって直接送信されることになる。
また、上述した処理例では、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムを子機が保有している場合、当該ゲーム更新プログラムが子機から親機へ送信されるが、子機が最新のバージョンのゲーム更新プログラムを保有している場合に親機/子機の設定を変更してもかまわない。例えば、図4に示した例では、子機の情報処理装置3bが最新のバージョンのゲーム更新プログラムを保有していることが特定された場合、当該最新のバージョンのゲーム更新プログラムを保有している情報処理装置3bを親機に設定するとともに、他の情報処理装置3aおよび3bを子機に再設定する親子再設定処理を行った後、ゲーム更新プログラムの送受信処理を行ってもかまわない。
なお、上述した例では、ローカル通信を用いてバージョン情報を送受信する例を用いたが、ビーコンを用いてバージョン情報を要求してもかまわない。例えば、親機の情報処理装置3aがバージョン特定処理を行う場合、情報処理装置3aは、当該親機のゲームアプリケーションのバージョン情報を含むビーコンを送信、すなわちバージョン情報をブロードキャストする。そして、子機の情報処理装置3bおよび3cは、上記ビーコンを受信した場合、当該子機のゲームアプリケーションのバージョン情報を含むデータを親機の情報処理装置3aにそれぞれ送信、すなわちバージョン情報を親機との間でユニキャストする。次に、親機の情報処理装置3aは、子機の情報処理装置3bおよび3cから受け取ったバージョン情報の何れかが親機のバージョン情報より新しい場合、親機から送信しているビーコンに含まれるバージョン情報を子機から受け取った新しいバージョン情報に変更して、変更後のバージョン情報を含むビーコンの送信を続ける。つまり、親機の情報処理装置3aは、必要に応じてビーコンに含まれるバージョン情報を適宜更新することになり、子機の情報処理装置3bおよび3cは、必ずしも親機のバージョン情報を受け取れるとは限らない。この場合、親機の情報処理装置3aは、グループ内の最新のバージョン情報をビーコンで送信するということになる。また、親機の情報処理装置3aおよび子機の情報処理装置3bおよび3cでは、上記ビーコンに含まれるバージョン情報を用いて、それぞれグループ内の最新のバージョン情報を画面に表示することによって、バージョンを揃えることによりどのバージョンに更新されるかをユーザに事前通知してもかまわない。
また、本実施例では、情報処理装置3は、上記ゲームアプリケーションとは別に、本体アプリケーション(システムソフトウエア)が実行されることによって、装置の動作全体が制御されている。上記本体アプリケーションは、上記ゲームアプリケーションおよび他のアプリケーションの情報処理装置3の実行を少なくとも制御するプログラムであり、情報処理装置3の動作を制御するための基本アプリケーションとして機能する。例えば、基本アプリケーションによる処理は、後述するステップS100−S108、ステップS111−S119、ステップS131−S136、およびステップS141−S147の処理、すなわち図8および図9に例示した処理からステップS120のゲーム開始処理とステップS121およびS148のゲーム処理とを除く処理を含んでいてもよい。ここで、情報処理装置3は、上記最新のバージョンのゲームアプリケーションを実行する場合、当該ゲームアプリケーションの実行を制御する基本アプリケーションも当該最新のバージョンに対応するバージョンに更新することが必要となる場合がある。例えば、所定バージョンのゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報が、ゲームアプリケーションやゲーム更新プログラム等に格納されている。情報処理装置3は、上記基本アプリケーションのバージョンを示す情報を参照して、上記最新のバージョンのゲームアプリケーションに揃える場合に、基本アプリケーションも当該最新のバージョンに対応するバージョンに更新する必要があるか否かを判定する。
このような複数の情報処理装置3を用いた通信ゲームを実現するために、ゲームアプリケーションの実行を制御する基本アプリケーションのバージョンも各情報処理装置3において同じであることが必要である場合、当該通信ゲームを開始する前に各情報処理装置3において当該基本アプリケーションのバージョンが同じであるか否かも判定される。そして、上記バージョンが異なる場合、各情報処理装置3が保有している基本アプリケーションのバージョンの中で最も新しいバージョンに合わせるために、上記ローカル通信を介して複数の情報処理装置3の間で基本更新プログラムの送受信が行われる。なお、典型的には、基本更新プログラムのデータサイズは、上述したゲーム更新プログラムのデータサイズより大きく構成される。
以下、図5および図6を用いて、複数の情報処理装置3間において基本アプリケーションおよびゲームアプリケーションにおける両方のバージョンを特定して、各複数の情報処理装置3において最新のバージョンに合わせる処理例について説明する。なお、図5は、子機に設定された情報処理装置3bが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す前半の通信タイミングチャートである。図6は、子機に設定された情報処理装置3bが最新のバージョンの基本アプリケーションおよびゲームアプリケーションのバージョンを保有している場合における処理の一例を示す後半の通信タイミングチャートである。
図5において、上記通信ゲームを開始する前に、当該通信ゲームを行う3台の情報処理装置3a〜3cは、自機が親機または子機に設定される親子設定処理が行われる。例えば、情報処理装置3a〜3cのうち、上記ローカル通信を用いて、最初に通信ゲームに参加するメンバーを招集した情報処理装置3aが親機に設定され、他の参加装置(情報処理装置3bおよび3c)が子機に設定される。
次に、親機の情報処理装置3aは、上記通信ゲームに参加する装置間においてゲームアプリケーションのバージョンを合わせる処理を行うか否かを判定する。ゲームアプリケーションのバージョンを合わせる処理が開始されると、親機の情報処理装置3aは、基本アプリケーションおよびゲームアプリケーションの両方のバージョンを特定する処理(バージョン特定処理)を行う。例えば、親機の情報処理装置3aは、子機の情報処理装置3bが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報と当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報とをまとめたバージョン情報を当該情報処理装置3bからローカル通信によって受信する。また、親機の情報処理装置3aは、子機の情報処理装置3cが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報と当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報とをまとめたバージョン情報を当該情報処理装置3cからローカル通信によって受信する。そして、親機の情報処理装置3aは、自機が保有する基本アプリケーションおよびゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有する情報処理装置を特定し、当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報に基づいて基本アプリケーションの更新が必要か否かを判定する。本例では、上記判定が肯定判定され、子機の情報処理装置3bが最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有しているため、子機の情報処理装置3bが最新のバージョンを保有する情報処理装置として特定される。なお、最新のバージョンとは、上記通信ゲームに参加する情報処理装置3が保有する基本アプリケーションおよびゲームアプリケーションの中で最も新しいバージョンという意味であり、世の中に配布されている最新バージョンであるとは限らない。
親機の情報処理装置3aは、自機以外の子機が最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有していることが特定された場合、親子再設定処理を行う。具体的には、上記親子再設定処理によって、最新のバージョンの基本アプリケーションおよびゲームアプリケーションを保有している子機(すなわち、情報処理装置3b)が親機に変更され、他の情報処理装置3が子機に設定される。なお、情報処理装置3a〜3cそれぞれにおいては、ユーザ情報(装置ID)が既に共有されている。したがって、情報処理装置3bが親機に変更されることを示す親子設定データを、情報処理装置3aから情報処理装置3bおよび3cにそれぞれ送信することによって、情報処理装置3a〜3cそれぞれにおいて情報処理装置3bが親機に変更され、他の情報処理装置3が子機に設定される親子再設定処理が行われる。情報処理装置3bが親機に再設定された以降の処理は、図6を用いて説明する。
図6において、親機に変更された情報処理装置3bは、基本アプリケーションおよびゲームアプリケーションの両方のバージョンを特定する処理(バージョン特定処理)を行う。例えば、親機の情報処理装置3bは、子機の情報処理装置3aが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報をまとめたバージョン情報を当該情報処理装置3aからローカル通信によって受信する。また、親機の情報処理装置3bは、子機の情報処理装置3cが保有する基本アプリケーションおよびゲームアプリケーションの両方のバージョンの情報をまとめたバージョン情報を当該情報処理装置3cからローカル通信によって受信する。そして、親機の情報処理装置3bは、自機が保有する基本アプリケーションおよびゲームアプリケーションのバージョンを示すバージョン情報と、受信した子機のバージョン情報とを用いて、これらの中で最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有する情報処理装置を特定する。本例では、親機に変更された情報処理装置3bが最も新しいバージョンの基本アプリケーションおよびゲームアプリケーションを保有しているため、自機が最新のバージョンを保有する情報処理装置として特定される。
親機の情報処理装置3bが最新のバージョンの基本アプリケーションおよびゲームアプリケーションを保有しており、子機の情報処理装置3aおよび3cが当該最新のバージョンより古いバージョンの基本アプリケーションおよびゲームアプリケーションを保有している場合、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムが、親機の情報処理装置3bから子機の情報処理装置3aおよび3cへそれぞれローカル通信によって送信される。なお、親機の情報処理装置3bから送信される上記基本更新プログラムは、上記最新のバージョンのゲームアプリケーションを実行して通信ゲームを可能にするために必要となる当該基本更新プログラムの一部だけでもよい。また、基本アプリケーションを最新のバージョンに更新しなくても、最新のバージョンのゲームアプリケーションの実行が可能である場合、親機の情報処理装置3bは、最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを子機に送信しなくてもよい。この場合、親機の情報処理装置3bから、後述する最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムの送信が開始される。
親機の情報処理装置3bから基本更新プログラムを受信した子機の情報処理装置3aは、当該基本更新プログラムを用いて自機が保有する基本アプリケーションを上記最新のバージョンに更新し、当該更新を適用するために親機との間の接続を一時的に切断した上で再起動を行う。そして、子機の情報処理装置3aは、更新処理が終了した後、親機の情報処理装置3bとの間の接続を再開して自機が保有する基本アプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3bにローカル通信によって送信する。また、親機の情報処理装置3bから基本更新プログラムを受信した子機の情報処理装置3cは、当該基本更新プログラムを用いて自機が保有する基本アプリケーションを上記最新のバージョンに更新し、当該更新を適用するために親機との間の接続を一時的に切断した上で再起動を行う。そして、子機の情報処理装置3cは、更新処理が終了した後、親機の情報処理装置3bとの間の接続を再開して自機が保有する基本アプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3bにローカル通信によって送信する。
なお、基本アプリケーションの更新段階が3段階以上ある場合も、送信される基本更新プログラムは、最も初期のバージョンから上記最新のバージョンに更新するためのものでもよいし、各機が保有するバージョンから上記最新のバージョンに更新するためのものでもよい。前者の場合、基本更新プログラムを受信した各機において、最も初期のバージョンから自機が保有するバージョンへ更新するための基本更新プログラムを受信した基本更新プログラムから取り除き、当該取り除いた後の基本更新プログラムを用いて自機のバージョンから上記最新のバージョンに基本アプリケーションを更新すればよい。この場合、各機に送信される基本更新プログラムは、各機におけるバージョンが異なる場合であっても同じ基本更新プログラムが送信されることになる。
次に、親機の情報処理装置3bは、各機が保有する基本アプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置3bは、子機の情報処理装置3aから受信した更新情報と子機の情報処理装置3cから受信した更新情報と自機のバージョン情報とに基づいて、各機が保有する基本アプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有する基本アプリケーションのバージョンが揃った場合、親機の情報処理装置3bは、基本アプリケーションの更新が完了した子機へ、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムをそれぞれローカル通信によって送信する。なお、親機の情報処理装置3bは、各子機の基本アプリケーションのバージョンが揃う前に、上記最新のバージョンの基本アプリケーションに更新されたことを示す更新情報を受信したことに応じて、基本アプリケーションの更新が完了した子機から順に、上記最新のバージョンのゲームアプリケーションに更新するためのゲーム更新プログラムをローカル通信によって送信してもよい。
親機の情報処理装置3bからゲーム更新プログラムを受信した子機の情報処理装置3aは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置3aは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3bにローカル通信によって送信する。また、親機の情報処理装置3bからゲーム更新プログラムを受信した子機の情報処理装置3cは、当該ゲーム更新プログラムを用いて自機が保有するゲームアプリケーションを上記最新のバージョンに更新する。そして、子機の情報処理装置3cは、更新処理が終了した後、自機が保有するゲームアプリケーションが上記最新のバージョンに更新されたことを示す更新情報を、親機の情報処理装置3bにローカル通信によって送信する。
次に、親機の情報処理装置3bは、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定するバージョン特定処理を行う。例えば、親機の情報処理装置3bは、子機の情報処理装置3aから受信した更新情報と子機の情報処理装置3aから受信した更新情報と自機のバージョン情報とに基づいて、各機が保有するゲームアプリケーションのバージョンが揃ったか否かを判定する。そして、各機が保有するゲームアプリケーションのバージョンが揃った場合、情報処理装置3a〜3cの間で上記通信ゲームを行うことが可能になったと判定して、情報処理装置3a〜3cの間で上記通信ゲームを開始する。そして、情報処理装置3a〜3cの間でゲームデータがローカル通信によって送受信されることによって、上記最新のバージョンのゲームアプリケーションによる通信ゲーム処理が進行する。
なお、上述した説明では、最新のバージョンの基本アプリケーションを保有している情報処理装置3が親機となる例を用いた。これによって、親機が保有する基本アプリケーションが古いことに起因する処理エラー(例えば、子機との情報の送受信、自機が親機となったグループ管理等、ゲームアプリケーションとは直接関係がない処理において適切な処理ができない)を防止することができる。このような効果を期待しない場合、ゲームアプリケーションを最新のバージョンに更新する場合と同様に、最新のバージョンの基本アプリケーションを保有している情報処理装置3を子機に設定した状態で、基本アプリケーションの更新処理を行ってもよい。
次に、情報処理装置3において行われる処理の詳細を説明する。まず、図7を参照して、情報処理装置3において行われる処理において用いられる主なデータについて説明する。なお、図7は、情報処理装置3のメモリ35に記憶される主なデータおよびプログラムの一例を示す図である。
図7に示すように、メモリ35のデータ記憶領域には、デバイスIDデータDa、バージョン情報データDb、親子設定データDc、送信データDd、受信データDe、バージョン特定データDf、ゲーム処理データDg、および画像データDh等が記憶される。なお、メモリ35には、図7に示す情報に含まれるデータの他、ユーザ操作に関連するデータ、実行するアプリケーションで用いるデータ等、処理に必要なデータが適宜記憶される。また、メモリ35のプログラム記憶領域には、通信プログラムやゲームプログラム等を構成する各種プログラム群Paが記憶される。例えば、各種プログラム群Paは、基本アプリケーションPa1、基本更新プログラムPa2、ゲームアプリケーションPa3、ゲーム更新プログラムPa4等が含まれている。
デバイスIDデータDaは、情報処理装置3毎に識別が可能となるユニークな符号(デバイスID)を示すデータであり、例えばデバイス識別のための標識となる改変不可能な文字列を示すデータである。そして、デバイスIDデータDcには、自機である情報処理装置3に対して予め設定されているデバイスIDが格納されている。
バージョン情報データDbは、自機である情報処理装置3に保有されている基本アプリケーションPa1のバージョンを示す情報を示すデータ、および自機である情報処理装置3に保有されているゲームアプリケーションPa3のバージョンを示す情報を示すデータを含んでいる。
親子設定データDcは、現在自機が参加している装置グループにおいて、自機が親機および子機の何れに設定されているのかを示すデータと、当該装置グループにおける他機の情報(親機または子機の設定情報、デバイスID情報等)を示すデータとを含んでいる。
送信データDdは、他の情報処理装置3へローカル通信を用いて送信するデータとして登録されたデータである。受信データDeは、他の情報処理装置3からローカル通信を用いて受信したデータである。
バージョン特定データDfは、現在自機が参加している装置グループにおいて、当該グループに属する装置毎に保有されているアプリケーションのバージョンを示すデータである。
ゲーム処理データDgは、複数の情報処理装置3を用いた通信ゲームを行う際に用いられるデータである。画像データDhは、上記通信ゲーム開始前および上記通信ゲーム中において表示画面に画像を表示するためのデータである。
また、基本アプリケーションPa1は、情報処理装置3の動作を制御するためのプログラム(システムソフトウエア)である。基本更新プログラムPa2は、基本アプリケーションPa1の最も初期のバージョンから自機が保有するバージョンに更新するためのプログラムである。ゲームアプリケーションPa3は、上記通信ゲームを行うためのプログラムである。ゲーム更新プログラムPa4は、ゲームアプリケーションPa3の最も初期のバージョンから自機が保有するバージョンに更新するためのプログラムである。
なお、情報処理装置3が最も初期のバージョンの基本アプリケーションおよび/またはゲームアプリケーションを保有している場合、基本更新プログラムおよび/またはゲーム更新プログラムを保有していない場合もあり得る。この場合、基本更新プログラムPa2および/またはゲーム更新プログラムPa4には、更新プログラムが格納されていない状態でもよい。
次に、図8および図9を参照して、情報処理装置3において行われる処理の詳細を説明する。なお、図8は、情報処理装置3において実行される前半の処理の一例を示すフローチャートである。図9は、情報処理装置3において実行される後半の処理の一例を示すフローチャートである。ここで、図8および図9に示すフローチャートにおいては、情報処理システム1における処理のうち、情報処理装置3間での通信が可能となった状態において当該情報処理装置3間で行われる通信に関する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図8および図9では、CPU34が実行する各ステップを「S」と略称する。
本実施形態においては、図8および図9に示す一連の処理は、CPU34が、プログラム記憶部36に記憶される通信プログラムやゲームプログラムを実行することによって行われる。なお、図8および図9に示す処理が開始されるタイミングは任意である。このとき、通信プログラムは、適宜のタイミングでその一部または全部がメモリ35に読み出され、CPU34によって実行される。これによって、図8および図9に示す一連の処理が開始される。なお、通信プログラムおよびゲームプログラムは、プログラム記憶部36に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置3に着脱可能な記憶媒体から取得されてメモリ35に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ35に記憶されてもよい。
また、図8および図9に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU34が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
図8において、CPU34は、初期設定を行い(ステップS100)、次のステップに処理を進める。例えば、CPU34は、以降の処理に用いる各パラメータを初期化する。また、CPU34は、自機のデバイスIDを用いてデバイスIDデータDaを初期設定し、自機が保有している基本アプリケーションおよびゲームアプリケーションそれぞれのバージョンを示す情報を用いてバージョン情報データDbを初期設定する。
次に、CPU34は、親子設定処理を行い(ステップS101)、次のステップに処理を進める。例えば、ローカル通信を用いて通信可能な複数の情報処理装置3の間で所定の通信ゲームに参加を募る場合、最初に当該通信ゲームに参加するメンバーを招集した場合に親機に設定され、当該招集に応じて参加した場合に子機に設定される。なお、上記親子設定処理においては、情報処理装置3の間で親子設定データがローカル通信によってやり取りされることによって、親機に設定された情報処理装置3のユーザ名(デバイスID)および子機に設定された情報処理装置3のユーザ名(デバイスID)等が、当該情報処理装置3の間で共有される。そして、CPU34は、親機/子機が区別されたデバイスIDの情報を用いて、親子設定データDcを更新する。
次に、CPU34は、親子設定データDcを参照して、自機が親機に設定されているか否かを判定する(ステップS102)。そして、CPU34は、自機が親機に設定されている場合、ステップS103に処理を進める。一方、CPU34は、自機が子機に設定されている場合、ステップS131に処理を進める。
ステップS103において、親機に設定されている情報処理装置3のCPU34は、子機に設定されている他の情報処理装置3からバージョン情報または更新情報を受信して、次のステップに処理を進める。ここで、バージョン情報は、送信元の情報処理装置3が保有する基本アプリケーションおよびゲームアプリケーションのバージョンを示す情報であり、当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報を含んでいる。また、更新情報は、送信元の情報処理装置3が保有する基本アプリケーションが最新のバージョンに更新されたことを示す情報である。例えば、CPU34は、受信したバージョン情報または更新情報を用いてバージョン情報データDbを更新して各機のバージョン情報を管理する。
次に、CPU34は、バージョン特定処理を行い(ステップS104)、次のステップに処理を進める。例えば、CPU34は、上記ステップS103において受信したバージョン情報または更新情報と自機のバージョン情報とを用いて、上記通信ゲームに参加する情報処理装置3それぞれが保有している基本アプリケーションおよびゲームアプリケーションのバージョンを特定し、当該ゲームアプリケーションを実行する場合に必要となる基本アプリケーションのバージョンを示す情報に基づいて基本アプリケーションの更新が必要か否かを判定する。そして、CPU34は、上記通信ゲームに参加する情報処理装置3の中で最新のバージョンの基本アプリケーションおよびゲームアプリケーションを保有している情報処理装置3を特定する。ここで、「最新のバージョン」とは、上記通信ゲームに参加する情報処理装置3が保有する基本アプリケーションやゲームアプリケーションの中で最も新しいバージョンという意味であり、世の中に配布されている最新バージョンであるとは限らない。
次に、CPU34は、上記通信ゲームに参加する情報処理装置3全機が保有する基本アプリケーションが最新のバージョンに揃ったか否か(基本アプリケーションの更新が必要か否か)を判定する(ステップS105)。そして、CPU34は、上記通信ゲームに参加する情報処理装置3全機が保有する基本アプリケーションが最新のバージョンに揃った場合(基本アプリケーションの更新が不要である場合)、ステップS111(図9参照)に処理を進める。一方、CPU34は、上記通信ゲームに参加する情報処理装置3全機が保有する基本アプリケーションが最新のバージョンに揃っていない場合(基本アプリケーションの更新が必要である場合)、ステップS106に処理を進める。
ステップS106において、CPU34は、上記通信ゲームに参加する情報処理装置3全機の中で、自機が保有する基本アプリケーションが最新のバージョンであるか否かを判定する。そして、CPU34は、自機が最新のバージョンの基本アプリケーションを保有している場合、ステップS107に処理を進める。一方、CPU34は、他の子機が最新のバージョンの基本アプリケーションを保有している場合、ステップS108に処理を進める。
ステップS107において、CPU34は、最新のバージョンの基本アプリケーションを保有していない他の情報処理装置3(子機)へ基本更新プログラムを送信し、上記ステップS103に処理を進める。ここで、他の情報処理装置3に送信する基本更新プログラムは、自機が保有する最新のバージョンの基本アプリケーションへの更新を可能にするプログラムである。
一方、ステップS106において他の子機が最新のバージョンの基本アプリケーションを保有していると判定した場合、CPU34は、親子再設定処理を行い(ステップS108)、ステップS131に処理を進める。例えば、CPU34は、上記親子再設定処理において、最新のバージョンの基本アプリケーションを保有している他の子機(複数の場合は、グループへの参加が相対的に早い子機)を親機に変更し、自機を子機に変更して、親子設定データDcを更新する。そして、CPU34は、親機/子機の当該変更を示す親子再設定データをローカル通信によって他の情報処理装置3へ送信する。これにより、親機に設定されていた情報処理装置3が親機から子機に変更され、CPU34は、ステップS131に処理を進める際には子機として処理を行う。
上記ステップS102において自機が子機に設定されていると判定した場合、子機に設定されている情報処理装置3のCPU34は、親機に設定されている他の情報処理装置3へバージョン情報を送信(ステップS131)、次のステップに処理を進める。例えば、CPU34は、自機のバージョン情報データDbに格納されているバージョン情報を用いて、親機の情報処理装置3へバージョン情報をローカル通信で送信する。
次に、CPU34は、親機の情報処理装置3から親子再設定データを受信したか否かを判定する(ステップS132)。そして、CPU34は、親機の情報処理装置3から親子再設定データを受信した場合、上記ステップS101に処理を進めて再度親子設定処理を実行する。一方、CPU34は、親機の情報処理装置3から親子再設定データを受信していない場合、ステップS133に処理を進める。
ステップS133において、CPU34は、親機の情報処理装置3から基本更新プログラムを受信したか否かを判定する。そして、CPU34は、親機の情報処理装置3から基本更新プログラムを受信した場合、ステップS134に処理を進める。一方、CPU34は、親機の情報処理装置3から基本更新プログラムを受信していない場合、ステップS141(図9参照)に処理を進める。
ステップS134において、CPU34は、親機の情報処理装置3から送信された基本更新プログラムを用いて、自機が保有する基本アプリケーションを更新し、次のステップに処理を進める。例えば、CPU34は、親機の情報処理装置3から送信された基本更新プログラムを用いて、自機が保有する基本アプリケーションPa1および基本更新プログラムPa2を更新し、当該更新を適用するために親機との間の接続を一時的に切断した上で再起動を行う。そして、CPU34は、更新処理が終了した後、親機との間の接続を再開する。
次に、CPU34は、上記ステップS134において更新後の基本アプリケーションのバージョンを用いて自機のバージョン情報データDbを更新し(ステップS135)、次のステップに処理を進める。
次に、CPU34は、親機の情報処理装置3へ更新情報をローカル通信で送信し(ステップS136)、ステップS141(図9参照)に処理を進める。ここで、上記ステップS141において送信する更新情報は、送信元である自機が保有する基本アプリケーションが最新のバージョンに更新されたことを示す情報である。
図9に進み、ステップS111において、親機に設定されている情報処理装置3のCPU34は、上記通信ゲームに参加する情報処理装置3全機が保有するゲームアプリケーションが最新のバージョンに揃ったか否かを判定する。そして、CPU34は、上記通信ゲームに参加する情報処理装置3全機が保有するゲームアプリケーションが最新のバージョンに揃った場合、ステップS120に処理を進める。一方、CPU34は、上記通信ゲームに参加する情報処理装置3全機が保有するゲームアプリケーションが最新のバージョンに揃っていない場合、ステップS112に処理を進める。
ステップS112において、CPU34は、上記通信ゲームに参加する情報処理装置3全機の中で、自機が保有するゲームアプリケーションが最新のバージョンであるか否かを判定する。そして、CPU34は、自機が最新のバージョンのゲームアプリケーションを保有している場合、ステップS113に処理を進める。一方、CPU34は、他の子機が最新のバージョンのゲームアプリケーションを保有している場合、ステップS114に処理を進める。
ステップS113において、CPU34は、最新のバージョンのゲームプログラムを保有していない他の情報処理装置3(子機)へゲーム更新プログラムを送信し、ステップS118に処理を進める。ここで、他の情報処理装置3に送信するゲーム更新プログラムは、自機が保有する最新のバージョンのゲームアプリケーションへの更新を可能にするプログラムであり、自機のゲーム更新プログラムPa4を用いて送信される。
一方、ステップS112において他の子機が最新のバージョンのゲームアプリケーションを保有していると判定した場合、CPU34は、当該子機に対してゲーム更新プログラムを要求して(ステップS114)、次のステップに処理を進める。例えば、CPU34は、最新のバージョンのゲームアプリケーションを保有している子機(複数の場合は、グループへの参加が相対的に早い子機)に対して、ゲーム更新プログラムを送信するように要求するゲーム更新プログラム要求をローカル通信によって送信する。
次に、CPU34は、最新のバージョンのゲームアプリケーションを保有している子機からゲーム更新プログラムを受信し(ステップS115)、次のステップに処理を進める。
次に、CPU34は、子機に設定された他の情報処理装置3から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションを更新し(ステップS116)、次のステップに処理を進める。例えば、CPU34は、他の情報処理装置3から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションPa3およびゲーム更新プログラムPa4を更新する。
次に、CPU34は、上記ステップS116において更新後のゲームアプリケーションのバージョンを用いて自機のバージョン情報データDbを更新し(ステップS117)、ステップS118に処理を進める。
ステップS118において、CPU34は、子機に設定されている他の情報処理装置3から更新情報を受信して、次のステップに処理を進める。例えば、CPU34は、受信した更新情報を用いてバージョン情報データDbを更新して各機のバージョン情報を管理する。
次に、CPU34は、バージョン特定処理を行い(ステップS104)、上記ステップS111に処理を進める。例えば、CPU34は、上記ステップS118において受信した更新情報、既に受信しているバージョン情報、および自機のバージョン情報を用いて、上記通信ゲームに参加する情報処理装置3それぞれが保有しているゲームアプリケーションのバージョンを特定する。そして、CPU34は、上記通信ゲームに参加する情報処理装置3の中で最新のバージョンのゲームアプリケーションを保有している情報処理装置3を特定する。
一方、上記ステップS111において上記通信ゲームに参加する情報処理装置3全機が保有するゲームアプリケーションが最新のバージョンに揃ったと判定した場合、CPU34は、ゲーム開始処理を行い(ステップS121)、次のステップに処理を進める。例えば、CPU34は、上記通信ゲームに参加する他の情報処理装置3(子機)に対して、当該通信ゲームを開始する旨を示すデータをローカル通信で送信する。
次に、CPU34は、他の情報処理装置3(子機)との間でゲームデータをやり取りすることによって、上記通信ゲームを進行し(ステップS121)、当該フローチャートによる処理を終了する。
ステップS141において、子機に設定されている情報処理装置3のCPU34は、親機に設定されている情報処理装置3からゲーム更新プログラム要求を受信したか否かを判定する。そして、CPU34は、ゲーム更新プログラム要求を受信した場合、ステップS142に処理を進める。一方、CPU34は、ゲーム更新プログラム要求を受信していない場合、ステップS143に処理を進める。
ステップS142において、CPU34は、ゲーム更新プログラム要求に応じて、親機に設定されている情報処理装置3へゲーム更新プログラムを送信して、ステップS143に処理を進める。ここで、親機の情報処理装置3に送信するゲーム更新プログラムは、自機が保有する最新のバージョンのゲームアプリケーションへの更新を可能にするプログラムであり、自機のゲーム更新プログラムPa4を用いて送信される。
ステップS143において、CPU34は、親機に設定されている情報処理装置3からゲーム更新プログラムを受信したか否かを判定する。そして、CPU34は、ゲーム更新プログラムを受信した場合、ステップS144に処理を進める。一方、CPU34は、ゲーム更新プログラムを受信していない場合、ステップS147に処理を進める。
ステップS144において、CPU34は、親機に設定された情報処理装置3から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションを更新し、次のステップに処理を進める。例えば、CPU34は、親機の情報処理装置3から送信されたゲーム更新プログラムを用いて、自機が保有するゲームアプリケーションPa3およびゲーム更新プログラムPa4を更新する。
次に、CPU34は、上記ステップS144において更新後のゲームアプリケーションのバージョンを用いて自機のバージョン情報データDbを更新し(ステップS145)、次のステップに処理を進める。
次に、CPU34は、親機に設定されている情報処理装置3へ更新情報をローカル通信で送信(ステップS146)、ステップS147に処理を進める。ここで、上記ステップS146において送信される更新情報は、送信元である自機が保有するゲームアプリケーションが最新のバージョンに更新されたことを示す情報である。
ステップS147において、CPU34は、親機に設定された情報処理装置3から通信ゲームを開始する旨を示すデータを受信したか否かを判定する。そして、CPU34は、ゲーム開始を示すデータを受信した場合、ステップS148に処理を進める。一方、CPU34は、ゲーム開始を示すデータを受信していない場合、上記ステップS131に戻って処理を繰り返す。
ステップS148において、CPU34は、他の情報処理装置3(親機)との間でゲームデータをやり取りすることによって、上記通信ゲームを進行し、当該フローチャートによる処理を終了する。
このように、上記通信ゲームを行う情報処理システム1によれば、インターネット通信を用いてアプリケーションを更新することができない状況(例えば、サーバに接続できる環境にない場合)であっても、ローカル通信を用いて複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションを実行することができる。
なお、上述した説明では、基本アプリケーションやゲームアプリケーションが更新される際に送受信される更新プログラムや各データが、親機に設定された情報処理装置3を介して行われている。これにより、各情報処理装置3間におけるローカル通信を親機において集中して管理することができるため、当該ローカル通信の制御が容易となる。しかしながら、通信管理を親機に集中させることが不要である場合、親機を介さずに子機に設定された情報処理装置3同士でローカル通信が行われてもよい。例えば、第1の子機に設定された情報処理装置3のみが最新のバージョンのゲームアプリケーションを保有しており、親機に設定された情報処理装置3および第2の子機に設定された情報処理装置3が当該最新のバージョンより古いゲームアプリケーションを保有している場合、第1の子機から親機にゲーム更新プログラムが送信されるととともに、親機を介さずに第1の子機から第2の子機にもゲーム更新プログラムが送信されてもよい。
また、上述したように情報処理装置3は、携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、据置型ゲーム装置、携帯電話機、PDA(Personal Digital Assistant)等のデバイスで構成されるが、上記通信ゲームを行う装置グループ内において、異なる種類のデバイスが含まれていてもかまわない。一例として、据置型ゲーム装置と携帯ゲーム装置とが含まれる装置グループ間においてローカル通信することによって、上記通信ゲームが行われてもかまわない。
また、上述した説明では情報処理や通信処理を情報処理装置3で行う例を用いたが、上記処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置3がさらに他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、情報処理装置3のCPU34が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記各プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
以上のように、本発明は、インターネット通信を用いてアプリケーションを更新することができない状況であっても、複数の情報処理装置間で同じバージョンのアプリケーションに合わせて当該アプリケーションの実行を可能とすること等を目的として、例えば情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法等として有用である。
1…情報処理システム
3…情報処理装置
31…通信部
32…操作部
33…LCD
34…CPU
35…メモリ
36…プログラム記憶部

Claims (15)

  1. ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報をそれぞれ格納した複数の情報処理装置を含む情報処理システムであって、
    前記複数の情報処理装置の少なくとも1つは、前記ユーザアプリケーションの更新プログラムを格納し、
    前記情報処理システムは、
    前記情報処理装置それぞれが有する前記バージョン情報に基づいて、前記複数の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定手段と、
    前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信する更新プログラム送信手段と、
    送信された前記更新プログラムを無線通信により直接受信する更新プログラム受信手段と、
    受信した更新プログラムを用いて、自機のユーザアプリケーションを更新する更新手段とを備える、情報処理システム。
  2. 前記複数の情報処理装置は、自機を子機または前記特定手段を有する親機の何れかに設定する設定手段を、それぞれ備え、
    前記子機は、自機が格納するユーザアプリケーションのバージョン情報を前記親機に送信するバージョン情報送信手段を、さらに備え、
    前記親機は、前記子機から送信された前記バージョン情報を受信するバージョン情報受信手段を、さらに備え、
    前記特定手段は、前記子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、前記最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定する、請求項1に記載の情報処理システム。
  3. 前記最新のバージョンのユーザアプリケーションを格納する情報処理装置が前記親機の場合、
    前記親機は、最新のバージョンのユーザアプリケーションを格納していない子機へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信することによって、前記更新プログラム送信手段として機能し、
    前記子機は、
    前記親機から送信された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
    前記親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項2に記載の情報処理システム。
  4. 前記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに前記情報処理プログラムに含まれる場合、
    前記更新プログラム送信手段は、前記他の子機へ前記更新プログラムを無線通信によりさらに直接送信し、
    前記他の子機は、
    前記親機から送信された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
    前記親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項3に記載の情報処理システム。
  5. 前記最新のバージョンのユーザアプリケーションを格納する情報処理装置が前記子機の場合、
    前記親機は、前記最新のバージョンのユーザアプリケーションを格納する前記子機に当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを要求する要求手段を、さらに備え、
    前記子機は、前記親機から更新プログラムを要求された場合に、当該更新プログラムを当該親機に無線通信により直接送信することによって、前記更新プログラム送信手段として機能し、
    前記親機は、
    前記子機から送信された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
    前記子機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項2に記載の情報処理システム。
  6. 前記最新のバージョンのユーザアプリケーションを格納していない他の子機が、さらに前記情報処理プログラムに含まれる場合、
    前記親機は、前記子機から送信された前記更新プログラムを前記他の子機へ無線通信により直接転送する更新プログラム転送手段を、さらに備え、
    前記他の子機は、
    前記親機から転送された前記更新プログラムを無線通信により直接受信することによって、前記更新プログラム受信手段として機能し、
    前記親機から受信した更新プログラムを用いて、自機のユーザアプリケーションを更新することによって、前記更新手段として機能する、請求項5に記載の情報処理システム。
  7. 前記複数の情報処理装置は、前記ユーザアプリケーションに加えて、少なくとも当該ユーザアプリケーションの実行を制御する基本アプリケーションと当該基本アプリケーションの基本バージョン情報とをそれぞれ格納し、
    前記複数の情報処理装置の少なくとも1つは、前記基本アプリケーションの基本更新プログラムを格納し、
    前記特定手段は、前記情報処理装置それぞれが有する前記基本バージョン情報に基づいて、最新のバージョンの前記基本アプリケーションを格納する情報処理装置をさらに特定し、
    前記更新プログラム送信手段は、前記最新のバージョンの基本アプリケーションを格納する情報処理装置から当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを無線通信によりさらに直接送信し、
    前記更新プログラム受信手段は、送信された前記基本更新プログラムを無線通信によりさらに直接受信し、
    前記更新手段は、受信した基本更新プログラムを用いて、自機の基本アプリケーションをさらに更新する、請求項1に記載の情報処理システム。
  8. 前記更新手段は、自機の基本アプリケーションを更新する場合、受信した前記基本更新プログラムを用いて自機の基本アプリケーションを更新した後、受信した前記更新プログラムを用いて自機のユーザアプリケーションを更新する、請求項7に記載の情報処理システム。
  9. 前記更新プログラム送信手段は、前記最新のバージョンのユーザアプリケーションを実行するために前記基本アプリケーションを最新のバージョンへ更新することが必要な場合に限り、当該最新のバージョンの基本アプリケーションを格納していない情報処理装置へ、当該最新のバージョンの基本アプリケーションに更新するための基本更新プログラムを送信する、請求項7または8に記載の情報処理システム。
  10. 前記複数の情報処理装置は、自機を子機または前記特定手段を有する親機の何れかに設定する設定手段を、それぞれ備え、
    前記子機は、自機が格納するユーザアプリケーションのバージョン情報と自機が格納する基本アプリケーションの基本バージョン情報とをまとめて前記親機に送信するバージョン情報送信手段を、さらに備え、
    前記親機は、前記子機から送信された前記バージョン情報および前記基本バージョン情報を受信するバージョン情報受信手段を、さらに備え、
    前記特定手段は、前記子機から受信したバージョン情報と自機のユーザアプリケーションのバージョン情報とに基づいて、前記最新のバージョンのユーザアプリケーションを格納する情報処理装置を特定するとともに、前記子機から受信した基本バージョン情報と自機の基本アプリケーションの基本バージョン情報とに基づいて、前記最新のバージョンの基本アプリケーションを格納する情報処理装置を特定する、請求項7乃至9の何れか1つに記載の情報処理システム。
  11. 前記複数の情報処理装置は、前記ユーザアプリケーションを実行することによって他の情報処理装置とデータの送受信を行い、当該送受信したデータに基づいて情報処理を行う情報処理手段を、それぞれ備える、請求項1乃至10の何れか1つに記載の情報処理システム。
  12. 前記設定手段は、前記最新のバージョンの基本アプリケーションを格納する情報処理装置が前記子機の場合、当該子機を親機に変更するとともに、他の情報処理装置を子機に変更する、請求項10に記載の情報処理システム。
  13. ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報をそれぞれ格納した複数の情報処理装置を含む情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
    前記複数の情報処理装置の少なくとも1つは、前記ユーザアプリケーションの更新プログラムを格納し、
    前記情報処理方法は、
    前記情報処理装置それぞれが有する前記バージョン情報に基づいて、前記複数の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定ステップと、
    前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信する更新プログラム送信ステップと、
    送信された前記更新プログラムを無線通信により直接受信する更新プログラム受信ステップと、
    受信した更新プログラムを用いて、自機のユーザアプリケーションを更新する更新ステップとを含む、情報処理方法。
  14. ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報を格納した情報処理装置であって、
    他の情報処理装置それぞれが有する前記バージョン情報に基づいて、自機および当該他の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定手段と、
    前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信させる更新プログラム送信制御手段と、
    前記送信された更新プログラムを用いて、自機のユーザアプリケーションを更新させる更新制御手段とを備える、情報処理装置。
  15. ユーザアプリケーションおよび当該ユーザアプリケーションのバージョン情報を格納した情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
    前記コンピュータを、
    他の情報処理装置それぞれが有する前記バージョン情報に基づいて、自機および当該他の情報処理装置内において最新のバージョンの前記ユーザアプリケーションを格納する情報処理装置を特定する特定手段と、
    前記最新のバージョンのユーザアプリケーションを格納する情報処理装置から当該最新のバージョンのユーザアプリケーションを格納していない情報処理装置へ、当該最新のバージョンのユーザアプリケーションに更新するための更新プログラムを無線通信により直接送信させる更新プログラム送信制御手段と、
    前記送信された更新プログラムを用いて、自機のユーザアプリケーションを更新させる更新制御手段として機能させる、情報処理プログラム。
JP2017196287A 2017-10-06 2017-10-06 情報処理システムおよび情報処理方法 Active JP6679553B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017196287A JP6679553B2 (ja) 2017-10-06 2017-10-06 情報処理システムおよび情報処理方法
US15/911,528 US10733299B2 (en) 2017-10-06 2018-03-05 System and method for updating a plurality of information processing apparatuses in a local network using received update program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017196287A JP6679553B2 (ja) 2017-10-06 2017-10-06 情報処理システムおよび情報処理方法

Publications (2)

Publication Number Publication Date
JP2019070928A true JP2019070928A (ja) 2019-05-09
JP6679553B2 JP6679553B2 (ja) 2020-04-15

Family

ID=65993938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017196287A Active JP6679553B2 (ja) 2017-10-06 2017-10-06 情報処理システムおよび情報処理方法

Country Status (2)

Country Link
US (1) US10733299B2 (ja)
JP (1) JP6679553B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315606A (zh) * 2017-06-14 2017-11-03 北京小米移动软件有限公司 应用更新方法及装置
JP7380157B2 (ja) * 2019-12-06 2023-11-15 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249748A (ja) * 2006-03-17 2007-09-27 Fujitsu Access Ltd バージョン管理機能を有するネットワーク機器
JP2008152553A (ja) * 2006-12-18 2008-07-03 Mizuho Information & Research Institute Inc データ更新処理装置、データ更新処理方法及びデータ更新処理プログラム
JP2008168649A (ja) * 2007-01-05 2008-07-24 Mazda Motor Corp 車両用制御システム
JP2009211291A (ja) * 2008-03-03 2009-09-17 Nec Computertechno Ltd 更新システム、情報処理装置、更新方法、更新プログラム及び記録媒体
JP2011002874A (ja) * 2009-06-16 2011-01-06 Brother Industries Ltd 通信装置
JP2012145985A (ja) * 2011-01-06 2012-08-02 Nintendo Co Ltd 通信システム、情報処理装置、通信プログラムおよび通信方法
WO2014097436A1 (ja) * 2012-12-20 2014-06-26 Necディスプレイソリューションズ株式会社 制御装置、表示装置、ファームウェア更新方法、およびファームウェア更新プログラム
WO2016149908A1 (zh) * 2015-03-24 2016-09-29 华为技术有限公司 一种终端系统的升级方法、终端及系统
JP2017502396A (ja) * 2013-12-06 2017-01-19 ゼットティーイー コーポレーションZte Corporation アプリケーションプログラムのアップデート処理方法及び端末機器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437722B2 (en) * 2004-07-19 2008-10-14 Accurev, Inc. Determining which software component versions of an issue resolution are included in a version of a software development project at a particular time
US8832681B1 (en) * 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
JP2012018657A (ja) 2010-06-11 2012-01-26 Nintendo Co Ltd 情報処理端末、情報処理システム、情報処理プログラム
US9158526B1 (en) * 2010-11-10 2015-10-13 Open Invention Network, Llc Application update using multiple network connections
US8826265B2 (en) * 2011-10-24 2014-09-02 Texas Instruments Incorporated Data concentrator initiated multicast firmware upgrade
US9420065B2 (en) * 2013-01-18 2016-08-16 Google Inc. Peer-to-peer software updates
US9298439B2 (en) * 2013-07-16 2016-03-29 Dropbox, Inc. System and method for installing a client application using a light installer
US10045427B2 (en) * 2014-09-29 2018-08-07 Philips Lighting Holding B.V. System and method of autonomous restore point creation and restoration for luminaire controllers

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249748A (ja) * 2006-03-17 2007-09-27 Fujitsu Access Ltd バージョン管理機能を有するネットワーク機器
JP2008152553A (ja) * 2006-12-18 2008-07-03 Mizuho Information & Research Institute Inc データ更新処理装置、データ更新処理方法及びデータ更新処理プログラム
JP2008168649A (ja) * 2007-01-05 2008-07-24 Mazda Motor Corp 車両用制御システム
JP2009211291A (ja) * 2008-03-03 2009-09-17 Nec Computertechno Ltd 更新システム、情報処理装置、更新方法、更新プログラム及び記録媒体
JP2011002874A (ja) * 2009-06-16 2011-01-06 Brother Industries Ltd 通信装置
JP2012145985A (ja) * 2011-01-06 2012-08-02 Nintendo Co Ltd 通信システム、情報処理装置、通信プログラムおよび通信方法
WO2014097436A1 (ja) * 2012-12-20 2014-06-26 Necディスプレイソリューションズ株式会社 制御装置、表示装置、ファームウェア更新方法、およびファームウェア更新プログラム
JP2017502396A (ja) * 2013-12-06 2017-01-19 ゼットティーイー コーポレーションZte Corporation アプリケーションプログラムのアップデート処理方法及び端末機器
WO2016149908A1 (zh) * 2015-03-24 2016-09-29 华为技术有限公司 一种终端系统的升级方法、终端及系统

Also Published As

Publication number Publication date
US10733299B2 (en) 2020-08-04
US20190108345A1 (en) 2019-04-11
JP6679553B2 (ja) 2020-04-15

Similar Documents

Publication Publication Date Title
US8396925B2 (en) Information processing device and method to expand content reception network
CN102077191B (zh) 媒体内容和订阅内容的无线同步
CN105009614B (zh) 用于使用近场通信进行对等wi-fi测距的方法和设备
US9124714B2 (en) Information processing device and method, program, and information processing system
KR101738611B1 (ko) 스마트 기기간 게임 어플리케이션 프로그램 및 리소스 파일을 전송하기 위한 장치, 어플리케이션 프로그램, 및 그 전송 방법
US11881910B2 (en) File transmission/reception device and control method of file transmission/reception device
JP6396365B2 (ja) 情報処理システム、情報処理装置およびデータ取得方法
JP2018047100A (ja) 情報処理システム、サーバ、情報処理プログラム、および、オブジェクト付与方法
JP2008113345A (ja) 通信制御管理システム及び方法
JP2014115973A (ja) 情報処理装置、端末システム、情報処理プログラム、および、アプリケーションの更新用データの取得方法
JP6216051B2 (ja) ハードウェアデバイスのためのソフトウエア配信アーキテクチャ
JP6679553B2 (ja) 情報処理システムおよび情報処理方法
JP2015173930A (ja) ゲームシステム、記憶制御装置、及びプログラム
JP2016025466A (ja) 通信システム、通信方法、通信装置及びその制御方法、コンピュータプログラム
JP2016001391A (ja) 情報処理装置および情報処理システム
JP2017187889A (ja) 設定実行システムおよび設定実行プログラム
US20080215595A1 (en) Data distribution system, terminal apparatus, connection candidate introduction apparatus, information processing method and recording medium with program recorded thereon
JP2014140219A (ja) 通信装置、通信制御プログラム、通信制御方法、および通信システム
JP2017091188A (ja) 情報処理装置及びプログラム
KR20160089988A (ko) 이동통신 단말기 간의 컨텐츠 공유 방법 및 이를 위한 통신 시스템
TWI528320B (zh) A casino member operating device software operating system
JP2015052889A (ja) 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
JP2013111438A (ja) ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法
US20230097998A1 (en) Storage medium storing game program, game system, game apparatus, and game processing method
KR20170113482A (ko) 스마트 기기간 게임 어플리케이션 프로그램 및 리소스 파일을 전송하기 위한 장치, 어플리케이션 프로그램, 및 그 전송 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200318

R150 Certificate of patent or registration of utility model

Ref document number: 6679553

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250