(57)【要約】【課題】  動的な異システム間接続を特徴とするWebサービスを採用したクライアントサーバ型のシステムを構築する際、既存の優先制御装置では数時間にわたるサーバ過負荷時に、優先度の低い通信を切断してしまうため、システムの可用性が低下する。【解決手段】  クライアントサーバ型のWebサービスシステムにおいて、システムで利用されるプロトコルレイヤ４の通信プロトコルを解釈する手段と、クライアントからサーバへの要求を受信しバッファリングする手段と、要求のプロトコル種別と宛先と通信内容を解析する手段と、解析結果から優先度に変換する手段と、優先度に基づいてバッファリングされた要求をサーバに送信しサーバからの応答をクライアントに送信する手段を有する【選択図】図１
2006031063.tif 000002
【特許請求の範囲】
【請求項１】
クライアントとサーバとがTCP/IP通信ネットワークを介して接続され、プロトコルレイヤ４の通信プロトコルを用いて通信を行うネットワークシステムにおいて、
前記クライアントと前記サーバとに接続され、
前記クライアントから受信したプロトコルレイヤ４の要求メッセージ各々について優先度を決定する手段と、
前記優先度順に前記要求メッセージを前記サーバに送信し、前記サーバからの前記要求メッセージに対する応答メッセージを前記クライアントに中継する手段と、を備える
ことを特徴とする優先制御装置。
【請求項２】
クライアントとサーバとがTCP/IP通信ネットワークを介して接続され、複数のプロトコルレイヤ４の通信プロトコルを用いて通信を行うネットワークシステムにおいて、
前記クライアントと前記サーバとに接続され、
前記サーバの負荷を取得する手段と、
前記クライアントから前記プロトコルレイヤ４の要求メッセージを受信する手段と、
予め保持するルールに従い前記要求メッセージを解析し、優先度を決定する手段と、
前記要求メッセージを、決定した前記優先度に基づいた順に前記サーバに送信する手段と、
前記要求メッセージに対する応答メッセージを前記サーバから受信し、前記応答メッセージを前記クライアントに送信する手段と、を備える
ことを特徴とする優先制御装置。
【請求項３】
請求項２に記載の優先制御装置であって、
前記クライアントから前記要求メッセージを受信する手段は、
前記要求メッセージを構成するIPパケットを受信し、受信した前記IPパケットから、前記要求メッセージが利用する前記プロトコルレイヤ４の通信プロトコルを識別する手段と、
識別した前記通信プロトコルごとに予め決められた手順を用いて、受信した前記IPパケットから前記要求メッセージを組み立てる手段と、
前記クライアントに、前記要求メッセージを当該優先制御装置が受信したことを通知する手段と、を備える
ことを特徴とする優先制御装置。
【請求項４】
請求項２に記載の優先制御装置であって、
前記要求メッセージの優先度を決定する手段は、
前記要求メッセージを、前記サーバへの送信する際に、前記ルールに予め定める最大遅延時間まで保持する手段と、
前記クライアントから前記要求メッセージを受信した受信時刻と前記最大遅延時間とから定める保持期限時刻が、より近い前記要求メッセージの優先度をより高くする手段と、を備える
ことを特徴とする優先制御装置。
【請求項５】
請求項２に記載の優先制御装置であって、
前記要求メッセージの優先度を決定する手段は、
異なる通信プロトコルを利用する複数の要求メッセージについて、
前記通信プロトコルに依存せずに前記優先度を決定する手段を備える
ことを特徴とする優先制御装置。
【請求項６】
請求項２に記載の優先制御装置であって、
前記要求メッセージの優先度を決定する手段は、
前記要求メッセージが利用する前記通信プロトコルの種別をキーとして用いる手段を備える
ことを特徴とする優先制御装置。
【請求項７】
請求項２に記載の優先制御装置であって、
前記サーバが複数接続されていた場合に、前記複数のサーバの負荷を取得する手段と、
取得した前記複数のサーバの負荷を考慮して、前記要求メッセージを送信するサーバを決定する手段と、を備える
ことを特徴とする優先制御装置。
【請求項８】
請求項３に記載の優先制御装置であって、
前記受信した前記IPパケット前記要求メッセージを組み立てる手段は、
前記通信プロトコルがHTTPである前記要求メッセージを組み立てる手段と、
前記通信プロトコルがSMTPである前記要求メッセージを組み立てる手段と、を備える
ことを特徴とする優先制御装置。
【請求項９】
請求項２に記載の優先制御装置であって、
前記要求メッセージの優先度を決定する手段は、
前記要求メッセージが構造型の文書構造を持っている場合に、前記要求メッセージを構文解析する手段と、
前記構文解析結果を利用して前記要求メッセージの優先度を決定する手段と、を備える
ことを特徴とする優先制御装置。
【請求項１０】
請求項４に記載の優先制御装置であって、
前記ルールは、前記通信プロトコルの種別ごとに前記最大遅延時間を定め、
前記要求メッセージの優先度を決定する手段は、
前記要求メッセージの優先度を決定する手段は、
前記要求メッセージごとに、前記定めた保持期限時刻を過ぎたか調べ、過ぎていた場合には、前記要求メッセージを破棄する手段を備える
ことを特徴とする優先制御装置。
【請求項１１】
クライアントとサーバと優先制御装置とが通信ネットワークを介して接続されたネットワークシステムにおいて、
前記クライアントは、プロトコルレイヤ４の通信プロトコルを用いた要求メッセージを送信する手段を備え、
前記優先制御装置は、前記クライアントから受信した前記要求メッセージ各々について優先度を決定する手段と、
前記優先度順に前記要求メッセージを前記サーバに送信し、前記サーバからの前記要求メッセージに対する応答メッセージを前記クライアントに中継する手段と、を備える
ことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントサーバ型のシステムにおいて、優先制御処理により過負荷時の高可用性を可能にする技術に関する。
【背景技術】
【０００２】
近年、高可用性が要求される企業間商取引などで、Webサービスを利用したクライアントサーバ型のシステムが構築され始めてきた。
【０００３】
Webサービスとは、別々に構築された、異なるシステムのクライアントとサーバを接続して構築する新たなアプリケーションシステムの形態である。例えば、Webサービス以外の企業の受発注業務システムでは、通信手順や通信内容の表記方法などの違いにより、動的に新規の取引相手とは接続できず、受発注業務を自動化できなかった。Webサービスは、この課題を解決するもので、TCP/IPネットワークで接続されたサーバとクライアント間でのプロトコルレイヤ４の通信手順の種別（以下、プロトコル種別）を規定せず、複数のプロトコル、例えば、HTTPとSMTPの両方、の利用を想定し許可するとともに、通信内容のフォーマットをXML(eXtensible Markup Language)で共通化し、表記方法をインターネット上に公開することで、異なるシステムの動的な接続性を確保している。
【０００４】
一方、従来のクライアントサーバ型のシステムでは、サーバ過負荷時であっても重要なクライアントからの要求（以下、要求メッセージ）に対してはサーバが応答できるように、クライアントとサーバ間に優先制御装置を設置する技術が知られている(例えば特許文献１)。上記優先制御装置は、クライアントからの要求メッセージの優先度を決定し、優先度の低い要求メッセージは待たせ、優先度の高い順に要求メッセージをサーバに中継する。
【０００５】
【特許文献１】米国特許第6415313号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
異なるシステムを動的に接続するWebサービスを採用したクライアントサーバ型のシステムを構築する際、特許文献１に記載の優先制御装置ではサーバ過負荷が数時間にわたる時に、優先度の低い通信を切断してしまい、システムの可用性(availability)が低下する課題があった。
【０００７】
具体的には、クライアントとサーバ間の通信の中継処理をIPパケットごとに管理するため、IPパケットに許された数分程度の遅延時間内でしか優先制御ができない。より具体的には、当該優先制御装置は、クライアントからの要求メッセージを解析し優先度を決定した後、要求メッセージを構成するIPパケットに優先度をつけ、優先度の低いIPパケットを待たせ、優先度の高いIPパケットをサーバに送信する。TCP/IPネットワークでは、クライアント又はサーバは、IPパケットに対応する応答が数分程度遅れると、当該IPパケットへの応答がないものと判断し通信を切断するので、数時間にわたるサーバ過負荷時には、優先度の低い要求メッセージの通信は切断されてしまう。
【０００８】
したがって、より改善された優先制御装置が望まれていた。
【課題を解決するための手段】
【０００９】
プロトコルによっては、例えば電子メールで利用されるSMTPでは、いったん要求メッセージを受信し、当該プロトコル処理における受信の手順を完了（以下、終端という）していれば、応答に数時間待たされてもプロトコル上問題は発生しない。
【００１０】
本発明は、Webサービスなどで利用される複数のプロトコルを利用するクライアントからの要求メッセージを受信し、そのプロトコル処理を一旦終端する技術を提供する。
【００１１】
さらに、本発明は、複数のクライアントからの要求メッセージについて、利用されたプロトコルによらず一括して優先度を決定し、また、プロトコル種別ごとに許容できる時間内で当該要求メッセージの中継をスケジューリングする技術を提供する。
【００１２】
本発明によれば、IPパケットへの応答遅延により通信が切断される、という従来の課題が解決される。
【００１３】
また、本発明によれば、複数のクライアントから送られたSMTPとHTTPによる要求メッセージを受信した場合、SMTPで送られた要求メッセージは、数時間にわたるサーバ過負荷時が過ぎてからサーバに中継するなど、プロトコルそれぞれの特性を考慮した優先制御が可能になる。
【発明の効果】
【００１４】
異なるシステムを動的に接続するWebサービスを採用したクライアントサーバ型のシステムにおいて、サーバの高負荷時の、システムの可用性を向上させることが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施例について図面を参照して説明する。
【００１６】
図1は、本実施例の優先制御装置を適用したクライアントサーバ型のシステムの概略構成を示す。
【００１７】
クライアント端末（以下、クライアントという）1a、1bは、インターネットなどのIPネットワーク(以下、IP網)2を介して優先制御装置3と接続されている。優先制御装置3は、Webサービスサーバ装置5a、5bとIP網4を介して接続されている。
【００１８】
本実施例において、クライアント1aは、プロトコルとしてHTTPを利用して、IP網2、優先制御装置3、IP網4を介してWebサービスサーバ装置5aに、要求メッセージ20aを送信し、Webサービスサーバ装置5aからIP網4、優先制御装置3、IP網2を介して応答を受信するものとして説明する。クライアント1bは、同様に、プロトコルとしてSMTPを利用し、要求メッセージ20bを用いて通信を行うものとして説明する。
【００１９】
また、以下の説明では、便宜上、クライアント1a、1bからWebサービスサーバ装置5a、5bにそれぞれ送信された要求メッセージ20a、20bについての説明を並記するが、いずれか一方であっても良い。また、利用されるプロトコルが本実施例に示すもの以外であっても良い。
【００２０】
プロトコルとしてHTTPを用いる要求メッセージ20aは、HTTPで通信するのに必要な情報が格納されたHTTPヘッダ21aと、サーバに依頼したい処理内容がXMLで書かれた要求データ実体22aと、で構成される。同様に、プロトコルとしてSMTPを用いる要求メッセージ20bは、SMTPで通信するのに必要な情報が格納されたSMTPヘッダ21bと、サーバに依頼したい処理内容がXMLで書かれた要求データ実体22bと、で構成される。
【００２１】
優先制御装置3は、要求受信部10と、並べ替え部11と、要求バッファ13と、配送ルール表14と、要求処理部15から構成される。
【００２２】
図2は、優先制御装置3を実現する情報処理装置のハードウェア構成を示す。優先制御装置3を実現する情報処理装置は、プロセッサ100と、記憶装置101と、IP網2及びIP網4に接続するための入出力回路インタフェイス106と、これらを接続するバス105などの内部通信線からなる。記憶装置101は、プログラムメモリ102と、要求バッファ13の領域を持ち、配送ルール表14を格納している。プログラムメモリ102には、プロセッサ100が実行することにより、優先制御装置3の各処理部を実現する各種プログラムが記録され、要求バッファ13には、クライアント1a、1bから受信しWebサービスサーバ装置5a、5bへ中継する要求メッセージが蓄積される。記憶装置101は、半導体記憶装置、または、ハードディスクなどの外部記憶装置で構成する。
【００２３】
なお、上記各プログラムは、予め記憶装置101に格納されていてもよいし、必要に応じて、図示していない着脱可能な記憶媒体または通信媒体（すなわちネットワークまたはそれを伝搬するデジタル信号や搬送波）を介して、上記記憶装置101に導入されてもよい。
【００２４】
上記優先制御装置3は、システム管理者によるデータ入力を可能にするための入力装置と表示装置を備えていてもよいが、これらの装置は、図2では省略してある。
【００２５】
図3に、優先制御装置3が備える要求バッファ13の一構成例を示す。
【００２６】
要求バッファ13は、受信した要求メッセージ毎にエントリ116-1、116-2、116-3を持ち、各エントリは、データ識別子110、受信データ111、プロトコル種別112、受信時刻113、許容遅延時刻114、利用配送ルール識別子115からなる。
【００２７】
データ識別子110には、各エントリを識別するために、一意な識別子が与えられる。受信データ111にはクライアント1a、1bから送信された要求メッセージ20a、20bが格納される。プロトコル種別112には、要求メッセージ20a、20bが利用したプロトコル、例えば、HTTPやSMTPなどが格納される。受信時刻113には、要求メッセージ20a、20bを優先制御装置3が受信した時刻が格納される。許容遅延時刻114には、要求メッセージ20a、20bを解析した結果による、許容できる最も遅い、Webサービスサーバ装置5a、5bへの送信時刻が記録される。上記解析は、配送ルール表14を参照し優先制御に利用する適切なルールを取得して行う。利用配送ルール識別子115には、許容遅延時刻114の計算に利用した配送ルール表14のエントリを識別する配送ルール識別子120が記録される。
【００２８】
図4に、優先制御装置3が備える配送ルール表14の一構成例を示す。
【００２９】
配送ルール表14は、たとえば、プロトコル毎にエントリ126-1、126-2、126-3を持ち、各エントリは、配送ルール識別子120、優先キーワード121、優先プロトコル種別122、最大許容遅延時間123、許容サーバ負荷124、配送先アドレス群125からなる。
【００３０】
配送ルール表14には、優先制御装置3が受信した要求メッセージ20a、20bを中継する際に行う優先制御のルールが格納されている。配送ルール表14は、システム管理者によって設定される。
【００３１】
配送ルール識別子120には、各エントリを識別するために、一意な識別子が与えられる。優先キーワード121には、優先すべき要求データ実体22a、22bに含まれるキーワードが格納される。優先プロトコル種別122には、優先すべき要求メッセージ20a、20bが利用するプロトコルが格納される。最大許容遅延時間123には、優先キーワード121と優先プロトコル122に一致した要求メッセージ20a、20bをWebサービスサーバ装置へ送信する際、許容できる最大遅延時間が格納される。許容サーバ負荷124には、要求メッセージ20a、20bをWebサービスサーバ装置5a、5bに送信する際、当該Webサービスサーバ装置の許容できる最大負荷が格納される。なお、許容サーバ負荷124は、CPU利用率や、接続数や、平均応答時間等、負荷が測定できるパラメータを利用するが、優先制御装置3が入手できるパラメータであれば、任意の一つ以上を組み合わせて利用しても構わない。配送先サーバアドレス群125には、要求メッセージ20a、20bの送信先とすべきWebサービスサーバ装置5a、5bの、IP網4上での識別子であるIPアドレスが格納される。配送先サーバアドレス群に格納されるIPアドレスは、一つであっても複数であっても良い。複数の場合には、ラウンドロビン等の適切なアルゴリズムにより、許容サーバ負荷124の条件に合致する、一つのIPアドレスが最終的に使用される。
【００３２】
図5に示すフローチャートを用いて、要求受信部10の動作を説明する。
【００３３】
優先制御装置3の要求受信部10は、クライアント1a、1bから要求メッセージ20a、20bを受信する（ステップ130）。受信した要求メッセージ20a、20bのプロトコルを、ヘッダ21a、21bを解析することで判定し（ステップ131）、プロトコルに応じた受信処理を行う（ステップ132、133）。これら受信処理手順については、プロトコルごとに仕様が厳密に決定されているので、ここでは概略だけ説明する。
【００３４】
例えば、HTTPでは、クライアント1aから優先制御装置3にTCP/IPの接続要求が送信され、接続確立後、要求メッセージ20aが優先制御装置3に送信され、優先制御装置3からクライアント1aに要求メッセージ20aに対する応答を返すまでTCP/IPの接続は保持される。
【００３５】
例えば、SMTPでは、クライアント1bから優先制御装置3にTCP/IPの接続要求が送信され、接続確立後、クライアント1bから、要求メッセージ20aより細かいコマンド、SMTPヘッダ21bに含まれる送信者情報や送信先情報、要求データ実体22b等が、これらの単位ごとに優先制御装置3に送信され、優先制御装置3はそれぞれに対して受信できたことをクライアント1bに通知し、優先制御装置3からクライアント1bに要求メッセージ20bに対する応答を返す前にTCP/IPの接続を切断する。
【００３６】
なお、HTTP、SMTP以外のプロトコルにも対応が必要であれば、対応する受信処理を追加実装しても良い。
【００３７】
上述の例に挙げたように、通信プロトコル毎にTCP/IPの接続が切断可能であれば、一旦切断することにより従来よりも長期間にわたった優先制御が可能になる。
【００３８】
図6に示すフローチャートを用いて、要求メッセージの優先度を決定する並べ替え部11の動作を説明する。
【００３９】
優先制御装置3の並べ替え部11は、要求受信部10が受信した要求メッセージ20a、20bを要求バッファ13に格納する。受信した要求メッセージ20a、20bの要求データ実体22a、22bは、XMLで表記されているので、XMLの要素名や要素値等の意味情報も利用できるよう、XMLの記述フォーマットにあわせて構文解析する（ステップ140）。なお、配送ルール表14に優先キーワード121が設定されていない場合には、この処理を省いても良い。
【００４０】
続いて、要求メッセージ20a、20bを、配送ルール表14のエントリ126-1、126-2、126-3・・・というように上位から条件に一致するか判定し、
最初に一致したルールを選択する（ステップ141）。なお、配送ルール表14内のルールの優先順位は、システム運用者が任意に決定して良い。たとえば、要求への応答の重要度順に設定しても良い。また、一致判定は、ステップ140で構文解析した要求データ実体22a、22bに優先キーワード121が含まれており、かつ、要求メッセージ20a、20bが利用したプロトコルが優先プロトコル種別122に一致する場合を条件とする。優先キーワード121と要求データ実体22a、22bの一致判定には、構文解析した意味情報を用いても良い。例えば、要素名がある文字列であるときや、要素名と要素値の組が設定値と一致することを条件とする等である。さらに、優先キーワード121に複数の条件を格納したり、いずれか一致する、全て一致する、一致しないとき等の条件を設定したりしても良い。
【００４１】
続いて、ステップ141で選択した配送ルールを用いて、現在時刻に最大許容遅延時間123を足して許容遅延時刻114を計算し、許容遅延時刻114が現在時刻に近い順に、要求メッセージ20a、20bに優先順位を与え、要求バッファ13の各エントリ116-1、116-2、116-3に格納する。つまり、受信データ111に要求メッセージ20a、20bを、プロトコル112に当該要求メッセージ20a、20bが利用したプロトコルを、受信時刻113に現在時刻を、許容遅延時刻114に当該計算の結果を、利用配送ルール識別子115に、ステップ141で決定した配送ルールの配送ルール識別子120を格納する（ステップ142）。
【００４２】
図7に、要求処理部15のアルゴリズムを示すフローチャートを示す。
【００４３】
優先制御装置3の要求処理部15は、要求バッファ13の上位から（現在時刻に近い方から）順に全てのエントリに対して、Webサービスサーバ装置5aまたは5bに送信すべき要求メッセージを調査する。具体的には、要求バッファ13のエントリの利用配送ルール識別子115から、該当する配送ルール表14のエントリの許容サーバ負荷124と配送先サーバアドレス群125を取得する。続いて、配送先サーバアドレス群125に格納されたWebサービスサーバ装置のIPアドレスで示されたWebサービスサーバ装置5aまたは5bの負荷を取得する。当該負荷が、許容サーバ負荷124を下回っていれば、当該要求メッセージを送信するものとして決定し、配送先を当該Webサービスサーバ装置に決定する（ステップ150）。
【００４４】
このとき、当該負荷が許容サーバ負荷124以上であれば、配送を保留とし、もし、このとき、許容遅延時刻114が現在時刻より過去になっていたら、当該要求バッファ13のエントリを破棄する。その後、要求バッファ13の次位のエントリを調査する。また、Webサービスサーバ装置5aまたは5bの負荷の取得方法は、限定されないが、例えば、Webサービスサーバ装置5a、5bにおいて、デーモンプログラムを動作させ、CPU利用率等のパラメータをIP網経由で参照できるようにし、優先制御装置3がそれを参照する等の方法や、優先制御装置3とWebサービスサーバ装置5a、5b間の通信量から推定する方法を用いても良い。
【００４５】
続いて、要求処理部15は、送信を決定した要求メッセージ20aまたは20bのプロトコルを、プロトコル種別112を用いて判定し（ステップ151）、プロトコルに応じて、要求メッセージ20aまたは20bを、ステップ150で決定したWebサービスサーバ装置5aまたは5bに送信し、当該Webサービスサーバ装置5aまたは5bからの応答をクライアント1aまたは1bに中継する（ステップ152、153）。なお、この手順については、プロトコルごとに仕様が厳密に決定されているので、詳細は省略する。なお、HTTP、SMTP以外のプロトコルにも対応が必要であれば、対応する受信処理を追加実装しても良い。
【００４６】
本実施例の効果を図面を用いて説明する。
【００４７】
図8に、クライアント1と優先制御装置3間の要求メッセージと対応する応答のメッセージフローを示す。
【００４８】
クライアント1からの要求メッセージ20aは、IP網2上では、複数のIPパケット、例えば161、162に分割されて送信される。まず、クライアント1は、IPパケット161を優先制御装置3に送信する（矢印170）。優先制御装置3は、IPパケット161を受信したことを示す応答IPパケットをクライアント1に送信する（矢印171）。クライアント1は、当該応答IPパケット（矢印171）を待ってから、続くIPパケット162を送信する（矢印172）。このとき、クライアント1は、当該応答IPパケット（矢印171）を、IPパケット161を送信してからTCP/IPの通信手順で定められた経過時間（数分）180だけ待つ。
【００４９】
これに対し、要求メッセージ20aに対応する応答163は、優先制御装置3からクライアント1に、IPパケット164、165に分割されて送信される。クライアント1は、この応答163を要求メッセージ20aを送信してからの経過時間181だけ待つ。
【００５０】
経過時間181は、要求メッセージ20aで利用されるプロトコルにより決定されるが、一般的に経過時間180より十分に長い。優先制御装置3は、クライアントからの要求メッセージを受信し、そのプロトコル処理を一旦終端することで、経過時間180がTCP/IPの通信手順で定められた長さを超えないようにし、さらに、受信した要求20aに対し、配送ルール14に記載されたプロトコル種別112を利用して、経過時間180だけでなく経過時間181で優先制御可能か判断する。これらにより、優先制御装置3は、従来より長い時間間隔で配送をスケジューリングでき、長時間にわたるWebサービスサーバ装置の過負荷にも対応できる。
【図面の簡単な説明】
【００５１】
【図１】実施例の優先制御装置3を用いたネットワークシステムの一構成及び動作概略図。
【図２】優先制御装置3の構成を示す図。
【図３】優先制御装置3が備える要求バッファ13の１実施例を示す図。
【図４】優先制御装置3が備える配送ルール表14の１実施例を示す図。
【図５】優先制御装置3で実行される要求受信部10の処理フロー示す図。
【図６】優先制御装置3で実行される並べ替え部11の処理フロー示す図。
【図７】優先制御装置3で実行される要求処理部15の処理フロー示す図。
【図８】クライアント1と優先制御装置3間のメッセージフローを示す図。
【符号の説明】
【００５２】
1：クライアント、2：IP網、3：優先制御装置、5：Webサービスサーバ装置、10：要求受信部、11：並べ替え部、13：要求バッファ、14：配送ルール表、15：要求処理部、20：要求メッセージ、21：ヘッダ、22：要求データ実体。
【図１】
2006031063.tif 000003
【図２】
2006031063.tif 000004
【図３】
2006031063.tif 000005
【図４】
2006031063.tif 000006
【図５】
2006031063.tif 000007
【図６】
2006031063.tif 000008
【図７】
2006031063.tif 000009
【図８】
2006031063.tif 000010