JP5961173B2 - ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション - Google Patents

ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション Download PDF

Info

Publication number
JP5961173B2
JP5961173B2 JP2013536631A JP2013536631A JP5961173B2 JP 5961173 B2 JP5961173 B2 JP 5961173B2 JP 2013536631 A JP2013536631 A JP 2013536631A JP 2013536631 A JP2013536631 A JP 2013536631A JP 5961173 B2 JP5961173 B2 JP 5961173B2
Authority
JP
Japan
Prior art keywords
application
virtualization layer
state change
storage
stateful application
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.)
Expired - Fee Related
Application number
JP2013536631A
Other languages
English (en)
Other versions
JP2013541113A5 (ja
JP2013541113A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013541113A publication Critical patent/JP2013541113A/ja
Publication of JP2013541113A5 publication Critical patent/JP2013541113A5/ja
Application granted granted Critical
Publication of JP5961173B2 publication Critical patent/JP5961173B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Description

本発明はクラウドコンピューティング環境に関し、より詳細にはステートレスクラウドコンピューティングプロセス内の仮想化レイヤを使用することができ、プロセス内で実行するステートフルアプリケーション(stateful application)によって生成された状態情報を取得し、格納し、そして取り出すクラウドコンピューティング環境に関する。
クラウドコンピューティングは、プロセスがステートレス(stateless)に動作を行うコンピューティング環境である。典型的なクラウドコンピューティング環境では、ユーザのプロセスが、一つ以上のデータセンタ内のハードウェアプラットフォームのファブリック(fabric)上で動作することができ、そして、データセンタのオペレータは、ユーザのプロセスを、一つのサーバまたは一つのハードウェアプラットフォームから別のサーバまたはハードウェアプラットフォームへと移すことができる。データセンタオペレータは、このようなプロセスの移動を異なる時間で実行することができるので、クラウドコンピューティング環境で実行しているプロセスは、当該プロセス内に状態情報を格納することができない。
クラウドコンピューティングのプロセスとは対象的に、多くの従来型のアプリケーションは、オペレーティングシステムのレジストリ設定の形式で、設定ファイルの形式で、そしてその他変更形式でプロセスの状態情報を格納することができる。時間が経過してもアプリケーションが期待されたように実行するために、当該アプリケーションの状態情報を存続することができ、都度またはアプリケーションが再起動されたときに、アプリケーションの状態情報を呼び戻すことができる。
クラウドコンピューティング環境は、ステートレスクラウドコンピューティングプロセス内の仮想化レイヤを使用することができ、プロセス内で実行するステートフルアプリケーション(stateful application)によって生成された状態情報を捕捉し、格納し、そして取り出す。仮想化レイヤは、様々なステートストレージシステムを監視することができ、ステートフル項目への変更を特定し、そして当該ステートフル項目をステートストレージ機構に格納する。仮想化レイヤは、ステートストレージ機構に格納されたステートフル項目へのコールを受信およびリダイレクトすることができる。クラウドコンピューティングマネージャは、ステートレスクラウドコンピューティングプロセスを開始および停止することができ、そして状態情報を復旧し、アプリケーションの実行を再開することができる。
本発明の概要は、後述の発明の詳細な説明においてより詳細に説明される技術思想を、簡潔な態様での抜粋を紹介するために示された。本発明の概要は、特許請求の範囲に記載された発明の技術的範囲の中核となる特徴や本質的な特徴を特定することを意図したものではなく、発明の概要は特許請求の範囲に記載された発明の技術的範囲を制限するために使用されるものでもない。
本発明の実施形態における、ステートフルアプリケーションのためのクラウドコンピューティング環境を示すブロック構成図である。 本発明の実施形態における、アプリケーションパッケージを作成する方法を示すフローチャートである。 本発明の実施形態における、ステートレスプロセスでのステートフルアプリケーションを開始または再開する方法を示すフローチャートである。
クラウドコンピューティング環境は、アプリケーションへの状態変更を捕捉することおよびアプリケーションが停止または再開するときに状態変更が存続するために、仮想化レイヤを使用することができる。仮想化レイヤは、状態情報を格納するためにアプリケーションによって使用される様々なストレージ機構を監視することができ、そして、仮想化レイヤは、状態情報のために独立したストレージ機構を作成し管理することができる。仮想化レイヤは、ストレージ機構へのコールを認識することができ、独立したストレージ機構コールをリダイレクトすることができる。
アプリケーションの状態情報は、クラウドストレージシステム内に格納することができ、アプリケーションが停止および再開する間、状態情報は存続することができる。多くの実施形態では、状態情報を格納するためにバーチャルハードディスクを使用することができ、そしてこのようなバーチャルハードディスクはクラウドストレージシステムに直接格納することができる。
ある実施形態では、アプリケーションのマルチプルコピー(multiple copies)を実行することができ、各々は独立した状態情報を有することができる。アプリケーションを実行しているプロセスが停止すると、状態情報を格納することができ、プロセスが再開されると、格納された状態情報のグループから状態情報を選択することができ、プロセスを以前の状態から再開することができる。
図中の説明を通じて類似の参照番号が同一の構成要素を特定するように、本明細書においても同一の参照番号が同一の構成要素を特定する。
構成要素が「接続されている」または「連結されている」と言及される時は、構成要素が互いに直接的に接続されているかまたは連結されている場合か、若しくは構成要素の間に介在する一つ以上の別の構成要素も更に存在する可能性がある。反対に、構成要素が「直接的に接続されている」または「直接的に連結されている」と言及される場合は、介在する別の構成要素は存在しない。
発明の技術的範囲は、装置、システム、方法、及び/またはコンピュータプログラム製品として具現化することができる。従って、発明の技術的範囲の幾つかまたは全てはハードウェアにおいて及び/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、ステートマシーン、ゲートアレイ等を含む)に具現化することができる。更には、発明の技術的範囲は、コンピュータが使用可能なまたはコンピュータが読み取り可能な記憶媒体上のコンピュータプログラム製品の形式をとることができる。そして、その記憶媒体は、演算実行システムによる使用のため、または演算実行システムに関連して、コンピュータが使用可能な、またはコンピュータが読み取り可能な記憶媒体において具現化されたプログラムコードを持つ。本明細書の文脈にて、コンピュータが使用可能なまたはコンピュータが読み取り可能な媒体は、あらゆる媒体を含む。これら媒体は、演算実行システム、装置または機器による使用またはこれらに関連して、プログラムを内包し、格納し、通信し、頒布しまたは伝送することができる。
コンピュータが使用可能な、またはコンピュータが読み取り可能な媒体は、例えば、以下に限定されないが、電気的、磁気的、光学的、電磁的、赤外線を利用したもの、あるいは半導体システム、装置、機器または頒布用媒体である。例として、限定するものではないが、コンピュータが読み取り可能な媒体は、コンピュータ記憶媒体及び通信媒体を構成する。
コンピュータ記憶媒体は、揮発性及び不揮発性、取り外し可能及び取り外し不可能な媒体を含み、コンピュータが読み取り可能な命令、データ構造、プログラムモジュールまたはその他のデータのように情報の格納のためのあらゆる方法や技術で実装される。コンピュータ記憶媒体は、以下に限定はされないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術であるCD−ROM、DVDまたはその他光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他磁気ストレージ装置または所望の情報を格納するために使われ、命令実行システムによってアクセスすることができるその他あらゆる媒体が含まれる。注意するべきは、コンピュータが使用可能な、またはコンピュータが読み取り可能な媒体は、紙またはプログラムが印刷されるのに相応しいその他媒体である可能性がある。なぜならば、例えば、紙またはプログラムが印刷されるのに相応しいその他媒体から光学的読み取りを介してプログラムは電子的に読み取られる可能性があり、そしてコンパイルされ、解釈され、さもなければ好適に処理され、必要ならば、コンピュータのメモリに記憶されるからである。
通信媒体は、典型的には、コンピュータが読み取り可能な命令、データ構造、プログラムモジュールまたは搬送波や他の伝送機構のように変調されたデータ信号におけるその他のデータを具現化する。また、通信媒体は、典型的には、あらゆる情報配信媒体を含む。「変調されたデータ信号」という用語は、一つ以上の特徴的な信号セットを持つ信号または信号内の情報を符号化するような態様で変調された信号として定義される。例として、以下は限定するものではないが、通信媒体は有線ネットワーク及び直接接続のような有線媒体を含む。そして、通信媒体は音波、高周波、赤外線及びその他無線媒体のような無線媒体を含む。上記に言及されたあらゆる組み合わせは、いずれもコンピュータが読み取り可能な媒体の範囲に含まれるであろう。
発明の技術的範囲が、コンピュータが実行可能な命令の、一般的環境において具現化される時には、実施形態はプログラムモジュールを備えることができ、これらは一つ以上のシステム、コンピュータまたはその他の装置によって実行される。一般的に、プログラムモジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。そしてこれらは、特定のタスク処理または特定の抽象データ形式を実装する処理を行う。典型的に、プログラムモジュールの機能性は、様々な所望の態様で結合または配布することができる。
図1は実施形態100に係るブロック構成図であり、クラウドコンピューティング環境を示している。クラウドコンピューティング環境は、ステートレスクラウドコンピューティングプロセスを使用してステートフルアプリケーションを実行することができる環境である。実施形態100は、クラウドコンピューティング環境およびステートフルアプリケーションの実行を可能とする様々なコンポーネントの簡素化された例である。
図1は、システムの機能コンポーネントを示す。ある場合では、コンポーネントはハードウェアコンポーネント、ソフトウェアコンポーネントまたはハードウェアとソフトウェアの組み合わせとすることができる。あるコンポーネントはアプリケーションレベルのソフトウェアであり、その一方でその他のコンポーネントはオペレーティングシステムレベルのコンポーネントとすることができる。ある場合では、コンポーネント同士の接続は、二つ以上のコンポーネントが単一のハードウェアプラットフォーム上で動作している密接な接続とすることができる。その他の場合では、接続は、長距離にわたるネットワーク接続を経由することができる。各々の実施形態では、発明の詳細な説明における機能を達成するために、異なるハードウェア、ソフトウェア、および相互接続のアーキテクチャを使用することができる。
多くのアプリケーション、特に従来型のデスクトップまたはサーバアプリケーションは、ステートフル(stateful)であり得る。ステートフルという用語は、アプリケーションが動作し、およびインストール中および使用中にアプリケーションの状態情報を変更することができるということを指し示すために使用される。多くの場合では、ステートフルアプリケーションは、システムレジストリ、設定ファイル、設定データベースまたは他のストレージ機構に設定情報を格納することができる。
ステートフルアプリケーションの例では、アプリケーションによって、ユーザが所定のプロパティをカスタマイズし、またはユーザインターフェースを特定の態様に変更することができる。それらカスタマイズは、アプリケーションの状態情報を構成することができる。もう一つの実施形態では、アプリケーションを頻繁に更新することができるが、各々の更新はアプリケーションの状態情報を構成することを伴う。
あるクラウドコンピューティング環境では、当該環境で実行しているプロセスは、生成された時からステートレスである。多くのこのような実施形態では、プロセスはデータセンタ内で実行することができ、そしてプロセスはあるハードウェアプラットフォーム上の仮想マシンから別のハードウェアプラットフォーム上の仮想マシンへ移すことができる。このようなプロセスの移行中、データセンタはプロセスをあちこちに移すことができる。しかし、データセンタは、ハードウェアプラットフォーム、仮想マシン、仮想マシン内で動作するオペレーティングシステムまたはその他何れのコンポーネントのような、様々なバックエンドコンポーネントと関連付けられた何れの状態情報をも移すことはできない。
このようなアーキテクチャにより、クラウドコンピューティング環境は、基礎となるハードウェアおよびオペレーティングシステムを非常に効率的な態様で管理することができる。使用率が低い間、プロセスはハードウェアプラットフォームの小さなサブセットに統合される一方で、その他のハードウェアプラットフォームはオフとなり得る。オペレーティングシステムの新しいバージョンが利用可能となった時、または既存のオペレーティングシステムへのアップグレードまたはパッチが作成された時、プロセスを一時的に停止しまたは更新版のオペレーティングシステムと共に他のハードウェアプラットフォームへ移すことができる。その後、元のプラットフォームに戻され、更新版のオペレーティングシステムと共にプロセスを動作することができる。
多くのクラウドコンピューティングサービスは、多くの異なるコンピューティングプロセスをホストし、そして多くの異なる顧客にサービスを提供する。各々の顧客は自己のプロセスに責任を持ち得るが、クラウドコンピューティングサービスはハードウェアおよびソフトウェアサポートサービスを提供することができる。クラウドコンピューティングサービスは大規模なデータセンタでのプロセスを管理することができるが、クラウドコンピューティングサービスでは、物理的なセキュリティ、ハードウェアおよびソフトウェア基盤の専門的な管理、高速なネットワーク帯域、冗長化されたハードウェアプラットフォーム、そして稼動の保証を、他の便益の中から提供することができる。
あるクラウドコンピューティング環境は、世界中に存在する複数のデータセンタを動作させることができる。このような環境により、ユーザは異なるタイムゾーンで自己のプロセスと実行するアプリケーションを有することができ、世界中の従業員や顧客にアクセスを提供する時に、より早い接続とより少ないネットワークコストで行うことができる。
多くのクラウドコンピューティング環境はまた、クラウドストレージを提供する。クラウドストレージは、時々ブロブストレージ(blob storage)としても知られているが、データセンタで動作することができるデータストレージシステムとなり得る。多くの実施形態では、クラウドストレージは、データおよびサービスとしての実行可能コードのためにストレージを提供することができる。このようなサービスは、ハードウェアとソフトウェア基盤をデータストレージサービスと独立して管理することができ、そして、ユーザはハードウェアおよび基盤を直接触らないで済むようになる。ユーザの視点からすると、クラウドストレージシステムは高可用および高信頼な無限のサイズのストレージシステムとして見ることができる。
従来型のステートフルアプリケーションをステートレスプロセスにて動作させるために、状態情報を格納できる領域に対する全ての読み取りおよび書き込みコールを捕捉し、クラウドストレージシステムに格納され得る独立した状態情報へ当該コールをリダイレクトするために仮想化レイヤを使用することができる。
仮想化レイヤは、ステートフルプロセス内で動作することができ、アプリケーション内部の実行可能コードの読み取りおよび書き込み動作を監視することができる。ある実施形態では、仮想化レイヤを構成することができ、読み取りおよび書き込み動作の所定のサブセットを、状態が関連した動作と状態が関連していないその他の動作とに特定する。状態が関連した各々の読み取りおよび書き込み動作のために、仮想化レイヤはアプリケーション状態情報ストレージオブジェクトに当該動作をリダイレクトすることができる。
例えば、典型的なステートフルアプリケーションは、オペレーティングシステムのレジストリまたは設定ファイルへ、変更を書き込むことができる。それら書き込み動作は、仮想化レイヤによって捕捉され、そしてクラウドストレージオブジェクトに格納される、アプリケーション状態情報ストレージオブジェクトへリダイレクトすることができる。
ある実施形態では、仮想化レイヤが、アプリケーション状態情報ストレージオブジェクトを、ステートレスクラウドプロセスによってアクセス可能となるローカルのストレージオブジェクトに格納する。このような実施形態では、クラウドプロセス管理システムは、クラウドプロセスが停止される時に仮想化レイヤにコマンドを送ることができる。クラウドプロセス管理システムは、別の仮想マシンへプロセスが移される時か、さもなければメンテナンスまたはその他の理由により一時停止される時に、そのようなコマンドを発行することができる。
そのような実施形態では、仮想化レイヤは、あらゆる変更を、ローカルに格納されたアプリケーション状態情報からクラウドストレージ内のオブジェクトへと書き込むことができる。そのような実施形態は、通常動作の間のあらゆる変更に伴って定期的にクラウドストレージオブジェクトを更新することができる。その他の実施形態では、仮想化レイヤは、読み取りおよび書き込み動作を直接的にクラウドストレージオブジェクトへリダイレクトすることができる。
読み取りおよび書き込み動作がローカルに格納され、次いでクラウドストレージオブジェクトに対してコピーされる実施形態は、アプリケーション状態情報への高頻度のアクセスを実行するステートフルアプリケーションにとって、有益であり得る。このようなアプリケーションは、アプリケーション状態情報がクラウドストレージオブジェクトに対してネットワーク接続を経由して格納される時は、より低速で動作することができる。アプリケーションが、アプリケーション状態情報に低頻度でアクセスすることができるその他の実施形態は、クラウドストレージオブジェクトに対して直接的に読み取りおよび書き込みを行うことが、より好適である。
ある実施形態では、アプリケーションは、パッケージの形式でロードおよび格納することができる。パッケージは、アプリケーションの様々なコンポーネントの全てを含むことができ、全ての実行可能コード、実行可能なライブラリ、そしてアプリケーション状態情報を含む。パッケージは、シーケンサを伴う仮想化レイヤを使用することができる、パッケージングシステムにより作成することができる。シーケンサは、アプリケーションによって使用される実行可能コード全てを特定することができ、ライブラリ、アセンブリ、そしてアプリケーション自体と一緒に配布されまたは配布されないその他コンポーネントを含む。パッケージは、アプリケーションによって使用されるあらゆるデータファイルを伴う、アプリケーション実行可能ファイルを含むパッケージを作成することができる。ある実施形態では、パッケージはアプリケーション状態情報を含むことができるが、他の実施形態では、アプリケーション状態情報を独立したストレージオブジェクトに格納することができる。
実施形態100は、クラウドコンピューティングプラットフォーム102を図示する。クラウドコンピューティングプラットフォーム102は、ユーザによって管理することができるステートレスクラウドプロセスおよびクラウドコンピューティング提供事業者によって管理することができる様々なハードウェアとソフトウェア基盤を提供することができる。
クラウドコンピューティングプラットフォーム102は、多くのハードウェアコンピューティングプラットフォームから構成される、クラウドコンピューティングファブリック104と共に、様々なソフトウェアコンポーネント106を有することができる。
クラウドコンピューティングファブリック104は、多くのサーバコンピュータによって構成することができる。ある実施形態では、単一のデータセンタが、数百、数千または数十万台にも及ぶハードウェアプラットフォームを有することができる。ハードウェアプラットフォームは、各々プロセッサ108、ローカルメモリ110そしてローカルストレージ112を有することができる。ある場合では、ハードウェアプラットフォームは、ユーザインターフェース114およびネットワークインターフェース116を有することができる。
ソフトウェアコンポーネント106の一部として、クラウドコンピューティング環境102は、クラウドソフトウェアコンポーネント118を有することができる。クラウドソフトソフトウェアコンポーネント118は、クラウドサービス提供事業者によって管理され、そしてユーザが直接触ることができない。
クラウドソフトウェアコンポーネント118は、クラウド管理システム121だけではなくクラウドオペレーティングシステム120も含むことができる。クラウドオペレーティングシステム120は、各々のハードウェアプラットフォーム上の一つ以上の仮想マシン122をホストするためのハイパーバイザとして動作を行うことができる。各々の仮想マシン122は、ステートレスなクラウドプロセス126が実行可能なオペレーティングシステム124を有することができる。
クラウド管理システム121は、クラウドコンピューティングサービスの様々なコンポーネントを管理することができる。クラウド管理システム121は、仮想マシンをあるハードウェアプラットフォームから別のプラットフォームへ移し、仮想マシンを開始し、停止しそして一時停止し、異なるプロセスにリソースを割り振り、その他の管理サービスを実行するような機能を実行する能力がある。クラウド管理システム121は、オペレーティングシステムを更新するため、ハードウェアをアップデートまたは修理するため、そしてさもなければデータセンタ内部のハードウェアとソフトウェアの管理を行うためにクラウドサービス提供者によって使用されるシステムであり得る。
クラウドプロセス126は、ユーザがクラウドコンピューティング環境102内でアプリケーションを実行することができるように、ユーザが直接触ることができるようになっている。クラウドプロセス126はステートレスプロセスであり、プロセス継続中のいかなる状態情報をもセーブやリストアすることができない。
仮想化レイヤ128およびステートフルアプリケーション130は、ステートレスなクラウドプロセス126によって実行することができる。仮想化レイヤ128が、アプリケーション130に関連付けられた実行可能コードを監視し、状態情報を検知するために、アプリケーション130は、仮想化レイヤ128に登録することができる。
ある実施形態では、アプリケーション130は、パッケージの形式でクラウドコンピューティングプラットフォーム102に提供することができる。パッケージは、実行可能コード並びにアプリケーションの初期状態情報を含むことができる。初期状態情報は、最初にインストールされ設定された時のアプリケーション130の状態情報であり得る。アプリケーション130が動作を開始した後に、仮想化レイヤ128は、初期の状態情報と現在の状態情報との差である第二の状態情報のセットを作成および維持することができる。
このような実施形態では、仮想化レイヤ128は様々な差分機構を含むことができ、差分機構は初期状態情報への変更を特定することおよびそれら変更情報を独立した変更データベースへ格納することができる。また、差分機構は、初期状態情報をロードし、独立した変更データベースを使用して現在の状態情報を再度作成することにより、アプリケーション130を格納された状態情報へ戻すことができる。
ある実施形態では、アプリケーション130はパッケージを使用することなくインストールされ、および実行されることができる。このような実施形態では、スクリプトまたはその他機構が、クラウドプロセス126上の仮想化レイヤ128を最初にインストールおよび実行することができ、次いで、アプリケーション130をインストールおよび実行することができる。アプリケーション130のインストール動作中、仮想化レイヤ128はアプリケーション状態情報に作用する読み取りおよび書き込み動作を、データベースや他のストレージ機構へリダイレクトすることができる。
仮想化レイヤ128は、アプリケーション状態情報136をクラウドストレージ134に格納することができ、クラウドストレージ134はネットワーク132を経由してアクセスすることができる。
ある実施形態では、仮想化レイヤ128は、読み取りおよび書き込み処理をクラウドストレージ134に直接的に行うことができ、それぞれがアプリケーション状態情報136への読み取りおよび書き込み動作となり得る。このような実施形態では、アプリケーション状態情報136はバーチャルハードディスクに格納することができる。アプリケーション状態情報136を内包するバーチャルハードディスクは、クラウドプロセス126が開始された時にクラウドプロセス126にマウントすることができ、そして仮想化レイヤ128が読み取りおよび書き込み動作をアプリケーション状態情報136に対して実行することができる簡素な機構を提供することができる。
他の実施形態では、仮想化レイヤ128は、クラウドプロセス126内にローカルアプリケーション状態情報を維持することができる。このような実施形態では、クラウド管理システム121はクラウドプロセス126のために停止コマンドを発行することができる。そして、仮想化レイヤ128は、そのようなコマンドを受信すると、ローカルに格納されたアプリケーション状態情報を、クラウドストレージ134に格納されたアプリケーション状態情報136に書き込むことができる。
クラウドストレージ134は、アプリケーションパッケージ138並びに実行可能な仮想化レイヤ140を含むことができる。ある実施形態では、インストーラーパッケージは、アプリケーションパッケージと共に仮想化レイヤの実行可能なコンポーネントを内包することができる。実行可能な仮想化レイヤ140およびアプリケーションパッケージ138は、アプリケーション130が開始される時に、クラウドプロセス126にロードすることができる。多くの実施形態では、仮想化レイヤ128とアプリケーション130のロードおよび実行は、スクリプトまたはその他実行可能ファイルで定義することができる。ある場合では、ユーザが手作業で仮想化レイヤ128をロードおよび構成し、次いでアプリケーション130をロードおよび開始することができる。
アプリケーション130はサーバアプリケーションとすることができ、様々なクライアント装置142がネットワーク132を経由してアクセスすることができる。ネットワーク132はローカルエリアネットワーク、ワイドエリアネットワーク、インターネットまたはその他のネットワーク構成であり得る。
サーバアプリケーションとして、アプリケーション130は、クライアント装置142によって開始される通信へ応答することができる。そのようなアプリケーションの例は、電子メールメッセージをデータベースに格納することができる、電子メールまたはメッセージングシステムとすることができる。クライアント装置142は、ウェブブラウザ、電子メールクライアントまたはその他クライアントベースのソフトウェアを使用して、データベース内の電子メールメッセージへアクセスすることができる。別の例では、アプリケーション130は、クライアントがウェブブラウザを使用してアクセスができるウェブサイトとすることができる。
アプリケーションパッケージが使用される時、パッケージ生成システム144は、アプリケーションパッケージの初期バージョンを作成することができる。パッケージ生成システム144は、ハードウェアプラットフォーム146を有することができる。ハードウェアプラットフォーム146は、プロセッサ、RAM、ローカルストレージおよびユーザインターフェースとネットワークインターフェースと共に、様々なアプリケーションが動作するオペレーティングシステム148を含むことができる。
仮想化レイヤ150は、シーケンサ152と共に使用することができ、アプリケーション154をインストールおよび実行し、アプリケーションパッケージ156を作成する。多くの実施形態では、アプリケーションパッケージ156はアプリケーション状態情報158を含むことができるが、アプリケーション状態情報158は初期の状態情報とすることができる。
図2は実施形態200フローチャートであり、アプリケーションパッケージの作成方法を示している。実施形態200の処理は、どのようにアプリケーションパッケージが仮想化レイヤを使用して作成され、実行のための準備をすることができるかを示した簡素化された例である。
他の実施形態では、異なるシーケンス、追加的またはより少ないステップそして異なる専門技術や用法を使用して同様の機能を実現することができる。ある実施形態では、様々な動作または動作セットは、その他の動作と並行して、同期状態でも非同期状態でも実行することができる。図2の動作ステップは、簡素化された形態で動作の原理を図示するために選択された。
実施形態200は、アプリケーションパッケージを作成するための方法の例である。アプリケーションパッケージは、アプリケーションのための初期状態または基準状態を定義することができる。ある実施形態では、アプリケーションパッケージが、クラウドプロセス内でインストールされそして実行することができる。このような実施形態は、仮想化レイヤをインストールすることができ、そしてアプリケーションパッケージを実行するためにロードすることができる、管理アプリケーションやスクリプトを含むことができる。
アプリケーションパッケージは、アプリケーションによって呼び出された全ての実行可能ファイルを内包することができるが、これらはライブラリ、アセンブリ、または様々な追加コンポーネントと共に、インストールまたは通常動作中にアプリケーションによって格納されたあらゆるアプリケーション状態情報を含む。実施形態200の動作は、インストールまたは通常動作中に、様々な実行可能ファイルを特定するため、そしてアプリケーションの状態を捕捉するために実行することができる。特定されるコンポーネントの全ては、パッケージに追加することができ、そしてパッケージは、実施形態200の動作が終了する時の状態で、アプリケーションを再生成するために使用することができる。
実施形態200の動作は、パッケージ生成システム114および、特にシーケンサ152と仮想化レイヤ150によって実行されるそれら動作が相当し得る。
ブロック202で、システムは開始する。ブロック204で、仮想化レイヤがロードされる。
ブロック206で、監視すべきストレージオブジェクトが特定される。ストレージオブジェクトは、設定ファイル、設定データベース、レジストリまたはその他オブジェクトとすることができる。ブロック208で、オブジェクトは仮想化レイヤに登録され、そして仮想化レイヤがそれらオブジェクトの変更を監視し、それら変更情報をアプリケーション状態情報ストレージシステムに保存する。ある実施形態では、仮想化レイヤはシステムにおける全てのオブジェクトの変更を監視することができる。その他の実施形態は、特定のプロセスの変更を監視することができる。
異なる実施形態は、アプリケーション状態情報を格納するために、異なるストレージシステムを使用することができる。ある実施形態では、アプリケーションまたはサービスは、独立したレジストリ、データベース、設定ファイルまたはその他のストレージオブジェクトを維持することができ、そしてアプリケーション状態情報への読み取りおよび書き込み要求に対して応答することができる。ある実施形態では、そのような機能は仮想化レイヤによって実行することができる。
ステップ210で、仮想化レイヤは、監視されたストレージオブジェクトへのリダイレクトパスを作成することができる。リダイレクトパスは、読み取りおよび書き込みコールをリダイレクトすることができる。読み取りおよび書き込みコールは、アプリケーション状態情報ストレージオブジェクトへリダイレクトするために、監視されたストレージオブジェクトへ方向付けすることができる。
ブロック212で、アプリケーション内部では、アプリケーション状態情報を作成し使用可能なサービスまたは実行可能ファイルが特定される。ある実施形態では、サービスまたは実行可能ファイルは、アプリケーションを実行する前に個別に特定することができる。その他の実施形態では、サービスまたは実行可能ファイルは、アプリケーションを実行した後に特定することができ、そしてアプリケーションに関連付けられるとともに監視されたオブジェクトへ読み取りまたは書き込みを行う、それらサービスまたは実行可能ファイルによって特定することができる。
ステップ214で、アプリケーションの実行を開始することができる。ある実施形態では、アプリケーションはインストールプロセスを開始することができる。その他の実施形態では、アプリケーションは、単に実行を開始するに過ぎない。
ブロック216で、実行またはインストールの間、監視されたストレージオブジェクトのうち一つへの変更を検出することができる。ブロック216で変更が検出された時、ブロック218で変更を格納することができる。ある実施形態では、ブロック216およびブロック218の動作は、アプリケーションのインストールの間に実行することができ、そしてアプリケーションの初期または好適な状態を生成することができる。
ブロック220で、アプリケーションが実行中のある一点において、終了コマンドを受信することができる。その後、アプリケーションおよび状態情報ストレージオブジェクトをアプリケーションパッケージ内に保存することができる。また、多くの実施形態では、アプリケーションに関連付けられた実行可能ファイルおよびデータは、特定されるとともにアプリケーションパッケージに格納することができる。
図3は実施形態300に係る、ステートレスクラウドプラットフォームのようなステートレスプラットフォーム内部の、ステートフルアプリケーションを開始および再開するための方法を示すフローチャートを図示したものである。実施形態300の処理は、クラウドコンピューティング環境においてどのようにアプリケーションが開始または再開することができるかを示した、簡素化された例である。クラウドコンピューティング環境内では、ステートレスクラウドコンピューティングプラットフォームで実行しているアプリケーションは、一時停止しそして再開することができる。なぜならば、クラウドコンピューティングサービス提供事業者は、ハードウェアまたはソフトウェアのメンテナンスを実行するため、ハードウェアまたはソフトウェアを更新するため、またはデータセンタ内部のプロセス管理のために、プロセスを異なるハードウェアまたはソフトウェアプラットフォームに移すことができるからである。
その他の実施形態では、異なるシーケンス、追加的またはより少ないステップそして異なる専門技術や用法を使用して同様の機能を実現することができる。ある実施形態では、様々な動作または動作セットは、その他の動作と並行して、同期状態でも非同期状態でも実行することができる。図3の動作ステップは、簡素化された形態で動作の原理を図示するために選択された。
実施形態300は、ステートレスプロセス内でステートフルアプリケーションをロードおよび実行する処理の方法を表している。仮想化レイヤは、アプリケーション状態情報に関連付けられる読み取りおよび書き込みコールをリダイレクトするために使用することができる。
実施形態300の処理は、アプリケーション状態情報を内包するバーチャルハードディスクを使用することができる。バーチャルハードディスクは、ハードディスクストレージ装置をソフトウェアで代替したものである得る。バーチャルハードディスクは、物理的なハードディスクストレージ装置と似たような態様でマウントおよび操作することができる。しかし、バーチャルハードディスクは、バーチャルハードディスクが簡素なコンピュータファイルであるかのように、移動され、複製され、バックアップされ、そしてその他の動作を実行することができる。
多くの実施形態では、バーチャルハードディスクは、ネットワーク接続を経由してマウントおよびアクセスすることができる。バーチャルハードディスクが非常に頻繁にアクセスされるようなある実施形態では、ネットワーク接続が多くのネットワーク帯域を占有し得る。全ての帯域と遅延を含む、ネットワークの性能を考慮することにも依存するが、ある実施形態は、バーチャルハードディスクを、ローカルストレージ装置または性能を最大化するためにローカルプロセッサの近くの別のストレージ装置へ移すことができる。
クラウドストレージシステムは、時々ブロブストレージ(blob storage)として知られているが、アプリケーション状態情報を内包するバーチャルハードディスクを格納するために使用することができる。このような実施形態では、バーチャルハードディスクは、ネットワークコネクションを通じてクラウドストレージシステムへアクセスすることができる。アプリケーション状態情報が頻繁にアクセスされる、またはクラウドストレージシステムへのネットワーク接続のレイテンシまたは帯域が、逆にネットワークの性能に影響を及ぼす実施形態では、アプリケーション状態情報のコピーは、クラウドプロセスがアプリケーションを実行するために、ローカルストレージ装置に配置することができる。このような実施形態では、アプリケーション状態情報は、クラウドストレージシステム上のバーチャルハードディスクに定期的に同期することができる。
実施形態300は、ステートレスなクラウドコンピューティングプラットフォームのような、ステートレスプラットフォーム内で、ステートフルアプリケーションを開始または再開するための方法を図示する。実施形態300の処理は、ユーザがアプリケーションを最初に開始するときにユーザが実行することができる。ある場合では、実施形態300は、クラウドサービス提供事業者がメンテナンスを行うため、処理容量を調整するため、またはその他の理由のためにプロセスを停止および再開する時にクラウドサービス提供事業者が実行することができる。
ブロック302で、クラウドプロセスを開始することができる。クラウドプロセスは、システムまたはアプリケーション状態情報が格納されずまたは管理されていない場合では、ステートレスプロセスとなり得る。
ブロック304で、仮想化レイヤをロードすることができる。仮想化レイヤは、設定ファイルや、設定情報、設定データベース、レジストリまたはその他ストレージオブジェクトを含むディレクトリのような特定のストレージオブジェクトへの読み取りおよび書き込みコールを監視することができる。仮想化レイヤは、それらコールをアプリケーション状態情報ストレージオブジェクトへ、またはバーチャルハードディスク上に格納されたストレージオブジェクトのセット内へリダイレクトすることができる。
ブロック304で、仮想化レイヤがロードされた後に、ブロック306で、実行されるであろうアプリケーションは、監視する仮想化レイヤと関連付けることができる。関連付けを行う機構は、様々な実施形態毎に異なり得る。ある実施形態では、仮想化レイヤは、監視対象のアプリケーション内の特定の実行可能ファイルと関連付けることができる。ある実施形態では、仮想化レイヤは、監視対象の特定のストレージオブジェクトと関連付けることができる。
ブロック310で、アプリケーションの以前の状態情報を内包することができるバーチャルハードディスクのために、クラウドストレージを検索することができる。ブロック312で、適切なバーチャルハードディスクを選択した後で、ブロック314で、バーチャルハードディスクをマウントすることができる。ある実施形態では、マルチプル(multiple)バーチャルハードディスクは、アプリケーションの異なるバージョンのために作成することができる。例えば、夜間毎または週毎のバックアップ動作は、アプリケーションの状態情報の異なるバージョンを作成することができる。
ある実施形態では、アプリケーションのマルチプル(multiple)インスタンスを実行することができ、各々は独立したステートレススレッドで実行することができる。一例は、負荷分散システムで組み込むことができるアプリケーションである。アプリケーションは、アプリケーションの二つ、三つ、または数百ものインスタンスを、大きな負荷に応答するために負荷分散システムによって管理することができる。このような実施形態では、アプリケーションの各々のインスタンスは、アプリケーションの特定のインスタンスのための特定のアプリケーション状態情報を内包することができる、個別のバーチャルハードディスクを有することができる。
このような例では、アプリケーション状態情報を内包することができるバーチャルハードディスクを、バーチャルハードディスクのプール内に配置することができる。アプリケーションへの負荷が増すに伴って、新しいステートレスプロセスを作成することができ、そしてアプリケーションインスタンスのためのアプリケーション状態情報を提供するために、プール内のバーチャルハードディスクの一つを選択することおよび使用することができる。ブロック314で、バーチャルハードディスクがマウントされる時、他のプロセスによってはバーチャルハードディスクのマウントができなくなる場合がある。
ブロック314で、一旦バーチャルハードディスクがマウントされると、ブロック316で、バーチャルハードディスクは仮想化レイヤと関連付けることができる。ブロック316の関連付けは、バーチャルハードディスクのアプリケーション状態情報ストレージオブジェクトを特定すること、および仮想化レイヤにそれらストレージオブジェクトを登録することを含むことができる。
ある実施形態では、バーチャルハードディスクは、アプリケーションの実行可能コードを内包することができるが、コードはアプリケーションパッケージ形式であってもなくてもよい。ある実施形態では、アプリケーション実行可能コードまたはアプリケーションパッケージは独立してロードすることができる。
アプリケーションパッケージが使用される時に、アプリケーションパッケージは、アプリケーション状態情報の初期または「好適な」コピーを含むことができる。アプリケーションが使用されるに伴って、アプリケーション状態情報への変更は、独立したアプリケーション状態情報ストレージオブジェクトに作成されそして格納されることができる。このような実施形態では、差分機構は、初期のアプリケーション状態情報を変更されないように保持するために使用することができるが、差分機構は、変更を初期のアプリケーション状態情報へ適用することができ、そしてそのような変更をバーチャルハードディスク内のストレージオブジェクトの第二のセットに格納することができる。
ブロック318で、アプリケーションが開始または再開動作を行うことができる。
ブロック320で、アプリケーションの動作中、監視された状態情報のロケーション(location)へのコールを監視することができる。ブロック322で、読み取り動作が行われる時に、ブロック324で、読み取り動作は、バーチャルハードディスク内の適切なストレージオブジェクトへリダイレクトすることができる。差分機構を使用することができ、アプリケーション状態情報の初期バージョンと現在のバージョンを独立して格納することができる実施形態では、差分機構は、どのストレージオブジェクトへアクセスを行い要求された状態情報を取り出すかを決定することができる。
ブロック322で、書き込み動作が行われた時に、ブロック326で、書き込み動作はバーチャルハードディスク上の適切なストレージオブジェクトへリダイレクトすることができる。アプリケーション状態情報が、ローカルに格納されたコピーを有ことができる実施形態では、ブロック328で、バーチャルハードディスクに格納されたアプリケーション状態情報のコピーを、更新することができる。
発明の範囲についての先の記述は、図示および詳細な説明の目的のためになされたものである。発明の詳細な説明は網羅的であることまたは発明の範囲を開示された厳密な形態に限定することを意図したものではない。そして、その他の修正や関連する形態も上述の教示に照らし取り得るものである。本実施形態が選択され説明されたが、これは発明の原理を最も良く説明するためのものであり、実施形態の実際上の適用によって、当業者が様々な実施形態や様々な修正形態で考えられる特定の用途に適する通りに発明を利用することが可能となる。添付された特許請求の範囲が従来技術によって限定される範囲を除いて、その他代替される実施形態を含むと解釈されることを意図している。

Claims (21)

  1. ロセスを開始するステップであって、前記プロセスはステートレスである、ステップと、
    記プロセスに仮想化レイヤをロードし、実行するステップであって、前記仮想化レイヤは、前記プロセス上で動作するステートフルアプリケーションからの状態変更を捕捉し、前記プロセスが動作するハードウェアファブリックから独立したストレージシステムへ前記状態変更をリダイレクトする、ステップと、
    記プロセス上で前記ステートフルアプリケーションを実行して、前記仮想化レイヤが前記ステートフルアプリケーションの状態変更を特定し、前記ストレージシステムに前記状態変更を格納するようにするステップと
    を含むことを特徴とする方法。
  2. 請求項1に記載の方法であって、前記プロセスは仮想マシン上で動作することを特徴とする方法。
  3. 請求項2に記載の方法であって、前記プロセスはデータセンタ内で動作することを特徴とする方法。
  4. 請求項1に記載の方法であって、前記ストレージシステムはバーチャルハードディスクを含み、前記仮想化レイヤは前記状態変更を前記バーチャルハードディスクに格納するように構成されることを特徴とする方法。
  5. 請求項1に記載の方法であって、前記ステートフルアプリケーションはパッケージに格納されることを特徴とする方法。
  6. 請求項5に記載の方法であって、前記パッケージは前記状態変更を含むことを特徴とする方法。
  7. 請求項5に記載の方法であって、前記状態変更は前記パッケージとは独立していることを特徴とする方法。
  8. 請求項1に記載の方法であって、前記プロセスは第1のプロセスであり、前記方法は、
    第2のプロセスを開始するステップと、
    前記仮想化レイヤを前記第2のプロセスにロードするステップと、
    前記ステートフルアプリケーションをロードするステップと、
    前記状態変更をロードするステップと、
    前記状態変更とともに前記ステートフルアプリケーションを前記第2のプロセス上で実行するステップと
    を更に含むことを特徴とする方法。
  9. 請求項8に記載の方法であって、
    複数の前記状態変更から前記状態変更を選択するステップであって複数の前記状態変更の各々が、前記第1のプロセスおよび前記第2のプロセスの複数のインスタンスについての状態変更を含む、ステップを更に含む
    ことを特徴とする方法。
  10. 請求項9に記載の方法であって複数の前記状態変更の各々は、異なるプロセスによって作成されることを特徴とする方法。
  11. 請求項9に記載の方法であって複数のインスタンスの各々は、バーチャルハードディスクに格納されることを特徴とする方法。
  12. 請求項11に記載の方法であって、前記複数のインスタンスの各々は、前記第1のプロセスおよび前記第2のプロセスのうちの1つについての前記状態変更の異なるバージョンであることを特徴とする方法。
  13. ロセスを有するコンピューティング環境であって、前記プロセスの各々はコンピューティングハードウェアファブリック上で実行するステートレスプロセスであるコンピューティング環境と、
    ロセス内で動作可能な仮想化レイヤであって、前記仮想化レイヤは、前記プロセスのうちの1つにおいて実行するステートフルアプリケーションへの状態変更を捕捉し、前記状態変更を、前記コンピューティングハードウェアファブリックから独立したストレージに格納する、仮想化レイヤと、
    ロセス管理システムであって、
    第1のプロセスを開始し、
    前記第1のプロセスにおいて実行する前記ステートフルアプリケーションへなされた状態変更が捕捉され、前記ストレージに格納されるように、前記仮想化レイヤを前記第1のプロセス内でロードし、
    前記仮想化レイヤ内で前記ステートフルアプリケーションを実行する、
    ロセス管理システムと
    を備えることを特徴とするシステム。
  14. 請求項13に記載のシステムであって、前記プロセス管理システムは、
    前記ストレージ内でバーチャルハードディスクを更に作成し、
    前記バーチャルハードディスクをあらかじめ定められた間隔で格納して、前記バーチャルハードディスクの複数のバージョンを作成する
    ことを特徴とするシステム。
  15. 請求項13に記載のシステムであって、
    前記ステートフルアプリケーションを実行し、該アプリケーションおよび第1の状態を含むパッケージを作成するシーケンサ
    を更に備えることを特徴とするシステム。
  16. 請求項15に記載のシステムであって、前記第1の状態は、オペレーティングシステムのレジストリ設定及び少なくとも1つの設定ファイルの変更を含むことを特徴とするシステム。
  17. 複数のプロセスが動作するハードウェアファブリックであって、前記プロセスの各々はステートレスプロセスであるハードウェアファブリックと、
    記プロセス上で動作可能な仮想化レイヤであって、ステートフルアプリケーションからの状態変更を特定し、該状態変更を、前記ハードウェアファブリックから独立したストレージに格納し、前記状態変更のコールを前記ストレージにリダイレクトする仮想化レイヤと、
    ロセスマネージャであって、開始コマンドを受け、第1のステートレスプロセスを開始し、前記仮想化レイヤを前記第1のステートレスプロセス内でロードし、前記プロセス内で前記ステートフルアプリケーションを実行するプロセスマネージャと
    を備えることを特徴とするクラウドコンピューティングプラットフォーム。
  18. 請求項17に記載のクラウドコンピューティングプラットフォームであって、前記プロセスマネージャは、
    前記ストレージ内でバーチャルハードディスクを更に作成し、
    前記バーチャルハードディスクをあらかじめ定められた間隔で格納して、前記バーチャルハードディスクの複数のバージョンを作成する
    ことを特徴とするクラウドコンピューティングプラットフォーム。
  19. 請求項17または18に記載のクラウドコンピューティングプラットフォームであって、前記状態変更は、
    オペレーティングシステムのレジストリ設定と、
    設定ファイルの変更と
    を含むことを特徴とするクラウドコンピューティングプラットフォーム。
  20. 請求項19に記載のクラウドコンピューティングプラットフォームであって、前記状態変更は、前記ステートフルアプリケーションとともにアプリケーションパッケージに格納されることを特徴とするクラウドコンピューティングシステム。
  21. 少なくとも1つのコンピューティングデバイスに、
    第1のプロセスを開始するステップであって、前記第1のプロセスはステートレスである、ステップと、
    前記第1のプロセスに仮想化レイヤをロードし、実行するステップであって、前記仮想化レイヤは、前記第1のプロセス上で動作するステートフルアプリケーションからの、状態を有する特定のストレージオブジェクトへの読み書きのためのコールを監視するように構成され、前記仮想化レイヤは、前記ステートフルアプリケーションからの状態変更を捕捉し、前記少なくとも1つのコンピューティングデバイスから独立したストレージシステムへ前記状態変更をリダイレクトする、ステップと、
    前記第1のプロセス上でステートフルアプリケーションを実行して、前記仮想化レイヤが前記ステートフルアプリケーションの状態変更を特定し、前記ストレージシステムに前記状態変更を格納するようにするステップと、
    第2のプロセスを開始するステップと、
    前記仮想化レイヤを前記第2のプロセスにロードするステップと、
    前記ステートフルアプリケーションをロードするステップと、
    前記状態変更をロードするステップと、
    前記ステートフルアプリケーションを前記状態変更とともに前記第2のプロセス上で実行するステップと、
    複数の前記状態変更から前記状態変更を選択するステップであって複数の前記状態変更の各々が、前記第1のプロセスおよび前記第2のプロセスの複数のインスタンスについての状態変更を含み、異なるプロセスにより作成される、ステップと
    を実行させることを特徴とするコンピュータプログラム。
JP2013536631A 2010-10-27 2011-09-27 ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション Expired - Fee Related JP5961173B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/912,798 US9645839B2 (en) 2010-10-27 2010-10-27 Stateful applications operating in a stateless cloud computing environment
US12/912,798 2010-10-27
PCT/US2011/053531 WO2012057955A1 (en) 2010-10-27 2011-09-27 Stateful applications operating in a stateless cloud computing environment

Publications (3)

Publication Number Publication Date
JP2013541113A JP2013541113A (ja) 2013-11-07
JP2013541113A5 JP2013541113A5 (ja) 2014-11-06
JP5961173B2 true JP5961173B2 (ja) 2016-08-02

Family

ID=45994310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536631A Expired - Fee Related JP5961173B2 (ja) 2010-10-27 2011-09-27 ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション

Country Status (7)

Country Link
US (1) US9645839B2 (ja)
EP (1) EP2633400B1 (ja)
JP (1) JP5961173B2 (ja)
CN (1) CN102521022B (ja)
AU (1) AU2011320899B2 (ja)
CA (1) CA2815306A1 (ja)
WO (1) WO2012057955A1 (ja)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101671184B1 (ko) * 2010-12-14 2016-11-01 삼성전자주식회사 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
US8606878B2 (en) * 2011-02-28 2013-12-10 Red Hat, Inc. Systems and methods for de-populating cloud data store
US9037564B2 (en) 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9766986B2 (en) * 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9838415B2 (en) 2011-09-14 2017-12-05 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9769250B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US20130151688A1 (en) * 2011-12-07 2013-06-13 Alcatel-Lucent Usa Inc. Optimization mechanisms for latency reduction and elasticity improvement in geographically distributed data centers
US8700678B1 (en) * 2011-12-21 2014-04-15 Emc Corporation Data provenance in computing infrastructure
US10067940B2 (en) * 2012-03-02 2018-09-04 International Business Machines Corporation Enhanced storage quota management for cloud computing systems
JP5970314B2 (ja) * 2012-09-26 2016-08-17 エヌ・ティ・ティ・コミュニケーションズ株式会社 サービス制御装置およびサービス制御プログラム
US9776078B2 (en) * 2012-10-02 2017-10-03 Razer (Asia-Pacific) Pte. Ltd. Application state backup and restoration across multiple devices
US10474502B2 (en) 2013-01-14 2019-11-12 Microsoft Technology Licensing, Llc Multi-tenant license enforcement across job requests
US20150381735A1 (en) * 2013-02-20 2015-12-31 The Digital Marvels, Inc. Virtual storage system client user interface
US9729610B2 (en) 2013-02-27 2017-08-08 Greenbutton Limited Method for intercepting an instruction produced by an application on a computer
US9201706B2 (en) * 2013-03-11 2015-12-01 International Business Machines Corporation Minimizing workload migrations during cloud maintenance operations
CN103442049B (zh) * 2013-08-22 2016-08-31 浪潮电子信息产业股份有限公司 一种面向构件的混合型云操作系统体系结构及其通信方法
CN104683119A (zh) * 2013-11-27 2015-06-03 英业达科技有限公司 云端运算的动态计费系统及其方法
US9842152B2 (en) 2014-02-19 2017-12-12 Snowflake Computing, Inc. Transparent discovery of semi-structured data schema
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) * 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9852077B2 (en) 2015-05-21 2017-12-26 Dell Products L.P. Preserving user changes to a shared layered resource
US9665283B2 (en) * 2015-05-21 2017-05-30 Dell Products L.P. System and method of creating layered resources
US9762616B2 (en) * 2015-08-08 2017-09-12 International Business Machines Corporation Application-based security rights in cloud environments
FR3041790B1 (fr) * 2015-09-25 2019-06-07 Rizze Procede automatique de sauvegarde et maintenance des donnees obtenues par des services avec etat lors du lancement d'un service sans etat dans un systeme d'exploitation en nuage
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10284592B1 (en) 2015-12-17 2019-05-07 Architecture Technology Corporation Application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10200401B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Evaluating results of multiple virtual machines that use application randomization mechanism
US10412114B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10200406B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10257342B2 (en) * 2016-03-31 2019-04-09 Microsoft Technology Licensing, Llc Validating stateful dynamic links in mobile applications
EP3235549A1 (en) * 2016-04-21 2017-10-25 KooJoo Ltd Gameplay trigger detection
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US11314546B2 (en) * 2016-11-18 2022-04-26 Data Accelerator Ltd Method and system for executing a containerized stateful application on a stateless computing platform using machine learning
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10250694B2 (en) * 2016-08-19 2019-04-02 Ca, Inc. Maintaining distributed state among stateless service clients
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
EP3361711A1 (en) * 2017-02-08 2018-08-15 OpenSynergy GmbH Method for synchronizing a service between a service provider and a service consumer and system
US10785288B2 (en) * 2017-02-22 2020-09-22 International Business Machines Corporation Deferential support of request driven cloud services
US10554685B1 (en) 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
CN109218356B (zh) 2017-06-30 2021-10-08 伊姆西Ip控股有限责任公司 管理服务器上有状态应用的方法和设备
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10901804B2 (en) 2017-12-15 2021-01-26 Fujitsu Limited Apparatus and method to select services for executing a user program based on a code pattern included therein
CN108052377B (zh) * 2017-12-29 2022-02-08 腾讯科技(深圳)有限公司 基于云的输入处理方法、装置、服务器和存储介质
US10698666B2 (en) * 2017-12-29 2020-06-30 Microsoft Technology Licensing, Llc Automatically building software projects
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11103780B2 (en) 2019-11-06 2021-08-31 Microsoft Technology Licensing, Llc Saving and restoring virtual machine states and hardware states for application content
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11947838B2 (en) 2020-11-30 2024-04-02 International Business Machines Corporation Utilizing statuses to preserve a state of data during procedures such as testing without causing functional interruptions
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN114296879B (zh) * 2021-12-30 2023-10-24 南通机敏软件科技有限公司 支持创建openstack云硬盘过程活性检测的方法、存储介质及处理器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7680834B1 (en) 2004-06-08 2010-03-16 Bakbone Software, Inc. Method and system for no downtime resychronization for real-time, continuous data protection
US9450966B2 (en) * 2004-11-29 2016-09-20 Kip Sign P1 Lp Method and apparatus for lifecycle integrity verification of virtual machines
US20090182955A1 (en) 2006-09-08 2009-07-16 Rao Cherukuri Application configuration across client devices of a local system
US8595356B2 (en) * 2006-09-28 2013-11-26 Microsoft Corporation Serialization of run-time state
KR20100080822A (ko) 2007-09-28 2010-07-12 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US8239509B2 (en) 2008-05-28 2012-08-07 Red Hat, Inc. Systems and methods for management of virtual appliances in cloud-based network
US8196145B2 (en) * 2008-06-26 2012-06-05 International Business Machines Corporation Determining real time stateful business application processing in an otherwise stateless service-oriented architecture
US8572580B2 (en) * 2008-07-28 2013-10-29 Microsoft Corporation Computer application packages with customizations
US20100042670A1 (en) 2008-08-13 2010-02-18 Electronic Data Systems Corporation Integrated development engine for a cloud computing environment
US20100064033A1 (en) 2008-09-08 2010-03-11 Franco Travostino Integration of an internal cloud infrastructure with existing enterprise services and systems
US8307187B2 (en) * 2008-09-12 2012-11-06 Vmware, Inc. VDI Storage overcommit and rebalancing
US8312419B2 (en) 2008-10-30 2012-11-13 Hewlett-Packard Development Company, L.P. Automated lifecycle management of a computer implemented service
US20110314124A1 (en) 2009-03-25 2011-12-22 Roger Brian Gimson Capturing an application state
US9448852B2 (en) * 2009-08-28 2016-09-20 Oracle International Corporation Managing virtual machines
US20110093847A1 (en) * 2009-10-15 2011-04-21 Shah Dharmesh R Application Hosting Service for Cloud Environments Using Dynamic Machine Images
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
KR101394747B1 (ko) * 2010-06-04 2014-05-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 클라우드 기반 애플리케이션들을 위한 무 에이전트 팔로-미 서비스
US8566640B2 (en) * 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US9058229B2 (en) * 2010-10-04 2015-06-16 Lenovo (Singapore) Pte. Ltd. Method and apparatus for maintaining operability with a cloud computing environment

Also Published As

Publication number Publication date
CN102521022B (zh) 2015-11-25
AU2011320899A1 (en) 2013-05-02
CA2815306A1 (en) 2012-05-03
CN102521022A (zh) 2012-06-27
EP2633400A4 (en) 2014-07-09
US20120110570A1 (en) 2012-05-03
WO2012057955A1 (en) 2012-05-03
AU2011320899B2 (en) 2015-01-22
EP2633400B1 (en) 2022-07-13
EP2633400A1 (en) 2013-09-04
US9645839B2 (en) 2017-05-09
JP2013541113A (ja) 2013-11-07

Similar Documents

Publication Publication Date Title
JP5961173B2 (ja) ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション
KR102628362B1 (ko) 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션
US11405274B2 (en) Managing virtual network functions
US10656983B2 (en) Methods and apparatus to generate a shadow setup based on a cloud environment and upgrade the shadow setup to identify upgrade-related errors
US9244676B2 (en) Virtual machine based controller and upgrade mechanism
JP6054522B2 (ja) 統合型ストレージ/vdiプロビジョニング方法
US9753761B1 (en) Distributed dynamic federation between multi-connected virtual platform clusters
JP6030646B2 (ja) 仮想機械移行ツール
US20140149696A1 (en) Virtual machine backup using snapshots and current configuration
WO2012054197A2 (en) Coordinated upgrades in distributed systems
US11934886B2 (en) Intra-footprint computing cluster bring-up
US11086615B2 (en) Virtual appliance upgrades in high-availability (HA) computing clusters
EP3786797A1 (en) Cloud resource marketplace
US20200249988A1 (en) Hosting virtual machines on a secondary storage system
CN112965790B (zh) 一种基于pxe协议的虚拟机启动方法及电子设备
US20230128370A1 (en) Data Center Restoration and Migration
US20240004687A1 (en) Systems, methods, and apparatus for state convergence associated with high availability application migration in a virtualized environment

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130722

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140918

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140918

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151221

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: 20160527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160624

R150 Certificate of patent or registration of utility model

Ref document number: 5961173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees