(57)【特許請求の範囲】
【請求項１】
モバイルデバイスのオペレーティングシステム（ＯＳ）のためのプログラマブルイベント制御された連続的なコードロギングを提供する方法であって、
モバイルＯＳの、ログコード、イベントコード、あるいは、リクエスト−レスポンスパケット（ログデータ）、の連続的な回収を開始する第１のトリガを確立することと；
前記ログデータの回収を終了する第２のトリガを確立することと；
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガの実行を条件づけることと、なお、前記開始イベントあるいは前記停止イベントの少なくとも１つは、モバイルデバイスのノンハードウェアの開始アップあるいはノンハードウェアのシャットダウンのオペレーションに関連づけられており、前記開始イベントと停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたものへのアクセスで、第２のアプリケーションあるいは処理を提供することと；
前記第１のトリガを複数の第２のトリガと結合するイベントフラグを定義することと；
前記イベントフラグによって前記第１のトリガで結合される前記複数の第２のトリガのうちの１つの実行に関して前記第１のトリガの結果として回収されたログデータの回収の終了を条件づけることと；
を備え、
前記イベントフラグは、複数の停止トリガと、複数の開始トリガのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始トリガ／停止トリガは、結合される、
方法。
【請求項２】
前記開始イベントの発生を検出し、前記第１のトリガを実行し、そして、ログ回収開始時間を記録することと、
前記停止イベントの発生を検出し、前記ログデータの回収が開始した場合には前記第２のトリガを実行し、そして、前記第２のトリガの実行に関連づけられた停止時間を記録することと、
のうちの少なくとも１つをさらに備えている、請求項１に記載の方法。
【請求項３】
前記回収、あるいは、前記回収の前記終了、あるいは両方を、前記モバイルＯＳのインデクスコードに関係しているログデータに、制限すること、をさらに備えており、なお、前記インデクスコードは、モバイルＯＳログデータをカテゴリ化する、請求項１に記載の方法。
【請求項４】
前記インデクスコードを前記開始イベントと関連づけることと、
前記開始イベントの発生を検出することと、
前記第１のトリガを実行することと、
前記インデクスコードに関係しているログデータを回収することと、あるいは、前記インデクスコードに関係していないログデータを無視することと、
前記回収することあるいは前記無視することに関連づけられたインデクスコード開始時間を記録することと、
のうちの少なくとも１つ、をさらに備えている請求項３に記載の方法。
【請求項５】
前記インデクスコードを前記停止イベントと関連づけることと、
前記停止イベントの発生を決定することと、
前記インデクスコードに関連づけられたログデータの回収を終了するために、あるいは、前記インデクスコードに関係していないログデータの無視を終了するために、前記第２のトリガを実行することと、
前記第２のトリガを実行することに関連づけられたインデクスコード停止時間を記録することと、
のうち少なくとも１つ、をさらに備えている請求項３に記載の方法。
【請求項６】
マルチプル開始イベントが前記第１のトリガを実行することができることと、マルチプル停止イベントが前記第２のトリガを実行することができることと、をさらに備えており、前記マルチプル開始イベントと停止イベントは、それぞれ１つまたは複数のインデクスコードに関連づけられている、請求項１に記載の方法。
【請求項７】
第１のインデクスコードに関連づけられた開始あるいは停止イベントの数をトラッキングすることと、前記第１のインデクスコードに関連づけられた同じ数の停止イベントが発生した場合に、前記第１のインデクスコードに関連づけられたログデータの回収を終了することを条件づけることと、をさらに備えている請求項６に記載の方法。
【請求項８】
前記第１のトリガを実行する開始イベントの数をトラッキングすることと、前記開始イベントの数と等しい停止イベントの数が発生した場合に、前記第２のトリガの実行を条件づけることと、をさらに備えている請求項３に記載の方法。
【請求項９】
前記開始イベント及び前記停止イベントから独立してログデータの絶え間ない記録を開始する連続的なロギングトリガを提供することと、
前記連続的なロギングトリガによって開始されたログデータの回収のためのイベントトリガされたサンプリングレートとは異なった特定のサンプリングレート、をオプションで利用することと、
をさらに備えている請求項１に記載の方法。
【請求項１０】
前記第１のトリガによって開始されたログデータの回収のためのトリガされたサンプリングレートを使用すること、をさらに備えている請求項１に記載の方法。
【請求項１１】
モバイルオペレーティング環境のための連続的なイベント制御されたコードロギングを提供する装置であって、
モバイルデバイスＯＳにおいてログデータを連続的に回収するように構成されたロギングモジュールと；
前記ログデータの回収を開始する第１のトリガと、前記ログデータの回収を終了する第２のトリガと、を確立するように構成された管理モジュールと；
開始イベントが発生した場合に前記第１のトリガの実行と、停止イベントが発生した場合に前記第２のトリガの実行と、を条件づける論理モジュールと、なお、前記開始イベントあるいは前記停止イベントのうちの少なくとも１つは、モバイルデバイスのノンハードウェアの開始アップあるいはノンハードウェアのシャットダウンのオペレーションに関連づけられており、前記開始及び停止イベントは、モバイルＯＳあるいは遠隔ネットワークコンポーネント、あるいは両方、のアプリケーションあるいは処理によって決定でき、前記論理モジュールは、あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたものへのアクセスで、第２のアプリケーションあるいは処理を提供する；
を備え、
前記管理モジュールは、複数の第２のトリガと前記第１のトリガを結合するイベントフラグを定義するようにさらに構成されており、
前記論理モジュールは、前記イベントフラグによって前記第１のトリガに結合される前記複数の第２のトリガのうちの１つの実行に関して前記第１のトリガによって開始されたログデータの回収の終了を条件づけ、
前記イベントフラグは、複数の停止トリガと、複数の開始トリガのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始トリガ／停止トリガは、結合される、
装置。
【請求項１２】
前記第１のトリガの実行のときにログ回収開始時間を記録するように、あるいは、前記第２のトリガの実行のときにログ回収停止時間を記録するように、あるいはその両方を記録するように、構成された検出及びタイミングモジュール、をさらに備えている請求項１１に記載の装置。
【請求項１３】
前記回収、あるいは、前記回収の前記終了、あるいは両方を、インデクスコードに関係しているログデータに、制限するために、モバイルＯＳデータをカテゴリ化する前記インデクスコードを利用するインデクスパーシングモジュール、をさらに備えている請求項１１に記載の装置。
【請求項１４】
前記管理モジュールは、前記開始イベントと前記インデクスコードを関連づけるようにさらに構成されている、
検出及びタイミングモジュールは、前記開始イベントの発生を決定するように構成されている、
前記論理モジュールは、前記第１のトリガを実行する、
前記ロギングモジュールは、前記インデクスコードに関係しているログデータを回収するように、あるいは、前記インデクスコードに関係していないログデータを無視するように、構成されている、
前記検出及びタイミングモジュールは、前記インデクスコードに関係している前記ログデータの回収のときにインデクスコード開始時間を記録するように構成されている、
のうちの少なくとも１つである、請求項１３に記載の装置。
【請求項１５】
前記管理モジュールは、前記停止イベントと前記インデクスコードを関連づけるようにさらに構成されている、
検出及びタイミングモジュールは、前記停止イベントの発生を決定するように構成されている、
前記論理モジュールは、前記インデクスコードに関連づけられたログデータの回収を終了するために、前記第２のトリガを実行するように構成されている、
前記検出及びタイミングモジュールは、前記インデクスコードに関係している前記ログデータの回収の終了のときに、インデクスコード停止時間を記録するように構成されている、
のうち少なくとも１つである、請求項１３に記載の装置。
【請求項１６】
前記論理モジュールは、マルチプル開始イベントが前記第１のトリガを実行することと、マルチプル停止イベントが前記第２のトリガを実行することと、ができるように、構成されており、前記マルチプル開始イベントとマルチプル停止イベントは、モバイルＯＳログデータをカテゴリ化する１つまたは複数のインデクスコードにそれぞれ関連づけられている、請求項１１に記載の装置。
【請求項１７】
第１のインデクスコードに関連づけられた、開始イベントと停止イベントの数をトラッキングする参照モジュール、をさらに備えており、前記論理モジュールは、前記開始イベントの数と等しい前記停止イベントの数が発生した場合に、前記第１のインデクスコードに関連づけられたログデータの終了を条件づける、請求項１６に記載の装置。
【請求項１８】
前記論理モジュールは、前記第１のトリガを実行する開始イベントの数をトラッキングし、前記開始イベントの数と等しい、停止イベントの数が発生した場合に前記第２のトリガの実行を条件付ける、請求項１１に記載の装置。
【請求項１９】
前記ロギングモジュールが、いったん開始すると、前記開始イベント及び前記停止イベントから独立してログデータを記録する連続性トリガを含む；あるいは、
前記ロギングモジュールは、イベント制御されたロギングのために使用されるトリガされたサンプリングレートとは異なる、連続ロギングトリガによって開始されたログデータの回収のための特定のサンプリングレートをオプションで利用する；
のうちの少なくとも１つである、請求項１１に記載の装置。
【請求項２０】
前記ロギングモジュールは、前記第１のトリガによって開始されたログデータの回収のためのトリガされたサンプリングレートを使用する、請求項１１に記載の装置。
【請求項２１】
モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成された少なくとも１つのプロセッサであって、
モバイルＯＳログデータの連続的な回収を開始する第１のトリガを確立するように構成された第１モジュールと；
前記ログデータの回収を終了する第２のトリガを確立するように構成された第２モジュールと；
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガの実行を条件付けるように構成された第３モジュールと、なお、前記開始イベントあるいは前記停止イベントのうちの少なくとも１つは、モバイルデバイスのノンハードウェア開始アップあるいはノンハードウェアのシャットダウンのオペレーションに関連づけられており、前記開始イベント及び停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたものへのアクセスで、第２のアプリケーションあるいは処理を提供するように構成された第４のモジュールと；
複数の第２のトリガと前記第１のトリガを結合するイベントフラグを定義するように構成された第５のモジュールと、
前記イベントフラグによって前記第１のトリガに結合される前記複数の第２のトリガのうちの１つの実行に関して前記第１のトリガによって開始されたログデータの回収の終了を条件づけるように構成された第６のモジュールと、
を備え、
前記イベントフラグは、複数の停止トリガと、複数の開始トリガのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始トリガ／停止トリガは、結合される、
少なくとも１つのプロセッサ。
【請求項２２】
モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成された装置であって、
モバイルＯＳログデータの連続的な回収を開始する第１のトリガを確立するための手段と;
前記ログデータの回収を終了する第２のトリガを確立するための手段と;
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガの実行を条件づけるための手段と、なお、前記開始イベントあるいは前記停止イベントのうち少なくとも１つは、モバイルデバイスのノンハードウェア開始アップあるいはノンハードウェアシャットダウンのオペレーションに関連づけられており、前記開始イベント及び停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたものへのアクセスで、第２のアプリケーションあるいは処理を提供するための手段と；
前記第１のトリガを複数の第２のトリガと結合するイベントフラグを定義する手段と；
前記イベントフラグによって前記第１のトリガで結合される前記複数の第２のトリガのうちの１つの実行に関して前記第１のトリガの結果として回収されたログデータの回収の終了を条件づけるための手段と；
を備え、
前記イベントフラグは、複数の停止トリガと、複数の開始トリガのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始トリガ／停止トリガは、結合される、
装置。
【請求項２３】
モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成されたインストラクションを含んでいるコンピュータ読取可能記憶媒体において、
モバイルＯＳログデータの連続的な回収を開始する第１のトリガをコンピュータに確立させるように構成された少なくとも１つのインストラクションと；
前記ログデータの回収を終了する第２のトリガをコンピュータに確立させるように構成された少なくとも１つのインストラクションと；
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガの実行をコンピュータに条件づけさせるように構成された少なくとも１つのインストラクションと、なお、前記開始イベントあるいは前記停止イベントのうちの少なくとも１つは、モバイルデバイスのノンハードウェア開始アップあるいはノンハードウェアシャットダウンのオペレーションに関連づけられており、前記開始イベント及び停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータのうちの選択されたものへのアクセスで、第２のアプリケーションあるいは処理をコンピュータに提供させるように構成された少なくとも１つのインストラクションと；
前記第１のトリガを複数の第２のトリガと結合するイベントフラグをコンピュータに定義させるように構成された少なくとも１つのインストラクションと；
前記イベントフラグによって前記第１のトリガで結合される前記複数の第２のトリガのうちの１つの実行に関して前記第１のトリガの結果として回収されたログデータの回収の終了をコンピュータに条件づけさせるように構成された少なくとも１つのインストラクションと；
を備え、
前記イベントフラグは、複数の停止トリガと、複数の開始トリガのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始トリガ／停止トリガは、結合される、
コンピュータ読取可能記憶媒体。
【請求項２４】
１つまたは複数のモバイルＯＳにおいてイベント制御されたログデータを構成及び／または消費するための方法であって、
ログデータをリクエストしてモバイルデバイスに対しクエリを送信すること;
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントを指定する構成パラメータを送信することと、なお、前記少なくとも１つのイベントの発生は、連続ログデータ回収の終了をトリガする；
前記少なくとも１つのイベントと、ログデータの回収を開始する少なくとも１つの開始イベントとをペアにする前記構成パラメータを備えたイベントフラグを含んでいることと、なお、前記イベントフラグは、前記少なくとも１つの開始イベントにより開始されたデータをログする少なくとも１つのイベントの発生により生じたログデータの回収の終了を制限する、
前記モバイルデバイスから回収されたログデータを受信することと、なお、前記ログデータの連続的な回収は、あらかじめ決定されたサンプリング関数にしたがって選択に少なくとも部分的に基づいており、前記モバイルデバイスにおける前記ログデータの前記連続的な回収は、前記少なくとも１つのイベントが発生した場合に終了される；
を備え、
前記イベントフラグは、複数の停止イベントと、複数の開始イベントのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始イベント／停止イベントはペアにされる、
方法。
【請求項２５】
前記構成パラメータで前記モバイルデバイスの前記ＯＳによって決定できる少なくとも１つの開始イベントを指定すること、をさらに備えており、前記少なくとも１つの開始イベントの発生は、前記ログデータの回収をトリガするために使用されている、請求項２４に記載の方法。
【請求項２６】
インデクスコードを含んでいること、をさらに備えており、そしてそれは、前記少なくとも１つのイベントでモバイルＯＳのログデータをカテゴリ化しており、前記インデクスコードは、前記インデクスコードに関連づけられたログデータのカテゴリにログデータ回収の前記終了を制限する、請求項２４に記載の方法。
【請求項２７】
ネットワークの、診断的、管理あるいは維持関数、あるいはそれらの組み合わせ、と共に、前記受信されたログデータを使用すること、をさらに備えている請求項２４に記載の方法。
【請求項２８】
前記受信されたログデータを、ネットワークサービスプロバイダあるいはそのコンポーネントに転送すること、をさらに備えている請求項２４に記載の方法。
【請求項２９】
１つまたは複数のモバイルＯＳにおいてイベント制御されたログデータをプログラムする及び／または消費する装置であって、
少なくとも１つのモバイルデバイスと通信的に結合するトランシーバと；
ログデータをリクエストして前記少なくとも１つのモバイルデバイスに対してクエリを送信するように構成された、そして、少なくとも１つのイベントを識別しているパラメータを提供するように構成された、診断アプリケーションを含むメモリと、なお、前記少なくとも１つのイベントの発生は、前記ログデータの連続的な回収を少なくとも終了するために使用されることができ、連続的な回収のためのログデータの選択は、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいており、なお、前記診断アプリケーションは、データの回収を開始する少なくとも１つの開始イベントと少なくとも１つのイベントとをペアにする構成パラメータ、を備えたイベントフラグを含むようにさらに構成されており、前記イベントフラグは、前記少なくとも１つの開始イベントにより開始されたデータをログする少なくとも１つのイベントの発生により生じたログデータの回収の終了を制限する、
前記診断アプリケーションを実行し、前記クエリ及び前記構成パラメータに関する情報を送信し受信する、
プロセッサと；
を備え、
前記イベントフラグは、複数の停止イベントと、複数の開始イベントのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始イベント／停止イベントはペアにされる、
装置。
【請求項３０】
前記診断アプリケーションは、少なくとも１つの開始イベントを指定するようにさらに構成されており、前記少なくとも１つの開始イベントの発生は、前記ログデータの回収を開始するように使用されている、請求項２９に記載の装置。
【請求項３１】
前記診断アプリケーションは、前記少なくとも１つのイベントを備えた少なくとも１つのインデクスコードを含むように、さらに構成されており、前記少なくとも１つのインデクスコードは、ログデータの回収の前記終了を、前記ＯＳのインデクスコードに関係しているログデータに、制限する、請求項２９に記載の装置。
【請求項３２】
前記診断アプリケーションは、ネットワークの、診断的、管理あるいは維持関数、あるいはそれらの組み合わせと共に、前記受信されたログデータを使用するようにさらに構成されている、請求項２９に記載の装置。
【請求項３３】
前記診断アプリケーションは、ネットワークサービスプロバイダあるいはそのコンポーネントに対して前記受信されたログデータを転送するように、さらに構成されている、請求項２９に記載の装置。
【請求項３４】
１つまたは複数のモバイルＯＳにおいて、イベント制御されたログデータを命令する及び／または消費するように構成された少なくとも１つのプロセッサであって、
ログデータをリクエストしてモバイルデバイスに対しクエリを送信するように構成された第１のモジュールと；
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントを指定するように構成された第２のモジュールと、なお、前記少なくとも１つのイベントの発生は、連続的なログデータ回収の終了をトリガし、ログデータは、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいて前記連続的な回収のために選択される；
前記少なくとも１つのイベントと、ログデータの回収を開始する少なくとも１つの開始イベントとをペアにするイベントフラグを指定するように構成された第３のモジュールと、なお、前記イベントフラグは、前記少なくとも１つの開始イベントにより開始されたデータをログする少なくとも１つのイベントの発生により生じたログデータの回収の終了を制限する、
前記モバイルデバイスから回収されたログデータを受信するように構成された第４のモジュールと、なお、前記ログデータの連続的な回収は、あらかじめ決定されたサンプリング関数にしたがって選択に少なくとも部分的に基づいており、前記モバイルデバイスにおける前記ログデータの前記連続的な回収は、前記少なくとも１つのイベントが発生した場合に終了される、
を備え、
前記イベントフラグは、複数の停止イベントと、複数の開始イベントのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始イベント／停止イベントはペアにされる
少なくとも１つのプロセッサ。
【請求項３５】
１つまたは複数のモバイルＯＳにおいてイベント制御されたログデータをプログラムする及び／または消費するように構成された装置であって、
ログデータをリクエストしてモバイルデバイスに対してクエリを送信するように構成された第１のモジュールと；
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントを指定するように構成された第２のモジュールと、なお、前記少なくとも１つのイベントの発生は、連続的なログデータ回収の終了をトリガし、ログデータは、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいて前記連続的な回収のために選択される；
前記少なくとも１つのイベントと、ログデータの回収を開始する少なくとも１つの開始イベントとをペアにするイベントフラグを指定するように構成された第３のモジュールと、なお、前記イベントフラグは、前記少なくとも１つの開始イベントにより開始されたデータをログする少なくとも１つのイベントの発生により生じたログデータの回収の終了を制限する、
前記モバイルデバイスから回収されたログデータを受信するように構成された第４のモジュールと、なお、前記ログデータの連続的な回収は、あらかじめ決定されたサンプリング関数にしたがって選択に少なくとも部分的に基づいており、前記モバイルデバイスにおける前記ログデータの前記連続的な回収は、前記少なくとも１つのイベントが発生した場合に終了される、
を備え、
前記イベントフラグは、複数の停止イベントと、複数の開始イベントのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始イベント／停止イベントは、ペアにされる、
装置。
【請求項３６】
１つまたは複数のモバイルＯＳにおいてイベント制御されたログデータの構成及び／または消費を提供するように構成されたインストラクションを含んでいるコンピュータ読取可能記憶媒体であって、
ログデータをリクエストしてモバイルデバイスに対しクエリをコンピュータに送信させるように構成された少なくとも１つのインストラクションと；
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントをコンピュータに指定させるように構成された少なくとも１つのインストラクションと、なお、前記少なくとも１つのイベントの発生は、連続的なログデータ回収の終了をトリガし、ログデータは、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいて前記連続的な回収のために選択される；
コンピュータに、前記少なくとも１つのイベントと、ログデータの回収を開始する少なくとも１つの開始イベントとをペアにするイベントフラグを指定させるように構成された少なくとも１つのインストラクションと、なお、前記イベントフラグは、前記少なくとも１つの開始イベントにより開始されたデータをログする少なくとも１つのイベントの発生により生じたログデータの回収の終了を制限する、
コンピュータに、前記モバイルデバイスから回収されたログデータを受信させるように構成された少なくとも１つのインストラクションと、なお、前記ログデータの連続的な回収は、あらかじめ決定されたサンプリング関数にしたがって選択に少なくとも部分的に基づいており、前記モバイルデバイスにおける前記ログデータの前記連続的な回収は、前記少なくとも１つのイベントが発生した場合に終了される、
を備え、
前記イベントフラグは、複数の停止イベントと、複数の開始イベントのうちの１つまたは複数を相関するように使用され、関連イベントフラグについて共通の値を有している開始イベント／停止イベントは、ペアにされる、
コンピュータ読取可能記憶媒体。
【請求項３７】
請求項１乃至１０、２４乃至２６、および２７乃至２８のうちのいずれか１つに記載の方法を実行することをコンピュータにさせるプログラム。
【請求項３８】
請求項１乃至１０、２４乃至２６、および２７乃至２８のうちのいずれか１つに記載の方法を実行することをコンピュータにさせるプログラムを記録したコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【関連出願に対する相互参照】
【０００１】
本願は、ここでの譲受人に譲渡され、参照により、ここに明示的に組み込まれる、２００７年５月２１日に出願され、トリガされた連続的なロギングのための方法及び装置(METHODS AND APPARATUS FOR TRIGGERED CONTINUOUS LOGGING)と題された、米国仮特許出願第６０／９３９，１１３号の優先権を主張する。
【技術分野】
【０００２】
下記は、一般に、モバイルオペレーティングシステムの管理(management of mobile operating systems)に関し、より具体的には、モバイルオペレーティング環境(a mobile operating environment)のためのイベント制御された連続的なログトリガ(event-controlled continuous log triggers)を提供することに関する。
【背景技術】
【０００３】
近年、様々な発達(advancements)がセルラ通信技術(cellular communication technology)及びセルラ通信デバイス(cellular communication devices)において生じている。そのようなデバイス上でのカメラ及びビデオ録画技術の統合、モバイル通信への電子メール及びショートメッセージングサービスの組み込み、及び同様なもの、のようないくつかの発達は、ソフトウェア及び／またはハードウェアアプリケーションを含む。これらのアプリケーションは、すでに普及された通信デバイス（例、セルラ電話）に対して、増大されたフレキシビリティ(increased flexibility)、処理パワー(processing power)、通信機能(communication capabilities)、等を追加している。結果、そのようなデバイスは、消費者市場においてより普及されており、より多くの消費者がそのようなデバイスを購入すること、あるいは、新しいアプリケーション及び技術を含むデバイスにアップグレードすること、を動機付けている。
【０００４】
モバイルデバイスのアプリケーション、処理、リソース、および同様なものは、オペレーティングシステムによって実行され、そのような実行(execution)は、診断目的(diagnostic purposes)のために、参照されることができる。例えば、アプリケーションのインストラクション(instructions)に準ずるプロセッサによってとられた動作(action)は、ログコード(log code)、ログインストラクション(log instruction)、及び同様なもの、として、プロセッサによって報告されることができる。そのようなログインストラクションの記録(record)は、モバイルオペレーティングシステムのあるいはモバイルデバイスの、アプリケーション、リソース、あるいは他のコンポーネントが適切に実行しているかどうかを決定するのに有用でありうる。例えば、ボイス呼び出しの開始およびセットアップに関係しているログデータ(log data pertinent to voice call initiation and setup)は、モバイルデバイスのための呼び出しドロップ(call drops)の周波数と、呼び出しドロップの発生の理由と、を決定するのに使用されうる。しかしながら、現代のモバイルデバイスのアプリケーション、リソース、関数、及び処理、の数が増加するにつれ、ログデータをパースすること(parsing)は、ますます重要となり、さらにそれだけではなく、ますます複雑となり、計算上値段がひどく高いもの(computationally prohibitive)となった。結果、ログデータをパースするためのメカニズムが、最近観察された増加しつつある複雑性を阻止するために、導入されており、そして、導入され続けている。
【発明の概要】
【０００５】
以下は、そのような実施形態の基本的な理解を提供するために、１つまたは複数の実施形態の簡略化された概要(summary)を、示している。この概要は、すべての熟考された実施形態の広範囲な全体像ではなく、すべての実施形態の重要なあるいは決定的なエレメントを識別することも、あるいは、いずれのあるいはすべての実施形態の範囲を詳細に描写することも、意図されていない。その唯一の目的は、後で示される、より詳細な説明の前置きとして、簡略化された形で、１つまたは複数の実施形態のいくつかの概念(concepts)を示すことである。
【０００６】
本主題の開示は、モバイルオペレーティング環境のための、イベント制御された連続的なロギング(event-controlled continuous logging)を提供する。例えば、モバイルデバイスオペレーティングシステム（ＯＳ）のログデータ（例、モバイルＯＳの、ログコード、イベントコード、及び／または、リクエスト−レスポンスパケットあるいは同様なもの(log codes, event codes, and/or request-response packets or the like of the mobile OS)）の回収は、１つまたは複数のあらかじめ決定されたイベントの発生に応じて、開始され、終了されることができる。さらに、イベントは、モバイルＯＳの、アプリケーション、処理、リソース関数及び／または同様なものの関数(a function of an application, process, resource function and/or the like of the mobile OS)として、モバイルＯＳログデータをカテゴリ化するように構成されたインデクスコードと関連づけられることができる。インデクスコード（単数または複数）との開始イベントの関連(association)は、開始イベントが発生した場合に(upon occurrence of the start event)ログデータの回収を、インデクスコード（単数または複数）と関連づけられた、モバイルＯＳのアプリケーション（単数または複数）、処理（単数または複数）、リソース（単数または複数）、及び／または関数（単数または複数）に関係しているそのログデータに、制限することができる。さらなる態様にしたがって、マルチプルイベント(multiple events)は、回収をトリガするように定義されることができ、マルチプルイベントはまた、ログコード及び／またはリクエスト−レスポンスパケットの回収を終了するように定義されることができる。さらに、イベントフラグ(event flag)は、１つまたは複数の開始イベントが１つまたは複数の終了イベントとペアであるように設定されることができる。ＯＳ論理は、回収の終了（例えば、すべてのログデータの、あるいは、１つ又は複数のインデクスコードに関係しているログデータの）が共通イベントフラグ値によって対応する開始イベントとペアである終了イベントの発生に関して条件づけられるように構成されることができる。説明されているように、主題の明細書は、１つまたは複数のあらかじめ決定されたＯＳイベントの発生の結果としてＯＳコードの連続的なロギング(continuous logging)を開始し、終了するメカニズムを開示する。
【０００７】
いくつかの態様にしたがって、モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギング(programmable event-controlled continuous code logging)を提供する方法が開示されている。方法は、モバイルＯＳのログデータの回収を開始する第１のトリガを確立することと、ログデータの回収を終了する第２のトリガを確立することと、を含むことができる。さらに、方法は、開始イベント(start event)と停止イベント(stop event)が発生した場合に、それぞれ、第１のトリガ及び第２のトリガの実行を条件づけること、を含むことができ、開始イベント及び停止イベントは、モバイルＯＳのアプリケーションあるいは処理によって決定できる。
【０００８】
特定の態様にしたがって、モバイルオペレーティング環境のための、連続的なイベント制御されたコードロギングを提供する装置(apparatus)、が説明されている。装置は、モバイルデバイスＯＳにおいてログデータを回収するように構成されたロギングモジュール(logging module)と、ログデータの回収を開始する第１のトリガとログデータの回収を終了する第２のトリガとを確立するように構成された管理モジュール(management module)と、を含むことができる。さらに、装置は、開始イベントが発生した場合に第１のトリガの実行を、また、停止イベントが発生した場合に第２のトリガの実行を、条件づける論理モジュールを含むことができ、開始及び停止イベントは、モバイルＯＳあるいは遠隔ネットワークコンポーネントの、あるいは両方の、アプリケーションあるいは処理、によって (by an application or process of the mobile OS or a remote network component, or both)決定できる。
【０００９】
さらに別の態様にしたがって、モバイルデバイスＯＳのためのプログラマブルイベント制御連続的なコードロギングを提供するように構成された少なくとも１つのプロセッサが開示されている。プロセッサ（単数または複数）は、モバイルＯＳのログデータの回収を開始する第1のトリガを確立するように構成された第１ジュールと、ログデータの回収を終了する第２のトリガを確立するように構成された第２モジュールと、を含むことができる。プロセッサ（単数または複数）はまた、開始イベント及び停止イベントが発生した場合に、それぞれ、第1のトリガ及び第２のトリガの実行を条件付けるように構成された第３モジュールを含むことができ、開始イベント及び停止イベントは、モバイルＯＳのアプリケーションあるいは処理によって決定できる。
【００１０】
１つまたは複数のさらなる態様にしたがって、モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成された装置が説明されている。装置は、モバイルＯＳのログデータの回収を開始する第1のトリガを確立するための手段と、ログデータの回収を終了する第２のトリガを確立するための手段と、を含むことができる。さらに、装置はまた、開始イベント及び停止イベントが発生した場合に、それぞれ、第１のトリガと第２のトリガの実行を条件づけるための手段を含むことができ、開始イベント及び停止イベントは、モバイルＯＳのアプリケーションあるいは処理によって決定できる。
【００１１】
さらなる態様にしたがって、モバイルデバイスＯＳのためのプログラマブルイベント制御された連続的なコードロギングを提供するように構成されたインストラクション(instructions)、を含んでいるコンピュータ可読媒体(computer-readable medium)を含むコンピュータプログラムプロダクト(computer program product)が説明されている。インストラクションは、モバイルＯＳのログデータの回収を開始する第１のトリガをコンピュータに確立させるように構成された少なくとも1つのインストラクションを含むことができる。インストラクションはまた、ログデータの回収を終了する第２のトリガをコンピュータに確立させるように構成された少なくとも1つのインストラクションを含むことができる。さらに、インストラクションは、開始イベント及び停止イベントが発生した場合に、それぞれ、第1のトリガ及び第２のトリガの実行をコンピュータに条件づけさせるように構成された少なくとも１つのインストラクションを含むことができ、開始イベント及び停止イベントは、モバイルＯＳのアプリケーションあるいは処理によって決定できる。
【００１２】
前述および関連する目的の実現のために、１つまたは複数の態様は、下記で十分に説明され、そして特許請求の範囲で特に指摘された、特徴を備えることができる。以下の説明及び添付図面は、１つまたは複数の態様のある説明のための態様を詳細に記載する。しかしながら、これらの態様は、様々な態様の原理が使用されることができる、ほんのいくつかの様々な方法を示しており、説明された態様は、すべてのそのような態様およびそれらの同等物(equivalents)を含むように意図されている。
【図面の簡単な説明】
【００１３】
【図１】図１は、少なくとも１つのイベントの発生に基づいて、連続的なモバイルオペレーティングシステム（ＯＳ）のロギングを開始し終了することができる例示的なシステムを図示する。
【図２】図２は、いくつかの態様にしたがって、トリガイベントの発生を検出し、そしてログの開始及び終了時間を記録することができるサンプルシステムを図示する。
【図３】図３は、さらなる態様にしたがって、少なくともシステムインデクスの関数としてモバイルＯＳのデータのログをとる(log)ことができる例示的なシステムを図示する。
【図４】図４は、さらなる態様にしたがって、モバイルデバイスＯＳのための、イベント制御されたモバイルロギングを提供する例示的なモバイルデバイスを図示する。
【図５】図５は、さらなる態様にしたがってイベント制御されたログデータを容易にし、受信し、及び／または、消費することができる、例示的な基地局を図示する。
【図６】図６は、さらなる態様にしたがって、ペアの開始及び実行トリガに基づいた、サンプルのロギングイベントを図示する。
【図７】図７は、モバイルオペレーティング環境においてイベント制御されたロギングを提供するためのサンプルの方法を図示する。
【図８】図８は、１つまたは複数の態様にしたがって、インデクス特有ロギング(index specific logging)、および／または、ペアである開始／停止イベントを提供するための例示的な方法を図示する。
【図９】図９は、インデクスコード（単数または複数）で開始イベントの発生に基づいて、開始トリガを実行するための例示的な方法を図示する。
【図１０】図１０は、インデクスコード（単数または複数）で停止イベントの発生に基づいて、停止トリガを実行するための例示的な方法を図示する。
【図１１】図１１は、少なくとも１つの態様にしたがって、モバイルオペレーティング環境において、イベント制御されたロギングとログ情報を、提供すること及び／または容易にすること、そして消費することができるサンプルシステムを図示する。
【発明を実施するための形態】
【００１４】
様々な態様は、図面を参照して説明されており、全体を通して、同様の参照文字は、同様のエレメントを指すように使用されている。以下の説明においては、説明の目的のために、非常に多くの具体的な詳細な説明が、１つまたは複数の態様の完全な理解を提供するために記載されている。それは、明白かもしれないけれども、そのような態様（単数または複数）は、これらの具体的な詳細なしで実行されることができる。他の例において、よく知られた構造およびデバイスは、１つまたは複数の態様を説明することを容易にするために、ブロック図の形で示されている。
【００１５】
主題の開示は、モバイルオペレーティングシステム（ＯＳ）における、処理情報のイベント制御された連続的なロギングを提供する。例えば、少なくとも１つの、モバイルＯＳのための、ログコード、イベントデータ及び／またはリクエスト−レスポンスパケット（以下ログデータと呼ぶ）の連続的なロギングを開始する、少なくとも1つの開始トリガが確立されることができる。連続的なロギングは、ログデータの永久的な回収(perpetual collection)あるいは、メモリ（例、一時的なメモリ、ページングファイル、ストレージディスク上のログファイル、あるいは、それらの、あるいは同様な一時的なあるいは半永久的なメモリのいずれの、適切な組み合わせ）へ指定された部分のログデータとして定義される。
【００１６】
さらに、連続的なロギングは、モバイルＯＳからログデータを選択的に選ぶことができる。例えば、あらかじめ決定されたサンプリング関数(predetermined sampling function)は、ログファイルに、ログデータのうちの選択的なもの(selective ones of the log data)を抽出するために使用されることができる。サンプリング関数は、関連づけられたインデクスコード(an associated index code)に基づいてログコードを選択するパーシング関数(parsing function)を含むことができる(以下を参照)。さらに、サンプリング関数は、周期的なあるいは非周期的な間隔で連続的な回収の間に(during continuous collection)ログコードを選択するタイマーを含むことができる。さらなる例として、サンプリング関数は、前の選択メカニズムの適切な組み合わせを含むことができる。
【００１７】
ログデータあるいはログデータの部分は、モバイルＯＳのソース及びそのようなソースコードの処理から抽出されることができ、あるいは、モバイルＯＳソースコードによってロギングモジュールに提供されることができ、あるいは、その両方が行われる。開始トリガによって開始された、連続ロギングは、例えば、１つまたは複数の停止トリガ（下記参照）が実行されるまで、あるいはモバイルデバイスの電源が切れるまで（パワーダウンが停止トリガとして確立されていない場合、下記で定義されるように、開始アップのときにロギングがオプションで自動的に継続することができるにも関わらず）、あるいは両方のときまで、いつまでも存続する(persist)ことができる。代替的に、あるいはさらに、モバイルＯＳログデータの回収を終了する少なくとも１つの停止トリガが、確立されることができる。例えば、モバイルデバイスの電源を入れると、モバイルＯＳアプリケーションに含まれるログデータの回収（例、モバイルネットワークと通信する、そのようなネットワークとハンドシェイクデータ(handshake data)を確立する、ロケーションサービスを開始する等）は、デバイスの電源が切れるまで、あるいは、停止トリガが実行されるまで、連続的にトリガされ維持されることができる。オプションで、開始トリガ及び停止トリガは、停止トリガあるいは開始トリガのいずれかがノンハードウェアパワーアップあるいはノンハードウェアパワーダウンのオペレーション（例、ユーザが、電源オフあるいは電源オンのボタンを押す）を含む方法で指定されることができる。
【００１８】
前述に加えて、開始トリガおよび停止トリガの実行は、モバイルＯＳによって決定できる１つまたは複数のイベントの発生に相関されることができる。イベントは、モバイルデバイスの及び／またはモバイルネットワークの、アプリケーション、関数、処理、あるいはリソース、あるいは、受信された／提供されたユーザ入力／出力、あるいは、それらのあるいはモバイル環境における同様なオペレーションの組み合わせ、に関連づけられることができる。
【００１９】
少なくとも1つの例示的な実施形態においては、イベントは、少なくとも３つの分類、すなわち、ソフトウェア駆動イベント、ハードウェア駆動イベント、そして、ソフトウェア/ハードウェア駆動イベント組み合わせ、に典型的に構成されることができる。ソフトウェア駆動イベントは、モバイルＯＥの、モジュール、処理、関数あるいは、同様なもの、の実行を含むことができる。一例は、モバイルデバイスとモバイル通信ネットワークとの間のハンドシェイクを確立すること、を含むことができる。ソフトウェアイベントのさらなる例は、データセッション（例、ウェブブラウジングセッション等）を確立するために、モバイルデバイスにおいて、あるいはモバイルデバイスとインタフェース接続されたモバイルネットワークにおいて、パケットデータプロトコル(packet data protocol)（ＰＤＰ）コンテキストにアクセスすることを含むことができる。
【００２０】
ソフトウェア/ハードウェアイベントの組み合わせは、例えばユーザ入力、あるいはユーザプロンプト(a user prompt)及び対応するユーザ入力、に応答して、ソフトウェアを含むことができる。詳細な例として、ソフトウェア/ハードウェアイベントは、セルラ電話に関しての電話番号に関連づけられた「呼び出し」ボタンを押すことに基づいた、ボイス呼び出しセッションを確立してもよい。ハードウェア駆動イベントは、少なくとも１つのハードウェア入力（例えば、モバイルデバイス上のボタンを押すこと）を使用しているモバイルデバイスのユーザインタフェース上のユーザ入力を含むことができる。詳細な例として、ハードウェアイベントは、モバイルデバイスの電源を入れるために「電源オン」ボタンを押すことを含むことができる。一般に、そのようなイベントは、開始及び停止トリガでペアにされ、モバイルＯＳログデータの回収を開始し終了するように使用されることができる。
【００２１】
さらなる態様にしたがって、イベントの後続発生(subsequent occurrences of an event)は、開始トリガと停止トリガとを実行することができる。例えば、第１のボイス呼び出しの開始は、データの回収をトリガする開始イベントであることができ、第２のボイス呼び出しの開始は、データ回収の終了をトリガする停止イベントであることができる。さらに、主題の開示は、開始トリガと停止トリガを、それぞれ、実行することができるマルチプル開始イベント及び停止イベントを提供することができる。そのような実施形態にしたがって、開始イベントが発生した場合に、相関された開始トリガ(correlated start trigger)は、ログデータ（あるいはログデータの指定部分）がすでに回収されたかどうかを見るために、チェックすることができ、そして、そうでない場合には、ログデータ（あるいは指定部分）の回収を開始することができる。その後、停止トリガ(停止イベントの発生に基づいた)のうちの1つの実行は、そのあとで、ログデータ（あるいは、指定部分が停止トリガと関連づけられている場合には、指定部分）の回収を終了することができる。前述に加えて、参照カウンタ(reference counter)は、生じた開始イベント及び停止イベントの数(a number of start events and stop events)をトラッキングするためにオプションで使用されることができ、いったんログデータの回収が始まると、開始イベントと少なくとも同じ数の停止イベントの発生のときログデータの終了を条件づける。そのような方法で、個別の開始及び停止イベントを有する別個の処理は、個別の処理に関連づけられた停止イベントが発生するとしても、ログデータを回収することを継続することができる。結果、主題の開示は、独立イベント及び処理についてのログデータの回収を提供する(accommodate)ことができる。
【００２２】
前述の特定の非制限の例として、ログデータの回収は、ボイス呼び出しが行われているとき、そして、入ってくる呼び出しが受信されるときにもまた、望まれうる。そのような場合では、ボイス呼び出しを開始することと、入ってくる呼び出しを受信することは、両方とも、開始トリガを実行する開始イベントである。同様に、ボイス呼び出しを終了することと、入ってくる呼び出しを終了することは、両方とも、停止トリガを実行する停止イベントであることができる。モバイルデバイスユーザがボイス呼び出しを開始し、続いて、呼び出し待機ライン(a call waiting line)上で入ってくる呼び出しを受信し、そのあとで、入ってくる呼び出しのみを取るためにボイス呼び出しを終了する場合には、停止トリガは実行されるであろう（ボイス呼び出しを終了することにより）。したがって、入ってくる呼び出しがまだ進行中だとしても、ログデータの回収は終了される。しかしながら、上記の態様にしたがって、停止トリガの実行は、開始イベントと等しい数の停止イベントが発生した場合に、条件付けられることができる。したがって、前述のシナリオでは、例えば、停止トリガは、第２停止イベントが生じるまで実行されないであろう、また、ログデータは、受信された呼び出しが終了するまで、まだ(still)回収されるであろう。
【００２３】
ログデータの様々な部分の間で識別する、１つまたは複数のインデクスコードの使用もまた開示されている。１つまたは複数のそのようなインデクスコードは、開始イベント及び／または停止イベントと関連づけられることができ、そして、ログデータ回収あるいは終了を、インデクスコードに関連づけられたログデータの部分に、限定する(restrict)ことができる。インデクスコードは、モバイルＯＳのいずれの適切なアプリケーション、リソース、関数、あるいは処理に関係しているログデータのための識別子に関連づけられることができ、また識別子として作用することができる。(例えば、インデクスコードは特定のログコード、特定のイベント、あるいは、特定のリクエスト−レスポンスパケット、あるいはこれらの組み合わせ、あるいはログデータの同様な部分を識別することができる)。詳細な例として、１つまたは複数のインデクスコードは、グローバルポジションシステム(global position system)（ＧＰＳ）情報（例、モバイルデバイスの同時存在ロケーション）、と関連づけられることができ、また、ＧＰＳ関連のログデータを他のログデータと区別するために使用されることができる。そのようなインデクスコードは、開始イベント／トリガに関連づけられている場合には、ＧＰＳログデータだけに、ログデータの回収を制限することができるであろう。代替的に、あるいは、さらに、停止イベント／トリガでＧＰＳインデクスコードを関連づけることは、ＧＰＳログデータに、ログデータの回収の終了を制限することができるであろう。いくつかの態様にしたがって、マルチプルインデクスコードは、開始イベントあるいは停止イベント、あるいは両方、に関連づけられることができる。したがって、ボイス呼び出しの発生は、ＧＰＳ関連情報、ボイスデコーダ関連情報、等、に関係しているログデータ、あるいは、ボイス呼び出しイベントとペアであるインデクスコードに関連づけられたいずれの適切なログデータ、の回収をトリガすることができるであろう。
【００２４】
さらなる態様にしたがって、主題のイノベーションは、インデクスコードの関数として、開始イベント及び停止イベントの発生をトラッキングすることができる。結果、インデクス関連のログデータ回収の終了は、インデクスコードに関連づけられた開始イベントと少なくとも同数のインデクスコードに関連づけられた停止イベントが発生した場合に条件づけられることができる。したがって、インデクス関連のロギングは、適切なように、ロギングを開始する特定のイベントから独立することができる。
【００２５】
１つまたは複数のさらなる態様にしたがって、イベントフラグは、マルチプル停止トリガのうちの１つまたは複数と、マルチプル開始トリガのうちの１つまたは複数を相関するように使用されることができる。関連イベントフラグについて共通の値を有している開始トリガ／停止トリガは、ペアにされることができる。結果、停止トリガは、ペアにされた開始トリガ(a paired start trigger)によって開始されたログデータの回収を終了することに制限されることができる。異なるイベントフラグ値で開始トリガによってトリガされたログデータは、停止トリガによって終了されないであろう。したがって、第１のトリガは、そのようなデータが無関係な停止トリガによって終了されることなく、ログデータの回収を開始することができる。
【００２６】
前述に加えて、主題の開示は、開始あるいは停止イベントから独立して、データのログをとる連続的なロギングトリガを組み込むことができる。連続的なロギングトリガは、モバイルＯＥ上の特定のコードによって開始されることができ、いったんそのようなトリガが開始されると、ログデータは、相関された連続的ログ停止トリガが実行されるまで、永久に記録されるであろう。他の開始トリガ及び停止トリガは、連続ロギングが従事している間に、オプションでサスペンドされる(suspended)ことができる（例えば、連続ロギングトリガがインデクスコードから独立しており、モバイルオペレーティングシステムのすべてのログデータを回収する場合）。さらに、特定のサンプルレート(例、１ミリ秒、１マイクロ秒などのような特定の時間期間の間に一度ログイベントを回収する)は、オプションで連続的なロギングに関連づけられることができる。さらに、連続的なトリガデータ回収と比較して、サンプルレートは、イベントトリガされたデータ回収についてオプションで異なることができる。具体的には、第１の回収サンプルレートは、連続的トリガによって開始されたロギングのために、確立されることができ、異なる（あるいは、例えば同一の）サンプルレートは、イベントトリガによって開始されるロギングのために確立されることができる。
【００２７】
開示の様々な態様は、下記で説明されている。ここにおける教示が広範囲の形式において具現化されることができるということ、そして、ここにおいて開示された、いずれの特定の構造及び／または機能は単なる代表例であるということ、は明らかであるべきである。ここにおける教示に基づいて、当業者は、ここにおいて開示された態様は、他の態様と独立してインプリメントされることができるということ、そして、２以上のこれらの態様は、様々な方法で組み込まれることができるということを理解すべきである。例えば、装置は、インプリメントされることができ、及び／または、いずれの数の態様を使用して実行している方法はここにおいて記載されている。さらに、装置は、インプリメントされることができ、及び／または、１つまたは複数の態様に加えて、あるいは１つまたは複数の態様のほかに、他の構造及び／または機能性を使用して実行された方法がここにおいて記載されている。一例として、ここにおいて説明されている多くの方法、デバイス、システム、及び装置が、少なくとも１つのモバイルデバイス上で動作している１つまたは複数のモバイルアプリケーションのコンテキストにおいて説明されており、そのようなアプリケーション間の安全な通信を確立している。当業者は、同様の技術は他の通信環境にも適用することができるであろうということは理解すべきである。
【００２８】
本開示で使用されているように、用語「コンポーネント(component)」、「システム(system)」、および同様なものは、コンピュータ関連のエンティティ(entity)、ハードウェアか、ソフトウェア、実行のときにソフトウェア、ファームウェア、ミドルウェア、マイクロコード、及び／またはそれらのいずれの組み合わせ、を指すように意図されている。例えば、コンポーネントは、限定されてはいないが、プロセッサ上で実行する処理、プロセッサ、オブジェクト、実行ファイル(executable)、実行スレッド(thread of execution)、プログラム、および／またはコンピュータ、であってもよい。１つまたは複数のコンポーネントは、処理および／または実行スレッド内に常駐(reside)することができ、また、コンポーネントは、１つのコンピュータ上に局在化されてもよいし、かつ／または２つ以上のコンピュータの間で分散され（distributed）てもよい。さらに、これらのコンポーネントは、そこに記憶された様々なデータ構造を有している様々なコンピュータ可読媒体から実行することが出来る。コンポーネントは、ローカルな、および／または、遠隔の処理で、例えば、１つまたは複数のデータパケット（例、ローカルシステム、分散システムにおいて、および／または、信号の方法で他のシステムを備えたインターネットのようなネットワーク全体にわたって、別のコンポーネントと相互作用している１つのコンポーネントからのデータ）を有している信号にしたがって、通信することが出来る。さらに、ここにおいて説明されたシステムのコンポーネントは、それに対して説明された様々な態様、目標、利益等を達成することを容易にするために、再び配列されることができる／さらなるコンポーネントによって補完されることができ、そして、当業者によって理解されるように、与えられた図に記載された正確な構成に制限されていない。
【００２９】
さらに、ここにおいて開示された実施形態に関連して説明された、様々な説明のための論理、論理ブロック、モジュール、回路、および／回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは他のプログラマブル論理コンポーネント、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェアコンポーネント、若しくはここに説明された機能を実行するために設計されたそれらのいずれの適切な組み合わせで、インプリメントあるいは実行されることができる。汎用プロセッサは、マイクロプロセッサであることができるが、代替として、プロセッサは、いずれの従来のプロセッサ、コントローラ、マイクロコントローラ、あるいはステートマシンであることができる。プロセッサはまた、コンピューティングデバイス(computing devices)の組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併用しての１つ以上のマイクロプロセッサ、あるいは任意の他のそのような構成、としてインプリメントされてもよい。さらに、少なくとも1つのプロセッサは、ここにおいて説明された、１つあるいは複数のステップ及び／または動作を実行することが操作可能な１つまたは複数のモジュールを備えることができる。
【００３０】
さらに、様々な態様は、モバイル通信デバイス(あるいは、例えばモバイルデバイス)に関連してここにおいて説明されている。モバイル通信デバイスはまた、システム、加入者ユニット、加入者局、移動局、モバイル、モバイルデバイス、セルラデバイス、マルチモードデバイス、遠隔局、遠隔端末、アクセス端末、ユーザ端末、ユーザエージェント、ユーザデバイス、あるいはユーザ機器、あるいは、同様なもの、と呼ばれることができる。加入者局は、セルラ電話、コードレス電話、セッション設定プロトコル(Session Initiation Protocol)（ＳＩＰ）電話、ワイヤレスローカルループ(wireless local loop)（ＷＬＬ）局、携帯情報端末(personal digital assistant)(ＰＤＡ)、無線接続機能を有しているハンドヘルドデバイス、若しくは、無線モデムに、あるいは、処理デバイスとの無線通信を容易にする同様のメカニズムに、接続された他の処理デバイスであることができる。
【００３１】
さらに、ここにおいて説明された様々な態様あるいは特徴は、スタンダードプログラミングおよび／または工学技術を使用して、方法、装置、あるいは製造品としてインプリメントされることができる。さらに、ここに開示された態様に関連して説明された方法あるいはアルゴリズムの、ステップおよび/または動作は、直接的にハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、あるいは２つの組み合わせにおいて、具現化されることができる。さらに、いくつかの主題において、方法あるいはアルゴリズムのステップ及び／または動作は、少なくとも１つのあるいはいずれの組み合わせのあるいはセットのコードおよび／インストラクションとしてマシン可読媒体及び／またはコンピュータ可読媒体上で存在することができ、そしてそれは、コンピュータプログラムプロダクトに組み込まれることができる。さらに、ここにおいて使用されている用語「製造品」は、いずれのコンピュータ可読デバイス、キャリア、あるいはメディアからアクセス可能なコンピュータプログラムを含有するように意図されている。例えば、コンピュータ可読メディアは、磁気保存デバイス（例、ハードディスク、フロッピー（登録商標）ディスク、磁気ストリップ(magnetic strips）…）に限定されず、光学ディスク（例、コンパクトディスク（ＣＤ）、デジタル汎用ディスク（ＤＶＤ）…）、スマートカード、フラッシュメモリデバイス（例、カード、スティック、キードライブ…）を含むことができる。さらに、ここにおいて説明された様々なストレージメディアは、情報を保存するための、１つまたは複数のデバイスおよび／またはマシン可読媒体を表すことができる。用語「マシン可読媒体(machine-readable medium)」は、限定されることなく、インストラクション（単数または複数）及び／またはデータを、保存し、含み、及び／または搬送することができる、無線チャネル及び様々な他の媒体を含むことができる。
【００３２】
前述に加え、用語「例示的な(exemplary)」は、例(example)、インスタンス(instance)、又は例証(illustration)として機能している、を意味するように、ここでは使用されている。ここに説明される、いずれの実施形態あるいは設計(design)も、「例示的な」であって、他の実施形態あるいは設計よりも、好ましいまたは有利であるとして、必ずしも解釈されない。むしろ、例示的な(exemplary)という用語は、具体的な方法でコンセプトを提示するように意図されている。本願で使用されているように、用語「あるいは(or)」は、排他的な「あるいは」よりもむしろ、包括的な「あるいは」を意味するように意図されている。すなわち、指定されていない限り、あるいは文脈から明瞭でない限り、「ＸはＡあるいはＢを利用する(X employs A or B)」は、自然な包括的置換のいずれも意味するように意図されている。すなわち、この例においては、ＸはＡを利用することができるであろう、あるいはＸはＢを利用することができるであろう、あるいは、ＸはＡとＢの両方を利用することができるであろう、すなわち、このステートメント「ＸはＡあるいはＢを使用する」は、前述の例のいずれかの下で満たされる。さらに、本願及び添付の特許請求項の範囲で使用されている冠詞「１つの(a)」及び「１つの（an）」は、単数の形に指示されるように、指定されていない限り、あるいは、文脈から明瞭ではない限り、「１つまたは複数の(one or more)」を意味するように一般的に解釈されるべきである。
【００３３】
ここにおいて使用されるように、用語「推論する」あるいは「推論」は、一般に、システム、環境、及び／または、イベント及び／またはデータを介してキャプチャされるように１セットの観察からのユーザ、を理由づけあるいは推論する処理を指す。推論は、特定の文脈あるいは動作を識別するように使用されることができ、あるいは、例えば状態に関する確立分布を生成することができる。推論は、蓋然論(probabilistic)であることができ、−すなわち、データ及びイベントの考慮に基づいた対象の状態に関する確立分布の計算である。推論はまた、１セットのイベント及び／またはデータから高レベルイベントを構成するために使用された技術を指すことができる。そのような推論は、イベントが時間的な近接性(close temporal proximity)において相関されているいないに関わらず、また、イベント及びデータが１つまたは複数のイベント及びデータソースから生じるかどうかに関わらず、1セットの観察されたイベント及び／または保存されたイベントデータから、新しいイベントあるいは動作の構成をもたらす。
【００３４】
図１を参照すると、ここにおいて開示された態様にしたがって、モバイルオペレーティングシステム（ＯＳ）１０４のためのイベント制御された連続データロギングを提供することができる例示的なシステム１００のブロック図が図示されている。ロギング装置１０２は、モバイルOS１０４についてのログデータ（例、ログコード、イベント及び／またはリクエスト−レスポンスデータパケット）の連続的な回収を開始し、終了するイベントを確立することができる。ロギング装置１０２およびモバイルＯＳ1０４は、ワイヤードインタフェース及び／またはワイヤレスインタフェースによってリンクされることができる。例えば、モバイルＯＳ１０４及びロギング装置１０２は、単独モバイルデバイスの近くにあることができ、なお、インタフェースは、そのようなデバイスのいずれの適切な通信バス構造であることができる。代替的に、ロギング装置は、遠隔エンティティ（例えば、無線ネットワークコントローラ(radio network controller)［ＲＮＣ］、あるいは同様なもののようなモバイルネットワークのコンポーネント）において、部分的にあるいは全体的に常駐することができる。したがって、モバイルＯＳ１０４とロギング装置との間のインタフェースは、また、ワイヤレスカプリング(wireless coupling)（例えば、モバイルデバイスとモバイル局との間の無線周波数(radio frequency)［ＲＦ］接続の方法で）あるいは、ワイヤード及びワイヤレスカプリング（例えば、基地局とＲＮＣとの間のワイヤードインタフェースに関連して、モバイルデバイスと基地局との間の無線接続）であることができるであろう。したがって、ロギング装置１０２は、モバイルデバイス上で、あるいはネットワーク上でインプリメントされることができ、そしてそれは、１つまたは複数のモバイル及び／または固定のデバイスのための遠隔通信を容易にする。
【００３５】
ロギング装置１０２は、モバイルデバイスＯＳ（１０４）においてログデータを回収するように構成されるロギングモジュール１０６を含むことができる。ログデータは、プロセッサ実行インストラクション、メモリにおける読み取り／書き込みのデータ、受信／送信システム（１０４）の構成データ、あるいは同様なもの、あるいはそれらのいずれの適切な組み合わせに関連することができる。ログデータは、ここで提供される文脈から、当業者によって知られているあるいは当技術分野において知られているように、モバイルＯＳ１０４のＧＰＳコンポーネント（図示されていない）によって取られた位置情報(position information)と、モバイルネットワークにおけるボイス呼び出しの設定(setup)あるいは解体(teardown)に関係しているデータ、ウェブブラウジングリソース（例、ＰＤＰコンテキスト）に関連づけられた実行記録（単数または複数）、あるいは、それらの、あるいは他のログデータの、いずれの適切な組み合わせ、を含むことができる。
【００３６】
ロギング装置１０２は、ロギングモジュール１０６によってログデータの回収の開始及び終了のために、それぞれ、開始トリガ（単数または複数）あるいは停止トリガ（単数または複数）、あるいは両方を確立する管理モジュール１０８をさらに含むことができる。より具体的には、管理モジュール１０８は、ログデータの連続的な回収を開始する（ロギングモジュールによって）第１のトリガ（例、開始トリガ）と、ログデータの回収を終了する第２のトリガ（例、停止トリガ）と、を確立するように構成されることができる。管理モジュール１０８は、また、下記で説明されているように、ログデータの回収を開始／終了するために、複数の開始及び停止トリガを確立することができる。
【００３７】
前述に加えて、ロギング装置１０２は、開始イベントが発生した場合に第1のトリガの実行を条件づけること、及び／または、停止イベントが発生した場合に第２のトリガの実行を条件づけること、ができる論理モジュールをさらに含むことができる。開始及び停止イベントは、モバイルＯＳ１０４の、アプリケーション、関数、リソース、あるいは処理、もしくはそれらの組み合わせ、に関連づけられた、いずれの適切な環境であることができる。そのような開始及び停止イベントは、モバイルＯＳ１０４の、あるいは、モバイルＯＳ１０４が常駐するモバイルデバイスに結合された遠隔ネットワークコンポーネントの（図示されていない）、アプリケーションあるいは処理によって決定できる。適切な開始あるいは停止イベントの例は、ボイス呼び出しの開始／終了、ウェブブラウザ、着メロ（登録商標）(ring-tone)、入ってくる呼び出し(incoming call)、ショートメッセージサービス（ＳＭＳ）メッセージ、インスタントメッセージ（ＩＭ）、あるいは、ＰＤＰコンテキストの、あるいはモバイルネットワークのあるいはモバイルデバイスのいずれの他の適切なリソースの、アクティブ化(activation of a PDP context or any other suitable resource of a mobile network or mobile device)、等を含むことができる。
【００３８】
説明したように、システム１００は、定義された開始イベントの発生に基づいてログデータの永続的回収、あるいは、定義された停止イベントの発生に基づいてログデータの回収の終了、あるいは両方を可能にする。したがって、システム１００は、ログデータの永続的な回収について、非常に柔軟な構成を提供することができる。いずれの検出可能な発生も、開始及び／または停止イベントとして識別され、そして、ログデータの、回収／回収の終了をトリガするために使用されることができる。より詳細に説明されるように、下記で、カテゴリ化されたログデータ回収は、加えられた回収の効率のよさ(added collection efficiency)を提供し、デバイスの電力(device power)を保護するために（例えば、インデクスコードに関係しているログデータのみを回収することによって）インプリメントされることができる。さらに、１つまたは複数の停止イベント及び／またはコードと、１つまたは複数の開始イベント及び／またはコードを関連づける論理がインプリメントされることができる。したがって、回収の開始及び回収の終了は、マルチプル開始／停止トリガが、マルチトリガアーキテクチャ(multi-trigger architecture)において早まったログ開始／停止(premature log initiation/termination)を防ぐために他のトリガから独立して機能することができるように、インデクスコード特有及び／またはイベント特有(code specific and/or event specific)であることもできる。
【００３９】
図２は、トリガイベントの発生を検出し、そして開示された主題の事柄のいくつかの態様にしたがって、ログの開始及び終了時間を記録することができるシステム２００を図示する。例えば、システム２００は、検出及びタイミングモジュール２０４とロギング装置２０２（例えば、上記で図１に関して説明されているように）を結合させることができる。ロギング装置は、ログデータの回収を開始し終了するトリガと、トリガを実行するイベントと、を確立することができる。検出及びタイミングモジュール２０４は、モバイルＯＳデータのログをとることを容易にするために、下記で説明されているように、そのようなイベント及び／またはトリガの発生を決定することができる。説明されているように、システム２００は、イベント制御されたデータロギングに影響を与え、そして、ログデータの回収とログデータ回収の終了とに関連づけられた、開始及び停止時間を供給することができる。
【００４０】
ロギング装置２０２は、第１のイベント（例えば、開始イベント、管理モジュール２１０によって第1のトリガに関連づけられている）が発生した場合にログデータの回収を開始する第１のトリガと、第２のイベント（例えば、停止イベント、管理モジュール２１０によって第２のトリガに関連づけられている）が発生した場合にログデータの回収を終了する第２のトリガと、を確立することができる。第１イベント及び第２のイベントの発生は、検出及びタイミングモジュール２０４によって決定されることができる。例えば、モジュール２０４は、モバイルＯＳによってログ情報の出力をモニタし、あらかじめ決定されたイベントに関係している情報の部分を識別することができる。ログ情報は、例えば、イベントに関連づけられた、アプリケーション、リソース、処理、あるいは関数、若しくはそれらの組み合わせ、の実行から、出力されることができる。例として、第１のイベントがワイヤレスアプリケーションプロトコル（ＷＡＰ)のインターネットブラウザへのアクセスに関連づけられる場合には、検出及びタイミングモジュール２０４は、第１のイベントの発生を識別するために、ＷＡＰブラウザの開始及び/または実行に関係しているログ情報をモニタすることができる。
【００４１】
回収されたログデータは、参照のためにデータストア(data store)２０８において保存されることができ、あるいは、モバイルＯＳあるいは遠隔エンティティ（例、ネットワークコントローラ）の診断関数(diagnostic function)に送信されることができる。データストア２０８は、揮発性メモリか不揮発性メモリかのいずれかであることができ、あるいは揮発性メモリと不揮発性メモリの両方を含むことができる、ということが理解されるであろう。例として、しかし限定されないが、不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、あるいはフラッシュメモリを含むことが出来る。揮発性メモリは、外部キャッシュメモリとして動作するランダムアクセスメモリ（ＲＡＭ）を含むことが出来る。例として、しかし限定されないが、ＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ(Synchlink DRAM)(ＳＬＤＲＡＭ)、およびダイレクトラムバスＲＡＭ(ＤＲＲＡＭ（登録商標）)、のような多くの形態で利用可能である。主題のシステムおよび方法のメモリ１４０８は、限定されることなしに、これらの及びいずれの他の適切なタイプのメモリを具備するように意図されている。
【００４２】
前述に加えて、ログデータが回収されるように、開始イベントが発生するとき及び／または第１のトリガが実行されるとき、検出及びタイミングモジュール２０４は、開示時間（例、ログデータの回収に関連づけられたタイムスタンプ）を記録することができる。開始時間は、回収されたログデータ(例、メモリの)に関連づけられることができる。さらに、検出及びタイミングモジュール２０４は、停止イベントが生じるときに停止時間を記録することができ、及び／または、第２のトリガは、停止イベントの発生により（あるいは、例えば、開始イベントの数と等しい停止イベントの数の発生により）、実行される。したがって、ログデータが回収されるときと回収が終了されるときの時間は、例えばデータストア２０８において、回収されたログデータで、記録され、保存されることができる。したがって、診断コンポーネント(図示されていない)は、回収されたログ情報にアクセスし、回収の開始時間及び停止時間を得て、そして、例えばサンプリングレートを使用することによって、回収されたログ情報に含まれた各ログ記録（例、ログコード、イベントコード、メモリアドレス、データの部分、リクエスト−レスポンスパケット、及び同様なもの）についての近似の時間(approximate time)を得ることができる。
【００４３】
さらなる態様にしたがって、下記でより詳細に説明され、検出及びタイミングモジュール２０４は、またインデクスの関数(a function of index)としても開始及び終了の時間を記録することができる（下記の図３参照）。モバイルＯＳ、デバイスおよび／またはモバイルネットワークの、１つまたは複数のアプリケーション、関数、処理、リソース、及び／または同様なもの、にしたがってログデータをカテゴリ化する、１つまたは複数のインデクスコードが定義されることができる。したがって、各インデクスコードは、インデクスコードに関連づけられた、少なくとも１つのアプリケーション／関数／処理／リソースのカテゴリ、に関連づけられたデータを識別し、区別することができる。例えば、ＧＰＳアプリケーション(モバイルＯＳ、デバイス、および/または、ネットワークの、アプリケーション/リソース)に関連づけられたログデータをカテゴリ化するインデクスコードが確立されることができる。したがって、ＧＰＳインデクスコードに関連づけられた開始イベントが発生し、検出及びタイミングモジュール２０４によって検出される場合、ＧＰＳアプリケーションにのみ関係しているデータの回収が開始されることができる。そのような時に、ＧＰＳログデータトリガ時間は、記録され、データストア２０８において保存されたＧＰＳログファイルに関連づけられることができる。ＧＰＳインデクスコードに関連づけられた停止イベントが後続的に発生する場合には、検出及びタイミングモジュール２０４は、そのようなイベントを決定し、ＧＰＳログデータの回収の終了についての停止時間を記録することができる。マルチプル開始及び停止イベントは、下記で詳細に説明されるように、ＧＰＳ特有データ（あるいは、例えば他のインデクス特有データ）の回収から独立して、生じることができる（そして、例えば、検出及びタイミングモジュール２０４によって決定され、タイムスタンプされることができる）。
【００４４】
図３は、少なくともシステムインデクスの関数として、モバイルオペレーティングシステムデータのインスタンスのログをとることができる、サンプルシステム３００を図示する。システム３００は、ここにおいて説明されているように、ログデータの回収を開始するための少なくとも１つの第１のトリガと、ログデータの回収を終了するための少なくとも１つの第２のトリガと、を確立することができるロギング装置３０２を含むことができる。さらに、各トリガは、１つまたは複数のあらかじめ決定されたイベントが発生した場合に実行されることができる。さらに、ロギング装置３０２は、データの回収を開始する開始イベントの数をトラッキングしつづけることができ、そして、データの回収を終了するために、時間通りに与えられた時点で等しい数の停止イベントを要求する。したがって、システム３００は、データ回収が単独の停止イベント（あるいは、開始イベントと比較してより少ない数の停止イベント）の発生によって早く終了されることなく、マルチプル開始イベントのために、データ回収を開始することができる。
【００４５】
システム３００はまた、インデクスパーシングモジュール３０４を含むことができる。インデクスパーシングモジュール３０４は、少なくとも１つのインデクスコードを利用し、そしてそれは、ログデータの回収あるいはログデータの回収の終了、若しくは両方を（例えば、ロギングモジュール３１０によって）、特定のインデクスコード及び／またはインデクスコードに関連づけられたカテゴリ、に関係しているそのようなデータに制限するために、モバイルＯＳのログデータをカテゴリ化する。例えば、ボイス呼び出し接続性に関連づけられた第１のインデクスコードは、ボイス呼び出し接続にのみ関係しているログデータに、ログデータの回収（及び、例えば、ログデータの回収の終了）を制限することができる。詳細な例として、適切な開始トリガの実行のときに、呼び出しの開始及び停止時間に関係しているボイス呼び出しログ情報(voice call log information pertaining to call start and stop times)、デバイスで開始される呼び出し(calls initiated at a device)、デバイスで受信された呼び出し(calls received at a device)、ドロップされた呼び出し(dropped calls)及び関連時間、非接続の呼び出し(un-connected calls)、等が回収されることができる。インデクスコードは、モバイルＯＳの、いずれの適切なアプリケーション、処理、関数、あるいはリソース、あるいは、それらの組み合わせ、に関係しているログデータを区別するために使用されることができるということが理解されるべきである。識別可能なログデータのさらなる例は、ＧＰＳロケーション情報、ネットワークベースのロケーション情報（例、アドバンスド順方向リンク(advanced forward link trilateration)［ＡＦＬＴ］、拡張順方向リンク三辺測量(enhanced forward link trilateration)［ＥＦＬＴ］、拡張型オブザーブド時間差(enhanced observed time difference)［ＥＯＴＤ］、あるいは同様なもの）、Ｅメール、ＳＭＳ、ＩＭ、テキストメッセージ、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、ＰＤＰコンテキスト使用(PDP context usage)、あるいは同様のモバイルデバイスあるいはネットワークアプリケーション／処理／リソース／関数の情報、あるいはそれらの組み合わせ、を含むことができる。
【００４６】
主題の開示のさらなる態様にしたがって、ロギング装置３０２のコンポーネントは、ログデータのインデクスベースの回収を、容易にすること及び／またはインプリメントすることができる。例えば、管理モジュール３０８は、少なくとも１つのインデクスコードを関連づけるように構成されることができ、そしてそれは、開始イベント（単数または複数）あるいは停止イベント（単数または複数）を用いて、モバイルＯＳ、デバイス、及び／またはネットワークの、アプリケーション、関数、処理、リソース等の関数として、モバイルＯＳログデータをカテゴリ化する。したがって、そのようなイベント（単数または複数）が発生した場合に、ロギングモジュール３１０は、すべてのログデータの代わりにインデクス特有ログデータの回収を回収/終了することができる。例として、イベントは、イベント（例、ボイス呼び出しの開始にしたがった、ボイス呼び出しログデータ）に関係しているインデクスと関連づけられることができる。したがって、イベント(例えばボイス呼び出し)が発生した場合に、このケースにおいて（例えば、少なくともイベントとのインデクスコードの関連づけによって、しかし、相関の、処理、リソース、等も含むことができる）イベントに関係していると定義されたインデクス（例、ボイス呼び出しログデータ）に相関されたログデータのみが回収／終了されるであろう。開始／停止イベント及びインデクスコードは、ここにおいて説明されているように相関されるべきモバイルＯＳのいくつかの関数あるいはアプリケーション等によって、論理的に関連している必要がないということは理解されるべきである。むしろ、いずれの適切なインデクスコードも、ここにおいて説明されるように、イベント制御されたインデクス特有ロギングに影響を与えるために、いずれのあらかじめ決定された開始あるいは停止イベントに関連づけられることができる。さらに、上記で、図２で説明されるように、インデクス特有ログデータの回収に関連づけられた開始時間は記録されることができ、また、停止時間も回収が終了されたときに、記録されることができる。
【００４７】
前述に加えて、システム３００は、インデクス特有開始トリガを実行する、インデクス特有開始イベントの数をトラッキングする参照モジュール３０６を含むことができる。参照モジュール３０６は、そのあとで、インデクス特有開始イベントの数に等しい、インデクス特有停止イベントの数が発生した場合に、第２の（例えば、停止）トリガの実行を条件づけることができる。第２のトリガは、停止イベント（単数または複数）に関連づけられたインデクスコードに関係しているログデータの実行のみを終了することができる。
【００４８】
以下の非制限の例は、参照モジュール３０６によって提供される少なくとも１つの利益を図示することができる。２つのインデクス特有開始イベント、すなわちボイス呼び出しのアクティブ化とモバイルデバイスにおいてＧＰＳアプリケーションの開始は、ＧＰＳロケーションインデクスコードに関連付けられており、両方は、ＧＰＳ特定ログデータを回収することができる開始トリガを実行するように設定される。さらに、２つのインデクス特有停止イベント、すなわち、ボイス呼び出しを終了することとＧＰＳアプリケーションを終了することが定義されており、それらはまた、ＧＰＳロケーションインデクスコード（例、ＧＰＳロケーションインデクスコードログデータのみの回収を終了する）にも関連づけられることができる。典型的には、ＧＰＳログデータ回収が処理中である場合の、開始イベントがＧＰＳログデータの回収をトリガすることができるかどうかの発生、そして、停止イベントがそのような回収の終了をトリガすることができるかどうかの発生、である。しかしながら、インデクス特有開始イベントに関連づけられたアプリケーションのうちのいずれかがアクティブであるかどうかに関わらず、ＧＰＳログデータの回収が継続することが望ましい可能性がある。説明されているように、両方の開始イベント、すなわち、ボイス呼び出し及びＧＰＳアプリケーションの開始、が発生する場合には、単独の後続停止イベント、例えばボイス呼び出しを終了すること、はＧＰＳログデータ回収の終了をトリガすることができるであろう。結果、望ましいログデータは、ＧＰＳアプリケーションの持続時間の間、回収されないであろう。
【００４９】
しかしながら、参照モジュール３０６は、回収をトリガする開始イベントと共通の（あるいは、例、関連の）インデクスコードを有するものとして、少なくとも同じ数の停止イベントが発生した場合にインデクス特有ログデータ回収の終了を条件づけることによって、前述の課題に取り組むことができる。したがって、ボイス呼び出し及びＧＰＳアプリケーションが同時にアクティブである場合には（例えば２つのＧＰＳインデクス開始イベント）、２つのＧＰＳインデクス停止イベントの発生は、ＧＰＳログデータの回収を終了することを必要とされることができるであろう。具体的には、この例の制約内で、ボイス呼び出し及びＧＰＳアプリケーションの両方は、ＧＰＳログデータ回収もまた終了されるように、終了される必要があるであろう（例えば、２つのＧＰＳ特有停止イベント）。したがって、参照モジュール３０６は、そのような回収を開始された、あるいはそうでなければ、終了することができるであろう、他のイベントの数から独立して、インデクス特有ログデータの回収のために提供することができる。
【００５０】
図４は、さらなる態様にしたがって、モバイルデバイスオペレーティングシステムのためのイベント制御されたモバイルロギングを提供する、例示的なモバイルデバイス４００を図示する。モバイルデバイス４００は、遠隔デバイス（図示されていない）を用いたボイス及び／またはデータ通信のためのメカニズムを提供することができ、また、１つまたは複数のイベントの発生に基づいて、デバイス（４００）のオペレーションに関連づけられたデータをさらに回収することができる。そのようなイベントは、ここにおいて説明されているものであってもよく、また、遠隔ソース（例、ネットワークサーバにおいて実行される診断アプリケーション）から受信された、ログデータ（例えば、１つまたは複数のインデクス特有ログデータのセットを含んでいる）を回収するリクエストを含むことができる。さらに、モバイルデバイス４００は、回収されたログ情報でそのようなデータについてのリクエストに対して応答することができる。したがって、モバイルデバイス４００は、診断、使用履歴、あるいは同様の目的のために、ログデータの回収を容易にすることができる。
【００５１】
モバイルデバイス４００は、信号（ボイス呼び出し、データトランスファ、診断あるいは使用履歴のログ情報ベースの開始及び停止トリガイベントの回収についてのリクエスト、等）を受信する少なくとも１つのアンテナ４０２（伝送受信機あるいは、入力インタフェースを備えているそのような受信機のグループ）と、受信された信号上で典型的な動作(例えば、フィルタにかけ、増幅し、ダウンコンバートする、等)を実行する受信機４０４を含む。具体的には、アンテナ４０２は、１つまたは複数の回収トリガイベントの発生に基づいて、ログデータ及び／またはインデクス特有ログデータを回収するリクエストを受信することができる。リクエストはまた、ここにおいて説明されているように、ログ回収の終了をトリガすることができる１つまたは複数の終了イベントを指定することができる。
【００５２】
アンテナ４０２および受信機４０４はまた、受信されたシンボルを復調し、それらを評価のためにプロセッサ４０８に提供することができるデモジュレータ４０６と結合されることができる。プロセッサ４０８は、アンテナ９０２あるいはモバイルデバイスのユーザ入力のインタフェース（図示されていない）によって受信された情報を分析すること、及び／または、送信機４２０による送信のために情報を生成すること、ができる。さらに、プロセッサ４０８は、モバイルデバイス４００の１つまたは複数のコンポーネント（４０６、４１０、４１２、４１４、４１６、４１８）を、制御すること及び／または参照することができる。さらに、プロセッサ４０８は、ここに説明されているように、モバイルＯＳログデータのイベント制御された連続的なロギングを提供する、１つまたは複数のモジュール、アプリケーション、あるいは同様なもの（４１２、４１４、４１６）を実行することができる。
【００５３】
モバイルデバイス４００は、プロセッサ４０８に操作的に結合される、または、送信され、受信され、及び同様なもの、であるべきデータを保存することができる、メモリ４１０を追加的に含むことができる。メモリ４１０は、イベントベースのトリガに応じてモバイルＯＳログデータを回収するために、ロギング装置４１２と関連した情報を保存することができる。ロギング装置４１２は、ここにおいて説明されているように、ログデータの回収を実行するために１つまたは複数のトリガと、インデクス特有ログデータを含んでいる、そして、ログデータ回収を終了する１つまたは複数のトリガと、を割り当てることができる。トリガは、モバイルデバイス４００の構成によってあらかじめ決定される、あるいは、遠隔アプリケーションから受信されたインストラクションによって（例えば、アンテナ４０２及び受信機４０４において）提供される、イベントと関連づけられることができる。さらに、ロギング装置４１２は、メモリ４１０において回収されたデータを保存し、適切なように、リクエストしているアプリーション(a requesting application)にログデータを提供することができる。
【００５４】
メモリ４１０はまた、インデクス特有ログデータの回収をトリガする及び／または回収を終了するイベントと、１つまたは複数のインデクスコードを関連づけることができる、インデクスモジュール４１４と結合されることができる。インデクスコードは、ここにおいて説明されているように、ログデータの回収（あるいは、例えば、回収の終了）を、ログコード、イベントコード、及び／または、特定のインデクスコード（例えば、モバイルデバイス４００の、あるいはモバイルネットワークの、あるいはそのようなデバイスのＯＳの、処理、アプリケーション、リソース、及び／または関数に関連づけられている）に関係しているリクエスト−レスポンスパケットあるいは同様なもの、に制限することができる。さらに、インデクスモジュール４１４は、開始トリガ／イベントの数をインデクスの関数としてトラッキングし、そして、インデクスごとに、同じ数の停止トリガ／イベントがインデクス特有ログデータの終了の前に生じることを必要とする。
【００５５】
さらに、メモリ４１０は、ロギング装置４１２によって利用されたロギングトリガに関連づけられたイベントの発生(例えば、ボイス呼び出し、ＷＡＰブラウザ、等の開始)を検出することができる、検出及びタイミングモジュール４１６を含むことができる。トリガに関連づけられたイベントは、モバイルデバイス４００のユーザによって指定され、デバイス（４００）のモバイルアプリケーションにおいてプリコンフィギュアされ(preconfigured)、あるいは、遠隔デバイスあるいはネットワークコンポーネント（例えば、モバイルネットワークRNCあるいは同様なもの）から受信されるかどうかにかかわらず、検出のために検出及びタイミングモジュール４１６において指定されることができる。そのようなイベントの発生は決定され、データの回収を開始するためにロギング装置４１２へ転送されることができる。いったん開始イベントが生じると(オプションでインデクスの関数として)、開始時間は記録されることができる。停止トリガを実行する停止イベント（あるいは、開始イベントに等しい、十分な数の停止イベント）が生じるときには、停止時間は記録されることができる。したがって、モバイルデバイス４００は、決定できるイベントの発生によりログ情報を記録し、開始及び停止時間を記録し、そして、そのような情報を、リクエストしているアプリケーション、コンポーネントあるいはデバイスに対して、適切なように、そのような情報を転送することができる。上記で図２に関して説明されているように、メモリ４１０が揮発性メモリか不揮発性メモリのいずれかであることができ、あるいは、揮発性メモリと不揮発性メモリの両方を含むことができるということは認識されるであろう。
【００５６】
モバイルデバイス４００は、さらに、モジュレータ４１８と、例えば、基地局、アクセスポイント、別のアクセス端末、遠隔エージェント、等に対して、（例えば、プロセッサ４０８とモジュレータ４１８によって）生成された信号を送信する送信機４２０と、を備えている。プロセッサ４０８から離れて図示されているが、第１のアプリケーション４１４及び／または第２のアプリケーション４１６は、プロセッサ４０８あるいは多数のプロセッサの一部であることができるということが、理解されるべきである。
【００５７】
図５は、１つまたは複数のモバイルＯＳのためのイベント制御されたログデータについて、容易にし、構成を提供し、及び／または、受信し消費することができる基地局５０２を含んでいる例示的なシステム５００を図示する（５０４）。システム５００は、複数の受信アンテナ５０６を通じて１つまたは複数のモバイルデバイス５０４から信号（単数または複数）を受信する受信機５１０と、送信アンテナ５０８を通じて１つまたは複数のモバイルデバイス５０４に対して送信する送信機５２２と、を備えた基地局５０２（例、アクセスポイント、…）を備えている。受信機５１０は、受信アンテナ５０６から情報を受信することができ、また、さらに、１つまたは複数のモバイルデバイスからリクエストされたログデータを受信する、信号レシピエント(a signal recipient)（示されていない）を備えることができる。さらに、受信機５１０は、受信された情報を復調するデモジュレータ５１２に操作的に関連づけられている。プロセッサ５１４は、デモジュレータ５１２によって提供された、復調されたシンボルを分析することができ、そして、シンボル復調のために最初にモジュレータ５２０に対して、そのあとで、送信機５２２に対して、送信されるべきデータを提供することができる。プロセッサ５１４は、ここにおいて説明されているような、安全な遠隔通信を容易にするおよび／または関与する診断アプリケーション５１８を保存することができるメモリ５１６にさらに結合する。
【００５８】
例えば、診断アプリケーション５１８は、モバイルネットワークに関連した診断機能、例えば、呼び出しドロップ、利用不可能な呼び出し、失われた呼び出し、失敗したデータネットワークインタフェース、及び／またはそのような状況あるいは同様な状況に関係している情報、あるいは、それらの組み合わせ、を決定すること、を実行するように構成されることができる。診断アプリケーション５１８は、そのようなデバイスからログデータをリクエストして、１つまたは複数のモバイルデバイス５０４に対し、クエリを送信することができる。さらに、診断アプリケーション５１８は、ここにおいて説明されているように、ログデータの回収をトリガするための、１つまたは複数のイベントと、および／または、ログデータの終了をトリガするための１つまたは複数のイベントと、を指定することができる。イベント（単数または複数）は、例えば、インデクスコード（単数または複数）に関係しているログデータの回収及び／または終了を制限するインデクスコード（単数または複数）、あるいは、開始及び終了イベントをペアにするイベントフラグ、を含むことができる。アプリケーション５１８は、例えば、受信し、受信されたログデータをコンパイルし、ネットワークの診断、管理、及び／または維持関数でログデータを消費し、そして、受信された及び／またはコンパイルされた情報をネットワークサービスプロバイダあるいはそれらのコンポーネント（例、サーバ、データベース、あるいはネットワークサービスプロ倍段の同様なもの）に対して転送すること、をさらに含むことができる。したがって、アプリケーション５１８は、モバイルデバイス（５０４）のログデータのイベント制御された回収、及び／または、ここにおいて記載された様々な動作および機能を実行することに関連したいずれの他の適切なアクティビティ、をリクエストし、構成することができる。
【００５９】
診断アプリケーション５１８はメモリ５１６及び／またはプロセッサ５１４において、全体として常駐することができる、ということもまた認識されるべきである。しかしながら、いくつかの実施形態によれば、診断アプリケーション５１８は、基地局５０２から部分的にあるいは完全に離れて、常駐し、遠隔ネットワークインタフェースを介して、プロセッサ５１４及び／またはメモリ５１６と通信することができる。例えば、診断アプリケーションは、ワイヤード及び／又はワイヤレスデータ接続（例、送信制御プロトコル、インターネットプロトコル［ＴＣＰＩＰ］接続）で、基地局５０２と通信的に結合されるモバイルネットワークの無線ネットワークコントローラ（ＲＮＣ）の近くに常駐することができる。したがって、主題の開示は、ここにおいて説明されるような、診断アプリケーション５１８あるいはそのようなアプリケーションに関連した関数（５１８）が基地局５０２において単独で実行されるように、制限されるべきではない。
【００６０】
ここにおいて説明された実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコードあるいはそれらのいずれの組み合わせで、インプリメントされることができるということは理解されるべきである。ハードウェアインプリメンテーションの場合、プロセッシングユニット(processing units)は、１つまたは複数の特定用途向け集積回路（ＡＳＩＣｓ）、デジタル信号プロセサ（ＤＳＰｓ）、デジタル信号処理デバイス（ＤＳＰＤｓ）、プログラム可能論理デバイス（ＰＬＤｓ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、ここにおいて説明された機能を実行するように設計された他の電子ユニット、あるいは、それらの組み合わせ内で、インプリメントされることができる。
【００６１】
実施形態がソフトウェア、ファームウェア、ミドルウェアあるいはマイクロコード、プログラムコードあるいはコードセグメントにおいてインプリメントされるとき、それらは、ストレージコンポーネントのようなマシン可読媒体において保存されることができる。コードセグメントは、プロシージャ(procedure)、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは、インストラクション、データ構造、あるいはプログラムステートメントのいずれの組み合わせ、を表すことができる。コードセグメントは、情報、データ、アーギュメント、パラメータ、あるいはメモリコンテンツを受け渡すこと及び／または受信することによって、別のコードセグメント、あるいはハードウェア回路に結合されることができる。情報、アーギュメント、パラメータ、データ等は、メモリ共有、メッセージパッシング(message passing)、トークンパッシング(token passing)、ネットワーク伝送、等を含んでいるいずれの適切な手段を使用して、受け渡され、転送され、あるいは送信されることができる。
【００６２】
ソフトウェアインプリメンテーションの場合、ここにおいて説明された技術は、ここにおいて説明された関数を実行するモジュール（例、プロシージャ、関数、等）を用いてインプリメントされることができる。ソフトウェアコードは、メモリユニットに保存され、プロセッサによって実行されることができる。メモリユニットは、プロセッサ内で、あるいは、プロセッサ外で、インプリメントされることができ、その場合には、それは、当技術分野において知られているような様々な手段を介してプロセッサに通信的に結合されることができる。
【００６３】
図６は、主題の開示の１つまたは複数の態様にしたがった、様々なペアのトリガイベント（６０２、６０４、６０６、６０８）についての例示的なログ６１０と回収されたログ６１２の図６００である。ここにおいて説明されるようにログデータ６１０の回収を開始及び／または終了するように定義された、トリガ（６０２、６０４、６０６、６０８）は、イベントフラグ（６１４、６１８）によってさらに相関されることができる。イベントフラグ（６１４、６１８）は、開始トリガ（６０２、６０６）を、マルチプル停止トリガ（６０４、６０８）の少なくとも１つと結合することができる。（例えば、ここにおいて説明されているように、開始トリガ６０２、６０６は、開始トリガ（単数または複数）６０２、６０６に関連づけられた１つまたは複数のインデクスコード６１６によって識別されたすべてのログデータ６１０あるいは１サブセットのログデータ（６１０）の連続的な回収を開始することができ、また、停止トリガ６０４、６０８は、すべてのログデータ６１０、あるいは停止トリガ（単数または複数）６０４、６０８に関連づけられたインデクスコード（単数または複数）６１６によって識別された１サブセットのログデータ（６１０）の回収を終了することができる）さらに、イベントフラグ（６１４、６１８）は、共通のイベントフラグ（６１４と６１８）を有する、開始及び停止トリガ（６０２、６０４、６０６、６０８）に関して、ログデータ６１０の終了を条件づけることを容易にすることができる。特に、ログデータ６１０の回収を終了する停止トリガ６０４、６０６の実行は、そのような回収を開始した開始トリガ６０２、６０６として、共通のイベントフラグ値（６１４、６１８）を有しているそのような停止トリガ６０６、６１０に関して、条件づけられることができる。言い換えると、関連の開始トリガ（６０２、６０６それぞれ）（例えば、共通イベントフラグ値６１４あるいは６１８によって関連する）によって開始されたデータ回収（６１２）がその停止トリガ（６０４、６０８）によって終了されるように、停止トリガ（６０４、６０８）は制限されることができる。
【００６４】
図６によって図示されるように、各トリガ（６０２、６０４、６０６、６０８）は、イベント（例えば、イベント１、イベント２、あるいはイベント３、そしてそれらは、ここにおいて示されているいずれのイベントも含むことができる）によってトリガされ、また、インデクスコード６１６とイベントフラグ６１４、６１８に関連づけられる。特に、回収トリガ１６０２は、イベント１が発生した場合に実行されるのに対して、回収トリガ２６０６は、イベント２が発生した場合に開始される。回収トリガ（６０２、６０６）の両方は、インデクス１のインデクスコード６１６に関連づけられており、したがって、インデクス１６１２にのみ関連づけられたログデータの回収（６１０）を開始し、他のインデクス（例えば、インデクス２、インデクス３、等）は、これらのトリガ（６０２、６０６）の実行の結果として無視される。
【００６５】
前述に加えて、回収トリガ（６０２、６０６）もまた、それぞれイベントフラグで関連づけられる。特に、回収トリガ１６０２は、イベントフラグ１６１０に関連づけられるが、回収トリガ２６０６は、イベントフラグ２６１８に関連づけられる。イベントフラグ６１４、６１８は、上記で説明されるように、１つまたは複数の終了トリガ(termination triggers)（６０４、６０８）と、回収トリガ（６０２、６０６）を相関することができる。図示されているように、終了トリガ１６０４は、イベントフラグ１ ６１４に関連づけられており、結果として、回収トリガ１６０２と相関／ペアにされる。したがって、終了トリガ１６０４の実行のときに、回収トリガ１６０２によって開始されたログデータの回収は終了されることができる。終了トリガ１６０４もインデクス１６１２に関連づけられており、インデクス１６１２に関係しているデータ回収のみ終了するであろう。したがって、インデクス１及びインデクス２に関連づけられた（例えば、適切なインデクスコード（単数または複数）６１６によって）、また、終了トリガ１６０４と共通のイベントフラグを有する、別の開始トリガ（６０２、６０６）がアクティブ化される場合には、そのときには、終了トリガ１６０４の実行は、インデクス１ログデータの回収を停止することができるが、インデクス２ログデータの回収は継続することができる。
【００６６】
終了トリガ１６０４に関して上記で説明されている同様な方法で、終了トリガ２６０８は、インデクスコード（６１６）に関連づけられ、また、イベントフラグ（イベントフラグ２、６１８）にも関連づけられることができる。したがって、終了トリガ２６０８は、イベントフラグ２ ６１８にも関連づけられた（例えば、このケースでは回収トリガ２６０６）、開始トリガによって開始された、また、インデクス１ ６１６に関係しているデータの回収を停止することができる。６０８で示されるように、終了トリガ２６０８は、イベント３が発生した場合に、実行される。
【００６７】
ログ６１０は、モバイルＯＳ（図示されていないが）の処理に関する、イベント発生のシーケンシャル表示(sequential indication)、リクエスト−レスポンスパケット、そして、インデクス特有ログコード、を提供する。イベントの発生は、ログデータの回収を開始及び／または終了するために、ここにおいて説明されているように、トリガ（６０２、６０４、６０６、６０８）をロギングすることに相関されることができる。例えば、ログ６１０の第１ラインはイベント１の発生である。結果として、回収トリガ1６０２は、開始されることができ、したがって、インデクス１に関連づけられたデータは、回収されたログ６１２に保存されることができる。さらなる実施形態にしたがって、イベントおよび／またはリクエスト−レスポンスパケット（図示されていない）もまた、インデクス特有ログコードから独立して、回収されたログ６１２内に含まれることができる。したがって、回収されたログ６１２はまた、イベント１（及び他のイベント）の発生を記録することができる。続いて、インデクス１ログデータは、ログ６１０において現れ、６１２で回収される。インデクス３ログデータは、ログデータの回収をインデクス１データに制限して、回収トリガ１６０２がインデクスコード１ ６１６に関連づけられているので、回収ログ６１２において回収されない。イベント２が生じ、回収トリガ２６０６は実行されることができる。回収トリガ２６０６もまた、インデクス１データ及び／またはイベントデータに、ログデータ（６１２）の回収を制限して、インデクスコード１ ６１６に関連づけられる。
【００６８】
イベント２がログ６１０で生じた後、イベント１が再び生じる。イベント１の再発生は、終了トリガ１６０４をトリガし（例えば、終了トリガ１６０４は、イベント１に関連づけられているので、また、回収トリガ１６０２は、すでに実行されているので）、そしてそれは、回収トリガ１６０２とインデクスコード１ ６１６とに関連づけられた、データの回収を終了することができる。しかしながら、回収トリガ２６０６は、終了トリガ１６０４よりも、異なるイベントフラグ（６１８）を有しているので、回収トリガ２６０６は、また、インデクス１に関連づけられたデータのログをとる。したがって、ログ６１０におけるイベント２の第１の発生の後で、回収トリガ２６０６は、回収されたログ６１２において、イベント１とインデクス１をまだ回収し、インデクス２を二度スキップし、インデクス１を回収し、そしてインデクス２をスキップする。イベント１の発生は、そのあとで回収され、トリガ１６０２を再び実行する。イベント２の発生は、そのあとで回収トリガ２６０６を開始する（オプションで、回収トリガ２６０６を２回目で開始する、そしてそれは、少なくとも同じ数の相関された終了トリガに関して回収トリガ２６０６のマルチプル実行によって回収されたデータの終了を条件づける参照モジュールによって記録されることができる）。イベント３の発生は、終了トリガ２６０８をトリガし、そしてそれは、回収トリガ２６０６に関連づけられたデータの回収を終了することができる（回収トリガ２６０６と終了トリガ２６０８が共通イベントフラグ６１８を共有するので）、あるいは、オプションで、ここに説明されているように、回収トリガ２６０６によってデータの回収を終了するように必要とされた終了トリガ２６０８の２つの実行のうちの１つに考慮されることができる。インデクス１ログコードに関して、データ回収を終了するために、イベント１は、終了トリガ１６０４を二回目に、再び生じるために必要とするであろう、また、オプションで、イベント３は、参照モジュールが、例えば多数の連続的な回収トリガ（６０２、６０６）の発生をトラッキングするかどうかによって、回収トリガ２６０６の第２の実行を終了するように再び生じることを必要とすることができるであろう。
【００６９】
前述の代替的な例として、開始及び停止トリガは、差異インデクスコード(difference index codes)に関連づけられることができ、したがって、異なるインデクス特有の、ログコード、イベント、及び／またはリクエストレスポンスパケットの、回収を回収／終了する。例えば、図６によって図示されているように、回収トリガ２６０６と、終了トリガ２６０８に関連づけられた、インデクスコード（６１６）は、インデクス１ログコードよりもむしろ、インデクス２ログコードを指定することができる。そのような場合、イベント２の発生は、インデクス１ログコードの代わりに、インデクス２ログコードの回収をトリガすることができる。さらに、イベント３の発生は、インデクス２ログコード（ＥＦ２６１８に相関された回収トリガ［６０６］によって開始されている）の回収を終了することができる。そのような方法で、２つの終了トリガ（６０４、６０８）の実行は、イベントフラグ（６１４、６１８）に関わらず、ペアではない回収トリガ（６０２、６０６）に干渉しないであろう、というのは、そのようなトリガは、異なるセットのデータを回収し、終了するように設定されているからである。具体的には、そのような場合、回収トリガ１６０２は、インデクス１ログコードのみの回収を開始するであろう、また、終了トリガ２６０８は、インデクス２ログコードのみの回収を終了するであろう（また、回収トリガ２６０６、そして終了トリガ１６０４に関して逆もしかりである）。図６がイベント制御されたデータ回収の２つの例以外を提供することが認識されるべきである。主題の開示内で具体的には明確に区切られていないが、主題の開示によって提供される文脈で当業者に知られている、多数の他の例もまた、熟考され、明示的にここにおいて組み込まれている。したがって、特許請求された主題の事柄は、ここにおいて開示される特定の実施形態によって制限されておらず、そのような実施形態は、明瞭性を提供するために説明としてのみ意図されている。
【００７０】
図７−１０を参照すると、モバイルＯＳデータ及びイベントのイベント制御されたロギングを提供することに関する方法が図示されている。説明の簡略化のために、一連の動作として、方法が示され、説明されているが、方法は、動作の順序によって制限されるものではないということが理解され、認識されるべきである。例えば、１つまたは複数の態様にしたがって、ここにおいて示され説明されていることから、いくつかの動作が異なる順序において、及び／または、他の動作と同時に、生じることができる。さらに、当業者は、方法が、状態図にあるような、１連の相互関連の状態あるいはイベントとして、代替的に表されることができるであろうということを理解し、認識するであろう。さらに、必ずしもすべての図示された動作が、１つまたは複数の態様にしたがって方法をインプリメントする必要がない。
【００７１】
図７は、モバイルオペレーティング環境におけるイベント制御されたロギングを提供するためのサンプル方法を図示する。７０２では、方法７００は、モバイルオペレーティング環境におけるログデータの回収を開始する開始トリガを確立することができる。開始トリガは、少なくとも、決定できるイベントあるいは複数イベントとモバイルオペレーティング環境のデータの回収を関連づける、電子論理のハードウェア、ソフトウェア、及び／またはファームウェアインプリメンテーションであることができる。そのようなデータは、モバイルオペレーティング環境のいずれの適切な機能あるいは処理を含むことができる（例えば、ボイス呼び出しを行うこと、ワイヤード及び／またはワイヤレスインタフェースで遠隔データネットワークとのデータ交換を行うこと、前述あるいは同様なものに関係している診断、維持、及び／または管理情報(diagnostic, maintenance and/or management information)を行うこと、等）。さらに、決定できるイベントは、モバイルのオペレーティング環境の処理によって検出され、識別されることができるいずれの適切なイベントであることができる。そのようなイベントは、ボイス呼び出しを開始することあるいは受信することと、着メロのようなモバイルデバイスアプリケーションを実行することと、着メロアプリケーションあるいは他のアプリケーションをダウンロード／インストールすることと、ＷＡＰブラウザあるいは同様なもの、アドレスブック、メッセージ履歴、Ｅメールあるいはメッセージ（例、ＳＭＳ、ＩＭ、テキストあるいは同様なもの）のアプリケーションを実行することと、遠隔データネットワーク（例えばインターネット）との接続を確立するためのＰＤＰコンテキストのようなモバイルデバイス及び／またはモバイルネットワークリソース、音声暗号化データのようなオーディオ情報をデコード／エンコードするためのボコーダ、にアクセスすることと、あるいは上記の、あるいは、同様の、いずれの適切な組み合わせ、を含むことが出来る。
【００７２】
７０４では、方法７００は、ログデータの回収を終了することができる停止トリガを確立することができる。例えば、停止トリガは、上記に説明されているように、開始トリガの実行によって開始されたログデータの回収を終了することができる。さらに、停止トリガはまた、決定できるイベントあるいは複数イベントの発生と、ログデータ回収を終了すること（いったん開始トリガによって開始されている）と関連づける、電子論理の、少なくとも１つの、ハードウェア、ソフトウェア及び／またはファームウェアインプリメンテーションであることができる。イベント（単数または複数）は、開始トリガによって使用されたイベントの後続発生であることができ、あるいは、開始トリガに関連していないイベントの発生であることができる。停止トリガの開始のときに、ログデータの回収は停止する。
【００７３】
特定の実施形態によると、ログ回収開始時間（単数または複数）および停止時間(単数または複数)（開始トリガおよび停止トリガの実行に、それぞれ、対応する）は、回収されたログデータファイル内に記録され、含まれることができる。さらなる実施形態にしたがって、開始トリガのマルチプル実行は、ログデータの終了のために、少なくとも同じ数の停止トリガ実行を必要とすることができる。したがって、マルチプル開始イベントは、データの回収を終了する単独の停止イベントなしに、ログデータの回収をトリガすることができる。
【００７４】
７０６では、方法７００は、そのようなトリガに相関された少なくとも１つの決定できるイベントが発生した場合に、開始トリガと停止トリガの実行を条件付けることができる。イベント（単数または複数）は、単独イベントのあるいは異なるイベントの、あるいは、両方の組み合わせの、後続発生であることができる。したがって、トリガと相関されたイベント（単数または複数）の発生は、ログデータ（例、すべてのログデータあるいは、イベント専用データ、あるいは、インデクスコードのような特定の識別子に関連づけられたデータ、等）の回収を開始するために開始トリガを実行することができる、あるいは、ログデータの回収を終了する停止トリガを実行することができる。したがって、方法７００は、決定できるイベントによって少なくとも終了されることができる、あるいは、１つまたは複数の決定できるイベントによって開始され終了されることの両方ができる、リクエスト−レスポンスパケットあるいはモバイル環境ログデータの連続ロギング(a continuous logging of mobile environment log data or request-response packets)を提供する。
【００７５】
図８は、１つまたは複数の態様にしたがって、インデクス特定ロギングとペアの開始／停止イベントとを提供するための例示的な方法を図示する。方法８００は、８０２で、ここにおいて説明されているように、モバイル環境のログデータの回収／終了のために、少なくとも１つの開始トリガと、少なくとも１つの停止トリガとを確立することができ、同様に、トリガを実行する決定できるイベントも確立することができる。８０４で、方法８００は、ログデータの回収及び／または終了を、特定のインデクスコードに関係しているそのログデータに、制限するために、少なくとも１つのインデクスコードを利用することができる。インデクスコードは、モバイルオペレーティングシステムあるいはモバイルネットワークの、いずれの適切なアプリケーション、処理、関数、あるいはリソース、あるいはそれらの組み合わせ、あるいはその同様なもの、に関連づけられたログデータを表すことができる（ここにおいてどこかに説明されている例は、参照番号８０４で利用されているインデクスコード（単数または複数）に適用可能であることができるであろう）。８０６では、少なくとも1つのインデクスコードは、開始トリガ及び／または停止トリガ、あるいは、マルチプル開始トリガ及び／または停止トリガのうちのいずれの組み合わせ、に関連づけられることができる。そのような関連づけは、開始トリガによって回収されたデータに、指定されたインデクスコード（単数または複数）に関係するログデータだけ(例えばログコード、イベント、および/またはリクエスト−レスポンスパケット)を含ませることができる。代替的に、関連づけは、停止トリガによるデータ回収に、インデクスコード（単数または複数）に関係しているデータのみに制限させることができ、他のデータ回収を続けることを可能にする。
【００７６】
８０８で、方法８００は、開始イベントを検出し、インデクス特有ロギングを実行することができる。開始イベントは、モバイルオペレーティングシステムによって決定できる、開始トリガ（単数または複数）及びインデクスコード（単数または複数）に関連づけられた、いずれの適切なイベントであることができる。８１０で、方法８００は、ここにおいて説明されているように、停止イベントの発生を検出し、特定のインデクスコードに関連づけられたログデータの回収を終了する関連づけられた停止トリガを実行する。８１２で、開始および／または停止イベントは、そのようなイベントに関連づけられた、あるいは、そのようなイベントに相関されたトリガ（単数または複数）に関連づけられた、インデクスコードの関数として、トラッキングされることができる。例えば、もし第１のインデクスコード（例えばＧＰＳアプリケーションに関する）に関連づけられた２つの開始イベントが生じる場合には、方法８００は、そのような発生をトラッキングすることができる。さらに、方法８００は、第１のインデクスコードにも関連づけられた、少なくとも１つの同じ数の停止イベントが発生した場合に、そのような開始イベントのため、回収されたデータの終了を条件づけることができる。したがって、ＧＰＳアプリケーションに関係しているログデータは、２つの適切な停止トリガが、ｆ  ＧＰＳアプリケーションの終了を指定して（例えば、第１インデクスコードとの関連づけによって）、生じるまで、回収されるであろう。
【００７７】
前述に加えて、方法８００は、８１４で、開始及び停止トリガをペアにすることができる。各ペアのトリガは、停止トリガの発生、及び／またはペアの開始トリガの実行の前のイベント、によってログデータ回収の終了を条件付けることができる。例えば、停止トリガは、停止トリガとペアの開始トリガによって開始されたデータの回収を終了することに制限されることができる。ペアリング(pairing)は、例えば、開始及び停止トリガに関連づけられたデータフラグを共通の値に設定することによって、達成されることができる。停止トリガが、ペアの開始トリガの実行の前に実行される場合には、説明されているように、いずれのログデータの同時の回収も、停止トリガの実行によって、影響されないままである。
【００７８】
８１６で、停止及び開始トリガは、トリガペアリング及びインデクスコードの両方の関数(a function of both trigger pairing and index code)として、実行されることができる。具体的に、開始トリガは、モバイルＯＳの特定のインデクスコードに関係しているデータの回収を開始することができ、なお、そのようなデータの回収は、開始トリガとペアになり、またインデクスコードに関連づけられる、停止トリガによってのみ終了する。マルチプルインデクスコードが開始トリガに関連づけられる場合には、そのときにはインデクス特有ログデータ回収（例、インデクスコードに関係する、コード、イベント及び／またはパケットの回収）は、開始トリガとペアになる停止トリガによって終了されることができ、そして、開始トリガとして、少なくとも１つの共通のインデクスコードと関連づけられる。説明されているように、方法８００は、モバイルＯＳログデータのインデクス特有ロギングを利用するために、そして、データログ回収の終了をペアにされたトリガ及びイベントに制限するように開始及び停止トリガをペアにするために、提供する。したがって、ここにおいて説明されているように、方法８００は、フレキシブルなイベント制御されたモバイルＯＳデータロギングを提供する。
【００７９】
図９は、１つまたは複数のインデクスコード（単数または複数）に関連づけられた開始イベントの発生に基づいて開始トリガを実行するために例示的な方法９００を図示する。９０２で、ここに説明されているように、方法９００は、開始トリガの発生を決定することができる。９０４では、方法９００は、開始トリガに関連づけられたデータ回収はすでにアクティブであるかどうかを決定することができ、もしデータ回収がアクティブである場合には、方法９００は、方法が終了する９０６に進むことができる。参照番号９０２において開始トリガによって指定されるログデータ回収がまだアクティブではない場合には、方法９００は９０８に進む。
【００８０】
９０８で、インデクスコードが開始トリガに関連づけられているかどうかの決定が行なわれる。いずれのインデクスコードも開始トリガに関連づけられていない場合には、方法９００は、９０６で終了することができる。９０８で、開始トリガに関連づけられたインデクスコード（例えば第１のインデクスコード）が識別される場合には、方法９００は、インデクスコードがログデータの同時回収にマッチするか(matches)どうかの決定が行なわれる９１０に進むことができる。言い換えると(Said differently)、参照番号９１０では、特定インデクスコードに関係しているログデータが既に回収されているかどうかの決定が行なわれている。もしそうであるならば、方法９００は、特定のインデクスコードに関連づけられたインデクスカウンタを増大する９１４に進み、そしてそれは１ずつ増大されることができる。特定のインデクスコードに関連づけられたログデータが同時に回収されていない場合には、方法９００は、９１２に進むことができる。
【００８１】
９１２で、方法９００は、特定のインデクスのためのロギングを開始できる。したがって、インデクスコードに関係しているモバイルＯＳデータのカテゴリに関連づけられたログデータは、ログファイルに連続的に回収される。ログデータは、モバイルデバイスの電源が切られるまで、あるいは停止トリガに関連したあらかじめ決定されたイベントが生じるまで、回収され続けるであろう（例えば、そのようなトリガは、インデクスコード特有のデータの回収を終了する、図１０参照）。方法９００は、そのあとで、９１４に進み、なお、特定のインデクスコードに関連づけられたインデクスカウンタが１つずつ増加されることができる（例えば、実行されたインデクスコードに関連づけられた開始トリガの数を識別するために）。続いて、方法９００は、より多くのインデクスが開始トリガに関連づけられているかどうかについて決定するために９０８に進むことができ、そうではない場合には、９０６で終了する。
【００８２】
図１０は、少なくとも１つのインデクスコード（単数または複数）に関連づけられた停止イベントの発生に基づいた停止トリガを実行するための例示的な方法１０００を図示する。１００２で、停止トリガの発生が決定されることができる。１００４で、停止トリガに関連づけられた１つまたは複数のインデクスコード、に関連づけられたデータ回収がアクティブかどうかに関しての決定が行なわれる。それらのインデクスコードに関係しているデータ回収どれもアクティブではない場合、方法１０００は、１００６に、そして最後に進むことができる。少なくとも１つのそのようなインデクスコードに関係しているデータ回収がアクティブな場合、方法１００は、１００４から１００８へと進むことができる。
【００８３】
１００８で、停止トリガに関連づけられたインデクスコード（単数または複数）が未処理かどうかに関しての決定が行なわれる。そのようなインデクスコード（単数または複数）が方法１０００によって処理されている場合、方法１０００は、１００６で終了することができる。より多くのインデクスが残る場合には、方法１０００は１０１０に移る。１０１０で、停止トリガに関連づけられた未処理のインデクスコードは、選択され、そして、未処理のインデクスコードがいずれの同時インデクス特有データログ回収にマッチするか(matches)どうかの決定が行なわれる。もしそうでなければ、方法１０００は、さらなる未処理のインデクスコードが停止トリガに関連づけられているかどうかを決定するために、１００８に戻ることができる。参照番号１０１０では、インデクスコードがログデータの同時回収にマッチする場合には、方法１０００は、インデクスコードに関連づけられたインデクスカウンタが減少される１０１２に進む。１０１４において、もし方法１０００がインデクスコードに関係しているデータ回収が終了している１０１６に進む場合には、１０１２で減少された後でインデクスコードに関連づけられたインデクスカウンタが０に等しいかどうかに関しての決定が行なわれる。参照番号１０１４で、減少された後、インデクスカウンタが０に等しくない場合には、方法１０００は、１００８に進み、上記で説明されているように進む。したがって、方法１０００は、もしアクティブインデクスコードが残っていない場合には、停止トリガと関連のインデクスコード（単数または複数）の発生を検出すること、アクティブインデクスコードの数をトラッキングすることと、そして、インデクスコード（単数または複数）に関連づけられたログデータの回収を終了することとのために、提供する。
【００８４】
図１１は、主題の開示の１つまたは複数の態様にしたがって、モバイルオペレーティング環境においてイベント制御されたロギングを提供することができるサンプルシステム１１００を図示する。システム１１００は、モバイルＯＳロギングシステムのための開始トリガ１１０２を確立するための少なくとも１つのモジュールを含むことができる。開始トリガは、モバイルＯＳログデータの回収を開始することができる。モバイルＯＳロギングシステムのための停止トリガ１１０４を確立するためのモジュールもまた含まれている。停止トリガは開始トリガによって開始されたログデータの回収を終了することができる。さらなる態様にしたがって、システム１１００は、さらにトリガ実行１１０６を条件付けるためのモジュールを含むことができる。具体的には、モジュール１１０６は、開始イベントおよび停止イベントが発生した場合に、それぞれ、開始トリガおよび停止トリガの実行を条件づけることができる。開始イベントおよび停止イベントは、モバイルＯＳの、いずれの適切な決定できる処理あるいはアプリケーションであることができる。イベント及び／またはトリガは、ログデータの回収及び／または終了を、モバイルＯＳあるいはモバイルネットワークの、アプリケーションのインデクスコード、関数、処理あるいはリソース、あるいはそれらの組み合わせ、に関係しているモバイルＯＳのログデータに、制限する１つまたは複数のインデクスコードに関連づけられることができる。さらに、マルチプルの開始及び停止トリガは、モジュール１１０２、１１０４、によって確立されることができ、そして、イベントフラグを含むことができる。共通イベントフラグ値は、開始トリガ（単数または複数）を停止トリガ（単数または複数）と、ペアにすることができるので、停止トリガの実行は、ペアの開始トリガ(paired start trigger)（そして、例えば共通インデクスコードを有する）によって開始されたデータの回収を終了のみする。したがって、システム１１００は、モバイルＯＳ／モバイルネットワークに関連づけられた、決定できるイベントに基づいてログデータの回収を制御するフレキシブルメカニズムを提供する。
【００８５】
上記で説明されてきたものは、１つまたは複数の態様の例を含む。実施形態を説明する目的のためにすべての考えられるだけのコンポーネントあるいは方法の組み合わせを記述することは、勿論、可能ではないが、当業者は、多くのさらなる組み合わせと並び替えが可能であることを認識することが出来る。したがって、説明された態様は、添付された特許請求項の範囲内に入る、すべてのそのような変更、修正、及び変形を包括するように意図されている。さらに、用語「含む(includes)」が、詳細な説明あるいは特許請求の範囲のいずれかにおいて使用されている範囲内において、そのような用語は、用語「備えている(comprising)」がトランジショナルワード(transitional word)として請求項において使用されるときに解釈されるように、用語「comprising(備えている)」と同様な方法で包括的であるように意図されている。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
モバイルデバイスのオペレーティングシステム（ＯＳ）のためのプログラマブルイベント制御された連続的なコードロギングを提供する方法であって、
モバイルＯＳの、ログコード、イベントコード、あるいは、リクエスト−レスポンスパケット（ログデータ）、の連続的な回収を開始する第１のトリガを確立することと；
前記ログデータの回収を終了する第２のトリガを確立することと；
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガの実行を条件づけることと、なお、前記開始イベントあるいは前記停止イベントの少なくとも１つは、モバイルデバイスのノンハードウェアの開始アップあるいはノンハードウェアのシャットダウンのオペレーションに関連づけられており、前記開始イベントと停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたものへのアクセスで、第２のアプリケーションあるいは処理を提供することと；
を備える方法。
［Ｃ２］
前記開始イベントの発生を検出し、前記第１のトリガを実行し、そして、ログ回収開始時間を記録すること、
前記停止イベントの発生を検出し、前記ログデータの回収が開始した場合には前記第２のトリガを実行し、そして、前記第２のトリガの実行に関連づけられた停止時間を記録すること、
のうちの少なくとも１つをさらに備えている、Ｃ１に記載の方法。
［Ｃ３］
前記回収、あるいは、前記回収の前記終了、あるいは両方を、前記モバイルＯＳのインデクスコードに関係しているログデータに、制限すること、をさらに備えており、なお、前記インデクスコードは、モバイルＯＳログデータをカテゴリ化する、Ｃ１に記載の方法。
［Ｃ４］
前記インデクスコードを前記開始イベントと関連づけること、
前記開始イベントの発生を検出すること、
前記第１のトリガを実行すること、
前記インデクスコードに関係しているログデータを回収することと、あるいは、前記インデクスコードに関係していないログデータを無視すること、
前記回収することあるいは前記無視することに関連づけられたインデクスコード開始時間を記録すること、
のうちの少なくとも１つ、をさらに備えているＣ３に記載の方法。
［Ｃ５］
前記インデクスコードを前記停止イベントと関連づけることと、
前記停止イベントの発生を決定することと、
前記インデクスコードに関連づけられたログデータの回収を終了するために、あるいは、前記インデクスコードに関係していないログデータの無視を終了するために、前記第２のトリガを実行することと、
前記第２のトリガを実行することに関連づけられたインデクスコード停止時間を記録することと、
のうち少なくとも１つ、をさらに備えているＣ３に記載の方法。
［Ｃ６］
マルチプル開始イベントが前記第１のトリガを実行することができることとマルチプル停止イベントが前記第２のトリガを実行することができることと、をさらに備えており、前記マルチプル開始及び停止イベントは、それぞれ１つまたは複数のインデクスコードに関連づけられている、Ｃ１に記載の方法。
［Ｃ７］
第１のインデクスコードに関連づけられた開始あるいは停止イベントの数をトラッキングすることと、前記第１のインデクスコードに関連づけられた同じ数の停止イベントが発生した場合に、前記第１のインデクスコードに関連づけられたログデータの回収を終了することを条件づけることと、をさらに備えているＣ６に記載の方法。
［Ｃ８］
前記第１のトリガを実行する開始イベントの数をトラッキングすることと、前記開始イベントの数と等しい停止イベントの数が発生した場合に、前記第２のトリガの実行を条件づけることと、をさらに備えているＣ３に記載の方法。
［Ｃ９］
マルチプル第２のトリガのうちの少なくとも１つで前記第１のトリガを結合するイベントフラグを定義づけることと、
前記イベントフラグによって前記第１のトリガで結合される前記マルチプル第２のトリガのうちの１つの実行に関して前記第１のトリガの結果として回収されたログデータの終了を条件づけることと、
をさらに備えているＣ１に記載の方法。
［Ｃ１０］
前記開始イベント及び前記停止イベントから独立してログデータの絶え間ない記録を開始する連続的なロギングトリガを提供することと、
前記連続的なロギングトリガによって開始されたログデータの回収のためのイベントトリガされたサンプリングレートとは異なった特定のサンプリングレート、をオプションで利用することと、
をさらに備えているＣ１に記載の方法。
［Ｃ１１］
前記第１のトリガによって開始されたログデータの回収のためのトリガされたサンプリングレートを使用すること、をさらに備えているＣ１に記載の方法。
［Ｃ１２］
モバイルオペレーティング環境のための連続的なイベント制御されたコードロギングを提供する装置であって、
モバイルデバイスＯＳにおいてログデータを連続的に回収するように構成されたロギングモジュールと；
前記ログデータの回収を開始する第１のトリガと、前記ログデータの回収を終了する第２のトリガと、を確立するように構成された管理モジュールと；
開始イベントが発生した場合に前記第１のトリガの実行と、停止イベントが発生した場合に前記第２のトリガの実行と、を条件づける論理モジュールと、なお、前記開始イベントあるいは前記停止イベントのうちの少なくとも１つは、モバイルデバイスのノンハードウェアの開始アップあるいはノンハードウェアのシャットダウンのオペレーションに関連づけられており、前記開始及び停止イベントは、モバイルＯＳあるいは遠隔ネットワークコンポーネント、あるいは両方、のアプリケーションあるいは処理によって決定でき、前記論理モジュールは、あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたもののアクセスで、第２のアプリケーションあるいは処理を提供する；
を備えている装置。
［Ｃ１３］
前記第１のトリガの実行のときにログ回収開始時間を記録するように、あるいは、前記第２のトリガの実行のときにログ回収停止時間を記録するように、あるいはその両方を記録するように、構成された検出及びタイミングモジュール、をさらに備えているＣ１２に記載の装置。
［Ｃ１４］
前記回収、あるいは、前記回収の前記終了、あるいは両方を、インデクスコードに関係しているログデータに、制限するために、モバイルＯＳデータをカテゴリ化する前記インデクスコードを利用するインデクスパーシングモジュール、をさらに備えているＣ１２に記載の装置。
［Ｃ１５］
前記管理モジュールは、前記開始イベントと前記インデクスコードを関連づけるようにさらに構成されている、
前記検出及びタイミングモジュールは、前記開始イベントの発生を決定するように構成されている、
前記論理モジュールは前記第１のトリガを実行する、
前記ロギングモジュールは、前記インデクスコードに関係しているログデータを回収するように、あるいは、前記インデクスコードに関係していないログデータを無視するように、構成されている、
前記検出及びタイミングモジュールは、前記インデクスコードに関係している前記ログデータの回収のときにインデクスコード開始時間を記録するように構成されている、
のうちの少なくとも１つである、Ｃ１４に記載の装置。
［Ｃ１６］
前記管理モジュールは、前記停止イベントと前記インデクスコードを関連づけるようにさらに構成されている、
前記検出及びタイミングモジュールは、前記停止イベントの発生を決定するように構成されている、
前記論理モジュールは、前記インデクスコードに関連づけられたログデータの回収を終了するために、前記第２のトリガを実行するように構成されている、
前記検出及びタイミングモジュールは、前記インデクスコードに関係している前記ログデータの回収の終了のときに、インデクスコード停止時間を記録するように構成されている、
のうち少なくとも１つ、をさらに備えているＣ１４に記載の装置。
［Ｃ１７］
前記論理モジュールは、マルチプル開始イベントが前記第１のトリガを実行することと、マルチプル停止イベントが前記第２のトリガを実行することと、ができるように、構成されており、前記マルチプル開始イベントとマルチプル停止イベントは、モバイルＯＳログデータをカテゴリ化する１つまたは複数のインデクスコードにそれぞれ関連づけられている、Ｃ１２に記載の装置。
［Ｃ１８］
第１のインデクスコードに関連づけられた、開始イベントと停止イベントの数をトラッキングする参照モジュール、をさらに備えており、前記論理モジュールは、前記開始イベントの数と等しい前記停止イベントの数が発生した場合に、前記第１のインデクスコードに関連づけられたログデータの終了を条件づける、Ｃ１７に記載の装置。
［Ｃ１９］
前記論理モジュールは、前記第１のトリガを実行する開始イベントの数をトラッキングし、前記の開始イベントの数と等しい、停止イベントの数が発生した場合に前記第２のトリガの実行を条件付ける、Ｃ１２に記載の装置。
［Ｃ２０］
前記管理モジュールは、マルチプル第２のトリガのうちの少なくとも１つと前記第１のトリガを結合するイベントフラグを定義するようにさらに構成されており、
前記論理モジュールは、前記イベントフラグによって前記第１のトリガに結合される前記マルチプル第２のトリガのうちの１つの実行に関して前記第１のトリガによって開始されたログデータの回収の終了を条件づける、
Ｃ１２に記載の装置。
［Ｃ２１］
前記ロギングモジュールが、いったん開始すると、前記開始イベント及び前記停止イベントから独立してログデータを記録する連続性トリガを含む；あるいは、
前記ロギングモジュールは、イベント制御されたロギングのために使用されるトリガされたサンプリングレートとは異なる、前記の連続ロギングトリガによって開始されたログデータの回収のための特定のサンプリングレートをオプションで利用する；
のうちの少なくとも１つである、Ｃ１２に記載の装置。
［Ｃ２２］
前記ロギングモジュールは、前記第１のトリガによって開始されたログデータの回収のためのトリガされたサンプリングレートを使用する、Ｃ１２に記載の装置。
［Ｃ２３］
モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成された少なくとも１つのプロセッサであって、
モバイルＯＳログデータの連続的な回収を開始する第１のトリガを確立するように構成された第１モジュールと；
前記ログデータの回収を終了する第２のトリガを確立するように構成された第２モジュールと；
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガの実行を条件付けるように構成された第３モジュールと、なお、前記開始イベントあるいは前記停止イベントのうちの少なくとも１つは、モバイルデバイスのノンハードウェア開始アップあるいはノンハードウェアのシャットダウンのオペレーションに関連づけられており、前記開始イベント及び停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたもののアクセスで、第２のアプリケーションあるいは処理を提供するように構成された第４モジュールと；
を備えている少なくとも１つのプロセッサ。
［Ｃ２４］
モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成された装置であって、
モバイルＯＳログデータの連続的な回収を開始する第１のトリガを確立するための手段と;
前記ログデータの回収を終了する第２のトリガを確立するための手段と;
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガとを条件づけるための手段と、なお、前記開始イベントあるいは前記停止イベントのうち少なくとも１つは、モバイルデバイスのノンハードウェア開始アップあるいはノンハードウェアシャットダウンのオペレーションに関連づけられており、前記開始イベント及び停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータの選択されたもののアクセスで、第２のアプリケーションあるいは処理を提供するための手段と；
を備えている装置。
［Ｃ２５］
コンピュータプログラムプロダクトであって、
モバイルデバイスＯＳのための、プログラマブルイベント制御された連続的なコードロギングを提供するように構成されたインストラクションを含んでいるコンピュータ可読媒体、を備えており、
前記コンピュータ可読媒体は、
モバイルＯＳログデータの連続的な回収を開始する第１のトリガをコンピュータに確立させるように構成された少なくとも１つのインストラクションと；
前記ログデータの回収を終了する第２のトリガをコンピュータに確立させるように構成された少なくとも１つのインストラクションと；
開始イベントと停止イベントが発生した場合に、それぞれ、前記第１のトリガと前記第２のトリガをコンピュータに条件づけさせるように構成された少なくとも１つのインストラクションと、なお、前記開始イベントあるいは前記停止イベントのうちの少なくとも１つは、モバイルデバイスのノンハードウェア開始アップあるいはノンハードウェアシャットダウンのオペレーションに関連づけられており、前記開始イベント及び停止イベントは、前記モバイルＯＳのアプリケーションあるいは処理によって決定できる；
あらかじめ決定されたサンプリング関数に基づいて選択され、前記の連続的に回収されたログデータのうちの選択されたものへのアクセスで、第２のアプリケーションあるいは処理をコンピュータに提供させるように構成された少なくとも１つのインストラクションと；
を備えている、
コンピュータプログラムプロダクト。
［Ｃ２６］
１つまたは複数のモバイルＯＳにおいてコンパイルされたイベント制御されたログデータを構成及び／または消費するための方法であって、
モバイルデバイスからログデータをリクエストして前記モバイルデバイスに対しクエリを送信すること;
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントを指定する構成パラメータを送信することと、なお、前記少なくとも１つのイベントの発生は、連続ログデータ回収の終了をトリガする；
前記モバイルデバイスから回収されたログデータを受信することと、なお、前記ログデータの連続的な回収は、あらかじめ決定されたサンプリング関数にしたがって選択に少なくとも部分的に基づいており、前記モバイルデバイスにおける前記ログデータの前記連続的な回収は、前記少なくとも１つのイベントが発生した場合に終了される；
を備えている方法。
［Ｃ２７］
前記構成パラメータで前記モバイルデバイスの前記ＯＳによって決定できる少なくとも１つの開始イベントにおいて指定すること、をさらに備えており、前記少なくとも１つの開始イベントの発生は、前記ログデータの回収をトリガするために使用されている、Ｃ２６に記載の方法。
［Ｃ２８］
インデクスコードを含んでいること、をさらに備えており、そしてそれは、前記少なくとも１つのイベントでモバイルＯＳのログデータをカテゴリ化しており、前記インデクスコードは、前記インデクスコードに関連づけられたログデータのカテゴリにログデータ回収の前記終了を制限する、Ｃ２６に記載の方法。
［Ｃ２９］
前記少なくとも１つのイベントと、ログデータの回収を開始する少なくとも１つの開始イベントとをペアにする構成パラメータを備えたイベントフラグを含んでいること、をさらに備えており、なお、前記イベントフラグは、前記少なくとも１つのイベントの発生を結果としてもたらすログデータ回収の終了を、前記少なくとも１つの開始イベントによって開始されるログデータに、制限する、Ｃ２６に記載の方法。
［Ｃ３０］
ネットワークの、診断的、管理あるいは維持関数、あるいはそれらの組み合わせ、と共に、前記受信されたログデータを使用すること、をさらに備えているＣ２６に記載の方法。
［Ｃ３１］
前記受信されたログデータを、ネットワークサービスプロバイダあるいはそのコンポーネントに転送すること、をさらに備えているＣ２６に記載の方法。
［Ｃ３２］
１つまたは複数のモバイルＯＳにおいてコンパイルされたイベント制御されたログデータをプログラムする及び／または消費する装置であって、
少なくとも１つのモバイルデバイスと通信的に結合されるトランシーバと；
ログデータをリクエストして前記少なくとも１つのモバイルデバイスに対してクエリを送信するように構成された、そして、少なくとも１つのイベントを識別しているパラメータを提供するように構成された、診断アプリケーションを含むメモリと、なお、前記少なくとも１つのイベントの発生は、前記ログデータの連続的な回収を少なくとも終了するために使用されることができ、連続的な回収のためのログデータの選択は、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいている；
前記診断アプリケーションを実行し、前記クエリ及び構成パラメータに関する情報を送信し受信するプロセッサと；
を備えている装置。
［Ｃ３３］
前記診断アプリケーションは、少なくとも１つの開始イベントを指定するようにさらに構成されており、前記少なくとも１つの開始イベントの発生は、前記ログデータの回収を開始するように使用されている、Ｃ３２に記載の装置。
［Ｃ３４］
前記診断アプリケーションは、前記少なくとも１つのイベントを備えた少なくとも１つのインデクスコードを含むように、さらに構成されており、前記少なくとも１つのインデクスコードは、ログデータの回収の前記終了を、前記ＯＳのインデクスコードに関係しているログデータに、制限する、Ｃ３２に記載の装置。
［Ｃ３５］
前記診断アプリケーションは、データの回収を開始する少なくとも１つの開始イベントと少なくとも１つのイベントとをペアにする前記構成パラメータ、を備えたイベントフラグを含むようにさらに構成されており、前記イベントフラグは、前記少なくとも1つのイベントの発生をもたらすログデータ回収の終了を、前記少なくとも１つの開始イベントによって開始されたログデータに、制限する、Ｃ３２に記載の装置。
［Ｃ３６］
前記診断アプリケーションは、ネットワークの、診断的、管理あるいは診断的維持関数、あるいはそれらの組み合わせと共に、前記受信されたログデータを使用するようにさらに構成されている、Ｃ３２に記載の装置。
［Ｃ３７］
前記診断アプリケーションは、ネットワークサービスプロバイダあるいはそのコンポーネントに対して前記受信されたログデータを転送するように、さらに構成されている、Ｃ３２に記載の装置。
［Ｃ３８］
１つまたは複数のモバイルＯＳにおいてコンパイルされた、イベント制御されたログデータを命令する及び／または消費するように構成された少なくとも１つのプロセッサであって、
モバイルデバイスからログデータをリクエストして前記モバイルデバイスに対しクエリを送信するように構成された第１のモジュールと；
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントを指定するように構成された第２のモジュールと、なお、前記少なくとも１つのイベントの発生は、連続的なログデータ回収の終了をトリガし、ログデータは、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいて前記連続的な回収のために選択される；
診断アプリケーションを実行し、前記クエリと構成パラメータに関する情報を送信し、受信するように構成された第３のモジュールと；
を備えている少なくとも１つのプロセッサ。
［Ｃ３９］
１つまたは複数のモバイルＯＳにおいてコンパイルされた、イベント制御されたログデータをプログラムする及び／または消費するように構成された装置であって、
モバイルデバイスからログデータをリクエストして前記モバイルデバイスに対してクエリを送信するように構成された第１のモジュールと；
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントを指定するように構成された第２のモジュールと、なお、前記少なくとも１つのイベントの発生は、連続的なログデータ回収の終了をトリガし、ログデータは、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいて前記連続的な回収のために選択される；
診断アプリケーションを実行し、前記クエリと構成パラメータに関する情報を送信し、受信するように構成された第３のモジュールと；
を備えている装置。
［Ｃ４０］
コンピュータプログラムプロダクトであって、
１つまたは複数のＯＳにおいてコンパイルされた、イベント制御されたログデータの構成及び／または消費を提供するように構成されたインストラクションを含んでいるコンピュータ可読媒体、を備えており、
前記コンピュータ可読媒体は、
モバイルデバイスからログデータをリクエストして前記モバイルデバイスに対しクエリをコンピュータに送信させるように構成された少なくとも１つのインストラクションと；
前記モバイルデバイスのＯＳによって決定できる少なくとも１つのイベントをコンピュータに指定させるように構成された少なくとも１つのインストラクションと、なお、前記少なくとも１つのイベントの発生は、連続的なログデータ回収の終了をトリガし、ログデータは、あらかじめ決定されたサンプリング関数に少なくとも部分的に基づいて前記連続的な回収のために選択される；
コンピュータに、診断アプリケーションを実行させ、前記クエリと構成パラメータに関する情報を送信させ、受信させるように構成された少なくとも１つのインストラクションと；
を備えている、コンピュータプログラムプロダクト。
【図１】
0005911949.tif 000002
【図２】
0005911949.tif 000003
【図３】
0005911949.tif 000004
【図４】
0005911949.tif 000005
【図５】
0005911949.tif 000006
【図６】
0005911949.tif 000007
【図７】
0005911949.tif 000008
【図８】
0005911949.tif 000009
【図９】
0005911949.tif 000010
【図１０】
0005911949.tif 000011
【図１１】
0005911949.tif 000012