(57)【要約】【課題】メッセージを繰り返し受信する状況において、効率よくメッセージに適合するフィルタを算出することできるメッセージフィルタ予測装置等を提供する。【解決手段】メッセージフィルタ予測装置１０１は、メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子１０４を受信し、受信した前記フィルタ識別子１０４に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成する作成部１０２と、前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する予測部１０３とを備える【選択図】      図１
2014174939.tif 000002
【特許請求の範囲】
【請求項１】
メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成する作成部と、
前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する予測部と
を備えるメッセージフィルタ予測装置。
【請求項２】
前記所定のフォーマットは、先に受信した前記フィルタ識別子を親ノード、後に受信した前記フィルタ識別子を前記親ノードに対する子ノードとして関連付けする木構造である
請求項１に記載のメッセージフィルタ予測装置。
【請求項３】
前記木構造における各ノードを指し示すアドレスを、複数個、記憶可能な状態部を更に有し、
前記作成部は、前記順序履歴情報において、
前記状態部における前記アドレスがそれぞれ指し示す第１ノードに連なる第２ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子と一致する場合に、前記第１ノードを指し示すアドレスを、前記第２ノードを指し示すアドレスに更新し、
一致しない場合に、前記受信したフィルタ識別子を、前記第１ノードを親ノードとする子ノードとして関連付けし、さらに、前記第１ノードを指し示すアドレスを、前記子ノードを指し示すアドレスに更新し、
さらに、前記順序履歴情報において、前記受信したフィルタ識別子を根ノードとする木構造がない場合には、前記受信したフィルタ識別子を根ノードとする木構造を追加し、
その後、前記根ノードを指し示すアドレスを、前記状態部に保存する
請求項１または請求項２に記載のメッセージフィルタ予測装置。
【請求項４】
前記予測部は、前記第１ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子に一致する場合に、前記第２ノードに関連付けされた前記フィルタ識別子を算出する
請求項１乃至請求項３のいずれかに記載のメッセージフィルタ予測装置。
【請求項５】
前記順序履歴情報において、所定の消去条件を満たす前記木構造を消去するとともに、消去した前記木構造における各ノードを指し示すアドレスを、前記状態部から消去する消去部をさらに有する
請求項４に記載のメッセージフィルタ予測装置。
【請求項６】
情報処理装置において、メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成し、前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出するメッセージフィルタ予測方法。
【請求項７】
メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成する作成機能と、
前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する予測機能と
をコンピュータに実現させるメッセージフィルタ予測プログラム。
【請求項８】
前記所定のフォーマットは、先に受信した前記フィルタ識別子を親ノード、後に受信した前記フィルタ識別子を前記親ノードに対する子ノードとして関連付けする木構造である
請求項７に記載のメッセージフィルタ予測プログラム。
【請求項９】
前記作成機能は、前記順序履歴情報において、
前記木構造における各ノードを指し示すアドレスを、複数個、記憶可能な状態部における前記アドレスがそれぞれ指し示す第１ノードに連なる第２ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子と一致する場合に、前記第１ノードを指し示すアドレスを、前記第２ノードを指し示すアドレスに更新し、
一致しない場合に、前記受信したフィルタ識別子を、前記第１ノードを親ノードとする子ノードとして関連付けし、さらに、前記第１ノードを指し示すアドレスを、前記子ノードを指し示すアドレスに更新し、
さらに、前記順序履歴情報において、前記受信したフィルタ識別子を根ノードとする木構造がない場合には、前記受信したフィルタ識別子を根ノードとする木構造を追加し、
その後、前記根ノードを指し示すアドレスを、前記状態部に保存する機能を含む
請求項７または請求項８に記載のメッセージフィルタ予測プログラム。
【請求項１０】
前記予測機能において、前記第１ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子に一致する場合に、前記第２ノードに関連付けされた前記フィルタ識別子を算出する
請求項７乃至請求項９のいずれかに記載のメッセージフィルタ予測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、情報処理装置が送信するメッセージに関するフィルタを探索するメッセージフィルタ予測装置等に関する。
【背景技術】
【０００２】
データセンターなどにおける運用管理システムは、監視する対象であるサーバが出力するメッセージ（ログ）を解析することにより、所定の処理方法の中からメッセージに応じた処理方法（フィルタ）を見つける。運用管理システムは、サーバが出力するメッセージにフィルタを適用する（フィルタリングする）ことにより、該メッセージに応じた処理を行う。運用管理システムは、所定のフィルタの中からメッセージに応じたフィルタを探す。運用管理システムがメッセージに応じたフィルタを見つけ出す効率に応じて、運用管理システムにおける処理効率は向上する。
【０００３】
一方、監視する対象であるサーバは、ある障害が発生する場合に、該障害に関連するメッセージを繰り返し送信する。例えば、ネットワークインターフェースカード（ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃａｒｄ、以降、「ＮＩＣ」と略記する）において障害が発生する場合、各サーバは、ネットワーク切断、通信異常等を表すメッセージを運用管理システムに繰り返し送信する。
【０００４】
特許文献１及び特許文献２は、運用管理システムにおいて、フィルタリングを効率的に処理する方法等を開示する。
【０００５】
特許文献１が開示するフィルタ設定システムは、サーバから受信するメッセージにおいて、キーワードが出現する頻度、位置、及び、キーワードの長さを測定する。該フィルタ設定システムは、測定した頻度、位置、及び、長さが、所定の定義情報における閾値を超える場合に、受信したメッセージに適用するフィルタを予測する。
【０００６】
特許文献２は、メッセージ監視システムにおいて冗長に存在するフィルタを算出するシステムを開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−００３５６０号公報
【特許文献２】特開２００９−２１７３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、ＮＩＣにおける障害の場合に、サーバは、該障害に関する１種類以上のメッセージを繰り返し送信する。その場合、運用管理システムは、該メッセージに適合するフィルタを、繰り返し見つけ出す。しかしながら、一般的な運用管理システムは、メッセージを繰り返し受信するたびに、該メッセージに適合するフィルタをそのつど探すため、処理効率が悪い。
【０００９】
特許文献１が開示するフィルタ設定システムは、メッセージにおいてキーワードが出現する頻度に応じて、該メッセージに適合するフィルタを探索する。しかしながら、該フィルタ設定システムは、上述した状況において、監視する対象であるサーバが繰り返し発生する各メッセージを解析するため、効率よくフィルタを選び出すことができない。その理由は、該システムが、発生するメッセージの規則性を利用してフィルタを選ばないためである。
【００１０】
特許文献２が開示するシステムは、冗長なフィルタを算出する。しかしながら、上述した理由と同様の理由により、該システムは、メッセージに適合するフィルタが繰り返し出現する状況において、効率よくフィルタリングすることができない。
【００１１】
そこで、本発明の主たる目的は、例えば、１種類以上のメッセージを繰り返し受信する状況において、効率よくメッセージに適合するフィルタを算出するメッセージフィルタ予測装置等を提供することである。
【課題を解決するための手段】
【００１２】
前述の目的を達成するために、本発明に係るメッセージフィルタ予測装置は、以下の構成を備えることを特徴とする。
【００１３】
すなわち、本発明に係るメッセージフィルタ予測装置は、
メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成する作成部と、
前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する予測部と
を備えることを特徴とする。
【００１４】
また、本発明の他の見地として、本発明に係るメッセージフィルタ予測方法は、
情報処理装置において、メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成し、前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する
ことを特徴とする。
【００１５】
さらに、同目的は、係るメッセージフィルタ予測プログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１６】
本発明に係るメッセージフィルタ予測装置等によれば、メッセージを繰り返し受信する状況において、効率よくメッセージに適合するフィルタを算出することできる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態に係るメッセージフィルタ予測装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るメッセージフィルタ予測装置における処理の流れを示すフローチャートである。
【図３】所定のフォーマットの一例を概念的に表す図である。
【図４】木構造を作成する処理の流れの一例を示すフローチャートである。
【図５】受信するフィルタ識別子の一例を表す図である。
【図６】木構造を作成する経過の一例を概念的に表す図である。
【図７】フィルタ識別子を算出する処理の一例を表すフローチャートである。
【図８】第２の実施形態に係るメッセージフィルタ予測装置が有する構成を示すブロック図である。
【図９】第２の実施形態に係るメッセージフィルタ予測装置における処理の流れを示すフローチャートである。
【図１０】本発明の第１の実施形態または本発明の第２の実施形態に係るメッセージフィルタ予測装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。
【発明を実施するための形態】
【００１８】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１９】
＜第１の実施形態＞
本発明の第１の実施形態に係るメッセージフィルタ予測装置１０１が有する構成と、メッセージフィルタ予測装置１０１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、第１の実施形態に係るメッセージフィルタ予測装置１０１が有する構成を示すブロック図である。図２は、第１の実施形態に係るメッセージフィルタ予測装置１０１における処理の流れを示すフローチャートである。
【００２０】
フィルタは、フィルタを識別するフィルタ識別子に関連付けされているとする。
【００２１】
メッセージを解析する外部装置（不図示）は、フィルタが該メッセージに適合するか否かを判定し、適合するフィルタに関連付けされたフィルタ識別子１０４をメッセージフィルタ予測装置１０１に送信する。
【００２２】
メッセージフィルタ予測装置１０１は、順に、該フィルタ識別子１０４を受信する。メッセージフィルタ予測装置１０１は、作成部１０２と予測部１０３とを有する。
【００２３】
まず、作成部１０２は、所定のフォーマットに従い、受信したフィルタ識別子１０４に基づき、フィルタをメッセージに適用する順序を表す順序履歴情報を作成する（ステップＳ２０１）。
【００２４】
例えば、順序履歴情報における所定のフォーマットの一例として、木構造がある。木構造は、ノード（節点、頂点）と、２つのノードを結合するエッジ（辺、枝）とを有するグラフにおいて、閉路を有さないグラフである。葉ノードは、木構造におけるノードのうち、１つのノードのみに結合するノードである。葉ノード以外のノードは、複数のノードと結合する。グラフにおける木構造については、既に知られているため、ここでは詳細な説明を省略する。
【００２５】
木構造は、階層的に表現することができる。さらに、結合する２つのノードには、親子関係が存在する。親ノードは、１つ以上の子ノードと結合する。しかしながら、子ノードは、１つの親ノードにしか結合しない。親ノードは、階層において上位に位置する。さらに、子ノードは、階層において下位に位置する。根ノードは、親ノードを有さないノードである。
【００２６】
木構造を記憶する方法は、ポインタを用いて記憶する方法等、既に、様々な方法が知られているため、ここでは説明を省略する。所定のフォーマットは、木構造を記憶する方法に限定されない。
【００２７】
例えば、所定のフォーマットは、先に受信するフィルタ識別子１０４を親ノード、後に受信するフィルタ識別子１０４を該親ノードに対する子ノードとして関連付けする方法である。例えば、所定のフォーマットは、図３に示すようなフォーマットである。図３は、所定のフォーマットの一例を概念的に表す図である。
【００２８】
例えば、１行目の木構造において、フィルタ識別子「１」は、子ノードとしてフィルタ識別子「２」に関連付けされている。更に、１行目の木構造において、フィルタ識別子「２」は、子ノードとしてフィルタ識別子「２」に関連付けされている。その場合、１行目の木構造は、フィルタ識別子「１」、フィルタ識別子「２」及びフィルタ識別子「２」を受信することを表す。
【００２９】
同様に、例えば、２行目の木構造において、フィルタ識別子「２」は、子ノードとしてフィルタ識別子「２」及びフィルタ識別子「３」に関連付けされている。更に、２行目の木構造において、フィルタ識別子「２」は、子ノードとしてフィルタ識別子「３」に関連付けされている。また、２行目の木構造において、フィルタ識別子「３」は、子ノードとしてフィルタ識別子「５」に関連付けされている。その場合、２行目の木構造は、フィルタ識別子「２」、フィルタ識別子「２」及びフィルタ識別子「３」を受信すること、または、フィルタ識別子「２」、フィルタ識別子「３」及びフィルタ識別子「５」を受信することを表す。
【００３０】
作成部１０２は、フィルタ識別子１０４を受信するたびに、該フィルタ識別子１０４を新たな根ノードと関連付けすることにより、木構造を作成してもよい。すなわち、木構造を作成する方法は、上述した例に限定されない。
【００３１】
次に、図３に示すような木構造の場合、作成部１０２が所定のフォーマットに従い、受信するフィルタ識別子１０４に基づき、木構造を作成する処理について説明する。図４は、木構造を作成する処理の流れの一例を示すフローチャートである。
【００３２】
まず、作成部１０２は、作成した木構造の中に、受信したフィルタ識別子１０４を根ノードとする木構造があるか否かを判定する（ステップＳ４０１）。作成部１０２は、受信したフィルタ識別子１０４を根ノードとする木構造がないと判定する場合（ステップＳ４０１にてＮＯと判定）、受信したフィルタ識別子１０４を根ノードとする木構造を作成する（ステップＳ４０２）。作成部１０２は、受信したフィルタ識別子１０４を根ノードとする木構造があると判定する場合（ステップＳ４０１にてＹＥＳと判定）、ステップＳ４０２を実施しない。
【００３３】
次に、作成部１０２は、該根ノードを指し示すアドレスを状態部（不図示）に保存する（ステップＳ４０３）。
【００３４】
メッセージフィルタ予測装置１０１は、上述した状態部（不図示）を有してもよい。あるいは、外部の記憶装置（不図示）に記憶部を設置しても良い。
【００３５】
次に、作成部１０２は、状態部におけるアドレスが指し示す第１ノードに連なる第２ノードに関連付けされたフィルタ識別子１０４と、受信したフィルタ識別子１０４とを比較する（ステップＳ４０４）。
【００３６】
作成部１０２は、一致すると判定する場合（ステップＳ４０４にてＹＥＳと判定）、第１ノードを指し示すアドレスを、第２ノードを指し示すアドレスに更新する（ステップＳ４０５）。
【００３７】
作成部１０２は、一致しないと判定する場合（ステップＳ４０４にてＮＯと判定）、第１ノードを親ノード、受信したフィルタ識別子１０４を子ノードとして関連付けする（ステップＳ４０６）。次に、作成部１０２は、第１ノードを指し示すアドレスを、作成した子ノードを指し示すアドレスに更新する（ステップＳ４０７）。
【００３８】
上述した木構造を作成する処理を、図５における例を参照しながら説明する。図５は、受信するフィルタ識別子１０４の一例を表す図である。例えば、外部装置（不図示）は、メッセージ「ＡＡ」に対して、フィルタ「１」を適用し、適用したフィルタ識別子「１」をメッセージフィルタ予測装置１０１に送信する。次に、外部装置（不図示）は、メッセージ「ＢＢ」に対して、フィルタ「２」を適用し、適用したフィルタ識別子「２」をメッセージフィルタ予測装置１０１に送信する。外部装置は、以降、同様に処理する。
【００３９】
図６を参照しながら、図５における例において、作成部１０２が木構造を作成する処理について説明する。図６は、木構造を作成する経過の一例を概念的に表す図である。
【００４０】
まず、作成部１０２は、フィルタ識別子「１」を受信する。作成部１０２は、状態部に木構造に関する情報がないため（ステップＳ４０１にてＮＯと判定）、フィルタ識別子「１」を根ノードとする木構造を作成するとともに（ステップＳ４０２）、フィルタ識別子「１」を指し示すアドレスを状態部に保存する（ステップＳ４０３、図６（Ａ）における丸印）。
【００４１】
作成部１０２は、フィルタ識別子「２」を受信する。作成部１０２は、状態部にフィルタ識別子「２」を根ノードとする木構造がないため（ステップＳ４０１にてＮＯと判定）、フィルタ識別子「２」を根ノードとする木構造を作成するとともに（ステップＳ４０２）、フィルタ識別子「２」を指し示すアドレスを状態部に保存する（ステップＳ４０３、図６（Ｂ）における２行目における丸印）。
【００４２】
次に、作成部１０２は、状態部におけるアドレスが指し示す第１ノード（すなわち、図６（Ａ）におけるフィルタ識別子「１」）に連なる第２ノードにおけるフィルタ識別子と、受信したフィルタ識別子「２」とを比較する（ステップＳ４０４）。
【００４３】
作成部１０２は、該フィルタ識別子が存在しないため場合（ステップＳ４０４にてＮＯと判定）、第１ノード（すなわち、図６（Ｂ）におけるフィルタ識別子「１」）を親ノード、受信したフィルタ識別子「２」を子ノードとして関連付けする（ステップＳ４０６、図６（Ｂ）１行目におけるフィルタ識別子「２」））。次に、作成部１０２は、第１ノードを指し示すアドレスを、作成した子ノードを指し示すアドレスに更新する（ステップＳ４０７、図６（Ｂ）１行目における丸印）。
【００４４】
さらに、作成部１０２は、フィルタ識別子「２」を受信する。作成部１０２は、状態部にフィルタ識別子「２」を根ノードとする木構造が存在するため（ステップＳ４０１にてＹＥＳと判定）、フィルタ識別子「２」を根ノードとするアドレスを状態部に保存する（ステップＳ４０３、図６（Ｃ）の２行目における１番目の丸印）。
【００４５】
次に、作成部１０２は、状態部におけるアドレスが指し示す第１ノード（すなわち、図６（Ｂ）の１行目及び２行目におけるフィルタ識別子「２」）に連なる第２ノードにおけるフィルタ識別子と、受信したフィルタ識別子「２」とを比較する（ステップＳ４０４）。
【００４６】
作成部１０２は、該フィルタ識別子が存在しないため場合（ステップＳ４０４にてＮＯと判定）、第１ノード（すなわち、図６（Ｂ）の１行目及び２行目におけるフィルタ識別子「２」）を親ノード、受信したフィルタ識別子「２」を子ノードとして関連付けする（ステップＳ４０６、図６（Ｃ）の１行目及び２行目におけるフィルタ識別子「２」）。次に、作成部１０２は、第１ノードを指し示すアドレスを、作成した子ノードに更新する（ステップＳ４０７、図６（Ｃ）１行目における丸印及び２行目における２番目の丸印）。
【００４７】
作成部１０２は、以降、上述した処理と同様の処理を行い、図６（Ｇ）に示す木構造を作成する。
【００４８】
図３に示す例においては、木構造は、３つの階層を有するとしたが、Ｎ（Ｎは２以上の整数）個の階層を有するとしても何ら問題はない。また、上述した例において、作成部１０２は、先に、受信したフィルタ識別子１０４を根ノードとする木構造を探索するとしたが、ノードを追加した後に、上述した探索を行っても良い。
【００４９】
次に、予測部１０３は、順序履歴情報に基づき、受信したフィルタ識別子に連なるフィルタ識別子を算出する（ステップＳ２０２）。
【００５０】
例えば、上述した例の場合、予測部１０３は、図７に示す処理に従い、フィルタ識別子を算出する。図７は、フィルタ識別子を算出する処理の一例を表すフローチャートである。
【００５１】
予測部１０３は、状態部におけるアドレスが指し示す第１ノードに連なる第２ノードに関連付けされたフィルタ識別子と、受信したフィルタ識別子１０４とを比較する（ステップＳ７０１）。予測部１０３は、第２ノードにおけるフィルタ識別子と、受信したフィルタ識別子１０４とが一致すると判定する場合（ステップＳ７０１にてＹＥＳと判定）、第２ノードに連なるノード関連付けされたフィルタ識別子を算出する（ステップＳ７０２）。
【００５２】
予測部１０３は、第２ノードにおけるフィルタ識別子と、受信したフィルタ識別子１０４とが一致しないと判定する場合（ステップＳ７０１にてＮＯと判定）、「値なし」を算出する（ステップＳ７０３）。
【００５３】
例えば、図６（Ｇ）に示す木構造である場合、予測部１０３は、フィルタ識別子「２」を算出する（図６（Ｇ）１行目の四角形）。
【００５４】
特許文献１及び特許文献２が開示するシステムは、適用するフィルタに関する順序履歴情報を有していない。そのため、該システムは、規則性にメッセージを受信する場合であっても、該規則性に基づいて効率的にメッセージに適合するフィルタを算出することができない。
【００５５】
一方、本実施形態においては、作成部１０２がフィルタを適用する順序を表す順序履歴情報を作成するとともに、予測部１０３が順序履歴情報に基づいてフィルタを算出する。規則性にメッセージを受信する場合、作成部１０２が、例えば、木構造を用いて該規則性を捕捉するとともに、予測部１０３は、該規則性に基づいてフィルタを算出する。すなわち、本実施形態によれば、該規則性に基づいて効率的にメッセージに適合するフィルタを算出することができる。
【００５６】
すなわち、第１の実施形態に係るメッセージフィルタ予測装置１０１によれば、メッセージを繰り返し受信する状況において、効率よくメッセージに適合するフィルタを算出することができる。
【００５７】
尚、メッセージフィルタ予測装置１０１は、例えば、単位時間当たりに受信するメッセージ数がある所定の値を超えたときに処理を開始してもよいし、単位時間当たりに受信する特定のメッセージ数がある所定の値を超えたときに処理を開始しても良い。また、メッセージフィルタ予測装置１０１は、特定のメッセージを連続して受信する場合に処理を開始しても良い。
【００５８】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。
【００５９】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６０】
図８と図９とを参照しながら、本発明の第２の実施形態に係るメッセージフィルタ予測装置８０１が有する構成と、メッセージフィルタ予測装置８０１が行う処理とについて説明する。図８は、第２の実施形態に係るメッセージフィルタ予測装置８０１が有する構成を示すブロック図である。図９は、第２の実施形態に係るメッセージフィルタ予測装置８０１における処理の流れを示すフローチャートである。
【００６１】
メッセージフィルタ予測装置８０１は、作成部１０２と、予測部１０３と、消去部８０２とを有する。
【００６２】
まず、消去部８０２は、所定の消去条件を満たす木構造が存在するか否かを判定する（ステップＳ９０１）。消去部８０２は、所定の消去条件を満たす木構造が存在すると判定する場合（ステップＳ９０１にてＹＥＳと判定）、所定の消去条件を満たす木構造を消去する（ステップＳ９０２）とともに、該木構造を指し示すアドレスを状態部（不図示）から消去する（ステップＳ９０３）。
【００６３】
消去部８０２は、所定の消去条件を満たす木構造が存在しない場合（ステップＳ９０１にてＮＯと判定）、ステップＳ９０２及びステップＳ９０３における処理を行わない。
【００６４】
例えば、所定の消去条件として、例えば、該木構造に基づいて算出したフィルタが、実際にメッセージに適用するフィルタと合致しない、合致しない回数が所定の回数を超える、あるいは、合致しない割合が所定の閾値以上であるなどの条件を挙げることができる。また、所定の消去条件は、該木構造を作成し始めてから一定期間経過後、あるいは、該木構造を作成し終えてから一定期間経過後等の条件であっても良い。
【００６５】
さらに、所定の消去条件は、一定期間、該木構造が参照されない等の条件であってもよい。所定の消去条件は、上述した例に限定されない。
【００６６】
本発明の第２の実施形態は、本発明の第１の実施形態と同様の構成を有するため、メッセージを繰り返し受信する状況において、効率よくメッセージに適合するフィルタを算出することができる。
【００６７】
さらに、消去部８０２は、所定の消去条件に応じて、例えば、予測部１０３が算出するフィルタと、実際にメッセージに適用するフィルタとが一致しない木構造を削除する。すなわち、本実施形態によれば、予測精度が低い木構造を削除することができるため、さらに効率よくメッセージに適合するフィルタを算出することができる。
【００６８】
（ハードウェア構成例）
上述した本発明の各実施形態におけるメッセージフィルタ予測装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るメッセージフィルタ予測装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るメッセージフィルタ予測装置は、専用の装置として実現してもよい。
【００６９】
図１０は、本発明の第１の実施形態または本発明の第２の実施形態に係るメッセージフィルタ予測装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、入力装置２５、および、出力装置２６を有する。
【００７０】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、例えば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）などを指しており、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ネットワークを介して係るプログラムを持ち運びしても良い。
【００７１】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み込む。表示が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、あるいは、図８に示した各部が表す機能（処理）に対応するところのメモリ２２にあるメッセージフィルタ予測プログラム（図２、図４、図７、あるいは、図９）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【００７２】
すなわち、このような場合、本発明は、係るメッセージフィルタ予測プログラムによっても成し得ると捉えることができる。更に、係るメッセージフィルタ予測プログラムが記録されたコンピュータ読み取り可能な記録媒体によっても、本発明は成し得ると捉えることができる。
【００７３】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
（付記１）
メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成する作成部と、
前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する予測部と
を備えるメッセージフィルタ予測装置。
【００７４】
（付記２）
前記所定のフォーマットは、先に受信した前記フィルタ識別子を親ノード、後に受信した前記フィルタ識別子を前記親ノードに対する子ノードとして関連付けする木構造である
付記１に記載のメッセージフィルタ予測装置。
【００７５】
（付記３）
前記木構造における各ノードを指し示すアドレスを、複数個、記憶可能な状態部を更に有し、
前記作成部は、前記順序履歴情報において、
前記状態部における前記アドレスがそれぞれ指し示す第１ノードに連なる第２ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子と一致する場合に、前記第１ノードを指し示すアドレスを、前記第２ノードを指し示すアドレスに更新し、
一致しない場合に、前記受信したフィルタ識別子を、前記第１ノードを親ノードとする子ノードとして関連付けし、さらに、前記第１ノードを指し示すアドレスを、前記子ノードを指し示すアドレスに更新し、
さらに、前記順序履歴情報において、前記受信したフィルタ識別子を根ノードとする木構造がない場合には、前記受信したフィルタ識別子を根ノードとする木構造を追加し、
その後、前記根ノードを指し示すアドレスを、前記状態部に保存する
付記１または付記２に記載のメッセージフィルタ予測装置。
【００７６】
（付記４）
前記予測部は、前記第１ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子に一致する場合に、前記第２ノードに関連付けされた前記フィルタ識別子を算出する
付記１乃至付記３のいずれかに記載のメッセージフィルタ予測装置。
【００７７】
（付記５）
前記順序履歴情報において、所定の消去条件を満たす前記木構造を消去するとともに、消去した前記木構造における各ノードを指し示すアドレスを、前記状態部から消去する消去部をさらに有する
付記４に記載のメッセージフィルタ予測装置。
【００７８】
（付記６）
情報処理装置において、メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成し、前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出するメッセージフィルタ予測方法。
【００７９】
（付記７）
メッセージに適用する１つ以上のフィルタを識別するフィルタ識別子を受信し、受信した前記フィルタ識別子に基づいて、所定のフォーマットに従い、前記フィルタを適用する順序を表す順序履歴情報を作成する作成機能と、
前記順序履歴情報に基づいて、前記受信したフィルタ識別子に連なるフィルタ識別子を算出する予測機能と
をコンピュータに実現させるメッセージフィルタ予測プログラム。
【００８０】
（付記８）
前記所定のフォーマットは、先に受信した前記フィルタ識別子を親ノード、後に受信した前記フィルタ識別子を前記親ノードに対する子ノードとして関連付けする木構造である
付記７に記載のメッセージフィルタ予測プログラム。
【００８１】
（付記９）
前記作成機能は、前記順序履歴情報において、
前記木構造における各ノードを指し示すアドレスを、複数個、記憶可能な状態部における前記アドレスがそれぞれ指し示す第１ノードに連なる第２ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子と一致する場合に、前記第１ノードを指し示すアドレスを、前記第２ノードを指し示すアドレスに更新し、
一致しない場合に、前記受信したフィルタ識別子を、前記第１ノードを親ノードとする子ノードとして関連付けし、さらに、前記第１ノードを指し示すアドレスを、前記子ノードを指し示すアドレスに更新し、
さらに、前記順序履歴情報において、前記受信したフィルタ識別子を根ノードとする木構造がない場合には、前記受信したフィルタ識別子を根ノードとする木構造を追加し、
その後、前記根ノードを指し示すアドレスを、前記状態部に保存する機能を含む
付記７または付記８に記載のメッセージフィルタ予測プログラム。
【００８２】
（付記１０）
前記予測機能において、前記第１ノードに関連付けされた前記フィルタ識別子が、前記受信したフィルタ識別子に一致する場合に、前記第２ノードに関連付けされた前記フィルタ識別子を算出する
付記７乃至付記９のいずれかに記載のメッセージフィルタ予測プログラム。
【００８３】
（付記１１）
前記順序履歴情報において、所定の消去条件を満たす前記木構造を消去するとともに、消去した前記木構造における各ノードを指し示すアドレスを、前記状態部から消去する消去機能をさらに有する
付記１０に記載のメッセージフィルタ予測プログラム。
【符号の説明】
【００８４】
１０１    メッセージフィルタ予測装置
１０２    作成部
１０３    予測部
１０４    フィルタ識別子
８０１    メッセージフィルタ予測装置
８０２    消去部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
【図１】
2014174939.tif 000003
【図２】
2014174939.tif 000004
【図３】
2014174939.tif 000005
【図４】
2014174939.tif 000006
【図５】
2014174939.tif 000007
【図６】
2014174939.tif 000008
【図７】
2014174939.tif 000009
【図８】
2014174939.tif 000010
【図９】
2014174939.tif 000011
【図１０】
2014174939.tif 000012