(57)【要約】【課題】  ＸＭＬデータのフィルタリング配信システムにおいて、各配信サーバの配信負荷が均等に分散するようにＸＰａｔｈ式を配信サーバに配置する。【解決手段】  ＸＰａｔｈフィルタ処理手段１３は、ＸＰａｔｈ式格納手段１２にあるＸＰａｔｈ式とＸＭＬデータ格納手段１０にあるＸＭＬデータを入力して、ＸＰａｔｈ式を条件としたＸＭＬデータ内の検索結果を出力する。ＸＰａｔｈ式特徴量生成手段２０は、ＸＰａｔｈフィルタ処理手段１３の検索結果から生成したＸＰａｔｈ式の特徴量をＸＰａｔｈ式特徴量格納手段２１に出力する。配信サーバ重複量生成手段２２は、追加されたＸＰａｔｈ式と配信サーバに登録されているＸＰａｔｈ式の重複量を算出する。配信サーバ全配信量生成手段２３は、登録されているＸＰａｔｈ式の配信量を合計する。配信サーバ選択手段２４は、重複量と配信量に基づいて追加ＸＰａｔｈ式を処理させるべき配信サーバを選択する。【選択図】      図２
2005250782.tif 000002
【特許請求の範囲】
【請求項１】
ＸＭＬデータをストリーミング送信するＸＭＬデータ供給サーバと、
ＸＭＬデータをフィルタリングする条件を新規追加するためにＸＰａｔｈ式を送信するユーザ端末と、
配置されたＸＰａｔｈ式に従ってＸＭＬデータをフィルタリングし、そのフィルタリングしたＸＭＬデータを、ＸＰａｔｈ式に対応するユーザ端末に送信する複数の配信サーバと、
にネットワークを介して接続され、前記ＸＭＬデータ供給サーバから受信したＸＭＬデータを前記配信サーバに送信すると共に、前記ユーザ端末から受信したＸＰａｔｈ式を前記配信サーバに配置する配信サーバ選択装置であって、
前記ＸＭＬデータ供給サーバから受信したＸＭＬデータを格納するＸＭＬデータ格納手段と、
前記ユーザ端末から受信したＸＰａｔｈ式を格納するＸＰａｔｈ式格納手段と、
前記ＸＭＬデータ格納手段に格納されたＸＭＬデータおよび前記ＸＰａｔｈ式格納手段に格納されたＸＰａｔｈ式を入力し、そのＸＰａｔｈ式を条件としてＸＭＬデータ内を検索したフィルタリング結果を出力するＸＰａｔｈフィルタ処理手段と、
前記ＸＰａｔｈフィルタ処理手段からフィルタリング結果を入力し、その入力したフィルタリング結果のＸＭＬデータ内における開始位置であるスタートポイント、終了位置であるエンドポイントおよび文字数である配信量をＸＰａｔｈ式の特徴量として生成するＸＰａｔｈ式特徴量生成手段と、
前記ＸＰａｔｈ式特徴量生成手段が生成したＸＰａｔｈ式の特徴量を格納するＸＰａｔｈ式特徴量格納手段と、
前記ＸＰａｔｈ式特徴量格納手段に格納されたＸＰａｔｈ式の特徴量から、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出する配信サーバ重複量生成手段と、
前記ＸＰａｔｈ式特徴量格納手段に格納されたＸＰａｔｈ式の特徴量から、各配信サーバに既に登録されているＸＰａｔｈ式の配信量の合計である全配信量を算出する配信サーバ全配信量生成手段と、
前記配信サーバ重複量生成手段が算出した重複量および前記配信サーバ全配信量生成手段が算出した全配信量に基づいて、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを複数の配信サーバの中から選択する配信サーバ選択手段と、
を備えることを特徴とする配信サーバ選択装置。
【請求項２】
前記配信サーバ重複量生成手段は、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出する場合、
新規追加されたＸＰａｔｈ式の特徴量と当該配信サーバに既に登録されている全てのＸＰａｔｈ式の特徴量との全組合せについてスタートポイント同士およびエンドポイント同士を比較し、その比較した結果として特徴量に包含関係があったとき、含まれる方の特徴量の配信量を合計し、その合計値を当該配信サーバの重複量とする
ことを特徴とする請求項１に記載の配信サーバ選択装置。
【請求項３】
前記配信サーバ選択手段は、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを選択する場合、
前記各配信サーバの全配信量の最大値および最小値の差が所定値より小さいとき、前記重複量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当て、
前記各配信サーバの全配信量の最大値および最小値の差が所定値より小さくないとき、前記全配信量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当てる
ことを特徴とする請求項１または請求項２に記載の配信サーバ選択装置。
【請求項４】
ＸＭＬデータをストリーミング送信するＸＭＬデータ供給サーバと、
ＸＭＬデータをフィルタリングする条件を新規追加するためにＸＰａｔｈ式を送信するユーザ端末と、
配置されたＸＰａｔｈ式に従ってＸＭＬデータをフィルタリングし、そのフィルタリングしたＸＭＬデータを、ＸＰａｔｈ式に対応するユーザ端末に送信する複数の配信サーバと、
にネットワークを介して接続され、前記ＸＭＬデータ供給サーバから受信したＸＭＬデータを前記配信サーバに送信すると共に、前記ユーザ端末から受信したＸＰａｔｈ式を前記配信サーバに配置する配信サーバ選択装置における配信サーバ選択方法であって、
前記ＸＭＬデータ供給サーバから受信したＸＭＬデータを所定の格納手段に格納するステップと、
前記ユーザ端末から受信したＸＰａｔｈ式を所定の格納手段に格納するステップと、
前記格納されたＸＭＬデータおよびＸＰａｔｈ式を入力し、そのＸＰａｔｈ式を条件としてＸＭＬデータ内を検索したフィルタリング結果を出力するステップと、
前記フィルタリング結果を入力し、その入力したフィルタリング結果のＸＭＬデータ内における開始位置であるスタートポイント、終了位置であるエンドポイントおよび文字数である配信量をＸＰａｔｈ式の特徴量として生成するステップと、
前記生成したＸＰａｔｈ式の特徴量を所定の格納手段に格納するステップと、
前記格納されたＸＰａｔｈ式の特徴量から、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出するステップと、
前記格納されたＸＰａｔｈ式の特徴量から、各配信サーバに既に登録されているＸＰａｔｈ式の配信量の合計である全配信量を算出するステップと、
前記算出した重複量および全配信量に基づいて、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを複数の配信サーバの中から選択するステップと、
を含むことを特徴とする配信サーバ選択方法。
【請求項５】
前記格納されたＸＰａｔｈ式の特徴量から、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出するステップにおいて、
新規追加されたＸＰａｔｈ式の特徴量と当該配信サーバに既に登録されている全てのＸＰａｔｈ式の特徴量との全組合せについてスタートポイント同士およびエンドポイント同士を比較し、その比較した結果として特徴量に包含関係があったとき、含まれる方の特徴量の配信量を合計し、その合計値を当該配信サーバの重複量とする
ことを特徴とする請求項４に記載の配信サーバ選択方法。
【請求項６】
前記算出した重複量および全配信量に基づいて、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを複数の配信サーバの中から選択するステップにおいて、
前記各配信サーバの全配信量の最大値および最小値の差が所定値より小さいとき、前記重複量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当て、
前記各配信サーバの全配信量の最大値および最小値の差が所定値より小さくないとき、前記全配信量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当てる
ことを特徴とする請求項４または請求項５に記載の配信サーバ選択方法。
【請求項７】
請求項４ないし請求項６のいずれか一項に記載の配信サーバ選択方法を、コンピュータに実行させることを特徴とする配信サーバ選択プログラム。
【請求項８】
請求項７に記載の配信サーバ選択プログラムを記録したコンピュータによる読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーミングＸＭＬデータのフィルタリング配信システムにおいて、フィルタリング配信を行う配信サーバに対してＸＰａｔｈ式の配置を行う配信サーバ選択装置、配信サーバ選択方法、配信サーバ選択プログラムおよびその記録媒体に関する。
【背景技術】
【０００２】
ＸＭＬ（Extensible Markup Language）は、ネットワーク上で交換可能な標準的なデータ記述方式を提供する技術であり、現在ｎｅｗｓＭＬなどをはじめとして広く使われている。ＸＰａｔｈ式は、ＸＭＬデータの一部を特定するための記述方式を提供する技術であり、ＸＭＬデータに対するクエリや変換などにおいて重要な役割を果たしている。ＸＭＬデータとその中の一部分を指定しているＸＰａｔｈ式を入力としたときに、ＸＰａｔｈ式により指定された部分を抽出する技術が注目を集めている。例えば、ｎｅｗｓＭＬは、ニュース記事やそれに関連した画像、動画、音声などをＷｅｂ、携帯電話、テレビ（データ放送）などのさまざまな端末に送信することができる。このとき、ｎｅｗｓＭＬの受け側（利用者）は、ＸＰａｔｈ式を配信サーバに登録しておくことによって、膨大な情報の中から自分に必要な情報のみを得ることができる。このような配信システムを実現するために、ＸＰａｔｈ処理フィルタリングモジュールがいくつか提案されている。その１つであるＤＦＡ（Deterministic Finite Automata）について、非特許文献１に記載されている。
【非特許文献１】Todd J. Green, Gerome Miklau, Makoto Onizuka, and Dan Suciu、“Processing XML Streams with Deterministic Automata”、［online］、In Proceeding of ICDT(2003)、［２００４年３月１日検索］、インターネット＜ＵＲＬ：http://www.cs.washington.edu/homes/suciu/paper-techreport.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の配信サーバは、帯域幅の制限などによって最大でも数千のユーザまでしか配信できないという問題がある。今後、フィルタリング配信のニーズが増加することが予測されるが、ユーザ数が数十万ないし数百万のような膨大な数に上ったときに発生する問題は、ＸＰａｔｈ式によってフィルタリングされたＸＭＬデータの配信量が結果的に膨大となることである。そのため、複数の配信サーバを用意して、大量のＸＰａｔｈ式を各配信サーバに分散して処理させる必要がある。しかし、単純に複数の配信サーバにＸＰａｔｈ式を割り当てただけでは、配信量の偏りを防ぐことはできない。そこで、ＸＰａｔｈ式を配信負荷が分散するように配置する必要があるが、既存の方法には、ＸＰａｔｈ式とスキーマとを用いてＸＰａｔｈ式の検索結果の包含関係を算出するものしかなかった。その既存の方法には、大きく以下の２つの問題がある。
（１）ＸＰａｔｈ式の仕様が複雑であるため、包含関係算出のための計算に非常に時間がかかる。
（２）その上、ＸＰａｔｈ式間に必ず包含関係があるとは限らない。
これは、ＸＰａｔｈ式同士を比較することの限界であると言える。従って、既存の方法によって、配信負荷を考慮したＸＰａｔｈ式の分散配置を図ることは不可能である。各配信サーバの配信負荷が均等に分散しなければ、多数の配信サーバがあったとしても、配信負荷の大きくかかっている配信サーバによる配信時間が全体の配信時間を遅延させることになってしまう。
【０００４】
そこで、本発明は、前記問題に鑑み、ＸＭＬデータのフィルタリング配信システムにおいて、各配信サーバの配信負荷が均等に分散するようにＸＰａｔｈ式を配信サーバに配置する手段を提供することを課題とする。
【課題を解決するための手段】
【０００５】
前記課題を解決する本発明のうち、請求項１に係る発明は、ＸＭＬデータをストリーミング送信するＸＭＬデータ供給サーバと、ＸＭＬデータをフィルタリングする条件を新規追加するためにＸＰａｔｈ式を送信するユーザ端末と、配置されたＸＰａｔｈ式に従ってＸＭＬデータをフィルタリングし、そのフィルタリングしたＸＭＬデータを、ＸＰａｔｈ式に対応するユーザ端末に送信する複数の配信サーバとにネットワークを介して接続され、ＸＭＬデータ供給サーバから受信したＸＭＬデータを配信サーバに送信すると共に、ユーザ端末から受信したＸＰａｔｈ式を配信サーバに配置する配信サーバ選択装置であって、ＸＭＬデータ供給サーバから受信したＸＭＬデータを格納するＸＭＬデータ格納手段と、ユーザ端末から受信したＸＰａｔｈ式を格納するＸＰａｔｈ式格納手段と、ＸＭＬデータ格納手段に格納されたＸＭＬデータおよびＸＰａｔｈ式格納手段に格納されたＸＰａｔｈ式を入力し、そのＸＰａｔｈ式を条件としてＸＭＬデータ内を検索したフィルタリング結果を出力するＸＰａｔｈフィルタ処理手段と、ＸＰａｔｈフィルタ処理手段からフィルタリング結果を入力し、その入力したフィルタリング結果のＸＭＬデータ内における開始位置であるスタートポイント、終了位置であるエンドポイントおよび文字数である配信量をＸＰａｔｈ式の特徴量として生成するＸＰａｔｈ式特徴量生成手段と、ＸＰａｔｈ式特徴量生成手段が生成したＸＰａｔｈ式の特徴量を格納するＸＰａｔｈ式特徴量格納手段と、ＸＰａｔｈ式特徴量格納手段に格納されたＸＰａｔｈ式の特徴量から、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出する配信サーバ重複量生成手段と、ＸＰａｔｈ式特徴量格納手段に格納されたＸＰａｔｈ式の特徴量から、各配信サーバに既に登録されているＸＰａｔｈ式の配信量の合計である全配信量を算出する配信サーバ全配信量生成手段と、配信サーバ重複量生成手段が算出した重複量および配信サーバ全配信量生成手段が算出した全配信量に基づいて、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを複数の配信サーバの中から選択する配信サーバ選択手段とを備えることを特徴とする。
なお、請求項における「格納」とは、所定のメモリに記憶することをいう。
【０００６】
請求項２に係る発明は、配信サーバ選択装置であって、配信サーバ重複量生成手段が、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出する場合、新規追加されたＸＰａｔｈ式の特徴量と当該配信サーバに既に登録されている全てのＸＰａｔｈ式の特徴量との全組合せについてスタートポイント同士およびエンドポイント同士を比較し、その比較した結果として特徴量に包含関係があったとき、含まれる方の特徴量の配信量を合計し、その合計値を当該配信サーバの重複量とすることを特徴とする。
なお、請求項における「重複量」とは、配信サーバがフィルタリングしたＸＭＬデータをユーザ端末に送信する場合、新規追加されたＸＰａｔｈ式によるフィルタリングデータと、既に登録されている各ＸＰａｔｈ式によるフィルタリングデータとが同じ内容を含むとき、その同じ内容のデータの配信量を合計した値のことをいう。１つの配信サーバが、同じ内容を含むフィルタリングデータを多くのユーザ端末に送信すればするほど、その配信サーバの重複量は大きくなる。これに対して、フィルタリングデータが極力同じ内容を含まないようにＸＰａｔｈ式を別の配信サーバに配置すれば、同じ内容を含むフィルタリングデータを送信するユーザ端末が少なくなり、その配信サーバの重複量は小さくなる。
この「重複量」は、配信サーバの新規追加されたＸＰａｔｈ式に係る一時的な配信負荷を示す指標となる。一方、請求項における「全配信量」は、例えば、配信サーバが既に登録されている全てのＸＰａｔｈ式によって１つのＸＭＬデータをフィルタリング配信するような場合の配信負荷を示す指標となる。
【０００７】
請求項３に係る発明は、配信サーバ選択装置であって、配信サーバ選択手段が、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを選択する場合、各配信サーバの全配信量の最大値および最小値の差が所定値より小さいとき、重複量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当て、各配信サーバの全配信量の最大値および最小値の差が所定値より小さくないとき、全配信量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当てることを特徴とする。
【０００８】
請求項４に係る発明は、ＸＭＬデータをストリーミング送信するＸＭＬデータ供給サーバと、ＸＭＬデータをフィルタリングする条件を新規追加するためにＸＰａｔｈ式を送信するユーザ端末と、配置されたＸＰａｔｈ式に従ってＸＭＬデータをフィルタリングし、そのフィルタリングしたＸＭＬデータを、ＸＰａｔｈ式に対応するユーザ端末に送信する複数の配信サーバとにネットワークを介して接続され、ＸＭＬデータ供給サーバから受信したＸＭＬデータを配信サーバに送信すると共に、ユーザ端末から受信したＸＰａｔｈ式を配信サーバに配置する配信サーバ選択装置における配信サーバ選択方法であって、ＸＭＬデータ供給サーバから受信したＸＭＬデータを所定の格納手段に格納するステップと、ユーザ端末から受信したＸＰａｔｈ式を所定の格納手段に格納するステップと、格納されたＸＭＬデータおよびＸＰａｔｈ式を入力し、そのＸＰａｔｈ式を条件としてＸＭＬデータ内を検索したフィルタリング結果を出力するステップと、フィルタリング結果を入力し、その入力したフィルタリング結果のＸＭＬデータ内における開始位置であるスタートポイント、終了位置であるエンドポイントおよび文字数である配信量をＸＰａｔｈ式の特徴量として生成するステップと、生成したＸＰａｔｈ式の特徴量を所定の格納手段に格納するステップと、格納されたＸＰａｔｈ式の特徴量から、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出するステップと、格納されたＸＰａｔｈ式の特徴量から、各配信サーバに既に登録されているＸＰａｔｈ式の配信量の合計である全配信量を算出するステップと、算出した重複量および全配信量に基づいて、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを複数の配信サーバの中から選択するステップとを含むことを特徴とする。
【０００９】
請求項５に係る発明は、配信サーバ選択方法であって、格納されたＸＰａｔｈ式の特徴量から、新規追加されたＸＰａｔｈ式および各配信サーバに既に登録されているＸＰａｔｈ式の重複量を算出するステップにおいて、新規追加されたＸＰａｔｈ式の特徴量と当該配信サーバに既に登録されている全てのＸＰａｔｈ式の特徴量との全組合せについてスタートポイント同士およびエンドポイント同士を比較し、その比較した結果として特徴量に包含関係があったとき、含まれる方の特徴量の配信量を合計し、その合計値を当該配信サーバの重複量とすることを特徴とする。
【００１０】
請求項６に係る発明は、配信サーバ選択方法であって、算出した重複量および全配信量に基づいて、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを複数の配信サーバの中から選択するステップにおいて、各配信サーバの全配信量の最大値および最小値の差が所定値より小さいとき、重複量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当て、各配信サーバの全配信量の最大値および最小値の差が所定値より小さくないとき、全配信量が最小である配信サーバに、新規追加されたＸＰａｔｈ式を割り当てることを特徴とする。
【００１１】
請求項７に係る発明は、各配信サーバ選択方法を、コンピュータに実行させることを特徴とする配信サーバ選択プログラムである。
【００１２】
請求項８に係る発明は、配信サーバ選択プログラムを記録したコンピュータによる読み取り可能な記録媒体である。
【発明の効果】
【００１３】
請求項１および請求項４に係る発明によれば、ＸＰａｔｈ式特徴量格納手段に格納されたＸＰａｔｈ式の特徴量に基づいて処理するので、ネットワークを介して配信サーバに問い合わせることなく短時間で、新規追加されたＸＰａｔｈ式を配置すべき配信サーバを選択することができる。
【００１４】
請求項２および請求項５に係る発明によれば、重複量を算出することによって、配信サーバの一時的な配信負荷を示す指標を取得することができ、それによって配信負荷の均等分散を図ることができる。
【００１５】
請求項３および請求項６に係る発明によれば、複数の配信サーバに対して配信負荷が均等に分散するように、新規追加されたＸＰａｔｈ式を配信サーバに割り当てることができる。これによって、任意のＸＰａｔｈ式が登録されて、任意のＸＭＬデータを配信する場合であっても、ＸＰａｔｈ式の配信サーバへの配置を適切に行うことができ、ユーザ端末にフィルタリングＸＭＬデータを高速に配信することが可能になる。
【００１６】
請求項７に係る発明によれば、コンピュータに配信サーバ選択方法を実行させるので、コンピュータを配信サーバ選択装置として機能させることができる。
【００１７】
請求項８に係る発明によれば、記録媒体に記録した配信サーバ選択プログラムをコンピュータにインストールすることができるので、コンピュータを配信サーバ選択装置として機能させることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を実施するための最良の形態（以下、「本発明の実施の形態」という）について図面を参照して詳細に説明する。
【００１９】
≪システムの構成と概要≫
図１を参照して、本発明の配信サーバ選択装置、配信サーバ選択方法および配信サーバ選択プログラムの実施の形態に係るＸＭＬデータフィルタリング配信システムの構成と概要について説明する。
ＸＭＬデータフィルタリング配信システム１００は、配信サーバ選択装置１、複数の配信サーバ２、ＸＭＬデータ供給サーバ３および複数のユーザ端末４が、ネットワーク５によって接続されて構成される。また、配信サーバ選択装置１および複数の配信サーバ２は、ネットワーク６によって接続される。
配信サーバ選択装置１は、ＸＭＬデータ供給サーバ３からネットワーク５経由でＸＭＬデータを受信し、その受信したＸＭＬデータをネットワーク６経由で各配信サーバ２に送信する。また、配信サーバ選択装置１は、ユーザ端末４からネットワーク５経由でＸＰａｔｈ式を受信し、その受信したＸＰａｔｈ式を配置すべき配信サーバ２を選択し、その選択した配信サーバ２にネットワーク６経由でＸＰａｔｈ式を配置する。配信サーバ２は、配信サーバ選択装置１からネットワーク６経由でＸＭＬデータおよびＸＰａｔｈ式を受信し、そのＸＰａｔｈ式によってＸＭＬデータをフィルタリングし、そのフィルタリングしたＸＭＬデータを、ＸＰａｔｈ式に対応するユーザ端末４にネットワーク５経由で送信する。ＸＭＬデータ供給サーバ３は、ニュース記事やそれに関連した画像、動画、音声などを収集し、その収集した情報をＸＭＬデータとしてストリーミング送信するサーバである。ここでは、ネットワーク５を介してＸＭＬデータを配信サーバ選択装置１に送信するものとする。ユーザ端末４は、ユーザが新規追加したいＸＰａｔｈ式をネットワーク５経由で配信サーバ選択装置１に送信する。また、そのＸＰａｔｈ式によってフィルタリングされたＸＭＬデータを、配信サーバ２からネットワーク５を介して受信する。
【００２０】
なお、配信サーバ選択装置１、配信サーバ２、ＸＭＬデータ供給サーバ３およびユーザ端末４は、ＰＣ（Personal Computer）やサーバなどのコンピュータによって実現される。ネットワーク５は、インターネットなどによって実現される。ネットワーク６は、配信サーバ選択装置１から配信サーバ２にニュース記事などのＸＭＬデータをコピー配信するときに、リアルタイム性が要求されるので、専用回線などによって実現される。また、配信サーバ２と、その配信サーバ２に配置されたＸＰａｔｈ式に対応するユーザ端末４とは、ネットワーク５を介して常時接続され、ＸＰａｔｈ式によってフィルタリングされたＸＭＬデータが随時送受信されるように構成されるものとする。
【００２１】
次に、ＸＭＬデータフィルタリング配信システム１００の概要について説明する。前記したように、ＸＰａｔｈ式およびスキーマだけでは、配信負荷が分散するようにＸＰａｔｈ式を配信サーバに配置することは不可能である。そこで、本発明においては、逐次的に送られてくるＸＭＬデータに類似度があるという仮定をおき、現在のＸＭＬデータから得られる特徴量を基にしてＸＰａｔｈ式を配置して、将来送られてくるＸＭＬデータにも対応するものとする。図１を参照しながら、複数の配信サーバ２に対してどのようにしてＸＰａｔｈ式が追加されるかについて概説する。まず、ユーザが、ユーザ端末４を使用して、ＸＰａｔｈ式を配信サーバ選択装置１に対して新規追加する。続いて、配信サーバ選択装置１に新しいＸＭＬデータが送られてきたとき、後記する方法に従ってＸＰａｔｈ式を配置する配信サーバ２を選択する。追加されたＸＰａｔｈ式は、所定の配信サーバ２に割り当てられたので、次に送られてくるＸＭＬデータは、その所定の配信サーバ２から追加されたＸＰａｔｈ式に対応するユーザ端末４に配信されることになる。このようにして、逐次的に送信されてくるＸＭＬデータを用いてＸＰａｔｈ式を適切に配置することができる。このような構成および動作から、配信サーバ選択装置１に、全ての配信サーバに登録されているＸＰａｔｈ式が登録されていることになる。本発明では、配信サーバ選択装置１が配信サーバ２を選択するとき、配信サーバ２への問い合わせを行うことなく、配信サーバ選択装置１に登録されているＸＰａｔｈ式および入力されるＸＭＬデータから配信サーバ２の選択を行うものとする。
【００２２】
≪配信サーバ選択装置の構成と概要≫
図２を参照して、本発明の実施の形態に係る配信サーバ選択装置の構成について説明する。配信サーバ選択装置１は、ＸＭＬデータ格納手段１０、ＸＭＬデータ登録手段１１、ＸＰａｔｈ式格納手段１２、ＸＰａｔｈフィルタ処理手段１３、ＸＰａｔｈ式登録手段１４、ＸＰａｔｈ式特徴量生成手段２０、ＸＰａｔｈ式特徴量格納手段２１、配信サーバ重複量生成手段２２、配信サーバ全配信量生成手段２３および配信サーバ選択手段２４から構成される。
ＸＭＬデータ格納手段１０は、登録されたＸＭＬデータを格納する。ＸＭＬデータ登録手段１１は、ＸＭＬデータ供給サーバ３からフィルタリングされていない状態のＸＭＬデータを受信し、登録を行う。ＸＰａｔｈ式格納手段１２は、全てのユーザのＸＰａｔｈ式を格納する。ＸＰａｔｈフィルタ処理手段１３は、ＸＰａｔｈ式とＸＭＬデータとを入力して、それぞれのＸＰａｔｈ式を条件としてＸＭＬデータ内を検索した結果をＳＡＸ（Simple API for XML）イベントとして出力する。
ここで、ＳＡＸは、ＸＭＬデータの解釈、検証を行うためのＡＰＩ（Application Program Interface）の１つである。ＸＭＬデータを１つの木構造に変換するのではなく、ＸＭＬデータを先頭から１行ずつ順に読み込んで、要素が現れるたびに対応する処理手順を呼び出すという方式を用いている。このため、巨大なＸＭＬデータを扱ってもメモリに負担がかからず高速に処理できるという特徴がある。
【００２３】
ＸＰａｔｈ式登録手段１４は、ユーザがユーザ端末４によって登録するＸＰａｔｈ式をネットワーク５経由で受信する。ＸＰａｔｈ式特徴量生成手段２０は、ＸＰａｔｈフィルタ処理手段１３で生成されたＳＡＸイベントを入力し、そのＳＡＸイベントからＸＰａｔｈ式の特徴量を生成し、その特徴量をＸＰａｔｈ式特徴量格納手段２１に出力する。ＸＰａｔｈ式特徴量格納手段２１は、ＸＰａｔｈ式の特徴量を格納する。配信サーバ重複量生成手段２２は、追加されるＸＰａｔｈ式（以下、「追加ＸＰａｔｈ式」という）と配信サーバ２に既に登録されているＸＰａｔｈ式との重複量を算出する。配信サーバ全配信量生成手段２３は、配信サーバ２に既に登録されているＸＰａｔｈ式の配信量の合計である全配信量を算出する。配信サーバ選択手段２４は、算出した重複量および全配信量に基づいて複数の配信サーバ２の中から追加ＸＰａｔｈ式を処理させるべき配信サーバ２を選択する。
【００２４】
なお、ＸＭＬデータ登録手段１１、ＸＰａｔｈフィルタ処理手段１３、ＸＰａｔｈ式登録手段１４、ＸＰａｔｈ式特徴量生成手段２０、配信サーバ重複量生成手段２２、配信サーバ全配信量生成手段２３および配信サーバ選択手段２４は、ＣＰＵ（Central Processing Unit）が所定のメモリに記憶されたプログラムを実行することによって実現される。また、ＸＭＬデータ格納手段１０、ＸＰａｔｈ式格納手段１２およびＸＰａｔｈ式特徴量格納手段２１は、ハードディスク装置などの不揮発性記憶装置によって実現される。
【００２５】
≪ＸＭＬフィルタリング処理≫
ここで、図３を参照して、ＸＭＬフィルタリング処理について説明する。図３（ａ）に、ＸＭＬデータの例を示す。このＸＭＬデータは、文献用のＸＭＬデータであり、bibタグの下にbookタグがある。bookタグの下には、titleタグおよびauthorタグがある。図３（ｂ）に、ＸＰａｔｈ式の例を示す。このＸＰａｔｈ式は、ＸＭＬデータに対して、発行年が１９９９年であり、題名にＸＭＬを含み、著者がBobであるような条件に一致したbook要素を抽出するＸＰａｔｈ式を示す。このとき、“[”および“]”で囲まれた部分がＸＰａｔｈ式の条件を表すことになる。図３（ｃ）に、図３（ａ）のＸＭＬデータを図３（ｂ）のＸＰａｔｈ式で検索したときの検索結果を示す。
【００２６】
≪ＳＡＸのコールバック関数≫
次に、ＳＡＸのコールバック関数について説明する。ＳＡＸは、前記のように、ＸＭＬデータを解析するときに木構造に変換しない。そこで、ＸＭＬデータの解析処理を行うときには、コールバック関数を用いた手法がとられている。図４に、ＳＡＸパーサとユーザアプリケーションとの関係を示している。ＳＡＸパーサにＸＭＬデータが入力されると、上から順に読み込まれる。bibが認識されると、ＳＡＸパーサを利用したＸＰａｔｈフィルタプロセッサは、ユーザアプリケーションの持つ関数部内のstartElement関数を呼び出す。このとき、startElement関数の引数にbibを入れておくことによって、ユーザアプリケーション側でbibという情報を取得することができる。このように、ＸＰａｔｈフィルタプロセッサが予め自身に登録されたユーザアプリケーションの関数を呼び出すことをコールバックと呼ぶ。コールバック関数の処理の詳細については、後記する。なお、ＸＰａｔｈフィルタプロセッサは、ＸＰａｔｈフィルタ処理手段１３に相当し、ユーザアプリケーションの持つ関数部（コールバック関数）は、ＸＰａｔｈ式特徴量生成手段２０に相当する。従って、コールバック関数の呼び出しは、ＸＰａｔｈフィルタ処理手段１３とＸＰａｔｈ式特徴量生成手段２０との間のインタフェースに相当する。
【００２７】
≪ＸＰａｔｈ式の特徴量を算出する処理≫
図５は、ＸＰａｔｈ式特徴量生成手段の処理の内容を示す。ＸＭＬデータおよびＸＰａｔｈ式がＸＰａｔｈフィルタ処理手段１３に入力されると、ＸＭＬデータ内の要素タグやテキストが読み込まれるごとにＸＰａｔｈ式特徴量生成手段２０のコールバック関数が呼ばれる。図５には、そのコールバック関数がコールされるタイミングおよびそのときに行うべき処理内容が記されている。
startDocument()は、ドキュメントの読み込みが開始されたときに呼び出され、１つのＸＭＬドキュメントに関する一連の処理を行うための準備を行う。まず、ＸＭＬドキュメント内の位置（スタートポイント、エンドポイント）およびスタートポイントとエンドポイントとの間の区間に含まれる文字数（まとめて「特徴量」という）を複数格納できるリストを確保する。次に、ＸＭＬドキュメント内の位置を示すための変数gを用意する。更に、ＸＰａｔｈ式が、フィルタリングされるＸＭＬドキュメント上の範囲に該当（ヒット）する場合に、そのようなＸＰａｔｈ式を格納する変数Ｓを用意する。
endDocument()は、ドキュメントの読み込みが終了したときに呼び出され、１つのＸＭＬドキュメントに関する一連の処理を終了する。
【００２８】
startElement(len)は、要素の開始タグを読み込んだときに呼び出される。characters(len)は、要素タグ（要素の開始タグおよび終了タグ）にはさまれるテキストを読み込んだときに呼び出される。startElement(len)およびcharacters(len)は、変数gをインクリメント（１を加算、以下同様）し、変数Ｓに含まれる各ＸＰａｔｈ式に関して、各ノードの特徴量の中の配信量（文字数）を格納する変数Ｔに、要素タグまたはテキストの文字列の長さlenを加える。lenは、startElement(len)およびcharacters(len)の引数として与えられるものとする。また、要素の文字列の長さには、“<”および“>”を含まないものとする。
endElement()は、要素の終了タグを読み込んだときに呼び出され、変数gをインクリメントする。なお、配信量（文字数）は、絶対的な値ではなく、他と大小比較するための相対的な値であるので、要素の終了タグについては文字列の長さの加算を行わないものとする。要素の終了タグは、要素の開始タグと対になって必ず存在するものであり、前記のようにstartElement(len)において要素の開始タグに関する文字列の長さの加算が行われている。従って、要素の終了タグに関する文字列の長さの加算を行うか否かは、そのいずれかに統一すれば、配信量の大小比較の結果に影響を与えない。そこで、計算量を削減するために、要素の終了タグに関する文字列の長さの加算は行わないものとする。
【００２９】
startContext(xp)は、所定のＸＰａｔｈ式がフィルタリングされる範囲に入ったときに呼び出される。その処理内容として、まず、引数として、フィルタリングされる範囲に入ったＸＰａｔｈ式xpが渡されるので、それを変数Ｓに追加する。また、引数であるＸＰａｔｈ式xpの持っている特徴量のリストに要素を格納する領域を追加する。そして、追加された領域のうち、スタートポイントを格納する領域に変数gを代入する。
endContext(xp)は、所定のＸＰａｔｈ式がフィルタリングされる範囲を超えたときに呼び出される。その処理内容として、まず、変数ＳからＸＰａｔｈ式xpを削除する。次に、ＸＰａｔｈ式xpの持つエンドポイントを格納する領域に変数gを代入する。
【００３０】
図６は、ＸＰａｔｈ式の例であるxpath＿exampleによって得られるＸＭＬデータの検索結果を枠で囲んだ図である。一般的に、ＸＰａｔｈ式の検索結果は、複数の部分からなる。図６では、２つの箇所が検索結果となっているが、ＸＭＬデータが更にname要素を持つのであれば、検索結果は更に増える。このとき、１つの枠で囲まれた部分をノードといい、それらの集合をノードセットという。図７に示すように、ＸＭＬデータは、木による表現が可能である。ＸＭＬデータは、ＸＭＬデータの要素を節としてもつ木として表現される。ＸＰａｔｈ式に対する検索結果は、木の中の節（ノード）を複数得るので、１つのＸＰａｔｈ式の検索結果がノードセット（ノードの集合）を持つことが分かる。これによれば、ＸＰａｔｈ式の特徴量を得ることは、ノードセットに対する特徴量を得ることと等価である。
【００３１】
ノードセットの持つ特徴量について説明する。図８は、特徴量の例を示している。図６に対して、特徴量としてどの部分に注目するかが記されている。特徴量は、まず検索結果のノードに対して考えることができる。検索結果ノードのスタートポイント、エンドポイントおよび配信量を検索結果ノードの特徴量とする。これまでの説明によれば、検索結果ノードは１つのＸＰａｔｈ式に対して複数持つことが分かる。つまり、ＸＰａｔｈ式の特徴量は、図９に示すように、スタートポイント、エンドポイントおよび文字列の長さという３つの属性を持ったベクトルのリストとなる。文字列の長さは、実際に配信サーバ２にＸＰａｔｈ式が登録されていれば、ユーザに配信される配信量と等価である。そこで、今後、文字列の長さと配信量とは同じ意味を指すものとして説明を進める。例えば、図６では、name要素が解析されると、xpath＿exampleを引数として持ったstartContext(xp)が呼ばれる。次に、startElement(４)が呼ばれる。ここで、引数が４になっているのは、nameの文字数が４であるからである。次に、family要素が解析されると、startElement(６)が呼び出され、Bossが解析されると、characters(４)が呼び出されるという具合に解析作業が進み、前記したＸＰａｔｈ式特徴量生成手段２０のコールバック関数による処理に従って特徴量を得ることができる。
【００３２】
≪配信サーバの全配信量を算出する処理≫
図１０は、配信サーバ全配信量生成手段の処理を示すフローチャートである。ここで、配信サーバ２は複数あるので、その分だけこの処理が実行されることになる。
まず、所定の配信サーバ２に登録されているＸＰａｔｈ式とその特徴量を入力する（Ｓ１００１）。次に、その配信サーバ２の全配信量を格納する変数Ｑを用意し、初期化（ゼロ設定）する（Ｓ１００２）。配信サーバ２に登録されている全てのＸＰａｔｈ式に対して、その特徴量から配信量の合計を求めることになるが、前記のようにＸＰａｔｈ式の特徴量はノードセットに対するものになっているので、ノードセットに含まれるノードに対する特徴量の配信量を合計する必要がある。そこで、未処理のＸＰａｔｈ式があるか否かをチェックする（Ｓ１００３）。未処理のＸＰａｔｈ式があれば（Ｓ１００３のＹｅｓ）、その中から処理するＸＰａｔｈ式を選択する（Ｓ１００４）。次に、選択したＸＰａｔｈ式において未処理のノードがあるか否かをチェックする（Ｓ１００５）。未処理のノードがあれば（Ｓ１００５のＹｅｓ）、その中から処理するノードを選択する（Ｓ１００６）。そして、選択したノードの特徴量のうち、配信量を変数Ｑに加算し（Ｓ１００７）、Ｓ１００５のチェックに戻る。選択したＸＰａｔｈ式において未処理のノードがなければ（Ｓ１００５のＮｏ）、そのＸＰａｔｈ式における全ノードの配信量を変数Ｑに加算したことになるので、Ｓ１００３のチェックに戻る。未処理のＸＰａｔｈ式がなければ（Ｓ１００３のＮｏ）、当該配信サーバ２について登録されている全てのＸＰａｔｈ式における全てのノードの配信量を合計したことになるので、変数Ｑを配信サーバ２の全配信量として配信サーバ選択手段２４に出力する（Ｓ１００８）。
【００３３】
具体例を用いて説明する。図１１には、図８のＸＰａｔｈ式およびＸＭＬデータを実際にＸＰａｔｈ式特徴量生成手段に通した結果として得られる数値を示している。配信サーバ全配信量生成手段２３の処理が開始されるときには、ＸＰａｔｈ式特徴量格納手段２０に、各配信サーバ２に登録されているＸＰａｔｈ式に対するノードの特徴量がリストの形式で格納されている。図１１に示すリストの図において、配信量（２２）と配信量（２４）とを合計し、その合計値に対して更に続くノードの配信量を合計することによって、xpath＿exampleに対する配信量を得ることができる。登録されている全てのＸＰａｔｈ式に対して配信量を合計することによって、配信サーバ２の全配信量を得ることが可能である。
【００３４】
≪追加ＸＰａｔｈ式と配信サーバの重複量を算出する処理≫
図１２は、配信サーバ重複量生成手段の処理を示すフローチャートである。ここでは、配信サーバ２に登録されている各ＸＰａｔｈ式と追加ＸＰａｔｈ式との重複量を算出し、その重複量を合計することで追加ＸＰａｔｈ式に対する配信サーバ２の重複量としている。また、配信サーバ２は複数あるので、その分だけこの処理が実行されることになる。
その処理概要としては、配信サーバ２に登録されているＸＰａｔｈ式を１つ取り出し、追加ＸＰａｔｈ式と比較する。このとき、両ＸＰａｔｈ式の特徴量はノードセットに対するものなので、重複量を一度に計算することはできない。そこで、ノードの特徴量に注目して重複量を算出する。このとき、スタートポイントおよびエンドポイントを用いて包含関係をチェックし、含まれる方のノードの特徴量から配信量を取り出して変数Ｄに加算する。この処理を、登録されている全てのＸＰａｔｈ式、全てのノードに関して行うことで、追加ＸＰａｔｈ式に対する配信サーバ２の重複量を得ることができる。具体的な処理について、以下に説明する。
【００３５】
まず、配信サーバ２に登録されているＸＰａｔｈ式およびその特徴量をＸＰａｔｈ式特徴格納手段２１から入力する（Ｓ１２０１）。次に、追加されるＸＰａｔｈ式（add＿xpとする）およびその特徴量をＸＰａｔｈ式特徴格納手段２１から入力する（Ｓ１２０２）。続いて、ＸＰａｔｈ式add＿xpに対する配信サーバ２の重複量を格納するための変数Ｄを用意し、初期化（ゼロ設定）する（Ｓ１２０３）。そして、登録されているＸＰａｔｈ式のうち、未処理のＸＰａｔｈ式があるか否かをチェックする（Ｓ１２０４）。未処理のＸＰａｔｈ式があれば（Ｓ１２０４のＹｅｓ）、処理するＸＰａｔｈ式を選択し、そのＸＰａｔｈ式をsel＿xpとする（Ｓ１２０５）。続いて、選択したＸＰａｔｈ式sel＿xpにおいて未処理のノードがあるか否かをチェックする（Ｓ１２０６）。未処理のノードがあれば（Ｓ１２０６のＹｅｓ）、処理するノードを選択し、その選択したノードの特徴量（スタートポイント、エンドポイント、配信量）をｖとする（Ｓ１２０７）。更に、選択したノードの特徴量ｖに対して、追加ＸＰａｔｈ式add＿xpにおける未処理のノードがあるか否かをチェックする（Ｓ１２０８）。このチェックは、特徴量ｖとの包含関係をチェックしていない、ＸＰａｔｈ式add＿xpのノードの特徴量があるか否かを確認するものである。未処理のノードがあれば（Ｓ１２０８のＹｅｓ）、処理するノードを選択し、その選択したノードの特徴量（スタートポイント、エンドポイント、配信量）をｔとする（Ｓ１２０９）。そして、特徴量ｖおよびｔの包含関係をチェックし、含まれている方の配信量を変数Ｄに加算する（Ｓ１２１０）。この処理の詳細は、後記する。その後、Ｓ１２０８のチェックに戻る。
【００３６】
特徴量ｖに対して、追加ＸＰａｔｈ式add＿xpにおける未処理のノードがなければ（Ｓ１２０８のＮｏ）、特徴量ｖとＸＰａｔｈ式add＿xpの全ノードの特徴量との包含関係のチェックが終了したことになるので、Ｓ１２０６のチェックに戻る。選択したＸＰａｔｈ式sel＿xpにおいて未処理のノードがなければ（Ｓ１２０６のＮｏ）、当該ＸＰａｔｈ式sel＿xpの全ノードの特徴量と、追加ＸＰａｔｈ式add＿xpの全ノードの特徴量との包含関係のチェックが終了したことになるので、Ｓ１２０４のチェックに戻る。当該配信サーバ２において、未処理のＸＰａｔｈ式がなければ（Ｓ１２０４のＮｏ）、当該配信サーバ２における全ＸＰａｔｈ式の全ノードの特徴量と、追加ＸＰａｔｈ式add＿xpの全ノードの特徴量との包含関係のチェックが終了したことになる。そのとき、変数Ｄを配信サーバ２の重複量として配信サーバ選択手段２４に出力する（Ｓ１２１１）。
【００３７】
例を用いて説明する。図１３には、配信サーバに登録されたＸＰａｔｈ式の中から選択された１つのＸＰａｔｈ式sel＿xpと、追加ＸＰａｔｈ式add＿xpとの重複量を算出する方法の例を示している。図１３（ａ）には、add＿xpに対する特徴量を示している。また、点線枠により検索結果が示されている。一方、sel＿xpの特徴量は、図１１と同様であるため省略する。実線枠により検索結果が示されている。図１３（ａ）から、add＿xpの最初のノードがsel＿xpの最初のノードを含んでいることがわかる。このときの重複量は、sel＿xpのノードの配信量（sel＿xpの最初のノードに対する特徴量の文字列の長さ＝２２）となる。図１３（ｂ）は、sel＿xpおよびadd＿xpの特徴量の重複量を算出する手法を示している。点線の両矢印は、ノードの特徴量を用いて、それぞれのスタートポイントおよびエンドポイントを比較して、重複量を算出することを示している。
【００３８】
図１４には、ノード間の包含関係のチェックによるノードの重複量の算出例を示している。ＸＭＬは木構造であるために、任意の２つのＸＰａｔｈ式をとってきたとき、それぞれの検索結果に包含関係があるか、または、検索結果が全く交わらないかのいずれかになる。このため、図１４（ａ）または図１４（ｂ）のような包含関係がある場合には、含まれる方の配信量を重複量とし、それ以外の場合には、重複量をゼロであるとみなす。ノード間の包含関係のチェックは、２つのＸＰａｔｈ式のノードのスタートポイント同士およびエンドポイント同士の比較によって行う。図１４（ａ）では、スタートポイントは、sel＿xpがadd＿xpより大きいか、等しい。エンドポイントは、add＿xpがsel＿xpより大きいか、等しい。この大小関係によって、sel＿xpの検索結果がadd＿xpの検索結果に含まれることが分かるので、含まれる方であるsel＿xpの配信量（２２）が重複量になる。一方、図１４（ｂ）では、スタートポイントは、add＿xpがsel＿xpより大きいか、等しい。エンドポイントは、sel＿xpがadd＿xpより大きいか、等しい。この大小関係によって、add＿xpの検索結果がsel＿xpの検索結果に含まれることが分かるので、含まれる方であるadd＿xpの配信量が重複量になる。
【００３９】
≪追加ＸＰａｔｈ式を各配信サーバに割り当てる処理≫
図１５は、配信サーバ選択手段の処理を示すフローチャートである。まず、配信サーバ全配信量生成手段２３から各配信サーバ２の全配信量を入力し、配信サーバ重複量生成手段２２から追加ＸＰａｔｈ式に対する全ての配信サーバ２の重複量を入力する（Ｓ１５０１）。次に、各配信サーバ２の全配信量から最大値および最小値を求める（Ｓ１５０２）。続いて、その最大値および最小値の差が所定の定数αより小さいか否かをチェックする（Ｓ１５０３）。所定の定数αより小さければ（Ｓ１５０３のＹｅｓ）、重複量が最小である配信サーバ２を選択する（Ｓ１５０４）。その差が所定の定数αより小さくなければ（Ｓ１５０３のＮｏ）、全ての配信サーバ２の中で全配信量が最小である配信サーバ２を選択する（Ｓ１５０５）。そして、選択した配信サーバ２に、追加されたＸＰａｔｈ式を配置する（Ｓ１５０６）。なお、複数の追加ＸＰａｔｈ式がある場合には、追加されたＸＰａｔｈ式の各配信サーバ２に関する特徴量を求めた後に、各配信サーバ２に割り当てる処理を実行する。
【００４０】
これによって、複数の配信サーバ２に対する配信負荷を均等に分散させることができる。なお、所定の定数αを大きく設定すれば、重複量に基づく配置を行う可能性が高くなり、所定の定数αを小さく設定すれば全配信量に基づく配置を行う可能性が高くなる。
【００４１】
なお、本発明の実施の形態に係る配信サーバ選択装置１は、コンピュータおよびプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体に記録することでその記録媒体によって提供することが可能である。また、そのプログラムをネットワークを通して提供することも可能である。
【００４２】
≪その他の実施の形態≫
以上本発明について好適な実施の形態について一例を示したが、本発明は前記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、以下のような実施の形態が考えられる。
（１）前記実施の形態においては、配信サーバ選択装置１とＸＭＬデータ供給サーバ３との間をインターネットで接続するように記載したが、ＸＭＬデータ供給のリアルタイム性を確保するために専用回線によって接続してもよい。
（２）前記実施の形態においては、コールバック関数endElement()は引数を持たないように記載したが、endElement()に引数lenを持たせることによって、要素の終了タグの文字列の長さを変数Ｔに加算するようにしてもよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態に係るＸＭＬデータフィルタリング配信システムの構成を示す図である。
【図２】本発明の実施の形態に係る配信サーバ選択装置の構成を示す図である。
【図３】本発明の実施の形態に係るＸＭＬフィルタリング処理を説明するための図である。
【図４】本発明の実施の形態に係るＳＡＸパーサとユーザアプリケーションとの関係を示す図である。
【図５】本発明の実施の形態に係るＸＰａｔｈ式特徴量生成手段の処理を示す図である。
【図６】本発明の実施の形態に係るＸＰａｔｈ式によって得られるＸＭＬデータの検索結果を示す図である。
【図７】本発明の実施の形態に係るＸＭＬデータの木による表現を示す図である。
【図８】本発明の実施の形態に係るノードセットの持つ特徴量の例を示す図である。
【図９】本発明の実施の形態に係るＸＰａｔｈ式の特徴量のリスト構造を示す図である。
【図１０】本発明の実施の形態に係る配信サーバ全配信量生成手段の処理を示すフローチャートである。
【図１１】図８のＸＰａｔｈ式およびＸＭＬデータをＸＰａｔｈ式特徴量生成手段に通した結果を示す図である。
【図１２】本発明の実施の形態に係る配信サーバ重複量生成手段の処理を示すフローチャートである。
【図１３】本発明の実施の形態に係る重複量を算出する方法の例を示す図である。（ａ）は、追加ＸＰａｔｈ式の特徴量を示す。（ｂ）は、ＸＰａｔｈ式同士の特徴量の重複量を算出する手法を示す。
【図１４】本発明の実施の形態に係るノード間の包含関係のチェックによるノードの重複量の算出例を示す図である。（ａ）は、add＿xpがsel＿xpを含む例を示す。（ｂ）は、add＿xpがsel＿xpに含まれる例を示す
【図１５】本発明の実施の形態に係る配信サーバ選択手段の処理を示すフローチャートである。
【符号の説明】
【００４４】
１      配信サーバ選択装置
２      配信サーバ
３      ＸＭＬデータ供給サーバ
４      ユーザ端末
５、６  ネットワーク
１０    ＸＭＬデータ格納手段
１１    ＸＭＬデータ登録手段
１２    ＸＰａｔｈ式格納手段
１３    ＸＰａｔｈフィルタ処理手段
１４    ＸＰａｔｈ式登録手段
２０    ＸＰａｔｈ式特徴量生成手段
２１    ＸＰａｔｈ式特徴量格納手段
２２    配信サーバ重複量生成手段
２３    配信サーバ全配信量生成手段
２４    配信サーバ選択手段
【図１】
2005250782.tif 000003
【図２】
2005250782.tif 000004
【図３】
2005250782.tif 000005
【図４】
2005250782.tif 000006
【図５】
2005250782.tif 000007
【図６】
2005250782.tif 000008
【図７】
2005250782.tif 000009
【図８】
2005250782.tif 000010
【図９】
2005250782.tif 000011
【図１０】
2005250782.tif 000012
【図１１】
2005250782.tif 000013
【図１２】
2005250782.tif 000014
【図１３】
2005250782.tif 000015
【図１４】
2005250782.tif 000016
【図１５】
2005250782.tif 000017