(57)【要約】【課題】適切なサーバに端末を接続させること。【解決手段】サーバは、ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び端末とは異なる、第２の装置と通信する、通信部と、複数のサーバと端末間の応答時間と、複数のサーバと第２の装置間の応答時間と、複数のサーバのアプリケーションプログラムの処理時間とに基づいて、複数のサーバから、一のサーバを、端末の接続先として決定する、判断部と、を備える。【選択図】図１
2018173916.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び前記端末とは異なる、第２の装置と通信する、通信部と、
前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する、判断部と、
を備える、サーバ。
【請求項２】
前記複数のサーバに含まれるサーバを識別する情報と、該サーバと前記端末間の応答時間と、該サーバと前記第２の装置間の応答時間と、該サーバの前記処理時間とを対応付けた、総遅延時間テーブルを格納する、記憶部をさらに備え、
前記判断部は、前記複数のサーバに含まれるサーバ毎に、該サーバと前記端末間の応答時間と、該サーバと前記第２の装置間の応答時間と、該サーバの前記処理時間との合計値を、総遅延時間として算出し、算出した前記総遅延時間に基づいて、前記複数のサーバから、一のサーバを、前記接続先として決定する、請求項１に記載のサーバ。
【請求項３】
前記記憶部は、２以上の時点に対応する、サーバ毎の前記総遅延時間を含む、総遅延時間履歴テーブルを格納し、
前記判断部は、前記総遅延時間履歴テーブルを参照し、総遅延時間の時系列での変化に基づいて、前記複数のサーバから、一のサーバを、前記接続先として決定する、請求項２に記載のサーバ。
【請求項４】
前記判断部は、前記総遅延時間履歴テーブルを参照し、時刻の経過に伴い、前記総遅延時間が減少する、１又は２以上のサーバから、一のサーバを、前記接続先として決定する、請求項３に記載のサーバ。
【請求項５】
自サーバが、前記端末の前記接続先として決定された場合、前記第２の装置からデータを取得し、該端末からの要求に応じて、前記第２の装置から取得した前記データを、該端末に送信する、請求項１乃至４のいずれか一に記載のサーバ。
【請求項６】
複数のサーバと自端末間の応答時間を測定し、測定した該応答時間を、前記複数のサーバに含まれる、２以上のサーバに対して通知する、測定部を備え、
前記複数のサーバのうちの一のサーバから自端末の接続先を指示された場合、指示された該接続先に、データ及び／又は処理を要求する、端末。
【請求項７】
複数のサーバと、
ネットワークを介して、前記複数のサーバと接続する、端末と、
前記複数のサーバ及び前記端末とは異なる、第２の装置と、
を含んで構成され、
前記複数のサーバに含まれるサーバは、
前記端末及び第２の装置と通信する、通信部と、
前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する、判断部と、
を備える、通信システム。
【請求項８】
前記端末は、前記複数のサーバと自端末との応答時間を、前記複数のサーバに含まれる２以上のサーバに通知し、
前記複数のサーバに含まれるサーバは、自サーバと前記端末間の応答時間と、自サーバと前記第２の装置間の応答時間と、自サーバの前記処理時間とを、前記複数のサーバに含まれる、１又は２以上のサーバに対して通知する、請求項７に記載の通信システム。
【請求項９】
ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び前記端末とは異なる、第２の装置と通信する、通信部を備えるサーバの制御方法であって、
前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する工程を含む、サーバの制御方法。
【請求項１０】
ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び前記端末とは異なる、第２の装置と通信する、通信部を備えるサーバを制御するコンピュータに実行させるプログラムであって、
前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する処理を、前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、端末、制御システム、制御方法及びプログラムに関する。
【背景技術】
【０００２】
大規模なデータセンタを用いたクラウドコンピューティング環境においては、データセンタ（サーバ）が、ユーザ端末に対してデータ配信等を行う。しかし、ユーザ端末が、遠方に配置されたデータセンタに接続する場合、通信遅延等が発生する。
【０００３】
そこで、比較的規模の小さい複数のサーバ（エッジサーバ）を、分散して配置し、ユーザ端末（クライアント）が近傍のエッジサーバに接続する技術（エッジコンピューティング）が利用されている。ユーザ端末が遠方に配置された特定のサーバ（データセンタ等）に接続する場合より、ユーザ端末が分散して配置されたエッジサーバに接続することで、ユーザ端末とサーバ間での通信遅延を軽減できる。さらに、エッジサーバを分散して配置することで、サーバの負荷が軽減される。
【０００４】
例えば、ユーザ端末が、特定の範囲内の地域に特化した処理の実行、特定の範囲内の地域に特化したデータの取得等を要求するとする。その場合、エッジコンピューティングにおいては、ユーザ端末は、該範囲内の地域に存在するサーバ（エッジサーバ）に接続してもよい。そして、該エッジサーバは、ユーザ端末が要求する処理の実行、及び必要なデータの提供等をユーザ端末に提供してもよい。
【０００５】
また、エッジコンピューティングにおいては、複数のエッジサーバが、分散して処理を実行してもよい。
【０００６】
特許文献１においては、複数のゲーム装置から、サーバとして動作させるゲーム装置を決定する技術が記載されている。具体的には、特許文献１に記載された技術においては、ゲーム装置は、該ゲーム装置と他のゲーム装置間における、所定データの授受にかかる時間を計測する。そして、特許文献１に記載された技術においては、ゲーム装置は、計測した該時間に基づいて、複数のゲーム装置のうちの少なくとも一のゲーム装置を、サーバとして動作させるゲーム装置として決定する。
【０００７】
特許文献２においては、管理ＰＣ（Personal Computer）が、ユーザ端末からのアクセス頻度に基づいて、各エッジサーバの負荷を算出する技術が記載されている。そして、特許文献２に記載された技術においては、管理ＰＣは、算出した負荷に基づいて、デジタルコンテンツをユーザ端末に配信するエッジサーバを決定する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００７／０５８０８９号
【特許文献２】特開２００４−２６５３９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【００１０】
上述の通り、ユーザ端末が分散して配置されたエッジサーバに接続することで、ユーザ端末とサーバ間での通信遅延を軽減できる。さらに、エッジサーバを分散して配置することで、サーバの負荷が軽減される。
【００１１】
しかし、ユーザ端末が、物理的位置の近いエッジサーバに接続する場合、適切なエッジサーバに接続できない場合がある。例えば、エッジサーバのネットワーク環境、ネットワーク構成等に応じて、ユーザ端末とエッジサーバ間の応答時間は異なる。また、エッジサーバが処理を実行する処理時間に応じて、ユーザ端末とエッジサーバ間の応答時間は異なる。
【００１２】
特許文献１に記載された技術においては、特定のサーバ（データセンタ等）が、エッジサーバ（ゲーム装置）に対して、データを配信することについて記載されていない。従って、特許文献１に記載された技術においては、各エッジサーバが、必要なデータを保有することが必要である。そのため、特許文献１に記載された技術においては、エッジサーバが保有するデータサイズが大きいほど、エッジサーバの負荷が増大する。その結果、ユーザ端末とエッジサーバ間での応答時間が増大するおそれがある。
【００１３】
また、特許文献２に記載された技術においては、管理ＰＣは、デジタルコンテンツをユーザ端末に配信するエッジサーバを決定する時に、エッジサーバが処理を実行する処理時間を考慮していない。従って、特許文献２に記載された技術においては、管理ＰＣが、複数のエッジサーバから、通信負荷が相対的に低いエッジサーバを選択した場合であっても、ユーザ端末とエッジサーバ間の応答時間を削減できないおそれがある。
【００１４】
そこで、本発明は、適切なサーバに端末を接続させることに貢献するサーバ、端末、制御システム、制御方法及びプログラムを提供することを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の視点によれば、サーバが提供される。該サーバは、ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び前記端末とは異なる、第２の装置と通信する、通信部を備える。
さらに、該サーバは、前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する、判断部を備える。
【００１６】
本発明の第２の視点によれば、端末が提供される。該端末は、複数のサーバと自端末間の応答時間を測定し、測定した該応答時間を、前記複数のサーバに含まれる、２以上のサーバに対して通知する、測定部を備える。
さらに、該端末は、前記複数のサーバのうちの一のサーバから自端末の接続先を指示された場合、指示された該接続先に、データ及び／又は処理を要求する。
【００１７】
本発明の第３の視点によれば、通信システムが提供される。該通信システムは、複数のサーバと、ネットワークを介して、前記複数のサーバと接続する、端末と、前記複数のサーバ及び前記端末とは異なる、第２の装置と、を含んで構成される。
前記複数のサーバに含まれるサーバは、前記端末及び第２の装置と通信する、通信部を備える。
さらに、前記複数のサーバに含まれるサーバは、前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する、判断部を備える。
【００１８】
本発明の第４の視点によれば、サーバの制御方法が提供される。該サーバは、ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び前記端末とは異なる、第２の装置と通信する、通信部を備える。
該制御方法は、前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する工程を含む。
なお、本方法は、複数のサーバと前記端末間の応答時間を取得するサーバという、特定の機械に結び付けられている。
【００１９】
本発明の第５の視点によれば、端末の制御方法が提供される。該制御方法は、複数のサーバと自端末間の応答時間を測定する工程を含む。
さらに、該制御方法は、測定された該応答時間を、前記複数のサーバに含まれる、２以上のサーバに対して通知する工程を含む。
さらに、該制御方法は、前記複数のサーバのうちの一のサーバから自端末の接続先を指示された場合、指示された該接続先に、データ及び／又は処理を要求する工程を含む。
なお、本方法は、複数のサーバと自端末間の応答時間を測定する端末という、特定の機械に結び付けられている。
【００２０】
本発明の第６の視点によれば、プログラムが提供される。該プログラムは、ネットワークを介して、端末と通信するとともに、自サーバを含む複数のサーバ及び前記端末とは異なる、第２の装置と通信する、通信部を備えるサーバを制御するコンピュータに実行させるプログラムである。
該プログラムは、前記複数のサーバと前記端末間の応答時間と、前記複数のサーバと前記第２の装置間の応答時間と、前記複数のサーバのアプリケーションプログラムの処理時間とに基づいて、前記複数のサーバから、一のサーバを、前記端末の接続先として決定する処理を、前記コンピュータに実行させる。
【００２１】
本発明の第７の視点によれば、他のプログラムが提供される。該プログラムは、端末を制御するコンピュータに実行させるプログラムである。
該プログラムは、複数のサーバと自端末間の応答時間を測定する処理を、前記コンピュータに実行させる。
さらに、該プログラムは、測定された該応答時間を、前記複数のサーバに含まれる、２以上のサーバに対して通知する処理を、前記コンピュータに実行させる。
さらに、該プログラムは、前記複数のサーバのうちの一のサーバから自端末の接続先を指示された場合、指示された該接続先に、データ及び／又は処理を要求する処理を、前記コンピュータに実行させる。
なお、これらのプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２２】
本発明の各視点によれば、適切なサーバに端末を接続させることに貢献するサーバ、端末、制御システム、制御方法及びプログラムが提供される。
【図面の簡単な説明】
【００２３】
【図１】一実施形態の概要を説明するための図である。
【図２】通信システムの全体構成の一例を示すブロック図である。
【図３】第１の実施形態に係るエッジサーバＡ２１０及びユーザ端末３００の内部構成の一例を示すブロック図である。
【図４】総遅延時間テーブル２１５１の一例を示す図である。
【図５】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図６】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図７】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図８】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図９】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図１０】第２の実施形態に係るエッジサーバＡ２１０及びユーザ端末３００の内部構成の一例を示すブロック図である。
【図１１】総遅延時間履歴テーブル２１５２の一例を示す図である。
【発明を実施するための形態】
【００２４】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各ブロック図のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。
【００２５】
上述の通り、適切なサーバに端末を接続させることに貢献するサーバが望まれる。
【００２６】
そこで、一例として、図１に示すサーバ１０００を提供する。サーバ１０００は、通信部１００１と、判断部１００２とを備える。なお、図示しないが、サーバ１０１０、１０２０は、サーバ１０００と同様に、通信部１００１と、判断部１００２とを備える。
【００２７】
通信部１００１は、ネットワークを介して、端末１１００と通信する。さらに、通信部１００１は、ネットワークを介して、自サーバを含む複数のサーバ（例えば、図１に示すサーバ１０００、１０１０、１０２０）及び端末１１００とは異なる、第２の装置１２００と通信する。
【００２８】
判断部１００２は、複数のサーバと端末１１００間の応答時間と、複数のサーバと第２の装置１２００間の応答時間と、複数のサーバのアプリケーションプログラムの処理時間とに基づいて、複数のサーバから、一のサーバを、端末１１００の接続先として決定する。なお、端末１１００の接続先のサーバとは、端末がデータ及び／又は処理を要求するサーバを意味する。
【００２９】
ここで、サーバ１０００、１０１０、１０２０と端末１１００間のネットワーク環境、ネットワーク構成等に応じて、サーバ１０００、１０１０、１０２０の負荷は異なる。また、サーバ１０００、１０１０、１０２０の性能等に応じて、サーバ１０００、１０１０、１０２０が処理を実行する処理時間は異なる。
【００３０】
また、例えば、データセンタ等（第２の装置１２００）が、サーバ１０００、１０１０、１０２０に対して、データを配信するとする。その場合、サーバ１０００、１０１０、１０２０とデータセンタ間のネットワーク環境、ネットワーク構成等に応じて、サーバ１０００、１０１０、１０２０の負荷は異なる。
【００３１】
しかし、上記の通り、判断部１００２は、複数のサーバと端末１１００間の応答時間と、複数のサーバと第２の装置１２００間の応答時間と、サーバのアプリケーションプログラムの処理時間とに基づいて、端末１１００の接続先を決定する。そのため、サーバ１０００、１０１０、１０２０は、ネットワーク環境、ネットワーク構成、サーバ１０００、１０１０、１０２０の負荷、性能等に応じて、適宜、端末１１００の接続先として、適切なサーバを決定できる。
【００３２】
従って、サーバ１０００、１０１０、１０２０は、適切なサーバに端末１１００を接続させることに貢献する。
【００３３】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。以下の説明では、上記の第２の装置の一例として、エッジサーバに対してデータを配信する、データセンタを例示して説明する。また、以下の説明では、上記のサーバを、エッジサーバと呼ぶ。また、以下の説明では、上記の端末を、ユーザ端末と呼ぶ。
【００３４】
図２は、本実施形態に係る通信システムの全体構成の一例を示すブロック図である。本実施形態に係る通信システムは、１又は２以上のユーザ端末３００と、２以上のエッジサーバと、データセンタ（第２の装置）１００とを含んで構成される。なお、図２は、一つのユーザ端末３００を示すが、これは、ユーザ端末３００の数を一つに限定する趣旨ではない。通信システムは、２以上のユーザ端末３００を含んで構成されてもよい。同様に、図２は、３つのエッジサーバ（エッジサーバＡ２１０、エッジサーバＢ２２０、エッジサーバＣ２３０）を示すが、これは、エッジサーバの数を３つに限定する趣旨ではない。通信システムは、２又は４以上のエッジサーバを含んで構成されてもよい。
【００３５】
エッジサーバＡ２１０とデータセンタ１００間は、経路１１を介して通信する。また、エッジサーバＡ２１０とエッジサーバＢ２２０間は、経路２１を介して通信する。また、エッジサーバＡ２１０とユーザ端末３００間は、経路３１を介して通信する。
【００３６】
エッジサーバＢ２２０とデータセンタ１００間は、経路１２を介して通信する。エッジサーバＢ２２０とエッジサーバＣ２３０間は、経路２２を介して通信する。エッジサーバＢ２２０とユーザ端末３００間は、経路３２を介して通信する。
【００３７】
エッジサーバＣ２３０とデータセンタ間は、経路１３を介して通信する。エッジサーバＣ２３０とユーザ端末３００間は、経路３３を介して通信する。
【００３８】
ユーザ端末３００は、ユーザが使用する端末装置（コンピュータ）である。ユーザ端末３００の詳細は後述する。
【００３９】
エッジサーバＡ２１０、エッジサーバＢ２２０、エッジサーバＣ２３０は、夫々、異なる位置に、分散して配置されるサーバ装置（コンピュータ）である。エッジサーバＡ２１０、エッジサーバＢ２２０、エッジサーバＣ２３０の少なくともいずれかは、ユーザ端末３００と接続し、データの送受信、ユーザ端末３００に対する処理等を実行する。つまり、エッジサーバＡ２１０、エッジサーバＢ２２０、エッジサーバＣ２３０の少なくともいずれかは、ユーザ端末３００に対して、データ及び／又は処理を提供する。
【００４０】
また、本実施形態に係る各エッジサーバ（エッジサーバＡ２１０、エッジサーバＢ２２０、エッジサーバＣ２３０）は、夫々、他のエッジサーバと同一の機能を備えるものとする。つまり、ユーザ端末３００は、複数のエッジサーバの内のいずれか一に接続することで、他のエッジサーバに接続する場合と同様のデータを送受信可能であるものとする。また、ユーザ端末３００は、複数のエッジサーバの内のいずれか一に接続することで、接続先の該エッジサーバは、他のエッジサーバと同様の処理を、ユーザ端末３００に対して実行するものとする。
【００４１】
データセンタ１００は、エッジサーバが接続可能なサーバ装置（コンピュータ）である。さらに、データセンタ１００は、エッジサーバに対してデータを配信する。
【００４２】
次に、エッジサーバ及びユーザ端末３００の内部構成について詳細に説明する。
【００４３】
図３は、エッジサーバＡ２１０及びユーザ端末３００の内部構成の一例を示すブロック図である。なお、図示しないが、エッジサーバＢ２２０、エッジサーバＣ２３０は、エッジサーバＡ２１０と同じモジュールを含んで構成されるものとする。
【００４４】
まず、図３を参照しながら、エッジサーバの内部構成について詳細に説明する。
【００４５】
エッジサーバ（図３においては、代表してエッジサーバＡ２１０）は、入出力部（通信部とも呼ぶ）２１００と、データセンタ・ネットワーク遅延測定部２１１０と、演算処理部２１２０と、アプリケーション遅延測定部２１２１と、判断部２１３０と、切り替え部２１４０と、エッジサーバ記憶部（記憶部とも呼ぶ）２１５０とを含んで構成される。
【００４６】
エッジサーバ記憶部２１５０は、エッジサーバ（図３においては、代表してエッジサーバＡ２１０）を動作させるために必要な情報を記憶する。また、エッジサーバ記憶部２１５０は、総遅延時間テーブル２１５１を格納する。総遅延時間テーブル２１５１の詳細は後述する。エッジサーバ記憶部２１５０は、例えば、磁気ディスク装置や光ディスク装置、半導体メモリ等によって実現されてもよい。
【００４７】
入出力部２１００は、エッジサーバＡ２１０の内部で、各モジュールに接続する。具体的には、入出力部２１００は、データセンタ・ネットワーク遅延測定部２１１０と、演算処理部２１２０と、判断部２１３０と、切り替え部２１４０とに接続する。入出力部２１００は、エッジサーバＡ２１０の外部との通信処理を制御する。具体的には、入出力部２１００は、ネットワーク経路（例えば、図２に示す経路１１、３１）を介して、データセンタ１００及びユーザ端末３００と通信する。さらに、入出力部２１００は、ネットワーク経路（例えば、図２に示す経路２１）を介して、他のエッジサーバ（例えば、エッジサーバ２２０）と通信する。
【００４８】
また、入出力部２１００は、各エッジサーバとユーザ端末３００間の応答時間を、第１の伝達時間として、ユーザ端末３００から、取得する。そして、入出力部２１００は、ユーザ端末３００から取得した応答時間を、総遅延時間テーブル２１５１に格納（登録）する。
【００４９】
また、入出力部２１００は、自エッジサーバとは異なるエッジサーバと、データセンタ１００間の応答時間を、第２の伝達時間として、各エッジサーバから取得する。入出力部２１００は、各エッジサーバから取得した応答時間を、総遅延時間テーブル２１５１に格納（登録）する。
【００５０】
また、他のエッジサーバが、ユーザ端末３００の接続先のエッジサーバを変更することを決定したとする。その場合、入出力部２１００は、ユーザ端末３００が自エッジサーバに接続することを示す通知を、ユーザ端末３００から受信する。つまり、入出力部２１００は、ユーザ端末３００が自エッジサーバに対して、データ及び／又は処理を要求することを示す通知を、ユーザ端末３００から受信する。該通知を受信したエッジサーバは、データ、アプリケーション等を転送するように、データセンタ１００に対して要求する。そして、入出力部２１００は、データセンタ１００から、データ、アプリケーション等を受信する。
【００５１】
データセンタ・ネットワーク遅延測定部２１１０は、入出力部２１００と、判断部２１３０とに接続する。データセンタ・ネットワーク遅延測定部２１１０は、データセンタ１００から自エッジサーバまでの応答時間を、第３の伝達時間として測定する。そして、データセンタ・ネットワーク遅延測定部２１１０は、測定した第３の伝達時間を、総遅延時間テーブル２１５１に格納（登録）する。つまり、データセンタ・ネットワーク遅延測定部２１１０は、データセンタ１００からエッジサーバＡ２１０までの、ネットワークの遅延時間を、測定及び記録する。さらに、データセンタ・ネットワーク遅延測定部２１１０は、自エッジサーバとは異なるエッジサーバに、測定した第３の伝達時間を通知する。
【００５２】
同様に、各エッジサーバのデータセンタ・ネットワーク遅延測定部２１１０は、データセンタ１００から自エッジサーバまでのネットワークの遅延時間を、測定及び記録する。さらに、各エッジサーバは、自エッジサーバとは異なるエッジサーバに、測定した伝達時間を通知する。
【００５３】
演算処理部２１２０は、入出力部２１００と、アプリケーション遅延測定部２１２１とに接続する。演算判断部２１２０は、ユーザ端末３００が必要とするアプリケーションプログラム（以下、単にアプリケーションと呼ぶ）を実行する。そして、演算判断部２１２０は、入出力部２１００を介してデータの入出力を行う。
【００５４】
アプリケーション遅延測定部２１２１は、演算処理部２１２０と、判断部２１３０とに接続する。アプリケーション遅延測定部２１２１は、演算処理部２１２０がアプリケーションを実行する時間を、処理時間として測定する。さらに、アプリケーション遅延測定部２１２１は、測定した処理時間を、総遅延時間テーブル２１５１に格納（登録）する。つまり、アプリケーション遅延測定部２１２１は、エッジサーバＡにおけるアプリケーションの実行時間を、測定及び記録する。
【００５５】
判断部２１３０は、入出力部２１００とデータセンタ・ネットワーク遅延測定部２１１０と、アプリケーション遅延測定部２１２１と、切り替え部２１４０とに接続する。判断部２１３０は、総遅延時間テーブル２１５１を管理する。具体的には、判断部２１３０は、総遅延時間テーブル２１５１を参照し、各エッジサーバに対応する総遅延時間を算出する。そして、判断部２１３０は、算出した総遅延時間を、総遅延時間テーブル２１５１に格納（登録）する。判断部２１３０は、算出した総遅延時間に基づいて、ユーザ端末３００に対して処理を提供するエッジサーバを決定する。
【００５６】
より具体的には、判断部２１３０は、各エッジサーバに対応する、第１の伝達時間と、第２の伝達時間と、第３の伝達時間と、処理時間との和を、総遅延時間として算出する。判断部２１３０は、総遅延時間が相対的に短いエッジサーバの優先順位が、相対的に高くなるように、エッジサーバの優先順位を決定する。例えば、判断部２１３０は、総遅延時間が、相対的に最も短いエッジサーバを、ユーザ端末３００に対して処理を提供するエッジサーバとして決定してもよい。
【００５７】
図４は、総遅延時間テーブル２１５１の一例を示す図である。図４を参照すると、エッジサーバＡ２１０の総遅延時間は、４２ｍｓ（millisecond；ミリ秒）である。また、エッジサーバＢ２２０の総遅延時間は、１６ｍｓである。また、エッジサーバＣ２３０の総遅延時間は、２０ｍｓである。ここで、判断部２１３０は、総遅延時間が、相対的に最も短いエッジサーバを、ユーザ端末３００に対して処理を提供するエッジサーバとして決定するとする。その場合、判断部２１３０は、エッジサーバＢ２２０を、ユーザ端末３００に対して処理を提供するエッジサーバとして決定する。
【００５８】
切り替え部２１４０は、判断部２１３０と、入出力部２１００とに接続する。
【００５９】
切り替え部２１４０は、判断部２１３０の判断結果に基づいて、ユーザ端末３００が、データ及び／又は処理を要求するエッジサーバを切り替えるように、ユーザ端末３００に指示する。つまり、切り替え部２１４０は、判断部２１３０の判断結果に基づいて、ユーザ端末３００が、接続先のエッジサーバを切り替えるように、ユーザ端末３００に指示する。さらに、切り替え部２１４０は、ユーザ端末３００が、データ及び／又は処理を要求することを、切替先のエッジサーバに対して通知する。
【００６０】
入出力部２１００は、ＮＩＣ（Network Interface Card）を用いて実現されてもよい。データセンタ・ネットワーク遅延測定部２１１０、演算処理部２１２０、アプリケーション遅延測定部２１２１、判断部２１３０、切り替え部２１４０は、ＣＰＵ（Central Processing Unit）を用いて実現されてもよい。エッジサーバ記憶部２１５０は、半導体メモリ等を用いて実現されてもよい。
【００６１】
次に、ユーザ端末３００の内部構成について詳細に説明する。
【００６２】
ユーザ端末３００は、エッジサーバ・ネットワーク遅延測定部（測定部とも呼ぶ）３００１を含んで構成される。なお、ユーザ端末３００は、通信部（図示せず）、制御部（図示せず）、記憶部（図示せず）等を含んで構成されるものとする。
【００６３】
ユーザ端末３００の通信部（図示せず）は、ユーザ端末３００の外部との通信処理を制御する。例えば、ユーザ端末３００の通信部（図示せず）は、ＮＩＣを用いて実現されてもよい。また、ユーザ端末３００の制御部（図示せず）は、ユーザ端末３００の全体を制御する。例えば、ユーザ端末３００の制御部（図示せず）は、ＣＰＵを用いて実現されてもよい。また、ユーザ端末３００の記憶部（図示せず）は、ユーザ端末３００を動作させるために、必要な情報を記憶する。例えば、ユーザ端末３００の記憶部（図示せず）は、半導体メモリ等を用いて実現されてもよい。
【００６４】
エッジサーバ・ネットワーク遅延測定部３００１は、各エッジサーバとユーザ端末３００間の応答時間を、第１の伝達時間として測定する。そして、エッジサーバ・ネットワーク遅延測定部３００１は、測定した第１の伝達時間を、ユーザ端末３００の接続先のエッジサーバに通知する。
【００６５】
また、ユーザ端末３００は、接続先のエッジサーバを切り替えることを示す指示を、エッジサーバから受け付けた場合、接続先のエッジサーバを変更する（切り替える）。そして、ユーザ端末３００は、変更先のエッジサーバに対して、データ及び／又は処理を要求する。
【００６６】
例えば、接続先のエッジサーバを、エッジサーバＢ２２０に切替前は、ユーザ端末３００は、エッジサーバＡ２１０に対して、データ及び／又は処理を要求していたとする。その場合、接続先のエッジサーバを切替前の状態においては、図２に示す経路１１及び経路３１が利用される。一方、接続先のエッジサーバを切替後の状態においては、図２に示す経路１２及び経路３２が利用される。
【００６７】
次に、本実施形態に係る通信システムの動作について詳細に説明する。
【００６８】
まず、各エッジサーバとユーザ端末３００間の応答時間（第１の伝達時間）を取得する処理について説明する。
【００６９】
図５は、各エッジサーバとユーザ端末３００間の応答時間（第１の伝達時間）を取得する処理の一例を示すシーケンス図である。なお、図５は、本実施形態に係る通信システムの動作の一例であり、処理の順序を限定する趣旨ではない。
【００７０】
ステップＳ１において、ユーザ端末３００のエッジサーバ・ネットワーク遅延測定部３００１は、エッジサーバＡ２１０に応答要求を送信する。エッジサーバＡ２１０は、ユーザ端末から応答要求を受信すると、ユーザ端末３００にＡＣＫ（Acknowledgement；肯定応答）を送信する（ステップＳ２）。ユーザ端末３００のエッジサーバ・ネットワーク遅延測定部３００１は、エッジサーバＡ２１０とユーザ端末３００間の応答時間を、エッジサーバＡ２１０と、エッジサーバＢ２２０と、エッジサーバＣ２３０とに通知する（ステップＳ３）。
【００７１】
ステップＳ４において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＡ２１０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００７２】
ステップＳ５において、エッジサーバＢ２２０の入出力部２１００は、エッジサーバＡ２１０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００７３】
ステップＳ６において、エッジサーバＣ２３０の入出力部２１００は、エッジサーバＡ２１０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００７４】
ステップＳ７において、ユーザ端末３００のエッジサーバ・ネットワーク遅延測定部３００１は、エッジサーバＢ２２０に応答要求を送信する。エッジサーバＢ２２０は、ユーザ端末から応答要求を受信すると、ユーザ端末３００にＡＣＫを送信する（ステップＳ８）。ユーザ端末３００のエッジサーバ・ネットワーク遅延測定部３００１は、エッジサーバＢ２２０とユーザ端末３００間の応答時間を、エッジサーバＡ２１０と、エッジサーバＢ２２０と、エッジサーバＣ２３０とに通知する（ステップＳ９）。
【００７５】
ステップＳ１０において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＢ２２０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００７６】
ステップＳ１１において、エッジサーバＢ２２０の入出力部２１００は、エッジサーバＢ２２０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００７７】
ステップＳ１２において、エッジサーバＣ２３０の入出力部２１００は、エッジサーバＢ２２０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００７８】
ステップＳ１３において、ユーザ端末３００のエッジサーバ・ネットワーク遅延測定部３００１は、エッジサーバＣ２３０に応答要求を送信する。エッジサーバＣ２３０は、ユーザ端末から応答要求を受信すると、ユーザ端末３００にＡＣＫを送信する（ステップＳ１４）。ユーザ端末３００のエッジサーバ・ネットワーク遅延測定部３００１は、エッジサーバＣ２３０とユーザ端末３００間の応答時間を、エッジサーバＡ２１０と、エッジサーバＢ２２０と、エッジサーバＣ２３０とに通知する（ステップＳ１５）。
【００７９】
ステップＳ１６において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＣ２３０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００８０】
ステップＳ１７において、エッジサーバＢ２１０の入出力部２１００は、エッジサーバＣ２３０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００８１】
ステップＳ１８において、エッジサーバＢ２１０の入出力部２１００は、エッジサーバＣ２３０とユーザ端末３００間の応答時間を、総遅延時間テーブルに格納する。
【００８２】
次に、各エッジサーバとデータセンタ１００間の応答時間（第２の伝達時間、及び第３の伝達時間）を取得する処理について説明する。
【００８３】
図６は、各エッジサーバとデータセンタ１００間の応答時間（第２の伝達時間、及び第３の伝達時間）を取得する処理の一例を示すシーケンス図である。なお、図６は、本実施形態に係る通信システムの動作の一例であり、処理の順序を限定する趣旨ではない。
【００８４】
ステップＳ３１において、エッジサーバＡ２１０のデータセンタ・ネットワーク遅延測定部２１１０は、データセンタ１００に応答要求を送信する。エッジサーバＡ２１０から応答要求を受信すると、エッジサーバＡにＡＣＫを送信する（ステップＳ３２）。エッジサーバＡ２１０のデータセンタ・ネットワーク遅延測定部２１１０は、エッジサーバＡ２１０とデータセンタ１００間の応答時間を、エッジサーバＢ２２０と、エッジサーバＣ２３０とに通知する（ステップＳ３３）
【００８５】
ステップＳ３４において、エッジサーバＡ２１０のデータセンタ・ネットワーク遅延測定部２１１０は、エッジサーバＡ２１０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００８６】
ステップＳ３５において、エッジサーバＢ２２０の入出力部２１００は、エッジサーバＡ２１０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００８７】
ステップＳ３６において、エッジサーバＣ２３０の入出力部２１００は、エッジサーバＡ２１０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００８８】
ステップＳ３７において、エッジサーバＢ２２０のデータセンタ・ネットワーク遅延測定部２１１０は、データセンタ１００に応答要求を送信する。データセンタ１００は、エッジサーバＢ２２０から応答要求を受信すると、エッジサーバＢ２２０にＡＣＫを送信する（ステップＳ３８）。エッジサーバＢ２２０のデータセンタ・ネットワーク遅延測定部２１１０は、エッジサーバＢ２２０とデータセンタ１００間の応答時間を、エッジサーバＡ２１０と、エッジサーバＣ２３０に通知する（ステップＳ３９）。
【００８９】
ステップＳ４０において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＢ２２０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００９０】
ステップＳ４１において、エッジサーバＢ２２０のデータセンタ・ネットワーク遅延測定部２１１０は、エッジサーバＢ２２０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００９１】
ステップＳ４２において、エッジサーバＣ２３０の入出力部２１００は、エッジサーバＢ２２０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００９２】
ステップＳ４３において、エッジサーバＣ２３０のデータセンタ・ネットワーク遅延測定部２１１０は、データセンタ１００に応答要求を送信する。データセンタ１００は、エッジサーバＣ２３０から応答要求を受信すると、エッジサーバＣ２３０にＡＣＫを送信する（ステップＳ４４）。エッジサーバＣ２３０のデータセンタ・ネットワーク遅延測定部２１１０は、エッジサーバＣ２３０とデータセンタ１００間の応答時間を、エッジサーバＡ２１０と、エッジサーバＢ２２０とに通知する（ステップＳ４５）。
【００９３】
ステップＳ４６において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＣ２３０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００９４】
ステップＳ４７において、エッジサーバＢ２２０の入出力部２１００は、エッジサーバＣ２３０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００９５】
ステップＳ４８において、エッジサーバＣ２３０のデータセンタ・ネットワーク遅延測定部２１１０は、エッジサーバＣ２３０とデータセンタ１００間の応答時間を、総遅延時間テーブルに格納する。
【００９６】
次に、アプリケーションを実行する処理時間を取得する処理について説明する。
【００９７】
図７は、アプリケーションを実行する処理時間を取得する処理の一例を示す図である。なお、図７は、本実施形態に係る通信システムの動作の一例であり、処理の順序を限定する趣旨ではない。
【００９８】
ステップＳ５１において、エッジサーバＡ２１０のアプリケーション遅延測定部２１２１は、演算処理部２１２０がアプリケーションを実行する時間を、処理時間として測定する。エッジサーバＡ２１０のアプリケーション遅延測定部２１２１は、測定した処理時間を、エッジサーバＢ２２０と、エッジサーバＣ２３０とに通知する（ステップＳ５２）。
【００９９】
ステップＳ５３において、エッジサーバＡ２１０のアプリケーション遅延測定部２１２１は、測定した処理時間を、総遅延時間テーブルに格納する。
【０１００】
ステップＳ５４において、エッジサーバＢ２２０の入出力部２１００は、エッジサーバＡ２１０の処理時間を、総遅延時間テーブルに格納する。
【０１０１】
ステップＳ５５において、エッジサーバＣ２３０の入出力部２１００は、エッジサーバＡ２１０の処理時間を、総遅延時間テーブルに格納する。
【０１０２】
ステップＳ５６において、エッジサーバＢ２２０のアプリケーション遅延測定部２１２１は、演算処理部２１２０がアプリケーションを実行する時間を、処理時間として測定する。エッジサーバＢ２２０のアプリケーション遅延測定部２１２１は、測定した処理時間を、エッジサーバＡ２１０と、エッジサーバＣ２３０とに通知する（ステップＳ５７）。
【０１０３】
ステップＳ５８において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＢ２２０の処理時間を、総遅延時間テーブルに格納する。
【０１０４】
ステップＳ５９において、エッジサーバＢ２２０のアプリケーション遅延測定部２１２１は、測定した処理時間を、総遅延時間テーブルに格納する。
【０１０５】
ステップＳ６０において、エッジサーバＣ２３０の入出力部２１００は、エッジサーバＢ２２０の処理時間を、総遅延時間テーブルに格納する。
【０１０６】
ステップＳ６１において、エッジサーバＣ２３０のアプリケーション遅延測定部２１２１は、演算処理部２１２０がアプリケーションを実行する時間を、処理時間として測定する。エッジサーバＣ２３０のアプリケーション遅延測定部２１２１は、測定した処理時間を、エッジサーバＡ２１０と、エッジサーバＢ２２０とに通知する（ステップＳ６２）。
【０１０７】
ステップＳ６３において、エッジサーバＡ２１０の入出力部２１００は、エッジサーバＣ２３０の処理時間を、総遅延時間テーブルに格納する。
【０１０８】
ステップＳ６４において、エッジサーバＢ２２０の入出力部２１００は、エッジサーバＣ２３０の処理時間を、総遅延時間テーブルに格納する。
【０１０９】
ステップＳ６５において、エッジサーバＣ２３０のアプリケーション遅延測定部２１２１は、測定した処理時間を、総遅延時間テーブルに格納する。
【０１１０】
次に、ユーザ端末３００の接続先を変更するか否かを判断する処理について説明する。
【０１１１】
図８は、ユーザ端末３００の接続先を変更するか否かを判断する処理の一例を示すシーケンス図である。なお、本実施形態に係る通信システムは、図８に示す処理を実行する前に、図５、図６、図７に示す処理を実行済みであるものとする。また、以下の説明においては、ユーザ端末３００は、エッジサーバＡ２１０に接続している状態であるとする。つまり、ユーザ端末３００は、エッジサーバＡ２１０に対して、データ及び／又は処理を要求している状態であるとする。さらに、以下の説明においては、ユーザ端末３００の接続先を変更するか否かを、エッジサーバＡ２１０が判断するものとする。
【０１１２】
ステップＳ７１において、エッジサーバＡ２１０の判断部２１３０は、総遅延時間テーブルを参照し、各エッジサーバに対応する総遅延時間を算出する。
【０１１３】
ステップＳ７２において、エッジサーバＡ２１０の判断部２１３０は、各エッジサーバに対応する総遅延時間に基づいて、ユーザ端末３００の接続先のエッジサーバを決定する。ここで、ユーザ端末３００の接続先のエッジサーバとは、ユーザ端末３００が、データ及び／又は処理を要求する対象のエッジサーバである。
【０１１４】
ステップＳ７３において、エッジサーバＡ２１０とは異なるエッジサーバを、ユーザ端末３００の接続先として決定したか否かを、エッジサーバＡ２１０の判断部２１３０は判断する。エッジサーバＡ２１０とは異なるエッジサーバを、ユーザ端末３００の接続先として決定した（ステップＳ７３のＹｅｓ分岐）とする。その場合、エッジサーバＡ２１０の切り替え部２１４０は、接続先のエッジサーバを切り替えるように、ユーザ端末３００に指示する（ステップＳ７４）。一方、エッジサーバＡ２１０を、ユーザ端末３００の接続先として決定した（ステップＳ７３のＮｏ分岐）とする。その場合、エッジサーバＡ２１０は、ユーザ端末３００に対して、データ及び／又は処理を提供する状態を継続する（ステップＳ７５）。
【０１１５】
次に、ユーザ端末３００の接続先を切り替える処理について説明する。
【０１１６】
図９は、ユーザ端末３００の接続先を切り替える処理の一例を示すシーケンス図である。なお、以下の説明では、エッジサーバＡ２１０の判断部２１３０が、エッジサーバＢ２２０を、ユーザ端末３００に対してデータ及び／又は処理を提供するエッジサーバとして決定したとする。
【０１１７】
ステップＳ８１において、エッジサーバＡ２１０の切り替え部２１４０は、接続先のエッジサーバを、エッジサーバＡ２１０からエッジサーバＢ２２０に切り替えるように、ユーザ端末３００に指示する。
【０１１８】
ステップＳ８２において、ユーザ端末３００は、接続先のエッジサーバを、エッジサーバＡ２１０からエッジサーバＢ２２０に切り替える。
【０１１９】
ステップＳ８３において、エッジサーバＡ２１０の切り替え部２１４０は、ユーザ端末３００が接続することを、エッジサーバＢ２２０に通知する。
【０１２０】
ステップＳ８４において、ユーザ端末３００は、エッジサーバＢ２２０に、データ及び／又は処理を要求する。
【０１２１】
以上のように、本実施形態に係る通信システムにおいては、エッジサーバが、各エッジサーバとユーザ端末３００間の応答時間と、各エッジサーバとデータセンタ１００間の応答時間と、アプリケーションを実行する時間との合計時間を、総遅延時間として算出する。そして、本実施形態に係る通信システムにおいては、エッジサーバが、算出した総遅延時間に基づいて、ユーザ端末３００にデータ及び／又は処理を提供するエッジサーバを、変更するか否かを判断する。従って、本実施形態に係る通信システムは、適切なエッジサーバにユーザ端末３００を接続させることに貢献する。
【０１２２】
さらに、本実施形態に係る通信システムにおいては、エッジサーバは、動的に、ユーザ端末３００にデータ及び／又は処理を提供するエッジサーバを変更する。従って、本実施形態に係る通信システムは、ユーザ端末３００が接続するエッジサーバを、動的に切り替えることができ、エッジサーバを適切に選択することに貢献する。
【０１２３】
また、ネットワークの経路上、又はエッジサーバに障害が発生した場合、応答時間（第１の伝達時間〜第３の伝達時間）及び／又は処理時間が増加する。しかし、本実施形態に係る通信システムにおいては、ネットワークの経路上、又はエッジサーバに障害が発生した場合であっても、ユーザ端末３００が接続するエッジサーバを、動的に切り替えることができる。従って、本実施形態に係る通信システムは、ネットワーク経路上に障害が発生した場合であっても、ユーザ端末３００に対するサービスの提供を継続することに貢献する。
【０１２４】
［第２の実施形態］
次に、第２の実施形態について、図面を用いてより詳細に説明する。
【０１２５】
本実施形態は、切替先のエッジサーバが、ユーザ端末からの指示を受け付ける前に、データ、アプリケーション等をデータセンタから取得する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【０１２６】
本実施形態に係る通信システムの全体構成は、図２に示す通りである。また、本実施形態に係るエッジサーバ及びユーザ端末３００の内部構成は、図３に示す通りである。
【０１２７】
本実施形態に係るエッジサーバの入出力部２１００は、ユーザ端末３００が自エッジサーバに接続することを示す通知を、切替前のエッジサーバから受信する。そして、該通知を受信したエッジサーバは、データ、アプリケーション等を転送するように、データセンタ１００に対して要求する。そして、入出力部２１００は、データセンタ１００から、データ、アプリケーション等を受信する。
【０１２８】
つまり、本実施形態に係るエッジサーバの入出力部２１００は、ユーザ端末３００からの指示を受け付ける前に、データ、アプリケーション等を転送するように、データセンタ１００に対して要求する。従って、本実施形態に係る通信システムは、第１の実施形態と同様の効果を奏すると共に、ユーザ端末３００が、接続先のエッジサーバを切り替える場合に、より一層遅延なく、サービスを継続することに貢献する。
【０１２９】
［第３の実施形態］
次に、第３の実施形態について、図面を用いてより詳細に説明する。
【０１３０】
本実施形態は、総遅延時間の履歴を管理する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【０１３１】
本実施形態に係る通信システムの全体構成は、図２に示す通りである。また、本実施形態に係るエッジサーバＡ２１０の内部構成は、図１０に示す通りである。図３に示すエッジサーバＡ２１０と、図１０に示すエッジサーバＡ２１０との相違点は、図１０に示すエッジサーバＡ２１０のエッジサーバ記憶部２１５０は、総遅延時間履歴テーブル２１５２を格納する点である。なお、本実施形態に係るエッジサーバＢ２２０、及びエッジサーバＣ２３０は、図１０に示すエッジサーバＡ２１０と同様のモジュールを含んで構成されるものとする。
【０１３２】
本実施形態に係る判断部２１３０は、ユーザ端末３００が接続先のエッジサーバを切り替えるか否かを、総遅延時間の履歴に基づいて判断する。具体的には、本実施形態に係るエッジサーバ記憶部２１５０は、ユーザ端末３００が接続先のエッジサーバを切り替えるか否かを、総遅延時間履歴テーブル２１５２に基づいて判断する。
【０１３３】
より具体的には、判断部２１３０は、総遅延時間履歴テーブル２１５２に基づいて、ユーザ端末３００の移動方向を推定する。具体的には、エッジサーバに対応する総遅延時間が段階的に減少した場合、ユーザ端末３００が該エッジサーバに近づく方向に移動している、と判断部２１３０は推定する。一方、エッジサーバに対応する総遅延時間が段階的に増加した場合、ユーザ端末３００が該エッジサーバから離れる方向に移動している、と判断部２１３０は推定する。
【０１３４】
そして、判断部２１３０は、ユーザ端末３００との距離が減少するエッジサーバの優先順位が高くなるように、エッジサーバの優先順位を決定する。例えば、判断部２１３０は、ユーザ端末３００の移動方向に位置し、ユーザ端末３００との距離が相対的に最も短いエッジサーバを、ユーザ端末３００に対して処理を提供するエッジサーバとして決定してもよい。
【０１３５】
図１１は、総遅延時間履歴テーブル２１５２の一例を示す図である。図１１は、エッジサーバ毎に、１２０ｓｅｃ（second；秒）前、６０ｓｅｃ前、現在の総遅延時間を示す。図１１を参照すると、時間経過に伴い、エッジサーバＣ２３０に対応する総遅延時間が減少している。そのため、ユーザ端末３００がエッジサーバＣ２３０に近づく方向に移動している、と判断部２１３０は推定する。また、図１１を参照すると、時間経過に伴い、エッジサーバＡ２１０に対応する総遅延時間が増加している。そのため、ユーザ端末３００がエッジサーバＡ２１０から離れる方向に移動している、と判断部２１３０は推定する。
【０１３６】
そして、判断部２１３０は、図１１に示す総遅延時間履歴テーブル２１５２に基づいて、エッジサーバＣ２３０を、ユーザ端末３００に対して処理を提供するエッジサーバとして決定してもよい。
【０１３７】
以上のように、本実施形態に係る通信システムにおいては、エッジサーバは、各エッジサーバに対応する総遅延時間に基づいて、ユーザ端末３００の移動方向を推定する。そして、本実施形態に係る本実施形態に係る通信システムにおいては、エッジサーバは、ユーザの移動方向に基づいて、ユーザ端末３００が接続するエッジサーバを切り替える。従って、本実施形態に係る通信システムは、ユーザ端末３００が接続するエッジサーバを、動的に切り替えることができるとともに、より一層適切なエッジサーバに、ユーザ端末３００を接続させることに貢献する。
【０１３８】
また、本実施形態に係る通信システムは、ユーザ端末３００の移動方向を推定し、ユーザ端末３００が接続するエッジサーバを切り替えることで、より一層遅延なく、サービスを継続することに貢献する。
【０１３９】
上述の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１４０】
（付記１）上記の第１の視点に係るサーバの通りである。
【０１４１】
（付記２）前記複数のサーバに含まれるサーバを識別する情報と、該サーバと前記端末間の応答時間と、該サーバと前記第２の装置間の応答時間と、該サーバの前記処理時間とを対応付けた、総遅延時間テーブルを格納する、記憶部をさらに備え、前記判断部は、前記複数のサーバに含まれるサーバ毎に、該サーバと前記端末間の応答時間と、該サーバと前記第２の装置間の応答時間と、該サーバの前記処理時間との合計値を、総遅延時間として算出し、算出した前記総遅延時間に基づいて、前記複数のサーバから、一のサーバを、前記接続先として決定する、付記１に記載のサーバ。
【０１４２】
（付記３）前記記憶部は、２以上の時点に対応する、サーバ毎の前記総遅延時間を含む、総遅延時間履歴テーブルを格納し、前記判断部は、前記総遅延時間履歴テーブルを参照し、総遅延時間の時系列での変化に基づいて、前記複数のサーバから、一のサーバを、前記接続先として決定する、付記２に記載のサーバ。
【０１４３】
（付記４）前記判断部は、前記総遅延時間履歴テーブルを参照し、時刻の経過に伴い、前記総遅延時間が減少する、１又は２以上のサーバから、一のサーバを、前記接続先として決定する、付記３に記載のサーバ。
【０１４４】
（付記５）自サーバが、前記端末の前記接続先として決定された場合、前記第２の装置からデータを取得し、該端末からの要求に応じて、前記第２の装置から取得した前記データを、該端末に送信する、付記１乃至４のいずれか一に記載のサーバ。
【０１４５】
（付記６）上記第２の視点に係る端末の通りである。
【０１４６】
（付記７）上記第３の視点に係る通信システムの通りである。
【０１４７】
（付記８）前記端末は、前記複数のサーバと自端末との応答時間を、前記複数のサーバに含まれる２以上のサーバに通知し、前記複数のサーバに含まれるサーバは、自サーバと前記端末間の応答時間と、自サーバと前記第２の装置間の応答時間と、自サーバの前記処理時間とを、前記複数のサーバに含まれる、１又は２以上のサーバに対して通知する、付記７に記載の通信システム。
【０１４８】
（付記９）前記複数のサーバに含まれるサーバは、前記判断部が、前記複数のサーバから、一のサーバを、前記端末の前記接続先として決定した場合、該端末が、データ及び／又は処理を該一のサーバに要求するように、該端末に指示する、切り替え部をさらに備える、付記７又は８に記載の通信システム。
【０１４９】
（付記１０）上記第４の視点に係るサーバの制御方法の通りである。
【０１５０】
（付記１１）上記第５の視点に係る端末の制御方法の通りである。
【０１５１】
（付記１２）上記第６の視点に係るプログラムの通りである。
【０１５２】
（付記１３）上記第７の視点に係る他のプログラムの通りである。
【０１５３】
上記の付記１０、１２に示す形態は、付記１に示す形態と同様に、付記２〜５に示す形態に展開することが可能である。
【０１５４】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１５５】
１００  データセンタ
１１、１２、１３、２１、２２、３１、３２、３３  経路
２１０  エッジサーバＡ
２２０  エッジサーバＢ
２３０  エッジサーバＣ
３００  ユーザ端末
１０００、１０１０、１０２０  サーバ
１００１  通信部
１００２  判断部
１１００  端末
１２００  第２の装置
２１００  入出力部
２１１０  データセンタ・ネットワーク遅延測定部
２１２０  演算処理部
２１２１  アプリケーション遅延測定部
２１３０  判断部
２１４０  切り替え部
２１５０  エッジサーバ記憶部
２１５１  総遅延時間テーブル
２１５２  総遅延時間履歴テーブル
３００１  エッジサーバ・ネットワーク遅延測定部
【図１】
2018173916.tif 000003
【図２】
2018173916.tif 000004
【図３】
2018173916.tif 000005
【図４】
2018173916.tif 000006
【図５】
2018173916.tif 000007
【図６】
2018173916.tif 000008
【図７】
2018173916.tif 000009
【図８】
2018173916.tif 000010
【図９】
2018173916.tif 000011
【図１０】
2018173916.tif 000012
【図１１】
2018173916.tif 000013