(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-29
(54)【発明の名称】マイクロサービスアーキテクチャにおける最適化の提供
(51)【国際特許分類】
G06F 9/50 20060101AFI20221121BHJP
G06F 16/907 20190101ALI20221121BHJP
H04L 67/60 20220101ALI20221121BHJP
【FI】
G06F9/50 150B
G06F9/50 150Z
G06F16/907
H04L67/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022518413
(86)(22)【出願日】2020-09-21
(85)【翻訳文提出日】2022-03-18
(86)【国際出願番号】 EP2020076292
(87)【国際公開番号】W WO2021053224
(87)【国際公開日】2021-03-25
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】DK
(81)【指定国・地域】
(71)【出願人】
【識別番号】522111367
【氏名又は名称】アー.ペー.ムラ-メースク アクティーゼルスカブ
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【氏名又は名称】森本 有一
(74)【代理人】
【識別番号】100151459
【氏名又は名称】中村 健一
(72)【発明者】
【氏名】アンドレーア カスィオリ
(72)【発明者】
【氏名】スティーファン オト ティーオド ゲリケ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175FB02
(57)【要約】
少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおいて最適化を提供するためのコンピュータ実装方法が開示される。少なくとも1つの最適化サービスは、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスにおけるコンポーネントが互いに動作可能に接続されている。本方法は、管理コンポーネントによって、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求を受け取ること(101)と、管理コンポーネントによって、対応する最適化のためのデータ及び最適化タスクの作成された関連識別子を少なくとも1つの格納コンポーネントに格納すること(104)と、管理コンポーネントによって、最適化タスク及び最適化タスクの関連識別子をメッセージングコンポーネントに送ること(105)と、少なくとも1つの作業コンポーネントによって、受け取られた最適化タスクに対してメッセージングコンポーネントを監視すること(106)と、を含む。本方法は、少なくとも1つの作業コンポーネントによって、受け取られた最適化タスクの検出(107)時に、少なくとも1つの作業コンポーネントによって、最適化タスクの関連識別子を通じて、格納された対応する最適化のためのデータを、少なくとも1つの格納コンポーネントから取得すること(108)と、少なくとも1つの作業コンポーネントによって、最適化タスクを解決するための最適化モデルを作成すること(109)と、少なくとも1つの作業コンポーネントによって、作成された最適化モデルに基づいて、最適化タスクを解決すること(110)と、少なくとも1つの作業コンポーネントによって、最適化タスクに対する解決策及び最適化タスクの関連識別子を少なくとも1つの格納コンポーネントに格納すること(111)と、をさらに含む。
対応するコンピュータプログラム製品及びアーキテクチャもまた開示される。
【特許請求の範囲】
【請求項1】
少なくとも1つの最適化サービスを含むマイクロサービスアーキテクチャにおける最適化を提供するためのコンピュータ実装方法であって、前記少なくとも1つの最適化サービスが、前記少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、前記少なくとも1つの最適化サービス内の前記コンポーネントが、互いに動作可能に接続されており、前記方法が、
前記管理コンポーネントによって、最適化タスク及び対応する最適化のためのデータを含む、前記クライアントから送信された最適化要求を受け取るステップ(101)と、
前記管理コンポーネントによって、前記対応する最適化のためのデータ及び前記最適化タスクの作成された関連識別子を前記少なくとも1つの格納コンポーネントに格納するステップ(104)と、
前記管理コンポーネントによって、前記最適化タスク及び前記最適化タスクの前記関連識別子を前記メッセージングコンポーネントに送るステップ(105)と、
前記少なくとも1つの作業コンポーネントによって、受け取られた最適化タスクに対して前記メッセージングコンポーネントを監視するステップ(106)と、
受け取られた最適化タスクの検出(107)時に、前記少なくとも1つの作業コンポーネントによって、
前記少なくとも1つの作業コンポーネントによって、前記最適化タスクの前記関連識別子を通じて、前記格納された対応する最適化のためのデータを前記少なくとも1つの格納コンポーネントから取得するステップ(108)と、
前記少なくとも1つの作業コンポーネントによって、前記最適化タスクを解決するための最適化モデルを作成するステップ(109)と、
前記少なくとも1つの作業コンポーネントによって、前記作成された最適化モデルに基づいて、前記最適化タスクを解決するステップ(110)と、
前記少なくとも1つの作業コンポーネントによって、前記最適化タスクに対する前記解決策及び前記最適化タスクの前記関連識別子を前記少なくとも1つの格納コンポーネントに格納するステップ(111)と、を含む、コンピュータ実装方法。
【請求項2】
前記管理コンポーネントによって、前記送信された最適化要求に少なくとも基づいてメタデータを決定するステップ(102)であって、前記メタデータが前記最適化要求の送信データを含む、前記ステップと、
前記管理コンポーネントによって、前記決定されたメタデータを前記少なくとも1つの格納コンポーネントに格納するステップ(104a)であって、前記少なくとも1つの格納コンポーネントが、前記管理コンポーネントと前記少なくとも1つの作業コンポーネントとの両方にアクセス可能である、前記ステップと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記管理コンポーネントによって、前記送信された最適化要求に基づいてペイロードを決定するステップ(103)であって、前記ペイロードが、前記対応する最適化のためのデータを含む、前記ステップと、
前記管理コンポーネントによって、前記決定されたペイロードを前記少なくとも1つの格納コンポーネントに格納するステップ(104b)であって、前記少なくとも1つの格納コンポーネントが、前記管理コンポーネントと前記少なくとも1つの作業コンポーネントとの両方に対してアクセス可能である、前記ステップと、をさらに含む、請求項1または2項に記載の方法。
【請求項4】
前記少なくとも1つの格納コンポーネントが、データベースを備え、前記データベースが、前記最適化要求のメタデータまたはメタデータ及びペイロードを格納するように構成されている、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記少なくとも1つの格納コンポーネントが、前記データベースとオブジェクトストレージとを含む2つの格納コンポーネントをそれぞれ備え、前記オブジェクトストレージが、前記最適化要求の前記ペイロードを格納するように構成されている、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記メタデータが、前記最適化要求に注釈付けするためのデータを含む、請求項2~5のいずれか一項に記載の方法。
【請求項7】
前記ペイロードが、前記最適化要求に対応する最適化のためのデータを含む、請求項3~6のいずれか一項に記載の方法。
【請求項8】
前記アーキテクチャが、意思決定支援システム及び/または最適化システムを備え、各システムが、クラウドインフラストラクチャを利用している、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記少なくとも1つの作業コンポーネントが、ステートレスコンポーネントである、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記クライアントが、前記最適化サービスにアクセスするように構成されたコンピュータハードウェアまたはソフトウェアの一部である、請求項1~9のいずれか一項に記載の方法。
【請求項11】
プログラム命令を含むコンピュータプログラムを内部に有する非一時的コンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記コンピュータプログラムが、データ処理ユニットにロード可能であり、かつ前記コンピュータプログラムが前記データ処理ユニットによって実行されたときに請求項1~8のいずれか一項に記載の前記方法の実行を引き起こすように構成されている、コンピュータプログラム製品。
【請求項12】
最適化を提供するためのマイクロサービスアーキテクチャ(300)であって、前記マイクロサービスアーキテクチャが、少なくとも1つの最適化サービス(310)を備え、前記少なくとも1つの最適化サービスが、前記少なくとも1つの最適化サービスへのアクセスをクライアント(301)に提供するように構成された管理コンポーネント(311)と、最適化要求をキューイングするように構成されたメッセージングコンポーネント(312)と、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネント(313)と、少なくとも1つの格納コンポーネント(314)と、を備え、前記少なくとも1つの最適化サービス(310)における前記コンポーネント(311、312、313、314)が、互いに動作可能に接続されており、前記アーキテクチャが、
実行可能な命令を含むメモリと、前記メモリと通信するように構成された1つ以上のプロセッサと、をさらに備え、前記1つ以上のプロセッサが、
前記管理コンポーネント(311)によって、最適化タスク及び対応する最適化のためのデータを含む、前記クライアントから送信された最適化要求を受け取ることと、
前記管理コンポーネント(311)によって、前記対応する最適化のためのデータ及び前記最適化タスクの作成された関連識別子を前記少なくとも1つの格納コンポーネントに格納することと、
前記管理コンポーネント(311)によって、前記最適化タスク及び前記最適化タスクの前記関連識別子を前記メッセージングコンポーネント(312)に送ることと、
前記少なくとも1つの作業コンポーネント(313)によって、受け取られた最適化タスクに対して前記メッセージングコンポーネント(312)を監視することと、
前記少なくとも1つの作業コンポーネント(313)による、受け取られた最適化タスクの検出時に、
前記少なくとも1つの作業コンポーネント(313)によって、前記最適化タスクの前記関連識別子を通じて、前記格納された対応する最適化のためのデータを前記少なくとも1つの格納コンポーネント(314)から取得することと、
前記少なくとも1つの作業コンポーネント(313)によって、前記最適化タスクを解決するための最適化モデルを作成することと、
前記少なくとも1つの作業コンポーネント(313)によって、前記作成された最適化モデルに基づいて前記最適化タスクを解決することと、
前記少なくとも1つの作業コンポーネント(313)によって、前記最適化タスクに対する前記解決策及び前記最適化タスクの前記関連識別子を前記少なくとも1つの格納コンポーネント(314)に格納することと、を引き起こすように構成されている、マイクロサービスアーキテクチャ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、マイクロサービスの分野に関する。より具体的には、本開示は、マイクロサービスアーキテクチャにおける最適化の提供に関する。
【背景技術】
【0002】
モノリシックアプリケーションとは対照的に、マイクロサービスは、開発の俊敏性、拡張性、及び順応性における利点、及び異なるチームの作業を互いから分離し、異なるプロジェクト間でサービスを再使用する能力を提供する疎結合サービスで構成されている。
【0003】
マイクロサービスの利点は、分離されたサービスを提供し、これにより小規模なチームによる開発、更新、及び保守がはるかに容易になることである。
【0004】
ただし、マイクロサービスをさまざまなタスクに利用することはまた、データアクセシビリティ、インフラストラクチャオーバーヘッド、及びより複雑なシステムなど、いくつかの欠点ももたらす
【0005】
したがって、マイクロサービスを利用するための代替のアプローチが必要である。
【発明の概要】
【0006】
用語「含む(comprise)」及び/または「備える(comprising)」は、本明細書で使用されるとき、述べられる特徴、整数、ステップ、または構成要素の存在を指定するために用いられるが、1つ以上の他の特徴、整数、ステップ、構成要素、または、それらのグループの存在または追加を排除しないことが強調されるべきであろう。本明細書で使用する場合、単数形「a」、「an」、及び「the」は、文脈が他の意味を明らかに示さない限り、複数形も含むことを意図する。
【0007】
概して、構成が本明細書で言及されるとき、それは物理的な製品、たとえば、装置として理解されるべきである。物理的製品は、1つ以上のコントローラ、または1つ以上のプロセッサなどの形態の制御回路などの1つ以上の部品を備え得る。
【0008】
上記または他の欠点のうちの少なくともいくつかを解決もしくは軽減、緩和、または排除することが、いくつかの実施形態の目的である。
【0009】
第1の態様によれば、この目的は、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのコンピュータ実装方法によって達成され、少なくとも1つの最適化サービスは、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントは、互いに動作可能に接続されている。
【0010】
本方法は、管理コンポーネントによって、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求を受け取ることと、管理コンポーネントによって、対応する最適化のためのデータ及び最適化タスクの作成された関連識別子を少なくとも1つの格納コンポーネントに格納することと、管理コンポーネントによって、最適化タスク及び最適化タスクの関連識別子をメッセージングコンポーネントに送ることと、少なくとも1つの作業コンポーネントによって、受け取られた最適化タスクに対してメッセージングコンポーネントを監視することと、を含む。
【0011】
本方法は、少なくとも1つの作業コンポーネントによる、受け取られた最適化タスクの検出時に、少なくとも1つの作業コンポーネントによって、最適化タスクの関連識別子を通じて、格納された対応する最適化のためのデータを、少なくとも1つの格納コンポーネントから取得することと、少なくとも1つの作業コンポーネントによって、最適化タスクを解決するための最適化モデルを作成することと、少なくとも1つの作業コンポーネントによって、作成された最適化モデルに基づいて、最適化タスクを解決することと、少なくとも1つの作業コンポーネントによって、最適化タスクに対する解決策及び最適化タスクの関連識別子を少なくとも1つの格納コンポーネントに格納することと、をさらに含む。
【0012】
本文脈では、用語「クライアント」は、最適化サービスにアクセスするコンピュータハードウェアまたはソフトウェアの一部として理解されるべきである。最適化サービスは、コンピュータネットワークのクライアントサーバモデルの一部としてサーバによって利用可能になり得る。サーバは、別のコンピュータシステム上にあり得る。クライアントは通常、最適化要求を最適化サービスに送る。用語「クライアント」はまた、クライアントソフトウェアを実行するコンピュータもしくはデバイス、またはクライアントソフトウェアを使用するユーザとしても理解され得る。クライアントは、エンドユーザとは異なり得る。クライアントは、IPアドレスなどのクライアント属性によって定義され得る。
【0013】
いくつかの実施形態の利点は、マイクロサービスを利用するための代替のアプローチが提供されることである。
【0014】
いくつかの実施形態の別の利点は、マイクロサービスアーキテクチャ、最適化サービス(複数可)、及びそれらのコンポーネントの拡張性及び堅牢性が保証されることである。
【0015】
さらに、いくつかの実施形態の利点は、最適化負荷に一致させてリソースの変化する要求が満たされるようにするために、コンポーネントが最適化サービス(複数可)に追加され得るので、拡張化がコンポーネント、たとえば、作業コンポーネントの過負荷のリスクを低減させることである。
【0016】
またさらに、最適化負荷に一致させてリソースの変化する要求が満たされるようにするために、コンポーネントが最適化サービス(複数可)から除去され得るので、拡張化が、コンポーネント、たとえば、作業コンポーネントがアイドル状態になるリスクを低減することである。
【0017】
いくつかの実施形態のさらに別の利点は、1つまたはいくつかの他のコンポーネントが、たとえば、一時的にそのコンポーネントの作業負荷を引き受けることによって、障害を引き起こすリスクのあるコンポーネントを置き換え得るので、堅牢性が、コンポーネント、たとえば、作業コンポーネントの障害のリスクを低減することである。
【0018】
いくつかの実施形態のさらに多くの利点は、マイクロサービスアーキテクチャ、その最適化サービス(複数可)、及びそれらのコンポーネントが、それに応じて開発、更新、及び保守することがより容易になることである。
【0019】
いくつかの実施形態では、本方法は、管理コンポーネントによって、送信された最適化要求に少なくとも基づいて、メタデータを決定することであって、メタデータが、最適化要求の送信データを含む、決定することと、管理コンポーネントによって、決定されたメタデータを少なくとも1つの格納コンポーネントに格納することであって、少なくとも1つの格納コンポーネントが、管理コンポーネントと少なくとも1つの作業コンポーネントの両方にアクセス可能である、格納することと、をさらに含む。
【0020】
いくつかの実施形態の利点は、最適化要求のメタデータが決定され、かつ最適化のためのデータから分離され、それに応じて格納されるので、メタデータは、変化するデータサイズを有し得るペイロードとは対照的に、予測可能であるデータサイズを有し、たとえば、メタデータに対して適切または理想のストレージ解決策を提供または選択する際に最適化サービスに対してストレージ面での利点を提供することである。
【0021】
別の利点は、メタデータが最適化要求に、たとえば、クライアントのユーザ名及びIPアドレスで注釈付けするので、メタデータが、クライアントとクライアントが送信した最適化要求との関連付けを提供することである。最適化がコンポーネントの分散システムにおいて実行されるので、メタデータは、管理コンポーネントがクライアントに関する最適化要求を管理するために必要な注釈を、たとえば、最適化要求を送信したクライアントへの最適化タスクの解決策を更新、停止、提供するステータスにおいて提供する。
【0022】
いくつかの実施形態では、本方法は、管理コンポーネントによって、送信された最適化要求に基づいて、ペイロードを決定することであって、ペイロードが、対応する最適化のためのデータを含む、決定することと、管理コンポーネントによって、決定されたペイロードを少なくとも1つの格納コンポーネントに格納することであって、少なくとも1つの格納コンポーネントが、管理コンポーネントと少なくとも1つの作業コンポーネントとの両方にアクセス可能である、格納することと、をさらに含む。
【0023】
いくつかの実施形態の利点は、最適化要求のペイロードが決定され、メタデータから分離され、それに応じて格納されるので、メタデータがすでに分離されているので、格納されたペイロード自体を最適化のためのデータとして扱うことができることである。最適化はステートレスコンポーネントの分散システムで実行されるので、分離されたペイロードは、作業コンポーネントに必要なさらなる前処理を伴わずに、作業コンポーネントに対する入力を提供する。
【0024】
いくつかの実施形態では、少なくとも1つの格納コンポーネントはデータベースを備える。
【0025】
いくつかの実施形態の利点は、最適化サービス内の単一のストレージ、すなわち、データベースが、メタデータとペイロードの両方に必要とされるストレージを提供することである。したがって、最適化サービスはさらに簡素化され、単一のストレージを実装するだけで、さらに複雑でない最適化サービスを達成し得る。
【0026】
いくつかの実施形態では、少なくとも1つの格納コンポーネントは、データベース及びオブジェクトストレージを含む2つの格納コンポーネントをそれぞれ備える。
【0027】
いくつかの実施形態の利点は、2つの別個のストレージ、すなわち、データベース及びオブジェクトストレージが、データ型固有のストレージ、すなわち、メタデータを格納し得るデータベース、及びペイロードを格納し得るオブジェクトストレージを提供し、オブジェクトストレージは、ペイロードである大きな生データ、すなわち、最適化のためのデータ、書き込み/読み取りデータ、計算データの格納に対してデータ型固有であり、また特に、大量のデータ、たとえば、大きなバイナリデータセット及びバイナリラージオブジェクト(BLOB)、(部分的に)更新される必要がなく、修正される必要がないデータを格納するために効率的である。BLOBは、画像などのバイナリデータの集合体、またはデータベース管理システムにおいて単一の実体として格納される他のマルチメディアオブジェクトである。
【0028】
いくつかの実施形態では、データベースは、メタデータまたはメタデータ及び最適化要求のペイロードを格納するように構成されている。
【0029】
いくつかの実施形態の利点は、データベースがメタデータのみのためのストレージを提供し、それによって、メタデータのデータサイズが予測可能であり、通常、ペイロードよりもデータサイズが小さく、したがって、データベースは、メタデータにのみ専用であるので複雑でなく、サイズが低減され得るということである。SQL及びNoSQLデータベースは、メタデータの格納に使用され得る。メタデータのみを格納するデータベースのさらなる利点は、それが設計の単純さ、より簡素な拡張、及び可用性に対するより細かい制御を提供することである。
【0030】
いくつかの実施形態の利点は、データベースがメタデータとペイロードとの両方に対して必要なストレージを提供し、それによって、最適化サービスがさらに簡素化され、メタデータとペイロードとの両方に専用の単一のストレージを実装するだけでコンポーネント単位でさらに複雑でない最適化サービスを達成し得ることである。
【0031】
いくつかの実施形態では、メタデータは、最適化要求に注釈付けするためのデータを含む。
【0032】
いくつかの実施形態の利点は、メタデータが最適化要求、たとえば、クライアントのユーザ名及びIPアドレスを注釈付け、それによって、注釈がクライアントとクライアントが送信した最適化要求との関連付けを提供することである。
【0033】
いくつかの実施形態では、オブジェクトストレージは、最適化要求のペイロードを格納するように構成されている。
【0034】
いくつかの実施形態の利点は、オブジェクトストレージが、ペイロードである大きな生データ、すなわち、最適化のためのデータのストレージに固有のデータ型であり、また大量のデータ、たとえば、(部分的に)更新される必要のない大きなバイナリデータセットを格納するのに特に効率的であることである。オブジェクトストレージのさらなる利点は、データの拡張性及び安全性を提供することであり、すなわち、あらゆる規模及び業界の顧客が、データが保護されていることを認識して、あらゆる量のデータを格納するためにオブジェクトストレージを使用することができることである。別のさらなる利点は、オブジェクトストレージがデータの可用性及び性能を提供することであり、すなわち、データを使用及び整理することが容易であり、また特定の要件を満たすために細かく調整されたアクセス制御を構成することである。さらに、非構造化データが内部に格納され得る。オブジェクトストレージは、マイクロソフトアジュール及びアマゾンS3などのストレージであり得る。
【0035】
いくつかの実施形態では、ペイロードは、最適化要求に対応する最適化のためのデータを含む。
【0036】
いくつかの実施形態の利点は、決定及び分離されたペイロードが、作業コンポーネントに必要なさらなる前処理を伴わずに、作業コンポーネントに入力を提供することである。
【0037】
いくつかの実施形態では、本方法は、作業コンポーネントによって、少なくとも1つの格納コンポーネントにおける最適化要求のステータスを更新することをさらに含む。
【0038】
いくつかの実施形態の利点は、管理コンポーネント、及び、ひいてはクライアントに、最適化要求の現在のステータスに関する正しいデータが提供されることである。
【0039】
いくつかの実施形態では、本方法は、クライアントによって、管理コンポーネントから最適化要求のステータスを問い合わせることと、クライアントによって、少なくとも1つの格納コンポーネントから取得された最適化要求のステータスを示す通知を管理コンポーネントから受け取ることと、をさらに含む。
【0040】
最適化要求は、ある状態から別の状態に移行する、用途の広いライフサイクルを有し得る。最適化要求は、最終状態及び非最終状態を通じて移行し得る。最終状態の例には、Invalid、Stopped、Critical、及びOptimizedがあり、状態は最終的であり、そして別の状態に移行できなくなるものである。非最終状態の例としては、Queued、Error、及びLoadedがあり、状態は非最終的であり、別の非最終状態または最終状態に依然として移行することができるものである。状態は、管理コンポーネントによってクライアントに通信され得る。状態をクライアントに通信することは、フィードバックが提供されることを保証し、また加えて、特に予期しないエラーが発生した場合により堅牢なシステムを保証する。
【0041】
いくつかの実施形態の利点は、クライアントからの要求に応じて、管理コンポーネント、及び、ひいてはクライアントに最適化要求の現在のステータスが提供されることである。
【0042】
いくつかの実施形態では、本方法は、クライアントからの要求時に管理コンポーネントによって、完了したステータスを有する最適化タスクに対する格納された解決策をクライアントに提供することをさらに含む。
【0043】
いくつかの実施形態の利点は、解決策が完了し、ステータスが少なくとも1つの格納コンポーネント内で完了に設定されたときに、解決策がクライアントに提供されることである。
【0044】
いくつかの実施形態では、本方法は、クライアントからの要求時に管理コンポーネントによって、未完了のステータスを有する最適化タスクのサービスを停止することをさらに含む。
【0045】
いくつかの実施形態の利点は、クライアントが、サービスされている、すなわち、完了する前の最適化タスクを停止し、それによって、最適化サービス内のリソースを解放する機能を有することである。
【0046】
いくつかの実施形態では、少なくとも1つの最適化サービスは、最適化問題を解決するように構成されている。
【0047】
いくつかの実施形態の利点は、最適化サービスが、マイクロサービスアーキテクチャの効率化を可能にする1つの最適化問題に向けられたフレームワークを提供することである。
【0048】
いくつかの実施形態では、少なくとも1つの最適化サービスは、少なくとも2つの作業コンポーネントを含み、少なくとも2つの作業コンポーネントは、同一のインスタンスであり、かつ1つの最適化問題に対応する同じ最適化モデルを作成するように構成されている。
【0049】
いくつかの実施形態の利点は、作業コンポーネントが、マイクロサービスアーキテクチャにおける最適化サービスの拡張化及び効率化を可能にする同じ最適化問題に向けられた共通のフレームワークを共有することである。
【0050】
いくつかの実施形態では、作業コンポーネントは、汎用的な部分及び最適化固有の部分を含む。
【0051】
いくつかの実施形態の利点は、作業コンポーネントが、特定の最適化問題に対応する最適化モデルを作成するように依然として構成可能でありながら、拡張化を可能にする共通の汎用的な部分をある程度共有し得ることである。
【0052】
いくつかの実施形態では、少なくとも1つの最適化サービスのコンポーネントは、ステートレスコンポーネントである。作業コンポーネントは、ステートレスコンポーネントであり得る。コンポーネントがステートレスのとき、最適化サービスサーバはクライアントセッションに関するいかなる状態も格納しない場合がある。代わりに、セッションデータをクライアントに格納し、必要に応じて最適化サービスサーバに渡してもよい。つまり、セッションデータは、インターネット接続が利用可能でないときにクライアントにローカルに格納され、接続が利用可能になったときに、または、セッションデータの要求が受け取られたときに、クラウドにアップロード及び複製される。クライアントは、エンドユーザのデバイスであり得る。
【0053】
いくつかの実施形態の利点は、コンポーネントが迅速に起動及び停止され得る軽量の実装が提供されることである。
【0054】
いくつかの実施形態では、最適化タスクは、アドホック方式で、クライアントによって少なくとも1つの最適化サービスに送信される。
【0055】
いくつかの実施形態の利点は、最適化要求の様々な送信率が満たされ得ることである。
【0056】
いくつかの実施形態では、最適化タスクは、少なくとも1つの最適化基準を含む。
【0057】
いくつかの実施形態の利点は、最適化タスクを完了し、それに応じて解決策を提供し得ることである。
【0058】
いくつかの実施形態では、アーキテクチャは、意思決定支援システム及び/または最適化システムを備え、各システムは、クラウドインフラストラクチャを利用する。
【0059】
いくつかの実施形態の利点は、クラウドインフラストラクチャがサーバレスコンピューティングを提供し、最適化ワークロードの拡張化及び展開が可能になることである。
【0060】
第2の態様は、プログラム命令を含むコンピュータプログラムを内部に有する非一時的コンピュータ可読媒体を備えるコンピュータプログラム製品である。コンピュータプログラムは、データ処理ユニットにロード可能であり、コンピュータプログラムがデータ処理ユニットによって実行されるときに、第1の態様に従って本方法の実行を引き起こすように構成されている。
【0061】
第3の態様は、最適化を提供するためのマイクロサービスアーキテクチャであり、マイクロサービスアーキテクチャは少なくとも1つの最適化サービスを備え、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。
【0062】
アーキテクチャは、実行可能な命令を含むメモリと、メモリと通信するように構成された1つ以上のプロセッサとを含み、1つ以上のプロセッサは、管理コンポーネントによって、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求を受け取ることと、管理コンポーネントによって、対応する最適化のためのデータ及び最適化タスクの作成された関連識別子を少なくとも1つの格納コンポーネントに格納することと、管理コンポーネントによって、最適化タスク及び最適化タスクの関連識別子をメッセージングコンポーネントに送ることと、少なくとも1つの作業コンポーネントによって、受け取られた最適化タスクに対してメッセージングコンポーネントを監視することと、を引き起こすように構成されている。
【0063】
1つ以上のプロセッサは、少なくとも1つの作業コンポーネントによる、受け取られた最適化タスクの検出時に、少なくとも1つの作業コンポーネントによって、最適化タスクの関連識別子を通じて、格納された対応する最適化のためのデータを、少なくとも1つの格納コンポーネントから取得することと、少なくとも1つの作業コンポーネントによって、最適化タスクを解決するための最適化モデルを作成することと、少なくとも1つの作業コンポーネントによって、作成された最適化モデルに基づいて、最適化タスクを解決することと、少なくとも1つの作業コンポーネントによって、最適化タスクに対する解決策及び最適化タスクの関連識別子を少なくとも1つの格納コンポーネントに格納することと、を引き起こすようにさらに構成されている。
【0064】
いくつかの実施形態の利点は、マイクロサービスを利用するための代替のアプローチが提供されることである。
【0065】
いくつかの実施形態の別の利点は、マイクロサービスアーキテクチャ、最適化サービス(複数可)、及びそれらのコンポーネントの拡張性及び堅牢性が保証されることである。
【0066】
さらに、いくつかの実施形態の利点は、最適化負荷に一致させてリソースの変化する要求が満たされるようにするために、コンポーネントが最適化サービス(複数可)に追加され得るので、拡張化がコンポーネント、たとえば、作業コンポーネントの過負荷のリスクを低減させることである。
またさらに、最適化負荷に一致させてリソースの変化する要求が満たされるようにするために、コンポーネントが最適化サービス(複数可)から除去され得るので、拡張化が、コンポーネント、たとえば、作業コンポーネントがアイドル状態になるリスクを低減することである。
【0067】
いくつかの実施形態のさらに別の利点は、1つまたはいくつかの他のコンポーネントが、たとえば、一時的にそのコンポーネントの作業負荷を引き受けることによって、障害を引き起こすリスクのあるコンポーネントを置き換え得るので、堅牢性が、コンポーネント、たとえば、作業コンポーネントの障害のリスクを低減することである。
【0068】
いくつかの実施形態のさらに多くの利点は、マイクロサービスアーキテクチャ、その最適化サービス(複数可)、及びそれらのコンポーネントが、それに応じて開発、更新、及び保守することがより容易になることである。
【0069】
いくつかの実施形態では、1つ以上のプロセッサは、管理コンポーネントによって、少なくとも送信された最適化要求に基づいて、メタデータを決定することであって、メタデータが、最適化要求の送信データを含む、決定することと、管理コンポーネントによって、決定されたメタデータを少なくとも1つの格納コンポーネントに格納することであって、少なくとも1つの格納コンポーネントが、管理コンポーネントと少なくとも1つの作業コンポーネントの両方にアクセス可能である、格納することと、を引き起こすようにさらに構成されている。
【0070】
いくつかの実施形態の利点は、最適化要求のメタデータが決定され、かつ最適化のためのデータから分離され、それに応じて格納されるので、メタデータは、変化するデータサイズを有し得るペイロードとは対照的に、予測可能であるデータサイズを有し、たとえば、メタデータに対して適切または理想のストレージ解決策を提供または選択する際に最適化サービスに対してストレージ面での利点を提供することである。
【0071】
別の利点は、メタデータが最適化要求に、たとえば、クライアントのユーザ名及びIPアドレスで注釈付けするので、メタデータが、クライアントとクライアントが送信した最適化要求との関連付けを提供することである。最適化がコンポーネントの分散システムにおいて実行されるので、メタデータは、管理コンポーネントがクライアントに関する最適化要求を管理するために必要な注釈を、たとえば、最適化要求を送信したクライアントへの最適化タスクの解決策を更新、停止、提供するステータスにおいて提供する。
【0072】
いくつかの実施形態では、1つ以上のプロセッサは、管理コンポーネントによって、送信された最適化要求に基づいて、ペイロードを決定することであって、ペイロードが、対応する最適化のためのデータを含む、決定することと、管理コンポーネントによって、決定されたペイロードを少なくとも1つの格納コンポーネントに格納することであって、少なくとも1つの格納コンポーネントが、管理コンポーネントと少なくとも1つの作業コンポーネントとの両方にアクセス可能である、格納することと、を引き起こすようにさらに構成されている。
【0073】
いくつかの実施形態の利点は、最適化要求のペイロードが決定され、メタデータから分離され、それに応じて格納されるので、メタデータがすでに分離されているので、格納されたペイロード自体を最適化のためのデータとして扱うことができることである。最適化はステートレスコンポーネントの分散システムで実行されるので、分離されたペイロードは、作業コンポーネントに必要なさらなる前処理を伴わずに、作業コンポーネントに対する入力を提供する。
【0074】
いくつかの実施形態では、少なくとも1つの格納コンポーネントはデータベースを備える。
【0075】
いくつかの実施形態の利点は、最適化サービス内の単一のストレージ、すなわち、データベースが、メタデータとペイロードの両方に必要とされるストレージを提供することである。したがって、最適化サービスはさらに簡素化され、単一のストレージを実装するだけで、さらに複雑でない最適化サービスを達成し得る。
いくつかの実施形態では、少なくとも1つの格納コンポーネントは、データベース及びオブジェクトストレージを含む2つの格納コンポーネントをそれぞれ備える。
【0076】
いくつかの実施形態の利点は、2つの別個のストレージ、すなわち、データベース及びオブジェクトストレージが、データ型固有のストレージ、すなわち、メタデータを格納し得るデータベース、及びペイロードを格納し得るオブジェクトストレージを提供し、オブジェクトストレージは、ペイロードである大きな生データ、すなわち、最適化のためのデータ、また特に、大量のデータ、たとえば、大きなバイナリデータセット、(部分的に)更新される必要がないデータを格納するために効率的である。
【0077】
いくつかの実施形態では、データベースは、メタデータまたはメタデータ及び最適化要求のペイロードを格納するように構成されている。
【0078】
いくつかの実施形態の利点は、データベースがメタデータのみのためのストレージを提供し、それによって、メタデータのデータサイズが予測可能であり、通常、ペイロードよりもデータサイズが小さく、したがって、データベースは、メタデータにのみ専用であるので複雑でなく、サイズが低減され得るということである。
【0079】
いくつかの実施形態の利点は、データベースがメタデータとペイロードとの両方に対して必要なストレージを提供し、それによって、最適化サービスがさらに簡素化され、メタデータとペイロードとの両方に専用の単一のストレージを実装するだけでコンポーネント単位でさらに複雑でない最適化サービスを達成し得ることである。
【0080】
いくつかの実施形態では、メタデータは、最適化要求に注釈付けするためのデータを含む。
【0081】
いくつかの実施形態の利点は、メタデータが最適化要求、たとえば、クライアントのユーザ名及びIPアドレスを注釈付け、それによって、注釈がクライアントとクライアントが送信した最適化要求との関連付けを提供することである。
【0082】
いくつかの実施形態では、オブジェクトストレージは、最適化要求のペイロードを格納するように構成されている。
【0083】
いくつかの実施形態の利点は、オブジェクトストレージが、ペイロードである大きな生データ、すなわち、最適化のためのデータのストレージに固有のデータ型であり、また大量のデータ、たとえば、(部分的に)更新される必要のない大きなバイナリデータセットを格納するのに特に効率的であることである。
【0084】
いくつかの実施形態では、ペイロードは、最適化要求に対応する最適化のためのデータを含む。
【0085】
いくつかの実施形態の利点は、決定及び分離されたペイロードが、作業コンポーネントに必要なさらなる前処理を伴わずに、作業コンポーネントに入力を提供することである。
いくつかの実施形態では、1つ以上のプロセッサは、作業コンポーネントによって、少なくとも1つの格納コンポーネント内の最適化要求のステータスの更新を引き起こすようにさらに構成されている。
【0086】
いくつかの実施形態の利点は、管理コンポーネント、及びひいてはクライアントに、最適化要求の現在のステータスに関する正しいデータが提供されることである。
【0087】
いくつかの実施形態では、1つ以上のプロセッサは、クライアントによって、管理コンポーネントから最適化要求のステータスを問い合わせることと、クライアントによって、少なくとも1つの格納コンポーネントから取得された最適化要求のステータスを示す通知を管理コンポーネントから受け取ることと、を引き起こすようにさらに構成されている。
【0088】
いくつかの実施形態の利点は、クライアントからの要求に応じて、管理コンポーネント、及び、ひいてはクライアントに最適化要求の現在のステータスが提供されることである。
【0089】
いくつかの実施形態では、1つ以上のプロセッサは、クライアントからの要求時に管理コンポーネントによって、完了したステータスを有する最適化タスクに対する格納された解決策をクライアントに提供することを引き起こすようにさらに構成されている。
【0090】
いくつかの実施形態の利点は、解決策が完了し、ステータスが少なくとも1つの格納コンポーネント内で完了に設定されたときに、解決策がクライアントに提供されることである。
【0091】
いくつかの実施形態では、1つ以上のプロセッサは、クライアントからの要求時に管理コンポーネントによって、未完了のステータスを有する最適化タスクのサービスを停止させることを引き起こすようにさらに構成されている。
【0092】
いくつかの実施形態の利点は、クライアントが、サービスされている、すなわち、完了する前の最適化タスクを停止し、それによって、最適化サービス内のリソースを解放する機能を有することである。
【0093】
いくつかの実施形態では、少なくとも1つの最適化サービス(310)は、最適化問題を解決するように構成されている。
【0094】
いくつかの実施形態の利点は、最適化サービスが、マイクロサービスアーキテクチャの効率化を可能にする1つの最適化問題に向けられたフレームワークを提供することである。
【0095】
いくつかの実施形態では、少なくとも1つの最適化サービスは、少なくとも2つの作業コンポーネントを含み、少なくとも2つの作業コンポーネントは、同一のインスタンスであり、かつ1つの最適化問題に対応する同じ最適化モデルを作成するように構成されている。
【0096】
いくつかの実施形態の利点は、作業コンポーネントが、マイクロサービスアーキテクチャにおける最適化サービスの拡張化及び効率化を可能にする同じ最適化問題に向けられた共通のフレームワークを共有することである。
【0097】
いくつかの実施形態では、作業コンポーネントは、汎用的な部分及び最適化固有の部分を含む。
【0098】
いくつかの実施形態の利点は、作業コンポーネントが、特定の最適化問題に対応する最適化モデルを作成するように依然として構成可能でありながら、拡張化を可能にする共通の汎用的な部分をある程度共有し得ることである。最適化モデルは、最適化を実行するために使用される数学的モデル及び/またはデータ構造を含み得る。最適化モデルは、線形計画法、混合整数計画法、非線形最適化、制約付き最適化など、多くの数学的最適化クラスに取り組み得、クリティカルパス分析またはプロジェクト計画、フロア計画、すなわち、製造時間を短縮するために工場内の設備またはコンピュータチップ上のコンポーネントのレイアウトの設計、ネットワーク最適化、リソース割り当て問題、施設配置、割り当ての問題など、様々な分野で使用され得る。
【0099】
いくつかの実施形態では、少なくとも1つの最適化サービスのコンポーネントは、ステートレスコンポーネントである。
【0100】
いくつかの実施形態の利点は、コンポーネントが迅速に起動及び停止され得る軽量の実装が提供されることである。
【0101】
いくつかの実施形態では、最適化タスクは、アドホック方式で、クライアントによって少なくとも1つの最適化サービスに送信される。
【0102】
いくつかの実施形態の利点は、最適化要求の様々な送信率が満たされ得ることである。
【0103】
いくつかの実施形態では、最適化タスクは、少なくとも1つの最適化基準を含む。
【0104】
いくつかの実施形態の利点は、最適化タスクを完了し、それに応じて解決策を提供し得ることである。
【0105】
いくつかの実施形態では、アーキテクチャは、意思決定支援システム及び/または最適化システムを備え、各システムは、クラウドインフラストラクチャを利用する。
【0106】
いくつかの実施形態の利点は、クラウドインフラストラクチャがサーバレスコンピューティングを提供し、最適化ワークロードの拡張化及び展開が可能になることである。
【0107】
さらなる目的、特徴、及び利点は、添付の図面を参照しながら、以下の実施形態の詳細な説明から明らかになるであろう。図面は必ずしも縮尺どおりではなく、代わりに例示的な実施形態を説明することに重点が置かれている。
【図面の簡単な説明】
【0108】
【
図1】いくつかの実施形態による例示的な方法ステップを示すフローチャートである。
【
図2a】いくつかの実施形態による例示的なシーケンスステップを示すシーケンス図である。
【
図2b】いくつかの実施形態による例示的なシーケンスステップを示すシーケンス図である。
【
図2c】いくつかの実施形態による例示的なシーケンスステップを示すシーケンス図である。
【
図2d】いくつかの実施形態による例示的なシーケンスステップを示すシーケンス図である。
【
図2e】いくつかの実施形態による例示的なシーケンスステップを示すシーケンス図である。
【
図2f】いくつかの実施形態による例示的な状態を示す状態図である。
【
図3】いくつかの実施形態による例示的なアーキテクチャを示す概略ブロック図である。
【
図4】いくつかの実施形態による例示的な構成を示す概略ブロック図である。
【
図5】いくつかの実施形態による例示的なコンピュータ可読媒体を示す概略図である。
【発明を実施するための形態】
【0109】
すでに上述したように、用語「含む(comprise)」及び/または「備える(comprising)」は、本明細書で使用されるとき、述べられる特徴、整数、ステップ、または構成要素の存在を指定するためにとられるが、1つ以上の他の特徴、整数、ステップ、構成要素、またはそれらのグループの存在または追加を排除しないことが強調されるべきであろう。本明細書で使用する場合、単数形「a」、「an」、及び「the」は、文脈が別途明らかに示さない限り、複数形も含むことを意図する。
【0110】
本開示の実施形態は、添付の図面を参照して、以下により完全に記載及び例示される。しかしながら、本明細書に開示される解決策は、多くの異なる形態で実現することができ、本明細書に記載された実施形態に限定されるものとして解釈されるべきではない。
【0111】
上述したように、マイクロサービスは、データアクセシビリティ、インフラストラクチャオーバーヘッド、及び、より複雑なシステムなど、いくつかの欠点をもたらす。
【0112】
上記または他の欠点のうちの少なくともいくつかを解決もしくは軽減、緩和、または排除することが、いくつかの実施形態の目的である。
【0113】
以下では、マイクロサービスを利用するための代替のアプローチが記載される実施形態が提示される。
【0114】
より具体的には、提示された実施形態は、マイクロサービスアーキテクチャにおける最適化に関連する技術を記載する。
【0115】
図1は、いくつかの実施形態による例示的な最適化方法100の方法ステップを示すフローチャートである。最適化方法100は、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、最適化方法100は、たとえば、
図3のアーキテクチャ300及び/または
図4の構成400及び/または
図5のコンピュータプログラム製品500によって実行され得る。
【0116】
最適化方法100は、以下のステップを含む。
【0117】
ステップ101において、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求が、管理コンポーネントによって受け取られる。
【0118】
代替的または追加的に、最適化要求の受け取りは、最適化要求の受け取り及び/または受け入れを含み得る。
【0119】
代替的または追加的に、最適化要求は、アドホック方式で少なくとも1つの最適化サービスにクライアントによって送信され得、アドホック方式は、自動的に実行されるスケジュールされたジョブとは対照的に、使用開始型最適化を含む。
【0120】
ステップ102において、いくつかの実施形態では、送信された最適化要求に少なくとも基づくメタデータは、管理コンポーネントによって決定される。メタデータは、最適化要求の送信データを含む。
【0121】
たとえば、決定されたメタデータは、ユーザ名、日付、及び時刻などを含み得る。
【0122】
代替的または追加的に、メタデータは、最適化要求に注釈付けするためのデータを含み、注釈は、最適化要求を定義することと、最適化要求を送信するクライアントを、たとえばクライアントのユーザ名及びIPアドレスで識別することと、を含む。
【0123】
ステップ103において、いくつかの実施形態では、送信された最適化要求に基づくペイロードは、管理コンポーネントによって決定される。ペイロードは、対応する最適化のためのデータを含む。
【0124】
ステップ104において、対応する最適化のためのデータ及び最適化タスクの作成された関連識別子は、管理コンポーネントによって少なくとも1つの格納コンポーネントに格納される。
【0125】
ステップ104aにおいて、いくつかの実施形態では、決定されたメタデータは、管理コンポーネントによって、少なくとも1つの格納コンポーネントに格納され、少なくとも1つの格納コンポーネントは、管理コンポーネントと、任意選択で少なくとも1つの作業コンポーネントとの両方にアクセス可能である。
【0126】
ステップ104bにおいて、いくつかの実施形態では、決定されたペイロードは、管理コンポーネントによって、少なくとも1つの格納コンポーネントに格納され、少なくとも1つの格納コンポーネントは、管理コンポーネントと、少なくとも1つの作業コンポーネントとの両方にアクセス可能である。
【0127】
ステップ105において、最適化タスク及び最適化タスクの関連識別子は、管理コンポーネントによって、メッセージングコンポーネントに送られる。
【0128】
代替的または追加的に、最適化タスク及び関連識別子を送ることは、最適化タスク及び関連識別子をメッセージングコンポーネント内のキューに入れることを含み得る。
【0129】
ステップ106において、メッセージングコンポーネントは、受け取られた最適化タスクに対して、少なくとも1つの作業コンポーネントによって監視される。
【0130】
ステップ107において、受け取られた最適化タスクは、少なくとも1つの作業コンポーネントによって検出され、それによって、方法がステップ108に続くか(ステップ107からのYESパス)、または、そうではなく、方法がステップ106に戻る(ステップ107からのNOパス)かのいずれかである。
【0131】
ステップ108において、格納された対応する最適化のためのデータは、最適化タスクの関連識別子を通じて、少なくとも1つの作業コンポーネントによって、少なくとも1つの格納コンポーネントから取得される。
【0132】
代替的または追加的に、たとえばペイロード内の情報に基づく最適化のための追加のデータは、最適化問題を定式化するために少なくとも1つの作業コンポーネントによってフェッチされ得る。
【0133】
たとえば、対応する最適化のためのデータは、それに応じてフェッチされる追加のデータのための1つ以上の参照を提供し得る。
【0134】
たとえば、少なくとも1つの作業コンポーネントは、アプリケーションプログラミングインターフェース(API)、データベース、または他のストレージシステムから最適化タスクの追加のデータをフェッチし得る。
【0135】
ステップ109において、最適化タスクを解決するための最適化モデルが、少なくとも1つの作業コンポーネントによって作成される。
【0136】
代替的または追加的に、最適化モデルは、最適化を実行するために使用される数学的モデル及び/またはデータ構造を含み得る。
【0137】
たとえば、最適化モデルは、意思決定問題に対して最良または良好な結果を見つけるアルゴリズムを含み得る。
【0138】
たとえば、最適化モデルの作成は、たとえば、ステップ110において、解決のための数学的モデルを指定することを含み得、解決は、商用もしくはオープンソースの解決器またはヒューリスティックを通じて実行され得る。
【0139】
ステップ110において、最適化タスクは、少なくとも1つの作業コンポーネントによって作成された最適化モデルに基づいて解決される。
【0140】
たとえば、最適化タスクは、少なくとも1つの作業コンポーネントによって作成された最適化モデルにアルゴリズムを適用することによって解決される。
【0141】
ステップ111において、最適化タスクの解決策及び最適化タスクの関連識別子は、少なくとも1つの作業コンポーネントによって、少なくとも1つの格納コンポーネントに格納される。
【0142】
図2aは、いくつかの実施形態による例示的な最適化シーケンス200aのいくつかのシーケンスステップを示すシーケンス図である。最適化シーケンス200aは、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、最適化シーケンス200aは、たとえば、
図3のアーキテクチャ300及び/または
図4の構成400及び/または
図5のコンピュータプログラム製品500によって実行され得る。
【0143】
最適化シーケンス200aは、以下のステップを含む。
【0144】
図1のステップ101に対応するステップ201において、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求が、管理コンポーネントマネージャによって受け取られる。
【0145】
たとえば、対応する最適化のためのデータ、つまりペイロードは、ユースケースに応じてさまざまな形式及びサイズを有することができ、たとえば、ペイロードは、既存のデータ(シナリオ識別子など)への参照、最適化のユーザ構成、最適化のためのインスタンス全体、または3つの組み合わせのいずれかとすることができる。各選択肢は、ペイロードのサイズ、クライアントへの可用性、内部識別子へのアクセス性など、さまざまな長所及び短所、ならびにトレードオフを有する。
【0146】
ステップ202-1において、最適化タスクの関連識別子は、管理コンポーネントマネージャ(Manager)によって作成される。関連識別子は、最適化要求の識別データを含む。
【0147】
たとえば、作成された識別子は、グローバル一意識別子を含み得る。
【0148】
図1のステップ102に対応するステップ202-2において、少なくとも送信された最適化要求に基づくメタデータは、管理コンポーネントマネージャによって決定される。メタデータは、最適化要求の送信データを含む。
【0149】
代替的または追加的に(図示せず)、
図3のステップ103に対応して、送信された最適化要求に基づくペイロードは、管理コンポーネントマネージャによって決定される。ペイロードは、対応する最適化のためのデータを含む。
【0150】
図1のステップ104aに対応するステップ203において、決定されたメタデータは、管理コンポーネントマネージャによって少なくとも1つの格納コンポーネントデータベース(Database)に格納され、データベースは、管理コンポーネントマネージャと任意選択で少なくとも1つの作業コンポーネントワーカー(Worker)との両方にアクセス可能である。
【0151】
図1のステップ104bに対応するステップ204において、決定されたペイロードは、管理コンポーネントマネージャによって少なくとも1つの格納コンポーネントストレージ(Storage)(オブジェクトストレージ(Object Storage))に格納され、少なくとも1つの格納コンポーネントストレージは、マネージャと少なくとも1つの作業コンポーネントワーカーとの両方の管理コンポーネントにアクセス可能である。
【0152】
図1のステップ105に対応するステップ205において、最適化タスク及び最適化タスクの関連識別子が、管理コンポーネントマネージャによってメッセージングコンポーネントキュー(Queue)に送られる。
【0153】
代替的または追加的に、最適化タスクがキューイングされたときに、最適化タスクがクライアントに確認され、関連識別子がクライアントに返され、これによりクライアントは関連識別子を使用して後で最適化タスクを参照することができる。
【0154】
図2bは、いくつかの実施形態による例示的な最適化シーケンス200bのいくつかのシーケンスステップを示すシーケンス図である。最適化シーケンス200bは、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、最適化シーケンス200bは、たとえば、
図3のアーキテクチャ300及び/または
図4の構成400及び/または
図5のコンピュータプログラム製品500によって実行され得る。
【0155】
最適化シーケンス200bは、以下のステップを含む。
【0156】
ステップ207において、
図1のステップ106及び107に対応して、メッセージングコンポーネントキューは、受け取られた最適化タスクに対して少なくとも1つの作業コンポーネントワーカーによって監視され、受け取られた最適化タスクの検出時に、作業コンポーネントワーカーは、受け取られた最適化タスクの関連識別子を受け取る。
【0157】
代替的または追加的に、作業コンポーネントワーカーは、最適化の実行を担当し、管理コンポーネントマネージャがメッセージとも呼ばれる新しい最適化要求を入力するメッセージングコンポーネントキュー内のキューにサブスクライブする。複数の作業コンポーネントワーカー、すなわち、ワーカーコンポーネントのインスタンスが実行されている場合、メッセージングコンポーネントキューは、たとえば、ラウンドロビンの負荷分散メカニズムに基づいて作業コンポーネントを選択する。
【0158】
図1のステップ108に対応するステップ208において、格納された対応する最適化のためのデータが取得され、すなわち、少なくとも1つの作業コンポーネントワーカーによって、少なくとも1つの格納コンポーネントストレージ(オブジェクトストレージ)から、最適化タスクの関連識別子を介して取り出され、ロードされる。
【0159】
代替的または追加的に、作業コンポーネントワーカーは、API、データベース、または、その他のストレージシステムから最適化タスクのための追加データをロードし得る。
【0160】
図1のステップ109に対応するステップ209において、最適化タスクを解決するための最適化モデルが、少なくとも1つの作業コンポーネントワーカーによって作成される。
【0161】
代替的または追加的に、格納された対応する最適化のためのデータが取得され、最適化タスクを解決するための最適化モデルが作成されたときに、データの取得及び最適化モデルの作成がクライアントに告知または公開される。
【0162】
ステップ110に対応するステップ210において、最適化タスクは、少なくとも1つの作業コンポーネントワーカーによって作成された最適化モデルに基づいて解決される。
【0163】
たとえば、最適化のためのデータは変換され、これは、プログラミングフレームワーク、解決器固有のライブラリ、または(メタ)ヒューリスティックに使用されるデータ構造における数学的モデルの構築を含み得る。
【0164】
ステップ111に対応するステップ211において、最適化タスクの解決策及び最適化タスクの関連識別子は、少なくとも1つの作業コンポーネントワーカーによって少なくとも1つの格納コンポーネントストレージ(オブジェクトストレージ)に格納される。
【0165】
代替的または追加的に、最適化タスクの解決策及び最適化タスクの関連識別子が格納されたときに、格納された解決策及び新しい状態が管理コンポーネントマネージャに告知または公開される。
【0166】
図2cは、いくつかの実施形態による例示的な最適化シーケンス200cのいくつかのシーケンスステップを示すシーケンス図である。最適化シーケンス200cは、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、最適化シーケンス200cは、たとえば、
図3のアーキテクチャ300及び/または
図4の構成400及び/または
図5のコンピュータプログラム製品500によって実行され得る。
【0167】
最適化シーケンス200cは、以下のステップを含む。
ステップ212において、管理コンポーネントマネージャは、クライアントの開始時に、たとえば、クライアントによって管理コンポーネントマネージャをポーリングし、最適化タスクの関連識別子を提供し、最適化タスクの状態を少なくとも1つの格納コンポーネントデータベースに問い合わせることを通じて、最適化タスクのステータスを確認する。
【0168】
代替的にまたは追加的に、最適化タスクの解決策及び最適化タスクの関連識別子が少なくとも1つの格納コンポーネントストレージ(オブジェクトストレージ)に格納されるとき、このことがクライアントに認識され得、これにより、クライアントが格納された解決策を少なくとも1つの格納コンポーネントから取り出す(たとえば、ダウンロードする)ことができるようにする。
【0169】
たとえば、クライアントは、要求のステータスをチェックするために、ロングポーリングまたは非同期的に異なるアプローチを使用してもよく、ロングポーリングは、通常、クライアント(たとえば、ウェブサイト)をブロックし、最適化が進行中であるという何らかの指示を表示するのに対し、非同期的には、ユーザが更新をチェックすることを意味する。
代替的または追加的に、状態が設定された日時を含むステータスに任意選択のメッセージが追加され得る。
【0170】
ステップ213において、最適化タスクのステータスが「Optimized」であるとき、解決策は、少なくとも1つの格納コンポーネントストレージ(オブジェクトストレージ)から管理コンポーネントマネージャによって取り出され、たとえば、フェッチされる。
【0171】
ステップ214において、取り出された解決策は、管理コンポーネントマネージャによってクライアントに提供される。
【0172】
代替的にまたは追加的に、取り出されたクライアントへの解決策及び少なくとも1つの格納コンポーネントストレージ(オブジェクトストレージ)内の生データを含む解決策へのURLを提供する代わりに、たとえば、リクエスト固有のアクセストークンを作成し、それをURLと共に提供し、それによって、クライアントのみが格納された解決策にアクセス及びダウンロードするための情報を有する。
【0173】
図2dは、いくつかの実施形態による例示的な最適化シーケンス200dのいくつかのシーケンスステップを示すシーケンス図である。最適化シーケンス200dは、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、最適化シーケンス200dは、たとえば、
図3のアーキテクチャ300及び/または
図4の構成400及び/または
図5のコンピュータプログラム製品500によって実行され得る。
【0174】
最適化シーケンス200dは、以下のステップを含む。
【0175】
ステップ215において、管理コンポーネントマネージャは、最適化タスクの関連識別子を提供するクライアントの開始時に、最適化タスクのステータスを少なくとも1つの格納コンポーネントデータベースに問い合わせることを通じて、最適化タスクのステータスをチェックする。
【0176】
ステップ216において、最適化タスクのステータスが決定され、新しいステータスを含む確認応答がクライアントに送られる。
【0177】
代替的または追加的に、クライアントは、管理コンポーネントマネージャが最適化ステータスの現在のステータスをチェックすることによって、最適化タスクのステータスを問い合わせることができる。
【0178】
図2eは、いくつかの実施形態による例示的な最適化シーケンス200eのいくつかのシーケンスステップを示すシーケンス図である。最適化シーケンス200eは、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、最適化シーケンス200eは、たとえば、
図3のアーキテクチャ300及び/または
図4の構成400及び/または
図5のコンピュータプログラム製品500によって実行され得る。
【0179】
最適化シーケンス200eは、以下のステップを含む。
【0180】
ステップ217において、管理コンポーネントマネージャは、最適化タスクの関連識別子を提供するクライアントの開始時に、最適化タスクのステータスを少なくとも1つの格納コンポーネントデータベースに問い合わせることを通じて、最適化タスクのステータスをチェックする。
【0181】
ステップ218において、最適化タスクのステータスが「Invalid」、「Stopped」、「Critical」、及び「Optimized」などの最終状態にない場合、最適化タスクの処理は、管理コンポーネントマネージャによって停止される。
【0182】
代替的または追加的に、クライアントは、管理コンポーネントマネージャが最適化ステータスの現在のステータスをチェックすることによって、最適化タスクの処理を停止することができる。
【0183】
図2fは、いくつかの実施形態による例示的な最適化シーケンス200a、200b、200c、200d、及び200eのいくつかの状態を示す状態図である。状態
図200fは、最適化要求の状態及びそれらの移行を示す。状態
図200fは、状態マシンとして視覚化された、最適化要求のライフサイクルを示す。提示された状態は最小バージョンであり、特定のユースケースに必要な場合は、より詳細な状態を導入することができる。
【0184】
最終状態の例には、Invalid、Stopped、Critical、及びOptimizedがあり、状態は最終的であり、そして別の状態に移行できなくなるものである。
【0185】
非最終状態の例としては、Queued、Error、及びLoadedがあり、状態は非最終的であり、別の非最終状態または最終状態に依然として移行することができるものである。
【0186】
最適化要求が正常に送信されると、その状態は管理コンポーネントによってQueuedに設定され、それが作業コンポーネントによってピックアップされるであろうことを示している。最適化要求が作業コンポーネントによってピックアップされると、データはそのソースから(たとえば、入力データ、他のAPI、データベース、またはデータストアから直接)ロードされ、最適化のために準備される。これは、たとえば、フレームワークにおける数学的モデルの設定またはヒューリスティックの初期化を含むことができる。その状態は、作業コンポーネントによってLoadedに設定される。したがって、データのロード中にいずれかの問題が発生した場合、状態はError及びQueuedに再び移行することができる。最適化が終了し、解決策が格納されると、そのステータスはOptimizedに設定され、管理コンポーネントは要求に応じて格納された解決策をクライアントに返すことができる。クライアントが要求を停止した場合、非最終ステータスはStoppedになり、さらなる状態変更は実行されない。
【0187】
作業コンポーネントが無効な入力データ(たとえば、間違った形式)を認識したとき、状態はInvalidに設定されてユーザ固有のエラーを示す。要求の最適化中に、予期される、または、予期しないエラーが発生する可能性がある。これらのエラーは、状態Errorにつながる。ユースケース及び/または例外に応じて、システムは、エラーが修正されるまでしばらく待機してから要求を再キューイングしようとし得る。ただし、最終的には、数回試行した後で解決策が見つからなかった場合、システムは状態Criticalになり、これは最適化サービスによってさらなるアクションが実行されないことを示している。
【0188】
全体として、最適化要求は、少なくとも1つのワーカーが使用可能であり、解決策方法が有限である場合、最終状態のうちの1つがOptimized、Stopped、Invalid、またはCriticalになる。クライアントが正しく機能するには、これらの状態のうちの1つで終了するために最適化サービスに依存することが重要である。状態をクライアントに通信することは、フィードバックが提供されることを保証し、また加えて、予期しないエラーが発生した場合により堅牢なシステムを保証する。
【0189】
図3は、いくつかの実施形態による例示的なマイクロサービスアーキテクチャ300のコンポーネントを示す概略ブロック図である。マイクロサービスアーキテクチャ300は、最適化を提供するためのものであり、少なくとも1つの最適化サービス310を備え、少なくとも1つの最適化サービス310は、少なくとも1つの最適化サービス310へのアクセスをクライアント1に提供するように構成された管理コンポーネント311と、最適化要求をキューイングするように構成されたメッセージングコンポーネント312と、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネント313と、少なくとも1つの格納コンポーネント314と、を備え、少なくとも1つの最適化サービス310におけるコンポーネント311、312、313、314は、互いに動作可能に接続されている。したがって、マイクロサービスアーキテクチャ300は、たとえば、
図1の方法ステップ、
図2a~2eのいずれかのシーケンスステップを実行し、マイクロサービスアーキテクチャ300に送信された任意の最適化タスクに対して
図2fの状態を設定し得る。
【0190】
マイクロサービスアーキテクチャ300は、最適化を提供するためのものであり、最適化は、特定の最適化問題を解決するウェブサービスとしての数学的最適化を含み得る。
【0191】
マイクロサービスアーキテクチャ300は、サービスとしての最適化(OaaS)と呼ばれる場合があり、複数のアプリケーションから利用できる単一の最適化ユースケースへのマイクロサービスアプローチを反映している。
【0192】
本明細書に記載される最適化は、最適化を消費者に迅速に提供することができるソフトウェアサービスまたはウェブインターフェースを備え得る。
【0193】
本明細書に記載されるコンポーネントは、独立して開発及びテストされ得る独立したソフトウェアプロセスで構成され、ネットワーク通信及び/または共有ストレージを介して疎結合され、相互作用する。
【0194】
たとえば、コンポーネントは、独立して、さまざまなプログラミング言語やプラットフォームで開発及びテストされ得る。
【0195】
本明細書に記載されるステートレスコンポーネントは、それ自体の状態を保持しないが、機能を実行して結果を返すように構成された単なるコンポーネントであり、メモリの節約及びクリーンでシンプルな実装と、同一の作業コンポーネントとを可能にする。
【0196】
マイクロサービスアーキテクチャ300は以下に基づいている。
・ステートレスコンポーネントを含む少なくとも1つの最適化サービス、
・1つの特定の最適化ユースケースに対処する少なくとも1つの最適化サービス310、及び
・アドホック方式で最適化を実行すること。
最適化サービス310は、以下のコンポーネントを必要とする。
・最適化サービスへの外部クライアントアクセスを提供するように構成された管理コンポーネント311、マネージャ、
・一度に1つの数学的最適化を解決するように構成された作業コンポーネント313、ワーカー、
・メッセージングコンポーネント312、メッセージングシステムであって、非同期要求処理を可能にするために作業コンポーネントの最適化要求をキューイングするように構成されており、たとえば、管理コンポーネントは、最適化がトリガーされたときに最適化要求をキューに追加し得、再び直ちに応答し、作業コンポーネントは、最適化のための入ってくる要求を受け取り、潜在的に長く続くタスクで作業するためのキューにサブスクライブするもの、
・最適化要求、ステータス変更、識別子、または送信情報のためのメタデータを格納するように構成され、管理コンポーネントのみがこの格納コンポーネントに対して読み取り及び書き込みを行った格納コンポーネント314、データベース、
・いくつかの実施形態における、格納コンポーネント315(図示せず)、オブジェクトストレージであって、最適化要求の送信時に提供されたデータ、作業コンポーネントのデバッグまたは中間データ、及び最終的な最適化解決策を含む最適化のための必要な生データを格納するように構成された、管理コンポーネントと作業コンポーネントとの両方が読み取りと書き込みを行うもの。
【0197】
図3はクライアント1-nと最適化サービス310及び320との相互作用を示しており、さまざまな最適化問題を解決している。これらの最適化サービス310及び320は、異なるプログラミング言語を使用して、異なる位置で、異なるチームによって潜在的に開発され得る。クライアント1-n、たとえば、ウェブインターフェースまたは他のサービスは、ユーザが最適化のためのデータを選択するか、パラメータを調整するか、または最適化のシナリオを定義することを可能にする。各最適化サービス310及び320は、1つの最適化問題のために特別に構築され得るが、マイクロサービスアーキテクチャ300は、クライアント1-nがそれらのスコープに基づいて1つ以上の最適化サービスにアクセスすることに柔軟に対応することができる。
【0198】
図3に示されるように、クライアント301は、最適化サービス310の管理コンポーネント311とインターフェースし、最適化のトリガー、そのステータス、及び解決策の提供、ならびに最適化の停止を担当する。管理コンポーネント311は、他の最適化のブロックを回避するために実際の最適化を解決していない。代わりに、最適化要求をキュー、すなわちメッセージングコンポーネント312にキューイングし、これにより作業コンポーネント313は、最適化を非同期的に解決することに集中することができる。作業コンポーネント313は、異なるユースケース間で機能を共有するための一般的な部分と、特定のモデル及び解決策方法を実装するための最適化固有の部分とを含む。そのうえ、作業コンポーネント313は、要求のステータスを更新し、その解決策を格納することを担当する。
【0199】
したがって、マイクロサービスアーキテクチャ300は、少なくとも1つの最適化サービス310を備え、少なくとも1つの最適化サービスは、少なくとも1つの最適化サービスへのアクセスをクライアント301に提供するように構成された管理コンポーネント311と、最適化要求をキューイングするように構成されたメッセージングコンポーネント312と、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネント313と、少なくとも1つの格納コンポーネント314と、を備え、少なくとも1つの最適化サービス310におけるコンポーネント311、312、313、314は、互いに動作可能に接続されている。
【0200】
マイクロサービスアーキテクチャ300は、実行可能な命令を含むメモリと、メモリと通信するように構成された1つまたは複数のプロセッサとをさらに備え、1つ以上のプロセッサは、管理コンポーネント311によって、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求を受け取ることと、管理コンポーネント311によって、対応する最適化のためのデータ及び最適化タスクの作成された関連識別子を少なくとも1つの格納コンポーネント314に格納することと、管理コンポーネント311によって、最適化タスク及び最適化タスクの関連識別子をメッセージングコンポーネント312に送ることと、少なくとも1つの作業コンポーネント313によって、受け取られた最適化タスクに対してメッセージングコンポーネント312を監視することと、を引き起こすように構成されている。
【0201】
1つ以上のプロセッサは、少なくとも1つの作業コンポーネント313による、受け取られた最適化タスクの検出時に、少なくとも1つの作業コンポーネント313によって、最適化タスクの関連識別子を通じて、格納された対応する最適化のためのデータを、少なくとも1つの格納コンポーネント314から取得することと、少なくとも1つの作業コンポーネント(313)によって、最適化タスクを解決するための最適化モデルを作成することと、少なくとも1つの作業コンポーネント313によって、作成された最適化モデルに基づいて、最適化タスクを解決することと、少なくとも1つの作業コンポーネント313によって、最適化タスクに対する解決策及び最適化タスクの関連識別子を少なくとも1つの格納コンポーネント314に格納することと、を引き起こすようにさらに構成されている。
【0202】
したがって、マイクロサービスアーキテクチャは、テスト、保守が容易で、独立して自動的にスケーラブルであり、最適化開発者の小さなチームによって管理できる小さな分散コンポーネントに焦点を当てているため、拡張性、堅牢性、及び管理可能で小さなサービスが提供される場合がある。
【0203】
図4は、いくつかの実施形態による例示的なマイクロサービス構成400を例示する概略ブロック図である。マイクロサービス構成400は、少なくとも1つの最適化サービスを備えるマイクロサービスアーキテクチャにおける最適化を提供するためのものであり、少なくとも1つの最適化サービスが、少なくとも1つの最適化サービスへのアクセスをクライアントに提供するように構成された管理コンポーネントと、最適化要求をキューイングするように構成されたメッセージングコンポーネントと、最適化タスクを解決するように構成された少なくとも1つの作業コンポーネントと、少なくとも1つの格納コンポーネントと、を備え、少なくとも1つの最適化サービスのコンポーネントが、互いに動作可能に接続されている。したがって、マイクロサービス構成400は、たとえば、
図1の方法ステップ、
図2a~2eのいずれかのシーケンスステップを実行し、マイクロサービス構成400に送信された任意の最適化タスクに対して
図2fの状態を設定し得る。
【0204】
構成400は、デバイス制御回路(CNTR、たとえば、コントローラまたは制御モジュール)420を含み、これは、次に、受信機401、たとえば受信回路であって、最適化タスク及び対応する最適化のためのデータを含む、クライアントから送信された最適化要求を受け取るように構成された受信機と、格納器404、たとえば格納回路であって、対応する最適化のためのデータ及び最適化タスクの作成済み関連識別子をストレージ430に格納するように構成されている、格納器と、送り器405、たとえば、送り回路であって、最適化タスク及び最適化タスクの関連識別子をメッセージングコンポーネントに送信するように構成されている、送信回路と、モニタ406、たとえば、監視回路であって、受信した最適化タスクに対してメッセージングコンポーネントを監視するように構成された、モニタ回路と、を備える。
【0205】
CNTR420は、受け取られた最適化タスクを検出するように構成された検出器407、たとえば、検出回路と、たとえば、最適化タスクの関連する識別子を通じて、格納された対応する最適化のためのデータをストレージ430から取得するように構成された取得器408、たとえば、取得回路と、作成器409、たとえば、最適化タスクを解決するために最適化モデルを作成するように構成された作成回路と、解決器410、たとえば、作成された最適化モデルに基づいて最適化タスクを解決するように構成された解決回路と、最適化タスクへの解決策及びストレージ430内の最適化タスクの関連する識別子を格納するように構成された格納器411、たとえば格納回路と、をさらに含んでもよい(または、他の方法で関連付けられ、たとえば、接続され、または接続可能であってもよい)。
【0206】
いくつかの実施形態では、CNTR420は、提出された最適化要求に少なくとも基づいてメタデータを決定するように構成された決定器402、例えば、決定回路をさらに備え(または他の方法で決定器402に関連付けられ、たとえば、接続され、または接続可能であり)得、メタデータは、最適化要求の送信データを含む。
【0207】
いくつかの実施形態では、CNTR420は、送信された最適化要求に基づいてペイロードを決定するように構成された決定器403、たとえば、決定回路をさらに備え(または他の方法で決定器403に関連付けられ、たとえば、接続され、または接続可能であり)得、ペイロードは、対応する最適化のためのデータを含む。
【0208】
構成400は、決定されたメタデータ及び決定されたペイロードを格納するように構成されたストレージ430、たとえば、格納回路をさらに備え(または他の方法でストレージ430に関連付けられ、たとえば、接続され、または接続可能であり)得る。
概して、構成が本明細書で言及されるとき、それは物理的な製品、たとえば、装置として理解されるべきである。物理的製品は、1つ以上のコントローラ、または1つ以上のプロセッサなどの形態の制御回路などの1つ以上の部品を備え得る。
【0209】
説明された実施形態及びそれらの同等物は、ソフトウェアもしくはハードウェア、またはそれらの組み合わせで実現され得る。実施形態は、汎用回路によって実行され得る。汎用回路の例には、デジタルシグナルプロセッサ(DSP)、中央処理装置(CPU)、コプロセッサユニット、フィールドプログラマブルゲートアレイ(FPGA)、及びその他のプログラマブルハードウェアが含まれる。代替的または追加的に、実施形態は、特定用途向け集積回路(ASIC)などの特殊な回路によって実行され得る。汎用回路及び/または特殊回路は、たとえば、無線通信デバイスなどの装置に関連付けられるか、または含まれ得る。
【0210】
実施形態は、本明細書に記載された実施形態のいずれかによる構成、回路、及び/または論理を含む電子装置内に出現し得る。追加的にまたは代替的に、電子装置は、本明細書に記載された実施形態のいずれかによる方法を実行するように構成され得る。
【0211】
いくつかの実施形態によれば、コンピュータプログラム製品は、たとえば、物理メモリなどのコンピュータ可読媒体を含む。
図5は、物理メモリ500の形態の例示的なコンピュータ可読媒体を示しており、コンピュータ可読媒体は、任意のコンピュータ可読媒体であり得ることが想定されている。コンピュータプログラム製品はまた、サーバまたはクラウドサービスへのアクセスも含み得、サーバまたはクラウドサービスは、コンピュータ可読媒体を含む。コンピュータ可読媒体は、プログラム命令を含むコンピュータプログラム内部格納している。コンピュータプログラムは、データプロセッサ(PROC)520にロード可能であり、データプロセッサ(PROC)520は、たとえば、電子装置510に含まれ得る。データ処理ユニットにロードされたときに、コンピュータプログラムは、データ処理ユニットに関連付けられた、またはデータ処理ユニットに含まれるメモリ(MEM)530に格納され得る。いくつかの実施形態によれば、コンピュータプログラムは、データ処理ユニットにロード及び実行されたときに、たとえば、
図1及び
図2a~2eに示された方法及び/またはシーケンスのいずれか、または本明細書に記載された他の方法に従った方法及び/またはシーケンスステップの実行を引き起こし得る。
【0212】
概して、本明細書で使用されるすべての用語は、異なる意味が明確に与えられ、及び/またはその意味が使用される文脈から暗示されない限り、関連する技術分野におけるそれらの通常の意味に従って解釈されるべきである。
【0213】
本明細書では、様々な実施形態を参照している。しかしながら、当業者は、依然として特許請求の範囲内にあるであろう、記載された実施形態に対する多数の変形を認識するであろう。
【0214】
たとえば、本明細書に記載された方法の実施形態は、特定の順序で実行されるステップを通じた例示的な方法を開示する。しかしながら、これらの一連の事象は、特許請求の範囲から逸脱することなく、別の順序で起こり得ることが認識される。さらに、いくつかの方法ステップは、順番に実行されるものとして記載されていても、並行して実行される場合がある。したがって、本明細書に開示される任意の方法のステップは、ステップが別のステップに続いて、または、先行して明示的に記述されない限り、及び/またはステップが別のステップに続く、または、先行する必要があることが暗黙的に記載される場合を除いて、開示される正確な順序で実行される必要はない。
【0215】
同様に、実施形態の説明において、特定のユニットへの機能的ブロックの分割は、決して限定することを意図していないことに留意されたい。逆に、これらの分割は単なる例である。本明細書で1つのユニットとして記載される機能ブロックは、2つ以上のユニットに分割され得る。さらに、本明細書で2つ以上のユニットとして実装されているものとして記載されている機能ブロックは、より少ない(たとえば、単一の)ユニットに統合され得る。
【0216】
本明細書に開示される実施形態のいずれかの任意の特徴は、適切な場合はいつでも、他の任意の実施形態に適用され得る。同様に、任意の実施形態の任意の利点は、任意の他の実施形態に適用してもよく、逆もまた同様である。
【0217】
したがって、記載される実施形態の詳細は、例示の目的で提示された単なる例であり、特許請求の範囲内にあるすべての変形は、そこに包含されることが意図されていることを理解されたい。
【国際調査報告】