(57)【要約】      （修正有）【課題】リアルタイム診断のために、ワイヤレスデバイスシステムに潜在的な問題が発生する時に診断エンジンを喚起して必要となる各種の診断情報を収集し、判明した不具合を迅速に診断し、診断レポートをワイヤレスデバイス上で保存することを図る。【解決手段】システムに常駐させている診断エンジンを正常時に待ち状態に置き、発生する各種のイベント等をトリガーに診断エンジンを喚起し、クリック・メソッドを用いて必要な情報を瞬間的に収集し、デルタ・メソッドを用いて軽量な診断情報を作成して記録する。リアルタイム性に影響する情報収集は、学習メソッドを用いて予め潜在的な問題の発生を判断する基準を学習して覚えさせ、リアルタイム環境において学習した基準を用いて潜在的な問題の発生を判明した後に詳細な情報を収集し、発生した不具合を診断して、診断サーバに送る。【選択図】図２
2007207213.tif 000002
【特許請求の範囲】
【請求項１】
少なくともひとつのプロセッサとメモリを搭載し、中に少なくともひとつのリアルタイム・オペレーティングシステムとひとつのソフトウェア・アプリケーションをもち、リアルタイムの環境においてワイヤレスデバイスを診断するエンジンと、ワイヤレスネットワーク又はケーブルやメモリカードを介して転送する診断結果を受けて分析する診断サーバおよび診断データベースから構成するワイヤレスデバイス診断システム。
【請求項２】
請求項１に記載するワイヤレスデバイス上でリアルタイム診断に適用する診断情報収集トリガー・メソッド。本メソッドは、システムの正常時に診断エンジンを寝た振り（スリープ）の状態にさせ、システムに診断情報となるイベント（例えば、キー入力、プロセスの起動・終了、関数の呼び出し、不具合の発生）が発生した時に発生したイベントがトリガーとなり、スリープしている診断エンジンを喚起して直ちに診断情報を収集する。
【請求項３】
請求項１に記載するワイヤレスデバイス上でリアルタイムの環境においてリアルタイム診断に必要となる情報を収集するクリック・メソッド。本メソッドは、本来のシステム操作（例えばキー入力、メモリの割付や開放）を従来の通りにさせ、診断に必要な情報（例えばイベント、割り付けられたメモリのアドレスとサイズ）をシステムのリアルタイム性に影響しないようにクリックという感覚で瞬間的に記録する。
【請求項４】
請求項１に記載するワイヤレスデバイス上でリアルタイムの環境においてリアルタイム診断に必要となる診断情報を差分方式によって収集するデルタ・メソッド。本メソッドは、ワイヤレスデバイス上でシステム・リソース（例えば、ＣＰＵ、メモリ）の使用を少なくするために診断情報データを差分（デルタ）方式によって収集してワイヤレスデバイス上で保存する。
【請求項５】
請求項１に記載するワイヤレスデバイス上でリアルタイムの環境において潜在的な不具合を検出する学習メソッド。本メソッドは、ワイヤレスデバイス上でリアルタイム性に影響する診断情報収集（例えばメモリリーク検出）に関して必要な知識（例えばメモリ割付のヒップ境界）を予めに学習しておき、システムのリアルタイム性に影響しないように潜在的な不具合を検出する。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、ワイヤレスデバイス上でリアルタイム環境においてリアルタイム診断に適用する診断情報収集メソッドと、システムの正常時は寝かせておきシステムに操作があった時又は不具合が発生した時に喚起させる診断エンジンと、診断エンジンを用いて診断情報の収集、不具合の検出と診断を行う機能を持つワイヤレスデバイスおよびワイヤレスデバイスのリアルタイム診断を実施するシステムに関するものである。
【背景技術】
【０００２】  近年、携帯電話上でさまざまなリアルタイム性の強いアプリケーションを実装して、数多くのアプリケーションがリアルタイムの環境で動作し、システムの正常時に多くの診断情報を従来の方式（例えば定期的な監視、トレース、ロギング）によって収集すれば、システムのリアルタイム性に影響し、操作の反応が遅くなったり、プロセス間の通信が混乱したり、さらにシステム全体がフリーズしてしまうことが起き得る。しかし、システムの利用状態を監視する時又はシステムに発生した不具合を検出する時に、ＣＰＵやメモリなどのシステムリソースを多く利用せず、システムのリアルタイム性に影響しない有効な診断情報を収集する手法がない。【０００３】  ワイヤレスデバイス上では、発生する不具合を診断するために不具合が発生するまでシステム情報、プロセス情報、関数の呼び出し、イベント、メモリ割付・開放等多くの診断情報収集する必要があるが、これらの情報を収集するに当たってシステムのパフォーマンスを低下させ、システムのリアルタイム性に影響し、システムに新たな障害を与えることになる。しかし、これらの診断情報がなければ、ワイヤレスデバイス上で発生した不具合を診断することが困難であり、診断情報を収集する際に特に頻度の高い関数の呼び出し、メモリ割付・開放に関する情報を収集する時にリアルタイム環境に適用できる診断情報収集手法が必要とされている。【０００４】  ワイヤレスデバイス上で不具合を正確に診断するために必要な情報を漏れなく収集し、システムリソースが限られているために、診断する必要のない情報を収集しない手法を採る必要がある。しかし、リアルタイム性要求の厳しい実行環境においてさまざまな不具合を診断するためにリアルタイム性に影響しない必要な診断情報が漏れなく容易に収集できるものではない。ワイヤレスデバイス上ですべての情報を集めると、システムのリアルタイム性に影響し、デバイス上で保存する場所もない。不具合を診断する際には、システム情報（例えばシステム・リソース、ＣＰＵ）やプロセス情報（例えばステータス、メモリの使用量）、プロセスの起動・終了と関数の呼び出しトレース等の情報が重要であり、これらの情報を収集するに有効な手法がなければ、診断に必要な情報が漏れてしまうか又は必要のない情報がメモリ上にあふれてしまう。リアルタイムシステムにおいて、システムリソースを多く使わずにどの情報又は何の時に発生した情報が必要であるかを判断することが容易ではない。【０００５】  また、メモリリーク等の不具合を検出する時に必要となる診断情報（例えばメモリを割付した時のメモリ・アドレス、割付したメモリサイズ）の収集に関連する動作（例えばメモリ割付・開放）が頻繁に発生するために選択せずにすべての情報を収集することがシステムのリアルタイム性に影響する。従って、頻繁に発生する情報を収集する時に有効的な手法が必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】  上述のように、現状では、ワイヤレスデバイス上で発生する様々な情報をシステムのリアルタイム性に影響しないように収集する手法と、収集した情報を限られたメモリ上で有効的に保存する手法がないために、システム上で発生した不具合の発生場所と原因を特定することが困難であり、同じ不具合が繰り返して多くの携帯電話上で発生し、携帯電話事業者と携帯電話メーカは発生した不具合に対して迅速な対応ができないので携帯電話利用者に十分に満足できるサービスを提供することができない。【０００７】  そこで、本発明は、ワイヤレスデバイス上でシステムのリアルタイム性に影響させないために診断情報を収集する手法と、収集した情報を有効的に保存する手法と、不具合が発生した時に不具合を診断するために収集した情報を利用する手法、これらの手法を実現したワイヤレスデバイスを提供することを目的とする。
【課題を解決するための手段】
【０００８】  本発明によるワイヤレスデバイスは、リアルタイム環境においてシステム上で起こされる不具合の診断エンジンを備えた携帯電話機であって、システムの正常時に診断に必要となる様々な情報を収集することができる診断エンジンを寝かせる手段と、収集すべき診断情報又はシステムの不具合が発生した時に寝かせている診断エンジンを喚起する手段と、起こした診断エンジンによってシステムの不具合を診断するために必要な情報を収集する手段と、収集した大量な情報を小さいメモリ上で保存する手段を有することを特徴とする。【０００９】  システムの正常時にシステム上で発生する情報を収集することができる診断エンジンを寝かせる手段は、診断エンジンを常時稼動することなく新しい情報が発生していなければ寝かせ、新しい情報が発生した時又はシステムに変化のあった時にトリガー・メソッド（トリガー技術）を用いて寝かせている診断エンジンを喚起する。【００１０】  ワイヤレスデバイス上では、各種イベント（例えばキーイベント、電話、データコール、ハードウェア割り込み）、プロセスの起動・終了、関数の呼出・退出、メモリの割付・開放、各種不具合（例えばメモリリーク、システムクラッシュ、システムフリーズ）の発生をトリガーにしてシステム上で寝かせている診断エンジンを喚起する。システムに発生する各種不具合は、システムリソース等のシステム情報とプロセス状態等のプロセス情報を収集するトリガーとなる。これらのトリガーを設けることによって、診断エンジンが常に稼動する必要がなく、収集する情報がなければ、診断エンジンを寝かせることができ、ワイヤレスデバイス上でシステムのリアルタイム性に影響せずにシステムのパフォーマンスを低下することを避ける。収集する情報があった時にトリガーによって寝かせている診断エンジンを直ちに喚起し、必要な診断情報を速やかに収集する。【００１１】  リアルタイムシステム上では、特にシステムの正常時に診断情報を集める際に多くのシステムリソース（ＣＰＵやメモリ）を使うことができない。起こした診断エンジンによって診断情報を収集する手段は、クリック・メソッド（クリック技術）を用いて、従来のシステム操作や動作にまったく影響せずにクリックという感覚で瞬間的に収集したい情報データを集める。クリック・メソッドは、従来の操作や動作を完全に従来の通りに完成させ、その操作や動作の外で数サイクルのアセンブラを用いて診断に必要な情報を一切に処理せずに簡単に記録する。【００１２】  ワイヤレスデバイス上でシステムやプロセスに関する情報のデータ量が膨大であり、必要のある時（例えば不具合が発生した際）に収集することにしても保存するに相当なメモリが必要となる。しかし、これらの情報は、時間軸上で内容的に変化のない部分が多く含まれている。例えば、システム上に数多くのプロセスが稼動しているが、携帯電話利用者にとって毎日携帯電話の利用パターンがあってプロセス情報が激しく変化することがない。量的に多く変化が少ない情報を収集する手法は、デルタ・メソッド（デルタ技術）を用いて情報のデルタ（差分）を取得して記録する。取得した差分情報データを用いて元の情報データを復元するためにその差分を算出した時に使用��た情報データのベースを情報データのデルタと一緒に保存する。【００１３】  ワイヤレスデバイス上でメモリリーク検出等の診断情報を収集するためにクリック・メソッドを用いても頻繁に従来の動作以外にＣＰＵ時間を使うのでリアルタイムシステムのパフォーマンスを低下させる恐れがある。この場合は、学習メソッド（学習機能）を用いて早い段階（例えば開発時）から必要な情報や知識を学習して寝かせている診断エンジンを起動させるための知識データを蓄積しておく。例えば、メモリリーク検出に対し、開発の段階において各種テストの過程でアプリケーションに必要なメモリの最大サイズを学習して学習結果を保存し、フィールド（利用者の手元）でリアルタイムの環境にそのアプリケーションが起動された後に割り付けられたメモリを開発段階で学習した最大サイズより越していなければ、診断情報を収集せずに診断エンジンを寝かせ、もし大幅（例えば  ２０％以上）に越えた場合に診断エンジンを起動させてメモリリークの情報を収集する。
【発明の効果】
【００１４】  以上のように、本発明によれば、ワイヤレスデバイス上でリアルタイムシステムにおいて発生する不具合の診断に必要なあらゆる情報収集を実施するためのシステムとして、ワイヤレスデバイスに診断エンジンを常駐させ、システムの正常時に診断エンジンを寝かせて待ち状態に置き、情報の収集が必要となった時にトリガー・メソッドを用いて寝かせている診断エンジンを喚起し、クリック・メソッドを用いて必要な情報のみを瞬間に記録し、データ量が多い情報に対してデルタ・メソッドを用いて情報データの差分のみを取得し、さらに頻繁に発生する情報に対して学習メソッドを用いて寝かせている診断エンジンを喚起させる基準データをワイヤレスデバイス出荷前の段階で学習して保存し、基準を超えていなければ診断エンジンを寝かせたままにし、基準を超えたら寝かせている診断エンジンを喚起して診断データを収集することによってシステムのリアルタイム性にまったく影響せずに有効な診断情報を収集することができるので発生した不具合をリアルタイムで自動的に診断でき、利用者からほとんどの場合に事業者のカスタマサポートに連絡する必要がなく、修理受付窓口に持ち込まれる必要もない。たとえ、事業者のカスタマサポートに連絡されたときでも、サポートに必要な診断情報が既に分かりやすく解析して診断サーバに報告されており、すぐにカスタマへ対応ができる。また、ソフトウェア上のバグが見つかった場合にバグに関する詳細なリアルタイムシステムの診断情報が収集され分類されて分かりやすい形に解析されており、メーカが即座に的確にバグを判断することができ、バグを直ちに直すことができる。事業者とメーカにとって、カスタマとプロダクトのサポートコストを著しく削減することができる。
【発明を実施するための最良の形態】
【００１５】  以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明によるワイヤレスデバイスのリアルタイム性に適用する診断情報収集手法を実現することができるシステムの構成を示すブロック図である。【００１６】  図１に示す診断システムにおいて、ワイヤレスデバイス０１に診断エンジン０２、情報源０３と診断情報０４を実装して、診断エンジン０２が情報源０３から必要な情報を収集して診断情報０４として保存し、発生した不具合に対して収集した診断情報０４を利用して診断を行い、診断の結果を診断サーバ０５と診断データベース０６に対してワイヤレスネットワーク０７経由で報告する。【００１７】  図２は、ワイヤレスデバイスのリアルタイム環境において診断情報収集の実施を示すブロック図である。診断エンジン０２は、システムが正常時に待ち状態にあり、情報源０３から新しい情報が発生した時にトリガー・メソッドを用いて発生した情報がトリガーとなって喚起され、情報収集モジュール１０を起動する。情報源０３はワイヤレスデバイス上のリアルタイムシステムであり、この情報源０３から発生する情報は様々で各種イベント、プロセスの起動・終了、関数の呼出・退出、ハードウェア割込、電話、データコール、プロセス状態、システム状態、各種不具合等がある。トリガーの実施形態は、ハードウェア割込み、システム・シグナル、メッセージ、従来システムコールの入れ替え、標準関数の入れ替え、バイナリレベルでのアセンブラ命令挿入がある。【００１８】  情報収集モジュール１０は、クリック・メソッドを用いてアセンブラで書かれる短いプログラムであり、発生した情報を速やかに収集して診断情報０４として記録する。クリック・メソッドは、トリガーのかかった後に従来の操作が途切れることがなく、上記のトリガー実施形態の中において軽い情報収集モジュール１０を挿入することによって実施される。【００１９】  収集する情報のデータ量が大きい場合は、デルタ・メソッドを用いて情報のデルタを作成して診断情報０４として保存する。デルタを作成する際に使用した元の情報データは、予め（例えばシステムが起動した後）保存してある。また、小さい診断レポートを作成するにもデルタ・メソッドを用いる。同じワイヤレスデバイス上では、診断レポートでも類似性があり、デルタ・メソッドを用いて小さい診断レポートを作成することができる。【００２０】  デルタ・メソッドは、バイナリ・レベルで二つのバージョン（ある時期の情報データと最新の情報データ）を用いて情報データの差分を計算して実施する。ワイヤレスデバイス上では、診断情報を収集する際にリアルタイム性に影響を与えないために時間のかかる複雑な差分計算アルゴリズムを使用しない。
【実施例】
【００２１】  図３は、ワイヤレスデバイス上でリアルタイム環境における診断情報収集を実施する手順の一例を示す説明図である。図３に示している例では、ワイヤレスデバイス上で情報源０３より情報発生２０のあった時にシステムの従来操作２１を続行させると共に情報を収集するモジュール起動２２後に診断情報収集２３を行い、デルタ作成２４を通して、診断情報記録２５を完了する。情報のデータ量が少ない場合は、デルタ作成２４を必要とせずに収集した情報を直接診断情報記録２５を通して保存する。【００２２】  情報収集のトリガーは、情報源から発生するイベント、プロセスの起動・終了、関数の呼出・退出、システムの不具合と指定する。トリガーのかかった時に収集すべき情報をクリック・メソッドで実現した情報収集モジュールによって漏れなく迅速に収集する。トリガーのかからなかった情報に対して診断に必要としないのでタッチしない。情報収集のクリック・メソッドは、情報源の外でアセンブラの軽い情報収集モジュールをシステムに提供して実施される。トリガーとクリック・メソッドの実施はシステムのソースコード変更とシステムのイメージ再ビルドを必要としない。デルタ・メソッドは、すべての情報収集に使用するのでなく、システム情報の収集と診断レポートの作成に用いられ、一つの共通なデルタ作成モジュールによって実現される。【００２３】  ワイヤレスデバイス上でリアルタイムのシステムにおいて頻繁に繰り返す操作（例えばメモリ割付と開放）に対して診断情報を収集する時にシステムのパフォーマンスを低下する恐れがある。この場合には、このような診断情報を常に収集することを避けて、潜在的な問題（例えば潜在的なメモリリーク）が発生する基準を予め学習しておき、その学習した基準を用いて潜在的な問題を検出して警告することができる。ここではメモリリークを例にして説明する。潜在的なメモリリークを判断するために、アプリケーションの中でダイナミックに割り付けられるメモリの状況を把握して学習する。学習の中でアプリケーションに潜在的なメモリリーク判断に必要な情報として例えば最大のメモリサイズを学習した基準として覚えさせる。この学習は、開発段階又は出荷テストの段階で行う。デバイスが出荷された後にも学習することができる。学習した基準データはフラッシュ上で保存する。リアルタイムの環境でアプリケーションが走る際に、メモリ割付があった時にメモリリークの検出と同じように情報記録を行い、潜在的なメモリリークを診断する時に保存している学習した基準データを用いてメモリリークが潜在的に発生したかどうかを判断する。発生したことを判断する時に潜在的なメモリリーク警告を行い、そのプロセスに対して詳細なメモリリーク情報を収集する。情報収集が終ったら診断レポートを作成して保存し、このプロセスに対してメモリリーク情報を繰り返して収集することをしない。【００２４】  図４はワイヤレスデバイス上で学習機能を用いた診断情報収集を実装する一例を示す説明図である。図４に示している例では、予め（例えば開発段階）学習３０を行い、潜在的な問題の発生を判断する基準３１を学習して覚える。このワイヤレスデバイスを出荷した後に従来操作２１の中で学習した基準３���を用いて潜在的な問題が発生したかどうかの基準判断３２を行う。潜在的な問題の発生が判明した後に情報収集のモジュール起動２２によって診断情報収集２３と診断情報記録２５の操作を繰り返して発見した潜在的問題を診断するに必要な情報を収集する。
【図面の簡単な説明】
【００２５】
【図１】本発明によるワイヤレスデバイスのリアルタイム性に適用する診断情報収集手法を実現することができる診断システムの構成を示すブロック図である。
【図２】ワイヤレスデバイスのリアルタイム環境における診断情報収集を実施する一例を示すブロック図である。
【図３】ワイヤレスデバイス上でリアルタイム環境における診断情報収集を実施する手順の一例を示す説明図である。
【図４】ワイヤレスデバイス上で学習機能を用いた診断情報収集を実装する一例を示す説明図である。
【符号の説明】
【００２６】０１  ワイヤレスデバイス（携帯電話、携帯端末）
０２  診断エンジン
０３  情報源
０４  診断情報
０５  診断サーバ
０６  診断データベース
０７  ワイヤレスネットワーク
１０  情報収集モジュール
２０  情報発生
２１  従来操作
２２  モジュール起動
２３  診断情報収集
２４  デルタ作成
２５  診断情報記録
３０  学習
３１  学習した基準
３２  基準判断
【図１】
2007207213.tif 000003
【図２】
2007207213.tif 000004
【図３】
2007207213.tif 000005
【図４】
2007207213.tif 000006