(57)【特許請求の範囲】
【請求項１】
方法であって、
１つ以上の演算装置を備えるサービスインフラストラクチャシステムが、顧客から受取られたサブスクリプションオーダー情報を格納するステップを備え、前記サブスクリプションオーダー情報は、前記サービスインフラストラクチャシステムによって提供される１つ以上のサービスについてのサブスクリプションオーダーに関するものであり、前記方法はさらに、
前記サービスインフラストラクチャシステムが、前記サブスクリプションオーダーを供給するための一次ワークフローおよび二次ワークフローを特定するステップを備え、前記一次ワークフローは、１つ以上の一次実行ステップを含み、前記二次ワークフローは、１つ以上の二次実行ステップを含み、前記方法はさらに、
前記サービスインフラストラクチャシステムが、前記１つ以上の一次実行ステップの全ての実行ステップが実行を完了させた後であって、前記１つ以上の二次実行ステップの全ての実行ステップが実行を完了させる前に、前記１つ以上のサービスへのアクセスを可能にするステップと、
前記サービスインフラストラクチャシステムが、前記サブスクリプションオーダーにおける前記１つ以上のサービスに前記顧客がアクセス可能であることを示す通知を前記顧客に送るステップとを備え、
前記サービスインフラストラクチャシステムが、前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとの間で前記サブスクリプションオーダー情報を転送するための要求を受取るステップをさらに備え、前記第１のコンポーネントおよび前記第２のコンポーネントは、前記１つ以上の演算装置によって実行され、前記方法はさらに、
前記サービスインフラストラクチャシステムが、前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定するステップと、
前記サービスインフラストラクチャシステムが、前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するステップと、
前記サービスインフラストラクチャシステムが、前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定するステップとを備え、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、方法。
【請求項２】
方法であって、
サービスインフラストラクチャシステムが、顧客のためのサブスクリプションオーダーを受信するステップを備え、前記サブスクリプションオーダーは、前記サービスインフラストラクチャシステムによって提供される１つ以上のサービスから前記顧客によってサブスクライブされる第１のサービスを特定するサブスクリプションオーダー情報を含み、前記サービスインフラストラクチャシステムが１つ以上の演算装置を含み、
前記１つ以上の演算装置の中の１つの演算装置が、前記サブスクリプションオーダー情報に基づいて、前記サブスクリプションオーダーを処理するための一次ワークフローを特定するステップを含み、前記一次ワークフローは、前記サブスクリプションオーダーを実行するために実行されるべき１つ以上の一次実行ステップを含み、
前記１つの演算装置が、前記サブスクリプションオーダー情報に基づいて、前記サブスクリプションオーダーを処理するための二次ワークフローを特定するステップを含み、前記二次ワークフローは、前記サブスクリプションオーダーの処理を完了するために実行されるべき１つ以上の二次実行ステップを含み、
前記一次ワークフローの中の前記１つ以上の一次実行ステップを実行するステップと、
前記一次ワークフローの中の前記１つ以上の一次実行ステップの実行の完了の後、前記１つの演算装置が、前記第１のサービスへのアクセスを可能にするステップと、
前記１つ以上の二次実行ステップを実行するステップとを備え、前記１つ以上の二次実行ステップは、前記顧客のためのさらなるリソースを構成することを含み、
前記サービスインフラストラクチャシステムが、前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとの間で前記サブスクリプションオーダー情報を転送するための要求を受取るステップをさらに備え、前記第１のコンポーネントおよび前記第２のコンポーネントは、前記１つ以上の演算装置によって実行され、前記方法はさらに、
前記サービスインフラストラクチャシステムが、前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定するステップと、
前記サービスインフラストラクチャシステムが、前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するステップと、
前記サービスインフラストラクチャシステムが、前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定するステップとを備え、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、方法。
【請求項３】
前記１つ以上の一次実行ステップは、前記サブスクリプションオーダーにおいて特定される前記１つ以上のサービスのために１つ以上のリソースをプロビジョニングすることを含む、請求項１または２に記載の方法。
【請求項４】
プロビジョニングは、前記サブスクリプションオーダーにおいて特定される前記１つ以上のサービスにアクセス可能であるように前記１つ以上のリソースを構成することを含む、請求項３に記載の方法。
【請求項５】
前記１つ以上のリソースについて使用情報を求めるステップをさらに備え、前記使用情報は、ある期間にわたる前記１つ以上のリソースの使用を特定し、前記方法はさらに、
前記使用情報および前記サブスクリプションオーダー情報に基づいて、前記期間における前記１つ以上のリソースにおける第１のリソースの過剰使用を演算するステップと、
前記過剰使用を示す情報を前記顧客に提供するステップとを備える、請求項３または４に記載の方法。
【請求項６】
前記第１のリソースの前記過剰使用を演算するステップは、
前記第１のリソースに対応するリソースタイプを決定するステップと、
前記第１のリソースの前記過剰使用を演算するために実行されるオペレーションを決定するステップとをさらに備え、前記オペレーションは、前記リソースタイプに基づいて決定され、さらに、
前記使用情報に含まれる前記第１のリソースに対応する使用統計を使用して前記オペレーションを実行することによって前記第１のリソースの前記過剰使用を演算するステップを備える、請求項５に記載の方法。
【請求項７】
前記第１のリソースの前記過剰使用を演算するステップは、前記第１のリソースについての超過ユニットの数を求め、前記第１のリソースの前記過剰使用を示す値を演算するステップを備え、前記値は、前記超過ユニットの数および超過ユニットに対応する価格情報に基づいて演算され、前記超過ユニットの数および前記価格情報は、前記顧客の前記サブスクリプションオーダーに関連付けられたサービスレベルおよび顧客レベルに基づいて求められ、
前記第１のリソースの前記過剰使用を示す情報を前記顧客に提供するステップは、前記第１のリソースについての前記超過ユニットの数および前記第１のリソースの前記過剰使用を示す前記値を示す通知を前記顧客に送るステップを備える、請求項６に記載の方法。
【請求項８】
前記１つ以上の二次実行ステップは、前記サブスクリプションオーダーを処理することを含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記サービスインフラストラクチャシステムが、前記１つ以上の二次実行ステップと同時に、前記１つ以上の一次実行ステップを実行するステップをさらに備える、請求項１または２に記載の方法。
【請求項１０】
前記サービスインフラストラクチャシステムのテナント自動化サブシステムにおいて、前記サブスクリプションオーダーを前記顧客から受取るステップと、
前記サブスクリプションオーダーが発生する地理的データ領域を求めるステップと、
前記地理的データ領域に基づいて、前記１つ以上の一次実行ステップおよび前記１つ以上の二次実行ステップのパフォーマンスが実行される前記サービスインフラストラクチャシステムのテナント自動化サブシステムデータセンタを選択するステップとをさらに備える、請求項１または２に記載の方法。
【請求項１１】
前記サービスインフラストラクチャシステムのコンポーネントのためにセキュリティゾーンを決定するステップをさらに備え、前記コンポーネントは、前記１つ以上のリソースをプロビジョニングするために前記サブスクリプションオーダーに関連する前記サブスクリプションオーダー情報にアクセスし、前記方法はさらに、
第１のセキュリティゾーンに関連付けられたセキュリティレベルを決定するステップと、
前記セキュリティレベルに関連付けられたセキュリティ規則に基づいて前記サブスクリプションオーダー情報に前記コンポーネントがアクセスすることを可能にするステップとを備える、請求項３に記載の方法。
【請求項１２】
１つ以上のサービスを提供するように構成可能な１つ以上の演算装置と、
要求者から受取られたサブスクリプションオーダー情報を格納するように構成可能なメモリとを備えるシステムであって、前記サブスクリプションオーダー情報は、サービスインフラストラクチャシステムによって提供される前記１つ以上のサービスについてのサブスクリプションオーダーに関するものであり、
前記１つ以上の演算装置のうち少なくとも１つの演算装置は、
前記サブスクリプションオーダーを供給するための一次ワークフローおよび二次ワークフローを特定するように構成可能であり、前記一次ワークフローは、１つ以上の一次実行ステップを含み、前記二次ワークフローは、１つ以上の二次実行ステップを含み、前記少なくとも１つの演算装置はさらに、
前記１つ以上の一次実行ステップの全ての実行ステップが実行を完了させた後であって、前記１つ以上の二次実行ステップの全ての実行ステップが実行を完了させる前に、前記１つ以上のサービスへのアクセスを可能にするように構成可能であり、
前記サブスクリプションオーダーにおける前記１つ以上のサービスに前記要求者がアク
セス可能であることを示す通知を前記要求者に送るように構成可能であり、
前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとを実行するように構成可能であり、
前記第１のコンポーネントおよび前記第２のコンポーネントの間で前記サブスクリプションオーダー情報を転送するための要求を受取るように構成可能であり、
前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定するように構成可能であり、
前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するように構成可能であり、
前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定するように構成可能であり、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、システム。
【請求項１３】
１つ以上のサービスを提供するように構成可能な１つ以上の演算装置と、
顧客から受取られたサブスクリプションオーダー情報を格納するように構成可能なメモリとを備えるシステムであって、
前記サブスクリプションオーダー情報は、サービスインフラストラクチャシステムによって提供される前記１つ以上のサービスについてのサブスクリプションオーダーに関するものであり、かつ前記１つ以上のサービスから前記顧客によってサブスクライブされる第１のサービスを特定し、
前記１つ以上の演算装置のうち少なくとも１つの演算装置は、
前記サブスクリプションオーダーを供給するための一次ワークフローおよび二次ワークフローを特定するように構成可能であり、前記一次ワークフローは、１つ以上の一次実行ステップを含み、前記二次ワークフローは、１つ以上の二次実行ステップを含み、前記少なくとも１つの演算装置はさらに、
前記一次ワークフローの中の前記１つ以上の一次実行ステップを実行するように構成可能であり、
前記一次ワークフローの中の前記１つ以上の一次実行ステップの実行の完了の後、前記第１のサービスへのアクセスを可能にするように構成可能であり、
前記１つ以上の二次実行ステップを実行するように構成が可能であり、前記１つ以上の二次実行ステップは、前記顧客のためのさらなるリソースを構成することを含み、
前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとを実行するように構成可能であり、
前記第１のコンポーネントおよび前記第２のコンポーネントの間で前記サブスクリプションオーダー情報を転送するための要求を受取るように構成可能であり、
前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定するように構成可能であり、
前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するように構成可能であり、
前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定するように構成可能であり、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、システム。
【請求項１４】
１つ以上のサービスを提供するように適合されたシステムであって、
要求者から受取られたサブスクリプションオーダー情報を格納するための手段を備え、前記サブスクリプションオーダー情報は、サービスインフラストラクチャシステムによって提供される前記１つ以上のサービスについてのサブスクリプションオーダーに関するものであり、前記システムはさらに、
前記サブスクリプションオーダーを供給するための一次ワークフローおよび二次ワークフローを特定するための手段を備え、前記一次ワークフローは、１つ以上の一次実行ステップを含み、前記二次ワークフローは、１つ以上の二次実行ステップを含み、前記システムはさらに、
前記１つ以上の一次実行ステップの全ての実行ステップが実行を完了させた後であって、前記１つ以上の二次実行ステップの全ての実行ステップが実行を完了させる前に、前記要求者が前記１つ以上のサービスにアクセスすることを可能にするための手段と、
前記サブスクリプションオーダーにおける前記１つ以上のサービスに前記要求者がアクセス可能であることを示す通知を前記要求者に送るための手段と、
前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとを実行する手段と、
前記第１のコンポーネントと前記第２のコンポーネントとの間で前記サブスクリプションオーダー情報を転送するための要求を受取る手段とを備え、前記システムは、さらに、
前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定する手段と、
前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定する手段と、
前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定する手段とを備え、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、システム。
【請求項１５】
１つ以上のサービスを提供するように適合されたシステムであって、
顧客から受取られたサブスクリプションオーダー情報を格納するための手段を備え、前記サブスクリプションオーダー情報は、サービスインフラストラクチャシステムによって提供される前記１つ以上のサービスについてのサブスクリプションオーダーに関するものであり、かつ前記１つ以上のサービスから前記顧客によってサブスクライブされる第１のサービスを特定し、前記システムはさらに、
前記サブスクリプションオーダーを供給するための一次ワークフローおよび二次ワークフローを特定するための手段を備え、前記一次ワークフローは、１つ以上の一次実行ステップを含み、前記二次ワークフローは、１つ以上の二次実行ステップを含み、前記システムはさらに、
前記一次ワークフローの中の前記１つ以上の一次実行ステップを実行する手段と、
前記一次ワークフローの中の前記１つ以上の一次実行ステップの実行の完了の後、前記第１のサービスへのアクセスを可能にする手段と、
前記１つ以上の二次実行ステップを実行する手段とを備え、前記１つ以上の二次実行ステップは、前記顧客のためのさらなるリソースを構成することを含み、前記システムは、さらに、
前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとを実行する手段と、
前記第１のコンポーネントと前記第２のコンポーネントとの間で前記サブスクリプションオーダー情報を転送するための要求を受取る手段とを備え
前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定する手段と、
前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定する手段と、
前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定する手段とを備え、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、システム。
【請求項１６】
１つ以上のプロセッサによって実行可能なコンピュータプログラムであって、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、要求者から受取られたサブスクリプションオーダー情報を格納するようにする命令を備え、前記サブスクリプションオーダー情報は、サービスインフラストラクチャシステムによって提供される１つ以上のサービスについてのサブスクリプションオーダーに関するものであり、前記コンピュータプログラムはさらに、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記サブスクリプションオーダーを供給するための一次ワークフローおよび二次ワークフローを特定するようにする命令を備え、前記一次ワークフローは、１つ以上の一次実行ステップを含み、前記二次ワークフローは、１つ以上の二次実行ステップを含み、前記コンピュータプログラムはさらに、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記１つ以上の一次実行ステップの全ての実行ステップが実行を完了させた後であって、前記１つ以上の二次実行ステップの全ての実行ステップが実行を完了させる前に、前記要求者が前記１つ以上のサービスにアクセスすることを可能にするようにする命令と、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記サブスクリプションオーダーにおける前記１つ以上のサービスに前記要求者がアクセス可能であることを示す通知を前記要求者に送るようにする命令と、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントとを実行する命令と、
前記第１のコンポーネントと前記第２のコンポーネントとの間で前記サブスクリプションオーダー情報を転送するための要求を受取る命令とを備え、前記コンピュータプログラムはさらに、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定する命令と、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定する命令と、
前記１つ以上のプロセッサのうち少なくとも１つのプロセッサが、前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定する命令とを備え、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、コンピュータプログラム。
【請求項１７】
少なくとも１つのプロセッサに、
顧客のためのサブスクリプションオーダーを受信するステップを実行させ、前記サブスクリプションオーダーは、サービスインフラストラクチャシステムによって提供される１つ以上のサービスから前記顧客によってサブスクライブされる第１のサービスを特定するサブスクリプションオーダー情報を含み、さらに、
前記サブスクリプションオーダー情報に基づいて、前記サブスクリプションオーダーを処理するための一次ワークフローを特定するステップを実行させ、前記一次ワークフローは、前記サブスクリプションオーダーを実行するために実行されるべき１つ以上の一次実行ステップを含み、
前記サブスクリプションオーダー情報に基づいて、前記サブスクリプションオーダーを処理するための二次ワークフローを特定するステップを実行させ、前記二次ワークフローは、前記サブスクリプションオーダーの処理を完了するために実行されるべき１つ以上の二次実行ステップを含み、さらに、
前記一次ワークフローの中の前記１つ以上の一次実行ステップを実行するステップと、
前記一次ワークフローの中の前記１つ以上の一次実行ステップの実行の完了の後、前記第１のサービスへのアクセスを可能にするステップと、
前記１つ以上の二次実行ステップとを実行させ、前記１つ以上の二次実行ステップは、前記顧客のためのさらなるリソースを構成することを含み、さらに、前記少なくとも１つのプロセッサに、
前記サービスインフラストラクチャシステムの第１のコンポーネントと前記サービスインフラストラクチャシステムの第２のコンポーネントと実行させるステップと、
前記第１のコンポーネントと前記第２のコンポーネントとの間で前記サブスクリプションオーダー情報を転送するための要求を受取るステップとを実行させ、
前記第１のコンポーネントのために第１のセキュリティゾーンを決定し、前記第２のコンポーネントのために第２のセキュリティゾーンを決定するステップを実行させ、
前記第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、前記第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するステップを実行させ、
前記第１のセキュリティレベル、前記第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送を決定するステップを実行させ、前記セキュリティ規則情報は、前記第１のコンポーネントと前記第２のコンポーネントとの間での前記サブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、以下の優先権を主張し、以下の利益を受ける：
（１）「クラウドインフラストラクチャ」と題される２０１３年３月１５日に出願された米国仮出願番号第６１／７９４，４２７号
（２）「テナント自動化システム」と題される２０１２年９月７日に出願された米国仮出願番号第６１／６９８，４１３号
（３）「サービス開発インフラストラクチャ」と題される２０１２年９月７日に出願された米国仮出願番号第６１／６９８，４５９号
（４）「クラウドインフラストラクチャ」と題される２０１３年３月１４日に出願された米国仮出願番号第６１／７８５，２９９号
（５）上記の米国仮出願番号第６１／６９８，４１３号、第６１／６９８，４５９号および第６１／７８５，２９９号の優先権を主張する、「クラウドサービスのための超過フレームワーク」と題される２０１３年３月１５日に出願された米国通常出願番号第１３／８４０，９４３号
（６）上記の米国仮出願番号第６１／６９８，４１３号、第６１／６９８，４５９号および第６１／７８５，２９９号の優先権を主張する、「クラウドサービスを処理するためのワークフロー」と題される２０１３年３月１５日に出願された米国通常出願番号第１３／８４１，２４３号
（７）上記の米国仮出願番号第６１／６９８，４１３号、第６１／６９８，４５９号および第６１／７８５，２９９号の優先権を主張する、「クラウドサービスのためのセキュリティインフラストラクチャ」と題される２０１３年３月１５日に出願された米国通常出願番号第１３／８４２，２６９号。
【０００２】
上記の仮特許出願および通常特許出願の各々の内容全体は、全ての目的で引用によって本明細書に援用される。
【背景技術】
【０００３】
背景
本開示は、コンピュータシステムおよびソフトウェアに関し、より特定的には、クラウド環境でのサービスのプロビジョニング（provision）を容易にして自動化するための技術に関する。
【０００４】
クラウドコンピューティングは、構成可能な演算リソース（例えばネットワーク、サーバ、ストレージ、アプリケーションおよびサービス）の共有プールへの便利なオンデマンドのネットワークアクセスを可能にするためのモデルである。クラウド（またはネットワーク）を介して提供またはアクセスされるサービスは、クラウドサービスと称される。サブスクライブを行う顧客がクラウドサービスを利用できるようにするためにクラウドサービスプロバイダが行う必要がある処理は数多くある。その複雑さのために、この処理の多くは依然として手動でなされている。例えば、このようなクラウドサービスを提供するためのプロビジョニングリソースは、非常に労働集約型のプロセスであり得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
本発明の特定の実施例は、クラウドインフラストラクチャシステムによって提供されるサービスのプロビジョニング、管理および追跡を自動化するための技術を提供する。一実施例では、クラウドインフラストラクチャシステムは、クラウドインフラストラクチャシステムにおいて顧客によってサブスクライブされた１つ以上のサービスに関連するサブスクリプションオーダー情報を格納する。
【０００６】
一実施例では、顧客からのサブスクリプションオーダーが受取られると、クラウドインフラストラクチャシステムは、当該オーダーによって要求されるサービスが顧客によって使用可能になる前にいくつかの処理ステップを実行する。これらの処理ステップは、オーダーを検証するステップを含み得て、顧客から追加の情報を得るステップ、１つ以上の要求されたサービスを提供するためにリソースをプロビジョニングするステップ、顧客データのセキュリティを保証するためにアイデンティティドメインを作成するステップなどをさらに必要とし得る。これらの処理ステップのうちの多くは、実行するのにしばらく時間がかかる可能性がある。しかし、一般に、顧客は、オーダーされたサービスをできる限り速やかに使用し始めたいと考える。特定の実施例では、クラウドインフラストラクチャシステムによって提供されるサービスのプロビジョニング、管理および追跡を自動化するための技術は、サブスクリプションオーダーの処理に関わる全てのステップが完了するまで顧客が待つ必要なく、サブスクリプションオーダーを行った際に、サブスクリプションオーダーにおいて要求されるサービスにアクセスする機能を顧客に提供することを含む。
【０００７】
いくつかの実施例は、顧客のサブスクリプションオーダーを処理するためのワークフローを決定するための技術に関する。当該方法は、クラウドインフラストラクチャシステムによって提供される一組のサービスからサブスクリプションオーダー発注サービスに関連するサブスクリプションオーダー情報を格納するステップを含む。そして、当該方法は、サブスクリプションオーダー情報に基づいて、サブスクリプションオーダーを処理するための一次オーダーワークフローを特定するステップを含む。一次オーダーワークフローは、オーダーされたサービスの使用を可能にする前に実行される１つ以上のステップを備える。そして、当該方法は、サブスクリプションオーダー情報に基づいて、サブスクリプションオーダーを処理するための二次オーダーワークフローを特定するステップを含む。二次オーダーワークフローは、サブスクリプションオーダーを処理するために実行される１つ以上のステップを備える。そして、当該方法は、一次オーダーワークフローの実行の完了後に、オーダーされたサービスへのアクセスを可能にするステップを含む。一実施例では、アクセスは、二次オーダーワークフローにおけるステップの実行の完了前に可能にされる。
【０００８】
いくつかの実施例では、１つ以上のサービスについてのサブスクリプション要求を顧客から受取ると、クラウドインフラストラクチャシステムは、要求されたサービスを提供するためにリソースをプロビジョニングする。要求されたサービスのためのリソースがプロビジョニングされると、多くの場合、顧客は、当該サービスにおいてリソースを過剰使用する可能性がある。特定の実施例では、サービスのプロビジョニング、管理および追跡の自動化の一部として、クラウドインフラストラクチャシステムは、顧客のサブスクリプションオーダーにおいてサービスにプロビジョニングされるリソースのこのような過剰使用または超過を演算し、追跡する。
【０００９】
いくつかの実施例は、顧客のサブスクリプションオーダーにおいてサービスにプロビジョニングされるリソースの超過を演算するための技術に関する。当該処理は、顧客によってサブスクライブされたサービスに関連するサブスクリプションオーダー情報を格納するステップを含み得る。そして、当該処理は、当該サービスに関連付けられたリソースについてのリソース使用情報を求め、リソース使用情報およびサブスクリプションオーダー情報に基づいて超過期間のリソースの超過を演算するステップを含み得る。次いで、リソースの超過は、クラウドインフラストラクチャシステムにおいてサービスを利用する顧客に提供され得る。
【００１０】
特定の実施例では、クラウドインフラストラクチャシステムは、顧客のサブスクリプションオーダーの処理中に互いの間で情報を転送したいクラウドインフラストラクチャシステムにおけるコンポーネント間の安全なインタラクションに対処するためのフレームワークを提供する。一実施例では、コンポーネントは、さまざまなセキュリティゾーンに割り当てられる。セキュリティゾーンへのコンポーネントの割り当ては、コンポーネントによって処理されるデータの機密性、コンポーネントによって実行される機能の機密性などに基づき得る。
【００１１】
一実施例では、フレームワークは、セキュリティレベルに基づいてコンポーネントのセキュリティゾーンをオーダーする。フレームワークは、異なるセキュリティレベルを有するセキュリティゾーン内のコンポーネント間の情報の転送を保護する。より高いセキュリティゾーン内のコンポーネントは、より低いセキュリティゾーンコンポーネント内のコンポーネントに情報を押し付け、より低いセキュリティゾーン内のコンポーネントから情報を引っ張ってくる。より低いセキュリティゾーン内のコンポーネントは、より高いセキュリティゾーン内のコンポーネントによって管理されるデータへの直接的な読取りまたは書込みアクセスを有していないかもしれない。同一のセキュリティゾーン内のコンポーネントは、互いに対して読取りまたは書込みアクセスを有し得る。一実施例では、セキュリティゾーンによって提供される粒度は、同一のセキュリティレベルを有するセキュリティゾーンに属する２つのコンポーネント間の通信が、異なるセキュリティレベルを有するセキュリティゾーンに属する２つのコンポーネント間の通信よりも速く、効率的である場合に２つのコンポーネント間で情報を転送する際のセキュリティと効率との兼ね合いである。
【００１２】
いくつかの実施例は、顧客のサブスクリプションオーダーの処理中に互いの間で情報を転送したいクラウドインフラストラクチャシステムにおけるコンポーネント間の安全なインタラクションを提供するための技術に関する。当該処理は、顧客によってサブスクライブされたサービスに関連するサブスクリプションオーダー情報を格納するステップを含む。そして、当該処理は、クラウドインフラストラクチャにおける第１のコンポーネントと第２のコンポーネントとの間で情報を転送するための要求を受取るステップと、第１のコンポーネントのために第１のセキュリティゾーンを決定し、第２のコンポーネントのために第２のセキュリティゾーンを決定するステップを含む。そして、当該方法は、第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルおよび第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するステップを含む。さらに、当該処理は、第１のセキュリティレベル、第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、第１のコンポーネントと第２のコンポーネントとの間での情報の転送を決定するステップを含む。一実施例では、セキュリティ規則情報は、第１のコンポーネントと第２のコンポーネントとの間での情報の転送に関連する規則を規定する。
【００１３】
本発明の例示的な実施例について、以下の図面を参照して以下で詳細に説明する。
【図面の簡単な説明】
【００１４】
【図１Ａ】本発明の一実施例に係るクラウドインフラストラクチャシステムの論理図である。
【図１Ｂ】本発明の実施例に係るクラウドインフラストラクチャシステムを実現するために使用され得るハードウェア／ソフトウェアスタックの簡略ブロック図である。
【図２】図１Ａに示されるクラウドインフラストラクチャシステムを実現するためのシステム環境の簡略ブロック図である。
【図３Ａ】本発明の実施例に係るクラウドインフラストラクチャシステムにおけるＴＡＳモジュールによって実行され得る処理を示す簡略化されたフローチャート３００を示す。
【図３Ｂ】本発明の実施例に係るクラウドインフラストラクチャシステムにおけるＴＡＳモジュールにおける１つ以上のサブモジュールの簡略化された高レベル図を示す。
【図４】本発明の実施例に係るＴＡＳコンポーネントの例示的な分散デプロイメントを示す。
【図５】本発明の実施例に係るクラウドインフラストラクチャシステムにおける１つ以上のモジュールとのＳＤＩモジュールのインタラクションを示す簡略ブロック図である。
【図６】本発明の実施例に係るＳＤＩモジュールのサブモジュールの簡略化された高レベル図を示す。
【図７Ａ】本発明の実施例に係るクラウドインフラストラクチャシステムにおけるＳＤＩモジュールによって実行され得る処理を示す簡略化されたフローチャートを示す。
【図７Ｂ】本発明の実施例に係るＮｕｖｉａｑシステム７１０および他のクラウドインフラストラクチャコンポーネントとのその関係の高レベルアーキテクチャを示す簡略ブロック図を示す。
【図７Ｃ】本発明の実施例に係るＮｕｖｉａｑシステムを使用するプロビジョニングプロセスのステップを示す例示的なシーケンス図を示す。
【図７Ｄ】本発明の実施例に係るＮｕｖｉａｑシステムを使用するデプロイメントプロセスのステップを示す例示的なシーケンス図を示す。
【図７Ｅ】本発明の実施例に係るデータベースサービスのためにプロビジョニングされたデータベースインスタンスの例を示す。
【図８】本発明の一実施例に係る超過フレームワークを示す高レベルブロック図である。
【図９Ａ】クラウドインフラストラクチャシステム１００において顧客のサブスクリプションオーダーにおける１つ以上のサービスに割り当てられた１つ以上のリソースの超過を演算するための超過フレームワークによって実行され得る処理を示す簡略化されたフローチャートを示す。
【図９Ｂ】本発明の実施例に係る１つ以上のリソースの超過を演算するために実行され得る処理を示す簡略化されたフローチャートを示す。
【図１０】本発明の一実施例に係る顧客のサブスクリプションオーダーを処理するためのシステムの高レベルブロック図である。
【図１１Ａ】本発明の実施例に係る一次および二次オーダーワークフローを使用してサブスクリプションオーダーを処理するためにＴＡＳモジュールにおけるオーダーワークフロー特定モジュールによって実行され得る処理を示す簡略化されたフローチャートを示す。
【図１１Ｂ】本発明の実施例に係る、顧客のサブスクリプションオーダーを処理するために一次オーダーワークフローにおける１つ以上の一次ステップとの関係で二次オーダーワークフローにおける１つ以上の二次ステップがいかに実行され得るかの例を示す。
【図１１Ｃ】本発明の一実施例に係る一次オーダーワークフローを使用してサブスクリプションオーダーを処理するためのステップを実行する方法を示す高レベルフローチャートである。
【図１２Ａ】本発明の一実施例に係るクラウドインフラストラクチャシステムにおけるさまざまなコンポーネントへのセキュリティゾーンの割り当ての論理図である。
【図１２Ｂ】本発明の実施例に係るセキュリティゾーンベースのセキュリティインフラストラクチャを示す。
【図１３】本発明の実施例に係るクラウドインフラストラクチャシステムにおけるセキュリティインフラストラクチャによって実行され得る処理を示す簡略化されたフローチャートを示す。
【図１４】本発明の実施例に従って使用され得る演算システム１４００の簡略ブロック図である。
【図１５】本発明の実施例に係る電子デバイス１５００の簡略ブロック図である。
【発明を実施するための形態】
【００１５】
詳細な説明
以下の説明では、本発明の実施例が十分に理解されるようにするために、説明の目的で具体的詳細を記載する。しかし、これらの具体的詳細がなくてもさまざまな実施例を実施できることは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。
【００１６】
本発明の特定の実施例は、クラウドインフラストラクチャシステムによって提供されるサービスのプロビジョニング、管理および追跡を自動化するための技術を提供する。
【００１７】
特定の実施例では、クラウドインフラストラクチャシステムは、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に与えられる一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【００１８】
クラウドインフラストラクチャシステムは、クラウドインフラストラクチャシステムにおいてサービスおよびリソースについての顧客のサブスクリプションをプロビジョニング、管理および追跡する機能、クラウドインフラストラクチャシステムにおいてサービスを利用する顧客に予測可能な作業費用を提供する機能、クラウドインフラストラクチャシステムにおいて顧客のデータのロバストなアイデンティティドメインの分離および保護を提供する機能、クラウドインフラストラクチャシステムの設計の透過的なアーキテクチャおよび制御を顧客に提供する機能、データ保護の保証とデータプライバシ基準および規制の順守とを顧客に提供する機能、クラウドインフラストラクチャシステムにおいてサービスを構築およびデプロイするための統合された開発経験を顧客に提供する機能、ならびにクラウドインフラストラクチャシステムにおいてビジネスソフトウェア、ミドルウェア、データベースおよびインフラストラクチャサービスの間のシームレスな統合を顧客に提供する機能を含むがこれらに限定されない多くの機能を提供することができる。
【００１９】
特定の実施例では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドインフラストラクチャシステムによって提供されるサービスの具体的なインスタンス化は、本明細書ではサービスインスタンスと称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザが利用可能なサービスはいずれも、クラウドサービスと称される。一般に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。例えば、クラウドサービスプロバイダのシステムは、アプリケーションをホストし得て、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションをオーダーし、使用し得る。
【００２０】
コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダによってユーザに提供されるかまたはそうでなければ当該技術分野において公知のストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションまたは他のサービスへの保護されたコンピュータネットワークアクセスを含む。例えば、サービスは、インターネットを介したクラウド上のリモートストレージへの、パスワードによって保護されたアクセスを含んでいてもよい。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含んでいてもよい。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含んでいてもよい。
【００２１】
図１Ａは、本発明の一実施例に係るクラウドインフラストラクチャシステムの論理図である。クラウドインフラストラクチャシステム１００は、クラウドまたはネットワーク化された環境を介してさまざまなサービスを提供し得る。これらのサービスは、ソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）カテゴリ、プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）カテゴリ、インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリの下で提供される１つ以上のサービスを含んでいてもよい。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム１００によって提供される１つ以上のサービスをオーダーし得る。次いで、クラウドインフラストラクチャシステム１００は、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を実行する。
【００２２】
クラウドインフラストラクチャシステム１００は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。例えば、サービスは、クラウドインフラストラクチャシステム１００が（例えばオラクルによって所有される）クラウドサービスを販売する組織によって所有され、サービスが一般的な公営企業またはさまざまな産業企業が利用可能であるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム１００が単一の組織のために単独で運営され、当該組織内の１つ以上のエンティティにサービスを提供することができるプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム１００およびシステム１００によって提供されるサービスが関連のコミュニティの中のいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、２つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【００２３】
図１Ａに示されるように、クラウドインフラストラクチャシステム１００は、クラウドインフラストラクチャシステム１００によって提供されるサービスのプロビジョニングを可能にする、連携して動作する複数のコンポーネントを備えていてもよい。図１Ａに示される実施例では、クラウドインフラストラクチャシステム１００は、ＳａａＳプラットフォーム１０２と、ＰａａＳプラットフォーム１０４と、ＩａａＳプラットフォーム１１０と、インフラストラクチャリソース１０６と、クラウド管理機能１０８とを含む。これらのコンポーネントは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【００２４】
ＳａａＳプラットフォーム１０２は、ＳａａＳカテゴリに入るクラウドサービスを提供するように構成される。例えば、ＳａａＳプラットフォーム１０２は、統合された開発およびデプロイメントプラットフォーム上で一連のオンデマンドのアプリケーションを構築および供給するための機能を提供し得る。ＳａａＳプラットフォーム１０２は、ＳａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。ＳａａＳプラットフォーム１０２によって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム１００上で実行されるアプリケーションを利用することができる。顧客は、顧客が別個のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。
【００２５】
さまざまな異なるＳａａＳサービスが提供され得る。例としては、大きな組織に販売実績管理、企業統合およびビジネスの柔軟性などのためのソリューションを提供するサービスが挙げられるが、これに限定されるものではない。一実施例では、ＳａａＳサービスは、顧客関係管理（Customer Relationship Management：ＣＲＭ）サービス１１０（例えばオラクルクラウドによって提供されるフュージョンＣＲＭサービス）、人材管理（Human Capital Management：ＨＣＭ）／才能管理サービス１１２などを含んでいてもよい。ＣＲＭサービス１１０は、顧客への販売活動サイクルの報告および管理に向けられるサービスなどを含んでいてもよい。ＨＣＭ／才能サービス１１２は、顧客へのグローバルな労働力ライフサイクル管理および才能管理サービスの提供に向けられるサービスを含んでいてもよい。
【００２６】
標準化された、共有の、弾性的にスケーラブルなアプリケーション開発およびデプロイメントプラットフォームにおけるＰａａＳプラットフォーム１０４によって、さまざまな異なるＰａａＳサービスが提供され得る。ＰａａＳサービスの例としては、共有される共通のアーキテクチャ上で既存のアプリケーションを（オラクルなどの）組織が集約することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能が挙げられ得るが、これらに限定されるものではない。ＰａａＳプラットフォーム１０４は、ＰａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別個のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステム１００によって提供されるＰａａＳサービスを取得することができる。ＰａａＳサービスの例としては、オラクルＪａｖａ（登録商標）クラウドサービス（Java Cloud Service：ＪＣＳ）、オラクルデータベースクラウドサービス（Oracle Database Cloud Service：ＤＢＣＳ）などが挙げられるが、これらに限定されるものではない。
【００２７】
ＰａａＳプラットフォーム１０４によって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム１００によってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施例では、クラウドインフラストラクチャシステム１００によって提供されるＰａａＳサービスは、データベースクラウドサービス１１４と、ミドルウェアクラウドサービス（例えばオラクルフュージョンミドルウェアサービス）１１６と、Ｊａｖａクラウドサービス１１７とを含んでいてもよい。一実施例では、データベースクラウドサービス１１４は、組織がデータベースリソースをプールし、データベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートし得て、ミドルウェアクラウドサービス１１６は、さまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し、Ｊａｖａクラウドサービス１１７は、クラウドインフラストラクチャシステム１００においてＪａｖａアプリケーションをデプロイするために顧客にプラットフォームを提供する。図１Ａに示されるＳａａＳプラットフォーム１０２およびＰａａＳプラットフォーム１０４におけるコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例では、ＳａａＳプラットフォーム１０２およびＰａａＳプラットフォーム１０４は、クラウドインフラストラクチャシステム１００の顧客に追加のサービスを提供するための追加のコンポーネントを含んでいてもよい。
【００２８】
ＩａａＳプラットフォーム１１０によってさまざまな異なるＩａａＳサービスが提供され得る。ＩａａＳサービスは、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客のために、ストレージ、ネットワークおよび他の基礎的な演算リソースなどの基本的な演算リソースの管理および制御を容易にする。
【００２９】
特定の実施例では、クラウドインフラストラクチャシステム１００は、クラウドインフラストラクチャシステム１００の顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース１０６を含む。一実施例では、インフラストラクチャリソース１０６は、ＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するために、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め統合された、最適化された組み合わせを含む。
【００３０】
特定の実施例では、クラウド管理機能１０８は、クラウドインフラストラクチャシステム１００においてクラウドサービス（例えばＳａａＳ、ＰａａＳ、ＩａａＳサービス）の包括的な管理を提供する。一実施例では、クラウド管理機能１０８は、クラウドインフラストラクチャシステム１００によって受取られた顧客のサブスクリプションをプロビジョニング、管理および追跡するための機能などを含む。
【００３１】
図１Ｂは、本発明の実施例に係るクラウドインフラストラクチャシステム１００を実現するために使用され得るハードウェア／ソフトウェアスタックの簡略ブロック図である。図１Ｂに示される実現例は、図１Ｂに示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、図１Ｂに示される実施例は、本発明の実施例を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム１００は、図１Ｂに示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。特定の実施例では、最適な性能を提供する垂直統合を提供するようにハードウェアおよびソフトウェアコンポーネントが積層される。
【００３２】
さまざまなタイプのユーザがクラウドインフラストラクチャシステム１００と対話し得る。これらのユーザは、例えば、デスクトップ、モバイル機器、タブレットなどのさまざまなクライアント装置を使用してクラウドインフラストラクチャシステム１００と対話し得るエンドユーザ１５０を含んでいてもよい。また、ユーザは、さまざまな統合された開発環境（integrated development environment：ＩＤＥ）を介して、および他のアプリケーションを介して、コマンドラインインターフェース（command line interface：ＣＬＩ）、アプリケーションプログラミングインターフェース（application programming interface：ＡＰＩ）を使用してクラウドインフラストラクチャシステム１００と対話し得る開発者／プログラマ１５２を含んでいてもよい。また、ユーザは、オペレーションスタッフ１５４を含んでいてもよい。これらは、クラウドサービスプロバイダのスタッフまたは他のユーザのスタッフを含んでいてもよい。
【００３３】
アプリケーションサービス層１５６は、クラウドインフラストラクチャシステム１００によって提供され得るさまざまなクラウドサービスを特定する。これらのサービスは、サービス統合および連結層１５８を介してそれぞれのソフトウェアコンポーネント１６０（例えばＪａｖａサービスを提供するためのオラクルウェブロジックサーバ、データベースサービスを提供するためのオラクルデータベースなど）にマッピングされるか、または関連付けられ得る。
【００３４】
特定の実施例では、クラウドインフラストラクチャシステム１００のさまざまなコンポーネントまたはモジュールおよびクラウドインフラストラクチャシステム１００によって提供されるサービスによって共有されるいくつかの内部サービス１６２が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、ＩＤＥにおいてクラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【００３５】
ランタイムインフラストラクチャ層１６４は、さまざまな他の層およびコンポーネントが構築されるハードウェア層を表わす。特定の実施例では、ランタイムインフラストラクチャ層１６４は、ストレージ、処理およびネットワーキングリソースを提供するための１つのオラクルのExadataマシンを備えていてもよい。Exadataマシンは、さまざまなデータベースサーバ、ストレージサーバ、ネットワーキングリソース、およびクラウドサービス関連のソフトウェア層をホストするための他のコンポーネントから構成され得る。特定の実施例では、Exadataマシンは、ストレージ、演算、ネットワークおよびソフトウェアリソースの集合体を提供するエンジニアド・システムであるOracle Exalogicと連携するように設計され得る。ExadataおよびExalogicの組み合わせは、クラウドサービスを提供するための高性能で、高可用性で、スケーラブルで、安全な、管理されたプラットフォームを与える完全なハードウェアおよびソフトウェアエンジニアドソリューションを提供する。
【００３６】
図２は、本発明の実施例に係る図１Ａに示されるクラウドインフラストラクチャシステムを実現するためのシステム環境の簡略ブロック図である。示される実施例では、システム環境２３０は、クラウドインフラストラクチャシステム１００と対話するためにユーザによって使用され得る１つ以上のクライアント演算装置２２４，２２６および２２８を含む。クライアント装置は、クラウドインフラストラクチャシステム１００によって提供されるサービスを利用するためにクラウドインフラストラクチャシステム１００と対話するようにクライアント装置のユーザによって使用され得る、ウェブブラウザ、プロプライエタリクライアントアプリケーション（例えばOracle Forms）またはその他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【００３７】
図２に示されるクラウドインフラストラクチャシステム１００は、図２に示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、図２に示される実施例は、本発明の実施例を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム１００は、図２に示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【００３８】
クライアント演算装置２２４，２２６および２２８は、汎用パーソナルコンピュータ（一例として、マイクロソフトウィンドウズ（登録商標）および／またはアップルマッキントッシュオペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む）、（マイクロソフトウィンドウズモバイルなどのソフトウェアを実行し、インターネット、電子メール、ＳＭＳ、ブラックベリーまたは使用可能な他の通信プロトコルである）携帯電話もしくはＰＤＡ、さまざまな市販のＵＮＩＸ（登録商標）もしくはＵＮＩＸのようなオペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘ（登録商標）オペレーティングシステムを含むがこれに限定されるものではない）のいずれかを実行するワークステーションコンピュータ、またはその他の演算装置であってもよい。例えば、クライアント演算装置２２４，２２６および２２８は、ネットワーク（例えば下記のネットワーク２３２）を介して通信することができる、シン・クライアントコンピュータ、インターネットへの接続が可能なゲーム機および／またはパーソナルメッセージング装置などのその他の電子装置であってもよい。例示的なシステム環境２３０が３つのクライアント演算装置とともに示されているが、いかなる数のクライアント演算装置がサポートされてもよい。センサを有する装置などの他の装置がクラウドインフラストラクチャシステム１００と対話してもよい。
【００３９】
ネットワーク２３２は、クライアント２２４，２２６および２２８とクラウドインフラストラクチャシステム１００との間でのデータの通信および交換を容易にし得る。ネットワーク２３２は、ＴＣＰ／ＩＰ、ＳＮＡ、ＩＰＸ、ＡｐｐｌｅＴａｌｋなどを含むがこれらに限定されるものではないさまざまな市販のプロトコルのいずれかを使用してデータ通信をサポートし得る、当業者になじみのある任意のタイプのネットワークであってもよい。単に一例として、ネットワーク２３２は、イーサネット（登録商標）ネットワーク、トークン・リング・ネットワークなどのローカルエリアネットワーク（local area network：ＬＡＮ）、広域ネットワーク、仮想プライベートネットワーク（virtual private network：ＶＰＮ）を含むがこれに限定されるものではない仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（例えばＩＥＥＥ８０２．１Ｘの一連のプロトコル、当該技術分野において公知のブルートゥース（登録商標）プロトコルおよび／またはその他の無線プロトコルのいずれかの下で動作するネットワーク）、ならびに／または、これらのおよび／もしくは他のネットワークの任意の組み合わせであってもよい。
【００４０】
クラウドインフラストラクチャシステム１００は、汎用コンピュータ、特化サーバコンピュータ（一例として、ＰＣサーバ、ＵＮＩＸサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式のサーバなどを含む）、サーバファーム、サーバクラスタ、またはその他の適切な配置および／もしくは組み合わせであり得る１つ以上のコンピュータおよび／またはサーバを備えていてもよい。クラウドインフラストラクチャシステム１００を構成する演算装置は、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、Ｊａｖａサーバ、データベースサーバなどを含む、オペレーティングシステムまたはさまざまな追加のサーバアプリケーションおよび／もしくは中間層アプリケーションのいずれかを実行し得る。例示的なデータベースサーバとしては、オラクル、マイクロソフト、サイベース、ＩＢＭなどから市販されているものが挙げられるが、これらに限定されるものではない。
【００４１】
さまざまな実施例では、クラウドインフラストラクチャシステム１００は、クラウドインフラストラクチャシステム１００によって提供されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。一実施例では、図２に示されるように、クラウドインフラストラクチャシステム１００におけるコンポーネントは、アイデンティティ管理（Identity Management：ＩＤＭ）モジュール２００と、サービスモジュール２０２と、テナント自動化システム（Tenant Automation System：ＴＡＳ）モジュール２０４と、サービスデプロイメントインフラストラクチャ（Service Deployment Infrastructure：ＳＤＩ）モジュール２０６と、エンタープライズマネージャ（Enterprise Manager：ＥＭ）モジュール２０８と、ストアユーザインターフェース（user interface：ＵＩ）２１０、クラウドユーザインターフェース（ＵＩ）２１２およびサポートユーザインターフェース（ＵＩ）２１６などの１つ以上のフロントエンドウェブインターフェースと、オーダー管理モジュール２１４と、販売スタッフ２１８と、オペレータスタッフ２２０と、オーダーデータベース２２２とを含む。これらのモジュールは、汎用コンピュータ、特化サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な配置および／もしくは組み合わせであり得る１つ以上のコンピュータおよび／またはサーバを含んでいてもよく、またはそれらを使用して提供されてもよい。一実施例では、これらのモジュールのうちの１つ以上は、クラウドインフラストラクチャシステム１００におけるクラウド管理機能１０８またはＩａａＳプラットフォーム１１０によって提供され得る。図２に示されるクラウドインフラストラクチャシステム１００のさまざまなモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例は、図２に示されるものよりも多くのまたは少ないモジュールを含んでいてもよい。
【００４２】
例示的なオペレーションにおいて、（１）において、クライアント装置２２４または２２６などのクライアント装置を使用する顧客は、クラウドインフラストラクチャシステム１００によって提供されるさまざまなサービスをブラウズし、クラウドインフラストラクチャシステム１００によって提供される１つ以上のサービスについてのサブスクリプションのオーダーを行うことによって、クラウドインフラストラクチャシステム１００と対話し得る。特定の実施例では、顧客は、ストアＵＩ２１０またはクラウドＵＩ２１２にアクセスし、これらのユーザインターフェースを介してサブスクリプションオーダーを行い得る。
【００４３】
顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム１００によって受取られるオーダー情報は、顧客と、顧客がサブスクライブする予定の、クラウドインフラストラクチャシステム１００によって提供される１つ以上のサービスとを特定する情報を含んでいてもよい。単一のオーダーは、複数のサービスのオーダーを含んでいてもよい。例えば、顧客は、クラウドＵＩ２１２にログインして、同一のオーダーにおいてＣＲＭサービスおよびＪａｖａクラウドサービスについてのサブスクリプションを要求し得る。
【００４４】
さらに、オーダーは、オーダーされたサービスについての１つ以上のサービスレベルも含んでいてもよい。本明細書で使用され、以下でより詳細に説明されるように、サービスについてのサービスレベルは、ストレージの量、演算リソースの量、データ転送設備などの、サブスクリプションの文脈において要求されたサービスを提供するために割り当てられるリソースの量を決定する。例えば、ベーシックなサービスレベルは、最小レベルのストレージ、データ伝送またはユーザの数を提供することができ、より高いサービスレベルは、さらなるリソースを含み得る。
【００４５】
また、いくつかの例では、クラウドインフラストラクチャシステム１００によって受取られるオーダー情報は、顧客レベルおよびサービスが求められる期間を示す情報を含んでいてもよい。顧客レベルは、サブスクリプション要求を行う顧客の優先度を規定する。一例では、優先度は、顧客とクラウドサービスのプロバイダとの間で合意されたサービスレベル合意書（Service Level Agreement：ＳＬＡ）によって規定されるようにクラウドインフラストラクチャシステム１００が顧客に保証または約束するサービスの質に基づいて決定され得る。一例では、さまざまな顧客レベルは、ベーシックレベル、シルバーレベルおよびゴールドレベルを含む。サービスの期間は、当該サービスの開始日および時刻と、当該サービスが求められる期間とを規定し得る（例えばサービス終了日および時刻が規定されてもよい）。
【００４６】
一実施例では、顧客は、ストアＵＩ２１０を介して新たなサブスクリプションを要求するか、またはクラウドＵＩ２１２を介してトライアルサブスクリプションを要求し得る。特定の実施例では、ストアＵＩ２１０は、サービスプロバイダの電子商取引ストアフロントに相当し得る（例えばオラクルクラウドサービスのためのwww.oracle.com/store）。クラウドＵＩ２１２は、サービスプロバイダのためのビジネスインターフェースに相当し得る。顧客は、クラウドＵＩ２１２を介して、利用可能なサービスを調査し、関心のあるサービスにサインアップすることができる。クラウドＵＩ２１２は、クラウドインフラストラクチャシステム１００によって提供されるトライアルサブスクリプションをオーダーするのに必要なユーザ入力を取込む。また、クラウドＵＩ２１２は、アカウント機能を閲覧し、クラウドインフラストラクチャシステム１００内に位置するランタイム環境を構成するために使用され得る。新たなサブスクリプションのオーダーを行うことに加えて、ストアＵＩ２１０は、サブスクリプションのサービスレベルの変更、サブスクリプションの期間の延長、サブスクリプションのサービスレベルの向上、既存のサブスクリプションの終了などの他のサブスクリプション関連のタスクを顧客が実行できるようにもし得る。
【００４７】
（１）につきオーダーが行われた後、（２）において、ストアＵＩ２１０またはクラウドＵＩ２１２のいずれかを介して受取られるオーダー情報がオーダーデータベース２２２に格納され、当該オーダーデータベース２２２は、クラウドインフラストラクチャシステム１００によって操作されて他のシステム要素と連携して利用されるいくつかのデータベースのうちの１つであり得る。オーダーデータベース２２２は図２では単一のデータベースとして論理的に示されているが、実際の実現例では、これは１つ以上のデータベースを備えていてもよい。
【００４８】
（３）において、オーダーはオーダー管理モジュール２１４に送られる。オーダー管理モジュール２１４は、オーダーの検証および検証時のオーダーの予約などのオーダーに関連する課金およびアカウンティング機能を実行するように構成される。特定の実施例では、オーダー管理モジュール２１４は、契約管理モジュールと、インストールベースモジュールとを含んでいてもよい。契約管理モジュールは、クラウドインフラストラクチャシステム１００との顧客のサービスレベル合意書（ＳＬＡ）などの顧客のサブスクリプションオーダーに関連付けられた契約情報を格納し得る。インストールベースモジュールは、顧客のサブスクリプションオーダーにおけるサービスの詳細な説明を含み得る。オーダー情報に加えて、インストールベースモジュールは、サービスに関連するインストールの詳細、製品状態およびサービスに関連するサポートサービス履歴を追跡し得る。顧客が新たなサービスをオーダーするかまたは既存のものをアップグレードすると、インストールベースモジュールは、新たなオーダー情報を自動的に追加し得る。
【００４９】
（４）において、オーダーに関する情報は、ＴＡＳモジュール２０４に通信される。一実施例では、ＴＡＳモジュール２０４は、顧客によって行われたオーダーについてのサービスおよびリソースのプロビジョニングをオーケストレート（orchestrate）するためにオーダー情報を利用する。（５）において、ＴＡＳコンポーネント２０４は、ＳＤＩモジュール２０６のサービスを使用してサブスクライブされたサービスをサポートするために、リソースのプロビジョニングをオーケストレートする。（６）において、ＴＡＳモジュール２０４は、ＳＤＩモジュール２０６から受取られた、プロビジョニングされたオーダーに関連する情報をサービスモジュール２０２に提供する。いくつかの実施例では、（７）において、ＳＤＩモジュール２０６は、顧客のサブスクリプションオーダーを実現するために必要なリソースを割り当てて構成するために、サービスモジュール２０２によって提供されるサービスも使用し得る。
【００５０】
（８）において、サービスモジュール２０２は、オーダーの状態に関する通知をクライアント装置２２４，２２６および２２８上の顧客に送る。
【００５１】
特定の実施例では、ＴＡＳモジュール２０４は、互いに関連付けられたビジネスプロセスを管理し、ビジネスロジックを適用してオーダーがプロビジョニングに進むべきか否かを判断するオーケストレーションコンポーネントとして機能する。一実施例では、新たなサブスクリプションのオーダーを受取ると、ＴＡＳモジュール２０４は、リソースを割り当てて、当該サブスクリプションオーダーを実現するために必要なそれらのリソースを構成するために、ＳＤＩモジュール２０６に要求を送る。ＳＤＩモジュール２０６は、顧客によってオーダーされたサービスのためのリソースの割り当てを可能にする。ＳＤＩモジュール２０６は、クラウドインフラストラクチャシステム１００によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間の抽象化のレベルを提供する。したがって、ＴＡＳモジュール２０４は、サービスおよびリソースがオンザフライで実際にプロビジョニングされるか否か、または予めプロビジョニングされて要求時に単に配分／割り当てられるか否かなどの実装詳細から切離され得る。
【００５２】
特定の実施例では、ユーザは、オーダー管理モジュール２１４と直接対話して、オーダーの検証および検証時のオーダーの予約などの課金およびアカウンティング関連機能を実行するためにストアＵＩ２１０を使用し得る。いくつかの実施例では、顧客がオーダーを行う代わりに、（９）において、オーダーはその代わりに、顧客のサービス担当者または販売担当者などの顧客を代表する販売スタッフ２１８によって行われてもよい。販売スタッフ２１８は、オーダーを行うためまたは顧客に見積もりを提供するためにオーダー管理モジュール２１４によって提供されるユーザーインターフェース（図２には図示せず）を介して、オーダー管理モジュール２１４と直接対話し得る。例えば、これは、オーダーがオーダー管理モジュール２１４を介して顧客の販売担当者によって行われ得る大口顧客のためになされ得る。販売担当者は、顧客を代表してサブスクリプションを準備し得る。
【００５３】
ＥＭモジュール２０８は、クラウドインフラストラクチャシステム１００における顧客のサブスクリプションの管理および追跡に関連するアクティビティをモニタリングするように構成される。ＥＭモジュール２０８は、使用されるストレージの量、転送されるデータの量、ユーザの数、システムアップ時間およびシステムダウン時間の量などのサブスクリプションオーダーにおけるサービスについての使用統計を収集する。（１０）において、クラウドインフラストラクチャシステム１００のプロバイダの従業員であってもよいホストオペレータスタッフ２２０は、サービスがクラウドインフラストラクチャシステム１００内でプロビジョニングされるシステムおよびリソースを管理するために、エンタープライズマネージャユーザインターフェース（図２には図示せず）を介してＥＭモジュール２０８と対話し得る。
【００５４】
アイデンティティ管理（ＩＤＭ）モジュール２００は、クラウドインフラストラクチャシステム１００においてアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成される。一実施例では、ＩＤＭモジュール２００は、クラウドインフラストラクチャシステム１００によって提供されるサービスを利用したい顧客についての情報を制御する。このような情報は、このような顧客のアイデンティティを認証する情報、および、さまざまなシステムリソース（例えばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してそれらの顧客がどのアクションを実行することが認可されるかを表わす情報を含み得る。また、ＩＤＭモジュール２００は、各顧客についての記述的情報および当該説明的情報がどのようにして誰によってアクセスおよび修正され得るかについての記述的情報の管理を含み得る。
【００５５】
一実施例では、アイデンティティ管理モジュール２００によって管理される情報は、別個のアイデンティティドメインを作成するために分割可能である。特定のアイデンティティドメインに属する情報は、全ての他のアイデンティティドメインから切離されることができる。また、アイデンティティドメインは、複数の別個のテナントによって共有可能である。各々のこのようなテナントは、クラウドインフラストラクチャシステム１００においてサービスにサブスクライブする顧客であり得る。いくつかの実施例では、顧客は、１つまたは多くのアイデンティティドメインを有することができ、各アイデンティティドメインは、１つ以上のサブスクリプションに関連付けられ得て、各サブスクリプションは、１つまたは多くのサービスを有する。例えば、単一の顧客は大規模事業体に相当し得て、この大規模事業体内の部門／部署についてアイデンティティドメインが作成されてもよい。さらに、ＥＭモジュール２０８およびＩＤＭモジュール２００は、クラウドインフラストラクチャシステム１００において顧客のサブスクリプションを管理および追跡するために、それぞれ（１１）および（１２）においてオーダー管理モジュール２１４と対話し得る。
【００５６】
一実施例では、（１３）において、サポートＵＩ２１６を介してサポートサービスも顧客に提供され得る。一実施例では、サポートＵＩ２１６は、サポートスタッフが（１４）においてサポートサービスを実行するようにサポートバックエンドシステムを介してオーダー管理モジュール２１４と対話することを可能にする。クラウドインフラストラクチャシステム１００におけるサポートスタッフおよび顧客は、サポートＵＩ２１６を介して、バグ報告を提出し、これらの報告の状態を確認することができる。
【００５７】
図２に図示されない他のインターフェースもクラウドインフラストラクチャシステム１００によって提供されてもよい。例えば、アイデンティティドメイン管理者は、ドメインおよびユーザアイデンティティを構成するためにＩＤＭモジュール２００へのユーザインターフェースを使用し得る。また、顧客は、利用したい各サービスのための別個のインターフェースにログインし得る。特定の実施例では、クラウドインフラストラクチャシステム１００によって提供される１つ以上のサービスにサブスクライブしたい顧客は、さまざまな役割および任務も割り当てられ得る。一実施例では、顧客に割り当てられ得るさまざまな役割および任務は、バイヤ、アカウント管理者、サービス管理者、アイデンティティドメイン管理者、またはクラウドインフラストラクチャシステム１００によって提供されるサービスおよびリソースを利用するユーザの役割および任務を含んでいてもよい。さまざまな役割および任務は、以下の図４にさらに十分に示されている。
【００５８】
図３Ａは、本発明の実施例に係るクラウドインフラストラクチャシステムにおけるＴＡＳモジュールによって実行され得る処理を示す簡略化されたフローチャート３００を示す。図３Ａに示される処理は、１つ以上のプロセッサによって実行されるソフトウェア（例えばコード、命令、プログラム）、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、（例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の）メモリに格納されてもよい。図３Ａに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、図３Ａに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施例では、図３Ａに示される処理は、図３Ｂに詳細に示されるように、ＴＡＳコンポーネント２０４における１つ以上のコンポーネントによって実行され得る。
【００５９】
３０２において、顧客のサブスクリプションオーダーが処理される。当該処理は、一例ではオーダーの認証を含んでいてもよい。オーダーの認証は、顧客がサブスクリプションの代金を支払ったことを保証すること、および、顧客が同一の名前を備えたサブスクリプションをまだ有していないことを保証すること、または、（ＣＲＭサービスの場合など）許可されないサブスクリプションタイプについて同一のアイデンティティドメインにおいて同一タイプの複数のサブスクリプションを顧客が作成しようと試みていないことを保証することを含む。また、処理は、クラウドインフラストラクチャシステム１００によって処理されている各オーダーについてのオーダーの状態の追跡を含んでいてもよい。
【００６０】
３０４において、オーダーに関連付けられたビジネスプロセスが特定される。いくつかの例では、複数のビジネスプロセスがオーダーについて特定され得る。各ビジネスプロセスは、オーダーのさまざまな局面を処理するための一連のステップを特定する。一例として、第１のビジネスプロセスは、オーダーのための物理的リソースのプロビジョニングに関連する１つ以上のステップを特定し得て、第２のビジネスプロセスは、オーダーについての顧客アイデンティティとともにアイデンティティドメインを作成することに関連する１つ以上のステップを特定し得て、第３のビジネスプロセスは、ユーザについての顧客記録の作成などのバックオフィス機能の実行、オーダーに関連するアカウンティング機能の実行などに関連する１つ以上のステップを特定し得る。特定の実施例では、オーダーにおけるさまざまなサービスを処理するためにさまざまなビジネスプロセスも特定されてもよい。例えば、ＣＲＭサービスおよびデータベースサービスを処理するためにさまざまなビジネスプロセスが特定されてもよい。
【００６１】
３０６において、３０４でオーダーについて特定されたビジネスプロセスが実行される。オーダーに関連付けられたビジネスプロセスの実行は、ステップ３０４において特定されたビジネスプロセスに関連付けられた一連のステップのオーケストレートを含んでいてもよい。例えば、オーダーのための物理リソースのプロビジョニングに関連するビジネスプロセスの実行は、リソースを割り当てて、サブスクリプションオーダーを実現するために必要なそれらのリソースを構成するために、ＳＤＩモジュール２０６に要求を送ることを含んでいてもよい。
【００６２】
３０８において、プロビジョニングされたオーダーの状態に関する通知が顧客に送られる。ステップ３０２，３０４，３０６および３０８の実行に関連するさらなる説明については、図３Ｂに詳細に記載されている。
【００６３】
図３Ｂは、本発明の実施例に係るクラウドインフラストラクチャシステムにおけるＴＡＳモジュールにおける１つ以上のサブモジュールの簡略化された高レベル図を示す。一実施例では、図３Ｂに示されるモジュールは、図３Ａに示されるステップ３０２〜３０８に記載された処理を実行する。示される実施例では、ＴＡＳモジュール２０４は、オーダー処理モジュール３１０と、ビジネスプロセス識別子３１２と、ビジネスプロセスエクセキュータ３１６と、超過フレームワーク３２２と、ワークフロー特定モジュール３２４と、バンドルされたサブスクリプション生成モジュール３２６とを備える。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。図３Ｂに示されるＴＡＳモジュールのさまざまなモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例は、図３Ｂに示されるものよりも多くのまたは少ないモジュールを含んでいてもよい。
【００６４】
一実施例では、オーダー処理モジュール３１０は、顧客からのオーダーを１つ以上の入力ソース３２１から受取る。例えば、オーダー処理モジュール３１０は、一実施例ではクラウドＵＩ２１２またはストアＵＩ２１０を介してオーダーを直接受取ってもよい。代替的に、オーダー処理モジュール３１０は、オーダー管理モジュール２１４またはオーダーデータベース２２２からオーダーを受取ってもよい。次いで、オーダー処理モジュール３１０は、オーダーを処理する。特定の実施例では、オーダーの処理は、サービスタイプ、サービスレベル、顧客レベル、リソースのタイプ、サービスインスタンスに割り当てられるリソースの量、およびサービスが求められる期間などのオーダーについての情報を含む顧客記録の生成を含む。処理の一部として、オーダー処理モジュール３１０は、オーダーが有効なオーダーであるか否かも判断する。これは、顧客が同一の名前を備えたサブスクリプションをまだ有していないことを保証すること、または、（フュージョンＣＲＭサービスの場合など）許可されないサブスクリプションタイプについて同一のアイデンティティドメインにおいて同一タイプの複数のサブスクリプションを顧客が作成しようと試みていないことを保証することを含む。
【００６５】
また、オーダー処理モジュール３１０は、オーダーについてのさらなる処理を実行し得る。処理は、クラウドインフラストラクチャシステム１００によって処理されている各オーダーについてのオーダーの状態の追跡を含んでいてもよい。一実施例では、オーダー処理モジュール３１０は、オーダーに関係するいくつかの状態を特定するために各オーダーを処理し得る。一例では、オーダーのさまざまな状態は、初期化状態、プロビジョニング状態、アクティブ状態、管理が必要な状態、エラー状態などであり得る。初期化状態は、新たなオーダーの状態を指し、プロビジョニング状態は、オーダーについてのサービスおよびリソースがプロビジョニングされた時点のオーダーの状態を指す。オーダーがＴＡＳモジュール２０４によって処理され、その趣旨の通知が顧客に与えられると、オーダーはアクティブ状態になる。問題を解決するために管理者による介入が必要な場合、オーダーは管理が必要な状態である。オーダーを処理できない場合、オーダーはエラー状態である。オーダー進捗状態の維持に加えて、オーダー処理モジュール３１０は、プロセスの実行中に遭遇するいかなる障害についても詳細な情報を維持する。他の実施例では、以下で詳細に記載されるように、オーダー処理モジュール３１０によって実行されるさらなる処理は、サブスクリプションにおけるサービスのサービスレベルの変更、サブスクリプションに含まれるサービスの変更、サブスクリプションの期間の延長、およびサブスクリプションのキャンセルまたはサブスクリプションにおけるさまざまな期間にわたるさまざまなサービスレベルの指定も含んでいてもよい。
【００６６】
オーダーがオーダー処理モジュール３１０によって処理された後、オーダーがプロビジョニングに進むべきか否かを判断するためにビジネスロジックが適用される。一実施例では、オーダーのオーケストレートの一部として、ビジネスプロセス識別子３１２は、処理されたオーダーをオーダー処理モジュール３１０から受取って、ビジネスロジックを適用して、処理中のオーダーで使用されるべき特定のビジネスプロセスを特定する。一実施例では、ビジネスプロセス識別子３１２は、オーダーで使用されるべき特定のビジネスプロセスを決定するために、サービスカタログ３１４に格納されている情報を利用し得る。一実施例では、図３Ａに示されるように、オーダーについて複数のビジネスプロセスが特定されてもよく、各ビジネスプロセスは、オーダーのさまざまな局面を処理するための一連のステップを特定する。別の実施例では、上記のように、ＣＲＭサービスまたはデータベースサービスなどのさまざまなタイプのサービスまたはサービスの組み合わせについてさまざまなビジネスプロセスが規定されてもよい。一実施例では、サービスカタログ３１４は、オーダーを特定のタイプのビジネスプロセスにマッピングする情報を格納し得る。ビジネスプロセス識別子３１２は、処理中のオーダーについての特定のビジネスプロセスを特定するためにこの情報を使用し得る。
【００６７】
ビジネスプロセスが特定されると、ビジネスプロセス識別子３１２は、実行されるべき特定のビジネスプロセスをビジネスプロセスエクセキュータ３１６に通信する。次いで、ビジネスプロセスエクセキュータ３１６は、クラウドインフラストラクチャシステム１００における１つ以上のモジュールと連携して動作することによって、特定されたビジネスプロセスのステップを実行する。いくつかの実施例では、ビジネスプロセスエクセキュータ３１６は、ビジネスプロセスに関連付けられたステップを実行するためのオーケストレータの役割を果たす。例えば、ビジネスプロセスエクセキュータは、オーダーに関連するワークフローを特定して、オーダーにおけるサービスの超過を判断するか、またはオーダーに関連するサービスコンポーネントを特定するビジネスプロセスにおけるステップを実行するようにオーダー処理モジュール３１０と対話し得る。
【００６８】
一例では、ビジネスプロセスエクセキュータ３１６は、サブスクリプションオーダーにおいて要求されたサービスのためにリソースを割り当ててプロビジョニングするためのビジネスプロセスにおけるステップを実行するようにＳＤＩモジュール２０６と対話する。この例では、ビジネスプロセスにおける各ステップごとに、ビジネスプロセスエクセキュータ３１６は、リソースを割り当てて、特定のステップを実現するために必要なリソースを構成するために、ＳＤＩモジュール２０６に要求を送り得る。ＳＤＩモジュール２０６は、リソースの実際の割り当てを担当する。オーダーのビジネスプロセスの全てのステップが実行されると、ビジネスプロセスエクセキュータ３１６は、サービスコンポーネント２０２のサービスを利用することによって、処理されたオーダーの通知を顧客に送り得る。通知は、処理されたオーダーの詳細を有する電子メール通知を顧客に送ることを含んでいてもよい。また、電子メール通知は、顧客がサブスクライブされたサービスにアクセスすることを可能にするための、オーダーに関連するデプロイメント情報も含んでいてもよい。
【００６９】
特定の実施例では、ＴＡＳモジュール２０４は、ＴＡＳモジュール２０４がクラウドインフラストラクチャシステム１００における他のモジュールと対話し、他のモジュールがＴＡＳモジュール２０４と対話することを可能にする１つ以上のＴＡＳアプリケーションプログラミングインターフェース（Application Programming Interface：ＡＰＩ）３１８を提供し得る。例えば、ＴＡＳ  ＡＰＩは、顧客のサブスクリプションオーダーのためのリソースをプロビジョニングするために、非同期シンプル・オブジェクト・アクセス・プロトコル（Simple Object Access Protocol：ＳＯＡＰ）ベースのウェブサービスコールを介してＳＤＩモジュール２０６と対話するシステムプロビジョニングＡＰＩを含んでいてもよい。一実施例では、ＴＡＳモジュール２０４は、システムおよびサービスインスタンスの作成および削除を達成し、サービスインスタンスを向上したサービスレベルに切替え、サービスインスタンスを関連付けるためにも、システムプロビジョニングＡＰＩを利用し得る。この一例は、安全なウェブサービス通信を可能にするためのフュージョンアプリケーションサービスインスタンスへのＪａｖａサービスインスタンスの関連付けである。また、ＴＡＳ  ＡＰＩは、処理されたオーダーを顧客に通知するためにサービスモジュール２０２と対話する通知ＡＰＩも含んでいてもよい。特定の実施例では、ＴＡＳモジュール２０４は、サブスクリプション情報、機能停止および通知（例えば計画されたダウンタイム）もサービスコンポーネント２０２に定期的に伝える。
【００７０】
特定の実施例では、ＴＡＳモジュール２０４は、使用されるストレージの量、転送されるデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などのプロビジョニングされたサービスの各々についての使用統計をＥＭモジュール２０８から定期的に受取る。超過フレームワーク３２２は、サービスの過剰使用が生じたか否かを判断し、生じた場合には超過に対してどれぐらい課金されるかを判断するために当該使用統計を利用し、この情報をオーダー管理モジュール２１４に提供する。
【００７１】
特定の実施例では、ＴＡＳモジュール２０４は、顧客のサブスクリプションオーダーの処理に関連付けられた１つ以上のワークフローを特定するように構成されるオーダーワークフロー特定モジュール３２４を含む。特定の実施例では、ＴＡＳモジュール２０４は、クラウドインフラストラクチャシステム１００によって提供される１つ以上のサービスについてのサブスクリプションオーダーを顧客が行うと顧客のためにサブスクリプションオーダーを生成するためのサブスクリプションオーダー生成フレームワーク３２６を含んでいてもよい。一実施例では、サブスクリプションオーダーは、当該サブスクリプションオーダーにおいて顧客によって要求されたサービスを提供することを担当する１つ以上のサービスコンポーネントを含む。
【００７２】
さらに、ＴＡＳモジュール２０４は、もしあれば顧客が利用可能な履歴情報を考慮に入れながら、顧客によってサブスクライブされた１つ以上のサービスのためのリソースのプロビジョニングを可能にするために、テナント情報システム（Tenant Information System：ＴＩＳ）データベース３２０などの１つ以上のさらなるデータベースとも対話し得る。ＴＩＳデータベース３２０は、顧客によってサブスクライブされたオーダーに関係する履歴オーダー情報および履歴使用情報を含んでいてもよい。
【００７３】
ＴＡＳモジュール２０４は、さまざまなデプロイメントモデルを使用してデプロイされ得る。特定の実施例では、デプロイメントは、１つ以上の分散されたコンポーネントと遣り取りする中心コンポーネントを含む。分散されたコンポーネントは、例えばさまざまなデータセンタとしてデプロイされてもよく、したがってデータセンタコンポーネントとも称されてもよい。中心コンポーネントは、クラウドインフラストラクチャシステム１００においてオーダーを処理してサービスをまとめるための機能を含み、データセンタコンポーネントは、サブスクライブされたサービスにリソースを提供するランタイムシステムをプロビジョニングして動作させるための機能を提供する。
【００７４】
図４は、本発明の実施例に係るＴＡＳモジュールの例示的な分散型デプロイメントを示す。図４に示される実施例では、ＴＡＳモジュール２０４の分散型デプロイメントは、ＴＡＳ中心コンポーネント４００と、１つ以上のＴＡＳデータセンタ（Data Center：ＤＣ）コンポーネント４０２，４０４および４０６とを含む。これらのコンポーネントは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【００７５】
一実施例では、ＴＡＳ中心コンポーネント４００の任務は、顧客オーダーを受取って、新たなサブスクリプションの作成、サブスクリプションにおけるサービスのサービスレベルの変更、サブスクリプションに含まれるサービスの変更、およびサブスクリプションの期間の延長、またはサブスクリプションのキャンセルなどのオーダー関連のビジネスオペレーションを実行するための集中型コンポーネントを提供することを含むが、これに限定されるものではない。また、ＴＡＳ中心コンポーネント４００の任務は、クラウドインフラストラクチャシステム１００によって必要とされるサブスクリプションデータを維持および供給すること、ならびに、全てのバックオフィスインタラクションに対処するためにオーダー管理モジュール２１４、サポートＵＩ２１６、クラウドＵＩ２１２およびストアＵＩ２１０と遣り取りすることも含んでいてもよい。
【００７６】
一実施例では、ＴＡＳ  ＤＣ４０２，４０４および４０６の任務は、顧客によってサブスクライブされた１つ以上のサービスのためのリソースのプロビジョニングをオーケストレートするためのランタイムオペレーションを実行することを含むが、これに限定されるものではない。また、ＴＡＳ  ＤＣ４０２，４０４および４０６は、サブスクリプションオーダーのロッキング、アンロッキング、イネーブルまたはディスエーブル、オーダーに関連するメトリクスの収集、オーダーの状態の判断、およびオーダーに関連する通知イベントの送信などのオペレーションを実行するための機能も含む。
【００７７】
図４に示される分散型ＴＡＳシステムの例示的なオペレーションでは、ＴＡＳ中心コンポーネント４００は、最初に、クラウドＵＩ２１２、ストアＵＩ２１０を介して、オーダー管理システム２１４を介して、またはオーダーデータベース２２２を介して、顧客からオーダーを受取る。一実施例では、顧客は、財務情報ならびにサブスクリプションをオーダーおよび／または変更するための権限を有するバイヤに相当する。一実施例では、オーダー情報は、顧客、顧客がサブスクライブしたいサービスのタイプ、および要求への対処を担当するアカウント管理者を特定する情報を含む。特定の実施例では、アカウント管理者は、クラウドインフラストラクチャシステム１００によって提供される１つ以上のサービスへのサブスクリプションについてのオーダーを顧客が行うと、顧客によって任命され得る。オーダー情報に基づいて、ＴＡＳ中心コンポーネント４００は、オーダーが発生するアメリカ、ＥＭＥＡまたはアジア太平洋などの世界のデータ領域、およびオーダーをプロビジョニングするためにデプロイされる特定のＴＡＳ  ＤＣ（例えば４０２，４０４または４０６）を特定する。一実施例では、オーダーをプロビジョニングするためにデプロイされる（例えばＤＣ４０２，４０４または４０６の中からの）特定のＴＡＳ  ＤＣは、要求が発生した地理的なデータ領域に基づいて決定される。
【００７８】
次いで、ＴＡＳ中心コンポーネント４００は、オーダー要求についてのサービスをプロビジョニングするためにオーダー要求を特定のＴＡＳ  ＤＣに送る。一実施例では、ＴＡＳ  ＤＣ４０２，４０４または４０６は、特定のＴＡＳ  ＤＣにおいてオーダー要求を処理することを担当するサービス管理者およびアイデンティティドメイン管理者を特定する。サービス管理者およびアイデンティティ管理者は、サブスクリプションオーダーにおいて特定されるアカウント管理者によって任命され得る。ＴＡＳ  ＤＣ４０２，４０４または４０６は、オーダーのための物理リソースのプロビジョニングをオーケストレートするためにＳＤＩモジュール２０４と通信する。それぞれのＴＡＳ  ＤＣ４０２，４０４または４０６におけるＳＤＩモジュール２０６は、リソースを割り当てて、サブスクリプションオーダーを実現するために必要なそれらのリソースを構成する。
【００７９】
特定の実施例では、ＴＡＳ  ＤＣ４０２，４０４または４０６は、サブスクリプションに関連付けられたアイデンティティドメインを特定する。ＳＤＩモジュール２０６は、既存のアイデンティティドメインの特定または新たなアイデンティティドメインの作成のためにアイデンティティドメイン情報をＩＤＭコンポーネント２００（図２に図示）に提供し得る。オーダーがそれぞれのＴＡＳ  ＤＣ４０２，４０４または４０６におけるＳＤＩモジュールによってプロビジョニングされると、ＴＡＳ中心コンポーネント４００は、サポートシステムにおけるプロビジョニングされたリソースに関する情報をサポートＵＩ２１６を介して配置し得る。情報は、例えばサービスに関連するリソースメトリクスおよびサービスの使用統計の表示を含んでいてもよい。
【００８０】
オペレーション時に、各データセンタにおいて、ＥＭモジュール２０８は、当該データセンタにおいてプロビジョニングされたプロビジョニングされたサービスの各々について、使用されるストレージの量、転送されるデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などの使用統計を定期的に収集する。これらの統計は、ＥＭモジュール２０８にローカルな（すなわち、同一のデータセンタにおける）ＴＡＳ  ＤＣに提供される。実施例では、ＴＡＳ  ＤＣは、サービスの過剰使用が生じたか否かを判断し、生じた場合には超過に対してどれぐらい課金されるかを判断するために使用統計を使用し、課金情報をオーダー管理システム２１４に提供し得る。
【００８１】
図５は、本発明の実施例に係るクラウドインフラストラクチャシステムにおける１つ以上のモジュールとのＳＤＩモジュールのインタラクションを示す簡略ブロック図である。一実施例では、ＳＤＩモジュール２０６は、ＴＡＳモジュール２０４によって受取られたサブスクリプションオーダーにおけるサービスのためのリソースをプロビジョニングするためにＴＡＳモジュール２０４と対話する。特定の実施例では、図５に示されるモジュールのうちの１つ以上は、クラウドインフラストラクチャシステム１００内のモジュールであってもよい。他の実施例では、ＳＤＩモジュール２０６と対話するモジュールのうちの１つ以上は、クラウドインフラストラクチャシステム１００の外側にあってもよい。また、代替的な実施例は、図５に示されるものよりも多くのまたは少ないモジュールを有していてもよい。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【００８２】
一実施例では、ＳＤＩモジュール２０６におけるモジュールは、クラウドインフラストラクチャシステム１００内のＳａａＳプラットフォーム１０２およびＰａａＳプラットフォーム１０４における１つ以上のモジュールを含んでいてもよい。さまざまなサービスのためのリソースのプロビジョニングを行うために、ＳＤＩモジュール２０６は、各々が特定のタイプのサービスのためのリソースのプロビジョニングに役立つようにカスタマイズされるさまざまな他のモジュールと対話し得る。例えば、図５に示されるように、ＳＤＩモジュール２０６は、ＪａｖａクラウドサービスをプロビジョニングするためにＪａｖａサービスプロビジョニング制御モジュール５００と対話し得る。一実施例では、Ｊａｖａサービスプロビジョニング制御コンポーネント５００は、Ｊａｖａクラウドサービスをプロビジョニングするために実行される一組のタスクを含むＳＤＩモジュール２０６によって規定されるＪａｖａクラウドサービス（Java Cloud Service：ＪＣＳ）アセンブリをデプロイし得る。次いで、インフラストラクチャリソース１０６は、Ｊａｖａクラウドサービスをプロビジョニングするために必要なリソースを決定する。
【００８３】
他の例として、ＳＤＩモジュール２０６は、バーチャル・アセンブリ・ビルダ（Virtual Assembly Builder：ＶＡＢ）モジュール５０２、アプリケーション・エクスプレス（Application Express：ＡＰＥＸ）デプロイヤモジュール５０４、仮想マシン（Virtual Machine：ＶＭ）モジュール５０６、ＩＤＭモジュール２００およびデータベースマシンモジュール１１８などの１つ以上のモジュールと対話し得る。ＶＡＢモジュール５０２は、完全な複数層アプリケーション環境を構成およびプロビジョニングするための機能を含む。一実施例では、ＶＡＢモジュール５０２は、ＶＭモジュール５０６によって提供されるサービスを使用してクラウドインフラストラクチャシステム１００においてミドルウェア（Middleware：ＭＷ）サービスをプロビジョニングするために、ＳＤＩモジュール２０６によって規定されるＭＷサービスアセンブリをデプロイする。ＡＰＥＸデプロイヤモジュール５０４は、データベースサービスを構成およびプロビジョニングするための機能を含む。一実施例では、ＡＰＥＸデプロイヤモジュール５０４は、インフラストラクチャリソース１０６によって提供されるリソースを使用してクラウドインフラストラクチャシステム１００においてデータベースサービスをプロビジョニングするために、ＳＤＩモジュール２０６によって規定されるデータベースサービスアセンブリをデプロイする。ＳＤＩモジュール２０６は、クラウドインフラストラクチャシステム１００において複数のアプリケーションにまたがるアクセス管理などのアイデンティティサービスを提供するためにＩＤＭモジュール２００と対話する。
【００８４】
図６は、本発明の実施例に係るＳＤＩモジュールのサブモジュールの簡略化された高レベル図を示す。図６に示される実施例では、ＳＤＩモジュール２０６は、ＳＤＩ−ウェブサービス（Web Service：ＷＳ）モジュール６００と、ＳＤＩ要求コントローラモジュール６０２と、ＳＤＩタスクマネージャモジュール６０４と、ＳＤＩモニタリングモジュール６０６と、ＳＤＩデータアクセスモジュール６０８と、ＳＤＩ共通ライブラリモジュール６１０と、ＳＤＩコネクタモジュール６１２とを含む。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。図６に示されるＳＤＩモジュール２０６およびそのさまざまなモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。代替的な実施例は、図６に示されるものよりも多くのまたは少ないモジュールを有していてもよい。これらのモジュールおよびそれらの機能については、以下で詳細に説明する。
【００８５】
ＳＤＩ−ＷＳモジュール６００は、ＴＡＳコンポーネント２０４のビジネスプロセスエクセキュータ３１６から、オーダーに関連付けられたビジネスにおけるステップを受取るための機能を含む。一実施例では、ＳＤＩ−ＷＳモジュール６００は、ビジネスプロセスの各ステップを構文解析し、当該ステップをＳＤＩモジュール２０６によって使用される内部表現に変換する。一実施例では、オーダーに関連付けられたビジネスプロセスの各ステップは、ＳＤＩ−ＷＳモジュール６００へのＳＯＡＰ要求の形態で、ウェブサービス処理層を介して（例えば図３Ｂに示されるシステムプロビジョニングＡＰＩを介して）到着する。
【００８６】
ＳＤＩ要求コントローラモジュール６０２は、ＳＤＩモジュール２０６における内部要求処理エンジンであり、非同期要求処理、同時要求処理、同時タスク処理、オーダー要求に関連するフォールト・トレラントな回復およびプラグインサポートを実行するための機能を含む。一実施例では、ＳＤＩ要求コントローラモジュール６０２は、オーダーに関連付けられたビジネスプロセスの各ステップをＳＤＩ−ＷＳモジュール６００から受入れ、当該ステップをＳＤＩタスクマネージャモジュール６０４に提出する。
【００８７】
ＳＤＩタスクマネージャモジュール６０４は、ビジネスプロセスにおいて規定された各ステップを、特定のステップをプロビジョニングするための一連のタスクに変換する。特定のステップのための一組のタスクがプロビジョニングされると、ＳＤＩタスクマネージャモジュール６０４は、特定のステップを実現するためにプロビジョニングされたリソースの詳細を有するオーダーペイロードを含むオペレーション結果により、ＴＡＳモジュール２０４におけるビジネスプロセスエクセキュータ３１６に応答する。ＳＤＩタスクマネージャモジュール６０４は、オーダーに関連付けられた特定のビジネスプロセスの全てのステップが完了するまで、このプロセスを繰返す。
【００８８】
特定の実施例では、ＳＤＩタスクマネージャモジュール６０４は、ＳＤＩコネクタモジュール６１２のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換する。ＳＤＩコネクタモジュール６１２は、オーダー要求に関連する１つ以上のサービスをプロビジョニングするために、ＳＤＩタスクマネージャモジュール６０４によって規定されるタスクのデプロイメントに対処するための１つ以上のコネクタを含む。特定の実施例では、コネクタのうちの１つ以上は、特定のサービスタイプに特有のタスクに対処することができ、他のコネクタは、さまざまなサービスタイプにわたって共通のタスクに対処することができる。一実施例では、ＳＤＩコネクタモジュール６１２は、オーダー要求に関連するサービスおよびリソースをプロビジョニングするためにクラウドインフラストラクチャシステム１００における外部モジュール（図５に図示）のうちの１つ以上と遣り取りする一組のコネクタ（ラッパーＡＰＩ）を含む。例えば、アプリケーション・エクスプレス（ＡＰＥＸ）コネクタ６１４は、データベースサービスをプロビジョニングするために、ＡＰＥＸデプロイヤモジュール５０４と遣り取りする。ウェブセンタコネクタ６１６（Web Center Connector：ＷＣＣ）は、ウェブサービスをプロビジョニングするために、クラウドインフラストラクチャシステム１００におけるウェブセンタモジュールと遣り取りする。ウェブセンタモジュールは、ユーザエンゲージメントプラットフォームであり、クラウドインフラストラクチャシステム１００において人々と情報とのコネクティビティを与えるための機能を含む。
【００８９】
特定の実施例では、ミドルウェアアプリケーション（Middleware Application：ＭＡ）コネクタ６１８は、ミドルウェアアプリケーションサービスをプロビジョニングするために、クラウドインフラストラクチャシステム１００におけるＶＡＢモジュール５０２と遣り取りする。ＮＵＶＩＡＱコネクタ６２０は、Ｊａｖａサービスをプロビジョニングするために、ＶＡＢモジュール５０２と遣り取りする。ＩＤＭコネクタ６２２は、クラウドインフラストラクチャシステム１００においてサービスおよびリソースにサブスクライブするユーザにアイデンティティおよびアクセス管理を提供するために、ＩＤＭモジュール２００と遣り取りする。バーチャル・アセンブリ・ビルダ（ＶＡＢ）コネクタ６２４は、完全な複数層アプリケーション環境を構成およびプロビジョニングするために、クラウドインフラストラクチャシステム１００におけるＶＡＢモジュール５０２と遣り取りする。プラグインコネクタ６２６は、クラウドインフラストラクチャシステム１００におけるコンポーネントを管理およびモニタリングするために、ＥＭモジュール２０８と遣り取りする。ＨＴＴＰサーバコネクタ６２８は、クラウドインフラストラクチャシステム１００においてユーザに接続サービスを提供するために、ＰａａＳプラットフォームにおける１つ以上のウェブサーバと遣り取りする。
【００９０】
ＳＤＩモジュール２０６におけるＳＤＩモニタリングモジュール６０６は、Ｊａｖａ管理拡張（Java Management Extensions：ＪＭＸ）要求を受取るためのインバウンドインターフェースを提供する。また、ＳＤＩモニタリングモジュール６０６は、クラウドインフラストラクチャシステム１００においてアプリケーション、システムオブジェクトおよび装置を管理およびモニタリングするためのツールも提供する。ＳＤＩデータアクセスモジュール６０８は、Ｊａｖａデータベースコネクティビティ（Java Database Connectivity：ＪＤＢＣ）要求を受取るためのインバウンドインターフェースを提供する。ＳＤＩデータアクセスモジュール６０８は、クラウドインフラストラクチャシステム１００において、データアクセスをサポートし、オブジェクト関係マッピング、ｊａｖａトランザクションＡＰＩサービス、データアクセスオブジェクトおよび接続プーリングを提供する。ＳＤＩ共通ライブラリモジュール６１０は、ＳＤＩモジュール２０６におけるモジュールのための構成サポートを提供する。
【００９１】
上記の図６の実施例は、本発明の実施例に係るＳＤＩモジュールにおけるモジュールを記載している。図７Ａは、本発明の実施例に係るクラウドインフラストラクチャシステムにおけるＳＤＩモジュールのモジュールによって実行され得る処理を示す簡略化されたフローチャート７００を示す。図７Ａに示される処理は、１つ以上のプロセッサによって実行されるソフトウェア（例えばコード、命令、プログラム）、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、（例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の）メモリに格納されてもよい。図７Ａに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、図７Ａに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施例では、図７Ａに示される処理は、図６に詳細に示されるＳＤＩモジュール２０６における１つ以上のモジュールによって実行され得る。
【００９２】
７０２において、サブスクリプションオーダーに関連付けられたビジネスプロセスが受取られる。一実施例では、ＳＤＩモジュール２０６におけるＳＤＩ−ＷＳモジュール６００は、サブスクリプションオーダーに関連付けられたビジネスプロセスにおける１つ以上のステップをビジネスプロセスエクセキュータ３１６から受取る。７０４において、ビジネスプロセスにおける各ステップは、サブスクリプションオーダーのためのリソースをプロビジョニングするための一連のタスクに変換される。一実施例では、ＳＤＩモジュール２０６におけるＳＤＩタスクマネージャモジュール６０４は、ＳＤＩコネクタモジュール６１２のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換する。７０６において、サブスクリプションオーダーは、一連のタスクに基づいてプロビジョニングされる。一実施例では、図６に示されるように、ＳＤＩコネクタモジュール６１２は、サブスクリプションオーダーにおけるサービスのためのリソースをプロビジョニングするために、ＳＤＩタスクマネージャモジュール６０４によって規定されるタスクのデプロイメントに対処するための１つ以上のコネクタを含む。
【００９３】
図６に関して上記したように、ＳＤＩタスクマネージャモジュール６０４は、ＳＤＩコネクタモジュール６１２のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換し、ＳＤＩコネクタモジュール６１２は、オーダー要求に関連する１つ以上のサービスをプロビジョニングするために、ＳＤＩタスクマネージャモジュール６０４によって規定されるタスクのデプロイメントに対処するための１つ以上のコネクタを含んでいてもよい。コネクタのうちの１つ以上は、特定のサービスタイプに特有のタスクに対処することができ、他のコネクタは、さまざまなサービスタイプにわたって共通のタスクに対処することができる。一実施例では、ＳＤＩコネクタモジュール６１２は、オーダー要求に関連するサービスおよびリソースをプロビジョニングするためにクラウドインフラストラクチャシステム１００における外部モジュール（図５に図示）のうちの１つ以上と遣り取りする一組のコネクタ（ラッパーＡＰＩ）を含む。例えば、ＮＵＶＩＡＱコネクタ６２０は、ＪａｖａサービスをプロビジョニングするためにＶＡＢモジュール５０２と遣り取りする。
【００９４】
図７Ｂは、本発明の実施例に係るＮｕｖｉａｑシステム７１０および他のクラウドインフラストラクチャシステムとのその関係の高レベルアーキテクチャを示す簡略ブロック図を示す。図７Ｂに示されるＮｕｖｉａｑシステム７１０は、図７Ｂに示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、図７Ｂに示される実施例は、本発明の実施例を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、Ｎｕｖｉａｑシステム７１０は、図７Ｂに示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【００９５】
特定の実施例では、Ｎｕｖｉａｑシステム７１０は、ＰａａＳオペレーションをオーケストレートするためのランタイムエンジンを提供するように構成され得る。Ｎｕｖｉａｑシステム７１０は、他の製品およびサービスとの統合を容易にするためにウェブサービスＡＰＩを提供し得る。また、Ｎｕｖｉａｑシステム７１０は、システムプロビジョニング、アプリケーションデプロイメントおよび関連付けられたライフサイクルオペレーションにおける複雑なワークフローのためのサポートを提供し、管理およびモニタリングソリューションと統合する。
【００９６】
図７Ｂに示される実施例では、Ｎｕｖｉａｑシステム７１０は、Ｎｕｖｉａｑプロキシ７１２と、Ｎｕｖｉａｑマネージャ７１４と、Ｎｕｖｉａｑデータベース７１６とを備える。特定の実施例では、Ｎｕｖｉａｑマネージャ７１４は、Ｎｕｖｉａｑシステム７１０へのエントリポイントを提供し、ウェブサービスＡＰＩを介してＰａａＳオペレーションへの安全なアクセスを提供する。内部では、Ｎｕｖｉａｑマネージャ７１４は、データベースにおいてシステム状態を追跡し、ワークフローエンジン上でのジョブの実行を制御する。パブリッククラウドでは、Ｎｕｖｉａｑマネージャ７１４は、プロビジョニングオペレーションおよびデプロイメントオペレーションをそれぞれ駆動するために、テナントプロビジョニングシステム（ＳＤＩ２０６）およびテナントコンソールによってアクセスされ得る。
【００９７】
一実施例では、Ｎｕｖｉａｑマネージャ７１４は、内部ワークフローエンジンを介して非同期にジョブを実行する。ジョブは、所与のＰａａＳワークフローに特有のアクションのシーケンスであってもよい。アクションは、順番に実行されてもよく、任意のステップにおける障害は、結果としてジョブ全体の障害になる。多くのワークフローアクションは、ＥＭコマンドラインインターフェース（ｃｌｉ）などのワークフローに関連する外部システムに権限を委任する。一実現例では、Ｎｕｖｉａｑマネージャ７１４アプリケーションは、ファイアウォール内で実行される関連付けられたＨＴＴＰサーバ（例えばオラクルＨＴＴＰサーバまたはＯＨＳ）インスタンスを有する２ノードウェブロジッククラスタにおいてホストされ得る。
【００９８】
特定の実施例では、Ｎｕｖｉａｑプロキシ７１２は、Ｎｕｖｉａｑ  ＡＰＩへのパブリックアクセスポイントである。一実施例では、パブリックＡＰＩのみがここで公開され得る。プロキシ７１２によって受取られた要求は、Ｎｕｖｉａｑマネージャ７１４に送られ得る。一実施例では、Ｎｕｖｉａｑプロキシ７１２はファイアウォールの外側で実行される一方、マネージャ７１４はファイアウォール内で実行される。一実現例では、Ｎｕｖｉａｑプロキシ７１２アプリケーションは、ファイアウォールの外側で実行されるウェブロジッククラスタ上で実行される。
【００９９】
特定の実施例では、Ｎｕｖｉａｑデータベース７１６は、プラットフォームインスタンス、デプロイメント計画、アプリケーション、ウェブロジックドメイン、ジョブ、アラーとなどであるがこれらに限定されないさまざまなドメインエンティティを追跡する。必要に応じて、主キーがサービスデータベースと整合させられてもよい。
【０１００】
一実施例では、プラットフォームインスタンス７１８は、所与のテナントのためのウェブロジックサービスに必要な全てのリソースを含んでいてもよい。
【０１０１】
Ｎｕｖｉａｑシステム７１０は、ウェブロジッククラウドサービスによって使用されるワークフローを実行するために、クラウドインフラストラクチャシステム１００のさらなるシステムに依拠し得る。これらの依存性は、ＳＤＩ２０６、ＩＤＭ２００、ウイルススキャンシステム、サービスデータベース、ＣＲＭインスタンスなどへの依存性を含んでいてもよい。例えば、Ｎｕｖｉａｑシステム７１０は、ＳＤＩ２０６におけるアセンブリデプロイヤによって実行される機能に依存し得る。一実施例では、アセンブリデプロイヤは、ＯＶＡＢ（オラクルバーチャル・アセンブリ・ビルダ）およびＯＶＭ（オラクル仮想マシン）とのインタラクションを管理するためのシステムである。Ｎｕｖｉａｑシステム７１０によって使用されるアセンブリデプロイヤの機能は、アセンブリをデプロイするための機能、アセンブリをアンデプロイするための機能、アセンブリデプロイメントを説明するための機能、アプライアンスをスケーリングするための機能などを含み得るが、これらに限定されるものではない。一実現例では、Ｎｕｖｉａｑシステム７１０は、ウェブサービスＡＰＩを介してアセンブリデプロイヤにアクセスする。
【０１０２】
特定の実施例では、セキュリティポリシは、アプリケーションにデプロイされる前に特定のアーティファクトがウイルススキャンされることを必要とし得る。クラウドインフラストラクチャシステム１００は、この目的でウイルススキャンシステムを提供し得て、パブリッククラウドの複数のコンポーネントのためのサービスとしてスキャンを提供する。
【０１０３】
特定の実施例では、パブリッククラウドインフラストラクチャは、テナント（例えば顧客）およびそれらのサービスサブスクリプションについての情報を含むサービスデータベースを維持し得る。Ｎｕｖｉａｑワークフローは、テナントもサブスクライブする他のサービスに対するクライアントとしてウェブロジックサービスを適切に構成するために、このデータにアクセスし得る。
【０１０４】
Ｎｕｖｉａｑシステム７１０は、そのセキュリティ統合のためにＩＤＭ２００に依存し得る。特定の実施例では、Ｊａｖａサービスインスタンスは、ＣＲＭインスタンスに関連付けられ得る。当該関連付けにより、Ｊａｖａサービスインスタンスにデプロイされたユーザアプリケーションは、ウェブサービスコールを介してＣＲＭインスタンスにアクセスできる。
【０１０５】
Ｎｕｖｉａｑシステム７１０によって提供されるサービスをさまざまなエンティティが使用し得る。Ｎｕｖｉａｑシステム７１０のこれらのクライアントは、プラットフォームインスタンス上でアプリケーションを管理するために顧客がアクセスし得る管理サーバ（例えばオラクル管理サーバ）ベースのユーザインターフェースであるテナントコンソールと、アプリケーションライフサイクル管理オペレーションへのアクセスを提供するように拡張されたオラクルＩＤＥ（JDeveloper、NetBeansおよびＯＥＰＥ）などのいくつかのＩＤＥと、プラットフォームインスタンス上のライフサイクルオペレーションにアクセスするために利用可能な１つ以上のコマンドラインインターフェース（Command Line Interface：ＣＬＩ）とを含んでいてもよい。
【０１０６】
Ｎｕｖｉａｑシステム７１０についてのプロビジョニング使用事例、すなわちプロビジョニングプラットフォームインスタンスの使用事例は、Ｎｕｖｉａｑ  ＡＰＩの作成プラットフォームインスタンスオペレーションによって実現される。クラウドインフラストラクチャシステム１００の文脈では、Ｎｕｖｉａｑシステムに対するサービスインスタンスは、Ｎｕｖｉａｑプラットフォームインスタンスに対応する。プラットフォームインスタンスは、このインスタンスに関連する全ての後続のオペレーション上で使用される独自の識別子を割り当てられる。作成プラットフォームインスタンスアクションに提供されるプラットフォームデプロイメント記述子により、テナントのサブスクリプション要件を満たすようにプラットフォームインスタンスの構成を修正するプロパティを設定することができる。これらのプロパティは、例えば以下を含んでいてもよい：
プロパティ＃１：oracle.cloud.service.weblogic.size
値：ベーシック、標準、エンタープライズ
説明：サブスクリプションタイプを規定する。これは、サーバの数、データベース限度およびサービス設定の質に影響を及ぼす。
プロパティ＃２：oracle.cloud.service.weblogic.trial
値：真、偽
説明：これがトライアルサブスクリプションであるか否かを示す。
プロパティ＃３：oracle.cloud.service.weblogic.crm
値：ＣＲＭサービスＩＤ
説明：このウェブロジックサービスインスタンスに関連付けられるべきＣＲＭサービスを特定する。
【０１０７】
図７Ｃは、本発明の実施例に係るＮｕｖｉａｑシステムを使用するプロビジョニングプロセスのステップを示す例示的なシーケンス図を示す。図７Ｃに示されるシーケンス図は、一例に過ぎず、限定的であるよう意図されるものではない。
【０１０８】
インストール／更新アプリケーションの使用事例、すなわちインストールアプリケーションオペレーションは、アプリケーションアーカイブがパブリッククラウドのセキュリティ要件を満たすことを確認した後に、実行中のウェブロジックサーバにアプリケーションをデプロイする。一実施例では、インストールアプリケーションアクションに提供されるアプリケーションデプロイメント記述子により、テナントのサブスクリプション要件を満たすようにアプリケーションの構成を修正するプロパティを設定することができる。これらのプロパティは、例えば以下を含んでいてもよい：
プロパティ：oracle.cloud.service.weblogic.state
値：実行、停止
説明：デプロイメント後のアプリケーションの初期状態を規定する。
【０１０９】
図７Ｄは、本発明の実施例に係るＮｕｖｉａｑシステムを使用するデプロイメントプロセスのステップを示す例示的なシーケンス図を示す。図７Ｄに示されるシーケンス図は、一例に過ぎず、限定的であるよう意図されるものではない。
【０１１０】
図２に戻って、特定の実施例では、協働して動作するＴＡＳ２０４およびＳＤＩ２０６は、クラウドインフラストラクチャシステム１００によって提供される一組のサービスから顧客によってオーダーされた１つ以上のサービスのためにリソースをプロビジョニングすることを担当する。例えば、一実施例では、データベースサービスをプロビジョニングするために、自動化されたプロビジョニングフローは、有料サブスクリプションについては以下のようなものであってもよい：
（１）顧客は、ストアＵＩ２１０を介して、サービスの有料サブスクリプションのオーダーを行う。
（２）ＴＡＳ２０４がサブスクリプションオーダーを受取る。
（３）サービスが利用可能であると、ＴＡＳ２０４は、ＳＤＩ２０６のサービスを使用することによってプロビジョニングを開始する。ＴＡＳ２０４は、ビジネスプロセスのオーケストレーションを実行してもよく、関連のビジネスプロセスを実行してオーダーのプロビジョニング局面を完了する。一実施例では、ＴＡＳ２０４は、プロビジョニングに関わるステップをオーケストレートして、ライフサイクルオペレーションを処理するために、ＢＰＥＬ（ビジネスプロセス実行言語：Business Process Execution Language）プロセスマネージャを使用し得る。
（４）一実施例では、データベースサービスをプロビジョニングするために、ＳＤＩ２０６は、要求を行っている顧客にスキーマを関連付けるようにＣＬＯＵＤ＿ＵＩにおけるＰＬＳＱＬ  ＡＰＩを呼出し得る。
（５）顧客へのスキーマの関連付けが成功した後、ＳＤＩはＴＡＳに知らせて、ＴＡＳは、データベースサービスが現在顧客によって使用可能な状態にあるという通知を顧客に送る。
（６）顧客は、（例えばcloud.oracle.comなどのＵＲＡＬを使用して）クラウドインフラストラクチャシステム１００にログインし、サービスを起動し得る。
【０１１１】
いくつかの実施例では、顧客は、トライアルベースでサービスにサブスクライブすることも許可されてもよい。例えば、このようなトライアルオーダーは、（例えばcloud.oracle.comを使用して）クラウドＵＩ２１２を介して受取られ得る。
【０１１２】
特定の実施例では、クラウドインフラストラクチャシステム１００は、顧客またはテナント同士の間で基本的なハードウェアおよびサービスインスタンスが共有されることを可能にする。例えば、データベースサービスは、一実施例では、図７Ｅに示されるようにプロビジョニングされ得る。図７Ｅは、複数のExadata演算ノード７３０および７３２を示し、演算ノード７３０および７３２の各々が、データベースサービスのためにプロビジョニングされたデータベースインスタンスを提供する。例えば、演算ノード７３０は、データベースサービスのためのデータベースインスタンス７３４を提供する。各々のExadata演算ノードは、複数のデータベースインスタンスを有していてもよい。
【０１１３】
特定の実施例では、各データベースインスタンスは、複数のスキーマを備えていてもよく、当該スキーマは、異なる顧客またはテナントに関連付けられてもよい。例えば、図７Ｅでは、データベースインスタンス７３４は、２つのスキーマ７３６および７３８を提供し、スキーマ７３６および７３８の各々は、それ自体のテーブルを有する。スキーマ７３６は、データベースサービスにサブスクライブする第１の顧客またはテナントに関連付けられ得て、スキーマ７３８は、データベースサービスにサブスクライブする第２の顧客またはテナントに関連付けられ得る。各テナントは、完全に切離されたスキーマを得る。各スキーマは、関連付けられたテナントについてのテーブル、ビュー、格納されたプロシージャ、トリガなどを含むデータベースオブジェクトを管理できる容器のように動作する。各スキーマは、１つの専用のテーブル領域を有し得て、各々のテーブル領域は、１つのデータファイルを有する。
【０１１４】
このように、単一のデータベースインスタンスは、複数のテナントにデータベースサービスを提供することができる。これは、基本的なハードウェアリソースの共有を可能にするだけでなく、テナント同士の間でのサービスインスタンスの共有も可能にする。
【０１１５】
特定の実施例では、このようなマルチテナンシシステムは、ＩＤＭ２００によって容易になり、これにより、各々がそれ自体の別個のアイデンティティドメインを有する複数の別個の顧客が、クラウドにおいて共有されるハードウェアおよびソフトウェアを使用することが有利に可能になる。その結果、各顧客が自身の専用のハードウェアまたはソフトウェアリソースを有する必要がなくなり、場合によっては、特定の時点で一部の顧客によって使用されていないリソースが、他の顧客によって使用可能になり、それによってそれらのリソースが無駄になることを防止する。例えば、図７Ｅに示されるように、データベースインスタンスは、各々がそれぞれのアイデンティティドメインを有する複数の顧客に供給されることができる。各々のこのようなデータベースサービスインスタンスは、多くの別個のアイデンティティドメインの中で共有される単一の物理的なマルチテナントデータベースシステムの別個の抽象化またはビューであり得るが、各々のこのようなデータベースサービスインスタンスは、各々の他のデータベースサービスインスタンスが有するものとは別個の、場合によっては異なるスキーマを有することができる。したがって、マルチテナントデータベースシステムは、顧客指定のデータベーススキーマとそれらのデータベーススキーマが関係するアイデンティティドメインとの間のマッピングを格納し得る。マルチテナントデータベースシステムは、特定のアイデンティティドメインのためのデータベースサービスインスタンスに、当該特定のアイデンティティドメインにマッピングされるスキーマを使用させ得る。
【０１１６】
また、マルチテナンシは、Ｊａｖａサービスなどの他のサービスに拡張可能である。例えば、複数の顧客は、それぞれのアイデンティティドメイン内に配置されたＪＡＶＡサービスインスタンスを有し得る。各々のこのようなアイデンティティドメインは、ハードウェアの仮想的な「スライス」と見なされることができるＪＡＶＡ仮想マシンを有し得る。一実施例では、ジョブモニタリングサービス（例えばハドソン）は、各々の別個のアイデンティティドメインがＪＡＶＡエンタープライズ版プラットフォームのそれ自体の別個の仮想的な「スライス」を有することを可能にするように、クラウドにおけるＪＡＶＡエンタープライズ版プラットフォーム（例えばオラクルウェブロジック）と組み合わせられてもよい。このようなジョブモニタリングサービスは、例えばオペレーティングシステムの時間ベースのジョブスケジューラによって実行されるソフトウェアプロジェクトまたはジョブの構築などの繰返されるジョブの実行をモニタリングし得る。このような繰返されるジョブは、ソフトウェアプロジェクトの連続的な構築および／またはテストを含んでいてもよい。さらにまたは代替的に、このような繰返されるジョブは、ジョブモニタリングサービスが実行されるマシンから離れたマシン上で実行されるオペレーティングシステム起動ジョブの実行のモニタリングを含んでいてもよい。
【０１１７】
上記のように、１つ以上のサービスについてのサブスクリプション要求を顧客から受取ると、クラウドインフラストラクチャシステム１００は、要求されたサービスを提供するように構成されるリソースをプロビジョニングする。サブスクリプション要求の一部として、顧客は、特定の数のリソースを要求し得る。例えば、顧客は、１００人のユーザのためにＣＲＭサービスを要求してもよく、またはデータベースサービスのために５ＧＢのストレージを要求してもよい、などである。要求されたサービスのためのリソースがプロビジョニングされると、多くの場合、顧客は、当該サービスにおいてリソースを過剰使用し得る。例えば、ＣＲＭサービスの使用中にサブスクリプションオーダーが１００人のユーザのためにＣＲＭサービスを要求する間に、顧客は、１２０人のユーザをサポートするために当該サービスを使用してもよく、これは２０人のユーザの過剰使用（超過と称される）に相当する。
【０１１８】
特定の実施例では、サービスのプロビジョニング、管理および追跡の自動化の一部として、クラウドインフラストラクチャシステム１００は、このような超過を追跡する。別の例として、５ＧＢの「ストレージ」リソース使用限度および１ＧＢの「データ転送」リソース使用限度を含むサービスレベルでクラウドインフラストラクチャシステム１００によって提供されるデータベースサービスに顧客がサブスクライブすることを考える。クラウドインフラストラクチャシステム１００によって提供されるサービスの使用中、顧客によって使用される実際のリソースは、ストレージに９ＧＢおよびデータ転送に２ＧＢであり得て、その結果、サービスの過剰使用が生じる。特定の実施例では、クラウドインフラストラクチャシステム１００は、顧客によって使用される各々のこのようなリソースの超過を演算および追跡する。
【０１１９】
特定の実施例では、超過関連の処理は、クラウドインフラストラクチャシステム１００のＴＡＳコンポーネント２０４によって実行される。一実施例では、ＴＡＳコンポーネント２０４は、顧客のサブスクリプションオーダーにおける１つ以上のサービスのためにプロビジョニングされた１つ以上のリソースの超過を演算および追跡するように構成される超過フレームワーク３２２を提供する。一実施例では、リソースの超過の演算は、当該リソースについての超過ユニットの数を演算すること、超過のユニット当たりの価格を求めること、次いでリソースの総超過コストを演算することを含む。
【０１２０】
図８は、本発明の一実施例に係るＴＡＳコンポーネント２０４の一部であり得る超過フレームワーク３２２を示す高レベルブロック図である。図８に示される実施例では、超過フレームワーク３２２は、メタデータ定義モジュール８０２と、リソース使用演算モジュール８０４と、超過演算モジュール８０６と、価格決定モジュール８０８とを含む。さらに、図８に示されるように、超過フレームワーク３２２は、ＥＭモジュール２０８、オーダーデータベース２２２およびオーダー管理モジュール２１４と対話し得る。これらのコンポーネントは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。図８に示される超過フレームワーク８００のコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。
【０１２１】
特定の実施例では、上記のように、ＥＭモジュール２０８は、クラウドインフラストラクチャシステム１００によって提供されるさまざまなサービスについてのリソース使用統計を収集するように構成される。使用統計は、サービス当たり、顧客当たり、サブスクリプションオーダー当たりなどをベースに演算され得る。ＥＭコンポーネント２０８によって収集されるリソース使用統計は、使用されるストレージの量、転送されるデータの量、サービスによってサポートされるユーザの数、サービスを使用して（例えばｊａｖａサービスを使用して）デプロイされるアプリケーションの数などを含み得るが、これらに限定されるものではない。上記のリソースのタイプおよび関連付けられた使用統計は、一例として提供されているに過ぎず、本発明の範囲を限定することを意図したものではないということが理解されるべきである。
【０１２２】
特定の実施例では、リソース使用演算モジュール８０４は、ＥＭコンポーネント２０８によって収集されたリソース使用統計を受取るように、またはリソース使用統計にアクセスするように構成される。アクセスされた情報に基づいて、リソース使用演算モジュール８０４は、サブスクリプション当たりの総リソース使用を求めるように構成される。サブスクリプションについて、リソース使用演算モジュール８０４は、サブスクリプションオーダーにおける各サービスによって使用されるリソースを決定し得る。一実施例では、リソース使用演算モジュール８０４は、収集開始時刻および収集終了時刻によって規定される時間間隔にわたるサービスのための各リソースの総リソース使用を求める。
【０１２３】
表１は、データベースサービスコンポーネントおよびＪａｖａサービスコンポーネントによって規定される２つのサービスについてサブスクリプションをオーダーする（サブスクリプションＩＤ「１」によって特定される）サブスクリプションオーダーについてリソース使用演算モジュール８０４によって求められる総リソース使用情報を示す。例えば、データベースサービスコンポーネントでは、使用情報は、ストレージ使用および実行されるデータ転送の量で求められる。Ｊａｖａサービスコンポーネントでは、求められる情報は、メモリ使用と、Ｊａｖａサービスを使用してデプロイされるアプリケーションの数とを備える。各サービスのための各リソースについて、情報が収集された、開始時刻および終了時刻によって特徴付けられる期間も示される。この期間は、収集期間とも称される。表１の最後の列は、各リソースについての「総リソース使用」を示す。この列におけるリソースについての値は、収集期間にわたって使用されるリソースの合計量を示す。
【０１２４】
【表１】
0006419700.tif 000002
【０１２５】
収集期間にわたってリソースについて収集されたリソース使用情報に基づいてリソースについて「総リソース使用」を演算する方法は、リソース特有のものであり、リソースごとに異なっていてもよい。したがって、特定の期間にわたってリソースについて演算される合計使用値は、リソースに依存し得る。以下に示される表２は、リソースのいくつかの例およびリソースについて総リソース使用を演算する方法を特定する。
【０１２６】
【表２】
0006419700.tif 000003
【０１２７】
特定の実施例では、リソース使用演算モジュール８０４によって求められる総リソース使用情報は、次いで、リソースの超過が生じたか否かを判断するために使用され得る。図８に示される実施例では、超過の演算は、超過演算モジュール８０６によって実行される。超過演算の一部として、超過演算モジュール８０６は、サブスクリプションオーダーについてのリソース使用情報をリソース使用演算モジュール８０４から受取り得る。サブスクリプションオーダーについて超過演算モジュール８０６によって受取られる情報は、例えば表１に示されるようなものであってもよい。
【０１２８】
超過を求めるために、超過演算モジュール８０６は、オーダーデータベース２２２に格納され得る、サブスクリプションオーダーに関連する情報も受取る。例えば、図８に示されるように、メタデータ定義モジュール８０２は、サブスクリプションオーダーについてのメタデータ情報を抽出し、当該情報を超過演算モジュール８０６に提供するように構成され得る。表３は、メタデータ定義モジュール８０２によって超過演算モジュール８０６に提供される例示的なメタデータ情報を示す。一実施例では、表３に示されるメタデータ情報は、サブスクリプションオーダーにおけるさまざまなサービスコンポーネントに割り当てられることができるサービスレベル、顧客レベル、リソースタイプおよびリソース使用限度のさまざまな組み合わせを含む。
【０１２９】
【表３】
0006419700.tif 000004
【０１３０】
サービスコンポーネントは、顧客のサブスクリプションオーダーにおいて要求されるサービスのタイプに関連する。例としては、ＣＲＭサービス、Ｊａｖａサービス、データベースサービスなどが挙げられるが、これらに限定されるものではない。サービスレベルは、サービスコンポーネントに割り当てられるべき特定のリソースのレベルを規定する。例えば、一実現例では、サービスレベルは、ベーシックサービスレベル、標準サービスレベルおよびエンタープライズサービスレベルを含んでいてもよい。ベーシックサービスレベルは、ストレージ、データ転送、ユーザの数、メモリまたはデプロイされるアプリケーションの数などの最小レベルのリソースを規定し得る。標準サービスレベルおよびエンタープライズサービスレベルは、さらなるまたは増大された数のリソースを規定し得る。一実施例では、特定のサービスは、当該サービスに割り当てられるさまざまなリソースのためにさまざまなサービスレベルを規定し得る。例えば、表１に示されるように、データベースサービスは、「ストレージ」リソースのために「ベーシック」サービスレベルを規定し、「データ転送」リソースのために「エンタープライズ」サービスレベルを規定し得る。
【０１３１】
顧客レベルは、サブスクリプション要求を行う顧客の優先度を規定する。一例では、優先度は、顧客のサービスレベル合意書（ＳＬＡ）によって規定されるようにクラウドインフラストラクチャシステム１００が顧客に保証するサービスの質に基づいて決定され得る。一例では、さまざまな顧客レベルは、ベーシックレベル、シルバーレベルおよびゴールドレベルを含む。一実施例では、サブスクリプションオーダーは、特定のサービスおよび当該サービスに関連付けられた特定のリソースタイプのためにさまざまな顧客レベルを規定し得る。例えば、顧客は、データベースサービスのために「ベーシック」顧客レベルを有し、Ｊａｖａサービスのために「シルバー」顧客レベルを有し得る。
【０１３２】
リソースタイプは、特定のサービスレベルおよび顧客レベルを有するサービスに割り当てられるリソースのタイプを規定する。表３に示される例では、データベースサービスに割り当てられるリソースタイプは、ストレージおよびデータ転送を含んでいてもよく、ｊａｖａサービスに割り当てられるリソースタイプは、メモリおよびデプロイされるアプリケーションの数を含んでいてもよい。さらに、サービスのための各サービスレベルおよび顧客レベルは、関連付けられたリソース使用限度を有する。当該リソース使用限度は、サービスに関連付けられたサービスレベルおよび顧客レベルに割り当てられる特定のリソースタイプのリソースの量を指す。例えば、表３に示されるように、「ベーシック」サービスレベルおよび顧客のための「ベーシック」顧客レベルでデータベースサービスに割り当てられるストレージリソースのリソース使用限度は、５ＧＢである。
【０１３３】
特定の実施例では、超過を求めるために、超過演算モジュール８０６は、サブスクリプションオーダーにおけるサービスに関連する１つ以上の超過バンドもオーダーデータベース２２２から受取る。超過バンドは、サービスに関連付けられたサービスレベルおよび顧客レベルに割り当てられるリソース使用限度以上に特定のサービスレベルおよび顧客レベルでのサービスによって利用可能なさらなるリソースの量を規定する。
【０１３４】
特定の実施例では、超過バンドは、超過ユニットのサイズを規定する。一例では、顧客は、各々の超過バンドごとに１つの超過ユニットを請求される。例えば、データベースサービスのためのストレージリソースに割り当てられる超過バンドは２ＧＢであり、データベースサービスに割り当てられるストレージリソースのリソース使用限度は５ＧＢであると仮定する。もし顧客が６または７ＧＢのストレージリソースを利用すると、顧客は１つの超過ユニットを請求される。なぜなら、使用が両方とも同一の超過バンド内に入っているからである。しかし、もし顧客が８ＧＢのストレージリソースを利用すると、顧客は２つの超過ユニットを請求される。なぜなら、この使用は次の超過バンドに入るからである。
【０１３５】
一実施例では、メタデータ定義モジュール８０２は、サブスクリプションオーダーのサービスコンポーネントに適用可能な超過バンドに関連する情報を抽出し、この情報を超過演算モジュール８０６に提供するように構成され得る。表４は、データベースサービスをオーダーする顧客のサブスクリプションオーダーについてメタデータ定義モジュール８０２によって超過演算モジュール８０６に提供される例示的な超過バンドを示す。
【０１３６】
【表４】
0006419700.tif 000005
【０１３７】
表４に示されるように、一実施例では、データベースサービスのためのストレージリソースについて規定されるリソース使用限度を超えて、複数の超過バンドが規定され得る。表４に示されるバンドは全て、データベースサービスおよびストレージリソースタイプのためのものである。例えば、「ベーシック」サービスレベルおよび「ベーシック」顧客レベルでは、（表３から得られる）５ＧＢのリソース使用限度を超えて２ＧＢまでの量の第１の超過バンドが、ストレージリソースのために規定され得る。「ベーシック」サービスレベルおよび「シルバー」顧客レベルでは、５ＧＢのリソース使用限度を超えて４ＧＢまでの量の第２の超過バンドが、ストレージリソースのために規定され得る。「標準」サービスレベルおよび「ベーシック」顧客レベルでは、５ＧＢの使用限度を超えて５ＧＢまでの量の超過バンドが、ストレージリソースのために規定され得る。「エンタープライズ」サービスレベルおよび「ベーシック」顧客レベルでは、５ＧＢの使用限度を超えて１０ＧＢまでの超過バンドが規定され得る。表３および表４に記載されるメタデータ情報は、一例として提供されているに過ぎず、本発明の範囲を限定することを意図したものではないということが理解されるべきである。当業者は、多くの変更例、変形例および代替例を認識するであろう。
【０１３８】
超過演算モジュール８０６は、顧客によって使用される１つ以上のリソースの超過を演算するために、リソース使用演算モジュール８０４から受取られる総リソース使用情報およびメタデータ定義モジュール８０２から受取られるメタデータ情報を利用する。一実施例では、超過演算モジュール８０６は、各リソースごとに超過ユニットの数を演算し、各リソースごとに総超過コストを演算することによって、超過を演算する。一実施例では、サブスクリプションオーダーにおける１つ以上のサービスの使用中に顧客によって利用される１つ以上のリソースについての超過ユニットの数は、以下のように（例えば表１からの）総リソース使用を、サービスに関連付けられた特定のサービスレベルおよび顧客レベルでのリソースの（例えば表２からの）リソース使用限度および（例えば表４からの）超過バンドと比較することによって演算される。
【０１３９】
総リソース使用がリソースのリソース使用限度内であると判断されると、リソースについて超過量は生じなかったと判断される。総リソース使用がリソース使用限度を超えると、超過が生じた時間間隔が（例えば表１から）特定される。次いで、当該時間間隔中の所与のサービスレベルおよび顧客レベルでのリソースについての超過ユニットの数が、以下の式（１）に示されるように求められる：
超過ユニットの数＝［（総リソース使用−使用限度）／超過バンド］の上限  （１）。
【０１４０】
次いで、総超過コストが以下の式（２）に示されるように演算される：
総超過コスト＝超過ユニットの数＊超過ユニット当たりの価格  （２）。
【０１４１】
一実施例では、超過演算モジュール８０６は、リソースに関連付けられた特定のサービスレベルおよび顧客レベルでのリソースについての超過ユニット当たりの価格を求めるために、価格決定モジュール８０８と対話する。一実施例では、価格決定モジュール８０８は、顧客によって利用されるさまざまなリソースについての超過期間における超過ユニット当たりの価格に関連する情報をオーダーデータベース２２２から取得し得る。表５は、データベースサービスおよびｊａｖａサービスをオーダーするサブスクリプションオーダーについてオーダーデータベース２２２によって価格決定モジュール８０６に提供される例示的な超過ユニット価格を示す。
【０１４２】
【表５】
0006419700.tif 000006
【０１４３】
一例では、リソースについての超過ユニット当たりの価格は、顧客によって利用されるリソースの量以上に格納または転送される各々の追加のＧＢの固定費として演算されてもよい。別の例では、超過ユニット当たりの価格は、超過バンドに基づいて決定されてもよい。例えば、超過バンドに基づいて、（２ＧＢ〜４ＧＢ）の範囲内に入る超過を有するリソースについての超過ユニット当たりの価格は同一であり得るが、４ＧＢ以上に格納または転送される各々の追加のＧＢについて、超過ユニット当たりより高い価格が決定されてもよい。
【０１４４】
特定の実施例では、価格決定モジュール８０８は、課金サイクルの中のさまざまな超過期間におけるリソースの総超過コストも決定し得る。一実施例では、超過期間は、リソースの超過が生じた（例えば表１からの）時間間隔に基づいて演算される。一例として、超過期間が１ヶ月であり、課金サイクルが３ヶ月ごとに実行される場合、価格決定モジュール８０８は、課金サイクルにおける３つの超過期間の各々についてリソースの総超過コストを決定する。課金期間の総超過コストは、課金サイクルにおける全ての超過期間についての総超過コストの合計である。超過期間の継続期間は、より細かいレベルまたはより粗いレベルの粒度で超過演算をサポートするように変更可能である。課金サイクルの間に複数の超過期間を決定することは、サブスクリプションについてのサービスレベルおよび顧客レベルが課金サイクルにわたって変動する可能性があるという事実を考慮に入れるということが理解されるべきである。例えば、顧客は、課金サイクルの最中により高いサービスレベルにアップグレードされたかもしれない。アップグレードされたサービスレベルが課金サイクル全体で使用される場合、顧客は、アップグレードの前に生じた超過については正規の価格以下の請求がなされ得る。
【０１４５】
一例として、顧客のサブスクリプションオーダーにおけるデータベースサービスに割り当てられる「ストレージ」リソースを考える。この例では、２０１３年１月２２日午前９時〜２０１３年１月２２日午前１０時の時間間隔中の総リソース使用が（例えば表１から求められる）６ＧＢであると判断され、「ベーシック」サービスレベルでのリソース使用限度が（例えば表３から求められる）５ＧＢであると判断され、「ベーシック」サービスレベルおよび顧客レベルでのリソースの超過バンドが（例えば表４から求められる）２ＧＢであると判断されることを考える。超過演算モジュール８０６は、以下の式（３）に示されるように、当該時間間隔中の「ベーシック」サービスレベルおよび顧客レベルでの「ストレージ」リソースについての超過ユニットの数を演算する：
超過ユニットの数＝［（６−５）／２］の上限＝［０．５］の上限＝１つの超過ユニット  （３）。
【０１４６】
また、当該時間間隔中の「ベーシック」サービスレベルおよび顧客レベルでの「ストレージ」リソースについての超過ユニット当たりの価格が＄１００であると価格決定モジュール８０８によって判断されることを考える。超過演算モジュール８０６は、以下の式（４）に示されるように、「ベーシック」サービスレベルおよび顧客レベルでの「ストレージ」リソースについての総超過コストを演算する：
総超過コスト＝１＊１００＝＄１００  （４）。
【０１４７】
特定の実施例では、超過演算モジュール８０６は、超過ユニットの数および総超過コストをオーダー管理モジュール２１４に提供する。次いで、オーダー管理モジュール２１４は、顧客のサブスクリプションオーダーにおける１つ以上のサービスに割り当てられたリソースの超過に関する通知を顧客に送るために、サービスコンポーネント２０２（図２に図示）のサービスを利用し得る。一実施例では、当該通知は、サービスの各々に割り当てられたリソースの各々の超過ユニットの数および総超過コストを含む。
【０１４８】
図９Ａは、クラウドインフラストラクチャシステム１００において顧客のサブスクリプションオーダーにおける１つ以上のサービスに割り当てられた１つ以上のリソースの超過を演算するために超過フレームワークによって実行され得る処理を示す簡略化されたフローチャート９００を示す。一実施例では、図９Ａの処理は、それぞれ図８に示される超過フレームワーク３２２におけるモジュール８０２，８０４，８０６および８０８によって実行され得る。図９Ａに示される処理９００は、１つ以上のプロセッサによって実行されるソフトウェア（例えばコード、命令、プログラム）、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、（例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の）メモリに格納されてもよい。図９Ａに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、図９Ａに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。
【０１４９】
９０２において、クラウドインフラストラクチャシステム１００の顧客によってサブスクライブされた１つ以上のサービスに関連するサブスクリプションオーダー情報が格納される。一実施例では、サブスクリプションオーダー情報は、オーダーデータベース２２２に格納される。顧客によってサブスクライブされた１つ以上のサービスに関連する例示的なメタデータ情報は、表３および表４に示されている。
【０１５０】
９０４において、サブスクリプションオーダーにおいて特定されるサービスに関連付けられた１つ以上のリソースについてのリソース使用情報が求められる。一実施例では、リソース使用情報は、１つ以上のサービスに関連付けられた１つ以上のリソースに関連するリソース使用統計の収集に基づいて求められる。一実施例では、図８に示されるように、リソース使用演算モジュール８０４は、ある時間間隔にわたってリソースに関連付けられたリソース使用統計を合計することによって、サービスに割り当てられた各リソースの総リソース使用を求める。特定の実施例では、当該時間間隔は超過期間であり、各々の超過期間ごとに、サブスクリプションのサービスによって使用されるリソースについて表１にはいくつかの行が存在し得る。したがって、９０４において、これらの行は、表２においてリソースについて規定される適切な集合演算子を使用して合計される。例えば、ストレージリソースについては、これらの行の中の最大使用値が選択され、データ転送リソースについては、全ての適用可能な行にわたって使用値が合計される。
【０１５１】
９０６において、リソース使用情報およびサブスクリプションオーダー情報に基づいて、サービスに割り当てられた１つ以上のリソースの超過が演算される。超過の演算に関連するさらなる説明は、図９Ｂに詳細に示されている。
【０１５２】
９０８において、クラウドインフラストラクチャシステム１００においてサービスを利用する顧客にリソースの超過が提供される。一実施例では、顧客のサブスクリプションオーダーにおけるサービスに割り当てられたリソースの超過に関する通知が顧客に送られる。一実施例では、当該通知は、顧客のサブスクリプションオーダーにおけるサービスの各々に割り当てられたリソースの各々についての超過ユニットの数および総超過コストを含む。
【０１５３】
図９Ｂは、本発明の実施例に係る１つ以上のリソースの超過を演算するために実行され得る処理を示す簡略化されたフローチャートを示す。一実施例では、図９Ｂに示される処理は、図９Ａに示されるステップ９０６の実行のさらなる詳細を含む。一実施例では、図９Ｂに示される処理は、超過期間の間の顧客のサブスクリプションオーダーにおけるサービスに割り当てられた単一のリソースの超過を演算するためのプロセスを記載している。しかし、図９Ａに示される特定の一連の処理ステップは、単一のリソースに限定されるよう意図されるものではなく、顧客のサブスクリプションオーダーにおいて要求される１つ以上のサービスのための１つ以上のリソースに適用されてもよい。
【０１５４】
９１０において、超過期間におけるサービスの総リソース使用が求められる。一実施例では、超過期間は、リソースの超過が生じた（例えば表１からの）時間間隔に基づいて演算される。一実施例では、総リソース使用は、表２に記録されるリソースのための適切な集合演算子を、超過期間内に入る表１に記録されるリソース使用の行に適用することによって求められる。
【０１５５】
９１２において、超過期間における決定されたサービスおよび顧客レベルのリソースに関連付けられたサービスレベル、顧客レベルおよび超過バンド情報が求められる。一実施例では、リソースのサービスレベル、顧客レベルおよび超過バンドは、表２および表３に格納されたメタデータ情報から求められる。
【０１５６】
９１４において、超過期間における特定のサービスおよび顧客レベルのリソースのリソース使用限度が（例えば表３から）求められる。
【０１５７】
９１６において、リソースの総リソース使用がリソースのリソース使用限度を超えたか否かが判断される。総リソース使用がリソース使用限度を超えていないと判断されると、超過が演算されないと判断され、このリソースについての処理は終了する。
【０１５８】
９１８において、超過期間中の特定のサービスレベルおよび顧客レベルのリソースの超過が演算される。超過の演算は、リソースの超過ユニットの数の演算を含んでいてもよい。一実施例では、超過ユニットの数は、図８における式（１）：超過ユニットの数＝（使用全体−使用限度）／超過バンドに示されるように演算される。別の実施例では、超過の演算は、リソースの総超過コストの演算を含む。一実施例では、総超過コストは、図８における式（２）：総超過コスト＝超過ユニットの数＊超過ユニットの価格に示されるように演算される。
【０１５９】
顧客からのサブスクリプションオーダーが受取られると、クラウドインフラストラクチャシステム１００は、オーダーによって要求されたサービスが顧客によって使用可能になる前にいくつかの処理ステップを実行しなければならない。例えば、これらの処理ステップは、オーダーを検証するステップを含み得て、顧客から追加の情報を得るステップ、１つ以上の要求されたサービスを提供するためにリソースをプロビジョニングするステップ、顧客データのセキュリティを保証するためにアイデンティティドメインを作成するステップなどをさらに必要とし得る。これらの処理ステップのうちの多くは、実行するのにしばらく時間がかかる可能性がある。しかし、一般に、顧客は、オーダーされたサービスをできる限り速やかに使用し始めたいと考える。特定の実施例では、クラウドインフラストラクチャシステム１００によって提供されるサービスのプロビジョニング、管理および追跡を自動化するための技術は、サブスクリプションオーダーの処理に関わる全てのステップが完了するまで顧客が待つ必要なく、サブスクリプションオーダーを行った際に、サブスクリプションオーダーにおいて要求されるサービスにアクセスする機能を顧客に提供することを含む。
【０１６０】
一実施例では、サブスクリプションオーダーが受取られた後に実行されるステップ全体は、２つのカテゴリに分類される：
（１）オーダーされたサービスを提供することができ、オーダーされたサービスを顧客が利用できるようになる前に実行される必要がある最低限の１つ以上のステップを含む「一次ステップ」、および
（２）サブスクリプションオーダーの受取りに応答して実行されるが、最初は顧客がサービスを利用できるようにするために不可欠でないステップを含む「二次ステップ」。したがって、サブスクリプションオーダーに応答して実行されるステップ全体から、一次ステップとして分類されないいかなるステップも、二次ステップとして分類される。一次ステップは、二次ステップに依存しない。
【０１６１】
特定の実施例では、一次ステップのみを備えるサブスクリプションオーダーのために一次オーダーワークフローが規定される。二次ステップを備える１つ以上の二次オーダーワークフローが規定され得る。サブスクリプションオーダーを受取ると、当該オーダーについて実行されるべき処理に関連する１つ以上のワークフローの組が特定される。当該ワークフローの組は、サブスクリプションオーダーについて実行されるべき処理に関連する一次オーダーワークフローおよび１つ以上の二次オーダーワークフローを含む。一実施例では、一次オーダーワークフローにおける一次ステップを実行すると、顧客は、サブスクリプションオーダーにおいて要求されるサービスへのアクセスを提供される。顧客は、オーダーされたサービスに顧客がアクセスできるようになる前に全ての二次ステップの処理が完了するまで待つ必要はない。二次ステップは、サブスクリプションオーダーの処理を完了するために、可能であれば一次ステップと同時に実行されてもよく、または一次ステップが実行された後に実行されてもよい。
【０１６２】
特定の実施例では、サブスクリプションオーダーについての一次ステップは、サブスクリプションオーダーの内容に依存する。例えば、オーダーについての一次ステップは、オーダーされるサービスに依存し得て、またはオーダーされるサービスのレベルにさえ依存し得る。
【０１６３】
典型的な例では、サブスクリプションオーダーの処理に関わる一次ステップは、物理リソースの割り当てをプロビジョニングするステップ、および、顧客がサービスにアクセスできるように顧客アイデンティティとともに必要であればアイデンティティドメインを作成するステップを少なくとも含んでいてもよい。顧客がサービスの使用を開始するのに必要でないアカウンティングおよびサポートなどのサブスクリプションオーダーに関連する他のバックオフィス機能は、顧客がサービスにアクセスした後に完了し得て、二次ステップとして分類される。例えば、顧客記録の作成およびサブスクリプションオーダーに関連するアカウンティング機能の実行などのオーダー管理モジュール２１４によって実行される処理のうちのいくつかは、二次ステップとして分類され得る。一実施例では、顧客記録を作成する二次ステップは、ＳＤＩモジュール２０６によって実行されるサブスクリプションのためにリソースをプロビジョニングする一次ステップと同時にオーダー管理モジュール２１４によって実行され得る。
【０１６４】
図１０は、本発明の一実施例に係る顧客のサブスクリプションオーダーを処理するためのシステムの高レベルブロック図である。図１０に示される実施例は、ＴＡＳモジュール２０４の一部であるオーダーワークフロー特定モジュール３２４を備える。図１０に示されるように、一実施例では、オーダーワークフロー特定モジュール３２２は、一次オーダーワークフロー特定モジュール１００２と、二次オーダーワークフロー特定モジュール１００４と、オーダーワークフロー処理モジュール１００６とを含む。これらのモジュールは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。図１０に示されるオーダーワークフロー特定モジュール３２２におけるモジュールは、単に例示の目的で示されており、本発明の実施例の範囲を限定することを意図したものではない。例えば、本発明の代替的な実施例は、オーダーワークフロー特定モジュール３２４にさらなるモジュールを含んでいてもよい。
【０１６５】
図３Ｂに示されるオーダー処理モジュール３１０から顧客のサブスクリプションオーダーを受取ると、一実施例では、一次オーダーワークフロー特定モジュール１００２は、顧客のサブスクリプションオーダーに関連する一次オーダーワークフローを特定するためにサブスクリプションオーダーを分析する。一次オーダーワークフローは、サブスクリプションオーダーの処理に関連する１つ以上の一次ステップを含む。例えば、一次オーダーワークフロー特定モジュール１００２は、以下に記載されるステップＰ１〜Ｐ８を備える一次オーダーフローチャートを特定し得る：
Ｐ１：ストアＵＩ２１０またはクラウドＵＩ２１２を介して顧客のサブスクリプションオーダーを受取るステップ。
Ｐ２：サブスクリプションオーダーに関連付けられた顧客記録を作成するステップ。
Ｐ３：顧客のサブスクリプションオーダーの論理的なサブスクリプションフットプリントを作成するステップ。一例では、論理的なサブスクリプションフットプリントは、顧客記録、顧客アカウント情報記録、サービス構成記録などの顧客のサブスクリプションオーダーに関連付けられた一組の記録の作成を含んでいてもよい。
Ｐ４：顧客のサブスクリプションに関連付けられたアイデンティティドメイン管理者またはシステム管理者を作成するステップ。
Ｐ５：顧客のサブスクリプションに関連付けられたアカウント管理者を作成するステップ。
Ｐ６：顧客のサブスクリプションに関連付けられた物理的なサブスクリプションフットプリントを作成するステップ。これは、顧客がサブスクリプションオーダーにおけるサービスにアクセスできるように、顧客によって要求される最小のリソースの組を割り当てることを含む。
Ｐ７：物理的なサブスクリプションフットプリントのモニタリングを可能にするステップ。
Ｐ８：顧客がサブスクリプションオーダーにおけるサービスへのアクセスを開始できるという通知を顧客に送るステップ。
【０１６６】
上記の一次ステップの例は限定的であるよう意図されるものではないということが理解されるべきである。次いで、一次オーダーワークフロー特定モジュール１００２は、一次オーダーワークフローをオーダーワークフロー処理モジュール１００６に入力して実行する。次いで、オーダーワークフロー処理モジュール１００６は、一次オーダーワークフローを実行する。一次オーダーワークフローは、二次オーダーワークフローから独立して実行可能である。
【０１６７】
一次オーダーワークフローの実行は、恐らくクラウドインフラストラクチャシステム１００のさらなるコンポーネントを含んでいてもよい。例えば、上記の例では、一次ステップＰ１は、フロントエンドインターフェース、ストアＵＩ２１０またはクラウドＵＩ２１２を介して実行されてもよく、一次ステップＰ２およびＰ３は、オーダー管理モジュール２１４によって実行されてもよく、一次ステップＰ４およびＰ５は、ＴＡＳモジュール２０４によって実行されてもよく、一次ステップＰ６は、ＴＡＳモジュール２０４およびＳＤＩモジュール２０６によって実行されてもよく、一次ステップＰ７は、ＥＭモジュール２０８によって実行されてもよく、一次ステップＰ８は、サービスモジュール２０２によって実行されてもよい。一次オーダーワークフローにおけるステップを実行すると、オーダーワークフロー処理モジュール１００６は、顧客がサブスクリプションオーダーにおけるサービスの利用を開始できることをサービスコンポーネント２０２に通知する。一実施例では、オーダーされたサービスにアクセスするために顧客が使用可能なＵＲＬが、通知の一部として顧客に提供され得る。
【０１６８】
二次オーダーワークフロー特定モジュール１００４は、サブスクリプションオーダーを分析して、サブスクリプションオーダーに関連する１つ以上の二次オーダーワークフローを特定するように構成される。各々の二次オーダーワークフローは、サブスクリプションオーダーの処理に関連する１つ以上の二次ステップを含んでいてもよい。例えば、一実施例では、二次オーダーワークフロー特定モジュール１００４は、以下に記載されるステップＳ１〜Ｓ１２を備える二次オーダーワークフローを特定し得る：
Ｓ１：オーダー管理モジュール２１４において顧客の課金スケジュールを作成するステップ。
Ｓ２：オーダー管理モジュール２１４における契約管理モジュールにおいて顧客の契約情報を作成するステップ。
Ｓ３：オーダー管理モジュール２１４のインストールベースモジュールにおいて権利付与フットプリントを作成するステップ。本明細書で使用される権利付与フットプリントは、顧客が権利を与えられるリソースの量についての情報を含む。権利付与データは、顧客情報および一組の集中的アクセス制御ポリシに基づいて決定され得る。一実施例では、顧客が権利を与えられるリソースは、サービス管理者の関与なしに顧客がサブスクリプションオーダーを行った場合に顧客に自動的にプロビジョニングされ得る。
Ｓ４：オーダー管理モジュール２１４において顧客のインボイスを作成するステップ。
Ｓ５：権利付与フットプリントをサポートシステムに送るステップ。
Ｓ６：（バイヤ、アイデンティティドメイン管理者およびサービス管理者情報を含む）サブスクリプション情報をサポートシステムに送るステップ。
Ｓ７：サポートシステムにおいてサブスクリプション記録を作成するステップ。
Ｓ８：バイヤがサポートＵＩ２１６を介してサポートシステムにアクセスすることを可能にするステップ。
Ｓ９：アイデンティティドメイン管理者がサポートＵＩ２１６を介してサポートシステムにアクセスすることを可能にするステップ。
Ｓ１０：サービス管理者がサポートＵＩ２１６を介してサポートシステムにアクセスすることを可能にするステップ。
Ｓ１１：例えばさらなるインデックスの作成、さらなる仮想マシンの割り当て、さらなる言語パックのインストール、さらなるサンプルデータの作成などを含むさらなる物理的なサブスクリプションフットプリント構成ステップを処理するステップ。
Ｓ１２：管理者権限がないユーザを作成するステップ。
【０１６９】
上記の二次ステップＳ１〜Ｓ１２は、二次ステップの例に過ぎず、本発明の範囲を限定することを意図したものではないということが理解されるべきである。二次オーダーワークフロー特定モジュール１００４は、１つ以上の二次オーダーワークフローをオーダーワークフロー処理モジュール１００６に入力するように構成され、次いで、オーダーワークフロー処理モジュール１００６は、二次ワークフローを実行し得る。二次オーダーワークフローの実行は、恐らくクラウドインフラストラクチャシステム１００のさらなるコンポーネントを含んでいてもよい。
【０１７０】
上記のように、一次オーダーワークフローの実行は、１つ以上の二次オーダーワークフローの実行に依存しない。いくつかの状況では、二次オーダーワークフローの１つ以上の二次ステップは、一次オーダーワークフローの実行が完了した後に実行されてもよい。いくつかの他の状況では、二次オーダーワークフローにおける１つ以上の二次ステップは、一次オーダーワークフローにおける一次ステップのうちのいくつかと並行してまたは同時に実行されてもよい。例えば、オーダー管理モジュール２１４は、ＳＤＩモジュール２０６がサブスクリプションのためのリソースのプロビジョニングを作成する一次ステップを実行するのと同時に、顧客のサブスクリプション記録を作成する二次ステップを実行してもよい。さらに、二次オーダーワークフローは、連続して実行されてもよく、または可能であれば、１つ以上が並列に実行されてもよい。したがって、可能であれば、２つ以上の二次ステップが同時に実行されてもよい。
【０１７１】
図１１Ａは、本発明の実施例に係る一次および二次オーダーワークフローを使用してサブスクリプションオーダーを処理するためにＴＡＳモジュール２０６におけるオーダーワークフロー特定モジュール３２４によって実行され得る処理を示す簡略化されたフローチャートを示す。図１１Ａに示される処理１１００は、１つ以上のプロセッサによって実行されるソフトウェア（例えばコード、命令、プログラム）、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、（例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の）メモリに格納されてもよい。図１１Ａに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、図１１Ａに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施例では、図１１Ａに示される処理は、図１０に詳細に示されるオーダーワークフロー特定モジュール３２４における１つ以上のモジュールによって実行され得る。
【０１７２】
１１０２において、クラウドインフラストラクチャシステム１００によって提供される一組のサービスからサービスをオーダーするサブスクリプションオーダーに関連するサブスクリプションオーダー情報が格納される。一実施例では、オーダーデータベース２２２がサブスクリプションオーダー情報を格納する。サブスクリプションオーダー情報は、表６に示されるように、サービスタイプ、サービスレベル、顧客レベル、リソースのタイプ、当該サービスタイプに割り当てられるべきリソースの量、およびサービスが求められる期間などのオーダーについての情報を含んでいてもよい。
【０１７３】
【表６】
0006419700.tif 000007
【０１７４】
１１０４において、サブスクリプションオーダー情報に基づいて、サブスクリプションオーダーを処理するための一次オーダーワークフローが特定される。一次オーダーワークフローは、サブスクリプションオーダーにおけるオーダーされたサービスの使用を可能にする前に実行されるべき１つ以上のステップを含む。一実施例では、図１０に示されるように、一次オーダーワークフローは、サブスクリプションオーダーの処理に関連する１つ以上の一次ステップを含み、当該１つ以上の一次ステップは、例えば論理的なサブスクリプションフットプリント、物理的なサブスクリプションフットプリント、およびサブスクリプションオーダーに関連するアカウント管理者を作成するステップを含んでいてもよい。
【０１７５】
１１０６において、サブスクリプションオーダー情報に基づいて、サブスクリプションオーダーを処理するための二次オーダーワークフローが特定される。二次オーダーワークフローは、サブスクリプションオーダーの処理を完了させるために実行されるべき１つ以上のステップを含む。一実施例では、図１０に示されるように、二次オーダーワークフローは、サブスクリプションオーダーの処理に関連する１つ以上の二次ステップを含み、当該１つ以上の二次ステップは、例えば権利付与フットプリントおよび顧客についてのアカウンティング記録を作成するステップ、ならびに、サブスクリプションオーダーに関連する物理的なサブスクリプションフットプリントに基づいて顧客のためにさらなるリソースを構成するステップを含んでいてもよい。
【０１７６】
１１０８において、一次オーダーワークフローの実行の完了後に、サブスクリプションオーダーにおけるオーダーされたサービスへのアクセスが可能にされる。一実施例では、オーダーされたサービスへのアクセスは、二次オーダーワークフローにおける１つ以上のステップの実行の完了前に可能にされる。したがって、サブスクリプションオーダーの処理を完了させるために必要な二次ステップのうちの１つ以上が全て完了していなくても、顧客は、オーダーされたサービスの使用を開始することができる。一実施例では、サブスクリプションオーダーの処理を完了させるために、二次オーダーワークフローにおけるステップのうちの１つ以上は、一次オーダーワークフローにおけるステップのうちの１つ以上と同時に実行されてもよい。別の実施例では、サブスクリプションオーダーの処理を完了させるために、二次オーダーワークフローにおけるステップのうちの１つ以上は、一次オーダーワークフローにおけるステップのうちの１つ以上の後に実行されてもよい。
【０１７７】
１１０９において、一次オーダーワークフローにおけるステップの実行が完了すると、顧客に通知され、顧客は、サブスクリプションオーダーにおけるオーダーされたサービスの利用を開始できるようになる。
【０１７８】
図１１Ｂは、本発明の実施例に係る、顧客のサブスクリプションオーダーを処理するために一次オーダーワークフローにおける１つ以上の一次ステップとの関係で二次オーダーワークフローにおける１つ以上の二次ステップがいかに実行され得るかの例を示す。図１１Ｂを参照して、一実施例では、一次オーダーワークフローは、各々が直前の一次ステップへの依存性を有しているので順番に実行される（上記の一次オーダーワークフローの例に対応する）一次ステップＰ１〜Ｐ８を備える。二次オーダーワークフローは、（上記の二次オーダーワークフローの例に対応する）二次ステップＳ１〜Ｓ１２を備える。
【０１７９】
図１１Ｂから分かるように、一実施例では、顧客の課金スケジュールを作成する二次ステップＳ１、契約情報を作成する二次ステップＳ２および権利付与フットプリント情報を作成する二次ステップＳ３は、各々が直前の二次ステップへの依存性を有しているので、順番に実行され得る。一例では、図１１Ｂに示されるように、二次ステップＳ１は、一次ステップＰ１と並行して実行されてもよく、それに続いて二次ステップＳ２およびＳ３が実行される。
【０１８０】
特定の実施例では、一次ステップＰ１〜Ｐ５の実行は、サブスクリプション情報をサポートシステムに送る二次ステップＳ６を実行することができる前に完了する必要がある。しかし、二次ステップＳ６は、それぞれ物理的なサブスクリプションフットプリントを作成する一次ステップＰ６、物理的なサブスクリプションフットプリントをモニタリングする一次ステップＰ７または通知を顧客に送る一次ステップＰ８のいずれかと並行して実行可能である。また、権利付与フットプリントを送る二次ステップＳ５およびサブスクリプション情報を送る二次ステップＳ６は、並行して実行可能である。
【０１８１】
一実施例では、二次ステップＳ５，Ｓ６，Ｓ７は、バイヤがサポートシステムにアクセスすることを可能にする二次ステップＳ８、アイデンティティドメイン管理者がサポートシステムにアクセスすることを可能にする二次ステップＳ９およびサービス管理者がサポートシステムにアクセスすることを可能にする二次ステップＳ１０を実行することができる前に完了される。しかし、二次ステップＳ８，Ｓ９，Ｓ１０は、並行して実行可能である。
【０１８２】
一実施例では、顧客は、サブスクリプションにアクセスする前に課金されることはない。そのため、インボイス作成ステップ（Ｓ４）は、物理的サブスクリプション作成ステップ（Ｐ６）への依存性を有している。また、サブスクリプションオーダーの処理の完了について顧客に通知する一次ステップＰ８は、インボイスを作成する二次ステップＳ４を実行することができる前に完了される。しかし、二次ステップＳ４は、それぞれ二次的な物理的構成を作成する二次ステップＳ１１および管理者権限がないユーザを作成する二次ステップＳ１２の前またはそれらのステップと同時に実行可能である。一実施例では、一次オーダーワークフローおよび二次オーダーワークフローは、有向グラフとしてモデル化されることができ、当該グラフのノードが一次ステップおよび二次ステップを表わし、当該グラフの端縁がこれらのステップ間の依存性を表わす。一実現例では、任意の一次ステップノードの先祖ノードは全て、一次ステップノードである。なぜなら、先祖ステップは全て、子孫ステップを完了できる前に完了されるからである。一方、一次ステップノードの子孫ノードは、一次ステップノードまたは二次ステップノードのいずれかであり得る。
【０１８３】
図１１Ｃは、本発明の一実施例に係る一次オーダーワークフローを使用してサブスクリプションオーダーを処理するためのステップを実行する方法を示す高レベルフローチャート１１１０である。図１１Ａを参照して、方法１１１０は、顧客のサブスクリプションオーダーを受取るステップ（１１１２）を含む。次いで、一連の判断がなされる。すなわち、サブスクリプションオーダーについての顧客記録が生成されたか否か（１１１４）、サブスクリプションオーダーについての論理的なサブスクリプションフットプリントが生成されたか否か（１１１６）、サブスクリプションオーダーについてのシステム管理者が作成されたか否か（１１１８）、サブスクリプションオーダーについてのサービス管理者が作成されたか否か（１１２０）、サブスクリプションオーダーについての物理的なサブスクリプションフットプリントが生成されたか否か（１１２２）、およびサブスクリプションオーダーのモニタリングが可能にされたか否か（１１２４）が判断される。ステップ１１１４〜１１２４のいずれかにおける条件のうちのいずれかが満たされない場合、サブスクリプションオーダーへの顧客のアクセスの提供に関連付けられる特定のステップが、クラウドインフラストラクチャシステム１００における１つ以上のコンポーネントに送信され、実行される（１１２６）。全ての一次ステップが実行されると（１１２８）、サブスクリプションオーダーへの顧客のアクセスが提供され、顧客に通知される（１１３０）。ステップ１１１４〜１１２４のいずれかにおける条件のうちのいずれかが満たされない場合、サブスクリプションオーダーへの顧客のアクセスを減少させる（１１３２）。
【０１８４】
図１１Ｃに示される具体的なステップは、本発明の実施例に係る顧客のサブスクリプションオーダーに関連付けられた一次オーダーワークフローを処理する特定の方法を提供するということが理解されるべきである。他の実施例では、他のステップのシーケンスもステップ１１１２と１１３２との間で実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で、図１１Ｃに概説されるステップを実行してもよい。さらに、図１１Ｃに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。
【０１８５】
特定の状況では、クラウドインフラストラクチャシステム１００における顧客のサブスクリプションオーダーの処理は、クラウドインフラストラクチャシステムにおける１つ以上のコンポーネントによる顧客のサブスクリプションオーダーに関連する機密情報の格納を含んでいてもよい。例えば、クラウドインフラストラクチャシステム１００におけるコンポーネントによって格納される機密情報は、顧客のアイデンティティ、クレジットカード情報、契約の詳細、顧客のサブスクリプションオーダーにおける１つ以上のサービスにプロビジョニングされたリソースへの顧客のアクセスに関連する情報などの極秘の顧客情報を含んでいてもよい。一実施例では、クラウドインフラストラクチャシステムは、顧客のサブスクリプションオーダーの処理中に互いの間で情報を転送したいこれらのコンポーネント間の安全なインタラクションに対処するためのフレームワークを提供する。一実施例では、コンポーネントは、さまざまなセキュリティゾーンに割り当てられる。セキュリティゾーンへのコンポーネントの割り当ては、コンポーネントによって処理されるデータの機密性、コンポーネントによって実行される機能の機密性などに基づき得る。
【０１８６】
図１２Ａは、本発明の一実施例に係るクラウドインフラストラクチャシステムにおけるさまざまなコンポーネントへのセキュリティゾーンの割り当ての論理図である。図１２に示されるように、さまざまなセキュリティゾーンは、アイデンティティ管理ゾーン１２０２、物理的プロビジョニングゾーン１２０４、アカウンティングゾーン１２０６、テナントゾーン１２０８および顧客ＵＩゾーン１２１０などのクラウドインフラストラクチャシステム１００の１つ以上のコンポーネントに割り当てられ得る。また、セキュリティレベルが各々のセキュリティゾーンに割り当てられ得る。一実施例では、セキュリティレベルは、高いセキュリティレベル１２１２、中程度のセキュリティレベル１２１４および低いセキュリティレベル１２１６から選択される。
【０１８７】
一実施例では、セキュリティゾーンおよびセキュリティレベルへのコンポーネントの割り当ては、コンポーネントによって処理されるデータの機密性、コンポーネントによって実行される機能の機密性などに基づき得る。同一レベルのセキュリティを有する複数のゾーンが存在してもよい。一例として、課金および極秘の顧客情報の維持などのバックオフィス機能を実行するオーダー管理モジュール２１４における１つ以上のコンポーネントが、高いセキュリティレベルを有するセキュリティゾーンに割り当てられ得る。同様に、クラウドインフラストラクチャシステム１００のデータセンタ内のアイデンティティ情報を維持するＩＤＭモジュール２００におけるコンポーネントおよびクラウドインフラストラクチャシステム１００においてリソースへの顧客のアクセスをプロビジョニングおよび制御するＳＤＩモジュール２０６におけるコンポーネントが、高いセキュリティレベルを有するセキュリティゾーンに割り当てられ得る。クラウドインフラストラクチャシステム１００におけるリソースのプロビジョニングをオーケストレートし、ＴＡＳモジュール２０４およびＥＭモジュール２０８において顧客のサブスクリプションオーダーにおけるサービスのモニタリングを可能にするコンポーネントが、中程度のセキュリティレベルを有するセキュリティゾーンに割り当てられ得る。クラウドＵＩ２１２、ストアＵＩ２１０およびサポートＵＩ２１６において顧客にユーザインターフェースを提供するコンポーネントが、低いセキュリティレベルを有するセキュリティゾーンに割り当てられ得る。
【０１８８】
また、関連付けられたセキュリティレベルを有するセキュリティゾーンへのコンポーネントの割り当ては、エンドユーザまたは顧客からのコンポーネントの距離に基づいて実行されてもよい。一例では、コンポーネントがエンドユーザに近付けば近付くほど、コンポーネントのセキュリティゾーンのセキュリティレベルは低くなる。例えば、ユーザが直接アクセス可能なクラウドＵＩ２１２、ストアＵＩ２１０およびサポートＵＩ２１６におけるユーザインターフェース関連のコンポーネントが、低いセキュリティレベルに関連付けられた顧客ＵＩゾーン１２１０に割り当てられる。一方、オーダー管理モジュール２１４におけるバックオフィス処理コンポーネントが、高いセキュリティレベル１２１２に関連付けられたアカウンティングゾーン１２０６に割り当てられる。
【０１８９】
図１２Ａに示される例では、ＳＤＩモジュール２０６におけるコンポーネントが、高いセキュリティレベル１２１２に関連付けられた物理的プロビジョニングゾーン１２０４に割り当てられる。ＩＤＭモジュール２００におけるコンポーネントが、高いセキュリティレベル１２１２に関連付けられたアイデンティティ管理ゾーン１２０２に割り当てられる。オーダー管理モジュール２１４におけるコンポーネントが、高いセキュリティレベル１２１２に関連付けられたアカウンティングゾーン１２０６に割り当てられる。ＴＡＳモジュール２０４、ＥＭモジュール２０８およびサポートシステム２１７におけるコンポーネントが、中程度のセキュリティレベル１２１４に関連付けられたテナントゾーン１２０８に割り当てられる。クラウドＵＩ２１２、ストアＵＩ２１０およびサポートＵＩ２１６におけるコンポーネントが、低いセキュリティレベル１２１６に関連付けられた顧客ＵＩゾーン１２１０に割り当てられる。一実施例では、特定のセキュリティゾーンおよび特定のセキュリティレベルへのコンポーネントの割り当ては、クラウドインフラストラクチャシステム１００の管理者によって実行され得る。特定の実施例では、各コンポーネントをその関連付けられたセキュリティゾーンおよびセキュリティレベルにマッピングする情報がクラウドインフラストラクチャシステム１００によって格納され得る。
【０１９０】
上記のセキュリティゾーンおよびセキュリティレベルは、本発明の範囲を限定することを意図したものではなく、一例を提供するために記載されているに過ぎないということが理解されるべきである。他の実施例では、さらなる例示的なセキュリティゾーンおよびセキュリティレベルがクラウドインフラストラクチャシステム１００のコンポーネントのために規定されてもよい。特定のゾーンは、ゼロまたはそれ以上のコンポーネントを備えていてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。
【０１９１】
本発明の特定の実施例では、２つのコンポーネントが互いにデータを遣り取りする機能を含む、２つのコンポーネントが互いに対話する機能は、コンポーネントが割り当てられるセキュリティゾーンおよびゾーンに関連付けられたセキュリティレベルに基づいて決定される。したがって、セキュリティゾーンおよびそれらの関連付けられたセキュリティレベルは、クラウドインフラストラクチャシステム１００におけるコンポーネント間の情報の転送を制御する。クラウドインフラストラクチャシステム１００における１つ以上のコンポーネント間のインタラクションを安全な態様で容易にするセキュリティゾーンベースのセキュリティインフラストラクチャ９００が規定される。
【０１９２】
一実施例では、セキュリティゾーンベースのセキュリティインフラストラクチャ９００は、セキュリティゾーンおよびセキュリティレベルに基づいて、互いの間で情報を転送したい１つ以上のコンポーネント間のインタラクションを容易にするための１つ以上の規則の組を規定する。
【０１９３】
図１２Ｂは、本発明の実施例に係るセキュリティゾーンベースのセキュリティインフラストラクチャ１３００を示す。一実施例では、セキュリティインフラストラクチャシステム１３００は、クラウドインフラストラクチャシステム１００における１つ以上のコンポーネント間のインタラクションを制御するために使用される。図１２Ｂに示されるように、一実施例では、セキュリティインフラストラクチャシステム１３００は、セキュリティ層コンポーネント１３０６と、セキュリティ層コンポーネント１３０６によって使用される情報とを含む。一実施例では、セキュリティ層コンポーネント１３０６によって使用される情報は、コンポーネント−セキュリティゾーンマッピング情報１３０８と、セキュリティゾーン−セキュリティレベルマッピング情報１３１０と、規則情報１３１２とを備える。情報１３０８，１３１０および１３１２は、さまざまな形態で格納されてもよい。例えば、一実施例では、コンポーネント−セキュリティゾーン情報１３０８は、コンポーネントを特定する表の１つの列と、各コンポーネントが割り当てられるセキュリティゾーンを特定する表の第２の列とを有する表として格納され得る。同様に、一実施例では、セキュリティゾーン−セキュリティレベル情報１３１０は、セキュリティゾーンを特定する表の１つの列と、各セキュリティゾーンのためのセキュリティレベルを特定する表の第２の列とを有する表として格納され得る。
【０１９４】
一実施例では、セキュリティ層コンポーネント１３０６は、クラウドインフラストラクチャシステム１００における別個のコンポーネントとして提供されてもよい。このような実施例では、ソースコンポーネント１３０２からターゲットコンポーネント１３０４へのインタラクション要求は、セキュリティ層コンポーネント１３０６によって傍受され得る。その結果、セキュリティ層コンポーネント１３０６は、当該要求を処理し、当該処理の結果に基づいて、ソースコンポーネントとターゲットコンポーネントとの間での情報の転送を可能にし得る。
【０１９５】
別の実施例では、セキュリティ層コンポーネント１３０６は、クラウドインフラストラクチャシステム１００における各コンポーネントの一部であってもよい。このような実施例では、ソースコンポーネント１３０２から生じるインタラクション要求は、コンポーネント内のセキュリティ層コンポーネント１３０６に渡され得る。その結果、コンポーネント内のセキュリティ層コンポーネントは、当該要求を処理し、当該処理の結果に基づいて、ソースコンポーネントとターゲットコンポーネントとの間での情報の転送を可能にし得る。
【０１９６】
セキュリティ層コンポーネント１３０６によって実行されるセキュリティ関連の処理については、以下の例を用いて説明することができる。クラウドインフラストラクチャシステム１００において顧客のサブスクリプションオーダーを処理しながらソースコンポーネント１３０２がターゲットコンポーネント１３０４に情報を転送したい状況を考える。ソースコンポーネント１３０２は、ターゲットコンポーネント１３０４に情報を転送するための要求を生成し得る。セキュリティ層コンポーネント１３０６は、この要求を受取るまたは傍受するように構成される。当該要求から、セキュリティ層コンポーネント１３０６は、ソースコンポーネントおよびターゲットコンポーネントのアイデンティティを判断する。コンポーネント−セキュリティゾーン情報１３０８を使用して、セキュリティ層コンポーネント１３０６は、ソースコンポーネント１３０２が属するセキュリティゾーン（ソースセキュリティゾーンと称される）およびターゲットコンポーネント１３０４が属するセキュリティゾーン（ターゲットセキュリティゾーンと称される）を決定する。次いで、セキュリティ層コンポーネント１３０６は、ソースセキュリティゾーンのためのセキュリティレベル（ソースセキュリティレベルと称される）およびターゲットセキュリティゾーンのためのセキュリティレベル（ターゲットセキュリティレベルと称される）を決定するために、セキュリティゾーン−セキュリティレベルマッピング情報１３１０を使用する。
【０１９７】
ソースセキュリティレベルおよびターゲットセキュリティレベルが特定されると、セキュリティ層コンポーネント１３０６は、ソースコンポーネントとターゲットコンポーネントとの間のインタラクションを制御するためにセキュリティ規則情報１３１２を調べる。特定の実施例では、セキュリティ規則情報１３１２は、ソースコンポーネントとターゲットコンポーネントとの間での情報の転送に影響を及ぼすさまざまな規則を規定し得る。一実施例では、以下に詳細に記載されるように、当該規則は、いつ１つのセキュリティレベルから別のセキュリティレベルに情報を押し付けることが許可されるか、および、いつ１つのセキュリティレベルによって別のセキュリティレベルから情報を引っ張ってくることが許可されるかを規定する。したがって、規則は、クラウドインフラストラクチャシステム１００内の１つ以上のコンポーネントのためのプッシュ・プル型通信モデルに基づいて規定され得る。プッシュ・プル規則は、安全でないゾーンからより安全なゾーンへの情報の転送を保護するよう意図されている。より高いセキュリティゾーン内のコンポーネントは、より低いセキュリティゾーン内のコンポーネントに情報を押し付け、より低いセキュリティゾーン内のコンポーネントから情報を引っ張ってくる。より低いセキュリティゾーン内のコンポーネントは、より高いセキュリティゾーン内のコンポーネントによって管理されるデータへの直接的な読取りまたは書込みアクセスを有していないかもしれない。同一のセキュリティゾーン内のコンポーネントは、互いに対して読取りまたは書込みアクセスを有し得る。
【０１９８】
一実施例では、ソースコンポーネントとターゲットコンポーネントとの間での情報の転送に影響を及ぼす一組の規則は、以下の通りである：
・ターゲットコンポーネントが、ソースコンポーネントのセキュリティゾーンのセキュリティレベルよりも低いセキュリティレベルを有するセキュリティゾーンにある場合、または、ターゲットコンポーネントが、ソースコンポーネントのセキュリティゾーンのセキュリティレベルと同一のセキュリティレベルを有するセキュリティゾーンにある場合、ソースコンポーネントは、情報をターゲットコンポーネントに押し付ける。
・ターゲットコンポーネントが、ソースコンポーネントのセキュリティゾーンのセキュリティレベルよりも高いセキュリティレベルを有するセキュリティゾーンにある場合、ソースコンポーネントは、ソースコンポーネントの出力キューに情報を書込むことなどによって情報を公開し、次いで、ターゲットコンポーネントは、この情報を出力キューから引っ張ってくることができる。
【０１９９】
特定の実施例では、クラウドインフラストラクチャシステム内のコンポーネントは、それらのセキュリティレベルに基づいて互いに対して読取り／書込みアクセスを有する。これらの読取り／書込みオペレーションは、適切なＡＰＩを介して実行され得る。一実施例では、ソースコンポーネントがターゲットコンポーネントに情報を転送したいと思い、ソースコンポーネントのセキュリティレベルがターゲットコンポーネントのセキュリティレベルよりも高い場合、ソースコンポーネントは、ターゲットコンポーネントに情報を押し付ける。このような状況では、ソースコンポーネントは、ターゲットコンポーネントの同期書込みＡＰＩを呼出す。一例として、ソースコンポーネント１３０２は、情報をターゲットコンポーネント１３０４に押し付けるためにターゲットコンポーネント１３０４のウェブサービスＡＰＩまたはＰＬ／ＳＱＬ  ＡＰＩを呼出してもよい。別の例として、ソースコンポーネント１３０２は、ターゲットコンポーネント１３０４におけるキューに情報を公開することなどによって非同期の態様で情報をターゲットコンポーネント１３０４に押し付けてもよい。
【０２００】
別の実施例では、ソースコンポーネントがターゲットコンポーネントから情報を得る必要があり、ターゲットコンポーネントのセキュリティレベルがソースコンポーネントのセキュリティレベルよりも低いか、またはターゲットコンポーネントのセキュリティレベルがソースコンポーネントのセキュリティレベルと同一である場合、ソースコンポーネントは、ターゲットコンポーネントの同期読取りＡＰＩを呼出すことによって、ターゲットコンポーネントから情報を引っ張ってくる。一例では、ソースコンポーネントは、ターゲットコンポーネントのウェブサービスまたはＰＬ／ＳＱＬ  ＡＰＩを呼出し得る。ターゲットコンポーネントのセキュリティレベルがソースコンポーネントのセキュリティレベルよりも高い場合、ソースコンポーネントは、ソースコンポーネントの出力キューなどにおいてその情報の要求を公開し、ターゲットコンポーネントは、ソースコンポーネントによって公開されたこの要求を引っ張ってきて、次いで要求された情報をソースコンポーネントに押し付ける。
【０２０１】
一例として、クラウドインフラストラクチャシステム１００において顧客のサブスクリプションオーダーを処理している間の、オーダー管理モジュール２１４におけるコンポーネントとＴＡＳモジュール２０４におけるコンポーネントとの間の例示的なインタラクションを考える。オーダー管理モジュール２１４におけるコンポーネントは、高いセキュリティレベルのセキュリティゾーンに割り当てられる一方、ＴＡＳモジュール２０４におけるコンポーネントは、中程度のセキュリティレベルのセキュリティゾーンに割り当てられる。これは、オーダー管理モジュール２１４におけるコンポーネントとＴＡＳモジュール２０４におけるコンポーネントとの間の全てのインタラクションが、オーダー管理モジュール２１４におけるコンポーネントによって制御されるからである。オーダー管理モジュール２１４におけるコンポーネントは、オーダーを作成し、当該オーダーをＴＡＳモジュール２０４におけるコンポーネントに押込む。ＴＡＳモジュール２０４におけるコンポーネントからオーダー管理モジュール２１４におけるコンポーネントに流れる情報は、ＴＡＳモジュール２０４におけるコンポーネント上のキューに格納され、当該情報は、次いで、オーダー管理モジュール２１４におけるコンポーネントによってこのキューから引っ張ってこられる。
【０２０２】
特定の実施例では、新たなコンポーネントがクラウドインフラストラクチャシステム１００に導入されると、セキュリティインフラストラクチャ１３００は、クラウドインフラストラクチャシステム１００の管理者が既存のセキュリティゾーンのうちの１つをコンポーネントに割り当てるか、またはコンポーネントについての関連付けられたセキュリティレベルを有する新たなセキュリティゾーンを作成することも可能にし得る。
【０２０３】
また、セキュリティインフラストラクチャ１３００は、クラウドインフラストラクチャシステム１００の管理者が、コンポーネントとセキュリティゾーンとの間の関連付けを変更し、セキュリティゾーンとセキュリティレベルとのマッピングも変更することを可能にし得る。例えば、コンポーネントの機能群が変化すると、管理者は、コンポーネントを異なるセキュリティゾーンに移動させ得ることが可能である。このように、クラウドインフラストラクチャシステム１００の管理者には、クラウドインフラストラクチャシステム１００のコンポーネント間の情報の流れに対する完全な制御および柔軟性が提供される。
【０２０４】
図１３は、本発明の実施例に係るクラウドインフラストラクチャシステム１００におけるセキュリティインフラストラクチャ１３００によって実行され得る処理を示す簡略化されたフローチャート１３１４を示す。図１３に示される処理は、１つ以上のプロセッサによって実行されるソフトウェア（例えばコード、命令、プログラム）、ハードウェアまたはそれらの組み合わせで実現されてもよい。ソフトウェアは、（例えばメモリ装置、非一時的なコンピュータ読取可能記憶媒体上の）メモリに格納されてもよい。図１３に示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施例に従って実行されてもよい。例えば、本発明の代替的な実施例は、異なる順序で上記のステップを実行してもよい。さらに、図１３に示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施例では、図１３に示される処理は、図１２Ｂに詳細に示されるセキュリティインフラストラクチャ１３００における１つ以上のコンポーネントによって実行され得る。
【０２０５】
１３１６において、クラウドインフラストラクチャシステム１００における第１のコンポーネント（ソースコンポーネントとも称される）と第２のコンポーネント（ターゲットコンポーネントとも称される）との間で情報を転送するための要求が受取られる。
【０２０６】
１３１８において、第１のコンポーネントのための第１のセキュリティゾーンおよび第２のコンポーネントのための第２のセキュリティゾーンが決定される。一実施例では、第１のコンポーネントおよび第２のコンポーネントに割り当てられ得るセキュリティゾーンは、アイデンティティ管理ゾーン、物理的プロビジョニングゾーン、アカウンティングゾーン、テナントゾーンおよび顧客ＵＩゾーンを含んでいてもよい。
【０２０７】
１３２０において、第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルおよび第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルが決定される。一実施例では、セキュリティゾーンに関連付けられたセキュリティレベルは、高いセキュリティレベル、中程度のセキュリティレベルまたは低いセキュリティレベルを含んでいてもよい。
【０２０８】
１３２２において、第１のセキュリティレベル、第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、第１のコンポーネントと第２のコンポーネントとの間での情報の転送が決定される。一実施例では、セキュリティ規則情報は、第１のコンポーネントと第２のコンポーネントとの間での情報の転送に関連する１つ以上の規則を規定する。一実施例では、図１２Ｂに示されるように、ソースコンポーネントがターゲットコンポーネントに情報を転送したいと思い、ソースコンポーネントのセキュリティレベルがターゲットコンポーネントのセキュリティレベルよりも高い場合、ソースコンポーネントは、ターゲットコンポーネントに情報を押し付ける。このような状況では、ソースコンポーネントは、ターゲットコンポーネントの同期書込みＡＰＩを呼出すか、またはターゲットコンポーネントにおけるキューに情報を公開する。一方、ターゲットコンポーネントが、ソースコンポーネントのセキュリティゾーンのセキュリティレベルよりも高いセキュリティレベルを有するセキュリティゾーンにある場合、ソースコンポーネントは、ソースコンポーネントの出力キューに情報を書込むことなどによって情報を公開し、次いで、ターゲットコンポーネントは、この情報を出力キューから引っ張ってくることができる。
【０２０９】
別の実施例では、ソースコンポーネントがターゲットコンポーネントから情報を得る必要があり、ターゲットコンポーネントのセキュリティレベルがソースコンポーネントのセキュリティレベルよりも低いか、またはターゲットコンポーネントのセキュリティレベルがソースコンポーネントのセキュリティレベルと同一である場合、ソースコンポーネントは、ターゲットコンポーネントの同期読取りＡＰＩを呼出すことによってターゲットコンポーネントから情報を引っ張ってくる。一方、ターゲットコンポーネントのセキュリティレベルがソースコンポーネントのセキュリティレベルよりも高い場合、ソースコンポーネントは、ソースコンポーネントの出力キューなどにおいてその情報の要求を公開し、ターゲットコンポーネントは、ソースコンポーネントによって公開されたこの要求を引っ張ってきて、次いで要求された情報をソースコンポーネントに押し付ける。
【０２１０】
図１４は、本発明の実施例に従って使用され得る演算システム１４００の簡略ブロック図である。例えば、クラウドインフラストラクチャシステム１００は、１つ以上の演算装置を備えていてもよい。図１４に示されるシステム１４００は、１つのこのような演算装置の一例であってもよい。バス１４２４を介して電気的に結合され得るハードウェア要素を備えるコンピュータシステム１４００が示されている。ハードウェア要素は、１つ以上の中央演算処理装置（central processing unit：ＣＰＵ）１４０２と、１つ以上の入力装置１４０４（例えばマウス、キーボードなど）と、１つ以上の出力装置１４０６（例えばディスプレイ装置、プリンタなど）とを含んでいてもよい。ＣＰＵは、シングルコアまたはマルチコアＣＰＵを含んでいてもよい。また、コンピュータシステム１４００は、１つ以上の記憶装置１４０８も含んでいてもよい。一例として、記憶装置１４０８は、ディスクドライブ、光学記憶装置、およびランダムアクセスメモリ（random access memory：ＲＡＭ）および／またはリードオンリメモリ（read-only memory：ＲＯＭ）などの、プログラム可能、フラッシュ更新可能などであり得るソリッドステート記憶装置、といった装置を含んでいてもよい。
【０２１１】
さらに、コンピュータシステム１４００は、コンピュータ読取可能記憶媒体リーダ１４１２と、通信サブシステム１４１４（例えばモデム、ネットワークカード（無線または有線）、赤外線通信装置など）と、上記のＲＡＭおよびＲＯＭ装置を含み得るワーキングメモリ１４１８とを含んでいてもよい。いくつかの実施例では、コンピュータシステム１４００は、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）、特殊用途プロセッサなどを含み得る処理加速ユニット１４１６も含んでいてもよい。
【０２１２】
さらに、コンピュータ読取可能記憶媒体リーダ１４１２は、ともに（および任意に、記憶装置１４０８と組み合わせて）一時的および／またはより永久的にコンピュータ読取可能な情報を含むためのリモートの、ローカルの、固定されたおよび／または取外し可能な記憶装置プラス記憶媒体を包括的に表わすコンピュータ読取可能記憶媒体１４１０に接続可能である。通信システム１４１４は、ネットワーク１４２４および／またはシステム環境１４００に関して上記したその他のコンピュータとデータを遣り取りすることを可能にし得る。
【０２１３】
また、コンピュータシステム１４００は、現在のところワーキングメモリ１４１８内に位置しているように示されているソフトウェア要素も備えていてもよく、当該ソフトウェア要素は、オペレーティングシステム１４２０、および／または、（クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、ＲＤＢＭＳなどであってもよい）アプリケーションプログラムなどの他のコード１４２２を含む。例示的な実施例では、ワーキングメモリ１４１８は、実行可能なコードと、上記の認可要求を処理するために使用されるメモリ構造などの関連付けられたデータ構造とを含んでいてもよい。コンピュータシステム１４００の代替的な実施例は、上記のものからの多数の変更例を有していてもよいということが理解されるべきである。例えば、カスタマイズされたハードウェアも使用されてもよく、および／または、特定の要素がハードウェア、（アプレットなどの高移植性ソフトウェアを含む）ソフトウェアまたはそれら両方で実現されてもよい。さらに、ネットワーク入力／出力装置などの他の演算装置への接続が利用されてもよい。
【０２１４】
図１５は、本発明の実施例に係る電子デバイス１５００である。電子デバイス１５００は、クラウドインフラストラクチャシステムによって提供される１つ以上のサービスについて顧客から受取られたサブスクリプションオーダーに関連するサブスクリプションオーダー情報を格納するように構成された格納ユニット１５０２と、当該サブスクリプションオーダーを供給するために使用されるプロセスを特定するように構成された特定ユニット１５０４とを備えていてもよく、当該プロセスは、サブスクリプションオーダーにおいて特定される１つ以上のサービスのために１つ以上のリソースをプロビジョニングするための１つ以上の実行ステップを備え、電子デバイス１５００はさらに、プロセスに対応する１つ以上の実行ステップのパフォーマンスをオーケストレートするように構成されたオーケストレートユニット１５０６と、サブスクリプションオーダーの状態を示す通知を顧客に送るように構成された送信ユニット１５０８とを備えていてもよい。
【０２１５】
一例では、１つ以上の実行ステップのパフォーマンスをオーケストレートすることは、サブスクリプションオーダーにおいて特定される１つ以上のサービスのために１つ以上のリソースを割り当てることを備える。
【０２１６】
一例では、特定ユニット１５０４はさらに、サブスクリプションオーダーを供給するためのプロセスを決定するために、クラウドインフラストラクチャシステムにアクセス可能なサービスリポジトリにアクセスするように構成される。
【０２１７】
一例では、電子デバイス１５００はさらに、１つ以上のリソースについて使用情報を求めるように構成された算出ユニット１５０３を備え、当該使用情報は、ある期間にわたる１つ以上のリソースの使用を特定し、電子デバイス１５００はさらに、使用情報およびサブスクリプションオーダー情報に基づいて、当該期間における１つ以上のリソースにおける第１のリソースの過剰使用を演算するように構成された演算ユニット１５０５と、過剰使用を示す情報を顧客に提供するように構成された提供ユニット１５０７とを備える。
【０２１８】
一例では、演算ユニット１５０５はさらに、第１のリソースに対応するリソースタイプを決定し、第１のリソースの過剰使用の演算に使用される演算子を決定し、使用情報に含まれる第１のリソースに対応する使用統計に演算子を適用することによって第１のリソースの過剰使用を演算するように構成される。
【０２１９】
一例では、演算ユニット１５０５はさらに、第１のリソースについての超過ユニットの数を求め、超過ユニットの数に対応する超過コストを求めるように構成される。演算ユニット１５０５は、第１のリソースについての超過ユニットの数を求め、超過ユニットの数に対応する超過コストを求めることによって、過剰使用を演算するように構成され得る。演算ユニット１５０５はさらに、顧客のサブスクリプションオーダーに関連付けられたサービスレベルおよび顧客レベルを決定することによって、第１のリソースについての超過ユニットの数および超過ユニットの数に対応する超過コストを求めるように構成される。提供ユニット１５０７はさらに、過剰使用を示す情報を顧客に提供するように構成される。情報を提供することは、第１のリソースについての超過ユニットの数および超過コストを示す通知を顧客に送ることを含んでいてもよい。
【０２２０】
電子デバイス１５００はさらに、サブスクリプションオーダー情報およびプロセスに基づいて、サブスクリプションオーダーについて実行される処理に対応する１つ以上のワークフローの第１の組を特定するように構成された第１のワークフロー特定ユニットと、サブスクリプションオーダー情報およびプロセスに基づいて、サブスクリプションオーダーについて実行される処理に対応する１つ以上のワークフローの第２の組を特定するように構成された第２のワークフロー特定ユニットと、１つ以上のワークフローの第１の組の実行の完了後であって、１つ以上のワークフローの第２の組における少なくとも１つのワークフローの完了前に、クラウドインフラストラクチャシステムを使用して１つ以上のサービスに顧客がアクセスすることを可能にするように構成されたサービスアクセス許可ユニットとを備える。
【０２２１】
電子デバイス１５００はさらに、１つ以上のワークフローの第２の組における少なくとも１つのワークフローと同時に１つ以上のワークフローの第１の組における少なくとも１つのワークフローを実行するように構成されたワークフロー実行ユニットを備える。
【０２２２】
電子デバイス１５００はさらに、クラウドインフラストラクチャシステムのコンポーネントのためにセキュリティゾーンを決定するように構成されたセキュリティゾーン決定ユニットを備え、当該コンポーネントは、１つ以上のリソースをプロビジョニングするためにサブスクリプションオーダーに関連するサブスクリプションオーダー情報にアクセスし、電子デバイス１５００はさらに、第１のセキュリティゾーンに関連付けられたセキュリティレベルを決定するように構成されたセキュリティレベル決定ユニットと、セキュリティレベルに関連付けられたセキュリティ規則に基づいてサブスクライバオーダー情報にコンポーネントがアクセスすることを可能にするように構成されたサブスクライバオーダー情報アクセス許可ユニットとを備える。
【０２２３】
電子デバイス１５００はさらに、クラウドインフラストラクチャシステムの第１のコンポーネントとクラウドインフラストラクチャシステムの第２のコンポーネントとの間でサブスクリプションオーダー情報を転送するための要求を受取るように構成された転送要求ユニットを備え、第１のコンポーネントおよび第２のコンポーネントは、１つ以上の演算装置によって実行される。セキュリティゾーン決定ユニットはさらに、第１のコンポーネントのために第１のセキュリティゾーンを決定し、第２のコンポーネントのために第２のセキュリティゾーンを決定するように構成される。セキュリティレベル決定ユニットはさらに、第１のセキュリティゾーンに関連付けられた第１のセキュリティレベルを決定し、第２のセキュリティゾーンに関連付けられた第２のセキュリティレベルを決定するように構成される。転送要求ユニットはさらに、第１のセキュリティレベル、第２のセキュリティレベルおよびセキュリティ規則情報に基づいて、第１のコンポーネントと第２のコンポーネントとの間でのサブスクリプションオーダー情報の転送を決定するように構成され、当該セキュリティ規則情報は、第１のコンポーネントと第２のコンポーネントとの間でのサブスクリプションオーダー情報の転送に関連する１つ以上の規則を規定する。
【０２２４】
電子デバイス１５００はさらに、クラウドインフラストラクチャシステムのテナント自動化サブシステムにおいて、サブスクリプションオーダーを顧客から受取るように構成された受取ユニットと、サブスクリプションオーダーが発生する地理的領域を求めるように構成された地理的領域算出ユニットと、地理的領域に基づいて、１つ以上の実行ステップのパフォーマンスがオーケストレートされるクラウドインフラストラクチャシステムのテナント自動化サブシステムデータセンタを選択するように構成された選択ユニットとを備える。
【０２２５】
なお、点線によって示されるユニットは任意である。本明細書に開示されているさまざまなユニットは、ハードウェア、ソフトウェアまたはそれらの組み合わせで実現されてもよく、またはそれらによって実行されてもよい。それらは、本明細書に記載されている機能を実行するように設計された汎用シングルチップもしくはマルチチッププロセッサ、ＤＳＰ、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（field programmable gate array：ＦＰＧＡ）もしくは他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタ論理回路、ディスクリートハードウェアコンポーネント、またはそれらの任意の組み合わせで実現されてもよく、またはそれらによって実行されてもよい。汎用プロセッサは、マイクロプロセッサ、または任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。また、プロセッサは、演算装置の組み合わせ、例えばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサの組み合わせ、ＤＳＰコアと併用した１つ以上のマイクロプロセッサの組み合わせ、またはその他のこのような構成として実現されてもよい。いくつかの実現例では、当該ユニットは、所与の機能に特有の回路によって実現されてもよい。
【０２２６】
コードまたはコードの一部を含むための記憶媒体およびコンピュータ読取可能媒体は、記憶媒体および通信媒体を含む当該技術分野において公知のまたは使用される任意の適切な媒体を含み得て、当該媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない。記憶媒体およびコンピュータ読取可能媒体の例としては、所望の情報を格納するために使用可能であり、コンピュータによって読取可能であるＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（digital versatile disk：ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、またはその他のメモリ媒体が挙げられる。記憶媒体およびコンピュータ読取可能媒体は、非一時的なメモリ装置を含んでいてもよい。
【０２２７】
本発明の特定の実施例について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施例は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本発明の実施例について説明してきたが、本発明の範囲が、記載されている一連のトランザクションおよびステップに限定されるものではないということが当業者に明らかであるべきである。
【０２２８】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを使用して本発明の実施例について説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施例は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組み合わせを使用して実現されてもよい。
【０２２９】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、削減、削除ならびに他の変形および変更がそれに対してなされてもよいということは明白であろう。
【図１Ａ】
0006419700.tif 000008
【図１Ｂ】
0006419700.tif 000009
【図２】
0006419700.tif 000010
【図３Ａ】
0006419700.tif 000011
【図３Ｂ】
0006419700.tif 000012
【図４】
0006419700.tif 000013
【図５】
0006419700.tif 000014
【図６】
0006419700.tif 000015
【図７Ａ】
0006419700.tif 000016
【図７Ｂ】
0006419700.tif 000017
【図７Ｃ】
0006419700.tif 000018
【図７Ｄ】
0006419700.tif 000019
【図７Ｅ】
0006419700.tif 000020
【図８】
0006419700.tif 000021
【図９Ａ】
0006419700.tif 000022
【図９Ｂ】
0006419700.tif 000023
【図１０】
0006419700.tif 000024
【図１１Ａ】
0006419700.tif 000025
【図１１Ｂ】
0006419700.tif 000026
【図１１Ｃ】
0006419700.tif 000027
【図１２Ａ】
0006419700.tif 000028
【図１２Ｂ】
0006419700.tif 000029
【図１３】
0006419700.tif 000030
【図１４】
0006419700.tif 000031
【図１５】
0006419700.tif 000032