本発明に係る実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.概要>
本実施の形態では、少なくとも第1プログラムおよび第2プログラムを並列に実行することが可能な情報処理装置であるゲーム装置において、第1プログラムおよび第2プログラムから接続レベルおよび種類の異なる複数のアクセスポイントと接続するための接続要求が出力された場合に、第1プログラムおよび第2プログラムからの接続要求を処理して、アクセスポイントに接続する情報処理プログラムである通信制御プログラムを想定する。
第1プログラムおよび第2プログラムは、ゲーム装置で実行するゲームプログラムなどのアプリケーションであっても、ゲーム装置に設けてある通信部を制御して所定の通信するための通信プログラムを管理する通信管理プログラムであってもよい。また、第1プログラムおよび第2プログラムは、ともにゲーム装置のバックグラウンドまたはフォアグラウンドで実行するプログラムであっても、それぞれゲーム装置のバックグラウンドで実行するプログラムと、ゲーム装置のフォアグラウンドで実行するプログラムとであってもよい。ここで、バックグラウンドで実行するプログラムは、ゲーム装置がスリープ中(省電力モード)となっている場合でも実行することが可能なプログラムも含む。
アクセスポイントの接続レベルには、インターネットに接続することが可能なWAN(Wide Area Network)と、インターネットに接続することができないLAN(Local Area Network)とがある。また、アクセスポイントの種類には、家庭や会社などで整備した通信環境(たとえば無線LAN通信)であるネットワーク設定や、ゲーム装置の製造メーカが提供する通信環境であるネットワークゾーンなどがある。
<B.システム構成>
以下、図1を参照して、典型的な実現例について説明する。図1は、本実施の形態に従うネットワークシステム100の概略構成図である。
図1に示すネットワークシステム100は、ゲーム装置10と、接続レベルおよび種類の異なる複数のアクセスポイント6、12との接続に無線接続を行なう場合について説明する。具体的に、無線接続するための通信方式として、たとえばIEEE(the Institute of Electrical and Electronics Engineers, Inc.)802.11シリーズの規格に基づく通信方式(以下、「無線LAN」とも称す。)、IMT(International Mobile Telecommunication)200の規格に基づく、いわゆる第三世代移動通信システムに係る通信方式などがある。
なお、通信方式は、無線通信方式に限定されるものではなく、一方または両方が有線通信方式であってもよい。さらに、無線通信方式については、前述した規格の他に、PHS(Personal Handy phone System)やWiMAX(Worldwide Interoperability for Microwave Access)などを採用してもよい。
また、本実施の形態に従うゲーム装置10としては、上述のような通信機能を搭載しているものであればどのような種類のものであってもよい。なお、ゲーム装置10のコンピュータに代えて、汎用的な情報処理装置(典型的には、携帯型パーソナルコンピュータ、携帯型ワークステーション、携帯端末、PDA(Personal Digital Assistance)、携帯電話など)にも適用できる。この場合には、情報処理装置では、ゲームプログラムに相当するプログラムとして、アプリケーションプログラムが実行される。
ゲーム装置10は、プログラム16、18を格納した記憶媒体を装着可能となっている。さらに、ゲーム装置10本体には、プログラム14を格納してある。記憶媒体に格納してあるプログラム16、18は、たとえばゲーム装置10で実行するゲームプログラムのようなアプリケーションや、アプリケーションの中に組み込まれて実行される小さなプログラムであるアプレット(applet)である。また、ゲーム装置10本体に格納してあるプログラム14は、たとえば通信管理プログラムなどのゲーム装置10のリソースを制御するプログラムである。なお、プログラム14、16、18は、アクセスポイントと接続するための接続要求をそれぞれ有している。
ネットワークシステム100は、インターネット2にサーバ4やアクセスポイント6が接続されている。そのため、ゲーム装置10は、インターネット2を介してサーバ4へ接続することが可能である。サーバ4は、たとえばWebサーバ、ダウンロードサーバ、各種コンテンツ配信サーバ、メールサーバ、および、検索サーバであり、ゲーム装置10に対して各種のネットワークサービスを提供する。図示していないが、ネットワークシステム100の通信には、インターネット2を介さずに、ゲーム装置10同士が直接的に接続する通信(いわゆる、ピア・トゥ・ピア接続など)であってもよい。
アクセスポイント6は、無線LANに従う無線アクセスを提供するための接続制御装置であり、ゲーム装置10からインターネット2への接続を中継する。つまり、アクセスポイント6は、インターネット2に接続することができるWANのアクセスポイントである。アクセスポイント6は、アンテナ8を介して、ゲーム装置10から送信される無線LANに従う無線信号(たとえば、2.4GHz帯および5GHz帯)を受信する。
アクセスポイント12は、無線LANに従う無線アクセスを提供するための接続制御装置であるが、ゲーム装置10からインターネット2への接続を中継しない。つまり、アクセスポイント12は、インターネット2に接続することができないLANのアクセスポイントである。アクセスポイント12も、アンテナ8を介して、ゲーム装置10から送信される無線LANに従う無線信号(たとえば、2.4GHz帯および5GHz帯)を受信する。
ゲーム装置10は、プログラム14、16、18からアクセスポイント6、12と接続するための接続要求に応じて、プログラム14、16、18とアクセスポイント6、12とを接続する処理を自動的に行なう接続制御部20を備えている。なお、ゲーム装置10は、後述するように、プログラム14、16、18からの接続要求と比較するための、アクセスポイント6、12との接続状況の情報をメモリに保存してある。なお、接続状況の情報は、プログラム14、16、18からの接続要求があった時点におけるゲーム装置10とアクセスポイント6、12との接続状況を示すものということができる。
接続制御部20は、受付部20a、判断部20b、接続処理部20c、切断処理部20dを備えている。受付部20aは、プログラム14、16、18からアクセスポイント6、12と接続するための接続要求を受付ける。接続要求には、後述するように接続レベルやアクセスポイントの種類の情報などが含まれている。
判断部20bは、受付部20aで受付けた接続要求の情報と、アクセスポイント6、12との接続状況の情報とを比較し、複数のプログラム14、16、18のうち接続要求を行なったプログラムとアクセスポイント6、12との接続を行なうか否かを判断する。たとえば、判断部20bは、すでに接続しているアクセスポイントの接続レベルがWANで、新たに接続するプログラムからの接続要求の情報に含まれる接続レベルがWANである場合、新たに接続するプログラムとアクセスポイントとを接続する。また、判断部20bは、たとえば、すでに接続しているアクセスポイントの種類がネットワーク設定で、新たに接続するプログラムからの接続要求の情報に含まれるアクセスポイントの種類が全ての種類のアクセスポイントである場合、新たに接続するプログラムとアクセスポイントとを接続する。
また、判断部20bは、プログラム16がアクセスポイント6と接続している場合に、プログラム14からアクセスポイント12と接続するための接続要求に応答して、プログラム16とアクセスポイント6との接続を切断する処理を行なうか否かを判断する。
接続処理部20cは、判断部20bの結果に基づいて、接続要求を行なったプログラム14、16、18とアクセスポイント6、12との接続の処理を行なう。接続処理部20cは、たとえば判断部20bがプログラム16とアクセスポイント6とを接続すると判断した場合、ゲーム装置10の通信部からアクセスポイント6のアンテナ8に対して無線信号を送信して、プログラム16とアクセスポイント6とを接続する。
切断処理部20dは、判断部20bの結果に基づいて、プログラム14、16、18とアクセスポイント6、12との接続を切断する処理を行なう。たとえば判断部20bがプログラム16とアクセスポイント6との接続を切断すると判断した場合、ゲーム装置10の通信部からアクセスポイント6のアンテナ8に対して無線信号の送信を停止して、プログラム16とアクセスポイント6との接続を切断する。
また、切断処理部20dは、プログラム16およびプログラム18がアクセスポイント6と接続している場合に、プログラム16およびプログラム18からアクセスポイント6との接続を切断する切断要求に応答して、ゲーム装置10とアクセスポイント6との接続を切断する処理を行なう。
<C.装置構成>
以下、図1に示すネットワークシステム100に示される各装置の構成について説明する。
[c1.ゲーム装置10の構成]
図2は、本実施の形態に従うゲーム装置10の構成を示すブロック図である。
図2に示すゲーム装置10は、回路コンポーネントが実装された電子回路基板30と、表示部40と、通信部51と、操作スイッチ部52と、音声出力部54とを含む。また、ゲーム装置10には、記憶媒体の一例として、メモリカード90が装着可能となっている。
電子回路基板30は、ゲーム装置10における各種処理を実行するための部位であり、CPU(Central Processing Unit)22と、RAM(Random Access Memory)23と、ROM(Read Only Memory)25と、保存用メモリ27と、コネクタ28と、グラフィック処理ユニット(GPU:Graphic Processing Unit;以下、単に「GPU」とも称す。)32と、ビデオメモリ(VRAM:Video Random Access Memory;以下、単に「VRAM」とも称す。)34と、表示コントローラ38と、インターフェイス回路(以下、単に「I/F回路」とも称す)42とを含む。これらの各部は、バス26を介して互いにデータ伝送可能に構成される。
コネクタ28には、メモリカード90を装着することができる。メモリカード90には、コネクタ28と電気的に接触するための図示しないインターフェイス回路に加えて、CPU22を動作させるための命令セット(プログラム14、16、18)が固定されたROM92と、後述するような、各種処理に従って生成またはユーザなどが設定した情報を不揮発的に保持するためのEEPROM(Erasable Programmable ROM)94とを含む。なお、メモリカード90のROM92に格納されたプログラム14、16、18は、処理の実行に伴って、その全部または一部が電子回路基板30のRAM23に展開される場合もある。また、メモリカード90のEEPROM94に保持されるデータについては、CPU22の処理に応じて、その全部または一部がRAM23で一時的に保持される場合もある。
CPU22は、コネクタ28を介して接続されるメモリカード90のROM92またはEEPROM94、ROM25、あるいは、I/F回路42などから、必要なプログラム、設定データ、および、画像/音声データなどを読出して、RAM23にロードする。すなわち、RAM23は、バッファメモリおよび/またはワーキングメモリとして使用される。そして、CPU22は、RAM23にロードしたプログラムのコードを実行することで、後述するような通信処理を含む各種の情報処理を実行する。
ROM25には、ゲーム装置10の基本的な処理を行うためのプログラムが固定される。具体的には、ROM25は、ゲーム装置10の起動プログラムや常駐プログラムなどを格納している。さらに、本実施の形態に従うゲーム装置10では、複数のプログラムからの接続要求を処理して、アクセスポイントに接続する通信制御プログラムも格納している。
保存用メモリ27は、インターネット2を介してサーバ4からダウンロードしたゲームプログラムや、各種処理に従って生成またはユーザなどが設定した情報を不揮発的に保持するためのメモリである。特に、保存用メモリ27は、複数のプログラムで共通に使用する情報(たとえば、アクセスポイントのAP番号など)を保持する。また、保存用メモリ27は、後述するようにアクセスポイント6、12との接続状況の情報や接続先の情報を保持する。
GPU32、VRAM34および表示コントローラ38は、表示部40上で画像を表示するための描画部として機能する。これらの部位は、シングルチップASIC(Application Specific Integrated Circuit)を用いてもよい。より具体的には、GPU32は、CPU22から与えられるグラフィックスコマンド(作画命令)に従って、表示部40に表示すべき内容に応じた画像データを生成する。生成した画像データは、VRAM34に順次書込まれる。表示コントローラ38は、VRAM34に書込まれる画像データに基づく映像信号を表示部40へ出力する。なお、CPU22が、画像データを動的に生成するための画像生成プログラムをGPU32に提供し、GPU32が必要な画像データを生成するようにしてもよい。
表示部40は、ユーザに視覚的な情報を与えるインターフェイスであり、典型的には、液晶ディスプレイ(LCD:Liquid Crystal Display)、EL(Electronic Luminescence)ディスプレイ、および、プラズマディスプレイなどが用いられる。また、表示部40は、三次元の映像を表示することが可能である。
I/F回路42は、CPU22と、通信部51、操作スイッチ部52、および音声出力部54との間で、それぞれデータを遣り取りする。
操作スイッチ部52は、ユーザ操作を受付けるための入力部であり、ボタン、マウス、タッチパネルなどが必要に応じて適切な位置に設置される。ユーザが操作スイッチ部52を操作すると、I/F回路42を介して、その操作に応じた操作信号がCPU22などへ伝達される。
音声出力部54は、典型的にはスピーカであり、CPU22が生成した音声データに基づいて、ユーザに音声的な情報を与える。なお、音声出力部54として、ヘッドホンを装着するためのコネクタを用意してもよい。
通信部51は、アクセスポイント6、12(図1)に接続するための通信手段を提供する。通信部51は、たとえば無線LANによる通信手段を提供する。
より具体的には、通信部51は、無線LANの通信方式に従ってアクセスポイント6(図1)との間で無線通信を行う無線LAN通信部60を含む。
無線LAN通信部60は、媒体アクセス制御(MAC:Medium Access Controller)モジュール(以下、単に「MACモジュール」とも称す。)62と、マルチプレクサ63と、ベースバンド(BB:Base Band)モジュール(以下、単に「BBモジュール」とも称す。)64と、無線周波数(RF:Radio Frequency)モジュール(以下、単に「RFモジュール」とも称す。)66とを含む。
MACモジュール62は、無線LANにおいて伝送制御を行うためのアクセス制御コントローラである。MACモジュール62は、アクセスポイント6との間でのデータパケット(フレーム)の伝送を制御する。より具体的には、MACモジュール62は、CPU22から出力されるデータを予め定められたデータパケットに分割して送信するとともに、アクセスポイント6を介して接続先から受信したデータパケットを結合して1つのデータブロックに復号したりする。さらに、MACモジュール62は、受信したデータに含まれる誤り検出や誤り訂正を行なったり、送信に失敗したデータを再送したりする。
また、MACモジュール62は、アクセスポイント6との接続を管理する接続管理機能をも有する。たとえば、MACモジュール62は、無線LANにおいて定義される識別子に基づいて、接続先のアクセスポイント6などを特定する。より具体的には、無線LANにおいては、ESSID(Extended Service Set Identifier)と称される識別子を用いて接続が制御される。
後述するように、プログラム14、16、18とアクセスポイント6とを接続する際に、目的のアクセスポイント6を示すESSIDを指定する。すると、MACモジュール62は、利用可能なアクセスポイント6を探索するとともに、指定されたESSIDを有するアクセスポイント6との間で無線接続を確立する。
すなわち、基本的には、MACモジュール62は、アクセスポイント6により提供される識別子(ESSID)に基づいて、いずれかのアクセスポイント6をインターネット2に接続する際の接続先として決定する機能を有している。
データ送信時において、BBモジュール64は、MACモジュール62から送信される信号(デジタルデータ)を所定の処理規則に従って符号化するととも、当該符号化されたデータを示すベースバンド信号(変調信号)を生成する。RFモジュール66は、BBモジュール64から受けた変調信号をキャリア周波数までアップコンバートして無線信号を生成する。このRFモジュール66によって生成された無線信号は、アンテナ68から放射される。
一方、データ受信時において、RFモジュール66は、アクセスポイント6から受信した無線信号をダウンコンバートしてベースバンド信号を生成する、BBモジュール64は、RFモジュール66から受信したベースバンド信号を復号化し、自身宛のデータパケットのみを抽出する。さらに、BBモジュール64は、抽出したデータパケットをMACモジュール62へ出力する。
なお、ゲーム装置10とアクセスポイント6との間では、暗号化通信が可能である。そのため、MACモジュール62は、WEP方式、WPA方式、T−KIP方式などの暗号化通信をサポートすることが好ましい。
また、MACモジュール62については、その全部または一部を、プログラムされたコードに従って処理を実行するプロセッサ(典型的には、DSP(Digital Signal Processor))を用いて実装してもよい。この場合、そのプロセッサで実行されるプログラムをメモリカード90内またはROM25内に格納しておき、ゲーム装置10の起動処理時に、当該プロセッサへ転送するようにしてもよい。
すなわち、メモリカード90またはROM25が、無線LANで定義される識別子(ESSID)を用いてアクセスポイント6に接続するためのプログラムを記憶し、記憶したプログラムがコンピュータであるゲーム装置10で実行されることにより、アクセスポイント6への接続機能が提供される。
[c2.アクセスポイント6の構成]
図3は、本実施の形態に従うアクセスポイント6の構成を示すブロック図である。
図3に示すアクセスポイント6は、ゲーム装置10から送信される無線信号(無線LAN)を受信して、それに含まれるデータをインターネット2に接続された接続先へ伝送するとともに、インターネット2の接続先から受信したデータに基づいて無線信号(無線LAN)をゲーム装置10へ送信する。より具体的には、アクセスポイント6は、RFモジュール110と、BBモジュール112と、MACモジュール114と、IP(Internet Protocol)モジュール116とを含む。
RFモジュール110は、図2に示す無線LAN通信部60内のRFモジュール66と同様に、BBモジュール112から受信するベースバンド信号を無線信号にアップコンバートするとともに、ゲーム装置10から受信する無線信号をベースバンド信号にダウンコンバートする。
BBモジュール112は、図2に示す無線LAN通信部60内のBBモジュール64と同様に、MACモジュール62から入力される信号(デジタルデータ)を符号化してベースバンド信号(変調信号)を生成するとともに、RFモジュール110から入力されるベースバンド信号を復号化してデータ信号を生成する。
MACモジュール114は、図2に示す無線LAN通信部60内のMACモジュール62と同様に、ゲーム装置10との間の無線LANにおける伝送制御を行うためのアクセス制御コントローラである。より具体的には、MACモジュール114は、IPモジュール116を介して接続先からデータを受信すると、予め定められたデータパケットに分割してBBモジュール112へ出力するとともに、BBモジュール112から受信したデータパケットを結合して1つのデータブロックに復号して、IPモジュール116へ出力する。
MACモジュール114は、自アクセスポイントのESSIDの値を保持するためのレジスタ114aを有している。MACモジュール114は、レジスタ114aに保持されているESSIDの値を読み出して、読み出したESSIDを付加したビーコンを送信(ブロードキャスト)する。すなわち、MACモジュール114は、無線LANで定義される識別子(ESSID)をゲーム装置10に提供する。
IPモジュール116は、インターネット2を介した接続先との間のデータ伝送を制御する。具体的には、IPモジュール116は、TCP/IPに従って、データパケットのヘッダに記述されている宛先情報に基づいて、接続先までデータを配送する。また、IPモジュール116は、接続先から配送されたデータパケットを整えた上で、MACモジュール114へ出力する。
[c3.アクセスポイント12の構成]
アクセスポイント12は、図3に示すアクセスポイント6の構成と同じであるが、IPモジュール116が、インターネット2ではなく、ローカルなネットワークを介した接続先との間のデータ伝送を制御する点で異なる。そのため、アクセスポイント12の構成については、詳細な説明を繰返さない。
<D.データ構造>
次に、本実施の形態に従うゲーム装置10において、当該ゲーム装置10が利用可能なプログラムやデータについて説明する。なお、ゲーム装置10は、以下で説明するデータ構造のプログラムやデータをRAM23に展開して、プログラムを実行する。
本実施の形態に従うゲーム装置10のデータ構造を説明する前に、まず従来のゲーム装置のデータ構造を説明する。図4は、無線LANに対応するプログラムが従来のゲーム装置において実行される際に、利用可能なプログラムやデータを構造的に示す模式図である。なお、図4に示すデータ構造は、本実施の形態に従うゲーム装置10のデータ構造と対比しやすくするため、図2に示すゲーム装置10の構成および参照符号を利用して説明する。
図4に示すメモリカード90のROM92には、Aプログラム200が格納されている。このAプログラム200は、各種の情報処理を提供するためのゲームプログラム202と、無線LAN通信部60(図2)を利用するための通信制御プログラム204とを含む。
また、メモリカード90のEEPROM94には、ゲームプログラム202の実行に必要なデータ210が格納されている。
また、ゲーム装置10のROM25には、メモリカード90が装着されていない状態でも基本的な処理を行うためのプログラムが格納されている。これらのプログラムは、一種のOS(Operating System)に相当する。具体的には、ゲーム装置10のROM25には、ゲーム装置10の電源投入後の初期動作を行うための起動プログラム220と、起動後に各種イベントに応じて必要な処理を実行するための常駐プログラム230とが格納されている。すなわち、ゲーム装置10の電源が投入されると、CPU22は、起動プログラム220に従って必要な初期化処理を行なった後、常駐プログラム230に従って、ユーザ操作などのイベントの発生有無を随時判断するとともに、イベント発生時に要求された処理を実行する。
また、保存用メモリ27には、Bプログラム240が格納されている。このBプログラム201は、各種の情報処理を提供するためのゲームプログラム242と、無線LAN通信部60(図2)を利用するための通信制御プログラム244とを含む。
また、保存用メモリ27には、過去の通信ログやパスワードなどを含む接続情報246や、接続先の情報を含む登録リスト248のデータ241を含む。登録リスト248は、ユーザが予め接続先の候補として設定した無線LANにおいて定義される識別子(ESSID)を含む。登録リスト248に登録されたESSIDの値に従って、無線LANによるアクセスポイントが決定される。
しかし、Aプログラム200に通信制御プログラム204、Bプログラム240に通信制御プログラム244をそれぞれ格納している場合、Aプログラム200およびBプログラム240から接続レベルおよび種類の異なる複数のアクセスポイントと接続するための接続要求がそれぞれ出力され、接続要求を受付けた順番に処理してAプログラム200とアクセスポイント6、12とを接続し、Bプログラム240とアクセスポイント6、12とを接続する必要があった。
また、ゲーム装置10は、アクセスポイント6、12と接続するための接続要求を、プログラムを実行したときに処理していたのでは、Aプログラム200を実行して、Bプログラム240を実行していないときに、Bプログラム240とアクセスポイント6、12とを接続して必要な情報を交換するなどの処理を行なうことができない問題があった。
そこで、本実施の形態に従うゲーム装置10では、通信制御プログラム204をAプログラム200、Bプログラム240ごとに格納するのではなく、各々のゲームプログラム202、242の通信を制御する通信制御プログラムをゲーム装置10のROM25に格納するデータ構造を採用している。
図5は、無線LANに対応するプログラムが本実施の形態に従うゲーム装置10において実行される際に、利用可能なプログラムやデータを構造的に示す模式図である。
図5に示すメモリカード90のROM92にも、Aプログラム200が格納されている。このAプログラム200は、各種の情報処理を提供するためのゲームプログラム202を含む。
また、メモリカード90のEEPROM94には、ゲームプログラム202の実行に必要なデータ210が格納されている。
また、ゲーム装置10のROM25には、メモリカード90が装着されていない状態でも基本的な処理を行うためのプログラムが格納されている。これらのプログラムは、一種のOS(Operating System)に相当する。具体的には、ゲーム装置10のROM25には、ゲーム装置10の電源投入後の初期動作を行うための起動プログラム220と、起動後に各種イベントに応じて必要な処理を実行するための常駐プログラム230と、複数のプログラムからの接続要求を処理し、複数のプログラムとアクセスポイントとの接続を制御する通信制御プログラム250とが格納されている。
また、保存用メモリ27には、Bプログラム240が格納されている。このBプログラム201は、各種の情報処理を提供するためのゲームプログラム242を含む。
また、ゲーム装置10の保存用メモリ27には、複数のゲームプログラム202を実行する際に、複数のゲームプログラム202の間で共通に必要なデータ260が格納されている。データ260は、各々のゲームプログラム202の過去の通信ログ、パスワードやアクセスポイント6、12との接続状況の情報などを含む接続情報262と、接続先の情報を含む登録リスト264とを含む。登録リスト264は、ユーザが予め接続先の候補として設定した無線LANにおいて定義される識別子(ESSID)を含む。登録リスト264に登録されたESSIDの値に従って、無線LANによるアクセスポイントが決定される。
<E.通信処理>
次に、本実施の形態に従うゲーム装置10が、複数のプログラム14、16、18からの接続要求を処理し、複数のプログラムとアクセスポイント6、12との接続を制御する動作を説明する。図6は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12とを接続する接続制御プログラムのフローチャートである。
[e1.プログラムとアクセスポイントとを接続する場合]
まず、CPU22は、接続制御プログラムを実行することで、接続制御部20を起動する。起動した接続制御部20の受付部20aは、プログラム14、16、18からアクセスポイント6、12へ接続するための接続要求を受付けたか否かを判断する(ステップS100)。
[プログラムからの接続要求]
ここで、プログラム14、16、18からの接続要求について説明する。図7は、プログラム14、16、18からの接続要求の情報に含まれる項目、および当該項目におけるパラメータを示す図である。プログラム14、16、18からの接続要求の情報に含まれる項目には、APの種類、接続レベル、パワーセーブモード、優先度、要求元プロセス種別、ESSID、AP番号がある。
APの種類は、プログラムが接続したいと考えているアクセスポイント6、12の種類を指定する項目である。APの種類のパラメータは、すべてのアクセスポイント6、12の種類を指定する「ALL」、ゲーム装置の製造メーカが提供する通信環境であるネットワークゾーンを指定する「ネットワークゾーン」などがある。
接続レベルは、プログラム14、16、18が接続するアクセスポイント6、12に求めるネットワーク接続レベルを指定する項目である。接続レベルのパラメータは、インターネット2に接続することが可能な「WAN」、インターネット2に接続することができない「LAN」、すでに接続しているアクセスポイント6、12がインターネット2に接続することが可能か否かの接続テストを行ない、インターネット2に接続することができない場合、すでに接続しているアクセスポイント6、12のネットワーク接続レベルに合わせる「AUTO」がある。
パワーセーブモードは、接続したアクセスポイント6、12の無線ファームウェアのパワーをセーブするか否かを指定する項目である。パワーセーブモードのパラメータは、無線ファームウェアのパワーをセーブする「ON」、無線ファームウェアのパワーをセーブしない「OFF」がある。なお、パワーセーブモードは、接続中の全てのプログラムからの接続要求の情報に含まれるパラメータが「ON」である場合にのみ、無線ファームウェアのパワーをセーブする。
優先度は、アクセスポイント6、12へ接続するプログラム14、16、18の優先度を指定する項目である。優先度は、CPU22のバックグラウンドで実行するプログラムであるか、CPU22のフォアグラウンドで実行するプログラムであるかにより区別し、CPU22のバックグラウンドで実行するプログラムに比べて、CPU22のフォアグラウンドで実行するプログラムを優先する。そのため、優先度のパラメータは、優先度が高い「フォアグラウンド」、優先度が低い「バックグラウンド」がある。
要求元プロセス種別は、ネットワークゾーンなどで起動を制御するために、プログラムの内容を示す項目である。要求元プロセス種別のパラメータは、プログラムの内容を示す名称であり、たとえばゲーム装置10で実行するゲームプログラムである「アプリケーション」、アプリケーションの中に組み込まれて実行される小さなプログラムである「アプレット」などである。なお、要求元プロセス種別は、プログラム14、16、18からの接続要求に、常に必要な項目ではない。
ESSIDは、プログラムが接続したいと考えているアクセスポイント6、12のESSIDを指定する項目である。AP番号は、プログラムが接続したいと考えているアクセスポイント6、12のネットワークゾーンにおける番号を指定する項目である。
図6に戻って、受付部20aが、プログラム14、16、18からアクセスポイント6、12へ接続するための接続要求を受付けていないと判断した場合(ステップS100:NO)、接続制御部20は、処理をステップS100に戻す。
受付部20aが、プログラム14、16、18からアクセスポイント6、12へ接続するための接続要求を受付けたと判断した場合(ステップS100:YES)、接続制御部20は、すでにプログラム14、16、18とアクセスポイント6、12とを接続しているか否かを判断する(ステップS102)。
接続制御部20は、すでにプログラム14、16、18とアクセスポイント6、12とを接続している場合、アクセスポイント6、12との接続状況の情報が保存用メモリ27に保存してある。そのため、接続制御部20は、アクセスポイント6、12との接続状況の情報に基づいて、すでにプログラム14、16、18とアクセスポイント6、12と接続しているか否かについて判断することができる。
[アクセスポイントとの接続状況の情報]
ここで、アクセスポイント6、12との接続状況の情報について説明する。図8は、アクセスポイント6、12との接続状況の情報に含まれる項目、および当該項目におけるパラメータを示す図である。アクセスポイント6、12との接続状況の情報に含まれる項目には、APの種類、接続レベル、パワーセーブモード、優先度、アクセス制限、ESSID、AP番号がある。
APの種類は、接続しているアクセスポイント6、12の種類を示す項目である。APの種類のパラメータは、家庭や会社などで整備した通信環境であるネットワーク設定1、ゲーム装置の製造メーカが提供する通信環境であるネットワークゾーンである「ネットワークゾーン」、公衆に解放されている無線LANの通信環境である「公衆無線LAN」などがある。
接続レベルは、接続しているアクセスポイント6、12のネットワーク接続レベルを示す項目である。接続レベルのパラメータは、インターネット2に接続することが可能な「WAN」、インターネット2に接続することができない「LAN」とがある。
パワーセーブモードは、接続したアクセスポイント6、12の無線ファームウェアのパワーをセーブしているか否かを示す項目である。パワーセーブモードのパラメータは、無線ファームウェアのパワーをセーブしている場合「ON」、無線ファームウェアのパワーをセーブしていない場合「OFF」がある。
優先度は、アクセスポイント6、12に接続しているプログラム14、16、18の優先度を示す項目である。優先度は、CPU22のバックグラウンドで実行するプログラムであるか、CPU22のフォアグラウンドで実行するプログラムであるかにより区別し、CPU22のバックグラウンドで実行するプログラムに比べて、CPU22のフォアグラウンドで実行するプログラムを優先する。そのため、優先度のパラメータは、優先度が高い「フォアグラウンド」、優先度が低い「バックグラウンド」がある。
アクセス制限は、接続しているアクセスポイント6、12がアクセスを禁止している条件を示す項目である。アクセス制限のパラメータは、たとえばCPU22のバックグラウンドで実行するプログラムの接続を禁止する「バックグラウンド禁止」、インターネット2上で何らかの取引を行なうプログラムである「アプリケーションS」の接続を禁止する「アプリケーションS禁止」などがある。
ESSIDは、接続しているアクセスポイント6、12のESSIDを示す項目である。AP番号は、接続しているアクセスポイント6、12のネットワークゾーンにおける番号を示す項目である。
図6に戻って、接続制御部20が、まだプログラム14、16、18とアクセスポイント6、12とを接続していないと判断した場合(ステップS102:NO)、接続制御部20は、プログラム14、16、18からの接続要求を満たす種類のアクセスポイント6、12を探索する(ステップS104)。具体的に、接続制御部20は、プログラム14、16、18からの接続要求の情報に含まれるAPの種類が「ネットワークゾーン」であれば、ネットワークゾーンのアクセスポイント6、12を探索し、「ALL」であればアクセスポイント6、12を探索する優先度に従って、アクセスポイント6、12を探索する。
接続制御部20の判断部20bは、受付部20aで受付けた接続要求の情報に含まれるAPの種類と、アクセスポイント6、12との接続状況の情報に含まれるAPの種類とを比較し、接続要求を満たすAPの種類のアクセスポイント6、12であるか否かを判断する(ステップS106)。
判断部20bが、接続要求を満たすAPの種類のアクセスポイント6、12であると判断した場合(ステップS106:YES)、接続制御部20は、後述するように、接続要求の情報に含まれる接続レベルに応じて、接続したアクセスポイント6、12がインターネット2に接続することが可能か否かの接続テストなどの接続レベルの確認処理を行なう(ステップS108)。
ステップS108で接続レベルの確認処理を行なった後、接続制御部20の接続処理部20cは、プログラム14、16、18とアクセスポイント6、12とを接続する(ステップS110)。さらに、接続制御部20の接続処理部20cは、アクセスポイント6、12と接続したプログラム14、16、18からの接続要求の情報に基づいて、APの種類、接続レベル、優先度などをアクセスポイント6、12との接続状況の情報として保存料メモリ27に保存する。なお、接続処理部20cは、プログラム14、16、18とアクセスポイント6、12とを接続した場合、プログラム14、16、18にアクセスポイント6、12との接続を通知する。
ステップS110で接続したアクセスポイント6、12から、アクセスポイント6、12との接続状況の情報に必要な項目、たとえばアクセス制限、ESSIDなどの情報を読出す(ステップS112)。接続制御部20は、読出した情報を、アクセスポイント6、12との接続状況の情報として保存用メモリ27に保存する。
ステップS100からステップS112までの処理を、模式図を用い説明する。図9は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
まず、図9に示す状況1では、CPU22が、接続制御プログラムを実行することで、接続制御部20を起動し、接続制御部20の状態がアイドル状態となっている。
次に、状況2では、プログラム16が、アイドル状態の接続制御部20に対して接続要求を出力している。プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
次に、状況3では、接続制御部20が、プログラム16とAPの種類が「ネットワーク設定1」のアクセスポイント6とを接続している。プログラム16からの接続要求の情報に含まれるAPの種類が「ALL」であるので、接続制御部20は、アクセスポイント6、12を探索する優先度に従い、APの種類が「ネットワーク設定1」のアクセスポイント6を探索する。探索されたアクセスポイント6がインターネット2に接続することが可能であるため、接続制御部20は、ステップS108の接続レベルの確認処理を行なった後、プログラム16とアクセスポイント6とを接続する。接続制御部20の状態は、アイドル状態からWAN接続に変化する。
[e2.プログラムとアクセスポイントとの接続が失敗する場合]
図6に戻って、判断部20bが、接続要求を満たすAPの種類のアクセスポイント6、12でないと判断した場合(ステップS106:NO)、接続制御部20は、接続要求を出力したプログラム14、16、18に対して接続が失敗した旨の「接続失敗」の情報を通知する(ステップS107)。
ステップS106、S107の処理を、模式図を用い説明する。図10は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図10に示す状況4では、CPU22が、接続制御プログラムを実行することで、接続制御部20を起動し、接続制御部20がアイドル状態となっている。
次に、状況5では、プログラム16が、アイドル状態の接続制御部20に対して接続要求を出力している。プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
次に、状況6では、接続制御部20が、プログラム16からの接続制御を満たすアクセスポイント6、12を探索することができず、プログラム16とアクセスポイント6、12とを接続しないと判断している。プログラム16とアクセスポイント6、12との接続が失敗した場合、接続制御部20の状態は、アイドル状態のままである。
[e3.別のプログラムが、すでにアクセスポイントに接続している場合]
図6に戻って、ステップS112以降の処理を説明する前に、接続制御部20が、すでにプログラム14、16、18とアクセスポイント6、12とが接続していると判断した場合(ステップS102:YES)についての処理を説明する。
図11は、接続制御部20が、すでにプログラム14、16、18とアクセスポイント6、12とが接続していると判断した場合の処理を示すフローチャートである。
まず、接続制御部20が、すでにプログラム14、16、18とアクセスポイント6、12とが接続していると判断した場合(ステップS102:YES)、判断部20bは、プログラム14、16、18からの接続要求が独占接続要求か否かを判断する(ステップS200)。独占接続要求か否かの判断は、たとえばプログラム14、16、18からの接続要求の情報に含まれる要求元プロセス種別に基づいて行ない、要求元プロセス種別が「アプリケーションB」の場合に独占接続要求と判断する。
判断部20bが、プログラム14、16、18からの接続要求が独占接続要求でないと判断した(ステップS200:NO)場合、判断部20bは、すでに接続している(接続中の)アクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たすか否かを判断する(ステップS202)。具体的に、判断部20bは、受付部20aで受付けた接続要求の情報に含まれるAPの種類と、アクセスポイント6、12との接続状況の情報に含まれるAPの種類とを比較して、すでに接続しているアクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たすか否かを判断する。
判断部20bが、接続中のアクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たすと判断した場合(ステップS202:YES)、接続制御部20は、図6に示すステップS108の処理に進む。
ステップS202で、判断部20bが、接続中のアクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たすと判断した場合の処理を、模式図を用い説明する。図12は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図12に示す状況7では、すでにプログラム16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している。プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム16からの接続要求を満たしており、APの種類は「ネットワーク設定1」である。ネットワーク設定1は、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
次に、状況8では、すでにプログラム16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している場合に、プログラム14が、接続制御部20に対して接続要求を出力している。プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
接続制御部20の判断部20bは、プログラム14からの接続要求の情報に含まれるAPの種類「ALL」と、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」とを比較し、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」が、プログラム14からの接続要求の情報に含まれるAPの種類「ALL」を満たしていると判断する。
次に、状況9では、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」が、プログラム14からの接続要求の情報に含まれるAPの種類「ALL」を満たしていると判断したので、プログラム14とAPの種類が「ネットワーク設定1」のアクセスポイント6とを接続する。
つまり、接続制御部20は、プログラム14およびプログラム16と、APの種類が「ネットワーク設定1」のアクセスポイント6とを接続している。
図11に戻って、判断部20bが、すでに接続している(接続中の)アクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たさないと判断した場合(ステップS202:NO)、判断部20bは、すでに接続している(接続中の)プログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が高いか否かを判断する(ステップS204)。具体的に、判断部20bは、受付部20aで受付けた接続要求の情報に含まれる優先度と、アクセスポイント6、12との接続状況の情報に含まれる優先度とを比較する。
判断部20bが、すでに接続しているプログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が低いと判断した(ステップS204:NO)場合、接続制御部20は、接続要求を出力したプログラム14、16、18に対して接続が失敗した旨の「接続失敗」の情報を通知する(ステップS206)。ステップS206後、接続制御部20は、処理を図6に示すステップS100に戻す。
ステップS202、S204で、判断部20bが、すでに接続しているアクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たさないと判断し、すでに接続しているプログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が低いと判断した場合の処理を、模式図を用い説明する。図13は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図13に示す状況10では、すでにプログラム14、16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している場合に、プログラム14aが、接続制御部20に対して接続要求を出力している。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム14、16からの接続要求を満たしており、APの種類は「ネットワーク設定1」である。ネットワーク設定1は、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
プログラム14aは、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「プログラムB」である。また、プログラム14aからの接続要求の情報には、APの種類が「ネットワークゾーン」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。なお、プログラム14aは、たとえばネットワークゾーンから特定のキャラクタ情報を取得するプログラムである。
接続制御部20の判断部20bは、プログラム14aからの接続要求の情報に含まれるAPの種類「ネットワークゾーン」と、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」とを比較し、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」が、プログラム14aからの接続要求の情報に含まれるAPの種類「ネットワークゾーン」を満たしていないと判断する。さらに、判断部20bは、プログラム14aからの接続要求の情報に含まれる優先度「バックグラウンド」と、すでに接続しているプログラム16の優先度「フォアグラウンド」とを比較し、すでに接続しているプログラム16の優先度「フォアグラウンド」に比べて、プログラム14aからの接続要求の情報に含まれる優先度「バックグラウンド」が低いと判断する。
次に、状況11では、接続制御部20の判断部20bが、プログラム14aのアクセスポイント6への接続を切断すると判断するので、プログラム14aとアクセスポイント6との接続が失敗し、プログラム14、16とアクセスポイント6とを接続した状態が維持される。
図11に戻って、判断部20bが、すでに接続しているプログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が高いと判断した(ステップS204:YES)場合、接続制御部20は、他のプログラムとアクセスポイント6、12との接続を切断する(ステップS208)。ステップS208後、接続制御部20は、処理を図6に示すステップS104に戻し、新たに接続するプログラム14、16、18と、新たに探索したアクセスポイント6、12とを接続する。
ステップS204で、判断部20bが、すでに接続しているプログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が高いと判断した場合の処理を、模式図を用い説明する。図14は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図14に示す状況12では、すでにプログラム14、16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している場合に、プログラム18が、接続制御部20に対して接続要求を出力している。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム14、16からの接続要求を満たしており、APの種類は「ネットワーク設定1」である。ネットワーク設定1は、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
プログラム18は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプレット」である。また、プログラム18aからの接続要求の情報には、APの種類が「ネットワークゾーン」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
接続制御部20の判断部20bは、プログラム18からの接続要求の情報に含まれるAPの種類「ネットワークゾーン」と、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」とを比較し、すでに接続しているアクセスポイント6のAPの種類「ネットワーク設定1」が、プログラム18からの接続要求の情報に含まれるAPの種類「ネットワークゾーン」を満たしていないと判断する。さらに、判断部20bは、プログラム18からの接続要求の情報に含まれる優先度「フォアグラウンド」と、すでに接続しているプログラム16の優先度「フォアグラウンド」とを比較する。なお、プログラムの優先度が「フォアグラウンド」、「バックグラウンド」同士であれば、後からアクセスポイント6、12に接続するプログラムの方が優先度が高いものとする。そのため、接続制御部20の判断部20bは、すでに接続しているプログラム16の優先度「フォアグラウンド」に比べて、プログラム18からの接続要求の情報に含まれる優先度「フォアグラウンド」が高いと判断する。
次に、状況13では、接続制御部20の判断部20bが、プログラム18の優先度が高く、プログラム18をアクセスポイント6へ優先して接続すると判断したので、すでに接続しているAPの種類「ネットワークゾーン」を満たしていないアクセスポイント6との接続を切断する。具体的には、接続制御部20の接続処理部20cが、プログラム18からの接続要求に基づき、プログラム14、16とアクセスポイント6との接続を切断する。そのため、接続制御部20の状態は、WAN接続からアイドル状態に変化する。
次に、状況14では、接続制御部20が、プログラム18と、APの種類が「ネットワークゾーン」のアクセスポイント6とを接続している。具体的に、接続制御部20の接続処理部20cは、プログラム14、16とアクセスポイント6との接続を切断した後、プログラム18からの接続要求の情報に含まれるAPの種類が「ネットワークゾーン」であることから、APの種類が「ネットワークゾーン」のアクセスポイント6を探索する。接続制御部20は、探索したアクセスポイント6がインターネット2に接続することが可能であるため、ステップS108の接続レベルの確認処理を行なった後、プログラム18とアクセスポイント6とを接続する。接続制御部20の状態は、アイドル状態からWAN接続に変化する。
図11に戻って、判断部20bが、プログラム14、16、18からの接続要求が独占接続要求であると判断した(ステップS200:YES)場合、接続制御部20は、ステップS208の処理に進む。つまり、プログラム14、16、18からの接続要求が独占接続要求である場合、他のプログラムとアクセスポイント6、12との接続を切断し、独占接続要求のプログラム14、16、18だけをアクセスポイント6に接続する。
ステップS200で、判断部20bが、プログラム14、16、18からの接続要求が独占接続要求であると判断した場合の処理を、模式図を用い説明する。図15は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図15に示す状況15では、すでにプログラム14、16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している場合に、プログラム18aが、接続制御部20に対して独占接続要求を出力している。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム14、16からの接続要求を満たしており、APの種類は「ネットワーク設定1」である。ネットワーク設定1は、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
プログラム18aは、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーションB」である。また、プログラム18aからの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
接続制御部20の判断部20bは、プログラム18aからの接続要求の情報に含まれるプロセス種別が「アプリケーションB」であるので、プログラム18aから独占接続要求が出力されたと判断する。接続制御部20の接続処理部20cが、プログラム18からの接続要求に基づき、プログラム14、16とアクセスポイント6との接続を切断する。
次に、状況16では、接続制御部20が、プログラム18aとAPの種類が「ネットワーク設定1」のアクセスポイント6とを接続している。プログラム18aからの接続要求の情報に含まれるAPの種類が「ALL」であるため、接続制御部20は、プログラム14、16と接続していたAPの種類が「ネットワーク設定1」のアクセスポイント6と、プログラム18aとを接続する。なお、プログラム18aとアクセスポイント6とを接続すると、接続制御部20の状態は、WAN接続で「独占接続」の状態となる。
次に、状況18では、プログラム14が、「独占接続」の状態の接続制御部20に対して接続要求を出力している。接続制御部20は、プログラム18aとアクセスポイント6とを接続する以外、他のプログラムをアクセスポイント6に接続しない。そのため、接続制御部20は、プログラム14とアクセスポイント6とを接続が失敗し、プログラム14に対して「接続失敗」の情報を通知する。
[e4.アクセスポイントのアクセスを制限する場合]
前述において、接続制御部20は、すでに接続しているアクセスポイント6、12のAPの種類がプログラム14、16、18からの接続要求を満たしているか否かで、プログラム14、16、18とアクセスポイント6、12とを接続するか否かの判断を行なう場合について説明した。しかし、接続制御部20は、これに限定されるものではなく、プログラム14、16、18とアクセスポイント6、12とを接続するか否かの判断に、アクセスポイント6、12のアクセスの禁止する条件を考慮して判断してもよい。
接続制御部20が、アクセスの禁止する条件を考慮してプログラム14、16、18とアクセスポイント6、12とを接続するか否かの判断する場合の処理を、模式図を用い説明する。図16、図17は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図16に示す状況18では、すでにプログラム18が、APの種類が「ネットワークゾーン」のアクセスポイント6に接続している。
プログラム18は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプレット」である。また、プログラム18からの接続要求の情報には、APの種類が「ネットワークゾーン」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム18からの接続要求を満たしており、APの種類は「ネットワークゾーン」である。しかし、アクセスポイント6は、アクセスを禁止する条件として、「アプリケーションS禁止」、「バックグラウンド禁止」を有している。接続制御部20は、アクセスポイント6と接続した後に、アクセスポイント6からアクセスを禁止する条件をアクセスポイント6の情報として読出し(ステップS112)、アクセスポイント6との接続状況の情報として保存用メモリ27に保存する。ネットワークゾーンは、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
次に、状況19では、すでにプログラム18が、アクセスポイント6に接続している場合に、プログラム14が、接続制御部20に対して接続要求を出力している。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
そのため、接続制御部20の判断部20bは、接続要求の情報に優先度「バックグラウンド」の項目を含むプログラム14を、アクセスポイント6との接続状況の情報に含まれる「バックグラウンド禁止」のアクセス制限の項目に基づいて、アクセスポイント6への接続を禁止する。
図17に示す状況20では、すでにプログラム18が、APの種類が「ネットワークゾーン」のアクセスポイント6に接続している場合に、プログラム16aが、接続制御部20に対して接続要求を出力している。
プログラム18は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプレット」である。また、プログラム18からの接続要求の情報には、APの種類が「ネットワークゾーン」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム18からの接続要求を満たしており、APの種類は「ネットワークゾーン」である。しかし、アクセスポイント6は、アクセスを禁止する条件として、「アプリケーションS禁止」、「バックグラウンド禁止」を有している。ネットワークゾーンは、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
プログラム16aは、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーションS」である。また、プログラム16aからの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
そのため、判断部20bは、プログラム16aからの接続要求の情報に含まれる優先度「フォアグラウンド」と、すでに接続しているプログラム18の優先度「フォアグラウンド」とを比較し、すでに接続しているプログラム18の優先度「フォアグラウンド」に比べて、プログラム16aからの接続要求の情報に含まれる優先度「フォアグラウンド」が高いと判断する。そして、接続制御部20の判断部20bは、プログラム16aの優先度が高く、プログラム16aをアクセスポイント6へ優先して接続すると判断する。
次に、状況21では、接続制御部20の判断部20bが、プログラム16aをアクセスポイント6へ優先して接続すると判断したので、プログラム18と、「アプリケーションS禁止」の条件を有しているアクセスポイント6との接続を切断する。具体的には、接続制御部20の接続処理部20cが、プログラム16aからの接続要求に基づき、プログラム18とアクセスポイント6との接続を切断する。そのため、接続制御部20の状態は、WAN接続からアイドル状態に変化する。
次に、状況22では、接続制御部20が、プログラム16aと、APの種類が「ネットワーク設定1」でアクセスを禁止する条件を有していないアクセスポイント6とを接続している。具体的に、接続制御部20は、プログラム18とアクセスポイント6との接続を切断した後、「アプリケーションS禁止」の条件を有していないアクセスポイント6を探索する。接続制御部20は、探索したアクセスポイント6がインターネット2に接続することが可能であるため、ステップS108の接続レベルの確認処理を行なった後、プログラム16aとアクセスポイント6とを接続する。接続制御部20の状態は、アイドル状態からWAN接続に変化する。
[e5.接続レベルの確認処理]
図6に戻って、接続制御部20が、接続要求の情報に含まれる接続レベルに応じて、接続したアクセスポイント6、12がインターネット2に接続することが可能か否かの接続テストなどの接続レベルの確認処理を行なうステップS108の処理を説明する。
図18は、ステップS108についての処理を示すフローチャートである。
まず、接続制御部20は、接続要求の情報に含まれる接続レベルが「AUTO」であるか否かを判断する(ステップS300)。
次に、接続制御部20が、接続要求の情報に含まれる接続レベルが「AUTO」でないと判断した場合(ステップS300:NO)、接続制御部20は、接続要求の情報に含まれる接続レベルが「WAN」であるか否かを判断する(ステップS302)。
次に、接続制御部20が、接続要求の情報に含まれる接続レベルが「WAN」でないと判断した場合(ステップS302:NO)、接続制御部20は、インターネット2に接続することが可能であるか否かの接続テストなしで、プログラム14、16,18とアクセスポイント6、12とを接続する(ステップS304)。つまり、プログラム14、16,18からの接続要求の情報に含まれる接続レベルは「LAN」と判断できるので、アクセスポイント6、12がインターネット2に接続している必要がない。そのため、アクセスポイント6、12がインターネット2に接続しているか否かとは無関係に、プログラム14、16,18とアクセスポイント6、12とを接続することができる。ステップS304後、接続制御部20は、処理を図6に示すステップS112に戻す。
ステップS304で、インターネット2に接続することが可能であるか否かの接続テストなしで、プログラム14、16,18とアクセスポイント6、12とを接続する処理を、模式図を用い説明する。図19は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図19に示す状況23では、CPU22が、接続制御プログラムを実行することで、接続制御部20を起動し、接続制御部20の状態がアイドル状態となっている。
次に、状況24では、プログラム16が、アイドル状態の接続制御部20に対して接続要求を出力している。プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「LAN」、優先度「フォアグラウンド」の項目が含まれている。
次に、状況25では、接続制御部20が、プログラム16とAPの種類が「ネットワーク設定2」のアクセスポイント12とを接続している。探索されたAPの種類が「ネットワーク設定2」のアクセスポイント12は、インターネット2に接続することができない。接続制御部20は、プログラム16からの接続要求の情報に含まれる接続レベルは「LAN」であるため、接続テストを行なわないで、プログラム16とアクセスポイント12とを接続する。そのため、接続制御部20の状態は、アイドル状態からLAN接続に変化する。
図18に戻って、接続制御部20が、接続要求の情報に含まれる接続レベルが「WAN」であると判断した場合(ステップS302:YES)、接続制御部20は、インターネット2に接続することが可能であるか否かの接続テストを行ない、接続テストに成功(OK)したか否かを判断する(ステップS306)。
次に、接続制御部20が、接続テストに成功したと判断した場合(ステップS306:YES)、接続制御部20は、インターネット2に接続することが可能なアクセスポイント6として、プログラム14、16,18を接続する(ステップS308)。つまり、ステップS308では、接続制御部20は、プログラム14、16,18をWANでアクセスポイント6に接続する。ステップS308後、接続制御部20は、処理を図6に示すステップS112に戻す。
ステップS306、S308で、接続テストに成功し、インターネット2に接続することが可能なアクセスポイント6として、プログラム14、16,18を接続する処理を、模式図を用い説明する。図20は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図20に示す状況26では、プログラム16が、APの種類が「ネットワーク設定3」のアクセスポイント6に接続している。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「LAN」、優先度「フォアグラウンド」の項目が含まれている。なお、接続レベルが「LAN」であるため、接続制御部20は、アクセスポイント6の接続テストを行なわず、プログラム16をLANでアクセスポイント6に接続する。
アクセスポイント6は、プログラム16からの接続要求を満たしており、APの種類は「ネットワーク設定3」である。ネットワーク設定3は、インターネット2に接続することが可能であるが、プログラム16からの接続要求の情報に含まれる接続レベルが「LAN」であるので、プログラム16を接続したときには接続テストを行なっていない。そのため、接続制御部20の状態は、LAN接続となっている。
次に、状況27では、すでにプログラム16が、APの種類が「ネットワーク設定3」のアクセスポイント6に接続している場合に、プログラム14が、接続制御部20に対して接続要求を出力している。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
接続制御部20の判断部20bは、プログラム14からの接続要求の情報に含まれる接続レベルが「WAN」であるので、アクセスポイント6に対して接続テストを行なう。
次に、状況28では、アクセスポイント6に対して行なった接続テストが成功したので、接続制御部20は、アクセスポイント6との接続をLAN接続からWAN接続に変更する。つまり、接続制御部20は、プログラム14、16をWANでアクセスポイント6に接続する。
図18に戻って、接続制御部20が、接続テストに失敗したと判断した場合(ステップS306:NO)、判断部20bは、すでに接続している(接続中の)プログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が高いか否かを判断する(ステップS310)。
判断部20bが、すでに接続しているプログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が低いと判断した(ステップS310:NO)場合、接続制御部20は、接続要求を出力したプログラム14、16、18に対して接続が失敗した旨の「接続失敗」の情報を通知する(ステップS314)。ステップS314後、接続制御部20は、処理を図6に示すステップS100に戻す。
判断部20bが、すでに接続しているプログラム14、16、18の優先度に比べて、新たに接続するプログラム14、16、18の優先度が高いと判断した(ステップS310:YES)場合、接続制御部20は、他のプログラムとアクセスポイント6、12との接続を切断する(ステップS312)。ステップS312後、接続制御部20は、処理を図6に示すステップS104に戻し、新たに接続するプログラム14、16、18と、新たに探索したアクセスポイント6、12とを接続する。
図18に戻って、接続制御部20が、接続要求の情報に含まれる接続レベルが「AUTO」であると判断した場合(ステップS300:YES)、接続制御部20は、すでに接続しているアクセスポイント6、12の接続レベルで、プログラム14、16、18とアクセスポイント6、12とを接続する(ステップS316)。ステップS316後、接続制御部20は、処理を図6に示すステップS112に戻す。
プログラム14、16、18からの接続要求の情報に含まれる接続レベルが「AUTO」である場合、接続制御部20は、接続レベルが「WAN」のアクセスポイント6に対して接続テストを行ない、プログラム14、16、18をWANでアクセスポイント6に接続する。一方、接続制御部20は、接続レベルが「LAN」のアクセスポイント12に対して接続テストを行なわないで、プログラム14、16、18をLANでアクセスポイント12に接続する。
ステップS300、S316で、接続制御部20が、接続要求の情報に含まれる接続レベルが「AUTO」であると判断し、すでに接続しているアクセスポイント6、12の接続レベルで、プログラム14、16、18とアクセスポイント6、12とを接続する処理を、模式図を用い説明する。図21は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図21に示す状況29では、プログラム16が、APの種類が「ネットワーク設定2」のアクセスポイント12に接続している。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「LAN」、優先度「フォアグラウンド」の項目が含まれている。なお、接続レベルが「LAN」であるため、接続制御部20は、アクセスポイント6の接続テストを行なわず、プログラム16をLANでアクセスポイント6に接続する。
アクセスポイント12は、プログラム16からの接続要求を満たしており、APの種類は「ネットワーク設定2」で、接続レベルは「LAN」である。ネットワーク設定2は、インターネット2に接続することができない。また、プログラム16からの接続要求の情報に含まれる接続レベルが「LAN」であるので、プログラム16を接続したときには接続テストを行なっていない。そのため、接続制御部20の状態は、LAN接続となっている。
次に、状況30では、すでにプログラム16が、アクセスポイント6に接続している場合に、プログラム14が、接続制御部20に対して接続要求を出力している。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「AUTO」、優先度「バックグラウンド」の項目が含まれている。
接続制御部20の判断部20bは、プログラム14からの接続要求の情報に含まれる接続レベル「AUTO」であるので、まずアクセスポイント12に対して接続テストを行なう。
次に、状況31では、アクセスポイント12に対して行なった接続テストが失敗したために、接続制御部20が、プログラム14をLANでアクセスポイント12に接続している。
[e6.アクセスポイントとの接続を切断する場合]
図6に戻って、ステップS112の後、接続制御部20の受付部20aは、すべてのプログラム14、16、18からアクセスポイント6、12との接続を切断する切断要求があったか否かを判断する(ステップS114)。
受付部20aが、すべてのプログラム14、16、18からアクセスポイント6、12との接続を切断する切断要求があったと判断した場合(ステップS114:YES)、接続制御部20の接続処理部20cは、すべてのプログラム14、16、18とアクセスポイント6、12との接続を切断する(ステップS118)。
ステップS114、S118で、接続制御部20が、すべてのプログラム14、16、18からアクセスポイント6、12との接続を切断する切断要求があり、すべてのプログラム14、16、18とアクセスポイント6、12との接続を切断する処理を、模式図を用い説明する。図22は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図22に示す状況32では、すでにプログラム14、16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している場合に、プログラム14からアクセスポイント6との接続を切断する切断要求が出力されている。この切断要求に基づいて、接続制御部20の接続処理部20cは、プログラム14とアクセスポイント6との接続を切断する。
プログラム14は、CPU20のバックグラウンドで実行するプログラムであり、プロセス種別が「通信管理プログラム」である。また、プログラム14からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「バックグラウンド」の項目が含まれている。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム14、16からの接続要求を満たしており、APの種類は「ネットワーク設定1」である。ネットワーク設定1は、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
状況33では、プログラム16が、アクセスポイント6に接続している場合に、プログラム16からアクセスポイント6との接続を切断する切断要求が出力されている。この切断要求に基づいて、接続制御部20の接続処理部20cは、プログラム14とアクセスポイント6との接続を切断する。
状況34では、すべてのプログラム14、16からアクセスポイント6との接続を切断する切断要求があったので、接続制御部20は、アクセスポイント6との接続を切断する。接続制御部20の状態は、WAN接続からアイドル状態に変化する。
図6に戻って、受付部20aが、すべてのプログラム14、16、18からアクセスポイント6、12との接続を切断する切断要求がないと判断した場合(ステップS114:NO)、接続制御部20は、アクセスポイント6、12との接続が切断されたか否かを判断する(ステップS116)。プログラム14、16、18からアクセスポイント6、12との接続を切断する切断要求がない場合であっても、アクセスポイント6、12との通信状態が悪くなり、プログラム14、16、18とアクセスポイント6、12との接続が切断される場合がある。
つまり、接続制御部20が、アクセスポイント6、12との接続が切断されたと判断した場合(ステップS116:YES)、接続制御部20の接続処理部20cは、すべてのプログラム14、16、18とアクセスポイント6、12との接続を切断する(ステップS118)。
ステップS116、S118で、接続制御部20が、アクセスポイント6、12との接続が切断され、すべてのプログラム14、16、18とアクセスポイント6、12との接続を切断する処理を、模式図を用い説明する。図23は、本実施の形態に従うゲーム装置10のプログラム14、16、18とアクセスポイント6、12との接続の状況を示す模式図である。
図23に示す状況35では、すでにプログラム16が、APの種類が「ネットワーク設定1」のアクセスポイント6に接続している場合に、アクセスポイント6との通信状態が悪くなり、接続制御部20とアクセスポイント6との接続を切断している。
プログラム16は、CPU20のフォアグラウンドで実行するプログラムであり、プロセス種別が「アプリケーション」である。また、プログラム16からの接続要求の情報には、APの種類が「ALL」、接続レベルが「WAN」、優先度「フォアグラウンド」の項目が含まれている。
アクセスポイント6は、プログラム16からの接続要求を満たしており、APの種類は「ネットワーク設定1」である。ネットワーク設定1は、インターネット2に接続することが可能であるので、接続レベルが「WAN」となる。そのため、接続制御部20の状態は、WAN接続となっている。
状況36では、接続制御部20が、アクセスポイント6の接続が切断したので、プログラム16との接続を切断している。そのため、接続制御部20の状態は、WAN切断となっている。
状況37では、接続制御部20が、すべてのプログラムとアクセスポイント6との接続を切断したので、接続制御部20の状態がアイドル状態に変化している。
図6に戻って、接続制御部20が、アクセスポイント6、12との接続が切断されていないと判断した場合(ステップS116:NO)、接続制御部20は、処理をステップS114に戻す。
次に、接続制御部20は、ゲーム装置10の電源がOFF状態になったか、またはスリープ状態になったかを判断する(ステップS120)。接続制御部20が、ゲーム装置10の電源がOFF状態になった、またはスリープ状態になったと判断した場合(ステップS120:YES)、CPU22は、接続制御プログラムを終了することで、接続制御部20を停止する。
接続制御部20が、ゲーム装置10の電源がOFF状態になっていない、およびスリープ状態になっていないと判断した場合(ステップS120:NO)、接続制御部20は、処理をステップS100に戻す。
[e7.接続制御部20の状態の遷移について]
図24は、本実施の形態に従うゲーム装置10の接続制御部20の状態の遷移を示した模式図である。接続制御部20は、起動するとアクセスポイント6、12と接続していないアイドル状態20iとなる。次に、接続制御部20は、プログラム14、16、18から接続レベルが「LAN」の接続要求を受付けると、接続レベルが「LAN」のアクセスポイント6、12と接続してLAN接続状態20lとなる。また、接続制御部20は、プログラム14、16、18から接続レベルが「WAN」の接続要求を受付けると、接続レベルが「WAN」のアクセスポイント6、12と接続してWAN接続状態20wとなる。なお、接続制御部20は、プログラム14、16、18と、アクセスポイント6、12との接続が切断されると、アイドル状態20iに戻る。
さらに、接続制御部20は、プログラム14、16、18から独占接続要求を受付けると、接続レベルが「LAN」または「WAN」のアクセスポイント6、12との接続を独占した状態である独占接続状態20eとなる。また、接続制御部20は、接続レベルが「LAN」のアクセスポイント6、12と接続してあるLAN接続状態20lにおいて、接続テストが成功した場合、接続レベルが「WAN」のアクセスポイント6、12と接続してあるWAN接続状態20wに遷移する。接続制御部20は、接続レベルが「WAN」のアクセスポイント6、12と接続してあるWAN接続状態20wにおいて、インターネット2と接続できなくなった場合、接続レベルが「LAN」のアクセスポイント6、12と接続してあるLAN接続状態20lに遷移する。
以上のように、本実施の形態に従うゲーム装置10は、受付部20aで受付けた接続要求の情報と、アクセスポイント6、12との接続状況の情報とを比較し、複数のプログラム14、16、18のうち接続要求を行なったプログラムとアクセスポイント6、12との接続を行なうか否かを判断部20bで判断し、判断部20bの結果に基づいて、接続要求を行なったプログラム14、16、18とアクセスポイント6、12との接続の処理を接続処理部20cで行なう。そのため、複数のプログラム14、16、18から接続レベルおよび種類の異なる複数のアクセスポイント6、12と接続するための接続要求が出力された場合であっても、ゲーム装置10は、複数のプログラム14、16、18からの接続要求を処理して、アクセスポイント6、12に接続することができる。
また、本実施の形態に従うゲーム装置10は、接続制御部20がプログラム14、16、18とアクセスポイント6、12との接続を制御するため、プログラム14、16、18を実行していないときでも、アクセスポイント6、12と接続して必要な情報を交換するなどの処理を行なうことができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本実施の形態では、プログラム14、16、18からアクセスポイント6、12のいずれかと接続するための接続要求を受付ける処理、接続要求の情報とアクセスポイント6、12との接続状況の情報とを比較して、接続要求を行なったプログラムとアクセスポイント6、12のいずれかとの接続を行なうか否かを判断する処理、判断結果に基づいて、接続要求を行なったプログラムとアクセスポイント14、16、18のいずれかとの接続の処理を行なう処理を1台のゲーム装置10で実行しているが、これに限られず、上記の処理を互いに通信可能な複数の情報処理装置によって分担して実行するようになっていてもよい。