(57)【要約】【課題】セッション接続毎の優先度に応じた接続制御を行う。【解決手段】複数のクライアント４のそれぞれに複数のポートＰ１〜Ｐｎの１つ又は複数が割り当てられ、各クライアント４は、自身に割り当てられたポートＰ１〜Ｐｎを介してサーバ３とセッション接続を行うことが可能なサーバクライアントシステム１において、各クライアント４に割り当てられたポートＰ１〜Ｐｎ毎に各クライアント４の優先度を設定する。クライアント４からサーバ３に、ポートの指定を伴う新たなセッション接続の開始要求が発行されると、クライアント４と要求されたポートＰ１〜Ｐｎの組み合わせから優先度が判別され、より高い優先度のセッション接続を、より低い優先度のセッション接続よりも優先する。【選択図】図１
2015200964.tif 000002
【特許請求の範囲】
【請求項１】
サーバと複数のクライアントとが、前記サーバの複数のポートを介してセッション接続を行うサーバクライアントシステムにおける接続制御方法であって、
各前記クライアントには、前記ポートの１つ又は複数が割り当てられており、
前記クライアントと前記ポートの組み合わせ毎に、セッション接続の優先度が設定されており、
前記クライアントの何れかから前記サーバに、前記ポートのいずれかの指定を伴う新たなセッション接続の開始要求が発行されたときに、前記サーバは、要求元のクライアントと指定されたポートとの組み合わせから、新たに要求されたセッション接続の優先度を判別し、判別した優先度に基づいて、前記開始要求に対応するセッション接続を制御する、
接続制御方法。
【請求項２】
前記サーバは、新たに開始要求がなされたセッション接続を接続するに際し、より高い優先度が規定されたセッション接続を、より低い優先度が規定されたセッション接続よりも優先して維持する、請求項１に記載の接続制御方法。
【請求項３】
前記ポートのそれぞれについて、同時にセッション接続することが可能なクライアントの最大数が設定されており、
前記サーバは、いずれかのクライアントから、前記最大数と同数の他のクライアントがセッション接続中の前記ポートを介するセッション接続の開始要求がなされた場合、当該開始要求を行ったクライアントの当該ポートについて規定された優先度が、接続中の他のクライアントの当該ポートについて規定された優先度のいずれかよりも高いことを条件に、当該開始要求を行ったクライアントとの当該ポートを介するセッション接続を開始するとともに、最低の優先度のクライアントとの当該ポートを介するセッション接続を切断する、請求項１又は２に記載の接続制御方法。
【請求項４】
前記サーバは、接続中の各セッション接続についてヘルスチェックを実行し、通信異常が検出されたセッション接続を切断する、請求項１から３の何れか１項に記載の接続制御方法。
【請求項５】
複数のポートを介して複数のクライアントとセッション接続を行うサーバであって、
前記クライアントと前記ポートの組み合わせ毎に、セッション接続の優先度を規定するクライアント管理部と、
前記複数のクライアントの何れかから、前記ポートの何れかの指定を伴う新たなセッション接続の開始要求を受信した際に、そのクライアントと指定されたポートの組み合わせから、新たに要求されたセッション接続の優先度を前記クライアント管理部から判別し、判別した優先度に基づいて、受信した開始要求に対応するセッション接続を制御する接続制御部と、
を備えるサーバ。
【請求項６】
他装置と複数のポートを介してセッション接続可能なコンピュータにセッション接続制御を実行させるプログラムであって、
前記プログラムは、コンピュータに、
クライアントから該コンピュータに、ポートの指定を伴う新たなセッション接続の開始要求を受信した際に、指定されたポートから、セッション接続の優先度を判別する処理、および、
判別した優先度に基づいて、受信した開始要求に対応するセッション接続を制御する処理、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバと複数のクライアントがセッション接続を行うサーバクライアントシステムにおける接続制御方法、サーバ、及びプログラムに関する。
【背景技術】
【０００２】
サーバクライアントシステムは、複数のクライアントがサーバと通信を行うシステムであり、サーバは、各クライアントから受信する要求に応じた処理を実行する。サーバの処理能力には限界があるため、サーバに同時に接続できるクライアント数を制限する必要がある。
【０００３】
特許文献１は、接続可能な最大数のクライアントが既にサーバに接続している状態で、さらに新たなクライアントからサーバに対して接続要求がなされた場合の接続制御方法を開示している。この接続制御方法は、サーバが各クライアントの優先度を規定した優先度テーブルを有しており、新たに接続要求を行ったクライアントが既に接続中のクライアントのいずれかよりも高い優先度を有する場合には、最低の優先度を有するクライアントとの接続を切断し、新たなクライアントの接続要求を受け付ける。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−０１６０３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーバクライアントシステムにおけるサーバは、複数のポートを介してクライアントとの通信を行っており、１つのクライアントとの通信であっても、クライアントから要求される処理内容等に応じて異なるポートを介してセッション接続が行われる。そして、１つのクライアントとの通信であっても、セッション接続毎に接続確保の重要性が相違することは通常である。
【０００６】
ところが、特許文献１では、クライアント単位で優先度が設定されており、セッション接続毎（使用されるポート毎）に優先度を設定することはできない。したがって、複数のセッション接続を行うクライアントに関して、重要度の高いセッション接続の優先度を上げるためには、そのクライアント自体の優先度を上げる必要がある。そのため、そのクライアントの重要度の低いセッション接続も優先度が高くなってしまい、他のクライアントからのセッション接続が制限されてしまう。
【０００７】
本発明は上記のような問題点を解決するためになされたものであり、同一のクライアントであっても、セッション接続毎の優先度に応じた接続制御を行うことにより、サーバの処理能力の有効利用を図ることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の接続制御方法は、サーバと複数のクライアントとが、サーバの複数のポートを介してセッション接続を行うサーバクライアントシステムにおける接続制御方法である。この接続制御方法では、各クライアントには、ポートの１つ又は複数が割り当てられており、クライアントとポートの組み合わせ毎に、セッション接続の優先度が設定されている。クライアントの何れかからサーバに、ポートのいずれかの指定を伴う新たなセッション接続の開始要求が発行されたとき、サーバは、要求元のクライアントと指定されたポートとの組み合わせから、新たに要求されたセッション接続の優先度を判別し、判別した優先度に基づいて、開始要求に対応するセッション接続を制御する。
【発明の効果】
【０００９】
本発明では、クライアントとポートの組み合わせ毎にセッション接続の優先度を設定するので、同一のクライアントであっても、セッション接続毎の優先度に応じた接続制御を行うことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係るサーバクライアントシステムを示す説明図である。
【図２】サーバが有する機能構成を示す説明図である。
【図３】図２に示す設定ファイルに記憶される設定情報の一例を示す説明図である。
【図４】図２に示すクライアント管理ファイルに記憶される情報の一例を示す説明図である。
【図５】図２に示すセッション管理テーブルに記憶される情報の一例を示す説明図である。
【図６】図２に示す接続数管理テーブルに記憶される情報の一例を示す説明図である。
【図７】サーバのハードウエア構成を示すブロック図である。
【図８】図１に示すクライアントに格納される、セッション接続制御用の情報の一例を示す説明図である。
【図９】サーバが実行する接続制御処理のフローチャートである。
【図１０】サーバが実行するヘルスチェック処理のフローチャートである。
【発明を実施するための形態】
【００１１】
本発明の実施の形態に係るサーバクライアントシステム、サーバクライアントシステムにおける接続制御方法、サーバ、及びプログラムについて、図面を参照しつつ説明する。
【００１２】
本実施の形態に係るサーバクライアントシステム１は、図１に示すように、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク２に接続されたサーバ３と複数のクライアント４とを有する。サーバ３及び各クライアント４は、コンピュータ等の情報処理装置である。
【００１３】
サーバ３は、各クライアント４との通信を行うための複数のポートＰ１〜Ｐｎを有している。各クライアント４には、ポートＰ１〜Ｐｎのうちの１つ又は複数が割り当てられており、各クライアント４は、自身に割り当てられたポートＰ１〜Ｐｎを介してサーバ３と通信する。
【００１４】
サーバ３は、図２に示すように、クライアント４との接続に関して、機能的に、セッション接続の設定情報を格納するファイルを記憶するファイル格納部１０と、接続中のセッションの状態を示すセッション情報を記憶するセッション情報格納部２０とを備える。
【００１５】
ファイル格納部１０には、設定ファイル１１及びクライアント管理ファイル１２が格納されている。
【００１６】
設定ファイル１１は、セッション接続に関する設定情報を格納するファイルであり、通信状態をチェックするヘルスチェックのタイムアウト時間（詳細は後述）及び各ポートＰ１〜Ｐｎについて同時にセッション接続をすることが可能なクライアント４の最大数Ｃｍａｘを格納する。
【００１７】
図３に、設定ファイル１１に記憶される情報の一例を示す。この例では、ヘルスチェックのタイムアウト時間は６０秒に設定されている。また、図中のポート番号は、各ポートＰ１〜Ｐｎを一意に識別するための情報である。「ｐｏｒｔ＿１」〜「ｐｏｒｔ＿ｎ」は、ポートＰ１〜Ｐｎに対応し、例えば、ポートＰ１には、同時にセッション接続をすることが可能なクライアント４の最大数Ｃｍａｘとして４０が設定されている。
【００１８】
図２に示すクライアント管理ファイル１２は、接続制御部４０と共にクライアント管理部として機能するものであり、各クライアント４について、そのクライアント４に割り当てられたポートＰ１〜Ｐｎと、ポート毎の優先度を示すクライアント管理情報を格納する。従って、クライアント管理ファイル１２は、クライアント４とポートの組み合わせ毎に、セッション接続の優先度を設定する優先度設定部として機能する。
【００１９】
図４に、クライアント管理ファイル１２に記憶されるクライアント管理情報の一例を示す。図中のＩＰアドレスは、各クライアント４を一意に識別するための情報である。
【００２０】
図示のように、クライアント管理ファイル１２では、各クライアント４に対して１つ又は複数のポートＰ１〜Ｐｎ（ポート番号）が割り当てられている。例えば、ＩＰアドレス「１９２．１６８．１．１．」のクライアント４には、２つのポート（ポート番号：「ｐｏｒｔ＿１」及び「ｐｏｒｔ＿３」）が割り当てられており、ＩＰアドレス「１９２．１６８．１．２．」のクライアント４には、３つのポート（ポート番号：「ｐｏｒｔ＿１」、「ｐｏｒｔ＿２」及び「ｐｏｒｔ＿４」）が割り当てられている。
【００２１】
優先度は、セッション接続が優先される度合を示す。優先度の数値が大きいセッション接続ほど、他のセッション接続に対して優先して接続及び維持される。
【００２２】
従って、例えば、ＩＰアドレス「１９２．１６８．１．１．」のクライアント４が、「ｐｏｒｔ＿１」を介したセッション接続の開始を要求して来た際には、その組み合わせにより、その開始要求は優先度１（最低優先度）で処理され、同クライアント４が、「ｐｏｒｔ＿３」を介したセッション接続の開始を要求して来た際には、その組み合わせにより、その開始要求は優先度３（第２優先度）で処理されることを示している。従って、同一のクライアントであっても、ポート毎に優先度が異なり、セッション接続毎に優先度が異なることとなる。
【００２３】
図２に示すセッション情報格納部２０には、セッション管理テーブル２１及び接続数管理テーブル２２が記憶されている。
【００２４】
セッション管理テーブル２１には、接続中のすべてのセッション接続について、接続先のクライアント４のＩＰアドレス、ポート番号及び優先度を示すレコードが記憶される。
【００２５】
図５にセッション管理テーブル２１に記憶されるセッション管理情報の一例を示す。この例では、例えば、ＩＰアドレス「１９２．１６８．１．１．」のクライアント４が、「ｐｏｒｔ＿１」と「ｐｏｒｔ＿３」とを介してサーバ３との間でセッション接続を行っており、優先度は「１」と「３」である。
【００２６】
セッション管理テーブル２１は、新たにセッション接続が開始される毎に、及び、接続中のセッション接続が切断される毎に更新される。新たなセッション接続が開始された場合には、当該新たなセッション接続に対応するクライアント管理ファイル１２中のレコード（ＩＰアドレス、ポート番号及び優先度）がセッション管理テーブル２１に追記され、接続中のセッションが切断された場合には、切断されたセッション接続に対応するレコードがセッション管理テーブル２１から削除される。
【００２７】
図２に示す接続数管理テーブル２２には、ポート番号毎の接続中のクライアント数が記憶されている。図６に接続数管理テーブル２２に記憶される情報の一例を示す。この例では、ポート番号「ｐｏｒｔ＿１」のポートには３０台のクライアント４が接続されている。接続数管理テーブル２２も、新たにセッション接続が開始される毎に、及び、接続中のセッション接続が切断される毎に更新される。
【００２８】
図２に示すように、サーバ３は、ファイル格納部１０とセッション情報格納部２０とに加えて、セッション接続を介してデータを送受信するデータ送受信部３０と、セッション接続を制御する接続制御部４０とセッション接続の状態をチェックするヘルスチェック部５０とを備える。
【００２９】
データ送受信部３０は、セッション管理テーブル２１に記憶される各レコードに対応するセッション接続（各レコードに規定されるクライアント４との間でのそのレコードに規定されるポートＰ１〜Ｐｎを介する通信）を介したデータ送受信を実行する。セッション接続により送受信されるデータには、各クライアント４からの処理要求及びそれに対するレスポンス、回線異常等を検知するためのヘルスチェック及びそのレスポンスが含まれる。データ送受信部３０は、セッション管理テーブル２１から消去されたレコードに対応するセッション接続は実行しない。
【００３０】
接続制御部４０は、各クライアント４からサーバ３に対する接続要求があった場合に、後述の接続制御処理を実行する。
【００３１】
ヘルスチェック部５０は、タイマを備え、データ送受信部３０を介して、各クライアント４にヘルスチェック要求を送信し、そのレスポンスの待ち受け時間を計測する。ヘルスチェック部５０は、設定ファイル１１に設定されているヘルスチェック時間内にレスポンスを受信できないときには、そのセッション接続が異常状態にあると判別し、接続制御部を介して、そのセッション接続を切断する。
【００３２】
サーバ３は、物理的には、図７に示すように、全体を制御する制御部３１、データを記憶する記憶装置３２、データ及び指示を入力する入力部３３、情報を表示する表示部３４、クライアント４とネットワーク２を介して通信を行う通信部３５から構成される。
【００３３】
制御部３１は、制御プログラムを実行するＣＰＵ（Central Processing Unit）３１１、基本プログラムを記憶するＲＯＭ（Read Only Memory）３１２、種々のデータを記憶するＲＡＭ（Random Access Memory）３１３を備える。
【００３４】
ＣＰＵ３１１は、必要に応じてＲＯＭ３１２、ＲＡＭ３１３および記憶装置３２が記憶するプログラムを読み出し、読み出したプログラムを実行する。またＣＰＵ３１１は、プログラムの実行上の必要に応じてＲＡＭ３１３、記憶装置３２にデータを保存する。
【００３５】
ＲＯＭ３１２は、ＣＰＵ３１１が実行する基本プログラム等を記憶する。
ＲＡＭ３１３は、ＣＰＵ３１１がプログラムを実行する際にワークエリアとして機能し、例えば、セッション情報格納部２０として機能する。
【００３６】
制御部３１は、上述のＣＰＵ３１１、ＲＯＭ３１２、ＲＡＭ３１３が共同して動作することにより、全体として、サーバ３全体の動作を制御する機能を提供する。それにより、制御部３１は、前述したデータ送受信部３０、接続制御部４０、ヘルスチェック部５０等として機能する。
【００３７】
記憶装置３２は、ハードディスクドライブやフラッシュメモリ等の不揮発性の記憶装置を備え、サーバ３が動作するために必要なデータを記憶する。記憶装置３２は、例えば、ＣＰＵ３１１が実行するプログラムやＣＰＵ３１１がプログラムを実行する上で参照するデータを記録し、ＣＰＵ３１１からの要求に応じてＣＰＵ３１１に提供する。また、記憶装置３２は、ファイル格納部１０として機能し、設定ファイル１１とクライアント管理ファイル１２を記憶する。
【００３８】
入力部３３は、キーボードやマウス等を備え、操作者による入力操作を受け付けて制御部３１に伝達する。
【００３９】
表示部３４は、液晶ディスプレイ等を備え、制御部３１による制御に基づいて、操作者に対し示すべき情報を表示する。
【００４０】
通信部３５は、ネットワーク２を介してクライアント４に接続され、クライアント４との間でセッションを確立し、通信を行う。通信部３５は、ポートＰ１〜Ｐｎを備える。通信部３５は、制御部３１と協働して、データ送受信部３０，接続制御部４０，ヘルスチェック部５０として機能する。
【００４１】
図１に示す各クライアント４は、コンピュータ装置であり、その基本構成は、図７に示すサーバ３の構成とほぼ同一である。
【００４２】
各クライアント４には、アプリケーション及びその処理の内容に応じて、サーバ３とのセッション接続に使用するポートが定められている。さらに、図４に例示したように、クライアント管理ファイル１２によりクライアント４と接続に使用するポートの組み合わせ毎に優先度が割り当てられている。従って、各クライアント４のアプリケーション及びその処理の内容に応じて、サーバ３とのセッション接続に使用するポートと優先度が定められていることになる。
【００４３】
クライアント４の接続要求のポート及び優先度の割り当ての例を図８に示す。この例は、ＩＰアドレス「１９２．１６８．１．２．」が割り当てられているクライアント４の例である。このクライアント４は、図８に示すように、アプリケーションＡの処理１には「ｐｏｒｔ＿４」が割り当てられており、ＩＰアドレスが「１９２．１６８．１．２．」のクライアント４と「ｐｏｒｔ_４」の組み合わせには、クライアント管理ファイル１２により、優先度４（最上位）が割り当てられている。
同様に、アプリケーションＡの処理２には「ｐｏｒｔ＿２」と優先度１（最下位）が割り当てられ、アプリケーションＡのその他の処理には「ｐｏｒｔ＿１」と優先度２が割り当てられている。また、アプリケーションＢには、処理内容に関わらず「ｐｏｒｔ＿２」と優先度３が、また、アプリケーションＣには、処理内容に関わらず「ｐｏｒｔ＿４」と優先度４が割り当てられている。
【００４４】
従って、このクライアント４は、アプリケーションＡの処理１を実行するときと、アプリケーションＣを実行するときには、サーバ３のボート番号「ｐｏｒｔ＿４」を有するポートＰ４への接続を要求する。また、このクライアント４は、アプリケーションＡの処理２を実行するときには、サーバ３のボート番号「ｐｏｒｔ＿２」を有するポートＰ２への接続を要求する。また、このクライアント４は、アプリケーションＡのその他の処理を実行するときとには、サーバ３のボート番号「ｐｏｒｔ＿１」を有するポートＰ１への接続を要求する。
【００４５】
図８に示すテーブルは、例えば、クライアント４の主メモリに格納され、プロセッサが何らかの処理を実行する際或いはサーバに接続する際に参照して、セッション接続を要求する際に、接続を要求するポートを指定する。
【００４６】
次に、上記構成を有するサーバクライアントシステム１の動作を、本実施の形態に特徴的な、セッション接続関連の動作を中心に説明する。
【００４７】
クライアント４は、セッションの確立を要求する場合、実行中のアプリケーション及び処理の内容に応じて、要求するセッション接続の優先度を特定し、その優先度が割り当てられているポートを特定する。クライアント４は、自身のＩＰアドレスＤ１及び接続を行うポートＰ１〜Ｐｎのポート番号Ｄ２を示す情報を含むセッション確立要求をサーバ３に送信する。
【００４８】
サーバ３では、セッション接続の開始要求を接続制御部４０が受信する。
すると、接続制御部４０は、図９に示す接続制御処理を開始し、受信した情報からＩＰアドレスＤ１及びポート番号Ｄ２を特定する（ステップＳ１０１）。
【００４９】
続いて、接続制御部４０は、セッション管理テーブル２１のレコードから、ステップＳ１０１で特定したＩＰアドレスＤ１及びポート番号Ｄ２の組み合わせを規定したレコードを検索し（ステップＳ１０２）、当該検索により該当するレコードが発見されたかどうかを判断する（ステップＳ１０３）。
【００５０】
ステップＳ１０２で該当するレコードが発見されていた場合（ステップＳ１０３；Ｙｅｓ）、当該ＩＰアドレスＤ１のポート番号Ｄ２を介するセッションは既に接続中であるため、そのまま処理を終了する。
【００５１】
ステップＳ１０２で該当するレコードが発見されなかった場合（ステップＳ１０３：Ｎｏ）、接続制御部４０は、クライアント管理ファイル１２のレコードから、ステップＳ１０１で特定したＩＰアドレスＤ１及びポート番号Ｄ２の組み合わせを規定したレコードを検索し（ステップＳ１０４）、当該検索により該当するレコードが発見されたかどうかを判断する（ステップＳ１０５）。
【００５２】
ステップＳ１０４で該当するレコード発見されなかった場合（ステップＳ１０５；Ｎｏ）、ステップＳ１０１で特定したＩＰアドレスＤ１及びポート番号Ｄ２はセッション接続を許可する対象ではないため、セッション接続を許可することなく処理を終了する。
【００５３】
ステップＳ１０４で該当するレコードが発見されていた場合（ステップＳ１０５；Ｙｅｓ）、接続制御部４０は、設定ファイル１１及び接続数管理テーブル２２から、ポート番号Ｄ１についての最大数Ｃｍａｘ及びクライアント数Ｃｎｕｍを抽出し（ステップＳ１０６）、Ｃｎｕｍ＜Ｃｍａｘであるか否かを判断する（ステップＳ１０７）。
【００５４】
ステップＳ１０７の判断がＹｅｓである場合、接続する余裕があるので、接続制御部４０は、接続数管理テーブル２２におけるポート番号Ｄ２のクライアント数Ｃｎｕｍに「１」を加算し（ステップＳ１０８）、続いて、ステップＳ１０４で発見されたレコードをセッション管理テーブル２１に追記する（ステップＳ１０９）。これにより、データ送受信部３０は、ＩＰアドレスＤ１のクライアント４に対するポート番号Ｄ２のポートＰ１〜Ｐｎを介するセッション接続を開始する。
【００５５】
ステップＳ１０７の判断がＮｏである場合、接続制御部４０は、セッション管理テーブル２１におけるポート番号Ｄ２のすべてのレコードから、最も低い優先度が規定されたレコードを抽出する（ステップＳ１１０）。
【００５６】
なお、ステップＳ１１０で最も低い優先度が規定されたレコードが複数存在する場合には、その中から何らかの方法で選択されるいずれかのレコードが抽出される。選択の方法は任意である。例えば、セッション管理テーブル２１に各レコードが追記された時刻を記録しておき、最も低い優先度が規定されたレコードのうち、最も早い時刻に追記されたレコードを選択することが考えられる。
【００５７】
続くステップＳ１１１では、ステップＳ１０２で発見されたレコードに規定される優先度ＰＲ１とステップＳ１１０で抽出したレコードに規定される優先度ＰＲ２を比較し、ＰＲ１＞ＰＲ２であるか否かが判断される。
【００５８】
そして、ステップＳ１１１の判断がＮｏの場合、今回受信したセッション接続開始要求を許可することなく処理を終了する。
【００５９】
ステップＳ１１１の判断がＹｅｓの場合、ステップＳ１１０で抽出されたレコードがセッション管理テーブル２１から削除される（ステップＳ１１２）。これにより、当該レコードに規定されていたＩＰアドレス及びポート番号に係るセッション接続は切断される。
【００６０】
ステップＳ１１２の後、上述のステップＳ１０９が実行される。これにより、データ送受信部３０は、ＩＰアドレスＤ１のクライアント４に対するポート番号Ｄ２のポートＰ１〜Ｐｎを介するセッション接続を開始する。
【００６１】
ステップＳ１０９の実行により、接続制御処理は終了となる。
【００６２】
以上述べた接続制御処理が実行されることにより、セッション毎（各クライアント４の各ポートＰ１〜Ｐｎ毎）に優先度が判別され、判別された優先度に基づいて、新たな開始要求に対応するセッション接続が制御（接続可又は拒否）される。さらに、優先度の高いセッション接続が優先度の低いセッション接続に優先して維持される。
【００６３】
サーバ３のヘルスチェック部５０は、接続中の各セッション接続について、逐次、例えば、周期的に或いはランダムに、その接続状態をチェックする。
【００６４】
ヘルスチェック部５０は、図１０に示すヘルスチェック処理を開始すると、まず、セッション管理テーブル２１からヘルスチェックの対象のレコードを選択する（ステップＳ２０１）。ステップＳ２０１の実行タイミング及びレコードの選択方法は任意である。例えば、接続中のいずれかのセッション接続においてクライアント４からデータを受信した時点で、そのセッション接続に対応するレコードを選択することが可能である。
【００６５】
続いて、ステップＳ２０１で選択されたレコードからＩＰアドレスＤ３及びポート番号Ｄ４を特定する（ステップＳ２０２）。
【００６６】
続いて、ヘルスチェック部５０が内蔵するタイマをリセットし（ステップＳ２０３）、ステップＳ２０４では、データ送受信部３０から、ＩＰアドレスＤ３のクライアント４に対してポート番号Ｄ４のポートＰ１〜Ｐｎを介してヘルスチェックを送信する（ステップＳ２０４）。
【００６７】
その後、ステップＳ２０５において、設定ファイル１１に規定されたヘルスチェック時間に渡ってＩＰアドレスＤ３からのポート番号Ｄ４を介するヘルスチェックのレスポンスを待ち受ける。
【００６８】
そして、ステップＳ２０５においてレスポンスを受信したか否かを判断し（ステップＳ２０６）、受信していた場合（ステップＳ２０６；Ｙｅｓ）は、セッション接続は正常であると判断されるため、ヘルスチェック処理を終了する。
【００６９】
一方、ステップＳ２０５においてレスポンスが受信できなかった場合（ステップＳ２０６；Ｎｏ）は、通信回線異常と判断されるため、接続数管理テーブル２２におけるポート番号Ｄ４のクライアント数Ｃｎｕｍから「１」が減算され（ステップＳ２０７）、さらに、ステップＳ２０１で選択されたレコードがセッション管理テーブル２１から削除される（ステップＳ２０８）、これにより、ステップＳ２０１で選択されたレコードに対応するセッション接続は切断される。
【００７０】
以上のヘルスチェック処理を実行することにより、回線異常のセッションの接続を維持することによる他のセッション接続の制限が回避される。
【００７１】
以上説明したように、本実施の形態に係るサーバクライアントシステム１によれば、クライアント４とそのクライアント４が接続を要求してきたポートに応じて優先度を割り当てる。従って、セッション接続毎の重要度に応じた接続制御が可能となり、クライアント４単位で優先度を設定する場合に比較して、よりきめ細やかな制御が可能となる。さらに、本実施の形態では、クライアント４のアプリケーション毎、さらには、処理毎に優先度を設定可能としたので、よりきめの細かい接続制御が可能となる。
【００７２】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能である。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で様々な変形を行うことが可能である。
【００７３】
例えば、図９に示す接続制御処理によりセッション管理テーブル２１に新たなレコードが追記される毎に、当該追記されるレコードを対象として図１０に示すヘルスチェック処理を追加的に実行することが可能である。追加的なヘルスチェック処理は、例えば、図９に示すフローチャートのステップＳ１１１とＳ１１２の間のタイミングで実行することが可能である。この場合、追加的なヘルスチェック処理で通信異常と判断された場合には、ステップＳ１１２以降の処理を実行せず、そのまま処理を終了させることにより、通信異常のセッション接続のために他のセッション接続が切断されること（ステップＳ１１２）を回避できる。追加的なヘルスチェック処理は、ステップＳ１０９の後のタイミングで行うことも可能である。
【００７４】
上記実施の形態では、クライアント４とポートとの組み合わせにより、セッション接続の優先度を設定したが、ポートのみで優先度を設定することも可能である。
【００７５】
例えば、ポートＰ１を介したセッション接続は、全て、優先度３というように設定してもよい。この場合、例えば、ポートＰ１がフルの場合には、例えば、より下位の優先度が割り当てられているポートにその接続を転送するようにしてもよい。
【００７６】
上記実施の形態においては、図９のステップＳ１０７において、Ｃmax＝Ｃnum（ステップＳ１０７；Ｎｏ）と判別された際に、最低優先度のレコードを抽出し、あらたに要求された接続よりも優先度の低いセッション接続を切断して、新たな要求に係るセッション接続を成立させた。これに限定されず、他の手法を採用してもよい。例えば、他の空きのあるポートを検出してそこに接続するように、クライアント４に指示する等してもよい。
【００７７】
上記実施の形態においては、セッション制御のために、設定ファイル１１、クライアント管理ファイル１２、セッション管理テーブル２１、接続数管理テーブル２２を使用したが、ファイル及びテーブルの構成は任意である。また、ファイルやテーブルを使用せず、プログラム自体でこれらの制御を行うようにすることも可能である。
【００７８】
図８の例では、アプリケーション毎及び処理毎に、サーバ３の接続先のポート番号と優先度を設定する例を示したが、クライアント４は、接続先のポート番号を把握していれば、その優先度を把握している必要はない。ただし、優先度を把握している場合には、どのアプリケーション或いは処理を優先させて、サーバ３とデータ通信を行うかを優先度に基づいて判定し、処理することが可能である。この場合、例えば、同一優先度の処理が複数実行されている場合に、緊急性ありと判断し、後から実行された処理を優先して処理することも可能である。
【００７９】
また、図８の例では、アプリケーション毎及び処理毎にセッション接続で使用するポートと優先度とを設定する例を示したが、この手法に限定されず、セッション接続毎に優先度を設定できるならば、その割り当て手法は任意である。
【符号の説明】
【００８０】
１  サーバクライアントシステム、２  ネットワーク、３  サーバ、４  クライアント、１０  ファイル格納部、１１  設定ファイル、１２  クライアント管理ファイル、２０  セッション情報格納部、２１  セッション管理テーブル、２２  接続数管理テーブル、３０  データ送受信部、３１  制御部、３２  記憶装置、３３  入力部、３４  表示部、３５  通信部、４０  接続制御部、５０  ヘルスチェック部、３１１  ＣＰＵ、３１２  ＲＯＭ、３１３  ＲＡＭ。
【図１】
2015200964.tif 000003
【図２】
2015200964.tif 000004
【図３】
2015200964.tif 000005
【図４】
2015200964.tif 000006
【図５】
2015200964.tif 000007
【図６】
2015200964.tif 000008
【図７】
2015200964.tif 000009
【図８】
2015200964.tif 000010
【図９】
2015200964.tif 000011
【図１０】
2015200964.tif 000012