JP2012018657A - 情報処理端末、情報処理システム、情報処理プログラム - Google Patents

情報処理端末、情報処理システム、情報処理プログラム Download PDF

Info

Publication number
JP2012018657A
JP2012018657A JP2010214528A JP2010214528A JP2012018657A JP 2012018657 A JP2012018657 A JP 2012018657A JP 2010214528 A JP2010214528 A JP 2010214528A JP 2010214528 A JP2010214528 A JP 2010214528A JP 2012018657 A JP2012018657 A JP 2012018657A
Authority
JP
Japan
Prior art keywords
program
information processing
processing apparatus
information
application
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.)
Pending
Application number
JP2010214528A
Other languages
English (en)
Inventor
Kazuhiro Wabe
一祐 和部
Eiji Tokunaga
英治 徳永
Takahiro Yamazaki
孝裕 山崎
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 JP2010214528A priority Critical patent/JP2012018657A/ja
Priority to EP11153645.4A priority patent/EP2395428B1/en
Priority to US13/027,723 priority patent/US9588748B2/en
Priority to CN201110159094.3A priority patent/CN102279759B/zh
Publication of JP2012018657A publication Critical patent/JP2012018657A/ja
Priority to US15/413,155 priority patent/US10296319B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】ユーザの特別な操作を必要とせずに、新たなアプリケーションの新規インストールや、各種アプリケーションやシステムのアップデートを行うことのできる情報処理装置を提供すること。
【解決手段】情報処理装置は、接続手段と、受信手段と、インストール手段とを備える。接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のプログラムの受信処理を自動的に行う。インストール手段は、プログラムの情報処理装置へのインストール処理を自動的に行う。
【選択図】図50

Description

本発明は、通信機能を備えた情報処理端末に関し、より特定的には、システムやアプリケーションのインストール処理が実行可能な情報処理端末等に関する。
近年、デジタルコンテンツを、ネットワークを介して配信するためのシステムが主流となりつつある。その中で、コンテンツをプッシュ配信するための技術が存在している。例えば特許文献1に開示されるシステムでは、探索画面で一旦コンテンツの探索を行った後、サーバにメールを送信すると、以降、探索を行った探索条件に合致する新規コンテンツが配信された場合、サーバからコンテンツのお試し版がメールに添付されて配信される。
特開2005−242399号公報
しかし、ネットワークを用いたコンテンツ配信のシステムの多くは、ユーザが、手に入れたいコンテンツに能動的にアクセスしてコンテンツのダウンロードを行う必要がある。すなわち、魅力的なコンテンツがあったとしても、能動的にアクセスを行わないユーザに対してはコンテンツを知らせる方法がなく、自ら積極的にアクセスを行うことは望まないが魅力的なコンテンツを手軽に知りたいというユーザの要望と、多くの人的あるいは金銭的なリソースを用いて制作したコンテンツを多くの人に知らせたいというコンテンツ制作者の要望があった。この点、特許文献1に開示されるシステムでは、コンテンツの配信後、当該コンテンツがすぐに実行可能な状態にまでもっていくかどうかという点については、上記特許文献1では考慮されていない。(例えば、インストールを要するプログラムが配信された場合、ユーザは手動にてインストーラの実行を必要とすることになる。)
それ故に、本発明の目的は、ユーザの特別な操作を必要とせずに、新たなアプリケーションの新規インストールや、各種アプリケーションやシステムのアップデートを行うことのできる情報処理装置等を提供することにある。
上記目的を達成するために、本発明は以下のような構成を採用した。
本発明の情報処理装置は、接続手段と、受信手段と、インストール手段とを備える。接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のプログラムの受信処理を自動的に行う。インストール手段は、プログラムの情報処理装置へのインストール処理を自動的に行う。
上記構成により、自動的にプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに(ユーザ側からの能動的なアクセスを行わなくとも)、新しいアプリケーションやアップデートプログラムを提供できる。また、主にソフトウェア開発者の立場からすると、以下のような利点がある。新規のアプリケーションをインストールするためにユーザ側から能動的なアクセスを要するような環境では、後にアプリケーションに機能追加等が行われたとき、ユーザに機能追加のための作業(能動的なアクセス)を行ってもらえる可能性が低い。そのために、ハードウェアを所持するユーザのうち最も多くのユーザにアプリケーションを提供するためには、開発スケジュールをハードウェアの発売に間に合わせプリインストールさせる必要があった。しかし、本発明によれば、ハードウェアの発売後にソフトウェアの開発スケジュールを設定することも可能となり、ソフトウェア開発者のソフト開発にかかる負担を軽減することが可能となる。
他の構成例として、情報処理装置は、非使用状態と使用状態とを切り替える切替手段を更に備え、接続手段は、情報処理装置が少なくとも非使用状態で稼働しているときに、自動的にサーバに接続し、受信手段は、情報処理装置が少なくとも非使用状態において、受信処理を自動的に行い、インストール手段は、少なくとも非使用状態において、受信手段が受信したプログラムのインストール処理を自動的に行うようにしてもよい。
上記構成例によれば、非使用状態でもプログラムの受信及びインストールが行われるので、効率的にインストールを行うことができるとともに、ユーザの気付かないうちにプログラムの新規インストールが行われるため、ユーザに驚きを与えることができる。
更に他の構成例として、非使用状態は、使用状態よりも消費電力が少ないようにしてもよい。
上記構成例によれば、例えば、いわゆる省電力モードのような、消費電力が小さい状態にあっても、プログラムのインストールを自動的に行うことができる。
更に他の構成例として、情報処理装置は、ユーザにより開閉の操作が可能であり、切替手段は、情報処理装置が開状態であるときに使用状態に切り替え、閉状態であるときに非使用状態に切り替えるようにしてもよい。
上記構成例によれば、閉状態であっても、プログラムのインストールを自動的に行うことができる。
更に他の構成例として、情報処理装置は、表示装置を更に備え、切替手段は、ユーザによる所定の操作に応じて使用状態と非使用状態とを切り替え使用状態においては表示装置に電力が供給され、非使用状態においては表示装置への電力は供給されないようにしてもよい。
上記構成例によれば、表示装置に電力が供給されていない状態にあっても、プログラムのインストールを自動的に行うことができる。
更に他の構成例として、情報処理装置は、携帯型情報端末であり、自動的に繰り返し所定のアクセスポイントを探索する探索手段を更に備え、接続手段は、探索手段によってアクセスポイントが検出されたとき、当該アクセスポイントに接続し、当該アクセスポイントを介してサーバと接続を行うようにしてもよい。
上記構成例によれば、自動的に繰り返しアクセスポイントを探索するので、常に移動するため固定した接続環境に存在することのない携帯型情報端末であっても、ユーザの操作を必要とせず自動的にプログラムのインストールを行うことができる。
更に他の構成例として、情報処理装置は、プログラムの受信処理のそれぞれについて、当該受信が完了したか否かを示す受信状況を記憶する受信状況記憶手段を更に備え、受信手段は、受信状況に基づいて、受信が完了していないことが示されている受信処理を再開する。
上記構成例によれば、頻繁に場所の移動がなされ常に同様の電波環境にいるとは限らない情報処理装置において、途中で接続が切断されても、その後に接続が回復したような際に、途中から未完了の受信処理を再開できるので、切断前の受信処理を無駄にせず、効率の良い受信処理が実現できる。
更に他の構成例として、情報処理装置は、1以上の前記プログラムの受信処理をそれぞれ規定する1以上のタスクを設定するタスク設定手段を更に備え、受信状況記憶手段は、当該タスクによって規定される受信処理が完了したか否かを示す受信状況をタスク毎に記憶し、受信手段は、受信が完了していないことを示す受信状況が記憶されているタスクによって規定される受信処理を再開するようにしてもよい。
上記構成例によれば、頻繁に場所の移動がなされ常に同様の電波環境にいるとは限らない情報処理装置において、途中で接続が切断されても、その後に接続が回復したような際に、途中から未完了の受信処理を再開できるので、切断前の受信処理を無駄にせず、効率の良い受信処理が実現できる。
更に他の構成例として、情報処理装置は、接続手段によってサーバへの接続が行われたとき、受信可能なプログラムについての情報である配信中プログラム情報をサーバから受信する配信情報受信手段と、配信中プログラム情報を受信したとき、当該配信中プログラム情報によって特定される受信可能なプログラムの受信処理を行うか否かを所定の条件に基づいて決定する受信可否決定手段とを備え、受信手段は、受信可否決定手段によって受信処理を行うと決定されたプログラムの受信処理を行うようにしてもよい。
上記構成例によれば、複数のプログラムの更新があったときに、所定条件を満たすものだけを受信することができるので、効率よく受信処理およびインストール処理を行うことができる。なお、ここでいう所定条件とは、例えば、ある種類のプログラムを所持しているか否かや、同じバージョンを所持しているか否か、情報処理装置のユーザの年齢とプログラムの想定する利用者の年齢とが合致するか否か、等が挙げられる。
更に他の構成例として、情報処理装置は、所定のプログラムの実行履歴を示す実行履歴データを記憶する実行履歴記憶手段を更に備え、配信中プログラム情報は、受信可能な受信条件付きプログラムを特定する情報及び当該受信可能なプログラムを受信するために必要となる所定のプログラムの実行履歴に関する条件が受信のための条件を含み、受信可否決定手段は、実行履歴データで示される実行履歴が前記受信のための条件を満たしているときに、受信条件付きプログラムの受信処理を行うと決定し、当該実行履歴が当該受信のための条件を満たしていないときは、受信条件付きプログラムの受信処理を行わないと決定してもよい。
上記構成例によれば、アプリの実行履歴に関する所定の条件が満たされると所定のプログラムが自動的にインストールされるため、ユーザに驚きを与えると共に、ゲームのようなプログラムについて、新たなプログラムをインストールさせるためにより多くプレイさせる動機付けを提供することができる。
更に他の構成例として、情報処理装置は、接続手段によって前記サーバへの接続が行われたとき、受信可能なプログラムについての情報である配信中プログラム情報をサーバから受信する配信情報受信手段と、配信中プログラム情報によって特定される受信可能プログラムが既に自機にインストールされているか否かを判定するインストール状況判定手段を更に備え、受信手段は、配信中プログラム情報によって特定される受信可能プログラムの受信処理を行い、インストール手段は、受信手段によって受信されたプログラムのうち、インストール状況判定手段によって既にインストール済みと判定されたプログラムについては当該プログラムのアップデート処理を行い、まだインストールされていないと判定されたプログラムについては新規インストール処理を行うようにしてもよい。
上記構成例によれば、配信されている複数のプログラムのうち、ユーザが所持していないものについては新規インストールがなされ、既に所持しているものはアップデートがそれぞれ自動的に行われることになり、ユーザの利便性をより高めることができる。
更に他の構成例として、情報処理装置は、接続手段によってサーバへの接続が行われたとき、受信可能なアプリケーションプログラムの一覧を示す配信中アプリ情報をサーバから受信する配信情報受信手段と、配信中アプリ情報を受信したとき、当該配信中アプリ情報によって特定される受信可能なアプリケーションプログラムの受信処理を行うか否かを所定の条件に基づいて決定する受信可否決定手段とを備え、受信手段は、受信可否決定手段によって受信処理を行うと決定されたアプリケーションプログラムの受信処理を行うようにしてもよい。
上記構成例によれば、複数のアプリケーションプログラムが配信されている場合、条件を満たすものだけを受信することができるので、効率よく受信処理およびインストール処理を行うことができる。
更に他の構成例として、情報処理装置は、当該情報処理装置のユーザの年齢を使用者年齢情報として当該情報処理装置内に記憶する年齢情報記憶手段を更に備え、配信中プログラム情報は、受信可能な各プログラムについての対象年齢を表す情報を含み、受信可否決定手段は、使用者年齢情報と各プログラムの対象年齢とを比較し、比較結果が所定の条件を満たしたとき、当該プログラムの受信処理を行うと決定するようにしてもよい。
上記構成例によれば、年齢制限を設けているため、ユーザに不相応なプログラムの実行のみならず受信をさせないことができ、効率的に受信処理を行うことができる。
更に他の構成例によれば、情報処理装置は、接続手段によってサーバへの接続が行われたとき、受信可能なプログラムについての情報である配信中プログラム情報及び当該配信中プログラム情報で示される各プログラムを受信する順番を表した優先度情報を当該サーバから受信する配信情報受信手段を更に備え、受信手段は、配信中プログラム情報によって特定されるプログラムを、優先度情報に基づいた順番にて受信するようにしてもよい。
上記構成例によれば、優先度が設定されるので、緊急を要するプログラムや(配信者側の)お薦めプログラムを(配信者側がサーバの優先度情報を操作することで)より早く受信しインストールすることができる。
更に他の構成例として、情報処理装置は、インストールされたプログラムの一覧を作成し出力する一覧作成手段と、情報処理装置への所定の操作に応じて、一覧からいずれかのプログラムを選択する選択手段と、選択されたプログラムのアンインストール処理を行うアンインストール手段とを更に備えてもよい。
上記構成例によれば、自動的にインストールされたプログラムについては、後にユーザの操作によりアンインストールできるため、ユーザとって、新たなプログラムの導入に不満が生じたときは、過去の状態に戻すことも容易となる。また、従来はプログラムの導入をユーザに能動的に行わせていたところ、プログラムの削除をユーザに能動的に行わせることができる。
更に、他の構成例として、情報処理装置は、アンインストール手段によってアンインストールされたプログラムを特定するための削除プログラム特定情報を記憶する削除履歴記憶手段を更に備え、受信手段は、配信中プログラム情報で示されるプログラムのうち、削除プログラム特定情報で特定されるプログラムについては、受信処理を行わないようにしてもよい。
上記構成例によれば、ユーザの意思によって削除されたプログラムについては、自動的にインストールされることを防ぐことができ、ユーザの利便性を高めることができる。
更に他の構成例として、情報処理装置は、ユーザの所定の操作に応じて、情報処理装置用のプログラムが登録された所定のサーバに接続し、ユーザが希望するプログラムを、削除プログラム特定情報に含まれているプログラムであるか否かにかかわらず受信するようにしてもよい。
上記構成例によれば、ユーザの意思によって削除されたプログラムであり、自動的に受信及びインストールがなされなくなっているプログラムであっても、ユーザが再度インストールする意思があれば、再度インストールすることが可能となる。
更に他の構成例によれば、情報処理装置は記憶部を更に備え、インストール手段は、受信手段によって受信したプログラムを記憶部に記憶し、当該プログラムを実行可能とするための実行環境設定処理を行うことでインストールを完了させるようにしてもよい。
上記構成例によれば、自動的に実行環境の設定を行うので、ユーザは特別な操作を行うことなくプログラムを実行可能な状態にすることができる。
更に他の構成例として、情報処理装置は、インストールされたプログラムを記憶する記憶部と、情報処理装置の起動時に、記憶部に記憶されているプログラムの一覧を作成し出力する一覧作成手段と、情報処理装置に対して行われた所定の操作に応じて、一覧からいずれかのプログラムを選択する選択手段と、選択されたプログラムを実行するプログラム実行手段とを備え、インストール手段は、受信したプログラムを自動的に記憶部に記憶するようにしてもよい。
上記構成例によれば、記憶部に記憶され、一覧(例えば、情報処理装置を起動したときに表示されるメニュー)の対象になるので、ユーザは新たに受信されたプログラムに気付くことができる。
更に他の構成例によれば、情報処理装置は、インストールされたプログラムを記憶する記憶部と、情報処理装置に対して行われた所定の操作に応じて、記憶部に記憶されているプログラムの一覧を作成し出力する一覧作成手段と、情報処理装置への所定の操作に応じて、一覧からいずれかのプログラムを選択する選択手段と、選択されたプログラムを実行するプログラム実行手段とを備え、インストール手段は、受信したプログラムを自動的に前記記憶部に記憶するようにしてもよい。
上記構成例によれば、記憶部に記憶されたプログラムは、所定の操作に応じて出力されるプログラムの一覧に含まれるため、ユーザは新たに受信されたプログラムに気付くことができる。
更に他の構成例として、インストール手段は、更に、受信したプログラムが一覧作成手段によって作成される一覧の掲載対象となるように自動的に設定を行うことでインストールを完了するようにしてもよい。
上記構成例によれば、インストール処理としてプログラムの一覧の掲載対象となるような設定まで行うため、ユーザは新たに受信されたプログラムに気付くことができる。
更に他の構成例として、情報処理装置は権利情報データベース及び複数のプログラムを記憶する記憶部をさらに備え、受信手段は、プログラムとともに当該プログラムを実行するための権利情報を受信し、インストール手段は、受信したプログラムを自動的に記憶部に記憶するとともに、受信した権利情報を自動的に権利情報データベースに登録し、情報処理装置は、記憶部に記憶されたプログラムのうち少なくとも1つの実行指示を受け付ける実行指示受付手段と、実行指示を受け付けたとき、権利情報データベースに登録されている権利情報を用いて当該権利情報の認証を行う認証手段と、認証が成功したとき、実行指示がなされたプログラムを実行するプログラム実行手段とを更に備えるようにしてもよい。
上記構成例によれば、権利情報の認証が成功したときにプログラムを実行するので、不正な使用を防ぐことができる。
更に他の構成例として、情報処理装置は権利情報データベース及び複数のプログラムを記憶する記憶部をさらに備え、受信手段は、プログラムとともに当該プログラムを実行するための権利情報を受信し、インストール手段は、受信手段によってプログラム及び権利情報を受信したとき、権利情報の正当性の有無を自動的に判別する正当性確認手段と、権利情報の正当性があると判別されたとき、プログラム及び権利情報を記憶部に自動的に記憶する権利情報記憶手段と、権利情報の正当性がないと判別されたとき、権利情報の内容を破棄する権利情報破棄手段とを含み、情報処理装置は、記憶部に記憶されたプログラムのうち少なくとも1つの実行指示を受け付ける実行指示受付手段と、実行指示を受け付けたとき、権利情報を記憶部から読み出し、当該権利情報の認証を行う認証手段と、認証が成功したとき、実行指示がなされたプログラムを実行するプログラム実行手段とを更に備えるようにしてもよい。
上記構成例によれば、インストール処理の一環として権利情報の正当性をチェックして、権利情報の認証が成功したときにプログラムを実行するので、不正な使用を防ぐことができる。
更に他の構成例として、情報処理装置は複数のプログラムを記憶する記憶部をさらに備え、受信手段は、プログラムを受信し、インストール手段は、受信手段によってプログラムを受信したとき、当該受信したプログラムの正当性の有無を自動的に判別する正当性確認手段と、受信したプログラムの正当性があると判別されたとき、当該プログラムを記憶部に自動的に記憶する権利情報記憶手段と、受信したプログラムの正当性がないと判別されたとき、当該受信したプログラムを破棄する破棄手段とを含み、情報処理装置は、記憶部に記憶されたプログラムのうち少なくとも1つの実行指示を受け付ける実行指示受付手段と、実行指示を受け付けたとき、当該実行指示がなされたプログラムを実行するプログラム実行手段とを更に備えるようにしてもよい。
上記構成によれば、インストール処理の一環として受信したプログラムファイルの正当性をチェックするため、不正なプログラムが実行されることを防ぐことができる。
更に他の構成例として、接続手段は、ユーザに接続に関する操作を一切求めずにサーバへの接続を自動的に行い、受信手段は、1以上のプログラムの受信処理に際して、ユーザに対して当該受信処理に関する操作を一切求めずに受信処理を自動的に行い、インストール手段は、プログラムの情報処理装置へのインストールに際して、ユーザに対して当該インストール処理に関する操作を一切求めずに処理を進めることでインストール処理を実行するようにしてもよい。
上記構成例によれば、ユーザに特別な操作を求めることなく、プログラムを実行可能な状態にすることができる。
更に他の構成例として、情報処理装置は、接続手段によってサーバへの接続が行われたとき、受信可能なアプリケーションプログラムの一覧を示す配信中アプリ情報をサーバから受信する配信情報受信手段と、配信中アプリ情報によって特定される受信可能なアプリケーションプログラムが、既に自機にインストールされているか否かを判定するアプリインストール状況判定手段を更に備え、受信手段は、前記配信中アプリ情報によって特定される受信可能なアプリケーションプログラムの受信処理を行い、インストール手段は、受信手段によって受信されたアプリケーションプログラムのうち、アプリインストール状況判定手段によって既にインストール済みと判定されたアプリケーションプログラムについては当該アプリケーションプログラムの更新インストールを行い、まだインストールされていないと判定されたアプリケーションプログラムについては新規インストールを行うようにしてもよい。
上記構成例によれば、配信されている複数のアプリケーションのうち、ユーザが所持していないものについては新規インストールがなされ、既に所持しているものはアップデートがそれぞれ自動的に行われることになり、ユーザの利便性をより高めることができる。
更に他の構成例として、サーバから受信されるプログラムには、システムプログラムとアプリケーションプログラムの2種類のプログラムが存在し、受信手段は、アプリケーションプログラムを自動的に受信し、インストール手段は、アプリケーションプログラムの情報処理装置へのインストール処理を自動的に行うようにしてもよい。
上記構成例によれば、自動的にアプリケーションプログラムの受信・インストールを行うため、ユーザの何らの操作も必要とせずに、新しいアプリケーションを提供することができる。
本発明の情報処理装置は、切替手段と、接続手段と、受信手段と、アプリインストール手段とを備える。切替手段は、非使用状態と使用状態とを切り替える。接続手段は、情報処理装置が少なくとも非使用状態で稼働しているときに、自動的にサーバに接続する。受信手段は、情報処理装置が少なくとも非使用状態で稼働しているときにおいて、サーバから1以上のアプリケーションプログラムの受信処理を自動的に行う。アプリインストール手段は、情報処理装置が少なくとも非使用状態で稼働しているときにおいて、アプリケーションプログラムの当該情報処理装置へのインストール処理を自動的に行う。
上記構成により、自動的にアプリケーションプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに、新しいアプリケーションやアップデートプログラムを提供できる。更に、非使用状態でもアプリケーションプログラムの受信及びインストールが行われるので、効率的にインストールを行うことができるとともに、ユーザの気付かないうちにアプリケーションプログラムの新規インストールが行われるため、ユーザに驚きを与えることができる。
本発明の情報処理装置は、接続手段と、受信手段と、アプリインストール手段とを備える。接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のアプリケーションプログラムの受信処理を自動的に行う。アプリインストール手段は、アプリケーションプログラムの情報処理装置へのインストール処理を自動的に行う。
上記構成により、自動的にアプリケーションの受信およびインストールを行うので、ユーザの何らの操作も必要とせずに、新しいアプリケーションを提供できる。
本発明のシステムは、情報処理装置とサーバを含むシステムであって、情報処理装置は、接続手段と、受信手段と、インストール手段と、プログラム実行手段とを備える。接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のプログラムの受信処理を自動的に行う。インストール手段は、プログラムの情報処理装置へのインストール処理を自動的に行う。プログラム実行手段は、ユーザにより選択されたプログラムを実行する。また、サーバは、情報処理装置による接続が行われたとき、1以上のプログラムの送信処理を行う送信手段を備える。
上記構成により、自動的にプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに(ユーザ側からの能動的なアクセスを行わなくとも)、新しいアプリケーションやアップデートプログラムを提供できる。また、主にソフトウェア開発者の立場からすると、以下のような利点がある。新規のアプリケーションをインストールするためにユーザ側から能動的なアクセスを要するような環境では、後にアプリケーションに機能追加等が行われたとき、ユーザに機能追加のための作業(能動的なアクセス)を行ってもらえる可能性が低い。そのために、ハードウェアを所持するユーザのうち最も多くのユーザにアプリケーションを提供するためには、開発スケジュールをハードウェアの発売に間に合わせプリインストールさせる必要があった。しかし、本発明によれば、ハードウェアの発売後にソフトウェアの開発スケジュールを設定することも可能となり、ソフトウェア開発者のソフト開発にかかる負担を軽減することが可能となる。
他の構成例として、サーバによって送信され、情報処理装置によって受信、インストール、及び実行がなされるプログラムはコンテンツデータ、および、情報処理装置をコンテンツデータを再生する再生手段として機能させる再生処理プログラムを含んでいてもよい。
上記構成によれば、再生手段が元々インストールされていない形式のコンテンツファイルも再生することができるようになる。よって、様々なコンテンツを自動的に配信することができる。
更に他の構成例として、サーバによって送信され、情報処理装置によって受信、インストール、及び実行がなされるプログラムは、情報処理装置を、ユーザによる当該プログラムのアンインストール指示を受け付けるアンインストール受付手段として機能させ、情報処理装置は、アンインストール受付手段によってプログラムのアンインストール指示が受け付けられたとき、前記プログラムをアンインストールするアンインストール手段を更に備えてもよい。
上記構成によれば、インストールされ実行されるプログラム内において、自己のプログラムのアンインストールを受け付けるので、自動的に(ユーザの意図に沿わず)インストールされ、かつ当該プログラムを試してみたところ興味を持てなかった場合に、簡易にアンインストールを行うことができる。
更に他の構成例として、サーバによって送信され、情報処理装置によって受信、インストール、及び実行がなされるプログラムは、ユーザにより手動で受信されるアプリケーションプログラムの紹介を行うプログラムであり、情報処理装置を、ユーザにより手動で受信されるアプリケーションプログラムの詳細情報にアクセスするための指示を受け付ける詳細情報指示受付手段として機能させ、情報処理装置は、詳細情報指示受付手段によって詳細情報にアクセスするための指示が受け付けられたとき、手動で受信されるアプリケーションプログラムに関する詳細情報を出力する詳細情報出力手段を更に備えてもよい。
上記構成によれば、アプリケーション自体は手動でダウンロードされるべきものであっても、紹介プログラムを自動的にインストールして、ユーザにアプリケーションの存在を知らせることができる。
更に他の構成例によれば、詳細情報出力手段は、詳細情報をサーバから取得して出力してもよい。
更に他の構成例によれば、情報処理装置は、詳細情報が出力されているとき、手動で受信されるアプリケーションプログラムの受信及びインストールを行うための指示をユーザから受け付ける受信指示受付手段と、受信及びインストールを行うための指示を受け付けたとき、手動で受信されるアプリケーションプログラムが登録された所定のサーバに接続し、当該アプリケーションプログラムを受信するとともに、当該受信したアプリケーションプログラムを自動的にインストールする手動受信手段をさらに備えていてもよい。
上記構成によれば、詳細情報から指示をすることでアプリケーションプログラムの受信・インストールが行えるので、紹介アプリを自動的に受信して実際に入手したくなったアプリケーションを容易に入手することができる。
更に他の構成例によれば、サーバによって送信され、情報処理装置によって受信、インストール、及び実行がなされるプログラムは、ユーザにより購入されるアプリケーションプログラム又はコンテンツの紹介を行うプログラムであり、情報処理装置を、プログラム実行手段によって実行されるプログラム内において、ユーザにより購入されるアプリケーションプログラムの購入サイトへアクセスするための指示を受け付けるアクセス指示受付手段として機能させ、情報処理装置は、アクセス指示受付手段によって購入サイトへアクセスするための指示が受け付けられたとき、ユーザにより購入されるアプリケーションプログラムの購入サイトに接続する購入サイト接続手段をさらに備えるようにしてもよい。
上記構成によれば、購入を要するアプリケーションは自動配信に適さないが、その紹介プログラムを自動的にインストールし、それを実行しユーザが気に入れば、購入するためのサイトにアクセスできるので、アプリの宣伝・広告として自動インストールの仕組みを用いて、ユーザに購入アプリの存在を知らせることができる。
本発明の情報処理装置は、接続手段と、受信手段と、インストール手段とを備える。
接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のプログラムの受信処理を自動的に行う。インストール手段は、受信手段によって受信されたプログラムが自機にインストールされていないときは、当該プログラムの新規インストール処理を自動的に行う。
上記構成によれば、サーバで配信される所定のプログラムについて、自動的に新規インストールを行うことができる。
本発明の情報処理方法は、サーバと情報処理装置を含むシステムを用いて、当該情報処理装置の機能を更新する機能更新方法であって、情報処理装置は、そのプロセッサにより、少なくとも省電力状態において、予め定めるスケジュールに従って、自動的かつ繰り返して前記サーバへの接続を試みる。次に、サーバに接続したときに、自機にインストールされていないプログラムをユーザの承諾および操作を求めずに自動的にダウンロードするとともに、当該ダウンロードしたプログラムを自動的にインストールする。更に、非省電力状態において、ユーザに情報処理装置が実行するプログラムを選択させるためのプログラムの一覧を、少なくとも省電力状態においてインストールを行ったプログラムを自動的に含めて表示する。また、自動的にインストールされたプログラムのうちユーザが希望するプログラムをアンインストールする。
上記構成によれば、メーカーが意図した機能更新を、ユーザの何らの操作も必要とせずに、かつユーザの情報処理装置を使用していないときにも、行うことができ、更新された機能をユーザがすぐに使える状態にすることができる。従来、新規の機能を導入するためにはユーザからの能動的なアクセスを要するような環境では、後にユーザに機能追加を行ってもらえる可能性が低いために開発スケジュールをハードウェアの発売に間に合わせる必要があったが、上記構成により、ハードウェアの発売後にソフトウェアの開発スケジュールを設定することも可能になる。更に、上記機能は自動的にダウンロードされインストールされるが、ユーザによってそれをアンインストールすることもできるので、自動的にインストールされるとしても後にユーザによって選別することが可能である。
更に他の構成例として、サーバは、情報処理装置のメーカーが管理するサーバであり、情報処理装置用のプログラムは、情報処理装置のメーカーの管理のもと、当該情報処理装置の発売後に当該情報処理装置用のプログラムを追加可能なようにサーバに登録されるようにしてもよい。
上記構成によれば、メーカーが意図した機能更新を、ユーザの何らの操作も必要とせずに、かつユーザの情報処理装置を使用していないときにも、行うことができ、更新された機能をユーザがすぐに使える状態にすることができる。
更に他の構成例として、情報処理装置は、そのプロセッサにより、さらに、ユーザの所定の操作に応じて、情報処理装置用のプログラムが登録された所定のサーバに接続し、ユーザが希望するプログラムをダウンロードするとともに、当該ダウンロードしたプログラムを自動的にインストールするようにしてもよい。
上記構成例によれば、ユーザが自主的に希望のプログラムをダウンロード及びインストールすることもできる。
本発明の情報処理プログラムは、情報処理装置のコンピュータに実行させる情報処理プログラムであって、コンピュータを、接続手段と受信手段とインストール手段として機能させる。接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のプログラムの受信処理を自動的に行う。インストール手段は、プログラムの情報処理装置へのインストール処理を自動的に行う。
上記構成により、自動的にプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに(ユーザ側からの能動的なアクセスを行わなくとも)、新しいアプリケーションやアップデートプログラムを提供できる。また、主にソフトウェア開発者の立場からすると、以下のような利点がある。新規のアプリケーションをインストールするためにユーザ側から能動的なアクセスを要するような環境では、後にアプリケーションに機能追加等が行われたとき、ユーザに機能追加のための作業(能動的なアクセス)を行ってもらえる可能性が低い。そのために、ハードウェアを所持するユーザのうち最も多くのユーザにアプリケーションを提供するためには、開発スケジュールをハードウェアの発売に間に合わせプリインストールさせる必要があった。しかし、本発明によれば、ハードウェアの発売後にソフトウェアの開発スケジュールを設定することも可能となり、ソフトウェア開発者のソフト開発にかかる負担を軽減することが可能となる。
他の構成例として、受信手段によりサーバから自動的に受信され、インストール手段により自動的にインストールされるプログラムは、コンテンツデータを含み、コンピュータをコンテンツデータを再生する再生手段として機能させるようにしてもよい。
上記構成によれば、再生手段が元々インストールされていない形式のコンテンツファイルも再生することができるようになる。よって、様々なコンテンツを自動的に配信することができる。
更に他の構成例として、受信手段によりサーバから自動的に受信され、インストール手段により自動的にインストールされるプログラムは、コンピュータを、ユーザによる当該プログラムのアンインストール指示を受け付けるアンインストール受付手段としてさらに機能させ、情報処理プログラムは、コンピュータを、アンインストール受付手段によってプログラムのアンインストール指示が受け付けられたとき、当該プログラムをアンインストールするアンインストール手段として更に機能させるようにしてもよい。
上記構成によれば、インストールされ実行されるプログラム内において、自己のプログラムのアンインストールを受け付けるので、自動的に(ユーザの意図に沿わず)インストールされ、かつ当該プログラムを試してみたところ興味を持てなかった場合に、簡易にアンインストールを行うことができる。
更に他の構成例として、受信手段によりサーバから自動的に受信され、インストール手段により自動的にインストールされるプログラムは、コンピュータを、ユーザにより手動で受信されるアプリケーションプログラムの詳細情報にアクセスするための指示を受け付ける詳細情報指示受付手段としてさらに機能させ、情報処理プログラムは、コンピュータを、指示が受け付けられたとき、手動で受信されるアプリケーションプログラムに関する詳細情報を出力する詳細情報出力手段として更に機能させるようにしてもよい。
上記構成によれば、アプリケーション自体は手動でダウンロードされるべきものであっても、紹介プログラムを自動的にインストールして、ユーザにアプリケーションの存在を知らせることができる。
更に他の構成例として、情報処理プログラムは、コンピュータを、詳細情報が出力されているとき、ユーザから、手動で受信されるアプリケーションプログラムの受信及びインストールを行うための指示を受け付ける受信指示受付手段と、受信及びインストールを行うための指示を受け付けたとき、手動で受信されるアプリケーションプログラムが登録された所定のサーバに接続し、当該アプリケーションプログラムを受信するとともに、当該受信したアプリケーションプログラムを自動的にインストールする手動受信手段として更に機能させるようにしてもよい。
上記構成によれば、詳細情報から指示をすることでアプリケーションプログラムの受信・インストールが行えるので、紹介アプリを自動的に受信して実際に入手したくなったアプリケーションを容易に入手することができる。
更に他の構成例として、受信手段によりサーバから自動的に受信され、インストール手段により自動的にインストールされるプログラムは、コンピュータを、プログラム実行手段によって実行されるプログラム内において、ユーザにより購入されるアプリケーションプログラムの購入サイトへアクセスするための指示を受け付けるアクセス指示受付手段としてさらに機能させ、情報処理プログラムは、コンピュータを、指示が受け付けられたとき、ユーザにより購入されるアプリケーションプログラムの購入サイトに接続する購入サイト接続手段として機能させるようにしてもよい。
上記構成によれば、購入を要するアプリケーションは自動配信に適さないが、その紹介プログラムを自動的にインストールし、それを実行しユーザが気に入れば、購入するためのサイトにアクセスできるので、アプリの宣伝・広告として自動インストールの仕組みを用いて、ユーザに購入アプリの存在を知らせることができる。
本発明の情報処理システムは、接続手段と受信手段とインストール手段とを備える。接続手段は、自動的にサーバに接続する。受信手段は、サーバから1以上のプログラムの受信処理を自動的に行う。インストール手段は、プログラムの情報処理装置へのインストール処理を自動的に行う。
上記構成により、自動的にプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに(ユーザ側からの能動的なアクセスを行わなくとも)、新しいアプリケーションやアップデートプログラムを提供できる。また、主にソフトウェア開発者の立場からすると、以下のような利点がある。新規のアプリケーションをインストールするためにユーザ側から能動的なアクセスを要するような環境では、後にアプリケーションに機能追加等が行われたとき、ユーザに機能追加のための作業(能動的なアクセス)を行ってもらえる可能性が低い。そのために、ハードウェアを所持するユーザのうち最も多くのユーザにアプリケーションを提供するためには、開発スケジュールをハードウェアの発売に間に合わせプリインストールさせる必要があった。しかし、本発明によれば、ハードウェアの発売後にソフトウェアの開発スケジュールを設定することも可能となり、ソフトウェア開発者のソフト開発にかかる負担を軽減することが可能となる。
本発明の情報処理方法は、接続ステップと、受信ステップと、インストールステップとを備える。接続ステップは、自動的にサーバに接続する。受信ステップは、サーバから1以上のプログラムの受信処理を自動的に行う。インストールステップは、プログラムの情報処理装置へのインストール処理を自動的に行う。
上記構成により、自動的にプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに(ユーザ側からの能動的なアクセスを行わなくとも)、新しいアプリケーションやアップデートプログラムを提供できる。また、主にソフトウェア開発者の立場からすると、以下のような利点がある。新規のアプリケーションをインストールするためにユーザ側から能動的なアクセスを要するような環境では、後にアプリケーションに機能追加等が行われたとき、ユーザに機能追加のための作業(能動的なアクセス)を行ってもらえる可能性が低い。そのために、ハードウェアを所持するユーザのうち最も多くのユーザにアプリケーションを提供するためには、開発スケジュールをハードウェアの発売に間に合わせプリインストールさせる必要があった。しかし、本発明によれば、ハードウェアの発売後にソフトウェアの開発スケジュールを設定することも可能となり、ソフトウェア開発者のソフト開発にかかる負担を軽減することが可能となる。
本発明によれば、自動的にプログラムの受信・インストールを行うので、ユーザの何らの操作も必要とせずに、新しいアプリケーション等を提供できる。
本発明の第1の実施形態に係るゲーム装置1の外観図 本発明の第1の実施形態に係るゲーム装置1のブロック図 本実施形態にかかるネットワーク構成の全体像を示す模式図 メニュー画面の一例 メニュー画面の一例 メニュー画面の一例 「すれ違い通信」について説明するための図 「すれ違い通信」について説明するための図 「すれ違い通信」について説明するための図 「すれ違い通信」について説明するための図 本実施形態で実行される各種機能(プログラム)の相関関係を示す図 マイコン37に内蔵されている記憶領域に記憶される主なデータを示す図 無線通信モジュール34に内蔵されている記憶領域に記憶される主なデータを示す図 NANDフラッシュメモリ33に記憶されるプログラム、データを示す図 図14のすれ違い通信用データ520のデータ構造の一例を示した図 図14のタスクデータ530のデータ構造の一例を示した図 図14のアプリ関連データ550のデータ構造の一例を示した図 図14の受信ポリシーデータ570のデータ構造の一例を示した図 図14のインストールリスト580のデータ構造の一例を示した図 マイコン37によって実行されるマイコン処理を示すフローチャート 無線モジュール処理を示すフローチャート 無線モジュール処理を示すフローチャート 起動時処理の詳細を示すフローチャート 起動時処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図26のステップS424で示したアプリインストール処理の詳細を示すフローチャート 図26のステップS424で示したアプリインストール処理の詳細を示すフローチャート 図30のステップS471デ示した正当性確認処理の詳細を示すフローチャート 図26のステップS432で示したアプリ更新適用処理の詳細を示すフローチャート 図27のステップS108で示した各アプリの処理の詳細を示すフローチャート 図27のステップS108で示した各アプリの処理の詳細を示すフローチャート 図33のステップS131で示したタスク生成処理の詳細を示すフローチャート ローカル通信用BG処理の詳細を示すフローチャート ローカル通信用BG処理の詳細を示すフローチャート インターネット通信用BG処理の詳細を示すフローチャート 図38のステップS191で示したポリシー処理の詳細を示すフローチャート 図38のステップS191で示したポリシー処理の詳細を示すフローチャート ポリシーサーバ103のメモリマップを示す図 ポリシーサーバ103で実行される処理を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図43のステップS251で示した実行順ソート処理の詳細を示すフローチャート 図47のステップS272で示したシステムインストール処理の詳細を示すフローチャート 図47のステップS272で示したシステムインストール処理の詳細を示すフローチャート 第2の実施形態に係るボトルメールアプリの処理概要を示す図 第2の実施形態に係るボトルメールアプリの処理概要を示す図 ボトルメールサーバに記憶される履歴情報データのデータ構造の一例を示す図 ボトルメールサーバに記憶されるAP地域テーブルの一例 ゲーム装置1で実行される上記ボトルメールアプリ処理の詳細を示すフローチャート ゲーム装置1で実行される上記ボトルメールアプリ処理の詳細を示すフローチャート ボトルメールサーバの処理の詳細を示すフローチャート 第4の実施形態にかかるインストール処理の詳細を示すフローチャート 第4の実施形態にかかるインストール処理の詳細を示すフローチャート 第5の実施形態にかかる手動ダウンロード処理の詳細を示すフローチャート コンテンツアプリの画面例 コンテンツアプリに含まれるプログラムによる再生処理のフローチャート 削除命令受付処理の詳細を示すフローチャート
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
(第1の実施形態)
図1は、本発明にかかる携帯端末の一例である携帯型ゲーム装置(以下、単にゲーム装置)の一例を示した図である。図1において、ゲーム装置1は、折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置1は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回転可能に連結されている。通常、ユーザは、開状態でゲーム装置1を使用する。また、ユーザは、ゲーム装置1を使用しない場合には閉状態としてゲーム装置1を保管する。また、図1に示した例では、ゲーム装置1は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置1に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置1は、任意の解像度の表示装置を利用することができる。なお、詳細は後述するが、下側LCD12は、主に、内側カメラ23または外側カメラ25で撮影されている画像をリアルタイムに表示するために用いられる。
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Lおよびタッチパネル13が設けられる。図1に示されるように、各操作ボタン14A〜14Lのうち、方向入力ボタン14A、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、電源ボタン14F、ホームボタン14I、スタートボタン14G、およびセレクトボタン14Hは、上側ハウジング21と下側ハウジング11とを折りたたんだときに内側となる、下側ハウジング11の内側主面上に設けられる。方向入力ボタン14Aは、例えば選択操作等に用いられる。各操作ボタン14B〜14Eは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン14Fは、ゲーム装置1の電力制御モードを切り替えるために用いられる。詳細は後述するが、本実施形態では、電力制御モードとして「通常電力モード」と「スリープモード」がある。ホームボタン14Iは、ゲームなどのアプリケーションが実行されているときに、メニュー画面に戻るために用いられる。図1に示す例では、方向入力ボタン14A、電源ボタン14Fおよびホームボタン14Iは、下側ハウジング11の内側主面中央付近に設けられる下側LCD12に対して、左右一方側(図1では左側)の当該主面上に設けられる。また、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、下側LCD12に対して左右他方側(図1では右側)となる下側ハウジング11の内側主面上に設けられる。方向入力ボタン14A、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、ゲーム装置1に対する各種操作を行うために用いられる。
なお、図1においては、操作ボタン14J〜14Lの図示を省略している。例えば、Lボタン14Jは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Kは、下側ハウジング11の上側面の右端部に設けられる。Lボタン14JおよびRボタン14Kは、ゲーム装置1に対して、例えば撮影指示操作(シャッター操作)を行うために用いられる。さらに、音量ボタン14Lは、下側ハウジング11の左側面に設けられる。音量ボタン14Lは、ゲーム装置1が備えるスピーカの音量を調整するために用いられる。
また、ゲーム装置1は、各操作ボタン14A〜14Lとは別の入力装置として、さらにタッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の右側面には、挿入口(図1に示す破線)が設けられている。挿入口は、タッチパネル13に対する操作を行うために用いられるタッチペン27を収納することができる。なお、タッチパネル13に対する入力は、通常タッチペン27を用いて行われるが、タッチペン27に限らずユーザの指でタッチパネル13を操作することも可能である。
また、下側ハウジング11の右側面には、メモリカード28を収納するための挿入口(図1では、二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置1とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、例えばSD(Secure Digital)メモリカードであり、コネクタに着脱自在に装着される。メモリカード28は、例えば、ゲーム装置1によって撮影された画像を記憶(保存)したり、他の装置で生成された画像をゲーム装置1に読み込んだりするために用いられる。
さらに、下側ハウジング11の上側面には、カートリッジ29を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置1とカートリッジ29とを電気的に接続するためのコネクタ(図示せず)が設けられる。カートリッジ29はゲームプログラム等を記録した記録媒体であり、下側ハウジング11に設けられた挿入口に着脱自在に装着される。
下側ハウジング11と上側ハウジング21との連結部の左側部分には、3つのLED15A〜15Cが取り付けられる。ここで、ゲーム装置1は、他の機器との間で無線通信を行うことが可能であり、第1LED15Aは、ゲーム装置1の電源がオンである場合に点灯する。第2LED15Bは、ゲーム装置1の充電中に点灯する。第3LED15Cは、無線通信が確立している場合に点灯する。したがって、3つのLED15A〜15Cによって、ゲーム装置1の電源のオン/オフ状況、充電状況、および、通信確立状況をユーザに通知することができる。
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。例えば、上側LCD22には、ユーザに各操作ボタン14A〜14Lやタッチパネル13の役割を教えるための、操作説明画面が表示される。
また、上側ハウジング21には、2つのカメラ(内側カメラ23および外側カメラ25)が設けられる。図1に示されるように、内側カメラ23は、上側ハウジング21の連結部付近の内側主面に取り付けられる。一方、外側カメラ25は、内側カメラ23が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング21の外側主面(ゲーム装置1が閉状態となった場合に外側となる面であり、図1に示す上側ハウジング21の背面)に取り付けられる。なお、図1においては、外側カメラ25を破線で示している。これによって、内側カメラ23は、上側ハウジング21の内側主面が向く方向を撮影することが可能であり、外側カメラ25は、内側カメラ23の撮影方向の逆方向、すなわち、上側ハウジング21の外側主面が向く方向を撮影することが可能である。このように、本実施形態では、2つの内側カメラ23および外側カメラ25の撮影方向が互いに逆方向となるように設けられる。例えば、ユーザは、ゲーム装置1からユーザの方を見た景色を内側カメラ23で撮影することができるとともに、ゲーム装置1からユーザの反対側の方向を見た景色を外側カメラ25で撮影することができる。
なお、上記連結部付近の内側主面には、音声入力装置としてマイク(図2に示すマイク44)が収納されている。そして、上記連結部付近の内側主面には、マイク44がゲーム装置1外部の音を検知できるように、マイクロフォン用孔16が形成される。マイク44を収納する位置およびマイクロフォン用孔16の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング11にマイク44を収納し、マイク44を収納位置に対応させて下側ハウジング11にマイクロフォン用孔16を設けるようにしても良い。
また、上側ハウジング21の外側主面には、第4LED26(図1では、破線で示す)が取り付けられる。第4LED26は、外側カメラ25によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、外側カメラ25によって動画が撮影される間点灯する。第4LED26によって、ゲーム装置1による撮影が行われた(行われている)ことを撮影対象者や周囲に通知することができる。
また、上側ハウジング21の内側主面中央付近に設けられる上側LCD22に対して、左右両側の当該主面に音抜き孔24がそれぞれ形成される。音抜き孔24の奥の上側ハウジング21内にはスピーカが収納されている。音抜き孔24は、スピーカからの音をゲーム装置1の外部に放出するための孔である。
以上に説明したように、上側ハウジング21には、画像を撮影するための構成である内側カメラ23および外側カメラ25と、例えば撮影の際に操作説明画面を表示する表示手段である上側LCD22とが設けられる。一方、下側ハウジング11には、ゲーム装置1に対する操作入力を行うための入力装置(タッチパネル13および各ボタン14A〜14L)と、ゲーム画面を表示するための表示手段である下側LCD12とが設けられる。したがって、ゲーム装置1を使用する際には、ユーザは、下側LCD12に表示される撮影画像(カメラによって撮影された画像)を見ながら、下側ハウジング11を把持して入力装置に対する入力を行うことができる。
次に、図2を参照して、ゲーム装置1の内部構成を説明する。なお、図2は、ゲーム装置1の内部構成の一例を示すブロック図である。
図2において、ゲーム装置1は、CPUパッケージ31、メインメモリ32、NANDフラッシュメモリ33、無線通信モジュール34、第1メモリカードインターフェース(メモリカードI/F)35および第2メモリカードI/F36、マイコン37、開閉検出器40、電源管理IC41、電源回路42、およびインターフェース回路(I/F回路)43等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
CPUパッケージ31には、所定のプログラムを実行するための情報処理手段であるCPUが設けられている。本実施形態において、当該CPUは、その内部に2つのコアを有しており(いわゆるデュアルコアプロセッサ)、一方には主にシステム制御関連の処理を担当させ、もう一方には、主にアプリケーションの実行関連の処理を担当させている。そのほか、CPUパッケージ31には、GPU(Graphics Processor Unit)、DSP(Digital Signal Processor)、VRAM(Video RAM)が設けられている。その他、内部メインメモリ等も設けられている。図示は省略するが、これらの構成要素は、CPUパッケージ31内の内部バスによって互いに接続される(つまり、ワンチップ化されている)。ただし、これらがワンチップ化されていなくてもよいし、CPUのコア数も2つに限らない。
GPUは、描画手段の一部を形成し、CPUからのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAMは、GPUがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPUは、VRAMに記憶されたデータを用いて画像データを作成する。
DSPは、オーディオプロセッサとして機能し、内部メインメモリやメインメモリ32に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
なお、以下の説明においては、CPUパッケージ31を単にCPU31と記載する。
ここで、CPU31によって実行されるプログラムは、ゲーム装置1内のNANDフラッシュメモリ33に予め記憶されていてもよいし、メモリカード28および/またはカートリッジ29から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。例えば、インターネットを経由して所定のサーバからダウンロードすることで取得しても良いし、据置型ゲーム装置と通信を行うことで、当該据置型ゲーム装置に記憶されている所定のプログラムをダウンロードすることで取得しても良い。
CPU31には、メインメモリ32、NANDフラッシュメモリ33、無線通信モジュール34が接続されている。メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。本実施形態では、メインメモリ32として、例えばPSRAM(Pseudo−SRAM)を用いる。
NANDフラッシュメモリ33は、不揮発性の記憶媒体によって構成される。また、CPU31の指示に従って、図示しないメモリ制御回路が、NANDフラッシュメモリ33に対するデータの読み出しおよび書き込みを制御する。
無線通信モジュール34は、例えばIEEE802.11.b/g/nの規格に準拠した方式により、無線LANに接続する機能を有する(後述する「インターネット通信」の際はこの方式が用いられる)。また、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する(後述する「ローカル通信」の際はこの方式が用いられる)。無線通信モジュール34は、CPU31に接続される。CPU31は、無線通信モジュール34を用いてインターネットを介して他の機器との間でデータを送受信したり、同種の他のゲーム装置との間でデータを送受信したりすることができる。また、無線通信モジュール34には、図示はしないがマイコンチップが搭載されており、後述のスリープモード中に所定の処理を実行する。
また、第1メモリカードI/F35はCPU31に接続される。第1メモリカードI/F35は、コネクタに装着されたカートリッジ29に対するデータの読み出しおよび書き込みをCPU31の指示に従って行う。例えば、ゲーム装置1が実行することが可能なアプリケーションプログラムがカートリッジ29から読み出されてCPU31によって実行されたり、当該アプリケーションプログラムに関するデータ(例えばゲームのセーブデータ等)がカートリッジ29に書き込まれたりする。
第2メモリカードI/F36は、CPU31に接続される。第2メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。例えば、外側カメラ25によって撮像された画像データがメモリカード28に書き込まれたり、メモリカード28に記憶された画像データがメモリカード28から読み出されてNANDフラッシュメモリ33に記憶されたりする。
また、CPU31には、マイコン37が接続される。マイコン37は、ゲーム装置1の電源管理に関する処理や、時間に関する処理、上記ハウジングの開閉検知処理等を行う。また、これらの処理に関する通知をCPU31から受けたり、逆にCPU31に通知したりする。マイコン37は、リアルタイムクロック(RTC)39を備えている。RTC39は、時間をカウントし、マイコン37を介してCPU31に出力する。例えば、CPU31は、RTC39によって計時された時間に基づいて、現在時刻(日付)等を計算することもできる。
また、マイコン37は、開閉検出器40および電源管理IC41と接続される。電源管理IC41は、更に、電源回路42と接続される。開閉検出器40は、上記ハウジングの開閉を検出し、その内容をマイコン37(ひいてはCPU31)に通知する。電源管理IC41は、マイコン37(マイコン37を介したCPU31)からのスリープモードへの移行やスリープモード解除の通知を受ける。そして、当該通知に基づいて適切な電力を供給するための制御を行う。電源回路42は、ゲーム装置1が有する電源(典型的には電池であり、下側ハウジング11に収納される)から供給される電力を制御し、上記電源管理IC41を介してゲーム装置1の各部品に電力を供給する。
ここで、本実施形態にかかるゲーム装置1の電源制御のモードに関して説明する。本ゲーム装置では、電池等の電源が装着されて、上記各構成部品への電力供給が可能な状態となった後は、基本的には、「通常電力モード」と「省電力モード」の2つの電源制御モードのいずれかで動作する。「通常電力モード」は、上記構成部品の全てに電力を供給している状態である。例えば、ユーザが所定のゲームを実際に操作してプレイする場合や、各種アプリケーションを実際に操作する場合の電源制御モードは「通常電力モード」である。「省電力モード」は、上記構成部品の一部に対してのみ電力の供給を継続し、それ以外の構成部品に対しての電力供給は停止している状態である。本実施形態では、この「省電力モード」の一つとして、「スリープモード」がある。「スリープモード」は、上記マイコン37、無線通信モジュール34にのみ電源を供給し、それ以外の部品、つまり、CPU31やLCDへの電力供給は停止している状態である(但し、CPU31は、「スリープモード」の解除指示を受けることは可能である)。また、「スリープモード」において、マイコン37や無線通信モジュール34は、「マイコン処理」、「無線モジュール処理」と呼ばれる処理を所定時間毎に繰り返し実行するが、これについては詳細は後述する。
そして、本実施形態では、上述のような、開閉検出器40の検出結果に基づいてスリープモードへの移行やスリープモードの解除を行う方法のほかに、電源ボタン14Fの操作に応じて上記「通常電力モード」と「スリープモード」を切り替えることが可能である。また、電源ボタン14Fの操作によるものの他、後述するような処理によって、自動的に「スリープモード」の解除、あるいは「スリープモード」への移行も可能となっている。例えば、ユーザが所定のゲームをプレイし終えた後、電源ボタン14Fを押すと(この操作は、ユーザから見ると、電源をオフにする操作に見える)、「スリープモード」に移行する。この状態で、ユーザはゲーム装置1を閉じて、持ち歩くこと等が可能である。その後、ユーザがゲーム装置1を開き、再度電源ボタン14Fを押すと、「スリープモード」が解除され、「通常電力モード」に移行する。または、所定時間が経過したことにより「スリープモード」へ移行するようにしてもよい。
なお、上記「スリープモード」の他、「省電力モード」の一つとして、各LCDへの電力供給のみを停止する「モニタオフモード」での動作も可能である。このときは、CPU31やメインメモリ32への電力供給は行われる(なお、CPU31内のCPUコアと内部メモリのみに電力を供給し、上記GPUには電力は供給しないようにしてもよい)。その他、電源ボタン14Fを長押しすることで、マイコン37や無線モジュールも含めた全ての構成部品への電力供給を停止する(つまり、完全に電源を切る)「完全停止モード」に移行することも可能である。この場合は、再度電源ボタン14Fを長押しすると、「通常電力モード」に移行してゲーム装置1が起動することになる。
ここで、上記電源制御モードに関し、ユーザがゲーム装置を使用中か否かという観点からは、以下のように言い換えることもできる。すなわち、ゲーム装置1は、「使用状態」と「非使用状態」という2つの状態を有するといえる。「使用状態」とは、ユーザがゲーム装置1のハウジングを開いて直接的に使用しているために、通常電力モードがずっと継続している状態である。例えば、ユーザが操作ボタン14等を操作して実際にゲーム等をプレイしている状態が該当する。一方、「非使用状態」とは、ユーザがゲーム装置1を主導的・直接的に使用していない状態をいう。これには、上記ハウジングが閉じられているために「スリープモード」となっている状態の他、後述するようなタスクの実行に伴い、(ハウジングは閉じられたまま)一時的に「スリープモード」が解除されてタスクにかかる処理が実行され、当該タスクの実行後は再度「スリープモード」に戻るような状態も含む。例えば、ユーザが外出する際に、ゲーム装置1のハウジングを閉じて鞄に入れている状態は「非使用状態」である。更に、このように、ゲーム装置1が鞄に入れられてユーザが外出している間に、上記のように一時的に「スリープモード」が解除されている状態、および、タスクの実行後に再度「スリープモード」に入るような状態(この間、ユーザはゲーム装置1を使用していない)も「非使用状態」である。また、当該「使用状態」と「非使用状態」が切り替わるためのトリガは、ハウジングの開閉の他、電源ボタン14Fが操作された場合もトリガとなる。つまり、ユーザがゲームをプレイしていたが(使用状態)、その後、ゲームのプレイを終えたため、ゲーム装置1の電源ボタン14Fを押下することで、「使用状態」から「非使用状態」に切り替わる。その他、例えば、一定時間ユーザの操作がなかったために「使用状態」から「非使用状態」に切り替わる場合もある。
以下の説明においては、説明の簡略化のため、電源制御モードについては、「通常電力モード」と「スリープモード」の2つのモードだけを用いる場合を例として説明する。
また、ゲーム装置1は、マイク44およびアンプ45を備えている。マイク44およびアンプ45は、それぞれI/F回路43に接続される。マイク44は、ゲーム装置1に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をI/F回路43に出力する。アンプ45は、I/F回路43から音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路43は、CPU31に接続される。
また、タッチパネル13は、I/F回路43に接続される。すなわち、I/F回路43は、マイク44およびアンプ45(スピーカ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成してCPU31に出力する。例えば、タッチ位置データは、タッチパネル13の入力面に対して入力が行われた位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU31は、I/F回路43を介して、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
操作ボタン14は、上記各操作ボタン14A〜14Lから構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタン14A〜14Lに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
内側カメラ23および外側カメラ25は、それぞれCPU31に接続される。内側カメラ23および外側カメラ25は、CPU31の指示に応じて画像を撮影し、撮影した画像データをCPU31に出力する。本実施形態では、CPU31は、内側カメラ23および外側カメラ25のいずれか一方に対して撮影指示を行い、撮影指示を受けたカメラが画像を撮影して画像データをCPU31に送る。
また、下側LCD12および上側LCD22は、それぞれCPU31に接続される。下側LCD12および上側LCD22は、それぞれCPU31の指示に従って画像を表示する。
次に、本実施形態で想定する処理の概要について説明する。
[ネットワークの全体構成]
まず、本実施形態で想定するネットワークの全体的な構成について説明する。図3は、本実施形態にかかるネットワーク構成の全体像を示す模式図である。図3で示されるゲーム装置1は、大きく分けて2種類の通信態様を用いる。1つめの通信態様は、インターネットを利用する態様である「インターネット通信」である。2つめの通信態様は、インターネットは経由せず直接的にゲーム装置同士を無線接続する「ローカル通信」である。
[インターネット通信]
まず、「インターネット通信」に関して説明する。「インターネット通信」では、上述したIEEE802.11準拠の方式でアクセスポイント(以下、APと呼ぶ)に接続し、これを介してインターネットに接続する。更に、インターネットを経由して、所定のサーバと通信を行う。
本実施形態においては、上記APは大きく2つの種類に分けられており、図3でいうと、専用AP101と一般AP102の2種類に分けられる。本実施形態において、専用AP101とは、例えば、ゲーム装置1の製造元が管理するAPをいう。つまり、ゲーム装置1の製造元は、どの専用APがどの場所に設置されているかや、各専用APの機器構成等を把握、管理している。このような専用APは、例えば、家電量販店やファーストフード店等、特定の場所に設置される。対して、一般AP102は、本実施形態では、上記専用AP以外のAP全般を示す。例えば、ユーザの個人宅に設置されたAPや、上記ゲーム装置1の製造元以外の事業者等が設置したAP等が該当する。
それぞれのAPには、いわゆるESSIDや自らが電波を発する周波数チャネルが予め設定され、各APが備えている記憶媒体(例えばフラッシュメモリ等)に記憶されている。また、専用AP101については、後述するベンダー特定情報が更に記憶されており、この内容がビーコンに含まれて発信される。
また、サーバの種類についても、本実施形態では2つに大別されており、図3では、ポリシーサーバ103と、その他一般サーバ104の2種類に分けられている。ポリシーサーバ103とは、「ポリシーデータ」と呼ばれるデータを取得するための専用サーバである。本実施形態において、ゲーム装置1は、当該ポリシーサーバ103から「ポリシーデータ」と呼ばれるデータを取得し、これに基づく処理を行うが、これら処理については詳細を後述する。一般サーバ104は、上記ポリシーサーバ103以外のサーバのことである。なお、各サーバはそれぞれ、CPU等の演算処理部、メモリやHDD等の記憶部、インターネットに接続するための通信部等を有している(図示は省略する)。
なお、本実施形態で上記のような専用APを設けているのは、上記「ポリシーデータ」については、専用APに応じた「ポリシーデータ」を定義可能とするためである。つまり、特定のAPを経由してポリシーサーバにアクセスした場合に、接続に利用しているAP(ひいてはそのAPが設置されている場所等)に応じた「ポリシーデータ」を利用可能とするためである。
[ローカル通信]
次に、もう一つの通信態様である「ローカル通信」に関して説明する。「ローカル通信」は、ゲーム装置1同士の間で直接接続を確立して通信を行う通信態様である。図3の例では、ゲーム装置1と、他のゲーム装置1との間の通信が「ローカル通信」に該当する。
上記のようなネットワーク構成と通信態様で、本実施形態では、主に以下のような処理が実行される。まず、「インターネット通信」を用いる処理として、タスクを実行する処理がある。本実施形態におけるタスクは、所定のデータの送受信を伴う処理を示す。より具体的には、「送信タスク」と「受信タスク」の2種類に分類される。但し、以下では、これらを総称して単に、タスク、と称することもある。このように、本実施形態で言うタスクは、データの送信または受信を伴う処理であるため、当該タスクの内容を示すデータには、接続先となるサーバのURL等が含まれる。以下に、本実施形態における当該タスクの例をいくつか挙げる。まず、キャンペーン等のお知らせをネットワークサービスの提供者からユーザに通知することを目的とした「お知らせデータを受信する」というタスクがある。また、この「お知らせデータ」には、所定のネットワークサービスの終了を通知する旨を含めることも可能である。このような場合は、当該サービスの終了にかかるネットワークアプリに関するタスクは消去される。また、ゲームに関連する処理として、例えば、レースゲームの全国大会が、ある期間に行われる場合を想定する。この期間において、ユーザのレースデータを全国ランキングに定期的にエントリーすることを目的として、「レースデータの送信」や「現在のランキングデータの受信」というタスクがある(このような場合は、「送信タスク」と「受信タスク」の2つのタスクが実行される)。
また、「追加コンテンツの確認」というタスクもある。これは、例えばRPGの追加シナリオ等が配信された場合を想定するタスクであり、このような「追加コンテンツの有無を示す情報の受信」というタスクがある。その結果、追加コンテンツがあれば、そのデータがダウンロードされる。
また、その他のタスクとして、本実施形態では「インストールリストの取得」というタスクがある。当該タスクは、ゲーム装置1の出荷時設定として予め設定済みのタスクである。ここで、「インストールリスト」、および、本実施形態でいう「インストール」について説明する、まず、本実施形態では、ゲーム装置1で実行されるプログラムは、システムプログラムと、アプリプログラムの2種類に大別される。システムプログラムは、ゲーム装置1のシステムを構成するプログラムを指す(これは、モジュールと呼ばれることもある)。以下の説明では、このシステムプログラムのことを「システムの構成要素」と表現することもある。一方、アプリプログラムは、上記システムプログラムの範疇に含まれない各種プログラムであり、例えば、各種のゲームプログラムの他、お絵かきアプリケーションやカメラアプリケーション、オンラインショッピングアプリケーション等のゲーム以外の各種アプリケーションプログラム(有料か無料かを問わない)が挙げられる、また、これらゲームやアプリケーションの体験版等もこれに含まれる。以下の説明では、これらを総称して、単に「アプリケーション」あるいは「アプリ」と呼ぶ。また、本実施形態では、上記「プログラム」については、例えば"exe"ファイルのような、直接的に実行可能なファイルのみならず、展開することによってプログラムファイルを含んだファイル群を生成することができる、いわゆるアーカイブファイルも含むものとする(例えば、いわゆる"zip"ファイル)。そのため、以下の説明において、例えば、「アプリをダウンロードする」というような記載をした場合は、上記直接的に実行可能なアプリプログラム(例えばexeファイル)をダウンロードする場合だけではなく、展開することで当該アプリを構成する一群のファイルが生成可能なアーカイブファイルをダウンロードすることも含まれる。
次に、上記「インストールリスト」とは、インストールすることが可能なアプリの存在を示す情報(配布中のアプリケーション一覧のようなもの)や、システムの更新情報等が含まれた情報である。本実施形態では、当該インストールリストを所定のサーバから定期的に取得することで、これらインストール可能なアプリやシステムの更新データの存在の有無の確認が可能となっている。更に、このような確認のみならず、これら更新データやアプリのダウンロードおよびインストール処理も実行される。
次に、本実施形態における「インストール」について説明する。本実施形態において、「インストール」とは、上記システムプログラムやアプリプログラムをNANDフラッシュメモリ33等の記憶媒体上に格納し、更に、各システムプログラムやアプリプログラムとシステムとの関連付けまで行って実行可能な状態にすることを言う。このシステムとの関連付けとは、いわゆるメタデータの設定やレジストリの設定やドライバの設定、特に上記インストールされるプログラムに対応する権利情報(後述)の正当性チェック処理や当該権利情報の登録処理等の処理をいう。例えば、ゲーム装置1にインストールされていない新規のゲームを例にすると、このような新規のゲームのプログラムを取得して記憶媒体上に格納するだけではなく、ユーザによる各種指示の必要ないわゆる対話形式のインストーラを用いずに当該新規に取得されたゲームをユーザがすぐに実行可能な状態にまで各種設定を済ませておくことを意味する(つまり、ユーザにインストール処理にかかる操作を行わせず、また、ユーザの承諾も求めない)。このようなインストールの処理の詳細については後述する。
このように、本実施形態におけるタスクは、所定のサーバに接続して所定のデータを送受信する処理であり、このようなタスクが適宜生成されて実行されるが、その実行タイミングに関しては、大きく分けると以下の3種類のタイミングがある。
(1)時間指定実行
(2)即時実行
(3)上記専用APが関連するときの実行
これら3種類のタイミングで行われる処理については後述する。
次に、「ローカル通信」を用いた処理について説明する。上記のように、「ローカル通信」はゲーム装置1同士を無線接続して通信を行うものである。そのため、通信対戦型のゲーム等、様々な局面で利用されるが、本実施形態では、特に、後述する「すれ違い通信」と呼ばれる通信処理を前提として説明する。
次に、上述した「インターネット通信」で実行されるタスクの3種類の実行タイミングおよびその処理概要について説明するが、この説明に先立って、上記タスクに関して設定される「実行優先度」というパラメータ、および、「消尽回数」というパラメータについて説明する。実行優先度は、そのタスクが実行される優先度を示すものであり、同タイミングに実行されるべき複数のタスクが存在する場合に、これらの実行順序を決定するために用いられる。本実施形態においては、実行優先度は5段階に分けて定義されている。具体的には、優先度の高いものから、”EXPEDITE”>”HIGH”>”MEDIUM”>”LOW”>”STOPPED”という順番であるとする。このうち、”EXPEDITE”は最も実行優先度が高いことを表す。また、"STOPPED"は、そのタスクを実行しないことを示す。つまり、タスク自体は存在するが、実行させたくないような場合に”STOPPED”という実行優先度が用いられる。”HIGH”は、高優先度、”MEDIUM”は標準の優先度、”LOW”は低優先度であることを示す。本実施形態では、基本的には、”HIGH”、”MEDIUM”、”LOW”の3つを用いてタスクの実行優先度が設定される。残りの2つ”EXPEDITE”および”STOPPED”については、特殊な事情がある場合に利用される。例えば、ゲーム装置1のシステムアップデートを緊急で行いたいような場合は、システムアップデートに関するタスクを”EXPEDITE”として設定する。また、例えば、上述したようなレースゲームの全国大会が年に1回開催されると想定する。この場合に、全国大会の開催期間中は、ユーザのレースデータの送信やランキングデータの受信を行うタスクについて、上記”HIGH”、”MEDIUM”、”LOW”の3つの実行優先度を用いて適宜設定する。一方、全国大会の期間が終了すれば、当該タスクについては”STOPPED”を設定することで、当該タスクの実行が停止される。その後、1年後に再び全国大会が始まれば、当該タスクの実行優先度を”HIGH”、”MEDIUM”、”LOW”を用いて適宜設定することで、当該全国大会の期間中だけ当該タスクを実行させることが可能である。
次に、消尽回数について説明する。上記タスクが生成される際に消尽回数として所定の数値が初期値として設定される。当該消尽回数は、タスクが実行される毎に例えば1ずつ減算されていく。また、当該タスクに対応するゲーム等が起動される度に、消尽回数は初期値にリセットされる。そして、消尽回数が0になったタスクは(換言すれば、このようなタスクに対応するゲーム等が長期間実行されていないことを示すことになる)、上記実行優先度に関わらず実行されない(タスク自体は消去されずに存在する)。
このように、本実施形態では、実行優先度や消尽回数というタスクの実行制御用のパラメータを用いてタスクの実行制御が可能である。また、これらの実行制御用パラメータは、後述するポリシーデータによって変更可能となっている。
以下、上記の実行優先度と消尽回数を踏まえて、「インターネット通信」で実行されるタスクの3種類の実行タイミングおよびその処理概要について説明する。
[時間指定実行]
まず、時間指定実行は、上記タスクを生成するときに、その実行時刻を指定して生成する。そして、指定された時刻が到来したら、そのタスクが実行されるというものである。この時間指定実行は、「スリープモード」中であっても実行される。また、タスクの内容によっては、後述するようなインストール処理も実行されるものもある。そのため、本実施形態では、以下のような運用が可能となる。
例えば、ゲーム装置1が通常電力モードのときにおいて、ユーザの操作等に応じて「新作無料ゲームの有無を確認する」という内容のタスクが生成されたとする(上記のように、確認先のサーバのURL情報もタスクのデータに含まれている)。このとき、当該タスクの実行予定時刻を15:00と指定して生成したとする。その後、ユーザがゲーム装置1の電源ボタン14Fを押して「スリープモード」に移行させ、当該ゲーム装置1を持って、例えば12:00頃に外出したとする。このとき、「スリープモード」に入る直前のゲーム装置1には、図4に示すようなメニュー画面が表示されていたものとする。
その後、15:00になると、ゲーム装置1は、上記タスクの実行を試みる。すなわち、15:00になると、まず、CPU31およびメインメモリ32への電力供給を一旦再開する。そして、インターネットに接続するために、接続可能なAPをサーチを開始する。ここでは、予め設定画面などでESSID等を登録した一般AP102のサーチを行う。そして、接続可能なAPがあれば、当該APを経由して、上記ポリシーサーバ103に接続する。そして、「ポリシーデータ」をポリシーサーバから取得する。詳細は後述するが、当該ポリシーデータには、上記タスクの実行優先度を定義した情報、すなわち、タスクの実行制御のためのパラメータが含まれる。なお、一般APのそれぞれについて異なるポリシーデータを定義することは困難であるが、一般APに共通するポリシーデータを取得させることや、本体に設定されている国情報などによって異なるポリシーデータを取得させることもできる。その後、上記タスクに含まれるURL情報に従って、サーバに接続し、新作の無料ゲームの有無を示すデータを取得する。次に、当該データに基づいて新作の無料ゲームの有無を判定し、当該無料ゲームがあるときは、更に、当該無料ゲームのプログラムがアップされている所定のサーバへ接続する。そして、当該無料ゲームのデータを取得し、ゲーム装置1にインストールする。その後、CPU31への電力供給を停止する。その結果、例えば、18:00に自宅に帰ってきたユーザが当該ゲーム装置1の電源を入れる(スリープモードから通常電力モードへ移行させる)と、図5に示すように、新たにインストールされたアプリケーションがあることを示すプレゼントアイコン112が追加されているメニューが表示される。そして、ユーザが当該プレゼントアイコン112を選択して所定のボタンを押下すれば、プレゼント箱が開くアニメーション効果が表示された後、今回インストールされた新作の無料ゲームを示すアイコンが当該プレゼントアイコン112と置き換わって表示される。
また、その他、本実施形態では次のような運用も可能である。例えば、インストール済みのゲームに関して、「追加コンテンツの有無を確認する」という旨のタスクが生成されたとする。その実行予定時刻は上記同様15:00であるとする、そして、上述したのと同様に、ユーザがゲーム装置1をスリープモードにして12:00頃に外出し、その後、15:00頃にこのタスクが実行されて、あるゲーム、ここでは、図4のアイコン111にかかるゲームの追加コンテンツ(例えば、RPGにおける追加シナリオ)がダウンロードされたとする。このような場合は、18:00に自宅に帰ってきたユーザが当該ゲーム装置1をスリープモードから通常電力モードへ移行させると、図6に示すように、追加コンテンツの存在を示す「New!」のマークがアイコン111の近傍に表示される。これにより、アイコン111の表すゲームについて、何らかの新しいコンテンツが届いたことをユーザに知らせている。
上記のような処理によって、ユーザが外出する前と外出から帰って来た後で、ゲーム装置1のメニューの構成を異なったものとすることが可能となる。
もちろん、「通常電力モード」のときにおいても時間指定実行は可能である。例えば、上記ユーザが外出せずに、15:00頃は自宅でゲームをプレイしていたとしても、当該ゲームの処理と並行して(つまり、バックグラウンド処理として)上記のような無料ゲームの取得およびインストールを行っても良い。この場合は、ユーザがゲームのプレイを終えた後、メニュー画面に遷移が行われたときに、メニュー構成が変わっていること、つまり、知らない間にプレゼントアイコン112(つまり、何らかの新しいソフトウェア要素)がメニューに加わっていることに気付くことになる。
なお、結果的に同時刻に複数のタスクが実行されるような状況になった場合は、上記実行優先度に基づき、各タスクの実行順序が適宜決定される。
[即時実行]
次に、上記タスクの即時実行に関して説明する。即時実行は、ユーザの指示等に応じて即時にタスクが実行されるというものである。例えば、ユーザが手動で所定のタスクの実行を指示する操作を行うような場合である。
[専用APが関連するときのタスク実行]
次に、専用APが関連するときのタスク実行に関して説明する。上記のように、「スリープモード」においても、無線通信モジュール34には電力は供給されているため、電源が完全に切断されない限りは、基本的に無線通信モジュールは常時稼働している。そのため、本実施形態では、無線通信モジュール34は、「通常電力モード」においても「スリープモード」においても、ビーコンのスキャン(いわゆるパッシブスキャン)を繰り返し行っている。ここで、上記専用AP101から発信されるビーコンには、そのAPが上記ゲーム装置1のメーカーが管理するものであることを示す情報が含まれている。例えば、IEEE802.11規格において定義される、上記ビーコンの情報要素の一つである"Vendor Specific"に、このような情報(以下、ベンダー特定情報と呼ぶ)が含まれる。そこで、本実施形態では、上記ビーコンの当該ベンダー特定情報を用いて、そのビーコンが上記専用APから発信されたものであるか否かを判別する。つまり、(ゲーム装置1を所持した)ユーザが上記専用AP101の近くに来ているか否かを判定する。その結果、専用AP101からのビーコンであることが判別されたときは、当該専用AP101との接続を確立し、更に、インターネットを経由して上記ポリシーサーバ103に接続する。そして、「ポリシーデータ」をポリシーサーバから取得する。詳細は後述するが、当該ポリシーデータには、上記タスクの実行優先度を定義した情報が含まれる。また、上述したように、本実施形態では、専用AP毎に異なるポリシーデータを定義することを可能としている。例えば、店舗Aに設置されている専用AP101からポリシーサーバ103に接続した場合は「ポリシーデータA」が取得され、例えば、店舗Bに設置されている専用AP101からポリシーサーバ103に接続した場合は「ポリシーデータB」が取得される。このとき、「ポリシーデータA」では、タスクの実行優先度が、例えば、「タスクA>タスクB」というような順となるように実行優先度に設定されており、「ポリシーデータB」では、「タスクB>タスクA」という実行優先度になるよう設定されているとする。その結果、ユーザが店舗Aにいるときと店舗Bにいるときとで、優先的に実行されるタスクが異なることになる。その結果、各店舗(正確には、各店舗に設置されている専用AP101)に応じたタスクの実行制御を行うことが可能となっている。さらに、専用AP101と本体に設定されている国情報などの情報の双方に基づいて異なるポリシーデータを取得させることもできる。
また、本実施形態では、上記ポリシーデータには、消尽回数を変更するための情報も含まれることがある。このような情報が含まれている場合、例えば、消尽回数が0になったタスクに対して消尽回数が1に設定される。その結果、1度だけ当該タスクを実行させることも可能となる。
このように、本実施形態では、ゲーム装置1を所持したユーザが専用AP101の近くに来れば、ゲーム装置1は上記ポリシーサーバ103からポリシーデータを取得する。そして、ポリシーサーバ103との接続に用いた専用AP101に応じて、当該ゲーム装置で実行されるタスクの実行優先度が変更可能である。これにより、上述のように、店舗に応じて優先的に実行されるタスク(ひいては、タスクの実行順序)に変化を与えることができる。また、その他、例えば、専用AP101が設置されている店舗Aにユーザが立ち寄ったときに、当該店舗Aに特有のデータ(例えば、その店舗の専用AP101経由でしか入手できないゲーム中のアイテム等)をダウンロードさせるようなタスクが最優先で実行されるようにすることが可能となる。また、消尽回数についても変更可能であるため、例えば、消尽回数が0になり、長期間実行されていないタスクが、ある店舗を訪れた際に復活して実行されるということが可能になる。そして、当該タスクの実行結果として何らかの通知を画面に表示することで、ユーザに驚きを与えたり、積極的に情報収集を行わないユーザに対して「気づき」を与えることが可能となる。その結果、例えば、長期間プレイされていなかったゲームを再度プレイしてもらうことへの動機付けをユーザに提供することが可能となる。
上記のように、ゲーム装置1が「スリープモード」のときにも、上記のような「インターネット通信」およびタスクの実行(サーバとの間でデータの送受信)を行うことで、本実施形態では、本来は常時接続型の端末ではないゲーム装置1であるにもかかわらず、あたかも常時接続であるかのような振る舞いをユーザに見せることができる。その結果、ユーザは、主導的・積極的にネットワークへの接続操作等を行わずとも、各種通知や無料アプリなどの入手が可能となり、また、知らないうちにゲーム装置1のソフト構成が変化していることにより驚きと楽しみをユーザに提供する事が可能となる。
次に、上記「ローカル通信」を利用した「すれ違い通信」の処理概要について説明する。図7〜図10は、当該「すれ違い通信」について説明するための図である。まず、本実施形態では、NANDフラッシュメモリ33内に「すれ違い通信」用のデータ領域が確保されている。図7は、このすれ違い通信用のデータ領域を示す模式図である。図7において、当該領域は複数の「スロット」の集合で構成されている。各スロットは、所定のアプリケーションまたはゲームと対応づけられている。この対応付けは、ユーザが所定の操作を行うことで、ユーザが任意で対応付け可能となっている。各スロットは、対応付けられているアプリまたはゲームを示すIDと送信用ボックス、受信用ボックスで構成されている。そして、「すれ違い通信」は、ゲーム装置1間で、自動的に繰り返しお互いをサーチし、お互いを検出した場合、自動的にこのボックス内のデータを送受信するものである。
以下に一例を示す。例えば、ユーザAが自己の所有するゲーム装置Aにおいて、あるゲームAをプレイしたとする。その結果、当該ゲームAの処理において、「宝の地図その1」を示すデータが、ゲームAに対応付けられているスロットの送信用ボックスに格納される。更に、当該ユーザAが別のゲームBをプレイし、当該ゲームBの処理において、ゲーム中で利用可能な「傭兵」である「戦士」のデータがゲームBに対応付けられているスロットの送信用ボックスに格納される。図8は、このような、ユーザAのゲーム装置Aにかかる格納状態を示す模式図である。
同様に、ユーザBが自己の所有するゲーム装置BにおいてゲームAをプレイし、その結果、「宝の地図その3」を示すデータがゲームAに対応付けられているスロットの送信用ボックスに格納される。また、ユーザBがゲームBをプレイした結果、「魔術師」の傭兵データがゲームBに対応付けられているスロットの送信用ボックスに格納される。図9は、ユーザBのゲーム装置Bにおける格納状態を示す模式図である。
以上のような格納状態を前提として、ユーザA、ユーザBが共に、それぞれの所有するゲーム装置を所持して外出したと仮定する。ゲーム装置はそれぞれ「スリープモード」に移行しているとする。また、共に「すれ違い通信」を行うことを許可する設定がなされているものとする。また、この「スリープモード」の間、ゲーム装置1はそれぞれ、「すれ違い接続要求」という信号(すれ違い通信用のビーコン)を周期的に発信している。図10は、このような前提における「すれ違い通信」を示す模式図である。図10において、ユーザAの出発点は地点Aであり、ユーザBの出発点は地点Cであるとする。その後、両者が地点Eに到達し、それぞれのゲーム装置がローカル通信可能な範囲まで接近したとする。このとき、一方のゲーム装置が発する「すれ違い接続要求」が他方のゲーム装置により受信され、これに基づいてゲーム装置同士の「ローカル通信」のための接続が確立される。そして、次のようなデータ交換が行われる。すなわち、ユーザAのゲーム装置Aにおける送信用ボックス内のデータが、ゲーム装置Bの、それぞれ対応するゲームのスロットの受信用ボックスに送信される。具体的には、ゲームAの「宝の地図その1」が、ゲーム装置BのゲームAに対応付けられたスロットの受信用ボックスに送信される。同様に、ゲーム装置AのゲームBの「戦士の傭兵データ」が、ゲーム装置BのゲームBのスロットの受信用ボックスに送信される。同様に、ゲーム装置Bからゲーム装置Aに向けて、「宝の地図その3」と「魔術師の傭兵データ」がそれぞれ対応するゲームのスロットの受信用ボックスに送信される。
その結果、例えば、図10の地点Bで示されるように、「すれ違い通信」後のゲーム装置Aでは、ゲームAのスロットには、送信用ボックスに「宝の地図その1」、受信用ボックスには「宝の地図その3」が格納されている。また、ゲームBのスロットには、送信用ボックスに「戦士の傭兵データ」、受信用ボックスには「魔術師の傭兵データ」が格納されている。そして、ユーザAは、当該受信用ボックスに格納されたデータをそれぞれ対応するゲームにおいて利用することが可能となる。同様に、ゲーム装置Bについても、地点Dで示されるように、ゲーム装置Aから受信した「宝の地図その3」「戦士の傭兵データ」データが格納されており、ユーザBは、これらのデータをそれぞれ対応するゲームにおいて利用可能となっている。
このように、本実施形態における「すれ違い通信」は、ゲーム装置1が「スリープモード」のときに、すれ違い通信用の記憶領域に格納されている所定のデータの送受信を「ローカル通信」を利用して行うものである。但し、通信対象となるアプリケーションについては、双方共に上記スロットに設定しているゲームタイトルに限る。例えば、上記ユーザBが、ゲームBのみ上記スロットに対応付けており、ゲームAについてはゲーム自体を所有していないような場合は、ゲームBに関するデータのみ送受信が行われ、ゲームAのデータの送受信は行われない。
次に、ゲーム装置1において行われる上記のような処理の詳細を説明する。まず、本処理において用いられる主なプログラムおよびデータについて説明するが、この説明に先立ち、本実施形態における処理の実行主体に関して説明する。本実施形態では、マイコン37、無線通信モジュール34、CPU31が、それぞれ独立して、以下に説明する処理の実行主体となり、これらの処理が互いに連携しながら並列的に実行される。主な処理内容の分担を説明すると、マイコン37は、主に、ゲーム装置1の開け閉めの検知や電源制御モードの切替制御、タスク実行時刻の時間管理等に関する処理を担当する。無線通信モジュール34は、主に、すれ違い通信の実行開始条件の監視や、インターネット通信に際しての、APからのビーコンのスキャン等の処理を担当する。CPU31は、主に、上記マイコン37、無線通信モジュール34の担当する処理以外の処理全般を担当する。例えば、アプリケーションの実行、タスクの実行などである。
ここで、以下の説明の一助のために、図11に、本実施形態で実行される各種機能(プログラム)の相関関係を示す。図11では、マイコン37が実行するマイコン処理と、無線通信モジュール34が実行する無線モジュール処理と、CPU31が実行する起動時処理とが並列して実行可能であることを示す。図11の各要素は、後述する図12〜図14で示される各種プログラムに対応する。図11において、例えば、マイコン37が実行する「マイコン処理」というプログラムにおいて、「ローカル通信用BG(BackGround)処理」が呼び出されて実行されることが示されている。更に、当該「ローカル通信用BG処理」においては、「インターネット通信用BG処理」が呼び出されて実行されることを示す。また、当該「ローカル通信用BG処理」は、無線通信モジュール34が実行する「無線モジュール処理」においても呼び出されることがあり、CPU31が実行する起動時処理においても呼び出されることがあることが示されている。
以下、本処理において用いられる主なプログラム、データについて説明する。図12は、マイコン37に内蔵されている記憶領域(図示せず)に記憶される主なデータを示す図である。マイコン37内部には、プログラム領域301とデータ領域303が存在し、プログラム領域301には、上記のようなマイコン37が担当する処理を実行するためのマイコン処理プログラム302が記憶され、データ領域303には、給電状態フラグ304、次回起床時刻305が記憶される。給電状態フラグ304は、「スリープモード」であるか否かを示すためのフラグである。オンに設定されているときは「通常電力モード」、オフに設定されているときは、「スリープモード」であるとする。次回起床時刻305は、「スリープモード」を解除する時刻を示すデータである。基本的には、各タスクに設定される次回実行時刻のうち、最も早い時刻が次回起床時刻305として設定されることになる。但し、後述するように、現在の時刻から次回の実行時刻までの時間が短すぎる場合や長すぎる場合には、若干の調整が行われる。
図13は、無線通信モジュール34に内蔵されている記憶領域(図示は省略)に記憶される主なデータを示す図である。無線通信モジュール34内の記憶領域には、プログラム領域401とデータ領域403が存在し、プログラム領域401には、上記のような無線通信モジュール34が担当する処理を実行するための無線モジュール処理プログラム402が記憶され、データ領域403には、専用AP識別情報404、既通信端末/専用AP情報405、抽出アプリID406が記憶される。
専用AP識別情報404は、上記専用AP101を識別するための文字列である。上述したビーコンに含まれるベンダー特定情報と、当該専用AP識別情報404とが照合されることで、専用AP101か否かの判定が可能となる。既通信端末/専用AP情報405は、短期間内で同じ通信相手と連続して通信を行わないようにするための情報である。具体的には、所定の通信相手と通信が行われると、当該通信を行った相手のMACアドレスおよび通信時刻が既通信端末/専用AP情報405として、所定期間、記憶される(複数台分記憶可能である)。ここに記憶されている通信相手については、その存在が検知されても、通信が行われないように制御される。これにより、同じ通信相手と立て続けに通信を繰り返すことを避けることができる。
抽出アプリID406は、後述するすれ違い通信用データ520のアプリID522を抽出して記憶したデータである。このデータは、上記のような「すれ違い通信」の対象となるアプリケーションやゲームを示すものである。
図14は、NANDフラッシュメモリ33に記憶されるプログラム、データを示す図である。なお、これらのデータは、必要に応じてメインメモリ32に展開されて実行される。NANDフラッシュメモリ33は、プログラム領域500とデータ領域512を有しており、プログラム領域500は、システムプログラム領域515を有している。更に、プログラム領域500には、複数のアプリケーションプログラム511が記憶されている。
システムプログラム領域515には、メニュー処理プログラム501、タスク生成処理プログラム502、ローカル通信BG処理プログラム503、インターネット通信BG処理プログラム504、ポリシー処理プログラム505、タスク実行処理プログラム506、実行順ソート処理プログラム507、システムインストール処理プログラム508、アプリインストール処理プログラム509、等が記憶される。
メニュー処理プログラム501は、本体メニューに関する処理を実行するためのプログラムである。タスク生成処理プログラム502は、各タスクを生成するためのプログラムである。
ローカル通信BG処理プログラム503およびインターネット通信BG処理プログラム504は、上記「ローカル通信」や「インターネット通信」に関する処理を実行するためのプログラムである。
ポリシー処理プログラム505は、上記「ポリシーデータ」の取得やこれに基づくタスクの優先度変更等の処理を実行するためのプログラムである。タスク実行処理プログラム506は、各タスクを実行するためのプログラムであり、実行順ソート処理プログラム507は、当該タスクの実行に際して、その実行順序を決定するためのプログラムである。システムインストール処理プログラム508は、システムのアップデートに関する処理を行うためのプログラムである。
アプリインストール処理プログラム509は、例えばゲームの体験版や無料アプリケーション等のアプリケーションを新規にインストールしたり、既にインストール済みであるゲームやアプリケーションのアップデート(更新)の処理を行うためのプログラムである。
アプリケーションプログラム511は、例えばゲームなどの各種アプリケーションを実行するためのプログラムである。なお、ここでは便宜上「プログラム」と示しているが、当該アプリケーションの実行で用いられるデータの一部についても当該アプリケーションプログラムに含まれるものとする。
また、図示は省略するが、システムプログラム領域515には、上記の各種データの他、システムプログラムの更新用のファイルが、更新対象のシステムプログラムのファイル名とは異なるファイル名をつけられて格納されることもある。詳細は後述するが、システムの更新を反映する処理が実行されるときに、更新対象となるシステム要素(例えば、「メニューの実行」)の参照情報(当該「メニューの実行」の実体となるプログラムのファイル名)がこの別名で格納されたファイル名を指し示すように変更されることでシステムプログラムの更新の反映が行われる。例えば、上記「メニューの実行」というシステム要素があり、更新前の状態では、当該要素を実行するための実行プログラムのファイル名が”menu0101.exe”であるとする。そして、いわゆるレジストリ情報として、「メニューの実行」という要素と"menu0101.exe"とが関連づけられているとする(以下、このようなレジストリ情報を「実体プログラムへの参照情報」と呼ぶ)。その後、更新ファイルがダウンロードされ、そのファイル名が"menu0201.exe"として格納されたとする。このような場合、当該システムプログラムの更新の反映については、上記「実体プログラムへの参照情報」を”menu0101.exe”から”menu0201.exe”に変更する(つまり、レジストリ情報を変更する)ことで更新の反映がなされる。
次に、データ領域512について説明する。データ領域512には、すれ違い通信用データ520、タスクデータ530、アプリ関連データ550、本体設定データ560、受信ポリシーデータ570、インストールリスト580、オン・ザ・フライ用キャッシュ600、権利情報データベース610、システムインストール済みフラグ620、アプリインストール必要フラグ630、現在のシステム構成の詳細リスト640、構成要素比較用データ650、削除履歴660、プレイ履歴670等が記憶される。
すれ違い通信用データ520は、上述したような「すれ違い通信」において送受信するためのデータである。図15は、すれ違い通信用データ520のデータ構造の一例を示した図である。すれ違い通信用データ520は、スロット521の集合から構成される。各スロット521は、アプリID522、送信用ボックス523、受信用ボックス524から構成される。アプリID522は、当該スロット521に対応付けられているアプリケーションやゲームを特定するためのIDである。送信用ボックス523には、「すれ違い通信」において他のゲーム装置1に送信するためのデータが格納される。受信用ボックス524には、「すれ違い通信」において他のゲーム装置1から受信したデータが格納される。
図14に戻り、タスクデータ530は、本実施形態において実行されるタスクの内容について定義したデータである。図16は、タスクデータ530のデータ構造の一例を示した図である。タスクデータ530は、複数のタスク設定531が格納される。各タスク設定531は、アプリID532、タスクID533、実行優先度534、通信先URL535、ファイルパス536、次回実行時刻537、実行間隔538、送信/受信識別フラグ539、消尽回数540、未処理フラグ541、一時変更フラグ542、タスクリビジョン543、前回完了時刻544、タスク登録時刻545等から構成される。
アプリID532は、そのタスクに関連するアプリケーションやゲーム(典型的には、当該タスクの作成元になったアプリケーションやゲーム)を示すIDである。タスクID533は、当該タスクを識別するためのIDである。
実行優先度534は、当該タスクの実行優先度を示すデータであり、上述したような”EXPEDITE”、”HIGH”、”MEDIUM”、”LOW”、”STOPPED”を示す情報が格納される。
通信先URL535は、当該タスクの通信先(典型的には、データのアップロード先、あるいはダウンロード元のサーバ)を示す。ファイルパス536は、上記アップロードあるいはダウンロードするデータのゲーム装置1内における保存場所を示すデータである。つまり、上記通信先に対してアップロードするデータが存在するゲーム装置1内の場所、あるいは、ダウンロードしたデータを格納するゲーム装置1内での場所を示すデータである。
次回実行時刻537は、当該タスクが次に実行されるべき時刻を示すデータである。実行間隔538は、当該タスクの実行間隔を示すデータである。例えば、1日毎、3日毎、1週間毎、等を示すデータが格納される。上記次回実行時刻537の決定の際に、当該実行間隔538が用いられる。
送信/受信識別フラグ539は、そのタスクが所定のデータを送信する「送信タスク」であるか、所定のデータを受信する「受信タスク」であるかを示すフラグである。例えば、当該フラグがオンに設定されていれば「受信タスク」であり、オフに設定されていれば「送信タスク」であることを示す。
消尽回数540は、上述したような当該タスクの消尽回数である。この回数が0になったタスクは、実行優先度534の内容に関わらず実行されない。未処理フラグ541は、当該タスクが実行されたか否かを示すフラグであり、オンに設定されていれば実行済み、オフに設定されていれば未実行であることを示す。一時変更フラグ542は、タスクの実行優先度534が後述のポリシーデータに基づいて変更された際に、その優先度の変更が一時的なものか否かを示すフラグである。
タスクリビジョン543は、当該タスクに適用されたポリシーの最終のリビジョンを示すデータである。前回完了時刻544は、当該タスク設定531にかかるタスクが最後に実行されて正常に完了した時刻を示すデータである。タスク登録時刻545は、当該タスク設定531が一番最初に生成・登録された時刻を示すデータである。
図14に戻り、次に、アプリ関連データ550は、ゲーム装置1にインストールされている各種アプリに関連するデータである。図17は、アプリ関連データ550のデータ構造の一例を示した図である。アプリ関連データ550には、複数のアプリケーション領域551が含まれている。各アプリケーション領域551には、アプリID552、タスク受信キャッシュ553、新規インストールフラグ554、セーブデータ555、新規アップデートフラグ559が記憶される。アプリID552は、当該アプリケーション領域551に対応するアプリケーションを示すためのIDである。タスク受信キャッシュ553は、上記「受信タスク」が実行された結果、受信したデータが格納される領域である。そのため、「受信タスク」の場合は、上記タスク設定531のファイルパス536で当該タスク受信キャッシュ553の位置を示す情報(例えばアドレス)が、示される。
新規インストールフラグ554は、当該アプリが新規にインストールされたアプリケーションか否かを示すフラグである。当該フラグがオンに設定されていれば、上記アプリIDで示されるアプリケーションが新規にインストールされたアプリケーション(例えば、新作ゲームの体験版や、新作の無料アプリケーション等)であることを示す。
セーブデータ555は、当該上記アプリID552で示されるアプリケーションに関するセーブデータであり、タスク送信用データ556、タスク受信データ557、すれ違い受信データ558で構成されている。その他、例えば、当該アプリケーションがゲームであれば、プレイヤキャラクタのデータやゲームの進行を示すデータ等も含まれる。
タスク送信用データ556は、「送信タスク」において送信されるべきデータである。当該データの場所を示す情報(例えばアドレス)が、上記タスク設定531のファイルパス536で示される。タスク受信データ557は、上記タスク受信キャッシュ553のデータが、当該アプリケーションの実行に際してコピーされるものである。その結果、セーブデータ555の一部として扱われ、当該アプリケーションの処理において利用可能となる。すれ違い受信データ558も同様に、当該アプリケーションの実行に際して上記すれ違い通信用データ520の受信用ボックス524からコピーされるものである。
新規アップデートフラグ559は、当該アプリの更新用のファイルがダウンロードされたか否かを示すフラグである。当該フラグがオンに設定されていれば、上記アプリID552で示されるアプリの更新ファイルがダウンロードされていることを示す。
図14に戻り、本体設定データ560は、ゲーム装置1に登録される各種設定等のデータである。例えば、ユーザの氏名や年齢、国情報のユーザ情報が含まれる。また、例えばユーザの自宅に設置したAPのESSID(Extended Service Set Identifier)やパスワード等のネットワーク設定等も含まれる。このネットワーク設定については、ゲーム装置1においてネットワーク設定のための処理が適宜実行されることで、ユーザの操作に応じて適宜設定され、記憶される。また、このネットワーク設定には、上記ユーザの設定によるものの他、出荷時設定として予め設定されている所定のプロバイダのAPのESSID等(例えば、公衆無線LANスポット等)も含まれる。その他、ゲーム装置1のシステムソフトウェアの最終更新日時等も記憶される。
受信ポリシーデータ570は、上述したようなポリシーサーバ103から受信したポリシーデータである(そのため、ポリシーサーバ103に記憶されているポリシーデータの構造も、当該受信ポリシーデータ570と同様である)。図18は、受信ポリシーデータ570のデータ構造の一例を示した図である。受信ポリシーデータ570は、ポリシーリビジョン571、ポリシー更新日時572、AP情報573、および、複数のポリシー設定574から構成される。
ポリシーリビジョン571は、当該受信ポリシーデータ570のリビジョンを示すデータである。ポリシー更新日時572は、当該ポリシーデータが更新された日時(ポリシーサーバにアップされた日時)を示すデータである。AP情報573は、当該受信ポリシーデータ570と関連づけられているAPを示す情報である。
ポリシー設定574は、実行優先度等を変更する対象となるタスクとその変更内容について定義したデータである。各ポリシー設定574は、アプリID575、タスクID576、実行優先度577、タスク永続性578から構成されている。アプリID575は、ポリシーデータの適用対象となるアプリケーションを示すIDである。タスクID576は、ポリシーデータの適用対象となるタスクを示すデータであり、上記タスクデータ530のタスクID533を個別に指定するほか、例えば「全てのタスク」のように、総称的な指定や複数のタスクをまとめて指定することを示すデータが格納されることもある。
実行優先度577は、変更後の実行優先度を示す。タスク永続性578は、今回の変更が一時的な変更であるか永続的な変更であるかを示すフラグである。オンに設定されていれば、永続的な変更であることを示す。
図14に戻り、次に、インストールリスト580は、システムのアップデートや体験版アプリのインストール等、何らかのアプリのインストールが必要な場合に、そのインストール内容を示すためのデータである(インストール内容のインデックス的なものである)。ここで、本実施形態では、当該「インストールリストの取得」というタスクが、ゲーム装置1の出荷時の初期設定の一つとして予め上記タスクデータ530に登録されている。また、当該初期設定型のタスクであることを示すために予め定められた値が上記タスクID533として定義されている。本実施形態においては、当該インストールリスト580は、ゲーム装置1のシステム的な機能の一環として、定期的に取得されるものとする。
図19は、インストールリスト580のデータ構造の一例を示した図である。図19において、インストールリスト580は、リストリビジョン581、AP情報582、システムアップデート情報583、および、アプリ情報589から構成されている。
AP情報582は、当該インストールリスト580に関連づけられたAPを示す情報である。つまり、上記ポリシーデータと同様に、インストールリスト580もAP毎に異なる内容のものを定義可能である。
システムアップデート情報583は、システムを構成する各種システムプログラムのうち、アップデート可能なシステムプログラム(モジュール)を示す情報である。ここでは、システムプログラムを構成要素584として示している。アップデート対象となるシステムプログラムが複数ある場合は、複数の構成要素584がシステムアップデート情報583に含まれることになる。構成要素584は、構成要素ID585、優先順位586、バージョン情報587を含む。
構成要素ID585は、各構成要素を一意に識別するためのIDである。優先順位586は、この構成要素をダウンロードするためのタスクの優先順位(上記実行優先度534)を示すデータである。バージョン情報587は、当該構成要素のバージョンを示すデータである。
アプリ情報589は、インストール対象となりうるアプリケーションに関して定義したデータである。また、インストールリスト580には、複数のアプリ情報589が含まれることもあるし(複数のアプリの更新がある場合等)、一つも含まれない場合(システムの更新しかない場合等)もあり得る。アプリ情報589は、アプリID590、アプリバージョン591、アプリ種別592、レーティング情報593、優先順位594、ダウンロード条件情報595等から構成される。
アプリID590は、インストールされるアプリを識別するためのIDである。アプリバージョン591は、インストールされるアプリケーション等のバージョンを示す。アプリ種別592は、そのインストールにかかるアプリケーションの種別を示すデータである。例えば、体験版アプリであるか、無料アプリであるか、後述の「特典アプリ」であるか等が示される。レーティング情報593は、そのインストールにかかるアプリのレーティング(対象年齢)を示す情報である。本体設定データ560に含まれるユーザの年齢情報等に応じて、実際にインストールを行うか否かが決定される。
ダウンロード条件情報595は、当該アプリをダウンロードするため必要な条件を示すデータである。これは、例えば、あるゲームを所定時間以上プレイした場合の「特典」として、特典用のアプリをダウンロードさせるような場合を想定したものである。本実施形態では、この条件として、当該ゲームのプレイの履歴を利用する。具体的には、当該ダウンロード条件情報595には、DLするために所持している必要があるゲームのアプリIDと、当該ゲームの必要プレイ時間を示す情報が含まれている。なお、このようなダウンロードのための条件が無いアプリ(ダウンロード条件が設定されていないアプリ)の場合は、当該情報には何も値は設定されないものとする。なお、以下の説明では、このような条件のことを「プレイ履歴条件」と呼ぶ。また、プレイ履歴条件が設定されているアプリのことを特に「特典アプリ」と呼ぶこともある。
図14に戻り、オン・ザ・フライ用キャッシュ600は、ゲーム装置1のシステムアップデートに際して、インストール方式が「移動型」であるシステムアップデート用のデータを格納するための領域である。本実施形態では、システムアップデート用のデータは、圧縮ファイルとしてサーバにアップロードされる。そして、ゲーム装置1は、インストール方式が「移動型」のシステムアップデートの処理を行う際は、当該圧縮ファイルをダウンロードするのと並行して、いわゆるオン・ザ・フライで当該圧縮ファイルの展開が行われる。この展開先が、当該オン・ザ・フライ用キャッシュ600である。また、ここに格納されるアップデート用データのファイル名は、上述のように、更新対象のファイル名と同じ名前で格納される。例えば、あるシステムデータのファイル名が「firmware.bin」であるとすると、オン・ザ・フライ用キャッシュ600に格納されるアップデート用データのファイル名も「firmware.bin」として格納される。後述するが、「移動型」のシステムアップデート処理では、オン・ザ・フライ用キャッシュ600に格納されたファイルが、システムプログラム領域515に移動されることでアップデートの反映が完了する。
権利情報データベース610は、アプリケーションの実行に際して所定の認証を行うために用いる情報である権利情報が含まれたデータベースである。なお、権利情報は各アプリについてそれぞれ用意されており、アプリのダウンロード時に併せて取得される。
システムインストール済みフラグ620は、システム更新用のデータが取得されている状態であって、まだその反映が成されていないか否かを示すためのフラグである。つまり、システム更新の反映が可能か否かを示すフラグである。オンに設定されているときは、未反映のシステム更新用のデータがあること、すなわち、システムの更新が可能であることを示し、オフに設定されているときは、システム更新ができない(更新の必要がない、既に最新の状態である)ことを示す。
アプリインストール必要フラグ630は、アプリをインストールする処理が必要であるか否かを示すためのフラグであり、オンに設定されている場合は、アプリをインストールする処理が必要であることを示す。
現在のシステム構成の詳細リスト640は、現在のシステムを構成している各システムプログラム(モジュール、構成要素)のファイル名やそれぞれのバージョン等、各システムプログラムに関する詳細な情報を示すデータである。
構成要素比較用データ650は、システムのアップデートの必要があるか否かを判断するために用いられる情報である。例えば、現在のシステムプログラム全体のハッシュ値等である。
削除履歴660は、ユーザの意思によって削除されたアプリを示す情報(アプリID590等)を集積したデータである。本実施形態では、当該リストに載っているアプリについては、自動的にダウンロードおよびインストールが行われない。つまり、ユーザの意思で一旦削除されたアプリについては、原則として、自動的にインストールされることを回避することになる。
プレイ履歴670は、インストールされているゲーム等の各種アプリのプレイ履歴(利用履歴)を示すデータである。図示は省略するが、当該データには、対応するアプリを示すアプリIDと、そのアプリの(最終の)起動時刻および終了時刻、バージョン情報等が含まれている。
また、その他、図示は省略するが、データ領域512には、ゲーム装置1にインストールされている各アプリのバージョン情報や追加日、最終更新日等の、各アプリに関連する各種情報(いわゆるメタデータ)を集約したデータ(メタデータ・データベース)、上述したようないわゆるレジストリ情報の集合体であるレジストリデータベース等も記憶されている。
次に、ゲーム装置1によって実行される上記のような処理の詳細について説明する。以下では、まず最初にマイコン37が行う処理について説明し、次に、無線通信モジュール34が行う処理について説明し、その後、CPU31が行う処理について説明する。
[マイコン37が実行する処理]
図20は、マイコン37によって実行されるマイコン処理を示すフローチャートである。図20で示される処理は、ゲーム装置1の電源が完全に切断されない限り、バックグラウンド処理として所定間隔で繰り返し実行される。
図20において、まず、ステップS1で、ゲーム装置1が上記「スリープモード」であるか否かが判定される。具体的には、上記給電状態フラグ304が参照されることによって「スリープモード」か否かが判定される。当該判定の結果、「スリープモード」であると判定されたときは(ステップS1でYES)、次に、ステップS2において、起床時刻(スリープモードを解除すべき時刻)が到来したか否かが判定される。具体的には、マイコン37内のRTC39が、マイコン37内の記憶領域にある次回起床時刻305と現在時刻とを比較することにより判定される。当該判定の結果、起床時刻が到来したと判定されなかったときは(ステップS2でNO)、後述のステップS6に処理が進められる。一方、起床時刻が到来したと判定されたときは(ステップS2でYES)、ステップS3において、「スリープモード」を解除し、「通常電力モード」に移行させるための命令がマイコン37からCPU31に対して発行されるとともに、給電状態フラグ304をオンにし、かつ、電源管理IC41にスリープを解除する旨を通知する。なお、ここでは「通常電力モード」に移行させる場合を例にしたが、この他、上述したようなLCDへの電源は供給しない「モニタオフモード」に移行させてもよい。つまり、CPU31に電力を供給する電源制御モードであればよい。
次に、ステップS4において、CPU31によって、ローカル通信用BG処理が実行される。当該処理の詳細については後述するが、ここで行われる処理概要を簡単に説明する。この流れにおけるローカル通信用BG処理においては、結果的には、上記「インターネット通信」による、一般AP102およびインターネットを介した所定のサーバへの接続、および、上記タスクの実行が行われる。また、必要に応じて、インストール処理も実行されることになる。そして、当該ローカル通信用BG処理が終われば、後述するステップS6に処理が進められる。
一方、上記ステップS1の判定の結果、ゲーム装置1が「スリープモード」ではない(つまり、「通常電力モード」で動作中)と判定されたときは(ステップS1でNO)、次に、ステップS5において、上記次回起床時刻305や上記タスクデータ530の次回実行時刻537が参照されて、起床時刻、もしくは、タスクの実行予定時刻であるスケジュール時刻が到来したか否かが判定される。当該判定の結果、いずれかの時刻が到来したと判定されたときは(ステップS5でYES)、上記ステップS4に処理が進められる。一方、いずれの時刻も到来していないと判定されたときは(ステップS5でNO)、ステップS6に処理が進められる。
次に、ステップS6において、ゲーム装置1が閉状態(ハウジングが閉じられている状態)から開状態(ハウジングが開かれた状態)に移行したか否か(つまり、ゲーム装置1が開かれたか否か)が判定される。具体的には、マイコン37は、開閉検出器40からハウジングが開かれたことを示す検出信号があったか否かを判定する。当該判定の結果、閉状態から開状態に移行したと判定されたときは(ステップS6でYES)、次のステップS7において、「スリープモード」を解除するための命令がマイコン37からCPU31に発行されるとともに、給電状態フラグ304をオンにし、かつ、電源管理IC41に、スリープを解除する旨を通知する。続くステップS8において、「スリープモード」から復帰したこと(解除されたこと)を示す旨がマイコン37から電源制御IC41に通知される。これに応じて、電源管理IC41は、適宜、ゲーム装置1の各構成部品への電力供給を開始する。
一方、ステップS6の判定の結果、ゲーム装置1が閉状態から開状態に移行していないと判定されたときは(ステップS6でNO)、次に、ステップS9において、ゲーム装置1が開状態から閉状態に移行したか否か(つまり、ゲーム装置1が閉じられたか否か)が開閉検出器40からの信号により判定される。その結果、ゲーム装置1が開状態から閉状態に移行したと判定されたときは(ステップS9でYES)、次のステップS10において、「スリープモード」に移行させるための命令がマイコン37からCPU31に発行されるとともに、給電状態フラグ304をオフにし、かつ、電源管理IC41に、スリープに移行する旨を通知する。更に、続くステップS11において、「スリープモード」に移行する旨の通知がマイコン37から電源管理IC41に対して発行される。これに応じて、電源管理IC41は、適宜、ゲーム装置1の各構成部品への電力供給を停止する。一方、ステップS9の判定の結果、ゲーム装置1が開状態から閉状態に移行していないと判定されたときは(ステップS9でNO)、上記ステップS10およびS11の処理がスキップされて、マイコン処理は終了する。
[無線通信モジュール34が実行する処理]
次に、無線通信モジュール34で実行される無線モジュール処理について説明する。図21〜図22は、当該無線モジュール処理を示すフローチャートである。図21で示される処理も上記マイコン処理と同様に、ゲーム装置1の電源が完全に切断されない限り、バックグラウンド処理として所定間隔で繰り返し実行される。
図21で、まずステップS21において、上記無線通信モジュール34内の記憶領域の既通信端末/専用AP情報405が参照されて、前回の通信から所定時間経過したMACアドレスが記憶されているか否かが判定される。上述したように、既通信端末/専用AP情報405には最終な通信時刻が記憶されているため、この時刻と現在時刻とを比較することで、所定時間が経過したMACアドレスの有無が判定される。
当該判定の結果、前回の通信から所定時間経過しているMACアドレスが記憶されていると判定されたときは(ステップS21でYES)、ステップS22において、当該条件を満たすMACアドレスおよびこれと関連づけられている最終の通信時刻のデータが既通信端末/専用AP情報405から削除される。そして、ステップS23に処理が進められる、一方、前回の通信から所定時間経過しているMACアドレスが記憶されていないと判定されたときは(ステップS21でNO)、上記ステップS22の処理はスキップされ、次のステップS23に処理が進められる。
ステップS23において、「すれ違い接続要求」がブロードキャスト送信される。この「すれ違い接続要求」とは、上記すれ違い通信用データ520に何らかのデータが記憶されているときに、上述したような「すれ違い通信」を希望していることを他のゲーム装置1に知らせるための要求信号である。当該信号には、自身のMACアドレスが含まれる。更に、抽出アプリID406で示されるアプリIDも含まれている。つまり、データの送受信対象となる(送受信を希望する)アプリケーションを示すデータが含まれて、「すれ違い接続要求」がブロードキャストされている。
次に、ステップS24において、「すれ違い接続応答」を受信したか否かが判定される。当該「すれ違い接続応答」とは、上記ステップS23でブロードキャスト送信した「すれ違い接続要求」を受信した他のゲーム装置1からの応答信号である。当該応答信号を受信したということは、この応答信号を返してきた他のゲーム装置1と「ローカル通信」の接続確立が可能であることを示す。当該判定の結果、他のゲーム装置1からの「すれ違い接続応答」を受信したと判定されたときは(ステップS24でYES)、次に、ステップS25において、互いのゲーム装置1において送受信対象として登録されているアプリケーションが一致するか否かが判定される。具体的には、上記受信した「すれ違い接続応答」に含まれているアプリIDと、上記抽出アプリID406とが照合される。そして、少なくとも1つ以上、一致するアプリIDがあるか否かが判定される。
当該判定の結果、一致するアプリIDが1つもないと判定されたときは(ステップS25でNO)、「すれ違い通信」は行われずに、無線モジュール処理は終了する。一方、一致するアプリIDが少なくとも1つ以上あると判定されたときは(ステップS25でYES)、当該アプリIDに関するすれ違い用データの送受信を行うための処理が実行される。具体的には、まず、ステップS26において、ゲーム装置1が「スリープモード」であるか否かが判定される。ここで、スリープ中か否かを判別するための給電状態フラグ304はマイコン37内に存在し、また、無線通信モジュール34とマイコン37はCPU31を介して接続されているため、スリープ中でCPUに通電が行われていない状態では、無線通信モジュール34は、給電状態フラグ304にアクセスする事ができない。このため、給電状態フラグ304にアクセスすることができないという結果をもって、スリープ中であるという判別が可能である。その結果、「スリープモード」であれば(ステップS26でYES)、ステップS27において「スリープモード」を解除するための命令がCPU31に発行される。また、ここでは、CPU31に電力を供給するモードであればよいので、上述の「モニタオフモード」に移行してもよい。そして、ステップS28において、ローカル通信用BG処理が実行される。一方、ゲーム装置1が「スリープモード」ではないと判定されたときは(ステップS26でNO)、「通常電力モード」で稼働していると考えられるため、上記ステップS27の処理はスキップされて、ステップS28に処理が進められる。
ステップS28においては、CPU31によって、ローカル通信用BG処理が実行される。この処理の詳細は後述するが、この流れでのローカル通信用BG処理での処理概要を簡単に説明すると、結果的に、「ローカル通信」を用いたすれ違い通信用データ520の送信が行われ、その後、受信が行われることになる。そして、当該ローカル通信用BG処理が終われば、無線モジュール処理も終了する。
一方、上記ステップS24の判定の結果、自身がブロードキャストした要求信号に対する「すれ違い接続応答」を受信したと判定されなかったときは(ステップS24でNO)、次に、ステップS29において、他のゲーム装置1からの「すれ違い接続要求」を自身が受信したか否かが判定される。当該判定の結果、他のゲーム装置1から送られた「すれ違い接続要求」を受信したと判定されたときは(ステップS29でYES)、次のステップS30において、上記既通信端末/専用AP情報405が参照され、送信元のMACアドレスが記憶されているか否かが判定される。つまり、直近の時間において「すれ違い通信」を済ませた相手からの「すれ違い接続要求」か否かが判定される。当該判定の結果、送信元のMACアドレスが既通信端末/専用AP情報405に記憶されていると判定されたときは(ステップS30でYES)、当該送信元との通信は行わずに、無線モジュール処理は終了する。
一方、送信元のMACアドレスが既通信端末/専用AP情報405に記憶されていないと判定されたときは(ステップS30でNO)、ステップS31において、上記ステップS25と同様に、「すれ違い通信」の対象として登録しているアプリのうち、一致するアプリIDが存在するか否かが判定される。当該判定の結果、一致するアプリIDがないと判定されたときは(ステップS31でNO)、当該送信元との通信は行わずに、無線モジュール処理は終了する。一方、一致するアプリIDが少なくとも1つ以上あると判定されたときは(ステップS31でYES)、ステップS32において、ステップS26と同様に、ゲーム装置1が「スリープモード」であるか否かが判定される。その結果、「スリープモード」であれば(ステップS32でYES)、ステップS33において、ステップS27と同様に、「スリープモード」を解除するための命令がCPU31に発行される。そして、ステップS34において、ローカル通信用BG処理が実行される。一方、ゲーム装置が「スリープモード」ではないと判定されたときは(ステップS32でNO)、既に「通常電力モード」で稼働していることになるので、上記ステップS33の処理はスキップされて、ステップS34に処理が進められる。
ステップS34においては、上記ステップS28同様にローカル通信用BG処理が実行されるが、この場合の処理概要としては、すれ違い通信用のデータの送信が行われ、その後、受信が行われることになる(上記ステップS28の場合とは、送信と受信の順番が逆になる)。
次に、上記ステップS29において、「すれ違い接続要求」も受信していないと判定されたときの処理(ステップS29でNO)について説明する。この場合は、専用AP101が近くに存在するか否かの判定、及び、存在する場合は専用AP101との通信を行うための処理が実行される。具体的には、図22のステップS35において、まず、アクセスポイントから発せられるビーコンのスキャンが行われる。いわゆる「パッシブスキャン」である。ここで、本実施形態では、専用AP101との通信に用いる通信チャネルは予め決められているものとする。そのため、この処理では、スリープモード移行時に当該通信チャネルを設定してから移行することで、CPU31を起動せずとも、パッシブスキャンを行うことが可能である。
次に、ステップS36において、上記スキャンの結果、専用AP101から送信されたビーコンを受信したか否かが判定される。具体的には、無線モジュール内の記憶領域に記憶されている専用AP識別情報404が、上記スキャンで得られた受信したビーコンのベンダー特定情報に含まれているか否かが判定される。当該判定の結果、専用AP101からのビーコンを受信したと判定されなかったときは(ステップS36でNO)、当該無線モジュール処理は終了する。
一方、専用APからのビーコンを受信したと判定されたときは(ステップS36でYES)、ステップS37において、当該ビーコンの送信元の専用AP101のMACアドレスが、既通信端末/専用AP情報405に記憶されているか否かが判定される。つまり、直近において既に通信済みの専用AP101からのビーコンであるか否かが判定される。当該判定の結果、既通信端末/専用AP情報405に記憶されていると判定されたときは(ステップS37でYES)、当該無線モジュール処理は終了する。
一方、既通信端末/専用AP情報405に記憶されていないと判定されたときは(ステップS37でNO)、次に、ステップS38において、ステップS26やステップS32と同様に、ゲーム装置1が「スリープモード」か否かが判定される。その結果、「スリープモード」であると判定されたときは(ステップS38でYES)、ステップS39において、ステップS27やステップS33と同様に、「スリープモード」を解除するための命令がCPU31に発行される。そして、ステップS40において、ローカル通信用BG処理が実行される。一方、ゲーム装置が「スリープモード」ではないと判定されたときは(ステップS38でNO)、上記ステップS39の処理はスキップされて、ステップS40に処理が進められる。
ステップS40においては、上記ローカル通信用BGプロセスが実行される。当該処理の詳細は後述するが、この流れにおいて実行される内容を簡単に説明すると、結果的に、専用AP101を介してポリシーサーバ103に接続する処理や、ポリシーデータに基づくタスクの優先度の変更処理等が実行され、また、各種タスクが実行されることになる。そして、当該ローカル通信用BGプロセスが終われば、当該無線モジュール処理は終了する。
[CPU31が実行する処理]
以下、CPU31が実行する処理に関して説明する。
[起動時処理]
図23〜図24は、ゲーム装置1が起動されたときに実行される起動時処理の詳細を示すフローチャートである。購入後のゲーム装置1が最初に起動されると、このフローチャートの処理が開始される。その後、電源が完全に切断されない限りは、図23に示すステップS62〜S74の処理ループがバックグラウンド処理として繰り返し実行される。例えば、ゲーム処理等が実行されているときでも、バックグラウンド処理として図23〜図24に示すフローチャートの処理が並列的に実行されている(主に、ゲーム処理中等にホームボタン14Iが押下されることの監視や、そのときの割り込み処理のためである)。
図23において、まず、ステップS61で、メニュー処理が実行される。この処理の詳細は後述するが、その処理概要を簡単に説明しておくと、メニュー画面の表示に関する処理と、メニュー画面においてユーザによって選択されたアプリケーションの起動・実行処理等が行われる。
次に、ステップS62において、「スリープモード」の解除指示を受けたか否かが判定される。具体的には、以下のような場合に、「スリープモード」の解除指示を受けたと判定される。
(1)「スリープモード」において、「すれ違い接続要求」または「すれ違い接続応答」を受信し、上記無線通信モジュール34からスリープ解除の指示を受けたとき(上記図21のステップS27あるいはステップS33)。
(2)「スリープモード」において専用AP101からのビーコンを受信し、無線通信モジュール34からスリープ解除の指示を受けたとき(上記図22のステップS39)。
(3)マイコン37(RTC39)が次回起床時刻の到来を検知し、マイコン37からスリープ解除の指示を受けたとき(上記図21のステップS3)。
(4)ゲーム装置1が閉状態から開状態に変化し、マイコン37からスリープ解除の指示を受けたとき(上記図20のステップS7)。
当該判定の結果、スリープ解除の指示を受けたと判定されたときは(ステップS62でYES)、次に、ステップS63において、当該解除指示が無線通信モジュール34から発行された指示であるか否かが判定される。その結果、無線通信モジュール34から発行された指示と判定されたときは(ステップS63でYES)、ステップS64において、マイコン37を介して電源制御IC41に、「スリープモード」を解除することを示す通知が発行されるとともに、マイコン37内の給電状態フラグ304をオンにする。これに応じて、電源制御IC41はCPUへの電力供給を開始し、ステップS65において、「スリープモード」が解除される。一方、上記ステップS63の判定の結果、無線通信モジュール34からの指示ではないと判定されたときは(ステップS63でNO)、マイコン37からの指示であると考えられるが、マイコン37からの指示の場合は、既に電源管理IC41には通知が行われており、かつ、既に給電状態フラグ304も変化している。そのため、上記ステップS64の処理はスキップされ、ステップS65に処理が進められる。その後、後述するステップS69に処理が進められる。
一方、上記ステップS62の判定の結果、「スリープモード」解除の指示を受け付けていないと判定されたときは(ステップS62でNO)、ステップS66において、「スリープモード」への移行指示を受けたか否かが判定される。具体的には、以下のような場合に、「スリープモード」の移行指示を受けたと判定される。
(1)「スリープモード」の状態が解除されて上記「すれ違い通信」が行われた後、再度「スリープモード」に戻る指示が発行されたとき(後述の図36のステップS166)。
(2)「スリープモード」が解除されて専用APとの通信が行われ、その後再度「スリープモード」に戻る指示が発行されたとき(後述の図38のステップS195)。
(3)起床時刻到来により「スリープモード」が解除され、通信が行われた後、再度「スリープモード」に戻る指示が発行されたとき(後述の図38のステップS195)。
(4)開状態から閉状態に変化し、マイコン37から「スリープモード」に入る指示を受けたとき(上記図20のステップS10)。
ここで、上記(1)〜(3)の指示は、後述する「ローカル通信用BG処理」あるいは「インターネット通信用BG処理」において発行される。
ステップS66の判定の結果、「スリープモード」への移行指示を受けたと判定されたときは(ステップS66でYES)、ステップS67において、マイコン37を介して電源管理IC41に、「スリープモード」へ移行する旨が通知され、マイコン37内の給電状態フラグ304をオフにする。そして、ステップS68において、「スリープモード」への移行が行われる。一方、上記ステップS66の判定の結果、「スリープモード」への移行指示がないと判定されたときは(ステップS66でNO)、上記ステップS67,S68の処理はスキップされて、以下に説明するステップS69に処理が進められる。
次に、図24のステップS69において、いずれかのタスクが実行された結果、何らかのデータを受信したか否かが判定される。その結果、いずれかのタスクにおいて何らかのデータが受信されていれば(ステップS69でYES)、ステップS70において、ゲーム装置1のLED15A〜Cのうち少なくともいずれかを点灯させる。いわゆる「新着通知」に相当するものである。一方、何らかのデータの受信がされていないときは(ステップS69でNO)、ステップS70の処理はスキップされて、次のステップS71に処理が進められる。
次に、ステップS71において、ゲーム装置1が「スリープモード」であるか否かが判定される。具体的には、給電状態フラグ304を参照することで判定できる。その結果、「スリープモード」であると判定されたときは(ステップS71でYES)、上記ステップS62に戻り、処理が繰り返される。一方、ステップS71の判定の結果、「スリープモード」ではないと判定されたときは(ステップS71でNO)、次に、ステップS72において、所定のタスクについて即時実行する旨の指示を受けたか否かが判定される。当該判定の結果、タスクの即時実行の指示は受けていないと判定されたときは(ステップS72でNO)、後述のステップS74に処理が進められる。一方、タスクの即時実行の指示を受けたと判定されたときは(ステップS72でYES)、ステップS73において、ローカル通信用BG処理が実行される。この処理の詳細は後述するが、この流れにおける本処理の概要を簡単に説明すると、ゲーム装置1に予め登録されているAPへの接続を試みる処理と、接続できれば「インターネット通信」を用いたデータの送受信処理等が実行される(つまり、タスクの実行)。
次に、ステップS74において、ホームボタン14Iが押下されたか否かが判定される。当該判定の結果、ホームボタン14Iが押下されたときは(ステップS74でYES)、上記ステップS61に戻り、ホームボタン14Iが押下されていないときは(ステップS74でNO)、上記ステップS62に戻って、処理が繰り返される。以上で、起動時処理の説明を終了する。
[メニュー処理]
次に、上記ステップS61で示したメニュー処理について説明する。この処理では、メニュー画面の表示やアプリケーション起動に関する処理が行われる。特に、新規にインストールされたアプリ等の「新着要素」をメニュー画面に反映して表示する処理等が行われる。また、ゲーム装置1のシステムやアプリのアップデート等に関する処理も実行される。
図25〜図28は、当該メニュー処理の詳細を示すフローチャートである。図25において、まず、ステップS411で、システムインストール済みフラグ620がオンであるか否かが判定される。これは、後述するシステムインストール処理において、システムの更新用データがダウンロードされたか否か(システムプログラムの更新が可能か否か)を判定する為の処理である。当該判定の結果、システムインストール済みフラグ620がオンではないときは(ステップS411でNO)、システムの更新の必要はないため、後述するステップS425に処理が進められる。
一方、システムインストール済みフラグ620がオンのときは(ステップS411でYES)、次に、ステップS412において、次回更新確認時刻(システムプログラムの更新を反映させるか否かを問い合わせる時刻)が経過しているか、または、システムプログラムの更新を反映させるか否かを問い合わせる時刻として値が設定されていない(空の値となっている)かが判定される。当該判定の結果が否定であるときは(ステップS412でNO)、後述するステップS425に処理が進められる。一方、当該判定の結果が肯定であるときは(ステップS412でYES)、ゲーム装置1のシステムアップデートに関する処理が実行される。具体的には、まず、ステップS413において、システムのアップデート用データを反映するか否かをユーザに確認するための確認画面が生成され、下側LCD12に表示される。そして、ユーザからの指示入力を受け付ける。このような確認画面を設けるのは、次のような理由による。すなわち、システムのアップデートは、ゲーム装置1の根幹に関わる内容であるため、その内容によっては、ユーザに大きな影響を与える可能性がある。そのため、このようにユーザに確認をとるようにしている。
次に、ステップS414において、上記確認画面に対するユーザの指示内容が、アップデート用データの反映を指示する内容であるか否かが判定される。当該判定の結果、アップデートを反映しない旨の指示内容と判定されたときは(ステップS414でNO)、ステップS422において、次回更新確認時刻、すなわち、ステップS413で行われた確認画面を再度表示するための時刻が24時間後に設定される。そして、後述するステップS425に処理が進められる。すなわち、システムプログラムの更新が反映可能な状態にあるときは、更新の反映をしない旨の指示をしたとしても、更新の反映をする旨の指示を行うまで、24時間ごとにステップS413の確認画面が表示されることとなる。
一方、ステップS414の判定の結果、反映を指示する内容であれば(ステップS414でYES)、ステップS415において、インストールリスト580が参照され、システムアップデート情報583に含まれるシステムの構成要素584の全てについて、以下に説明する反映の処理が行われたか否かが判定される。その結果、まだ未反映の構成要素584が残っているときは(ステップS415でNO)、ステップS416において、未反映の構成要素584のうちのいずれか一つが選択される、次に、ステップS417において、当該選択されている構成要素は、既存の構成要素を置き換えるものではないか否か、つまり、新規導入か、あるいは既存の構成要素のアップデートかが判定される。当該判定の結果、既存の構成要素の置き換えではない(新規導入)であるときは(ステップS417でNO)、ステップS418において、オン・ザ・フライ用キャッシュ600に格納されている更新用のファイルをシステムプログラム領域515に移動する(元のファイルと置き換える)ことで、当該構成要素の更新が反映される。すなわち、上述の「移動型」のアップデートが行われる。その後、上記ステップS415に戻り、処理が繰り返される。一方、既存の構成要素の置き換えにあたるとき(つまり、構成要素のアップデートのとき)は(ステップS417でYES)、ステップS419において、図示しないレジストリ情報が参照され、当該構成要素についての上記「実体プログラムへの参照情報」を、更新前のファイル名から上記ダウンロードされた更新用のファイル名を指し示すように変更することで、当該構成要素の更新が反映される。更に、「実体プログラムへの参照情報」の変更が終われば、更新前のファイルについては削除される(なお、更新前のファイルについては削除せずに、システムのロールバックが可能なようにNANDフラッシュメモリ33内の所定の領域に保存しておいてもよい)。そして、上記ステップS415に処理が戻される。
一方、上記ステップS415の判定の結果、インストールリスト580で示されているシステムの構成要素584の全てについて上記のような反映の処理が実行されたと判定されたときは(ステップS415でYES)、ステップS420において、システムインストール済みフラグ620がオフに設定される。次に、ステップS421において、メニューの再起動のための処理が実行され、その結果、上記ステップS411の処理に戻ることになる。
次に、上記ステップS411の判定の結果、システムインストール済みフラグがオンではないときの処理(ステップS411でNO)について説明する。この場合は、ステップS425において、NANDフラッシュメモリ33のアプリ関連データ550が参照され、ゲーム装置1にインストールされている全てのアプリケーションについて、以下に説明するような処理(アプリケーションのスキャン)が行われたか否かが判定される。当該判定の結果、未処理のアプリケーションが残っていると判定されたときは(ステップS425でNO)、次に、未処理のアプリケーションの中からいずれか一つが処理対象として選択され(以下、スキャン対象アプリと呼ぶ)、ステップS426において、当該スキャン対象アプリが新規にインストールされたアプリケーションであるか、すなわち、まだメニューに登場させたことがないアプリケーション(以下、新規アプリと呼ぶ)であるか否かが判定される。これは、上記アプリ関連データ550が参照され、スキャン対象アプリに該当するアプリケーション領域の新規インストールフラグ554がオンに設定されているか否かで判定される。なお、アプリケーションを新規にインストールする処理は、当該メニュー処理とは別個独立の処理として、当該メニュー処理と並列する形で実行されている。当該アプリケーションのインストール処理については後述する。
当該判定の結果、新規アプリではないと判定されたときは(ステップS426でNO)、ステップS429において、当該スキャン対象アプリに対応するアイコンが生成されてメニュー画面上に適宜配置される。一方、スキャン対象アプリが新規アプリであると判定されたときは(ステップS426でYES)、次に、ステップS427において、スキャン対象アプリが、今回表示されるメニューにおいて1つめの新規アプリ(1番最初にスキャンされた新規アプリ)に該当するか否かが判定される。当該判定の結果、今回表示されるメニューにおいて1つめの新規アプリであるときは、ステップS428において、上記図5で示したようなプレゼントアイコン112が生成されて、メニュー画面上に適宜配置される。一方、スキャン対象アプリが、2つめ以降の新規アプリ(2番目以降にスキャンされた新規アプリ)に該当する場合は(ステップS427でNO)、上記ステップS428の処理はスキップされて、後述のステップS430に処理が進められる。このような処理が行われる結果、複数の新規アプリがダウンロード及びインストールされた場合、これらの新規アプリについては一度に全てを表示するのではなく、メニューが表示される度に一つずつ表示していくことになる。例えば、2つの新規アプリを取得した場合、取得後の1回目のメニュー表示ではいずれか一方のアプリがプレゼントアイコンとして表示され、他方はこの時点ではまだメニューに表示されない。その後、当該プレゼントアイコンが選択され、1つめの新規アプリが実行され、当該アプリが終了されてメニュー画面に戻ったとき、つまり、2回目のメニュー表示が実行されたときに、上記もう一つの新規アプリがプレゼントアイコンとして表示されることになる。これにより、メニューが表示される度に新しいプレゼントアイコンが表示され、新規アプリ取得の楽しさを持続してユーザに与えることが可能となる。
次に、ステップS430において、当該スキャン対象アプリ用のデータ(例えば、お知らせの通知や追加コンテンツ等)が受信されたか否かが判定される。これは、例えば、上記アプリケーション領域551内のタスク受信キャッシュ553、あるいは、当該スキャン対象アプリに対応付けられているすれ違い通信用データ520の受信用ボックス524が参照されることで判定される(いずれか一方でも良いし、双方を参照して判定しても良い)。当該判定の結果、新規に受信したデータがあると判定されたときは(ステップS430でYES)、ステップS431において、当該スキャン対象アプリに対応するアイコンの近傍に、上記図6で示したような「New!」マークが配置される。そして、上記ステップS411に戻る。一方、ステップS430の判定の結果、新規に受信したデータがないと判定されたときは(ステップS430でNO)、ステップS431の処理はスキップされて、上記ステップS411の処理に戻る。
次に、上記ステップS425において、全てのアプリケーションについて処理済み(スキャン済み)と判定されたとき(ステップS425でYES)の処理について説明する。この場合は、ステップS432において、アプリ更新適用処理が実行される。図32は、上記ステップS432で示したアプリ更新適用処理の詳細を示すフローチャートである。図32において、まず、ステップS601で、アプリ関連データ550が参照され、新規アップデートフラグ559がオンに設定されているアプリがリストアップされる。
次に、ステップS602で、上記リストアップされたアプリが1以上あるか否かが判定される。その結果、1以上ないときは(ステップS602でNO)、アプリの更新はないことになるため、当該アプリ更新適用処理は終了する。
一方、リストアップされたアプリが1以上あると判定されたときは(ステップS602でYES)、ステップS603において、アプリの更新を反映するか否かをユーザに確認するための確認画面が生成され、下側LCD12に表示される。そして、ユーザからの指示入力が受け付けられる。
次に、ステップS604において、上記確認画面に対するユーザの指示内容が更新の反映を指示する内容であるか否かが判定される。その結果、更新を指示する内容ではないときは(ステップS604でNO)、ステップS605で、上記別のファイル名で格納されたアプリの更新用のファイルが破棄される。なお、詳細は後述するが、アプリのアップデートの場合、ダウンロードされたアップデートファイルは、プログラム領域500に、別のファイル名で格納されている。そして、当該アプリ更新適用処理は終了する。
一方、更新反映を指示する内容のときは(ステップS604でYES)、次に、ステップS606において、上記リストアップされたアプリの全てについて、以下に示すような更新反映処理が実行されたか否かが判定される。その結果、まだ反映されていないアプリがあるときは(ステップS606でNO)、ステップS607で、上記リストアップされているアプリのうち、未反映のアプリの中から一つが選択される。続くステップS608において、当該未反映のアプリについてのレジストリ情報が変更されることで、アプリの更新が行われる。具体的には、図示しないレジストリ情報が参照され、当該アプリについての「実体プログラムへの参照情報」が、上記別のファイル名で格納された更新用のファイル名を指し示すように変更されることで、アプリの更新が反映される。そして、上記ステップS606の処理に戻る。
一方、ステップS606の判定の結果、リストアップされたアプリの全てについて更新を反映したときは(ステップS606でYES)、当該アプリ更新適用処理は終了する。
図26に戻り、アプリ更新適用処理が終われば、次に、アプリケーションの起動・実行に関する処理が行われる。具体的には、まず、図27のステップS433において、メニュー画面からいずれかのアプリケーションを示すアイコンが選択されたか否かが判定される。例えば、上記図4に示したようなメニュー画面でユーザが所定のアイコンに対してタッチ操作したか否かが判定される。当該判定の結果、メニュー画面上のいずれのアプリケーション(のアイコン)も選択されていないと判定されたときは(ステップS433でNO)、後述するステップS443に処理が進められる。
一方、メニュー画面上のいずれかのアプリケーション(のアイコン)が選択されたと判定されたときは(ステップS433でYES)、次に、ステップS434において、選択されたアプリケーションに対応する新規インストールフラグ554がオンに設定されているか否かが判定される。つまり、新規にインストールされたアプリケーションか否かが判定される。その結果、新規インストールフラグ554がオンに設定されていると判定されたときは(ステップS434でYES)、当該アプリケーションに対応するアイコンは上記プレゼントアイコン112として表示されていることになるため、ステップS435において、当該プレゼントアイコン112が、当該アプリケーションのアイコンとして本来定義されているアイコン(アプリケーションプログラムの一部として記憶されている)に変更される。このとき、プレゼントアイコン112の箱が開くようなアニメーション表示も行われる。
次に、ステップS436において、当該アプリケーションについての新規インストールフラグ554がオフに設定されて、上記ステップS433に戻る。
一方、上記ステップS434の判定の結果、新規インストールフラグがオフに設定されていると判定されたときは(ステップS434でNO)、次に、選択されたアプリの起動に際してのアプリの正当性チェックが行われる。具体的には、ステップS437において、選択中のアプリに対応する権利情報が権利情報データベース610から読み出される。次に、ステップS438において、当該読み出された権利情報の検証が行われる。この処理は、何らかの原因でインストールされた不正なアプリケーションが実行されることを防ぐための処理である。次に、ステップS439において、当該権利情報の検証が成功したか否かが判定される。成功したときは(ステップS439でYES)、ステップS440において、プレイ履歴670に当該アプリの起動時刻を記録する処理が行われる。具体的には、選択されたアプリのアプリID552と対応付けて、アプリのバージョン情報とそのときの時刻(起動時刻)がプレイ履歴670に記録される。
次に、ステップS441において、選択されたアプリケーションにかかる処理(以下、「各アプリの処理」と呼ぶ)が実行される。ここで、当該アプリの起動に際して、上記権利情報データベース610が参照され、起動しようとするアプリに対応する権利情報が取得される。そして、当該権利情報を用いた認証処理が行われ、認証が成功したときにのみ、アプリの実行が開始される。その後、当該アプリケーションにかかる処理が終了すれば、ステップS442において、アプリの終了時刻をプレイ履歴670に記録するための処理が実行される。すなわち、当該実行されたアプリのアプリID552と対応付けて、当該アプリのバージョン情報とこの時点の時刻(終了時刻)が、プレイ履歴670に記録される。その後、上記ステップS411に処理が戻される。
一方、上記ステップS439の判定の結果、成功しなかったときは(ステップS439でNO)、ステップS440〜S442の処理はスキップされ、上記ステップS411に戻る。すなわち、選択されたアプリケーションは起動しないことになる。
次に、上記ステップS433の判定の結果、いずれのアプリも選択されていないと判定されたときの処理(ステップS433でNO)について説明する。このときは、アプリケーションの削除(アンインストール)に関する処理が実行される。まず、図28のステップS443において、ソフト管理用の画面の起動を指示する操作が行われたか否かが判定される(なお、厳密には当該ソフト管理用のプログラムもアプリの一種として実現されていてもよいが、ここでは説明の便宜のため、上記ステップS433の判定対象には当該ソフト管理用のアプリは含まないものとする)。
当該判定の結果、ソフト管理用の画面の起動が指示されなかったときは(ステップS443でNO)、上記ステップS411に戻り、処理が繰り返される。一方、ソフト管理用の画面の起動が指示されたときは(ステップS443でYES)、ステップS444において、NANDフラッシュメモリ33に格納されているアプリの一覧が生成されて表示される。この一覧は、NANDフラッシュメモリ33に格納されているアプリをスキャンすることで生成される。その後、ユーザからの入力を受け付ける。
次に、ステップS445において、上記アプリの一覧から、ユーザが何れかのアプリの削除を指示したか否かが判定される。その結果、削除の指示があるときは(ステップS445でYES)、ステップS446において、選択されたアプリと、これに対応する権利情報、および、アプリ関連データ550内の対応するアプリのアプリケーション領域551の情報や、その他当該アプリに関連するデータ(メタデータ等)が削除される。更に、ステップS447において、当該削除されたアプリを示すアプリID552を削除履歴660に追加することで、削除履歴660が更新される。これにより、一度(ユーザの意思によって)削除されたアプリについては、それ以降、自動的にインストールされることを防ぐ事が可能となる。ステップS447の処理が終われば、後述のステップS448に処理が進められる。
一方、ステップS445の判定の結果、削除指示がなかったときは(ステップS445でNO)、上記ステップS446,S447の処理はスキップされる。
次に、ステップS448において、メニューに戻る旨の指示がユーザにより指示されたか否かが判定される。その結果、メニューに戻る指示が行われていないときは(ステップS448でNO)、上記ステップS444に戻り、メニューに戻る指示が行われたときは(ステップS448でYES)、上記ステップS411に戻る。
以上で、本体メニュー処理の説明を終了する。
[アプリケーションインストール処理]
ここで、上述したメニュー処理と並行して実行されるアプリケーションインストール処理について説明する。この処理は、メニュー処理とはまた別個の処理として、ゲーム装置1の稼働中は所定の周期で繰り返し実行されている。
図29〜図30は、当該アプリのインストール処理の詳細を示すフローチャートである。まず、ステップS460で、アプリインストール必要フラグ630がオンに設定されているか否かが判定される。その結果、オンに設定されていないときは(ステップS460でNO)、アプリをインストールする必要がないことを示しているため、当該アプリインストール処理は終了する。
一方、アプリインストール必要フラグ630がオンのときは(ステップS423でYES)、すなわち、システム更新の反映が終わっていることを示しているので、下記により示される、アプリのダウンロード及びインストールの処理に移る。ステップS461において、インストールリスト580に含まれているアプリ情報589で示されるアプリの全てについて、以下に説明するようなダウンロードタスク(DLタスク)の生成処理が行われたか否かが判定される。当該判定の結果、まだDLタスクの生成処理がなされていないアプリが残っているときは(ステップS461でNO)、ステップS462において、インストールリストに含まれているアプリ情報589のうち、まだDLタスク生成処理が未処理のアプリ情報589が一つ選択される。
次に、ステップS463において、選択されたアプリ情報589のレーティング情報593が参照され、当該アプリの対象年齢情報が取得される。次に、ステップS464において、選択されたアプリの対象年齢と、ゲーム装置1に登録されているユーザの年齢(これは、本体設定データ560に記憶されている)とが比較され、年齢制限と整合するか否かが判定される。例えば、レーティング情報593で18才以上のみを対象とするアプリであることが示されている場合は、本体設定データ560に登録されているユーザの年齢が18才以上であるか否かが判定される。当該判定の結果、年齢制限と整合していないときは(ステップS464でNO)、現在選択中のアプリについてはDLタスク生成処理は処理済みにして、上記ステップS461に戻って処理が繰り返される。
一方、ステップS464の判定の結果、年齢制限と整合しているときは(ステップS464でYES)、続くステップS465において、選択中のアプリが、いわゆる「体験版」であって、かつ、選択中のアプリの「製品版」を既に所有しているか否か(インストール済みであるか否か)が判定される。これは、既に「製品版」のアプリを所持しているにもかかわらず、「体験版」がダウンロードされてしまうことを防ぐためである。当該判定の結果、選択中のアプリが「体験版」であって、同アプリの「製品版」を既に有していると判定されたときは(ステップS465でYES)、現在選択中のアプリについてDLタスク生成処理は処理済みとして、上記ステップS461に戻って処理が繰り返される。
一方、選択中のアプリが「体験版」であって、同アプリの「製品版」を有している状態ではないと判定されたときは(ステップS465でNO)、次に、ステップS466において、同じアプリが既に所持されているか否かが判定される。これは、例えば、プレイ履歴670に上記選択したアプリのアプリID590と同じアプリIDが存在するか否かで判定される。当該判定の結果、同じアプリを所持していないと判定されたときは(ステップS466でNO)、ステップS467において、削除履歴660が参照され、当該削除履歴660に上記選択されたアプリのアプリIDが載っているか否かが判定される。その結果、削除履歴660に当該アプリのアプリIDが載っているときは(ステップS467でYES)、上記ステップS461に処理が戻される。これにより、以前にユーザの意思で削除されたアプリについて、再度自動的にインストールされることを回避している。一方、削除履歴660に当該アプリのアプリIDが載っていないときは(ステップS467でNO)、後述するステップS469に処理が進められる。
一方、上記ステップS466の判定の結果、同じアプリを所持していると判定されたときは(ステップS466でYES)、ステップS468において、同じアプリであって古いバージョンのものを所持しているか否かが判定される。この判定は、例えば、プレイ履歴670が参照され、古いバージョンのアプリIDがあるか否かで判定される。その結果、所持していないと判定されたときは(ステップS468でNO)、既に最新のバージョンのものがインストール済みであると考えられるため、上記ステップS461に処理が戻される。
一方、同じアプリであって古いバージョンのものを所持していると判定されたときは(ステップS468でYES)、当該アプリのバージョンアップ(アップデート)を行うため、次のステップS469に処理が進められる。
ステップS469においては、上記選択されたアプリについて、これをダウンロードするためのプレイ履歴条件が設定されているか否かが判定される。つまり、選択されたアプリが「特典アプリ」であるか否かが判定される。これは、上述したように、例えば、あるゲームを所定時間以上プレイした場合の「特典」として、特典アプリをダウンロードさせるような場合を想定したものである。この判定は、上記インストールリスト580のアプリ情報589が参照され、ダウンロード条件情報595に何らかの条件情報が設定されているか否かで判定される。当該判定の結果、プレイ履歴条件が設定されていないと判定されたときは(ステップS469でNO)、選択されたアプリは、ダウンロードに際して特に条件が定められていないアプリであると考えられるため、後述するステップS471に処理が進められる。
一方、プレイ履歴条件が設定されていると判定されたときは(ステップS469でYES)、選択されたアプリは「特典アプリ」であるため、次のステップS470において、当該特典アプリをダウンロードするためのプレイ履歴条件が満たされているか否かが判定される。この判定は、上記プレイ履歴670とダウンロード条件情報595とが比較されることで判定される。当該判定の結果、ダウンロードするためのプレイ履歴条件が満たされていないと判定されたときは(ステップS470でNO)、現在選択中のアプリについてDLタスク生成処理は処理済みにして上記ステップS461に戻り、処理が繰り返される。一方、プレイ履歴条件が満たされていると判定されたときは(ステップS470でYES)、次のステップS471に処理が進められる。なお、ステップS465において判定した、製品版を所持していれば体験版をインストールしない処理は、ステップS470の処理によっても実現できる。すなわち、体験版のアプリケーションに関するダウンロード条件情報595に、製品版のプレイ履歴が存在していればインストールを行うという条件を設定しておけばよい。
次に、これからダウンロードしようとするアプリの正当性(正規のプログラムであるか否か)をチェックするための処理が実行される。具体的には、まず、ステップS471において、選択したアプリに対応する権利情報を所定のサーバからダウンロードする。当該権利情報は、当該アプリの実行に際して認証処理を行うために用いられる情報である。なお、当該権利情報のダウンロードに関しては、上述したようなタスクは用いずに、直接・即時にダウンロードが行われる。
次に、ステップS472において、当該権利情報の正当性確認処理が実行される。図31は、上記ステップS472で示した正当性確認処理の詳細を示すフローチャートである。図31において、まず、ステップS491で、上記ダウンロードした権利情報の正当性を確認する処理が実行される。これは、例えば、いわゆる電子署名や電子証明書を確認する処理によって実現される。
次に、ステップS492において、権利情報の正当性に問題がなかったか否か(つまり、正規のアプリであるか否か)が判定される。その結果、問題が無いときは(ステップS492でYES)、ステップS493において、ダウンロードした権利情報が権利情報データベース610に登録される。一方、問題があったときは(ステップS492でNO)、ステップS494において、ダウンロードした権利情報、および、この権利情報に対応するアプリが破棄される。以上で、正当性確認処理は終了する。
図30に戻り、正当性確認処理の次に、ステップS473において、当該正当性確認処理の結果、正当性に問題がなかったか否かが判定される。すなわち、上述の図31のステップS493において権利情報が権利情報データベース610に登録されたか否かが判定される。その結果、問題が無いと判定されたときは(ステップS473でYES)、ステップS474において、選択されたアプリをダウンロードするためのダウンロード用のタスク(受信タスク)が生成される。ここで生成されるタスクについては、上記インストールリスト580において当該アプリに対応するアプリ情報589に含まれている優先順位594の値に沿って、実行優先度が設定される。その後、上記ステップS461に戻って処理が繰り返される。
一方、ステップS473の判定の結果、正当性に問題があったと判定されたときは(ステップS473でNO)、上記ステップS474の処理は行われずに、上記ステップS461に戻って処理が繰り返される。
次に、図29に戻り、上記ステップS461の判定の結果、インストールリスト580に含まれているアプリ情報589で示されるアプリの全てについて上述したような処理が行われたと判定されたときの処理について説明する(ステップS461でYES)。このときは、図30のステップS475において、上記アプリをダウンロードするために生成されたダウンロード用の各タスクを実行するために、タスク実行処理が行われる。当該タスク実行処理の詳細については後述するが、この処理が実行されることによって、上記各アプリのプログラムファイルが所定のサーバからダウンロードされ、NANDフラッシュメモリ33内に格納された状態となる。
ステップS475の処理が終われば、次に、ステップS476において、アプリインストール必要フラグ630がオフに設定される。以上で、アプリインストール処理は終了する。
[各アプリの処理]
次に、上記ステップS441で示した各アプリの処理について説明する。なお、各アプリケーションの具体的な処理内容は当然のことながらそれぞれ異なる。そのため、この点に関しての説明は省略し、本実施形態に関する部分、すなわち、上記タスクに関する処理や上述した各種通信に関連する処理について、その最大公約数的な処理内容、すなわち、どのアプリケーションにおいても普遍的に行われると思われる処理として説明する。
図33〜図34は、上記各アプリの処理の詳細を示すフローチャートである。図33において、まず、ステップS121で、何らかのタスクが実行された結果として、タスク受信キャッシュ553に、新たに受信した本アプリケーション用のデータが存在するか否かが判定される。当該判定の結果、当該新たに受信したデータがあると判定されたときは(ステップS121でYES)、ステップS122において、タスク受信キャッシュ553のデータが、本アプリケーションのセーブデータ555のタスク受信データ557に移動される(その結果、タスク受信キャッシュ553は空になる)。その後、ステップS123に処理が進められる。一方、新たに受信したデータがないと判定されたときは(ステップS121でNO)、ステップS122の処理はスキップされて、ステップS123に処理が進められる。
次に、ステップS123において、本アプリケーションに対応付けられているすれ違い通信用データ520の受信用ボックス524に新規に受信されたデータが存在するか否かが判定される。当該判定の結果、受信用ボックス524に新規に受信されたデータがあると判定されたときは(ステップS123でYES)、ステップS124において、当該受信用ボックス524内のデータが本アプリケーションのセーブデータ555のすれ違い受信データ558に移動される(その結果、受信ボックス524は空になる)。そして、ステップS125に処理が進められる。一方、受信用ボックス524に新規に受信されたデータはないと判定されたときは(ステップS123でNO)、上記ステップS124の処理はスキップされて、ステップS125に処理が進められる。
次に、ステップS125において、各アプリケーションの内容に応じた各種情報処理が実行される。例えば、ゲーム処理やお絵かきソフト処理、カメラアプリケーション処理等である。この情報処理において、ステップS122やステップS124において新たに移動されたタスク受信データ557やすれ違い受信データ558のデータを利用することができる。
次に、ステップS126において、上記ステップS125における各種情報処理の結果、タスクを新たに追加するイベント、あるいは、タスクの内容を更新するイベントが発生したか否かが判定される。その結果、当該イベントが発生していないと判定されたときは(ステップS126でNO)、後述するステップS132に処理が進められる。
一方、タスクの新規追加、あるいはタスクの更新のイベントが発生したと判定されたときは(ステップS126でYES)、次に、ステップS127において、当該発生したイベントにかかる内容が、「送信タスク」に関するものか「受信タスク」に関するものかが判定される。当該判定の結果、「送信タスク」の追加、あるいは更新という内容と判定されたときは(ステップS127でYES)、続くステップS128において、送信すべきデータが作成され、セーブデータ555のタスク送信用データ556として記憶される。更に、ステップS129において、「送信タスク」用の各種パラメータが設定される。ここで設定されるパラメータは、上記図16で示したようなタスク設定531を構成する各項目を設定するためのパラメータである。
具体的には、以下のようなパラメータ設定が行われる。
(1)アプリID→本アプリケーションのID
(2)タスクID→タスクの新規追加の場合は新規な値、更新の場合は更新しようとするタスクのタスクIDと同じ値
(3)実行優先度→任意の値
(4)通信先URL→送信先のサーバのURL
(5)ファイルパス→上記タスク送信用データ556の位置を示す値
(6)次回実行時刻→任意の値
(7)実行間隔→任意の値
(8)送信/受信識別フラグ→「送信」を表す値
(9)消尽回数→任意の値
上記のようなパラメータ設定が行われた後、後述するステップS131に処理が進められる。
一方、上記ステップS127の判定の結果、発生したイベントにかかる内容が「受信タスク」に関するものであると判定されたときは(ステップS127でNO)、ステップS130において、「受信タスク」用の各種パラメータが設定される。当該処理は、上記ステップS129と同様にタスク設定531の各項目の設定用パラメータを設定する処理である。具体的には、以下のようなパラメータ設定が行われる。
(1)アプリID→本アプリケーションのID
(2)タスクID→タスクの新規追加の場合は新規な値、更新の場合は更新しようとするタスクのタスクIDと同じ値
(3)実行優先度→任意の値
(4)通信先URL→受信元となるサーバのURL
(5)ファイルパス→受信したデータの格納先(タスク受信キャッシュ553)を示す値
(6)次回実行時刻→任意の値
(7)実行間隔→任意の値
(8)送信/受信識別フラグ→「受信」を表す値
(9)消尽回数→任意の値
上記のようなパラメータ設定が行われた後、後述するステップS131に処理が進められる。
次に、ステップS131において、上記設定されたパラメータに基づくタスクの新規追加あるいは既存タスクの更新を行うための、タスク生成処理が実行される。図35は、上記ステップS131で示したタスク生成処理の詳細を示すフローチャートである。図35において、まず、ステップS151で、上記パラメータの各項目に基づいて、作業用のタスク設定データが生成される。当該作業用のタスク設定データは、メインメモリ32に生成される一時的なデータであり、上記タスク設定531と同じデータ構造を有する。なお、任意の項目であってパラメータの指定がなされていない項目については、初期値として設定されている値が設定される。
次に、ステップS152において、当該作業用のタスク設定データのアプリIDおよびタスクIDが、上記タスクデータ530に格納されているタスク設定531のいずれかのアプリID532およびタスクID533と重複しているか否かが判定される。つまり、新規追加のタスクであるか、既にあるタスクの更新になるかが判定される。当該判定の結果、重複するIDがあれば(ステップS152でYES)、ステップS153において、当該重複するタスク設定531の内容が上記作業用のタスク設定データで置き換えられる(つまり、更新される)。一方、重複するIDが存在しないと判定されたときは(ステップS152でNO)、ステップS154において、上記作業用のタスク設定データが新規のタスク設定531として、タスクデータ530に追加登録される。そして、作業用のタスクデータが消去されて、当該タスク生成処理は終了する。
図33に戻り、ステップS131の処理が終われば、次に、図34のステップS132において、上記ステップS125の各種情報処理によって、「すれ違い通信」を用いた送信に関するイベントが発生したか否かが判定される。例えば、上記各種情報処理において、「すれ違い通信」を用いて何らかのデータを送信するための指示がユーザからなされたか否か等が判定される。当該判定の結果、「すれ違い通信」を用いて何らかのデータを送信する旨のイベントが発生したと判定されたときは(ステップS132でYES)、ステップS133において、まず、上記イベント内容に応じた送信用のデータが適宜生成される。そして、上記すれ違い通信用データ520の中の、本アプリケーションに対応するスロット521の送信用ボックス523に、当該生成された送信用のデータが格納される。そして、後述のステップS134に処理が進められる。一方、上記ステップS132の判定の結果、上記イベントが発生していないと判定されたときは(ステップS132でNO)、ステップS133の処理はスキップされて、ステップS134に処理が進められる。
次に、ステップS134において、サーバから受信したデータが在るか否かが判定される。つまり、「受信タスク」の実行によって何らかの新規なデータが受信されたか否かが判定される(そのため、上記ステップS121の判定でYESと判定されたときは、当該判定においてもYESと判定されることになる)。例えば、サーバから新規のデータが受信されていれば、上記ステップS122でセーブデータ555に移動されているため、当該セーブデータ555が参照されることで、当該判定が行われる。
当該判定の結果、サーバから受信した新規なデータがないと判定されたときは(ステップS134でNO)、後述するステップS142に処理が進められる。一方、サーバから受信した新規なデータがあると判定されたときは(ステップS134でYES)、次に、ステップS135において、当該受信したデータの中に、現在実行されているアプリに関するネットワークサービスの終了を知らせる旨の通知が含まれているか否かが判定される。その結果、サービス終了の旨の通知が含まれていないと判定されたときは(ステップS135でNO)、後述するステップS141に処理が進められる。
一方、サービス終了の旨の通知が含まれていると判定されたときは(ステップS135でYES)、ステップS136において、サービス終了の旨が上側LCD22あるいは下側LCD12に表示される。次に、ステップS137において、現在実行されているアプリケーションのアプリID532を含むタスク設定531がタスクデータ530内に残っているか否かが判定される。残っていると判定されたときは(ステップS137でYES)、現在実行されているアプリケーションのアプリID532を含むタスク設定531が全て消去される。一方、残っていないと判定されたときは(ステップS137でNO)、上記ステップS138の処理はスキップされる。
次に、ステップS139において、すれ違い通信用データ520が参照されて、現在実行されているアプリケーションのアプリID522が割り当てられているスロット521があるか否かが判定される。残っていると判定されたときは(ステップS139でYES)、ステップS140において、現在実行されているアプリケーションに対応するスロット521の内容をクリアする。その結果、当該スロット521と当該アプリケーションとの対応付けが解除される。一方、上記のようなスロットは残っていないと判定されたときは(ステップS139でNO)ステップS140の処理はスキップされる。
次に、ステップS141において、必要に応じて、上記受信された新規なデータの内容を表示する処理が実行される。
次に、ステップS142において、当該実行中のアプリケーション処理の終了条件が満たされたか否かが判定される。その結果、終了条件が満たされていなければ(ステップS142でNO)、上記ステップS121に戻り、処理が繰り返される。終了条件が満たされていれば(ステップS142でYES)、本アプリ処理は終了される。以上で、各アプリの処理の説明を終了する。
[ローカル通信用BG処理]
次に、上述したような各処理において適宜呼び出されていたローカル通信用BG処理(具体的には、図20のステップS4、図21のステップS28およびS34、図22のステップS40、図24のステップS73)について説明する。この処理では、主に、上記「すれ違い通信」における送受信処理と、上記所定のAPのスキャンや当該APとの接続処理等の制御が行われる。また、所定のAPと接続した際には、上記「インターネット通信」等を行うための処理である「インターネット用BG処理」が適宜呼び出される。
図36〜図37は、当該ローカル通信用BG処理の詳細を示すフローチャートである。まず、ステップS161において、無線通信モジュール34がすれ違い接続応答を受信しているか否かが判定される。これは、例えば、CPU31が無線通信モジュール34に対して、すれ違い接続応答を受信したか否かを問い合わせするような処理によって判定される。当該判定の結果、上記すれ違い接続応答を受信していないと判定されたときは(ステップS161でNO)、後述するステップS167に処理が進められる。一方、上記すれ違い接続応答を受信していると判定されたときは(ステップS161でYES)、自ゲーム装置1が発した要求に対して、応答可能な(ローカル通信のための接続が確立した)他のゲーム装置1が存在しているということになる(上記図21のステップS28では、この流れに来ることになる)。そのため、次のステップS162において、当該通信相手となった他のゲーム装置1に対して、すれ違い通信用データ520の送信用ボックス523のデータが送信される。但し、上記のように、送信されるデータは、上記アプリID522が、通信相手のすれ違い通信用データ520のものと一致したスロット521にかかるデータに限る。
次に、ステップS163において、送信時刻、および、当該通信相手である他のゲーム装置1のMACアドレスが無線通信モジュール34内の既通信端末/専用AP情報405に記憶される。
次に、ステップS164において、すれ違い通信における「受信」の処理が行われたか否かが判定される。本実施形態では、すれ違い通信は原則として「送信」と「受信」がセットで行われる。そのため、この判定では、両方とも済んだのか、一方だけしか済ませていないのかが判定されることになる。当該判定の結果、受信処理がまだ行われていないと判定されたときは(ステップS164でNO)、後述するステップS170の処理に進み、通信相手から送られてくるデータの受信が行われる。
一方、既に受信処理は行われたと判定されたときは(ステップS164でYES)、ステップS165において、今回の通信(この通信とは、「ローカル通信」だけでなく、後述の「インターネット通信」も含む)を行うために「スリープモード」が解除されていたのか否かが判定される。当該判定の結果、今回の通信のために「スリープモード」が解除されていたと判定されたときは(ステップS165でYES)、今回の通信前は「スリープモード」の状態であったと考えられるため、この状態に戻すために、ステップS166において、CPU31に給電を停止するための命令がCPU31自身から送られ、「スリープモード」に移行するための処理が実行されるとともに、マイコン37内の給電状態フラグ304をオフにし、電源管理IC41にスリープへ移行する旨を通知する。一方、ステップS165の判定の結果、今回の通信のために「スリープモード」が解除されていたのではないと判定されたときは(ステップS165でNO)、元々「通常電力モード」で稼働している状態であったと考えられるため、ステップS166の処理はスキップされる。そして、当該ローカル通信用BG処理は終了する。
次に、上記ステップS161の判定の結果、上記すれ違い接続応答を受信していないと判定されたときの処理について説明する。この場合は、まず、ステップS167において、すれ違い接続要求、すなわち、他のゲーム装置1からのすれ違い通信の要求を無線通信モジュール34が受信したか否かが判定される。その結果、当該要求を受信していないと判定されたときは(ステップS167でNO)、後述のステップS173に処理が進められる。一方、当該要求を受信したと判定されたときは(ステップS167でYES)、ステップS168において、すれ違い接続応答が生成されて、上記すれ違い接続要求の送信元である他のゲーム装置1へ送信される(なお、上記図21のステップS34の処理では、この流れで処理が進められることになる)。このとき、当該すれ違い接続応答には、上記無線通信モジュール34に記憶されている抽出アプリID406の内容が含まれて送信される(つまり、すれ違い通信の対象となるアプリを相手側に通知することになる)。
次に、ステップS169において、応答時刻、および、通信相手である他のゲーム装置1のMACアドレスが、無線通信モジュール34内の既通信端末/専用AP情報405に記憶される。
次に、ステップS170において、通信相手からデータを受信したか否かが判定される。これは、本実施形態では、アプリID522が一致するもののみ送受信対象としている関係上、他のゲーム装置1からのすれ違い通信要求を受け、接続は確立したものの、双方で一致するアプリID522がなかったために、実際には送受信するデータがない、という場合を判定するためのものである。すなわち、ステップS169にて送信した接続応答を、相手端末が受信したものの、相手端末側の図21のステップS25でNOであった場合には、データは送信されてこないことになる。当該判定で、相手端末からのデータが(一定時間内に)受信されていないと判定されたときは(ステップS170でNO)、上記一致するアプリID522がなかった場合に相当すると考えられるため、上記ステップS165に処理が進められて、「スリープモード」に戻すか否かの判定が行われる。一方、相手端末からデータを受信したと判定されたときは(ステップS170でYES)、当該受信したデータが、そのアプリID522に対応するスロット521の受信用ボックス524に格納される。なお、上記ステップS164からステップS170に来た場合は、少なくとも1つはアプリID522が一致する送受信対象があったことになり、相手端末からはデータが送信されてくるため、途中で転送エラーが生じない限り、この判定ではYESと判定される。
次に、ステップS172において、すれ違い通信にかかる送信処理が既に行われているか否かが判定される。その結果、まだすれ違い通信にかかる送信処理が行われていないと判定されたときは(ステップS172でNO)、上記ステップS162に処理が進められ、すれ違い通信にかかる送信処理が行われる。一方、送信処理は既に行われていると判定されたときは(ステップS172でYES)、上記ステップS165に処理が進められる。
次に、上記ステップS167の判定の結果、すれ違い接続要求が受信されていないと判定されたときの処理について説明する。この場合は、次に、「インターネット通信」に関する処理が実行されることになる。まず、図37のステップS173において、無線通信モジュール34が、専用AP101からのビーコンを受信したか否かが判定される。当該判定の結果、専用AP101からのビーコンを受信したと判定されたときは(ステップS173でYES)、ステップS174において、当該ビーコンの発信元となる専用AP101への接続処理が実行される。なお、上記図22のステップS40の処理では、この流れで処理が進められることになる。
次に、ステップS175において、現在時刻と接続した専用AP101のMACアドレスが無線通信モジュール34内の既通信端末/専用AP情報405に記憶される。
次に、ステップS176において、インターネット通信用BG処理が実行される。この処理では、ポリシーデータの取得とこれに基づく処理やタスクの実行処理が行われる。この処理の詳細については後述する。当該処理が終われば、当該ローカル通信用BG処理は終了する。
一方、上記ステップS173の判定の結果、専用AP101のビーコンを受信していないと判定されたときは(ステップS173でNO)、ステップS177で、本体設定データ560が参照され、ゲーム装置1に登録・設定されている所定のAPをサーチする処理が実行される。例えば、ユーザの自宅に設置したAPや、出荷時設定として予め定義されている公衆無線LANサービスのAP等をサーチする処理が実行される。サーチ方法は典型的にはパッシブスキャンであるが、APのBSSIDやAPとの通信に用いられる周波数が予めゲーム装置1に記憶されていれば、直接APと接続を行うこともできる。
次に、ステップS178において、上記ステップS177におけるサーチの結果、APが存在したか否かが判定される。その結果、APが存在しなかった(サーチの結果、検出できなかった)と判定されたときは(ステップS178でNO)、上記ステップS165に処理が進められる。一方、APが存在したと判定されたときは(ステップS178でYES)、ステップS179において、当該サーチされたAPへの接続処理が行われる。そして、ステップS180において、後述するインターネット通信用BG処理が実行される。当該処理が終われば、当該ローカル通信用BG処理は終了する。以上で、ローカル通信用BG処理の説明を終了する。
[インターネット通信用BG処理]
次に、上記ステップS176等で示したインターネット通信用BG処理について説明する。この処理では、「インターネット通信」を利用した各種データの送受信にかかる処理等が実行される。
図38は、当該インターネット通信用BG処理の詳細を示すフローチャートである。まず、ステップS191において、ポリシー処理が実行される。当該処理の詳細は後述するが、ここでは、主に、ポリシーデータの取得、および、当該ポリシーデータに基づくタスクの実行優先度の調整が行われる。
次に、ステップS192において、タスク実行処理が行われる。この処理についても詳細は後述するが、この処理では、タスクの実行や、インストール処理等が行われる。
タスク処理が終了すれば、次に、ステップS193においてAP101または102との通信の切断が実行される。続くステップS194において、今回の通信のために「スリープモード」が解除されていたか否かが判定される。その結果、「スリープモード」が解除されていたと判定されたときは(ステップS194でYES)、ステップS195において、「スリープモード」に戻すために、CPU31に給電を停止するための命令がCPU31自身から送られ、「スリープモード」に移行するための処理が実行されるとともに、マイコン37内の給電状態フラグ304をオフにし、電源管理IC41にスリープへ移行する旨を通知する。一方、ステップS194の判定の結果、今回の通信のために「スリープモード」が解除されていたのではないと判定されたときは(ステップS194でNO)、ステップS195の処理はスキップされる。そして、当該インターネット通信用BG処理は終了する。
[ポリシー処理]
次に、上記ステップS191で示したポリシー処理について説明する。図39〜図40は、当該ポリシー処理の詳細を示したフローチャートである。まず、ステップS201において、上述したようなポリシーサーバ103との接続を確立する処理が実行される。次に、ステップS202において、現在通信に利用しているAPが専用AP101であるか否かが判定される。これは、APとの接続の際に利用したビーコンに、上述したようなベンダー特定情報が含まれているか否かで判定される。当該判定の結果、専用AP101を利用していると判定されたときは(ステップS202でYES)、ステップS203において、当該利用している専用AP101の識別子と、ゲーム装置1に設定されている国情報(上記本体設定データ560に含まれている)を含んだポリシーデータのリクエストを生成し、ポリシーサーバ103に送信する。このリクエストは、例えば、以下のようなHTTPリクエストである。
「https://xxx.net/国情報を示す文字列/AP識別子/」
一方、現在通信に使用しているAPが専用AP101ではないと判定されたときは(ステップS202でNO)、ステップS204において、上記国情報を含んだポリシーデータのリクエストが生成され、ポリシーサーバ103へ送信される。このときのリクエストは、例えば、以下のような内容となる。
「https://xxx.net/国情報を示す文字列/」
上記のようなリクエストに応じて、ポリシーサーバ103からポリシーデータが送信開始されるため、次に、ステップS205において、ポリシーサーバ103からポリシーデータがダウンロードされ、受信ポリシーデータ570としてメインメモリ32あるいはNANDフラッシュメモリ33に格納される。
ダウンロードが終われば、次に、当該ダウンロードした受信ポリシーデータ570を適用するための処理が実行される。具体的には、まず、ステップS206において、受信ポリシーデータ570に含まれる全てのポリシー設定574について、以下に示すような処理が行われたか否か、つまり、実行優先度や消尽回数の変更が適用されたか否かが判定される。当該判定の結果、全てのポリシー設定574について適用済み(処理済み)と判定されたときは(ステップS206でYES)、当該ポリシー処理は終了する。一方、未適用(未処理)のポリシー設定574が残っていれば(ステップS206でNO)、ステップS207において、まだ適用されていないポリシー設定574のうちいずれか1つが選択される。以下、この選択されたポリシー設定574を「処理対象ポリシー設定」と呼ぶ。
次に、ステップS208において、処理対象ポリシー設定の内容が、全てのタスクを適用対象とする内容であるか否かが判定される。これは、当該処理対象ポリシー設定のタスクID576に、全タスクを適用対象とする旨の文字列が示されているか否か等で判定される。当該判定の結果、全タスクを適用対象とする内容ではないと判定されたときは(ステップS208でNO)、後述のステップS213に処理が進められる。
一方、当該判定の結果、全タスクを適用対象とすると判定されたときは(ステップS208でYES)、次に、ステップS209において、処理対象ポリシー設定のタスク永続性578が、オンに設定されているか否か、すなわち、「永続的」であることを示す内容か否かが判定される。当該判定の結果、「永続的」と判定されたときは(ステップS209でYES)、ステップS212において、ゲーム装置1に登録されている(つまり、タスクデータ530内の)全てのタスクの実行優先度534が、当該処理対象ポリシー設定の実行優先度577で示される値に変更される。そして、後述のステップS218に処理が進められる。
一方、ステップS209の判定の結果、「永続的」ではないと判定されたときは(ステップS209でNO)、ステップS210において、タスクデータ530内の全てのタスクについての現在の実行優先度534がメインメモリ32にバックアップされる。そして、ステップS211において、ゲーム装置1に登録されている全てのタスクの実行優先度534が当該処理対象ポリシー設定の実行優先度577で示される値に変更される。そして、後述のステップS218に処理が進められる。
次に、上記ステップS208の判定の結果、全タスクを適用対象とする内容ではないと判定されたときの処理について説明する。この場合は、ステップS213において、タスクデータ530が参照されて、処理対象ポリシー設定のタスクID576およびアプリID575と同じ値を有するタスク設定531がタスクデータ530内に存在するか否かが判定される。当該判定の結果、存在しないと判定されたときは(ステップS213でNO)、当該処理対象ポリシー設定については処理済みとしたうえで上記ステップS206に戻る。その結果、受信ポリシーデータ570から、未処理のポリシー設定574が次の処理対象ポリシー設定として選択され、処理が繰り返される。
一方、上記タスクIDおよびアプリIDが一致するタスク設定531が存在すると判定されたときは(ステップS213でYES)、次に、ステップS214において、当該処理対象ポリシー設定のタスク永続性578が「永続的」を示す値か否かが判定される。その結果、「永続的」であれば、ステップS215において、上記タスクIDおよびアプリIDが一致するタスク設定531の実行優先度が、処理対象ポリシー設定の実行優先度577で示される値に設定される。そして、後述のステップS218に処理が進められる。
一方、ステップS214の判定の結果、「永続的」ではないと判定されたときは(ステップS214でNO)、ステップS216において、上記タスクIDおよびアプリIDが一致するタスク設定531の実行優先度534がメインメモリ32上にバックアップされる。そして、ステップS217において、上記タスクIDおよびアプリIDが一致するタスク設定531の実行優先度534が、処理対象ポリシー設定の実行優先度577で示される値に設定される。
次に、ステップS218において、上記実行優先度534が変更された結果、変更を適用される対象となったタスク設定531が以下に示すような条件を満たしているか否かが判定される。この条件とは、(1)消尽回数540が0であること、(2)上記変更適用後の実行優先度534が"EXPEDIATE"であること、(3)タスクリビジョン543の値が今回取得した受信ポリシーデータ570のポリシーリビジョン571と一致すること、である。この3つの条件の全ては満たしていないと判定されたときは(ステップS218でNO)、ステップS219において、当該タスク設定531の消尽回数540に1が加算される。すなわち、消尽回数が0となって実行されなくなったタスクに対して、実行優先度が"EXPEDIATE"、つまり最優先で実行させたいタスクとするために、消尽回数540の値を変更するものである。そして、ステップS220において、今回適用したタスク設定531のタスクリビジョン543の値として、上記受信ポリシーデータ570のポリシーリビジョン571の値が記録される。そして、上記ステップS206に処理が戻る。
一方、ステップS218の判定の結果、上記3つの条件を全て満たしていると判定されたときは(ステップS218でYES)、以前も同じリビジョンのポリシーを受信し、そのときに当該タスクは実行されていると考えられる。この場合、同じリビジョンのポリシーデータを受信したときは、再度当該タスクを実行させないため、上記のような消尽回数540の加算は行われずに、ステップS220に処理が進められる。以上で、ポリシー処理の説明は終了する。
[ポリシーサーバの処理]
ここで、上記ポリシー処理における通信相手となるポリシーサーバの処理についても説明する。まず、具体的な処理の説明の前に、ポリシーデータが格納されている当該ポリシーサーバ103のメモリマップについて簡単に説明する。図41は、ポリシーサーバ103のメモリマップを示す図である。図41に示すように、ポリシーサーバ103には、国情報152毎に分けて複数のポリシーデータ153が格納されている。各ポリシーデータ153の構造は、上記図18で示した受信ポリシーデータ570と同様である。図41では、説明を判りやすくするため、AP情報154のみ示している。AP情報154は、所定の専用AP101を示す値が割り振られているものと、NULL値が設定されているものがあるとする。本実施形態では、各国情報毎に、専用AP101を示す値が割り振られたポリシーデータ153は複数存在するとする(但し、これら複数のポリシーデータ153の間では、AP情報154は重複していないとする)。また、AP情報にNULL値が設定されたポリシーデータ153は一つだけしか存在しないものとする。このようなポリシーデータ153がポリシーサーバ103に格納されていることを前提として、以下のような処理が実行される。
図42は、当該ポリシーサーバ103で実行される処理を示すフローチャートである。図42において、まず、ステップS231において、上述したようなポリシーデータ153のリクエストの受信があったか否かが判定される。その結果、受信していないと判定されたときは(ステップS231でNO)、当該ステップS231の処理が繰り返される。つまり、当該リクエストの待ち受け状態となる。一方、ポリシーデータ153のリクエストを受信したと判定されたときは(ステップS231でYES)、次に、ステップS232において、受信したリクエストにAPの識別子が付加されているか否かが判定される。その結果、付加されているときは(ステップS232でYES)、専用AP101を経由してポリシーサーバ103にアクセスしてきていると考えられる。この場合は、ステップS233において、リクエストに含まれているゲーム装置1の国情報、および、APの識別子に対応するポリシーデータ153が読み出される。つまり、上記リクエストに含まれる国情報が上記ポリシーサーバ103に記憶されている国情報152と照合され、一致するものがあれば、更に、リクエストに含まれるAP識別子とAP情報154とが照合され、一致するポリシーデータ153が検索され、読み出される。そして、ステップS235において、当該読み出されたポリシーデータ153が上記リクエストの送信元のゲーム装置1に送信される。
一方、上記ステップS232の判定の結果、上記リクエストにAPの識別子が付加されていないと判定されたときは(ステップS232でNO)、専用AP101を介さずにポリシーサーバにアクセスしてきている場合であると考えられる。そのため、この場合は、ステップS234において、まず、上記リクエストに含まれる国情報と上記ポリシーサーバの国情報152とが照合され、一致するものが検索される。そして、AP情報154にNULL値が設定されているポリシーデータ153が読み出される。そして、上記ステップS235において、当該ポリシーデータ153の送信が行われる。以上で、ポリシーサーバの説明は終了する。
[タスク実行処理]
次に、上記図38のステップS192で示した、タスクの実行処理について説明する。この処理では、タスクの設定内容に基づいて所定のデータの送受信が行われる。更に、インストール処理も行われる。図43〜図48は、当該タスク処理の詳細を示すフローチャートである。まず、ステップS511において、実行順ソート処理が実行される。この処理では、タスクの実行優先度や次回実行時刻、消尽回数等を考慮して、実行すべきタスクの抽出が行われ、その実行順序を決定するための処理が行われる。また、以下のような処理が行われた結果、メインメモリ32に「実行順序リスト」という一時的なデータが生成される。
図49は、上記ステップS511にかかる実行順ソート処理の詳細を示すフローチャートである。図49において、まず、ステップS291で、上記タスクデータ530が参照されて、次回実行時刻537が現在時刻以前であって、且つ、消尽回数540が0ではないタスク設定531が抽出される。ここで、次回実行時刻が現在時刻「以前」であるものを抽出している理由は、専用AP101に接続するタイミングは偶然ビーコンを受信したときであるために、タスクの実行時刻と完全に一致する時刻に当該処理が行われることはまれであるからである。そのため、既に実行時刻を経過してしまっていても、この時点においては抽出が行われる。
次に、ステップS292において、上記抽出された各タスク設定531についての評価が行われる。当該評価の意図は、長い間実行されていないタスクほど、より優先的に実行されるように調整するという意図である。そのため、本実施形態では、「評価ポイント」というものを用いる。当該「評価ポイント」は、その値が高いほど、優先的に実行すべきであることを示す。そして、この処理では、上記抽出された各タスク設定531の前回完了時刻544と現在時刻とが比較され、前回完了時刻544から現在時刻までの時間が長いものほど高い点数の「評価ポイント」が与えられる。つまり、長時間実行されていないタスク設定531ほど、高い「評価ポイント」が設定される。
次に、ステップS293において、上記抽出されたタスクから実行優先度534が”STOPPED”のタスクが除外される。”STOPPED”は実行停止を意味する内容であるからである。
次に、ステップS294において、実行優先度534および上記「評価ポイント」に基づいて、これまでの処理でピックアップされた各タスク設定531がソートされる。具体的には、まず、実行優先度534に基づいて各タスク設定531がソートされる。次に、実行優先度が同じタスク設定531の間で、上記「評価ポイント」に基づくソートが行われる。その結果、同じ実行優先度を有するタスク設定531の間では、長時間実行されていないタスクほど優先的に実行されるような順序づけがなされることになる。なお、未実行のタスク設定、すなわち、前回完了時刻544に値が設定されていないタスク設定531については、当該タスク設定531が登録された時刻であるタスク登録時刻545に基づいてソートされる。すなわち、登録時刻が古いものほど優先的に実行されるようにソートされる。
次に、ステップS295において、未処理フラグ541がオンに設定されているタスク設定531があるか否かが判定される。その結果、未処理フラグ541がオンのタスク設定531があると判定されたときは(ステップS295でYES)、ステップS296において、当該未処理のタスク設定531の実行優先度が”HIGH”であって、その中での実行順序が上位に来るように調整される。つまり、この時点で未処理となっているタスクは、以前にタスクが実行可能な状態であったときに、何らかの原因で当該タスクが実行されなかったと考えられる。そのため、このようなタスクについては、"EXPEDITE"の次の優先度で実行されるように調整することで、いわゆる「レジューム」的な動作が行われるようにするものである。一方、ステップS295の判定の結果、未処理フラグ541がオンのタスク設定531がないときは(ステップS295でNO)、ステップS296の処理はスキップされて、本実行順ソート処理は終了する。その結果、上記「実行順序リスト」がメインメモリ32上に生成されることになる。当該「実行順序リスト」では、上記のような処理の結果、上記処理でピックアップされたタスクが、その実行順位の高いものから順にソートされて示されている。
図43に戻り、実行順ソート処理が終われば、次に、ステップS512において、上記「実行順序リスト」にリストアップされている全てのタスクを全て実行し終えたか否かが判定される。当該判定の結果、すべて実行し終えたと判定されたときは(ステップS512でYES)、後述するステップS551に処理が進められる。一方、まだ未実行のタスクが残っていると判定されたときは(ステップS512でNO)、次に、ステップS513において、完了していないタスクのうち、実行順序が最上位のタスクが選択される。以下、当該選択されたタスクを処理対象タスクと呼ぶ。
次に、ステップS514において、選択された処理対象タスクにかかるタスク設定531の未処理フラグ541がオンに設定される。
次に、ステップS515において、当該処理対象タスクにかかるタスク設定531の通信先URL535が参照され、HTTPリクエストが生成される。続くステップS516において、本体設定データ560が参照され、上記生成されたHTTPリクエストの文字列にゲーム装置1に設定されている国情報が付加される。
次に、ステップS517において、現在行われている「インターネット通信」は、専用AP101を利用した通信であるか否か、つまり、専用AP101を介してインターネットに接続しているか否かが判定される。その結果、専用AP101を利用した通信であると判定されたときは(ステップS517でYES)、ステップS518において、現在使用しているAPにかかるAP識別子が、上記HTTPリクエストの文字列に更に付加される。一方、専用APを利用していないと判定されたときは(ステップS517でNO)、当該ステップS518の処理はスキップされる。
次に、図44のステップS519において、処理対象タスクにかかるタスク設定531の送信/受信識別フラグ539を参照することにより、処理対象タスクの内容が「受信タスク」か否かが判定される。つまり、データの受信を行うためのタスクであるか、送信を行うためのタスクであるかが判定される。その結果、「受信タスク」であると判定されたときは(ステップS519でYES)、ステップS520において、上記の処理で生成されたHTTPリクエストが、当該処理対象タスクにかかるタスク設定531の通信先URL535で示されるサーバに対して送信される。このとき、当該リクエストのHTTPヘッダの”If-Modified-Since”フィールドに”前回の当該タスクの実行時刻”が含まれて送信される。これにより、If-Modified-Sinceに記される日時以降に更新があったときのみサーバはデータを送り、更新がないときは、サーバはレスポンスコード304のみを返すことになる。
次に、ステップS521において、上記処理対象タスクの内容が、アプリをダウンロードするためのタスクであるか否かが判定される。当該判定の結果、アプリをダウンロードするタスクであるときは(ステップS521でYES)、ステップS522において、ダウンロード中であるか否か(後述のステップS526またはステップS529の処理でダウンロードが開始済みか否か)が判定される。その結果、ダウンロード中ではないときは(ステップS522でNO)、ステップS523において、既存のアプリのアップデートに該当するか否かが判定される。この判定は、ダウンロード対象のアプリと同じアプリID552をもつアプリが実際にインストールされているかどうかをアプリ関連データ550(あるいはプログラム領域500))を参照することで判定される。なお、このような判定の他、例えば、上記アプリのインストール処理(上記図29〜図30参照)において、同じアプリを有し、かつ旧バージョンを所持しているか否かを判断し、肯定の判定のときにアップデートであるというフラグを作成し、このフラグを参照して判定するようにしても良い。また、同種のアプリであってもバージョン毎にIDが異なるようにIDを付与している場合は、IDを参照することでアップデートの確認が可能となる。
上記判定の結果、既存のアプリのアップデートに該当すると判定されたときは(ステップS523でYES)、ステップS529で、ダウンロード対象のアプリ(のファイル)を、既存のアプリのファイル名とは別のファイル名でNANDフラッシュメモリ33のプログラム領域500にオンザフライで格納する処理が開始される。更に、ステップS530において、新規アップデートフラグ559がオンに設定され、ステップS532に処理が進められる。
一方、ステップS523の判定の結果、既存アプリのアップデートに該当しない(つまり、新規アプリの導入)と判定されたときは(ステップS523でNO)、次に、ステップS524において、正当性確認処理が実行される。この処理は、上記ステップS472の処理と同様処理が実行される。すなわち、今回DL対象となるファイルに関する権利情報がDLされ、その正当性が確認される。
次に、ステップS525において、正当性に問題が無かったか否かが判定される。その結果、問題があったときは(ステップS525でNO)、後述するステップS543に処理が進められる。一方、正当性に問題が無いときは(ステップS525でYES)、次に、ステップS526において、ダウンロード対象のアプリ(のファイル)をNANDフラッシュメモリ33のプログラム領域500にオンザフライで格納する処理が開始される。このときは、新規インストールに該当するため、別のファイル名は用いずに格納される。
続くステップS527において、当該アプリに関連する各種データ(例えば、メタデータ)の生成および設定が適宜行われ、アプリ関連データ550としてNANDフラッシュメモリ33に格納される。
次に、ステップS528において、当該アプリに対応するアプリケーション領域551の新規インストールフラグ554がオンに設定される。
その後、ステップS532において、ダウンロードが完了したか否かが判定される。その結果、まだ完了していないときは、上記ステップS521の処理に戻される。ダウンロードが完了したときは(ステップS532でYES)、次に、図45のステップS5321において、上記完了したダウンロードの内容は、アプリのダウンロード、あるいは、システムの構成要素のダウンロードであったか否かが判定される。当該判定の結果、アプリ、またはシステム構成要素のダウンロードであったときは(ステップS5321でYES)、ステップS5322において、当該ダウンロードされたファイルの正当性をチェックする処理が実行される。この処理は、上記図31を用いて上述した処理内容とほぼ同様の処理が実行される。但し、そのチェック対象としては、上記権利情報の正当性ではなく、上記ダウンロードされたファイルの正当性がチェックされることになる。そして、正当性に問題が無ければNANDフラッシュメモリ33に適宜記憶される。また、正当性に問題があるときは、当該ファイルは破棄される。その後、後述するステップS543に処理が進められる。
一方、アプリまたはシステム構成要素のダウンロードではなかったときは(ステップS5321でNO)、上記ステップS5322の処理はスキップされて、後述のステップS543に処理が進められる。
一方、上記ステップS522の判定の結果、ダウンロード中であると判定されたときは(ステップS522でYES)、ステップS531において、ダウンロード中であるアプリのファイルを上記NANDフラッシュメモリ33にオン・ザ・フライで格納していく処理が継続される。そして、上記ステップS532に処理が進められる。
次に、上記ステップS521の判定の結果、アプリのダウンロードタスクではないと判定されたときの処理について説明する。この場合は、図45のステップS533において、上記処理対象タスクの内容が、システムの構成要素(システムプログラム)をダウンロードするためのタスクであるか否かが判定される。当該判定の結果、システムプログラムをダウンロードするタスクであるときは(ステップS533でYES)、次に、ステップS534において、ダウンロード対象の構成要素は、既存の構成要素であるか否かが判定される。つまり、既存の構成要素のアップデートに該当するのか、新規の構成要素の取得に該当するのかが判定される。当該判定の結果、既存の構成要素のアップデートに該当する場合は(ステップS534でYES)、ステップS536において、実際の(現在稼働中の)システムプログラムのファイル名とは別の名前で、オン・ザ・フライでシステムプログラム領域515にダウンロード対象の構成要素を格納する処理(ダウンロードの開始、または、開始済みであればダウンロードの継続)が実行される(例えば、実際のシステムプログラムのファイル名が「firmware001.bin」であるときは、「firmware002.bin」の名前で格納される)。そして、上記ステップS532に戻る。
一方、既存の構成要素ではない、つまり、新規の構成要素であるときは(ステップS534でYES)、ステップS535において、オン・ザ・フライ用キャッシュ600にオン・ザ・フライで格納する処理が実行される(ファイル名の変更はなされない)。そして、ステップS532に処理が戻る。
一方、上記ステップS533の判定の結果、受信タスクがシステムプログラムのダウンロードのタスクでもないときは(ステップS533でNO)、図46のステップS537において、受信タスクが「インストールリストの取得」のタスクであるか否かが判定される。その結果、「インストールリストの取得」であるときは(ステップS537でYES)、ステップS538において、サーバから、変更がないことを示す旨の応答、具体的には、HTTPレスポンスコード304(Not Modified、すなわち更新が無い旨のレスポンスコード)が返されたか否かが判定される。当該判定の結果、HTTPレスポンスコード304が返されたときは(ステップS538でYES)、前回更新時からインストールリストが更新されていないと考えられるため、インストールリストはダウンロードされずに、上記ステップS532の処理に進められる。
一方、上記ステップS537の判定の結果、受信タスクが「インストールリストの取得」ではないと判定されたとき(ステップS537でNO)、または、上記ステップS538で、HTTPレスポンスコード304が返されなかったときは(ステップS538でNO)、ステップS539において、当該処理対象タスクにかかるタスク設定531のファイルパス536で示される格納場所すなわち当該タスク設定531のアプリID532に対応するアプリケーションのアプリケーション領域551のタスク受信キャッシュ553に、ダウンロードされたデータが格納される。具体的には、上記ステップS537でNOと判定されて当該処理が実行されたときは、処理対象タスクに対応する各アプリに関連するデータ(上記のようなインストールに関連しない各種データ)が格納される。また、上記ステップS538でNOと判定されて当該処理が実行されるときは、インストールリスト580がサーバから取得されてデータ領域512に格納されることになる。その後、上記ステップS532の処理に進められる。
図44に戻り、一方、上記ステップS519の判定の結果、処理対象タスクの内容が「受信タスク」ではない、つまり、「送信タスク」であると判定されたときは(ステップS519でNO)、図46のステップS540において、当該処理対象タスクのファイルパス536で示される格納場所、本実施形態では、当該処理対象タスクに対応するアプリケーション領域551のタスク送信用データ556から、送信(アップロード)すべきデータが取得される。そして、当該データが上記HTTPリクエストに付加される。
次に、ステップS541において、上記送信データが付加されたHTTPリクエストがサーバに送信される。すなわち、通信先URL535で示されるURLに対してのデータのアップロード処理が開始される。その後、アップロードが完了すれば、ステップS542において、サーバから送られてくる完了通知(データのアップロードが正常終了したことを示す通知)が受信される。そして、ステップS543に処理が進められる。
次に、図47のステップS543において、処理対象タスクにかかるタスク設定531の未処理フラグ541にオフが設定される。続くステップS544において、前回完了時刻544に現在時刻が完了時刻として記憶される。更に、ステップS545において、消尽回数540の値から1が減算される。
次に、ステップS546において、タスク設定531の実行間隔538が参照されて次回実行時刻が算出され、次回実行時刻537として記憶される。なお、「インストールリストの取得」のタスクに関しては、次回実行時刻が24時間後となるように設定される。
次に、ステップS547において、上記処理対象タスクの内容が、「インストールリストの取得」というタスクであるか否かが判定される。上述したように、当該「インストールリストの取得」というタスクは、ゲーム装置1の出荷時設定として予め設定されているタスクである。そのタスク設定531の内容としては、予め定められた固定的なタスクID533が割り当てられており、また、定期的(本実施形態では24時間毎)に実行されるように設定されている。そのため、当該タスクID533を参照することで、「インストールリストの取得」というタスクか否かが判定される。当該判定の結果、「インストールリストの取得」のタスクであると判定されたときは(ステップS547でYES)、ステップS548において、システムインストール処理が実行される。この処理の詳細は後述する。一方、「インストールリストの取得」のタスクではないと判定されたときは(ステップS547でNO)、ステップS548の処理はスキップされる。
次に、ステップS549において、処理対象タスクにかかるタスク設定531の一時変更フラグ542が参照されることにより、当該処理対象タスクの実行優先度534が一時的な変更にかかるものか否かが判定される。その結果、一時的な変更と判定されたときは(ステップS549でYES)、ステップS550において、バックアップされている実行優先度データが用いられ、当該処理対象タスクにかかる実行優先度534が元の値に変更される。一方、一時的な変更ではないと判定されたときは(ステップS549でNO)、ステップS550の処理はスキップされる。その後、上記図43のステップS512に戻り、未実行のタスクが適宜選択されて処理が繰り返される。
次に、図43のステップS512において、全てのタスクを実行し終えたと判定されたときの処理(ステップS512でNO)について説明する。このときは、次回起床時刻305を設定するための処理が実行される。具体的には、まず、図48のステップS551において、タスクデータ530内の全てのタスク設定531についての次回実行時刻537が読み込まれる。続くステップS552において、全タスクのうち、次回実行時刻537が最も早い時刻のタスクが検出される。そして、当該最も早い次回実行時刻が現在時刻から30分以内であるか否かが判定される。当該判定の結果、30分以内であると判定されたときは(ステップS552でYES)、ステップS553において、現在時刻の30分後の時刻を次回起床時刻305として設定する。つまり、一旦タスクが実行されると、その後、最低30分間はタスクの実行が行われないように設定されることになる。これにより、あまりに頻繁に接続が行われてしまうことを防ぎ、ゲーム装置1の更なる省電力化や、ネットワークトラフィックの負荷の軽減を図ることが可能となる。そして、当該タスク実行処理は終了する。
一方、ステップS552の判定の結果、最も早い次回実行時刻は現在時刻から30分以内ではないと判定されたときは(ステップS552でNO)、ステップS554において、当該最も早い次回実行時刻537が現在時刻から3時間後よりも遅い時刻であるか否かが判定される。その結果、3時間後よりも遅いと判定されたときは(ステップS554でYES)、ステップS555において、現在時刻から3時間後の時刻が次回起床時刻305として設定される。これにより、少なくとも3時間後には接続を試みることになるので、定期的にゲーム装置1に接続を試みさせることができる。なお、上記のような30分や3時間という値はあくまで一例であり、設定時刻はこれらに限定されるものではない。
一方、最も早い次回実行時刻537は現在時刻から3時間後よりも遅い時刻ではないと判定されたときは(ステップS554でNO)、当該最も早い次回実行時刻は、30分から3時間の間ということになり、ステップS556において、当該最も早い次回実行時刻が次回起床時刻305として設定される。そして、当該タスク実行処理が終了する。以上で、タスク実行処理の説明を終了する。
[システムインストール処理]
次に、上記ステップS548で示したシステムインストール処理の詳細を説明する。本処理では、主に、システムプログラムのアップデートに関する処理が行われる。図50〜図51は、当該システムインストール処理の詳細を示すフローチャートである。まず、ステップS310において、アプリインストール必要フラグ630がオンに設定される。次に、ステップS311において、インストールリスト580のシステムアップデート情報583が参照され、これに含まれているシステムの構成要素584の全てに基づいて示されるシステム構成と、現在のシステム構成との差分の有無がチェックされる。これは、例えば、全ての構成要素に基づいて算出されるハッシュ値を比較することで、差分の有無がチェックされる。なお、システム構成の差分の有無(つまり、システムに更新があるか否か)が判別できれば、ハッシュ値を用いる方法に限らずどのような手法を用いても良い。
次に、ステップS312において、上記差分の有無のチェックの結果、システム構成に差分があるか否かが判定される。その結果、差分がないときは(ステップS312でNO)、システムの更新はない(同じバージョンである)と考えられるため、ステップS323に処理が進められ、アプリのインストール処理が行われる。この処理は、上記図26,図29および図30を用いて説明したステップS424の処理と同様である。すなわち、アプリをダウンロードするタスクが適宜生成され、かつ、即時実行されることで、アプリが適宜インストールされる。そして、システムインストール処理は終了する。ここでは、システムの更新がない場合はすぐにアプリケーションのインストール処理を行うことになる。
一方、ステップS312の判定の結果、差分があるときは(ステップS312でYES)、システムの新しいバージョンが提供されていると考えられる。このときは、システムを更新するための処理が実行される。まず、ステップS313において、上記インストールリスト580に挙げられているシステムの構成要素584の全てについて、以下に述べるようなチェック処理が行われたか否かが判定される。その結果、まだチェック処理が行われていない構成要素584が残っているときは(ステップS313でNO)、ステップS314において、インストールリスト580に挙げられている構成要素584から、チェック対象となる構成要素584(以下、処理対象構成要素と呼ぶ)が一つ選択される。
次に、ステップS315において、当該処理対象構成要素がインストールの対象となるか否かが判定される。具体的には、現在のシステム構成の詳細リスト640が参照され、このリストに上記処理対象構成要素を示す情報が載っているか否かが判定される。その結果、載っていない場合、つまり、処理対象構成要素が現在インストールされていない構成要素である場合は、構成要素の新規インストール対象として判定される。更に、上記処理対象構成要素に上記リストが載っている場合は、双方の構成要素のバージョンチェックが行われ、現在のシステム構成の詳細リスト640に載っているバージョンよりも、上記処理対象構成要素のバージョンのほうが新しいか否かが判定される。その結果、上記処理対象構成要素のバージョンのほうが新しい場合も、構成要素のアップデートとして、インストール対象として判定される。
上記ステップS315の判定の結果、処理対象構成要素がインストール対象ではないと判定されたときは(ステップS315でNO)、上記ステップS313に処理が戻される。一方、処理対象構成要素がインストール対象であると判定されたときは(ステップS315でYES)、次に、権利情報のチェックが実行される。まず、ステップS316において、処理対象構成要素の権利情報が所定のサーバからダウンロードされる。次に、ステップS317において、正当性確認処理が実行される。この処理は、上記図30および図31を用いて説明した、ステップS472にかかる処理と同様の処理が実行される。すなわち、ダウンロードされた権利情報の正当性のチェックと、その結果に応じた権利情報データベース610への登録、あるいは、ダウンロードした権利情報の破棄が行われる。
ステップS317の正当性確認処理が終われば、次に、ステップS318において、当該正当性確認処理の結果、正当性に問題がなかったか否かが判定される。その結果、正当性に問題がなかったときは(ステップS318でYES)、ステップS319において、処理対象構成要素の構成要素ID585(図19参照)に対応する構成要素(システムプログラム)をダウンロードするための「受信タスク」が生成される。このとき、優先順位586が参照され、これに示される優先順位が当該受信タスクの実行優先度534として設定される。一方、上記ステップS318の判定の結果、正当性に問題があったときは(ステップS318でNO)、上記ステップS319の処理は行われずに、上記ステップS313へ処理が戻される。
次に、上記ステップS313の判定の結果、上記インストールリスト580に挙げられている構成要素584の全てについて上記のようなチェック処理が行われたと判定されたとき(ステップS313でYES)の処理について説明する。なお、当該ステップS313の判定については、インストールリスト580にシステムアップデート情報583自体が含まれていないような場合(システムの更新はなく、アプリの更新や新規配布アプリのみがあるような場合)も、当該判定においてYESと判定される。
このときは、図51のステップS320において、上記ステップS319で生成されたタスク(すなわち、システムプログラムをダウンロードするためのタスク)を実行するために、タスク実行処理が行われる。当該処理は、上述した図38のステップS192の処理と同様の処理である(この場合は、上記図45で示したステップS533の判定でYESと判定されて処理が進められることになる)。なお、当該ステップS320では即時でタスク実行が行われることになるが、この即時実行でのタスクが失敗した場合は、例えば1時間後に当該タスクが実行されるようにしてもよい。具体的には、上記図37のステップS178の判定でNOと判定されたときに、アプリまたはシステムのダウンロードのためのタスクであるか否かを判定し、アプリまたはシステムのダウンロードのためのタスクであるときは、1時間後に同じタスクが実行されるように設定すればよい。
ステップS320の処理が終われば、次に、ステップS321において、アップデート後のシステムの構成要素(システムプログラム)に基づいて、上述したステップS311の処理で用いるための情報が生成され、構成要素比較用データ650としてデータ領域512に記憶される。ただし、構成要素比較用データ650の更新は、図25で説明したシステムアップデートの反映の後でもよい。
次に、ステップS322において、システムインストール済みフラグ620がオンに設定される。以上で、システムインストール処理は終了する。その結果、この後にメニューが表示された際に、上記ステップS413(図25)の処理において、システムの更新の問い合わせが行われることになる。
以上で、第1の実施形態にかかる各種処理の説明を終了する。
上記で説明したように、本実施形態では、CPU31に電力が供給されていない状態でも、上記タスクの実行条件が満たされれば、自動的にCPU31に通電し、APへの接続が試みられる。その結果、ユーザが気付かないうちにネットワークへ接続することが可能となる。また、タスクの実行条件が満たされないうちは、CPU31には電力は供給されないため、消費電力を節約することも可能である。これにより、携帯型ゲーム装置のような、常時接続を前提としていない情報端末であっても、常時接続しているかのような振る舞いを行わせつつ、消費電力の節約も可能となる。
また、ユーザが気付かないうちにネットワーク接続すると共に、更に、上述したようなアプリケーション等のダウンロード及びインストールも行っている。従来の技術においては、一般に、携帯型情報端末等において、新規のアプリケーションが配布されている場合は、その通知のみがユーザに対して行われ、ユーザがインストール処理に関する何らかのアクション(新規アプリをインストールする意図の基で行われる操作)がなされたときに初めてインストール処理が行われる。一方、本実施形態では、新規アプリが配布されているときは、このような操作をユーザに求めることなくインストール処理まで行い、ユーザが当該アプリをすぐに利用できる状態にまで設定している。そのため、ユーザが次にゲーム装置1を動作させた際に、知らないうちに新しいアプリケーションが加わっている事による驚きを与えることが可能となる。更に、このようなアプリケーションは既にインストールが完了しており、すぐに利用できる状態となっているため、上記のようなインストールに関する操作をユーザに求めることもなく、ダウンロードやインストール処理の際に発生する処理待ちの時間をユーザに与えず、利便性をより高めることができる。
また、上述の「特典アプリ」のように、所定の条件、例えば、所定のゲームのプレイ時間が所定時間以上である、等の条件が満たされたときのみ入手可能なアプリを定義・準備しておき、これを上記のように自動的にインストールすることで、ユーザに対してゲームやアプリをより長く遊んでもらうための動機付けを提供することも可能となる。
また、上記実施形態では、レーティングのチェックに関して、レーティング情報593をインストールリスト580に含める場合を例に挙げたが、この他、レーティング情報593はインストールリスト580には含めずに、別途のファイルとして所定のサーバ上にレーティング情報を含むファイルを格納しておき、インストールリスト580とは別にこれを取得するようにしてもよい。
また、上記「受信タスク」を実行した結果、所定のアプリケーションにかかるネットワークサービスが終了した通知を受信することができ、また、終了した旨をユーザに通知している。更に、この場合は、当該ネットワークサービスにかかるタスクを消去するようにしている。これにより、ユーザは主体的に情報収集を行わなくても、所定のネットワークサービスが終了したことを知ることが可能となるほか、不要となるタスクを消去することでメモリ容量を節約できる。
また、上記実施形態では、専用AP101に応じて異なるポリシーデータを配信することも可能となっている。そのため、ポリシーサーバへの接続に用いたAP毎に、タスクの実行優先度を変化させることができる。これにより、様々な場所に応じて実行されるタスクおよび実行順をある程度変化させることが可能となり、ユーザに対して、ゲーム装置1を持ち歩く楽しみを提供できる。すなわち、ゲーム装置1を所持していろいろな場所に外出させる楽しみを与えることができる。
更に、上記実施形態では、ポリシーサーバに接続した際に、専用AP101ごとに異なる識別子だけではなく、ゲーム装置本体に設定されている国情報をも用いて、配信するポリシーデータを決定している。そのため例えば同じ専用AP101に接続した複数のゲーム装置1であっても、それぞれに設定されている国情報に応じて異なるポリシーデータを受信させることができる。
また、専用AP101ではない、例えばユーザの自宅のAP102を経由してポリシーサーバにアクセスしたようなときでも、上記国情報に応じて異なるポリシーデータを配信することが可能である。
また、上記実施形態では、ポリシーデータの適用に際して、アプリIDとタスクIDを用いているため、アプリケーション毎にタスクの実行優先度を変更することが可能である。そのため、上記国情報と当該アプリケーションとの組み合わせで、より柔軟な実行優先度の変更が可能である。
また、インストール処理に関して、システムアップデートの場合は、オン・ザ・フライでインストールしながらも、その反映についてはユーザに確認するようにしている。そして、確認がとれれば、実体ファイルへの参照情報を変更するようにレジストリを変更して再起動することによりシステムのアップデートを反映している。これにより、システムのアップデートに際にユーザに与える待ち時間を短縮することができる。また、システムアップデート以外の、例えば無料アプリケーション等の、影響度の低いアプリケーションのインストールについてはユーザの確認無しでインストールする。そのため、ユーザの利便性をより高めることができるほか、ユーザが気づかないうちにインストールが行われており、ゲーム装置1のソフトウェア構成が変化しているので、ユーザに新たな驚きを与えることができ、かつ、新たにインストールされたアプリケーションをプレイしてもらうためのきっかけを与えることができる。
また、タスクの次回実行時刻(次回起床時刻)について、次回実行予定時刻が現在時刻からあまりに近い場合は、所定時間内はタスクが実行されないように調整している。これにより、あまりに短い時間間隔でタスクが頻繁に実行されることを防ぎ、無駄な処理や無駄なネットワークトラフィックを省くことが可能となる。また、次回実行時刻があまりにも先の時刻すぎる場合も時間調整を行っているため、ある程度定期的に接続を試みさせることが可能である。
また、上記実行優先度として、単純に優先度を示す”HIGH”、”MEDIUM”、”LOW”の他、実行しないことを示す”STOPPED”や、最優先で実行させる”EXPEDITE”という値を利用している。そして、上記のようにポリシーデータを受信させて、これら実行優先度の変更が可能となっている。そのため、”STOPPED”や”EXPEDITE”を利用することで、ゲーム装置1で実行されるタスクに関して、ある程度、サーバ側(ネットワークサービスの提供者側)から制御することも可能である。
なお、上記実施形態においては、「スリープモード」に移行する操作やスリープモードを解除する操作として、折りたたみ式のハウジングを有するゲーム装置1を閉じる/開く、という操作を例に挙げたが、これに限らず、ボタン操作で移行や解除をするようにしてもよい。
また、上記実施形態では、無線モジュール処理における「スリープモード」か否かの判定で、給電状態フラグ304にアクセスできなければスリープ中と判定し、スリープ中であればこれを解除する命令をCPU31に発行する例を挙げた。「スリープモード」の解除については、この例の他、「スリープモード」であるか否かを直接的に判断するのではなく、次のような処理を行っても良い。例えば、ゲーム装置1が現在「スリープモード」であるか否かに関わらず、無線通信モジュール34は、CPU31に対してスリープを解除するための命令を発行する。そして、CPU31側において、命令を受けたときにスリープ中であったならばスリープの解除を行い、スリープ中でないならば当該命令を無視する、という処理を行うようにしても良い。また、このような処理は、無線通信モジュール34とCPU31との間だけではなく、マイコン37とCPU31との間等でも適用可能である。つまり、「スリープモード」か否かを判断し、「スリープモード」であるときはこれを解除するための処理全般について、上記のような処理方法を適用可能である。
また、上記実施形態では、1つのタスクとしては所定のデータの「送信」あるいは「受信」のみを行うものを「タスク」の例としてあげたが、この他、「送受信」を行う処理を1つのタスクとした場合であっても本発明は適用可能である。
また、上記実施形態では、タスクの次回実行時刻537に基づいて次回起床時刻305を設定していた。この他、タスクの次回実行時刻に関係なく、予め決められた所定の時間間隔で定期的にAPのスキャンを行うようにしてもよい。
また、上記実施形態では、専用AP101の一例として、上記のようなベンダー特定情報がビーコンに含まれるか否かで専用AP101を識別していた。この他、このようなベンダー特定情報を有していない一般のAP102(例えばユーザの自宅のAP)についても、専用APと同じ扱いで動作させるようにしても良い。この場合は、このような一般AP102のESSIDを上記専用AP識別情報404として記憶させるようにする。そして、受信したビーコンに含まれるESSIDが当該記憶させたESSIDと一致するか否かを判定することで、上記専用AP101の場合と同様の処理を行うようにしても良い。
また、専用AP101の識別に関しては、上記ベンダー特定情報の代わりとして、専用AP101のMACアドレスやIPアドレスを利用するようにしても良い。
また、上記実施形態では、ポリシーデータの取得に際して、本体設定データ560内の国情報を用いる場合を例に挙げたが、この他、ゲーム装置1の製造番号やシリアル番号、IPアドレス、ユーザの居住地域、ユーザ名、ユーザの性別や誕生日、ユーザの好きな色、のような情報を利用してもよい。これらの情報はいずれも本体設定データ560に記憶され、また、その内容もユーザによって適宜変更可能とすればよい。
また、上記実施形態では、ポリシーデータの受信に関して、上記専用AP101経由の場合は、当該専用AP101を示すAP識別子+国情報に基づいてポリシーデータが選択され、専用AP101経由ではないときは国情報のみに基づいてポリシーデータが選択されていた。この他、本体設定データ560の情報を参照することなく、例えば、専用AP101経由時は、AP識別子のみに基づいてポリシーデータが選択され、専用AP101経由ではないときは、予め用意されている共通的なポリシーデータを選択したり、あるいは、ポリシーデータの受信自体を行わないようにしてもよい。
また、上記実施形態では、ポリシーデータについてはポリシーサーバに記憶する場合を例に挙げていたが、この他、専用APに上記ポリシーデータを記憶させておき、専用AP101との接続が確立した後、ゲーム装置1にポリシーデータがダウンロードされるようにしてもよい。また、APから発信されるビーコンに上記ポリシーデータを含めるようにしても良い。この場合は、APへの接続が確立せずとも、APの探索と同時にポリシーデータの受信および適用が可能となる。また、このような場合も、専用AP101毎に内容の異なったポリシーデータを記憶させればよい。但し、ポリシーデータの管理の観点からすれば、一元管理が可能なように1つのポリシーサーバ103に格納されるほうが好ましい。
また、タスクの生成に関して、上記ポリシーデータにタスクを生成するためのデータを含めるようにしても良い。この場合は、ポリシーデータを受信した後に、ゲーム装置1において、当該ポリシーデータに含まれるタスク生成用のデータ(パラメータ)に基づいて新規のタスクが生成され、実行されることになる。
また、システムのアップデート処理に関して、上記実施形態では、システムアップデートの要否の判断に、最新システムの更新日時を利用していたが、これに限らず、バージョン情報を利用するようにしても良い。この場合は、システムのアップデート用データにバージョン情報を含ませるようにすればよい。
また、システムアップデートの反映の確認の際、上記実施形態では、反映しないことが選ばれたとき、アップデート用のデータをすぐに破棄していた。これに限らず、何度か確認を行い、反映しないことが所定回数続けて指示されたときにアップデート用のデータを破棄するようにしてもよい。これにより、ユーザの誤操作によってアップデート用のデータが破棄されてしまうことを防ぐことが可能となる。
また、上記実施形態では、タスクに「消尽回数」が設定されていた。そして、消尽回数が0になったタスクであっても、ポリシーデータの適用の結果、消尽回数が加算されることがあった(つまり、タスクが復活していた)。このような、ポリシーデータによるタスクの復活に限らず、ゲーム装置1のシステムが消尽回数が0になったタスクの中からランダムに選択したタスクについて、その消尽回数を加算するような処理を行っても良い。
また、その他、消尽回数を利用して、タスクの実行頻度が徐々に低下していくような制御を行っても良い。例えば、以下のような制御を行うことが考えられる。
(1)まず、消尽回数が初期値として30に設定されているタスクがあり、当該タスクが毎日実行されたとする。このとき、毎日実行されたか否かの判断方法としては、消尽回数が減ったか否かの確認を毎日行ってもよいし、30日経過した時点で消尽回数が0になっているか否かを確認するようにしてもよい。また、何日か実行されない日があっても許容するようにしてもよい。
(2)毎日タスクが実行されて、消尽回数が0になった後、30日間は、10日に1回タスクが実行されるようにする。例えば、毎回1/10の確率でタスクが実行されるようにしたり、10日目、20日目、30日目というように、適宜実行日を決めるようにしてもよい。
(3)更に、その後の90日間は、30日に1回タスクが実行されるようにする。例えば、1/30の確率で実行させたり、実行日を予め決めるようにしてもよい。
(4)更に、その後の120日間は、60日に1回タスクが実行されるようにする。例えば、1/60の確率でタスクを実行させたり、予め実行日を決めるようにしてもよい。
(5)そして、上記の120日が経過すれば、それ以降は実行しないようにする。例えば、タスクを消去してもよいし、消去せずポリシーデータによる制御などの別のきっかけで実行する余地を残してもよい。
これにより、しばらく使用していなかったアプリケーションに関するタスクの消尽回数が何らかのきっかけで復活しタスクが実行されるので、ユーザに驚きを与えることができる。
また、上記実施形態では、ゲーム装置1が起動されたときに実行される起動時処理においてメニュー処理が実行された結果、ゲーム装置1にインストールされているアプリケーションがスキャンされ、その一覧がメニューとして表示されていた。そのため、例えば、ゲーム装置1が「スリープモード」のときにユーザが電源ボタン14Fを押下する(つまり、ゲーム装置1を起動させる)と、「スリープモード」が解除され、図4等で示したようなアプリケーションアイコンが並べられたメニュー画面が即時に表示される。また、ゲーム装置1に通電が全く行われていない状態(電源オフの状態)のときにユーザが電源ボタン14Fを押下してゲーム装置1の電源をオンにしたときも同様である。このように、アプリケーションの一覧であるメニュー画面はゲーム装置1の起動時に表示されるものであるが、この「起動時」に関しては、上記のような即時の場合に限らない。例えば、ゲーム装置1を起動させたときは、まず、メーカーのロゴや「ユーザへの注意事項」のような通知事項が表示された後に、上記のようなメニュー画面が表示されるような場合も含む。また、その他、メニューが階層構造であるような場合も含む。例えば、起動時は、まず、「ゲーム」「音楽」「写真」等のように、ゲーム装置1にインストールされている各種アプリのジャンルを示すジャンルメニューが表示され、いずれかのジャンルが選択されると、このジャンルに属するアプリケーションの一覧が表示されるような場合も含む。さらに複数の階層にわたってもよい。
また、上記実施形態では、タスク生成に際して(上記ステップS129やステップS130)、実行優先度に任意の値を設定する場合を例に挙げた。しかし、実行優先度については、タスク生成時に必ずしも何らかの値が設定される必要はなく、実行優先度が未設定の状態でタスクが生成されるようにしても良い。そして、上記ポリシーデータの適用によって初めて実行優先度が設定されるようにしても良い。更には、実行優先度だけに限らず、消尽回数等についても、最初は未設定のままタスクが生成され、ポリシーデータの適用によって初めてその内容が設定されるようにしても良い。
また、上記実施形態では、携帯型のゲーム装置を情報端末の例としたが、その他の携帯型情報端末、例えば、無線LAN機能を搭載したPDAやノートパソコン等にも有用である。
また、上記実施形態では、ユーザがシステムアップデートの適用を拒否した場合、所定期間経過ごとに適用を承認するまで繰り返し確認を促すようにしているが、(1)所定期間経過を待たずに毎回確認を促すようにしてもよいし、(2)数回確認を促し、すべて拒否された場合には適用を行わずに、システムアップデート用のファイルを破棄するようにしてもよい。
また、上記実施形態では、複数の新規アプリをダウンロードした後にメニューに遷移したときに、プレゼントアイコン112で表示される新規アプリは1件のみであり、その他はメニューに表示されず、今回プレゼントアイコン112で表示されているアプリケーションがタッチされて固有のアイコン状態になった後、メニューに再度遷移したときに他のアプリケーション(1件)がプレゼントアイコン112で表示されている。これに限らず、新たに受信した複数のアプリケーションを同時にすべてプレゼントアイコン112で表示しても良い。
また、上記実施形態のメニュー処理に関して、「システム更新を適用するための確認を行うか」「アプリケーションのインストール処理に移るか」という判断は、それぞれ「システムインストール済みフラグがオフであるか(オフの場合はダウンロードしたものが適用されていないため、適用の確認を行う)」、「システムインストール済みフラグがオンであり(オンの場合はダウンロードしたシステム更新が反映されたことを示す)、かつ、アプリインストール必要フラグがオンか(オンであれば、前回取得したインストールリストにアプリの更新が載っているため、ダウンロード及びインストールを行う)」という条件判断にて行っていた。この他、メニュー処理プログラムがインストールプログラムに問い合わせを行い、インストールプログラムが問い合わせに応じて「ダウンロードしたシステムが適用されていないので確認を行う」「システム更新は済んだがアプリインストールが済んでいないので行う」というような指示を返すようにしてもよい。
また、上記実施形態のシステムインストール処理やアプリインストール処理において、システムやアプリをダウンロードするための受信タスクについては、即時実行される場合を例に挙げたが、この他、数十分〜数時間後の時刻に実行されるように設定してもよい。
また、上記実施形態においては、インストールリスト580に更新があったか否かの判定については、HTTPレスポンスコードを参照することによって、ダウンロード時に判断するようにしていた。この他、一旦インストールリスト580のダウンロードを行った後、ゲーム装置1に記憶されている過去のインストールリストと当該ダウンロードしたインストールリスト580を比較することによって判断しても良い。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第2の実施形態では、上述の第1の実施形態で説明したような処理を用いたアプリケーションの一例として、「ボトルメールアプリケーション」というアプリケーション処理(以下、単にボトルメールアプリと呼ぶ)について説明する。なお、当該第2の実施形態に係るゲーム装置は、上述した第1の実施形態と同様であるため、同一の参照符号を付して詳細な説明を省略する。
図52および図53は、本発明の第2の実施形態に係るボトルメールアプリの処理概要を示す図である。図52は、ゲーム装置1と、第1の実施形態で図15を用いて説明したすれ違い通信用の送信用ボックス523および受信用ボックス524(以下の説明では、「すれ違い用送信ボックス」、「すれ違い用受信ボックス」と呼ぶ)と、タスクにおける通信で用いられるタスク受信キャッシュ553およびタスク送信用データ556とを抜き出して模式的に示した図である。図52では、ゲーム装置1を示す四角形の左上にすれ違い用受信ボックス524を示し、当該四角形の右側に、上から順にタスク受信キャッシュ553、タスク送信用データ556、すれ違い用送信ボックス523を縦に並べて示している。
このような模式図を前提として、図53を用いて第2の実施形態にかかる処理概要を説明する。図53においては、ゲーム装置A〜ゲーム装置Dが示されている。これらのゲーム装置にはボトルメールアプリがインストールされているものとする。また、図53では、ボトルメールサーバも示されている。本実施形態にかかるボトルメールアプリは、ゲーム装置Aで作成された「ボトルメール」と呼ばれるメール(図53では「BM」として示す)を、すれ違い通信を用いて他のゲーム装置に次々に転送していく、つまり、メールを放流できるアプリケーションである。
図53において、まず、ゲーム装置Aでボトルメールが作成され、すれ違い用の送信ボックスに格納される。このとき、当該ボトルメールには「世代情報」が設定される。この「世代情報」で示される回数だけ、当該ボトルメールの転送が可能であるが、「世代情報」を設定しない場合は、回数に関係なく当該ボトルメールの転送が可能である。その後、すれ違い通信が行われることで、当該ボトルメールがゲーム装置Aからゲーム装置Bに移動する。すなわち、ゲーム装置Aのすれ違い用送信ボックスからゲーム装置Bのすれ違い用受信ボックスに移動される。
その後、ゲーム装置Bにおいてボトルメールアプリが実行されると、ゲーム装置Bのすれ違い用受信ボックスからすれ違い用送信ボックスへ、当該ボトルメールが移動される。このとき、ゲーム装置Bにおいて、ボトルメールの世代情報に所定値が加算される。更に、ゲーム装置Bにおいて、ボトルメールサーバへ送信するための付加情報(図53では「Info」と示す)が生成される。この「Info」には、当該ボトルメールと、ゲーム装置Bの所有者の名前と、上記加算後の世代情報等が含まれる。そして、当該「Info」を適当な時期にボトルメールサーバに送信するための「送信タスク」も生成・登録される。その結果、適当なタイミングで「送信タスク」が実行され、ゲーム装置Bから「Info」がボトルメールサーバに送信される。ボトルメールサーバでは、当該情報を履歴情報(図53では「Log」と示す)として蓄積する。
その後、ゲーム装置Bとゲーム装置Cとの間ですれ違い通信が発生し、ボトルメールがゲーム装置Bからゲーム装置Cに移動する。その後、ゲーム装置Cにおいてボトルメールアプリが実行されると、上記ゲーム装置Bの場合と同様に、すれ違い用受信ボックスからすれ違い用送信ボックスへ当該ボトルメールが移動され、そして、世代情報が加算され、上記「Info」およびこれに関する「送信タスク」も生成される。そして、適当なタイミングで、ゲーム装置Cからも「Info」がボトルメールサーバに送信され、「Log」に蓄積される。
その後、ゲーム装置Cとゲーム装置Dの間ですれ違い通信が発生し、ボトルメールがゲーム装置Cからゲーム装置Dに移動する。ゲーム装置Dにおいても、ボトルメールアプリが実行されることによって、すれ違い用受信ボックスからすれ違い用送信ボックスへの当該ボトルメールの移動、上記世代情報の加算や「送信タスク」による「Info」の送信が行われる。
このように、ゲーム装置Aで作成されたボトルメールが、すれ違い通信によって他のゲーム装置に次々に転送されている。その一方で、当該ボトルメールを受信したゲーム装置B、C、Dでは、上記「Info」が適宜ボトルメールサーバに送信されている。そのため、ゲーム装置Aのユーザは、ボトルメールサーバに蓄積されている「Log」を取得する事で、自己の放流したボトルメールが何人の間で流通したかや、最後の受取人が誰か等、放流したボトルメールのその後の状況を知ることが可能となる。そして、本実施形態では、このような「Log」を取得するために「受信タスク」を生成し、適当な時期に「Log」を受信するようにしている。
つまり、第2の実施形態では、「ローカル通信(すれ違い通信)」と「インターネット通信」とを連携させることにより、今までにない新たな楽しみ方が可能なアプリケーションを提供することが可能である。
以下、第2の実施形態にかかる処理の詳細について説明する。上記のような処理は、ゲーム装置1において実行される「ボトルメールアプリ処理」と、ボトルメールサーバにおいて実行される「ボトルメールサーバ処理」とが連動することで実現される。まず、本処理において用いられるデータに関して説明する。ゲーム装置1において実行される処理においては、基本的には、上記第1の実施形態と同様のデータが用いられる。但し、「ボトルメールアプリ」のデータとして、上記「ボトルメール」や上記付加情報(図53の「Info」)を示すデータが適宜生成されることになる。
一方、ボトルメールサーバでは、上述したような処理を実行するためのプログラムの他、上述した履歴情報データ(図45の「Log」)が記憶されることになる。図54は、当該履歴情報データのデータ構造の一例を示す図である。図54に示すように、履歴情報データは、複数のボトルメール履歴データ161の集合で構成され、各ボトルメール履歴データ161は、アップロード数162と複数の転送情報163で構成される。アップロード数162は、ゲーム装置1から上記付加情報等がアップロードされた回数を示す。この値は、換言すれば、そのボトルメールが転送された回数を示す事にもなる。転送情報163は、ボトルメールの転送先となったゲーム装置1(図53ではゲーム装置B〜D)に関する情報であり、世代情報164、送信者名165、AP情報166、メール内容167の集合で構成される。世代情報164および送信者名165は、ゲーム装置1から上記付加情報として送信されてきたデータである。AP情報166は、上記付加情報の送信の際に用いられたAPを示すための情報である。この情報と後述するAP地域テーブルに基づき、付加情報が送信されたときにゲーム装置1が居た地域が特定可能となる。メール内容167は、付加情報と同時に送信されてきたボトルメールの内容(本文)である。転送先でボトルメールの内容が加工されることも想定し、その変更履歴を参照可能なように転送先それぞれにおけるボトルメールを送信したものである。また、その他、図示は省略するが、各ボトルメールを一意に識別するための情報等も含まれる。
また、ボトルメールサーバには、APの設置されている地域を特定するためのデータも記憶される。図55は、APとその設置されている地域との対応関係を定義したAP地域テーブルの一例である。図55に示すようなテーブルに相当するデータに基づき、ボトルメールサーバは上記AP情報166に基づいた地域の特定が可能となる。
図56および図57は、ゲーム装置1で実行される上記ボトルメールアプリ処理の詳細を示すフローチャートである。なお、図56において、ステップS351〜S354の処理と、S367〜S373にかかる処理は、上記図33および図34で説明したステップS121〜S124の処理、および、ステップS134〜S140の処理と同様である(これらの処理で扱われるデータの内容は、上述のようなボトルメールに関するデータとなる)。そのため、これらの処理については詳細な説明は省略する。
図56において、ステップS354の次に、ステップS355において、ボトルメールに設定されている(付随している)世代情報に所定値が加算される。次に、ステップS356において、世代情報が閾値未満であるか否かが判定される。この閾値は、例えば、ボトルメールアプリにおける規定値として予め設定されている。当該判定の結果、世代情報が閾値未満ではないと判定されたときは(ステップS356でNO)、当該ボトルメールはこれ以上転送できないとして、後述するステップS360に処理が進められる。
一方、閾値未満であると判定されたときは(ステップS356でYES)、当該ボトルメールは転送可能であることを示すため、ステップS357において、当該ボトルメールを、すれ違い通信を用いて他のゲーム装置に転送するための処理が実行される。すなわち、当該ボトルメールアプリに対応付けられているスロット521のアプリID522に、当該ボトルメールアプリを示す値が記憶される。更に、上記ステップS354で取得されたボトルメール(セーブデータ555内のすれ違い受信データ558に格納されている)が、当該スロット521の送信用ボックス523に移動される。
次に、ステップS358において、ボトルメールサーバに送信するための付加情報データ(図53の「Info」)が生成されてセーブデータ555に格納される。すなわち、上記世代情報と、本体設定データ560から取得されるユーザ名を含むデータが作成されて、上記ボトルメールと共にタスク送信用データ556に格納される。次に、ステップS359において、上記ステップS358で準備されたデータを適当な時期にボトルメールサーバに送信するための「送信タスク」が生成される。
次に、ステップS360において、新たに放流するボトルメールが(ユーザによって)作成されたか否かが判定される。その結果、新たなボトルメールが作成されていなければ(ステップS360でNO)、後述のステップS363に処理が進められる。一方、新たなボトルメールが作成されていれば(ステップS360でYES)、次に、ステップS361において、当該新たに作成されたボトルメールをすれ違い通信によって他のゲーム装置1に転送するための準備が行われる。すなわち、上記アプリID522にボトルメールアプリを示す値が格納される。更に、送信用ボックス523に当該新たに作成されたボトルメールが格納される。なお、上記ステップS357においてもボトルメールが格納されていた場合は、結果的に、他のゲーム装置1から受けたボトルメールと、自己の作成したボトルメールとが併存して格納される状態となる。
次に、ステップS362において、自己の作成したボトルメールの放流後の状況を示す履歴情報データ(上記図53の「Log」)をボトルメールサーバから取得するための「受信タスク」が生成される。
次に、図57のステップS363において、上記放流後のボトルメールの状況を確認する旨の指示がユーザによって行われたか否かが判定される。その結果、当該指示が行われていないと判定されたときは(ステップS363でNO)、後述のステップS367に処理が進められる。
一方、上記確認指示がユーザによって行われたと判定されたときは(ステップS363でYES)、ステップS364において、上記放流後のボトルメールの状況を示す履歴情報データをボトルメールサーバから受信するための即時実行型のタスクが生成され、即時に実行される。次に、ステップS365において、上記タスクの即時実行の結果、タスク受信キャッシュ553に当該ボトルメールアプリ向けの新規データ(ここでは受信された履歴情報データ)が存在するか否かが判定される。その結果、存在していなければ(ステップS365でNO)、後述するステップS367に処理が進められる。一方、ボトルメールアプリ向けの新規データがあると判定されたときは(ステップS365でYES)、ステップS366において、当該新規データが当該ボトルメールアプリのセーブデータ555内のタスク受信データ557に移動される。このようにセーブデータ555内に移動されることで、本ボトルメールアプリから当該履歴情報データにアクセス可能となる。
その後、ステップS367において、図56のステップS362または図57のステップS364で生成した「受信タスク」の結果、本ボトルメールアプリ向けの何らかの新規なデータが在るか否かが判定される。その結果、新規なデータがなければ(ステップS367でNO)、上記ステップS351に戻り処理が繰り返される。一方、新規なデータがあるときは(ステップS367でYES)、ステップS368〜S373において、当該ボトルメールアプリに関するネットワークサービスが終了したか否かを判定する処理と、サービス終了のときはタスクとすれ違い通信用のデータをクリアする処理が実行される。この処理は、図34を用いて上述したステップS135〜S140の処理と同様であるため、詳細な説明は省略する。
ステップS373の処理が終われば、ステップS374において、上記受信履歴情報が参照されて、「世代情報」、「受取人の名前」、「アップロード者数」、「地域」等の情報が表示される。ここで、「地域」に関しては、後述するボトルメールサーバの処理において、サーバ側で判断されて付加された情報である。
次に、ステップS375において、本ボトルメールアプリを終了するか否かが判定され、終了しないと判定されたときは(ステップS375でNO)、上記ステップS351に戻り、処理が繰り返され、終了すると判定されたときは(ステップS375でYES)、本ボトルメールアプリ処理が終了される。以上で、ボトルメールアプリの説明を終了する。
次に、上記ボトルメールアプリに対応して、上記ボトルメールサーバで実行される処理について説明する。図58は、当該ボトルメールサーバの処理の詳細を示すフローチャートである。図58において、まず、ステップS391において、上述したような「送信タスク」(図56のステップS359で生成されたタスク)の実行によりゲーム装置1から送信されたデータ(上記図53の「Info」)を受信したか否かが判定される。その結果、受信していないと判定されたときは(ステップS391でNO)、後述のステップS394に処理が進められる。一方、受信したと判定されたときは(ステップS391でYES)、ステップS392において、受信したデータが上記ボトルメール履歴データ161として格納される(上記図53の「Log」として格納される)。
次に、ステップS393において、当該受信したボトルメールにかかるアップロード数162に1が加算される。
次に、ステップS394において、上記ゲーム装置1からの履歴情報データのリクエストがあったか否かが判定される。当該リクエストは、上記「受信タスク」(図56のステップS362または図57のステップS364で生成されたタスク)の実行によって発行されるものである。当該判定の結果、リクエストを受信していないと判定されたときは(ステップS394でNO)、上記ステップS391に戻り、処理が繰り返される。一方、リクエストを受信したと判定されたときは(ステップS394でYES)、ステップS395において、上記履歴情報データが参照され、当該リクエストの内容に対応するボトルメール履歴データ161が読み出される。なお、ボトルメール履歴データ161の特定手法としては、例えば、ボトルメールの作成者と作成日時、作成されたゲーム装置1に固有の番号等に基づいて所定のID番号を生成し、これをボトルメール自体のデータに埋め込むようにしておく。そして、上記リクエストに際して、当該IDを当該リクエストに含めることで、ボトルメール履歴データ161を特定すること等が考えられる。
次に、読み出されたボトルメール履歴データ161のAP情報166が取得され上記AP地域テーブル(図55参照)が参照されることで、当該AP情報166に対応付けられている地域172が取得される。
次に、上記読み出されたボトルメール履歴データ161の内容と上記地域172に基づいて履歴情報データが作成され、リクエスト元のゲーム装置1に送信される。その後、上記ステップS391に戻って処理が繰り返される。以上で、ボトルメールサーバの処理の説明を終了する。
上記のように、第2の実施形態では、あるゲーム装置1で作成されたボトルメールをすれ違い通信を用いて他のゲーム装置1に伝播させる。そして、すれ違い通信で当該ボトルメールを受信したゲーム装置1では、当該受信したデータにユーザ名やAP情報等の付加情報を加えてボトルメールサーバに送信している。これにより、上記ボトルメールの作成者は、ボトルメールサーバに問い合わせを行うことにより、自己が作成し、放流したボトルメールの現在状況を確認することが可能となる。更に、最終的な状態だけでなく、途中でボトルメールの伝播に関わったユーザに関する情報を確認することも可能となる。このように、「ローカル通信」(すれ違い通信)と「インターネット通信」(ボトルメールサーバとの通信)を連動させることで、今までにない新しい楽しみ方をユーザに提供する事が可能となる。
なお、上記実施形態では、ボトルメールの作成者が自己の作成したボトルメールの現在状況を確認する際、「受信タスク」を生成するようにしていたが、必ずしも「タスク」を用いる必要はなく、ユーザの操作に応じて(タスクは使わずに)適宜ボトルメールサーバにアクセスし、上記履歴情報データを取得するようにしても良い。ここで、放流した主だけでなく、伝播の途中に関わったゲーム装置1からボトルメールの現在状況を確認できるようにしても良い。
また、「地域」の特定に関して、上記実施形態ではボトルメールサーバ側でAP情報166に基づいた「地域」の特定がなされていたが、この他、ボトルメールサーバからゲーム装置1にAP情報166を送信するようにし、ゲーム装置1側の処理で当該AP情報166に基づいて上記「地域」を特定するようにしても良い。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第3の実施形態では、上述の第1の実施形態で説明したような、タスクによる送受信(インターネット通信)と、上記「すれ違い通信」(ローカル通信)を連携させた処理の一例を更に示す。より具体的には、タスクで受信したデータを「すれ違い通信」を利用して他のゲーム装置に送信する例と、逆に、「すれ違い通信」で他のゲーム装置から受信したデータを、タスクを用いて所定のサーバにアップロードする例について説明する。
まず、上記タスクの実行によってAPを介してサーバ等から受信したデータを「すれ違い通信」を用いて他のゲーム装置に送信する処理について説明する。例えば、上記タスクの実行によって取得された体験版や無料ゲーム等を、上記「すれ違い通信」を利用して他のゲーム装置1に送信する場合を想定する。この場合、例えば、ゲーム装置Aにおいて上記タスクが実行された結果、体験版や無料ゲーム等が新規インストールされたとする。このとき、ゲーム装置Aにおいて、当該体験版や無料ゲーム等のデータが上記すれ違い通信用データ520に設定されるように構成する。これにより、他のゲーム装置に「すれ違い通信」を介して送信することが可能となる。更に、受信したゲーム装置側においては、当該「すれ違い通信」で取得した体験版や無料ゲーム等が自動的にインストールされるようにしてもよい。このようにタスクを実行して受信し、すれ違い通信で他のゲーム装置1に送信されるデータは体験版や無料ゲーム等に限らず、何らかのゲームアプリケーションが用いるためのデータであってもよい。
次に、別の例として、他のゲーム装置から「すれ違い通信」で取得したデータを「送信タスク」を用いて所定のサーバにアップロードする処理について説明する。例えば、ユーザがAPの登録をゲーム装置1に行っていない等で、上記「ローカル通信」しかできない設定となっているゲーム装置Bを想定する。このような場合は、ゲーム装置Bにおいて、所定のサーバにアップロードするためのアップデータが作成され、更にこのアップデータを送信するための「送信タスク」を生成するためのタスク生成用データが作成されるようにする。このデータは、例えば、上記ポリシーデータと同じ構成であることが考えられる。そして、両データがすれ違い通信用データ520に格納されるように構成する。その結果、「すれ違い通信」でこれらのデータが上記ゲーム装置Aに送信される。ゲーム装置Aでは、「すれ違い通信」で受信した上記タスク生成用データに基づき「送信タスク」が生成される(上記ステップS129やS130と同様の処理が実行されればよい)。その結果、このタスクが実行されることによって、ゲーム装置Bで生成されたアップデータを、ゲーム装置Aがゲーム装置Bに代わって所定のサーバに送信することが可能となる。
このように、「インターネット通信」と「ローカル通信」を連携させることで、複数のゲーム装置1の間で様々なデータのやりとりが可能となる。また、「インターネット通信」ができない設定となっているゲーム装置1についても、「ローカル通信」(すれ違い通信)を利用して他のゲーム装置を経由してデータを送受信することで、間接的に「インターネット通信」が可能となる。
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。上述の第1の実施形態では、システムの更新およびアプリの更新に関して、まずシステムの更新に関する処理を行った後、アプリの更新処理が行われるという処理の流れとなっていた。つまり、システムの更新がある場合は、優先的にシステム更新が行われるようになっていた。これに対し、第4の実施形態では、まずアプリの更新に関する処理を行ってから、必要に応じてシステムの更新処理を行う。より具体的には、新規インストール、あるいは更新後のアプリの動作に必要なシステムのバージョンを判定し、これが現在のシステムのバージョンよりも新しい場合は、システムの更新を実行するという流れで処理が行われる。例えば、現在のシステムのバージョンが「1.0」であるとする。一方、新規配布にかかるあるアプリがあり、このアプリの動作に必要なシステムのバージョンが「2.0」であるとする。このような場合、当該アプリがダウンロードされるときに、システムの更新も行われる。また、アプリの更新があったときにシステムのインストールを付随的に行うため、アプリの更新がない限りは、システムの更新があるとしても、必ずしもこの更新が反映されないということもあり得ることになる。
上記のような処理を実現するために、第4の実施形態では、上記第1の実施形態のシステムインストール処理(及びアプリのインストール処理)の代わりに、例えば、図59に示すような処理が実行される。図59は、第4の実施形態にかかるインストール処理を示すフローチャートである。本フローチャートは、第1の実施形態における、図47のステップS548のシステムインストール処理の代わりとして実行される。すなわち、インストールリストの取得が行われた際に実行される。まず、ステップS411において、上記インストールリスト580に載っている全てのアプリについて、以下に示すようなダウンロードのタスクを生成する処理が行われたか否かが判定される。その結果、まだ未処理のアプリが残っているときは(ステップS711でNO)、ステップS712において、インストールリスト580に載っているアプリの中で未処理のものから一つが選択される。
次に、ステップS713で、選択されたアプリと同じアプリで同じバージョンのものが既にインストールされているか否かが判定される。その結果、同じアプリで同じバージョンのものが既にインストールされていれば(ステップS713でYES)、当該選択されたアプリについてはインストールや更新の必要がないため、上記ステップS711に処理が戻される。一方、選択されたアプリと同じアプリがインストールされていない、または、インストールはされているが、バージョンが異なる(インストールされているもののほうが古いバージョンである)ときは(ステップS713でNO)、ステップS714で、当該アプリの権利情報が所定のサーバからダウンロードされる。続くステップS715で、権利情報の正当性確認処理が実行される。この処理は、上記第1の実施形態で説明した処理と同様である。その後、ステップS716で正当性に問題がなかったか否かが判定され、問題が無ければ(ステップS716でYES)、ステップS717において、選択されたアプリをダウンロードするための受信タスクが生成され、上記ステップS711に処理が戻される。一方、問題があったときは(ステップS716でNO)、上記ステップS717の処理は行われずに、上記ステップS711に処理が戻される。また、本実施形態では、上記第1の実施形態におけるステップS464(対象年齢の判定処理)、ステップS465(製品版を所持しているときに体験版のインストールを排除する処理)、ステップS469(プレイ履歴条件の判定処理)等を省略しているが、そのような処理が加わってもよい。
一方、上記ステップS711の判定の結果、上記インストールリスト580に載っている全てのアプリについて上記のようなタスク生成処理が行われたと判定されたときは(ステップS711でYES)、ステップS718において、インストールリスト580において示されるシステム構成と、ゲーム装置1の現在のシステム構成とが比較される。次に、図60のステップS719において、比較の結果、両者が一致したか否か(差分はなかったか)が判定される。その結果、一致したと判定されたときは(ステップS719でYES)、システムの更新は不要であるため、ステップS727へと移る。一方、一致しなかったと判定されたときは(ステップS719でNO)、システムの更新の必要性があると考えられるため、システム更新に関する処理が実行される。まず、ステップS720において、インストールリスト580に載っているシステムの構成要素584の全てについて、以下の述べるようなチェック処理が行われたか否かが判定される。その結果、まだチェックしていない構成要素が残っているときは(ステップS720でNO)、ステップS721において、未チェックの構成要素の中から、チェック対象とする構成要素が一つ選択される。
次に、ステップS722において、チェック対象として選ばれた構成要素がインストールすべきものであるか否かの判定が行われる。具体的には、現在のシステム構成の詳細リスト640が参照され、現在のシステムにおけるバージョンよりもチェック対象となっている構成要素のバージョンのほうが新しいか否か、または、チェック対象となっている構成要素は、現在のシステム構成には含まれていないか否かが判定される。その結果、チェック対象となっている構成要素のバージョンのほうが新しい、あるいは、現在のシステムにおいて導入されていない構成要素であるときは(ステップS722でYES)、次に、ステップS723において、当該構成要素の権利情報が所定のサーバからダウンロードされる。続くステップS724において、当該権利情報の正当性確認処理が実行される。この処理は、上述の第1の実施形態で説明した正当性確認処理と同様の処理である。次に、ステップS725において、ステップS724の結果、正当性に問題がなかったか否かが判定され、問題が無ければ(ステップS725でYES)、ステップS726において、選択されたシステムの構成要素をダウンロードするための受信タスクが生成され、上記ステップS720に処理が戻される。一方、問題があったときは(ステップS725でNO)、上記ステップS726の処理は行われずに、上記ステップS720に処理が戻される。
一方、上記ステップS722の判定の結果、チェック対象となっている構成要素のバージョンと現在のシステムにおける構成要素のバージョンが同じであれば(ステップS722でNO)、上記ステップS723〜S726の処理は行われずに、上記ステップS720に処理が戻される。
次に、上記ステップS720の判定の結果、インストールリスト580に載っているシステムの構成要素584の全てについて、上記のようなチェック処理が行われたと判定されたときは(ステップS720でYES)、ステップS727において、上記ステップS717やステップS726で生成された受信タスクを実行するために、タスク実行処理が行われる。この処理は、図43〜図48を用いて上記第1の実施形態で説明した処理と同様であるため、説明は省略する。以上で、第4の実施形態にかかるインストール処理は終了する。
このように、第4の実施形態では、アプリに関するインストール処理をシステムに関するインストール処理よりも先に行う。これにより、アプリの状況に応じて必要なときにのみシステムの更新を行うことができる。換言すれば、アプリの動作に必要なシステムへの更新処理をより確実に実行することができ、アプリの動作に要求されるシステムのバージョンと実際にゲーム装置にインストールされているシステムのバージョンとの不整合に基づく誤動作が起こることを防ぐ事が可能となる。
なお、上記第4の実施形態では、アプリをダウンロードするための受信タスクとシステムをダウンロードするための受信タスクを生成した後、両者をまとめて実行するようにしているが(上記ステップS727)、この処理において、アプリの受信タスクとシステムの受信タスクのいずれを先に実行するかについてはどちらでもよい。ファイルのダウンロード(通信)に時間がかかること(更には、ゲーム装置本体を持ったユーザが移動中であるような場合)を考慮すると、アプリの受信タスクを先に行うようにした場合は、ユーザに驚きを与えるという点においてはシステムよりも効果的であるアプリを優先的に取得することが可能となる点で有利である。また、システムの受信タスクを先に行うようにすれば、特にダウンロードが途中で停止してしまったときに、システムの更新はダウンロードされることになり、旧バージョンのシステムでアプリが動作することによる誤動作が起こることをより確実に防ぐ事が可能となる点で有利である。
(第5の実施形態)
次に、第5の実施形態について説明する。上記第1の実施形態では、アプリやシステムについて自動的にダウンロードし、インストールする場合を例に挙げていたが、これと併用して、手動ダウンロードを可能としても良い。特に、アプリの取得に関しては、手動ダウンロードも併用することで、よりユーザに多様なアプリに接する機会を与えることができる。あるいは、ユーザが削除したアプリについては今後の自動インストールが停止される場合に、再度そのアプリを使用することをユーザが希望した場合に、手動によってダウンロードが行われるようにすれば、ユーザにとって大変便利となる。この場合、上記メニューから起動されるアプリの一つとして、手動ダウンロード用のアプリ(オンラインショッピングアプリ等)として実現すればよい。
図61は、このような手動ダウンロードアプリの処理の一例を示すフローチャートである。当該手動ダウンロードアプリがメニューから起動されると、まず、ステップS741において、ダウンロード可能なアプリの一覧が表示される。そして、ユーザからの入力が受け付けられる。
次に、ステップS742において、上記一覧からいずれかのアプリ(のダウンロード指示)がユーザによって選択されたか否かが判定される。その結果、いずれかのアプリが選択されたときは(ステップS742でYES)、ステップS743において、選択されたアプリの詳細情報が表示される。例えば、選択されたアプリのスクリーンショットや、紹介文、対象年齢等の各種情報、他のユーザからのレビュー等である。また、オンラインで購入するためのアプリに関する詳細情報であれば、価格に関する情報も表示される。次に、ステップS744において、選択されたアプリのダウンロードを行うための指示がユーザによってなされたか否かが判定される。オンラインで購入するアプリであれば、購入及びダウンロードを行うための指示がなされたか否かが判定される。ダウンロードを行うための指示がなされていないとき(ステップS744でNO)、上記ステップS743に処理が戻される。一方、ダウンロードを行うための指示がなされたとき(ステップS744でYES)、ステップS745に移る。なお、オンラインで購入するアプリであれば、ステップS744でYESであるとき、ステップS745に移る前に、選択したアプリケーションの購入処理が加わる。具体的には、クレジットカード番号等の購入情報の入力又は、予め購入に必要なポイントをチャージしておく形式であれば残りポイントのチェック等がなされる。そして、その後、本当にこのアプリを購入するか否かを最終的に確認するための画面を表示し、ユーザに購入の最終的な意思を問うようにすることが望ましい。最終的な意思が得られた場合に、クレジットカードによる実際の決済処理や、購入に必要なポイントの差し引き処理が行われ、ステップS745へと移る。
ステップS745において、選択されたアプリの権利情報がダウンロードされる。次に、ステップS746で、当該権利情報の正当性確認処理が実行される。当該処理は、上記ステップS472等の正当性確認処理と同様の処理である。
次に、ステップS747において、ステップS746の結果、正当性に問題がなかったか否かが判定され、問題が無ければ(ステップS747でYES)、ステップS748において、選択されたアプリのダウンロードが行われる。ここでは、必ずしもタスクを生成して当該タスクを実行するという形を取る必要はない。しかし、タスク実行処理において行われた当該アプリケーションに関する各種設定処理は行われる必要がある。その後、上記ステップS741に処理が戻される。一方、正当性に問題があったときは(ステップS747でNO)、上記ステップS748の処理は行われずに、上記ステップS741に処理が戻される。
一方、上記ステップS742の判定の結果、上記アプリ一覧からいずれのアプリも選択されなかったときは(ステップS742でNO)、ステップS749において、当該手動ダウンロードアプリの終了がユーザによって指示されたか否かが判定される。終了指示がなければ(ステップS749でNO)、上記ステップS741に戻って処理が繰り返され、終了指示があったときは(ステップS749でYES)、当該手動ダウンロード処理は終了する。
このように、第5の実施形態では、自動ダウンロード・自動インストールと併用して、手動ダウンロードも可能としている。これにより、ユーザの利便性を向上させ、様々なアプリに触れる機会をより多く与えることが可能となる。
(第6の実施形態)
次に、第6の実施形態について説明する。上記第1の実施形態では、アプリやシステムについて自動的にダウンロードし、インストールする場合を例に挙げていたが、コンテンツと当該コンテンツを再生するアプリがセット(一体)になったコンテンツアプリを自動的にダウンロードし、インストールすることができる。このようなコンテンツアプリとしては、静止画像のコンテンツと静止画像を表示するための表示ビューアアプリがセットになったものや、動画像(映像)のコンテンツと動画像を再生するための再生ビューアアプリがセットなったものがある。また、コンテンツの種類としては、ゲームソフトや映画等の商品の紹介や宣伝を行う映像(または画像)データ、商品の引き換えや割引などに利用できるクーポンデータなどがある。
図62は、このようなコンテンツアプリを実行したときに、ゲーム装置1の表示部に表示される画面例である。上側LCD22には、コンテンツの一例であるゲームソフトAの映像が表示される。下側LCD12には、再生ビューアアプリの一例である操作画面が表示される。下側LCD12に表示される操作画面は、再生タイムラインバー201、再生コントロールボタン202、「詳細情報を見る」ボタン203、「購入する」ボタン204、ゴミ箱(削除)ボタン205、および「おわる」ボタン206を含む。再生タイムラインバー201は、上側LCD22で再生されている映像の開始からの経過時間または映像全体のうちのどの位置を再生中かを示すインジケータであり、ここを直接タッチすることにより、任意の位置から映像を再生することができる。再生コントロールボタン202は、映像の再生(または一時停止)、早送り、巻き戻しを指示するためのボタンである。「詳細情報を見る」ボタン203は、上側LCD22に表示されているコンテンツの詳細情報を見るためのボタンであり、ここをタッチすることにより、上述のステップS743へ進み、コンテンツの詳細情報を表示したり、コンテンツの購入およびダウンロードを行うことができる。ゴミ箱ボタン204は、コンテンツアプリ自体をゲーム装置1から削除するためのボタンであり、ここをタッチすることにより、コンテンツアプリの削除処理が行われる。「おわる」ボタン205は、コンテンツアプリの実行の終了を指示するためのボタンである。
図63は、このようなコンテンツアプリに含まれるプログラム(再生アプリ)がCPU31によって実行される処理の一例を示すフローチャートである。コンテンツアプリがメニューから起動されると、まずステップS761において、上側LCD22にコンテンツアプリに含まれるコンテンツの画像が表示される。ここで、コンテンツが映像の場合は、映像の先頭が表示される。続くステップS762において、下側LCD12に図62で示すような操作画面が表示される。
次に、ステップS763において、ユーザから再生を制御するような指示、すなわち、再生タイムラインバー201または再生コントロールボタン202がタッチされたか否かが判定される。その結果、再生タイムラインバー201または再生コントロールボタン202が指示されたときは(ステップS763でYES)、ステップS764において、上側LCD22に表示される映像の再生を制御する処理が実行される。例えば、再生タイムラインバー201の任意の位置が指示されたときは、当該位置に対応する映像を読み出して上側LCD22に表示する。また、再生コントロールボタン202が指示されたときは、指示されたボタンの種類に応じて、映像の再生(再生中は一時停止)、早送り、巻き戻しが実行される。その後、上記ステップS763に処理が戻される。
一方、上記ステップS763の判定の結果、ユーザから再生を制御するような指示が行われなかったときは(ステップS763でNO)、ステップS765において、ユーザからコンテンツの詳細情報を表示する指示、すなわち、「詳細情報を見る」ボタン203がタッチされたか否かが判定される。その結果、「詳細情報を見る」ボタン203が指示されたときは(ステップS765でYES)、上述のステップS743へ進み、詳細情報の表示、コンテンツの購入・ダウンロード処理等が実行される。
一方、上記ステップS765の判定の結果、ユーザからコンテンツの詳細情報を表示する指示が行われなかったときは(ステップS765でNO)、ステップS766において、ユーザからこのコンテンツアプリを削除する指示、すなわち、ゴミ箱ボタン204がタッチされたか否かが判定される。その結果、ゴミ箱ボタン204が指示されたときは(ステップS766でYES)、ステップS767において、このコンテンツアプリの削除命令を発行する。具体的には、ユーザからの削除指示を受け付けると、ゲーム装置1のCPUがメニュー処理プログラム501に含まれる削除プログラムに対し、自身のプログラムを削除するための命令を発行する。その後、コンテンツアプリの実行が終了する。
ここで、図64を用いて、削除命令受付処理について説明する。図64で表される削除命令受付処理のフローは、メニュー処理プログラムの一部として存在し、ゲーム装置1が起動している間は常に実行されている。
ステップS780において、コンテンツアプリを含む、他のアプリケーションプログラムによって、削除命令が発行されたか否かが判定される。その結果、削除命令が発行されたときは(ステップS780でYES)、ステップS781において、削除命令を発行したアプリケーションプログラムを削除する。具体的には、削除命令には発行元のアプリケーションプログラムのアプリを特定する情報が含まれており、その情報により特定されたアプリケーションプログラム511を、NANDフラッシュメモリ33のプログラム領域515にから削除する。
一方、上記ステップS780の判定の結果、削除命令が発行されていないときは(ステップS780でNO)、ステップS780に戻り、繰り返し判定が行われる。
一方、上記ステップS766の判定の結果、ユーザからこのコンテンツアプリを削除する指示が行われなかったときは(ステップS766でNO)、ステップS768において、ユーザからコンテンツアプリを終了する指示、すなわち、「おわる」ボタン205がタッチされたか否かが判定される。その結果、「おわる」ボタン205が指示されたときは(ステップS768でYES)、このコンテンツアプリの実行を終了する。
一方、上記ステップS768の判定の結果、ユーザからコンテンツアプリを終了する指示が行われなかったときは(ステップS768でNO)、上記ステップS763に戻る。
なお、上記実施形態では、「詳細情報を見る」ボタン203が指示されたとき、コンテンツの詳細情報を表示し、そのコンテンツの購入・ダウンロードが行われる例を説明したが、予め図62の下側LCD12に表示される操作画面に「購入」ボタンを設け、「購入」ボタンを指示することにより、コンテンツの詳細情報を表示することなく、直接コンテンツの購入及びダウンロードを行うようにしてもよい。
また、上記実施形態では、コンテンツアプリの削除は、CPU31がメニュー処理プログラム501を実行することにより行われる例を説明したが、コンテンツアプリのプログラム自体に削除プログラムを設けておき、コンテンツアプリのプログラムに含まれる削除プログラムを実行することにより、自身を削除するようにしてもよい。
また、上記実施形態では、コンテンツの詳細情報の表示、購入・ダウンロード処理は、コンテンツアプリのプログラムとは別のプログラムが行う例を説明したが、コンテンツアプリのプログラム自体に自身のコンテンツの詳細情報の表示、購入・ダウンロード処理を実行するためのプログラムを設けておき、当該プログラムを実行することにより、コンテンツの詳細情報の表示、購入・ダウンロード処理を行うようにしてもよい。
このように、第6の実施形態では、自動ダウンロード・自動インストールされたコンテンツアプリを実行中に、削除ボタンを指示するという簡単な操作で当該コンテンツアプリの削除が行えるので、ユーザは不要なコンテンツアプリを容易に削除することができる。特に、この実施形態のように、コンテンツアプリが自動でダウンロード・インストールされるような場合には、ユーザの知らないうちに多数のコンテンツアプリがインストールされることがあるので、上述のようなコンテンツアプリを簡単に削除できるような仕組みは有用である。
また、第6の実施形態では、自動ダウンロード・自動インストールされたコンテンツを実行することにより、ユーザにコンテンツの紹介映像を提示したり、クーポンを付与したりすることができ、さらに簡単な操作でコンテンツの詳細情報を表示したり、コンテンツの購入・ダウンロードを実行できるようにしたので、より多くのユーザにコンテンツを知ってもらう機会を作ることができ、コンテンツの販売促進に結びつけることができる。
なお、上記各実施形態において、ゲーム装置1において実行された一連の処理については、複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記ゲーム装置1が行っていた一連の処理のうちの一部の処理(例えば、アプリケーション処理の一部)がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
本発明にかかる携帯型情報端末、携帯型情報システム、および携帯型情報端末制御プログラムは、ユーザの特別な操作を必要とせずに、新たなアプリケーションの新規インストール等を行うことができ、携帯型ゲーム装置やPDA、ノートパソコン等に有用である。
1…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15、26…LED
16…マイクロフォン用孔
21…上側ハウジング
22…上側LCD
23…内側カメラ
24…音抜き孔
25…外側カメラ
27…タッチペン
28、29…メモリカード
31…CPU
32…メインメモリ
33…NANDフラッシュメモリ
34…無線通信モジュール
35…第1メモリカードI/F
36…第2メモリカードI/F
37…マイコン
39…RTC
40…開閉検出器
41…電源管理IC
42…電源回路
43…I/F回路
44…マイク
45…アンプ
本発明の第1の実施形態に係るゲーム装置1の外観図 本発明の第1の実施形態に係るゲーム装置1のブロック図 本実施形態にかかるネットワーク構成の全体像を示す模式図 メニュー画面の一例 メニュー画面の一例 メニュー画面の一例 「すれ違い通信」について説明するための図 「すれ違い通信」について説明するための図 「すれ違い通信」について説明するための図 「すれ違い通信」について説明するための図 本実施形態で実行される各種機能(プログラム)の相関関係を示す図 マイコン37に内蔵されている記憶領域に記憶される主なデータを示す図 無線通信モジュール34に内蔵されている記憶領域に記憶される主なデータを示す図 NANDフラッシュメモリ33に記憶されるプログラム、データを示す図 図14のすれ違い通信用データ520のデータ構造の一例を示した図 図14のタスクデータ530のデータ構造の一例を示した図 図14のアプリ関連データ550のデータ構造の一例を示した図 図14の受信ポリシーデータ570のデータ構造の一例を示した図 図14のインストールリスト580のデータ構造の一例を示した図 マイコン37によって実行されるマイコン処理を示すフローチャート 無線モジュール処理を示すフローチャート 無線モジュール処理を示すフローチャート 起動時処理の詳細を示すフローチャート 起動時処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート 図23のステップS61で示すメニュー処理の詳細を示すフローチャート プリインストール処理の詳細を示すフローチャート プリインストール処理の詳細を示すフローチャート 図30のステップS471デ示した正当性確認処理の詳細を示すフローチャート 図26のステップS432で示したアプリ更新適用処理の詳細を示すフローチャート 図27のステップS441で示した各アプリの処理の詳細を示すフローチャート 図27のステップS441で示した各アプリの処理の詳細を示すフローチャート 図33のステップS131で示したタスク生成処理の詳細を示すフローチャート ローカル通信用BG処理の詳細を示すフローチャート ローカル通信用BG処理の詳細を示すフローチャート インターネット通信用BG処理の詳細を示すフローチャート 図38のステップS191で示したポリシー処理の詳細を示すフローチャート 図38のステップS191で示したポリシー処理の詳細を示すフローチャート ポリシーサーバ103のメモリマップを示す図 ポリシーサーバ103で実行される処理を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図38のステップS192で示したタスク実行処理の詳細を示すフローチャート 図43のステップS551で示した実行順ソート処理の詳細を示すフローチャート 図47のステップS548で示したシステムインストール処理の詳細を示すフローチャート 図47のステップS548で示したシステムインストール処理の詳細を示すフローチャート 第2の実施形態に係るボトルメールアプリの処理概要を示す図 第2の実施形態に係るボトルメールアプリの処理概要を示す図 ボトルメールサーバに記憶される履歴情報データのデータ構造の一例を示す図 ボトルメールサーバに記憶されるAP地域テーブルの一例 ゲーム装置1で実行される上記ボトルメールアプリ処理の詳細を示すフローチャート ゲーム装置1で実行される上記ボトルメールアプリ処理の詳細を示すフローチャート ボトルメールサーバの処理の詳細を示すフローチャート 第4の実施形態にかかるインストール処理の詳細を示すフローチャート 第4の実施形態にかかるインストール処理の詳細を示すフローチャート 第5の実施形態にかかる手動ダウンロード処理の詳細を示すフローチャート コンテンツアプリの画面例 コンテンツアプリに含まれるプログラムによる再生処理のフローチャート 削除命令受付処理の詳細を示すフローチャート
次に、上記ステップS521の判定の結果、アプリのダウンロードタスクではないと判定されたときの処理について説明する。この場合は、図45のステップS533において、上記処理対象タスクの内容が、システムの構成要素(システムプログラム)をダウンロードするためのタスクであるか否かが判定される。当該判定の結果、システムプログラムをダウンロードするタスクであるときは(ステップS533でYES)、次に、ステップS534において、ダウンロード対象の構成要素は、既存の構成要素であるか否かが判定される。つまり、既存の構成要素のアップデートに該当するのか、新規の構成要素の取得に該当するのかが判定される。当該判定の結果、既存の構成要素のアップデートに該当する場合は(ステップS534でNO)、ステップS536において、実際の(現在稼働中の)システムプログラムのファイル名とは別の名前で、オン・ザ・フライでシステムプログラム領域515にダウンロード対象の構成要素を格納する処理(ダウンロードの開始、または、開始済みであればダウンロードの継続)が実行される(例えば、実際のシステムプログラムのファイル名が「firmware001.bin」であるときは、「firmware002.bin」の名前で格納される)。そして、上記ステップS532に戻る。
次に、図43のステップS512において、全てのタスクを実行し終えたと判定されたときの処理(ステップS512でYES)について説明する。このときは、次回起床時刻305を設定するための処理が実行される。具体的には、まず、図48のステップS551において、タスクデータ530内の全てのタスク設定531についての次回実行時刻537が読み込まれる。続くステップS552において、全タスクのうち、次回実行時刻537が最も早い時刻のタスクが検出される。そして、当該最も早い次回実行時刻が現在時刻から30分以内であるか否かが判定される。当該判定の結果、30分以内であると判定されたときは(ステップS552でYES)、ステップS553において、現在時刻の30分後の時刻を次回起床時刻305として設定する。つまり、一旦タスクが実行されると、その後、最低30分間はタスクの実行が行われないように設定されることになる。これにより、あまりに頻繁に接続が行われてしまうことを防ぎ、ゲーム装置1の更なる省電力化や、ネットワークトラフィックの負荷の軽減を図ることが可能となる。そして、当該タスク実行処理は終了する。
次に、ステップS312において、上記差分の有無のチェックの結果、システム構成に差分があるか否かが判定される。その結果、差分がないときは(ステップS312でNO)、システムの更新はない(同じバージョンである)と考えられるため、ステップS323に処理が進められ、アプリのインストール処理が行われる。この処理は、上記図26,図29および図30を用いて説明したアプリのインストール処理と同様である。すなわち、アプリをダウンロードするタスクが適宜生成され、かつ、即時実行されることで、アプリが適宜インストールされる。そして、システムインストール処理は終了する。ここでは、システムの更新がない場合はすぐにアプリケーションのインストール処理を行うことになる。
一方、ボトルメールサーバでは、上述したような処理を実行するためのプログラムの他、上述した履歴情報データ(図53の「Log」)が記憶されることになる。図54は、当該履歴情報データのデータ構造の一例を示す図である。図54に示すように、履歴情報データは、複数のボトルメール履歴データ161の集合で構成され、各ボトルメール履歴データ161は、アップロード数162と複数の転送情報163で構成される。アップロード数162は、ゲーム装置1から上記付加情報等がアップロードされた回数を示す。この値は、換言すれば、そのボトルメールが転送された回数を示す事にもなる。転送情報163は、ボトルメールの転送先となったゲーム装置1(図53ではゲーム装置B〜D)に関する情報であり、世代情報164、送信者名165、AP情報166、メール内容167の集合で構成される。世代情報164および送信者名165は、ゲーム装置1から上記付加情報として送信されてきたデータである。AP情報166は、上記付加情報の送信の際に用いられたAPを示すための情報である。この情報と後述するAP地域テーブルに基づき、付加情報が送信されたときにゲーム装置1が居た地域が特定可能となる。メール内容167は、付加情報と同時に送信されてきたボトルメールの内容(本文)である。転送先でボトルメールの内容が加工されることも想定し、その変更履歴を参照可能なように転送先それぞれにおけるボトルメールを送信したものである。また、その他、図示は省略するが、各ボトルメールを一意に識別するための情報等も含まれる。
上記のような処理を実現するために、第4の実施形態では、上記第1の実施形態のシステムインストール処理(及びアプリのインストール処理)の代わりに、例えば、図59に示すような処理が実行される。図59は、第4の実施形態にかかるインストール処理を示すフローチャートである。本フローチャートは、第1の実施形態における、図47のステップS548のシステムインストール処理の代わりとして実行される。すなわち、インストールリストの取得が行われた際に実行される。まず、ステップS711において、上記インストールリスト580に載っている全てのアプリについて、以下に示すようなダウンロードのタスクを生成する処理が行われたか否かが判定される。その結果、まだ未処理のアプリが残っているときは(ステップS711でNO)、ステップS712において、インストールリスト580に載っているアプリの中で未処理のものから一つが選択される。
図62は、このようなコンテンツアプリを実行したときに、ゲーム装置1の表示部に表示される画面例である。上側LCD22には、コンテンツの一例であるゲームソフトAの映像が表示される。下側LCD12には、再生ビューアアプリの一例である操作画面が表示される。下側LCD12に表示される操作画面は、再生タイムラインバー201、再生コントロールボタン202、「詳細情報を見る」ボタン203、、ゴミ箱(削除)ボタン20、および「おわる」ボタン20を含む。再生タイムラインバー201は、上側LCD22で再生されている映像の開始からの経過時間または映像全体のうちのどの位置を再生中かを示すインジケータであり、ここを直接タッチすることにより、任意の位置から映像を再生することができる。再生コントロールボタン202は、映像の再生(または一時停止)、早送り、巻き戻しを指示するためのボタンである。「詳細情報を見る」ボタン203は、上側LCD22に表示されているコンテンツの詳細情報を見るためのボタンであり、ここをタッチすることにより、上述のステップS743へ進み、コンテンツの詳細情報を表示したり、コンテンツの購入およびダウンロードを行うことができる。ゴミ箱ボタン204は、コンテンツアプリ自体をゲーム装置1から削除するためのボタンであり、ここをタッチすることにより、コンテンツアプリの削除処理が行われる。「おわる」ボタン205は、コンテンツアプリの実行の終了を指示するためのボタンである。

Claims (48)

  1. 自動的にサーバに接続する接続手段と、
    前記サーバから1以上のプログラムの受信処理を自動的に行う受信手段と、
    前記プログラムの情報処理装置へのインストール処理を自動的に行うインストール手段とを備える、情報処理装置。
  2. 前記情報処理装置は、非使用状態と使用状態とを切り替える切替手段を更に備え、
    前記接続手段は、前記情報処理装置が少なくとも非使用状態で稼働しているときに、自動的に前記サーバに接続し、
    前記受信手段は、前記情報処理装置が少なくとも非使用状態において、前記受信処理を自動的に行い、
    前記インストール手段は、前記少なくとも非使用状態において、前記受信手段が受信したプログラムのインストール処理を自動的に行う、請求項1に記載の情報処理装置。
  3. 前記非使用状態は、前記使用状態よりも消費電力が少ない、請求項2に記載の情報処理装置。
  4. 前記情報処理装置は、ユーザにより開閉の操作が可能であり、
    前記切替手段は、前記情報処理装置が開状態であるときに前記使用状態に切り替え、閉状態であるときに前記非使用状態に切り替える、請求項2に記載の情報処理装置。
  5. 前記情報処理装置は、表示装置を更に備え、
    前記切替手段は、ユーザによる所定の操作に応じて前記使用状態と前記非使用状態とを切り替え、
    前記使用状態においては、前記表示装置に電力が供給され、前記非使用状態においては、前記表示装置への電力は供給されない、請求項2に記載の情報処理装置。
  6. 前記情報処理装置は、携帯型情報端末であり、自動的に繰り返し所定のアクセスポイントを探索する探索手段を更に備え、
    前記接続手段は、前記探索手段によって前記アクセスポイントが検出されたとき、当該アクセスポイントに接続し、当該アクセスポイントを介して前記サーバと接続を行う、請求項1に記載の情報処理装置。
  7. 前記情報処理装置は、
    前記プログラムの受信処理のそれぞれについて、当該受信が完了したか否かを示す受信状況を記憶する受信状況記憶手段を更に備え、
    前記受信手段は、前記受信状況に基づいて、受信が完了していないことが示されている前記受信処理を再開する、請求項6に記載の情報処理装置。
  8. 前記情報処理装置は、1以上の前記プログラムの受信処理をそれぞれ規定する1以上のタスクを設定するタスク設定手段を更に備え、
    前記受信状況記憶手段は、当該タスクによって規定される受信処理が完了したか否かを示す受信状況をタスク毎に記憶し、
    前記受信手段は、受信が完了していないことを示す受信状況が記憶されている前記タスクによって規定される受信処理を再開する、請求項7に記載の情報処理装置。
  9. 前記情報処理装置は、
    前記接続手段によって前記サーバへの接続が行われたとき、受信可能なプログラムについての情報である配信中プログラム情報をサーバから受信する配信情報受信手段と、
    前記配信中プログラム情報を受信したとき、当該配信中プログラム情報によって特定される前記受信可能なプログラムの受信処理を行うか否かを所定の条件に基づいて決定する受信可否決定手段とを備え、
    前記受信手段は、前記受信可否決定手段によって受信処理を行うと決定された前記プログラムの受信処理を行う、請求項1に記載の情報処理装置。
  10. 前記情報処理装置は、所定のプログラムの実行履歴を示す実行履歴データを記憶する実行履歴記憶手段を更に備え、
    前記配信中プログラム情報は、前記受信可能な受信条件付きプログラムを特定する情報及び当該受信可能なプログラムを受信するために必要となる前記所定のプログラムの実行履歴に関する条件が受信のための条件を含み、
    前記受信可否決定手段は、前記実行履歴データで示される実行履歴が前記受信のための条件を満たしているときに、前記受信条件付きプログラムの受信処理を行うと決定し、当該実行履歴が当該受信のための条件を満たしていないときは、前記受信条件付きプログラムの受信処理を行わないと決定する、請求項9に記載の情報処理装置。
  11. 前記情報処理装置は、
    前記接続手段によって前記サーバへの接続が行われたとき、受信可能なプログラムについての情報である配信中プログラム情報をサーバから受信する配信情報受信手段と、
    前記配信中プログラム情報によって特定される受信可能プログラムが既に自機にインストールされているか否かを判定するインストール状況判定手段とを更に備え、
    前記受信手段は、前記配信中プログラム情報によって特定される受信可能プログラムの受信処理を行い、
    前記インストール手段は、前記受信手段によって受信されたプログラムのうち、前記インストール状況判定手段によって既にインストール済みと判定されたプログラムについては当該プログラムのアップデート処理を行い、まだインストールされていないと判定されたプログラムについては新規インストール処理を行う、請求項1に記載の情報処理装置。
  12. 前記情報処理装置は、
    前記接続手段によって前記サーバへの接続が行われたとき、受信可能なアプリケーションプログラムの一覧を示す配信中アプリ情報をサーバから受信する配信情報受信手段と、
    前記配信中アプリ情報を受信したとき、当該配信中アプリ情報によって特定される前記受信可能なアプリケーションプログラムの受信処理を行うか否かを所定の条件に基づいて決定する受信可否決定手段とを備え、
    前記受信手段は、前記受信可否決定手段によって受信処理を行うと決定された前記アプリケーションプログラムの受信処理を行う、請求項1に記載の情報処理装置。
  13. 前記情報処理装置は、当該情報処理装置のユーザの年齢を使用者年齢情報として当該情報処理装置内に記憶する年齢情報記憶手段を更に備え、
    前記配信中プログラム情報は、前記受信可能な各プログラムについての対象年齢を表す情報を含み、
    前記受信可否決定手段は、前記使用者年齢情報と前記各プログラムの対象年齢とを比較し、比較結果が所定の条件を満たしたとき、当該プログラムの受信処理を行うと決定する、請求項9に記載の情報処理装置。
  14. 前記情報処理装置は、前記接続手段によって前記サーバへの接続が行われたとき、受信可能なプログラムについての情報である配信中プログラム情報及び当該配信中プログラム情報で示される各プログラムを受信する順番を表した優先度情報を当該サーバから受信する配信情報受信手段を更に備え、
    前記受信手段は、前記配信中プログラム情報によって特定される前記プログラムを、前記優先度情報に基づいた順番にて受信する、請求項1に記載の情報処理装置。
  15. 前記情報処理装置は、
    前記インストールされたプログラムの一覧を作成し出力する一覧作成手段と、
    前記情報処理装置への所定の操作に応じて、前記一覧からいずれかのプログラムを選択する選択手段と、
    前記選択されたプログラムのアンインストール処理を行うアンインストール手段とを更に備える、請求項1に記載の情報処理装置。
  16. 前記情報処理装置は、前記アンインストール手段によってアンインストールされたプログラムを特定するための削除プログラム特定情報を記憶する削除履歴記憶手段を更に備え、
    前記受信手段は、前記配信中プログラム情報で示されるプログラムのうち、前記削除プログラム特定情報で特定されるプログラムについては、受信処理を行わない、請求項15に記載の情報処理装置。
  17. 前記情報処理装置は、ユーザの所定の操作に応じて、前記情報処理装置用のプログラムが登録された所定のサーバに接続し、ユーザが希望するプログラムを、前記削除プログラム特定情報に含まれているプログラムであるか否かにかかわらず受信する、請求項16に記載の情報処理装置。
  18. 前記情報処理装置は記憶部を更に備え、
    前記インストール手段は、前記受信手段によって受信したプログラムを前記記憶部に記憶し、当該プログラムを実行可能とするための実行環境設定処理を行うことでインストールを完了させる、請求項1に記載の情報処理装置。
  19. 前記情報処理装置は、
    インストールされたプログラムを記憶する記憶部と、
    前記情報処理装置の起動時に、前記記憶部に記憶されているプログラムの一覧を作成し出力する一覧作成手段と、
    前記情報処理装置に対して行われた所定の操作に応じて、前記一覧からいずれかのプログラムを選択する選択手段と、
    前記選択されたプログラムを実行するプログラム実行手段とを備え、
    前記インストール手段は、前記受信したプログラムを自動的に前記記憶部に記憶する、請求項1に記載の情報処理装置。
  20. 前記情報処理装置は、
    インストールされたプログラムを記憶する記憶部と、
    前記情報処理装置に対して行われた所定の操作に応じて、前記記憶部に記憶されているプログラムの一覧を作成し出力する一覧作成手段と、
    前記情報処理装置への所定の操作に応じて、前記一覧からいずれかのプログラムを選択する選択手段と、
    前記選択されたプログラムを実行するプログラム実行手段とを備え、
    前記インストール手段は、前記受信したプログラムを自動的に前記記憶部に記憶する、請求項1に記載の情報処理装置。
  21. 前記インストール手段は、更に、前記受信したプログラムが前記一覧作成手段によって作成される一覧の掲載対象となるように自動的に設定を行うことでインストールを完了する、請求項19又は20に記載の情報処理装置。
  22. 前記情報処理装置は権利情報データベース及び複数のプログラムを記憶する記憶部をさらに備え、
    前記受信手段は、前記プログラムとともに当該プログラムを実行するための権利情報を受信し、
    前記インストール手段は、前記受信したプログラムを自動的に前記記憶部に記憶するとともに、前記受信した権利情報を自動的に前記権利情報データベースに登録し、
    前記情報処理装置は、
    前記記憶部に記憶されたプログラムのうち少なくとも1つの実行指示を受け付ける実行指示受付手段と、
    前記実行指示を受け付けたとき、前記権利情報データベースに登録されている前記権利情報を用いて当該権利情報の認証を行う認証手段と、
    前記認証が成功したとき、前記実行指示がなされたプログラムを実行するプログラム実行手段とを更に備える、請求項1に記載の情報処理装置。
  23. 前記情報処理装置は権利情報データベース及び複数のプログラムを記憶する記憶部をさらに備え、
    前記受信手段は、前記プログラムとともに当該プログラムを実行するための権利情報を受信し、
    前記インストール手段は、
    前記受信手段によって前記プログラム及び前記権利情報を受信したとき、前記権利情報の正当性の有無を自動的に判別する正当性確認手段と、
    前記権利情報の正当性があると判別されたとき、前記プログラム及び前記権利情報を前記記憶部に自動的に記憶する権利情報記憶手段と、
    前記権利情報の正当性がないと判別されたとき、前記権利情報の内容を破棄する権利情報破棄手段とを含み、
    前記情報処理装置は、
    前記記憶部に記憶されたプログラムのうち少なくとも1つの実行指示を受け付ける実行指示受付手段と、
    前記実行指示を受け付けたとき、前記権利情報を記憶部から読み出し、当該権利情報の認証を行う認証手段と、
    前記認証が成功したとき、前記実行指示がなされたプログラムを実行するプログラム実行手段とを更に備える、請求項1に記載の情報処理装置。
  24. 前記情報処理装置は複数のプログラムを記憶する記憶部をさらに備え、
    前記受信手段は、前記プログラムを受信し、
    前記インストール手段は、
    前記受信手段によって前記プログラムを受信したとき、当該受信したプログラムの正当性の有無を自動的に判別する正当性確認手段と、
    前記受信したプログラムの正当性があると判別されたとき、当該プログラムを前記記憶部に自動的に記憶する権利情報記憶手段と、
    前記受信したプログラムの正当性がないと判別されたとき、当該受信したプログラムを破棄する破棄手段とを含み、
    前記情報処理装置は、
    前記記憶部に記憶されたプログラムのうち少なくとも1つの実行指示を受け付ける実行指示受付手段と、
    前記実行指示を受け付けたとき、当該実行指示がなされたプログラムを実行するプログラム実行手段とを更に備える、請求項1に記載の情報処理装置。
  25. 前記接続手段は、ユーザに接続に関する操作を一切求めずに前記サーバへの接続を自動的に行い、
    前記受信手段は、前記1以上のプログラムの受信処理に際して、ユーザに対して当該受信処理に関する操作を一切求めずに前記受信処理を自動的に行い、
    前記インストール手段は、前記プログラムの情報処理装置へのインストールに際して、ユーザに対して当該インストール処理に関する操作を一切求めずに前記インストール処理を自動的に行う、請求項1に記載の情報処理装置。
  26. 前記情報処理装置は、
    前記接続手段によって前記サーバへの接続が行われたとき、受信可能なアプリケーションプログラムの一覧を示す配信中アプリ情報をサーバから受信する配信情報受信手段と、
    前記配信中アプリ情報によって特定される受信可能なアプリケーションプログラムが、既に自機にインストールされているか否かを判定するアプリインストール状況判定手段を更に備え、
    前記受信手段は、前記配信中アプリ情報によって特定される受信可能なアプリケーションプログラムの受信処理を行い、
    前記インストール手段は、前記受信手段によって受信されたアプリケーションプログラムのうち、前記アプリインストール状況判定手段によって既にインストール済みと判定されたアプリケーションプログラムについては当該アプリケーションプログラムの更新インストールを行い、まだインストールされていないと判定されたアプリケーションプログラムについては新規インストールを行う、請求項1に記載の情報処理装置。
  27. 前記サーバから受信されるプログラムには、システムプログラムとアプリケーションプログラムの2種類のプログラムが存在し、
    前記受信手段は、前記アプリケーションプログラムを自動的に受信し、
    前記インストール手段は、前記アプリケーションプログラムの情報処理装置へのインストール処理を自動的に行う、請求項1に記載の情報処理装置。
  28. 非使用状態と使用状態とを切り替える切替手段と、
    前記情報処理装置が少なくとも非使用状態で稼働しているときに、自動的に前記サーバに接続する接続手段と、
    前記情報処理装置が少なくとも非使用状態で稼働しているときにおいて、前記サーバから1以上のアプリケーションプログラムの受信処理を自動的に行う受信手段と、
    前記情報処理装置が少なくとも非使用状態で稼働しているときにおいて、前記アプリケーションプログラムの当該情報処理装置へのインストール処理を自動的に行うアプリインストール手段とを備える、情報処理装置。
  29. 自動的にサーバに接続する接続手段と、
    前記サーバから1以上のアプリケーションプログラムの受信処理を自動的に行う受信手段と、
    前記アプリケーションプログラムの前記情報処理装置へのインストール処理を自動的に行うアプリインストール手段とを備える、情報処理装置。
  30. 情報処理装置とサーバを含むシステムであって、
    前記情報処理装置は、
    自動的に前記サーバに接続する接続手段と、
    前記サーバから1以上のプログラムの受信処理を自動的に行う受信手段と、
    前記プログラムの情報処理装置へのインストール処理を自動的に行うインストール手段と、
    ユーザにより選択されたプログラムを実行するプログラム実行手段とを備え、
    前記サーバは、前記情報処理装置による接続が行われたとき、前記1以上のプログラムの送信処理を行う送信手段を備える、システム。
  31. 前記サーバによって送信され、前記情報処理装置によって受信、インストール、及び実行がなされるプログラムは、
    コンテンツデータ、および、前記情報処理装置を、前記コンテンツデータを再生する再生手段として機能させる再生処理プログラムを含む、請求項30に記載のシステム。
  32. 前記サーバによって送信され、前記情報処理装置によって受信、インストール、及び実行がなされるプログラムは、前記情報処理装置を、
    ユーザによる当該プログラムのアンインストール指示を受け付けるアンインストール受付手段として機能させ、
    前記情報処理装置は、前記アンインストール受付手段によって前記プログラムのアンインストール指示が受け付けられたとき、前記プログラムをアンインストールするアンインストール手段を更に備える、請求項30に記載のシステム。
  33. 前記サーバによって送信され、前記情報処理装置によって受信、インストール、及び実行がなされるプログラムは、ユーザにより手動で受信されるアプリケーションプログラムの紹介を行うプログラムであり、前記情報処理装置を、
    前記ユーザにより手動で受信するためのアプリケーションプログラムの詳細情報にアクセスするための指示を受け付ける詳細情報指示受付手段として機能させ、
    前記情報処理装置は、前記詳細情報指示受付手段によって前記詳細情報にアクセスするための指示が受け付けられたとき、前記手動で受信されるアプリケーションプログラムに関する詳細情報を出力する詳細情報出力手段を更に備える、請求項30に記載のシステム。
  34. 前記詳細情報出力手段は、前記詳細情報をサーバから取得して出力する、請求項33に記載の情報処理装置。
  35. 前記情報処理装置は、
    前記詳細情報が出力されているとき、ユーザから、前記手動で受信されるアプリケーションプログラムの受信及びインストールを行うための指示を受け付ける受信指示受付手段と、
    前記受信及びインストールを行うための指示を受け付けたとき、前記手動で受信されるアプリケーションプログラムが登録された所定のサーバに接続し、当該アプリケーションプログラムを受信するとともに、当該受信したアプリケーションプログラムを自動的にインストールする手動受信手段をさらに備える、請求項33に記載のシステム。
  36. 前記サーバによって送信され、前記情報処理装置によって受信、インストール、及び実行がなされるプログラムは、ユーザにより購入されるアプリケーションプログラム又はコンテンツの紹介を行うプログラムであり、前記情報処理装置を、
    前記プログラム実行手段によって実行される前記プログラム内において、前記ユーザにより購入されるアプリケーションプログラムの購入サイトへアクセスするための指示を受け付けるアクセス指示受付手段として機能させ、
    前記情報処理装置は、前記アクセス指示受付手段によって購入サイトへアクセスするための指示が受け付けられたとき、前記ユーザにより購入されるアプリケーションプログラムの購入サイトに接続する購入サイト接続手段をさらに備える、請求項30に記載のシステム。
  37. 自動的にサーバに接続する接続手段と、
    前記サーバから1以上のプログラムの受信処理を自動的に行う受信手段と、
    前記受信手段によって受信されたプログラムが自機にインストールされていないときは、当該プログラムの新規インストール処理を自動的に行うインストール手段とを備える、情報処理装置。
  38. サーバと情報処理装置を含むシステムを用いて、当該情報処理装置の機能を更新する情報処理方法であって、
    前記情報処理装置は、そのプロセッサにより、
    少なくとも省電力状態において、
    予め定めるスケジュールに従って、自動的かつ繰り返して前記サーバへの接続を試み、
    前記サーバに接続したときに、自機にインストールされていない情報処理装置用のプログラムをユーザの承諾および操作を求めずに自動的にダウンロードするとともに、当該ダウンロードしたプログラムを自動的にインストールし、
    非省電力状態において、
    ユーザに前記情報処理装置に記憶された複数のプログラムのうち、実行するプログラムをユーザに選択させるための選択画面において、前記少なくとも省電力状態において前記インストール済みのプログラムを自動的に含めて表示し、当該インストール済みのプログラムの選択操作に応じて、当該インストール済みのプログラムを起動し、
    前記自動的にインストールされたプログラムのうちユーザが希望するプログラムをアンインストールすることが可能な、機能更新方法。
  39. 前記サーバは、前記情報処理装置のメーカーが管理するサーバであり、
    前記情報処理装置用のプログラムは、前記情報処理装置のメーカーの管理のもと、当該情報処理装置の発売後に当該情報処理装置用のプログラムを追加可能なように前記サーバに登録される、請求項38に記載の機能更新方法。
  40. 前記情報処理装置は、そのプロセッサにより、更に、ユーザの所定の操作に応じて、前記情報処理装置用のプログラムが登録された所定のサーバに接続し、ユーザが希望するプログラムをダウンロードするとともに、当該ダウンロードしたプログラムを自動的にインストールする、請求項38に記載の機能更新方法。
  41. 情報処理装置のコンピュータに実行させる情報処理プログラムであって、
    前記コンピュータを、
    自動的にサーバに接続する接続手段と、
    前記サーバから1以上のプログラムの受信処理を自動的に行う受信手段と、
    前記プログラムの前記情報処理装置へのインストール処理を自動的に行うインストール手段として機能させる、情報処理プログラム。
  42. 前記受信手段によりサーバから自動的に受信され、前記インストール手段により自動的にインストールされる前記プログラムは、
    コンテンツデータを含み、
    前記コンピュータを、前記コンテンツデータを再生する再生手段として機能させる、請求項41に記載の情報処理プログラム。
  43. 前記受信手段によりサーバから自動的に受信され、前記インストール手段により自動的にインストールされるプログラムは、
    前記コンピュータを、ユーザによる当該プログラムのアンインストール指示を受け付けるアンインストール受付手段としてさらに機能させ、
    前記情報処理プログラムは、前記コンピュータを、前記アンインストール受付手段によって前記プログラムのアンインストール指示が受け付けられたとき、当該プログラムをアンインストールするアンインストール手段として更に機能させる、請求項41に記載の情報処理プログラム。
  44. 前記受信手段によりサーバから自動的に受信され、前記インストール手段により自動的にインストールされるプログラムは、
    前記コンピュータを、前記ユーザにより手動で受信されるアプリケーションプログラムの詳細情報にアクセスするための指示を受け付ける詳細情報指示受付手段としてさらに機能させ、
    前記情報処理プログラムは、前記コンピュータを、前記指示が受け付けられたとき、前記手動で受信されるアプリケーションプログラムに関する詳細情報を出力する詳細情報出力手段として更に機能させる、請求項41に記載の情報処理プログラム。
  45. 前記情報処理プログラムは、前記コンピュータを、
    前記詳細情報が出力されているとき、ユーザから、前記手動で受信されるアプリケーションプログラムの受信及びインストールを行うための指示を受け付ける受信指示受付手段と、
    前記受信及びインストールを行うための指示を受け付けたとき、前記手動で受信されるアプリケーションプログラムが登録された所定のサーバに接続し、当該アプリケーションプログラムを受信するとともに、当該受信したアプリケーションプログラムを自動的にインストールする手動受信手段として更に機能させる、請求項44に記載の情報処理プログラム。
  46. 前記受信手段によりサーバから自動的に受信され、前記インストール手段により自動的にインストールされるプログラムは、
    前記コンピュータを、前記プログラム実行手段によって実行される前記プログラム内において、前記ユーザにより購入されるアプリケーションプログラムの購入サイトへアクセスするための指示を受け付けるアクセス指示受付手段としてさらに機能させ、
    前記情報処理プログラムは、前記コンピュータを、前記指示が受け付けられたとき、前記ユーザにより購入されるアプリケーションプログラムの購入サイトに接続する購入サイト接続手段として機能させる、請求項41に記載の情報処理プログラム。
  47. 自動的にサーバに接続する接続手段と、
    前記サーバから1以上のプログラムの受信処理を自動的に行う受信手段と、
    前記プログラムの情報処理装置へのインストール処理を自動的に行うインストール手段とを備える、情報処理システム。
  48. 自動的にサーバに接続する接続ステップと、
    前記サーバから1以上のプログラムの受信処理を自動的に行う受信ステップと、
    前記プログラムの情報処理装置へのインストール処理を自動的に行うインストールステップとを備える、情報処理方法。
JP2010214528A 2010-06-11 2010-09-24 情報処理端末、情報処理システム、情報処理プログラム Pending JP2012018657A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2010214528A JP2012018657A (ja) 2010-06-11 2010-09-24 情報処理端末、情報処理システム、情報処理プログラム
EP11153645.4A EP2395428B1 (en) 2010-06-11 2011-02-08 Information processing terminal, information processing system, and information processing method
US13/027,723 US9588748B2 (en) 2010-06-11 2011-02-15 Information processing terminal, information processing system, computer-readable storage medium having stored thereon information processing program, and information processing method
CN201110159094.3A CN102279759B (zh) 2010-06-11 2011-06-08 信息处理终端、信息处理系统、信息处理方法
US15/413,155 US10296319B2 (en) 2010-06-11 2017-01-23 Information processing terminal, information processing system, computer-readable storage medium having stored thereon information processing program, and information processing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010134563 2010-06-11
JP2010134563 2010-06-11
JP2010214528A JP2012018657A (ja) 2010-06-11 2010-09-24 情報処理端末、情報処理システム、情報処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015048397A Division JP2015109114A (ja) 2010-06-11 2015-03-11 情報処理端末、情報処理システム、情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2012018657A true JP2012018657A (ja) 2012-01-26

Family

ID=44503491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010214528A Pending JP2012018657A (ja) 2010-06-11 2010-09-24 情報処理端末、情報処理システム、情報処理プログラム

Country Status (3)

Country Link
US (2) US9588748B2 (ja)
EP (1) EP2395428B1 (ja)
JP (1) JP2012018657A (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178732A (ja) * 2011-02-25 2012-09-13 Nintendo Co Ltd 情報処理装置、情報処理プログラム、情報処理方法および情報処理システム
JP2013186506A (ja) * 2012-03-05 2013-09-19 Canon Inc 記録システム、記録装置、及び通信方法
JP2013235394A (ja) * 2012-05-08 2013-11-21 Softbank Mobile Corp 情報端末装置
JP5363671B1 (ja) * 2012-08-19 2013-12-11 春佳 西守 携帯端末にダウンロードされるコンピュータプログラムおよび方法
JP2013248292A (ja) * 2012-06-01 2013-12-12 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システムおよび表示方法
JP2013257717A (ja) * 2012-06-12 2013-12-26 Sony Computer Entertainment Inc 情報処理装置
JP2014099084A (ja) * 2012-11-15 2014-05-29 Nintendo Co Ltd 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法
WO2015022791A1 (ja) * 2013-08-16 2015-02-19 株式会社コナミデジタルエンタテインメント 管理装置、管理方法、端末装置、制御方法、及びプログラム
JP2015225655A (ja) * 2014-05-27 2015-12-14 任天堂株式会社 情報処理装置、情報処理システム、情報処理方法、および情報処理プログラム
JP2015225629A (ja) * 2014-05-30 2015-12-14 株式会社コナミデジタルエンタテインメント 情報処理装置、プログラム、情報処理システム
JP2018036745A (ja) * 2016-08-30 2018-03-08 コベルコ建機株式会社 ソフトウェアの更新装置及びソフトウェアの更新方法
WO2019009020A1 (ja) * 2017-07-04 2019-01-10 日本電気通信システム株式会社 ソフトウェア更新装置
US10350492B2 (en) 2015-10-27 2019-07-16 Nintendo Co., Ltd. Server, information processing system, storage medium storing information processing program, and information processing method
US10733299B2 (en) 2017-10-06 2020-08-04 Nintendo Co., Ltd. System and method for updating a plurality of information processing apparatuses in a local network using received update program
US11222040B2 (en) 2015-10-27 2022-01-11 Nintendo Co., Ltd. Information processing system, server, storage medium storing information processing program, and information processing method
US11491685B2 (en) 2018-08-22 2022-11-08 Toray Industries, Inc. Production method for prepreg, prepreg tape, and fiber reinforced composite material, and prepreg production device

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381208B2 (en) * 2009-06-11 2013-02-19 International Business Machines Corporation Tracking application installation among a plurality of client devices
JP4871373B2 (ja) 2009-06-19 2012-02-08 任天堂株式会社 情報処理システムおよび情報処理装置
JP5674296B2 (ja) * 2009-09-09 2015-02-25 任天堂株式会社 情報処理システムおよび情報処理装置
JP2011250874A (ja) 2010-05-31 2011-12-15 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法
JP5593566B2 (ja) 2010-06-10 2014-09-24 任天堂株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP5449044B2 (ja) * 2010-06-10 2014-03-19 シャープ株式会社 サーバ装置、端末装置およびアプリケーション制御システム
JP5677811B2 (ja) 2010-06-11 2015-02-25 任天堂株式会社 携帯型情報端末、携帯情報システム、携帯型情報端末制御プログラム
JP2012018657A (ja) 2010-06-11 2012-01-26 Nintendo Co Ltd 情報処理端末、情報処理システム、情報処理プログラム
JP5507350B2 (ja) 2010-06-11 2014-05-28 任天堂株式会社 携帯型情報端末、携帯型情報端末制御プログラム、携帯型情報システム、および、携帯型情報端末制御方法
JP4999213B2 (ja) 2010-09-17 2012-08-15 任天堂株式会社 情報処理プログラム、携帯端末装置、システム、情報処理方法及び通信システム
CN103270466B (zh) 2010-12-27 2016-08-10 微软技术许可有限责任公司 经由对定时器相关任务的协调和选择性操作的功率管理
JP4882022B1 (ja) 2010-12-28 2012-02-22 任天堂株式会社 通信システム、情報処理プログラム、情報処理方法、情報処理装置、情報処理システム
JP5723174B2 (ja) * 2011-02-25 2015-05-27 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
US8707289B2 (en) 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US9430209B2 (en) * 2011-12-16 2016-08-30 Sap Se Processing framework for generating pre-configuration packages
US20130232229A1 (en) * 2012-03-02 2013-09-05 Ilya Firman Distribution of Application Files
JP5949421B2 (ja) * 2012-10-11 2016-07-06 富士通株式会社 情報処理装置、実行優先度変更方法およびプログラム
US8903838B2 (en) * 2012-10-29 2014-12-02 Dropbox, Inc. System and method for preventing duplicate file uploads in a synchronized content management system
CN103841155B (zh) * 2012-11-26 2015-12-23 腾讯科技(深圳)有限公司 一种软件下载方法和软件下载装置
US20140201376A1 (en) * 2013-01-11 2014-07-17 Andre Godin Method and system for the handling of redundant long poll
KR102087395B1 (ko) * 2013-01-16 2020-03-10 삼성전자주식회사 전자 장치에서 응용프로그램을 실행하기 위한 장치 및 방법
US9411571B2 (en) * 2013-02-28 2016-08-09 Adobe Systems Incorporated Method and apparatus for deploying software as a service
CN103631625B (zh) * 2013-12-02 2018-02-23 腾讯科技(成都)有限公司 一种数据获取的方法、用户端、服务器及系统
CN105991687B (zh) 2015-02-03 2019-09-17 阿里巴巴集团控股有限公司 一种服务管理方法和装置
KR101620050B1 (ko) * 2015-03-03 2016-05-12 주식회사 카카오 인스턴트 메시지 서비스를 통한 시나리오 이모티콘 표시 방법 및 이를 위한 사용자 단말
CN108355348B (zh) * 2015-10-10 2021-01-26 腾讯科技(成都)有限公司 信息处理方法、终端及计算机存储介质
JP6661409B2 (ja) * 2016-03-01 2020-03-11 キヤノン株式会社 自動設置システム、情報処理装置、情報処理装置の制御方法、及びプログラム
US10733091B2 (en) 2016-05-03 2020-08-04 International Business Machines Corporation Read and write sets for ranges of instructions of transactions
KR102309031B1 (ko) * 2017-04-27 2021-10-06 삼성전자 주식회사 지능형 에이전트 관리 방법 및 장치
KR20180134672A (ko) * 2017-06-09 2018-12-19 에이치피프린팅코리아 유한회사 화상 형성 장치의 애플리케이션 설치 방법 및 그 방법을 사용하는 화상 형성 장치
JP2019102985A (ja) * 2017-12-01 2019-06-24 コニカミノルタ株式会社 画像形成装置、プログラム及び情報処理装置
JP7010005B2 (ja) * 2018-01-11 2022-01-26 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
CN110007747B (zh) * 2019-03-29 2021-11-16 联想(北京)有限公司 一种控制方法及控制装置
WO2021141606A1 (en) * 2020-01-10 2021-07-15 Hewlett-Packard Development Company, L.P. Change of firmware settings
US11442717B2 (en) * 2020-03-31 2022-09-13 Arista Networks, Inc. System and method for updating state information

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153184A (ja) * 1997-08-08 1999-02-26 Seta:Kk データ配信方法および装置
JPH11282687A (ja) * 1998-03-31 1999-10-15 Hitachi Ltd プログラム自動改版方法
JP2000035885A (ja) * 1998-05-14 2000-02-02 Sega Enterp Ltd 情報処理装置、情報処理方法及び情報記録媒体並びに情報処理システム
JP2002297483A (ja) * 2001-04-03 2002-10-11 Kenwood Corp 移動体通信端末、移動体通信端末の通信方法及びプログラム
JP2003219465A (ja) * 2002-01-17 2003-07-31 Matsushita Electric Ind Co Ltd 移動体通信システム
JP2003244316A (ja) * 2002-02-21 2003-08-29 Sony Ericsson Mobilecommunications Japan Inc 携帯通信端末およびプログラム
JP2003256062A (ja) * 2001-12-28 2003-09-10 Access:Kk アプリケーション等利用期限管理システム
JP2004102925A (ja) * 2002-09-12 2004-04-02 Ntt Docomo Inc コンテンツ配信システム、コンテンツ配信方法、これらに用いて好適なコンテンツ受信装置及びプログラム
JP2004302973A (ja) * 2003-03-31 2004-10-28 Ntt Docomo Inc 端末装置及びプログラム
JP2004341618A (ja) * 2003-05-13 2004-12-02 Nec Personal Products Co Ltd プログラム・ラウンチャ、プログラム・ラウンチング方法及びプログラム
JP2005157657A (ja) * 2003-11-25 2005-06-16 Nec Corp 携帯端末におけるアプリケーションデータ管理方法及び携帯端末
JP2005242886A (ja) * 2004-02-27 2005-09-08 Dowango:Kk プログラム配信システム、管理サーバ、サーバプログラムおよびプログラムの使用を許可する方法
JP2005251167A (ja) * 2004-01-09 2005-09-15 Microsoft Corp 管理サーバにより更新されるオンデバイスアプリケーションカタログ
JP2006146306A (ja) * 2004-11-16 2006-06-08 Aruze Corp アプリケーション提供用サーバ、システムおよび提供方法
JP2007004316A (ja) * 2005-06-22 2007-01-11 Nec Corp プログラム配信システム、プログラム配信サーバ及びそれらに用いるプログラム配信方法
JP2009512239A (ja) * 2005-08-19 2009-03-19 任天堂株式会社 携帯情報端末用無線ユーザネットワーク
WO2009070601A1 (en) * 2007-11-30 2009-06-04 Sandra Irene Vargas Sleep mode for mobile communication device
JP2009201677A (ja) * 2008-02-27 2009-09-10 Sankyo Co Ltd 遊技用システム、遊技用サーバ、利用者端末、遊技用プログラム、および、利用者端末用プログラム
JP2009225000A (ja) * 2008-03-14 2009-10-01 Raburifiiru:Kk 折畳み型携帯電話機への情報配信制御用のプログラム
WO2009148781A1 (en) * 2008-06-06 2009-12-10 Apple Inc. User interface for application management for a mobile device
WO2010010645A1 (ja) * 2008-07-23 2010-01-28 パナソニック株式会社 無線通信装置
JP2010079546A (ja) * 2008-09-25 2010-04-08 Hitachi Software Eng Co Ltd プログラム配信更新システム
JP2010086327A (ja) * 2008-09-30 2010-04-15 Nintendo Co Ltd 起動制御プログラム、及び、起動制御装置
JP2010182309A (ja) * 2009-02-09 2010-08-19 Apple Inc アプリケーションプログラムのインテリジェントなダウンロード

Family Cites Families (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04176235A (ja) 1990-11-08 1992-06-23 Nintendo Co Ltd ゲーム機用通信アダプタ
GB9210363D0 (en) 1992-05-14 1992-07-01 Codemasters Ltd Computer game systems
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
GB9421840D0 (en) 1994-10-28 1994-12-14 Plessey Semiconductors Ltd Improvements in or relating to television receivers
US5618045A (en) 1995-02-08 1997-04-08 Kagan; Michael Interactive multiple player game system and method of playing a game between at least two players
US5732275A (en) * 1996-01-11 1998-03-24 Apple Computer, Inc. Method and apparatus for managing and automatically updating software programs
JPH1083363A (ja) 1996-03-28 1998-03-31 Mega Chips:Kk ゲームプログラム供給システムおよびプログラム書き換えシステム
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6438573B1 (en) 1996-10-09 2002-08-20 Iowa State University Research Foundation, Inc. Real-time programming method
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
JP3494567B2 (ja) 1998-01-22 2004-02-09 株式会社ナムコ 携帯用通信玩具及び情報記憶媒体
JP4548624B2 (ja) 1998-06-30 2010-09-22 雅信 鯨田 出会い・交流・連絡もしくは交信の支援のための装置
JP4406475B2 (ja) 1998-12-16 2010-01-27 任天堂株式会社 携帯型データ送受信端末装置及びそれを用いた携帯型通信システム
JP4228253B2 (ja) 1999-03-01 2009-02-25 ソニー株式会社 歩数計
US7054831B2 (en) 1999-07-07 2006-05-30 Eric Koenig System and method for combining interactive game with interactive advertising
US7819750B2 (en) 1999-10-06 2010-10-26 Igt USB software architecture in a gaming machine
US7290072B2 (en) 1999-10-06 2007-10-30 Igt Protocols and standards for USB peripheral communications
US7704147B2 (en) 1999-10-06 2010-04-27 Igt Download procedures for peripheral devices
US6886036B1 (en) 1999-11-02 2005-04-26 Nokia Corporation System and method for enhanced data access efficiency using an electronic book over data networks
JP4039654B2 (ja) 1999-11-22 2008-01-30 株式会社東芝 携帯端末を用いたサービスシステム
JP2008016040A (ja) 1999-11-24 2008-01-24 Sega Corp 課金管理サーバ
JP2001175556A (ja) 1999-12-21 2001-06-29 Canon Inc 電子メール受信装置及びその電子メール受信方法ならびに記録媒体
JP3360062B2 (ja) 2000-02-14 2002-12-24 エヌイーシーアクセステクニカ株式会社 歩数計付き携帯無線通信装置
JP3333773B2 (ja) 2000-04-14 2002-10-15 コナミ株式会社 ゲーム装置、ゲーム装置の制御方法及び情報記憶媒体
JP3585422B2 (ja) 2000-06-01 2004-11-04 シャープ株式会社 アクセスポイント装置及びその認証処理方法
JP2001357223A (ja) 2000-06-12 2001-12-26 Tadayuki Ariyasu ゲームソフト通信売買システム及び、通信配信システム
AU2001263472A1 (en) 2000-06-28 2002-01-08 Broadcom Corporation Multi-mode controller
JP4194740B2 (ja) 2000-06-29 2008-12-10 ヤフー株式会社 ゲーム販売装置、ゲーム販売方法
JP3417905B2 (ja) 2000-07-06 2003-06-16 株式会社東芝 携帯機器、無線通信システム、および携帯機器の動作状態制御方法
EP1178403A3 (en) 2000-08-01 2005-07-27 Matsushita Electric Industrial Co., Ltd. Download system
JP2002102530A (ja) 2000-10-03 2002-04-09 Sega Corp 画像処理システム
JP2002159739A (ja) 2000-11-27 2002-06-04 Casio Comput Co Ltd 電子ゲームシステム、電子ゲーム装置、および記録媒体
US20070136817A1 (en) 2000-12-07 2007-06-14 Igt Wager game license management in a peer gaming network
US20020083160A1 (en) 2000-12-21 2002-06-27 Don Middleton Method and apparatus for managing applications and data in a mobile device
JP4922513B2 (ja) 2000-12-28 2012-04-25 任天堂株式会社 ゲーム管理装置,ゲームプログラムおよびゲームシステム
JP4312415B2 (ja) 2001-05-11 2009-08-12 株式会社スクウェア・エニックス メッセージ交換システム及び方法、クライアントシステム、記録媒体並びにプログラム
US20030033413A1 (en) 2001-06-19 2003-02-13 Willson Alan N. Mobile wireless local area network
JP3538397B2 (ja) 2001-07-05 2004-06-14 株式会社コナミコンピュータエンタテインメントスタジオ ネットワークゲーム用サーバ装置、ネットワークゲーム進行制御方法及びネットワークゲーム進行制御プログラム
JP3863401B2 (ja) 2001-10-12 2006-12-27 株式会社東芝 ソフトウェア処理装置
US20080148350A1 (en) 2006-12-14 2008-06-19 Jeffrey Hawkins System and method for implementing security features and policies between paired computing devices
JP2003196217A (ja) 2001-12-28 2003-07-11 Nec Corp 迷惑メールの着信拒否設定方法、およびそのメール装置
JP2003229809A (ja) 2002-02-05 2003-08-15 Nec Infrontia Corp メッセージ伝搬方法及びその方式
JP2003337716A (ja) 2002-05-20 2003-11-28 Ntt Docomo Inc 電子機器、データ共用方法、プログラム及び記憶媒体
JP2004005110A (ja) 2002-05-31 2004-01-08 Toshiba Corp 情報機器、ランチャプログラム
US8316298B2 (en) * 2002-06-18 2012-11-20 Aaron Conti Method and apparatus for providing entertainment through an interactive device
US7376959B2 (en) 2002-06-27 2008-05-20 Siebel Systems, Inc. Method and system for outbound web services
JP2004057515A (ja) 2002-07-29 2004-02-26 Sega Corp 通信ゲーム装置
JP2004118291A (ja) 2002-09-24 2004-04-15 Hitachi Kokusai Electric Inc ソフトウェア管理システム及び障害管理装置
JP2004136009A (ja) 2002-10-21 2004-05-13 Nintendo Co Ltd 無線通信ゲームシステム
US20040082383A1 (en) 2002-10-24 2004-04-29 Motorola, Inc Methodology and wireless device for interactive gaming
JP2004186769A (ja) 2002-11-29 2004-07-02 Toshiba Corp 通信システム、通信制御方法、及び通信制御端末
US7428587B2 (en) 2002-12-19 2008-09-23 Microsoft Corporation Generating globally unique device identification
CN100339844C (zh) 2002-12-20 2007-09-26 松下电器产业株式会社 信息管理系统
JP2004221671A (ja) 2003-01-09 2004-08-05 Matsushita Electric Ind Co Ltd 移動局装置、及びセルサーチ制御方法並びにプログラム
US7114090B2 (en) 2003-02-14 2006-09-26 Intel Corporation Computing system with operational low power states
US7620027B2 (en) 2003-03-14 2009-11-17 Canon Kabushiki Kaisha Communication system, information processing device, connection device, and connection device designation method for designating connection device for communication device to connect to
US7746834B1 (en) 2003-03-17 2010-06-29 3Com Corporation Method of dynamically locating and connecting to a wireless device
WO2004100010A1 (en) * 2003-04-30 2004-11-18 Iptv Systems, Llc Secure, continuous, proxy-optimized, device-to-device data download reception system and method of use
WO2004100445A2 (en) * 2003-05-07 2004-11-18 Matsushita Electric Industrial Co., Ltd. Transmission/reception system using message authentication code
US20070213795A1 (en) 2003-05-08 2007-09-13 Kerry Bradley Implantable medical lead
US7455590B2 (en) 2003-05-09 2008-11-25 Microsoft Corporation Sending messages in response to events occurring on a gaming service
WO2004104883A1 (ja) 2003-05-20 2004-12-02 Sony Corporation コンテンツ提供システム、情報処理装置および方法、並びにプログラム
JP2004348203A (ja) 2003-05-20 2004-12-09 Sony Corp コンテンツ提供システム、情報処理装置および方法、並びにプログラム
JP3714340B2 (ja) 2003-05-20 2005-11-09 日本電気株式会社 プレゼンスサービスを応用したアクセスポイント高速接続方法
JP5043451B2 (ja) 2003-06-17 2012-10-10 任天堂株式会社 ゲームシステム、ゲーム装置およびゲームプログラム
JP4073885B2 (ja) 2003-06-17 2008-04-09 任天堂株式会社 ゲームシステム、ゲーム装置およびゲームプログラム
JP4095501B2 (ja) 2003-06-25 2008-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ装置、無線アクセスポイント、無線ネットワークを介した電源投入方法、フレーム聴取方法、フレーム送信方法、およびプログラム
JP4622223B2 (ja) 2003-09-30 2011-02-02 カシオ計算機株式会社 携帯電話機
US7583643B2 (en) 2003-09-30 2009-09-01 Motorola, Inc. Enhanced passive scanning
JP3927532B2 (ja) 2003-10-03 2007-06-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理装置の制御方法、プログラム及び記録媒体
JP2005157509A (ja) 2003-11-21 2005-06-16 Hitachi Ltd 通信端末
JP3725143B2 (ja) 2003-12-10 2005-12-07 コナミ株式会社 カードゲームシステム及びそのカードシステムで使用されるカード
US7565653B2 (en) 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
JP2005242399A (ja) 2004-02-24 2005-09-08 Nec Saitama Ltd プッシュ型コンテンツ配信サービスシステム、方法及びサーバ
JP4376661B2 (ja) 2004-03-02 2009-12-02 任天堂株式会社 ゲームシステムおよびゲームプログラム
JP2005266160A (ja) 2004-03-17 2005-09-29 Fuji Photo Film Co Ltd 携帯型情報端末
JP4342356B2 (ja) 2004-03-22 2009-10-14 任天堂株式会社 ゲームシステム、ゲーム装置、およびゲームプログラム
JP3761091B2 (ja) 2004-05-07 2006-03-29 株式会社ソニー・コンピュータエンタテインメント アプリケーション実行方法、ファイルデータダウンロード方法、ファイルデータアップロード方法、通信方法および無線通信端末装置
WO2005111815A1 (ja) 2004-05-17 2005-11-24 Sega Corporation 情報伝達の過程で内容が変化する情報伝達方法および情報伝達システム
JP2006005630A (ja) 2004-06-17 2006-01-05 Toyota Industries Corp 無線端末、ネットワーク接続装置、切り換えの候補の探索方法及びプログラム
JP2006065790A (ja) * 2004-08-30 2006-03-09 Fujitsu Ltd アンインストール処理プログラム、及びアンインストール管理プログラム
JP2006072685A (ja) 2004-09-02 2006-03-16 Fujitsu Support & Service Kk 電子メール処理装置
JP2006101474A (ja) 2004-09-06 2006-04-13 Junichi Kamiyama メール受信方法、メール受信装置およびメールサーバ
JP3888558B2 (ja) 2004-11-18 2007-03-07 任天堂株式会社 無線ネットワークシステムおよび無線通信プログラム
US7818734B2 (en) * 2005-01-21 2010-10-19 Callwave, Inc. Methods and systems for transferring data over a network
US20060166739A1 (en) * 2005-01-25 2006-07-27 Jeng-Tay Lin Operating method for a wireless recreation system
JP4573113B2 (ja) 2005-02-21 2010-11-04 日本電気株式会社 移動体通信システム、方法、プログラム、移動体通信端末及びサーバ
US20060234631A1 (en) 2005-04-15 2006-10-19 Jorge Dieguez System and method for generation of interest -based wide area virtual network connections
JP4754261B2 (ja) 2005-04-28 2011-08-24 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法
JP4781743B2 (ja) 2005-05-06 2011-09-28 任天堂株式会社 通信ゲームシステム
JP4777725B2 (ja) 2005-08-31 2011-09-21 フェリカネットワークス株式会社 携帯端末装置,サーバ装置,アプリケーション提供方法およびコンピュータプログラム
JP4652190B2 (ja) 2005-09-22 2011-03-16 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び電子機器
JP3957725B2 (ja) 2005-10-04 2007-08-15 任天堂株式会社 通信ゲームプログラムおよび通信ゲームシステム
JP3995257B2 (ja) 2005-10-04 2007-10-24 任天堂株式会社 通信ゲームプログラムおよび通信ゲームシステム
JP5105458B2 (ja) 2005-10-04 2012-12-26 任天堂株式会社 ゲームシステムおよびゲームプログラム
JP5501546B2 (ja) 2005-10-04 2014-05-21 任天堂株式会社 ゲームシステム、ゲーム装置およびゲームプログラム
US9055093B2 (en) * 2005-10-21 2015-06-09 Kevin R. Borders Method, system and computer program product for detecting at least one of security threats and undesirable computer files
US8261258B1 (en) * 2005-10-28 2012-09-04 Google Inc. Common installer client
JP3839459B1 (ja) 2005-11-02 2006-11-01 任天堂株式会社 通信ゲームシステム
JP4966539B2 (ja) 2005-11-10 2012-07-04 任天堂株式会社 通信システム、ならびにそれに用いられる通信プログラムおよびアクセスポイント装置
JP4836241B2 (ja) 2005-11-10 2011-12-14 任天堂株式会社 通信システム、通信プログラム、および通信端末
JP5005210B2 (ja) 2005-11-11 2012-08-22 任天堂株式会社 ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
JP4850490B2 (ja) 2005-11-11 2012-01-11 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP4487906B2 (ja) 2005-11-16 2010-06-23 ソニー株式会社 端末機および情報処理方法
CN1979414A (zh) 2005-11-29 2007-06-13 珠海金山软件股份有限公司 一种通过互联网安装软件的方法
JP2007164699A (ja) 2005-12-16 2007-06-28 Namco Bandai Games Inc プログラム、情報記憶媒体及び携帯型ゲーム機
US8606251B2 (en) 2005-12-22 2013-12-10 Sony Corporation Mobile terminals, methods and computer program products incorporating podcast link activation control
US7920543B2 (en) 2006-01-18 2011-04-05 Qualcomm Incorporated Wireless broadband communications network using message diffusion architecture
JP4781824B2 (ja) 2006-01-18 2011-09-28 任天堂株式会社 通信システム、ならびにそれに用いられる通信プログラムおよび接続制御装置
JP4128587B2 (ja) 2006-01-19 2008-07-30 株式会社スクウェア・エニックス ゲーム装置、ランキング情報作成方法、プログラム及び記録媒体
KR100753396B1 (ko) 2006-02-17 2007-08-30 삼성전자주식회사 복수의 정보를 포함하는 방송데이터 전송방법 및 그 장치
US20070249365A1 (en) 2006-04-20 2007-10-25 Sony Ericsson Mobile Communications Ab Device, method and computer program for connecting a mobile device to a wireless network
JP2007293737A (ja) 2006-04-27 2007-11-08 Fuji Xerox Co Ltd ソフトウェア資源の登録管理方法、電子機器、プログラム
US20070271234A1 (en) 2006-05-22 2007-11-22 Ravikiran Chickmangalore N Information Exchange Among Members of a Group of Communication Device Users
JP4849968B2 (ja) 2006-06-13 2012-01-11 コニカミノルタビジネステクノロジーズ株式会社 プログラム更新管理装置
JP5020550B2 (ja) 2006-06-16 2012-09-05 株式会社バンダイナムコゲームス シールプリント機及びプリントシール製造方法
JP5285843B2 (ja) 2006-06-28 2013-09-11 任天堂株式会社 無線通信システム
JP4845612B2 (ja) 2006-07-03 2011-12-28 株式会社ソニー・コンピュータエンタテインメント 通信装置、通信中継装置およびゲーム装置
JP5051822B2 (ja) 2006-08-02 2012-10-17 任天堂株式会社 汎用遠隔制御機能を備えたゲーム装置
JP5124119B2 (ja) 2006-09-23 2013-01-23 ソフトバンクモバイル株式会社 通信端末装置、並びに通信端末装置とサーバとの間の通信方法及び通信システム
KR100797563B1 (ko) 2006-09-26 2008-01-24 삼성전자주식회사 메시지 전송 방법 및 장치
JP4974143B2 (ja) 2006-10-30 2012-07-11 京セラ株式会社 携帯通信端末
JP5362952B2 (ja) 2006-11-17 2013-12-11 任天堂株式会社 ゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法
US8192287B2 (en) * 2006-11-17 2012-06-05 Nintendo Co., Ltd. Game apparatus and storage medium storing a game program for conducting data communications with a network
JP4137156B2 (ja) 2006-12-04 2008-08-20 株式会社スクウェア・エニックス ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP4137157B2 (ja) 2006-12-07 2008-08-20 株式会社スクウェア・エニックス ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP2008153783A (ja) 2006-12-14 2008-07-03 Hitachi Ltd 無線通信システムおよび無線端末装置
JP4347335B2 (ja) 2006-12-18 2009-10-21 富士通株式会社 ネットワーク中継プログラム、ネットワーク中継装置、通信システム、ネットワーク中継方法
JP4940935B2 (ja) 2006-12-21 2012-05-30 日本電気株式会社 無線通信端末およびその基地局サーチ方法
JP5183071B2 (ja) 2007-01-22 2013-04-17 任天堂株式会社 表示制御装置および表示制御プログラム
US8811349B2 (en) 2007-02-21 2014-08-19 Qualcomm Incorporated Wireless node search procedure
JP5037172B2 (ja) 2007-02-27 2012-09-26 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
JP5285863B2 (ja) 2007-03-06 2013-09-11 任天堂株式会社 情報選択装置、情報選択プログラム、ゲーム装置およびゲームプログラム
JP5031023B2 (ja) 2007-03-15 2012-09-19 パナソニック株式会社 無線通信装置およびアクセスポイント接続方法
JP5150120B2 (ja) 2007-03-27 2013-02-20 株式会社カプコン プログラムおよびコンピュータシステム
US8260355B2 (en) 2007-03-30 2012-09-04 Access Co., Ltd. Portable communication terminal, program executed by portable communication terminal
US8195240B2 (en) 2007-04-18 2012-06-05 Cisco Technology, Inc. Hybrid time-spatial multiplexing for wireless broadcast messages through antenna radiation beam synthesis
JP5285234B2 (ja) 2007-04-24 2013-09-11 任天堂株式会社 ゲームシステム、情報処理システム
JP2008310499A (ja) 2007-06-13 2008-12-25 Nippon Telegr & Teleph Corp <Ntt> サービス提供位置情報管理方法および装置、プログラム、記録媒体
JP4424382B2 (ja) 2007-07-04 2010-03-03 ソニー株式会社 コンテンツ再生装置およびコンテンツ自動受信方法
KR101498968B1 (ko) 2007-07-05 2015-03-12 삼성전자주식회사 통신시스템에서 피어 투 피어 통신을 위한 자원 결정 방법및 장치
JP5025356B2 (ja) 2007-07-10 2012-09-12 キヤノン株式会社 通信システム、情報処理装置ならびに通信制御方法
JP2009026178A (ja) 2007-07-23 2009-02-05 Dash Plus:Kk 出会い支援装置及び出会い支援システム
JP2009033490A (ja) 2007-07-27 2009-02-12 Rohm Co Ltd 情報通信端末、無線通信装置および無線通信ネットワーク
US8484284B2 (en) * 2007-08-03 2013-07-09 Nintendo Co., Ltd. Handheld wireless game device server, handheld wireless device client, and system using same
JP5067853B2 (ja) * 2007-08-14 2012-11-07 キヤノン株式会社 データ処理装置、データ処理方法、及びコンピュータプログラム
US8078160B2 (en) 2007-08-17 2011-12-13 Kenneth Ray Quinn Wireless network notification, messaging and access device
US9288751B2 (en) 2007-08-29 2016-03-15 Qualcomm Incorporated Use of position data to select wireless access point
WO2009029108A1 (en) 2007-08-31 2009-03-05 Vulano Group, Inc. Gaming system with end user feedback for a communication network having a multi-media management
US8769639B2 (en) 2007-09-04 2014-07-01 Microsoft Corporation History-based downgraded network identification
JP2009065306A (ja) 2007-09-05 2009-03-26 Hitachi Ltd センサノード及びセンサネットワークシステム
CN101821716B (zh) * 2007-10-11 2017-07-07 高通股份有限公司 调度下载:实现后台过程以接收广播数据
JP5088550B2 (ja) 2007-10-26 2012-12-05 ソニー株式会社 電子機器、再生方法及びプログラム
JP4408929B2 (ja) 2007-11-22 2010-02-03 株式会社スクウェア・エニックス オンラインゲームシステム
JP5420833B2 (ja) 2007-11-30 2014-02-19 任天堂株式会社 ゲームシステム
JP2009147828A (ja) 2007-12-17 2009-07-02 Sony Ericsson Mobilecommunications Japan Inc 携帯端末装置、個人情報交換プログラム、個人情報交換方法、及び個人情報交換システム
JP4479801B2 (ja) * 2008-01-30 2010-06-09 ブラザー工業株式会社 情報処理装置、情報処理方法及びプログラム
JP2009205422A (ja) 2008-02-27 2009-09-10 Nintendo Co Ltd 情報処理システム
US8000721B2 (en) 2008-02-29 2011-08-16 Sony Ericsson Mobile Communications Ab Wireless communication terminals and methods that display relative direction and distance therebetween responsive to acceleration data
US20090254953A1 (en) 2008-04-02 2009-10-08 Chung-Hung Lin Wireless video and audio broadcasting device
JP5348466B2 (ja) 2008-04-28 2013-11-20 富士通株式会社 携帯端末装置、移動経路記録方法、およびプログラム
JP5243870B2 (ja) 2008-07-15 2013-07-24 任天堂株式会社 情報処理システム、情報処理装置、および情報処理プログラム
US8520570B2 (en) 2008-06-17 2013-08-27 Nintendo Co., Ltd. Data communication system, information processing apparatus and storage medium having stored thereon information processing program
JP4334602B1 (ja) 2008-06-17 2009-09-30 任天堂株式会社 情報処理装置、情報処理システム、および情報処理プログラム
CN101616018B (zh) 2008-06-27 2012-03-07 中兴通讯股份有限公司 网管软件升级的方法及装置
JP4989577B2 (ja) 2008-07-23 2012-08-01 株式会社スクウェア・エニックス ビデオゲーム処理装置、およびビデオゲーム処理プログラム
JP5745204B2 (ja) 2008-07-28 2015-07-08 株式会社バンダイナムコエンターテインメント プログラム、情報記憶媒体及びゲーム機
US8116679B2 (en) 2008-09-15 2012-02-14 Sony Ericsson Mobile Communications Ab WLAN connection facilitated via near field communication
WO2010053427A1 (en) 2008-11-05 2010-05-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for enabling games in a communication network
EP2357566B1 (en) 2008-11-17 2018-02-21 Sony Interactive Entertainment Inc. Radio communication terminal, method for controlling the same, and information storage medium
CN101425933B (zh) 2008-12-04 2012-03-21 北京握奇数据系统有限公司 一种工具软件安装方法、设备及系统
JP2010137009A (ja) 2008-12-15 2010-06-24 Nintendo Co Ltd キャリブレーションプログラム及び座標検出装置
JP5368118B2 (ja) 2009-01-16 2013-12-18 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および通信方法
JP5374170B2 (ja) 2009-01-22 2013-12-25 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5136479B2 (ja) 2009-03-17 2013-02-06 株式会社デンソーウェーブ ロボットの回転関節用配線装置
US8185165B2 (en) 2009-06-01 2012-05-22 Hewlett-Packard Development Company, L.P. Method and apparatus for adaptive power saving in a mobile computing device
US8346847B2 (en) 2009-06-03 2013-01-01 Apple Inc. Installing applications based on a seed application from a separate device
JP4871373B2 (ja) 2009-06-19 2012-02-08 任天堂株式会社 情報処理システムおよび情報処理装置
JP5674296B2 (ja) 2009-09-09 2015-02-25 任天堂株式会社 情報処理システムおよび情報処理装置
US8229962B1 (en) 2009-10-19 2012-07-24 Quest Software, Inc. Location-aware task management systems and methods
US8254985B2 (en) 2009-11-04 2012-08-28 Research In Motion Limited Methods and apparatus for use in controlling wireless transceiver operation in a mobile communication device
JP5426348B2 (ja) 2009-12-14 2014-02-26 任天堂株式会社 ネットワークシステム,通信端末および通信プログラム
JP2010113728A (ja) 2009-12-21 2010-05-20 Nintendo Co Ltd 複数の情報処理装置を用いた選択肢の選択システム
JP5574718B2 (ja) 2010-01-15 2014-08-20 任天堂株式会社 携帯端末プログラム、携帯端末装置およびシステム
JP5498199B2 (ja) 2010-02-25 2014-05-21 任天堂株式会社 情報処理システム、情報処理装置、および、通信方法
JP5498212B2 (ja) 2010-03-17 2014-05-21 任天堂株式会社 通信装置、通信制御プログラム、通信制御方法、および通信システム
US8494439B2 (en) 2010-05-04 2013-07-23 Robert Bosch Gmbh Application state and activity transfer between devices
US8224246B2 (en) 2010-05-10 2012-07-17 Nokia Corporation Device to device connection setup using near-field communication
US9693039B2 (en) 2010-05-27 2017-06-27 Nintendo Co., Ltd. Hand-held electronic device
JP2011250874A (ja) 2010-05-31 2011-12-15 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法
JP5593566B2 (ja) 2010-06-10 2014-09-24 任天堂株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP5677811B2 (ja) 2010-06-11 2015-02-25 任天堂株式会社 携帯型情報端末、携帯情報システム、携帯型情報端末制御プログラム
JP2012018657A (ja) 2010-06-11 2012-01-26 Nintendo Co Ltd 情報処理端末、情報処理システム、情報処理プログラム
JP5507350B2 (ja) 2010-06-11 2014-05-28 任天堂株式会社 携帯型情報端末、携帯型情報端末制御プログラム、携帯型情報システム、および、携帯型情報端末制御方法
JP5800483B2 (ja) 2010-07-07 2015-10-28 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5572494B2 (ja) 2010-07-07 2014-08-13 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、情報処理方法
US10039970B2 (en) 2010-07-14 2018-08-07 Adidas Ag Location-aware fitness monitoring methods, systems, and program products, and applications thereof
JP4999213B2 (ja) 2010-09-17 2012-08-15 任天堂株式会社 情報処理プログラム、携帯端末装置、システム、情報処理方法及び通信システム
JP4882022B1 (ja) 2010-12-28 2012-02-22 任天堂株式会社 通信システム、情報処理プログラム、情報処理方法、情報処理装置、情報処理システム

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153184A (ja) * 1997-08-08 1999-02-26 Seta:Kk データ配信方法および装置
JPH11282687A (ja) * 1998-03-31 1999-10-15 Hitachi Ltd プログラム自動改版方法
JP2000035885A (ja) * 1998-05-14 2000-02-02 Sega Enterp Ltd 情報処理装置、情報処理方法及び情報記録媒体並びに情報処理システム
JP2002297483A (ja) * 2001-04-03 2002-10-11 Kenwood Corp 移動体通信端末、移動体通信端末の通信方法及びプログラム
JP2003256062A (ja) * 2001-12-28 2003-09-10 Access:Kk アプリケーション等利用期限管理システム
JP2003219465A (ja) * 2002-01-17 2003-07-31 Matsushita Electric Ind Co Ltd 移動体通信システム
JP2003244316A (ja) * 2002-02-21 2003-08-29 Sony Ericsson Mobilecommunications Japan Inc 携帯通信端末およびプログラム
JP2004102925A (ja) * 2002-09-12 2004-04-02 Ntt Docomo Inc コンテンツ配信システム、コンテンツ配信方法、これらに用いて好適なコンテンツ受信装置及びプログラム
JP2004302973A (ja) * 2003-03-31 2004-10-28 Ntt Docomo Inc 端末装置及びプログラム
JP2004341618A (ja) * 2003-05-13 2004-12-02 Nec Personal Products Co Ltd プログラム・ラウンチャ、プログラム・ラウンチング方法及びプログラム
JP2005157657A (ja) * 2003-11-25 2005-06-16 Nec Corp 携帯端末におけるアプリケーションデータ管理方法及び携帯端末
JP2005251167A (ja) * 2004-01-09 2005-09-15 Microsoft Corp 管理サーバにより更新されるオンデバイスアプリケーションカタログ
JP2005242886A (ja) * 2004-02-27 2005-09-08 Dowango:Kk プログラム配信システム、管理サーバ、サーバプログラムおよびプログラムの使用を許可する方法
JP2006146306A (ja) * 2004-11-16 2006-06-08 Aruze Corp アプリケーション提供用サーバ、システムおよび提供方法
JP2007004316A (ja) * 2005-06-22 2007-01-11 Nec Corp プログラム配信システム、プログラム配信サーバ及びそれらに用いるプログラム配信方法
JP2009512239A (ja) * 2005-08-19 2009-03-19 任天堂株式会社 携帯情報端末用無線ユーザネットワーク
JP2011509541A (ja) * 2007-11-30 2011-03-24 マイクロソフト コーポレーション 移動通信装置用スリープモード
WO2009070601A1 (en) * 2007-11-30 2009-06-04 Sandra Irene Vargas Sleep mode for mobile communication device
JP2009201677A (ja) * 2008-02-27 2009-09-10 Sankyo Co Ltd 遊技用システム、遊技用サーバ、利用者端末、遊技用プログラム、および、利用者端末用プログラム
JP2009225000A (ja) * 2008-03-14 2009-10-01 Raburifiiru:Kk 折畳み型携帯電話機への情報配信制御用のプログラム
WO2009148781A1 (en) * 2008-06-06 2009-12-10 Apple Inc. User interface for application management for a mobile device
WO2010010645A1 (ja) * 2008-07-23 2010-01-28 パナソニック株式会社 無線通信装置
JP2010079546A (ja) * 2008-09-25 2010-04-08 Hitachi Software Eng Co Ltd プログラム配信更新システム
JP2010086327A (ja) * 2008-09-30 2010-04-15 Nintendo Co Ltd 起動制御プログラム、及び、起動制御装置
JP2010182309A (ja) * 2009-02-09 2010-08-19 Apple Inc アプリケーションプログラムのインテリジェントなダウンロード

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"ニンテンドー3DS、正式発表!! E3 2010リポート 〜ベールに包まれていた魅惑のハードを完全解剖", 週刊ファミ通, vol. 第25巻,第27号(通巻1125号), JPN6014022440, 24 June 2010 (2010-06-24), JP, pages 12 - 13, ISSN: 0002963061 *
"総力特集 Ubuntu 10.04のすべて 基本編 機能追加 ソフトウェアセンターを徹底解説! アプリイン", LINUX100%, vol. 100%ムックシリーズ Vol.13, JPN6014022437, 1 July 2010 (2010-07-01), JP, pages 36 - 37, ISSN: 0002823309 *
栗林 裕: "CHECK IN:Castanet[英語版] Javaアプリケーションを自動配信する注目のプッシュ型システムが", NETPC, vol. 第2巻,第7号(通巻15号), JPN6014022436, 1 July 1997 (1997-07-01), JP, pages 66 - 67, ISSN: 0002963060 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178732A (ja) * 2011-02-25 2012-09-13 Nintendo Co Ltd 情報処理装置、情報処理プログラム、情報処理方法および情報処理システム
JP2013186506A (ja) * 2012-03-05 2013-09-19 Canon Inc 記録システム、記録装置、及び通信方法
JP2013235394A (ja) * 2012-05-08 2013-11-21 Softbank Mobile Corp 情報端末装置
JP2013248292A (ja) * 2012-06-01 2013-12-12 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システムおよび表示方法
JP2013257717A (ja) * 2012-06-12 2013-12-26 Sony Computer Entertainment Inc 情報処理装置
JP5363671B1 (ja) * 2012-08-19 2013-12-11 春佳 西守 携帯端末にダウンロードされるコンピュータプログラムおよび方法
JP2014099084A (ja) * 2012-11-15 2014-05-29 Nintendo Co Ltd 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法
WO2015022791A1 (ja) * 2013-08-16 2015-02-19 株式会社コナミデジタルエンタテインメント 管理装置、管理方法、端末装置、制御方法、及びプログラム
JP2015225655A (ja) * 2014-05-27 2015-12-14 任天堂株式会社 情報処理装置、情報処理システム、情報処理方法、および情報処理プログラム
US9361091B2 (en) 2014-05-27 2016-06-07 Nintendo Co., Ltd. Information processing apparatus, information processing system, information processing method, and non-transitory computer-readable storage medium having stored therein an information processing program
US9715381B2 (en) 2014-05-27 2017-07-25 Nintendo Co., Ltd. Information processing apparatus, information processing system, information processing method, and non-transitory computer-readable storage medium having stored therein an information processing program
JP2015225629A (ja) * 2014-05-30 2015-12-14 株式会社コナミデジタルエンタテインメント 情報処理装置、プログラム、情報処理システム
US10350492B2 (en) 2015-10-27 2019-07-16 Nintendo Co., Ltd. Server, information processing system, storage medium storing information processing program, and information processing method
US11222040B2 (en) 2015-10-27 2022-01-11 Nintendo Co., Ltd. Information processing system, server, storage medium storing information processing program, and information processing method
JP2018036745A (ja) * 2016-08-30 2018-03-08 コベルコ建機株式会社 ソフトウェアの更新装置及びソフトウェアの更新方法
WO2019009020A1 (ja) * 2017-07-04 2019-01-10 日本電気通信システム株式会社 ソフトウェア更新装置
JPWO2019009020A1 (ja) * 2017-07-04 2020-05-21 日本電気通信システム株式会社 ソフトウェア更新装置
US10733299B2 (en) 2017-10-06 2020-08-04 Nintendo Co., Ltd. System and method for updating a plurality of information processing apparatuses in a local network using received update program
US11491685B2 (en) 2018-08-22 2022-11-08 Toray Industries, Inc. Production method for prepreg, prepreg tape, and fiber reinforced composite material, and prepreg production device

Also Published As

Publication number Publication date
CN102279759A (zh) 2011-12-14
EP2395428A3 (en) 2012-06-13
US9588748B2 (en) 2017-03-07
EP2395428B1 (en) 2021-11-03
US10296319B2 (en) 2019-05-21
US20170131990A1 (en) 2017-05-11
EP2395428A2 (en) 2011-12-14
US20110307884A1 (en) 2011-12-15

Similar Documents

Publication Publication Date Title
JP6291537B2 (ja) 情報処理端末、情報処理システム、情報処理プログラム
JP2012018657A (ja) 情報処理端末、情報処理システム、情報処理プログラム
JP5507350B2 (ja) 携帯型情報端末、携帯型情報端末制御プログラム、携帯型情報システム、および、携帯型情報端末制御方法
US8990299B2 (en) Information processing apparatus, method of controlling information processing apparatus, and recording medium storing control program
JP5671288B2 (ja) 情報処理装置、情報処理プログラム、情報処理方法及び情報処理システム
US20230062039A1 (en) Information processing device and file recording method
US9220979B2 (en) Electronic device, recording medium management method and program
CN102279759B (zh) 信息处理终端、信息处理系统、信息处理方法
US20220088494A1 (en) Information processing device and installation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140731

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150311

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150318

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20150417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160512