図1を参照して、本発明の一実施形態に係る通信システムについて説明する。図1に示すように、当該通信システムの一例である通信システム1は、通信端末装置3および中継サーバ200が、ネットワーク100および複数のアクセスポイント300を介して接続されて構築される。
通信端末装置3は、無線通信を用いて、アクセスポイント300等を介してネットワーク100に接続可能に構成されている。そして、通信端末装置3は、ネットワーク100を介して、中継サーバ200と接続を確立することによって、中継サーバ200との通信が可能となる。例えば、通信端末装置3は、交換可能なメモリカードや光ディスク等の記録媒体内に記憶された、または、サーバや他の装置から受信されたプログラムを実行可能である。通信端末装置3は、携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。
中継サーバ200は、通信端末装置3から受信要求された場合、当該通信端末装置3から送信された送信データを受信して記憶部に格納する。また、中継サーバ200は、通信端末装置3から送信要求された場合、既に上記記憶部に格納されている送信データから当該送信要求に応じて送信するデータを抽出し、当該抽出したデータを送信要求元の通信端末装置3へ送信する。
次に、図2を参照して、通信端末装置3について説明する。なお、図2は、通信端末装置3の構成の一例を示すブロック図である。
通信端末装置3は、通信部31、操作部32、LCD33、CPU34、メモリ35、およびプログラム記憶部36を備える。なお、通信端末装置3は、CPU34を少なくとも含む情報処理装置と他の装置とを含む1以上の装置によって構成されてもよい。
通信部31は、他の通信機器等と無線通信を行う機能を有している。本実施例では、通信部31は、IEEE802.11b/g/n/ac/adの規格等に準じた方式により、無線LANに接続する機能を有している。
CPU34は、各種の情報処理を実行するための情報処理手段(コンピュータ)の一例である。CPU34は、各種の情報処理として、通信部31を介して中継データを受信し、当該中継データに応じた処理等を実行する機能を有する。また、CPU34は、各種の情報処理として、他の通信端末装置3へ送信する送信データを作成して、通信部31を介して当該送信データを送信する処理等を実行する機能を有する。例えば、CPU34が所定のプログラムを実行することによって、上記機能が実現される。本実施形態においては、CPU34は、中継サーバ200との間でデータを送受信するタスクを設定し、通信部31を介して中継サーバ200と通信可能となった場合に当該タスクを実行する情報処理(通信制御処理)を行う。
メモリ35は、CPU34が上記情報処理を実行する際に用いる各種のデータを記憶する。メモリ35は、例えばCPU34がアクセス可能なメモリである。
プログラム記憶部36は、プログラムを記憶(格納)する。プログラム記憶部36は、CPU34がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム記憶部36は、CPU34を含む通信端末装置3内に設けられる記憶装置であってもよいし、CPU34を含む通信端末装置3に着脱自在に装着される記憶媒体であってもよい。また、プログラム記憶部36は、CPU34とネットワークを介して接続される記憶装置(サーバ等)であってもよい。CPU34は、プログラムの一部または全部を適宜のタイミングでメモリ35に読み出し、読み出されたプログラムを実行するようにしてもよい。
操作部32は、ユーザによって操作可能な入力装置である。操作部32は、どのような入力装置であってもよい。例えば、操作部32は、操作ボタン、スティック、タッチパネル、ジャイロセンサ等の姿勢センサを備えていてもよい。
LCD33は、通信端末装置3が備える表示部の一例であり、CPU34の指示にしたがって画像を表示する。なお、LCD33は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示して、立体視可能な表示装置であってもよい。
次に、図3を参照して、中継サーバ200について説明する。なお、図3は、中継サーバ200の構成の一例を示すブロック図である。
中継サーバ200は、通信部201、制御部202、および記憶部203を有している。通信部201は、通信パケットの送受信を行うことで、ネットワーク100を介して通信端末装置3や他の装置(例えば、他のサーバ)等と通信を行う。制御部202は、通信端末装置3からの受信要求に応じて、当該通信端末装置3から送信された送信データを受信して記憶部203に格納する処理、通信端末装置3からの送信要求に応じて、記憶部203に格納されている中継データから当該送信要求に応じて送信対象を抽出し、当該抽出した送信対象データを送信要求元の通信端末装置3へ送信する処理等を行う。記憶部203は、制御部202で実行されるプログラム、通信端末装置3との送受信処理に必要な各種データ等が記憶される。なお、中継サーバ200は、単一のサーバマシンから構成されてもいいし、複数のサーバマシンによって構成されてもよい。
次に、通信端末装置3や中継サーバ200が行う具体的な処理を説明する前に、図4〜図8を用いて通信システム1において行われる処理の概要について説明する。なお、図4は、通信システム1において、通信端末装置3と中継サーバ200との間でデータを送受信する第1段階の状態の一例を示す図である。図5は、通信システム1において、通信端末装置3と中継サーバ200との間でデータを送受信する第2段階の状態の一例を示す図である。図6は、通信システム1において、通信端末装置3と中継サーバ200との間でデータを送受信する第3段階の状態の一例を示す図である。図7は、通信システム1において、通信端末装置3と中継サーバ200との間でデータを送受信する第4段階の状態の一例を示す図である。図8は、通信システム1において、通信端末装置3と中継サーバ200との間でデータを送受信する第5段階の状態の一例を示す図である。
図4において、中継サーバ200は、ネットワーク100を介して、複数のアクセスポイント300のうちの1つであるアクセスポイント300aと接続されている。アクセスポイント300aは、通信端末装置3との無線通信が可能となる通信範囲Raを有している。なお、中継サーバ200の記憶部203には、通信端末装置3へ中継するための中継データが格納されていない状態となっている。
また、複数の通信端末装置3のうちの1つである第1通信端末装置3aが、通信範囲Ra外に配置されている。ここで、第1通信端末装置3aは、他の通信端末装置3へアプリケーションXに関連する送信データAを送信するタスクと、他の通信端末装置3からアプリケーションXに関連する中継データを受信するタスクとが登録された状態となっている。
ここで、本実施例におけるタスクは、中継サーバ200を介して、他の通信端末装置3との間で所定のデータを送信または受信するための処理内容を定義した概念である。上記タスクは、送信処理または受信処理に対応しており、それぞれ送信タスクと受信タスクとして管理される。そして、送信タスクおよび/または受信タスクが登録された通信端末装置3がアクセスポイント300の通信範囲R内に配置され、当該アクセスポイント300を介して中継サーバ200との間でデータ送受信が可能となった場合、当該送信タスクおよび/または受信タスクが中継サーバ200との間で実行される。なお、本実施例では、送信タスクは、アプリケーションに関連付けられた送信データを不特定の通信端末装置3へ送信する処理が定義され、当該送信タスクが実行されることによって当該送信データが中継サーバ200に送信される。また、受信タスクは、アプリケーションに関連付けられた送信データ(中継データ)を不特定の通信端末装置3から受信要求する処理が定義され、当該受信タスクが実行されることによって中継サーバ200に格納されている中継データが送信データとして受信要求元へ送信される。
図5において、上記タスクが登録された第1通信端末装置3aがアクセスポイント300aの通信範囲Ra内に進入した場合、第1通信端末装置3aとアクセスポイント300aとの間における無線通信の接続を確立する処理が自動的に行われる。そして、第1通信端末装置3aに登録された送信タスクに応じて、アクセスポイント300aを介して、アプリケーションXに関連する送信データAが中継サーバ200へ送信される。そして、送信データAは、ネットワーク100を介して中継サーバ200へ送信され、アクセスポイント300aを介して送信されたアプリケーションXに関連する中継データとして記憶部203に格納される。なお、第1通信端末装置3aには他の通信端末装置3からアプリケーションXに関連する中継データを受信する受信タスクが登録されているが、アプリケーションXに関連する適切な中継データが中継サーバ200に格納されていない場合、第1通信端末装置3aへは中継データが送信されない。この場合、登録されたタスクが実行されないことになる。したがって、第1通信端末装置3aは、中継データを受信していない状態で通信範囲Raから外れる(図6参照)。
一方、複数の通信端末装置3のうちの1つである第2通信端末装置3bが、通信範囲Ra外に配置されている。ここで、第2通信端末装置3bは、他の通信端末装置3へアプリケーションXに関連する送信データBを送信する送信タスクと、他の通信端末装置3からアプリケーションXに関連する中継データを受信する受信タスクとが登録された状態となっている。
図6において、上記タスクが登録された第2通信端末装置3bがアクセスポイント300aの通信範囲Ra内に進入した場合、第1通信端末装置3aと同様に第2通信端末装置3bとアクセスポイント300aとの間における無線通信の接続を確立する処理が自動的に行われる。そして、第2通信端末装置3bに登録された送信タスクに応じて、アクセスポイント300aを介して、アプリケーションXに関連する送信データBが中継サーバ200へ送信される。そして、送信データBは、ネットワーク100を介して中継サーバ200へ送信され、送信データAと同様にアクセスポイント300aを介して送信されたアプリケーションXに関連する中継データとして記憶部203に格納される。また、第2通信端末装置3bに登録された受信タスクに応じて、中継サーバ200からアクセスポイント300aを介して送信されたアプリケーションXに関連する中継データが第2通信端末装置3bへ送信される。例えば、中継サーバ200は、通信端末装置3からアプリケーションXに関連する中継データの受信要求がされた場合、当該受信要求されたアプリケーションに関連する中継データのうち、アクセスポイント300aを介して送信された格納日時が最も古い中継データを送信対象として記憶部203から抽出する。そして、中継サーバ200は、抽出した送信対象(中継データ)を受信要求元(第2通信端末装置3b)へ送信して、当該送信対象を記憶部203から削除する。ここで、図5を用いて説明したように、記憶部203には、第1通信端末装置3aから送信された送信データAがアクセスポイント300aを介して送信されたアプリケーションXに関連する中継データとして格納されており、中継サーバ200は、当該送信データAを送信対象として第2通信端末装置3bへ送信する。そして、第2通信端末装置3bは、送信データAを受信して当該送信データAを記憶部(例えば、メモリ35)に格納した状態で通信範囲Raから外れる(図7参照)。
また、複数の通信端末装置3のうちの1つである第3通信端末装置3cが、通信範囲Ra外に配置されている。ここで、第3通信端末装置3cは、他の通信端末装置3へアプリケーションXに関連する送信データCを送信する送信タスクと、他の通信端末装置3からアプリケーションXに関連する中継データを受信する受信タスクとが登録された状態となっている。
図7において、上記タスクが登録された第3通信端末装置3cがアクセスポイント300aの通信範囲Ra内に進入した場合、第1通信端末装置3a等と同様に第3通信端末装置3cとアクセスポイント300aとの間における無線通信の接続を確立する処理が自動的に行われる。そして、第3通信端末装置3cに登録された送信タスクに応じて、アクセスポイント300aを介して、アプリケーションXに関連する送信データCが中継サーバ200へ送信される。そして、送信データCは、ネットワーク100を介して中継サーバ200へ送信され、送信データA等と同様にアクセスポイント300aを介して送信されたアプリケーションXに関連する中継データとして記憶部203に格納される。また、第3通信端末装置3cに登録された受信タスクに応じて、中継サーバ200からアクセスポイント300aを介して送信されたアプリケーションXに関連する中継データが第3通信端末装置3cへ送信される。ここで、図6を用いて説明したように、記憶部203には、第2通信端末装置3bから送信された送信データBがアクセスポイント300aを介して送信されたアプリケーションXに関連する最も古い中継データとして格納されており、中継サーバ200は、当該送信データBを送信対象として第3通信端末装置3cへ送信し、当該送信後に送信データBを記憶部203から削除する。
そして、図8に示すように、第3通信端末装置3cは、送信データBを受信して当該送信データBを記憶部(例えば、メモリ35)に格納した状態で通信範囲Raから外れる。そして、中継サーバ200の記憶部203には、アクセスポイント300aを介して送信されたアプリケーションXに関連する中継データとして、第3通信端末装置3cから送信された送信データCが格納された状態となる。
このように、通信端末装置3に送信タスクとして登録された送信データは、中継サーバ200で中継されて他の通信端末装置3へ送信される。そして、図4〜図8を用いた説明で明らかなように、第1通信端末装置3aが送信した送信データAを第2通信端末装置3bが受信し、第2通信端末装置3bが送信した送信データBを第3通信端末装置3cが受信し、第3通信端末装置3cが送信した送信データCを次にアクセスポイント300aを介して中継サーバ200にアクセスする通信端末装置3が受信することができる。このように、送信タスクに登録された送信データは、一対の通信端末装置3によって互いにデータ交換されるのではなく、中継サーバ200を介して、バケツリレー方式で他の通信端末装置3へ受け渡されることになる。
ここで、上述した通信システム1における処理の概要では、アクセスポイント300aを介して中継サーバ200へ複数の通信端末装置3がアクセスする例を用いたが、複数のアクセスポイント300を介して中継サーバ200とのアクセスが可能である場合、中継サーバ200は、アクセスポイント300毎に上述した中継データの管理を行う。例えば、中継サーバ200は、通信端末装置3から中継データの受信要求が行われた場合、当該通信端末装置3が接続を確立しているアクセスポイント300と同じアクセスポイント300を介して送信されて格納された中継データを送信対象とする。すなわち、中継サーバ200へアクセス可能な複数のアクセスポイント300が設定されている場合、上述したバケツリレー方式の通信の仕組みは、同じアクセスポイント300を介してアクセスされたデータを対象として行われることになる。このように、上記通信の仕組みは、複数の通信端末装置3がある位置に形成されている1つの通信範囲Rを出入りした場合に当該通信端末装置3から送信されるデータをグループとして成立させるものであり、他の位置に形成されている別の通信範囲Rでは別のデータグループが設定される。したがって、通信端末装置3が通信を確立するアクセスポイント300は、通信端末装置3が中継サーバ200へアクセスした際の位置(すなわち、アクセスポイント300の設置位置や当該アクセスポイント300の通信範囲R)が識別可能な識別情報として取り扱われており、当該識別情報に基づいたアクセス位置毎に上記通信の制御が行われていることになる。
なお、上述した通信システム1における処理では、中継サーバ200と通信端末装置3とが、以下のような付加条件をさらに加えて通信を行ってもかまわない。
第1の例として、中継サーバ200は、通信端末装置3がアクセス可能な複数のアクセスポイント300をグループ化して、上述した通信制御を行ってもよい。例えば、中継サーバ200は、グループ化されたアクセスポイント300群を1つの単位として、アクセスポイント300群毎に上述した中継データの管理を行う。この場合、中継サーバ200は、通信端末装置3から中継データの受信要求が行われた場合、当該通信端末装置3が接続を確立しているアクセスポイント300と同グループに属するアクセスポイント300を介して送信されて格納された中継データを送信対象とする。これによって、中継サーバ200を介して送信データが中継される対象が多くなるため、上述した方式によってデータ送受信される確率を高めることができる。なお、複数のアクセスポイント300をグループ化する例としては、近隣に配置されているアクセスポイント300や所定の距離以内や所定の地域に配置されているアクセスポイント300を1つのグループとする場合や、設置場所の種類(例えば、設置店舗の業種別やチェーンストア別)によってアクセスポイント300をグループ化する場合が考えられる。
第2の例として、中継サーバ200は、通信端末装置3から送信データを受信するアクセスポイント300と当該送信データを中継して通信端末装置3へ送信するアクセスポイント300とを、それぞれ別に設定してもよい。例えば、中継サーバ200は、送信データを受信するアクセスポイント300aと中継データを送信するアクセスポイント300bとの組を設定し、アクセスポイント300bを介して中継データの受信要求を行った通信端末装置3に対しては、アクセスポイント300aを介して送信された送信データを送信対象とする。さらに、中継サーバ200は、上記アクセスポイント300の組において逆の設定、すなわちアクセスポイント300bを介して受信した送信データを、アクセスポイント300aを介して送信する設定をさらに加えてもよい。この場合、中継サーバ200は、アクセスポイント300bを介して中継データの受信要求を行った通信端末装置3に対しては、アクセスポイント300aを介して送信された送信データを送信対象とするとともに、アクセスポイント300aを介して中継データの受信要求を行った通信端末装置3に対しては、アクセスポイント300bを介して送信された送信データを送信対象とする。例えば、互いに遠隔した位置に配置されたアクセスポイント300の組に対してこのような送受信の仕組みを設定することによって、設定された遠隔した場所同士で送信データが自動的にやり取りされるような今までにない通信環境を提供することができる。
第3の例として、通信端末装置3は、上述した識別情報に加えてデータ送受信するユーザ属性情報に応じて、送信対象とする送信データを選択してもよい。例えば、通信端末装置3は、ユーザによって予め送信先ユーザが設定(例えば、当該ユーザの友達となるフレンドデータを設定)されており、他の通信端末装置3へ送信する送信データの宛先として当該送信先ユーザの少なくとも1人を指定している場合、当該送信データは中継サーバ200へ送信する送信対象から外してもよい。これによって、より多様な条件に基づいて、送信データを中継サーバ200へ送信することができるとともに、宛先が設定された送信データが中継サーバ200に格納されたまま当該宛先に対応する通信端末装置3がアクセスしてこないことによりいつまでも中継されずに残ってしまうような状況を防止することができる。
第4の例として、中継サーバ200は、上述した識別情報に加えてデータ送受信するユーザ属性情報に応じて、送信対象とする中継データを選択してもよい。例えば、中継サーバ200は、通信端末装置3のユーザが送信データを送信したくない相手を当該通信端末装置3に設定(例えば、送信先ブラックリストデータを設定)している場合、当該ユーザの送信データは当該相手への送信対象から外してもよい。また、中継サーバ200は、通信端末装置3のユーザが中継データを受信したくない相手を当該通信端末装置3に設定(例えば、受信拒否ブラックリストデータを設定)している場合、当該相手の送信データは当該ユーザへの送信対象から外してもよい。何れの場合であっても、中継サーバ200は、通信端末装置3からのアクセス毎に当該通信端末装置3から上記設定を示すデータを取得し、当該データを参照して送信対象とする中継データを選択する。これによって、中継サーバ200は、より多様な条件に基づいて、中継データを通信端末装置3へ中継することができる。
第5の例として、中継サーバ200は、アクセス可能とする時間的な条件を加えてもよい。例えば、中継サーバ200は、一度アクセスした通信端末装置3が同じアクセスポイント300を介して所定の時間以内(例えば、8時間以内)に再アクセスした場合、当該再アクセスにおける送信データの送信および中継データの受信要求を拒否してもよい。したがって、通信端末装置3における送信タスクおよび/または受信タスクは、同じアクセスポイント300を介して所定の時間以内に行う場合は、実行されないことになる。なお、中継サーバ200は、一度アクセスした通信端末装置3が異なるアクセスポイント300を介して再アクセスした場合は、上記所定の時間以内であっても当該再アクセスにおける送信データの送信や中継データの受信要求を通常通り行う。このように通信するための条件として時間的な制約を加えることによって、同じアクセスポイント300を介してタスクが連続して実行されることを防止することができる。
第6の例として、中継サーバ200は、同じユーザの中継データが記憶部203に格納されている場合、当該ユーザからの送信データの受信を拒否してもよい。例えば、中継サーバ200は、通信端末装置3がアプリケーションXに関連する送信データを中継サーバ200へ送信する場合、当該通信端末装置3のユーザから送信されたアプリケーションXに関連する送信データが既に記憶部203に格納されていれば、当該送信データの受信を拒否してもよい。典型的には、送信データを送信しようとしているアクセスポイント300と同じアクセスポイント300を介して送信された同じユーザの送信データが既に記憶部203に格納されている場合に、送信データの受信が拒否される。これによって、同じ通信端末装置3から送信データがいくつも中継サーバ200へ送信されて送信データが中継サーバ200へ吸い上げられてしまうような状況を防止することができる。
第7の例として、通信端末装置3は、複数のアプリケーションそれぞれに関する送信データを複数同時に中継サーバ200へ送信してもよい。また、中継サーバ200は、複数のアプリケーションそれぞれに関する中継データを複数同時に通信端末装置3へ送信してもよい。例えば、通信端末装置3は、アプリケーションに対応して1タイトルの送信データの送信を登録し、当該登録を複数のアプリケーションに対して行う送信タスクを設定することによって、複数の送信データを中継サーバ200へ一括送信してもよい。また、通信端末装置3がアプリケーションに対応して1タイトルの中継データの受信要求を登録し、当該受信要求を複数のアプリケーションに対して同時に行う受信タスクを設定することによって、中継サーバ200は、当該受信要求に応じて複数の中継データを通信端末装置3へ一括送信してもよい。この場合、中継サーバ200は、通信端末装置3とのデータ送受信の際、複数のアプリケーションそれぞれに対して送信データの受信可否判定や中継データの送信対象の判定を行って、当該判定に応じて送信データの受信および/または中継データの送信を行う。
第8の例として、中継サーバ200は、上述したバケツリレー方式の仕組みを用いた通信において対象外とするアクセスポイント300を設定してもよい。例えば、中継サーバ200は、通信端末装置3との通信において利用可能なアクセスポイント300であっても、ユーザ個人が設置しているものを対象外とする。一例として、ユーザの自宅に設置されているアクセスポイント300を介して中継サーバ200へアクセスする通信端末装置3に対して、上述したバケツリレー方式の仕組みを用いた通信を行ったとしても、当該アクセスポイント300にアクセス可能な通信端末装置3が限定される(典型的には、ユーザの通信端末装置3のみ)ため、結果的に当該通信が効果的に行われることがないが、送信データのみが中継サーバ200へ吸い上げられてしまうことが考えられる。このような状況を防止するために、中継サーバ200は、公共のアクセスポイント300を介してアクセスされた通信端末装置3を対象として上述したバケツリレー方式の仕組みを用いた通信を行う。
第9の例として、中継サーバ200は、上述したバケツリレー方式の仕組みを用いた通信において対象外とするアプリケーションを設定してもよい。例えば、中継サーバ200は、上述した仕組みを用いた通信を用いて送信データを送受信することによって、仕様上の問題が生じるアプリケーションについては、当該アプリケーションに関連する送信データおよび/または中継データの送受信を禁止してもよい。
第10の例として、中継サーバ200は、通信端末装置3がアクセスした際の位置が識別可能な識別情報として、アクセスポイント300の情報(例えば、識別情報や配置位置情報)だけでなく、他の情報を用いてもよい。一例として、通信端末装置3がGPS(Global Positioning System)機能を有している場合、中継サーバ200は、当該GPS機能によって算出された地球上の位置を通信端末装置3がアクセスした際の位置が識別可能な識別情報として通信端末装置3から取得し、当該識別情報に基づいて上述した通信制御を行う。具体的には、中継サーバ200は、地球上に複数の領域を設定して同じ領域内からのアクセスを対象として送信データの中継処理を行ったり、アクセスされた位置から所定の距離以内で行われた他のアクセスを対象として送信データの中継処理を行ったりする。他の例として、通信端末装置3がアクセスポイント300との無線通信の際の電波強度を検出する機能を有している場合、中継サーバ200は、当該機能によって検出された各アクセスポイント300との電波強度と各アクセスポイント300の設置位置とに基づいて算出されたアクセス位置を、通信端末装置3がアクセスした際の位置が識別可能な識別情報として算出し、当該識別情報に基づいて上述した通信制御を行う。この場合も、上述したGPS情報と同様に識別情報を扱って送信データの中継処理を行うことができる。
次に、通信システム1において行われる処理の詳細を説明する。まず、図9〜図11を参照して、処理において用いられる主なデータについて説明する。なお、図9は、通信端末装置3のメモリ35に記憶される主なデータおよびプログラムの一例を示す図である。図10は、中継サーバ200の記憶部203に記憶される主なデータおよびプログラムの一例を示す図である。図11は、記憶部203に記憶される中継データDoの一例を示す図である。
図9に示すように、メモリ35のデータ記憶領域には、操作データDa、通信IDデータDb、デバイスIDデータDc、アクセスポイント識別情報データDd、送信タスクデータDe、送信データDf、受信タスクデータDg、受信データDh、およびユーザ属性データDi等が記憶される。なお、メモリ35には、図9に示す情報に含まれるデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータが記憶される。また、メモリ35のプログラム記憶領域には、通信プログラムを構成する各種プログラム群Paが記憶される。
操作データDaは、ユーザが操作部32を操作した操作情報を示すデータである。例えば、操作ボタン等の操作部32を操作したことを示す操作データは、通信端末装置3が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作データDaに格納されて更新される。
通信IDデータDbは、通信端末装置3が実行する通信アプリケーション(通信プログラム)毎に識別が可能となるユニークな符合を示すデータであり、例えば通信アプリケーション識別のための標識となる文字列である通信IDを示すデータである。
デバイスIDデータDcは、通信端末装置3毎に識別が可能となるユニークな符号(デバイスID)を示すデータであり、例えばデバイス識別のための標識となる改変不可能な文字列を示すデータである。そして、デバイスIDデータDcには、通信端末装置3に対して予め設定されているデバイスIDが格納されている。
アクセスポイント識別情報データDdは、アクセスポイント300に接続するための情報を示すデータである。例えば、アクセスポイント識別情報データDdには、アクセスポイント300に接続するための識別子(例えば、SSID(Service Set Identifier)、ESSID(Extended Service Set Identifier)、BSSID(Basic Service Set Identifier;MACアドレス)等)を示すデータが格納される。なお、アクセスポイント300に接続するためにWEP(Wired Equivalent Privacy)鍵やWPA(Wi−Fi Protected Access)鍵等の鍵情報が必要である場合、これらの鍵情報がアクセスポイント識別情報データDdに格納されてもよい。
送信タスクデータDeは、通信端末装置3において登録された送信タスクを示すデータである。送信データDfは、送信タスクにおいて他の通信端末装置3へ送信するデータとして登録されたデータであり、当該送信タスクが実行される際、中継サーバ200へ送信される送信データが格納される。
受信タスクデータDgは、通信端末装置3において登録された受信タスクを示すデータである。受信データDhは、受信タスクが実行されることによって、中継サーバ200から受信した中継データが格納される。
ユーザ属性データDiは、通信端末装置3のユーザによって設定されたデータであり、データを送受信する際に用いられる他のユーザに関するデータである。例えば、ユーザ属性データDiは、ユーザによって設定された送信先ユーザリスト(例えば、当該ユーザの友達となるフレンドデータ)、ユーザによって設定された送信データを送信したくない相手ユーザリスト(例えば、送信先ブラックリストデータ)、ユーザによって設定された送信データを受信したくない相手ユーザリスト(例えば、受信拒否ブラックリストデータ)等を含んでいる。
図10に示すように、記憶部203のデータ記憶領域には、ユーザ属性データDm、アプリケーション属性データDn、中継データDo、およびアクセスポイントグループデータDp等が記憶される。なお、記憶部203には、図10に示す情報に含まれるデータの他、中継サーバ200で行う処理に必要なデータ等が記憶される。また、記憶部203のプログラム記憶領域には、上記処理を実現するための各種プログラム群Pbが記憶される。
ユーザ属性データDmは、通信端末装置3のアクセス毎に当該通信端末装置3から取得したユーザ属性に関する情報が、通信端末装置3毎に格納されている。ユーザ属性データDmは、通信端末装置3のアクセス毎に最新のユーザ属性に関する情報に更新され、例えば、上述したユーザ属性データDiに格納されているデータが通信端末装置3からそれぞれ取得されて格納される。
アプリケーション属性データDnは、送受信する送信データおよび/または中継データに関連するアプリケーションの属性を示すデータであり、例えば、上述した仕組みを用いた通信を許可するアプリケーションと不許可となったアプリケーションとがそれぞれ区別可能な情報が格納されている。
中継データDoは、通信端末装置3から取得した送信データを、他の通信端末装置3へ中継する中継データとして格納している。例えば、図11に示すように、中継データDoは、送信データを取得したアクセスポイントおよび取得した送信データが関連しているアプリケーション毎に管理されている。例えば、送信データを取得したアクセスポイントは、アクセスポイント毎に設定されているMACアドレス(Media Access Control address)によって管理される。例えば、図11に示した例では、アクセスポイントAを介して取得した送信データは、アプリケーションAに関連するデータとして送信データA1〜A4が記述されている。これら送信データA1〜A4は、当該データを送信した通信端末装置3が有する通信IDが関連付けられており、取得日時順に記述される。同様に、アプリケーションBに関連するデータとして送信データB1〜B3が記述され、アプリケーションCに関連するデータとして送信データC1〜C4が記述されている。これらの送信データは、通信端末装置3から送信データを受信したことに応じて中継データDoに記述され、他の通信端末装置3へ送信したことに応じて中継データDoから削除される。
アクセスポイントグループデータDpは、中継データを送信する際に設定されたアクセスポイントのグループを示すデータである。例えば、上述した第1の例や第2の例によって中継データを送信する場合、これらグループ化されたアクセスポイント群やアクセスポイントの組を定義するデータが、アクセスポイントグループデータDpに格納される。
次に、図12〜図14を参照して、通信端末装置3および中継サーバ200において行われる処理の詳細を説明する。なお、図12は、通信端末装置3において実行される処理の一例を示すフローチャートである。図13は、図12におけるステップ45の通信処理の一例を示すサブルーチンである。図14は、中継サーバ200において実行される処理の一例を示すフローチャートである。ここで、図12〜図14に示すフローチャートにおいては、通信システム1における処理のうち、通信端末装置3と中継サーバ200との間で行われる通信に関する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図12〜図14では、CPU34および制御部202がそれぞれ実行する各ステップを「S」と略称する。
本実施形態においては、図12に示す一連の処理は、CPU34が、プログラム記憶部36に記憶される通信プログラムを実行することによって行われる。なお、図12に示す処理が開始されるタイミングは任意である。例えば、中継サーバ200と通信するためのタスクを登録する指示をユーザが行ったことに応じて通信プログラムの実行が開始されてもよい。このとき、通信プログラムは、適宜のタイミングでその一部または全部がメモリ35に読み出され、CPU34によって実行される。これによって、図12に示す一連の処理が開始される。なお、通信プログラムは、プログラム記憶部36に予め記憶されているものとする。ただし、他の実施形態においては、通信端末装置3に着脱可能な記憶媒体から取得されてメモリ35に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ35に記憶されてもよい。
また、図12および図13に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU34が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
図12において、CPU34は、送信タスクを登録するか否かを判定する(ステップ41)。そして、CPU34は、送信タスクを登録する場合、ステップ42に処理を進める。一方、CPU34は、送信タスクを登録しない場合、ステップ43に処理を進める。例えば、CPU34は、所定の処理間隔毎に更新されている操作データDaを参照して、通信端末装置3のユーザが送信タスクを登録するための操作を行っている場合、送信タスクを登録すると判定する。
ステップ42において、CPU34は、他の通信端末装置3へ送信データを送信する送信タスクを登録する処理を行い、ステップ43に処理を進める。例えば、CPU34は、ユーザ操作に応じて、中継サーバ200を介して他の通信端末装置3へ送信データを送信する送信タスクを設定する。具体的には、CPU34は、ユーザが他の通信端末装置3へ送信したい送信データを送信データDfに記憶させるとともに、当該送信データを用いるアプリケーションを関連付けて当該送信データを中継サーバ200へ送信することを示す送信タスクを送信タスクデータDeに登録する。なお、CPU34は、ユーザが複数の送信データを送信する指示を示す操作を行った場合、当該複数の送信データを送信データDfに記憶させるとともに、当該複数の送信データをそれぞれ用いるアプリケーションを関連付けて当該複数の送信データを中継サーバ200へ送信することを示す送信タスクを送信タスクデータDeに登録する。
ステップ43において、CPU34は、受信タスクを登録するか否かを判定する。そして、CPU34は、受信タスクを登録する場合、ステップ44に処理を進める。一方、CPU34は、受信タスクを登録しない場合、ステップ45に処理を進める。例えば、CPU34は、所定の処理間隔毎に更新されている操作データDaを参照して、通信端末装置3のユーザが受信タスクを登録するための操作を行っている場合、受信タスクを登録すると判定する。
ステップ44において、CPU34は、他の通信端末装置3から送信された送信データを受信する受信タスクを登録する処理を行い、ステップ45に処理を進める。例えば、CPU34は、ユーザ操作に応じて、中継サーバ200から中継データを受信する受信タスクを設定する。具体的には、CPU34は、ユーザが他の通信端末装置3から受信したい送信データが用いられるアプリケーションを指定して当該送信データを受信したいこと(受信要求)を示す受信タスクを受信タスクデータDgに登録する。なお、CPU34は、ユーザが複数のアプリケーションにそれぞれ関連する複数の送信データを一括して受信する指示を示す操作を行った場合、受信したい複数のアプリケーションを指定して当該アプリケーションにそれぞれ関連する複数の中継データを中継サーバ200から受信したいことを示す受信タスクを受信タスクデータDgに登録する。
ステップ45において、CPU34は、通信処理を行い、ステップ46に処理を進める。以下、図13を参照して、上記ステップ45で行う通信処理について説明する。
図13において、CPU34は、アクセスポイントをサーチする処理を行って(ステップ51)、次のステップに処理を進める。例えば、CPU34は、アクセスポイント識別情報データDdに格納されているアクセスポイント300に接続するための識別子を用いて、いわゆるパッシブスキャンやアクティブスキャンによるアクセスポイントのサーチを行う。
次に、CPU34は、アクセスポイントが検出されたか否かを判定する(ステップ52)。そして、CPU34は、アクセスポイントが検出された場合、ステップ53に処理を進める。一方、CPU34は、アクセスポイントが検出されていない場合、当該サブルーチンによる処理を終了する。
ステップ53において、CPU34は、上記ステップ52において検出されたアクセスポイントとの接続を確立する処理を行い、次のステップに処理を進める。
次に、CPU34は、実行予定のタスクを抽出し(ステップ54)、次のステップに処理を進める。例えば、CPU34は、送信タスクデータDeおよび受信タスクデータDgを参照して、現時点で実行予定となっているタスクを抽出する。
次に、CPU34は、上記ステップ54で抽出した実行予定タスク全てについて、後述するステップ56およびステップ57の処理が行われたか否かを判定する。そして、CPU34は、未処理のタスクが残っている場合、ステップ56に処理を進める。一方、CPU34は、全てのタスクの処理が終了している場合、当該サブルーチンによる処理を終了する。
ステップ56において、CPU34は、未処理のタスクの中から何れか1つを処理対象タスクとして選択し、次のステップに処理を進める。
次に、CPU34は、処理対象タスクにおける定義内容に基づいて、中継サーバ200とのデータ送受信処理を行い、次のステップに処理を進める。例えば、CPU34は、処理対象タスクに対応する送信タスクデータDeまたは受信タスクデータDgを参照し、その定義内容に基づいて中継サーバ200との間でデータの送受信を行う。例えば、処理対象タスクが送信タスクである場合、当該送信タスクにかかる送信データが送信データDfから抽出されて、当該送信データに関連するアプリケーションを区別する情報とともに中継サーバ200へ送信する処理が行われる。また、処理対象タスクが受信タスクである場合、受信を希望するアプリケーションを指定して当該受信タスクにかかる中継データの受信を中継サーバ200に要求し、中継データを中継サーバ200から受信して受信データDhに格納する処理が行われる。
なお、上記ステップ57の処理において、送信タスクによって送信される送信データに宛先(例えば、ユーザの友達となるフレンドデータから選択された宛先)が指定されている場合、当該送信データを送信するタスクを中止してもよい。また、上記ステップ57の処理において、送信タスクおよび受信タスクを処理する際、中継サーバ200へアクセスする毎にユーザ属性データDiに格納されているユーザ属性情報を中継サーバ200へ送信してもよい。このように、ユーザ属性に基づいてタスク処理の要否を判定したりユーザ属性を中継サーバ200へ送信したりすることによって、ユーザ属性に基づいた通信制御が可能となるため、より多様な条件に基づいて、中継サーバ200と通信端末装置との間の通信制御が可能となる。
次に、CPU34は、通信端末装置3とアクセスポイントとが通信可能な状態を継続しているか否かを判定する(ステップ58)。例えば、CPU34は、通信端末装置3がアクセスポイントの通信範囲外に移動している場合、上記ステップ58において否定判定する。そして、CPU34は、通信端末装置3とアクセスポイントとが通信可能な状態を継続している場合、上記ステップ55に戻って処理を繰り返す。一方、CPU34は、通信端末装置3とアクセスポイントとが通信できない状態である場合、当該サブルーチンによる処理を終了する。
図12に戻り、ステップ46において、CPU34は、当該フローチャートによる処理を終了するか否かを判定する。例えば、当該処理を終了する条件としては、ユーザが当該処理を終了する操作を行ったことや、通信端末装置3の電源がオフされたこと等がある。CPU34は、当該処理を終了しない場合に上記ステップ41に戻って処理を繰り返し、当該処理を終了する場合に当該フローチャートによる処理を終了する。
図14において、中継サーバ200の制御部202は、通信端末装置3からアクセスがあるか否かを判定する(ステップ91)。そして、制御部202は、通信端末装置3からアクセスがある場合、ステップ92に処理を進める。一方、制御部202は、通信端末装置3からアクセスがない場合、当該フローチャートによる処理を終了する。
ステップ92において、制御部202は、アクセスした通信端末装置3からタスクを受領する。次に、制御部202は、受領したタスクを解析して、中継サーバ200からデータ送信を要求するタスク(すなわち、受信タスク)か否かを判定する(ステップ93)。そして、制御部202は、データ送信を要求するタスクである場合、ステップ94に処理を進める。一方、制御部202は、データ送信を要求するタスクでない場合、ステップ99に処理を進める。
ステップ94において、制御部202は、通信端末装置3から送信された送信要求を解析する。そして、制御部202は、上記送信要求に応じた中継データを記憶部203から抽出し(ステップ95)、次のステップに処理を進める。
例えば、制御部202は、送信要求において通信端末装置3が用いているアクセスポイントおよび指定されたアプリケーションに基づいて、送信対象とする中継データが関連付けられているアクセスポイントを設定する。一例として、送信要求されたアクセスポイントと同じアクセスポイントを介して送信された中継データを送信対象とする場合、制御部202は、中継データDoを参照して当該アクセスポイントに対して管理されている中継データのうち、指定されたアプリケーションに関連する中継データを送信対象とする。他の例として、送信要求されたアクセスポイントと同じグループに属するアクセスポイントや送信要求されたアクセスポイントとペアリングされたアクセスポイントを介して送信された中継データを送信対象とする場合、制御部202は、アクセスポイントグループデータDpを参照して同じグループに属するアクセスポイントやペアリングされたアクセスポイントを抽出し、中継データDoを参照して当該抽出されたアクセスポイントに対して管理されている中継データのうち、指定されたアプリケーションに関連する中継データを送信対象とする。そして、制御部202は、上記送信対象から最も取得日時が古い中継データを、上記送信要求に応じた中継データとする。
なお、制御部202は、上述した付加条件を考慮して、上記送信対象をさらに絞り込んでもよい。例えば、制御部202は、さらにユーザ属性に応じて中継データを選択する場合、上記送信要求とともに送信されている通信端末装置3のユーザ属性情報や送信データ受領時に通信端末装置3から送信されているユーザ属性情報に基づいて、上記送信対象から中継データをさらに絞り込んでもよい。例えば、上記送信要求した通信端末装置3から中継データを受信したくない相手を示すユーザ属性情報が送信された場合、制御部202は、当該ユーザ属性情報をユーザ属性データDmに格納するとともに、当該相手から送信されている中継データを上記送信対象から外して絞り込む。また、上記送信対象となった中継データを送信した通信端末装置3から送信データを送信したくない相手を示すユーザ属性情報が送信されている場合、制御部202は、当該相手の中に上記送信要求を送信したユーザが含まれていればそのユーザ属性情報に関連する中継データを上記送信対象から外して絞り込む。
次に、制御部202は、上記ステップ95の処理において、上記送信要求に応じて送信する中継データが抽出されたか否かを判断する(ステップ96)。そして、制御部202は、中継データが抽出された場合、ステップ97に処理を進める。一方、制御部202は、抽出される中継データがない場合、ステップ98に処理を進める。
ステップ97において、制御部202は、抽出された中継データを上記送信要求した通信端末装置3へ送信し、ステップ99に処理を進める。例えば、制御部202は、中継データとともに、当該中継データが用いられるアプリケーションが区別可能な情報を、上記送信要求した通信端末装置3へ送信する。そして、制御部202は、送信した中継データを中継データDoから削除する。
ステップ98において、制御部202は、送信できる中継データがないことを示すデータを上記送信要求した通信端末装置3へ送信し、ステップ99に処理を進める。なお、当該データを通信端末装置3が受信することによって、中継データが中継サーバ200から送信されなかった旨を通信端末装置3のユーザへ通知することができるが、そのような通知が不要である場合、上記ステップ98の処理をスキップしてもかまわない。
ステップ99において、制御部202は、受領したタスクを解析して、中継サーバ200でのデータ受信を要求するタスク(すなわち、送信タスク)か否かを判定する。そして、制御部202は、データ受信を要求するタスクである場合、ステップ100に処理を進める。一方、制御部202は、データ受信を要求するタスクでない場合、当該フローチャートによる処理を終了する。
ステップ100において、制御部202は、通信端末装置3から送信された受信要求を解析し、次のステップに処理を進める。
なお、上記ステップ100において、制御部202は、上述した付加条件を考慮して、上記受信要求を解析してもよい。例えば、制御部202は、受信要求において通信端末装置3が用いているアクセスポイント、受信要求している送信データが関連付けられているアプリケーション、および受信要求したユーザ(通信ID)に基づいて、受信要求された送信データを取得するか否かを解析してもよい。具体的には、制御部202は、中継データDoを参照して受信要求において通信端末装置3が用いているアクセスポイントに対して管理されている中継データのうち、受信要求している送信データのアプリケーションに関連付けられた中継データの中に受信要求しているユーザ(通信ID)のものがある場合、当該受信要求された送信データを取得しない判定を行う。また、制御部202は、受信要求された送信データが関連付けられているアプリケーションが当該通信でデータ送受信する対象外のアプリケーションである場合、当該受信要求された送信データを取得しない判定を行ってもよい。
次に、制御部202は、上記ステップ100の解析結果に基づいて、上記受信要求された送信データを取得するか否かを判定する(ステップ101)。そして、制御部202は、送信データを取得する場合、ステップ102に処理を進める。一方、制御部202は、送信データを取得しない場合、ステップ103に処理を進める。
ステップ102において、制御部202は、上記受信要求した通信端末装置3から送信データを受信して中継データDoに格納して、当該フローチャートによる処理を終了する。例えば、制御部202は、受信要求において通信端末装置3が用いているアクセスポイントおよび指定されたアプリケーションに基づいて、受信要求された送信データを中継データDoとして格納する。具体的には、制御部202は、受信要求がアクセスポイントAを介して行われ、アプリケーションAに関連する送信データを受信する要求である場合、当該送信データをアクセスポイントAに対して管理されるアプリケーションAに関連する中継データとし、当該受信要求したユーザの情報(通信ID)および取得日時を対応付けて当該送信データを格納する。
ステップ103において、制御部202は、送信データを受領しないことを示すデータを上記受信要求した通信端末装置3へ送信し、当該フローチャートによる処理を終了する。なお、当該データを通信端末装置3が受信することによって、中継サーバ200が送信データを受領しなかった旨を通信端末装置3のユーザへ通知することができるが、そのような通知が不要である場合、上記ステップ103の処理をスキップしてもかまわない。
なお、上述した中継サーバ200と通信端末装置3との間の通信では、アプリケーション毎に送受信するデータが管理されている例を用いたが、送受信するデータが用いられるアプリケーションを管理することなく、データ送受信を行ってもかまわない。この場合、中継サーバ200が管理している中継データDoにおいても、アプリケーションを区別して管理することが不要となり、アプリケーションとは無関係にアクセスポイントに基づいた中継データを先入れ先出しすることになる。
また、上述した説明では、1つのアプリケーションに対して1つの送信データや1つの中継データが送受信される例を用いたが、他の送信態様でもよい。例えば、1つのアプリケーションに対して複数の送信データを一括して、通信端末装置3が中継サーバ200へ送信してもよい。また、1つのアプリケーションに対して複数の中継データを一括して、中継サーバ200から通信端末装置3へ送信してもよい。
また、上述した説明では、データ送信に応じて、送信元装置に格納されていた当該データが削除される例を用いたが、データ送信後も当該データが送信元装置に格納された状態でもよい。一例として、通信端末装置3が中継サーバ200へ送信データを送信した場合、当該送信データが所定回数送信されるまで、送信タスクが登録されてから所定時間が経過するまで、または通信端末装置3の電源がオフされるまで送信タスクとして継続させてもよい。この場合、通信端末装置3が新たなアクセスポイントと接続が確立される毎に同じ送信データが中継サーバ200へ送信されることがあり得る。他の例として、中継サーバ200が通信端末装置3へ中継データを送信した場合、当該中継データが所定数の通信端末装置3が受信するまで、または中継データを取得してから所定時間が経過するまで当該中継データを記憶部203に格納した状態を継続してもかまわない。この場合、あるアクセスポイントを介して複数の通信端末装置3が中継サーバ200にアクセスした場合、当該通信端末装置3へ同じ中継データが送信されることがあり得る。
また、上述した説明では通信処理を通信端末装置3および中継サーバ200で行う例を用いたが、上記通信処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、通信端末装置3がさらに他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記通信処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。また、中継サーバ200で行われている処理の一部を通信端末装置3や他の装置で行うことも考えられる。このように、上記通信処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した通信処理と同様の処理が可能となる。また、上述した通信処理は、少なくとも1つの情報処理装置とサーバとにより構成される通信システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、通信端末装置3のCPU34や中継サーバ200の制御部202が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、通信端末装置3が備える専用回路や中継サーバ200が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記各プログラムは、外部メモリ等の外部記憶媒体を通じて通信端末装置3に供給されるだけでなく、有線または無線の通信回線を通じて通信端末装置3に供給されてもよい。また、上記プログラムは、通信端末装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
また、上述した各プログラムは、光学式ディスク状記憶媒体や外部メモリ等の外部記憶媒体を通じて通信端末装置3や中継サーバ200に供給されるだけでなく、有線または無線の通信回線を通じて通信端末装置3や中継サーバ200に供給されてもよい。また、上記プログラムは、通信端末装置3や中継サーバ200内部に予め記憶されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体や不揮発性メモリの他に、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記憶媒体ということができる。例えば、コンピュータ等に、これらの記憶媒体に記憶されたプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。