JP2013534675A - 複数のネットワークリソースのプロビジョニング - Google Patents

複数のネットワークリソースのプロビジョニング Download PDF

Info

Publication number
JP2013534675A
JP2013534675A JP2013518539A JP2013518539A JP2013534675A JP 2013534675 A JP2013534675 A JP 2013534675A JP 2013518539 A JP2013518539 A JP 2013518539A JP 2013518539 A JP2013518539 A JP 2013518539A JP 2013534675 A JP2013534675 A JP 2013534675A
Authority
JP
Japan
Prior art keywords
stack
network resources
template
user
resource
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.)
Pending
Application number
JP2013518539A
Other languages
English (en)
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 JP2013534675A publication Critical patent/JP2013534675A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

リソースプロビジョニングサービスにより、ユーザーはアトミックな方法で、かつリソースプロビジョニングサービスへの一回の呼び出しで、複数の異なるネットワークリソースをプロビジョニングできるようになる。ある例において、複数の異なるネットワークリソースは、1つまたは複数のクラウドコンピューティングプラットホームの一部分を形成する個別のタイプのリソースを含む。例えば、1つまたは複数のエンティティは、ストレージサービス、負荷分散サービス、計算サービス、セキュリティサービス、または他の類似の、もしくは異なるタイプのネットワークにアクセス可能なサービス等の異なるタイプのネットワークリソースを含むクラウドコンピューティングプラットホームをホストし操作してもよい。

Description

関連案件の相互参照
本出願は、2010年6月28日に出願された、米国非仮出願12/824,723号に関連し、この優先権を主張し、この出願の内容全体を本願に引用して援用する。
大規模なネットワークベースのコンピューティングは、従来のクライアント/サーバコンピューティングの関係からのパラダイムシフトを意味する。大規模なネットワークベースのコンピューティングプラットホーム(例えばデータセンター)では、顧客はサードパーティーが所有し「クラウドに」存在するリソースを借用することにより共有資源をオンデマンドで活用できる。これらのリソースを使用し、プラットホームの顧客は大規模なアプリケーションを、これらのアプリケーションに必要な基盤となるインフラストラクチャーを実際に所有または提供することなく開始し維持することができる。そのため、ネットワークベースのコンピューティングプラットホームは、コンピュータアプリケーションの領域で効果的に競合できる個人および企業のクラスを拡大した。これらの進歩にもかかわらず、これら個人および企業は、所望のリソースをプロビジョニングする目的でこれらのネットワークベースのコンピューティングプラットホームのホストと仕事をする際、いまだに問題があると感じる可能性がある。
発明を実施するための形態は、添付の図を参照して記載される。図において、参照番号の左端の数字は、参照番号が最初に現われる図を特定する。異なる図において同一の参考番号が使用されている場合は、類似のまたは同一の事項または特性を示す。
複数の異なるネットワークリソースをプロビジョニングするためにユーザーコミュニティのユーザーがリソースプロビジョニングサービスと対話を行い得る環境例の図である。この環境において、ユーザーは、ある実施形態においてプロビジョニングサービスへの一回のリクエストで複数のリソースをプロビジョニングし得る。 複数の異なるネットワークリソースをプロビジョニングするために、図1のアーキテクチャが実行し得る処理例の図である。 複数の異なるネットワークリソースをプロビジョニングするため、リソースプロビジョニングサービスが実行し得る処理例の流れ図である。ここで、この処理は、サービスが各要求されたリソースのプロビジョニングに成功する、または要求されたリソースのいずれもプロビジョニングできないというアトミックな処理を含んでもよい。 図1のリソースプロビジョニングサービスのテンプレートに基づいたスタックビルダーの一例のより詳細な図である。 図1のリソースプロビジョニングサービスのスタック管理のワークフロー例の図である。 図1、4および5のアーキテクチャ内のテンプレートを使用したスタックを作成する処理例の図である。 図1、4および5のアーキテクチャ内のスタックを削除する処理例の図である。 図1、4および5のアーキテクチャ内のスタックを採用する処理例の図である。 スタックの作成または削除要求間の、内部スタック状態の遷移例の図である。 スタックの作成または削除要求間の、外部スタック状態の遷移例の図である。
この開示は、ユーザーがアトミックな方法を用いて、リソースプロビジョニングサービスへの一回の呼び出しで複数の異なるネットワークリソースをプロビジョニングできるようにするアーキテクチャおよび技術を記述する。ある例において、複数の異なるネットワークリソースには、1つまたは複数のクラウドコンピューティングのプラットホームの部分を形成する個別のタイプのリソースを含む。例えば、1つまたは複数のエンティティはストレージサービス、負荷分散サービス、計算サービス、セキュリティサービス、または他の類似の、もしくは異なるタイプのネットワークにアクセス可能なサービス等の異なるタイプのネットワークリソースを含むクラウドコンピューティングのプラットホームをホストし操作してもよい。
一例において、ユーザーは、1つまたは複数のサードパーティーエンティティにより提供された複数のネットワークリソースの使用したアプリケーション(例えばウェブアプリケーション)の開始を要望してもよい。ユーザーは、複数の異なるリソース間で作業負荷をルーティングする負荷分散サービス、アプリケーションをホストし、かつコンピューティング能力を提供する計算サービス、顧客データを格納するオンラインストレージサービスおよびアプリケーションのユーザーにセキュリティを提供するセキュリティサービスを要望してもよい。単一のエンティティがこれらネットワークリソースの各々を提供し操作し得るが、複数の異なるエンティティが他の実施でのこれらのリソースの1つまたは複数を提供し操作し得る。
いずれにおいても、これら複数の異なるネットワークリソースをプロビジョニングするために、リソースプロビジョニングサービスはユーザーと通信し得る。例えば、ユーザーは、複数のネットワークリソースのスタックをプロビジョニングするためプロビジョニングサービスに最初の要求を行い得る。ある例において、この要求は、複数のリソースをプロビジョニングするため事前に入力された命令を含むテンプレートに基づいてもよい。このテンプレートは、スタック作成要求を記すためにユーザーに宣言型言語を提供する。これによってユーザーは、これらのスタックを構築する方法およびどのアプリケーションプログラムインターフェイス(API)呼び出しを呼び出すかではなく、どのリソースをプロビジョニングするべきか、およびこれらのリソースの相互接続に注目できる。例えば、テンプレートは、(エクステンシブルマークアップランゲージ(XML)フォーマット、ジャバスクリプトオブジェクトノーテーション(JSON)等で)1つまたは複数の異なるネットワークリソースをプロビジョニングするプロビジョニングサービスに命令してもよい。
ある例において、その後、ユーザーは、リソースに関連した特定のパラメーターを指定するため、テンプレート内の命令を変更してもよく、変更したテンプレートを新しいテンプレートとして保存してもよい。例えば、ユーザーはストレージサービスの所望の特定のサイズ、計算サービスの所望のコンピュータの数等を指定して新しいテンプレートを作成してもよい。更に、新しいテンプレートを作成する場合、ユーザーは1つまたは複数のネットワークリソースに、またはネットワークリソースの構成要素に論理名を割り当ててもよい。例えば、ユーザーは命令の一部分を削除する、または過去呼び出されたテンプレートよりもさらに多くのネットワークリソースをプロビジョニングするため新しい命令を加える等のなんらかの方法によってオリジナルのテンプレートを変更して新しいテンプレートを作成してもよい。別の例において、ユーザーはテンプレート内で別のテンプレートをさらに呼び出してもよい。そのため、テンプレートは、複数の異なるネットワークリソースのスタックの作成で使用される構成要素となる場合がある。
ユーザーが作成した命令に満足な場合(テンプレートへの変更の有無に関わらず)、新しいテンプレートとして命令を格納するために、ユーザーはプロビジョニングサービスに命令を戻す。例えば、ユーザーは、新しいテンプレートを含むテキストファイルを提供してもよい。このテンプレートは、XMLまたはJSONフォーマット、または他の適切なフォーマットでの命令を含んでもよい。
プロビジョニングサービスが新しいテンプレートを格納した後、ユーザーはそのテンプレートを使用して(または別のテンプレートを一緒に使用して)リソースのスタックを作成する要求をしてもよい。これを受けて、プロビジョニングサービスは、所望のネットワークリソースのスタックを識別するためにテンプレートを検索し解析してもよい。例えば1つの例において、プロビジョニングサービスは、ユーザーが負荷分散サービスの特定のサイズ、計算サービスのサーバの特定の数、ストレージサービスの特定のサイズおよびセキュリティサービスの特定のタイプの採用を希望しているかということを確認し得る。これを受けて、プロビジョニングサービスは、ユーザーのために要求されたネットワークリソースの各々のプロビジョニングを試行してもよい。すなわち、プロビジョニングサービスは、負荷分散サービス、計算サービス等の所望のサービスの確保を試行してもよい。
更に、プロビジョニングサービスは、互いに並行なネットワークリソースの少なくとも一部分のプロビジョニングを試行してもよい。例えば、プロビジョニングサービスは、複数のネットワークリソース間の依存を決定してもよく、これらの依存に従ったリソースのプロビジョニングを試行してもよい。プロビジョニングサービスは、テキストファイルからの暗黙的依存を識別してもよく、また、プロビジョニングサービスはユーザーにより指定された明示的依存を受信してもよい。
いくつかの例において、プロビジョニングサービスは、ネットワークリソースのスタックのアトミックなプロビジョニングを試行する。すなわち、プロビジョニングサービスが要求されたネットワークリソースの各々のプロビジョニングに成功する場合、プロビジョニングサービスはスタックの作成に成功したと考えるであろう。スタックの作成に成功したことに応じて、プロビジョニングサービスはこの成功をユーザーに通知してもよい。プロビジョニングサービスが要求されたリソースの1つまたは複数のプロビジョニングに(例えば試行を繰り返した後)失敗した例では、プロビジョニングサービスは、スタックのプロビジョニングを失敗と見なし、プロビジョニングサービスがプロビジョニングに成功した要求リソースをロールバック、またはティアダウンしてもよい。さらに、プロビジョニングサービスはこの失敗をユーザーに通知してもよい。そのため、ユーザーは、複数のネットワークリソースのスタックをプロビジョニングするための要求の提出時に、要求したリソースがすべてプロビジョニングされるか、または、どれもプロビジョニングされないであろうことを知っている。
この議論は、上で導入された技術を実施するアーキテクチャ例を記述する「アーキテクチャ例」という題のセクションから始まる。次に、「処理例」という題のセクションが続き、ここでは図1に記述されたアーキテクチャ例を使用して、複数のネットワークリソースをプロビジョニングする処理例を記載する。後続する「リソースプロビジョニングサービス例および処理」という題のセクションでは、図1で記述したリソースプロビジョニングサービスの特定の例およびスタックを作成、削除、採用するためのサービス例が実施し得る処理を記述する。このセクションでは、さらにこれらの処理の間に内部および外部スタック状態の遷移例を記述する。最後に、この議論を簡潔な結論で閉じる。
セクションの題および対応する要約を含むこの簡潔な導入部は、読み手の便宜のために提供されたものであり、請求項、手続きセクションの範囲を制限する意図はない。更に、上述のまたはこれから記述される技術は、数多くの方法、および数多くのコンテキストで実行され得る。以下でより詳細に記述したように、いくつかの実施およびコンテキスト例は以下の図を参照して提供される。しかしながら、以下の実施およびコンテキストは数あるうちほんの一部である。
アーキテクチャ例
図1は、記述された技術を実行し得るアーキテクチャ例100を示す。アーキテクチャ100はユーザーコミュニティ102を含むが、これは複数のネットワークリソース108(1)、108(2)、…、108(N)(単に「リソース」と呼ぶ)をプロビジョニングするためのリソースプロビジョニングサービス106を有するネットワーク104上で通信する。例えば、ユーザーコミュニティ102のユーザーは、1つまたは複数の大規模データセンターにおいてホストされる可能性のある1つまたは複数のクラウドコンピューティングプラットホームのサービスをプロビジョニングしてもよい。上で議論したように、これらのネットワークリソースには、ストレージサービス、負荷分散サービス、計算サービス、セキュリティサービス、ドメインネームシステム(DNS)サービス、または他の類似の、もしくは異なるタイプのネットワークにアクセス可能なサービスを含んでもよい。これらのリソース108(1)〜(N)はそれぞれ、共通のエンティティもしくは所有者、別個のエンティティもしくは所有者、またはそれらの組合せに関連付けられていてもよい。
一方、ネットワーク104は、インターネット、ケーブルネットワーク、セルラーネットワーク、ワイヤレスネットワークおよび有線ネットワークのような複数の異なるタイプのネットワークのいずれか、またはそれらの組合せを表す。ネットワーク104はパブリックまたはプライベートネットワークであってもよい。更に、図1はいくつかの矢印を示しているが、図示したサービスの各々はネットワーク104、または異なるネットワークによって互いに直接または間接的に通信してもよい。
この図示した例では、代表ユーザー102(1)はコンピューティング装置110を使用して、リソースプロビジョニングサービス106にアクセスしネットワークリソース108(1)〜(N)の1つまたは複数のプロビジョニングを要求する。例えば、ユーザー102(1)は、クラウドベースのリソースを使用して、ウェブアプリケーションの開始を要望してもよい。そのため、ユーザー102(1)は、負荷分散サーバの負荷分散装置、ストレージサービスのデータベース等の複数のリソースをプロビジョニングする要求を送信してもよい。
リソースプロビジョニングサービス106へのアクセス、およびこのような要求を行うと、これに応じて、リソースプロビジョニングサービス106はユーザー102(1)のコンピューティング装置110にユーザーインターフェース(UI)112を提供してもよい。図1に、そのようなUIの一例を図示する。図示したように、UI112には、リソース108(1)〜(N)の特定のセットのスタックをプロビジョニングする要求に使用するテンプレートを、ユーザーが選択できる第1の領域112(1)を含む。UI112はさらに、ユーザー102(1)が、作成されることとなるスタックの名前を作成できる第2の領域112(1)を含む。最後に、UI例112はアイコン112(3)を含み、これが選択された場合、リソースプロビジョニングサービス106に要求を送信する。この要求を受信すると、リソースプロビジョニングサービス106は、以下に詳述されるように、テンプレートで指定されたリソースのスタックの作成を試行し得る。図1ではUIの一例を図示しているが、他の実施では他の類似の、または異なるUIを採用してもよい。
図示したように、リソース108(1)〜(N)の各々およびリソースプロビジョニングサービス106は、要求を送受信するために処理およびストレージの能力を集合的に有する1つまたは複数のサーバとして具体化される。これらのサーバは、他のサーバアーキテクチャ(例えばメインフレーム)を使用してもよいが、単一のサーバ、サーバのクラスター、サーバファームまたはデータセンター等を含む様々な方法で具体化されてもよい。
リソースプロビジョニングサービス106は1つまたは複数のプロセッサ114ならびに、インターフェース118およびテンプレートベースのスタックビルダー120を格納するメモリ116を含む。サービス106はさらに、データベース122、124および126を格納し、それらにアクセスする。インターフェース118は、ユーザーコミュニティのユーザーがリソースプロビジョニングサービス106にアクセスし通信できるようにする、ネットワークにアクセス可能なインターフェースを含む。例えば、ユーザーコミュニティ102のユーザーはあるパブリックAPIによってインターフェースへの呼び出しを行ってもよい。これらの例および他の例において、ユーザーコミュニティ102のユーザーは、ネットワークリソース108(1)〜(N)の1つまたは複数のプロビジョニングを要求する目的でインターフェース118にアクセスする。
一方、テンプレートベースのスタックビルダー120は、(上述のように)ユーザーからネットワークリソースのスタックを作成する要求を受信し、かつ要求に基づいてユーザーに適切なテンプレートを提供するために機能する。例えば、図示した例において、ビルダー120は、ユーザー102(1)により選択された特定のテンプレートを使用して、リソースの指定されたスタックをプロビジョニングするための要求を受信してもよい。これを受けて、ビルダー120は、過去に作成されたテンプレートを格納し得る、あるいはアクセスし得るデータベース124から選択されたテンプレートを見つけてもよい。ある例において、リソースプロビジョニングサービス106、ユーザーコミュニティ102のユーザーおよび/または他のエンティティが、データベース124内のテンプレートの一部または全体を過去に作成した可能性がある。
選択されたテンプレートを見つけた後で、ビルダー120は、ユーザー102(1)のコンピューティング装置110にこのテンプレートを提供する。このテンプレートは、ネットワークリソース108(1)〜(N)の特定のセットをプロビジョニングするために事前に入力された命令を含んでいてもよい。その後、リソースに対する実際の要求を形成するために、ユーザー102(1)はテンプレート全体を、または一部分を使用してもよい。例えば、ユーザーは、要求されたリソースのサイズ、要求されたリソースの構成要素のいくつか(例えばコンピュータ、データベース等)、リソースの特定のバージョン、または他のパラメーターを指定するため、事前に入力された命令の中のあるパラメーターを変更してもよい。ある例において、ユーザー102(1)は、リソースの1つまたは複数の構成要素用のテンプレート内の論理名を指定してもよい。これらの論理名は、リソースプロビジョニングサービス106へのステータスまたは要求の呼び出しにより、後でこれらのリソースを管理する場合、ユーザーの便宜のためユーザーにより選択された名前を含む。
その代わりに、またはそれに加えて、ユーザー102(1)は、さらに別のリソースを呼び出すための命令をテンプレートに追加してもよく、またはプロビジョニングからリソースを削除するのに有効な命令を取り除いてもよい。サービス106により提供されるテンプレートを修正した(または、修正を行わなかった)後、ユーザー102(1)は、リソースプロビジョニングサービス106によるストレージのため、変更したテンプレートを新しいテンプレートとして提出する。その後、ユーザー102(1)は、新しいテンプレートにより指定されたリソースをプロビジョニングするための要求を送信してもよい。ある例において、テンプレートは、エクステンシブルマークアップランゲージ(XML)フォーマット、ジャバスクリプトオブジェクトノーテーション(JSON)フォーマット等での命令を含むテキストファイルを形成してもよい。
テンプレートに基づいたリソースプロビジョニングの要求を受信すると、ビルダー120は、テンプレート(例えば、テキストファイル形式であり得る)を検索し解析してこれらのリソースをプロビジョニングする命令と同様、所望のリソースのアイデンティティーおよびパラメーター(例えばサイズ等)を決定してもよい。ビルダー120はテキストファイルの実命令から収集された暗黙的依存に基づいた、および/または、ユーザー102(1)により提供される明示的依存に基づいた命令を特定してもよい。
ファイルを解析後、次いでビルダー120は、ユーザーのために要求されたリソースの各々を、可能ならばアトミックな方法でプロビジョニングすることを試行してもよい。これらの例において、リソースプロビジョニングサービス106は、ユーザーに通知する前に、ネットワークリソース108(1)〜(N)の要求されたリソースの各々のプロビジョニングを試行する。リソースプロビジョニングサービス106が要求されたリソースの各々のプロビジョニングに成功した場合、次いでリソースプロビジョニングサービス106は、サービス106が要求されたスタックの作成に成功したことをユーザー102(1)に通知する。サービス106はさらに、新しくプロビジョニングされたスタックを反映するためデータベース122を更新し得る。最後に、サービス106は、データベース126により保守されているユーザー102(1)のアカウントへ、これらプロビジョニングされたリソースに関連した費用を課し得る。
リソースプロビジョニングサービス106のビルダー120が要求された各リソースのプロビジョニングに成功しない場合(例えば複数回の再試行後)、サービス106は、スタック生成に失敗したことをユーザー102(1)に通知してもよい。さらに、サービス106は、要求されたネットワークリソースのうちサービス106がプロビジョニングに成功したリソースをロールバック、またはティアダウンしてもよい。サービス106はこれらのプロビジョニングに成功したリソースに関してユーザーアカウントに請求してもしなくてもよい。
このアトミックな方法で動作することにより、サービス106が要求されたリソースのスタックのプロビジョニングに完全に成功するか、またはシステムの状態をユーザーの要求を受信する前に戻すかがわかるため、リソースプロビジョニングサービス106はユーザー102(1)にとって安心して使用できるものとなっている。すなわち、後者の例でも、サービス106がプロビジョニングされた各ネットワークリソースをロールバックするため、ユーザー102(1)は部分的には完了したが機能しないスタックとともに取り残されることはなくなるであろう。この快適さに加えて、アーキテクチャ100および関連する技術により、ユーザーは、リソースプロビジョニングサービス106に対して、各要求リソースに対応して要求を複数回行うのではなく要求を一回にできる。サービス106は、ユーザー102(1)に要求に基づいたテンプレートを提供することにより、この一回の呼び出しをさらに容易にする。
処理例
図2は、図1のアーキテクチャ100が実行し得る処理例200である。この処理(全体にわたって記述した他の処理と同様)は論理的な流れ図として示され、ここで各オペレーションは、ハードウェア、ソフトウェアまたはその組合せにおいて実行できるオペレーションのシーケンスを表わす。ソフトウェアのコンテキストにおいて、オペレーションは、1つまたは複数のコンピュータが読み込み可能な記憶媒体上に格納されたコンピュータ実行可能命令を表わし、1つまたは複数のプロセッサにより実行された場合、列挙されたオペレーションを行なう。一般に、コンピュータ実行可能命令は、特定機能を実行する、または特定の抽象データ型を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。オペレーションが記述された命令は、限界として解釈されることを意図せず、任意の数の記述されたオペレーションは処理を実行するためあらゆる順番におよび/または並行させて組み合わせることができる。
他のアーキテクチャがこの処理を実行し得るが、議論のため、処理200(および他の処理)を図1のアーキテクチャ100を参照して記述する。
この例において、「1」で、リソースプロビジョニングサービス106は、ユーザー102(1)のコンピューティング装置110より、ユーザーのために複数の異なるネットワークリソースのスタックのプロビジョニングを試行するのに有効なあるユーザーからの新しいテンプレートを受信する。例えば、ユーザー102(1)はリソースプロビジョニングサービス106が提供したUIによってこのテンプレートを提出し得る。さらに、このテンプレートは過去にサービスが格納したテンプレートに基づいている可能性がある。すなわち、ユーザー102(1)は図1のUI112によってテンプレートを要求し受信してもよく、新しいテンプレートを形成するためにこのテンプレートを修正してもよく、次にサービス106によるストレージ用に新しいテンプレートを送信してもよい。ある例において、ユーザー102(1)は、リソースプロビジョニングサービス106への「テンプレート登録」呼び出しによってテンプレートのストレージを要求してもよい。「2」で、リソースプロビジョニングサービス106は、受信したテンプレートをデータベース124に格納する。
「3」で、リソースプロビジョニングサービス106はユーザー102(1)からユーザーのためにリソースのスタックをプロビジョニングする要求を受信する。この例では、ユーザー102(1)は、サービス106が「2」で格納されたテンプレートに指定された方法でリソースをプロビジョニングすることを要求する。すなわち「3」で、ユーザー102(1)は、ユーザー102(1)により過去に作成され、サービス106により格納されたテンプレートを呼び出し得る。もちろん他の例においては、ユーザー102(1)がユーザーコミュニティ102の他のユーザー、リソースプロビジョニングサービス106、および/または他のエンティティにより作成されたテンプレートを呼び出してもよい。
図2は、ネットワークリソース108(1)〜(N)の1セットをプロビジョニングするためのXMLフォーマットでの命令を含むテンプレート202の例を示す。テンプレート例202にこれらの命令の一フォーマット例を示すが、提供されるテンプレートには、ユーザーがネットワークリソース108(1)〜(N)の複数のリソースのプロビジョニングを要求できる他のテキストベースの命令、選択可能なアイコン、ラジオボタンまたは他のインターフェース(グラフ式、または他の方法)を含んでもよい。
この例では、「4」で、リソースプロビジョニングサービス106は、ユーザー102(1)がユーザーの要求を記載したテンプレートを検索する。この例において、ユーザー102(1)は、ユーザーにより作成され、最近格納されたテンプレートを指定し、よって、サービス106はデータベース124からこのテンプレートを検索する。上で議論したように、ユーザー102(1)はこのテンプレートをカスタマイズした可能性がある。例えば、ユーザー102(1)にはリソースの特定のバージョン、リソースのサイズ、リソースの論理名等のあるパラメーターの値を指定している可能性がある。
「5」で、リソースプロビジョニングサービス106はテンプレートを解析し、ネットワークリソース108(1)〜(N)のうち要求されたリソースを識別し、かつこれら要求されたリソースのプロビジョニングを試行する命令を識別する。サービス106はこの命令の全体、または一部を暗黙および/または明示的依存に基づいて作成し得る。サービス106はユーザー102(1)が要求するリソースの特性を分析することで暗黙的依存を識別し得る。サービス106は、ユーザー102(1)からこれら依存を明示的に受信して明示的依存を識別し得る。例えば、ユーザー102(1)は、リソースのプロビジョニングを試行する所望の命令の全体または一部を宣言し得る。
「6」で、リソースプロビジョニングサービス106は、要求されたネットワークリソースのプロビジョニングを、可能ならば決定した順に、試行する。この例では、ユーザー102(1)は、ネットワークリソース108(1)、108(2)および108(N)のプロビジョニングを要求している。ある例において、リソースプロビジョニングサービス106は、これらの要求されたリソースのうち少なくともいくつかのプロビジョニングを並列に試行する。
「7」で、リソースプロビジョニングサービス106は個々のリソースから、サービス106がそれぞれのリソースのプロビジョニングに(一回または複数回のトライ後)成功したかどうかを示す表示を受信する。この例では、個々のリソースが成功の表示を提示しているので、リソースプロビジョニングサービス106は、スタックの生成は成功したと見なす。そのため、リソースプロビジョニングサービス106は、新しいスタックを反映するために「8」でデータベース122を更新する。リソースプロビジョニングサービス106は、さらにユーザー102(1)のアカウントにこのスタックを関連付け、ユーザー102(1)のアカウントに作成されたリソースに関する請求を行うためデータベース126を更新してもよい。
最後に、「9」で、リソースプロビジョニングサービス106は、ユーザー102(1)に成功または失敗の表示を提示する。例えば、リソースプロビジョニングサービス106はコンピューティング装置110にこの表示を提示してもよく、または別の通信チャンネルによりこの表示を伝達してもよい。この例で、リソースプロビジョニングサービス106は、ユーザー102(1)のために要求されたネットワークリソース108(1)、108(2)および108(N)の各々のプロビジョニングにサービス106が成功したという表示を提示する。ある例において、ユーザー102(1)は、「9」で表示を受信する前に、要求したスタック作成のステータスに関する質問を送信してもよい。サービス106はこの要求に応えて、ユーザー102(1)に、スタックの作成に成功したかどうかを通知してもよい。
図3は、複数の異なるネットワークリソースのプロビジョニングのため、リソースプロビジョニングサービス106が実行し得る処理例300の流れ図である。ここで、処理300は、サービスが要求された各リソースのプロビジョニングに成功する、または要求されたリソースのいずれもプロビジョニングできないアトミックな処理を含み得る。
処理300は、302でクライアントのコンピューティング装置からテンプレートを受信し、これに応じて受信したテンプレートを格納するリソースプロビジョニングサービス106を含む。このテンプレートは、ネットワークリソースのスタックのプロビジョニングを促進し得る。304で、リソースプロビジョニングサービス106は、テンプレートを使用した、ネットワークリソースのスタックをプロビジョニングするための要求を受信する。ある例において、テンプレートおよび要求は同時に受信され得る(例えば、テンプレートが要求を含み得る)が、必ずしもそうである必要はない。306で、リソースプロビジョニングサービス106はテンプレートを解析してリソースを識別し、308で、リソースプロビジョニングサービス106は、識別されたリソースの各々のプロビジョニングを試行する。
310で、リソースプロビジョニングサービス106は、それぞれのプロビジョニングの試みが成功したかどうか判断する。成功しなかった場合、リソースプロビジョニングサービス106は312でプロビジョニングに成功したネットワークリソースをロールバックする。ある例においては、サービスは一回のリソースの呼び出しが失敗するとすぐにリソースのプロビジョニングの試行を中止する。いずれかの例で、リソースプロビジョニングサービス106はさらに、314で要求ユーザーへの失敗の通知へ進む。ある例において、リソースプロビジョニングサービス106はまた、プロビジョニングに成功したリソースに関して要求ユーザーのユーザーアカウントに(例えば、全スタックの生成が成功するかどうかに関わらずサービス106がこれらのリソースのプロビジョニングに成功したらすぐに)請求してもよい。
しかしながら、もしリソースプロビジョニングサービス106が、各プロビジョニングの試みに成功したと判断した場合、次いでリソースプロビジョニングサービス106は316でこの成功を要求ユーザーに通知する。318で、リソースプロビジョニングサービス106は、プロビジョニングに成功したリソースに関して要求ユーザーのユーザーアカウントに請求してもよい。
リソースプロビジョニングサービス例と処理
図4は、図1のリソースプロビジョニングサービス106の一例を詳細に示す。図示したように、リソースプロビジョニングサービス106はインターフェース118およびテンプレートベースのスタックビルダー120を含んでおり、これは、上で議論した通りである。一例では、テンプレートベースのスタックビルダー120はスタックビルダーサービス402、スタックビルダーデーモン404および1つまたは複数のスタック管理ワークフロー406を含んでもよい。
上で議論した通り、インターフェース118は、ユーザーコミュニティ102のユーザーによるパブリックAPIを通じた呼び出しを可能にするネットワーク側の構成要素である。この層の1つの機能はネットワークリソース108(1)〜(N)への要求を受理、検証、証明、認証、ルーティングすることである。他の機能にはスロットリング、要求ロギングおよび委任トークン交換を含む。インターフェース118は、ネットワークリソース108(1)〜(N)に対して以下の1つまたは複数のAPIをプロキシし得る:Register Template、Describe Templates、Delete Template、Create Stack、Describe Stack、Delete Stack、Describe Stack Resources、Describe Stack Events、およびAdopt Stack。
一方、スタックビルダーサービス402は、インターフェース118が引き受けている様々なAPIの具体的な実行を提供する。このサービス402はさらに1つまたは複数の内部APIを提供し得る。このサービスにより提供されるAPIは、ある例においては、テンプレート管理API、スタック管理APIおよび監査証跡APIとして分類できる。
テンプレート管理APIは、(例えば図1のデータベース124において)テンプレートのストレージおよび処理にあたる。生の、ユーザーが提供したテンプレートは受理および認証され、その後生のオリジナルとの並行したストレージのため正準/縮減形に転換される。スタックビルダーサービス402は、名前によりこれらアップロードされたテンプレートを調べて、使用すべきでないとマークを付ける能力を提供する。テンプレート管理APIの例にはRegister Template、Describe Template、および/またはDelete Templateを含んでいてもよい。
一方、スタック管理APIは、スタックの作成および削除を開始し、スタックの記述を得るためのエントリポイントである。スタックの作成および削除の呼び出しは非同期的な方法で扱われてもよい。すなわち、スタックビルダーサービス402は、スタックの作成および削除のためのユーザー要求を検証し記録する。一方、スタックビルダーデーモン404は、ユーザーの意思の実際の処理を非同期に扱う。スタック管理APIは、さらに基盤となるストレージへスタックリソースデータの読み取りおよび書込みを可能にする。ユーザーコミュニティ102のユーザーは、これらのAPIによってそれらスタックのリソースのための論理的物理的結合の検査を要求できる。同様に、スタック管理ワークフロー406がスタックのリソースを割り当てる、または割り当てを開放する場合、スタック管理ワークフロー406は、物理的論理的マップを記録/更新するためにスタック管理APIを使用する。スタック管理APIにはCreate Stack、Describe Stack、Delete Stack、Adopt Stack、Describe Stack Resources、Add Stack Resource(内部API)および/またはDelete Stack Resource(内部API)を含んでいてもよい。
スタックビルダーサービス402はさらに監査証跡APIを保持してもよく、これによりユーザーのために行なわれたリソース作成/削除アクションの記録が可能となる。いくつかの例において、各アクションは、データベース126の各ユーザーアカウントに請求された費用のログを保持する目的で記録される。さらに、データベース126内にアカウントを有するユーザーコミュニティ102の各ユーザーは、Describe Stack Events APIを呼び出すことによりユーザーのログを検索してもよい。監査証跡APIはDescribe Stack Eventおよび/またはAdd Stack Eventを含んでいてもよい。
一方、スタックビルダーデーモン404は、スタック管理ワークフロー406と上述のジョブ状態のストレージとの統合にあたる。このデーモン404は、新しい/開始されなかった要求があるかどうかスタック要求テーブルを定期的に点検してもよく、これらの要求を扱うためにスタック管理ワークフロー406を生成してもよい。スタックビルダーデーモン404はさらに既存のスタック管理ワークフロー406を定期的に点検してもよく、ジョブ格納記録でこれらのワークフローのうちのいくつかを完了したものとしてマークしてもよい。これは、あらゆるフロントエンドのサービスからのスタック管理ワークフロー406呼び出しを効果的に切り離し得る。
最後に、スタック管理ワークフロー406は、スタック削除中のネットワークリソース108(1)〜(N)の正常なシャットダウンと終了の間と同様、スタック作成中にネットワークリソース108(1)〜(N)の作成および構成のための様々なステップの実行にあたる。
図5は、図1と図4のリソースプロビジョニングサービス106のスタック管理ワークフロー例406を示す。図示したように、スタック管理ワークフロー例406はシンプルワークフローサービス(SWF)502上に構築される。スタック管理ワークフロー406はスタック作成ワークフロータイプおよびスタック削除ワークフロータイプの2つのワークフロータイプを含む。スタック作成ワークフロータイプはスタック作成決定者504に関連付けられ、一方、スタック削除ワークフロータイプはスタック削除決定者506に関連付けられる。さらに、これらのワークフローは、対応する作成アクティビティ508、記述アクティビティ510および削除アクティビティ512に対応づけられ、これらは一緒になってスタックのコンテキストにおいてネットワークリソース108(1)〜(N)の作成、記述および削除を可能にする。
図6は、図1、4および5のアーキテクチャ内のテンプレートを使用したスタックを作成する処理例600を示す。「1」で、ユーザー例102(1)はスタック作成APIを呼び出し、インターフェース118へテンプレート名およびスタック名を渡す。「2」で、認証サービス602は要求を認証する。
「3」で、インターフェース118は、スタックビルダーサービス402、および特にスタックビルダーサービス402のAPIサーバ604に要求を委任する。スタックビルダーサービス402は、最初にスタック名を検証し、スタックリソース606を参照することにより選ばれた名前が別のスタックの複製ではないことを保証する。その後、スタックビルダーサービス402は、テンプレートメタデータ608を参照してテンプレート名が有効かどうかを確認する。スタック名およびテンプレート名の両方が有効な場合、スタックビルダーサービス402はスタックメタデータ(SDB)テーブル610においてスタックメタデータ(ネームスペース,スタック名,テンプレート名,Status=CREATE_PENDING)を固持し、成功した応答はユーザー102(1)に送信される。
「4」で、スタックビルダーデーモン404は、Status=CREATE_PENDINGのスタックをピックアップし、ネームスペース、テンプレートlD、スタックIDを作成されたワークフローに渡して、スタック作成ワークフローを始める。その後、デーモン404は、それらスタックのステータスをCREATE_IN_PROGRESSに更新する。デーモン404はさらに、スタック作成が進行中であることを示す監査証跡エントリを、監査証跡テーブル612へ入れる。
「5」で、スタック作成ワークフロータイプのスタック作成決定者504は、決定イベントのためSWF502を定期的にポーリングする。スタック作成決定者504の1つまたは複数がSWF502からワークフロー開始要求を受信する場合、それぞれの決定者504は作成ワークフロー要求の処理を開始する。
「6」で、スタック作成要求を受信すると、スタック作成決定者504は、スタック作成に関する監査証跡テーブル612へエントリを入れる。
「7」で、スタック作成決定者504はテンプレートサービス(例えばテンプレートメタデータ608)とコンタクトを取り、所与のテンプレートIDのテンプレートの内部表現を取得する。テンプレートを取得すると、決定者504は、リソースを作成する命令を計算する。これは、テンプレートもしくはテキストファイルからの暗黙的依存、またはユーザー102(1)により指定された明示的依存に基づいているかもしれない。一旦、決定者504がリソース作成の命令を決定すると、決定者504は、ネットワークリソース108(1)〜(N)のうちの1つの作成と構成を成功させるため、計算リストにネットワークリソース108(1)〜(N)に対応するリソース作成アクティビティ508の第1セットを(テンプレートでキャプチャーされた構成メタデータと一緒に)スケジューリングする。
「8」で、リソース作成アクティビティ508は、作業のためSWF502を定期的にポーリングする。「9」で、SWF502から特定のリソースを作成し構成するための作業を受信すると、リソース作成アクティビティ508は、リソースを作成し構成するために対応するネットワークリソースとコンタクトを取る。一旦、リソースへの作成リソース呼び出しが正常に返されると、リソース作成アクティビティ508は、アクティビティの正常完了によって、リソースの作成に成功したことをSWF502に示す。アクティビティにより作成に成功したリソースの物理的な識別子は、アクティビティの完成表示に添付されてもよい。
しかしながら、リソース作成アクティビティ508がリソースからエラー/失敗を受信する場合、アクティビティ508はactivity failed APIによってSWF502に失敗を報告する。アクティビティ508によりリソースから取得されたエラー/失敗メッセージは、SWF502へのアクティビティ失敗呼び出しに添付されてもよい。
「10」で、スタック作成決定者504は、作業のためSWF502を定期的にポーリングする。「11」で、スタック作成決定者504のうちの1つが、リソース作成アクティビティ508が正常に完了したことを示す情報を受信する場合、その後、スタック作成決定者504は、作成されたリソースに関する情報で結合サービスを更新する。これは、物理リソース識別子および作成タイムスタンプへの論理リソース識別子のマッピングを含む。決定者504はさらに、リソースの作成成功に関するエントリを、監査証跡テーブル612へ入れる。その後、決定者504は、作成されたリソースのステータスを記述するためにリソース記述アクティビティ510をスケジューリングする。
決定者504が、リソース作成アクティビティがタイムアウトしたという情報を得る場合、決定者504は次いで、リソース作成アクティビティ508の指定回数と終了を再度スケジューリングする。アクティビティ508が正常に完了するまで、またはリトライが最大回数に到達するまで、ステップ8から11を繰り返してもよい。リソース作成アクティビティのリトライが最大回数に到達している場合、決定者504は監査証跡テーブル612へ対応するエントリを入れ、ワークフローの終了を開始する。決定者504が、リソース作成アクティビティ508が失敗したという情報を得る場合、決定者504は、アクティビティ508により返されたエラーコードを調査する。エラーコードに基づいて、決定者504は、アクティビティタイムアウトに類似した方法でエラーを扱ってもよく、アクティビティをリトライしてもよい。
反対に、エラーコードに基づいて、決定者504は、アクティビティのリトライを行わないことを決定してもよく、その代り、リソース作成における失敗に関する情報で結合サービスを更新してもよい。この更新は、リソース作成を試行する間にアクティビティ508により受信されたエラーメッセージを記録し、対応するエントリを監査証跡テーブル612に入れ、ワークフローの終了を開始することを含んでもよい。
決定者504がワークフローの終了を開始する場合、以下のステップのシーケンスが実行され得る。まず決定者504はCREATE_FAILEDタグで(ワークフロー記録の状態フィールドを使用して)ワークフローに注釈を付ける。一旦、ワークフローがCREATE_FAILEDタグで注釈付けされると、決定者504はそのワークフローに対してそれ以上のアクティビティをスケジューリングしない。あるいは、一旦、ワークフローに過去にスケジューリングされたリソース作成アクティビティ508が動作を止めていると(例えば、完成もしくは失敗)、またはリトライの最大数に到達すると、決定者504はスタックの作成に成功できなかったことを示すエラーメッセージと共にワークフローを(Close Workflow SWF APIにより)終了する。
「12」で、リソース記述アクティビティ510は、作業のためSWF502を定期的にポーリングする。「13」で、SWF502から特定のネットワークリソースを記述するための作業を受信すると、リソース記述アクティビティ510は、リソースのステータスをチェックするために対応するネットワークリソースとコンタクトを取る。リソースが「アクティブ」状態である場合、アクティビティ510は正常に完了する。他の場合には、アクティビティ510はSWF502に失敗を報告する。
「14」で、スタック作成決定者504は、作業のためSWF502を定期的にポーリングする。スタック作成決定者504が、リソース記述アクティビティ510が正常に完了したことを示す情報を取得した場合、決定者504は監査証跡テーブル612へ対応するエントリを入れ、再度テンプレートサービス(例えばテンプレートメタデータ608)とコンタクトを取りテンプレートの内部表現を取得する。決定者504は、所与のスタックに対して作成された(ワークフロースタックヒストリーから取得された)リソースとテンプレートに記述されているリソースを比較し、まだ作成されていないリソースを決定する。作成されるリソースのセットが空の場合、それはスタックの作成に成功したことを示し、決定者504はワークフローを終了させる。しかしながら、リソースがまだ作成されていない場合、決定者504は、リソース作成アクティビティ508の次のバッチをスケジューリングする。全スタックが構築されるまで、処理600はステップ8から14を繰り返してもよい。
「15」で、決定者504が、リソース記述アクティビティ510がタイムアウトしたまたは失敗したことを示す情報を受信する場合、その後、決定者504は、リソース作成アクティビティ510の指定回数と終了を再度スケジューリングする。処理600は、アクティビティが正常に完了するまで、またはリトライが最大回数に到達するまで、ステップ12から14を繰り返してもよい。リソース作成アクティビティ508のリトライが最大回数に到達している場合、決定者504は監査証跡テーブル612へ対応するエントリを入れ、ワークフローの終了を開始する。決定者がワークフローを終了させる処理は、ステップ10で詳述したものと同じであってもよい。
「16」で、スタックビルダーデーモン404は、ワークフローがstatus=CREATE−IN−PROGRESSのスタックが完了したかどうかをチェックするためSWF502を定期的にポーリングする。一旦、スタックビルダーデーモン404が、スタックの作成が正常に終了したことを知ると、スタックビルダーデーモン404はCREATE−COMPLETEとしてスタックのステータスをマークする。しかしながら、スタックビルダーデーモン404がスタック作成に失敗したことを、ワークフローステータスのCREATE−FIELDタグにより認める場合、デーモン404はCREATE−FAILEDとしてスタックのステータスをマークする。失敗したスタック作成のクリーンアップの詳細は、後のスタック削除セクションにおいて議論される。一旦、スタック作成ワークフローが終了すると、スタックビルダーデーモン404は、エントリをスタック作成の成功/失敗に関する監査証跡テーブル612へ入れる。
図7は、図1、4および5のアーキテクチャ内のスタックを削除する処理例700を示す。「1」で、ユーザー例102(1)は、インターフェース118にスタック名を渡すDeleteStack APIを呼び出す。「2」で、認証サービス602は要求を認証する。
「3」で、インターフェース118はスタック名が検査されるスタックビルダーサービス402に要求を委任する。対応するスタックのステータスはDELETE_PENDINGとしてマークされる。
「4」で、スタックビルダーデーモン404はDELETE_PENDINGステータスのスタックを探し、SWF502とコンタクトを取りスタック削除タイプのワークフローを始める。ワークフローへの入力はスタックID、およびスタックが使用するテンプレートIDを含む。ここで、スタックメタデータ610のスタックのステータスは、DELETE_IN_PROGRESSに更新される。スタックビルダーデーモン404は、エントリを削除スタートが開始されたことを示す監査証跡テーブル612に書く。
「5」で、スタック削除ワークフロータイプの決定者506は、決定イベントのためSWF502を定期的にポーリングする。スタック削除決定者506の1つまたは複数がSWF502からワークフロー開始要求を受信する場合、決定者506はスタック削除要求の処理を開始する。
「6」で、スタック削除要求を受信すると、決定者506は監査証跡テーブル612へ対応するエントリを入れる。「7」で、決定者506はテンプレートサービス(例えばテンプレートメタデータ608)とコンタクトを取り、削除されるスタックに対応したテンプレートを取得する。テンプレートを受信すると、決定者506は、リソースを削除する命令を処理する。これは、スタックおよび/もしくはテンプレートにおいて暗黙的である依存、ならびに/またはユーザー102(1)が提示した明示的依存に基づいてなされ得る。
「8」で、ステップ7で計算されたリソース命令に基づいて、決定者506は、物理リソース識別子、およびDELETED状態でないリソースのリソースタイプを取得するため、結合サービスとコンタクトを取る。リソースタイプおよび識別子を取得すると、決定者506は、所与のスタックの一部分であるリソースを削除するために適切なリソース削除アクティビティ512をスケジューリングする。決定者506がDELETED状態にないリソースを一つも見つけることができない場合、スタックの削除は完了している。その後、決定者506はワークフローを終了する。
「9」で、リソース削除アクティビティ512は作業のためSWF502を、定期的にポーリングする。「10」で、SWF502からネットワークリソースを削除するための作業を受信すると、リソース削除アクティビティ512は、リソース削除するために対応するネットワークリソースとコンタクトを取る。特定のリソース削除アクティビティ512への入力には、削除されるリソースの物理的な識別子を含む。リソースに削除要求を提出すると、リソース削除アクティビティ512は、リソースのステータスをチェックするために対応するリソースを定期的にポーリングする。一旦、リソースが要求されたリソースの削除に成功したと宣言すると、アクティビティ512は、アクティビティ512の正常完了によって、SWF502に削除が成功したことを示す。ネットワークが特定のエラータイプを返す場合、アクティビティ512は決定者506に失敗を報告し、ActivityFailed APIと一緒にリソースにより返されたエラーメッセージを添付する。
「11」で、スタック削除ワークフロータイプの決定者506は、決定イベントのためSWF502を定期的にポーリングする。12で、アクティビティ完了に関する情報を得ることで、結合サービスはスタック内のリソースの削除を反映するために更新される。決定者506は成功したリソース削除に関する監査証跡テーブル612へ、対応エントリを入れる。全スタックが削除されるまで、処理700はステップ7から12を繰り返してもよい。決定者506が、リソース削除アクティビティ512がタイムアウトした、または失敗したという情報を受信する場合、決定者506はリソース削除アクティビティ506を指定回数分再度スケジューリングする。リトライ試行が最大回数に到達している場合、決定者506は、結合サービスのリソースのステータスおよび理由フィールドをDELETE_FAILEDと「最大削除試行回数に到達」に更新する。決定者506は、さらに監査証跡テーブル612に対応エントリを入れ、ワークフローメタデータのステータスフィールドを使用して、ワークフローにDELETE_FAILEDタグの注釈を付ける。
「13」で、スタックビルダーデーモン404は、ワークフローがstatus=DELETE_IN_PROGRESSのスタックに対して終了されているかどうかをチェックするため定期的にSWF502をポーリングする。一旦、スタックの削除が正常に完了したことがわかると、スタックビルダーデーモン404は、スタックのステータスをDELETE_COMPLETEへマークする。ワークフローにDELETE_FAILEDタグの注釈が付けられたことをデーモン404が発見する場合、スタックのステータスをDELETE_FAILEDへ更新する。
いくつかの例において、スタックの作成が進行中である間、およびスタックが完全に作成される前に、ユーザー例102(1)が、スタックの削除を開始する場合がある。この例において、リソースプロビジョニングサービス106はこれをスタックの作成を終了させるための要求と解釈し得る。このシナリオの下で、スタックビルダーサービス402はスタックのステータスをCREATE_CANCEL_PENDINGとしてマークする。スタックビルダーデーモン404はCREATE_CANCEL_PENDINGステータスのスタックをスキャンし、ワークフローの終了を要求する対応するスタック作成ワークフローにノートを付ける。その後、スタックビルダーデーモン404は、スタックのステータスをCREATE_CANCEL_IN_PROGRESSへ更新する。
ノートイベントの受信で、スタック作成決定者504は、未処理のアクティビティが動作をやめるのを待つことでワークフローの終了を開始する。ワークフローを終了するための手順は、スタック作成シナリオにおいて上述された手順と同じであってもよい。
スタックビルダーデーモン404は、スタック作成ワークフローがステータスCREATE_CANCEL_IN_PROGRESSであるスタックに対して終了されるかどうかをチェックするために定期的にSWF502をポーリングする。一旦、スタックビルダーデーモン404が、スタック作成が終了したことを発見すると、スタックビルダーデーモン404は、スタックのステータスをDELETE_PENDINGにマークする。スタック削除の処理は、スタック作成中に作成されたあらゆるリソースをクリーンアップする。
図8は図1、4および5のアーキテクチャ内のスタックを採用する処理例の図である。「1」で、ユーザー例102(1)は、AdoptStack APIを呼び出して、テンプレート名、スタック名およびスタック結合をキャプチャーするマップを渡す。「2」で、認証サービス602は要求を認証する。
「3」で、インターフェース118は、スタック名を検証する(例えば、複製などがあるかチェックする)スタックビルダーサービス402に要求を委任する。スタック名が無効の場合、フォルトがユーザーに返される。スタックビルダーサービス402が、テンプレート名の検証を試行し、テンプレート名が有効な場合、サービス402は次いで、テンプレート名により識別されたテンプレート、および結合マップが互いに一致していることを保証するためにスタックの結合マップの中身を検証する。テンプレート名が無効であるか、名前および結合マップにより識別されたテンプレートが矛盾する場合、フォルトがユーザーに返される。
「4」で、スタックビルダーサービス402は次いでテンプレートに記録されたリソースを記述するDescribeResource APIを呼び出し、結合マップに記録されたリソースが存在しユーザー102(1)により所有されることを確認する。結合マップに記録されたリソースがどれも存在しない場合、フォルトがユーザーに返される。スタックビルダーサービス402は、スタックのため一意の識別子を作成し、結合マップの中にある結合情報で新しく生成されたスタックの識別子に対して結合サービスに新しいエントリを挿入する。スタックビルダーサービス402はさらに、ユーザーが提供したスタック名および生成されたスタックの識別子の間の関連性を追加/更新するため、スタックメタデータテーブル610を挿入/更新する。スタックビルダーサービス402はさらに、スタックの採用を示す監査証跡テーブル612へエントリを挿入する。
図9は、スタックの作成または削除要求間の、内部スタック状態の遷移例を示す。この例で、902に示すように、スタック状態例の内部状態は最初に「スタック作成保留」に設定される。904で、リソースプロビジョニングサービス106はスタック作成ワークフローを開始する。906に示すように、これは内部スタック状態を「作成中」に変化させる。しかしながら、サービス106が908で示すようなスタックを削除する要求を受信する場合、910に示すように、内部スタック状態は「作成キャンセル保留」になる。
サービス106は、状態が「作成中」(906で示すように)である間、912のスタックを削除する要求をさらに受信する場合がある。これを受けて、内部スタック状態は910に示すように「作成キャンセル保留」へさらに遷移するだろう。
スタック作成ワークフローが進行中で、スタックを削除する要求が受信されない場合、サービス106は、スタック作成ワークフローが成功するかどうか914で判断する。成功した場合、その後内部スタック状態は916の「作成完了」に遷移する。成功しなかった場合、内部スタック状態は918の「作成失敗」に遷移する。前者の例において、サービス106は、920でスタックを削除する要求を受信する場合がある。この例で、内部スタック状態は922で示されるように、「削除保留」へ遷移する。
内部スタック状態が「作成失敗」となる例では、遷移900は924でスタックのクリーンアップを開始する。その後、内部スタック状態は922で示した「削除保留」に遷移する。
910の「作成キャンセル保留」の内部スタック状態に戻ると、上で議論したように遷移900は926でスタック作成ワークフローにノートを付ける。その後、内部スタック状態は928の「作成キャンセル中」に遷移する。その後、スタック作成ワークフローは930で完了し、922で示すように、スタック状態は「削除保留」に更新される。
内部スタック状態が「削除保留」である場合、スタック削除ワークフローは932から始まる。934で示したように、その後、内部スタック状態は「削除中」へ移行する。936で、サービス106はスタック削除ワークフローが正常に完了したかどうか判断する。正常に完了した場合、その後、内部スタック状態は938の「削除完了」に移行する。正常に完了しなかった場合、その後内部スタック状態は940の「削除失敗」に遷移する。その後、サービス106はワークフローをクリーンアップし、942でスタックを削除する要求を再度受信してもよい。これを受けて、内部スタック状態は922で示されるような「削除保留」に遷移する。
図10は、スタックの作成または削除要求間の、外部スタック状態の遷移例1000を図示する。この例において、1002で示されるように、スタック状態例の外部状態は最初に「作成中」に設定される。1004で、リソースプロビジョニングサービス106は、作成が成功するかどうか判断する。成功した場合、その後外部スタック状態は、1006の「作成完了」へ遷移する。成功しなかった場合、外部スタック状態は1008の「作成失敗」に遷移する。
1010で、サービス106は、スタックの削除要求を受信する。そのため、外部スタック状態は1012の「削除中」に遷移する。1014で、サービス106は、削除が成功したかどうか判断する。成功した場合、その後、外部スタック状態は1016の「削除完了」になる。成功しなかった場合、その後、外部スタック状態は1018の「削除失敗」になる。その後、1010で示したように、サービス106は再びスタックの削除要求を受信してもよい。
条項1。実行された場合、
複数の異なるネットワークリソースの各々に関連した1つまたは複数のパラメーターに従って、複数の異なるネットワークリソースのスタックをプロビジョニングするために少なくとも一部分が有効である、事前に入力された命令を含むテンプレートをユーザーのコンピューティング装置から受信すること;
受信を受けてテンプレートを少なくとも部分的に格納すること;
コンピューティング装置から、テンプレートを使用して複数の異なるネットワークリソースのスタックをプロビジョニングするための要求を受信すること;
プロビジョニングを要求された複数の異なるネットワークリソースの各々、および関連する1つまたは複数のパラメーターの各々を識別するためにテンプレートを検索し解析すること;および
解析を受けて少なくとも部分的に、ユーザーのために関連する1つまたは複数のパラメーターに従った、複数の異なるネットワークリソースの各々のプロビジョニングを試行すること
を含む行為を1つまたは複数のプロセッサに実行させる、コンピュータ実行可能命令を格納する1つまたは複数のコンピュータが読み込み可能な媒体。
条項2。複数の異なるネットワークリソースがストレージサービス、負荷分散サービス、計算サービスまたはセキュリティサービスを含む、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項3。複数の異なるネットワークリソースが、クラウドコンピューティングプラットホームの少なくとも一部分を形成する、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項4。複数の異なるネットワークリソースの各々に関連した1つまたはパラメーターが、各ネットワークリソースの要求サイズ、能力または特性を指定する、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項5。テンプレートが、ユーザーにより指定された論理名により複数の異なるネットワークリソースの少なくとも1つを識別する、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項6。テンプレートが、複数の異なるネットワークリソースの少なくとも1つに対して複数の異なるバージョンの特定のバージョンを指定する、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項7。複数の異なるネットワークリソースの各々のプロビジョニングの試行が、複数の異なるネットワークリソースの少なくとも2つの並行したプロビジョニングの試行を含む、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項8。複数の異なるネットワークリソースの各々のプロビジョニングの試行が、少なくとも一部分が複数の異なるネットワークリソースの部分間で指定された依存に基づいた順番で、複数の異なるネットワークリソースの各々のプロビジョニングを試行することを含む、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項9。指定された依存が暗黙的依存を含み、テンプレートの解析が複数の異なるネットワークリソースの部分間の暗黙的依存を識別するのに有効である、条項8に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項10。指定された依存にユーザーにより指定された明示的依存を含む、条項8に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項11。実行された場合、複数の異なるネットワークリソースの各々のプロビジョニングの成功を受けて、スタックが少なくとも部分的にプロビジョニングされたとユーザーに通知することを含む行為を1つまたは複数のプロセッサに実行させる、コンピュータ実行可能命令をさらに格納している、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項12。実行された場合、
複数の異なるネットワークリソースのうちの1つのプロビジョニングが失敗したという表示を受信すること;および
表示の受信を受けて、複数の異なるネットワークリソースのうち少なくとも部分的にプロビジョニングに成功した各リソースをロールバックすること
を含む行為を1つまたは複数のプロセッサに実行させる、コンピュータ実行可能命令をさらに格納している、条項1に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項13。実行された場合、表示を受けてスタックのプロビジョニングが少なくとも少なくとも部分的に失敗したとユーザーに通知すること含む行為を1つまたは複数のプロセッサに実行させる、コンピュータ実行可能命令をさらに格納している、条項12に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項14。実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で、
ユーザーから、テンプレートによって識別された複数の異なるネットワークリソースのスタックをプロビジョニングするための要求を受信すること;
プロビジョニングを要求された複数の異なるネットワークリソースの各々を識別するためにテンプレートを解析すること;
解析を受けて複数の異なるネットワークリソースの各々を少なくとも部分的にプロビジョニングすることを試行すること
を含み、
複数の異なるネットワークリソースの各々のプロビジョニングに成功した場合、ユーザーにスタックのプロビジョニングが成功したことを通知し;および
複数の異なるネットワークリソースの1つまたは複数のプロビジョニングに成功しなかった場合、ユーザーにスタックのプロビジョニングが成功しなかったことを通知する、方法。
条項15。複数の異なるネットワークリソースの各々はクラウドコンピューティングプラットホーム上に存在する、条項14に記載の方法。
条項16。ユーザーに関連したユーザーアカウントを維持することをさらに含み、複数の異なるネットワークリソースのプロビジョニングの試行が、ユーザーのために複数の異なるネットワークリソースのプロビジョニングを試行して、ネットワークリソースのプロビジョニングの成功に関連した費用が、ユーザーに関連したユーザーアカウントに請求される、条項14に記載の方法。
条項17。前記テンプレートが、前記複数の異なるリソースの少なくとも2つをプロビジョニングする要求のため事前に入力された命令を含む、条項14に記載の方法。
条項18。テンプレートが、複数の異なるネットワークリソースの各々への呼び出しを有するテキストベースの命令を含むテキストファイルを含む、条項14に記載の方法。
条項19。テンプレートが、複数の異なるネットワークリソースの少なくとも1つに対して複数の異なるバージョンの特定のバージョンを指定する、条項14に記載の方法。
条項20。テンプレートが、ユーザーにより選択された複数の異なるネットワークリソースのうちの1つのコンポーネントに論理名を指定する、条項14に記載の方法。
条項21。テンプレートの解析が、複数の異なるネットワークリソースの中の暗黙的依存を識別するためテンプレートを解析することを含み、複数の異なるネットワークリソースのプロビジョニングの前記試行が、少なくとも一部分が前記暗黙的依存に基づいた順番における前記複数の異なるネットワークリソースのプロビジョニングの試行を含む、条項14に記載の方法。
条項22。要求が、複数の異なるネットワークリソースの少なくとも2つの間の依存性を明示的に指定し、複数の異なるネットワークリソースのプロビジョニングの前記試行が、少なくとも一部分が依存に基づいた順番における前記複数の異なるネットワークリソースのプロビジョニングの試行を含む、条項14に記載の方法。
条項23。複数の異なるネットワークリソースのプロビジョニングの試行が、複数の異なるネットワークリソースのうち少なくともいくつかのプロビジョニングを並行して試行することを含む、条項14に記載の方法。
条項24。前記複数の異なるネットワークリソースの1つまたは複数のプロビジョニングに成功しなかった場合、プロビジョニングに成功した複数の異なるネットワークリソースのリソースをティアダウンすることをさらに含む、条項14に記載の方法。
条項25。1つまたは複数のプロセッサ;
1つまたは複数のプロセッサによりアクセス可能なメモリ;および
メモリに格納され、1つまたは複数のプロセッサ上で、
別個のネットワークリソースのスタックをテンプレート上の少なくとも一部分に基づいて作成する要求をユーザーから受信し、テンプレートは別個のネットワークリソースを含む前記スタックを作成するために事前に入力された命令を含み;
別個のネットワークリソースの各々を識別するためにテンプレートを解析し;および
ユーザーのため前記別個のネットワークリソースの各々のプロビジョニングを試行する
ために実行可能なテンプレートベースのスタックビルダー
を含む、装置。
条項26。テンプレートベースのスタックビルダーがユーザーのために別個のネットワークリソースの各々のプロビジョニングに成功した場合、スタックのプロビジョニングが成功したことを前記ユーザーに通知し;
前記テンプレートベースのスタックビルダーが前記ユーザーのために前記別個のネットワークリソースの少なくとも1つのプロビジョニングに成功しなかった場合、前記スタックのプロビジョニングが成功しなかったことを前記ユーザーに通知する
ために、前記テンプレートベースのスタックビルダーが前記1つまたは複数のプロセッサ上でさらに実行可能である、条項25に記載の装置。
条項27。前記テンプレートベースのスタックビルダーが前記ユーザーのために前記別個のネットワークリソースの少なくとも1つのプロビジョニングに成功しない場合、前記テンプレートベースのスタックビルダーがプロビジョニングに成功した前記別個のネットワークリソースの各々をロールバックする
ために、前記テンプレートベースのスタックビルダーが前記1つまたは複数のプロセッサ上でさらに実行可能である、条項26に記載の装置。
条項28。要求が、ウェブアプリケーションに対するスタックを作成する要求を含み、別個のネットワークリソースがクラウドベースの負荷分散サービス、クラウドベースの計算サービスおよびクラウドベースのストレージサービスを含む、条項25に記載の装置。
条項29。別個のネットワークリソースが、単一のエンティティにより管理されるクラウドコンピューティングプラットホームの少なくとも一部分を形成する、条項25に記載の装置。
条項30。別個のネットワークリソースのうちの1つが、第1のエンティティにより管理されるクラウドコンピューティングプラットホームの少なくとも一部分を形成し、別個のネットワークリソースのうちのもう1つが、第1のエンティティから独立している第2のエンティティにより管理されるクラウドコンピューティングプラットホームの少なくとも一部分を形成する、条項25に記載の装置。
条項31。複数の異なるテンプレートを格納する、または複数の異なるテンプレートへアクセスするデータベースをさらに含み、複数の異なるテンプレートの各々は別個のネットワークリソースを含むスタックを作成するため事前に入力された命令を含む、条項25に記載の装置。
条項32。複数の異なるテンプレートの少なくとも一部分が、独立したユーザーのコミュニティにより提供された、条項31に記載の装置。
条項33。実行された場合に、
別個のネットワークリソースの1セットを含むスタックを作成するために事前に入力された命令を含む複数の異なるテンプレートのうちの1つの選択を促進する、第1の領域;
選択されたテンプレートを使用して作成されるスタックを指定する、第2の領域;および
スタックの作成を要求する第3の領域:
を含むグラフィカルユーザーインターフェース(GUI)を1つまたは複数のプロセッサに描写させるコンピュータ実行可能命令を格納する1つまたは複数のコンピュータが読み込み可能な媒体。
条項34。複数の異なるテンプレートの各々が、エクステンシブルマークアップランゲージ(XML)フォーマットまたはジャバスクリプトオブジェクトノーテーション(JSON)フォーマットでの命令を含む、条項33に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
条項35。複数の異なるテンプレートの少なくとも一部分がユーザーのコミュニティの異なるユーザーにより提供される、条項33に記載の1つまたは複数のコンピュータが読み込み可能な媒体。
結論
主題を、構造的特徴および/または方法論的行為に特定したことばで記述してきたが、添付した特許請求の範囲に定義した主題は、前述の特定の特徴または行為には必ずしも限定されないことが理解されるべきである。むしろこの特定の特徴や行為は、特許請求の範囲を実施する形態の例として開示されている。

Claims (15)

  1. 実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で、
    ユーザーから、テンプレートによって識別された複数の異なるネットワークリソースのスタックをプロビジョニングするための要求を受信すること、
    プロビジョニングを要求された前記複数の異なるネットワークリソースの各々を識別するために前記テンプレートを解析すること、
    前記解析に応答して前記複数の異なるネットワークリソースの各々を少なくとも部分的にプロビジョニングすることを試行すること、
    前記複数の異なるネットワークリソースの各々が無事にプロビジョニングされる場合は、前記ユーザーに前記スタックのプロビジョニングが成功したことを通知すること、および
    前記複数の異なるネットワークリソースの1つまたは複数が無事にプロビジョニングされない場合は、前記ユーザーに前記スタックのプロビジョニングが成功しなかったことを通知すること、
    を含む、方法。
  2. 前記ユーザーに関連したユーザーアカウントを維持することをさらに含み、前記複数の異なるネットワークリソースのプロビジョニングを試行することは、ネットワークリソースのプロビジョニングの成功に関連する費用が、前記ユーザーに関連した前記ユーザーアカウントに請求されるよう、前記ユーザーのために前記複数の異なるネットワークリソースのプロビジョニングを試行することを含む、請求項1に記載の方法。
  3. 前記テンプレートが、前記複数の異なるリソースの少なくとも2つをプロビジョニングする要求のため事前に入力された命令を含む、請求項1に記載の方法。
  4. 前記テンプレートが、前記複数の異なるネットワークリソースの各々への呼び出しを有するテキストベースの命令を含むテキストファイルを含む、請求項1に記載の方法。
  5. 前記テンプレートが、前記複数の異なるネットワークリソースの少なくとも1つに対して複数の異なるバージョンの特定のバージョンを指定する、請求項1に記載の方法。
  6. 前記テンプレートが、前記ユーザーによって選択された前記複数の異なるネットワークリソースのうちの1つのコンポーネントのための論理的な名前を指定する、請求項1に記載の方法。
  7. 前記テンプレートを解析することは、前記複数の異なるネットワークリソースの中の暗黙的依存を識別するために前記テンプレートを解析することを含み、前記複数の異なるネットワークリソースのプロビジョニングを試行することは、前記暗黙的依存の少なくとも一部分に基づいた順番で前記複数の異なるネットワークリソースのプロビジョニングを試行することを含む、請求項1に記載の方法。
  8. 前記要求が、前記複数の異なるネットワークリソースの少なくとも2つの間の依存を明示的に指定し、前記複数の異なるネットワークリソースのプロビジョニングを試行することは、前記依存の少なくとも一部分に基づいた順番で前記複数の異なるネットワークリソースのプロビジョニングを試行することを含む、請求項1に記載の方法。
  9. 前記複数の異なるネットワークリソースの1つまたは複数が無事にプロビジョニングされなかった場合、プロビジョニングが成功した前記複数の異なるネットワークリソースのリソースをティアダウン(tear down)することをさらに含む、請求項1に記載の方法。
  10. 1つまたは複数のプロセッサ、
    前記1つまたは複数のプロセッサにアクセス可能なメモリ、および
    メモリに格納され、かつ、
    ユーザーから、テンプレートの少なくとも一部分に基づく別個のネットワークリソースのスタックを生成する要求を受信することであって、前記テンプレートは前記別個のネットワークリソースを含む前記スタックを生成するための事前に入力された命令を含む、こと、
    前記別個のネットワークリソースの各々を識別するために前記テンプレートを解析すること、および
    前記ユーザーのため前記別個のネットワークリソースの各々のプロビジョニングを試行すること、
    が前記1つまたは複数のプロセッサ上で実行可能なテンプレートベースのスタックビルダー、
    を含む、装置。
  11. 前記テンプレートベースのスタックビルダーはさらに、
    前記テンプレートベースのスタックビルダーが、前記ユーザーのために前記別個のネットワークリソースの各々のプロビジョニングに成功した場合、前記スタックのプロビジョニングが成功したことを前記ユーザーに通知すること、
    前記テンプレートベースのスタックビルダーが、前記ユーザーのために前記別個のネットワークリソースの少なくとも1つのプロビジョニングに成功しなかった場合、前記スタックのプロビジョニングが成功しなかったことを前記ユーザーに通知すること、
    のために、前記1つまたは複数のプロセッサ上で実行可能である、請求項10に記載の装置。
  12. 前記テンプレートベースのスタックビルダーはさらに、
    前記テンプレートベースのスタックビルダーが前記ユーザーのために前記別個のネットワークリソースの少なくとも1つのプロビジョニングの成功に失敗した場合、前記テンプレートベースのスタックビルダーがプロビジョニングに成功した前記別個のネットワークリソースの各々をロールバックすること、
    が前記1つまたは複数のプロセッサ上で実行可能である、請求項11に記載の装置。
  13. 前記要求は、ウェブアプリケーションに対する前記スタックを生成する要求を含み、前記別個のネットワークリソースは、クラウドベースの負荷分散サービス、クラウドベースの計算サービス、およびクラウドベースのストレージサービスを含む、請求項10に記載の装置。
  14. 前記別個のネットワークリソースのうちの1つが、第1のエンティティによって管理されるクラウドコンピューティングプラットホームの少なくとも一部分を形成し、前記別個のネットワークリソースのうちのもう1つが、前記第1のエンティティから独立している第2のエンティティによって管理されるクラウドコンピューティングプラットホームの少なくとも一部分を形成する、請求項10に記載の装置。
  15. 複数の異なるテンプレートを格納する、または複数の異なるテンプレートへアクセスするデータベースをさらに含み、前記複数の異なるテンプレートの各々は別個のネットワークリソースを含むスタックを生成するために事前に入力された命令を含む、請求項10に記載の装置。
JP2013518539A 2010-06-28 2011-06-27 複数のネットワークリソースのプロビジョニング Pending JP2013534675A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/824,723 US9178766B2 (en) 2010-06-28 2010-06-28 Provisioning multiple network resources
US12/824,723 2010-06-28
PCT/US2011/042050 WO2012006034A1 (en) 2010-06-28 2011-06-27 Provisioning multiple network resources

Publications (1)

Publication Number Publication Date
JP2013534675A true JP2013534675A (ja) 2013-09-05

Family

ID=45353589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013518539A Pending JP2013534675A (ja) 2010-06-28 2011-06-27 複数のネットワークリソースのプロビジョニング

Country Status (7)

Country Link
US (4) US9178766B2 (ja)
EP (2) EP2585988B1 (ja)
JP (1) JP2013534675A (ja)
CN (1) CN103038788B (ja)
CA (1) CA2803603C (ja)
SG (1) SG186847A1 (ja)
WO (1) WO2012006034A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519676A (ja) * 2012-06-15 2015-07-09 サイクル コンピューティング,エルエルシー クラウドインフラストラクチャ内のインフラストラクチャ欠陥を自動的に検出及び解決する方法及びシステム
JP2016170489A (ja) * 2015-03-11 2016-09-23 日本電気株式会社 プロビジョニング設定支援装置、プロビジョニング設定支援方法、そのプログラム及びシステム

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110264729A1 (en) * 2010-04-27 2011-10-27 Denis Kulgavin Augmentation of network traffic
US9178766B2 (en) 2010-06-28 2015-11-03 Amazon Technologies, Inc. Provisioning multiple network resources
US20120054626A1 (en) * 2010-08-30 2012-03-01 Jens Odenheimer Service level agreements-based cloud provisioning
US8667138B2 (en) * 2010-10-29 2014-03-04 Cisco Technology, Inc. Distributed hierarchical rendering and provisioning of cloud services
US8639793B2 (en) 2010-10-29 2014-01-28 Cisco Technology, Inc. Disaster recovery and automatic relocation of cloud services
US9276816B1 (en) * 2011-01-17 2016-03-01 Cisco Technology, Inc. Resource management tools to create network containers and virtual machine associations
US9235447B2 (en) 2011-03-03 2016-01-12 Cisco Technology, Inc. Extensible attribute summarization
JP2012243104A (ja) * 2011-05-19 2012-12-10 Buffalo Inc ファイル管理装置及びその制御プログラム
US8924542B1 (en) 2011-05-31 2014-12-30 Amazon Technologies, Inc. Methods and apparatus for scalable private services
US9251481B2 (en) * 2011-06-13 2016-02-02 Accenture Global Services Limited Distributed metering and monitoring system
US9319272B1 (en) * 2011-09-21 2016-04-19 Amazon Technologies, Inc. Methods and apparatus for providing composed appliance services in virtualized private networks
JP5484427B2 (ja) * 2011-10-27 2014-05-07 株式会社日立製作所 ネットワークシステムの管理方法、ネットワークシステム及び管理サーバ
US9436509B2 (en) * 2011-12-14 2016-09-06 Microsoft Technology Licensing, Llc Pre-provisioned web application platform site collections
US9009319B2 (en) * 2012-01-18 2015-04-14 Rackspace Us, Inc. Optimizing allocation of on-demand resources using performance
US8990619B1 (en) * 2012-02-21 2015-03-24 Cisco Technology, Inc. Method and systems to perform a rolling stack upgrade
US8825817B1 (en) * 2012-03-19 2014-09-02 Amazon Technologies, Inc. Using a template to update a stack of resources
US10089152B1 (en) 2012-03-19 2018-10-02 Amazon Technologies, Inc. Using scripts to bootstrap applications with metadata from a template
US8949930B1 (en) 2012-03-19 2015-02-03 Amazon Technologies, Inc. Template representation of security resources
US10963420B2 (en) * 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US9292352B2 (en) 2012-08-10 2016-03-22 Adobe Systems Incorporated Systems and methods for cloud management
US9667470B2 (en) 2012-09-07 2017-05-30 Oracle International Corporation Failure handling in the execution flow of provisioning operations in a cloud environment
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9253113B2 (en) 2012-09-07 2016-02-02 Oracle International Corporation Customizable model for throttling and prioritizing orders in a cloud environment
US9203866B2 (en) 2012-09-07 2015-12-01 Oracle International Corporation Overage framework for cloud services
US10148530B2 (en) 2012-09-07 2018-12-04 Oracle International Corporation Rule based subscription cloning
US10419524B2 (en) * 2012-09-07 2019-09-17 Oracle International Corporation System and method for workflow orchestration for use with a cloud computing environment
US9542400B2 (en) 2012-09-07 2017-01-10 Oracle International Corporation Service archive support
US9276942B2 (en) 2012-09-07 2016-03-01 Oracle International Corporation Multi-tenancy identity management system
US9467355B2 (en) 2012-09-07 2016-10-11 Oracle International Corporation Service association model
US10521746B2 (en) 2012-09-07 2019-12-31 Oracle International Corporation Recovery workflow for processing subscription orders in a computing infrastructure system
US9058219B2 (en) 2012-11-02 2015-06-16 Amazon Technologies, Inc. Custom resources in a resource stack
US9122510B2 (en) * 2013-01-02 2015-09-01 International Business Machines Corporation Querying and managing computing resources in a networked computing environment
US9569476B2 (en) 2013-04-02 2017-02-14 International Business Machines Corporation Intelligent data routing and storage provisioning
US20140358991A1 (en) * 2013-05-31 2014-12-04 Fluke Corporation Integrating data from various network nodes using a template stack
US9239715B1 (en) * 2013-09-25 2016-01-19 Amazon Technologies, Inc. Cancel and rollback update stack requests
US9479451B1 (en) 2013-10-18 2016-10-25 Google Inc. Allocating resources
CN104639361B (zh) * 2013-11-15 2019-04-19 中兴通讯股份有限公司 网络服务模板的管理方法和装置
US9807057B1 (en) 2013-12-17 2017-10-31 Amazon Technologies, Inc. Private network peering in virtual network environments
US9444735B2 (en) 2014-02-27 2016-09-13 Cisco Technology, Inc. Contextual summarization tag and type match using network subnetting
US10673712B1 (en) * 2014-03-27 2020-06-02 Amazon Technologies, Inc. Parallel asynchronous stack operations
CN106471465B (zh) 2014-04-09 2019-10-22 康维达无线有限责任公司 服务启用器功能
US10516667B1 (en) 2014-06-03 2019-12-24 Amazon Technologies, Inc. Hidden compartments
US10089476B1 (en) 2014-06-03 2018-10-02 Amazon Technologies, Inc. Compartments
CN104092755B (zh) * 2014-07-07 2017-06-13 武汉科技大学 一种云服务起源数据的捕获方法和装置
US9787499B2 (en) 2014-09-19 2017-10-10 Amazon Technologies, Inc. Private alias endpoints for isolated virtual networks
US9882775B1 (en) * 2014-10-22 2018-01-30 Amazon Technologies, Inc. Dependent network resources
US10565534B2 (en) 2014-11-11 2020-02-18 Amazon Technologies, Inc. Constraints and constraint sharing in a catalog service platform
US11244261B2 (en) * 2014-11-11 2022-02-08 Amazon Technologies, Inc. Catalog service platform for deploying applications and services
US10089676B1 (en) 2014-11-11 2018-10-02 Amazon Technologies, Inc. Graph processing service component in a catalog service platform
US9832118B1 (en) 2014-11-14 2017-11-28 Amazon Technologies, Inc. Linking resource instances to virtual networks in provider network environments
US10212161B1 (en) 2014-11-19 2019-02-19 Amazon Technologies, Inc. Private network layering in provider network environments
US10277522B1 (en) * 2014-11-26 2019-04-30 Amazon Technologies, Inc. Automated association of computing resources with resource creators for usage allocation
US10021196B1 (en) 2015-06-22 2018-07-10 Amazon Technologies, Inc. Private service endpoints in isolated virtual networks
US10142174B2 (en) 2015-08-25 2018-11-27 Oracle International Corporation Service deployment infrastructure request provisioning
US10523591B2 (en) * 2015-12-08 2019-12-31 Microsoft Technology Licensing, Llc Discovering resource availability across regions
US10389847B1 (en) * 2015-12-23 2019-08-20 Mitel Networks, Inc. Provisioning resources in a communications system
US10574523B2 (en) 2016-01-15 2020-02-25 RightScale Inc. Systems and methods for cloud-deployments with imperatives
US10341250B2 (en) 2016-05-25 2019-07-02 Accenture Global Solutions Limited Device based automatic network provisioning
US10623252B2 (en) * 2016-12-13 2020-04-14 International Business Machines Corporation Performing actions that have been defined for provisioned instances
US11044145B2 (en) 2016-12-13 2021-06-22 International Business Machines Corporation Configuring and naming of cloud provisioning entities
US11153273B2 (en) 2016-12-13 2021-10-19 International Business Machines Corporation Generating and managing names of instances
US10498810B2 (en) * 2017-05-04 2019-12-03 Amazon Technologies, Inc. Coordinating inter-region operations in provider network environments
US11144363B1 (en) 2017-09-18 2021-10-12 Amazon Technologies, Inc. Workflow management system
US11108702B1 (en) * 2017-12-11 2021-08-31 Amazon Technologies, Inc. Customized command execution for a computing resource fleet
US11513864B2 (en) * 2018-03-22 2022-11-29 Amazon Technologies, Inc. Adoption of existing virtual computing resources into logical containers for management operations
US11086685B1 (en) 2018-04-25 2021-08-10 Amazon Technologies, Inc. Deployment of virtual computing resources with repeatable configuration as a resource set
US10595191B1 (en) 2018-12-06 2020-03-17 At&T Intellectual Property I, L.P. Mobility management enhancer
US10929200B1 (en) 2019-09-16 2021-02-23 International Business Machines Corporation Live runtime infrastructure orchestration
US11822878B2 (en) * 2021-02-24 2023-11-21 Think Research Corporation Systems, methods and devices for structured dynamic electronic forms
US11704484B2 (en) 2021-04-30 2023-07-18 Bank Of America Corporation Cross channel digital data parsing and generation system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086769A (ja) * 2002-08-28 2004-03-18 Nec Corp アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
JP2005056201A (ja) * 2003-08-05 2005-03-03 Hitachi Software Eng Co Ltd 異種混合計算機接続システム及びシステムにおける処理割り当て方法及び課金方法
JP2005266917A (ja) * 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
JP2007520814A (ja) * 2004-01-27 2007-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーション プロビジョニングデータ処理システムにおいてリソースを識別、予約、および論理的にプロビジョニングする方法、システム、およびプログラム
JP2007193696A (ja) * 2006-01-20 2007-08-02 Rikogaku Shinkokai 支援プログラム、支援プログラム生成プログラム、支援プログラム生成方法、ファイル生成・配布方法、及びインストールサーバ
JP2009217321A (ja) * 2008-03-07 2009-09-24 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
WO2010023139A1 (en) * 2008-08-25 2010-03-04 International Business Machines Corporation Provisioning virtual resources using name resolution
JP2010140403A (ja) * 2008-12-15 2010-06-24 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496840B1 (en) * 2000-05-31 2002-12-17 International Business Machines Corporation Method, system and program products for atomically and persistently swapping resource groups
US7085834B2 (en) 2000-12-22 2006-08-01 Oracle International Corporation Determining a user's groups
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
US7352853B1 (en) 2001-05-22 2008-04-01 Cisco Technology, Inc. Automation of customer premises equipment provisioning in a telecommunications network
US6766364B2 (en) 2002-01-15 2004-07-20 Telcordia Technologies, Inc. Template based configuration and validation of a network for enabling a requested service to be compatible with the previously enabled services
AU2003224673A1 (en) * 2002-03-08 2003-09-22 Enleague Systems, Inc Methods and systems for modeling and using computer resources over a heterogeneous distributed network using semantic ontologies
US20050021688A1 (en) 2003-02-25 2005-01-27 David Felts System and method for domain configuration
US7457853B1 (en) 2003-07-03 2008-11-25 Cisco Technology, Inc. Method and apparatus for automatically configuring a network device
US20070112574A1 (en) 2003-08-05 2007-05-17 Greene William S System and method for use of mobile policy agents and local services, within a geographically distributed service grid, to provide greater security via local intelligence and life-cycle management for RFlD tagged items
US7246200B1 (en) 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US7290164B1 (en) 2004-03-03 2007-10-30 Cisco Technology, Inc. Method of reverting to a recovery configuration in response to device faults
US8326658B1 (en) 2004-04-12 2012-12-04 Amazon Technologies, Inc. Generation and contextual presentation of statistical data reflective of user selections from an electronic catalog
US7873960B2 (en) 2004-08-04 2011-01-18 Microsoft Corporation Generic packaging tool for packaging application and component therefor to be installed on computing device
US8359390B2 (en) * 2004-09-29 2013-01-22 Fujitsu Limited Method and system for provisioning services on a communication network
JP4628149B2 (ja) 2005-03-14 2011-02-09 株式会社エヌ・ティ・ティ・ドコモ アクセス制御装置及びアクセス制御方法
US7957413B2 (en) 2005-04-07 2011-06-07 International Business Machines Corporation Method, system and program product for outsourcing resources in a grid computing environment
GB0514191D0 (en) * 2005-07-12 2005-08-17 Ibm Methods, apparatus and computer programs for optimized parsing and service invocation
US8024440B2 (en) 2006-05-03 2011-09-20 Netapp, Inc. Configuration verification, recommendation, and animation method for a disk array in a storage area network (SAN)
US7496893B2 (en) * 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
CN101166173B (zh) * 2006-10-20 2012-03-28 北京直真节点技术开发有限公司 一种单点登录系统、装置及方法
US8327350B2 (en) 2007-01-02 2012-12-04 International Business Machines Corporation Virtual resource templates
US20080288239A1 (en) * 2007-05-15 2008-11-20 Microsoft Corporation Localization and internationalization of document resources
US7844903B2 (en) 2007-05-25 2010-11-30 Dell Products, Lp System and method of automatically generating animated installation manuals
US20080294777A1 (en) * 2007-05-25 2008-11-27 Alexei Karve Method and apparatus for template-based provisioning in a service delivery environment
US8938735B2 (en) 2007-08-31 2015-01-20 Thomson Reuters Global Resources Bootstrapper and software download manager
US8370802B2 (en) 2007-09-18 2013-02-05 International Business Machines Corporation Specifying an order for changing an operational state of software application components
JP5192798B2 (ja) * 2007-12-25 2013-05-08 株式会社日立製作所 サービス提供システム、ゲートウェイ、およびサーバ
US20090171730A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Non-disruptively changing scope of computer business applications based on detected changes in topology
US8332459B2 (en) 2008-02-26 2012-12-11 International Business Machines Corporation Federation of composite applications
US8510718B2 (en) 2008-06-30 2013-08-13 Ubs Ag Platform verification portal
US8572580B2 (en) 2008-07-28 2013-10-29 Microsoft Corporation Computer application packages with customizations
US8819201B2 (en) 2008-08-07 2014-08-26 At&T Intellectual Property I, L.P. Method and apparatus for providing routing and access control filters
US9037692B2 (en) 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US9870541B2 (en) * 2008-11-26 2018-01-16 Red Hat, Inc. Service level backup using re-cloud network
US8775574B2 (en) 2008-11-26 2014-07-08 Red Hat, Inc. Remote network management having multi-node awareness
US20100154024A1 (en) 2008-12-12 2010-06-17 At&T Intellectual Property I, L.P. Methods, appliances, and computer program products for controlling access to a communication network based on policy information
US8331362B2 (en) 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8565118B2 (en) 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8856333B2 (en) * 2009-06-16 2014-10-07 Microsoft Corporation Datacenter execution templates
US8769391B2 (en) 2009-08-24 2014-07-01 Adobe Systems Incorporated Application broker
KR101768236B1 (ko) 2009-10-01 2017-08-14 텔레폰악티에볼라겟엘엠에릭슨(펍) 애플리케이션 범위 관리를 위한 방법 및 장치
US8615585B2 (en) * 2010-05-28 2013-12-24 International Business Machines Corporation Ontology based resource provisioning and management for services
US10073706B2 (en) 2010-06-25 2018-09-11 Oracle International Corporation Method and system for performing application server configuration using configuration groups
US9178766B2 (en) 2010-06-28 2015-11-03 Amazon Technologies, Inc. Provisioning multiple network resources
US8699499B2 (en) 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
JP5476485B2 (ja) 2011-01-05 2014-04-23 株式会社日立製作所 サービスの予約管理方法、仮想計算機システム及び記憶媒体
US20120246630A1 (en) 2011-03-23 2012-09-27 Secure By Design System and Method for Automating Installation and Updating of Third Party Software
US9177132B2 (en) 2011-10-12 2015-11-03 International Business Machines Corporation Capturing data parameters in templates in a networked computing environment
US9003141B2 (en) 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
US8984606B2 (en) 2011-12-22 2015-03-17 Hewlett-Packard Development Company, L.P. Re-authentication
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US8825817B1 (en) 2012-03-19 2014-09-02 Amazon Technologies, Inc. Using a template to update a stack of resources

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086769A (ja) * 2002-08-28 2004-03-18 Nec Corp アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
JP2005056201A (ja) * 2003-08-05 2005-03-03 Hitachi Software Eng Co Ltd 異種混合計算機接続システム及びシステムにおける処理割り当て方法及び課金方法
JP2007520814A (ja) * 2004-01-27 2007-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーション プロビジョニングデータ処理システムにおいてリソースを識別、予約、および論理的にプロビジョニングする方法、システム、およびプログラム
JP2005266917A (ja) * 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
JP2007193696A (ja) * 2006-01-20 2007-08-02 Rikogaku Shinkokai 支援プログラム、支援プログラム生成プログラム、支援プログラム生成方法、ファイル生成・配布方法、及びインストールサーバ
JP2009217321A (ja) * 2008-03-07 2009-09-24 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
WO2010023139A1 (en) * 2008-08-25 2010-03-04 International Business Machines Corporation Provisioning virtual resources using name resolution
JP2012501021A (ja) * 2008-08-25 2012-01-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法
JP2010140403A (ja) * 2008-12-15 2010-06-24 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519676A (ja) * 2012-06-15 2015-07-09 サイクル コンピューティング,エルエルシー クラウドインフラストラクチャ内のインフラストラクチャ欠陥を自動的に検出及び解決する方法及びシステム
US10025678B2 (en) 2012-06-15 2018-07-17 Microsoft Technology Licensing, Llc Method and system for automatically detecting and resolving infrastructure faults in cloud infrastructure
JP2016170489A (ja) * 2015-03-11 2016-09-23 日本電気株式会社 プロビジョニング設定支援装置、プロビジョニング設定支援方法、そのプログラム及びシステム

Also Published As

Publication number Publication date
EP2585988B1 (en) 2018-08-29
US20110320605A1 (en) 2011-12-29
US9178766B2 (en) 2015-11-03
CN103038788B (zh) 2020-03-31
US20160072920A1 (en) 2016-03-10
EP3410357B1 (en) 2020-10-21
EP2585988A4 (en) 2014-04-30
EP2585988A1 (en) 2013-05-01
EP3410357A1 (en) 2018-12-05
US10057374B2 (en) 2018-08-21
CN103038788A (zh) 2013-04-10
CA2803603A1 (en) 2012-01-12
US20190007526A1 (en) 2019-01-03
SG186847A1 (en) 2013-02-28
US11758006B2 (en) 2023-09-12
US20240040006A1 (en) 2024-02-01
CA2803603C (en) 2017-07-11
WO2012006034A1 (en) 2012-01-12

Similar Documents

Publication Publication Date Title
US20240040006A1 (en) Provisioning multiple network resources
US7890802B2 (en) System and method for automated and assisted resolution of IT incidents
JP5197843B1 (ja) 認証連携システムおよびidプロバイダ装置
US9077717B2 (en) Propagation and adoption of extensions across applications in networked solutions
US8955037B2 (en) Access management architecture
US7065588B2 (en) Method and system for data transformation in a heterogeneous computer system
US8838679B2 (en) Providing state service for online application users
CN114666412A (zh) 混合云计算系统中的访问服务
CN109032663A (zh) 接口文档的生成方法、装置、计算机设备及存储介质
US20170324570A1 (en) Group management method, apparatus, and system
TW200841241A (en) Method for implementing management software, hardware with pre-configured software and implementing method thereof
WO2017079604A1 (en) Incident management to maintain control of restricted data in cloud computing environments
CN110636057B (zh) 一种应用访问方法、装置和计算机可读存储介质
EP3513316B1 (en) Personalized search environment
US10003691B1 (en) On-demand generation of a contact center
JP5445692B2 (ja) 情報処理装置およびプログラム
JP2012137995A (ja) リソース提供システム、アクセス制御プログラム及びアクセス制御方法
JP6119189B2 (ja) ライセンス管理装置、ライセンス管理システム、及びライセンス管理方法
WO2016173444A1 (zh) 事务处理的记录方法及装置
JP2008071082A (ja) ワークフロー管理システム、ワークフロー管理方法及びワークフロー管理プログラム
JP2007272363A (ja) トランザクション処理システム
JP2012181803A (ja) トランザクション管理システム、管理装置、サーバ装置、トランザクション管理方法、及びプログラム
JP2005234934A (ja) Aspによるサービスの構築管理システム、aspによるサービスの構築管理方法。

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151001

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20151008

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20151204