(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】遅延推定装置、遅延推定方法、遅延推定システム
(51)【国際特許分類】
G06F 11/07 20060101AFI20241213BHJP
G06F 11/34 20060101ALI20241213BHJP
【FI】
G06F11/07 157
G06F11/07 190
G06F11/07 140A
G06F11/34 119
(21)【出願番号】P 2024551017
(86)(22)【出願日】2022-10-14
(86)【国際出願番号】 JP2022038328
(87)【国際公開番号】W WO2024079871
(87)【国際公開日】2024-04-18
【審査請求日】2024-09-27
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100088672
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】島田 惇哉
【審査官】多賀 実
(56)【参考文献】
【文献】特開2021-196970(JP,A)
【文献】国際公開第2015/025379(WO,A1)
【文献】国際公開第2021/095268(WO,A1)
【文献】米国特許出願公開第2022/0222225(US,A1)
【文献】Mukherjee, JOYDEEP et al.,"RAD: Detecting Performance Anomalies in Cloud-based Web Services",2020 IEEE 13th International Conference on Cloud Computing (CLOUD) [online],米国,IEEE,2020年12月18日,pp. 493-501,[検索日 2022.12.16], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/9284326>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
G06F 11/07
G06F 11/28-11/36
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
複数のクエリを予め関連付けたデータモデルについて、前記クエリを用いる1つ以上のマイクロサービスの応答時間を前記クエリごとに取得する取得部と、
今回の前記応答時間と、過去の前記応答時間とに基づいて、前記クエリごとに遅延が発生しているか否かを判定する判定部と
を備える、遅延推定装置。
【請求項2】
請求項1に記載の遅延推定装置であって、
前記データモデルと、遅延が発生していると判定された前記クエリである遅延クエリとに基づいて、前記遅延クエリを用いる前記マイクロサービスと、前記データモデルで前記遅延クエリと関連付けられた前記クエリとの少なくともいずれか1つに遅延が発生していると推定する推定部をさらに備える、遅延推定装置。
【請求項3】
請求項1または請求項2に記載の遅延推定装置であって、
前記複数のクエリは、前記データモデルにおいて階層構造で予め関連付けられている、遅延推定装置。
【請求項4】
請求項2に記載の遅延推定装置であって、
前記複数のクエリは、前記データモデルにおいて階層構造で予め関連付けられ、
前記推定部は、
前記データモデルと前記遅延クエリとに基づいて、前記遅延クエリと関連付けられ、かつ、前記階層構造において前記遅延クエリよりも上位の階層の前記クエリに遅延が発生していると推定する、遅延推定装置。
【請求項5】
請求項
3に記載の遅延推定装置であって、
前記複数のクエリは、
前記階層構造の上位の階層から順に規定された設備のクエリ、機器のクエリ、及び、センサのクエリの組と、
前記階層構造の上位の階層から順に規定された年のクエリ、月のクエリ、及び、日のクエリの組と、
前記階層構造の上位の階層から順に規定された建屋のクエリ、フロアのクエリ、及び、人のクエリの組との少なくともいずれか1つを含む、遅延推定装置。
【請求項6】
請求項1
または請求項
2に記載の遅延推定装置であって、
前記判定部は、
前記今回の応答時間と閾値とに基づいて、前記クエリごとに遅延が発生しているか否かを判定し、
前記閾値は、前記過去の応答時間と前記クエリの重み付けとに基づいて決定される、遅延推定装置。
【請求項7】
請求項2に記載の遅延推定装置であって、
前記遅延クエリを用いる前記マイクロサービスを停止する、遅延推定装置。
【請求項8】
請求項2に記載の遅延推定装置であって、
前記1つ以上のマイクロサービスは、1つのマイクロサービスと、他のマイクロサービスとを含み、
前記推定部は、
前記データモデルと前記遅延クエリとに基づいて、前記1つのマイクロサービスから前記遅延クエリが判定された場合に、前記遅延クエリを用いる前記他のマイクロサービスに遅延が発生していると推定する、遅延推定装置。
【請求項9】
請求項8に記載の遅延推定装置であって、
前記遅延クエリを用いる前記他のマイクロサービスを停止する、遅延推定装置。
【請求項10】
請求項2に記載の遅延推定装置であって、
前記1つ以上のマイクロサービスは、1つのマイクロサービスと、前記1つのマイクロサービスで用いられる前記クエリを用いる他のマイクロサービスとを含み、
前記推定部は、
前記1つのマイクロサービスから前記クエリが遅延していると判定され、かつ、前記他のマイクロサービスから前記クエリが遅延していると判定されなかった場合に、前記1つのマイクロサービスのうちの前記クエリ以外の部分に遅延が発生していると推定する、遅延推定装置。
【請求項11】
請求項1
または請求項
2に記載の遅延推定装置であって、
前記データモデルは、前記複数のクエリの名称に機械学習を行うことによって生成される、遅延推定装置。
【請求項12】
複数のクエリを予め関連付けたデータモデルについて、前記クエリを用いる1つ以上のマイクロサービスの応答時間を前記クエリごとに取得し、
今回の前記応答時間と、過去の前記応答時間とに基づいて、前記クエリごとに遅延が発生しているか否かを判定する、遅延推定方法。
【請求項13】
複数のクエリを予め関連付けたデータモデルについて、前記クエリを用いる1つ以上のマイクロサービスの応答時間を前記クエリごとに取得する機能と、
今回の前記応答時間と、過去の前記応答時間とに基づいて、前記クエリごとに遅延が発生しているか否かを判定する機能と
を備える、遅延推定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、遅延推定装置、遅延推定方法、遅延推定システムに関する。
【背景技術】
【0002】
近年、複数の機能を複数のマイクロサービスに分割し、複数のマイクロサービスを組み合わせてクラウドなどのシステムを構築するアーキテクチャについて、様々な技術が提案されている。例えば、特許文献1には、マイクロサービスの遅延を判定する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では、マイクロサービス間の応答時間に着目しているため、遅延が発生しているマイクロサービスの経路の遅延を判定することが可能となっている。しかしながら、マイクロサービスが用いるどのクエリにおいて遅延が発生しているかを判定していない。このため、ユーザは、修理の際などにおいて、マイクロサービスにおいて遅延が発生した部分を比較的広い範囲について確認する必要があり、そのような部分を容易に特定することができない問題があった。
【0005】
そこで、本開示は、上記のような問題点に鑑みてなされたものであり、ユーザがマイクロサービスにおいて遅延が発生した部分を容易に特定可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示に係る遅延推定装置は、複数のクエリを予め関連付けたデータモデルについて、前記クエリを用いる1つ以上のマイクロサービスの応答時間を前記クエリごとに取得する取得部と、今回の前記応答時間と、過去の前記応答時間とに基づいて、前記クエリごとに遅延が発生しているか否かを判定する判定部とを備える。
【発明の効果】
【0007】
本開示によれば、今回の応答時間と、過去の応答時間とに基づいて、クエリごとに遅延が発生しているか否かを判定する。このような構成によれば、ユーザがマイクロサービスにおいて遅延が発生した部分を容易に特定することができる。
【0008】
本開示の目的、特徴、局面及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1に係る遅延推定システムの構成を示すブロック図である。
【
図2】実施の形態1に係る監視データ管理DBに記憶されるデータの一例を示す図である。
【
図3】実施の形態1に係るデータモデル管理DBに記憶されているデータモデルの一例を示す図である。
【
図4】実施の形態1に係る履歴管理部に記憶されている応答時間の一例を示す図である。
【
図5】実施の形態1に係る遅延推定装置の動作を示すフローチャートである。
【
図6】実施の形態1に係る遅延推定装置の動作を示すフローチャートである。
【
図7】変形例3に係る履歴管理部に記憶されている応答時間の一例を示す図である。
【
図8】その他の変形例に係る遅延推定装置のハードウェア構成を示すブロック図である。
【
図9】その他の変形例に係る遅延推定装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0010】
<実施の形態1>
図1は、本実施の形態1に係る遅延推定システムの構成を示すブロック図である。
図1の遅延推定システムは、マイクロサービス1と、監視データ管理DB2と、遅延推定装置3と、データモデル管理DB4と、履歴管理部5と、制御装置6とを備える。なお、監視データ管理DB2及びデータモデル管理DB4のDBは、「データベース」を意味する。
【0011】
マイクロサービス1は、特定の機能を有し、複数のマイクロサービス1は、特定の機能を組み合わせた所望の機能を有するクラウドなどの機能システムを構築する。マイクロサービス1は、監視データ管理DB2に記憶されているデータに対して、クエリを用いて取得、検索及び変更などの処理を行うことによって、特定の機能を実現する。なお、マイクロサービス1は、監視データ管理DB2に記憶されているデータだけでなく、別のマイクロサービス1が処理したデータに対して、クエリを用いて取得、検索及び変更などの処理を行うことによって、特定の機能を実現してもよい。
【0012】
マイクロサービス1は、1つ以上のクエリを用いる。クエリを識別するための名称には、例えば設備、年、建屋などのメタデータが付与される。例えば、マイクロサービス1は、年が名称として付されたクエリを用いて、年に関するデータについて取得、検索及び変更などの処理を行う。なお、一つのマイクロサービス1は、複数のクエリを並列的に用いてもよいし、複数のクエリを直列的に用いてもよいし、複数のクエリを選択的に用いてもよい。
【0013】
マイクロサービス1のクエリが取得、検索または変更する対象となるデータは、監視データ管理DB2に記憶されている。
【0014】
図2は、本実施の形態1に係る監視データ管理DB2に記憶されるデータの一例を示す図である。
図2の例では、センサ名と、センサの計測値などの値とが対応付けられて記憶されている。例えば、複数の
図2のテーブルが、各センサに関連付けられて監視データ管理DB2に記憶され、マイクロサービス1がセンサA3のクエリを用いた場合、マイクロサービス1は、センサA3に関するデータを監視データ管理DB2の複数のテーブルから取得する。なお、監視データ管理DB2は、例えばリレーショナルデータベースによって構成される。
【0015】
図1の遅延推定装置3は、マイクロサービス1が特定の機能を実行する場合などに、データモデル管理DB4及び履歴管理部5と協働して、マイクロサービス1が用いるクエリの遅延を推定する。以下、遅延推定装置3、データモデル管理DB4及び履歴管理部5について詳細に説明する。
【0016】
遅延推定装置3は、取得部3aと、判定部3bと、推定部3cとを備える。
【0017】
取得部3aは、複数のクエリを予め関連付けたデータモデルについて、クエリを用いる1つ以上のマイクロサービス1の応答時間をクエリごとに取得する。本実施の形態1では、1つ以上のマイクロサービス1は、1つのマイクロサービス1と他のマイクロサービス1とを含む。また本実施の形態1では、データモデルは、データモデル管理DB4に記憶されている。
【0018】
図3は、本実施の形態1に係るデータモデル管理DB4に記憶されているデータモデルの一例を示す図である。
図3の例では、複数のクエリは、データモデルにおいて階層構造で予め関連付けられており、階層構造の上位の階層から順に規定された設備のクエリ、機器のクエリ、及び、センサのクエリを含んでいる。なお本実施の形態1では、データモデルはユーザによって設定されるが、これに限ったものではない。
【0019】
図3の例では、設備A1のクエリは、それより下位の機器A2及び機器B2のクエリに関連付けられている。機器A2のクエリは、それより下位のセンサA3,B3,C3のクエリに関連付けられており、機器B2のクエリは、それより下位のセンサD3のクエリに関連付けられている。センサA3,B3,C3,D3のクエリは、
図2の値に相当する値に関連付けられており、センサC3のクエリは、マイクロサービスEの処理結果で得られた値にさらに関連付けられている。
【0020】
例えば、データモデルが
図3のように設定されている場合、設備A1のクエリを用いるマイクロサービス1は、実質的に機器A2及び機器B2のクエリを用いることになる。同様に、機器A2のクエリを用いるマイクロサービス1は、実質的にセンサA3,B3,C3のクエリを用いることになる。
【0021】
図1の取得部3aは、複数のクエリを予め関連付けたデータモデルについて、クエリを用いるマイクロサービス1の応答時間をクエリごとに取得する。例えば、マイクロサービス1がセンサA3のクエリを用いる場合に、取得部3aは、
図3のデータモデルに従って、センサA3のクエリのリクエストからレスポンスまでの応答時間を取得する。例えば、マイクロサービス1が機器A2のクエリを用いる場合に、取得部3aは、
図3のデータモデルに従って、機器A2及びセンサA3,B3,C3のそれぞれのクエリのリクエストからレスポンスまでの応答時間を取得する。履歴管理部5は、取得部3aで取得された応答時間を記憶する。
【0022】
図4は、本実施の形態1に係る履歴管理部5に記憶されている応答時間の一例を示す図である。履歴管理部5には、直近に取得された今回の応答時間と、過去に取得された過去の応答時間の一例である前回の応答時間とが記憶される。
【0023】
図4の例では、マイクロサービスAは、センサA3のクエリ、及び、センサB3のクエリを選択的に用いることが示されており、センサB3について今回の応答時間が取得されていることが示されている。同様に
図4の例では、マイクロサービスC,Eは、センサA3のクエリを用いることが示されており、センサA3について今回の応答時間が取得されていることが示されている。なお、同じセンサA3のクエリを用いるマイクロサービスC,Eの応答時間の差異は、センサA3のクエリ以外の部分、例えばネットワークの差異に起因する。
【0024】
図1の判定部3bは、今回の応答時間と、過去の応答時間とに基づいて、クエリごとに遅延が発生しているか否かを判定する。本実施の形態1では、判定部3bは、今回の応答時間と閾値とに基づいて、クエリごとに遅延が発生しているか否かを判定する。
【0025】
図5は、本実施の形態1に係る判定部3bの動作を示すフローチャートである。なお、
図5の動作は、マイクロサービス1がクエリを用いて取得部3aが応答時間を取得した場合に、クエリごとに行われる。
【0026】
まずステップS1にて、判定部3bは、複数の過去の応答時間に統計処理を行い、過去の応答時間の統計量を算出する。統計量は、例えば、平均値、中央値、分散、標準偏差などである。
【0027】
ステップS2にて、判定部3bは、クエリの重み付けを算出する。例えば、判定部3bは、クエリの使用頻度などのクエリ情報に基づいて、クエリの重要度、または、クエリを用いるマイクロサービス1の重要度を、当該クエリの重み付けとして算出する。
【0028】
ステップS3にて、判定部3bは、ステップS1で算出された統計量と、ステップS2で算出されたクエリの重み付けとに基づいて閾値を決定する。
【0029】
ステップS4にて、判定部3bは、今回の応答時間が、ステップS3で決定された閾値よりも大きいか否かに基づいて、今回の応答時間が取得されたクエリに遅延が発生しているか否かを判定する。本実施の形態1では、判定部3bは、今回の応答時間が閾値よりも大きい場合には、クエリに遅延が発生していると判定し、今回の応答時間が閾値以下である場合には、クエリに遅延が発生していないと判定する。その後、
図5の動作が終了する。
【0030】
上記の動作において、例えば、統計量が平均値である場合には、判定部3bは、平均値と予め定められた余裕値との和または積を、閾値として決定する。過去の応答時間が1つしか取得されておらず、ステップS1の統計量を算出できない場合には、判定部3bは、過去の応答時間の値と予め定められた余裕値との和または積を、閾値として決定する。そして、判定部3bは、クエリの重み付け、つまりクエリまたはマイクロサービスの重要度が高いほど、余裕値を小さくする。このような構成によれば、クエリの重要度が高いほど、クエリの遅延の判定を厳しくできるので、重要度が高いクエリ、または、マイクロサービス1の遅延を検出しやすくすることができる。
【0031】
図4の例では、センサB3のクエリを用いるマイクロサービスAにおいて、今回の応答時間が前回の応答時間とほぼ同じであるため、判定部3bが、センサB3のクエリに遅延が発生していないと判定する傾向にある。一方、センサA3のクエリを用いるマイクロサービスC,Eにおいて、今回の応答時間が前回の応答時間よりもかなり大きいため、判定部3bは、センサA3のクエリに遅延が発生していると判定する傾向にある。
【0032】
以下の説明では、説明の便宜上、遅延が発生していると判定部3bで判定されたクエリを「遅延クエリ」と記すこともある。
【0033】
図1の推定部3cは、データモデルと、遅延クエリとに基づいて、遅延クエリを用いるマイクロサービス1と、データモデルで遅延クエリと関連付けられたクエリとの両方に遅延が発生していると推定する。なお、推定部3cは、これに限ったものではなく、遅延クエリを用いるマイクロサービス1と、データモデルで遅延クエリと関連付けられたクエリとの両方ではなく一方に遅延が発生していると推定してもよい。
【0034】
また本実施の形態1では、推定部3cは、データモデルと遅延クエリとに基づいて、遅延クエリと関連付けられ、かつ、階層構造において遅延クエリよりも上位の階層のクエリに遅延が発生していると推定する。
【0035】
図6は、本実施の形態1に係る推定部3cの動作を示すフローチャートである。なお、
図6の動作は、判定部3bによって遅延クエリが判定された場合に行われる。
【0036】
まずステップS11にて、推定部3cは、データモデルにおける遅延クエリの位置を特定する。
【0037】
ステップS12にて、推定部3cは、遅延クエリと関連付けられ、かつ、データモデルの階層構造において遅延クエリよりも上位の階層のクエリを特定する。例えば、データモデルが
図3のデータモデルであり、センサA3のクエリが遅延クエリと判定された場合に、ステップS12にて、推定部3cは、機器A2及び設備A1のクエリを特定する。
【0038】
ステップS13にて、推定部3cは、遅延クエリを用いるマイクロサービス1と、ステップS12で特定されたクエリとに遅延が発生していると推定する。例えば、データモデルが
図3のデータモデルであり、
図4のマイクロサービスEが用いるセンサA3のクエリが遅延クエリと判定された場合を想定する。この場合に、ステップS13にて、推定部3cは、
図4のマイクロサービスEと、機器A2及び設備A1のクエリとに遅延が発生していると推定する。その後、
図6の動作が終了する。
【0039】
図1の制御装置6は、遅延推定装置3の判定結果及び推定結果を図示しない表示装置に表示させる制御を行う。また、制御装置6は、遅延推定装置3で判定された遅延クエリを用いるマイクロサービス1を停止する。例えば、上記例のように、
図4のマイクロサービスEが用いるセンサA3のクエリが遅延クエリと判定された場合には、制御装置6は、
図4のマイクロサービスEを停止する。なお、制御装置6は、遅延クエリを用いるマイクロサービス1で構築される機能システムの全部を停止してもよいし、機能システムのうち遅延クエリを用いるマイクロサービス1のみを停止してもよい。
【0040】
<実施の形態1のまとめ>
以上のような本実施の形態1に係る遅延推定装置3によれば、今回の応答時間と、過去の応答時間とに基づいて、クエリごとに遅延が発生しているか否かを判定する。このような構成によれば、マイクロサービス1のどのクエリにおいて遅延が発生しているかを判定することができるため、ユーザは、マイクロサービス1において遅延が発生した部分を容易に特定することができる。
【0041】
また本実施の形態1では、データモデルと遅延クエリとに基づいて、遅延クエリを用いるマイクロサービスと、データモデルで遅延クエリと関連付けられたクエリとの少なくともいずれか1つに遅延が発生していると推定する。その一例として、データモデルと遅延クエリとに基づいて、遅延クエリと関連付けられ、かつ、階層構造において遅延クエリよりも上位の階層のクエリに遅延が発生していると推定する。このような構成によれば、ユーザが、データモデルを調べて、遅延クエリを用いるマイクロサービスと、遅延クエリと関連するクエリとを特定する手間を低減することができる。
【0042】
また本実施の形態1では、クエリごとに遅延が発生しているか否かを判定するための閾値が、過去の応答時間とクエリの重み付けとに基づいて決定される。このような構成によれば、重要度が高いクエリ、または、マイクロサービス1について、遅延の判定を厳しくすることができる。
【0043】
また本実施の形態1では、遅延クエリを用いるマイクロサービスを停止するので、遅延クエリによってさらなる不具合が生じることを抑制することができる。
【0044】
<変形例1>
実施の形態1の
図3のデータモデルの複数のクエリは、階層構造の上位の階層から順に規定された設備のクエリ、機器のクエリ、及び、センサのクエリの組を含んだが、これに限ったものではない。例えば、複数のクエリは、階層構造の上位の階層から順に規定された年のクエリ、月のクエリ、及び、日のクエリの組を含んでもよいし、階層構造の上位の階層から順に規定された建屋のクエリ、フロアのクエリ、及び、人のクエリの組を含んでもよい。
【0045】
<変形例2>
実施の形態1において、推定部3cは、データモデルと遅延クエリとに基づいて、1つのマイクロサービス1から遅延クエリが判定された場合に、遅延クエリを用いる他のマイクロサービス1に遅延が発生していると推定してもよい。そして、制御装置6は、遅延クエリを用いる他のマイクロサービス1を停止してもよい。例えば
図4において、マイクロサービスEでセンサA3のクエリが遅延クエリと判定された場合に、センサA3のクエリを用いるマイクロサービスA,Cに遅延が発生していると推定されて、マイクロサービスA,Cが停止されてもよい。このような構成によれば、遅延クエリによってさらなる不具合が生じることを抑制することができる。
【0046】
<変形例3>
実施の形態1において変形例2が適用されずに、他のマイクロサービス1が、1つのマイクロサービスで用いられるクエリと同じクエリを用いる場合を想定する。このような場合には、1つのマイクロサービス1から当該クエリが遅延していると判定され、かつ、他のマイクロサービスから当該クエリが遅延していると判定されない場合がある。この場合に、推定部3cは、1つのマイクロサービス1のうちの当該クエリ以外の部分に遅延が発生していると推定してもよい。
【0047】
図7は、本変形例3に係る履歴管理部5に記憶されている応答時間の一例を示す図である。
図7では、
図4からマイクロサービスCにおける今回の応答時間が小さな値に変更されている。
【0048】
例えば
図7において、マイクロサービスEからセンサA3のクエリが遅延していると判定され、かつ、マイクロサービスCからセンサA3のクエリが遅延していると判定されなかったとする。この場合、推定部3cは、センサA3のクエリに遅延が発生しているのではなく、マイクロサービスEのうちのセンサA3のクエリ以外の部分、例えばマイクロサービスEのネットワークに遅延が発生していると推定してもよい。このような構成によれば、さらに詳細に遅延が発生した部分が推定されるので、ユーザは、マイクロサービスにおいて遅延が発生した部分を容易に特定することができる。
【0049】
<変形例4>
実施の形態1では、
図3のデータモデルの数は1つであったが、複数であってもよい。
【0050】
また例えば、制御装置6が、複数のクエリの名称に、例えばディープラーニングなどを用いた、教師あり学習、教師なし学習、及び、強化学習の少なくともいずれか1つを含む機械学習を行うことによってデータモデルを生成してもよい。
【0051】
このように構成された制御装置6は、例えば「浄水場〇汚泥地△センサA3」の名称が付されたクエリと、「浄水場〇汚泥地△センサB3」の名称が付されたクエリとを、「浄水場〇汚泥地△」の名称が付されたクエリに関連付けることができる。また、制御装置6は、例えば「浄水場〇汚泥地△」の名称が付されたクエリを、「浄水場〇」の名称が付されたクエリと関連付けることができる。このように、制御装置6は、データモデルを自動的に生成することができるので、ユーザが、データモデルを設定する手間を低減することができる。
【0052】
<変形例5>
実施の形態1では、判定部3bは、今回の応答時間と閾値とに基づいて、クエリごとに遅延が発生しているか否かを判定したが、これに限ったものではない。例えば、判定部3bは、今回の応答時間と過去の応答時間から応答時間の推移パターンを作成し、当該推移パターンに、上記機械学習と同様の機械学習を行うことによって、クエリごとに遅延が発生しているか否かを判定してもよい。
【0053】
<変形例6>
実施の形態1では、遅延推定装置3と制御装置6とは個別に設けられたが、これに限ったものではない。例えば図示しないが、遅延推定装置3は、取得部3a、判定部3b、及び、推定部3cに加えて、制御装置6と同様の機能を有する制御部を備えてもよい。また、遅延推定システムは、取得部3aと同様の機能と、判定部3bと同様の機能とを有するシステムであれば、実施の形態1に係る遅延推定システムに限ったものではない。
【0054】
<その他の変形例>
上述した
図1の取得部3a、判定部3b、及び、推定部3cを、以下「取得部3a等」と記す。取得部3a等は、
図8に示す処理回路81により実現される。すなわち、処理回路81は、複数のクエリを予め関連付けたデータモデルについて、クエリを用いる1つ以上のマイクロサービスの応答時間をクエリごとに取得する取得部3aと、今回の応答時間と、過去の応答時間とに基づいて、クエリごとに遅延が発生しているか否かを判定する判定部3bと、データモデルと遅延クエリとに基づいて、遅延クエリを用いるマイクロサービスと、データモデルで遅延クエリと関連付けられたクエリとの少なくともいずれか1つに遅延が発生していると推定する推定部3cと、を備える。処理回路81には、専用のハードウェアが適用されてもよいし、メモリに格納されるプログラムを実行するプロセッサが適用されてもよい。プロセッサには、例えば、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)などが該当し、例えばパーソナルコンピュータまたはサーバなどに設けられる。
【0055】
処理回路81が専用のハードウェアである場合、処理回路81は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものが該当する。取得部3a等の各部の機能それぞれは、処理回路を分散させた回路で実現されてもよいし、各部の機能をまとめて一つの処理回路で実現されてもよい。
【0056】
処理回路81がプロセッサである場合、取得部3a等の機能は、ソフトウェア等との組み合わせにより実現される。なお、ソフトウェア等には、例えば、ソフトウェア、ファームウェア、または、ソフトウェア及びファームウェアが該当する。ソフトウェア等はプログラムとして記述され、メモリに格納される。
図9に示すように、処理回路81に適用されるプロセッサ82は、メモリ83に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、遅延推定装置3は、処理回路81により実行されるときに、複数のクエリを予め関連付けたデータモデルについて、クエリを用いる1つ以上のマイクロサービスの応答時間をクエリごとに取得するステップと、今回の応答時間と、過去の応答時間とに基づいて、クエリごとに遅延が発生しているか否かを判定するステップと、データモデルと遅延クエリとに基づいて、遅延クエリを用いるマイクロサービスと、データモデルで遅延クエリと関連付けられたクエリとの少なくともいずれか1つに遅延が発生していると推定するステップと、が結果的に実行されることになるプログラムを格納するためのメモリ83を備える。換言すれば、このプログラムは、取得部3a等の手順や方法をコンピュータに実行させるものであるともいえる。ここで、メモリ83は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)などの、不揮発性または揮発性の半導体メモリ、HDD(Hard Disk Drive)、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disc)、それらのドライブ装置、または、今後使用されるあらゆる記憶媒体であってもよい。
【0057】
以上、取得部3a等の各機能が、ハードウェア及びソフトウェア等のいずれか一方で実現される構成について説明した。しかしこれに限ったものではなく、取得部3a等の一部を専用のハードウェアで実現し、別の一部をソフトウェア等で実現する構成であってもよい。例えば、取得部3aについては専用のハードウェアとしての処理回路81、取得処理回路でその機能を実現し、それ以外についてはプロセッサ82としての処理回路81がメモリ83に格納されたプログラムを読み出して実行することによってその機能を実現することが可能である。
【0058】
以上のように、処理回路81は、ハードウェア、ソフトウェア等、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【0059】
なお、実施の形態の内容を適宜、変形、省略することが可能である。
【0060】
上記した説明は、すべての局面において、例示であって、限定的なものではない。例示されていない無数の変形例が、想定され得るものと解される。
【符号の説明】
【0061】
1 マイクロサービス、3 遅延推定装置、3a 取得部、3b 判定部、3c 推定部。