以下、発明の実施の形態を通じて本発明の一側面を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
図1は、通信状況解析システム100の一例を概略的に示す。本実施形態において、通信状況解析システム100は、通信端末110と、情報収集サーバ120とを備える。通信状況解析システム100及び通信端末110は、情報処理装置の一例であってよい。通信端末110は、通信機能を有するコンピュータの一例であってよい。
通信端末110及び情報収集サーバ120は、通信ネットワーク10を介して情報を送受する。通信端末110及び情報提供サーバ20は、通信ネットワーク10を介して情報を送受する。通信ネットワーク10は、無線通信の伝送路であってもよく、無線通信の伝送路及び有線通信の伝送路の組み合わせであってもよい。通信ネットワーク10は、携帯電話回線網などの移動体通信網、無線パケット通信網、インターネッ及び専用回線又はそれらの組み合わせであってもよい。
情報提供サーバ20及び情報収集サーバ120のそれぞれは、一般的な構成の情報処理装置において、情報提供サーバ20及び情報収集サーバ120のそれぞれの各部の動作を規定したソフトウエア又はプログラムを起動することにより実現されてよい。情報提供サーバ20及び情報収集サーバ120として用いられる情報処理装置は、CPU等のプロセッサ、ROM、RAM、通信インターフェースなどを有するデータ処理装置と、キーボード、タッチパネル、マイクなどの入力装置と、表示装置、スピーカなどの出力装置と、メモリ、HDDなどの記憶装置とを備えてよい。データ処理装置又は記憶装置は、上記のソフトウエア又はプログラムを記憶してよい。情報提供サーバ20及び情報収集サーバ120は、プロセッサと、プロセッサによって実行される命令又はプログラムを記憶する記憶装置とを備えた情報処理装置の一例であってよい。上記の命令又はプログラムは、プロセッサによって実行されることにより、当該情報処理装置に、当該命令又はプログラムによって規定された動作を実行させる。
情報提供サーバ20及び情報収集サーバ120のそれぞれは、仮想サーバ又はクラウドシステムであってもよい。また、情報提供サーバ20及び情報収集サーバ120のそれぞれの機能が、複数のサーバによって実現されてもよい。
情報提供サーバ20は、通信ネットワーク10を介して、通信端末110に情報を提供することで、通信端末110のユーザにサービスを提供する。情報提供サーバ20により提供されるサービスとしては、情報検索サービス、地図上でのナビゲーションサービス、メールサービス、映像・音楽データ配信サービス、電子書籍配信サービスなどを例示することができる。情報提供サーバ20は、通信端末110から、通信端末110のユーザにより指定された情報に関する送信要求を受信する。情報提供サーバ20は、通信端末110からの送信要求に応じて、通信端末110に情報を送信する。
通信端末110は、通信機能を有する。通信端末110は、無線通信機能を有してよい。通信端末110は、複数の通信方式に対応してもよい。例えば、通信端末110は、3G方式、LTE方式、4G方式などの移動体通信方式と、WiFi(登録商標)、WiMAX(登録商標)などの無線通信方式との両方の通信方式に対応する。通信端末110は、情報提供サーバ20及び情報収集サーバ120と情報を送受することができる装置であればよく、Webブラウザソフトが導入されたパーソナルコンピュータ、携帯電話、携帯端末(PDA、タブレット又はノートブック・コンピュータ若しくはラップトップ・コンピュータなどを例示することができる。)、無線端末などであってよい。
通信端末110は、一般的な構成の情報処理装置において、通信端末110の各部の動作を規定したソフトウエア又はプログラムを起動することにより実現されてよい。通信端末110として用いられる情報処理装置は、CPU等のプロセッサ、ROM、RAM、通信インターフェースなどを有するデータ処理装置と、キーボード、タッチパネル、マイク、GPS情報取得装置、加速度センサ、ジャイロセンサなどの入力装置と、表示装置、スピーカ、振動装置などの出力装置と、メモリ、HDDなどの記憶装置とを備えてよい。データ処理装置又は記憶装置は、上記のソフトウエア又はプログラムを記憶してよい。通信端末110は、通信機能を有し、プロセッサと、プロセッサによって実行される命令又はプログラムを記憶する記憶装置とを備えた情報処理装置の一例であってよい。上記の命令又はプログラムは、プロセッサによって実行されることにより、当該情報処理装置に、当該命令又はプログラムによって規定された動作を実行させる。
通信端末110は、ユーザ指示を受け付け、ユーザ指示によって指示された処理を実行する。ユーザ指示は、通信端末110に対して、通信環境に関する情報を取得するための処理以外の処理を実行することを指示する指示であってよい。通信端末110は、ユーザ指示を受け付けた場合に、通信端末110の通信環境に関する情報(通信環境情報と称する場合がある。)と、通信環境情報を取得した位置を示す位置情報とを取得する。通信端末110は、ユーザ指示によって指示された処理が実行される場合に、通信環境情報及び位置情報を取得してもよい。位置情報は、緯度及び経度に関する情報であってよく、さらに高度に関する情報を含んでもよい。通信端末110は、少なくとも通信環境情報及び位置情報が対応付けられた情報(ログ情報と称する場合がある。)を、情報収集サーバ120に送信する。
通信環境情報としては、通信の可否、電波状況(電波受信レベル、電波強度、RSCP(Received Signal Code Power)、CID(Cell ID)などを例示することができる。)、通信品質(通信速度、データ通信のスループット、データ通信のレイテンシなどを例示することができる。)、通信方式、通信キャリアなどに関する情報を例示することができる。通信環境情報は、電波に関連する情報以外のネットワークに関する情報を含んでもよい。通信の可否は、例えば、電波受信レベルが予め定められたレベルよりも小さい場合(例えば、圏外である場合)に、通信が可能でない(通信不可と称する場合がある。)と判断される。
通信の可否は、特定の電波状況又は通信品質に関する情報を取得する処理(試行と称する場合がある。)を複数回繰り返した結果に基づいて、判断されてもよい。例えば、予め定められた回数の試行のうち、電波状況又は通信品質が予め定められた第1の閾値よりも良好であった試行の割合が、予め定められた第2の閾値よりも大きい場合に、通信が可能である(通信可能と称する場合がある。)と判断される。それ以外の場合は、通信が可能でない(通信不能と称する場合がある。)と判断される。
ログ情報は、通信環境情報と、位置情報と、通信環境情報を取得した時刻を示す情報、位置情報を取得したときのGPS強度を示す情報及び通信端末110に関する情報の少なくとも1つとが対応づけられた情報であってもよい。通信端末110に関する情報としては、通信端末110のそれぞれを識別する端末識別情報、通信端末110の機種を示す情報、通信端末110のOSを示す情報などを例示することができる。
通信環境情報を取得した時刻を示す情報は、通信端末110が通信環境情報の取得処理を開始した時刻であってもよく、通信端末110が通信環境情報の取得処理を完了した時刻であってもよく、通信端末110がユーザ指示を受け付けた時刻であってもよい。端末識別情報は、コンピュータを識別する識別情報の一例であってよい。
端末識別情報は、通信端末110のそれぞれを識別することができる情報であれば特に限定されないが、ユーザを特定することなく、通信端末110を識別することができる情報であることが好ましい。これにより、情報収集サーバ120は、ユーザを特定することなく、ログ情報の時間的な関連性を考慮して、ログ情報を解析することができる。
例えば、特定の通信端末110の端末識別情報として、ランダムに選択された符号列が付与される。符号列は、1以上の通信端末110のそれぞれに固有の符号列であってもよく、複数の通信端末110の間で再利用されてもよい。端末識別情報は、予め定められた期間ごとに更新されてもよく、任意のタイミングで更新されてもよい。
情報収集サーバ120は、1以上の通信端末110のそれぞれからログ情報を受け取る。情報収集サーバ120は、受け取ったログ情報を記憶装置に格納してよい。情報収集サーバ120は、ログ情報を用いて通信状況を解析してよい。
図2は、通信端末110の一例を概略的に示す。図2の説明において、図1に関連した説明と重複する部分については説明を省略する場合がある。本実施形態において、通信端末110は、入力部212と、処理実行部214と、環境情報取得部216と、位置情報取得部218と、出力部222と、識別情報取得部224と、ログ情報生成部226と、通信制御部228とを備える。通信端末110の各部は、互いに情報を送受する。
本実施形態において、環境情報取得部216、位置情報取得部218、識別情報取得部224及びログ情報生成部226は、ログ生成部210を生成する。ログ生成部210は、ログ情報を生成して、生成されたログ情報を情報収集サーバ120に送信する。
通信端末110の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。また、プログラムが実行されることにより、コンピュータが、通信端末110の一部として機能してもよい。プログラムは、CD−ROM、DVD−ROM、メモリ、ハードディスクなどのコンピュータ読み取り可能な媒体に記憶されていてもよく、ネットワークに接続された記憶装置に記憶されていてもよい。プログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、通信端末110のコンピュータにインストールされてよい。
コンピュータを通信端末110の一部として機能させるプログラムは、通信端末110の各部の動作を規定したモジュールを備えてよい。これらのプログラム又はモジュールは、プロセッサ、通信インターフェース、GPS情報取得装置等に働きかけて、コンピュータを通信端末110の各部として機能させたり、コンピュータに通信端末110における情報処理方法を実行させたりする。
これらのプログラムに記述された情報処理は、コンピュータに読込まれることにより、ソフトウエアと、通信端末110の各種のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータの使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた通信端末110を構築することができる。
入力部212は、ユーザから、ユーザ指示を受け付ける。入力部212は、キーボード、タッチパネル又はマイクであってよい。ユーザ指示は、通信端末110に対して、通信環境に関する情報を取得するための処理以外の処理を実行することを指示する。したがって、専ら回線速度又は通信速度を測定するための情報を取得することを要求する指示、専ら回線速度又は通信速度を測定するサービスを提供するサーバにアクセスすることを要求する指示などは、ユーザ指示に含まれない。入力部212は、ユーザ要求受付部の一例であってよい。
処理実行部214は、ユーザ指示によって指示された処理を実行する。ユーザ指示によって指示された処理は、通信機能を利用する処理であってもよく、通信機能を利用しない処理であってもよい。
ユーザ指示によって指示された処理は、通信端末110がユーザ指示を受け付けた時点で実行される処理であってもよい。ユーザ指示によって指示された処理は、ユーザの設定により、予め定められた時刻に又は予め定められた時間が経過するごとに自動的に実行される処理であってもよく、通信端末110の初期設定又は通信端末110上で動作するプログラムの初期設定により、予め定められた時刻に又は予め定められた時間が経過するごとに自動的に実行される処理であってもよい。
ユーザ指示によって指示された処理は、ユーザ指示によって指示された情報を、ユーザが知覚することができる形態で出力する処理であってよい。このような処理としては、通信端末110の表示画面をスクロールして、表示画面に表示される画像の表示位置を変更する処理、情報提供サーバ20にアクセスして、情報提供サーバ20からユーザが指示した情報を取得して、取得した情報を通信端末110の表示画面に表示する処理などを例示することができる。
ユーザ指示によって指示された処理は、通信端末110のボタンの押下又はスイッチの切替えに対応づけられた処理であってよい。ユーザ指示によって指示された処理は、通信端末110の電源をOFFにする処理であってもよい。ユーザ指示によって指示された処理は、通信端末110からログオフする処理であってもよく、通信端末110をスリープ状態にする処理であってもよい。
環境情報取得部216は、通信端末110の通信環境情報を取得する(通信環境情報取得手順を実行すると称する場合がある。)。環境情報取得部216は、予め定められたイベントが発生した場合に、通信端末110の通信環境情報を取得してよい。予め定められたイベントとしては、(i)通信環境情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けたこと、(ii)環境情報取得部216がバックグラウンドで動作する状態に移行してから予め定められた期間(第2の期間の一例であってよい。)が経過したこと、(iii)以前に、通信環境情報を取得するための処理が実行されてから予め定められた期間(第3の期間の一例であってよい。)が経過したこと、及び、(iv)予め定められた時刻が到来したこと、からなる群から選択される少なくとも1つを例示することができる。
環境情報取得部216は、例えば、ユーザ指示を受け付けた場合に、ユーザ指示によって指示された処理とは別に、通信端末110の通信環境情報を取得する。環境情報取得部216は、処理実行部214がユーザ指示によって指示された処理を実行する場合に、ユーザ指示によって指示された処理とは別に、通信環境情報を取得してもよい。環境情報取得部216は、予め定められた時刻に又は予め定められた時間が経過するごとに(通信環境情報を取得するタイミングと称する場合がある。)、通信環境情報を取得してもよい。
一実施形態によれば、入力部212がGPSロガーの起動を指示するユーザ指示を受け付けた場合、環境情報取得部216は、GPSロガーが一定の時間間隔でログ情報を取得するたびに、通信環境情報を取得する。他の実施形態によれば、入力部212がメールソフトの起動を指示するユーザ指示を受け付けた場合、環境情報取得部216は、メールソフトがバックグラウンドでメールサーバにアクセスするたびに、通信環境情報を取得する。さらに他の実施形態によれば、入力部212が目覚まし機能の設定を指示するユーザ指示を受け付けた場合、環境情報取得部216は、目覚まし機能の設定時または作動時に、通信環境情報を取得する。
環境情報取得部216は、情報提供サーバ20に対してユーザが指示した情報を送信するよう要求してから、当該情報を情報提供サーバ20から取得するまでの時間と、当該情報の情報量とに基づいて、通信環境情報を取得してもよい。通信環境情報を取得する処理は、バックグラウンドで実行されてよい。
これにより、ユーザが通信端末110を操作している間に、通信環境情報を取得することができる。また、通信端末110が通信機能を利用しない処理を実行している場合であっても、通信環境情報を取得することができる。さらに、ユーザが通信環境情報を取得するために特別な操作を実施しなくても、通信環境情報を取得することができる。その結果、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握することができる。また、通信状況の経時変化などを把握することができる。
位置情報取得部218は、ユーザ指示を受け付けた場合に、ユーザ指示によって指示された処理とは別に、通信端末110の位置情報を取得する。位置情報取得部218は、処理実行部214がユーザ指示によって指示された処理を実行する場合に、ユーザ指示によって指示された処理とは別に、位置情報を取得してもよい。位置情報取得部218は、環境情報取得部216が通信環境情報を取得する場合に、位置情報を取得してよい。これにより、通信環境情報を位置情報に対応付けることができる。位置情報を取得する処理は、バックグラウンドで実行されてよい。
位置情報取得部218は、GPS情報と、無線通信網又は移動体通信網のアクセスポイントからの電波情報との少なくとも一方の情報に基づいて、位置情報を取得してよい。位置情報取得部218は、GPS情報取得装置であってもよく、通信端末110に配されたGPS情報取得装置から位置情報を取得してもよい。位置情報取得部218は、位置情報とともに、GPS精度に関する情報を取得してもよい。
出力部222は、ユーザ指示によって指示された情報を、ユーザが知覚することができる形態で出力する。出力部222は、液晶ディスプレイ、有機ELディスプレイなどの表示装置、スピーカなどの音声出力装置又はバイブレータなどの振動装置であってよい。
例えば、出力部222は、ユーザからの指示に応じて、画面上に画像を表示したり、画面上に表示される画像の表示位置を変更したりする。出力部222は、通信ネットワーク10を介して情報提供サーバ20から取得した情報又は通信端末110の記憶装置に格納されている情報に基づいて、画像を表示してよい。また、出力部222は、通信ネットワーク10を介して情報提供サーバ20から取得した情報又は通信端末110の記憶部に格納されている情報を、音声情報としてスピーカから出力してもよい。これにより、ユーザは、情報を知覚することができる。
一方、特定の処理がバックグラウンドで実行されている場合、当該処理で利用される情報は出力部222から、ユーザが知覚することができる形態で出力されない。そのため、ユーザは、情報を知覚することができない。
識別情報取得部224は、通信端末110のそれぞれを識別する端末識別情報を取得する。識別情報取得部224は、通信端末110のそれぞれに対する端末識別情報を生成してもよく、端末識別情報を情報収集サーバ120から受信してもよい。端末識別情報は、例えば乱数を用いてランダムに定められてもよい。端末識別情報は、予め定められた時刻に又は予め定められた時間が経過するごとに更新されてもよい。識別情報取得部224は、通信端末110の機種を示す情報、通信端末110のOSを示す情報などの通信端末110に関する情報を取得してもよい。
ログ情報生成部226は、環境情報取得部216から、通信環境情報を取得する。ログ情報生成部226は、環境情報取得部216から、通信環境情報を取得した時刻を示す情報を取得してよい。ログ情報生成部226は、位置情報取得部218から、通信環境情報を取得した位置を示す位置情報を取得する。ログ情報生成部226は、位置情報取得部218から、位置情報を取得したときのGPS精度に関する情報を取得してよい。ログ情報生成部226は、識別情報取得部224から端末識別情報を取得してよい。
ログ情報生成部226は、ログ情報を生成する。ログ情報生成部226は、少なくとも、通信環境情報と位置情報とを対応付けて、ログ情報を生成する。ログ情報生成部226は、通信環境情報と、位置情報と、通信環境情報を取得した時刻を示す情報、位置情報を取得したときのGPS強度を示す情報及び通信端末110に関する情報の少なくとも1つとが対応づけて、ログ情報を生成してよい。ログ情報を生成する処理はバックグラウンドで実行されてよい。
ログ情報生成部226は、通信環境情報に含まれるデータ通信のレイテンシに関する情報に基づいて、通信環境情報が取得されたときに使用されていた通信方式を決定してよい。例えば、レイテンシが予め定められた値より小さい場合、ログ情報生成部226は、環境情報取得部216が取得した通信環境情報は、通信端末110が第1の通信方式(LTE方式、4G方式などを例示することができる。)により通信していた場合の情報であると判断する。一方、レイテンシが予め定められた値以上である場合、ログ情報生成部226は、環境情報取得部216が取得した通信環境情報は、通信端末110が第2の通信方式(3G方式などを例示することができる。)により通信していた場合の情報であると判断する。ログ情報生成部226は、通信環境情報が取得されたときに使用されていた通信方式に関する情報と、通信環境情報及び位置情報とを対応付けて、ログ情報を生成してよい。
ログ情報生成部226は、通信端末110上で動作するOSの内部関数を取得してよい。ログ情報生成部226は、取得した内部関数に基づいて、通信環境情報が取得されたときに使用されていた通信方式を決定してもよい。
ログ情報生成部226は、入力部212がユーザ指示を受け付けるごとに、ログ情報を生成してよい。ログ情報生成部226は、ユーザ指示によって指示された処理が実行されるごとに、ログ情報を生成してよい。ログ情報生成部226は、予め定められた時刻に又は予め定められた時間が経過するごとに(ログ情報を生成するタイミングと称する場合がある。)、ログ情報を生成してもよい。ログ情報を生成するタイミングは、通信環境情報を取得するタイミングとほぼ同一であってもよく、異なってもよい。
ログ情報生成部226は、生成されたログ情報を情報収集サーバ120に送信してよい。ログ情報生成部226は、ログ情報が生成されるごとに、ログ情報を情報収集サーバ120に送信してもよい。ログ情報生成部226は、予め定められた時刻に又は予め定められた時間が経過するごとに(ログ情報を送信するタイミングと称する場合がある。)、生成したログ情報を情報収集サーバ120に送信してよい。ログ情報を送信するタイミングは、ログ情報を生成するタイミングとほぼ同一であってもよく、異なってもよい。
ログ情報生成部226は、通信端末110の起動時、通信端末110のスリープ状態からの復帰時及びコンピュータを通信端末110の一部として機能させるためのプログラムの起動時の少なくとも一方のタイミングにおいて、生成したログ情報を情報収集サーバ120に送信してもよい。ログ情報生成部226は、ログ情報を送信してから、次回のログ情報を送信するまでの間、生成したログ情報を格納しておいてよい。
通信制御部228は、通信端末110と、通信ネットワーク10、情報提供サーバ20及び情報収集サーバ120との間の通信を制御する。通信制御部228は、通信インターフェースであってよい。通信制御部228は、複数の通信方式に対応していてもよい。
本実施形態において、情報収集サーバ120が情報提供サーバ20とは異なるサーバであり、通信端末110が通信環境情報を情報収集サーバ120に送信する場合について説明した。しかし、通信状況解析システム100は本実施形態に限定されない。他の実施形態によれば、通信端末110は、通信環境情報を情報提供サーバ20に送信する。情報提供サーバ20は、通信端末110から受け取った通信環境情報を記憶装置に格納する。情報収集サーバ120は、情報提供サーバ20に格納された通信環境情報に基づいて、通信状況を解析する。また、通信端末110の各部の機能は厳密に区別されるものではなく、通信端末110の各部の機能は上記の実施形態に限定されない。
以上の実施形態においては、通信端末110が、通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けた場合に、通信環境情報及び位置情報を取得することで、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握する場合について説明した。しかしながら、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握する方法は、上記の実施形態に限定されない。
他の実施形態において、通信端末110は、ユーザから、処理を開始する旨の入力を受け付けた後、予め定められた時刻に又は予め定められた時間が経過するごとに、通信環境に関する情報を自動的に取得してよい。ユーザは、通信環境情報を取得するたびに、通信環境情報を取得するための操作を実施する必要がないので、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握することができる。また、通信状況の経時変化などを把握することができる。
この場合において、通信端末110は、通信環境情報を取得するごとに、通信環境情報を情報収集サーバ120に送信してよい。通信端末110は、取得した通信環境情報を記憶しておき、予め定められた条件に従って、記憶した通信環境情報を情報収集サーバ120に送信してもよい。例えば、予め定められた条件としては、通信環境情報の取得回数が予め定められた回数に到達した場合、記憶した通信環境情報の情報量が予め定められた容量に到達した場合、予め定められた時刻に到達した場合、予め定められた時間が経過した場合などを例示することができる。通信端末110は、情報収集サーバ120に通信環境情報を送信するタイミングにおいて、通信を実施することができない場合、取得した通信環境情報を送信せずに記憶しておき、次回の送信のタイミングにおいて送信してもよい。
図3は、ログ情報のデータテーブル300の一例を概略的に示す。データテーブル300は、端末ID310と、通信環境情報が取得された日時320に関する情報と、通信環境情報が取得された位置を示す位置情報330と、位置情報330が取得されたときのGPS精度340に関する情報と、通信環境情報350とを対応付けて格納する。通信環境情報350は、通信可否352に関する情報と、データ通信のスループット354に関する情報と、データ通信のレイテンシ356に関する情報とを含んでよい。端末ID310は、コンピュータを識別する識別情報の一例であってよい。
本実施形態において、端末ID310は、ランダムに選択された符号列であり、1日おきに更新される。これにより、情報収集サーバ120は、ユーザを特定することなく、ログ情報の時間的な関連性を考慮して、ログ情報を解析することができる。
図4は、通信端末110の動作の一例を概略的に示す。図4を用いて、ユーザ指示により指示された処理が通信機能を利用しない処理であり、通信端末110が情報提供サーバ20にアクセスしない場合に、通信端末110がログ情報を生成する動作について説明する。
本実施形態によれば、ステップ402(ステップをSと省略して表記する場合がある。)において、入力部212が、ユーザから、通信端末110の操作に関するユーザ指示を受け付ける。例えば、画面をスクロールさせるためのユーザ指示を受け付ける。S404において、処理実行部214が、ユーザ指示により指示された操作に応じた処理を実行する。
一方、S412において、S404のバックグラウンドで、環境情報取得部216が通信環境情報を取得する。ユーザ指示により指示された処理が通信機能を利用しない処理である場合、環境情報取得部216は、少なくとも、通信の可否に関する情報を取得する。可能であれば、環境情報取得部216は、電波強度、通信方式及び通信キャリアの少なくとも1つに関する情報を取得してよい。
S414において、S404のバックグラウンドで、位置情報取得部218が位置情報を取得する。S414の後、S416において、S404のバックグラウンドで、ログ情報生成部226がログ情報を生成して処理を終了する。なお、本実施形態において、各ステップを実施する順序及びタイミングは、技術的に矛盾が生じない範囲において、適宜、変更することができる。
図5は、通信端末110の動作の他の例を概略的に示す。図5を用いて、ユーザ指示により指示された処理が通信機能を利用する処理であり、通信端末110が情報提供サーバ20にアクセスして情報を取得する場合に、通信端末110がログ情報を生成する動作について説明する。
本実施形態によれば、S502において、入力部212が、ユーザから、情報提供サーバ20にアクセスして、情報提供サーバ20からユーザが指示した情報を取得するためのユーザ指示を受け付ける。例えば、検索条件に一致する飲食店に関する情報を取得するためのユーザ指示を受け付ける。S504において、処理実行部214が、ユーザ指示により指示された処理を実行して、情報提供サーバ20から該当するコンテンツをダウンロードする。
S506において、環境情報取得部216が通信環境情報を取得する。S506の処理は、バックグラウンドで実行されてよい。環境情報取得部216は、少なくとも通信の可否に関する情報を取得する。ユーザ指示により指示された処理が通信機能を利用する処理である場合、環境情報取得部216は、さらに、電波状況、電波強度、通信速度、データ通信のスループット、データ通信のレイテンシ、通信方式及び通信キャリアの少なくとも1つに関する情報を取得してよい。環境情報取得部216は、情報提供サーバ20に対してユーザが指示した情報を送信するよう要求してから、当該情報を情報提供サーバ20から取得するまでの時間と、当該情報の情報量とに基づいて、通信環境情報を取得してもよい。
一方、S512において、S504及びS506の少なくとも一方のバックグラウンドで、位置情報取得部218が位置情報を取得する。S506及びS512の後、S520において、ログ情報生成部226がログ情報を生成して処理を終了する。S520の処理は、バックグラウンドで実行されてよい。なお、本実施形態において、各ステップを実施する順序及びタイミングは、技術的に矛盾が生じない範囲において、適宜、変更することができる。
図6は、通信端末610の一例を概略的に示す。通信端末610は、通信端末110に代わって又は通信端末110とともに、通信状況解析システム100の一部を構成してよい。通信端末610は、プログラム管理部632、移行判断部634及びタイミング決定部636を備える点で、通信端末110と相違する。通信端末610は、上記の相違点以外の点については、通信端末110と同様の構成を有してよい。
通信端末110に関連して、環境情報取得部216は、通信環境を取得する処理をバックグラウンドで実行してもよく、位置情報取得部218は、位置情報を取得する処理をバックグラウンドで実行してもよい旨を説明した。しかし、通信端末のOS(Operating System)によっては、バックウラウンド状態におけるプログラムの動作を制限している場合がある。
例えば、Apple社が提供するiOS(商標)においては、フォアグラウンド状態及びバックグラウンド状態のそれぞれに、2つの起動状態が存在する。具体的には、フォアグラウンド状態には、プログラムはフォアグラウンドにあるが、利用されていない状態(Inactiveと称される場合がある。)と、プログラムがフォアグラウンドにあり、利用されている状態(Activeと称される場合がある。)という2つの起動状態がある。バックグラウンド状態には、プログラムはバックグラウンドにあるが、まだ動作している状態(Background又はBackgorund Runningと称される場合がある。)と、プログラムがバックグラウンドにあり、動作していない状態(Suspendedと称される場合がある)という2つの起動状態がある。
iOSにおいては、プログラムの起動状態が「Background Running」に移行した後、予め定められた時間が経過すると、一部の例外的な処理を除いて、強制的に、プログラムの起動状態を「Suspended」に移行させる。プログラムの起動状態が「Suspended」になると、当該プログラムは処理を続行することができなくなるので、例えば、環境情報取得部216を実現するためのプログラムの起動状態が「Suspended」になると、通信環境を取得する処理をバックグラウンドで実行することができなくなる。
通信端末610によれば、OSによって、バックウラウンド状態におけるプログラムの動作が制限される場合であっても、通信端末610の位置が予め定められた程度を超えて変化した場合に、通信環境を取得する処理を実行することができる情報処理装置、方法及びプログラムが提供される。この場合において、通信端末610は、通信環境を取得する処理をバックグラウンドで実行してもよい。
通信端末610の各部は、通信端末110の各部と同様に、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。また、プログラムが実行されることにより、コンピュータが、通信端末610の一部として機能してもよい。プログラムは、CD−ROM、DVD−ROM、メモリ、ハードディスクなどのコンピュータ読み取り可能な媒体に記憶されていてもよく、ネットワークに接続された記憶装置に記憶されていてもよい。プログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、通信端末610のコンピュータにインストールされてよい。通信端末610は、通信機能を有し、プロセッサと、プロセッサによって実行される命令又はプログラムを記憶する記憶装置とを備えた情報処理装置の一例であってよい。
プログラム管理部632は、通信端末610上で動作するプログラムの起動状態を管理する。本実施形態において、プログラム管理部632は、通信端末610の通信環境に関する情報を取得するためのプログラムの起動状態を管理する。通信端末610の通信環境に関する情報を取得するためのプログラムは、通信端末610のコンピュータを、少なくとも環境情報取得部216として機能させるためのプログラムであってよい。通信端末610の通信環境に関する情報を取得するためのプログラムは、通信端末610のコンピュータを、通信端末610の各部として機能させるためのプログラムであってもよい。プログラム管理部632は、通信端末610のOSによって提供される機能の一部であってもよく、通信端末610のOSのモジュールが、通信端末610のコンピュータに読み込まれることにより、プログラム管理部632として機能してよい。
プログラム管理部632は、予め定められた種類のイベントが発生したことを示す情報を取得した場合に、バックグラウンドで動作を停止している1以上のプログラムに対して、当該イベントが発生したことを示す情報を送信する。プログラム管理部632は、上記の情報を受信したプログラムから、当該プログラムの起動状態を変更するための要求を受信すると、当該要求に応じて、当該プログラムの起動状態を変更する。プログラム管理部632は、位置変更情報を取得する位置変更情報取得部の一例であってよい。
本実施形態において、プログラム管理部632は、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報を取得した場合に、バックグラウンドで動作を停止している1以上のプログラムに対して、当該情報又は当該情報を取得したことを示す情報(これらの情報は、位置変更情報の一例であってよい。)を送信する。プログラム管理部632は、上記の情報を受信した1以上のプログラムのいずれかから、当該プログラムの起動状態を変更するための要求を受信すると、当該プログラムの起動状態を変更する。これにより、例えば、通信端末610の通信環境に関する情報を取得するためのプログラムは、「Suspended」のように、プログラムがバックグラウンドで動作を停止する状態から、「Background Running」のように、プログラムがバックグラウンドで動作する状態に移行する。
プログラム管理部632は、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報を、通信ネットワーク10を介して外部のサーバ(図示していない。)から取得してもよい。例えば、通信端末610は、通信端末610上で動作するプログラムの起動状態に関わらず、基地局又はアクセスポイント(基地局等と称する場合がある。)からの電波を受信している。基地局等からの電波には、基地局又はアクセスポイントを識別する識別情報が含まれる。通信端末610は、基地局識別情報と当該基地局の位置情報とを対応付けて格納しているサーバに対して、基地局からの電波に含まれる基地局識別情報を定期的に送信する。
サーバは、通信端末610の位置の変化が予め定められた条件を満足した場合に、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報を、通信端末610に送信する。プログラム管理部632は、例えば通信制御部228を介して、上記の情報を取得する。これにより、通信端末610の消費電力を抑制しながら、通信端末610の位置が大幅に変更した場合に、特定のプログラムの起動状態を変更することができる。
本実施形態においては、プログラム管理部632が、外部のサーバから、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報を取得する場合について説明した。しかし、プログラム管理部632は本実施形態に限定されない。例えば、プログラム管理部632は、位置情報取得部218から通信端末610の位置情報を取得して、通信端末610の位置の変化量が予め定められた値を超えたか否かを判断する。プログラム管理部632は、通信端末610の位置の変化量が予め定められた値を超えたと判断した場合、バックグラウンドで動作を停止している1以上のプログラムに対して、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報(当該情報は、位置変更情報の一例であってよい。)を送信してもよい。
移行判断部634は、プログラム管理部632からイベントが発生したことを示す情報を受信する。移行判断部634は、プログラムの起動状態を移行させるか否かを判断する。移行判断部634は、受信した情報に含まれる上記のイベントが、プログラムの起動状態を移行させるための予め定められたイベントである場合に、プログラムの起動状態を移行させることを決定する。移行判断部634は、プログラムの起動状態を移行させることを決定すると、プログラム管理部632に対して、プログラムの起動状態を移行させるための要求を送信する。移行判断部634は、位置変更情報を取得する位置変更情報取得部の一例であってよい。
本実施形態において、移行判断部634は、通信端末610の通信環境に関する情報を取得するためのプログラムのモジュールであり、プログラム管理部632から、予め定められた種類のイベントが発生したことを示す情報を受信すると、通信端末610の通信環境に関する情報を取得するためのプログラムの起動状態を移行させるか否かを判断する。移行判断部634は、プログラム管理部632から受信した情報に、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報又は当該情報を取得したことを示す情報が含まれている場合に、通信端末610の通信環境に関する情報を取得するためのプログラムの起動状態を、バックグラウンドで動作を停止する状態から、バックグラウンドで動作する状態に移行させることを決定する。
本実施形態によれば、通信端末610の通信環境に関する情報を取得するためのプログラムが、バックグラウンドで動作を停止する状態になっている場合であっても、当該プログラムは、通信端末610がある程度の距離を移動した場合には、バックグラウンドで動作する状態に移行することができる。これにより、通信端末610は、通信環境に関する情報を取得する処理をバックグラウンドで実行することができる。
タイミング決定部636は、通信端末610が、通信端末610の通信環境に関する情報を取得する処理を実行するタイミングを決定する。タイミング決定部636によって決定されるタイミングは、通信端末610の通信環境に関する情報を取得するためのプログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであってよい。
タイミング決定部636は、予め定められた規則に従って、上記のタイミングを決定してよい。一実施形態において、タイミング決定部636は、乱数表、乱数発生アルゴリズムなどを用いて、上記のタイミングをランダムに決定してよい。これにより、データの偏りを防止することができる。他の実施形態において、タイミング決定部636は、上記のタイミングを決定するごとに、決定されたタイミングを記憶しておき、上記のプログラムがバックグラウンドで動作する状態に移行した後、通信環境に関する情報を取得する処理を実行するまでの時間が予め定められた分布に従うように、上記のタイミングを決定してよい。これにより、データの偏りを防止しつつ、データの用途に応じたデータを収集することができる。
図7は、通信端末610の動作の一例を概略的に示す。本実施形態において、通信端末610の通信環境に関する情報を取得するためのプログラムが、通信端末610のコンピュータを、入力部212、処理実行部214、環境情報取得部216、位置情報取得部218、出力部222、識別情報取得部224、ログ情報生成部226、移行判断部634及びタイミング決定部636として機能させ、通信端末610のOSが、通信端末610のコンピュータを、通信制御部228及びプログラム管理部632として機能させる場合を例として、通信端末610の各部の動作について説明する。
ステップ702(ステップをSと表記する場合がある。)において、通信端末610の通信環境に関する情報を取得するためのプログラムは、フォアグラウンドで処理を実行する。例えば、入力部212は、ユーザ指示を受け付けるユーザ指示受付手順を実行する。処理実行部214は、ユーザ指示によって指示された処理を実行する処理実行手順を実行する。環境情報取得部216は、ユーザ指示を受け付けた場合又はユーザ指示によって指示された処理が実行される場合に、通信端末610の通信環境に関する情報を取得する通信環境情報取得手順を実行する。また、位置情報取得部218は、ユーザ指示を受け付けた場合又はユーザ指示によって指示された処理が実行される場合に、通信端末610の位置情報を取得する位置情報取得手順を実行する。
S704において、プログラム管理部632は、入力部212が、ユーザから、通信端末610の通信環境に関する情報を取得するためのプログラムをバックグラウンド状態に移行させるための移行指示を受信したか否かを判断する。ここで、バックグラウンド状態とは、「Background Running」のようなバックグラウンドで動作する状態と、「Suspended」のようなバックグラウンドで動作を停止する状態とを含む。
S704において、プログラム管理部632が、ユーザからの移行指示を受信したと判断した場合(S704のYesの場合)、S706において、プログラム管理部632は、通信端末610の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作する状態に移行させる。S708において、タイミング決定部636は、環境情報取得部216が通信端末610の通信環境に関する情報を取得する処理を実行するタイミングを決定する。
S710において、環境情報取得部216は、タイミング決定部636によって決定されたタイミングで、通信端末610の通信環境に関する情報を取得する処理をバックグラウンドで実行する。S710の処理において取得される通信環境情報としては、通信の可否及び電波状況(電波受信レベル、電波強度、RSCP(Received Signal Code Power)、CID(Cell ID)などを例示することができる。)、通信方式、通信キャリアなどに関する情報を例示することができる。なお、環境情報取得部216が処理を実行するタイミングにおいて、位置情報取得部218、識別情報取得部224及びログ情報生成部226も、それぞれの処理を実行してよい。
S712において、プログラム管理部632は、通信端末610の通信環境に関する情報を取得するためのプログラムが、バックグラウンドで動作する状態に移行した後、予め定められた時間が経過したか否かを判断する。S712において、プログラム管理部632が、予め定められた時間が経過したと判断した場合(S712のYesの場合)、S714において、プログラム管理部632は、通信端末610の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作を停止する状態に移行させる。
S716において、プログラム管理部632は、予め定められた種類のイベントの発生を検知すると、当該イベントが発生したことを示す情報を移行判断部634に送信する。本実施形態において、プログラム管理部632は、外部のサーバ(図示していない。)から、通信ネットワーク10及び通信制御部228を介して、通信端末610の位置の変化量が予め定められた値を超えたことを示す情報を受信して、当該情報又は当該情報を取得したことを示す情報を移行判断部634に送信する。
移行判断部634は、通信端末610の通信環境に関する情報を取得するためのプログラムがバックグラウンドで動作を停止する状態において、予め定められた種類のイベントが発生したことを示す情報を取得する。移行判断部634が、プログラム管理部632から受信した情報に含まるイベントが、プログラムの起動状態を移行させるための予め定められたイベントであると判断した場合(S716のYesの場合)、移行判断部634は、プログラム管理部632に対して、プログラムの起動状態を移行させるための要求を送信する。プログラムの起動状態を移行させるための予め定められたイベントは、通信端末610の位置の変化量が予め定められた値を超えたことであってよい。プログラム管理部632は、プログラムの起動状態を移行させるための要求を受信すると、通信端末610の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作する状態に移行させる。
一方、移行判断部634が、プログラムの起動状態を移行させるための予め定められたイベントが発生していないと判断した場合(S716のNoの場合)、S718の処理に進む。S718において、プログラム管理部632は、入力部212が、ユーザから、通信端末610の通信環境に関する情報を取得するためのプログラムをフォアグラウンド状態に移行させるための移行指示を受信したか否かを判断する。
S718において、プログラム管理部632が、ユーザからの移行指示を受信したと判断した場合(S718のYesの場合)、通信端末610の通信環境に関する情報を取得するためのプログラムをフォアグラウンド状態に移行させる。一方、S718において、プログラム管理部632が、ユーザからの移行指示を受信していないと判断した場合(S718のNoの場合)、S720の処理に進む。
S720において、プログラム管理部632は、入力部212が、ユーザから、通信端末610の通信環境に関する情報を取得するためのプログラムの終了指示を受信したか否かを判断する。S720において、プログラム管理部632が、ユーザからの終了指示を受信したと判断した場合(S720のYesの場合)、プログラム管理部632が、通信端末610の通信環境に関する情報を取得するためのプログラムを終了させて、処理を完了する。
本実施形態においては、S704において、プログラム管理部632が、ユーザからの移行指示を受信したと判断した場合、S706において、プログラム管理部632が、通信端末610の通信環境に関する情報を取得するためのプログラムを、一旦、バックグラウンドで動作する状態に移行させ、通信端末610が、S708〜S712における処理を実行する場合について説明した。しかし、通信端末610の動作は、本実施形態に限定されない。他の実施形態において、S704において、プログラム管理部632が、ユーザからの移行指示を受信したと判断した場合、S708〜S712の処理をスキップして、プログラム管理部632が、通信端末610の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作を停止する状態に移行させてもよい。
図8は、通信端末110のモジュール構成の一例を概略的に示す。図8を用いて、通信端末110のオペレーティング・システム802上で、アプリケーション810、アプリケーション820及びアプリケーション830が動作している場合を例として、通信端末110のモジュール構成について説明する。アプリケーション810、アプリケーション820及びアプリケーション830は、プログラムの一例であってよい。
本実施形態において、アプリケーション810は、処理実行モジュール812と、ログ生成モジュール814と、通信制御モジュール816とを有する。アプリケーション810の各モジュールは、互いに情報を送受することができる。アプリケーション820は、アプリケーションモジュール822と、ログ生成モジュール824と、通信制御モジュール826とを有する。アプリケーション820の各モジュールは、互いに情報を送受することができる。アプリケーション830は、アプリケーションモジュール832と、ログ生成モジュール834と、通信制御モジュール836とを有する。アプリケーション830の各モジュールは、互いに情報を送受することができる。
処理実行モジュール812は、通信端末110のコンピュータを、処理実行部214として機能させるためのプログラムであってよい。アプリケーションモジュール822及びアプリケーションモジュール832は、通信端末110のコンピュータを、アプリケーション部として機能させるためのプログラムであってよい。処理実行モジュール812、アプリケーションモジュール822及びアプリケーションモジュール832は、ユーザ空間上で動作するアプリケーションプログラムとして動作してよい。
ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834は、通信端末110のコンピュータを、ログ生成部210として機能させるためのプログラムであってよい。ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834の少なくとも一つは、デーモンなどの常駐プログラムとして動作してもよい。ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834は、プログラムの一例であってよい。
ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834は、通信端末110のコンピュータにより実行されて、通信端末110のコンピュータを、同一又は類似の機能を有する構成要素として機能させるためのプログラムであってよい。ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834は、同一のモジュールでなくてもよい。例えば、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834は、バージョンの異なる一連のモジュールであってもよい。ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834のうちの少なくとも2つは、同一のモジュールであってもよい。
通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836は、通信端末110のコンピュータを、通信制御部228として機能させるためのプログラムであってよい。通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836は、デーモンなどの常駐プログラムとして動作してもよい。通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836は、プログラムの一例であってよい。
通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836は、通信端末110のコンピュータにより実行されて、通信端末110のコンピュータを、同一又は類似の機能を有する構成要素として機能させるためのプログラムであってよい。通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836は、同一のモジュールでなくてもよい。例えば、通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836は、バージョンの異なる一連のモジュールであってもよい。通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836のうちの少なくとも2つは、同一のモジュールであってもよい。
図9は、ログ生成モジュール814の一例を概略的に示す。図8において、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834が実行されると、通信端末110上で、同時に3つのログ生成部210が動作する。しかし、例えば、ログ情報の生成頻度が多少小さくなっても、ログ情報の解析に与える影響は比較的小さい。この場合において、3つのログ生成部210のうちの少なくとも1つを停止させることで、通信端末110のリソースの利用率を低減することができる。このように、通信端末110のコンピュータを、同一又は類似の機能を有する構成要素として機能させるための複数のプログラムのうちの少なくとも1つを停止させることで、通信端末110のリソースを効率的に利用することができる。
本実施形態においては、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834うちのいずれか1つのモジュールの実行を継続し、その他のモジュールを停止させる場合を例として、ログ生成モジュール814における情報処理方法の一例について説明する。本実施形態においては、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834のそれぞれが、起動処理中に他のモジュールに関する情報を取得して、当該情報に基づいて、当該起動処理を継続するか否かを判断する場合を例として、ログ生成モジュール814における情報処理方法の一例について説明する。
なお、本実施形態においては、例えば、ログ生成モジュール824が実行されることにより実現されたログ生成部210の動作を停止すると、アプリケーション820が、ログ生成モジュールに対してログ情報を生成するためのコマンドを送信しても、ログ情報が生成されない。しかし、例えば、アプリケーション820が、アプリケーション820がフォアグラウンドの状態においてログ情報を生成するログ生成部を実現するためのモジュールと、アプリケーション820がバックグラウンドの状態においてログ情報を生成するログ生成部を実現するためのモジュールとを備え、アプリケーション820がバックグラウンドの状態においてログ情報を生成するログ生成部の動作を停止させ、アプリケーション820がフォアグラウンドの状態においてログ情報を生成するログ生成部を起動することで、上記の課題を解決することができる。
本実施形態において、ログ生成モジュール814は、ログ生成処理部910と、イベント検出部912と、プログラム情報取得部914と、ポリシー取得部916と、決定部918とを備える。ログ生成モジュール814の各部は、互いに情報を送受することができる。ログ生成処理部910は、ログ生成部210における情報処理の手順を実行する。
ログ生成モジュール824及びログ生成モジュール834の少なくとも一方は、ログ生成モジュール814と同様の構成を有してよい。本実施形態においては、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834のそれぞれが、ログ生成処理部910、イベント検出部912、プログラム情報取得部914、ポリシー取得部916及び決定部918を備える場合を例として、ログ生成モジュール814における情報処理方法の一例について説明する。
本実施形態においては、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834のそれぞれが、処理実行モジュール812、アプリケーションモジュール822及びアプリケーションモジュール832のそれぞれからのコマンドに基づいて情報処理を実行する場合を例として、ログ生成モジュール814における情報処理方法の一例について説明する。なお、例えば、ログ生成モジュール814が実行を継続し、ログ生成モジュール824及びログ生成モジュール834が停止している場合、ログ生成モジュール814は、処理実行モジュール812からのコマンドに基づいて情報処理を実行するだけでなく、アプリケーションモジュール822及びアプリケーションモジュール832からのコマンドに基づいて情報処理を実行してもよい。
なお、通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836の少なくとも1つが、ログ生成モジュール814と同様の構成を有してもよい。例えば、通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836のそれぞれは、イベント検出部912と、プログラム情報取得部914と、ポリシー取得部916と、決定部918とを備え、通信制御モジュール816、通信制御モジュール826及び通信制御モジュール836のいずれか1つのモジュールは実行を継続し、その他のモジュールは停止するように動作する。
本実施形態において、イベント検出部912は、予め定められたイベントの発生を検出する。イベント検出部912は、予め定められたイベントの発生を検出した場合、決定部918にその旨を通知してよい。イベント検出部912により検出されるイベントとしては、(1)アプリケーション810又はログ生成モジュール814の通信端末110へのインストール、(2)アプリケーション810又はログ生成モジュール814の通信端末110からの削除、(3)アプリケーション810又はログ生成モジュール814のアップデート、(4)通信端末110の再起動、(5)アプリケーション810又はログ生成モジュール814による情報処理について、通信端末110のユーザが承諾したこと(OPT INと称される場合がある。)、及び、(6)アプリケーション810又はログ生成モジュール814による情報処理について、通信端末110のユーザが拒否したこと(OPT OUTと称される場合がある。)からなる群から選択される少なくとも1つを例示することができる。
本実施形態において、プログラム情報取得部914は、インストールされている1以上のプログラムの識別情報を取得する。プログラム情報取得部914は、取得された1以上の識別情報を、決定部918に送信してよい。上記の1以上のプログラムの識別情報は、通信端末110にインストールされている全てのプログラムの識別情報であってもよく、通信端末110にインストールされている全ての常駐プログラムであってもよく、通信端末110に上で現在起動している全てのプログラムであってもよく、通信端末110に上で現在起動している全ての常駐プログラムであってもよい。
例えば、プログラム情報取得部914は、オペレーティング・システム802から、通信端末110にインストールされている全てのプログラムの識別情報を取得する。一実施形態において、プログラム情報取得部914は、通信端末110にインストールされている全てのプログラムの識別情報の中から、現在起動しているプログラムの識別情報を抽出して、1以上のプログラムの識別情報を取得する。他の実施形態において、プログラム情報取得部914は、通信端末110にインストールされている全てのプログラムの識別情報の中から、通信端末110のユーザによりOPTINされたプログラムを抽出して、1以上のプログラムの識別情報を取得する。
プログラム情報取得部914は、通信端末110にインストールされている全てのプログラムの識別情報の中から、上記の条件に合致する識別情報を抽出した後、さらに他の条件に合致する識別情報を抽出して、1以上のプログラムの識別情報を取得してよい。例えば、プログラム情報取得部914は、通信端末110にインストールされている全てのプログラムの識別情報の中から、現在起動しており、かつ、通信端末110のユーザによりOPTINされたプログラムを抽出して、1以上のプログラムの識別情報を取得する。
他の実施形態において、プログラム情報取得部914は、通信端末110にインストールされている全てのプログラムの識別情報の中から、予め定められたプログラムの識別情報に合致する識別情報を抽出して、1以上のプログラムの識別情報を取得する。これにより、例えば、通信端末110にインストールされているプログラムの中から、同一のプログラム提供者により提供されたプログラムを抽出することができる。
この場合において、プログラム情報取得部914は、取得された1以上の識別情報により識別されるプログラムが現在起動しているか否かを判断してよい。プログラム情報取得部914は、取得された1以上の識別情報により識別されるプログラムのうち、現在起動していないプログラムの起動処理を実行するためのコマンドを発行してよい。これにより、例えば、同一のプログラム提供者により提供された全てのプログラムの起動処理を実行させることができる。プログラム情報取得部914は、通信端末110にインストールされている全てのプログラムの識別情報の中から、予め定められたプログラムの識別情報に合致する識別情報を抽出した後、さらに他の条件に合致する識別情報を抽出して、1以上のプログラムの識別情報を取得してよい。
本実施形態意おいては、プログラム情報取得部914が、オペレーティング・システム802から、通信端末110にインストールされている全てのプログラムの識別情報を取得する場合について説明した。しかし、プログラム情報取得部914における情報処理は本実施形態に限定されない。他の実施形態において、プログラム情報取得部914は、オペレーティング・システム802から、現在起動している全てのプログラムの識別情報を取得してよい。また、現在起動している全てのプログラムの識別情報の中から、条件に合致する識別情報を抽出して、1以上のプログラムの識別情報を取得してよい。
本実施形態において、ポリシー取得部916は、決定部918による決定手順において利用されるポリシーを取得する。ポリシーは、決定部918による決定の判断基準を示す情報であってよい。ポリシー取得部916は、取得されたポリシーを決定部918に送信してよい。ポリシー取得部916は、通信端末110の記憶装置にアクセスして、当該記憶装置格納されたポリシーを取得してもよく、情報収集サーバ120などの外部の情報処理装置にアクセスして、当該外部の情報処理装置に格納されたポリシーを取得してもよい。ポリシー取得部916は、ポリシー取得部916に記憶されたポリシーを読み出すことで、ポリシーを取得してもよい。
本実施形態において、決定部918は、プログラム情報取得部914により取得された識別情報に基づいて、通信端末110によるログ生成モジュール814の実行を継続させるか、通信端末110によるログ生成モジュール814の実行を停止させるかを決定する。決定部918は、イベント検出部912が、上記の予め定められたイベントの発生を検出した場合に、通信端末110によるログ生成モジュール814の実行を継続させるか、通信端末110によるログ生成モジュール814の実行を停止させるかを決定してよい。
[決定部918による決定処理の第1の実施形態]
一実施形態において、決定部918は、ポリシー取得部916から、予め定められたプログラムが起動している場合には、通信端末110によるログ生成モジュール814の実行を停止させるというポリシーを受信する。ポリシーには、例えば、上記の予め定められたプログラムの識別情報が含まれる。これにより、一のモジュールの起動処理により、動作中の他のモジュールにおける情報処理が終了することを防止することができる。
ポリシーには、1以上のプログラムの識別情報と、当該識別情報がポリシーとして適用される時間に関する条件(時間条件と称する場合がある。)及び当該識別情報がポリシーとして適用される位置に関する条件(位置条件と称する場合がある。)の少なくとも一方とが対応付けられた情報が含まれてもよい。識別情報と、当該識別情報がポリシーとして適用される時間に関する条件とが対応付けられることにより、ポリシーとして適用される識別情報を、時刻に応じて設定することができる。識別情報と、当該識別情報がポリシーとして適用される位置に関する条件とが対応付けられることにより、ポリシーとして適用される識別情報を、位置に応じて設定することができる。
決定部918は、例えば、プログラム情報取得部914により取得された1以上の識別情報の中に、ポリシーにより規定された識別情報が含まれない場合に、通信端末110によるログ生成モジュール814の実行を継続させることを決定する。決定部918は、プログラム情報取得部914により取得された1以上の識別情報の中に、ポリシーにより規定された識別情報であって、ログ生成モジュール814の識別情報以外の識別情報が含まれる場合に、通信端末110によるログ生成モジュール814の実行を停止させることを決定してもよい。ポリシーにより規定された識別情報は、予め定められたプログラムの識別情報の一例であってよい。
[決定部による決定処理の第2の実施形態]
他の実施形態において、決定部918は、ポリシー取得部916から、1以上のプログラムのそれぞれに予め割り当てられた優先度に基づいて、通信端末110によるログ生成モジュール814の実行を継続させるか、通信端末110によるログ生成モジュール814の実行を停止させるかを決定するというポリシーを受信する。ポリシーには、例えば、1以上のプログラムの識別情報と、当該識別情報により識別されるプログラムに割り当てられた優先度とが対応付けられた情報が含まれる。これにより、任意のプログラムを優先的に動作させることができる。
ポリシーには、1以上のプログラムの識別情報と、当該識別情報により識別されるプログラムに割り当てられた優先度と、当該優先度が適用される時間に関する条件(時間条件と称する場合がある。)及び当該優先度が適用される位置に関する条件(位置条件と称する場合がある。)の少なくとも一方とが対応付けられた情報が含まれてもよい。優先度と、当該優先度が適用される時間に関する条件とが対応付けられることにより、時刻に応じた優先度を設定することができる。優先度と、当該優先度が適用される位置に関する条件とが対応付けられることにより、位置に応じた優先度を設定することができる。
決定部918は、プログラム情報取得部914により取得された1以上の識別情報により識別される1以上のプログラムのそれぞれに割り当てられた優先度を取得する。決定部918は、例えば、ポリシー取得部916からポリシーを取得することで、上記の優先度に関する情報を取得する。
決定部918は、例えば、上記の1以上のプログラムの中でログ生成モジュール814の優先度が最も高い場合に、通信端末110によるログ生成モジュール814の実行を継続させることを決定する。決定部918は、上記の1以上のプログラムの中に、ログ生成モジュール814よりも優先度の高いプログラムが存在する場合に、通信端末110によるログ生成モジュール814の実行を停止させることを決定してよい。
決定部918は、ログ生成モジュール814が、上記の1以上のプログラムの中で最も優先度が高く、かつ、上記の1以上のプログラムのうち、現在起動しているプログラムの識別情報の中に、予め定められた識別情報が含まれない場合に、通信端末110によるログ生成モジュール814の実行を継続させることを決定してもよい。決定部918は、ポリシー取得部916からポリシーを取得することで、上記の予め定められた識別情報を取得してよい。
本実施形態において、ログ生成モジュール814、ログ生成モジュール824及びログ生成モジュール834のそれぞれが、起動処理中に他のモジュールに関する情報を取得して、当該情報に基づいて、当該起動処理を継続するか否かを判断する場合について説明した。この場合、決定部918は、上記の決定処理の結果にしたがって、ログ生成モジュール814の起動処理を継続したり、停止させたりする。
しかし、決定部918は本実施形態に限定されない。他の実施形態において、決定部918は、ログ生成モジュール814の実行を継続させることを決定した場合、ログ生成モジュール814の起動処理を継続することに加えて、ポリシーに記録された他のプログラムの実行を停止させるためのコマンドを発行してよい。また、決定部918は、ログ生成モジュール814の実行を停止させることを決定した場合、ログ生成モジュール814の起動処理を停止することに加えて、ポリシーに記録された他のプログラムのうち、最も優先度の高いプログラムを実行させるためのコマンドを発行してよい。
本実施形態において、ログ生成モジュール814が決定部918を有し、決定部918が、ログ生成モジュール814の起動処理中に当該起動処理を継続するか否かを決定する場合について説明した。しかし、決定部918は本実施形態に限定されない。他の実施形態において、アプリケーション810中の他のモジュールが決定部918を有してもよい。また、決定部918は、ログ生成モジュール814の起動処理以外のタイミングにおいて、上記の決定処理を実行してもよい。
本実施形態において、決定部918が、プログラム情報取得部914により取得された1以上の識別情報により識別される1以上のプログラムの中で、ログ生成モジュール814の優先度が最も高い場合に、通信端末110によるログ生成モジュール814の実行を継続させることを決定する場合について説明した。しかし、決定部918は本実施形態に限定されない。
他の実施形態において、通信端末110は、優先度を割り当てられたプログラムが、当該プログラムの起動時に当該プログラムの識別情報を記録するためのファイルを有する。上記のプログラムは、上記のファイルに当該プログラムに割り当てられた優先度を記録してもよい。例えば、優先度を割り当てられたプログラムのそれぞれは、当該プログラムの起動時に、決定部918が、当該プログラム(起動中のプログラムと称する場合がある。)に割り当てられた優先度と、上記のファイルに記録された識別情報により識別されるプログラムに割り当てられた優先度とを比較する。
この場合において、起動中のプログラムの優先度が、上記のファイルに記録された識別情報により識別されるプログラムに割り当てられた優先度よりも高い場合、決定部918は、上記のファイルに記録されている識別情報を消去し、起動中のプログラムの識別情報を記録する。また、決定部918は、上記のファイルに記録されている識別情報により識別されるプログラムの実行を停止するためのコマンドを発行した上で、起動中のプログラムの起動処理の実行を継続する。一方、起動中のプログラムの優先度が、上記のファイルに記録された識別情報により識別されるプログラムに割り当てられた優先度よりも低い場合、決定部918は、起動中のプログラムの起動処理の実行を停止する。
[決定部による決定処理の第3の実施形態]
他の実施形態において、決定部918は、ポリシー取得部916から、情報収集サーバ120などの外部の情報処理装置からの指示に基づいて、通信端末110によるログ生成モジュール814の実行を継続させるか、通信端末110によるログ生成モジュール814の実行を停止させるかを決定するというポリシーを受信する。ポリシーには、例えば、外部の情報処理装置のURIが含まれる。
決定部918は、ポリシーに規定されたURIに、ログ生成モジュール814の識別情報を送信して、通信端末110によるログ生成モジュール814の実行の継続の可否に関する情報を要求する。決定部918は、上記要求に対する応答を受信して、当該応答に基づいて、通信端末110によるログ生成モジュール814の実行を継続させるか、通信端末110によるログ生成モジュール814の実行を停止させるかを決定する。
通信端末110によるログ生成モジュール814の実行の継続の可否に関する情報は、通信端末110によるログ生成モジュール814の実行の継続を許可する旨の指示であってもよく、通信端末110によるログ生成モジュール814の実行の継続を禁止する旨の指示であってもよい。通信端末110によるログ生成モジュール814の実行の継続の可否に関する情報は、通信端末110において実行の継続を許可されるプログラムの識別情報であってもよく、通信端末110において実行の継続を禁止されるプログラムの識別情報であってもよい。
図10は、データテーブル1000の一例を概略的に示す。データテーブル1000は、ポリシーの一例であってよい。本実施形態において、データテーブル1000は、位置条件1002と、時間条件1004と、ポリシーとして適用されるプログラムのプログラムID1006とを対応付けて格納する。プログラムID1006は、プログラムの識別情報の一例であってよい。
データテーブル1000がポリシーとして利用された場合、ログ生成モジュール814の決定部918は、例えば、下記の処理を実行する。一実施形態において、通信端末110がエリアAの範囲内に存在し、時刻が昼間である場合、プログラム情報取得部914により取得された識別情報の中に、ログ生成モジュール824、ログ生成モジュール1024などの識別情報が含まれていれば、ログ生成モジュール814の決定部918は、ログ生成モジュール814の実行を停止させることを決定する。一方、プログラム情報取得部914により取得された識別情報の中に、ログ生成モジュール824、ログ生成モジュール1024などの識別情報が含まれていない場合、ログ生成モジュール814の決定部918は、ログ生成モジュール814の実行を継続させることを決定する。
他の実施形態において、通信端末110がエリアAの範囲内に存在し、時刻が夜間である場合、プログラム情報取得部914により取得された識別情報の中に、ログ生成モジュール1024などの識別情報が含まれていれば、ログ生成モジュール814の決定部918は、ログ生成モジュール814の実行を停止させることを決定する。一方、プログラム情報取得部914により取得された識別情報の中に、ログ生成モジュール1024などの識別情報が含まれていない場合、ログ生成モジュール814の決定部918は、ログ生成モジュール814の実行を継続させることを決定する。
図11は、データテーブル1100の一例を概略的に示す。データテーブル1100は、ポリシーの一例であってよい。本実施形態において、データテーブル1000は、位置条件1002と、時間条件1004と、ポリシーとして適用されるプログラムのプログラムID1006と、優先度1108とを対応付けて格納する。優先度1108の設定方法は任意の方法が利用できる。本実施形態においては、優先度が高いほど、優先度1108には小さな数字が記入される。
データテーブル1000がポリシーとして利用された場合、ログ生成モジュール814の決定部918は、例えば、下記の処理を実行する。一実施形態において、通信端末110がエリアAの範囲内に存在し、時刻が昼間である場合、ログ生成モジュール814は、ログ生成モジュール824及びログ生成モジュール834よりも優先度が高い。そこで、ログ生成モジュール814の決定部918は、ログ生成モジュール814の実行を継続させることを決定する。
他の実施形態において、通信端末110がエリアAの範囲内に存在し、時刻が夜間である場合、ログ生成モジュール814は、ログ生成モジュール824及びログ生成モジュール834よりも優先度が低い。そこで、ログ生成モジュール814の決定部918は、ログ生成モジュール814の実行を停止させることを決定する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
[項目1]
通信環境に関する情報を取得するためのプログラムであって、
通信機能を有するコンピュータに、
通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けるユーザ指示受付手順と、
上記ユーザ指示によって指示された処理を実行する処理実行手順と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順を実行する手順と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記コンピュータの位置情報を取得する位置情報取得手順を実行する手順と、
を実行させるためのプログラム。
[項目2]
上記コンピュータに、
画像を表示する表示手順を、さらに実行させるためのプログラムであって、
上記通信環境に関する情報を取得するための処理以外の処理は、表示された上記画像の表示位置を変更する処理である、
項目1に記載のプログラム。
[項目3]
上記コンピュータに、
上記コンピュータとネットワークを介して接続されるサーバから取得した情報を、上記コンピュータのユーザが知覚することができる形態で出力する出力手順を、さらに実行させるためのプログラムであって、
上記通信環境に関する情報を取得するための処理以外の処理は、上記ユーザが指示した情報を、上記サーバから取得する処理であり、
上記通信環境情報取得手順は、
上記サーバに対して上記ユーザが指示した情報を送信するよう要求してから、上記ユーザが指示した情報を上記サーバから取得するまでの時間と、上記ユーザが指示した情報の情報量とに基づいて、上記通信環境に関する情報を取得する手順を含む、
項目1又は項目2に記載のプログラム。
[項目4]
上記コンピュータに、
上記コンピュータの通信環境に関する情報と、上記コンピュータの位置情報とが対応づけられたログ情報を生成するログ情報生成手順を、さらに実行させるための、
項目1から項目3までの何れか一項に記載のプログラム。
[項目5]
上記位置情報取得手順は、少なくともGPS情報に基づいて、上記コンピュータの位置情報と、GPS精度に関する情報とを取得する手順を含み、
上記ログ情報は、上記GPS精度に関する情報と、上記コンピュータの通信環境に関する情報と、上記コンピュータの位置情報とが対応づけられた情報である、
項目4に記載のプログラム。
[項目6]
上記コンピュータに、
上記コンピュータを識別する識別情報を取得する識別情報取得手順をさらに実行させるためのプログラムであって、
上記ログ情報は、上記識別情報と、上記コンピュータの通信環境に関する情報と、上記コンピュータの位置情報とが対応づけられた情報である、
項目4又は項目5に記載のプログラム。
[項目7]
上記コンピュータに、
上記プログラムがバックグラウンドで動作を停止する状態において、上記コンピュータの位置の変化量が予め定められた値を超えたことを示す位置変更情報を取得する位置変更情報取得手順と、
上記位置変更情報を取得した場合に、上記プログラムがバックグラウンドで動作する状態に移行する移行手順と、
上記プログラムがバックグラウンドで動作する状態において、上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順を実行する手順と、
をさらに実行させるための、
項目1から項目6までの何れか一項に記載のプログラム。
[項目8]
上記コンピュータに、
上記プログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであって、上記コンピュータに上記通信環境情報取得手順を実行させるタイミングを、ランダムに決定する実行タイミング決定手順をさらに実行させるための、
項目1から項目7までの何れか一項に記載のプログラム。
[項目9]
インストールされている1以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記1以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
をさらに実行させるための、
項目1から項目8までの何れか一項に記載のプログラム。
[項目10]
通信環境に関する情報を取得するためのプログラムであって、
通信機能を有するコンピュータに、
上記プログラムがバックグラウンドで動作を停止する状態において、上記コンピュータの位置の変化量が予め定められた値を超えたことを示す位置変更情報を取得する位置変更情報取得手順と、
上記位置変更情報を取得した場合に、上記プログラムがバックグラウンドで動作する状態に移行する移行手順と、
上記プログラムがバックグラウンドで動作する状態において、上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順を実行する手順と、
を実行させるためのプログラム。
[項目11]
上記コンピュータに、
上記プログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであって、上記コンピュータに上記通信環境情報取得手順を実行させるタイミングを、ランダムに決定する実行タイミング決定手順をさらに実行させるための、
項目10に記載のプログラム。
[項目12]
インストールされている1以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記1以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
をさらに実行させるための、
項目10又は項目11に記載のプログラム。
[項目13]
通信環境に関する情報を取得するためのプログラムであって、
通信機能を有するコンピュータに、
上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順と、
上記コンピュータの位置情報を取得する位置情報取得手順と、
上記プログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであって、上記コンピュータに上記通信環境情報取得手順を実行させるタイミングを、ランダムに決定する実行タイミング決定手順と、
を実行させるためのプログラム。
[項目14]
インストールされている1以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記1以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
をさらに実行させるための、
項目13に記載のプログラム。
[項目15]
通信環境に関する情報を取得する情報処理装置であって、
通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けるユーザ指示受付部と、
上記ユーザ指示によって指示された処理を実行する処理実行部と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の通信環境に関する情報を取得する通信環境情報取得部と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の位置情報を取得する位置情報取得部と、
を備える情報処理装置。
[項目16]
情報処理装置の通信環境に関する情報を取得する方法であって、
通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けるユーザ指示受付段階と、
上記ユーザ指示によって指示された処理を実行する処理実行段階と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の通信環境に関する情報を取得する通信環境情報取得段階と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の位置情報を取得する位置情報取得段階と、
を有する方法。