JP6849642B2 - 要求処理技術 - Google Patents
要求処理技術 Download PDFInfo
- Publication number
- JP6849642B2 JP6849642B2 JP2018191339A JP2018191339A JP6849642B2 JP 6849642 B2 JP6849642 B2 JP 6849642B2 JP 2018191339 A JP2018191339 A JP 2018191339A JP 2018191339 A JP2018191339 A JP 2018191339A JP 6849642 B2 JP6849642 B2 JP 6849642B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- application
- instance
- computer
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title description 60
- 238000005516 engineering process Methods 0.000 title description 6
- 238000000034 method Methods 0.000 claims description 246
- 230000008569 process Effects 0.000 claims description 139
- 230000015654 memory Effects 0.000 claims description 117
- 230000004044 response Effects 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 15
- 230000001149 cognitive effect Effects 0.000 description 14
- 239000000872 buffer Substances 0.000 description 12
- 238000005192 partition Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002950 deficient Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 239000010979 ruby Substances 0.000 description 3
- 229910001750 ruby Inorganic materials 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/4555—Para-virtualisation, i.e. guest operating system has to be modified
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本出願は、それぞれ2013年8月12日に出願された同時係属中の、「PER REQUEST COMPUTER SYSTEM INSTANCES」と題する米国特許出願第13/964,977号、「APPLICATION BOOT IMAGE」と題する同第13/964,941号、及び「REQUEST PROCESSING TECHNIQUES」と題する同第13/964,889号の優先権を主張し、当該の内容を引用により本明細書の一部として援用するものである。
本明細書に記述し提案する技術は、計算リソース要求処理に係わる計算リソースを効率的に使用できる。ある実施形態において、要求を受信した時、要求に応答するために仮想マシンが構成されてもよい。仮想マシンは、従来のオペレーティングシステム、及びネイティブネットワークスタックなど各種のコンポーネントが不足した状態に構成されてもよい。そういったコンポーネントを不足せずに備えた状態では、要求処理がより遅くなってしまうであろう。要求処理が既に必要無い、または後に必要で無くなる場合、仮想マシンを提供しなくてもよい。
ある実施形態において、システムはフロントエンドリスナを備える。フロントエンドリスナは、リスナを2つ備えてもよい。各仮想マシンがそれぞれアプリケーションをサービスするが、第一リスナは、その複数のアプリケーションに向けた要求を待つよう構成されてもよい。第二リスナは、以下で詳述するが、第一リスナが受信した要求の複製要求を待つよう構成されてもよい。第一リスナの機能について、フロントエンドリスナの複製を作成し、様々なホスト名、ポート、アプリケーションパス、ユニフォームリソースロケータ(URL)、及び/またはユニフォームリソース識別子(URI)など、複数のネットワークアドレスで要求を待つようにしてもよい。ある実施形態において、ドメインネームシステム(DNS)は、複数のドメイン名(または、一般的に、情報の複数インスタンス)を、フロントエンドリスナに対応する同一のネットワーク(例えば、IP)アドレスに結び付けるよう構成されてもよい。ドメイン名または情報のインスタンスが違えば、異なるアプリケーションイメージに対応してもよい。
要求を受信すると、フロントエンドリスナは、要求キューにワークトークンをエンキューしてもよい。要求トークンは、要求及び要求関連データの判断を可能にする情報を含んでもよい。ワーカハイパーバイザ内で動作するワーカコントローラは、要求キュー内にある、次に使用可能なメッセージを入手するなどして、要求ワークトークンをデキューしてもよい。あるいは、要求トークンをワーカハイパーバイザにプッシュしてもよい。要求ワークトークンをデキューまたはその他の方法で取得すると、ワーカコントローラは、ワークトークンを用い、利用可能なアプリケーションイメージセットの中から適切なアプリケーションイメージを判断し、ローカルのキャッシュ、または外部のデータストレージシステムであるアプリケーションイメージのリポジトリの中から、判断した適切なアプリケーションイメージを検索してもよい。
・ 実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
実行可能部を備えるアプリケーションソースを受信し、
当該アプリケーションソースを解析し、当該実行可能部の実行における変動ポイントを判断し、
判断した当該変動ポイントの少なくとも一部に基づく停止ポイントまで、仮想マシンインスタンスにより当該実行可能部を実行し、
当該仮想マシンインスタンスを当該停止ポイントで停止させ、
停止させた当該仮想マシンインスタンスのスナップショットを、当該変動ポイントで、または当該変動ポイント以前で取り、
当該スナップショットを用いて別の仮想マシンインスタンスをインスタンス化する、ことを備える、コンピュータ実施方法。
・ 1項に記載のコンピュータ実施方法において、
当該アプリケーションソースを解析することは、判断した当該変動ポイントを含む1つまたは複数の変動ポイントの1つまたは複数の位置について、当該アプリケーションソースにアノテーションを付けることを含み、
当該停止ポイントは、少なくとも一部の当該アノテーション付アプリケーションソースに基づいている、当該コンピュータ実施方法。
・ 2項に記載のコンピュータ実施方法において、当該アプリケーションソースにアノテーションを付けることは、当該アプリケーションソースに参照された1つまたは複数の機能を、変動ポイントに対応する機能一覧に照らすことを含む、当該コンピュータ実施方法。
・ 先行する項目のいずれかに記載のコンピュータ実施方法において
当該方法ではさらに、当該変動ポイント以前の実行において、セーフポイントであると判断されるポイントに相当する状態に、当該仮想マシンインスタンスを復元することを備え、
実行において当該セーフポイントであると判断される当該ポイントで、当該スナップショットを取る、当該コンピュータ実施方法。
・ 先行する項目のいずれかに記載のコンピュータ実施方法において、当該停止ポイントまで当該実行可能部を実行することは、当該実行可能部の実行をモニタリングし、当該停止ポイントを検出することを含む、当該コンピュータ実施方法。
・ 先行する項目のいずれかに記載のコンピュータ実施方法において、当該スナップショットは、当該仮想マシンインスタンスのメモリ空間の少なくとも一部のコピーを符号化し、1つまたは複数のプロセッサレジスタの1つまたは複数の状態、1つまたは複数のフラグの1つまたは複数の状態、1つまたは複数のプログラムカウンタの1つまたは複数の状態、或いは、1つまたは複数のエントリポイントアドレスを備える、当該コンピュータ実施方法。
・ 先行する項目のいずれかに記載のコンピュータ実施方法において、別の仮想マシンインスタンスをインスタンス化するのに当該スナップショットを使用することは、仮想マシンインスタンスのインスタンス化に使用可能なアプリケーションイメージのリポジトリに、当該スナップショットを追加し、当該別の仮想マシンインスタンスのインスタンス化において、当該リポジトリから当該スナップショットを検索することを含む、当該コンピュータ実施方法。
・ 実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
アプリケーションソースの実行可能部にある、1つまたは複数の変動ポイントを特定し、
コンピュータシステムインスタンスにより、当該アプリケーションソースの当該実行可能部の実行をモニタリングし、特定した当該1つまたは複数の変動ポイントから1つの変動ポイントを特定し、
特定した当該1つの変動ポイントの少なくとも一部に基づくポイントで、当該コンピュータシステムインスタンスのスナップショットを取り、
取った当該スナップショットの少なくとも一部に基づく、別のコンピュータシステムインスタンスのインスタンス化に使用可能な、アプリケーションイメージを格納する、ことを備える、コンピュータ実施のアプリケーションイメージ作成方法。
・ 8項に記載のコンピュータ実施方法において、当該1つまたは複数の変動ポイントの各変動ポイントは、複数回の実行において、アプリケーション動作の実行結果に潜在的に変動をもたらす1つまたは複数のコンピュータ実行可能命令に対応する、当該コンピュータ実施方法。
・ 8項または9項に記載のコンピュータ実施方法において、当該1つまたは複数の変動ポイントを特定することは、
当該アプリケーションソースで指定された1つまたは複数の機能を特定し、
特定された当該1つまたは複数の機能が、潜在的に変動ポイントになると判断された機能一覧にあるかを判断する、ことを含む、当該コンピュータ実施方法。
・ 8項乃至10項のいずれかに記載のコンピュータ実施方法において、当該スナップショットを取ることは、特定した当該変動ポイントでまたは当該変動ポイント以前でセーフポイントを特定することを含み、当該セーフポイントは、復元可能なコンピュータシステムの状態であり、別のコンピュータシステム上で当該アプリケーションソースの当該実行可能部を当該コンピュータシステムの状態からレジューム可能な、当該コンピュータシステムの状態に対応することを受け特定される、当該コンピュータ実施方法。
・ 8項乃至11項のいずれかに記載のコンピュータ実施方法において、
当該スナップショットを取ることは、特定した当該変動ポイントでまたは当該変動ポイント以前でセーフポイントを特定することを含み、
当該セーフポイントの特定は、当該コンピュータシステムの、異なる時点で取られる複数のスナップショットセットのうち、1つまたは複数のスナップショットに適用されるセーフポイント基準の少なくとも一部に基づいている、当該コンピュータ実施方法。
・ システムであって、
1つまたは複数のプロセッサ、及び
実行可能な命令を備えるメモリを備え、
当該命令は、当該1つまたは複数のプロセッサにより実行されると、当該システムに第一サブシステムを実施させ、
当該第一サブシステムは、
アプリケーションソースの少なくとも一部に基づきコンピュータシステムインスタンスをインスタンス化し、
当該アプリケーションソースの実行可能部を、インスタンス化した当該コンピュータインスタンスにより実施してモニタリングし、変動ポイントを特定し、
特定した当該変動ポイントの少なくとも一部に基づき、当該コンピュータシステムインスタンスのスナップショットを取り、
取った当該スナップショットの少なくとも一部に基づく、別のコンピュータシステムインスタンスのインスタンス化に使用可能な、アプリケーションイメージを格納させるよう、構成されるシステム。
・ さらに第二サブシステムを備え、当該第二サブシステムは、当該アプリケーションソースの当該実行可能部を処理し、複数変動ポイントのセットを特定し、特定された当該変動ポイントは、特定された当該複数変動ポイントセットから特定されるよう構成された、13項に記載の当該システム。
・ 13項または14項に記載のシステムにおいて、当該コンピュータシステムインスタンスをインスタンス化することは、
当該アプリケーションソースの少なくとも一部に基づき、ブートストラッププログラムを選択すること、
選択した当該ブートストラッププログラムを実行することを含む、当該システム。
・ 13項乃至15項のいずれかに記載のシステムにおいて、
当該システムはさらに、コンピュータシステムインスタンスのインスタンス化のため別のシステムがアクセス可能なアプリケーションイメージリポジトリを備え、
当該アプリケーションイメージを格納させることは、当該アプリケーションイメージを当該アプリケーションイメージリポジトリに送信することを含む、当該システム。
・ 13項乃至16項のいずれかに記載のシステムにおいて、
当該アプリケーションソースに、潜在的な変動ポイントを示す1つまたは複数のアノテーションを付け、
当該アプリケーションソースの当該実行可能部の実行を、当該1つまたは複数のアノテーションの少なくとも一部に基づいてモニタリングする、当該システム。
・ 13項乃至17項のいずれかに記載のシステムにおいて、特定した当該変動ポイントは、当該アプリケーションソースから確定的に導出できないが実行結果に対応することを受け特定される、当該システム。
・ 13項乃至18項のいずれかに記載のシステムにおいて、当該アプリケーションソースの当該実行可能部の、インスタンス化された当該コンピュータシステムインスタンスによる実行をモニタリングすることは、インスタンス化された当該コンピュータシステムインスタンスのメモリページが当該変動ポイントに対応する命令を備えることにより、インスタンス化した当該コンピュータシステムインスタンスを中断させる割り込みを発行することを含む、当該システム。
・ 13項乃至19項のいずれかに記載のシステムにおいて、当該アプリケーションソースの当該実行可能部の、インスタンス化された当該コンピュータシステムインスタンスによる実行をモニタリングすることは、インスタンス化された当該コンピュータシステムインスタンスの外部にあるプロセスに、当該実行が当該変動ポイントに到達したことを通知し、当該プロセスが、インスタンス化された当該コンピュータシステムインスタンスを停止させ得るようにすることを含む、当該システム。
・ コンピュータ読取可能記憶媒体であって、該コンピュータ読取可能記憶媒体に格納された命令を有し、当該命令がコンピュータシステムの1つまたは複数のプロセッサにより実行されると、当該命令は当該コンピュータシステムに、少なくとも、
実行可能部を備えるアプリケーションソースを取得させ、
コンピュータシステムインスタンスに、少なくともいくつかの当該実行可能部を実行させ、
当該実行可能部を部分的に実行した後ではあるが完了前に、当該コンピュータシステムインスタンスのスナップショットを取らせ、当該スナップショットを別のコンピュータシステムインスタンスのインスタンス化に使用可能にし、当該実行可能部の実行を、当該スナップショットが取られたポイントで開始可能にする、コンピュータ読取可能記憶媒体。
・ 21項に記載のコンピュータ読取可能記憶媒体において、
取得した当該アプリケーションソースを、当該実行可能部の実行を停止する潜在的な1つまたは複数のポイントを示すアノテーションと併せて取得し、
当該コンピュータシステムインスタンスに少なくともいくつかの当該実行可能部を実行させる際、当該スナップショットの取る前の当該アノテーションのうちの1つのアノテーションに従い、当該コンピュータシステムインスタンスを停止する、当該コンピュータ読取可能記憶媒体。
・ 21項または22項に記載のコンピュータ読取可能記憶媒体において、当該命令はさらに、当該コンピュータシステムに、仮想マシンとして当該コンピュータシステムインスタンスをインスタンス化させる、当該コンピュータ読取可能記憶媒体。
・ 21項乃至23項のいずれかに記載のコンピュータ読取可能記憶媒体において、当該コンピュータシステムインスタンスの当該スナップショットを取ることは、
当該実行可能部の実行においてあるポイントを、当該ポイントでの中央処理装置の状態の少なくとも一部に基づき判断し、
判断した当該ポイントでの当該コンピュータシステムインスタンスの当該スナップショットを取ることを含む、当該コンピュータ読取可能記憶媒体。
・ 21項乃至24項のいずれかに記載のコンピュータ読取可能記憶媒体において、取った当該スナップショットは、当該コンピュータシステムインスタンスのメモリ空間の、少なくとも一部のコピーを備え、1つまたは複数のプロセッサレジスタの1つまたは複数の状態、1つまたは複数のフラグの1つまたは複数の状態、1つまたは複数のプログラムカウンタの1つまたは複数の状態、或いは、1つまたは複数のエントリポイントアドレスを備える、当該コンピュータ読取可能記憶媒体。
・ 21項乃至25項のいずれかに記載のコンピュータ読取可能記憶媒体において、当該命令はさらに、当該コンピュータシステムに、少なくとも一部の当該スナップショットに基づくアプリケーションイメージを、アプリケーションイメージのリポジトリに送信させ、各アプリケーションイメージを仮想マシンインスタンスのインスタンス化に使用可能にする、当該コンピュータ読取可能記憶媒体。
・ ハイパーバイザを実施する計算デバイス、及び
フロントエンドリスナを備え、
当該フロントエンドリスナは、
ネットワークを介して送信された要求を受信し、
受信した当該要求の少なくとも1つのサブセットの各要求に対し、当該要求に対応するワークトークンを当該ハイパーバイザに提供するよう、構成され、
当該ハイパーバイザは、
当該フロントエンドリスナからワークトークンを受信し、
受信した当該ワークトークンの少なくとも1つのサブセットの各ワークトークンに対し、
少なくとも一部の当該ワークトークンに基づき、当該ワークトークンに対応する要求の処理に使用可能なアプリケーションイメージを選択し、
少なくとも、選択された当該アプリケーションイメージの当該コピー部分のエントリポイントアドレスを特定し、特定された当該エントリポイントの少なくとも一部に基づきアプリケーションコードの実行を開始することにより、少なくとも一部の選択された当該アプリケーションイメージに基づき仮想コンピュータシステムをインスタンス化し、
当該ワークトークンを用いて、当該フロントエンドリスナから、当該ワークトークンに対応する当該要求のコピーを取得し、当該ワークトークンに対応する当該要求の当該コピーを、インスタンス化された当該仮想コンピュータシステムに提供し、当該仮想コンピュータシステムにより処理されるよう、構成されるシステム。
・ 27項に記載のシステムにおいて、
当該ワークトークンを提供することは、少なくとも一部の当該要求に基づき、複数の要求キューから要求キューを選択し、選択した当該要求キューに当該ワークトークンをエンキューすることを含む、当該システム。
・ 27項または28項に記載のシステムにおいて、
当該ワークトークンを提供することは、要求キューに当該ワークトークンをエンキューし、
当該フロントエンドリスナから複数のワークトークンを受信する際、当該要求キューから当該複数ワークトークンをデキューすることを含む、当該システム。
・ 27項乃至29項のいずれかに記載のシステムにおいて、当該仮想コンピュータシステムをインスタンス化することは、少なくとも一部の選択した当該アプリケーションイメージを、当該仮想コンピュータシステムのメモリパーティションにコピーすることを含む、当該システム。
・ 27項乃至30項のいずれかに記載のシステムにおいて、当該アプリケーションイメージは、別の仮想コンピュータシステムのスナップショットの少なくとも一部に基づいており、当該別のコンピュータシステムは、当該アプリケーションイメージに対応するアプリケーションコードの実行可能部を部分的に実行した、当該システム。
・ 27項乃至31項のいずれかに記載のシステムにおいて、当該ワークトークンを用いて当該要求の当該コピーを取得することは、
当該ワークトークンにおいて符号化された当該要求の識別子を当該フロントエンドリスナに提供し、
当該フロントエンドリスナにより、提供された当該識別子の少なくとも一部に基づき、当該要求を配置し、
配置された当該要求を当該計算デバイスに送信する、ことを含む、当該システム。
・ 要求に応答するためのコンピュータ実施方法であって、
実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
当該要求を受信したフロントエンドリスナにより、受信した要求に対応するトークンを受信し、
当該トークンを受信したことを受け、当該要求を処理する仮想コンピュータシステムをインスタンス化し、
受信した当該トークンを用いて、当該フロントエンドリスナから当該要求のコピーを取得し、
当該要求の取得した当該コピーを用いて、当該仮想コンピュータシステムにより当該要求を処理する、コンピュータ実施方法。
・ 33項に記載のコンピュータ実施方法において、当該フロントエンドリスナ及び当該仮想コンピュータシステムは、別の計算デバイスにより実施される、当該コンピュータ実施方法。
・ 33項または34項に記載のコンピュータ実施方法において、当該仮想コンピュータシステムをインスタンス化することは、
当該要求の処理に使用可能なアプリケーション用のアプリケーションイメージを、アプリケーションイメージのリポジトリから入手し、
当該アプリケーションイメージの少なくとも一部を、当該仮想コンピュータシステム用に割当てられたメモリにロードし、
ロードされた当該一部を実行するエントリポイントを特定し、
ロードされた当該一部の実行を開始することを含む、当該コンピュータ実施方法。
・ 35項に記載のコンピュータ実施方法において、当該アプリケーションイメージを入手することは、当該要求に関連する情報の少なくとも一部に基づき当該アプリケーションイメージを選択することを含み、当該要求に関連する当該情報は、当該要求の1つまたは複数のメッセージヘッダの少なくとも1つ、当該要求のメッセージ本体、当該要求の送信先であるネットワークアドレスに対応するユニフォームリソースロケータ、または、当該ネットワークアドレスを含む、当該コンピュータ実施方法。
・ 35項に記載のコンピュータ実施方法において、当該アプリケーションイメージに対応するアプリケーションコードの実行可能部を部分的に実行した場合、当該アプリケーションイメージは、停止状態の別の仮想コンピュータシステムの少なくとも一部のスナップショットに基づく、当該コンピュータ実施方法。
・ 33項乃至37項のいずれかに記載のコンピュータ実施方法において、当該トークンを受信することは、トークンのキューから当該トークンをデキューすることを含み、当該トークンのそれぞれは当該フロントエンドリスナにより受信された要求に対応している、当該コンピュータ実施方法。
・ 33項乃至38項のいずれかに記載のコンピュータ実施方法において、さらに、当該要求の処理が完了したことを受け、当該仮想コンピュータシステムを終了させることを備える、前記コンピュータ実施方法。
・ 非一時的なコンピュータ読取可能記憶媒体であって、格納された命令を有し、当該命令がコンピュータシステムの1つまたは複数のプロセッサにより実行されると、当該命令は当該コンピュータシステムに、少なくとも、
コントローラを実施させ、当該コントローラは、
フロントエンドリスナが要求を受信した旨の通知を受信し、
受信した当該通知の少なくとも1つのサブセットの各通知に対し、
仮想コンピュータシステムをインスタンス化し、対応する要求を処理し、
インスタンス化した当該仮想コンピュータシステムに、当該フロントエンドリスナから当該要求のコピーを取得させ、当該要求を処理させるよう、構成される、コンピュータ読取可能記憶媒体。
・ 40項に記載のコンピュータ読取可能記憶媒体において、
当該命令はさらに、当該コンピュータシステムにハイパーバイザを実施させ、
当該仮想コンピュータシステム及び当該コントローラは、当該ハイパーバイザの異なるドメインで動作する、当該コンピュータ読取可能記憶媒体。
・ 40項または41項に記載のコンピュータ読取可能記憶媒体において、当該コントローラはさらに、当該コンピュータシステムの要求処理容量の、少なくとも一部の1つまたは複数回の測定に基づき、当該コンピュータシステムにより同時処理される要求数を調整するよう構成された、当該コンピュータ読取可能記憶媒。
・ 40項乃至42項のいずれかに記載のコンピュータ読取可能記憶媒体において、当該通知は、当該フロントエンドリスナからの当該要求の位置確認に使用可能な情報を符号化するトークンである、当該コンピュータ読取可能記憶媒体。
・ 40項乃至43項のいずれかに記載のコンピュータ読取可能記憶媒体において、当該通知を受信することは、キューから対応トークンをデキューすることを含む、当該コンピュータ読取可能記憶媒体。
・ 40項乃至44項のいずれかに記載のコンピュータ読取可能記憶媒体において、インスタンス化した当該仮想システムに当該要求の当該コピーを取得させることは、
当該仮想コンピュータシステムによる当該要求の入手の試みを検出し、
当該通知からの情報を用い、当該フロントエンドリスナから当該要求の当該コピーを取得する、ことを含む、当該コンピュータ読取可能記憶媒体。
・ リスナ及びコントローラを備え、
当該リスナは、
要求を受信し、当該受信された要求は、それぞれ異なるアプリケーションによりサービス可能である複数の要求のサブセットを備え、
受信した当該要求の少なくとも1つのサブセットの各要求に対し、
当該要求についての通知を出し、
少なくとも一部の当該通知に基づく第二要求を受信し、
当該第二要求の少なくとも一部の応答に基づき、当該要求のコピーを提供するよう構成され、
当該コントローラは、
当該リスナから出された通知を受信し、
出された当該通知の少なくとも1つのサブセットの、出され受信された各通知に対し、
出された当該通知を用い、当該リスナから出され受信された当該通知に対応する要求のコピーを取得し、
出され受信された当該通知の少なくとも一部に基づき、複数のアプリケーションイメージから、出され受信された当該通知に対応する当該要求の処理が可能なアプリケーションのアプリケーションイメージを選択し、
選択された当該アプリケーションイメージの少なくとも一部に基づき、仮想コンピュータシステムをインスタンス化し、出され受信された当該通知に対応する当該要求の、少なくとも一部の取得した当該コピーに基づき、当該仮想コンピュータシステムに当該要求を処理させるよう、構成されるシステム。
・ 46項に記載のシステムにおいて、受信された当該要求は、異なるネットワークアドレスにアドレス指定された要求を含み、当該異なるネットワークアドレスの各ネットワークアドレスは、当該複数のアプリケーションイメージの異なるアプリケーションイメージに対応している、当該システム。
・ 46項または47項に記載のシステムにおいて、当該コントローラはさらに、出され受信された当該通知に対応する当該要求と当該通知とのコネクションを確立し、当該アプリケーションが当該リスナから当該要求のコピーを取得出来るよう構成された、当該システム。
・ 46項乃至48項のいずれかに記載のシステムにおいて、通知を出すことは、要求キューにトークンをエンキューすることを含む、当該システム。
・ 46項乃至49項のいずれかに記載のシステムにおいて、選択された当該アプリケーションイメージは、別の仮想コンピュータシステムインスタンスのスナップショットの少なくとも一部に基づいている、当該システム。
・ 46項乃至50項のいずれかに記載のシステムにおいて、
出された当該通知を受信することは、出された当該通知をキューからデキューすることを含み、
当該コントローラはさらに、要求処理容量を検出したことを受け、キューされた通知をデキューするよう構成された、当該システム。
・ 要求を処理するためのコンピュータ実施方法であって、
実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
ハイパーバイザにより、仮想コンピュータシステムインスタンス及びコントローラを実施して、
当該仮想コンピュータシステムインスタンスが、当該要求の受信に使用するプロトコルスタックの1つまたは複数層の実施を不足させるよう、
当該コントローラが、当該仮想コンピュータシステムインスタンスにより当該1つまたは複数層が不足した当該プロトコルスタックを実施させるよう、
共有メモリ領域を、当該仮想コンピュータシステムインスタンス及び当該コントローラの双方からアクセス可能になるようにし、
当該コントローラから当該仮想コンピュータシステムインスタンスへの当該要求のデータを、当該メモリ領域に配置し、
当該共有メモリ領域から当該仮想コンピュータシステムに当該データを提供し、
当該仮想コンピュータシステムから当該コントローラへの、当該要求に対する応答のデータを、当該共有メモリ領域に配置し、
当該共有メモリ領域から当該コントローラに当該応答の当該データを提供し、
当該コントローラの当該プロトコルスタックの当該1つまたは複数の層の当該実施を行い、当該要求に対する当該応答を提供する、コンピュータ実施方法。
・ 52項に記載のコンピュータ実施方法において、
当該方法ではさらに、当該仮想コンピュータシステムインスタンス及び当該コントローラの双方がアクセス可能な当該ハイパーバイザに対するハイパーコールインタフェースを通して、当該ワーカコントローラのハイパーコールハンドラに通知を出し、
当該ハイパーコールハンドラが当該通知を受信したことを受け、当該共有メモリ領域から当該コントローラに当該応答の当該データを提供する、ことを備えるコンピュータ実施方法。
・ 52項または53項に記載のコンピュータ実施方法において、
当該共有メモリ領域に当該要求の当該データを配置することは、当該共有メモリ領域の制御域に、当該制御域の当該データの1つまたは複数の位置を書込むことを含み、
当該共有メモリ領域から当該仮想コンピュータシステムインスタンスに当該データを提供することは、当該制御域に書込まれた当該1つまたは複数の位置の少なくとも一部に基づき、当該データを配置することを含む、当該コンピュータ実施方法。
・ 52項乃至54項のいずれかに記載のコンピュータ実施方法ではさらに、
当該仮想コンピュータシステムインスタンスにより、第一オブジェクトモデルを用いて第一リスナオブジェクトを作成し、
当該コントローラにより、当該第一リスナオブジェクトに対応する第二リスナオブジェクトを作成して、当該要求を受信する、ことを備える、コンピュータ実施方法。
・ 52項乃至55項のいずれかに記載のコンピュータ実施方法において、当該要求はハイパーテキスト転送プロトコル要求である、当該コンピュータ実施方法。
・ 52項乃至56項のいずれかに記載のコンピュータ実施方法ではさらに、
当該ハイパーバイザにより、第二仮想コンピュータシステムインスタンスを実施して、第二共有メモリ領域に、当該第二仮想コンピュータシステムインスタンス及び当該コントローラの双方がアクセス可能になるようにすることを備え、
当該プロトコルスタックの当該1つまたは複数の層の当該実施を当該コントローラが使用して、当該第二仮想コンピュータシステムインスタンスの要求を処理する、コンピュータ実施方法。
・ 実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
ハイパーバイザの第一ドメインで、コンピュータシステムインスタンスを実施し、
当該ハイパーバイザの第二ドメインで、コントローラを実施し、当該コントローラは、当該コンピュータシステムインスタンスと共有するメモリ領域にアクセスし、当該コンピュータシステムインスタンスにより実施される共有層のプロトコルスタックを備えた、複数層の当該プロトコルスタックを実施し、
当該プロトコルスタックを用いて受信された要求を満たすが、少なくとも、
当該共有層の当該プロトコルスタック及び当該メモリ領域を用いて、当該コンピュータシステムインスタンスから当該コントローラに、当該要求に対する応答データを渡し、
当該複数層の当該プロトコルスタックのうち、当該コンピュータシステムインスタンスの実施に不足がある少なくとも1つの層を用いて、当該第二ドメインで当該応答データに対し1つまたは複数の動作を実施することを備える、コンピュータ実施方法。
・ 58項に記載のコンピュータ実施方法において、当該要求はハイパーテキスト転送プロトコル要求である、当該コンピュータ実施方法。
・ 58項または59項に記載のコンピュータ実施方法において、当該共有層は当該プロトコルスタックのアプリケーション層である、当該コンピュータ実施方法。
・ 58項乃至60項のいずれかに記載のコンピュータ実施方法において、当該要求に対する当該応答データを渡すことは、当該コンピュータシステムインスタンスが、当該ハイパーバイザのハイパーコールインタフェースに対する準仮想デバイスドライバと対話したことを受け、当該コントローラにハイパーコールを送信することを含む、当該コンピュータ実施方法。
・ 58項乃至61項のいずれかに記載のコンピュータ実施方法において
当該メモリ領域は、制御空間及び複数の要求スロットを備えるよう構成され、
当該コンピュータシステムインスタンスから当該コントローラに当該応答データを渡すことは、少なくとも当該制御空間にアクセスし、当該複数の要求スロットのうち少なくとも一部の当該応答データを有する1つの要求スロットを判断することにより、当該コントローラに当該応答データを取得させることを含む、当該コンピュータ実施方法。
・ 58項乃至62項のいずれかに記載のコンピュータ実施方法において、当該要求を満たすことは、当該第二ドメインで受信された当該要求に対応する第一要求を当該第一ドメインに生成することを含む、当該コンピュータ実施方法。
・ 1つまたは複数のプロセッサ、及び
命令を備えたメモリを備え、
当該命令は、当該1つまたは複数のプロセッサにより実行されると、当該システムに、
ハイパーバイザ、
当該ハイパーバイザ上で動作する1つまたは複数のコンピュータシステムインスタンス、
当該ハイパーバイザ上で動作するコントローラ、及び
当該1つまたは複数のコンピュータシステムインスタンスの各コンピュータシステムインスタンスに対し、当該コンピュータシステムインスタンス及び当該コントローラにより共有されるメモリ空間、を実施させ、
当該ハイパーバイザ、当該コンピュータシステムインスタンス、及び当該コントローラは、当該メモリ空間に当該要求データを配置することで利用可能になる要求に対する応答のデータについて、当該コンピュータシステムインスタンスから当該コントローラにハイパーコールを通して通知し、少なくとも部分的に当該コントローラにより当該コンピュータシステムの当該要求が満たされるよう一括して構成されるシステム。
・ 64項に記載のシステムにおいて、当該コンピュータシステムインスタンスは、当該ハイパーバイザにより実施されたハイパーコールインタフェースに対する準仮想デバイスドライバを備え、当該コンピュータシステムインスタンス及びコントローラのどちらか一方からのハイパーコールが、当該コンピュータシステムインスタンス及び当該コントローラの他方への通信のトリガとなるようにする、当該システム。
・ 64項または65項に記載のシステムにおいて、
当該コントローラは、プロトコルスイートの第一層セットを実施して備え、
当該コンピュータシステムインスタンスは、当該プロトコルスイートの第二層セットを実施して備え、
当該第一層セット及び当該第二層セットは、異なるが共通部分を有し、
当該要求を満たすことは、当該コントローラにより当該プロトコルスイートの当該第一層セットを使用することを含む、当該システム。
・ 64項乃至66項のいずれかに記載のシステムにおいて、当該要求はHTTP要求である、当該システム。
・ 64項乃至67項のいずれかに記載のシステムにおいて、当該要求データを当該メモリ空間に配置することは、当該メモリ空間の第一部に第一データを書込むこと、当該メモリ空間の第二部に第二データを書込むことを含み、当該第一データは、当該メモリ空間の当該第二部にある当該第二データの位置を示す、当該システム。
・ 64項乃至68項のいずれかに記載のシステムにおいて、当該コントローラはハイパーコールハンドラを備え、当該ハイパーコールハンドラは、当該ハイパーバイザのハイパーコールインタフェースからハイパーコールを受信し、当該メモリ空間にアクセスして要求をサービスすべきか判断するよう構成された、当該システム。
・ コンピュータ読取可能記憶媒体であって、格納された命令を有し、当該命令がコンピュータシステムの1つまたは複数のプロセッサにより実行されると、当該命令は当該コンピュータシステムに、少なくとも、
ハイパーバイザの第一ドメインにコンピュータシステムインスタンス、
当該ハイパーバイザの第二ドメインにコントローラ、及び
当該コントローラ及び当該コンピュータシステムインスタンスの双方がアクセス可能なメモリ領域、を実施させ、
当該コンピュータシステムインスタンス及びコントローラは、連携して要求処理するよう一括で構成され、要求を満たすことは、
当該ハイパーバイザのハイパーコールインタフェース及び当該メモリ領域を用いて、当該コンピュータシステムインスタンスと当該コントローラとの間でデータを渡すこと、
当該コンピュータシステムインスタンス及び当該コントローラの双方にそれぞれ、当該データに関連して1つまたは複数の動作を実行させるようにすること、を含む、コンピュータ読取可能記憶媒体。
・ 70項に記載のコンピュータ読取可能記憶媒体において、当該要求はハイパーテキスト転送プロトコル要求である、当該コンピュータ読取可能記憶媒体。
・ 70項または71項に記載のコンピュータ読取可能記憶媒体において、当該コンピュータシステムインスタンスと当該コントローラとの間で当該データを渡すことは、当該コンピュータシステムインスタンスは、準仮想デバイスドライバと対話し、当該メモリ領域にある当該データについての通知を、当該コントローラに向け出させることを含む、当該コンピュータ読取可能記憶媒体。
・ 72項に記載のコンピュータ読取可能記憶媒体において、当該通知は当該要求の識別子を備え、当該コンピュータシステムインスタンスと当該コントローラとの間で当該データを渡すことは、さらに、当該識別子を用いて位置を判断し、当該メモリ領域に格納された複数のデータインスタンスから当該要求データを選択することを含む、当該コンピュータ読取可能記憶媒体。
・ 70項乃至73項のいずれかに記載のコンピュータ読取可能記憶媒体において、
当該コントローラは、当該コンピュータシステムインスタンスにより実施されない、1つまたは複数層のプロトコルスタックを実施し、
当該要求処理では、当該1つまたは複数層の当該プロトコルスタックを使用する、当該コンピュータ読取可能記憶媒体。
・ 70項乃至74項のいずれかに記載のコンピュータ読取可能記憶媒体において、
当該命令はさらに、当該コンピュータシステムに別の1つまたは複数のコンピュータシステムインスタンスを実施させ、
実施された当該1つまたは複数層の当該プロトコルスタックは、当該別の1つまたは複数のコンピュータシステムインスタンスのそれぞれの要求処理に使用され、
当該メモリ領域に、当該別の1つまたは複数のコンピュータシステムインスタンスがアクセスできない、当該コンピュータ読取可能記憶媒体。
Claims (15)
- 実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
実行可能部を備えるアプリケーションソースを受信し、
前記アプリケーションソースを解析し、前記実行可能部の実行における変動ポイントを判断し、
判断した前記変動ポイントの少なくとも一部に基づく停止ポイントまで、仮想マシンインスタンスにより前記実行可能部を実行し、
前記仮想マシンインスタンスを前記停止ポイントで停止させ、
停止させた前記仮想マシンインスタンスのスナップショットを、前記変動ポイントで、または前記変動ポイント以前で取り、
前記スナップショットを用いて別の仮想マシンインスタンスをインスタンス化する、ことを備える、
コンピュータ実施方法。 - 前記アプリケーションソースを解析することは、前記アプリケーションソースに、判断した前記変動ポイントを含む1つまたは複数の変動ポイントの1つまたは複数の位置のアノテーションを付けることを含み、
前記停止ポイントは、少なくとも一部の前記アノテーションが付されたアプリケーションソースに基づく、請求項1に記載のコンピュータ実施方法。 - 前記アプリケーションソースにアノテーションを付けることは、前記アプリケーションソースに参照された1つまたは複数の機能を、変動ポイントに対応する機能一覧に照らすことを含む、請求項2に記載のコンピュータ実施方法。
- 前記方法はさらに、前記変動ポイント以前の実行において、セーフポイントであると判断されるポイントに相当する状態に、前記仮想マシンインスタンスを復元することを備え、
実行において前記セーフポイントであると判断される前記ポイントで、前記スナップショットを取る、請求項1〜3のいずれか一項に記載のコンピュータ実施方法。 - 前記停止ポイントまで前記実行可能部を実行することは、前記実行可能部の実行をモニタリングし、前記停止ポイントを検出することを含む、請求項1〜4のいずれか一項に記載のコンピュータ実施方法。
- 前記スナップショットは、前記仮想マシンインスタンスのメモリ空間の少なくとも一部のコピーを符号化し、1つまたは複数のプロセッサレジスタの状態、1つまたは複数のフラグの状態、1つまたは複数のプログラムカウンタの状態、或いは、1つまたは複数のエントリポイントアドレスを備える、請求項1〜5のいずれか一項に記載のコンピュータ実施方法。
- 実行可能な命令を備えて構成された1つまたは複数のコンピュータシステムの制御のもと、
1つまたは複数のアプリケーションソースの実行可能部にある変動ポイントを特定することであって,前記1つまたは複数の変動ポイントのそれぞれは1つまたは複数のコンピュータ実行可能命令に対応し,複数回行った前記1つまたは複数のコンピュータ実行可能命令の実行結果に潜在的に様々な変動が見られるような、前記変動ポイントを特定することと、
仮想マシンインスタンスにより、前記アプリケーションソースの前記実行可能部の実行をモニタリングし、前記1つまたは複数の変動ポイントから1つの変動ポイントを特定することと、
前記仮想マシンインスタンスで前記アプリケーションソースを実行し、特定した前記変動ポイントのうち前記1つの変動ポイントに基づき、前記仮想マシンインスタンスを停止させることと、
前記仮想マシンインスタンスを停止させた前記1つの変動ポイントで、前記仮想マシンインスタンスのスナップショットを取ることと、
取った前記スナップショットの少なくとも一部に基づき、別の仮想マシンインスタンスのインスタンス化に使用可能であるアプリケーションイメージを格納することと、を備える、
コンピュータ実施方法。 - 特定された前記1つまたは複数の変動ポイントは、実行の実行結果が前記アプリケーションソースからは確定的に導出できない、実行可能部の実行におけるポイントに対応する、請求項7に記載のコンピュータ実施方法。
- 前記アプリケーションソースで指定された1つまたは複数の機能を特定することと、
特定された前記1つまたは複数の機能が、潜在的に変動ポイントになると判断された機能一覧にあるかを判断することと、を含む、請求項7又は8に記載のコンピュータ実施方法。 - 前記スナップショットを取ることは、特定した前記変動ポイントでまたは前記変動ポイント以前でセーフポイントを特定することを含み、前記セーフポイントは、復元可能なコンピュータシステムの状態であり、別のコンピュータシステム上で前記アプリケーションソースの前記実行可能部を前記コンピュータシステムの状態からレジューム可能な、前記コンピュータシステムの状態に対応することを受け特定される、請求項7〜9のいずれか一項に記載のコンピュータ実施方法。
- 1つまたは複数のプロセッサ、及び
実行可能な命令を備えるメモリを備え、
前記1つまたは複数のプロセッサにより実行されると、第一サブシステムが実施され、
前記第一サブシステムは、
アプリケーションソースの少なくとも一部に基づきコンピュータシステムインスタンスをインスタンス化し、
変動ポイントを特定するため、
前記コンピュータシステムインスタンスのメモリページが前記変動ポイントに対応する命令を含むことによって、前記コンピュータシステムインスタンスを中断させる割り込みを発行するため、前記アプリケーションソースの実行可能部の実行をモニタリングし、
特定した前記変動ポイントの少なくとも一部に基づき、前記コンピュータシステムインスタンスのスナップショットを取り、
別のコンピュータシステムインスタンスのインスタンス化に使用可能であり、取った前記スナップショットの少なくとも一部に基づくアプリケーションイメージを格納させる、
システム。 - さらに、前記アプリケーションソースの前記実行可能部を処理し、変動ポイントのセットから複数変動ポイントのセットを特定するよう構成された第二サブシステムを備える、請求項11に記載のシステム。
- 前記アプリケーションソースの少なくとも一部に基づき、ブートストラッププログラムを選択することと、
選択した前記ブートストラッププログラムを実行することと、を含む、請求項11又は12に記載のシステム。 - 前記システムはさらに、コンピュータシステムインスタンスのインスタンス化のため、別のシステムによるアクセス可能なアプリケーションイメージリポジトリを備え、
前記アプリケーションイメージを格納させることは、前記アプリケーションイメージを前記アプリケーションイメージリポジトリに送信することを含む、請求項11から13のいずれか一項に記載のシステム。 - 前記アプリケーションソースは、潜在的な変動ポイントを示す1つまたは複数のアノテーションが付され、
前記1つまたは複数のアノテーションの少なくとも一部に基づき、前記アプリケーションソースの前記実行可能部の実行をモニタリングする、請求項11から14のいずれか一項に記載のシステム。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/964,977 | 2013-08-12 | ||
US13/964,889 | 2013-08-12 | ||
US13/964,941 | 2013-08-12 | ||
US13/964,977 US10346148B2 (en) | 2013-08-12 | 2013-08-12 | Per request computer system instances |
US13/964,941 US9348634B2 (en) | 2013-08-12 | 2013-08-12 | Fast-booting application image using variation points in application source code |
US13/964,889 US9280372B2 (en) | 2013-08-12 | 2013-08-12 | Request processing techniques |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016533499A Division JP6419815B2 (ja) | 2013-08-12 | 2014-08-11 | 要求処理技術 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019201248A Division JP6764989B2 (ja) | 2013-08-12 | 2019-11-06 | 要求処理技術 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019023915A JP2019023915A (ja) | 2019-02-14 |
JP6849642B2 true JP6849642B2 (ja) | 2021-03-24 |
Family
ID=52468614
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016533499A Active JP6419815B2 (ja) | 2013-08-12 | 2014-08-11 | 要求処理技術 |
JP2018191339A Active JP6849642B2 (ja) | 2013-08-12 | 2018-10-10 | 要求処理技術 |
JP2019201248A Active JP6764989B2 (ja) | 2013-08-12 | 2019-11-06 | 要求処理技術 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016533499A Active JP6419815B2 (ja) | 2013-08-12 | 2014-08-11 | 要求処理技術 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019201248A Active JP6764989B2 (ja) | 2013-08-12 | 2019-11-06 | 要求処理技術 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9280372B2 (ja) |
EP (1) | EP3033677B1 (ja) |
JP (3) | JP6419815B2 (ja) |
CN (2) | CN111338762B (ja) |
CA (1) | CA2921180C (ja) |
WO (1) | WO2015023607A1 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339229B1 (en) | 2013-05-31 | 2019-07-02 | Cadence Design Systems, Inc. | Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system |
US10169063B2 (en) * | 2014-02-24 | 2019-01-01 | Red Hat Israel, Ltd. | Hypervisor capability access provision |
US9690686B1 (en) * | 2014-03-31 | 2017-06-27 | Cadence Design Systems, Inc. | Method for setting breakpoints in automatically loaded software |
DE102014208848A1 (de) * | 2014-05-12 | 2015-11-12 | Robert Bosch Gmbh | Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls |
US11487561B1 (en) | 2014-12-24 | 2022-11-01 | Cadence Design Systems, Inc. | Post simulation debug and analysis using a system memory model |
US10802852B1 (en) | 2015-07-07 | 2020-10-13 | Cadence Design Systems, Inc. | Method for interactive embedded software debugging through the control of simulation tracing components |
US10699211B2 (en) | 2016-02-29 | 2020-06-30 | Oracle International Corporation | Supervised method for classifying seasonal patterns |
US10331802B2 (en) | 2016-02-29 | 2019-06-25 | Oracle International Corporation | System for detecting and characterizing seasons |
US10970891B2 (en) | 2016-02-29 | 2021-04-06 | Oracle International Corporation | Systems and methods for detecting and accommodating state changes in modelling |
US10885461B2 (en) | 2016-02-29 | 2021-01-05 | Oracle International Corporation | Unsupervised method for classifying seasonal patterns |
US10198339B2 (en) | 2016-05-16 | 2019-02-05 | Oracle International Corporation | Correlation-based analytic for time-series data |
US11082439B2 (en) | 2016-08-04 | 2021-08-03 | Oracle International Corporation | Unsupervised method for baselining and anomaly detection in time-series data for enterprise systems |
US10635563B2 (en) | 2016-08-04 | 2020-04-28 | Oracle International Corporation | Unsupervised method for baselining and anomaly detection in time-series data for enterprise systems |
US10785288B2 (en) * | 2017-02-22 | 2020-09-22 | International Business Machines Corporation | Deferential support of request driven cloud services |
US10915830B2 (en) | 2017-02-24 | 2021-02-09 | Oracle International Corporation | Multiscale method for predictive alerting |
US10949436B2 (en) | 2017-02-24 | 2021-03-16 | Oracle International Corporation | Optimization for scalable analytics using time series models |
US10817803B2 (en) | 2017-06-02 | 2020-10-27 | Oracle International Corporation | Data driven methods and systems for what if analysis |
WO2018227899A1 (zh) * | 2017-06-14 | 2018-12-20 | 北京小米移动软件有限公司 | 应用交互方法、交互方法及装置 |
US11010823B2 (en) * | 2017-07-28 | 2021-05-18 | Citrix Systems, Inc. | Connector leasing for long-running software operations |
US10621005B2 (en) * | 2017-08-31 | 2020-04-14 | Oracle International Corporation | Systems and methods for providing zero down time and scalability in orchestration cloud services |
US20200142746A1 (en) * | 2017-12-29 | 2020-05-07 | Virtual Instruments Corporation | Methods and system for throttling analytics processing |
CN110413333B (zh) * | 2018-04-28 | 2022-04-22 | 网宿科技股份有限公司 | 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 |
US10997517B2 (en) | 2018-06-05 | 2021-05-04 | Oracle International Corporation | Methods and systems for aggregating distribution approximations |
US10963346B2 (en) | 2018-06-05 | 2021-03-30 | Oracle International Corporation | Scalable methods and systems for approximating statistical distributions |
US11074094B2 (en) | 2018-08-29 | 2021-07-27 | Red Hat, Inc. | Securing hypercall support for user space processes in virtual machines |
US12001926B2 (en) | 2018-10-23 | 2024-06-04 | Oracle International Corporation | Systems and methods for detecting long term seasons |
US11138090B2 (en) | 2018-10-23 | 2021-10-05 | Oracle International Corporation | Systems and methods for forecasting time series with variable seasonality |
US10855548B2 (en) | 2019-02-15 | 2020-12-01 | Oracle International Corporation | Systems and methods for automatically detecting, summarizing, and responding to anomalies |
US12086157B2 (en) * | 2019-03-04 | 2024-09-10 | Hitachi Vantara Llc | Asynchronous storage management in a distributed system |
US11121983B1 (en) | 2019-03-20 | 2021-09-14 | United Services Automobile Association (Usaa) | Reactive throttle infrastructure |
US11748178B2 (en) * | 2019-04-02 | 2023-09-05 | Intel Corporation | Scalable and accelerated function as a service calling architecture |
US11533326B2 (en) | 2019-05-01 | 2022-12-20 | Oracle International Corporation | Systems and methods for multivariate anomaly detection in software monitoring |
US11537940B2 (en) | 2019-05-13 | 2022-12-27 | Oracle International Corporation | Systems and methods for unsupervised anomaly detection using non-parametric tolerance intervals over a sliding window of t-digests |
US11625505B2 (en) | 2019-08-19 | 2023-04-11 | Microsoft Technology Licensing, Llc | Processor with network stack domain and system domain using separate memory regions |
US11887015B2 (en) | 2019-09-13 | 2024-01-30 | Oracle International Corporation | Automatically-generated labels for time series data and numerical lists to use in analytic and machine learning systems |
US11470118B2 (en) * | 2019-11-01 | 2022-10-11 | Microsoft Technology Licensing, Llc | Processor with network processing stack having separate binary |
CN111880864B (zh) * | 2020-07-30 | 2023-12-26 | 平安国际智慧城市科技股份有限公司 | 基于http的模型调用方法、系统、计算机设备和存储介质 |
US11582327B1 (en) | 2021-10-21 | 2023-02-14 | Citrix Systems, Inc. | Dynamically coordinated service maintenance operations and adaptive service polling for microservices |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5797005A (en) | 1994-12-30 | 1998-08-18 | International Business Machines Corporation | Shared queue structure for data integrity |
US6678735B1 (en) | 2000-01-26 | 2004-01-13 | Nortel Networks Limited | Method and apparatus for a sip client manager |
US20020116205A1 (en) | 2000-05-19 | 2002-08-22 | Ankireddipally Lakshmi Narasimha | Distributed transaction processing system |
US7689560B2 (en) | 2000-10-13 | 2010-03-30 | Miosoft Corporation | Persistent data storage techniques |
US20020141404A1 (en) | 2001-04-03 | 2002-10-03 | Michael Wengrovitz | Call routing using information in session initiation protocol messages |
US6886041B2 (en) | 2001-10-05 | 2005-04-26 | Bea Systems, Inc. | System for application server messaging with multiple dispatch pools |
US7376693B2 (en) | 2002-02-08 | 2008-05-20 | Jp Morgan Chase & Company | System architecture for distributed computing and method of using the system |
US6895472B2 (en) | 2002-06-21 | 2005-05-17 | Jp Morgan & Chase | System and method for caching results |
US7103628B2 (en) | 2002-06-20 | 2006-09-05 | Jp Morgan Chase & Co. | System and method for dividing computations |
US7640547B2 (en) | 2002-02-08 | 2009-12-29 | Jpmorgan Chase & Co. | System and method for allocating computing resources of a distributed computing system |
US8271882B2 (en) | 2002-04-24 | 2012-09-18 | Sap Ag | Processing life and work events |
GB0217088D0 (en) | 2002-07-24 | 2002-09-04 | Ibm | Asynchronous messaging in storage area network |
US6957113B1 (en) | 2002-09-06 | 2005-10-18 | National Semiconductor Corporation | Systems for allocating multi-function resources in a process system and methods of operating the same |
US20040205776A1 (en) | 2003-04-10 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for concurrent update and activation of partition firmware on a logical partitioned data processing system |
US7467102B2 (en) | 2003-09-11 | 2008-12-16 | International Business Machines Corporation | Request type grid computing |
US20050060704A1 (en) * | 2003-09-17 | 2005-03-17 | International Business Machines Corporation | Managing processing within computing environments including initiation of virtual machines |
US7908313B2 (en) | 2004-07-21 | 2011-03-15 | The Mathworks, Inc. | Instrument-based distributed computing systems |
US7512769B1 (en) | 2004-10-06 | 2009-03-31 | Hewlett-Packard Development Company, L.P. | Process migration |
US7409719B2 (en) * | 2004-12-21 | 2008-08-05 | Microsoft Corporation | Computer security management, such as in a virtual machine or hardened operating system |
EP1979828A4 (en) | 2006-01-31 | 2011-03-23 | Open Text Inc | APPLICATIONS FOR WORKFLOW |
JP4958034B2 (ja) | 2006-04-28 | 2012-06-20 | 克秀 浅沼 | グループ分けシステム、グループ分け管理サーバ及びグループ分けプログラム |
US7885969B2 (en) | 2007-09-17 | 2011-02-08 | International Business Machines Corporation | System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer |
US8505030B2 (en) | 2007-11-16 | 2013-08-06 | Microsoft Corporation | Coordinating resources using a volatile network intermediary |
US9021503B2 (en) | 2007-11-16 | 2015-04-28 | Microsoft Technology Licensing, Llc | Coordinating application state and communication medium state |
US8719841B2 (en) | 2007-11-16 | 2014-05-06 | Microsoft Corporation | Dispatch mechanism for coordinating application and communication medium state |
US7743107B2 (en) * | 2007-12-07 | 2010-06-22 | International Business Machines Corporation | System and method for using remote module on VIOS to manage backups to remote backup servers |
US8984530B2 (en) | 2008-01-31 | 2015-03-17 | Microsoft Corporation | Queued message dispatch |
US10127059B2 (en) | 2008-05-02 | 2018-11-13 | Skytap | Multitenant hosted virtual machine infrastructure |
US8849971B2 (en) * | 2008-05-28 | 2014-09-30 | Red Hat, Inc. | Load balancing in cloud-based networks |
US8171495B2 (en) | 2008-05-29 | 2012-05-01 | Microsoft Corporation | Queue dispatch using deferred acknowledgement |
US20110004701A1 (en) | 2008-12-29 | 2011-01-06 | Debashish Panda | Provisioning highly available services for integrated enterprise and communication |
US8776090B2 (en) * | 2009-02-17 | 2014-07-08 | Broadcom Corporation | Method and system for network abstraction and virtualization for a single operating system (OS) |
US8433749B2 (en) | 2009-04-15 | 2013-04-30 | Accenture Global Services Limited | Method and system for client-side scaling of web server farm architectures in a cloud data center |
JP2010271980A (ja) | 2009-05-22 | 2010-12-02 | Access Co Ltd | 端末装置、端末装置の起動方法およびプログラム |
US8301706B2 (en) | 2009-06-15 | 2012-10-30 | Microsoft Corporation | Routing of pooled messages via an intermediary |
US8549267B2 (en) | 2009-12-22 | 2013-10-01 | Intel Corporation | Methods and apparatus to manage partial-commit checkpoints with fixup support |
US8375095B2 (en) | 2009-12-22 | 2013-02-12 | Microsoft Corporation | Out of order durable message processing |
EP2549380B1 (en) | 2010-03-16 | 2018-06-13 | Panasonic Intellectual Property Management Co., Ltd. | Information processing device, virtual machine generation method, and application software distribution system |
US20110252208A1 (en) * | 2010-04-12 | 2011-10-13 | Microsoft Corporation | Express-full backup of a cluster shared virtual machine |
US8607242B2 (en) | 2010-09-02 | 2013-12-10 | International Business Machines Corporation | Selecting cloud service providers to perform data processing jobs based on a plan for a cloud pipeline including processing stages |
US9304867B2 (en) * | 2010-09-28 | 2016-04-05 | Amazon Technologies, Inc. | System and method for providing flexible storage and retrieval of snapshot archives |
US8694821B2 (en) | 2010-12-03 | 2014-04-08 | International Business Machines Corporation | Generation of standby images of applications |
US9552215B2 (en) * | 2011-03-08 | 2017-01-24 | Rackspace Us, Inc. | Method and system for transferring a virtual machine |
JP5742410B2 (ja) * | 2011-04-11 | 2015-07-01 | 日本電気株式会社 | フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム |
CN102270104B (zh) * | 2011-07-14 | 2013-07-24 | 华中科技大学 | 虚拟化环境中动态磁盘带宽分配方法 |
US20130067469A1 (en) | 2011-09-14 | 2013-03-14 | Microsoft Corporation | Load Balancing By Endpoints |
US8863129B2 (en) | 2011-12-06 | 2014-10-14 | International Business Machines Corporation | Automated caching and mirroring of immutable data in distributed virtual machines via native interface components |
KR101658070B1 (ko) | 2012-01-26 | 2016-09-22 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 연속 월드 스위치 보안을 갖는 데이터 센터 |
US8881115B2 (en) | 2012-04-17 | 2014-11-04 | International Business Machines Corporation | Compiling source code for debugging with expanded snapshots |
US8839243B2 (en) | 2012-04-23 | 2014-09-16 | International Business Machines Corporation | Remediating resource overload |
US9189959B2 (en) * | 2012-06-27 | 2015-11-17 | International Business Machines Corporation | Navigation system providing a super detail mode of operation to assist user's driving |
US9563480B2 (en) * | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
-
2013
- 2013-08-12 US US13/964,889 patent/US9280372B2/en active Active
-
2014
- 2014-08-11 CN CN202010139588.4A patent/CN111338762B/zh active Active
- 2014-08-11 JP JP2016533499A patent/JP6419815B2/ja active Active
- 2014-08-11 CN CN201480052085.6A patent/CN105556475B/zh active Active
- 2014-08-11 EP EP14836658.6A patent/EP3033677B1/en active Active
- 2014-08-11 WO PCT/US2014/050597 patent/WO2015023607A1/en active Application Filing
- 2014-08-11 CA CA2921180A patent/CA2921180C/en active Active
-
2016
- 2016-03-04 US US15/061,932 patent/US10353725B2/en active Active
-
2018
- 2018-10-10 JP JP2018191339A patent/JP6849642B2/ja active Active
-
2019
- 2019-11-06 JP JP2019201248A patent/JP6764989B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US10353725B2 (en) | 2019-07-16 |
JP2019023915A (ja) | 2019-02-14 |
US20160188360A1 (en) | 2016-06-30 |
CN111338762B (zh) | 2024-04-23 |
EP3033677A1 (en) | 2016-06-22 |
CN111338762A (zh) | 2020-06-26 |
WO2015023607A1 (en) | 2015-02-19 |
CN105556475A (zh) | 2016-05-04 |
EP3033677B1 (en) | 2021-06-23 |
JP6764989B2 (ja) | 2020-10-07 |
US9280372B2 (en) | 2016-03-08 |
JP2020038692A (ja) | 2020-03-12 |
JP6419815B2 (ja) | 2018-11-07 |
CA2921180C (en) | 2023-04-04 |
US20150046920A1 (en) | 2015-02-12 |
CA2921180A1 (en) | 2015-02-19 |
JP2016529620A (ja) | 2016-09-23 |
EP3033677A4 (en) | 2017-03-22 |
CN105556475B (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6849642B2 (ja) | 要求処理技術 | |
US11068309B2 (en) | Per request computer system instances | |
US11093270B2 (en) | Fast-booting application image | |
JP7275171B2 (ja) | オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション | |
US10013275B2 (en) | Executing code referenced from a microservice registry | |
Lagar-Cavilla et al. | Snowflock: Virtual machine cloning as a first-class cloud primitive | |
US11886898B2 (en) | GPU-remoting latency aware virtual machine migration | |
Arya et al. | Design and implementation for checkpointing of distributed resources using process-level virtualization | |
US9606827B2 (en) | Sharing memory between guests by adapting a base address register to translate pointers to share a memory region upon requesting for functions of another guest | |
CN110781159B (zh) | Ceph目录文件信息读取方法、装置、服务器及存储介质 | |
US10579419B2 (en) | Data analysis in storage system | |
US10558553B2 (en) | Enabling non-blocking runtime application debugging for a single threaded server environment | |
US9158601B2 (en) | Multithreaded event handling using partitioned event de-multiplexers | |
US9612860B2 (en) | Sharing memory between guests by adapting a base address register to translate pointers to share a memory region upon requesting for functions of another guest | |
US10824456B2 (en) | System traffic analyzers to request co-location of virtual machines in frequent communication | |
US8745620B2 (en) | Software tool and method for updating a virtual appliance | |
Cosulschi et al. | Running Hadoop applications in virtualization environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181107 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181107 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20181107 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20190131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190425 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190708 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191106 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20191106 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20191114 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20191118 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20200124 |
|
C211 | Notice of termination of reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C211 Effective date: 20200203 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20200629 |
|
C13 | Notice of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: C13 Effective date: 20201006 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20201006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201209 |
|
C23 | Notice of termination of proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C23 Effective date: 20201221 |
|
C03 | Trial/appeal decision taken |
Free format text: JAPANESE INTERMEDIATE CODE: C03 Effective date: 20210216 |
|
C30A | Notification sent |
Free format text: JAPANESE INTERMEDIATE CODE: C3012 Effective date: 20210216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210304 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6849642 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |