JP5833725B2 - 関係データ管理のための制御サービス - Google Patents

関係データ管理のための制御サービス Download PDF

Info

Publication number
JP5833725B2
JP5833725B2 JP2014204242A JP2014204242A JP5833725B2 JP 5833725 B2 JP5833725 B2 JP 5833725B2 JP 2014204242 A JP2014204242 A JP 2014204242A JP 2014204242 A JP2014204242 A JP 2014204242A JP 5833725 B2 JP5833725 B2 JP 5833725B2
Authority
JP
Japan
Prior art keywords
data
environment
workflow
task
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014204242A
Other languages
English (en)
Other versions
JP2015026390A (ja
Inventor
シヴァスブラマニアン スワミナサン
シヴァスブラマニアン スワミナサン
エー.エム.マクアリスター グラント
エー.エム.マクアリスター グラント
デイビッド フランクリン ポール
デイビッド フランクリン ポール
スダハカー シェス ラジェッシュ
スダハカー シェス ラジェッシュ
ホースリー ジェイムズ
ホースリー ジェイムズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2015026390A publication Critical patent/JP2015026390A/ja
Application granted granted Critical
Publication of JP5833725B2 publication Critical patent/JP5833725B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Description

本特許文書の開示の一部は、著作権保護の対象となる資料を含む。その著作権者は、いかなる者が、特許文書または特許開示を、それが特許事務所および商標事務所の特許ファイルまたは記録に現れるままに、複製することに対しても異議はないが、その他の場合、全ての著作権を留保する。
増加する数のアプリケーションおよびサービスが、インターネットなどのネットワークを通じて利用可能になるにつれて、増加する数のコンテンツ、アプリケーション、および/またはサービスプロバイダは、クラウドコンピューティングなどの技術を考慮するようになってきている。クラウドコンピューティングは、一般に、ウェブサービスなどのサービスを通して電子資源に対するアクセスを提供する手法であり、これらのサービスをサポートするために使用されるハードウェアおよび/またはソフトウェアは、任意の所与の時間にサービスの必要性を満たすために動的に拡張可能であるである。ユーザまたは顧客は、通常、クラウドを通した資源に対するアクセスのために賃貸する、リースする、またはその他の方法で支払うことになり、したがって、これらの資源に対するアクセスを提供するハードウェアおよび/またはソフトウェアを購入し維持する必要はない。
顧客がクラウド内のアプリケーションまたはサービスについてのコンピュータ能力を経時的に調整することを可能にする種々のサービスが開発されており、ウェブスケールコンピューティングを開発者にとってより容易にしている。ある場合には、ウェブサービスインタフェースが提供され、コンピューティング要件が変化するにつれて、能力を迅速にスケールアップまたスケールダウンするために、顧客が、新しいサーバインスタンスを取得するかまたはブートすることなどのコンピューティング能力を管理することを可能にする。
能力を調整することは、ネットワークにわたってまたは遠隔ロケーションから利用可能なアプリケーションについて有利でありうる。しばしば、これらのアプリケーションは、各アプリケーションによって使用される、少なくとも1つのデータストアまたは他のこうしたリポジトリホスティングデータに依存するか、または、それを利用することになる。アプリケーションまたはサービスについての処理能力は、これらのウェブサービスインタフェースを通して動的に調整されうるが、これらのアプリケーションが依存するデータリポジトリは、同じように調整することができない。通常、データ記憶部をプロビジョニングすることおよびスケーリングすることなどのタスクを実行することは、単調で時間のかかる手作業の手順であり、顧客は、構成情報および要件を、データベース管理者(database administrator)(DBA)または同様なエキスパートユーザに提供して、構成が有効であるかどうかをデータベース管理者が判定できるようにしなければならない。その後、DBAは、通常、データリポジトリを有効にし、調整し、最適化しなければならない。顧客が、データ記憶容量を動的に調整するか、または、データリポジトリの他のこうした態様を管理するための容易な方法は存在しない。
本開示による種々の実施形態を、図面を参照して説明する。
種々の実施形態が実装されうる環境を示す図である。 種々の実施形態に従って使用されうる制御層およびデータ層の例示的な分離を示す図である。 一実施形態による、データ層で実施される動作を、制御層を通して要求する例示的なプロセスを示す図である。 一実施形態による、データ層における動作を監視し、自動的に実行する例示的なプロセスを示す図である。 一実施形態による、データ層内のホストと制御層内のワークフローサービスとの間の通信フローを示す図である。 一実施形態による、制御層のユーザインタフェースに送信される、データ層における動作に対する要求を生成するディスプレイの例を示す図である。
本開示の種々の実施形態によるシステムおよび方法は、電子環境内のデータ記憶の態様を管理する従来の手法において経験される上述のまた他の欠点の1つまたは複数を克服する可能性がある。特に、種々の実施形態は、データ環境またはデータ層の態様を制御するために使用されうる、別個の制御環境または制御層を提供する。制御層の機能は、1組のウェブサービスとして提供されることができ、制御層が仮想データベース管理者(DBA)として働くことを可能にする。ユーザまたは顧客は、たとえば外部から見えるアプリケーションプログラミングインタフェース(API)を通して制御層に要求を送信することができ、要求は、データストアまたはデータ記憶インスタンスを作成するか、削除するか、修正するか、拡張するか、またはその他の方法で修正する動作などの、データ層で実行される動作を確定するために解析されうる。制御層の監視要素もまた提供され得、データ層における構成要素の健全度またはステータスを監視し、また、データ層でとられる動作を自動的に確定しうる。状態情報は、データストアまたはデータ層の他のこうした構成要素に直接アクセスする必要なしで、制御層がタスクの実行を管理できるように、動作を実行するために必要な各タスクについて、データ層の構成要素に渡されうる。一旦プロビジョニングされると、ユーザは、データ層内のデータインスタンス(複数可)にネイティブアクセスすることができ、特定のインスタンスについてのDNS(ドメインネームシステム(domain name system))アドレスまたは他のロケーション情報に対して既存のアプリケーション(MySQLアプリケーションなど)を単に向けるだけでよい。ユーザが、MySQL、Oracle、または他のこうしたデータベース技術上で構築されるアプリケーションを使用し続けることができるため、クエリモデルまたは他のこうした機能の制限または修正は全く存在しない。
図1は、種々の実施形態による態様を実現する環境100の例を示す。理解されるように、ウェブベース環境が説明のために使用されるが、異なる環境が、種々の実施形態を実現するために、必要に応じて使用されてもよい。示す環境100は、試験または開発部分(またはサイド)と生産部分の両方を含む。生産部分は、電子クライアントデバイス102を含み、電子クライアントデバイス102は、適切なネットワーク104を通じて、要求、メッセージ、または情報を送信し受信し、デバイスのユーザに戻るように情報を伝達するように動作する任意の適切なデバイスを含みうる。こうしたクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、手持ち式メッセージングデバイス、ラップトップコンピュータ、セットトップボックス、携帯情報端末、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のこうしたネットワーク、あるいはその組合せを含む任意の適切なネットワークを含みうる。こうしたシステムのために使用される構成要素は、選択されるネットワークおよび/または環境のタイプに少なくとも部分的に依存しうる。こうしたネットワークを介した通信用のプロトコルおよび構成要素は、よく知られており、本明細書で詳細に論じない。ネットワークを通じた通信は、有線接続または無線接続およびその組合せによって使用可能にされうる。この例では、要求を受信し、受信に応答してコンテンツを供給するウェブサーバ106を環境が含むため、ネットワークはインターネットを含むが、他のネットワークの場合、同様な目的を果たす代替のデバイスが、当業者に明らかであるように使用されうる。
例証的な環境は、少なくとも1つのアプリケーションサーバ108およびデータストア110を含む。適切なデータストアからデータを取得することなどのタスクを実行するために相互作用しうる、鎖状に接続されるかまたはその他の方法で構成されてもよい、いくつかのアプリケーションサーバ、層、あるいは、他の要素、プロセス、または構成要素が存在しうることが理解されるべきである。本明細書で使用されるように、「データストア(data store)」用語は、データを記憶し、データにアクセスし、データを取出すことができる任意のデバイスまたはデバイスの組合せを指し、任意の標準環境、分散環境、またはクラスター化環境における、任意の組合せおよび任意の数のデータサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体を含みうる。アプリケーションサーバは、クライアントデバイス用の1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合し、アプリケーション用の大多数のデータアクセスおよびビジネスロジックを処理するための任意の適切なハードウェアおよびソフトウェアを含みうる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送される、テキスト、グラフィクス、オーディオ、および/またはビデオなどのコンテンツを生成することができ、コンテンツは、この例では、HTML、XML、または別の適切な構造化言語の形態でウェブサーバによってユーザに供給されうる。全ての要求および応答の処理ならびにクライアントデバイス102とアプリケーションサーバ108との間のコンテンツの送達は、ウェブサーバによって処理されうる。本明細書で論じる構造化コードが、本明細書の他の所で論じるように任意の適切なデバイスまたはホストマシン上で実行されうるため、ウェブサーバおよびアプリケーションサーバは、必要とされず、単に例となる構成要素であることが理解されるべきである。さらに、環境は、試験自動化フレームワークが、ユーザまたはアプリケーションが加入することができるサービスとして提供されうる方法でアーキテクチャを構築されうる。試験自動化フレームワークは、本明細書で論じる種々の試験パターンのうちの任意のパターンの実装形態として提供されうるが、本明細書で論じるかまたは提案されるように、種々の他の実装形態も使用されうる。
環境はまた、開発および/または試験サイドを含み、それは開発者、データ管理者、または試験者などのユーザがシステムにアクセスすることを可能にするユーザデバイス118を含む。ユーザデバイス118は、クライアントデバイス102に関して上述したような、任意の適切なデバイスまたはマシンでありうる。環境はまた、開発サーバ120を含み、開発サーバ120は、アプリケーションサーバ108と同様に機能するが、通常、コードが、たとえば、生産サイドで展開され実行され、外部ユーザにアクセス可能になる前に、開発および試験中にコードを実行(run)する。一部の実施形態では、アプリケーションサーバは、開発サーバとして機能することができ、別個の生産および試験記憶部は使用されなくてもよい。
データストア110は、いくつかの別個のデータテーブル、データベース、または他のデータ記憶メカニズム、および特定の態様に関連するデータを記憶する媒体を含みうる。たとえば、示すデータストアは、生産サイド用のコンテンツをサーブするために使用されうる、生産データ112およびユーザ情報116を記憶するメカニズムを含む。データストアは、試験データ114を記憶するメカニズムも含むことが示されており、試験データ114は試験サイド用にユーザ情報と共に使用されうる。ページ画像情報およびアクセス権情報などについて、データストアに記憶される必要がある可能性がある多くの他の態様が存在し得、必要に応じて先に挙げたメカニズムのうちの任意のメカニズムに、または、データストア110内のさらなるメカニズムに記憶されうることが理解されるべきである。データストア110は、アプリケーションサーバ108または開発サーバ120から命令を受信し、受信に応答してデータを取得するか、更新するか、またはその他の方法で処理するように、データストア110に関連するロジックを通して動作する。一例では、ユーザは、あるタイプのアイテムについて検索要求を送信しうる。この場合、データストアは、ユーザのアイデンティティを検証するためにユーザ情報にアクセスし得、また、そのタイプのアイテムに関する情報を取得するために、カタログ詳細情報にアクセスすることができる。情報は、その後、ユーザデバイス102上でブラウザを介してユーザが見ることができる、ウェブページ上にリストされる結果などの形態で、ユーザに返されうる。対象となる特定のアイテムについての情報は、ブラウザの専用ページまたはウィンドウで見ることができる。
各サーバは、通常、そのサーバの汎用管理およびオペレーション用の実行可能プログラム命令を提供するオペレーションシステムを含むことになり、また、通常、サーバのプロセッサによって実行されると、その意図される機能をサーバが実施することを可能にする命令を記憶するコンピュータ可読媒体を含むことになる。サーバのオペレーションシステムおよび汎用機能の適した実装態様は、知られているかまたは市販されており、特に本明細書の開示に照らして、当業者によって容易に実現される。
一実施形態の環境は、1つまたは複数のコンピュータネットワークあるいは直接接続を使用して、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する分散コンピューティング環境である。しかし、こうしたシステムは、図1に示すものに比べて、より少ないかまたはより多くの数の構成要素を有するシステムにおいて、同様にうまく動作しうることが当業者によって理解されるであろう。そのため、図1のシステム100の説明は、開示の範囲に対して制限的であるのではなく、例証的な性質であるものとして考えられるべきである。
複数のホストが、コンテンツを提供すること、ユーザを認証すること、支払いトランザクションを実施することなどのタスクを実施するか、または、多数の他のこうしたタスクの任意のタスクを実施するために使用されてもよいeマーケットプレイスなどの図1に示すような環境は、プロバイダにとって有用でありうる。これらのホストのいくつかは、同じ機能を提供するように構成されてもよく、一方、他のサーバは、少なくともいくつかの異なる機能を実施するように構成されてもよい。電子環境は、こうした場合、以下で詳細に論じる図2の構成200に示すような、さらなる構成要素および/または他の配置構成を含む可能性がある。
一実施形態によるシステムおよび方法は、関係データベースサービス(「RDS」)を提供し、RDSは、クラウド内で関係データセットを記憶すること、処理すること、および質問することなどのタスクをユーザが実施できるように、関係データベースを、開発者、顧客、または他の認可されたユーザが容易にかつ費用効果的に取得し構成することを可能にする。この例は、インターネット、ウェブサービス、およびインターネットベースの技術に関して論じられるが、種々の実施形態の態様が、電子環境においてネットワークを通じて利用可能なまたは提供される任意の適切なサービスと共に使用されうることが理解されるべきである。さらに、サービスは、本明細書で「関係データベースサービス(relational database service)」と呼ばれるが、こうしたサービスは、電子環境において任意の適切なタイプのデータリポジトリまたはデータ記憶部と共に使用されうることが理解されるべきである。RDSは、この例では、展開、アップグレード、パッチ管理、バックアップ、複製、フェールオーバー、容量管理、スケーリング、およびデータ管理の他のこうした態様の管理の複雑さを心配することなく、ユーザまたは顧客が関係データセットを容易に管理することを可能にする少なくとも1つのウェブサービスを含む。そのため、開発者は、データベースのインフラストラクチャを管理する複雑さを心配することなく、精緻なクラウドアプリケーションを自由に開発する。
RDSは、一実施形態では、データ記憶部の態様を管理するのに有用な構成要素(たとえば、ハードウェアまたはソフトウェア)を含む別個の「制御層(control plane)」を提供する。一実施形態では、1組のデータ管理アプリケーションプログラミングインタフェース(API)または他のこうしたインタフェースが提供され、データ記憶部に関連するあるタスクを実施するために、ユーザまたは顧客がRDSへのコールを行うことを可能にする。ユーザは、データリポジトリと通信するために、依然として直接インタフェースまたはAPIを使用しうるが、データ記憶部を管理するかまたは同様なタスクを実施するために必要なときだけ、制御層のRDS固有APIを使用することができる。
図2は、一実施形態に従って使用されうるRDSの実現形態200の例を示す。この例では、エンドユーザ用のコンピューティングデバイス202が、データ層210のデータリポジトリをプロビジョニングすることなどのタスクを実施するために、ネットワーク206を通して制御層208へのコールを行うことができることが示される。ユーザまたはアプリケーション204は、データ層210のインタフェースを通して、プロビジョニングされるリポジトリに直接アクセスしうる。1つのエンドユーザコンピューティングデバイスおよびアプリケーションが、説明のために使用されるが、任意の適切なユーザ、アプリケーション、サービス、デバイス、構成要素、または資源が、種々の実施形態において必要に応じて、制御層および/またはデータ層のインタフェース(複数可)にアクセスしうることが理解されるべきである。さらに、構成要素は、制御およびデータ「層(plane)」に分離されるが、これは、各機能を提供するために使用される少なくともいくつかの資源(たとえば、ハードウェアおよび/またはソフトウェア)の実際のまたは仮想の分離を指しうることが理解されるべきである。
制御層208は、この例では、本質的に、プロビジョニング、スケーリング、複製などのような制御および管理動作を処理するハードウェアおよびソフトウェアの仮想層である。制御層は、この実施形態では、ウェブサービス層212または階層を含み、それは、たとえばコンピュータ実行可能ソフトウェア、アプリケーションサーバ、または他のこうした構成要素と共に少なくとも1つのウェブサーバを含みうる。ウェブサービス層はまた、ネットワーク206からウェブサービスコールまたは要求を受信する1組のAPI232(または他のこうしたインタフェース)を含むことができ、ウェブサービス層は、ウェブサービスコールまたは要求を構文解析するかまたはその他の方法で解析して、そのコールにに対して動作するかまたはそのコールを処理するために必要とされるステップまたは動作を確定する。たとえば、データリポジトリを作成する要求を含むウェブサービスが受信される可能性がある。この例では、ウェブサービス層は、要求を構文解析して、作成されるデータリポジトリのタイプ、要求される記憶ボリューム、(もしあれば)要求されるハードウェアのタイプ、または他のこうした態様を確定しうる。要求についての情報は、後続の処理のために、管理(「Admin」)データストア222、あるいは、他の適切な記憶ロケーションまたはジョブキューに書込まれうる。
ウェブサービス層は、一実施形態では、種々の制御層APIを提供し、API仕様に基づいて適切な応答を返しうるスケーラブルな組の顧客向きサーバを含む。ウェブサービス層はまた、一実施形態では顧客APIを処理する、状態なし複製サーバからなる少なくとも1つのAPIサービス層を含みうる。ウェブサービス層は、クレデンシャルに基づいてユーザを認証すること、ユーザを認可すること、APIサーバに対する顧客要求を抑えること、ユーザ入力を確認すること、ならびに、要求および応答をマーシャリングするまたはアンマーシャリングすることなどのウェブサービスフロントエンド機能について責任を担いうる。API層はまた、APIコールに応答して、管理データストアから/にデータベース構成データを読み出し/書込むことについての責任を担いうる。多くの実施形態では、ウェブサービス層は、唯一の外部から見える要素、または、制御サービスの顧客に見えかつ制御サービスの顧客によってアクセス可能である唯一の構成要素であることになる。ウェブサービス層のサーバは、当技術分野で知られているように、状態なしでありかつ水平にスケーリングされうる。APIサーバならびに永続的データストアは、たとえば、サーバが単一データセンター障害に対して強くなるように、ある領域内で複数のデータセンターにわたって分散されうる。
制御層は、この実施形態では、本明細書で「スイーパ(sweeper)」要素214と呼ばれるものを含む。スイーパ要素は、制御層の種々の構成要素をポーリングするか、または、未完了要求に応答して実行される任意のタスクをその他の方法で確定するように動作する任意の適切な構成要素でありうる。この例では、ウェブサービス層は、Adminデータストア222または同様なジョブキュー内に「データベース生成(create database)」要求のための命令または情報を発行してもよく、スイーパは、未完了ジョブがあるか、Adminデータストアを定期的にチェックすることができる。当業者に明らかになるように、ウェブサービス層が、ジョブが存在するという通知をスイーパに送出することなどの、種々の他の手法が使用されうる。スイーパ要素は、「データベース生成」要求をピックアップし、要求についての情報を使用して、その要求について少なくとも1つのワークフローをインスタンス化するように動作するワークフロー要素216に、要求、コール、または他のこうしたコマンドを送出しうる。ワークフローは、一実施形態では、本明細書の他の所で論じるワークフローサービスを使用して、生成され維持される。ワークフローは、一般に、特定のジョブを実施するために実行されるべきタスクのシーケンスである。ワークフローは、実際の仕事ではなく、情報の流れおよび仕事の実行を制御する仕事の抽象化である。ワークフローはまた、実行中の任意の時間にプロセスの状態を管理し、返すことができる状態マシンと考えられうる。要素(または構成要素のシステム)は、一実施形態では、リポジトリ作成、修正、および削除、復旧およびバックアップ、セキュリティグループ作成、削除、および修正、ユーザクレデンシャル管理、ならびに、キー回転およびクレデンシャル管理などのタスクについて、ワークフローのホスティングおよび実行を、管理し、かつ/または実施するように動作する。こうしたワークフローは、本明細書の他の所で論じるように、ワークフローサービスの上に実装されうる。ワークフロー要素はまた、基礎となるワークフローサービスが必ずしも変化しないため、MySQLなどの異なるデータベースエンジンのために使用されるワークフローステップ間の差を管理しうる。
この例では、ワークフローは、データベースを作成し、元の要求から抽出される情報を適用するワークフローテンプレートを使用してインスタンス化されうる。たとえば、要求が、Oracle(登録商標)関係データベース管理システム(RDBMS)または他のこうしたインスタンスではなく、MySQL(登録商標)RDBMSインスタンスのためのものである場合、MySQLインスタンスに向けられる特定のタスクが、ワークフローに付加されることになる。ワークフロー要素はまた、要求される記憶量、任意の特定のハードウェア要件に関連する特定のタスク、または、他のこうしたタスクを選択しうる。これらのタスクは、全体のジョブについて有用な実行順序でワークフローに付加されうる。一部のタスクは、並列に実行されうるが、他のタスクは、最初に完了する前のタスクに依存する。ワークフロー要素またはサービスは、ワークフロー内にこの情報を含むことができ、タスクが実行され、必要に応じて情報が渡される。
顧客のための例の「データベース生成」ワークフローは、データストアインスタンスをプロビジョニングすること、オフインスタンス永続記憶ボリュームを割当てること、データストアインスタンスに永続記憶ボリュームをアタッチすること、そして、顧客がデータインスタンスにアクセスするかまたはその他の方法で接続するために使用しうる、DNSアドレスあるいは他のアドレス、ポート、インタフェース、または識別子を割当てアタッチすることなどのタスクを含む可能性がある。この例では、ユーザは、インスタンスにアクセスするために使用されるDNSアドレスおよびポートアドレスを提供される。ワークフローはまた、特定のデータ記憶技術(たとえばMySQL)のために使用される任意のバイナリまたは他の情報をダウンロードしインストールするタスクを含みうる。ワークフロー要素は、これらのタスクまた任意の関連タスクまたはこうしたタスクの任意の他の適切な組合せの実行を管理し、「データベース生成」要求に応答して「データベース(database)」の作成を示す要求に対する応答を生成することができ、応答は、実際には、データ層210内のデータストアインスタンスに対応し、インスタンスにアクセスするために使用されるDNSアドレスを提供する。ユーザは、その後、制御層208にアクセスするかまたは制御層208を通過する必要なしで、DNSアドレスおよびポートを使用してデータストアインスタンスに直接アクセスしうる。種々の他のワークフローテンプレートを使用して、記憶を増加させるなどのために、多くのデータストアインスタンスのうちの1つを削除すること、作成すること、または修正することなどの同様のジョブが実施されうる。一部の実施形態では、ワークフロー情報は、記憶部に書込まれ、少なくとも1つの別個の実行要素(図示せず)は、ワークフロー情報に基づいて、実行されるタスクを引出すかあるいはその他の方法でそれにアクセスするかまたはそれを受信する。たとえば、プロビジョニングタスクを実行する専用プロビジョニング要素が存在する可能性があり、この構成要素は、ワークフロー要素によってコールされるのではなく、明らかであろういくつかの関連方法のうちの任意の方法で、タスクキューを監視しうるかまたはタスクをプロビジョニングするための情報を受信しうる。
述べたように、種々の実施形態は、リポジトリのプロビジョニングなどのプロセスまたはタスクの目下の状態についての要求またはコールを受信し、プロセスの目下の状態を返しうるワークフローサービスを利用することができる。ワークフロー要素および/またはワークフローサービスは、各タスクを実行するために実際のコールまたは要求を行うのではなく、代わりに、実施される次のタスクを制御層の構成要素が確定することを可能にするワークフローについての状態および構成情報、ならびに、そのタスクについて必要とされる任意の情報を管理し、次に、データ層へ、その状態情報を含む適切なコール(複数可)を生成し、それにより、データ層の構成要素が、タスクを実行するためにコールを発行することができる。ワークフローおよびタスクは、スループットを増加させ、処理資源を最大にするために並列にスケジューリングされうる。論じたように、タスクの実際の実行は、データ層で行われるが、タスクは、制御層から生じることになる。たとえば、ワークフロー要素、ホストマネジャと通信し得、ホストマネジャは、データストアへのコールを行うことができる。そのため、所与のタスクについて、いくつかのパラメータを渡すワークフローサービスに対するコールがを発行することができ、それにより、ワークフローサービスは、そのワークフローについてタスクのシーケンスを生成し、現在の状態についてのタスクが実行できるように、目下の状態を提供する。タスクが実行された(あるいは、その他の方法で解決されるかまたは完結された)後、ホストマネジャなどの構成要素が、サービスに返答することができ、サービスは、その後、次のタスクが実行できるように、ワークフロー内で次の状態に関する情報を提供することができる。ワークフローについてタスクのうちの1つのタスクが実行されるたびに、サービスは、ワークフローが終了するまで、実施される新しいタスクを提供することができる。さらに、複数のスレッドは、ワークフローの処理を加速するために、異なるワークフローについて並列に実行されうる。
制御層208はまた、この実施形態では、少なくとも1つの監視要素218を含む。データインスタンスが、データ層内で作成されると、インスタンスについての情報が、監視データストア220などの制御層内のデータストアに書込まれうる。監視データストアは、別個のデータストアでありうる、あるいは、Adminデータストア222内の異なる組のテーブルなどの別のデータストアまたは他の適切なリポジトリの一部分でありうることが理解されるべきである。監視要素は、データ層210内のアクティブなインスタンス234を確定するために、監視データストア内の情報にアクセスすることができる。監視要素はまた、ウェブサービス層、ワークフロー要素、スイープ要素、および種々のホストマネジャなどの、制御層および/またはデータ層の複数の構成要素からログおよび/またはイベント情報を収集することなどの他のタスクを実行することができる。こうしたイベント情報を使用して、監視要素は、顧客向きAPIを実現することなどのために、顧客に見えるイベントを現すことができる。監視要素は、制御層について実行されている全てのリポジトリおよび/またはインスタンスの健全度を絶えず監視し、これらのインスタンスの任意のインスタンスの障害を検出し、適切な復旧プロセス(複数可)を始動することができる。
データ層内の各インスタンス234は、少なくとも1つのデータストア226、および、データストアに対するアクセスを提供するマシン用のホストマネジャ要素228を含みうる。ホストマネジャは、一実施形態では、ソフトウェア展開およびデータストアオペレーションなどのタスクを管理するようにプログラムされた、インスタンスおよび/またはTomcatまたはJava(登録商標)アプリケーションサーバなどのアプリケーションサーバ上で実行されると共に、データストアおよび/または各インスタンスの状態を監視するアプリケーションまたはソフトウェアエージェントである。ホストマネジャは、一実施形態では、内部システム構成要素からのみアクセスでき、顧客または他の外部エンティティにとって利用可能でないポート上でリッスンする。一部の実施形態では、ホストマネジャは、制御層層へコールを全く始動できない。ホストマネジャは、論理ボリュームおよびファイルシステムをセットアップすること、データベースバイナリおよびシードをインストールすること、およびリポジトリを起動するかまたは停止することを含む、新しいリポジトリのためのインスタンスをセットアップすることなどのタスクを管理することおよび/または実施することについて責任を担いうる。ホストマネジャは、データストアの健全度を監視すると共に、I/Oエラーまたはデータ記憶エラーなどのエラー状態があるかデータストアを監視することができ、また、必要がある場合、データストアを再起動することができる。ホストマネジャはまた、データストアおよび/またはオペレーションシステムについてのソフトウェアパッチおよびアップグレードのインストレーションを実行する、かつ/または、管理する。ホストマネジャはまた、CPU、メモリ、およびI/O使用に関連しうる関連メトリクスを収集しうる。
監視要素は、特定の要求を送出すること、または、ホストマネジャからのハートビートを監視することなどによって、インスタンス234監視のために各ホストマネジャ228と定期的に通信して、各ホストのステータスを確定しうる。一実施形態では、監視要素は、特定のホストおよび/またはインスタンスのステータスを得るなどのために、各ホストマネジャのコマンドを発行するように構成された1組のイベントプロセッサ(または監視サーバ)を含む。指定数のリトライ後に応答が受信されない場合、監視要素は、問題が存在すると判定し、インスタンス用の動作を実行するための情報をAdminデータストア222または別のこうしたジョブキューに格納して、問題を検証し、必要である場合、インスタンスを再プロビジョニングすることができる。スイーパは、この情報にアクセスし、インスタンスが障害から自動的に復旧しようと試みるために、復旧ワークフローを始動することができる。ホストマネジャ228は、制御層の他の構成要素を監視し、制御層構成要素の代わりにイスタンス用のタスクを実行するプロキシとして働きうる。時として、自動的に解決することができない、対応するホスト、インスタンス、またはボリュームのクラッシュ、再起動、再始動などのような問題が、インスタンスのうちの1つに関して起こるであろう。一実施形態では、これらのまた他の顧客可視性イベントを記録することができるロギング要素(図示せず)が存在する。ロギング要素は、インスタンスがある期間利用可能でない場合、顧客が、イベントに関する情報を得るために、適切な「イベント(event)」または同様なAPIをコールできるように、APIまたは他のこうしたインタフェースを含みうる。ある場合には、インスタンスが失敗すると、要求が、保留状態のままにされる可能性がある。制御層は、この実施形態では、データ層から離れているため、データ要求を受信することがなく、したがって、後続の送信のために要求をキューイングできない(しかし、一部の実施形態では、この情報は制御層に転送されうる)。そのため、制御層は、この実施形態では、障害に関する情報をユーザに提供して、ユーザが、必要に応じて要求を処理できるようにする。
論じたように、インスタンスがプロビジョニングされ、ユーザがDNSアドレスあるいは他のアドレスまたはロケーションを提供されると、ユーザは、Javaデータベースコネクティビティ(Java database Connectivity)(JDBC)または他のこうしたクライアントを使用してネットワークを通してデータ層210に要求を「直接(directly)」送出して、そのインスタンス234と直接やりとりすることができる。一実施形態では、データ層は、コンピューティングクラウド環境、すなわち、ハードウェアおよび/またはソフトウェア構成要素の「クラウド(cloud)」または動的ネットワークにわたってデータ記憶およびアクセスを提供する1組のウェブサービスまたは資源の形態をとる(または、それを少なくとも含む、または、その一部である)。DNSアドレスは、こうした動的クラウド環境では有益である。その理由は、たとえばインスタンスまたは可用性障害が、使用するための任意の適切な置換インスタンスにDNSアドレスをプログラムで再マッピングすることによってマスクされうるからである。たとえばユーザ202またはアプリケーション204から受信される要求は、ネットワークアドレス変換(network address translation)(NAT)ルータ224、あるいは、実際のインスタンス234または要求のDNSに対応するホストに要求を送ることができる他の適切な構成要素送ることができる。論じたように、こうした手法は、インスタンスにアクセスするために使用されるDNSまたは他のアドレスを変更するようにユーザまたはアプリケーションに要求することなく、インスタンスが、動的に移動され、更新され、複製されることなどを可能にする。論じたように、各インスタンス234は、ホストマネジャ228およびデータストア226を含み、永続的記憶部230内に少なくとも1つのバックアップインスタンスまたはコピーを有しうる。こうした手法を使用して、インスタンスが制御層を通して構成されると、ユーザ、アプリケーション、サービス、または構成要素は、制御層232にアクセスする必要なしで、データ層に対する要求を通してインスタンスと直接やりとりすることができる。たとえば、ユーザは、DNSアドレスを通して、構造化問合せ言語(structured query language)(SQL)またはインスタンス内のデータに関連する他のこうしたコマンドを直接発行しうる。ユーザは、インスタンスの記憶容量を拡張することなどのタスクを実行したいと思う場合、制御層にアクセスしなければならないだけとなる。少なくとも1つの実施形態では、制御層208の機能は、データ層210のプロバイダに関連してもしなくてもよい少なくとも1つのサービスとしてプロバイダによって提供されうるが、データ層内のデータインスタンスをプロビジョニングし管理するために使用され、また、別個のデータ層210内のインスタンスの可用性を監視し保証することができる第3者サービスに過ぎなくてもよい。
論じるように、制御層の機能をウェブサービスまたは他のこうしたサービスとして提供する1つの利点は、制御層が、仮想データベース管理者(virtual database administrator)(DBA)として機能し、データをプロビジョニングすることなどのタスクを人間のDBAが実行する必要性を回避することである。データをプロビジョニングすることは、現在のところ、時間のかかる退屈な手作業の手順であり、必要な構成情報を受け取り、構成が有効であるかどうかを判定し、インスタンスを最適化し調節し、また他のこうしたタスクを実行することをDBAに要求し、かなりの時間と労力がかかる。さらに、こうした手法は、多くのエラーの機会を与え、エラーは、データが喪失した後まで発見されない可能性がある。本明細書で述べるように制御層またはサービスを使用して、ユーザまたは顧客は、その代わりに、ハードウェアのタイプおよびデータベース製品のバージョンなどの情報を含むコールを送信することができる。制御層またはサービスは、そこで、データストアまたはデータ記憶インスタンスを作成、削除、修正、拡張、またはその他の方法で修正するための必要なタスクを実行することができる。制御層はまた、エンジンのそれぞれにおけるエキスパートであるようにDBAに要求することなく、一貫した方式でいくつかの異なるデータベースエンジンをサポートすることができる。一旦プロビジョニングされると、ユーザは、データインスタンス(複数可)に対するネイティブなアクセスを有し、特定のインスタンスについてのDNSアドレスまたは他のロケーション情報に対して既存のアプリケーション(MySQLアプリケーションなど)を向けるだけで良い。ユーザが、MySQL、Oracle、または他のこうしたデータベース技術上で構築されるアプリケーションを使用し続けることができるため、クエリモデルまたは他のこうした機能の制限または修正は全く存在しない。
先に論じたような構成要素を使用して、図3は、制御層または同様なデータ制御サービスを使用して、データ環境、ここではデータ層内の少なくとも1つのデータインスタンスに関して制御関連タスクの実行を顧客が要求することができる例示的なプロセス300を示す。「顧客(customer)」という用語は、データの「所有者(owner)」あるいはRDSシステムによってホストされるデータストアまたはインスタンスを指すために本明細書で使用されるが、用語、顧客が例に過ぎないこと、および、任意の適切なユーザまたは開発者が、種々の実施形態で、制御層およびデータ層にアクセスすることを許容されうることが理解されるべきである。ウェブサービスコールなどの要求は、顧客向き制御層インタフェース要素を通して受信される302。要求は、要求を処理するために必要とされる少なくとも1つの動作を確定するために解析される304。論じるように、これは、要求される動作(複数可)を確定するために要求を構文解析するウェブサービス層の構成要素の形態をとりうる。この実施形態では、動作のタイプおよび動作を実施するために使用されるパラメータなどの動作についての情報は、Adminデータストアまたは他のこうした記憶ロケーションに位置しうるようなジョブキューに書込まれる306。ジョブキューは、ジョブ情報の存在を判定するためにスイーパ要素などによって監視されることができ308、ジョブ情報が検出されると、要求される動作についてのワークフローを始動する要求が送出されうる310。これは、スイーパ要素によってワークフロー要素に送出される要求および/またはワークフローをインスタンス化するサービスを含みうる。他の実施形態では、ワークフロー要素が、ジョブ用のジョブキューを監視することができ、または、ウェブサービス層の構成要素が、ジョブ情報をワークフロー要素に直接送出してもよい。
ジョブ情報を受信すると、要求される動作について適切なワークフローを確定するかつ/または組立てるために、情報が解析される312。論じるように、要求される動作のタイプおよび使用されるデータベースエンジンのタイプなどの因子に基づいて異なるタスクがワークフローについて選択されうる。ワークフローの第1のタスクで始めて、状態情報は、実行されるタスクを確定するために状態情報を使用し、データリポジトリおよび/またはデータインスタンスに関してタスクを実行し、タスクが終了するとすぐに応答を返すように動作するデータ環境内のホストマネジャに送出される314。応答を受信すると、ワークフロー要素は、実施される別のタスクが存在するかどうかを判定する316。別のタスクが存在する場合、次のタスクについての状態情報がホストマネジャに送出され、そのタスクが終了すると、ホストマネジャは、ワークフロー要素に応答を送出する。最後のタスクが終了した後、要求された動作が終了したというメッセージが、要求する顧客(あるいは、別の適切なユーザ、アプリケーション、またはロケーション)に送出される318。動作が終了した後、顧客は、制御層にアクセスすることなく、または、それを通過することなく、データ環境のデータインタフェースを使用して動作がその上で実行されたデータインスタンスに直接アクセスすることができる320。述べたように、ユーザは、たとえば動作がデータの移動または別の同様な動作をもたらした場合に、顧客またはアプリケーションが、データ層の適切なロケーションを割り当てられる、同じDNSアドレスを使用し続けられるように、DNSアドレスおよびポート番号を提供されうる。
同様に、図4は、制御層または制御サービスが、データ環境、ここではデータ層内のデータインスタンス(または、データストア、リポジトリなど)の性能を監視できる例示的なプロセス400を示す。ステータスについての要求は、データインスタンスについてホストマネジャ要素に送出される402。応答が、指定された時間内に受信されるかどうかについて判定が行われる404。応答が受信されない場合、閾値数の要求が送出されたかどうかが判定される406。閾値数の要求が送出されていない場合、もう一つの要求が送出されうる408。応答メッセージが受信される場合、応答が解析されて、任意のエラーまたはアドレス指定されるタスクをメッセージが含むかどうかが判定される410。それを含まず、また、インスタンスが健全であると判定される場合、プロセスが、引き続き行われ、ステータスについての別の要求が後で送出される。動作がデータインスタンスに関して実行される必要があることを応答メッセージが示す場合、動作のタイプおよび動作を実行するために使用されるパラメータなどの動作についての情報が、Adminデータストアまたは他のこうした記憶ロケーションに位置しうるようなジョブキューに書込まれる412。ジョブキューは、ジョブ情報の存在を判定するためにスイーパ要素などによって監視されることができ414、ジョブ情報が検出されると、要求される動作についてのワークフローを始動する要求が送出されうる416。他の実施形態では、ワークフロー要素が、ジョブ用のジョブキューを監視してもよく、または、ウェブサービス層の構成要素が、ジョブ情報をワークフロー要素に直接送出してもよい。
ジョブ情報を受信すると、要求される動作について適切なワークフローを確定するかつ/または組立てる418ために、情報が解析される。ワークフローの第1のタスクで始めて、状態情報は、データ環境内のホストマネジャに送出されて、図3のプロセスのステップ314〜316に関して述べたプロセスを使用して達成されうるような、タスクが実行され、ワークフローが実行される420。最終タスクが首尾よく終了する場合、データインスタンスは、データ層インタフェースを介して顧客またはアプリケーションから送出される要求を単に処理し続けることができる。タスクが首尾よく終了されることができない場合、データインスタンスに関する、可能性がある問題を示すメッセージが、顧客(または、別の適切なユーザ、アプリケーション、またはロケーション)に送出されうる。動作通知を生成すること、および/または、エラーログに情報を追加することなどの種々の他の通知動作が起こりうる。
具体的なインタフェースの例
先に論じたように、制御層のユーザは、1組のAPIまたは他のこうしたインタフェースを使用してデータリポジトリおよびデータインスタンスに関連する種々のタスクを実行することができる。例示的なAPIの選択および名前が、説明のために使用されるが、他の選択、組合せ、名前、および態様が、種々の実施形態の間で変わりうることが明らかであろう。上記例のうちの1つの例で論じるように、顧客は、「CreateDatabase」(データベース生成)または同様なAPIを使用してデータストアを作成することができる。ユーザは、ウェブサービスを呼び出して、インスタンスタイプ(CPUおよびメモリ容量を記述する)、記憶サイズ、リポジトリ名、ポート用の任意の所望の値、および他のこうした値を指定することができる。顧客はまた、「DescribeDatabase」(データベース説明)または同様なAPIを利用して、リポジトリ状態がプロビジョニングされているかどうかなど、リポジトリの状態を確定するためにリポジトリのステータスをポーリングすることができる。データベースのステータスが「利用可能(AVAILABLE)」であるとき、たとえば、顧客は、DescribeDatabaseコールに対する応答の一部として返されるエンドポイントを取出しうる。顧客は、「DeleteDatabase」(データベース削除)または同様なAPIを使用してリポジトリまたはインスタンスを削除することができうる。顧客はまた、たとえば「HibernateDatabase」(データベース休止)または同様なAPIを使用してインスタンスを「スリープ(sleep)」状態にする、リポジトリまたはインスタンスを休止状態にする(hibernate)能力を有しうる。こうした「スリープ」状態中に、データは、通常、アクセス可能ではないが、永続的にバックアップされる。顧客は、「ResumeDatabase」(データベース再開)または同様なAPIを使用して、休止状態にされたデータリポジトリまたはインスタンスを覚醒させうる。
先に述べたように、制御層またはサービスは、データベースプロビジョニングの複雑さだけでなく、アップグレード、パッチ管理、バックアップ、およびフェールオーバーなどのタスクの複雑さも処理しうる。顧客は、「CreateDatabase」(または「ModifyDatabase」または同様なものの)APIを呼び出しながら、顧客がバックアップウィンドウおよびメンテナンスウィンドウ時間を指定する(または修正する)ことを可能にすることによって、バックアップおよびメンテナンス活動についての時間を制御しうる。「ModifyDatabase」(データベース修正)APIを使用して、顧客は、記憶サイズを増加させるか、インスタンスタイプを変更するか、または種々の他のフィールドを修正できる。
顧客はまた、少なくとも1つの「Database Access Control」(データベースアクセスコントロール)または同様なAPIを提供されうる。データリポジトリが作成されると、ユーザは、リポジトリに対するネットワークアクセスを制限するために、1つまたは複数の既存のセキュリティグループを指定することができる。顧客は、セキュリティグループに許可ルールを追加することによってリポジトリに対するアクセスを認可することができ、許可ルールは、AuthorizeDBSecurityGroupIngress(DBセキュリティグループ侵入許可)APIなどのAPIを使用してリポジトリに適用される。顧客はまた、「ModifyDatabase」APIなどのAPIを使用して任意の時間にセキュリティグループを追加するかまたはリポジトリから削除することができる。顧客は、「CreateDBSecurityGroup」(DBセキュリティグループ生成)(または「DeleteDBSecurityGroups」(セキュリティグループ削除))APIなどの同様なAPIを使用して、セキュリティグループを作成(または削除)しうる。
制御層はまた、少なくとも1つの「Database User Managemant」(データベースユーザ管理)または同様なAPIを提供しうる。CreateDatabaseAPIの一部として、たとえば、顧客は、一実施形態では、「リポジトリ所有者(Repository Owner)」と呼ばれてもよいような、特別のリポジトリユーザについてのユーザ名およびパスワードを供給することが期待されうる。リポジトリ所有者は、リポジトリスキーマオブジェクトを所有する特別のタイプのユーザである。リポジトリの作成後、顧客は、「CreateDatabaseUser」(データベースユーザ作成)APIを使用してより多くのユーザを追加すること、「DeleteDatabaseUser」(データベースユーザ削除)APIを使用してユーザを除去すること、また、「DescribeDatabaseUsers」(データベースユーザ説明)APIを使用して顧客の一覧表を作成することなどのタスクを実行しうる。顧客はまた、「DescribeEvents」(イベント説明)または同様なAPIを使用して、リポジトリおよびインスタンスに関連するイベント(メンテナンスまたはバックアップ関連イベントによ稼働停止など)の履歴を得ることができる。
顧客例
この例では、顧客は、既存のMySQLデータベースを維持し管理する代わりに、新しいデータインスタンスをプロビジョニングしたいと思う。この例では、既存の顧客(CUSTOMER)データベースは60GBであり、記憶成長推定値は約10%/月である。これらの初期容量要件に基づいて、顧客は、80GBの初期容量によってプロビジョニングされるインスタンスを選択する。顧客は、マスターユーザおよびマスターユーザパスワードを選択し、ファイアウォール要件に基づいて、データインスタンスがその上でリッスンされることになる適切なポート番号(たとえば4030)を選択する。
顧客は、制御サービスにまだ契約していないかまたは加入していない場合、サービスについて契約しうる。一部の実施形態では、ユーザは、たとえばユーザが制御層またはサービスに要求を送信することを可能にする、ソフトウェアを受けるか、または、インタフェースページにインターネットを通してアクセスすることになる。たとえば、図5は、ユーザが制御層へのコールを行うことを可能にしうる、ディスプレイ500、ここではブラウザアプリケーションにおいて表示されたページの例を示す。示すように、インタフェースは、データ層上で制御動作を実行するために必要とされる情報をユーザが入力することを可能にするオプションを含みうる。たとえば、インタフェースページは、動作についてリポジトリを指定するオプション502、実行される動作を選択するオプション504を含み、使用されるデータベースエンジン506または要求される容量ならびにバージョン情報508などの動作用のオプションあるいは他のこうしたオプションを指定する。他の実施形態では、ユーザは、制御層に対してウェブサービスコールを手動で(またはその他の方法で)作成し送信することができる。以下の例では、顧客は、コマンドラインツールを使用して新しいデータリポジトリを作成する要求を生成する。要求は、たとえば、
rds−create−database ――identifier customerprod ――dbname customer ――size 80 −class small ――engine mysql5.1 ――master master_username ――password master_password ――port4030
の形態をとりうる。
顧客は、プロビジョニングステータスをチェックする能力を有し、また、
describe−repositories customerprod
を送信することなどによって、リポジトリを記述するために、コマンドラインツールを使用してコネクトストリング(connect string)を要求することができる。
顧客は、
authorize default −s205.192.0.0/16
によって、アドレス範囲205.192.0.0/16などからデフォルトセキュリティグループに対するアクセスを許可することができる。
顧客はまた、
describe−group default
を送信することなどによって、セキュリティステータス変化をチェックすることができる。
要求が送信されると、制御層は、リポジトリをプロビジョニングする要求を非同期で実行することができる。「DescribeDatabases」または同様なAPIを、要求のステータスを確定するために使用することができる。プロビジョニングが依然として進行中である間に、ステータスは、たとえば「保留中の作成(Pending Creation)」として示されることになり、また、プロビジョニングが終了すると、「作成済み(Created)」などの状態に変更されうる。この時点で、顧客は、リポジトリに接続するために必要な全ての情報を有することができる。
リポジトリが、プロビジョニングされ利用可能になると、顧客は、データ層上で種々の動作を実行することができる。たとえば、顧客は、MySQLダンプユーティリティまたは同様なデータ転送プロセスを使用することなどによって顧客(CUSTOMER)リポジトリをポピュレートしうる。顧客は、この例では、
$ mysqldump −opt custmer | mysql――host
end_point_hostname ――port 4030 −C customer
のように(すなわち、互換性のあるクライアントユーティリティを使用してソースMyS
QLデータベースサーバ上で)コマンドを実行する。
顧客はまた、
$ mysql −u master_username h− end_point_hostname ――port 4030 −p master_password

Mysql> show tables;

+――――――――――――――――――+
| Tables in customer|
+――――――――――――――――――+
| Table1 |
| Table2 |
| Table3 |
+-――――――――――――――――――+
を送信することなどによって、要求されたテーブルが作成されていることを検証しうる。
リポジトリは、顧客のアプリケーションのうちの1つのアプリケーションによっていつでも使用できる。顧客は、アプリケーションが元の自己管理データベースの代わりに新しいインスタンスデータベースを指示するためにコネクトストリング(または他のポインタ)を変更する。
この例では、顧客はまた、役割ベースアクセス制御を通してデータセキュリティを実装したいと思う。プロビジョニングされロードされたデータインスタンスをターンオンし、インスタンスを利用可能にする前に、開発チームはリポジトリに対するリード/ライトアクセスを有するが、ビジネス解析者はリードアクセスを得るだけであるように、顧客は、役割ベースアクセス制御を実装したいと思う。クライアントはまた、「マスターユーザ(master user)」アクセスを一握りの上級メンバーに制限したいと思うため、残りの開発者は、異なるデータベースのユーザ役割を必要とする。
制御層に関して、顧客は、たとえば、
create−user ――identifier customerprod
――username develop1 ――password develop

create−user ――identifier customerprod
――username analyst1 ――password analyst

を送信することなどによって、コマンドラインツールを使用して新しいデータベースユーザを作成する要求を送信することができる。
顧客はまた、
describe−users customerprod
を送信することなどによって、要求についてのプロビジョニングステータスをチェックすることができる。
プロビジョニングが依然として進行中である間に、ステータスは、たとえば「保留中の作成(Pending Creation)」などの状態を示すことができ、また、プロビジョニングが終了すると、「作成済み(Created)」などの状態に変更されることになる。顧客は、今や、データ層内でユーザを安全にするために必要なタスクを実行することができる。
顧客は、その後、
$ mysql −u master_username h− end_point_hostname ――port 4030 −p master1
Mysql>grant select,insert,update,delete
on master_username.* to ‘develop1’@’%’;
を送信することなどによって、データ層に関連して、master_usernameが所有される全てのテーブルについてdevelop1ユーザにリード/ライト特権を許可することができる。
顧客はまた、master_usernameが所有する全てのテーブルについてanalyst1ユーザにリード特権を許可することができる。
$ mysql −u master_username −h end_point_hostname ――port 4030 −p master1
Mysql>grant select on master_username,
* to ‘analyst1’@’%’;
インスタンスがしばらくの間実行された後、顧客は、イスタンスのサイズを、たとえば150GBの記憶までスケールアップしたいと思う可能性がある。顧客は、この例では、
modify−database ――identifier customerpr
od ――size 150
を送信することなどによって、コマンドラインツールを使用してデータベースの容量を修正する要求を送信することができる。
システムが、計算または処理の必要性について、インスタンスのサイズを調整することを可能にする場合、その調整は、さらなるパラメータ値を指定することによって同じまたは同様のコマンドで行われうる。顧客はまた、
describe−databases customerprod
などのコマンドを送信することによって、調整についてのプロビジョニングステータスをチェックすることができる。
要求されるリポジトリ修正は、一実施形態では、先に論じた、顧客によって指定されるメンテナンスウィンドウ中に起こる。変更が進行中である間、ステータスは、たとえば「保留中の修正(Pending Modification)」であり、「保留中の修正」は、プロビジョニングが終了すると、「アクティブ(Active)」などの値に変更されうる。論じたように、顧客は、この要求の実行中に、データ層サイドでいかなる動作もとる必要がない。制御層サイドで、顧客は、自動スケーリングプランなどのサービスに加入することができる。一旦加入すると、自動スケーリングが、顧客用の容量を管理し、必要に応じてスケールアップまたはスケールダウンするように構成されうるため、顧客は、制御層上でさえも、いかなる動作もとる必要がない。
ある時点で、顧客は、種々の開発ニーズのために改善されたまたは更新されたプロセスを実装したいと思い、特定のデータストアの試験インスタンスをセットアップしたいと思う可能性がある。顧客はまた、生産日に関して試験インスタンスが完全にポピュレートされ匹敵するように、生産インスタンスのスナップショットをとりたいと思う可能性がある。試験プロシージャの特定のニーズのために、顧客が、処理能力のために小さなインスタンスを利用し、生産のために使用されるのと同じ記憶容量をプロビジョニングしうることを、顧客が決定する。そして、顧客は、
create−database ――identifier customer
test ――dbname tcustomer ――siza 150 ――
class small ――engine mysql5.1 ――
master master_username
――password master_password ――port 4030
を送信することなどによって、コマンドラインツールを使用してデータベースをクローン化する要求を送信しうる。
顧客はまた、
describe−databases customertest
などのコマンドを送信することによってプロビジョニングステータスをチェックすることができる。
要求される修正は、顧客によって以前に指定されたメンテナンスウィンドウ中に起こりうる。変更が進行中である間、ステータスは、たとえば「保留中の修正(Pending Modification)」として示されることになり、「保留中の修正」は、プロビジョニングが終了すると、「アクティブ」などの状態に変更されうる。論じたように、顧客は、この要求の実行中に、データ層サイドでいかなる動作もとる必要がない。制御層サイドで、顧客は、先に述べたように、自動スケーリングなどのサービスに加入することができ、それにより、一旦加入すると、自動スケーリングサービスが、顧客のためのスケーリングを管理することになるため、顧客は、制御層上でさえも、いかなる動作もとる必要がない。
先に論じたように、種々の実施形態による制御層またはサービスの使用は、顧客が実行しうるSQLクエリのタイプを制限せず、また、パーティションが用意され、複数パーティションにまたがるクエリを許容しないというような、スキーマの構築に関する制限を全く課さない。代わりに、関係データベースなどのリポジトリは、ユーザのスキーマまたはクエリを制限することなく、コンピューティング「クラウド(cloud)」においてプロビジョニングされうる。一般に知られるように、たとえ理論的なSQL標準が存在しても、SQLの癖、文法、およびその挙動(たとえば、ヌル処理)は、異なる関係データベースエンジン(たとえば、MySQL、Oracle、またはPostgrcs)にわたって変わる。少なくともこれらの理由で、ユーザは、プログラミングおよびオペレーションのために、よく知っている関係データベースエンジンを選択したいと思う可能性がある。こうした手法は、顧客が制御層を介して自分のデータストアをクラウド(または他の所)に移動させるときでも、データモデリング、開発、およびデバッギングなどのタスクのために顧客が以前に使用したのと同じ組のデータベースツールを顧客が使用することを可能にする。こうした手法を使用して、顧客は、自分のアプリケーションまたは任意のオペレーションツールを書き直すことを要求されず、それにより、顧客がクラウドにデータを移動させるための参入障壁が大幅に低くなる。
顧客のデータリポジトリは、一実施形態では、クラウドコンピューティング環境の計算ノード上でリポジトリを実行させることによってクラウドに移動されうる。インスタンスの寿命と無関係に永続するオフインスタンス記憶ボリュームなどのブロックレベル記憶ボリュームは、たとえばリポジトリバイナリ、ログ、およびボリュームを記憶するこれらのインスタンスによって使用されうる。こうした手法は、仮想化が、リポジトリについて計算および記憶資源を迅速かつ容易にスケーリングするという柔軟性を提供するため、有利でありうる。さらに、こうした手法は、クラウド内に永続的記憶を提供しうる。
当技術分野で知られているように、関係データベースは、独立型(非複製型)、複製型、または複製およびパーティション型を含んでもよいような、異なるモードで実行されうる。顧客は、通常、リポジトリの可用性およびスケーラビリティのニーズならびに科せられる総所有コスト(total cost of ownership)(TCO)に基づいてリポジトリについてどのモードが実行されるかについての選択を行う。一部のアプリケーションおよびサービスは、高可用性および高耐久性であることをリポジトリに要求せず、代わりに、分単位の停電に耐えることができる独立型リポジトリを使用してもよい。他のアプリケーションおよびサービスは、常に可用であることをリポジトリに要求し、また、障害時でさえも決してデータを喪失しないことをリポジトリに要求しうる。この場合、アプリケーションおよびサービスは、通常、複製型データベース提供を要求する。一部のユーザ、アプリケーション、またはサービスは、スケーリングが、単一データベースの計算および記憶容量を超えて起こりうるように、複数リポジトリにわたってデータをパーティションしうる膨大にスケーラブルなリポジトリを要求する。これらの異なる使用事例に対処するために、一実施形態による手法は、各データベースエンジンについて、独立型および高可用型などの少なくとも2つのモードを提供する。一部の実施形態はまた、独立型または高可用型リポジトリの上部に、顧客が自分自身のパーティション用層を構築することを可能にする。
述べたように、制御層層は、ワークフローを実装すること、データ層のホストマネジャと制御層の構成要素との間にセキュアな通信チャネルを確立すること、データ層のインスタンス上にソフトウェアをインストールすること、および種々のデータベースバックアップおよび復旧手順を実行することなどのタスクを実行する種々の基本的なソフトウェアフレームワークを利用しうる、または、そのソフトウェアフレームワークの「上に位置し(sit on top)」うる。
たとえば、制御層の層は、ワークフローを管理するワークフローサービスを利用することができる。一般に知られているように、任意のワークフローエンジンの重要な特徴は、エンジンが非同期でかつ再開可能な処理を可能にすることである。先に論じたように、ワークフローは、初期状態で始まり、最終目標に達する前に、ワークフローの異なるステップを実行することによって、一連の中間状態遷移を通過する状態マシンと考えられうる。この最終目標は、状態マシンの終端状態と考えられうる。ワークフローサービスは、ワークフローを作成する能力を提供し、所与のワークフローおよび次に実行されるステップ(複数可)の目下の状態を確定するフックを提供する。サービスは、状態マシンの目下の状態を記憶し、成功裏に実行されるステップおよびワークフローの移動を維持するために実行されなければならないステップに追従しうる。サービスは、一般に、実際には私たちのために状態遷移を実行してはいない。ワークフローについてタスクを実行する厳密なタスクは、多くの実施形態では、ワークフローの「クライアント(client)」要素によって実行される。
制御層が、任意の所与の時間に並列に実行される複数のワークフローを有することができ、これらのワークフローが、異なるタスクを実施するためのものでありうるため、制御層は、複数のワークフローをスケジューリングし、複数の活動を並列に実行することができるアーキテクチャを利用することができる。一実施形態では、制御層は、種々のワークフロータスクを実行するようにプログラムされる種々のワーカーフリートを含む。ワーカーフリートとワークフローサービスとの間のやりとりは、図6の構成600に関して述べる。各ワーカーホストは、3つの構成要素、この例では、ポーラー要素604決定要素602、およびディスパッチャー要素606を実行する。各ホストは、各ワークフロータイプについてデサイダーキューをポーリングする単一ポーラースレッドを実行する。決定キューは、一実施形態では、異なるワークフロータイプの優先順位に基づいてポーリングされる。たとえば、決定キューは、リポジトリ作成ワークフローより先に(ahead of)復旧ワークフローについてポーリングされうる。たとえばpollDeciderQueue(決定キューをポール)APIが、決定の空でないリストを返す場合、ポーラーは、その決定を決定要素に転送することができる。決定要素は、その後、所与のワークフローにおいて実行する次のタスクに関して決定を行い、所与のワークフローについて動作キューにタスクを付加する「startActivity」(動作開始)または同様なAPIをコールしうる。ポーリング中に、ポーラーは、決定キューが空結果を返すと、次のタスクに移動し、「PollActivityQueue」動作キューをポール)または同様なAPIを使用して活動キューをポーリングしうる。PollActivityQueueのAPIが空でないリストを返す場合、このリストは、ワークフロー活動を実行する仕事を課されうるディスパッチャースレッドプールに引き継がれうる。ワークフロー活動が首尾よく終了すると、「ActivityCompleted」(動作完了)または同様なAPIがコールされることができ、決定キューに入れるワークフローサービスをコールする。
ワークフローフリート内の各ワークフローホストは、この例では、ポーラースレッダー、決定要素、およびディスパッチャースレッドプールを実行する。ワークフローは、一実施形態ではアノテーションフレームワークを使用して定義することができ、また、ワークフローアプリケーションは、適切なクラスパスから読取ることによって始動時にこれらの定義を構築することができる。ワークフローサービスホストは、「registerWorkflowType」(ワークフロー登録)および「registerActivityType」(動作タイプ登録)APIなどのワークフローサービスのAPIを使用して、登録されるワークフローおよび動作タイプのリストを最初に登録する。これらのAPIは、この例では不変であるため、各APIは、複数のフリートから複数回コールされうる。
異なるワークフロータイプの新しいワークフローインスタンスは、リポジトリ作成、リポジトリ削除、リポジトリ修正、リポジトリ復旧、リポジトリバックアップ、ユーザ作成、ユーザ削除、パスワードリセット、セキュリティ管理などのタスク、および他のこうしたタスクについて作成される必要がある可能性がある。これらのワークフローインスタンスはそれぞれ、図2に関して先に論じたように、任意の変更が実行されるために、Adminリポジトリを絶えず掃引するスイーパを使用して作成されうる。たとえば、ユーザが新しいリポジトリを作成したいと思う場合、ウェブサービス層は、「PENDING_CHANGES」などのステータスカラムを有するAdminDBに、必要とされる構成を記憶しうる。各ワークフローホストは、ステータスがPENDING_CHANGESに設定されている、任意のデータベースまたはセキュリティグループについて掃引するスイーパスレッドを実行し、相応してワークフローを起動しうる。
一部の実施形態では、ワークフローサービスの「createWorkflow」(ワークフロー作成)APIは、要求される構成がAdminリポジトリに記憶されるとすぐに、ウェブサービス層から直接コールされうるが、ワークフローサービスを直接コールすることは、2相コミットスタイル問題(two-phase commit style problem)をもたらしうる。ワークフローがワークフローサービスから利用可能でない場合、Adminリポジトリ更新が、ロールバックされなければならず、CreateDatabaseのAPIコールが受容されない。こうした2相コミットスタイル問題を回避するために、種々の実施形態は、たとえばステータスがPENDING_CHANGESに設定されているAdminリポジトリレコードに対する変更を観察することによって、起動される新しいワークフロー活動があるか掃引するように動作するスイーパアーキテクチャを利用する。
利用されうる別のアーキテクチャは、有利には、ホスト層の構成要素からデータ層のホストマネジャにセキュアな通信を提供することに関する。一実施形態では、制御層のワークフローおよび監視要素は、種々のタスク(たとえば、データベースメンテナンスおよびソフトウェアインストレーション)を実行すると共に、種々のインスタンスおよび/またはリポジトリのステータスをチェックするために、ホストマネジャと絶えず通信している。制御層とホストマネジャとの間の全ての通信は、盗聴するかまたはホストマネジャに無認可コマンドを発行することを誰にもさせないセキュアなネットワークを通じて起こることが少なくとも一部の実施形態では重要である。
一実施形態では、ホストマネジャに対する全ての通信チャネルは、セキュアソケット層(secure socket layer)(SSL)を通じたハイパーテキスト転送プロトコルを使用してセキュアである。ホストマネジャアプリケーションをホストする各アプリケーションサーバは、インスタンスの起動時にスクリプトを使用して起動されうる。アプリケーションサーバエンジンを始動させる前に、自己署名証明書を生成し、SSL通信チャネル(複数可)を有効にするために証明書をインストールするスクリプトが実行されうる。SSL通信は、一実施形態では、クライアント認証のためではなく、通信チャネルを暗号化するために使用される。クライアント認証は、代わりに、各要求に埋め込まれる公開鍵/秘密鍵の署名によって達成され、それにより、一実施形態では、全てのクライアントが、秘密鍵を使用してクエリストリングパラメータに署名する。この署名は、ホストマネジャ用のアプリケーションサーバによって展開されうるカスタムインターセプターによって確認されうる。さらに、セキュリティグループ(すなわちファイアウォールルール)は、所与のネットワークまたはセキュアグループ内に存在する(sit)ホストだけがホストマネジャポートを使用して通信できるように、データ層内の監視される各インスタンスについて確立されうる。セキュア情報およびクレデンシャル(秘密鍵など)は、適切な鍵ストアに記憶され、鍵管理および鍵回転などの機能を提供しうる。
別のアーキテクチャは、ソフトウェアインストレーションおよびメンテナンスを支援するために使用されうる。ソフトウェアは、一般に、リポジトリライフサイクルの種々のステージ中にデータ層インスタンス内のインスタンス上にインストールされる必要がある。リポジトリを作成するために、種々のバイナリおよび/またはシーズがインストールされる必要がある可能性がある。リポジトリが作成された後、種々のパッチ、ならびに、オペレーションシステムにインストールされる必要がある可能性があるクリティカルセキュリティパッチがデータベースに適用される必要がある可能性がある。そのため一部の実施形態では、種々のインスタンス上への異なるタイプのソフトウェアのインストレーションを可能にする柔軟性があるソフトウェアインストレーションアーキテクチャまたはフレームワークを構築することが望ましい場合がある。こうしたフレームワークの重要な要件のうちの1つの要件は、新しいソフトウェアをインストールするだけでなく、目下の組のインストール済みソフトウェアおよび各バージョンに関する情報を提供することである。こうしたフレームワークが、インストレーション中の競合を解決し、インストレーションの成功を検証し、インストール済みソフトウェアのリストにクエリするAPIまたは他のメカニズムを提供する機能を提供することが望ましい。
インストレーションフレームワークは、一実施形態では、ソフトウェアが単一コマンドによってインストールされうるように、既にコンパイルされているソフトウェアが分配されることを可能にするRPM(レッドハットパッケージマネジャ(Red Hat Package Manager))などのパケットマネジャを利用する。ソフトウェアは、事前定義されたURLからインストールされうるように、「バケット(bucket)」に記憶されうる。RPMまたは同様なインストーラコマンドは、2つの異なるパラメータとして、(別のURLでありうる)パッケージのマニフェストファイルおよびRPM URLをとりうる。インストール済みRPMは、制御層および/またはレッドハットによって署名されることになり、両方の鍵は、インスタンスのためにインストールされ維持されうる。ソフトウェアインストレーションは、こうした状況では、「installSoftware」(ソフトウェアのインストール)または同様なAPIを提供しうるホストマネジャによって実行されうる。こうしたAPIは、パッケージURL、マニフェストURL、リトライカウント、フォースインストールフラグ、およびRPMルートロケーションなどのパラメータを考慮しうる。このAPIを呼び出すと、マニフェストファイルがダウンロードされ、各アイテムは、アプリケーションの目下インストールされているリストと比較される。アイテムが既にインストールされている場合、「強制インストール(force install)」または同様なフラグが指定されない限り、再インストールしようという試みは、行われない。個々のパッケージがインストールされたかどうかをチェックするために、各ホストマネジャは、「getStatusofSoftware」(ソフトウエアステータスの取得)または同様なAPIを提供しうる。「installSoftware」ホストマネジャAPIは、不変であり(ワークフローが機能停止し(die)、再びステップにリトライしてもよいため)かつ非同期でありうる(ソフトウェアインストレーションは、終了するのにしばらくかかるため)。これらの2つの態様は、第2の「installSoftware」コールが第1のコールに干渉することを防止できる、同期のための静的オブジェクトを使用することによって達成されうる。
一実施形態による「instaallSoftware」APIは、最大の「リトライカウント」回数についてループ内で実行される。このAPIはまた、前の失敗した試みから存在する可能性がある任意のインストレーションファイルを除去する。APIは、マニフェストファイルをダウンロードし、どのアイテムがインストールされる必要があるかを判定し、その後、適切なリポジトリまたは他のソースからファイル(複数可)またはパッケージをダウンロードすることができる。適切なRPMファイルが、その後、処理されインストールされる。最終クリーンアップステップが、その後、インストレーションプロセス内にエラーが存在しても実行されうる。
ホストマネジャアプリケーションのインストレーションおよび任意の更新もまた、全ての他のイスタンスを書き留めることを必要としない方法で、各インスタンスについて管理されうる。一実施形態では、インスタンスは、起動時にアプリケーションサーバエンジンを起動し、ホストマネジャは、新しいホストアプリケーションを展開するためにアプリケーションサーバマネジャフレームワークをコールすることによってインストールされる。他の通信の場合と同様に、ホストマネジャに対してソフトウェアをインストールするかまたは更新をプッシュする前に、通信はさえぎられ、クライアントが認証されることができ、それは、既存のリポジトリの可用性に影響を及ぼすことなく達成されうる。
基礎になるフレームワークに依存しうる別の態様は、リポジトリおよびデータバックアップに関する。ユーザ始動バックアップ(バックアップ時間ウィンドウ中に実施されうる)およびデータベース修復中のシステム始動バックアップなどのような種々の理由で、制御層が、顧客リポジトリおよびインスタンスをバックアップすることが望ましい。単一フレームワークが、両方のインスタンスを処理するために実装されうる。リポジトリをバックアップするために、フレームワークは、データファイルと任意の関連ログファイルの両方のバックアップを処理しうる。種々のステップおよびプロセスが述べられるが、種々のステップおよび手法は、MySQLおよび他のものなどの種々のデータベースエンジンで異なりうることが理解されるべきである。
一実施形態に従ってデータをバックアップする手法は、適切なデータボリュームのスナップショットがとられ、ログファイルが適切なロケーションに同様にコピーされるまでデータの演算を一時停止する。たとえば、Admin階層は、バックアッププロシージャを始動する前に、バックアップウィンドウにたいして待機することができる。一旦バックアップウィンドウ内に入ると、Admin階層は、リポジトリバックアップのためにワークフローインスタンスを作成することになるワークフローを作成することができる。一例では、ワークフローは、ホストマネジャについて「suspendDatabaseForBackup」(バックアップのためにデータベースを一時停止)または同様なAPIを呼び出す。このAPIは、たとえば、テーブルをフラッシュしロックし、データボリュームに対してI/Oを一時停止し、ログボリュームについてLVMスナップショットを作成しマウントし、最後のログ位置を有するログ位置ファイルを作成し、データベースを再開するためにタイマを起動するタスクを管理しうる。このタイマは、スナップショットをとること、リポジトリが不定期間偶然に一時停止されることを防止することなどのタスクを実施している間に、Admin階層がハングアップする場合に、リポジトリを再開するために使用することができる。ワークフローは、これらのタスクおよび/または他のこうしたタスクの終了についてホストマネジャをポーリングすることができる。ホストマネジャがリポジトリを一時停止したことをワークフローが確認すると、ワークフローは、1組の順序付きタスクを使用して、データボリュームをバックアップしようと試みる。たとえば、ワークフローは、各データボリュームのスナップショットを作成することを指示し、スナップショットが成功裏に作成されたことを検証することができる。一行が、backup_data_volumesテーブルなどのロケーションに、各スナップショットボリュームについて挿入されうる。その後、ワークフローは、ホストマネジャの「resumeDatabaseFromBackup」データベースをバックアップから再開)または同様なAPIを呼び出すことができる。このプロセスは、リポジトリログおよびログ位置情報を適切な記憶ロケーションにコピーし、ログスナップショットをアンマウントし、ログスナップショットログボリュムを除去し、全てのテーブルをアンロックすることができる。Admin階層は、その後、バックアップが終了し、リポジトリが再び利用可能であることを示す顧客イベントを作成することができる。
論じたように、ログファイルはまた、同様な方式でバックアップされうる。ログは、データファイルが修復されなければならない場合に種々のトランザクションを再生することなどのタスクを実行するために使用することができる。エンジンログは、以前にバックアップされたログファイルが、簡単なリストコマンドを使用して得られるように、適切な記憶ロケーションにコピーすることができる。ホストマネジャは、この結果を使用して、コピーされる必要があるログが存在するかどうかを判定する。たとえば、ホストマネジャは、最後のシーケンスがバックアップされうるように書かれたログファイルのリストを得るように、バケットリストに要求することができる。新しいログが作成された場合、ログが、データベースエンジンに積極的に書込まれないことが最初に判定されることができ、その後、ログはコピーされ、コピーが、成功裏に実施されたことを検証することができる。
種々のフレームワークを利用することによって処理されうる別の態様は、セキュア鍵およびユーザクレデンシャルなどの種々のセキュリティ態様の管理を含む。セキュア鍵およびパスワードなどのセキュア情報は、参照により本明細書に組み込まれる、2009年2月17日に出願され、「Encryption Key Management」という名称の同時係属中の米国特許出願番号第12/372,597号に記載されるように、セキュア鍵管理システムまたはサービスを使用して記憶されうる。こうしたサービスは、各クレデンシャルについて少なくとも2つのバージョン、「古い(OLD)」バージョンと目下のバージョンを含みうる。鍵は、たとえば、鍵用のベース名を使用することなどによって鍵用の新しい値をサービスにアップロードし、必要に応じて、その鍵の値をホストマネジャに伝えるようにワークフローを起動することによって交代されうる。それぞれの適切なホストが新しいクレデンシャルを有するように、ワークフローが成功裏に終了されると、鍵の古いバージョンは、新しい値と効率的に置き換えることができる。任意のクレデンシャルについて、古い鍵が新しい鍵に一致しない場合、それは、鍵の交代プロセスが目下進行中であるということを示す。古い鍵が目下の鍵に一致しない場合、新しい鍵の交代は起動されず、したがって、依然として使用中である可能性がある手法が、クレデンシャルを喪失するリスクをとりうる。コマンドラインユーティリティまたは同様なインタフェースを、このチェックを強制しうる鍵管理サービスに鍵をプッシュするために使用することができる。
別個のワークフローが、全てのホストマネジャインスタンス上のホストマネジャクレデンシャルなどのクレデンシャルを更新するかつ/または交代するために定義されうる。こうした手法は、クレデンシャルタイプ、公開鍵、およびオプションの秘密鍵などの、同じ入力を、各ホストマネジャ上の「SendCredentials」(クレデンシャル送出)または同様のAPIとして利用しうる。しかし、クレデンシャル値の代わりに、ワークフローは、鍵管理サービスにその値を記憶するために使用される鍵の名前を受容しうる。ワークフローは、目下の値が新しい値と異なることを検証し、値が同じである場合、ワークフローは、適切なエラー条件で終了しうる。制御層によって管理されるアクティブな各ホストについて、各ホスト上のホストマネジャに新しいクレデンシャル(複数可)を送出することになるサブワークフローが起動されうる。全てのサブワークフローが終了すると、新しいクレデンシャル値が古い値を置換しうる。このワークフローが進行中である間に、作成されるかまたは再起動される任意のホストは、通常、元のクレデンシャルの代わりに、新しいバージョンのクレデンシャルが与えられる必要があることになる。
ホストにクレデンシャルを送出するサブワークフローは、オリジナルのワークフローと同じ入力ならびに特定のホストマネジャ用のホスト名およびポートを利用しうる。サブワークフローは、指定された各クレデンシャルについてホストマネジャ上で「UpdateCredentials」(クレデンシャル更新)または同様なAPIをコールし、更新が終了したことを検証するために、ホストマネジャ上で「GetCredentials」(クレデンシャル取得)または同様なAPIをコールすることができる。ホストマネジャは、少なくとも1つの実施形態では、クレデンシャルを所定のロケーションに置くためにすべてのことが行われるまで、クレデンシャルについての新しい値を報告しない。全てのホストマネジャが、2時間(2時間は、構成可能であり、必要に応じて更新するのが容易である)などの適切な期間内に更新されない場合、ワーフフローは、タイムアウトし、エラーチケットまたは他のこうした障害の指示を生成しうる。リポジトリと通信するためにホストマネジャによって使用される全てのルート/adminクレデンシャルは、Adminリポジトリに暗号化形態で記憶することができる。Adminリポジトリにおいてパスワードを暗号化するために鍵を交代させるとき、新しい鍵が、管理サービスにアップロードされ、ワークフローが、新しい鍵を使用して全ての適切なユーザパスワードを再暗号化するために起動されうる。そのワークフローが成功裏に終了すると、新しい暗号鍵を使用することができる。暗号鍵を変更することに加えて、このワークフローはまた、各データベースについてルートパスワードを変更もすることができる。パスワード暗号鍵を交代させるワークフローは、新しい暗号鍵が古い暗号鍵と異なることを検証し、インフライトワークフローについての任意のユーザパスワードを新しい鍵で暗号化し、任意のアクティブでないリポジトリについてのルートパスワードを新しい鍵で暗号化することができる。リポジトリがアクティブでないため、パスワードは、変更されないが、新しい鍵で再暗号化されうる。アクティブな各リポジトリについて、新しいルートパスワードが、生成され、(新しい鍵で暗号化される)変更保留フィールドに記憶され、サブワークフローが、ホストマネジャクレデンシャルを新しいパスワードで更新するために起動されうる。サブワークフローが終了すると、新しいルートパスワードが、新しい暗号鍵を使用して、データリポジトリに書き戻されうる。ルートデータベースパスワードは、リポジトリがアクティブでないときには変更されないが、リポジトリを再起動するワークフローは、リポジトリがアクティブになるとルートパスワードを変更しうる。
一実施形態による手法は、リモートコマンドをラップし、クレデンシャルが交代される方法に関して制限を強制するコマンドラインユーティリティを利用する。これは、公開鍵および秘密鍵が、並んでのみ交代されること、および、前の交代が依然として進行中である場合、鍵は交代されないことを保証しうる。ユーティリティは、鍵が全てのホストに対して成功裏に展開され、その後、適切な制御層環境で適切なワークフローを起動することを検証する。コマンドラインユーティリティは、
rotate−rds−key \
――stage One of Devo,Integ,QA,or Prod\
――type credential_type\
――publicKey value for public key \
――privateKey optional for some types;
value for private key
などの文法を使用しうる。
こうしたユーティリティは、目下の鍵がフリート内の任意のホスト上で古い鍵と異なる場合、フリート内の任意のホストに対して新しい鍵のエラーコピー動作が存在する場合、またはワークフローステップが起動されることができなかった場合に障害を起こしうる。鍵が既に異なっている場合、ロールバックに対する変更は存在しない可能性がある。ユーティリティは、それ以外の場合にはいずれの変更もロールバックし、ロールバックが不成功であった事例をユーザに報知しうる。
ホストマネジャインスタンスが、「UpdateCredentials」または同様なワークフロー中に機能停止(die)する場合、ワークフローがリトライすることを可能にすることは、ワークフローサイドに特別なロジックがない状態での多くのシナリオに対処しうる。クレデンシャルを更新することであるステップ以外のワークフローステップは、ワークフローがそこから復旧する必要がある「MissingCredential」(クレデンシャル不在)または同様な例外を受信しうる。こうした場合、新しいクレデンシャルをホストマネジャに送出することが受容されうる。データベース管理パスワードの場合、パスワード変更は、発効していない可能性がある。ルートパスワードを再送出しようとするワークフローステップ(ならびに、他のワークフローからルートパスワードを要求する、ホストマネジャに対する任意の他のコール)は、「MissingCredential」または同様な例外によって障害を起こしうる。変更パスワードワークフロー以外のワークフローステップは、クレデンシャルを新しいパスワードに設定し、任意の障害を処理しようと試みうる。パスワードを積極的に変更しようとしているワークフローは、最初に、新しいパスワードを送出しようとしうる。それが成功する場合、ワークフローが行われ、そうでなければ、ワークフローは、古いパスワード、それに続いて、新しいパスワードでリトライしうる。ホストマネジャは、目下メモリにパスワードを持たない場合に、ルートパスワードについて「UpdateCredentials」または同様なコールを受信する場合、そのパスワードを使用してリポジトリに接続しようと試み、接続を確立することができない場合障害を起こしうる。
種々のクレデンシャルおよびセキュアオブジェクトの交代は、顧客に目立つ影響を与えることなく多くのインスタンスにおいて達成される。ウェブサービス層は、多くの実施形態で、顧客要求を処理することの一部としてこれらのクレデンシャルをいずれも使用しないため、顧客APIコールは、通常通りに進み続けうる。クレデンシャルを交代させることの影響は、交代されるクレデンシャルのタイプに応じてある程度変わりうる。たとえば、新しい対のウェブサービス鍵が生成されるとき、元の対によって署名された要求は、失敗し始めうる。これは、一般に、ワークフローシステムがある期間にわたってリトライしうるワークフローステップに影響を及ぼすだけである。新しいウェブサービスクレデンシャルは、進行中のワークフローに対する混乱を最小にするために管理サービスに迅速にアップロードされうる。新しいパスワードを生成し伝えるワークフローが進行中である間、ワークフローボックスは、古い暗号鍵と新しい暗号鍵の両方にアクセスでき、それにより、各ワークフローが進行中である間に、個々のリポジトリおよびインスタンスに対する接続が行われうる。ホストマネジャ認証鍵の場合、実働ホストは、要求が拒否される場合に、古い鍵によって接続をリトライするリトライロジックを所定ロケーションに有しうる。RPM署名鍵の場合、ホストマネジャは、鍵が交代される場合、ある期間、ソフトウェアをインストールできない可能性がある。
先に論じたように、種々の実施形態は、いろいろな動作環境で実装されることができ、ある場合には、1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または多数のアプリケーションの任意のアプリケーションを動作させるために使用されうる処理デバイスを含みうる。ユーザまたはクライアントデバイスは、標準的なオペレーションシステムを実行するデスクトップまたはラップトップコンピュータなどの多数の汎用パーソナルコンピュータの任意の汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを実行しかつ多数のネットワーキングおよびメッセージングプロトコルをサポートすることが可能な携帯、無線、および手持ち式デバイスを含みうる。こうしたシステムはまた、種々の市販のオペレーションシステムならびに開発およびデータベース管理のための他の知られているアプリケーションのうちの任意のものを実行する多数のワークステーションを含みうる。これらのデバイスはまた、ダミー端末、シンクライアント、ゲーミングシステム、およびネットワークを介して通信することが可能な他の電子デバイスを含みうる。
種々の態様はまた、サービス向きアーキテクチャの一部でありうるような少なくとも1つのサービスまたはウェブサービスの一部として実装されうる。ウェブサービスなどのサービスは、拡張可能マークアップ言語(extensible markup language)(XML)フォーマットでかつSOAP(「シンプルオブジェクトアクセスプロトコル(Simple Object Access Protocol)」から導出される)などの適切なプロトコルを使用して交換されるメッセージを使用することなどによる、任意の適切なタイプのメッセージングを使用して通信することができる。こうしたサービスによって提供される、または、実行されるプロセスは、ウェブサービス記述言語(Web Service Description Language)(WSDL)などの任意の適切な言語で書くことができる。こうしたWSDLなどの言語を使用することは、種々のSOAPフレームワークにおけるクライアントサイドのコードの自動生成などの機能を可能にする。
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalkなどの種々の市販のプロトコルのうちの任意のプロトコルを使用して通信をサポートすることについて当業者によく知られている少なくとも1つのネットワークを利用する。ネットワークは、たとえば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびその任意の組合せでありうる。
ウェブサーバを利用する実施形態では、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバを含む、種々のサーバまたは中間層アプリケーションの任意のアプリケーションを実行することができる。サーバ(複数可)はまた、Java(登録商標)、C、C♯、またはC++などの任意のプログラミング言語、あるいは、Perl、Python、またはTCLなどの任意のスクリプティング言語、ならびに、その組合せで書かれた1つまたは複数のスクリプトまたはプログラムとして実装されうる1つまたは複数のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答して、プログラムまたはスクリプトを実行することができうる。サーバ(複数可)はまた、制限はしないがOracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から商業的に入手可能なサーバを含むデータベースサーバを含んでもよい。
環境は、先に論じたように、種々のデータストアおよび他のメモリおよび記憶媒体を含むことができる。これらは、コンピュータの1つまたは複数にローカルな(かつ/またはそこに存在する)、または、ネットワークにわたるコンピュータの任意のまたは全てのコンピュータから遠隔の記憶媒体上などの、種々のロケーションに存在しうる。特定の組の実施形態では、情報は、当業者によく知られている記憶域ネットワーク(storage-area network)(「SAN」)内に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実施するための任意の必要なファイルは、必要に応じて、ローカルにかつ/またはリモートに記憶されてもよい。システムが、コンピュータ化デバイスを含む場合、こうした各デバイスは、バスを介して電気結合されてもよいハードウェア要素を含むことができ、その要素は、たとえば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力デバイス(たとえば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力デバイス(たとえば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。こうしたシステムはまた、ディスクドライブ、光記憶デバイス、ランダムアクセスメモリ(「RAM」)または読取り専用メモリ(「ROM」)などの固体記憶デバイス、ならびに、リムーバブルメディアデバイス、メモリカード、フラッシュカードなどのような1つまたは複数の記憶デバイスを含んでもよい。
こうしたデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(たとえば、モデム、ネットワークカード(有線または無線)、赤外線通信デバイスなど)、およびワーキングメモリを含みうる。コンピュータ可読記憶媒体リーダは、リモート、ローカル、固定、および/またはリムーバブル記憶デバイス、ならびに、コンピュータ可読情報を、一時的にかつ/またはより永続的に含む、記憶する、送信する、および取出す記憶媒体を表すコンピュータ可読記憶媒体に接続されうるか、または、その記憶媒体を受取るように構成されうる。システムおよび種々のデバイスはまた、通常、オペレーションシステムおよびクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムを含む、多数のソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置する他の要素を含むであろう。代替の実施形態は、上述したものからのいくつかの変形を有してもよいことが理解されるべきである。たとえば、カスタマイズされたハードウェアが使用されてもよく、かつ/または、特定の要素がハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、または両方で実装されてもよい。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスに対する接続が使用されてもよい。
コードまたはコードの所定部分を含む記憶媒体およびコンピュータ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用され、システムデバイスによってアクセスされうる任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶しかつ/または送信する任意の方法または技術において実装される、限定はしないが、揮発性および不揮発性でリムーバブルおよび非リムーバブルの媒体などの、記憶媒体および通信媒体を含む当技術分野で知られているかまたは使用される任意の適切な媒体を含みうる。本明細書に提供される開示および教示に基づいて、当業者は、種々の実施形態を実装するための他のやり方および/または方法を理解するであろう。
付記項1。
別個の制御環境を使用して関係データベースの態様を制御する、コンピュータによって実現される方法であって、
実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、制御インタフェースを通して、顧客から制御環境へのウェブサービスコールを受信すること、
関係データベースに関して実施される動作を確定するために、ウェブサービスコールを解析し、確定された動作についての情報をジョブキューに記憶すること、
ジョブキューから、確定された動作についての情報を抽出し、情報に少なくとも部分的に基づいてワークフローを生成することであって、ワークフローは、確定された動作に関してデータ環境で実行されるべき少なくとも一系列のタスクを含み、関係データベースはデータ環境内に存在すること、
ワークフローの各タスクについて、タスクを実行し、タスクの実行に関する応答を返すように動作するデータ環境内のホストマシン用のホストマネジャにタスクについての状態情報を送出することであって、最終でない各タスクの成功裏の終了は、ワークフローの後続のタスクについての状態情報をワークフローマネジャに送出することをもたらすこと、および、
ワークフローの最終タスクが成功裏に終了したことを示す応答がホストマシンから受信されると、動作が成功裏に実施されたという通知を顧客に送出することを含み、
顧客は、制御環境にアクセスすることなく、データ環境のデータインタフェースを使用して、動作が実施された後の関係データベースに直接アクセスできるコンピュータによって実現される方法。
付記項2。
データ環境に関して実行するべき任意の動作についての情報があるか、ジョブキューを監視することをさらに含む付記項1に記載のコンピュータによって実現される方法。
付記項3。
顧客にDNS(ドメイン名システム)アドレスおよびポート情報を提供することをさらに含み、顧客がデータインタフェースを使用して関係データベースにアクセスすることを可能にする付記項1に記載のコンピュータによって実現される方法。
付記項4。
別個の制御環境を使用してデータ環境の態様を制御するコンピュータによって実現される方法であって、
実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
データ環境に関して実施される動作を確定するために、制御環境の制御インタフェースを通して受信される要求を解析すること、
確定された動作についてのワークフローであって、確定された動作に関してデータ環境で実行されるべき少なくとも1つのタスクを含む、ワークフローを生成すること、
ワークフローの各タスクについて、タスクを実行し、タスクの実行に関する応答を返すように動作するデータ環境内の構成要素に要求を送出すること、および、
ワークフローの最終タスクが終了したことを示す応答がホストマシンから受信されると、要求された動作が終了したという通知を、制御インタフェースを通して送出することを含み、
データ環境内のデータは、制御環境にアクセスすることなく、データ環境のデータインタフェースを使用してアクセス可能であるコンピュータによって実現される方法。
付記項5。
データは、少なくとも1つの関係データベースに記憶される付記項4に記載のコンピュータによって実現される方法。
付記項6。
要求は、ウェブサービスコールであり、
動作は、少なくとも1つの関係データベースの1つをプロビジョニングすることを含む付記項5に記載のコンピュータによって実現される方法。
付記項7。
動作は、データ環境内のデータインスタンスを、作成すること、削除すること、バックアップすること、スケーリングすること、複製すること、プロビジョニングすること、または修正することのうちの少なくとも1つを含む付記項4に記載のコンピュータによって実現される方法。
付記項8。
要求は、制御環境の外向きアプリケーションプログラミングインタフェース(API)に対して受信されるウェブサービスコールである付記項4に記載のコンピュータによって実現される方法。
付記項9。
データインタフェースは、指定されたデータインスタンスについてDNSアドレスを使用してアクセス可能な制御環境の外向きAPIである付記項4に記載のコンピュータによって実現される方法。
付記項10。
タスクの少なくとも1つは、データインスタンスを作成すること、データインスタンスの記憶ボリュームを設定すること、データインスタンスを修正すること、選択されたエンジンについてバイナリをダウンロードすること、データインスタンスのバックアップおよび復旧、データ複製およびフェールオーバー、セキュリティグループを作成し管理すること、ユーザクレデンシャルを管理すること、鍵交代の管理およびクレデンシャル管理、ならびに、データインスタンスをサポートするハードウェアにアタッチすることからなる群から選択される付記項4に記載のコンピュータによって実現される方法。
付記項11。
要求は、クレデンシャルに基づいてユーザを認証すること、ユーザを認可すること、ユーザ要求を抑えること、ユーザ入力を確認すること、ならびに、要求および応答をマーシャリングするまたはアンマーシャリングすることからなる群から選択される少なくとも1つのタスクを実行するように動作する構成要素を含むウェブサービス層に対して受信される付記項4に記載のコンピュータによって実現される方法。
付記項12。
要求に対応するデータ要素のために使用されるデータベースエンジンに少なくとも部分的に基づいて選択されるタスクを使用してワークフローを組立てることをさらに含む付記項4に記載のコンピュータによって実現される方法。
付記項13。
データ環境についてのイベント情報を、制御環境内のデータストアに記録(log)することをさらに含む付記項4に記載のコンピュータによって実現される方法。
付記項14。
さらに、データ環境内の構成要素は、データ環境内でタスクを実行するように動作するホストマシン用のホストマネジャであり、ホストマネジャは、さらに、データ環境の少なくとも1つの態様について健全度情報を収集し監視するように動作する付記項4に記載のコンピュータによって実現される方法。
付記項15。
別個の制御環境を使用してデータ環境を維持するコンピュータによって実現される方法であって、
実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
制御環境の監視要素から、データインスタンスの監視の責任を担うデータ環境内の少なくとも1つのホストマネジャへ、ステータスについての要求を定期的に送出すること、
ステータスについての要求のうちの1つを受信した少なくとも1つのホストマネジャから応答を受信すること、
データ環境に関して実施される任意の動作を確定するために応答を解析し、ワークフローであって、確定された動作に関してデータ環境で実施される少なくとも1つのタスクを含む、ワークフローを、確定された動作について生成すること、
ワークフローの各タスクについて、タスクを実行し、タスクの動作に関する情報を有する応答を返すために、ホストマネジャに状態情報を送出することであって、最後でない各タスクの成功裏の終了は、ワークフローの後続のタスクについての状態情報をワークフローマネジャに送出することをもたらすこと、および、
ワークフローの最終タスクが終了したことを示す応答がホストマシンから受信されると、実施された動作についての情報を、データ環境用のログに記憶することを含み、
データ環境内のデータは、制御環境にアクセスすることなく、データインタフェースを使用してアクセス可能であるコンピュータによって実現される方法。
付記項16。
データインスタンスは、データ環境内の関係データベースに対応する付記項15に記載のコンピュータによって実現される方法。
付記項17。
実行される動作を確定するために要求を解析することに応答して、確定された動作についての情報を、ジョブキューにに格納することをさらに含み、
情報は、ワークフローを生成するために、ジョブキューから抽出(extract)されることができる付記項15に記載のコンピュータによって実現される方法。
付記項18。
ホストマネジャからの応答が所定の期間内に受信されないとき、ステータスについて別の要求を送出すること、および、
ホストマネジャからの応答が、所定数の要求後に受信されないとき、データ環境に関して実行されるべき動作を確定し、確定された動作についてワークフローを生成することをさらに含む付記項15に記載のコンピュータによって実現される方法。
付記項19。
ホストマネジャは、ステータスについての要求に対する応答を生成するときに使用するために、データ環境の少なくとも1つの態様について健全度情報を収集し監視するように動作する付記項15に記載のコンピュータによって実現される方法。
付記項20。
別個の制御環境を使用してデータ環境を制御するシステムであって、
少なくとも1つのプロセッサと、
命令を含むメモリとを備え、命令は、少なくとも1つのプロセッサによって実行されると、
データ環境に関して実行される動作を確定するために、制御環境の制御インタフェースを通して受信される要求を解析し、
確定された動作についてのワークフローであって、確定された動作に関してデータ環境で実施されるべき少なくとも1つのタスクを含む、ワークフローを生成し、
ワークフローの各タスクについて、タスクを実行し、タスクの実行に関する応答を返すように動作するデータ環境内の構成要素に要求を送出し、
ワークフローの最終タスクが終了したことを示す応答がホストマシンから受信されると、要求された動作が終了したという通知を、制御インタフェースを通して送出することを、
システムにさせ、
データ環境内のデータは、制御環境にアクセスすることなく、データ環境のデータインタフェースを使用してアクセス可能であるシステム。
付記項21。
要求を受信するように動作する制御環境内の外向きAPIをさらに含み、その要求はウェブサービスコールである、付記項20に記載のシステム。
付記項22。
データインタフェースは、指定されたデータインスタンスについてDNSアドレスを使用してアクセス可能な制御環境の外向きAPIである付記項20に記載のシステム。
付記項23。
前記要求を受信し、クレデンシャルに基づいてユーザを認証すること、ユーザを認可すること、ユーザ要求を抑えること、ユーザ入力を確認すること、ならびに、要求および応答をマーシャリングするまたはアンマーシャリングすることからなる群から選択される少なくとも1つのタスクを実行するように動作する制御環境内のウェブサービス層をさらに含む付記項20に記載のシステム。
付記項24。
要求に対応するデータ要素について使用されるデータベースエンジンに少なくとも部分的に基づいて選択されるタスクを使用してワークフローを組立てるように動作するワークフロー要素をさらに備える付記項20に記載のシステム。
付記項25。
コンピュータ可読媒体に埋め込まれ、かつ、命令を含むコンピュータプログラム製品であって、命令は、少なくとも1つのコンピューティングデバイスによって実行されると、
データ環境に関して実施される動作を確定するために、制御環境の制御インタフェースを通して受信される要求を解析し、
確定された動作についてのワークフローであって、確定された動作に関してデータ環境で実行されるべき少なくとも1つのタスクを含む、ワークフローを生成し、
ワークフローの各タスクについて、タスクを実行し、タスクの実行に関する応答を返すように動作するデータ環境内の構成要素に要求を送出し、
ワークフローの最終タスクが終了したことを示す応答がホストマシンから受信されると、要求された動作が終了したという通知を、制御インタフェースを通して送出することを、
少なくとも1つのコンピューティングデバイスにさせ、
データ環境内のデータは、制御環境にアクセスすることなく、データ環境のデータインタフェースを使用してアクセス可能であるコンピュータプログラム製品。
付記項26。
少なくとも1つのコンピューティングデバイスによって実行されると、
要求を受信するように動作する制御環境内の外向きAPIを提供することを
少なくとも1つのコンピューティングデバイスにさせる命令をさらに含む付記項25に記載のコンピュータプログラム製品。
付記項27。
少なくとも1つのコンピューティングデバイスによって実行されると、
要求を受信し、クレデンシャルに基づいてユーザを認証すること、ユーザを認可すること、ユーザ要求を抑えること、ユーザ入力を確認すること、ならびに、要求および応答をマーシャリングするまたはアンマーシャリングすることからなる群から選択される少なくとも1つのタスクを実行するように動作する制御環境内のウェブサービス層を提供することを
少なくとも1つのコンピューティングデバイスにさせる命令をさらに含む付記項25に記載のコンピュータプログラム製品。
付記項28。
少なくとも1つのコンピューティングデバイスによって実行されると、
要求に対応するデータ要素のために使用されるデータベースエンジンに少なくとも部分的に基づいて選択されるタスクを使用してワークフローを組立てるように動作するワークフロー要素を提供することを
少なくとも1つのコンピューティングデバイスにさせる命令をさらに含む付記項25に記載のコンピュータプログラム製品。
したがって、明細書および図面は、制限的な意味ではなく例証的な意味で考察される。しかし、特許請求の範囲に述べる本発明のより広い趣旨および範囲から逸脱することなく、仕様および図面に種々の修正および変更が行われてもよいことが明らかである。

Claims (15)

  1. データ記憶部およびホストマシンを含むデータ環境と、前記データ環境とは別個の制御環境であって、前記データ記憶部の構成制御を行うサーバーコンピューターを含む制御環境とを有するコンピュータシステムにおける、1つまたは複数のコンピュータが実行可能命令を実行することにより、前記制御環境を使用して前記データ環境の構成を制御する方法であって、
    前記制御環境において、
    前記データ環境における前記データ記憶部の少なくとも1つのデータインスタンスの構成制御であって、前記少なくとも1つのデータインスタンスを作成、削除、バックアップ、リカバリー、スケーリング、複製、プロビジョニング、アップグレード、パッチ管理、フェールオーバー、または容量管理する、構成制御に関して実行されるべき動作を確定するために、前記制御環境の制御インタフェースを介して受信した要求を解析することと、
    前記実行されるべき動作についてのワークフローであって、前記実行されるべき動作に関して前記データ環境で実行される少なくとも1つのタスクを含む、ワークフローを生成することと、
    前記タスクを実行し、前記タスクの実行に関する応答を返すように動作する前記データ環境内のホストマシンに、前記ワークフローの各タスクについての要求を送出することと、および、
    前記ワークフローの最終タスクが終了したことを示す応答を前記ホストマシンから受信すると、前記実行されるべき動作が終了したという通知を、前記制御インタフェースを通して送出することと、
    前記データ環境において、
    前記データ環境のデータインタフェースは、前記実行されるべき動作が終了したという通知が、前記制御インタフェースを通して送出された後には、前記データ環境内のデータへのアクセスを、前記制御環境を介さず直接受け付けることを有し
    顧客が自動スケーリングプランサービスに加入している場合、前記加入した顧客のリソースの容量のスケーリングは、前記容量を自動的にスケールアップまたはスケールダウンすることにより前記容量を管理するように構成される
    方法。
  2. 前記データは、少なくとも1つのリレーショナルデータベースに記憶される請求項1に記載のコンピュータによって実現される方法。
  3. 前記要求は、ウェブサービスコールであり、
    前記実行されるべき動作は、前記少なくとも1つのリレーショナルデータベースの1つの構成制御であって、前記少なくとも1つのデータインスタンスを作成、削除、バックアップ、リカバリー、スケーリング、複製、プロビジョニング、アップグレード、パッチ管理、フェールオーバー、または容量管理することを含む請求項2に記載のコンピュータによって実現される方法。
  4. 前記要求は、前記制御環境の外向きアプリケーションプログラミングインタフェース(API)に対して受信されるウェブサービスコールである請求項1に記載のコンピュータによって実現される方法。
  5. 前記データインタフェースは、指定されたデータインスタンスについてのDNSアドレスを使用してアクセス可能なAPIである請求項1に記載のコンピュータによって実現される方法。
  6. 前記要求は、
    クレデンシャルに基づいてユーザを認証すること、前記ユーザを認可すること、ユーザ要求を抑えること、ユーザ入力を確認すること、または、前記ユーザ要求およびユーザ応答をマーシャリングするまたはアンマーシャリングすること、からなる群から選択される少なくとも1つのタスクを実行するように動作する構成要素を含むウェブサービス層で受信される請求項1に記載のコンピュータによって実現される方法。
  7. 前記ワークフローを生成する際に、前記要求に対応するタスクを実行する前記ホストマシンで使用されるデータベースエンジンに少なくとも部分的に基づいてタスクを選択し、前記選択されたタスクを使用して前記ワークフローを組立てることをさらに含む請求項1に記載のコンピュータによって実現される方法。
  8. データ記憶部およびホストマネジャを含むデータ環境と、前記データ環境とは別個の制御環境であって、前記データ記憶部の構成制御を行うサーバーコンピューターを含む制御環境とを有するコンピュータシステムにおける、1つまたは複数のコンピュータが実行可能命令を実行することにより、前記制御環境を使用して前記データ環境の態様を制御する方法であって、
    前記制御環境において、
    前記制御環境の監視要素から、データインスタンスを監視することができる前記データ環境内の少なくとも1つのホストマネジャへ、ステータスについての要求を定期的に送出することと、
    前記ステータスについての前記要求のうちの1つを受信した少なくとも1つの前記ホストマネジャから、第1の応答を受信することと、
    前記データ環境における前記データ記憶部の少なくとも1つのデータインスタンスの構成制御であって、前記少なくとも1つのデータインスタンスを作成、削除、バックアップ、リカバリー、スケーリング、複製、プロビジョニング、アップグレード、パッチ管理、フェールオーバー、または容量管理する、構成制御に関して実行されるべき動作を確定するために、前記第1の応答を解析し、ワークフローであって、前記実行されるべき動作に関して前記データ環境で実行される少なくとも1つのタスクを含むワークフローを、前記実行されるべき動作について生成することと、
    前記ワークフローに含まれる各タスクを実行し、前記タスクの実行に関する情報を有する第2の応答を返す前記少なくとも1つのホストマネジャに対して、状態情報を送出することであって、前記ワークフローの最終タスクではないタスクの実行が成功すると、前記最終タスクではないタスクの後続のタスクについての前記状態情報を前記少なくとも1つのホストマネジャに送出することと、および、
    前記ワークフローの最終タスクが終了したことを示す応答が前記ホストマネジャから受信されると、前記実行されるべき動作についての情報を、前記データ環境用のログに記憶し、前記実行されるべき動作が終了したという通知を、制御インタフェースを通して送出することを含み、
    前記データ環境において、
    前記データ環境のデータインタフェースは、前記実行されるべき動作が終了したという通知が、前記制御インタフェースを通して送出された後には、前記データ環境内のデータへのアクセスを、前記制御環境を介さず直接受け付けることを有し、
    顧客が自動スケーリングプランサービスに加入している場合、前記加入した顧客のリソースの容量のスケーリングは、前記容量を自動的にスケールアップまたはスケールダウンすることにより前記容量を管理するように構成される
    方法。
  9. 前記データインスタンスは、前記データ環境内のリレーショナルデータベースに対応する請求項8に記載のコンピュータによって実現される方法。
  10. 前記実行されるべき動作を確定するために前記第1の応答を解析することに応答して、前記実行されるべき動作についての前記情報を、ジョブキューに格納することをさらに含み、
    前記実行されるべき動作についての前記情報は、前記ワークフローを生成するために、前記ジョブキューから抽出することができる請求項8に記載のコンピュータによって実現される方法。
  11. 前記少なくとも1つのホストマネジャからの前記第1の応答が所定の期間内に受信されないとき、ステータスについてもう1つの要求を送出すること、および、
    前記少なくとも1つのホストマネジャからの前記第1の応答が、所定数の要求後に受信されないとき、前記データ環境に関して実行されるべき第2の動作を確定し、前記第2の実行されるべき動作について第2のワークフローを生成することをさらに含む請求項8に記載のコンピュータによって実現される方法。
  12. データ記憶部およびホストマシンを含むデータ環境と、前記データ環境とは別個の制御環境であって、前記データ記憶部の構成制御を行うサーバーコンピューターを含む制御環境とを有するコンピュータシステムにおいて、
    少なくとも1つのプロセッサと、
    命令を含むメモリとを備え、前記命令は、前記少なくとも1つのプロセッサによって実行されると、
    前記制御環境において、
    前記データ環境における前記データ記憶部の少なくとも1つのデータインスタンスの構成制御であって、前記少なくとも1つのデータインスタンスを作成、削除、バックアップ、リカバリー、スケーリング、複製、プロビジョニング、アップグレード、パッチ管理、フェールオーバー、または容量管理する、構成制御に関して実行されるべき動作を確定するために、前記制御環境の制御インタフェースを通して受信される要求を解析し、
    前記実行されるべき動作についてのワークフローであって、前記実行されるべき動作に関して前記データ環境で実行されるべき少なくとも1つのタスクを含む、ワークフローを生成し、
    前記ワークフローの各タスクについて、前記タスクを実行し、前記タスクの実行に関する応答を返すように動作する前記データ環境内のホストマシンに要求を送出し、
    前記ワークフローの最終タスクが終了したことを示す前記応答が前記ホストマシンから受信されると、前記実行されるべき動作が終了したという通知を、前記制御インタフェースを通して送出させ、
    前記データ環境において、
    前記データ環境のデータインタフェースは、前記実行されるべき動作が終了したという通知が、前記制御インタフェースを通して送出された後には、前記データ環境内のデータへのアクセスを、前記制御環境を介さず直接受け付け、
    顧客が自動スケーリングプランサービスに加入している場合、前記加入した顧客のリソースの容量のスケーリングは、前記容量を自動的にスケールアップまたはスケールダウンすることにより前記容量を管理するように構成される
    システム。
  13. 前記要求を受信するように動作する前記制御環境内の外向きAPIをさらに含み、前記要求は、ウェブサービスコールである、請求項12に記載のシステム。
  14. 前記データインタフェースは、指定されたデータインスタンスについてのDNSアドレスを使用してアクセス可能なAPIである請求項12に記載のシステム。
  15. 前記要求を受信し、クレデンシャルに基づいてユーザを認証すること、前記ユーザを認可すること、ユーザ要求を抑えること、ユーザ入力を確認すること、または、前記ユーザ要求およびユーザ応答をマーシャリングするまたはアンマーシャリングすること、からなる群から選択される少なくとも1つのタスクを実行するように動作する前記制御環境内のウェブサービス層をさらに含む請求項12に記載のシステム。
JP2014204242A 2009-03-31 2014-10-02 関係データ管理のための制御サービス Active JP5833725B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/415,958 2009-03-31
US12/415,958 US8713060B2 (en) 2009-03-31 2009-03-31 Control service for relational data management

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012503674A Division JP5628894B2 (ja) 2009-03-31 2010-03-31 関係データ管理のための制御サービス

Publications (2)

Publication Number Publication Date
JP2015026390A JP2015026390A (ja) 2015-02-05
JP5833725B2 true JP5833725B2 (ja) 2015-12-16

Family

ID=42785929

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012503674A Active JP5628894B2 (ja) 2009-03-31 2010-03-31 関係データ管理のための制御サービス
JP2014204242A Active JP5833725B2 (ja) 2009-03-31 2014-10-02 関係データ管理のための制御サービス

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012503674A Active JP5628894B2 (ja) 2009-03-31 2010-03-31 関係データ管理のための制御サービス

Country Status (8)

Country Link
US (6) US8713060B2 (ja)
EP (2) EP2414930A4 (ja)
JP (2) JP5628894B2 (ja)
CN (2) CN102369509B (ja)
BR (1) BRPI1014734B1 (ja)
CA (2) CA2755913C (ja)
SG (1) SG174948A1 (ja)
WO (1) WO2010114923A1 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US8060792B2 (en) 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
EP2433243A4 (en) * 2009-05-20 2013-12-18 Redcliff Investments L L C SECURE WORKFLOW AND DATA MANAGEMENT APPLICATION
US8296434B1 (en) * 2009-05-28 2012-10-23 Amazon Technologies, Inc. Providing dynamically scaling computing load balancing
US8352941B1 (en) 2009-06-29 2013-01-08 Emc Corporation Scalable and secure high-level storage access for cloud computing platforms
US9146784B2 (en) * 2009-08-03 2015-09-29 Oracle International Corporation Invocation of web services based on a policy file including processes of a workflow associated with user roles
US9135283B2 (en) * 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8335765B2 (en) * 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US9589240B2 (en) * 2010-05-14 2017-03-07 Oracle International Corporation System and method for flexible chaining of distinct workflow task instances in a business process execution language workflow
US9852382B2 (en) 2010-05-14 2017-12-26 Oracle International Corporation Dynamic human workflow task assignment using business rules
US8819055B2 (en) 2010-05-14 2014-08-26 Oracle International Corporation System and method for logical people groups
US9741006B2 (en) 2010-05-14 2017-08-22 Oracle International Corporation System and method for providing complex access control in workflows
EP2583211B1 (en) 2010-06-15 2020-04-15 Oracle International Corporation Virtual computing infrastructure
US10715457B2 (en) 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
US20110320530A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Method for processing a unit of work
US9477697B2 (en) * 2010-06-30 2016-10-25 Red Hat, Inc. Generating database schemas for multiple types of databases
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US20120102506A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Web service patterns for globally distributed service fabric
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US8954978B1 (en) 2010-12-29 2015-02-10 Amazon Technologies, Inc. Reputation-based mediation of virtual control planes
US8667399B1 (en) * 2010-12-29 2014-03-04 Amazon Technologies, Inc. Cost tracking for virtual control planes
US8667495B1 (en) 2010-12-29 2014-03-04 Amazon Technologies, Inc. Virtual resource provider with virtual control planes
US9083534B2 (en) 2011-01-07 2015-07-14 Mastercard International Incorporated Method and system for propagating a client identity
US8671385B2 (en) 2011-01-07 2014-03-11 Mastercard International Incorporated Methods and systems for throttling calls to a service application through an open API
US9032204B2 (en) 2011-01-07 2015-05-12 Mastercard International Incorporated Methods and systems for providing a signed digital certificate in real time
US8677308B2 (en) 2011-01-07 2014-03-18 Mastercard International Incorporated Method and system for generating an API request message
US8707276B2 (en) 2011-01-07 2014-04-22 Mastercard International Incorporated Method and system for managing programmed applications in an open API environment
EP3760275A1 (en) 2011-09-09 2021-01-06 ICU Medical, Inc. Medical connectors with fluid-resistant mating interfaces
US8918501B2 (en) 2011-11-10 2014-12-23 Microsoft Corporation Pattern-based computational health and configuration monitoring
KR101844512B1 (ko) * 2011-11-18 2018-05-21 삼성전자주식회사 어플리케이션 이용 방법, 그를 이용한 게이트웨이, 그를 이용한 단말기, 및 그를 이용한 통신 시스템
JP6460798B2 (ja) 2012-02-10 2019-01-30 オラクル・インターナショナル・コーポレイション クラウドコンピューティングサービスフレームワーク
US9020883B2 (en) 2012-02-22 2015-04-28 Oracle International Corporation System and method to provide BPEL support for correlation aggregation
JP2013205604A (ja) * 2012-03-28 2013-10-07 Toshiba Corp 通信装置および鍵管理方法
US9122711B1 (en) * 2012-05-24 2015-09-01 Symantec Corporation Simplified system backup protection and recovery
US9667470B2 (en) 2012-09-07 2017-05-30 Oracle International Corporation Failure handling in the execution flow of provisioning operations in a cloud environment
US9253113B2 (en) 2012-09-07 2016-02-02 Oracle International Corporation Customizable model for throttling and prioritizing orders in a cloud environment
EP2893685B1 (en) * 2012-09-07 2017-07-26 Oracle International Corporation Infrastructure for providing cloud services
US8972725B2 (en) 2012-09-07 2015-03-03 Oracle International Corporation Security infrastructure for cloud services
US10148530B2 (en) 2012-09-07 2018-12-04 Oracle International Corporation Rule based subscription cloning
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US10521746B2 (en) 2012-09-07 2019-12-31 Oracle International Corporation Recovery workflow for processing subscription orders in a computing infrastructure system
CN103780647A (zh) * 2012-10-23 2014-05-07 苏州联讯达软件有限公司 一种触摸屏任务接续方法及系统
US10055407B2 (en) 2012-11-20 2018-08-21 International Business Machines Corporation Maintaining access control lists in non-identity-preserving replicated data repositories
US9002997B2 (en) 2013-01-22 2015-04-07 Amazon Technologies, Inc. Instance host configuration
AU2014209611B2 (en) * 2013-01-22 2017-03-16 Amazon Technologies, Inc. Instance host configuration
US10706025B2 (en) * 2013-02-28 2020-07-07 Amazon Technologies, Inc. Database system providing single-tenant and multi-tenant environments
US9268967B2 (en) * 2013-03-13 2016-02-23 Lawrence Livermore National Security, Llc Internet protocol network mapper
US10037197B2 (en) 2013-03-15 2018-07-31 Oracle International Corporation Flexible microinstruction system for constructing microprograms which execute tasks, gateways, and events of BPMN models
US10244080B2 (en) * 2013-03-15 2019-03-26 VCE IP Holding Company LLC Accessing multiple converged IT infrastructures
US9128902B2 (en) * 2013-04-25 2015-09-08 Netapp, Inc. Systems and methods for managing disaster recovery in a storage system
US9262505B2 (en) * 2013-05-17 2016-02-16 Amazon Technologies, Inc. Input-output prioritization for database workload
US9678769B1 (en) * 2013-06-12 2017-06-13 Amazon Technologies, Inc. Offline volume modifications
US9619545B2 (en) 2013-06-28 2017-04-11 Oracle International Corporation Naïve, client-side sharding with online addition of shards
EP3017405A1 (en) * 2013-07-03 2016-05-11 Swiss Reinsurance Company Ltd. System and method for state-transition-controlled processing of objects
US20150066560A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for managing multi-vendor infrastructure for software defined clouds through abstracted control planes
US9244615B2 (en) 2013-09-13 2016-01-26 Microsoft Technology Licensing, Llc Systems and methods based on policy criteria for controlling the flow of data storage input/output requests between endpoints
US9910881B1 (en) * 2013-12-12 2018-03-06 Amazon Technologies, Inc. Maintaining versions of control plane data for a network-based service control plane
US9973569B2 (en) * 2014-02-21 2018-05-15 Cellos Software Ltd. System, method and computing apparatus to manage process in cloud infrastructure
US9838260B1 (en) 2014-03-25 2017-12-05 Amazon Technologies, Inc. Event-based data path detection
US10467423B1 (en) * 2014-03-26 2019-11-05 Amazon Technologies, Inc. Static analysis-based tracking of data in access-controlled systems
US10846257B2 (en) * 2014-04-01 2020-11-24 Endance Technology Limited Intelligent load balancing and high speed intelligent network recorders
US10164901B2 (en) 2014-08-22 2018-12-25 Oracle International Corporation Intelligent data center selection
US10152211B2 (en) * 2014-11-11 2018-12-11 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
US10728272B1 (en) 2014-12-17 2020-07-28 Amazon Technologies, Inc. Risk scoring in a connected graph
CN104881284A (zh) * 2015-05-22 2015-09-02 国云科技股份有限公司 一种高效的日志操作方法
US9860149B2 (en) * 2015-08-11 2018-01-02 Citrix Systems, Inc. Continuous monitoring of data servers using a shadowing proxy
US10142174B2 (en) 2015-08-25 2018-11-27 Oracle International Corporation Service deployment infrastructure request provisioning
CN105335253B (zh) * 2015-10-28 2019-01-15 北京百度网讯科技有限公司 创建虚拟机系统盘快照的方法和装置
US10223234B2 (en) 2016-08-15 2019-03-05 Microsoft Technology Licensing, Llc Monitoring a web application using an outside-in strategy
US10437810B2 (en) * 2016-09-30 2019-10-08 Microsoft Technology Licensing, Llc Systems and methods for maintaining cardinality schema to prevent corruption in databases indifferent to cardinality
KR102234427B1 (ko) * 2016-11-28 2021-04-01 아마존 테크놀로지스, 인크. 국소화된 디바이스 조정기에서의 요구 시 코드 실행
US10810102B2 (en) * 2016-11-28 2020-10-20 Sap Se Database monitoring by data virtualization
CN106803134B (zh) * 2017-01-06 2020-10-09 杭州电子科技大学 基于协作相容性的工作流分配优化方法及其系统
CN107168664A (zh) * 2017-03-31 2017-09-15 捷开通讯(深圳)有限公司 终端及其屏幕的分屏显示方法、存储装置
US10511574B2 (en) * 2017-03-31 2019-12-17 Hyland Software, Inc. Methods and apparatuses for utilizing a gateway integration server to enhance application security
US10637800B2 (en) 2017-06-30 2020-04-28 Nicira, Inc Replacement of logical network addresses with physical network addresses
US10681000B2 (en) 2017-06-30 2020-06-09 Nicira, Inc. Assignment of unique physical network addresses for logical network addresses
US10652025B2 (en) 2017-07-10 2020-05-12 Micron Technology, Inc. Secure snapshot management for data storage devices
US11068372B2 (en) 2018-02-19 2021-07-20 Red Hat, Inc. Linking computing metrics data and computing inventory data
US10437634B1 (en) * 2018-04-16 2019-10-08 Microsoft Technology Licensing Llc Independently threading API calls to service a request
US10846204B2 (en) * 2018-04-20 2020-11-24 Microsoft Technology Licensing, Llc Remediation of design time and runtime workflow errors
US11184404B1 (en) * 2018-09-07 2021-11-23 Salt Stack, Inc. Performing idempotent operations to scan and remediate configuration settings of a device
CN109460223B (zh) * 2018-11-14 2022-11-25 沈阳林科信息技术有限公司 一种api网关管理系统及其方法
USD886143S1 (en) 2018-12-14 2020-06-02 Nutanix, Inc. Display screen or portion thereof with a user interface for database time-machine
US10817157B2 (en) * 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US10812619B2 (en) * 2019-02-19 2020-10-20 Ingram Micro Inc. System and method for bulk user service assignment using CSV
CN110287211B (zh) * 2019-07-01 2022-11-04 四川新网银行股份有限公司 基于大数据平台的动态sql语句的执行方法
US11086742B2 (en) * 2019-08-28 2021-08-10 The Toronto-Dominion Bank Task based service management platform
US11922522B2 (en) * 2019-09-11 2024-03-05 Schlumberger Technology Corporation Oilfield data loading services request handling and completion system
EP3805965B1 (de) * 2019-10-08 2023-06-14 Camelot ITLAB GmbH Verfahren zum validieren von vertrauenswürdigen daten in einem computersystem
CN110728455B (zh) * 2019-10-17 2021-07-30 京东数字科技控股有限公司 业务处理方法、业务处理装置、存储介质与电子设备
US11258876B2 (en) * 2020-04-17 2022-02-22 Microsoft Technology Licensing, Llc Distributed flow processing and flow cache
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US11677810B2 (en) * 2021-07-23 2023-06-13 International Business Machines Corporation Configuration tool for deploying an application on a server
US20230066835A1 (en) * 2021-08-27 2023-03-02 Keysight Technologies, Inc. Methods, systems and computer readable media for improving remote direct memory access performance
US11803368B2 (en) 2021-10-01 2023-10-31 Nutanix, Inc. Network learning to control delivery of updates

Family Cites Families (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263165A (en) 1990-02-15 1993-11-16 International Business Machines Corporation System for providing user access control within a distributed data processing system having multiple resource managers
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5845067A (en) * 1996-09-09 1998-12-01 Porter; Jack Edward Method and apparatus for document management utilizing a messaging system
JPH10312327A (ja) 1997-05-13 1998-11-24 Oki Electric Ind Co Ltd ミラーリング監視方式
US6018746A (en) * 1997-12-23 2000-01-25 Unisys Corporation System and method for managing recovery information in a transaction processing system
US6560639B1 (en) * 1998-02-13 2003-05-06 3565 Acquisition Corporation System for web content management based on server-side application
JP3850134B2 (ja) 1998-03-31 2006-11-29 川崎マイクロエレクトロニクス株式会社 データ検索装置
US6205465B1 (en) * 1998-07-22 2001-03-20 Cisco Technology, Inc. Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information
US6295558B1 (en) 1998-08-21 2001-09-25 Hewlett-Packard Company Automatic status polling failover or devices in a distributed network management hierarchy
US6158010A (en) 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
US6282570B1 (en) * 1998-12-07 2001-08-28 International Business Machines Corporation Monitoring a large parallel database through dynamic grouping and sequential sampling
US20070162420A1 (en) * 2004-01-21 2007-07-12 Oracle International Corporation Techniques for automatically discovering a database device on a network
EP1155602B1 (de) 1999-02-18 2003-08-06 Siemens Aktiengesellschaft Elektrisches verbindungsverfahren und verbindungsstelle
US7315826B1 (en) 1999-05-27 2008-01-01 Accenture, Llp Comparatively analyzing vendors of components required for a web-based architecture
US6611867B1 (en) 1999-08-31 2003-08-26 Accenture Llp System, method and article of manufacture for implementing a hybrid network
US6442707B1 (en) 1999-10-29 2002-08-27 Advanced Micro Devices, Inc. Alternate fault handler
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US6694362B1 (en) * 2000-01-03 2004-02-17 Micromuse Inc. Method and system for network event impact analysis and correlation with network administrators, management policies and procedures
US6542907B1 (en) 2000-03-31 2003-04-01 International Business Machines Corporation Method and apparatus for decentralized, invertible generation of bounded-length globally unique replica identifiers
AU2001259403A1 (en) 2000-05-02 2001-11-12 Sun Microsystem, Inc. Method and system for providing cluster replicated checkpoint services
US6842769B1 (en) * 2000-05-05 2005-01-11 Interland, Inc. Automatically configured network server
US6950871B1 (en) * 2000-06-29 2005-09-27 Hitachi, Ltd. Computer system having a storage area network and method of handling data in the computer system
US20020019844A1 (en) 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
US7536686B2 (en) * 2000-09-08 2009-05-19 Oracle International Corporation Techniques for automatically installing and configuring database applications
US7124289B1 (en) * 2000-10-31 2006-10-17 Opsware Inc. Automated provisioning framework for internet site servers
US7340446B2 (en) * 2000-12-11 2008-03-04 Microsoft Corporation Method and system for query-based management of multiple network resources
US6985955B2 (en) 2001-01-29 2006-01-10 International Business Machines Corporation System and method for provisioning resources to users based on roles, organizational information, attributes and third-party information or authorizations
US7197561B1 (en) 2001-03-28 2007-03-27 Shoregroup, Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US20030005091A1 (en) 2001-06-29 2003-01-02 International Business Machines Corporation Method and apparatus for improved monitoring in a distributed computing system
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7024517B1 (en) 2001-09-27 2006-04-04 Emc Corporation System and method for configuring data storage in accordance with workload requirements
CN1158799C (zh) * 2001-09-29 2004-07-21 华为技术有限公司 一种为移动终端用户提供扩展存储空间的方法
JP3879471B2 (ja) * 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7133907B2 (en) * 2001-10-18 2006-11-07 Sun Microsystems, Inc. Method, system, and program for configuring system resources
US7418484B2 (en) * 2001-11-30 2008-08-26 Oracle International Corporation System and method for actively managing an enterprise of configurable components
US7360121B2 (en) 2002-02-22 2008-04-15 Bea Systems, Inc. System for monitoring a subsystem health
CN1209714C (zh) * 2002-03-12 2005-07-06 中国科学院计算技术研究所 基于网络存储和可扩展体系结构的服务器系统及方法
US6947981B2 (en) * 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
US7103884B2 (en) * 2002-03-27 2006-09-05 Lucent Technologies Inc. Method for maintaining consistency and performing recovery in a replicated data storage system
US6988139B1 (en) * 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
US7373399B2 (en) * 2002-05-09 2008-05-13 Hewlett-Packard Development Company, L.P. System and method for an enterprise-to-enterprise compare within a utility data center (UDC)
US20030212898A1 (en) * 2002-05-09 2003-11-13 Doug Steele System and method for remotely monitoring and deploying virtual support services across multiple virtual lans (VLANS) within a data center
JP2003330781A (ja) 2002-05-17 2003-11-21 Hitachi Ltd データ多重保障方法
US6981135B1 (en) * 2002-08-02 2005-12-27 Hewlett-Packard Development Company, L.P. System and method of configuring system components
CA2405673C (en) * 2002-09-30 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Provisioning web services
WO2004047078A2 (en) * 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
US7299244B2 (en) * 2002-12-10 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for dynamic sequencing of a requirements-based workflow
JP4322511B2 (ja) * 2003-01-27 2009-09-02 株式会社日立製作所 情報処理システムの制御方法、及び情報処理システム
US7502329B2 (en) 2003-01-27 2009-03-10 Alcatel-Lucent Usa Inc. Distributed network monitoring with bounded link utilization in IP networks
US20040163008A1 (en) 2003-02-19 2004-08-19 Kim Roy Moon Remote system management and operation services in a computer network
US7583607B2 (en) * 2003-03-06 2009-09-01 Hewlett-Packard Development Company, L.P. Method and apparatus for designating and implementing support level agreements
US20040225659A1 (en) 2003-05-09 2004-11-11 O'brien John Storage foundry
US7415484B1 (en) 2003-05-09 2008-08-19 Vignette Corporation Method and system for modeling of system content for businesses
US7912820B2 (en) * 2003-06-06 2011-03-22 Microsoft Corporation Automatic task generator method and system
CA2528996C (en) * 2003-06-12 2016-10-11 Reuters America Inc. Business process automation
US8095511B2 (en) 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7389333B2 (en) 2003-07-02 2008-06-17 Fujitsu Limited Provisioning a network element using custom defaults
US7701858B2 (en) 2003-07-17 2010-04-20 Sensicast Systems Method and apparatus for wireless communication in a mesh network
US7873684B2 (en) * 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US20100005531A1 (en) 2004-12-23 2010-01-07 Kenneth Largman Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US7383463B2 (en) * 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
US7631076B2 (en) 2004-03-16 2009-12-08 International Business Machines Corporation Apparatus, system, and method for adaptive polling of monitored systems
JP2005267056A (ja) 2004-03-17 2005-09-29 Nec Corp ソフトウェアミラーリングディスク障害監視・復旧システム、その障害監視・復旧方法及びプログラム
US7383291B2 (en) 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
US7478263B1 (en) 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster
US7624133B1 (en) * 2004-06-09 2009-11-24 Symantec Operating Corporation Automatic detection of backup recovery sets
US7313721B2 (en) 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
JP4488807B2 (ja) 2004-06-25 2010-06-23 株式会社日立製作所 ボリューム提供システム及び方法
JP2006032199A (ja) 2004-07-20 2006-02-02 Yazaki Corp 栓および栓付き防水コネクタ
US7058731B2 (en) 2004-08-03 2006-06-06 Hitachi, Ltd. Failover and data migration using data replication
US7526686B2 (en) 2004-08-04 2009-04-28 International Business Machines Corporation Apparatus, system, and method for active data verification in a storage system
US8046440B2 (en) * 2004-08-19 2011-10-25 International Business Machines Corporation Managing resources through user-facing web services aggregated in portals
US7650356B2 (en) 2004-08-24 2010-01-19 Microsoft Corporation Generating an optimized restore plan
GB0419599D0 (en) 2004-09-03 2004-10-06 Ibm Controlling preemptive work balancing in data storage
US7567974B2 (en) * 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8010337B2 (en) 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
JP4507249B2 (ja) 2004-10-19 2010-07-21 株式会社日立製作所 記憶デバイスの更新を制御するシステム及び方法
US7945469B2 (en) * 2004-11-16 2011-05-17 Amazon Technologies, Inc. Providing an electronic marketplace to facilitate human performance of programmatically submitted tasks
US20060106774A1 (en) * 2004-11-16 2006-05-18 Cohen Peter D Using qualifications of users to facilitate user performance of tasks
US7933247B2 (en) 2004-11-18 2011-04-26 Sanjay M. Gidwani Real-time scalable wireless switching network
US7680771B2 (en) * 2004-12-20 2010-03-16 International Business Machines Corporation Apparatus, system, and method for database provisioning
US7676753B2 (en) 2005-01-07 2010-03-09 At&T Intellectual Property I, L.P. Methods, systems, devices and computer program products for collecting and sharing selected personal data
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US8200700B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US7657780B2 (en) * 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
WO2007002398A2 (en) 2005-06-24 2007-01-04 Syncsort Incorporated System and method for virtualizing backup images
US20070022129A1 (en) * 2005-07-25 2007-01-25 Parascale, Inc. Rule driven automation of file placement, replication, and migration
US20070234028A1 (en) 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
US8863137B2 (en) 2005-09-23 2014-10-14 International Business Machines Corporation Systems and methods for automated provisioning of managed computing resources
US7933987B2 (en) 2005-09-30 2011-04-26 Lockheed Martin Corporation Application of virtual servers to high availability and disaster recovery solutions
US7801932B2 (en) * 2005-10-11 2010-09-21 Oracle International Corporation Undo hints to speed up segment extension and tuning of undo retention
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US20070156872A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
JP4839091B2 (ja) 2006-01-27 2011-12-14 株式会社日立製作所 データベース回復方法及び計算機システム
EP2002334A1 (en) 2006-03-31 2008-12-17 British Telecommunications Public Limited Company Xml-based transfer and a local storage of java objects
JP2007279890A (ja) 2006-04-04 2007-10-25 Hitachi Ltd バックアップシステム及びバックアップ方法
US20070244996A1 (en) * 2006-04-14 2007-10-18 Sonasoft Corp., A California Corporation Web enabled exchange server standby solution using mailbox level replication
JP4939102B2 (ja) 2006-04-21 2012-05-23 株式会社日立製作所 ネットワークブート計算機システムの高信頼化方法
US7613742B2 (en) * 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
US20070260693A1 (en) 2006-05-05 2007-11-08 International Business Machines Corporation Method and apparatus for utilizing portable e-mail addresses
US20070271275A1 (en) * 2006-05-05 2007-11-22 Fassette Anthony M Database management function provider systems
US8381306B2 (en) 2006-05-30 2013-02-19 Microsoft Corporation Translating role-based access control policy to resource authorization policy
US20070299828A1 (en) * 2006-06-05 2007-12-27 Digital Mountain, Inc. Method and Apparatus for Processing Heterogeneous Data
US20070288526A1 (en) * 2006-06-08 2007-12-13 Emc Corporation Method and apparatus for processing a database replica
EP2035972A4 (en) 2006-06-12 2011-06-15 Zalag Corp METHODS AND APPARATUS FOR SEARCHING CONTENT
US7908389B2 (en) 2006-06-20 2011-03-15 Patentvc Ltd. Methods and systems for retrieving fragments from peer clients and servers
US20080010513A1 (en) 2006-06-27 2008-01-10 International Business Machines Corporation Controlling computer storage systems
JP5103807B2 (ja) 2006-06-30 2012-12-19 富士通株式会社 制御プログラム、制御方法、情報処理装置及び情報処理システム
US7822594B2 (en) * 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US20080052327A1 (en) 2006-08-28 2008-02-28 International Business Machines Corporation Secondary Backup Replication Technique for Clusters
US7761538B2 (en) 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
US8156082B2 (en) * 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US9015703B2 (en) * 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8949826B2 (en) * 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
CN102193899B (zh) * 2006-11-06 2017-03-01 度量控股有限责任公司 用于管理跨越多个环境的数据的系统和方法
US7917469B2 (en) 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US7949847B2 (en) 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
JP4314267B2 (ja) * 2006-11-30 2009-08-12 キヤノン株式会社 アクセス制御装置およびアクセス制御方法及び印刷システム
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US8312323B2 (en) * 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
US8880480B2 (en) 2007-01-03 2014-11-04 Oracle International Corporation Method and apparatus for data rollback
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
JP4338739B2 (ja) * 2007-02-06 2009-10-07 シャープ株式会社 排紙トレイ装置
US20080195622A1 (en) * 2007-02-12 2008-08-14 Personeta Ltd. Service provisioning system
US8150904B2 (en) 2007-02-28 2012-04-03 Sap Ag Distribution of data and task instances in grid environments
US8171485B2 (en) * 2007-03-26 2012-05-01 Credit Suisse Securities (Europe) Limited Method and system for managing virtual and real machines
US8219848B2 (en) 2007-04-10 2012-07-10 International Business Machines Corporation Mechanism for recovery from site failure in a stream processing system
US20080263388A1 (en) * 2007-04-18 2008-10-23 James Robert Allen Method and apparatus for managing customer topologies
US8099727B2 (en) 2007-06-01 2012-01-17 Netapp, Inc. System and method for providing uninterrupted operation of a replication system during a software upgrade
US20090019535A1 (en) 2007-07-10 2009-01-15 Ragingwire Enterprise Solutions, Inc. Method and remote system for creating a customized server infrastructure in real time
US20090025004A1 (en) * 2007-07-16 2009-01-22 Microsoft Corporation Scheduling by Growing and Shrinking Resource Allocation
DE102007035584B4 (de) 2007-07-30 2009-12-17 Texas Instruments Deutschland Gmbh Watchdog-Vorrichtung zur Überwachung eines elektronischen Systems
US7739243B2 (en) 2007-08-01 2010-06-15 International Business Machines Corporation System and method for dynamically configuring a multiplatform computing environment
US20090063807A1 (en) * 2007-08-29 2009-03-05 International Business Machines Corporation Data redistribution in shared nothing architecture
US8892719B2 (en) 2007-08-30 2014-11-18 Alpha Technical Corporation Method and apparatus for monitoring network servers
US8549144B2 (en) * 2007-08-31 2013-10-01 International Business Machines Corporation Common configuration framework for applications to configure database objects and resources
US10997531B2 (en) * 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
JP2009070143A (ja) * 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
WO2009042919A2 (en) 2007-09-26 2009-04-02 Nicira Networks Network operating system for managing and securing networks
US20090089417A1 (en) 2007-09-28 2009-04-02 David Lee Giffin Dialogue analyzer configured to identify predatory behavior
JP5574598B2 (ja) 2007-12-03 2014-08-20 株式会社半導体エネルギー研究所 キノキサリン誘導体、およびキノキサリン誘導体を用いた発光素子、発光装置、電子機器
US8423739B2 (en) * 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US20090240880A1 (en) 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
JP5075727B2 (ja) * 2008-04-25 2012-11-21 株式会社日立製作所 ストリーム配信システム及び障害検知方法
US8041679B1 (en) * 2008-06-04 2011-10-18 Symantec Operating Corporation Synthetic differential backups creation for a database using binary log conversion
US8121981B2 (en) 2008-06-19 2012-02-21 Microsoft Corporation Database snapshot management
US8904003B2 (en) 2008-06-30 2014-12-02 Oracle America, Inc. Method and system for delegated job control across a network
US8019732B2 (en) * 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8219653B1 (en) 2008-09-23 2012-07-10 Gogrid, LLC System and method for adapting a system configuration of a first computer system for hosting on a second computer system
US8020037B1 (en) * 2008-09-23 2011-09-13 Netapp, Inc. Creation of a test bed for testing failover and failback operations
US8458331B2 (en) 2008-10-08 2013-06-04 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over HTTP
US8392915B2 (en) 2008-11-19 2013-03-05 Oracle International Corporation Efficient volume manager hot swapping
US7941697B2 (en) 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
US8170997B2 (en) 2009-01-29 2012-05-01 Microsoft Corporation Unbundled storage transaction services
US8775544B2 (en) 2009-02-04 2014-07-08 Citrix Systems, Inc. Methods and systems for dynamically switching between communications protocols
US9208188B2 (en) 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US9705888B2 (en) * 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US9207984B2 (en) * 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US8332365B2 (en) * 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8060792B2 (en) * 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US8601534B2 (en) 2009-07-02 2013-12-03 Samsung Electronics Co., Ltd. Securely using service providers in elastic computing systems and environments
US9135283B2 (en) * 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8150808B2 (en) * 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8074107B2 (en) * 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances

Also Published As

Publication number Publication date
US10127149B2 (en) 2018-11-13
US11379332B2 (en) 2022-07-05
BRPI1014734A2 (pt) 2016-04-12
US20220413979A1 (en) 2022-12-29
EP2414930A1 (en) 2012-02-08
US10761975B2 (en) 2020-09-01
US20190079857A1 (en) 2019-03-14
US20130066923A1 (en) 2013-03-14
US8713060B2 (en) 2014-04-29
CA2993839A1 (en) 2010-10-07
US20140229698A1 (en) 2014-08-14
CN102369509B (zh) 2015-11-25
CA2755913C (en) 2018-03-20
CA2755913A1 (en) 2010-10-07
EP2414930A4 (en) 2014-09-03
CN105139148B (zh) 2019-04-02
JP5628894B2 (ja) 2014-11-19
JP2012522325A (ja) 2012-09-20
US8706764B2 (en) 2014-04-22
SG174948A1 (en) 2011-11-28
CN105139148A (zh) 2015-12-09
WO2010114923A1 (en) 2010-10-07
EP3457273A1 (en) 2019-03-20
BRPI1014734B1 (pt) 2020-10-20
CA2993839C (en) 2020-06-02
JP2015026390A (ja) 2015-02-05
US20210089441A1 (en) 2021-03-25
CN102369509A (zh) 2012-03-07
US20100251242A1 (en) 2010-09-30
WO2010114923A9 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
JP5833725B2 (ja) 関係データ管理のための制御サービス
US11770381B2 (en) Managing security groups for data instances
US8307003B1 (en) Self-service control environment
US10977226B2 (en) Self-service configuration for data environment
EP2494438B1 (en) Provisioning and managing replicated data instances
US8612396B1 (en) Cloning and recovery of data volumes
Sabharwal et al. Administering CloudSQL

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151029

R150 Certificate of patent or registration of utility model

Ref document number: 5833725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250