JP4893464B2 - コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム - Google Patents

コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム Download PDF

Info

Publication number
JP4893464B2
JP4893464B2 JP2007130682A JP2007130682A JP4893464B2 JP 4893464 B2 JP4893464 B2 JP 4893464B2 JP 2007130682 A JP2007130682 A JP 2007130682A JP 2007130682 A JP2007130682 A JP 2007130682A JP 4893464 B2 JP4893464 B2 JP 4893464B2
Authority
JP
Japan
Prior art keywords
connection
connection information
information
list
established
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007130682A
Other languages
English (en)
Other versions
JP2008288794A (ja
Inventor
功夫 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007130682A priority Critical patent/JP4893464B2/ja
Publication of JP2008288794A publication Critical patent/JP2008288794A/ja
Application granted granted Critical
Publication of JP4893464B2 publication Critical patent/JP4893464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラムに関し、例えば、コネクション型プロトコルによりクライアント端末と通信する通信サーバシステムに適用し得る。
通信システムにおいては、サーバとクライアントとの間で通信を開始する際に論理的な通信路を確立してから、その通信路上でメッセージの送受信を行うものがある。これをコネクション型プロトコルと呼び、通信路をコネクションと呼ぶ。
例えば、WWWサーバは、TCP(Transmission Control Protocol)を利用してクライアントから通信路としてTCPコネクションを確立し、このコネクション上でHTTP(Hypertext Transfer Protocol、非特許文献2)メッセージの送受信を行うことによって、WEB上の文書の閲覧サービスを提供している。また、SIP(Session Initiation Protocol、非特許文献1)システムにおいては、サーバとクライアント間でコネクションレス型プロトコルであるUDPを利用してSIPメッセージを送受信することが一般的であるが、サービスの多様化などの要因により1つのSIPメッセージに設定される情報量が増加することが考慮されており、TCPを利用したSIPメッセージの送受信をサポートすることが必須とされている。
例えば、コネクション型プロトコルを利用してクライアント端末と通信を行い、クライアント端末にアプリケーションサービスを提供する通信サーバシステムにおいて、サーバとクライアント間でメッセージを送受信するごとにコネクションを確立するという動作が規定された場合、(1)コネクションの確立(2)メッセージの送信又は受信(3)コネクションの解放(確立中のコネクションの切断)、という処理が延々と繰り返されることになり、毎回実行されるコネクションの確立処理・解放処理がシステムの輻輳を引き起こしかねない。この回避策として、一旦確立したコネクションを解放せずに再利用することで、そのコネクション上で信号の送受信を実施する方法が、SIP(非特許文献1)、HTTP(非特許文献2)などにおいて提案実現されている。
IETF,「RFC3261"SIP:Session Initiation Protocol"」 IETF,「RFC2616"HTTP:Hypertext Transfer Protocol"」
今日では、ハードウェア技術の飛躍的な進歩を土台にして、一台のサーバにおいて数万から数十万オーダという多数のクライアントを収容することで、設置サーバ台数を削減され、設備投資費の抑制や保守管理コストの削減を達成することが可能になってきた。
しかし、サーバが、数万から数十万オーダのクライアントを収容した状況下において、個々のクライアントがコネクションの再利用を目的に、サービスを利用しないとき、すなわち確立したコネクションを使用してメッセージなどのデータの送受信を行なわないときでも、一旦確立したコネクションをそのまま解放しないという動作を採った場合には、一台のサーバ上に同時に多数のコネクションが確立される可能性がある。この影響として、メッセージを送受信する際に多数のコネクションの中から該当するコネクションを検索するための処理量などが増加し、サーバが輻輳してしまうことや、多数のコネクションに関する情報が発生しサーバ内の記憶容量が不足するなど、サーバ内のシステムリソースが枯渇する不具合が懸念される。
そこで、コネクション型プロトコルを利用してクライアント端末と通信する通信サーバシステムにおいて、一旦確立したコネクションを再利用しても、コネクション管理に必要なシステムリソースを低減することができるコネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラムが望まれている。
第1の本発明のコネクション強制解放装置は、(1)コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放装置であって、(2)上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、(3)複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、(4)上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段とを有し、(5)上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記解放対象コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させることを特徴とする。
第2の本発明のコネクション強制解放方法は、(1)コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放方法であって、コネクション情報リスト管理手段、解放対象コネクション検出手段、コネクション強制解放手段を有し、(2)上記コネクション情報リスト管理手段は、上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理し、(3)上記解放対象コネクション検出手段は、複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出し、(4)上記コネクション強制解放手段は、上記解放対象コネクションについて、コネクションを強制的に解放し、(5)上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記解放対象コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させることを特徴とする。
第3の本発明のコネクション強制解放プログラムは、(1)コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放プログラムであって、コンピュータを、(2)上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、(3)複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、(4)上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段として機能させ、(5)上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記解放対象コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させることを特徴とする。
本発明によれば、コネクション型プロトコルを利用してクライアント端末と通信する通信サーバシステムにおいて、一旦確立したコネクションを再利用しても、コネクション管理に必要なシステムリソースを低減することができる。
(A)実施形態
以下、本発明によるコネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラムの実施形態を、図面を参照しながら詳述する。
(A−1)実施形態の構成
図2は、この実施形態に関係する各種装置の接続関係などの説明図である。
通信サーバシステム100は、実施形態のコネクション強制解放装置を搭載しており、コネクション型プロトコルによりIPネットワーク200を経由して、複数のクライアント端末300と通信し、例えば、メール送受信サービス、WEB文書閲覧サービス、IP電話接続サービスなどのアプリケーションサービスをクライアント端末300に提供するものである。なお、コネクション型プロトコルとしては、例えば、TCPや、SCTP(Stream Control Transmission Protocol、IETF RFC2960)などが挙げられる。
個々のクライアント端末300が、通信サーバシステム100に対して通信を開始したい場合には、クライアント端末300よりコネクションを確立する。また、通信サーバシステム100が、クライアント端末300に対して通信を開始したい場合には、通信サーバシステム100よりコネクションを確立する。そして、通信サーバシステム100と、クライアント端末300との間では、確立されたコネクションを使用して、例えばアプリケーションサービスにおけるメッセージなどの、データ送受信が行われる。
通信サーバシステム100は、コネクション管理部11、アプリケーションサービス部12を有している。
アプリケーションサービス部12は、通信サーバシステム100が、クライアント端末300に対してアプリケーションサービスを提供する機能を担っている。アプリケーションサービスを、クライアント端末300が利用する場合には、まずクライアント端末300が、通信サーバシステム100に対してコネクションを確立し、そのコネクションを使用してサービスの要求メッセージを送信する。要求メッセージは、通信サーバシステム100の内部のアプリケーションサービス部12にて受け付けられ、要求内容に対応するサービスのアプリケーションが起動されることによって、クライアント端末300に対してサービス提供される。また、要求内容によっては、アプリケーションサービス部12が、要求元のクライアント端末300に対してコネクションを確立し、メッセージの送受信を行うことによってサービスを提供する。
コネクション管理部11は、通信サーバシステム100において確立中のコネクションを管理する機能を担っている。
図3は、コネクション管理部11の内部構成を示すブロック図である。
コネクション管理部11は、コネクション情報管理部20、アプリケーション要求受付部30、クライアント通知受信部40を有している。
アプリケーション要求受付部30は、アプリケーションサービス部12から、コネクションの確立要求や解放要求、およびメッセージの送信要求を受け付ける機能を担っている。アプリケーションサービス部12からメッセージの送信を要求する場合は、コネクション情報管理部20にどのコネクションを使用するかを付加情報として通知することによって、対応するコネクションを使用して、対象となるクライアント端末300に対してメッセージが送信される。
クライアント通知受信部40は、クライアント端末300から、コネクションの確立通知や解放通知、およびメッセージ通知を受信する機能を担っている。クライアント通知受信部40は、クライアント端末300から通知されたメッセージについて、コネクション情報管理部20を経由して、アプリケーションサービス部12に通知する。
図1は、コネクション情報管理部20の内部構成を示すブロック図である。なお、通信サーバシステム100は、例えば、CPU、ROM、RAM、EEPROM、ハードディスクなどのプログラムの実行構成、及び、他の通信装置と通信をするためのインターフェースを有する装置(1台に限定されず、複数台を分散処理し得るようにしたものであっても良い。)に、実施形態のコネクション強制解放プログラム等をインストールすることにより構築されるものであるが、機能的には上述の図1、図2、図3のように示すことができる。
コネクション情報管理部20は、コネクション保存時間記憶部21、コネクション監視周期間隔記憶部22、テーブル内リスト数記憶部23、テーブル内現在インデックス記憶部24、コネクション情報監視テーブル記憶部25、コネクション情報ハッシュ記憶部26、周期コネクション監視処理部27を有している。
コネクション情報ハッシュ記憶部26は、通信サーバシステム100において確立されたコネクションに関する情報であるコネクション情報を記憶する記憶手段である。コネクション情報管理部20では、通信サーバシステム100において、新規にコネクションが確立された場合には、新たなコネクション情報を生成してコネクション情報ハッシュ記憶部26に追加して記憶する。コネクション情報の詳細な内容について後述する。
テーブル内リスト数記憶部23は、後述するコネクション情報監視テーブル記憶部25に生成されているコネクション情報のリストの数を記憶する記憶手段である。ここでは、例えば、テーブル内リスト数記憶部23に記憶される値は61(本)とする。
コネクション情報監視テーブル記憶部25は、コネクション情報ハッシュ記憶部26に記憶されたコネクション情報を管理するためのテーブルである。コネクション情報監視テーブル記憶部25は、後述するコネクション情報リストを複数有している。
コネクション情報監視テーブル記憶部25は、テーブル内リスト数記憶部23に記憶された値と同じ数のコネクション情報リストを有しており、ここでは、テーブル内リスト数記憶部23に記憶された値は61(本)であるので、コネクション情報監視テーブル記憶部25は、61(本)のコネクション情報リストを有するものとする。なお、コネクション情報リストは、以降、「コネクション情報リストLXX」(XX:コネクション情報リストを識別するためのインデックス番号)と表すものとする。例えば、インデックス番号が「01」のコネクション情報リストは「コネクション情報リストL01」と表すものとする。又、個々のコネクション情報リストには、インデックス値として、先頭から00より、末尾がテーブル内リスト数記憶部23から1を減算した値までの順で付さるものとする。よって、ここでは、コネクション情報監視テーブル記憶部25は、「コネクション情報リストL00、コネクション情報リストL01、…、コネクション情報リストL60」のコネクション情報リストを有する。
テーブル内現在インデックス記憶部24は、現在時刻から算出される値であり、現時点で、コネクション情報監視テーブル記憶部25内のどのコネクション情報リストを指し示しているかを表すインデックス値の情報を記憶する記憶手段である。テーブル内現在インデックス記憶部24に記憶される現在インデックス値は、最小値は0、最大値はテーブル内リスト数記憶部23の値より1を減算した値の範囲をとる。また、現在インデックス値は、後述する周期コネクション監視処理部27が起動されるたびに1加算されることによって更新され、最大値に達した場合は、次の周期では0に更新される。ここでは、上述のテーブル内リスト数記憶部23は61(本)であるので、現在インデックス値は、0〜60の値が付与される。
次に、上述のコネクション情報の内容の詳細について説明する。
図5及び図6は、コネクション情報の構成について示した説明図である。
コネクション情報は、情報ID501、前方リンクID502、後方リンクID503、現在リストインデックス504、接続クライアントアドレス情報505、リソース情報506の情報を有している。
情報ID501は、当該コネクション情報を識別するための論理的なID情報である。
前方リンクID502、後方リンクID503、現在リストインデックス504は、上述のコネクション情報監視テーブル記憶部25のコネクション情報リストにおいて、後述するコネクション情報とのリンクに使用されるものであり、詳細については後述する。
接続クライアントアドレス情報505は、当該コネクション情報に対応するコネクションによって接続されたクライアント側のアドレス情報などの識別情報を示すものである。
リソース情報506は、当該コネクション情報に対応するコネクション上で信号を送受信する際に使用されるリソース情報(例えば、確立中のコネクションの識別情報)であり、対応するコネクションの解放時にも使用される。
上述のコネクション情報が有する情報のうち、情報ID501、接続クライアントアドレス情報505、リソース情報506は、コネクション情報が最初に生成される際に設定され、該当するコネクションが解放されるまで保持される。又、上述のコネクション情報が有する情報のうち、前方リンクID502、後方リンクID503、現在リストインデックス504については、コネクション情報が生成される際に設定された以降は、対応するコネクションを使用してデータの送受信が行われるときなどに更新される。
なお、コネクション情報は、以降「コネクション情報CXXXX」(XXXX:コネクション情報の情報ID)と表すものとする。例えば、情報IDが「0001」のコネクション情報は、「コネクション情報C0001」と表わすものとする。
次に、上述のコネクション情報監視テーブル記憶部25におけるコネクション情報リストの内容の詳細について説明する。
図4は、各コネクション情報リスト(L00〜L60)の内部構成について示した説明図である。
各コネクション情報リスト(L00〜L60)は、それぞれ、リスト先頭(の要素)(L00−a、L01−a、L01−a、…、L60−a)と、リスト末尾(の要素)(L00−b、L01−b、L01−b、…、L60−b)を有しており、個々に、コネクション情報の双方向リストを構成している。又、各コネクション情報リスト(L00〜L60)と、コネクション情報とは、リスト先頭(L00−a〜L60−a)と、リスト末尾(L00−b〜L60−b)の間に後述するリンクがされる。
次に、上述の図5に示すコネクション情報、各コネクション情報リスト(L00〜L60)における「リンク」について説明する。
コネクション情報リスト(L00〜L60)における、コネクション情報同士のリンクは、上述の図5における、前方リンクID502、後方リンクID503の情報を更新することにより行われる。前方リンクID502は、コネクション情報監視テーブル記憶部25のコネクション情報リスト内において、当該コネクション情報の前方にリンクされるコネクション情報のID情報501を有する。後方リンクID503は、当該コネクション情報の後方にリンクされるコネクション情報のID情報501を有する。
又、リスト先頭(L00−a〜L60−a)から、コネクション情報リスト(L00〜L60)における先頭のコネクション情報へのリンクは、リスト先頭(L00−a〜L60−a)が、先頭のコネクション情報のID情報501の情報を指し示す(有する)ことにより行われる。同様に、リスト末尾(L00−b〜L60−b)から、末尾のコネクション情報へのリンクは、リスト末尾(L00−b〜L60−b)が末尾のコネクション情報のID情報501の情報を指し示す(有する)ことにより行われる。
以上のように、各コネクション情報リストは、リスト先頭と、リスト末尾の要素を有することにより、先頭・末尾の双方向からリンクされた双方向リストを形成している。例えば、コネクション情報リストL00が、2件のコネクション情報C0001、C0010を双方向リストの要素として有しているものとすると、リスト先頭L00−aは、コネクション情報C0000を指し示してリンクされ、リスト末尾L00−bはコネクション情報C0010を指し示してリンクされる。又、例えば、コネクション情報リストL30にリンクされるコネクション情報の数が0件であったとすると、リスト先頭L30−a、及び、リスト末尾L30−bは何も指し示さない。
又、コネクション情報から、コネクション情報監視テーブル記憶部25におけるコネクション情報リストへのリンクは、現在リストインデックス504の情報が、当該コネクション情報のリンクの対象となるコネクション情報リストのインデックス値の情報を有することにより行われる。
次に、コネクション保存時間記憶部21について説明する。コネクション保存時間記憶部21は、データの送受信が行われていないコネクションが保存される時間を示す情報を記憶する記憶手段である。ここでは、例えば、コネクション保存時間記憶部21に記憶される値は「300秒」とする。
次に、コネクション監視周期間隔記憶部22について説明する。コネクション監視周期間隔記憶部22は、後述するコネクションの周期監視を実現するために、後述する周期コネクション監視処理部27の就寝時間の情報を記憶する記憶手段である。ここでは、例えば、コネクション監視周期間隔記憶部22に記憶される値は「60秒」とする。
次に、周期コネクション監視処理部27について説明する。
周期コネクション監視処理部27は、コネクション監視周期間隔記憶部22に記憶されたコネクション監視周期期間間隔で、周期コネクション監視処理を起床させ、所定の保存時間以上データ送受信に使用されていないコネクション情報を検出し、該当するコネクションの解放(コネクションの切断)をするものである。
周期コネクション監視処理部27では、周期コネクション監視処理が起床されると、テーブル内現在インデックス記憶部24に記憶された現在インデックス値に該当するコネクション情報監視テーブル記憶部25内のコネクション情報リストにリンクされたコネクション情報を検出し、検出したコネクション情報に対応するコネクションを全て強制的に解放する。コネクション解放の際に、検出したコネクション情報について、リンクされていたコネクション情報リストからリンクを削除し、コネクション情報ハッシュ記憶部26からも情報を削除する。なお、コネクションの解放の際に、コネクション情報のリソース情報506(上述の図5参照)の情報に基づいて、解放するコネクションを識別して解放しても良い。
又、コネクション情報管理部20において、周期コネクション監視処理部27における周期コネクション監視処理の起床の際に、テーブル内現在インデックス記憶部24に記憶された現在インデックス値が、現在インデックス値が示すコネクション情報リストの次に配置されたコネクション情報リストのインデックス値に更新される。現在インデックス値の更新は、現在インデックス値に1を加算し、その値をテーブル内リスト数記憶部23に記憶されたリスト数で割った余り、すなわち以下の(1)式により算出される値に更新しても良い。なお、以下の(1)式において、テーブル内リスト数記憶部23に記憶されたリスト数の値は「リスト数」と表すものとする。
更新後の現在インデックス値 =
(更新前の現在インデックス値+1) mod リスト数 …(1)
上述の通りコネクション情報監視テーブル記憶部25が有するコネクション情報リストの数は有限で、テーブル内現在インデックス記憶部24は、最大値に達した場合は、次の周期では0に更新されるが、上述の(1)式のような計算式に基づいて、現在インデックス値を更新することにより、例えば、リスト数が61、現在インデックス値が60であった場合でも、更新後の現在インデックス値は0となる。
次に、コネクション情報管理部20において、新規にコネクション情報が生成された際の処理について説明する。
コネクション情報管理部20は、通信サーバシステム100とクライアント端末300との間で新規にコネクションが生成される契機が検出されると、新規にコネクション情報を生成して、コネクション情報監視テーブル記憶部25のいずれかのコネクション情報リストにリンクさせる。新規コネクション生成の契機は、例えば、アプリケーションサービス部12からのコネクション確立要求が、コネクション管理部11にあり、要求対象のクライアント端末300とのコネクションが確立された場合や、クライアント端末300からコネクション確立通知がコネクション管理部11にあり、新規コネクションが確立された場合に検出される。
コネクション情報管理部20において、新規に生成されたコネクション情報は、コネクション保存時間記憶部21に記憶された保存時間を考慮し、テーブル内現在インデックス記憶部24に記憶された現在インデックス値に対する相対位置のコネクション情報リストにリンクさせる。例えば、保存時間が300秒、監視周期間隔が60秒、テーブル内現在インデックスが1だった場合に、300秒(保存時間)後に周期コネクション監視処理部27の周期コネクション監視処理の対象になると予測されるのは、テーブル内現在インデックスが6のコネクション情報リスト、すなわちコネクション情報リスト06となり、コネクション情報リスト06が新規に生成されたコネクション情報のリンク先となる。
コネクション情報管理部20において、新規に生成されたコネクション情報について、コネクション情報監視テーブル記憶部25のコネクション情報リストにリンクさせる際のインデックス値(以下、「接続先インデックスY」と表すものとする)は以下の(2)式の計算結果を、さらに以下の(3)式により補正して求めても良い。
なお、以下の(2)式において、コネクション保存時間記憶部21に記憶された値は「保存時間」、コネクション監視周期間隔記憶部22に記憶された値は「監視周期間隔」、テーブル内現在インデックス記憶部24に記憶された現在インデックスの値は「現在インデックス値」、接続先インデックスYは「Y」と表すものとする。又、以下の(3)式において、補正前のインデックスYは「補正前のY」、補正後のインデックスYは「補正後のY」、テーブル内リスト数記憶部23に記憶されたリスト数の値は「リスト数」と表すものとする。
Y=保存時間(秒)÷監視周期間隔(秒)+現在インデックス値+1 …(2)
補正後のY = 補正前のY mod リスト数 …(3)
上述の通りコネクション情報監視テーブル記憶部25が有するコネクション情報リストの数は有限で、テーブル内現在インデックス記憶部24は、最大値に達した場合は、次の周期では0に更新されるが、上述の(2)式及び(3)式のような計算式に基づいて、接続先インデックスYを求めることにより、例えば、リスト数が61、上述の(2)式により求めた接続先インデックスYが65であった場合でも、上述の(3)により、接続先インデックスYが4に補正される。
次に、コネクション情報管理部20において、通信サーバシステム100とクライアント端末300との間で、コネクションを使用して、例えばメッセージ通知などのデータ送受信の発生が検出された場合の処理について説明する。
データ送受信発生の契機は、例えば、アプリケーションサービス部12からのメッセージ送信要求が、アプリケーション要求受付部30を経由してコネクション情報管理部20にあり、コネクションを使用してメッセージを送信した場合や、クライアント端末300から確立中のコネクションを使用して送信されたメッセージ通知を、クライアント通知受信部40を経由して受信した場合などが挙げられる。
コネクション情報管理部20において、通信サーバシステム100とクライアント端末300との間で、コネクションを使用したデータ送受信の発生が検出されると、該当するコネクションのコネクション情報をコネクション情報ハッシュ記憶部26から検出し、コネクション保存時間記憶部21に記憶された保存時間を考慮し、テーブル内現在インデックス記憶部24に記憶された現在インデックス値に対する相対位置のコネクション情報リストにリンクを変更する。例えば、保存時間が300秒、監視周期間隔が60秒、テーブル内現在インデックスが1だった場合には、300秒(保存時間)後に、周期コネクション監視処理部27の周期コネクション監視処理の対象になると予測されるのは、テーブル内現在インデックスが6のコネクション情報リスト、すなわちコネクション情報リスト06であり、コネクション情報管理部20において、コネクション情報リスト06にデータ送受信の発生が検出されたコネクションに対応するコネクション情報のリンクが変更される。
又、コネクション情報管理部20において、該当するコネクションのコネクション情報をコネクション情報ハッシュ記憶部26から検出する方法としては、データ送受信の対象となったクライアント端末300のアドレスを接続クライアントアドレス情報505として有するコネクション情報を検索することにより行っても良い。データ送受信の対象となったクライアント端末300のアドレスとしては、例えば、データ送信時のパケットの宛先アドレスや、データ受信時のパケットの送信元アドレスを適用することが挙げられる。
コネクション情報管理部20において、データ送受信が発生したと検出されたコネクションに対応するコネクション情報について、コネクション情報監視テーブル記憶部25のコネクション情報リストにリンクさせる際のインデックス値(以下、上述と同様に「インデックスY」と表す)も、上述の(2)式の結果を上述の(3)式により補正することにより求めても良い。
(A−2)実施形態の動作
次に、以上のような構成を有する実施形態のコネクション情報管理部20におけるコネクション管理の動作を説明する。
(A−2−1)新規コネクション生成時の動作
図7は、通信サーバシステム100において、新規コネクションが生成される際のコネクション情報管理部20におけるコネクション情報に関する動作について説明したフローチャートである。
なお、ここでは、上述の図1と同様に、コネクション保存時間記憶部21に記憶された値が「300秒」、コネクション監視周期間隔記憶部22に記憶された値が「60秒」、テーブル内リスト数記憶部23に記憶された値が「61(本)」とする。又、テーブル内現在インデックス記憶部24に記憶された初期値が「55」であるものとする。
まず、コネクション情報管理部20において、通信サーバシステム100とクライアント端末300との間で新規にコネクションが生成される契機が検出される(S100)。
次に、コネクション情報管理部20において、確立された新規コネクションに対して、新規にコネクション情報が生成される(S110)。
このとき、コネクション情報管理部20において、新規に生成されたコネクション情報には、個々のコネクション情報ごとにユニークとなる値がコネクション情報の情報ID501として「1000」が付与され、接続されたクライアント端末300のアドレスなどの識別情報が接続クライアントアドレス情報505として付与され、接続されたクライアント端末300と確立されたコネクション上でデータを送受信する際に使用されるリソース情報がリソース情報506に付与される。以降、上述のS110で生成されたコネクション情報は、「コネクション情報C1000」と表すものとする。
次に、コネクション情報管理部20において、上述ステップS110で生成されたコネクション情報C1000が、コネクション情報ハッシュ記憶部26に記憶される(S120)。なお、このとき、接続クライアントアドレス情報505が、コネクション情報C1000を検索する際のキー情報となるものとする。
次に、コネクション情報管理部20において、上述のS120でコネクション情報ハッシュ記憶部26に記憶されたコネクション情報C1000について、コネクション情報監視テーブル記憶部25のコネクション情報リストにリンクさせる際のインデックス値(接続先インデックスY)が算出される(S130)。
接続先インデックスYを上述の式(2)により求めると、ここでは、「保存時間」は300秒、「監視周期間隔」は60秒、「現在インデックス値」は55であるので、Y=300÷60+55+1=61となる。
次に、コネクション情報管理部20により、上述のステップS130において算出された接続先インデックスYの値が補正される(S140)。
補正後の接続先インデックスYの値を、上述の(3)式により求めると、ここでは、接続先インデックスYの値は61で、テーブル内リスト数記憶部23に記憶された値は61であるので、61 mod 61=0となり、補正後の接続先インデックスYの値は「0」となる。
次に、コネクション情報管理部20では、上述のステップS110で生成されたコネクション情報C1000が、上述のステップS130、S140で算出された接続先インデックスYに対応するテーブル内現在インデックス記憶部24内のコネクション情報リストの末尾に追加(リンク)される(S150)。
ここでは、上述のステップS130、S140で算出された接続先インデックスYの値は「0」であるので、上述のステップS110で生成されたコネクション情報C1000は、コネクション情報ハッシュ記憶部26内のコネクション情報リストL00の末尾にリンクされる。
図8は、上述のステップS100〜150の動作により、コネクション情報C1000が、コネクション情報リストL00の末尾に追加されている状況を示した説明図である。
(A−2−2)データ送受信時の動作
図9は、通信サーバシステム100とクライアント端末300とが、コネクションを使用したデータ送受信をした際の、コネクション情報管理部20におけるコネクション情報に関する動作について説明したフローチャートである。
なお、ここでは上述の図1と同様に、コネクション保存時間記憶部21に記憶された値が「300秒」、コネクション監視周期間隔記憶部22に記憶された値が「60秒」、テーブル内リスト数記憶部23に記憶された値が「61(本)」とする。又、テーブル内現在インデックス記憶部24に記憶された初期値が「55」であるものとする。
まず、コネクション情報管理部20において、通信サーバシステム100とクライアント端末300との間で、コネクションを使用したデータ送受信の発生が検出される(S200)。
次に、コネクション情報管理部20では、コネクション情報ハッシュ記憶部26内において、上述のステップS200においてデータ送受信に使用されたコネクション情報が検索される(S210)。
ここでは、コネクション情報管理部20においては、検索の結果、情報ID501が「7000」であるコネクション情報C7000が検出されたものとする。
次に、コネクション情報管理部20において、上述のステップS210で検出されたコネクション情報C7000に設定されている現在リストインデックス504(以降、「現在リンク中リストインデックスX」と表す)の情報が取得される(S220)。
ここでは、コネクション情報C7000は、テーブル内現在インデックス記憶部24において、コネクション情報リストL60にリンクされており、現在リンク中リストインデックスX=60であるものとする。
次に、コネクション情報管理部20において、上述のS210で検出されたコネクション情報C7000について、コネクション情報監視テーブル記憶部25のコネクション情報リストにリンクさせる際のインデックス値(接続先インデックスY)が算出される(S230)。
接続先インデックスYは、上述の式(2)により求めると、ここでは、「保存時間」は300秒、「監視周期間隔」は60秒、「現在インデックス値」は55、であるので、Y=300÷60+55+1=61となる。
次に、コネクション情報管理部20により、上述のステップS230において算出された接続先インデックスYの値が補正される(S240)。
補正後の接続先インデックスYの値を、上述の(3)式により求めると、ここでは、接続先インデックスYの値は61で、テーブル内リスト数記憶部23に記憶された値は61であるので、61 mod 61=0となり、接続先インデックスYの値は「0」に補正される。
次に、上述のステップS220で、コネクション情報管理部20において取得された現在リンク中リストインデックスXと、上述のステップS240で算出された接続先インデックスYが比較され、2つの値が等しい場合には動作が終了され、2つの値が等しくない場合には後述するステップS260の動作が行われる(S250)。
ここでは、現在リンク中リストインデックスX(=60)と、接続先インデックスY(=0)は等しくないため、後述するステップS260の動作が行われる。
ステップS250の判定において、現在リストインデックスと、接続先インデックスYの値が等しくないという結果であった場合には、コネクション情報管理部20において、上述のステップS210で検出されたコネクション情報C7000が、現在リンク中リストインデックスX(=60)のコネクション情報リスト、すなわちコネクション情報リストL60から抜き出され(S260)、接続先インデックスY(=0)に対応するコネクション情報リスト、すなわちコネクション情報リストL00の末尾に追加(リンク)され、リンクが変更される(S270)。
図10は、上述のステップS200〜270の動作により、コネクション情報C7000が、コネクション情報リストL60より抜き出され、コネクション情報リストL00の末尾に追加されている状況を示した説明図である。
このように、新規コネクションが確立された際、及びコネクション使用してデータの送受信が行われた際には、対応するコネクション情報は、コネクション情報監視テーブル記憶部25内の、コネクション保存時間記憶部21が考慮された現在インデックスに対する相対位置にインデックスされるコネクション情報リストにリンクされる。
(A−2−3)周期コネクション監視処理が起動された際の動作
図11は、コネクション情報管理部20において、周期コネクション監視処理部27が起動された際の動作を説明したフローチャートである。
なお、ここでは上述の図1と同様にコネクション保存時間記憶部21に記憶された値が「300秒」、コネクション監視周期間隔記憶部22に記憶された値が「60秒」、テーブル内リスト数記憶部23に記憶された値が「61(本)」とする。又、テーブル内現在インデックス記憶部24に記憶された初期値が「59」であるものとする。又、周期コネクション監視処理部27では、周期コネクション監視処理について就寝した状態であるものとする。
まず、周期コネクション監視処理部27では、コネクション監視周期間隔記憶部22に記憶されたコネクション監視周期間隔の経過後、周期コネクション監視処理が起床される(S300)。
次に、周期コネクション監視処理部27において、テーブル内現在インデックス記憶部24に記憶された現在インデックス値が、コピーされる(コピーされたインデックス値を、以降、「チェックインデックスZ」と表すものとする)(S310)。
ここでは、上述の通り、テーブル内現在インデックス記憶部24に記憶された現在インデックス値は「59」であるのでチェックインデックスZ=59となる。
次に、コネクション情報管理部20において、テーブル内現在インデックス記憶部24に記憶された現在インデックス値が更新される(S320)。
コネクション情報管理部20における、テーブル内現在インデックス記憶部24に記憶された現在インデックス値の更新値を、上述の(1)式により求めると、ここでは、現在インデックス値が59、テーブル内リスト数記憶部23に記憶されたリスト数が61であるので、(59+1) mod 61=60が、テーブル内現在インデックス記憶部24に記憶された現在インデックス値の更新値となる。
そして、周期コネクション監視処理部27において、上述のステップS310でコピーしたチェックインデックスZ(=59)をインデックス値とするコネクション情報リストL59の先頭のコネクション情報、すなわちリスト先頭L59−aにリンクされたコネクション情報が、ポップ(リンクされている情報の取得を試みる)される(S330)
次に、周期コネクション監視処理部27において、上述のステップS330におけるポップ結果について判定され、先頭のコネクション情報がなしの場合には、コネクション監視周期間隔記憶部22に記憶された時間分(60秒)周期コネクション監視処理を就寝させ(S370)上述のステップS300から動作し、コネクション情報ありの場合には、後述するステップS350の動作が行わる(S340)。
ここでは、コネクション情報リストL59には一件もコネクション情報はリンクされておらず、ポップ結果は「コネクション情報なし」となり、周期コネクション監視処理が、コネクション監視周期間隔記憶部22に記憶された時間分(60秒)就寝されるものとする。
次に、このままの状態で60秒後に、周期コネクション監視処理部27において、周期コネクション監視処理が起床した際の動作について説明する。なお、このとき、上述のステップS320の動作により、テーブル内現在インデックス記憶部24には現在インデックス値として「60」が記憶されている。
まず、周期コネクション監視処理部27では、周期コネクション監視処理が起床される(S300)。
次に、周期コネクション監視処理部27において、テーブル内現在インデックス記憶部24に記憶された現在インデックス値が、コピーされる(S310)。
ここでは、上述の通り、テーブル内現在インデックス記憶部24に記憶された現在インデックス値は「60」であるのでチェックインデックスZ=60となる。
次に、コネクション情報管理部20において、テーブル内現在インデックス記憶部24に記憶された現在インデックス値が更新される(S320)。
ここでは、テーブル内現在インデックス記憶部24に記憶された現在インデックス値が60、テーブル内リスト数記憶部23に記憶された値が61であるので、上述と同様の計算により、(60+1) mod 61=0が、テーブル内現在インデックス記憶部24に記憶された現在インデックス値の更新値となる。
そして、周期コネクション監視処理部27において、上述のステップS310でコピーしたチェックインデックスZ(=60)に対応するコネクション情報リストL60の先頭のコネクション情報、すなわちリスト先頭L60−aにリンクされたコネクション情報が、ポップされる(S330)
次に、周期コネクション監視処理部27において、上述のステップS330におけるポップ結果について判定される(S340)
ここでは、当初、コネクション情報リストL60には、先頭から順に、情報ID501が「5000」のコネクション情報C5000、情報ID501が「7000」のコネクション情報C7000、情報ID501が「9999」のコネクション情報C9999、の計3つのコネクション情報がリンクされていたものとする。よって、上述のS340の判定においては、コネクション情報C5000がポップされ、「コネクション情報あり」という結果となる。
次に、周期コネクション監視処理部27において、上述のステップS340においてポップされたコネクション情報5000に設定されているリソース情報506に基づいて、コネクション情報5000に対応するコネクションが識別され、コネクション管理部11により当該コネクションが解放される(S350)。
次に、周期コネクション監視処理部27において、上述のステップS340においてポップされたコネクション情報5000について、コネクション情報ハッシュ記憶部26から登録解除がされ、コネクション情報5000自体も削除され、コネクション情報リストL60のリスト先頭L60−aには、2番目のコネクション情報であるコネクション情報C7000がリンクされ、上述のステップS330の処理に戻って動作する(S360)。
その後、上述のステップS330〜S360の動作について、コネクション情報リストL60内の全てのコネクション情報が削除されるまで繰り返されると、上述のステップS340において、ポップ結果が「コネクション情報なし」という判定結果となり、周期コネクション監視処理が就寝され(S370)、再度上述のステップS300から動作が繰り返される。
図12は、上述のステップS300〜S370の動作の後、コネクション情報リストL60にリンクされていた、コネクション情報C5000、コネクション情報C7000、コネクション情報C9999が削除された状況を示している。
(A−3)実施形態の効果
上記実施形態によれば、以下のような効果を奏することが可能となる。
以上のように、上記の実施形態によれば、コネクション型プロトコルを利用した通信サーバシステムにおいて、コネクション情報管理部20を保持し、その内部に、コネクション保存時間記憶部21、コネクション監視周期間隔記憶部22、テーブル内現在インデックス記憶部24、コネクション情報監視テーブル記憶部25、コネクション情報ハッシュ記憶部26を設けて、コネクションを使用してデータの送受信が行われた際に対応するコネクション情報を、コネクション情報監視テーブル記憶部25内の現在位置のリスト(現在インデックス値に対応するコネクション情報リスト)からコネクション保存時間が考慮された相対位置のコネクション情報リストに移動すること、及び、周期コネクション監視処理部27によってテーブル内現在インデックスに対応するリストにリンクされる全てのコネクション情報のコネクションを強制的に解放することによって、クライアント端末300が自立的にコネクションを解放しない(コネクションを再利用している)状況下においても、通信サーバシステム100上で同時に確立されるコネクションの数を抑制し、通信サーバシステム100においてコネクション管理に必要なシステムリソースを低減することが可能となる。又、予め設定された保存時間以上使用されていないコネクションのみを検出して強制的に解放するので、使用中のコネクションや、使用頻度の高いコネクションについては強制的に解放されず、強制的なコネクション解放により発生する再度のコネクション確立の頻度を低減し、通信サーバシステム100においてコネクション管理に必要なシステムリソース(処理能力や記憶容量など)を低減することが可能となる。
又、上記の実施形態では、コネクション情報監視テーブル記憶部25内のコネクション情報リストを、周期コネクション監視処理部27が、コネクション監視周期間隔記憶部22に記憶された監視周期間隔で巡回して監視し、監視対象のコネクション情報リストにリンクされたコネクション情報に該当するコネクションを、コネクション保存時間記憶部21に記憶された保存時間以上使用されていないコネクションとみなして全て解放している。これにより、コネクションごとに個別に保存時間を記憶して管理(タイマ設定など)する必要がないため、大量のコネクションが発生した場合でも、通信サーバシステム100(コネクション情報管理部20)において、コネクション管理に必要なシステムリソースを低減することが可能となる。
さらに又、上記の実施形態によれば、コネクション情報監視テーブル記憶部25のコネクション情報リストでは、上述の図4のように、リスト先頭とリスト末尾の情報のみを有し、コネクション情報リスト内のコネクション情報同士のリンクの変更は、上述の図5の前方リンクID502、後方リンクID503の情報の更新を行うのみで行っている。これにより、コネクション情報監視テーブル記憶部25では、コネクション情報リスト内にリンクされている全てのコネクション情報に関する情報を記憶して処理する必要はないため、大量のコネクションが発生した場合でも、通信サーバシステム100(コネクション情報管理部20)において、コネクション管理に必要なシステムリソースを低減することが可能となる。
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(B−1)上記の実施形態においては、コネクション情報管理部20のコネクション監視周期間隔記憶部22に記憶された周期コネクション監視間隔は60秒、テーブル内リスト数記憶部23に記憶されたテーブル内リスト数が61(本)であったため、コネクション保存時間記憶部21に保存されるコネクション保存時間は最大3600秒までしか設定できなかった。しかし、周期コネクション監視間隔の時間を別の値に設定することによって、コネクション保存時間の最大値を変動させることが可能である。
(B−2)上記の実施形態においては、周期コネクション監視間隔は60秒に設定されていたため、コネクション保存時間が300秒と設定されていても、コネクションが解放されるまでの時間として、300秒から360秒未満と約60秒の誤差が生じてしまう。しかし、周期コネクション監視間隔を短くすることにより、コネクション保存時間の制度を高めることが可能となる。
(B−3)本発明は、多数のクライアント端末を収容するコネクション型プロトコルを利用した通信サーバシステム全般に応用することが可能である。例えば、WEBクライアントを収容するWEBサーバや、SIP電話端末を収容するSIP交換機サーバなどである。
(B−4)上記の実施形態においては、コネクション情報管理部20は、コネクション保存時間、周期コネクション監視間隔を、それぞれ1つしか記憶していなかったが、複数記憶してコネクション情報ごとに異なるパラメータ値を適用しても良い。
例えば、クライアント端末300ごとや、クライアント端末300に提供するアプリケーションサービスの種類ごとに異なるパラメータ値を適用することなどが挙げられる。
(B−5)上記の実施形態においては、コネクション情報監視テーブル記憶部25には、1群のコネクション情報リスト(L00〜L60)が記憶される例について説明したが、複数の群のコネクション情報リストを記憶しても良い。又、その際、コネクション保存時間記憶部21、コネクション監視周期間隔記憶部22、テーブル内リスト数記憶部23、テーブル内現在インデックス記憶部24、においてコネクション情報リストの各群について異なるパラメータを記憶して適用しても良い。又、コネクション情報リストの各群がそれぞれ有するコネクション情報リストの数が異なるものであっても良い。
例えば、1つの通信サーバシステム100内で複数のアプリケーションサービスが混在する場合には、アプリケーションごとに適用するコネクション情報リスト群を分けることにより、それぞれのアプリケーションの特性に応じたコネクション監視周期間隔などを適用することなどが挙げられる。
(B−6)上記実施形態では、コネクション強制解放装置を通信サーバシステム100自体に搭載した場合を示したが、通信サーバシステム100に対する外付け装置(コネクタ接続、ケーブル接続は問わない)として構築するようにしても良い。なお、コネクション強制解放装置又は外付けする装置の種類は限定されないものである。
(B−7)上記の実施形態では、コネクション情報管理部20において、通信サーバシステム100とクライアント端末300との間でデータの送受信の発生が検出された場合に、データの送受信に使用されたコネクションに対応するコネクション情報を、コネクション情報ハッシュ記憶部26から検出する方法として、データ送受信の対象となったクライアント端末300のアドレスを接続クライアントアドレス情報505(上述の図5参照)として有するコネクション情報を検索することが挙げられているが、当該クライアント端末300と、通信サーバシステム100との間で複数のコネクションが発生していた場合は、クライアント端末300のアドレスだけでは、データの送受信に使用されたコネクションに対応するコネクション情報は特定できない。そこで、1つのクライアント端末300に対して複数のコネクションが発生した場合には、例えば、コネクションごとにTCPにおけるポート番号を異なる値に設定して通信し、コネクション情報管理部20において、通信に用いられたポート番号にもとづいてコネクション情報と対応するコネクションを識別しても良い。その際、コネクション情報管理部20において、コネクション情報の接続クライアントアドレス情報505(上述の図5参照)に、通信に使用するポート番号の情報をさらに記憶することにより、各コネクションに用いられるポート番号を管理しても良い。
(B−8)上記の実施形態では、コネクション情報監視テーブル記憶部25における、各コネクション情報リストは、リスト先頭の要素と、リスト末尾の要素を有しているが、いずれか一方を有する構成としても良い。その際は、コネクション情報管理部20において、コネクション情報リスト内の、コネクション情報のポップ、追加、削除などは、片方の要素からのみ行う。
(B−9)上記の実施形態の、コネクション情報管理部20では、コネクションを使用してデータの送受信が行われたとき、及び新規コネクションが生成されたときに、対応するコネクション情報を、コネクション情報監視テーブル記憶部25内の現在位置のリスト(現在インデックス値に対応するコネクション情報リスト)からコネクション保存時間が考慮された相対位置のコネクション情報リストにリンクを変更しているが、現時点よりも後の時刻に、コネクション情報監視テーブル記憶部25によって、周期コネクション監視処理の対象となるコネクション情報リストに、リンクを変更する構成であれば良く、コネクション情報のリンク先を変更する構成は、上記の実施形態に限定されないものである。例えば、データ送受信に使用されたコネクションに対応するコネクション情報のリンクの変更先は、現在インデックス値に、予め設定されたホップ数を加算したインデックス値が指し示すコネクション情報リストにリンクを変更することが挙げられる。なお、加算した結果が、テーブル内リスト数記憶部23に記憶されたリスト数以上の場合には、上述の(3)式と同様に、加算した結果をリスト数で割った余りを、リンクの変更先のインデックス値としても良い。
(B−10)上記の実施形態では、各コネクション情報をコネクション情報ハッシュ記憶部26に記憶させ、コネクション情報監視テーブル記憶部25のいずれかのコネクション情報リストにリンクさせることにより、コネクション情報リストを形成しているが、各コネクション情報を複数のグループに分け、各コネクション情報が所属するグループを識別できる構成であれば良く、コネクション情報を記憶して管理するための構成は、上記の実施形態に限定されないものである。例えば、グループごとに、コネクション情報自体を記憶する領域を分けて管理する構成などが挙げられる。
コネクション情報管理部の内部構成を示すブロック図である。 この実施形態に関係する各種装置の接続関係などの説明図である。 コネクション管理部の内部構成を示すブロック図である。 コネクション情報監視テーブル記憶部のコネクション情報リストの内容を示した説明図である。 各コネクション情報の各要素の内容について示した説明図である。 各コネクション情報を構成する各要素の詳細について示した説明図である。 新規コネクションが生成される際のコネクション情報管理部におけるコネ動作について説明したフローチャートである。 新規に生成されたコネクション情報が、コネクション情報リストの末尾に追加されている状況を示した説明図である。 通信サーバシステムが、クライアント端末とデータ送受信をした際の、コネクション情報管理部における動作について説明したフローチャートである。 通信サーバシステムが、クライアント端末とデータ送受信をした際にコネクション情報のリンクが変更された状況を示した説明図である。 コネクション情報管理部において、周期コネクション監視処理部が起動された際の動作を説明したフローチャートである。 コネクション情報リストにリンクされていた、コネクション情報が削除された状況を示した説明図である。
符号の説明
20…コネクション情報管理部、21…コネクション保存時間記憶部、22…コネクション監視周期間隔記憶部、23…テーブル内リスト数記憶部、24…テーブル内現在インデックス記憶部、25…コネクション情報監視テーブル記憶部、26…コネクション情報ハッシュ記憶部、26…コネクション情報ハッシュ記憶部、27…周期コネクション監視処理部。

Claims (6)

  1. コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放装置であって、
    上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、
    複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、
    上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段とを有し、
    上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記解放対象コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させる
    ことを特徴とするコネクション強制解放装置。
  2. 上記解放対象コネクション検出手段は、所定の監視間隔時間ごとに繰り返し起動し、上記監視対象リストを、少なくとも現時点の時刻及び上記監視間隔時間に基づいて選択することを特徴とする請求項1に記載のコネクション強制解放装置。
  3. 上記コネクション情報リスト管理手段は、当該通信サーバシステムと、上記クライアント端末との間で新規にコネクションが確立された場合には、新規に確立された上記確立中コネクションに関するコネクション情報を生成し上記解放対象コネクション検出手段により、現時点よりも後の時刻に、上記監視対象リストとして選択される上記コネクション情報リストに、その生成したコネクション情報をリンクして記憶させることを特徴とする請求項1又は2に記載のコネクション強制解放装置。
  4. 上記コネクション情報は、上記コネクション情報リストにおいて、当該コネクション情報の1つ前に配置された上記コネクション情報を識別する情報である前方リンク情報と、上記コネクション情報リストにおいて、当該コネクション情報の1つ後に配置された上記コネクション情報を識別する情報である後方リンク情報と、当該コネクション情報がリンクしている上記コネクション情報リストを識別する情報であるリンク先リスト情報とを有し、
    上記コネクション情報リスト管理手段では、それぞれの上記コネクション情報リストにおける先頭又は末尾の上記コネクション情報を識別する情報である末端リンク情報と、上記前方リンク情報と、上記後方リンク情報と、上記リンク先リスト情報とを管理することにより、上記コネクション情報リストと上記コネクション情報との間のリンクを管理することを特徴とする請求項1〜3のいずれかに記載のコネクション強制解放装置。
  5. コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放方法であって、
    コネクション情報リスト管理手段、解放対象コネクション検出手段、コネクション強制解放手段を有し、
    上記コネクション情報リスト管理手段は、上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理し、
    上記解放対象コネクション検出手段は、複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出し、
    上記コネクション強制解放手段は、上記解放対象コネクションについて、コネクションを強制的に解放し、
    上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記解放対象コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させる
    ことを特徴とするコネクション強制解放方法。
  6. コネクション型プロトコルによりクライアント端末と通信を行う通信サーバシステムと、上記クライアント端末との間で、確立中の確立中コネクションから、解放対象の解放対象コネクションを検出し、強制的に解放するコネクション強制解放プログラムであって、 コンピュータを、
    上記確立中コネクションに関するコネクション情報のうち一部又は全部のリストであるコネクション情報リストを複数形成し、上記各コネクション情報を、複数の上記コネクション情報リストのうちいずれかにリンクして管理するコネクション情報リスト管理手段と、
    複数の上記コネクション情報リストから、監視対象となる監視対象リストを、巡回的に選択し、上記監視対象リストにリンクされた上記コネクション情報に対応する上記確立中コネクションを、上記解放対象コネクションとして検出する解放対象コネクション検出手段と、
    上記解放対象コネクションについて、コネクションを強制的に解放するコネクション強制解放手段として機能させ、
    上記コネクション情報リスト管理手段は、上記確立中コネクションのうち、データの送信又は受信に使用された上記確立中コネクションがあった場合、現時点よりも後の時刻に、上記解放対象コネクション検出手段により、上記監視対象リストとして選択される上記コネクション情報リストに、データの送信又は受信に使用された上記確立中コネクションに対応する上記コネクション情報のリンクを変更させる
    ことを特徴とするコネクション強制解放プログラム。
JP2007130682A 2007-05-16 2007-05-16 コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム Active JP4893464B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007130682A JP4893464B2 (ja) 2007-05-16 2007-05-16 コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007130682A JP4893464B2 (ja) 2007-05-16 2007-05-16 コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム

Publications (2)

Publication Number Publication Date
JP2008288794A JP2008288794A (ja) 2008-11-27
JP4893464B2 true JP4893464B2 (ja) 2012-03-07

Family

ID=40148127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007130682A Active JP4893464B2 (ja) 2007-05-16 2007-05-16 コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム

Country Status (1)

Country Link
JP (1) JP4893464B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6377091B2 (ja) * 2016-02-25 2018-08-22 三菱電機株式会社 分析装置および分析プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000013852A (ja) * 1998-06-22 2000-01-14 Ntt Mobil Communication Network Inc 無線データ通信システム
JP4532708B2 (ja) * 2000-09-11 2010-08-25 株式会社日立製作所 通信ネットワークシステムおよびパス接続制御方法
JP3954296B2 (ja) * 2000-11-14 2007-08-08 株式会社日立製作所 ファイル共有システム
KR100652650B1 (ko) * 2004-07-28 2006-12-06 엘지전자 주식회사 서비스 음영지역에서 동기화를 위한 피티티 서비스 시스템및 방법

Also Published As

Publication number Publication date
JP2008288794A (ja) 2008-11-27

Similar Documents

Publication Publication Date Title
EP3709664B1 (en) Stream pushing method, system and server
EP2079024A1 (en) Proxy server, communication system, communication method, and program
EP2939401B1 (en) Method for guaranteeing service continuity in a telecommunication network and system thereof
JP2008187425A (ja) 中継装置、プログラム及び中継方法
US10402280B2 (en) File transfer system and method, policy server, terminal and storage medium
CN106612284A (zh) 一种流数据的传输方法和装置
EP1762069B1 (en) Method of selecting one server out of a server set
CN106797330B (zh) 用于监测内容递送网络(cdn)的方法、业务监测器(tm)、请求路由器(rr)和系统
US10680930B2 (en) Method and apparatus for communication in virtual network
WO2024074091A1 (zh) 一种sip动态负载均衡方法、系统、设备和存储介质
WO2016154921A1 (zh) 一种数据业务的数据传输方法及装置
CN107786607B (zh) 一种消息重传方法、消息重传服务器及用户设备
JP5229007B2 (ja) 監視システム、ネットワーク機器、監視情報提供方法およびプログラム
US11973824B2 (en) Method for data transmission of audio and video in end-to-end system
CN111064785B (zh) 资源包下载方法、装置和系统
JP4893464B2 (ja) コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム
CN110380981B (zh) 一种流量分发方法及设备
WO2012167659A1 (zh) 受限应用协议中数据通信的方法和装置
CN111901245A (zh) 一种iscsi多路径管理系统、方法、设备及存储介质
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
JP2014146876A (ja) メッセージ配信システムおよびメッセージ配信方法
CN110809064B (zh) 一种ip地址切换方法、装置及系统
KR101670699B1 (ko) 웹 페이지들 간에 통신하기 위한 방법 및 시스템
CN111917868A (zh) 区块链节点的寻址方法、装置、路由设备及存储介质
JP4284349B2 (ja) Sipトランクゲートウェイ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111205

R150 Certificate of patent or registration of utility model

Ref document number: 4893464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3