IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-536240ドメイン内のエンティティのための複合認可
<>
  • 特表-ドメイン内のエンティティのための複合認可 図1
  • 特表-ドメイン内のエンティティのための複合認可 図2
  • 特表-ドメイン内のエンティティのための複合認可 図3
  • 特表-ドメイン内のエンティティのための複合認可 図4
  • 特表-ドメイン内のエンティティのための複合認可 図5
  • 特表-ドメイン内のエンティティのための複合認可 図6
  • 特表-ドメイン内のエンティティのための複合認可 図7
  • 特表-ドメイン内のエンティティのための複合認可 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】ドメイン内のエンティティのための複合認可
(51)【国際特許分類】
   G06F 21/60 20130101AFI20240927BHJP
   G06F 21/64 20130101ALI20240927BHJP
【FI】
G06F21/60 340
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024519652
(86)(22)【出願日】2022-09-30
(85)【翻訳文提出日】2024-04-18
(86)【国際出願番号】 US2022045348
(87)【国際公開番号】W WO2023055997
(87)【国際公開日】2023-04-06
(31)【優先権主張番号】63/250,805
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウィルソン,グレッグ・アラン
(72)【発明者】
【氏名】アンドリューズ,トーマス・ジェイムズ
(72)【発明者】
【氏名】コール,ゲイリー・フィリップ
(72)【発明者】
【氏名】ナガラジャ,ギリシュ
(72)【発明者】
【氏名】チャバ,バビタ
(57)【要約】
ドメイン内のエンティティのための複合認可のためのシステムおよび方法が説明される。一態様は方法に関する。本方法は、ユーザが第1のシステム内でアクションを取るための要求を受信することと、第1のシステムを用いてユーザによるアクションの第1の認可ステータスを決定することとを含むことができる。本方法は、第2のシステムを用いてユーザによるアクションの第2の認可ステータスを決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を認可基準と比較することとを含むことができる。
【特許請求の範囲】
【請求項1】
ユーザが第1のシステム内でアクションを取るための要求を受信することと、
前記第1のシステムを用いて前記ユーザによる前記アクションの第1の認可ステータスを決定することと、
第2のシステムを用いて前記ユーザによる前記アクションの第2の認可ステータスを決定することと、
前記第1の認可ステータスおよび前記第2の認可ステータスの結合を決定することと、
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合を認可基準と比較することとを含む方法。
【請求項2】
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合が前記認可基準に適合するときに、前記ユーザによる前記アクションを認めることをさらに含む、請求項1に記載の方法。
【請求項3】
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合が、前記ユーザが前記アクションを取るための前記第1のシステムおよび前記第2のシステムの各々からの認可を含むときに、前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合は前記認可基準に適合する、請求項2に記載の方法。
【請求項4】
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合が、前記ユーザが前記アクションを取るための前記第1のシステムおよび前記第2のシステムのうちの少なくとも一方からの認可を含むときに、前記ユーザによる前記アクションを認めることをさらに含む、請求項2に記載の方法。
【請求項5】
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合が前記認可基準に適合しないときに、前記ユーザによる前記アクションを拒否することをさらに含む、請求項1に記載の方法。
【請求項6】
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合が前記第1のシステムおよび前記第2のシステムのうちの少なくとも一方からの認可の拒否を含むときに、前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合は前記認可基準に適合しない、請求項5に記載の方法。
【請求項7】
前記第1のシステムはロールベースアクセス制御(RBAC)システムを含み、前記第2のシステムは属性ベースアクセス制御(ABAC)システムを含む、請求項1に記載の方法。
【請求項8】
前記ユーザが前記第1のシステム内で前記アクションを取るための前記要求を受信することは、前記第1のシステムに関連付けられた第1のアプリケーションからの署名付き要求を受信することを含む、請求項7に記載の方法。
【請求項9】
前記ユーザが前記第1のシステム内で前記アクションを取るための前記要求を受信することは、前記第1のアプリケーション、前記ユーザ、前記アクション、および前記アクションによって影響を受けることになるエンドポイントを識別する情報を受信することを含む、請求項8に記載の方法。
【請求項10】
前記第1のシステムは前記署名付き要求の有効性を検証し、前記受信された署名付き要求、および前記受信された情報のうちの少なくとも一方に基づいて前記第2のシステムを用いて関係プリンシパルを導出する、請求項9に記載の方法。
【請求項11】
前記署名付き要求の有効性を検証することは、前記第2のシステムがデータプレーンからの公開鍵を要求して受信することと、前記公開鍵を用いて前記署名付き要求の有効性を検証することとを含む、請求項10に記載の方法。
【請求項12】
前記第1のシステムを用いて前記ユーザによる前記アクションの前記第1の認可ステータスを決定することは、前記関係プリンシパルのドメイン固有認可を決定することを含む、請求項11に記載の方法。
【請求項13】
前記関係プリンシパルの前記ドメイン固有認可は前記第1のシステムの認可ポリシーに従って決定される、請求項12に記載の方法。
【請求項14】
前記第1のシステムを用いて前記ユーザによる前記アクションの前記第1の認可ステータスを決定することは、前記第1のシステムの認可ポリシーに従ってアクションを取るための前記要求を評価することを含み、前記第2のシステムを用いて前記ユーザによる前記アクションの前記第2の認可ステータスを決定することは、前記受信された情報に少なくとも部分的に基づいて前記第1のシステムの前記認可ポリシーを前記第2のシステムの対応する認可ポリシーに対応付けることを含む、請求項10に記載の方法。
【請求項15】
前記第1のシステムの認可ポリシーに従ってアクションを取るための前記要求を評価することは、前記ユーザのロールおよび前記ユーザのドメインを識別することと、前記ユーザの前記ロールおよび前記ユーザの前記ドメインに関連付けられた許可を検索することと、前記受信された情報が前記検索された許可によって認められるアクションを識別すると決定することとを含む、請求項14に記載の方法。
【請求項16】
前記第2のシステムを用いて前記ユーザによる前記アクションの前記第2の認可ステータスを決定することは、前記ユーザのプリンシパルを決定することと、前記受信された要求に関連するアクセスポリシーを検索することと、前記受信された要求が前記検索されたアクセスポリシーによって認められるアクションを識別すると決定することとをさらに含む、請求項15に記載の方法。
【請求項17】
システムであって、前記システムは、
第1のアクセス制御システムを備え、前記第1のアクセス制御システムは、
少なくとも1つの第1のプロセッサと、
前記少なくとも1つの第1のプロセッサによって実行可能な複数の命令を含むメモリとを含み、
前記システムは、
第2のアクセス制御システムをさらに備え、前記第2のアクセス制御システムは、要求されたユーザアクションのための第2の認可ステータスを決定するように構成されており、
前記第1のアクセス制御システムは、
ユーザが前記第1のアクセス制御システム内でアクションを取るための要求を受信することと、
前記ユーザによる前記アクションの第1の認可ステータスを決定することと、
前記第2のシステムからの前記アクションのための認可情報を受信することと、
前記第1の認可ステータスおよび前記第2の認可ステータスの結合を決定することと、
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合を認可基準と比較することとを行うように構成されている、システム。
【請求項18】
前記ユーザが前記第1のシステム内で前記アクションを取るための前記要求を受信することは、前記第1のシステムに関連付けられた第1のアプリケーションからの署名付き要求を受信することと、前記第1のアプリケーション、前記ユーザ、前記アクション、および前記アクションによって影響を受けることになるエンドポイントを識別する情報を受信することとを含み、前記第1のシステムは前記署名付き要求の有効性を検証し、前記受信された署名付き要求、および前記受信された情報のうちの少なくとも一方に基づいて前記第2のシステムを用いて関係プリンシパルを導出する、請求項17に記載のシステム。
【請求項19】
1つまたは複数のプロセッサによって実行可能な複数の命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ユーザが第1のシステム内でアクションを取るための要求を受信することと、
前記第1のシステムを用いて前記ユーザによる前記アクションの第1の認可ステータスを決定することと、
第2のシステムを用いて前記ユーザによる前記アクションの第2の認可ステータスを決定することと、
前記第1の認可ステータスおよび前記第2の認可ステータスの結合を決定することと、
前記第1の認可ステータスおよび前記第2の認可ステータスの前記結合を認可基準と比較することとを行わせる、非一時的コンピュータ可読記憶媒体。
【請求項20】
前記ユーザが前記第1のシステム内で前記アクションを取るための前記要求を受信することは、前記第1のシステムに関連付けられた第1のアプリケーションからの署名付き要求を受信することと、前記第1のアプリケーション、前記ユーザ、前記アクション、および前記アクションによって影響を受けることになるエンドポイントを識別する情報を受信することとを含み、前記第1のシステムは前記署名付き要求の有効性を検証し、前記受信された署名付き要求、および前記受信された情報のうちの少なくとも一方に基づいて前記第2のシステムを用いて関係プリンシパルを導出する、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月30日に出願され、「Combined Authorization for Entities Within a Domain」と題する、米国仮特許出願第63/250,805号の利益を主張する。同出願の全体は本明細書において参照により組み込まれる。
【背景技術】
【0002】
背景
クラウドサービスの採用が、近年、急速に増加している。現在、異なるクラウドサービスプロバイダ(CSP:cloud service provider)によって様々なタイプのクラウドサービスが提供されている。用語、クラウドサービスは、概して、CSPによって提供されるシステムおよびインフラストラクチャ(一般的にクラウドインフラストラクチャと称される)を用いて、通例、サブスクリプションモデルを利用して、CSPによって加入顧客にオンデマンドで利用可能にされるサービスまたは機能性を指すために使用される。通例、クラウドサービスを加入顧客に提供するために用いられるCSPによって提供されるクラウドインフラストラクチャに含まれるサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別個のものである。CSPによって提供されるインフラストラクチャは、計算、記憶、およびネットワーキングリソースを含むことができる。それゆえ、顧客は、自分自身のハードウェアおよびソフトウェアリソースをサービスのために購入することを必要とすることなく、CSPによって提供されるクラウドサービスを利用することができる。クラウドサービスは、顧客が、サービスまたは機能を提供するためのインフラストラクチャの調達に投資する必要のない、アプリケーションおよびコンピューティングリソースへの、容易で、スケーラブルな、オンデマンドアクセスを加入顧客に提供するように設計されている。ソフトウェア・アズ・ア・サービス(SaaS:Software-as-a-Service)、プラットフォーム・アズ・ア・サービス(PaaS:Platform-as-a-Service)、インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure-as-a-Service)、および他のものなどの、様々な種類またはモデルのクラウドサービスが提供され得る。顧客は、CSPによって提供される1つまたは複数のクラウドサービスに加入することができる。顧客は、個人、組織、企業、および同様のものなどの任意のエンティティであることができる。
【0003】
CSPによって提供される異なるサービスは異なる認可プロセスおよび異なる許可を有し得る。場合によっては、これらの異なる認可プロセスおよび許可は不満足な顧客体験をもたらし得る。したがって、さらなる改善が望まれる。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本開示の態様は複合認可のためのシステムおよび方法に関する。一態様は方法に関する。本方法は、ユーザが第1のシステム内でアクションを取るための要求を受信することと、第1のシステムを用いてユーザによるアクションの第1の認可ステータスを決定することと、第2のシステムを用いてユーザによるアクションの第2の認可ステータスを決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を認可基準と比較することとを含むことができる。
【0005】
実施形態によっては、本方法は、第1の認可ステータスおよび第2の認可ステータスの結合が認可基準に適合するときに、ユーザによるアクションを認めることをさらに含む。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が、ユーザがアクションを取るための第1のシステムおよび第2のシステムの各々からの認可を含むときに、第1の認可ステータスおよび第2の認可ステータスの結合は認可基準に適合する。実施形態によっては、本方法は、第1の認可ステータスおよび第2の認可ステータスの結合が、ユーザがアクションを取るための第1のシステムおよび第2のシステムのうちの少なくとも一方からの認可を含むときに、ユーザによるアクションを認めることをさらに含む。
【0006】
実施形態によっては、本方法は、第1の認可ステータスおよび第2の認可ステータスの結合が認可基準に適合しないときに、ユーザによるアクションを拒否することを含む。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が第1のシステムおよび第2のシステムのうちの少なくとも一方からの認可の拒否を含むときに、第1の認可ステータスおよび第2の認可ステータスの結合は認可基準に適合しない。
【0007】
実施形態によっては、第1のシステムはロールベースアクセス制御(RBAC:role-based access control)システムであり、第2のシステムは属性ベースアクセス制御(ABAC:attribute-based access control)システムである。実施形態によっては、ユーザが第1のシステム内でアクションを取るための要求を受信することは、第1のシステムに関連付けられた第1のアプリケーションからの署名付き要求を受信することを含む。実施形態によっては、ユーザが第1のシステム内でアクションを取るための要求を受信することは、第1のアプリケーション、ユーザ、アクション、およびアクションによって影響を受けることになるエンドポイントを識別する情報を受信することを含む。
【0008】
実施形態によっては、第1のシステムは署名付き要求の有効性を検証し、受信された署名付き要求、および受信された情報のうちの少なくとも一方に基づいて第2のシステムを用いて関係プリンシパルを導出する。実施形態によっては、署名付き要求の有効性を検証することは、第2のシステムがデータプレーンからの公開鍵を要求して受信することと、公開鍵を用いて署名付き要求の有効性を検証することとを含む。実施形態によっては、第1のシステムを用いてユーザによるアクションの第1の認可ステータスを決定することは、関係プリンシパルのドメイン固有認可を決定することを含む。実施形態によっては、関係プリンシパルのドメイン固有認可は第1のシステムの認可ポリシーに従って決定される。
【0009】
実施形態によっては、第1のシステムを用いてユーザによるアクションの第1の認可ステータスを決定することは、第1のシステムの認可ポリシーに従ってアクションを取るための要求を評価することを含む。実施形態によっては、第2のシステムを用いてユーザによるアクションの第2の認可ステータスを決定することは、受信された情報に少なくとも部分的に基づいて第1のシステムの認可ポリシーを第2のシステムの対応する認可ポリシーに対応付けることを含む。実施形態によっては、第1のシステムの認可ポリシーに従ってアクションを取るための要求を評価することは、ユーザのロールおよびユーザのドメインを識別することと、ユーザのロールおよびユーザのドメインに関連付けられた許可を検索することと、受信された情報が検索された許可によって認められるアクションを識別すると決定することとを含む。実施形態によっては、第2のシステムを用いてユーザによるアクションの第2の認可ステータスを決定することは、ユーザのプリンシパルを決定することと、受信された要求に関連するアクセスポリシーを検索することと、受信された要求が、検索されたアクセスポリシーによって認められるアクションを識別すると決定することとをさらに含む。
【0010】
一態様はシステムに関する。システムは、少なくとも1つの第1のプロセッサを含む第1のアクセス制御システムと、少なくとも1つの第1のプロセッサによって実行可能な複数の命令を含むメモリと、を含む。システムは、要求されたユーザアクションのための第2の認可ステータスを決定することができる第2のアクセス制御システムを含む。第1のアクセス制御システムは、ユーザが第1のアクセス制御システム内でアクションを取るための要求を受信することと、ユーザによるアクションの第1の認可ステータスを決定することと、第2のシステムからのアクションのための認可情報を受信することと、第1の認可ステータスおよび第2の認可ステータスの結合を決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を認可基準と比較することと、を行うことができる。
【0011】
実施形態によっては、ユーザが第1のシステム内でアクションを取るための要求を受信することは、第1のシステムに関連付けられた第1のアプリケーションからの署名付き要求を受信することを含む。実施形態によっては、ユーザが第1のシステム内でアクションを取るための要求を受信することは、第1のアプリケーション、ユーザ、アクション、およびアクションによって影響を受けることになるエンドポイントを識別する情報を受信することを含む。実施形態によっては、第1のシステムは署名付き要求の有効性を検証し、受信された署名付き要求、および受信された情報のうちの少なくとも一方に基づいて第2のシステムを用いて関係プリンシパルを導出する。
【0012】
一態様は、1つまたは複数のプロセッサによって実行可能な複数の命令を記憶する非一時的コンピュータ可読記憶媒体に関する。1つまたは複数のプロセッサによって実行されると、複数の命令は、1つまたは複数のプロセッサに、ユーザが第1のシステム内でアクションを取るための要求を受信することと、第1のシステムを用いてユーザによるアクションの第1の認可ステータスを決定することと、第2のシステムを用いてユーザによるアクションの第2の認可ステータスを決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を決定することと、第1の認可ステータスおよび第2の認可ステータスの結合を認可基準と比較することと、を行わせる。
【0013】
実施形態によっては、ユーザが第1のシステム内でアクションを取るための要求を受信することは、第1のシステムに関連付けられた第1のアプリケーションからの署名付き要求を受信することを含む。実施形態によっては、ユーザが第1のシステム内でアクションを取るための要求を受信することは、第1のアプリケーション、ユーザ、アクション、およびアクションによって影響を受けることになるエンドポイントを識別する情報を受信することを含む。実施形態によっては、第1のシステムは署名付き要求の有効性を検証し、受信された署名付き要求、および受信された情報のうちの少なくとも一方に基づいて第2のシステムを用いて関係プリンシパルを導出する。
【図面の簡単な説明】
【0014】
図1】ドメイン内のエンティティのための複合認可のためのシステムの一実施形態の概略図である。
図2】ドメイン内のエンティティのための複合認可のためのプロセスの一実施形態を示すフローチャートである。
図3】ドメイン内のエンティティのための複合認可のためのプロセスの別の実施形態を示すフローチャートである。
図4】少なくとも1つの実施形態に係る、クラウド・インフラストラクチャ・アズ・ア・サービス・システムを実施するための1つのパターンを示すブロック図である。
図5】少なくとも1つの実施形態に係る、クラウド・インフラストラクチャ・アズ・ア・サービス・システムを実施するための別のパターンを示すブロック図である。
図6】少なくとも1つの実施形態に係る、クラウド・インフラストラクチャ・アズ・ア・サービス・システムを実施するための別のパターンを示すブロック図である。
図7】少なくとも1つの実施形態に係る、クラウド・インフラストラクチャ・アズ・ア・サービス・システムを実施するための別のパターンを示すブロック図である。
図8】少なくとも1つの実施形態に係る、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0015】
詳細な説明
以下の説明では、説明の目的上、一部の実施形態の完全な理解を与えるために、具体的詳細が説明される。しかし、様々な実施形態はこれらの具体的詳細を有せずに実施され得ることは明らかであろう。図および説明は限定であることを意図されていない。単語「例示的(exemplary)」は、本明細書において、「例、実例、または例示の役割を果たすこと」を意味するように使用される。本明細書において「例示的」として説明される任意の実施形態または設計は、必ずしも、他の実施形態または設計に対して好ましい、または有利であると解釈されるべきではない。
【0016】
本開示は、概して、クラウドコンピューティングに関し、詳細には、認可および許可に関し、詳細には、ドメイン内のエンティティのための複合認可に関する。
【0017】
CSPは、クラウドサービスを加入顧客に提供するために用いられるインフラストラクチャおよびリソースを提供する。CSPによって提供されるリソースはハードウェアおよびソフトウェアリソースを含むことができる。これらのリソースは、例えば、計算リソース(例えば、コンピュータシステム、仮想機械、コンテナ、アプリケーション、プロセッサ)、メモリリソース(例えば、データベース、データストア)、ネットワーキングリソース(例えば、ルータ、ロードバランサ)、アイデンティティおよびアクセス管理リソース、ならびに他のリソースを含むことができる。クラウドサービスのセットを加入顧客に提供するためにCSPによって提供されるリソースは、通例、データセンターに編成され、各データセンターは1つまたは複数のコンピューティングシステムまたはホストマシンを備える。データセンターは、クラウドサービスの特定のセットを提供するように構成され得る。CSPは、データセンターに、クラウドサービスのその特定のセットを提供するために用いられる計算、メモリ、ならびにネットワーキングおよびリソースを備え、データセンターを構成する任務を負う。CSPは、加入顧客の数に応じて、および顧客の場所に基づいて1つまたは複数のデータセンターを提供し得る。
【0018】
CSPによって提供されるデータセンターは異なる地理的リージョン内でホストされ得る。リージョンは特定の地理的領域を指し得、リージョン名によって識別され得る。リージョンは、概して、互いに独立しており、国、またはさらに、大陸を越えるなど、膨大な距離によって隔てられ得る。CSPのためのリージョンの例は、米国西部、米国東部、オーストラリア東部、オーストラリア南東部、および同様のものを含み得る。一部の実装形態では、リージョンの集合はレルムと称される。レルムは1つまたは複数のリージョンを含むことができる。したがって、CSPは、1つまたは複数のリージョンを含むレルムを提供し得、各リージョンは1つまたは複数のデータセンターを含む。
【0019】
それゆえ、各データセンターはリージョンに関連付けられる。CSPはリージョン内に1つまたは複数のデータセンターをデプロイし得、データセンターはリージョン内の何らかのとある地理的領域(例えば、都市)内に配置される。例えば、特定のCSPは、米国西部リージョン、米国東部リージョン、オーストラリア東部リージョン、オーストラリア南東部リージョン、および同様のものなどの複数のリージョンを有し得る。CSPは、リージョン内の都市内など、各リージョン内に1つまたは複数のデータセンターをデプロイし得る。例えば、米国西部リージョンのための1つまたは複数のデータセンターはサンノゼ、カリフォルニア内に配置され得、米国東部リージョンのためのデータセンターはアッシュバーン、バージニア内に配置され得、オーストラリア東部リージョンのための1つまたは複数のデータセンターはシドニー、オーストラリア内に配置され得、オーストラリア南東部リージョンのための1つまたは複数のデータセンターはメルボルン、オーストラリア内に配置され得る、などする。2つの異なるリージョン内のデータセンターは、クラウドサービスおよびリソースの同じまたは異なるセットを加入顧客に提供し得る。
【0020】
一部の実装形態では、高い可用性を顧客に提供するために、および障害回復の目的のために、リージョン内のデータセンターは1つまたは複数の可用性ドメインにさらに編成され得、可用性ドメインは1つまたは複数のデータセンターを含む。リージョン内の可用性ドメインは互いに隔離され、フォールトトレラントにされ、リージョン内の複数の可用性ドメイン内のデータセンターが同時に障害を起こす可能性が極めて低くなるような仕方で設計される。例えば、リージョン内の可用性ドメインは、リージョン内の1つの可用性ドメインにおける障害が同じリージョン内の他の可用性ドメイン内のデータセンターの可用性に影響を及ぼす可能性が低くなるように構造化され得る。
【0021】
クラウドサービスプロバイダ(CSP)は複数のクラウドサービスを加入顧客に提供し得る。これらのサービスは、ソフトウェア・アズ・ア・サービス(SaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、インフラストラクチャ・アズ・ア・サービス(IaaS)モデル、および他のものを含む異なるモデルの下で提供され得る。
【0022】
クラウド環境内では、概して、クラウドサービスによって提供される、または用いられるリソースへのユーザアクセスを制御するためのアイデンティティ管理システムがCSPによって提供される。アイデンティティ管理システムによって提供される典型的なサービスまたは機能は、限定するものではないが、ユーザのためのシングルサインオン能力、認証および認可サービス、ならびに他のアイデンティティベースのサービスを含む。
【0023】
アイデンティティ管理システムによって保護されるリソースは、計算インスタンス、ブロックストレージボリューム、仮想クラウドネットワーク(VCN:virtual cloud network)、サブネット、ルート表、様々な呼び出し可能なAPI、内部もしくはレガシーアプリケーション、および同様のものなどの、異なる種類のものであることができる。これらのリソースは、クラウドおよび/または顧客オンプレミスリソース内に記憶されたリソースを含む。各リソースは、通例、リソースが作成された際にリソースに割り当てられる一意識別子(例えば、ID)によって識別される。
【0024】
CSPは、それらのクラウド提供のための2つ以上の2つの別個の独立したアイデンティティ管理システムを提供し得る。これは、例えば、CSPによって提供されるIaaSアプリケーションおよびサービスのためのクラウドリソースへのアクセスを制御するために、第1のアイデンティティ管理システムまたはプラットフォーム(例えば、インフラストラクチャアイデンティティおよびアクセス管理(IAM:Infrastructure Identity and Access Management))が提供され得る場合に行われ得る。別個に、CSPによって提供されるSaaSおよびPaaSサービスのためのセキュリティおよびアイデンティティ管理のために、第2のアイデンティティ管理システムまたはプラットフォーム(例えば、アイデンティティクラウドサービス(IDCS:Identity Cloud Service))が提供され得る。
【0025】
このような2つの別個のプラットフォームを提供する結果、CSPの顧客が、CSPによって提供されるSaaSもしくはPaaSサービスおよびIaaSサービスの両方に加入している場合、顧客は、現在、2つの別個のアカウント -- IaaS加入のためのIAMを有する1つのアカウント、およびPaaS/SaaS加入のためのIDCSを有する別個のアカウント -- を有する。各アカウントは、ユーザログイン、パスワード等の、それ自体のクレデンシャルを有する。それゆえ、同じ顧客が2つの別個のクレデンシャルセットを有する。顧客は2つの異なるクレデンシャルセットを維持しなければならないため、およびクレデンシャルは2つのシステム内に維持されるため、これは不満足な顧客体験をもたらし、セキュリティリスクを潜在的に増大させる。加えて、2つの別個のアイデンティティ管理システムを有することは、SaaS/PaaSとIaaSサービスとの間の相互作用にとっての障害をも生み出す。
【0026】
本出願の目的のために、および例として、2つのプラットフォームはIAMおよびIDCSと称される。これらの名称および用語はいかなる様態でも限定であることを意図されない。本明細書において説明される開示は、統合されるべき任意の2つの(またはそれを超える)アイデンティティ管理システムに適用される。アイデンティティ管理システムまたはプラットフォームは1つまたは複数のCSPによって提供され得る。
【0027】
一部の実施形態では、2つの別個の(例えば、IAMおよびIDCS)プラットフォームによって提供される様々な特徴および機能性を保持し、提供しつつ、CSPによって提供される複数のアイデンティティ管理プラットフォーム(例えば、IAMおよびIDCSプラットフォーム)を、クラウドサービスのユーザまたは顧客に透明である仕方で統合する、統合アイデンティティ管理プラットフォームが提供される。それゆえ、統合は、より途切れのない向上したユーザ体験を提供する。
【0028】
しかし、2つのプラットフォームは、アイデンティティ関連機能を実施するための異なる手続きおよびプロトコルを用い得るため、この統合は技術的に非常に困難である。IAMは、例えば、多くの異なる属性を評価することができる複雑なブールルールセットを表現するポリシーの使用を通じてアクセス権がユーザに認められるアクセス制御パラダイムを規定する、ポリシーベースアクセス制御システムとしても知られる、属性ベースアクセス制御(ABAC)システムであり得る。ABACの目的は、無認可のユーザおよびアクション - 組織のセキュリティポリシーによって規定されたとおりの「承認された」特性を有しないもの - から、データ、ネットワークデバイス、およびITリソースなどのオブジェクトを保護することである。他方で、IDCSは、ロールおよび特権の周辺で規定されたポリシー中立的なアクセス制御機構であるロールベースアクセス制御(RBAC)システムであり得る。ロール許可、ユーザ-ロールおよびロール-ロール関係などのRBACの構成要素は、ユーザ割り当ての遂行を簡単にする。さらに別の例として、2つのプラットフォームによって用いられる認証および認可フレームワークまたはワークフロー(例えば、用いられるトークンの種類、OAUTHなどの異なる認証フレームワーク等)は異なり得る。したがって、統合されたソリューションを提供することは技術的に非常に困難である。
【0029】
この問題を解決するために、ドメイン内のエンティティのための複合認可が開発された。ドメイン内のエンティティのためのこの複合認可はIAMの認可およびIDCSの認可を複合することができる。ドメイン内のエンティティのための複合認可は、異なるシステム内のユーザのための認可に不一致があるときに生じる問題を回避する。これは、例えば、第1のシステム内のユーザが、その第1のシステム内のとある権限を与えられたロールに割り当てられ、それに対して、そのユーザは第2のシステム内のプリンシパルでもあり、第2のシステム内のとある権限を与えられているときを含むことができる。ドメイン内のエンティティのための複合認可は、何らかのアクションを遂行するためのユーザからの要求を受信し、次に、第1のシステムによって、ユーザはそのアクションを遂行することを認可されるかどうかを決定し、次に、第2のシステム内で、ユーザはそのアクションを遂行することを認可されるかどうかを決定する。第1のシステムおよび第2のシステムのための認可情報を受信すると、その認可情報の結合が決定され、次に、1つまたはいくつかの認可基準と比較され得る。1つまたはいくつかの認可基準とのこの比較に基づいて、ユーザは、要求されたアクションを取ることを認められるか、または要求されたアクションを取ることを阻止される。
【0030】
ドメイン内のエンティティのための複合認可は、第1および第2のシステムの両方からの許可を利用し、それらの許可の結合を決定するため、複数の別個の認可に付随する問題およびそれらの認可における食い違いが是正される。
【0031】
用語「データセンター」は、本開示で使用するとき、連携してデータセンターを実施するために用いられる1つまたは複数のコンピュータシステムを指す。例えば、ホームリージョンデータセンターは、ホームリージョン内のデータセンターを実施するために用いられる1つまたは複数のコンピュータシステムを指す。例えば、グローバルリージョンデータセンターは、グローバルリージョンデータセンターを実施するために用いられる1つまたは複数のコンピュータシステムを指す。データセンターを構成するコンピュータシステムは、1つまたは複数のプロセッサ、および、1つまたは複数のプロセッサによって実行される命令を記憶する能力を有する1つまたは複数のメモリを含むことができる。このようなコンピュータシステムの一例が図8に示され、以下において説明される。
【0032】
次に図1を参照すると、本明細書において複合認可システム100とも称される、ドメイン内のエンティティのための複合認可のためのシステム100の一実施形態の概略図が示されている。システム100は、ユーザデバイス102、1つまたはいくつかのIAMサーバ104、および1つまたはいくつかのIDCSサーバ106を含む。実施形態によっては、ユーザデバイス102は、ラップトップ、デスクトップ、モバイルデバイス、および同様のものなどのコンピューティングデバイスを含むことができる。1つまたはいくつかのIAMサーバ104および/または1つまたはいくつかのIDCSサーバ106は、例えば、1つまたはいくつかのサーバまたはサーバラックを含む1つまたはいくつかのコンピューティングリソースを各々含むことができる。1つまたはいくつかのIAMサーバ104および/または1つまたはいくつかのICDSサーバ106は、グローバルリージョン102、ホームリージョン112、および/または非ホームリージョン122のうちの1つまたはいくつかの内部に配置され得る。
【0033】
ユーザは、ユーザデバイス102を用いて、1つまたはいくつかのIAMサーバ104上で実行する1つまたはいくつかのIAMアプリケーションを介して、または1つまたはいくつかのIDCSサーバ106上で実行する1つまたはいくつかのIDCSアプリケーションを介してアクションを取るための認可を要求することができる。実施形態によっては、ユーザデバイス102は、例えば、通信ネットワーク130を介して、例えば、有線または無線接続を介して少なくとも1つのIAMサーバ104および少なくとも1つのIDCSサーバ106のうちの一方または両方と直接接続され得る。実施形態によっては、ユーザデバイス102は、例えば、1つまたはいくつかの通信ネットワークおよび/または1つまたはいくつかのコンピュータネットワークを介して少なくとも1つのIAMサーバ104および少なくとも1つのIDCSサーバ106のうちの一方または両方と直接接続され得る。実施形態によっては、ユーザデバイス102は、例えば、インターネットを介して少なくとも1つのIAMサーバ104および少なくとも1つのIDCSサーバ106のうちの一方または両方と直接接続され得る。
【0034】
実施形態によっては、IAMサーバ104およびIDCSサーバ106のうちの一部または全ては、同じ場所に、または異なる場所に配置され得る。実施形態によっては、IAMサーバ104およびIDCSサーバ106のうちの一部または全ては、異なるコンピューティングネットワーク、異なるデータセンター、異なるリージョン、または同様のものの内部に配置され得る。実施形態によっては、および本明細書において開示されるおとりの複合認可システム100を適用すると、ユーザが、IDCSサーバ106からのアクションを取るための認可を受信するとき、これは、IAMサーバ104からの認可を受信することができる。
【0035】
次に図2を参照すると、ドメイン内のエンティティのための複合認可のためのプロセス200の一実施形態を示すフローチャートが示されている。プロセス200は複合認可システム100のうちの全てまたは部分によって遂行され得、具体的には、IDCSサーバ106のうちの1つまたはいくつかによって、および/またはIAMサーバ104のうちの1つまたはいくつかによって遂行され得る。実施形態によっては、IDCSサーバ106のうちの1つまたはいくつかが第1のシステムであることができ、IAMサーバ104のうちの1つまたはいくつかが第2のシステムであることができ、実施形態によっては、IAMサーバ104のうちの1つまたはいくつかが第1のシステムであることができ、IDCSサーバ106のうちの1つまたはいくつかが第2のシステムであることができる。それゆえ、実施形態によっては、第1のシステムはRBACシステムであることができ、第2のシステムはABACシステムことができ、それに対して、他の実施形態では、第1のシステムはABACシステムであることができ、第2のシステムはRBACシステムであることができる。
【0036】
実施形態によっては、プロセス200は、第1のシステムがユーザからの要求を受信する、ブロック202において開始する。この要求は、ユーザが、ドメイン内で、および特定のエンドポイント上で特定のアクションを取ることを要求することによって行われ得る。実施形態によっては、ユーザは、アプリケーション、および具体的には、第1のシステム内のアプリケーションプログラミングインターフェース(API:Application Programming Interface)にアクセスすることができる。実施形態によっては、これは、ユーザが、アプリケーション、および具体的には、IDCSシステム106のドメイン内のAPIにアクセスすることを含むことができる。このような実施形態では、IDCSシステム106は、ユーザデバイス102からの、および具体的には、アプリケーションからの、およびより具体的には、APIからの要求を受信することができる。実施形態によっては、要求は署名付き要求を含むことができ、ならびに/あるいはユーザを識別し、および/または要求を認証する際に使用するための1つまたはいくつかのトークンを含むことができる。
【0037】
ブロック204において、第1のシステムにおいてユーザからの識別情報を受信する。この識別情報は、ブロック202において受信された要求の部分であることができるか、またはブロック202において受信された要求とは別個のものであることができる。実施形態によっては、この情報は、要求が生成される、アプリケーションによって、および具体的には、APIを通じて生成され得る。この情報は、例えば、アクションを取ることを要求するユーザ、ユーザの現在のドメイン、ユーザによって要求されたアクション、およびアクションによって影響を受けるエンドポイントを識別することができる。実施形態によっては、情報は署名付き要求を含むことができ、ならびに/あるいはユーザを識別し、および/または要求を認証する際に使用するための1つまたはいくつかのトークンを含むことができる。
【0038】
ブロック206において、第1のシステムが第1のシステムの認可ポリシーに従って要求を評価する。実施形態によっては、これは、署名付き要求を受信すること、および署名付き要求の有効性を検証すること、ならびに/または要求に関連付けられた関係プリンシパルを決定することを含むことができる。実施形態によっては、関係プリンシパルは、要求を行うユーザのプリンシパルであることができる。実施形態によっては、このプリンシパルは、1つまたはいくつかのロールに関連付けられ得る第1のシステム内のプリンシパルであることができ、および/または1つまたはいくつかの属性に関連付けられた第2のシステム内のプリンシパルであることができる。実施形態によっては、ユーザのプリンシパルは、実際には、第1のシステムの第1のプリンシパルおよび第2のシステムの第2のプリンシパルであることができる。
【0039】
実施形態によっては、第1のシステムは、受信された要求内に包含された情報に基づいて、および/または他の様態で利用可能な情報に基づいて署名付き要求の有効性を検証することができる。実施形態によっては、例えば、要求はプライベート鍵を用いて署名され得る。このような実施形態では、公開鍵が、署名付き要求の有効性を検証するために利用され得る。実施形態によっては、第1のシステムは、例えば、データプレーンからの公開鍵を要求することができ、公開鍵を受信すると、署名付き要求の有効性を検証することができる。実施形態によっては、第1のシステムは署名付き要求を第2のシステムへ送信することができ、該第2のシステムはデータプレーンからの公開鍵を要求し、受信することができる。データプレーンからの公開鍵を受信すると、第2のシステムは、受信された公開鍵を用いて署名付き要求の有効性を検証することができる。
【0040】
実施形態によっては、第1のシステムはユーザのプリンシパルを決定することができ、および/または実施形態によっては、第2のシステムはユーザのプリンシパルを決定することができる。例えば、プリンシパルが第1のシステムの第1のプリンシパルおよび第2のシステムの第2のプリンシパルを含む、実施形態によっては、第1のシステムは第1のプリンシパルを決定することができ、第2のシステムは第2のプリンシパルを決定することができる。実施形態によっては、第1のプリンシパルおよび第2のプリンシパルのうちの一方または両方を含むことができる、プリンシパルは、要求に、および/または受信された情報に基づいて決定され得る。
【0041】
実施形態によっては、第1のシステムの認可ポリシーに従って第1のシステムによって要求を評価することは、受信された要求の第1の認可ステータスを決定することを含むことができる。実施形態によっては、第1の認可ステータスを決定することは、受信された要求のためのドメイン固有認可を決定することを含むことができる。実施形態によっては、このドメイン固有認可は、決定されたプリンシパルに基づくことができる。
【0042】
プリンシパルのドメイン固有認可は第1のシステムによって決定され得る。実施形態によっては、プリンシパルのこのドメイン固有認可は第1のシステムの認可ポリシーに従って第1のシステムによって決定され得、例えば、第1のシステムの認可ポリシーに従ってアクションを取るための要求を評価することを含むことができる。実施形態によっては、これは、ユーザのロールおよびユーザのドメインを識別することを含むことができる。第1のシステムは、ユーザのロールに、および/またはユーザのドメインに関連付けられた許可を検索することができる。第1のシステムは、検索された許可に基づいて、ならびに要求、および要求の属性に基づいて、要求されたアクションは、認められるアクションであるかどうかを決定することができる。実施形態によっては、これは、検索された許可に基づいて、ならびにユーザ、ユーザロール、ユーザドメイン、影響を受けるエンドポイント、および要求されたアクションに基づいて、要求されたアクションは、検索された許可によって認められるかどうかを決定することを含むことができる。要求は、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって認められると決定された場合には、このとき、第1のシステムは、アクションは認められることを指示する。要求は、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって禁止されると決定された場合には、このとき、第1のシステムは、アクションは禁止されることを指示する。実施形態によっては、要求は、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって認められも禁止されもしないと決定された場合には、このとき、第1のシステムによって認可の指示は生成されない。
【0043】
ブロック208において、第1のシステムは、第2のシステムからの受信された要求の認可を要求する。実施形態によっては、これは、IDCSが、IAMからの受信された要求の認可を要求することを含むことができる。実施形態によっては、これは、受信された要求に関連する第1のシステム内の許可および/または認可ポリシーに対応する第2のシステム内の許可および/または認可ポリシーを決定すること、あるいは換言すれば、第1のシステム内の1つまたはいくつかの許可および/または認可ポリシーを第2のシステム内の1つまたはいくつかの対応する許可および/または認可ポリシーに対応付けることを含むことができる。実施形態によっては、第1のシステムは、第1のシステムの1つまたはいくつかの許可および/または認可ポリシーを第2のシステムの1つまたはいくつかの許可および/または認可ポリシーにリンクするデータベースを含むことができる。実施形態によっては、第1のシステムが、第2のシステムからの受信された要求の認可を要求することは、第1のシステムが、受信された要求および/または受信された情報に基づいて、第2のシステムの1つまたはいくつかの許可および/または認可ポリシーの識別についてデータベースに問い合わせることを含むことができる。
【0044】
実施形態によっては、受信された要求に関連する第2のシステム内の1つまたはいくつかの許可および/または認可ポリシーを識別すると、第1のシステムは、受信された要求の認可決定について第2のシステムに問い合わせることができる。実施形態によっては、第1のシステムは認可要求を第2のシステムへ送信することができ、該認可要求は、1つまたはいくつかの関連する許可および/または認可ポリシーを識別することができ、ブロック202において受信された要求、および/またはブロック202において受信された要求に関連する情報を含むことができる。この情報は、例えば、ユーザ、ユーザロール、ユーザドメイン、影響を受けるエンドポイント、および/または要求されたアクションを含むことができる。
【0045】
ブロック210において、第2のシステムが第2のシステムの認可ポリシーに従ってブロック202の要求を評価する。実施形態によっては、これは、ブロック202の要求されたアクションのための第2の認可ステータスを決定することを含むことができる。これは、例えば、要求のためのユーザのプリンシパルを決定および/または識別することと、受信された要求に、および/またはユーザの識別されたプリンシパルに関連する1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーを検索することと、ブロック202の受信された要求が、検索された1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって認められるかどうか、ならびに/あるいはブロック202の要求によって識別されたアクションは1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって認められるかどうかを決定することとを含むことができる。実施形態によっては、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーは、ブロック208において第1のシステムから受信された情報に基づいて識別され得る。要求は、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって認められると決定された場合には、このとき、第2のシステムは、アクションは認められることを指示する。要求は、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって禁止されると決定された場合には、このとき、第2のシステムは、アクションは禁止されることを指示する。実施形態によっては、要求は、1つまたはいくつかの許可、認可ポリシー、および/またはアクセスポリシーによって認められも禁止されもしないと決定された場合には、このとき、認可の指示は生成されない。
【0046】
ブロック212において、第2のシステムからの認可情報を受信する。実施形態によっては、これは、第1のシステムにおいて第2のシステムからの認可情報を受信することを含むことができる。ブロック214において、ブロック202において受信された要求の第1のシステム認可および第2のシステム認可の結合を決定する、換言すれば、第1の認可ステータスおよび第2の認可ステータスの結合を決定する。
【0047】
ブロック216において、第1のシステム認可および第2のシステム認可の結合を1つまたはいくつかの認可基準と比較する。実施形態によっては、認可基準は、ブロック202の要求を認可するために十分な結合と、ブロック202の要求を認可するために不十分なものとの間を線引きすることができる。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの両方が要求を認可するとき、あるいは第1の認可ステータスおよび第2の認可ステータスのうちの一方が要求を認可し、他方が要求を禁止するときに、認可基準は、結合を、ブロック202の要求を認可するために十分として識別することができる。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスのうちの少なくとも一方が要求の認可を禁止するときに、認可基準は、結合を、ブロック202の要求を認可するために不十分として識別することができる。
【0048】
ブロック218において、第1のシステム認可および第2のシステム認可の結合と認可基準との比較の結果に基づいてブロック202の要求を認めるか、または拒否する。それゆえ、実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が認可基準に適合するときに、要求、および具体的には、ユーザによって要求されたアクションは認可され得る。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が、ユーザがアクションを取るための第1のシステムおよび第2のシステムの各々からの認可を含むときに、第1の認可ステータスおよび第2の認可ステータスの結合は認可基準に適合する。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が、ユーザがアクションを取るための第1のシステムおよび第2のシステムのうちの少なくとも一方からの認可を含むときに、要求、および具体的には、ユーザによって要求されたアクションは認可され、および/または認められ得る。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が認可基準に適合しないときに、要求、および具体的には、ユーザによって要求されたアクションは拒否され、および/または禁止され得る。実施形態によっては、第1の認可ステータスおよび第2の認可ステータスの結合が第1のシステムおよび第2のシステムのうちの少なくとも一方からの認可の少なくとも1つの拒否を含むときに、第1の認可ステータスおよび第2の認可ステータスの結合は認可基準に適合しない。
【0049】
次に図3を参照すると、ドメイン内のエンティティのための複合認可のためのプロセス300の別の実施形態を示すフローチャートが示されている。プロセス300は複合認可システム100のうちの全てまたは部分によって遂行され得、具体的には、IDCSサーバ106のうちの1つまたはいくつかによって、および/またはIAMサーバ104のうちの1つまたはいくつかによって遂行され得る。
【0050】
プロセス300は、ユーザが、IDCSアプリケーションを介して、および具体的には、IDCS APIを介して、IDCS内でアクションを取るための要求を行う、ステップ302において開始する。ユーザは、実施形態によっては、プリンシパルであることができる。要求は、例えば、署名付き要求であることができる。要求は、例えば:API鍵、ネイティブトークンもしくはアイデンティティ、連合トークンもしくはアイデンティティ、または同様のものを含む、ユーザプリンシパルの識別;インスタンス、サービス、および/またはリソースプリンシパルの識別;インスタンスプリンシパルおよび/またはOauth OBOフローの識別などの、情報を含むことができる。
【0051】
ステップ304において、IDCSはプリンシパルおよび/またはユーザのアイデンティティを決定し、要求されたIDCS APIのアイデンティティを決定する。実施形態によっては、これは、署名付き要求の有効性を検証し、関係するプリンシパルを導出することを含むことができる。実施形態によっては、IDCSは、署名付き要求の有効性を検証し、関係するプリンシパルを導出するために、IAMを用いることができる。このような実施形態では、および署名付き要求の有効性検証の部分として、IAMは、ステップ306において指示されるように、データプレーンからの署名付き要求に対応する公開鍵を要求および/または受信することができる。ステップ308において、公開鍵を受信し、それを用いて署名付き要求の有効性を検証する。実施形態によっては、公開鍵は、署名付き要求の有効性を検証するためにIAMによって用いられ得る。
【0052】
ステップ310において、およびプリンシパルがユーザプリンシパルである場合には、このとき、IDCSはIDCS認可ポリシーに基づいてドメイン固有認可を遂行する。ステップ312において、IDCSは、IAMが要求を評価することを要求する。実施形態によっては、IDCSは、IAMがIAM認可ポリシーに従って要求を評価することを要求する。IAMはIAMの認可ポリシーに従って要求を評価する。ステップ314において、IDCSはIAMからの許可を受信する。実施形態によっては、これは、IAMの認可ポリシーに従うステップ302の要求の評価の結果を受信することを含むことができる。ステップ316において、許可を評価する。これは、IAMから受信された許可、およびステップ310における評価の結果の結合を決定することを含むことができる。ステップ318において、ユーザに応答を提供する。応答は、ステップ302の要求は認可されること、または要求は認可されないことのどちらかを指示する。
【0053】
例示的な実施形態
上述されたように、インフラストラクチャ・アズ・ア・サービス(IaaS)は1つの特定の種類のクラウドコンピューティングである。IaaSは、公衆ネットワーク(例えば、インターネット)を通じて、仮想化されたコンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(例えば、サーバ、記憶デバイス、ネットワークノード(例えば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)、または同様のもの)をホストすることができる。場合によっては、IaaSプロバイダはまた、それらのインフラストラクチャコンポーネントに付随する種々のサービス(例えば、課金、監視、ロギング、ロードバランシング、およびクラスタ化等)も供給し得る。それゆえ、これらのサービスはポリシー駆動型であり得るため、IaaSのユーザは、アプリケーションの可用性および性能を維持するべくロードバランシングを駆動するためのポリシーを実施することが可能であり得る。
【0054】
場合によっては、IaaSの顧客は、インターネットなどの、ワイドエリアネットワーク(WAN:wide area network)を通じてリソースおよびサービスにアクセスし得、クラウドプロバイダのサービスを用いてアプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザはIaaSプラットフォームにログインし、仮想機械(VM:virtual machine)を作成し、オペレーティングシステム(OS:operating system)を各VM上にインストールし、データベースなどのミドルウェアをデプロイし、作業負荷およびバックアップのためのストレージバケットを作成し、さらに、企業ソフトウェアをVM内にインストールすることができる。次に、顧客は、プロバイダのサービスを用いて、ネットワークトラフィックのバランスを取ること、アプリケーションの問題のトラブルシューティングを行うこと、パフォーマンスを監視すること、障害回復を管理すること等を含む、様々な機能を遂行することができる。
【0055】
大抵の場合、クラウドコンピューティングモデルはクラウドプロバイダの関与を必要とすることになる。クラウドプロバイダは、IaaSを供給すること(例えば、提供すること、貸与すること、販売すること)を専門にするサードパーティサービスであり得るが、そうである必要はない。エンティティはまた、プライベートクラウドをデプロイし、インフラストラクチャサービスの独自のプロバイダになることも選択し得るであろう。
【0056】
例によっては、IaaSのデプロイメントは、新たなアプリケーション、またはアプリケーションの新たなバージョンを、準備されたアプリケーションサーバまたは同様のものに入れるプロセスである。それはまた、サーバを準備する(例えば、ライブラリ、デーモン等をインストールする)プロセスを含み得る。これは、多くの場合、クラウドプロバイダによって、ハイパーバイザ層より下で(例えば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)管理される。それゆえ、顧客は、(例えば、(例えば、オンデマンドでスピンアップされ得る)セルフサービス仮想機械などの上の、(OS)、ミドルウェア、および/またはアプリケーションデプロイメントの取り扱いの責任を負い得る。
【0057】
例によっては、IaaSのプロビジョニングは、コンピュータまたは仮想ホストを使用のために獲得すること、ならびにさらに、必要なライブラリまたはサービスをそれらにインストールすることを指し得る。大抵の場合、デプロイメントはプロビジョニングを含まず、プロビジョニングは、最初に遂行されることを必要とし得る。
【0058】
場合によっては、IaaSのプロビジョニングにとって2つの異なる課題が存在する。第1に、インフラストラクチャの初期セットを、いずれかが実行する前にプロビジョニングするという、初期の課題が存在する。第2に、全てのものがプロビジョニングされた後に、既存のインフラストラクチャを発展させる(例えば、新たなサービスを追加する、サービスを変更する、サービスを除去する等)という課題が存在する。場合によっては、これらの2つの課題は、インフラストラクチャの構成が宣言的に規定されることを可能にすることによって対処され得る。換言すれば、インフラストラクチャ(例えば、どのようなコンポーネントが必要とされるのか、およびそれらはどのように相互作用するのか)は、1つまたは複数の構成ファイルによって規定され得る。それゆえ、インフラストラクチャの全体的トポロジ(例えば、どのリソースがどれに依存するのか、およびそれらは各々、どのように協働するのか)は宣言的に記述され得る。場合によっては、トポロジが規定されると、構成ファイル内で記述される異なるコンポーネントを作成および/または管理するワークフローが生成され得る。
【0059】
例によっては、インフラストラクチャは、多くの相互接続された要素を有し得る。例えば、コアネットワークとしても知られる、1つまたは複数の仮想プライベートクラウド(VPC:virtual private cloud)(例えば、構成可能な、および/または共有されたコンピューティングリソースの、オンデマンドになる可能性のあるプール)が存在し得る。例によっては、ネットワークのインバウンドおよび/またはアウトバウンドトラフィックがどのようにセットアップされることになるのかを規定するためにプロビジョニングされる1つまたは複数のインバウンド/アウトバウンドトラフィックグループルール、および1つまたは複数の仮想機械(VM)も存在し得る。ロードバランサ、データベース、または同様のものなどの、他のインフラストラクチャ要素もプロビジョニングされ得る。所望され、および/または追加されるインフラストラクチャ要素が増えるにつれて、インフラストラクチャは徐々に発展し得る。
【0060】
場合によっては、様々な仮想コンピューティング環境にわたるインフラストラクチャコードのデプロイメントを可能にするために、継続的デプロイメント技術が採用され得る。加えて、上述の技術はこれらの環境内のインフラストラクチャ管理を可能にすることができる。例によっては、サービスチームが、(例えば、時として世界中に及ぶ、様々な異なる地理的場所にわたる)1つまたは複数の、しかし、多くの場合、多数の、異なる生産環境にデプロイされることを所望されるコードを書くことができる。しかし、例によっては、コードがデプロイされることになるインフラストラクチャがまずセットアップされなければならない。場合によっては、プロビジョニングは手動で行われ得、プロビジョニングツールが、リソースをプロビジョニングするために利用され得、および/またはインフラストラクチャがプロビジョニングされると、デプロイメントツールが、コードをデプロイするために利用され得る。
【0061】
図4は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの例示的なパターンを示すブロック図400である。サービスオペレータ402は、仮想クラウドネットワーク(VCN)406およびセキュアホストサブネット408を含むことができるセキュアホストテナンシー404に通信可能に結合され得る。例によっては、サービスオペレータ402は、Microsoft Windows Mobile(登録商標)などのソフトウェア、ならびに/あるいはiOS、Windows Phone、Android、BlackBerry 8、Palm OS、および同様のものなどの種々のモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS:short message service)、Blackberry(登録商標)、または他の通信プロトコルが使用可能である、ポータブルハンドヘルドデバイス(例えば、iPhone(登録商標)、セルラ電話、iPad(登録商標)、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA:personal digital assistant))、あるいはウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)であり得る、1つまたは複数のクライアントコンピューティングデバイスを用い得る。代替的に、クライアントコンピューティングデバイスは、例として、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムの様々なバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであることができる。クライアントコンピューティングデバイスは、限定するものではないが、例えば、Google Chrome (登録商標)OSなどの、種々のGNU/Linuxオペレーティングシステムを含む、種々の市販のUNIX(登録商標)またはUNIX系オペレーティングシステムのうちの任意のものを実行するワークステーションコンピュータであることができる。代替的に、または加えて、クライアントコンピューティングデバイスは、VCN406および/またはインターネットにアクセスすることができるネットワークを通じて通信する能力を有する、シンクライアントコンピュータ、インターネット接続可能ゲーミングシステム(例えば、Kinect(登録商標)ジェスチャ入力デバイスを有する、もしくは有しない、Microsoft Xboxゲーミングコンソール)、および/またはパーソナルメッセージングデバイスなどの、任意の他の電子デバイスであり得る。
【0062】
VCN406は、SSH VCN412内に包含されるLPG410を介してセキュアシェル(SSH:secure shell)VCN412に通信可能に結合され得るローカルピアリングゲートウェイ(LPG:local peering gateway)410を含むことができる。SSH VCN412はSSHサブネット414を含むことができ、SSH VCN412は、制御プレーンVCN416内に包含されるLPG410を介して制御プレーンVCN416に通信可能に結合され得る。また、SSH VCN412はLPG410を介してデータプレーンVCN418に通信可能に結合され得る。制御プレーンVCN416およびデータプレーンVCN418は、IaaSプロバイダによって所有され、および/または操作され得るサービステナンシー419内に包含され得る。
【0063】
制御プレーンVCN416は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)の役割を果たす制御プレーン非武装地帯(DMZ:demilitarized zone)層420を含むことができる。DMZベースのサーバは制限された責任を有し、侵害をせき止めておくのを助け得る。加えて、DMZ層420は、1つまたは複数のロードバランサ(LB:load balancer)サブネット422、アプリサブネット426を含むことができる制御プレーンアプリ層424、データベース(DB:database)サブネット430(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含むことができる制御プレーンデータ層428を含むことができる。制御プレーンDMZ層420内に包含されるLBサブネット422は、制御プレーンアプリ層424内に包含されるアプリサブネット426、および制御プレーンVCN416内に包含され得るインターネットゲートウェイ434に通信可能に結合され得、アプリサブネット426は、制御プレーンデータ層428内に包含されるDBサブネット430、ならびにサービスゲートウェイ436、およびネットワークアドレス変換(NAT:network address translation)ゲートウェイ438に通信可能に結合され得る。制御プレーンVCN416はサービスゲートウェイ436およびNATゲートウェイ438を含むことができる。
【0064】
制御プレーンVCN416は、アプリサブネット426を含むことができるデータプレーンミラーアプリ層440を含むことができる。データプレーンミラーアプリ層440内に包含されるアプリサブネット426は、計算インスタンス444を実行することができる仮想ネットワークインターフェースコントローラ(VNIC:virtual network interface controller)442を含むことができる。計算インスタンス444はデータプレーンミラーアプリ層440のアプリサブネット426を、データプレーンアプリ層446内に包含され得るアプリサブネット426に通信可能に結合することができる。
【0065】
データプレーンVCN418は、データプレーンアプリ層446、データプレーンDMZ層448、およびデータプレーンデータ層450を含むことができる。データプレーンDMZ層448は、データプレーンアプリ層446のアプリサブネット426およびデータプレーンVCN418のインターネットゲートウェイ434に通信可能に結合され得るLBサブネット422を含むことができる。アプリサブネット426はデータプレーンVCN418のサービスゲートウェイ436およびデータプレーンVCN418のNATゲートウェイ438に通信可能に結合され得る。データプレーンデータ層450もまた、データプレーンアプリ層446のアプリサブネット426に通信可能に結合され得るDBサブネット430を含むことができる。
【0066】
制御プレーンVCN416の、およびデータプレーンVCN418のインターネットゲートウェイ434は、公衆インターネット454に通信可能に結合され得るメタデータ管理サービス452に通信可能に結合され得る。公衆インターネット454は、制御プレーンVCN416の、およびデータプレーンVCN418のNATゲートウェイ438に通信可能に結合され得る。制御プレーンVCN416の、およびデータプレーンVCN418のサービスゲートウェイ436はクラウドサービス456に通信可能に結合することができる。
【0067】
例によっては、制御プレーンVCN416の、またはデータプレーンVCN418のサービスゲートウェイ436は公衆インターネット454を経由することなくクラウドサービス456へのアプリケーションプログラミングインターフェース(API:application programming interface)コールを行うことができる。サービスゲートウェイ436からクラウドサービス456へのAPIコールは片方向であることができ、サービスゲートウェイ436はクラウドサービス456へのAPIコールを行うことができ、クラウドサービス456は、要求されたデータをサービスゲートウェイ436へ送信することができる。しかし、クラウドサービス456はサービスゲートウェイ436へのAPIコールを開始し得ない。
【0068】
例によっては、セキュアホストテナンシー404は、さもなければ隔離され得る、サービステナンシー419に直接接続され得る。セキュアホストサブネット408は、さもなければ隔離されたシステムを通じた双方向通信を可能にし得るLPG410を介してSSHサブネット414と通信することができる。セキュアホストサブネット408をSSHサブネット414に接続することは、セキュアホストサブネット408にサービステナンシー419内の他のエンティティへのアクセスを与え得る。
【0069】
制御プレーンVCN416は、サービステナンシー419のユーザが所望のリソースをセットアップすること、または他の仕方でプロビジョニングすることを可能にし得る。制御プレーンVCN416内でプロビジョニングされた所望のリソースはデータプレーンVCN418内でデプロイされるか、または他の仕方で使用され得る。例によっては、制御プレーンVCN416はデータプレーンVCN418から隔離され得、制御プレーンVCN416のデータプレーンミラーアプリ層440は、データプレーンミラーアプリ層440およびデータプレーンアプリ層446内に包含され得るVNIC442を介してデータプレーンVCN418のデータプレーンアプリ層446と通信することができる。
【0070】
例によっては、システムのユーザ、または顧客は、要求をメタデータ管理サービス452へ通信することができる公衆インターネット454を通じて、要求、例えば、作成(create)、読み出し(read)、更新(update)、または削除(delete)(CRUD)操作を行うことができる。メタデータ管理サービス452はインターネットゲートウェイ434を通じて要求を制御プレーンVCN416へ通信することができる。要求は、制御プレーンDMZ層420内に包含されるLBサブネット422によって受信され得る。LBサブネット422は、要求は有効であると決定し得、この決定に応じて、LBサブネット422は要求を、制御プレーンアプリ層424内に包含されるアプリサブネット426へ伝送することができる。要求の有効性が検証され、公衆インターネット454へのコールを必要とする場合には、公衆インターネット454へのコールは、公衆インターネット454へのコールを行うことができるNATゲートウェイ438へ伝送され得る。要求によって記憶されることを所望され得るメタデータはDBサブネット430内に記憶され得る。
【0071】
例によっては、データプレーンミラーアプリ層440は制御プレーンVCN416とデータプレーンVCN418との間の直接通信を促進することができる。例えば、構成の改変、更新、または他の好適な変更が、データプレーンVCN418内に包含されるリソースに適用されることを所望され得る。VNIC442を介して、制御プレーンVCN416は、データプレーンVCN418内に包含されるリソースと直接通信することができ、これにより、それらに対する構成の改変、更新、または他の好適な変更を実行することができる。
【0072】
実施形態によっては、制御プレーンVCN416およびデータプレーンVCN418はサービステナンシー419内に包含され得る。この場合には、システムのユーザ、または顧客は制御プレーンVCN416またはデータプレーンVCN418のどちらも所有または操作し得ない。その代わりに、IaaSプロバイダが、どちらもサービステナンシー419内に包含され得る、制御プレーンVCN416およびデータプレーンVCN418を所有または操作し得る。本実施形態は、ユーザまたは顧客が、他のユーザの、または他の顧客のリソースと対話することを防止し得るネットワークの隔離を可能にすることができる。また、本実施形態は、システムのユーザまたは顧客が、記憶のために、所望の脅威防御レベルを有しないことがある、公衆インターネット454に頼ることを必要とすることなく、データベースをプライベートに記憶することを可能にし得る。
【0073】
他の実施形態では、制御プレーンVCN416内に包含されるLBサブネット422は、サービスゲートウェイ436からの信号を受信するように構成され得る。本実施形態では、制御プレーンVCN416およびデータプレーンVCN418は、公衆インターネット454をコールすることなくIaaSプロバイダの顧客によってコールされるように構成され得る。顧客が使用するデータベースがIaaSプロバイダによって制御され得、公衆インターネット454から隔離され得る、サービステナンシー419上に記憶され得るので、IaaSプロバイダの顧客は本実施形態を所望し得る。
【0074】
図5は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図500である。サービスオペレータ502(例えば、図4の、サービスオペレータ402)は、仮想クラウドネットワーク(VCN)506(例えば、図4のVCN406)およびセキュアホストサブネット508(例えば、図4のセキュアホストサブネット408)を含むことができるセキュアホストテナンシー504(例えば、図4のセキュアホストテナンシー404)に通信可能に結合され得る。VCN506は、SSH VCN512内に包含されるLPG410を介してセキュアシェル(SSH)VCN512(例えば、図4のSSH VCN412)に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)510(例えば、図4のLPG410)を含むことができる。SSH VCN512はSSHサブネット514(例えば、図4のSSHサブネット414)を含むことができ、SSH VCN512は、制御プレーンVCN516内に包含されるLPG510を介して制御プレーンVCN516(例えば、図4の制御プレーンVCN416)に通信可能に結合され得る。制御プレーンVCN516はサービステナンシー519(例えば、図4のサービステナンシー419)内に包含され得、データプレーンVCN518(例えば、図4のデータプレーンVCN418)は、システムのユーザ、または顧客によって所有または操作され得る顧客テナンシー521内に包含され得る。
【0075】
制御プレーンVCN516は、LBサブネット522(例えば、図4のLBサブネット422)を含むことができる制御プレーンDMZ層520(例えば、図4の制御プレーンDMZ層420)、アプリサブネット526(例えば、図4のアプリサブネット426)を含むことができる制御プレーンアプリ層524(例えば、図4の制御プレーンアプリ層424)、データベース(DB)サブネット530(例えば、図4のDBサブネット430と同様のもの)を含むことができる制御プレーンデータ層528(例えば、図4の制御プレーンデータ層428)を含むことができる。制御プレーンDMZ層520内に包含されるLBサブネット522は、制御プレーンアプリ層524内に包含されるアプリサブネット526、および制御プレーンVCN516内に包含され得るインターネットゲートウェイ534(例えば、図4のインターネットゲートウェイ434)に通信可能に結合され得、アプリサブネット526は、制御プレーンデータ層528内に包含されるDBサブネット530、ならびにサービスゲートウェイ536(例えば、図4のサービスゲートウェイ436)、およびネットワークアドレス変換(NAT)ゲートウェイ538(例えば、図4のNATゲートウェイ438)に通信可能に結合され得る。制御プレーンVCN516はサービスゲートウェイ536およびNATゲートウェイ538を含むことができる。
【0076】
制御プレーンVCN516は、アプリサブネット526を含むことができるデータプレーンミラーアプリ層540(例えば、図4のデータプレーンミラーアプリ層440)を含むことができる。データプレーンミラーアプリ層540内に包含されるアプリサブネット526は、計算インスタンス544(例えば、図4の計算インスタンス444と同様のもの)を実行することができる仮想ネットワークインターフェースコントローラ(VNIC)542(例えば、442のVNIC)を含むことができる。計算インスタンス544は、データプレーンミラーアプリ層540内に包含されるVNIC542およびデータプレーンアプリ層546内に包含されるVNIC542を介して、データプレーンミラーアプリ層540のアプリサブネット526と、データプレーンアプリ層546(例えば、図4のデータプレーンアプリ層446)内に包含され得るアプリサブネット526との間の通信を促進することができる。
【0077】
制御プレーンVCN516内に包含されるインターネットゲートウェイ534は、公衆インターネット554(例えば、図4の公衆インターネット454)に通信可能に結合され得るメタデータ管理サービス552(例えば、図4のメタデータ管理サービス452)に通信可能に結合され得る。公衆インターネット554は、制御プレーンVCN516内に包含されるNATゲートウェイ538に通信可能に結合され得る。制御プレーンVCN516内に包含されるサービスゲートウェイ536は、クラウドサービス556(例えば、図4のクラウドサービス456)に通信可能に結合することできる。
【0078】
例によっては、データプレーンVCN518は顧客テナンシー521内に包含され得る。この場合には、IaaSプロバイダは制御プレーンVCN516を顧客ごとに提供し得、IaaSプロバイダは、顧客ごとに、サービステナンシー519内に包含される固有の計算インスタンス544をセットアップし得る。各計算インスタンス544は、サービステナンシー519内に包含される、制御プレーンVCN516と、顧客テナンシー521内に包含されるデータプレーンVCN518との間の通信を可能にし得る。計算インスタンス544は、サービステナンシー519内に包含される制御プレーンVCN516内でプロビジョニングされた、リソースが、顧客テナンシー521内に包含されるデータプレーンVCN518内でデプロイされるか、または他の仕方で使用されることを可能にし得る。
【0079】
他の例では、IaaSプロバイダの顧客は、顧客テナンシー521内を本拠とするデータベースを有し得る。本例では、制御プレーンVCN516は、アプリサブネット526を含むことができるデータプレーンミラーアプリ層540を含むことができる。データプレーンミラーアプリ層540はデータプレーンVCN518内に駐在することができるが、データプレーンミラーアプリ層540はデータプレーンVCN518内を本拠とし得ない。すなわち、データプレーンミラーアプリ層540は顧客テナンシー521へのアクセスを有し得るが、データプレーンミラーアプリ層540はデータプレーンVCN518内に存在するか、またはIaaSプロバイダの顧客によって所有もしくは操作され得ない。データプレーンミラーアプリ層540は、データプレーンVCN518へのコールを行うように構成され得るが、制御プレーンVCN516内に包含されるいかなるエンティティへのコールも行うように構成され得ない。顧客は、制御プレーンVCN516内でプロビジョニングされたデータプレーンVCN518内のリソースをデプロイするか、または他の仕方で使用することを所望し得、データプレーンミラーアプリ層540は、顧客の、リソースの所望のデプロイメント、または他の使用を促進することができる。
【0080】
実施形態によっては、IaaSプロバイダの顧客はフィルタをデータプレーンVCN518に適用することができる。本実施形態では、顧客は、データプレーンVCN518が何にアクセスすることができるかを決定することができ、顧客はデータプレーンVCN518から公衆インターネット554へのアクセスを制限し得る。IaaSプロバイダは、フィルタを適用するか、または他の仕方で任意の外部ネットワークまたはデータベースへのデータプレーンVCN518のアクセスを制御することが不可能であり得る。顧客テナンシー521内に包含される、データプレーンVCN518に対して顧客によってフィルタおよび制御を適用することは、データプレーンVCN518を他の顧客から、および公衆インターネット554から隔離することを助けることができる。
【0081】
実施形態によっては、クラウドサービス556は、公衆インターネット554上、制御プレーンVCN516上、またはデータプレーンVCN518上に存在し得ないサービスにアクセスするためにサービスゲートウェイ536によってコールされ得る。クラウドサービス556と制御プレーンVCN516またはデータプレーンVCN518との間の接続はライブまたは継続的でなくてもよい。クラウドサービス556は、IaaSプロバイダによって所有または操作される異なるネットワーク上に存在し得る。クラウドサービス556は、サービスゲートウェイ536からのコールを受信するように構成され得、公衆インターネット554からのコールを受信しないように構成され得る。一部のクラウドサービス556は他のクラウドサービス556から隔離され得、制御プレーンVCN516は、制御プレーンVCN516と同じリージョン内にないことがあるクラウドサービス556から隔離され得る。例えば、制御プレーンVCN516は「リージョン1」内に配置され得、クラウドサービス「デプロイメント4」はリージョン1内および「リージョン2」内に配置され得る。リージョン1内に配置された制御プレーンVCN516内に包含されるサービスゲートウェイ536によってデプロイメント4へのコールが行われた場合には、コールはリージョン1内のデプロイメント4へ伝送され得る。本例では、制御プレーンVCN516、またはリージョン1内のデプロイメント4は、リージョン2内のデプロイメント4と通信可能に結合されるか、または他の仕方でそれと通信し得ない。
【0082】
図6は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図600である。サービスオペレータ602(例えば、図4の、サービスオペレータ402)は、仮想クラウドネットワーク(VCN)606(例えば、図4のVCN406)およびセキュアホストサブネット608(例えば、図4のセキュアホストサブネット408)を含むことができるセキュアホストテナンシー604(例えば、図4のセキュアホストテナンシー404)に通信可能に結合され得る。VCN606は、SSH VCN612内に包含されるLPG610を介してSSH VCN612(例えば、図4のSSH VCN412)に通信可能に結合され得るLPG610(例えば、図4のLPG410)を含むことができる。SSH VCN612はSSHサブネット614(例えば、図4のSSHサブネット414)を含むことができ、SSH VCN612は、制御プレーンVCN616内に包含されるLPG610を介して制御プレーンVCN616(例えば、図4の制御プレーンVCN416)に、およびデータプレーンVCN618内に包含されるLPG610を介してデータプレーンVCN618(例えば、図4のデータプレーン418)に通信可能に結合され得る。制御プレーンVCN616およびデータプレーンVCN618はサービステナンシー619(例えば、図4のサービステナンシー419)内に包含され得る。
【0083】
制御プレーンVCN616は、ロードバランサ(LB)サブネット622(例えば、図4のLBサブネット422)を含むことができる制御プレーンDMZ層620(例えば、図4の制御プレーンDMZ層420)、アプリサブネット626(例えば、図4のアプリサブネット426と同様のもの)を含むことができる制御プレーンアプリ層624(例えば、図4の制御プレーンアプリ層424)、DBサブネット630を含むことができる制御プレーンデータ層628(例えば、図4の制御プレーンデータ層428)を含むことができる。制御プレーンDMZ層620内に包含されるLBサブネット622は、制御プレーンアプリ層624内に包含されるアプリサブネット626に、および制御プレーンVCN616内に包含され得るインターネットゲートウェイ634(例えば、図4のインターネットゲートウェイ434)に通信可能に結合され得、アプリサブネット626は、制御プレーンデータ層628内に包含されるDBサブネット630に、ならびにサービスゲートウェイ636(例えば、図4のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ638(例えば、図4のNATゲートウェイ438)に通信可能に結合され得る。制御プレーンVCN616はサービスゲートウェイ636およびNATゲートウェイ638を含むことができる。
【0084】
データプレーンVCN618は、データプレーンアプリ層646(例えば、図4のデータプレーンアプリ層446)、データプレーンDMZ層648(例えば、図4のデータプレーンDMZ層448)、およびデータプレーンデータ層650(例えば、図4のデータプレーンデータ層450)を含むことができる。データプレーンDMZ層648は、データプレーンアプリ層646の信頼できるアプリサブネット660および信頼できないアプリサブネット662、ならびにデータプレーンVCN618内に包含されるインターネットゲートウェイ634に通信可能に結合され得るLBサブネット622を含むことができる。信頼できるアプリサブネット660は、データプレーンVCN618内に包含されるサービスゲートウェイ636、データプレーンVCN618内に包含されるNATゲートウェイ638、およびデータプレーンデータ層650内に包含されるDBサブネット630に通信可能に結合され得る。信頼できないアプリサブネット662は、データプレーンVCN618内に包含されるサービスゲートウェイ636、およびデータプレーンデータ層650内に包含されるDBサブネット630に通信可能に結合され得る。データプレーンデータ層650は、データプレーンVCN618内に包含されるサービスゲートウェイ636に通信可能に結合され得るDBサブネット630を含むことができる。
【0085】
信頼できないアプリサブネット662は、テナント仮想機械(VM)666(1)~(N)に通信可能に結合され得る1つまたは複数のプライマリVNIC664(1)~(N)を含むことができる。各テナントVM666(1)~(N)は、それぞれの顧客テナンシー670(1)~(N)内に包含され得るそれぞれのコンテナエグレスVCN668(1)~(N)内に包含され得るそれぞれのアプリサブネット667(1)~(N)に通信可能に結合され得る。それぞれのセカンダリVNIC672(1)~(N)は、データプレーンVCN618内に包含される信頼できないアプリサブネット662とコンテナエグレスVCN668(1)~(N)内に包含されるアプリサブネットとの間の通信を促進することができる。各コンテナエグレスVCN668(1)~(N)は、公衆インターネット654(例えば、図4の公衆インターネット454)に通信可能に結合され得るNATゲートウェイ638を含むことができる。
【0086】
制御プレーンVCN616内に包含される、およびデータプレーンVCN618内に包含されるインターネットゲートウェイ634は、公衆インターネット654に通信可能に結合され得るメタデータ管理サービス652(例えば、図4のメタデータ管理システム452)に通信可能に結合され得る。公衆インターネット654は、制御プレーンVCN616内に包含される、およびデータプレーンVCN618内に包含されるNATゲートウェイ638に通信可能に結合され得る。制御プレーンVCN616内に包含される、およびデータプレーンVCN618内に包含されるサービスゲートウェイ636はクラウドサービス656に通信可能に結合することができる。
【0087】
実施形態によっては、データプレーンVCN618は顧客テナンシー670と統合され得る。この統合は、コードを実行する際のサポートを所望し得る場合などの一部の場合に、IaaSプロバイダの顧客のために有用になる、または望ましくなり得る。顧客は、破壊性を有し得るコードを実行のために提供し得るか、他の顧客リソースと通信し得るか、または他の仕方で望ましくない影響を引き起こし得る。これに応じて、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられたコードを実行するべきかどうかを決定し得る。
【0088】
例によっては、IaaSプロバイダの顧客はIaaSプロバイダへの一時的なネットワークアクセスを許可し、機能がデータプレーンアプリ層646にアタッチされることを要求し得る。機能を実行するべきコードはVM666(1)~(N)内で実行され得、コードは、データプレーンVCN618上の他のどの場所でも実行するようには構成され得ない。各VM666(1)~(N)は1つの顧客テナンシー670に接続され得る。VM666(1)~(N)内に包含されるそれぞれのコンテナ671(1)~(N)は、コードを実行するように構成され得る。この場合には、誤った、または他の様態で望ましくないコードがIaaSプロバイダのネットワークに損害を与えること、または異なる顧客のネットワークに損害を与えることを防止するのを助け得る、二重隔離が存在し得る(例えば、コンテナ671(1)~(N)がコードを実行し、コンテナ671(1)~(N)は、少なくとも、信頼できないアプリサブネット662内に包含されるVM666(1)~(N)内に包含され得る)。コンテナ671(1)~(N)は顧客テナンシー670に通信可能に結合され得、顧客テナンシー670に対してデータを伝送または受信するように構成され得る。コンテナ671(1)~(N)は、データプレーンVCN618内のいずれの他のエンティティに対してもデータを伝送または受信するように構成され得ない。コードの実行を完了すると、IaaSプロバイダはコンテナ671(1)~(N)をキルするか、または他の仕方で処分し得る。
【0089】
実施形態によっては、信頼できるアプリサブネット660は、IaaSプロバイダによって所有または操作され得るコードを実行し得る。本実施形態では、信頼できるアプリサブネット660はDBサブネット630に通信可能に結合され、DBサブネット630内のCRUD操作を実行するように構成され得る。信頼できないアプリサブネット662はDBサブネット630に通信可能に結合され得るが、本実施形態では、信頼できないアプリサブネットは、DBサブネット630内の読み出し操作を実行するように構成され得る。各顧客のVM666(1)~(N)内に包含され得、顧客からのコードを実行し得るコンテナ671(1)~(N)はDBサブネット630と通信可能に結合され得ない。
【0090】
他の実施形態では、制御プレーンVCN616およびデータプレーンVCN618は直接通信可能に結合され得ない。本実施形態では、制御プレーンVCN616とデータプレーンVCN618との間の直接通信が存在し得ない。しかし、通信は少なくとも1つの方法を通じて間接的に行われ得る。制御プレーンVCN616とデータプレーンVCN618との間の通信を促進することができるLPG610がIaaSプロバイダによって確立され得る。別の例では、制御プレーンVCN616またはデータプレーンVCN618はサービスゲートウェイ636を介してクラウドサービス656へのコールを行うことができる。例えば、制御プレーンVCN616からクラウドサービス656へのコールは、データプレーンVCN618と通信することができるサービスのための要求を含むことができる。
【0091】
図7は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図700である。サービスオペレータ702(例えば、図4の、サービスオペレータ402)は、仮想クラウドネットワーク(VCN)706(例えば、図4のVCN406)およびセキュアホストサブネット708(例えば、図4のセキュアホストサブネット408)を含むことができるセキュアホストテナンシー704(例えば、図4のセキュアホストテナンシー404)に通信可能に結合され得る。VCN706は、SSH VCN712内に包含されるLPG710を介してSSH VCN712(例えば、図4のSSH VCN412)に通信可能に結合され得るLPG710(例えば、図4のLPG410)を含むことができる。SSH VCN712はSSHサブネット714(例えば、図4のSSHサブネット414)を含むことができ、SSH VCN712は、制御プレーンVCN716内に包含されるLPG710を介して制御プレーンVCN716(例えば、図4の制御プレーンVCN416)に、およびデータプレーンVCN718内に包含されるLPG710を介してデータプレーンVCN718(例えば、図4のデータプレーン418)に通信可能に結合され得る。制御プレーンVCN716およびデータプレーンVCN718はサービステナンシー719(例えば、図4のサービステナンシー419)内に包含され得る。
【0092】
制御プレーンVCN716は、LBサブネット722(例えば、図4のLBサブネット422)を含むことができる制御プレーンDMZ層720(例えば、図4の制御プレーンDMZ層420)、アプリサブネット726(例えば、図4のアプリサブネット426)を含むことができる制御プレーンアプリ層724(例えば、図4の制御プレーンアプリ層424)、DBサブネット730(例えば、図6のDBサブネット630)を含むことができる制御プレーンデータ層728(例えば、図4の制御プレーンデータ層428)を含むことができる。制御プレーンDMZ層720内に包含されるLBサブネット722は、制御プレーンアプリ層724内に包含されるアプリサブネット726に、および制御プレーンVCN716内に包含され得るインターネットゲートウェイ734(例えば、図4のインターネットゲートウェイ434)に通信可能に結合され得、アプリサブネット726は、制御プレーンデータ層728内に包含されるDBサブネット730に、ならびにサービスゲートウェイ736(例えば、図4のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ738(例えば、図4のNATゲートウェイ438)に通信可能に結合され得る。制御プレーンVCN716はサービスゲートウェイ736およびNATゲートウェイ738を含むことができる。
【0093】
データプレーンVCN718は、データプレーンアプリ層746(例えば、図4のデータプレーンアプリ層446)、データプレーンDMZ層748(例えば、図4のデータプレーンDMZ層448)、およびデータプレーンデータ層750(例えば、図4のデータプレーンデータ層450)を含むことができる。データプレーンDMZ層748は、データプレーンアプリ層746の信頼できるアプリサブネット760(例えば、図6の信頼できるアプリサブネット660)および信頼できないアプリサブネット762(例えば、図6の信頼できないアプリサブネット662)、ならびにデータプレーンVCN718内に包含されるインターネットゲートウェイ734に通信可能に結合され得るLBサブネット722を含むことができる。信頼できるアプリサブネット760は、データプレーンVCN718内に包含されるサービスゲートウェイ736、データプレーンVCN718内に包含されるNATゲートウェイ738、およびデータプレーンデータ層750内に包含されるDBサブネット730に通信可能に結合され得る。信頼できないアプリサブネット762は、データプレーンVCN718内に包含されるサービスゲートウェイ736、およびデータプレーンデータ層750内に包含されるDBサブネット730に通信可能に結合され得る。データプレーンデータ層750は、データプレーンVCN718内に包含されるサービスゲートウェイ736に通信可能に結合され得るDBサブネット730を含むことができる。
【0094】
信頼できないアプリサブネット762は、信頼できないアプリサブネット762内に常駐するテナント仮想機械(VM)766(1)~(N)に通信可能に結合され得るプライマリVNIC764(1)~(N)を含むことができる。各テナントVM766(1)~(N)はそれぞれのコンテナ767(1)~(N)内でコードを実行し、コンテナエグレスVCN768内に包含され得るデータプレーンアプリ層746内に包含され得るアプリサブネット726に通信可能に結合され得る。それぞれのセカンダリVNIC772(1)~(N)は、データプレーンVCN718内に包含される信頼できないアプリサブネット762とコンテナエグレスVCN768内に包含されるアプリサブネットとの間の通信を促進することができる。コンテナエグレスVCNは、公衆インターネット754(例えば、図4の公衆インターネット454)に通信可能に結合され得るNATゲートウェイ738を含むことができる。
【0095】
制御プレーンVCN716内に包含される、およびデータプレーンVCN718内に包含されるインターネットゲートウェイ734は、公衆インターネット754に通信可能に結合され得るメタデータ管理サービス752(例えば、図4のメタデータ管理システム452)に通信可能に結合され得る。公衆インターネット754は、制御プレーンVCN716内に包含される、およびデータプレーンVCN718内に包含されるNATゲートウェイ738に通信可能に結合され得る。制御プレーンVCN716内に包含される、およびデータプレーンVCN718内に包含されるサービスゲートウェイ736はクラウドサービス756に通信可能に結合することができる。
【0096】
例によっては、図7のブロック図700のアーキテクチャによって示されるパターンは、図6のブロック図600のアーキテクチャによって示されるパターンに対する例外と考えられ得、IaaSプロバイダが顧客(例えば、切断されたリージョン)と直接通信することができない場合に、IaaSプロバイダの顧客のために望ましくなり得る。顧客ごとのVM766(1)~(N)内に包含されるそれぞれのコンテナ767(1)~(N)は顧客によってリアルタイムにアクセスされ得る。コンテナ767(1)~(N)は、コンテナエグレスVCN768内に包含され得るデータプレーンアプリ層746のアプリサブネット726内に包含されるそれぞれのセカンダリVNIC772(1)~(N)へのコールを行うように構成され得る。セカンダリVNIC772(1)~(N)はコールをNATゲートウェイ738へ伝送することができ、NATゲートウェイ738はコールを公衆インターネット754へ伝送し得る。本例では、顧客によってリアルタイムにアクセスされ得るコンテナ767(1)~(N)は、制御プレーンVCN716から隔離され得、データプレーンVCN718内に包含される他のエンティティから隔離され得る。コンテナ767(1)~(N)はまた、他の顧客からのリソースからも隔離され得る。
【0097】
他の例では、顧客はコンテナ767(1)~(N)を用いてクラウドサービス756をコールすることができる。本例では、顧客はコンテナ767(1)~(N)内で、クラウドサービス756からのサービスを要求するコードを実行し得る。コンテナ767(1)~(N)はこの要求をセカンダリVNIC772(1)~(N)へ伝送することができ、セカンダリVNIC772(1)~(N)は要求をNATゲートウェイへ伝送することができ、NATゲートウェイは要求を公衆インターネット754へ伝送することができる。公衆インターネット754はインターネットゲートウェイ734を介して要求を、制御プレーンVCN716内に包含されるLBサブネット722へ伝送することができる。要求は有効であると決定したことに応じて、LBサブネットは要求をアプリサブネット726へ伝送することができ、アプリサブネット726はサービスゲートウェイ736を介して要求をクラウドサービス756へ伝送することができる。
【0098】
図に示されるIaaSアーキテクチャ400、500、600、700は、示されたもの以外のコンポーネントを有し得ることを理解されたい。さらに、図に示される実施形態は、単に、本開示の一実施形態を組み込み得るクラウドインフラストラクチャシステムの一部の例にすぎない。他の実施形態によっては、IaaSシステムは、図に示されるのよりも多数または少数のコンポーネントを有し得るか、2つ以上のコンポーネントを組み合わせ得るか、あるいはコンポーネントの異なる構成または配置を有し得る。
【0099】
一部の実施形態では、本明細書において説明されるIaaSシステムは、セルフサービスの、加入ベースの、弾力的にスケーラブルな、信頼できる、高度に利用可能な、および安全な仕方で顧客へ配布される、アプリケーションのスイート、ミドルウェア、およびデータベースサービス提供を含み得る。このようなIaaSシステムの一例は、本譲受人によって提供されるOracle Cloud Infrastructure(OCI)である。
【0100】
図8は、様々な実施形態が実施され得る、例示的なコンピュータシステム800を示す。システム800は、上述されたコンピュータシステムのうちの任意のものを実施するために用いられ得る。図に示されるように、コンピュータシステム800は、バスサブシステム802を介して多数の周辺サブシステムと通信する処理ユニット804を含む。これらの周辺サブシステムは、処理加速ユニット806、I/Oサブシステム808、ストレージサブシステム818、および通信サブシステム824を含み得る。ストレージサブシステム818は有形のコンピュータ可読記憶媒体822およびシステムメモリ810を含む。
【0101】
バスサブシステム802は、コンピュータシステム800の様々なコンポーネントおよびサブシステムに、意図されたとおりに互いに通信させるための機構を提供する。バスサブシステム802は単一のバスとして概略的に示されているが、バスサブシステムの代替的実施形態は複数のバスを利用し得る。バスサブシステム802は、メモリバスもしくはメモリコントローラ、周辺バス、および種々のバスアーキテクチャのうちの任意のものを用いたローカルバスを含むいくつかの種類のバス構造のうちの任意のものであり得る。例えば、このようなアーキテクチャとしては、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオエレクトロニクス規格協会(VESA:Video Electronics Standards Association)ローカルバス、およびIEEE P1386.1規格に合わせて製造されるメザニンバスとして実施され得る、周辺装置相互接続(PCI:Peripheral Component Interconnect)バスが挙げられ得る。
【0102】
[0001]1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実施され得る、処理ユニット804がコンピュータシステム800の動作を制御する。1つまたは複数のプロセッサが処理ユニット804内に含まれ得る。これらのプロセッサはシングルコアまたはマルチコアプロセッサを含み得る。一部の実施形態では、処理ユニット804は、シングルまたはマルチコアプロセッサが各処理ユニット内に含まれる1つまたは複数の独立した処理ユニット832および/または834として実施され得る。他の実施形態では、処理ユニット804はまた、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されたクアッドコア処理ユニットとして実施され得る。
【0103】
様々な実施形態では、処理ユニット804はプログラムコードに応じて種々のプログラムを実行することができ、複数の同時に実行するプログラムまたはプロセスを維持することができる。いかなる時でも、実行されるべきプログラムコードのうちの一部または全てはプロセッサ804内および/またはストレージサブシステム818内に常駐していることができる。好適なプログラミングを通じて、プロセッサ804は、上述された様々な機能性を提供することができる。コンピュータシステム800は、デジタル信号プロセッサ(DSP:digital signal processor)、専用プロセッサ、および/または同様のものを含むことができる、処理加速ユニット806を追加的に含み得る。
【0104】
/Oサブシステム808はユーザインターフェース入力デバイスおよびユーザインターフェース出力デバイスを含み得る。ユーザインターフェース入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイ内に組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システム、マイクロフォンを用いたオーディオ入力デバイス、ならびに他の種類の入力デバイスを含み得る。ユーザインターフェース入力デバイスは、例えば、ユーザが、ジェスチャおよび発話コマンドを用いたナチュラルユーザインターフェースを通じて、Microsoft Xbox(登録商標)360ゲームコントローラなどの、入力デバイスを制御し、それと対話することを可能にする、Microsoft Kinect(登録商標)動きセンサなどの動作検知および/またはジェスチャ認識デバイスを含み得る。ユーザインターフェース入力デバイスはまた、ユーザから眼の活動(例えば、写真を撮影している、および/またはメニューの選択を行っている間に「瞬きすること」)を検出し、アイジェスチャを入力デバイス(例えば、Google Glass(登録商標))内への入力として変換する、Google Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスを含み得る。加えて、ユーザインターフェース入力デバイスは、ユーザが音声コマンドを通じて音声認識システム(例えば、Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含み得る。
【0105】
ユーザインターフェース入力デバイスはまた、限定するものではないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡デバイスなどの聴覚/視覚デバイスを含み得る。加えて、ユーザインターフェース入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴映像、位置(position)放射断層撮影、医療超音波検査デバイスなどの医療撮像入力デバイスを含み得る。ユーザインターフェース入力デバイスはまた、例えば、MIDIキーボード、デジタル楽器、および同様のものなどのオーディオ入力デバイスを含み得る。
【0106】
ユーザインターフェース出力デバイスは、ディスプレイサブシステム、インジケータライト、またはオーディオ出力デバイス等の非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT:cathode ray tube)、液晶ディスプレイ(LCD:liquid crystal display)またはプラズマディスプレイを用いるものなどの、フラットパネルデバイス、投影デバイス、タッチスクリーン、ならびに同様のものであり得る。概して、用語「出力デバイス」の使用は、情報をコンピュータシステム800からユーザまたは他のコンピュータへ出力するための全ての可能な種類のデバイスおよび機構を含むことを意図される。例えば、ユーザインターフェース出力デバイスは、限定するものではないが、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなどの、テキスト、グラフィックス、および音声/映像情報を視覚的に伝える種々の表示デバイスを含み得る。
【0107】
コンピュータシステム800は、本開示において説明される実施形態の機能性を提供するソフトウェアおよびデータ構造を記憶するための有形の非一時的コンピュータ可読記憶媒体を提供するストレージサブシステム818を備え得る。ソフトウェアは、処理ユニット804の1つまたは複数のコアまたはプロセッサによって実行されると、上述された機能性を提供する、プログラム、コードモジュール、命令、スクリプト等を含むことができる。ストレージサブシステム818はまた、本開示に従って用いられるデータを記憶するためのリポジトリを提供し得る。
【0108】
図8における例に示されるように、ストレージサブシステム818は、システムメモリ810、コンピュータ可読記憶媒体822、およびコンピュータ可読記憶媒体リーダ820を含む様々なコンポーネントを含むことができる。システムメモリ810は、処理ユニット804によってロード可能で、実行可能であるプログラム命令を記憶し得る。システムメモリ810はまた、命令の実行中に用いられるデータ、および/またはプログラム命令の実行中に生成されたデータを記憶し得る。限定するものではないが、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS:relational database management system)、仮想機械、コンテナ等を含む、様々な異なる種類のプログラムがシステムメモリ810内にロードされ得る。
【0109】
システムメモリ810はまた、オペレーティングシステム816を記憶し得る。オペレーティングシステム816の例としては、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinuxオペレーティングシステム、種々の市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(限定するものではないが、種々のGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OS、および同様のものを含む)、ならびに/あるいはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを挙げることができる。コンピュータシステム800が1つまたは複数の仮想機械を実行する一部の実装形態では、仮想機械はそれらのゲストオペレーティングシステム(GOS:guest operating system)と共にシステムメモリ810内にロードされ、処理ユニット804の1つまたは複数のプロセッサまたはコアによって実行され得る。
【0110】
システムメモリ810は、コンピュータシステム800の種類に応じて異なる構成のものであることができる。例えば、システムメモリ810は、揮発性メモリ(ランダムアクセスメモリ(RAM:random access memory)など)、および/または不揮発性メモリ(リードオンリーメモリ(ROM:read-only memory)、フラッシュメモリ等)であり得る。スタティックランダムアクセスメモリ(SRAM:static random access memory)、ダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory)、および他のものを含む、異なる種類のRAM構成が提供され得る。実装形態によっては、システムメモリ810は、起動の最中などに、コンピュータシステム800内の要素間で情報を転送するのを助けるための基本ルーチンを包含する、基本入出力システム(BIOS:basic input/output system)を含み得る。
【0111】
コンピュータ可読記憶媒体822は、コンピュータシステム800の処理ユニット804によって実行可能な命令を含むコンピュータシステム800による使用のためのコンピュータ可読情報を、一時的に、および/またはより永久的に包含し、記憶するための、リモート、ローカル、固定式、および/または着脱式記憶デバイス・プラス・記憶媒体を表現し得る。
【0112】
コンピュータ可読記憶媒体822はまた、限定するものではないが、情報の記憶および/または伝送のための任意の方法または技術において実施される揮発性および不揮発性、着脱式および非着脱式媒体などの、記憶媒体および通信媒体を含む、当技術分野において知られた、または用いられる、任意の適切な媒体を含むことができる。これは、RAM、ROM、電気的削除可能プログラマブルROM(EEPROM:electronically erasable programmable ROM)、フラッシュメモリ、または他のメモリ技術、CD-ROM、デジタルバーサタイルディスク(DVD:digital versatile disk)、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶デバイス、あるいは他の有形のコンピュータ可読媒体などの、有形のコンピュータ可読記憶媒体を含むことができる。
【0113】
例として、コンピュータ可読記憶媒体822は、非着脱式不揮発性磁気媒体から読み出す、またはそれに書き込むハードディスクドライブ、着脱式不揮発性磁気ディスクから読み出す、またはそれに書き込む磁気ディスクドライブ、ならびにCD ROM、DVD、およびBlu-Ray(登録商標)ディスク、または他の光媒体などの、着脱式不揮発性光ディスクから読み出す、またはそれに書き込む光ディスクドライブを含み得る。コンピュータ可読記憶媒体822は、限定するものではないが、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB:universal serial bus)フラッシュドライブ、セキュアデジタル(SD:secure digital)カード、DVDディスク、デジタルビデオテープ、および同様のものを含み得る。コンピュータ可読記憶媒体822はまた、フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROM、および同様のものなどの、不揮発性メモリに基づくソリッドステートドライブ(SSD:solid-state drive)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM:magnetoresistive RAM)SSDなどの、揮発性メモリに基づくSSD、ならびにDRAMおよびフラッシュメモリベースのSSDの組み合わせを用いるハイブリッドSSDを含み得る。ディスクドライブおよびそれらの関連コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータシステム800のための他のデータの不揮発性記憶をもたらし得る。
【0114】
処理ユニット804の1つまたは複数のプロセッサまたはコアによって実行可能な機械可読命令は非一時的コンピュータ可読記憶媒体上に記憶され得る。非一時的コンピュータ可読記憶媒体は、揮発性メモリ記憶デバイスおよび/または不揮発性記憶デバイスを含む物理的に有形のメモリまたは記憶デバイスを含むことができる。非一時的コンピュータ可読記憶媒体の例としては、磁気記憶媒体(例えば、ディスクまたはテープ)、光記憶媒体(例えば、DVD、CD)、様々な種類のRAM、ROM、またはフラッシュメモリ、ハードドライブ、フロッピー(登録商標)ドライブ、着脱式メモリドライブ(例えば、USBドライブ)、あるいは他の種類の記憶デバイスが挙げられる。
【0115】
通信サブシステム824は他のコンピュータシステムおよびネットワークへのインターフェースを提供する。通信サブシステム824は、他のシステムからデータを受信し、コンピュータシステム800から他のシステムへデータを伝送するためのインターフェースの役割を果たす。例えば、通信サブシステム824は、コンピュータシステム800がインターネットを介して1つまたは複数のデバイスに接続することを可能にし得る。実施形態によっては、通信サブシステム824は、(例えば、セルラ電話技術、3G、4G、もしくはEDGE(enhanced data rates for global evolution(エンハンストデータレート・フォー・グローバルエボリューション))などの、先進データネットワーク技術、WiFi(IEEE802.11ファミリー規格、または他のモバイル通信技術、あるいはこれらの任意の組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF:radio frequency)トランシーバコンポーネント、全地球測位システム(GPS:global positioning system)受信器コンポーネント、ならびに/あるいは他のコンポーネントを含むことができる。実施形態によっては、通信サブシステム824は、無線インターフェースに加えて、またはその代わりに、有線ネットワーク接続性(例えば、Ethernet)を提供することができる。
【0116】
実施形態によっては、通信サブシステム824はまた、コンピュータシステム800を使用し得る1人または複数のユーザのために、構造化された、および/または構造化されていないデータフィード826、イベントストリーム828、イベント更新830、ならびに同様のものの形態の入力通信を受信し得る。
【0117】
例として、通信サブシステム824は、Twitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリー(RSS:Rich Site Summary)フィードなどのウェブフィード、および/または1つまたは複数のサードパーティ情報源からのリアルタイム更新など、ソーシャルネットワークおよび/または他の通信サービスのユーザからデータフィード826をリアルタイムに受信するように構成され得る。
【0118】
加えて、通信サブシステム824はまた、明確な終端を本質的に有しない、連続的な、または境界のないものであり得る、リアルタイムイベントのイベントストリーム828、および/またはイベント更新830を含み得る、連続データストリームの形態のデータを受信するように構成され得る。連続データを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(例えば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車トラフィック監視、ならびに同様のものが挙げられ得る。
【0119】
通信サブシステム824はまた、構造化された、および/または構造化されていないデータフィード826、イベントストリーム828、イベント更新830、ならびに同様のものを、コンピュータシステム800に結合された1つまたは複数のストリーミングデータソースコンピュータと通信し得る1つまたは複数のデータベースへ出力するように構成され得る。
【0120】
コンピュータシステム800は、ハンドヘルドポータブルデバイス(例えば、iPhone(登録商標)セルラ電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、様々な種類のうちの1つであることができる。
【0121】
コンピュータおよびネットワークの絶え間なく変化し続ける性質のゆえに、図に示されるコンピュータシステム800の説明は単なる具体例として意図されているにすぎない。図に示されるシステムよりも多数または少数のコンポーネントを有する多くの他の構成が可能である。例えば、カスタマイズされたハードウェアも用いられ得、ならびに/あるいは特定の要素は、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組み合わせの形で実施され得るであろう。さらに、ネットワーク入力/出力デバイスなどの、他のコンピューティングデバイスへの接続が採用され得る。本明細書において提供される開示および教示に基づいて、当業者は、様々な実施形態を実施するための他の仕方および/または方法を理解するであろう。
【0122】
特定の実施形態が説明されたが、様々な変更、改変、代替的構造、および同等物も本開示の範囲内に包含される。実施形態は一部の特定のデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に動作できる。加えて、実施形態は特定の一連のトランザクションおよびステップを用いて説明されたが、当業者には、本開示の範囲は、説明された一連のトランザクションおよびステップに限定されないことが明らかであるはずである。上述の実施形態の様々な特徴および態様は、個々に、または合同で用いられ得る。
【0123】
さらに、実施形態はハードウェアおよびソフトウェアの特定の組み合わせを用いて説明されたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内であることが認識されるべきである。実施形態は、ハードウェアの形でのみ、またはソフトウェアの形でのみ、あるいはこれらの組み合わせを用いて実施され得る。本明細書において説明される様々なプロセスは同じプロセッサまたは異なるプロセッサ上で任意の組み合わせで実施され得る。したがって、コンポーネントまたはモジュールが、とある動作を遂行するように構成されているように説明されている場合、このような構成は、例えば、電子回路を、動作を遂行するように設計することによって、プログラム可能な電子回路(マイクロプロセッサなど)を、動作を遂行するようにプログラムすること、またはこれらの任意の組み合わせによって達成され得る。プロセスは、限定するものではないが、プロセス間通信のための従来の技術を含む種々の技術を用いて通信することができ、異なる対のプロセスは異なる技術を用い得、または同じ対のプロセスは異なる時点で異なる技術を用い得る。
【0124】
したがって、明細書および図面は、限定でなく、例示的な意味で捉えられるべきである。しかし、請求項において記載されるとおりのより広い趣旨および範囲から逸脱することなく、追加、削減、削除、ならびに他の変更および改変がそれらに対して行われ得ることは明らかであろう。それゆえ、具体的な開示の実施形態が説明されたが、これらは限定であることを意図されていない。様々な変更および等価物が添付の請求項の範囲に含まれる。
【0125】
本開示の実施形態を説明する文脈における(特に、添付の請求項の文脈における)用語「a」、および「an」、および「the」ならびに同様の指示対象の使用は、本明細書において別途記載がないか、または文脈によって明確に否定されない限り、単数形および複数形の両方を包括すると解釈されるべきである。用語「備える(comprising)」、「有する(having)」、「含む(including)」、および「包含する(containing)」は、特に断りのない限り、オープンエンドな用語(すなわち、「限定するものではないが、~を含む(including, but not limited to)」を意味する)として解釈されるべきである。用語「接続される(connected)」は、たとえ、何らかの介在物が存在する場合でも、~内に部分的もしくは完全に包含される(partly or wholly contained within)、~に取り付けられる(attached to)、または相互に連結される(joined together)として解釈されるべきである。本明細書における値の範囲の記載は、本明細書において別途記載のない限り、単に、範囲に含まれる各々の別個の値に個々に言及する簡略的方法の役割を果たすことを意図されているにすぎず、各々の別個の値は、あたかもそれが本明細書において個々に記載されているかのように明細書に組み込まれる。本明細書において説明される全ての方法は、本明細書において別途記載がないか、または文脈によって別途明確に否定されない限り、任意の好適な順序で遂行され得る。本明細書において与えられるありとあらゆる例、または例示的な文言(例えば、「~など(such as)」)の使用は、単に、実施形態の理解をより容易にすることを意図されているにすぎず、別途断りのない限り、本開示の範囲に限定を課すものではない。明細書中のいかなる文言も、非クレーム要素を本開示の実施に不可欠のものとして指示していると解釈されてはならない。
【0126】
語句「X、Y、またはZのうちの少なくとも1つ」などの、離接的な文言は、別途特に断りのない限り、概して、項目、用語等は、X、Y、またはZのいずれか、あるいはこれらの任意の組み合わせ(例えば、X、Y、および/またはZ)であり得ることを示すために使用されると文脈内で理解されることを意図されている。それゆえ、このような離接的な文言は、概して、一部の実施形態は、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つが各々存在することを必要とすることを暗示することを意図されておらず、暗示するべきでない。
【0127】
本明細書では、本開示を実施するために知られた最良の形態を含む、本開示の好ましい実施形態が説明されている。それらの好ましい実施形態の変形例は、上述の説明を読むことで当業者に明らかになり得る。当業者は必要に応じてこのような変形例を採用することができるはずであり、本開示は、本明細書において具体的に説明されたもの以外の仕方で実施され得る。したがって、本開示は、適用法によって許されるとおりの本明細書に添付された請求項に記載される主題の全ての変更例および同等物を含む。さらに、本明細書において別途記載のない限り、それらの全ての可能な変形例における上述の要素の任意の組み合わせが本開示によって包含される。
【0128】
本明細書において挙げられた、公報、特許出願、および特許を含む、全ての参照文献は、あたかも、各参照文献が、参照により組み込まれるよう個々に具体的に指示され、その全体が本明細書において記載されているのと同じ程度に、本明細書において参照により組み込まれる。
【0129】
上述の明細書において、本開示の態様はその特定の実施形態を参照して説明されているが、当業者は、本開示はそれらに限定されないことを認識するであろう。上述の開示の様々な特徴および態様は、個々に、または合同で用いられ得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書において説明されるものを超える任意の数の環境および適用において利用され得る。したがって、明細書および図面は、限定でなく、例示として捉えられるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】