(57)【要約】【課題】  コネクション型プロトコルを利用してクライアント端末と通信する通信サーバシステムにおいて、一旦確立したコネクションを再利用しても、コネクション管理に必要なシステムリソースを低減することができる。【解決手段】  本発明のコネクション強制解放装置は、通信サーバシステムにおいて確立中のコネクションを強制的に解放するものであり、コネクション情報のリストを複数形成して、各コネクション情報をいずれかのリストにリンクして管理する手段と、監視対象のリストを巡回的に選択し、監視対象リストにリンクされたコネクション情報に対応するコネクションを解放対象コネクションとして検出する手段と、解放対象コネクションを強制的に解放する手段とを有し、データの送受信に使用された確立中コネクションがあった場合現時点よりも後の時刻に監視対象リストとして選択されるコネクション情報リストにリンクを変更させることを特徴とする。【選択図】      図１
2008288794.tif 000002
【特許請求の範囲】
【請求項１】
コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放装置であって、
上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、
複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、
上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段とを有し、
上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記未使用コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させる
ことを特徴とするコネクション強制解放装置。
【請求項２】
上記解放対象コネクション検出手段は、所定の監視間隔時間ごとに繰り返し起動し、上記監視対象リストを、少なくとも現時点の時刻及び上記監視間隔時間に基づいて選択することを特徴とする請求項１に記載のコネクション強制解放装置。
【請求項３】
上記コネクション情報リスト管理手段は、当該通信サーバシステムと、上記クライアント端末との間で新規にコネクションが確立された場合には、新規に確立された上記確立中コネクションに関する上記コネクション情報を生成して上記コネクション情報記憶手段に記憶させ、上記解放対象コネクション検出手段により、現時点よりも後の時刻に、上記監視対象リストとして選択される上記コネクション情報リストに、記憶させた上記コネクション情報をリンクさせることを特徴とする請求項１又は２に記載のコネクション強制解放装置。
【請求項４】
上記コネクション情報は、上記コネクション情報リストにおいて、当該コネクション情報の１つ前に配置された上記コネクション情報を識別する情報である前方リンク情報と、上記コネクション情報リストにおいて、当該コネクション情報の１つ後に配置された上記コネクション情報を識別する情報である後方リンク情報と、当該コネクション情報がリンクしている上記コネクション情報リストを識別する情報であるリンク先リスト情報とを有し、
上記コネクション情報リスト管理手段では、それぞれの上記コネクション情報リストにおける先頭又は末尾の上記コネクション情報を識別する情報である末端リンク情報と、上記前方リンク情報と、上記後方リンク情報と、上記リンク先リスト情報とを管理することにより、上記コネクション情報リストと上記コネクション情報との間のリンクを管理することを特徴とする請求項１〜３のいずれかに記載のコネクション強制解放装置。
【請求項５】
コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放方法であって、
コネクション情報リスト管理手段、解放対象コネクション検出手段、コネクション強制解放手段を有し、
上記コネクション情報リスト管理手段は、上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理し、
上記解放対象コネクション検出手段は、複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出し、
上記コネクション強制解放手段は、上記解放対象コネクションについて、コネクションを強制的に解放し、
上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記未使用コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させる
ことを特徴とするコネクション強制解放方法。
【請求項６】
コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放プログラムであって、
コンピュータを、
上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、
複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、
上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段として機能させ、
上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記未使用コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させる
ことを特徴とするコネクション強制解放プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラムに関し、例えば、コネクション型プロトコルによりクライアント端末と通信する通信サーバシステムに適用し得る。
【背景技術】
【０００２】
通信システムにおいては、サーバとクライアントとの間で通信を開始する際に論理的な通信路を確立してから、その通信路上でメッセージの送受信を行うものがある。これをコネクション型プロトコルと呼び、通信路をコネクションと呼ぶ。
【０００３】
例えば、ＷＷＷサーバは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を利用してクライアントから通信路としてＴＣＰコネクションを確立し、このコネクション上でＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ、非特許文献２）メッセージの送受信を行うことによって、ＷＥＢ上の文書の閲覧サービスを提供している。また、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、非特許文献１）システムにおいては、サーバとクライアント間でコネクションレス型プロトコルであるＵＤＰを利用してＳＩＰメッセージを送受信することが一般的であるが、サービスの多様化などの要因により１つのＳＩＰメッセージに設定される情報量が増加することが考慮されており、ＴＣＰを利用したＳＩＰメッセージの送受信をサポートすることが必須とされている。
【０００４】
例えば、コネクション型プロトコルを利用してクライアント端末と通信を行い、クライアント端末にアプリケーションサービスを提供する通信サーバシステムにおいて、サーバとクライアント間でメッセージを送受信するごとにコネクションを確立するという動作が規定された場合、（１）コネクションの確立（２）メッセージの送信又は受信（３）コネクションの解放（確立中のコネクションの切断）、という処理が延々と繰り返されることになり、毎回実行されるコネクションの確立処理・解放処理がシステムの輻輳を引き起こしかねない。この回避策として、一旦確立したコネクションを解放せずに再利用することで、そのコネクション上で信号の送受信を実施する方法が、ＳＩＰ（非特許文献１）、ＨＴＴＰ（非特許文献２）などにおいて提案実現されている。
【非特許文献１】ＩＥＴＦ，「ＲＦＣ３２６１“ＳＩＰ：Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ”」
【非特許文献２】ＩＥＴＦ，「ＲＦＣ２６１６“ＨＴＴＰ：Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ”」
【発明の開示】
【発明が解決しようとする課題】
【０００５】
今日では、ハードウェア技術の飛躍的な進歩を土台にして、一台のサーバにおいて数万から数十万オーダという多数のクライアントを収容することで、設置サーバ台数を削減され、設備投資費の抑制や保守管理コストの削減を達成することが可能になってきた。
【０００６】
しかし、サーバが、数万から数十万オーダのクライアントを収容した状況下において、個々のクライアントがコネクションの再利用を目的に、サービスを利用しないとき、すなわち確立したコネクションを使用してメッセージなどのデータの送受信を行なわないときでも、一旦確立したコネクションをそのまま解放しないという動作を採った場合には、一台のサーバ上に同時に多数のコネクションが確立される可能性がある。この影響として、メッセージを送受信する際に多数のコネクションの中から該当するコネクションを検索するための処理量などが増加し、サーバが輻輳してしまうことや、多数のコネクションに関する情報が発生しサーバ内の記憶容量が不足するなど、サーバ内のシステムリソースが枯渇する不具合が懸念される。
【０００７】
そこで、コネクション型プロトコルを利用してクライアント端末と通信する通信サーバシステムにおいて、一旦確立したコネクションを再利用しても、コネクション管理に必要なシステムリソースを低減することができるコネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラムが望まれている。
【課題を解決するための手段】
【０００８】
第１の本発明のコネクション強制解放装置は、（１）コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放装置であって、（２）上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、（３）複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、（４）上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段とを有し、（５）上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記未使用コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させることを特徴とする。
【０００９】
第２の本発明のコネクション強制解放方法は、（１）コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放方法であって、コネクション情報リスト管理手段、解放対象コネクション検出手段、コネクション強制解放手段を有し、（２）上記コネクション情報リスト管理手段は、上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理し、（３）上記解放対象コネクション検出手段は、複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出し、（４）上記コネクション強制解放手段は、上記解放対象コネクションについて、コネクションを強制的に解放し、（５）上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記未使用コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させることを特徴とする。
【００１０】
第３の本発明のコネクション強制解放プログラムは、（１）コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放プログラムであって、コンピュータを、（２）上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、（３）複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、（４）上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段として機能させ、（５）上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記未使用コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、コネクション型プロトコルを利用してクライアント端末と通信する通信サーバシステムにおいて、一旦確立したコネクションを再利用しても、コネクション管理に必要なシステムリソースを低減することができる。
【発明を実施するための最良の形態】
【００１２】
（Ａ）実施形態
以下、本発明によるコネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラムの実施形態を、図面を参照しながら詳述する。
【００１３】
（Ａ−１）実施形態の構成
図２は、この実施形態に関係する各種装置の接続関係などの説明図である。
【００１４】
通信サーバシステム１００は、実施形態のコネクション強制解放装置を搭載しており、コネクション型プロトコルによりＩＰネットワーク２００を経由して、複数のクライアント端末３００と通信し、例えば、メール送受信サービス、ＷＥＢ文書閲覧サービス、ＩＰ電話接続サービスなどのアプリケーションサービスをクライアント端末３００に提供するものである。なお、コネクション型プロトコルとしては、例えば、ＴＣＰや、ＳＣＴＰ（Ｓｔｒｅａｍ  Ｃｏｎｔｒｏｌ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｐｒｏｔｏｃｏｌ、ＩＥＴＦ  ＲＦＣ２９６０）などが挙げられる。
【００１５】
個々のクライアント端末３００が、通信サーバシステム１００に対して通信を開始したい場合には、クライアント端末３００よりコネクションを確立する。また、通信サーバシステム１００が、クライアント端末３００に対して通信を開始したい場合には、通信サーバシステム１００よりコネクションを確立する。そして、通信サーバシステム１００と、クライアント端末３００との間では、確立されたコネクションを使用して、例えばアプリケーションサービスにおけるメッセージなどの、データ送受信が行われる。
【００１６】
通信サーバシステム１００は、コネクション管理部１１、アプリケーションサービス部１２を有している。
【００１７】
アプリケーションサービス部１２は、通信サーバシステム１００が、クライアント端末３００に対してアプリケーションサービスを提供する機能を担っている。アプリケーションサービスを、クライアント端末３００が利用する場合には、まずクライアント端末３００が、通信サーバシステム１００に対してコネクションを確立し、そのコネクションを使用してサービスの要求メッセージを送信する。要求メッセージは、通信サーバシステム１００の内部のアプリケーションサービス部１２にて受け付けられ、要求内容に対応するサービスのアプリケーションが起動されることによって、クライアント端末３００に対してサービス提供される。また、要求内容によっては、アプリケーションサービス部１２が、要求元のクライアント端末３００に対してコネクションを確立し、メッセージの送受信を行うことによってサービスを提供する。
【００１８】
コネクション管理部１１は、通信サーバシステム１００において確立中のコネクションを管理する機能を担っている。
【００１９】
図３は、コネクション管理部１１の内部構成を示すブロック図である。
【００２０】
コネクション管理部１１は、コネクション情報管理部２０、アプリケーション要求受付部３０、クライアント通知受信部４０を有している。
【００２１】
アプリケーション要求受付部３０は、アプリケーションサービス部１２から、コネクションの確立要求や解放要求、およびメッセージの送信要求を受け付ける機能を担っている。アプリケーションサービス部１２からメッセージの送信を要求する場合は、コネクション情報管理部２０にどのコネクションを使用するかを付加情報として通知することによって、対応するコネクションを使用して、対象となるクライアント端末３００に対してメッセージが送信される。
【００２２】
クライアント通知受信部４０は、クライアント端末３００から、コネクションの確立通知や解放通知、およびメッセージ通知を受信する機能を担っている。クライアント通知受信部４０は、クライアント端末３００から通知されたメッセージについて、コネクション情報管理部２０を経由して、アプリケーションサービス部１２に通知する。
【００２３】
図１は、コネクション情報管理部２０の内部構成を示すブロック図である。なお、通信サーバシステム１００は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、ハードディスクなどのプログラムの実行構成、及び、他の通信装置と通信をするためのインターフェースを有する装置（１台に限定されず、複数台を分散処理し得るようにしたものであっても良い。）に、実施形態のコネクション強制解放プログラム等をインストールすることにより構築されるものであるが、機能的には上述の図１、図２、図３のように示すことができる。
【００２４】
コネクション情報管理部２０は、コネクション保存時間記憶部２１、コネクション監視周期間隔記憶部２２、テーブル内リスト数記憶部２３、テーブル内現在インデックス記憶部２４、コネクション情報監視テーブル記憶部２５、コネクション情報ハッシュ記憶部２６、周期コネクション監視処理部２７を有している。
【００２５】
コネクション情報ハッシュ記憶部２６は、通信サーバシステム１００において確立されたコネクションに関する情報であるコネクション情報を記憶する記憶手段である。コネクション情報管理部２０では、通信サーバシステム１００において、新規にコネクションが確立された場合には、新たなコネクション情報を生成してコネクション情報ハッシュ記憶部２６に追加して記憶する。コネクション情報の詳細な内容について後述する。
【００２６】
テーブル内リスト数記憶部２３は、後述するコネクション情報監視テーブル記憶部２５に生成されているコネクション情報のリストの数を記憶する記憶手段である。ここでは、例えば、テーブル内リスト数記憶部２３に記憶される値は６１（本）とする。
【００２７】
コネクション情報監視テーブル記憶部２５は、コネクション情報ハッシュ記憶部２６に記憶されたコネクション情報を管理するためのテーブルである。コネクション情報監視テーブル記憶部２５は、後述するコネクション情報リストを複数有している。
【００２８】
コネクション情報監視テーブル記憶部２５は、テーブル内リスト数記憶部２３に記憶された値と同じ数のコネクション情報リストを有しており、ここでは、テーブル内リスト数記憶部２３に記憶された値は６１（本）であるので、コネクション情報監視テーブル記憶部２５は、６１（本）のコネクション情報リストを有するものとする。なお、コネクション情報リストは、以降、「コネクション情報リストＬＸＸ」（ＸＸ：コネクション情報リストを識別するためのインデックス番号）と表すものとする。例えば、インデックス番号が「０１」のコネクション情報リストは「コネクション情報リストＬ０１」と表すものとする。又、個々のコネクション情報リストには、インデックス値として、先頭から００より、末尾がテーブル内リスト数記憶部２３から１を減算した値までの順で付さるものとする。よって、ここでは、コネクション情報監視テーブル記憶部２５は、「コネクション情報リストＬ００、コネクション情報リストＬ０１、…、コネクション情報リストＬ６０」のコネクション情報リストを有する。
【００２９】
テーブル内現在インデックス記憶部２４は、現在時刻から算出される値であり、現時点で、コネクション情報監視テーブル記憶部２５内のどのコネクション情報リストを指し示しているかを表すインデックス値の情報を記憶する記憶手段である。テーブル内現在インデックス記憶部２４に記憶される現在インデックス値は、最小値は０、最大値はテーブル内リスト数記憶部２３の値より１を減算した値の範囲をとる。また、現在インデックス値は、後述する周期コネクション監視処理部２７が起動されるたびに１加算されることによって更新され、最大値に達した場合は、次の周期では０に更新される。ここでは、上述のテーブル内リスト数記憶部２３は６１（本）であるので、現在インデックス値は、０〜６０の値が付与される。
【００３０】
次に、上述のコネクション情報の内容の詳細について説明する。
【００３１】
図５及び図６は、コネクション情報の構成について示した説明図である。
【００３２】
コネクション情報は、情報ＩＤ５０１、前方リンクＩＤ５０２、後方リンクＩＤ５０３、現在リストインデックス５０４、接続クライアントアドレス情報５０５、リソース情報５０６の情報を有している。
【００３３】
情報ＩＤ５０１は、当該コネクション情報を識別するための論理的なＩＤ情報である。
【００３４】
前方リンクＩＤ５０２、後方リンクＩＤ５０３、現在リストインデックス５０４は、上述のコネクション情報監視テーブル記憶部２５のコネクション情報リストにおいて、後述するコネクション情報とのリンクに使用されるものであり、詳細については後述する。
【００３５】
接続クライアントアドレス情報５０５は、当該コネクション情報に対応するコネクションによって接続されたクライアント側のアドレス情報などの識別情報を示すものである。
【００３６】
リソース情報５０６は、当該コネクション情報に対応するコネクション上で信号を送受信する際に使用されるリソース情報（例えば、確立中のコネクションの識別情報）であり、対応するコネクションの解放時にも使用される。
【００３７】
上述のコネクション情報が有する情報のうち、情報ＩＤ５０１、接続クライアントアドレス情報５０５、リソース情報５０６は、コネクション情報が最初に生成される際に設定され、該当するコネクションが解放されるまで保持される。又、上述のコネクション情報が有する情報のうち、前方リンクＩＤ５０２、後方リンクＩＤ５０３、現在リストインデックス５０４については、コネクション情報が生成される際に設定された以降は、対応するコネクションを使用してデータの送受信が行われるときなどに更新される。
【００３８】
なお、コネクション情報は、以降「コネクション情報ＣＸＸＸＸ」（ＸＸＸＸ：コネクション情報の情報ＩＤ）と表すものとする。例えば、情報ＩＤが「０００１」のコネクション情報は、「コネクション情報Ｃ０００１」と表わすものとする。
【００３９】
次に、上述のコネクション情報監視テーブル記憶部２５におけるコネクション情報リストの内容の詳細について説明する。
【００４０】
図４は、各コネクション情報リスト（Ｌ００〜Ｌ６０）の内部構成について示した説明図である。
【００４１】
各コネクション情報リスト（Ｌ００〜Ｌ６０）は、それぞれ、リスト先頭（の要素）（Ｌ００−ａ、Ｌ０１−ａ、Ｌ０１−ａ、…、Ｌ６０−ａ）と、リスト末尾（の要素）（Ｌ００−ｂ、Ｌ０１−ｂ、Ｌ０１−ｂ、…、Ｌ６０−ｂ）を有しており、個々に、コネクション情報の双方向リストを構成している。又、各コネクション情報リスト（Ｌ００〜Ｌ６０）と、コネクション情報とは、リスト先頭（Ｌ００−ａ〜Ｌ６０−ａ）と、リスト末尾（Ｌ００−ｂ〜Ｌ６０−ｂ）の間に後述するリンクがされる。
【００４２】
次に、上述の図５に示すコネクション情報、各コネクション情報リスト（Ｌ００〜Ｌ６０）における「リンク」について説明する。
【００４３】
コネクション情報リスト（Ｌ００〜Ｌ６０）における、コネクション情報同士のリンクは、上述の図５における、前方リンクＩＤ５０２、後方リンクＩＤ５０３の情報を更新することにより行われる。前方リンクＩＤ５０２は、コネクション情報監視テーブル記憶部２５のコネクション情報リスト内において、当該コネクション情報の前方にリンクされるコネクション情報のＩＤ情報５０１を有する。後方リンクＩＤ５０３は、当該コネクション情報の後方にリンクされるコネクション情報のＩＤ情報５０１を有する。
【００４４】
又、リスト先頭（Ｌ００−ａ〜Ｌ６０−ａ）から、コネクション情報リスト（Ｌ００〜Ｌ６０）における先頭のコネクション情報へのリンクは、リスト先頭（Ｌ００−ａ〜Ｌ６０−ａ）が、先頭のコネクション情報のＩＤ情報５０１の情報を指し示す（有する）ことにより行われる。同様に、リスト末尾（Ｌ００−ｂ〜Ｌ６０−ｂ）から、末尾のコネクション情報へのリンクは、リスト末尾（Ｌ００−ｂ〜Ｌ６０−ｂ）が末尾のコネクション情報のＩＤ情報５０１の情報を指し示す（有する）ことにより行われる。
【００４５】
以上のように、各コネクション情報リストは、リスト先頭と、リスト末尾の要素を有することにより、先頭・末尾の双方向からリンクされた双方向リストを形成している。例えば、コネクション情報リストＬ００が、２件のコネクション情報Ｃ０００１、Ｃ００１０を双方向リストの要素として有しているものとすると、リスト先頭Ｌ００−ａは、コネクション情報Ｃ００００を指し示してリンクされ、リスト末尾Ｌ００−ｂはコネクション情報Ｃ００１０を指し示してリンクされる。又、例えば、コネクション情報リストＬ３０にリンクされるコネクション情報の数が０件であったとすると、リスト先頭Ｌ３０−ａ、及び、リスト末尾Ｌ３０−ｂは何も指し示さない。
【００４６】
又、コネクション情報から、コネクション情報監視テーブル記憶部２５におけるコネクション情報リストへのリンクは、現在リストインデックス５０４の情報が、当該コネクション情報のリンクの対象となるコネクション情報リストのインデックス値の情報を有することにより行われる。
【００４７】
次に、コネクション保存時間記憶部２１について説明する。コネクション保存時間記憶部２１は、データの送受信が行われていないコネクションが保存される時間を示す情報を記憶する記憶手段である。ここでは、例えば、コネクション保存時間記憶部２１に記憶される値は「３００秒」とする。
【００４８】
次に、コネクション監視周期間隔記憶部２２について説明する。コネクション監視周期間隔記憶部２２は、後述するコネクションの周期監視を実現するために、後述する周期コネクション監視処理部２７の就寝時間の情報を記憶する記憶手段である。ここでは、例えば、コネクション監視周期間隔記憶部２２に記憶される値は「６０秒」とする。
【００４９】
次に、周期コネクション監視処理部２７について説明する。
【００５０】
周期コネクション監視処理部２７は、コネクション監視周期間隔記憶部２２に記憶されたコネクション監視周期期間間隔で、周期コネクション監視処理を起床させ、所定の保存時間以上データ送受信に使用されていないコネクション情報を検出し、該当するコネクションの解放（コネクションの切断）をするものである。
【００５１】
周期コネクション監視処理部２７では、周期コネクション監視処理が起床されると、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値に該当するコネクション情報監視テーブル記憶部２５内のコネクション情報リストにリンクされたコネクション情報を検出し、検出したコネクション情報に対応するコネクションを全て強制的に解放する。コネクション解放の際に、検出したコネクション情報について、リンクされていたコネクション情報リストからリンクを削除し、コネクション情報ハッシュ記憶部２６からも情報を削除する。なお、コネクションの解放の際に、コネクション情報のリソース情報５０６（上述の図５参照）の情報に基づいて、解放するコネクションを識別して解放しても良い。
【００５２】
又、コネクション情報管理部２０において、周期コネクション監視処理部２７における周期コネクション監視処理の起床の際に、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値が、現在インデックス値が示すコネクション情報リストの次に配置されたコネクション情報リストのインデックス値に更新される。現在インデックス値の更新は、現在インデックス値に１を加算し、その値をテーブル内リスト数記憶部２３に記憶されたリスト数で割った余り、すなわち以下の（１）式により算出される値に更新しても良い。なお、以下の（１）式において、テーブル内リスト数記憶部２３に記憶されたリスト数の値は「リスト数」と表すものとする。
【００５３】
更新後の現在インデックス値  ＝
（更新前の現在インデックス値＋１）  ｍｏｄ  リスト数            …（１）
上述の通りコネクション情報監視テーブル記憶部２５が有するコネクション情報リストの数は有限で、テーブル内現在インデックス記憶部２４は、最大値に達した場合は、次の周期では０に更新されるが、上述の（１）式のような計算式に基づいて、現在インデックス値を更新することにより、例えば、リスト数が６１、現在インデックス値が６０であった場合でも、更新後の現在インデックス値は０となる。
【００５４】
次に、コネクション情報管理部２０において、新規にコネクション情報が生成された際の処理について説明する。
【００５５】
コネクション情報管理部２０は、通信サーバシステム１００とクライアント端末３００との間で新規にコネクションが生成される契機が検出されると、新規にコネクション情報を生成して、コネクション情報監視テーブル記憶部２５のいずれかのコネクション情報リストにリンクさせる。新規コネクション生成の契機は、例えば、アプリケーションサービス部１２からのコネクション確立要求が、コネクション管理部１１にあり、要求対象のクライアント端末３００とのコネクションが確立された場合や、クライアント端末３００からコネクション確立通知がコネクション管理部１１にあり、新規コネクションが確立された場合に検出される。
【００５６】
コネクション情報管理部２０において、新規に生成されたコネクション情報は、コネクション保存時間記憶部２１に記憶された保存時間を考慮し、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値に対する相対位置のコネクション情報リストにリンクさせる。例えば、保存時間が３００秒、監視周期間隔が６０秒、テーブル内現在インデックスが１だった場合に、３００秒（保存時間）後に周期コネクション監視処理部２７の周期コネクション監視処理の対象になると予測されるのは、テーブル内現在インデックスが６のコネクション情報リスト、すなわちコネクション情報リスト０６となり、コネクション情報リスト０６が新規に生成されたコネクション情報のリンク先となる。
【００５７】
コネクション情報管理部２０において、新規に生成されたコネクション情報について、コネクション情報監視テーブル記憶部２５のコネクション情報リストにリンクさせる際のインデックス値（以下、「接続先インデックスＹ」と表すものとする）は以下の（２）式の計算結果を、さらに以下の（３）式により補正して求めても良い。
【００５８】
なお、以下の（２）式において、コネクション保存時間記憶部２１に記憶された値は「保存時間」、コネクション監視周期間隔記憶部２２に記憶された値は「監視周期間隔」、テーブル内現在インデックス記憶部２４に記憶された現在インデックスの値は「現在インデックス値」、接続先インデックスＹは「Ｙ」と表すものとする。又、以下の（３）式において、補正前のインデックスＹは「補正前のＹ」、補正後のインデックスＹは「補正後のＹ」、テーブル内リスト数記憶部２３に記憶されたリスト数の値は「リスト数」と表すものとする。
【００５９】
Ｙ＝保存時間（秒）÷監視周期間隔（秒）＋現在インデックス値＋１  …（２）
補正後のＹ  ＝  補正前のＹ  ｍｏｄ  リスト数                    …（３）
上述の通りコネクション情報監視テーブル記憶部２５が有するコネクション情報リストの数は有限で、テーブル内現在インデックス記憶部２４は、最大値に達した場合は、次の周期では０に更新されるが、上述の（２）式及び（３）式のような計算式に基づいて、接続先インデックスＹを求めることにより、例えば、リスト数が６１、上述の（２）式により求めた接続先インデックスＹが６５であった場合でも、上述の（３）により、接続先インデックスＹが４に補正される。
【００６０】
次に、コネクション情報管理部２０において、通信サーバシステム１００とクライアント端末３００との間で、コネクションを使用して、例えばメッセージ通知などのデータ送受信の発生が検出された場合の処理について説明する。
【００６１】
データ送受信発生の契機は、例えば、アプリケーションサービス部１２からのメッセージ送信要求が、アプリケーション要求受付部３０を経由してコネクション情報管理部２０にあり、コネクションを使用してメッセージを送信した場合や、クライアント端末３００から確立中のコネクションを使用して送信されたメッセージ通知を、クライアント通知受信部４０を経由して受信した場合などが挙げられる。
【００６２】
コネクション情報管理部２０において、通信サーバシステム１００とクライアント端末３００との間で、コネクションを使用したデータ送受信の発生が検出されると、該当するコネクションのコネクション情報をコネクション情報ハッシュ記憶部２６から検出し、コネクション保存時間記憶部２１に記憶された保存時間を考慮し、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値に対する相対位置のコネクション情報リストにリンクを変更する。例えば、保存時間が３００秒、監視周期間隔が６０秒、テーブル内現在インデックスが１だった場合には、３００秒（保存時間）後に、周期コネクション監視処理部２７の周期コネクション監視処理の対象になると予測されるのは、テーブル内現在インデックスが６のコネクション情報リスト、すなわちコネクション情報リスト０６であり、コネクション情報管理部２０において、コネクション情報リスト０６にデータ送受信の発生が検出されたコネクションに対応するコネクション情報のリンクが変更される。
【００６３】
又、コネクション情報管理部２０において、該当するコネクションのコネクション情報をコネクション情報ハッシュ記憶部２６から検出する方法としては、データ送受信の対象となったクライアント端末３００のアドレスを接続クライアントアドレス情報５０５として有するコネクション情報を検索することにより行っても良い。データ送受信の対象となったクライアント端末３００のアドレスとしては、例えば、データ送信時のパケットの宛先アドレスや、データ受信時のパケットの送信元アドレスを適用することが挙げられる。
【００６４】
コネクション情報管理部２０において、データ送受信が発生したと検出されたコネクションに対応するコネクション情報について、コネクション情報監視テーブル記憶部２５のコネクション情報リストにリンクさせる際のインデックス値（以下、上述と同様に「インデックスＹ」と表す）も、上述の（２）式の結果を上述の（３）式により補正することにより求めても良い。
【００６５】
（Ａ−２）実施形態の動作
次に、以上のような構成を有する実施形態のコネクション情報管理部２０におけるコネクション管理の動作を説明する。
【００６６】
（Ａ−２−１）新規コネクション生成時の動作
図７は、通信サーバシステム１００において、新規コネクションが生成される際のコネクション情報管理部２０におけるコネクション情報に関する動作について説明したフローチャートである。
【００６７】
なお、ここでは、上述の図１と同様に、コネクション保存時間記憶部２１に記憶された値が「３００秒」、コネクション監視周期間隔記憶部２２に記憶された値が「６０秒」、テーブル内リスト数記憶部２３に記憶された値が「６１（本）」とする。又、テーブル内現在インデックス記憶部２４に記憶された初期値が「５５」であるものとする。
【００６８】
まず、コネクション情報管理部２０において、通信サーバシステム１００とクライアント端末３００との間で新規にコネクションが生成される契機が検出される（Ｓ１００）。
【００６９】
次に、コネクション情報管理部２０において、確立された新規コネクションに対して、新規にコネクション情報が生成される（Ｓ１１０）。
【００７０】
このとき、コネクション情報管理部２０において、新規に生成されたコネクション情報には、個々のコネクション情報ごとにユニークとなる値がコネクション情報の情報ＩＤ５０１として「１０００」が付与され、接続されたクライアント端末３００のアドレスなどの識別情報が接続クライアントアドレス情報５０５として付与され、接続されたクライアント端末３００と確立されたコネクション上でデータを送受信する際に使用されるリソース情報がリソース情報５０６に付与される。以降、上述のＳ１１０で生成されたコネクション情報は、「コネクション情報Ｃ１０００」と表すものとする。
【００７１】
次に、コネクション情報管理部２０において、上述ステップＳ１１０で生成されたコネクション情報Ｃ１０００が、コネクション情報ハッシュ記憶部２６に記憶される（Ｓ１２０）。なお、このとき、接続クライアントアドレス情報５０５が、コネクション情報Ｃ１０００を検索する際のキー情報となるものとする。
【００７２】
次に、コネクション情報管理部２０において、上述のＳ１２０でコネクション情報ハッシュ記憶部２６に記憶されたコネクション情報Ｃ１０００について、コネクション情報監視テーブル記憶部２５のコネクション情報リストにリンクさせる際のインデックス値（接続先インデックスＹ）が算出される（Ｓ１３０）。
【００７３】
接続先インデックスＹを上述の式（２）により求めると、ここでは、「保存時間」は３００秒、「監視周期間隔」は６０秒、「現在インデックス値」は５５であるので、Ｙ＝３００÷６０＋５５＋１＝６１となる。
【００７４】
次に、コネクション情報管理部２０により、上述のステップＳ１３０において算出された接続先インデックスＹの値が補正される（Ｓ１４０）。
【００７５】
補正後の接続先インデックスＹの値を、上述の（３）式により求めると、ここでは、接続先インデックスＹの値は６１で、テーブル内リスト数記憶部２３に記憶された値は６１であるので、６１  ｍｏｄ  ６１＝０となり、補正後の接続先インデックスＹの値は「０」となる。
【００７６】
次に、コネクション情報管理部２０では、上述のステップＳ１１０で生成されたコネクション情報Ｃ１０００が、上述のステップＳ１３０、Ｓ１４０で算出された接続先インデックスＹに対応するテーブル内現在インデックス記憶部２４内のコネクション情報リストの末尾に追加（リンク）される（Ｓ１５０）。
【００７７】
ここでは、上述のステップＳ１３０、Ｓ１４０で算出された接続先インデックスＹの値は「０」であるので、上述のステップＳ１１０で生成されたコネクション情報Ｃ１０００は、コネクション情報ハッシュ記憶部２６内のコネクション情報リストＬ００の末尾にリンクされる。
【００７８】
図８は、上述のステップＳ１００〜１５０の動作により、コネクション情報Ｃ１０００が、コネクション情報リストＬ００の末尾に追加されている状況を示した説明図である。
【００７９】
（Ａ−２−２）データ送受信時の動作
図９は、通信サーバシステム１００とクライアント端末３００とが、コネクションを使用したデータ送受信をした際の、コネクション情報管理部２０におけるコネクション情報に関する動作について説明したフローチャートである。
【００８０】
なお、ここでは上述の図１と同様に、コネクション保存時間記憶部２１に記憶された値が「３００秒」、コネクション監視周期間隔記憶部２２に記憶された値が「６０秒」、テーブル内リスト数記憶部２３に記憶された値が「６１（本）」とする。又、テーブル内現在インデックス記憶部２４に記憶された初期値が「５５」であるものとする。
【００８１】
まず、コネクション情報管理部２０において、通信サーバシステム１００とクライアント端末３００との間で、コネクションを使用したデータ送受信の発生が検出される（Ｓ２００）。
【００８２】
次に、コネクション情報管理部２０では、コネクション情報ハッシュ記憶部２６内において、上述のステップＳ２００においてデータ送受信に使用されたコネクション情報が検索される（Ｓ２１０）。
【００８３】
ここでは、コネクション情報管理部２０においては、検索の結果、情報ＩＤ５０１が「７０００」であるコネクション情報Ｃ７０００が検出されたものとする。
【００８４】
次に、コネクション情報管理部２０において、上述のステップＳ２１０で検出されたコネクション情報Ｃ７０００に設定されている現在リストインデックス５０４（以降、「現在リンク中リストインデックスＸ」と表す）の情報が取得される（Ｓ２２０）。
【００８５】
ここでは、コネクション情報Ｃ７０００は、テーブル内現在インデックス記憶部２４において、コネクション情報リストＬ６０にリンクされており、現在リンク中リストインデックスＸ＝６０であるものとする。
【００８６】
次に、コネクション情報管理部２０において、上述のＳ２１０で検出されたコネクション情報Ｃ７０００について、コネクション情報監視テーブル記憶部２５のコネクション情報リストにリンクさせる際のインデックス値（接続先インデックスＹ）が算出される（Ｓ２３０）。
【００８７】
接続先インデックスＹは、上述の式（２）により求めると、ここでは、「保存時間」は３００秒、「監視周期間隔」は６０秒、「現在インデックス値」は５５、であるので、Ｙ＝３００÷６０＋５５＋１＝６１となる。
【００８８】
次に、コネクション情報管理部２０により、上述のステップＳ２３０において算出された接続先インデックスＹの値が補正される（Ｓ２４０）。
【００８９】
補正後の接続先インデックスＹの値を、上述の（３）式により求めると、ここでは、接続先インデックスＹの値は６１で、テーブル内リスト数記憶部２３に記憶された値は６１であるので、６１  ｍｏｄ  ６１＝０となり、接続先インデックスＹの値は「０」に補正される。
【００９０】
次に、上述のステップＳ２２０で、コネクション情報管理部２０において取得された現在リンク中リストインデックスＸと、上述のステップＳ２４０で算出された接続先インデックスＹが比較され、２つの値が等しい場合には動作が終了され、２つの値が等しくない場合には後述するステップＳ２６０の動作が行われる（Ｓ２５０）。
【００９１】
ここでは、現在リンク中リストインデックスＸ（＝６０）と、接続先インデックスＹ（＝０）は等しくないため、後述するステップＳ２６０の動作が行われる。
【００９２】
ステップＳ２５０の判定において、現在リストインデックスと、接続先インデックスＹの値が等しくないという結果であった場合には、コネクション情報管理部２０において、上述のステップＳ２１０で検出されたコネクション情報Ｃ７０００が、現在リンク中リストインデックスＸ（＝６０）のコネクション情報リスト、すなわちコネクション情報リストＬ６０から抜き出され（Ｓ２６０）、接続先インデックスＹ（＝０）に対応するコネクション情報リスト、すなわちコネクション情報リストＬ００の末尾に追加（リンク）され、リンクが変更される（Ｓ２７０）。
【００９３】
図１０は、上述のステップＳ２００〜２７０の動作により、コネクション情報Ｃ７０００が、コネクション情報リストＬ６０より抜き出され、コネクション情報リストＬ００の末尾に追加されている状況を示した説明図である。
【００９４】
このように、新規コネクションが確立された際、及びコネクション使用してデータの送受信が行われた際には、対応するコネクション情報は、コネクション情報監視テーブル記憶部２５内の、コネクション保存時間記憶部２１が考慮された現在インデックスに対する相対位置にインデックスされるコネクション情報リストにリンクされる。
【００９５】
（Ａ−２−３）周期コネクション監視処理が起動された際の動作
図１１は、コネクション情報管理部２０において、周期コネクション監視処理部２７が起動された際の動作を説明したフローチャートである。
【００９６】
なお、ここでは上述の図１と同様にコネクション保存時間記憶部２１に記憶された値が「３００秒」、コネクション監視周期間隔記憶部２２に記憶された値が「６０秒」、テーブル内リスト数記憶部２３に記憶された値が「６１（本）」とする。又、テーブル内現在インデックス記憶部２４に記憶された初期値が「５９」であるものとする。又、周期コネクション監視処理部２７では、周期コネクション監視処理について就寝した状態であるものとする。
【００９７】
まず、周期コネクション監視処理部２７では、コネクション監視周期間隔記憶部２２に記憶されたコネクション監視周期間隔の経過後、周期コネクション監視処理が起床される（Ｓ３００）。
【００９８】
次に、周期コネクション監視処理部２７において、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値が、コピーされる（コピーされたインデックス値を、以降、「チェックインデックスＺ」と表すものとする）（Ｓ３１０）。
【００９９】
ここでは、上述の通り、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値は「５９」であるのでチェックインデックスＺ＝５９となる。
【０１００】
次に、コネクション情報管理部２０において、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値が更新される（Ｓ３２０）。
【０１０１】
コネクション情報管理部２０における、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値の更新値を、上述の（１）式により求めると、ここでは、現在インデックス値が５９、テーブル内リスト数記憶部２３に記憶されたリスト数が６１であるので、（５９＋１）  ｍｏｄ  ６１＝６０が、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値の更新値となる。
【０１０２】
そして、周期コネクション監視処理部２７において、上述のステップＳ３１０でコピーしたチェックインデックスＺ（＝５９）をインデックス値とするコネクション情報リストＬ５９の先頭のコネクション情報、すなわちリスト先頭Ｌ５９−ａにリンクされたコネクション情報が、ポップ（リンクされている情報の取得を試みる）される（Ｓ３３０）
次に、周期コネクション監視処理部２７において、上述のステップＳ３３０におけるポップ結果について判定され、先頭のコネクション情報がなしの場合には、コネクション監視周期間隔記憶部２２に記憶された時間分（６０秒）周期コネクション監視処理を就寝させ（Ｓ３７０）上述のステップＳ３００から動作し、コネクション情報ありの場合には、後述するステップＳ３５０の動作が行わる（Ｓ３４０）。
【０１０３】
ここでは、コネクション情報リストＬ５９には一件もコネクション情報はリンクされておらず、ポップ結果は「コネクション情報なし」となり、周期コネクション監視処理が、コネクション監視周期間隔記憶部２２に記憶された時間分（６０秒）就寝されるものとする。
【０１０４】
次に、このままの状態で６０秒後に、周期コネクション監視処理部２７において、周期コネクション監視処理が起床した際の動作について説明する。なお、このとき、上述のステップＳ３２０の動作により、テーブル内現在インデックス記憶部２４には現在インデックス値として「６０」が記憶されている。
【０１０５】
まず、周期コネクション監視処理部２７では、周期コネクション監視処理が起床される（Ｓ３００）。
【０１０６】
次に、周期コネクション監視処理部２７において、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値が、コピーされる（Ｓ３１０）。
【０１０７】
ここでは、上述の通り、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値は「６０」であるのでチェックインデックスＺ＝６０となる。
【０１０８】
次に、コネクション情報管理部２０において、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値が更新される（Ｓ３２０）。
【０１０９】
ここでは、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値が６０、テーブル内リスト数記憶部２３に記憶された値が６１であるので、上述と同様の計算により、（６０＋１）  ｍｏｄ  ６１＝０が、テーブル内現在インデックス記憶部２４に記憶された現在インデックス値の更新値となる。
【０１１０】
そして、周期コネクション監視処理部２７において、上述のステップＳ３１０でコピーしたチェックインデックスＺ（＝６０）に対応するコネクション情報リストＬ６０の先頭のコネクション情報、すなわちリスト先頭Ｌ６０−ａにリンクされたコネクション情報が、ポップされる（Ｓ３３０）
次に、周期コネクション監視処理部２７において、上述のステップＳ３３０におけるポップ結果について判定される（Ｓ３４０）
ここでは、当初、コネクション情報リストＬ６０には、先頭から順に、情報ＩＤ５０１が「５０００」のコネクション情報Ｃ５０００、情報ＩＤ５０１が「７０００」のコネクション情報Ｃ７０００、情報ＩＤ５０１が「９９９９」のコネクション情報Ｃ９９９９、の計３つのコネクション情報がリンクされていたものとする。よって、上述のＳ３４０の判定においては、コネクション情報Ｃ５０００がポップされ、「コネクション情報あり」という結果となる。
【０１１１】
次に、周期コネクション監視処理部２７において、上述のステップＳ３４０においてポップされたコネクション情報５０００に設定されているリソース情報５０６に基づいて、コネクション情報５０００に対応するコネクションが識別され、コネクション管理部１１により当該コネクションが解放される（Ｓ３５０）。
【０１１２】
次に、周期コネクション監視処理部２７において、上述のステップＳ３４０においてポップされたコネクション情報５０００について、コネクション情報ハッシュ記憶部２６から登録解除がされ、コネクション情報５０００自体も削除され、コネクション情報リストＬ６０のリスト先頭Ｌ６０−ａには、２番目のコネクション情報であるコネクション情報Ｃ７０００がリンクされ、上述のステップＳ３３０の処理に戻って動作する（Ｓ３６０）。
【０１１３】
その後、上述のステップＳ３３０〜Ｓ３６０の動作について、コネクション情報リストＬ６０内の全てのコネクション情報が削除されるまで繰り返されると、上述のステップＳ３４０において、ポップ結果が「コネクション情報なし」という判定結果となり、周期コネクション監視処理が就寝され（Ｓ３７０）、再度上述のステップＳ３００から動作が繰り返される。
【０１１４】
図１２は、上述のステップＳ３００〜Ｓ３７０の動作の後、コネクション情報リストＬ６０にリンクされていた、コネクション情報Ｃ５０００、コネクション情報Ｃ７０００、コネクション情報Ｃ９９９９が削除された状況を示している。
【０１１５】
（Ａ−３）実施形態の効果
上記実施形態によれば、以下のような効果を奏することが可能となる。
【０１１６】
以上のように、上記の実施形態によれば、コネクション型プロトコルを利用した通信サーバシステムにおいて、コネクション情報管理部２０を保持し、その内部に、コネクション保存時間記憶部２１、コネクション監視周期間隔記憶部２２、テーブル内現在インデックス記憶部２４、コネクション情報監視テーブル記憶部２５、コネクション情報ハッシュ記憶部２６を設けて、コネクションを使用してデータの送受信が行われた際に対応するコネクション情報を、コネクション情報監視テーブル記憶部２５内の現在位置のリスト（現在インデックス値に対応するコネクション情報リスト）からコネクション保存時間が考慮された相対位置のコネクション情報リストに移動すること、及び、周期コネクション監視処理部２７によってテーブル内現在インデックスに対応するリストにリンクされる全てのコネクション情報のコネクションを強制的に解放することによって、クライアント端末３００が自立的にコネクションを解放しない（コネクションを再利用している）状況下においても、通信サーバシステム１００上で同時に確立されるコネクションの数を抑制し、通信サーバシステム１００においてコネクション管理に必要なシステムリソースを低減することが可能となる。又、予め設定された保存時間以上使用されていないコネクションのみを検出して強制的に解放するので、使用中のコネクションや、使用頻度の高いコネクションについては強制的に解放されず、強制的なコネクション解放により発生する再度のコネクション確立の頻度を低減し、通信サーバシステム１００においてコネクション管理に必要なシステムリソース（処理能力や記憶容量など）を低減することが可能となる。
【０１１７】
又、上記の実施形態では、コネクション情報監視テーブル記憶部２５内のコネクション情報リストを、周期コネクション監視処理部２７が、コネクション監視周期間隔記憶部２２に記憶された監視周期間隔で巡回して監視し、監視対象のコネクション情報リストにリンクされたコネクション情報に該当するコネクションを、コネクション保存時間記憶部２１に記憶された保存時間以上使用されていないコネクションとみなして全て解放している。これにより、コネクションごとに個別に保存時間を記憶して管理（タイマ設定など）する必要がないため、大量のコネクションが発生した場合でも、通信サーバシステム１００（コネクション情報管理部２０）において、コネクション管理に必要なシステムリソースを低減することが可能となる。
【０１１８】
さらに又、上記の実施形態によれば、コネクション情報監視テーブル記憶部２５のコネクション情報リストでは、上述の図４のように、リスト先頭とリスト末尾の情報のみを有し、コネクション情報リスト内のコネクション情報同士のリンクの変更は、上述の図５の前方リンクＩＤ５０２、後方リンクＩＤ５０３の情報の更新を行うのみで行っている。これにより、コネクション情報監視テーブル記憶部２５では、コネクション情報リスト内にリンクされている全てのコネクション情報に関する情報を記憶して処理する必要はないため、大量のコネクションが発生した場合でも、通信サーバシステム１００（コネクション情報管理部２０）において、コネクション管理に必要なシステムリソースを低減することが可能となる。
【０１１９】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１２０】
（Ｂ−１）上記の実施形態においては、コネクション情報管理部２０のコネクション監視周期間隔記憶部２２に記憶された周期コネクション監視間隔は６０秒、テーブル内リスト数記憶部２３に記憶されたテーブル内リスト数が６１（本）であったため、コネクション保存時間記憶部２１に保存されるコネクション保存時間は最大３６００秒までしか設定できなかった。しかし、周期コネクション監視間隔の時間を別の値に設定することによって、コネクション保存時間の最大値を変動させることが可能である。
【０１２１】
（Ｂ−２）上記の実施形態においては、周期コネクション監視間隔は６０秒に設定されていたため、コネクション保存時間が３００秒と設定されていても、コネクションが解放されるまでの時間として、３００秒から３６０秒未満と約６０秒の誤差が生じてしまう。しかし、周期コネクション監視間隔を短くすることにより、コネクション保存時間の制度を高めることが可能となる。
【０１２２】
（Ｂ−３）本発明は、多数のクライアント端末を収容するコネクション型プロトコルを利用した通信サーバシステム全般に応用することが可能である。例えば、ＷＥＢクライアントを収容するＷＥＢサーバや、ＳＩＰ電話端末を収容するＳＩＰ交換機サーバなどである。
【０１２３】
（Ｂ−４）上記の実施形態においては、コネクション情報管理部２０は、コネクション保存時間、周期コネクション監視間隔を、それぞれ１つしか記憶していなかったが、複数記憶してコネクション情報ごとに異なるパラメータ値を適用しても良い。
【０１２４】
例えば、クライアント端末３００ごとや、クライアント端末３００に提供するアプリケーションサービスの種類ごとに異なるパラメータ値を適用することなどが挙げられる。
【０１２５】
（Ｂ−５）上記の実施形態においては、コネクション情報監視テーブル記憶部２５には、１群のコネクション情報リスト（Ｌ００〜Ｌ６０）が記憶される例について説明したが、複数の群のコネクション情報リストを記憶しても良い。又、その際、コネクション保存時間記憶部２１、コネクション監視周期間隔記憶部２２、テーブル内リスト数記憶部２３、テーブル内現在インデックス記憶部２４、においてコネクション情報リストの各群について異なるパラメータを記憶して適用しても良い。又、コネクション情報リストの各群がそれぞれ有するコネクション情報リストの数が異なるものであっても良い。
【０１２６】
例えば、１つの通信サーバシステム１００内で複数のアプリケーションサービスが混在する場合には、アプリケーションごとに適用するコネクション情報リスト群を分けることにより、それぞれのアプリケーションの特性に応じたコネクション監視周期間隔などを適用することなどが挙げられる。
【０１２７】
（Ｂ−６）上記実施形態では、コネクション強制解放装置を通信サーバシステム１００自体に搭載した場合を示したが、通信サーバシステム１００に対する外付け装置（コネクタ接続、ケーブル接続は問わない）として構築するようにしても良い。なお、コネクション強制解放装置又は外付けする装置の種類は限定されないものである。
【０１２８】
（Ｂ−７）上記の実施形態では、コネクション情報管理部２０において、通信サーバシステム１００とクライアント端末３００との間でデータの送受信の発生が検出された場合に、データの送受信に使用されたコネクションに対応するコネクション情報を、コネクション情報ハッシュ記憶部２６から検出する方法として、データ送受信の対象となったクライアント端末３００のアドレスを接続クライアントアドレス情報５０５（上述の図５参照）として有するコネクション情報を検索することが挙げられているが、当該クライアント端末３００と、通信サーバシステム１００との間で複数のコネクションが発生していた場合は、クライアント端末３００のアドレスだけでは、データの送受信に使用されたコネクションに対応するコネクション情報は特定できない。そこで、１つのクライアント端末３００に対して複数のコネクションが発生した場合には、例えば、コネクションごとにＴＣＰにおけるポート番号を異なる値に設定して通信し、コネクション情報管理部２０において、通信に用いられたポート番号にもとづいてコネクション情報と対応するコネクションを識別しても良い。その際、コネクション情報管理部２０において、コネクション情報の接続クライアントアドレス情報５０５（上述の図５参照）に、通信に使用するポート番号の情報をさらに記憶することにより、各コネクションに用いられるポート番号を管理しても良い。
【０１２９】
（Ｂ−８）上記の実施形態では、コネクション情報監視テーブル記憶部２５における、各コネクション情報リストは、リスト先頭の要素と、リスト末尾の要素を有しているが、いずれか一方を有する構成としても良い。その際は、コネクション情報管理部２０において、コネクション情報リスト内の、コネクション情報のポップ、追加、削除などは、片方の要素からのみ行う。
【０１３０】
（Ｂ−９）上記の実施形態の、コネクション情報管理部２０では、コネクションを使用してデータの送受信が行われたとき、及び新規コネクションが生成されたときに、対応するコネクション情報を、コネクション情報監視テーブル記憶部２５内の現在位置のリスト（現在インデックス値に対応するコネクション情報リスト）からコネクション保存時間が考慮された相対位置のコネクション情報リストにリンクを変更しているが、現時点よりも後の時刻に、コネクション情報監視テーブル記憶部２５によって、周期コネクション監視処理の対象となるコネクション情報リストに、リンクを変更する構成であれば良く、コネクション情報のリンク先を変更する構成は、上記の実施形態に限定されないものである。例えば、データ送受信に使用されたコネクションに対応するコネクション情報のリンクの変更先は、現在インデックス値に、予め設定されたホップ数を加算したインデックス値が指し示すコネクション情報リストにリンクを変更することが挙げられる。なお、加算した結果が、テーブル内リスト数記憶部２３に記憶されたリスト数以上の場合には、上述の（３）式と同様に、加算した結果をリスト数で割った余りを、リンクの変更先のインデックス値としても良い。
【０１３１】
（Ｂ−１０）上記の実施形態では、各コネクション情報をコネクション情報ハッシュ記憶部２６に記憶させ、コネクション情報監視テーブル記憶部２５のいずれかのコネクション情報リストにリンクさせることにより、コネクション情報リストを形成しているが、各コネクション情報を複数のグループに分け、各コネクション情報が所属するグループを識別できる構成であれば良く、コネクション情報を記憶して管理するための構成は、上記の実施形態に限定されないものである。例えば、グループごとに、コネクション情報自体を記憶する領域を分けて管理する構成などが挙げられる。
【図面の簡単な説明】
【０１３２】
【図１】コネクション情報管理部の内部構成を示すブロック図である。
【図２】この実施形態に関係する各種装置の接続関係などの説明図である。
【図３】コネクション管理部の内部構成を示すブロック図である。
【図４】コネクション情報監視テーブル記憶部のコネクション情報リストの内容を示した説明図である。
【図５】各コネクション情報の各要素の内容について示した説明図である。
【図６】各コネクション情報を構成する各要素の詳細について示した説明図である。
【図７】新規コネクションが生成される際のコネクション情報管理部におけるコネ動作について説明したフローチャートである。
【図８】新規に生成されたコネクション情報が、コネクション情報リストの末尾に追加されている状況を示した説明図である。
【図９】通信サーバシステムが、クライアント端末とデータ送受信をした際の、コネクション情報管理部における動作について説明したフローチャートである。
【図１０】通信サーバシステムが、クライアント端末とデータ送受信をした際にコネクション情報のリンクが変更された状況を示した説明図である。
【図１１】コネクション情報管理部において、周期コネクション監視処理部が起動された際の動作を説明したフローチャートである。
【図１２】コネクション情報リストにリンクされていた、コネクション情報が削除された状況を示した説明図である。
【符号の説明】
【０１３３】
２０…コネクション情報管理部、２１…コネクション保存時間記憶部、２２…コネクション監視周期間隔記憶部、２３…テーブル内リスト数記憶部、２４…テーブル内現在インデックス記憶部、２５…コネクション情報監視テーブル記憶部、２６…コネクション情報ハッシュ記憶部、２６…コネクション情報ハッシュ記憶部、２７…周期コネクション監視処理部。
【図１】
2008288794.tif 000003
【図２】
2008288794.tif 000004
【図３】
2008288794.tif 000005
【図４】
2008288794.tif 000006
【図５】
2008288794.tif 000007
【図６】
2008288794.tif 000008
【図７】
2008288794.tif 000009
【図８】
2008288794.tif 000010
【図９】
2008288794.tif 000011
【図１０】
2008288794.tif 000012
【図１１】
2008288794.tif 000013
【図１２】
2008288794.tif 000014