(57)【要約】【課題】  コンピュータ装置のプロセッサに負荷をかけることなく、拡張カードによってサーバの負荷分散処理を実行することができるコンピュータ装置を提供する。【解決手段】  拡張カード５０を装着するＩ／Ｏインタフェースを備えるコンピュータ装置１０であって、拡張カード５０が、ネットワークを介してクライアント、サーバ間でフレームの送受信を行うネットワークインタフェース部７０と、コンピュータ装置１０のプロセッサに負荷をかけることなく、サーバの負荷分散を行うプロセス処理部６０とを含む。【選択図】  図１
2009245131.tif 000002
【特許請求の範囲】
【請求項１】
拡張カードを装着するＩ／Ｏインタフェースを備えるコンピュータ装置であって、
前記拡張カードが、
ネットワークを介してクライアント、サーバ間でフレームの送受信を行うネットワークインタフェース部と、
前記コンピュータ装置のプロセッサに負荷をかけることなく、前記サーバの負荷分散を行うプロセス処理部と
を備えることを特徴とするコンピュータ装置。
【請求項２】
前記プロセス処理部が、
アドレスのフィルタリングを行い、自分宛のアドレスのフレームを受信するアドレスフィルタ部と、
受信したフレームのデータフローとポート番号の識別子に基づいて、セッション毎にポート番号を登録するフレーム抽出部と、
負荷分散の対象となるサーバのサービス中のセッション数に基づいて、前記対象となるサーバから、前記フレームの宛先となるサーバを選択する宛先判定処理部と、
前記宛先判定処理部で選択したサーバのアドレスを、受信したフレームの宛先に付与して、ネットワークインタフェース部を介して接続先へ転送するアドレス付与部とを備えることを特徴とする請求項１に記載のコンピュータ装置。
【請求項３】
前記宛先判定処理部は、前記対象となるサーバから、前記セッション数が少ないサーバを、前記フレームの宛先として選択することを特徴とする請求項２に記載のコンピュータ装置。
【請求項４】
前記宛先判定処理部は、負荷分散の対象となるサーバ毎に、サービス中のセッションの数を記録するセッション数カウントテーブルを有することを特徴とする請求項２又は請求項３に記載のコンピュータ装置。
【請求項５】
前記フレームがセッション開始に関するフレームである場合、前記宛先判定処理部は、前記セッション数カウントテーブルの前記フレームの宛先として選択したサーバに対応するセッション数を「１」インクリメントし、
前記フレームがセッション切断又は終了に関するフレームである場合、前記宛先判定処理部は、前記セッション数カウントテーブルの前記フレームの宛先のサーバに対応するセッション数を「１」デクリメントすることを特徴とする請求項４に記載のコンピュータ装置。
【請求項６】
前記宛先判定処理部は、前記フレームの宛先として選択したサーバへのアクセスミスを検出した場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項３から請求項５の何れかに記載のコンピュータ装置。
【請求項７】
前記宛先判定処理部は、前記フレームの宛先として選択したサーバから応答がなかった場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項３から請求項５の何れかに記載のコンピュータ装置。
【請求項８】
前記宛先判定処理部は、サーバからの応答時間の長さの変化に基づいてサーバの負荷状態を検出し、負荷状態を各サーバ毎にセッション数と共に登録し、セッションフレームの宛先として、負荷状態とセッション数とに基づいて、サーバを選択することを特徴とする請求項３から請求項５の何れかに記載のコンピュータ装置。
【請求項９】
コンピュータ装置のＩ／Ｏインタフェースに装着される拡張カードであって、
ネットワークを介してクライアント、サーバ間でフレームの送受信を行うネットワークインタフェース部と、
前記コンピュータ装置のプロセッサに負荷をかけることなく、前記サーバの負荷分散を行うプロセス処理部と
を備えることを特徴とする拡張カード。
【請求項１０】
前記プロセス処理部が、
アドレスのフィルタリングを行い、自分宛のアドレスのフレームを受信するアドレスフィルタ部と、
受信したフレームのデータフローとポート番号の識別子に基づいて、セッション毎にポート番号を登録するフレーム抽出部と、
負荷分散の対象となるサーバのサービス中のセッション数に基づいて、前記対象となるサーバから、前記フレームの宛先となるサーバを選択する宛先判定処理部と、
前記宛先判定処理部で選択したサーバのアドレスを、受信したフレームの宛先に付与して、ネットワークインタフェース部を介して接続先へ転送するアドレス付与部とを備えることを特徴とする請求項９に記載の拡張カード。
【請求項１１】
前記宛先判定処理部は、前記対象となるサーバから、前記セッション数が少ないサーバを、前記フレームの宛先として選択することを特徴とする請求項１０に記載の拡張カード。
【請求項１２】
前記宛先判定処理部は、負荷分散の対象となるサーバ毎に、サービス中のセッションの数を記録するセッション数カウントテーブルを有することを特徴とする請求項１０又は請求項１１に記載の拡張カード。
【請求項１３】
前記フレームがセッション開始に関するフレームである場合、前記宛先判定処理部は、前記セッション数カウントテーブルの前記フレームの宛先として選択したサーバに対応するセッション数を「１」インクリメントし、
前記フレームがセッション切断又は終了に関するフレームである場合、前記宛先判定処理部は、前記セッション数カウントテーブルの前記フレームの宛先のサーバに対応するセッション数を「１」デクリメントすることを特徴とする請求項１２に記載の拡張カード。
【請求項１４】
前記宛先判定処理部は、前記フレームの宛先として選択したサーバへのアクセスミスを検出した場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項１１から請求項１３の何れかに記載の拡張カード。
【請求項１５】
前記宛先判定処理部は、前記フレームの宛先として選択したサーバから応答がなかった場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項１１から請求項１３の何れかに記載の拡張カード。
【請求項１６】
前記宛先判定処理部は、サーバからの応答時間の長さの変化に基づいてサーバの負荷状態を検出し、負荷状態を各サーバ毎にセッション数と共に登録し、セッションフレームの宛先として、負荷状態とセッション数とに基づいて、サーバを選択することを特徴とする請求項１１から請求項１３の何れかに記載の拡張カード。
【請求項１７】
コンピュータ装置のＩ／Ｏインタフェースに装着される拡張カードにおける負荷分散方法であって、
前記拡張カードのネットワークインタフェース部において、ネットワークを介してクライアント、サーバ間でフレームの送受信を行うステップと、
前記拡張カードの前記プロセス処理部において、前記コンピュータ装置のプロセッサに負荷をかけることなく、前記サーバの負荷分散を行うプロセス処理ステップを含むことを特徴とする負荷分散方法。
【請求項１８】
前記プロセス処理ステップにおいて、
アドレスのフィルタリングを行い、自分宛のアドレスのフレームを受信するステップと、
受信したフレームのデータフローとポート番号の識別子に基づいて、セッション毎にポート番号を登録するフレーム抽出ステップと、
負荷分散の対象となるサーバのサービス中のセッション数に基づいて、前記対象となるサーバから、前記フレームの宛先となるサーバを選択する宛先判定処理ステプと、
前記宛先判定処理部で選択したサーバのアドレスを、受信したフレームの宛先に付与して、ネットワークインタフェース部を介して接続先へ転送するアドレス付与ステップを実行することを特徴とする請求項１７に記載の負荷分散方法。
【請求項１９】
前記宛先判定処理ステップにおいて、前記対象となるサーバから、前記セッション数が少ないサーバを、前記フレームの宛先として選択することを特徴とする請求項１８に記載の負荷分散方法。
【請求項２０】
前記宛先判定処理ステップにおいて、負荷分散の対象となるサーバ毎に、サービス中のセッションの数を記録するセッション数カウントテーブルを有することを特徴とする請求項１８又は請求項１９に記載の負荷分散方法。
【請求項２１】
前記フレームがセッション開始に関するフレームである場合、前記宛先判定処理ステップにおいて、前記セッション数カウントテーブルの前記フレームの宛先として選択したサーバに対応するセッション数を「１」インクリメントし、
前記フレームがセッション切断又は終了に関するフレームである場合、前記宛先判定処理ステップにおいて、前記セッション数カウントテーブルの前記フレームの宛先のサーバに対応するセッション数を「１」デクリメントすることを特徴とする請求項２０に記載の負荷分散方法。
【請求項２２】
前記宛先判定処理ステップにおいて、前記フレームの宛先として選択したサーバへのアクセスミスを検出した場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項１９から請求項２１の何れかに記載の負荷分散方法。
【請求項２３】
前記宛先判定処理ステップにおいて、前記フレームの宛先として選択したサーバから応答がなかった場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項１９から請求項２１の何れかに記載の負荷分散方法。
【請求項２４】
前記宛先判定処理ステップにおいて、サーバからの応答時間の長さの変化に基づいてサーバの負荷状態を検出し、負荷状態を各サーバ毎にセッション数と共に登録し、セッションフレームの宛先として、負荷状態とセッション数とに基づいて、サーバを選択することを特徴とする請求項１９から請求項２１の何れかに記載の負荷分散方法。
【請求項２５】
コンピュータ装置のＩ／Ｏインタフェースに装着される拡張カードで実行される負荷分散プログラムであって、
前記拡張カードに、
前記拡張カードのネットワークインタフェース部において、ネットワークを介してクライアント、サーバ間でフレームの送受信を行う処理と、
前記拡張カードの前記プロセス処理部において、前記コンピュータ装置のプロセッサに負荷をかけることなく、前記サーバの負荷分散を行うプロセス処理を、実行させることを特徴とする負荷分散プログラム。
【請求項２６】
前記プロセス処理において、
アドレスのフィルタリングを行い、自分宛のアドレスのフレームを受信する処理と、
受信したフレームのデータフローとポート番号の識別子に基づいて、セッション毎にポート番号を登録するフレーム抽出処理と、
負荷分散の対象となるサーバのサービス中のセッション数に基づいて、前記対象となるサーバから、前記フレームの宛先となるサーバを選択する宛先判定処理ステプと、
前記宛先判定処理で選択したサーバのアドレスを、受信したフレームの宛先に付与して、ネットワークインタフェース部を介して接続先へ転送するアドレス付与処理を実行することを特徴とする請求項２４に記載の負荷分散プログラム。
【請求項２７】
前記宛先判定処理において、前記対象となるサーバから、前記セッション数が少ないサーバを、前記フレームの宛先として選択することを特徴とする請求項２５に記載の負荷分散プログラム。
【請求項２８】
前記宛先判定処理において、負荷分散の対象となるサーバ毎に、サービス中のセッションの数を記録するセッション数カウントテーブルを有することを特徴とする請求項２５又は請求項２６に記載の負荷分散プログラム。
【請求項２９】
前記フレームがセッション開始に関するフレームである場合、前記宛先判定処理において、前記セッション数カウントテーブルの前記フレームの宛先として選択したサーバに対応するセッション数を「１」インクリメントし、
前記フレームがセッション切断又は終了に関するフレームである場合、前記宛先判定処理において、前記セッション数カウントテーブルの前記フレームの宛先のサーバに対応するセッション数を「１」デクリメントすることを特徴とする請求項２７に記載の負荷分散プログラム。
【請求項３０】
前記宛先判定処理において、前記フレームの宛先として選択したサーバへのアクセスミスを検出した場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項２６から請求項２８の何れかに記載の負荷分散プログラム。
【請求項３１】
前記宛先判定処理において、前記フレームの宛先として選択したサーバから応答がなかった場合、セッション数が次に少ないサーバを宛先として選択し、当該選択したサーバに前記フレームを送信することを特徴とする請求項２６から請求項２８の何れかに記載の負荷分散プログラム。
【請求項３２】
前記宛先判定処理において、サーバからの応答時間の長さの変化に基づいてサーバの負荷状態を検出し、負荷状態を各サーバ毎にセッション数と共に登録し、セッションフレームの宛先として、負荷状態とセッション数とに基づいて、サーバを選択することを特徴とする請求項２６から請求項２８の何れかに記載の負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ装置に装着される拡張カードに、ネットワークを介してクライアントからアクセスされるサーバの負荷を分散する負荷分散処理を行わせるコンピュータ装置、拡張ボード、負荷分散方法及びプログラムに関する。
【背景技術】
【０００２】
ネットワークを介して複数のクライアントから送信される要求をサーバで処理するシステムでは、クライアントとサーバ間に、サーバに対するアクセスを分散することでサーバの負荷を軽減する負荷分散装置が設けられる場合が一般的である。
【０００３】
このようなサーバにおける負荷を分散するための負荷分散装置としては、例えば、特許文献１に記載される関連技術が提案されている。
【０００４】
この特許文献１に記載のサーバ負荷分散装置では、セッションに関する情報とサーバに関する情報を対応付けて記録するセッション管理テーブルを備え、ネットワークのトラフィックを監視してセッションの状況を検出し、セッションに関する情報をセッション管理テーブルに記録すると共に、クライアントからのセッション開始の要求があると、セッション管理テーブルに基づいてセッション毎に最適なサーバを選択する。例えば、最適なサーバの選択では、割り当てられたセッション数が最小のサーバを選択する。これにより、効率的なサーバの負荷分散を行う。
【特許文献１】２００２−３５１７６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１等に記載される負荷分散装置等を構成するコンピュータ装置では、メインの処理であるサーバの負荷分散処理にプロセッサが占有されるため、負荷分散以外の他の処理に利用する場合処理効率が非常に悪くなる。
【０００６】
また、この種のコンピュータ装置では、拡張カードを装着することにより、コンピュータ装置の持つ機能を拡張したり、新たな機能を付加することが行われている。
【０００７】
例えば、ネットワークインタフェースの機能を備え、ＰＣＩエクスプレス等のＰＣＩバス規格に準拠した拡張カードを装着したコンピュータ装置としての負荷分散装置の場合、拡張カードは、メイン装置であるコンピュータ装置のＣＰＵバスのＩ／Ｏデバイスで実行されて機能することで、メイン装置のＣＰＵのアクセラレーションを目的として使用されているのが一般的である。
【０００８】
このように、メイン装置のＣＰＵのアクセラレーションを目的として使用していたため、ネットワークインタフェースを備える拡張カードの処理においても、メイン装置のプロセッサに処理プロセスが引き継がれることになり、処理が遅延するという問題を有していた。
【０００９】
また、コンピュータ装置に装着するネットワークインタフェース付きの拡張カードに、負荷分散処理の機能を実装したものは未だ提供されていない。
【００１０】
（発明の目的）
本発明の目的は、コンピュータ装置のプロセッサに負荷をかけることなく、拡張カードによってサーバの負荷分散処理を実行することができるコンピュータ装置、コンピュータ装置の拡張カード、負荷分散方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明によるコンピュータ装置は、拡張カードを装着するＩ／Ｏインタフェースを備えるコンピュータ装置であって、拡張カードが、ネットワークを介してクライアント、サーバ間でフレームの送受信を行うネットワークインタフェース部と、コンピュータ装置のプロセッサに負荷をかけることなく、サーバの負荷分散を行うプロセス処理部とを含む。
【００１２】
本発明による拡張カードは、コンピュータ装置のＩ／Ｏインタフェースに装着される拡張カードであって、ネットワークを介してクライアント、サーバ間でフレームの送受信を行うネットワークインタフェース部と、コンピュータ装置のプロセッサに負荷をかけることなく、サーバの負荷分散を行うプロセス処理部とを含む。
【００１３】
本発明による負荷分散方法は、コンピュータ装置のＩ／Ｏインタフェースに装着される拡張カードにおける負荷分散方法であって、拡張カードのネットワークインタフェース部において、ネットワークを介してクライアント、サーバ間でフレームの送受信を行うステップと、拡張カードのプロセス処理部において、コンピュータ装置のプロセッサに負荷をかけることなく、サーバの負荷分散を行うプロセス処理ステップを含む。
【００１４】
本発明による負荷分散プログラムは、コンピュータ装置のＩ／Ｏインタフェースに装着される拡張カードで実行される負荷分散プログラムであって、拡張カードに、拡張カードのネットワークインタフェース部において、ネットワークを介してクライアント、サーバ間でフレームの送受信を行う処理と、拡張カードのプロセス処理部において、コンピュータ装置のプロセッサに負荷をかけることなく、サーバの負荷分散を行うプロセス処理を、実行させる。
【発明の効果】
【００１５】
本発明によれば、コンピュータ装置のプロセッサに負荷をかけることなく、拡張カードによってサーバの負荷分散処理を実行することができる。
【発明を実施するための最良の形態】
【００１６】
本発明を実施するための第１の実施の形態について、図面を参照して詳細に説明する。
【００１７】
（第１の実施の形態）
図１に、本発明の第１の実施の形態によるコンピュータ装置の構成を示す。図１において、コンピュータ装置１０は、ＣＰＵ２０、メモリ３０、ＰＣＩバス４０、拡張カード５０を含む。
【００１８】
ＣＰＵ２０及びメモリ３０は、コンピュータ装置１０によって提供する種々の機能を実行するためのメイン処理部を形成する。図示しない記憶装置に格納さえた種々の機能を提供するプログラムを、メモリ３０にロードし、ＣＰＵ２０で実行することで、所定の機能を実現する。
【００１９】
拡張カード５０は、上記ＣＰＵ２０に負荷をかけることなく、トランスポートレイヤにてサーバの負荷分散処理を行うためのカードである。
【００２０】
この拡張カード５０は、ＰＣＩエクスプレス等のＰＣＩバス規格に準拠したインタフェースを有し、このインタフェースを介して同様にＰＣＩバス規格に準拠したメイン装置であるコンピュータ装置１０のＰＣＩバス４０に接続されている。
【００２１】
拡張カード５０は、図１に示すように、負荷分散処理を実行するプロセス処理部６０と、外部のネットワークを介してサーバ等に接続するネットワークインタフェース部７０を有する。
【００２２】
図１に示すように、コンピュータ装置１０は、拡張カード５０のネットワークインタフェース部７０を介して、ネットワーク１００上のターゲットサーバ２００及びクライアント１００と接続されている。
【００２３】
拡張カード５０のプロセス処理部６０の構成を図２に示す。
プロセス処理部６０は、アドレスフィルタ部６１と、フレーム抽出部６２と、宛先判定処理部６３と、アドレス付与部６４を備えている。これらのプロセス処理部６０の各手段の機能については、動作において詳述する。
【００２４】
（第１の実施の形態による動作）
以下、図２と図３のフローチャートを参照してプロセス処理部６０の動作について説明する。
【００２５】
拡張カード６０のプロセス処理部６０は、ネットワークレイヤのアドレスフィルタ部６１によって、フレーム（ＩＰパケット）についてＩＰアドレスのフィルタリングを行い、自分宛のフレームを受信する（ステップＳ１０１）。
【００２６】
トランスポートレイヤのフレーム抽出部６２は、受信した自分宛のフレームについて、セッション開始に関するフレームであるかどうかを判定する（ステップＳ１０２）。
【００２７】
フレームがセッション開始に関するフレームであれば、フレーム抽出部１０２は、フレームからデータフローとポート番号の識別子を抽出し、フレーム抽出部６２が備えるポート番号テーブル６２ａのセッション毎にポート番号を登録し（ステップＳ１０３）、受信したフレームを宛先判定処理部６３に送る。
【００２８】
このポート番号テーブル６２ａの構成例を図４に示す。図４に示すように、ポート番号テーブル６２ａには、接続中のセッションのセッション識別情報に対応してポート番号が登録される。
【００２９】
次いで、トランスポートレイヤの宛先判定処理部６３は、図５に示すように、負荷分散の対象となるターゲットのサーバ毎にサービス中のセッション数をカウントするセッション数カウントテーブル６３ａを備えており、セッション数カウントテーブル６３ａを参照して、セッション数が少ないサーバ（例えば、セッション数が最小のサーバ）をターゲットとして選択する、すなわち受信したフレームの宛先として選択する（ステップＳ１０４）。また、セッション数カウントテーブル６３ａの選択したサーバに対応するセッション数を「１」インクリメントする（ステップＳ１０５）。
【００３０】
その後、アドレス付与部６４が、宛先判定処理部６３が選択したターゲットサーバのアドレスを、受信したフレームの宛先に付与し（ステップＳ１０６）、ネットワークインタフェース部６０を介して接続先のネットワークへ転送する（ステップＳ１０７）。
【００３１】
ステップＳ１０２で、フレームが開始フレームではない場合、フレーム抽出部６２は、受信した自分宛のフレームについて、セッション切断に関するフレームであるかどうかを判定する（ステップＳ１０８）。
【００３２】
セッション切断に該当するフレームであれば、フレーム抽出部６２は、保持するポート番号テーブル６２の該当するセッション識別情報にマーキングして、該当セッション情報を消去するまでの時間を計数するタイマを起動し（ステップＳ１０９）、受信したセッション切断に該当するフレームを、宛先判定処理部６３に送付する。
【００３３】
セッション切断に該当するフレームを受信すると、宛先判定処理部６３は、該当するターゲットサーバの識別情報に対応するセッション数を「１」デクリメントするためのあらかじめ設定しておいたタイマーを起動する（ステップＳ１１０）。
【００３４】
セッション切断に該当するフレームについては、アドレス付与部６４でアドレス付け替えを行わず、接続先へ転送する（ステップＳ１１１）。
【００３５】
また、フレーム抽出部６２は、タイマがタイムアウトするまでに応答フレームを受信した場合、その時点で、また、タイマーがタイムアウトするまで、該当セッションの応答フレームを受信しなかった場合、タイムアウト時点で、ポート番号テーブル６２ａの該当セッション情報を消去する（ステップＳ１１２）。
【００３６】
宛先判定処理部６３は、タイマがタイムアウトするまでに応答フレームを受信した場合、その時点で、また、タイマーがタイムアウトするまで、該当セッションの応答フレームを受信しなかった場合、タイムアウト時点で、セッション数カウントテーブル６３ａのセッション切断に該当するフレームの宛先のサーバのセッション数を「１」デクリメントする（ステップＳ１１３）。
【００３７】
なお、ステップＳ１０８で、受信したフレームがセッション切断に関するフレームでない場合、何ら処理を行うことなく、処理を終了する。
【００３８】
セッション開始に関するフレーム、セッション切断（セッション終了）に関するフレーム以外のフレームについては、フレーム抽出部６２による該当フレームのポート番号の保存処理は行わない。また、宛先判定処理部６３によるセッション数のカウント処理は行わない。
【００３９】
ここで、拡張カード５０のハードウェア構成について、図７を参照して説明する。
【００４０】
図７を参照すると、拡張カード５０は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部４０２、ネットワークインタフェース部７０、外部装置と接続してデータの送受信を行う入出力インタフェース部４０４、入出力インタフェース部４０４を介して接続されるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置である補助記憶部４０５、上記各構成要素を相互に接続するシステムバス４０６を備えている。
【００４１】
本実施の形態による拡張カード５０は、プロセス処理部６０による機能を提供するプログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、プロセス処理部６０による機能を提供するプログラムを、補助記憶部４０５に格納し、そのプログラムを主記憶部４０２にロードしてＣＰＵ４０１で実行することにより、プロセス処理部６０の機能をソフトウェア的に実現することも可能である。
【００４２】
（第１の実施の形態による効果）
本実施の形態においては以下のような効果が得られる。
【００４３】
拡張カード５０を搭載して搭載カードのネットワークインタフェース部７０でネットワークに接続することで、メイン装置であるコンピュータ装置１０のＣＰＵを占有することなく、セッション開始に関するフレームをセッション数の少ないサーバ宛に転送することで、個々のサーバの負荷を分散させることができる。また、前段に位置するクライアントは、ひとつのアドレスでサーバにアクセスすることができる。
【００４４】
また、メイン装置であるコンピュータ装置１０内のＣＰＵを占有しないので、拡張カード５０でサーバの負荷分散を実行しつつ、コンピュータ装置１０のＣＰＵを他のプロセス用に利用することができる。
【００４５】
（第２の実施の形態）
次いで、本発明の第２の実施の形態によるコンピュータ装置１０について説明する。この第２の実施の形態によるコンピュータ装置１０と拡張カード５０の構成については、図１、図２に示した第１の実施の形態による構成と同じであるので説明は省略する。
【００４６】
本実施の形態では、プロセス処理部６０のフレーム抽出部６２が、あるセッション要求フレームを受信した場合、一時的に該当するポート番号テーブル６２ａのポート番号にマーキングする機能と、ある特定の時間間隔でセッション要求フレームのターゲットサーバへのアクセスミス（アクセス失敗）を検出する機能を有する。
【００４７】
また、宛先判定処理部６３は、選択したターゲットサーバへのアクセスミスが検出された場合、セッション数カウントテーブル６３ａから次にセッション数が少ないサーバの宛先を選択し、アクセスミスしたフレームを転送せずに廃棄する。そして、リトライとして、新たに選択したターゲットサーバのアドレスを宛先として付与したフレームをアドレス付与部６４から送付する。
【００４８】
（第３の実施の形態）
次いで、本発明の第３の実施の形態によるコンピュータ装置１０について説明する。この第３の実施の形態によるコンピュータ装置１０と拡張カード５０の構成については、図１、図２に示した第１の実施の形態による構成と同じであるので説明は省略する。
【００４９】
本実施の形態では、プロセス処理部６０のフレーム抽出部６２が、あるセッション要求フレームを受信した場合、一時的にポート番号テーブル６２ａの該当するポート番号にマーキングして予め設定した時間を計数するタイマを起動する機能を有する。
【００５０】
また、宛先判定処理部６３は、フレーム抽出部６２で、ターゲットサーバから応答がないままにタイマがタイムアウトした場合、セッション数カウントテーブル６３ａから次にセッション数が少ないサーバをターゲットに選択して、タイムドリブンで、リトライとして、該当するターゲットサーバ宛にセッションに間するフレームを送信する機能を有する。
【００５１】
（第４の実施の形態）
次いで、本発明の第４の実施の形態によるコンピュータ装置１０について説明する。この第４の実施の形態によるコンピュータ装置１０と拡張カード５０の構成については、図１、図２に示した第１の実施の形態による構成と同じであるので説明は省略する。
【００５２】
第１の実施の形態では、宛先判定処理部６３が、セッション数が少ないサーバを宛先として選択する場合を説明したが、本実施の形態の宛先判定処理部６３は、サーバからの応答時間の長さの変化に基づいてサーバの負荷状態を検出し、負荷状態を各サーバ毎にセッション数と共に登録し、セッションフレームの宛先として、負荷状態とセッション数とに基づいて、サーバを選択して転送する機能を有する。
【００５３】
このように、ターゲットサーバからの応答時間の長さの変化に基づく負荷状態とセッション数とに基づいてサーバを選択することにより、サーバの負荷状態を予測した選択を行うことが可能となる。
【００５４】
（第５の実施の形態）
次いで、本発明の第５の実施の形態によるコンピュータ装置１０について説明する。この第５の実施の形態によるコンピュータ装置１０と拡張カード５０の構成については、図１、図２に示した第１の実施の形態による構成と同じであるので説明は省略する。
【００５５】
本実施の形態では、コンピュータ装置１０の拡張カード５０を、トランスポートレイヤでＴＣＰ相当だけでなく、ＳＣＴＰ相当でセッションの管理を行いながら、該当するＵＤＰ、または、ＳＣＴＰのデータ相当のプロトコルでセッションのサービスを有するサーバにおいても負荷分散を行うことのできる構成としている。
【００５６】
コンピュータ装置１０の拡張カード５０を上記のように構成することで、図６に示すようなネットワークで、拡張カード５０によるＳＣＴＰ負荷分散を実現することが可能となる。
【００５７】
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施の形態によるコンピュータ装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態によるコンピュータ装置に装着される拡張ボードのプロセス処理部の構成を示すブロック図である。
【図３】本発明の第１の実施の形態による拡張ボードのプロセス処理部における動作を説明するフローチャートである。
【図４】第１の実施の形態による拡張ボードのプロセス処理部におけるフレーム抽出部のポート番号テーブルの構成例を示す図である。
【図５】第１の実施の形態による拡張ボードのプロセス処理部における宛先判定処理部のセッション数カウントテーブルの構成例を示す図である。
【図６】第５の実施の形態による拡張ボードにおける負荷分散を実現したネットワーク構成を示す図である。
【図７】第１の実施の形態による拡張ボードのハードウェア構成例を示す図である。
【符号の説明】
【００５９】
１０：コンピュータ装置
２０：ＣＰＵ
３０：メモリ
４０：ＰＣＩバス
５０：拡張カード
６０：プロセス処理部
６１：アドレスフィルタ部
６２：フレーム抽出部
６２ａ：ポート番号テーブル
６３：宛先判定処理部
６３ａ：セッション数カウントテーブル
６４：アドレス付与部
７０：ネットワークインタフェース部
１００：ネットワーク
２００：サーバ
３００：クライアント
【図１】
2009245131.tif 000003
【図２】
2009245131.tif 000004
【図３】
2009245131.tif 000005
【図４】
2009245131.tif 000006
【図５】
2009245131.tif 000007
【図６】
2009245131.tif 000008
【図７】
2009245131.tif 000009