(57)【要約】【課題】通信網に対する負荷が大きい又は負荷が大きくなることが想定されるアプリケーションプログラムを特定する。【解決手段】U-Plane監視部１０３は、アプリケーションプログラム１０２が起動されてから最初のタイミングで送信されたU-Plane信号（パケット）、又は、アプリケーションプログラム１０２の実行中に通信が発生せずに一定期間が経過した後の最初のタイミングで送信されたU-Plane信号（パケット）を取得する。C-Plane信号は、アプリケーションプログラム１０２の起動後の最初のパケット又は一定期間の無通信状態後の最初のパケットに先立って送信される可能性が高い。そのため、上記のような所定の条件を満たした後の最初のタイミングで送信されたU-Plane信号を検出した場合、その検出タイミングを、アプリケーションプログラム１０２がC-Plane信号を送信したタイミングとみなすことができる。【選択図】図１
2015171012.tif 000002
【特許請求の範囲】
【請求項１】
所定の条件を満たした後の最初のタイミングにおいて、アプリケーションプログラムに記述された手順に従って送信されたパケットを取得する取得手段と、
前記取得手段によって前記パケットが取得されたパケット取得時刻と、前記アプリケーションプログラムを識別するための識別情報とを記憶する記憶手段と
を備えることを特徴とする通信装置。
【請求項２】
前記取得手段は、前記アプリケーションプログラムが起動されてから最初のタイミングで送信されたパケットを取得する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記取得手段は、前記アプリケーションプログラムの実行中に通信が発生せずに一定期間が経過した後の最初のタイミングで送信されたパケットを取得する
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記所定の条件を満たした後の最初のタイミングに送信されるパケットに先立って送信される制御信号の送信時刻を検出する検出手段と、
前記取得手段によって前記パケットが取得されたパケット取得時刻と、前記検出手段によって検出された送信時刻とを比較し、前記送信時刻に対応する前記パケット取得時刻を抽出する比較手段と
を備えることを特徴とする請求項１〜３のいずれか１項に記載の通信装置。
【請求項５】
制御信号が送信されるときにアプリケーションプログラムとミドルウェア又はオペレーションシステムとの間で用いられたプロセスＩＤを取得するプロセスＩＤ取得手段と、
前記アプリケーションプログラムが用いたプロセスＩＤとそのアプリケーションプログラムを識別するための識別情報とを特定する特定手段と、
前記特定手段が特定したプロセスＩＤ及び識別情報の組のうち、前記プロセスＩＤ取得手段によって取得されたプロセスＩＤを含むプロセスＩＤ及び識別情報の組を、前記制御信号が送信された時刻と対応付けて記憶する記憶手段と
を備えることを特徴とする通信装置。
【請求項６】
請求項１〜５のいずれか１項に記載の通信装置によって記憶された内容を収集する収集手段と、
前記収集手段によって収集された内容に対して統計的処理を施す統計手段と
を備えることを特徴とする分析装置。
【請求項７】
請求項１〜５のいずれか１項に記載の通信装置と、
請求項６記載の分析装置と
を備えることを特徴とする通信システム。
【請求項８】
所定の条件を満たした後の最初のタイミングにおいて、アプリケーションプログラムに記述された手順に従って送信されたパケットを取得する取得ステップと、
前記取得ステップによって前記パケットが取得されたパケット取得時刻と、前記アプリケーションプログラムを識別するための識別情報とを記憶する記憶ステップと、
前記記憶ステップによって記憶された内容を収集する収集ステップと、
前記収集ステップによって収集された内容に対して統計的処理を施す統計ステップと
を備えることを特徴とする分析方法。
【請求項９】
制御信号が送信されるときにアプリケーションプログラムとミドルウェア又はオペレーションシステムとの間で用いられたプロセスＩＤを取得するプロセスＩＤ取得ステップと、
前記アプリケーションプログラムが用いたプロセスＩＤとそのアプリケーションプログラムを識別するための識別情報とを特定する特定ステップと、
前記特定ステップによって特定されたプロセスＩＤ及び識別情報の組のうち、前記プロセスＩＤ取得ステップによって取得されたプロセスＩＤを含むプロセスＩＤ及び識別情報の組を、前記制御信号が送信された時刻と対応付けて記憶する記憶ステップと、
前記記憶ステップによって記憶された内容を収集する収集ステップと、
前記収集ステップによって収集された内容に対して統計的処理を施す統計ステップと
を備えることを特徴とする分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網に対する負荷が大きいアプリケーションプログラムを特定するための技術に関する。
【背景技術】
【０００２】
いわゆるスマートホンなどの通信装置においては、各ユーザが様々なアプリケーションプログラムを自由にインストールして利用している。この種の通信装置は、U-Planeと呼ばれるレイヤでの通信（以下、U-Plane通信という）と、C-Planeと呼ばれるレイヤでの通信（以下、C-Plane通信という）とを行う（特許文献１参照）。アプリケーションプログラムの中には、C-Plane通信を頻繁に発生させることで通信網に対して大きな負荷を強いるようなアプリケーションプログラムが存在する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１０９５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そこで、本発明の目的は、通信網に対する負荷が大きい又は負荷が大きくなることが想定されるアプリケーションプログラムを特定するための仕組みを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を達成するために、本発明は、所定の条件を満たした後の最初のタイミングにおいて、アプリケーションプログラムに記述された手順に従って送信されたパケットを取得する取得手段と、前記取得手段によって前記パケットが取得されたパケット取得時刻と、前記アプリケーションプログラムを識別するための識別情報とを記憶する記憶手段とを備えることを特徴とする通信装置を提供する。
【０００６】
前記取得手段は、前記アプリケーションプログラムが起動されてから最初のタイミングで送信されたパケットを取得するようにしてもよい。
【０００７】
前記取得手段は、前記アプリケーションプログラムの実行中に通信が発生せずに一定期間が経過した後の最初のタイミングで送信されたパケットを取得するようにしてもよい。
【０００８】
さらに、前記所定の条件を満たした後の最初のタイミングに送信されるパケットに先立って送信される制御信号の送信時刻を検出する検出手段と、前記取得手段によって前記パケットが取得されたパケット取得時刻と、前記検出手段によって検出された送信時刻とを比較し、前記送信時刻に対応する前記パケット取得時刻を抽出する比較手段とを備えてもよい。
【０００９】
また、本発明は、制御信号が送信されるときにアプリケーションプログラムとミドルウェア又はオペレーションシステムとの間で用いられたプロセスＩＤを取得するプロセスＩＤ取得手段と、前記アプリケーションプログラムが用いたプロセスＩＤとそのアプリケーションプログラムを識別するための識別情報とを特定する特定手段と、前記特定手段が特定したプロセスＩＤ及び識別情報の組のうち、前記プロセスＩＤ取得手段によって取得されたプロセスＩＤを含むプロセスＩＤ及び識別情報の組を、前記制御信号が送信された時刻と対応付けて記憶する記憶手段とを備えることを特徴とする通信装置を提供する。
【００１０】
また、本発明は、上記の通信装置によって記憶された内容を収集する収集手段と、前記収集手段によって収集された内容に対して統計的処理を施す統計手段とを備えることを特徴とする分析装置を提供する。
【００１１】
また、本発明は、上記の通信装置と、上記の分析装置とを備えることを特徴とする通信システムを提供する。
【００１２】
また、本発明は、所定の条件を満たした後の最初のタイミングにおいて、アプリケーションプログラムに記述された手順に従って送信されたパケットを取得する取得ステップと、前記取得ステップによって前記パケットが取得されたパケット取得時刻と、前記アプリケーションプログラムを識別するための識別情報とを記憶する記憶ステップと、前記記憶ステップによって記憶された内容を収集する収集ステップと、前記収集ステップによって収集された内容に対して統計的処理を施す統計ステップとを備えることを特徴とする分析方法を提供する。
【００１３】
また、本発明は、制御信号が送信されるときにアプリケーションプログラムとミドルウェア又はオペレーションシステムとの間で用いられたプロセスＩＤを取得するプロセスＩＤ取得ステップと、前記アプリケーションプログラムが用いたプロセスＩＤとそのアプリケーションプログラムを識別するための識別情報とを特定する特定ステップと、前記特定ステップによって特定されたプロセスＩＤ及び識別情報の組のうち、前記プロセスＩＤ取得ステップによって取得されたプロセスＩＤを含むプロセスＩＤ及び識別情報の組を、前記制御信号が送信された時刻と対応付けて記憶する記憶ステップと、前記記憶ステップによって記憶された内容を収集する収集ステップと、前記収集ステップによって収集された内容に対して統計的処理を施す統計ステップとを備えることを特徴とする分析方法を提供する。
【発明の効果】
【００１４】
本発明によれば、通信網に対する負荷が大きいアプリケーションプログラム又は負荷が大きくなることが想定されるアプリケーションプログラムを特定することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態に係るシステム全体の構成を示すブロック図である。
【図２】第１実施形態に係る通信装置の機能構成を示すブロック図である。
【図３】第１実施形態に係る分析装置の機能構成を示すブロック図である。
【図４】第１実施形態における動作例を示すシーケンス図である。
【図５】第２実施形態に係る通信装置の機能構成を示すブロック図である。
【図６】第２実施形態における動作例を示すシーケンス図である。
【図７】第３実施形態に係る通信装置の機能構成を示すブロック図である。
【図８】第３実施形態における動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
本発明の一実施形態について説明する。
[第１実施形態]
図１は、本発明の第１実施形態に係る通信システム１の全体構成を示すブロック図である。通信システム１は、複数の通信装置１０と、通信網２０と、分析装置３０とを有する。各々の通信装置１０は、オペレーティングシステム、ミドルウェア及びアプリケーションプログラムなどを含む各種のプログラムを実行するコンピュータであり、各ユーザによって利用される。以下では、通信装置１０が無線通信を行うスマートホンである場合を例に挙げて説明する。通信網２０は、複数の通信装置１０と分析装置３０とを相互に接続する通信ネットワークであり、例えば３Ｇ又はＬＴＥ（Long Term Evolution）やＧＳＭ（登録商標）（Global System for Mobile Communications）などの規格に準拠した移動通信網と、インターネットなどの固定通信網とを含んでいてもよい。分析装置３０は、通信装置１０で実行されるアプリケーションプログラム群のうち、通信網２０に対する負荷が大きい又は負荷が大きくなることが想定されるアプリケーションプログラムを特定するための処理として、通信装置１０の通信履歴を通信網２０を介して収集して統計処理を行う。
【００１７】
通信装置１０は、制御部１１と、記憶部１２と、通信部１３と、ＵＩ（User Interface）部１４と、音声入出力部１５とを備えている。制御部１１は、ＣＰＵ（Central Processing Unit）などの演算装置と、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）などの記憶装置とを備えている。ＲＯＭには、ＣＰＵによって実行されるプログラム群が記憶されている。このプログラム群には、オペレーティングシステム、ミドルウェア及びアプリケーションプログラムが含まれる。ＣＰＵは、ＲＡＭをワークエリアとして用いてＲＯＭや記憶部１２に記憶されたプログラムを実行することによって、通信装置１０の各部の動作を制御する。記憶部１２は、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable ROM）やフラッシュメモリなどの記憶手段であり、制御部１１が用いるデータ群やプログラム群を記憶している。通信部１３は、アンテナや通信回路を備えており、通信網２０の基地局と無線通信を行う。ＵＩ部１４は、キーやタッチセンサなどの操作子を備え利用者の操作に応じた操作信号を制御部１１に供給する操作部と、液晶パネルや液晶駆動回路を備え制御部１１による制御の下で画像を表示する表示部を備えている。音声入出力部１５は、スピーカ、マイクロホン及び音声処理回路を備えており、例えば通話等の処理において音声の入出力を行う。
【００１８】
分析装置３０は、制御部３１と、記憶部３２と、通信部３３とを備えている。制御部３１は、ＣＰＵ等の演算装置と、ＲＯＭ及びＲＡＭなどの記憶装置とを備えている。ＣＰＵは、ＲＡＭをワークエリアとして用いてＲＯＭや記憶部３２に記憶されたプログラムを実行することによって、分析装置３０の各部の動作を制御する。記憶部３２は、例えばハードディスク等の大容量で不揮発性の記憶手段であり、制御部３１が用いるデータ群やプログラム群を記憶している。通信部３３は、通信網２０に接続されており、通信網２０を介して通信装置１０と通信を行う。
【００１９】
図２は、通信装置１０の機能構成を示す図である。通信部１３は既述のとおり、通信網２０を介して分析装置３０と通信を行う機能である。ＭＷ／ＯＳ１０１は、記憶部１２に記憶されているミドルウェア（ＭＷ）及びオペレーティングシステム（ＯＳ）が制御部１１によって実行されることで実現される機能である。具体的には、通信部１３やＵＩ部１４における入出力、及び記憶部１２に対する管理などのように、複数のアプリケーションプログラムが共通で利用する基本的な役割（つまりオペレーティングシステムの役割）と、アプリケーションプログラムとオペレーティングシステムとの仲介役としてオペレーティングシステムよりも高度で具体的な機能を提供する役割（つまりミドルウェアの役割）とが含まれる。ＭＷ／ＯＳ１０１には、アプリケーションプログラム１０２がＭＷ／ＯＳ１０１の機能を呼び出して利用するための手順を定めたＡＰＩが実装されている。
【００２０】
U-Plane監視部１０３は、記憶部１２に記憶されている所定のプログラムが制御部１１によって実行されることで実現される機能である。U-Plane監視部１０３は、U-Planeと呼ばれるレイヤでの通信（以下、U-Plane通信という）及びC-Planeと呼ばれるレイヤでの通信（以下、C-Plane通信という）のうち、U-Plane通信を監視する。C-Plane通信は、通信網２０において論理的なコネクションを確立するために、通信装置１０と通信網２０内の設備（例えば無線基地局装置やパケット交換機）との間で行われる通信である。C-Plane通信は、アプリケーションレイヤにおいてやり取りされるデータ（ユーザデータ）を含むパケット通信とは異なる通信であり、アプリケーションレイヤよりも下位層の通信である。通信装置１０において、C-Plane通信を発生させたアプリケーションプログラムを特定することは困難だが、U-Plane通信はアプリケーションレイヤにおける通信であるから、U-Plane通信を発生させたアプリケーションプログラムを特定することは容易である。
【００２１】
U-Plane監視部１０３によって取得されるU-Plane通信の通信履歴は、制御部１１及び記憶部１２によって実現される履歴蓄積部１０４に蓄積される。履歴蓄積部１０４に蓄積されたU-Plane通信の通信履歴は分析装置３０に送信される。分析装置３０は、複数の通信装置１０から送信されてくる通信履歴を分析して、通信網２０に対する負荷が大きいアプリケーションプログラムを特定するための処理を行う。図２において、U-Plane監視部１０３は、所定の条件を満たした後の最初のタイミングにおいて、アプリケーションプログラムに記述された手順に従って送信されたパケットを取得する取得手段である。履歴蓄積部１０４は、取得手段によってパケットが取得されたパケット取得時刻と、アプリケーションプログラムを識別するための識別情報とを記憶する記憶手段である。
なお、本実施形態の説明では、ＭＷ／ＯＳ１０１、アプリケーションプログラム１０２及びU-Plane監視部１０３というプログラムを動作主体として表現することがあるが、実際には、制御部１１がミドルウェア、オペレーティングシステム、アプリケーションプログラム及びU-Plane監視部のプログラムを実行しており、ハードウェアとしての動作主体は制御部１１である。
【００２２】
図３は、分析装置３０の機能構成を示す図である。収集部３０１及び統計部３０２は、それぞれ所定のプログラムが制御部３１によって実行されることで実現される。収集部３０１は、各通信装置１０によって記憶された内容を収集する収集手段である。統計部３０２は、収集手段によって収集された内容に対して統計的処理を施す統計手段である。
【００２３】
図４は、第１実施形態における動作例を示すシーケンス図である。
通信装置１０で実行されているアプリケーションプログラム１０２において、通信を要するイベント（通信イベント）が発生すると（ステップＳ１１）、アプリケーションプログラム１０２はＭＷ／ＯＳ１０１のＡＰＩに通知を行う（ステップＳ１２）。このとき、通信部１３のリソースの有効活用と省電力の観点からそのリソースが開放されている状態（preservation状態又はIdle状態と呼ばれる）である場合には、ＭＷ／ＯＳ１０１はpreservation状態からactive状態（HSPAやCELL_DCHと呼ばれる状態）に遷移するためのC-Plane通信の信号（C-Plane信号という）を通信部１３を介して送信する（ステップＳ１３）。このC-Plane信号は、例えばpreservation復旧、Attach、Detach等の信号である。
【００２４】
preservation状態からactive状態に遷移すると、アプリケーションプログラム１０２は、U-Plane通信の信号（U-Plane信号という）を通信部１３経由で送信する（ステップＳ１４）。このU-Plane信号は、アプリケーションプログラム１０２に記述された手順に従って送信されたパケットである。U-Plane監視部１０３は、このU-Plane信号（パケット）を常時監視しており（ステップＳ１５）、ある特定のタイミング、具体的には所定の条件を満たした後の最初のタイミングで送信されたU-Plane信号であれば（ステップＳ１６）、これを取得する。ここでいう所定の条件とは、アプリケーションプログラム１０２が起動されたこと、又は、アプリケーションプログラム１０２の実行中に通信が発生せずに一定期間（例えば９０秒）が経過したことである。つまり、U-Plane監視部１０３は、アプリケーションプログラム１０２が起動されてから最初のタイミングで送信されたU-Plane信号、又は、アプリケーションプログラム１０２の実行中に通信が発生せずに一定期間が経過した後の最初のタイミングで送信されたU-Plane信号を取得する。制御信号であるC-Plane信号は、アプリケーションプログラム１０２の起動後の最初のU-Plane信号又は一定期間の無通信状態後の最初のU-Plane信号（例えばHTTP/HTTPS/FTPのSIN Packet）に先立って、preservation状態からactive状態に遷移するために送信される。従って、上記のような所定の条件を満たした後の最初のタイミングで送信されたU-Plane信号を検出した場合、その検出タイミングを、アプリケーションプログラム１０２がC-Plane信号を送信したタイミングとみなすことができる。
【００２５】
U-Plane監視部１０３は、取得したU-Plane信号（パケット）に関する通信履歴を履歴蓄積部１０４に引き渡して（ステップＳ１７）、履歴蓄積部１０４に蓄積しておく（ステップＳ１８）。この通信履歴には、U-Plane信号（パケット）を発生させたアプリケーションプログラムを識別するためのアプリケーションプログラム識別情報、ステップＳ１２においてＡＰＩに通知を行った時刻、ＡＰＩがその通知に対して応答した時刻などが含まれている。
【００２６】
履歴蓄積部１０４は、蓄積している通信履歴を送信するべき所定の送信タイミングが到来すると（ステップＳ１９）、この通信履歴を通信部１３を介して分析装置３０に送信する（ステップＳ２０）。この送信タイミングは、例えば、所定期間のうち予め決められた時刻（例えば一日のうち０：００とか毎時）、通信装置１０において電源オン又はオフされたとき、通信装置１０においてハンドオーバがなされたとき、preservation状態又はIdle状態からactive状態に遷移したとき、分析装置３０からの要求があったとき、履歴蓄積部１０４の残存記憶容量がゼロに近づいたとき、又は、アプリケーションレイヤにおいてやり取りされるデータ（ユーザデータ）のデータ量が所定の値に達したときなどである。
【００２７】
分析装置３０は、複数の通信装置１０から送信されてくる通信履歴に基づいて、通信網２０に負荷をかけるようなC-Plane通信を発生させているアプリケーションプログラムを特定するための処理を行う。具体的にはまず、制御部３１は、通信履歴に含まれるアプリケーション識別情報をキーとしてアプリケーションプログラムの一覧を生成する。次に、制御部３１は、アプリケーション識別情報をC-Plane信号の発生数別にソートし、作業者が操作する表示装置（図示略）に出力する。そして、作業者は、このソート結果においてC-Plane信号の発生数が多いものは、通信網２０に負荷をかけるようなC-Plane通信を発生させている可能性があるアプリケーションプログラムと認識し、さらにこれらのアプリケーションプログラムに問題となる特徴がないかどうかを精査する。なお、制御部３１は、C-Plane信号の発生数別にソートするのではなく、C-Plane信号の信号量別にソートしたり、C-Plane信号の信号量の所定期間あたりの増加量別にソートしてもよい。
【００２８】
U-Plane通信はアプリケーションレイヤでの通信であるから、U-Plane通信を発生させたアプリケーションプログラムを特定することは容易であるのに対し、C-Plane通信はアプリケーションレイヤより下位のレイヤであるから、C-Plane通信を発生させたアプリケーションプログラムを特定することは困難である。つまり、U-Plane通信の監視とC-Plane通信の監視をそれぞれ独立で行っている状態では、どのアプリケーションプログラムがU-Plane通信時にC-Plane通信を引き起こしたかがわからない。そこで、例えば、多数の通信装置１０からU-Plane通信及びC-Plane通信の監視結果を収集し、U-Plane通信の発生時刻とC-Plane通信の発生時刻とを照合し、C-Plane通信の発生時刻とほぼ一致するU-Plane通信を発生させたアプリケーションプログラムを、C-Plane通信を引き起こしたアプリケーションプログラムとして特定することが考えられる。しかし、このような特定を行うための前提して、各アプリケーションプログラムを特定するための情報（Signature）をあらかじめ登録しておく必要がある。このSignatureには、通信の宛先となるIPアドレス、ポート番号、HTTPヘッダ情報（URI等）が含まれるが、アプリケーションプログラムの数が膨大であることから、全てのアプリケーションプログラムについてこのようなSignatureをあらかじめ登録しておくのは現実的ではない。
【００２９】
第１実施形態によれば、U-Plane通信の発生タイミングに基づいてC-Plane通信の発生タイミングを推定しているから、U-Plane通信の発生時刻とC-Plane通信の発生時刻とを照合する必要がない。また、通信装置１０から送信されるアプリケーション識別情報に基づいて各アプリケーションを識別するから、上記のようなSignatureを分析装置３０などに予め登録しておく必要もない。従来は、アプリケーションプログラムが或る程度有名になりそれを利用するユーザ数が増えないと、通信網に負荷を与えるようなアプリケーションプログラムであるということが特定できない。これに対し、第１実施形態では、有名になる前にアプリケーションプログラムの挙動を解析し、通信網に負荷を与える又は負荷を与えると想定されるアプリケーションプログラムを特定することが可能となる。
【００３０】
[第２実施形態]
第２実施形態では、第１実施形態におけるU-Plane通信の監視に加えて、C-Plane通信も監視し、所定の条件を満たした後の最初のタイミングで送信されたU-Plane信号と、C-Plane信号の送信タイミングとを比較することで、C-Plane通信を発生させたアプリケーションプログラムをより正確に特定する。
【００３１】
第２実施形態に係る通信装置及び分析装置のハードウェア構成は第１実施形態と同じである。図５は、第２実施形態に係る通信装置１０ａの機能構成を示す図である。図５において、第１実施形態と同一の構成については同一の符号を付している（すべての図面において同じ）。
【００３２】
C-Plane監視部１０５は、記憶部１２に記憶されている所定のプログラムが制御部１１によって実行されることで実現される機能である。C-Plane監視部１０５は、C-Plane通信を監視する。C-Plane監視部１０５によって取得されるC-Plane通信の通信履歴と、U-Plane監視部１０３によって取得されるU-Plane通信の通信履歴は、履歴蓄積部１０４に蓄積される。履歴蓄積部１０４に蓄積されたC-Plane通信の通信履歴及びU-Plane通信の通信履歴のうち、通信タイミングが対応するC-Plane通信の通信履歴及びU-Plane通信の通信履歴が通信部１３経由で分析装置３０に送信される。分析装置３０は、複数の通信装置１０ａから送信されてくる通信履歴を分析して、通信網２０に対する負荷が大きい又は負荷が大きくなることが想定されるアプリケーションプログラムを特定するための処理を行う。
【００３３】
図５において、U-Plane監視部１０３は、所定の条件を満たした後の最初のタイミングにおいて、アプリケーションプログラムに記述された手順に従って送信されたパケットを取得する取得手段である。C-Plane監視部１０５は、所定の条件を満たした後の最初のタイミングに送信されるパケットに先立って送信される制御信号の送信時刻を検出する検出手段である。履歴蓄積部１０４は、取得手段によってパケットが取得されたパケット取得時刻と、アプリケーションプログラムを識別するための識別情報とを記憶する記憶手段である。また、履歴蓄積部１０４は、取得手段によってパケットが取得されたパケット取得時刻と、検出手段によって検出された送信時刻とを比較し、送信時刻に対応するパケット取得時刻を抽出する比較手段である。
【００３４】
図６は、第２実施形態における動作例を示すシーケンス図である。
前述したように、アプリケーションプログラム１０２からＭＷ／ＯＳ１０１のＡＰＩに対する通知（ステップＳ１２）に応じて、ＭＷ／ＯＳ１０１は、preservation状態からactive状態に遷移するためのC-Plane信号を通信部１３を介して送信する（ステップＳ１３）。C-Plane監視部１０５は、このC-Plane信号を監視しており（ステップＳ２１）、ステップＳ１３でC-Plane信号が送信されたことを検出すると、その検出時刻やC-Plane信号の信号量などを含むC-Plane信号に関する通信履歴を取得して（ステップＳ２２）、履歴蓄積部１０４に引き渡して（ステップＳ２３）、履歴蓄積部１０４に蓄積しておく（ステップＳ１８）。
【００３５】
U-Plane監視部１０３は、U-Plane信号（パケット）を常時監視しており（ステップＳ１５）、前述した特定のタイミングで送信されたU-Plane信号であれば（ステップＳ１６）、これを取得する。U-Plane監視部１０３は、取得したU-Plane信号に関する通信履歴を履歴蓄積部１０４に蓄積しておく（ステップＳ１８）。この通信履歴には、前述したように、U-Plane信号（パケット）を発生させたアプリケーションプログラムを識別するためのアプリケーションプログラム識別情報、ステップＳ１２においてＡＰＩに通知を行った時刻及びＡＰＩがその通知に対して応答した時刻のほか、U-Plane監視部１０３がU-Plane信号（パケット）を取得した取得時刻が含まれている。
【００３６】
履歴蓄積部１０４は、C-Plane信号に関する通信履歴に含まれるC-Plane信号の送信時刻と、U-Plane信号に関する通信履歴に含まれるU-Plane信号の取得時刻とを比較する（ステップＳ２４）。C-Plane信号が送信されてactive状態に遷移すると直ちにU-Plane信号が送信されるから、両者の信号の送信時刻の差が閾値未満であれば、そのU-Plane信号を送信したアプリケーションプログラム１０２がC-Plane信号を発生させたとみなすことができる。履歴蓄積部１０４はこの比較の結果、C-Plane信号の送信時刻に対応するU-Plane信号の取得時刻（つまり、C-Plane信号の送信時刻との差が閾値未満のU-Plane信号の取得時刻）を特定する。そして、履歴蓄積部１０４は、蓄積している通信履歴のうち、上記のようにして特定されたC-Plane信号の送信時刻及びU-Plane信号の取得時刻を含む通信履歴を、通信部１３を介して分析装置３０に送信する（ステップＳ２０）。分析装置３０は、第１実施形態と同様の手順で、複数の通信装置１０ａから送信されてくる通信履歴に基づいて、通信網２０に負荷をかけるようなC-Plane通信を発生させているアプリケーションプログラムを特定するための処理を行う。
【００３７】
この第２実施形態によれば、第１実施形態と同様の効果を奏することに加え、U-Plane通信の発生タイミングに基づいてC-Plane通信の発生タイミングを推定し、さらにU-Plane通信の発生タイミングとC-Plane通信の発生タイミングとを比較することでその推定精度を高めている。
【００３８】
[第３実施形態] 
第３実施形態では、アプリケーションプログラムとミドルウェア又はオペレーションシステムとの間で各プロセスを識別するためのプロセスＩＤを利用してC-Plane通信を発生させたアプリケーションプログラムを特定する。第３実施形態に係る通信装置及び分析装置のハードウェア構成は第１実施形態と同じである。図７は第３実施形態に係る通信装置１０ｂの機能構成を示すブロック図である。プロセスＩＤ取得部１０６は、記憶部１２に記憶されている所定のプログラムが制御部１１によって実行されることで実現される機能である。プロセスＩＤ取得部１０６は、制御信号が送信されるときにアプリケーションプログラムとミドルウェア又はオペレーションシステムとの間で用いられたプロセスＩＤを取得するプロセスＩＤ取得手段である。履歴蓄積部１０４は、アプリケーションプログラムが用いたプロセスＩＤとそのアプリケーションプログラムを識別するための識別情報とを特定する特定手段である。また、履歴蓄積部１０４は、特定手段が特定したプロセスＩＤ及び識別情報の組のうち、プロセスＩＤ取得手段によって取得されたプロセスＩＤを含むプロセスＩＤ及び識別情報の組を、制御信号が送信された時刻と対応付けて記憶する記憶手段である。
【００３９】
図８は第３実施形態における動作例を示すシーケンス図である。通信装置１０ｂで実行されているアプリケーションプログラム１０２において通信イベントが発生すると（ステップＳ１１）、アプリケーションプログラム１０２はＭＷ／ＯＳ１０１のＡＰＩに通知を行う（ステップＳ１２）。このとき、アプリケーションプログラム１０２は、ＭＷ／ＯＳ１０１との間で各プロセスを識別するためのプロセスＩＤをこの通知に含める。
【００４０】
ＭＷ／ＯＳ１０１は、preservation状態からactive状態に遷移するためのC-Plane信号を通信部１３経由で送信するが、このとき、上記のプロセスＩＤをC-Plane信号に付加して通信部１３に引き渡す（ステップＳ１３）。preservation状態からactive状態に遷移すると、アプリケーションプログラム１０２は、U-Plane信号（パケット）を通信部１３を介して送信する（ステップＳ１４）。
【００４１】
プロセスＩＤ取得部１０６は、C-Plane信号に付加されたプロセスＩＤのほか、C-Plane信号の送信時刻などを含むC-Plane信号に関する通信履歴を通信部１３から取得し（ステップＳ３１）、履歴蓄積部１０４に引き渡して（ステップＳ３２）、履歴蓄積部１０４に蓄積しておく（ステップＳ３３）。
【００４２】
一方、履歴蓄積部１０４は、アプリケーションプログラムからそのアプリケーション識別情報及び上記のプロセスＩＤの組を取得（特定）する（ステップＳ３４）。そして、履歴蓄積部１０４は、取得（特定）したプロセスＩＤ及びアプリケーション識別情報の組のうち、ステップＳ３３において蓄積（取得）したプロセスＩＤを含むプロセスＩＤ及びアプリケーション識別情報の組を、C-Plane信号の送信時刻などと対応付け、これらを通信履歴として蓄積する。その後、履歴蓄積部１０４は、この通信履歴を送信する送信タイミングが到来すると（ステップＳ１９）、通信履歴を分析装置３０に送信する（ステップＳ２０）。分析装置３０は、第１実施形態と同様の手順で、複数の通信装置１０ｂから送信されてくる通信履歴に基づいて、通信網２０に負荷をかけるようなC-Plane通信を発生させているアプリケーションプログラムを特定するための処理を行う。
【００４３】
この第３実施形態によれば、通信装置１０ｂから送信されるアプリケーション識別情報に基づいて各アプリケーションを識別するから、上記のようなSignatureを分析装置に予め登録しておく必要もない。さらに、通信網に対する負荷が大きい又は負荷が大きくなることが想定されるアプリケーションプログラムをより早期に特定することができる。
【００４４】
[変形例]
[変形例１] 
第２実施形態において、通信装置１０がU-Plane通信の発生タイミングとC-Plane通信の発生タイミングとを比較していたが、これに代えて、通信装置１０がU-Plane通信の発生タイミングとC-Plane通信の発生タイミングとを分析装置３０に通知し、分析装置３０が両者のタイミングを比較してもよい。
【００４５】
[変形例２]
第１〜第３実施形態において、通信装置１０，１０ａ，１０ｂから分析装置３０に通信履歴を送信する時期が同じ時間帯に集中すると、バースト的に通信トラヒックが発生してしまい、輻輳が生じたり、通信網２０の設備に影響を与えたりする可能性がある。このため、通信装置１０，１０ａ，１０ｂから分析装置３０への通信履歴の送信時期を時間軸上で分散させることが望ましい。例えば、アプリケーションプログラムに付与されたシリアル番号が偶数の場合には、通信装置１０，１０ａ，１０ｂから分析装置３０へ時刻xx:00に通信履歴を送信し、奇数の場合はその３０分後の時刻xx:30に通信履歴を送信するようにしてもよい。また、通信装置１０，１０ａ，１０ｂを機種などの何らかの基準でグルーピングし、グループごとに通信装置１０，１０ａ，１０ｂから分析装置３０へ通信履歴を送信するようにしてもよい。
【符号の説明】
【００４６】
１０，１０ａ，１０ｂ・・・通信装置、２０・・・通信網、３０・・・分析装置、１１・・・制御部、１２・・・記憶部、１３・・・通信部、１４・・・ＵＩ部、１５・・・音声入出力部、３１・・・制御部、３２・・・記憶部、３３・・・通信部、１０１・・・ＭＷ／ＯＳ、１０２・・・アプリケーションプログラム、１０３・・・U-Plane監視部、１０４・・・履歴蓄積部、１０５・・・C-Plane監視部，１０６・・・プロセスＩＤ取得部、３０１・・・収集部、３０２・・・統計部
【図１】
2015171012.tif 000003
【図２】
2015171012.tif 000004
【図３】
2015171012.tif 000005
【図４】
2015171012.tif 000006
【図５】
2015171012.tif 000007
【図６】
2015171012.tif 000008
【図７】
2015171012.tif 000009
【図８】
2015171012.tif 000010