以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1に示すゲームシステム1は、テレビジョン受像器等に代表される据置型の表示装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4および端末装置7を含む。このゲームシステム1は、端末装置7を用いたゲーム操作に基づいて、ゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラムのようなアプリケーションプログラム)が記憶されている。ゲーム装置3は、その前面に設けられた挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによって情報処理(ゲーム処理)を実行する。
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。
なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
端末装置7は、少なくとも、ゲーム装置3との間でデータを送受信する。ユーザ(プレイヤ)は、端末装置7を手に持って動かしたり、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、LCD51のような表示手段と、タッチパネル52、アナログスティック53A、53Bおよび操作ボタン54のような入力手段とを備える。たとえば、端末装置7は、Bluetooth(登録商標)の技術を用いた無線通信によってゲーム装置3と通信可能である。ただし、端末装置7とゲーム装置3とは有線で接続されてもよい。端末装置7は、ゲーム装置3で生成された画像(たとえばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。また、端末装置7は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に送信する。
なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、たとえばEL(Electro Luminescence)を利用した表示装置等、他の任意の表示装置を有していてもよい。
また、図1では、ゲームシステム1に含まれる端末装置7は1つであるが、ゲーム装置3は複数の端末装置7と通信可能であり、所定台数の端末装置7を同時に使用することによって複数人でゲームをプレイすることが可能である。
図2は、ゲーム装置3の電気的な構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。このシステムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。
揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に、読み出したデータを書き込む。
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU11b、DSP11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像データを生成する。ただし、VRAM11dに、ポリゴンデータやテクスチャデータ等のデータが記憶され、GPU11bは、そのデータを用いて画像データを生成する。本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置7に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ2のスピーカから出力するゲーム音声と、端末装置7のスピーカから出力するゲーム音声との両方が生成される。以下では、テレビ2から出力されるゲーム音声を「テレビ用ゲーム音声」と呼び、端末装置7から出力されるゲーム音声を「端末用ゲーム音声」と呼ぶことがある。
上記のように、ゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声(効果音や音楽なども含む。以下、同じ。)のデータは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データを、AVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音声が出力される。
また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。また、入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。
入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置(たとえば他のゲーム装置や、各種サーバ等)と通信することができる。
入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。
また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。
CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。
また、ゲーム装置3は、端末装置7との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ11aは、端末装置7へゲーム画像(端末用ゲーム画像)を送信する場合、GPU11bが生成したゲーム画像のデータをコーデックLSI27へ出力する。コーデックLSI27は、入出力プロセッサ11aからの画像データに対して所定の圧縮処理を行う。端末通信モジュール28は、端末装置7との間で無線通信を行う。したがって、コーデックLSI27によって圧縮された画像データは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。本実施形態では、コーデックLSI27は、たとえばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。
なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には圧縮せずに画像データを送信する構成であってもよい。
また、端末通信モジュール28は、たとえばWi−Fiの認証を受けた通信モジュールであり、たとえばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いて、端末装置7との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
さらに、一例として、ゲーム画像が生成された場合について説明してあるが、仮想ゲーム以外のアプリケーションの画像データについても同様に圧縮処理が施された後、端末装置7に送信される。仮想ゲームとは、仮想空間に配置したキャラクタ等を操作することによりプレイするコンピュータゲームないしビデオゲームを意味する。
また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。ただし、音声データは、外部から取得(ダウンロード)してもよい。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。
また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。
したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。
なお、端末装置7からの画像データは、図示しないカメラで撮影された撮影画像に対応する画像データなどを含み、入力端末画像7からの音声データは、マイク89(図3参照)によって検出されたユーザが発生する音(音声ないし拍手等)や端末装置7の周辺の音源からの音(テレビ2のスピーカ2aからの音声ないし音楽等)に対応する音声データなどを含む。
一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
また、ゲーム装置3は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。
メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。たとえば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、たとえば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。
図3は、端末装置7の電気的な構成を示すブロック図である。図3に示すように、端末装置7は、図1に示した構成の他、タッチパネルコントローラ81、ユーザインタフェースコントローラ(UIコントローラ)85、コーデックLSI86、スピーカ87、サウンドIC88、マイク89、無線モジュール90、アンテナ91、フラッシュメモリ93、リモコンIC94および赤外LED95を備える。これらの電子部品は、電子回路基板上に実装されてハウジング内に収納される。
なお、図示は省略するが、端末装置7には、内蔵の電池または外部電源からの電力が供給される。
UIコントローラ85は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ85は、タッチパネルコントローラ81、アナログスティック53(アナログスティック53Aおよび53B)、および操作ボタン54に接続される。また、UIコントローラ85は、コーデックLSI86に接続される。
タッチパネルコントローラ81は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ81は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ85へ出力する。タッチ位置データは、タッチパネル52の入力面においてタッチ入力(入力操作)が行われた位置(タッチ位置)の座標を表す。
なお、タッチパネルコントローラ81は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ85からタッチパネルコントローラ81へは、タッチパネル52に対する各種の制御指示が出力される。
アナログスティック53は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ85へ出力する。また、操作ボタン54は、各種の操作ボタンに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ85へ出力する。
UIコントローラ85は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、および操作ボタンデータを含む操作データをコーデックLSI86に出力する。
コーデックLSI86は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI86には、LCD51、サウンドIC88、無線モジュール90、フラッシュメモリ93およびリモコンIC94が接続される。また、コーデックLSI86はCPU97と内部メモリ98を含む。
端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ93に格納されたプログラムを内部メモリ98に読み出してCPU97が実行することで、端末装置7が起動する。ただし、端末装置7は、ゲーム装置3からの動作データに基づいて起動または停止する。ただし、この実施形態では、端末装置7の停止は、一部の回路コンポーネント(UIコントローラ85、コーデックLSI86および無線モジュール90)に電源が供給されているスリープの状態を意味する。また、内部メモリ98の一部の領域はLCD51のためのVRAMとして使用される。
サウンドIC88は、スピーカ87およびマイク89に接続され、スピーカ87およびマイク89への音声データの入出力を制御する回路である。すなわち、コーデックLSI86から音声データを受け取った場合、サウンドIC88は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ87へ出力し、スピーカ87から音を出力させる。また、マイク89は、端末装置7に伝わる音を検知して、当該音を示す音声信号をサウンドIC88へ出力する。サウンドIC88は、マイク89からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI86へ出力する。
コーデックLSI86は、カメラからの画像データ、マイク89からの音声データ、および、UIコントローラ85からの操作データを、無線モジュール90を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI86は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール90に出力される。
無線モジュール90にはアンテナ91が接続されており、無線モジュール90はアンテナ91を介してゲーム装置3へ上記送信データを送信する。無線モジュール90は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール90は、たとえばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
リモコンIC94は、テレビ2に送信するための操作データ(以下、「リモコン操作データ」という。)を所定の送信フォーマットデータに従って生成する。ただし、所定の送信フォーマットデータは、テレビ2の種類(製造元、機種など)によって決定される。詳細な説明は省略するが、所定の送信フォーマットデータは、ゲーム装置3から取得され、フラッシュメモリ93に記憶されており、端末装置7が、テレビ2のリモコン装置として機能する場合に、内部メモリ98に読み込まれる。そして、リモコンIC94は、所定のフォーマットデータに従って生成したリモコン操作データを、赤外LED95から出力(送信)する。
以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった入力手段を備えるが、他の実施形態においては、これらの入力手段に代えて、または、これらの入力手段とともに、他の入力手段を備える構成であってもよい。たとえば、端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む。)を算出するためのセンサとして、磁気センサ、加速度センサ、およびジャイロセンサの少なくとも1つを備えるようにしてよい。
また、端末装置7は、カメラおよびマイク89を備える構成であるが、他の実施形態においては、カメラおよびマイク89を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
たとえば、上述したゲーム装置3には、1つまたは複数のアプリケーションプログラムが記憶され、選択された1つのアプリケーションプログラムを実行することができる。この実施例では、テレビ番組ガイドのような特定のサービスの提供を受ける所定のアプリケーションプログラムが実行される場合について説明する。以下、テレビ番組ガイドについてのアプリケーションプログラムを「番組ガイドプログラム」と言うことがある。
テレビ番組ガイドは、たとえば、現在時刻から一週間分のテレビ番組表を提示するサービスである。ただし、ユーザが選択した地域についてのテレビ番組表が表示される。このテレビ番組表のデータは、ゲーム装置3(番組ガイドプログラム)からの要求に応じて、テレビ番組ガイドのサービスを提供する所定のサーバから送信(配信)される。
たとえば、テレビ番組表は、端末装置7のLCD51に表示される。したがって、ユーザは、テレビ2を視聴しながら、端末装置7を用いてテレビ番組表を見えることができる。また、端末装置7をテレビ2のリモコン装置として機能させることにより、テレビ2のチャネルを変更したり、スピーカ2aの音量を調整したり、入力切換を行ったりすることができる。
詳細な説明は省略するが、番組ガイドプログラムは、ウェブブラウザのアプリケーションプログラムと同様に、World Wide Web の利用に供するブラウザの機能を有する。具体的には、ウェブページを画面に出力したり、ハイパーリンク(リンク)をたどったりするなどの機能がある。したがって、たとえば、テレビ番組表の時間帯(日時を含む。)を変更したり、テレビ番組表に表示された文字列に設定されたリンク先にアクセスしたり、テレビ番組表に表示された文字列についてキーワード検索したりなどすることができる。
なお、ウェブブラウザの例としては、Mozilla Firefox(登録商標), Google Chrome(登録商標), Internet Explorer(登録商標), Opera(登録商標), Safari(登録商標)等の一般的なウェブブラウザがある。
また、番組ガイドプログラムは、ウェブブラウザの機能に加えて、その機能とは独立した異なる機能が追加(実装)されている。ただし、この実装された機能(拡張機能)は、たとえば、ウェブブラウザが表示または処理するコンテンツから特別に拡張されたJavaScript(登録商標)や特別なHTMLタグ属性を使って制御される。
具体的には、(1)音声認識による番組照合機能、(2)赤外線送信によるリモコン操作機能および(3)ブラウザの機能では困難な表現を行う描画処理機能などの拡張機能が実装される。
(1)音声認識による番組照合機能
テレビ2のスピーカ2aから出力される音声を端末装置7のマイク89で検出し、検出した音声に対応する音声データを記録(録音)する。そして、記録した音声データがゲーム装置3から所定のサーバに送信され、当該所定のサーバで照合することにより、視聴中の番組が特定される。その結果がゲーム装置3に送信され、ゲーム装置3から端末装置7に送信される。したがって、たとえば、照合結果を示す画面(ウェブページ)が端末装置7のLCD51に表示されたり、照合結果を示す音声が端末装置7のスピーカ87から出力されたりする。
(2)赤外線送信によるリモコン操作機能
上述したように、端末装置7をテレビ2のリモコン装置として機能させる場合に、端末装置7に設けた赤外LED95から赤外線信号(リモコン操作データ)を送信し、テレビ2のチャネルを変更するなどの操作を行うことができる。リモコン操作データを送信する機能やテレビ2の種類(製造元、機種など)を設定する機能が拡張機能として実装されている。
(3)ブラウザの機能では困難な表現を行う描画処理機能
透過処理を含む滑らかなアニメーションなどを表示する場合には、負荷の高い描画処理を実行する必要がある。したがって、負荷の高い描画処理のように、ブラウザの機能では困難な表現を行う描画処理については、その一部がウェブブラウザの描画機構から独立した描画機構を使って実装される。これによって、ウェブブラウザのみでは不可能なリッチな表現が実現可能にされる。
なお、ここでは、簡単のため、番組ガイドプログラムが備える3つの拡張機能について説明したが、番組ガイドプログラムは多数の拡張機能を備えている。ただし、拡張機能の内容や個数は任意に設定することができる。
図4は、上述したゲーム装置3を用いたネットワークシステム100の一例を示す図である。図4に示すように、ネットワークシステム100は、アカウントサーバ102およびホワイトリスト管理サーバ(以下、単に「管理サーバ」という。)104を含み、各サーバ(102、104)は、インターネット106を介して複数のゲーム装置3に接続される。また、インターネット106には、特定のサービスを提供するサーバ(以下、「サービス提供サーバ」という。)108が複数接続される。
なお、図4に示す例では、複数のゲーム装置3を示してあるが、ゲーム装置3は少なくとも1台接続されればよい。
アカウントサーバ102は、アクセスしてきたゲーム装置3が正規に登録されているかどうかを判断し、正規に登録されている場合に電子証明書(以下、「サービストークン」という。)を発行し、当該ゲーム装置3に送信するためのサーバである。たとえば、各ゲーム装置3に付与された識別情報(装置ID)がアカウントサーバ102に登録され、ゲーム装置3は、サービストークンの送信要求を送信するときに、自身の装置IDも送信する。アカウントサーバ102は、ゲーム装置3から送信された装置IDが登録されているかどうかを判断する。
管理サーバ104は、ゲーム装置3が番組ガイドプログラムを実行することにより、インターネット106を介してサービス提供サーバ108を含む外部の端末からコンテンツを取得する際に、アクセス可能なサーバの識別情報(この実施例では、ドメイン名)を記載したリスト(ホワイトリスト)を管理するとともに、アカウントサーバ102に正規に登録されているゲーム装置3に対してホワイトリストを配信するためのサーバである。この管理サーバ104は、上述したテレビ番組ガイドのような特定のサービスを提供する提供者によって直接的にまたは間接的に管理されるサーバである。したがって、番組ガイドプログラムを実行する場合に、この番組ガイドプログラムによってアクセス可能なサービス提供サーバ108のドメインを記載したホワイトリストを、特定のサービスを提供する提供者すなわち特定のサービスの実行に際してコンテンツを提供する提供者が管理する。
サービス提供サーバ108は、上述したように、特定のサービスを提供するためのサーバである。この実施例では、特定のサービスは、上述したテレビ番組ガイドのみならず、ニュースや天気予報の提供、各種の検索サービス、地図の検索および表示、翻訳、辞書機能による検索、公共交通機関の時刻検索、宣伝広告、ネットショッピング、ネットバンキング、画像(静止画、動画)の配信などの様々なサービスである。ただし、一台のサービス提供サーバ108が複数のサービスを提供することもある。
たとえば、ゲーム装置3の電源がオンされると、図示は省略するが、メインメニュー画面が表示される。メインメニュー画面では、ゲーム装置3に記憶された各種のアプリケーションのうちのいずれか1つを実行することを選択することができる。以下、メインメニュー画面において、テレビ番組ガイドのアプリケーション(番組ガイドプログラム)を実行することが選択された場合について説明する。
図5に示すように、番組ガイドプログラムが起動(実行を開始)されると、コンテンツの要求および表示に先立って、認証処理およびホワイトリストの取得処理が実行される。まず、ゲーム装置3は、サービストークンの送信要求をアカウントサーバ102に送信する。
アカウントサーバ102は、サービストークンの送信要求を受信すると、要求元のゲーム装置3について認証(認証処理)を行う。上述したように、アカウントサーバ102は、正規に登録されたゲーム装置3であるかどうかを認証する。正規に登録されたゲーム装置3であれば、アカウントサーバ102は、サービストークンのデータを要求元のゲーム装置3に送信する。その後、アカウントサーバ102は、サービストークンの送信要求を受信するための待機状態に戻る。
図示は省略するが、正規に登録されたゲーム装置3でなければ、たとえば、登録されていない旨のエラーメッセージを要求元のゲーム装置3に送信する。
ゲーム装置3は、サービストークンのデータを受信すると、続いて、ホワイトリストの送信要求を管理サーバ104に送信する。このとき、ゲーム装置3は、先に取得したサービストークンのデータも送信する。
管理サーバ104は、サービストークンのデータとともにホワイトリストの送信要求を受信すると、サービストークンを検証する。つまり、正しい内容のサービストークンが添付されているかどうかが確認される。正しい内容のサービストークンが添付されている場合には、ホワイトリストのデータを要求元のゲーム装置3に送信する。そして、管理サーバ104は、ホワイトリストの送信要求を受信するための待機状態に戻る。
ただし、管理サーバ104は、サービストークンのデータが付加されていない場合やサービストークンの内容が正しくない場合には、要求元のゲーム装置3にホワイトリストのデータを送信しない。
ゲーム装置3は、ホワイトリストのデータを受信すると、図6に示すように、コンテンツを要求する。番組ガイドプログラムが起動された当初では、コンテンツとしてフロントページが自動的に要求されるが、それ以降では、フロントページなどのウェブページに表示されたアイコンや文字列に設定されたリンクが示すウェブページやキーワード検索の結果についてのウェブページ等が、ユーザの入力に応じて要求される。
コンテンツの要求があると、ゲーム装置3は、ホワイトリストをチェックする。この実施例では、要求するウェブページについてのURLに記述されたドメイン名がホワイトリストに記載されているかどうかが判断される。つまり、要求するウェブページの提供元(配信元)であるサービス提供サーバ108にアクセス可能かどうかが判断される。
ウェブページについてのURLに記述されたドメイン名がホワイトリストに記載されている場合には、番組ガイドプログラムに従って当該URLが示すコンテンツの送信要求を送信する。すると、所定のサービス提供サーバ108(ここでは、「サービス提供サーバA」という。)はコンテンツの送信要求を受信する。ただし、サービス提供サーバAは、上記のURLに記述されたドメイン名(ホスト名を含む場合がある。)が示すサーバ(コンピュータ)である。
サービス提供サーバAは、コンテンツの送信要求を受信すると、要求元のゲーム装置3にそのコンテンツ(ここでは、ウェブページのソースデータ)を送信する。ゲーム装置3は、コンテンツを受信し、コンテンツを出力する。具体的には、番組ガイドプログラムは、ウェブページのソースデータを解析し、解析したデータを整理して、ウェブページについての画像データを生成する。そして、ゲーム装置3は、生成された画像データを端末装置7に送信する。したがって、端末装置7のLCD51にテレビ番組ガイドのウェブページが表示される。
一方、ウェブページについてのURLに記述されたドメイン名がホワイトリストに記載されていない場合には、コンテンツの要求をキャンセルするかどうかをユーザに問い合わせる。たとえば、ゲーム装置3は、コンテンツの要求をキャンセルするかどうかの問い合わせ画面についての画像データを端末装置7に送信する。ユーザが、端末装置7を用いてコンテンツの要求をキャンセルすることを選択すると、コンテンツの要求がキャンセルされ、番組ガイドプログラムの処理が継続される。
一方、ユーザが、コンテンツの要求をキャンセルしないことを選択すると、図7に示すように、ゲーム装置3では、番組ガイドプログラムが休止(一時停止)される。そして、ウェブブラウザが起動され、このウェブブラウザによってコンテンツの送信要求が送信される。すると、所定のサービス提供サーバ108(ここでは、「サービス提供サーバB」という。)はコンテンツの送信要求を受信する。ただし、サービス提供サーバBは、上記のURLに記述されたドメイン名(ホスト名を含む場合がある。)が示すコンピュータである。
つまり、ゲーム装置3には、ウェブブラウザのアプリケーションプログラム(以下、「ブラウザプログラム」ということがある。)も記憶されている。このゲーム装置3に記憶されるウェブブラウザは、ゲーム装置3および端末装置7で使用するために開発されたものであり、上記の一般的なウェブブラウザと同等の機能を有している。
サービス提供サーバBは、コンテンツの送信要求を受信すると、要求元のゲーム装置3に要求されたコンテンツ(上述したように、ここでは、ウェブページのソースデータ)を送信する。ゲーム装置3は、コンテンツを受信し、コンテンツを出力する。具体的には、ウェブブラウザは、ウェブページのソースデータを解析し、解析したデータを整理して、ウェブページについての画像データを生成する。そして、ゲーム装置3は、生成された画像データを端末装置7に送信する。したがって、端末装置7のLCD51にウェブブラウザで生成された画像データに対応する画像が表示される。つまり、ホワイトリストに記載されていないドメイ名のサービス提供サーバ108にもアクセスして、当該サービス提供サーバ108からウェブページのソースデータ(コンテンツ)を取得することができる。
その後、ブラウザプログラムが終了されるまでは、コンテンツの要求があれば、ブラウザプログラムに従ってコンテンツの送信要求を送信する。すると、サービス提供サーバBはコンテンツの送信要求を受信する。サービス提供サーバBは、コンテンツの送信要求を受信すると、要求元のゲーム装置3に要求されたコンテンツを送信する。ゲーム装置3は、コンテンツを受信し、コンテンツを出力する。
図示は省略するが、ブラウザプログラムが終了されると、休止中の番組ガイドプログラムが再開される。
このように、ウェブページについてのURLに記述されたドメイン名がホワイトリストに記載されていない場合に、ユーザがコンテンツの要求をキャンセルしないことを選択すると、番組ガイドプログラムを休止し、ウェブブラウザを起動して、当該ウェブページを取得するようにしてある。これは、ウェブブラウザは番組ガイドプログラムのような拡張機能を有していないため、拡張機能が不正に使用されることによるリスクを回避することができるからである。
なお、通常、フロントページについてのURLに記述されたドメイン名はホワイトリストに記載されているため、番組ガイドプログラムの起動時に表示されるフロントページが特定のサービス(テレビ番組ガイド)を提供するサービス提供サーバAから取得されないことは考え難いが、番組ガイドプログラムが不正に改変(改竄)されてしまう場合も有り得るため、フロントページを取得する場合であっても、ホワイトリストを用いてチェックするようにしてある。
図8は、図2に示したゲーム装置3のメインメモリ(11e,12)のメモリマップ400の一例を示す。図8に示すように、メインメモリ(11e,12)は、プログラム記憶領域402およびデータ記憶領域404を含む。プログラム記憶領域402には、所定のアプリケーションプログラム(この実施例では、番組ガイドプログラム412)のような情報処理プログラム等が記憶される。たとえば、情報処理プログラム等は、ゲーム装置3に電源が投入された後の適宜のタイミングで、ゲーム装置3に内蔵されたフラッシュメモリ17やディスクドライブ14に挿入された光ディスク4からその一部または全部が読み込まれてメインメモリ(11e,12)に記憶される。
なお、情報処理プログラム等は、ゲーム装置3の外部装置から(たとえばインターネット106を介して)取得されてもよい。また、光ディスク4から読み込んだり、外部装置から取得したりする情報処理プログラム等については、その一部のプログラムを、ゲーム装置3内に予め記憶しておいてもよい。
この実施例では、プログラム記憶領域402には、メインメニュープログラム410、番組ガイドプログラム412、通信プログラム414およびブラウザプログラム416などが記憶される。
メインメニュープログラム410は、メインメニュー画面を表示するとともに、メインメニューで選択された1つのアプリケーションを実行するためのプログラムである。たとえば、メインメニュー画面では、番組ガイドプログラム412、ブラウザプログラム416または仮想ゲームなどの他のアプリケーションプログラム(ブラウザプログラム416を除く。以下、同様である。)の実行を選択することができる。
番組ガイドプログラム412は、メイン処理プログラム412a、画像生成プログラム412b、画像表示プログラム412cおよびブラウザ起動プログラム412dなどによって構成される。
メイン処理プログラム412aは、番組ガイドプログラム412のメインルーチンを処理するためのプログラムである。画像生成プログラム412bは、受信したウェブページのソースデータを解析し、解析したデータを整理して、ウェブページの画像データを生成するためのプログラムである。画像表示プログラム412cは、画像生成プログラム412bに従って生成された画像データを端末装置7に送信するためのプログラムである。ただし、上述したように、端末装置7に送信される画像データには圧縮処理が施される。また、場合によっては、画像表示プログラム412cは、テレビ2に画像データを送信(出力)する。かかる場合には、画像データに対応するウェブページがテレビ2に表示される。ブラウザ起動プログラム412dは、ウェブブラウザのアプリケーションプログラム(ブラウザプログラム416)の起動を指示するためのプログラムである。
図示は省略するが、番組ガイドプログラム412には、上述した拡張機能についてのプログラムも記憶される。
通信プログラム414は、インターネット106のようなネットワークを介してコンピュータ(他のゲーム装置3を含む。)やサーバ(102、104、108など)と通信するためのプログラムである。ブラウザプログラム416は、上述したように、ゲーム装置3および端末装置7用のウェブブラウザのアプリケーションプログラムである。
なお、プログラム記憶領域402には、音生成プログラム、音出力プログラムおよびバックアッププログラムなども記憶される。
図9に示すように、データ記憶領域404には、受信データ430、送信データ432、ホワイトリストデータ434およびリクエストデータ436などが記憶される。
受信データ430は、端末装置7から受信される各種のデータである。受信データ430は、操作データ430aを含む。端末装置7がゲーム装置3に複数接続される場合には、各端末装置7に対応して、操作データ430aも複数記憶される。
操作データ430aは、端末装置7に対するユーザの操作を表すデータであり、上述したように、操作ボタンデータ、スティックデータ、およびタッチ位置データを含む。ただし、操作データ430aは、端末装置7を操作するユーザの操作を表すものであればよく、上記各データのいずれか1つのみを含むものであってもよい。操作データ430aは、端末装置7から送信されてゲーム装置3において取得され、メインメモリ(11e,12)に記憶される。
なお、メインメモリ(11e,12)には、最新の(最後に取得された)ものから順に所定個数の操作データが記憶されてもよい。
送信データ432は、画像データ432aおよび音声データ432bなどを含む。画像データ432aは、番組ガイドプログラム412(ブラウザプログラム416も含む。)の処理によって生成され、端末装置7で出力される端末用ゲーム画像(この実施例では、ウェブページ)の画像データなどである。音声データ432bは、番組ガイドプログラム412(ブラウザプログラム416も含む。)の処理によって生成され、端末装置7で出力される端末用ゲーム音声の音声データやBGMや効果音についての音声データである。
ホワイトリストデータ434は、管理サーバ104から取得(ダウロード)したホワイトリストのデータであり、番組ガイドプログラム412を実行する度に記憶(更新)される。
リクエストデータ436は、番組ガイドプログラム412を休止し、ウェブブラウザを起動して要求するコンテンツ(ウェブページ)についてのデータ(URLのデータ)である。
図示は省略するが、データ記憶領域404には、他のデータが記憶されたり、他のフラグやカウンタ(タイマ)が設けられたりする。
図10は、図3に示した端末装置7の内部メモリ98のメモリマップ500の一例を示す。図10に示すように、内部メモリ98は、データ記憶領域504を含む。
データ記憶領域504には、送信データ530および受信データ532などが記憶される。送信データ530は、操作データ530aを含む。これは、上述した受信データ430に含まれる操作データ430aと同じ内容であるため、重複した説明は省略する。同様に、受信データ532は、画像データ532aおよび音声データ532bなどを含む。これらは、上述した送信データ432に含まれる画像データ432aおよび音声データ432bと同じ内容であるため、重複した説明は省略する。
図11は、図2に示したゲーム装置3に設けられるCPU10のメインメニュー処理を示すフロー図である。ゲーム装置3の電源が投入されると、メインメニュー処理の実行に先だって、CPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ(11e,12)等の各ユニットが初期化される。そして、光ディスク4やフラッシュメモリ17に記憶されたメインメニュープログラム410、番組ガイドプログラム(情報処理プログラム)412、通信プログラム414およびブラウザプログラム416がメインメモリ(11e、12)に読み込まれ、CPU10によってメインメニュープログラム410の実行が開始される。ただし、メインメニュープログラム410以外のプログラムは、必要に応じてメインメモリ(11e、12)に読み込むようにしてもよい。
なお、図11(後述する図12−図17についても同様。)に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、本実施形態では、図11−図17に示すフロー図の各ステップの処理をCPU10が実行するものとして説明するが、CPU10以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
図11に示すように、CPU10はメインメニュー処理を開始すると、ステップS1で、メインメニュー画面を表示する。詳細な説明は省略するが、メインメニュー画面は、テレビ2および端末装置7のLCD51の少なくとも一方に表示される。
次のステップS3では、番組ガイドプログラム412の実行かどうかを判断する。つまり、CPU10は、メインメニュー画面において、番組ガイドプログラム412の実行が指示されたかどうかを判断する。ステップS3で“YES”であれば、つまり番組ガイドプログラム412の実行であれば、ステップS5で、後述する番組ガイドプログラム412の処理(図12および図13参照)を実行して、ステップS1に戻る。
一方、ステップS3で“NO”であれば、つまり番組ガイドプログラム412の実行でなければ、ステップS7で、仮想ゲームなどの他のアプリケーションプログラムの実行かどうかを判断する。つまり、CPU10は、メインメニュー画面において、仮想ゲームなどの他のアプリケーションの実行が指示されたかどうかを判断する。
ステップS7で“YES”であれば、つまり他のアプリケーションプログラムの実行であれば、ステップS9で、当該他のアプリケーションの処理を実行して、ステップS1に戻る。一方、ステップS7で“NO”であれば、つまり他のアプリケーションプログラムの実行でなければ、ステップS11で、ブラウザプログラム416の実行かどうかを判断する。つまり、CPU10は、メインメニュー画面において、ブラウザプログラム416を実行することをユーザによって指示されたり、番組ガイドプログラム412から指示されたりしたかどうかを判断する。
ステップS11で“YES” ブラウザプログラム416の処理(図16および図17参照)を実行して、ステップS1に戻る。一方、ステップS11で“NO”であれば、つまりブラウザプログラム416の実行でなければ、ステップS15で、メインメニュー画面上においてカーソルを移動させるなどの他の処理を実行する。
そして、ステップS17では、終了かどうかを判断する。たとえば、ゲーム装置3の電源をオフする指示があるかどうかを判断する。ステップS17で“NO”であれば、つまり終了でなければ、そのままステップS3に戻る。一方、ステップS17で“YES”であれば、つまり終了であれば、メインメニュー処理を終了する。
なお、図示は省略するが、後述するように、番組ガイドプログラム412の処理において、ブラウザプログラム416を実行(起動)することが指示された場合には、番組ガイドプログラム412の処理が休止されると、メインメニューが表示されずに、そのままブラウザプログラム416の処理が開始される。
図12および図13は、図11に示したステップS5の番組ガイドプログラム412の処理を示すフロー図である。図12に示すように、CPU10は、番組ガイドプログラム412の処理を開始すると、ステップS31で、初期処理を実行する。ここでは、番組ガイドプログラム412のメインのウインドウ(図示せず)についての生成処理が実行されたり、強制終了フラグ438がオフされたりする。
次のステップS33では、サービストークンの送信要求をアカウントサーバ102に送信する。このとき、当該ゲーム装置3の装置IDも送信される。アカウントサーバ102は、サービストークンの送信要求を受信すると、認証処理を行い、正規に登録されたゲーム装置3であれば、サービストークンのデータを要求元のゲーム装置3に送信する。
図12に戻って、ステップS35では、サービストークンのデータを受信したかどうかを判断する。ステップS35で“NO”であれば、つまりサービストークンのデータを受信していなければ、同じステップS35に戻る。
なお、図12に示す例では、ステップS35で“NO”の場合には、同じステップS35に戻るようにしてあるが、実際には、タイムオーバなどにより、サービストークンの受信(取得)に失敗した場合には、番組ガイドプログラム412が終了される。このことは、後述する、ホワイトリストのデータやソースデータを受信(取得)したかどうかを判断する場合(S39、S49、S99)についても同様である。
一方、ステップS35で“YES”であれば、つまりサービストークンのデータを受信すれば、ステップS37で、ホワイトリストの送信要求を管理サーバ104に送信する。このとき、サービストークンのデータも送信される。管理サーバ104は、サービストークのデータとともにホワイトリストの送信要求を受信すると、サービストークを検証し、サービストークの内容が正しい場合に、ホワイトリストのデータを要求元のゲーム装置3に送信する。
図12に戻って、ステップS39では、ホワイトリストのデータを受信したかどうかを判断する。ステップS39で“NO”であれば、つまりホワイトリストのデータを受信していなければ、そのままステップS39に戻る。一方、ステップS39で“YES”であれば、つまりホワイトリストのデータを受信すれば、ステップS41で、受信したホワイトリストのデータを記憶する。つまり、ホワイトリストデータ434が記憶(更新)される。
続くステップS43で、番組ガイドプログラム412についてのフロントページの表示を要求する。そして、ステップS45で、ホワイトリストにドメイン名が記載されているかどうかを判断する。ただし、ドメイン名は、フロントページを取得するためのURLに記述されたものである。
ステップS45で“NO”であれば、つまりホワイトリストにドメイン名が記載されていなければ、ステップS46で、ダミーの白紙ページの画像データを端末装置7に送信した後に、図13に示すように、番組ガイドプログラム412の処理を終了して、図11に示したメインメニューの処理にリターンする。一方、ステップS45で“YES”であれば、つまりホワイトリストにドメイン名が記載されていれば、図13に示すステップS47で、フロントページの送信要求を送信する。ここでは、CPU10は、フロントページに設定されたURLに従ってサービス提供サーバ108に当該フロントページの送信要求を送信する。したがって、フロントページの送信要求を受信したサービス提供サーバ108は、当該フロントページについてのソースデータを要求元のゲーム装置3に送信する。
図13に戻って、ステップS49では、ソースデータを受信したかどうかを判断する。ステップS49で“NO”であれば、つまりソースデータを受信していなければ、同じステップS49に戻る。一方、ステップS49で“YES”であれば、つまりソースデータを受信すれば、ステップS51で、ソースデータを解析し、ステップS53で、解析したデータを整理して、ステップS55で、フロントページの画像データを生成する。
そして、ステップS57で、フロントページの画像データを端末装置7に送信する。具体的に説明すると、生成されたフロントページの画像データは、CPU10によってコーデックLSI27に送られ、コーデックLSI27によって所定の圧縮処理が行われる。さらに、圧縮処理が施された画像のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像のデータを無線モジュール90によって受信し、コーデックLSI86によって所定の伸張処理が行われる。伸張処理が行われた画像データはLCD51に出力される。したがって、端末装置7のLCD51に、番組ガイドプログラム412のフロントページが表示される。以下、ゲーム装置3から端末装置7に画像データが送信される場合について同様である。
図13に戻って、ステップS59では、端末装置7からの操作データを取得する。ただし、端末装置7から操作データが送信されない場合には、ステップS59では、操作データは取得されない。続いて、ステップS61で、拡張機能の操作かどうかを判断する。ステップS61で“YES”であれば、つまり拡張機能の操作であれば、ステップS63で、操作された拡張機能についての処理を実行して、ステップS67に進む。ただし、実行されるのは、上述した(1)−(3)の拡張機能を含む多数の拡張機能のうちのいずれか1つである。
一方、ステップS61で“NO”であれば、つまり拡張機能の操作でなければ、ステップS65で、後述するコンテンツ制御処理(図14および図15参照)を実行し、ステップS67で、終了かどうかを判断する。ここでは、CPU10は、ユーザから番組ガイドプログラム412の終了指示が与えられたかどうかを判断する。
ステップS67で“NO”であれば、つまり終了でなければ、ステップS59に戻る。一方、ステップS67で“YES”であれば、つまり終了であれば、図11に示したメインメニュー処理にリターンする。
図14および図15は、図13に示したステップS65のコンテンツ制御処理を示すフロー図である。以下、コンテンツ制御処理について具体的に説明するが、図12および図13で説明した処理と同じ処理については簡単に説明することにする。
図14に示すように、CPU10は、コンテンツ制御処理を開始すると、ステップS91で、ウェブページの表示の要求があるかどうかを判断する。ここでは、CPU10は、フロントページなどのウェブページに表示されたアイコンや文字列に設定されたリンクが示すウェブページやキーワード検索の結果についてのウェブページ等が要求されたかどうかを判断する。
ステップS91で“NO”であれば、ウェブページの表示の要求がなければ、ステップS93で、その他の処理を実行して、番組ガイドプログラム412の処理にリターンする。その他の処理としては、たとえば、ウェブページの画面をスクロールしたり、表示倍率を変更したりすることが該当する。ただし、何ら操作されていない場合には、その他の処理は実行されない。
一方、ステップS91で“YES”であれば、つまりウェブページの表示の要求があれば、ステップS95で、ホワイトリストにドメイン名が記載されているかどうかを判断する。ステップS95で“YES”であれば、ステップS97で、ウェブページの送信要求を送信する。
次のステップS99では、ソースデータを受信したかどうかを判断する。ステップS99で“NO”であれば、同じステップS99に戻る。一方、ステップS99で“YES”であれば、ステップS101で、ソースデータを解析し、ステップS103で、解析したデータを整理して、ステップS105で、ウェブページの画像データを生成する。そして、ステップS107で、ウェブページの画像データを端末装置7に送信して、番組ガイドプログラム412の処理にリターンする。
また、ステップS95で“NO”であれば、図15に示すように、ステップS109で、コンテンツの要求をキャンセルするかどうかを問い合わせるための問い合わせ画面の画像データを端末装置7に送信する。続く、ステップS111では、端末装置7からの操作データを取得する。そして、ステップS113で、コンテンツの要求をキャンセルするかどうかを判断する。CPU10は、ユーザがコンテンツの要求をキャンセルすることを選択したかどうかを判断する。
ステップS113で“YES”であれば、つまりコンテンツの要求をキャンセルすることが選択されれば、ステップS115で、コンテンツの要求をキャンセルして、番組ガイドプログラムの処理にリターンする。一方、ステップS113で“NO”であれば、つまりコンテンツの要求をキャンセルしないことが選択されれば、ステップS117で、要求のあったウェブページのアドレスを記憶する。つまり、リクエストデータ436が記憶される。続いて、ステップS119で、ブラウザプログラム416の起動を指示して、番組ガイドプログラム412の処理を休止(一時停止)する。
なお、図示は省略するが、ブラウザプログラム416の処理が終了され、番組ガイドプログラム412の処理が再開される場合には、たとえば、ステップS59から再開される。
図16および図17は、図11に示したステップS13のブラウザプログラム416の処理を示すフロー図である。以下、ブラウザプログラム416の処理について具体的に説明するが、上述した処理と同じ処理については簡単に説明することにする。
図16に示すように、CPU10は、ブラウザプログラム416の処理を開始すると、ステップS131で、起動コマンド引数としてウェブページのアドレスを受け取っているかどうかを判断する。つまり、CPU10は、番組ガイドプログラム412からブラウザプログラム416を実行することを指示されるとともに、リクエストデータ436が記憶されているかどうかを判断する。
ステップS131で“YES”であれば、つまり起動コマンド引数としてウェブページのアドレスを受け取っている場合には、ステップS133で、リクエストデータ436が示すウェブページの送信要求を送信して、ステップS137に進む。一方、ステップS131で“NO”であれば、つまり起動コマンド引数としてウェブページのアドレスを受け取っていない場合には、ステップS135で、ホームページとして設定されたウェブページの送信要求を送信して、ステップS137に進む。
ステップS137では、ソースデータを受信したかどうかを判断する。ステップS137で“NO”であれば、同じステップS137に戻る。一方、ステップS137で“YES”であれば、ステップS139で、ソースデータを解析し、ステップS141で、解析したデータを整理して、ステップS143で、ウェブページの画像データを生成する。そして、ステップS145で、ウェブページの画像データを端末装置7に送信する。
続いて、図17に示すように、ステップS147では、端末装置7からの操作データを取得する。そして、ステップS149で、ウェブページの表示の要求があるかどうかを判断する。ステップS149で“YES”であれば、ステップS151で、ウェブページの送信要求を送信して、ステップS137に戻る。一方、ステップS149で“NO”であれば、ステップS153で、その他の処理を実行する。なお、このステップS153で実行されるその他の処理は、ステップS93で説明したその他の処理と同様である。
そして、ステップS155では、終了かどうかを判断する。ここでは、ユーザによってブラウザプログラム416の終了が指示されたかどうかを判断する。ステップS155で“NO”であれば、つまり終了でなければ、ステップS147に戻る。一方、ステップS155で“YES”であれば、つまり終了であれば、メインメニュー処理にリターンする。
この実施例によれば、コンテンツの提供側である管理サーバからホワイトリストをダウンロードし、これを参照して、外部のサーバにアクセスするので、コンテンツの提供側でインターネット接続の安全性をコントロールすることができる。
また、この実施例によれば、ホワイトリストにドメイン名が無いサーバにコンテンツを要求する場合には、ウェブブラウザを使用するので、所定のアプリケーションで取得できないコンテンツであっても取得することができる。つまり、ホワイトリストにドメイン名が記載されていないサーバについては、インターネット接続の安全性が保障されないが、その場合には、インターネット接続の安全性が保障されたウェブブラウザを使用することにより、コンテンツを取得することができる。
つまり、ホワイトリストにドメイン名が記載されているサーバについては、インターネット接続の安全性が保障され、そのようなサーバについては特定のサービスを受けるために作成された拡張機能を有するアプリケーションプログラムでアクセスし、ホワイトリストにドメイン名が記載されていないサーバについては、インターネット接続の安全性が保障されているウェブブラウザに切り替えてアクセスすることにより、機能性と安全性の両方を確保することができるのである。
なお、この実施例では、管理サーバとテレビ番組ガイドを提供するサービス提供サーバが別々に設けられる場合について説明したが、管理サーバがテレビ番組ガイドのサービス提供サーバとしても機能するようにしてもよい。
また、この実施例では、特定のサービスとしてテレビ番組ガイドが提供される場合についてのみ説明したが、上述したように、特定のサービスはテレビ番組ガイドに限定される必要はない。また、特定のサービスの提供を受けるためのアプリケーションプログラムは、ゲーム装置に2種類以上記憶されてもよい。かかる場合にも、メインメニューで選択されたアプリケーションプログラムが実行される。
さらに、この実施例では、コンテンツとしてウェブページのソースデータを取得する場合について説明したが、コンテンツは、画像(静止画像、動画像)データ、音(音楽)データ、テキストデータなどでも構わない。
さらにまた、この実施例では、ホワイトリストに記載されていないドメインが記述されたURLが設定されたウェブページを要求することが選択された場合には、番組ガイドプログラムの処理を休止して、ブラウザプログラムの処理を実行するようにしたが、これに限定される必要はない。番組ガイドプログラムの処理をバックグラウンドで実行するようにしてもよい。または、番組ガイドプログラムの処理を終了(強制終了)するようにしてもよい。
また、この実施例で示したゲームシステムは一例であり、限定されるべきでない。一例として、ゲーム装置に代えて汎用のパーソナルコンピュータ(PC)を設け、端末装置に代えてタブレットコンピュータを設けて、PCとタブレットコンピュータとを通信可能に接続し、タブレットコンピュータにコンテンツを出力(表示)するようにしてもよい。
さらに、この実施例で示したゲーム装置は、端末装置とBluetooth(登録商標)のような近距離無線を利用して通信可能に接続したが、ネットワークを介して通信するようにしてもよい。さらには、ゲーム装置は、各々が通信処理、画像処理、任意のアプリケーションの処理などの各処理のうちの1つまたは2つ以上を担当する複数の装置を通信可能に接続した1つのシステムで構成されてもよい。