(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る障害発生箇所診断システムの概略構成図である。
図1において、DG(依存関係グラフ)推定サーバ1は、携帯端末3が利用したコンポーネントが出力したネットワークログを収集し、該ネットワークログの共起関係に基づいて、当該携帯端末3が利用したコンポーネント間の動作の依存関係及び当該利用時刻を表すDGを作成する。DG管理データベース2は、DG推定サーバ1が作成したDGを保存する。障害発生箇所特定用端末4は、障害が発生した携帯端末3に関するDGをDG管理データベース2から取得し、該取得したDGに基づいて当該携帯端末3の障害発生箇所を調べる。
【0015】
携帯端末3は、メール送受信やインターネット6に接続するサーバ7を利用する際に、インターネットサービスプロバイダ(ISP)や通信事業者が設けたゲートウェイ網5を介して通信する。ゲートウェイ網5は、携帯端末3に関するネットワークログを全て記録する。DG推定サーバ1は、ゲートウェイ網5に接続し、ゲートウェイ網5から携帯端末3に関するネットワークログを収集する。又、DG推定サーバ1は、インターネット6に接続し、サーバ7から携帯端末3に関するネットワークログを収集する。
【0016】
図2は、
図1に示すDG推定サーバ1の構成図である。
図2において、制御部101は、DG推定サーバ1内の各部を制御する。制御部101は、タイマ部102から一定のタイマ時間毎にタイマ割込み命令を受信する。制御部101は、タイマ部102からタイマ割込み命令を受信すると、ネットワークログ取得指示部103へネットワークログ取得要求を送信する。ネットワークログ取得指示部103は、制御部101からネットワークログ取得要求を受信すると、ネットワーク接続部104を介してゲートウェイ網5及びサーバ7にネットワークログ要求を送信する。
【0017】
ネットワーク接続部104は、ゲートウェイ網5及びサーバ7からネットワークログ要求に対する応答データを受信すると、ネットワークログ取得応答受信部105に該応答データを送信する。制御部101は、ネットワークログ管理部106に対して、ネットワークログ取得応答受信部105が受信した応答データを保存するように命令する。ネットワークログ管理部106は、ネットワークログ取得応答受信部105が受信した応答データを、ネットワークログ保存部107に保存する。
【0018】
ゲートウェイ網5からのネットワークログ要求に対する応答データは、ゲートウェイ網5が保存する「携帯端末3に関するネットワークログ」を有する。サーバ7からのネットワークログ要求に対する応答データは、サーバ7が出力した「携帯端末3に関するネットワークログ」を有する。あるコンポーネントが出力した「ある携帯端末3に関するネットワークログ」は、当該コンポーネントと当該携帯端末3内のコンポーネント間の通信の記録を有する。従って、ネットワークログを参照することによって、当該ネットワークログを出力したコンポーネントと、当該携帯端末3内のコンポーネントとの間の動作が依存関係にあることが分かる。
【0019】
ネットワークログ保存部107は、携帯端末3に関するネットワークログ109を、コンポーネント識別子(コンポーネントID)108に関連付けて記憶する。コンポーネントID108は、ネットワークログ109を出力したコンポーネントを特定する識別情報である。
【0020】
DG推定処理部110は、ネットワークログ保存部107に保存されているネットワークログ109を用いて、DGを作成する。DG推定サーバ1は、作成したDGをDG送信部111によりDG管理データベース2へ送信する。
【0021】
ネットワークログ取得要求受信部112は、ネットワーク接続部104を介して、障害発生箇所特定用端末4からネットワークログ取得要求を受信する。このネットワークログ取得要求は、携帯端末3の障害発生直前にDGを構成していたコンポーネントが、該障害発生時に出力したログを要求するものである。ネットワークログ取得要求受信部112は、該ネットワークログ取得要求を受信すると、ネットワークログ管理部106に対して、該当するネットワークログ109を要求する。
【0022】
ネットワークログ取得応答送信部113は、ネットワークログ管理部106がネットワークログ取得要求受信部112からの要求に応じて検索した結果であるネットワークログ109を、ネットワーク接続部104を介して障害発生箇所特定用端末4へ送信する。
【0023】
ここで、
図8を参照して、DG推定処理部110がDGを作成する処理を説明する。
携帯端末では移動したりすることによって、DGが時間的に変化することがあり得る。このため、本実施形態では、
図8に示されるように、定期的に、取得したネットワークログ109を用いてDGを作成する。
図8において、まず時刻t1では、時刻t1に取得された「ある一の携帯端末3(対象携帯端末3)に関するネットワークログ109」を用い、時刻t1における対象携帯端末3に関するDG#1を作成する。このDG#1では、コンポーネント1とコンポーネント2間の動作、及び、コンポーネント2とコンポーネント3間の動作が共に依存関係にあることが示されている。
【0024】
次いで、時刻t2では、時刻t2に取得された対象携帯端末3に関するネットワークログ109を用い、時刻t2における対象携帯端末3に関するDG#2を作成する。このDG#2では、コンポーネント1とコンポーネント2間の動作、及び、コンポーネント2とコンポーネント4間の動作が共に依存関係にあることが示されている。
【0025】
次いで、時刻t3では、時刻t3に取得された対象携帯端末3に関するネットワークログ109を用い、時刻t3における対象携帯端末3に関するDG#3を作成する。このDG#3では、コンポーネント1とコンポーネント2間の動作、及び、コンポーネント2とコンポーネント3間の動作が共に依存関係にあることが示されている。
【0026】
なお、コンポーネントのネットワークログの共起関係に基づいて、どのコンポーネントとどのコンポーネント間の動作が依存関係にあるかを検出することができる。具体的には、同一時刻に取得した対象携帯端末3に関するネットワークログ109のうち、同一文字列を含むネットワークログ109は、共起関係にあると判断する。例えば、携帯端末3がVoIP通信を行った場合、共起関係にある複数のネットワークログ109は、文字列「SIP」や文字列「Call」を含むことが予想される。従って、文字列「SIP」や文字列「Call」を含むネットワークログ109を出力した複数のコンポーネント間の動作は依存関係にあると検出する。
【0027】
なお、コンポーネント間の動作の依存関係の順番は、一定期間である「時間窓」を用いて判断する。時間窓は、あるコンポーネントからログが出力されてから、そのログと共起するログが存在するか否かを判断するための時間帯である。
図11を参照して、コンポーネント間の動作の依存関係の順番を判断する方法を説明する。
(1)まず、コンポーネント1からログが出力される。このログは文字列「SIP」、「Call」を有する。
(2)次いで、コンポーネント1のログ出力時点から時間窓内で、コンポーネント2からログが出力される。このコンポーネント2のログは、コンポーネント1のログと同じ文字列「SIP」、「Call」を有する。これにより、コンポーネント1のログとコンポーネント2のログ間に共起関係があると判断し、コンポーネント1とコンポーネント2間に依存関係があると判断する。
(3)次いで、コンポーネント2のログ出力時点から時間窓内で、コンポーネント3からログが出力される。このコンポーネント3のログがコンポーネント2のログと同じ文字列「SIP」、「Call」を有する場合には、コンポーネント2のログとコンポーネント3のログ間に共起関係があると判断し、コンポーネント2とコンポーネント3間に依存関係があると判断する。
(4)コンポーネント2のログとコンポーネント3のログ間に共起関係がある場合において、コンポーネント3のログ出力時点から時間窓内で、他のコンポーネントからログが出力されなかったときには、コンポーネント間のログの共起が終了したと判断する。これにより、当該DGは、コンポーネント1とコンポーネント2間の動作に依存関係があり、次いでコンポーネント2とコンポーネント3間の動作に依存関係にあるという、依存関係の順番「コンポーネント1→コンポーネント2→コンポーネント3」を有するものとなる。
【0028】
図3は、
図1に示すDG管理データベース2の構成図である。
図3において、制御部201は、DG管理データベース2内の各部を制御する。DG受信部202は、ネットワーク接続部203を介して、DG推定サーバ1からDGを受信する。制御部201は、DG管理部204に対して、DG受信部202が受信したDGを保存するように命令する。DG管理部204は、DG受信部202が受信したDGをDG保存部205に保存する。
【0029】
DG保存部205は、各DG207に対して、コンポーネント間の動作の依存関係が同じであるDGに対して同じDG識別子(DG−ID)206を付与する。
図8において、時刻t1に作成されたDG#1と時刻t3に作成されたDG#3とは、コンポーネント1,2,3間の動作の依存関係が同じである。これにより、DG保存部205は、DG#1とDG#3に対して、同じDG−ID(パターンP1)を付与する。一方、DG保存部205は、時刻t2に作成されたDG#2に対しては、DG#1,#3とは異なるDG−ID(パターンP2)を付与する。
【0030】
又、DG保存部205は、各DG207に対して、どの携帯端末3に関するDGであるのかを識別するために、携帯端末の識別子(MS−ID)208を付与する。
【0031】
DG取得要求受信部209は、ネットワーク接続部203を介して、障害発生箇所特定用端末4からDG取得要求を受信する。制御部201は、DG取得要求受信部209が受信したDG取得要求をDG管理部204へ送って、DGを検索するように命令する。
【0032】
DG取得要求は、障害が発生した携帯端末3の障害発生直前の端末ログを有する。DG管理部204は、DG取得要求に含まれる端末ログの時刻と、端末ログに含まれる文字列とを用いて、DG保存部205から、DG207を検索する。この検索条件は、障害が発生した携帯端末3のMS−ID208を有するDG207のうち、当該携帯端末3の障害発生直前に作成され、且つ、当該携帯端末3の端末ログに含まれる文字列を含むものである。
図9の例では、障害が発生した携帯端末3の障害発生直前の端末ログが有する文字列「INVITE sip:bob@server001.comSIP/2.0」を検索キーにして、DG保存部205内のDG207を検索している。
【0033】
DG取得応答送信部210は、障害発生箇所特定用端末4からのDG取得要求に対する応答として、DG管理部204が検索した結果のDG207を送信する。
【0034】
図4は、
図1に示す携帯端末3の構成図である。
図4において、制御部301は、携帯端末3内の各部を制御する。制御部301は、障害発生箇所特定用情報収集部302に対して、障害発生箇所特定用情報を収集するように命令する。障害発生箇所特定用情報収集部302は、携帯端末3内の各コンポーネントの動作を表すログを収集する。
図4の例では、携帯端末3内のコンポーネントとして、アプリプログラム実行部303−1〜3、アプリプログラム304−1〜3、ネットワーク接続部305−1〜3、及びデータ変換部306−1〜3がある。障害発生箇所特定用情報収集部302は、収集したログを障害発生箇所特定用情報保存部307に、障害発生箇所特定用情報308として保存する。
【0035】
USB接続検知部310は、障害発生箇所特定用端末4がUSBケーブルでUSB接続部309に接続されたことを検知して制御部301に通知する。障害発生箇所特定用情報取得要求受信部311は、障害発生箇所特定用端末4から障害発生箇所特定用情報取得要求を受信して制御部301に通知する。制御部301は、障害発生箇所特定用端末4からの障害発生箇所特定用情報取得要求に応じて、障害発生箇所特定用情報保存部307から障害発生箇所特定用情報308を取得する。制御部301は、取得した障害発生箇所特定用情報308を障害発生箇所特定用情報取得応答送信部312により障害発生箇所特定用端末4へ送信する。障害発生箇所特定用情報308は、当該携帯端末3のMS−ID及びログ(端末ログ)を有する。
【0036】
図5は、
図1に示す障害発生箇所特定用端末4の構成図である。
図5において、制御部401は、障害発生箇所特定用端末4内の各部を制御する。USB接続検知部403は、携帯端末3(障害携帯端末3)がUSBケーブルでUSB接続部402に接続されたことを検知して制御部401に通知する。これにより、制御部401は、障害発生箇所特定用情報取得要求送信部404に対して、障害携帯端末3から障害発生箇所特定用情報を取得するように命令する。
【0037】
障害発生箇所特定用情報取得要求送信部404は、制御部401からの命令に従って、USB接続部402を介して障害携帯端末3に障害発生箇所特定用情報取得要求を送信する。障害発生箇所特定用情報取得応答受信部405は、USB接続部402を介して障害携帯端末3から障害発生箇所特定用情報を受信する。障害発生箇所特定用情報保存部406は、障害発生箇所特定用情報取得応答受信部405が障害携帯端末3から受信した障害発生箇所特定用情報408を、障害携帯端末3のMS−ID407に関連付けて記憶する。
【0038】
制御部401は、DG取得要求送信部409に対して、障害携帯端末3に関するDGを取得するように命令する。DG取得要求送信部409は、制御部401からの命令に従って、ネットワーク接続部410を介してDG取得要求をDG管理データベース2へ送信する。DG取得要求は、障害携帯端末3のMS−ID407、及びMS−ID407に関連付けて障害発生箇所特定用情報保存部406に記憶されている障害発生箇所特定用情報408(端末ログ)を有する。
【0039】
DG取得応答受信部411は、ネットワーク接続部410を介して、DG管理データベース2から、障害携帯端末3に関する障害発生直前のDGを受信する。DG保存部412は、DG取得応答受信部411が受信した障害携帯端末3に関する障害発生直前のDG413を記憶する。
【0040】
障害発生箇所特定部414は、DG保存部412内の障害携帯端末3に関する障害発生直前のDG413と、障害発生箇所特定用情報保存部406内の障害携帯端末3に関する障害発生箇所特定用情報408とを用いて、障害携帯端末3の障害発生箇所を調べる。障害診断結果表示部415は、障害発生箇所特定部414の診断結果(障害携帯端末3の障害発生箇所の調査結果等)を画面上に表示する。
【0041】
ここで、
図10を参照して、障害発生箇所特定部414が障害携帯端末3の障害発生箇所を調べる処理を説明する。
図10において、障害携帯端末3に関する障害発生直前のDGは、DG管理データベース2から取得される。障害発生箇所特定部414は、障害携帯端末3に関する障害発生直前のDGと、障害携帯端末3に関する障害発生箇所特定用情報(端末ログ)と、DGに含まれるネットワーク側のコンポーネントが障害発生時に出力したネットワークログとを用いて、障害携帯端末3の障害発生箇所を絞り込む。具体的には、端末ログとネットワークログにおいて、障害発生直前のDGに含まれるコンポーネントからのログが、障害発生時に存在するか否かを調べ、ログが存在するコンポーネントとログが存在しないコンポーネントとの境界を検出する。
【0042】
図10の例では、障害発生直前のDGは、コンポーネント1とコンポーネント2間の動作、及び、コンポーネント2とコンポーネント4間の動作が共に依存関係にあることを示す。そして、端末ログには、コンポーネント1のログとコンポーネント2のログとは存在するが、コンポーネント4のログは存在しない。従って、コンポーネント2とコンポーネント4間で何らかの障害が発生したと判定することができる。
【0043】
例えば、携帯端末3がVoIP通信を行っている途中で障害が発生した場合に、端末ログには、携帯端末3内のVoIP通信アプリプログラム実行部(コンポーネント1)のログ「VoIP App Start」、及び、携帯電話ネットワーク接続部(コンポーネント2)のログ「CDMA isActivity:false」が含まれているが、ネットワーク側のSIPサーバ(コンポーネント4)のログは含まれていなかったとする。この場合、携帯端末3ではアプリケーションが正常に動作しているが、携帯電話ネットワーク用のアンテナの先のどこかで障害が発生したと判定することができる。
【0044】
図6、
図7は、本実施形態に係る障害発生箇所診断方法のシーケンスチャートである。まず、
図6を参照して、DGを作成する手順を説明する。
【0045】
ステップS1−1:利用者が携帯端末3を用いてインターネットを利用する。例えば、メールを送受信したり、ブラウジングしたり、携帯端末3内のアプリケーションがインターネットに接続したりする。
【0046】
ステップS1−2:ゲートウェイ網5は、携帯端末3がインターネットを利用した際に各コンポーネントが出力するネットワークログを収集して保持する。
【0047】
ステップS1−3:DG推定サーバ1は、定期的に、ゲートウェイ網5及びインターネット上のサーバ7に対して、ネットワークログを取得するための要求を送信する。
【0048】
ステップS1−4:ゲートウェイ網5及びインターネット上のサーバ7は、DG推定サーバ1からのネットワークログ取得要求に応じて、ネットワークログをDG推定サーバ1へ送信する。
【0049】
ステップS1−5:DG推定サーバ1は、取得したネットワークログを用いてDGを作成する。
【0050】
ステップS1−6:DG推定サーバ1は、作成したDGをDG管理データベース2へ送信する。
【0051】
ステップS1−7:DG管理データベース2は、DG推定サーバ1から受信したDGを保存する。
【0052】
ステップS1−8:携帯端末3は、定期的に、障害発生箇所特定用情報を収集する。例えば、VoIP通信を行っている場合には、VoIP通信アプリプログラム実行部のログ(例えば、文字列「INVITE sip:bob@server001.com SIP/2.0」)を収集する。
【0053】
次に、
図7を参照して、障害が発生した携帯端末3の障害発生箇所を調べる手順を説明する。
【0054】
ステップS2−1:利用者は、障害が発生した携帯端末3を販売店に持ち込む。
【0055】
ステップS2−2:販売店の店員は、携帯端末3をUSBケーブルで障害発生箇所特定用端末4に接続する。
【0056】
ステップS2−3:障害発生箇所特定用端末4は、携帯端末3がUSB接続されたことを検出すると、該携帯端末3に対して障害発生箇所特定用情報取得要求を送信する。
【0057】
ステップS2−4:携帯端末3は、障害発生箇所特定用情報取得要求を受信すると、自身の携帯端末ID(MS−ID)と障害発生箇所特定用情報を障害発生箇所特定用端末4へ送信する。
【0058】
ステップS2−5:障害発生箇所特定用端末4は、携帯端末3が障害を発生する直前の障害発生箇所特定用情報から、エラーログを出力したコンポーネントに関する文字列を抽出する。
【0059】
ステップS2−6:障害発生箇所特定用端末4は、DG取得要求をDG管理データベース2へ送信する。DG取得要求は、携帯端末3のMS−IDとステップS2−5で抽出した文字列と障害発生時刻を示す情報(例えば、携帯端末3が障害を発生する直前の端末ログの時刻)とを有する。
【0060】
ステップS2−7:DG管理データベース2は、DG取得要求に含まれるMS−ID、文字列および障害発生時刻を示す情報を用いて、自身が有するDGの中から、障害発生直前に作成され、且つ、該MS−IDに関するDGであって該文字列を有するDGを検索する。
【0061】
ステップS2−8:DG管理データベース2は、ステップS2−7の検索結果であるDGを障害発生箇所特定用端末4へ送信する。
【0062】
ステップS2−9:障害発生箇所特定用端末4は、DG管理データベース2から受信したDGに含まれるネットワーク側のコンポーネントが障害発生時に出力したネットワークログを取得するために、DG推定サーバ1へネットワークログ取得要求を送信する。
【0063】
ステップS2−10:DG推定サーバ1は、障害発生箇所特定用端末4からのネットワークログ取得要求に応じて該当するネットワークログを検索し、検索結果であるネットワークログを障害発生箇所特定用端末4に送信する。この検索結果のネットワークログは、ステップS2−7の検索結果であるDGに含まれるネットワーク側のコンポーネントが障害発生時に出力したネットワークログである。
【0064】
ステップS2−11:障害発生箇所特定用端末4は、DG管理データベース2から受信した障害発生直前のDGと、携帯端末3から受信した障害発生箇所特定用情報(障害発生時の端末ログ)と、DG推定サーバ1から受信した障害発生時のネットワークログとを用いて、障害携帯端末3の障害発生箇所を調べる。
【0065】
ステップS2−12:障害発生箇所特定用端末4は、ステップS2−11の調査結果である障害発生箇所を画面上に表示する。これにより、店員は、その表示内容に基づいて、携帯端末3の障害発生箇所を判断することができる。
【0066】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
また、
図6、
図7に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、障害発生箇所診断処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0067】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。