(57)【要約】【課題】  通信メッセージの解析処理と検索式の評価を少ない処理負荷で実現できる通信中継システムを提供する。【解決手段】  動作決定手段１３０の持つルールを、単純条件と検索式条件と処理名とで構成する。また動作実行部１５０の持つ処理を、要求検索式と処理内容とで構成する。メッセージ受信時、動作決定手段１３０が、ルールリスト１３１の各単純条件のみを順次評価し、単純条件を満たすルールの検索式条件や要求検索式のみを検索式リスト１１２に追加する。次に、検索式評価手段が、検索式リストに含まれる検索式を対象として、メッセージ１１１の構造化文書の解析と検索式の評価を行う。次に、動作決定手段１３０は、検索式条件を順次評価し、単純条件と検索式条件の双方が満たされる処理を決定し、動作実行手段１５０が、その処理を要求検索式の評価結果を用いて実行する。【選択図】  図１
2006209253.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書を用いた通信メッセージを中継する通信中継システムにおいて、
複数のルールを用いて実行すべき処理を決定する動作決定手段と、
構造化文書に対する検索式を評価する構造化文書評価手段と、
複数の処理のリストを持ち指定された処理を実行する動作実行手段とを備え、
前記動作決定手段が用いるルールが、構造化文書の解析を行わずに評価可能な単純条件と、構造化文書の解析を必要とする構造化文書に対する検索式条件と、条件が満たされるときに実行される処理とによって構成され、
前記ルールにおける処理が、実行される処理の内容と、処理が必要とする構造化文書に対する要求検索式とによって構成される
ことを特徴とする通信中継システム。
【請求項２】
構造化文書がＸＭＬ形式の文書であり、検索式がＸＰａｔｈである
請求項１記載の通信中継システム。
【請求項３】
構造化文書を用いた通信メッセージを中継する通信中継方法において、
ルールを、構造化文書の解析を必要としない単純条件と、構造化文書の解析を必要とする構造化文書に対する検索式条件と、実行すべき処理の組み合わせとで定義し、
複数ルール評価時に、最初に単純条件のみ評価し、
その結果を用いて検索式条件のうち評価すべきものを選択し、
選択された検索式をまとめて評価し、
検索式評価結果を用いて検索式条件を評価して実行すべき処理を決定する
ことを特徴とする通信中継方法。
【請求項４】
処理を、実行すべき処理が必要とする構造化文書に対する要求検索式と、処理内容とで定義し、  検索式条件のうち評価すべきものを選択する手順の後に、前記単純条件の評価結果を用いて要求検索式のうち評価すべきものを選択し、  前記実行すべき処理を決定する手順の後に、決定された処理を、その処理が必要とする前記要求検索式の評価結果を用いて実行する
請求項３記載の通信中継方法。
【請求項５】
ルールの単純条件と検索式条件とを論理積で結合し、
前記検索式条件を選択する手順において、複数のルールのうち単純条件が満たされたルールの検索式を選択する  請求項３記載の通信中継方法。
【請求項６】
複数のルールに、評価の優先度順を指定し、
単純条件のみを評価する手順において、ルールを優先度の高いものから順に評価し、
検索条件の評価なしで単純条件の評価のみでそのルールの条件が満たされる確定ルールが見つかった場合、検索式条件を選択する手順において、前記確定ルールより優先度の低いルールのための検索式を選択しない
請求項３記載の通信中継方法。
【請求項７】
構造化文書がＸＭＬ形式の文書であり、検索式がＸＰａｔｈである
請求項３から請求項６のうちのいずれか１項に記載の通信中継方法。
【請求項８】
構造化文書を用いた通信メッセージを中継する通信中継システムにおけるコンピュータに、
ルールを、構造化文書の解析を必要としない単純条件と、構造化文書の解析を必要とする構造化文書に対する検索式条件と、実行すべき処理との組み合わせで定義するルール定義処理と、
複数のルールを評価するときに、最初に単純条件のみ評価する単純条件評価処理と、  その結果を用いて検索式条件のうち評価すべきものを選択する検索式選択処理と、  選択された検索式をまとめて評価する検索式評価処理と、  検索式評価結果を用いて検索式条件を評価して実行すべき処理を決定する検索式条件評価処理と
を実行させるための通信中継用プログラム。
【請求項９】
コンピュータに、さらに、
ルール定義処理において、処理を、必要とする構造化文書に対する要求検索式と処理内容とで定義する処理と、
検索式選択処理において単純条件の評価結果を用いて要求検索式のうち評価すべきものを選択する処理と、
検索式条件評価処理の後に、決定された処理を、その処理が必要とする前記要求検索式の評価結果を用いて実行する処理と
を実行させるための請求項８記載の通信中継用プログラム。
【請求項１０】
コンピュータに、さらに、
ルールの単純条件と検索式条件とを論理積で結合する処理と、
検索式選択処理において、複数のルールのうち単純条件が満たされたルールの検索式を選択する処理と
を実行させるための請求項８記載の通信中継用プログラム。
【請求項１１】
コンピュータに、さらに、
複数のルールに、評価の優先度順を指定する処理と、
単純条件評価処理において、ルールを優先度の高いものから順に評価する処理、
検索条件の評価なしで単純条件の評価のみでそのルールの条件が満たされる確定ルールが見つかった場合、検索式選択処理おいて、前記確定ルールより優先度の低いルールのための検索式を選択しないようにする処理と
実行させるための請求項８記載の通信中継用プログラム。
【請求項１２】
コンピュータに、
構造化文書としてＸＭＬ形式の文書を扱わせ、検索式としてＸＰａｔｈを扱わせる
請求項８から請求項１１のうちのいずれか１項に記載の通信中継用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主にクライアントとサーバとの間の通信メッセージ、例えばＳＯＡＰなどアプリケーション層の通信メッセージを中継する通信中継システム、通信中継方法および通信中継プログラムに関し、特に、通信内容に応じてルールにもとづいてメッセージやプロトコルの変換や処理方法を決定して実行する通信中継システム、通信中継方法および通信中継プログラムに関する。
【背景技術】
【０００２】
従来の通信中継システムの例（第１の従来例）が、特許文献１や非特許文献１に記載されている。特許文献１や非特許文献１に記載されている通信中継システムは、概略、図９に示すように構成されている。図９に示す通信中継システムにおける通信中継装置９００は、構造化文書解析手段９０１と、メッセージ処理部９０２とを備える。
【０００３】
このような構成を有する従来の通信中継装置９００は以下のように動作する。すなわち、ＸＭＬ（eＸtensible Markup Language）など構造化文書をＨＴＴＰなどの通信プロトコルを用いて転送する通信中継装置９００において、ＸＰａｔｈ（ＸML Path Language ）などの構造化文書に対する検索式で指定される条件にもとづいて、構造化文書解析手段９０１は、通信元から送信されたメッセージの構造化文書の内容を解析する。メッセージ処理部９０２は、解析結果にもとづいて、通信先への通信経路の選択などの動作の決定と実行を行う。
【０００４】
例えば、非特許文献１に記載されている通信中継装置ではＸＭＬ情報の配信装置においてＸＰａｔｈで指定される情報を抽出しそれにもとづいて適切な通信先に情報を配信する。また、特許文献１に記載されている通信中継装置でも、同様に、意味解析結果にもとづいて経路制御を行う。
【０００５】
通常、構造化文書の解析は処理負荷が高く、制御方式の決定や制御処理の実行に構造化文書の解析結果の一部が必要とされる場合には、通信中継装置の性能が悪化するという問題がある。特に、構造化文書としてＸＭＬを使用し、そこから必要な情報を得るのにＸＰａｔｈを使用する場合、単純にはＸＭＬ全文を解析しＤＯＭ（Document Object Model）と呼ばれるＸＭＬ文書の構造と記述内容を表すオブジェクト群を作成するフェーズと、生成されたＤＯＭを用いて該当するＸＰａｔｈを検索するフェーズの双方が必要になり、非常に負荷が高い。
【０００６】
このような問題を解決するために、非特許文献１は、事前に必要となる可能性のある複数のＸＰａｔｈを全てまとめて内部データ型に変換しておき、ＸＭＬ解析時にＤＯＭを作成せずＳＡＸ（Simple API for XML）と呼ばれる比較的処理負荷の低い解析方法を使用し、ＸＭＬ解析と同時に複数のＸＰａｔｈの評価を一度に行うことで処理負荷を軽減する方式を提示している。以下、このような構造化文書と検索式の評価方式を、複数検索式一括評価手法と記す。
【０００７】
また、従来の通信中継システムの他の例（第２の従来例）が、非特許文献２に記載されている。図１０に示すように、第２の従来例の通信中継システムにおける通信中継装置１０００は、動作決定手段１００１と処理モジュール１００２とを備える。
【０００８】
このような構成を有する従来の通信中継装置１０００は以下のように動作する。すなわち、通信元からメッセージが到着すると、動作決定手段１００１は、何らかのルールにもとづいて実行すべき処理を決定し、処理モジュール１００２は、決定された処理を実行する。これにより、経路選択、ログ保存、メッセージの変更など様々な制御を、メッセージが到着したときの様々な状況によって決定し実行することが可能になる。
【０００９】
【特許文献１】特表２００４−５０７１５９号公報
【非特許文献１】Rastogi著、「エフィシエント  フィルタリング  オブ  エックスエムエル  ドキュメンツ  ウィズ  エックスパス  エクスプレッションズ（Efficient Filtering of XML Documents with Proceedings of the 18th International Conference on Data Engineering（ICDE’02），San Jose、CA、February−March 2002
【非特許文献２】佐藤豊著、「インターネット防火壁の基礎技術と応用−ＤeleGateの仕組み−」、コンピュータソフトウェア、岩波書店、１９９７年１月、第１４巻、第１号、ｐｐ．５５−６３
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、従来の通信中継システムには以下のような問題がある。
第１の問題は、構造化文書から検索式によって指定される内容を解析するための処理負荷が高く、通信中継装置の性能が悪化することである。特に、通信メッセージに関する条件が、構造化文書の内容に対する検索式だけではなく、例えばＨＴＴＰなどの通信プロトコルのヘッダ情報や構造化文書のデータサイズなど、構造化文書の解析を必要としない条件が混在する場合には、本来不要な解析が行われたり、高速な解析手法が使用できないという問題がある。
【００１１】
例えば、以下のようなルールが与えられていたとする。
（条件１）ＨＴＴＰヘッダにヘッダ名Ｘが存在し、かつ、構造化文書に検索式Ａに該当する情報が存在するなら処理１を実行
（条件２）ＨＴＴＰヘッダにヘッダ名Ｙが存在し、かつ、構造化文書に検索式Ｂに該当する情報が存在するなら処理２を実行
（条件３）ＨＴＴＰヘッダにヘッダ名Ｚが存在し、かつ、構造化文書に検索式Ｃに該当する情報が存在するなら処理３を実行
【００１２】
第１の従来例の通信中継装置が実行する方法、特に非特許文献１が提示する複数検索式一括評価手法を用いる方法では、常に、抽出する可能性のある全ての検索式を登録しておく必要がある。このため、上記の例のルールでは、ＨＴＴＰヘッダの状況に関わらず常に検索式Ａ，Ｂ，Ｃの３つを評価しなければならない。例えば、ＨＴＴＰヘッダがＹしか存在しない場合、本来必要なのは検索式Ｂにもとづく評価のみであるため、この場合、検索式Ａと検索式Ｃの評価が無駄になる。第１の従来例の通信中継装置の提案方式では、複数の検索式も一度の比較的処理負荷の低い構造化文書解析方法で解析できるため、ＤＯＭを用いるそれ以前の方式よりは影響は軽微である。しかし、それでも調べなければならない検索式の数の増加は性能の劣化を招くという問題がある。
【００１３】
第２の従来例の通信中継装置では、構造化文書の扱いが一切考慮されていない。例えば、構造化文書に対する検索式もそれ以外の条件と同じように順次評価するとして、検索式の評価方法として、従来技術のＤＯＭを用いる方法か、あるいは複数検索式一括評価手法を用いるものと仮定する。そして、一例として、ＨＴＴＰヘッダがＹしか存在しない場合を考える。すると、第２の従来例の通信中継装置では、まず、条件１でＨＴＴＰヘッダＸの有無を確認する。ＨＴＴＰヘッダＸは存在しないため検索式Ａの評価を行わず、条件２でＨＴＴＰヘッダＹの有無を確認する。ＨＴＴＰヘッダＹは存在するため検索式Ｂの評価を行う。この場合には、必要最低限の検索式Ｂの評価のみを実行するため、無駄な検索式の評価もなく、高速に処理できる。
【００１４】
しかしながら、仮にＨＴＴＰヘッダＸとＨＴＴＰヘッダＹの両方が存在し、かつ、検索式Ａに該当する内容が構造化文書に存在しない場合には、この方式では、まず、条件１の評価のときに検索式Ａを評価し、次に、条件２の評価の時に検索式Ｂを評価するというように、複数の検索式をそれぞれ別々に評価しなければならない。この場合、検索式Ａと検索式Ｂの評価自体はいずれも必要な処理である。しかし、複数検索式一括評価手法が利用できないことから、従来の構造化文書の解析と検索式の評価を別々に行う方法か、複数検索式一括評価手法をそれぞれの検索式に対して２回行うか、いずれかの方法を取らなければならない。
【００１５】
構造化文書の解析と検索式の評価を別々に行う方法は元々処理負荷が高く、複数検索式一括評価手法を用いる方法は、ＳＡＸなどによる構造化文書の解析が一つの文書に対して２回行われることになり無駄である、すなわち、いずれの方式でも通信中継システムの性能が劣化する。
【００１６】
第２の問題は、条件の評価の結果にもとづいて実行される処理が、また構造化文書に対する検索式の評価を必要とする場合に、構造化文書の解析と検索式の評価の処理負荷で、通信中継システムの性能が劣化することである。例えば、上記のルールで、処理１が検索式Ｄを、処理２が検索式Ｅを、処理１が検索式Ｆを必要とする場合、第１の従来例の通信中継システムでは、常に検索式Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆの６つ全ての検索式の評価が必要であり、第２の従来例の通信中継システムでは、ＨＴＴＰヘッダＹのみが存在する場合でも、検索式Ｂと検索式Ｅの評価をそれぞれ別々に行わなければならない。
【００１７】
そこで、本発明は、通信メッセージ対する条件が、構造化文書に対する検索式と構造化文書の解析を必要としない条件の双方を含む場合に、構造化文書の解析処理と検索式の評価とを少ない処理負荷で実現できる通信中継システム、通信中継方法および通信中継用プログラムを提供することを目的とする。また、本発明の他の目的は、通信メッセージ対する条件が、構造化文書に対する検索式と、構造化文書の解析を必要としない条件の双方を含み、かつ、通信メッセージに対する処理も構造化文書に対する検索式を含む場合に、構造化文書の解析処理と検索式の評価とを少ない処理負荷で実現できる通信中継システム、通信中継方法および通信中継用プログラムを提供することである。
【課題を解決するための手段】
【００１８】
本発明による通信中継システムは、動作決定手段、構造化文書検索式評価手段、および動作実行手段備え、動作決定手段はルールのリストを持つ。ルールは、単純条件、検索式条件、実行処理名を持つ。ここで、単純条件は、構造化文書の解析を必要としない条件であり、検索式条件は、構造化文書の解析を必要とする条件である。動作実行手段は処理のリストをもつ。処理は、要求検索式と実行処理内容とを含む。単純条件や検索式条件、要求検索式は、必ずしも指定されなくてよい。単純条件と検索式条件とは論理積（ＡＮＤ）で結合される。なお、構造化文書検索式評価手段は、従来技術の複数検索式一括評価手法を用いることができる。
【００１９】
メッセージが到着すると、まず、構造化文書の解析なしで、単純条件のみを順次評価していく。ここで、単純条件を満たさないルールは処理対象から除外される。単純条件が満たされるルールが検索式条件も持つ場合、それは”候補”としてみなされ、条件および処理が要求する検索式を検索式のリストに追加し、次のルールの評価を継続する。単純条件を満たしかつ検索式条件を持たないルールは”確定”とみなされ、条件および処理が要求する検索式を検索式のリストに追加し、”確定”が見つかった時点で単純条件の評価を停止する。そのような動作を”確定”が見つかるか、ルールがなくなるまで繰り返す。単純条件の評価が終了した時点で、その時の検索式のリストを用いて検索式解析処理を行う。リストが空の場合は検索式解析は行わない。検索式解析終了後、再度ルールを順次評価し、”候補”については検索式条件が満たされるかどうかを判定する。”候補”でかつ検索式条件を満たすか、あるいは”確定”のルールが見つかった時点で評価を停止し、そのルールの処理を検索式解析結果をもとに実行する。
【００２０】
上記のように構成され、上記のように動作することで、通信中継システムは、少ない検索式の評価を、複数検索式一括評価手法で扱うことが可能となり、処理負荷を軽減することが可能になる。
【発明の効果】
【００２１】
第１の効果は、構造化文書の解析を必要とする構造化文書検索式による条件と、解析を必要としない単純な条件が混在するルールを持つ通信中継装置において、構造化文書の解析と検索式の評価の処理負荷を軽減できることである。
【００２２】
第２の効果は、構造化文書の解析を必要とする構造化文書検索式による条件と、解析を必要としない単純な条件が混在するルールを持ち、かつルール判定の結果実行される処理も構造化文書の検索式の評価を必要とする場合がある通信中継装置において、構造化文書の解析と検索式の評価の処理負荷を軽減できることである。
【発明を実施するための最良の形態】
【００２３】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２４】
図１は、第１の実施の形態の通信中継システムを示すブロック図である。図１に示すように、通信中継システムにおける通信中継装置１０１は、プログラム制御により動作するコンピュータ１００によって構成され、記憶手段１１０と、通信手段１２０と、動作決定手段１３０と、検索式評価手段１４０と、動作実行手段１５０とを含む。
【００２５】
通信中継装置１０１は、クライアント１７０からサーバ１７１に向けて発せられる要求メッセージや、要求メッセージに応じてサーバ１７１からクライアント１７０に向けて発せられる応答メッセージなどの通信メッセージ（メッセージデータ）の中継を行い、その中継の際に通信メッセージに何らかの処理（例えばプロトコル変換）を施す機能を有する。記憶手段１１０は、例えばＲＡＭなどの記憶媒体によって構成され、処理対象となる送受信するメッセージ１１１や、評価すべき検索式やその評価結果のリスト１１２などの各種の情報を記憶する。
【００２６】
通信手段１２０は、通信ネットワークを介してコンピュータ１００の外部のクライアント１７０やサーバ１７１に接続される。通信手段１２０は、メッセージの受信処理と、動作実行手段１５０によって処理されたメッセージの送信処理とを実行する機能を有する。通信手段１２０は、受信した通信メッセージをメッセージ１１１として記憶手段１１０に保存する処理や、動作実行手段１５０による処理が終了し記憶手段１１０に保存されているメッセージ１１１を送信する処理を実行する。
【００２７】
動作決定手段１３０は、ルールリスト１３１を有する。ルールリスト１３１に含まれる各ルールは、単純条件、検索式条件および処理名からなる。動作決定手段１３０は、記憶手段１１０に格納されたメッセージ１１１などを調べ、必要に応じて評価すべき検索式を含む検索式リスト１１２を作成して記憶手段１１０に格納し、検索式評価手段１４０を呼び出す。また、動作決定手段１３０は、記憶手段１１０に格納されたメッセージ１１１と、記憶手段１１０に格納された検索式リスト１１２の評価結果を参照しながらルールを評価し、実行すべき処理名を決定し、その結果を動作実行手段１５０に通知する。
【００２８】
検索式評価手段１４０は、記憶手段１１０に保存されているメッセージ１１１に含まれる構造化文書と検索式のリスト１１２とを用いて、構造化文書の解析と検索式の評価を行い、各検索式の評価結果を記憶手段１１０の検索式リストに格納する。
【００２９】
動作実行手段１５０は、処理リスト１５１を有する。リストに含まれる各処理は、処理名、要求検索式および処理内容を持つ。動作実行手段１５０は、ある処理の要求検索式に関して問い合わせがあると要求検索式を返す。また、ある処理の実行が指示されると、記憶手段１１０上のメッセージと検索式評価結果を取り出し、処理に渡して処理を実行する。
【００３０】
次に、本発明の第１の実施の形態における通信中継装置１０１の動作について説明する。図２は、通信中継装置１０１が実行する通信中継処理の例を示すフローチャートである。
【００３１】
通信中継処理において、まず、通信手段１２０は、通信先（例えばクライアント１７０あるいはサーバ１７１）からのメッセージ（通信メッセージ）の受信を待つ（ステップＳ２０１）。メッセージ１１１を受信すると（ステップＳ２０１のＹ）、通信手段１２０は、受信したメッセージ１１１を記憶手段１１０に格納する（ステップＳ２０２）。
【００３２】
次に、動作決定手段１３０は、ルールリスト１３１から１つずつルールを取り出し（ステップＳ２０３）、各ルールの単純条件を記憶手段１１０内のメッセージ１１１と比較し（ステップＳ２０４）、単純条件が満たされているならば（ステップＳ２０５のＹ）、そのルールの検索式条件を記憶手段上の検索式リスト１１２に追加する（ステップＳ２０６）。同時に、そのルールの処理名から動作実行手段１５０に要求検索式を問い合わせ、その要求検索式を記憶手段１１０内の検索式リスト１１２に追加する（ステップＳ２０６）。ここで、もしルールが比較式条件を持たないならば、検索式の評価を待たずにその条件が満たされることを意味するため、そこでルールの順次評価を中断する（ステップＳ２０７のＹ）。そうでなければ、次のルールの評価に移る（ステップＳ２０７のN）。ステップＳ２０２〜Ｓ２０７の動作をルールが無くなるまで繰り返す（ステップＳ２０３）。
【００３３】
単純条件の評価が終了すると、検索式評価手段１４０が、記憶手段１１０に保存されているメッセージ１１１に含まれる構造化文書と検索式のリストとを用いて、構造化文書の解析と検索式の評価を行い、各検索式の評価結果を記憶手段１１０に格納する（ステップＳ２０９）。検索式のリストが空であれば構造化文書の解析も行わない（ステップＳ２０８のＹ）。
【００３４】
検索式評価手段１４０の処理が終了すると、動作決定手段１３０は、各ルールのうち単純条件が満たされたものについて、記憶手段上の検索式の評価結果を用いて検索式条件の評価を行い（ステップＳ２１０，Ｓ２１１）、満たされているか、あるいは最初から検索式を持っていないルールが見つかったらそのルールが一致したと見なし（ステップＳ２１２のＹ）、動作実行手段１５０にその処理名を指定して処理の実行を指示する（ステップＳ２１３）。指示された動作実行手段１５０は、指定された処理に記憶手段１１０内のメッセージ１１１と要求検索式の評価結果を渡し、処理の実行を行う。
【００３５】
最後に、通信手段１２０が、記憶手段１１０内のメッセージ１１１を通信先に対して送信する（ステップＳ２１４）。
【００３６】
以上のような動作によって、通信中継装置１０１は、動作決定手段１３０が有する検索式条件と動作実行手段１５０が有する要求検索式のうち、単純条件が満たされるものだけを評価すればよくなり、評価する検索式の数を少なくすることができる。また、検索式評価手段１４０は複数の検索式をまとめて構造化文書解析と同時に検索式を評価できるため、構造化文書解析と検索式の評価を少ない処理負荷で動作を決定し、処理を実行することが可能になる。すなわち、動作決定手段がまず最初に単純条件を順次評価し、その結果評価が必要になる可能性のある検索式のリストを作成し、構造化文書検索式評価手段が、リストに含まれる複数の検索式を、例えば複数検索式一括評価手法で解析することで、少ない検索式を処理負荷の低い検索式評価手段で解析できる。
【００３７】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００３８】
第１の実施の形態では、動作決定手段１３０が有する複数のルールが優先順に並べられ、先頭から順次評価して最初に条件が満たされた１つの処理だけを実行するようにしたが、第２の実施の形態として、条件を満たす全てのルールの処理を実行するようにしてもよい。
【００３９】
第２の実施の形態の構成は、第１の形態の構成と同じである。ただし、第２の実施の形態での通信中継装置１０１が実行する通信中継処理は、図３に示すようになる。すなわち、単純条件を順次評価する時に、検索式条件を持たない、すなわち検索式の評価を行わずに条件が満たされることが明らかであるルールを見つけても、順次評価を停止せずに、全てのルールについて評価する。つまり、図２に示す通信中継処理におけるステップＳ２０７の動作を行わない。また、検索式評価後、単純条件を満たすルールのうち検索式条件を満たすものを順次評価して行くときに、検索式条件を満たすルールを見つけても順次評価を停止せず、全てのルールについて評価を行い、条件が満たされたルールの処理を全て実行する。すなわち、ステップＳ２１３の動作を実行した後、ステップＳ２１０に戻る。
【００４０】
第２の実施の形態は、第１の実施の形態とは異なるルール処理方式に対して本発明を適用したものであるが、すなわち、第１の実施の形態では評価の優先度が高い順にルールを並べ、優先度が高い順に調べ最初に条件が満たされたルール（確定ルール）に対応した処理を実行する処理方式を用いたのに対して、第２の実施の形態では全てのルールを評価する処理方式を用いたが、このような第１の実施の形態とは異なるルール処理方式でも、第１の実施の形態の場合と同様の効果を得ることができる。
【００４１】
次に、本発明の第３の実施の形態について説明する。
【００４２】
第１の実施の形態では、最後に必ずメッセージ１１１を送信していたが、必ずしも処理結果のメッセージ１１１を送信しなくてもよい。例えば、処理が通信のアクセス制御を行うものであった場合には、処理が記憶手段１１０からメッセージ１１１を削除してしまうことによって、アクセスを禁止してもよい。この場合、通信手段１２０は、送信すべきメッセージ１１１が記憶手段１１０にないので何も送信せずに処理を終了する。
【００４３】
次に、本発明の第４の実施の形態について説明する。
【００４４】
図４は、本発明の第３の実施の形態の通信中継装置の構成の例を示すブロック図である。図４に示すように、通信中継装置は、通信装置７０１と、データ処理装置７０２と、通信中継用プログラム７０３と、記憶装置７０４とを備える。  データ処理装置７０２は、第１〜第３の実施の形態における上述した各処理を実行する手段をまとめたものである。
【００４５】
通信中継用プログラム７０３は、データ処理装置７０２に読み込まれ、データ処理装置７０２に各種の動作（動作決定手段１３０、検索式評価手段１４０および動作決定手段１５０の動作）を実行させるための制御プログラムである。すなわち、通信中継用プログラム７０３は、データ処理装置７０２に、上述した各実施の形態における各種の処理を実行させるための制御プログラムである。
【００４６】
また、通信装置７０１は、第１〜第３の実施の形態における通信手段１２０に相当し、上述した通信手段１２０と同様の処理を実行する。記憶装置７０４は、第１〜第３の実施の形態における記憶手段１１０に相当し、上述した記憶手段１１０に格納される情報と同様の情報を格納する。また、ルールを、構造化文書の解析を必要としない単純条件と、構造化文書の解析を必要とする構造化文書に対する検索式条件と、実行すべき処理との組み合わせで定義するルール定義処理も実行するようにデータ処理装置７０２を構成してもよい。さらに、ルール定義処理において、処理を、必要とする構造化文書に対する要求検索式と処理内容とで定義する処理を実行するようにデータ処理装置７０２を構成してもよい。
【００４７】
第３の実施の形態では、通信中継用プログラム７０３に従ってデータ処理装置７０２を動作させる構成としたので、通信中継用プログラム７０３によって、データ処理装置７０２に上述した各実施の形態における各種の処理を実行させることができ、上述した各実施の形態の効果と同様の効果を発揮させることができる。
【実施例１】
【００４８】
次に、本発明の具体的実施例について説明する。図５は、本発明の第１の実施の形態に対応する第１の実施例の通信中継装置１０１の構成を示すブロック図である。本実施例では、プログラム等を記憶する磁気ディスク記憶装置（図示せず）を有するデータ処理装置としてのパーソナルコンピュータ１００Ａを備え、パーソナルコンピュータ１００Ａは、イーサネット（登録商標）ケーブルを用いて、通信装置としてのクライアントやサーバのコンピュータ（ｈｏｓｔ１〜ｈｏｓｔ４）に接続されている。
【００４９】
本実施例では、通信プロトコルとしてＨＴＴＰを用いる。また通信メッセージの構造化文書としてＸＭＬ形式を用い、構造化文書のための検索式としてＸＰａｔｈを用いる。単純条件は、ＨＴＴＰ上の情報（宛先ＵＲＬ（以下ｔｏ）や送信元アドレス（以下ｆｒｏｍ）、ＨＴＴＰヘッダ情報など）に関する条件である。
【００５０】
パーソナルコンピュータ１００Ａは、通信手段１２０、動作決定手段１３０、ＸＰａｔｈ解析手段４１０および動作実行手段１５０として機能する中央演算装置と、記憶手段１１０として動作する主記憶装置を有している。ＸＰａｔｈ解析手段４１０は検索式評価手段１４０の実施例である。また、通信手段１２０は、通信装置に接続される。動作決定手段１３０は、ルールリスト４２０を持つ。ルールは、単純条件、ＸＰａｔｈ条件および実行処理名からなる。ＸＰａｔｈ条件は検索式条件の実施例である。ここでは、５つのルールがあり、ルール１，２，４，５は単純条件を有し、ルール１，３，５はＸＰａｔｈ条件を有する。単純条件と検索式条件との両方が指定される場合には論理積（ＡＮＤ）で接続されるとし、条件が指定されないものは常に真と判断される。
【００５１】
動作実行手段１５０は処理リスト４３０を有する。処理は、要求検索式の実施例である要求ＸＰａｔｈと、実行処理内容として実行する関数名を持つ。ここでは、５つの処理があり、処理２以外は要求ＸＰａｔｈを含む。クライアントとして、符号４４０で示されるｈｏｓｔ１および符号４４１で示されるｈｏｓｔ２の２台が接続されている。サーバとして、符号４５０で示されるｈｏｓｔ３および符号４５１で示されるｈｏｓｔ４の２台が接続されている。
【００５２】
ここで、例えば、図６に示すようなメッセージ５００がｈｏｓｔ１から送信されたとする。ここで、ＨＴＴＰ情報５０１として記載されているように、メッセージ５００のあて先ＵＲＬは”host3 ／sample.cgi”で、送信元ホストはｈｏｓｔ１である。また、メッセージ５００はＸＭＬ文書５０２を含む。なお、図６に示す”To”や”Ｆrom”はＨＴＴＰプロトコルで用いられる記法ではないが、ここでは簡単のためにこのような記法を用いることにする。
【００５３】
通信中継装置１０１において、まず、通信手段１２０がＨＴＴＰ通信プロトコルによってメッセージ５００を受信する。通常、ＨＴＴＰプロトコルでは、メッセージは、宛先のＵＲＬやその他任意の制御情報を含むＨＴＴＰヘッダと、実際の転送データであるＸＭＬ文書を含むＨＴＴＰボディとを含む。また、送信元ホストの情報はＨＴＴＰプロトコルの下位通信プロトコルであるＴＣＰ／ＩＰから取得される。通信手段１２０は、ＨＴＴＰヘッダ情報、送信元ホスト情報、ＨＴＴＰボディに含まれるＸＭＬ文書を、メッセージ１１１として記憶手段１１０に格納する。
【００５４】
次に、動作決定手段１３０は、ルールの単純条件を順次評価する。まずルール１は単純条件を満たさせるので、ＸＰａｔｈ条件の”／ａ１／ｂ１”と、そのＸＰａｔｈ条件が要求する検索式”／ｃ１／ｄ１”とが記憶手段１１０における検索式リスト１１２に入れられる。ルール２は単純条件が満たさせないので何も追加されない。ルール３は単純条件を持たないので常に条件を満たすと判断され、”／ａ３／ｂ３／”と”／ｃ３／ｄ３”とが記憶手段１１０における検索式リスト１１２に追加される。ルール４は単純条件を満たさせるが、ＸＰａｔｈ条件を持たないので、”／ｃ４／ｄ４”が検索式リスト１１２に追加され、そこで単純条件の評価は停止する。なお、図５に示すルールにおいて、”＊”は任意であることを示す。
【００５５】
ＸＰａｔｈ解析手段１４０は、記憶手段１１０における検索式リスト１１２に含まれる”／ａ１／ｂ１”，”／ｃ１／ｄ１”，”／ａ３／ｂ３／”，”／ｃ３／ｄ３”，”／ｃ４／ｄ４”の５つのＸＰａｔｈを、メッセージ１１１のＸＭＬ文章５０２に適用し、まとめて解析して評価結果を得て、記憶手段１１０における検索式リスト１１２の各検索式毎にその結果を記録する。この場合、結果は、図７に示す検索式リスト８０１のようになる。
【００５６】
次に、動作決定手段１３０は、単純条件が満たされたルール１，３，４に関して、順次ＸＰａｔｈ条件の評価を行う。ここではルール１はＸＰａｔｈ条件は満たされず、ルール３のＸＰａｔｈ条件が満たされることから、処理３の実行を動作実行手段１５０に指示する。
【００５７】
動作実行手段１５０は、ｆｕｎｃ３（）を、記憶手段１１０上の受信メッセージ１１１と検索式リスト１１２に保存された要求ＸＰａｔｈ”／ｃ３／ｄ３”の評価結果”１”を引数として呼び出す。ｆｕｎｃ３（）はこれらの情報を利用して、受信メッセージのログを取ったり、記憶手段１１０に記憶されているメッセージ１１１の一部を書き換えるなどの処理を行う。
【００５８】
ｆｕｎｃ３（）の実行が終ると、通信手段１２０は記憶手段１１０に記憶されているメッセージ１１１を、その宛先ＵＲＬにしたがってサーバに送信する。ｆｕｎｃ３（）によって宛先ＵＲＬの変更が行われていない場合、メッセージはｈｏｓｔ３に送信される。
【００５９】
ｈｏｓｔ２が、例えば図８に示すようなＨＴＴＰ情報６０１とＸＭＬ文書６０２とを含むメッセージ６００を送信して来た場合には、通信手段１２０が、メッセージを記憶手段１１０に格納する。動作決定手段１３０が、ルールの単純条件の順次評価を行うと、ルール１は満たさず、ルール２が満足されかつＸＰａｔｈ条件も要求ＸＰａｔｈも持たないことから、ルール２までで単純条件の評価を中止する。
【００６０】
この場合、記憶手段１１０における検索式リスト１１２は空であることから、ＸＰａｔｈ解析手段４１０はＸＭＬの解析処理は何も行わない。次に、動作決定手段１３０はＸＰａｔｈ条件の評価を行うが、単純条件を満たしたルール２がＸＰａｔｈ条件を持たず無条件に真になる。よって、ルール２が条件を満足することになり、動作実行手段１５０に処理２の実行指示が送られる。そして、ｆｕｎｃ２（）が実行された後、通信手段１２０がメッセージをサーバ（ｈｏｓｔ４）に送信する。この結果、このルール、処理、受信メッセージの組合せでは、ＸＭＬの解析は一切行われないことになる。
【実施例２】
【００６１】
次に、本発明の第２の実施の形態に対応する第２の実施例の動作を説明する。第２の実施例の構成は、図５に示す第１の実施例の構成と同じである。第１の実施例では図６に示すメッセージ５００が到着した場合に、単純条件の順次評価においてルール４で停止していたが、第２の実施例では、最後のルール５まで評価を行う。ただし、図５に示す例ではルール５の単純条件は満たされないのでルール５のためのＸＰａｔｈは検索式リストには追加されない。
【００６２】
次に、ＸＰａｔｈ解析手段４１０によるＸＰａｔｈの評価の後のＸＰａｔｈ条件の評価では、第１の実施例では、ルール３が満たされたので処理３のみ実行された。一方、第２の実施例ではルール４も評価される。ルール４はＸＰａｔｈ条件を持たないので、これも条件を満たす。従って、処理４も実行されることになり、結果、ｆｕｎｃ３（）とｆｕｎｃ４（）が両方実行される。なお、処理４の要求ＸＰａｔｈに該当する箇所が図６に示すＸＭＬ文書５０２に存在しなかったが、それに対して、存在しなかったという結果がｆｕｎｃ４（）に渡されることになる。
【産業上の利用可能性】
【００６３】
本発明によれば、ＳＯＡＰ（Simple Object Access Protocol ）やＲＳＳ（Rich Site Summary ）配信などＸＭＬを用いた通信に関して、経路制御、ログの採取、アクセス制御、メッセージ変換など様々な制御を通信経路上で行う通信中継装置といった用途に適用できる。また、例えばメッセージ送信元と送信先を同一計算機内の別のモジュールと考えれば、二次記憶等に保存されている大量の構造化文書を、その内容と付随する情報にもとづいて自動分類するといった用途にも適用可能である。また、ＸＭＬ以外でも、ルータにおけるペイロード内容に応じたパケットの制御や、電子メールなどのメッセージを解析しウィルス感染をチェックするといった用途にも適用可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の第１の発明を実施するための最良の形態の構成を示すブロック図である。
【図２】第１の発明を実施するための最良の形態の動作を示す流れ図である。
【図３】第２の発明を実施するための最良の形態の動作を示す流れ図である。
【図４】本発明の第３の発明を実施するための最良の形態の構成を示すブロック図である。
【図５】第２の発明を実施するための最良の形態の動作の具体例を示す図である。
【図６】メッセージの具体例を示す説明図である。
【図７】記憶手段に格納される検索式リストの具体例を示す説明図である。
【図８】メッセージの具体例を示す説明図である。
【図９】従来の通信中継装置の例を示す説明図である。
【図１０】従来の通信中継装置の例を示す説明図である。
【符号の説明】
【００６５】
１００    コンピュータ（中央処理装置；プロセッサ；データ処理装置）
１００Ａ  パーソナルコンピュータ
１０１    通信中継装置
１１０    記憶手段
１１１，５００，６００  メッセージ
１１２    検索式リスト
１２０    通信手段
１３０    動作決定手段
１３１，４２０  ルールリスト
１４０    検索式評価手段
１５０    動作実行手段
１５１，４３０  処理リスト
１７０    クライアント
１７１    サーバ
４１０    ＸＰａｔｈ解析手段
４４０    ｈｏｓｔ１（クライアント）
４４１    ｈｏｓｔ２（クライアント）
４５０    ｈｏｓｔ３（サーバ）
４５１    ｈｏｓｔ４（サーバ）
５０１，６０１    ＨＴＴＰ情報
５０２，６０２    ＸＭＬ文書
７０１    通信装置
７０２    データ処理装置
７０３    通信中継用プログラム
７０４    記憶装置
８０１    検索式リスト
【図１】
2006209253.tif 000003
【図２】
2006209253.tif 000004
【図３】
2006209253.tif 000005
【図４】
2006209253.tif 000006
【図５】
2006209253.tif 000007
【図６】
2006209253.tif 000008
【図７】
2006209253.tif 000009
【図８】
2006209253.tif 000010
【図９】
2006209253.tif 000011
【図１０】
2006209253.tif 000012