(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-23
(54)【発明の名称】ドメインリソースとしての外部IDプロバイダ
(51)【国際特許分類】
G06F 21/60 20130101AFI20241016BHJP
G06F 21/31 20130101ALI20241016BHJP
【FI】
G06F21/60 340
G06F21/31
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513424
(86)(22)【出願日】2022-09-28
(85)【翻訳文提出日】2024-02-28
(86)【国際出願番号】 US2022077161
(87)【国際公開番号】W WO2023056285
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ナガラジャ,ギリシュ
(72)【発明者】
【氏名】バン・デン・ダンゲン,マルティヌス・ペトルス・ランベルトゥス
(72)【発明者】
【氏名】ウィルソン,グレッグ
(72)【発明者】
【氏名】コール,ゲイリー・フィリップ
(72)【発明者】
【氏名】エバーニ,ベンカタ・サブバラオ
(57)【要約】
本明細書では、第1のIDおよびアクセス管理(IAM)システム、および第1のIAMシステムとは異なる第2のIAMシステムから統合IAMシステムを生成するためのフレームワークについて説明する。統合IAMシステムは、(i)第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)ドメイン内に第2のIAMシステムのIDプロバイダを埋め込むことによって生成される。統合IAMシステムは、第2のIAMシステムに関連付けられているリソースに関して動作を実行する要求をユーザから受信する。ユーザが統合IAMシステムによって認証されることに成功すると、要求が実行される。
【特許請求の範囲】
【請求項1】
第1のIDおよびアクセス管理(IAM)システム、および前記第1のIAMシステムとは異なる第2のIAMシステムから、(i)前記第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)前記ドメイン内に前記第2のIAMシステムのIDプロバイダを埋め込むことにより、統合IAMシステムを生成することと、
前記統合IAMシステムが、前記第2のIAMシステムに関連付けられているリソースに関して動作を実行するためのユーザからの要求を受信することと、
前記ユーザが前記統合IAMシステムによって認証されることに成功したことに応答して前記要求を実行することと、を含む、方法。
【請求項2】
前記ドメインは、前記顧客テナントのコンパートメント内に作成される、請求項1に記載の方法。
【請求項3】
前記コンパートメントは、前記ユーザによるリソースへのアクセスを管理する1つまたは複数のルールに対応するポリシーに関連付けられている、請求項2に記載の方法。
【請求項4】
前記顧客テナント内に複数のドメインを作成することをさらに含み、前記複数のドメインの各々は前記第2のIAMシステムのストライプに対応し、前記ストライプは1人または複数のユーザを含むコンテナに対応する、請求項1に記載の方法。
【請求項5】
前記複数のドメインの各々は、対応するポリシーに関連付けられている、請求項4に記載の方法。
【請求項6】
前記統合IAMシステムの制御プレーンは、(i)新しいドメインの作成に関する要求を受信するように構成されている第1のエンドポイント、および(ii)複数の第2のエンドポイントを含み、前記複数の第2のエンドポイントの各々は以前に作成されるドメインに対応し、前記ドメイン内で実行される動作に関連する要求を受信するように構成されている、請求項1に記載の方法。
【請求項7】
アプリケーションを前記ドメインに登録することと、
1つまたは複数のリソースプリンシパルの動的グループを作成することと、
前記1つまたは複数のリソースプリンシパルの動的グループを前記アプリケーションに割り当てることと、をさらに含む、請求項1に記載の方法。
【請求項8】
前記顧客テナントにデフォルトドメインをプロビジョニングすることをさらに含み、前記デフォルトドメインには、前記顧客テナントを作成した第1のユーザが含まれており、前記デフォルトドメインは、前記第1のユーザに前記顧客テナント内でのアクセスを提供するデフォルトポリシーに関連付けられている、請求項1に記載の方法。
【請求項9】
前記要求は、前記顧客テナント内に配置されるネットワークソース決定器(NSD)によって処理され、前記NSDは前記要求のソースを決定するように構成され、前記方法は、前記要求の前記ソースの識別に成功したことに応答して前記要求を実行することをさらに含む、請求項1に記載の方法。
【請求項10】
前記要求は、前記第1のIAMシステムを前記第2のIAMシステムと連携させることなく実行される、請求項1に記載の方法。
【請求項11】
プロセッサによって実行されると、コンピュータシステムに方法を実行させる特定のコンピュータ実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記方法は、
第1のIDおよびアクセス管理(IAM)システム、および前記第1のIAMシステムとは異なる第2のIAMシステムから、(i)前記第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)前記ドメイン内に前記第2のIAMシステムのIDプロバイダを埋め込むことにより、統合IAMシステムを生成することと、
前記統合IAMシステムが、前記第2のIAMシステムに関連付けられているリソースに関して動作を実行するためのユーザからの要求を受信することと、
前記ユーザが前記統合IAMシステムによって認証されることに成功したことに応答して前記要求を実行することと、を含む、非一時的なコンピュータ可読媒体。
【請求項12】
前記ドメインは、前記顧客テナントのコンパートメント内に作成される、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記コンパートメントは、前記ユーザによるリソースへのアクセスを管理する1つまたは複数のルールに対応するポリシーに関連付けられている、請求項12に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記方法は、
前記顧客テナント内に複数のドメインを作成することをさらに含み、前記複数のドメインの各々は前記第2のIAMシステムのストライプに対応し、前記ストライプは1人または複数のユーザを含むコンテナに対応する、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記統合IAMシステムの制御プレーンは、(i)新しいドメインの作成に関する要求を受信するように構成されている第1のエンドポイント、および(ii)複数の第2のエンドポイントを含み、前記複数の第2のエンドポイントの各々は以前に作成されたドメインに対応し、前記ドメイン内で実行される動作に関連する要求を受信するように構成されている、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項16】
前記方法は、
アプリケーションを前記ドメインに登録することと、
1つまたは複数のリソースプリンシパルの動的グループを作成することと、
前記1つまたは複数のリソースプリンシパルの動的グループを前記アプリケーションに割り当てることと、をさらに含む、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記要求は、前記顧客テナント内に配置されるネットワークソース決定器(NSD)によって処理され、前記NSDは前記要求のソースを決定するように構成され、前記方法は、前記要求の前記ソースの識別に成功したことに応答して前記要求を実行することをさらに含む、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記要求は、前記第1のIAMシステムを前記第2のIAMシステムと連携させることなく実行される、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項19】
コンピューティング装置であって、
プロセッサと、
命令を含むメモリと、を含み、前記命令は、前記プロセッサで実行されると、前記コンピューティング装置に少なくとも、
第1のIDおよびアクセス管理(IAM)システム、および前記第1のIAMシステムとは異なる第2のIAMシステムから、(i)前記第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)前記ドメイン内に前記第2のIAMシステムのIDプロバイダを埋め込むことにより、統合IAMシステムを生成することと、
前記統合IAMシステムが、前記第2のIAMシステムに関連付けられているリソースに関して動作を実行するためのユーザからの要求を受信することと、
前記ユーザが前記統合IAMシステムによって認証されることに成功したことに応答して前記要求を実行することとを行わせる、コンピューティング装置。
【請求項20】
前記要求は、前記第1のIAMシステムと前記第2のIAMシステムとを連携させることなく実行される、請求項19に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月30日に出願された米国仮出願第63/250,598号および2022年9月23日に出願された米国仮出願第17/934,846号に対する優先権を主張する。前述の出願の全内容は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【0002】
分野
本開示は、2つ以上の別個のIDおよびアクセス管理システムをシームレスな方法で統合するためのフレームワークに関する。
【背景技術】
【0003】
背景
クラウドサービスプロバイダ(CSP)は、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)モデルを含む異なるモデルの下でサービスを提供する。クラウド環境では、通常、IDおよびアクセス管理(IAM)システムがCSPによって提供され、クラウドサービスによって提供または使用されるリソースへのユーザクセスを制御する。IAMシステムによって提供される一般的なサービスまたは機能には、ユーザ向けの単一サインオン機能、認証および認可サービス、ならびにその他のIDベースのサービスが含まれるが、これらに制限はない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
IAMシステムによって保護されるリソースは、コンピューティングインスタンス、ブロック記憶ボリューム、仮想クラウドネットワーク(VCN)、サブネット、ルートテーブル、さまざまな呼び出し可能なAPI、および/または内部アプリケーションもしくはレガシーアプリケーションなど、異なるタイプのものであり得る。これらのリソースには、クラウドに記憶されるリソースおよび/または顧客のオンプレミスリソースが含まれる。各リソースは、リソースの作成時にリソースに割り当てられる一意の識別子によって識別される。一般的なCSP動作では、第1のタイプのサービス(例えば、IaaS)へのユーザクセスを制御するために、第1のIAMシステムが提供される。これとは別に、SaaSサービスやPaaSサービスなどの第2のタイプのアプリケーションのセキュリティとID管理のために第2のIAMシステムが提供される。その結果、顧客が第1と第2のタイプのサービスの両方に加入する場合、顧客は2つの別個のアカウント(つまり、各IAMシステムに関連付けられている別個のアカウント)を持つ必要がある。
【0005】
エンドユーザが個別のアカウントの各々に関連付けられている複数セットの認証情報を記憶する負担を軽減するために、第1のIAMシステムと第2のIAMシステムとの間でID連携が提案されている。しかし、IDプロバイダの連携プロセスは複雑で時間のかかるプロセスであり、ユーザエクスペリエンスの低下につながる。
【0006】
本明細書に記載の実施形態は、上記の問題に個別かつ集合的に対処する。
【課題を解決するための手段】
【0007】
簡単な概要
本開示の実施形態は、第1のIAMシステムおよび第2のIAMシステムから統合IDおよびアクセス管理(IAM)システムを生成することを提供する。場合によっては、第1のIAMシステムは、Oracle Cloud Infrastructure(OCI)のインフラストラクチャIDおよびアクセス管理(IAM)に対応することができ、第2のIAMシステムは、Identity Cloud Services(IDCS)システムに対応することができる。したがって、この統合により、統合IAMシステムが提供され、第2のIAMシステムに関連付けられているリソースに対する動作の実行要求は、第1のIAMシステムを第2のIAMシステムに連携する必要なく、統合IAMシステムによってシームレスに認証/認可され得る。
【0008】
本開示の一態様は、第1のIDおよびアクセス管理(IAM)システム、および第1のIAMシステムとは異なる第2のIAMシステムから、(i)第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)ドメイン内に第2のIAMシステムのIDプロバイダを埋め込むことにより、統合IAMシステムを生成することと、統合IAMシステムが、第2のIAMシステムに関連付けられているリソースに関して動作を実行するためのユーザからの要求を受信することと、ユーザが統合IAMシステムによって認証されることに成功したことに応答して要求を実行することと、を含む方法を提供する。
【0009】
本開示の別の態様は、プロセッサによって実行されると、コンピュータシステムに方法を実行させる特定のコンピュータ実行可能命令を記憶する非一時的なコンピュータ可読媒体を提供し、この方法は、第1のIDおよびアクセス管理(IAM)システム、および第1のIAMシステムとは異なる第2のIAMシステムから、(i)第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)ドメイン内に第2のIAMシステムのIDプロバイダを埋め込むことにより、統合IAMシステムを生成することと、統合IAMシステムが、第2のIAMシステムに関連付けられているリソースに関して動作を実行するためのユーザからの要求を受信することと、ユーザが統合IAMシステムによって認証されることに成功したことに応答して要求を実行することと、を含む。
【0010】
本開示の一実施形態によれば、プロセッサと命令を格納したメモリとを備えるコンピューティング装置が提供され、当該命令は、当該プロセッサで実行されると、当該コンピューティング装置に少なくとも、第1のIDおよびアクセス管理(IAM)システム、および第1のIAMシステムとは異なる第2のIAMシステムから、(i)第1のIAMシステムに関連付けられている顧客テナント内にドメインを作成し、(ii)ドメイン内に第2のIAMシステムのIDプロバイダを埋め込むことにより、統合IAMシステムを生成させ、第2のIAMシステムに関連付けられているリソースに関して動作を実行するためのユーザからの要求を統合IAMシステムによって受信させ、ユーザが統合IAMシステムによって認証されることに成功したことに応答して要求を実行させる。
【0011】
前述のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することによってより明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】さまざまな実施形態によるIDドメインを示すブロック図を示す図である。
【
図2】さまざまな実施形態による例示的な顧客テナントを示すブロック図を示す図である。
【
図3】いくつかの実施形態による統合ID管理システムのアーキテクチャを示すブロック図を示す図である。
【
図4A】いくつかの実施形態による統合ID管理システムを生成するプロセスを示すフローチャートを示す図である。
【
図4B】いくつかの実施形態による、統合ID管理システムによるユーザ要求を認可するプロセスを示すフローチャートを示す図である。
【
図5】少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための1つのパターンを示すブロック図である。
【
図6】少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。
【
図7】少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。
【
図8】少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。
【
図9】少なくとも1つの実施形態による例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0013】
詳細な説明
以下の説明では、さまざまな実施形態について説明する。説明の目的で、実施形態の完全な理解を提供するために、特定の構成および詳細が記載される。しかし、特定の詳細がなくても実施形態を実施できることも当業者には明らかであろう。さらに、説明される実施形態を分かりにくくしないために、周知の特徴は省略または簡略化され得る。
【0014】
序論
クラウドサービスプロバイダ(CSP)は、加入顧客に複数のクラウドサービスを提供することができる。これらのサービスは、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、サービスとしてのインフラストラクチャ(IaaS)モデルなどのさまざまなモデルで提供され得る。
【0015】
クラウド環境では、クラウドサービスによって提供または使用されるリソースへのユーザアクセスを制御するために、IDおよびアクセス管理(IAM)システムが一般にCSPによって提供される。IAMシステムによって提供される一般的なサービスまたは機能には、ユーザ向けの単一サインオン機能、認証および認可サービス、ならびにその他のIDベースのサービスが含まれるが、これらに制限はない。
【0016】
IAMシステムによって保護されるリソースは、コンピューティングインスタンス、ブロック記憶ボリューム、仮想クラウドネットワーク(VCN)、サブネット、ルートテーブル、さまざまな呼び出し可能なAPI、内部アプリケーションまたはレガシーアプリケーションなど、さまざまなタイプにすることができる。これらのリソースには、クラウドに記憶されるリソースおよび/または顧客のオンプレミスリソースが含まれる。各リソースは通常、リソースの作成時にリソースに割り当てられる一意の識別子(例えば、ID)によって識別される。
【0017】
CSPは、クラウド製品のために2つ以上の別個の独立したIAMシステムを提供することができる。これは、例えば、CSPによって提供されるIaaSアプリケーションおよびサービスのクラウドリソースへのアクセスを制御するために第1のIAMシステム(例えば、OCIのインフラストラクチャIDおよびアクセス管理)が提供され得る場合に実行され得る。別途、第2のIAMシステム(例えば、第1のシステムとは異なり得るIDクラウドサービス(IDCS))が、CSPによって提供されるSaaSおよびPaaSサービスのセキュリティおよびID管理のために提供され得る。
【0018】
このような2つの別々のシステム/プラットフォームを提供することにより、CSPの顧客が、CSPが提供するSaaSまたはPaaSサービスとIaaSサービスの両方に加入している場合、通常、顧客は2つの別々のアカウントを持っている。1つはIaaS加入用のOCIのIAMを持つアカウント、もう1つはPaaS/SaaS加入用のIDCSを持つ別のアカウントである。各アカウントには、ユーザログインおよび/またはパスワードなどの独自の資格情報がある。したがって、同じ顧客は2つのアカウントに対して2つの別個の資格情報セットを持っている。その結果、顧客エクスペリエンスは満足のいくものとはならない。さらに、2つの個別のID管理システムがあると、SaaS/PaaSサービスとIaaSサービスとの間の対話にも障害が生じる。
【0019】
本出願の目的上、一例として、2つの例示的なプラットフォームをそれぞれIAMおよびIDCSと呼ぶ。しかし、これらの名前と用語は、いかなる形でも限定することを意図したものではない。この開示の教示は、2つ(またはそれ以上)の異なるID管理システムが統合されるあらゆる状況に適用される。統合されるID管理システムまたはプラットフォームは、1つまたは複数のCSPによって提供され得る。
【0020】
特定の実施形態では、2つの別個のプラットフォームによって提供されるさまざまな特徴および機能を保持および提供しながら、クラウドサービスのユーザまたは顧客にとって透過的な方法で、複数のIDおよびアクセス管理システム/プラットフォーム(例えば、IAMおよびIDCSプラットフォーム)を統合する統合IAMシステムが提供される。したがって、統合により、よりシームレスで強化されたユーザエクスペリエンスが提供される。
【0021】
しかし、この統合は、いくつかの理由により技術的に非常に困難である。2つ以上のプラットフォームは、ID関連機能を実装するために異なる手順とプロトコルを使用し得る。例えば、IAMは、アクセス制御パラダイムを定義する、ポリシーベースのアクセス制御システムとしても知られる属性ベースのアクセス制御(ABAC)システムであり得、これにより、多くの異なる属性を評価できる複雑なブールルールセットを表すポリシーを使用して、ユーザにアクセス権が付与される。ABACの目的は、データ、ネットワーク装置、およびITリソースなどのオブジェクトを、組織のセキュリティポリシーで定義される「認可される」特性を持たない、無認可のユーザやアクションから保護することである。一方、IDCSは、役割と特権を中心に定義されるポリシー中立のアクセス制御機構である役割ベースのアクセス制御(RBAC)システムであってもよい。役割と権限、ユーザと役割、役割と役割の関係などのRBACの構成要素により、ユーザ割り当ての実行が簡単になる。さらに別の理由として、2つのプラットフォームで使用される認証および認可フレームワークまたはワークフロー(例えば、使用されるトークンのタイプ、OAUTHなどの異なる認証フレームワーク)が異なる可能性がある。これは、統合ソリューションの提供が技術的に非常に難しい理由のほんの一例にすぎない。
【0022】
簡単にして説明するために、本明細書では、第1のIDおよびアクセス管理システムは(IaaSアプリケーションなどのクラウドリソースへのアクセス制御を提供する)IAMシステムであるとみなされ、本明細書では、第2のIDおよびアクセス管理システムは、(SaaSおよびPaaSなどのサービスのセキュリティおよびID管理を提供する)IDCSシステムであるとみなされる。通常、2つ以上のIAMシステム間の統合は、連携と呼ばれるプロセスを介して実行される。例えば、第1のIAMシステムはネイティブサービス(本明細書ではIDプロバイダサービスと呼ぶ)を提供し、これによりIAMシステムのユーザが外部IDプロバイダ(IDP)、例えばIDCSと連携できるようになる。動作中、ユーザはネイティブサービス(第1のIDおよびアクセス管理システム、例えばIAM内)を利用して、外部IDP、例えばIDCSシステムでログイン動作を実行する。外部IDPは応答を生成し、それがIAMシステムに返送される。言い換えれば、ユーザを検証するために、IAMとIDCSシステムとの間で証明書交換が実行される。ユーザが検証されると、IAMシステムは、ユーザがメンバーであるIDPグループに関する情報を含むトークンを生成する。トークンは、外部システムのユーザグループの識別子をIAMシステムのユーザグループの別の識別子にマッピングすることを含むマッピング動作を実行するために使用される。そのため、2つ以上の個別の(独立した)IDおよびアクセス管理システムを連携するプロセスは、煩雑でリソースを大量に消費するプロセスであり、ユーザの満足度の低下につながる。
【0023】
以下では、2つの別個の(独立した)IAMシステムをシームレスな方法で統合するためのフレームワークが提供される。前述したように、説明の便宜上、第1のIAMシステムはOCIのIAMシステムに対応し、第2のIAMシステムはIDCSシステムに対応すると考える。しかし、2つの別個のIDおよびアクセス管理システムを統合するフレームワークは、他のタイプのID管理システムにも同様に適用できることが理解される。
【0024】
IAMシステムでは、顧客(例えば、組織)が、IAMシステムが提供するサービスを利用するためにアカウントにサインアップすると、顧客テナントが作成される。本明細書では、テナントは、顧客がクラウドリソースを作成、編成、および管理できるクラウドインフラストラクチャ内の安全で分離される分割として定義される。テナントには1つまたは複数のコンパートメントが含まれ得る。コンパートメントを使用すると、顧客はそのクラウドリソースへのアクセスを編成および制御できる。コンパートメントは、例えば管理者によって許可される、特定のグループのみがアクセスできる関連リソース(インスタンス、仮想クラウドネットワーク、ブロックボリュームなど)のコレクションである。顧客がクラウドサービスにサインアップすると、CSPは顧客のテナントを作成する。これは、顧客のすべてのクラウドリソースを保持するルートコンパートメントである。顧客は、テナント内に追加のコンパートメント(ルートコンパートメント)と対応するポリシーとを作成して、各コンパートメント内のリソースへのアクセスを制御できる。対照的に、IDCSシステムでは、ユーザおよびグループの分離単位を本明細書ではストライプと呼ぶ。具体的には、ストライプは、ユーザまたはユーザのグループがそのクラウドリソースにアクセスできるコンテナである。
【0025】
いくつかの実施形態によれば、第1のIAMシステムおよび(第1のIAMシステムとは異なる)第2のIAMシステムから統合IAMシステムを生成する際に、第1のIAMシステムに関連付けられている顧客テナント内にリソースが作成される。リソースは、本明細書ではドメインと呼ばれる。後で説明するように、ドメインは、顧客がIAMシステム内の自分のテナント内から、IDCSシステム内のIDCSストライプなどの自分のリソースを直接管理する方法を提供する。ドメインには、IDCSストライプの完全な機能セットが包含される。ポリシーはIAMシステム内で確立でき、IDCSストライプIDを参照してリソースへのアクセスを認可できる。前述の連携プロセスを実行する要件を回避するには、本開示の実施形態は、例えばIDCSシステムからIDプロバイダ(IDP)をインポートし、インポートされるIDPをIAMシステムの顧客テナント内のリソースとして提供する技術を提供する。上述のアプローチは、任意の2つの別個のIDシステムから統合IDおよびアクセス管理システムを生成する際に利用できることが理解される。
【0026】
いくつかの実施形態によれば、IDドメイン(すなわち、第2のIAMシステムの埋め込みIDプロバイダを含むドメイン)が各顧客テナントに組み込まれ、既存のユーザおよびグループがIDドメインに移動される。例えば、IDCSシステムのストライプに含まれるユーザ/グループは、OCI IAMに関連付けられている顧客のテナント内に作成されるIDドメインに移動できる。さらに、顧客は追加のドメイン(つまり、セカンダリドメイン)を作成することができる。つまり、顧客アカウントにはデフォルトのドメインがプロビジョニングされ、追加のドメインを管理するためのパブリックAPIが提供される。したがって、顧客アカウントはIDCS連携でプロビジョニングされなくなり(つまり、顧客アカウントは連携プロセスを実行する必要がなく)、顧客は統合IAMシステム内で単一のエンティティとして存在する。
【0027】
統合IAMシステムを作成する際に、ドメインレベルでのユーザ/グループの分離が得られ、これにより、顧客は自分のユーザ/グループを分離できるようになる。具体的には、IDドメインは、CSPのすべてのクラウド製品にわたって使用できる単一の統合IDを送達する。顧客は、さまざまなアプリケーション(IaaS、PaaS、およびSaaSなど)にわたって同じIDを再利用し、シンプルかつ強力な認可制御を作成して、企業全体のすべてのクラウドアプリケーションを管理できる。言い換えれば、顧客はそのすべてのユーザとグループに対して、完全な特徴を備えたクラウドIDプロバイダの機能を利用できる。また、顧客は複数のIDドメインを作成して、そのIaaS、PaaS、およびSaaSユーザを管理および分離し、災害復旧システムを実装することもできる。
【0028】
図1は、さまざまな実施形態によるIDドメインを示すブロック図を示す。いくつかの実施形態によれば、統合IDおよびアクセス管理(IAM)システムは、第1のIAMシステムおよび第2のIAMシステムから生成される。例えば、第2のIAMシステム、例えばIDCSシステムに関連付けられているIDプロバイダ(およびその関連機能)は、統合IAMシステムを生成するために第1のIAMシステム内に組み込まれる。統合IAMシステムを生成するには、第1のIAMシステムに関連付けられている顧客テナント内にリソースが作成される。作成されるリソースは、本明細書ではドメインと呼ばれる。さらに、第2のIAMシステムのIDプロバイダは、第1のIAMシステムで作成されるドメイン内に埋め込まれる。(第2のIAMシステムの)埋め込みIDプロバイダを含むドメインを、本明細書ではIDドメインと呼ぶ。したがって、統合IAMシステムは、第1のIAMシステムが第2のIAMシステムと連携する必要がなく、つまり、第1のIAMシステムと第2のIAMシステムの両方のシステムにわたって使用できるIDフレームワークを提供する。
【0029】
図1に示されるように、第1のIAMシステムに関連付けられている顧客テナント101は、デフォルトIDドメイン102、ネットワークソース決定器104、デフォルトポリシー103、およびコンパートメント105を含む。いくつかの実施形態によれば、コンパートメント105は、そのコンパートメント内に作成されるリソース(例えば、コンピューティング、記憶装置、ネットワーク、負荷バランサ)へのアクセスを編成および制御するためにインスタンス化される論理コンテナに対応する。いくつかの実施形態では、コンパートメント105は、外部IDプロバイダをホストするために作成されるドメイン(すなわち、リソース)を含む。換言すれば、第2のIAMシステムのIDプロバイダが、作成されるドメインに埋め込まれて、IDドメイン106を形成する。さらに、IDドメイン106は、ドメイン内のリソースまたは顧客テナントに含まれるリソースへの(ドメインに含まれるユーザの)アクセス権を管理する1つまたは複数のルールを含むことができるポリシー107に関連付けられている。IDドメイン106に含まれる構成要素108は、IDドメイン106に含めることができる構成要素の例示的なリストを表すことに留意されたい。ここでは、これらの各構成要素について詳しく説明する。
【0030】
いくつかの実施形態によれば、各顧客テナント101は、顧客テナントが作成されるときにプロビジョニングされるデフォルトIDドメイン102を含む。最初に、顧客テナント101の作成時に、デフォルトIDドメイン102は、単一のユーザ(例えば、顧客テナントを作成した管理者)を含むグループを含む。デフォルトIDドメイン102は、デフォルトポリシー103に関連付けられている。デフォルトポリシー103は、ユーザ(例えば、デフォルトIDドメイン102に含まれる管理者)に、顧客テナント101内のすべてのリソースへの完全なアクセスを許可する。デフォルトIDドメイン102およびデフォルトポリシー103の各々は、ユーザ、アクセス権などに関する他の追加情報を含み得ることが理解される。その他の付加情報の詳細については、
図2を参照して後述する。
【0031】
顧客テナント101には、ネットワークソース決定器104が含まれる。ネットワークソース決定器104は、顧客テナント101に向けられる要求を発行するソースを認定するように構成されている。換言すれば、ネットワークソース決定器104は、要求を発行するエンティティ(例えば、ユーザ)に関連する情報を確認し、いくつかの条件、例えば、要求のIPアドレスが事前に決定されたIPアドレスのセットを発信元とすること、を満たすユーザに関連する情報に基づいて、ユーザへのアクセスを許可する。顧客テナント101のコンパートメントに含まれるポリシー107は、コンパートメント105に向けられる要求を処理する際にネットワークソース決定器104を参照できることに留意されたい。
【0032】
図1に示されるように、IDドメインに含まれる構成要素108は、アプリケーション111、許可モジュール112、ユーザグループ113、ユーザ114、アプリケーション役割115、動的グループ116、サインインポリシー117、IDプロバイダ118、および資格情報のセット119を含む。構成要素108は、現在、第1のIAMシステムの顧客テナント内のドメイン内に組み込まれている第2のIAMシステムのIDプロバイダ(例えば、AzureアクティブディレクトリインスタンスまたはOkta IDプロバイダインスタンス)に属することが理解される。IDプロバイダ118は、ユーザ114またはユーザのグループ113の作成、ユーザ資格情報119の管理をプロビジョニングし、クラウドインフラストラクチャのリソースへのユーザ(またはユーザのグループ)のアクセスを許可する。
【0033】
いくつかの実施形態によれば、アプリケーション111、例えばウェブアプリケーションを構築し、IDドメイン106にさらに登録することができる。すなわち、アプリケーション111は、認可および認証要件についてIDドメイン106に依存する。アプリケーション111は、許可モジュール112内で維持できるさまざまなアプリケーション役割115(例えば、読み取り動作のみの許可を有する第1の役割、アプリケーションの態様を変更する許可を有する第2の役割)を含むことができる。このような役割は、IDドメイン106によって、監視され、アプリケーションに関して異なるユーザに割り当てることができる。
【0034】
いくつかの実施形態によると、クラウドインフラストラクチャに含まれるリソースには、コンピューティングインスタンス、ブロック記憶ボリューム、仮想クラウドネットワーク(VCN)、サブネット、および/またはルートテーブルなどのリソースが含まれ得る。各リソースには、一意の資格情報を割り当てることができる。リソースに関連付けられているそのような資格情報は、本明細書ではリソースプリンシパルまたはインスタンスプリンシパルと呼ばれる。このようなリソース(またはインスタンス)プリンシパルのグループを、本明細書では動的グループ116と呼ぶ。動的グループ116は、ユーザをユーザグループにグループ化するのと同様の方法で、プリンシパルアクターとしてリソースのグループ化(例えば、何らかのリソース属性一致ポリシーに基づいて)を提供することが理解される。動的グループ116はアプリケーション111に割り当てられ得る。いくつかの実施形態では、サインインポリシー117は、ユーザの位置、すなわちユーザのネットワークソースに基づいて、異なるユーザに対して異なるサインインルールを確立することができる。例えば、1つのサインインルールは、顧客テナントへのアクセス要求の発信元であるユーザのネットワークソース(例えば、IPアドレス)に基づいて、顧客テナント内のリソースにアクセスするために、ユーザに多要素認証の実行を要求し得る。
【0035】
このようにして、第2のIAMシステム(例えば、IDCS)のIDプロバイダをインポートし、それを第1のIAMシステムに関連付けられている顧客テナントのドメイン内に埋め込むことで、両方のシステムで使用できる統合IAMシステムを提供する。したがって、IAMシステム(例えば、第1のIAMシステム)を異なるシステム(例えば、第2のIAMシステム)のIDプロバイダと連携させるのではなく、本開示の態様は、以前に必要であった連携プロセスを回避するために統合IAMシステムを生成する機構を提供し、別のシステムが提供するリソースにユーザがアクセスできるようにする。
【0036】
ここで
図2を参照すると、さまざまな実施形態による例示的な顧客テナントを示すブロック図が示される。
図2に示されるように、顧客テナント200は、デフォルトIDドメイン202、デフォルトポリシー203、ネットワークソース決定器204、および複数のコンパートメント、例えばコンパートメント205、215、および225を含む。デフォルトIDドメイン202は、顧客テナント200が作成されるときにプロビジョニングされる。最初に、顧客テナント200の作成時に、デフォルトIDドメイン202は、単一のユーザ(例えば、顧客テナントを作成した管理者)を含むグループを含む。デフォルトIDドメイン202は、デフォルトポリシー203に関連付けられている。デフォルトポリシー203は、ユーザ(例えば、デフォルトIDドメイン202に含まれる管理者)に、顧客テナント101内のすべてのリソースへの完全なアクセスを許可する。前述したように、デフォルトIDドメイン(およびデフォルトポリシー)には追加情報が含まれ得る。例えば、いくつかの実施形態によれば、顧客テナント200の作成時に、1人または複数の他のユーザがデフォルトIDドメイン202に追加され得る。同様に、さまざまな新しいポリシーをデフォルトポリシー203に含めることができ、他のドメインのユーザが顧客テナント内のリソースにアクセスできるようになる。
【0037】
いくつかの実施形態によれば、統合IAMシステムは、顧客のユーザを管理するために顧客テナント内に別個のドメインを作成することをプロビジョニングする。例えば、
図2に示されるように、顧客テナント200は複数のコンパートメントを含み、各コンパートメントはIDドメインおよびそれに関連付けられているポリシーを含む。例えば、コンパートメント205にはIDドメイン206とポリシー207が含まれ、一方、コンパートメント215にはIDドメイン216とポリシー217が含まれ、コンパートメント225にはIDドメイン226とポリシー227が含まれる。
図2に示すようなコンパートメントの構成は、決して本開示の範囲を限定するものではないことに留意されたい。むしろ、構成に対する修正は十分に本開示の範囲内に含まれる。例えば、特定のコンパートメント(例えば、コンパートメント205)では、そのコンパートメント内に単一のIDドメイン(すなわち、IDドメイン206)を有することに限定されない。むしろ、コンパートメントには複数のIDドメインを含めることができる。例えば、コンパートメント内に2つ(またはそれ以上)のドメインを作成できる。その場合、これらのドメインの各々のユーザは、それらのドメイン内のリソースまたは顧客テナント200内の他のリソースに関して異なるアクセス権を持つことができる。
【0038】
さらに、第1のIAMシステムが対話する複数のIDプロバイダの各IDプロバイダは、顧客のテナント200内のドメイン(コンパートメントに含まれる)を有するリソースとしてインポートされ、提供され得ることが理解される。このようにして、サードパーティIDPなど、さまざまなタイプのIDプロバイダ(IDP)と連携する第1のIAMシステムではなく、さまざまなIDPをインポートし、顧客テナント内のリソースとして提供できる。このようにして、第1のIAMシステムは、異なるIDプロバイダと個別に連携する必要性を回避できる。
【0039】
図3は、いくつかの実施形態による統合IAMシステムのアーキテクチャを示すブロック図を示す。統合IAMシステムのアーキテクチャには、制御プレーン310とデータプレーン320が含まれる。制御プレーン310は、IAM制御プレーン301に関連付けられている第1のエンドポイント303と、IDCSインスタンス302に関連付けられている(すなわち、顧客テナント内に作成されるドメインに対応する)複数の第2のエンドポイント305とを含む。IAM制御プレーン301はキー値データベース(例えば、KievDB)を含み、IDCSインスタンス302はドメインシャードに関連付けられていることが理解される。データプレーン320は、負荷バランサ321、複数のデータプレーンホスト323、ルーティング層325、および複数のドメインキャッシュシャード327を含む。複数のデータプレーンホスト323は、データプレーンホスト323A、323B、および323Cを含む。各データプレーンホストは、対応するデータベース(DB)に関連付けられている。複数のドメインキャッシュシャード327は、ドメインキャッシュシャード327A、327B、327C、および327Dを含む。
図3に示すように、データプレーンホストの数およびドメインキャッシュシャードの数は、例示のみを目的としており、本開示の範囲を限定するものではないことに留意されたい。データプレーンホストおよびドメインキャッシュシャードの数は、
図3に示されるものよりも多くても少なくてもよい。
【0040】
図3に示されるように、KievDBおよびドメインシャードの各々からの情報は、データプレーン320に含まれるそれぞれのデータベースに複製される。いくつかの実施形態によって、(制御プレーン内の)ドメインシャードに含まれる情報は、複製され、データプレーン320内のドメインキャッシュシャードに記憶される。具体的には、一実装形態では、ドメインシャードに含まれるユーザ情報はいくつかの部分に分割されてもよく、各部分はデータプレーン320内のキャッシュ(すなわち、ドメインキャッシュシャード)に記憶されてもよい。
【0041】
いくつかの実施形態によれば、IAM制御プレーン301に関連付けられている第1のエンドポイント303は、顧客テナントにおける新しいドメインの作成に関する要求を受信するように構成されている。顧客テナント内にドメインが作成されると、新しく構築されたドメインのエンドポイントが複数の第2のエンドポイント305に追加される。すなわち、各ドメインは、制御プレーン310内の対応するエンドポイント(複数の第2のエンドポイント305のうちの1つ)を有する。ドメインに関して実行される動作に関連する要求は、制御プレーン310内のドメインの対応する第2のエンドポイントに向けられる。
【0042】
いくつかの実施形態によれば、ユーザによって発行される要求が特定の第2のエンドポイントに向けられる場合、最初に、対応するドメイン、すなわちドメイン302によって要求を発行するユーザを認可する試みが行われる。具体的には、要求を発行したユーザがドメインに関連付けられているユーザのグループに属している場合、そのユーザは、制御プレーン310、すなわち、ユーザが属する対応するドメイン302によって認可され得る。しかし、要求を発行したユーザがドメインに含まれないグループに属している場合、つまり、ユーザが別のドメインに属している場合、要求は制御プレーン310によってデータプレーン320に関連付けられているエンドポイント307に転送される。
【0043】
要求がエンドポイント307に転送されると、データプレーン320の負荷バランサ321は、要求を処理するために1つのデータプレーンホストを選択する。負荷バランサ321は、トラフィック負荷(すなわち、データプレーン320によって処理される要求)がデータプレーンホスト間で均等に分散されるような方法で、データプレーンホストのうちの1つ(例えば、DP323A)を選択し得ることが理解される。制御プレーンによって転送される要求を処理する際、データプレーンホスト(例えば、DP323A)はルーティング層325と通信して、ドメインキャッシュシャードの1つからユーザに関する必要な情報を取得する。いくつかの実施形態によれば、ルーティング層は、ユーザとキャッシュID(ユーザ情報が記憶されるドメインキャッシュシャードに対応する)をマッピングするマッピング情報を維持することができる。このようにして、データプレーンホストは、ルーティング層325と連携して、ユーザを認可するために関連するユーザ情報(例えば、ユーザに関連するポリシー)を取得する。統合IAMシステムのアーキテクチャは、IaaSサービスに関する認可要求を受信するように構成されているIaaSサービスエンドポイント333をさらに含む。このような要求は、認可の目的でデータプレーン320に向けられることに留意されたい。さらに、PaaSアプリケーションインスタンス331(例えば、
図1のアプリケーション111)は、認可/認証の目的で単一サインオンモジュール329と通信する。具体的には、単一サインオンモジュール329は、データプレーン320に含まれるドメインシャードの1つから所望のユーザ情報を取得して、アプリケーションインスタンスを利用/開始するユーザを認可する。
【0044】
図4Aは、いくつかの実施形態による統合IDおよびアクセス管理(IAM)システムを生成する際に実行されるステップを示すフローチャートを示す。
図4Aに示す処理は、ハードウェアまたはそれらの組み合わせを使用して、それぞれのシステムの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装され得る。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。
図4Aに示され、以下に説明される方法は、例示的なものであり、限定的なものではない。
図4Aは、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これに限定されるものではない。特定の代替実施形態では、処理は何らかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。説明のために、
図4Aのフローチャートのステップは、第1のIAM(例えば、OCIのIAM)システムおよび第2のIAMシステム(例えば、IDCS)から統合IAMシステムを生成することを参照して説明される。
【0045】
プロセスはステップ401で始まり、統合IAMシステムが第1のIAMシステムおよび第2のIAMシステムから生成される。第2のIAMシステムは第1のIAMシステムとは異なることに留意されたい。統合IAMシステムの生成に含まれるステップには、それぞれ401Aおよび401Bとラベル付けされる2つのサブステップが含まれる。ステップ401Aでは、第1のIAMシステムに関連付けられている顧客テナント内にドメイン(すなわち、リソース)が作成される。さらに、ステップ401Bでは、第2のIAMシステムのIDプロバイダが、ステップ401Aで作成されるドメイン内に埋め込まれる。第2のIAMシステムのIDプロバイダをドメイン(顧客テナントに含まれる)に埋め込むことによって、IDドメイン(例えば、
図1のIDドメイン106)の作成がもたらされる。そうすることで、第1のIAMシステムが第2のIAMシステムと連携する必要がなく、両方のシステム、つまり第1のIAMシステムと第2のIAMシステムにわたって使用できるIDフレームワークが提供される。
【0046】
その後、プロセスはステップ403に進み、そこで統合IAMシステムは、第2のIAMシステムに関連付けられているリソースに関して動作を実行する要求をユーザから受信する。いくつかの実施形態によれば、要求は、作成、読み取り、更新、または削除(CRUD)動作であってもよい。その後、プロセスはステップ405に進み、ユーザが統合IAMシステムによって認証されることに成功したことに応じて要求が実行される。すなわち、ユーザが動作を実行するための十分な特権を持っているかどうかが決定される。
【0047】
図4Bは、いくつかの実施形態による、統合ID管理システムによるユーザ要求を認可するプロセスを示すフローチャートを示す。
図4Bに示す処理は、ハードウェアまたはそれらの組み合わせを使用して、それぞれのシステムの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装され得る。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。
図4Bに示され、以下に説明される方法は、例示的なものであり、限定的なものではない。
図4Bは、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これに限定されるものではない。特定の代替実施形態では、処理は何らかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
【0048】
プロセスはステップ451で開始し、統合IAMシステムが制御プレーン内の第1のエンドポイントで第1の要求を受信する。第1の要求は、顧客テナントに新しいドメインを作成するためにユーザが発行した要求に対応する。
図3を参照すると、第1の要求はエンドポイント303で受信され得る。ステップ453では、要求に従って顧客テナント内にドメインが作成される。
【0049】
ステップ455では、ステップ453で作成されるドメインの制御プレーン内に第2のエンドポイントが生成される。
図3を参照すると、新しいエンドポイント(すなわち、新しく作成されるドメインに対応する第2のエンドポイント)が生成され、複数のエンドポイント305に追加される。言い換えれば、顧客のテナント内の各ドメインには、制御プレーン内に対応するエンドポイントがあるため、ドメインに関連する要求は対応するエンドポイントに向けられる。その後、ステップ457で、第2の要求が第2のエンドポイントで受信される。
【0050】
ステップ458において、第2のエンドポイントに対応するドメインは、第2の要求を発行したユーザを認可しようと試みる。いくつかの実施形態によれば、第2の要求を発行したユーザがドメインに含まれるユーザのグループに属している場合、そのユーザはドメイン自体によって認可されてもよい。しかし、(第2の要求を発行する)ユーザがドメイン外にいる場合、第2の要求は認可の目的でデータプレーンに転送される。さらに、ステップ461で、第2の要求が首尾よく認可されたかどうかについての決定が行われる。応答が肯定的である場合、プロセスはステップ467に進み、そうでない場合、プロセスはステップ459に進む。
【0051】
ステップ459では、第2の要求が認可の目的でデータプレーンに転送される。その後、ステップ461で、統合IAMシステムのデータプレーンが第2の要求を処理する。具体的には、
図3を参照すると、データプレーンホストの1つ(例えば、データプレーンホスト323A)は、ルーティング層325と通信して、ドメインキャッシュシャードのうちの1つ(例えば、ドメインキャッシュシャード327A~327D)から(ユーザの)情報を取得する。ドメインキャッシュシャードの1つから取得した情報に基づいて、データプレーンホストは第2の要求を評価する。さらに、ステップ467で、統合IAMシステムは、(第2の要求を発行した)ユーザが認可されることに成功したことに応答して、第2の要求を実行する。
【0052】
サービスとしてのインフラストラクチャのアーキテクチャの例
上で述べたように、サービスとしてのインフラストラクチャ(IaaS)は、クラウドコンピューティングの特定のタイプの1つである。IaaSは、パブリックネットワーク(インターネットなど)経由で仮想化されるコンピューティングリソースを提供するように構成できる。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャ構成要素(例えば、サーバ、記憶装置、ネットワークノード(例えばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えばハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、これらのインフラストラクチャ構成要素に付随するさまざまなサービス(例えば、請求、監視、ロギング、セキュリティ、負荷分散、およびクラスタリング)を提供することもできる。したがって、これらのサービスはポリシー推進型であり得るため、IaaSユーザは負荷分散を推進するポリシーを実装して、アプリケーションの可用性と性能を維持できる可能性がある。
【0053】
場合によっては、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用してアプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザはIaaSプラットフォームにログインして、仮想マシン(VM)の作成、各VMへのオペレーティングシステム(OS)のインストール、データベースなどのミドルウェアの展開、ワークロードとバックアップ用の記憶バケットの作成、さらにはエンタープライズソフトウェアをそのVMにインストールすることができる。その後、顧客はプロバイダのサービスを使用して、ネットワークトラフィックのバランス、アプリケーションの問題のトラブルシューティング、性能の監視、災害復旧の管理などのさまざまな機能を実行できる。
【0054】
ほとんどの場合、クラウドコンピューティングモデルはクラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSの提供(例えば、提供、レンタル、販売)を専門とするサードパーティサービスであってもかまわないが、そうである必要はない。エンティティはプライベートクラウドを展開して、独自のインフラストラクチャサービスプロバイダになることも選択できる。
【0055】
いくつかの例では、IaaS展開は、新しいアプリケーション、またはアプリケーションの新しいバージョンを、準備されているアプリケーションサーバなどに配置するプロセスである。これには、サーバを準備するプロセス(例えば、ライブラリ、デーモンのインストール)も含まれ得る。これは多くの場合、ハイパーバイザ層(例えば、サーバ、記憶装置、ネットワークハードウェア、および仮想化)の下のクラウドプロバイダによって管理される。したがって、顧客は、(OS)、ミドルウェア、および/またはアプリケーション展開(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップできる)など)などの取り扱いに責任を負うことができる。
【0056】
いくつかの例では、IaaSプロビジョニングは、使用するコンピュータまたは仮想ホストを取得し、それらに必要なライブラリまたはサービスをインストールすることさえも指し得る。ほとんどの場合、展開にはプロビジョニングが含まれていないため、最初にプロビジョニングを実行する必要があり得る。
【0057】
場合によっては、IaaSプロビジョニングに関して2つの異なる問題が存在する。まず、何かを実行する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、すべてがプロビジョニングされた後に、既存のインフラストラクチャを進化させるという課題がある(例えば、新しいサービスの追加、サービスの変更、サービスの削除)。場合によっては、インフラストラクチャの構成を宣言的に画定できるようにすることで、これら2つの課題に対処できる場合がある。言い換えれば、インフラストラクチャ(例えば、どの構成要素が必要か、どのように対話するか)は1つまたは複数の構成ファイルによって画定できる。したがって、インフラストラクチャの全体的なトポロジ(例えば、どのリソースがどのリソースに依存するか、およびそれぞれがどのように連携するかなど)を宣言的に記述することができる。場合によっては、トポロジが画定されると、構成ファイルに記述されているさまざまな構成要素を作成および/または管理するワークフローを生成できる。
【0058】
いくつかの例では、インフラストラクチャは、相互接続されている多くの要素を有し得る。例えば、コアネットワークとしても知られる、1つまたは複数の仮想プライベートクラウド(VPC)(例えば、構成可能および/または共有コンピューティングリソースの潜在的にオンデマンドのプール)が存在し得る。いくつかの例では、ネットワークのセキュリティがどのように設定されるかを画定するためにプロビジョニングされる1つまたは複数のセキュリティグループルールと1つまたは複数の仮想マシン(VM)が存在する場合もある。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングできる。より多くのインフラストラクチャ要素が望まれたり追加されたりするにつれて、インフラストラクチャは段階的に進化し得る。
【0059】
場合によっては、さまざまな仮想コンピューティング環境にわたるインフラストラクチャコードの展開を可能にするために、継続的展開技術が使用されてもよい。さらに、説明されている技術により、これらの環境内でのインフラストラクチャ管理が可能になる。いくつかの例では、サービスチームは、1つまたは複数の、しかし多くの場合、多くの異なる生産環境(例えば、さまざまな異なる地理的位置にまたがり、場合によっては全世界に及ぶ)に展開することが望ましいコードを書くことができる。しかし、いくつかの例では、コードを展開するインフラストラクチャを最初にセットアップする必要がある。場合によっては、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニングすることができ、および/または展開ツールを利用して、インフラストラクチャがプロビジョニングされた後にコードを展開することができる。
【0060】
図5は、少なくとも1つの実施形態による、IaaSアーキテクチャのパターン例を示すブロック
図500である。サービスオペレータ502は、仮想クラウドネットワーク(VCN)506およびセキュアホストサブネット508を含むことができるセキュアホストテナント504に通信可能に結合することができる。いくつかの例では、サービスオペレータ502は、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ゲームコンソール)、および/またはVCN506および/またはインターネットにアクセスできるネットワークを介して通信できるパーソナルメッセージング装置などである。
【0061】
VCN506は、SSHVCN512に含まれるLPG510を介してセキュアシェル(SSH)VCN512に通信可能に結合することができるローカルピアリングゲートウェイ(LPG)510を含むことができる。SSHVCN512は、SSHサブネット514を含むことができ、SSHVCN512は、制御プレーンVCN516に含まれるLPG510を介して制御プレーンVCN516に通信可能に結合することができる。また、SSHVCN512は、LPG510を介してデータプレーンVCN518に通信可能に結合することができる。制御プレーンVCN516およびデータプレーンVCN518は、IaaSプロバイダが所有および/または動作できるサービステナント519に含めることができる。
【0062】
制御プレーンVCN516は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの一部)として機能する制御プレーン非武装地帯(DMZ)層520を含むことができる。DMZベースのサーバは責任が制限されており、セキュリティ侵害を阻止するのに役立ち得る。さらに、DMZ層520は、1つまたは複数のロードバランサ(LB)サブネット522、アプリサブネット526を含むことができる制御プレーンアプリ層524、制御プレーンデータ層528を含むことができ、これには、データベース(DB)サブネット530(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含めることができる。制御プレーンDMZ層520に含まれるLBサブネット522は、制御プレーンアプリ層524に含まれるアプリサブネット526および制御プレーンVCN516に含まれ得るインターネットゲートウェイ534に通信可能に結合することができ、アプリサブネット526は、制御プレーンデータ層528に含まれるDBサブネット530、ならびにサービスゲートウェイ536およびネットワークアドレス変換(NAT)ゲートウェイ538に通信可能に結合することができる。制御プレーンVCN516は、サービスゲートウェイ536およびNATゲートウェイ538を含むことができる。
【0063】
制御プレーンVCN516は、アプリサブネット526を含むことができるデータプレーンミラーアプリ層540を含むことができる。データプレーンミラーアプリ層540に含まれるアプリサブネット526は、コンピューティングインスタンス544を実行できる仮想ネットワークインターフェイスコントローラ(VNIC)542を含むことができる。コンピューティングインスタンス544は、データプレーンミラーアプリ層540のアプリサブネット526を、データプレーンアプリ層546に含めることができるアプリサブネット526に通信可能に結合することができる。
【0064】
データプレーンVCN518は、データプレーンアプリ層546、データプレーンDMZ層548、およびデータプレーンデータ層550を含むことができる。データプレーンDMZ層548は、データプレーンアプリ層546のアプリサブネット526およびデータプレーンVCN518のインターネットゲートウェイ534に通信可能に結合され得るLBサブネット522を含むことができる。アプリサブネット526は、データプレーンVCN518のサービスゲートウェイ536およびデータプレーンVCN518のNATゲートウェイ538に通信可能に結合することができる。データプレーンデータ層550は、データプレーンアプリ層546のアプリサブネット526に通信可能に結合できるDBサブネット530を含むこともできる。
【0065】
制御プレーンVCN516およびデータプレーンVCN518のインターネットゲートウェイ534は、パブリックインターネット554に通信可能に結合され得るメタデータ管理サービス552に通信可能に結合され得る。パブリックインターネット554は、制御プレーンVCN516およびデータプレーンVCN518のNATゲートウェイ538に通信可能に接続することができる。制御プレーンVCN516およびデータプレーンVCN518のサービスゲートウェイ536は、クラウドサービス556に通信可能に結合することができる。
【0066】
いくつかの例では、制御プレーンVCN516またはデータプレーンVCN518のサービスゲートウェイ536は、パブリックインターネット554を経由せずに、クラウドサービス556へのアプリケーションプログラミングインターフェイス(API)呼び出しを行うことができる。サービスゲートウェイ536からクラウドサービス556へのAPI呼び出しは一方向であり得る:サービスゲートウェイ536はクラウドサービス556へのAPI呼び出しを行うことができ、クラウドサービス556は要求されるデータをサービスゲートウェイ536に送信することができる。しかし、クラウドサービス556は、サービスゲートウェイ536へのAPI呼び出しを開始できない場合がある。
【0067】
いくつかの例では、セキュアホストテナント504は、サービステナント519に直接接続することができ、そうでなければ分離され得る。セキュアホストサブネット508は、LPG510を介してSSHサブネット514と通信することができ、LPG510は、そうでなければ分離されるシステムを介した双方向通信を可能にすることができる。セキュアホストサブネット508をSSHサブネット514に接続すると、セキュアホストサブネット508にサービステナント519内の他のエンティティへのアクセスを与えることができる。
【0068】
制御プレーンVCN516により、サービステナント519のユーザが所望のリソースをセットアップまたはプロビジョニングできるようにすることができる。制御プレーンVCN516内にプロビジョニングされる所望のリソースは、データプレーンVCN518内に展開または使用され得る。いくつかの例では、制御プレーンVCN516はデータプレーンVCN518から分離することができ、制御プレーンVCN516のデータプレーンミラーアプリ層540は、データプレーンミラーアプリ層540およびデータプレーンアプリ層546に含まれることができるVNIC542を介して、データプレーンVCN518のデータプレーンアプリ層546と通信することができる。
【0069】
いくつかの例では、システムのユーザまたは顧客は、要求をメタデータ管理サービス552に通信することができるパブリックインターネット554を介して、例えば作成、読み取り、更新、または削除(CRUD)動作などの要求を行うことができる。メタデータ管理サービス552は、インターネットゲートウェイ534を介して要求を制御プレーンVCN516に通信することができる。この要求は、制御プレーンDMZ層520に含まれるLBサブネット522によって受信され得る。LBサブネット522は、要求が有効であると決定することができ、この決定に応答して、LBサブネット522は、制御プレーンアプリ層524に含まれるアプリサブネット526に要求を送信することができる。要求が検証され、パブリックインターネット554への呼び出しが必要な場合、パブリックインターネット554への呼び出しは、パブリックインターネット554への呼び出しを行うことができるNATゲートウェイ538に送信され得る。要求によって記憶されることが望ましい場合があるメモリは、DBサブネット530に記憶できる。
【0070】
いくつかの例では、データプレーンミラーアプリ層540は、制御プレーンVCN516とデータプレーンVCN518との間の直接通信を容易にすることができる。例えば、構成に対する変更、更新、または他の適切な修正を、データプレーンVCN518に含まれるリソースに適用することが望ましい場合がある。VNIC542を介して、制御プレーンVCN516は、データプレーンVCN518に含まれるリソースと直接通信することができ、それにより、データプレーンVCN518に含まれるリソースに対する構成の変更、更新、または他の適切な修正を実行することができる。
【0071】
いくつかの実施形態では、制御プレーンVCN516およびデータプレーンVCN518は、サービステナント519に含めることができる。この場合、システムのユーザまたは顧客は、制御プレーンVCN516またはデータプレーンVCN518のいずれも所有または動作することはできない。代わりに、IaaSプロバイダは、制御プレーンVCN516およびデータプレーンVCN518を所有または動作することができ、これらは両方ともサービステナント519に含まれ得る。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースと対話することを防止し得るネットワークの分離を可能にすることができる。また、この実施形態により、システムのユーザまたは顧客は、記憶のために所望のレベルのセキュリティを持たない可能性があるパブリックインターネット654に依存する必要なく、データベースをプライベートに記憶することができる。
【0072】
他の実施形態では、制御プレーンVCN516に含まれるLBサブネット522は、サービスゲートウェイ536から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN516およびデータプレーンVCN518は、パブリックインターネット554を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成され得る。顧客が使用するデータベースはIaaSプロバイダによって制御され、パブリックインターネット554から隔離され得るサービステナント519に記憶され得るため、IaaSプロバイダの顧客は、この実施形態を望む可能性がある。
【0073】
図6は、少なくとも1つの実施形態による、IaaSアーキテクチャの別のパターン例を示すブロック
図600である。サービスオペレータ602(例えば、
図5のサービスオペレータ502)は、セキュアホストテナント604(例えば、
図5のセキュアホストテナント504)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)606(例えば、
図5のVCN506)およびセキュアホストサブネット608(例えば、
図5のセキュアホストサブネット508)を含むことができる。VCN606は、ローカルピアリングゲートウェイ(LPG)610(例えば、
図5のLPG510)を含むことができ、これは、SSHVCN612に含まれるLPG510を介してセキュアシェル(SSH)VCN612(例えば、
図5のSSHVCN512)に通信可能に結合することができる。SSHVCN612は、SSHサブネット614(例えば、
図5のSSHサブネット514)を含むことができ、SSHVCN612は、制御プレーンVCN616に含まれるLPG610を介して、制御プレーンVCN616(例えば、
図5の制御プレーンVCN516)に通信可能に結合することができる。制御プレーンVCN616は、サービステナント619(例えば、
図5のサービステナント519)に含めることができ、データプレーンVCN618(例えば、
図5のデータプレーンVCN518)は、システムのユーザまたは顧客によって所有または動作され得る顧客テナント621に含めることができる。
【0074】
制御プレーンVCN616は、LBサブネット622(例えば、
図5のLBサブネット522)を含むことができる制御プレーンDMZ層620(例えば、
図5の制御プレーンDMZ層520)、アプリサブネット626(例えば、
図5のアプリサブネット526)を含むことができる制御プレーンアプリ層624(例えば、
図5の制御プレーンアプリ層524)、データベース(DB)サブネット630(例えば、
図5のDBサブネット530と同様)を含むことができる制御プレーンデータ層628(例えば、
図5の制御プレーンデータ層528)を含むことができる。制御プレーンDMZ層620に含まれるLBサブネット622は、制御プレーンアプリ層624に含まれるアプリサブネット626と、制御プレーンVCN616に含まれ得るインターネットゲートウェイ634(例えば、
図5のインターネットゲートウェイ534)とに通信可能に結合することができ、アプリサブネット626は、制御プレーンデータ層628に含まれるDBサブネット630、ならびにサービスゲートウェイ636(例えば、
図5のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ638(例えば、
図5のNATゲートウェイ538)に通信可能に結合することができる。制御プレーンVCN616は、サービスゲートウェイ636およびNATゲートウェイ638を含むことができる。
【0075】
制御プレーンVCN616は、アプリサブネット626を含むことができるデータプレーンミラーアプリ層640(例えば、
図5のデータプレーンミラーアプリ層540)を含むことができる。データプレーンミラーアプリ層640に含まれるアプリサブネット626は、コンピューティングインスタンス644(例えば、
図5のコンピューティングインスタンス544と同様)を実行できる仮想ネットワークインターフェイスコントローラ(VNIC)642(例えば、542のVNIC)を含むことができる。コンピューティングインスタンス644は、データプレーンミラーアプリ層640のアプリサブネット626とアプリサブネット626との間の通信を容易にすることができ、これは、データプレーンミラーアプリ層640に含まれるVNIC642およびデータプレーンアプリ層646に含まれるVNIC642を介して、データプレーンアプリ層646(例えば、
図5のデータプレーンアプリ層546)に含まれることができる。
【0076】
制御プレーンVCN616に含まれるインターネットゲートウェイ634は、メタデータ管理サービス652(例えば、
図5のメタデータ管理サービス552)に通信可能に結合することができ、これは、パブリックインターネット654(例えば、
図5のパブリックインターネット554)に通信可能に結合することができる。パブリックインターネット654は、制御プレーンVCN616に含まれるNATゲートウェイ638に通信可能に結合することができる。制御プレーンVCN616に含まれるサービスゲートウェイ636は、クラウドサービス656(例えば、
図5のクラウドサービス556)に通信可能に結合することができる。
【0077】
いくつかの例では、データプレーンVCN618は、顧客テナント621に含まれることができる。この場合、IaaSプロバイダは、各顧客に対して制御プレーンVCN616を提供することができ、IaaSプロバイダは、各顧客に対して、サービステナント619に含まれる一意のコンピューティングインスタンス644をセットアップすることができる。各コンピューティングインスタンス644は、サービステナント619に含まれる制御プレーンVCN616と、顧客テナント621に含まれるデータプレーンVCN618との間の通信を可能にしてもよい。コンピューティングインスタンス644は、サービステナント619に含まれる制御プレーンVCN616内にプロビジョニングされるリソースが、顧客テナント621に含まれるデータプレーンVCN618内に展開されるか、そうでなければ使用されることを可能にし得る。
【0078】
他の例では、IaaSプロバイダの顧客は、顧客テナント621内に存在するデータベースを有し得る。この例では、制御プレーンVCN616は、アプリサブネット626を含むことができるデータプレーンミラーアプリ層640を含むことができる。データプレーンミラーアプリ層640はデータプレーンVCN618内に存在することができるが、データプレーンミラーアプリ層640はデータプレーンVCN618内に存在しなくてもよい。つまり、データプレーンミラーアプリ層640は、顧客テナント621にアクセスできるが、データプレーンミラーアプリ層640は、データプレーンVCN618に存在しなくてもよいし、IaaSプロバイダの顧客によって所有または動作されてもよい。データプレーンミラーアプリ層640は、データプレーンVCN618への呼び出しを行うように構成されてもよいが、制御プレーンVCN616に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN616内にプロビジョニングされるデータプレーンVCN618内のリソースを展開またはそうでなければ使用することを望む場合があり、データプレーンミラーアプリ層640は、顧客の所望の展開またはリソースの他の使用を容易にすることができる。
【0079】
いくつかの実施形態では、IaaSプロバイダの顧客は、データプレーンVCN618にフィルタを適用することができる。この実施形態では、顧客はデータプレーンVCN618が何にアクセスできるかを決定することができ、顧客はデータプレーンVCN618からパブリックインターネット654へのアクセスを制限することができる。IaaSプロバイダは、フィルタを適用したり、外部ネットワークまたはデータベースへのデータプレーンVCN618のアクセスを制御したりできない場合がある。顧客によるフィルタおよび制御を顧客テナント621に含まれるデータプレーンVCN618に適用すると、データプレーンVCN618を他の顧客およびパブリックインターネット654から分離するのに役立ち得る。
【0080】
いくつかの実施形態では、クラウドサービス656は、パブリックインターネット654上、制御プレーンVCN616上、またはデータプレーンVCN618上に存在しない可能性があるサービスにアクセスするために、サービスゲートウェイ636によって呼び出すことができる。クラウドサービス656と制御プレーンVCN616またはデータプレーンVCN618との間の接続は、ライブまたは継続的ではない可能性がある。クラウドサービス656は、IaaSプロバイダが所有または動作する別のネットワーク上に存在し得る。クラウドサービス656は、サービスゲートウェイ636から呼び出しを受信するように構成されてもよいし、パブリックインターネット654から呼び出しを受信しないように構成されてもよい。一部のクラウドサービス656は、他のクラウドサービス656から分離されてもよく、制御プレーンVCN616は、制御プレーンVCN616と同じ領域になくてもよいクラウドサービス656から分離されてもよい。例えば、制御プレーンVCN616は「領域1」に配置され、クラウドサービス「展開6」は領域1と「領域2」に配置され得る。展開6への呼び出しが、領域1にある制御プレーンVCN616に含まれるサービスゲートウェイ636によって行われた場合、その呼び出しは領域1の展開6に送信され得る。この例では、制御プレーンVCN616、または領域1の展開6は、領域2の展開6に通信可能に結合されていない、または通信していない可能性がある。
【0081】
図7は、少なくとも1つの実施形態による、IaaSアーキテクチャの別のパターン例を示すブロック
図700である。サービスオペレータ702(例えば、
図5のサービスオペレータ502)は、セキュアホストテナント704(例えば、
図5のセキュアホストテナント504)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)706(例えば、
図5のVCN506)およびセキュアホストサブネット708(例えば、
図5のセキュアホストサブネット508)を含むことができる。VCN706は、SSHVCN712(例えば、
図5のSSHVCN512)に含まれるLPG710を介してSSHVCN712に通信可能に結合され得るLPG710(例えば、
図5のLPG510)を含むことができる。SSHVCN712は、SSHサブネット714(例えば、
図5のSSHサブネット514)を含むことができ、SSHVCN712は、制御プレーンVCN716(例えば、
図5の制御プレーンVCN516)に含まれるLPG710を介して制御プレーンVCN716に通信可能に結合することができ、データプレーンVCN718(例えば、
図5のデータプレーン518)に含まれるLPG710を介してデータプレーンVCN718に通信可能に結合することができる。制御プレーンVCN716およびデータプレーンVCN718は、サービステナント719(例えば、
図5のサービステナント519)に含めることができる。
【0082】
制御プレーンVCN716は、ロードバランサ(LB)サブネット722(例えば、
図5のLBサブネット522)を含むことができる制御プレーンDMZ層720(例えば、
図5の制御プレーンDMZ層520)、アプリサブネット726(例えば、
図5のアプリサブネット526と同様)を含むことができる制御プレーンアプリ層724(例えば、
図5の制御プレーンアプリ層524)、DBサブネット730を含むことができる制御プレーンデータ層728(例えば、
図5の制御プレーンデータ層528)を含むことができる。制御プレーンDMZ層720に含まれるLBサブネット722は、制御プレーンアプリ層724に含まれるアプリサブネット726と、制御プレーンVCN716に含まれ得るインターネットゲートウェイ734(例えば、
図5のインターネットゲートウェイ534)とに通信可能に結合され得、アプリサブネット726は、制御プレーンデータ層728に含まれるDBサブネット730、サービスゲートウェイ736(例えば、
図5のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ738(例えば、
図5のNATゲートウェイ538)に通信可能に結合することができる。制御プレーンVCN716は、サービスゲートウェイ736およびNATゲートウェイ738を含むことができる。
【0083】
データプレーンVCN718は、データプレーンアプリ層746(例えば、
図5のデータプレーンアプリ層546)、データプレーンDMZ層748(例えば、
図5のデータプレーンDMZ層548)、およびデータプレーンデータ層750(例えば、
図5のデータプレーンデータ層550)を含むことができる。データプレーンDMZ層748は、LBサブネット722を含むことができ、これは、データプレーンアプリ層746の信頼できるアプリサブネット760と信頼できないアプリサブネット762、およびデータプレーンVCN718に含まれるインターネットゲートウェイ734に通信可能に結合することができる。信頼できるアプリサブネット760は、データプレーンVCN718に含まれるサービスゲートウェイ736、データプレーンVCN718に含まれるNATゲートウェイ738、およびデータプレーンデータ層750に含まれるDBサブネット730に通信可能に結合することができる。信頼できないアプリサブネット762は、データプレーンVCN718に含まれるサービスゲートウェイ736およびデータプレーンデータ層750に含まれるDBサブネット730に通信可能に結合することができる。データプレーンデータ層750は、データプレーンVCN718に含まれるサービスゲートウェイ736に通信可能に結合できるDBサブネット730を含むことができる。
【0084】
信頼できないアプリサブネット762は、テナント仮想マシン(VM)766(1)~(N)に通信可能に結合することができる1つまたは複数の1次VNIC764(1)~(N)を含むことができる。各テナントVM766(1)~(N)は、それぞれのアプリサブネット767(1)~(N)に通信可能に結合することができ、これは、それぞれの顧客テナント770(1)~(N)に含めることができるそれぞれのコンテナ出口VCN768(1)~(N)に含めることができる。それぞれの2次VNIC772(1)~(N)は、データプレーンVCN718に含まれる信頼できないアプリサブネット762と、コンテナ出口VCN768(1)~(N)に含まれるアプリサブネットとの間の通信を容易にすることができる。各コンテナ出口VCN768(1)~(N)は、パブリックインターネット754(例えば、
図5のパブリックインターネット554)に通信可能に結合できるNATゲートウェイ738を含むことができる。
【0085】
制御プレーンVCN716に含まれ、データプレーンVCN718に含まれるインターネットゲートウェイ734は、パブリックインターネット754に通信可能に結合できるメタデータ管理サービス752(例えば、
図5のメタデータ管理システム552)に通信可能に結合することができる。パブリックインターネット754は、制御プレーンVCN716に含まれ、データプレーンVCN718に含まれるNATゲートウェイ738に通信可能に結合することができる。制御プレーンVCN716に含まれ、データプレーンVCN718に含まれるサービスゲートウェイ736は、クラウドサービス756に通信可能に結合することができる。
【0086】
いくつかの実施形態では、データプレーンVCN718は、顧客テナント770と統合することができる。この統合は、コード実行時のサポートが必要な場合など、IaaSプロバイダの顧客にとって有益または望ましい場合がある。顧客は、破壊的な可能性があるコード、他の顧客リソースと通信する可能性のあるコード、またはその他の望ましくない影響を引き起こす可能性のあるコードの実行を提供し得る。これに応じて、IaaSプロバイダは、顧客からIaaSプロバイダに提供されるコードを実行するかどうかを決定できる。
【0087】
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダに一時的なネットワークアクセスを許可し、データプレーン層アプリ746に付加される機能を要求することができる。機能を実行するコードは、VM766(1)~(N)で実行することができ、コードはデータプレーンVCN718上の他の場所で実行するように構成することはできない。各VM766(1)~(N)は、1つの顧客テナント770に接続できる。VM766(1)~(N)に含まれるそれぞれのコンテナ771(1)~(N)は、コードを実行するように構成され得る。この場合、二重隔離が存在する可能性があり(例えば、コンテナ771(1)~(N)のコード実行、コンテナ771(1)~(N)は、信頼できないアプリサブネット762に含まれる少なくともVM766(1)~(N)に含まれ得る)、これは、間違ったコードや望ましくないコードがIaaSプロバイダのネットワークに損害を与えたり、別の顧客のネットワークに損害を与えたりすることを防ぐのに役立ち得る。コンテナ771(1)~(N)は、顧客テナント770に通信可能に結合されてもよく、顧客テナント770からデータを送信または受信するように構成されてもよい。コンテナ771(1)~(N)は、データプレーンVCN718内の任意の他のエンティティからデータを送信または受信するように構成されていない可能性がある。コードの実行が完了すると、IaaSプロバイダはコンテナ771(1)~(N)を強制終了するか、その他の方法で破棄することができる。
【0088】
いくつかの実施形態では、信頼できるアプリサブネット760は、IaaSプロバイダによって所有または動作され得るコードを実行し得る。この実施形態では、信頼できるアプリサブネット760は、DBサブネット730に通信可能に結合され、DBサブネット730内でCRUD動作を実行するように構成され得る。信頼できないアプリサブネット762は、DBサブネット730に通信可能に結合され得るが、この実施形態では、信頼できないアプリサブネットは、DBサブネット730において読み取り動作を実行するように構成され得る。各顧客のVM766(1)~(N)に含めることができ、顧客からのコードを実行することができるコンテナ771(1)~(N)は、DBサブネット730と通信可能に結合されていなくてもよい。
【0089】
他の実施形態では、制御プレーンVCN716とデータプレーンVCN718は、直接通信可能に結合されていなくてもよい。この実施形態では、制御プレーンVCN716とデータプレーンVCN718との間に直接通信が存在しなくてもよい。しかし、通信は少なくとも1つの方法を通じて間接的に行うことができる。LPG710は、制御プレーンVCN716とデータプレーンVCN718との間の通信を容易にすることができるIaaSプロバイダによって確立され得る。別の例では、制御プレーンVCN716またはデータプレーンVCN718は、サービスゲートウェイ736を介してクラウドサービス756への呼び出しを行うことができる。例えば、制御プレーンVCN716からクラウドサービス756への呼び出しは、データプレーンVCN718と通信できるサービスに対する要求を含むことができる。
【0090】
図8は、少なくとも1つの実施形態による、IaaSアーキテクチャの別のパターン例を示すブロック
図800である。サービスオペレータ802(例えば、
図5のサービスオペレータ502)は、セキュアホストテナント804(例えば、
図5のセキュアホストテナント504)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)806(例えば、
図5のVCN506)およびセキュアホストサブネット808(例えば、
図5のセキュアホストサブネット508)を含むことができる。VCN806は、SSHVCN812に含まれるLPG810を介してSSHVCN812(例えば、
図5のSSHVCN512)に通信可能に結合され得るLPG810(例えば、
図5のLPG510)を含むことができる。SSHVCN812は、SSHサブネット814(例えば、
図5のSSHサブネット514)を含むことができ、SSHVCN812は、制御プレーンVCN816(例えば、
図5の制御プレーンVCN516)に含まれるLPG810を介して、制御プレーンVCN816に通信可能に結合することができ、データプレーンVCN818(例えば、
図5のデータプレーン518)に含まれるLPG810を介して、データプレーンVCN818に通信可能に結合することができる。制御プレーンVCN816およびデータプレーンVCN818は、サービステナント819(例えば、
図5のサービステナント519)に含めることができる。
【0091】
制御プレーンVCN816は、LBサブネット822(例えば、
図5のLBサブネット522)を含むことができる制御プレーンDMZ層820(例えば、
図5の制御プレーンDMZ層520)、アプリサブネット826(例えば、
図5のアプリサブネット526)を含むことができる制御プレーンアプリ層824(例えば、
図5の制御プレーンアプリ層524)、DBサブネット830(例えば、
図7のDBサブネット730)を含むことができる制御プレーンデータ層828(例えば、
図5の制御プレーンデータ層528)を含むことができる。制御プレーンDMZ層820に含まれるLBサブネット822は、制御プレーンアプリ層824に含まれるアプリサブネット826に通信可能に結合することができ、制御プレーンVCN816に含めることができるインターネットゲートウェイ834(例えば、
図5のインターネットゲートウェイ534)に通信可能に結合することができ、アプリサブネット826は、制御プレーンデータ層828に含まれるDBサブネット830に通信可能に結合することができ、サービスゲートウェイ836(例えば、
図5のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ838(例えば、
図5のNATゲートウェイ538)に通信可能に結合することができる。制御プレーンVCN816は、サービスゲートウェイ836およびNATゲートウェイ838を含むことができる。
【0092】
データプレーンVCN818は、データプレーンアプリ層846(例えば、
図5のデータプレーンアプリ層546)、データプレーンDMZ層848(例えば、
図5のデータプレーンDMZ層548)、およびデータプレーンデータ層850(例えば、
図5のデータプレーンデータ層550)を含むことができる。データプレーンDMZ層848は、LBサブネット822を含むことができ、それは、信頼できるアプリサブネット860(例えば、
図7の信頼できるアプリサブネット760)に通信可能に結合され得、データプレーンアプリ層846の信頼できないアプリサブネット862(例えば、
図7の信頼できないアプリサブネット762)およびデータプレーンVCN818に含まれるインターネットゲートウェイ834に通信可能に結合することができる。信頼できるアプリサブネット860は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に結合することができ、データプレーンVCN818に含まれるNATゲートウェイ838、およびデータプレーンデータ層850に含まれるDBサブネット830に通信可能に結合することができる。信頼できないアプリサブネット862は、データプレーンVCN818に含まれるサービスゲートウェイ836およびデータプレーンデータ層850に含まれるDBサブネット830に通信可能に接続することができる。データプレーンデータ層850は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に結合できるDBサブネット830を含むことができる。
【0093】
信頼できないアプリサブネット862は、1次VNIC864(1)~(N)を含むことができ、これは、信頼できないアプリサブネット862内に存在するテナント仮想マシン(VM)866(1)~(N)に通信可能に結合することができる。各テナントVM866(1)~(N)は、それぞれのコンテナ867(1)~(N)内でコードを実行することができ、コンテナ出口VCN868に含めることができるデータプレーンアプリ層846に含めることができるアプリサブネット826に通信可能に結合することができる。それぞれの2次VNIC872(1)~(N)は、データプレーンVCN818に含まれる信頼できないアプリサブネット862とコンテナ出口VCN868に含まれるアプリサブネットとの間の通信を容易にすることができる。コンテナ出口VCNは、パブリックインターネット854(例えば、
図5のパブリックインターネット554)に通信可能に結合できるNATゲートウェイ838を含むことができる。
【0094】
制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるインターネットゲートウェイ834は、パブリックインターネット854に通信可能に結合できるメタデータ管理サービス852(例えば、
図5のメタデータ管理システム552)に通信可能に結合することができる。パブリックインターネット854は、制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるNATゲートウェイ838に通信可能に結合することができる。制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるサービスゲートウェイ836は、クラウドサービス856に通信可能に結合することができる。
【0095】
いくつかの例では、
図8のブロック
図800のアーキテクチャによって示されるパターンは、
図6のブロック
図600のアーキテクチャによって示されるパターンの例外であると考えられ、IaaSプロバイダが顧客と直接通信できない場合(例えば、切断されている領域)、IaaSプロバイダの顧客にとっては望ましい場合がある。各顧客のVM866(1)~(N)に含まれるそれぞれのコンテナ867(1)~(N)は、顧客によってリアルタイムでアクセス可能である。コンテナ867(1)~(N)は、コンテナ出口VCN868に含まれることができるデータプレーンアプリ層846のアプリサブネット826に含まれるそれぞれの2次VNIC872(1)~(N)への呼び出しを行うように構成され得る。2次VNIC872(1)~(N)は、呼び出しをパブリックインターネット854に送信することができるNATゲートウェイ838に呼び出しを送信することができる。この例では、顧客がリアルタイムでアクセスできるコンテナ867(1)~(N)は、制御プレーンVCN816から分離することができ、データプレーンVCN818に含まれる他のエンティティから分離することができる。コンテナ867(1)~(N)は、他の顧客からのリソースから隔離されてもよい。
【0096】
他の例では、顧客は、コンテナ867(1)~(N)を使用して、クラウドサービス856を呼び出すことができる。この例では、顧客は、クラウドサービス856からサービスを要求するコードをコンテナ867(1)~(N)内で実行することができる。コンテナ867(1)~(N)は、この要求を2次VNIC872(1)~(N)に送信することができ、2次VNIC872(1)~(N)は、要求をパブリックインターネット854に送信することができるNATゲートウェイに要求を送信することができる。パブリックインターネット854は、インターネットゲートウェイ834を介して、制御プレーンVCN816に含まれるLBサブネット822に要求を送信することができる。要求が有効であるとの決定に応答して、LBサブネットは、サービスゲートウェイ836を介してクラウドサービス856に要求を送信できるアプリサブネット826に要求を送信することができる。
【0097】
図に示されているIaaSアーキテクチャ500、600、700、800は、示されているもの以外の構成要素を有し得ることを理解されたい。さらに、図に示される実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムのいくつかの例にすぎない。他のいくつかの実施形態では、IaaSシステムは、図示されているよりも多いもしくは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成もしくは配置を有してもよい。
【0098】
特定の実施形態では、本明細書で説明されるIaaSシステムは、セルフサービス、サブスクリプションベース、弾力的に拡張可能、信頼性が高く、可用性が高く、安全な方法で顧客に提供されるアプリケーション、ミドルウェア、およびデータベースサービス製品のスイートを含むことができる。このようなIaaSシステムの一例として、本譲受人が提供するOracle Cloud Infrastructure(OCI)がある。
【0099】
図9は、さまざまな実施形態が実装され得る例示的なコンピュータシステム900を示す。システム900は、上述のコンピュータシステムのいずれかを実装するために使用することができる。図に示すように、コンピュータシステム900は、バスサブシステム902を介して多くの周辺サブシステムと通信する処理装置904を含む。これらの周辺サブシステムは、処理加速装置906、I/Oサブシステム908、記憶サブシステム918、および通信サブシステム924を含み得る。記憶サブシステム918は、有形のコンピュータ可読記憶媒体922およびシステムメモリ910を含む。
【0100】
バスサブシステム902は、コンピュータシステム900のさまざまな構成要素およびサブシステムが意図したとおりに相互に通信できるようにする機構を提供する。バスサブシステム902は単一のバスとして概略的に示されているが、バスサブシステムの代替実施形態では複数のバスを利用することができる。バスサブシステム902は、さまざまなバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。例えば、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびPeripheral Component InterConnect(PCI)バスが含まれ得る。これは、IEEEP1386.1標準に従って製造されるメザニンバスとして実装できる。
【0101】
処理装置904は、1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装することができ、コンピュータシステム900の動作を制御する。1つまたは複数のプロセッサが処理装置904に含まれてもよい。これらのプロセッサには、単一コアプロセッサまたはマルチコアプロセッサが含まれ得る。特定の実施形態では、処理装置904は、各処理装置に含まれる単一コアプロセッサまたはマルチコアプロセッサを有する1つまたは複数の独立した処理装置932および/または934として実装され得る。他の実施形態では、処理装置904は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されるクアッドコア処理装置として実装されてもよい。
【0102】
さまざまな実施形態において、処理装置904は、プログラムコードに応答してさまざまなプログラムを実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。いつでも、実行されるプログラムコードの一部またはすべては、プロセッサ904および/または記憶サブシステム918に存在することができる。適切なプログラミングを通じて、プロセッサ904は、上述のさまざまな機能を提供することができる。コンピュータシステム900は、デジタルシグナルプロセッサ(DSP)、専用プロセッサ等を含むことができる処理加速装置906をさらに含むことができる。
【0103】
I/Oサブシステム908は、ユーザインターフェイス入力装置およびユーザインターフェイス出力装置を含むことができる。ユーザインターフェイス入力装置にはキーボード、マウスやトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドやタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えたオーディオ入力装置、マイク、および他のタイプの入力装置が含まれ得る。ユーザインターフェイス入力装置には、例えば、Microsoft Kinect(登録商標)モーションセンサーなどのモーションセンシングおよび/またはジェスチャ認識装置が含まれ得、ユーザは、ジェスチャや音声コマンドを使用した自然なユーザインターフェイスを通じて、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御し、対話できるようになる。ユーザインターフェイス入力装置には、ユーザからの目の活動(例えば、写真撮影中および/またはメニュー選択中の「瞬き」)を検出し、目のジェスチャを入力装置(例えば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識装置も含まれ得る。さらに、ユーザインターフェイス入力装置は、ユーザが音声コマンドを通じて音声認識システム(例えば、Siri(登録商標)ナビゲータ)と対話できるようにする音声認識センシング装置を含んでもよい。
【0104】
ユーザインターフェイス入力装置には、限定されないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルビデオカメラなどのオーディオ/ビジュアル装置、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置なども含まれ得る。さらに、ユーザインターフェイス入力装置には、例えば、コンピュータ断層撮影法、磁気共鳴画像法、位置放射断層撮影法、医療用超音波検査装置などの医療用画像入力装置が含まれてもよい。ユーザインターフェイス入力装置には、例えば、MIDIキーボード、デジタル楽器などのオーディオ入力装置も含まれ得る。
【0105】
ユーザインターフェイス出力装置には、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚的ディスプレイが含まれてもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネル装置、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム900からユーザまたは他のコンピュータに情報を出力するためのあらゆる可能なタイプの装置および機構を含むことを意図している。例えば、ユーザインターフェイス出力装置には、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力装置、およびモデムなど、テキスト、グラフィックス、およびオーディオ/ビデオ情報を視覚的に伝達するさまざまな表示装置が含まれるが、これらに限定されない。
【0106】
コンピュータシステム900は、システムメモリ910内に現在配置されているように示されるソフトウェア要素を備える記憶サブシステム918を備えることができる。システムメモリ910は、処理装置904上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを記憶することができる。
【0107】
コンピュータシステム900の構成および種類に応じて、システムメモリ910は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読み取り専用メモリ(ROM)、フラッシュメモリ)の場合がある。RAMは通常、処理装置904に即座にアクセス可能な、ならびに/または処理装置904によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実装形態では、システムメモリ910は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実装形態では、起動中など、コンピュータシステム900内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS)は、通常、ROMに記憶され得る。限定ではなく一例として、システムメモリ910は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム912、プログラムデータ914、およびオペレーティングシステム916も示す。一例として、オペレーティングシステム916には、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステム、さまざまな市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linux(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含むがこれらに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10 OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムが含まれ得る。
【0108】
記憶サブシステム918はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体を提供することもできる。プロセッサによって実行されると、上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム918に記憶され得る。これらのソフトウェアモジュールまたは命令は、処理装置904によって実行され得る。記憶サブシステム918はまた、本開示に従って使用されるデータを記憶するためのリポジトリを提供することもできる。
【0109】
記憶サブシステム900はまた、コンピュータ可読記憶媒体922にさらに接続できるコンピュータ可読記憶媒体リーダ920を含んでもよい。一緒に、そして任意でシステムメモリ910と組み合わせて、コンピュータ可読記憶媒体922は、リモート、ローカル、固定、および/または取り外し可能な記憶装置に加えて、コンピュータ可読情報を一時的および/またはより永続的に収容、記憶、送信、および取得するための記憶媒体を包括的に表すことができる。
【0110】
コードまたはコードの一部を含むコンピュータ可読記憶媒体922には、当技術分野で既知または使用されている任意の適切な媒体を含めることもでき、これには、情報の記憶および/または送信のための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体などの記憶媒体および通信媒体が含まれるが、これらに限定されない。これには、RAM、ROM、電子的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリもしくはその他のメモリテクノロジ、CD-ROM、デジタルバーサタイルディスク(DVD)などの有形のコンピュータ可読記憶媒体、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体が含まれ得る。これには、データ信号、データ送信、または所望の情報を送信するために使用でき、コンピューティングシステム900によってアクセスできる任意の他の媒体などの、無形のコンピュータ可読媒体も含まれ得る。
【0111】
一例として、コンピュータ可読記憶媒体922は、取り外し不可能な不揮発性磁気媒体に対して読み取りまたは書き込みを行うハードディスクドライブ、取り外し可能な不揮発性磁気ディスクに対して読み取りまたは書き込みを行う磁気ディスクドライブ、およびCDROM、DVD、Blu-Ray(登録商標)ディスクなどの取り外し可能な不揮発性光ディスク、またはその他の光媒体に対して読み取りまたは書き込みを行う光ディスクドライブを含むことができる。コンピュータ可読記憶媒体922には、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどが含まれてもよいが、これらに限定されない。コンピュータ可読記憶媒体922には、フラッシュメモリベースのSSDなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、エンタープライズフラッシュドライブ、ソリッドステートROMなど、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリをベースにしたSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDを組み合わせて使用するハイブリッドSSDも含まれ得る。ディスクドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータシステム900のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供し得る。
【0112】
通信サブシステム924は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム924は、コンピュータシステム900から他のシステムとの間でデータを送受信するためのインターフェイスとして機能する。例えば、通信サブシステム924は、コンピュータシステム1000がインターネットを介して1つまたは複数の装置に接続できるようにすることができる。いくつかの実施形態では、通信サブシステム924は、無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバ構成要素を含めることができる(例えば、携帯電話技術、3G、4G、またはEDGE(地球規模の進化のための強化されるデータレート)などの高度なデータネットワーク技術を使用する)、WiFi(IEEE802.11ファミリ標準、または他のモバイル通信技術、またはそれらの任意の組み合わせ)、全地球測位システム(GPS)受信機構成要素、および/または他の構成要素を含むことができる。いくつかの実施形態では、通信サブシステム924は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(例えば、イーサネット(登録商標))を提供することができる。
【0113】
いくつかの実施形態では、通信サブシステム924は、コンピュータシステム900を使用することができる1人または複数のユーザに代わって、構造化および/または非構造化データフィード926、イベントストリーム928、イベント更新930などの形式で入力通信を受信することもできる。
【0114】
一例として、通信サブシステム924は、ソーシャルネットワーク、および/もしくはTwitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリー(RSS)フィードなどのWebフィードなどのその他の通信サービス、ならびに/または1つもしくは複数のサードパーティ情報ソースからのリアルタイム更新のユーザからリアルタイムでデータフィード926を受信するように構成され得る。
【0115】
さらに、通信サブシステム924は、連続データストリームの形式でデータを受信するように構成されてもよく、これには、リアルタイムイベントおよび/またはイベント更新930のイベントストリーム928が含まれ得、これらは、連続的または明示的な終わりのない本質的に無制限であり得る。連続データを生成するアプリケーションの例には、例えば、センサーデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などが含まれ得る。
【0116】
通信サブシステム924はまた、構造化および/または非構造化データフィード926、イベントストリーム928、イベント更新930などを、コンピュータシステム900に結合される1つまたは複数のストリーミングデータソースコンピュータと通信することができる1つまたは複数のデータベースに出力するように構成することもできる。
【0117】
コンピュータシステム900は、ハンドヘルドポータブル装置(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含むさまざまなタイプのうちの1つであり得る。
【0118】
コンピュータおよびネットワークの絶え間なく変化する性質のため、図に示されるコンピュータシステム900の説明は、特定の例としてのみ意図されている。図に示されているシステムよりも多くの、または少ない構成要素を備えた他の多くの構成が可能である。例えば、カスタマイズされているハードウェアも使用されたり、特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、またはその組み合わせで実装されたりし得る。さらに、ネットワーク入出力装置などの他のコンピューティング装置への接続が使用されてもよい。本明細書で提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実装するための他の手法および/または方法を理解するであろう。
特定の実施形態について説明してきたが、さまざまな修正、変更、代替構造、および均等物も本開示の範囲内に含まれる。実施形態は、特定の特有のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、特定の一連のトランザクションおよびステップを使用して実施形態を説明したが、本開示の範囲が説明した一連のトランザクションおよびステップに限定されないことは当業者には明らかである。上述の実施形態のさまざまな特徴および態様は、個別にまたは組み合わせて使用することができる。
【0119】
さらに、ハードウェアとソフトウェアの特定の組み合わせを使用して実施形態を説明したが、ハードウェアとソフトウェアの他の組み合わせも本開示の範囲内であることを認識されたい。実施形態は、ハードウェアのみで、もしくはソフトウェアのみで、またはそれらの組み合わせを使用して実装することができる。本明細書で説明するさまざまなプロセスは、同じプロセッサ上で実装することも、異なるプロセッサを任意に組み合わせて実装することもできる。したがって、構成要素またはモジュールが特定の動作を実行するように構成されていると説明されている場合、このような構成は、例えば、動作を実行する電子回路を設計することによって、動作を実行するようにプログラマブル電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を使用して通信することができ、プロセスの異なる対が異なる技術を使用したり、同じプロセスの対が異なる時点で異なる技術を使用したりすることができる。
【0120】
したがって、明細書および図面は、限定的な意味ではなく、例示的な意味としてみなされるべきである。しかし、特許請求の範囲に記載のより広い趣旨および範囲から逸脱することなく、追加、減算、削除、ならびにその他の修正および変更を行うことができることは明らかである。したがって、特定の開示実施形態について説明してきたが、これらは限定することを意図したものではない。さまざまな修正および均等物は、以下の特許請求の範囲内に含まれる。
【0121】
開示されている実施形態を説明する文脈における(特に、以下の特許請求の範囲の文脈において)用語「a」、「an」、「the」、および同様の指示対象の使用は、本明細書で別途指示するか、文脈と明らかに矛盾しない限り、単数形と複数形の両方をカバーすると解釈されるべきである。「含む」、「有する」、「含む」、および「含有する」という用語は、特に断りのない限り、無制限の用語(すなわち、「含むがこれらに限定されない」を意味する)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在している場合でも、部分的または全体的に内部に含まれている、取り付けられている、または結合されていると解釈される。本明細書における値の範囲の記載は、本明細書に別段の記載がない限り、その範囲内にある各々の個別の値を個別に参照する簡略的な方法として機能することを単に意図しており、個別の各値は、あたかも本明細書に個別に記載されているかのように明細書に組み込まれる。本明細書に記載されるすべての方法は、本明細書に別段の指示がない限り、または文脈と明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提供されるあらゆる例、または例示的な文言(例えば、「など」)の使用は、単に実施形態をより良く説明することを目的としており、別段の請求がない限り、本開示の範囲に制限を課すものではない。本明細書のいかなる文言も、特許請求されていない任意の要素が本開示の実施に必須であることを示すものとして解釈されるべきではない。
【0122】
「X、Y、またはZのうちの少なくとも1つ」という句などの選言的表現は、特に別段の記載がない限り、項目、用語などがX、Y、またはZのいずれか、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)であり得ることを示すために一般に使用されると文脈内で理解されることを意図している。したがって、そのような選言的表現は、一般に、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つがそれぞれ存在することを必要とすることを意味することを意図したものではなく、また、意味するべきではない。
【0123】
本開示の好ましい実施形態が、本開示を実施するための既知の最良のモードを含めて、本明細書に記載される。これらの好ましい実施形態の変形は、前述の説明を読めば当業者には明らかになるであろう。当業者であれば、そのような変形を必要に応じて採用することができるはずであり、本開示は、本明細書に具体的に記載された以外の方法で実施することもできる。したがって、本開示には、適用される法律によって許可される、本明細書に添付の特許請求の範囲に記載されている主題のすべての修正および均等物が含まれる。さらに、本明細書で別段の指示がない限り、可能なすべての変形例における上述の要素の任意の組み合わせが本開示に包含される。
【0124】
本明細書に引用される刊行物、特許出願、および特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別かつ具体的に示され、その全体が本明細書に記載されるのと同じ程度に、参照により本明細書に組み込まれる。
【0125】
前述の明細書では、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者は、本開示がそれに限定されないことを認識するであろう。上述の開示のさまざまな特徴および態様は、個別にまたは組み合わせて使用することができる。さらに、実施形態は、本明細書のより広範な趣旨および範囲から逸脱することなく、本明細書に記載されているものを超える任意の数の環境および用途において利用することができる。したがって、明細書および図面は、限定的なものではなく、例示的なものとみなされるべきである。
【国際調査報告】