(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】分散インターフェイス構成要素生成のための技術
(51)【国際特許分類】
G06F 9/451 20180101AFI20240719BHJP
【FI】
G06F9/451
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024505083
(86)(22)【出願日】2022-03-09
(85)【翻訳文提出日】2024-02-29
(86)【国際出願番号】 US2022019566
(87)【国際公開番号】W WO2023009179
(87)【国際公開日】2023-02-02
(32)【優先日】2021-07-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】マタ・ロドリゲス,ドメニカ・カロリーナ
(72)【発明者】
【氏名】シェーカー,アラー
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376DA20
(57)【要約】
サービスとしてのインフラストラクチャ(IaaS)環境におけるインターフェイス構成要素の効率的な生成および保守のための技術が開示される。システムは、構成要素のダッシュボードを表示する要求を受信し得る。構成要素の宣言的メタデータセットが生成され、多用途エージェントが宣言的メタデータセットを解析する。多用途エージェントは、1つまたは複数の決定されたインターフェイス構成要素に対応する多用途エージェントの複数のインスタンスを作成するために、解析された宣言的定義に従って複製され得る。次に、多用途エージェントの複数のインスタンスが、インターフェイス構成要素をリアルタイムで生成し、維持することができる。構成要素の生成は、過剰なデータ転送や無駄な通信を防ぐためにシステム間で分散され得る。
【特許請求の範囲】
【請求項1】
方法であって、
クライアント装置が、宣言的メタデータを受信することを含み、前記宣言的メタデータの少なくとも一部は、インターフェイス上に表示される1つまたは複数の視覚構成要素に対応し、
前記方法は、
前記クライアント装置が前記宣言的メタデータを解析して、前記1つまたは複数の視覚構成要素を決定することと、
前記クライアント装置が、前記1つまたは複数の視覚構成要素の各視覚構成要素について前記クライアント装置の構成要素エージェントを複製して、前記クライアント装置の複数の構成要素エージェントを作成することと、
1つまたは複数のレンダリングデータのセットを生成することと、をさらに含み、前記1つまたは複数のレンダリングデータのセットの各セットは、前記クライアント装置の前記複数の構成要素エージェントのそれぞれの構成要素エージェントによって生成され、前記1つまたは複数の視覚構成要素の特定の視覚構成要素に対応し、前記レンダリングデータは、前記1つまたは複数の視覚構成要素をレンダリングするために実行可能である、方法。
【請求項2】
前記1つまたは複数のレンダリングデータのセットを実行して、前記1つまたは複数の視覚構成要素をインターフェイス上に表示させることをさらに含む、請求項1に記載の方法。
【請求項3】
前記宣言的メタデータに少なくとも部分的に基づいて、前記1つまたは複数の視覚構成要素に対応する1つまたは複数の対話応答を決定することと、
前記インターフェイス上に前記表示される1つまたは複数の視覚構成要素との対話に対応する入力を検出することと、
それに応じて、前記1つまたは複数の対話応答を実行することと、をさらに含む、請求項2に記載の方法。
【請求項4】
前記1つまたは複数の対話応答は、前記1つまたは複数のレンダリングデータのセットのうちの少なくとも1つのレンダリングデータのセットを更新することによって、前記表示される1つまたは複数の視覚構成要素のうちの少なくとも表示される視覚構成要素の更新を行わせる構成要素更新応答を少なくとも含む、請求項3に記載の方法。
【請求項5】
前記構成要素エージェントは、前記宣言的メタデータを解析して、前記複数の構成要素エージェントを作成するために複製される構成要素エージェントの数を決定する、請求項1~請求項4のいずれか1項に記載の方法。
【請求項6】
前記宣言的メタデータを受信したことに応答して、コンピュータメモリから前記構成要素エージェントを検索することをさらに含む、請求項5に記載の方法。
【請求項7】
前記複数の構成要素エージェントのうちの第1の構成要素エージェントから、前記第1の構成要素エージェントによって生成されるレンダリングデータのセットの少なくとも一部を、前記複数の構成要素エージェントのうちの第2の構成要素エージェントに送信することをさらに含み、前記第2の構成要素エージェントによって生成されるレンダリングデータのセットは、前記第1の構成要素エージェントによって送信されるレンダリングデータの前記セットの前記一部に少なくとも部分的に基づいて生成される、請求項1~請求項4のいずれか1項に記載の方法。
【請求項8】
前記1つまたは複数の視覚構成要素をインターフェイス上に表示するための前記宣言的メタデータは、ダッシュボードインターフェイス内の前記1つまたは複数の視覚構成要素の特定の構成を表すダッシュボードデータに対応する、請求項1~請求項4のいずれか1項に記載の方法。
【請求項9】
前記クライアント装置が、少なくとも前記1つまたは複数の視覚構成要素を含むリストを受信することと、
前記クライアント装置が、前記リストからの前記1つまたは複数の視覚構成要素の選択を受信することと、
前記クライアント装置が、前記1つまたは複数の視覚構成要素の前記選択に少なくとも部分的に基づいて前記ダッシュボードデータを生成することと、をさらに含み、サーバ装置は、前記ダッシュボードデータに少なくとも部分的に基づいて前記宣言的メタデータを同時に生成するように構成される、請求項8に記載の方法。
【請求項10】
前記クライアント装置が、前記1つまたは複数の視覚構成要素の更新を検出することをさらに含み、サーバ装置は、前記クライアント装置が前記1つまたは複数の視覚構成要素への前記更新を検出したことに応答して、更新済みの宣言的メタデータを同時に生成するように構成され、前記更新済みの宣言的メタデータの少なくとも一部は、1つまたは複数の更新済みの視覚構成要素に対応し、前記インターフェイスに表示される、請求項1~請求項4のいずれか1項に記載の方法。
【請求項11】
前記複数の構成要素エージェントは前記クライアント装置によって実装され、
前記サーバ装置は、前記更新済みの宣言的メタデータを生成するように構成され、
前記方法は、
前記1つまたは複数の視覚構成要素への前記更新を検出するために、前記クライアント装置が、前記1つまたは複数の視覚構成要素を監視することをさらに含み、前記サーバ装置は、前記更新を検出するために前記1つまたは複数の視覚構成要素を同時に監視するように構成され、
前記方法は、
前記クライアント装置が前記1つまたは複数の視覚構成要素の前記更新を検出したことに応答して、前記クライアント装置では、入力データを前記サーバ装置に送信することと、
前記クライアント装置が、前記サーバ装置から前記更新済みの宣言的メタデータを受信することと、をさらに含む、請求項10に記載の方法。
【請求項12】
前記1つまたは複数の視覚構成要素に関連する1つまたは複数のサービスの1つまたは複数のメトリクスに対応するサービスデータを受信することをさらに含み、レンダリングデータの前記1つまたは複数のセットは、前記宣言的メタデータおよび前記サービスデータに少なくとも部分的に基づいて生成される、請求項1~請求項4のいずれか1項に記載の方法。
【請求項13】
クライアント装置の1つまたは複数のプロセッサによって実行可能な複数の命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記複数の命令は、前記クライアント装置の前記1つまたは複数のプロセッサによって実行されると、
宣言的メタデータの少なくとも一部がインターフェイス上に表示される1つまたは複数の視覚構成要素に対応する、前記宣言的メタデータを受信することと、
前記宣言的メタデータを解析して、前記1つまたは複数の視覚構成要素を決定することと、
前記1つまたは複数の視覚構成要素の視覚構成要素ごとに前記クライアント装置の構成要素エージェントを複製して、前記クライアント装置の複数の構成要素エージェントを作成することと、
1つまたは複数のレンダリングデータのセットを生成することと、を含む動作を前記1つまたは複数のプロセッサに実行させ、前記1つまたは複数のレンダリングデータのセットの各セットは、前記クライアント装置の前記複数の構成要素エージェントのそれぞれの構成要素エージェントによって生成され、前記1つまたは複数の視覚構成要素の特定の視覚構成要素に対応し、前記レンダリングデータは、前記1つまたは複数の視覚構成要素をレンダリングするために実行可能である、非一時的なコンピュータ可読記憶媒体。
【請求項14】
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のレンダリングデータのセットを実行して、インターフェイス上に前記1つまたは複数の視覚構成要素を表示させる命令をさらに含む、請求項13に記載の1つまたは複数のプロセッサによって実行可能な複数の命令を記憶する非一時的なコンピュータ可読記憶媒体。
【請求項15】
前記1つまたは複数のプロセッサによって実行されると、
前記宣言的メタデータに少なくとも部分的に基づいて、前記1つまたは複数の視覚構成要素に対応する1つまたは複数の対話応答を決定することと、
前記インターフェイス上に前記表示される1つまたは複数の視覚構成要素との対話に対応する入力を検出することと、
それに応じて、前記1つまたは複数の対話応答を実行させることと、を行わせる命令をさらに含む、請求項14に記載の1つまたは複数のプロセッサによって実行可能な複数の命令を記憶する非一時的なコンピュータ可読記憶媒体。
【請求項16】
前記構成要素エージェントは、前記宣言的メタデータを解析して、前記複数の構成要素エージェントを作成するために複製される構成要素エージェントの数を決定し、前記1つまたは複数のプロセッサによって実行されると、前記宣言的メタデータを受信したことに応答して、コンピュータメモリから前記構成要素エージェントを取得させる命令をさらに含む、請求項13~請求項15のいずれか1項に記載の1つまたは複数のプロセッサによって実行可能な複数の命令を記憶する非一時的なコンピュータ可読記憶媒体。
【請求項17】
前記1つまたは複数のプロセッサによって実行されると、
前記1つまたは複数の視覚構成要素の更新を検出することと、
前記1つまたは複数の視覚構成要素への前記更新を検出したことに応答して、更新済みの宣言的メタデータを生成することと、を行わせる命令をさらに含み、前記更新済みの宣言的メタデータの少なくとも一部は、前記インターフェイス上に表示される1つまたは複数の更新済みの視覚構成要素に対応する、請求項13~請求項15のいずれか1項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記複数の構成要素エージェントは前記クライアント装置によって実装され、
前記サーバ装置は、前記更新済みの宣言的メタデータを生成するように構成され、
前記1つまたは複数のプロセッサによって実行されると、
前記1つまたは複数の視覚構成要素への前記更新を検出するために、前記クライアント装置が、前記1つまたは複数の視覚構成要素を監視し、前記サーバ装置は、前記更新を検出するために前記1つまたは複数の視覚構成要素を同時に監視するように構成され、
前記クライアント装置が前記1つまたは複数の視覚構成要素への前記更新を検出したことに応答して、前記クライアント装置では、入力データを前記サーバ装置に送信し、
前記クライアント装置が、前記サーバ装置から前記更新済みの宣言的メタデータを受信すること、を行わせる命令をさらに含む、請求項13~請求項15のいずれか1項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項19】
視覚構成要素生成システムを実装するクライアント装置であって、
1つまたは複数のデータプロセッサと、
命令を含む非一時的なコンピュータ可読記憶媒体と、を含み、前記命令は、前記1つまたは複数のデータプロセッサ上で実行されると、前記1つまたは複数のデータプロセッサに少なくとも、
宣言的メタデータの少なくとも一部がインターフェイス上に表示される1つまたは複数の視覚構成要素に対応する、前記宣言的メタデータを受信することと、
前記宣言的メタデータを解析して、前記1つまたは複数の視覚構成要素を決定することと、
前記1つまたは複数の視覚構成要素の視覚構成要素ごとに前記クライアント装置の構成要素エージェントを複製して、前記クライアント装置の複数の構成要素エージェントを作成することと、
1つまたは複数のレンダリングデータのセットを生成することとを行わせ、前記1つまたは複数のレンダリングデータのセットの各セットは、前記クライアント装置の前記複数の構成要素エージェントのそれぞれの構成要素エージェントによって生成され、前記1つまたは複数の視覚構成要素の特定の視覚構成要素に対応し、前記レンダリングデータは、前記1つまたは複数の視覚構成要素をレンダリングするために実行可能である、クライアント装置。
【請求項20】
請求項19に記載のクライアント装置とサーバ装置とを含むシステムであって、
前記複数の構成要素エージェントは前記クライアント装置によって実装され、
前記サーバ装置は、前記更新済みの宣言的メタデータを生成するように構成され、
前記命令はさらに、前記1つまたは複数のデータプロセッサに、
前記1つまたは複数の視覚構成要素の前記更新を検出するために、前記クライアント装置が、前記1つまたは複数の視覚構成要素を監視し、前記サーバ装置は、前記更新を検出するために前記1つまたは複数の視覚構成要素を同時に監視するように構成され、
前記クライアント装置が前記1つまたは複数の視覚構成要素への前記更新を検出したことに応答して、前記クライアント装置では、入力データを前記サーバ装置に送信し、
前記クライアント装置が、前記サーバ装置から前記更新済みの宣言的メタデータを受信することを行わせる、システム。
【請求項21】
請求項1~請求項12のいずれか1項に記載のステップを実行するための手段を含む装置。
【請求項22】
プロセッサによって実行されると、請求項1~請求項12のいずれか1項に記載の方法のステップを実装するコンピュータ命令を含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願はPCT出願であり、2021年7月29日に出願され、「分散インターフェイス構成要素生成のための技術」と題されている米国仮出願17/389,116号の米国特許法第119条(e)に基づく利益および優先権を主張し、その内容は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
背景
クラウドベースのサービスプロバイダは、顧客にさまざまなサービスを提供する。顧客はサービスプロバイダを通じて膨大な数のプログラムやサービスを実装できる。これらのサービスの多くは複雑で、機能するには大量のデータが必要である。サービスプロバイダは、この情報にアクセスして監視するための視覚インターフェイスの提供を選択し得る。包括的なモジュール式デジタルインターフェイスにより、顧客に能動的なサービスの簡略化されるビューを表示できる。モジュール式デジタルインターフェイスは、顧客の能動的なサービスに対応するデータおよび対話型構成要素を表示し、顧客にとって最も望ましい形式で表示するようにカスタマイズ可能であってもよい。
【発明の概要】
【発明が解決しようとする課題】
【0003】
顧客体験を向上させるために、インターフェイスの対話型構成要素を生成および維持することができる。しかし、複数の顧客向けに複数のカスタマイズされる個人用のインターフェイス上で複数の個別構成要素を表示および維持するには、リソースが大量に消費される。顧客とサービスプロバイダとの間の通信は多く、非効率的であり、システムリソースの大幅な浪費につながる。これらのプロセスを利用する顧客の数に応じて、各顧客が1つまたは複数の個人用のインターフェイスを実装するため、リソースの浪費は指数関数的に増加する。インターフェイス上で個々の構成要素を表示および管理する方法は反復的で非効率的であり得、さらに他のリソースの浪費とサービスプロバイダシステムに重大な問題を引き起こし得る。
【課題を解決するための手段】
【0004】
概要
本開示の態様には、多用途構成要素エージェントとのモジュール式インターフェイスを生成および維持するための技術が含まれる。多用途構成要素エージェントは、インターフェイスを構築するためにモジュール関連の宣言的メタデータを解析するために利用される合理化されたデジタル構成要素を提供することができる。構成要素管理業務を効率的に分散するために、多用途構成要素エージェント、つまり「多用途エージェント」の複数のインスタンスを作成できる。多用途のエージェントインスタンスは、分散システム内でさらに利用することもできる。多用途エージェントは、サーバシステムに通信可能に結合される構成要素生成エンジン内でホストされ得る。サーバシステムは、サービスプロバイダに代わってデータを記憶および処理し、一方、構成要素生成エンジンおよび関連する多用途エージェントは、処理されたデータを使用してクライアントに代わってインターフェイス生成を実行する。
【0005】
例示的な方法は、インターフェイス上に1つまたは複数の視覚構成要素を表示するための宣言的メタデータを受信することと、宣言的メタデータを解析して、インターフェイス上に表示される1つまたは複数の視覚構成要素を決定することと、インターフェイス上に表示される1つまたは複数の視覚構成要素の特定の視覚構成要素ごとに構成要素エージェントを複製して、複数の構成要素エージェントを作成することと、1つまたは複数のレンダリングデータのセットを生成することと、を含み、1つまたは複数のレンダリングデータのセットの各特定のセットは、1つまたは複数の視覚構成要素の特定の視覚構成要素に対応する複数の構成要素エージェントのうちの特定の構成要素エージェントによって生成され、1つまたは複数の視覚構成要素をレンダリングするために実行可能である。宣言的メタデータは、クライアント装置がサーバ装置から受信することができる。サーバ装置は、宣言的メタデータを生成するように構成できる。サーバ装置による宣言的メタデータの生成は、サーバ装置によって提供されるモジュール式インターフェイスの構成要素に対するクライアント装置からの要求、および/またはモジュール式インターフェイスの構成要素に関連するデータに対するクライアント装置からの要求によってトリガされてもよい。要求は、クライアント装置によってサーバ装置に送信され得る。サーバ装置は、クライアント装置と同様に複数のクライアント装置に同時にサービスを提供することができ、複数のクライアント装置の各々は、モジュール式インターフェイスの構成要素および/またはモジュール式インターフェイスの構成要素に関連するデータを個別に要求する。
【0006】
本開示の態様は、別個の装置にわたる分散データ共有をさらに含む。例示的な方法は、宣言的メタデータを受信することを含み、宣言的メタデータの少なくとも一部は、インターフェイス上に表示される1つまたは複数の視覚構成要素に対応し、方法は、宣言的メタデータを解析して、1つまたは複数の視覚構成要素を決定することと、1つまたは複数の視覚構成要素の視覚構成要素ごとに構成要素エージェントを複製して、複数の構成要素エージェントを作成することと、1つまたは複数のレンダリングデータのセットを生成することと、をさらに含み、1つまたは複数のレンダリングデータのセットの各セットは、複数の構成要素エージェントのうちの構成要素エージェントによって生成され、1つまたは複数の視覚構成要素のうちの特定の視覚構成要素に対応し、レンダリングデータは、1つまたは複数の視覚構成要素をレンダリングするために実行可能である。本開示の態様はさらに、インターフェイス上に1つまたは複数の視覚構成要素を表示させるためにレンダリングデータを実行することを含む。
【0007】
本開示の態様は、表示される構成要素との対話を検出し、それに応答することをさらに含む。例示的な方法は、宣言的メタデータに少なくとも部分的に基づいて、1つまたは複数の視覚構成要素に対応する1つまたは複数の対話応答を決定することと、インターフェイス上に表示される1つまたは複数の視覚構成要素との対話に対応する入力を検出することと、それに応じて、1つまたは複数の対話応答を実行することと、を含む。いくつかの例示的な方法では、1つまたは複数の対話応答は、1つまたは複数のレンダリングデータのセットのうちの少なくとも1つのレンダリングデータのセットを更新することによって、表示される1つまたは複数の視覚構成要素のうちの少なくとも表示される視覚構成要素の更新を行う構成要素更新応答を少なくとも含む。
【0008】
別の例示的な方法は、構成要素エージェントが宣言的メタデータを解析して、複数の構成要素エージェントを作成するために複製される構成要素エージェントの数を決定する上記のステップをさらに含む。
【0009】
本開示の態様は、構成要素およびインターフェイスを効率的に管理するために、複製された多用途エージェントインスタンス間でデータリソースを共有することをさらに含む。例示的な方法は、上記のステップを含み、さらに、複数の構成要素エージェントのうちの第1の構成要素エージェントから、第1の構成要素エージェントによって生成されるレンダリングデータのセットの少なくとも一部を、複数の構成要素エージェントのうちの第2の構成要素エージェントに送信することを含み、第2の構成要素エージェントによって生成されるレンダリングデータのセットは、第1の構成要素エージェントによって送信されるレンダリングデータのセットの一部に少なくとも部分的に基づいて生成される。
【0010】
本開示の態様は、ダッシュボードデータを利用して、ダッシュボードの構成要素の宣言的メタデータを構築することに関する。一例は、インターフェイス上に1つまたは複数の視覚構成要素を表示するための宣言的メタデータが、ダッシュボードインターフェイス内の1つまたは複数の視覚構成要素の特定の構成を表すダッシュボードデータに対応する上記のステップを含む。ダッシュボードデータは、ダッシュボードに表示する構成要素のカタログから構築できる。例示的な方法は、複数の視覚構成要素のリストを受信することを含み、複数の視覚構成要素は、1つまたは複数の視覚構成要素を含み、方法は、複数の視覚構成要素のリストから1つまたは複数の視覚構成要素の選択を受信することと、1つまたは複数の視覚構成要素の選択に基づいてダッシュボードデータを生成することと、ダッシュボードデータに基づいて宣言的メタデータを生成することと、をさらに含む。次に、ダッシュボードデータの選択される構成要素は、ダッシュボードを構築および表示するための宣言的メタデータを生成するために使用され得る。
【0011】
本開示の態様は、ダッシュボードインターフェイス上に表示するための構成要素の一部としてサービスメトリクスおよび測定値を利用することに関する。例示的な方法は、上記のステップを含み、サービスデータを受信することをさらに含み、サービスデータは、1つまたは複数の視覚構成要素に関連する1つまたは複数のサービスの1つまたは複数のメトリクスに対応し、レンダリングデータの1つまたは複数のセットは、宣言的メタデータおよびサービスデータに少なくとも部分的に基づいて生成される。
【0012】
本開示の別の態様は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに上述の方法を実行させる命令を含む非一時的なコンピュータ可読媒体とを備えるシステムを備える。
【0013】
本開示の別の態様は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに上述の方法を実行させる命令を含む非一時的なコンピュータ可読媒体を備える。
【0014】
これらの例示的な実施形態は、本開示を限定したり定義したりするためではなく、本開示の理解を助けるための例を提供するために言及されている。追加の実施形態は詳細な説明で議論され、さらに他の説明がそこで提供される。
【0015】
本開示の特徴、実施形態、および利点は、添付の図面を参照して以下の詳細な説明を読むと、よりよく理解される。
【図面の簡単な説明】
【0016】
【
図1】本開示の特定の実施形態に従う、視覚構成要素を生成するための分散型サービスとしてのインフラストラクチャシステムのブロック図である。
【
図2】本開示の特定の実施形態に従う構成要素促進システムのブロック図である。
【
図3】本開示の特定の実施形態に従うクライアントエンジンシステムのブロック図である。
【
図4】本開示の特定の実施形態に従う、クライアントエンジンシステムと構成要素促進システムのサブシステムとの間の対話を示すブロック図である。
【
図5】本開示の特定の実施形態に従う、多用途エージェントを使用したインターフェイス構成要素生成のためのプロセスの例示的なフローチャートを示す図である。
【
図6】本開示の特定の実施形態に従う、多用途エージェントを使用したインターフェイス構成要素生成のための分散システムおよびプロセスの例示的なフローチャートを示す図である。
【
図7】本開示の特定の実施形態に従う、インターフェイスを生成するためのダッシュボードライブラリおよびダッシュボードエンジンを含む分散システムのブロック図である。
【
図8】本開示の特定の実施形態に従う、構成要素利用のための例示的なグラフィカルインターフェイスを示す図である。
【
図9】少なくとも1つの実施形態に従う、サービスシステムとしてのクラウドインフラストラクチャを実装するための1つのパターンを示すブロック図である。
【
図10】少なくとも1つの実施形態に従う、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。
【
図11】少なくとも1つの実施形態に従う、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。
【
図12】少なくとも1つの実施形態に従う、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。
【
図13】少なくとも1つの実施形態に従う例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0017】
詳細な説明
以下の説明では、説明の目的で、特定の実施形態の完全な理解を提供するために特定の詳細が記載される。しかし、これらの特定の詳細がなくても、さまざまな実施形態を実施できることは明らかであろう。図および説明は、限定することを意図したものではない。
【0018】
サービスプロバイダは、提供されるサービスの顧客(例えば、加入者)が加入できるサービスを提供することができる。多くの場合、顧客はこれらのサービスを利用して、サービスプロバイダが所有するサーバ装置を使用して自分のデータを記憶、管理、および更新する。例えば、あるサービスでは顧客のデータをデータベースに記憶することができ、別のサービスでは顧客が仮想マシンにアクセスできるようにすることができ、さらに別のサービスでは顧客がクライアント向けに自動化された顧客サービスを実装できるようにすることもできる。これらの機能を利用する顧客は、多くの場合、個々のサービスの使用に関連するデータを表示および管理するための包括的なデジタルインターフェイスを必要とする。例えば、食品ベンダーは、サービスプロバイダのWebホスティングサービスを利用して、食品ベンダーが販売する食品項目の対話型メニューを記憶および管理し得る。食品ベンダーは、サービスプロバイダの仮想処理環境を利用して、ベンダーの商品に対する金銭の支払いを受け入れて処理することもできる。食品ベンダーはさらに、サービスプロバイダのデータ記憶装置サービスを利用して、ベンダーの売上に関連するビジネス数値を記憶し得る。顧客が利用するサービスとそこから生成されるデータは多数あり、複雑であり得る。これらのベンダーサービスとそれに関連するデータは各々、ベンダーがサービスプロバイダを通じて管理するインターフェイス上の構成要素によって表すことができる。
【0019】
サービスプロバイダが利用するサービスは、接続されている顧客ごとに異なるため、サービスプロバイダは、顧客体験をより個別化するためにモジュール式のカスタマイズ可能なインターフェイスを顧客に提供したい場合がある。モジュール式インターフェイスは、通常、シェル(例えば、静的インターフェイス背景)と、1つまたは複数の構成要素(例えば、利用されるサービスに関する対話型構成要素を表示する背景上の個々のパネル)とを含むインターフェイスである。カスタマイズ可能なインターフェイスは、顧客が特定の背景に表示される構成要素を取って、選択できるインターフェイスである。顧客体験を向上させるために、インターフェイスにはこれらの機能の両方が組み込まれ得る。このインターフェイスは、単一のデジタルロケーションで顧客が利用しているサービスの関連する態様を伝える。既存のモジュール式インターフェイスを使用すると、顧客はシェルに表示する1つまたは複数の定義済み構成要素を選択できる。例えば、サービスプロバイダは、インターフェイスを作成するために、シェル上で実行および表示する事前定義コードに基づいて、事前に構築されるいくつかのインターフェイス構成要素を記憶し得る。個々の構成要素は各々、モジュール式であり、他のインターフェイス構成要素から独立してそれのコード命令を実行する。顧客は、構成要素の「ダッシュボード」の複数のインターフェイスを利用できる。例えば、顧客は、業務運営、データ管理業務などに関連する構成要素の個別のダッシュボードを持っている場合がある。
【0020】
各インターフェイス構成要素の独立した実行はモジュール機能を促進するが、インターフェイスおよび対応するサービスによる反復性、非効率性、および/または安全性の低い性能につながる。一例として、同じ情報または非常に類似した情報を表示する2つの構成要素が同じデータを独立してフェッチし、構成要素を表示するためのサーバリソースの使用率が効果的に2倍になり得る。食品ベンダーが2つの構成要素(売上収益用の構成要素と売上利益用の構成要素)をインターフェイス上に配置すると、2つの構成要素は互いに独立して実行され、情報が表示される。したがって、両方の構成要素が同じ販売データを2回取得することになり、リソース支出が重複する。別の例では、個々のインターフェイス構成要素は各々、その構成要素に固有の手順を実行するための個別のコード命令を含む必要がある。コード命令は構成要素のサイズのかなりの部分を占めるため、同様のコードを持つ複数の構成要素を利用すると、それに応じてリソースの使用率も増加する。複数の構成要素が同じシステム上でコードを実行して構成要素をレンダリングすると、システムでは大幅なリソースの浪費が発生する。
【0021】
対話型デジタルインターフェイスを提供するサービスプロバイダは、上記の問題にさらされている。顧客数が増加するにつれて問題は悪化し、多くの場合、サービスプロバイダのシステムが遅くなったり、機能不全に陥ったりする。例えば、何百万もの顧客にクラウドベースのサービスを提供するサービスプロバイダは、通常、数千万の個別のモジュール構成要素を維持する必要がある。本明細書で説明される方法およびプロセスは、分散システムにおいて多用途エージェントを利用することによってデジタルインターフェイスの保守を可能にする。多用途エージェントは何度でも複製して、最小限の入力で個々のインターフェイス構成要素を管理できる。例えば、構成要素は、インターフェイス構成要素を実装するための宣言的な定義とパラメータのみを含み得る。次に、多用途エージェントは宣言的定義を解析し、パラメータに従って顧客データをフェッチし、構成要素を独立して実装する。構成要素の生成をクライアント側のエンジンに分散し、データの記憶を中央システムに分散することで、コストのかかるデータ転送と通信が削減される。
【0022】
多用途エージェントは、インターフェイスの異なる構成要素を個別に維持するために、複数のインスタンスに複製され得る。多用途エージェントは、宣言的定義に基づいて複数の異なるインターフェイス構成要素を実装する機能を備えているため、多用途エージェントの複製されたインスタンスは、異なるインターフェイス構成要素を同時に実装できる。多用途エージェントのインスタンスは、共有通信プロトコルを通じて他の動作主体(actor)間で通信し、データを共有できる。多用途エージェントは、宣言的定義で指定される対話型インターフェイス構成要素を生成することもできる。これらの構成要素は、顧客による対話型入力に応答するために、多用途エージェントによって維持および監視できる。宣言的定義を補足する顧客固有のパラメータにより、多用途エージェントは対話の処理方法をさらにカスタマイズできる場合がある。
【0023】
複数のインターフェイス構成要素を生成および維持するための多用途エージェントおよび分散システムの実装には、以前のインターフェイス生成方法に比べてさまざまな利点がある。各構成要素の個別のコード命令を削除すると、構成要素実装のオーバーヘッドが削減される。多用途エージェントは宣言的定義を解析して構成要素を生成するだけでよいため、サービスプロバイダはシステムリソースをより効率的に利用し、インターフェイス実装時のデータの肥大化を軽減する。さらに、サービスプロバイダの顧客は、個人用のインターフェイスを生成するためのより合理化されるアプローチを体験する。
【0024】
多用途エージェントおよびその複製されたインスタンスによってインターフェイス構成要素を維持することは、インターフェイス生成を開始するために多用途エージェント動作主体をメモリに一度フェッチするだけでよく、貴重なコンピューティングリソースを節約することを意味する。標準プロトコルを利用したエージェントインスタンス間の対話により、データ通信も改善され、非効率なリソースの消費が削減される。さらに、サービスプロバイダが制御する多用途エージェントを介して構成要素を実装することで、顧客が電子コード命令を書いて実装する必要がなくなり、インターフェイス生成の大きな参入障壁が取り除かれる。また、悪意のある動作主体をコードへの直接アクセスから隔離することでセキュリティ機能も向上し、サービスプロバイダが各多用途エージェントおよび各インターフェイス構成要素の動作パラメータを安全に指定できるようになる。
【0025】
複数のシステム間での構成要素生成のそれ以上の分散も、大きな利点を提供する。複数のインターフェイス構成要素を生成するプロセスは、リソースを節約するために複数のシステムに分散させることができる。サービスシステムは、クライアントがクライアント固有のインターフェイスの一部として実装できる構成要素のリポジトリを記憶し得る。構成要素は、クライアント装置に載置する生成エンジンによって解析可能な宣言的定義に対応することができる。この方法では、構成要素全体と構成要素コードを通信チャネルを通じてエンジンに渡す必要はなく、注釈付きの宣言的定義のみを渡せばよい。
【0026】
宣言的定義は、クライアント側生成エンジンで解析され、クライアント固有のサービスデータと結合されて、注釈付きレンダリングデータを生成することができる。レンダリングデータを実行して、完全なダッシュボードインターフェイスを顧客に表示することができる。サービスシステムとクライアントシステムは連携して動作し、インターフェイスとインターフェイス構成要素をリアルタイムで更新できる。この分散プロセスは、同じシステムがこれらの各ステップを実行した場合に発生するリソースのボトルネックを防ぎながら、通信されるデータを最小限のレベルに減らして既存のリソースを維持する。
【0027】
図1は、本開示の特定の実施形態に従う、視覚構成要素を生成するための分散型サービスとしてのインフラストラクチャシステムのブロック図である。
図1に示されるシステム100は、ネットワーク160に直接的または間接的に接続されるシステムおよび装置を備える。ネットワーク160は、データが送信され得る任意の通信エンティティまたは媒体であってよい。例えば、ネットワーク160は、インターネット、イントラネット、クラウドベースのネットワーク、ローカルエリアネットワーク、ハードライン接続、無線信号、仮想ネットワーク、または装置間のネットワーク通信のための他の媒体であってもよい。使用され得るさまざまなネットワークが当業者には認識されるであろうが、いくつかについては以下でも説明する。
【0028】
ネットワーク160は、クライアントエンジンシステム120に通信可能に結合され得る。クライアントエンジンシステムは、クライアント装置110によって実装され得る。クライアント装置110は、本明細書で説明される実施形態を実行するのに必要な任意の形式で動作する任意のタイプの装置であり得、実施形態を構成し得るクライアント装置の数は制限されない。さまざまな実施形態において、クライアント装置110は、構成要素インターフェイスを要求、生成、表示、および/または対話するためにクライアントおよび/または顧客によって動作可能な装置である。
【0029】
クライアント装置110は、クライアント装置110上で実行されるデジタルプログラム、アプリケーション、または命令セットとしてクライアントエンジンシステム120を実装することができる。クライアントエンジンシステム120は、さまざまな実施形態に従って本明細書で説明されるプロセスおよび方法を実行するように動作可能なソフトウェア、ハードウェア、またはその両方の組み合わせを備えるシステムであってもよい。クライアントエンジンシステム120は、いくつかのサブシステムをさらに備えることができる。本明細書で説明するサブシステムは、ホストシステムの機能に不可欠な、より具体的かつ専門化されるプロセスを実行するために、より大きなホストシステム内で動作するシステムを指してもよい。
【0030】
クライアントエンジンシステム120は、ダッシュボード表示サブシステム121を備え得る。ダッシュボード表示サブシステム121は、電子ディスプレイ上にダッシュボードおよびさまざまなダッシュボード構成要素を表示するように動作可能なサブシステムであってもよい。クライアントエンジンシステム120は、入力取扱いサブシステム122をさらに備えることができる。入力取扱いサブシステム122は、クライアントによって行われ、表示されるダッシュボードに対応する対話型入力を検出して応答するように動作可能なサブシステムであってもよい。さまざまな実施形態において、入力取扱いサブシステム122は、1つまたは複数のタイプの入力および/または入力コンテキストを検出するための別個のサブシステムとして1つまたは複数の入力リスナを実装することができる。クライアントエンジンシステム120は、ダッシュボードエンジンサブシステム123をさらに備えることができる。ダッシュボードエンジンサブシステム123は、構成要素の1つまたは複数の宣言的定義を解析し、デジタルダッシュボードを作成するためのレンダリングデータを生成するように動作可能なサブシステムであってもよい。さまざまな実施形態において、入力取扱いサブシステム123は、ダッシュボード構成要素を並行して処理および作成するための1つまたは複数の多用途エージェントを実装することができる。クライアントエンジンシステム120のより詳細な図を
図3に示す。
【0031】
ネットワーク160はさらに、構成要素促進システム140に通信可能に結合されてもよい。構成要素促進システム140は、サーバ130によって実装され得る。サーバ130は、本明細書で説明される実施形態を実行するのに必要な任意の形式で動作する任意のタイプの装置であり得、実施形態を構成し得るサーバ装置の数は制限されない。さまざまな実施形態において、サーバ130は、構成要素ベースのインターフェイスに関連する生成データを記憶、送信、受信、レンダリング、生成、および管理するためにサービスプロバイダおよび/または管理者によって動作可能な装置である。
【0032】
サーバ130は、構成要素促進システム140を、サーバ130上で実行されるデジタルプログラム、アプリケーション、または命令セットとして実装することができる。構成要素促進システム140は、さまざまな実施形態に従って本明細書に記載されるプロセスおよび方法を実行するように動作可能なソフトウェア、ハードウェア、または両方の組み合わせを備えるシステムであってもよい。さまざまな実施形態において、構成要素促進システム140は、クライアント装置110などのクライアント装置に表示可能なインターフェイス上で構成要素のレンダリングをさせるために、そこに送信され、そこに記憶されるデータを利用する。構成要素促進システム140は、構成要素促進システム140の一部として動作するいくつかのサブシステム/独立システムをさらに備えることができる。
【0033】
カタログサブシステム141は、1つまたは複数のレンダリング可能な構成要素に関連する構成要素データおよび/またはプラグイン情報を記憶および提供するためのサブシステムであり得る。カタログサブシステム141は、カタログを動作するために、構成要素のリストまたは構成要素に関連するデータを記憶、アクセス、および/または利用するように構成され得る。例えば、カタログサブシステム141は、ダッシュボード表示に含まれ得る構成要素のカタログをホストすることができる。クライアントは、ダッシュボードの一部として表示するカタログから選択される構成要素のサブセットを指定できる。
【0034】
構成要素促進システム140は、サービスデータサブシステム142をさらに備えることができる。サービスデータサブシステム142は、ダッシュボードを容易にするためにクライアントによって利用されるサービスに関連するサービスデータおよびメトリクスを提供するように構成されるサブシステムであり得る。サービスは、クライアントとサービスプロバイダとの間の商業的なやり取りの一部としてクライアントに提供されるサービスであってもよい。例えば、クライアントは、サービスプロバイダが提供する1つまたは複数のクラウドベースのサービスを利用し得る。サービスプロバイダは、サービスデータ(すなわち、サービスの動作に関連するメトリクス)をサービスデータサブシステム142に記憶することができる。サービスデータは、サービスデータを含むダッシュボードを表示するために取得、変換、および/またはその他の方法で利用され得る。
【0035】
構成要素促進システム140は、ダッシュボード作成サブシステム143をさらに備えることができる。ダッシュボード作成サブシステム143は、ダッシュボードを作成し、ダッシュボードに構成要素を実装するように動作可能なサブシステムであってもよい。例えば、ダッシュボード作成サブシステム143は、クライアントエンジンシステム120からダッシュボード仕様を受信するように構成され得る。ダッシュボード作成サブシステム143は、ダッシュボード仕様を利用して、クライアントに関連付けられたダッシュボードインターフェイスの新しいインスタンスを作成することができる。
【0036】
ネットワーク160はさらに、データ記憶装置150に通信可能に接続されてもよい。データ記憶装置150は、本明細書に記載の実施形態を容易にするために、1つまたは複数の電子データ記憶メモリを備えることができる。記憶装置は、本明細書で説明される実施形態を容易にするための任意の物理的、電子的、および/またはクラウドベースの記憶装置を指し得る。データメモリは、電子データを内部、外部、または別のシステムとは別に記憶する内部メモリ、記憶メモリまたは媒体であってもよい。例えば、データ記憶装置150は、クライアントエンジンシステム120と構成要素促進システム140との間の通信プロトコルに関連するデータまたは情報を記憶することができ、それによってネットワーク160は両方のエンティティと対話することができる。データ記憶装置150または他の任意の記憶装置は、本明細書に記載のプロセスを容易にするために必要な任意の方法で使用できることが理解されるであろう。
【0037】
図2は、本開示の特定の実施形態に従う構成要素促進システム140のブロック図である。具体的には、
図2は、構成要素促進システム140およびそこに含まれるさまざまなサブシステムを示す。構成要素促進システム140は、カタログサブシステム141を備えることができる。カタログサブシステム141は、構成要素カタログ作成装置200を含んでもよい。さまざまな実施形態において、構成要素カタログ作成装置は、構成要素リストを作成するためにいくつかの構成要素をカタログ化するサブシステムであってもよい。構成要素リストは、インターフェイスの一部としてダッシュボードに表示されるいくつかの視覚構成要素に対応し得る。例えば、構成要素カタログ作成装置200は、構成要素マニフェスト取り込みモジュールおよび構成要素を記憶するいくつかのプラグインに通信可能に結合され得る。構成要素カタログ作成装置は、構成要素マニフェストを使用してプラグイン内のいくつかの構成要素を識別し、構成要素リストを作成できる。構成要素リストは、構成要素リポジトリから受信する構成要素のリストであり得る。
【0038】
カタログサブシステム141は、構成要素リポジトリ210をさらに備えることができる。構成要素リポジトリ210は、ダッシュボードインターフェイスで実装可能な構成要素または構成要素情報のリポジトリであってもよい。さまざまな実施形態において、構成要素リポジトリ210は、構成要素カタログ作成装置200から構成要素リストを受信する。次に、構成要素リポジトリ210または同様のエンティティは、構成要素リスト上で識別される視覚構成要素に関連する宣言的メタデータの1つまたは複数のセットを識別し、グループ化することができる。例えば、構成要素カタログ作成装置200は、ダッシュボードインターフェイス上に表示するために生成されるデジタル構成要素「ウィジェット」の構成要素を指定する構成要素リストを構成要素リポジトリ210に送信することができる。構成要素リポジトリ210は、それ以上の処理のために、そのデジタル構成要素の機能に関連する宣言的メタデータを識別することができる。
【0039】
構成要素促進システム140は、サービスデータサブシステム142を備えることができる。サービスデータサブシステム142は、クエリ命令220を備え得る。クエリ命令220は、ダッシュボードに関連するサービスデータに対するクエリを受信および/または処理するための命令であり得る。さまざまな実施形態において、クエリ命令220は、受信サービスデータクエリからサービスデータに対する1つまたは複数の要求を抽出するように構成され得る。
【0040】
サービスデータサブシステム142は、サービスデータ共有命令230をさらに備えることができる。サービスデータ共有命令230は、サービスプロバイダによって動作可能なサービスに関連するサービスデータを取得および送信するための命令のセットであり得る。さまざまな実施形態において、サービスデータ共有命令230は、クエリ命令220によって指定されるサービスデータの指示を受信する。次いで、サービスデータ共有命令230は、サービスに関連するサービスデータの1つまたは複数のセットを応答して取得することができる。例えば、クエリ命令220は、サービスの動作に関連し、ダッシュボードインターフェイスの一部として表示される1つまたは複数のメトリクスを指定することができる。サービスデータ共有命令230は、サービスプロバイダで実行される関連サービスを識別し、サービスの動作に関連するメトリクスを取得し、サービスデータをクエリエンティティに送り返すことができる。
【0041】
構成要素促進システム140は、ダッシュボード作成サブシステム143を備え得る。ダッシュボード作成サブシステム143は、ダッシュボード構成要素表示命令240を備え得る。構成要素表示命令240は、視覚ダッシュボードインターフェイス上での構成要素の表示、または同じことを行うためのデータの作成をさせる命令のセットであり得る。さまざまな実施形態において、ダッシュボード構成要素表示命令240は、クエリ命令220によって生成される表示データなどの表示を受信した。ダッシュボード構成要素表示命令240は、クライアント装置120などのデジタルディスプレイを備える装置に表示データを送信させることができる。次いで、表示データを使用して、デジタルディスプレイ上に構成要素を表示することができる。さまざまな実施形態において、ダッシュボード構成要素表示命令240は、レンダリングされる構成要素に基づいて表示データを生成する。
【0042】
ダッシュボード作成サブシステム143は、ダッシュボードライブラリ250をさらに備え得る。ダッシュボードライブラリ250は、特定のインターフェイス/ダッシュボードの一部を生成するためのデータを含む記憶装置またはリポジトリであり得る。さまざまな実施形態において、ダッシュボードライブラリ250は、表示前に生成する必要なくインターフェイス上に直接表示できる1つまたは複数の共通構成要素を含む。さまざまな実施形態において、ダッシュボードライブラリ250は、構成要素を実装できるダッシュボードインターフェイスを生成するための1つまたは複数のダッシュボードシェルを含む。さまざまな実施形態において、ダッシュボードライブラリ250からのダッシュボードデータは、クライアント装置120などのクライアント装置に送信され、ダッシュボード構成要素表示命令240からの表示に利用可能になると構成要素が実装されるダッシュボードシェルを生成する。
【0043】
構成要素促進システム140は、レンダリングサブシステム260をさらに備えることができる。レンダリングサブシステム260は、サーバ側レンダリング構成の一部として、ダッシュボード上に表示するために構成要素をレンダリングするように構成され得る。例えば、レンダリングサブシステム260は、ダッシュボード作成サブシステム143によって生成されるダッシュボードデータを受信することができる。レンダリングサブシステム260は、ダッシュボードデータを、ダッシュボードインターフェイスのレンダリングされたバージョンを表示するためにクライアント装置に送信できるレンダリングデータに変換することができる。クライアント装置120と構成要素促進システム140のサブシステムとの間の対話のそれ以上の例については、
図4に関して以下で説明する。
【0044】
図3は、本開示の特定の実施形態に従うクライアントエンジンシステムのブロック図である。具体的には、
図3は、クライアントエンジンシステム120およびそこに含まれるさまざまなサブシステムを示す。クライアントエンジンシステム120は、ダッシュボード表示サブシステム121を備え得る。ダッシュボード表示サブシステム121は、クライアント装置110などのクライアント装置の電子ディスプレイ上でのダッシュボードインターフェイスの表示を容易にするクライアントエンジンシステム120内のサブシステムであってもよい。さまざまな実施形態において、ダッシュボード表示サブシステム121は、表示データを受信し利用して、ダッシュボードインターフェイスを表示させるように構成される。
【0045】
クライアントエンジンシステム120は、入力取扱いサブシステム122をさらに備えることができる。入力取扱いサブシステム122は、入力を検出して扱うためのクライアントエンジンシステム120内のサブシステムであってもよい。さまざまな実施形態において、入力取扱いサブシステム122は、装置のユーザからの対話および/または入力を検出するために、1つまたは複数の入力リスナの使用を容易にする。さまざまな実施形態において、入力取扱いサブシステム122は、検出される入力に対応するデータを生成し、そのデータをシステムに送信して、対応する構成要素の更新を行わせることができる。例えば、ダッシュボードインターフェイス上に表示される特定の構成要素に対応する入力を検出したことに応答して、入力取扱いサブシステムは、対話メタデータを生成し、その対話メタデータを、更新命令230などの応答更新を行わせるモジュールに送信することができる。
【0046】
クライアントエンジンシステム120は、ローカル記憶装置サブシステム300をさらに備えることができる。ローカル記憶装置300は、クライアント装置に関連する1つまたは複数のデータセットを記憶する記憶装置またはリポジトリであり得る。さまざまな実施形態において、ローカル記憶装置サブシステム300は、1つまたは複数の構成要素の機能に関連する1つまたは複数の情報のセットに関するデータを含む。ローカル記憶装置サブシステム300は、この情報を記憶し、送信し、その他の方法で利用して、本明細書で説明するように構成要素の生成を容易にすることができる。例えば、構成要素生成プロセスの一部として、ローカル記憶装置サブシステム300は、関連するクライアントデータを生成エンジンに送信して、構成要素の生成を完了することができる。例示的な実施形態では、構成要素は、ダッシュボードインターフェイス上のウィジェット構成要素に顧客の利益の指標を表示することができる。利益情報は、顧客の装置のクライアント側に記憶される。構成要素は、表示するためにクライアントデータを必要とする不完全な宣言的定義に対応し得る。この場合、必要なクライアントデータは、クライアント側に記憶されている利益データである。生成プロセスの一部として、構成要素生成エンジンは、構成要素の生成を完了するためにローカル記憶装置サブシステム300から利益データを要求することができる。
【0047】
クライアントエンジンシステム120は、ダッシュボードエンジンサブシステム123をさらに備えることができる。ダッシュボードエンジンサブシステムは、ダッシュボードインターフェイス表示プロセスの一部として1つまたは複数の構成要素を生成するための多用途エージェントの利用を容易にする構成要素生成エンジンであってもよい。ダッシュボードエンジンサブシステム123は、エージェントサブシステム310を備えることができる。エージェントサブシステム310は、ダッシュボードインターフェイス用の構成要素を生成するための1つまたは複数の多用途エージェントの作成、保守、複製、および/または削除を容易にするダッシュボードエンジンサブシステム123のサブシステムであってもよい。
【0048】
エージェントサブシステム310は、構成要素エージェント320を備えることができる。構成要素エージェント320は、本明細書で説明されるように、インスタンス化される状態、または非インスタンス化/記憶される状態の多用途エージェントであってもよい。さまざまな実施形態において、構成要素エージェント320は、宣言的定義を受信したことに応答して起動されるエージェントサブシステム310に記憶されるデータを含む。例えば、クライアントエンジンシステム120が構成要素促進システム140からのメタデータなどの宣言的メタデータを受信したことに応答して、クライアントエンジンシステム120は、ダッシュボードエンジンサブシステム123内で構成要素エージェント320をインスタンス化する。さまざまな実施形態において、構成要素エージェント320は、宣言的メタデータを受信して解析し、構成要素生成プロセスを開始する。構成要素エージェント320は、メタデータ解析命令322を含むことができる。メタデータ解析命令322は、宣言的メタデータなどのメタデータを解析するために構成要素エージェント320によって利用可能な命令であってもよい。
【0049】
構成要素エージェント320は、構成要素生成命令324をさらに含むことができる。構成要素生成命令324は、解析される宣言的メタデータに基づいて構成要素を生成するための命令であり得る。さまざまな実施形態において、インスタンス化される構成要素エージェントは、生成される構成要素ごとに少なくとも1回複製され得る。さまざまな実施形態において、構成要素エージェント320は、構成要素の生成をさせるために、ローカル記憶装置サブシステム300などのローカル記憶装置からクライアント情報を取得することができる。構成要素生成プロセスについては、
図5でさらに説明する。さまざまな実施形態において、構成要素エージェント320の構成要素生成命令324は、構成要素エージェント320によって解析される宣言的メタデータを利用して、クライアント側レンダリング構成の一部としてレンダリングデータを生成するように構成され得る。例えば、構成要素エージェント320は、宣言的定義からのメタデータを解析し、そのメタデータを、ダッシュボードインターフェイスの対応する視覚構成要素の表示をさせるために実行可能なレンダリングデータに変換することができる。構成要素エージェント320は、エージェント間通信命令326をさらに含むことができる。エージェント間通信命令326は、構成要素生成プロセスの一部として、2つ以上のインスタンス化された構成要素エージェント間で通信をさせるための命令であってもよい。
【0050】
ダッシュボードエンジンサブシステム123は、サービス通信サブシステム330を備え得る。サービス通信サブシステム330は、1つまたは複数のサービスとクライアントエンジンシステム120との間の通信を容易にするクライアントエンジンシステム120のサブシステムであってもよい。例えば、構成要素に関連する1つまたは複数の外部サービス、または構成要素を生成するために必要なデータは、外部サービスから受信され、クライアントエンジンシステム120によって利用されて、1つまたは複数の構成要素を生成することができる。
【0051】
図4は、本開示の特定の実施形態に従う、クライアントエンジンシステム120と構成要素促進システム140のサブシステムとの間の対話を示すブロック図である。
図4に示すように、分散システム400は、クライアント装置110に通信可能に結合されるクライアントエンジンシステム120を備える。クライアント装置110は、ユーザがダッシュボードを指定、生成、表示、および/またはダッシュボードと対話できる装置であってもよい。
図4に示されるように、分散システム400内で、クライアントエンジンシステム120は、これらの目的のために構成要素促進システム140のサブシステムにさらに通信可能に結合され得る。
【0052】
クライアントエンジンシステム120は、構成要素促進システム140のカタログサブシステム141に通信可能に結合され得る。クライアントエンジンシステム120は、カタログサブシステム141にカタログクエリ410を送信するように構成され得る。カタログクエリ410は、ダッシュボードインターフェイスの一部として表示可能な構成要素のリストに対する問い合せ(query)であり得る。カタログクエリ410を受信したことに応答して、カタログサブシステム141は、カタログデータ420をクライアントエンジンシステム120に送信するように構成され得る。例えば、クライアント装置110のユーザは、クライアントエンジンシステム120を利用して、ユーザ個人用のダッシュボードインターフェイスの一部として表示され得る構成要素のリストを問い合せることができる。カタログサブシステム410は、クエリを受信し、カタログ化される構成要素のリストをクライアントエンジン120に返し得る。次に、クライアントエンジン120は、ユーザ個人用ダッシュボードインターフェイスに含めるための構成要素を構成要素カタログから選択することができる。さまざまな実施形態において、カタログサブシステム410はウィジェットカタログサブシステムである。ウィジェットカタログサブシステムは、クライアント装置110のユーザが選択する、ウィジェット構成要素ダッシュボードに追加する、構成する、またはその他の方法で利用するための利用可能なウィジェットのリストを記憶し、クライアントエンジンシステム120に送信することができる。
【0053】
クライアントエンジンシステム120はさらに、構成要素促進システム140のダッシュボード作成サブシステム143に通信可能に結合されてもよい。クライアントエンジンシステム120は、所望のダッシュボード構成に対応する新しいダッシュボードデータ430をダッシュボード作成サブシステム143に送信するように構成され得る。新しいダッシュボードデータ430を受信したことに応答して、ダッシュボード作成サブシステム143は、新しいダッシュボードの構成に関するデータを生成するように構成され得る。ダッシュボード作成サブシステム143は、生成されたデータを更新済みダッシュボードデータ440としてクライアントエンジンシステム120に送信するように構成され得る。例えば、クライアント装置110のユーザは、クライアント装置110上で確認したい「モック」ダッシュボードを作成することができる。クライアントは、クライアントエンジンシステム120を利用して、新しいダッシュボードデータ430をダッシュボード作成サブシステム143に送信することができ、ダッシュボード作成サブシステム143は、更新済みダッシュボードデータ440を生成する。更新済みダッシュボードデータ440は、ユーザによって作成される「モック」ダッシュボードに対応する機能ダッシュボードを作成するための宣言的メタデータを含むことができる。更新済みダッシュボードデータ440は、クライアントエンジンシステム120に送信される前に、ダッシュボード作成サブシステム250のダッシュボードライブラリ250に記憶され得る。
図4には示されていないさまざまな実施形態において、ダッシュボード作成サブシステム143は、レンダリングサブシステム260などのレンダリングサブシステムを利用して、サーバ側レンダリング構成システムの一部として、更新済みダッシュボードデータ440に基づいてレンダリングデータを生成することができる。さまざまな実施形態において、更新済みダッシュボードデータ440は、ウィジェット定義に対応する宣言的定義を含み、ウィジェット定義は、ユーザによって指定されるカスタマイズされる構成でダッシュボードインターフェイス上に1つまたは複数のウィジェット構成要素をレンダリングするための宣言的メタデータを含む。
【0054】
クライアントエンジンシステム120はさらに、構成要素促進システム140のサービスデータサブシステム142に通信可能に結合され得る。クライアントエンジンシステム120は、サービスデータサブシステム142にサービスクエリ450を送信するように構成され得る。サービスクエリ450は、サービスプロバイダによって維持される1つまたは複数のサービスの性能および/または状態に関連するサービスデータ/メトリクスに対する問い合せであり得る。サービスクエリ450を受信したことに応答して、サービスデータサブシステム142は、サービスクエリ450によって指定される1つまたは複数のサービスの性能に関するサービスデータ460を生成するように構成され得る。サービスデータサブシステム142は、生成されるサービスデータ460をクライアントエンジンシステム120に送信するように構成され得る。例えば、クライアント装置110のユーザは、ダッシュボードインターフェイスの表示可能な要素として求められる、ユーザによって利用されるサービスの1つまたは複数の性能メトリクスを指定することができる。1つまたは複数の性能メトリックをダッシュボードインターフェイス上の1つまたは複数の構成要素と組み合わせて、ダッシュボードインターフェイスの一部としてこれらのサービスの性能を示すことができる。クライアントは、クライアントエンジンシステム120を利用してサービスクエリ450をサービスデータサブシステム142に送信することができ、サービスデータサブシステム142はサービスデータ460を生成する。さまざまな実施形態において、サービスデータ460は、ダッシュボードインターフェイス上に1つまたは複数のウィジェット構成要素を生成するために多用途エージェントによって利用可能なウィジェットデータを含む。例えば、サービスデータ460は、1つまたは複数の構成要素ウィジェットに挿入できるウィジェットデータを含むことができる。ウィジェット構成要素は、受信したウィジェットデータの一部を表示して、ウィジェット構成要素内のサービスのいくつかの態様を表示することができる。さまざまな実施形態において、サービスデータ460は、サービスの性能に関するメトリクスおよび/または他のサービスデータを含むことができる。例えば、サービスデータ460は、サービスプロバイダによって運営されるサービスに関連するメトリクス、ロギングデータ、請求データ、検索データなどを含むことができる。さまざまな実施形態において、サービスデータは、サービスプロバイダによって運営されるクラウドインフラストラクチャ上でホスティングするクラウドベースのサービスの態様に関連する。クライアントは、これらのクラウドベースのサービスにアクセスするか、またはそれを利用することができ、受信したサービスデータは、クライアントがアクセス/利用する可能性のあるこれらのクラウドベースのサービスに関する態様/性能データに関連し得る。
【0055】
さまざまな実施形態において、クライアントエンジンシステム120内の構成要素エージェント320は、
図4に示す構成要素促進システム140のシステムとの通信を通じてダッシュボードインターフェイスの表示を容易にすることができる。例えば、クライアント装置110のユーザは、カタログサブシステム141から構成要素のリストを問い合せることができる。カタログサブシステム141は、カタログ化される構成要素のリストに対応するカタログデータをクライアントエンジンシステム120に送信することができる。ユーザは、特定の構成内の構成要素のサブセットを選択して、ダッシュボードインターフェイスを構築できる。構成は、新しいダッシュボードデータとしてパッケージ化され、ダッシュボード作成サブシステム143に送信される。ダッシュボードデータによって指定される構成に基づいて、ダッシュボード作成サブシステム143は、宣言的メタデータの形式で更新済みダッシュボードデータを生成することができる。宣言的メタデータは、クライアント側レンダリング構成でレンダリングするためにクライアントエンジンシステム120に送信されてもよいし、サーバ側レンダリング構成で直接レンダリングされてもよい。
【0056】
クライアント側レンダリング構成では、宣言的メタデータはクライアントエンジンシステムによって受信され、多用途エージェントなどの構成要素エージェント320が宣言的メタデータを解析する。宣言的メタデータで指定される構成要素を構築するために、いくつかの多用途エージェントが複製される。構成要素のレンダリングが完了すると、1つまたは複数の多用途エージェントは、ダッシュボード定義の構成要素の一部として表示されるサービスデータについてサービスデータサブシステム142に問い合せることができる。サービスデータサブシステムは、サービスデータを多用途エージェントに返す。サーバ側レンダリング構成を利用する実施形態では、サービスデータは、レンダリングデータを生成するためにダッシュボード作成サブシステムに直接送信される。
【0057】
クライアント側のレンダリング構成を返すと、多用途エージェントは、宣言的メタデータと、サービスデータサブシステムから受信したサービスデータの両方を利用して、ユーザによって指定される構成でダッシュボードインターフェイスを表示するために実行可能なレンダリングデータを生成する。クライアントエンジンシステム120は、多用途エージェントを使用して、表示されるダッシュボード構成要素を能動的に監視することができる。例えば、多用途エージェントは、サービスデータサブシステム142から新しいサービスデータを定期的にフェッチして、表示される構成要素をリアルタイムで更新することができる。多用途エージェントは、ダッシュボードインターフェイスの表示される構成要素でのユーザ入力に反応し、それに応じて応答することもできる。さまざまな実施形態において、ユーザは、ダッシュボードインターフェイスの構成を編集することができ、クライアントエンジンシステム120は、新しいダッシュボードデータをダッシュボード作成サブシステム143に送信して、新しいダッシュボード構成の更新される宣言的定義を含む更新済みダッシュボードデータを受信させることができる。
【0058】
図5は、本開示の特定の実施形態に従う、多用途エージェントを使用したインターフェイス構成要素生成のためのプロセスの例示的なフローチャートを示す。具体的には、
図5は、分散される複数の構成要素エージェントを利用してインターフェイスを表示するための構成要素レンダリングを生成するためのプロセス500の例示的なフローチャートを示す。プロセス500は、インターフェイス上に1つまたは複数の視覚構成要素を表示するための宣言的メタデータを受信することによってステップ510で始まる。宣言的メタデータは、構成要素生成プロセスの一部として多用途エージェントによって受信され得る。例えば、多用途エージェントは、ダッシュボードインターフェイスに表示される1つまたは複数の構成要素の構成に対応する宣言的定義を受信することができる。多用途エージェントは、構成要素促進システムなどの別個のシステムから宣言的定義を受信し得る。
【0059】
それ以上のさまざまな実施形態では、宣言的メタデータは、特定の構成要素の静的メタデータおよび可変メタデータを含み、静的メタデータは、レンダリングされる特定の構成要素の1つまたは複数の既知の態様に対応し、可変メタデータは、レンダリングされる特定の構成要素の1つまたは複数の可変態様に対応する。特定の構成要素の1つまたは複数の可変態様は、宣言的メタデータを生成するシステムにとって未知の態様、および/またはダッシュボードインターフェイスの表示期間中に変化する可能性のある態様であり得る。例えば、仮想マシンの動的アップロード速度を追跡するダッシュボード構成要素には、静的メタデータと可変メタデータの両方が含まれ得る。静的メタデータは、追跡されている特定の仮想マシンを指定し得る。可変メタデータは、表示されるダッシュボード構成要素上で定期的に更新される仮想マシンの動的に更新されるアップロード速度を指定できる。さまざまな実施形態において、サービスデータサブシステムから受信したサービスデータは、レンダリングデータの生成中に可変メタデータを実装するために使用される。
【0060】
ステップ520で、宣言的メタデータが解析されて、1つまたは複数の視覚構成要素が決定される。さまざまな実施形態において、宣言的メタデータは、宣言的定義を解析する多用途エージェントのインスタンスに送信される。さまざまなさらに他の実施形態では、多用途エージェントはメタデータを解析して、インターフェイス上に表示される1つまたは複数の視覚構成要素に対応する宣言的メタデータの1つまたは複数のサブセットを決定する。さまざまなさらに他の実施形態では、宣言的メタデータは、1つまたは複数の宣言的データサブセットの編集物であってもよく、1つまたは複数の宣言的データサブセットは、インターフェイス上に表示される1つまたは複数の対応する視覚構成要素を決定するために多用途エージェントによって個別に解析可能である。
【0061】
ステップ530で、インターフェイス上に表示される1つまたは複数の視覚構成要素のうちの特定の視覚構成要素に到達するために、構成要素エージェントが複製される。さまざまな実施形態において、構成要素エージェントは、宣言的メタデータを解析した元の多用途エージェントから複製される。さまざまな実施形態において、少なくとも1つの多用途エージェントが、決定される視覚構成要素ごとに複製される。さまざまなさらに他の実施形態では、複製される各多用途エージェントは、対応する視覚構成要素の生成を容易にする。
【0062】
ステップ540で、1つまたは複数の視覚構成要素を表示するために実行可能なレンダリングデータの1つまたは複数のセットが生成される。さまざまな実施形態において、複製される多用途エージェントの各々は、宣言的メタデータの少なくともサブセットを利用して、レンダリングデータの対応するサブセットを生成する。例えば、ステップ520における宣言的メタデータの解析に基づいて、宣言的メタデータの1つまたは複数のサブセットが、特定の複製される多用途エージェントによって受信され得る。複製される特定の多用途エージェントの各々に、対応する視覚構成要素を生成するための宣言的メタデータのサブセットを委任することができる。特定の多用途エージェントは、受信した宣言的メタデータのサブセットを使用してレンダリングデータを生成し得る。例えば、多用途エージェントは、生成される視覚構成要素を記述する宣言的メタデータのサブセットと、宣言的メタデータのサブセット内の可変メタデータを実装するサービスデータの一部とを受信することができる。多用途エージェントは、そのデータを利用して、レンダリングデータの対応するサブセットをレンダリングデータのセットとして生成する。
【0063】
多用途エージェントは、クライアント装置からの宣言的メタデータおよびローカルデータのサブセットに基づいて構成要素を生成することができる。さまざまな実施形態において、宣言的メタデータのサブセットを受信したことに応答して、複製される多用途エージェントは、構成要素を生成するために必要な1つまたは複数のデータセットを問い合せ、および/または取得することができる。例えば、多用途エージェントは、受信した宣言的メタデータに基づいて、宣言的定義を完成させる1つまたは複数の可変データセットを決定することができる。次に、多用途エージェントは、ローカル記憶装置サブシステム300などのローカルデータソースから可変データを取得し、不完全な宣言的メタデータおよび取得した可変データを使用して完全な宣言的データセットをコンパイルすることができる。
【0064】
さまざまな実施形態において、多用途エージェントは、完全な宣言的データセットを使用して、視覚構成要素をレンダリングするためのレンダリングデータを生成することができる。レンダリングデータは、実行されると、視覚インターフェイス内に配置するために構成要素をレンダリングさせる生成データであってもよい。例えば、多用途エージェントは、完全な宣言的データセットを入力として受信し、構成要素をレンダリングするためのレンダリングデータを出力することができる。レンダリングデータの生成は、多用途エージェントによる構成要素のモックまたは複製を作成することを含むことができる。例えば、多用途エージェントは、完全な宣言的データセットを使用して、コンピュータメモリ内に視覚構成要素の一時的な表現を生成し得る。一時的な表現には、デジタル画面上の位置、構成要素内のテキストまたはシンボル、動的に更新されるフィールドなど、視覚構成要素を定義する任意の情報が含まれ得る。次に、多用途エージェントは、一時的表現を使用して、一時的表現の仕様に従って視覚構成要素をレンダリングするためのレンダリングデータを生成することができる。例えば、レンダリングデータは、一時的な表現で生成される仕様に従って、コンピュータメモリ内に視覚構成要素のレンダリングされる表現を作成するために実行可能なデータであってもよい。
【0065】
さまざまな実施形態において、多用途エージェントインスタンスによるレンダリングデータの生成は、並行して実行され得る。これは、各多用途エージェントインスタンスが、他の多用途エージェントインスタンスとは独立して、レンダリングデータのサブセットを生成し得ることを意味する。さまざまな実施形態において、多用途エージェントの各インスタンスは、他の多用途エージェントインスタンスに直接的または間接的に通信可能に結合される。次に、多用途エージェントは、サービス通信サブシステム330などの通信プロトコルを通じてデータを共有することができる。多用途エージェントインスタンス間でデータを共有すると、冗長なデータ調達プロセスが削減または削除されるため、リソースの使用率が大幅に向上する。例えば、第1の多用途エージェントインスタンスは、第2の多用途エージェントが生成するレンダリングデータと同様のレンダリングデータを生成することができる。第1の多用途エージェントは、第2の多用途エージェントがコンピューティングリソースを使用して同じデータを生成することを防止するために、レンダリングデータを第2の多用途エージェントに送信することができる。別の例では、第1の多用途エージェントは、同じローカルデータに対する冗長なクエリを防ぐために、レンダリングデータの生成に使用されるデータを第2の多用途エージェントに共有することができる。
【0066】
図6は、本開示の特定の実施形態に従う、多用途エージェントを使用したインターフェイス構成要素生成のための分散システムおよびプロセスの例示的なフローチャートを示す。具体的には、
図6は、システムのクライアント側レンダリング構成の一部として構成要素インターフェイスを表示および監視するためのマルチエージェント促進プロセス600を実装する分散システムを示す。分散システムは、プロセス600を実行するためのクライアントエンジンシステム120および構成要素促進システム140を備える。プロセス600は、クライアントエンジンシステム120が構成要素ダッシュボードを表示する要求を生成するステップ610で始まる。構成要素ダッシュボードを表示する要求は、クライアント装置の電子ディスプレイ上に構成要素ダッシュボードの表示を要求するクライアントから送信されてもよい。例えば、顧客は、クライアントエンジンシステム120を実行するクライアント装置110を使用して、構成要素のダッシュボードを閲覧する要求を、構成要素促進システム140を実行するサービスプロバイダのサーバ130に送信することができる。さまざまな実施形態において、構成要素ダッシュボードを表示する要求は、クライアントインジケータを含み、クライアントインジケータは、記憶されるダッシュボード構成に対応する。さまざまな実施形態において、構成要素ダッシュボードを表示する要求は、ダッシュボード上に表示するためのいくつかの所望の構成要素をリストする構成要素マニフェストを含む。
【0067】
ステップ615で、構成要素促進システム140は、クライアントエンジンシステム120から要求を受信し、要求されるダッシュボードを満たす構成要素プラグインを決定する。構成要素促進システム140は、クライアント固有の構成要素マニフェストを利用して、要求されるダッシュボードを満たすための構成要素プラグインを決定することができる。さまざまな実施形態において、マニフェストは、構成要素ダッシュボードを表示する要求の一部としてクライアントエンジンシステム120から受信され得る。さまざまな実施形態において、構成要素促進システム140は、構成要素マニフェストを内部メモリに記憶し、クライアントエンジンシステム123から受信したダッシュボードインジケータに基づいてマニフェストを取得する。マニフェストに基づいて、1つまたは複数のプラグインが識別され得る。プラグインは、1つまたは複数の構成要素定義または機能を含むソフトウェアパッケージであり得る。いくつかのプラグインは、内部メモリに記憶されてもよいし、構成要素促進システム140の内部メモリによってアクセス可能であってもよい。プラグインは、ダッシュボードインターフェイス上で構成要素をレンダリングするための宣言的データに対応し得る。
【0068】
ステップ620で、決定された構成要素プラグインに基づいて、構成要素促進システム140は、構成要素生成のための宣言的メタデータを生成する。宣言的メタデータは、決定された構成要素プラグインから取得される宣言的データに基づいて、または決定された構成要素プラグインに基づいて宣言的データを記憶するコンピュータメモリから取得される宣言的データに基づいて生成され得る。例えば、構成要素マニフェストに基づいて、構成要素プラグインから取得した1つまたは複数の宣言的データのセットを組み合わせて、宣言メタデータのセットを形成することができる。宣言的メタデータは、クライアント固有の視覚構成要素を生成するための、1つまたは複数の静的メタデータのセットと1つまたは複数の可変メタデータのセットとを含むことができる。
【0069】
ステップ625で、クライアントエンジンシステム120は、構成要素促進システム140から宣言的メタデータを受信し、宣言的メタデータを解析して1つまたは複数の視覚構成要素を決定する。これは、プロセス500のステップ510および520と同様である可能性がある。ステップ630で、決定された1つまたは複数の視覚構成要素に基づいて、クライアントエンジンシステム120は、構成要素エージェントを構成要素エージェントの1つまたは複数のインスタンスに複製する。これは、プロセス400で説明したステップ430と同様である可能性がある。ステップ635で、クライアントエンジンシステム120は、ダッシュボードインターフェイスを容易にするために使用されるサービスデータの要求を生成する。この要求は構成要素促進システム140に送信され、構成要素促進システム140は、サービスの性能に関するメトリクスを追跡および記録する。
【0070】
ステップ640で、構成要素促進システム140は、視覚構成要素を完成させるためのサービスデータを取得する。構成要素促進システム140は、ブロック635で生成される要求を使用して、サービスプロバイダシステムで実行されているサービスを識別し、クライアントエンジンシステム120に送信されるメトリックデータを抽出することができる。
【0071】
ステップ645で、クライアントエンジンシステム120は、構成要素促進システム140からサービスデータを受信し、ダッシュボードインターフェイス上で完全な構成要素をレンダリングするためのレンダリングデータを生成する。例えば、クライアントエンジンシステム120およびその中に複製される多用途エージェントは、宣言的メタデータおよびサービスデータを使用して、完全な構成要素の1つまたは複数のインスタンスをコンパイルし、完全な構成要素のレンダリングデータを生成することができる。
【0072】
ステップ650で、クライアントエンジンシステム120は、生成されたレンダリングデータを利用して、構成要素ダッシュボードを含むインターフェイスを表示する。さまざまな実施形態において、クライアントエンジンシステム120は、ダッシュボードインターフェイスが実装されるシェルダッシュボードを事前に受信している。シェルダッシュボードは、インターフェイスデータが生成されると、それによってリアルタイムに実装される。例えば、構成要素促進システム140は、クライアント側レンダリング構成においてクライアントエンジンシステム120によってレンダリングデータが生成されるのと並行して、1つまたは複数のインターフェイスデータのセットを生成することができる。サーバ側レンダリング構成では、ダッシュボード構成要素は、構成要素促進システム140から受信され、クライアントエンジンシステム120によって実行されるときに表示される。
【0073】
ステップ655で、クライアントエンジンシステム120は、表示されるインターフェイスをリアルタイムで監視して、インターフェイスとの何らかの変更または対話を決定する。インターフェイスをリアルタイムで監視することにより、インターフェイスのリアルタイム更新が可能になり得る。例えば、クライアントエンジンシステム120は、インターフェイスを監視して、インターフェイスとのユーザ対話を検出することができる。ユーザの対話により、ダッシュボード上の特定の構成要素が更新され得る。クライアントエンジンシステム120は、対話の決定に応答して、構成要素の更新を行わせることができる。例えば、インターフェイスとの対話によりウィジェット構成要素が更新される場合、構成要素エンジンは、構成要素促進システム140と対話して、構成要素の再生成または更新を行わせることができる。ステップ660で、構成要素促進システム140は、クライアントエンジンシステム120と同時に、表示されるインターフェイスをリアルタイムで監視して、構成要素との変更または対話を決定する。インターフェイスを同時に監視することにより、両方のシステムは、他のシステムとの通信に応答するのではなく、インターフェイスとの対話に応答して動作し得る。
【0074】
図7は、本開示の特定の実施形態に従う、インターフェイスを生成するためのダッシュボードライブラリおよびダッシュボードエンジンを含む分散システムのブロック図である。具体的には、
図7は、例示的なインターフェイス構造およびインターフェイスの表示を容易にするエンティティのブロック図を示す。
図7に示すブロック図は、本明細書で説明される実施形態に従ってダッシュボードインターフェイスを作成するための説明的なフローを示し得る。
図7に示されるように、いくつかのプラグイン700A~700Nが存在し、それらは、ダッシュボードインターフェイス上に表示され得る構成要素に関連するデータおよび/または情報を含む。
【0075】
プラグイン700A~700Nは、構成要素カタログ作成装置200に通信可能に結合され、構成要素カタログ作成装置200は、プラグイン700A~700Nからデータを受信して、インターフェイスを実装するための構成要素カタログを生成する。構成要素カタログは、プラグイン700A~700Nと、ダッシュボード要求の一部としてクライアント装置から受信したマニフェストなど、表示用の構成要素のいくつかのマニフェストを使用して作成することができる。構成要素カタログ作成装置200は、構成要素リポジトリ210に通信可能に接続することができ、構成要素リポジトリ210は、構成要素カタログを取得し、構成要素カタログに対応する1つまたは複数の構成要素データセットを取得する。取得される1つまたは複数の構成要素データセットは、宣言的メタデータにコンパイルできる。宣言的メタデータには、プラグインから直接取得されるいくつかの静的データと、クライアント装置に記憶されているローカルデータによって埋められる可変データのフィールドが含まれ得る。さまざまな実施形態において、前述のエンティティの各々は、構成要素促進システムに記憶され得る。
【0076】
構成要素リポジトリ210は、1つまたは複数の取得される構成要素から宣言的メタデータを受信するダッシュボードエンジンサブシステム123に通信可能に結合することができる。ダッシュボードエンジンサブシステム123は、前述の構成要素促進システムとは別個のクライアントエンジンシステムに記憶されてもよい。ダッシュボードエンジンサブシステム123は、構成要素リポジトリ210からの宣言的メタデータを利用して、1つまたは複数の構成要素を生成するように構成することができる。
【0077】
ダッシュボードサブシステム123は、1つまたは複数のエージェントインスタンス710A~710Nを備えることができる。1つまたは複数のエージェントインスタンスは、宣言的メタデータを解析し、構成要素のレンダリングデータを複製し、生成することができる多用途エージェントであってもよい。ダッシュボードサブシステム123は、記憶装置720をさらに備えることができる。記憶装置720は、多用途エージェント710のインスタンスを生成するためのデータを含む記憶装置であってもよい。記憶装置720は、不完全な宣言的メタデータを補足するためのローカルデータを含むローカル記憶装置サブシステム300などのローカル記憶装置であってもよい。例えば、エージェントインスタンス710は、受信宣言的メタデータを解析し、エージェントインスタンス710A~710Nを複製することを決定することができる。エージェントインスタンス710A~710Nの各々は、レンダリングのための構成要素を委任され得る。個々のエージェントインスタンス710は各々、宣言的メタデータのサブセットを記憶装置720からのローカルデータで補足して、完全な宣言的データのセットを作成することができる。次に、エージェントインスタンスは、完全な宣言的データに基づいてレンダリングデータを生成できる。
【0078】
ダッシュボードサブシステム123は、1つまたは複数のレンダリングサブシステム730に通信可能に結合され得る。1つまたは複数のレンダリングサブシステム730は、1つまたは複数のダッシュボード構成要素の生成を容易にするための内部サービスまたは外部サービスであってもよい。例えば、レンダリングサブシステムは、サーバ側レンダリング構成の一部として動作可能な構成要素促進システム140のレンダリングサブシステム260などの外部レンダリングサブシステムであってもよい。クライアント側レンダリング構成を組み込んださまざまな実施形態では、レンダリングは、ダッシュボードエンジンサブシステム123のエージェントインスタンス710A~710Nによって実行される。
【0079】
ダッシュボードサブシステム123は、サービスデータサブシステム142に通信可能に結合され得る。サービスデータサブシステム142は、サービスデータをダッシュボードエンジンサブシステム123に送信して、ダッシュボードエンジンサブシステム123によって受信される宣言的メタデータを完成させて完全な構成要素を形成することができる。例えば、クライアントの顧客のために仮想マシンをホストするために、ダッシュボード表示プロセスとは独立してサービスがクライアントに代わって実行され得る。サービスは、フィールドを埋めるためのサービスデータを取得し、それに応答してダッシュボードエンジンサブシステム123に送り返すように問い合せることができる。上記の例では、仮想マシンサービスは、仮想マシンの現在のアップロード速度、ダウンロード速度、保守ステータスなどの情報を送信できる。
【0080】
ダッシュボードライブラリ250は、ダッシュボードインターフェイスをインスタンス化するための1つまたは複数のダッシュボード構成を記憶することができる。ダッシュボードライブラリ250は、クライアントまたはユーザに関連付けられた1つまたは複数のカスタムモジュール式ダッシュボード構成に関連する情報を含み得る。さまざまな実施形態において、制限なく、前述のプロセスのいずれかと並行して、ダッシュボードライブラリ250は、特定のクライアントのダッシュボードまたは更新されるクライアントダッシュボードを表示する要求に関連するデータを受信することができる。次いで、ダッシュボードライブラリ250は、生成された1つまたは複数の構成要素によって実装されるダッシュボードインターフェイスシェルの生成を開始することができる。ダッシュボードライブラリ250は、ダッシュボードインターフェイスをホストするクライアント装置上で実行されるコンソールアプリケーション740に通信可能に結合され得る。ダッシュボードライブラリ250は、特定の顧客に対応するダッシュボードシェルを備えるコンソールアプリケーション740にデータを送信することができる。これに応答して、コンソールアプリケーション740は、電子ディスプレイを介してユーザに見えるコンソールアプリケーションのホストインターフェイス750上に、ダッシュボードインターフェイス751を生成させることができる。ダッシュボードインターフェイス751には、構成要素753が利用可能になり、表示データを実行することによって表示されるときに、構成要素753が実装されてもよい。
【0081】
このようにして、ダッシュボードライブラリ26=50およびエージェントインスタンス710A~710Nを利用して、コンソールアプリケーション740のホストインターフェイス750上にダッシュボードインターフェイス751を生成することができる。さまざまな実施形態において、シェル構成要素は、構成要素生成プロセスが保留中にダッシュボードインターフェイス751上に配置され、1つまたは複数の構成要素が将来ダッシュボードインターフェイス751上に配置されることをクライアントに示す。ダッシュボードインターフェイス751は、グローバル制御構成要素752をさらに備えることができる。グローバル制御構成要素752は、構成要素の生成を必要とせずに、本質的にダッシュボードインターフェイス751の一部である別個の構成要素であってもよい。グローバル制御構成要素752は、クライアントがインターフェイスしてダッシュボードインターフェイスのいくつかの態様を変化させることができる構成要素であり得る。例えば、グローバル制御構成要素752は、輝度レベル、シェーディングレベルなど、ダッシュボードインターフェイスの1つまたは複数の視覚的態様を変更することができる。別の例では、グローバル制御構成要素752は、入力プロトコル、更新プロトコルなどのダッシュボードインターフェイスの1つまたは複数の機能的態様を変更することができる。
【0082】
構成要素753A~753Nは、生成されるとダッシュボードインターフェイス751上に表示され得る。例えば、第1の構成要素が第2の構成要素の前にレンダリングされ得る。その後、第2の構成要素がまだレンダリング中である間に、第1の構成要素が第2の構成要素の前にダッシュボードインターフェイスに表示され得る。構成要素753A~753Nは対話型構成要素であってもよい。対話型構成要素は、構成要素との対話が検出されるときに何らかの方法で変更されたり、一部の機能を実行させたりし得る。例えば、
図7に示すように、構成要素753Aが境界線で強調表示されており、クライアントがデジタルインターフェイスを使用して構成要素753Aと対話したことを示している。エージェントインスタンス710A~710Nは、ダッシュボードエンジンサブシステム123によってアクセス可能なローカルデータを使用して、対応するそれの構成要素をリアルタイムで能動的に監視および更新することができる。
【0083】
さまざまな実施形態において、コンソールアプリケーション740は、構成要素編集インターフェイス760をさらに備えることができる。構成要素編集インターフェイス760は、クライアントが現在の構成要素753の一部の態様を変更したり、新しい構成要素を作成したりできるためのインターフェイスであってもよい。構成要素編集インターフェイス760は、リアルタイムで対話型であってもよく、これは、クライアントが構成要素編集インターフェイス760を介して構成要素と対話するときに、宣言的メタデータがリアルタイムで生成および編集され得ることを意味する。例えば、
図7に示すように、プラグインA700Aは、構成要素編集インターフェイス760で編集中の構成要素の機能に関連する何らかのデータを含むことができる。プラグインA700Aからデータをリアルタイムで取得および/または変換して、構成要素編集インターフェイス700内の構成要素の複製を生成することができる。
【0084】
図8は、本開示の特定の実施形態に従う、構成要素利用のための例示的なグラフィカルインターフェイスを示す。具体的には、
図8は、本明細書に記載の実施形態に従って生成されるダッシュボードインターフェイスの例を示す。
図8に示されるように、ホストインターフェイス750は、いくつかの構成要素が実装される構成要素ダッシュボードを表示することができる。ホストインターフェイス750は、グローバル制御構成要素752を備えることができる。ホストインターフェイス750は、構成要素800などのいくつかの視覚構成要素を備え得る。
図8に示すように、構成要素800は、仮想マシンの動作状況を表示するウィジェット形式の構成要素である。
【0085】
ホストインターフェイス750は、新しい構成要素810をさらに備えることができる。新しい構成要素810は、ホストインターフェイス750上に新しい構成要素を作成するためのプレースホルダ構成要素であってもよい。例えば、デジタルディスプレイ上で新しい構成要素810と対話することによって、新しい構成要素編集プロセスを開始することができる。新しい構成要素編集プロセスは、新しい構成要素810に対する構成要素編集インターフェイス760の開始を含むことができる。
図8に示されるように、構成要素編集インターフェイス760は、新しい構成要素を生成するための選択肢を実行し、クライアントに表示することができる。例えば、
図8に示されるように、潜在的な新しい構成要素は、能動的なサーバの場所を表示するための「能動的なサーバの場所」ウィジェット構成要素であり得る。潜在的な新しい構成要素は、潜在的な新しいウィジェットに対応する宣言的メタデータに従って、生成される構成要素の複製として表示される。例えば、複製には、構成要素に関する情報のいくつかのフィールドのタイトルや場所などの静的データと、クライアントが指定できる表示情報の対象となるいくつかのサーバなどの可変データとが含まれている。
【0086】
図8に示されるインターフェイスを実装するための例示的な実施形態を以下に説明する。インターフェイスが表示され得るクライアントエンジンシステム120を実装するクライアント装置110のユーザは、ダッシュボード「私の仮想マシンのダッシュボード」の表示を指定することができる。ユーザは、新しい構成要素810と対話して、編集インターフェイス760を介して新しい構成要素の作成を要求することができる。新しい構成要素810との対話を検出したことに応答して、クライアントエンジンシステム120は、カタログ化された構成要素のリストを取得して送信するために、構成要素促進システム140のカタログサブシステム141に問い合せることができる。カタログ化された構成要素からのそのような構成要素の1つは、構成要素編集インターフェイス760上に複製構成要素として表示され得る。
【0087】
ユーザが新しい構成要素810の作成を指定すると、クライアントエンジンシステムは、新しい構成に対応するダッシュボードデータを構成要素促進システム140のダッシュボード作成サブシステム143に送信することができる。ダッシュボード作成サブシステム143は、ダッシュボードデータを解析し、いくつかのプラグイン700にアクセスして、新しいダッシュボード構成に関連する宣言的メタデータを取得する。次いで、ダッシュボード作成サブシステム143は、宣言的メタデータをクライアントエンジンシステム120に送信することができる。クライアントエンジンシステム120は、多用途エージェントを利用して宣言的定義を解析し、「私の仮想マシンのダッシュボード」の一部として表示されるいくつかの構成要素の多用途エージェントの複製を生じさせることができる。多用途エージェントの一部は、構成要素促進システム140のサービスデータサブシステム142に問い合せ、表示される構成要素に関連するサービスデータを取得することができる。例えば、新しい構成要素810に対応する特定の多用途エージェントは、サービスプロバイダによって運営され、クライアントによって利用されるサーバのサーバステータスに関連するサービスデータについてサービスデータサブシステム142に問い合せることができる。サービスデータサブシステム142は、この情報を特定の多用途エージェントに送り返すことができる。
【0088】
多用途エージェントは、ダッシュボード作成サブシステム143から受信した宣言的定義およびサービスデータサブシステム142から受信したサービスデータを使用して、ダッシュボードインターフェイス上に表示される構成要素のレンダリングデータを生成することができる。次に、レンダリングデータを実行して、シェルインターフェイスに実装し、
図8に示すインターフェイスを表示することができる。
【0089】
上で述べたように、サービスとしてのインフラストラクチャ(IaaS)は、クラウドコンピューティングの特定のタイプの1つである。IaaSは、パブリックネットワーク(インターネットなど)経由で仮想化されるコンピューティングリソースを提供するように構成できる。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャ構成要素(例えば、サーバ、記憶装置、ネットワークノード(例えばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えばハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、これらのインフラストラクチャ構成要素に付随するさまざまなサービス(例えば、請求、監視、ロギング、負荷分散、およびクラスタリングなど)を提供することもできる。したがって、これらのサービスはポリシー推進型であり得るため、IaaSユーザは負荷分散を推進するポリシーを実装して、アプリケーションの可用性と性能を維持できる可能性がある。
【0090】
場合によっては、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用してアプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザはIaaSプラットフォームにログインして、仮想マシン(VM)の作成、各VMへのオペレーティングシステム(OS)のインストール、データベースなどのミドルウェアの展開、ワークロードとバックアップ用の記憶バケットの作成、さらにはエンタープライズソフトウェアをそのVMにインストールすることができる。その後、顧客はプロバイダのサービスを使用して、ネットワークトラフィックのバランス、アプリケーションの問題のトラブルシューティング、性能の監視、災害復旧の管理などのさまざまな機能を実行できる。
【0091】
ほとんどの場合、クラウドコンピューティングモデルはクラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSの提供(例えば、提供、レンタル、販売)を専門とするサードパーティサービスであってもかまわないが、そうである必要はない。エンティティはプライベートクラウドを展開して、独自のインフラストラクチャサービスプロバイダになることも選択できる。
【0092】
いくつかの例では、IaaS展開は、新しいアプリケーション、またはアプリケーションの新しいバージョンを、準備されているアプリケーションサーバなどに配置するプロセスである。これには、サーバを準備するプロセス(例えば、ライブラリ、デーモンなどのインストールなど)も含まれ得る。これは多くの場合、ハイパーバイザ層(例えば、サーバ、記憶装置、ネットワークハードウェア、および仮想化)の下のクラウドプロバイダによって管理される。したがって、顧客は、(OS)、ミドルウェア、および/またはアプリケーション展開(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップできる)など)などの取扱いに責任を負うことができる。
【0093】
いくつかの例では、IaaSプロビジョニングは、使用するコンピュータまたは仮想ホストを取得し、それらに必要なライブラリまたはサービスをインストールすることさえも指し得る。ほとんどの場合、展開にはプロビジョニングが含まれていないため、最初にプロビジョニングを実行する必要があり得る。
【0094】
場合によっては、IaaSプロビジョニングには2つの異なる課題がある。まず、何かを実行する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、すべてがプロビジョニングされた後に、既存のインフラストラクチャを進化させるという課題がある(例えば、新しいサービスの追加、サービスの変更、サービスの削除など)。場合によっては、インフラストラクチャの構成を宣言的に画定できるようにすることで、これら2つの課題に対処できる場合がある。言い換えれば、インフラストラクチャ(例えば、どの構成要素が必要か、どのように対話するか)は1つまたは複数の構成ファイルによって画定できる。したがって、インフラストラクチャの全体的なトポロジ(例えば、どのリソースがどのリソースに依存するか、およびそれぞれがどのように連携するかなど)を宣言的に記述することができる。場合によっては、トポロジが画定されると、構成ファイルに記述されているさまざまな構成要素を作成および/または管理するワークフローを生成できる。
【0095】
いくつかの例では、インフラストラクチャは、相互接続されている多くの要素を有し得る。例えば、コアネットワークとしても知られる、1つまたは複数の仮想プライベートクラウド(VPC)(例えば、構成可能および/または共有コンピューティングリソースの潜在的にオンデマンドのプール)が存在し得る。いくつかの例では、ネットワークの受信トラフィックおよび/または送信トラフィックがどのように設定されるかを画定するためにプロビジョニングされる1つまたは複数の受信/送信トラフィックグループルールと、1つまたは複数の仮想マシン(VM)が存在する場合もある。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングできる。より多くのインフラストラクチャ要素が望まれたり追加されたりするにつれて、インフラストラクチャは段階的に進化し得る。
【0096】
場合によっては、さまざまな仮想コンピューティング環境にわたるインフラストラクチャコードの展開を可能にするために、継続的展開技術が使用されてもよい。さらに、説明されている技術により、これらの環境内でのインフラストラクチャ管理が可能になる。いくつかの例では、サービスチームは、1つまたは複数の、しかし多くの場合、多くの異なる生産環境(例えば、さまざまな異なる地理的位置にまたがり、場合によっては全世界に及ぶ)に展開することが望ましいコードを書くことができる。しかし、例によっては、コードを展開するインフラストラクチャを最初にセットアップする必要がある。場合によっては、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニングすることができ、および/または展開ツールを利用して、インフラストラクチャがプロビジョニングされた後にコードを展開することができる。
【0097】
図9は、少なくとも1つの実施形態に従う、IaaSアーキテクチャのパターン例を示すブロック
図900である。サービスオペレータ902は、仮想クラウドネットワーク(VCN)906およびセキュアホストサブネット908を含むことができるセキュアホストテナント904に通信可能に結合することができる。いくつかの例では、サービスオペレータ902は、1つまたは複数のクライアントコンピューティング装置を使用することができ、これは、ポータブルハンドヘルド装置(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))もしくはウェアラブル装置(例えば、Google(登録商標)Glass ヘッドマウントディスプレイ)、Microsoft Windows Mobile(登録商標)などの実行ソフトウェア、および/またはiOS、Windows Phone(登録商標)、Android、BlackBerry8、PalmOSなどのさまざまなモバイルオペレーティングシステム、ならびにインターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または有効な他の通信プロトコルであり得る。あるいは、クライアントコンピューティング装置は、例えば、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであってもよい。クライアントコンピューティング装置は、例えばGoogle Chrome OSなどのさまざまなGNU/Linuxオペレーティングシステムを含むがこれらに限定されない、さまざまな市販のUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。代替として、または追加として、クライアントコンピューティング装置は任意の他の電子装置であってもよく、シンクライアントコンピュータ、インターネット対応ゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力装置であり、または無しのMicrosoft Xboxゲームコンソール)、および/またはVCN906および/またはインターネットにアクセスできるネットワークを介して通信できるパーソナルメッセージング装置などである。
【0098】
VCN906は、SSHVCN912に含まれるLPG910を介してセキュアシェル(SSH)VCN912に通信可能に結合することができるローカルピアリングゲートウェイ(LPG)910を含むことができる。SSHVCN912は、SSHサブネット914を含むことができ、SSHVCN912は、制御プレーンVCN916に含まれるLPG910を介して制御プレーンVCN916に通信可能に結合することができる。また、SSHVCN912は、LPG910を介してデータプレーンVCN918に通信可能に結合することができる。制御プレーンVCN916およびデータプレーンVCN918は、IaaSプロバイダが所有および/または動作できるサービステナント919に含めることができる。
【0099】
制御プレーンVCN916は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの一部)として機能する制御プレーン非武装地帯(DMZ)層920を含むことができる。DMZベースのサーバは責任が制限されており、侵害を阻止するのに役立ち得る。さらに、DMZ層920は、1つまたは複数のロードバランサ(LB)サブネット922、アプリサブネット926を含むことができる制御プレーンアプリ層924、制御プレーンデータ層928を含むことができ、これには、データベース(DB)サブネット930(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含めることができる。制御プレーンDMZ層920に含まれるLBサブネット922は、制御プレーンアプリ層924に含まれるアプリサブネット926および制御プレーンVCN916に含まれ得るインターネットゲートウェイ934に通信可能に結合することができ、アプリサブネット926は、制御プレーンデータ層928に含まれるDBサブネット930、ならびにサービスゲートウェイ936およびネットワークアドレス変換(NAT)ゲートウェイ938に通信可能に結合することができる。制御プレーンVCN916は、サービスゲートウェイ936およびNATゲートウェイ938を含むことができる。
【0100】
制御プレーンVCN916は、アプリサブネット926を含むことができるデータプレーンミラーアプリ層940を含むことができる。データプレーンミラーアプリ層940に含まれるアプリサブネット926は、コンピューティングインスタンス944を実行できる仮想ネットワークインターフェイスコントローラ(VNIC)942を含むことができる。コンピューティングインスタンス944は、データプレーンミラーアプリ層940のアプリサブネット926を、データプレーンアプリ層946に含めることができるアプリサブネット926に通信可能に結合することができる。
【0101】
データプレーンVCN918は、データプレーンアプリ層946、データプレーンDMZ層948、およびデータプレーンデータ層950を含むことができる。データプレーンDMZ層948は、データプレーンアプリ層946のアプリサブネット926およびデータプレーンVCN918のインターネットゲートウェイ934に通信可能に結合され得るLBサブネット922を含むことができる。アプリサブネット926は、データプレーンVCN918のサービスゲートウェイ936およびデータプレーンVCN918のNATゲートウェイ938に通信可能に結合することができる。データプレーンデータ層950は、データプレーンアプリ層946のアプリサブネット926に通信可能に結合できるDBサブネット930を含むこともできる。
【0102】
制御プレーンVCN916およびデータプレーンVCN918のインターネットゲートウェイ934は、パブリックインターネット954に通信可能に結合され得るメタデータ管理サービス952に通信可能に結合され得る。パブリックインターネット954は、制御プレーンVCN916およびデータプレーンVCN918のNATゲートウェイ938に通信可能に接続することができる。制御プレーンVCN916およびデータプレーンVCN918のサービスゲートウェイ936は、クラウドサービス956に通信可能に結合することができる。
【0103】
いくつかの例では、制御プレーンVCN916またはデータプレーンVCN918のサービスゲートウェイ936は、パブリックインターネット954を経由せずに、クラウドサービス956へのアプリケーションプログラミングインターフェイス(API)呼び出しを行うことができる。サービスゲートウェイ936からクラウドサービス956へのAPI呼び出しは一方向であり得る:サービスゲートウェイ936はクラウドサービス956へのAPI呼び出しを行うことができ、クラウドサービス956は要求されるデータをサービスゲートウェイ936に送信することができる。しかし、クラウドサービス956は、サービスゲートウェイ936へのAPI呼び出しを開始できない場合がある。
【0104】
いくつかの例では、セキュアホストテナント904は、サービステナント919に直接接続することができ、そうでなければ分離され得る。セキュアホストサブネット908は、LPG910を介してSSHサブネット914と通信することができ、LPG910は、そうでなければ分離されるシステムを介した双方向通信を可能にすることができる。セキュアホストサブネット908をSSHサブネット914に接続すると、セキュアホストサブネット908にサービステナント919内の他のエンティティへのアクセスを与えることができる。
【0105】
制御プレーンVCN916により、サービステナント919のユーザが所望のリソースをセットアップまたはプロビジョニングできるようにすることができる。制御プレーンVCN916内にプロビジョニングされる所望のリソースは、データプレーンVCN918内に展開または使用され得る。いくつかの例では、制御プレーンVCN916はデータプレーンVCN918から分離することができ、制御プレーンVCN916のデータプレーンミラーアプリ層940は、データプレーンミラーアプリ層940およびデータプレーンアプリ層946に含まれることができるVNIC942を介して、データプレーンVCN918のデータプレーンアプリ層946と通信することができる。
【0106】
いくつかの例では、システムのユーザまたは顧客は、要求をメタデータ管理サービス952に通信することができるパブリックインターネット954を介して、例えば作成、読み取り、更新、または削除(CRUD)動作などの要求を行うことができる。メタデータ管理サービス952は、インターネットゲートウェイ934を介して要求を制御プレーンVCN916に通信することができる。この要求は、制御プレーンDMZ層920に含まれるLBサブネット922によって受信され得る。LBサブネット922は、要求が有効であると決定することができ、この決定に応答して、LBサブネット922は、制御プレーンアプリ層924に含まれるアプリサブネット926に要求を送信することができる。要求が検証され、パブリックインターネット954への呼び出しが必要な場合、パブリックインターネット954への呼び出しは、パブリックインターネット954への呼び出しを行うことができるNATゲートウェイ938に送信され得る。要求によって記憶されることが望ましい場合があるメモリは、DBサブネット930に記憶できる。
【0107】
いくつかの例では、データプレーンミラーアプリ層940は、制御プレーンVCN916とデータプレーンVCN918との間の直接通信を容易にすることができる。例えば、構成に対する変更、更新、または他の適切な修正を、データプレーンVCN918に含まれるリソースに適用することが望ましい場合がある。VNIC942を介して、制御プレーンVCN916は、データプレーンVCN918に含まれるリソースと直接通信することができ、それにより、データプレーンVCN918に含まれるリソースに対する構成の変更、更新、または他の適切な修正を実行することができる。
【0108】
いくつかの実施形態では、制御プレーンVCN916およびデータプレーンVCN918は、サービステナント919に含めることができる。この場合、システムのユーザまたは顧客は、制御プレーンVCN916またはデータプレーンVCN918のいずれも所有または動作することはできない。代わりに、IaaSプロバイダは、制御プレーンVCN916およびデータプレーンVCN918を所有または動作することができ、これらは両方ともサービステナント919に含まれ得る。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースと対話することを防止し得るネットワークの分離を可能にすることができる。また、この実施形態により、システムのユーザまたは顧客は、記憶のために所望のレベルの脅威防止を持たない可能性があるパブリックインターネット954に依存する必要なく、データベースをプライベートに記憶することができる。
【0109】
他の実施形態では、制御プレーンVCN916に含まれるLBサブネット922は、サービスゲートウェイ936から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN916およびデータプレーンVCN918は、パブリックインターネット954を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成され得る。顧客が使用するデータベースはIaaSプロバイダによって制御され、パブリックインターネット954から隔離され得るサービステナント919に記憶され得るため、IaaSプロバイダの顧客は、この実施形態を望む可能性がある。
【0110】
図10は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの別のパターン例を示すブロック
図1000である。サービスオペレータ1002(例えば、
図9のサービスオペレータ902)は、セキュアホストテナント1004(例えば、
図9のセキュアホストテナント904)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)1006(例えば、
図9のVCN906)およびセキュアホストサブネット1008(例えば、
図9のセキュアホストサブネット908)を含むことができる。VCN1006は、ローカルピアリングゲートウェイ(LPG)1010(例えば、
図9のLPG910)を含むことができ、これは、SSHVCN1012に含まれるLPG910を介してセキュアシェル(SSH)VCN1012(例えば、
図9のSSHVCN912)に通信可能に結合することができる。SSHVCN1012は、SSHサブネット1014(例えば、
図9のSSHサブネット914)を含むことができ、SSHVCN1012は、制御プレーンVCN1016に含まれるLPG1010を介して、制御プレーンVCN1016(例えば、
図9の制御プレーンVCN916)に通信可能に結合することができる。制御プレーンVCN1016は、サービステナント1019(例えば、
図9のサービステナント919)に含めることができ、データプレーンVCN1018(例えば、
図9のデータプレーンVCN918)は、システムのユーザまたは顧客によって所有または動作され得る顧客テナント1021に含めることができる。
【0111】
制御プレーンVCN1016は、LBサブネット1022(例えば、
図9のLBサブネット922)を含むことができる制御プレーンDMZ層1020(例えば、
図9の制御プレーンDMZ層920)、アプリサブネット1026(例えば、
図9のアプリサブネット926)を含むことができる制御プレーンアプリ層1024(例えば、
図9の制御プレーンアプリ層924)、データベース(DB)サブネット1030(例えば、
図9のDBサブネット930と同様)を含むことができる制御プレーンデータ層1028(例えば、
図9の制御プレーンデータ層928)を含むことができる。制御プレーンDMZ層1020に含まれるLBサブネット1022は、制御プレーンアプリ層1024に含まれるアプリサブネット1026と、制御プレーンVCN1016に含まれ得るインターネットゲートウェイ1034(例えば、
図9のインターネットゲートウェイ934)とに通信可能に結合することができ、アプリサブネット1026は、制御プレーンデータ層1028に含まれるDBサブネット1030、ならびにサービスゲートウェイ1036(例えば、
図9のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1038(例えば、
図9のNATゲートウェイ938)に通信可能に結合することができる。制御プレーンVCN1016は、サービスゲートウェイ1036およびNATゲートウェイ1038を含むことができる。
【0112】
制御プレーンVCN1016は、アプリサブネット1026を含むことができるデータプレーンミラーアプリ層1040(例えば、
図9のデータプレーンミラーアプリ層940)を含むことができる。データプレーンミラーアプリ層1040に含まれるアプリサブネット1026は、コンピューティングインスタンス1044(例えば、
図9のコンピューティングインスタンス944と同様)を実行できる仮想ネットワークインターフェイスコントローラ(VNIC)1042(例えば、942のVNIC)を含むことができる。コンピューティングインスタンス1044は、データプレーンミラーアプリ層1040のアプリサブネット1026とアプリサブネット1026との間の通信を容易にすることができ、これは、データプレーンミラーアプリ層1040に含まれるVNIC1042およびデータプレーンアプリ層1046に含まれるVNIC1042を介して、データプレーンアプリ層1046(例えば、
図9のデータプレーンアプリ層946)に含まれることができる。
【0113】
制御プレーンVCN1016に含まれるインターネットゲートウェイ1034は、メタデータ管理サービス1052(例えば、
図9のメタデータ管理サービス952)に通信可能に結合することができ、これは、パブリックインターネット1054(例えば、
図9のパブリックインターネット954)に通信可能に結合することができる。パブリックインターネット1054は、制御プレーンVCN1016に含まれるNATゲートウェイ1038に通信可能に結合することができる。制御プレーンVCN1016に含まれるサービスゲートウェイ1036は、クラウドサービス1056(例えば、
図9のクラウドサービス956)に通信可能に結合することができる。
【0114】
いくつかの例では、データプレーンVCN1018は、顧客テナント1021に含まれることができる。この場合、IaaSプロバイダは、各顧客に対して制御プレーンVCN1016を提供することができ、IaaSプロバイダは、各顧客に対して、サービステナント1019に含まれる一意のコンピューティングインスタンス1044をセットアップすることができる。各コンピューティングインスタンス1044は、サービステナント1019に含まれる制御プレーンVCN1016と、顧客テナント1021に含まれるデータプレーンVCN1018との間の通信を可能にしてもよい。コンピューティングインスタンス1044は、サービステナント1019に含まれる制御プレーンVCN1016内にプロビジョニングされるリソースが、顧客テナント1021に含まれるデータプレーンVCN1018内に展開されるか、そうでなければ使用されることを可能にし得る。
【0115】
他の例では、IaaSプロバイダの顧客は、顧客テナント1021内に存在するデータベースを有し得る。この例では、制御プレーンVCN1016は、アプリサブネット1026を含むことができるデータプレーンミラーアプリ層1040を含むことができる。データプレーンミラーアプリ層1040はデータプレーンVCN1018内に存在することができるが、データプレーンミラーアプリ層1040はデータプレーンVCN1018内に存在しなくてもよい。つまり、データプレーンミラーアプリ層1040は、顧客テナント1021にアクセスできるが、データプレーンミラーアプリ層1040は、データプレーンVCN1018に存在しなくてもよいし、IaaSプロバイダの顧客によって所有または動作されてもよい。データプレーンミラーアプリ層1040は、データプレーンVCN1018への呼び出しを行うように構成されてもよいが、制御プレーンVCN1016に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN1016内にプロビジョニングされるデータプレーンVCN1018内のリソースを展開またはそうでなければ使用することを望む場合があり、データプレーンミラーアプリ層1040は、顧客の所望の展開またはリソースの他の使用を容易にすることができる。
【0116】
いくつかの実施形態では、IaaSプロバイダの顧客は、データプレーンVCN1018にフィルタを適用することができる。この実施形態では、顧客はデータプレーンVCN1018が何にアクセスできるかを決定することができ、顧客はデータプレーンVCN1018からパブリックインターネット1054へのアクセスを制限することができる。IaaSプロバイダは、フィルタを適用したり、外部ネットワークまたはデータベースへのデータプレーンVCN1018のアクセスを制御したりできない場合がある。顧客によるフィルタおよび制御を顧客テナント1021に含まれるデータプレーンVCN1018に適用すると、データプレーンVCN1018を他の顧客およびパブリックインターネット1054から分離するのに役立ち得る。
【0117】
いくつかの実施形態では、クラウドサービス1056は、パブリックインターネット1054上、制御プレーンVCN1016上、またはデータプレーンVCN1018上に存在しない可能性があるサービスにアクセスするために、サービスゲートウェイ1036によって呼び出すことができる。クラウドサービス1056と制御プレーンVCN1016またはデータプレーンVCN1018との間の接続は、ライブまたは継続的ではない可能性がある。クラウドサービス1056は、IaaSプロバイダが所有または動作する別のネットワーク上に存在し得る。クラウドサービス1056は、サービスゲートウェイ1036から呼び出しを受信するように構成されてもよいし、パブリックインターネット1054から呼び出しを受信しないように構成されてもよい。一部のクラウドサービス1056は、他のクラウドサービス1056から分離されてもよく、制御プレーンVCN1016は、制御プレーンVCN1016と同じ領域になくてもよいクラウドサービス1056から分離されてもよい。例えば、制御プレーンVCN1016は「領域1」に配置され、クラウドサービス「展開6」は領域1と「領域2」に配置され得る。展開6への呼び出しが、領域1にある制御プレーンVCN1016に含まれるサービスゲートウェイ1036によって行われた場合、その呼び出しは領域1の展開6に送信され得る。この例では、制御プレーンVCN1016、または領域1の展開6は、領域2の展開6に通信可能に結合されていない、または通信していない可能性がある。
【0118】
図11は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの別のパターン例を示すブロック
図1100である。サービスオペレータ1102(例えば、
図9のサービスオペレータ902)は、セキュアホストテナント1104(例えば、
図9のセキュアホストテナント904)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)1106(例えば、
図9のVCN906)およびセキュアホストサブネット1108(例えば、
図9のセキュアホストサブネット908)を含むことができる。VCN1106は、SSHVCN1112(例えば、
図9のSSHVCN912)に含まれるLPG1110を介してSSHVCN1112に通信可能に結合され得るLPG1110(例えば、
図9のLPG910)を含むことができる。SSHVCN1112は、SSHサブネット1114(例えば、
図9のSSHサブネット914)を含むことができ、SSHVCN1112は、制御プレーンVCN1116(例えば、
図9の制御プレーンVCN916)に含まれるLPG1110を介して制御プレーンVCN1116に通信可能に結合することができ、データプレーンVCN1118(例えば、
図9のデータプレーン918)に含まれるLPG1110を介してデータプレーンVCN1118に通信可能に結合することができる。制御プレーンVCN1116およびデータプレーンVCN1118は、サービステナント1119(例えば、
図9のサービステナント919)に含めることができる。
【0119】
制御プレーンVCN1116は、ロードバランサ(LB)サブネット1122(例えば、
図9のLBサブネット922)を含むことができる制御プレーンDMZ層1120(例えば、
図9の制御プレーンDMZ層920)、アプリサブネット1126(例えば、
図9のアプリサブネット926と同様)を含むことができる制御プレーンアプリ層1124(例えば、
図9の制御プレーンアプリ層924)、DBサブネット1130を含むことができる制御プレーンデータ層1128(例えば、
図9の制御プレーンデータ層928)を含むことができる。制御プレーンDMZ層1120に含まれるLBサブネット1122は、制御プレーンアプリ層1124に含まれるアプリサブネット1126と、制御プレーンVCN1116に含まれ得るインターネットゲートウェイ1134(例えば、
図9のインターネットゲートウェイ934)とに通信可能に結合され得、アプリサブネット1126は、制御プレーンデータ層1128に含まれるDBサブネット1130、サービスゲートウェイ1136(例えば、
図9のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1138(例えば、
図9のNATゲートウェイ938)に通信可能に結合することができる。制御プレーンVCN1116は、サービスゲートウェイ1136およびNATゲートウェイ1138を含むことができる。
【0120】
データプレーンVCN1118は、データプレーンアプリ層1146(例えば、
図9のデータプレーンアプリ層946)、データプレーンDMZ層1148(例えば、
図9のデータプレーンDMZ層948)、およびデータプレーンデータ層1150(例えば、
図9のデータプレーンデータ層950)を含むことができる。データプレーンDMZ層1148は、LBサブネット1122を含むことができ、これは、データプレーンアプリ層1146の信頼できるアプリサブネット1160と信頼できないアプリサブネット1162、およびデータプレーンVCN1118に含まれるインターネットゲートウェイ1134に通信可能に結合することができる。信頼できるアプリサブネット1160は、データプレーンVCN1118に含まれるサービスゲートウェイ1136、データプレーンVCN1118に含まれるNATゲートウェイ1138、およびデータプレーンデータ層1150に含まれるDBサブネット1130に通信可能に結合することができる。信頼できないアプリサブネット1162は、データプレーンVCN1118に含まれるサービスゲートウェイ1136およびデータプレーンデータ層1150に含まれるDBサブネット1130に通信可能に結合することができる。データプレーンデータ層1150は、データプレーンVCN1118に含まれるサービスゲートウェイ1136に通信可能に結合できるDBサブネット1130を含むことができる。
【0121】
信頼できないアプリサブネット1162は、テナント仮想マシン(VM)1166(1)~(N)に通信可能に結合することができる1つまたは複数の1次VNIC1164(1)~(N)を含むことができる。各テナントVM1166(1)~(N)は、それぞれのアプリサブネット1167(1)~(N)に通信可能に結合することができ、これは、それぞれの顧客テナント1170(1)~(N)に含めることができるそれぞれのコンテナ出口VCN1168(1)~(N)に含めることができる。それぞれの2次VNIC1172(1)~(N)は、データプレーンVCN1118に含まれる信頼できないアプリサブネット1162と、コンテナ出口VCN1168(1)~(N)に含まれるアプリサブネットとの間の通信を容易にすることができる。各コンテナ出口VCN1168(1)~(N)は、パブリックインターネット1154(例えば、
図9のパブリックインターネット954)に通信可能に結合できるNATゲートウェイ1138を含むことができる。
【0122】
制御プレーンVCN1116に含まれ、データプレーンVCN1118に含まれるインターネットゲートウェイ1134は、パブリックインターネット1154に通信可能に結合できるメタデータ管理サービス1152(例えば、
図9のメタデータ管理システム952)に通信可能に結合することができる。パブリックインターネット1154は、制御プレーンVCN1116に含まれ、データプレーンVCN1118に含まれるNATゲートウェイ1138に通信可能に結合することができる。制御プレーンVCN1116に含まれ、データプレーンVCN1118に含まれるサービスゲートウェイ1136は、クラウドサービス1156に通信可能に結合することができる。
【0123】
いくつかの実施形態では、データプレーンVCN1118は、顧客テナント1170と統合することができる。この統合は、コード実行時のサポートが必要な場合など、IaaSプロバイダの顧客にとって有益または望ましい場合がある。顧客は、破壊的な可能性があるコード、他の顧客リソースと通信する可能性のあるコード、またはその他の望ましくない影響を引き起こす可能性のあるコードの実行を提供し得る。これに応じて、IaaSプロバイダは、顧客からIaaSプロバイダに提供されるコードを実行するかどうかを決定できる。
【0124】
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダに一時的なネットワークアクセスを許可し、データプレーン層アプリ1146に付加される機能を要求することができる。機能を実行するコードは、VM1166(1)~(N)で実行することができ、コードはデータプレーンVCN1118上の他の場所で実行するように構成することはできない。各VM1166(1)~(N)は、1つの顧客テナント1170に接続できる。VM1166(1)~(N)に含まれるそれぞれのコンテナ1171(1)~(N)は、コードを実行するように構成され得る。この場合、二重隔離が存在する可能性があり(例えば、コンテナ1171(1)~(N)のコード実行、コンテナ1171(1)~(N)は、信頼できないアプリサブネット1162に含まれる少なくともVM1166(1)~(N)に含まれ得る)、これは、間違ったコードや望ましくないコードがIaaSプロバイダのネットワークに損害を与えたり、別の顧客のネットワークに損害を与えたりすることを防ぐのに役立ち得る。コンテナ1171(1)~(N)は、顧客テナント1170に通信可能に結合されてもよく、顧客テナント1170からデータを送信または受信するように構成されてもよい。コンテナ1171(1)~(N)は、データプレーンVCN1118内の任意の他のエンティティからデータを送信または受信するように構成されていない可能性がある。コードの実行が完了すると、IaaSプロバイダはコンテナ1171(1)~(N)を強制終了するか、その他の方法で破棄することができる。
【0125】
いくつかの実施形態では、信頼できるアプリサブネット1160は、IaaSプロバイダによって所有または動作され得るコードを実行し得る。この実施形態では、信頼できるアプリサブネット1160は、DBサブネット1130に通信可能に結合され、DBサブネット1130内でCRUD動作を実行するように構成され得る。信頼できないアプリサブネット1162は、DBサブネット1130に通信可能に結合され得るが、この実施形態では、信頼できないアプリサブネットは、DBサブネット1130において読み取り動作を実行するように構成され得る。各顧客のVM1166(1)~(N)に含めることができ、顧客からのコードを実行することができるコンテナ1171(1)~(N)は、DBサブネット1130と通信可能に結合されていなくてもよい。
【0126】
他の実施形態では、制御プレーンVCN1116とデータプレーンVCN1118は、直接通信可能に結合されていなくてもよい。この実施形態では、制御プレーンVCN1116とデータプレーンVCN1118との間に直接通信が存在しなくてもよい。しかし、通信は少なくとも1つの方法を通じて間接的に行うことができる。LPG1110は、制御プレーンVCN1116とデータプレーンVCN1118との間の通信を容易にすることができるIaaSプロバイダによって確立され得る。別の例では、制御プレーンVCN1116またはデータプレーンVCN1118は、サービスゲートウェイ1136を介してクラウドサービス1156への呼び出しを行うことができる。例えば、制御プレーンVCN1116からクラウドサービス1156への呼び出しは、データプレーンVCN1118と通信できるサービスに対する要求を含むことができる。
【0127】
図12は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの別のパターン例を示すブロック
図1200である。サービスオペレータ1202(例えば、
図9のサービスオペレータ902)は、セキュアホストテナント1204(例えば、
図9のセキュアホストテナント904)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)1206(例えば、
図9のVCN906)およびセキュアホストサブネット1208(例えば、
図9のセキュアホストサブネット908)を含むことができる。VCN1206は、SSHVCN1212に含まれるLPG1210を介してSSHVCN1212(例えば、
図9のSSHVCN912)に通信可能に結合され得るLPG1212(例えば、
図9のLPG910)を含むことができる。SSHVCN1212は、SSHサブネット1214(例えば、
図9のSSHサブネット914)を含むことができ、SSHVCN1212は、制御プレーンVCN1216(例えば、
図9の制御プレーンVCN916)に含まれるLPG1210を介して、制御プレーンVCN1216に通信可能に結合することができ、データプレーンVCN1218(例えば、
図9のデータプレーン918)に含まれるLPG1210を介して、データプレーンVCN1218に通信可能に結合することができる。制御プレーンVCN1216およびデータプレーンVCN1218は、サービステナント1219(例えば、
図9のサービステナント919)に含めることができる。
【0128】
制御プレーンVCN1016は、LBサブネット1222(例えば、
図9のLBサブネット922)を含むことができる制御プレーンDMZ層1220(例えば、
図9の制御プレーンDMZ層920)、アプリサブネット1226(例えば、
図9のアプリサブネット926)を含むことができる制御プレーンアプリ層1224(例えば、
図9の制御プレーンアプリ層924)、DBサブネット1230(例えば、
図10のDBサブネット1030)を含むことができる制御プレーンデータ層1228(例えば、
図9の制御プレーンデータ層928)を含むことができる。制御プレーンDMZ層1220に含まれるLBサブネット1222は、制御プレーンアプリ層1224に含まれるアプリサブネット1226に通信可能に結合することができ、制御プレーンVCN1216に含めることができるインターネットゲートウェイ1234(例えば、
図9のインターネットゲートウェイ934)に通信可能に結合することができ、アプリサブネット1226は、制御プレーンデータ層1228に含まれるDBサブネット1230に通信可能に結合することができ、サービスゲートウェイ1236(例えば、
図9のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1238(例えば、
図9のNATゲートウェイ938)に通信可能に結合することができる。制御プレーンVCN1216は、サービスゲートウェイ1236およびNATゲートウェイ1238を含むことができる。
【0129】
データプレーンVCN1218は、データプレーンアプリ層1246(例えば、
図9のデータプレーンアプリ層946)、データプレーンDMZ層1248(例えば、
図9のデータプレーンDMZ層948)、およびデータプレーンデータ層1250(例えば、
図9のデータプレーンデータ層950)を含むことができる。データプレーンDMZ層1248は、信頼できるアプリサブネット1260(例えば、
図10の信頼できるアプリサブネット1060)およびデータプレーンアプリ層1246の信頼できないアプリサブネット1262(例えば、
図10の信頼できないアプリサブネット1062)に通信可能に結合され得るLBサブネット1222と、データプレーンVCN1218に含まれるインターネットゲートウェイ1234とを含むことができる。信頼できるアプリサブネット1260は、データプレーンVCN1218に含まれるサービスゲートウェイ1236に通信可能に結合することができ、データプレーンVCN1218に含まれるNATゲートウェイ1238、およびデータプレーンデータ層1250に含まれるDBサブネット1230に通信可能に結合することができる。信頼できないアプリサブネット1262は、データプレーンVCN1218に含まれるサービスゲートウェイ1236およびデータプレーンデータ層1250に含まれるDBサブネット1230に通信可能に接続することができる。データプレーンデータ層1250は、データプレーンVCN1218に含まれるサービスゲートウェイ1236に通信可能に結合できるDBサブネット1230を含むことができる。
【0130】
信頼できないアプリサブネット1262は、1次VNIC1264(1)~(N)を含むことができ、これは、信頼できないアプリサブネット1262内に存在するテナント仮想マシン(VM)1266(1)~(N)に通信可能に結合することができる。各テナントVM1266(1)~(N)は、それぞれのコンテナ1267(1)~(N)内でコードを実行することができ、コンテナ出口VCN1268に含めることができるデータプレーンアプリ層1246に含めることができるアプリサブネット1226に通信可能に結合することができる。それぞれの2次VNIC1272(1)~(N)は、データプレーンVCN1218に含まれる信頼できないアプリサブネット1262とコンテナ出口VCN1268に含まれるアプリサブネットとの間の通信を容易にすることができる。コンテナ出口VCNは、パブリックインターネット1254(例えば、
図9のパブリックインターネット954)に通信可能に結合できるNATゲートウェイ1238を含むことができる。
【0131】
制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるインターネットゲートウェイ1234は、パブリックインターネット1254に通信可能に結合できるメタデータ管理サービス1252(例えば、
図9のメタデータ管理システム952)に通信可能に結合することができる。パブリックインターネット1254は、制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるNATゲートウェイ1238に通信可能に結合することができる。制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるサービスゲートウェイ1236は、クラウドサービス1256に通信可能に結合することができる。
【0132】
いくつかの例では、
図12のブロック
図1200のアーキテクチャによって示されるパターンは、
図10のブロック
図1000のアーキテクチャによって示されるパターンの例外であると考えられ、IaaSプロバイダが顧客と直接通信できない場合(例えば、切断されている領域)、IaaSプロバイダの顧客にとっては望ましい場合がある。各顧客のVM1266(1)~(N)に含まれるそれぞれのコンテナ1267(1)~(N)は、顧客によってリアルタイムでアクセス可能である。コンテナ1267(1)~(N)は、コンテナ出口VCN1268に含まれることができるデータプレーンアプリ層1246のアプリサブネット1226に含まれるそれぞれの2次VNIC1272(1)~(N)への呼び出しを行うように構成され得る。2次VNIC1272(1)~(N)は、呼び出しをパブリックインターネット1254に送信することができるNATゲートウェイ1238に呼び出しを送信することができる。この例では、顧客がリアルタイムでアクセスできるコンテナ1267(1)~(N)は、制御プレーンVCN1216から分離することができ、データプレーンVCN1218に含まれる他のエンティティから分離することができる。コンテナ1267(1)~(N)は、他の顧客からのリソースから隔離されてもよい。
【0133】
他の例では、顧客は、コンテナ1267(1)~(N)を使用して、クラウドサービス1256を呼び出すことができる。この例では、顧客は、クラウドサービス1256からサービスを要求するコードをコンテナ1267(1)~(N)内で実行することができる。コンテナ1267(1)~(N)は、この要求を2次VNIC1272(1)~(N)に送信することができ、2次VNIC1272(1)~(N)は、要求をパブリックインターネット1254に送信することができるNATゲートウェイに要求を送信することができる。パブリックインターネット1254は、インターネットゲートウェイ1234を介して、制御プレーンVCN1216に含まれるLBサブネット1222に要求を送信することができる。要求が有効であるとの決定に応答して、LBサブネットは、サービスゲートウェイ1236を介してクラウドサービス1256に要求を送信できるアプリサブネット1226に要求を送信することができる。
【0134】
図に示されているIaaSアーキテクチャ900、1000、1100、1200は、示されているもの以外の構成要素を有し得ることを理解されたい。さらに、図に示される実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムのいくつかの例にすぎない。他のいくつかの実施形態では、IaaSシステムは、図示されているよりも多いもしくは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成もしくは配置を有してもよい。
【0135】
特定の実施形態では、本明細書で説明されるIaaSシステムは、セルフサービス、サブスクリプションベース、弾力的に拡張可能、信頼性が高く、可用性が高く、安全な方法で顧客に提供されるアプリケーション、ミドルウェア、およびデータベースサービス製品のスイートを含むことができる。このようなIaaSシステムの一例として、本譲受人が提供するOracle Cloud Infrastructure(OCI)がある。
【0136】
図13は、さまざまな実施形態が実装され得る例示的なコンピュータシステム1300を示す。システム1300は、上述のコンピュータシステムのいずれかを実装するために使用することができる。図に示すように、コンピュータシステム1300は、バスサブシステム1302を介して多くの周辺サブシステムと通信する処理装置1304を含む。これらの周辺サブシステムは、処理加速装置1306、I/Oサブシステム1308、記憶サブシステム1318、および通信サブシステム1324を含み得る。記憶サブシステム1318は、有形のコンピュータ可読記憶媒体1322およびシステムメモリ1310を含む。
【0137】
バスサブシステム1302は、コンピュータシステム1300のさまざまな構成要素およびサブシステムが意図したとおりに相互に通信できるようにする機構を提供する。バスサブシステム1302は単一のバスとして概略的に示されているが、バスサブシステムの代替実施形態では複数のバスを利用することができる。バスサブシステム1302は、さまざまなバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。例えば、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびPeripheral Component InterConnect(PCI)バスが含まれ得る。これは、IEEEP1386.1標準に従って製造されるメザニンバスとして実装できる。
【0138】
処理装置1304は、1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装することができ、コンピュータシステム1300の動作を制御する。1つまたは複数のプロセッサが処理装置1304に含まれてもよい。これらのプロセッサには、単一コアプロセッサまたはマルチコアプロセッサが含まれ得る。特定の実施形態では、処理装置1304は、各処理装置に含まれる単一コアプロセッサまたはマルチコアプロセッサを有する1つまたは複数の独立した処理装置1332および/または1334として実装され得る。他の実施形態では、処理装置1304は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されるクアッドコア処理装置として実装されてもよい。
【0139】
さまざまな実施形態において、処理装置1304は、プログラムコードに応答してさまざまなプログラムを実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。いつでも、実行されるプログラムコードの一部またはすべては、プロセッサ1304および/または記憶サブシステム1318に存在することができる。適切なプログラミングを通じて、プロセッサ1304は、上述のさまざまな機能を提供することができる。コンピュータシステム1300は、デジタルシグナルプロセッサ(DSP)、専用プロセッサ等を含むことができる処理加速装置1306をさらに含むことができる。
【0140】
I/Oサブシステム1308は、ユーザインターフェイス入力装置およびユーザインターフェイス出力装置を含むことができる。ユーザインターフェイス入力装置にはキーボード、マウスやトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドやタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えたオーディオ入力装置、マイク、および他のタイプの入力装置が含まれ得る。ユーザインターフェイス入力装置には、例えば、Microsoft Kinect(登録商標)モーションセンサーなどのモーションセンシングおよび/またはジェスチャ認識装置が含まれ得、ユーザは、ジェスチャや音声コマンドを使用した自然なユーザインターフェイスを通じて、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御し、対話できるようになる。ユーザインターフェイス入力装置には、ユーザからの目の活動(例えば、写真撮影中および/またはメニュー選択中の「瞬き」)を検出し、目のジェスチャを入力装置(例えば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識装置も含まれ得る。さらに、ユーザインターフェイス入力装置は、ユーザが音声コマンドを通じて音声認識システム(例えば、Siri(登録商標)ナビゲータ)と対話できるようにする音声認識センシング装置を含んでもよい。
【0141】
ユーザインターフェイス入力装置には、限定されないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルビデオカメラなどのオーディオ/ビジュアル装置、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置なども含まれ得る。さらに、ユーザインターフェイス入力装置には、例えば、コンピュータ断層撮影法、磁気共鳴画像法、位置放射断層撮影法、医療用超音波検査装置などの医療用画像入力装置が含まれてもよい。ユーザインターフェイス入力装置には、例えば、MIDIキーボード、デジタル楽器などのオーディオ入力装置も含まれ得る。
【0142】
ユーザインターフェイス出力装置には、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚的ディスプレイが含まれてもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネル装置、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム1300からユーザまたは他のコンピュータに情報を出力するためのあらゆる可能なタイプの装置および機構を含むことを意図している。例えば、ユーザインターフェイス出力装置には、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力装置、およびモデムなど、テキスト、グラフィックス、およびオーディオ/ビデオ情報を視覚的に伝達するさまざまな表示装置が含まれるが、これらに限定されない。
【0143】
コンピュータシステム1300は、システムメモリ1310内に現在配置されているように示されるソフトウェア要素を備える記憶サブシステム1318を備えることができる。システムメモリ1310は、処理装置1304上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを記憶することができる。
【0144】
コンピュータシステム1300の構成および種類に応じて、システムメモリ1310は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読み取り専用メモリ(ROM)、フラッシュメモリなど)の場合がある。RAMは通常、処理装置1304に即座にアクセス可能な、ならびに/または処理装置1304によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実装形態では、システムメモリ1310は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実装形態では、起動中など、コンピュータシステム1300内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS)は、通常、ROMに記憶され得る。限定ではなく一例として、システムメモリ1310は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1312、プログラムデータ1314、およびオペレーティングシステム1316も示す。一例として、オペレーティングシステム1316には、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinuxオペレーティングシステム、さまざまな市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがこれらに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムが含まれ得る。
【0145】
記憶サブシステム1318はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体を提供することもできる。プロセッサによって実行されると、上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム1318に記憶され得る。これらのソフトウェアモジュールまたは命令は、処理装置1304によって実行され得る。記憶サブシステム1318はまた、本開示に従って使用されるデータを記憶するためのリポジトリを提供することもできる。
【0146】
記憶サブシステム1300はまた、コンピュータ可読記憶媒体1322にさらに接続できるコンピュータ可読記憶媒体リーダ1320を含んでもよい。一緒に、そして任意でシステムメモリ1310と組み合わせて、コンピュータ可読記憶媒体1322は、リモート、ローカル、固定、および/または取り外し可能な記憶装置に加えて、コンピュータ可読情報を一時的および/またはより永続的に収容、記憶、送信、および取得するための記憶媒体を包括的に表すことができる。
【0147】
コードまたはコードの一部を含むコンピュータ可読記憶媒体1322には、当技術分野で既知または使用されている任意の適切な媒体を含めることもでき、これには、情報の記憶および/または送信のための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体などの記憶媒体および通信媒体が含まれるが、これらに限定されない。これには、RAM、ROM、電子的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリもしくはその他のメモリテクノロジ、CD-ROM、デジタルバーサタイルディスク(DVD)などの有形のコンピュータ可読記憶媒体、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体が含まれ得る。これには、データ信号、データ送信、または所望の情報を送信するために使用でき、コンピューティングシステム1300によってアクセスできる任意の他の媒体などの、無形のコンピュータ可読媒体も含まれ得る。
【0148】
一例として、コンピュータ可読記憶媒体1322は、取り外し不可能な不揮発性磁気媒体に対して読み取りまたは書き込みを行うハードディスクドライブ、取り外し可能な不揮発性磁気ディスクに対して読み取りまたは書き込みを行う磁気ディスクドライブ、およびCDROM、DVD、Blu-Ray(登録商標)ディスクなどの取り外し可能な不揮発性光ディスク、またはその他の光媒体に対して読み取りまたは書き込みを行う光ディスクドライブを含むことができる。コンピュータ可読記憶媒体1322には、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどが含まれてもよいが、これらに限定されない。コンピュータ可読記憶媒体1322には、フラッシュメモリベースのSSDなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、エンタープライズフラッシュドライブ、ソリッドステートROMなど、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリをベースにしたSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDを組み合わせて使用するハイブリッドSSDも含まれ得る。ディスクドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータシステム1300のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供し得る。
【0149】
通信サブシステム1324は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム1324は、コンピュータシステム1300から他のシステムとの間でデータを送受信するためのインターフェイスとして機能する。例えば、通信サブシステム1324は、コンピュータシステム1300がインターネットを介して1つまたは複数の装置に接続できるようにすることができる。いくつかの実施形態では、通信サブシステム1324は、無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバ構成要素を含めることができる(例えば、携帯電話技術、3G、4G、またはEDGE(地球規模の進化のための強化されるデータレート)などの高度なデータネットワーク技術を使用する)、WiFi(IEEE802.11ファミリ標準、または他のモバイル通信技術、またはそれらの任意の組み合わせ)、全地球測位システム(GPS)受信機構成要素、および/または他の構成要素を含むことができる。いくつかの実施形態では、通信サブシステム1324は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(例えば、イーサネット(登録商標))を提供することができる。
【0150】
いくつかの実施形態では、通信サブシステム1324は、コンピュータシステム1300を使用することができる1人または複数のユーザに代わって、構造化および/または非構造化データフィード1326、イベントストリーム1328、イベント更新1330などの形式で入力通信を受信することもできる。
【0151】
一例として、通信サブシステム1324は、ソーシャルネットワーク、および/もしくはTwitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリー(RSS)フィードなどのWebフィードなどのその他の通信サービス、ならびに/または1つもしくは複数のサードパーティ情報ソースからのリアルタイム更新のユーザからリアルタイムでデータフィード1326を受信するように構成され得る。
【0152】
さらに、通信サブシステム1324は、連続データストリームの形式でデータを受信するように構成されてもよく、これには、リアルタイムイベントおよび/またはイベント更新1330のイベントストリーム1328が含まれ得、これらは、連続的または明示的な終わりのない本質的に無制限であり得る。連続データを生成するアプリケーションの例には、例えば、センサーデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などが含まれ得る。
【0153】
通信サブシステム1324はまた、構造化および/または非構造化データフィード1326、イベントストリーム1328、イベント更新1330などを、コンピュータシステム1300に結合される1つまたは複数のストリーミングデータソースコンピュータと通信することができる1つまたは複数のデータベースに出力するように構成することもできる。
【0154】
コンピュータシステム1300は、ハンドヘルドポータブル装置(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含むさまざまなタイプのうちの1つであり得る。
【0155】
コンピュータおよびネットワークの絶え間なく変化する性質のため、図に示されるコンピュータシステム1300の説明は、特定の例としてのみ意図されている。図に示されているシステムよりも多くの、または少ない構成要素を備えた他の多くの構成が可能である。例えば、カスタマイズされているハードウェアも使用されたり、特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、またはその組み合わせで実装されたりし得る。さらに、ネットワーク入出力装置などの他のコンピューティング装置への接続が使用されてもよい。本明細書で提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実装するための他の手法および/または方法を理解するであろう。
【0156】
特定の実施形態について説明してきたが、さまざまな修正、変更、代替構造、および均等物も本開示の範囲内に含まれる。実施形態は、特定の特有のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、特定の一連のトランザクションおよびステップを使用して実施形態を説明したが、本開示の範囲が説明した一連のトランザクションおよびステップに限定されないことは当業者には明らかである。上述の実施形態のさまざまな特徴および態様は、個別にまたは組み合わせて使用することができる。
【0157】
さらに、ハードウェアとソフトウェアの特定の組み合わせを使用して実施形態を説明したが、ハードウェアとソフトウェアの他の組み合わせも本開示の範囲内であることを認識されたい。実施形態は、ハードウェアのみで、もしくはソフトウェアのみで、またはそれらの組み合わせを使用して実装することができる。本明細書で説明するさまざまなプロセスは、同じプロセッサ上で実装することも、異なるプロセッサを任意に組み合わせて実装することもできる。したがって、構成要素またはモジュールが特定の動作を実行するように構成されていると説明されている場合、このような構成は、例えば、動作を実行する電子回路を設計することによって、動作を実行するようにプログラマブル電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を使用して通信することができ、プロセスの異なる対が異なる技術を使用したり、同じプロセスの対が異なる時点で異なる技術を使用したりすることができる。
【0158】
したがって、明細書および図面は、限定的な意味ではなく、例示的な意味としてみなされるべきである。しかし、特許請求の範囲に記載のより広い趣旨および範囲から逸脱することなく、追加、減算、削除、ならびにその他の修正および変更を行うことができることは明らかである。したがって、特定の開示実施形態について説明してきたが、これらは限定することを意図したものではない。さまざまな修正および均等物は、以下の特許請求の範囲内に含まれる。
【0159】
開示されている実施形態を説明する文脈における(特に、以下の特許請求の範囲の文脈において)用語「a」、「an」、「the」、および同様の指示対象の使用は、本明細書で別途指示するか、文脈と明らかに矛盾しない限り、単数形と複数形の両方をカバーすると解釈されるべきである。「含む」、「有する」、「含む」、および「含有する」という用語は、特に断りのない限り、無制限の用語(すなわち、「含むがこれらに限定されない」を意味する)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在している場合でも、部分的または全体的に内部に含まれている、取り付けられている、または結合されていると解釈される。本明細書における値の範囲の記載は、本明細書に別段の記載がない限り、その範囲内にある各々の個別の値を個別に参照する簡略的な方法として機能することを単に意図しており、個別の各値は、あたかも本明細書に個別に記載されているかのように明細書に組み込まれる。本明細書に記載されるすべての方法は、本明細書に別段の指示がない限り、または文脈と明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提供されるあらゆる例、または例示的な文言(例えば、「など」)の使用は、単に実施形態をより良く説明することを目的としており、別段の請求がない限り、本開示の範囲に制限を課すものではない。本明細書のいかなる文言も、特許請求されていない任意の要素が本開示の実施に必須であることを示すものとして解釈されるべきではない。
【0160】
「X、Y、またはZのうちの少なくとも1つ」という句などの選言的表現は、特に別段の記載がない限り、項目、用語などがX、Y、またはZのいずれか、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)であり得ることを示すために一般に使用されると文脈内で理解されることを意図している。したがって、そのような選言的表現は、一般に、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つがそれぞれ存在することを必要とすることを意味することを意図したものではなく、また、意味するべきではない。
【0161】
本開示の好ましい実施形態が、本開示を実施するための既知の最良のモードを含めて、本明細書に記載される。これらの好ましい実施形態の変形は、前述の説明を読めば当業者には明らかになるであろう。当業者であれば、そのような変形を必要に応じて採用することができるはずであり、本開示は、本明細書に具体的に記載された以外の方法で実施することもできる。したがって、本開示には、適用される法律によって許可される、本明細書に添付の特許請求の範囲に記載されている主題のすべての修正および均等物が含まれる。さらに、本明細書で別段の指示がない限り、可能なすべての変形例における上述の要素の任意の組み合わせが本開示に包含される。
【0162】
本明細書に引用される刊行物、特許出願、および特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別かつ具体的に示され、その全体が本明細書に記載されるのと同じ程度に、参照により本明細書に組み込まれる。
【0163】
前述の明細書では、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者は、本開示がそれに限定されないことを認識するであろう。上述の開示のさまざまな特徴および態様は、個別にまたは組み合わせて使用することができる。さらに、実施形態は、本明細書のより広範な趣旨および範囲から逸脱することなく、本明細書に記載されているものを超える任意の数の環境および用途において利用することができる。したがって、明細書および図面は、限定的なものではなく、例示的なものとみなされるべきである。さまざまな変形例および等価物には、実施形態に開示される特徴の関連する適切な組み合わせが含まれる。
【国際調査報告】