(57)【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
複数のサービスをサービスインフラストラクチャシステムに提供するステップと、
前記サービスインフラストラクチャシステムによって提供されるサービスへのアクセスの、第１の顧客による要求を、前記サービスインフラストラクチャシステムが受けるステップと、
前記要求に基づいて、アクセスが要求された前記サービスの使用の種類を前記サービスインフラストラクチャシステムが決定するステップと、
前記第１の顧客によって要求された前記サービスの使用の種類に基づいてサブスクリプションの種類を前記サービスインフラストラクチャシステムが決定するステップとを含み、前記サブスクリプションの種類はクローンサブスクリプションまたは再使用可能なサブスクリプションのうちの一方であり、前記サブスクリプションの種類は、前記サービスへのアクセスを、前記サービスが要求される前にプロビジョニングされた、前記複数のサービスのうちの１つのサービスに基づいて可能にし、第１のサービスは前記複数のサービスのうちの１つであり、前記再使用可能なサブスクリプションは、前記サービスへのアクセスを、前記複数のサービスのうちの１つのサービスを、前記第１の顧客によって要求されたサービスとして構成することに基づいて可能にし、前記クローンサブスクリプションは、前記サービスへのアクセスを、前記サービスが要求される前にプロビジョニングされた前記１つのサービスのコンフィギュレーションに従って前記サービスをプロビジョニングすることに基づいて可能にし、
前記サブスクリプションの種類に基づいて、前記使用の種類の前記要求されたサービスを提供するように構成可能な、前記複数のサービスのうちの前記第１のサービスを、前記サービスインフラストラクチャシステムが特定するステップと、
前記サービスにアクセスするためのサブスクリプションを前記サービスインフラストラクチャシステムが前記第１の顧客に提供するステップを含み、前記サービスにアクセスするためのサブスクリプションは、前記サブスクリプションの種類が前記再使用可能なサブスクリプションであるという判断に基づいて、前記第１のサービスを前記サービスとして構成することによって提供され、前記サブスクリプションの種類が前記クローンサブスクリプションであるという判断に基づいて、前記サービスにアクセスするためのサブスクリプションは、前記サービスのための１つ以上のリソースをプロビジョニングし前記サービスを前記第１のサービスのコンフィギュレーションに従って構成することによって提供され、
前記第１の顧客に提供された前記サブスクリプションを前記サービスインフラストラクチャシステムが管理するステップを含む、方法。
【請求項２】
前記複数のサービスのうちの前記第１のサービスは、前記サービスインフラストラクチャシステムによってサービスプール内においてすでにプロビジョニングされているものとして特定される、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記サブスクリプションの種類が前記クローンサブスクリプションであるとき、前記サブスクリプションを前記第１の顧客に提供するステップは、
前記第１のサービスに対する第１のサブスクリプションに基づいて第１のクローンサブスクリプションを確立するステップを含み、前記第１のクローンサブスクリプションは、前記第１の顧客へのサブスクリプションとして提供され、
一組の規則に基づいて前記第１のクローンサブスクリプションを前記第１のサブスクリプションに対応付けるステップを含む、請求項１または２に記載のコンピュータにより実現される方法。
【請求項４】
前記第１のクローンサブスクリプションを前記第１のサブスクリプションに対応付けるステップは、前記第１のクローンサブスクリプションのライフサイクルを前記第１のサブスクリプションのライフサイクルに対応付けるステップを含む、請求項３に記載のコンピュータにより実現される方法。
【請求項５】
前記第１のクローンサブスクリプションによって可能にされるサービスは、前記第１のサービスと異なる第２のサービスであり、前記第２のサービスは前記複数のサービスのうちの１つであり、前記第１の顧客による前記第２のサービスへのアクセスは、前記第１の顧客による前記第１のサービスへのアクセスが終了したときに終了する、請求項４に記載のコンピュータにより実現される方法。
【請求項６】
前記第１の顧客からの要求に基づいて前記第１のサービスへのアクセスを更新するステップと、
前記第１のサービスへの更新された前記アクセスに基づいて前記第２のサービスへのアクセスを修正するステップとをさらに含む、請求項５に記載のコンピュータにより実現される方法。
【請求項７】
前記第１のクローンサブスクリプションは、第２のサービスへのアクセスを提供し、前記第２のサービスは前記複数のサービスのうちの１つであり、前記一組の規則は、前記第１のサービスのクローンとしての前記第２のサービスの使用を示す、請求項３に記載のコンピュータにより実現される方法。
【請求項８】
前記複数のサービスのうちの前記第１のサービスは、前記サービスインフラストラクチャシステムによってサービスプール内においてすでにプロビジョニングされているものとして特定され、
前記複数のサービスのうちの前記第２のサービスへのアクセスの、第２の顧客による要求を受けるステップと、
前記第２のサービスが前記第１のサービスに類似しているという判断に基づいて、前記サービスプールにおいて前記第２のサービスが利用可能であると判断するステップと、
前記サービスプール内の前記第１のサブスクリプションを前記第２の顧客に割当てるステップとを含み、前記第１のサブスクリプションを前記第２の顧客に割当てるステップは、前記第１のサブスクリプションを前記サービスプールから削除するステップを含み、
前記第２の顧客に対応する特定顧客向けデータを、前記第１のサービスに対応する特定サービス向けデータに対応付けるステップを含む、請求項５または７に記載のコンピュータにより実現される方法。
【請求項９】
前記一組の規則は、前記第２のサービスへのアクセスの期間を示す、請求項７に記載のコンピュータにより実現される方法。
【請求項１０】
前記一組の規則は、前記第２のサービスへのアクセスが許可されたユーザの数を示し、前記第２のサービスへのアクセスが許可されたユーザの数は、前記第１のサービスへのアクセスが許可されたユーザの数と異なる、請求項７に記載のコンピュータにより実現される方法。
【請求項１１】
前記一組の規則は前記第２のサービスのコンフィギュレーションを示し、前記第２のサービスの前記コンフィギュレーションは前記第１のサービスの前記コンフィギュレーションと異なる、請求項７に記載のコンピュータにより実現される方法。
【請求項１２】
前記サブスクリプションを管理するステップは、前記第１のサービスの変更に応じて、前記サブスクリプションによる前記要求されたサービスへのアクセスを決定することを含み、前記要求されたサービスへのアクセスは、前記一組の規則を用いて決定される、請求項３に記載のコンピュータにより実現される方法。
【請求項１３】
前記サブスクリプションの種類が前記再使用可能なサブスクリプションであるとき、前記サブスクリプションを前記第１の顧客に提供するステップは、
前記サービスインフラストラクチャシステム内のサービスプールにおいて前記第１のサービスがプロビジョニングされていると判断するステップと、
前記第１のサービスのための第１のサブスクリプションを前記サービスのためのサブスクリプションとして前記第１の顧客に割当てるステップとを含み、前記第１のサブスクリプションを割当てるステップは、前記第１のサービスを前記サービスプールから前記第１の顧客に割当てるステップを含み、前記第１のサービスを前記第１の顧客に割当てるステップは、前記第１のサービスを前記サービスプールから削除するステップを含む、請求項１〜１２のいずれか一項に記載のコンピュータにより実現される方法。
【請求項１４】
特定顧客向けデータを、前記第１のサービスに対応する特定サービス向けデータに対応付けるステップをさらに含み、前記特定顧客向けデータは、前記第１のサービスの前記第１の顧客に対応付けられる、請求項１３に記載のコンピュータにより実現される方法。
【請求項１５】
前記サービスにアクセスするための前記サブスクリプションを管理するステップは、前記サブスクリプションが終了したときに前記第１のサービスを前記第１の顧客から前記サービスプールに割当てるステップを含み、前記第１のサービスを割当てるステップは、前記特定顧客向けデータと、前記第１のサービスに対応する特定サービス向けデータとの対応関係を解除するステップを含み、前記第１のサービスは、前記サービスプールから１以上の他の顧客に再度割当て可能である、請求項１４に記載のコンピュータにより実現される方法。
【請求項１６】
前記第１の顧客に対応付けられた前記特定顧客向けデータは、前記第１の顧客による前記第１のサービスの使用に関連するデータを含む、請求項１４または１５に記載のコンピュータにより実現される方法。
【請求項１７】
前記複数のサービスのうちの各サービスは特定サービス向けデータに対応付けられ、サービスに対応する前記特定サービス向けデータは、前記サービスのコンフィギュレーションを示し、前記コンフィギュレーションは、前記サービスを提供するために割当てられた１つ以上のリソースを含む、請求項１〜１６のいずれか一項に記載のコンピュータにより実現される方法。
【請求項１８】
前記サービスを提供するステップは、前記第１の顧客による要求を受ける前に、前記サービスインフラストラクチャシステムにおいてサービスをプロビジョニングするステップを含み、前記サービスは、前記サービスインフラストラクチャシステムのオペレーションに対応付けられた１つ以上のメトリックに基づいてプロビジョニングされる、請求項１〜１７のいずれか一項に記載のコンピュータにより実現される方法。
【請求項１９】
前記サービスを提供するステップは、前記第１の顧客による要求を受ける前に前記サービスをプロビジョニングするステップを含み、サービスは、前記サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングされる、請求項１〜１８のいずれか一項に記載のコンピュータにより実現される方法。
【請求項２０】
前記サービスを提供するステップは、前記第１の顧客による要求を受ける前に前記サービスをプロビジョニングするステップを含み、サービスは、前記サービスの種類に対応付けられた１つ以上のメトリックに基づいてプロビジョニングされる、請求項１〜１８のいずれか一項に記載のコンピュータにより実現される方法。
【請求項２１】
前記サービスインフラストラクチャシステムはマルチテナント環境を含む、請求項１〜２０のいずれか一項に記載のコンピュータにより実現される方法。
【請求項２２】
前記サービスは、Ｊａｖａ（登録商標）サービス、顧客関係管理（ＣＲＭ）サービス、または人的資源管理（ＨＣＭ）サービスを含む、請求項１〜２１のいずれか一項に記載のコンピュータにより実現される方法。
【請求項２３】
システムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに対して機能的に結合されたメモリとを含み、前記少なくとも１つのプロセッサは、前記メモリに格納されているコンピュータコードを実行することにより、
複数のサービスをサービスインフラストラクチャシステムに提供し、
前記サービスインフラストラクチャシステムによって提供されるサービスへのアクセスの、第１の顧客による要求を受け、
前記要求に基づいて、アクセスが要求された前記サービスの使用の種類を決定し、
前記第１の顧客によって要求された前記サービスの使用の種類に基づいてサブスクリプションの種類を決定し、前記サブスクリプションの種類はクローンサブスクリプションまたは再使用可能なサブスクリプションのうちの一方であり、前記サブスクリプションの種類は、前記サービスへのアクセスを、前記サービスが要求される前にプロビジョニングされた、前記複数のサービスのうちの１つのサービスに基づいて可能にし、第１のサービスは前記複数のサービスのうちの１つであり、前記再使用可能なサブスクリプションは、前記サービスへのアクセスを、前記複数のサービスのうちの１つのサービスを、前記第１の顧客によって要求されたサービスとして構成することに基づいて可能にし、前記クローンサブスクリプションは、前記サービスへのアクセスを、前記サービスが要求される前にプロビジョニングされた前記１つのサービスのコンフィギュレーションに従ってサービスをプロビジョニングすることに基づいて可能にし、
前記サブスクリプションの種類に基づいて、前記使用の種類の前記要求されたサービスを提供するように構成可能な、前記複数のサービスのうちの前記第１のサービスを、特定し、
前記サービスにアクセスするためのサブスクリプションを前記第１の顧客に提供し、前記サービスにアクセスするためのサブスクリプションは、前記サブスクリプションの種類が前記再使用可能なサブスクリプションであるという判断に基づいて、前記第１のサービスを前記サービスとして構成することによって提供され、前記サブスクリプションの種類が前記クローンサブスクリプションであるという判断に基づいて、前記サービスにアクセスするためのサブスクリプションは、前記サービスのための１つ以上のリソースをプロビジョニングし前記サービスを前記第１のサービスのコンフィギュレーションに従って構成することによって提供され、
前記第１の顧客に提供された前記サブスクリプションを管理する、システム。
【請求項２４】
請求項１〜２２のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、以下の出願に関連し、これらの内容全体を、すべての目的のために本明細書に引用により援用する。
【０００２】
（１）２０１２年９月７日に出願され「Tenant Automation System」と題された米国仮出願第６１／６９８，４１３号
（２）２０１２年９月７日に出願され「Service Development Infrastructure」と題された米国仮出願番号第６１／６９８，４５９号
（３）２０１３年３月１４日に出願され「Cloud Infrastructure」と題された米国仮特許出願第６１／７８５，２９９号
（４）２０１３年３月１５日に出願され「Cloud Infrastructure」と題された米国仮出願第６１／７９４，４２７号
（５）２０１３年３月１５日に出願され「Service Association Model」と題された米国仮出願第６１／７９９，４６１号
本願は、２０１２年９月７日に出願され「Shared Identify Management Architecture」と題された米国仮出願第６１／６９８，４６３号の全体を、すべての目的のために本明細書に引用により援用する。
【０００３】
本願は、２０１４年６月１１日に出願され「REUSABLE ANONYMOUS SUBSCRIPTION」と題された米国仮出願第６２／０１０，６１７号に基づく優先権と利益を主張する２０１５年２月１７日に出願され「REUSABLE ANONYMOUS SUBSCRIPTION」と題された米国非仮出願第１４／６２４，３６４号に基づく優先権と利益を主張する。
【０００４】
本願は、２０１４年６月１２日に出願され「RULE BASED SUBSCRIPTION CLONING」と題された米国仮出願第６２／０１１，４００号に基づく優先権と利益を主張する２０１５年２月７日に出願され「RULE BASED SUBSCRIPTION CLONING」と題された米国非仮出願第１４／６２４，３５６号に基づく優先権と利益を主張する。
【０００５】
上記非仮特許出願および仮特許出願の内容全体を、すべての目的のために本明細書に引用により援用する。
【背景技術】
【０００６】
背景
本開示は、コンピュータシステムおよびソフトウェアに関し、より具体的には、クラウド環境におけるサービスのプロビジョニングを容易にし自動化するための技術に関する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
クラウドコンピューティングは、構成可能な演算リソース（たとえばネットワーク、サーバ、記憶装置、アプリケーション、およびサービス）の共有プールに対する簡便なオンデマンドのネットワークアクセスを可能にするモデルである。クラウド（またはネットワーク）を通して提供またはアクセスされるサービスを、クラウドサービスと呼ぶ。契約した顧客がクラウドサービスを利用できるようにするには、クラウドサービスプロバイダが多くの処理を実行する必要がある。その複雑さのために、この処理の多くは依然として手作業で行なわれている。たとえば、このようなクラウドサービスを提供するためにリソースをプロビジョニングすることは、多大な労働力を要するプロセスである可能性がある。
【０００８】
消費者および事業者は、コンピュータネットワーククラウドベースのサービスの使用のオーダーおよびスタートがシームレスであることを期待する。しかしながら、多くのクラウドサービスは、共有し得るリソースのプロビジョニングが必要なので、スタートアップが難しい。たとえば、サーバファーム内のサーバは多数の顧客に対するクラウドサービスを一挙に実行する場合があり、別の顧客を追加するためにはリソースを移す必要があるかもしれない。ユーザが使用を希望するサービスは、ユーザごとに異なり得る。たとえば、クラウド上の生の記憶域だけを希望するユーザもあれば、高度なデータベース記憶域の使用を希望するユーザもある。また、その従業員または顧客向けにクラウド上で実行されるグラフィカルユーザインターフェイス（ＧＵＩ）ソフトウェアの使用を希望する他のユーザもある。
【０００９】
場合によっては、事業者が既存の計算環境（たとえば生産システム）を用いて新たな特徴またはコンポーネントを試用することを希望することがある。しかしながら、これらの事業主は、既存の計算環境を用いて別の環境を実現することによって新たな特徴をテストすることができない場合がある。その結果、事業者は、追加のコンフィギュレーションおよび演算リソースを含む別の環境を実現するためにリソースを消費することになる場合がある。加えて、追加のシステムの実現には、より多くの演算リソースを求めてサービスプロバイダと契約を結ぶための管理手続が伴い得る。追加の計算環境の構築は、事業者によっては法外な費用と多大な時間を要する場合がある。
【００１０】
事業者の中には、彼らのニーズに適合するか否かを判断するためにクラウドベースのサービスの試用を希望する事業者がある。しかしながら、事業者はサービスをテストしたがらない場合がある。なぜなら、そのサービスに対する正規サブスクリプションを確立するためには、そのサブスクリプションによってサービスへのアクセスが可能になるまでに、リソースを構成することを含む追加の重量（heavyweight）プロセスが必要な場合があるからである。正規サブスクリプションを購入した場合、この追加のプロセスによって、事業者がこのサービスをさらに使用しようとするときに遅延が発生し得る。さらに、サービスのテスト中に作成された顧客データは、サービスのテスト後の正規サブスクリプションによるサービスのその後の使用のために保持されるということがない場合がある。事業者は、サービスをテストする一方で、使用する環境を実現することによって正規サブスクリプションに基づくその後の使用のために顧客データを再度生成するのに時間と費用をかけるという負担を負う場合がある。これらの問題のために、事業者によっては、サービスのサブスクリプションの購入前にそのサービスを試用するという柔軟性が与えられないことがある。クラウドサービスのプロバイダは、サービスにサブスクライブする前にこのサービスを試用することに消極的な他の顧客を獲得する機会を失うかもしれない。プロバイダは、別の事業者がサービスの試用を希望するたびに、そのサービス用のリソースを再度プロビジョニングするというタスクを負うことになる場合がある。顧客およびサービスプロバイダは、サービスを可能にしこれらのサービスの使用に関連する顧客データを保持するためのリソースのプロビジョニングに要する時間を短縮する技術から、利益を享受することになるであろう。
【００１１】
当該技術では、より速くより低コストでかつより使用し易いクラウドベースのコンピュータシステムに対する需要がある。
【課題を解決するための手段】
【００１２】
概要
概して、本開示の局面は、クラウドインフラストラクチャシステムによってプロビジョニングされた既存のサービスを用いてサービスへのアクセスをユーザに提供するための技術に関する。より具体的には、既存のサブスクリプションに基づいてサービスへのアクセスのためのサブスクリプションをユーザに提供してもよい。サービスの種類の例は、サービスとしてのソフトウェア（Software as a Service）（ＳａａＳ）カテゴリ、サービスとしてのプラットフォーム（Platform as a Service）（ＰａａＳ）カテゴリ、サービスとしてのインフラストラクチャ（Infrastructure as a Service）（ＩａａＳ）カテゴリ、またはその他の、ハイブリッドサービスを含むサービスのカテゴリを含むが、これらに限定されない。
【００１３】
クラウドインフラストラクチャシステムは、本明細書に記載のさまざまな技術を用いて、既存のサービスに基づいてサービスへのアクセスをユーザに提供し得る。このような技術は、要求されたサービスのためのリソースのプロビジョニングに要する処理時間を短縮することによって、サービスへのアクセスを顧客に提供する際の処理効率を改善することができる。クラウドインフラストラクチャシステムは、ユーザからの要求に基づいてサービスの種類を決定することができ、かつ、既存のサービスについて決定されたプロビジョニングを用いてそのサービスへのアクセスを可能にするサブスクリプションを提供することができる。
【００１４】
いくつかの実施形態において、クラウドインフラストラクチャシステムは、クラウドインフラストラクチャシステムが提供する既存のサービスに対する既存のサブスクリプション（たとえばベースサブスクリプション）に基づいてサブスクリプション（たとえば「クローンサブスクリプション」）を作成することにより、ユーザにサービスを提供し得る。クローンサブスクリプションは、既存のサービスに基づいてサービスへのアクセスをユーザに提供する。ベースサブスクリプションに基づいて複数のクローンサブスクリプションを作成してもよく、各クローンサブスクリプションは、ベースサブスクリプションの既存のサービスに基づいてサービスに対するサブスクリプションを提供する。クローンサブスクリプションを、このクローンサブスクリプションの作成の基になったサブスクリプションに対応付けてもよい。クローンサブスクリプションがこのクローンサブスクリプションの作成の基になったサブスクリプションに対応付けられると、このサブスクリプションのライフサイクルとクローンサブスクリプションが互いに対応付けられるであろう。
【００１５】
説明のための少なくとも１つの例において、クローンサブスクリプションが提供するサービスへのアクセスを、ユーザが示す１つの種類の使用のための追加の環境をサポートするために、提供してもよい。この追加の環境がサポートする使用の種類は、クローンサブスクリプションを確立する基になった既存のサブスクリプションに対応する使用の種類と異なる場合がある。たとえば、ユーザが、ベースサブスクリプションが提供する生産環境のクローンサブスクリプションを要求する場合がある。そうすることによってこの生産環境に基づいた（たとえばこの生産環境のクローンである）テスト環境を確立するのである。このクローンサブスクリプションに対するテスト環境を、新たな特徴をその生産環境にデプロイする前にクローン環境においてテストできるよう、要求してもよい。
【００１６】
いくつかの実施形態において、クラウドインフラストラクチャシステムは、クラウドインフラストラクチャシステムがプロビジョニングしたサービスをさまざまなユーザが匿名で再使用できるようにする技術を実現し得る。このシステムは「再使用可能な匿名サブスクリプション（reusable anonymous subscription）」（ＲＡＳ）と呼ばれるサブスクリプションを構成し得る。ＲＡＳは、サービスに対する正規サブスクリプションの取得前に、システムが提供するこのサービスへのアクセスを、ユーザに提供し得る。ＲＡＳがアクセスできるサービスは既にプロビジョニングされていてもよい。クラウドインフラストラクチャシステムは、ＲＡＳの１つ以上のプールを構成し得る。各ＲＡＳは、予めプロビジョニングされたサービスに対する再使用可能なサブスクリプションを提供する。サービスがユーザから要求されると、このサービスに対するＲＡＳをプールからユーザに割当ててこのサービスにアクセスできるようにしてもよい。
【００１７】
ユーザがＲＡＳを正規サブスクリプションに変換しないことに決めた場合、ＲＡＳを、このＲＡＳに対してプロビジョニングしたサービスの再使用のためにプールに戻す。このＲＡＳに対してプロビジョニングしたサービスは、ＲＡＳをプールに戻したときにもプロビジョニングされたままにしておくことで、このサービスに対する新たなリソースのプロビジョニングに要する時間を最短するとともにリソースの使用量を最大にする。ＲＡＳは、前のユーザがＲＡＳを正規サブスクリプションに変換しない場合は別のユーザに再度割当ててもよい。
【００１８】
ユーザがＲＡＳを正規サブスクリプションに変換することに決めた場合、ＲＡＳはプールに戻さなくてよい。ＲＡＳは、軽量（lightweight）変換プロセスを用いて正規サブスクリプションに変換し得る。ＲＡＳが提供するサービスは既にプロビジョニングされているので、変換プロセスは軽量でありサービスを再度プロビジョニングする必要はないであろう。変換プロセスは、ＲＡＳに対して既にプロビジョニングされているサービスの使用の定期サブスクリプションが割当てられたアカウントを確立してもよい。いくつかの実施形態において、ＲＡＳが提供するサービスの使用中に生成された特定顧客向けデータを、このサービスに関連する特定サービス向けデータから分離してもよい。ＲＡＳが正規サブスクリプションに変換される場合、特定顧客向けデータを保持しこの正規サブスクリプションに対応付けてもよい。このため、正規サブスクリプションが提供されたユーザは、ＲＡＳを通したサービスの使用中に作成された既存の特定顧客向けデータを用いてサービスの使用を継続してもよい。
【００１９】
少なくとも１つの実施形態において、クラウドインフラストラクチャシステムがプロビジョニングした既存のサービスを用いてサービスへのアクセスをユーザに提供する技術が開示される。１つの技術は演算システムによって実現できる方法である。この演算システムはサービスインフラストラクチャシステムに含まれていてもよい。サービスインフラストラクチャシステムは、クラウドインフラストラクチャシステムによって実現し得る。サービスインフラストラクチャシステムは、マルチテナント環境を含み得る。この方法は、複数のサービスをサービスインフラストラクチャシステムに提供することを含み得る。サービスは、Ｊａｖａ（登録商標）サービス、顧客関係管理（customer relationship management）（ＣＲＭ）サービス、または人的資源管理（human capital management）（ＨＣＭ）サービスを含み得る。これらのサービスのうちの各サービスを特定サービス向けデータに対応付けてもよい。あるサービスに対応する特定サービス向けエータは、このサービスの構成を示していてもよく、この構成は、このサービスを提供するために割当てられた１つ以上のリソースを含み得る。この方法は、複数のサービスをサービスインフラストラクチャシステムに提供することを含み得る。この方法は、サービスインフラストラクチャシステムが提供するサービスへのアクセスの要求を第１の顧客から受けることを含み得る。この方法は、第１の顧客によって要求されたサービスに基づいてサブスクリプションの種類を決定することを含み得る。サブスクリプションの種類は、クローンサブスクリプションまたは再使用可能なサブスクリプションのうちの一方であってもよい。この方法は、サービスにアクセスするためのサブスクリプションを第１の顧客に提供することを含み得る。サブスクリプションは、サブスクリプションの種類に基づいて提供されてもよく、複数のサービスのうちの第１のサービスを用いて提供されてもよい。この方法は、第１の顧客に提供されたサブスクリプションを管理することを含み得る。
【００２０】
いくつかの実施形態において、第１の顧客による要求は、顧客によるサービスの使用の種類を示していてもよく、サブスクリプションの種類は、上記要求によって示される使用の種類に基づいて決定されてもよい。
【００２１】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、第１のサービスに対する第１のサブスクリプションに基づいて第１のクローンサブスクリプションを確立することを含み、第１のクローンサブスクリプションは、第１の顧客へのサブスクリプションとして提供され、サブスクリプションを第１の顧客に提供することは、一組の規則に基づいて第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることを含む。
【００２２】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることは、第１のクローンサブスクリプションのライフサイクルを第１のサブスクリプションのライフサイクルに対応付けることを含み得る。クローンサブスクリプションは、第２のサービスへのアクセスを提供してもよく、顧客による第２のサービスへのアクセスは、顧客による第１のサービスへのアクセスが終了したときに終了してもよい。サブスクリプションの種類がクローンサブスクリプションであるとき、この方法はさらに、顧客からの要求に基づいて第１のサービスへのアクセスを更新することと、第１のサービスへの更新されたアクセスに基づいて第２のサービスへのアクセスを修正することとを含み得る。
【００２３】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、第１のクローンサブスクリプションは、第２のサービスへのアクセスを提供してもよく、一組の規則は、第１のサービスのクローンとしての第２のサービスの使用を示していてもよい。一組の規則は、第２のサービスへのアクセスの期間を示していてもよい。一組の規則は、第２のサービスへのアクセスが許可されたユーザの数を示していてもよく、第２のサービスへのアクセスが許可されたユーザの数は、第１のサービスへのアクセスが許可されたユーザの数と異なっていてもよい。一組の規則は第２のサービスのコンフィギュレーションを示していてもよく、第２のサービスのコンフィギュレーションは第１のサービスのコンフィギュレーションと異なっていてもよい。
【００２４】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを管理することは、第１のサービスの変更に応じて、サブスクリプションによる要求されたサービスへのアクセスを決定することを含み得る。要求されたサービスへのアクセスは、一組の規則を用いて決定されてもよい。
【００２５】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、サービスインフラストラクチャシステム内のサービスプールにおいて第１のサービスがプロビジョニングされていると判断することと、サービスプールにおいてサブスクリプションに対する第１のサービスがプロビジョニングされていないと判断したときは、サービスプールにおいて第１のサブスクリプションに対する第１のサービスをプロビジョニングすることと、第１のサービスのための第１のサブスクリプションをサービスのためのサブスクリプションとして顧客に割当てることとを含む。第１のサブスクリプションを割当てることは、第１のサービスをサービスプールから顧客に割当てることを含み得る。第１のサービスを顧客に割当てることは、第１のサービスをサービスプールから削除することを含み得る。
【００２６】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、この方法は、特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付けることを含み得る。第１の顧客に対応付けられた特定顧客向けデータは、顧客による第１のサービスの使用に関連するデータを含み得る。サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サービスにアクセスするためのサブスクリプションを管理することは、サブスクリプションが終了したときに第１のサービスをサービスプールに割当てることを含み得る。第１のサービスを割当てることは、特定顧客向けデータと、第１のサービスに対応する特定サービス向けデータとの対応関係を解除することを含み得る。第１のサービスは、サービスプールから１以上の他の顧客に再度割当てることが可能であってもよい。いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、この方法は、複数のサービスのうちの第２のサービスへのアクセスの、第２の顧客による要求を受けることと、第２のサービスが第１のサービスに類似しているという判断に基づいて、サービスプールにおいて第２のサービスが利用可能であると判断することと、サービスプール内の第１のサブスクリプションを第２の顧客に割当てることとを含み、第１のサブスクリプションを第２の顧客に割当てることは、第１のサブスクリプションをサービスプールから削除することを含み、上記方法はさらに、第２の顧客に対応する特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付けることを含む。
【００２７】
いくつかの実施形態において、サービスを提供することは、第１の顧客による要求を受ける前に、クラウドインフラストラクチャシステムにおいてサービスをプロビジョニングすることを含み得る。サービスは、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。サービスは、サービスの種類に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。
【００２８】
少なくとも１つの実施形態において、クラウドインフラストラクチャシステムによってプロビジョニングされた既存のサービスを用いてサービスへのアクセスをユーザに提供するための技術が開示される。ある技術は、少なくとも１つのプロセッサとこの少なくとも１つのプロセッサに対して機能的に結合されたメモリとを含むシステムである。このシステムはサービスインフラストラクチャシステムに含まれていてもよい。このサービスインフラストラクチャシステムはマルチテナント環境を含み得る。メモリはコンピュータコードを格納していてもよい。コンピュータコードは、システムの上記少なくとも１つのプロセッサによって、複数のサービスをサービスインフラストラクチャシステムに提供するために実行されてもよい。サービスは、Ｊａｖａ（登録商標）サービス、顧客関係管理（ＣＲＭ）サービス、または人的資源管理（ＨＣＭ）サービスを含み得る。これらのサービスのうちの各サービスは特定サービス向けデータに対応付けてもよい。サービスに対応する特定サービス向けデータは、サービスについてのコンフィギュレーションを示していてもよく、コンフィギュレーションは、サービスを提供するために割当てられた１つ以上のリソースを含み得る。
【００２９】
上記少なくとも１つのプロセッサは、メモリに格納されたコンピュータコードを実行することにより、サービスインフラストラクチャシステムによって提供されるサービスへのアクセスの、第１の顧客による要求を受ける。上記少なくとも１つのプロセッサは、メモリに格納されたコンピュータコードを実行することにより、第１の顧客が要求するサービスに基づいてサブスクリプションの種類を決定する。サブスクリプションの種類は、クローンサブスクリプションまたは再使用可能なサブスクリプションのうちの一方であってもよい。少なくとも１つのプロセッサは、メモリに格納されたコンピュータコードを実行することにより、サービスにアクセスするためのサブスクリプションを第１の顧客に提供する。サブスクリプションは、サブスクリプションの種類に基づいて提供されてもよく、複数のサービスのうちの第１のサービスを用いて提供されてもよい。上記少なくとも１つのプロセッサは、メモリに格納されたコンピュータコードを実行することにより、第１の顧客に提供されるサブスクリプションを管理する。
【００３０】
いくつかの実施形態において、第１の顧客による要求は、顧客によるサービスの使用の種類を示していてもよく、サブスクリプションの種類を、上記要求が示す使用の種類に基づいて決定してもよい。
【００３１】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、第１のサービスに対する第１のサブスクリプションに基づいて第１のクローンサブスクリプションを確立することを含み、第１のクローンサブスクリプションは第１の顧客に対するサブスクリプションとして提供され、サブスクリプションを第１の顧客に提供することは、一組の規則に基づいて第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることを含む。
【００３２】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることは、第１のクローンサブスクリプションのライフサイクルを第１のサブスクリプションのライフサイクルに対応付けることを含み得る。クローンサブスクリプションは第２のサービスへのアクセスを提供してもよく、第２のサービスへの顧客によるアクセスは、第１のサービスへの顧客によるアクセスが終了したときに終了してもよい。サブスクリプションの種類がクローンサブスクリプションであるとき、上記少なくとも１つのプロセッサは、メモリに格納されているコンピュータコードを実行することにより、顧客からの要求に基づいて第１のサービスへのアクセスを更新し、更新された第１のサービスへのアクセスに基づいて第２のサービスへのアクセスを修正する。
【００３３】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、第１のクローンサブスクリプションは第２のサービスへのアクセスを提供してもよく、一組の規則は、第２のサービスを第１のサービスのクローンとして使用することを示していてもよい。一組の規則は、第２のサービスへのアクセスの期間を示していてもよい。一組の規則は、第２のサービスへのアクセスが許可されたユーザの数を示していてもよく、第２のサービスへのアクセスが許可されたユーザの数は、第１のサービスへのアクセスが許可されたユーザの数と異なっていてもよい。一組の規則は第２のサービスのコンフィギュレーションを示していてもよく、第２のサービスのコンフィギュレーションは第１のサービスのコンフィギュレーションと異なっていてもよい。
【００３４】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを管理することは、第１のサービスの変更に応じて、サブスクリプションによる要求されたサービスへのアクセスを決定することを含み得る。要求されたサービスへのアクセスは一組の規則を用いて決定してもよい。
【００３５】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、サービスインフラストラクチャシステム内のサービスプールにおいて第１のサービスがプロビジョニングされていると判断することと、サブスクリプションに対する第１のサービスがサービスプールにおいてプロビジョニングされていないと判断したときに第１のサブスクリプションに対する第１のサービスをサービスプールにおいてプロビジョニングすることと、第１のサービスに対する第１のサブスクリプションを、サービスのサブスクリプションとして顧客に割当てることとを含む。第１のサブスクリプションを割当てることは、第１のサービスをサービスプールから顧客に割当てることを含み得る。第１のサービスを顧客に割当てることは、第１のサービスをサービスプールから削除することを含み得る。
【００３６】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、上記少なくとも１つのプロセッサは、メモリに格納されているコンピュータコードを実行することにより、特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付ける。特定顧客向けデータは、第１のサービスの顧客に対応付けられる。第１の顧客に対応付けられた特定顧客向けデータは、顧客による第１のサービスの使用に関連するデータを含み得る。サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サービスにアクセスするためのサブスクリプションを管理することは、サブスクリプションが終了したときに第１のサービスを顧客からサービスプールに割当てることを含み得る。第１のサービスを割当てることは、特定顧客向けデータと、第１のサービスに対応する特定サービス向けデータとの対応関係を解除することを含み得る。第１のサービスは、サービスプールから１つ以上の他の顧客に再度割当てることが可能であってもよい。いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、上記少なくとも１つのプロセッサは、メモリに格納されているコンピュータコードを実行することにより、複数のサービスのうちの第２のサービスへのアクセスの、第２の顧客による要求を受け、第２のサービスが第１のサービスに類似しているという判断に基づいて、サービスプールにおいて第２のサービスが利用可能であると判断し、第２のプール内の第２のサブスクリプションを第２の顧客に割当て、第１のサブスクリプションを第２の顧客に割当てることは、第１のサブスクリプションをサービスプールから削除することを含み、第２の顧客に対応する特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付ける。
【００３７】
いくつかの実施形態において、サービスを提供することは、第１の顧客による要求を受ける前に、サービスをクラウドインフラストラクチャシステムにおいてプロビジョニングすることを含み得る。サービスは、サービスインフラストラクチャシステムの動作に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。サービスを提供することは、第１の顧客による要求を受ける前に、サービスをプロビジョニングすることを含み得る。サービスは、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。
【００３８】
少なくとも１つの実施形態において、クラウドインフラストラクチャシステムによってプロビジョニングされた既存のサービスを用いてサービスへのアクセスをユーザに提供するための技術が開示される。ある技術は、コンピュータシステムのプロセッサによって実行可能な命令を格納する非一時的なコンピュータ読取可能な媒体である。この非一時的なコンピュータ読取可能な媒体は、サービスインフラストラクチャシステムに含まれていてもよい。サービスインフラストラクチャシステムはマルチテナント環境を含み得る。非一時的なコンピュータ読取可能な媒体に格納されている命令は、サービスインフラストラクチャシステムに複数のサービスを提供するためにプロセッサによって実行可能である。サービスは、Ｊａｖａ（登録商標）サービス、顧客関係管理（ＣＲＭ）サービス、または人的資源管理（ＨＣＭ）サービスを含み得る。これらのサービスのうちの各サービスは特定サービス向けデータに対応付けられてもよい。サービスに対応する特定サービス向けデータは、サービスについてのコンフィギュレーションを示していてもよく、コンフィギュレーションは、サービスを提供するために割当てられた１つ以上のリソースを含み得る。
【００３９】
非一時的なコンピュータ読取可能な媒体が格納する命令を、プロセッサが実行することにより、サービスインフラストラクチャシステムが提供するサービスへのアクセスの、第１の顧客による要求を受けることができる。非一時的なコンピュータ読取可能な媒体が格納する命令を、プロセッサが実行することにより、第１の顧客が要求するサービスに基づいてサブスクリプションの種類を決定することができる。サブスクリプションの種類は、クローンサブスクリプションまたは再使用可能なサブスクリプションのうちのいずれか一方であってもよい。非一時的なコンピュータ読取可能な媒体が格納する命令を、プロセッサが実行することにより、サービスにアクセスするためのサブスクリプションを第１の顧客に提供することができる。サブスクリプションはサブスクリプションの種類に基づいて提供してもよく、複数のサービスのうちの第１のサービスを用いて提供してもよい。非一時的なコンピュータ読取可能な媒体が格納する命令を、プロセッサが実行することにより、第１の顧客に提供されるサブスクリプションを管理してもよい。
【００４０】
いくつかの実施形態において、第１の顧客による要求は、顧客によるサービスの使用の種類を示していてもよく、サブスクリプションの種類は、要求が示す使用の種類に基づいて判断してもよい。
【００４１】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、第１のサービスに対する第１のサブスクリプションに基づいて第１のクローンサブスクリプションを確立することを含み、第１のクローンサブスクリプションは、第１の顧客に対するサブスクリプションとして提供され、サブスクリプションを第１の顧客に提供することは、一組の規則に基づいて第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることを含む。
【００４２】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることは、第１のクローンサブスクリプションのライフサイクルを第１のサブスクリプションのライフサイクルに対応付けることを含み得る。クローンサブスクリプションは第２のサービスへのアクセスを提供してもよく、第２のサービスへの顧客によるアクセスは、第１のサービスへの顧客によるアクセスが終了したときに終了してもよい。サブスクリプションの種類がクローンサブスクリプションであるとき、非一時的なコンピュータ読取可能な媒体が格納する命令をプロセッサが実行することにより、顧客からの要求に基づいて第１のサービスへのアクセスを更新し、更新された第１のサービスへのアクセスに基づいて第２のサービスへのアクセスを修正する。
【００４３】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、第１のクローンサブスクリプションは第２のサービスへのアクセスを提供してもよく、一組の規則は、第２のサービスを第１のサービスのクローンとして使用することを示していてもよい。一組の規則は、第２のサービスへのアクセスの期間を示していてもよい。一組の規則は、第２のサービスへのアクセスが許可されたユーザの数を示していてもよく、第２のサービスへのアクセスが許可されたユーザの数は、第１のサービスへのアクセスが許可されたユーザの数と異なっていてもよい。一組の規則は第２のサービスのコンフィギュレーションを示していてもよく、第２のサービスのコンフィギュレーションは第１のサービスのコンフィギュレーションと異なっていてもよい。
【００４４】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを管理することは、第１のサービスの変更に応じて、サブスクリプションによる要求されたサービスへのアクセスを決定することを含み得る。要求されたサービスへのアクセスは、一組の規則を用いて決定してもよい。
【００４５】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、サービスインフラストラクチャシステム内のサービスプールにおいて第１のサービスがプロビジョニングされていると判断することと、サブスクリプションに対する第１のサービスがサービスプールにおいてプロビジョニングされていないと判断したときに、第１のサブスクリプションに対する第１のサービスをサービスプールにおいてプロビジョニングすることと、第１のサービスに対する第１のサブスクリプションを、サービスのサブスクリプションとして顧客に割当てることとを含む。第１のサブスクリプションを割当てることは、第１のサービスをサービスプールから顧客に割当てることを含み得る。第１のサービスを顧客に割当てることは、第１のサービスをサービスプールから削除することを含み得る。
【００４６】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、非一時的なコンピュータ読取可能な媒体が格納する命令をプロセッサが実行することにより、特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付ける。特定顧客向けデータは第１のサービスの顧客に対応付けられる。第１の顧客に対応付けられた特定顧客向けデータは、顧客による第１のサービスの使用に関連するデータを含み得る。サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サービスにアクセスするためのサブスクリプションを管理することは、サブスクリプションが終了したときに第１のサービスを顧客からサービスプールに割当てることを含み得る。第１のサービスを割当てることは、特定顧客向けデータと、第１のサービスに対応する特定サービス向けデータとの対応関係を解除することを含み得る。第１のサービスは、サービスプールから１つ以上の他の顧客に再度割当てることが可能であってもよい。いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、非一時的なコンピュータ読取可能な媒体が格納する命令をプロセッサが実行することにより、複数のサービスのうちの第２のサービスへのアクセスの、第２の顧客による要求を受け、第２のサービスが第１のサービスに類似しているという判断に基づいて、サービスプールにおいて第２のサービスが利用可能であると判断し、第２のプールにおける第２のサブスクリプションを第２の顧客に割当て、第１のサブスクリプションを第２の顧客に割当てることは、第１のサブスクリプションをサービスプールから削除することを含み、第２の顧客に対応する特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付ける。
【００４７】
いくつかの実施形態において、サービスを提供することは、第１の顧客による要求を受ける前に、クラウドインフラストラクチャシステムにおいてサービスをプロビジョニングすることを含み得る。サービスは、サービスインフラストラクチャシステムの動作に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。サービスを提供することは、第１の顧客による要求を受ける前に、サービスをプロビジョニングすることを含み得る。サービスは、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。
【００４８】
さらに他の実施形態は、動作を実行するための命令および／またはコードを使用または格納して本明細書に記載の技術を実現する、システムおよびマシン読取可能な有形の記憶媒体に関する。
【００４９】
上記概要は、クレームされている主題の重要または本質的な特徴を特定することを意図したものでも、クレームされている主題の範囲を求めるために単独で使用されることが意図されたものでもない。主題は、この特許の明細書全体、図面のうちのいずれかまたはすべての図面、および各請求項の内の適切な部分を参照することで理解されるはずである。
【００５０】
以下の詳細な説明と添付の図面により、本発明の性質と利点がより十分に理解されるであろう。
【００５１】
本発明を説明するための実施形態を、添付の図面を参照しながら以下で詳細に説明する。
【図面の簡単な説明】
【００５２】
【図１Ａ】本発明の一実施形態に従うクラウドインフラストラクチャシステムの論理図である。
【図１Ｂ】本発明の実施形態に従うクラウドインフラストラクチャシステムを実現するために使用し得るハードウェア／ソフトウェアスタックの簡略化したブロック図である。
【図２】図１Ａに示すクラウドインフラストラクチャシステムを実現するためのシステム環境の簡略化したブロック図である。
【図３Ａ】本発明の実施形態に従うクラウドインフラストラクチャシステムにおけるＴＡＳモジュールが実行し得る処理を示す簡略化したフローチャート３００を示す。
【図３Ｂ】本発明の実施形態に従うクラウドインフラストラクチャシステムにおけるＴＡＳモジュール内の１つ以上のサブモジュールの簡略化した高レベルの図を示す。
【図４】本発明の実施形態に従うＴＡＳコンポーネントの典型的な分散デプロイメントを示す。
【図５】本発明の実施形態に従うクラウドインフラストラクチャシステムにおけるＳＤＩモジュールと１つ以上のモジュールとのインタラクションを説明する簡略化したブロック図である。
【図６】本発明の実施形態に従うＳＤＩモジュールのサブモジュールの簡略化した高レベルの図を示す。
【図７Ａ】本発明の実施形態に従うクラウドインフラストラクチャシステムにおけるＳＤＩコンポーネントが実行し得る処理を示す簡略化したフローチャートを示す。
【図７Ｂ】本発明の実施形態に従うＮｕｖｉａｑシステム７１０の高レベルアーキテクチャと、このシステムと他のクラウドインフラストラクチャコンポーネントとの関係とを示す簡略化したブロック図を示す。
【図７Ｃ】本発明の実施形態に従うＮｕｖｉａｑシステムを用いるプロビジョニングプロセスのステップを説明する代表的なシーケンス図を示す。
【図７Ｄ】本発明の実施形態に従うＮｕｖｉａｑシステムを用いるデプロイメントプロセスのステップを説明する代表的なシーケンス図を示す。
【図７Ｅ】本発明の実施形態に従うデータベースサービスのためにプロビジョニングされたデータベースインスタンスの一例を示す。
【図８Ａ】本発明のいくつかの実施形態に従う再使用可能な匿名サブスクリプションを提供するためのシステム環境の簡略化したブロック図を示す。
【図８Ｂ】本発明のいくつかの実施形態に従う再使用可能な匿名サブスクリプションを実現するためのデータ構造の一例を示す。
【図８Ｃ】さまざまな実施形態に従う再使用可能な匿名サブスクリプションのライフサイクルを管理するためのプロセスのフローチャートである。
【図９Ａ】本発明のいくつかの実施形態に従うクローンサブスクリプションを提供するためのシステム環境の簡略化したブロック図を示す。
【図９Ｂ】本発明のいくつかの実施形態に従うサブスクリプションのデータ構造の一例を示す。
【図９Ｃ】さまざまな実施形態に従うクローンサブスクリプションを管理するための典型的な規則を示す。
【図１０】さまざまな実施形態に従うクローンサブスクリプションのライフサイクルを管理するためのプロセスのフローチャートである。
【図１１】さまざまな実施形態に従うサブスクリプションのクローニングのためのプロセスのフローチャートである。
【図１２】さまざまな実施形態に従う既存のサブスクリプションを用いてサービスのためのサブスクリプションを提供するためのプロセスのフローチャートである。
【図１３】本発明の実施形態に従うテナント環境の提供に関わるさまざまなインタラクションの高レベルの全体像を示す。
【図１４】ある実施形態を実現するための分散システムの簡略化した図を示す。
【図１５】本発明のある実施形態を実現するために使用し得る典型的なコンピュータシステムを示す。
【図１６】本発明のある実施形態を実現するために使用し得る典型的なサービスインフラストラクチャシステムを示す。
【発明を実施するための形態】
【００５３】
詳細な説明
以下の説明では、説明を目的として、本発明の実施形態が十分に理解されるよう、具体的な詳細事項について述べる。しかしながら、これらの具体的な詳細事項がなくてもさまざまな実施形態を実施し得ることは明らかであろう。図面および説明は限定を意図したものではない。
【００５４】
本発明の特定の実施形態は、クラウドインフラストラクチャシステムが提供するサービスのプロビジョニング、管理、および追跡を自動化するための技術を提供する。
【００５５】
はじめに
特定の実施形態において、クラウドインフラストラクチャシステムは、セルフサービスで、サブスクリプションベースで、柔軟にスケーラブルで、確実で、可用性が高く、かつ安全なやり方で、顧客に与えられる、一組のアプリケーション、ミドルウェアおよびデータベースサービス提供物を含み得る。このようなクラウドインフラストラクチャシステムの一例が、本願の譲受人が提供するオラクルパブリッククラウド（Oracle Public Cloud）である。
【００５６】
クラウドインフラストラクチャシステムは、クラウドインフラストラクチャシステム内のサービスおよびリソースの、顧客のサブスクリプションを、プロビジョニングし管理し追跡すること、クラウドインフラストラクチャシステム内のサービスを利用する顧客に予測可能な事業費用を提供すること、クラウドインフラストラクチャシステム内の顧客のデータのロバストアイデンティティドメイン分離および保護を提供すること、クラウドインフラストラクチャシステムの設計のトランスペアレントなアーキテクチャおよび制御を顧客に提供すること、確かなデータ保護とデータプライバシー基準および規定の順守を顧客に提供すること、クラウドインフラストラクチャシステムにおけるサービスの構築およびデプロイのための統合開発経験を顧客に提供すること、ならびにクラウドインフラストラクチャシステムにおけるビジネスソフトウェア、ミドルウェア、データベースおよびインフラストラクチャサービス間のシームレスな統合を顧客に提供することを含むがこれらに限定されるものではない多数の機能を提供し得る。
【００５７】
特定の実施形態において、クラウドインフラストラクチャシステムが提供するサービスは、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用できるようにされる多数のサービスを含み得る。これらのサービスは、オンラインデータ記憶およびバックアップソリューション、ウェブベースの電子メールサービス、ホストされているオフィスソフトウェアパッケージおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービス等である。クラウドインフラストラクチャシステムが提供するサービスは、そのユーザのニーズを満たすよう動的に調整できる。クラウドインフラストラクチャシステムが提供するサービスを具体化したものを、本明細書ではサービスインスタンスと呼ぶ。一般的に、クラウドサービスプロバイダのシステムからインターネット等の通信ネットワークを介してユーザが利用できるようにされるサービスは、クラウドサービスと呼ばれる。典型的には、パブリッククラウド環境において、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身の構内サーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストしている場合があり、ユーザはインターネット等の通信ネットワークを介してオンデマンドでアプリケーションをオーダーおよび使用することができる。
【００５８】
コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、記憶域に対する保護されたコンピュータネットワークアクセス、ホストされているデータベース、ホストされているウェブサーバ、ソフトウェアアプリケーション、もしくはクラウドベンダからユーザに提供されるその他のサービス、または当該技術において周知の他のサービスを含む。たとえば、サービスは、インターネットを通した、クラウド上の遠隔記憶域に対する、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク接続された開発者の私的使用のためのウェブサービスベースのホストされたリレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。もう１つの例として、サービスは、クラウドベンダのウェブサイト上でホストされている電子メールソフトウェアアプリケーションに対するアクセスを含み得る。
【００５９】
図１Ａは、本発明のある実施形態に従うクラウドインフラストラクチャシステムの論理図である。クラウドインフラストラクチャシステム１００は、さまざまなサービスをクラウドまたはネットワーク接続された環境を介して提供し得る。これらのサービスは、サービスとしてのソフトウェア（ＳａａＳ）カテゴリ、サービスとしてのプラットフォーム（ＰａａＳ）カテゴリ、サービスとしてのインフラストラクチャ（ＩａａＳ）カテゴリ、またはその他の、ハイブリッドサービスを含むサービスのカテゴリにおいて提供される１以上のサービスを含み得る。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム１００が提供する１以上のサービスをオーダーし得る。その場合、クラウドインフラストラクチャシステム１００は処理を実行して顧客のサブスクリプションオーダーのサービスを提供する。
【００６０】
クラウドインフラストラクチャシステム１００は、クラウドサービスをさまざまなデプロイメントモデルを介して提供し得る。たとえば、サービスはパブリッククラウドモデルで提供し得る。パブリッククラウドモデルでは、クラウドインフラストラクチャシステム１００を、組織販売クラウドサービスが所有（たとえばOracle社が所有）し、サービスは、一般的なパブリックまたはさまざまな産業界の企業が利用できるようにされる。別の例として、サービスはプライベートクラウドモデルで提供し得る。プライベートクラウドモデルでは、クラウドインフラストラクチャシステム１００を１つの組織のためにのみ運用し、その組織内の１以上のエンティティにサービスを提供することができる。クラウドサービスは、コミュニティクラウドモデルでも提供し得る。コミュニティクラウドモデルでは、クラウドインフラストラクチャシステム１００およびこのシステムが提供するサービスを、関係するコミュニティ内のいくつかの組織が共有する。クラウドサービスは、２つ以上の異なるモデルを組合わせたものであるハイブリッドクラウドモデルでも提供し得る。
【００６１】
図１Ａに示されるように、クラウドインフラストラクチャシステム１００は、連携して作業しクラウドインフラストラクチャシステム１００が提供するサービスのプロビジョニングを可能にする複数のコンポーネントを含み得る。図１Ａに示される実施形態において、クラウドインフラストラクチャシステム１００は、ＳａａＳプラットフォーム１０２と、ＰａａＳプラットフォーム１０４と、ＩａａＳプラットフォーム１１０と、インフラストラクチャリソース１０６と、クラウド管理機能１０８とを含む。これのコンポーネントは、ハードウェア、またはソフトウェア、またはこれらを組合わせたものによって実現し得る。
【００６２】
ＳａａＳプラットフォーム１０２は、ＳａａＳカテゴリに含まれるクラウドサービスを提供するように構成される。たとえば、ＳａａＳプラットフォーム１０２は、統合開発およびデプロイメントプラットフォーム上に一組のオンデマンドアプリケーションを構築して与える機能を提供し得る。ＳａａＳプラットフォーム１０２は、ＳａａＳサービスを提供する際の基礎となるソフトウェアとインフラストラクチャを管理し制御することができる。ＳａａＳプラットフォーム１０２が提供するサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム１００上で実行されるアプリケーションを利用できる。顧客は、別々のライセンスおよびサポートを購入せずにアプリケーションサービスを取得できる。
【００６３】
さまざまな異なるＳａａＳサービスを提供し得る。その例は、販売実績管理、大規模な組織向けの企業統合および事業汎用性等に対するソリューションを提供するサービスを含むが、これらに限定されるものではない。ある実施形態において、ＳａａＳサービスは、顧客関係管理（ＣＲＭ）サービス１１０（たとえばOracleクラウドが提供するフュージョンＣＲＭサービス）、人的資源管理（ＨＣＭ）／人材管理サービス１１２等を含み得る。ＣＲＭサービス１１０は、顧客に対する販売活動サイクルの報告および管理に向けられたサービス等を含み得る。ＨＣＭ／人材サービス１１２は、グローバルな労働力のライフサイクル管理および人材管理サービスを顧客に提供することに向けられたサービスを含み得る。
【００６４】
さまざまな異なるＰａａＳサービスを、ＰａａＳプラットフォーム１０４が、標準化され共有されかつ柔軟にスケーラブルなアプリケーション開発およびデプロイメントプラットフォームにおいて提供し得る。ＰａａＳサービスの例は、共有される共通のアーキテクチャ上で既存のアプリケーションを（Oracle等の）組織が合併できるようにするサービス、および、このプラットフォームが提供する共有サービスを強化する新たなアプリケーションを構築する機能を含み得るが、これらに限定されるものではない。ＰａａＳプラットフォーム１０４は、ＰａａＳサービスを提供する際の基礎となるソフトウェアとインフラストラクチャを管理し制御することができる。顧客は、別々のライセンスおよびサポートを購入せずにクラウドインフラストラクチャシステム１００が提供するＰａａＳサービスを取得できる。ＰａａＳサービスの例は、Oracle 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）またはその他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【００７５】
図２に示されるクラウドインフラストラクチャシステム１００は、図２に示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、図２に示される実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム１００は、図２に示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【００７６】
クライアント演算装置２２４，２２６および２２８は、汎用パーソナルコンピュータ（一例として、マイクロソフトウィンドウズ（登録商標）および／またはアップルマッキントッシュオペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む）、（マイクロソフトウィンドウズモバイルなどのソフトウェアを実行し、インターネット、電子メール、ＳＭＳ、ブラックベリーまたは使用可能な他の通信プロトコルである）携帯電話もしくはＰＤＡ、さまざまな市販のＵＮＩＸ（登録商標）もしくはＵＮＩＸのようなオペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘ（登録商標）オペレーティングシステムを含むがこれに限定されるものではない）のいずれかを実行するワークステーションコンピュータ、またはその他の演算装置であってもよい。たとえば、クライアント演算装置２２４，２２６および２２８は、ネットワークを介して通信することができるシンクライアントコンピュータ、インターネットへの接続が可能なゲーム機および／またはパーソナルメッセージング装置などのその他の電子装置であってもよい。例示的なシステム環境２３０が３つのクライアント演算装置とともに示されているが、いかなる数のクライアント演算装置がサポートされてもよい。センサを有する装置などの他の装置がクラウドインフラストラクチャシステム１００と対話してもよい。
【００７７】
ネットワーク２３２は、クライアント２２４，２２６および２２８とクラウドインフラストラクチャシステム１００との間でのデータの通信および交換を容易にし得る。ネットワーク２３２は、ＴＣＰ／ＩＰ、ＳＮＡ、ＩＰＸ、Apple Talk等を含むがこれらに限定されないさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートし得る、当業者にはよく知られているいずれかの種類のネットワークであればよい。ほんの一例として、ネットワーク２３２は、イーサネット（登録商標）ネットワーク、トークンリングネットワークなどのローカルエリアネットワーク（local area network：ＬＡＮ）、広域ネットワーク、仮想プライベートネットワーク（virtual private network：ＶＰＮ）を含むがこれに限定されるものではない仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（たとえばＩＥＥＥ８０２．１Ｘの一連のプロトコル、当該技術分野において公知のブルートゥース（登録商標）プロトコルおよび／またはその他の無線プロトコルのいずれかの下で動作するネットワーク）、ならびに／または、これらのおよび／もしくは他のネットワークの任意の組合わせであってもよい。
【００７８】
クラウドインフラストラクチャシステム１００は、汎用コンピュータ、専用サーバコンピュータ（例として、ＰＣサーバ、ＵＮＩＸサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式のサーバなどを含む）、サーバファーム、サーバクラスタ、またはその他いずれかの適切な構成および／または組合わせであってもよい１つ以上のコンピュータおよび／またはサーバを備えていてもよい。クラウドインフラストラクチャシステム１００を構成する演算装置は、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、Ｊａｖａサーバ、データベースサーバなどを含む、オペレーティングシステムまたはさまざまな追加のサーバアプリケーションおよび／もしくは中間層アプリケーションのいずれかを実行し得る。代表的なデータベースサーバとしては、Oracle、Microsoft、Sybase、ＩＢＭ等から市販されているものが挙げられるが、これらに限定されるものではない。
【００７９】
さまざまな実施形態では、クラウドインフラストラクチャシステム１００は、クラウドインフラストラクチャシステム１００によって提供されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。一実施形態では、図２に示されるように、クラウドインフラストラクチャシステム１００におけるコンポーネントは、アイデンティティ管理（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：ＪＤＢＣ）要求を受取るためのインバウンドインターフェースを提供する。ＳＤＩデータアクセスモジュール６０８は、クラウドインフラストラクチャシステム１００において、データアクセスをサポートし、オブジェクト関係マッピング、ｊａｖａトランザクションＡＰＩサービス、データアクセスオブジェクトおよび接続プーリングを提供する。ＳＤＩ共通ライブラリモジュール６１０は、ＳＤＩモジュール２０６におけるモジュールのための構成サポートを提供する。
【０１２９】
上記の図６の実施形態は、本発明の実施形態に係るＳＤＩモジュールにおけるモジュールを記載している。図７Ａは、本発明の実施形態に係るクラウドインフラストラクチャシステムにおけるＳＤＩモジュールのモジュールによって実行され得る処理を示す簡略化されたフローチャート７００を示す。図７Ａに示される処理は、１つ以上のプロセッサによって実行されるソフトウェア（たとえばコード、命令、プログラム）、ハードウェアまたはそれらの組合わせで実現されてもよい。ソフトウェアは、（たとえばメモリデバイス、非一時的なコンピュータ読取可能記憶媒体上の）メモリに格納されていてもよい。図７Ａに示される特定の一連の処理ステップは、限定的であるよう意図されるものではない。他のステップのシーケンスも代替的な実施形態に従って実行されてもよい。たとえば、本発明の代替的な実施形態は、異なる順序で上記のステップを実行してもよい。さらに、図７Ａに示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスにおいて実行され得る複数のサブステップを含んでいてもよい。さらに、特定のアプリケーションに応じて、さらなるステップが追加または削除されてもよい。当業者は、多くの変更例、変形例および代替例を認識するであろう。一実施形態では、図７Ａに示される処理は、図６に詳細に示されるＳＤＩモジュール２０６における１つ以上のモジュールによって実行され得る。
【０１３０】
７０２において、サブスクリプションオーダーに関連付けられたビジネスプロセスが受取られる。一実施形態では、ＳＤＩモジュール２０６におけるＳＤＩ−ＷＳモジュール６００は、サブスクリプションオーダーに関連付けられたビジネスプロセスにおける１つ以上のステップをビジネスプロセスエクセキュータ３１６から受取る。７０４において、ビジネスプロセスにおける各ステップは、サブスクリプションオーダーのためのリソースをプロビジョニングするための一連のタスクに変換される。一実施形態では、ＳＤＩモジュール２０６におけるＳＤＩタスクマネージャモジュール６０４は、ＳＤＩコネクタモジュール６１２のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換する。７０６において、サブスクリプションオーダーは、一連のタスクに基づいてプロビジョニングされる。一実施形態では、図６に示されるように、ＳＤＩコネクタモジュール６１２は、サブスクリプションオーダーにおけるサービスのためのリソースをプロビジョニングするために、ＳＤＩタスクマネージャモジュール６０４によって規定されるタスクのデプロイメントに対処するための１つ以上のコネクタを含む。
【０１３１】
図６に関して上記したように、ＳＤＩタスクマネージャモジュール６０４は、ＳＤＩコネクタモジュール６１２のサービスを利用することによって、ビジネスプロセスにおいて規定された各ステップを一連のタスクに変換し、ＳＤＩコネクタモジュール６１２は、オーダー要求に関連する１つ以上のサービスをプロビジョニングするために、ＳＤＩタスクマネージャモジュール６０４によって規定されるタスクのデプロイメントに対処するための１つ以上のコネクタを含んでいてもよい。コネクタのうちの１つ以上は、特定のサービスタイプに特有のタスクに対処することができ、他のコネクタは、さまざまなサービスタイプにわたって共通のタスクに対処することができる。一実施形態では、ＳＤＩコネクタモジュール６１２は、オーダー要求に関連するサービスおよびリソースをプロビジョニングするためにクラウドインフラストラクチャシステム１００における外部モジュール（図５に図示）のうちの１つ以上と遣り取りする一組のコネクタ（ラッパーＡＰＩ）を含む。たとえば、ＮＵＶＩＡＱコネクタ６２０は、ＪａｖａサービスをプロビジョニングするためにＶＡＢモジュール５０２と遣り取りする。
【０１３２】
図７Ｂは、本発明の実施形態に係るＮｕｖｉａｑシステム７１０および他のクラウドインフラストラクチャシステムとのその関係の高レベルアーキテクチャを示す簡略ブロック図を示す。図７Ｂに示されるＮｕｖｉａｑシステム７１０は、図７Ｂに示されるもの以外の他のコンポーネントを有していてもよいということが理解されるべきである。さらに、図７Ｂに示される実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、Ｎｕｖｉａｑシステム７１０は、図７Ｂに示されるものよりも多くのまたは少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【０１３３】
特定の実施形態では、Ｎｕｖｉａｑシステム７１０は、ＰａａＳオペレーションをオーケストレートするためのランタイムエンジンを提供するように構成され得る。Ｎｕｖｉａｑシステム７１０は、他の製品およびサービスとの統合を容易にするためにウェブサービスＡＰＩを提供し得る。また、Ｎｕｖｉａｑシステム７１０は、システムプロビジョニング、アプリケーションデプロイメントおよび関連付けられたライフサイクルオペレーションにおける複雑なワークフローのためのサポートを提供し、管理およびモニタリングソリューションと統合する。
【０１３４】
図７Ｂに示される実施形態では、Ｎｕｖｉａｑシステム７１０は、Ｎｕｖｉａｑプロキシ７１２と、Ｎｕｖｉａｑマネージャ７１４と、Ｎｕｖｉａｑデータベース７１６とを備える。特定の実施形態では、Ｎｕｖｉａｑマネージャ７１４は、Ｎｕｖｉａｑシステム７１０へのエントリポイントを提供し、ウェブサービスＡＰＩを介してＰａａＳオペレーションへの安全なアクセスを提供する。内部では、Ｎｕｖｉａｑマネージャ７１４は、データベースにおいてシステム状態を追跡し、ワークフローエンジン上でのジョブの実行を制御する。パブリッククラウドでは、Ｎｕｖｉａｑマネージャ７１４は、プロビジョニングオペレーションおよびデプロイメントオペレーションをそれぞれ駆動するために、テナントプロビジョニングシステム（ＳＤＩ２０６）およびテナントコンソールによってアクセスされ得る。
【０１３５】
一実施形態では、Ｎｕｖｉａｑマネージャ７１４は、内部ワークフローエンジンを介して非同期にジョブを実行する。ジョブは、所与のＰａａＳワークフローに特有のアクションのシーケンスであってもよい。アクションは、順番に実行されてもよく、任意のステップにおける障害は、結果としてジョブ全体の障害になる。多くのワークフローアクションは、ＥＭコマンドラインインターフェース（ｃｌｉ）などのワークフローに関連する外部システムに権限を委任する。一実現例では、Ｎｕｖｉａｑマネージャ７１４アプリケーションは、ファイアウォール内で実行される関連付けられたＨＴＴＰサーバ（たとえばオラクルＨＴＴＰサーバまたはＯＨＳ）インスタンスを有する２ノードウェブロジッククラスタにおいてホストされ得る。
【０１３６】
特定の実施形態では、Ｎｕｖｉａｑプロキシ７１２は、Ｎｕｖｉａｑ  ＡＰＩへのパブリックアクセスポイントである。一実施形態では、パブリックＡＰＩのみがここで公開され得る。プロキシ７１２によって受取られた要求は、Ｎｕｖｉａｑマネージャ７１４に送られ得る。一実施形態では、Ｎｕｖｉａｑプロキシ７１２はファイアウォールの外側で実行される一方、マネージャ７１４はファイアウォール内で実行される。一実現例では、Ｎｕｖｉａｑプロキシ７１２アプリケーションは、ファイアウォールの外側で実行されるウェブロジッククラスタ上で実行される。
【０１３７】
特定の実施形態では、Ｎｕｖｉａｑデータベース７１６は、プラットフォームインスタンス、デプロイメント計画、アプリケーション、ウェブロジックドメイン、ジョブ、アラーとなどであるがこれらに限定されないさまざまなドメインエンティティを追跡する。必要に応じて、主キーがサービスデータベースと整合させられてもよい。
【０１３８】
一実施形態では、プラットフォームインスタンス７１８は、所与のテナントのためのウェブロジックサービスに必要な全てのリソースを含んでいてもよい。
【０１３９】
Ｎｕｖｉａｑシステム７１０は、ウェブロジッククラウドサービスによって使用されるワークフローを実行するために、クラウドインフラストラクチャシステム１００のさらなるシステムに依拠し得る。これらの依存性は、ＳＤＩ２０６、ＩＤＭ２００、ウイルススキャンシステム、サービスデータベース、ＣＲＭインスタンスなどへの依存性を含んでいてもよい。たとえば、Ｎｕｖｉａｑシステム７１０は、ＳＤＩ２０６におけるアセンブリデプロイヤによって実行される機能に依存し得る。一実施形態では、アセンブリデプロイヤは、ＯＶＡＢ（Oracle Virtual Assembly builder：オラクルバーチャル・アセンブリ・ビルダ）およびＯＶＭ（Oracle Virtual Machine：オラクル仮想マシン）とのインタラクションを管理するためのシステムである。Ｎｕｖｉａｑシステム７１０によって使用されるアセンブリデプロイヤの機能は、アセンブリをデプロイするための機能、アセンブリをアンデプロイするための機能、アセンブリデプロイメントを説明するための機能、アプライアンスをスケーリングするための機能などを含み得るが、これらに限定されるものではない。一実現例では、Ｎｕｖｉａｑシステム７１０は、ウェブサービスＡＰＩを介してアセンブリデプロイヤにアクセスする。
【０１４０】
特定の実施形態では、セキュリティポリシは、アプリケーションにデプロイされる前に特定のアーティファクトがウイルススキャンされることを必要とし得る。クラウドインフラストラクチャシステム１００は、この目的でウイルススキャンシステムを提供し得て、パブリッククラウドの複数のコンポーネントのためのサービスとしてスキャンを提供する。
【０１４１】
特定の実施形態では、パブリッククラウドインフラストラクチャは、テナント（たとえば顧客）およびそれらのサービスサブスクリプションについての情報を含むサービスデータベースを維持し得る。Ｎｕｖｉａｑワークフローは、テナントもサブスクライブする他のサービスに対するクライアントとしてウェブロジックサービスを適切に構成するために、このデータにアクセスし得る。
【０１４２】
Ｎｕｖｉａｑシステム７１０は、そのセキュリティ統合のためにＩＤＭ２００に依存し得る。特定の実施形態では、Ｊａｖａサービスインスタンスは、ＣＲＭインスタンスに関連付けられ得る。当該関連付けにより、Ｊａｖａサービスインスタンスにデプロイされたユーザアプリケーションは、ウェブサービスコールを介してＣＲＭインスタンスにアクセスできる。
【０１４３】
Ｎｕｖｉａｑシステム７１０によって提供されるサービスをさまざまなエンティティが使用し得る。Ｎｕｖｉａｑシステム７１０のこれらのクライアントは、プラットフォームインスタンス上でアプリケーションを管理するために顧客がアクセスし得る管理サーバ（たとえばオラクル管理サーバ）ベースのユーザインターフェイスであるテナントコンソールと、アプリケーションライフサイクル管理オペレーションへのアクセスを提供するように拡張されたオラクルＩＤＥ（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演算ノードは、複数のデータベースインスタンスを有していてもよい。
【０１５７】
特定の実施形態では、各データベースインスタンスは、複数のスキーマを備えていてもよく、当該スキーマは、異なる顧客またはテナントに関連付けられてもよい。たとえば、図７Ｅでは、データベースインスタンス７３４は、２つのスキーマ７３６および７３８を提供し、スキーマ７３６および７３８の各々は、それ自体の表を有する。スキーマ７３６は、データベースサービスにサブスクライブする第１の顧客またはテナントに関連付けられ得て、スキーマ７３８は、データベースサービスにサブスクライブする第２の顧客またはテナントに関連付けられ得る。各テナントは、完全に切離されたスキーマを得る。各スキーマは、関連付けられたテナントについての表、ビュー、格納されたプロシージャ、トリガなどを含むデータベースオブジェクトを管理できる容器のように動作する。各スキーマは、１つの専用の表領域を有し得て、各々の表領域は、１つのデータファイルを有する。
【０１５８】
このように、単一のデータベースインスタンスは、複数のテナントにデータベースサービスを提供することができる。これは、基本的なハードウェアリソースの共有を可能にするだけでなく、テナント同士の間でのサービスインスタンスの共有も可能にする。
【０１５９】
特定の実施形態では、このようなマルチテナンシシステムは、ＩＤＭ２００によって容易になり、これにより、各々がそれ自体の別個のアイデンティティドメインを有する複数の別個の顧客が、クラウドにおいて共有されるハードウェアおよびソフトウェアを使用することが有利に可能になる。その結果、各顧客が自身の専用のハードウェアまたはソフトウェアリソースを有する必要がなくなり、場合によっては、特定の時点で一部の顧客によって使用されていないリソースが、他の顧客によって使用可能になり、それによってそれらのリソースが無駄になることを防止する。たとえば、図７Ｅに示されるように、データベースインスタンスは、各々がそれぞれのアイデンティティドメインを有する複数の顧客に供給されることができる。各々のこのようなデータベースサービスインスタンスは、多くの別個のアイデンティティドメインの中で共有される単一の物理的なマルチテナントデータベースシステムの別個の抽象化またはビューであり得るが、各々のこのようなデータベースサービスインスタンスは、各々の他のデータベースサービスインスタンスが有するものとは別個の、場合によっては異なるスキーマを有することができる。したがって、マルチテナントデータベースシステムは、顧客指定のデータベーススキーマとそれらのデータベーススキーマが関係するアイデンティティドメインとの間のマッピングを格納し得る。マルチテナントデータベースシステムは、特定のアイデンティティドメインのためのデータベースサービスインスタンスに、当該特定のアイデンティティドメインにマッピングされるスキーマを使用させ得る。
【０１６０】
また、マルチテナンシは、Ｊａｖａサービスなどの他のサービスに拡張可能である。たとえば、複数の顧客は、それぞれのアイデンティティドメイン内に配置されたＪＡＶＡサービスインスタンスを有し得る。各々のこのようなアイデンティティドメインは、ハードウェアの仮想的な「スライス」と見なされることができるＪＡＶＡ仮想マシンを有し得る。一実施形態では、ジョブモニタリングサービス（たとえばハドソン）は、各々の別個のアイデンティティドメインがＪＡＶＡエンタープライズ版プラットフォームのそれ自体の別個の仮想的な「スライス」を有することを可能にするように、クラウドにおけるＪＡＶＡエンタープライズ版プラットフォーム（たとえばオラクルウェブロジック）と組合わせてもよい。このようなジョブモニタリングサービスは、たとえばオペレーティングシステムの時間ベースのジョブスケジューラによって実行されるソフトウェアプロジェクトまたはジョブの構築などの繰返されるジョブの実行をモニタリングし得る。このような繰返されるジョブは、ソフトウェアプロジェクトの連続的な構築および／またはテストを含んでいてもよい。さらにまたは代替的に、このような繰返されるジョブは、ジョブモニタリングサービスが実行されるマシンから離れたマシン上で実行されるオペレーティングシステム起動ジョブの実行のモニタリングを含んでいてもよい。
【０１６１】
再使用可能な匿名サブスクリプション（ＲＡＳ）
特定の実施形態において、クラウドインフラストラクチャシステム１００は、基礎となるハードウェアおよびサービスインスタンスが、顧客またはテナント間で共有されることを可能にするだけでなく、新たなリソースを完全にプロビジョニングせずに、既存のサブスクリプションを他の顧客またはテナントが再使用することを可能にする。一局面において、再使用可能な匿名サブスクリプション（ＲＡＳ）は、サービスへのアクセス要求の前に既にプロビジョニングされているこのサービスに顧客がアクセスできるようにする、一種のサブスクリプションである。いくつかの実施形態において、ＲＡＳは、他の顧客がサービスにアクセスするために使用した可能性がある。ＲＡＳは、サービスへのアクセスのために使用された後、別の顧客に再度割当てられてもよい。ＲＡＳを用いてアクセス可能なサービスのリソースは、このＲＡＳが与えられた他の顧客による再使用のために、このＲＡＳのためにプロビジョニングされたままであってもよい。
【０１６２】
いくつかの実施形態において、ＲＡＳは、顧客がサービスに対するサブスクリプション（たとえば正規サブスクリプション）の購入前にこのサービスを使用できるようにする。ＲＡＳに対してサービスが提供するアクセスは、正規サブスクリプションに対してサービスが提供するアクセスとは異なっていてもよい（たとえば制限されてもよい）。たとえば、ＲＡＳによって、顧客が、サービスに対するサブスクリプションの購入前の一時的な使用（たとえばテストまたはトライアル使用）のために、ゲストとしてこのサービスにアクセスできるようにしてもよい。ＲＡＳは、顧客がサービスの料金を実際に支払わなくてもそのサービスを試すことができるようにするのに役立つであろう。
【０１６３】
いくつかの局面において、ＲＡＳの使用の目的がサービスの試用となるように、ＲＡＳを正規サブスクリプションとは異なるように構成してもよい。いくつかの実施形態において、ＲＡＳは、正規サブスクリプションが割当てられた顧客が利用できる特徴すべてを提供しなくてもよい。一例において、ＲＡＳについてはオペレーションの更新および拡張がサポートされなくてもよい。すなわち、顧客は新たな特徴を追加したりＲＡＳのサイズ（たとえばユーザ数）を増したりすることができない。一方、正規サブスクリプションが割当てられた顧客はこれらの特徴のうちのいくつかまたはすべてにアクセス可能であってもよい。別の例では、ＲＡＳが割当てられた顧客が、高可用性およびディザスタリカバリ特徴等のサポートを利用できなくてもよい（たとえばこのようなサポートをディスエーブルしてもよい）。別の例において、ＲＡＳは、ＲＡＳの顧客がアクセスするサービスの段階的デプロイメントを許可しなくてもよい。段階的デプロイメントでは、サブスクリプションのコンフィギュレーションが、予め定められたデプロイメント計画に基づいて変更される。別の例において、ＲＡＳの顧客は、超過を招くことが認められなくてもよい。他の例において、ＲＡＳが割当てられた顧客が、使用に関連する警告等の通知を利用できないようにしてもよい。
【０１６４】
顧客がＲＡＳを正規サブスクリプションに変換しないと決めた場合、ＲＡＳをこのＲＡＳの再使用のために別の顧客に再度割当てることができる。このＲＡＳに対してプロビジョニングされたサービスは、顧客がＲＡＳを返却した時点において、プロビジョニングされたままであろう。このようにして、サービスのための新たなリソースのプロビジョニングに要する時間を最短にするとともにリソースの使用量を最大にする。
【０１６５】
顧客が、ＲＡＳを用いてアクセスしたサービスの正規サブスクリプションの取得に合意した場合、クラウドインフラストラクチャシステム１００は、ＲＡＳを正規サブスクリプションに変換すればよい。さまざまな実施形態において、クラウドインフラストラクチャシステム１００は、ＲＡＳを正規サブスクリプションに変換するための変換プロセス（たとえば軽量パーソナリティ注入プロセス）を実現してもよい。変換プロセスは、ＲＡＳに対してプロビジョニングされたリソースを保持することにより、ＲＡＳが提供するサービスのリソースが再度プロビジョニングされないようにする。このため、ＲＡＳは、重量プロセスを用いてプロビジョニングする複雑な製品（たとえばＣＲＭシステム）に対して非常に役立ち得る。変換プロセスは、ＲＡＳを介してアクセスしたサービスを用いて顧客が生成したデータを保持してもよい。保持された顧客データを、正規サブスクリプションによってアクセスされたサービスの顧客が使用してもよい。顧客データを保持することによって、顧客は、顧客によるサービスの使用に基づいて顧客データを再度生成するのに要する時間とリソースを節約することができる。
【０１６６】
別の局面において、ＲＡＳが提供するサービスの使用中に生成された特定顧客向けデータを、ＲＡＳが提供するサービスに関連する特定サービス向けデータから分離してもよい。いくつかの実施形態において、ＲＡＳが正規サブスクリプションに変換されない場合、このＲＡＳが提供するサービスについての特定サービス向けデータは、ＲＡＳに対応付けて維持されてもよく、特定顧客向けデータは、ＲＡＳとの対応関係が解除されてもよい。ＲＡＳが正規サブスクリプションに変換される場合、特定顧客向けデータを保持し正規サブスクリプションに対応付けてもよい。よって、正規サブスクリプションが提供されたユーザは、ＲＡＳを用いてサービスにアクセスしたときに生成された既存の特定顧客向けデータを用いてサービスの使用を継続し得る。ＲＡＳは、通常は異なる顧客による再使用が不可能なトライアルサブスクリプションと区別することができる。トライアルサブスクリプションは、トライアル期間の終了時に解除される。
【０１６７】
次に図８Ａ〜図８Ｃを参照して、本実施形態のいくつかの実施形態に従うＲＡＳを顧客に提供するためのさまざまな実施形態が示されている。図８Ａは、本発明のいくつかの実施形態に従う再使用可能な匿名サブスクリプションを提供するためのシステム環境８００の簡略化したブロック図を示す。図８Ｂは、本発明のいくつかの実施形態に従う再使用可能な匿名サブスクリプションを実現するためのデータ構造の一例を示す。図８Ｃは、さまざまな実施形態に従う再使用可能な匿名サブスクリプションのライフサイクルを管理するためのプロセスのフローチャートである。
【０１６８】
図８Ａには、クラウドインフラストラクチャシステム１００との通信のためにクライアント装置２２４、クライアント装置２２６、およびクライアント装置２２８にそれぞれ対応付けられている顧客１、顧客２、および顧客３等のいくつかの顧客とともに、システム環境８００が示されている。クラウドインフラストラクチャシステム１００は、顧客向けのＲＡＳサブスクリプションの１つ以上のサービスプール（たとえばサービスプール８１０）を管理し得る。サービスプール８１０は、各々が顧客への割当てのために利用できるＲＡＳ８１２（「ＲＡＳ１」）、ＲＡＳ８１４（「ＲＡＳ２」）、およびＲＡＳ８１６（「ＲＡＳ３」）等の１つ以上のＲＡＳを含み得る。いくつかの実施形態において、１つ以上のサービスプール（たとえばＲＡＳプール）を作成してＲＡＳを提供することにより、既にプロビジョニングされているサービスへのアクセスを可能にしてもよい。
【０１６９】
さまざまな実施形態において、サービスプールを、コンフィギュレーションまたはテンプレート（たとえばプロダクトテンプレート）に基づいて構築してもよい。たとえば、サービスプールを、特定のプロダクトコンフィギュレーションのために構築し維持してもよい。顧客が、ＲＡＳプールが存在しないプロダクトコンフィギュレーションのためのＲＡＳを必要とする場合、新たなサービスをこのプロダクトコンフィギュレーションのために作成し新たなＲＡＳをこのサービスプールに追加する。将来１つ以上の追加のＲＡＳが同じプロダクトコンフィギュレーションのために作成された場合、これらのＲＡＳも上記サービスプールに追加すればよい。テンプレートは、プロダクト（たとえばサービス）に対するアクセスに対して課されるリソース制約（たとえばユーザの数に対する制限、記憶域に対する制限等）が組込まれていてもよい。たとえば、１つのサービスプールを、サービスとしてのデータベース（ＤＢＡＡＳ）プロダクトのためのプロダクトコンフィギュレーションテンプレートに基づいて構成してもよく、別のサービスプールを、ＣＲＭサービスプロダクトのためのプロダクトコンフィギュレーションテンプレートに基づいて構成してもよい。いくつかの実施形態において、サービスプールは、各々がカテゴリに基づいてさらに定められるその他のプールを含み得る。前の例では、ＤＢＡＡＳサービスプールのためのサービスプールは、各々が、ＤＢＡＡＳベーシック、ＤＢＡＡＳスタンダード、およびＤＢＡＡＳエンタープライズ等のＤＢＡＡＳ用の異なる種類のＲＡＳを提供する、別々のサービスプールを有することができる。これに代えて、別々のプールを、同一のプロダクトまたは異なるプロダクトいずれかのための、さまざまな種類のサブスクリプションに対して作成してもよい。
【０１７０】
いくつかの実施形態において、サービスプールを、１つ以上の基準に基づいて対応付けてもよく、または分類してもよい。この基準は、サービスプールを構成するために使用したテンプレートが示してもよい。テンプレートは、サービスの種類、サービスプールによって利用できるようにされるサービスのためにプロビジョニングされるリソース、サブスクリプションの種類、サブスクリプションの数、リソースの可用性等に基づいていてもよい。サービスプール内の各ＲＡＳに対応するサービスを、このサービスプール内のサービスを対象とするサブスクリプションオーダーが処理される前にプロビジョニングしてもよい。
【０１７１】
一局面において、サービスプールを定めるために使用されるテンプレートは、クラウドインフラストラクチャシステム１００のさまざまなコンポーネントが提供するフィードバックに基づいて決定してもよい。たとえば、顧客がオーダーを出すレートを判断しプールに割当てられるサブスクリプションの数に反映させるために使用してもよい。別の例において、サービスの種類を用いて第１の種類に対してはＸ個のサブスクリプションを割当て第２の種類に対してはそれとは異なる数のサブスクリプションを割当ててもよい。他の実績、マーケティング、および顧客関連のメトリックを用いて利用できるサブスクリプションの数を求めこれらのサブスクリプションを如何にして再度割当てるか判断することができる。さらに、クラウドインフラストラクチャシステム１００は、クラウドインフラストラクチャシステム１００が判断するフィードバックの分析に基づいてサービスプール内の利用できるＲＡＳの数を動的に増減することができる。
【０１７２】
いくつかの実施形態において、ＲＡＳを、顧客のニーズに基づいて構成した特定顧客向けプロダクトテンプレートに基づいて作成することもできる。特定顧客向けＲＡＳは、１以上の顧客に対して指定されたサービスプール内に格納してもよい。いくつかの実施形態において、特定顧客向けＲＡＳを、特定顧客向けＲＡＳによって満たされるニーズがある他の顧客が再使用してもよい。いくつかの実施形態において、サービスプールを、特定顧客向けＲＡＳのように構成されたサービスのために作成してもよい。同様の構成で特定顧客向けＲＡＳとして作成された他のＲＡＳをサービスプールに追加してもよい。特定顧客向けＲＡＳを、この特定顧客向けＲＡＳを構成した顧客のために設計されたサービスプールに格納してもよい。
【０１７３】
上記のように、クラウドインフラストラクチャシステム１００のＴＡＳモジュール２０４は、各サブスクリプションオーダーに対応付けられたビジネスプロセスを管理しビジネスロジックを適用してサブスクリプションオーダーがプロビジョニングに進むべきか否かを判断するオーケストレーションコンポーネントとして機能する。ＴＡＳモジュール２０４は、サービスに対する顧客の要求に基づいてサブスクリプションオーダーを処理するための処理を扱う。いくつかの実施形態において、ＴＡＳモジュール２０４は、ＲＡＳがアクセスを提供し得るサービスの要求（たとえば要求８０２）がなされたか否かを判断することができる。ＴＡＳモジュール２０４は、顧客からの要求が示す使用の種類に基づいて、要求されたサービスのための環境を構築してもよい。ＴＡＳモジュール２０４は、顧客から受けた要求が示すＲＡＳに対する明示された要求に基づいてＲＡＳが要求されたと判断することができる。
【０１７４】
クラウドインフラストラクチャシステム１００からのサービスの要求（たとえば要求８０２）は、そのサービスを提供するために使用し得る情報を含み得る。具体的には、要求は、要求されたサービスについて顧客に提供するＲＡＳをクラウドインフラストラクチャシステム１００が判断できるようにする情報（たとえばオーダー情報）を含み得る。いくつかの実施形態において、要求は、要求するサービスについて、サービスの種類または意図する使用の種類を示していてもよい。使用の種類は、開発、テスト、訓練、プロトタイピング、ロードバランシング、マーケティング、販売、設計、生産等を含むがこれらに限定されるものではない。
【０１７５】
いくつかの実施形態において、要求は、要求するサービスに関する１つ以上の必要条件を示していてもよい。この必要条件は、料金制約（たとえば最低料金および／または最高料金）、要求するサービスの使用の時間制限、このサービスを使用するユーザの量、所望のサービスサポートの種類、サービスの使用に関連するその他の必要条件、またはこれらの組合わせを含み得る。クラウドインフラストラクチャシステム１００は、顧客からの要求が示す必要条件に基づいて、要求されたサービスへのアクセスを可能にするために顧客に提供するサブスクリプションを決定してもよい。顧客に提供するサブスクリプションの少なくとも１つの例がＲＡＳであってもよい。
【０１７６】
ＴＡＳモジュール２０４は、要求されたサービスへのアクセスを可能にするＲＡＳを確立するためのオペレーションを実現し得る。図８Ａに示される例において、クラウドインフラストラクチャシステム１００は、１つ以上のサービスプール（たとえばサービスプール８１０）内のＲＡＳに対し、要求されたサービスがプロビジョニングされたか否かを判断してもよい。処理を実行することによって、１つ以上のサービスプール内の利用可能なサブスクリプション（たとえばＲＡＳ）を分析することにより、利用できるサブスクリプションが、要求されたサービスへのアクセスを提供するか否かを判断してもよい。サービスプールは複数のＲＡＳを含み得る。各ＲＡＳは、このＲＡＳが利用できる場合に顧客に割当てることができる。各ＲＡＳを検査することにより、このＲＡＳが提供するリソースおよび／またはサービスを決定してもよい。ＲＡＳ等のサブスクリプションは、要求から決定された情報（たとえば顧客が要求するサブスクリプションの種類、要求されたサービスの使用の種類、要求されたサービスの期間、またはこれらの組合わせ）に一部基づいて、サービスプール内で特定してもよい。
【０１７７】
いくつかの実施形態において、サービスプールを、特定の地理的位置（たとえば地理的領域）に対して構築してもよい。地理的位置は、データセンターの地理的位置に基づいて定めてもよい。サービスプールを、法的理由および／またはコンプライアンスの理由から、地理的位置に対して構築してもよい。サービスプールは、ある地理的位置に対して、サービスプールがこの地理的位置に対して構築されていない場合に、構築してもよい。いくつかの実施形態において、ある地理的位置に構築したサービスプールを、プロダクトコンフィギュレーションに基づいてさらに定めてもよい。たとえば、サービスプールを、特定のプロダクトコンフィギュレーションを有するＲＡＳのために、ある地理的位置に対して構築してもよい。このような実施形態において、ある地理的位置に対するサービスプールを、新たなＲＡＳのために、この新たなＲＡＳのプロダクトコンフィギュレーションに対して定められた地理的位置に既存のサービスプールがない場合に、作成してもよい。
【０１７８】
顧客の要求に一致するＲＡＳを発見できないときは、顧客の要求に基づいて新たなＲＡＳをプロビジョニングすればよい。新たにプロビジョニングされたＲＡＳを適切なサービスプールに追加すればよい。サービスプールを拡大して新たなＲＡＳを含むようにすることで、顧客の需要に合うようにしてもよい。次に、新たなＲＡＳを顧客に割当てることができる。
【０１７９】
いくつかの実施形態において、プロビジョニングしたＲＡＳは、既存のサービスプールに追加しなくてもよい。たとえば、ＲＡＳは、既存のサービスプールがリソース容量が原因で満杯のときは、サービスプールに追加しなくてもよい。いくつかの実施形態において、ＲＡＳは、プロビジョニングしたＲＡＳのプロダクトコンフィギュレーションがサービスプールの分類に適合しないときは、サービスプールに追加しなくてもよい。既存のサービスプール内のＲＡＳは、新たなＲＡＳのコンフィギュレーションに一致しないサブスクリプションの種類または使用の種類に対して構成されている場合がある、一例において、プロビジョニングされたＲＡＳは、ＲＡＳのプロダクトコンフィギュレーションが既存のサービスプールのプロダクトコンフィギュレーションと一致しないときは、既存のサービスプールに割当てなくてもよい。いくつかの実施形態において、新たに作成されたＲＡＳのプロダクトコンフィギュレーションは、この新たなＲＡＳのプロダクトコンフィギュレーションが既存のサービスプール各々のＲＡＳのプロダクトコンフィギュレーションと異なっていることが原因で、既存のサービスプール各々のプロダクトコンフィギュレーションと一致しない場合がある。このような場合は、新たなサービスプールをオンデマンドで構築してもよい。
【０１８０】
いくつかの実施形態において、サービスプールを特定顧客向けにして、ある顧客用のカスタムテンプレートに従って構成されたＲＡＳをサービスプールが含むようにしてもよい。この実施形態において、このようなサービスプール内のＲＡＳは、このサービスプールに対して指定された特定の顧客にだけ割当てられてもよい。
【０１８１】
いくつかの実施形態において、要求されたサービスがプロビジョニングされたか否かを判断することは、サービスプールの種類に対応するサービスプールを決定することを含み得る。サービスプールの種類は、顧客からの要求が示す情報に基づいて識別すればよい。たとえば、サービスプールの種類は、要求されたサービス、顧客によって要求されたサブスクリプションの種類（たとえばＲＡＳサブスクリプション）、要求されたサービスの使用の種類、またはこれらを組合わせたものを含み得るが、要求はこれらのうちのいずれかまたはすべてを示し得る。
【０１８２】
図８Ａに示される１つの例において、ＴＡＳモジュール２０４は、サービスプール８１０内の１つ以上のＲＡＳ、たとえばＲＡＳ２  ８１４およびＲＡＳ３  ８１６を、１つ以上の要求されたサービスについて顧客（たとえば顧客１）に割当てるために利用できるか否かを判断してもよい。ＴＡＳモジュール２０４は、第１のサービスについて第１のＲＡＳ（たとえばＲＡＳ２  ８１４）を顧客１に割当てる８２２とともに第２のサービスについて第２のＲＡＳ（たとえばＲＡＳ３  ８１６）を顧客１に割当てる８２４ためのオペレーションを実現し得る。サブスクリプション８３０（「顧客１サブスクリプション」）等の、顧客に割当てられたサブスクリプションは、この顧客に対応付けられた記憶域において保持してもよい。いくつかの実施形態において、ＲＡＳを用いてアクセスされたサービスに対応付けられた特定顧客向けデータを、そのサービスに関連するデータ（たとえば特定サービス向けデータ）に対応付けて格納してもよい。サブスクリプションを格納するためのデータ構造の例を、図８Ｂを参照しながら説明する。
【０１８３】
ＲＡＳは、顧客がこのＲＡＳの使用を終了したときにサービスプールに戻してもよい。いくつかの実施形態において、ＲＡＳを、このＲＡＳの使用に関連する１つ以上の必要条件に対応付けてもよい。たとえば、この必要条件は、ＲＡＳのために可能にされたリソースの使用に関連する、または、サービスへのアクセスを可能にするための期間に関連する場合がある。ＲＡＳは、ＲＡＳの必要条件が満たされたときにサービスプールに戻してもよい。たとえば、ＲＡＳ３  ８１６はサービスプール８１０に戻してもよい８２６。ＲＡＳ３  ８１６に対応付けられた特定サービス向けデータを記憶域において保持し、その一方で、顧客１がＲＡＳ３  ８１６を使用することで生成された特定顧客向けデータを破棄してもよい。ＲＡＳを戻すことは、このＲＡＳをサービスプールに割当てることを含み得る。いくつかの実施形態において、ＲＡＳを、ＲＡＳを取得したサービスプールに戻してもよい。しかしながら、ＲＡＳは、サービスプールに対するＲＡＳの割当てに基づいて異なるサービスプールに戻してもよい。
【０１８４】
クラウドインフラストラクチャシステム１００は、割当てられたＲＡＳを正規サブスクリプション（regular subscription)（ＲＳ）に変換してもよい。ＲＡＳは、このＲＡＳがＲＳに変換される場合にはサービスプールに戻されなくてもよい。ＲＡＳは、顧客が操作するクライアント装置から受けた入力に基づいてＲＳに変換してもよい。いくつかの実施形態において、クラウドインフラストラクチャシステム１００は、情報をクライアント装置に送ってクライアント装置が顧客を促してＲＡＳをＲＳに変換するための優先権を顧客が与えるようにしてもよい。ＲＳが、顧客がＲＡＳを用いてアクセスしたサービスの使用を続行できるようにしてもよい。図８Ａに示す１つの例において、ＲＡＳ２  ８１４を、顧客１が操作するクライアント装置から受けた入力に基づいてＲＳ１  ８３８に変換してもよい。割当てられたＲＡＳのＲＳへの変換を、図８Ｂおよび図８Ｃを参照しながら以下でさらに説明する。
【０１８５】
顧客に割当てられサービスプールに戻されたＲＡＳを、要求されたサービスのために顧客に割当ててもよい。顧客は、以前にＲＡＳが割当てられた顧客と同一であっても異なる顧客であってもよい。図８Ａを参照しながら説明した先の例で説明すると、ＲＡＳ３  ８１６がサービスプール８１０に戻されると、ＲＡＳ３  ８１６を、別の顧客（たとえば顧客２）に割当てる８２８ことができる。サブスクリプション８５０（「顧客２サブスクリプション」等の顧客２に割当てたサブスクリプションは、この顧客に対応付けられた記憶域において保持してもよい。ＲＡＳ３  ８１６に対応付けられた特定サービス向けデータは、ＲＡＳ３  ８１６がサービスプール８１０に戻され顧客２に割当てられた後に保持してもよい。ＲＡＳ３  ８１６を用いたサービスへのアクセスに基づいて生成された特定顧客向けデータは、ＲＡＳ３  ８１６に対応付けられた特定サービス向けデータに対応付けて格納してもよい。ＲＡＳ３  ８１６は、サービスプール８１６に戻してもＲＳに変換してもよい。図８Ａの例において、ＲＡＳ３  ８１６は、ＲＳ１  ８５６に変換されてもよい８５４。この場合は、ＲＡＳ３  ８１６がサービスプール８１０に戻されていないので、ＲＡＳ３  ８１６を顧客に再度割当てるために利用することはできない。ＲＡＳ３  ８１６をＲＳ１  ８５６に変換することにより、顧客２が生成した特定顧客向けデータをＲＳ１  ８５６について使用するために保持してもよい。
【０１８６】
次に図８Ｂを参照して、本発明のいくつかの実施形態に従う再使用可能な匿名サブスクリプションを実現するためのデータ構造の一例が示されている。１つ以上のデータ構造をクラウドインフラストラクチャシステム１００によって実現することにより、サブスクリプションに関連するデータを格納し得る。データ構造の例は、連結リスト、テーブル、アレイ、ハッシュテーブル、グラフ等を含むが、これらに限定されるものではない。
【０１８７】
ＲＡＳ８７０は、ＲＡＳに関する情報を格納できるデータ構造の一例である。ＲＡＳ８７０は、サービスプールのために割当てられたメモリに格納してもよい。図８Ｂの例において、ＲＡＳ８７０は１つのＲＡＳに関するデータとともに示されている。しかしながら、ＲＡＳ８７０は１つ以上のＲＡＳに関する情報を格納できる。ＲＡＳについての１つ以上のデータ構造をモジュール式で実現することにより、複数の顧客がＲＡＳを使用できるようにする軽量変換プロセスを容易にしてもよい。
【０１８８】
ＲＡＳ８７０は、ＲＡＳに対してプロビジョニングされたサービスに対応するデータ（たとえば特定サービス向けデータ８７２）を含み得る。特定サービス向けデータ８７２は、ＲＡＳに対して可能にされたサービスの提供に関連するデータを含み得る。特定サービス向けデータ８７２は、さまざまな顧客が再使用できるよう、顧客中立でもよい。たとえば、特定サービス向けデータ８７２は、ＲＡＳ８７０に対応するＲＡＳが提供するプロダクト（たとえばサービスまたはコンポーネント）に関連する特定プロダクト向けメタデータを含み得る。
【０１８９】
いくつかの実施形態において、特定サービス向けデータ８７２は、サブスクリプションに対して提供されるサービスのコンフィギュレーション（たとえばリソースの物理コンフィギュレーション）を示していてもよい。コンフィギュレーションは、サービスに対して有効または無効にされる１つ以上のコンポーネント（たとえば特徴）等のリソース制約を示していてもよい。コンフィギュレーションは、サービスまたはサービスに対応付けられたプロダクトの種類に関するテンプレートに基づいて決定してもよい。いくつかの実施形態において、このコンフィギュレーションは、顧客の好みに基づき得る正規サブスクリプションのコンフィギュレーション（たとえば購入されたコンフィギュレーション）とは異なり、包括的なプロダクトテンプレートに基づいていてもよい。
【０１９０】
いくつかの実施形態において、特定サービス向けデータ８７２は、ＲＡＳに関連する情報を含み得る。他の情報のうち、特定サービス向けデータ８７２は、サブスクリプションの名称および／またはサブスクリプションの識別子のように、サブスクリプションを特定し得る。特定サービス向けデータ８７２は、匿名のユーザに関連する顧客情報を含み得る。たとえば、特定サービス向けデータ８７２は、ＲＡＳ８７０が割当てられたゲストに関する情報を含むデータ構造（たとえばゲスト顧客アイデンティティオブジェクト８６４）に対するリファレンスを含み得る。特定サービス向けデータ８７２は、契約情報を含み得る。ＲＡＳは複数の顧客が再使用できるよう、有効開始日および／または終了日を有していなくてもよい。これに対し、正規サブスクリプションには、この正規サブスクリプションを顧客が購入した有効開始日および／または終了日が割当てられていてもよい。
【０１９１】
特定顧客向けデータ８７２は、ＲＡＳに対するサポートの種類を示していてもよい。ＲＡＳは正規サブスクリプションに変換されるまでは限定された容量で使用される場合があるので、ＲＡＳは正規サブスクリプションとは異なるサポートのレベルを有効にし得る。たとえば、ＲＡＳが割当てられた顧客には包括レベルのサポートを提供してもよく、一方、正規サブスクリプションを購入した顧客にはプレミアムレベルのサポートを提供してもよい。
【０１９２】
いくつかの実施形態において、特定サービス向けデータ８７２は、ＲＡＳを用いて実行し得るオペレーションを示していてもよい。たとえば、特定サービス向けデータ８７２は、ＲＡＳを用いてテストを実行することによってＲＡＳが提供するサービスが顧客のワークフローをサポートできるか否かを判断できることを示していてもよい。これに加えてまたはこれに代えて、ＲＡＳは、顧客がサービスを実演するおよび／または顧客がサービスを１以上の競合者が提供する同様のサービスと比較することを可能にするといった他の用途を提供してもよい。
【０１９３】
ＲＡＳ８７０が顧客に割当てられる８４０と、クラウドインフラストラクチャシステム１００は、データ構造８７４を維持してもよい（割当てられたＲＡＳ）。ＲＡＳ８７０は、割当てられたＲＡＳ８７４として格納してもよい。ＲＡＳを割当てることは、ＲＡＳ８７０の位置を顧客に対応付けられた記憶域にある新たな位置に移すことを含み得る。これに代えて、割当てられたＲＡＳ８７４は、記憶域において、ＲＡＳ８７０に対するリファレンスを含んでいてもよい。いくつかの実施形態において、割当てられたＲＡＳ８７４を、ＲＡＳ８７０内のデータを含む異なるデータ構造として実現してもよい。いくつかの実施形態において、データ構造（たとえばマッピングテーブルまたはハッシュテーブル）をＲＡＳ８７４に加えて実現することにより、顧客に対応付けられた、各々割当てられたＲＡＳ８７４に対するリファレンスを格納してもよい。
【０１９４】
顧客に割当てられているが、割当てられたＲＡＳ８７０内の特定顧客向けデータ８７２は、ＲＡＳサブスクリプションがまだ変換されていないので、匿名の顧客アイデンティティを含み得る。たとえば、特定サービス向けデータ８７２は、ゲストに関するアイデンティティ情報を格納しているデータ構造８６４に対するリファレンス（ゲスト顧客アイデンティティオブジェクト）を示し得る。いくつかの実施形態において、ゲスト顧客アイデンティティオブジェクト８６４は、ゲストの名前、コンタクト情報等のゲストに関する情報を含み得る。
【０１９５】
割当てられたＲＡＳ８７４は、修正されて、ＲＡＳ８７０が割当てられた顧客に対する特定顧客向けデータ８７６を格納してもよい。特定顧客向けデータ８７６は、ＲＡＳ８７０に対応するＲＡＳを用いてアクセスするサービスの使用に対応するデータを含み得る。特定顧客向けデータ８７６は、サービスにアクセスするために使用するアプリケーションに基づいていてもよい。たとえば、特定顧客向けデータ８７６は、あるサービスに対するサブスクリプションがアクセスした販売クラウドサービスに対応する顧客メールボックスを含み得る。別の例において、特定顧客向けデータ８７６は、データベースサービスの使用によって生成されたテーブルを含み得る。別の例において、特定顧客向けデータ８７６は、ＲＡＳを用いてアクセスしたオブジェクトストレージサービスのための記憶オブジェクトを含み得る。いくつかの実施形態において、実際の特定顧客向けデータは別の特定サービス向けリポジトリに格納してもよく、特定顧客向けデータ８７６は、特定サービス向けリポジトリに格納された特定顧客向けデータに対するリファレンスを格納してもよい。
【０１９６】
クラウドインフラストラクチャシステム１００は、ＲＡＳを正規サブスクリプション（ＲＳ）に変換する変換プロセス８４２（たとえば軽量パーソナリティ注入プロセス）を実現してもよい。たとえば、ＲＡＳ８７４に対応するＲＡＳを、データ構造８７８によって表わされるＲＳに変換してもよい。変換プロセス８４２は、割当てられたＲＡＳ８７４に対応するサブスクリプションの種類を変更することを含み得る。たとえば、ＲＳ８７８は、割当てられたＲＡＳ８７４に対応するＲＡＳの期間と異なる正規サブスクリプションとしての期間（たとえば延長された期間）を除いて、割当てられたＲＡＳ８７４が提供するのと同じサービスへのアクセスを示していてもよい。変換プロセス８４２は、割当てられたＲＡＳ８７４内の情報をＲＳ８７８に格納してもよい。いくつかの実施形態において、割当てられたＲＡＳ８７４の記憶域を更新して割当てられたＲＡＳ８７４がＲＳたとえばＲＳ８７８であることを示してもよい。
【０１９７】
変換プロセス８４２は、顧客に割当てられたサブスクリプションを変換したサブスクリプション（たとえば正規サブスクリプション）のアカウント情報（たとえばアカウントフットプリント）を決定することを含み得る。たとえば、クラウドインフラストラクチャシステム１００のオーダー管理モジュール２１４は、顧客のアカウント情報を決定してもよい。アカウント情報を決定することは、顧客のアカントを作成することを含み得る。アカウントは、顧客のアイデンティティ情報に基づいて既存のアカウントが発見されないときに作成されてもよい。既存のアカウントが発見されたときは、既存のアカウントを更新して変換後のサブスクリプションへのアクセスを可能にしてもよい。よって、変換されたサブスクリプションに対応するアカウント情報を用いてＲＳ８７８内の特定サービス向けデータ８７２を更新してもよい。
【０１９８】
変換プロセス８４２は、顧客情報をＲＳ８７８に対応付けて格納すること（たとえばパーソナリティ情報を注入すること）を含み得る。ＲＳ８７８は、割当てられたＲＡＳ８７４に対応付けられた顧客の顧客アイデンティティ情報に対応付けられてもよくこれを参照してもよい。クラウドインフラストラクチャシステム１００では、顧客のアイデンティティに関する情報をデータ構造８６６（顧客アイデンティティオブジェクト）に格納してもよい。図８Ｂに示される例において、ＲＳ８７８は、割当てられたＲＡＳ８７４に対応付けられた顧客を識別する顧客アイデンティティオブジェクト８６６へのリファレンスを示していてもよい。顧客に対応付けられたその他のサブスクリプション（たとえば他のＲＡＳ）は、顧客アイデンティティオブジェクト８６６へのリファレンスを格納していてもよい。顧客アイデンティティオブジェクト（たとえば顧客アイデンティティオブジェクト８６６）は、顧客に関する情報を示すデータを含み得る。このデータは、顧客のアイデンティティ（たとえば名前またはユーザ識別子）、顧客のコンタクト情報、顧客の課金情報、その他の顧客関連情報、またはこれらを組合わせたものを示し得る。
【０１９９】
いくつかの実施形態において、変換プロセス８４２は、ゲスト顧客アイデンティティオブジェクト８６４を、顧客アイデンティティオブジェクト８６６内の情報で更新することを含み得る。オブジェクトに対するリファレンスを用いることによって顧客のアイデンティティに関する情報を象徴的に格納してＲＡＳからＲＳへの変換に要する処理時間を短縮してもよい。これに代えて、特定サービス向けデータ８７２からゲスト顧客アイデンティティオブジェクト８６４に対するリファレンスを更新することにより、顧客アイデンティティオブジェクト８６６に対するリファレンスを示してもよい。
【０２００】
変換プロセス８４２は、顧客について、ＲＡＳ（たとえば割当てられたＲＡＳ８７４）から変換された正規サブスクリプション（たとえばＲＳ８７８）に関する契約を決定することを含み得る。たとえば、オーダー管理モジュール２１４は、処理を実行することにより、ＲＳ８７８が提供するサブスクリプションの種類に関する契約を決定してもよい。契約を決定することは、サブスクリプション期間とＲＳ８７８が提供する１つ以上の資格に関する資格情報を決定することを含み得る。この契約は、顧客に正規プロダクトサポートを受ける資格を与えるといった、正規サブスクリプションに対応付けることができる契約条件に顧客を従わせてもよい。上記条件は、支払ったサブスクリプションに一致するサービスの使用期間を示していてもよい。ＲＡＳから変換された正規サブスクリプションは、ＲＡＳが提供する割当て限度よりも大きい使用割当て限度を顧客に提供し得る。
【０２０１】
変換プロセス８４２は、クラウドインフラストラクチャシステム１００のサポートシステム２１７内にサポート情報を構築することをさらに含んでいてもよい。顧客に割当てられた正規サブスクリプション（たとえばＲＳ８７８）に関するアカント情報をサポートシステムに与えることにより、正規サブスクリプションが提供するサポート（たとえば正規プロダクトサポート）を顧客が受けられるようにしてもよい。
【０２０２】
いくつかの実施形態において、変換プロセス８４２は、顧客のアカウント情報をＴＡＳ２０４および物理プロビジョニング層に注入することを含んでいてもよい。たとえば、ＲＡＳ２０４は、サブスクリプションフットプリントおよびアイデンティティドメインに、顧客アカウント番号をタグ付けする。
【０２０３】
図８Ｃは、さまざまな実施形態に従う再使用可能な匿名サブスクリプションのライフサイクルを管理するプロセスのフローチャート８８０である。いくつかの実施形態において、フローチャート８８０が示すプロセスは、サービスインフラストラクチャシステム（たとえばクラウドインフラストラクチャシステム１００）のすべてまたは一部によって実現し得る。
【０２０４】
図８Ｃを参照しながら説明する処理は、１つ以上のプロセッサによって実行されるソフトウェア（たとえばコード、命令、プログラム）、ハードウェア、またはこれらの組合わせによって実現し得る。ソフトウェアは、（たとえばメモリデバイス、非一時的なコンピュータ読取可能な記憶媒体上の）メモリに格納されていてもよい。図８Ｃに示される特定の一連の処理ステップは、限定を意図したものではない。代替の実施形態に従いその他のステップのシーケンスが実行されてもよい。たとえば、本発明の代替の実施形態は、先に概要を説明したステップを他の順序で実行する場合がある。加えて、図８Ｃに示される個々のステップは、この個々のステップに応じて適宜さまざまなシーケンスで実行されてもよい複数のサブステップを含み得る。さらに、特定のアプリケーションに応じてその他のステップを追加または削除してもよい。当業者は数多くの変形例、修正例、および代替例を認識するであろう。フローチャート８８０に示されるプロセスは、ブロック８８２から始まる。
【０２０５】
ブロック８８２において、１つ以上のサービスがサービスインフラストラクチャシステム（たとえば図１のクラウドインフラストラクチャシステム１００）に提供される。サービスインフラストラクチャシステムは、マルチテナント環境を含み得るまたは実現し得る。サービスの例は、ＣＲＭサービス、ＨＣＭサービス、Ｊａｖａ（登録商標）サービス、またはその他の計算サービスを含み得る。
【０２０６】
プロビジョニングされたサービスのうちの各サービスに、特定サービス向けデータ（たとえば図８Ｂの特定サービス向けデータ８７２）を対応付けてもよい。あるサービスに対応する特定サービス向けデータは、このサービスのコンフィギュレーションを示していてもよい。このコンフィギュレーションは、サービスを提供するために割当てられた１つ以上のリソースを含み得る。
【０２０７】
いくつかの実施形態において、１つ以上のサービスを提供することは、サービスのうちの１つへのアクセス要求を顧客から受ける前に、サービスインフラストラクチャシステムにおいてサービスのうちの１つ以上をプロビジョニングすることを含む。サービスは、１つ以上の基準に基づいてプロビジョニングしてもよい。たとえば、サービスは、サービスインフラストラクチャシステムのオペレーションに関連する１つ以上のメトリックに基づいてプロビジョニングしてもよい。別の例において、サービスを、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。他の例において、サービスを、サービスの種類に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。
【０２０８】
いくつかの実施形態において、１つ以上のサービスプールを作成することにより、既にプロビジョニングされているサービスへのアクセスを提供してもよい。先に説明したように、サービスインフラストラクチャシステムは、複数のサービスプールを維持し得る。１つのサービスプールは、複数のサブスクリプションを含み得る。複数のサブスクリプションは各々、サービスインフラストラクチャシステムが提供する少なくとも１つのサービスに対応付けられていてもよい。一例において、サービスプールは、複数のＲＡＳサブスクリプションを提供し得る。いくつかの実施形態において、サービスの種類、サービスプールによって利用できるようにされるサービスに対してプロビジョニングされるリソース、サブスクリプションの種類等に基づいて、サービスプールを対応付けてもよくまたは分類してもよい。サービスプール内のサブスクリプションに対応するサービスは、このサービスの要求がなされる前に、サービスインフラストラクチャシステムによって既にプロビジョニングされていてもよい。
【０２０９】
顧客によるサービスへのアクセス要求を、ブロック８８４で受ける。たとえば、要求８０２はクライアント装置２２４から受ける場合がある。要求は、要求されているサービスの必要条件を示していてもよい。たとえば、要求は、要求されているサービスの使用の種類を示す情報を含んでいてもよい。サービスインフラストラクチャシステムが、使用の種類を用いて、顧客が要求するサービスを判断してもよい。
【０２１０】
さまざまな局面において、顧客がサービスを要求したとき、クライアント装置のユーザインターフェイスにおいて、さまざまなオプションをクライアントに提示できる。１つのオプションは、要求されたサービスのすべてまたは一部をプロビジョニングするか否かの選択を含み得る。別のオプションは、要求されたサービスにとって望ましいサブスクリプションの種類（たとえばＲＡＳサブスクリプションまたは生産サブスクリプション）を含み得る。
【０２１１】
ブロック８８６で、処理を実行することにより、要求されたサービスが、サービスインフラストラクチャシステムのサービスプール（たとえばサービスプール８１０）内のサブスクリプションに対してプロビジョニングされているか否かを判断する。処理を実行することにより、１つ以上のサービスプール内の利用できるサブスクリプション（たとえばＲＡＳ）を分析し、利用できるサブスクリプションが要求されたサービスへのおアクセスを提供するか否かを判断してもよい。上述のように、サービスプールは複数のＲＡＳを含み得る。各ＲＡＳは、このＲＡＳが利用できる場合に顧客に割当てることができる。各ＲＡＳを検査することにより、このＲＡＳが提供するリソースおよび／またはサービスを判断してもよい。ＲＡＳ等のサブスクリプションは、要求から判断される情報（たとえば、顧客が要求するサブスクリプションの種類、要求されたサービスの使用の種類、要求されたサービスの期間、またはこれらを組合わせたもの）に一部基づいて、サービスプール内で特定できる。サービスプール内の各サブスクリプションに対応する特定サービス向けデータを処理することにより、顧客によって要求されたサービスのためのサブスクリプションの種類（たとえばＲＡＳサブスクリプション）のサブスクリプションを特定してもよい。
【０２１２】
要求されたサービスがプロビジョニングされたと判断することは、要求されたサービス等のサービスのためのサブスクリプションと提供する複数のサービスプールから１つのサービスプールを決定することを含み得る。いくつかの実施形態において、サービスプールを指定することにより、ある種類のサービスのための１つ以上のサブスクリプション（たとえば１つ以上のＲＡＳ）を提供してもよい。このため、サービスプールを決定することは、要求されたサービスにアクセスするためのＲＡＳを提供し得るサービスプールを特定することを含み得る。特定されたサービスプールを検査することにより、これらのサービスプール内のいずれかのＲＡＳが、要求されたサービスへのアクセスを有効にするか否かを判断してもよい。
【０２１３】
いくつかの実施形態において、複数のサービスプールから１つのサービスプールを決定することは、ユーザによって要求されたサービスに対するサブスクリプションの、少なくとも１つのサービスプール内における可用性に基づいていてもよい。たとえば、サービスプールの種類に基づいて、複数のサービスプールの中から１つのサービスプールを決定してもよい。サービスプールの種類は、顧客からの要求（たとえばブロック８８４で受けた要求）が示す情報に基づいて判断されてもよい。たとえば、サービスプールの種類を、要求されたサービス、顧客によって要求されたサブスクリプションの種類（たとえばＲＡＳサブスクリプション）、要求されたサービスの使用の種類、またはこれらを組合わせたものに基づいて、判断してもよく、これらのうちのいずれかまたは全てを要求が示していてもよい。
【０２１４】
ブロック８８８で、要求されたサービスへのアクセスのためのサブスクリプションを、サービスプール（たとえばブロック８８６で決定したサービスプール）から顧客に割当ててもよい。たとえば、図８ＡのＲＡＳ３  ８１６は顧客１に割当ててもよい８２４。ＲＡＳサブスクリプション等のサブスクリプションが顧客に割当てられた場合、このサブスクリプションに関連するデータ、たとえばＲＡＳに含まれる特定サービス向けデータ）を、顧客に割当てられたサブスクリプションに関する情報に対応付けて格納してもよい。たとえば、図８ＢのＲＡＳ８７０を、ＲＡＳ８７４が割当てられた顧客に割当ててもよい。この例において、特定サービス向けデータ８７２を、割当てられたＲＡＳサブスクリプションに対して格納された、割当てられたＲＡＳ８７４とともに格納してもよい。要求されたサービスのためのサブスクリプションをサービスプールから顧客に割当てることは、このサービスプールからこのサブスクリプションを削除することを含み得る。
【０２１５】
いくつかの実施形態において、サービスプール内のサブスクリプション（たとえばＲＡＳサブスクリプション）の可用性を、顧客からの需要に基づいて変更してもよい。よって、要求されたサービスへのアクセスのためのサブスクリプション（たとえばＲＡＳサブスクリプション）は、要求を受けたときに利用できない場合がある。いくつかの実施形態において、顧客から要求されたサービスに、このサービスへのアクセスのためのサブスクリプションがサービスプールに戻されたときに（たとえばサービスのためのサブスクリプションが顧客からサービスプールに再度割当てられたときに）、決定したサービスプールから顧客に割当ててもよい。
【０２１６】
ブロック８９０で、顧客（たとえばサービスを要求した顧客）に対応する特定顧客向けデータを、要求されたサービスに対応する特定サービス向けデータに対応付けてもよい。上述のように、特定顧客向けデータは、サービス（たとえばサブスクリプションが提供するサービス）の使用によって生成されたデータを含む。特定顧客向けデータは、生成されたときに、このデータを生成するのに使用されたサービスへのアクセスを提供するサブスクリプションのための特定サービス向けデータに対応付けて格納してもよい。少なくとも１つの例において、割当てられたＲＡＳ８７４に対応するサブスクリプションが提供するサービスの使用に関連する特定顧客向けデータ８７６を、割当てられたＲＡＳ８７４内の特定サービス向けデータに対応付けて格納してもよい。
【０２１７】
特定顧客向けデータをＲＡＳのための特定サービス向けデータに対応付けて格納することにより、特定顧客向けデータを、ＲＡＳが正規サブスクリプションに変換された場合にＲＡＳが提供するサービスのために保存してもよい。さらに、特定顧客向けデータを特定サービス向けデータに対応付けることで、ＲＡＳサービスへのアクセスが修正されたときの特定顧客向けデータの損失を防止してもよい。特定顧客向けデータを、ＲＡＳサブスクリプションから正規サブスクリプション（たとえば生産サブスクリプション）まで、このＲＡＳサブスクリプションが変換されてアクセスを異なるサブスクリプションに対して拡大する場合は、維持してもよい。
【０２１８】
処理を実行することにより、顧客のためのサブスクリプション（たとえばＲＡＳサブスクリプション）を変換するか否かを判断する。サブスクリプションは、図８Ｂを参照しながら説明した変換プロセス８４２等の変換プロセス（たとえば軽量パーソナリティ注入プロセス）によって変換してもよい。この変換プロセスは、サブスクリプション（たとえばブロック８８８で割当てられたサブスクリプション）が前に提供したサービスにアクセスするために顧客に割当てられるサブスクリプションの種類を変更することを含み得る。たとえば、サブスクリプションを正規サブスクリプションに変換してもよい。正規サブスクリプションは、サービスプールから割当てられるサブスクリプションの条件と異なる条件でサービスへのアクセスを提供し得るサブスクリプションである。
【０２１９】
サブスクリプションを変換する理由は数多くあるであろう。たとえば、顧客が、ある期間サービスを使用するためにサブスクリプションを購入する希望があることを示す場合がある。別の例では、顧客が、あるサービスについて包括的なレベルのサービスサポートよりも多くのサポートを得ることを希望することを表明する場合がある。よって、この場合、顧客はサブスクリプションを、サービスに対するプレミアムサポートを提供するものに変換してもよい。
【０２２０】
いくつかの実施形態において、顧客に対するサブスクリプションを変換するか否かを判断することは、顧客から受けた入力に基づいていてもよい。たとえば、クラウドインフラストラクチャシステム１００は、サブスクリプションを変換するか否かについての決定を示す顧客からの入力を要求してもよい。顧客は、サブスクリプションを変換するか否かを表明した入力を提供してもよい。この入力は、サブスクリプションを変換するための１つ以上の基準を示していてもよい。この基準は、サブスクリプションを変換した後のサブスクリプションの期間を示していてもよい。この基準は、料金、サービスの種類、サポートの種類、またはサブスクリプションの種類に関連するその他の基準等の、サブスクリプションに関するその他の選択を示していてもよい。いくつかの実施形態において、顧客は、ブロック８８４で受けた要求を入力していてもよい。この要求において、顧客は、サブスクリプションをいつどのようにして変換すべきかを示していてもよい。
【０２２１】
いくつかの実施形態において、顧客のためのサブスクリプションを変換するか否かの判断を、サービスインフラストラクチャシステムが行なってもよい。サービスインフラストラクチャシステムは、サービスインフラストラクチャシステムが決定した情報に基づいてサブスクリプションを他の種類のサブスクリプションに変換するか否かを判断してもよい。いくつかの実施形態において、顧客は、いつどのようにしてサブスクリプションを変換すべきかを示す１つ以上の規則を提供してもよい。たとえば、この判断はさまざまなファクタに基づいて行ない得る。これらのファクタは、サービスのためのサービスインフラストラクチャシステムのオペレーションに関連するメトリック、サービスに対する需要に対応付けられた１つ以上のメトリック、サービスの種類に対応付けてられた１つ以上のメトリック、またはこれらを組合わせたものを含むが、これらに限定されるものではない。メトリックは、顧客が提供する規則によって定められてもよい。
【０２２２】
顧客に対するサブスクリプションを変換すると判断した場合、処理を８９４に進めればよい。顧客に対するサブスクリプションを変換しないと判断した場合、処理を８９６に進めればよい。
【０２２３】
ブロック８９４で、顧客に対するサブスクリプション（たとえばブロック８８８で顧客に割当てられるサブスクリプション）を変換してもよい。ブロック８９８で、フローチャート８８８が示すプロセスは終了する。
【０２２４】
少なくとも１つの実施形態において、顧客に対するサブスクリプションは、以前にサブスクリプションが提供したサービスへのアクセスのために顧客に割当てたサブスクリプションの種類を変更することによって変換してもよい。たとえば、サブスクリプションが、サービスの期間（たとえばトライアル期間）を有するＲＡＳサブスクリプションの場合、このサービスのためのサブスクリプションの種類を、ブロック８８８で割当てたサブスクリプションと異なるサービス期間を有する異なる種類のサブスクリプション（たとえば正規サブスクリプション）に変換してもよい。サブスクリプションを異なる種類のサブスクリプションに変換することにより、顧客は、サービスに対するニーズに応じて、より長いかより短い、異なる期間のサービスにアクセスできる。一例において、サブスクリプションが、トライアル期間によって定められたＲＡＳサブスクリプションのとき、顧客は、ＲＡＳサブスクリプションから正規サブスクリプション（たとえば生産サブスクリプション）への変換を希望する場合がある。正規サブスクリプションにより、顧客は生産環境を実現することができるであろう。
【０２２５】
先に説明したように、サブスクリプションは変換プロセスによって変換し得る。顧客から入力が与えられた場合、サブスクリプションを、顧客から提供された基準を用いて変換してもよい。たとえば、サブスクリプションの種類は、顧客からの入力に基づいて選択してもよい。いくつかの実施形態において、サブスクリプションの種類を、サービスインフラストラクチャシステムが決定した情報に基づいて選択してもよい。
【０２２６】
変換プロセスが完了すると、サービスプールから割当てたサブスクリプションをサービスプールから削除する。サブスクリプションをサービスプールから削除することによって、サブスクリプションが別の顧客に割当てられることはなくなるであろう。
【０２２７】
次にブロック８９２に戻って、顧客に対するサブスクリプションを変換しないことに決めた場合、ブロック８９６で、サブスクリプション（たとえばブロック８８８で顧客に割当てられたサブスクリプション）をサービスプールに戻してもよい。サブスクリプションは、顧客からサービスプールにサブスクリプションを割当てることによって、サービスプールに戻してもよい。たとえば、ブロック８８８で顧客に割当てたサブスクリプションを、今度はサービスプールに割当てることによって、サブスクリプションをサービスプールに戻してもよい。たとえば、図８ＡのＲＡＳ３  ８１６を、顧客１からサービスプール８１０にＲＡＳ３  ８１６として割当ててもよい８２６。サブスクリプションをサービスプールに戻すと、サブスクリプションは再び１以上の他の顧客（たとえば同じ顧客または別の顧客）に割当てられてもよい。
【０２２８】
サブスクリプションをサービスプールに戻すことは、特定顧客向けデータと、サブスクリプションによってアクセスが可能なサービスに対応する特定サービス向けデータとの対応関係を解消することを含み得る。説明のための一例において、顧客が、割当てられたサブスクリプションが提供するサービスを購入しないことに決めた場合、特定顧客向けデータを、サブスクリプションをサービスプールに割当てる前に、サブスクリプションから削除する。特定顧客向けデータを、サブスクリプションをサービスプールに割当てる前にこのサブスクリプションから削除することにより、このサブスクリプションを再度割当てることができ、故に他の顧客によって再使用できる。いくつかの実施形態において、特定顧客向けデータを、顧客のアイデンティティに対応付けて格納してもよい。特定顧客向けデータを顧客のアイデンティティに対応付けて格納することにより、特定顧客向けデータを、ＲＡＳをサービスプールに戻す前に、簡単に削除することができる。
【０２２９】
サブスクリプションをサービスプールに戻すことは、割当て解除プロセスを実現することを含み得る。割当て解除プロセスは、サブスクリプションが提供するサービスの種類に基づいて実行してもよい。一例において、サービスとしてのデータベース（ＤＢＡＡＳ）である提供されたサービスに対する割当て解除プロセスは、ブロック８８８で割当てたサブスクリプションが提供するサービスの顧客が作成した１以上のユーザを削除することを含み得る。別の例において、オブジェクトストレージサービスであるサービスの割当て解除プロセスは、サブスクリプションがＲＡＳサブスクリプションである場合に顧客によって作成されたストレージオブジェクトを削除することを含み得る。いくつかの実施形態において、割当て解除プロセスは、サブスクリプション（たとえばＲＡＳサブスクリプション）のリソース使用統計を再初期化することにより、サブスクリプションが割当てられた別の顧客が、このサブスクリプションについて提供される割当量のリソースを使用できるようにすることを含み得る。
【０２３０】
ブロック８９８で、フローチャート８８０が示すプロセスは終了する。
サブスクリプションのクローニング
特定の実施形態において、クラウドインフラストラクチャシステム１００は、その他のインスタンスプロビジョニングを可能にし得る。その他のインスタンスプロビジョニングは、顧客が使用するためのその他の環境を提供するサービスを構築し得る。サービスの種類の例は、サービスとしてのソフトウェア（ＳａａＳ）カテゴリ、サービスとしてのプラットフォーム（ＰａａＳ）カテゴリ、サービスとしてのインフラストラクチャ（ＩａａＳ）カテゴリ、またはハイブリッドサービスを含むその他のサービスのカテゴリを含むが、これらに限定されるものではない。
【０２３１】
一局面において、クラウドインフラストラクチャシステム１００は、既存のサービスに基づいて（たとえば既存のサービスをクローニングして）サービスへのアクセスをユーザに提供できる。既存のサービスに基づくサービスは、既存のサービスのための既存のサブスクリプション（たとえばベースサブスクリプション）に基づいてサブスクリプション（たとえば「クローンサブスクリプション」）を作成することにより、提供してもよい。クローンサブスクリプションは、追加の環境（「クローン環境」）として顧客が使用し得るものである。別の局面において、複数のクローンサブスクリプションをベースサブスクリプションに基づいて作成してもよく、各クローンサブスクリプションはベースサブスクリプションの既存のサービスに基づくサービスのためのサブスクリプションを提供する。クローンサブスクリプションによって提供されるサービスは、ベースサブスクリプションによって提供される計算環境とは別の、顧客のための追加の計算環境を提供し得る。
【０２３２】
クローンサブスクリプションは、ベースサブスクリプションによって提供されるサービスに対応する使用の種類とは異なり得る使用の種類に対して指定するまたはそれを意図することができる。顧客は、ベースサブスクリプションに対応付けられた環境の使用目的と異なる目的のクローニングされた環境を使用する能力を備えることにより、多くの利益を享受することができる。たとえば、クローンサブスクリプションは、テスト、顧客／従業員の訓練、顧客／従業員に対するデモンストレーション、顧客／開発のためのプロトタイピング、開発、ロードバランシングに使用されてもよく、ベースサブスクリプションは、生産等の他の目的のために使用されてもよい。本明細書に開示する使用の種類は、例示を目的として記載している。クローンサブスクリプションおよびベースサブスクリプションの使用の種類は、顧客のニーズに応じて変化し得る。
【０２３３】
一例において、顧客は、新たな特徴を、この特徴を生産環境にデプロイする前にクローン環境においてテストするまたはプロトタイピングするために生産環境のクローン環境を実現すべくクローンサブスクリプションを要求する場合がある。新たな特徴を、生産に適用する前にクローン環境でテストまたはプロトタイピングする機能によって、顧客は、プロダクトをテストし実現することができるであろう。プロトタイピングによって、顧客は、提案したプロダクト／特徴に対するフィードバックを、クローンサブスクリプションのために提供された環境を用いてこれらをホストすることにより、ベースサブスクリプションが提供するサービスを用いて実現された既存の生産環境に影響を与えることなく、受けることができるであろう。クローン環境においてプロトタイピングおよびテストされる特徴は、生産環境とは異なり得る。なぜなら、顧客はこれらの特徴を生産環境で実現することを、その準備ができるまでは、望まないであろうからである。
【０２３４】
別の例において、クローンサブスクリプションを、ロードバランシングのために使用してもよい。ミッションクリティカルでないワークフローはクローン環境にオフロードすることができ、ミッションクリティカルなワークフローのみを生産環境で実行することができる。これにより、生産環境に対する負荷が軽減されるので、ミッションクリティカルなワークフローのパフォーマンスを改善することができる。
【０２３５】
別の例において、クローンサブスクリプションが提供する環境により、顧客はデモンストレーションおよび訓練等のタスクを実行することができ、ベースサブスクリプションが提供する環境は、生産環境として使用し得る。たとえば、クローンサブスクリプションを使用することにより、内部の従業員（たとえばマーケティングおよび販売担当者）を訓練することができる、または、製品の特徴を顧客に対して実演することができる。このようなタスクは生産環境とは異なる環境で実行することが望ましいであろう。生産環境はこのような用途の影響を受ける可能性がある。このように、クローン環境は、始めから全く新しい環境を構成して実現しなくても、異なる目的のために自動的に構成された追加の環境を顧客に提供する。
【０２３６】
既存のサブスクリプションに基づいて１つ以上のクローンサブスクリプションを作成する機能によって、顧客は、複製ではなくても同様の環境を作成することに要するコストを削減できる。いくつかの実施形態において、クローンサブスクリプションの取得に要するコストは、ベースサブスクリプションのコストよりも遥かに少ないであろう。クローンサブスクリプションは既存のサービスに基づいてプロビジョニングし得るので、クローンサービスを実現するコストを削減できる。このようにして、クローンサブスクリプションに要するコストの削減という利益を顧客は享受する。しかしながら、コストの削減と引き換えに、クローンサブスクリプションのために提供される特徴は、ベースサブスクリプションとは異なり得る。たとえば、クローンサブスクリプションについて顧客に提供されるリカバリサービス（たとえば高可用性およびディザスタリカバリ）のレベルは、ベースサブスクリプションについてこの顧客に提供されるサービスとは異なり得る。別の例において、クローンサブスクリプションの複製のレイテンシは、ベースサブスクリプションよりも大きいであろう。
【０２３７】
クローンサブスクリプションを、このクローンサブスクリプションの作成のもとになったサブスクリプションに対応付けてもよい。クローンサブスクリプションを、このクローンサブスクリプションを作成するもとになったサブスクリプションに対応付けるとき、サブスクリプションのライフサイクルとクローンサブスクリプションのライフサイクルを互いに対応付けてもよい。いくつかの実施形態において、クローンサブスクリプションをベースサブスクリプションに対応付けるとき、ベースサブスクリプションに対してなされた変更を、対応付けられたクローンサブスクリプションに反映させてもよい。この変更は１つ以上の規則に基づいて適用してもよい。クローンサブスクリプションの管理の例を以下において図９Ａ〜図９Ｃおよび図１０を参照しながら説明する。
【０２３８】
クローンサブスクリプションが提供するサービスのコンフィギュレーションを、ベースサブスクリプションが提供するサービスとは別に調整してもよい。クローンサブスクリプションのコンフィギュレーションの調整の例は、このクローンサブスクリプションを用いてアクセスできるユーザの数であるユーザカウントの調整、このサービスについて有効／無効にされるコンポーネントの調整、および／またはクローンサブスクリプションの期間の調整を含み得る。クローンコンフィギュレーションの変更は、クローンの作成時に要求してもよく、クローンサブスクリプションのコンフィギュレーションに対する操作を通して後に要求してもよい。クローンコンフィギュレーションの変更の例は、図９Ｃおよび図１０を参照しながら説明する。
【０２３９】
次に図９Ａ〜図９Ｃを参照して、本実施形態のいくつかの実施形態に従うクローンサブスクリプションを提供するためのさまざまな実施形態が示されている。図９Ａは、いくつかの実施形態に従うクローンサブスクリプションを提供するためのシステム環境の簡略化したブロック図を示す。図９Ｂは、いくつかの実施形態に従うサブスクリプションのデータ構造の一例を示す。図９Ｃは、クローンサブスクリプションをしかるべく管理するための規則の例を示す。クローンサブスクリプションは、規則に従いサブスクリプションとの対応関係に基づいて管理してもよい。
【０２４０】
図９Ａには、クラウドインフラストラクチャシステム１００との通信のためにそれぞれクライアント装置２２４、クライアント装置２２６、およびクライアント装置２２８と対応付けられている顧客１、顧客２、および顧客３等のいくつかの顧客とともに、システム環境９００が示されている。クラウドインフラストラクチャシステム１００は、顧客に対する１つ以上のサブスクリプション（たとえばサブスクリプション９１０）を管理し得る。サブスクリプション９１０は、クラウドインフラストラクチャシステム１００が提供する１つ以上のサービスへのアクセスのために作成された１つ以上のサブスクリプションに対応するデータを含み得る。サブスクリプション９１０はベースサブスクリプションを含み得る。たとえば、サブスクリプション９１０は、サブスクリプション９１２（「Ｓ１」）、サブスクリプション９１４（「Ｓ２」）、およびサブスクリプション９１６（「Ｓ３」）を含み得る。クラウドインフラストラクチャシステム１００は、サブスクリプション９１０のうちの１つを１以上の顧客に割当てている場合がある。図９Ａに示す例において、Ｓ２  ９１４およびＳ３  ９１６はそれぞれ、サブスクリプションＳ２  ９３２およびサブスクリプションＳ３  ９３４として顧客１に割当てられている。よって、Ｓ２  ９３２およびＳ３  ９３４は既存のベースサブスクリプションである。サブスクリプション９３０（「顧客１サブスクリプション」）等の、顧客に割当てられたサブスクリプションは、この顧客に対応付けられた記憶域において維持してもよい。サブスクリプションを格納するためのデータ構造の例を、図９Ｂを参照しながら説明する。
【０２４１】
少なくとも１つの例において、顧客（「顧客１」）は、クラウドインフラストラクチャシステム１００からサービス９０４を取得してもよい。サービス９０４はクローンサービスを含み得る。クローンサービス（たとえばサービス９０４）へのアクセスは、クラウドインフラストラクチャシステム１００が確立したクローンサブスクリプションによって提供されてもよい。サービス９０４は、クライアント装置２２４を操作している顧客１による要求９０２に基づいて顧客１に提供してもよい。さまざまな局面において、顧客には、サービスのオーダー時にさまざまなオプションを提示できる。顧客は、オーダーの各部分を完全にプロビジョニングするか部分的にプロビジョニングするかを選択してもよい。顧客は、サービスへのアクセスを取得するために１つ以上のクローンサブスクリプションを選択してもよい。以下ではクローンサブスクリプションを提供するプロセスについてさらに説明する。
【０２４２】
先に説明したように、クラウドインフラストラクチャシステム１００のＴＡＳモジュール２０４は、各サブスクリプションオーダーに対応付けられたビジネスプロセスを管理し、ビジネスロジックを適用してサブスクリプションオーダーをプロビジョニングに進めるか否かを判断する、オーケストレーションコンポーネントとして機能する。ＴＡＳモジュール２０４は、顧客からのサービスの要求に基づいてサブスクリプションオーダーを処理するプロセスを扱う。いくつかの実施形態において、ＴＡＳモジュール２０４は、既存のサブスクリプションに基づいてクローンサービスの要求（たとえば要求９０２）がなされたか否かを判断できる。ＴＡＳモジュール２０４は、顧客による要求によって示される使用の種類に基づいてクローンサービスのためのクローン環境を構築してもよい。ＴＡＳモジュール２０４は、クローンサブスクリプションに対して明示的になされた要求に基づいて、クローンサブスクリプションが要求されたと判断できる。
【０２４３】
顧客からクラウドインフラストラクチャシステム１００への、サービスの要求（たとえば要求９０２）は、このサービスを提供するために使用し得る情報を含み得る。具体的には、要求は、要求されたサービスについて顧客に提供するクローンサブスクリプションをクラウドインフラストラクチャシステム１００が決定できるようにする情報（たとえばオーダー情報）を含み得る。いくつかの実施形態において、要求は、サービスの種類、または要求するサービスについて意図された使用の種類を示していてもよい。使用の種類の例は、開発、テスト、訓練、プロトタイピング、ロードバランシング、マーケティング、販売、設計、生産等を含むがこれらに限定されなくてもよい。いくつかの実施形態において、クラウドインフラストラクチャシステム１００に対する要求は、顧客が所望するサブスクリプションの種類、たとえばクローンサブスクリプションまたは正規サブスクリプションを示し得る。いくつかの実施形態において、要求は、要求するサービスに関する１つ以上の必要条件を示していてもよい。この必要条件は、料金制約（たとえば最低料金および／または最高料金）、要求するサービスの使用の時間制限、このサービスを使用するユーザの量、所望のサービスサポートの種類、サービスの使用に関連するその他の必要条件、またはこれらの組合わせを含み得る。クラウドインフラストラクチャシステム１００は、顧客の条件に基づいて、要求されたサービスへのアクセスを可能にするために顧客に提供するクローンサブスクリプションを決定してもよい。サブスクリプションは既存のサブスクリプション（たとえばベースサブスクリプション）に基づいて提供してもよい。
【０２４４】
クローンサブスクリプションの要求を受けたと判断すると、ＴＡＳモジュール２０４は、クローンプロセスのためのオペレーションを実現してクローンサブスクリプションを確立してもよい。図９Ａに示される例において、クラウドインフラストラクチャシステム１００は、顧客１からの要求９０２に基づいて、クローンサブスクリプションオーダーに関連する１つ以上のクローンサービスをプロビジョニングしてもよい。たとえば、ベースサブスクリプションＳ３  ９３４を用いてクローニングプロセス９３６およびクローニングプロセス９３８を実現することにより、クローンサブスクリプション９４０（「Ｃ１」）およびクローンサブスクリプション９４２（「Ｃ２」）をそれぞれ確立してもよい。
【０２４５】
クローンプロセスのためのオペレーションは、図３Ａおよび図３Ｂを参照しながら説明したステップを実行することによりサブスクリプションオーダーを処理してＣ１  ９４０およびＣ２  ９４２を確立することを含み得る。サブスクリプションオーダーを処理することは、クローンサブスクリプションに対応付けられた料金を決定することを含み得る。クローンサブスクリプションの料金はさまざまな基準に基づき得る。これらの基準は、クローンサブスクリプションに関して提供されるクローンサービスについて意図された使用の種類およびベースサブスクリプションの期間を含むが、これらに限定されるものではない。いくつかの実施形態において、料金は、クローンサブスクリプションに関連して要求された追加の種類のサービスに応じて決まり得る。いくつかの実施形態において、クローンサブスクリプションの料金は、クローンサブスクリプションのコンフィギュレーションに基づいていてもよく、料金は、クローンサブスクリプションの変化に基づいて調整してもよい。図９Ａに示される例において、Ｃ１  ９４０およびＣ２  ９４２は、要求９０２に含まれる情報に基づいて確立してもよい。
【０２４６】
クローンサブスクリプションを確立すると、ＴＡＳモジュール２０４は、クローンサブスクリプションＣ１  ９４０およびＣ２  ９４２各々に対するクローンサービスのプロビジョニングの要求を、ＳＤＩモジュール２０６に送ってもよい。クローンサービスをプロビジョニングすることは、リソースを割当てることと、サブスクリプションオーダーを満たすのに必要なこれらのリソースを構成することによってクローンサービスを提供することを含み得る。クローニングプロセスは、ベースサブスクリプションに対して有効にされたサービスについてプロビジョニングされたリソースを複製することを含み得る。クローニングプロセスは、クローンサービスを、ベースサブスクリプションに対して提供されたサービスの構成に類似する（たとえばクローン）ように構成することを含み得る。図９Ａの例について、Ｃ１  ９４０およびＣ２  ９４２に対するクローンサービスは、ベースサブスクリプションＳ３  ９３４についてプロビジョニングされたサービスに基づいてクローンとしてプロビジョニングしてもよい。
【０２４７】
図９Ｂには、本発明のいくつかの実施形態に従うサブスクリプションのデータ構造の一例が示されている。クラウドインフラストラクチャシステム１００が１つ以上のデータ構造を実現することにより、サブスクリプションに関連するデータを格納してもよい。データ構造の例は、連結リスト、テーブル、アレイ、ハッシュテーブル、グラフ等を含むが、これらに限定されるものではない。
【０２４８】
サブスクリプション９４４は、クラウドインフラストラクチャシステム１００が確立したサブスクリプション（「ベースサブスクリプション」）に関連する情報を格納するためのデータ構造の一例である。図９Ｂの例において、サブスクリプション９４４は、顧客のための１つのサブスクリプションに対応するデータとともに示されている。しかしながら、サブスクリプションのデータ構造は、任意の数の顧客に対応する１つ以上のサブスクリプションに関する情報を格納し得る。
【０２４９】
サブスクリプション９４４は、顧客に対応するデータ（たとえば特定顧客向けデータ９５２）を含み得る。特定顧客向けデータ９５２は、サブスクリプション９４４に対応するベースサブスクリプションを用いてアクセスされるサービスの使用に対応するデータを含み得る。たとえば、特定顧客向けデータ９５２は、サービスに対するサブスクリプションがアクセスする販売クラウドサービスに対応する顧客メールボックスを含み得る。別の例において、特定顧客向けデータ９５２は、データベースサービスの使用によって生成されたテーブルを含み得る。
【０２５０】
サブスクリプション９４４は、サブスクリプション９４４に対応するベースサブスクリプションがアクセスできるサービスに対応するデータ（たとえば特定サービス向けデータ９５４）を含み得る。特定サービス向けデータ９５４は、サブスクリプションについて有効にされたサービスを提供することに関連するデータを含み得る。たとえば、特定サービス向けデータ９５４は、サブスクリプション９４４に対応するベースサブスクリプションによって提供されたプロダクト（たとえばサービスまたはコンポーネント）に関連する特定プロダクト向けメタデータを含み得る。いくつかの実施形態において、特定サービス向けデータ９５４は、ベースサブスクリプションに対して提供されたサービスのコンフィギュレーション（たとえばリソースの物理的コンフィギュレーション）を示していてもよい。コンフィギュレーションは、サービスに対して有効または無効にされる１つ以上のコンポーネント（たとえば特徴）等のリソース制約を示していてもよい。
【０２５１】
サブスクリプション９４４は、顧客に提供される１つ以上のサブスクリプションに関連するサブスクリプションデータ９５６を含み得る。いくつかの実施形態において、サブスクリプションデータ９５６のうちのすべてまたは一部が特定サービス向けデータ９５４に含まれていてもよい。サブスクリプションデータ９５６は、サブスクリプション９４４に対応するサブスクリプションに対して構築されたアカウントのアカウント情報を含み得る。アカウント情報は、顧客アイデンティティと対応付けてもよい。顧客アイデンティティに関する情報（たとえばユーザアイデンティ、パスワード、コンタクト情報等）は、顧客アイデンティティデータ構造（たとえば顧客アイデンティティオブジェクト）に格納されていてもよい。サブスクリプションデータ９４４は、サブスクリプションに関連する契約およびこの契約によって与えられる資格に関するサブスクリプション契約情報を含み得る。サブスクリプションデータ９４４は、サブスクリプションに関連するサブスクリプションサポート情報を含み得る。
【０２５２】
サブスクリプションデータ９４４は、サブスクリプションデータ９５６によって特定されたサブスクリプションに対応付けられた１つ以上のクローンサブスクリプションに関する情報を示すクローンサブスクリプションデータ９５８を含み得る。クローンサブスクリプションデータ９５８は、サブスクリプション９４４に対応するベースサブスクリプションと１つ以上のクローンサブスクリプションとの対応関係を示す情報を含み得る。たとえば、クローンサブスクリプション９５８は、ベースサブスクリプションと、データ構造９６０に対応するクローンサブスクリプション（たとえば「クローンサブスクリプション１」との対応関係９８２を示し得る。別の例において、クローンサブスクリプション９５８は、サブスクリプション９４４に対応するベースサブスクリプションと、データ構造９７０に対応するクローンサブスクリプション（「クローンサブスクリプション２」）との対応関係９８４を占めし得る。クローンサブスクリプション１および２はいずれもサブスクリプション９４４に対応するベースサブスクリプションに基づいて確立し得る。
【０２５３】
ベースサブスクリプション（たとえばサブスクリプション９４４に対応するベースサブスクリプション）のライフサイクルとクローンサブスクリプション（たとえばクローンサブスクリプション１またはクローンサブスクリプション２）のライフサイクルを互いに対応付けてもよい。ベースサブスクリプションおよびクローンサブスクリプションのライフサイクルが互いに対応付けられている場合、ベースサブスクリプションについて提供されるサービスのコンフィギュレーションまたはオペレーションの変更または更新は、クローンサブスクリプションが提供するクローンサービスに伝搬されてもよい。たとえば、特定サービス向けデータ９５４に格納されているコンフィギュレーションの変更は、ベースサブスクリプションに対応付けられているクローンサブスクリプション１およびクローンサブスクリプション２のコンフィギュレーションに適用してもよい。
【０２５４】
いくつかの実施形態において、ベースサブスクリプションのライフサイクルとクローンサブスクリプションのライフサイクルの対応関係は、１つ以上の規則に基づいていてもよい。規則は、ベースサブスクリプションを基準として定めてもよい。サブスクリプション９４４は、クローンサブスクリプション１およびクローンサブスクリプション２それぞれとの対応関係９８２および９８４のライフサイクルを管理するための１つ以上の規則を示す規則データ９７２を含み得る。以下では規則の例を図９Ｃを参照しながら説明する。いくつかの実施形態において、クローンサブスクリプションが提供するサービスへのアクセスおよびベースサブスクリプションが提供するサービスへのアクセスを、クローンサブスクリプションとベースサブスクリプションの間の対応関係に基づく規則によって管理してもよい。
【０２５５】
クローンサブスクリプション９６０およびクローンサブスクリプション９７０は、クラウドインフラストラクチャシステム１００が確立したクローンサブスクリプションに関連する情報を格納するためのデータ構造の例である。図９Ｂの例において、クローンサブスクリプション９６０およびクローンサブスクリプション９７０は各々、顧客のための１つのクローンサブスクリプション、クローンサブスクリプション１（たとえば図９ＡのＣ１  ９４０）およびクローンサブスクリプション２（たとえばＣ２  ９４２）に対応するデータとともに示されている。クローンサブスクリプションのためのデータ構造は、任意の数の顧客に対応する１つ以上のクローンサブスクリプションに関する情報を格納し得る。
【０２５６】
クローンサブスクリプションデータ構造（たとえばクローンサブスクリプション９６０またはクローンサブスクリプション９７０）は、特定顧客向けデータ（たとえば特定顧客向けデータ９６２）を含み得る。クローンサブスクリプションのための特定顧客向けデータは、クローンサブスクリプションを用いてアクセスされるサービスの使用に対応するデータを含み得る。
【０２５７】
クローンサブスクリプションデータ構造は、特定サービス向けデータ（たとえば特定サービス向けデータ９６４）を含み得る。クローンサブスクリプションのための特定サービス向けデータは、このクローンサブスクリプションについて提供されるサービスの１つ以上の属性等のクローンサブスクリプションに関する情報を示していてもよい。特定サービス向けデータは、プロダクト（たとえばサービスまたはコンポーネント）に関する特定プロダクト向けメタデータを含み得る。特定サービス向けデータは、クローンサブスクリプションに対して提供されるクローンサービスのコンフィギュレーション（たとえばリソースの物理的コンフィギュレーション）を示していてもよい。コンフィギュレーションは、クローンサービスに対して有効または無効にされる１つ以上のコンポーネント（たとえば特徴）等のリソース制約を示していてもよい。ベースサブスクリプションに基づいて確立されたクローンサブスクリプションの顧客には、ベースサブスクリプションのすべての特徴またはコンポーネントが提供されなくてもよい。
【０２５８】
顧客は、クローンサブスクリプションのコンフィギュレーション（たとえばクローンコンフィギュレーション）を、ベースサブスクリプションのコンフィギュレーション（たとえばベースコンフィギュレーション）から変化させることを選択してもよい。顧客は、クローンサブスクリプションが要求されたときにまたはクローンサブスクリプションがプロビジョニングされた後で、クローンコンフィギュレーションを規定することができる。クローニングプロセスは、ベースコンフィギュレーションとクローンコンフィギュレーションとを用いて実現し得る。クローンコンフィギュレーションがベースコンフィギュレーションと異なる場合、クローニングプロセスは、ベースコンフィギュレーションとの相違については、クローンコンフィギュレーションに従ってクローンサブスクリプションを構成してもよい。よって、クローンサービスは、クローンコンフィギュレーションがベースコンフィギュレーションと異なるときは、ベースサブスクリプションに対するサービスと異なるやり方でプロビジョニングされる場合がある。
【０２５９】
いくつかの実施形態において、クローンサブスクリプションのためのクローンコンフィギュレーションは、ベースサブスクリプションのコンフィギュレーションとは異なり、このクローンサブスクリプションに関して１つ以上のコンポーネントが有効／無効にされることを示していてもよい。一例において、セキュリティまたは記憶に関連するインフラストラクチャサービスコンポーネントは無効にされてもよい。別の例において、ベースサブスクリプションについて有効にされるサービスコンポーネント（たとえばアクティビティストリームクラウドコンポーネントまたは販売予測コンポーネント）は、クローンサブスクリプションに対して有効にしてもよい。別の例において、大きなインデックスのようなパフォーマンスの特徴は、クローンサブスクリプションについては有効にしなくてもよい。
【０２６０】
いくつかの実施形態において、クローンコンフィギュレーションを、ユーザカウント等のサイズメトリックに従い、ベースサブスクリプションと異なる量に調整することができる。サイズメトリックは、クローンサブスクリプションの異なる用途に応じて調整してもよい。
【０２６１】
いくつかの実施形態において、クローンサブスクリプションを、その期間がベースサブスクリプションの期間よりも短くなるように構成してもよい。たとえば、ベースサブスクリプションについては３年の期間を要求しクローンサブスクリプションについては１年の期間を要求してもよい。顧客は、これを選択することにより、１年間だけであると予測される開発／テストアクティビティをサポートしてもよい。
【０２６２】
クローンサブスクリプションは、ベースコンフィギュレーションとの比較におけるクローンコンフィギュレーションの調整に基づいてプロビジョニングしてもよい。クローンコンフィギュレーションは、クローンサブスクリプションが割当てられた顧客のニーズの変化に基づいてプロビジョニング後に調整してもよい。
【０２６３】
いくつかの実施形態において、クローンサブスクリプションを、クローンコンフィギュレーションを示す１つ以上の規則に基づいて構成してもよい。この規則は、クローンサブスクリプションのために格納された規則データ（たとえば規則データ９６６）に基づいて決定することができる、または、クローンサブスクリプションの確立のもとになったベースサブスクリプションのために格納された規則データ（たとえば規則データ９７２）に基づいて決定することができる。
【０２６４】
複数のクローンサブスクリプション（たとえばＣ１  ９４０およびＣ２  ９４２）各々に対応するクローンコンフィギュレーションを、互いに独立して修正してもよい。クローンサブスクリプションは、互いに異なるやり方で構成してもよい。クローンサブスクリプションのためのコンフィギュレーションは、顧客が各クローンサブスクリプションを異なる目的で使用することを意図するときには変化させることができる。たとえば、Ｃ１  ９４０のクローンコンフィギュレーションはテストのために修正してもよい。Ｃ２  ９４２のクローンコンフィギュレーションは、修正せずにそのままにしておき、ベースサブスクリプションを用いて実現されるプロダクト環境と同様の生産環境において特徴を実施するために、ベースサブスクリプションＳ３  ９３４のベースコンフィギュレーションと類似する（たとえばベースコンフィギュレーションのクローン）ようにしてもよい。
【０２６５】
いくつかの実施形態において、クローンサブスクリプションのためのクローンコンフィギュレーションをベースサブスクリプションから構築するために、スキーマを作成してもよい。スキーマは、サービスの種類、特定のサービス、特定のプロダクト商品、サービスのサブスクリプションに対する他の種類のカテゴリ、またはこれらの組合わせに対して規定することができる。よって、スキーマは、このスキーマに基づいてクローンサブスクリプションを決定するために使用できる規則９９０等の規則を示し得る。
【０２６６】
クローンサブスクリプションデータ構造は、クローンサブスクリプション（たとえばクローンサブスクリプション１）とベースサブスクリプションとの対応関係（たとえば対応関係９８２）のライフサイクルを管理するための１つ以上の規則を示す規則データ９６６を含み得る。以下において規則データの例を図９Ｃを参照しながら説明する。
【０２６７】
クローンサブスクリプションデータ構造に含まれるサブスクリプションデータ（たとえばサブスクリプションデータ９６８）は、クローンサブスクリプション（たとえばクローンサブスクリプション１）に関するサブスクリプション情報を含み得る。サブスクリプションデータは、サブスクリプションに関する識別情報（たとえばサブスクリプション識別子またはサブスクリプションの名称）、サブスクリプション期間、およびユーザのアイデンティティ情報（たとえば管理者および非管理者）を示していてもよい。いくつかの実施形態において、クローンサブスクリプションのためのサブスクリプションデータは、このクローンサブスクリプションを確立するもとになったベースサブスクリプションを特定するペアレントサブスクリプション識別子を含み得る。たとえば、サブスクリプションデータ９６８は、クローンサブスクリプション１を確立するもとになったベースサブスクリプション９４４に対応するベースサブスクリプションを特定するペアレントサブスクリプションＩＤを含み得る。ペアレントサブスクリプションＩＤは、クローンサブスクリプション（たとえばクローンサブスクリプション１）を作成するもとになったベースサブスクリプションに対応するベースサブスクリプションデータ構造（たとえばベースサブスクリプション９４４）に対するリファレンスを示してもよい。リファレンスを用いてベースサブスクリプションに基づいて生成されたクローンサブスクリプションに対応するデータを特定することができる。
【０２６８】
図９Ｃは、さまざまな実施形態に従うクローンサブスクリプションを管理するための規則９９０の例を示す。規則９９０は、一組の規則等の１つ以上の規則に対応する情報を含み得る。規則９９０は、クラウドインフラストラクチャシステムが予め定めたものであってもよく、顧客が定めたものであってもよく、または、これらを組合わせたものであってもよい。規則９９０は、データファイル（たとえば拡張マークアップ言語（ＸＭＬ）ファイル）において定めてもよく、または、クライアント装置を介して顧客から受けた入力に基づいていてもよい。
【０２６９】
顧客は規則を顧客レベルで定めてもサブスクリプションレベルで定めてもよい。顧客レベルの規則は、顧客が作成したサブスクリプション（たとえばクローンサブスクリプション）を基準として定められてもよい。いくつかの実施形態において、顧客レベルの規則は、顧客が作成した特定のプロダクトのクローンを基準として定められてもよい。サブスクリプションレベルの規則は、ベースサブスクリプションを基準として、サブスクリプションレベルの規則が、規則を定める対象であるベースサブスクリプションから確立されたクローンサブスクリプションに適用されるように定められてもよい。これらの種類の規則は、サブスクリプションの開始時に適用されてもよく、後にサブスクリプションが変更されるときに適用されてもよい。
【０２７０】
規則９９０を用いて、ベースサブスクリプションと１つ以上のクローンサブスクリプション（たとえばクローンサブスクリプション１およびクローンサブスクリプション２）の対応関係を管理してもよい。ベースサブスクリプション（たとえばベースサブスクリプション９４４）に対する変更は、規則９９０に基づいてクローンサブスクリプションに適用してもよい。たとえば、ベースサブスクリプションのコンフィギュレーションの変更を、このベースサブスクリプションに基づいて作成されたクローンサブスクリプションのクローンコンフィギュレーションの変更として適用してもよい。先に説明したように、クローンコンフィギュレーションはベースコンフィギュレーションから変化させてもよい。
【０２７１】
以下はこのような規則のいくつかの例である。
・ベースサブスクリプションから作成されたクローンは、最初はベースサブスクリプションと同じコンフィギュレーションを有していなければならないが、クローンの期間はベースサブスクリプションの期間よりも短くてもよい。
【０２７２】
・コンポーネントを有効にする／無効にする等の、ベースサブスクリプションに対して行なわれるすべての機能的変更は、ベースサブスクリプションに対応付けられているクローンに適用し得るが、ユーザカウントを増す／減じる等のサイズ変更はクローンに適用してはならない。
【０２７３】
・ベースサブスクリプションを更新するとき、現在ベースサブスクリプションに対応付けられているすべてのクローンもそれぞれの現在の期間にわたって更新しなければならない。
【０２７４】
・ベースサブスクリプションを終了するとき、ベースサブスクリプションに対応付けられているすべてのクローンも終了させねばならない。
【０２７５】
少なくとも１つの例において、規則９９０は、１つ以上の条件９９２に基づいていてもよい。条件９９２は、１つ以上の基準に基づいて定めることができる。たとえば、条件９９２は、１つ以上のメトリック（たとえばクラウドインフラストラクチャシステム１００内のオペレーションに関連するメトリック）に基づく。メトリックの例は、システムメトリック、プロダクトメトリック、コンポーネントメトリック、顧客メトリック等を含むが、これらに限定されるものではない。条件は、ベースサブスクリプションに対して実行されているオペレーションにも基づき得る。ベースサブスクリプションのオペレーションの例は、「オンボードクローン」（たとえばベースサブスクリプションに基づいて作成されるクローンサブスクリプション）、「コンポーネント追加」、「コンポーネント削除」、「ユーザカウント増大」、および「ユーザカウント低減」を含み得るが、これらに限定されるものではない。いくつかの実施形態において、条件は、論理和、論理積、否定（たとえば、「ユーザのクローンサブスクリプションカウント」＜１００ＡＮＤベースサブスクリプションオペレーション＝「コンポーネント追加」）のような論理演算子を伴う論理関係として表わすことができる。規則は、その規則の条件各々が満たされたときに満たされ得る。
【０２７６】
別の例において、規則９９０は１つ以上の手順９９４を含み得る。たとえば、手順９９４は１つ以上のクラス９９６に基づいていてもよい。クラス９９６は、クローンサブスクリプションに適用される一種のオペランドであってもよい。オペランドの種類の例は、ベースサブスクリプションに対して実行される直接的なオペレーションに関して先に述べたものである。別の例において、オペランドは、「オンボードクローン」（すなわちペアレントサブスクリプションに基づいてクローンを作成）等のオペレーションに対応し得る。その他のオペランドは、「拡張」、「更新」、「終了」および「延長」を含み得る。拡張は、ユーザカウントの増大および低減等のオペレーションを含み得る。終了は、クローンサブスクリプションの終了等のオペレーションを含み得る。更新は、１つ以上のコンポーネントをクローンサブスクリプションに追加することまたは削除すること等のオペレーションを含み得る。延長は、クローンサブスクリプションの期間の延長等のオペレーションを含み得る。規則を満たすと、クローンコンフィギュレーションはこの規則に基づいて修正してもよい。
【０２７７】
別の例において、手順９９４は、１つ以上のアクションに基づいていてもよい。アクション９９８は、クローンサブスクリプションに対して実行できる１つ以上のオペレーション（「クローンサブスクリプションオペレーション」）に基づいて定めることができる。クローンサブスクリプションオペレーションのいくつかの例は、「すべてのデータをクローニングする」、「データをクローニングしない」、「選択されたデータをクローニングする」、「コンポーネントを追加する」、「指定リストにあればコンポーネントを追加する」、「コンポーネントを削除する」、および「指定リストにあればコンポーネントを削除する」である。クローンサブスクリプションは、クラス９６６のオペランドの種類およびアクション９９８の指定されたオペレーションに基づいて修正してもよい。
【０２７８】
いくつかの実施形態において、規則を、１つ以上の条件９９２、１つ以上の手順９９４、１つ以上のアクション９９８、またはこれらの組合わせによって定めてもよい。規則は、その規則に対して定められた１つ以上の基準が満たされたことで満たされてもよい。規則が満たされると、クローンコンフィギュレーションを、規則によって示された変更に基づいて変更してもよい。
【０２７９】
図１０は、さまざまな実施形態に従うクローンサブスクリプションのライフサイクルを管理するためのプロセスのフローチャートである。具体的には、フローチャート１０００が示すプロセスは、サービスのクローンサブスクリプションを顧客に提供することができ、かつ、一組の規則（たとえば規則９９０）に基づいてクローンサブスクリプションのライフサイクルを管理することができる。いくつかの実施形態において、フローチャート１０００が示すプロセスは、サービスインフラストラクチャシステム（たとえばクラウドインフラストラクチャシステム１００）のすべてまたは一部によって実現し得る。
【０２８０】
図１９を参照しながら説明する処理は、１つ以上のプロセッサによって実行されるソフトウェア（たとえばコード、命令、プログラム）、ハードウェア、またはこれらの組合わせによって実現し得る。ソフトウェアは、（たとえばメモリデバイス、非一時的なコンピュータ読取可能な記憶媒体上の）メモリに格納されていてもよい。図１０に示される特定の一連の処理ステップは、限定を意図したものではない。代替の実施形態に従いその他のステップのシーケンスが実行されてもよい。たとえば、本発明の代替の実施形態は、先に概要を説明したステップを他の順序で実行する場合がある。加えて、図１０に示される個々のステップは、この個々のステップに応じて適宜さまざまなシーケンスで実行されてもよい複数のサブステップを含み得る。さらに、特定のアプリケーションに応じてその他のステップを追加または削除してもよい。当業者は数多くの変形例、修正例、および代替例を認識するであろう。フローチャート１０００に示されるプロセスは、ブロック１００２から始まる。
【０２８１】
ブロック１００２において、１つ以上のサービスがサービスインフラストラクチャシステム（たとえば図１のクラウドインフラストラクチャシステム１００）に提供される。サービスインフラストラクチャシステムは、マルチテナント環境を含み得るまたは実現し得る。サービスの例は、ＣＲＭサービス、ＨＣＭサービス、Ｊａｖａ（登録商標）サービス、またはその他の計算サービスを含み得る。
【０２８２】
いくつかの実施形態において、１つ以上のサービスを提供することは、サービスのうちの１つへのアクセス要求を顧客から受ける前に、サービスインフラストラクチャシステムにおいてサービスのうちの１つ以上をプロビジョニングすることを含む。サービスは、１つ以上の基準に基づいてプロビジョニングしてもよい。たとえば、サービスは、サービスインフラストラクチャシステムのオペレーションに関連する１つ以上のメトリックに基づいてプロビジョニングしてもよい。別の例において、サービスを、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。他の例において、サービスを、サービスの種類に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。
【０２８３】
ブロック１００４において、顧客がサービスにアクセスできるようにしてもよい。サービスにアクセスできるようにすることは、サブスクリプション（たとえばベースサブスクリプション）をユーザに提供することを含み得る。たとえば、図９Ａを参照して、顧客（「顧客１」）に、サブスクリプションＳ２  ９３２およびサブスクリプションＳ３  ９３４を提供してもよい。サブスクリプションは、サービスに付与されたアクセスを示していてもよい。いくつかの実施形態において、クライアント装置（たとえばクライアント装置２２４、２２６、２２８のうちのいずれか１つ）は、ユーザインターフェイスを提供することによってユーザがサービスにアクセスできるようにしてもよい。サービスへのアクセスを可能にするサブスクリプションに関する情報は、ユーザインターフェイスを介して顧客に示してもよい。
【０２８４】
顧客からの要求をブロック１００６で受ける。たとえば、要求９０２は、クライアント装置２２４から受ける場合がある。要求は、ブロック１００４で顧客に対して可能にされたサービスに基づいてクローン（たとえばクローンサービス）としての他のサービスにアクセスすることである場合がある。いくつかの実施形態において、上記他のサービスは、ブロック１００４で可能にされたサービスの用途と異なる用途のために顧客が要求する場合がある。たとえば、上記他のサービスを用いて、新たな特徴を、この特徴を生産システム上で可能にする前にテストしてもよい。一方、ブロック９０４で可能にされたサービスは、生産システムの実現のために使用し得る。上記他のサービスは、ブロック１００４で顧客に対して可能にされたサービスと同様であってもこれに関連していてもよく、または、上記他のサービスはこのサービスと異なっていてもよい。
【０２８５】
ブロック１００８で、上記他のサービスを、ブロック１００４で可能にされたサービスのクローンとして構築してもよい。サービスのクローンを構築することは、クローンサービスに対するサブスクリプション（たとえばクローンサブスクリプション）を決定することを含み得る。クローンサブスクリプションは、サービスに対応するサブスクリプションのクローニングに基づいて決定してもよい。上記他のサービスを、ブロック１００４で可能にされたサービスに対応するサブスクリプションのクローンとしてのサブスクリプション（「クローンサブスクリプション」）によって顧客に提供してもよい。たとえば、サブスクリプションＣ１  ９４０を、図９ＡのサブスクリプションＳ３  ９３４に基づいてクローンとして生成９３６してもよい。この例において、Ｃ１  ９４０は、Ｓ３  ９３４によって提供されたサービスに基づいてクローンサービスを提供してもよい。よって、クローンサブスクリプションは、サービスのクローンを構築するために作成してもよい。クローンサブスクリプションは、「クローニングされた」サービスへのアクセスを提供し得る。
【０２８６】
ブロック１０１０で、ブロック１００４で可能にされたサービスを、ブロック１００８で可能にされたサービス（「クローンサービス」）と対応付けてもよい。２つのサービスを、これらのサービスに対応するサブスクリプション間の対応関係に基づいて互いに対応付けてもよい。たとえば、クローンサービスのためのクローンサブスクリプション１  ９６０を、サービスのためのサブスクリプション９４４（たとえばベースサブスクリプション）と対応付けてもよい（たとえば対応関係９８２）。
【０２８７】
いくつかの実施形態において、サービスに対応するベースサブスクリプションをクローンサービスに対応するクローンサブスクリプションに対応付けることは、サブスクリプションのライフサイクルをクローンサブスクリプションのライフサイクルに対応付けることを含み得る。このようにして、ベースサブスクリプションのライフサイクルとクローンサブスクリプションのライフサイクルが関連付けられる。いくつかの実施形態において、ベースサブスクリプションについて可能にされたサービスをクローンサブスクリプションについて構築されたクローンサービスに対応付けることは、これらのサービスのライフサイクル同士を対応付けることを含み得る。先に説明したように、２つのサブスクリプションを互いに対応付けるとき、ベースサブスクリプションに対する変更を、クローンサブスクリプションに反映させてもよい。たとえば、ベースサブスクリプションに対応するサービスが終了されたとき、顧客によるクローンサービスへのアクセスは終了される。別の例において、ベースサブスクリプションに対応するサービスへのアクセスが更新されたとき、クローンサービスへのアクセスは、ベースサブスクリプションのための更新されたアクセスに基づいて更新されてもよい。
【０２８８】
いくつかの実施形態において、サブスクリプション（たとえばベースサブスクリプションとクローンサブスクリプション）間の対応関係は、一組の規則（たとえば図９Ｃの規則９９０）に基づいていてもよい。一組の規則のすべてまたは一部が、予め定められていてもよく、またはサブスクリプションに従うデフォルトに基づいていてもよい。たとえば、一組の規則は、ベースサブスクリプションが提供するプロダクト（たとえばサービス）に基づいていてもよい。顧客は、入力を与えて、予め定められた一組の規則を修正するかまたは新たな一組の規則を作成する。
【０２８９】
ブロック１０１２で、他のまたはクローンサービスへのアクセスを、一組の規則に基づいて管理してもよい。たとえば、図９Ｂのクローンサブスクリプション１  ９６０に対して提供されるクローンサービスへのアクセスを、一組の規則、たとえば図９Ｃの９９０に基づいて管理してもよい。フローチャート１００はブロック１０１４で終了する。
【０２９０】
さまざまな実施形態において、クローンサービスを管理するために使用される規則は、１つ以上の条件と１つ以上のアクションを規定する。１つ以上の条件が満たされると、１つ以上のアクションが、対応付けられたクローンサブスクリプションに対して実行される。上記１つ以上のアクションは、上記のようにクローンサブスクリプションに対して顧客が行ない得る直接アクションに対応し得る。
【０２９１】
いくつかの実施形態において、クローンサービスがベースサービスに対応付けられているとき、クローンサービスへのアクセスは、一組の規則（たとえば規則９９０）によって管理してもよい。クローンサービスへのアクセスは、ベースサービスに対する変更に応じて規則を用いて管理してもよい。図９Ｃを参照しながら先に説明したように、１つ以上の規則を用いて、クローンサブスクリプションのライフサイクルを、したがってクローンサブスクリプションに対して提供されるクローンサービスへのアクセスを管理してもよい。たとえば、クローンサービスへのアクセスは、このクローンサービスに対応付けられたベースサービスが終了したときに終了してもよい。
【０２９２】
いくつかの実施形態において、クローンサービスへのアクセスを、このクローンサービスに対して実行される一種類の手順に対応付けられた１つ以上のアクションを実行することによって管理してもよい。上記一種類の手順は、１つ以上の基準に基づいて決定してもよい。たとえば、一種類の手順は、クローンサービスに対応付けられたベースサービスの１つ以上のメトリック（たとえばこのサービスのパフォーマンス）に基づいて決定してもよい。別の基準は、ベースサービスに対する変更に基づいてベースサービスに対して実行されるオペレーションであってもよい。いくつかの実施形態において、一種類の手順はアクションに対応付けることができ、これらのアクションのうちのいくつかは他の規則に属していてもよい。たとえば、ある規則では、一種類の手順が「更新」でありアクションが「コンポーネント追加」であってもよく、別の規則では、一種類の手順が「更新」であるがアクションは「コンポーネント削除」であってもよい。
【０２９３】
図１１は、さまざまな実施形態に従うサブスクリプションのクローニングのプロセスのフローチャート１１００である。いくつかの実施形態において、サービスインフラストラクチャシステム（たとえば図１のクラウドインフラストラクチャシステム１００）のすべてまたは一部が、図１１に示すプロセスを実現してもよい。
【０２９４】
図１１を参照しながら説明した処理によって、顧客は、クローンサブスクリプションを確立するもとになったサブスクリプションを基準としてクローンサブスクリプションを修正することができる。修正は、クローンサブスクリプションの作成時に要求されてもよく、クローンサブスクリプションに対する直接的なオペレーションによって後に要求されてもよい。先に説明したように、クローンサブスクリプションの修正は、クローンサブスクリプションに対して提供されるサービスに関連するコンフィギュレーションの修正を含んでいてもよく、サブスクリプションのコンフィギュレーションの修正を含んでいてもよい。
【０２９５】
図１１に示される処理は、１つ以上のプロセッサによって実行されるソフトウェア（たとえばコード、命令、プログラム）、ハードウェア、またはこれらの組合わせによって実現し得る。ソフトウェアは、（たとえばメモリデバイス、非一時的なコンピュータ読取可能な記憶媒体上の）メモリに格納されていてもよい。図１１に示される特定の一連の処理ステップは、限定を意図したものではない。代替の実施形態に従いその他のステップのシーケンスが実行されてもよい。たとえば、本発明の代替の実施形態は、先に概要を説明したステップを他の順序で実行する場合がある。加えて、図１１に示される個々のステップは、この個々のステップに応じて適宜さまざまなシーケンスで実行されてもよい複数のサブステップを含み得る。さらに、特定のアプリケーションに応じてその他のステップを追加または削除してもよい。当業者は数多くの変形例、修正例、および代替例を認識するであろう。フローチャート１１００に示されるプロセスは、ブロック１１０２から始まる。
【０２９６】
ブロック１１０２で、サービスに対するサブスクリプション（たとえばベースサブスクリプション）を顧客に提供してもよい。たとえば、サービス９０４を、クライアント装置２２４の顧客１に提供してもよい。サービスを提供することは、サービスをプロビジョニングすることを含み得る。サービスは、顧客によって示されたコンフィギュレーションに従ってプロビジョニングしてもよい。サービスを提供することは、サービスに対するサブスクリプションを決定することと、このサブスクリプションに基づいてサービスへのアクセスを可能にすることとを含み得る。さまざまな実施形態において、有効なサブスクリプションのリストをクライアント装置に提供してもよい。顧客はこれらのサブスクリプションの中から１つを選択すればよい。
【０２９７】
ブロック１１０４で、サブスクリプション（たとえばブロック１１０２で提供されたサブスクリプション）をクローニングするためのコンフィギュレーション（たとえばクローンコンフィギュレーション）を決定してもよい。先に説明したように、クローンコンフィギュレーションは、既存のサブスクリプションに基づいてクローニングされるサブスクリプションを構成するための１つ以上の基準を示していてもよい。たとえば、クローンコンフィギュレーションは、クローンサービスの使用期間（たとえばベースサブスクリプションに対応するサービスの期間よりも短い）を示していてもよい。別の例において、クローンコンフィギュレーションは、クローンサブスクリプションに対して提供されるサービスのために有効／無効にするコンポーネントを示していてもよい。
【０２９８】
クローンコンフィギュレーションは、さまざまな方法を用いて決定し得る。いくつかの実施形態において、クローンコンフィギュレーションは、顧客から受けた入力に基づいて決定してもよい。この入力は、クローンサブスクリプションの意図される用途または必要条件を示す場合がある。クローンコンフィギュレーションは、顧客からの入力に基づいて決定してもよい。たとえば、クライアント装置を操作している顧客が、情報をサービスインフラストラクチャシステム（たとえばクラウドインフラストラクチャシステム１１０）に提供してもよい。この情報はクローンコンフィギュレーション（たとえばクローンバリエーション）を示していてもよい。
【０２９９】
いくつかの実施形態において、クローンコンフィギュレーションを、サービスインフラストラクチャシステムが決定した分析情報に基づいて決定してもよい。分析情報は、顧客に対してサービスインフラストラクチャシステムが実行するオペレーションに関連するメトリック情報を含み得る。分析情報は、サービスインフラストラクチャシステムによって提供されたサービスを用いて顧客が実行する動作に関する情報を含み得る。
【０３００】
ブロック１１０６で、クローンサブスクリプションを、クローンコンフィギュレーション（たとえばブロック１１０４で決定したコンフィギュレーション）に基づいて作成してもよい。クローンサブスクリプションは、サブスクリプション（たとえばブロック１１０２で提供されたサブスクリプション）およびクローンコンフィギュレーションに基づいて作成してもよい。クローンサブスクリプションは、先に説明したように、顧客の好み、予め定められた規則、および図９Ｃを参照しながら説明した他の基準に基づいて作成してもよい。
【０３０１】
ブロック１１０８で、１つ以上のオペレーションを実行することによりクローンサブスクリプション（たとえばブロック１１０６で作成されたクローンサブスクリプション）を管理してもよい。この（これらの）オペレーションは、クローンサブスクリプションのライフサイクル中に実行してもよい。オペレーションを、クローンサブスクリプションに対して直接実行することにより、クローンサブスクリプションに対して提供されるクローンサービスを修正することができる。フローチャート１１００はブロック１１１０で終了する。
【０３０２】
いくつかの実施形態において、直接的なオペレーションは、クローンサブスクリプションに対応するクローンコンフィギュレーションを修正することを含み得る。クローンコンフィギュレーションは、顧客から受けた入力に基づいて修正してもよく、またはサービスインフラストラクチャシステムが決定した情報に基づいて修正してもよい。顧客のニーズに基づいて顧客がクローンサブスクリプションを修正できるようにすることが有用であろう。直接的なオペレーションは、クローンサブスクリプションに対応するクローンサービスに対して実行されるオペレーションを含み得るが、これらに限定されるものではない。このオペレーションは、クローンサービスのために提供されるコンポーネントを有効／無効にすること、または、クローンサービスへのアクセスが許可されたユーザのサイズ変更を調整すること（たとえばユーザカウントを増大／低減すること）を含み得る。
【０３０３】
既存のサービスに基づいたサブスクリプションの提供
特定の実施形態において、クラウドインフラストラクチャシステム１００は、本明細書に記載のさまざまな技術を用い、既存のサービスに基づいてサービスへのアクセスをユーザに提供することができる。このような技術によって、要求されたサービスのためのリソースをプロビジョニングする際の処理時間を短縮することができ、それにより、サービスへのアクセスを顧客に提供する際の処理効率を改善することができる。クラウドインフラストラクチャシステム１００は、ユーザからの要求に基づいてサービスの種類を判断することができるとともに、既存のサービスに基づいてプロビジョニングを用いてサービスへのアクセスを可能にするサブスクリプションを提供することができる。
【０３０４】
一局面において、クラウドインフラストラクチャシステム１００は、顧客間で共有されるサービスのためにプロビジョニングされたリソース（たとえばハードウェアおよびサービスインスタンス）を有効にすることができる。クラウドインフラストラクチャシステム１００は、サービスにアクセスする顧客ごとにこれらのリソースを再度プロビジョニングする必要はないであろう。たとえば、ＲＡＳを規定することにより、顧客がサービスへのアクセスを共有できるようにすることができる。ＲＡＳがサービスプール内にあり利用できるときにこのＲＡＳを顧客に割当ることができる。ＲＡＳを用いてアクセス可能なサービスのためのリソースは、このＲＡＳが割当てられた顧客が再使用できるよう、このＲＡＳのためにプロビジョニングされたままにしておいてもよい。
【０３０５】
ＲＡＳを用いてアクセス可能なサービスによって、顧客は、サービスに対する正規サブスクリプションの購入前にこのサービスを試すことができる。よって、顧客はサービスに対するサブスクリプションのためのリソースのプロビジョニングにおける遅れを回避することができる。ＲＡＳは、顧客がＲＡＳに対するサブスクリプションを購入することに決めた場合は正規サブスクリプションに変換してもよい。正規サブスクリプションと提供するためのプロセスの効率を改善することができる。なぜなら、ＲＡＳは、サブスクリプションのためのリソースのプロビジョニングに要する時間を短縮するプロセスを用いて変換できるからである。ＲＡＳのためのリソースとデータは、正規サブスクリプションのために保持しておくことができる。
【０３０６】
別の局面において、クラウドインフラストラクチャシステム１００は、既存のサービスに基づいてクラウドサービスへのアクセスを顧客に提供することができる。既存のサービスに基づいたサービスを、既存のサービスのための既存のサブスクリプション（たとえばベースサブスクリプション）に基づいてサブスクリプション（たとえば「クローンサブスクリプション」）を作成することによって、提供してもよい。クラウドインフラストラクチャシステム１００は、ベースサブスクリプションによって提供されるサービスのコンフィギュレーションに基づいてクラウドサービスを準備することができる。このようにして、要求されたサービスに対するサブスクリプションを確立するのに要する処理期間を、ベースサブスクリプションのコンフィギュレーションに従ってクローンサービスを構成することにより、短縮することができる。顧客は、クローンサービスを、ベースサブスクリプションによって提供される計算環境とは別の、追加の環境として使用してもよい。先に説明したように、クローンサブスクリプションは、ベースサブスクリプションによって提供されるサービスに対応する使用の種類とは異なり得る使用の種類に対して指定するまたはそれを意図することができる。
【０３０７】
図１２は、さまざまな実施形態に従う既存のサブスクリプションを用いてサービスのためのサブスクリプションを提供するプロセスのフローチャート１２００である。特に、フローチャート１２００が示すプロセスは、既にプロビジョニングされているサービスに基づいてサブスクリプションを顧客に提供し得る。サブスクリプションは、再使用可能な匿名サブスクリプション、または、顧客によって要求されたサービスにアクセスするためのクローンサブスクリプションのいずれか一方であってもよい。いくつかの実施形態において、フローチャート１２００が示すプロセスは、サービスインフラストラクチャシステム（たとえばクラウドインフラストラクチャシステム１００）のすべてまたは一部によって実現し得る。
【０３０８】
図１２を参照しながら説明する処理は、１つ以上のプロセッサによって実行されるソフトウェア（たとえばコード、命令、プログラム）、ハードウェア、またはこれらの組合わせによって実現し得る。ソフトウェアは、（たとえばメモリデバイス、非一時的なコンピュータ読取可能な記憶媒体上の）メモリに格納されていてもよい。図１２に示される特定の一連の処理ステップは、限定を意図したものではない。代替の実施形態に従いその他のステップのシーケンスが実行されてもよい。たとえば、本発明の代替の実施形態は、先に概要を説明したステップを他の順序で実行する場合がある。加えて、図１２に示される個々のステップは、この個々のステップに応じて適宜さまざまなシーケンスで実行されてもよい複数のサブステップを含み得る。さらに、特定のアプリケーションに応じてその他のステップを追加または削除してもよい。当業者は数多くの変形例、修正例、および代替例を認識するであろう。フローチャート１２００に示されるプロセスは、ブロック１２０２から始まる。
【０３０９】
ブロック１２０２において、１つ以上のサービスがサービスインフラストラクチャシステム（たとえば図１のクラウドインフラストラクチャシステム１００）に提供される。サービスインフラストラクチャシステムは、マルチテナント環境を含み得るまたは実現し得る。サービスの例は、ＣＲＭサービス、ＨＣＭサービス、Ｊａｖａ（登録商標）サービス、またはその他の計算サービスを含み得る。
【０３１０】
いくつかの実施形態において、１つ以上のサービスを提供することは、これらのサービスのうちの１つへのアクセス要求を顧客から受ける前に、サービスインフラストラクチャシステムにおいてこれらのサービスのうちの１つ以上をプロビジョニングすることを含む。サービスは、１つ以上の基準に基づいてプロビジョニングしてもよい。たとえば、サービスは、サービスインフラストラクチャシステムのオペレーションに関連する１つ以上のメトリックに基づいてプロビジョニングしてもよい。別の例において、サービスを、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。他の例において、サービスを、サービスの種類に対応付けられた１つ以上のメトリックに基づいてプロビジョニングしてもよい。
【０３１１】
ブロック１２０４で、サービスインフラストラクチャシステムが提供するサービスへのアクセスの要求を顧客から受ける。たとえば、要求８０２または要求９０２はクライアント装置２２４から受ける場合がある。顧客による要求は、顧客が要求するサービスの使用の種類を示していてもよい。使用の種類の例は、テスト、開発、ロードバランシング、生産、訓練、マーケティング、またはこれらを組合わせたものを含むが、これらに限定されるものではない。いくつかの実施形態において、顧客による要求は、顧客が所望するサブスクリプションの種類を示していてもよい。サブスクリプションの種類は、再使用可能なサブスクリプション（たとえばＲＡＳ）またはクローンサブスクリプションを示し得る。
【０３１２】
いくつかの実施形態において、要求は、要求するサービスに関する１つ以上の必要条件を示していてもよい。この必要条件は、料金制約（たとえば最低料金および／または最高料金）、要求するサービスの使用の時間制限、このサービスを使用するユーザの量、所望のサービスサポートの種類、サービスの使用に関連するその他の必要条件、またはこれらの組合わせを含み得る。
【０３１３】
ブロック１２０６で、顧客から要求されたサービスに基づいてサブスクリプションの種類を決定するための処理を実行する。サブスクリプションの種類は、クローンサブスクリプションまたは再使用可能なサブスクリプション（たとえばＲＡＳ）のうちの一方である。サブスクリプションの種類は、サブスクリプションの種類、使用の種類、および／または１つ以上の必要条件等の、要求内の情報に基づいて判断してもよい。要求されたサービスについて決定したサブスクリプションの種類を用いて、要求されたサービスへのアクセスを可能にするために顧客に提供するサブスクリプションを決定できる。
【０３１４】
１２０８で、第１のサービス（たとえば１２０４で要求されたサービス）にアクセスするためのサブスクリプションを顧客に提供する。このサブスクリプションは、１２０６で判断したサブスクリプションの種類に基づいて提供される。第１のサービスは、サービスインフラストラクチャシステムが提供するサービス（たとえばブロック１２０２で提供されるサービス）のうちの１つのサービスを用いて提供されてもよい。
【０３１５】
一例において、生産環境の新たな特徴のテストまたは開発といった使用の種類を要求が示すときに、第１のサービスにアクセスするためのクローンサブスクリプションを顧客に提供してもよい。この例において、クローンサブスクリプションを選択し得る理由は、クローンサブスクリプションの確立のために使用されるベースサブスクリプションは顧客によるスペックに従って既に構成されていてもよく、クローンサブスクリプションはベースサブスクリプションのコンフィギュレーションに基づいてクローニングされるからである。再使用可能なサブスクリプションは提供しなくてもよい。なぜなら、再使用可能なサブスクリプションが提供するサービスのためにさらに他のコンフィギュレーションが必要となるかもしれないからである。クローンサブスクリプションは、要求されたサービスを構築するのに要する処理時間を短縮できる。なぜなら、顧客はクローンサブスクリプションを構成するための情報を提供しなくてもよいからである。再使用可能なサブスクリプションではなくクローンサブスクリプションを選択することにより、クローンサブスクリプションの管理のために実行する追加処理を減じてもよい。たとえば、クローンサブスクリプションのライフサイクルをベースサブスクリプションのライフサイクルに対応付けて、ベースサブスクリプションを管理するために実行されるオペレーションに基づいてクローンサブスクリプションを自動的に管理（たとえば更新または終了）してもよい。
【０３１６】
別の例において、第１のサービスの要求が、使用の種類としてテストを示しかつ要求するサービスの使用の時間制限を示すときは、再使用可能なサブスクリプションを顧客に提供してもよい。この例において、クローンサブスクリプションではなく再使用可能なサブスクリプションを提供し得る理由は、クローンサブスクリプションの作成の基礎とすることができるベースサブスクリプションを顧客がまだ持っていないことである場合がある。再使用可能なサブスクリプションは、顧客に提供するのに望ましいであろう。なぜなら、再使用可能なサブスクリプションのためのリソースが既にプロビジョニングされているであろうからである。さらに、再使用可能なサブスクリプションは、現在の顧客が再使用可能なサブスクリプションの使用を終了したときには他の顧客に再度割当ててもよい。再使用可能なサブスクリプションは、顧客が追加のコンフィギュレーションを必要としないときに顧客に提供すればよい。
【０３１７】
いくつかの実施形態において、サブスクリプションの種類がクローンサブスクリプションのとき、サブスクリプションを顧客に提供することは、第１のサービス（たとえば既存のサービス）に対する第１のサブスクリプションに基づいて第１のクローンサブスクリプションを確立することと、第１のクローンサブスクリプションを、一組の規則に基づいて第１のサブスクリプションに対応付けることを含む。第１のクローンサブスクリプションは第２のサービスへのアクセスを提供し得る。第１のクローンサブスクリプションは、サブスクリプションとして顧客に提供してもよい。
【０３１８】
第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることは、第１のクローンサブスクリプションのライフサイクルを第１のサブスクリプションのライフサイクルに対応付けることと含み得る。第２のサービスへのアクセスは、第１のクローンサブスクリプションおよび第１のサブスクリプションのライフサイクルの対応関係に基づいて、第１のサービスへのアクセスが終了したときに終了してもよい。いくつかの実施形態において、第１のクローンサブスクリプションのライフサイクルと第１のサブスクリプションのライフサイクルを相互に対応付けた場合、第２のサービスへのアクセスは、顧客からの要求に基づいた第１のサービスへのアクセスの更新に基づいて修正してもよい。
【０３１９】
いくつかの実施形態において、一組の規則を用いることにより、第１のクローンサブスクリプションと第１のサブスクリプションの対応関係を管理してもよい。一組の規則は、第１のサービスのクローンとしての第２のサービスの用途を示していてもよい。一組の規則は、第２のサービスへのアクセスの期間を示していてもよい。一組の規則は、第２のサービスへのアクセスが許可されるユーザの数を示していてもよい。第２のサービスへのアクセスが許可されるユーザの数は、第１のサービスへのアクセスが許可されるユーザの数と異なっていてもよい。一組の規則は、第２のサービスのコンフィギュレーションを示していてもよい。第２のサービスのコンフィギュレーションは第１のサービスのコンフィギュレーションと異なっていてもよい。
【０３２０】
いくつかの実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、サービスインフラストラクチャシステム内のサービスプールにおいて第１のサービスがプロビジョニングされていると判断することと、第１のサービスのための第１のサブスクリプションをサービスのためのサブスクリプションとして顧客に割当てることとを含む。第１のサブスクリプションを割当てることは、サービスプールから顧客に第１のサービスを割当てることを含み得る。第１のサービスを顧客に割当てることは、第１のサービスをサービスプールから削除することを含み得る。第１のサービスについて、特定顧客向けデータを顧客に対応付けてもよい。特定顧客向けデータは、第１のサービスに対応する特定サービス向けデータに対応付けてもよい。
【０３２１】
ブロック１２１０において、第１の顧客に提供したサブスクリプションを管理してもよい。サブスクリプションの種類がクローンサブスクリプションのとき、サブスクリプションを管理することは、第１のサービスの変更に応じて、サブスクリプションによる要求されたサービスへのアクセスを決定することを含み得る。サービスへのアクセスは、一組の規則を用いて決定してもよい。サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サブスクリプションを管理することは、サブスクリプションが終了したときに第１のサービスを顧客からサービスプールに割当てることを含み得る。第１のサービスをサービスプールに割当てることは、特定顧客向けデータと第１のサービスに対応する特定サービス向けデータとの対応関係を解消することを含み得る。第１のサービスがサービスプールに戻されると、第１のサービスをサービスプールから１以上の他の顧客に再度割当ててもよい。
【０３２２】
フローチャート１２００は、ブロック１２１２で終了する。
図１３は、本発明の実施形態に従う、テナント環境の提供に関わるさまざまなインタラクションの高レベルの全体像を示す。
【０３２３】
（１）で、Ｊａｖａサービスに対するテナント要求がＴＡＳ２０４からＳＤＩ２０６に送られる。ＳＤＩ２０６は、要求されたＪａｖａサービスを、再使用可能な匿名サブスクリプションのプールからプロビジョニングする。ＳＤＩ２０６はＳＤＩコネクタ６１２を含む。ＳＤＩコネクタ６１２は、Ｎｕｖｉａｑコネクタ６２０、ＩＤＭコネクタ６２２、ＤＢコネクタ６１４、およびアセンブリビルダ６２４を含む。
【０３２４】
上記のように、テナント要求を受ける前に、ＳＤＩ２０６は１つ以上の再使用可能な匿名サブスクリプションの１つ以上のプールをプロビジョニングする。たとえば、ＳＤＩ２０６が新たなＪａｖａサブスクリプションのプロビジョニングを必要とするとき、（２）で、匿名アセンブリに対する要求が、ＳＤＩコネクタ６１２のアセンブリビルダコネクタ６２４からアセンブリビルダ５０２に送られる。（３）で、仮想マシンＯＶＭ１３０２を通して匿名アセンブリがアセンブリビルダ５０２によってデプロイされる。（４）で、アセンブリビルダ５０２は匿名アセンブリの結果をアセンブリビルダコネクタ６２４に返す。
【０３２５】
（５）で、ＩＤＭスライス作成のコマンドがＩＤＭコネクタ６２２からＩＤＭ２００に送られる。（６）で、ＩＤＭコーディネートがＩＤＭ２００からＩＤＭコネクタ６２２に返送される。（７）で、ＤＢコネクタ６１４はＤＢ５０４を通してＤＢスライスの作成を命令する。（８）で、ＤＢコーディネートがＤＢ５０４からＤＢコネクタ６１４に返送される。
【０３２６】
（９）で、所与のＩＤＭ、ＤＢ、およびＥＭエージェント（適用できる場合）コーディネートによるＪａｖａサービスの構成の要求が、Ｎｕｖｉａｑコネクタ６２０からＮｕｖｉａｑデータベースアプリケーション１３０４に送られる。（１０）で、Ｎｕｖｉａｑデータベースアプリケーション１３０４は、すべてのサービスインスタンスデータを格納する。（１１）で、ＥＭエージェントの起動を含むＪａｖａサービスインスタンスが構成される。ライトウェイトディレクトリアクセスプロトコル（lightweight directory access protocol）（ＬＤＡＰ）ＡＴＮ資格証明、ノードマネージャパスワード、および埋込まれたＬＤＡＰパスワードが、ＯＶＭ１３０２が利用できる次世代暗号化標準（advanced encryption standard）（ＡＥＳ）におけるconfig.xml fileに格納される。種類が異なるサービスを含む、Ｊａｖａサービス以外の他のサービスは、ＳＤＩモジュールを用いて作成できる。
【０３２７】
コンピュータネットワーククラウドインフラストラクチャシステムでは複数のサービスを提供することができる。このようなサービスは、単純な、サービスとしてのインフラストラクチャ（ＩＡＡＳ）サービス、サービスとしてのプラットフォーム（ＰＡＡＳ）サービス、およびサービスとしてのソフトウェア（ＳＡＡＳ）サービスを含み得る。ＩＡＡＳ、ＰＡＡＳ、およびＳＡＡＳサービスは種類が互いに異なるサービスである。
【０３２８】
ＩＡＡＳサービスは単純なストレージソリューションを含み得る。ストレージソリューションは、インターネットからアクセス可能なディスクドライブの遠隔セットまたはその他のメモリデバイスを含み得る。これらはまた、ファイル転送プロトコル（ＦＴＰ）、仮想プライベートネットワーク（ＶＰＮ）、またはディスクドライブ上に保存されているデータのアップロード、ダウンロード、およびトラッキングのための他のサービスを含み得る。ＩＡＡＳストレージソリューションは、冗長性およびバックアップサービス等の、単なる保存を超えた機能を含み得る。ＩＡＡＳサービスはまた、処理能力、地球の他の部分への帯域幅、およびその他のコンピュータリソースを含み得る。
【０３２９】
ＰＡＡＳサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス、Ｊａｖａクラウドサービス、および、一般的にソフトウェアプラットフォームとして提供されるその他のサービスを含み得る。データベースサービスは、ＳＱＬデータベースエンジン等のリレーショナルデータベースエンジンへのアクセスを含み得る。テーブルおよびその他のデータベーススキーマをユーザがクラウド上で設計し実現することができ、データベース管理エンジンをユーザが使用してデータベースからデータを入力およびエクスポートすることができる。同様に、ユーザがＪａｖａまたはその他のプログラミング言語を用いてクラウドシステム上にカスタムアプリケーションを作成しその後クラウドシステム上で実行することができる。クラウドサーバから離れた場所のユーザが、カスタムユーザインターフェイスおよびデータ構造をサポートするその他のミドルウェアアプリケーションを設計して実行することができる。
【０３３０】
ＳＡＡＳサービスは、顧客関係管理（ＣＲＭ）サービスを含み得る。これらのサービスは、販売員がリードをトラッキングをするのを補助することができ、従業員が顧客のアカウントを維持するのをサポートすることができ、顧客自身が顧客自身のアカウントを見るのをサポートすることができる。人的資源管理（ＨＣＭ）および人材サービスは、雇用者が被雇用者および独立した契約者に関する情報を保管するのを補助することができる。このようなサービスによって、労働時間追跡、資産検査、ならびに従業員名簿追跡および支払を提供できる。
【０３３１】
サービスのためのクラウドリソースのプロビジョニングは、非同期で発生する可能性がある。たとえば、方法または機能は、コールバックアドレスを含む引数変数を用いてアプリケーションプログラミングインターフェイス（ＡＰＩ）を通して呼出すことができる。モジュール呼出し方法が、呼出された方法が続行前に終了するのを待つのではなく、呼出された方法が、終了時にモジュールにメッセージを送ることができる。呼出された方法はまた、ステータス更新をモジュールに送ることができる。ＳＡＡＳサービス等のいくつかのサービスのためのプロビジョニングには何時間または何日も要する場合があり、ＩＡＡＳサービス等のその他のサービスのためのプロビジョニングに要する時間は数分である場合があるので、この非同期のＡＰＩコールは、最短起動期間サービスが、たとえ起動時間がより長い他のサービスとともにプロビジョニングされるときでも、後ではなく先にプロビジョニングされることを保証するのに役立ち得る。
【０３３２】
結論
図１４は、ある実施形態を実現するための分散システム１４００の簡略化した図を示す。示されている実施形態において、分散システム１４００は、１つ以上のネットワーク１４１０上でウェブブラウザ、プロプライエタリクライアント（たとえばOracle Forms）等のクライアントアプリケーションを実行および操作するように構成された１つ以上のクライアント演算装置１４０２、１４０４、１４０６、および１４０８を含む。サーバ１４１２は、ネットワーク１４１０を介して遠隔のクライアント演算装置１４０２、１４０４、１４０６、および１４０８と通信可能に連結し得る。
【０３３３】
さまざまな実施形態において、サーバ１４１２は、クラウドインフラストラクチャシステムによってプロビジョニングされた既存のサービスを用いてサービスへのアクセスをユーザに提供するためのサービスおよびアプリケーション等の１つ以上のサービスまたはソフトウェアアプリケーションを実行するように構成し得る。特定の実施形態において、サーバ１４１２はまた、非仮想および仮想環境を含み得るその他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの実施形態において、これらのサービスは、クライアント演算装置１４０２、１４０４、１４０６、および／または１４０８のユーザに対して、ウェブベースのまたはクラウドサービスとしてまたはサービスとしてのソフトウェア（ＳａａＳ）モデルのもとで提供し得る。クライアント演算装置１４０２、１４０４、１４０６、および／または１４０８を操作するユーザは、１つ以上のクライアントアプリケーションを利用してサーバ１４１２と対話することによりこれらのコンポーネントが提供するサービスを利用し得る。
【０３３４】
図１４に示される構成において、システム１４００のソフトウェアコンポーネント１４１８、１４２０、および１４２２は、サーバ１４１２上に実装されるものとして示されている。他の実施形態において、システム１４００の上記コンポーネントおよび／またはこれらのコンポーネントが提供するサービスのうちの１つ以上が、クライアント演算装置１４０２、１４０４、１４０６、および／または１４０８のうちの１つ以上によって実装されてもよい。そうすると、クライアント演算装置を操作するユーザは、クライアントアプリケーションのうちの１つ以上を用いて、これらのコンポーネントが提供するサービスを利用することができる。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組合わせにおいて実装されてもよい。なお、分散システム１４００とは異なり得る多種多様なシステムコンフィギュレーションが可能である。図１４に示される実施形態はしたがって、ある実施形態のシステムを実現するための分散システムであって、限定を意図したものではない。
【０３３５】
クライアント演算装置１４０２、１４０４、１４０６、および／または１４０８は、さまざまな種類の演算システムを含み得る。たとえば、クライアント装置は、Microsoft Windows Mobile（登録商標）等のソフトウェア、および／またはiOS、Windows Phone、Android（登録商標）、BlackBerry（登録商標） 10、Palm ＯＳ等のさまざまなモバイルオペレーティングシステムを実行する、ポータブルハンドヘルドデバイス（たとえばiPhone（登録商標）、携帯電話、iPad（登録商標）、計算タブレット、携帯情報端末（ＰＤＡ））またはウェアラブルデバイス（たとえばGoogle Glass（登録商標）ヘッドマウントディスプレイ）を含み得る。これらの装置は、さまざまなインターネット関連アプリケーション、電子メール、ショートメッセージサービス（ＳＭＳ）アプリケーション等のさまざまなアプリケーションをサポートし得るものであり、かつその他のさまざまな通信プロトコルを使用し得る。また、クライアント演算装置は、例として、さまざまなバージョンのMicrosoft Windows（登録商標）、Apple Macintosh（登録商標）および／またはLinux（登録商標）オペレーティングシステムを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む、汎用パーソナルコンピュータを含み得る。クライアント演算装置は、たとえばGoogle Chrome OS等の、さまざまなGNU／Linuxオペレーティングシステムを含むがこれらに限定されないさまざまな市販のUNIX（登録商標）またはUNIXのようなオペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであってもよい。また、クライアント演算装置は、ネットワーク１４１０上で通信可能な、シンクライアントコンピュータ、インターネット接続可能なゲームシステム（たとえばKinect（登録商標）ジェスチャー入力装置を備えたまたは備えていないMicrosoft Xboxゲーム機）、および／またはパーソナルメッセージングデバイス等の電子機器を含み得る。
【０３３６】
図１４の分散システム１４００は４つのクライアント演算装置とともに示されているが、任意の数のクライアント演算装置をサポートし得る。センサ等を有する装置といったその他の装置がサーバ１４１２と対話してもよい。
【０３３７】
分散システム１４００内のネットワーク１４１０は、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（システムネットワークアーキテクチャ）、ＩＰＸ（インターネットパケット交換）、Apple Talk等を含むがこれらに限定されない、利用可能なさまざまなプロトコルのうちのいずれかを用いて、データ通信をサポートすることができる、当業者にはよく知られているいずれかの種類のネットワークであればよい。ほんの一例として、ネットワーク１４１０は、ローカルエリアネットワーク（ＬＡＮ）、イーサネット（登録商標）に基づくネットワーク、トークンリング、広域ネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク（ＶＰＮ）、イントラネット、エクストラネット、公衆交換電話網（ＰＳＴＮ），赤外線ネットワーク、無線ネットワーク（たとえば、米国電気電子技術者協会（ＩＥＥＥ）８０２．１１プロトコルスイートのうちのいずれか、Bluetooth（登録商標）、および／またはその他いずれかの無線プロトコルのもとで機能するネットワーク）、および／またはこれらの組合わせ、および／またはその他のネットワークであってもよい。
【０３３８】
サーバ１４１２は、１つ以上の汎用コンピュータ、専用サーバコンピュータ（例として、ＰＣ（パーソナルコンピュータ）サーバ、UNIX（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバ等を含む）、サーバファーム、サーバクラスタ、またはその他いずれかの適切な構成および／または組合わせで構成されていてもよい。サーバ１４１２は、仮想オペレーティングシステムまたは仮想化を伴うその他の計算アーキテクチャを実行する１つ以上の仮想マシンを含み得る。論理記憶装置の１つ以上のフレキシブルプールを仮想化することによって、サーバのための仮想記憶装置を維持することができる。仮想ネットワークは、サーバ１４１２がソフトウェア定義ネットワーキングを用いて制御することができる。さまざまな実施形態において、サーバ１４１２は、これまでの開示において説明した１つ以上のサービスまたはソフトウェアアプリケーションを実行するように構成されていてもよい。たとえば、サーバ１４１２は、本開示のある実施形態に従う上記処理を実行するためのサーバに対応していてもよい。
【０３３９】
サーバ１４１２は、上記のうちのいずれかを含むオペレーティングシステムおよび市販のいずれかのサーバオペレーティングシステムを実行し得る。サーバ１４１２はまた、ＨＴＴＰ（ハイパーテキストトランスポートプロトコル）サーバ、ＦＴＰ（ファイル転送プロトコル）サーバ、ＣＧＩ（コモンゲートウェイインターフェイス）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバ等を含む、さまざまなその他のサーバアプリケーションおよび／またはミッドティアアプリケーションのうちのいずれかを実行し得る。代表的なデータベースサーバは、Oracle、Microsoft、Sybase、IBM（International Business Machines）等から市販されているものを含むが、これらに限定されるものではない。
【０３４０】
いくつかの実装例において、サーバ１４１２は、クライアント演算装置１４０２、１４０４、１４０６、および１４０８のユーザから受けたデータフィードおよび／またはイベントアップデートを分析し統合するための１つ以上のアプリケーションを含み得る。一例として、データフィードおよび／またはイベントアップデートは、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通量モニタリング等に関連するリアルタイムイベントを含み得る、１つ以上の第三者情報源および連続データストリームから受けた、Twitter（登録商標）フィード、Facebook（登録商標）アップデートまたはリアルタイムアップデートを含むが、これらに限定されるものではない。また、サーバ１４１２は、クライアント演算装置１４０２、１４０４、１４０６、および１４０８の１つ以上の表示装置を介してデータフィードおよび／またはリアルタイムイベントを表示するための１つ以上のアプリケーションを含み得る。
【０３４１】
分散システム１４００はまた、１つ以上のデータベース１４１４および１４１６を含み得る。これらのデータベースは、本発明の実施形態によって使用されるユーザインタラクション情報、使用パターン情報、適合規則情報、およびその他の情報等の情報を格納するためのメカニズムを提供し得る。データベース１４１４および１４１６はさまざまな場所に存在し得る。例として、データベース１４１４および１４１６のうちの１つ以上が、サーバ１４１２にローカルな（および／または存在する）非一時的な記憶媒体上にあってもよい。これに代えて、データベース１４１４および１４１６は、サーバ１４１２から遠隔の場所にあってネットワークベースのまたは専用接続を介してサーバ１４１２と通信してもよい。一組の実施形態において、データベース１４１４および１４１６は、ストレージエリアネットワーク（ＳＡＮ）にあってもよい。同様に、サーバ１４１２から発生する機能を実行するために必要なファイルは、適宜サーバ１４１２にローカルに格納されていてもよくおよび／または遠隔場所に格納されていてもよい。一組の実施形態において、データベース１４１４および１４１６は、ＳＱＬフォーマットのコマンドに応じてデータを格納、更新、および取出すように構成された、Oracleが提供するデータベース等のリレーショナルデータベースを含み得る。
【０３４２】
図１５は、本発明の実施形態を実現するために使用し得る典型的なコンピュータシステム１５００を示す。いくつかの実施形態において、コンピュータシステム１５００を用いて上記さまざまなサーバおよびコンピュータシステムのうちのいずれかを実現してもよい。図１５に示されるように、コンピュータシステム１５００は、バスサブシステム１５０２を介して多数の周辺サブシステムと通信する処理ユニット１５０４を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット１５０６、Ｉ／Ｏサブシステム１５０８、記憶サブシステム１５１８、および通信サブシステム１５２４を含み得る。記憶サブシステム１５１８は、有形のコンピュータ読取可能記憶媒体１５２２およびシステムメモリ１５１０を含み得る。
【０３４３】
バスサブシステム１５０２は、コンピュータシステム１５００のさまざまなコンポーネントおよびサブシステムを目的に応じて互いに通信させるためのメカニズムを提供する。バスサブシステム１５０２は単一のバスとして概略的に示されているが、バスサブシステムの代替の実施形態は複数のバスを利用し得る。バスサブシステム１５０２は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、さまざまな種類のバス構造のうちのいずれかであればよい。たとえば、このようなアーキテクチャは、ＩＥＥＥ  Ｐ１３８６．１規格に従って製造されたメザニン（Mezzanine）バス等として実現できる、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス標準協会（ＶＥＳＡ）ローカルバス、および周辺コンポーネントインターコネクト（ＰＣＩ）バスを含み得る。
【０３４４】
処理サブシステム１５０４は、コンピュータシステム１５００のオペレーションを制御し、かつ、１つ以上の処理ユニット１５３２、１５３４等と含み得る。処理ユニットは、シングルコアもしくはマルチコアプロセッサ、プロセッサの１つ以上のコア、またはこれらの組合わせを含む、１つ以上のプロセッサを含み得る。いくつかの実施形態において、処理サブシステム１５０４は、グラフィックプロセッサ、デジタル信号プロセッサ（ＤＳＰ）等といった１つ以上の専用コプロセッサを含み得る。いくつかの実施形態において、処理サブシステム１５０４の処理ユニットのうちのいくつかまたはすべてを、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のカスタマイズされた回路を用いて実現してもよい。
【０３４５】
いくつかの実施形態において、処理サブシステム１５０４内の処理ユニットは、システムメモリ１５１０にまたはコンピュータ読取可能記憶媒体１５２２上に格納されている命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、かつ、同時に実行される複数のプログラムまたはプロセスを維持することができる。所定の時間に、実行すべきプログラムコードのうちのいくつかまたはすべてが、場合によっては１つ以上の記憶装置を含むシステムメモリ１５１０におよび／またはコンピュータ読取可能記憶媒体１５２２上にあってもよい。適切なプログラミングを通して、処理サブシステム１５０４は、クラウドインフラストラクチャシステムによってプロビジョニングされた既存のサービスを用いてサービスへのアクセスをユーザに提供するための上記さまざまな機能を提供することができる。
【０３４６】
特定の実施形態において、コンピュータシステム１５００が実行する処理全体を加速することを目的として、カスタマイズされた処理を実行するためまたは処理サブシステム１５０４が実行する処理のうちの一部をオフロードするために、処理加速ユニット１５０６を設けてもよい。
【０３４７】
Ｉ／Ｏサブシステム１５０８は、情報をコンピュータシステム１５００に入力するためおよび／または情報をコンピュータシステム１５００からもしくはコンピュータシステム１５００を介して出力するための装置およびメカニズムを含み得る。一般的に、「入力装置」という用語の使用は、情報をコンピュータシステム１５００に入力するための、可能なすべての種類の装置およびメカニズムを含むことを意図している。ユーザインターフェイス入力装置は、たとえば、キーボード、マウスまたはトラックボール等のポインティングデバイス、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えた音声入力装置、マイク、およびその他の種類の入力装置を含み得る。ユーザインターフェイス入力装置はまた、ユーザが入力装置を制御し入力装置と対話できるようにするMicrosoft Kinect（登録商標）モーションセンサ、Microsoft Xbox（登録商標） 360ゲームコントローラ、ジェスチャーおよび発話コマンドを用いた入力を受けるためのインターフェイスを提供する装置等の、モーション検知および／またはジェスチャー認識装置を含み得る。ユーザインターフェイス入力装置はまた、ユーザから目の動き（たとえば写真撮影時および／またはメニュー選択時の「まばたき」）を受けて目のジェスチャーを入力装置（たとえばGoogle Glass（登録商標））への入力として変換するGoogle Glass（登録商標）まばたき検出器等のアイジェスチャー認識装置を含み得る。加えて、ユーザインターフェイス入力装置は、ユーザが音声コマンドを通して音声認識システム（たとえばSiri（登録商標）ナビゲータ）と対話できるようにする音声認識検知装置を含み得る。
【０３４８】
ユーザインターフェイス入力装置のその他の例は、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザレンジファインダー、および視線トラッキング装置等のオーディオ／ビジュアル装置を含むが、これらに限定されるものではない。加えて、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジトロン断層撮影、超音波検査装置等の、医療用撮像入力装置を含み得る。ユーザインターフェイス入力装置はまた、たとえば、ＭＩＤＩキーボード、デジタル音楽機器等といった音声入力装置を含み得る。
【０３４９】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、または音声出力装置といった非ビジュアルディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、たとえば液晶ディスプレイ（ＬＣＤ）またはプラズマディスプレイを用いるフラットパネル装置、投射装置、タッチスクリーン等であってもよい。一般的に、「出力装置」という用語の使用は、情報をコンピュータシステム１５００からユーザまたはその他のコンピュータに出力するための可能なすべての種類の装置およびメカニズムを含むことを意図している。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、作図装置、音声出力装置、およびモデムといった、テキスト、グラフィックおよびオーディオ／ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【０３５０】
記憶サブシステム１５１８は、コンピュータシステム１５００が使用する情報を格納するためのリポジトリまたはデータ記憶装置を提供する。記憶サブシステム１５１８は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。処理サブシステム１５０４によって実行されたときに上記機能を提供するソフトウェア（プログラム、コードモジュール、命令）は、記憶サブシステム１５１８に格納されていてもよい。ソフトウェアは、処理サブシステム１５０４の１つ以上の処理ユニットによって実行されてもよい。記憶サブシステム１５１８はまた、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【０３５１】
記憶サブシステム１５１８は、揮発性および不揮発性メモリデバイスを含む１つ以上の非一時的なメモリデバイスを含み得る。図１５に示されるように、記憶サブシステム１５１８は、システムメモリ１５１０およびコンピュータ読取可能記憶媒体１５２２を含む。システムメモリ１５１０は、プログラム実行中に命令とデータを格納するための揮発性メインランダムアクセスメモリ（ＲＡＭ）および固定命令が格納されている不揮発性読取専用メモリ（ＲＯＭ）またはフラッシュメモリを含む、多数のメモリを含み得る。いくつかの実装例において、たとえば起動中のコンピュータシステム１５００内の要素間の情報転送を補助する基本的なルーチンを含む基本的な入力／出力システム（ＢＩＯＳ）は、一般的にはＲＯＭに格納される。ＲＡＭは一般的に、処理サブシステム１５０４が現在操作および実行しているデータおよび／またはプログラムモジュールを含む。いくつかの実装例において、システムメモリ１５１０は、スタティックランダムアクセスメモリ（ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（ＤＲＡＭ）等の種類が異なる複数のメモリを含み得る。
【０３５２】
限定ではなく一例として、図１５に示されるように、システムメモリ１５１０は、クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、リレーショナルエータベース管理システム（ＲＤＢＭＳ）等を含み得るアプリケーションプログラム１５１２と、プログラムデータ１５１４と、オペレーティングシステム１５１６とを格納し得る。一例として、オペレーティングシステム１５１６は、さまざまなバージョンのMicrosoft Windows（登録商標）、Apple Macintosh（登録商標）、および／またはLinux（登録商標）オペレーティングシステム、さまざまな市販のUNIX（登録商標）またはUNIXのようなオペレーティングシステム（さまざまなGNU／Linuxオペレーティングシステム、Google Chrome（登録商標）ＯＳ等を含むがこれらに限定されるものではない）および／または、iOS、Windows（登録商標）Phone、Android（登録商標）ＯＳ、BlackBerry（登録商標） 10 ＯＳ、およびPalm（登録商標）ＯＳオペレーティングシステム等のさまざまなモバイルオペレーティングシステムを含み得る。
【０３５３】
コンピュータ読取可能記憶媒体１５２２は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。処理サブシステム１５０４のプロセッサによって実行されたときに上記機能を提供するソフトウェア（プログラム、コードモジュール、命令）は、記憶サブシステム１５１８に格納されてもよい。一例として、コンピュータ読取可能な記憶媒体１５２２は、ハードディスクドライブ、磁気ディスクドライブ、ＣＤ  ＲＯＭ、ＤＶＤ、Blu-Ray（登録商標）ディスク、またはその他の光媒体等の光ディスクドライブといった、不揮発性メモリを含み得る。コンピュータ読取可能記憶媒体１５２２は、Zip（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ、セキュアデジタル（ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープ等を含み得るが、これらに限定されるものではない。コンピュータ読取可能記憶媒体１５２２はまた、フラッシュメモリベースのＳＳＤ、エンタープライズフラッシュドライブ、ソリッドステートＲＯＭ等といった不揮発性メモリに基づくソリッドステートドライブ（ＳＳＤ）、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭ等といった揮発性メモリに基づくＳＳＤ、ＤＲＡＭとフラッシュメモリベースのＳＳＤを組合わせたものを用いる、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（ＭＲＡＭ）ＳＳＤ、およびハイブリッドＳＳＤを含み得る。コンピュータ読取可能媒体１５２２は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、およびコンピュータシステム１５００のためのその他のデータの記憶域を提供し得る。
【０３５４】
特定の実施形態において、記憶サブシステム１５００はまた、コンピュータ読取可能記憶媒体１５２２にさらに接続することができるコンピュータ読取可能記憶媒体リーダ１５２０を含み得る。システムメモリ１５１０とともに、また、任意でシステムメモリ１５１０と組合されて、コンピュータ読取可能記憶媒体１５２２は、コンピュータ読取可能な情報を格納するための、遠隔、ローカル、固定、および／またはリムーバブル記憶装置プラス記憶媒体を、包括的に代表し得る。
【０３５５】
特定の実施形態において、コンピュータシステム１５００は、１つ以上の仮想マシンを実行するためのサポートを提供し得る。コンピュータシステム１５００は、仮想マシンの構成および管理を容易にするためのハイパーバイザといったプログラムを実行し得る。各仮想マシンに、メモリ、計算（たとえばプロセッサ、コア）、Ｉ／Ｏ、およびネットワーキングリソースが割当てられていてもよい。各仮想マシンは、一般的に、コンピュータシステム１５００が実行するその他の仮想マシンによって実行されるオペレーティングシステムと同じでも異なっていてもよい、自身のオペレーティングシステムを実行する。したがって、場合によっては複数のオペレーティングシステムがコンピュータシステム１５００によって同時に実行されるであろう。一般的に、各仮想マシンはその他の仮想マシンから独立して実行される。
【０３５６】
通信サブシステム１５２４は、その他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム１５２４は、コンピュータシステム１５００以外のシステムからデータを受信しコンピュータシステム１５００以外のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム１５２４によって、コンピュータシステム１５００は、情報をクライアント装置から受信しかつ情報をクライアント装置に送信するために１つ以上のクライアント装置へのインターネットを介した通信チャネルを確立することができるであろう。
【０３５７】
通信サブシステム１５２４は、有線通信プロトコルおよび／または無線通信プロトコル双方をサポートし得る。たとえば、特定の実施形態において、通信サブシステム１５２４は、（たとえば携帯電話技術、３Ｇ、４ＧまたはＥＤＧＥ（グローバル進化型高速データレート）等の高度データネットワーク技術、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリー規格、またはその他のモバイル通信技術、またはそれらの任意の組合わせ）を用いて）無線音声および／またはデータネットワークにアクセスするための無線周波数（ＲＦ）トランシーバコンポーネント、グローバルポジショニングシステム（ＧＰＳ）レシーバコンポーネント、および／またはその他のコンポーネントを含み得る。いくつかの実施形態の通信サブシステム１５２４は、無線インターフェイスに加えてまたはその代わりに有線ネットワーク接続（たとえばイーサネット）を提供することができる。
【０３５８】
通信サブシステム１５２４は、さまざまな形態のデータを受信し送信することができる。たとえば、いくつかの実施形態において、通信サブシステム１５２４は、構造化されたおよび／または構造化されていないデータフィード１５２６、イベントストリーム１５２８、イベントアップデート１５３０等の形態の入力通信を受信し得る。たとえば、通信サブシステム１５２４は、ソーシャルメディアネットワークおよび／またはその他の通信サービスのユーザから、リアルタイムで、Twitter（登録商標）フィード、Facebook（登録商標）アップデート、リッチサイトサマリー（ＲＳＳ）フィード等のウェブフィード、および／または１以上の第三者情報源からからのリアルタイムアップデート等のデータフィード１５２６を、受信（または送信）するように構成されてもよい。
【０３５９】
特定の実施形態において、通信サブシステム１５２４は、本質的に連続しているまたは無限であり明確な終わりがない場合がある、リアルタイムイベントのイベントストリーム１５２８および／またはイベントアップデート１５３０を含み得る、連続データストリームの形態のデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通量モニタリング等を含み得る。
【０３６０】
通信サブシステム１５２４はまた、構造化されたおよび／または構造化されていないデータフィード１５２６、イベントストリーム１５２８、イベントアップデート１５３０等を、コンピュータシステム１５００に連結されている１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するように構成されてもよい。
【０３６１】
コンピュータシステム１５００は、ハンドヘルドポータブルデバイス（たとえばiPhone（登録商標）携帯電話、iPad（登録商標）計算タブレット、ＰＤＡ）、ウェアラブルデバイス（たとえばGoogle Glass（登録商標）ヘッドマウントディスプレイ）、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまな種類のうちの１つであればよい。
【０３６２】
コンピュータおよびネットワークは常に変化しているという性質のものであるので、図１５に示されるコンピュータシステム１５００の説明は、専ら特定の例を意図している。図１５に示されるシステムよりもコンポーネントが多いまたは少ないその他多数の構成が可能である。本明細書が提供する開示と教示に基づいて、当業者はさまざまな実施形態を実現するためのその他のやり方および／または方法を理解するであろう。
【０３６３】
図１６は、本発明の実施形態を実現するために使用し得る典型的なサービスインフラストラクチャシステム１６００を示す。図１６に示されるように、サービスインフラストラクチャシステム１６００は、処理サブシステム１６０２と通信サブシステム１６０４とを含む。たとえば、処理サブシステム１６０２および通信サブシステム１６０４はそれぞれ、図１５に示される処理サブシステム１５０４および通信サブシステム１５２４であってもよい。処理サブシステム１６０２は、サービスインフラストラクチャシステムに複数のサービスを提供するように構成され、通信サブシステム１６０４は、サービスインフラストラクチャシステムが提供するサービスへのアクセスの、第１の顧客による要求を受けるように構成される。処理サブシステム１６０２はさらに、
第１の顧客によって要求されたサービスに基づいてサブスクリプションの種類を決定するように構成され、サブスクリプションの種類はクローンサブスクリプションまたは再使用可能なサブスクリプションのうちの一方であり、
上記サービスにアクセスするためのサブスクリプションを第１の顧客に提供するように構成され、サブスクリプションは、サブスクリプションの種類に基づいて提供されかつ複数のサービスのうちの第１のサービスを用いて提供され、
第１の顧客に提供されたサブスクリプションを管理するように構成される。
【０３６４】
特定の実施形態において、第１の顧客による要求は、顧客によるサービスの使用の種類を示し、サブスクリプションの種類は、要求によって示される使用の種類に基づいて決定される。
【０３６５】
特定の実施形態において、サブスクリプションの種類がクローンサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、
第１のサービスに対する第１のサブスクリプションに基づいて第１のクローンサブスクリプションを確立することを含み、第１のクローンサブスクリプションは、第１の顧客へのサブスクリプションとして提供され、
一組の規則に基づいて第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることを含む。
【０３６６】
特定の実施形態において、第１のクローンサブスクリプションを第１のサブスクリプションに対応付けることは、第１のクローンサブスクリプションのライフサイクルを第１のサブスクリプションのライフサイクルに対応付けることを含む。
【０３６７】
特定の実施形態において、第１のクローンサブスクリプションは、第２のサービスへのアクセスを提供し、顧客による第２のサービスへのアクセスは、顧客による第１のサービスへのアクセスが終了したときに終了する。
【０３６８】
特定の実施形態において、処理サブシステム１６０２はさらに、顧客からの要求に基づいて第１のサービスへのアクセスを更新するように、かつ、第１のサービスへの更新されたアクセスに基づいて第２のサービスへのアクセスを修正するように構成される。
【０３６９】
特定の実施形態において、第１のクローンサブスクリプションは、第２のサービスへのアクセスを提供し、一組の規則は、第１のサービスのクローンとしての第２のサービスの使用を示す。
【０３７０】
特定の実施形態において、一組の規則は、第２のサービスへのアクセスの期間を示す。
特定の実施形態において、一組の規則は、第２のサービスへのアクセスが許可されたユーザの数を示し、第２のサービスへのアクセスが許可されたユーザの数は、第１のサービスへのアクセスが許可されたユーザの数と異なる。
【０３７１】
特定の実施形態において、一組の規則は第２のサービスのコンフィギュレーションを示し、第２のサービスのコンフィギュレーションは第１のサービスのコンフィギュレーションと異なる。
【０３７２】
特定の実施形態において、サブスクリプションを管理することは、第１のサービスの変更に応じて、サブスクリプションによる要求されたサービスへのアクセスを決定することを含み、要求されたサービスへのアクセスは、一組の規則を用いて決定される。
【０３７３】
特定の実施形態において、サブスクリプションの種類が再使用可能なサブスクリプションであるとき、サブスクリプションを第１の顧客に提供することは、
サービスインフラストラクチャシステム内のサービスプールにおいて第１のサービスがプロビジョニングされていると判断することと、
サービスプールにおいてサブスクリプションに対する第１のサービスがプロビジョニングされていないと判断したときは、サービスプールにおいて第１のサブスクリプションに対する第１のサービスをプロビジョニングすることと、
第１のサービスのための第１のサブスクリプションをサービスのためのサブスクリプションとして顧客に割当てることとを含み、第１のサブスクリプションを割当てることは、第１のサービスをサービスプールから顧客に割当てることを含み、第１のサービスを顧客に割当てることは、第１のサービスをサービスプールから削除することを含む。
【０３７４】
特定の実施形態において、処理サブシステム１６０２はさらに、特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付けるように構成され、特定顧客向けデータは、第１のサービスについて顧客に対応付けられる。
【０３７５】
特定の実施形態において、サービスにアクセスするためのサブスクリプションを管理することは、サブスクリプションが終了したときに第１のサービスを顧客からサービスプールに割当てることを含み、第１のサービスを割当てることは、特定顧客向けデータと、第１のサービスに対応する特定サービス向けデータとの対応関係を解除することを含み、第１のサービスは、サービスプールから１以上の他の顧客に再度割当て可能である。
【０３７６】
特定の実施形態において、通信サブシステム１６０４はさらに、複数のサービスのうちの第２のサービスへのアクセスの、第２の顧客による要求を受けるように構成され、処理サブシステム１６０２はさらに、
第２のサービスが第１のサービスに類似しているという判断に基づいて、サービスプールにおいて第２のサービスが利用可能であると判断するように構成され、
サービスプール内の第１のサブスクリプションを第２の顧客に割当てるように構成され、第１のサブスクリプションを第２の顧客に割当てることは、第１のサブスクリプションをサービスプールから削除することを含み、
第２の顧客に対応する特定顧客向けデータを、第１のサービスに対応する特定サービス向けデータに対応付けるように構成される。
【０３７７】
特定の実施形態において、第１の顧客に対応付けられた特定顧客向けデータは、顧客による第１のサービスの使用に関連するデータを含む。
【０３７８】
特定の実施形態において、複数のサービスのうちの各サービスは特定サービス向けデータに対応付けられ、サービスに対応する特定サービス向けデータは当該サービスのコンフィギュレーションを示し、当該コンフィギュレーションは、このサービスを提供するために割当てられた１つ以上のリソースを含む。
【０３７９】
特定の実施形態において、サービスを提供することは、第１の顧客による要求を受ける前に、クラウドインフラストラクチャシステムにおいてサービスをプロビジョニングすることを含み、サービスは、サービスインフラストラクチャシステムのオペレーションに対応付けられた１つ以上のメトリックに基づいてプロビジョニングされる。
【０３８０】
特定の実施形態において、サービスを提供することは、第１の顧客による要求を受ける前にサービスをプロビジョニングすることを含み、サービスは、サービスに対する需要に対応付けられた１つ以上のメトリックに基づいてプロビジョニングされる。
【０３８１】
特定の実施形態において、サービスを提供することは、第１の顧客による要求を受ける前にサービスをプロビジョニングすることを含み、サービスは、サービスの種類に対応付けられた１つ以上のメトリックに基づいてプロビジョニングされる。
【０３８２】
特定の実施形態において、サービスインフラストラクチャシステム１６００はマルチテナント環境を含む。
【０３８３】
特定の実施形態において、サービスは、Ｊａｖａ（登録商標）サービス、顧客関係管理（ＣＲＭ）サービス、または人的資源管理（ＨＣＭ）サービスを含む。
【０３８４】
本発明の特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本発明の実施形態について説明してきたが、本発明の範囲が、記載されている一連のトランザクションおよびステップに限定されるものではないということが当業者に明らかであるべきである。
【０３８５】
さらに、ハードウェアおよびソフトウェアの特定の組合わせを使用して本発明の実施形態について説明してきたが、ハードウェアおよびソフトウェアの他の組合わせも本発明の範囲内であることが認識されるべきである。本発明の実施形態は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組合わせを使用して実現されてもよい。この明細書中に記載されるさまざまなプロセスは、同じプロセッサ上で、または任意に組合わされたさまざまなプロセッサ上で実現することができる。したがって、コンポーネントまたはモジュールがいくつかのオペレーションを実行するように構成されるものと記載されているが、このような構成は、たとえば、オペレーションを実行するように電子回路を設計することによって、オペレーションを実行するようにプログラム可能な電子回路（マイクロプロセッサなど）をプログラミングすることによって、またはこれらを組合わせることによって、達成することができる。プロセス同士は、プロセス間通信のための従来の技術を含むがこれらに限定されないさまざまな技術を用いて通信することができ、異なる対のプロセスは異なる技術を用いてもよく、または、同じ対のプロセスは異なる時間に異なる技術を用いてもよい。
【０３８６】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、削減、削除ならびに他の変形および変更がそれに対してなされてもよいということは明白であろう。このように、特定の発明の実施形態を記載してきたが、これらは制限するようには意図されるものではない。さまざまな変更例および同等例は添付の特許請求の範囲内にある。
【図１Ａ】
0006541694.tif 000002
【図１Ｂ】
0006541694.tif 000003
【図２】
0006541694.tif 000004
【図３Ａ】
0006541694.tif 000005
【図３Ｂ】
0006541694.tif 000006
【図４】
0006541694.tif 000007
【図５】
0006541694.tif 000008
【図６】
0006541694.tif 000009
【図７Ａ】
0006541694.tif 000010
【図７Ｂ】
0006541694.tif 000011
【図７Ｃ】
0006541694.tif 000012
【図７Ｄ】
0006541694.tif 000013
【図７Ｅ】
0006541694.tif 000014
【図８Ａ】
0006541694.tif 000015
【図８Ｂ】
0006541694.tif 000016
【図８Ｃ】
0006541694.tif 000017
【図９Ａ】
0006541694.tif 000018
【図９Ｂ】
0006541694.tif 000019
【図９Ｃ】
0006541694.tif 000020
【図１０】
0006541694.tif 000021
【図１１】
0006541694.tif 000022
【図１２】
0006541694.tif 000023
【図１３】
0006541694.tif 000024
【図１４】
0006541694.tif 000025
【図１５】
0006541694.tif 000026
【図１６】
0006541694.tif 000027