(57)【要約】【課題】一実施形態は、プロキシによる通信切断を抑制する。【解決手段】一実施形態に係る通信システムは、サーバと、プロキシサーバと、プロキシサーバを介してサーバと通信接続する端末と、を含む。端末は、サーバとの通信接続において無通信の状態が送信閾値以上の時間継続すると、ハートビートをサーバに送信する送信部と、通信接続の切断を検出した場合、プロキシサーバとの間で最後に電文を送信または受信してから切断を検出するまでの経過時間を特定する特定部と、経過時間に基づいて、送信閾値を再設定する設定部と、を含む。【選択図】図９
2020123814.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、
プロキシサーバと、
前記プロキシサーバを介して前記サーバと通信接続する端末と、
を含む通信システムであって、
前記端末は、
前記サーバとの前記通信接続において無通信の状態が送信閾値以上の時間継続すると、ハートビートを前記サーバに送信する送信部と、
前記通信接続の切断を検出した場合、前記プロキシサーバとの間で最後に電文を送信または受信してから前記切断を検出するまでの経過時間を特定する特定部と、
前記経過時間に基づいて、前記送信閾値を再設定する設定部と、
を含む、
ことを特徴とする通信システム。
【請求項２】
前記設定部は、前記特定部が前記通信接続の複数回の切断において前記経過時間を特定することで得られる複数の経過時間を集計した結果、複数の時間帯のうちで、前記通信接続の切断の回数が所定回数に達した時間帯があれば、前記所定回数に達した時間帯の最短時間よりも短い時間に前記送信閾値を再設定する、
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記端末の前記送信部は、前記設定部が前記送信閾値を再設定した場合、再設定された送信閾値を前記サーバに送信し、
前記サーバは、前記再設定された送信閾値を前記端末から前記プロキシサーバを介して受信すると、前記プロキシサーバを識別する情報と対応づけて前記再設定された送信閾値を記憶部に保存する保存部を更に含む、
請求項１または２に記載の通信システム。
【請求項４】
前記サーバは、前記記憶部に保存されている前記再設定された送信閾値を前記端末に通知する通知部を更に含み、
前記端末の前記送信部は、前記サーバから前記再設定された送信閾値の通知を受けた場合、前記サーバとの前記通信接続において無通信の状態が前記再設定された送信閾値以上の時間継続すると前記ハートビートを前記サーバに送信する、
ことを特徴とする、請求項３に記載の通信システム。
【請求項５】
前記通信システムは、前記プロキシサーバを介して前記サーバと通信接続する第２の端末を更に含み、
前記通知部は、更に、前記記憶部に保存されている前記再設定された送信閾値を前記第２の端末に通知し、
前記第２の端末は、前記サーバから前記再設定された送信閾値の通知を受けた場合、前記サーバとの前記通信接続において無通信の状態が前記再設定された送信閾値以上の時間継続すると前記ハートビートを前記サーバに送信する、
ことを特徴とする、請求項４に記載の通信システム。
【請求項６】
サーバとのプロキシサーバを介した通信接続において無通信の状態が送信閾値以上の時間継続すると、ハートビートを前記サーバに送信し、
前記通信接続の切断を検出した場合、前記プロキシサーバとの間で最後に電文を送信または受信してから前記切断を検出するまでの経過時間を特定し、
前記経過時間に基づいて、前記送信閾値を再設定する、
ことを含む、端末が実行する通信方法。
【請求項７】
サーバとのプロキシサーバを介した通信接続において無通信の状態が送信閾値以上の時間継続すると、ハートビートを前記サーバに送信する送信部と、
前記通信接続の切断を検出した場合、前記プロキシサーバとの間で最後に電文を送信または受信してから前記切断を検出するまでの経過時間を特定する特定部と、
前記経過時間に基づいて、前記送信閾値を再設定する設定部と、
を含む、端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信方法、および端末に関する。
【背景技術】
【０００２】
例えば、旅行および航空業界において、旅行に関連する予約を補助する通信システムが利用されている。例えば、航空券の予約および発券を行うためのＣＲＳ（Computer Reservation System）と呼ばれる通信システムが知られている。また、航空券の予約および発券以外にも、あらゆる旅行のネットワーク（例えば、ホテル、レンタカー、クルーズ、列車）を予約販売するためのＧＤＳ（Global Distribution System）と呼ばれる旅行関連の通信システムも知られている。こうした通信システムでは、例えば、予約サービスを提供するサーバに端末を接続して、端末が各種の情報をサーバに送信することで、旅行の手配が行われる。
【０００３】
また、内部のネットワークとインターネットとの境界で動作し、両者間のアクセスを代理して行うプロキシサーバが知られている。プロキシサーバを利用することで、通信内容をチェックしたり、不正アクセスや侵入行為を防いだりすることが容易になり、セキュリティを向上させることができる。
【０００４】
また、通信相手の装置との間で確立した通信接続の維持に関連する技術が知られている（例えば、特許文献１から特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−０６３４２５号公報
【特許文献２】特開２０１６−１２２９２６号公報
【特許文献３】特開２０１４−１７５７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、上述の予約を補助する通信システムでは端末とサーバとの間の通信は、ＨＴＴＰＳ（Hypertext Transfer Protocol Secure）プロトコルに準じて行われているが、データの送受信の連続性を高めるために端末は応答を受信しても通信を切断せず常時接続を維持するように動作する。しかしながら、端末がプロキシサーバを介してサーバに接続している場合、プロキシサーバにおいて通信のタイムアウトが発生し、プロキシサーバと端末およびサーバとの間の通信接続が切断されてしまうことがある。
【０００７】
１つの側面では、本発明は、プロキシサーバによる通信切断を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一つの態様の通信システムは、サーバと、プロキシサーバと、プロキシサーバを介してサーバと通信接続する端末と、を含む。端末は、サーバとの通信接続において無通信の状態が送信閾値以上の時間継続すると、ハートビートをサーバに送信する送信部と、通信接続の切断を検出した場合、プロキシサーバとの間で最後に電文を送信または受信してから切断を検出するまでの経過時間を特定する特定部と、経過時間に基づいて、送信閾値を再設定する設定部と、を含む。
【０００９】
一つの態様によれば、端末がプロキシサーバを介してサーバに接続した際のプロキシサーバによる通信切断を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】例示的な通信システムの構成を示す図である。
【図２】端末のハートビートの送信閾値およびプロキシサーバの切断閾値と通信の継続性との関係を例示する図である。
【図３】タイムアウトの発生によりユーザの作業に生じ得る支障について説明する図である。
【図４】実施形態に係るサーバのブロック構成を例示する図である。
【図５】実施形態に係る端末のブロック構成を例示する図である。
【図６】実施形態に係る端末の記憶部に記憶されている情報を例示する図である。
【図７】実施形態に係る端末が実行するハートビートの送信処理の動作フローを例示する図である。
【図８】実施形態に係るサーバが実行するハートビートの応答処理の動作フローを例示する図である。
【図９】実施形態に係る端末が実行する送信閾値の再設定処理の動作フローを例示する図である。
【図１０】実施形態に係る切断回数情報を例示する図である。
【図１１】例示的な切断回数情報の集計結果をグラフで示す図である。
【図１２】第２の実施形態に係る端末の記憶部に記憶されている情報を例示する図である。
【図１３】端末とサーバとの間で送受信される電文の例示的なフォーマットを示す図である。
【図１４】実施形態に係るコマンドコードを例示する図である。
【図１５】送信閾値通知のボディに含まれる情報を例示する図である。
【図１６】送信閾値応答のボディに含まれる情報を例示する図である。
【図１７】第２の実施形態に係るプロキシ管理情報を例示する図である。
【図１８】第２の実施形態に係る端末が実行する再設定処理の動作フローを例示する図である。
【図１９】第２の実施形態に係る送信閾値の同期処理の動作フローを例示する図である。
【図２０】プロキシサーバを介した端末およびサーバ間でのハートビートの送信閾値の再設定の流れを例示するシーケンス図である。
【図２１】第２の実施形態の変形例に係る応答電文送信処理の動作フローを例示する図である。
【図２２】送信閾値設定依頼のボディに含まれる情報を例示する図である。
【図２３】実施形態に係る端末が実行する送信閾値設定処理を例示する図である。
【図２４】実施形態に係るサーバおよび端末を実現するためのコンピュータのハードウェア構成を例示する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【００１２】
図１は、例示的な通信システム１００の構成を示す図である。なお、通信システム１００は、例えば、サーバ１０１と端末１０３との間の常時接続が望まれるシステムであってよい。以下では、例として、通信システム１００が、ＣＲＳまたはＧＤＳなどの予約を補助する予約システムである場合を例に説明を行う。しかしながら、実施形態は、これに限定されるものではなく、通信システム１００は、サーバ１０１と端末１０３との間の常時接続が望まれるその他のシステムであってもよい。通信システム１００は、例えば、サーバ１０１、および端末１０３を含む。また、通信システム１００は、一例では、サーバ１０１および端末１０３において連携して動作するアプリケーションとして実装される。
【００１３】
サーバ１０１は、例えば、航空券、ホテル、レンタカー、クルーズ、列車などの旅行に関連する予約を補助するサービスを提供するサーバである。端末１０３は、例えば、ネットワーク１１０を介してサーバ１０１に接続し、ユーザから入力された各種の情報をサーバ１０１に送信することで、旅行の手配を行う。通信システム１００では端末１０３とサーバ１０１との間の通信は、ＨＴＴＰＳプロトコルに準じて行われるが、データの送受信の連続性を高めるために、端末１０３は応答を受信しても通信を切断せずに常時接続を維持するように動作する。
【００１４】
また、例えば、セキュリティの向上などの観点から、端末１０３がプロキシサーバ１０２を介してサーバ１０１に接続することもある。以下では、プロキシサーバを、プロキシと呼ぶことがある。図１では、拠点Ａの端末１０３は、サーバ１０１に直接接続しているが、拠点Ｂから拠点Ｄの端末１０３は、プロキシ１０２を介してサーバ１０１に接続している。
【００１５】
ここで、プロキシ１０２には、一般に通信のタイムアウトの時間が設定されている。例えば、プロキシ１０２は、無通信の状態を計測するタイマを有し、タイマのカウントが所定時間になってタイムアウトすると、サーバ１０１および端末１０３のそれぞれとの通信接続（コネクション）を切断する。
【００１６】
そのため、通信システム１００では端末１０３は、プロキシ１０２による通信の切断を回避するために、ハートビートを送信するように設定される。ハートビートとは、ネットワークで接続されたコンピュータやネットワーク機器が、接続が有効であることを確認するために、所定時間にわたる無通信の状態が検出すると送信する信号のことである。端末１０３は、例えば、無通信の状態を計測するタイマを有し、タイマのカウントが所定時間になってタイムアウトすると、プロキシ１０２にハートビートを送信する。なお、以下では、プロキシ１０２が通信接続の切断に用いるタイマの閾値を切断閾値と呼ぶことがある。また、端末１０３がハートビートの送信に用いるタイマの閾値を送信閾値と呼ぶことがある。
【００１７】
そして、例えば、プロキシ１０２に設定されている切断閾値の時間よりも、端末１０３に設定されているハートビートの送信閾値の時間が短かったとする（通信の切断閾値＞ハートビートの送信閾値）。この場合、プロキシ１０２においてタイマが通信の切断閾値を超えてタイムアウトする前に、端末１０３においてタイマがハートビートの送信閾値となり、端末１０３はプロキシ１０２にハートビートを送信する。その結果、プロキシ１０２における無通信の状態を計測するタイマがリセットされ、プロキシ１０２による通信切断を回避して通信接続を維持することができる。
【００１８】
しかしながら、プロキシ１０２の切断閾値は、例えば、プロキシ１０２を運用する企業のポリシーなどに応じてプロキシ１０２毎に様々な値に設定され得る。例えば、図１において、拠点Ｂおよび拠点Ｃの端末１０３が接続しているプロキシ１０２の切断閾値と、拠点Ｄの端末１０３が接続しているプロキシ１０２の切断閾値とが異なることがある。また、例えば、プロキシ１０２の切断閾値などの設定は、企業の外部には公開されない情報であることも多い。そのため、全てのプロキシ１０２に対して通信接続を維持できるハートビートの送信閾値を端末１０３に予め設定しておくことは難しい。その結果、端末１０３のハートビートの送信閾値よりも、プロキシ１０２の切断閾値の方が短くなってしまうことがある（ハートビートの送信閾値＞通信の切断閾値）。この場合、無通信の状態が続くと、端末１０３がハートビートを送信する前にプロキシ１０２においてタイマが切断閾値となってタイムアウトし、プロキシ１０２が通信接続を切断してしまうことがある。なお、以上で述べた、端末１０３のハートビートの送信閾値およびプロキシ１０２の切断閾値と、通信の継続性の関係を図２に示す。そして、プロキシ１０２による通信接続の切断の結果、端末１０３のユーザの作業に支障が生じることがある。
【００１９】
図３は、通信接続の切断によりユーザの作業に生じ得る支障について説明する図である。図３（ａ）は、通信接続の切断による送信した電文のロストを説明する図である。図３（ａ）に例示するように、プロキシ１０２が通信のタイムアウトにより通信接続を切断するタイミングと、送受信される電文がプロキシ１０２を通過するタイミングとが重なった場合、送受信される電文がロストすることがある。電文がロストしてしまった場合、端末１０３を利用するユーザから見ると、情報をサーバ１０１に送信したにもかかわらず応答が返ってこないように見える。この場合、ユーザは入力した情報を再度入力して送信し直すなど、再操作を強いられることがある。
【００２０】
また、図３（ｂ）は、通信接続の切断による応答遅延を説明する図である。図３（ｂ）に例示するように、プロキシ１０２が通信のタイムアウトにより通信接続を切断した直後に、端末１０３が電文を送信しようとした場合、端末１０３は、電文の送信を保留することになり、再接続を実行してからでないと電文を送信できない。通信の再接続には数秒単位で時間を要することもあり、ユーザは再接続にかかる時間分のレスポンスの遅延を受けることになる。
【００２１】
以上に例示した様に、プロキシ１０２において通信のタイムアウトが発生し、通信接続が切断されると、端末１０３のユーザに対するユーザビリティが低下することがある。
【００２２】
また、例えば、端末１０３のユーザは、以上のような通信切断に起因するユーザビリティの低下が発生すると、通信システム１００の保守を担当する担当者に連絡を入れる。連絡を受けた担当者は、例えば、原因の究明等の作業を行い、原因がプロキシ１０２における通信のタイムアウトだと分かると、端末１０３のハートビートの送信閾値をプロキシ１０２の通信の切断閾値よりも短い値に設定するようユーザに依頼して対処している。こうした作業は、ユーザにとっても、保守作業の担当者にとっても煩雑である。そのため、プロキシ１０２による通信切断を抑制することのできる技術の提供が望まれている。
【００２３】
以下で述べる実施形態では、通信接続の切断が発生した場合、端末１０３は最後の電文を送信または受信してから通信接続の切断が発生するまでの経過時間を特定する。そして、端末１０３は、複数回にわたって特定した通信接続の切断が発生するまでの経過時間を集計して、プロキシ１０２の切断閾値を推定し、推定した切断閾値よりも短くなるようにハートビートの送信閾値を再設定する。そのため、実施形態によればプロキシ１０２による通信接続の切断を抑制することができる。以下、実施形態を更に詳細に説明する。
【００２４】
図４は、実施形態に係るサーバ１０１のブロック構成を例示する図である。サーバ１０１は、例えば、制御部４０１、記憶部４０２、および通信部４０３を含む。サーバ１０１の制御部４０１は、例えば、通知部４１１および保存部４１２として動作する。サーバ１０１の記憶部４０２は、例えば、プログラム、並びに後述するプロキシ管理情報１７００などの情報を記憶している。これらの各部の詳細および記憶部４０２に格納されている情報の詳細については後述する。
【００２５】
図５は、実施形態に係る端末１０３のブロック構成を例示する図である。端末１０３は、例えば、制御部５０１、記憶部５０２、および通信部５０３を含む。端末１０３の制御部５０１は、例えば、送信部５１１、特定部５１２、および設定部５１３として動作する。端末１０３の記憶部５０２は、例えば、プログラム、並びに後述する切断回数情報１０００などの情報を記憶している。これらの各部の詳細および記憶部５０２に格納されている情報の詳細については後述する。
【００２６】
図６は、実施形態に係る端末１０３の記憶部５０２に記憶されている情報を例示する図である。端末１０３の記憶部５０２には、例えば、時間幅、送信閾値、所定回数、および最終電文時間などの情報が記憶されていてよい。これらの情報は、図６に示すように、関連付けて記憶されていてもよく、別の例では、記憶部５０２に個別に記憶されていてもよい。なお、これらの情報の詳細は後述するが、例えば、時間幅は、通信接続の切断が発生する時間帯を特定するために用いる時間幅を示す情報である。送信閾値は、例えば、ハートビートの送信に用いるタイマの閾値である。所定回数は、例えば、時間帯ごとにカウントした切断の回数の上限値である。最終電文時間は、例えば、端末１０３が最後に電文を送信または受信した時間を示す情報である。
【００２７】
続いて、実施形態に係るハートビートの送信処理を説明する。図７は、実施形態に係る端末１０３の制御部５０１が実行するハートビートの送信処理の動作フローを例示する図である。端末１０３の制御部５０１は、例えば、プロキシ１０２を介してサーバ１０１に通信接続すると図７の動作フローを開始してよい。
【００２８】
ステップ７０１（以降、ステップを“Ｓ”と記載し、例えば、Ｓ７０１と表記する）において端末１０３の制御部５０１は、現在のＴＣ値を記憶部５０２の最終電文時間に保存する。なお、ＴＣ値は、例えば、端末１０３とサーバ１０１との間の通信で用いるアプリケーションを起動してからの経過時間（例えば、ミリ秒単位）を示す値である。一例では、端末１０３は、サーバ１０１との通信接続を行うアプリケーションの起動指示がユーザにより入力されると、そのアプリケーションを起動するとともに、ＴＣ値のカウントを開始してよい。
【００２９】
Ｓ７０２において制御部５０１は、電文の送信または受信を検出したか否かを判定する。なお、電文は、通信システム１００において端末１０３およびサーバ１０１間で送受信される電文であれば、どのような電文であってもよい。例えば、電文は、旅行に関連する手配のために端末１０３およびサーバ１０１間で送受信される一般電文、並びに後述する第２の実施形態で述べる送信閾値通知および送信閾値応答を含んでよい。Ｓ７０２において電文の送信または受信を検出した場合（Ｓ７０２がＹＥＳ）、フローはＳ７０５に進む。Ｓ７０５において制御部５０１は、現在のＴＣ値を記憶部５０２の最終電文時間に保存して最終電文時間を更新し、フローはＳ７０２に戻る。一方、Ｓ７０２において電文の送信または受信を検出していない場合（Ｓ７０２がＮＯ）、フローはＳ７０３に進む。
【００３０】
Ｓ７０３において制御部５０１は、端末１０３が最後に電文を送信または受信してからの経過時間が、記憶部５０２に記憶されているハートビートの送信閾値を超えたか否かを判定する。例えば、制御部５０１は、現在のＴＣ値から、記憶部５０２に記憶されている最終電文時間を差し引くことで、端末１０３が最後に電文を送信または受信してからの経過時間を特定してよい。そして、経過時間が、記憶部５０２に記憶されているハートビートの送信閾値未満である場合（Ｓ７０３がＮＯ）、フローはＳ７０２に戻る。一方、経過時間が、記憶部５０２に記憶されているハートビートの送信閾値以上である場合（Ｓ７０３がＹＥＳ）、フローはＳ７０４に進む。
【００３１】
Ｓ７０４において制御部５０１は、プロキシ１０２を介してサーバ１０１にハートビートを送信し、フローはＳ７０５に進む。なお、プロキシ１０２は、端末１０３からハートビートを受け取ると、無通信の状態を計測するタイマをリセットし、それにより、プロキシ１０２による通信切断を回避して通信接続を維持することができる。
【００３２】
以上で述べた図７の動作フローにより、プロキシ１０２との間の通信接続において、無通信状態がハートビートの送信閾値以上にわたって継続した場合、端末１０３の制御部５０１は、サーバ１０１に宛ててハートビートを送信する。
【００３３】
また、図８は、実施形態に係るサーバ１０１の制御部４０１が実行するハートビートの応答処理の動作フローを例示する図である。サーバ１０１の制御部４０１は、例えば、通信システム１００のアプリケーションが起動されると、図８の動作フローを開始してよい。
【００３４】
Ｓ８０１においてサーバ１０１の制御部４０１は、ハートビートを受信したか否かを判定する。ハートビートを受信していない場合（Ｓ８０１がＮＯ）、フローはＳ８０１の処理を繰り返す。一方、ハートビートを受信した場合（Ｓ８０１がＹＥＳ）、フローはＳ８０２に進む。
【００３５】
Ｓ８０２において制御部４０１は、ハートビートを受信したことを示す応答電文を端末１０３に送信し、フローはＳ８０１に戻る。
【００３６】
以上の図８で述べた様に、サーバ１０１は、ハートビートを受信すると、ハートビートを受信したことを示す応答電文を端末１０３に返信する。
【００３７】
そして、例えば、端末１０３によるハートビートの送信が、プロキシ１０２において通信のタイムアウトによる通信切断が実行される前に実行された場合、通信を継続させることができる。
【００３８】
一方で、例えば、ハートビートの送信よりも前に、プロキシ１０２において通信のタイムアウトが発生すると、プロキシ１０２により通信が切断されてしまう。
【００３９】
そのため、実施形態では端末１０３の制御部５０１は、プロキシ１０２による通信の切断が発生する場合、ハートビートの送信閾値を再設定する。
【００４０】
図９は、実施形態に係る送信閾値の再設定処理の動作フローを例示する図である。端末１０３の制御部５０１は、例えば、プロキシ１０２を介してサーバ１０１と通信接続すると図９の動作フローを開始してよい。
【００４１】
Ｓ９０１において端末１０３の制御部５０１は、通信の切断を検出したか否かを判定する。通信の切断を検出していない場合（Ｓ９０１がＮＯ）、フローはＳ９０１の処理を繰り返す。一方、通信の切断を検出した場合（Ｓ９０１がＹＥＳ）、フローはＳ９０２に進む。
【００４２】
Ｓ９０２において制御部５０１は、端末１０３が最後に電文を送信または受信してから通信切断が発生するまでの経過時間を特定する。制御部５０１は、例えば、現在のＴＣ値から、記憶部５０２に記憶されている最終電文時間を差し引くことで、端末１０３が最後に電文を送信または受信してから通信切断が発生するまでの経過時間を特定してよい。
【００４３】
Ｓ９０３において制御部５０１は、経過時間が、切断回数情報１０００の複数の時間帯のうちで、いずれの時間帯に入るかを特定し、特定した時間帯の発生回数をインクリメントする。
【００４４】
図１０は、切断回数情報１０００を例示する図である。切断回数情報１０００は、時間帯ごとに通信切断の発生回数を集計する情報である。図１０に示す切断回数情報１０００では、所定の期間（例えば、０〜３００秒までの期間）を時間幅：６０秒ごとに区切った複数の時間帯が示されており、時間帯を識別するインデックスと、その時間帯での通信切断の発生回数が登録されている。例えば、制御部５０１は、Ｓ９０３において特定した経過時間が含まれる時間帯を特定し、その時間帯の発生回数に１を加算してよい。一例として、制御部５０１は、特定した経過時間が９３秒である場合、時間帯：６０〜１１９（秒）に含まれる値であるため、インデックス：１の発生回数に１加算し、図１０において発生回数を０から１に更新してよい。なお、別の例では、制御部５０１は、経過時間を時間幅で除算し、小数点以下を切り捨てて得られた整数値から切断回数情報１０００のインデックスを特定し、発生回数をインクリメントしてもよい。即ち、制御部５０１は、例えば、経過時間が９３秒である場合、９３秒を時間幅：６０秒で除算し、小数点以下を切り捨てた値：１と一致するインデックス：１の発生回数に１を加算してよい。
【００４５】
Ｓ９０４において制御部５０１は、切断回数情報１０００において発生回数が所定回数に達した時間帯があるか否かを判定する。所定回数に達した時間帯がない場合（Ｓ９０４がＮＯ）、フローはＳ９０７に進む。一方、所定回数に達した時間帯がある場合（Ｓ９０４がＹＥＳ）、フローはＳ９０５に進む。
【００４６】
Ｓ９０５において制御部５０１は、ハートビートの送信閾値を再設定する。例えば、制御部５０１は、切断回数情報１０００において発生回数が所定回数に達した時間帯の最短時間よりも所定時間短い時間をハートビートの送信閾値として設定してよい。
【００４７】
図１１は、例示的な切断回数情報１０００の集計結果をグラフで示した図である。図１１（ａ）では、１８０〜２３９秒の時間帯の発生回数が所定回数：５回に達している。この場合に、制御部５０１は、時間帯の最短時間：１８０秒よりも所定時間短い秒数にハートビートの送信閾値を設定してよい。一例では、所定時間は５秒であってよく、この場合、制御部５０１は、１７５秒にハートビートの送信閾値を設定してよい。なお、別な例では、制御部５０１は、演算により求めた値を、ハートビートの送信閾値に設定してもよい。一例として、制御部５０１は、所定回数：５回に達した時間帯のインデックスの値に、時間幅：６０秒を乗算した値から、時間幅の所定の割合の時間を減算した値をハートビートの送信閾値に設定してもよい。例えば、所定回数：５回に達した時間帯のインデックスの値が“３”である場合、制御部５０１は、インデックス値：３に時間幅：６０秒を乗算した１８０秒から、６０秒の５０％の３０秒を減算して得られた１５０秒をハートビートの送信閾値に設定してもよい。
【００４８】
また、図１１（ｂ）は、切断回数情報１０００の集計結果を示す別のグラフであり、１２０〜１７９秒の時間帯の発生回数が所定回数：５回に達している。この場合に、制御部５０１は、時間帯の最短時間：１２０秒よりも５秒短い１１５秒にハートビートの送信閾値を設定してよい。
【００４９】
なお、通信切断は、プロキシ１０２のタイムアウト以外の原因でも発生し得る。例えば、図１１（ａ）に示すように、０〜５９秒、および１２０〜１７９秒など他の範囲でも発生回数がカウントされることがある。しかし、プロキシ１０２における通信のタイムアウトで切断される場合の発生頻度は、その他の事象で通信が切断される頻度よりも高いことが推定されるため、発生頻度が上限に達した時間帯に基づいてプロキシ１０２における通信のタイムアウトの時間（切断閾値）を推定することができる。
【００５０】
続いて、Ｓ９０６において制御部５０１は、切断回数情報１０００の全ての発生回数を０にリセットする。Ｓ９０７において制御部５０１は、切断された通信の再接続を実行し、フローはＳ９０１に戻る。
【００５１】
以上で述べた図９の処理によれば、Ｓ９０５でハートビートの送信閾値が再設定された場合、以降の送信閾値によるハートビートのタイムアウトは、プロキシ１０２の通信のタイムアウトよりも前に起こる。そのため、プロキシ１０２における通信のタイムアウトによる通信接続の切断を抑制することができる。
【００５２】
（第２の実施形態）
続いて、第２の実施形態を説明する。上述の実施形態では、端末１０３は、自装置の通信切断を検出してハートビートの送信閾値を再設定している。しかしながら、プロキシ１０２における通信のタイムアウトによる通信切断は、同じプロキシ１０２に接続している他の端末１０３でも同様に発生し得る。例えば、図１において拠点Ｃの１つの端末１０３でプロキシ１０２のタイムアウトによる通信切断が発生したとする。この場合、同じプロキシ１０２に接続している拠点Ｃの別の端末１０３でも、同様にプロキシ１０２のタイムアウトによる通信切断が発生し得る。或いは、別の拠点Ｂに属しているが、同じプロキシ１０２に接続している端末１０３にも同様の通信切断が発生し得る。そのため、或る端末１０３においてハートビートの送信閾値の変更する場合、その端末１０３と同じプロキシ１０２に接続している別の端末１０３の送信閾値も同様に変更することが好ましい。
【００５３】
そこで、第２の実施形態では、或る端末１０３でハートビートの送信閾値を変更する場合、その端末１０３と同じプロキシ１０２に接続する他の端末１０３にも送信閾値の変更を適用する例を述べる。その結果、プロキシ１０２に接続する複数の端末１０３において、プロキシ１０２の通信のタイムアウトに起因する通信切断を抑制することができる。以下、第２の実施形態を更に説明する。
【００５４】
図１２は、第２の実施形態に係る端末１０３の記憶部５０２に記憶されている情報を例示する図である。端末１０３の記憶部５０２には、例えば、時間幅、送信閾値、所定回数、最終電文時間、および設定日時などの情報が記憶されていてよい。これらの情報は、図１２に示すように関連付けて記憶されていてもよく、別の例では、記憶部５０２に個別に記憶されていてもよい。なお、図１２の時間幅、送信閾値、所定回数、および最終電文時間は、一例では、図６の時間幅、送信閾値、所定回数、および最終電文時間と同様の情報であってよい。また、設定日時は、例えば、送信閾値の設定の変更が行われた日時を示す情報である。
【００５５】
図１３は、端末１０３とサーバ１０１との間で送受信される電文の例示的なフォーマットを示す図である。電文は、例えば、ＨＴＴＰヘッダと、ＢＯＤＹ（ボディ）とを含んでよい。ＢＯＤＹは、例えば、電文の種別を示すコマンドコードと、コマンドごとの情報とを含んでよい。
【００５６】
図１４は、実施形態に係るコマンドコードを例示する図である。図１４の例では、コマンドコード：１０００は、送信閾値通知を示す。また、コマンドコード：１００１は、送信閾値応答を示す。図１４には、他にも旅行関連の予約を実行するための情報（例えば、予約者の氏名、年齢、予約先の航空機およびホテルの情報）等を伝達する一般要求電文のコマンドコード、およびハートビートの電文を示すコマンドコードも例示されている。端末１０３の制御部５０１およびサーバ１０１の制御部４０１は、例えば、電文のコマンドコードを参照することで、電文の種別を特定することができる。
【００５７】
図１５は、送信閾値通知のボディに含まれる情報を例示する図である。送信閾値通知は、例えば、端末１０３に現在設定されているハートビートの送信閾値をサーバ１０１に通知するために用いられる。図１５に示す例では、送信閾値通知のボディには、コマンドコード、プロキシＵＲＬ（Uniform Resource Locator）、ポート番号、送信閾値、および設定日時が含まれている。コマンドコードには、送信閾値通知を示す値（例えば、１０００）が設定されている。また、プロキシＵＲＬとポート番号は、例えば、送信閾値通知の送信をサーバ１０１との間で中継するプロキシ１０２のＵＲＬとポート番号である。送信閾値および設定日時は、送信閾値通知の送信時に、端末１０３の記憶部５０２に記憶されているハートビートの送信閾値および設定日時である。なお、例えば、端末１０３においてハートビートの送信閾値の設定が変更された場合は、その変更が行われた日時が設定日時となる。
【００５８】
図１６は、送信閾値応答のボディに含まれる情報を例示する図である。送信閾値応答は、例えば、サーバ１０１が、送信閾値通知を受信した際に、送信閾値通知で指定されるプロキシ１０２に対して設定されているハートビートの送信閾値を端末１０３に通知するための電文である。図１６に示す例では、送信閾値応答のボディは、コマンドコード、送信閾値、および設定日時を含む。コマンドコードには、送信閾値応答を示す値（例えば、１００１）が設定される。また、送信閾値および設定日時は、送信閾値通知を受信した際に送信閾値通知で指定されるプロキシ１０２に対して、プロキシ管理情報１７００で設定されているハートビートの送信閾値および設定日時であってよい。
【００５９】
図１７は、第２の実施形態に係るプロキシ管理情報１７００を例示する図である。プロキシ管理情報１７００は、例えば、サーバ１０１の記憶部４０２に記憶されていてよい。プロキシ管理情報１７００には、例えば、プロキシＵＲＬ、ポート番号、送信閾値、および設定日時の情報が対応づけられたエントリが登録されていてよい。プロキシＵＲＬおよびポート番号は、例えば、プロキシ１０２のＵＲＬとポート番号を示す情報である。また、送信閾値および設定日時は、例えば、エントリのプロキシＵＲＬで識別されるプロキシ１０２を介して接続している端末１０３に設定するハートビートの送信閾値と、その送信閾値が端末１０３において設定された設定日時とを示す情報である。
【００６０】
続いて、第２の実施形態に係る送信閾値の再設定処理について説明する。図１８は、第２の実施形態に係る送信閾値の再設定処理の動作フローを例示する図である。端末１０３の制御部５０１は、例えば、プロキシ１０２を介してサーバ１０１に通信接続すると図１８の動作フローを開始してよい。
【００６１】
Ｓ１８０１において端末１０３の制御部５０１は、ハートビートの送信閾値を通知する送信閾値通知をサーバ１０１に送信する。制御部５０１は、例えば、電文のＢＯＤＹにコマンドコード：１０００、プロキシＵＲＬ、ポート番号、送信閾値、および設定日時の情報を含めた送信閾値通知を生成し、サーバ１０１に送信してよい。送信閾値通知のプロキシＵＲＬおよびポート番号は、例えば、サーバ１０１との通信接続を仲介するプロキシ１０２のＵＲＬおよびポート番号である。また、例えば、送信閾値通知の送信閾値は、記憶部５０２に記憶されているハートビートの送信閾値であり、設定日時はその送信閾値の設定が行われた日時を示す情報である。送信閾値通知をサーバ１０１に送信することで、端末１０３に設定されているハートビートの送信閾値がサーバ１０１に通知される。
【００６２】
Ｓ１８０２において制御部５０１は、送信閾値通知に対する応答としてサーバ１０１から送信閾値応答を受信する。
【００６３】
Ｓ１８０３において制御部５０１は、記憶部５０２に記憶されているハートビートの送信閾値と、その設定日時の情報を、送信閾値応答で通知された送信閾値および設定日時に再設定する。それにより、端末１０３が接続しているプロキシ１０２に対してサーバ１０１が設定しているハートビートの送信閾値に、端末１０３のハートビートの送信閾値が同期される。
【００６４】
続く、Ｓ１８０４およびＳ１８０５の処理は、Ｓ９０１およびＳ９０２の処理とそれぞれ対応していてよく、一例では制御部５０１は、Ｓ９０１およびＳ９０２の処理と同様の処理を実行してよい。なお、Ｓ１８０４およびＳ１８０５の処理により、端末１０３の制御部５０１は、通信切断を検出すると、最終電文時間から通信切断の発生までの経過時間を特定する。
【００６５】
Ｓ１８０６において制御部５０１は、切断された通信を再接続する。
【００６６】
続く、Ｓ１８０７からＳ１８１０の処理は、Ｓ９０３からＳ９０６の処理とそれぞれ対応していてよく、一例では制御部５０１は、Ｓ９０３からＳ９０６の処理と類似の処理を実行してよい。ただし、Ｓ１８０９の処理では、制御部５０１は、ハートビートの送信閾値を再設定すると、現在の日時で設定日時を再設定する。なお、Ｓ１８０７からＳ１８１０の処理により、制御部５０１は、最終電文時間から通信切断までの経過時間の時間帯を特定して切断回数情報１０００に集計し、集計結果に基づいてハートビートの送信閾値を再設定して更新するとともに、送信閾値を再設定した日時として現在の日時で記憶部５０２の設定日時を更新する。
【００６７】
続く、Ｓ１８１１からＳ１８１３の処理は、Ｓ１８０１からＳ１８０３の処理とそれぞれ対応していてよく、一例では制御部５０１は、Ｓ１８０１からＳ１８０３の処理と同様の処理を実行してよい。ただし、Ｓ１８１１からＳ１８１３の処理ではＳ１８０９において送信閾値および設定日時が更新されているため、送信閾値通知には更新後の送信閾値および設定日時が含められてサーバ１０１に通知される。後述する図１９の動作フローでより詳細に述べるが、サーバ１０１では、送信閾値通知を受信すると、送信閾値通知の設定日時と、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられている設定日時との比較が行われる。そして、例えば、送信閾値通知の設定日時が、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられている設定日時よりも新しいとする。この場合、サーバ１０１の制御部４０１は、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられている送信閾値および設定日時を、送信閾値通知の送信閾値および設定日時で更新する。そして、サーバ１０１の制御部４０１は、更新後の送信閾値および設定日時を含む送信閾値応答を端末１０３に返信する。端末１０３の制御部５０１は、Ｓ１８１２で送信閾値応答を受信すると、Ｓ１８１３で記憶部５０２に記憶されている送信閾値および設定日時を送信閾値応答の送信閾値および設定日時で更新し、フローはＳ１８０４に戻る。
【００６８】
従って、図１８の動作フローによれば、Ｓ１８０９で最終電文の送受信から通信切断までの経過時間に基づいてハートビートの送信閾値および設定日時を更新すると、その値がＳ１８１３で記憶部５０２に記録される。その結果、以降のハートビートの送信のタイムアウトは、プロキシ１０２の通信のタイムアウトよりも前に起こるため、プロキシ１０２における通信のタイムアウトによる接続の切断を抑制することができる。
【００６９】
続いて、第２の実施形態に係るサーバ１０１の制御部４０１が実行するハートビートの送信閾値の同期処理を説明する。図１９は、第２の実施形態に係る送信閾値の同期処理の動作フローを例示する図である。サーバ１０１の制御部４０１は、例えば、起動すると図１９の動作フローを開始してよい。
【００７０】
Ｓ１９０１においてサーバ１０１の制御部４０１は、送信閾値通知を端末１０３から受信したか否かを判定する。送信閾値通知を端末１０３から受信していない場合（Ｓ１９０１がＮＯ）、フローはＳ１９０１の処理を繰り返す。一方、送信閾値通知を端末から受信した場合（Ｓ１９０１がＹＥＳ）、フローはＳ１９０２に進む。
【００７１】
Ｓ１９０２において制御部４０１は、受信した送信閾値通知に含まれるプロキシＵＲＬとポート番号を用いてプロキシ管理情報１７００を検索する。そして、Ｓ１９０３において制御部４０１は、検索の結果、送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた送信閾値および設定日時が、プロキシ管理情報１７００に登録されているか否かを判定する。
【００７２】
送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた送信閾値および設定日時がプロキシ管理情報１７００に登録されていない場合（Ｓ１９０３がＮＯ）、フローはＳ１９０４に進む。
【００７３】
Ｓ１９０４において制御部４０１は、送信閾値通知のプロキシＵＲＬ、ポート番号、送信閾値、および設定日時を対応付けてプロキシ管理情報１７００に登録する。
【００７４】
一方、Ｓ１９０３において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた送信閾値および設定日時がプロキシ管理情報１７００に登録されている場合（Ｓ１９０３がＹＥＳ）、フローはＳ１９０５に進む。
【００７５】
Ｓ１９０５において制御部４０１は、送信閾値通知に含まれる設定日時が、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた設定日時よりも新しいか否かを判定する。送信閾値通知に含まれる設定日時よりも、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた設定日時が新しい場合（Ｓ１９０５がＮＯ）、フローはＳ１９０７に進む。一方、送信閾値通知に含まれる設定日時が、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた設定日時よりも新しい場合（Ｓ１９０５がＹＥＳ）、フローはＳ１９０６に進む。
【００７６】
Ｓ１９０６において制御部４０１は、受信した送信閾値通知に含まれるプロキシＵＲＬおよびポート番号で、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた送信閾値および設定日時を更新し、フローはＳ１９０７に進む。
【００７７】
Ｓ１９０７において制御部４０１は、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた送信閾値および設定日時の情報を用いて送信閾値応答を生成し、送信閾値応答を端末１０３に送信して、フローはＳ１９０１に戻る。なお、Ｓ１９０６において送信閾値および設定日時が更新されている場合、送信閾値応答には更新後の送信閾値および設定日時が登録される。
【００７８】
以上で述べた様に、第２の実施形態ではサーバ１０１は、プロキシ１０２を介して接続している端末１０３に設定する送信閾値および設定日時を、プロキシ管理情報１７００においてプロキシ１０２ごとに管理している。
【００７９】
そして、図１８および図１９の動作フローでは、端末１０３においてハートビートの送信閾値および設定日時が更新された場合、更新後の送信閾値および設定日時が送信閾値通知によりサーバ１０１に通知される。サーバ１０１では、送信閾値通知を受信すると、プロキシ管理情報１７００において送信閾値通知に含まれるプロキシＵＲＬおよびポート番号と対応付けられた送信閾値および設定日時の情報が更新される。プロキシ管理情報１７００の更新後の送信閾値および設定日時は、以降のＳ１８０２の処理の実行で、更新後の送信閾値および設定日時と対応するプロキシＵＲＬで識別されるプロキシ１０２に接続する複数の端末１０３に送信閾値応答により通知され、Ｓ１８０３で端末１０３に設定される。
【００８０】
そのため、第２の実施形態によれば、上述の実施形態が奏する効果に加え、同じプロキシ１０２に接続している複数の端末１０３で、プロキシ１０２における通信のタイムアウトによる接続の切断を抑制することができる。その結果、例えば、ユーザおよび保守の担当者によるハートビートの送信閾値の修正作業を軽減することができる。一例として、同じプロキシ１０２に接続する複数の端末１０３のハートビートの送信閾値を修正するために、保守の担当者が複数の拠点のユーザに個別に連絡を行う等の作業負担を軽減することができる。
【００８１】
図２０は、以上の図１８および図１９で述べたプロキシ１０２を介した端末１０３およびサーバ１０１間での送信閾値の再設定の流れを説明するシーケンス図である。
【００８２】
例えば、端末１０３においてＣＲＳまたはＧＤＳなどの通信システム１００のアプリケーションが起動されると、Ｓ２００１において端末１０３の制御部５０１は、プロキシ１０２を介してサーバ１０１との通信接続を確立する。
【００８３】
Ｓ２００２において端末１０３の制御部５０１は、プロキシ１０２を介してサーバ１０１に送信閾値通知を送信する。なお、一例として、送信閾値通知には、端末１０３の記憶部５０２に記憶されている送信閾値：２５０秒が含まれていてよい。
【００８４】
Ｓ２００３においてサーバ１０１の制御部４０１は、受信した送信閾値通知に含まれるプロキシＵＲＬおよびポート番号とプロキシ管理情報１７００において対応付けられた送信閾値および設定日時を検索し、検索された送信閾値および設定日時の情報を含む送信閾値応答を端末１０３に送信する（送信閾値：２５０秒）。
【００８５】
Ｓ２００４において端末１０３の制御部５０１は、受信した送信閾値応答に含まれる送信閾値：２５０秒に、ハートビートの送信閾値を設定する。
【００８６】
Ｓ２００５において端末１０３の制御部５０１は、ユーザから入力された各種の情報を含む一般電文をサーバ１０１に送信したり、サーバ１０１から旅行に関連する情報を含む一般電文を受信したりする。
【００８７】
ここで、例えば、ユーザが休憩に入るなどして、電文の送受信が停止し、無通信の状態になったとする。この場合、Ｓ２００６において端末１０３およびプロキシ１０２の双方において、無通信状態をカウントするタイマがカウントを実行する。端末１０３では、無通信状態をカウントするタイマが送信閾値：２５０秒に達すればハートビートが送信されることになるが、図２０の例では、プロキシ１０２における通信のタイムアウトの時間が１８０秒に設定されている。そのため、先にプロキシ１０２における通信のタイムアウトが発生する。その結果、Ｓ２００７においてプロキシ１０２は、端末１０３およびサーバ１０１のそれぞれとの間の通信接続を切断する。
【００８８】
Ｓ２００８において端末１０３の制御部５０１は、通信の切断を検出すると、最後に電文を送受信してから通信の切断を検出するまでの経過時間を特定する。Ｓ２００９において端末１０３の制御部５０１は、サーバ１０１との間の通信を再接続する。
【００８９】
Ｓ２０１０において端末１０３の制御部５０１は、特定した経過時間を切断回数情報１０００に集計し、Ｓ２０１１において切断回数情報１０００の集計結果に基づいてハートビートの送信閾値を再設定する。図２０の例では、送信閾値：２５０秒は、切断回数情報１０００の集計結果に基づいて送信閾値：１７０秒に更新される。
【００９０】
Ｓ２０１２において端末１０３の制御部５０１は、更新後の送信閾値：１７０秒を含む送信閾値通知を生成し、サーバ１０１に送信する。
【００９１】
送信閾値通知を受信すると、Ｓ２０１３においてサーバ１０１の制御部４０１は、送信閾値通知に含まれるプロキシＵＲＬおよびポート番号とプロキシ管理情報１７００において対応付けられた送信閾値を特定する。そして、サーバ１０１の制御部４０１は、特定した送信閾値を、送信閾値通知で通知された送信閾値に更新する。例えば、図２０の例では、送信閾値：２５０秒が送信閾値：１７０秒に更新される。
【００９２】
Ｓ２０１４においてサーバ１０１の制御部４０１は、送信閾値：１７０秒を含む送信閾値応答を端末１０３に返信する。Ｓ２０１５において端末１０３の制御部５０１は、送信閾値応答の送信閾値：１７０秒で自装置の送信閾値を再設定する。
【００９３】
Ｓ２０１６において端末１０３の制御部５０１は、ユーザから入力された各種の情報を含む一般電文をサーバ１０１に送信したり、サーバ１０１から旅行に関連する情報を含む一般電文を受信したりする。
【００９４】
ここでまた、ユーザが休憩に入るなどして、一般電文の送受信が停止し、無通信の状態になったとする。この場合、Ｓ２０１７において端末１０３およびプロキシ１０２の双方において、無通信状態をカウントするタイマがカウントを実行する。なお、端末１０３の送信閾値は、Ｓ２０１５において１７０秒に再設定されている。そのため、プロキシ１０２における通信がタイムアウト（１８０秒）する前に、Ｓ２０１８で端末１０３の制御部５０１は、ハートビートを送信する。それにより、プロキシ１０２での通信のタイムアウトによる通信切断を抑制することができる。
【００９５】
（第２の実施形態の変形例）
上述の第２の実施形態の図１８の処理では、或る端末１０３においてＳ１８０９でハートビートの送信閾値および設定日時が更新されたとする。この場合、その更新後の送信閾値および設定日時は、別の端末１０３では次に通信システム１００のアプリケーションを起動して図１８のＳ１８０２およびＳ１８０３の処理が実行されるまでは利用されないことがある。しかしながら、実施形態はこれに限定されるものではない。例えば、サーバ１０１の制御部４０１は、更新されたハートビートの送信閾値および設定日時を含む送信閾値通知を受信した場合、直ちに同じプロキシ１０２に接続する他の端末１０３にも更新後のハートビートの送信閾値および設定日時を通知してもよい。なお、ハートビートの送信閾値および設定日時の更新が行われた端末１０３と同じプロキシ１０２に接続する他の端末１０３を、第２の端末と呼ぶことがある。以下では、図２１および図２３を参照して第２の実施形態の変形例を述べる。
【００９６】
図２１は、第２の実施形態の変形例に係る応答電文送信処理の動作フローを例示する図である。サーバ１０１の制御部４０１は、例えば、図１９のＳ１９０７の処理の代わりに、図２１に示す応答電文送信処理を実行してよい。
【００９７】
Ｓ２１０１の処理は、例えば、Ｓ１９０７の処理と同様の処理であってよく、制御部４０１は、送信閾値応答を生成して端末１０３に送信してよい。
【００９８】
Ｓ２１０２において制御部４０１は、送信閾値応答のプロキシＵＲＬで識別されるプロキシ１０２を介して現在接続している他の端末１０３を特定する。
【００９９】
そして、Ｓ２１０３において制御部４０１は、特定した他の端末１０３に送信閾値設定依頼を送信する。
【０１００】
図２２は、送信閾値設定依頼のボディに含まれる情報を例示する図である。送信閾値設定依頼の送信閾値および設定日時は、例えば、Ｓ２１０１で送信した送信閾値応答の送信閾値および設定日時と同じ値が設定されていてよい。ただし、送信閾値設定依頼では、コマンドコードが送信閾値応答を表す値（例えば、“１００１”）ではなく、送信閾値設定依頼を表す値（例えば、“１００２”）に設定されてよい。送信閾値設定依頼を送信すると、本動作フローは終了し、フローはＳ１９０１に戻る。
【０１０１】
以上の図２１の動作フローによれば、サーバ１０１の制御部４０１は、或るプロキシ１０２を介して接続する複数の端末１０３のうちの１つの端末１０３において、ハートビートの送信閾値および設定日時の更新が行われた場合に、その更新後の送信閾値および設定日時を、同じプロキシ１０２を介して接続する他の端末１０３にも送信閾値設定依頼により通知することができる。そのため、同じプロキシ１０２に接続する他の端末１０３は、送信閾値設定依頼に含まれる更新後の送信閾値および設定日時を用いて、自装置のハートビートの送信閾値および設定日時を設定することができる。以下、図２３を参照して、送信閾値設定依頼を受信した際に端末１０３の制御部５０１が実行する送信閾値設定処理を説明する。
【０１０２】
図２３は、実施形態に係る端末１０３の制御部５０１が実行する送信閾値設定処理を例示する図である。端末１０３の制御部５０１は、送信閾値設定依頼を受信すると、図２３の動作フローを開始してよい。なお、端末１０３の制御部５０１は、一例では、送信閾値設定依頼のコマンドコードに基づいて電文の種類を識別してよい。
【０１０３】
Ｓ２３０１において端末１０３の制御部５０１は、送信閾値設定依頼の送信閾値および設定日時で、記憶部５０２に記憶されている送信閾値および設定日時を再設定する。
【０１０４】
Ｓ２３０２において端末１０３の制御部５０１は、切断回数情報１０００の全ての発生回数を０にリセットし、本動作フローは終了する。
【０１０５】
以上の図２２および図２３を参照して述べた様に、例えば、或る端末１０３で送信閾値および設定日時が更新されたとする。この場合に、第２の実施形態に係る変形例では、その端末１０３が接続するプロキシ１０２を介してサーバ１０１に接続する他の端末１０３にも更新された送信閾値および設定日時が通知され、再設定される。そのため、他の端末１０３においてもプロキシ１０２による通信切断を迅速に抑制することができる。
【０１０６】
以上において、いくつかの実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の実施形態において、サーバ１０１は、複数のサーバを連携させて実装することもできる。一例では、サーバ１０１は、予約に関連する処理を実行する処理サーバと、処理サーバが利用するデータを記憶するデータサーバとに分けて実装されてもよい。この場合、データサーバは、例えば、プロキシ管理情報１７００を記憶していてよく、処理サーバは、データサーバに接続して情報を収集し、実施形態に係る処理を実行してもよい。
【０１０７】
また、上述の実施形態では、プロキシ１０２を識別する情報として、プロキシ１０２のＵＲＬを用いているが、実施形態はこれに限定されるものではない。例えば、端末１０３において、プロキシ１０２のグローバルＩＰ（Internet Protocol）アドレスが取得可能な場合には、プロキシ１０２のグローバルＩＰアドレスをプロキシのＵＲＬの代わりに用いてもよい。
【０１０８】
また、上述の実施形態では、通信システム１００が、ＣＲＳおよびＧＤＳなどの予約に関連するシステムであり、また、サーバ１０１が予約を補助するサービスを提供する場合を例に説明を行っている。しかしながら、実施形態はこれに限定されるものではない。例えば、実施形態は、端末１０３とサーバ１０１との間で常時接続が望まれるその他のサービスを提供するシステムに適用されてもよい。
【０１０９】
また、上述のいくつかの実施形態で述べた動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、または、一部の処理が省略されてもよい。例えば、図１８の動作フローでは、Ｓ１８１１からＳ１８１３の処理を省略し、Ｓ１８１０の実行後にＳ１８０１に戻るように処理が変更されてもよい。この場合、端末１０３は、通信接続の切断のたびに、Ｓ１８０２の処理でサーバ１０１から送信閾値通知を受信し、Ｓ１８０３において送信閾値通知で通知された送信閾値に再設定される。そのため、例えば、同じプロキシ１０２に接続する他の端末１０３で送信閾値の再設定が実行され、サーバ１０１のプロキシ管理情報１７００にその送信閾値が登録されていたとする。この場合に、端末１０３は、図１８の動作フローの次回の起動を待たずに、他の端末１０３で再設定された送信閾値をＳ１８０２およびＳ１８０３の処理で取得し、利用することができる。
【０１１０】
また、例えば、上述の図９の送信閾値の再設定処理の実行中に、終了指示の入力を受けた場合、制御部５０１は、図９の動作フローを終了させてよい。同様に、図１８の送信閾値の再設定処理の実行中に終了指示の入力を受けた場合、制御部５０１は、図１８の動作フローを終了させてよい。
【０１１１】
なお、上述の実施形態において、例えば、Ｓ７０４、Ｓ１８０１、およびＳ１８１１の処理では、端末１０３の制御部５０１は、例えば、送信部５１１として動作する。また、Ｓ９０２、およびＳ１８０５の処理では、端末１０３の制御部５０１は、例えば、特定部５１２として動作する。Ｓ９０３〜Ｓ９０５、Ｓ１８０７〜Ｓ１８０９、およびＳ１８１３の処理では、端末１０３の制御部５０１は、例えば、設定部５１３として動作する。Ｓ１９０７の処理では、サーバ１０１の制御部４０１は、例えば、通知部４１１として動作する。Ｓ１９０４、およびＳ１９０６の処理では、サーバ１０１の制御部４０１は、例えば、保存部４１２として動作する。
【０１１２】
図２４は、実施形態に係るサーバ１０１および端末１０３を実現するためのコンピュータ２４００のハードウェア構成を例示する図である。図２４のサーバ１０１および端末１０３を実現するためのハードウェア構成は、例えば、プロセッサ２４０１、メモリ２４０２、記憶装置２４０３、読取装置２４０４、通信インタフェース２４０６、および入出力インタフェース２４０７を備える。なお、プロセッサ２４０１、メモリ２４０２、記憶装置２４０３、読取装置２４０４、通信インタフェース２４０６、入出力インタフェース２４０７は、例えば、バス２４０８を介して互いに接続されている。
【０１１３】
プロセッサ２４０１は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ２４０１は、メモリ２４０２を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述した制御部４０１または制御部５０１の一部または全部の機能を提供する。例えば、サーバ１０１のプロセッサ２４０１は、図８、図１９、および図２１の動作フローの手順を記述したプログラムを実行することにより、通知部４１１および保存部４１２として動作する。また、例えば、端末１０３のプロセッサ２４０１は、図７、図９、図１８、および図２３の動作フローの手順を記述したプログラムを実行することにより、送信部５１１、特定部５１２、および設定部５１３として動作する。
【０１１４】
メモリ２４０２は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んでいてよい。記憶装置２４０３は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、または外部記憶装置である。なお、ＲＡＭは、Random Access Memoryの略称である。また、ＲＯＭは、Read Only Memoryの略称である。
【０１１５】
読取装置２４０４は、プロセッサ２４０１の指示に従って着脱可能記憶媒体２４０５にアクセスする。着脱可能記憶媒体２４０５は、例えば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。なお、ＵＳＢは、Universal Serial Busの略称である。ＣＤは、Compact Discの略称である。ＤＶＤは、Digital Versatile Diskの略称である。
【０１１６】
上述のサーバ１０１の記憶部４０２は、例えばメモリ２４０２、記憶装置２４０３、および着脱可能記憶媒体２４０５を含んでいてよい。例えば、サーバ１０１の記憶装置２４０３は、プロキシ管理情報１７００を記憶していてよい。また、上述の端末１０３の記憶部５０２は、例えばメモリ２４０２、記憶装置２４０３、および着脱可能記憶媒体２４０５を含んでいてよい。例えば、端末１０３の記憶装置２４０３は、切断回数情報１０００を記憶していてよい。
【０１１７】
通信インタフェース２４０６は、例えば、ネットワークインタフェースカード(ＮＩＣ: Network Interface Card)などであってよく、プロセッサ２４０１の指示に従ってネットワークを介してデータを送受信する。通信インタフェース２４０６は、例えば、上述の通信部４０３および通信部５０３の一例である。入出力インタフェース２４０７は、例えば、入力装置および出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレイなどの表示装置、およびスピーカなどの音声装置である。なお、一実施形態において、サーバ１０１は、入出力インタフェース２４０７を備えていなくてもよい。
【０１１８】
実施形態に係る各プログラムは、例えば、下記の形態でサーバ１０１および端末１０３に提供される。
（１）記憶装置２４０３に予めインストールされている。
（２）着脱可能記憶媒体２４０５により提供される。
（３）プログラムサーバなどのサーバから提供される。 
【０１１９】
なお、図２４を参照して述べたサーバ１０１および端末１０３を実現するためのコンピュータ２４００のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がＦＰＧＡおよびＳｏＣなどによるハードウェアとして実装されてもよい。なお、ＦＰＧＡは、Field Programmable Gate Arrayの略称である。ＳｏＣは、System-on-a-chipの略称である。
【０１２０】
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除してまたは置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【符号の説明】
【０１２１】
１００      通信システム
１０１      サーバ
１０２      プロキシサーバ
１０３      端末
１１０      ネットワーク
４０１      制御部
４０２      記憶部
４０３      通信部
４１１      通知部
４１２      保存部
５０１      制御部
５０２      記憶部
５０３      通信部
５１１      送信部
５１２      特定部
５１３      設定部
２４００    コンピュータ
２４０１    プロセッサ
２４０２    メモリ
２４０３    記憶装置
２４０４    読取装置
２４０５    着脱可能記憶媒体
２４０６    通信インタフェース
２４０７    入出力インタフェース
２４０８    バス
【図１】
2020123814.tif 000003
【図２】
2020123814.tif 000004
【図３】
2020123814.tif 000005
【図４】
2020123814.tif 000006
【図５】
2020123814.tif 000007
【図６】
2020123814.tif 000008
【図７】
2020123814.tif 000009
【図８】
2020123814.tif 000010
【図９】
2020123814.tif 000011
【図１０】
2020123814.tif 000012
【図１１】
2020123814.tif 000013
【図１２】
2020123814.tif 000014
【図１３】
2020123814.tif 000015
【図１４】
2020123814.tif 000016
【図１５】
2020123814.tif 000017
【図１６】
2020123814.tif 000018
【図１７】
2020123814.tif 000019
【図１８】
2020123814.tif 000020
【図１９】
2020123814.tif 000021
【図２０】
2020123814.tif 000022
【図２１】
2020123814.tif 000023
【図２２】
2020123814.tif 000024
【図２３】
2020123814.tif 000025
【図２４】
2020123814.tif 000026