(58)【調査した分野】(Int.Cl.,DB名)
前記共有のアイデンティティ管理システムを介して、(a)前記ユーザのアイデンティティの第1のセットの第1のユーザを(b)前記第1の複数のサービスのサブセットに対して第1のアクセス許可にマッピングするステップと、
前記共有のアイデンティティ管理システムを介して、(c)前記ユーザのアイデンティティの第2のセットの第2のユーザを(d)前記第2の複数のサービスのサブセットに対して第2のアクセス許可にマッピングするステップとをさらに含み、
前記ユーザのアイデンティティの第1のセットは、前記第1の顧客である組織の人員のアイデンティティのセットであり、
前記ユーザのアイデンティティの第2のセットは、前記第2の顧客である組織の人員のアイデンティティのセットである、請求項1に記載のコンピュータにより実行される方法。
前記共有のアイデンティティ管理システムを介して、(a)前記ユーザのアイデンティティの第1のセットの第1のユーザを(b)前記第1の複数のサービスのサブセットに対して第1のアクセス許可にマッピングされた第1のロールにマッピングするステップと、
前記共有のアイデンティティ管理システムを介して、(c)前記ユーザのアイデンティティの第2のセットの第2のユーザを(d)前記第2の複数のサービスのサブセットに対して第2のアクセス許可にマッピングされた第2のロールにマッピングするステップとをさらに含む、請求項1または2に記載のコンピュータにより実行される方法。
前記ユーザのアイデンティティの第1のセットにおけるユーザが、前記サービスの第1のセットでなく、前記サービスの第2のセットにおけるサービスに対するオペレーションを行なうことを防止するステップと、
前記ユーザのアイデンティティの第2のセットにおけるユーザが、前記サービスの第2のセットでなく、前記サービスの第1のセットにおけるサービスに対するオペレーションを行なうことを防止するステップとをさらに含む、請求項1〜3のいずれか一項に記載のコンピュータにより実行される方法。
前記ユーザのアイデンティティの第1のセットの前記アイデンティティを、顧客により分割されたライトウェイトアクセスプロトコル(LDAP)ディレクトリの第1のパーティション内に格納するステップと、
前記ユーザのアイデンティティの第2のセットの前記アイデンティティを、前記LDAPディレクトリの第2のパーティション内に格納するステップとをさらに含む、請求項1〜4のいずれか一項に記載のコンピュータにより実行される方法。
特定のユーザが、ログインプロセスの一部として、前記特定のユーザがアクセスしようとしている前記共有のコンピューティング環境の特定のビューを識別できるユーザインターフェイス要素を含むユーザインターフェイスを提示するステップをさらに含む、請求項1〜5のいずれか一項に記載のコンピュータにより実行される方法。
前記複数の顧客の特定の顧客と関連付けられたユーザのセットに対してユーザアイデンティティを追加および削除するための制御を提供するコンソールを提示するステップと、
アイデンティティドメイン管理者から前記コンソールを介してコマンドを受取るステップと、
前記アイデンティティドメイン管理者が所属するユーザの特定のセットを決定するステップと、
前記アイデンティティドメイン管理者により前記コンソールを介して前記ユーザの特定のセットに行なわれるユーザアイデンティティ追加および削除オペレーションを制限するステップとをさらに含む、請求項1〜6のいずれか一項に記載のコンピュータにより実行される方法。
前記ユーザのアイデンティティの第1のセットの第1のユーザにアイデンティティドメイン管理者ロールを割り当てるステップをさらに含み、前記アイデンティティドメイン管理者ロールは、前記ユーザのアイデンティティの第1のセットにおけるアイデンティティを有する他のユーザにサービス管理者ロールを割り当てる能力を前記第1のユーザに付与し、前記方法はさらに、
アイデンティティドメイン管理者としての前記第1のユーザにより選択された前記ユーザのアイデンティティの第1のセットの第2のユーザに、第1のサービス管理者ロールを割り当てるステップを含み、前記第1のサービス管理者ロールは、前記第1の複数のサービスの第1のサービスを管理する能力を前記第2のユーザに付与し、前記方法はさらに、
前記アイデンティティドメイン管理者としての前記第1のユーザにより選択された前記ユーザのアイデンティティの第1のセットの第3のユーザに、第2のサービス管理者ロールを割り当てるステップを含み、前記第2のサービス管理者ロールは、前記第1の複数のサービスの第2のサービスを管理する能力を前記第3のユーザに付与する、請求項1〜7のいずれか一項に記載のコンピュータにより実行される方法。
前記ユーザのアイデンティティの第1のセットにおけるユーザアイデンティティを有さないが、前記第1の顧客のアカウントと関連付けられた第1の人から、前記ユーザの第1のセットにおけるユーザアイデンティティを同様に有さない第2の人の電子メールアドレスを受取るステップと、
前記第1の人から、前記第1の人が前記第2の人を指名しているロールを受取るステップと、
前記第2の人の前記電子メールアドレスに、前記ユーザのアイデンティティの第1のセット内のユーザアイデンティティを作成するのに利用可能なウェブベースフォームへのハイパーリンクを含む電子メールメッセージを送信するステップと、
前記ウェブベースフォームを介して前記第2の人が供給した情報に基づいて、前記ユーザのアイデンティティの第1のセットに前記第2の人のアイデンティティを追加するステップと、
前記第2の人の前記アイデンティティに前記ロールを割り当てるステップとをさらに含む、請求項1〜8のいずれか一項に記載のコンピュータにより実行される方法。
前記サービスの第1のセットにおけるサービスのインスタンスである特定のサービスインスタンスを、アイデンティティストアの第1のパーティションに結び付けるステップと、
前記特定のサービスインスタンスを、前記複数の顧客のそれぞれの顧客と関連付けられた複数のサービスインスタンスについてのポリシーを格納するポリシーストアの第2のパーティションに結び付けるステップとをさらに含み、
前記第1のパーティションは、前記第1の顧客と関連付けられたアイデンティティのみを含み、
前記第2のパーティションは、前記特定のサービスインスタンスに関係するポリシーのみを含む、請求項1〜10のいずれか一項に記載のコンピュータにより実行される方法。
前記アイデンティティストアに格納され、かつ特定の顧客対ユーザ関連付けにおいて特定される第1のユーザアイデンティティを有する第1のユーザに、ロールの階層から、第1のロールを割り当てる命令をさらに含み、
前記第1のロールは、前記第1のロールを有するユーザが、前記特定の顧客対サービス関連付けにおいて特定されるすべてのサービスインスタンスを管理することを可能にするロールであり、
前記アイデンティティストアに格納された第2のユーザアイデンティティを有する第2のユーザに、前記ロールの階層から、第2のロールを割り当てる命令を含み、
前記第2のロールは、前記第2のロールを有するユーザが、前記特定の顧客対サービス関連付けにおいて特定される単一のサービスインスタンスを管理することを可能にするロールである、請求項14に記載のコンピュータ読取可能プログラム。
前記第2のユーザに前記第2のロールを割り当てる命令は、前記第1のユーザが前記第2のユーザに前記第2のロールを委任することに応じて、前記第2のユーザに前記第2のロールを割り当てる命令を含む、請求項15に記載のコンピュータ読取可能プログラム。
前記サービスインスタンスを追加する命令は、特定のサービスインスタンスのタイプに関連付けられた複数のロールにより定義される第3のロールを、前記アイデンティティストアに格納され、前記特定の顧客対ユーザ関連付けにおいて特定される第3のアイデンティティを有する第3のユーザに割り当てる命令を含む、請求項15または16に記載のコンピュータ読取可能プログラム。
前記第2のロールに、前記第3のロールと関連付けられたすべての許可を継承させる命令をさらに含み、前記第1のロールに、前記第2のロールにより継承されたすべての許可を継承させる命令を含む、請求項17に記載のコンピュータ読取可能プログラム。
特定される電子メールアドレスに電子メールメッセージを送信する命令をさらに含み、前記電子メールメッセージは、前記電子メールメッセージの受信者が、前記特定の顧客対ユーザ関連付け内に管理アイデンティティを確立できるメカニズムを提供する、請求項14〜18のいずれか一項に記載のコンピュータ読取可能プログラム。
前記共有のコンピューティング環境内に維持される単一のアイデンティティストア内の前記第2の顧客でなく、前記第1の顧客と関連付けられたユーザアイデンティティを格納する手段と、
前記単一のアイデンティティストア内の前記第1の顧客でなく、前記第2の顧客と関連付けられたユーザアイデンティティを格納する手段と、
第1のクレデンシャルを生成する手段とをさらに含み、前記第1のクレデンシャルは、前記第1のサービスインスタンスが、前記第1の顧客と関連付けられないユーザアイデンティティを含む前記単一のアイデンティティストアの部分でなく、前記第1の顧客と関連付けられたユーザアイデンティティを含む前記単一のアイデンティティストアの部分と対話することを許可し、前記システムはさらに、
第2のクレデンシャルを生成する手段を含み、前記第2のクレデンシャルは、前記第2のサービスインスタンスが、前記第2の顧客と関連付けられないユーザアイデンティティを含む前記単一のアイデンティティストアの部分でなく、前記第2の顧客と関連付けられたユーザアイデンティティを含む前記単一のアイデンティティストアの部分と対話することを許可する、請求項20に記載のシステム。
前記共有のコンピューティング環境内に維持される単一のポリシーストア内の前記第2のサービスインスタンスでなく、前記第1のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを格納する手段と、
前記単一のポリシーストア内の前記第1のサービスインスタンスでなく、前記第2のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを格納する手段と、
第1のクレデンシャルを生成させる手段とをさらに含み、前記第1のクレデンシャルは、前記第1のサービスインスタンスが、前記第1のサービスインスタンスと関連付けられないセキュリティアクセスポリシーを含む前記単一のポリシーストアの部分でなく、前記第1のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを含む前記単一のポリシーストアの部分と対話することを許可し、前記システムはさらに、
第2のクレデンシャルを生成させる手段を含み、前記第2のクレデンシャルは、前記第2のサービスインスタンスが、前記第2のサービスインスタンスと関連付けられないセキュリティアクセスポリシーを含む前記単一のポリシーストアの部分でなく、前記第2のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを含む前記単一のポリシーストアの部分と対話することを許可する、請求項20または21に記載のシステム。
【発明を実施するための形態】
【0020】
詳細な説明
以下の説明では、本発明の実施例が十分に理解されるようにするために、説明の目的で具体的詳細を記載する。しかし、これらの具体的詳細がなくても本発明を実施できることは明らかであろう。
【0021】
本発明の特定の実施例は、クラウドインフラストラクチャシステムによって提供されるサービスのプロビジョニング、管理および追跡を自動化するための技術を提供する。
【0022】
特定の実施例では、クラウドインフラストラクチャシステムは、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に与えられる一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【0023】
クラウドインフラストラクチャシステムは、クラウドインフラストラクチャシステムにおいてサービスおよびリソースについての顧客のサブスクリプションをプロビジョニング、管理および追跡する機能、クラウドインフラストラクチャシステムにおいてサービスを利用する顧客に予測可能な作業費用を提供する機能、クラウドインフラストラクチャシステムにおいて顧客のデータのロバストなアイデンティティドメインの分離および保護を提供する機能、クラウドインフラストラクチャシステムの設計の透過的なアーキテクチャおよび制御を顧客に提供する機能、データ保護の保証とデータプライバシ基準および規制の順守とを顧客に提供する機能、クラウドインフラストラクチャシステムにおいてサービスを構築およびデプロイするための統合された開発経験を顧客に提供する機能、ならびにクラウドインフラストラクチャシステムにおいてビジネスソフトウェア、ミドルウェア、データベースおよびインフラストラクチャサービスの間のシームレスな統合を顧客に提供する機能を含むがこれらに限定されない多くの機能を提供することができる。
【0024】
特定の実施例では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な複数のサービスを含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドインフラストラクチャシステムによって提供されるサービスの具体的なインスタンス化は、本明細書ではサービスインスタンスと称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザが利用可能なサービスはいずれも、クラウドサービスと称される。一般に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。例えば、クラウドサービスプロバイダのシステムは、アプリケーションをホストし得て、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションをオーダーし、使用し得る。
【0025】
コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダによってユーザに提供されるかまたはそうでなければ当該技術分野において公知のストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションまたは他のサービスへの保護されたコンピュータネットワークアクセスを含む。例えば、サービスは、インターネットを介したクラウド上のリモートストレージへの、パスワードによって保護されたアクセスを含んでいてもよい。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含んでいてもよい。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含んでいてもよい。
【0026】
図20Aは、本発明の一実施例に係るクラウドインフラストラクチャシステムの論理図である。クラウドインフラストラクチャシステム2000は、クラウドまたはネットワーク化された環境を介してさまざまなサービスを提供し得る。これらのサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリの下で提供される1つ以上のサービスを含んでいてもよい。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム2000によって提供される1つ以上のサービスをオーダーし得る。次いで、クラウドインフラストラクチャシステム2000は、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を実行する。
【0027】
クラウドインフラストラクチャシステム2000は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。例えば、サービスは、クラウドインフラストラクチャシステム2000が(例えばオラクルによって所有される)クラウドサービスを販売する組織によって所有され、サービスが一般的な公営企業またはさまざまな産業企業に利用可能であるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム2000が単一の組織のために単独で運営され、当該組織内の1つ以上のエンティティにサービスを提供することができるプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム2000およびシステム200によって提供されるサービスが関連のコミュニティの中のいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【0028】
図20Aに示されるように、クラウドインフラストラクチャシステム2000は、クラウドインフラストラクチャシステム2000によって提供されるサービスのプロビジョニングを可能にする、連携して動作する複数のコンポーネントを備えていてもよい。
図20Aに示される実施例では、クラウドインフラストラクチャシステム2000は、SaaSプラットフォーム2002と、PaaSプラットフォーム2004と、IaaSプラットフォーム2010と、インフラストラクチャリソース2006と、クラウド管理機能2008とを含む。これらのコンポーネントは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【0029】
SaaSプラットフォーム2002は、SaaSカテゴリに入るクラウドサービスを提供するように構成される。例えば、SaaSプラットフォーム2002は、統合された開発およびデプロイメントプラットフォーム上で一連のオンデマンドのアプリケーションを構築および供給するための機能を提供し得る。SaaSプラットフォーム2002は、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォーム2002によって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム2000上で実行されるアプリケーションを利用することができる。顧客は、顧客が別個のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。
【0030】
さまざまな異なるSaaSサービスが提供され得る。例としては、大きな組織に販売実績管理、企業統合およびビジネスの柔軟性などのためのソリューションを提供するサービスが挙げられるが、これに限定されるものではない。一実施例では、SaaSサービスは、顧客関係管理(Customer Relationship Management:CRM)サービス2010(例えばオラクルクラウドによって提供されるフュージョンCRMサービス)、人材管理(Human Capital Management:HCM)/才能管理サービス2012などを含んでいてもよい。CRMサービス2010は、顧客への販売活動サイクルの報告および管理に向けられるサービスなどを含んでいてもよい。HCM/才能サービス2012は、顧客へのグローバルな労働力ライフサイクル管理および才能管理サービスの提供に向けられるサービスを含んでいてもよい。
【0031】
標準化された、共有の、弾性的にスケーラブルなアプリケーション開発およびデプロイメントプラットフォームにおけるPaaSプラットフォーム2004によって、さまざまな異なるPaaSサービスが提供され得る。PaaSサービスの例としては、共有される共通のアーキテクチャ上で既存のアプリケーションを(オラクルなどの)組織が集約することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能が挙げられ得るが、これらに限定されるものではない。PaaSプラットフォーム2004は、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別個のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステム2000によって提供されるPaaSサービスを取得することができる。PaaSサービスの例としては、オラクルJava(登録商標)クラウドサービス(Java Cloud Service:JCS)、オラクルデータベースクラウドサービス(Oracle Database Cloud Service:DBCS)などが挙げられるが、これらに限定されるものではない。
【0032】
PaaSプラットフォーム2004によって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム2000によってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施例では、クラウドインフラストラクチャシステム2000によって提供されるPaaSサービスは、データベースクラウドサービス2014と、ミドルウェアクラウドサービス(例えばオラクルフュージョンミドルウェアサービス)2016と、Javaクラウドサービス2017とを含んでいてもよい。一実施例では、データベースクラウドサービス2014は、組織がデータベースリソースをプールし、データベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートし得て、ミドルウェアクラウドサービス2016は、さまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し、Javaクラウドサービス2017は、クラウドインフラストラクチャシステム2000においてJavaアプリケーションをデプロイするために顧客にプラットフォームを提供する。
図20Aに示されるSaaSプラットフォーム2002およびPaaSプラットフォーム2004におけるコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例では、SaaSプラットフォーム2002およびPaaSプラットフォーム2004は、クラウドインフラストラクチャシステム2000の顧客に追加のサービスを提供するための追加のコンポーネントを含んでいてもよい。
【0033】
IaaSプラットフォーム2010によってさまざまな異なるIaaSサービスが提供され得る。IaaSサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のために、ストレージ、ネットワークおよび他の基礎的なコンピューティングリソースなどの基本的なコンピューティングリソースの管理および制御を容易にする。
【0034】
特定の実施例では、クラウドインフラストラクチャシステム2000は、クラウドインフラストラクチャシステム2000の顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース2006を含む。一実施例では、インフラストラクチャリソース2006は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するために、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め統合された、最適化された組み合わせを含む。
【0035】
特定の実施例では、クラウド管理機能2008は、クラウドインフラストラクチャシステム2000においてクラウドサービス(例えばSaaS、PaaS、IaaSサービス)の包括的な管理を提供する。一実施例では、クラウド管理機能2008は、クラウドインフラストラクチャシステム2000によって受取られた顧客のサブスクリプションをプロビジョニング、管理および追跡するための機能などを含む。
【0036】
図20Bは、本発明の実施例に係るクラウドインフラストラクチャシステム2000を実現するために使用され得るハードウェア/ソフトウェアスタックの簡略ブロック図である。
図20Bに示される実現例は、
図20Bに示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、
図20Bに示される実施例は、本発明の実施例を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム2000は、
図20Bに示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。特定の実施例では、最適な性能を提供する垂直統合を提供するようにハードウェアおよびソフトウェアコンポーネントが積層される。
【0037】
さまざまなタイプのユーザがクラウドインフラストラクチャシステム2000と対話し得る。これらのユーザは、例えば、デスクトップ、モバイル機器、タブレットなどのさまざまなクライアント装置を使用してクラウドインフラストラクチャシステム2000と対話し得るエンドユーザ2050を含んでいてもよい。また、ユーザは、さまざまな統合された開発環境(integrated development environment:IDE)を介して、および他のアプリケーションを介して、コマンドラインインターフェイス(command line interface:CLI)、アプリケーションプログラミングインターフェイス(application programming interface:API)を使用してクラウドインフラストラクチャシステム2000と対話し得る開発者/プログラマ2052を含んでいてもよい。また、ユーザは、オペレーションスタッフ2054を含んでいてもよい。これらは、クラウドサービスプロバイダのスタッフまたは他のユーザのスタッフを含んでいてもよい。
【0038】
アプリケーションサービス層2056は、クラウドインフラストラクチャシステム2000によって提供され得るさまざまなクラウドサービスを特定する。これらのサービスは、サービス統合および連結層2058を介してそれぞれのソフトウェアコンポーネント2060(例えばJavaサービスを提供するためのオラクルウェブロジックサーバ、データベースサービスを提供するためのオラクルデータベースなど)にマッピングされるか、または関連付けられ得る。
【0039】
特定の実施例では、クラウドインフラストラクチャシステム2000のさまざまなコンポーネントまたはモジュールおよびクラウドインフラストラクチャシステム2000によって提供されるサービスによって共有されるいくつかの内部サービス2062が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、IDEにおいてクラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【0040】
ランタイムインフラストラクチャ層2064は、さまざまな他の層およびコンポーネントが構築されるハードウェア層を表わす。特定の実施例では、ランタイムインフラストラクチャ層2064は、ストレージ、処理およびネットワーキングリソースを提供するための1つのオラクルのExadataマシンを備えていてもよい。Exadataマシンは、さまざまなデータベースサーバ、ストレージサーバ、ネットワーキングリソース、およびクラウドサービス関連のソフトウェア層をホストするための他のコンポーネントから構成され得る。特定の実施例では、Exadataマシンは、ストレージ、演算、ネットワークおよびソフトウェアリソースの集合体を提供するエンジニアド・システムであるOracle Exalogicと連携するように設計され得る。ExadataおよびExalogicの組み合わせは、クラウドサービスを提供するための高性能で、高可用性で、スケーラブルで、安全な、管理されたプラットフォームを与える完全なハードウェアおよびソフトウェアエンジニアドソリューションを提供する。
【0041】
図21は、本発明の実施例に係る
図20Aに示されるクラウドインフラストラクチャシステムを実現するためのシステム環境の簡略ブロック図である。示される実施例では、システム環境2130は、クラウドインフラストラクチャシステム2000と対話するためにユーザによって使用され得る1つ以上のクライアントコンピューティング装置2124、2126および2128を含む。クライアント装置は、クラウドインフラストラクチャシステム2000によって提供されるサービスを利用するためにクラウドインフラストラクチャシステム2000と対話するようにクライアント装置のユーザによって使用され得る、ウェブブラウザ、プロプライエタリクライアントアプリケーション(例えばOracle Forms)またはその他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【0042】
図21に示されるクラウドインフラストラクチャシステム2000は、
図21に示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、
図21に示される実施例は、本発明の実施例を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム2000は、
図21に示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【0043】
クライアントコンピューティング装置2124、2126および2128は、汎用パーソナルコンピュータ(一例として、マイクロソフトウィンドウズ(登録商標)および/またはアップルマッキントッシュオペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む)、(マイクロソフトウィンドウズモバイルなどのソフトウェアを実行し、インターネット、電子メール、SMS、ブラックベリーまたは使用可能な他の通信プロトコルである)携帯電話もしくはPDA、さまざまな市販のUNIX(登録商標)もしくはUNIXのようなオペレーティングシステム(さまざまなGNU/Linux(登録商標)オペレーティングシステムを含むがこれに限定されるものではない)のいずれかを実行するワークステーションコンピュータ、またはその他のコンピューティング装置であってもよい。例えば、クライアントコンピューティング装置2124、2126および2128は、ネットワークを介して通信することができるシン・クライアントコンピュータ、インターネットへの接続が可能なゲーム機および/またはパーソナルメッセージング装置などのその他の電子装置であってもよい。例示的なシステム環境2130が3つのクライアントコンピューティング装置とともに示されているが、いかなる数のクライアントコンピューティング装置がサポートされてもよい。センサを有する装置などの他の装置がクラウドインフラストラクチャシステム2000と対話してもよい。
【0044】
ネットワーク2132は、クライアント2124、2126および2128とクラウドインフラストラクチャシステム2000との間でのデータの通信および交換を容易にし得る。ネットワーク2132は、TCP/IP、SNA、IPX、AppleTalkなどを含むがこれらに限定されるものではないさまざまな市販のプロトコルのいずれかを使用してデータ通信をサポートし得る、当業者になじみのある任意のタイプのネットワークであってもよい。単に一例として、ネットワーク2132は、イーサネット(登録商標)ネットワーク、トークン・リング・ネットワークなどのローカルエリアネットワーク(local area network:LAN)、広域ネットワーク、仮想プライベートネットワーク(virtual private network:VPN)を含むがこれに限定されるものではない仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(例えばIEEE802.1Xの一連のプロトコル、当該技術分野において公知のブルートゥース(登録商標)プロトコルおよび/またはその他の無線プロトコルのいずれかの下で動作するネットワーク)、ならびに/または、これらのおよび/もしくは他のネットワークの任意の組み合わせであってもよい。
【0045】
クラウドインフラストラクチャシステム2000は、汎用コンピュータ、特化サーバコンピュータ(一例として、PCサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式のサーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な配置および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを備えていてもよい。クラウドインフラストラクチャシステム2000を構成するコンピューティング装置は、HTTPサーバ、FTPサーバ、CGIサーバ、Javaサーバ、データベースサーバなどを含む、オペレーティングシステムまたはさまざまな追加のサーバアプリケーションおよび/もしくは中間層アプリケーションのいずれかを実行し得る。例示的なデータベースサーバとしては、オラクル、マイクロソフト、サイベース、IBMなどから市販されているものが挙げられるが、これらに限定されるものではない。
【0046】
さまざまな実施例では、クラウドインフラストラクチャシステム2000は、クラウドインフラストラクチャシステム2000によって提供されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。一実施例では、
図21に示されるように、クラウドインフラストラクチャシステム2000におけるコンポーネントは、アイデンティティ管理(Identity Management:IDM)モジュール2100と、サービスモジュール2102と、テナント自動化システム(Tenant Automation System:TAS)モジュール2104と、サービスデプロイメントインフラストラクチャ(Service Deployment Infrastructure:SDI)モジュール2106と、エンタープライズマネージャ(Enterprise Manager:EM)モジュール2108と、ストアユーザインターフェイス(user interface:UI)2110、クラウドユーザインターフェイス(UI)2112およびサポートユーザインターフェイス(UI)2116などの1つ以上のフロントエンドウェブインターフェイスと、オーダー管理モジュール2114と、販売スタッフ2118と、オペレータスタッフ2120と、オーダーデータベース2142とを含む。これらのモジュールは、汎用コンピュータ、特化サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な配置および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含んでいてもよく、またはそれらを使用して提供されてもよい。一実施例では、これらのモジュールのうちの1つ以上は、クラウドインフラストラクチャシステム2000におけるクラウド管理機能2008またはIaaSプラットフォーム2010によって提供され得る。
図21に示されるクラウドインフラストラクチャシステム2000のさまざまなモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例は、
図21に示されるものよりも多くのまたは少ないモジュールを含んでいてもよい。
【0047】
例示的なオペレーションにおいて、(1)において、クライアント装置2124または2126などのクライアント装置を使用する顧客は、クラウドインフラストラクチャシステム2000によって提供されるさまざまなサービスをブラウズし、クラウドインフラストラクチャシステム2000によって提供される1つ以上のサービスについてのサブスクリプションのオーダーを行なうことによって、クラウドインフラストラクチャシステム2000と対話し得る。特定の実施例では、顧客は、ストアUI2110またはクラウドUI2112にアクセスし、これらのユーザインターフェイスを介してサブスクリプションオーダーを行ない得る。
【0048】
顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム2000によって受取られるオーダー情報は、顧客と、顧客がサブスクライブする予定の、クラウドインフラストラクチャシステム2000によって提供される1つ以上のサービスとを特定する情報を含んでいてもよい。単一のオーダーは、複数のサービスのオーダーを含んでいてもよい。例えば、顧客は、クラウドUI2112にログインして、同一のオーダーにおいてCRMサービスおよびJavaクラウドサービスについてのサブスクリプションを要求し得る。
【0049】
さらに、オーダーは、オーダーされたサービスについての1つ以上のサービスレベルも含んでいてもよい。本明細書で使用され、以下でより詳細に説明されるように、サービスについてのサービスレベルは、ストレージの量、コンピューティングリソースの量、データ転送設備などの、サブスクリプションの文脈において要求されたサービスを提供するために割り当てられるリソースの量を決定する。例えば、ベーシックなサービスレベルは、最小レベルのストレージ、データ伝送またはユーザの数を提供することができ、より高いサービスレベルは、さらなるリソースを含み得る。
【0050】
また、いくつかの例では、クラウドインフラストラクチャシステム2000によって受取られるオーダー情報は、顧客レベルおよびサービスが求められる期間を示す情報を含んでいてもよい。顧客レベルは、サブスクリプション要求を行なう顧客の優先度を規定する。一例では、優先度は、顧客とクラウドサービスのプロバイダとの間で合意されたサービスレベル合意書(Service Level Agreement:SLA)によって規定されるようにクラウドインフラストラクチャシステム2000が顧客に保証または約束するサービスの質に基づいて決定され得る。一例では、さまざまな顧客レベルは、ベーシックレベル、シルバーレベルおよびゴールドレベルを含む。サービスの期間は、当該サービスの開始日および時刻と、当該サービスが求められる期間とを規定し得る(例えばサービス終了日および時刻が規定されてもよい)。
【0051】
一実施例では、顧客は、ストアUI2110を介して新たなサブスクリプションを要求するか、またはクラウドUI2112を介してトライアルサブスクリプションを要求し得る。特定の実施例では、ストアUI2110は、サービスプロバイダの電子商取引ストアフロントに相当し得る(例えばオラクルクラウドサービスのためのwww.oracle.com/store)。クラウドUI2112は、サービスプロバイダのためのビジネスインターフェイスに相当し得る。顧客は、クラウドUI2112を介して、利用可能なサービスを調査し、関心のあるサービスにサインアップすることができる。クラウドUI2112は、クラウドインフラストラクチャシステム2000によって提供されるトライアルサブスクリプションをオーダーするのに必要なユーザ入力を取込む。また、クラウドUI2112は、アカウント機能を閲覧し、クラウドインフラストラクチャシステム2000内に位置するランタイム環境を構成するために使用され得る。新たなサブスクリプションのオーダーを行なうことに加えて、ストアUI2110は、サブスクリプションのサービスレベルの変更、サブスクリプションの期間の延長、サブスクリプションのサービスレベルの向上、既存のサブスクリプションの終了などの他のサブスクリプション関連のタスクを顧客が実行できるようにもし得る。
【0052】
(1)につきオーダーが行なわれた後、(2)において、ストアUI2110またはクラウドUI2112のいずれかを介して受取られるオーダー情報がオーダーデータベース2142に格納され、当該オーダーデータベース2142は、クラウドインフラストラクチャシステム2000によって操作されて他のシステム要素と連携して利用されるいくつかのデータベースのうちの1つであり得る。オーダーデータベース2142は
図21では単一のデータベースとして論理的に示されているが、実際の実現例では、これは1つ以上のデータベースを備えていてもよい。
【0053】
(3)において、オーダーはオーダー管理モジュール2114に送られる。オーダー管理モジュール2114は、オーダーの検証および検証時のオーダーの予約などのオーダーに関連する課金およびアカウンティング機能を実行するように構成される。特定の実施例では、オーダー管理モジュール2114は、契約管理モジュールと、インストールベースモジュールとを含んでいてもよい。契約管理モジュールは、クラウドインフラストラクチャシステム2000との顧客のサービスレベル合意書(SLA)などの顧客のサブスクリプションオーダーに関連付けられた契約情報を格納し得る。インストールベースモジュールは、顧客のサブスクリプションオーダーにおけるサービスの詳細な説明を含み得る。オーダー情報に加えて、インストールベースモジュールは、サービスに関連するインストールの詳細、製品状態およびサービスに関連するサポートサービス履歴を追跡し得る。顧客が新たなサービスをオーダーするかまたは既存のものをアップグレードすると、インストールベースモジュールは、新たなオーダー情報を自動的に追加し得る。
【0054】
(4)において、オーダーに関する情報は、TASモジュール2104に通信される。一実施例では、TASモジュール2104は、顧客によって行なわれたオーダーについてのサービスおよびリソースのプロビジョニングをオーケストレート(orchestrate)するためにオーダー情報を利用する。(5)において、TASコンポーネント2104は、SDIモジュール2106のサービスを使用してサブスクライブされたサービスをサポートするために、リソースのプロビジョニングをオーケストレートする。(6)において、TASモジュール2104は、SDIモジュール2106から受取られた、プロビジョニングされたオーダーに関連する情報をサービスモジュール2102に提供する。いくつかの実施例では、(7)において、SDIモジュール2106は、顧客のサブスクリプションオーダーを実現するために必要なリソースを割り当てて構成するために、サービスモジュール2102によって提供されるサービスも使用し得る。
【0055】
(8)において、サービスモジュール2102は、オーダーの状態に関する通知をクライアント装置2124、2126および2128上の顧客に送る。
【0056】
特定の実施例では、TASモジュール2104は、互いに関連付けられたビジネスプロセスを管理し、ビジネスロジックを適用してオーダーがプロビジョニングに進むべきか否かを決定するオーケストレーションコンポーネントとして機能する。一実施例では、新たなサブスクリプションのオーダーを受取ると、TASモジュール2104は、リソースを割り当てて、当該サブスクリプションオーダーを実現するために必要なそれらのリソースを構成するために、SDIモジュール2106に要求を送る。SDIモジュール2106は、顧客によってオーダーされたサービスのためのリソースの割当てを可能にする。SDIモジュール2106は、クラウドインフラストラクチャシステム2000によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間の抽象化のレベルを提供する。したがって、TASモジュール2104は、サービスおよびリソースがオンザフライで実際にプロビジョニングされるか否か、または予めプロビジョニングされて要求時に単に配分/割り当てられるか否かなどの実装詳細から切離され得る。
【0057】
特定の実施例では、ユーザは、オーダー管理モジュール2114と直接対話して、オーダーの検証および検証時のオーダーの予約などの課金およびアカウンティング関連機能を実行するためにストアUI2110を使用し得る。いくつかの実施例では、顧客がオーダーを行なう代わりに、(9)において、オーダーはその代わりに、顧客のサービス担当者または販売担当者などの顧客を代表する販売スタッフ2118によって行なわれてもよい。販売スタッフ2118は、オーダーを行なうためまたは顧客に見積もりを提供するためにオーダー管理モジュール2114によって提供されるユーザインターフェイス(
図21には図示せず)を介して、オーダー管理モジュール2114と直接対話し得る。例えば、これは、オーダーがオーダー管理モジュール2114を介して顧客の販売担当者によって行われ得る大口顧客のためになされ得る。販売担当者は、顧客を代表してサブスクリプションを準備し得る。
【0058】
EMモジュール2108は、クラウドインフラストラクチャシステム2000における顧客のサブスクリプションの管理および追跡に関連するアクティビティをモニタリングするように構成される。EMモジュール2108は、使用されるストレージの量、転送されるデータの量、ユーザの数、システムアップ時間およびシステムダウン時間の量などのサブスクリプションオーダーにおけるサービスについての使用統計を収集する。(10)において、クラウドインフラストラクチャシステム2000のプロバイダの従業員であってもよいホストオペレータスタッフ2120は、サービスがクラウドインフラストラクチャシステム2000内でプロビジョニングされるシステムおよびリソースを管理するために、エンタープライズマネージャユーザインターフェイス(
図21には図示せず)を介してEMモジュール2108と対話し得る。
【0059】
アイデンティティ管理(IDM)モジュール2100は、クラウドインフラストラクチャシステム2000においてアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成される。一実施例では、IDMモジュール2100は、クラウドインフラストラクチャシステム2000によって提供されるサービスを利用したい顧客についての情報を制御する。このような情報は、このような顧客のアイデンティティを認証する情報、および、さまざまなシステムリソース(例えばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してそれらの顧客がどのアクションを実行することが認可されるかを表わす情報を含み得る。また、IDMモジュール2100は、各顧客についての記述的情報および当該説明的情報がどのようにして誰によってアクセスおよび修正され得るかについての記述的情報の管理を含み得る。
【0060】
一実施例では、アイデンティティ管理モジュール2100によって管理される情報は、別個のアイデンティティドメインを作成するために分割可能である。特定のアイデンティティドメインに属する情報は、すべての他のアイデンティティドメインから分離されることができる。また、アイデンティティドメインは、複数の別個のテナントによって共有可能である。各々のこのようなテナントは、クラウドインフラストラクチャシステム2000においてサービスにサブスクライブする顧客であり得る。いくつかの実施例では、顧客は、1つまたは多くのアイデンティティドメインを有することができ、各アイデンティティドメインは、1つ以上のサブスクリプションに関連付けられ得て、各サブスクリプションは、1つまたは多くのサービスを有する。例えば、単一の顧客は大規模事業体に相当し得て、この大規模事業体内の部門/部署についてアイデンティティドメインが作成されてもよい。さらに、EMモジュール2108およびIDMモジュール2100は、クラウドインフラストラクチャシステム2000において顧客のサブスクリプションを管理および追跡するために、それぞれ(11)および(12)においてオーダー管理モジュール2114と対話し得る。
【0061】
一実施例では、(13)において、サポートUI2116を介してサポートサービスも顧客に提供され得る。一実施例では、サポートUI2116は、サポートスタッフが(14)においてサポートサービスを実行するようにサポートバックエンドシステムを介してオーダー管理モジュール2114と対話することを可能にする。クラウドインフラストラクチャシステム2000におけるサポートスタッフおよび顧客は、サポートUI2116を介して、バグ報告を提出し、これらの報告の状態を確認することができる。
【0062】
図21に図示されない他のインターフェイスもクラウドインフラストラクチャシステム2000によって提供されてもよい。例えば、アイデンティティドメイン管理者は、ドメインおよびユーザアイデンティティを構成するためにIDMモジュール2100へのユーザインターフェイスを使用し得る。また、顧客は、利用したい各サービスのための別個のインターフェイスにログインし得る。特定の実施例では、クラウドインフラストラクチャシステム2000によって提供される1つ以上のサービスにサブスクライブしたい顧客は、さまざまなロールおよび任務も割り当てられ得る。一実施例では、顧客に割り当てられ得るさまざまなロールおよび任務は、バイヤ、アカウント管理者、サービス管理者、アイデンティティドメイン管理者、またはクラウドインフラストラクチャシステム2000によって提供されるサービスおよびリソースを利用するユーザのロールおよび任務を含んでいてもよい。さまざまなロールおよび任務は、以下の
図23にさらに十分に示されている。
【0063】
図22Aは、本発明の実施例に係るクラウドインフラストラクチャシステムにおけるTASモジュールによって実行され得る処理を示す簡略化されたフローチャート2200を示す。
図22Aに示される処理は、1つ以上のプロセッサによって実行されるソフトウェア(例えばコード、命令、プログラム)、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、(例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の)メモリに格納されてもよい。
図22Aに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、
図22Aに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施例では、
図22Aに示される処理は、
図22Bに詳細に示されるように、TASコンポーネント2104における1つ以上のコンポーネントによって実行され得る。
【0064】
2202において、顧客のサブスクリプションオーダーが処理される。当該処理は、一例ではオーダーの認証を含んでいてもよい。オーダーの認証は、顧客がサブスクリプションの代金を支払ったことを保証すること、および、顧客が同一の名前を備えたサブスクリプションをまだ有していないことを保証すること、または、(CRMサービスの場合など)許可されないサブスクリプションタイプについて同一のアイデンティティドメインにおいて同一タイプの複数のサブスクリプションを顧客が作成しようと試みていないことを保証することを含む。また、処理は、クラウドインフラストラクチャシステム2000によって処理されている各オーダーについてのオーダーの状態の追跡を含んでいてもよい。
【0065】
2204において、オーダーに関連付けられたビジネスプロセスが特定される。いくつかの例では、複数のビジネスプロセスがオーダーについて特定され得る。各ビジネスプロセスは、オーダーのさまざまな局面を処理するための一連のステップを特定する。一例として、第1のビジネスプロセスは、オーダーのための物理的リソースのプロビジョニングに関連する1つ以上のステップを特定し得て、第2のビジネスプロセスは、オーダーについての顧客アイデンティティとともにアイデンティティドメインを作成することに関連する1つ以上のステップを特定し得て、第3のビジネスプロセスは、ユーザについての顧客記録の作成などのバックオフィス機能の実行、オーダーに関連するアカウンティング機能の実行などに関連する1つ以上のステップを特定し得る。特定の実施例では、オーダーにおけるさまざまなサービスを処理するためにさまざまなビジネスプロセスも特定されてもよい。例えば、CRMサービスおよびデータベースサービスを処理するためにさまざまなビジネスプロセスが特定されてもよい。
【0066】
2206において、2204でオーダーについて特定されたビジネスプロセスが実行される。オーダーに関連付けられたビジネスプロセスの実行は、ステップ2204において特定されたビジネスプロセスに関連付けられた一連のステップのオーケストレートを含んでいてもよい。例えば、オーダーのための物理リソースのプロビジョニングに関連するビジネスプロセスの実行は、リソースを割り当てて、サブスクリプションオーダーを実現するために必要なそれらのリソースを構成するために、SDIモジュール2106に要求を送ることを含んでいてもよい。
【0067】
2208において、プロビジョニングされたオーダーの状態に関する通知が顧客に送られる。ステップ2202、2204、2206および2208の実行に関連するさらなる説明については、
図22Bに詳細に記載されている。
【0068】
図22Bは、本発明の実施例に係るクラウドインフラストラクチャシステムにおけるTASモジュールにおける1つ以上のサブモジュールの簡略化された高レベル図を示す。一実施例では、
図22Bに示されるモジュールは、
図22Aに示されるステップ2202〜308に記載された処理を実行する。示される実施例では、TASモジュール2104は、オーダー処理モジュール2210と、ビジネスプロセス識別子2212と、ビジネスプロセスエクセキュータ2216と、超過フレームワーク2222と、ワークフロー特定モジュール2224と、バンドルされたサブスクリプション生成モジュール2226とを備える。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
図22Bに示されるTASモジュールのさまざまなモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例は、
図22Bに示されるものよりも多くのまたは少ないモジュールを含んでいてもよい。
【0069】
一実施例では、オーダー処理モジュール2210は、顧客からのオーダーを1つ以上の入力ソース2221から受取る。例えば、オーダー処理モジュール2210は、一実施例ではクラウドUI2112またはストアUI2110を介してオーダーを直接受取ってもよい。代替的に、オーダー処理モジュール2210は、オーダー管理モジュール2114またはオーダーデータベース2142からオーダーを受取ってもよい。次いで、オーダー処理モジュール2210は、オーダーを処理する。特定の実施例では、オーダーの処理は、サービスタイプ、サービスレベル、顧客レベル、リソースのタイプ、サービスインスタンスに割り当てられるリソースの量、およびサービスが求められる期間などのオーダーについての情報を含む顧客記録の生成を含む。処理の一部として、オーダー処理モジュール2210は、オーダーが有効なオーダーであるか否かも決定する。これは、顧客が同一の名前を備えたサブスクリプションをまだ有していないことを保証すること、または、(フュージョンCRMサービスの場合など)許可されないサブスクリプションタイプについて同一のアイデンティティドメインにおいて同一タイプの複数のサブスクリプションを顧客が作成しようと試みていないことを保証することを含む。
【0070】
また、オーダー処理モジュール2210は、オーダーについてのさらなる処理を実行し得る。処理は、クラウドインフラストラクチャシステム2000によって処理されている各オーダーについてのオーダーの状態の追跡を含んでいてもよい。一実施例では、オーダー処理モジュール2210は、オーダーに関係するいくつかの状態を特定するために各オーダーを処理し得る。一例では、オーダーのさまざまな状態は、初期化状態、プロビジョニング状態、アクティブ状態、管理が必要な状態、エラー状態などであり得る。初期化状態は、新たなオーダーの状態を指し、プロビジョニング状態は、オーダーについてのサービスおよびリソースがプロビジョニングされた時点のオーダーの状態を指す。オーダーがTASモジュール2104によって処理され、その趣旨の通知が顧客に与えられると、オーダーはアクティブ状態になる。問題を解決するために管理者による介入が必要な場合、オーダーは管理が必要な状態である。オーダーを処理できない場合、オーダーはエラー状態である。オーダー進捗状態の維持に加えて、オーダー処理モジュール2210は、プロセスの実行中に遭遇するいかなる障害についても詳細な情報を維持する。他の実施例では、以下で詳細に記載されるように、オーダー処理モジュール2210によって実行されるさらなる処理は、サブスクリプションにおけるサービスのサービスレベルの変更、サブスクリプションに含まれるサービスの変更、サブスクリプションの期間の延長、およびサブスクリプションのキャンセルまたはサブスクリプションにおけるさまざまな期間にわたるさまざまなサービスレベルの指定も含んでいてもよい。
【0071】
オーダーがオーダー処理モジュール2210によって処理された後、オーダーがプロビジョニングに進むべきか否かを決定するためにビジネスロジックが適用される。一実施例では、オーダーのオーケストレートの一部として、ビジネスプロセス識別子2212は、処理されたオーダーをオーダー処理モジュール2210から受取って、ビジネスロジックを適用して、処理中のオーダーで使用されるべき特定のビジネスプロセスを特定する。一実施例では、ビジネスプロセス識別子2212は、オーダーで使用されるべき特定のビジネスプロセスを決定するために、サービスカタログ2214に格納されている情報を利用し得る。一実施例では、
図22Aに示されるように、オーダーについて複数のビジネスプロセスが特定されてもよく、各ビジネスプロセスは、オーダーのさまざまな局面を処理するための一連のステップを特定する。別の実施例では、上記のように、CRMサービスまたはデータベースサービスなどのさまざまなタイプのサービスまたはサービスの組み合わせについてさまざまなビジネスプロセスが規定されてもよい。一実施例では、サービスカタログ2214は、オーダーを特定のタイプのビジネスプロセスにマッピングする情報を格納し得る。ビジネスプロセス識別子2212は、処理中のオーダーについての特定のビジネスプロセスを特定するためにこの情報を使用し得る。
【0072】
ビジネスプロセスが特定されると、ビジネスプロセス識別子2212は、実行されるべき特定のビジネスプロセスをビジネスプロセスエクセキュータ2216に通信する。次いで、ビジネスプロセスエクセキュータ2216は、クラウドインフラストラクチャシステム2000における1つ以上のモジュールと連携して動作することによって、特定されたビジネスプロセスのステップを実行する。いくつかの実施例では、ビジネスプロセスエクセキュータ2216は、ビジネスプロセスに関連付けられたステップを実行するためのオーケストレータのロールを果たす。例えば、ビジネスプロセスエクセキュータは、オーダーに関連するワークフローを特定して、オーダーにおけるサービスの超過を決定するか、またはオーダーに関連するサービスコンポーネントを特定するビジネスプロセスにおけるステップを実行するようにオーダー処理モジュール2210と対話し得る。
【0073】
一例では、ビジネスプロセスエクセキュータ2216は、サブスクリプションオーダーにおいて要求されたサービスのためにリソースを割り当ててプロビジョニングするためのビジネスプロセスにおけるステップを実行するようにSDIモジュール2106と対話する。この例では、ビジネスプロセスにおける各ステップ毎に、ビジネスプロセスエクセキュータ2216は、リソースを割り当てて、特定のステップを実現するために必要なリソースを構成するために、SDIコンポーネント2106に要求を送信し得る。SDIコンポーネント2106は、リソースの実際の割当てを担当する。オーダーのビジネスプロセスのすべてのステップが実行されると、ビジネスプロセスエクセキュータ2216は、サービスコンポーネント2102のサービスを利用することによって、処理されたオーダーの通知を顧客に送信し得る。通知は、処理されたオーダーの詳細を有する電子メール通知を顧客に送ることを含んでいてもよい。また、電子メール通知は、顧客がサブスクライブされたサービスにアクセスすることを可能にするための、オーダーに関連するデプロイメント情報も含んでいてもよい。
【0074】
特定の実施例では、TASモジュール2104は、TASモジュール2104がクラウドインフラストラクチャシステム2000における他のモジュールと対話し、他のモジュールがTASモジュール2104と対話することを可能にする1つ以上のTASアプリケーションプログラミングインターフェイス(Application Programming Interface:API)2218を提供し得る。例えば、TAS APIは、顧客のサブスクリプションオーダーのためのリソースをプロビジョニングするために、非同期シンプル・オブジェクト・アクセス・プロトコル(Simple Object Access Protocol:SOAP)ベースのウェブサービスコールを介してSDIモジュール2106と対話するシステムプロビジョニングAPIを含んでいてもよい。一実施例では、TASモジュール2104は、システムおよびサービスインスタンスの作成および削除を達成し、サービスインスタンスを向上したサービスレベルに切替え、サービスインスタンスを関連付けるためにも、システムプロビジョニングAPIを利用し得る。この一例は、安全なウェブサービス通信を可能にするためのフュージョンアプリケーションサービスインスタンスへのJavaサービスインスタンスの関連付けである。また、TAS APIは、処理されたオーダーを顧客に通知するためにサービスモジュール2102と対話する通知APIも含んでいてもよい。特定の実施例では、TASモジュール2104は、サブスクリプション情報、機能停止および通知(例えば計画されたダウンタイム)もサービスコンポーネント2102に定期的に伝える。
【0075】
特定の実施例では、TASモジュール2104は、使用されるストレージの量、転送されるデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などのプロビジョニングされたサービスの各々についての使用統計をEMモジュール2108から定期的に受取る。超過フレームワーク2222は、サービスの過剰使用が生じたか否かを決定し、生じた場合には超過に対してどれぐらい課金されるかを決定するために当該使用統計を利用し、この情報をオーダー管理モジュール2114に提供する。
【0076】
特定の実施例では、TASモジュール2104は、顧客のサブスクリプションオーダーの処理に関連付けられた1つ以上のワークフローを特定するように構成されるオーダーワークフロー特定モジュール2224を含む。特定の実施例では、TASモジュール2104は、クラウドインフラストラクチャシステム2000によって提供される1つ以上のサービスについてのサブスクリプションオーダーを顧客が行なうと顧客のためにサブスクリプションオーダーを生成するためのサブスクリプションオーダー生成フレームワーク2226を含んでいてもよい。一実施例では、サブスクリプションオーダーは、当該サブスクリプションオーダーにおいて顧客によって要求されたサービスを提供することを担当する1つ以上のサービスコンポーネントを含む。
【0077】
さらに、TASモジュール2104は、もしあれば顧客が利用可能な履歴情報を考慮に入れながら、顧客によってサブスクライブされた1つ以上のサービスのためのリソースのプロビジョニングを可能にするために、テナント情報システム(Tenant Information System:TIS)データベース2220などの1つ以上のさらなるデータベースとも対話し得る。TISデータベース2220は、顧客によってサブスクライブされたオーダーに関係する履歴オーダー情報および履歴使用情報を含んでいてもよい。
【0078】
TASモジュール2104は、さまざまなデプロイメントモデルを使用してデプロイされ得る。特定の実施例では、デプロイメントは、1つ以上の分散されたコンポーネントと遣り取りする中心コンポーネントを含む。分散されたコンポーネントは、例えばさまざまなデータセンタとしてデプロイされてもよく、したがってデータセンタコンポーネントとも称されてもよい。中心コンポーネントは、クラウドインフラストラクチャシステム2000においてオーダーを処理してサービスをまとめるための機能を含み、データセンタコンポーネントは、サブスクライブされたサービスにリソースを提供するランタイムシステムをプロビジョニングして動作させるための機能を提供する。
【0079】
図23は、本発明の実施例に係るTASモジュールの例示的な分散型デプロイメントを示す。
図23に示される実施例では、TASモジュール2104の分散型デプロイメントは、TAS中心コンポーネント2300と、1つ以上のTASデータセンタ(Data Center:DC)コンポーネント2302、2304および2306とを含む。これらのコンポーネントは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【0080】
一実施例では、TAS中心コンポーネント2300の任務は、顧客オーダーを受取って、新たなサブスクリプションの作成、サブスクリプションにおけるサービスのサービスレベルの変更、サブスクリプションに含まれるサービスの変更、およびサブスクリプションの期間の延長、またはサブスクリプションのキャンセルなどのオーダー関連のビジネスオペレーションを実行するための集中型コンポーネントを提供することを含むが、これに限定されるものではない。また、TAS中心コンポーネント2300の任務は、クラウドインフラストラクチャシステム2000によって必要とされるサブスクリプションデータを維持および供給すること、ならびに、すべてのバックオフィスインタラクションに対処するためにオーダー管理モジュール2114、サポートUI2116、クラウドUI2112およびストアUI2110と遣り取りすることも含んでいてもよい。
【0081】
一実施例では、TAS DC2302、2304および2306の任務は、顧客によってサブスクライブされた1つ以上のサービスのためのリソースのプロビジョニングをオーケストレートするためのランタイムオペレーションを実行することを含むが、これに限定されるものではない。また、TAS DC2302、2304および2306は、サブスクリプションオーダーのロッキング、アンロッキング、イネーブルまたはディスエーブル、オーダーに関連するメトリクスの収集、オーダーの状態の決定、およびオーダーに関連する通知イベントの送信などのオペレーションを実行するための機能も含む。
【0082】
図23に示される分散型TASシステムの例示的なオペレーションでは、TAS中心コンポーネント2300は、最初に、クラウドUI2112、ストアUI2110を介して、オーダー管理システム2114を介して、またはオーダーデータベース2142を介して、顧客からオーダーを受取る。一実施例では、顧客は、財務情報ならびにサブスクリプションをオーダーおよび/または変更するための権限を有するバイヤに相当する。一実施例では、オーダー情報は、顧客、顧客がサブスクライブしたいサービスのタイプ、および要求への対処を担当するアカウント管理者を特定する情報を含む。特定の実施例では、アカウント管理者は、クラウドインフラストラクチャシステム2000によって提供される1つ以上のサービスへのサブスクリプションについてのオーダーを顧客が行なうと、顧客によって任命され得る。オーダー情報に基づいて、TAS中心コンポーネント2300は、オーダーが発生するアメリカ、EMEAまたはアジア太平洋などの世界のデータ領域、およびオーダーをプロビジョニングするためにデプロイされる特定のTAS DC(例えば2302、2304または2306)を特定する。一実施例では、オーダーをプロビジョニングするためにデプロイされる(例えばDC2302、2304または2306の中からの)特定のTAS DCは、要求が発生した地理的なデータ領域に基づいて決定される。
【0083】
次いで、TAS中心コンポーネント2300は、オーダー要求についてのサービスをプロビジョニングするためにオーダー要求を特定のTAS DCに送る。一実施例では、TAS DC2302、2304または2306は、特定のTAS DCにおいてオーダー要求を処理することを担当するサービス管理者およびアイデンティティドメイン管理者を特定する。サービス管理者およびアイデンティティ管理者は、サブスクリプションオーダーにおいて特定されるアカウント管理者によって任命され得る。TAS DC2302、2304または2306は、オーダーのための物理リソースのプロビジョニングをオーケストレートするためにSDIモジュール2104と通信する。それぞれのTAS DC2302、2304または2306におけるSDIコンポーネント2104は、リソースを割り当てて、サブスクリプションオーダーを実現するために必要なそれらのリソースを構成する。
【0084】
特定の実施例では、TAS DC2302、2304または2306は、サブスクリプションに関連付けられたアイデンティティドメインを特定する。SDIコンポーネント2106は、既存のアイデンティティドメインの特定または新たなアイデンティティドメインの作成のためにアイデンティティドメイン情報をIDMコンポーネント200(
図21に図示)に提供し得る。オーダーがそれぞれのTAS DC2302、2304または2306におけるSDIモジュールによってプロビジョニングされると、TAS中心コンポーネント2300は、サポートシステムにおけるプロビジョニングされたリソースに関する情報をサポートUI2116を介して配置し得る。情報は、例えばサービスに関連するリソースメトリクスおよびサービスの使用統計の表示を含んでいてもよい。
【0085】
オペレーション時に、各データセンタにおいて、EMモジュール2108は、当該データセンタにおいてプロビジョニングされたプロビジョニングされたサービスの各々について、使用されるストレージの量、転送されるデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などの使用統計を定期的に収集する。これらの統計は、EMモジュール2108にローカルな(すなわち、同一のデータセンタにおける)TAS DCに提供される。実施例では、TAS DCは、サービスの過剰使用が生じたか否かを決定し、生じた場合には超過に対してどれぐらい課金されるかを決定するために使用統計を使用し、課金情報をオーダー管理システム2114に提供し得る。
【0086】
図24は、本発明の実施例に係るクラウドインフラストラクチャシステムにおける1つ以上のモジュールとのSDIモジュールのインタラクションを示す簡略ブロック図である。一実施例では、SDIモジュール2106は、TASモジュール2104によって受取られたサブスクリプションオーダーにおけるサービスのためのリソースをプロビジョニングするためにTASモジュール2104と対話する。特定の実施例では、
図24に示されるモジュールのうちの1つ以上は、クラウドインフラストラクチャシステム2000内のモジュールであってもよい。他の実施例では、SDIモジュール2106と対話するモジュールのうちの1つ以上は、クラウドインフラストラクチャシステム2000の外側にあってもよい。また、代替的な実施例は、
図24に示されるものよりも多くのまたは少ないモジュールを有していてもよい。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【0087】
一実施例では、SDIモジュール2106におけるモジュールは、クラウドインフラストラクチャシステム2000内のSaaSプラットフォーム2002およびPaaSプラットフォーム2004における1つ以上のモジュールを含んでいてもよい。さまざまなサービスのためのリソースのプロビジョニングを行なうために、SDIモジュール2106は、各々が特定のタイプのサービスのためのリソースのプロビジョニングに役立つようにカスタマイズされるさまざまな他のモジュールと対話し得る。例えば、
図24に示されるように、SDIモジュール2106は、JavaクラウドサービスをプロビジョニングするためにJavaサービスプロビジョニング制御モジュール2400と対話し得る。一実施例では、Javaサービスプロビジョニング制御コンポーネント2400は、Javaクラウドサービスをプロビジョニングするために実行される一組のタスクを含むSDIモジュール2106によって規定されるJavaクラウドサービス(Java Cloud Service:JCS)アセンブリをデプロイし得る。次いで、インフラストラクチャリソース2006は、Javaクラウドサービスをプロビジョニングするために必要なリソースを決定する。
【0088】
他の例として、SDIモジュール2106は、バーチャル・アセンブリ・ビルダ(Virtual Assembly Builder:VAB)モジュール2402、アプリケーション・エクスプレス(Application Express:APEX)デプロイヤモジュール2404、仮想マシン(Virtual Machine:VM)モジュール2406、IDMモジュール2100およびデータベースマシンモジュール2018などの1つ以上のモジュールと対話し得る。VABモジュール2402は、完全な複数層アプリケーション環境を構成およびプロビジョニングするための機能を含む。一実施例では、VABモジュール2402は、VMモジュール2406によって提供されるサービスを使用してクラウドインフラストラクチャシステム2000においてミドルウェア(Middleware:MW)サービスをプロビジョニングするために、SDIモジュール2106によって規定されるMWサービスアセンブリをデプロイする。APEXデプロイヤモジュール2404は、データベースサービスを構成およびプロビジョニングするための機能を含む。一実施例では、APEXデプロイヤモジュール2404は、インフラストラクチャリソース2006によって提供されるリソースを使用してクラウドインフラストラクチャシステム2000においてデータベースサービスをプロビジョニングするために、SDIモジュール2106によって規定されるデータベースサービスアセンブリをデプロイする。SDIモジュール2106は、クラウドインフラストラクチャシステム2000において複数のアプリケーションにまたがるアクセス管理などのアイデンティティサービスを提供するためにIDMモジュール2100と対話する。
【0089】
図25は、本発明の実施例に係るSDIモジュールのサブモジュールの簡略化された高レベル図を示す。
図25に示される実施例では、SDIモジュール2106は、SDI−ウェブサービス(Web Service:WS)モジュール2500と、SDI要求コントローラモジュール2502と、SDIタスクマネージャモジュール2504と、SDIモニタリングモジュール2506と、SDIデータアクセスモジュール2508と、SDI共通ライブラリモジュール2510と、SDIコネクタモジュール2512とを含む。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
図25に示されるSDIモジュール2106およびそのさまざまなモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例は、
図25に示されるものよりも多くのまたは少ないモジュールを有していてもよい。これらのモジュールおよびそれらの機能については、以下で詳細に説明する。
【0090】
SDI−WSモジュール2500は、TASコンポーネント2104のビジネスプロセスエクセキュータ2216から、オーダーに関連付けられたビジネスにおけるステップを受取るための機能を含む。一実施例では、SDI−WSモジュール2500は、ビジネスプロセスの各ステップを構文解析し、当該ステップをSDIモジュール2106によって使用される内部表現に変換する。一実施例では、オーダーに関連付けられたビジネスプロセスの各ステップは、SDI−WSモジュール2500へのSOAP要求の形態で、ウェブサービス処理層を介して(例えば
図22Bに示されるシステムプロビジョニングAPIを介して)到着する。
【0091】
SDI要求コントローラモジュール2502は、SDIモジュール2106における内部要求処理エンジンであり、非同期要求処理、同時要求処理、同時タスク処理、オーダー要求に関連するフォールト・トレラントな回復およびプラグインサポートを実行するための機能を含む。一実施例では、SDI要求コントローラモジュール2502は、オーダーに関連付けられたビジネスプロセスの各ステップをSDI−WSモジュール2500から受入れ、当該ステップをSDIタスクマネージャモジュール2504に提出する。
【0092】
SDIタスクマネージャモジュール2504は、ビジネスプロセスにおいて規定された各ステップを、特定のステップをプロビジョニングするための一連のタスクに変換する。特定のステップのための一組のタスクがプロビジョニングされると、SDIタスクマネージャモジュール2504は、特定のステップを実現するためにプロビジョニングされたリソースの詳細を有するオーダーペイロードを含むオペレーション結果により、TASモジュール2104におけるビジネスプロセスエクセキュータ2216に応答する。SDIタスクマネージャモジュール2504は、オーダーに関連付けられた特定のビジネスプロセスのすべてのステップが完了するまで、このプロセスを繰返す。
【0093】
特定の実施例では、SDIタスクマネージャモジュール2504は、SDIコネクタモジュール2512のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換する。SDIコネクタモジュール2512は、オーダー要求に関連する1つ以上のサービスをプロビジョニングするために、SDIタスクマネージャモジュール2504によって規定されるタスクのデプロイメントに対処するための1つ以上のコネクタを含む。特定の実施例では、コネクタのうちの1つ以上は、特定のサービスタイプに特有のタスクに対処することができ、他のコネクタは、さまざまなサービスタイプにわたって共通のタスクに対処することができる。一実施例では、SDIコネクタモジュール2512は、オーダー要求に関連するサービスおよびリソースをプロビジョニングするためにクラウドインフラストラクチャシステム2000における外部モジュール(
図24に図示)のうちの1つ以上と遣り取りする一組のコネクタ(ラッパーAPI)を含む。例えば、アプリケーション・エクスプレス(APEX)コネクタ2514は、データベースサービスをプロビジョニングするために、APEXデプロイヤモジュール2404と遣り取りする。ウェブセンタコネクタ2516(Web Center Connector:WCC)は、ウェブサービスをプロビジョニングするために、クラウドインフラストラクチャシステム2000におけるウェブセンタモジュールと遣り取りする。ウェブセンタモジュールは、ユーザエンゲージメントプラットフォームであり、クラウドインフラストラクチャシステム2000において人々と情報とのコネクティビティを与えるための機能を含む。
【0094】
特定の実施例では、ミドルウェアアプリケーション(Middleware Application:MA)コネクタ2518は、ミドルウェアアプリケーションサービスをプロビジョニングするために、クラウドインフラストラクチャシステム2000におけるVABモジュール2402と遣り取りする。NUVIAQコネクタ2520は、Javaサービスをプロビジョニングするために、VABモジュール2402と遣り取りする。IDMコネクタ2522は、クラウドインフラストラクチャシステム2000においてサービスおよびリソースにサブスクライブするユーザにアイデンティティおよびアクセス管理を提供するために、IDMモジュール2100と遣り取りする。バーチャル・アセンブリ・ビルダ(VAB)コネクタ2524は、完全な複数層アプリケーション環境を構成およびプロビジョニングするために、クラウドインフラストラクチャシステム2000におけるVABモジュール2402と遣り取りする。プラグインコネクタ2526は、クラウドインフラストラクチャシステム2000におけるコンポーネントを管理およびモニタリングするために、EMモジュール2108と遣り取りする。HTTPサーバコネクタ2528は、クラウドインフラストラクチャシステム2000においてユーザに接続サービスを提供するために、PaaSプラットフォームにおける1つ以上のウェブサーバと遣り取りする。
【0095】
SDIモジュール2106におけるSDIモニタリングモジュール2506は、Java管理拡張(Java Management Extensions:JMX)要求を受取るためのインバウンドインターフェースを提供する。また、SDIモニタリングモジュール2506は、クラウドインフラストラクチャシステム2000においてアプリケーション、システムオブジェクトおよび装置を管理およびモニタリングするためのツールも提供する。SDIデータアクセスモジュール2508は、Javaデータベースコネクティビティ(Java Database Connectivity:JDBC)要求を受取るためのインバウンドインターフェースを提供する。SDIデータアクセスモジュール2508は、クラウドインフラストラクチャシステム2000において、データアクセスをサポートし、オブジェクト関係マッピング、javaトランザクションAPIサービス、データアクセスオブジェクトおよび接続プーリングを提供する。SDI共通ライブラリモジュール2510は、SDIモジュール2106におけるモジュールのための構成サポートを提供する。
【0096】
上記の
図25の実施例は、本発明の実施例に係るSDIモジュールにおけるモジュールを記載している。
図26Aは、本発明の実施例に係るクラウドインフラストラクチャシステムにおけるSDIモジュールのモジュールによって実行され得る処理を示す簡略化されたフローチャート2600を示す。
図26Aに示される処理は、1つ以上のプロセッサによって実行されるソフトウェア(例えばコード、命令、プログラム)、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、(例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の)メモリに格納されてもよい。
図26Aに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、
図26Aに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施例では、
図26Aに示される処理は、
図25に詳細に示されるSDIモジュール2106における1つ以上のモジュールによって実行され得る。
【0097】
2602において、サブスクリプションオーダーに関連付けられたビジネスプロセスが受取られる。一実施例では、SDIモジュール2106におけるSDI−WSモジュール2500は、サブスクリプションオーダーに関連付けられたビジネスプロセスにおける1つ以上のステップをビジネスプロセスエクセキュータ2216から受取る。2604において、ビジネスプロセスにおける各ステップは、サブスクリプションオーダーのためのリソースをプロビジョニングするための一連のタスクに変換される。一実施例では、SDIモジュール2106におけるSDIタスクマネージャモジュール2504は、SDIコネクタモジュール2512のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換する。2606において、サブスクリプションオーダーは、一連のタスクに基づいてプロビジョニングされる。一実施例では、
図25に示されるように、SDIコネクタモジュール2512は、サブスクリプションオーダーにおけるサービスのためのリソースをプロビジョニングするために、SDIタスクマネージャモジュール2504によって規定されるタスクのデプロイメントに対処するための1つ以上のコネクタを含む。
【0098】
図25に関して上記したように、SDIタスクマネージャモジュール2504は、SDIコネクタモジュール2512のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換し、SDIコネクタモジュール2512は、オーダー要求に関連する1つ以上のサービスをプロビジョニングするために、SDIタスクマネージャモジュール2504によって規定されるタスクのデプロイメントに対処するための1つ以上のコネクタを含んでいてもよい。コネクタのうちの1つ以上は、特定のサービスタイプに特有のタスクに対処することができ、他のコネクタは、さまざまなサービスタイプにわたって共通のタスクに対処することができる。一実施例では、SDIコネクタモジュール2512は、オーダー要求に関連するサービスおよびリソースをプロビジョニングするためにクラウドインフラストラクチャシステム2000における外部モジュール(
図24に図示)のうちの1つ以上と遣り取りする一組のコネクタ(ラッパーAPI)を含む。例えば、NUVIAQコネクタ2520は、JavaサービスをプロビジョニングするためにVABモジュール2402と遣り取りする。
【0099】
図26Bは、本発明の実施例に係るNuviaqシステム2610および他のクラウドインフラストラクチャシステムとのその関係の高レベルアーキテクチャを示す簡略ブロック図を示す。
図26Bに示されるNuviaqシステム2610は、
図26Bに示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、
図26Bに示される実施例は、本発明の実施例を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、Nuviaqシステム2610は、
図26Bに示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【0100】
特定の実施例では、Nuviaqシステム2610は、PaaSオペレーションをオーケストレートするためのランタイムエンジンを提供するように構成され得る。Nuviaqシステム2610は、他の製品およびサービスとの統合を容易にするためにウェブサービスAPIを提供し得る。また、Nuviaqシステム2610は、システムプロビジョニング、アプリケーションデプロイメントおよび関連付けられたライフサイクルオペレーションにおける複雑なワークフローのためのサポートを提供し、管理およびモニタリングソリューションと統合する。
【0101】
図26Bに示される実施例では、Nuviaqシステム2610は、Nuviaqプロキシ2612と、Nuviaqマネージャ2614と、Nuviaqデータベース2616とを備える。特定の実施例では、Nuviaqマネージャ2614は、Nuviaqシステム2610へのエントリポイントを提供し、ウェブサービスAPIを介してPaaSオペレーションへの安全なアクセスを提供する。内部では、Nuviaqマネージャ2614は、データベースにおいてシステム状態を追跡し、ワークフローエンジン上でのジョブの実行を制御する。パブリッククラウドでは、Nuviaqマネージャ2614は、プロビジョニングオペレーションおよびデプロイメントオペレーションをそれぞれ駆動するために、テナントプロビジョニングシステム(SDI2106)およびテナントコンソールによってアクセスされ得る。
【0102】
一実施例では、Nuviaqマネージャ2614は、内部ワークフローエンジンを介して非同期にジョブを実行する。ジョブは、所与のPaaSワークフローに特有のアクションのシーケンスであってもよい。アクションは、順番に実行されてもよく、任意のステップにおける障害は、結果としてジョブ全体の障害になる。多くのワークフローアクションは、EMコマンドラインインターフェース(cli)などのワークフローに関連する外部システムに権限を委任する。一実現例では、Nuviaqマネージャ2614アプリケーションは、ファイアウォール内で実行される関連付けられたHTTPサーバ(例えばオラクルHTTPサーバまたはOHS)インスタンスを有する21ノードウェブロジッククラスタにおいてホストされ得る。
【0103】
特定の実施例では、Nuviaqプロキシ2612は、Nuviaq APIへのパブリックアクセスポイントである。一実施例では、パブリックAPIのみがここで公開され得る。プロキシ2612によって受取られた要求は、Nuviaqマネージャ2614に送られ得る。一実施例では、Nuviaqプロキシ2612はファイアウォールの外側で実行される一方、マネージャ2614はファイアウォール内で実行される。一実現例では、Nuviaqプロキシ2612アプリケーションは、ファイアウォールの外側で実行されるウェブロジッククラスタ上で実行される。
【0104】
特定の実施例では、Nuviaqデータベース2616は、プラットフォームインスタンス、デプロイメント計画、アプリケーション、ウェブロジックドメイン、ジョブ、アラーとなどであるがこれらに限定されないさまざまなドメインエンティティを追跡する。必要に応じて、主キーがサービスデータベースと整合させられてもよい。
【0105】
一実施例では、プラットフォームインスタンス2618は、所与のテナントのためのウェブロジックサービスに必要なすべてのリソースを含んでいてもよい。
【0106】
Nuviaqシステム2610は、ウェブロジッククラウドサービスによって使用されるワークフローを実行するために、クラウドインフラストラクチャシステム2000のさらなるシステムに依拠し得る。これらの依存性は、SDI2106、IDM2100、ウイルススキャンシステム、サービスデータベース、CRMインスタンスなどへの依存性を含んでいてもよい。例えば、Nuviaqシステム2610は、SDI2106におけるアセンブリデプロイヤによって実行される機能に依存し得る。一実施例では、アセンブリデプロイヤは、OVAB(Oracle Virtual Assembly builder:オラクルバーチャル・アセンブリ・ビルダ)およびOVM(Oracle Virtual Machine:オラクル仮想マシン)とのインタラクションを管理するためのシステムである。Nuviaqシステム2610によって使用されるアセンブリデプロイヤの機能は、アセンブリをデプロイするための機能、アセンブリをアンデプロイするための機能、アセンブリデプロイメントを説明するための機能、アプライアンスをスケーリングするための機能などを含み得るが、これらに限定されるものではない。一実現例では、Nuviaqシステム2610は、ウェブサービスAPIを介してアセンブリデプロイヤにアクセスする。
【0107】
特定の実施例では、セキュリティポリシは、アプリケーションにデプロイされる前に特定のアーティファクトがウイルススキャンされることを必要とし得る。クラウドインフラストラクチャシステム2000は、この目的でウイルススキャンシステムを提供し得て、パブリッククラウドの複数のコンポーネントのためのサービスとしてスキャンを提供する。
【0108】
特定の実施例では、パブリッククラウドインフラストラクチャは、テナント(例えば顧客)およびそれらのサービスサブスクリプションについての情報を含むサービスデータベースを維持し得る。Nuviaqワークフローは、テナントもサブスクライブする他のサービスに対するクライアントとしてウェブロジックサービスを適切に構成するために、このデータにアクセスし得る。
【0109】
Nuviaqシステム2610は、そのセキュリティ統合のためにIDM2100に依存し得る。特定の実施例では、Javaサービスインスタンスは、CRMインスタンスに関連付けられ得る。当該関連付けにより、Javaサービスインスタンスにデプロイされたユーザプリケーションは、ウェブサービスコールを介してCRMインスタンスにアクセスできる。
【0110】
Nuviaqシステム2610によって提供されるサービスをさまざまなエンティティが使用し得る。Nuviaqシステム2610のこれらのクライアントは、プラットフォームインスタンス上でアプリケーションを管理するために顧客がアクセスし得る管理サーバ(例えばオラクル管理サーバ)ベースのユーザインターフェイスであるテナントコンソールと、アプリケーションライフサイクル管理オペレーションへのアクセスを提供するように拡張されたオラクルIDE(JDeveloper、NetBeansおよびOEPE)などのいくつかのIDEと、プラットフォームインスタンス上のライフサイクルオペレーションにアクセスするために利用可能な1つ以上のコマンドラインインターフェイス(Command Line Interface:CLI)とを含んでいてもよい。
【0111】
Nuviaqシステム2610についてのプロビジョニング使用事例、すなわちプロビジョニングプラットフォームインスタンスの使用事例は、Nuviaq APIの作成プラットフォームインスタンスオペレーションによって実現される。クラウドインフラストラクチャシステム2000の文脈では、Nuviaqシステムに対するサービスインスタンスは、Nuviaqプラットフォームインスタンスに対応する。プラットフォームインスタンスは、このインスタンスに関連するすべての後続のオペレーション上で使用されるユニークな識別子を割り当てられる。作成プラットフォームインスタンスアクションに提供されるプラットフォームデプロイメント記述子により、テナントのサブスクリプション要件を満たすようにプラットフォームインスタンスの構成を修正するプロパティを設定することができる。これらのプロパティは、例えば以下を含んでいてもよい:
プロパティ#1:oracle.cloud.service.weblogic.size
値:ベーシック、標準、エンタープライズ
説明:サブスクリプションタイプを規定する。これは、サーバの数、データベース限度およびサービス設定の質に影響を及ぼす。
【0112】
プロパティ#2:oracle.cloud.service.weblogic.trial
値:真、偽
説明:これがトライアルサブスクリプションであるか否かを示す。
【0113】
プロパティ#3:oracle.cloud.service.weblogic.crm
値:CRMサービスID
説明:このウェブロジックサービスインスタンスに関連付けられるべきCRMサービスを特定する。
【0114】
図26Cは、本発明の実施例に係るNuviaqシステムを使用するプロビジョニングプロセスのステップを示す例示的なシーケンス図を示す。
図26Cに示されるシーケンス図は、一例に過ぎず、限定的であるよう意図されるものではない。
【0115】
インストール/更新アプリケーションの使用事例、すなわちインストールアプリケーションオペレーションは、アプリケーションアーカイブがパブリッククラウドのセキュリティ要件を満たすことを確認した後に、実行中のウェブロジックサーバにアプリケーションをデプロイする。一実施例では、インストールアプリケーションアクションに提供されるアプリケーションデプロイメント記述子により、テナントのサブスクリプション要件を満たすようにアプリケーションの構成を修正するプロパティを設定することができる。これらのプロパティは、例えば以下を含んでいてもよい:
プロパティ:oracle.cloud.service.weblogic.state
値:実行、停止
説明:デプロイメント後のアプリケーションの初期状態を規定する。
【0116】
図26Dは、本発明の実施例に係るNuviaqシステムを使用するデプロイメントプロセスのステップを示す例示的なシーケンス図を示す。
図26Dに示されるシーケンス図は、一例に過ぎず、限定的であるよう意図されるものではない。
【0117】
したがって、特定の実施例では、協働して動作するTAS2104およびSDI2106は、クラウドインフラストラクチャシステム2000によって提供される一組のサービスから顧客によってオーダーされた1つ以上のサービスのためにリソースをプロビジョニングすることを担当する。例えば、一実施例では、データベースサービスをプロビジョニングするために、自動化されたプロビジョニングフローは、有料サブスクリプションについては以下のようなものであってもよい:
(1)顧客は、ストアUI2110を介して、サービスの有料サブスクリプションのオーダーを行なう。
【0118】
(2)TAS2104がサブスクリプションオーダーを受取る。
(3)サービスが利用可能であると、TAS2104は、SDI2106のサービスを使用することによってプロビジョニングを開始する。TAS2104は、ビジネスプロセスのオーケストレーションを実行してもよく、関連のビジネスプロセスを実行してオーダーのプロビジョニング局面を完了する。一実施例では、TAS2104は、プロビジョニングに関わるステップをオーケストレートして、ライフサイクルオペレーションを処理するために、BPEL(ビジネスプロセス実行言語:Business Process Execution Language)プロセスマネージャを使用し得る。
【0119】
(4)一実施例では、データベースサービスをプロビジョニングするために、SDI2106は、要求を行っている顧客にスキーマを関連付けるようにCLOUD_UIにおけるPLSQL APIを呼出し得る。
【0120】
(5)顧客へのスキーマの関連付けが成功した後、SDIはTASに知らせて、TASは、データベースサービスが現在顧客によって使用可能な状態にあるという通知を顧客に送る。
【0121】
(6)顧客は、(例えばcloud.oracle.comなどのURALを使用して)クラウドインフラストラクチャシステム2000にログインし、サービスを起動し得る。
【0122】
いくつかの実施例では、顧客は、トライアルベースでサービスにサブスクライブすることも許可されてもよい。例えば、このようなトライアルオーダーは、(例えばcloud.oracle.comを使用して)クラウドUI2112を介して受取られ得る。
【0123】
特定の実施例では、クラウドインフラストラクチャシステム2000は、顧客またはテナント同士の間で基本的なハードウェアおよびサービスインスタンスが共有されることを可能にする。例えば、データベースサービスは、一実施例では、
図26Eに示されるようにプロビジョニングされ得る。
図26Eは、複数のExadata演算ノード2630および2632を示し、演算ノード2630および2632の各々が、データベースサービスのためにプロビジョニングされたデータベースインスタンスを提供する。例えば、演算ノード2630は、データベースサービスのためのデータベース2634を提供する。各々のExadata演算ノードは、複数のデータベースインスタンスを有していてもよい。
【0124】
特定の実施例では、各データベースインスタンスは、複数のスキーマを備えていてもよく、当該スキーマは、異なる顧客またはテナントに関連付けられてもよい。例えば、
図26Eでは、データベース2634は、2つのスキーマ2636および2638を提供し、スキーマ2636および2638の各々は、それ自体の表を有する。スキーマ2636は、データベースサービスにサブスクライブする第1の顧客またはテナントに関連付けられ得て、スキーマ2638は、データベースサービスにサブスクライブする第2の顧客またはテナントに関連付けられ得る。各テナントは、完全に切離されたスキーマを得る。各スキーマは、関連付けられたテナントについての表、ビュー、格納されたプロシージャ、トリガなどを含むデータベースオブジェクトを管理できる容器のように動作する。各スキーマは、1つの専用の表領域を有し得て、各々の表領域は、1つのデータファイルを有する。
【0125】
このように、単一のデータベースインスタンスは、複数のテナントにデータベースサービスを提供することができる。これは、基本的なハードウェアリソースの共有を可能にするだけでなく、テナント同士の間でのサービスインスタンスの共有も可能にする。
【0126】
特定の実施例では、このようなマルチテナンシシステムは、IDM2100によって容易になり、これにより、各々がそれ自体の別個のアイデンティティドメインを有する複数の別個の顧客が、クラウドにおいて共有されるハードウェアおよびソフトウェアを使用することが有利に可能になる。その結果、各顧客が自身の専用のハードウェアまたはソフトウェアリソースを有する必要がなくなり、場合によっては、特定の時点で一部の顧客によって使用されていないリソースが、他の顧客によって使用可能になり、それによってそれらのリソースが無駄になることを防止する。例えば、
図26Eに示されるように、データベースインスタンスは、各々がそれぞれのアイデンティティドメインを有する複数の顧客に供給されることができる。各々のこのようなデータベースサービスインスタンスは、多くの別個のアイデンティティドメインの中で共有される単一の物理的なマルチテナントデータベースシステムの別個の抽象化またはビューであり得るが、各々のこのようなデータベースサービスインスタンスは、各々の他のデータベースサービスインスタンスが有するものとは別個の、場合によっては異なるスキーマを有することができる。したがって、マルチテナントデータベースシステムは、顧客別のデータベーススキーマとそれらのデータベーススキーマが関係するアイデンティティドメインとの間のマッピングを格納し得る。マルチテナントデータベースシステムは、特定のアイデンティティドメインのためのデータベースサービスインスタンスに、当該特定のアイデンティティドメインにマッピングされるスキーマを使用させ得る。
【0127】
また、マルチテナンシは、Javaサービスなどの他のサービスに拡張可能である。例えば、複数の顧客は、それぞれのアイデンティティドメイン内に配置されたJAVAサービスインスタンスを有し得る。各々のこのようなアイデンティティドメインは、ハードウェアの仮想的な「スライス」とみなされることができるJAVA仮想マシンを有し得る。一実施例では、ジョブモニタリングサービス(例えばハドソン)は、各々の別個のアイデンティティドメインがJAVAエンタプライズエディションプラットフォームのそれ自体の別個の仮想的な「スライス」を有することを可能にするように、クラウドにおけるJAVAエンタプライズエディションプラットフォーム(例えばオラクルウェブロジック)と組み合わせられてもよい。このようなジョブモニタリングサービスは、例えばオペレーティングシステムの時間ベースのジョブスケジューラによって実行されるソフトウェアプロジェクトまたはジョブの構築などの繰返されるジョブの実行をモニタリングし得る。このような繰返されるジョブは、ソフトウェアプロジェクトの連続的な構築および/またはテストを含んでいてもよい。さらにまたは代替的に、このような繰返されるジョブは、ジョブモニタリングサービスが実行されるマシンから離れたマシン上で実行されるオペレーティングシステム起動ジョブの実行のモニタリングを含んでいてもよい。
【0128】
上述のように、シングルIDMシステムは、複数の層および複数のサブシステムを含み得る。これらのサブシステムの少なくとも一部は、水平に互いに対して概念的に指向され得る(conceptually oriented)ため、これらはIDMシステムの同一層内に概念的に位置している。しかしながら、IDMシステムの異なるコンポーネントは、これらの異なる層間に位置し得る。概念的に最底の層には、IDMシステムのアイデンティティデータが格納され得る。他の種類の情報のうち、アイデンティティデータは、ユーザアイデンティティおよび定義を含み得る。アイデンティティデータは、IDMシステムにより知られるすべてのエンティティのアイデンティティを、それらのエンティティが制限される(confined)特定のパーティションまたはアイデンティティドメインにかかわらず含み得る。このようなエンティティは、IDMシステムと対話する人間を含み得る。このようなエンティティは、人間以外のシステムを含み得る。
【0129】
アイデンティティデータ内に格納されたアイデンティティは、ディレクトリとして編成され得る。IDMシステムと対話するさまざまな製品は、ディレクトリに対する認識(awareness)を有するように構成および設計され得る。このような製品は、例えば、シングルサインオン(single sign-on: SSO)機能を実現するアイデンティティマネージャおよび/またはアクセスマネージャを含み得る。実施例では、IDMシステムについてのアイデンティティのすべてがIDMシステムの概念的に最底の層に格納され得るが、これらのアイデンティティは、互いに分離されるパーティションに編成されることもできる。ある意味、アイデンティティデータは、IDMシステムのコアとして想像され得る。数多くのさまざまなアイデンティティ管理サービスは、このパーティショニングにより達成される分離に依拠し得る。これらのアイデンティティ管理サービスは、テナンシの抽象化を提供し得る。IDMシステムの各特定の層において、その特定の層内に存在するサブシステムは、直下の層(最底層を除く)内に存在するサブシステムにより提供されるテナンシの抽象化に依拠し得、その特定の層内のサブシステムは、直上の層(最上層を除く)内に存在するサブシステムにテナンシの抽象化を提供し得る。
【0130】
発明の実施例は、シングルIDMシステムを複数の別個のアイデンティティドメインに分割し得る。IDMシステムにより管理されるデータは、アイデンティティドメインにより分割され得る。特定のアイデンティティドメインに所属するデータは、他のすべてのアイデンティティドメインから分離され得る。上述のように、IDMシステムは、複数の別個のテナントにより共有され得る。このような各テナントは、IDMシステム内に自身の組織についてアイデンティティドメインを作成した顧客であり得る。したがって、アイデンティティドメインは、セキュリティ的観点から分離の単位としてみなされてもよい。アイデンティティドメイン、またはテナンシは、そのテナントについてセキュリティ分離を提供し得る。一実施例では、単一の顧客は、IDMシステム内の複数の別個のアイデンティティドメイン、またはテナンシを作成し得る。例えば、単一の顧客は、IDMシステムプロバイダから、テスト目的専用の1つのアイデンティティドメインと、本番(production)目的専用の別のアイデンティティドメインを購入する可能性がある。
【0131】
発明の実施例では、下層アイデンティティストアを利用する上層サブシステムは、アイデンティティドメインがアイデンティティストアにマッピングされるか態様に対する認識を有するように設計され得る。これらの上層サブシステムは、アイデンティティストアからアイデンティティドメインハンドルを受取り得る。これらの上層サブシステムは、このようなアイデンティティドメインハンドルを用いて、アイデンティティドメインとアイデンティティストアとの間のマッピングを作成し得る。IDMシステムの各層において、その層内のサブシステムは、IDMシステムの他の層からの情報のコンシューマとなり得る。各サブシステムは、そのアイデンティティドメインハンドルを用いて、アイデンティティストアのそのパーティションに関係する情報を管理することができる。特定の層内のサブシステムは、そのアイデンティティドメインハンドルを直下の下層内のサブシステムに引渡して、それらのサブシステムがアイデンティティストアの正確なパーティションと対話することを保証することができる。
【0132】
さまざまな異なるサブシステムは、マルチテナントIDMシステムを作成する際に役割を果たし得る。例えば、SSOサブシステムは、IDMシステム内の複数の別個のSSOデプロイメントの出現を招くように設計され得る。各サブシステムは、そのメタデータが含まれているランタイムコンポーネントおよびレポジトリを含み得る。このような各ランタイムコンポーネントは、マルチテナント環境下で別個のアイデンティティドメインと対話するように設計され得る。
【0133】
アプリケーションも同様に、マルチテナント環境下で別個のアイデンティティドメインと対話するように設計され得る。例えば、このような環境下の2つの異なるアプリケーションが互いと対話でき、このようなアプリケーションの両方がマルチテナント・アウェア(multi-tenant aware)であり得る。このような状況下では、ユーザがアプリケーションの第1のアプリケーションと対話すると、第1のアプリケーションは、ユーザが所属する(アイデンティティドメインのセットからの)アイデンティティドメインを決定することができる。この決定を行った後、次に、第1のアプリケーションは、ユーザのアイデンティティドメインを第2のアプリケーションに通信することができる。次に、第2のアプリケーションは、データを得るときのユーザのアイデンティティドメインに関係する、第2のアプリケーションのレポジトリ内の、適正なデータパーティションに問合せることができる。概念的には、アイデンティティドメインは、マルチテナント・アウェアなアプリケーションインスタンスにわたって情報の1つのスライスを相関付けることとして想像され得る。
【0134】
クラウドコンピューティング環境下では、一部のアプリケーションはマルチテナント・アウェアであり得、他のアプリケーションはマルチテナント・アウェアでない可能性がある。本明細書中では、マルチテナント・アウェアでないアプリケーションを「シングルテナントアプリケーション」と呼び、マルチテナント・アウェアなアプリケーションを「マルチテナントアプリケーション」と呼ぶ。一実施例では、特定のアイデンティティドメイン専用のシングルテナントアプリケーションのインスタンスは、その特定のアイデンティティドメインに所属するエンティティによってのみ用いられ得る。例えば、オラクルフュージョンアプリケーションの別個のインスタンスは、そのアプリケーションがプロビジョニングされた各アイデンティティドメインにインスタンス化され、当該アイデンティティドメイン専用となり得る。特定のサービスインスタンスは、特定のアイデンティティドメイン専用となり得るため、各別個のアイデンティティドメインは、その特定のサービスのそれ自身の専用インスタンスを有し得る。クラウドコンピューティング環境内に生じる各トランザクションは、そのトランザクションに関わるアプリケーションがシングルテナントアプリケーションまたはマルチテナントアプリケーションかどうかにかかわらず、アイデンティティドメインのコンテキストで行われ得る。
【0135】
図1は、発明の実施例に係る、テナントの視点から共有のIDMシステム100の例を概念的に示すブロック図である。共有IDMシステム100は、共有のIDMおよびセキュリティインフラストラクチャ102と、アイデンティティドメイン110A、110Bおよび110Cにおけるサービスインスタンスと、テナントユーザ112A、112B、および112Cとを含み得る。なお、テナントAユーザ112Aは、アイデンティティドメインA 110Aにおけるサービスインスタンスを使用でき、テナントBユーザ112Bは、アイデンティティドメインB 110Bにおけるサービスインスタンスを使用でき、テナントCユーザ112Cは、アイデンティティドメインC 110Cにおけるサービスインスタンスを使用できる。各アイデンティティドメインは、共有IDMシステム100において互いから分離され得るため、各テナントのユーザは、そのテナントのアイデンティティドメインにおけるサービスインスタンスのみを使用することが許可され得る。上述のように、共有IDMシステム100のプロバイダの特定の顧客は、クラウドコンピューティング環境内に、1つ以上のテナンシ、またはアイデンティティドメインを作成することができる。
【0136】
共有IDMシステム100における各アイデンティティドメインは、別個の、場合によっては異なるセットのサービスインスタンスを含み得る。特定のアイデンティティドメイン内にサービスインスタンスの特定のセットを含むことは、その特定のアイデンティティドメインの顧客が共有IDMシステム100のプロバイダからそれらのサービスインスタンスの使用を購入またはリースした結果であり得る。顧客がその顧客自身のネットワーク中にアプリケーションをデプロイすることのできる態様と同様に、顧客は、クラウドコンピューティング環境内でのサービスインスタンスの使用を購入またはリースすることができる。したがって、このようなサービスインスタンスは、顧客自身により所有または所持されないハードウェア、ソフトウェア、および/またはネットワークを介して提供され得る。アイデンティティドメインA 110Aにおけるサービスインスタンスは、データベースサービスインスタンス116A、JAVAサービスインスタンス118A、およびフュージョン顧客関係管理(CRM)サービスインスタンス120Aを含み得る。アイデンティティドメインB 110Bにおけるサービスインスタンスは、データベースサービスインスタンス116BおよびJAVAサービスインスタンス118Bを含み得る。アイデンティティドメインC 110Cにおけるサービスインスタンスは、データベースサービスインスタンス116C、フュージョンCRMサービスインスタンス120C、およびソーシャルネットワークサービス122Cを含み得る。一部のサービスインスタンスは、実際には各アイデンティティドメインにおける別個のシングルテナントインスタンスであり得るが、他のサービスインスタンスは、同一の単一のマルチテナントサービスインスタンスの現れ(manifestations)であり得る。例えば、データベースサービスインスタンス116A、116Bおよび116Cはすべて、同一の単一のマルチテナントデータベースサービスインスタンスの現れであり得る。
【0137】
特定の顧客が特定のアイデンティティドメインと関連付けられたサービスインスタンスの特定のセットを望む場合、その特定の顧客は、特定の顧客がそのサービスインスタンスの特定のセットを購入またはリースするときに、その意向を共有IDMシステム100のプロバイダに示すことができる。特定のアイデンティティドメイン内の(例えばユーザなどの)アイデンティティはすべて、その特定のアイデンティティドメインについての1つ以上のアイデンティティドメイン管理者により中心で管理され得る。例えば、特定のアイデンティティドメインは、3つの異なるユーザについてのアイデンティティを含む可能性がある。特定のアイデンティティドメインについてのアイデンティティ管理者は、第1のユーザがその特定のアイデンティティドメインのサービスインスタンスの第1のサブセットにアクセスできること、第2のユーザがその特定のアイデンティティドメインのサービスインスタンスの第2の異なるサブセットにアクセスできること、さらに、第3のユーザがその特定のアイデンティティドメインのサービスインスタンスの第3のさらに異なるサブセットにアクセスできることを特定することができる。したがって、ユーザの各々は、特定のアイデンティティドメインについてのアイデンティティドメイン管理者によりすべて特定されるとおりに、特定のアイデンティティドメインのサービスインスタンスの異なるサブセットにアクセスできる。
【0138】
一実施例では、特定のアイデンティティドメイン内のサービスインスタンスはすべて、ユーザのアイデンティティの同一の定義を用いることができる。典型的なエンタープライズシステムと同様に、アイデンティティドメイン内の各ユーザのアイデンティティが一旦作成され得る。次に、そのアイデンティティドメイン内に含まれるアプリケーションおよびサービスが、そのアイデンティティドメイン内に作成されたユーザアイデンティティに関する情報を得ることができる。アイデンティティドメイン管理者は、ユーザアイデンティティをアプリケーションおよびサービスにマッピングするためのさまざまな技術を使用することができる。例えば、このようなマッピングは、ロール、群、規則などの使用により構築され得る。アイデンティティドメインにおいて、関連付けられた許可および認可を有するロールが作成され得る。各ロールは、そのロールと関連付けられたユーザによりアクセス可能な異なるセットのアプリケーションおよびサービスと関連付けられ得る。次に、アイデンティティドメイン管理者は、各ロールを異なるセットのユーザアイデンティティと関連付けることにより、あるセットのアイデンティティドメインのユーザに、あるセットへのアイデンティティドメイン内のアプリケーションおよびサービスへのアクセスを付与することができる。代替的には、アイデンティティドメイン管理者は、あるユーザアイデンティティに直接、顧客指定のセットのアイデンティティドメインのアプリケーションおよびサービスへのアクセスを直接付与することもできる。発明の一実施例では、ロール自体が、共有IDMシステム100のアイデンティティストア内にアイデンティティとしてフォーマットされ、格納されることができる。ユーザは、さまざまな異なるロールと関連付けられ得る。
【0139】
上述のように、一実施例では、共有IDMシステム100について作成されたアイデンティティのすべては、同一のアイデンティティストア内に格納され得るが、このアイデンティティストアは、異なる「スライス」に分割され得、各スライスは、異なるアイデンティティドメインと関連付けられる。したがって、テナントAユーザ112Aのアイデンティティは、第1のスライスにおいて存在し得、テナントBユーザ112Bのアイデンティティは、第2のスライスにおいて存在し得、テナントCユーザ112Cのアイデンティティは、第3のスライスにおいて存在し得る。発明の一実施例では、共有IDMシステム100のアイデンティティストアにおける各アイデンティティは、属性として、そのアイデンティティが所属するアイデンティティドメインを示すことができる。
【0140】
共有IDMシステム100に含まれるアイデンティティドメインの各々は、それぞれオラクルプラットフォームセキュリティサービス112A、112Bおよび112Cとして示される、オラクルプラットフォームセキュリティサービスの対応するインスタンスを含み得る。オラクルプラットフォームセキュリティサービス112A、112Bおよび112Cの各々は、アイデンティティ情報へのアクセスを可能にするように設計されたアプリケーションプログラミングインターフェース(application programming interfaces: APIs)の集合であり得る。共有のIDMおよびセキュリティインフラストラクチャ102は、アイデンティティ管理モジュール104、ディレクトリサービスおよびポリシーストア106、ならびにアクセス管理モジュール108などの多くのさまざまなコンポーネントを含み得る。一実施例では、インフラストラクチャ102内のこのような各コンポーネントは、オラクルプラットフォームセキュリティサービス112A、112Bおよび112CのAPIを実現する。これらのAPIは、アイデンティティドメインの各々を有するサービスインスタンスに、それらのサービスインスタンスがインフラストラクチャ102内のコンポーネントにアクセスして利用するために呼び出すことのできる方法を公開する(expose)ことができる。
【0141】
発明の一実施例では、特定の顧客が共有IDMシステム100のプロバイダからサービスインスタンスを初めて購入またはリースするときに、その顧客について少なくとも1つのアイデンティティドメインが明示的にまたは暗黙的に作成される。代替的には、特定の顧客について、当該顧客と関連付けられて少なくとも1つのアイデンティティドメインが既に作成されている場合、共有IDMシステム100のメカニズムは、顧客が、その特定の顧客について、当該顧客と関連付けられて既に作成されたアイデンティティドメインに新たに購入されるまたはリースされるサービスインスタンスが追加されることを望むかどうかを顧客に尋ねることができる。顧客がYESと答えた場合、共有IDMシステム100は、新たに購入されるまたはリースされるサービスインスタンスを、既存のアイデンティティドメインと既に関連付けられた既存のサービスインスタンスのセットに追加することができる。このように、特定の顧客のサービスインスタンスは、それが特定の顧客の意図である場合には、すべて同一のアイデンティティドメインと関連付けられるようにできる。このようなサービスインスタンスは、例えば、さまざまなSaaSおよびPaaSインスタンスを含み得る。
【0142】
発明の一施例では、顧客は、当該顧客が集中型ストアを介してクラウドベースのサービスを購入することができるように、集中型ストアによるアカウントを確立することができる。このアカウントを用いて集中型ストアを介してサービスを購入すると、クラウドコンピューティング環境内にその顧客についてアイデンティティドメイン特有のアカウント(identity domain-specific account)が作成され得る。このアイデンティティドメイン特有のアカウントは、顧客が集中型ストアを介してクラウドベースのサービスを初めて購入した際に、顧客について作成されたアイデンティティドメインと関連付けられ、当該アイデンティティドメインに分離され得る。したがって、1つのアカウントは、集中型ストアと対話するように作成され得、別の別個のアカウントは、共有IDMシステム100を介して作成されるアイデンティティドメインを管理し、処理するように作成され得る。
【0143】
一実施例では、アイデンティティドメインが顧客について作成されるとき、顧客は、顧客がそのアイデンティティドメインと、同一の顧客について作成された可能性のある他のアイデンティティドメインとを区別できるように、共有IDMシステム100に、特定される名称および/またはユニフォーム・リソース・ロケーター(URL)をそのアイデンティティドメインに結び付けるように命令することができる。顧客およびそのユーザは、クラウドコンピューティング環境下で、結び付けられたURLを用いて、対応するアイデンティティドメイン、およびその含まれるサービスインスタンスにアクセスすることができる。
【0144】
インフラストラクチャ102のコンポーネントは、どの顧客について作成されたどの単一のアイデンティティドメインにも所属しない。インフラストラクチャ102は、代わりに、クラウドコンピューティング環境全体に所属しているとして想像され得る。しかしながら、発明の一実施例では、インフラストラクチャ102は、全体としてのクラウドコンピューティング環境についてのアイデンティティドメインと関連付けられ得る。この包括的なクラウドアイデンティティドメイン(「オペレーションアイデンティティドメイン」と呼ぶこともある)は、顧客と関連付けられたアイデンティティドメインと区別され得る。クラウドアイデンティティドメインに所属するユーザは、顧客のアイデンティティドメインのいずれか内のサービスインスタンスにアクセスし、当該サービスインスタンスを管理する権限を付与されることができる。本明細書中では、このようなユーザを「オペレーションユーザ」と呼ぶ。顧客サービス代表(customer service representatives: CSR)は、CSRのために作成され、クラウドアイデンティティドメインと関連付けられたオペレーションユーザアイデンティティを有し得る。したがって、クラウドアイデンティティドメインは、CSRアイデンティティドメインとして見なされ得る。共通のセキュリティモデルは、アイデンティティドメインのユーザのそれらに対応するアイデンティティドメインへの分離を支配するだけでなく、すべてのアイデンティティドメインを中心で管理するのに必要なインタラクションを容易にすることもできる。したがって、共有IDMシステム100は、顧客のアイデンティティドメインと関連付けられたユーザが、それらのアイデンティティドメインの外部のリソースに対するオペレーションを行なうのを防止するだけでなく、クラウドドメインと関連付けられたオペレーションユーザが、顧客のアイデンティティドメインにわたるリソースに対するオペレーションを行なうことを可能にすることもできる。したがって、テナンシの目的には、少なくとも次の2つの面がある。第1に、テナンシを互いから分離すること、第2に、(クラウドアイデンティティドメインの場合)他のテナンシを管理することである。
【0145】
図2は、発明の実施例に係る、共有IDMシステムを介して複数の顧客についての複数のアイデンティティドメインを作成するための技術200の例を示すフローチャートである。技術200は、ある順に行なわれるあるオペレーションを含むように示されているが、発明の代替的実施例は、異なる順で行なわれてもよい追加の、より少ない、または代替的なオペレーションを含み得る。ブロック202では、第1の顧客が共有IDMシステムを介して第1のアイデンティティドメインを作成する。ある実施例では、共有IDMシステムは、第1のアイデンティティドメインを作成するために第1のアイデンティティドメインをユニークに定義するメタデータを格納する。ブロック204では、第1の顧客が、共有IDMシステムを介してまたは共有IDMシステムに関連してサービスインスタンスの第1のセットを購入する。ブロック206では、サービスインスタンスの第1のセットにおけるサービスインスタンスが第1のアイデンティティドメインにマッピングされる。ある実施例では、共有IDMシステムは、第1の複数のサービスと第1のアイデンティティドメインとの間のマッピングを作成することにより、第1の複数のサービスと第1のアイデンティティドメインとを関連付ける。例えば、共有IDMシステムは、このようなマッピングをコンピュータ読取可能ストレージメモリ内に永久的に格納してもよい。なお、以下にさらに見られるように、いくつかの顧客の各々は、別個の分離されたアイデンティティドメインを確立する際に、同一の共有IDMシステムを利用することができるため、別個のIDMシステムが顧客毎にインスタンス化される必要がない。ブロック208では、ユーザアイデンティティの第1のセットが共有IDMシステムを介して第1のアイデンティティドメイン内に作成される。ユーザアイデンティティの第1のセットにおけるユーザアイデンティティは、第1のアイデンティティドメインにマッピングされる。
【0146】
ブロック210では、第2の顧客が、共有IDMシステムを介して第2のアイデンティティドメインを作成する。ある実施例では、共有IDMシステムは、第2のアイデンティティドメインを作成するために第2のアイデンティティドメインをユニークに定義するメタデータを格納する。ブロック212では、第2の顧客が、共有IDMシステムを介してまたは共有IDMシステムに関連してサービスインスタンスの第2のセットを購入する。ブロック214では、サービスインスタンスの第2のセットにおけるサービスインスタンスが、第2のアイデンティティドメインにマッピングされる。ある実施例では、共有IDMシステムは、第2の複数のサービスと第2のアイデンティティドメインとの間のマッピングを作成することにより、第2の複数のサービスと第2のアイデンティティドメインとを関連付ける。例えば、共有IDMシステムは、このようなマッピングをコンピュータ読取可能ストレージメモリ内に永久的に格納してもよい。したがって、いくつかの顧客の各々は、別個の分離されたアイデンティティドメインを確立する際に、同一の共有IDMシステムを利用することができるため、別個のIDMシステムが顧客毎にインスタンス化される必要がない。ブロック216では、ユーザアイデンティティの第2のセットが、共有IDMシステムを介して第2のアイデンティティドメイン内に作成される。ユーザアイデンティティの第2のセットにおけるユーザアイデンティティは、第2のアイデンティティドメインにマッピングされる。
【0147】
ブロック218では、共有IDMシステムが、ユーザインスタンスの第2のセット間でなく、サービスインスタンスの第1のセット間でユーザアイデンティティの第1のセットにおけるユーザアイデンティティを共有する。ある実施例では、共有IDMシステムは、各ユーザベースのマッピング(per-user-based mappings)に少なくとも一部基づいて、ユーザの第1のセットのアイデンティティを共有する。ブロック220では、共有IDMシステムが、ユーザインスタンスの第1のセット間でなく、サービスインスタンスの第2のセット間でユーザアイデンティティの第2のセットにおけるユーザアイデンティティを共有する。ある実施例では、共有IDMシステムは、各ユーザベースのマッピングに少なくとも一部基づいて、ユーザの第2のセットのアイデンティティを共有する。ユーザアイデンティティの第1および第2のセットは、いずれも同一の共有IDMシステムの同一のアイデンティティストアに格納されてもよい。ブロック222では、第1のアイデンティティドメインについての第1のアイデンティティドメイン管理者が、共有IDMシステムを用いてユーザアイデンティティの第1のセットを管理する。ブロック224では、第2のアイデンティティドメインについての第2のアイデンティティドメイン管理者が、共有IDMシステムを用いてユーザアイデンティティの第2のセットを管理する。ユーザアイデンティティの管理は、例えば、ユーザアイデンティティを追加する、ユーザアイデンティティを消去する、ユーザアイデンティティの属性を修正する、ユーザアイデンティティおよびロールおよび/または群の間の関連付けを追加または削除する、ロールおよび/または群を作成する、ユーザ、ロール、および/または群に対してサービスインスタンスアクセス許可を付与するまたは削除すること等を含み得る。発明の一実施例では、このような管理は、共有IDMシステムにより提供される管理者インターフェイスを介して行なうことができる。さまざまな異なるアイデンティティドメインの管理は、このような管理者インターフェイスを介して行なうことができる。したがって、共有IDMシステム100は、それぞれのユーザに割り当てられた1つ以上のサービスを定義するマッピングに少なくとも一部基づいて、ユーザの第1のセットにおけるユーザが、サービスの第1のセットでなく、サービスの第2のセットにおけるサービスに対するオペレーションを行なうことを防止する。
【0148】
発明の一実施例では、さまざまなポリシーが共有IDMシステム内に特定され得る。このような各ポリシーは、そのポリシーが全体として満たされる場合に満たされなければならない規則のセットを含み得る。あるポリシーは、そのポリシーの規則がすべて満たされた場合にのみサービスインスタンスまたはシステムリソースへのアクセスが付与されることを特定し得る。特定のユーザが顧客のアイデンティティドメインのサービスインスタンスにアクセスするためには、その特定のユーザのアイデンティティが同一のアイデンティティドメインに所属しなければならないという暗黙的なポリシーも存在し得る。しかしながら、この暗黙的なポリシーは、任意の顧客のアイデンティティドメインの外部に存在し得るオペレーションユーザが、任意の顧客のアイデンティティドメインのサービスインスタンスにアクセスすることを許可することができる。マルチテナントIDMシステムでは、各ポリシーは、特定のアイデンティティドメインと関連付けられたサービスインスタンスが、その特定のアイデンティティドメイン内に分離されるという意向を反映するように作られ得る。
【0149】
例えば、クラウドコンピューティング環境は、ディレクトリおよびSSOシステムなどのアクセス管理システムを含んでもよい。SSOシステムは、数多くのURLを保護することができる。SSOシステムは、特定されるセットのURLを保護するが、特定されるセット内にないURLは保護しないように構成され得る(すなわち、後者のURLは保護されない)。クラウドコンピューティング環境内の単一のホストマシンは、複数の異なるURLに関連付けられ得る。概念的には、クラウドコンピューティング環境内の各ホストマシンは、そのホストマシンとそのホストマシンにアクセスしたいユーザとの間に立っているマルチプルゲートを有するとして想像され得る。ユーザが特定のホストマシンと関連付けられたURLにアクセスしようとするとき、SSOシステムは、そのユーザを適切なホストマシンに転送することができる。ホストマシンを保護するゲートは、ホストマシンにアクセスするために用いられている完全修飾URLを調べることができる。このゲートは、ユーザをSSOサーバに転送するか、またはそのホストマシンおよびURLに関係するポリシーを参照して実行することができる。このようなポリシーは、ユーザが認証されるべきであること、ユーザの属性が発見されるべきであること、さらに、ユーザの属性に基づいて、ユーザがURLを用いてホストマシンにアクセスすることを許されるか否かについて決定するべきであることを示し得る。発明の一実施例では、このようなポリシーは、共有IDMシステムにより定義されるアイデンティティドメインの境界を反映するために向上され得る。
【0150】
図3は、発明の実施例に係る、階層型クラウドベースのIDMシステム300の概略の例を示すブロック図である。クラウドベースのIDMシステム300は、クラウドセキュリティファンデーション層302、クラウド共有IDM層304、およびオラクルIDM/セキュリティ層306などの複数の層を含み得る。一実施例では、クラウドセキュリティファンデーション層302は、クラウド共有IDM層304と遣り取りし、クラウド共有IDM層304は、オラクルIDM/セキュリティ層306と遣り取りする。オラクルIDM/セキュリティ層306は、「生の」アイデンティティ管理システムを実現できる。クラウド共有IDM層304は、各テナントのデータを分離するためのモデルを含み、これにより、複数のテナントおよび分離されたアイデンティティドメインの概念を支持する「生の」アイデンティティシステムの抽象化を作成することができる。各層は、複数のサブ層およびサブシステムを含み得る。これらの一部を以下にさらに説明する。
【0151】
図4は、発明の実施例に係る、クラウドセキュリティファンデーション層400のサブシステムの例を示すブロック図である。
図4のクラウドセキュリティファンデーション層400は、
図3のクラウドセキュリティファンデーション層302に相当し得る。セキュリティファンデーション層400は、テナント管理委任モデル404、クラウドインフラストラクチャライフサイクル&ランタイムモデル406、オペレーションユーザライフサイクル408、共通ポリシー410、クラウド公開キーインフラストラクチャ(PKI)キープロビジョニング412、ならびにアイデンティティストアおよびポリシーストアについてのデータセキュリティ414などの複数のサブシステムを含み得る。
【0152】
テナント管理委任モデル404は、アイデンティティドメインのアーキテクチャの存在および、それらのアイデンティティドメインとサービスインスタンスとの関連付けを考慮したモデルであり得る。このモデルは、アイデンティティドメインに関連付けられたさまざまなユーザが、アイデンティティドメインまたはその中の要素に対して有するロールを特定するために用いられ得る。モデルは、各ロールに付与される(例えば、サービスインスタンス、ユーザ、ロールなどに対する)許可を特定することができる。テナント管理委任モデル404は、アイデンティティドメインを購入した顧客が、ユーザをそのアイデンティティドメインについてのアイデンティティドメイン管理者に任命することを可能にし得る。一実施例では、このような顧客は、クラウドセキュリティファンデーション層400のコンポーネントを用いて、ロールの階層を作成することができる。このような階層は、アイデンティティドメインの最初の作成時に暗黙的に作成され得、具体的には、その作成が階層の作成を招いたアイデンティティドメインに関係し得る。したがって、各アイデンティティドメインは、別個の、場合によっては異なるロールの階層に関連付けられ得る。一実施例では、階層のトップまたはルートに暗黙的に作成されたロールは、アイデンティティドメインについてのアイデンティティドメイン管理者のロールである。各アイデンティティドメインは、1つ以上のアイデンティティドメイン管理者を有し得る。アイデンティティドメイン管理者は、アイデンティティドメイン内に存在するすべてのサービスインスタンス、ユーザ、および他のロールを含む、アイデンティティドメインを全体的に管理するのに十分な許可および権限(authorities)を有し得る。
【0153】
ロール階層のアイデンティティドメイン管理者の下に、サービス管理者を置くことができる。本明細書中では、「サービス管理者」という用語は、アイデンティティドメイン内のサービスインスタンスを管理する許可を有するロールの分類を記載するために用いられるが、「サービス管理者」と呼ばれるロールは必ずしも存在せず、むしろ、「サービス管理者」の分類にすべて該当するさまざまな特定のロールが存在し得る。例えば、各タイプのサービスインスタンスは、そのサービスを管理するサービス管理者ロールのタイプを有し得る。サービス管理者ロールの例としては、JAVAサービス管理者、データベースサービス管理者、フュージョンアプリケーション管理者などが挙げられる。アイデンティティドメイン管理者は、クラウドセキュリティファンデーション層400のコンポーネントを用いて、そのアイデンティティドメインと関連付けられた1つ以上のユーザをサービス管理者に任命することができる。「サービス管理者」は、ロール自体ではなくロールの分類であり得ることから、アイデンティティドメイン管理者が他のユーザをサービス管理者ロールに任命するために用いるユーザインターフェイスは、アイデンティティドメイン管理者がユーザを任命することの可能な各特定のタイプのサービス管理者ロール(例えば、JAVAサービス管理者、データベースサービス管理者、フュージョンアプリケーション管理者など)を列挙してもよい。各サービス管理者は、そのアイデンティティドメイン内の特定のサービスインスタンスを処理し、管理するために必要な許可および権限を有し得る。各サービス管理者は、当該サービス管理者が管理する特定のサービスインスタンスに特定的に関連し、範囲が限定されたロールを管理するために必要な許可および権限を有し得る。しかしながら、特定のサービス管理者は、他のサービスインスタンスを管理する、またはアイデンティティドメインを全体的に処理するための権限を必ずしも有さない。各サービスインスタンスは、それ自体の別個のサービス管理者を有し得る。場合によっては、同一のユーザが、同一のアイデンティティドメインにおける複数のサービスインスタンスについてのサービス管理者に任命されることもあり得る。アイデンティティドメイン管理者は、サービス管理者が実行できる機能のすべてを実行することができる。なぜなら、アイデンティティドメイン管理者は、ロール階層においてより高い階層にあっても、その逆ではないためである。一実施例では、アイデンティティドメインにおいてサービスインスタンスが作成され得る各サービスの設計者は、そのサービスと関連付けられたサービス設計者により定義されるロールの階層が、典型的には階層のルートにおいて、そのサービス全体についてのサービス特有のサービス管理者ロールを含むことを保証する任務を与えられる。
【0154】
図7は、発明の実施例に係る、アイデンティティドメインを管理するためにロール階層を用いることができるクラウドベースのIDMシステム700の例を示すブロック図である。
図7は、顧客(ストアアカウント管理者)702、顧客アイデンティティドメイン704、およびクラウドアイデンティティドメイン708を示す。顧客702は、実際にはどのアイデンティティドメイン内にも必ずしも存在するわけではない。代わりに、顧客702は、オンラインストアによるストアを有し得る。したがって、顧客702は、完全にクラウドベースのシステムの外側のアカウントであり得るストアアカウントの管理者である。顧客702は、このアカウントを用いて、顧客アイデンティティドメイン704などの1つ以上のアイデンティティドメインを購入し、さらに、このようなアイデンティティドメイン内にデプロイされるサービスインスタンスを購入することができる。顧客702は、バイヤとして行動することができる。顧客702は、アイデンティティドメイン内のユーザアイデンティティを必ずしも有さないため、オンラインストアを介して顧客アイデンティティドメイン704を購入するとき、顧客702は、顧客アイデンティティドメイン704についてのアイデンティティドメイン管理者710(以下にさらに詳しく説明する)に別のユーザを(例えば、その別のユーザの電子メールアドレスをオンラインストアに特定することにより)指名することができる。このように、顧客アイデンティティドメイン704内のユーザアイデンティティを有するユーザは、顧客702がこのようなユーザアイデンティティを有していなくても、顧客アイデンティティドメイン704にアクセスすることができる。
【0155】
顧客アイデンティティドメイン704は、顧客アイデンティティドメイン704内の範囲にあり、どの他のアイデンティティドメインにもわたらないさまざまなロールを割り当てられたユーザを含む。これらのロールの中には、上記のアイデンティティドメイン管理者710のロールがあり得る。アイデンティティドメイン管理者710は、顧客702により指名され得る。アイデンティティドメイン管理者702は、そのロールの一部として、自身が有する許可および権限の少なくとも一部を、顧客アイデンティティドメイン704内の他のロールに委任することができる。これらの他のロールは、アイデンティティ管理者712、JAVAサービス管理者714、データベースサービス管理者716、およびフュージョンアプリケーション管理者718などのサービスおよびアプリケーション管理者ロールを含み得る。これらのサービス管理者の各々は、限定されないが、顧客アイデンティティドメイン704内の特定のサービスインスタンスに対するユーザおよびロールの処理および管理に必要な許可および権限を有し得る。
【0156】
アイデンティティ管理者712は、顧客アイデンティティドメイン704内のロール管理720およびユーザ管理722のタスクを行なう許可を有し得る。アイデンティティ管理者712は、ロール管理720およびユーザ管理722を顧客アイデンティティドメイン704内の他のユーザアイデンティティにロールとして委任することができる。これらの許可により、例えば、顧客アイデンティティドメイン704に関係するユーザアイデンティティおよびロールアイデンティティが管理され得る(例えば、パスワードリセットオペレーションなど)。アイデンティティ管理者712は、アイデンティティドメイン管理者710と同一のユーザであり得る。JAVAサービス管理者714は、JAVA管理者724のタスクを行なう許可を有し得る。JAVAサービス管理者714は、JAVA管理者724を顧客アイデンティティドメイン704内の他のユーザアイデンティティにロールとして委任することができる。これらの許可により、JAVA仮想マシンは、例えば、インスタンス化され、修正され、消去されることができる。データベースサービス管理者716は、データベース特有のロールを顧客アイデンティティドメイン704内の他のユーザに割り当てる許可を有し得る。これらのデータベース特有のロールは、ユーザ726、開発者728、および管理者730のロールを含み得る。このような各ロールは、データベースサービスインスタンスに対する異なる許可を有し得る。例えば、ユーザ726は、ユーザ726がデータベースのテーブルに格納されたデータに問合せるおよび、さもなければ使用することを可能にする許可に限定され得る。開発者728は、開発者728が、例えばシステムパラメータを含む、データベースのコンフィグレーションを修正することを可能にする許可を追加的に有し得る。管理者730は、データベースサービスインスタンスに対する他のユーザの管理を含む、そのサービスインスタンスに対するアクションをすべて行なう許可を有し得る。管理者730は、データベースサービス管理者716と同一のユーザであり得る。フュージョンアプリケーション管理者718は、フュージョンアプリケーションインスタンスによる使用のためのCRM階層732を作成し、修正する許可を有し得る。これらの許可を用いて、フュージョンアプリケーション管理者は、顧客アイデンティティドメイン704内のユーザアイデンティティを有するユーザをCRM階層732内に置くことができる。フュージョンアプリケーション管理者718は、CRM階層732における各ポジションについてのロールおよび対応する許可を定義する許可を有し得、このような各ロールは、フュージョンアプリケーションインスタンスに対するオペレーションの実行に限定されている。他のサービス管理者ロールを定義し、割り当てることもできる。
【0157】
一実施例では、上述のように、(典型的には、顧客アイデンティティドメイン704の作成の際に)顧客702により指名されたアイデンティティドメイン管理者710は、許可およびサービスインスタンスロールを顧客アイデンティティドメイン704内の他のユーザに委任することができる。さらに、一実施例では、顧客702は、顧客アイデンティティドメイン704内のユーザを、それらのサービスインスタンスロールを有するサービス管理者になるように直接指名することができる。例えば、一実施例では、顧客702は、アイデンティティドメイン管理者710、アイデンティティ管理者712、JAVAサービス管理者714、データベースサービス管理者716、およびフュージョンアプリケーション管理者718の各々を直接指名することができる。一実施例では、顧客702は、これらの他のユーザをサービスインスタンスロールに、それらのロールが関係するサービスインスタンスの購入の一部として指名することができる。例えば、顧客702は、サービスインスタンスを購入するとき、当該サービスインスタンスが購入されているオンラインストアに、顧客702がそのサービスインスタンスについてのサービスインスタンス管理者に指名しているユーザの1つ以上の電子メールアドレスを特定することができる。顧客702により特定されたアイデンティティドメイン内に、これらの電子メールアドレスを有するユーザについてユーザアイデンティティが自動的に作成され得、これらのユーザは、顧客702により特定されたサービスインスタンスについてのサービス管理者ロールを割り当てられ得る。
【0158】
さらに、上述のように、クラウドベースのIDMシステム700は、顧客アイデンティティドメイン704などの顧客アイデンティティドメインに加えて、クラウドアイデンティティドメイン708などの包括的なクラウドアイデンティティドメインも含み得る。クラウドアイデンティティドメイン708は、上述のオペレーションユーザを含み得る。クラウドアイデンティティドメイン708は、どの顧客にも所属しておらず、どの顧客からも独立して存在する。クラウドアイデンティティドメイン708におけるユーザは、顧客アイデンティティドメイン704などの顧客アイデンティティドメイン(同様に、クラウドベースIDMシステム700内に存在し得る図示されない他の顧客アイデンティティドメイン)内のロール、ユーザ、およびサービスインスタンスを管理する許可を有し得る。オペレーションロール階層(operational role hierarchy)734がクラウドアイデンティティドメイン708内に定義され得る。オペレーションロール階層734は、クラウドアイデンティティドメイン708におけるオペレーションユーザの各々について、そのオペレーションユーザにより所有される許可、権限、およびロールを定義することができる。クラウドアイデンティティドメイン708内に定義されたポリシーは、あるオペレーションロールがどの顧客アイデンティティドメインにアクセス可能であるか、および、あるオペレーションロールがそれらの顧客アイデンティティドメイン内のサービス、ユーザ、およびリソースに対して行なうことのできるオペレーションのタイプに限定を設けることができる。例えば、クラウドアイデンティティドメイン708内のオペレーションユーザアイデンティティ(operational user identities)のサブセットは、アイデンティティ管理機能の実行のロールおよび/またはポリシーによって限定され得るが、これらのオペレーションユーザアイデンティティは、クラウドベース環境下でどの顧客アイデンティティドメインにおいても定義されるアイデンティティに対してこのようなアイデンティティ管理機能を実行する能力を有してもよい。各アイデンティティドメインでは、ランタイムインスタンスがこのようなポリシーを実施し得る。
【0159】
クラウドベースのIDMシステム700では、ロールは階層的に定義され得る。階層における下位レベルのロールに利用可能な権限および許可は、その階層における上位レベルのロールにより継承され得る。ロール階層における別のロールの親または先祖ロールは、子どもまたは子孫ロールに利用可能な権限および許可を継承し得る。したがって、アイデンティティ管理者712は、ロール管理720およびユーザ管理722ロールのロールおよび対応する許可ベースの能力を継承し得、アイデンティティドメイン管理者710は、アイデンティティ管理者712のロールおよび対応する許可ベースの能力を継承し得るが、継承は、階層において反対方向には流れない。一実施例では、ロール階層は、各サービスインスタンスについて、当該サービスインスタンスがアイデンティティドメインに追加されるときに自動的に作成され、後に、そのロール階層内のロールは、それを行なう許可を有するユーザにより割り当てられるおよび/または修正され得る。各サービスインスタンスのロール階層は、他のサービスインスタンスについてのロール階層に定義されるロールとは異なるロールを定義することができる点で異なり得る。
【0160】
一実施例では、サービスインスタンスについて予め定義された(場合によっては何千もの)ロールが、アイデンティティドメインに追加されているサービスインスタンスのタイプに基づいて自動的にアイデンティティドメイン内に作成され得、ユーザは、必ずしも各ロール階層における各ロールを手動で定義する必要はない。各タイプのサービスは、そのサービスの任意のインスタンスの任意のアイデンティティドメインへの追加の前に、サービスの作成者により予め定義され、かつサービスインスタンスがアイデンティティドメインに追加されるときに自動的に作成され得るサービスタイプロール階層と関連付けられ得る。例えば、データベースサービスは、予め定義されたデータベースサービスロール階層と関連付けられ得、JAVAサービスは、予め定義されたJAVAサービスロール階層と関連付けられ得る。したがって、各タイプのサービスは、そのタイプのサービスについて、階層的に関連するロールの、別個の場合によっては異なる予め定義された「テンプレート」と関連付けられ得る。アイデンティティドメイン管理者710などの一部のロールは、クラウドワイドのロールモデル内に予め定義され得る(かつ、場合によっては不変の定義を有し得る)が、他のサービスインスタンス特有のロールは、適切な許可を有するものにより、特定のサービスインスタンスに対する顧客の許可を有するように作成され、手動で定義され得る。
【0161】
予め定義されたサービスタイプ特有のロール階層において関連付けられた許可は、クラウドワイドのモデル内に定義された階層的により高いロールにより継承され得る。例えば、特定のタイプのサービス(例えば、データベースサービス)についての各サービス管理者ロールは、その特定のタイプのサービス特有のロール階層において予め定義されたすべてのロール(および関連付けられた許可)を継承し得る。アイデンティティドメイン管理者ロールは、アイデンティティドメインにおけるすべてのサービス管理者ロールにより継承されるすべてのロール(および関連付けられた許可)を継承し得る。したがって、アイデンティティドメイン管理者710は、ロール継承により、サービス管理者712〜718のすべてが行なうことができるオペレーションのすべてを行なうことが可能となるが、アイデンティティ管理者712は、他のサービス管理者714〜718が行なうことができるオペレーションを必ずしも行なうことはできない。アイデンティティ管理者712は、どの特定のサービスインスタンスにも特有でない、アイデンティティドメイン内の一般的なアイデンティティベースのオペレーションを行なうことに限定され得る。一実施例における顧客702は、アイデンティティドメインの外部にあるため、どのロールも継承しない。
【0162】
一実施例では、顧客702がオンラインストアを用いて、顧客アイデンティティドメイン704内の特定のロールを有するようにアイデンティティドメイン管理者710またはサービス管理者712〜718のいずれかなどの誰かを指名すると、オンラインストアは、それに応答して、その指名された人の電子メールアドレスに電子メールメッセージを送ることができる。顧客702は、指名プロセスの一部として、オンラインストアに電子メールアドレスを提供することができる。指名された人の電子メールアドレスに送信される電子メールメッセージは、クラウドコンピューティング環境内のウェブサーバにより供給されるウェブベースフォームを指すハイパーリンクを含み得る。ウェブベースフォームは、入力可能なフィールドを含み得、これを介してメッセージ受信者は、ユーザ名、パスワード、および、顧客アイデンティティドメイン704内の指名された人についてのユーザアイデンティティを作成するのに役立つ他の情報を特定することができる。指名された人が、入力したウェブベースフォームをウェブサーバに提出すると、ウェブサーバは、指名された人のユーザイデンティを顧客アイデンティティドメイン704内に作成させることができ、さらに、特定されるロールをそのユーザアイデンティティに割り当てさせることができる。指名は、アイデンティティドメインの外部のエンティティがアイデンティティドメイン内のユーザアイデンティティにロールを割り当てるプロセスとして見なされ得るが、委任は、アイデンティティドメイン内のユーザアイデンティティが、そのユーザアイデンティティドメイン内の別のユーザアイデンティティに、(アイデンティティドメインにおける自身のロールにより)前者のユーザが割り当てる権限を有するロールを割り当てるプロセスとして見なされ得る。
【0163】
図11は、発明の実施例に係る、上述のようなマルチテナントIDMシステムにおけるロール委任をさらに示すブロック図である。システム1100は、オンラインストア1102および顧客のアイデンティティドメイン1104を含み得る。顧客(ストアアカウント管理者)1106は、オンラインストア1102内のアカウントを有し得る。顧客1106は、
図11中の破線矢印により示されるように、アイデンティティドメイン1104内のアイデンティティを有するさまざまなユーザをさまざまなロールに指名することができる。例えば、顧客1106は、このようなユーザを、アイデンティティドメイン管理者1108、および/または異なるサービスインスタンスについてサービス管理者1112および1114に指名することができる。このような指名は、顧客1106がオンラインストア1102からアイデンティティドメイン1104を購入するときに起こり得る。次に、アイデンティティドメイン1104内のアイデンティティを有するこれらのユーザは、
図11中の実線矢印により示されるように、さまざまなロールをアイデンティティドメイン1104内のアイデンティティを有する他のユーザに委任することができる。例えば、アイデンティティドメイン管理者1108は、他のユーザに、アイデンティティドメインセキュリティ管理者1110、および/または異なるサービスインスタンスについてサービス管理者1112および1114などのロールを委任することができる。これらの他のユーザは、アイデンティティドメイン1104内のアイデンティティを有するさらに他のユーザにロールをさらに委任することができる。例えば、アイデンティティドメインセキュリティ管理者1110は、他のユーザに、アイデンティティドメインユーザ/ロール管理ロール1116を委任することができる。別の例については、1つのサービスインスタンスについてのサービス管理者1112は、他のユーザに、そのサービスインスタンスについてのサービスインスタンス特有のロール1118を委任することができる。さらに別の例については、別のサービスインスタンスについてのサービス管理者114は、他のユーザに、その別のサービスインスタンスについてのサービスインスタンス特有のロール1120を委任することができる。
【0164】
図12は、発明の実施例に係る、上述のようなマルチテナントIDMシステムにおける許可継承をさらに示すブロック図である。システム1200は、オンラインストア1202および顧客のアイデンティティドメイン1204を含み得る。顧客(ストアアカウント管理者)1206は、オンラインストア1202内のアカウントを有し得る。一実施例では、顧客1206はアイデンティティドメイン1204内のアイデンティティではないので、顧客1206は許可を継承しない。アイデンティティドメイン1204内では、アイデンティティドメインセキュリティ管理者1210は、アイデンティティドメインユーザ/ロール管理ロール1216から許可を継承することができる。1つのサービスインスタンスについてのサービス管理者1212は、その同一のサービスについてのサービスインスタンス特有のロール1218から許可を継承することができる。別のサービスインスタンスについてのサービス管理者1214は、その別のサービスについてのサービスインスタンス特有のロール1220から許可を継承することができる。次に、アイデンティティドメイン管理者1208は、アイデンティティドメインセキュリティ管理者1210、ならびにサービス管理者1212および1214の各々から許可を継承することができる。したがって、一実施例では、アイデンティティドメイン管理者1208は、アイデンティティドメイン1204におけるすべてのサービスインスタンスを管理する許可を継承することができる。
【0165】
図5は、発明の実施例に係る、クラウド共有IDM層500のサブシステムの例を示すブロック図である。
図5のクラウド共有IDM層500は、
図3のクラウド共有IDM層304に相当し得る。クラウド共有IDM層500は、テナントおよびサービスプロビジョニング自動化API502と、IDMライフサイクルオペレーションツール504と、テナント・アウェアIDMコンポーネント拡張506と、テナント分離データモデル520とを含み得る。テナント・アウェアIDMコンポーネント拡張506は、マルチテナントログインユーザインターフェース(UI)および認証スキーム508と、クラウドIDMコンソール510と、アイデンティティフェデレーションマルチテナント拡張512と、クラウドインフラストラクチャ証明書サービス514と、ユーザ/ロールAPI516と、アプリケーションプラグインモジュールマルチテナント拡張518とを含み得る。
【0166】
一実施例では、共有IDMシステムの各コンポーネントは、アイデンティティドメイン間の分離を実施するために、そのアーティファクトについてのテナント分離コンストラクトを含み得る。このような各テナント分離コンストラクトは、テナント分離データモデル520に従い得る。アクセス管理製品は、例えば、アイデンティティ管理サービスおよび対応するポリシーを必要とする可能性がある。これらのポリシーが異なり、カスタマイズ可能となり、顧客毎に区別され得るように、各顧客は、共有IDMシステムのポリシーストアのそれ自身の「スライス」を有し得る。したがって、発明の一実施例では、共有IDMシステムのポリシーストア内のポリシーがアイデンティティドメインにより分割され得る。ポリシーを格納し、管理するためのメカニズムは、テナント特有であり得る。テナント分離データモデル520は、アイデンティティドメイン間の分離を実施するために、テナント・アウェアIDMコンポーネント拡張506内のサブシステムの各々によって従われ得る。テナント分離データモデル520に従うことにより、各共有IDM製品は、アイデンティティドメイン・アウェア特徴を所有することができる。
【0167】
例えば、マルチテナントログインUIおよび認証スキーム508は、それを介してユーザがアクセスしようとしている特定のアイデンティティドメインを識別できるUIフィールドを提供することにより、テナント分離データモデル520に従うことができる。この特徴により、ユーザがクラウドコンピューティング環境内の特定のアイデンティティドメインにログインすることが可能となる。次に、マルチテナントログインUIおよび認証スキーム508は、特定のアイデンティティドメインを、それに対してユーザが認証されるものとして選ぶことができる。特に、認証スキームは、ログインプロセス中に供給されるユーザアイデンティティと関連付けられる実際のパスワードを参照するときに正確なパーティションに問合せるために、特定のアイデンティティドメインを用いることができる。承認されていない(unqualified)ユーザアイデンティティは、アイデンティティドメイン内でユニークである必要があり得るが、このようなユーザアイデンティティは、場合によっては別個のアイデンティティドメインにわたって重複され得る。発明の一実施例では、完全に承認されているユーザアイデンティティは、それらのユーザアイデンティティが所属するアイデンティティドメインを特定することができ、このような完全に承認されているユーザアイデンティティは、別個のアイデンティティドメインにわたって重複されない。したがって、発明の実施例は、認証プロセスがマルチテナント・アウェアとなるメカニズムを提供する。このようなメカニズムは、ユーザのアイデンティティドメインを決定し得、そのアイデンティティドメインに特有のデータに基づいてユーザを認証し得る。
【0168】
一実施例では、クラウドIDMコンソール510は、テナント分離データモデル520に従う、テナント・アウェアコンポーネント拡張506のうちであり得る。クラウドIDMコンソール510は、ユーザパスワードを変更し、例えば、他のユーザアイデンティティ管理機能を行なうために用いられ得る。クラウドIDMコンソール510は、それを介して、コンソールオペレーションが行なわれるアイデンティティドメインを決定することができる制御を含み得る。したがって、アイデンティティドメイン管理者がクラウドIDMコンソール510を用いてユーザアイデンティティを追加または削除するとき、クラウドIDMコンソール510は、アイデンティティドメイン管理者が所属するアイデンティティドメインを決定し得、ユーザアイデンティティの追加または削除をそのアイデンティティドメインのみに制限し得る。
【0169】
テナントおよびサービスプロビジョニング自動化API502は、購入されたサービスインスタンスを、それらのサービスインスタンスが購入されたアイデンティティドメインにプロビジョニングするために用いられ得る。IDMライフサイクルオペレーションツール504は、データ(例えば、パッチアプリケーションなど)をアイデンティティドメインにアップロードする、アイデンティティドメインからダウンロードする、さらにアイデンティティドメイン内に同期させるために用いられ得る。
【0170】
図6は、発明の実施例に係る、オラクルIDM/セキュリティ層600のサブシステムの例を示すブロック図である。
図6のオラクルIDM/セキュリティ層600は、
図3のオラクルIDM/セキュリティ層306に相当し得る。オラクルIDM/セキュリティ層600は、オラクルプラットフォームセキュリティサービス(Oracle platform security services: OPSS)およびオラクルウェブサービスマネージャ(Oracle web services manager: OWSM)602と、オラクルインターネットディレクトリ(Oracle Internet directories: OID)604と、オラクルアイデンティティフェデレーション(Oracle identity federation: OID)モジュール606と、オラクルアイデンティティマネージャ(Oracle identity manager: OIM)608とを含み得る。発明の一実施例では、共有IDMシステムにおける各アイデンティティドメインに関連付けられたアイデンティティは、OID604内に格納され得る。OID604は、ライトウェイトディレクトリアクセスプロトコル(LDAP)ディレクトリを実現し得る。したがって、一実施例では、共有IDMシステムにおけるすべてのユーザのアイデンティティのすべてが、アイデンティティドメインにより分割されるLDAPディレクトリに格納され得る。
【0171】
各アイデンティティドメインについてのアクセス制御サブシステムは、保護されたサービスまたはリソースへのアクセスが、そのアイデンティティドメイン内に定義され、かつその保護されたサービスまたはリソースに関連付けられたポリシーが満たされる場合のみに付与されるという意味で、ポリシー駆動式(policy-driven)である。各アイデンティティドメインは、そのアイデンティティドメイン内に定義されたポリシーを実施するランタイムインスタンスを有し得る。一実施例では、すべてのアイデンティティドメインについてのすべてのポリシーは、共通のクラウドワイドのポリシーストアに格納され得るが、このポリシーストアは、アイデンティティドメインにより分割され得る。
【0172】
上述のように、発明の一実施例では、顧客は、アイデンティティドメインをクラウドベースの環境下で作成させることができ、さらに、オンラインストアから、そのアイデンティティドメイン内で利用可能となる1つ以上のサービスインスタンスを購入することができる。発明の一実施例では、マルチテナントクラウドベースのIDMシステムについてのAPIは、サービスインスタンスプロビジョニングオペレーションが正確な順に行なわれることを保証するように定義される。典型的には、アイデンティティドメインに対して行なわれる第1のオペレーションは、クラウドベースのIDMシステムにおけるそのアイデンティティドメインの作成である。API方法の一つは、アイデンティティドメインについての名称を受取り、クラウドベースのIDMシステム内の任意のアイデンティティドメインが既にその名称を有しているかを決定し得る。その名称を有するアイデンティティドメインが現在存在しない場合、API方法は、(一部、そのアイデンティティドメインを定義するメタデータを格納することにより)そのアイデンティティドメインを作成し得る。アイデンティティドメインがAPI方法の呼出しの以前に存在していたかにかかわらず、API方法は、名付けられたアイデンティティドメインに関する情報を、API方法を呼び出したエンティティに戻し得る。エンティティは、この情報を用いてAPIのさらなる方法を呼出し、サービスインスタンス追加などの名付けられたアイデンティティドメインに対するオペレーションを行なうことができる。
【0173】
図13は、発明の実施例に係る、アイデンティティドメイン内のサービスインスタンスをプロビジョニングするためのシステム1300の例を示すブロック図である。例示のオペレーションは、顧客がアイデンティティドメインとそのアイデンティティドメインについてのサービスインスタンスとを同時に購入している状況を想定している。例えば、サービスインスタンスは、フュージョンCRMアプリケーションのインスタンスである可能性がある。(A)において、グローバルシングルインスタンス(GSI)モジュール1302は、承認された顧客オーダーをTASモジュール1304に送信し得る。(B)において、TASモジュール1304は、SDIモジュール1306にサービスインスタンスを作成するように命令し得る。(C)において、SDIモジュール1306は、サービスインスタンスが作成されるべきであるアイデンティティドメイン自体がまだ作成されていないと決定し得るため、SDIモジュール1306は、IDMプロビジョニングAPI1308に、アイデンティティドメイン作成要求を送信し得る。この要求に応じて、IDMドメインプロビジョニングAPI1308は、顧客アイデンティティドメイン1310を作成させ得る。(D)において、IDMドメインプロビジョニングAPI1308は、SDIモジュール1306に、アイデンティティドメイン作成応答を送信し得る。このアイデンティティドメイン作成応答は、アイデンティティドメインが正常に作成されたことを示し、かつ、SDIモジュール1306が、IDMドメインプロビジョニングAPI1308との後のトランザクションにおいて新たに作成されたアイデンティティドメイン(顧客アイデンティティドメイン1310)を指すために用いることのできるリンケージ情報を含む。(E)においては、SDIモジュール1306は、サービスインスタンス作成要求をIDMドメインプロビジョニングAPI1308に送信し得る。この要求において、SDIモジュール1306は、新たに作成されたアイデンティティドメイン(顧客アイデンティティドメイン1310)を、サービスインスタンスが作成されるべきであるアイデンティティドメインとして指し得る。この要求に応じて、IDMドメインプロビジョニングAPI1308は、作成されたサービスインスタンス(例えば、フュージョンCRMアプリケーション)に特有の、IDMシステム1312におけるサービスインスタンスフットプリントを作成し得る。(F)において、IDMドメインプロビジョニングAPI1308は、SDIモジュール1306に、サービスインスタンス作成応答を送信し得る。(G)において、SDIモジュール1306は、顧客アイデンティティドメイン1310内に、作成されたサービスインスタンスのタイプ(例えば、フュージョンCRMアプリケーション)についてのサービスインスタンスシードIDMシステムアーティファクト1314を「リハイドレート(re-hydrate)」し得る。このようなリハイドレーションは、そのサービスインスタンスのタイプの格納された総括的な「イメージ」のコピーを作成し、サービスインスタンスとアイデンティティドメインとを接続し、かつ、そのアイデンティティドメインについてのサービスインスタンスをカスタマイズするするリンケージ情報を生成および格納することを含み得る。(H)において、SDIモジュール1306は、TASモジュール1304に、サービスインスタンスが顧客アイデンティティドメイン1310内に正常にインスタンス化されたことを示すサービスインスタンス作成確認応答を送信し得る。
【0174】
以下の表1は、発明の実施例に係る、
図13を参照して上に説明したさまざまなクラウドベースのイベントについて、クラウドベースのマルチテナントIDMシステムの異なるコンポーネントおよびクラウドベースのマルチテナントIDMシステム内の異なるエンティティが、それらのイベントの一部として、互いに通信し得る種類の情報を示す。
【0176】
アイデンティティドメインへのサービスインスタンスの追加は、クラウドベースの環境下での1つ以上の仮想マシンのインスタンス化を含み得る。そのタイプのサービスについての仮想マシンは、アイデンティティドメインにサービスインスタンスを追加することの一部としてインスタンス化され得る。一実施例では、このような仮想マシン、または「サービスインスタンスランタイムコンポーネント」のインスタンス化は、このような仮想マシンが適切なアイデンティティドメインと関連付けられる、または「接続される」ことを保証するコンフィグレーションオペレーションにより達成され得る。さらに、このような仮想マシンのインスタンス化は、このような仮想マシンが適切なポリシーベースの境界と関連付けられる、または「接続される」ことを保証するコンフィグレーションオペレーションにより達成され得る。発明の一実施例では、特定されるタイプのサービスインスタンスを作成するためのAPI方法は、クラウドベースのIDMシステム内で実現される。このサービスインスタンス作成API方法の呼出しは、クラウドベースのDMシステムに、サービスインスタンス仮想マシンと適切なアイデンティティドメインとの間の関連付けを確立させるために用いられ得るハンドルを作成させ得る。このようなハンドルは、適切なアイデンティティドメインの名称、ユーザ名、パスワード等の調整情報を含み得る。サービスインスタンス仮想マシンは、クラウドベースのIDMシステムに接続するためにこのようなユーザ名およびパスワードを用いることができ、接続プロセス中、そのコンテキストにおいてサービスインスタンス仮想マシンが実行されるであろうアイデンティティドメインの名称を特定し得る。サービスインスタンス作成API方法は、そのハンドルにより特定されるユーザ名およびパスワードが、どの他のサービスインスタンス仮想マシンについて作成されたハンドルにおいても重複していないことを保証し得る。このため、他のアイデンティティドメインのサービスインスタンスについての仮想マシンは、それ自身のアイデンティティドメイン以外のアイデンティティドメインに対して接続することが不適当に許可されない。したがって、サービスインスタンス作成API方法は、その方法を呼び出したエンティティに、サービスインスタンスをインスタンス化するために必要なデータをすべて含む情報のベクターを戻すことができる。
【0177】
各サービスインスタンス仮想マシンは、そのコンテキストにおいてサービスインスタンス仮想マシンが実行されるアイデンティティドメイン内に定義されたアイデンティティにアクセスすることができる。このアクセスは、例えば、サービスインスタンス仮想マシンがユーザを認証し、アイデンティティドメインに関係するロールを参照できるように付与され得る。
図8は、発明の実施例に係る、アプリケーションインスタンスランタイムコンポーネントがアイデンティティドメイン内に定義されたアイデンティティにアクセスできるマルチテナントIDMシステム800を示すブロック図である。図示される例において、アプリケーションインスタンスランタイムコンポーネントは、フュージョン(CRM)アプリケーションのインスタンス用である。システム800は、フュージョンアプリケーションサービス802、フュージョンミドルウェア804、ポリシーストア806、アイデンティティストア808、およびデータベース810を含み得る。フュージョンアプリケーションサービス802およびフュージョンミドルウェア804は、ともにフュージョンアプリケーションランタイムコンポーネントを構築する。ポリシーストア806およびアイデンティティストア808は、例えば、オラクルインターネットディレクトリ(OID)または他のLDAPディレクトリとして実現され得る。さまざまな別個のアイデンティティドメインからのポリシーを格納し得るポリシーストア806は、ポリシーストアルートノード826を含み得、ポリシーストアルートノード826から論理セキュリティストアノード824が階層的に降下し得、論理セキュリティストアノード824からポリシー816、818、820および822が階層的に降下し得る。ポリシー816、818および820は、1つのアイデンティティドメインであるドメインAに関係し得、ポリシー822は、別のアイデンティティドメインであるドメインBに関係し得る。ポリシー816および818は、JAVAサービスの別個のインスタンスに関係し得、ポリシー820および822は、フュージョンアプリケーションサービスの別個のインスタンスに関係し得る。さまざまな別個のアイデンティティドメインからのアイデンティティを格納し得るアイデンティティストア808は、LDAPルートノード828を含み得、LDAPルートノード828からさまざまなアイデンティティドメイン830についてのノードが階層的に降下し得、アイデンティティドメイン830からアイデンティティドメインA 832に関係するアイデンティティおよびアイデンティティドメインB 834に関係するアイデンティティが階層的に降下し得る。データベース810は、フュージョンオンライントランザクション処理(on-line transaction processing: OLTP)データ812および(場合によっては、フュージョンミドルウェアスキーマおよび他のデータベーススキーマを含み得る)スキーマ814などのフュージョンアプリケーションサービス802およびフュージョンミドルウェア804により使用されるデータを格納し得る。
【0178】
フュージョンアプリケーションは、マルチテナントIDMシステム800内に存在する、シングルテナントアプリケーションの一例であり得る。したがって、フュージョンアプリケーションサービス802およびフュージョンミドルウェア804の特定のインスタンスは、特定のアイデンティティドメインに特有であり得る。この例において、これらはアイデンティティドメインAに特有である。アイデンティティストア808は、その葉ノードに向かって、マルチテナントIDMシステム800における別個のアイデンティティドメインに関係するさまざまな別個のサブツリーを含むLDAPディレクトリツリーとして構築され得る。フュージョンアプリケーションランタイムコンポーネントについてのアイデンティティストアハンドルは、アイデンティティドメインA 832に関係するアイデンティティを含むLDAPサブツリーのルートノードであるLDAPアイデンティティ階層のノードのみを指す。したがって、フュージョンアプリケーションランタイムコンポーネントについてのアイデンティティストアハンドルは、アイデンティティドメインA専用のアイデンティティストア808の「スライス」のみを指す。このポインタは、フュージョンアプリケーションランタイムコンポーネントを起点とし、LDAPサブツリー832で終了する
図8の矢印として示される。このようなポインタは、フュージョンアプリケーションサービスがアイデンティティドメインAに追加されるときにAPI方法を呼び出した結果として確立され得る。API方法により戻されたハンドルは、マルチテナントIDMシステム800内で認識され、かつアイデンティティドメインAと特定的に関連付けられた特定のユーザ名およびパスワードを特定するクレデンシャルを含み得る。したがって、このクレデンシャルは、アイデンティティドメインAに関係するアイデンティティストア808の適切な「スライス」、またはパーティションに結び付けられ得る。フュージョンアプリケーションランタイムコンポーネントは、この特定のユーザ名およびパスワードを用いて、アイデンティティストア808の適切なパーティションにアクセスし得る。OID(アイデンティティストア808を実現するために用いられ得る)の内部のアクセス制御は、フュージョンアプリケーションランタイムコンポーネントの視認性(visibility)をアイデンティティストア808の適切なパーティションのみに制限(confine)し得るため、フュージョンアプリケーションランタイムコンポーネントは、アイデンティティドメインA以外のアイデンティティドメインに所属するアイデンティティにアクセスすることができない。
【0179】
マルチテナントIDMシステム800における各別個のサービスインスタンスは、クラウドワイドのポリシーストア808内に、そのサービスインスタンスに関係するそれ自身の別個のセットのポリシーを格納し得る。ポリシーストア808は、各アイデンティティドメインについてのサブツリー、および各アイデンティティドメインのサブツリー内のサービスインスタンスについてのポリシーノードを含むLDAPツリーとして構築され得る。フュージョンアプリケーションランタイムコンポーネントについてのポリシーストアハンドルは、アイデンティティドメインAに所属するフュージョンアプリケーションランタイムインスタンスに関係するポリシーを含むLDAPサブツリーのルートノードであるLDAPポリシー階層のノードのみを指す。このポインタは、フュージョンアプリケーションランタイムコンポーネントを起点とし、LDAPポリシーエントリ820で終了する矢印として
図8に示される。このようなポインタは、フュージョンアプリケーションサービスがアイデンティティドメインAに追加されるときにAPI方法を呼び出した結果として確立され得る。したがって、フュージョンアプリケーションランタイムコンポーネントは、アイデンティティドメインAに所属するフュージョンアプリケーションサービスに関係するポリシーに特定的に関係するポリシーストア808の特定のパーティションに結び付けられるまたは「接続され」る。その結果、フュージョンアプリケーションランタイムコンポーネントがポリシーストア808に問合せるとき、この問合せは、まさしくフュージョンアプリケーションランタイムコンポーネントが結び付けられたポリシーストア808の特定のパーティションに対して実行され得る。
【0180】
より一般的には、発明の一実施例では、サービスインスタンスランタイムコンポーネント毎に境界が存在する。特定のサービスインスタンスランタイムコンポーネントについて、適切なアイデンティティドメインおよび適切なサービスインスタンスそれぞれに関係する、アイデンティティストア806およびポリシーストア808それぞれのパーティションのみを指すクレデンシャルが作成され得る。これらのクレデンシャルは、一旦作成されると、プロビジョニングシステムに引き渡され得、これにより、プロビジョニングシステムは、各々がクラウドコンピューティング環境下でさまざまなアイデンティティドメインにおいてさまざまなサービスインスタンスについてのデータを格納し得るアイデンティティストア806およびポリシーストア808の適切なパーティションにサービスインスタンスランタイムコンポーネントを結び付け得る。アイデンティティストア806は、ポリシーストア808とは別個に実現され得る。なぜなら、アイデンティティはサービス特有でないが、ポリシーはサービス特有であり得るためである。したがって、各タイプのデータに関連するセキュリティ境界は、範囲が異なり得る。同一のアイデンティティドメイン内の複数のサービスインスタンスは、すべてアイデンティティストア806の同一のLDAPサブツリーに結び付けられ得るが、各サービスインスタンスは、ポリシーストア808の異なるLDAPポリシーエントリに結び付けられ得る。
【0181】
一実施例では、アイデンティティストア806などの1つ以上の情報ストアが、OIDなどのLDAPディレクトリに格納され得る。このようなLDAPディレクトリは、典型的には階層的に編成される。一実施例では、単一のLDAPディレクトリは、クラウドベースのマルチテナントIDMシステム内の複数の別個のアイデンティティドメインに関係する情報を格納し得る。
図16は、発明の実施例に係る、クラウドベースのIDMシステムについてのマルチテナントLDAPディレクトリ1600の構造の例を示す階層図である。LDAPルート1602は、システム群ノード1604、システムアイデンティティノード1606、アイデンティティドメインノード1608、およびサービステンプレートノード1610などの複数のノードの親となり得る。システム群1604は、アイデンティティドメイン特有ではなく、クラウドシステムワイドなアイデンティティの群を表わすノードの親となり得る。システム群1604は、app ID群の親となり得、app ID群は、さまざまなアプリケーションアイデンティティを識別された群にともにグループ化し得る。システムアイデンティティ1606は、アイデンティティドメイン特有ではなく、クラウドシステムワイドな個々のアイデンティティを表わすノードの親となり得る。システムアイデンティティは、app IDの親となり得、app IDは、そのアイデンティティがアイデンティティドメイン特有ではなく、クラウドシステムワイドな個々のアプリケーションを識別し得る。アイデンティティドメイン1608は、顧客Aアイデンティティドメイン1616A、顧客Bアイデンティティドメイン1616B、およびCSR(またはオペレーション)アイデンティティドメイン1618などのさまざまな別個のアイデンティティドメインについてのノードの親となり得る。上述のように、これらのアイデンティティドメインノードの各々は、それぞれのアイデンティティドメイン内のロールおよびアイデンティティに関係する数多くの他のノードの親となり得る。さらに、
図16は、顧客(例えば、AおよびB)当たりの単一のアイデンティティドメインを示すが、代替的な実施例では、各顧客は、複数の別個のアイデンティティドメインを有し得る。サービステンプレート1610は、異なるサービスタイプについてのロール階層のルートである数多くのノードの親となり得る。上述のように、異なるサービスタイプは、予め定義されたロール階層にマッピングされ得、予め定義されたロール階層は、そのタイプのサービスがアイデンティティドメインに追加されるとアイデンティティドメインに自動的に追加され、ユーザがそのサービスについての当該ロールを手動で作成する手間が省かれ得る。
【0182】
図17は、発明の実施例に係る、異なるサービスタイプについてのロールテンプレートに関係するLDAPディレクトリサブツリーの構造の例を示す階層図である。サービスコンテキストテンプレートノード1701は、
図16のサービステンプレートノード1610に相当し得る。サービスコンテキストテンプレートノード1701は、異なるサービスタイプについての数多くのノードの親となり得る。このようなノードは、例えば、JAVAサービスノード1702、データベースサービスノード1704、およびオラクルソーシャルネットワーク(Oracle social network: OSN)サービスノード1706を含み得る。ノード1702〜1706の各々は、そのサービスタイプについてのロールノードを含むサブツリーのルートであるノードの親となり得る。例えば、ロールテンプレートノード1708は、JAVAサービスタイプを有するサービスについて予め定義されたロールを記述するノードのサブツリーのルートとなり得る。別の例として、ロールテンプレートノード1710は、データベースサービスタイプを有するサービスについて予め定義されたロールを記述するノードのサブツリーのルートとなり得る。さらに別の例として、ロールテンプレートノード1712は、OSNサービスタイプを有するサービスについて予め定義されたロールを記述するノードのサブツリーのルートとなり得る。これらのサブツリーは、アイデンティティドメイン管理者およびサービス管理者などのそれらのサービスのユーザおよび管理者がこのようなロールを手動で作成する必要はないものの、それらのアイデンティティドメイン内のユーザにこのようなロールを割り当てることができるように、そのサービスの設計者および作成者により定義され得る。
【0183】
発明の一実施例によれば、マルチテナンシIDMシステムは、有利には、各々がそれら自身の別個のアイデンティティドメインを有する複数の別個の顧客が、クラウドにおいて共有されるハードウェアおよびソフトウェアを使用することを可能にする。その結果、各顧客がそれ自身の専用ハードウェアまたはソフトウェアリソースを有する必要がなく、いくつかの場合には、あるときに一部の顧客により使用されていないリソースが、他の顧客により使用可能となることにより、それらのリソースが無駄にされることを防止する。例えば、複数の顧客は、それぞれのアイデンティティドメイン内に配置されたJAVAサービスインスタンスを有し得る。このような各アイデンティティドメインは、ハードウェアの仮想的な「スライス」として見なされ得るJAVA仮想マシンを有し得る。別の例としては、一実施例では、複数の顧客が、それぞれのアイデンティティドメイン内に配置されたデータベースサービスインスタンスを有し得る。このような各データベースサービスインスタンスは、多くの別個のアイデンティティドメイン間で共有される単一の物理的なマルチテナントデータベースシステムの別個の抽象化またはビューであり得るが、このような各データベースサービスインスタンスは、各他のデータベースサービスインスタンスが有するものとは別個の、場合によっては異なるスキーマを有し得る。したがって、マルチテナントデータベースシステムは、顧客により特定されたデータベーススキーマとそれらのデータベーススキーマが関係するアイデンティティドメインとの間のマッピングを格納し得る。マルチテナントデータベースシステムは、特定のアイデンティティドメインについてのデータベースサービスインスタンスに、当該特定のアイデンティティドメインにマッピングされたスキーマを使用させ得る。一実施例では、ジョブモニタリングサービス(例えばハドソン)は、クラウドにおいてJAVAエンタプライズエディションプラットフォーム(例えばオラクルウェブロジック)と組み合わされて、各々の別個のアイデンティティドメインがJAVAエンタプライズエディションプラットフォームのそれ自体の別個の仮想的な「スライス」を有することを可能にし得る。このようなジョブモニタリングサービスは、例えばオペレーティングシステムの時間ベースのジョブスケジューラによって実行されるソフトウェアプロジェクトまたはジョブの構築などの繰返されるジョブの実行をモニタリングし得る。このような繰返されるジョブは、ソフトウェアプロジェクトの連続的な構築および/またはテストを含んでいてもよい。さらにまたは代替的に、このような繰返されるジョブは、ジョブモニタリングサービスが実行されるマシンから離れたマシン上で実行されるオペレーティングシステム起動ジョブの実行のモニタリングを含んでいてもよい。
【0184】
図14は、発明の実施例に係る、クラウドのハードウェアおよびソフトウェアリソースが、アイデンティティドメイン間で共有できるマルチテナントクラウドベースのシステム1400の例を示すブロック図である。システム1400は、オラクルJAVAクラウドサービス管理インターフェイス1402、アプリケーションエンドユーザ1404、オラクルクラウドサービスデプロイメントインフラストラクチャ1406、クラウドアプリケーションファンデーション1408、およびプロビジョニングされたシステム1410を含み得る。オラクルJAVAクラウドサービス管理インターフェイス1402は、ウェブベースのインターフェイスおよび/またはコマンドラインインターフェイスなどのさまざまなユーザインターフェイスを含み得る。これらのインターフェイスは、オラクルクラウドサービスデプロイメントインフラストラクチャ1406と対話するために用いられ得る。オラクルクラウドサービスデプロイメントインフラストラクチャ1406は、クラウドアプリケーションファンデーション1408と遣り取りし得る。一実施例では、クラウドアプリケーションファンデーション1408は、フュージョンミドルウェアコンポーネントを用いて構築され得る。一実施例では、クラウドアプリケーションファンデーション1408は、オラクルバーチャル・アセンブリ・ビルダ(OVAB)プール1410、データベースサーバ1412、ウェブティア(web tier)1414、IDMインフラストラクチャ1416、およびエンタープライズマネージャクラウド制御1422を含み得る。OVABプール1410は、JAVAクラウドサービスアセンブリ1412A−NおよびCRMサービスアセンブリ1414A−Nを含み得る。これらのアセンブリは、アイデンティティドメイン1424A−Nの各々の各JAVAクラウドサービスインスタンス1428についてのサービスプロビジョニングの際にインスタンス化され得る。このような各アセンブリは、そのアセンブリをエンタープライズマネージャクラウド制御1422およびウェブティア1414と関連付けることにより、その関連付けられたJAVAクラウドサービスインスタンス1428のためにパーソナライズされ得る。各アセンブリにアクセスするために用いられるエンドポイント情報が、電子メールによりアプリケーションエンドユーザ(例えば、アプリケーションエンドユーザ1404)に送信され得る。IDMインフラストラクチャ1416は、ディレクトリ1418およびアクセス管理モジュール1420を含み得る。プロビジョニングされたシステム1410は、アイデンティティドメイン1424A−Nおよびオラクル仮想マシン1426を含み得る。アイデンティティドメイン1424A−Nの各々は、それ自身のIDM/SSOモジュール1426、JAVAクラウドサービス1428、CRMサービス1430、およびデータベースサーバ1432を含み得る。オラクルクラウドサービスデプロイメントインフラストラクチャ1406およびIDMインフラストラクチャ1416は、プロビジョニングされたシステム1410と遣り取りし得る。
【0185】
図15は、発明の実施例に係る、分離された顧客間でクラウドハードウェアの仮想的な「スライス」を共有するために、クラウドベースのシステムにおいて用いることができるJAVAクラウドサービスアーキテクチャ1500の例を示すブロック図である。アーキテクチャ1500は、JAVAクラウドサービスインスタンス1502、Exalogicストレージ1504、およびデータベースクラウドサービスインスタンス1506を含み得る。JAVAクラウドサービスインスタンス1502は、Exalogic演算ノード1508Aおよび1508Bなどの複数のExalogic演算ノードを含み得る。各Exalogic演算ノードは、OVMインスタンス1510Aおよび1510Bなどのオラクル仮想マシン(OVM)インスタンスを含み得る。各OVMインスタンスは、マネージドサーバ1512Aおよび1512Bなどのマネージドサーバを含み得る。各マネージドサーバは、複数の別個のアプリケーションを実行し得る。マネージドサーバ1512は、ともに高可用性を提供する顧客専用クラスタ1514を構成する。Exalogic演算ノード1508は、Exalogicストレージ1504と遣り取りし得る。Exalogicストレージは、バイナリボリューム1518、コンフィグレーションボリューム1520、およびアプリケーションボリューム1522を含み得る。データベースサービスインスタンス1506は、Exadata(オラクルデータベーススキーマ−−リアルアプリケーションクラスタ(RAC)ノード)1516を含み得る。一実施例では、ウェブロジックノードマネージャは、スレッドデッドロックおよびJAVA仮想マシン(JAVA virtual machine: JVM)クラッシュによるサーバ再起動のために構成され得る。ウェブロジッククラスタ化は、標準およびエンタープライズの提供に使用され得る。OVMインスタンス1510A−BなどのサービスOVMインスタンスは、Exalogic演算ノード1508A−Bなどの別個のexalogic演算ノード上で起動され得る。OVMが一つのExalogic演算ノード上で障害を起こすと、別のExalogic演算ノード上のOVMが、前者のExalogic演算ノード上の障害を起こしたOVMを再度起動し得る。データベースクラウドサービスインスタンス1506は、オラクルRACワンノードコンフィグレーションの中にあり得る。
【0186】
図18は、発明の実施例に係る、同一のデータベースインスタンス内で複数のスキーマを用いることができるクラウドベースのシステムにおいて用いることができる、データベースクラウドサービスマルチテナンシアーキテクチャ1800の例を示すブロック図である。用語の説明として、データベースインスタンスとは、問合せ実行およびリレーショナルデータ操作などのオペレーションを行なうことができるデータベースサーバとして集合的に機能するソフトウェアプロセスを実行する集合である。従来、単一の組織のためのエンタープライズ環境下では、データベースインスタンスは、そのデータベースインスタンスにより維持されるデータのすべてが編成されるリレーショナルテーブルなどのリレーショナル構造のフォーマットを特定する単一のデータベーススキーマを有していた。しかしながら、発明の一実施例によれば、クラウドコンピューティング環境下でホストされる単一のデータベースインスタンスは、複数の、別個の、場合によっては異なるスキーマを、各別個のアイデンティティドメイン(または「テナンシ」)当たり1つずつ維持し得る。有利には、この多くのスキーマ対1つのデータベースインスタンスのアプローチにより、複数の典型的には無関係の顧客(すなわち、テナント)が同一のセットの実行されるデータベースソフトウェアプロセス(単一のデータベースインスタンス)を利用できるようになるため、それらのデータベースソフトウェアプロセスの別個のインスタンスは、各顧客のアイデンティティドメイン毎にインスタンス化される必要がない。
【0187】
アーキテクチャ1800は、Exadata演算ノード1802A−Bなどの複数のExadata演算ノードを含み得る。Exadata演算ノード1802A−Bは、ハードウェア演算マシンであり得る。このような各マシンは、1つ以上のハードウェア処理ユニット(これらは、ソフトウェアにより特定される機械言語命令に基づいて、プロセッサレベルのフェッチ―デコード―実行オペレーションを行なう)を含み得る。このような各マシンは、クラウドベースのサービスのプロバイダにより所有され、作動される別個のサーバコンピューティング装置になり得る。したがって、一実施例では、Exadata演算ノード1802A−B上で実行されるデータベースソフトウェアにより提供されるデータベース機能をサブスクライブし、使用する顧客は、Exadata演算ノード1802A−Bを所有せずに、その上で実行されるソフトウェアプロセスを利用するに過ぎない。Exadata演算ノード1802Aは、1つ以上のパケット化されたネットワークにより、Exadata演算ノード1802Bに通信により結合され得る。一実施例では、Exadata演算ノード1802Bは、冗長性目的で、Exadata演算ノード1802A上のレプリカとして動作する。Exadata演算ノード1802Aが障害を起こした場合、顧客は、Exadata演算ノード1802Aが回復され得るまで、Exadata演算ノード1802Bに対するオペレーションを自動的に再開することができる。
【0188】
Exadata演算ノード1802A−Bは、データベースインスタンス1804A−Bなどの別個のデータベースインスタンスをそれぞれ実行し得る。データベースインスタンス1804A−Bの各々は、同一のデータベースソフトウェアコードセットから実行されるプロセスの別個の集合であり得る。データベースインスタンス1804A−Bの各々は、複数の別個の、分離した、典型的には異なるデータベーススキーマを維持し得る。例えば、データベースインスタンス1804Aは、データベーススキーマ1806AA−ANを維持し得、データベースインスタンス1804Bは、データベーススキーマ1806BA−BNを維持し得る。このような、発明の一実施例に係る、データベースインスタンス毎の複数のデータベーススキーマの維持は、従来の、データベースインスタンス毎に1つのスキーマのアプローチとは対照的である。データベーススキーマ1806AA−ANの各々は、別個のアイデンティティドメインにマッピングされ得る。データベースインスタンス1804A−Bの各々は、そのデータベーススキーマと、それらのデータベーススキーマが所属するアイデンティティドメインとの間のマッピングを特定するメタデータを維持し得る。本明細書中で説明される共有のIDMアクセス制御により提供される分離メカニズムは、各アイデンティティドメインのスキーマが、そのアイデンティティドメインに関連付けられたユーザおよびサービスによってのみアクセスされ、使用可能となることを保証する。データベースインスタンス1804A−Bは、アイデンティティドメイン間で共有され得るが、データベーススキーマ1806AA−AN(およびそれらのレプリカ1806BA−BN)は、個々のアイデンティティドメイン専門であり、他のすべてのアイデンティティドメインから分離され得るため、データベーススキーマ1806AA−AN(およびそれらのレプリカ1806BA−BN)は、代替的に「データベースサービスインスタンス」と呼ばれ得る。したがって、発明の一実施例によれば、本明細書中の「データベースサービスインスタンス」との記載は、データベースインスタンス単独ではなく、スキーマ−データベースインスタンス対を指す。
【0189】
各データベーススキーマは、複数の別個のリレーショナルテーブルを特定し得る。例えば、データベースインスタンス1804A内では、データベーススキーマ1806AAは、リレーショナルテーブル1808AAA−1808AANを特定し得、データベーススキーマ1806ANは、リレーショナルテーブル1808ANA−1808ANNを特定し得る。別の例として、データベースインスタンス1804B内では、データベーススキーマ1806BAは、リレーショナルテーブル1808BAA−1808BANを特定し得、データベーススキーマ1806BNは、リレーショナルテーブル1808BNA−1808BNNを特定し得る。Exadata演算ノード1802Bは、Exadata演算ノード1802Aのレプリカであり得るため、リレーショナルテーブル1808BAA−1808BNNとともに、データベーススキーマ1806BA−BNは、リレーショナルテーブル1808AAA−1808ANNとともに、データベーススキーマ1806AA−ANのレプリカであり得る。Exadata演算ノード1802A上のデータベーススキーマまたはリレーショナルテーブルになされた変更は、Exadata演算ノード1802B上に自動的に伝えられ、複写され得る。各データベーススキーマは、別個のセットの格納されたプロシージャ、トリガなども特定し得る。
【0190】
アーキテクチャ1800は、クラウドストレージ1810も含み得る。クラウドストレージ1810は、ハードディスクドライブなど、複数の、場合によっては別個であるが、相互に接続されたハードウェアストレージ装置により構成され得る。これらのストレージ装置は、必ずしもそうではないが、場合によってはExadata演算ノード1802A−Bと別個かつ異なり得る。Exadata演算ノード1802A−Bによりアクセスされ、管理されるデータは、さまざまなストレージ装置間で分配され得るため、個々の演算ノードによりアクセスされ、管理されるデータの一部が複数の別個のストレージ装置間で分散され得る、および/または、1つの演算ノードによりアクセスされ、管理されるデータの少なくとも一部が、別の演算ノードによりアクセスされ、管理されるデータとして同一のストレージ装置の少なくとも一部に格納され得る。実際、一実施例では、Exadata演算ノード1802Bは、Exadata演算ノード1802Aのレプリカであるため、これらの演算ノードの各々は、データベースデータの同一のコピーを共有し得る。このようなシナリオにおいては、データベースソフトウェアプロセスの実行などのコンピューティングリソース(computational resources)が複製され得るが、それらのプロセスによりアクセスされ、維持されるデータレコードは、レプリカ間で共有され得る。クラウドストレージ1810を構築するハードウェアストレージ装置は、クラウドサービスプロバイダにより所有され、作動され得、クラウドサービスプロバイダは、上述のように、典型的には、そのデータレコードがそれらのハードウェアストレージ装置に格納された顧客と別個かつ異なる。
【0191】
クラウドストレージ1810は、表領域1812A−Nを格納し得る。一実施例では、各データベーススキーマは、そのデータベーススキーマに一致するデータが格納された別個の専用の表領域を有する。例えば、表領域1812Aは、データベーススキーマ1806AA(およびそのレプリカとしてのデータベーススキーマ1806BA)に一致するデータの格納専用であり得、表領域1812Bは、データベーススキーマ1806AN(およびそのレプリカとしてのデータベーススキーマ1806BN)に一致するデータの格納専用であり得る。一実施例では、これらの表領域は、データベースインスタンス1804A−Bを介してのみアクセス可能であるため、本明細書中で説明される共有のIDMアクセス制御によりデータベースインスタンス1804A−Bに課される分離メカニズムは、表領域1812A−Nの各々が表領域1812A−Nの各々から分離されることを保証するのに十分である。その結果、一実施例では、さまざまな表領域1812A−Nが、それら自体は必ずしも厳密には個々のアイデンティティドメイン専用でない別個のハードウェアストレージ装置間に物理的に分配され、格納されていたとしても、特定のデータベーススキーマと同一のアイデンティティドメインに所属するユーザおよびサービスインスタンスのみが(さらに、ポリシーにより認可された場合に)、その特定のデータベーススキーマに一致するデータのいずれかにアクセスすることが許可される。言い換えれば、個々の物理的なストレージ装置が別個のアイデンティティドメイン専用であっても、表領域1812A−Nが、それぞれそれらのアイデンティティドメインに所属するデータベーススキーマ専用であることを必ずしも保証するわけではない。
【0192】
表領域1812A−Nの各々は、別個のデータファイルを格納できる。例えば、表領域1812A−Nはそれぞれ、データファイル1814A−Nをそれぞれ格納し得る。データファイル1814A−Nの各特定のデータファイルは、その特定のデータファイルを格納する表領域の専用であるデータベーススキーマにより定義されるリレーショナルテーブル内に論理的に含まれるデータレコード(例えば、リレーショナルテーブル行)を物理的に含み得る。例えば、表領域1812Aがデータベーススキーマ1806AA専用であると仮定すると、データファイル1814Aは、リレーショナルテーブル1808AAA−AANに論理的に含まれる(かつ、それらのレプリカであるリレーショナルテーブル1808BAA−BANに論理的に含まれる)データレコードを物理的に含み得る。別の例として、表領域1812Bがデータベーススキーマ1806AN専用であると仮定すると、データファイル1814Bは、リレーショナルテーブル1808ANA−ANNに論理的に含まれる(かつ、それらのレプリカであるリレーショナルテーブル1808BNA−BNNに論理的に含まれる)データレコードを物理的に含み得る。
【0193】
図19は、発明の実施例に係る、Nuviaqクラウドシステム1900の例を示すブロック図である。システム1900は、テナントプロビジョニングシステム(SDI)1902、テナントコンソール1904、統合開発環境(Integrated Development Environment: IDE)1906、コマンドラインインターフェイス(CLI)1908、ウェブゲート1910、Nuviaqプロキシ1912、Nuviaqマネージャ1918、Nuviaqデータベース1924、プラットフォームインスタンス1926、ウイルススキャンモジュール1934、IDMシステム1936、CRMモジュール1942、およびアイデンティティ管理1940を含み得る。ともに、Nuviaqプロキシ1912、Nuviaqマネージャ1918、およびNuviaqデータベース1924は、概念的にNuviaq1950を構成する。テナントプロビジョニングAPI1902およびテナントコンソール1904は、Nuviaqプロキシ1912と遣り取りし得る。IDE1906およびCLI1908は、Nuviaqマネージャ1918と遣り取りし得る。ウェブゲート1910は、プラットフォームインスタンス1926と遣り取りし得る。Nuviaqマネージャ1918は、Nuviaqデータベース1924、ウイルススキャンモジュール1934、IDMシステム1936、およびプラットフォームインスタンス1926と遣り取りし得る。プラットフォームインスタンス1926は、CRMモジュール1942およびアイデンティティ管理1940と遣り取りし得る。Nuviaqプロキシ1912は、オラクルハイパーテキスト転送プロトコルサーバ(Oracle Hypertext Transfer Protocol server: OHS)1914およびウェブロジックサーバ1916A−Nを含み得る。Nuviaqマネージャ1918は、OHS1920およびウェブロジックサーバ1922A−Nを含み得る。プラットフォームインスタンス1926は、ウェブロジックサーバ1928A−N、ウェブロジック管理サーバ1930、およびインスタンスデータベース1932を含み得る。
【0194】
一実施例では、Nuviaqマネージャ1918は、システム1900へのエントリポイントとして機能し得る。このようなエントリポイントとして、Nuviaqマネージャ1918は、安全なウェブサービスAPIを介してPaaSオペレーションへの安全なアクセスを提供し得る。Nuviaqマネージャ1918は、Nuviaqデータベース1924におけるシステム1900の状態を追跡し得る。Nuviaqマネージャ1918は、ジョブ実行を制御し得る。テナントプロビジョニングシステム(SDI)1902は、Nuviaqマネージャ1918にアクセスし、Nuviaqマネージャ1918に、クラウドベースのコンピュータ環境下でプロビジョニングオペレーション(例えば、サービスインスタンスプロビジョニングオペレーション)を行なうように命令し得る。テナントコンソール1914は、Nuviaqマネージャ1918にアクセスし、Nuviaqマネージャ1918に、クラウドベースのコンピュータ環境下でデプロイメントオペレーション(例えば、サービスインスタンスデプロイメントオペレーション)を行なうように命令し得る。Nuviaqマネージャ1918は、このようなオペレーションに関わるジョブを非同期に実行し得る。このようなジョブは、PaaSワークフローに特有のアクションのシーケンスを含み得る。Nuviaqマネージャ1918は、ジョブのアクションを順次行ない得る。このようなアクションは、エンタープライズマネージャ(EM)モジュールのコマンドラインインターフェイスなどの他のコンポーネントへのタスクの委任を含み得る。Nuviaqマネージャ1918は、OHS1920とともにウェブロジックサーバ1920A−Nのクラスタ上で実行され得る。
【0195】
一実施例では、Nuviaqプロキシ1912は、他のシステムがAPIを介して遣り取りし得るアクセスポイントとなり得る。Nuviaqプロキシ1912は、このAPIを介して他のシステムから要求を受取り、それらの要求をNuviaqマネージャ1918へ転送し得る。一実施例では、Nuviaqプロキシ1912は、その内部にNuviaqマネージャ1918が位置するファイアウォールの外部に位置し得る。Nuviaqプロキシ1912は、OHS1914とともにウェブロジックサーバ1916A−Nのクラスタ上で実行され得る。
【0196】
一実施例では、Nuviaqデータベース1924は、プラットフォームインスタンス1926ならびにデプロイメント計画、アプリケーション、ウェブロジックドメイン、ジョブ、およびアラートに関係するデータを追跡し得る。Nuviaqデータベース1924内に格納された主キーは、顧客(または「テナント」)と、それらのアイデンティティドメイン(または「テナンシ」)と、それらの顧客がサブスクライブしたサービスインスタンスとの間のマッピングを含むクラウドワイドのサービスデータベース(図示せず)内に格納されたキーと整合されてもよい。
【0197】
一実施例では、プラットフォームインスタンス1926は、特定のアイデンティティドメインにウェブロジックサービスリソースを提供する。したがって、別個のプラットフォームインスタンス1926が、クラウドベースの環境下で、各別個のアイデンティティドメインについてインスタンス化され、当該アイデンティティドメイン専用となり得る。しかしながら、このような各プラットフォームインスタンス1926は、Nuviaqマネージャ1918により中心で管理され得るため、Nuviaqマネージャ1918のたった1つのインスタンスがインスタンス化されればよいだけである。一実施例では、Nuviaqマネージャ1918は、各アイデンティティドメインについての各別個のプラットフォームインスタンス1926を作成するコンポーネントである。プラットフォームインスタンス1926は、ウェブロジックサーバのアイデンティティドメイン専用の「スライス」として想像され得る。Nuviaq1950により処理された一部のワークフローは、サービスデータベース内に格納されたマッピングにより示されるように、ウェブロジック「スライス」を、顧客がサブスクライブしたさまざまな他のサービスインスタンスへのクライアントとして機能するように構成するために、上述のサービスデータベースへのアクセスを含み得る。テナントコンソール1904は、アイデンティティドメイン内の任命された管理者に、それらの管理者が、そのアイデンティティドメイン内に含まれるプラットフォームインスタンス1926上で実行されているアプリケーションを管理できるようにするユーザインターフェイスを提供し得る。さらに、このようなアプリケーションを管理するためにCLI1908が用いられ得る。各プラットフォームインスタンス1926には、クラウドコンピューティング環境内でユニークな識別子が割り当てられ得、このユニークな識別子を用いて、そのプラットフォームインスタンス1926を利用するオペレーションにおいてプラットフォームインスタンス1926を参照することができる。
【0198】
一実施例では、Nuviaq1950は、ウェブロジックワークフローを行なうためにNuviaq1950外部のコンポーネントとともに動作し得る。これらの外部コンポーネントのうち、テナントプロビジョニングモジュール(SDI)1902は、アセンブリデプロイヤサブシステムを含み得る。アセンブリデプロイヤサブシステムは、Nuviaq1950とオラクルバーチャル・アセンブリ・ビルダ(OVAB)とオラクル仮想マシン(OVM)との間のインタラクションを管理し得る。Nuviaq1950は、アセンブリデプロイヤサブシステムを用いて、アセンブリをデプロイする、アセンブリをアンデプロイする、アセンブリデプロイメントを記述する、さらに、アプライアンスをスケーリングすることができる。Nuviaq1950は、ウェブサービスAPIを介してアセンブリデプロイヤサブシステムにアクセスし得る。
【0199】
さらに、外部コンポーネントのうち、ウイルススキャンモジュール1934は、ウイルスおよび他の有害な実行可能命令がないかさまざまなアーティファクトをスキャンした後に、それらのアーティファクトがクラウドコンピューティング環境における任意のアプリケーションにデプロイされることを許可する。ウイルススキャンモジュール1934は、クラウドコンピューティング環境における複数の別個のコンポーネントに「サービスとしてのスキャン」を提供し得る。一実施例では、ウイルススキャンモジュール1934は、複数の別個のアイデンティティドメイン内のコンポーネントにそのサービスを提供し得るため、アイデンティティドメイン毎に別個のウイルススキャンモジュールがインスタンス化される必要がない。詳細を上述したIDMシステム1936は、Nuviaq1950により行なわれるジョブにセキュリティを提供し得る。CRMモジュール1942は、さまざまなアイデンティティドメイン内に配置されたJAVAサービスインスタンスと対応付けられ得る。これらのJAVAサービスインスタンスとCRMモジュール1942とのこのような対応付けは、このようなJAVAサービスインスタンスにより実行されるアプリケーションが、CRMモジュール1942にウェブサービスコールを行なうことにより、CRMモジュール1942のCRM機能を行なうことを可能にする。
【0200】
ハードウェア概略
図9は、本発明の実施例に従って用いられ得るシステム環境900のコンポーネントを示す簡略ブロック図である。図示されるように、システム環境900は、固有のクライアントアプリケーションや、場合によってはウェブブラウザなどの他のアプリケーションなどを含むクライアントアプリケーションを動作させるように構成された1つ以上のクライアントコンピューティング装置902、904、906および908を含む。さまざまな実施例においては、クライアントコンピューティング装置902、904、906および908はサーバ912と対話し得る。
【0201】
クライアントコンピューティング装置902、904、906および908は、汎用パーソナルコンピュータ(一例として、マイクロソフトウィンドウズ(登録商標)および/またはアップルマッキントッシュオペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む)、(マイクロソフトウィンドウズモバイルなどのソフトウェアを実行し、インターネット、電子メール、SMS、ブラックベリーまたは使用可能な他の通信プロトコルである)携帯電話もしくはPDA、ならびに/または、さまざまな市販のUNIX(登録商標)もしくはUNIXのようなオペレーティングシステム(さまざまなGNU/Linux(登録商標)オペレーティングシステムを含むがこれに限定されるものではない)のいずれかを実行するワークステーションコンピュータであってもよい。代替的には、クライアントコンピューティング装置902、904、906および908は、ネットワーク(例えば、以下に記載のネットワーク910)を介して通信することができるシン・クライアントコンピュータ、インターネットへの接続が可能なゲーム機および/またはパーソナルメッセージング装置などのその他の電子装置であってもよい。例示的なシステム環境900が4つのクライアントコンピューティング装置とともに示されているが、いかなる数のクライアントコンピューティング装置がサポートされてもよい。センサを有する装置などの他の装置がサーバ912と対話してもよい。
【0202】
システム環境900はネットワーク910を含み得る。ネットワーク910は、TCP/IP、SNA、IPX、AppleTalkなどを含むがこれらに限定されるものではないさまざまな市販のプロトコルのいずれかを使用してデータ通信をサポートし得る、当業者になじみのある任意のタイプのネットワークであってもよい。単に一例として、ネットワーク910は、イーサネット(登録商標)ネットワーク、トークン・リング・ネットワークなどのローカルエリアネットワーク(local area network:LAN)、広域ネットワーク、仮想プライベートネットワーク(virtual private network:VPN)を含むがこれに限定されるものではない仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(例えばIEEE802.11の一連のプロトコル、当該技術分野において公知のブルートゥース(登録商標)プロトコルおよび/またはその他の無線プロトコルのいずれかの下で動作するネットワーク)、ならびに/または、これらのおよび/もしくは他のネットワークの任意の組み合わせであってもよい。
【0203】
システム環境900はまた1つ以上のサーバコンピュータ912を含む。サーバコンピュータ912は、汎用コンピュータ、特化サーバコンピュータ(一例として、PCサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式のサーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な配置および/もしくは組み合わせであり得る。さまざまな実施例においては、サーバ912は、1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。
【0204】
サーバ912は、市販のサーバオペレーティングシステムに加えて、上述のうちいずれかを含むオペレーティングシステムを実行し得る。サーバ912は、HTTPサーバ、FTPサーバ、CGIサーバ、Javaサーバ、データベースサーバなどを含む、さまざまな追加のサーバアプリケーションおよび/もしくは中間層アプリケーションのいずれかを実行し得る。例示的なデータベースサーバとしては、オラクル、マイクロソフト、サイベース、IBMなどから市販されているものが挙げられるが、これらに限定されるものではない。
【0205】
システム環境900はまた1つ以上のデータベース914および916を含み得る。データベース914および916はさまざまな位置に存在してもよい。一例として、データベース914および916のうち1つ以上は、サーバ912に対してローカルな(および/またはサーバ912に常駐する)非一時的な記憶媒体上に存在してもよい。代替的には、データベース914および916は、サーバ912から離れており、ネットワークベースの接続または専用の接続を介してサーバ912と通信してもよい。一組の実施例においては、データベース914および916は、当業者になじみのあるストレージエリアネットワーク(SAN:storage-area network)に存在していてもよい。同様に、サーバ912に起因する機能を実行するのに必要な如何なるファイルも、適宜、サーバ912上にローカルに格納および/または遠隔に格納され得る。一組の実施例においては、データベース914および916は、SQLでフォーマットされたコマンドに応じてデータを格納、更新および検索するように適合されたリレーショナルデータベース、例えばオラクルによって提供されるデータベースなど、を含み得る。
【0206】
図10は、本発明の実施例に従って用いられ得るコンピュータシステム1000の簡略ブロック図である。例えば、サーバ912またはクライアント902、904、906もしくは908はシステム1000などのシステムを用いて実現されてもよい。バス1024を介して電気的に接続され得るハードウェア要素を含むコンピュータシステム1000が示される。ハードウェア要素は、1つ以上の中央処理装置(CPU:central processing unit)1002、1つ以上の入力装置1004(例えばマウス、キーボードなど)、および1つ以上の出力装置1006(例えば表示装置、プリンタなど)を含み得る。コンピュータシステム1000はまた1つ以上の記憶装置1008を含み得る。一例として、記憶装置1008は、ディスクドライブ、光学記憶装置、およびソリッドステート記憶装置、例えば、プログラム可能、フラッシュ更新可能などであり得るランダムアクセスメモリ(RAM:random access memory)および/またはリードオンリメモリ(ROM:read-only memory)などの記憶装置を含んでいてもよい。
【0207】
コンピュータシステム1000は、コンピュータ読取可能記憶媒体リーダ1012、通信サブシステム1014(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信装置など)、ならびに、上述のRAM装置およびROM装置を含み得るワーキングメモリ1018を付加的に含み得る。いくつかの実施例においては、コンピュータシステム1000はまた、デジタル信号プロセッサ(DSP:digital signal processor)、専用プロセッサなどを含み得る処理加速ユニット1016を含んでもよい。
【0208】
さらに、コンピュータ読取可能記憶媒体リーダ1012は、ともに(および任意に、記憶装置1008と組み合わせて)一時的および/またはより永久的にコンピュータ読取可能な情報を含むためのリモートの、ローカルの、固定されたおよび/または取外し可能な記憶装置プラス記憶媒体を包括的に表わすコンピュータ読取可能記憶媒体1010に接続可能である。通信システム1014は、ネットワーク910および/またはシステム環境900に関して上述された他のいずれかのコンピュータとのデータの交換を許可し得る。
【0209】
コンピュータシステム1000はまた、オペレーティングシステム1020および/または他のコード1022、例えば(クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、RDBMSなどであり得る)アプリケーションプログラムなどを含むワーキングメモリ1018内にその時点で位置するように示されたソフトウェア要素を含み得る。具体的な実施例においては、ワーキングメモリ1018は、上述のようなマルチテナントクラウドベースIDMシステムのために用いられる実行可能コードおよび関連データ構造を含み得る。コンピュータシステム1000の代替的な実施例は、上記のものからの複数の変更例を有し得ることが理解されるべきである。例えば、カスタマイズされたハードウェアも使用されてもよく、および/または、特定の要素がハードウェア、(アプレットなどの高移植性ソフトウェアを含む)ソフトウェアまたはそれら両方で実現されてもよい。さらに、ネットワーク入力/出力装置などの他のコンピューティング装置への接続が利用されてもよい。
【0210】
コードまたはコードの一部を含むための記憶媒体およびコンピュータ読取可能媒体は、記憶媒体
を含む当該技術分野において公知のまたは使用される任意の適切な媒体を含み得て、当該媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納および/または情報の伝達のための任意の方法または技術において実現される揮発性および不揮発性の(非一時的な)、取外し可能および取外し不可能な媒体などであって、所望の情報を格納または伝送するために使用可能であり、コンピュータによってアクセス可能であるRAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(digital versatile disk:DVD)もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置
、またはその他の媒体を含むが、これらに限定されない。
【0211】
図27、
図28および
図29は、それぞれ、上述のとおり本発明の原理に従って構成されるコンピューティング装置2700、2800、2900の機能ブロック図を示す。コンピューティング装置の機能ブロックは、本発明の原理を実行するために、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアとの組み合わせによって実現されてもよい。当業者であれば、
図27、
図28および
図29において記載される機能ブロックを組み合わせるかまたはサブブロックに分割して上述のような本発明の原理を実現し得ることを理解する。したがって、この明細書中の記載は、この明細書中に記載された機能ブロックのいかなる実現可能な組み合わせまたは分割またはさらなる定義をもサポートし得る。
【0212】
図27に示されるように、コンピューティング装置2700は、第1の作成ユニット2702、第1の関連付けユニット2704、第1の共有ユニット2706、第2の作成ユニット2708、第2の関連付けユニット2710、および第2の共有ユニット2712を含む。
【0213】
第1の作成ユニット2702は、共有のアイデンティティ管理システムを介して第1のアイデンティティドメインを作成し得る。第1の関連付けユニット2704は、第1の複数のサービスを第1のアイデンティティドメインと関連付け得る。第1の共有ユニット2706は、第1の複数のサービスの間で、共有のアイデンティティ管理システムにより管理されるユーザの第1のセットのアイデンティティを共有し得る。第2の作成ユニット2708は、共有のアイデンティティ管理システムを介して、第1のアイデンティティドメインから分離された第2のアイデンティティドメインを作成し得る。第2の関連付けユニット2710は、第2の複数のサービスを第2のアイデンティティドメインと関連付け得る。第2の共有ユニット2712は、第2の複数のサービスの間で、共有のアイデンティティ管理システムにより管理されるユーザの第2のセットのアイデンティティを共有し得る。
【0214】
コンピューティング装置2700は、第1および第2のマッピングユニット2714および2716をさらに含み得る。第1のマッピングユニット2714は、共有のアイデンティティ管理システムを介して、(a)ユーザの第1のセットの第1のユーザを(b)第1の複数のサービスのサブセットに対する第1のアクセス許可にマッピングし得る。第2のマッピングユニット2716は、共有のアイデンティティ管理システムを介して、(c)ユーザの第2のセットの第2のユーザを(d)第2の複数のサービスのサブセットに対する第2のアクセス許可にマッピングし得る。
【0215】
コンピューティング装置2700は、第3および第4のマッピングユニット2718および2720をさらに含み得る。第3のマッピングユニット2718は、共有のアイデンティティ管理システムを介して、(a)ユーザの第1のセットの第1のユーザを(b)第1の複数のサービスのサブセットに対する第1のアクセス許可にマッピングされた第1のロールにマッピングし得る。第4のマッピングユニット2720は、共有のアイデンティティ管理システムを介して、(c)ユーザの第2のセットの第2のユーザを(d)第2の複数のサービスのサブセットに対する第2のアクセス許可にマッピングされた第2のロールにマッピングし得る。
【0216】
コンピューティング装置2700はさらに、第1および第2の防止ユニット2722、2724と、許可ユニット2726とを含み得る。第1の防止ユニット2722は、ユーザの第1のセットにおけるユーザが、サービスの第1のセットでなく、サービスの第2のセットにおけるサービスに対するオペレーションを行なうことを防止し得る。第2の防止ユニット2724は、ユーザの第2のセットにおけるユーザが、サービスの第2のセットでなく、サービスの第1のセットにおけるサービスに対するオペレーションを行なうことを防止し得る。許可ユニット2726は、ユーザが、サービスの第1のセットにおけるサービスおよびサービスの第2のセットにおけるサービスの両方に対するオペレーションを行なうことを可能にし得る。
【0217】
コンピューティング装置2700はさらに、アイデンティティドメインにより分割されるライトウェイトアクセスプロトコル(LDAP)ディレクトリの第1のパーティション内にユーザの第1のセットのアイデンティティを格納する第1の格納ユニット2728と、LDAPディレクトリの第2のパーティション内にユーザの第2のセットのアイデンティティを格納する第2の格納ユニット2730とを含み得る。
【0218】
コンピューティング装置2700はさらに、特定のユーザが、ログインプロセスの一部として、当該特定のユーザがアクセスしようとしている特定のアイデンティティドメインを識別できるユーザインターフェイス要素を含むユーザインターフェイスを提示する第1の提示ユニット2732をさらに含み得る。
【0219】
コンピューティング装置2700はさらに、アイデンティティドメインに対してユーザアイデンティティを追加および削除するための制御を提供するコンソールを提示する第2の提示ユニット2734と、コンソールを介してアイデンティティドメイン管理者からコマンドを受取る第1の受取ユニット2736と、アイデンティティドメイン管理者が所属する特定のアイデンティティドメインを決定する決定ユニット2738と、アイデンティティドメイン管理者によりコンソールを介して特定のアイデンティティドメインに行なわれるユーザアイデンティティ追加および削除オペレーションを制限する制限ユニット2740とを含み得る。
【0220】
コンピューティング装置2700はさらに、第1、第2および第3の割当てユニット2742、2744および2746を含み得る。第1の割当てユニット2742は、ユーザの第1のセットの第1のユーザに、ユーザの第1のセットにおける他のユーザにサービス管理者ロールを割り当てる能力を第1のユーザに付与するアイデンティティドメイン管理者ロールを割り当て得る。第2の割当てユニット2744は、アイデンティティドメイン管理者としての第1のユーザにより選択されたユーザの第1のセットの第2のユーザに、第1の複数のサービスの第1のサービスを管理する能力を第2のユーザに付与する第1のサービス管理者ロールを割り当て得る。第3の割当てユニット2746は、アイデンティティドメイン管理者としての第1のユーザにより選択されたユーザの第1のセットの第3のユーザに、第1の複数のサービスの第2のサービスを管理する能力を第3のユーザに付与する第2のサービス管理者ロールを割り当て得る。
【0221】
コンピューティング装置2700はさらに、第1のアイデンティティドメインにおけるユーザアイデンティティを有さないが、第1のアイデンティティドメインが購入されたアカウントと関連付けられた第1の人から、第1のアイデンティティドメインにおけるユーザアイデンティティを同様に有さない第2の人の電子メールアドレスを受取る第2の受取ユニット2748と、第1の人から、第1の人が第1のアイデンティティドメイン内の第2の人を指名しているロールを受取る第3の受取ユニット2750と、第2の人の電子メールアドレスに、第1のアイデンティティドメイン内のユーザアイデンティティを作成するのに利用可能なウェブベースフォームへのハイパーリンクを含む電子メールメッセージを送信する送信ユニット2752と、ウェブベースフォームを介して第2の人が供給した情報に基づいて、ユーザの第1のセットのアイデンティティに第2の人のアイデンティティを追加する第1の追加ユニット2754と、第1のアイデンティティドメイン内の第2の人のアイデンティティにそのロールを割り当てる第4の割当てユニット2756とを含み得る。
【0222】
コンピューティング装置2700はさらに、サービスの第1のセットに特定のサービスを追加する要求を受取る第4の受取ユニット2758と、要求に応じてサービスの第1のセットに特定のサービスを追加する第2の追加ユニット2760と、第1のアイデンティティドメイン内に、特定のサービスのタイプに基づいて複数のロールの階層から自動的に選択されたロールの階層を定義する定義ユニット2762とを含み得る。
【0223】
コンピューティング装置2700はさらに、サービスの第1のセットにおけるサービスのインスタンスである特定のサービスインスタンスを、クラウドコンピューティング環境下で定義された複数のアイデンティティドメインについてのアイデンティティを格納するアイデンティティストアの第1のパーティションに結び付ける第1のバインドユニット2764と、特定のサービスインスタンスを、クラウドコンピューティング環境下で定義された異なるアイデンティティドメインに所属する複数のサービスインスタンスについてのポリシーを格納するポリシーストアの第2のパーティションに結び付ける第2のバインドユニット2766とを含み得る。第1のパーティションは、第1のアイデンティティドメインに所属するアイデンティティのみを含み、第2のパーティションは、特定のサービスインスタンスに関係するポリシーのみを含む。
【0224】
図28を参照して、コンピューティング装置2800は、作成ユニット2802、実施ユニット2804、追加ユニット2806、第1の格納ユニット2808および第2の格納ユニット2810を含む。作成ユニット2802は、クラウドコンピューティング環境内の複数のアイデンティティドメインを作成し得る。実施ユニット2804は、複数のアイデンティティドメイン内のアイデンティティドメイン間の分離を実施し得る。追加ユニット2806は、複数のアイデンティティドメインの特定のアイデンティティドメインにサービスインスタンスを追加し得る。第1の格納ユニット2808は、サービスインスタンスと、複数のアイデンティティドメインの各アイデンティティドメイン毎にアイデンティティを格納するアイデンティティストアの特定のパーティションとを関連付けるデータを格納し得る。第2の格納ユニット2810は、サービスインスタンスと、複数のアイデンティティドメインの異なるアイデンティティドメインと関連付けられた複数のサービスインスタンスについてのポリシーを格納するポリシーストアの特定のパーティションとを関連付けるデータを格納し得る。
【0225】
コンピューティング装置2800はさらに、第1の割当てユニット2812および第2の割当てユニット2814を含み得る。第1の割当てユニット2812は、アイデンティティストアに格納され、特定のアイデンティティドメインと関連付けられた第1のユーザアイデンティティを有する第1のユーザに、ロールの階層から、第1のロールを割り当て得る。第1のロールは、第1のロールを有するユーザが、特定のアイデンティティドメインと関連付けられたすべてのサービスインスタンスを管理することを可能にするロールである。第2の割当てユニット2814は、アイデンティティストアに格納された第2のユーザアイデンティティを有する第2のユーザに、ロールの階層から、第2のロールを割り当て得る。第2のロールは、第2のロールを有するユーザが、特定のアイデンティティドメインと関連付けられた単一のサービスインスタンスを管理することを可能にするロールである。
【0226】
一例では、第2の割当てユニット2814は、第1のユーザが第2のユーザに第2のロールを委任することに応じて、第2のユーザに第2のロールを割り当て得る。
【0227】
一例では、追加ユニット2806はさらに、特定のサービスインスタンスのタイプに関連付けられた複数のロールにより定義される第3のロールを、アイデンティティストアに格納され、特定のアイデンティティドメインと関連付けられた第3のアイデンティティを有する第3のユーザに割り当てる第3の割当てユニット2816を含み得る。
【0228】
コンピューティング装置2800はさらに、第1の継承ユニット2818および第2の継承ユニット2820を含み得る。第1の継承ユニット2818は、第2のロールに、第3のロールと関連付けられたすべての許可を継承させ得る。第2の継承ユニット2820は、第1のロールに、第2のロールにより継承されるすべての許可を継承させ得る。
【0229】
一例では、作成ユニット2802は、クラウドコンピューティング環境内に特定のアイデンティティドメインを作成し得る。この場合、作成ユニット2802はさらに、特定される電子メールアドレスに電子メールメッセージを送信する送信ユニット2822を含み得、電子メールメッセージは、電子メールメッセージの受信者が、特定のアイデンティティドメイン内に管理アイデンティティを確立できるメカニズムを提供する。
【0230】
図29を参照して、コンピューティング装置2900は、確立ユニット2902、第1の提供ユニット2904および第2の提供ユニット2906を含む。確立ユニット2902は、シングルアイデンティティ管理(IDM)システムをクラウドコンピューティング環境下で確立させ得る。第1の提供ユニット2904は、シングルIDMシステムに、クラウドコンピューティング環境内に定義され、かつクラウドコンピューティング環境内に定義された第2のアイデンティティドメインから分離された第1のアイデンティティドメインと関連付けられた第1のサービスインスタンスにIDM機能を提供させ得る。第2の提供ユニット2906は、シングルIDMシステムに、第2のアイデンティティドメインと関連付けられた第2のサービスインスタンスにIDM機能を提供させ得る。
【0231】
コンピューティング装置2900はさらに、第1および第2の格納ユニット2908、2910と、第1および第2の生成ユニット2912、2914とを含み得る。第1の格納ユニット2908は、シングルIDMシステムに、クラウドコンピューティング環境内に維持される単一のアイデンティティストア内の第2のアイデンティティドメインでなく、第1のアイデンティティドメインと関連付けられたユーザアイデンティティを格納させ得る。第2の格納ユニット2910は、シングルIDMシステムに、単一のアイデンティティストア内の第1のアイデンティティドメインでなく、第2のアイデンティティドメインと関連付けられたユーザアイデンティティを格納させ得る。第1の生成ユニット2912は、シングルIDMシステムに、第1のクレデンシャルを生成させ得、第1のクレデンシャルは、第1のサービスインスタンスが、第1のアイデンティティドメインと関連付けられないユーザアイデンティティを含む単一のアイデンティティストアの部分でなく、第1のアイデンティティドメインと関連付けられたユーザアイデンティティを含む単一のアイデンティティストアの部分と対話することを許可する。第2の生成ユニット2914は、シングルIDMシステムに、第2のクレデンシャルを生成させ得、第2のクレデンシャルは、第2のサービスインスタンスが、第2のアイデンティティドメインと関連付けられないユーザアイデンティティを含む単一のアイデンティティストアの部分でなく、第2のアイデンティティドメインと関連付けられたユーザアイデンティティを含む単一のアイデンティティストアの部分と対話することを許可する。
【0232】
コンピューティング装置2900はさらに、第3および第4の格納ユニット2916、2918と、第3および第4の生成ユニット2920、2922とを含み得る。第3の格納ユニット2916は、シングルIDMシステムに、クラウドコンピューティング環境内に維持される単一のポリシーストア内の第2のサービスインスタンスでなく、第1のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを格納させ得る。第4の格納ユニット2918は、シングルIDMシステムに、単一のポリシーストア内の第1のサービスインスタンスでなく、第2のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを格納させ得る。第3の生成ユニット2920は、シングルIDMシステムに、第1のクレデンシャルを生成させ得、第1のクレデンシャルは、第1のサービスインスタンスが、第1のサービスインスタンスと関連付けられないセキュリティアクセスポリシーを含む単一のポリシーストアの部分でなく、第1のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを含む単一のポリシーストアの部分と対話することを許可する。第4の生成ユニットは、シングルIDMシステムに、第2のクレデンシャルを生成させ得、第2のクレデンシャルは、第2のサービスインスタンスが、第2のサービスインスタンスと関連付けられないセキュリティアクセスポリシーを含む単一のポリシーストアの部分でなく、第2のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを含む単一のポリシーストアの部分と対話することを許可する。
【0233】
本発明の特定の実施例について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施例は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本発明の実施例について説明してきたが、本発明の範囲が、記載されている一連のトランザクションおよびステップに限定されるものではないということが当業者に明らかであるべきである。
【0234】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを使用して本発明の実施例について説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施例は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組み合わせを使用して実現されてもよい。
【0235】
さらに、本発明のある実施例は、機能的に次のように定義され得る。具体的には、クラウドコンピューティング環境内にシングルアイデンティティ管理(IDM)を含むシステムが提供される。システムは、クラウドコンピューティング環境内に定義され、かつクラウドコンピューティング環境内に定義された第2のアイデンティティドメインから分離された第1のアイデンティティドメインと関連付けられた第1のサービスインスタンスにIDM機能を提供する手段と、第2のアイデンティティドメインと関連付けられた第2のサービスインスタンスにIDM機能を提供する手段とを含む。
【0236】
好ましくは、システムはさらに、クラウドコンピューティング環境内に維持される単一のアイデンティティストア内の第2のアイデンティティドメインでなく、第1のアイデンティティドメインと関連付けられたユーザアイデンティティを格納する手段と、単一のアイデンティティストア内の第1のアイデンティティドメインでなく、第2のアイデンティティドメインと関連付けられたユーザアイデンティティを格納する手段と、第1のクレデンシャルを生成する手段とをさらに含み、第1のクレデンシャルは、第1のサービスインスタンスが、第1のアイデンティティドメインと関連付けられないユーザアイデンティティを含む単一のアイデンティティストアの部分でなく、第1のアイデンティティドメインと関連付けられたユーザアイデンティティを含む単一のアイデンティティストアの部分と対話することを許可し、システムはさらに、第2のクレデンシャルを生成する手段を含み、第2のクレデンシャルは、第2のサービスインスタンスが、第2のアイデンティティドメインと関連付けられないユーザアイデンティティを含む単一のアイデンティティストアの部分でなく、第2のアイデンティティドメインと関連付けられたユーザアイデンティティを含む単一のアイデンティティストアの部分と対話することを許可する。
【0237】
好ましくは、システムはさらに、クラウドコンピューティング環境内に維持される単一のポリシーストア内の第2のサービスインスタンスでなく、第1のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを格納する手段と、単一のポリシーストア内の第1のサービスインスタンスでなく、第2のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを格納する手段と、第1のクレデンシャルを生成させる手段とをさらに含み、第1のクレデンシャルは、第1のサービスインスタンスが、第1のサービスインスタンスと関連付けられないセキュリティアクセスポリシーを含む単一のポリシーストアの部分でなく、第1のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを含む単一のポリシーストアの部分と対話することを許可し、システムはさらに、第2のクレデンシャルを生成させる手段を含み、第2のクレデンシャルは、第2のサービスインスタンスが、第2のサービスインスタンスと関連付けられないセキュリティアクセスポリシーを含む単一のポリシーストアの部分でなく、第2のサービスインスタンスと関連付けられたセキュリティアクセスポリシーを含む単一のポリシーストアの部分と対話することを許可する。
【0238】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかしながら、追加、削減、削除ならびに他の変形および変更が、より広範な精神および範囲から逸脱することなく、これらになされてもよいことは明白であろう。