特許第6967534号(P6967534)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許6967534データベースプロビジョニングのためのリソース配分
<>
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000002
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000003
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000004
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000005
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000006
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000007
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000008
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000009
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000010
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000011
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000012
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000013
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000014
  • 特許6967534-データベースプロビジョニングのためのリソース配分 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6967534
(24)【登録日】2021年10月27日
(45)【発行日】2021年11月17日
(54)【発明の名称】データベースプロビジョニングのためのリソース配分
(51)【国際特許分類】
   G06F 16/13 20190101AFI20211108BHJP
   G06F 16/21 20190101ALI20211108BHJP
【FI】
   G06F16/13 100
   G06F16/21
【請求項の数】20
【全頁数】35
(21)【出願番号】特願2018-563858(P2018-563858)
(86)(22)【出願日】2017年5月15日
(65)【公表番号】特表2019-522846(P2019-522846A)
(43)【公表日】2019年8月15日
(86)【国際出願番号】US2017032620
(87)【国際公開番号】WO2017213803
(87)【国際公開日】20171214
【審査請求日】2020年4月13日
(31)【優先権主張番号】15/175,213
(32)【優先日】2016年6月7日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ヒギンソン,アントニー・スティーブン
(72)【発明者】
【氏名】ブラント,マイケル・ジェームズ
(72)【発明者】
【氏名】クレモニーニ,ジェームズ・アントニー・ウィリアム
(72)【発明者】
【氏名】バルチ,ニック
(72)【発明者】
【氏名】マスターソン,ジョン
(72)【発明者】
【氏名】ヒューズ,ポール
【審査官】 後藤 彰
(56)【参考文献】
【文献】 米国特許出願公開第2015/0019197(US,A1)
【文献】 米国特許出願公開第2014/0129690(US,A1)
【文献】 国際公開第2015/191119(WO,A1)
【文献】 特開2015−056182(JP,A)
【文献】 朝吹 拓,PART4 クラウドサービスの新分類 「IaaS」「PaaS」では不十分 より細分化して捉えよう,日経SYSTEMS 2015年2月号,日本,日経BP社,2015年01月26日,第262号,pp.34−39
【文献】 上田 志雄,テクノロジー活用最前線 DB/APサーバーを武器にするPaaS「Oracle Cloud Platform」,日経SYSTEMS 2015年10月号,日本,日経BP社,2015年09月26日,第270号,pp.50−55
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
プライベートクラウドにおけるデータベースプロビジョニングのためにリソースを予め配分する方法であって、前記方法は、
1つ以上のプロセッサが、顧客のデータベースシステムにおける複数のデータベースの特性を判断するステップと、
前記1つ以上のプロセッサが、前記複数のデータベースの前記特性をグループ分けすることで、前記顧客のデータベースシステムにおいてインスタンス化されるデータベースのクラスを記述している複数のデータベーステンプレートを生成するステップと、
前記1つ以上のプロセッサが、前記複数のデータベーステンプレートのうちの少なくともいくつかに基づいて、リソースが前記プライベートクラウドにおいて予め配分されるようにするステップと、
前記1つ以上のプロセッサが、インターフェイスを介して、前記複数のデータベーステンプレートのライブラリを提示するステップと、
前記1つ以上のプロセッサが、前記インターフェイスを介して、前記複数のデータベーステンプレートから、プロビジョニング要求の一部として、データベーステンプレートの選択を受信するステップと、
前記1つ以上のプロセッサが、前記データベーステンプレートによって少なくとも部分的に記述されたデータベースが、前記プライベートクラウドにおいてプロビジョニングされるようにするステップとを含む、方法。
【請求項2】
前記複数のデータベースの前記特性は、オペレーティングシステムタイプおよびバージョンを含む、請求項1に記載の方法。
【請求項3】
前記複数のデータベースの前記特性は、データベースタイプおよびバージョンを含む、請求項1または2に記載の方法。
【請求項4】
前記複数のデータベースの前記特性は、データベースメモリサイズを含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記複数のデータベースの前記特性は、プロセッサ使用率を含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
前記複数のデータベースの前記特性は、前記特性をゲートウェイを通してクラウドサポートプラットフォームへ伝送する、前記顧客のデータベースシステムにインストールされた1つ以上のソフトウェアエージェントによって判断される、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記クラウドサポートプラットフォームは、前記複数のデータベースの前記特性のリアルタイム報告を生成する、請求項6に記載の方法。
【請求項8】
前記複数のデータベースの前記特性をグループ分けすることは、前記特性を、少なくとも第1のグループの特性および第2のグループの特性へと分割することを含み、
前記第1のグループの特性は、前記複数のデータベースのうちの2つ以上のデータベース間で共有される特性を含み、
前記第2のグループの特性は、前記複数のデータベースのうちの2つ以上のデータベースのうちの少なくとも1つに特有の特性を含む、請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記第1のグループの特性は、オペレーティングシステムと、データベースバージョン番号と、データベースタイプとを含む、請求項8に記載の方法。
【請求項10】
前記第2のグループの特性は、データベースメモリサイズと、リスナポートと、ホームディレクトリ経路とを含む、請求項8または9に記載の方法。
【請求項11】
前記方法は、さらに、
前記1つ以上のプロセッサが、前記データベーステンプレートの前記選択を受信後、前記データベーステンプレートからの前記第1のグループの特性を含む一時的テンプレートを作成するステップと、
前記1つ以上のプロセッサが、前記第2のグループの特性についての値を含む入力を受信するステップと、
前記1つ以上のプロセッサが、前記第2のグループの特性についての前記値を前記一時的テンプレートに割当てるステップとを含む、請求項8から10のいずれか1項に記載の方法。
【請求項12】
前記方法は、さらに、
前記1つ以上のプロセッサが、前記データベーステンプレートによって少なくとも部分的に記述された前記データベースが前記プライベートクラウドにおいてアクティブである間、前記一時的テンプレートをテンプレートのライブラリにおいて保持するステップと、
前記1つ以上のプロセッサが、前記データベーステンプレートによって少なくとも部分的に記述された前記データベースが前記プライベートクラウドにおいてもはやアクティブではなくなった後に、テンプレートの前記ライブラリから前記一時的テンプレートを削除するステップとを含む、請求項11に記載の方法。
【請求項13】
前記方法は、さらに、
前記1つ以上のプロセッサが、前記データベーステンプレートによって少なくとも部分的に記述された前記データベースがいつ、前記プライベートクラウドにおいてもはやアクティブではなくなったかを判断するために、前記プライベートクラウドに問合せるステップを含む、請求項12に記載の方法。
【請求項14】
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに動作を行なわせる命令を含む、1つ以上のメモリデバイスとを含み、前記動作は、
顧客のデータベースシステムにおける複数のデータベースの特性を判断することと、
前記複数のデータベースの前記特性をグループ分けすることで、前記顧客のデータベー
スシステムにおいてインスタンス化されるデータベースのクラスを記述している複数のデータベーステンプレートを生成することと、
前記複数のデータベーステンプレートのうちの少なくともいくつかに基づいて、リソースがプライベートクラウドにおいて予め配分されるようにすることと、
インターフェイスを介して、前記複数のデータベーステンプレートのライブラリを提示することと、
前記インターフェイスを介して、前記複数のデータベーステンプレートから、プロビジョニング要求の一部として、データベーステンプレートの選択を受信することと、
前記データベーステンプレートによって少なくとも部分的に記述されたデータベースが、前記プライベートクラウドにおいてプロビジョニングされるようにすることとを含む、システム。
【請求項15】
前記1つ以上のメモリデバイスは、前記1つ以上のプロセッサに追加の動作を行なわせる追加の命令をさらに含み、前記追加の動作は、
前記複数のデータベーステンプレートから、前記プロビジョニング要求の一部として、追加のデータベーステンプレートの追加の選択を受信することと、
前記データベーステンプレートによって少なくとも部分的に記述された前記データベースと、前記追加のデータベーステンプレートによって少なくとも部分的に記述された追加のデータベースとが、前記プロビジョニング要求の一部としてともにプロビジョニングされるべきであることを示す入力を受信することと、
前記追加のデータベーステンプレートによって少なくとも部分的に記述された前記追加のデータベースが、前記データベーステンプレートによって少なくとも部分的に記述された前記データベースとともに、前記プライベートクラウドにおいてプロビジョニングされるようにすることとを含む、請求項14に記載のシステム。
【請求項16】
前記プライベートクラウドは、
第1のオペレーティングシステムを使用する第1のプラットフォーム・アズ・ア・サービス(PaaS)プールと、
第2のオペレーティングシステムを使用する第2のPaaSプールとを含み、前記第1のオペレーティングシステムは前記第2のオペレーティングシステムとは異なっている、請求項14または15に記載のシステム。
【請求項17】
前記第1のPaaSプールは、
第1のデータベースバージョンを使用する第1のデータベース・アズ・ア・サービス(DBaaS)プールと、
第2のデータベースバージョンを使用する第2のDBaaSプールとを含み、前記第1のデータベースバージョンは前記第2のデータベースバージョンとは異なっている、請求項16に記載のシステム。
【請求項18】
前記1つ以上のメモリデバイスは、前記1つ以上のプロセッサに追加の動作を行なわせる追加の命令をさらに含み、前記追加の動作は、
前記データベーステンプレートによって少なくとも部分的に記述された前記データベースが、前記データベーステンプレートにおける仕様と一致するDBaaSプールにインストール可能かどうかを判断するために、前記プライベートクラウドをテストすることを含む、請求項14から17のいずれか1項に記載のシステム。
【請求項19】
前記プライベートクラウドをテストすることは、前記プライベートクラウドが、前記データベーステンプレートと一致する、オペレーティングシステムとデータベースバージョンとデータベースタイプとを有するDBaaSプールを含むかどうかと、前記プライベートクラウドが、前記データベーステンプレートによって少なくとも部分的に記述された前
記データベースに対処するのに十分なメモリおよび処理パワーを有するかどうかとを判断することを含む、請求項18に記載のシステム。
【請求項20】
コンピュータにより実行されると、請求項1〜13のいずれか1項に記載の方法をコンピュータに実行させる命令を有したコンピュータ読取可能プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
背景
【背景技術】
【0002】
クラウドコンピューティングは、専用ハードウェア/ソフトウェアを使用しなければ実現できないであろうより高い効率の達成を究極の目標として、ネットワークまたはインターネットを介してアクセスされるリソースの共有を可能にする。具体的には、組織がビジネス目標を達成しながら自らのコンピューティングリソースをフレキシブルに保つことを可能にする多くの特定領域で、効率を実現することができる。データベースを「プロビジョニングする」ための労力のレベル、または所要時間は、時間、コスト、および/または工数の点で、最適化の一領域を表わす。この労力のレベルは典型的には、2つの主な動作領域、すなわち、(1)データベースを実行または収容するためにデータベースソフトウェアが使用される物理マシンにインストールされたデータベースソフトウェアを表わす、ソフトウェアと、(2)顧客データを収容し、保持し、実行するために使用される物理データベースおよび関連付けられたメモリ構造を表わす、データベースインスタンスとに分類され得る。これらの2つの領域を、プライベート、パブリック、またはハイブリッドクラウドにおいて迅速、安全、かつ正確にプロビジョニングすることは、効率および規模の経済を達成するという組織目標の保証にとって最重要である。組織がどのようにこれらの新しいアーキテクチャを定量化および定性化できるかは、データを集める点で難しく、タスクを行なう労力の点で費用がかかり、分析して決定を下す時間量の点で面倒である。これらの作業に着手する場合、プロセス全体は「分析麻痺」をもたらすことが多い。
【発明の概要】
【課題を解決するための手段】
【0003】
簡単な概要
いくつかの実施形態では、プライベートクラウドにおけるデータベースプロビジョニングのためにリソースを予め配分する方法は、顧客のデータベースシステムにおける複数のデータベースの特性を判断するステップを含んでいてもよい。当該方法はまた、複数のデータベースを記述している複数のデータベーステンプレートを生成するために、複数のデータベースの特性をグループ分けするステップを含んでいてもよい。当該方法は加えて、複数のデータベーステンプレートのうちの少なくともいくつかに基づいて、リソースがプライベートクラウドにおいて予め配分されるようにするステップを含んでいてもよい。当該方法はさらに、複数のデータベーステンプレートから、プロビジョニング要求の一部として、データベーステンプレートの選択を受信するステップを含んでいてもよい。当該方法はまた、データベーステンプレートによって少なくとも部分的に記述されたデータベースが、プライベートクラウドにおいてプロビジョニングされるようにするステップを含んでいてもよい。
【0004】
いくつかの実施形態では、非一時的なコンピュータ読取可能媒体は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに動作を行なわせる命令を含んでいてもよく、当該動作は、複数のデータベースを記述している複数のデータベーステンプレートを生成するために、複数のデータベースの特性をグループ分けすることを含む。当該動作は加えて、複数のデータベーステンプレートのうちの少なくともいくつかに基づいて、リソースがプライベートクラウドにおいて予め配分されるようにすることを含んでいてもよい。当該動作はさらに、複数のデータベーステンプレートから、プロビジョニング要求の一部として、データベーステンプレートの選択を受信することを含んでいてもよい。当該動作はまた、データベーステンプレートによって少なくとも部分的に記述されたデータベースが、プライベートクラウドにおいてプロビジョニングされるようにすることを含んでいてもよい。
【0005】
いくつかの実施形態では、システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに動作を行なわせる命令を含む、1つ以上のメモリデバイスとを含んでいてもよく、当該動作は、複数のデータベースを記述している複数のデータベーステンプレートを生成するために、複数のデータベースの特性をグループ分けすることを含む。当該動作は加えて、複数のデータベーステンプレートのうちの少なくともいくつかに基づいて、リソースがプライベートクラウドにおいて予め配分されるようにすることを含んでいてもよい。当該動作はさらに、複数のデータベーステンプレートから、プロビジョニング要求の一部として、データベーステンプレートの選択を受信することを含んでいてもよい。当該動作はまた、データベーステンプレートによって少なくとも部分的に記述されたデータベースが、プライベートクラウドにおいてプロビジョニングされるようにすることを含んでいてもよい。
【0006】
ここに説明される実施形態のうちのいずれかでは、以下の特徴のうちの1つ以上が、任意の組合せで、何ら限定されることなく含まれていてもよい。複数のデータベースの特性は、オペレーティングシステムタイプおよびバージョンを含んでいてもよい。複数のデータベースの特性は、データベースタイプおよびバージョンを含んでいてもよい。複数のデータベースの特性は、データベースメモリサイズを含んでいてもよい。複数のデータベースの特性は、プロセッサ使用率を含んでいてもよい。複数のデータベースの特性は、特性をゲートウェイを通してクラウドサポートプラットフォームへ伝送する、顧客のデータベースシステムにインストールされた1つ以上のソフトウェアエージェントによって判断されてもよい。クラウドサポートプラットフォームは、複数のデータベースの特性のリアルタイム報告を生成してもよい。当該方法/動作はまた、特性を、少なくとも第1のグループの特性および第2のグループの特性へと分割することを含んでいてもよい。第1のグループの特性は、複数のデータベースのうちの2つ以上のデータベース間で共有される特性を含んでいてもよく、第2のグループの特性は、複数のデータベースのうちの2つ以上のデータベースのうちの少なくとも1つに特有の特性を含んでいてもよい。第1のグループの特性は、オペレーティングシステムと、データベースバージョン番号と、データベースタイプとを含んでいてもよい。第2のグループの特性は、データベースメモリサイズと、リスナポートと、ホームディレクトリ経路とを含んでいてもよい。当該方法/動作はまた、データベーステンプレートの選択を受信後、データベーステンプレートからの第1のグループの特性を含む一時的テンプレートを作成することと、第2のグループの特性についての値を含む入力を受信することと、第2のグループの特性についての値を一時的テンプレートに割当てることとを含んでいてもよい。当該方法/動作はまた、データベーステンプレートによって少なくとも部分的に記述されたデータベースがプライベートクラウドにおいてアクティブである間、一時的テンプレートをテンプレートのライブラリにおいて保持すること、データベーステンプレートによって少なくとも部分的に記述されたデータベースがプライベートクラウドにおいてもはやアクティブではなくなった後に、テンプレートのライブラリから一時的テンプレートを削除すること、および/または、データベーステンプレートによって少なくとも部分的に記述されたデータベースがいつ、プライベートクラウドにおいてもはやアクティブではなくなったかを判断するために、クラウドサポートプラットフォームがプライベートクラウドに問合せることを含んでいてもよい。当該方法/動作はまた、複数のデータベーステンプレートから、プロビジョニング要求の一部として、追加のデータベーステンプレートの追加の選択を受信することと、データベーステンプレートによって少なくとも部分的に記述されたデータベースと、追加のデータベーステンプレートによって少なくとも部分的に記述された追加のデータベースとが、プロビジョニング要求の一部としてともにプロビジョニングされるべきであることを示す入力を受信することと、追加のデータベーステンプレートによって少なくとも部分的に記述された追加のデータベースが、データベーステンプレートによって少なくとも部分的に記述されたデータベースとともに、プライベートクラウドにおいてプロビジョニングされるようにすることとを含んでいてもよい。プライベートクラウドは、第1のオペレーティングシステムを使用する第1のプラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)プールと、第2のオペレーティングシステムを使用する第2のPaaSプールとを含んでいてもよく、第1のオペレーティングシステムは第2のオペレーティングシステムとは異なっていてもよい。第1のPaaSプールは、第1のデータベースバージョンを使用する第1のデータベース・アズ・ア・サービス(Database as a Service:DBaaS)プールと、第2のデータベースバージョンを使用する第2のDBaaSプールとを含んでいてもよく、第1のデータベースバージョンは第2のデータベースバージョンとは異なっていてもよい。当該方法/動作はまた、データベーステンプレートによって少なくとも部分的に記述されたデータベースが、データベーステンプレートにおける仕様と一致するDBaaSプールにインストール可能かどうかを判断するために、プライベートクラウドをテストすることを含んでいてもよい。プライベートクラウドをテストすることは、プライベートクラウドが、データベーステンプレートと一致する、オペレーティングシステムとデータベースバージョンとデータベースタイプとを有するDBaaSプールを含むかどうかと、プライベートクラウドが、データベーステンプレートによって少なくとも部分的に記述されたデータベースに対処するのに十分なメモリおよび処理パワーを有するかどうかとを判断することを含んでいてもよい。
【0007】
図面の簡単な説明
本発明の性質および利点の一層の理解は、明細書の残りの部分および図面を参照して実現され得る。いくつかの図面にわたり、同様の構成要素を指すために同じ参照符号が使用される。場合によっては、複数の同様の構成要素のうちの1つを示すために、参照符号にサブラベルが関連付けられる。既存のサブラベルへの特定化なく参照符号が参照される場合、それは、そのような複数の同様の構成要素すべてを指すよう意図されている。
【図面の簡単な説明】
【0008】
図1】いくつかの実施形態に従った、顧客データベースシステム、クラウドサポートプラットフォーム、およびプライベートクラウドの簡略システム図である。
図2】いくつかの実施形態に従った、インストールされたゲートウェイを有する顧客データベースシステムの簡略図である。
図3】いくつかの実施形態に従った、プライベートクラウドにおいて提供され得る異なるテンプレート提供物を示す図である。
図4】いくつかの実施形態に従った、データベースタイプおよびレベルを選択するためのユーザインターフェイスを示す図である。
図5】いくつかの実施形態に従った、単一のデータベーステンプレートを形成するために複数のデータベースからの特性をどのように組合せることができるかについての図である。
図6】いくつかの実施形態に従った、選択されたテンプレートの可変パラメータを完了するためのユーザインターフェイスを示す図である。
図7】いくつかの実施形態に従った、プロビジョニングプロセス中に進行を更新するためのユーザインターフェイスを示す図である。
図8】いくつかの実施形態に従った、プロビジョニングプロセスによって作成される一時的テンプレートを示す図である。
図9】いくつかの実施形態に従った、テンプレートおよび一時的テンプレートを含むライブラリがどのように経時的に管理されるかを示す図である。
図10】いくつかの実施形態に従った、複数のデータベースのプロビジョニングを管理するためのユーザインターフェイスを示す図である。
図11】いくつかの実施形態に従った、プライベートクラウドにおけるデータベースプロビジョニングのためにリソースを予め配分する方法を示す図である。
図12】実施形態のうちのいくつかを実現するための分散型システムの簡略ブロック図である。
図13】実施形態システムのコンポーネントによって提供されるサービスをクラウドサービスとして提供し得るシステム環境のコンポーネントの簡略ブロック図である。
図14】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0009】
詳細な説明
ここに説明されるのは、プライベートクラウドにおけるデータベースプロビジョニングのためにリソースを予め配分するための実施形態である。顧客データベースシステムは、顧客によって構成されたデータベースおよびサーバを含んでいてもよい。ゲートウェイが顧客データベースシステムをクラウドサポートプラットフォームにリンクすることができ、クラウドサポートプラットフォームは次に、データベースシステムが作動する際にバックグラウンドで顧客データベースシステムを分析することができる。クラウドサポートプラットフォームは、使用率統計を監視し、データベースシステムを分析して、システムにおける個々のデータベースの各々を記述する特性を判断することができる。データベースシステムの特性はグループ分けされて、顧客データベースシステム上でインスタンス化されるデータベースのクラスを概して記述するテンプレートを形成することができる。クラウドサポートプラットフォームは次に、顧客データベースシステムにおける既存データベースと同様であるデータベースをプライベートクラウドにおいてプロビジョニングする要求が受信された場合に、プライベートクラウドが利用可能なハードウェアおよびソフトウェアリソースを有することを保証するために、リソースを予め配分することができる。顧客がプライベートクラウドにおける新しいデータベースのプロビジョニングを望む場合、インターフェイスは、データベーステンプレートのライブラリを顧客に提示する。顧客はデータベーステンプレートを選択し、さまざまな調整可能パラメータをカスタマイズして、プロビジョニング要求を行なうことができる。選択されたテンプレートとの適合性を保証するためにプライベートクラウドが前もってテストされ、プライベートクラウドリソースが予め配分されたため、プロビジョニング要求は、数週間または数ヶ月ではなく、数分で完了され得る。
【0010】
カタログのライブラリが、プライベートクラウドにおいてプロビジョニングされ得る利用可能なデータベースを表わしてもよい。このライブラリは、組織のビジネス要件に対してマッピングされた各データベースの技術仕様間のリンクである。たとえば、金レベルのデータベースは、高度に構成されたクラウドに存在する高度に構成されたデータベースであってもよい。カタログは、ソフトウェアバージョン、データベースタイプ、データベースサイズ、データベース構成、バックアップ構成などの点でデータベースの一般的構成を決定するデータベーステンプレートから構成され得る。ライブラリに格納されるこれらのカタログの数の減少を助けるために、カタログの各々は、カタログのパラメータが動的に変更可能であるという点で「一時的である」と考えることができ、それは、ユーザとサポートチームとの間の対話を減少させ、正しいデータベースが正しいクラウドにおいてプロビジョニングされることを保証する。
【0011】
図1は、いくつかの実施形態に従った、顧客データベースシステム、クラウドサポートプラットフォーム、およびプライベートクラウドの簡略システム図を示す。顧客データベースシステム102は、1つ以上のデータベース104と、1つ以上のサーバ106とを含んでいてもよい。顧客データベースシステム102はまた、データベース104に格納されたデータへのアクセスを管轄するリレーショナルデータベース管理システム(relational database management system:RDBMS)を含んでいてもよい。顧客データベースシステム102は、顧客作業サイト上に物理的に存在してもよく、またはそれに代えて、顧客に関連付けられた多くの異なる作業サイトに分散されてもよい。
【0012】
いくつかの実施形態では、顧客は、データベースプロバイダによって提供されるクラウドサポートプラットフォーム120に加入してもよい。たとえば、クラウドサポートプラットフォーム120は、オラクル(登録商標)によって提供されるオラクル・アドバンスド・サポート・ポータル(登録商標)を含んでいてもよい。クラウドサポートプラットフォーム120は、顧客データベースシステム102を監視し分析するゲートウェイ108を、顧客データベースシステム102にインストールすることができる。ゲートウェイ108は、使用率統計、ログ履歴を分析し、各データベース104の分析を行なって、顧客データベースシステム102のハードウェア/ソフトウェア要件、および推定される能力ニーズを判断することができる。顧客は、クラウドサポートプラットフォーム120にログインして、これらの報告および統計にアクセスし、顧客データベースシステム102の性能を監視することができる。
【0013】
具体的には、クラウドサポートプラットフォーム120は、データベース104を収容する物理マシンを識別でき、各データベース104の特性を判断する。これらの特性は、各データベース104の物理メモリサイズ要件、各データベースによって使用されるオペレーティングシステム、各データベース104のソフトウェアバージョン、各データベース104の速度/処理要件、各データベース104の構成などを含んでいてもよい。ゲートウェイ108はまた、セキュリティ要件、待ち時間要件、利用可能性要件、データ保護およびバックアップ要件などといった、データベース104の機能を識別してもよい。以下により詳細に説明されるように、顧客データベースシステム102のこれらの特性は、顧客データベースシステム102の各データベース104のハードウェア/ソフトウェア要件を記述するように機能する複数のデータベーステンプレートを生成するために、クラウドサポートプラットフォーム120によって使用される。
【0014】
クラウドサポートプラットフォーム120は、プライベートクラウド110に通信可能に結合され得る。プライベートクラウド110は、一般的なオペレーティングシステムに基づいたリソースのプラットフォーム・アズ・ア・サービス(PaaS)プール112を含んでいてもよい。たとえば、PaaSプール112は、リナックス(登録商標)オペレーティングシステムに基づいたグループと、ソラリス(登録商標)オペレーティングシステムに基づいたグループとを含んでいてもよい。プライベートクラウド110はまた、各データベースのバージョンおよびタイプに基づいたリソースのデータベース・アズ・ア・サービス(DBaaS)プール114グルーピングを含んでいてもよい。たとえば、DBaaSプール114は、データベースバージョン、単一インスタンス対複数インスタンス設計、コンテナデータベース対プラガブルデータベースなどに基づいたデータベースのグルーピングを含んでいてもよい。
【0015】
一般に、顧客がプライベートクラウド110における新しいデータベースのプロビジョニングを決定すると、新しくプロビジョニングされるデータベースについての要件は、顧客データベースシステム102のデータベース104に既に存在するデータベースと非常に類似するであろう。たとえば、顧客は、既存データベースをアップグレードすること、既存データベースに機能を追加すること、既存データベースをバックアップすること、または、新しいデータベースを設計して既存データベースを置き換えることを望むかもしれない。これらの動作の各々では、プライベートクラウド110においてプロビジョニングされるデータベースは、顧客データベースシステム102における既存データベース104のうちの少なくとも1つと非常に類似するかもしれない。既存データベース104を分析することにより、ゲートウェイ108および/またはクラウドサポートプラットフォーム120は、顧客が将来プライベートクラウド110におけるプロビジョニングを要求するであろうデータベースのタイプを効果的に予測することができる。この情報を知って、クラウドサポートプラットフォーム120はプライベートクラウド110をテストして、それが顧客データベースシステム102においてよく見られるデータベースに適合することを保証することができる。クラウドサポートプラットフォーム120はまた、そのような要求が顧客データベースシステム102から受信されたときにプライベートクラウド110が準備できているように、プライベートクラウド110においてハードウェア/ソフトウェアリソースを予め配分することができる。これらの動作は、顧客のニーズに応えるために最適化されたプライベートクラウド110を作成する。この開示以前では、顧客がプライベートクラウド110における新しいデータベースのプロビジョニングを望んだ場合、ハードウェア/ソフトウェアリソースを配分し、適切なオペレーティングシステムおよびデータベースバージョンがプライベートクラウド110にインストールされたことを保証するプロセスは、数週間、さらには数ヶ月かかるプロセスであった。顧客データベースシステム102がゲートウェイ108および/またはクラウドサポートプラットフォーム120によって分析される際にプライベートクラウド110を予め配分しテストすることにより、顧客データベースシステム102の既存データベースに由来する選択されたテンプレートに基づいた新しいデータベースのためのプロビジョニングプロセスは、数分で完了され得る。
【0016】
図2は、いくつかの実施形態に従った、インストールされたゲートウェイ108を有する顧客データベースシステム102の簡略図を示す。顧客データベースシステム102は、さまざまなオペレーティングシステムタイプおよびバージョンのサーバ106にインストールされた、異なる構成(たとえば、RAC、PDB、単一インスタンスなど)の、およびさまざまなバージョン(たとえば、10g、11g、12c)のデータベース104を含んでいてもよい。これらのホストは、仮想マシンおよび/または物理マシンであり得る。場合によっては、ホストは、インストールされ構成されたソフトウェアまたはデータベースを有していなくてもよく、単に配分を待ってアイドル状態であってもよい。
【0017】
クラウドサポートプラットフォーム120のゲートウェイ108は、顧客データベースシステム102にインストールされ得る。顧客アドミニストレータは、クラウドサポートプラットフォーム120によって提供されるサービスおよびツーリングに、ローカルまたはリモートにアクセスしてもよい。一例では、クラウドサポートプラットフォームおよび/またはゲートウェイは、クラウドプラグインおよびデータベースプロビジョニングサービス論理コードを含むオラクルのEM12C(登録商標)ソフトウェアスイートの完全なコピーをインストールしたかもしれない。顧客データベースシステム102についての構成および性能データは、顧客データベースシステム102にインストールされたホストのさまざまなエージェント202によって収集され得る。これらのエージェント202は、オペレーティングシステム、メモリ、ストレージ、CPU使用率、および帯域幅使用率といった特性を検出することができる。エージェント202、またはEM12Cプラグインは次に、ホストサーバおよびホストデータベースを監視するプロセス204および206に折り返し報告してもよい。データベース/サーバ特性は、リポジトリ208に格納されてもよい。
【0018】
図1に少し戻って、プライベートクラウド110は、いくつかの論理グルーピングの組合せである。第1の論理グルーピングはPaaSゾーン112であり、それは配分されたホストの集合である。第2の論理グルーピングはDBaaSゾーン114であり、それは、データベースが作成され利用され得るリソースのプールである。これらの論理グルーピングは、クラウドサポートプラットフォーム120を通して提供されるプラグインを使用して作成され、格納され得る。
【0019】
顧客データベースシステム102を分析し、データベーステンプレートを生成した後に、プライベートクラウド110におけるあらゆる既存システムと、プライベートクラウド110および/または顧客データベースシステム102内の構成および現在の使用率とともに、顧客のデータベースシステムの概要を提供するために、テンプレートの表示が顧客に提示され得る。顧客がどのようにプライベートクラウド110を弾性であるように(すなわち、伸縮するように)操作できるかについての概要を付与するために、プライベートクラウド110に配分される準備ができている潜在的なホストも顧客に表示されてもよい。
【0020】
プライベートクラウド110における潜在的なホストは、リナックス、AIX、ソラリス、ウィンドウズ(登録商標)などといったオペレーティングシステムの混合物であってもよい。図2に戻って、PaaSプール112におけるすべてのホストが同じタイプのものであることを保証するためにオペレーティングシステムタイプをテストする(210)ために、ゲートウェイ108におけるデータベースプロビジョニングサービス論理コードを使用して、テストを行なうことができる。たとえば、配分を待っているすべてのホストがリナックスおよびソラリスの混合物であってもよく、一方、PaaSプール112はリナックスのみで構成されてもよい。正しいホストが対応する正しいPaaSプール112に割当てられることを保証するために、顧客に表示されたデータは、システムタイプのテスト210からの結果を含んでいてもよい。この例では、リナックスホストは表示され得るものの、ソラリスホストは表示されないであろう。このテストは、DBaaSプール114の誤りまたは潜在的な構成ミスが生じないことを保証し、それはクラウドプロビジョニングプロセスを加速して、DBaaSクラウドを作成し、維持し、修正するために必要とされる労力および専門技術のレベルを低下させる。
【0021】
DBaaSプール114内の構成および現在の使用率とともに、PaaSプール112にインストールされたデータベースソフトウェアの概要を付与するために、データが顧客に提示され得る。ソフトウェアは、プールごとにデータベースタイプを判断する。たとえば、データベースプールは、プロビジョニング中のデータベースと同じバージョンのものでなければならない。たとえば、バージョン12cオラクル(登録商標)データベースは、DBaaSプールがそこで作動するバージョン12cソフトウエアを有していなかった場合、DBaaSプール上に存在できないであろう。
【0022】
顧客が新しいデータベースのプロビジョニングを要求すると、顧客は、テンプレートのライブラリからテンプレートを選択するであろう。各テンプレートは、顧客データベースシステム102における既存データベースのソース構成についての情報を含んでいてもよい。適切なソフトウェアバージョンがPaaSプール112にインストールされることを保証するために、テスト212を行なうことができる(ターゲットデータベースタイプが個々のDBaaSプールに割当てられ得るため、これは必要かもしれない)。たとえば、リアル・アプリケーション・クラスタ(Real Application Clusters:RAC)データベースは、正確に作動できるようになるためにインストールされたオラクルのクラスタ・レディ・サービス(Cluster Ready Services:CRS)ソフトウェアを有していなければならず、一方、単一インスタンスデータベースは、そのような追加ソフトウエアを必要としない。ソフトウェアバージョンテスト212は、顧客が特定のデータベースを正しいDBaaSプール114へデプロイメントすることしかできないことを保証できる。
【0023】
顧客はまた、特定のサイズ(たとえば、メモリ、ストレージ、およびCPU要件)を有するデータベース構成を要求してもよい。DBaaSプール114はまた、要求された構成を収容するのに正しいサイズであるように作成されてもよい。たとえば、新しいデータベースがプライベートクラウド110の予め配分されたリソースに収まることを保証するために、DBaaSプール114は、要求されたサイズよりも大きくなければならない。最後に、顧客データベースシステム102に由来するテンプレートについて、顧客がデータベースの正しいサイズを要求できることを保証するために、データベースタイプテスト214がゲートウェイ108によって実行され得る。
【0024】
プライベートクラウド110における新しくプロビジョニングされたデータベースについての要求されたテンプレートに対して、すべてのテスト210、212、214が一旦行なわれると、クラウドサポートプラットフォーム120は、プライベートクラウド110において新しいデータベースを実際にプロビジョニングするために、さまざまなAPIを通して動作することができる。実施可能な程度の開示を提供するために、オラクル・エンタープライズ・マネージャ(Enterprise Manager:EM)のAPIを通してデータベースをプロビジョニングするためのプロセスが以下に含まれる。しかしながら、この開示に鑑みて、当業者であれば、これらの特定の手続きを、プライベートクラウド110とインターフェイス接続する他のシステム用の他のAPIに対して実行されるように修正できるであろう。したがって、以下の説明は例示に過ぎず、限定的であるよう意図されてはいない。
【0025】
この特定の例では、プロビジョニングはすべて、それがゾーン、プール、ライブラリ、一時的テンプレート、またはデータベース自体であろうとなかろうと、2つのエンタープライズ・マネージャAPI、すなわち、エンタープライズ・マネージャ・コマンド・ライン・インターフェイス(Enterprise Manager Command Line Interface:EMCLI)APIと、レプリゼンテーショナル・ステート・トランスファー(Representational State Transfer:REST)APIとを通して達成されてもよい。EMCLI APIは、単一コマンドラインで実行される単純な手続き呼出しである。コマンドラインは、動詞(すなわち、「我々がしようとしていること」)と、その動詞をサポートする1組のパラメータとを含んでいてもよい。EMCLI動詞は、リアルタイムで、またはエンタープライズ・マネージャ・スケジューラを通して実行され得る。REST APIは、ウェブサービスの開発を助けるために使用される一般的なHTTPプロトコルを含む。本質的にそれは、POSTまたはGETコマンドなどのアクションと、パラメータと値との対を含むペイロードファイルとを伴う。ユニフォームリソース識別子(Uniform Resource Identifier:URI)へのペイロードをPOSTすることは、たとえば、ペイロードの扱い方を知っていると推定されるウェブページにペイロードを送信するであろう。アクションの状態を検索するために、GET呼出しを同じURIに送信することができ、ペイロードが受信されるであろう。それは、構文解析されると、その状態の情報がコードを通して戻されることを可能にする。
【0026】
顧客が新しいデータベースのプロビジョニングを要求すると、PL/SQL手続きが、その新しいデータベースについてのすべてのパラメータを得て、パラメータファイルを生成することができる。そのパラメータファイルは、単純な「PARAMETER」=「VALUE」テキストファイルを含んでいてもよい。いくつかの実施形態では、データベースをプロビジョニングするプロセスはまず、(以下により詳細に説明される)一時的テンプレートを作成しなければならない。PL/SQL手続きは、アクションを行なうコードへのオペレーティングシステム呼出しと、パラメータファイルへのポインタとを作成することができる。作成テンプレートプロセスはEMCLI APIを使用し、それはパラメータファイルを読出し、アクションについてのEMCLIコマンドラインを生成し、次にアクションを実行する。これは(スケジューラを通して実行されるアクションではなく)リアルタイム実行であるため、EMCLI呼出しから出力が渡され、次に、アクションが成功したことを確認するために問合せを行なうことができる。
【0027】
次に、データベース名、テンプレート名などといった情報を含む別のパラメータファイルが構築され得る。次に、データベースをプロビジョニングするために、OSコードに呼出しを行なうことができる。OSコードは、パラメータファイルを得て、それを、典型的にはJavaScript(登録商標)オブジェクト表記法(JavaScript Object Notation:JSON)フォーマットファイルにおけるREST API用のペイロードに変換し、次にそれを、PaaSゾーン用のURIに通知することができる。エンタープライズ・マネージャ・スケジューラは、それが提出された後にプロビジョニングプロセス用のURIへのGET呼出しを実行するために、バックグラウンドで作動する。数秒ごとにGETコマンドを実行することにより、顧客は、プロビジョニングプロセスの現在の状態を見ることができる。具体的には、戻されたペイロードを構文解析し、結果として生じるペイロードからステータスを抽出することができる。この情報をPL/SQLコードへ戻すために、データベースリポジトリ208において、各個々のアクション(すなわち、「Create_Zone」、「Create_Database」など)についてのログとして作用するテーブルを利用することができる。GET呼出しが行なわれるたびに、データベースにおけるログテーブルは、戻されたペイロードからの関連情報で更新され得る。ログテーブルは次に、顧客のためのユーザインターフェイスに表示されるべき現在のステータス(たとえば、「実行中」、「完了」など)を検索するために調査され得る(以下の図7についての説明を参照)。この同じログテーブルは、顧客にとって有用なペイロードから抽出された他の情報を保持するためにも使用され得る。たとえば、データベースがプロビジョニングされた後に顧客がデータベースにログインできるように、データベース用の接続文字列が格納され得る。ジョブが何らかの理由で失敗した場合、失敗の理由もGETペイロードから抽出され、ログテーブルに格納され得る。一意的なURIを有するバックグラウンドでEMスケジューラがジョブとして作動するという事実は、以下により詳細に説明される一括プロビジョニングを容易にするために、いくつかのプロビジョニングプロセスが並行して実行可能である、ということを意味する。顧客がプロビジョニングされたデータベースの削除を望む場合、データベース自体もURIを有する。顧客は、そのURIへの単純なREST DELETE呼出しを行ない、次に、削除が完了するまで、データベースのプロビジョニングについて上述されたものと同じ態様でそのジョブを監視することができる。
【0028】
図3は、いくつかの実施形態に従った、プライベートクラウドにおいて提供され得る異なるテンプレート提供物を示す。顧客データベースシステム102を分析後、各データベース104についての特性は比較され、グループ分けされて、テンプレートを形成することができる。単一のテンプレートは、顧客データベースシステム102におけるデータベース104のうちの1つ以上を記述していてもよい。いくつかの実施形態では、同様の物理構造またはアプリケーションを有するデータベースは1グループになるようグループ分けされてもよく、そのグループのために異なるレベルが作成されてもよい。たとえば、金融データベースが分析されてもよく、その金融データベースからテンプレートが生成されてもよい。
【0029】
次に、各々がそれ自体のテンプレートを有する複数のレベルが作成されてもよい。単なる例示のために、ここに説明されるレベルは、異なるデータベースレベルを特定するために、金、銀、銅などと呼ばれるであろう。たとえば、金レベルのデータベースは、プライベートクラウド110内で高度なセキュリティ機能を有して構成された、RACデータベースなどの非常に複雑なデータベースであってもよい。それは、バックアップおよび/または復旧への特別な注意を必要とする場合がある。それに比べ、銀レベルのデータベースは、より下位の規格に準拠し、それほど多くの構成またはリソースを必要としない場合がある。いくつかの実施形態では、金レベルのデータベースは、高レベルの利用可能性、特定のセキュリティプロトコル、および高忠実度バックアップルーチンを必要とする、顧客が使用するためのライブシステムに対応してもよい。銀レベルのデータベースは、データベースシステムがライブになる前のデータベーステスト環境に対応してもよい。銅レベルのデータベースは、開発段階中の新しいデータベース構想をテストできる試作データベース環境に対応してもよい。
【0030】
一般に、データベースは、複数の異なる要因に基づいて異なるレベルに割当てられ得る。1つの要因は利用可能性であってもよく、それは、いつ、どのように、バックアップおよび復旧戦略が採用されるか、データベースがRAC能力を有するかどうか、ならびに、それが待機データベースを介して最大の利用可能性アーキテクチャを必要とするかどうかについて記述する。別の要因はセキュリティであってもよく、それは、データ・ボルト(Data Vault)(登録商標)などの特定のセキュリティ製品、またはデータマスキングや、データベースがテスト用または開発用かどうか、あるユーザがアクセスを許可されているかどうか、もしくは、包括的なパスワードが許可されているかどうかについての指定を含んでいてもよい。別の要因は性能を含んでいてもよく、それは、あるレベルが、メモリ、CPUパワー、および/またはストレージの点でより多くの能力を有するかどうか、ならびに、停電がどのように扱われるかに関する指定を含む。別の要因は、保守および顧客サービスの点から見たコストを含んでいてもよい。別の要因は敏捷性を含んでいてもよく、それは、できるだけ効率的であることをプロジェクト/システムに強いる待ち行列オントロジーを通して、プロジェクトが利用可能なリソースを十分に利用し、リソース浪費を減少させることを保証してもよい。これらの要因の各々には、テンプレートライブラリにおける各レベルについての値が割当てられてもよい。
【0031】
図3の例では、DBaaSプール114における各データベースは、金レベル306と、銀レベル308と、銅レベル310とを含む。たとえば、リナックスホスト302は、金レベル306、銀レベル308、および/または銅レベル310で、バージョン11G RACデータベースを実行してもよい。同様に、ソラリスホスト304は、同じレベルで、バージョン12C PDBデータベースを実行してもよい。
【0032】
図4は、いくつかの実施形態に従った、データベースタイプおよびレベルを選択するためのユーザインターフェイス400を示す。一例として、この特定の顧客は、金融データベースと、販売データベースと、品質保証(quality assurance:QA)データベースとを有するビジネスを経営しているかもしれない。上述のように、顧客データベースシステムにインストールされたゲートウェイは、これらのデータベースの各々を分析し、これらのデータベースの各々についての特性を判断し、これらのデータベースの各々についてのテンプレートを生成するであろう。次に、各テンプレートに対応して、データベースタイプごとに異なるレベルが割当てられ得る。たとえば、金融データベースは、銅、銀、金、およびプラチナという4つのレベルを有していてもよい。これらのレベルの各々は、機能、能力、セキュリティレベル、利用可能性レベルなどの増加に対応してもよい。同様に、販売データベースはゲートウェイによって分析されてもよい。販売データベースは次に、プライベートクラウドにおける銅および金レベルでのプロビジョニングのために利用可能にされてもよい。
【0033】
ユーザインターフェイス400は、顧客にとって利用可能なデータベースおよびレベルごとに、利用可能なテンプレートをすべてロードすることができる。顧客がユーザインターフェイス400をロードすると、顧客は、顧客データベースシステムにすでにインストールされ、動作しているものと同様のデータベースオプションを見るであろう。これにより、顧客は、データベースのタイプを、その使用に基づいて速やかに選択できるようになる。たとえば、新しい金融データベースの試作を望む顧客は、銀レベルの金融データベースを選択できるであろう。ユーザインターフェイス400はまた、必要なデータベースバージョン、必要なオペレーティングシステム、および、各レベルによって提供されるデータベースのタイプを容易に示す。この例では、ユーザは「Finance_Gold」データベースを選択し、プロビジョニングプロセスにおける次のステップに進む。
【0034】
図5は、いくつかの実施形態に従った、単一のデータベーステンプレートを形成するために複数のデータベースからの特性をどのように組合せることができるかについての図を示す。テンプレートは、多くの異なる要素で構成されてもよい。たとえば、各データベースは、データベースタイプ、オペレーティングシステム、および/またはバージョン(たとえば、単一インスタンス、RAC、CDB/PDB、スキーマ、11G、12C、リナックス、ソラリス、ウィンドウズなど)によって特徴付けられ得る。データベースはまた、初期化パラメータなどのデータベースパラメータや、データベースが待機、復旧マネージャ(Recovery Manager:RMAN)バックアップを有するかどうかといったことによって特徴付けられてもよい。データベースはまた、CPU使用率、メモリ使用率、およびストレージ要件を含む、計算サイズによって特徴付けられてもよい。
【0035】
ゲートウェイが顧客データベースシステムを分析する際、ツールは、ゲートウェイによって発見されたデータベース特性に基づいて、利用可能なテンプレートを作成し、作ることができる。しかしながら、データベースごとにテンプレートを生成することは、非常に大きく複雑になるテンプレートライブラリを生み出し得る。なぜなら、テンプレートは、各ソースシステムについて、および各ソースシステムの関連コピーについて必要とされるためである。ソースデータベースごとにテンプレートを作成する代わりに、データベース特性は、少なくとも2つのグループに分割され得る。第1のグループは、多くのデータベース間で共有される特性を含んでいてもよい。第2のグループは、各データベースに特有の特性を含んでいてもよい。第1のグループの特性を共有するデータベースは単一のテンプレートへと組合されることができ、データベースをプロビジョニングする際、それらの特性および第2のグループは顧客によって編集され得る。
【0036】
たとえば、第1のデータベース502および第2のデータベース504は、ゲートウェイによって分析されてもよい。第1のデータベース502の第1のグループの特性508は、オペレーティングシステムと、データベースバージョンと、データベースタイプとを、明確性のために省略された他の特性とともに含む。第2のデータベース504の第1のグループの特性512は、第1のデータベース502の第1のグループの特性508と同じである。しかしながら、第1のデータベース502の第2のグループの特性506は、第2のデータベース504の第2のグループの特性510と異なっていてもよい。2つの別個のテンプレートを生成する代わりに、テンプレート514の第1のグループの特性518が第1のデータベース502および第2のデータベース504のものと一致する、単一のテンプレート514を生成することができる。テンプレート514の第2のグループの特性516は、データベースのサイズと、リスナポートと、ホームディレクトリとを、明確性のために省略された他の可変パラメータとともに含んでいてもよい。テンプレート514における第2のグループの特性516の各々について、デフォルト値が選択されてもよい。たとえば、第2のグループの特性516は、第1のデータベース502または第2のデータベース504からコピーされてもよい。他の実施形態では、3つ以上のデータベースを組合せて単一のテンプレートを形成してもよい。他の実施形態では、単一のデータベースが、顧客データベースシステムにおける他のデータベースと特性を共有していない場合、その単一のデータベースは単一のテンプレートをもたらしてもよい。
【0037】
図6は、いくつかの実施形態に従った、選択されたテンプレートの可変パラメータを完了するためのユーザインターフェイス600を示す。テンプレートを選択する際、テンプレートにおける第1のグループの特性に基づく、プロビジョニングされるべきデータベースのパラメータには、テンプレートからのデータ値が代入され得る。テンプレートにおける第2のグループの特性については、ユーザインターフェイス600は、顧客が可変パラメータの各々について値を選択できるようにする。第2のグループの特性におけるパラメータの各々は、ユーザ入力を介して設定されてもよい。これらのパラメータは、データベースサイズ、データベース記述、ターゲットサイズ、さまざまなパスワード、ドメイン名、リスナポート、ストレージタイプ、データベースファイル位置、復旧オプション、アーカイブオプション、復旧ファイル位置、リドゥログ位置、インスタンスの数などを含む。可変パラメータを記入後、顧客は、プロビジョニングプロセスの次の段階に進むことができる。
【0038】
図7は、いくつかの実施形態に従った、プロビジョニングプロセス中に進行を更新するためのユーザインターフェイス700を示す。この開示以前では、プライベートクラウドが新しいデータベースにとって必要なハードウェア/ソフトウェアを組立て、ロードし、インストールした場合、プライベートクラウドにおけるデータベースのプロビジョニングの要求は、達成に数週間または数ヶ月を要したであろう。ここに説明される実施形態によって提供される事前配分およびテストにより、プロビジョニングプロセスは、ユーザインターフェイス600を通した要求完了から数分以内に完了され得る。ユーザインターフェイス700は、上述のREST APIを通して数秒ごとにGET要求から更新を受信し、プロビジョニングプロセスを完了するために残っている推定時間を提供する。
【0039】
図8は、いくつかの実施形態に従った、プロビジョニングプロセスによって作成される一時的テンプレートを示す。可変パラメータがユーザインターフェイス600を通して完了されると、ここに「一時的テンプレート」と呼ばれる新しいテンプレートが、顧客によって提供される可変パラメータ値を格納するために作成されるであろう。いくつかの実施形態では、プライベートクラウドにおける新しいデータベースのあらゆるプロビジョニングは、一時的テンプレートの作成をもたらすであろう。いくつかの実施形態では、新しいデータベースについてのパラメータ値がすべて、顧客によって選択された元のテンプレートにおけるパラメータ値と同じであっても、一時的テンプレートが作成されてもよい。他の実施形態では、プロビジョニングされたデータベースについてのパラメータ値のうちの1つ以上が、元のテンプレートにおける値とは異なる場合にのみ、一時的テンプレートが作成されるであろう。
【0040】
たとえば、顧客がテンプレート514を選択し、次に可変パラメータ値のうちの1つ以上を変更する場合、可変パラメータ値を格納するために、新しい一時的テンプレート808が作成されるであろう。この例では、新しい一時的テンプレート808の第2のグループの特性810は、データベースサイズと、リスナポートと、ホームディレクトリとを含む、テンプレート514の第2のグループの特性516とは異なっている。いくつかの実施形態では、新しい一時的テンプレート802の第2のグループの特性804が、テンプレート514の第2のグループの特性516と同じであっても、新しい一時的テンプレート802が作成されてもよい。
【0041】
図9は、いくつかの実施形態に従った、テンプレートおよび一時的テンプレートを含むライブラリが、どのように経時的に管理されるかを示す。図9に示す一時的テンプレート802、808、902の各々は、顧客によって特定されたような、プライベートクラウドにおけるプロビジョニングされたデータベースの結果であってもよい。ライブラリは、プライベートクラウドにおける実際のデータベース904、906、908へのリンクのリストを保持していてもよい。テンプレート整理プロセス910は、プライベートクラウドにおけるアクティブなデータベースにもはや接続されていない一時的テンプレートを除去することにより、テンプレートライブラリを周期的に整理することができる。たとえば、一時的テンプレート802は、プライベートクラウドにおける対応するプロビジョニングされたデータベースがもはやアクティブではなくなった場合に、テンプレートライブラリから除去されてもよい。いくつかの実施形態では、クラウドサポートプラットフォームは、どのデータベースがまだアクティブかを判断するためにプライベートクラウドに周期的に問合せ、次に、アクティブなデータベースにもはや接続されていない一時的テンプレートをテンプレートライブラリから除去することができる。図9の例では、一時的テンプレート808および902は、プライベートクラウドにおけるアクティブなデータベースにまだ接続されているため、テンプレートライブラリに残っていてもよい。
【0042】
図10は、いくつかの実施形態に従った、複数のデータベースのプロビジョニングを管理するためのユーザインターフェイス1000を示す図である。ユーザインターフェイス1000は、プライベートクラウドの顧客のための概要と、関連付けられたプロビジョニングプロセスとを提供する。たとえば、ユーザインターフェイス1000は、ライブラリカタログにおけるPaaSゾーンの数と、DBaaSプールの数と、テンプレートの数とを示す。加えて、プライベートクラウドにおいてプロビジョニングされたデータベースの各々についてのステータスも、表示されてもよい。たとえば、ユーザインターフェイス1000は、14個のデータベースが順調にプロビジョニングされ、37個のデータベースが現在プロビジョニング中であり、9個のデータベースがプロビジョニングプロセスに失敗し、73個のデータベースが順調にプロビジョニングされた後に失効したことを示す。
【0043】
プライベートクラウドデータベースプロビジョニングプロセスの概要の提供に加えて、ユーザインターフェイス1000はまた、顧客が複数のデータベースを一括でプロビジョニングできるようにしてもよい。ユーザインターフェイス1000は、顧客が、一度に2つ以上のデータベースを選択し、次に、「すべてをプロビジョニング」という入力を使用して、一群のプロビジョニング要求をプライベートクラウドに送信できるようにする。上述の予め配分された環境により、これらの実施形態は、異なる環境においても、一度に複数のデータベースの移動を可能にする。選択されたすべてのデータベースをプロビジョニングするために、機能がゲートウェイ内で利用可能である。たとえば、ユーザ/アドミニストレータは、ユーザ/アドミニストレータが各ホストを繰り返しクリックする必要なく、多くのホストを特定されたタイプの既存PaaSに自動的に追加することができる。ユーザ/アドミニストレータが非常に大きい開発プールの作成を望む場合、これは効率的である。
【0044】
図11は、いくつかの実施形態に従った、プライベートクラウドにおけるデータベースプロビジョニングのためにリソースを予め配分する方法を示す。この方法は、顧客のデータベースシステムにおける複数のデータベースの特性を判断するステップ(1102)と、複数のデータベースを記述している複数のデータベーステンプレートを生成するために、複数のデータベースの特性をグループ分けするステップ(1104)とを含んでいてもよい。この方法はまた、複数のデータベーステンプレートのうちの少なくともいくつかに基づいて、リソースがプライベートクラウドにおいて予め配分されるようにするステップ(1106)を含んでいてもよい。この方法は加えて、複数のデータベーステンプレートから、プロビジョニング要求の一部として、データベーステンプレートの選択を受信するステップ(1108)を含んでいてもよい。この方法はさらに、データベーステンプレートによって少なくとも部分的に記述されたデータベースが、プライベートクラウドにおいてプロビジョニングされるようにするステップ(1110)を含んでいてもよい。
【0045】
図11に示す特定のステップは、本発明のさまざまな実施形態に従った、プライベートクラウドにおいてデータベースをプロビジョニングする特定の方法を提供する、ということが理解されるべきである。ステップの他の順序も、代替的な実施形態に従って行なわれてもよい。たとえば、本発明の代替的な実施形態は、上に概説されたステップを異なる順序で行なってもよい。また、図11に示す個々のステップは、個々のステップにとって適切であるようにさまざまな順序で行なわれ得る複数のサブステップを含んでいてもよい。さらに、特定の用途に依存して、追加のステップが追加され、または除去されてもよい。当業者であれば、多くの変形、修正、および代替物を認識するであろう。
【0046】
ここに説明された方法の各々は、コンピュータシステムによって実現されてもよい。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/または、ユーザが関与する入力/出力を提供されてもよい。たとえば、ユーザは方法におけるステップごとに入力を提供してもよく、これらの入力の各々は、そのような入力を要求する特定の出力に応答するものであってもよく、出力はコンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受信されてもよい。さらに、入力は、ユーザから、別のコンピュータシステムからデータストリームとして受信され、メモリ位置から検索され、ネットワークを通して検索され、ウェブサービスから要求されたりしてもよい。同様に、出力は、ユーザに、別のコンピュータシステムにデータストリームとして提供され、メモリ位置に保存され、ネットワークを通して送信され、ウェブサービスに提供されたりしてもよい。要するに、ここに説明された方法の各ステップは、コンピュータシステムによって行なわれてもよく、ユーザが関与する、または関与しないかもしれない、コンピュータシステムとの間での任意の数の入力、出力、および/または要求を伴ってもよい。ユーザが関与しないそれらのステップは、人の介入なくコンピュータシステムによって自動的に行なわれる、と言ってもよい。したがって、ここに説明された各方法の各ステップは、ユーザとの間での入力および出力を含むように変更されてもよく、または、人の介入なくコンピュータシステムによって自動的に行なわれてもよく、その場合、あらゆる決定がプロセッサによって下される、ということが、この開示に鑑みて理解されるであろう。さらに、ここに説明された各方法のいくつかの実施形態は、有形のソフトウェア製品を形成するために有形の非一時的な記憶媒体上に格納された1組の命令として実現されてもよい。
【0047】
図12は、実施形態のうちの1つを実現するための分散型システム1200の簡略図を示す。図示された実施形態では、分散型システム1200は1つ以上のクライアントコンピューティングデバイス1202、1204、1206、および1208を含み、それらは、1つ以上のネットワーク1210を通して、ウェブブラウザ、専用クライアント(たとえば、オラクル・フォームズ(Oracle Forms))などのクライアントアプリケーションを実行し、動作させるように構成される。サーバ1212は、ネットワーク1210を介して、リモートのクライアントコンピューティングデバイス1202、1204、1206、および1208と通信可能に結合されてもよい。
【0048】
さまざまな実施形態では、サーバ1212は、システムのコンポーネントのうちの1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態では、これらのサービスは、ウェブベースのサービスまたはクラウドサービスとして、もしくはソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)モデルの下で、クライアントコンピューティングデバイス1202、1204、1206、および/または1208のユーザに提供されてもよい。クライアントコンピューティングデバイス1202、1204、1206、および/または1208を操作するユーザは次に、これらのコンポーネントによって提供されるサービスを利用するためにサーバ1212と対話するために、1つ以上のクライアントアプリケーションを利用してもよい。
【0049】
図に示す構成では、システム1200のソフトウェアコンポーネント1218、1220および1222は、サーバ1212上で実現されるとして示されている。他の実施形態では、システム1200のコンポーネントおよび/またはこれらのコンポーネントによって提供されるサービスのうちの1つ以上も、クライアントコンピューティングデバイス1202、1204、1206、および/または1208のうちの1つ以上によって実現されてもよい。クライアントコンピューティングデバイスを操作するユーザは次に、これらのコンポーネントによって提供されるサービスを使用するために、1つ以上のクライアントアプリケーションを利用してもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。分散型システム1200とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。図1に示す実施形態はこのため、実施形態システムを実現するための分散型システムの一例であり、限定的であるよう意図されてはいない。
【0050】
クライアントコンピューティングデバイス1202、1204、1206、および/または1208は、携帯型ハンドヘルドデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(personal digital assistant:PDA))、またはウェアラブルデバイス(たとえば、グーグル・グラス(Google Glass)(登録商標)頭部装着型ディスプレイ)であってもよく、マイクロソフト・ウィンドウズ・モバイル(Microsoft Windows Mobile)(登録商標)などのソフトウェア、および/または、iOS、ウィンドウズフォン、アンドロイド(登録商標)、ブラックベリー(登録商標)10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(short message service:SMS)、ブラックベリー(登録商標)、または他の通信プロトコルに対応していてもよい。クライアントコンピューティングデバイスは、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを例として含む、汎用パーソナルコンピュータであり得る。クライアントコンピューティングデバイスは、たとえばグーグル・クローム(Google Chrome)OSなどのさまざまなGNU/リナックスオペレーティングシステムを何ら限定されることなく含む、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX様オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであり得る。それに代えて、またはそれに加えて、クライアントコンピューティングデバイス1202、1204、1206、および1208は、ネットワーク1210を通して通信可能である、シンクライアントコンピュータ、インターネット対応ゲーミングシステム(たとえば、Kinect(登録商標)ジェスチャー入力デバイスを有する、または有さない、マイクロソフトXboxゲーミングコンソール)、および/またはパーソナルメッセージングデバイスといった、任意の他の電子デバイスであってもよい。
【0051】
例示的な分散型システム1200は4つのクライアントコンピューティングデバイスを有して示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスが、サーバ1212と対話してもよい。
【0052】
分散型システム1200におけるネットワーク1210は、TCP/IP(transmission control protocol/Internet protocol:伝送制御プロトコル/インターネットプロトコル)、SNA(systems network architecture:システムネットワークアーキテクチャ)、IPX(Internet packet exchange:インターネットパケット交換)、アップル・トーク(Apple Talk)などを何ら限定されることなく含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを使用してデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。単なる例として、ネットワーク1210は、イーサネット(登録商標)、トークンリング(Token-Ring)などに基づくものといった、ローカルエリアネットワーク(local area network:LAN)であり得る。ネットワーク1210は、ワイドエリアネットワークおよびインターネットであり得る。それは、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、電気電子技術者協会(the Institute of Electrical and Electronics:IEEE)802.11プロトコルスイート、Bluetooth(登録商標)、および/または任意の他の無線プロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/もしくは、これらのおよび/または他のネットワークの任意の組合せを何ら限定されることなく含む、仮想ネットワークを含み得る。
【0053】
サーバ1212は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを例として含む)、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/または組合せで構成されてもよい。さまざまな実施形態では、サーバ1212は、前述の開示で説明された1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。たとえば、サーバ1212は、本開示の一実施形態に従った上述の処理を行なうためのサーバに対応していてもよい。
【0054】
サーバ1212は、上述のもののうちのいずれかを含むオペレーティングシステム、および商業的に入手可能な任意のサーバオペレーティングシステムを実行してもよい。サーバ1212はまた、さまざまな追加のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行してもよく、HTTP(hypertext transport protocol:ハイパーテキスト伝送プロトコル)サーバ、FTP(file transfer protocol:ファイル転送プロトコル)サーバ、CGI(common gateway interface:コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース(Sybase)、IBM(International Business Machines:インターナショナル・ビジネス・マシーンズ)などから商業的に入手可能なものを何ら限定されることなく含む。
【0055】
いくつかの実現化例では、サーバ1212は、クライアントコンピューティングデバイス1202、1204、1206、および1208のユーザから受信されたデータフィードおよび/またはイベント更新を分析して統合するための1つ以上のアプリケーションを含んでいてもよい。一例として、データフィードおよび/またはイベント更新は、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る、1つ以上の第三者情報源および連続データストリームから受信されたツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含んでいてもよいが、それらに限定されない。サーバ1212はまた、クライアントコンピューティングデバイス1202、1204、1206、および1208の1つ以上の表示デバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含んでいてもよい。
【0056】
分散型システム1200はまた、1つ以上のデータベース1214および1216を含んでいてもよい。データベース1214および1216は、さまざまな位置に存在していてもよい。例として、データベース1214および1216のうちの1つ以上は、サーバ1212に対してローカルな(および/または、サーバ1212内にある)非一時的記憶媒体上に存在していてもよい。それに代えて、データベース1214および1216は、サーバ1212からリモートであってもよく、ネットワークベースの接続または専用接続を介してサーバ1212と通信してもよい。一組の実施形態では、データベース1214および1216は、ストレージエリアネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ1212に帰する機能を行なうための任意の必要なファイルが適宜、サーバ1212上にローカルに格納されてもよく、および/またはリモートに格納されてもよい。一組の実施形態では、データベース1214および1216は、SQLフォーマットのコマンドに応答してデータを格納し、更新し、検索するように適合された、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでいてもよい。
【0057】
図13は、本開示の一実施形態に従った、実施形態システムの1つ以上のコンポーネントによって提供されるサービスをクラウドサービスとして提供し得るシステム環境1300の1つ以上のコンポーネントの簡略ブロック図である。図示された実施形態では、システム環境1300は、クラウドサービスを提供するクラウドインフラストラクチャシステム1302と対話するためにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス1304、1306、および1308を含む。これらのクライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム1302によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム1302と対話するためにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専用クライアントアプリケーション(たとえば、オラクル・フォームズ)、または何らかの他のアプリケーションといったクライアントアプリケーションを動作させるように構成されてもよい。
【0058】
図に示すクラウドインフラストラクチャシステム1302は、図示されたもの以外のコンポーネントを有していてもよい、ということが理解されるべきである。また、図に示す実施形態は、この発明の一実施形態を取入れ得るクラウドインフラストラクチャシステムの単なる一例である。いくつかの他の実施形態では、クラウドインフラストラクチャシステム1302は、図示されたものよりも多い、または少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組合せてもよく、もしくは、異なる構成または配置のコンポーネントを有していてもよい。
【0059】
クライアントコンピューティングデバイス1304、1306、および1308は、1202、1204、1206、および1208について上述したものと同様のデバイスであってもよい。
【0060】
例示的なシステム環境1300は3つのクライアントコンピューティングデバイスを有して示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスが、クラウドインフラストラクチャシステム1302と対話してもよい。
【0061】
ネットワーク1310は、クライアント1304、1306、および1308とクラウドインフラストラクチャシステム1302との間のデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク1210について上述したものを含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを使用してデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。
【0062】
クラウドインフラストラクチャシステム1302は、サーバ1212について上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを含んでいてもよい。
【0063】
ある実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなどといった、クラウドインフラストラクチャシステムのユーザにとってオンデマンドで利用可能にされる多数のサービスを含んでいてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすために動的にスケール変更され得る。クラウドインフラストラクチャシステムによって提供されるサービスの特定のインスタンス化は、ここに「サービスインスタンス」と呼ばれる。一般に、クラウドサービスプロバイダのシステムから、インターネットなどの通信ネットワークを介してユーザに利用可能とされる任意のサービスは、「クラウドサービス」と呼ばれる。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを作り上げるサーバおよびシステムは、顧客自身の構内サーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドでアプリケーションをオーダーし、使用してもよい。
【0064】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダーによってユーザに提供されるかまたは当該技術分野において他の態様で公知であるようなストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、もしくは他のサービスへの、保護されたコンピュータネットワークアクセスを含んでいてもよい。たとえば、サービスは、インターネットを通した、クラウド上のリモートストレージへの、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダーのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【0065】
ある実施形態では、クラウドインフラストラクチャシステム1302は、セルフサービスで、サブスクリプションベースで、弾力的にスケーラブルで、信頼でき、高可用性で、かつ安全な態様で顧客に配信される、アプリケーション、ミドルウェアおよびデータベースサービス提供物一式を含んでいてもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド(Oracle Public Cloud)である。
【0066】
さまざまな実施形態では、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステム1302によって提供されるサービスへの顧客のサブスクリプションを自動的にプロビジョニングし、管理し、追跡するように適合されてもよい。クラウドインフラストラクチャシステム1302は、異なるデプロイメントモデルを介してクラウドサービスを提供してもよい。たとえば、サービスは、クラウドインフラストラクチャシステム1302がクラウドサービスを販売する組織によって所有され(たとえば、オラクルによって所有され)、サービスが一般大衆または異なる産業企業にとって利用可能とされる、パブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム1302が単一の組織のためにのみ動作され、その組織内の1つ以上のエンティティのためのサービスを提供し得る、プライベートクラウドモデルの下で提供されてもよい。クラウドサービスはまた、クラウドインフラストラクチャシステム1302、およびクラウドインフラストラクチャシステム1302によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有される、コミュニティクラウドモデルの下で提供されてもよい。クラウドサービスはまた、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルの下で提供されてもよい。
【0067】
いくつかの実施形態では、クラウドインフラストラクチャシステム1302によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(SaaS)カテゴリー、プラットフォーム・アズ・ア・サービス(PaaS)カテゴリー、インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS)カテゴリー、または、ハイブリッドサービスを含むサービスの他のカテゴリーの下で提供される、1つ以上のサービスを含んでいてもよい。顧客は、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスを、サブスクリプションオーダーを介してオーダーしてもよい。クラウドインフラストラクチャシステム1302は次に、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を行なう。
【0068】
いくつかの実施形態では、クラウドインフラストラクチャシステム1302によって提供されるサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを、何ら限定されることなく含んでいてもよい。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリーに該当するクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合された開発およびデプロイメントプラットフォーム上にオンデマンドアプリケーション一式を構築し、配信するための能力を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理し、制御してもよい。SaaSプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用できる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得できる。さまざまな異なるSaaSサービスが提供されてもよい。例は、大型組織のための販売実績管理、企業統合、およびビジネス柔軟性についてのソリューションを提供するサービスを、何ら限定されることなく含む。
【0069】
いくつかの実施形態では、プラットフォームサービスは、PaaSプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリーに該当するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例は、(オラクルなどの)組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合できるようにするサービスと、プラットフォームによって提供される共有のサービスを活用する新しいアプリケーションを構築するための能力とを、何ら限定されることなく含んでいてもよい。PaaSプラットフォームは、PaaSサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理し、制御してもよい。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得できる。プラットフォームサービスの例は、オラクルJava(登録商標)クラウドサービス(Java Cloud Service:JCS)、オラクル・データベース・クラウド・サービス(Database Cloud Service:DBCS)などを、何ら限定されることなく含む。
【0070】
PaaSプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを採用するとともに、デプロイメントされたサービスを制御することもできる。いくつかの実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえば、オラクル・フュージョン・ミドルウェア(Oracle Fusion Middleware)サービス)、およびJavaクラウドサービスを含んでいてもよい。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、データベースクラウドの形をしたデータベース・アズ・ア・サービスを顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発してデプロイメントするためのプラットフォームを提供してもよく、Javaクラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイメントするためのプラットフォームを提供してもよい。
【0071】
クラウドインフラストラクチャシステムにおいて、さまざまな異なるインフラストラクチャサービスが、IaaSプラットフォームによって提供されてもよい。これらのインフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための、ストレージ、ネットワーク、ならびに他の基礎的コンピューティングリソースなどの基本コンピューティングリソースの管理および制御を容易にする。
【0072】
ある実施形態では、クラウドインフラストラクチャシステム1302はまた、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース1330を含んでいてもよい。一実施形態では、インフラストラクチャリソース1330は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのサーバ、ストレージ、およびネットワーキングリソースなどのハードウェアの予め統合され最適化された組合せを含んでいてもよい。
【0073】
いくつかの実施形態では、クラウドインフラストラクチャシステム1302におけるリソースは、複数のユーザによって共有され、要望ごとに動的に再配分されてもよい。加えて、リソースは、異なる時間帯におけるユーザに配分されてもよい。たとえば、クラウドインフラストラクチャシステム1302は、第1の時間帯における第1の一組のユーザが、特定数の時間、クラウドインフラストラクチャシステムのリソースを利用することを可能にし、次に、異なる時間帯に位置する別の一組のユーザへの同じリソースの再配分を可能にして、それによりリソースの利用を最大化してもよい。
【0074】
ある実施形態では、クラウドインフラストラクチャシステム1302の異なるコンポーネントまたはモジュールによって、および、クラウドインフラストラクチャシステム1302が提供するサービスによって共有される、多くの内部共有サービス1332が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウィルススキャニングおよびホワイトリストサービス、高可用性、バックアップおよび復旧サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを、何ら限定されることなく含んでいてもよい。
【0075】
ある実施形態では、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえば、SaaS、PaaS、およびIaaSサービス)の包括的管理を提供してもよい。一実施形態では、クラウド管理機能性は、クラウドインフラストラクチャシステム1302によって受信された顧客のサブスクリプションをプロビジョニングし、管理し、追跡するための能力などを含んでいてもよい。
【0076】
一実施形態では、図に示すように、クラウド管理機能性は、オーダー管理モジュール1320、オーダーオーケストレーションモジュール1322、オーダープロビジョニングモジュール1324、オーダー管理および監視モジュール1326、ならびにアイデンティティ管理モジュール1328などの1つ以上のモジュールによって提供されてもよい。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/または組合せであり得る、1つ以上のコンピュータおよび/またはサーバを含んでいてもよく、もしくはそれらを使用して提供されてもよい。
【0077】
例示的な動作1334では、クライアントコンピューティングデバイス1304、1306または1308などのクライアントデバイスを使用する顧客は、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスについてサブスクリプションオーダーを出すことにより、クラウドインフラストラクチャシステム1302と対話してもよい。ある実施形態では、顧客は、クラウドユーザインターフェイス(User Interface:UI)、クラウドUI1312、クラウドUI1314および/またはクラウドUI1316にアクセスし、これらのUIを介してサブスクリプションオーダーを出してもよい。顧客がオーダーを出したことに応答してクラウドインフラストラクチャシステム1302が受信したオーダー情報は、顧客と、顧客が加入するつもりである、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスとを識別する情報を含んでいてもよい。
【0078】
顧客によってオーダーが出された後で、オーダー情報が、クラウドUI1312、1314、および/または1316を介して受信される。
【0079】
動作1336で、オーダーがオーダーデータベース1318に格納される。オーダーデータベース1318は、クラウドインフラストラクチャシステム1302によって動作され、他のシステムエレメントとともに動作される、いくつかのデータベースのうちの1つであり得る。
【0080】
動作1338で、オーダー情報がオーダー管理モジュール1320へ発送されてもよい。場合によっては、オーダー管理モジュール1320は、オーダーを立証し、立証後にオーダーを予約するといった、オーダーに関連する請求および課金機能を行なうように構成されてもよい。
【0081】
動作1340で、オーダーに関する情報が、オーダーオーケストレーションモジュール1322へ通信されてもよい。オーダーオーケストレーションモジュール1322は、顧客によって出されたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレーションするために、オーダー情報を利用してもよい。場合によっては、オーダーオーケストレーションモジュール1322は、オーダープロビジョニングモジュール1324のサービスを使用して加入サービスをサポートするために、リソースのプロビジョニングをオーケストレーションしてもよい。
【0082】
ある実施形態では、オーダーオーケストレーションモジュール1322は、各オーダーに関連付けられたビジネスプロセスの管理を可能にして、オーダーがプロビジョニングへ進むべきかどうかを判断するためにビジネスロジックを適用する。動作1342で、新規サブスクリプションのオーダーを受信すると、オーダーオーケストレーションモジュール1322は、リソースを配分してサブスクリプションオーダーを遂行するために必要とされるそれらのリソースを構成することを求める要求を、オーダープロビジョニングモジュール1324へ送信する。オーダープロビジョニングモジュール1324は、顧客によってオーダーされたサービスのためのリソースの配分を可能にする。オーダープロビジョニングモジュール1324は、クラウドインフラストラクチャシステム1302によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間の抽象化のレベルを提供する。オーダーオーケストレーションモジュール1322はこのため、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか否か、または予めプロビジョニングされて要求時にのみ配分され/割当てられるか否かといった実装詳細から切り離されてもよい。
【0083】
動作1344で、サービスおよびリソースが一旦プロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム1302のオーダープロビジョニングモジュール1324によって、クライアントデバイス1304、1306、および/または1308上の顧客へ送信されてもよい。
【0084】
動作1346で、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール1326によって管理され、追跡されてもよい。場合によっては、オーダー管理および監視モジュール1326は、使用されるストレージの量、転送されるデータの量、ユーザの数、システムアップタイムおよびシステムダウンタイムの量といった、サブスクリプションオーダーにおけるサービスについての使用率統計を収集するように構成されてもよい。
【0085】
ある実施形態では、クラウドインフラストラクチャシステム1302は、アイデンティティ管理モジュール1328を含んでいてもよい。アイデンティティ管理モジュール1328は、クラウドインフラストラクチャシステム1302においてアクセス管理および認証サービスなどのアイデンティティサービスを提供するように構成されてもよい。いくつかの実施形態では、アイデンティティ管理モジュール1328は、クラウドインフラストラクチャシステム1302によって提供されるサービスを利用したい顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報と、さまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してそれらの顧客がどのアクションを行なうことが認可されているかを記述する情報とを含み得る。アイデンティティ管理モジュール1328はまた、各顧客についての記述的情報と、その記述的情報が誰によってどのようにアクセスされ、修正され得るかについての記述的情報との管理を含んでいてもよい。
【0086】
図14は、本発明のさまざまな実施形態が実現され得る例示的なコンピュータシステム1400を示す。システム1400は、上述のコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示すように、コンピュータシステム1400は、バスサブシステム1402を介して多くの周辺サブシステムと通信する処理部1404を含む。これらの周辺サブシステムは、処理加速部1406と、I/Oサブシステム1408と、記憶サブシステム1418と、通信サブシステム1424とを含んでいてもよい。記憶サブシステム1418は、有形のコンピュータ読取可能記憶媒体1422と、システムメモリ1410とを含む。
【0087】
バスサブシステム1402は、コンピュータシステム1400のさまざまなコンポーネントおよびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム1402は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム1402は、さまざまなバスアーキテクチャのうちのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、強化ISA(EISA)バス、ビデオエレクトロニクス標準組織(Video Electronics Standards Association:VESA)ローカルバス、および周辺コンポーネント相互接続(Peripheral Component Interconnect:PCI)バスを含んでいてもよく、それは、IEEE P1386.1規格で製造されるメザニンバスとして実現可能である。
【0088】
1つ以上の集積回路(たとえば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理部1404は、コンピュータシステム1400の動作を制御する。処理部1404には、1つ以上のプロセッサが含まれていてもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでいてもよい。ある実施形態では、処理部1404は、各処理部に含まれるシングルまたはマルチコアプロセッサを有する、1つ以上の独立した処理部1432および/または1434として実現されてもよい。他の実施形態では、処理部1404はまた、2つのデュアルコアプロセッサをシングルチップへと集積することによって形成されるクアッドコア処理部として実現されてもよい。
【0089】
さまざまな実施形態では、処理部1404は、プログラムコードに応答してさまざまなプログラムを実行でき、同時に実行される複数のプログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードのうちのいくつかまたはすべては、プロセッサ1404に、および/または記憶サブシステム1418にあり得る。好適なプログラミングを通して、プロセッサ1404は、上述のさまざまな機能性を提供できる。コンピュータシステム1400は加えて、処理加速部1406を含んでいてもよく、それは、デジタル信号プロセッサ(digital signal processor:DSP)、専用プロセッサなどを含み得る。
【0090】
I/Oサブシステム1408は、ユーザインターフェイス入力デバイスと、ユーザインターフェイス出力デバイスとを含んでいてもよい。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付き音声入力デバイス、マイクロホン、および他のタイプの入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスは、たとえば、ジェスチャーおよび口頭コマンドを使用する自然のユーザインターフェイスを通して、マイクロソフトXbox(登録商標)360ゲームコントローラなどの入力デバイスをユーザが制御し、それと対話することを可能にする、マイクロソフトKinect(登録商標)運動センサなどの運動感知および/またはジェスチャー認識デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、ユーザから目の活動(たとえば、写真撮影中および/またはメニュー選択中の「まばたき」)を検出し、アイジェスチャーを入力デバイス(たとえば、グーグル・グラス(登録商標))への入力として変換する、グーグル・グラス(登録商標)まばたき検出器などのアイジェスチャー認識デバイスを含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と対話できるようにする音声認識感知デバイスを含んでいてもよい。
【0091】
ユーザインターフェイス入力デバイスはまた、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルビデオカメラ、携帯型メディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡デバイスなどの音声/視覚デバイスを、何ら限定されることなく含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン放出断層撮影装置、医療用超音波検査装置などの医療用撮像入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでいてもよい。
【0092】
ユーザインターフェイス出力デバイスは、表示サブシステム、表示灯、または、音声出力デバイスなどの非視覚的ディスプレイを含んでいてもよい。表示サブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という用語の使用は、コンピュータシステム1400からユーザまたは他のコンピュータへ情報を出力するためのあらゆる可能なタイプのデバイスおよびメカニズムを含むよう意図されている。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムといった、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを、何ら限定されることなく含んでいてもよい。
【0093】
コンピュータシステム1400は、現在システムメモリ1410内に位置するように図示されたソフトウェア要素を含む記憶サブシステム1418を含んでいてもよい。システムメモリ1410は、処理部1404上でロード可能および実行可能なプログラム命令、ならびに、これらのプログラムの実行中に生成されたデータを格納してもよい。
【0094】
コンピュータシステム1400の構成およびタイプに依存して、システムメモリ1410は、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)および/または不揮発性(読出専用メモリ(read-only memory:ROM)、フラッシュメモリなど)であってもよい。RAMは典型的には、処理部1404に直ちにアクセス可能である、および/または、処理部1404によって現在動作され実行されている、データおよび/またはプログラムモジュールを含む。いくつかの実現化例では、システムメモリ1410は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)といった、複数の異なるタイプのメモリを含んでいてもよい。いくつかの実現化例では、起動中などにコンピュータシステム1400内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納されてもよい。限定のためではなく例として、システムメモリ1410はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1412と、プログラムデータ1414と、オペレーティングシステム1416とを示す。例として、オペレーティングシステム1416は、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックスオペレーティングシステムのさまざまなバージョン、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX様オペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、グーグル・クローム(登録商標)OSなどを何ら限定されることなく含む)、および/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10OS、パーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含んでいてもよい。
【0095】
記憶サブシステム1418はまた、いくつかの実施形態の機能性を提供するデータ構造および基本プログラミングを格納するための有形のコンピュータ読取可能記憶媒体を提供してもよい。プロセッサによって実行されると上述の機能性を提供するソフトウェア(プログラム、コードモジュール、命令)が、記憶サブシステム1418に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理部1404によって実行されてもよい。記憶サブシステム1418はまた、本発明に従って使用されるデータを格納するためのリポジトリを提供してもよい。
【0096】
記憶サブシステム1418はまた、コンピュータ読取可能記憶媒体1422にさらに接続され得るコンピュータ読取可能記憶媒体リーダ1420を含んでいてもよい。システムメモリ1410とともに、およびオプションでシステムメモリ1410と組合わされて、コンピュータ読取可能記憶媒体1422は、リモート、ローカル、固定および/またはリムーバブルの記憶装置に加えて、コンピュータ読取可能情報を一時的におよび/またはより永続的に含み、格納し、伝送し、検索するための記憶媒体を包括的に表わしてもよい。
【0097】
コードまたはコードの一部を含むコンピュータ読取可能記憶媒体1422はまた、情報の格納および/または伝送のための任意の方法または技術において実現された揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体などといった記憶媒体および通信媒体を含む、当該技術分野において公知の、または使用されている任意の適切な媒体を含み得る。これは、RAM、ROM、電子的消去可能プログラマブルROM(electronically erasable programmable ROM:EEPROM)、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(digital versatile disk:DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、もしくは他の有形のコンピュータ読取可能媒体といった、有形のコンピュータ読取可能記憶媒体を含み得る。これはまた、所望の情報を伝送するために使用可能であり、コンピューティングシステム1400によってアクセス可能であるデータ信号、データ伝送、または任意の他の媒体といった、非有形のコンピュータ読取可能媒体を含み得る。
【0098】
例として、コンピュータ読取可能記憶媒体1422は、非リムーバブルの不揮発性磁気媒体との間で読出および書込を行なうハードディスクドライブ、リムーバブルの不揮発性磁気媒体との間で読出および書込を行なう磁気ディスクドライブ、ならびに、CD ROM、DVD、Blu−Ray(登録商標)ディスク、または他の光学媒体といった、リムーバブルの不揮発性光ディスクとの間で読出および書込を行なう光ディスクドライブを含んでいてもよい。コンピュータ読取可能記憶媒体1422は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含んでいてもよいが、それらに限定されない。コンピュータ読取可能記憶媒体1422はまた、フラッシュメモリベースのソリッドステートドライブ(solid-state drive:SSD)、企業フラッシュドライブ、ソリッドステートROMといった、不揮発性メモリに基づいたSSD、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSDといった、揮発性メモリに基づいたSSD、および、DRAMベースのSSDとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含んでいてもよい。ディスクドライブおよびそれらの関連付けられたコンピュータ読取可能媒体は、コンピュータシステム1400のためのコンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性格納を提供してもよい。
【0099】
通信サブシステム1424は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム1424は、コンピュータシステム1400とは別のシステムからデータを受信し、別のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム1424は、コンピュータシステム1400がインターネットを介して1つ以上のデバイスに接続できるようにしてもよい。いくつかの実施形態では、通信サブシステム1424は、(たとえば、3G、4G、またはEDGE(enhanced data rates for global evolution:エンハンスト・データレート・フォー・グローバル・エボリューション)、WiFi(IEEE802.11ファミリー規格)、または他のモバイル通信技術、またはそれらの任意の組合せといった携帯電話技術、高度なデータネットワーク技術を使用した)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、全地球測位システム(global positioning system:GPS)受信機コンポーネント、および/または他のコンポーネントを含んでいてもよい。いくつかの実施形態では、通信サブシステム1424は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえば、イーサネット)を提供できる。
【0100】
いくつかの実施形態では、通信サブシステム1424はまた、構造化および/または非構造化データフィード1426、イベントストリーム1428、イベント更新1430などの形をした入力通信を、コンピュータシステム1400を使用する1人以上のユーザのために受信してもよい。
【0101】
例として、通信サブシステム1424は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリー(Rich Site Summary:RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイム更新といった、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード1426をリアルタイムで受信するように構成されてもよい。
【0102】
加えて、通信サブシステム1424はまた、リアルタイムイベントのイベントストリーム1428および/またはイベント更新1430を含み得る、明確な終わりがなく本質的に連続的または無限であり得る連続データストリームの形をしたデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などを含んでいてもよい。
【0103】
通信サブシステム1424はまた、構造化および/または非構造化データフィード1426、イベントストリーム1428、イベント更新1430などを、コンピュータシステム1400に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0104】
コンピュータシステム1400は、ハンドヘルド携帯デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグル・グラス(登録商標)頭部装着型ディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの1つであり得る。
【0105】
コンピュータおよびネットワークの絶えず変化する性質により、図に示されるコンピュータシステム1400の説明は、単に特定の一例として意図される。図に示されるシステムよりも多い、または少ないコンポーネントを有する多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用されてもよく、および/または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組合せで実現されてもよい。さらに、ネットワーク入力/出力デバイスといった他のコンピューティングデバイスへの接続が採用されてもよい。ここに提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実現するための他のやり方および/または方法を理解するであろう。
【0106】
前述の記載では、説明の目的のため、多くの特定の詳細が、本発明のさまざまな実施形態の完全な理解を提供するために述べられた。しかしながら、これらの特定の詳細のうちのいくつかがなくても本発明の実施形態は実践され得る、ということは、当業者には明らかであろう。他の例では、周知の構造およびデバイスは、ブロック図の形で示される。
【0107】
前述の記載は例示的な実施形態のみを提供しており、この開示の範囲、利用可能性、または構成を限定するよう意図されてはいない。むしろ、例示的な実施形態の前述の記載は、例示的な実施形態を実現するための実施可能な説明を当業者に提供するであろう。添付された請求項で述べられるようなこの発明の精神および範囲から逸脱することなく、要素の機能および配置においてさまざまな変更が行なわれてもよい、ということが理解されるべきである。
【0108】
前述の記載では、実施形態の完全な理解を提供するために、特定の詳細が与えられる。しかしながら、これらの特定の詳細がなくても実施形態は実践され得る、ということは、当業者には理解されるであろう。たとえば、実施形態を必要以上に詳細に記して不明瞭にすることがないように、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、ブロック図の形のコンポーネントとして示されたかもしれない。他の例では、実施形態を不明瞭にしないように、周知の回路、プロセス、アルゴリズム、構造、および手法は、不要な詳細なしで示されたかもしれない。
【0109】
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されたかもしれないということに留意されたい。フローチャートは動作を順次プロセスとして説明したかもしれないが、動作の多くは並行してまたは同時に行なうことが可能である。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了すると終了するが、図に含まれない追加のステップを有していてもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応していてもよい。プロセスがある機能に対応している場合、その終了は、その機能が呼出し元の機能または主機能に戻ることに対応可能である。
【0110】
「コンピュータ読取可能媒体」という用語は、命令および/またはデータを格納し、含み、または担持することができる、携帯型または固定式記憶装置、光学記憶装置、無線チャネル、ならびにさまざまな他の媒体を含むものの、それらに限定されない。コードセグメントまたはマシン実行可能命令が、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、もしくは、命令、データ構造またはプログラム文の任意の組合せを表わしてもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、および/または受信することによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の好適な手段を介して渡され、発送され、または伝送されてもよい。
【0111】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現される場合、必要なタスクを行なうためのプログラムコードまたはコードセグメントが、マシン読取可能媒体に格納されてもよい。プロセッサが、必要なタスクを行なってもよい。
【0112】
前述の明細書では、この発明の局面がその特定の実施形態に関して説明されているが、当業者であれば、この発明がそれらに限定されないことを認識するであろう。上述の発明のさまざまな特徴および局面は、個々にまたはともに使用されてもよい。また、実施形態は、明細書のより広範な精神および範囲から逸脱することなく、ここに説明されたものを超えるあらゆる数の環境および用途において利用され得る。したがって、明細書および図面は、限定的ではなく例示的であるとみなされるべきである。
【0113】
加えて、例示のために、方法は特定の順序で説明された。代替的な実施形態では、方法は、説明されたものとは異なる順序で行なわれてもよい、ということが理解されるべきである。上述の方法はハードウェアコンポーネントによって行なわれてもよく、もしくは、汎用または専用プロセッサ、もしくは命令でプログラミングされた論理回路といったマシンに方法を行なわせるために使用され得るマシン実行可能命令のシーケンスで具現化されてもよい、ということも理解されるべきである。これらのマシン実行可能命令は、1つ以上のマシン読取可能媒体、たとえば、CD−ROMまたは他のタイプの光ディスク、フロッピー(登録商標)ディスケット、ROM、RAM、EPROM、EEPROM、磁気カードまたは光カード、フラッシュメモリ、もしくは、電子命令を格納するのに好適である他のタイプのマシン読取可能媒体上に格納されてもよい。それに代えて、方法は、ハードウェアとソフトウェアとの組合せによって行なわれてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14