(57)【要約】      （修正有）【課題】ネットワークサービスの持続状態が保たれているか否かを確認する。【解決手段】サーバとクライアント間のハートビート信号に対する応答がない場合に、エコーサーバにパケットを送信してその応答の有無によりサーバの障害かネットワークの障害かを切り分ける。【選択図】図５
2019087993.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータと結合して持続性管理方法をコンピュータに実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムであって、
前記持続性管理方法は、
ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信する段階、
前記サーバからハートビート信号に対する応答信号が受信されない場合、前記コンピュータプログラムによって識別されるエコーサーバにパケットを送信する段階、および
前記エコーサーバから前記パケットに対する応答が受信されるか否かに基づいてサービスの持続性の可否を決定する段階
を含むことを特徴とする、コンピュータプログラム。
【請求項２】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信されるか否かに応じて前記サーバの障害および前記ネットワークの障害のうちのいずれか１つを選別的に診断することを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項３】
前記エコーサーバから前記パケットに対する応答が受信された場合、前記サーバの障害を診断することを特徴とする、請求項２に記載のコンピュータプログラム。
【請求項４】
前記サービスの持続性の可否を決定する段階は、
前記サーバからはハートビート信号に対する応答信号が受信されず、前記エコーサーバからは前記パケットに対する応答が受信される状況が予め設定された回数だけ連続的に繰り返された場合、前記サーバの障害を診断することを特徴とする、請求項２に記載のコンピュータプログラム。
【請求項５】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信されない場合、前記ネットワークの障害を診断することを特徴とする、請求項２に記載のコンピュータプログラム。
【請求項６】
前記サービスの持続性の可否を決定する段階は、
前記サーバからはハートビート信号に対する応答信号が受信されず、前記エコーサーバからも前記パケットに対する応答が受信されない状況が予め設定された回数だけ連続的に繰り返された場合、前記ネットワークの障害を診断することを特徴とする、請求項２に記載のコンピュータプログラム。
【請求項７】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信された場合、前記サーバに送信される次のハートビート信号に対する前記サーバの応答遅延時間を調節し、前記サーバと前記サーバと連係するＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）サーバ間のピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を測定することを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項８】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信された場合、前記次のハートビート信号に対する前記サーバの応答遅延時間を減らすことを特徴とする、請求項７に記載のコンピュータプログラム。
【請求項９】
前記ピンホール時間が測定された場合、前記測定されたピンホール時間ごとに前記サーバに応答遅延時間がないハートビート信号を送信する段階
をさらに含むことを特徴とする、請求項７に記載のコンピュータプログラム。
【請求項１０】
前記エコーサーバは、受信されるパケットに対して即時に応答を送信するように実現されることを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項１１】
クライアントの持続性管理方法であって、
ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信する段階、
前記サーバからハートビート信号に対する応答信号が受信されない場合、前記クライアントによって識別されるエコーサーバにパケットを送信する段階、および
前記エコーサーバから前記パケットに対する応答が受信されるか否かに基づいてサービスの持続性の可否を決定する段階
を含むことを特徴とする、持続性管理方法。
【請求項１２】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信されるか否かに応じて前記サーバの障害および前記ネットワークの障害のうちのいずれか１つを選別的に診断することを特徴とする、請求項１１に記載の持続性管理方法。
【請求項１３】
前記エコーサーバから前記パケットに対する応答が受信された場合には前記サーバの障害を診断し、前記エコーサーバから前記パケットに対する応答が受信されない場合には前記ネットワークの障害を診断することを特徴とする、請求項１２に記載の持続性管理方法。
【請求項１４】
前記サービスの持続性の可否を決定する段階は、
前記サーバからはハートビート信号に対する応答信号が受信されず、前記エコーサーバからは前記パケットに対する応答が受信される状況が予め設定された回数だけ連続的に繰り返された場合には、前記サーバの障害を診断し、前記サーバからはハートビート信号に対する応答信号が受信されず、前記エコーサーバからも前記パケットに対する応答が受信されない状況が予め設定された回数だけ連続的に繰り返された場合には、前記ネットワークの障害を診断することを特徴とする、請求項１２に記載の持続性管理方法。
【請求項１５】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信された場合、前記サーバに送信される次のハートビート信号に対する前記サーバの応答遅延時間を調節し、前記サーバと前記サーバと連係するＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）サーバ間のピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を測定することを特徴とする、請求項１１に記載の持続性管理方法。
【請求項１６】
前記サービスの持続性の可否を決定する段階は、
前記エコーサーバから前記パケットに対する応答が受信された場合、前記次のハートビート信号に対する前記サーバの応答遅延時間を減らすことを特徴とする、請求項１５に記載の持続性管理方法。
【請求項１７】
請求項１１〜１６のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能記録媒体。
【請求項１８】
クライアントが駆動されるコンピュータ装置であって、
コンピュータ読み取り可能命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信し、
前記サーバからハートビート信号に対する応答信号が受信されない場合、前記クライアントによって識別されるエコーサーバにパケットを送信し、
前記エコーサーバから前記パケットに対する応答が受信されるか否かに基づいてサービスの持続性の可否を決定すること
を特徴とする、コンピュータ装置。
【請求項１９】
前記少なくとも１つのプロセッサは、
前記エコーサーバから前記パケットに対する応答が受信されるか否かに応じて前記サーバの障害および前記ネットワークの障害のうちのいずれか１つを選別的に診断することを特徴とする、請求項１８に記載のコンピュータ装置。
【請求項２０】
前記少なくとも１つのプロセッサは、
前記エコーサーバから前記パケットに対する応答が受信される場合、前記サーバに送信される次のハートビート信号に対する前記サーバの応答遅延時間を調節し、前記サーバと前記サーバと連係するＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）サーバ間のピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を測定することを特徴とする、請求項１８に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、ネットワークサービス持続性管理技術に関し、より詳細には、サービスを提供するサーバの問題とネットワークの問題をクライアントで区分して診断することができる持続性管理方法、前記持続性管理方法を実行するコンピュータ装置、コンピュータと結合して持続性管理方法をコンピュータに実行させるためにコンピュータ読み取り可能記録媒体に格納されたコンピュータプログラムとその記録媒体に関する。
【背景技術】
【０００２】
一般的に、サービスの現状を点検するためには、端末（クライアント）がサービスを提供するサーバと周期的に通信をする必要がある。このような周期的な通信が成立しない場合、ネットワークサービスの持続性が失われ、これによりネットワークサービスの持続性を維持するための多様な技術が提供される。例えば、特許文献１は、モバイルネットワークゲームの再接続方法およびシステム、このためのゲームサーバに関するものであって、移動通信網を介して無線接続した移動端末がモバイルゲームを行っている最中に、不安定な無線環境やゲームサーバの障害によって無線ネットワークが強制切断され、進行中のモバイルゲームが中断された場合に、移動端末の非正常的なログアウトを感知したゲームサーバが、ゲーム接続情報が含まれたＳＭＳメッセージ情報を生成して該当の移動端末に送信し、前記移動端末がＳＭＳメッセージ情報を確認して再接続したときに、強制終了前のゲーム情報を再び提供することにより、移動端末ユーザが継続してモバイルゲームを行うことができるようにする、モバイルネットワークゲームの再接続方法およびシステムについて開示している。
【０００３】
しかし、このようなモバイル環境における端末は、サーバが正常動作しており、サービスに何の問題がなくても、モバイルアクセスネットワークの一時的な切断を、サーバに問題があるとか持続的なサービスが不可能であるなど誤った分析および判断として捉えられる場合があるという問題を抱えている。例えば、モバイル端末において、モバイルアクセスネットワークの一時的な切断が、サービスのために連結した第１サーバの障害（ｆａｕｌｔ）と誤判断された場合、モバイル端末は、サービスのための第２サーバとの連結を試行することがある。この場合、正常動作中であった第１サーバは、モバイル端末へのサービス提供を持続して試行するし、モバイル端末は第２サーバとの連結を試行するようになるため、サービスの持続性が失われる恐れがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】韓国公開特許第１０−２００７−０１１１６８６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サービスを提供するサーバの問題とネットワークの問題をクライアントで区分して診断することができる持続性管理方法、前記持続性管理方法を実行するコンピュータ装置、コンピュータと結合して持続性管理方法をコンピュータに実行させるためにコンピュータ読み取り可能記録媒体に格納されたコンピュータプログラムとその記録媒体を提供する。
【０００６】
クライアントにおいて、サービスを提供するサーバから応答がない場合、別のエコーサーバにパケットを送信し、エコーサーバからの応答の有無に応じてサーバの障害およびネットワークの障害を選別的に診断することができる、持続性管理方法、前記持続性管理方法を実行するコンピュータ装置、コンピュータと結合して持続性管理方法をコンピュータに実行させるためにコンピュータ読み取り可能記録媒体に格納されたコンピュータプログラムとその記録媒体を提供する。
【０００７】
サービスを提供するサーバとＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）間のピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を測定するにあたり、エコーサーバを活用することによって適切なピンホール時間を見つけ出すことができる持続性管理方法、前記持続性管理方法を実行するコンピュータ装置、コンピュータと結合して持続性管理方法をコンピュータに実行させるためにコンピュータ読み取り可能記録媒体に格納されたコンピュータプログラムとその記録媒体を提供する。
【課題を解決するための手段】
【０００８】
クライアントの持続性管理方法において、ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信する段階、前記サーバからハートビート信号に対する応答信号が受信されない場合、前記クライアントによって識別されるエコーサーバにパケットを送信する段階、および前記エコーサーバから前記パケットに対する応答が受信されるか否かに基づいてサービスの持続性の可否を決定する段階を含むことを特徴とする、持続性管理方法を提供する。
【０００９】
コンピュータと結合して前記持続性管理方法をコンピュータに実行させるためにコンピュータ読み取り可能記録媒体に格納されたコンピュータプログラムを提供する。
【００１０】
前記持続性管理方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能記録媒体を提供する。
【００１１】
クライアントが駆動されるコンピュータ装置であって、コンピュータ読み取り可能命令を実行するように実現される少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信し、前記サーバからハートビート信号に対する応答信号が受信されない場合、前記クライアントによって識別されるエコーサーバにパケットを送信し、前記エコーサーバから前記パケットに対する応答が受信されるか否かに基づいてサービスの持続性の可否を決定することを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【００１２】
サービスを提供するサーバの問題とネットワークの問題をクライアントで区分して診断することができる。
【００１３】
クライアントにおいて、サービスを提供するサーバから応答がない場合、別のエコーサーバにパケットを送信し、エコーサーバからの応答の有無に応じてサーバの障害およびネットワークの障害を選別的に診断することができる。
【００１４】
サービスを提供するサーバとＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）間のピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を測定するにあたり、エコーサーバを活用することによって適切なピンホール時間を発見することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、サービス提供環境の例を示した図である。
【図４】本発明の一実施形態における、サービス提供環境の他の例を示した図である。
【図５】本発明の一実施形態における、持続性管理方法の例を示したフローチャートである。
【図６】本発明の一実施形態における、ネットワーク障害とサーバ障害を選別的に診断する過程の例を示した図である。
【図７】本発明の一実施形態における、大略的なピンホール時間を探索する過程の例を示した図である。
【発明を実施するための形態】
【００１６】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００１７】
本発明の実施形態に係る持続性管理方法は、以下で説明される電子機器のように、クライアントがインストールされてサーバと通信してサービスの提供を受けるコンピュータ装置によって実行されてよい。このとき、コンピュータ装置には、本発明の一実施形態に係るコンピュータプログラム（上述したクライアント）がインストールおよび駆動されてよく、コンピュータ装置は、駆動するコンピュータプログラムの制御にしたがって本発明の一実施形態に係る持続性管理方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して持続性管理方法をコンピュータに実行させるためにコンピュータ読み取り可能記録媒体に格納されてよい。
【００１８】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００１９】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレット、ゲームコンソール（ｇａｍｅ  ｃｏｎｓｏｌｅ）、ウェアラブルデバイス、ＩｏＴ（ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ）デバイス、仮想現実（ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ）デバイス、拡張現実（ａｕｇｍｅｎｔｅｄ  ｒｅａｌｉｔｙ）デバイスなどがある。一例として、図１では、電子機器１（１１０）の例としてスマートフォンの形状を示しているが、本発明の実施形態において、電子機器１（１１０）は、実質的に無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信することのできる多様な物理的なコンピュータ装置のうちの１つを意味してよい。
【００２０】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００２１】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてよい。例えば、サーバ１５０は、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０と関連する第１サービスを提供するシステムであってよく、サーバ１６０も、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０と関連する第２サービスを提供するシステムであってよい。より具体的な例として、サーバ１５０は、ゲームサービスやコンテンツ提供サービスなどのようにネットワーク１７０を介して提供可能な多様なサービス（特に、モバイルサービス）を複数の電子機器１１０、１２０、１３０、１４０に提供するシステムであってよい。また、サーバ１６０は、以下で説明されるエコーサーバに対応してよい。
【００２２】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２では、電子機器に対する例として電子機器１（１１０）の内部構成を説明し、サーバに対する例としてサーバ１５０の内部構成を説明する。また、他の電子機器１２０、１３０、１４０やサーバ１６０も、上述した電子機器１（１１０）またはサーバ１５０と同一または類似の内部構成を有してよい。
【００２３】
電子機器１（１１０）とサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入力／出力インタフェース２１４、２２４を含んでよい。メモリ２１１、２２１は、コンピュータ読み取り可能記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ディスクドライブ、ＳＳＤ（ｓｏｉｌｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）のような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。ここで、ＲＯＭやディスクドライブ、ＳＳＤ、フラッシュメモリのような非一時的、永久大容量記憶装置は、メモリ２１１、２２１とは区分される別の永久格納装置として電子機器１（１１０）やサーバ１５０に含まれてもよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電気機器１（１１０）にインストールされ駆動するブラウザや特定のサービスを提供するために電子機器１（１１０）にインストールされたアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、メモリ２１１、２２１とは別のコンピュータ読み取り可能記録媒体からロードされてよい。このような別のコンピュータ読み取り可能記録媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータ読み取り可能記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能記録媒体ではない通信モジュール２１３、２２３を通じてメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）がネットワーク１７０を介して提供するファイルによってインストールされるコンピュータプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてよい。
【００２４】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【００２５】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、電子機器１（１１０）および／またはサーバ１５０が他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録装置に格納されたプログラムコードにしたがって生成した要求が、通信モジュール２１３の制御にしたがってネットワーク１７０を介してサーバ１５０に伝達されてよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）に受信されてもよい。例えば、通信モジュール２１３を通じて受信したサーバ１５０の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ２１２やメモリ２１１に伝達されてよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる格納媒体（上述した永久格納装置）に格納されてよい。
【００２６】
入力／出力インタフェース２１４は、入力／出力装置２１５とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を含んでよく、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイス（ｈａｐｔｉｃ  ｆｅｅｄｂａｃｋ  ｄｅｖｉｃｅ）などのような装置を含んでよい。他の例として、入力／出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。入力／出力装置２１５は、電子機器１（１１０）と１つの装置で構成されてもよい。また、サーバ１５０の入力／出力インタフェース２２４は、サーバ１５０と連結するかサーバ１５０が含むことのできる入力または出力のための装置（図示せず）とのインタフェースのための手段であってよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが、入力／出力インタフェース２１４を経てディスプレイに表示されてよい。
【００２７】
また、他の実施形態において、電子機器１（１１０）およびサーバ１５０は、図２の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入力／出力装置２１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（１１０）がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力／出力ポート、振動のための振動器などのような多様な構成要素が電子機器１（１１０）にさらに含まれるように実現されてよい。
【００２８】
図３は、本発明の一実施形態における、サービス提供環境の例を示した図である。図３は、クライアント３１０、サービスサーバ３２０、およびエコーサーバ３３０を開示している。
【００２９】
クライアント３１０は、上述した電子機器１（１１０）のようなコンピュータ装置にインストールされるクライアント用コンピュータプログラムであってよく、電子機器１（１１０）がネットワーク１７０を介してサービスサーバ３２０にアクセスし、サービスサーバ３２０が提供するサービスを利用することができるように電子機器１（１１０）を制御してよい。
【００３０】
サービスサーバ３２０は、ネットワーク１７０を介してクライアント３１０にサービスを提供する少なくとも１つのコンピュータ装置であってよく、エコーサーバ３３０は、クライアント３１０の制御にしたがって電子機器１（１１０）が送信するパケットを受信し、受信したパケットに対する応答を即時に電子機器１（１１０）に送信するように実現されるコンピュータ装置であってよい。
【００３１】
クライアント３１０は、サービスサーバ３２０にハートビート（ｈｅａｒｔｂｅａｔ）信号を送信してよい。ハートビート信号とは、サーバの状態を点検するために一定の時間単位で送信される特定の信号を意味するものであり、クライアント３１０も一定の周期ごとにハートビート信号をサービスサーバ３２０に送信してよい。この場合、サービスサーバ３２０は、受信したハートビート信号に対する応答信号をクライアント３１０に送信してよく、クライアント３１０は、受信した応答信号に基づいてサービスサーバ３２０の状態を点検してよい。
【００３２】
しかし、サービスサーバ３２０が正常にサービスを提供しているにもかかわらず、クライアント３１０がネットワーク１７０の状態（一例として、モバイル環境において、モバイル端末がアクセスネットワークに接続する状態）によっては、ハートビート信号に対する応答信号をサービスサーバ３２０から受信できない場合が発生することがある。上述したように、従来技術のクライアントは、このようなネットワーク障害（一例として、モバイル環境において、クライアントが陰影地域に位置することによってアクセスネットワークに接続できない状態や、アクセスネットワークの状態が良くなくてクライアントの接続を処理できない状態）を、サービスを提供するサーバの障害として誤判断したり、持続的なサービスが不可能であると誤判断したりしてしまうという問題がある。
【００３３】
この反面、本実施形態に係るクライアント３１０は、サービスサーバ３２０だけではなく、エコーサーバ３３０を識別することが可能であり、サービスサーバ３２０から応答信号が受信されない場合には、エコーサーバ３３０にパケットを送信してよい。エコーサーバ３３０がパケットを受信した場合、応答をクライアント３１０に送信してよく、このような応答をエコーサーバ３３０から受信した場合、クライアント３１０は、ネットワーク障害ではなくサービスサーバ３２０に問題があることが把握できるようになる。エコーサーバ３３０からも応答が受信されなかった場合、クライアント３１０は、サービスサーバ３２０の問題ではなくネットワーク１７０に問題があることが把握できるようになる。図３に示す点線の矢印は、ハートビート信号に対する応答信号が受信されなかった場合に、クライアント３１０とエコーサーバ３３０との間に、パケットとパケットに対する応答が送受信されることを意味する。
【００３４】
より正確な診断のために、クライアント３１０は、ハートビート信号と応答信号、そしてパケットとパケットに対する応答を、１回のみの交換ではなく複数回の交換により、サービスサーバ３２０の障害とネットワーク１７０の障害を選別的に診断してよい。例えば、クライアント３１０は、一定の周期ごとにハートビート信号をサービスサーバ３２０に送信している最中に、サービスサーバ３２０からハートビート信号に対する応答信号が受信されない場合、エコーサーバ３３０にパケットを送信してよい。このとき、エコーサーバ３３０からパケットに対する応答が受信された場合、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」（最初は０で初期化）を１だけ増加させ、次の周期のハートビート信号に対するサービスサーバ３２０の応答信号を待機してよい。次の周期のハートビート信号に対してもサービスサーバ３２０から応答信号が受信されない場合、もう一度エコーサーバ３３０にパケットを送信してよく、またもエコーサーバ３３０からパケットに対する応答が受信された場合、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」を１だけ増加させてよい。このように、サービスサーバ３２０からはハートビート信号に対する応答信号が受信されず、エコーサーバ３３０からはパケットに対する応答が受信される状況が連続的に繰り返されることによって「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」が予め設定された「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」を超過した状況になれば、クライアント３１０は、サービスサーバ３２０に障害が発生したと決定してよい。「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」が「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」を超過する前にハートビート信号に対する応答信号が受信されるか、またはエコーサーバ３３０からパケットに対する応答が受信されない場合には、一時的なネットワーク障害が発生したと決定してよく、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」は再び「０」に初期化されてよい。
【００３５】
言い換えれば、クライアント３１０は、サービスサーバ３２０からはハートビート信号に対する応答信号が受信されず、エコーサーバ３３０からはパケットに対する応答が受信された状況が、予め設定された回数以上で発生する場合、サービスサーバ３２０の障害を診断してよい。ここで、サービスサーバ３２０の障害を診断するということは、クライアント３１０が現在の状況をサービスサーバ３２０に障害が発生したものと決定し、これによる後続動作を処理（一例として、他のサービスサーバによるサービス連結の試行）することを意味してよい。
【００３６】
また、クライアント３１０は、サービスサーバ３２０からはハートビート信号に対する応答信号が受信されず、エコーサーバ３３０からもパケットに対する応答が受信されない状況が、予め設定された回数以上で発生する場合、ネットワーク１７０の障害を診断してよい。ここで、ネットワーク１７０の障害を診断するということは、クライアント３１０が現在の状況をネットワーク１７０に障害が発生したものと決定し、サービスサーバ３２０の持続的なサービスが可能であることによる後続動作を処理（一例として、サービスサーバ３２０との連結を待機するか、他のアクセスネットワークへの接続の試行）することを意味してよい。
【００３７】
このように、クライアント３１０は、サービスを提供するサービスサーバ３２０とは別のサーバであるエコーサーバ３３０を識別し、識別されたエコーサーバ３３０をサービス持続性管理のために活用することができる。
【００３８】
また、クライアント３１０は、エコーサーバ３３０を、ピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を探索するために活用しながらサービス持続性を管理してもよい。
【００３９】
図４は、本発明の一実施形態における、サービス提供環境の他の例を示した図である。図４は、図３を参照しながら説明したサービスサーバ３２０が、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）サーバ４１０と複数のサービスサーバ（サービスサーバ１（４２０）、サービスサーバ２（４３０））で実現された例を示している。ここでは、クライアント３１０がＮＡＴサーバ４１０を経てサービスサーバ１（４２０）と連結してサービスの提供を受けていると仮定する。
【００４０】
ＮＡＴサーバ４１０は、プライベートＩＰアドレスをパブリックＩＰアドレスに替えるのに使用する通信網のアドレス変換器の役割を担ってよく、クライアント３１０からの要請にしたがって対象となるサービスサーバ（本実施形態では、サービスサーバ１（４２０））とのピンホール（ｐｉｎｈｏｌｅ）を開いてよい。ここで、ピンホール時間とは、ピンホールが開いている時間を意味してよく、サービスサーバ１（４２０）は、ピンホールが開いている間だけクライアント３１０に信号を伝達することができる。言い換えれば、サービスサーバ１（４２０）は、クライアント３１０の要請がなくてはピンホールを自主的に開けることはできず、ピンホールが閉じれば、クライアント３１０からの要請にしたがって新たなピンホールが開かれるまでクライアント３１０に信号を送信することができなくなる。このとき、ピンホール時間は、サービスごとに互いに異なるように設定されてよく、クライアント３１０がこのようなピンホールを維持するためには、ピンホール時間を測定する必要がある。
【００４１】
例えば、ＮＡＴサーバ４１０とサービスサーバ１（４２０）との間に設定されたピンホール時間が３秒であると仮定する。また、クライアント３１０がサービスサーバ１（４２０）にハートビート信号を送信する時間周期が５秒であると仮定する。この場合、ＮＡＴサーバ４１０とサービスサーバ１（４２０）との間には３秒間のピンホールが設定され、２秒間閉じた後に再び３秒間ピンホールが設定された後に２秒間閉じるという状況が繰り返され、ピンホールが閉ざされる２秒間、サービスサーバ１（４２０）は、クライアント（３１０）に信号を送信することができなくなる。ハートビート信号を送信する時間周期が３秒以内である場合には、ＮＡＴサーバ４１０とサービスサーバ１（４２０）との間のピンホールは持続的に維持されてよい。言い換えれば、クライアント３１０は、ＮＡＴサーバ４１０とサービスサーバ１（４２０）との間のピンホールを維持するために、ハートビート信号を送信する時間周期をピンホール時間以内に維持する必要がある。したがって、クライアント３１０は、大略的なピンホール時間を認知する必要性（一例として、ハートビート信号を送信する時間周期を、少なくともどれ程の時間以内に設定しなければならないかを把握する必要）がある。
【００４２】
このようなピンホール時間の把握のために、クライアント３１０は、応答遅延時間Ｄが設定されたハートビート信号をサービスサーバ１（４２０）に送信してよい。ハートビート信号を受信したサーバ１（４２０）は、設定された応答遅延時間Ｄが経過した後に応答信号をクライアント３１０に送信してよい。クライアント３１０は、Ｄ＋ａ時間（ａは予め設定された時間）が経過した後にもサービスサーバ１（４２０）から応答信号が受信されない場合、エコーサーバ３３０にパケットを送信してよい。エコーサーバ３３０からパケットに対する応答が受信された場合、クライアント３１０は、ネットワーク１７０には問題がないと判断し、応答遅延時間Ｄが長すぎてピンホールが閉じてしまった関係性によってサービスサーバ１（４２０）が応答信号を送信できなかったか、またはサービスサーバ１（４２０）に障害が発生した可能性が存在することを認識できるようになる。この場合、クライアント３１０は、応答遅延時間Ｄを減らしたＤ’が設定されたハートビート信号をサービスサーバ１（４２０）に送信してよい。
【００４３】
例えば、応答遅延時間Ｄが５秒であり、ピンホール時間が３秒であると仮定する。応答遅延時間５秒が設定されたハートビート信号を受信したＮＡＴサーバ４１０は、ピンホールを設定してサービスサーバ１（４２０）にハートビート信号を送信してよく、サービスサーバ１（４２０）は、５秒後に応答信号を生成してＮＡＴサーバ４１０送信しようとする。しかし、ピンホール時間が３秒であり、ピンホールは既に閉まっているため、サービスサーバ１（４２０）は応答信号を送信することができなくなる。応答信号を受信することができなかったクライアント３１０は、エコーサーバ３３０にパケットを送信し、エコーサーバ３３０からパケットに対する応答を受信したクライアント３１０は、アクセスネットワークには問題がなく、応答遅延時間５秒が設定されたピンホール時間よりも長いため、サービスサーバ１（４２０）から応答信号を受けることができなかったという可能性を把握できるようになる。したがって、クライアント３１０は、応答遅延時間５秒を半分（実施形態によって応答遅延時間の減少量は異なってよい）である２．５秒に減らしてハートビート信号を再送してよい。この場合、サービスサーバ１（４２０）は、２．５秒後に応答信号を送信するようになり、ピンホール時間が３秒であるピンホールはまだ開いているため、応答信号はＮＡＴサーバ４１０を経てクライアント３１０に伝達されるようになる。この場合、クライアント３１０は、２．５秒が少なくともピンホール時間以内であるということが分かる。
【００４４】
クライアント３１０は、応答遅延時間を調節し続けながらハートビート信号を送信することにより、正確なピンホール時間を測定することも可能である。例えば、エコーサーバ３３０から持続的にパケットに対する応答が受信されると仮定するとき、サービスサーバ１（４２０）から応答信号を受けたクライアント３１０は、最初の応答遅延時間５秒と２回目の応答遅延時間２．５秒の中間である３．７５秒を応答遅延時間として設定してハートビート信号を送信してよい。この場合、３秒間のピンホール時間を考慮すると、クライアント３１０は応答信号を受けることができなく、したがって２．５秒と３．７５秒の中間である３．１２５秒の応答遅延時間で設定されたハートビート信号をサービスサーバ１（４２０）に再送してよい。この場合にも、３秒のピンホール時間を考慮すると、クライアント３１０は応答信号を受けることができなく、したがって２．５秒と３．１２５秒の中間である２．８１２５秒の応答遅延時間で設定されたハートビート信号をサービスサーバ１（４２０）に再送してよい。この場合には、３秒のピンホール時間を考慮すると、クライアント３１０が応答信号を受信できるようになり、したがって２．８１２５秒がピンホール時間以内であることが把握できるようになる。
【００４５】
適切なピンホール時間（上述した例では２．８１２５秒）が探索された後、クライアント３１０は、探索されたピンホール時間を周期としてハートビート信号を送信してよい。この場合、応答遅延時間は０秒に設定されてよい。２．８１２５秒は２．５秒に比べて長いため、クライアント３１０は、ハートビート信号の送信回数を減らしながらもピンホールを維持させることができるようになる。
【００４６】
エコーサーバ３３０からパケットに対する応答が持続的に受信され、応答遅延時間を最小（一例として、０秒）に減らしてもサービスサーバ１（４２０）から応答信号が受信されない場合、クライアント３１０は、サービスサーバ１（４２０）の障害を診断してよい。
【００４７】
エコーサーバ３３０からパケットに対する応答が受信されない場合、クライアント３１０は、サービスサーバ１（４２０）から応答信号を受信することができなかった理由が、ピンホール時間やサービスサーバ１（４２０）の障害による問題ではなく、アクセスネットワークの障害による問題であると決定してよい。したがって、クライアント３１０は、応答遅延時間はそのまま維持（一例として、最初の５秒）した状態で、ハートビート信号をサービスサーバ１（１１０）に送信してよい。サービスサーバ１（４２０）とエコーサーバ３３０の両方から一定カウント以上の応答がない場合、クライアント３１０は、ネットワークの障害を診断してよい。
【００４８】
このようにクライアント３１０は、ピンホールの維持のための適切なハートビート信号の送信周期（またはピンホール時間）を探索する過程においてエコーサーバ３３０を活用することにより、ネットワークの障害によってハートビート信号の送信周期やピンホール時間を誤測定するようになるという問題を解決することができる。
【００４９】
図５は、本発明の一実施形態における、持続性管理方法の例を示したフローチャートである。本実施形態に係る持続性管理方法は、上述したクライアント３１０がインストールおよび駆動される電子機器１（１１０）のようなコンピュータ装置によって実行されてよい。このとき、電子機器１（１１０）のプロセッサ２１２は、メモリ２１１が含むオペレーティングシステムのコードおよび／またはクライアント３１０のコードによる制御命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ２１２は、電子機器１（１１０）に格納されたコードが提供する制御命令にしたがって電子機器１（１１０）が図５の持続性管理方法の含む段階５１０〜５４０を実行するように電子機器１（１１０）を制御してよい。
【００５０】
段階５１０で、電子機器１（１１０）は、ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信してよい。ここで、サーバは、上述したサービスサーバ３２０やサービスサーバ１（４１０）に対応してよく、クライアント３１０によって電子機器１（１１０）で識別されてよい。
【００５１】
段階５２０で、電子機器１（１１０）は、応答信号を受信したか否かを確認してよい。このとき、電子機器１（１１０）は、サービスを提供するサーバから応答信号が受信された場合には再び段階５１０を実行してハートビート信号を周期的に送信してよく、サービスを提供するサーバから応答信号が受信されない場合には段階５３０を実行してよい。
【００５２】
段階５３０で、電子機器１（１１０）は、クライアントによって識別されるエコーサーバにパケットを送信してよい。クライアントは、上述したクライアント３１０に対応してよく、エコーサーバは、上述したエコーサーバ３３０に対応してよい。上述したように、エコーサーバは、受信したパケットに対して即時に応答を送信するように実現されてよく、障害が発生しないと仮定されてよい。
【００５３】
段階５４０で、電子機器１（１１０）は、エコーサーバからパケットに対する応答が受信されるか否かに基づいてサービス持続性の可否を決定してよい。サービス持続性の可否は、図３および図４を参照しながら上述したように、ネットワーク障害とサーバ障害を選別的に診断したり、ピンホールの維持のためのハートビート信号の送信周期（またはピンホール時間）の判別過程において活用されたりしてよい。
【００５４】
図６は、本発明の一実施形態における、ネットワーク障害とサーバ障害を選別的に診断する過程の例を示した図である。図６の段階６１０〜６５０は、図５を参照しながら説明した段階５４０に含まれて実行されてよい。
【００５５】
段階６１０で、電子機器１（１１０）は、パケットに対する応答を受信したか否かを確認してよい。このとき、電子機器１（１１０）は、エコーサーバからパケットに対する応答が受信された場合には段階６２０を、受信されない場合には段階６５０を実行してよい。
【００５６】
段階６２０で、電子機器１（１１０）は、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」を１だけ増加させてよい。エコーサーバからパケットに対する応答が受信されたということは、アクセスネットワークには問題がないことを意味してよく、したがってサーバ障害の可能性を意味してよい。実施形態によっては、エコーサーバからパケットに対する応答が受信されたということ自体をサーバの障害として設定してもよいが、より確実な診断のために、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」と「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」のような変数が活用されてよい。
【００５７】
段階６３０で、電子機器１（１１０）は、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」が「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」を超過するかを確認してよい。このとき、電子機器１（１１０）は、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」が「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」を超過する場合には段階６４０を実行してよく、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」が「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」を超過しない場合には段階５１０を再実行することにより、ハートビート信号が周期的にサービスを提供するサーバに送信されるようにしてよい。このとき、段階５２０で、ハートビート信号に対する応答信号がサーバから受信されない場合は、再び段階５３０によってエコーサーバにパケットが送信されてよく、再び段階５４０が実行されてよい。
【００５８】
「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」が「０」であれば、エコーサーバからパケットに対する応答が受信されたということ自体がサーバの障害を意味するものと設定された実施形態を示してよい。
【００５９】
段階６４０で、電子機器１（１１０）は、サーバの障害を診断してよい。上述したように、サーバの障害を診断するということは、クライアントが現在の状況をサーバに障害が発生したものと決定し、これによる後続動作を処理（一例として、他のサーバを経てサービス連結を試行）することを意味してよい。
【００６０】
段階６５０で、電子機器１（１１０）は、ネットワークの障害を診断した後、「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」を０に初期化してよい。言い換えれば、電子機器１（１１０）は、サーバからハートビート信号に対する応答信号を受信できなかったことはネットワークの障害によるものであり、サーバがサービス持続性を維持していると決定してよく、このために、サーバからの応答信号を待機しようと「ＮｏＲｅｓｐｏｎｓｅＣｏｕｎｔ」を０に初期化してよい。実施形態によっては、電子機器１（１１０）は、エコーサーバからパケットに対する応答が受信されなかった回数をカウントし、カウントされた回数が予め設定された回数を超過する場合にネットワーク障害を診断してもよい。この場合、予め設定された回数は、「ＭａｘＷａｉｔＲｅｓｐｏｎｓｅＣｏｕｎｔ」よりも少なくてもよい。
【００６１】
図７は、本発明の一実施形態における、大略的なピンホール時間を探索する過程の例を示した図である。段階７１０〜７３０は、図５を参照しながら説明した段階５１０〜段階５３０に対応してよいが、ピンホール時間の探索のために、詳細な進行段階は変更されてもよい。
【００６２】
段階７１０で、電子機器１（１１０）は、ネットワークを介してサービスを提供するサーバにハートビート（ｈｅａｒｔｂｅａｔ）信号を送信してよい。ここで、サーバは、上述したサービスサーバ３２０やサービスサーバ１（４１０）に対応してよく、クライアント３１０によって電子機器１（１１０）で識別されてよい。また、ハートビート信号には、サーバのための応答遅延時間Ｄが設定されてよい。
【００６３】
段階７２０で、電子機器１（１１０）は、応答信号を受信したか否かを確認してよい。このとき、電子機器１（１１０）は、サービスを提供するサーバから応答信号が受信された場合には再び段階７８０を実行してよく、応答信号が受信されない場合には段階７３０を実行してよい。
【００６４】
段階７３０で、電子機器１（１１０）は、クライアントによって識別されるエコーサーバにパケットを送信してよい。クライアントは、上述したクライアント３１０に対応してよく、エコーサーバは、上述したエコーサーバ３３０に対応してよい。上述したように、エコーサーバは、受信されるパケットに対して即時に応答を送信するように実現されてよく、障害が発生しないと仮定されてよい。
【００６５】
段階７４０で、電子機器１（１１０）は、パケットに対する応答を受信したか否かを確認してよい。電子機器１（１１０）は、応答が受信される場合には段階７５０を実行してよく、応答が受信されない場合には段階７９０を実行してよい。
【００６６】
段階７５０で、電子機器１（１１０）は、応答遅延時間を減らしてよい。上述したように、サービスを提供するサーバからは応答信号が受信されないが、エコーサーバからは応答が受信される場合には、サーバの障害、もしくは応答遅延時間がピンホール時間よりも長くてピンホールが閉じてしまった場合が考慮される。このとき、ピンホールが閉じた場合を判断するために、電子機器１（１１０）は、応答遅延時間を減らしてよい。
【００６７】
段階７６０で、電子機器１（１１０）は、応答遅延時間が予め設定された時間以下であるかを判断してよい。例えば、予め設定された時間が「０」であり、減った応答遅延時間が「０」の場合、これはピンホールが閉じて応答信号が受信されなかったのではなく、サーバに障害が発生したものと解釈されてよい。応答遅延時間が予め設定された時間よりも長い場合には、再び段階７１０が実行されてよい。このとき、段階７１０で送信されるハートビート信号には、段階７５０で減らされた応答遅延時間が設定されてよい。
【００６８】
段階７７０で、電子機器１（１１０）は、サーバの障害を診断してよい。上述したように、段階７６０で応答遅延時間が予め設定された時間以下の場合、電子機器１（１１０）はサーバの障害を診断してよく、ピンホール時間を探索するための過程は終了してよい。
【００６９】
段階７８０で、電子機器１（１１０）は、応答遅延時間をハートビート信号の送信周期として設定してよい。段階７２０で、ハートビート信号に対する応答信号が受信されるということは、応答遅延時間が少なくともピンホール時間以内であることを意味してよく、現在の応答遅延時間ごとにハートビート信号を送信すればピンホールを維持できるということを意味してよい。したがって、電子機器１（１１０）は、段階７８０で応答遅延時間をハートビート信号の送信周期として設定することにより、ピンホールが維持されるようにすることができる。実施形態によっては、上述したように、より正確なピンホール時間を測定することにより、ピンホールを維持しながらも、ハートビート信号の送信周期を最大化することもできる。
【００７０】
段階７９０で、電子機器１（１１０）は、ネットワーク障害を診断してよい。段階７４０で、エコーサーバからパケットに対する応答が受信されない場合、電子機器１（１１０）は、アクセスネットワークの障害のようなネットワーク障害を診断してよい。上述したように、電子機器１（１１０）は、エコーサーバからパケットに対する応答を連続的に受信できなかった回数をカウントし、このような回数が予め設定された回数を超過する場合にはネットワーク障害を診断してもよい。
【００７１】
このように、本発明の実施形態によると、サービスを提供するサーバの問題とネットワークの問題をクライアントで区分して診断することができる。また、クライアントにおいて、サービスを提供するサーバから応答がない場合、別のエコーサーバにパケットを送信し、エコーサーバからの応答の有無に応じてサーバの障害およびネットワークの障害を選別的に診断することができる。さらに、サービスを提供するサーバとＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）間のピンホール時間（ｐｉｎｈｏｌｅ  ｔｉｍｅ）を測定するにあたり、エコーサーバを活用することによって適切なピンホール時間を発見することができる。
【００７２】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００７３】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置（ｖｉｒｔｕａｌ  ｅｑｕｉｐｍｅｎｔ）、コンピュータ格納媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータ読み取り可能記録媒体に格納されてよい。
【００７４】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能媒体に記録されてよい。前記コンピュータ読み取り可能媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータによって実行可能なプログラムを継続して格納するものであっても、実行またはダウンロードのために臨時格納するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよいが、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどを含み、プログラム命令語が格納されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを流通するアプリストアやその他の多様なソフトウェアを供給あるいは流通するサイト、サーバなどで管理する記録媒体あるいは格納媒体が挙げられてもよい。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【００７５】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００７６】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００７７】
３１０：クライアント
３２０：サービスサーバ
３３０：エコーサーバ
【図１】
2019087993.tif 000003
【図２】
2019087993.tif 000004
【図３】
2019087993.tif 000005
【図４】
2019087993.tif 000006
【図５】
2019087993.tif 000007
【図６】
2019087993.tif 000008
【図７】
2019087993.tif 000009
【手続補正書】
【提出日】平成30年10月9日(2018.10.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
しかし、サービスサーバ３２０が正常にサービスを提供しているにもかかわらず、クライアント３１０がネットワーク１７０の状態（一例として、モバイル環境において、モバイル端末がアクセスネットワークに接続する状態）によっては、ハートビート信号に対する応答信号をサービスサーバ３２０から受信できない場合が発生することがある。上述したように、従来技術のクライアントは、このようなネットワーク障害（一例として、モバイル環境において、クライアントが隠蔽地域に位置することによってアクセスネットワークに接続できない状態や、アクセスネットワークの状態が良くなくてクライアントの接続を処理できない状態）を、サービスを提供するサーバの障害として誤判断したり、持続的なサービスが不可能であると誤判断したりしてしまうという問題がある。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
図５は、本発明の一実施形態における、持続性管理方法の例を示したフローチャートである。本実施形態に係る持続性管理方法は、上述したクライアント３１０がインストールおよび駆動される電子機器１（１１０）のようなコンピュータ装置によって実行されてよい。このとき、電子機器１（１１０）のプロセッサ２１２は、メモリ２１１が含むオペレーティングシステムのコードおよび／またはクライアント３１０のコードによる制御命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ２１２は、電子機器１（１１０）に格納されたコードが提供する制御命令にしたがって電子機器１（１１０）が、図５の持続性管理方法が含む段階５１０〜５４０を実行するよう、電子機器１（１１０）を制御してよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
段階５４０で、電子機器１（１１０）は、エコーサーバからパケットに対する応答が受信されるか否かに基づいてサービス持続性の可否を決定してよい。サービス持続性の可否は、図３および図４を参照しながら上述したように、ネットワーク障害とサーバ障害を選別的に診断したり、ピンホールの維持のためのハートビート信号の送信周期（またはピンホール時間）を判別したりする過程において活用されたりしてよい。