(57)【要約】  同一又は類似の機能を有する複数のモジュールが同時に動作すると、システムのリソースが無駄になる場合がある。コンピュータに、インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得手順と、１以上のプログラムの識別情報に基づいて、コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順とを実行させる。
2015181854.tif 000002
【特許請求の範囲】
【請求項１】
プログラムであって
コンピュータに、
インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記１以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
を実行させるためのプログラム。
【請求項２】
プログラム情報取得手順は、
オペレーティング・システムから、前記コンピュータにインストールされている全てのプログラムの識別情報を取得する手順と、
前記全てのプログラムの識別情報の中から、現在起動しているプログラムの識別情報を抽出して、前記１以上のプログラムの識別情報を取得する手順と、
を有する、
請求項１に記載のプログラム。
【請求項３】
前記決定手順は、前記プログラム情報取得手順において取得された１以上の識別情報の中に、予め定められた識別情報が含まれない場合に、前記コンピュータによる当該プログラムの実行を継続させることを決定する手順を含む、
請求項１又は請求項２に記載のプログラム。
【請求項４】
前記決定手順は、前記プログラム情報取得手順において取得された１以上の識別情報の中に、予め定められた識別情報が含まれる場合に、前記コンピュータによる当該プログラムの実行を停止させることを決定する手順を含む、
請求項１から請求項３までの何れか一項に記載のプログラム。
【請求項５】
前記コンピュータに、
前記１以上のプログラムのそれぞれに割り当てられた優先度を取得する優先度情報手順をさらに実行させるための、
請求項１から請求項４までの何れか一項に記載のプログラム。
【請求項６】
前記決定手順は、
当該プログラムが、前記１以上のプログラムの中で最も優先度が高い場合に、前記コンピュータによる当該プログラムの実行を継続させることを決定する手順を含む、
請求項５に記載のプログラム。
【請求項７】
前記決定手順は、
当該プログラムが、前記１以上のプログラムの中で最も優先度が高く、かつ、前記１以上のプログラムのうち、現在起動しているプログラムの識別情報の中に、予め定められた識別情報が含まれない場合に、前記コンピュータによる当該プログラムの実行を継続させることを決定する手順を含む、
請求項６に記載のプログラム。
【請求項８】
前記決定手順は、
前記１以上のプログラムの中に、当該プログラムよりも優先度の高いプログラムが存在する場合に、前記コンピュータによる当該プログラムの実行を停止させることを決定する手順を含む、
請求項５から請求項７までの何れか一項に記載のプログラム。
【請求項９】
前記１以上のプログラムの少なくとも１つには、時刻及び位置の少なくとも一方に応じた優先度が割り当てられている、
請求項５から請求項８までの何れか一項に記載のプログラム。
【請求項１０】
前記コンピュータに、
予め定められたイベントが発生した場合に、前記決定手順を実行させる手順をさらに実行させるためのプログラムであって、
前記予め定められたイベントは、前記プログラムの前記コンピュータへのインストール、前記プログラムの前記コンピュータからの削除、前記プログラムのアップデート、前記コンピュータの再起動、前記プログラムによる情報処理についてユーザが承諾したこと、及び、前記プログラムによる情報処理についてユーザが拒否したことからなる群から選択される少なくとも１つである、
請求項１から請求項９までの何れか一項に記載のプログラム。
【請求項１１】
インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得部と、
前記１以上のプログラムの識別情報に基づいて、一のプログラムの実行を継続させるか、当該実行を停止させるかを決定する決定部と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
デーモンプロセスとして動作するモジュールを有するプログラム及び当該プログラムにより実現されるシステムが知られている（例えば、特許文献１を参照。）。
（先行技術文献）
（特許文献）
（特許文献１）特開２０１３−２３５３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
複数のプログラムのそれぞれが、同一又は類似の機能を有するモジュールを有する場合がある。同一のシステム上で上記の複数のプログラムが起動すると、それぞれのプログラムに含まれるモジュールも起動する。しかし、同一又は類似の機能を有する複数のモジュールが同時に動作すると、システムのリソースが無駄になる場合がある。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、プログラムが提供される。上記のプログラムを記憶するコンピュータ読み取り可能な媒体が提供されてもよい。上記のプログラムは、コンピュータに、インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得手順を実行させるためのプログラムであってよい。上記のプログラムは、コンピュータに、１以上のプログラムの識別情報に基づいて、コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順を実行させるためのプログラムであってよい。【０００５】
上記のプログラムにおいて、プログラム情報取得手順は、オペレーティング・システムから、コンピュータにインストールされている全てのプログラムの識別情報を取得する手順を有してよい。上記のプログラムにおいて、プログラム情報取得手順は、全てのプログラムの識別情報の中から、現在起動しているプログラムの識別情報を抽出して、１以上のプログラムの識別情報を取得する手順を有してよい。【０００６】
上記のプログラムにおいて、決定手順は、プログラム情報取得手順において取得された１以上の識別情報の中に、予め定められた識別情報が含まれない場合に、コンピュータによる当該プログラムの実行を継続させることを決定する手順を含んでよい。上記のプログラムにおいて、決定手順は、プログラム情報取得手順において取得された１以上の識別情報の中に、予め定められた識別情報が含まれる場合に、コンピュータによる当該プログラムの実行を停止させることを決定する手順を含んでよい。【０００７】
上記のプログラムは、コンピュータに、１以上のプログラムのそれぞれに割り当てられた優先度を取得する優先度情報手順をさらに実行させるためのプログラムであってよい。上記のプログラムにおいて、決定手順は、当該プログラムが、１以上のプログラムの中で最も優先度が高い場合に、コンピュータによる当該プログラムの実行を継続させることを決定する手順を含んでよい。【０００８】
上記のプログラムにおいて、決定手順は、当該プログラムが、１以上のプログラムの中で最も優先度が高く、かつ、１以上のプログラムのうち、現在起動しているプログラムの識別情報の中に、予め定められた識別情報が含まれない場合に、コンピュータによる当該プログラムの実行を継続させることを決定する手順を含んでよい。上記のプログラムにおいて、決定手順は、１以上のプログラムの中に、当該プログラムよりも優先度の高いプログラムが存在する場合に、コンピュータによる当該プログラムの実行を停止させることを決定する手順を含んでよい。上記のプログラムにおいて、１以上のプログラムの少なくとも１つには、時刻及び位置の少なくとも一方に応じた優先度が割り当てられてよい。【０００９】
上記のプログラムは、コンピュータに、予め定められたイベントが発生した場合に、決定手順を実行させる手順をさらに実行させるためのプログラムであってよい。上記のプログラムにおいて、予め定められたイベントは、プログラムのコンピュータへのインストール、プログラムのコンピュータからの削除、プログラムのアップデート、コンピュータの再起動、プログラムによる情報処理についてユーザが承諾したこと、及び、プログラムによる情報処理についてユーザが拒否したことからなる群から選択される少なくとも１つであってよい。【００１０】
本発明の第２の態様においては、情報処理装置が提供される。上記の情報処理装置は、インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得部を備えてよい。上記の情報処理装置は、１以上のプログラムの識別情報に基づいて、一のプログラムの実行を継続させるか、当該実行を停止させるかを決定する決定部を備えてよい。【００１１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１２】
【図１】通信状況解析システム１００の一例を概略的に示す。
【図２】通信端末１１０の一例を概略的に示す。
【図３】ログ情報のデータテーブル３００の一例を概略的に示す。
【図４】通信端末１１０の動作の一例を概略的に示す。
【図５】通信端末１１０の動作の他の例を概略的に示す。
【図６】通信端末６１０の一例を概略的に示す。
【図７】通信端末６１０の動作の一例を概略的に示す。
【図８】通信端末１１０のモジュール構成の一例を概略的に示す。
【図９】ログ生成モジュール８１４の一例を概略的に示す。
【図１０】データテーブル１０００の一例を概略的に示す。
【図１１】データテーブル１１００の一例を概略的に示す。
【発明を実施するための形態】
【００１３】
以下、発明の実施の形態を通じて本発明の一側面を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
【００１４】
図１は、通信状況解析システム１００の一例を概略的に示す。本実施形態において、通信状況解析システム１００は、通信端末１１０と、情報収集サーバ１２０とを備える。通信状況解析システム１００及び通信端末１１０は、情報処理装置の一例であってよい。通信端末１１０は、通信機能を有するコンピュータの一例であってよい。
【００１５】
通信端末１１０及び情報収集サーバ１２０は、通信ネットワーク１０を介して情報を送受する。通信端末１１０及び情報提供サーバ２０は、通信ネットワーク１０を介して情報を送受する。通信ネットワーク１０は、無線通信の伝送路であってもよく、無線通信の伝送路及び有線通信の伝送路の組み合わせであってもよい。通信ネットワーク１０は、携帯電話回線網などの移動体通信網、無線パケット通信網、インターネッ及び専用回線又はそれらの組み合わせであってもよい。
【００１６】
情報提供サーバ２０及び情報収集サーバ１２０のそれぞれは、一般的な構成の情報処理装置において、情報提供サーバ２０及び情報収集サーバ１２０のそれぞれの各部の動作を規定したソフトウエア又はプログラムを起動することにより実現されてよい。情報提供サーバ２０及び情報収集サーバ１２０として用いられる情報処理装置は、ＣＰＵ等のプロセッサ、ＲＯＭ、ＲＡＭ、通信インターフェースなどを有するデータ処理装置と、キーボード、タッチパネル、マイクなどの入力装置と、表示装置、スピーカなどの出力装置と、メモリ、ＨＤＤなどの記憶装置とを備えてよい。データ処理装置又は記憶装置は、上記のソフトウエア又はプログラムを記憶してよい。情報提供サーバ２０及び情報収集サーバ１２０は、プロセッサと、プロセッサによって実行される命令又はプログラムを記憶する記憶装置とを備えた情報処理装置の一例であってよい。上記の命令又はプログラムは、プロセッサによって実行されることにより、当該情報処理装置に、当該命令又はプログラムによって規定された動作を実行させる。
【００１７】
情報提供サーバ２０及び情報収集サーバ１２０のそれぞれは、仮想サーバ又はクラウドシステムであってもよい。また、情報提供サーバ２０及び情報収集サーバ１２０のそれぞれの機能が、複数のサーバによって実現されてもよい。
【００１８】
情報提供サーバ２０は、通信ネットワーク１０を介して、通信端末１１０に情報を提供することで、通信端末１１０のユーザにサービスを提供する。情報提供サーバ２０により提供されるサービスとしては、情報検索サービス、地図上でのナビゲーションサービス、メールサービス、映像・音楽データ配信サービス、電子書籍配信サービスなどを例示することができる。情報提供サーバ２０は、通信端末１１０から、通信端末１１０のユーザにより指定された情報に関する送信要求を受信する。情報提供サーバ２０は、通信端末１１０からの送信要求に応じて、通信端末１１０に情報を送信する。
【００１９】
通信端末１１０は、通信機能を有する。通信端末１１０は、無線通信機能を有してよい。通信端末１１０は、複数の通信方式に対応してもよい。例えば、通信端末１１０は、３Ｇ方式、ＬＴＥ方式、４Ｇ方式などの移動体通信方式と、ＷｉＦｉ（登録商標）、ＷｉＭＡＸ（登録商標）などの無線通信方式との両方の通信方式に対応する。通信端末１１０は、情報提供サーバ２０及び情報収集サーバ１２０と情報を送受することができる装置であればよく、Ｗｅｂブラウザソフトが導入されたパーソナルコンピュータ、携帯電話、携帯端末（ＰＤＡ、タブレット又はノートブック・コンピュータ若しくはラップトップ・コンピュータなどを例示することができる。）、無線端末などであってよい。
【００２０】
通信端末１１０は、一般的な構成の情報処理装置において、通信端末１１０の各部の動作を規定したソフトウエア又はプログラムを起動することにより実現されてよい。通信端末１１０として用いられる情報処理装置は、ＣＰＵ等のプロセッサ、ＲＯＭ、ＲＡＭ、通信インターフェースなどを有するデータ処理装置と、キーボード、タッチパネル、マイク、ＧＰＳ情報取得装置、加速度センサ、ジャイロセンサなどの入力装置と、表示装置、スピーカ、振動装置などの出力装置と、メモリ、ＨＤＤなどの記憶装置とを備えてよい。データ処理装置又は記憶装置は、上記のソフトウエア又はプログラムを記憶してよい。通信端末１１０は、通信機能を有し、プロセッサと、プロセッサによって実行される命令又はプログラムを記憶する記憶装置とを備えた情報処理装置の一例であってよい。上記の命令又はプログラムは、プロセッサによって実行されることにより、当該情報処理装置に、当該命令又はプログラムによって規定された動作を実行させる。
【００２１】
通信端末１１０は、ユーザ指示を受け付け、ユーザ指示によって指示された処理を実行する。ユーザ指示は、通信端末１１０に対して、通信環境に関する情報を取得するための処理以外の処理を実行することを指示する指示であってよい。通信端末１１０は、ユーザ指示を受け付けた場合に、通信端末１１０の通信環境に関する情報（通信環境情報と称する場合がある。）と、通信環境情報を取得した位置を示す位置情報とを取得する。通信端末１１０は、ユーザ指示によって指示された処理が実行される場合に、通信環境情報及び位置情報を取得してもよい。位置情報は、緯度及び経度に関する情報であってよく、さらに高度に関する情報を含んでもよい。通信端末１１０は、少なくとも通信環境情報及び位置情報が対応付けられた情報（ログ情報と称する場合がある。）を、情報収集サーバ１２０に送信する。
【００２２】
通信環境情報としては、通信の可否、電波状況（電波受信レベル、電波強度、ＲＳＣＰ（Ｒｅｃｅｉｖｅｄ  Ｓｉｇｎａｌ  Ｃｏｄｅ  Ｐｏｗｅｒ）、ＣＩＤ（Ｃｅｌｌ  ＩＤ）などを例示することができる。）、通信品質（通信速度、データ通信のスループット、データ通信のレイテンシなどを例示することができる。）、通信方式、通信キャリアなどに関する情報を例示することができる。通信環境情報は、電波に関連する情報以外のネットワークに関する情報を含んでもよい。通信の可否は、例えば、電波受信レベルが予め定められたレベルよりも小さい場合（例えば、圏外である場合）に、通信が可能でない（通信不可と称する場合がある。）と判断される。
【００２３】
通信の可否は、特定の電波状況又は通信品質に関する情報を取得する処理（試行と称する場合がある。）を複数回繰り返した結果に基づいて、判断されてもよい。例えば、予め定められた回数の試行のうち、電波状況又は通信品質が予め定められた第１の閾値よりも良好であった試行の割合が、予め定められた第２の閾値よりも大きい場合に、通信が可能である（通信可能と称する場合がある。）と判断される。それ以外の場合は、通信が可能でない（通信不能と称する場合がある。）と判断される。
【００２４】
ログ情報は、通信環境情報と、位置情報と、通信環境情報を取得した時刻を示す情報、位置情報を取得したときのＧＰＳ強度を示す情報及び通信端末１１０に関する情報の少なくとも１つとが対応づけられた情報であってもよい。通信端末１１０に関する情報としては、通信端末１１０のそれぞれを識別する端末識別情報、通信端末１１０の機種を示す情報、通信端末１１０のＯＳを示す情報などを例示することができる。
【００２５】
通信環境情報を取得した時刻を示す情報は、通信端末１１０が通信環境情報の取得処理を開始した時刻であってもよく、通信端末１１０が通信環境情報の取得処理を完了した時刻であってもよく、通信端末１１０がユーザ指示を受け付けた時刻であってもよい。端末識別情報は、コンピュータを識別する識別情報の一例であってよい。
【００２６】
端末識別情報は、通信端末１１０のそれぞれを識別することができる情報であれば特に限定されないが、ユーザを特定することなく、通信端末１１０を識別することができる情報であることが好ましい。これにより、情報収集サーバ１２０は、ユーザを特定することなく、ログ情報の時間的な関連性を考慮して、ログ情報を解析することができる。
【００２７】
例えば、特定の通信端末１１０の端末識別情報として、ランダムに選択された符号列が付与される。符号列は、１以上の通信端末１１０のそれぞれに固有の符号列であってもよく、複数の通信端末１１０の間で再利用されてもよい。端末識別情報は、予め定められた期間ごとに更新されてもよく、任意のタイミングで更新されてもよい。
【００２８】
情報収集サーバ１２０は、１以上の通信端末１１０のそれぞれからログ情報を受け取る。情報収集サーバ１２０は、受け取ったログ情報を記憶装置に格納してよい。情報収集サーバ１２０は、ログ情報を用いて通信状況を解析してよい。
【００２９】
図２は、通信端末１１０の一例を概略的に示す。図２の説明において、図１に関連した説明と重複する部分については説明を省略する場合がある。本実施形態において、通信端末１１０は、入力部２１２と、処理実行部２１４と、環境情報取得部２１６と、位置情報取得部２１８と、出力部２２２と、識別情報取得部２２４と、ログ情報生成部２２６と、通信制御部２２８とを備える。通信端末１１０の各部は、互いに情報を送受する。
【００３０】
本実施形態において、環境情報取得部２１６、位置情報取得部２１８、識別情報取得部２２４及びログ情報生成部２２６は、ログ生成部２１０を生成する。ログ生成部２１０は、ログ情報を生成して、生成されたログ情報を情報収集サーバ１２０に送信する。
【００３１】
通信端末１１０の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。また、プログラムが実行されることにより、コンピュータが、通信端末１１０の一部として機能してもよい。プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリ、ハードディスクなどのコンピュータ読み取り可能な媒体に記憶されていてもよく、ネットワークに接続された記憶装置に記憶されていてもよい。プログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、通信端末１１０のコンピュータにインストールされてよい。
【００３２】
コンピュータを通信端末１１０の一部として機能させるプログラムは、通信端末１１０の各部の動作を規定したモジュールを備えてよい。これらのプログラム又はモジュールは、プロセッサ、通信インターフェース、ＧＰＳ情報取得装置等に働きかけて、コンピュータを通信端末１１０の各部として機能させたり、コンピュータに通信端末１１０における情報処理方法を実行させたりする。
【００３３】
これらのプログラムに記述された情報処理は、コンピュータに読込まれることにより、ソフトウエアと、通信端末１１０の各種のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータの使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた通信端末１１０を構築することができる。
【００３４】
入力部２１２は、ユーザから、ユーザ指示を受け付ける。入力部２１２は、キーボード、タッチパネル又はマイクであってよい。ユーザ指示は、通信端末１１０に対して、通信環境に関する情報を取得するための処理以外の処理を実行することを指示する。したがって、専ら回線速度又は通信速度を測定するための情報を取得することを要求する指示、専ら回線速度又は通信速度を測定するサービスを提供するサーバにアクセスすることを要求する指示などは、ユーザ指示に含まれない。入力部２１２は、ユーザ要求受付部の一例であってよい。
【００３５】
処理実行部２１４は、ユーザ指示によって指示された処理を実行する。ユーザ指示によって指示された処理は、通信機能を利用する処理であってもよく、通信機能を利用しない処理であってもよい。
【００３６】
ユーザ指示によって指示された処理は、通信端末１１０がユーザ指示を受け付けた時点で実行される処理であってもよい。ユーザ指示によって指示された処理は、ユーザの設定により、予め定められた時刻に又は予め定められた時間が経過するごとに自動的に実行される処理であってもよく、通信端末１１０の初期設定又は通信端末１１０上で動作するプログラムの初期設定により、予め定められた時刻に又は予め定められた時間が経過するごとに自動的に実行される処理であってもよい。
【００３７】
ユーザ指示によって指示された処理は、ユーザ指示によって指示された情報を、ユーザが知覚することができる形態で出力する処理であってよい。このような処理としては、通信端末１１０の表示画面をスクロールして、表示画面に表示される画像の表示位置を変更する処理、情報提供サーバ２０にアクセスして、情報提供サーバ２０からユーザが指示した情報を取得して、取得した情報を通信端末１１０の表示画面に表示する処理などを例示することができる。
【００３８】
ユーザ指示によって指示された処理は、通信端末１１０のボタンの押下又はスイッチの切替えに対応づけられた処理であってよい。ユーザ指示によって指示された処理は、通信端末１１０の電源をＯＦＦにする処理であってもよい。ユーザ指示によって指示された処理は、通信端末１１０からログオフする処理であってもよく、通信端末１１０をスリープ状態にする処理であってもよい。
【００３９】
環境情報取得部２１６は、通信端末１１０の通信環境情報を取得する（通信環境情報取得手順を実行すると称する場合がある。）。環境情報取得部２１６は、予め定められたイベントが発生した場合に、通信端末１１０の通信環境情報を取得してよい。予め定められたイベントとしては、（ｉ）通信環境情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けたこと、（ｉｉ）環境情報取得部２１６がバックグラウンドで動作する状態に移行してから予め定められた期間（第２の期間の一例であってよい。）が経過したこと、（ｉｉｉ）以前に、通信環境情報を取得するための処理が実行されてから予め定められた期間（第３の期間の一例であってよい。）が経過したこと、及び、（ｉｖ）予め定められた時刻が到来したこと、からなる群から選択される少なくとも１つを例示することができる。
【００４０】
環境情報取得部２１６は、例えば、ユーザ指示を受け付けた場合に、ユーザ指示によって指示された処理とは別に、通信端末１１０の通信環境情報を取得する。環境情報取得部２１６は、処理実行部２１４がユーザ指示によって指示された処理を実行する場合に、ユーザ指示によって指示された処理とは別に、通信環境情報を取得してもよい。環境情報取得部２１６は、予め定められた時刻に又は予め定められた時間が経過するごとに（通信環境情報を取得するタイミングと称する場合がある。）、通信環境情報を取得してもよい。
【００４１】
一実施形態によれば、入力部２１２がＧＰＳロガーの起動を指示するユーザ指示を受け付けた場合、環境情報取得部２１６は、ＧＰＳロガーが一定の時間間隔でログ情報を取得するたびに、通信環境情報を取得する。他の実施形態によれば、入力部２１２がメールソフトの起動を指示するユーザ指示を受け付けた場合、環境情報取得部２１６は、メールソフトがバックグラウンドでメールサーバにアクセスするたびに、通信環境情報を取得する。さらに他の実施形態によれば、入力部２１２が目覚まし機能の設定を指示するユーザ指示を受け付けた場合、環境情報取得部２１６は、目覚まし機能の設定時または作動時に、通信環境情報を取得する。
【００４２】
環境情報取得部２１６は、情報提供サーバ２０に対してユーザが指示した情報を送信するよう要求してから、当該情報を情報提供サーバ２０から取得するまでの時間と、当該情報の情報量とに基づいて、通信環境情報を取得してもよい。通信環境情報を取得する処理は、バックグラウンドで実行されてよい。
【００４３】
これにより、ユーザが通信端末１１０を操作している間に、通信環境情報を取得することができる。また、通信端末１１０が通信機能を利用しない処理を実行している場合であっても、通信環境情報を取得することができる。さらに、ユーザが通信環境情報を取得するために特別な操作を実施しなくても、通信環境情報を取得することができる。その結果、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握することができる。また、通信状況の経時変化などを把握することができる。
【００４４】
位置情報取得部２１８は、ユーザ指示を受け付けた場合に、ユーザ指示によって指示された処理とは別に、通信端末１１０の位置情報を取得する。位置情報取得部２１８は、処理実行部２１４がユーザ指示によって指示された処理を実行する場合に、ユーザ指示によって指示された処理とは別に、位置情報を取得してもよい。位置情報取得部２１８は、環境情報取得部２１６が通信環境情報を取得する場合に、位置情報を取得してよい。これにより、通信環境情報を位置情報に対応付けることができる。位置情報を取得する処理は、バックグラウンドで実行されてよい。
【００４５】
位置情報取得部２１８は、ＧＰＳ情報と、無線通信網又は移動体通信網のアクセスポイントからの電波情報との少なくとも一方の情報に基づいて、位置情報を取得してよい。位置情報取得部２１８は、ＧＰＳ情報取得装置であってもよく、通信端末１１０に配されたＧＰＳ情報取得装置から位置情報を取得してもよい。位置情報取得部２１８は、位置情報とともに、ＧＰＳ精度に関する情報を取得してもよい。
【００４６】
出力部２２２は、ユーザ指示によって指示された情報を、ユーザが知覚することができる形態で出力する。出力部２２２は、液晶ディスプレイ、有機ＥＬディスプレイなどの表示装置、スピーカなどの音声出力装置又はバイブレータなどの振動装置であってよい。
【００４７】
例えば、出力部２２２は、ユーザからの指示に応じて、画面上に画像を表示したり、画面上に表示される画像の表示位置を変更したりする。出力部２２２は、通信ネットワーク１０を介して情報提供サーバ２０から取得した情報又は通信端末１１０の記憶装置に格納されている情報に基づいて、画像を表示してよい。また、出力部２２２は、通信ネットワーク１０を介して情報提供サーバ２０から取得した情報又は通信端末１１０の記憶部に格納されている情報を、音声情報としてスピーカから出力してもよい。これにより、ユーザは、情報を知覚することができる。
【００４８】
一方、特定の処理がバックグラウンドで実行されている場合、当該処理で利用される情報は出力部２２２から、ユーザが知覚することができる形態で出力されない。そのため、ユーザは、情報を知覚することができない。
【００４９】
識別情報取得部２２４は、通信端末１１０のそれぞれを識別する端末識別情報を取得する。識別情報取得部２２４は、通信端末１１０のそれぞれに対する端末識別情報を生成してもよく、端末識別情報を情報収集サーバ１２０から受信してもよい。端末識別情報は、例えば乱数を用いてランダムに定められてもよい。端末識別情報は、予め定められた時刻に又は予め定められた時間が経過するごとに更新されてもよい。識別情報取得部２２４は、通信端末１１０の機種を示す情報、通信端末１１０のＯＳを示す情報などの通信端末１１０に関する情報を取得してもよい。
【００５０】
ログ情報生成部２２６は、環境情報取得部２１６から、通信環境情報を取得する。ログ情報生成部２２６は、環境情報取得部２１６から、通信環境情報を取得した時刻を示す情報を取得してよい。ログ情報生成部２２６は、位置情報取得部２１８から、通信環境情報を取得した位置を示す位置情報を取得する。ログ情報生成部２２６は、位置情報取得部２１８から、位置情報を取得したときのＧＰＳ精度に関する情報を取得してよい。ログ情報生成部２２６は、識別情報取得部２２４から端末識別情報を取得してよい。
【００５１】
ログ情報生成部２２６は、ログ情報を生成する。ログ情報生成部２２６は、少なくとも、通信環境情報と位置情報とを対応付けて、ログ情報を生成する。ログ情報生成部２２６は、通信環境情報と、位置情報と、通信環境情報を取得した時刻を示す情報、位置情報を取得したときのＧＰＳ強度を示す情報及び通信端末１１０に関する情報の少なくとも１つとが対応づけて、ログ情報を生成してよい。ログ情報を生成する処理はバックグラウンドで実行されてよい。
【００５２】
ログ情報生成部２２６は、通信環境情報に含まれるデータ通信のレイテンシに関する情報に基づいて、通信環境情報が取得されたときに使用されていた通信方式を決定してよい。例えば、レイテンシが予め定められた値より小さい場合、ログ情報生成部２２６は、環境情報取得部２１６が取得した通信環境情報は、通信端末１１０が第１の通信方式（ＬＴＥ方式、４Ｇ方式などを例示することができる。）により通信していた場合の情報であると判断する。一方、レイテンシが予め定められた値以上である場合、ログ情報生成部２２６は、環境情報取得部２１６が取得した通信環境情報は、通信端末１１０が第２の通信方式（３Ｇ方式などを例示することができる。）により通信していた場合の情報であると判断する。ログ情報生成部２２６は、通信環境情報が取得されたときに使用されていた通信方式に関する情報と、通信環境情報及び位置情報とを対応付けて、ログ情報を生成してよい。
【００５３】
ログ情報生成部２２６は、通信端末１１０上で動作するＯＳの内部関数を取得してよい。ログ情報生成部２２６は、取得した内部関数に基づいて、通信環境情報が取得されたときに使用されていた通信方式を決定してもよい。
【００５４】
ログ情報生成部２２６は、入力部２１２がユーザ指示を受け付けるごとに、ログ情報を生成してよい。ログ情報生成部２２６は、ユーザ指示によって指示された処理が実行されるごとに、ログ情報を生成してよい。ログ情報生成部２２６は、予め定められた時刻に又は予め定められた時間が経過するごとに（ログ情報を生成するタイミングと称する場合がある。）、ログ情報を生成してもよい。ログ情報を生成するタイミングは、通信環境情報を取得するタイミングとほぼ同一であってもよく、異なってもよい。
【００５５】
ログ情報生成部２２６は、生成されたログ情報を情報収集サーバ１２０に送信してよい。ログ情報生成部２２６は、ログ情報が生成されるごとに、ログ情報を情報収集サーバ１２０に送信してもよい。ログ情報生成部２２６は、予め定められた時刻に又は予め定められた時間が経過するごとに（ログ情報を送信するタイミングと称する場合がある。）、生成したログ情報を情報収集サーバ１２０に送信してよい。ログ情報を送信するタイミングは、ログ情報を生成するタイミングとほぼ同一であってもよく、異なってもよい。
【００５６】
ログ情報生成部２２６は、通信端末１１０の起動時、通信端末１１０のスリープ状態からの復帰時及びコンピュータを通信端末１１０の一部として機能させるためのプログラムの起動時の少なくとも一方のタイミングにおいて、生成したログ情報を情報収集サーバ１２０に送信してもよい。ログ情報生成部２２６は、ログ情報を送信してから、次回のログ情報を送信するまでの間、生成したログ情報を格納しておいてよい。
【００５７】
通信制御部２２８は、通信端末１１０と、通信ネットワーク１０、情報提供サーバ２０及び情報収集サーバ１２０との間の通信を制御する。通信制御部２２８は、通信インターフェースであってよい。通信制御部２２８は、複数の通信方式に対応していてもよい。
【００５８】
本実施形態において、情報収集サーバ１２０が情報提供サーバ２０とは異なるサーバであり、通信端末１１０が通信環境情報を情報収集サーバ１２０に送信する場合について説明した。しかし、通信状況解析システム１００は本実施形態に限定されない。他の実施形態によれば、通信端末１１０は、通信環境情報を情報提供サーバ２０に送信する。情報提供サーバ２０は、通信端末１１０から受け取った通信環境情報を記憶装置に格納する。情報収集サーバ１２０は、情報提供サーバ２０に格納された通信環境情報に基づいて、通信状況を解析する。また、通信端末１１０の各部の機能は厳密に区別されるものではなく、通信端末１１０の各部の機能は上記の実施形態に限定されない。
【００５９】
以上の実施形態においては、通信端末１１０が、通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けた場合に、通信環境情報及び位置情報を取得することで、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握する場合について説明した。しかしながら、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握する方法は、上記の実施形態に限定されない。
【００６０】
他の実施形態において、通信端末１１０は、ユーザから、処理を開始する旨の入力を受け付けた後、予め定められた時刻に又は予め定められた時間が経過するごとに、通信環境に関する情報を自動的に取得してよい。ユーザは、通信環境情報を取得するたびに、通信環境情報を取得するための操作を実施する必要がないので、広いエリアにわたって、ユーザの使用実態に近い通信状況を把握することができる。また、通信状況の経時変化などを把握することができる。
【００６１】
この場合において、通信端末１１０は、通信環境情報を取得するごとに、通信環境情報を情報収集サーバ１２０に送信してよい。通信端末１１０は、取得した通信環境情報を記憶しておき、予め定められた条件に従って、記憶した通信環境情報を情報収集サーバ１２０に送信してもよい。例えば、予め定められた条件としては、通信環境情報の取得回数が予め定められた回数に到達した場合、記憶した通信環境情報の情報量が予め定められた容量に到達した場合、予め定められた時刻に到達した場合、予め定められた時間が経過した場合などを例示することができる。通信端末１１０は、情報収集サーバ１２０に通信環境情報を送信するタイミングにおいて、通信を実施することができない場合、取得した通信環境情報を送信せずに記憶しておき、次回の送信のタイミングにおいて送信してもよい。
【００６２】
図３は、ログ情報のデータテーブル３００の一例を概略的に示す。データテーブル３００は、端末ＩＤ３１０と、通信環境情報が取得された日時３２０に関する情報と、通信環境情報が取得された位置を示す位置情報３３０と、位置情報３３０が取得されたときのＧＰＳ精度３４０に関する情報と、通信環境情報３５０とを対応付けて格納する。通信環境情報３５０は、通信可否３５２に関する情報と、データ通信のスループット３５４に関する情報と、データ通信のレイテンシ３５６に関する情報とを含んでよい。端末ＩＤ３１０は、コンピュータを識別する識別情報の一例であってよい。
【００６３】
本実施形態において、端末ＩＤ３１０は、ランダムに選択された符号列であり、１日おきに更新される。これにより、情報収集サーバ１２０は、ユーザを特定することなく、ログ情報の時間的な関連性を考慮して、ログ情報を解析することができる。
【００６４】
図４は、通信端末１１０の動作の一例を概略的に示す。図４を用いて、ユーザ指示により指示された処理が通信機能を利用しない処理であり、通信端末１１０が情報提供サーバ２０にアクセスしない場合に、通信端末１１０がログ情報を生成する動作について説明する。
【００６５】
本実施形態によれば、ステップ４０２（ステップをＳと省略して表記する場合がある。）において、入力部２１２が、ユーザから、通信端末１１０の操作に関するユーザ指示を受け付ける。例えば、画面をスクロールさせるためのユーザ指示を受け付ける。Ｓ４０４において、処理実行部２１４が、ユーザ指示により指示された操作に応じた処理を実行する。
【００６６】
一方、Ｓ４１２において、Ｓ４０４のバックグラウンドで、環境情報取得部２１６が通信環境情報を取得する。ユーザ指示により指示された処理が通信機能を利用しない処理である場合、環境情報取得部２１６は、少なくとも、通信の可否に関する情報を取得する。可能であれば、環境情報取得部２１６は、電波強度、通信方式及び通信キャリアの少なくとも１つに関する情報を取得してよい。
【００６７】
Ｓ４１４において、Ｓ４０４のバックグラウンドで、位置情報取得部２１８が位置情報を取得する。Ｓ４１４の後、Ｓ４１６において、Ｓ４０４のバックグラウンドで、ログ情報生成部２２６がログ情報を生成して処理を終了する。なお、本実施形態において、各ステップを実施する順序及びタイミングは、技術的に矛盾が生じない範囲において、適宜、変更することができる。
【００６８】
図５は、通信端末１１０の動作の他の例を概略的に示す。図５を用いて、ユーザ指示により指示された処理が通信機能を利用する処理であり、通信端末１１０が情報提供サーバ２０にアクセスして情報を取得する場合に、通信端末１１０がログ情報を生成する動作について説明する。
【００６９】
本実施形態によれば、Ｓ５０２において、入力部２１２が、ユーザから、情報提供サーバ２０にアクセスして、情報提供サーバ２０からユーザが指示した情報を取得するためのユーザ指示を受け付ける。例えば、検索条件に一致する飲食店に関する情報を取得するためのユーザ指示を受け付ける。Ｓ５０４において、処理実行部２１４が、ユーザ指示により指示された処理を実行して、情報提供サーバ２０から該当するコンテンツをダウンロードする。
【００７０】
Ｓ５０６において、環境情報取得部２１６が通信環境情報を取得する。Ｓ５０６の処理は、バックグラウンドで実行されてよい。環境情報取得部２１６は、少なくとも通信の可否に関する情報を取得する。ユーザ指示により指示された処理が通信機能を利用する処理である場合、環境情報取得部２１６は、さらに、電波状況、電波強度、通信速度、データ通信のスループット、データ通信のレイテンシ、通信方式及び通信キャリアの少なくとも１つに関する情報を取得してよい。環境情報取得部２１６は、情報提供サーバ２０に対してユーザが指示した情報を送信するよう要求してから、当該情報を情報提供サーバ２０から取得するまでの時間と、当該情報の情報量とに基づいて、通信環境情報を取得してもよい。
【００７１】
一方、Ｓ５１２において、Ｓ５０４及びＳ５０６の少なくとも一方のバックグラウンドで、位置情報取得部２１８が位置情報を取得する。Ｓ５０６及びＳ５１２の後、Ｓ５２０において、ログ情報生成部２２６がログ情報を生成して処理を終了する。Ｓ５２０の処理は、バックグラウンドで実行されてよい。なお、本実施形態において、各ステップを実施する順序及びタイミングは、技術的に矛盾が生じない範囲において、適宜、変更することができる。
【００７２】
図６は、通信端末６１０の一例を概略的に示す。通信端末６１０は、通信端末１１０に代わって又は通信端末１１０とともに、通信状況解析システム１００の一部を構成してよい。通信端末６１０は、プログラム管理部６３２、移行判断部６３４及びタイミング決定部６３６を備える点で、通信端末１１０と相違する。通信端末６１０は、上記の相違点以外の点については、通信端末１１０と同様の構成を有してよい。
【００７３】
通信端末１１０に関連して、環境情報取得部２１６は、通信環境を取得する処理をバックグラウンドで実行してもよく、位置情報取得部２１８は、位置情報を取得する処理をバックグラウンドで実行してもよい旨を説明した。しかし、通信端末のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によっては、バックウラウンド状態におけるプログラムの動作を制限している場合がある。
【００７４】
例えば、Ａｐｐｌｅ社が提供するｉＯＳ（商標）においては、フォアグラウンド状態及びバックグラウンド状態のそれぞれに、２つの起動状態が存在する。具体的には、フォアグラウンド状態には、プログラムはフォアグラウンドにあるが、利用されていない状態（Ｉｎａｃｔｉｖｅと称される場合がある。）と、プログラムがフォアグラウンドにあり、利用されている状態（Ａｃｔｉｖｅと称される場合がある。）という２つの起動状態がある。バックグラウンド状態には、プログラムはバックグラウンドにあるが、まだ動作している状態（Ｂａｃｋｇｒｏｕｎｄ又はＢａｃｋｇｏｒｕｎｄ  Ｒｕｎｎｉｎｇと称される場合がある。）と、プログラムがバックグラウンドにあり、動作していない状態（Ｓｕｓｐｅｎｄｅｄと称される場合がある）という２つの起動状態がある。
【００７５】
ｉＯＳにおいては、プログラムの起動状態が「Ｂａｃｋｇｒｏｕｎｄ  Ｒｕｎｎｉｎｇ」に移行した後、予め定められた時間が経過すると、一部の例外的な処理を除いて、強制的に、プログラムの起動状態を「Ｓｕｓｐｅｎｄｅｄ」に移行させる。プログラムの起動状態が「Ｓｕｓｐｅｎｄｅｄ」になると、当該プログラムは処理を続行することができなくなるので、例えば、環境情報取得部２１６を実現するためのプログラムの起動状態が「Ｓｕｓｐｅｎｄｅｄ」になると、通信環境を取得する処理をバックグラウンドで実行することができなくなる。
【００７６】
通信端末６１０によれば、ＯＳによって、バックウラウンド状態におけるプログラムの動作が制限される場合であっても、通信端末６１０の位置が予め定められた程度を超えて変化した場合に、通信環境を取得する処理を実行することができる情報処理装置、方法及びプログラムが提供される。この場合において、通信端末６１０は、通信環境を取得する処理をバックグラウンドで実行してもよい。
【００７７】
通信端末６１０の各部は、通信端末１１０の各部と同様に、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。また、プログラムが実行されることにより、コンピュータが、通信端末６１０の一部として機能してもよい。プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリ、ハードディスクなどのコンピュータ読み取り可能な媒体に記憶されていてもよく、ネットワークに接続された記憶装置に記憶されていてもよい。プログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、通信端末６１０のコンピュータにインストールされてよい。通信端末６１０は、通信機能を有し、プロセッサと、プロセッサによって実行される命令又はプログラムを記憶する記憶装置とを備えた情報処理装置の一例であってよい。
【００７８】
プログラム管理部６３２は、通信端末６１０上で動作するプログラムの起動状態を管理する。本実施形態において、プログラム管理部６３２は、通信端末６１０の通信環境に関する情報を取得するためのプログラムの起動状態を管理する。通信端末６１０の通信環境に関する情報を取得するためのプログラムは、通信端末６１０のコンピュータを、少なくとも環境情報取得部２１６として機能させるためのプログラムであってよい。通信端末６１０の通信環境に関する情報を取得するためのプログラムは、通信端末６１０のコンピュータを、通信端末６１０の各部として機能させるためのプログラムであってもよい。プログラム管理部６３２は、通信端末６１０のＯＳによって提供される機能の一部であってもよく、通信端末６１０のＯＳのモジュールが、通信端末６１０のコンピュータに読み込まれることにより、プログラム管理部６３２として機能してよい。
【００７９】
プログラム管理部６３２は、予め定められた種類のイベントが発生したことを示す情報を取得した場合に、バックグラウンドで動作を停止している１以上のプログラムに対して、当該イベントが発生したことを示す情報を送信する。プログラム管理部６３２は、上記の情報を受信したプログラムから、当該プログラムの起動状態を変更するための要求を受信すると、当該要求に応じて、当該プログラムの起動状態を変更する。プログラム管理部６３２は、位置変更情報を取得する位置変更情報取得部の一例であってよい。
【００８０】
本実施形態において、プログラム管理部６３２は、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報を取得した場合に、バックグラウンドで動作を停止している１以上のプログラムに対して、当該情報又は当該情報を取得したことを示す情報（これらの情報は、位置変更情報の一例であってよい。）を送信する。プログラム管理部６３２は、上記の情報を受信した１以上のプログラムのいずれかから、当該プログラムの起動状態を変更するための要求を受信すると、当該プログラムの起動状態を変更する。これにより、例えば、通信端末６１０の通信環境に関する情報を取得するためのプログラムは、「Ｓｕｓｐｅｎｄｅｄ」のように、プログラムがバックグラウンドで動作を停止する状態から、「Ｂａｃｋｇｒｏｕｎｄ  Ｒｕｎｎｉｎｇ」のように、プログラムがバックグラウンドで動作する状態に移行する。
【００８１】
プログラム管理部６３２は、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報を、通信ネットワーク１０を介して外部のサーバ（図示していない。）から取得してもよい。例えば、通信端末６１０は、通信端末６１０上で動作するプログラムの起動状態に関わらず、基地局又はアクセスポイント（基地局等と称する場合がある。）からの電波を受信している。基地局等からの電波には、基地局又はアクセスポイントを識別する識別情報が含まれる。通信端末６１０は、基地局識別情報と当該基地局の位置情報とを対応付けて格納しているサーバに対して、基地局からの電波に含まれる基地局識別情報を定期的に送信する。
【００８２】
サーバは、通信端末６１０の位置の変化が予め定められた条件を満足した場合に、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報を、通信端末６１０に送信する。プログラム管理部６３２は、例えば通信制御部２２８を介して、上記の情報を取得する。これにより、通信端末６１０の消費電力を抑制しながら、通信端末６１０の位置が大幅に変更した場合に、特定のプログラムの起動状態を変更することができる。
【００８３】
本実施形態においては、プログラム管理部６３２が、外部のサーバから、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報を取得する場合について説明した。しかし、プログラム管理部６３２は本実施形態に限定されない。例えば、プログラム管理部６３２は、位置情報取得部２１８から通信端末６１０の位置情報を取得して、通信端末６１０の位置の変化量が予め定められた値を超えたか否かを判断する。プログラム管理部６３２は、通信端末６１０の位置の変化量が予め定められた値を超えたと判断した場合、バックグラウンドで動作を停止している１以上のプログラムに対して、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報（当該情報は、位置変更情報の一例であってよい。）を送信してもよい。
【００８４】
移行判断部６３４は、プログラム管理部６３２からイベントが発生したことを示す情報を受信する。移行判断部６３４は、プログラムの起動状態を移行させるか否かを判断する。移行判断部６３４は、受信した情報に含まれる上記のイベントが、プログラムの起動状態を移行させるための予め定められたイベントである場合に、プログラムの起動状態を移行させることを決定する。移行判断部６３４は、プログラムの起動状態を移行させることを決定すると、プログラム管理部６３２に対して、プログラムの起動状態を移行させるための要求を送信する。移行判断部６３４は、位置変更情報を取得する位置変更情報取得部の一例であってよい。
【００８５】
本実施形態において、移行判断部６３４は、通信端末６１０の通信環境に関する情報を取得するためのプログラムのモジュールであり、プログラム管理部６３２から、予め定められた種類のイベントが発生したことを示す情報を受信すると、通信端末６１０の通信環境に関する情報を取得するためのプログラムの起動状態を移行させるか否かを判断する。移行判断部６３４は、プログラム管理部６３２から受信した情報に、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報又は当該情報を取得したことを示す情報が含まれている場合に、通信端末６１０の通信環境に関する情報を取得するためのプログラムの起動状態を、バックグラウンドで動作を停止する状態から、バックグラウンドで動作する状態に移行させることを決定する。
【００８６】
本実施形態によれば、通信端末６１０の通信環境に関する情報を取得するためのプログラムが、バックグラウンドで動作を停止する状態になっている場合であっても、当該プログラムは、通信端末６１０がある程度の距離を移動した場合には、バックグラウンドで動作する状態に移行することができる。これにより、通信端末６１０は、通信環境に関する情報を取得する処理をバックグラウンドで実行することができる。
【００８７】
タイミング決定部６３６は、通信端末６１０が、通信端末６１０の通信環境に関する情報を取得する処理を実行するタイミングを決定する。タイミング決定部６３６によって決定されるタイミングは、通信端末６１０の通信環境に関する情報を取得するためのプログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであってよい。
【００８８】
タイミング決定部６３６は、予め定められた規則に従って、上記のタイミングを決定してよい。一実施形態において、タイミング決定部６３６は、乱数表、乱数発生アルゴリズムなどを用いて、上記のタイミングをランダムに決定してよい。これにより、データの偏りを防止することができる。他の実施形態において、タイミング決定部６３６は、上記のタイミングを決定するごとに、決定されたタイミングを記憶しておき、上記のプログラムがバックグラウンドで動作する状態に移行した後、通信環境に関する情報を取得する処理を実行するまでの時間が予め定められた分布に従うように、上記のタイミングを決定してよい。これにより、データの偏りを防止しつつ、データの用途に応じたデータを収集することができる。
【００８９】
図７は、通信端末６１０の動作の一例を概略的に示す。本実施形態において、通信端末６１０の通信環境に関する情報を取得するためのプログラムが、通信端末６１０のコンピュータを、入力部２１２、処理実行部２１４、環境情報取得部２１６、位置情報取得部２１８、出力部２２２、識別情報取得部２２４、ログ情報生成部２２６、移行判断部６３４及びタイミング決定部６３６として機能させ、通信端末６１０のＯＳが、通信端末６１０のコンピュータを、通信制御部２２８及びプログラム管理部６３２として機能させる場合を例として、通信端末６１０の各部の動作について説明する。
【００９０】
ステップ７０２（ステップをＳと表記する場合がある。）において、通信端末６１０の通信環境に関する情報を取得するためのプログラムは、フォアグラウンドで処理を実行する。例えば、入力部２１２は、ユーザ指示を受け付けるユーザ指示受付手順を実行する。処理実行部２１４は、ユーザ指示によって指示された処理を実行する処理実行手順を実行する。環境情報取得部２１６は、ユーザ指示を受け付けた場合又はユーザ指示によって指示された処理が実行される場合に、通信端末６１０の通信環境に関する情報を取得する通信環境情報取得手順を実行する。また、位置情報取得部２１８は、ユーザ指示を受け付けた場合又はユーザ指示によって指示された処理が実行される場合に、通信端末６１０の位置情報を取得する位置情報取得手順を実行する。
【００９１】
Ｓ７０４において、プログラム管理部６３２は、入力部２１２が、ユーザから、通信端末６１０の通信環境に関する情報を取得するためのプログラムをバックグラウンド状態に移行させるための移行指示を受信したか否かを判断する。ここで、バックグラウンド状態とは、「Ｂａｃｋｇｒｏｕｎｄ  Ｒｕｎｎｉｎｇ」のようなバックグラウンドで動作する状態と、「Ｓｕｓｐｅｎｄｅｄ」のようなバックグラウンドで動作を停止する状態とを含む。
【００９２】
Ｓ７０４において、プログラム管理部６３２が、ユーザからの移行指示を受信したと判断した場合（Ｓ７０４のＹｅｓの場合）、Ｓ７０６において、プログラム管理部６３２は、通信端末６１０の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作する状態に移行させる。Ｓ７０８において、タイミング決定部６３６は、環境情報取得部２１６が通信端末６１０の通信環境に関する情報を取得する処理を実行するタイミングを決定する。
【００９３】
Ｓ７１０において、環境情報取得部２１６は、タイミング決定部６３６によって決定されたタイミングで、通信端末６１０の通信環境に関する情報を取得する処理をバックグラウンドで実行する。Ｓ７１０の処理において取得される通信環境情報としては、通信の可否及び電波状況（電波受信レベル、電波強度、ＲＳＣＰ（Ｒｅｃｅｉｖｅｄ  Ｓｉｇｎａｌ  Ｃｏｄｅ  Ｐｏｗｅｒ）、ＣＩＤ（Ｃｅｌｌ  ＩＤ）などを例示することができる。）、通信方式、通信キャリアなどに関する情報を例示することができる。なお、環境情報取得部２１６が処理を実行するタイミングにおいて、位置情報取得部２１８、識別情報取得部２２４及びログ情報生成部２２６も、それぞれの処理を実行してよい。
【００９４】
Ｓ７１２において、プログラム管理部６３２は、通信端末６１０の通信環境に関する情報を取得するためのプログラムが、バックグラウンドで動作する状態に移行した後、予め定められた時間が経過したか否かを判断する。Ｓ７１２において、プログラム管理部６３２が、予め定められた時間が経過したと判断した場合（Ｓ７１２のＹｅｓの場合）、Ｓ７１４において、プログラム管理部６３２は、通信端末６１０の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作を停止する状態に移行させる。
【００９５】
Ｓ７１６において、プログラム管理部６３２は、予め定められた種類のイベントの発生を検知すると、当該イベントが発生したことを示す情報を移行判断部６３４に送信する。本実施形態において、プログラム管理部６３２は、外部のサーバ（図示していない。）から、通信ネットワーク１０及び通信制御部２２８を介して、通信端末６１０の位置の変化量が予め定められた値を超えたことを示す情報を受信して、当該情報又は当該情報を取得したことを示す情報を移行判断部６３４に送信する。
【００９６】
移行判断部６３４は、通信端末６１０の通信環境に関する情報を取得するためのプログラムがバックグラウンドで動作を停止する状態において、予め定められた種類のイベントが発生したことを示す情報を取得する。移行判断部６３４が、プログラム管理部６３２から受信した情報に含まるイベントが、プログラムの起動状態を移行させるための予め定められたイベントであると判断した場合（Ｓ７１６のＹｅｓの場合）、移行判断部６３４は、プログラム管理部６３２に対して、プログラムの起動状態を移行させるための要求を送信する。プログラムの起動状態を移行させるための予め定められたイベントは、通信端末６１０の位置の変化量が予め定められた値を超えたことであってよい。プログラム管理部６３２は、プログラムの起動状態を移行させるための要求を受信すると、通信端末６１０の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作する状態に移行させる。
【００９７】
一方、移行判断部６３４が、プログラムの起動状態を移行させるための予め定められたイベントが発生していないと判断した場合（Ｓ７１６のＮｏの場合）、Ｓ７１８の処理に進む。Ｓ７１８において、プログラム管理部６３２は、入力部２１２が、ユーザから、通信端末６１０の通信環境に関する情報を取得するためのプログラムをフォアグラウンド状態に移行させるための移行指示を受信したか否かを判断する。
【００９８】
Ｓ７１８において、プログラム管理部６３２が、ユーザからの移行指示を受信したと判断した場合（Ｓ７１８のＹｅｓの場合）、通信端末６１０の通信環境に関する情報を取得するためのプログラムをフォアグラウンド状態に移行させる。一方、Ｓ７１８において、プログラム管理部６３２が、ユーザからの移行指示を受信していないと判断した場合（Ｓ７１８のＮｏの場合）、Ｓ７２０の処理に進む。
【００９９】
Ｓ７２０において、プログラム管理部６３２は、入力部２１２が、ユーザから、通信端末６１０の通信環境に関する情報を取得するためのプログラムの終了指示を受信したか否かを判断する。Ｓ７２０において、プログラム管理部６３２が、ユーザからの終了指示を受信したと判断した場合（Ｓ７２０のＹｅｓの場合）、プログラム管理部６３２が、通信端末６１０の通信環境に関する情報を取得するためのプログラムを終了させて、処理を完了する。
【０１００】
本実施形態においては、Ｓ７０４において、プログラム管理部６３２が、ユーザからの移行指示を受信したと判断した場合、Ｓ７０６において、プログラム管理部６３２が、通信端末６１０の通信環境に関する情報を取得するためのプログラムを、一旦、バックグラウンドで動作する状態に移行させ、通信端末６１０が、Ｓ７０８〜Ｓ７１２における処理を実行する場合について説明した。しかし、通信端末６１０の動作は、本実施形態に限定されない。他の実施形態において、Ｓ７０４において、プログラム管理部６３２が、ユーザからの移行指示を受信したと判断した場合、Ｓ７０８〜Ｓ７１２の処理をスキップして、プログラム管理部６３２が、通信端末６１０の通信環境に関する情報を取得するためのプログラムを、バックグラウンドで動作を停止する状態に移行させてもよい。
【０１０１】
図８は、通信端末１１０のモジュール構成の一例を概略的に示す。図８を用いて、通信端末１１０のオペレーティング・システム８０２上で、アプリケーション８１０、アプリケーション８２０及びアプリケーション８３０が動作している場合を例として、通信端末１１０のモジュール構成について説明する。アプリケーション８１０、アプリケーション８２０及びアプリケーション８３０は、プログラムの一例であってよい。
【０１０２】
本実施形態において、アプリケーション８１０は、処理実行モジュール８１２と、ログ生成モジュール８１４と、通信制御モジュール８１６とを有する。アプリケーション８１０の各モジュールは、互いに情報を送受することができる。アプリケーション８２０は、アプリケーションモジュール８２２と、ログ生成モジュール８２４と、通信制御モジュール８２６とを有する。アプリケーション８２０の各モジュールは、互いに情報を送受することができる。アプリケーション８３０は、アプリケーションモジュール８３２と、ログ生成モジュール８３４と、通信制御モジュール８３６とを有する。アプリケーション８３０の各モジュールは、互いに情報を送受することができる。
【０１０３】
処理実行モジュール８１２は、通信端末１１０のコンピュータを、処理実行部２１４として機能させるためのプログラムであってよい。アプリケーションモジュール８２２及びアプリケーションモジュール８３２は、通信端末１１０のコンピュータを、アプリケーション部として機能させるためのプログラムであってよい。処理実行モジュール８１２、アプリケーションモジュール８２２及びアプリケーションモジュール８３２は、ユーザ空間上で動作するアプリケーションプログラムとして動作してよい。
【０１０４】
ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４は、通信端末１１０のコンピュータを、ログ生成部２１０として機能させるためのプログラムであってよい。ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４の少なくとも一つは、デーモンなどの常駐プログラムとして動作してもよい。ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４は、プログラムの一例であってよい。
【０１０５】
ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４は、通信端末１１０のコンピュータにより実行されて、通信端末１１０のコンピュータを、同一又は類似の機能を有する構成要素として機能させるためのプログラムであってよい。ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４は、同一のモジュールでなくてもよい。例えば、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４は、バージョンの異なる一連のモジュールであってもよい。ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４のうちの少なくとも２つは、同一のモジュールであってもよい。
【０１０６】
通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６は、通信端末１１０のコンピュータを、通信制御部２２８として機能させるためのプログラムであってよい。通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６は、デーモンなどの常駐プログラムとして動作してもよい。通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６は、プログラムの一例であってよい。
【０１０７】
通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６は、通信端末１１０のコンピュータにより実行されて、通信端末１１０のコンピュータを、同一又は類似の機能を有する構成要素として機能させるためのプログラムであってよい。通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６は、同一のモジュールでなくてもよい。例えば、通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６は、バージョンの異なる一連のモジュールであってもよい。通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６のうちの少なくとも２つは、同一のモジュールであってもよい。
【０１０８】
図９は、ログ生成モジュール８１４の一例を概略的に示す。図８において、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４が実行されると、通信端末１１０上で、同時に３つのログ生成部２１０が動作する。しかし、例えば、ログ情報の生成頻度が多少小さくなっても、ログ情報の解析に与える影響は比較的小さい。この場合において、３つのログ生成部２１０のうちの少なくとも１つを停止させることで、通信端末１１０のリソースの利用率を低減することができる。このように、通信端末１１０のコンピュータを、同一又は類似の機能を有する構成要素として機能させるための複数のプログラムのうちの少なくとも１つを停止させることで、通信端末１１０のリソースを効率的に利用することができる。
【０１０９】
本実施形態においては、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４うちのいずれか１つのモジュールの実行を継続し、その他のモジュールを停止させる場合を例として、ログ生成モジュール８１４における情報処理方法の一例について説明する。本実施形態においては、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４のそれぞれが、起動処理中に他のモジュールに関する情報を取得して、当該情報に基づいて、当該起動処理を継続するか否かを判断する場合を例として、ログ生成モジュール８１４における情報処理方法の一例について説明する。
【０１１０】
なお、本実施形態においては、例えば、ログ生成モジュール８２４が実行されることにより実現されたログ生成部２１０の動作を停止すると、アプリケーション８２０が、ログ生成モジュールに対してログ情報を生成するためのコマンドを送信しても、ログ情報が生成されない。しかし、例えば、アプリケーション８２０が、アプリケーション８２０がフォアグラウンドの状態においてログ情報を生成するログ生成部を実現するためのモジュールと、アプリケーション８２０がバックグラウンドの状態においてログ情報を生成するログ生成部を実現するためのモジュールとを備え、アプリケーション８２０がバックグラウンドの状態においてログ情報を生成するログ生成部の動作を停止させ、アプリケーション８２０がフォアグラウンドの状態においてログ情報を生成するログ生成部を起動することで、上記の課題を解決することができる。
【０１１１】
本実施形態において、ログ生成モジュール８１４は、ログ生成処理部９１０と、イベント検出部９１２と、プログラム情報取得部９１４と、ポリシー取得部９１６と、決定部９１８とを備える。ログ生成モジュール８１４の各部は、互いに情報を送受することができる。ログ生成処理部９１０は、ログ生成部２１０における情報処理の手順を実行する。
【０１１２】
ログ生成モジュール８２４及びログ生成モジュール８３４の少なくとも一方は、ログ生成モジュール８１４と同様の構成を有してよい。本実施形態においては、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４のそれぞれが、ログ生成処理部９１０、イベント検出部９１２、プログラム情報取得部９１４、ポリシー取得部９１６及び決定部９１８を備える場合を例として、ログ生成モジュール８１４における情報処理方法の一例について説明する。
【０１１３】
本実施形態においては、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４のそれぞれが、処理実行モジュール８１２、アプリケーションモジュール８２２及びアプリケーションモジュール８３２のそれぞれからのコマンドに基づいて情報処理を実行する場合を例として、ログ生成モジュール８１４における情報処理方法の一例について説明する。なお、例えば、ログ生成モジュール８１４が実行を継続し、ログ生成モジュール８２４及びログ生成モジュール８３４が停止している場合、ログ生成モジュール８１４は、処理実行モジュール８１２からのコマンドに基づいて情報処理を実行するだけでなく、アプリケーションモジュール８２２及びアプリケーションモジュール８３２からのコマンドに基づいて情報処理を実行してもよい。
【０１１４】
なお、通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６の少なくとも１つが、ログ生成モジュール８１４と同様の構成を有してもよい。例えば、通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６のそれぞれは、イベント検出部９１２と、プログラム情報取得部９１４と、ポリシー取得部９１６と、決定部９１８とを備え、通信制御モジュール８１６、通信制御モジュール８２６及び通信制御モジュール８３６のいずれか１つのモジュールは実行を継続し、その他のモジュールは停止するように動作する。
【０１１５】
本実施形態において、イベント検出部９１２は、予め定められたイベントの発生を検出する。イベント検出部９１２は、予め定められたイベントの発生を検出した場合、決定部９１８にその旨を通知してよい。イベント検出部９１２により検出されるイベントとしては、（１）アプリケーション８１０又はログ生成モジュール８１４の通信端末１１０へのインストール、（２）アプリケーション８１０又はログ生成モジュール８１４の通信端末１１０からの削除、（３）アプリケーション８１０又はログ生成モジュール８１４のアップデート、（４）通信端末１１０の再起動、（５）アプリケーション８１０又はログ生成モジュール８１４による情報処理について、通信端末１１０のユーザが承諾したこと（ＯＰＴ  ＩＮと称される場合がある。）、及び、（６）アプリケーション８１０又はログ生成モジュール８１４による情報処理について、通信端末１１０のユーザが拒否したこと（ＯＰＴ  ＯＵＴと称される場合がある。）からなる群から選択される少なくとも１つを例示することができる。
【０１１６】
本実施形態において、プログラム情報取得部９１４は、インストールされている１以上のプログラムの識別情報を取得する。プログラム情報取得部９１４は、取得された１以上の識別情報を、決定部９１８に送信してよい。上記の１以上のプログラムの識別情報は、通信端末１１０にインストールされている全てのプログラムの識別情報であってもよく、通信端末１１０にインストールされている全ての常駐プログラムであってもよく、通信端末１１０に上で現在起動している全てのプログラムであってもよく、通信端末１１０に上で現在起動している全ての常駐プログラムであってもよい。
【０１１７】
例えば、プログラム情報取得部９１４は、オペレーティング・システム８０２から、通信端末１１０にインストールされている全てのプログラムの識別情報を取得する。一実施形態において、プログラム情報取得部９１４は、通信端末１１０にインストールされている全てのプログラムの識別情報の中から、現在起動しているプログラムの識別情報を抽出して、１以上のプログラムの識別情報を取得する。他の実施形態において、プログラム情報取得部９１４は、通信端末１１０にインストールされている全てのプログラムの識別情報の中から、通信端末１１０のユーザによりＯＰＴＩＮされたプログラムを抽出して、１以上のプログラムの識別情報を取得する。
【０１１８】
プログラム情報取得部９１４は、通信端末１１０にインストールされている全てのプログラムの識別情報の中から、上記の条件に合致する識別情報を抽出した後、さらに他の条件に合致する識別情報を抽出して、１以上のプログラムの識別情報を取得してよい。例えば、プログラム情報取得部９１４は、通信端末１１０にインストールされている全てのプログラムの識別情報の中から、現在起動しており、かつ、通信端末１１０のユーザによりＯＰＴＩＮされたプログラムを抽出して、１以上のプログラムの識別情報を取得する。
【０１１９】
他の実施形態において、プログラム情報取得部９１４は、通信端末１１０にインストールされている全てのプログラムの識別情報の中から、予め定められたプログラムの識別情報に合致する識別情報を抽出して、１以上のプログラムの識別情報を取得する。これにより、例えば、通信端末１１０にインストールされているプログラムの中から、同一のプログラム提供者により提供されたプログラムを抽出することができる。
【０１２０】
この場合において、プログラム情報取得部９１４は、取得された１以上の識別情報により識別されるプログラムが現在起動しているか否かを判断してよい。プログラム情報取得部９１４は、取得された１以上の識別情報により識別されるプログラムのうち、現在起動していないプログラムの起動処理を実行するためのコマンドを発行してよい。これにより、例えば、同一のプログラム提供者により提供された全てのプログラムの起動処理を実行させることができる。プログラム情報取得部９１４は、通信端末１１０にインストールされている全てのプログラムの識別情報の中から、予め定められたプログラムの識別情報に合致する識別情報を抽出した後、さらに他の条件に合致する識別情報を抽出して、１以上のプログラムの識別情報を取得してよい。
【０１２１】
本実施形態意おいては、プログラム情報取得部９１４が、オペレーティング・システム８０２から、通信端末１１０にインストールされている全てのプログラムの識別情報を取得する場合について説明した。しかし、プログラム情報取得部９１４における情報処理は本実施形態に限定されない。他の実施形態において、プログラム情報取得部９１４は、オペレーティング・システム８０２から、現在起動している全てのプログラムの識別情報を取得してよい。また、現在起動している全てのプログラムの識別情報の中から、条件に合致する識別情報を抽出して、１以上のプログラムの識別情報を取得してよい。
【０１２２】
本実施形態において、ポリシー取得部９１６は、決定部９１８による決定手順において利用されるポリシーを取得する。ポリシーは、決定部９１８による決定の判断基準を示す情報であってよい。ポリシー取得部９１６は、取得されたポリシーを決定部９１８に送信してよい。ポリシー取得部９１６は、通信端末１１０の記憶装置にアクセスして、当該記憶装置格納されたポリシーを取得してもよく、情報収集サーバ１２０などの外部の情報処理装置にアクセスして、当該外部の情報処理装置に格納されたポリシーを取得してもよい。ポリシー取得部９１６は、ポリシー取得部９１６に記憶されたポリシーを読み出すことで、ポリシーを取得してもよい。
【０１２３】
本実施形態において、決定部９１８は、プログラム情報取得部９１４により取得された識別情報に基づいて、通信端末１１０によるログ生成モジュール８１４の実行を継続させるか、通信端末１１０によるログ生成モジュール８１４の実行を停止させるかを決定する。決定部９１８は、イベント検出部９１２が、上記の予め定められたイベントの発生を検出した場合に、通信端末１１０によるログ生成モジュール８１４の実行を継続させるか、通信端末１１０によるログ生成モジュール８１４の実行を停止させるかを決定してよい。
【０１２４】
［決定部９１８による決定処理の第１の実施形態］
一実施形態において、決定部９１８は、ポリシー取得部９１６から、予め定められたプログラムが起動している場合には、通信端末１１０によるログ生成モジュール８１４の実行を停止させるというポリシーを受信する。ポリシーには、例えば、上記の予め定められたプログラムの識別情報が含まれる。これにより、一のモジュールの起動処理により、動作中の他のモジュールにおける情報処理が終了することを防止することができる。
【０１２５】
ポリシーには、１以上のプログラムの識別情報と、当該識別情報がポリシーとして適用される時間に関する条件（時間条件と称する場合がある。）及び当該識別情報がポリシーとして適用される位置に関する条件（位置条件と称する場合がある。）の少なくとも一方とが対応付けられた情報が含まれてもよい。識別情報と、当該識別情報がポリシーとして適用される時間に関する条件とが対応付けられることにより、ポリシーとして適用される識別情報を、時刻に応じて設定することができる。識別情報と、当該識別情報がポリシーとして適用される位置に関する条件とが対応付けられることにより、ポリシーとして適用される識別情報を、位置に応じて設定することができる。
【０１２６】
決定部９１８は、例えば、プログラム情報取得部９１４により取得された１以上の識別情報の中に、ポリシーにより規定された識別情報が含まれない場合に、通信端末１１０によるログ生成モジュール８１４の実行を継続させることを決定する。決定部９１８は、プログラム情報取得部９１４により取得された１以上の識別情報の中に、ポリシーにより規定された識別情報であって、ログ生成モジュール８１４の識別情報以外の識別情報が含まれる場合に、通信端末１１０によるログ生成モジュール８１４の実行を停止させることを決定してもよい。ポリシーにより規定された識別情報は、予め定められたプログラムの識別情報の一例であってよい。
【０１２７】
［決定部による決定処理の第２の実施形態］
他の実施形態において、決定部９１８は、ポリシー取得部９１６から、１以上のプログラムのそれぞれに予め割り当てられた優先度に基づいて、通信端末１１０によるログ生成モジュール８１４の実行を継続させるか、通信端末１１０によるログ生成モジュール８１４の実行を停止させるかを決定するというポリシーを受信する。ポリシーには、例えば、１以上のプログラムの識別情報と、当該識別情報により識別されるプログラムに割り当てられた優先度とが対応付けられた情報が含まれる。これにより、任意のプログラムを優先的に動作させることができる。
【０１２８】
ポリシーには、１以上のプログラムの識別情報と、当該識別情報により識別されるプログラムに割り当てられた優先度と、当該優先度が適用される時間に関する条件（時間条件と称する場合がある。）及び当該優先度が適用される位置に関する条件（位置条件と称する場合がある。）の少なくとも一方とが対応付けられた情報が含まれてもよい。優先度と、当該優先度が適用される時間に関する条件とが対応付けられることにより、時刻に応じた優先度を設定することができる。優先度と、当該優先度が適用される位置に関する条件とが対応付けられることにより、位置に応じた優先度を設定することができる。
【０１２９】
決定部９１８は、プログラム情報取得部９１４により取得された１以上の識別情報により識別される１以上のプログラムのそれぞれに割り当てられた優先度を取得する。決定部９１８は、例えば、ポリシー取得部９１６からポリシーを取得することで、上記の優先度に関する情報を取得する。
【０１３０】
決定部９１８は、例えば、上記の１以上のプログラムの中でログ生成モジュール８１４の優先度が最も高い場合に、通信端末１１０によるログ生成モジュール８１４の実行を継続させることを決定する。決定部９１８は、上記の１以上のプログラムの中に、ログ生成モジュール８１４よりも優先度の高いプログラムが存在する場合に、通信端末１１０によるログ生成モジュール８１４の実行を停止させることを決定してよい。
【０１３１】
決定部９１８は、ログ生成モジュール８１４が、上記の１以上のプログラムの中で最も優先度が高く、かつ、上記の１以上のプログラムのうち、現在起動しているプログラムの識別情報の中に、予め定められた識別情報が含まれない場合に、通信端末１１０によるログ生成モジュール８１４の実行を継続させることを決定してもよい。決定部９１８は、ポリシー取得部９１６からポリシーを取得することで、上記の予め定められた識別情報を取得してよい。
【０１３２】
本実施形態において、ログ生成モジュール８１４、ログ生成モジュール８２４及びログ生成モジュール８３４のそれぞれが、起動処理中に他のモジュールに関する情報を取得して、当該情報に基づいて、当該起動処理を継続するか否かを判断する場合について説明した。この場合、決定部９１８は、上記の決定処理の結果にしたがって、ログ生成モジュール８１４の起動処理を継続したり、停止させたりする。
【０１３３】
しかし、決定部９１８は本実施形態に限定されない。他の実施形態において、決定部９１８は、ログ生成モジュール８１４の実行を継続させることを決定した場合、ログ生成モジュール８１４の起動処理を継続することに加えて、ポリシーに記録された他のプログラムの実行を停止させるためのコマンドを発行してよい。また、決定部９１８は、ログ生成モジュール８１４の実行を停止させることを決定した場合、ログ生成モジュール８１４の起動処理を停止することに加えて、ポリシーに記録された他のプログラムのうち、最も優先度の高いプログラムを実行させるためのコマンドを発行してよい。
【０１３４】
本実施形態において、ログ生成モジュール８１４が決定部９１８を有し、決定部９１８が、ログ生成モジュール８１４の起動処理中に当該起動処理を継続するか否かを決定する場合について説明した。しかし、決定部９１８は本実施形態に限定されない。他の実施形態において、アプリケーション８１０中の他のモジュールが決定部９１８を有してもよい。また、決定部９１８は、ログ生成モジュール８１４の起動処理以外のタイミングにおいて、上記の決定処理を実行してもよい。
【０１３５】
本実施形態において、決定部９１８が、プログラム情報取得部９１４により取得された１以上の識別情報により識別される１以上のプログラムの中で、ログ生成モジュール８１４の優先度が最も高い場合に、通信端末１１０によるログ生成モジュール８１４の実行を継続させることを決定する場合について説明した。しかし、決定部９１８は本実施形態に限定されない。
【０１３６】
他の実施形態において、通信端末１１０は、優先度を割り当てられたプログラムが、当該プログラムの起動時に当該プログラムの識別情報を記録するためのファイルを有する。上記のプログラムは、上記のファイルに当該プログラムに割り当てられた優先度を記録してもよい。例えば、優先度を割り当てられたプログラムのそれぞれは、当該プログラムの起動時に、決定部９１８が、当該プログラム（起動中のプログラムと称する場合がある。）に割り当てられた優先度と、上記のファイルに記録された識別情報により識別されるプログラムに割り当てられた優先度とを比較する。
【０１３７】
この場合において、起動中のプログラムの優先度が、上記のファイルに記録された識別情報により識別されるプログラムに割り当てられた優先度よりも高い場合、決定部９１８は、上記のファイルに記録されている識別情報を消去し、起動中のプログラムの識別情報を記録する。また、決定部９１８は、上記のファイルに記録されている識別情報により識別されるプログラムの実行を停止するためのコマンドを発行した上で、起動中のプログラムの起動処理の実行を継続する。一方、起動中のプログラムの優先度が、上記のファイルに記録された識別情報により識別されるプログラムに割り当てられた優先度よりも低い場合、決定部９１８は、起動中のプログラムの起動処理の実行を停止する。
【０１３８】
［決定部による決定処理の第３の実施形態］
他の実施形態において、決定部９１８は、ポリシー取得部９１６から、情報収集サーバ１２０などの外部の情報処理装置からの指示に基づいて、通信端末１１０によるログ生成モジュール８１４の実行を継続させるか、通信端末１１０によるログ生成モジュール８１４の実行を停止させるかを決定するというポリシーを受信する。ポリシーには、例えば、外部の情報処理装置のＵＲＩが含まれる。
【０１３９】
決定部９１８は、ポリシーに規定されたＵＲＩに、ログ生成モジュール８１４の識別情報を送信して、通信端末１１０によるログ生成モジュール８１４の実行の継続の可否に関する情報を要求する。決定部９１８は、上記要求に対する応答を受信して、当該応答に基づいて、通信端末１１０によるログ生成モジュール８１４の実行を継続させるか、通信端末１１０によるログ生成モジュール８１４の実行を停止させるかを決定する。
【０１４０】
通信端末１１０によるログ生成モジュール８１４の実行の継続の可否に関する情報は、通信端末１１０によるログ生成モジュール８１４の実行の継続を許可する旨の指示であってもよく、通信端末１１０によるログ生成モジュール８１４の実行の継続を禁止する旨の指示であってもよい。通信端末１１０によるログ生成モジュール８１４の実行の継続の可否に関する情報は、通信端末１１０において実行の継続を許可されるプログラムの識別情報であってもよく、通信端末１１０において実行の継続を禁止されるプログラムの識別情報であってもよい。
【０１４１】
図１０は、データテーブル１０００の一例を概略的に示す。データテーブル１０００は、ポリシーの一例であってよい。本実施形態において、データテーブル１０００は、位置条件１００２と、時間条件１００４と、ポリシーとして適用されるプログラムのプログラムＩＤ１００６とを対応付けて格納する。プログラムＩＤ１００６は、プログラムの識別情報の一例であってよい。
【０１４２】
データテーブル１０００がポリシーとして利用された場合、ログ生成モジュール８１４の決定部９１８は、例えば、下記の処理を実行する。一実施形態において、通信端末１１０がエリアＡの範囲内に存在し、時刻が昼間である場合、プログラム情報取得部９１４により取得された識別情報の中に、ログ生成モジュール８２４、ログ生成モジュール１０２４などの識別情報が含まれていれば、ログ生成モジュール８１４の決定部９１８は、ログ生成モジュール８１４の実行を停止させることを決定する。一方、プログラム情報取得部９１４により取得された識別情報の中に、ログ生成モジュール８２４、ログ生成モジュール１０２４などの識別情報が含まれていない場合、ログ生成モジュール８１４の決定部９１８は、ログ生成モジュール８１４の実行を継続させることを決定する。
【０１４３】
他の実施形態において、通信端末１１０がエリアＡの範囲内に存在し、時刻が夜間である場合、プログラム情報取得部９１４により取得された識別情報の中に、ログ生成モジュール１０２４などの識別情報が含まれていれば、ログ生成モジュール８１４の決定部９１８は、ログ生成モジュール８１４の実行を停止させることを決定する。一方、プログラム情報取得部９１４により取得された識別情報の中に、ログ生成モジュール１０２４などの識別情報が含まれていない場合、ログ生成モジュール８１４の決定部９１８は、ログ生成モジュール８１４の実行を継続させることを決定する。
【０１４４】
図１１は、データテーブル１１００の一例を概略的に示す。データテーブル１１００は、ポリシーの一例であってよい。本実施形態において、データテーブル１０００は、位置条件１００２と、時間条件１００４と、ポリシーとして適用されるプログラムのプログラムＩＤ１００６と、優先度１１０８とを対応付けて格納する。優先度１１０８の設定方法は任意の方法が利用できる。本実施形態においては、優先度が高いほど、優先度１１０８には小さな数字が記入される。
【０１４５】
データテーブル１０００がポリシーとして利用された場合、ログ生成モジュール８１４の決定部９１８は、例えば、下記の処理を実行する。一実施形態において、通信端末１１０がエリアＡの範囲内に存在し、時刻が昼間である場合、ログ生成モジュール８１４は、ログ生成モジュール８２４及びログ生成モジュール８３４よりも優先度が高い。そこで、ログ生成モジュール８１４の決定部９１８は、ログ生成モジュール８１４の実行を継続させることを決定する。
【０１４６】
他の実施形態において、通信端末１１０がエリアＡの範囲内に存在し、時刻が夜間である場合、ログ生成モジュール８１４は、ログ生成モジュール８２４及びログ生成モジュール８３４よりも優先度が低い。そこで、ログ生成モジュール８１４の決定部９１８は、ログ生成モジュール８１４の実行を停止させることを決定する。
【０１４７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【０１４８】
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
［項目１］
通信環境に関する情報を取得するためのプログラムであって、
通信機能を有するコンピュータに、
通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けるユーザ指示受付手順と、
上記ユーザ指示によって指示された処理を実行する処理実行手順と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順を実行する手順と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記コンピュータの位置情報を取得する位置情報取得手順を実行する手順と、
を実行させるためのプログラム。
［項目２］
上記コンピュータに、
画像を表示する表示手順を、さらに実行させるためのプログラムであって、
上記通信環境に関する情報を取得するための処理以外の処理は、表示された上記画像の表示位置を変更する処理である、
項目１に記載のプログラム。
［項目３］
上記コンピュータに、
上記コンピュータとネットワークを介して接続されるサーバから取得した情報を、上記コンピュータのユーザが知覚することができる形態で出力する出力手順を、さらに実行させるためのプログラムであって、
上記通信環境に関する情報を取得するための処理以外の処理は、上記ユーザが指示した情報を、上記サーバから取得する処理であり、
上記通信環境情報取得手順は、
上記サーバに対して上記ユーザが指示した情報を送信するよう要求してから、上記ユーザが指示した情報を上記サーバから取得するまでの時間と、上記ユーザが指示した情報の情報量とに基づいて、上記通信環境に関する情報を取得する手順を含む、
項目１又は項目２に記載のプログラム。
［項目４］
上記コンピュータに、
上記コンピュータの通信環境に関する情報と、上記コンピュータの位置情報とが対応づけられたログ情報を生成するログ情報生成手順を、さらに実行させるための、
項目１から項目３までの何れか一項に記載のプログラム。
［項目５］
上記位置情報取得手順は、少なくともＧＰＳ情報に基づいて、上記コンピュータの位置情報と、ＧＰＳ精度に関する情報とを取得する手順を含み、
上記ログ情報は、上記ＧＰＳ精度に関する情報と、上記コンピュータの通信環境に関する情報と、上記コンピュータの位置情報とが対応づけられた情報である、
項目４に記載のプログラム。
［項目６］
上記コンピュータに、
上記コンピュータを識別する識別情報を取得する識別情報取得手順をさらに実行させるためのプログラムであって、
上記ログ情報は、上記識別情報と、上記コンピュータの通信環境に関する情報と、上記コンピュータの位置情報とが対応づけられた情報である、
項目４又は項目５に記載のプログラム。
［項目７］
上記コンピュータに、
上記プログラムがバックグラウンドで動作を停止する状態において、上記コンピュータの位置の変化量が予め定められた値を超えたことを示す位置変更情報を取得する位置変更情報取得手順と、
上記位置変更情報を取得した場合に、上記プログラムがバックグラウンドで動作する状態に移行する移行手順と、
上記プログラムがバックグラウンドで動作する状態において、上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順を実行する手順と、
をさらに実行させるための、
項目１から項目６までの何れか一項に記載のプログラム。
［項目８］
上記コンピュータに、
上記プログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであって、上記コンピュータに上記通信環境情報取得手順を実行させるタイミングを、ランダムに決定する実行タイミング決定手順をさらに実行させるための、
項目１から項目７までの何れか一項に記載のプログラム。
［項目９］
インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記１以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
をさらに実行させるための、
項目１から項目８までの何れか一項に記載のプログラム。
［項目１０］
通信環境に関する情報を取得するためのプログラムであって、
通信機能を有するコンピュータに、
上記プログラムがバックグラウンドで動作を停止する状態において、上記コンピュータの位置の変化量が予め定められた値を超えたことを示す位置変更情報を取得する位置変更情報取得手順と、
上記位置変更情報を取得した場合に、上記プログラムがバックグラウンドで動作する状態に移行する移行手順と、
上記プログラムがバックグラウンドで動作する状態において、上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順を実行する手順と、
を実行させるためのプログラム。
［項目１１］
上記コンピュータに、
上記プログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであって、上記コンピュータに上記通信環境情報取得手順を実行させるタイミングを、ランダムに決定する実行タイミング決定手順をさらに実行させるための、
項目１０に記載のプログラム。
［項目１２］
インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記１以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
をさらに実行させるための、
項目１０又は項目１１に記載のプログラム。
［項目１３］
通信環境に関する情報を取得するためのプログラムであって、
通信機能を有するコンピュータに、
上記コンピュータの通信環境に関する情報を取得する通信環境情報取得手順と、
上記コンピュータの位置情報を取得する位置情報取得手順と、
上記プログラムが、フォアグラウンド状態又はバックグラウンドで動作を停止する状態からバックグラウンドで動作する状態に移行した後の予め定められた期間が経過するまでの間の任意のタイミングであって、上記コンピュータに上記通信環境情報取得手順を実行させるタイミングを、ランダムに決定する実行タイミング決定手順と、
を実行させるためのプログラム。
［項目１４］
インストールされている１以上のプログラムの識別情報を取得するプログラム情報取得手順と、
前記１以上のプログラムの識別情報に基づいて、前記コンピュータによる当該プログラムの実行を継続させるか、当該実行を停止させるかを決定する決定手順と、
をさらに実行させるための、
項目１３に記載のプログラム。
［項目１５］
通信環境に関する情報を取得する情報処理装置であって、
通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けるユーザ指示受付部と、
上記ユーザ指示によって指示された処理を実行する処理実行部と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の通信環境に関する情報を取得する通信環境情報取得部と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の位置情報を取得する位置情報取得部と、
を備える情報処理装置。
［項目１６］
情報処理装置の通信環境に関する情報を取得する方法であって、
通信環境に関する情報を取得するための処理以外の処理を実行することを指示するユーザ指示を受け付けるユーザ指示受付段階と、
上記ユーザ指示によって指示された処理を実行する処理実行段階と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の通信環境に関する情報を取得する通信環境情報取得段階と、
上記ユーザ指示を受け付けた場合又は上記ユーザ指示によって指示された処理が実行される場合に、上記情報処理装置の位置情報を取得する位置情報取得段階と、
を有する方法。
【符号の説明】
【０１４９】
１０  通信ネットワーク、２０  情報提供サーバ、１００  通信状況解析システム、１１０  通信端末、１２０  情報収集サーバ、２１０  ログ生成部、２１２  入力部、２１４  処理実行部、２１６  環境情報取得部、２１８  位置情報取得部、２２２  出力部、２２４  識別情報取得部、２２６  ログ情報生成部、２２８  通信制御部、３００  データテーブル、３１０  端末ＩＤ、３２０  日時、３３０  位置情報、３４０  ＧＰＳ精度、３５０  通信環境情報、３５２  通信可否、３５４  スループット、３５６  レイテンシ、６１０  通信端末、６３２  プログラム管理部、６３４  移行判断部、６３６  タイミング決定部、８０２  オペレーティング・システム、８１０  アプリケーション、８１２  処理実行モジュール、８１４  ログ生成モジュール、８１６  通信制御モジュール、８２０  アプリケーション、８２２  アプリケーションモジュール、８２４  ログ生成モジュール、８２６  通信制御モジュール、８３０  アプリケーション、８３２  アプリケーションモジュール、８３４  ログ生成モジュール、８３６  通信制御モジュール、９１０  ログ生成処理部、９１２  イベント検出部、９１４  プログラム情報取得部、９１６  ポリシー取得部、９１８  決定部、１０００  データテーブル、１００２  位置条件、１００４  時間条件、１００６  プログラムＩＤ、１０２４  ログ生成モジュール、１１００  データテーブル、１１０８  優先度
【図１】
2015181854.tif 000003
【図２】
2015181854.tif 000004
【図３】
2015181854.tif 000005
【図４】
2015181854.tif 000006
【図５】
2015181854.tif 000007
【図６】
2015181854.tif 000008
【図７】
2015181854.tif 000009
【図８】
2015181854.tif 000010
【図９】
2015181854.tif 000011
【図１０】
2015181854.tif 000012
【図１１】
2015181854.tif 000013
【国際調査報告】
2015181854.tif 000014
2015181854.tif 000015
2015181854.tif 000016
2015181854.tif 000017