(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032389
(43)【公開日】2024-03-12
(54)【発明の名称】プロキシ装置、プロキシ方法およびプログラム
(51)【国際特許分類】
H04L 47/125 20220101AFI20240305BHJP
H04L 67/2871 20220101ALI20240305BHJP
【FI】
H04L47/125
H04L67/2871
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022136009
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(72)【発明者】
【氏名】小此木 謙一
(72)【発明者】
【氏名】鈴木 理基
(72)【発明者】
【氏名】長野 知幸
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA02
5K030HC09
5K030LE03
5K030MB06
(57)【要約】
【課題】ネットワーク遅延を考慮してNFインスタンスの選択を行うことで効率化を図ることができるプロキシ装置を提供する。
【解決手段】クライアントのNFインスタンスからリクエストを取得するリクエスト取得部と、前記リクエスト取得部によって取得された前記リクエストに応じて、ネットワーク遅延を含む処理遅延に基づいて、サーバのNFインスタンスを選択するNFインスタンス選択部と、を備えるプロキシ装置。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クライアントのNFインスタンスからリクエストを取得するリクエスト取得部と、
前記リクエスト取得部によって取得された前記リクエストに応じて、ネットワーク遅延を含む処理遅延に基づいて、サーバのNFインスタンスを選択するNFインスタンス選択部と、
を備えるプロキシ装置。
【請求項2】
前記NFインスタンス選択部は、レポジトリインスタンスに前記サーバのNFインスタンスの照会を行う、
請求項1に記載のプロキシ装置。
【請求項3】
複数のエージェントを有しており、
前記処理遅延は、前記エージェント間の通信処理遅延を含む、
請求項1または請求項2に記載のプロキシ装置。
【請求項4】
前記NFインスタンス選択部は、前記リクエストのタイムアウト値に基づいて、前記サーバのNFインスタンスを選択する、
請求項1または請求項2に記載のプロキシ装置。
【請求項5】
リクエスト取得部が、クライアントのNFインスタンスからリクエストを取得し、
NFインスタンス選択部が、前記リクエスト取得部によって取得された前記リクエストに応じて、ネットワーク遅延を含む処理遅延に基づいて、サーバのNFインスタンスを選択する、
プロキシ方法。
【請求項6】
プロキシ装置を構成するコンピューターに、
クライアントのNFインスタンスからリクエストを取得する機能と、
取得された前記リクエストに応じて、ネットワーク遅延を含む処理遅延に基づいて、サーバのNFインスタンスを選択する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プロキシ装置、プロキシ方法およびプログラムに関する。
【背景技術】
【0002】
5GC(5G Core)でサービスベースドアーキテクチャー(SBA:Service-Based Architecture)が採用されている(例えば、非特許文献1-2参照)。
SBA内のネットワークファンクション(NF:Network Function)のインスタンスの選択に関する技術が知られている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】3GPP(登録商標) TS 23.501“System architecture for the 5G System (5GS)”
【非特許文献2】Tulja Vamshi Kiran Buyakar et al.,“Prototyping and Load Balancing the Service Based Architecture of 5G Core using NFV”,2019 IEEE Conference on Network Softwarization (Netsoft),p.228-232
【非特許文献3】Liang Bao et al.,“Performance Modeling and Workflow Scheduling of Microservice-Based Applications in Clouds”,IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS,VOL.30,NO.9,SEPTEMBER 2019
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のNFのインスタンス(NFインスタンス)の選択は、プロデューサー(Producer)によりNFの負荷情報のみに基づいて行われていた。
なお、NFインスタンスはNFセット(NF set)と呼ばれる複数のNFインスタンスの集合から選択される必要があるが、NFセット内のNFインスタンスは地理的に冗長な構成が組まれる場合がある。
また、NFインスタンス間にサービスコミュニケーションプロキシ(SCP:Service Communication Proxy)と呼ばれるプロキシ装置が配置されるため、NFインスタンス間の処理遅延が増加することが考えられる。
【0005】
本開示は、このような事情を考慮してなされたもので、ネットワーク遅延を考慮してNFインスタンスの選択を行うことで効率化を図ることができるプロキシ装置、プロキシ方法およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【0006】
一構成例として、クライアントのNFインスタンスからリクエストを取得するリクエスト取得部と、前記リクエスト取得部によって取得された前記リクエストに応じて、ネットワーク遅延を含む処理遅延に基づいて、サーバのNFインスタンスを選択するNFインスタンス選択部と、を備えるプロキシ装置である。
【発明の効果】
【0007】
本開示に係るプロキシ装置、プロキシ方法およびプログラムによると、ネットワーク遅延を考慮してNFインスタンスの選択を行うことで効率化を図ることができる。
【図面の簡単な説明】
【0008】
【
図1】5GC アーキテクチャの概略的な構成例を示す図である。
【
図2A】NF/NFサービスインタラクションのコミュニケーションモデルの一例を示す図である。
【
図2B】NF/NFサービスインタラクションのコミュニケーションモデルの一例を示す図である。
【
図2C】NF/NFサービスインタラクションのコミュニケーションモデルの一例を示す図である。
【
図2D】NF/NFサービスインタラクションのコミュニケーションモデルの一例を示す図である。
【
図3】SCPを利用した全体構成の概略的な一例を示す図である。
【
図4】実施形態に係るプロキシ装置の概略的な機能ブロックの構成を示す図である。
【
図5】実施形態に係る第1モデルの概略的な構成を示す図である。
【
図6】実施形態に係る第2モデルの概略的な構成を示す図である。
【
図7】実施形態に係る想定モデルの概略的な構成を示す図である。
【
図8】実施形態に係るインスタンスの処理遅延保持テーブルの一例を示す図である。
【
図9】実施形態に係るプロキシエージェントの処理遅延保持テーブルの一例を示す図である。
【
図10】実施形態に係るインスタンス登録リクエストの一例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照し、実施形態について説明する。
【0010】
[5GC アーキテクチャ]
図1は、5GC アーキテクチャ1の概略的な構成例を示す図である(詳細は、非特許文献1参照)。
図1には、NSSF(Network Slice Selection Function)11、NEF(Network Exposure Function)12、NRF(Network Repository Function)13、PCF(Policy Control Function)14、UDM(Unified Data Management)15、AF(Application Function)16、EASDF(Edge Application Server Discovery Function)17、NSSAAF(Network Slice-specific and SNPN Authentication and Authorization Function)18、AUSF(Authentication Server Function)19、AMF(Access and Mobility Management Function)20、SMF(Session Management Function)21、SCP22、NSACF(Network Slice Admission Control Function)23、UE(User Equipment)24、(R)AN((Radio) Access Network)25、UPF(User Plane Function)26、DN(Data Network)27が示されている。
【0011】
5Gにおいて、コントロールプレーン(C-Plane)の構成として、SBAが採用されている。SBAでは、C-Planeの機能単位でNFに分割される。そして、それぞれのNFが疎結合し、NF間ではAPI(Application Programming Interface)を利用して連携することが行われる。
【0012】
図2A~
図2Dを参照して、NF間のコミュニケーションモデルの例を示す。
図2Aおよび
図2BはDirect方式の例であり、
図2Cおよび
図2DはIndirect方式の例である。
図2A、
図2B、
図2C、
図2Dは、それぞれ、NF/NFサービスインタラクションのコミュニケーションモデルの一例を示す図である。
【0013】
図2Aの例では、コンシューマー(Consumer)111がプロデューサー112にサービスリクエスト(Service Request)を送信し、プロデューサー112がコンシューマー111にサービスレスポンス(Service Response)を送信し、コンシューマー111がプロデューサー112に後続のリクエスト(Subsequent Request)を送信する。
【0014】
図2Bの例では、コンシューマー131がネットワークレポジトリファンクション(NRF)133にディスカバリ(Discovery)を送信し、NRF133がコンシューマー131にNFプロファイル(NF profile(s))を送信する。
ここで、NFプロファイルには、対象のNFインスタンスの負荷状態を保持することができ、この情報に基づいて負荷分散およびプロデューサー132のNFインスタンスの選択を実行することが可能である。
コンシューマー131はNFセットまたはNFインスタンスを選択する。これによりプロデューサー132が選択される。コンシューマー131と選択されたプロデューサー132との通信は、概略的に、
図2Aの場合と同様である。
【0015】
図2Cの例では、コンシューマー151がNRF153にディスカバリを送信し、NRF153がコンシューマー151にNFプロファイルを送信する。
コンシューマー151はNFセットまたはNFインスタンスを選択する。これによりプロデューサー152が選択される。
コンシューマー151はSCP154にサービスリクエスト(Service Request)を送信し、SCP154はプロデューサー152にサービスリクエストを送信する。この際、SCP154は、NRF153からパラメーターを取得してもよい。
プロデューサー152はSCP154にレスポンス(Response)を送信し、SCP154はコンシューマー151にレスポンスを送信する。
コンシューマー151は、SCP154に後続のリクエストを送信し、SCP154はプロデューサー152に後続のリクエストを送信する。
【0016】
図2Dの例では、コンシューマー171はSCP174にサービスリクエスト(Service Request)およびパラメーターを送信し、SCP174はプロデューサー172にサービスリクエストを送信する。この際、SCP174は、当該パラメーターを用いて、NRF173にディスカバリを送信し、NRF173からNFプロファイルを受信する。そして、SCP174は、NFインスタンスを選択する。
プロデューサー172はSCP174にレスポンスを送信し、SCP174はコンシューマー171にレスポンスを送信する。
コンシューマー171は、SCP174に後続のリクエストを送信し、SCP174はプロデューサー172に後続のリクエストを送信する。
【0017】
ここで、NF間の連携向上と、柔軟なスケールアウトを目的に、サービスフレームワーク(Service Framework)の見直しが行われた結果、Rel16より以下の機能が追加されている。
第1に、
図2Cおよび
図2Dのように、Indirect方式が追加されている。そして、SCPがNFのディスカバリなどを実行し、信号のルーティング処理を実行することで、NFのコンシューマーが簡素化されている。
第2に、NFセット/NFサービスセットが追加されている。NFセット内のすべてのインスタンスは同一のコンテキストを保持するため、1つのインスタンスが処理不可になった際に他のインスタンスでカバーすることができる。
同一のNFセット内のNFは、サービスの可用性を高めるために、異なるデータセンター(DC)または異なる対地にデプロイされてもよい。
【0018】
図3は、SCPを利用した全体構成の概略的な一例を示す図である。
図3の例では、リージョン231(RegionA)において、データセンター251(DC1)にNFのプロデューサー271が形成されており、データセンター252(DC2)にNFのプロデューサー272が形成されている。
また、リージョン232(RegionB)において、データセンター261(DC1)にNFのプロデューサー281が形成されており、データセンター262(DC2)にNFのプロデューサー282が形成されている。
SCP211は、それぞれのプロデューサー271、272、281、282にアクセスすることが可能である。
【0019】
ここで、現在、一般的なNFインスタンス間のコミュニケーションは、
図2Bの形態で行われている。しかし、今後は、
図2Cおよび
図2Dの形態で、NFインスタンス間のコミュニケーションが行われることが一般的になると考えられる。
各NFの設置手法として、NFセット化が進み、高可用性を求めるために、
図3に示されるように、異なる対地の異なるDCにNFが設置される手法が用いられると考えられる。このため、あるSCPから見た際にNFごとに期待される(往復の)伝送時間は無視できないほど分散値が大きくなることが想定される。また、将来的には、柔軟にSBAを拡張してくために、NFインスタンスはステートレス化が進んでいくと考えられる。
【0020】
実施形態に係るモデルとして、2つのモデルを例示する。
第1のモデルは、プロキシ装置がレポジトリインスタンスにサーバインスタンスの情報を照会し、プロキシ装置がサーバインスタンスを選択するモデルである。
第2のモデルは、クライアントインスタンスがレポジトリインスタンスにサーバインスタンスの情報を照会し、クライアントインスタンスがサーバインスタンスを選択するモデルである。
【0021】
本実施形態では、プロキシ装置およびレポジトリインスタンスの両方または一方が、インスタンスごとの処理遅延値およびネットワーク遅延値を保持するテーブルを記憶する。
本実施形態では、httpのヘッダーカスタマイズ機能を利用し、次のようなヘッダーオプションを追加する。すなわち、http2のヘッダーカスタマイズ機能により、所定のオプショナルヘッダー(パラメーター)を追加することを行い、また、それ以外のプロトコルを利用する際も、所定のパラメーターを追加することを行う。
ここで、追加されるパラメーターは、例えば、send time(送信時刻)、負荷情報(インスタンスの処理遅延時間)、リクエストのタイムアウト値を含む。send time(送信時刻)は、リクエスト送信時にはリクエスト送信時刻であり、レスポンス送信時にはレスポンス送信時刻である。なお、このような情報について、3GPP(登録商標)29.500に記載されたヘッダーオプションが利用されてもよい。
【0022】
図4は、実施形態に係るプロキシ装置311の概略的な機能ブロックの構成を示す図である。
プロキシ装置311は、SCPの一例である。
プロキシ装置311は、通信部331と、記憶部332と、制御部333と、を備える。
制御部333は、リクエスト取得部351と、照会部352と、遅延演算部353と、NFインスタンス選択部354と、を備える。
遅延演算部353は、遅延取得部371を備える。
【0023】
通信部331は、外部の装置と通信を行う。なお、通信としては、例えば、有線の通信が用いられてもよく、あるいは、無線の通信が用いられてもよい。
記憶部332は、各種の情報を記憶する。
制御部333は、各種の制御および処理を実行する。
【0024】
本実施形態では、プロキシ装置311は、コンピューターを用いて構成されている。
制御部333は、CPU(Central Processing Unit)などのプロセッサーを有しており、当該プロセッサーによって所定のプログラムを実行することで、各種の制御および処理を実行する。
当該プログラムは、例えば、記憶部332に記憶されていてもよい。
【0025】
リクエスト取得部351は、サービスのリクエストを取得する。
照会部352は、当該リクエストに基づいて、NFの照会を行う。
遅延取得部371は、当該リクエストに応じた処理に関して、遅延に関する情報を取得する。本実施形態では、当該遅延には、ネットワーク遅延が含まれる。
遅延演算部353は、取得された遅延に関する情報に基づいて、遅延(例えば、遅延時間)を演算する。
NFインスタンス選択部354は、演算された遅延に基づいて、NFインスタンスの選択を行う。
なお、プロキシ装置311の機能は、例えば、インスタンスとして構成されてもよい。
【0026】
(第1モデルの例)
図5は、実施形態に係る第1モデルの概略的な構成(第1モデル構成401)を示す図である。
第1モデルは、プロキシ装置311Aがレポジトリインスタンス413にサーバインスタンスの情報を照会し、プロキシ装置311Aがサーバインスタンスを選択するモデルである。
【0027】
図5には、クライアントインスタンス411と、プロキシ装置311Aと、サーバインスタンス412と、レポジトリインスタンス413と、を示してある。
ここで、第1モデルは
図2Dの構成に適用可能であり、この場合、クライアントインスタンス411はコンシューマーに対応し、プロキシ装置311AはSCPに対応し、サーバインスタンス412はプロデューサーに対応し、レポジトリインスタンス413はNRFに対応する。
【0028】
プロキシ装置311Aは
図4に示されるプロキシ装置311の一例であり、
図4に示される各機能部と同じ符号を用いて説明する。
クライアントインスタンス411は、プロキシ装置311Aにサービスのリクエストを送信する。当該リクエストには、パラメーターなどが含められてもよい。
プロキシ装置311Aでは、通信部331によってクライアントインスタンス411と通信を行い、リクエスト取得部351によってクライアントインスタンス411から受信したリクエストを取得する。
プロキシ装置311Aでは、通信部331によってレポジトリインスタンス413と通信を行い、リクエスト取得部351によって取得されたリクエストに基づいて、照会部352によってレポジトリインスタンス413に対してサーバインスタンスの照会を行う。
【0029】
ここで、プロキシ装置311Aでは、遅延取得部371によって処理時間に関する情報を取得する。プロキシ装置311Aでは、遅延取得部371によって取得された情報に基づいて、遅延演算部353によって、サーバインスタンスに関する遅延を演算し、当該遅延に関する情報(例えば、処理時間)を取得する。
プロキシ装置311Aでは、遅延演算部353による演算結果に基づいて、通信部331によってサーバインスタンス412と通信を行い、サーバインスタンス412にリクエストを転送する。
そして、サーバインスタンス412からプロキシ装置311Aを経由してクライアントインスタンス411にレスポンスが送られる。
【0030】
第1モデルの場合、プロキシ装置311Aが、レポジトリインスタンス413にサーバインスタンスの照会を行うため、プロキシ装置311Aの処理遅延内に、レポジトリインスタンス413の処理時間、および、レポジトリインスタンス413とプロキシ装置311Aとの間のネットワーク遅延時間が含められる。
【0031】
(第2モデルの例)
図6は、実施形態に係る第2モデルの概略的な構成(第2モデル構成501)を示す図である。
第2モデルは、クライアントインスタンス511がレポジトリインスタンス513にサーバインスタンスの照会を実行し、クライアントインスタンス511がサーバインスタンス(例えば、1つのサーバインスタンス、または、複数のサーバインスタンスのセット)を選択するモデルである。
【0032】
図6には、クライアントインスタンス511と、プロキシ装置311Bと、サーバインスタンス512と、レポジトリインスタンス513と、を示してある。
ここで、第2モデルは
図2Cの構成に適用可能であり、この場合、クライアントインスタンス511はコンシューマーに対応し、プロキシ装置311BはSCPに対応し、サーバインスタンス512はプロデューサーに対応し、レポジトリインスタンス513はNRFに対応する。
【0033】
プロキシ装置311Bは
図4に示されるプロキシ装置311の一例であり、
図4に示される各機能部と同じ符号を用いて説明する。なお、第2モデルでは、
図4に示される照会部352の機能はプロキシ装置311Bに備えられていなくてもよい。
クライアントインスタンス511は、レポジトリインスタンス513に対してサーバインスタンスの照会を行う。
ここで、この照会は、例えば、以降の処理のタイミングとは別に、事前に行われてもよい。
【0034】
クライアントインスタンス511は、プロキシ装置311Bにサービスのリクエストを送信する。当該リクエストには、サーバインスタンスの照会の結果が含められてもよい。
プロキシ装置311Bでは、通信部331によってクライアントインスタンス511と通信を行い、リクエスト取得部351によってクライアントインスタンス511から受信したリクエストを取得する。
【0035】
ここで、プロキシ装置311Bでは、遅延取得部371によって処理時間に関する情報を取得する。プロキシ装置311Bでは、遅延取得部371によって取得された情報に基づいて、遅延演算部353によって、サーバインスタンスに関する遅延を演算し、当該遅延に関する情報(例えば、処理時間)を取得する。
プロキシ装置311Bでは、遅延演算部353による演算結果に基づいて、通信部331によってサーバインスタンス512と通信を行い、サーバインスタンス512にリクエストを転送する。
そして、サーバインスタンス512からプロキシ装置311Bを経由してクライアントインスタンス511にレスポンスが送られる。
ここで、第2モデルの場合、例えば事前にサーバインスタンスの照会が実行されるため、レポジトリインスタンス513への問い合わせ処理の遅延を考慮しなくてもよい。
【0036】
図7は、実施形態に係る想定モデルの概略的な構成(想定モデル構成601)を示す図である。
図7の例では、複数であるn個のクライアントインスタンス611-1~611-nと、プロキシ装置311Cと、複数であるm個のサーバインスタンス612-1~612-mと、レポジトリインスタンス613と、を示してある。
【0037】
プロキシ装置311Cは、プロキシエージェント711(プロキシエージェントa)と、プロキシエージェント712(プロキシエージェントb)と、プロキシコントロールプレーン713と、プロキシ記憶部714と、を備える。
プロキシ装置311Cは、
図4に示されるプロキシ装置311の一例である。プロキシエージェント711、712およびプロキシコントロールプレーン713は例えば
図4に示される通信部331および制御部333の機能により構成され、プロキシ記憶部714は例えば
図4に示される記憶部332の機能により構成される。
図7の例では、プロキシ装置311Cの内部において、プロキシエージェント同士で通信を実行するため、プロキシエージェント間通信についても考慮する。
【0038】
プロキシエージェント711は、レポジトリインスタンス613にサーバインスタンスの照会を行う機能を有する。
プロキシエージェント712は、サーバインスタンス612-1~612-mにアクセスする機能を有する。
なお、
図7の例では、説明の便宜上、プロキシエージェント711の機能およびプロキシエージェント712の機能に区別して説明するが、必ずしも本例の区別に限られない。
【0039】
トータルリクエスト処理遅延RDtotal(t)は(式1)で表される。
なお、本実施形態では、2つのインスタンス等の間の通信に要する処理時間は、一方から他方への処理時間と、他方から一方への処理時間と、で同じであるとして説明するが、他の例として、これらが別々に異なり得る値として決定されてもよい。
【0040】
【0041】
式(1)について定義を示す。
リクエスト処理遅延時間をRD(t)で表している。
インスタンス間のネットワーク遅延時間をND(t)で表している。
クライアント(例えば、クライアントインスタンス611-1など)とプロキシ装置311Cとの間のネットワーク遅延時間をNDcliant-Proxy(t)で表している。
プロキシ装置311Cとサーバ(例えば、サーバインスタンス612-1など)との間のネットワーク遅延時間をNDProxy-server(t)で表している。
プロキシ装置311Cでの処理時間をRDproxy(t)で表している。
サーバでの処理時間をRDserver(t)で表している。
【0042】
【0043】
式(2)について定義を示す。
プロキシ装置311Cのプロキシエージェント711での処理時間をRDproxy_agent_a(t)で表している。
プロキシ装置311Cのプロキシエージェント712での処理時間をRDproxy_agent_b(t)で表している。
プロキシエージェント711とプロキシエージェント712との間の処理時間(通信による遅延時間)をNDproxy_agent_ab(t)で表している。
【0044】
ここで、Request send timeは、各インスタンスがリクエストを送信する時刻を表す。本実施形態では、クライアントインスタンスは、リクエストを送信する際の時刻をhttp2のヘッダー内部のsend timeパラメーターに打刻する。
Request received timeは、各インスタンスあるいはプロキシ装置311Cがリクエストを受信した時刻を表す。各インスタンスあるいはプロキシ装置311は、リクエスト受信時刻を取得する。
Request transferred timeは、プロキシ装置311がリクエストを転送する際の時刻を表す。プロキシ装置311Cは、当該時刻をhttp2のヘッダー内部のsend timeパラメーターに打刻する。また、プロキシ装置311Cは、この値を更新することも可能である。
【0045】
Response send timeは、サーバあるいはプロキシエージェントがレスポンスを送信する時刻を表す。サーバあるいはプロキシエージェントは、レスポンスを送信する際の時刻をhttp2のヘッダー内部のsend timeパラメーターに打刻する。
Response received timeは、プロキシエージェントがレスポンスを受信する時刻を表す。プロキシ装置311では、レスポンスを受信した時刻を取得する。
【0046】
【0047】
Request received timeproxy_agent_aは、プロキシエージェント711(プロキシエージェントa)がリクエストを受信した時刻を表す。
Request transferred timeproxy_agent_aは、プロキシエージェント711(プロキシエージェントa)がリクエストを転送する時刻を表す。
【0048】
【0049】
Request send timeproxy_agent_aは、プロキシエージェント711(プロキシエージェントa)がリクエストを送信する時刻を表す。
Request received timeproxy_agent_bは、プロキシエージェント712(プロキシエージェントb)がリクエストを受信した時刻を表す。
【0050】
【0051】
Response send timeserverは、サーバ(サーバインスタンス)がレスポンスを送信する時刻を表す。
Response received timeproxy_agent_bは、プロキシエージェント712(プロキシエージェントb)がレスポンスを受信した時刻を表す。
【0052】
【0053】
Request send timeCliantは、クライアント(クライアントインスタンス)がリクエストを送信する時刻を表す。
【0054】
【0055】
Request transferred timeproxy_agent_bは、プロキシエージェント712(プロキシエージェントb)がリクエストを転送する際の時刻を表す。
【0056】
タイムアウト値(Timeout値)を考慮したインスタンスの選択方式について説明する。
インスタンスの選択において、リクエストのタイムアウト値に基づいて判定(判断)が行われてもよい。
プロキシ装置311では、クライアントインスタンスからリクエストを受信した際に、制御部333によって、次のような処理を実行してもよい。リクエスト転送の判定は、サーバ側のプロキシエージェント712が実行する。
【0057】
第1に、プロキシ装置311では、当該リクエスト内のタイムアウト値(request timeout value)を確認する。
【0058】
第2に、プロキシ装置311では、転送のタイムアウト値の推定値(Estimation transferred timeout value)の計算を実行する。
Estimation transferred timeout valueは、クライアントインスタンスから転送されて来たリクエストが生成されてから所定処理に到達するまでに経過した時間をタイムアウト値から引いた値である。当該タイムアウト値は、クライアントインスタンスによって設定される。
【0059】
ここで、Estimation transferred timeout valueの計算方法として、2つの例(第1計算方法、第2計算方法)を示す。
第1計算方法を式(8)で示す。
第2計算方法を式(9)で示す。
第2計算方法に関しては、各インスタンス間の処理時間、および、各インスタンスの処理時間を考慮することができるため、将来消費するクライアント-プロキシ間の時間も考慮することができる。
【0060】
【0061】
Request send timeproxy_agent_bは、プロキシエージェント712(プロキシエージェントb)がリクエストを送信する時刻を表す。
【0062】
【0063】
第3に、プロキシ装置311では、Estimation transferred timeout valueと自装置が記憶等している処理遅延時間およびネットワーク遅延時間を比較し、必要な処理時間がEstimation transferred timeout valueよりも小さい値となるサーバインスタンスを選択し、選択したサーバインスタンスにリクエストを転送する。
サーバインスタンスが選択される条件は、例えば、式(10)により表される。
【0064】
【0065】
第4に、プロキシ装置311では、Estimation transferred timeout valueをリクエスト転送時のリクエストのタイムアウト値に上書きする。
【0066】
なお、プロキシ装置311では、式(10)の計算結果により、複数のサーバインスタンスの候補(対象のサーバインスタンス)を検出した場合には、例えば、最も大きい遅延値のサーバインスタンスにリクエストを転送するように制御してもよい。この理由は、例えば、遅延値が最小であるサーバインスタンスのみにリクエスト転送が発生することにならないようにするためである。
また、プロキシ装置311では、対象のサーバインスタンスを検出することができなかった場合には、クライアントインスタンス側にエラーを返す。
ここで、サーバインスタンスの候補は、タイムアウトしないサーバインスタンスである。
【0067】
各インスタンスの処理遅延、および、各インスタンス間のネットワーク遅延について、説明する。
プロキシ装置311では、プロキシエージェント711、712が、配下のインスタンスの処理遅延の情報と、自己が通信するプロキシエージェント間の処理遅延の情報などをテーブルとして記憶(保持)する。
サーバインスタンスの処理遅延の取得手法として、例えば、プロキシサーバ(プロキシ装置311)は、レスポンスヘッダー内の負荷情報に関して、インスタンスの処理遅延時間を参照することで、サーバインスタンスの処理遅延を検出(判定)することができる。
【0068】
図8は、実施形態に係るインスタンスの処理遅延保持テーブル2011の一例を示す図である。
プロキシ装置311では、例えば、記憶部332に、処理遅延保持テーブル2011を記憶してもよい。処理遅延保持テーブル2011の値は、例えば、固定的に設定されてもよく、あるいは、可変に更新されてもよい。
【0069】
処理遅延保持テーブル2011では、インスタンスの識別情報(ID)ごとに、ND
instance-Proxy(t)と、RD
instance(t)を示してある。
図8の例では、インスタンスIDとして、インスタンス_A、インスタンス_B、インスタンス_Cを示してある。
ここで、プロキシ装置311と各インスタンスとの間のネットワーク遅延をND
instance-Proxy(t)で表している。
各インスタンスでの処理時間をRD
instance(t)で表している。
インスタンスとしては、例えば、クライアントインスタンス、サーバインスタンス、レポジトリインスタンスがある。
【0070】
図9は、実施形態に係るプロキシエージェントの処理遅延保持テーブル2021の一例を示す図である。
プロキシ装置311では、例えば、記憶部332に、処理遅延保持テーブル2021を記憶してもよい。処理遅延保持テーブル2021の値は、例えば、固定的に設定されてもよく、あるいは、可変に更新されてもよい。
【0071】
処理遅延保持テーブル2021では、プロキシエージェントのインスタンスの識別情報(ID)ごとに、ND
Proxy_agent(t)と、RD
proxy_agent(t)を示してある。
図9の例では、インスタンスIDとして、Proxy agent b(プロキシエージェントb)、Proxy agent c(プロキシエージェントc)、Proxy agent d(プロキシエージェントd)を示してある。
ここで、プロキシエージェント711(プロキシエージェントa)と各プロキシエージェントとの間(プロキシエージェント間)のネットワーク遅延をND
Proxy_agent(t)で表している。
各インスタンス(各プロキシエージェント)での処理時間をRD
proxy_agent(t)で表している。
【0072】
なお、
図8に示される処理遅延保持テーブル2011の内容および
図9に示される処理遅延保持テーブル2021の内容などのような処理時間の情報は、例えば、レポジトリインスタンスにおいて管理(記憶)されてもよく、あるいは、プロキシ装置311とレポジトリインスタンスとの両方において管理(記憶)されてもよい。
【0073】
各インスタンスの処理遅延、および、各インスタンス間ネットワーク遅延の更新について説明する。
プロキシ装置311では、例えば、テーブルの値の更新に関して、リクエストが正常終了した際にのみ更新を実行してもよい。この理由は、リクエストが異常終了した際の値を使用してしまうと、誤った値を格納する可能性があるためである。
それぞれの処理遅延時間の値は、例えば、1つのリクエストのみを参考にして設定あるいは更新などされてもよく、あるいは、複数のリクエストの結果を基に計算した値(平均値など)を用いるように設定あるいは更新などされてもよい。
【0074】
各インスタンスの処理遅延、および、各インスタンス間のネットワーク遅延の初期値について説明する。
各インスタンスの処理遅延については、任意の値が指定されてもよい。
また、例えば、マイクロサービスの予測モデルが利用されてもよい(例えば、非特許文献3参照)。
【0075】
各インスタンス間のネットワーク遅延については、NFインスタンスの生成(作成)時は自己の情報をSCP経由でNRFに登録することが行われ、その際のリクエストを利用して計算することが行われてもよい。
【0076】
図10は、実施形態に係るインスタンス登録リクエストの一例を示す図である。
図10の例では、生成されたインスタンス(生成インスタンス821)と、プロキシ装置311Dと、サーバインスタンス822と、を示してある。
ここで、プロキシ装置311Dは、
図4に示されるプロキシ装置311の一例である。
【0077】
図10の例では、生成インスタンス821は、インスタンス登録のリクエスト(インスタンス登録リクエスト)をプロキシ装置311Dに送信する。
プロキシ装置311Dでは、生成インスタンス821からインスタンス登録リクエストが送信された時刻(Request send time)と、インスタンス登録リクエストを受信した時刻(Request received time)に基づいて、ネットワーク遅延の検出(判定)を行ってもよい。
【0078】
プロキシエージェント間のネットワーク遅延について説明する。
各インスタンスの処理遅延については、任意の値が指定されてもよい。
プロキシ装置311Dでは、例えば、プロキシエージェント間で通信等を実行した値を参考に、ネットワーク遅延を設定してもよい。当該通信は、例えば、ICMP(Internet Control Message Protocol)通信であってもよい。
【0079】
サーバインスタンスが、リクエストを処理する際に、さらに別のインスタンスへリクエストを転送することが必要な際の処理について説明する。
第1に、サーバインスタンスは、直列処理が必要な場合には、リクエスト内のタイムアウト値(request timeout value)の確認を行う。
第2に、サーバインスタンスは、Estimation transferred timeout valueの計算を実行する。ここで、当該計算の手法としては、例えば、式(8)を使用する手法、または、式(9)を使用する手法が用いられてもよい。
【0080】
第3に、サーバインスタンスは、Estimation transferred timeout valueをリクエスト転送時のリクエストタイムアウト値に上書きし、そのリクエストをプロキシサーバ(プロキシ装置311)に転送する。
第4に、当該プロキシサーバ(プロキシ装置311)は、受信したリクエストに基づいて、タイムアウト値を考慮したインスタンスの選択方式の処理を実行する。
上記を繰り返すことで、タイムアウト値を更新し、各インスタンス間の処理で、データ更新等の不整合が起きないようにすることが可能である。
【0081】
次に、並列処理が必要な場合に別のインスタンスへ転送する際の処理について説明する。
並列処理を実行する際に、リクエスト処理のために同期処理が必要な場合について説明する。
ここで、同期処理とは、例えば、あるインスタンスにリクエストを送信して当該リクエストの応答を受信した後に、他のインスタンスにリクエストを送信する処理である。
【0082】
第1に、サーバインスタンスは、リクエスト内のタイムアウト値(request timeout value)の確認を行う。
第2に、サーバインスタンスは、Estimation transferred timeout valueの計算を実行する。ここで、当該計算の手法としては、例えば、式(8)を使用する手法、または、式(9)を使用する手法が用いられてもよい。
【0083】
第3に、サーバインスタンスは、Estimation transferred timeout valueをリクエスト転送時のリクエストタイムアウト値に上書きし、そのリクエストをプロキシサーバ(プロキシ装置311)に転送する。この際、サーバインスタンスは、転送時刻、Estimation transferred timeout valueを記憶する。
第4に、サーバインスタンスは、転送後、レスポンス受信時の時刻(レスポンス時刻)を記憶する。
第5に、サーバインスタンスは、記憶しているレスポンス時刻と、転送時刻を基に、リクエスト処理遅延時間を計算し、その値を記憶していたEstimation transferred timeout valueから引くことによって、次のリクエストのタイムアウト値を決める。
【0084】
並列処理を実行する際に、リクエスト処理を非同期で実行することが可能な場合がある。
このような場合には、直列処理と同様な処理を実行する。
【0085】
以上のように、本実施形態に係るプロキシ装置311では、ネットワーク遅延を考慮してNFインスタンスの選択を行うことで効率化を図ることができる。
本実施形態に係るプロキシ装置311では、NFインスタンスの選択時に、NFインスタンス間のネットワーク遅延を考慮することができ、また、SCPの処理遅延を考慮することもできる。これにより、本実施形態に係るプロキシ装置311では、インスタンスの処理遅延だけでなく、インスタンス間のネットワーク遅延に基づいて、ロードバランシングを実行することができ、また、インスタンスの選択を実行するプロキシの処理遅延についても考慮して、リクエストを依頼する対象とするインスタンスを選択することができる。
本実施形態に係るプロキシ装置311では、複数のエージェントの間における通信処理遅延を考慮してNFインスタンスの選択を行うことができる。
【0086】
本実施形態に係るプロキシ装置311では、例えば、SBA内全体の遅延値を把握することによって、各NFインスタンスのリクエストについて最適なNFインスタンスを利用してリクエストを処理することができる。
本実施形態に係るプロキシ装置311では、例えば、高可用性のために、各NFインスタンスが異なるロケーションあるいは異なるデータセンター(DC)に設置された場合においても、適切なNFインスタンスを選択することができる。
【0087】
本実施形態に係るプロキシ装置311では、タイムアウト値を動的に更新することができる。
本実施形態に係るプロキシ装置311では、各インスタンスの処理遅延値およびネットワーク遅延値を保持することができる。
本実施形態に係るプロキシ装置311あるいは各インスタンスでは、リクエスト送信時に、自己のリクエスト送信時刻およびタイムアウト値を保持して、リクエストを送信することができる。
本実施形態に係るプロキシ装置311では、リクエストの転送時に、タイムアウト値およびリクエスト転送時刻を更新することができる。
【0088】
本実施形態に係るプロキシ装置311では、タイムアウト値と各処理遅延を比較して、インスタンスを選択することができる。
各インスタンスでは、各インスタンスの処理遅延をレスポンス内に保持して、プロキシ装置311に転送することができる。
本実施形態に係るプロキシ装置311では、例えば、新規にインスタンスが追加された際に、自立的に処理遅延時間を計算することができる。
本実施形態に係るプロキシ装置311では、例えば、タイムアウトを減らして、エラー終了となることを減らすことができる。
【0089】
本実施形態に係るプロキシ装置311において行われる処理の方法をプロキシ方法として実施することも可能である。
【0090】
なお、これにより、例えば無線ネットワークにおける総合的なサービス品質の向上を実現することができることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0091】
以上に説明した任意の装置における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、オペレーティングシステムあるいは周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disc)-ROM(Read Only Memory)等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。当該揮発性メモリーは、例えば、RAM(Random Access Memory)であってもよい。記録媒体は、例えば、非一時的記録媒体であってもよい。
【0092】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワークあるいは電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイルであってもよい。差分ファイルは、差分プログラムと呼ばれてもよい。
【0093】
また、以上に説明した任意の装置における任意の構成部の機能は、プロセッサーにより実現されてもよい。例えば、実施形態における各処理は、プログラム等の情報に基づき動作するプロセッサーと、プログラム等の情報を記憶するコンピューター読み取り可能な記録媒体により実現されてもよい。ここで、プロセッサーは、例えば、各部の機能が個別のハードウェアで実現されてもよく、あるいは、各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサーはハードウェアを含み、当該ハードウェアは、デジタル信号を処理する回路およびアナログ信号を処理する回路のうちの少なくとも一方を含んでもよい。例えば、プロセッサーは、回路基板に実装された1または複数の回路装置、あるいは、1または複数の回路素子のうちの一方または両方を用いて、構成されてもよい。回路装置としてはIC(Integrated Circuit)などが用いられてもよく、回路素子としては抵抗あるいはキャパシターなどが用いられてもよい。
【0094】
ここで、プロセッサーは、例えば、CPUであってもよい。ただし、プロセッサーは、CPUに限定されるものではなく、例えば、GPU(Graphics Processing Unit)、あるいは、DSP(Digital Signal Processor)等のような、各種のプロセッサーが用いられてもよい。また、プロセッサーは、例えば、ASIC(Application Specific Integrated Circuit)によるハードウェア回路であってもよい。また、プロセッサーは、例えば、複数のCPUにより構成されていてもよく、あるいは、複数のASICによるハードウェア回路により構成されていてもよい。また、プロセッサーは、例えば、複数のCPUと、複数のASICによるハードウェア回路と、の組み合わせにより構成されていてもよい。また、プロセッサーは、例えば、アナログ信号を処理するアンプ回路あるいはフィルター回路等のうちの1以上を含んでもよい。
【0095】
以上、この開示の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この開示の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0096】
1…5GC アーキテクチャ、311、311A~311D…プロキシ装置、331…通信部、332…記憶部、333…制御部、351…リクエスト取得部、352…照会部、353…遅延演算部、354…NFインスタンス選択部、371…遅延取得部、401…第1モデル構成、411、511、611-1~611-n…クライアントインスタンス、412、512、612-1~612-m、822…サーバインスタンス、413、513、613…レポジトリインスタンス、501…第2モデル構成、601…想定モデル構成、711、712…プロキシエージェント、713…プロキシコントロールプレーン、714…プロキシ記憶部、821…生成インスタンス、2011、2021…処理遅延保持テーブル