(57)【要約】【課題】コネクションの管理において、リソース割り当ての効率を高めることを課題とする。【解決手段】通信管理装置１に、ユーザ端末９から送信された、サーバ３宛のコネクション確立リクエストを受信して、当該リクエストを中継する中継部２３と、中継の結果確立されたユーザ端末９とサーバ３との間のコネクションを管理する管理部２４と、リクエストに係るユーザ端末９のユーザの優先度を算出する優先度算出部２６と、優先度に従って、管理部２４によるコネクション管理の負荷が閾値以上となった場合の、リクエストの中継の許可または不許可を決定する決定部２７と、コネクション管理の負荷が閾値以上である場合に、不許可決定されたリクエストの、中継部２３による中継を制限する制限部２８と、を備えた。【選択図】図２
2014183477.tif 000002
【特許請求の範囲】
【請求項１】
端末から送信された、サーバ宛のコネクション確立リクエストを受信して、該リクエストを中継する中継手段と、
前記中継手段による中継の結果確立された、前記端末と前記サーバとの間のコネクションを管理する管理手段と、
前記リクエストに係る前記端末のユーザの優先度を算出する優先度算出手段と、
前記優先度に従って、前記管理手段によるコネクション管理の負荷が閾値以上となった場合の、前記リクエストの中継の許可または不許可を決定する決定手段と、
前記管理手段によるコネクション管理の負荷が前記閾値以上である場合に、前記決定手段によって不許可決定されたリクエストの、前記中継手段による中継を制限する制限手段と、
を備える情報処理装置。
【請求項２】
前記制限手段は、前記負荷が前記閾値以上であり且つ上限を超えない場合、前記不許可決定されたリクエストの中継を制限し、前記負荷が前記上限を超えた場合、前記決定手段による決定の内容によらずにリクエストの中継を制限する、
請求項１に記載の情報処理装置。
【請求項３】
前記閾値または前記上限を、時間帯ごとに予め設定された値に設定する設定手段を更に備える、
請求項２に記載の情報処理装置。
【請求項４】
前記負荷が前記閾値以上である場合に、前記管理手段によって管理されているコネクションのうち、所定のコネクションを切断する切断手段を更に備える、
請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
前記切断手段は、前記負荷が前記閾値以上である場合、所定時間以上データの送受信が発生していないアイドルコネクションを切断する、
請求項４に記載の情報処理装置。
【請求項６】
前記リクエストを一時的に保留する保留手段を更に備え、
前記中継手段は、前記切断手段による切断の結果、前記負荷が前記閾値未満となった場合に、前記保留手段によって保留されていた前記リクエストを中継する、
請求項４または５に記載の情報処理装置。
【請求項７】
前記決定手段は、前記優先度算出手段によって算出された前記ユーザの優先度を、予め算出された他のユーザの優先度と比較して、前記リクエストの中継の許可または不許可を決定する、
請求項１から６の何れか一項に記載の情報処理装置。
【請求項８】
前記決定手段は、前記優先度に応じて定まるユーザの順位において、上位所定の割合内であるユーザに係るリクエストの中継を許可に決定する、
請求項７に記載の情報処理装置。
【請求項９】
前記優先度算出手段は、前記リクエストに係るユーザの接続時間、該ユーザに係る通信量、およびユーザ毎に設定された設定値の少なくとも何れか１つ以上を用いて前記優先度を算出する、
請求項１から８の何れか一項に記載の情報処理装置。
【請求項１０】
前記決定手段は、新たなユーザに係るリクエストの中継を許可に決定する、
請求項１から９の何れか一項に記載の情報処理装置。
【請求項１１】
前記制限手段は、前記管理手段によって管理されているコネクション数が前記閾値以上である場合に、前記不許可決定されたリクエストの中継を制限する、
請求項１から１０の何れか一項に記載の情報処理装置。
【請求項１２】
前記決定手段によって不許可決定されたリクエストの送信元端末に対して、コネクション確立を拒否する応答を行う拒否応答手段を更に備える、
請求項１から１１の何れか一項に記載の情報処理装置。
【請求項１３】
前記管理手段による管理状況を出力する出力手段を更に備える、
請求項１から１２の何れか一項に記載の情報処理装置。
【請求項１４】
前記リクエストに係る前記端末のユーザを認証するためのユーザ認証手段を更に備える、
請求項１から１３の何れか一項に記載の情報処理装置。
【請求項１５】
コンピュータが、
端末から送信された、サーバ宛のコネクション確立リクエストを受信して、該リクエストを中継する中継ステップと、
前記中継ステップにおける中継の結果確立された、前記端末と前記サーバとの間のコネクションを管理する管理ステップと、
前記リクエストに係る前記端末のユーザの優先度を算出する優先度算出ステップと、
前記優先度に従って、前記管理ステップにおけるコネクション管理の負荷が閾値以上となった場合の、前記リクエストの中継の許可または不許可を決定する決定ステップと、
前記管理ステップにおけるコネクション管理の負荷が前記閾値以上である場合に、前記決定ステップにおいて不許可決定されたリクエストの、前記中継ステップによる中継を制限する制限ステップと、
を実行する方法。
【請求項１６】
コンピュータを、
端末から送信された、サーバ宛のコネクション確立リクエストを受信して、該リクエストを中継する中継手段と、
前記中継手段による中継の結果確立された、前記端末と前記サーバとの間のコネクションを管理する管理手段と、
前記リクエストに係る前記端末のユーザの優先度を算出する優先度算出手段と、
前記優先度に従って、前記管理手段によるコネクション管理の負荷が閾値以上となった場合の、前記リクエストの中継の許可または不許可を決定する決定手段と、
前記管理手段によるコネクション管理の負荷が前記閾値以上である場合に、前記決定手段によって不許可決定されたリクエストの、前記中継手段による中継を制限する制限手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コネクション管理のためのリソースを割り当てる技術に関する。
【背景技術】
【０００２】
従来、ＨＴＴＰ  Ｐｒｏｘｙ  Ｓｅｒｖｅｒに対して、外部へのアクセス要求を送信する各クライアント等それぞれのアクセス拒否の基準となる閾値およびアクセスを拒否する時間を算出する計算式を記憶しておき、前記各クライアント等からのアクセス要求のうち認証エラーになる回数を計測し、当該計測の結果、前記閾値を超えるクライアントが存在する場合、対応する計算式を用いてアクセス拒否時間を算出し、当該クライアント等からのアクセス要求について、算出されたアクセス拒否時間分のアクセスを拒否するアクセス制御方法が提案されている（特許文献１を参照）。
【０００３】
その他、端末からのアクセスを管理するための様々な方法が提案されている（特許文献２から５を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１４６１０４号公報
【特許文献２】特開２００９−１０４３３２号公報
【特許文献３】特開２００６−１２００８０号公報
【特許文献４】特開２０１１−１９２０２１号公報
【特許文献５】国際公開第２００９／０１７１８１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、コネクションの管理を行う装置では、管理可能なコネクション数の上限を予め設定しておき、上限に達した場合に、新たなコネクションの確立を制限する制御が行われている。しかし、このような方法では、管理されているコネクション数が上限に達した場合、確立されているコネクションが解放されない限り、新たなコネクションを確立することが出来ない、という問題が発生してしまう。
【０００６】
本開示は、上記した問題に鑑み、コネクションの管理において、リソース割り当ての効率を高めることを課題とする。
【課題を解決するための手段】
【０００７】
本開示に係る情報処理装置の一例は、端末から送信された、サーバ宛のコネクション確立リクエストを受信して、該リクエストを中継する中継手段と、前記中継手段による中継の結果確立された、前記端末と前記サーバとの間のコネクションを管理する管理手段と、前記リクエストに係る前記端末のユーザの優先度を算出する優先度算出手段と、前記優先度に従って、前記管理手段によるコネクション管理の負荷が閾値以上となった場合の、前記リクエストの中継の許可または不許可を決定する決定手段と、前記管理手段によるコネクション管理の負荷が前記閾値以上である場合に、前記決定手段によって不許可決定されたリクエストの、前記中継手段による中継を制限する制限手段と、を備える情報処理装置である。
【０００８】
また、本開示は、コンピュータによって実行される方法、またはコンピュータに実行させるプログラムとしても把握することが可能である。また、本開示は、そのようなプログ
ラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【０００９】
本開示によれば、コネクションの管理において、リソース割り当ての効率を高めることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るシステムの構成の概略を示す図である。
【図２】実施形態に係る通信管理装置の機能構成の概略を示す図である。
【図３】実施形態に係るコネクション管理テーブルの構成の概略を示す図である。
【図４】実施形態に係るユーザ管理テーブルの構成の概略を示す図である。
【図５】実施形態に係る、通信管理処理の流れを示すフローチャートである。
【図６】実施形態に係る、アイドルコネクション切断処理の流れを示すフローチャートである。
【図７】実施形態に係る、優先ユーザ設定処理の流れを示すフローチャートである。
【図８】実施形態に係る、通信管理装置が内部ネットワークと外部ネットワークとの間に設置されたシステムの構成の概略を示す図である。
【発明を実施するための形態】
【００１１】
以下、本開示に係る情報処理装置、情報処理システム、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、情報処理システム、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施形態に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【００１２】
本実施形態では、本開示に係る情報処理装置、方法およびプログラムを、ユーザ端末とサーバとの間のコネクションを管理・制御する、通信管理装置、通信管理方法および通信管理用プログラムとして実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法およびプログラムは、端末とサーバとの間のコネクションを管理する技術に対して広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【００１３】
＜システムの構成＞
図１は、本実施形態に係るシステムの構成の概略を示す図である。本実施形態に係るシステムは、通信管理装置１と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット等のネットワークを介して通信管理装置１と通信可能に接続される複数のサーバ３と、を備える。また、本実施形態においてサーバ３は、通信管理装置１およびネットワークを介して複数のユーザ端末９と通信可能に接続される。
【００１４】
通信管理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３等からなる制御部１０と、補助記憶装置１４と、ネットワークインターフェース１５ａ、１５ｂと、ディスプレイ等の出力装置１７と、を備える情報処理装置である。但し、通信管理装置１の具体的なハードウェア構成に関しては、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。
【００１５】
サーバ３は、ＣＰＵ、ＲＡＭおよびＲＯＭからなる制御部と、補助記憶装置と、ユーザ
端末９や通信管理装置１との通信を行うためのネットワークインターフェースと、が電気的に接続された情報処理装置である。但し、サーバ３の具体的なハードウェア構成に関しては、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。
【００１６】
ユーザ端末９は、ＣＰＵ、ＲＡＭおよびＲＯＭからなる制御部と、補助記憶装置と、サーバ３や通信管理装置１との通信を行うためのネットワークインターフェースと、マウスやキーボード等の入力装置と、ディスプレイ等の出力装置と、が電気的に接続された情報処理装置である。但し、ユーザ端末９の具体的なハードウェア構成に関しては、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。
【００１７】
本実施形態に係る通信管理装置１は、ユーザ端末９とサーバ３との間の通信を中継するプロキシとして動作し、ユーザ端末９とサーバ３との間の通信を複数のサーバ３のうち適切なサーバ３に割り当てる負荷分散装置として動作する。また、通信管理装置１は、ユーザ端末９とサーバ３との間で確立されたコネクションを管理する。この際、通信管理装置１のリソースは限られているため、コネクション管理には、リソースを効率よく割り当てる必要がある。以下、通信管理装置１における、コネクション管理のためのリソース割り当てについて、より詳細に説明する。本実施形態に係る通信管理装置１は、ユーザ端末９からサーバ３宛に送信された、コネクション確立リクエストの中継を制御することで、コネクション管理のためのリソース割り当てを制御する。
【００１８】
図２は、本実施形態に係る通信管理装置１の機能構成の概略を示す図である。本実施形態に係る通信管理装置１は、ＣＰＵ１１が、ＲＡＭ１２に展開された各種プログラムを解釈および実行して、通信管理装置１に備えられた各種ハードウェアを制御することで、保留部２１、ユーザ認証部２２、中継部２３、管理部２４、切断部２５、優先度算出部２６、決定部２７、制限部２８、拒否応答部２９、設定部３０および出力部３１を備える情報処理装置として機能する。また、本実施形態では、これらの機能がいずれも汎用のＣＰＵ１１によって実行される例について説明しているが、これらの機能は、その一部または全部が、１または複数の専用のプロセッサによって実現されてもよい。
【００１９】
保留部２１は、通信管理装置１によって受信された、サーバ３宛のコネクション確立リクエストを、制限部２８による制限の対象とするか否かが決定されるまで、一時的に保留する。
【００２０】
ユーザ認証部２２は、通信管理装置１によって受信されたコネクション確立リクエストの、送信元ユーザ端末９のユーザを認証する。本開示に係る技術を実施するためには、ユーザ認証はユーザ端末９を区別可能なものであればよく、ユーザ認証部２２が採用する認証方法は本実施形態の例示に限定されない。例えば、ユーザ認証には、ユーザ識別子とパスワードをユーザ端末９から受信することによる認証や、Ｃｏｏｋｉｅ等の情報をユーザ端末９から受信することによる認証、等を採用することが出来る。また、ユーザ認証部２２は、ユーザ認証においてユーザ識別子を取得し、ユーザ管理テーブルおよびコネクション管理テーブルにおいて、ユーザの識別に用いる。ユーザ識別子は、ユーザ認証のための通信においてユーザ端末９から取得されてもよいし、Ｃｏｏｋｉｅ等の情報と予め関連付けて所定の記憶装置に保持されていたものが取得されてもよい。本実施形態によれば、コネクションの管理がユーザ認証機能と連携することで、ユーザのネットワーク使用状況に応じた帯域制御を行うことが可能となる。
【００２１】
中継部２３は、ユーザ端末９から送信された、サーバ３宛のコネクション確立リクエストを受信して、当該リクエストを中継する。中継部２３によってリクエストが中継されることで、ユーザ端末９から送信されたリクエストがサーバ３に到達し、ユーザ端末９とサーバ３との間でコネクションが確立される。
【００２２】
管理部２４は、中継部２３による中継の結果確立された、ユーザ端末９とサーバ３との間のコネクション、およびユーザ端末９のユーザを管理する。本実施形態では、コネクションおよびユーザは、コネクション管理テーブルおよびユーザ管理テーブルを用いて管理される。図３および図４は、本実施形態において通信管理装置１が処理のために用いるコネクション管理テーブルおよびユーザ管理テーブルの構成の概略を示す図である。
【００２３】
図３は、本実施形態に係るコネクション管理テーブルの構成の概略を示す図である。コネクション管理テーブルは、コネクション管理全体に係る情報が保持される管理域と、個々のコネクションに係る情報が保持されるコネクションレコードとを有する。コネクション管理テーブルの管理域には、通信管理装置１が管理するコネクション数の上限Ｎ、アイドルコネクション切断の要否を判断するためのコネクション数の閾値（警告値）、コネクション管理テーブルによって現在管理されているコネクション数、およびアイドルコネクションの判定を行うためのアイドルタイマー閾値、が保持される。ここで、閾値と上限Ｎは、通信管理装置１の性能（ＣＰＵ１１の処理性能やＲＡＭ１２のサイズ等）に基づいて管理者が決定することが出来る。上限Ｎは、閾値よりも大きな値である。そして、コネクション管理テーブルには、管理域に設定されている上限Ｎと同数のコネクションレコードが予め確保され、ＲＡＭ１２に展開されている。
【００２４】
夫々のコネクションレコードには、ユーザ端末９とサーバ３との間で確立されているコネクション毎に、ユーザ認証部２２によって認証されたユーザ端末９のユーザ識別子、ユーザ端末９の端末ＩＰアドレス、ユーザ端末９とサーバ３との間のコネクション状態、コネクションの接続時間（コネクション確立時刻からの経過時間）、ユーザ端末９とサーバ３との間で最後にデータが送受信された最終アクセス時刻、当該コネクションにおいてユーザ端末９とサーバ３との間で送受信された累積データ量、接続先サーバ３のＩＰアドレスである宛先ＩＰアドレス、および、当該コネクションに係るユーザの優先度が保持される。なお、コネクションレコードに保持される情報は、コネクションが確立されている間、管理部２４によって定期的に更新される。
【００２５】
図４は、本実施形態に係るユーザ管理テーブルの構成の概略を示す図である。ユーザ管理テーブルは、ユーザ管理全体に係る情報が保持される管理域と、個々のユーザに係る情報が保持されるユーザレコードとを有する。ユーザ管理テーブルの管理域には、通信管理装置１が管理するユーザ数の上限Ｎ2（コネクション数の上限Ｎとは異なってよい）、ユ
ーザ管理テーブルによって現在管理されているユーザ数、およびユーザ管理テーブルによって現在管理されているユーザ端末９のＩＰアドレス数、が保持される。ユーザ数の上限Ｎ2についても、通信管理装置１の性能（ＣＰＵ１１の処理性能やＲＡＭ１２のサイズ等
）に基づいて管理者が決定することが出来る。そして、ユーザ管理テーブルには、管理域に設定されているユーザ数の上限Ｎ2と同数のユーザレコードが予め確保され、ＲＡＭ１
２に展開されている。
【００２６】
夫々のユーザレコードには、ユーザ毎に、ユーザ認証部２２によって認証されたユーザ端末９のユーザ識別子、ユーザ端末９のＩＰアドレス、当該ユーザに係るコネクション数（同一ユーザ識別子が設定されているコネクションレコードの数）、当該ユーザに係る接続時間の最大値である最大接続時間、当該ユーザに係る接続時間の平均である平均接続時間、当該ユーザに係る接続時間の累計である累積接続時間、当該ユーザに係るデータ量、および、管理者によってユーザ毎に任意に設定された重み（優先値、ｎｉｃｅ値とも称する。優先度とは異なる）が保持される。ユーザ毎に設定された重みは、後述するユーザ毎の優先度の算出に用いられる。管理者は、ユーザ毎に適切な重みを設定することで、ユーザ毎に優先度の調整を行うことが出来る。管理者は、例えば、ユーザの役割（管理者／一般ユーザなど）に応じて、異なる重みを設定することが出来る。なお、ユーザレコードに
保持される情報は、ユーザ認証部２２による当該ユーザの認証が有効である間、管理部２４によって定期的に更新される。
【００２７】
切断部２５は、負荷が予め設定された閾値（警告値）以上である場合に、管理部２４によって管理されているコネクションのうち、所定のコネクションを切断する。ここで切断の対象となる所定のコネクションは、例えば、コネクションは確立されているが、データは流れておらずアイドルタイムアウト待ちのコネクションであるアイドルコネクションである。本実施形態では、確立されたコネクションにおいて所定時間（本実施形態では、コネクション管理テーブルの管理域に設定されているアイドルタイマー閾値）以上データの送受信が発生していないことをもって、当該コネクションがアイドルコネクションであると判断される。但し、切断対象のコネクションは、アイドルコネクション以外のコネクションであってもよい。例えば、後述する優先度算出部２６によって算出された優先度が低いユーザのコネクションを、切断対象としてもよい。
【００２８】
優先度算出部２６は、リクエストまたはコネクションに係るユーザ端末９のユーザの優先度を算出する。この際、優先度算出部２６は、ユーザの接続時間、当該ユーザに係る通信量、およびユーザ毎に設定された設定値（重み、優先値、ｎｉｃｅ値等）の少なくとも何れか１つ以上を用いて優先度を算出する。本実施形態では、累積接続時間（ユーザの接続時間）、データ量（ユーザに係る通信量）および重み（ユーザ毎に設定された設定値）が、ユーザ管理テーブルのユーザレコードから取得され、優先度の算出に用いられる。
【００２９】
決定部２７は、優先度算出部２６によって算出された優先度に従って、コネクション管理の負荷が閾値以上となった場合の、リクエストの中継の許可または不許可を決定する。
【００３０】
制限部２８は、管理部２４によるコネクション管理の負荷（本実施形態では、コネクション数）が閾値以上である場合に、決定部２７によって不許可決定されたリクエストの、中継手段による中継を制限する。また、本実施形態では、制限部２８は、負荷が閾値以上であり且つ上限Ｎを超えない場合、不許可決定されたリクエストの中継を制限し、負荷が上限Ｎを超えた場合、決定手段による決定の内容によらずにリクエストの中継を制限する。
【００３１】
なお、本実施形態では、管理部２４によるコネクション管理の負荷を判定する基準としてコネクション数を採用しているが、コネクション管理の負荷の判定基準は、コネクション数に限定されない。コネクション管理の負荷を判定する方法としては、例えば、コネクション管理に用いられているＲＡＭ１２の量やＲＡＭ１２の占有率、およびコネクション管理に用いられているＣＰＵ１１の占有時間や占有率、等を、所定の閾値と比較する方法が採用されてもよい。
【００３２】
拒否応答部２９は、決定部２７によって不許可決定されたリクエストの送信元ユーザ端末９に対して、コネクション確立を拒否する応答を行う。
【００３３】
設定部３０は、閾値、上限Ｎおよび上限Ｎ2を、時間帯ごとに予め設定された値に設定
する。即ち、本実施形態において、閾値、上限Ｎまたは上限Ｎ2は、予め、日時と、この
日時において閾値、上限Ｎまたは上限Ｎ2に設定したい値と、を設定しておくことによっ
て、当該日時が到来した際に、設定値を自動的に変更することが出来る。
【００３４】
出力部３１は、管理部２４による管理状況を、出力装置１７等を介して出力する。出力部３１によって出力される管理状況には、例えば、コネクション管理テーブルおよびユーザ管理テーブルによって管理されている情報（最大接続時間や平均接続時間、コネクション数等）が含まれてよい。また、出力部３１によって出力される情報には、通信管理装置
１によるリクエストおよびコネクションの処理状況が含まれてもよい。コネクションの処理状況としては、例えば、保留部２１によって保留されている受付待ちリクエストの数および内容、更に通信中のコネクションの内容、等が挙げられる。また、コネクション数が閾値（警告値）を超えている場合、出力部３１は、管理者に対して通信管理装置１の負荷が増大していることを通知する警告メッセージを出力してもよい。なお、出力部３１によって出力される情報は、管理者へのレポートファイル出力や電子メール出力、プリント出力等、ディスプレイ出力以外の方法で出力されてもよい。このような情報が出力されることで、管理者は、ネットワークの負荷状態を確認することができ、システム拡張計画の立案等に活用することができる。
【００３５】
＜処理の流れ＞
次に、本実施形態に係る処理の詳細を説明する。なお、本実施形態において説明される処理の具体的な内容および順序等は、実施する上での一例である。具体的な処理内容および順序等は、実施の形態に応じて適宜選択されてよい。
【００３６】
図５は、本実施形態に係る、通信管理処理の流れを示すフローチャートである。本フローチャートに示された通信管理処理は、通信管理装置１が、ユーザ端末９から送信されたコネクションの確立リクエストを受信したことを契機として開始される。
【００３７】
ステップＳ１０１では、ユーザ端末９からのリクエストが受信され、ユーザ認証が行われる。通信管理装置１の中継部２３は、ユーザ端末９からサーバ３宛に送信された、コネクションの確立リクエストを受信する。ここで、通信管理装置１は、受信したリクエストを即座にサーバ３宛に中継（転送）することなく、通信管理装置１でバッファする。このバッファは、ＲＡＭ１２やネットワークインターフェース１５ａのバッファ領域等に蓄積することで行われる。また、ユーザ認証部２２は、受信されたリクエストに係るユーザ端末９のユーザを認証し、ユーザ識別子を取得する。その後、処理はステップＳ１０２へ進む。
【００３８】
ステップＳ１０２では、管理されているコネクション数が閾値未満であるか否かが確認される。新たなコネクション確立リクエストが受信されると、通信管理装置１の管理部２４は、当該通信管理装置１が現在管理しているコネクションの数をコネクション管理テーブルの管理域から取得し、同じくコネクション管理テーブルの管理域から取得された閾値と比較することで、管理部２４によるコネクション管理の負荷が閾値未満であるか否かを判断する。比較の結果、現在管理しているコネクションの数が閾値未満であると判定された場合、処理はステップＳ１０３へ進む。一方、現在管理しているコネクションの数が閾値以上であると判定された場合、処理はステップＳ１０７へ進む。
【００３９】
ステップＳ１０３およびステップＳ１０４では、リクエストが受け付けられ、中継される。通信管理装置１の中継部２３は、ステップＳ１０２においてコネクション数が閾値未満であると判定されたことを受けて、ステップＳ１０１で受信されたリクエストの中継を許可し、ユーザ端末９へリクエストの受付通知およびサーバ３へのリクエストの中継（転送）を行う。その後、処理はステップＳ１０５へ進む。
【００４０】
ステップＳ１０５では、コネクション管理テーブルの更新が行われる。通信管理装置１の管理部２４は、コネクション管理テーブル上に、中継されたリクエストに応じてサーバ３とユーザ端末９との間に確立されたコネクションを管理するためのコネクションレコードを確保し、確保されたコネクションレコードに、当該コネクションに係る情報を記録する。具体的には、管理部２４は、ユーザ識別子に、ユーザ認証部２２によって認証されたユーザ端末９のユーザ識別子を設定し、端末ＩＰアドレスに、リクエストの送信元アドレスを設定し、コネクション状態を「確立（ＥＳＴＡＢＬＩＳＨＥＤ）」に設定し、接続時
間にコネクション確立時刻からの経過時間を設定し、最終アクセス時刻に、ユーザ端末９とサーバ３との間で最後にデータが送受信された時刻を設定し、データ量に、当該コネクションにおいてユーザ端末９とサーバ３との間で送受信された累積データ量を記録し、宛先ＩＰアドレスに接続先サーバ３のＩＰアドレスを設定し、優先度に、優先度算出部２６によって算出された、当該コネクションのユーザの優先度を設定する。優先度算出部２６による優先度の算出方法は、図７を用いて後述する方法と概略同様である。なお、これらの情報は、コネクションが確立している間、管理部２４によって定期的に更新される。その後、処理はステップＳ１０６へ進む。
【００４１】
ステップＳ１０６では、ユーザ管理テーブルの更新が行われる。通信管理装置１の管理部２４は、ユーザ管理テーブル上に、確立されたコネクションに係るユーザを管理するためのユーザレコードを確保し、確保されたユーザレコードを更新する。具体的には、管理部２４は、ユーザ識別子に、ユーザ認証部２２によって認証されたユーザ端末９のユーザ識別子を設定し、端末ＩＰアドレスに、リクエストの送信元アドレスを設定し、コネクション数に、当該ユーザにかかるコネクションの数を設定し、最大接続時間に、当該ユーザに係る接続時間の最大値を設定し、平均接続時間に、当該ユーザに係る接続時間の平均を設定し、累積接続時間に、当該ユーザに係る接続時間の累計を設定し、データ量に、当該ユーザに係るデータ量を設定する。
【００４２】
ここで、ユーザにかかるコネクションの数は、コネクション管理テーブルをユーザ識別子で検索することで取得可能である。また、ユーザに係る接続時間の最大値は、コネクション管理テーブルに記録された、当該ユーザに係るコネクションの接続時間のうち最も長いものを索出することで取得可能であり、ユーザに係る接続時間の平均は、コネクション管理テーブルに記録された、当該ユーザに係るコネクションの接続時間を平均することで取得可能であり、ユーザに係る接続時間の累計は、コネクション管理テーブルに記録された、当該ユーザに係るコネクションの接続時間を累計することで取得可能である。更に、ユーザに係るデータ量は、コネクション管理テーブルに記録された、当該ユーザに係るコネクションのデータ量を合計することで取得可能である。また、重みについては、管理者によって後で設定される。その後、本フローチャートに示された処理は終了する。
【００４３】
次に、ステップＳ１０２において、現在管理されているコネクションの数が閾値以上であると判定された場合の処理を説明する。
【００４４】
ステップＳ１０７およびステップＳ１０８では、リクエストが保留され、アイドルコネクション切断処理が実行される。通信管理装置１の保留部２１は、ステップＳ１０２において現在管理しているコネクションの数が閾値以上であると判定されたことを受けて、ステップＳ１０１で受信されたリクエストの中継を一旦保留し（ステップＳ１０７）、通信管理装置１の切断部２５は、アイドルコネクション切断処理を実行する（ステップＳ１０８）。アイドルコネクション切断処理の詳細については、図６を用いて後述する。その後、処理はステップＳ１０９へ進む。
【００４５】
ステップＳ１０９では、アイドルコネクション切断処理によるコネクションの切断によってもコネクション数が閾値以上であるか否かが判定される。管理部２４は、当該通信管理装置１が現在管理しているコネクションの数をコネクション管理テーブルの管理域から取得し、閾値と比較することで、管理部２４によるコネクション管理の負荷が閾値以上であるか否かを判断する。ここで、ステップＳ１０８におけるアイドルコネクション切断処理の結果、現在管理されているコネクションの数が閾値未満となった場合、処理はステップＳ１０３へ進む。即ち、切断部２５によって１または複数のコネクションが切断された結果、負荷（コネクション数）が閾値未満となった場合、ステップＳ１０３からステップＳ１０６の処理が実行されることで、保留部２１によって保留されていたユーザ端末９か
らのリクエストが中継され、コネクションが確立される。
【００４６】
一方、アイドルコネクション切断処理によってコネクションが切断できなかったか、または切断されたコネクションの数が不十分であるためにコネクション数が閾値以上のままである場合、処理はステップＳ１１０へ進む。
【００４７】
ステップＳ１１０では、管理されているコネクション数が上限Ｎ以下であるか否かが確認される。通信管理装置１の管理部２４は、当該通信管理装置１が現在管理しているコネクションの数をコネクション管理テーブルの管理域から取得し、同様にコネクション管理テーブルの管理域から取得された上限Ｎと比較することで、管理部２４によるコネクション管理の負荷が上限Ｎ以下であるか否かを判断する。比較の結果、現在管理しているコネクションの数が上限Ｎ以下であると判定された場合、処理はステップＳ１１１へ進む。一方、現在管理しているコネクションの数が閾値を超えていると判定された場合、処理はステップＳ１１３へ進む。
【００４８】
ステップＳ１１１では、優先ユーザ設定処理が実行される。通信管理装置１の優先度算出部２６は、当該リクエストに係るユーザの優先度を算出し、優先度に応じて、当該リクエストに係るユーザを「優先ユーザ」または「非優先ユーザ」に設定する。優先ユーザ設定処理の詳細については、図７を用いて後述する。その後、処理はステップＳ１１２へ進む。
【００４９】
ステップＳ１１２では、リクエストの中継の許可または不許可が決定される。通信管理装置１の決定部２７は、ステップＳ１１１で決定された内容を参照し、「優先ユーザ」に設定されているユーザのリクエストの中継を許可し、「非優先ユーザ」に設定されているユーザのリクエストの中継を許可しない（不許可）。リクエストの中継が「許可」に決定された場合、ステップＳ１０３からステップＳ１０６の処理が実行されることで、ユーザ端末９からのリクエストが中継され、コネクションが確立される。一方、リクエストの中継が「不許可」に決定された場合、処理はステップＳ１１３へ進む。
【００５０】
ステップＳ１１３では、リクエストの受付が拒否される。通信管理装置１の制限部２８は、リクエストの中継が「不許可」に決定されたことを受けて、ステップＳ１０７で保留されていたリクエストについて、中継部２３による中継を制限し、リクエストの破棄を行う。また、拒否応答部２９は、ユーザ端末９へリクエストの受付を拒否する応答を通知する。即ち、リクエストはサーバ３へ中継（転送）されない。その後、本フローチャートに示された処理は終了する。
【００５１】
図６は、本実施形態に係る、アイドルコネクション切断処理の流れを示すフローチャートである。本フローチャートに示されたアイドルコネクション切断処理は、上述した通信管理処理のステップＳ１０８を詳述したものであり、ステップＳ１０７においてリクエストが保留されたことを契機として開始される。
【００５２】
ステップＳ２０１およびステップＳ２０２では、コネクション管理テーブルからコネクションレコードが読み出され、コネクション状態が確認される。通信管理装置１の管理部２４は、コネクション管理テーブルから、本フローチャートに示された処理の開始後、コネクションレコードの判定が完了していないコネクションレコードを読み出し（ステップＳ２０１）、当該コネクションレコードのコネクション状態を参照する（ステップＳ２０２）。ここで、コネクション状態が「確立（ＥＳＴＡＢＬＩＳＨＥＤ）」に設定されていない場合（即ち、コネクションが未確立の状態である場合）、処理はステップＳ２０５へ進む。一方、コネクション状態が「確立（ＥＳＴＡＢＬＩＳＨＥＤ）」に設定されている場合、処理はステップＳ２０３へ進む。
【００５３】
ステップＳ２０３では、コネクションが所定時間以上アイドル状態であるか否かが判定される。ステップＳ２０２でコネクション状態が「確立（ＥＳＴＡＢＬＩＳＨＥＤ）」に設定されていると判定された場合、切断部２５は、当該コネクションにおいてアイドル状態（データの送受信を行っていない状態）が継続している時間（アイドル時間）を算出する。なお、アイドル時間は、以下の式を用いて算出することが出来る。
アイドル時間＝現在時刻−最終アクセス時刻
なお、現在時刻は、通信管理装置１のシステムクロック等（図示は省略する）から取得することが出来る。また、最終アクセス時刻は、ステップＳ２０１で読み出されたコネクションレコードから取得することが出来る。
【００５４】
そして、切断部２５は、算出されたアイドル時間をアイドルタイマー閾値と比較することで、当該コネクションがアイドルタイマー閾値より長い時間アイドル状態となっているか否かを判定する。アイドルタイマー閾値は、コネクション管理テーブルの管理域から取得される。ここで、当該コネクションのアイドル時間がアイドルタイマー閾値以下である（即ち、当該コネクションはアイドルコネクションではない）と判定された場合、処理はステップＳ２０５へ進む。一方、当該コネクションのアイドル時間がアイドルタイマー閾値より長い（即ち、当該コネクションはアイドルコネクションである）と判定された場合、処理はステップＳ２０４へ進む。
【００５５】
ステップＳ２０４では、コネクションが切断される。ここでは、ステップＳ２０１で読み出されたコネクションレコードに係るコネクションがアイドルコネクションであると判断されている。このため、切断部２５は、当該コネクションを強制的に切断する。コネクションの切断は、例えば、通信管理装置１が、ユーザ端末９およびサーバ３に対してコネクションの解放を指示することで行うことが出来る。その後、処理はステップＳ２０５へ進む。
【００５６】
ステップＳ２０５では、全てのコネクションについてコネクションレコードの判定が完了したか否かが判定される。切断部２５は、現在コネクション管理テーブルに記録され、管理部２４による管理対象となっている全てのコネクションのコネクションレコードが、ステップＳ２０２およびステップＳ２０３の判定の対象となったか否かを判定する。全てのコネクションについて判定が完了した場合、本フローチャートに示された処理は終了する。一方、判定が完了していないコネクションが残っている場合、処理はステップＳ２０１へ進み、コネクション管理テーブルから次のコネクションレコードが読み出される。
【００５７】
即ち、本フローチャートに示された処理によれば、全てのコネクションについてコネクションレコードの判定が行われるまで、ステップＳ２０１からステップＳ２０５の処理が繰り返される。このようにすることで、コネクション管理テーブルから切断可能なアイドルコネクションを索出し、アイドルコネクションについて切断を試みることが出来る。
【００５８】
また、本フローチャートに示された処理によれば、管理部２４によるコネクションの管理負荷（本実施形態では、コネクション数）が閾値を超えた場合に、自動的にコネクションが切断（解放）されるため、ユーザの利便性を低下させずに、通信管理装置１のリソースを有効活用することができる。
【００５９】
図７は、本実施形態に係る、優先ユーザ設定処理の流れを示すフローチャートである。本フローチャートに示された優先ユーザ設定処理は、上述した通信管理処理のステップＳ１１１を詳述したものであり、ステップＳ１１０において現在管理しているコネクションの数が上限Ｎ以下であると判定されたことを契機として開始される。
【００６０】
ステップＳ３０１では、リクエストに係るユーザがユーザ管理テーブルに登録済みであるか否かが判定される。管理部２４は、ステップＳ１０７で保留されたリクエストに係るユーザのユーザ識別子を用いてユーザ管理テーブルを検索することで、当該ユーザが、ユーザ管理テーブルに登録済みであるか否かを判定する。なお、検索には、ステップＳ１０１でユーザ認証部２２によって取得されたユーザ識別子が用いられる。登録済みであると判定された場合、処理はステップＳ３０２へ進む。一方、登録済みでない（未登録である）と判定された場合、処理はステップＳ３０５へ進む。
【００６１】
ステップＳ３０２では、リクエストに係るユーザの優先度が算出される。優先度は、通信の状態（データ送受信の有無等）、ユーザ毎に設定された重みおよびユーザの通信履歴（過去の接続時間、送受信データサイズ等）等に基づいて算出することが出来る。本実施形態では、優先度算出部２６は、ユーザ管理テーブルより、当該ユーザの累積接続時間、データ量および重みを取得し、これらのパラメータを用いて、リクエストに係るユーザの優先度を計算する。ユーザの優先度は、例えば以下の式を用いて計算することが出来る。優先度＝累積接続時間×α＋データ量×β＋重み×γ
なお、上記の式においてα、β、γは各値のための補正値である。また、ここで算出された優先度は、コネクション管理テーブルにおける、当該ユーザのコネクションを管理するコネクションレコードに記録される。その後、処理はステップＳ３０３へ進む。
【００６２】
但し、優先度の算出には、本実施形態に例示していないその他の式や方法が用いられてよい。なお、優先度は、累積接続時間やデータ量が少ないユーザ程、コネクションの確立において優先されるように算出されることが好ましい。
【００６３】
ステップＳ３０３、ステップＳ３０４およびステップＳ３０５では、優先度に従って、リクエストに係るユーザについて優先設定または非優先設定が行われる。優先度算出部２６は、ステップＳ３０２で算出された優先度を、予め算出されている他のユーザの優先度（コネクション管理テーブルから取得される）と比較し、比較の結果に応じて、リクエストに係るユーザを「非優先ユーザ」または「優先ユーザ」に設定する。より具体的には、例えば、優先度算出部２６は、ステップＳ３０２で算出された優先度、および予め算出されている他のユーザの優先度に従って、ユーザ管理テーブルによって管理されているユーザを優先度の値が小さい順に並べ、リクエストに係るユーザの順位が、この並びにおいて下位所定の範囲（例えば、下位３０％）内であるか否かを判定する（ステップＳ３０３）。
【００６４】
リクエストに係るユーザの順位が下位所定の範囲内であると判定された場合、優先度算出部２６は、当該ユーザを「非優先ユーザ」に設定する（ステップＳ３０４）。一方、リクエストに係るユーザの順位が下位所定の範囲内ではない（上位所定の範囲内である）と判定された場合、優先度算出部２６は、当該ユーザを「優先ユーザ」に設定する（ステップＳ３０６）。その後、本フローチャートに示された処理は終了する。
【００６５】
なお、本実施形態では、ユーザ毎の優先度に従って一旦「優先ユーザ」および「非優先ユーザ」の設定を行い、この設定内容に従ってリクエスト中継の許可または不許可を決定することとしているが、このような設定を省略し、ユーザ毎の優先度に従って直接リクエスト中継の許可または不許可を決定することとしてもよい。
【００６６】
ステップＳ３０５およびステップＳ３０６では、リクエストに係るユーザのユーザ情報が新たに登録され、当該ユーザについて優先設定が行われる。管理部２４は、リクエストに係るユーザがユーザ管理テーブルに登録済みでないため（ステップＳ３０１を参照）、当該ユーザを、ユーザ管理テーブルに登録する（ステップＳ３０５）。即ち、管理部２４は、ユーザ管理テーブルに、当該ユーザのためのユーザレコードを確保し、ユーザ識別子
、端末ＩＰアドレス、コネクション数、最大接続時間、平均接続時間、累積接続時間およびデータ量等を設定する。具体的な設定内容は、ステップＳ１０６と概略同様であるため、説明を省略する。また、重みについては、管理者によって後で設定される。更に、優先度算出部２６は、ステップＳ３０１において新規ユーザであると判定されたユーザを、「優先ユーザ」に設定する（ステップＳ３０６）。その後、本フローチャートに示された処理は終了する。
【００６７】
本実施形態に示された通信管理装置１、通信管理方法および通信管理用プログラムによれば、既に十分な通信を行っているユーザ（累積接続時間やデータ量が大きなユーザ）を非優先ユーザに設定し、新たなユーザや、十分な通信を行っていないユーザ（累積接続時間やデータ量が小さなユーザ）を優先ユーザに設定することで、ユーザ間の公平を図りつつ、ネットワークリソースを有効に利用することが出来る。
【００６８】
また、本開示に係る技術は、特に、リソース不足時でもメモリなどのリソース拡張ができないタイプの装置や、メンテナンスのための運転停止が困難な、連続運転を前提とした装置に有用である。但し、本開示の適用対象は、そのような装置に限定されない。
【００６９】
なお、上記説明した実施形態では、ユーザ端末９とサーバ３との間の通信を中継するプロキシとして動作する通信管理装置１が、ユーザ端末９とサーバ３との間の通信を複数のサーバ３のうち適切なサーバ３に割り当てる負荷分散装置として動作する例について説明した。但し、本開示の適用対象は、上記において示した例に限定されない。
【００７０】
図８は、通信管理装置１が内部ネットワークと外部ネットワークとの間に設置されたシステムの構成の概略を示す図である。即ち、本開示は、内部ネットワークと外部ネットワークとの間に設置されてプロキシとして動作する通信管理装置１が、内部ネットワークに属する複数のユーザ端末９による、外部ネットワーク上のサーバ３等へのアクセスを中継する通信管理装置として動作するシステムに適用されてもよい。このような構成が採用された場合も、通信管理装置１の機能構成、データ構成および処理の流れは、上記説明した実施形態と概略同様であるため、説明を省略する。
【符号の説明】
【００７１】
１  通信管理装置
３  サーバ
９  ユーザ端末
【図１】
2014183477.tif 000003
【図２】
2014183477.tif 000004
【図３】
2014183477.tif 000005
【図４】
2014183477.tif 000006
【図５】
2014183477.tif 000007
【図６】
2014183477.tif 000008
【図７】
2014183477.tif 000009
【図８】
2014183477.tif 000010