JP6962142B2 - Programs and information processing equipment - Google Patents
Programs and information processing equipment Download PDFInfo
- Publication number
- JP6962142B2 JP6962142B2 JP2017215665A JP2017215665A JP6962142B2 JP 6962142 B2 JP6962142 B2 JP 6962142B2 JP 2017215665 A JP2017215665 A JP 2017215665A JP 2017215665 A JP2017215665 A JP 2017215665A JP 6962142 B2 JP6962142 B2 JP 6962142B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- plug
- unit
- virtual machine
- activation
- 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
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、プログラム及び情報処理装置に関する。 The present invention relates to a program and an information processing device.
特許文献1には、ジョブ処理装置の動作状況を監視し、規定数を超えるジョブを処理している場合にタスクを増加させるスケールアウトを指示し、その後スループットが向上されていないと確認した場合にはタスクを削除するスケールインを指示する技術が開示されている。
In
特許文献1の技術では、スケールアウト及びスケールインのいずれの場合でも、要求された処理(ジョブ)が実行された後でなければ対処がなされない。
そこで、本発明は、要求された処理が実行される前から処理の早期終了のための対処を行うことを目的とする。
In the technique of
Therefore, an object of the present invention is to take measures for early termination of the processing before the requested processing is executed.
本発明の請求項1に係るプログラムは、コンピュータを、仮想マシン上で起動される機能により実行される処理の要求を受け取ると当該機能を示す機能情報を生成する生成部と、生成された前記機能情報を一時的に蓄積する一時蓄積部と、前記処理の要求に基づいて当該処理を実行することが見込まれる機能を特定する特定部と、特定された前記機能を仮想マシン上で起動させる第1起動部と、前記一時蓄積部から読み出される前記機能情報が示す機能を仮想マシン上で起動させる第2起動部であって、当該機能が前記第1起動部により既に起動されている場合には当該機能を起動させない第2起動部として機能させることを特徴とする。
The program according to
本発明の請求項2に係るプログラムは、請求項1に記載の構成において、前記コンピュータを、前記第1起動部又は前記第2起動部により前記機能が起動される場合に当該機能が前記処理を実行する際に使用するリソースを有する仮想マシンを起動させる仮想マシン起動部として機能させることを特徴とする。
In the program according to
本発明の請求項3に係るプログラムは、請求項1又は2に記載の構成において、前記コンピュータを、前記処理を実行していない機能が起動されている仮想マシンを停止させる仮想マシン停止部であって、当該機能が前記一時蓄積部に蓄積されている前記機能情報が示す機能である場合は当該機能を停止させない仮想マシン停止部として機能させることを特徴とする。
The program according to
本発明の請求項4に係るプログラムは、請求項3に記載の構成において、前記仮想マシン停止部は、前記処理を実行していない機能が、別の前記要求に基づいて当該処理を実行することが見込まれる機能として前記特定部により特定された場合は当該仮想マシンを停止させないことを特徴とする。
In the program according to claim 4 of the present invention, in the configuration according to
本発明の請求項5に係るプログラムは、請求項1から4のいずれか1項に記載の構成において、前記特定部は、前記要求がされた処理のパラメータ又は当該処理の要求の履歴から起動される可能性が他の機能に比べて高いことが表される機能を前記実行することが見込まれる機能として特定することを特徴とする。
In the configuration according to any one of
本発明の請求項6に係るプログラムは、請求項1から5のいずれか1項に記載の構成において、前記第1起動部は、特定された前記機能の起動に要する時間が短いほど当該機能を起動させる時期を遅くすることを特徴とする。
In the program according to
本発明の請求項7に係るプログラムは、請求項1から6のいずれか1項に記載の構成において、前記第1起動部は、前記一時蓄積部に蓄積されている前記機能情報が多いほど特定された前記機能を起動させる時期を遅くすることを特徴とする。
The program according to claim 7 of the present invention has the configuration according to any one of
本発明の請求項8に係るプログラムは、請求項1から7のいずれか1項に記載の構成において、前記機能には複数の種類があり、前記第1起動部は、前記種類が共通し且つ起動済みの機能の数が少ないほど特定された当該種類の機能を起動させる時期を早くすることを特徴とする。
The program according to claim 8 of the present invention has a plurality of types of the functions in the configuration according to any one of
本発明の請求項9に係るプログラムは、請求項1から8のいずれか1項に記載の構成において、前記処理は、複数の機能により順番に実行され、前記第1起動部は、当該機能の前記順番が早いほど特定された前記機能を起動させる時期を早くすることを特徴とする。
In the program according to claim 9 of the present invention, in the configuration according to any one of
本発明の請求項10に係るプログラムは、請求項1から9のいずれか1項に記載の構成において、前記機能には複数の種類があり、前記第1起動部は、特定された前記機能と同種の機能の起動回数が多いほど特定された当該機能を起動させる時期を早くすることを特徴とする。
The program according to
本発明の請求項11に係るプログラムは、請求項1から10のいずれか1項に記載の構成において、コンピュータを、蓄積されている前記機能情報が示す機能により実行される処理に要する時間を算出する算出部として機能させ、前記第1起動部は、特定された前記機能を示す前記機能情報よりも前に蓄積された前記機能情報について算出された前記時間が長いほど仮想マシン上で当該機能を起動させる時期を遅くすることを特徴とする。
The program according to
本発明の請求項12に係るプログラムは、請求項6から11のいずれか1項に記載の構成において、前記コンピュータを、前記処理が完了した前記機能を停止させる機能停止部として機能させ、前記第1起動部は、仮想マシン上の前記機能が前記処理を完了して停止されると、特定された前記機能を当該仮想マシン上で起動し、当該機能については前記時期を変化させる制御を行わないことを特徴とする。
In the configuration according to any one of
本発明の請求項13に係るプログラムは、請求項1から12のいずれか1項に記載の構成において、前記機能には複数の種類があり、前記第1起動部は、特定された前記機能と同種の機能が前記処理を実行していない状態で存在する場合は、特定された当該機能の起動を行わず、前記コンピュータを、前記第1起動部が前記機能の起動を行わない場合に、前記状態で存在する機能を制御して前記要求がされた処理を実行させる実行制御部として機能させることを特徴とする。
The program according to
本発明の請求項14に係る情報処理装置は、仮想マシン上で起動される機能により実行される処理の要求を受け取ると当該機能を示す機能情報を生成する生成部と、生成された前記機能情報を一時的に蓄積する一時蓄積部と、前記処理の要求に基づいて当該処理を実行することが見込まれる機能を特定する特定部と、特定された前記機能を仮想マシン上で起動させる第1起動部と、前記一時蓄積部から読み出される前記機能情報が示す機能を仮想マシン上で起動させる第2起動部であって、当該機能が前記第1起動部により既に起動されている場合には当該機能を起動させない第2起動部とを備えることを特徴とする。
The information processing device according to
請求項1、14に係る発明によれば、要求された処理が実行される前から処理の早期終了のための対処を行うことができる。
請求項2に係る発明によれば、複数の機能に必要なリソースを有する仮想マシンを予め起動する場合に比べて、仮想マシンを起動したときに必要なリソースの量を少なくすることができる。
請求項3に係る発明によれば、第1起動部により起動された機能を停止させる場合に比べて、その機能が実行する見込みであった処理とは別の処理の開始を早期化することができる。
請求項4に係る発明によれば、要求された処理を実行することが見込まれて起動された機能を停止させる場合に比べて、その要求とは別の要求に基づくその処理の開始を早期化することができる。
請求項5に係る発明によれば、機能を定義した情報がなくても機能の特定を可能にすることができる。
請求項6に係る発明によれば、起動時期を一律にする場合に比べて、起動した機能が処理を実行可能になる時期を近くすることができる。
請求項7、11に係る発明によれば、起動時期を一律にする場合に比べて、機能が処理を実行していないのに仮想マシンが起動している状態となる期間を短くすることができる。
請求項8に係る発明によれば、起動時期を一律にする場合に比べて、起動済みの同種の機能の数が少なくても処理の遅延を生じにくくすることができる。
請求項9、10に係る発明によれば、起動時期を一律にする場合に比べて、特定された機能による処理の遅延が後続の処理に与える影響を小さくすることができる。
請求項12に係る発明によれば、特定された機能の起動時期を遅らせる場合に比べて、処理の早期終了の可能性を高めることができる。
請求項13に係る発明によれば、仮想マシン及び機能を再利用しない場合に比べて、処理の早期終了の可能性を高めることができる。
According to the inventions of
According to the second aspect of the present invention, the amount of resources required when starting a virtual machine can be reduced as compared with the case where a virtual machine having resources required for a plurality of functions is started in advance.
According to the third aspect of the present invention, it is possible to accelerate the start of a process different from the process that the function was expected to execute, as compared with the case where the function activated by the first activation unit is stopped. can.
According to the invention of claim 4, the start of the process based on a request different from the request is accelerated as compared with the case where the function activated due to the expected execution of the requested process is stopped. can do.
According to the invention of
According to the invention of
According to the inventions of
According to the invention of claim 8, it is possible to reduce the delay in processing even if the number of activated functions of the same type is small, as compared with the case where the activation timing is uniform.
According to the inventions of
According to the invention of
According to the invention of
[1]実施例
図1は実施例に係るタスクサービス提供システム1の全体構成を表す。タスクサービス提供システム1は、タスクサービスをユーザに提供するためのシステムである。タスクサービス提供システム1では、予め定義された一連の処理を実行することによって完了する作業のことをタスクと言う。例えば領収書やレシートを読み取って経費精算システムに格納する作業のことを経費精算タスクと言う。
[1] Example FIG. 1 shows the overall configuration of the task
また、ユーザからの要求に基づいてタスクを実行するサービスをタスクサービスと言う。なお、タスクを実行するとは、詳細にはそのタスクに含まれる処理、すなわちタスクを完了させるために定義された一連の処理を実行することを意味し、タスクの実行を要求するとは、そのタスクに含まれる処理を要求すること(処理の実行を要求することと同義)を意味する。 A service that executes a task based on a request from a user is called a task service. In addition, executing a task means executing the processing included in the task in detail, that is, executing a series of processing defined to complete the task, and requesting the execution of the task means that the task is executed. It means requesting the included processing (synonymous with requesting the execution of the processing).
タスクサービス提供システム1は、通信回線2と、ユーザ端末3と、クラウドシステム4とを備える。通信回線2は、例えばインターネット、移動体通信網及び電話回線等を含み、自回線に接続されている装置同士の通信を仲介する。通信回線2には、ユーザ端末3及びクラウドシステム4が接続されている。
The task
ユーザ端末3は、タスクサービス提供システム1を利用するユーザが使用する端末である。ユーザ端末3は、例えば、店舗に設置される画像形成装置であり、コピー機能及びスキャン機能等を備えている。図1ではユーザ端末3が1台しか表されていないが、複数のユーザ端末3が使用されているものとする。ユーザ端末3は、ユーザの操作によりタスクの実行(詳細にはそのタスクに含まれる処理の実行)をクラウドシステム4に対して要求し、要求したタスクの実行結果を受け取って例えばその実行結果に応じた画面を表示する。
The
クラウドシステム4は、各々がインスタンスと呼ばれる仮想マシンを実現する複数のサーバ装置10を備える。このクラウドシステム4を提供するクラウドサービス事業者は、タスクサービスを提供するタスクサービス事業者とは異なっているものとする。クラウドシステム4においては、インスタンス毎に、そのインスタンスの使用するリソース量及び使用時間に応じた課金がなされる。
The cloud system 4 includes a plurality of
そのため、クラウドシステム4においては、インスタンスを必要に応じて増減させるオートスケールが行われる。本実施例では、タスクに含まれる処理をインスタンス上で実行し、且つ、それらのインスタンスについてオートスケールを行う。例えば処理を実行していないインスタンスを停止(スケールイン)することで課金される料金を抑えるようにしたり、処理を実行しているインスタンスのリソース(CPU(Central Processing Unit)やメモリなど)の使用率が閾値を超える場合には新たなインスタンスを起動(スケールアウト)して処理の遅延を抑えたりしている。 Therefore, in the cloud system 4, auto-scaling is performed to increase or decrease the number of instances as needed. In this embodiment, the processes included in the task are executed on the instances, and the instances are autoscaled. For example, you can reduce the charge by stopping (scale-in) an instance that is not executing processing, or use the resources (CPU (Central Processing Unit), memory, etc.) of the instance that is executing processing. When exceeds the threshold, a new instance is started (scaled out) to suppress the processing delay.
図2はサーバ装置10のハードウェア構成を表す。サーバ装置10は、CPU11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、通信部14と、ストレージ15とを備えるコンピュータである。CPU11は、メモリであるRAM12をワークエリアとして用いてROM13やストレージ15に記憶されているプログラムを実行することで各部の動作を制御する。通信部14は、通信回路等を有し、通信回線2を介して外部装置と通信を行う。ストレージ15は、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリなどの記憶手段であり、CPU11が制御に用いるデータやプログラムを記憶している。
FIG. 2 shows the hardware configuration of the
クラウドシステム4が備える複数のサーバ装置10の各CPU11がプログラムを実行して各部を制御することで、以下に述べる機能が実現される。
図3はクラウドシステム4が実現する機能構成を表す。クラウドシステム4は、タスクサービス部101と、タスク定義部102と、キュー103と、プラグイン管理部104と、プラグイン実行部105と、タスク要求情報管理部111と、タスク定義情報記憶部112と、リクエストパラメータ情報記憶部113と、履歴情報記憶部114と、オートスケール管理部115とを備える。
The functions described below are realized by each
FIG. 3 shows a functional configuration realized by the cloud system 4. The cloud system 4 includes a
ユーザ端末3は、ユーザによって操作されて、タスクの実行を要求する要求データを生成してクラウドシステム4に送信する。要求データは、実行するタスクで用いるタスク定義を識別するタスク定義ID(Identification)と、文書(例えば原稿をスキャンした画像データ)を処理するタスクである場合はその文書と、そのタスクにおいて実行される処理の内容(処理で用いられるパラメータ等)とを示すデータである。
The
まず、要求されたタスクの実行に関する機能構成について説明する。タスクサービス部101は、ユーザ端末3から送信されてくる要求データを受け取って、その要求データに基づいてタスク定義部102から必要な情報を読み出し、要求されたタスクを実行するためのメッセージを生成する。
First, the functional configuration related to the execution of the requested task will be described. The
タスクの実行には、本実施例では、プラグインと呼ばれる機能が用いられる。プラグインは、プログラム、データ及びパラメータ等を読み出してメモリ上に展開することで起動され、起動が完了すると処理を実行可能な状態になる。タスクサービス提供システム1においては、タスクに含まれる各処理(矩形画像抽出、文書分割及びOCR(Optical Character Recognition)等の処理)に対して、それぞれ対応するプラグインが用意されている。つまり、1つのプラグインは、それに対応する1つの処理を実行する。
In this embodiment, a function called a plug-in is used to execute the task. The plug-in is started by reading a program, data, parameters, etc. and expanding it on the memory, and when the start is completed, the process becomes ready to be executed. In the task
メッセージには、タスクに含まれる各処理を実行する各プラグインを起動するための情報として、各プラグインの呼び出しコマンドが含まれている。タスク定義部102は、各タスクのタスク定義IDに対応付けて、そのタスクに含まれる各処理を実行する各プラグインのプラグインIDと、それらのプラグインの呼び出しコマンドと、各プラグインが実行する処理の順序とを記憶している。
The message includes a command to call each plug-in as information for starting each plug-in that executes each process included in the task. The
図4はタスク定義部102が記憶する情報の一例を表す。図4の例では、タスク定義部102は、「TASK01」というタスク定義IDに「PLUG13」(経費精算データ送信)、「PLUG01」(矩形画像抽出)、「PLUG08」(文書分割)というプラグインIDと、それらの呼び出しコマンドと、それらの処理の順序とが対応付けられている。また、「TASK02」というタスク定義IDには、「PLUG02」(OCR)、「PLUG11」(コンバージョン)というプラグインIDと、それらの呼び出しコマンドと、それらの処理の順序とが対応付けられている。
FIG. 4 shows an example of the information stored in the
タスクサービス部101は、上記の要求データが示すタスク定義IDに対応付けられている処理順序の順番で呼び出しコマンドを読み出して、その呼び出しコマンドと、要求データが示す処理の内容とを含むメッセージを生成する。タスクサービス部101は、例えば要求データが「TASK01」というタスク定義IDを示していれば、「TASK01」に対応付けられた処理の順序が「1」の「PLUG01」(矩形画像抽出)の呼び出しコマンドを含むメッセージを生成する。
The
このように、タスクサービス部101は、プラグインにより実行される処理の要求(処理を実行することの要求)をユーザ端末3から受け取ると、そのプラグインを示すメッセージを生成する。こうして生成されるメッセージは、呼び出しコマンドにより呼び出されるプラグインという機能を示す情報であり、本発明の「機能情報」の一例である。また、そのメッセージを生成するタスクサービス部101は本発明の「生成部」の一例である。タスクサービス部101は、生成したメッセージをキュー103に供給する。
In this way, when the
キュー103は、供給されたメッセージを記憶してキュー(先入れ先出しのデータ)として取り扱う。つまり、キュー103は、タスクサービス部101により生成されたメッセージを一時的に蓄積する機能であり、本発明の「一時蓄積部」の一例である。プラグイン管理部104は、キュー103に蓄積されたメッセージを読み出し、そのメッセージに含まれる呼び出しコマンドを用いてプラグインの起動をプラグイン実行部105に指示する。
The
プラグイン実行部105は、この指示を受け取ると、特定の場合(詳しくは後述する)を除いて、指示されたプラグインを起動する。プラグイン実行部105は、詳細には、まずプラグインを起動させるためのインスタンス(仮想マシン)を起動して、起動したインスタンス上で指示されたプラグインを起動する。プラグイン管理部104及びプラグイン実行部105は、インスタンスを起動する場合は本発明の「仮想マシン起動部」の一例として機能し、プラグインを起動する場合は本発明の「第2起動部」の一例として機能する。
Upon receiving this instruction, the plug-in
本実施例では、プラグイン実行部105は、インスタンス上でプラグインを起動すると、そのインスタンス上では他のプラグインを起動させないようにする。つまり、プラグイン実行部105は、1つのインスタンス上では1つのプラグインだけを実行する。プラグイン実行部105は、図3の例では、文書処理プラグイン51−1、51−2、51−3と、外部接続プラグイン52と、ストレージ登録プラグイン53とを、それぞれに対応して起動したインスタンス上で実行している。
In this embodiment, when the plug-in
文書処理プラグインは、矩形画像抽出、OCR、文書分割及びコンバージョン等の文書に対する処理を実行する。外部接続プラグインは、業務型クラウドサービス5のような外部のサービスと接続する。ストレージ登録プラグインは、ストレージ型クラウドサービス6及び社内システム7のような外部のストレージにデータを登録する。
The document processing plug-in performs processing on documents such as rectangular image extraction, OCR, document division and conversion. The external connection plug-in connects to an external service such as the business-
プラグイン管理部104は、プラグインが起動すると、メッセージに含まれる内容で処理を実行するようにプラグイン実行部105に指示する。プラグイン実行部105は、この指示を受け取ると、指示された内容で処理を実行する。プラグイン実行部105は、この処理を完了すると、その処理結果をプラグイン管理部104に通知する。プラグイン管理部104は、通知された処理結果をタスクサービス部101に通知する。
When the plug-in is started, the plug-in
タスクサービス部101は、処理完了の通知を受け取ると、処理順序が次のプラグインの呼び出しコマンドを読み出して、その呼び出しコマンドと、要求データが示す処理の内容とを含むメッセージを生成する。こうして順番にプラグインが起動されて処理が実行されることで、タスクが実行される。
Upon receiving the notification of the completion of processing, the
次に、オートスケールに関する機能構成について説明する。上述したように、クラウドシステム4においては、インスタンスについてオートスケールが行われ、且つ、1つのインスタンス上では1つのプラグインだけが実行される。つまり、インスタンスにオートスケールが行われると、そのインスタンス上で起動されるプラグインにもオートスケールが行われる(インスタンスがスケールアウトされて増加すればプラグインも同じ数だけ増加し、インスタンスがスケールインされて減少すればプラグインも同じ数だけ減少する)ことになる。 Next, the functional configuration related to autoscale will be described. As described above, in the cloud system 4, the instance is autoscaled, and only one plug-in is executed on one instance. That is, when an instance is autoscaled, the plugins launched on that instance are also autoscaled (if the instance is scaled out and incremented, the plugins are scaled out by the same number and the instance is scaled in). If it is reduced, the number of plugins will be reduced by the same amount).
オートスケール管理部115は、プラグイン実行部105を決められた時間間隔で繰り返し監視してプラグインの実行状況を把握する。オートスケール管理部115は、例えば、プラグインで実行されている処理の有無と、処理を実行しているときのプラグインによるリソースの使用率とを把握する。オートスケール管理部115は、把握した実行状況に応じて、プラグインを新たに起動させるスケールアウトの指示と、プラグインを停止させるスケールインの指示とをプラグイン実行部105に対して行う。
The
オートスケール管理部115は、例えばOCRのプラグインが複数起動されており、その中に処理を一定期間実行していないプラグイン(これを「非処理中プラグイン」という)がある場合、そのOCRのプラグイン及び対応するインスタンスを停止させる(スケールインを行う)ようプラグイン実行部105に指示する。また、オートスケール管理部115は、例えばコンバージョンのプラグインが大量の文書のコンバージョンを行っていてリソースの使用率が閾値を超える場合、コンバージョンのプラグイン及びインスタンスを新たに起動する(スケールアウトを行う)ようプラグイン実行部105に指示する。この場合、プラグイン実行部105は、新たに起動されたプラグインに文書を分担して処理を実行するよう指示し、処理の負担を分散させる。
For example, when a plurality of OCR plug-ins are started and there is a plug-in that has not executed processing for a certain period of time (this is referred to as "non-processing plug-in"), the
また、オートスケール管理部115は、プラグインの実行状況とは別の情報にも基づいてオートスケールを行う。タスクサービス部101は、要求データを受け取ると、メッセージの生成と並行して、又は、メッセージを生成する前に、その要求データをタスク要求情報管理部111に供給する。
Further, the
タスク要求情報管理部111は、供給された要求データが示すタスクの実行要求、すなわちタスクに含まれる処理の要求に関する情報を管理する。タスク要求情報管理部111は、例えば、供給された要求データをタスクの実行要求の履歴として、現在の日時情報と共に履歴情報記憶部114に記憶させる。
The task request
また、タスク要求情報管理部111は、要求データが供給されると、その要求データが示す処理の要求に基づいて、その処理を実行することが見込まれるプラグイン(以下「見込みプラグイン」という)を特定する。タスク要求情報管理部111は本発明の「特定部」の一例である。タスク要求情報管理部111は、例えば、タスク定義情報記憶部112が記憶する情報に基づく第1の特定方法を用いてプラグインを特定する。
Further, when the request data is supplied, the task request
タスク定義情報記憶部112は、タスク定義部102が記憶するタスク定義に関する情報のうちの一部をタスク定義情報として記憶している。
図5はテスク定義情報の一例を表す。図5の例では、タスク定義情報記憶部112は、タスク定義ID及びプラグインIDを対応付けた情報をタスク定義情報として記憶している。
The task definition
FIG. 5 shows an example of TISC definition information. In the example of FIG. 5, the task definition
タスク要求情報管理部111は、供給された要求データが示すタスク定義IDにタスク定義情報において対応付けられているプラグインIDを読み出し、読み出したプラグインIDが示すプラグインを、見込みプラグインとして特定する。タスク要求情報管理部111は、例えば、要求データが示すタスク定義IDが「TASK02」であれば、図5において「TASK02」に対応付けられた「PLUG02」及び「PLUG11」が示すOCR及びコンバージョンのプラグインを見込みプラグインとして特定する。
The task request
また、タスク要求情報管理部111は、リクエストパラメータ情報記憶部113が記憶する情報に基づく第2の特定方法を用いてプラグインを特定する。リクエストパラメータ情報記憶部113は、処理の要求に用いられるパラメータとプラグインIDとを対応付けた情報をリクエストパラメータ情報として記憶している。
In addition, the task request
図6はリクエストパラメータ情報の一例を表す。図6(a)の例では、リクエストパラメータ情報記憶部113は、「MIMETYPE」というメディアタイプを示すパラメータとプラグインIDとを対応付けた情報をリクエストパラメータ情報として記憶している。例えば「application/mspowerpoint」及び「application/msword」には「PLUG11」(コンバージョン)が対応付けられ、「application/vnd.fujixerox.docuworks」には「PLUG02」(OCR)が対応付けられている。
FIG. 6 shows an example of request parameter information. In the example of FIG. 6A, the request parameter
タスク要求情報管理部111は、供給された要求データが示す処理のパラメータにリクエストパラメータ情報において対応付けられているプラグインIDを読み出し、読み出したプラグインIDが示すプラグインを、見込みプラグインとして特定する。タスク要求情報管理部111は、例えば、要求データが示すMIMETYPEが「application/msword」であれば、図6(a)においてそれに対応付けられた「PLUG11」が示すコンバージョンのプラグインを見込みプラグインとして特定する。
The task request
また、タスク要求情報管理部111は、履歴情報記憶部114が記憶する情報に基づく第3の特定方法を用いてプラグインを特定する。履歴情報記憶部114は、要求された処理の履歴とプラグインIDとを対応付けた情報を履歴情報として記憶している。
図7は履歴情報の一例を表す。図7の例では、履歴情報記憶部114は、過去に要求された処理のプラグインIDを、その要求が送信されてきた日時を含む要求時間帯(例えば朝、昼、夕方、夜の時間帯)と、その要求を送信してきたユーザ端末3を識別する端末ID(要求端末ID)と、その要求の操作を行ったユーザを識別するユーザID(要求ユーザID)という3種類の履歴に対応付けた情報を履歴情報として記憶している。
Further, the task request
FIG. 7 shows an example of history information. In the example of FIG. 7, the history information storage unit 114 sets the plug-in ID of the processing requested in the past in the request time zone (for example, morning, noon, evening, night time zone) including the date and time when the request is transmitted. ), A terminal ID (requesting terminal ID) that identifies the
要求端末ID及び要求ユーザIDは、タスクサービス提供システム1において登録されたIDであり、タスクサービスを利用する際にユーザがユーザ端末3に自身のユーザIDを入力すると、ユーザ端末3がそのユーザIDと自端末の端末IDとを要求データに付与する。タスク要求情報管理部111は、供給された要求データが示す端末ID及びユーザIDと、供給された時刻を含む時間帯とに履歴情報において対応付けられているプラグインIDがあればそれを読み出し、読み出したプラグインIDが示すプラグインを、見込みプラグインとして特定する。
The request terminal ID and the request user ID are IDs registered in the task
タスク要求情報管理部111は、複数のプラグインIDを読み出した場合は、例えば最も多くの履歴が対応付けられているものが示すプラグインを、見込みプラグインとして特定する。また、タスク要求情報管理部111は、3種類の履歴の全てに対応付けられたプラグインIDがない場合は、2種類の履歴に対応付けられたプラグインIDを読み出して、3種類の履歴の場合と同様に見込みプラグインを特定する。また、それもなければ、1種類の履歴に対応付けられたプラグインIDを読み出して見込みプラグインを特定してもよい。
When the task request
タスク要求情報管理部111は、上述した第1、第2、第3の特定方法のいずれかを用いることで、ユーザ端末3から要求された処理のタスク定義ID、パラメータ又は要求の履歴によって起動される可能性が他のプラグインに比べて高いことが表されるプラグインを見込みプラグインとして特定する。第1の特定方法が用いられた場合は、タスク定義部102が記憶するタスク定義と同じ対応付けがされているタスク定義情報を用いるので、特定された見込みプラグインが要求された処理を必ず実行することになる。
The task request
一方、見込みプラグインはあくまで要求された処理を実行することが見込まれるプラグインであるから、例えば第2、第3の特定方法で特定された見込みプラグインは要求された処理を実行する可能性は高いものの、見込みプラグインが要求された処理を実行するプラグインではない場合もある。しかし、タスク定義情報が利用できない場合には、第2、第3の特定方法により見込みプラグインの特定が可能になる。タスク要求情報管理部111は、こうして特定した見込みプラグインのプラグインIDをオートスケール管理部115に供給する。
On the other hand, since the prospective plug-in is a plug-in that is expected to execute the requested processing, for example, the prospective plug-in specified by the second and third specific methods may execute the requested processing. Although expensive, the prospective plugin may not be the plugin that performs the requested processing. However, when the task definition information is not available, the prospective plug-in can be specified by the second and third identification methods. The task request
オートスケール管理部115は、特定された見込みプラグインが処理を実行する際に使用するリソースを有するインスタンスの起動をプラグイン実行部105に指示し、その指示により起動されたインスタンス上で見込みプラグインを起動させるようプラグイン実行部105に指示する。プラグイン実行部105は、これらの指示に基づいてインスタンス及び見込みプラグインを起動する。
The
オートスケール管理部115及びプラグイン実行部105は、インスタンスを起動する場合は本発明の「仮想マシン起動部」の一例として機能し、プラグインを起動する場合は本発明の「第1起動部」の一例として機能する。このようにプラグインを起動する度にそれに必要なリソースを有するインスタンスを起動することで、例えば複数のプラグインに必要なリソースを有するインスタンスを予め起動する場合に比べて、インスタンスを起動したときに必要なリソースの量が少なくなる。
The
タスク要求情報管理部111が見込みプラグインを特定してオートスケール管理部115及びプラグイン実行部105がその見込みプラグインを起動する方法を第1の起動方法という。一方、タスクサービス部101がメッセージを生成し、キュー103がメッセージを蓄積し、プラグイン管理部104がメッセージを読み出してプラグインの起動を指示してプラグイン実行部105が指示されたプラグインを起動する方法を第2の起動方法という。
The method in which the task request
また、第1の起動方法でプラグイン(見込みプラグイン)を起動するオートスケール管理部115及びプラグイン実行部105を「第1起動部55」といい、第2の起動方法でプラグインを起動するプラグイン管理部104及びプラグイン実行部105を「第2起動部45」という。
Further, the
第2の起動方法では、キュー103からメッセージが読み出されるのを待つ期間が生じるため、第1の起動方法に比べてプラグインが起動されるまでに要する時間が長くなる。そのため、第2の起動方法で起動するプラグインと第1の起動方法で起動するプラグイン(見込みプラグイン)とが一致していると、第2の起動方法ではプラグインを起動する必要がなくなるし、起動するとインスタンスが過剰になって課金される料金も過剰になってしまう。
In the second activation method, there is a period of waiting for the message to be read from the
そこで、プラグイン管理部104は、キュー103から読み出したメッセージが示すプラグイン(以下「メッセージプラグイン」という)が第1の起動方法によって既に起動されている場合(つまりメッセージプラグインと見込みプラグインとが一致した場合)には、そのメッセージプラグインを起動させる指示を行わず、起動済みの見込みプラグインにそのメッセージに含まれる内容で処理を実行させるようにプラグイン実行部105に指示する。
Therefore, the plug-in
このように、第2起動部45(プラグイン管理部104及びプラグイン実行部105)は、メッセージプラグインが見込みプラグインとして第1起動部55(オートスケール管理部115及びプラグイン実行部105)により既に起動されている場合には、そのメッセージプラグインを起動させないように動作する。これにより、処理を実行しないプラグインを第2起動部45が起動して余計なリソースを使用することが防がれる。
In this way, in the second activation unit 45 (plug-in
なお、前述したように、メッセージプラグイン(要求された処理を実行するプラグイン)と見込みプラグインとは必ず一致するとは限らない。それらが一致しない場合、すなわちメッセージプラグインが第1起動部55により起動されていない場合(つまり第1起動部55が他のプラグインを見込みプラグインとして起動した場合)には、第2起動部45は、メッセージプラグインを起動する。
As mentioned above, the message plug-in (plug-in that executes the requested processing) and the prospective plug-in do not always match. If they do not match, that is, if the message plugin is not launched by the first launcher 55 (that is, if the
その場合、プラグイン管理部104は、起動されたメッセージプラグインに対してメッセージに含まれる内容で処理を実行するように指示する。その結果、起動された見込みプラグインは、処理を実行しない状態になる。この場合は、オートスケール管理部115が、処理を一定期間実行していないプラグイン(非処理中プラグイン)だと見込みプラグインのことを把握するので、スケールインの対象だと判断してプラグイン実行部105に停止させる。オートスケール管理部115は本発明の「仮想マシン停止部」の一例である。
In that case, the plug-in
ただし、オートスケール管理部115は、次の場合にはプラグインを停止させない。オートスケール管理部115は、キュー103を監視し、前述したようにスケールインの対象だと判断した見込みプラグイン(メッセージプラグインと一致しなかった見込みプラグイン)がキュー103に蓄積されている別のメッセージが示すプラグインである場合には、その見込みプラグインを停止させない。
However, the
そうすることで、要求された処理を実行することが見込まれるプラグインとして特定された見込みプラグインがその要求による処理を実行しなかった場合でも、起動した見込みプラグインが他の処理を実行することになる。これにより、要求された処理を実行しない見込みプラグインを停止させる場合に比べて、その見込みプラグインが実行する見込みであった処理とは別の処理(キュー103に蓄積されているメッセージが示すプラグインが実行する処理)の開始が早期化されることになる。 By doing so, even if the prospective plug-in identified as a plug-in that is expected to perform the requested processing does not perform the processing according to the request, the launched prospective plug-in will perform other processing. It will be. As a result, compared to the case where the prospective plug-in that does not execute the requested processing is stopped, the processing different from the processing that the prospective plug-in was expected to execute (the plug indicated by the message accumulated in the queue 103). The start of the process executed by the inn will be accelerated.
第2起動部45は、前述した別のメッセージをキュー103から読み出した場合、そのメッセージが示すプラグインが第1起動部55により別の処理の見込みプラグインとしてではあるが既に起動されていることになるので、そのプラグインを起動させないように動作する。これにより、処理を実行しないプラグインを第2起動部45が起動して余計なリソースを消費することが防がれる。
When the
また、オートスケール管理部115は、前述したようにスケールインの対象だと判断した見込みプラグイン(処理を実行していない見込みプラグイン)が別の要求に基づいてタスク要求情報管理部111によって再度見込みプラグインと特定された場合はその見込みプラグインを停止させない。この場合は、要求された処理を実行しない見込みプラグインを停止させる場合に比べて、その見込みプラグインが実行する見込みであった処理の別の要求に基づく開始が早期化されることになる。
Further, in the auto
クラウドシステム4は、上記の構成に基づいて、プラグインを起動してタスクに含まれる処理を実行するタスク処理を行う。
図8はタスク処理におけるクラウドシステム4の動作手順の一例を表す。この動作手順は、ユーザ端末3からタスクの実行を要求する要求データをクラウドシステム4に向けて送信することを契機に開始される。
Based on the above configuration, the cloud system 4 performs task processing that activates a plug-in and executes processing included in the task.
FIG. 8 shows an example of the operation procedure of the cloud system 4 in the task processing. This operation procedure is started when the
まず、クラウドシステム4(タスクサービス部101)は、タスクの実行の要求を受け付ける(ステップS10)。その後、クラウドシステム4は、ステップS11からS13までの第1動作とステップS21からS23までの第2動作を並行して行う。まず、クラウドシステム4(タスクサービス部101及びタスク定義部102)は、要求されたタスクに含まれる処理を実行するプラグインを示すメッセージを生成する(ステップS11)。次に、クラウドシステム4(キュー103)は、生成されたメッセージを蓄積する(ステップS12)。続いて、クラウドシステム4(プラグイン管理部104)は、蓄積されたメッセージを読み出す(ステップS13)。ここまでが第1動作である。
First, the cloud system 4 (task service unit 101) receives a request for executing a task (step S10). After that, the cloud system 4 performs the first operation from steps S11 to S13 and the second operation from steps S21 to S23 in parallel. First, the cloud system 4 (
それと並行して、クラウドシステム4(タスク要求情報管理部111と、タスク定義情報記憶部112、リクエストパラメータ情報記憶部113又は履歴情報記憶部114)は、受け付けられた要求に基づいて見込みプラグインを特定する(ステップS21)。次に、クラウドシステム4(オートスケール管理部115及びプラグイン実行部105)は、インスタンスを起動して(ステップS22)、特定された見込みプラグインをそのインスタンス上で起動する(ステップS23)。ここまでが第2動作である。
At the same time, the cloud system 4 (task request
クラウドシステム4(プラグイン管理部104)は、第1動作で読み出したメッセージが示すメッセージプラグインと、第2動作で起動された見込みプラグインとが一致するか否かを判断する(ステップS31)。クラウドシステム4(プラグイン管理部104及びプラグイン実行部105)は、ステップS31で一致しない(NO)と判断した場合は、インスタンスを起動し(ステップS32)、そのインスタンス上でメッセージプラグインを起動して(ステップS33)、メッセージが示す内容で処理を実行する(ステップS34)。
The cloud system 4 (plug-in management unit 104) determines whether or not the message plug-in indicated by the message read in the first operation matches the prospective plug-in started in the second operation (step S31). .. If the cloud system 4 (plug-in
クラウドシステム4(プラグイン管理部104及びプラグイン実行部105)は、ステップS31で一致する(YES)と判断した場合は、起動済みの見込みプラグインにより、メッセージが示す内容で処理を実行する(ステップS34)。そして、クラウドシステム4は、タスクが完了したか否かを判断し(ステップS35)、完了していない(NO)と判断した場合はステップS11及びS21に戻って動作を行い、完了した(YES)と判断した場合はこの動作手順を終了する。
If the cloud system 4 (plug-in
また、クラウドシステム4は、上記の構成に基づいて処理を実行していないインスタンスを停止するスケールイン処理を行う。
図9はスケールイン処理におけるクラウドシステム4の動作手順の一例を表す。この動作手順は例えば決められた時間間隔で繰り返し行われる。まず、クラウドシステム4(オートスケール管理部115)は、プラグインによる処理の実行状況を把握して(ステップS41)、処理を実行していない非処理中プラグインがあるか否かを判断する(ステップS42)。
Further, the cloud system 4 performs a scale-in process for stopping an instance that has not executed the process based on the above configuration.
FIG. 9 shows an example of the operation procedure of the cloud system 4 in the scale-in processing. This operation procedure is repeated, for example, at fixed time intervals. First, the cloud system 4 (autoscale management unit 115) grasps the execution status of the processing by the plug-in (step S41), and determines whether or not there is a non-processing plug-in that has not executed the processing (step S41). Step S42).
クラウドシステム4(オートスケール管理部115)は、ステップS42において非処理中プラグインがない(NO)と判断した場合はステップS41に戻って動作を行い、非処理中プラグインがある(YES)と判断した場合は、その非処理中プラグインを示すメッセージがキュー103に蓄積されているか否かを判断する(ステップS43)。ステップS43において蓄積されている(YES)と判断された場合は、クラウドシステム4(プラグイン管理部104及びプラグイン実行部105)は、非処理中プラグインを停止することなく、非処理中プラグインでそのメッセージが示す内容の処理を実行する(ステップS47)。
If the cloud system 4 (autoscale management unit 115) determines in step S42 that there is no non-processing plug-in (NO), it returns to step S41 and operates, and there is a non-processing plug-in (YES). If it is determined, it is determined whether or not a message indicating the non-processing plug-in is accumulated in the queue 103 (step S43). If it is determined that the accumulation (YES) is made in step S43, the cloud system 4 (plug-in
クラウドシステム4(オートスケール管理部115)は、ステップS43において蓄積されていない(NO)と判断した場合は、非処理中プラグインが見込みプラグインとして特定されたか否かを判断し(ステップS44)、特定されていない(NO)と判断した場合は、非処理中プラグインを停止して(ステップS45)、ステップS41に戻って動作を行う。 If the cloud system 4 (autoscale management unit 115) determines that the plug-in has not been accumulated (NO) in step S43, it determines whether or not the non-processing plug-in has been identified as a prospective plug-in (step S44). If it is determined that the plug-in is not specified (NO), the non-processing plug-in is stopped (step S45), and the process returns to step S41 to perform the operation.
ステップS44において特定された(YES)と判断された場合は、クラウドシステム4(プラグイン管理部104及びプラグイン実行部105)は、メッセージプラグインと見込みプラグイン(すなわち非処理中プラグイン)が一致するか否かを判断し(ステップS46)、一致する(YES)と判断した場合は、見込みプラグインを起動することなく、且つ、非処理中プラグインを停止することなく、その非処理中プラグインでメッセージが示す内容の処理を実行する(ステップS47)。クラウドシステム4(オートスケール管理部115)は、ステップS46において一致しない(NO)と判断した場合は、ステップS45に進んで非処理中プラグインを停止し(ステップS45)、ステップS41に戻って動作を行う。
If it is determined (YES) specified in step S44, the cloud system 4 (plug-in
クラウドシステム4においてはオートスケールを行うことで、処理が実行された後の実行状況に応じてスケールアウトを行いインスタンス毎の負荷を低くして処理の早期終了を図っている。この方法では処理が開始されないとスケールアウトが行われ処理の早期終了の対処がなされない。これに対し、本実施例では、上記のとおり見込みプラグインが起動されることで、要求された処理が実行される前から処理の早期終了のための対処が行われるので、実行状況に応じたスケールアウトだけを行う場合に比べて、さらに早く処理が終了させることになる。 In the cloud system 4, by performing auto-scaling, scale-out is performed according to the execution status after the processing is executed to reduce the load for each instance and to end the processing early. In this method, if the process is not started, scale-out is performed and the early termination of the process is not dealt with. On the other hand, in this embodiment, by starting the prospective plug-in as described above, measures are taken for early termination of the processing before the requested processing is executed, so it depends on the execution status. The process will be completed even faster than when only scale-out is performed.
[2]変形例
上述した実施例は本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、実施例及び各変形例は、必要に応じて組み合わせて実施してもよい。
[2] Modifications The above-mentioned examples are merely examples of the implementation of the present invention, and may be modified as follows. Further, the examples and the respective modifications may be carried out in combination as necessary.
[2−1]見込みプラグインの起動タイミング
第1起動部55(オートスケール管理部115及びプラグイン実行部105)は、実施例では、見込みプラグインが特定されたらすぐにそれを起動したが、見込みプラグインを起動する際にはインスタンスも新たに起動するため、クラウドシステム4においては課金が開始されることになる。そこで、第1起動部55は、課金される期間を少しでも短くするため、状況に応じて起動タイミングを遅らせてもよい。
[2-1] Activation Timing of Probable Plug-in In the embodiment, the first activation unit 55 (
第1起動部55は、例えば、特定された見込みプラグインの起動に要する時間(起動時間)が短いほどその見込みプラグインを起動させる時期を遅くする。プラグインは、関連するプログラム、データ及びパラメータ等を読み出してメモリに記憶させる起動処理を行うことで起動され、この起動処理にはプラグイン毎に異なる一定の時間(起動時間)が必要になる。プラグインの起動時期とは、この起動処理を開始させる時期のことをいう。第1起動部55は、起動時間に応じて起動時期を異ならせるため、例えば起動時間と起動時期とを対応付けた起動時期テーブルを用いる。
For example, the shorter the time (startup time) required for starting the specified prospective plug-in, the later the
図10は起動時期テーブルの一例を表す。図10の例では、「A1未満」、「A1以上A2未満」、「A2以上」という起動時間に、「特定時刻T1+t3」、「特定時刻T1+t2」、「特定時刻T1+t1」(t1<t2<t3)という起動時期がそれぞれ対応付けられている。特定時刻T1は、見込みプラグインが特定された時刻であり、例えばタスク要求情報管理部111から特定した見込みプラグインのプラグインIDが供給された時刻を示す。
FIG. 10 shows an example of the start-up time table. In the example of FIG. 10, "specific time T1 + t3", "specific time T1 + t2", "specific time T1 + t1" (t1 <t2 <t3) are set to the start time of "less than A1", "A1 or more and less than A2", and "A2 or more". ) Is associated with each other. The specific time T1 is a time when the prospective plug-in is specified, and indicates, for example, a time when the plug-in ID of the prospective plug-in specified by the task request
第1起動部55は、見込みプラグイン毎の起動時間を記憶しておき、見込みプラグインのプラグインIDが供給されて特定時刻T1が確定すると、特定された見込みプラグインの起動時間に起動時期テーブルで対応付けられている起動時期まで待ってから見込みプラグインを起動する。
The
起動時期を一律にすると、起動時間が短いほどインスタンスも早く起動するので、インスタンスの使用料金が高くなる。図10の例では起動時間が短いほど見込みプラグインの起動時期を遅くするので、起動時期を一律にする場合に比べて起動が完了して見込みプラグインが処理を実行可能になる時期が近くなり、各インスタンスが起動されている期間の差異、すなわち使用料金の差異が小さくなる。 If the startup time is uniform, the shorter the startup time, the faster the instance will start, and the higher the instance usage fee will be. In the example of FIG. 10, the shorter the startup time, the later the startup time of the prospective plug-in, so the time when the startup is completed and the prospective plug-in can execute the process is closer than when the startup time is uniform. , The difference in the period during which each instance is started, that is, the difference in usage fee becomes small.
また、第1起動部55は、キュー103に蓄積されているメッセージが多いほど見込みプラグインを起動させる時期を遅くしてもよい。第1起動部55は、メッセージ数に応じて起動時期を異ならせるため、例えばメッセージ数と起動時期とを対応付けた起動時期テーブルを用いる。
図11は起動時期テーブルの別の一例を表す。図11の例では、「B1未満」、「B1以上B2未満」、「B2以上」というメッセージ数に、「特定時刻T1+t1」、「特定時刻T1+t2」、「特定時刻T1+t3」(t1<t2<t3)という起動時期がそれぞれ対応付けられている。
Further, the
FIG. 11 shows another example of the start-up time table. In the example of FIG. 11, the number of messages "less than B1", "B1 or more and less than B2", and "B2 or more" includes "specific time T1 + t1", "specific time T1 + t2", and "specific time T1 + t3" (t1 <t2 <t3). ) Is associated with each other.
第1起動部55は、見込みプラグインのプラグインIDが供給されて特定時刻T1が確定すると、キュー103を参照してメッセージ数をカウントし、カウントしたメッセージ数に起動時期テーブルで対応付けられている起動時期まで待ってから見込みプラグインを起動する。図11の例ではキュー103に蓄積されているメッセージが多いほど見込みプラグインの起動時期を遅くするので、起動時期を一律にする場合に比べて、見込みプラグインの起動が完了して処理を実行可能になる時期と対応するメッセージが読み出されて処理の実行が開始される時期とが近くなり、特に蓄積されているメッセージ数が多いときに、プラグインが処理を実行していないのにインスタンスが起動している状態となる期間が短くなる。
When the plug-in ID of the prospective plug-in is supplied and the specific time T1 is determined, the
また、第1起動部55は、種類が共通し且つ起動済みのプラグインの数が少ないほど特定されたその種類のプラグインを起動させる時期を早くしてもよい。プラグインには、例えば上述した矩形画像抽出、文書分割、OCR及びコンバージョン等の種類がある。第1起動部55は、起動済みの同種のプラグイン数に応じて起動時期を異ならせるため、例えば同種のプラグイン数と起動時期とを対応付けた起動時期テーブルを用いる。
Further, the
図12は起動時期テーブルの別の一例を表す。図12の例では、「C1未満」、「C1以上C2未満」、「C2以上」というメッセージ数に、「特定時刻T1+t1」、「特定時刻T1+t2」、「特定時刻T1+t3」(t1<t2<t3)という起動時期がそれぞれ対応付けられている。第1起動部55は、見込みプラグインのプラグインIDが供給されて特定時刻T1が確定すると、その見込みプラグインと同種の起動済みのプラグイン数をカウントし、カウントしたプラグイン数に起動時期テーブルで対応付けられている起動時期まで待ってから見込みプラグインを起動する。
FIG. 12 shows another example of the start-up time table. In the example of FIG. 12, the number of messages "less than C1", "more than C1 and less than C2", and "more than C2" are added to "specific time T1 + t1", "specific time T1 + t2", and "specific time T1 + t3" (t1 <t2 <t3). ) Is associated with each other. When the plug-in ID of the prospective plug-in is supplied and the specific time T1 is determined, the
クラウドシステム4においては、見込みプラグインの起動と並行してプラグインの実行状況に応じたオートスケールが行われている。そのため、見込みプラグインと同種のプラグインも、スケールアウトにより増加したり、スケールインにより減少したりする。その同種のプラグインの数が少ないほど、スケールインがされた場合に対応する処理を実行するプラグインの数が少なくなって処理が遅延しやすくなる。図12の例では起動済みの同種のプラグインが少ないほど見込みプラグインの起動時期を早くしてそれと同種のプラグインの数を早めに増やしているので、起動時期を一律にする場合に比べて、起動済みの同種のプラグインの数が少なくても処理の遅延が生じにくいようになっている。 In the cloud system 4, auto-scaling is performed according to the execution status of the plug-in in parallel with the activation of the prospective plug-in. Therefore, plug-ins of the same type as prospective plug-ins also increase due to scale-out and decrease due to scale-in. The smaller the number of plug-ins of the same type, the smaller the number of plug-ins that execute the corresponding processing when scaled in, and the processing tends to be delayed. In the example of FIG. 12, the smaller the number of plug-ins of the same type that have already been started, the earlier the start time of the expected plug-in and the number of plug-ins of the same type are increased earlier. , Even if the number of similar plug-ins that have been started is small, processing delays are less likely to occur.
また、第1起動部55は、要求されたタスクに含まれる処理を実行する順番が早いほど特定されたプラグインを起動させる時期を早くしてもよい。タスクに複数の処理が含まれる場合、それらの複数の処理は、複数のプラグインにより順番に実行される。例えば図4に表す「TASK01」は、「PLUG01」(矩形画像抽出)、「PLUG08」(文書分割)、「PLUG13」(経費精算データ送信)の順番で実行される。第1起動部55は、処理を実行する順番に応じて起動時期を異ならせるため、例えば処理の実行順と起動時期とを対応付けた起動時期テーブルを用いる。
Further, the
図13は起動時期テーブルの別の一例を表す。図13の例では、「1番」、「2〜3番」、「4番以降」という処理の実行順に、「特定時刻T1+t1」、「特定時刻T1+t2」、「特定時刻T1+t3」(t1<t2<t3)という起動時期がそれぞれ対応付けられている。この例では、タスク要求情報管理部111が、見込みプラグインを特定する際に、その見込みプラグインの実行順も特定する。
FIG. 13 shows another example of the start-up time table. In the example of FIG. 13, "specific time T1 + t1", "specific time T1 + t2", "specific time T1 + t3" (t1 <t2) in the order of execution of the processes "1st", "2nd to 3rd", and "4th and later". The start-up times <t3) are associated with each other. In this example, when the task request
例えば、タスク定義情報記憶部112が実行順もタスク定義IDに対応付けてタスク定義情報として記憶しておき、タスク要求情報管理部111が、要求データが示すタスク定義IDにタスク定義情報において対応付けられているプラグインID及び実行順を読み出すことで、見込みプラグインの実行順を特定し、特定した見込みプラグインのプラグインID及び実行順をオートスケール管理部115に供給する。
For example, the task definition
第1起動部55(オートスケール管理部115及びプラグイン実行部105)は、見込みプラグインのプラグインIDが供給されて特定時刻T1が確定すると、ともに供給された実行順に起動時期テーブルで対応付けられている起動時期まで待ってから見込みプラグインを起動する。処理の実行順が早いほど、後から起動されるプラグインの数が増えるから、万が一そのプラグインの起動に遅れ(起動エラー等による遅れ)が生じた場合の影響(遅れが生じるプラグインの数)が大きくなる。図13の例では処理の実行順が早い見込みプラグインほど起動時期を早くするので、起動時期を一律にする場合に比べて、見込みプラグインによる処理の遅延が後続の処理に与える影響が小さくなる。
When the plug-in ID of the prospective plug-in is supplied and the specific time T1 is determined, the first start unit 55 (
また、第1起動部55は、特定された見込みプラグインと同種のプラグインの起動回数が多いほど見込みプラグインを起動させる時期を早くしてもよい。第1起動部55は、起動回数に応じて起動時期を異ならせるため、例えば起動回数と起動時期とを対応付けた起動時期テーブルを用いる。
Further, the
図14は起動時期テーブルの別の一例を表す。図14の例では、「D1未満」、「D1以上D2未満」、「D2以上」という起動回数に、「特定時刻T1+t3」、「特定時刻T1+t2」、「特定時刻T1+t1」(t1<t2<t3)という起動時期がそれぞれ対応付けられている。この例では、履歴情報記憶部114が、プラグイン実行部105から起動されたプラグインのプラグインIDを供給させることで、そのプラグインIDと起動回数とを対応付けた情報を履歴情報として記憶する。
FIG. 14 shows another example of the start-up time table. In the example of FIG. 14, the number of activations of "less than D1", "D1 or more and less than D2", and "D2 or more" includes "specific time T1 + t3", "specific time T1 + t2", and "specific time T1 + t1" (t1 <t2 <t3). ) Is associated with each other. In this example, the history information storage unit 114 supplies the plug-in ID of the plug-in activated from the plug-in
第1起動部55は、見込みプラグインのプラグインIDが供給されて特定時刻T1が確定すると、そのプラグインIDに対応付けて履歴情報記憶部114に記憶されている起動回数に起動時期テーブルで対応付けられている起動時期まで待ってから見込みプラグインを起動する。起動回数が多いプラグインほど、処理を要求されることが多いから、万が一そのプラグインの起動に遅れが生じた場合の影響が大きくなる。図14の例では起動回数が多い見込みプラグインほど起動時期を早くするので、起動時期を一律にする場合に比べて、見込みプラグインによる処理の遅延が後続の処理に与える影響が小さくなる。
When the plug-in ID of the prospective plug-in is supplied and the specific time T1 is determined, the first start-up
また、第1起動部55は、特定された見込みプラグインをメッセージプラグインとして示すメッセージよりも前にキュー103に蓄積されたメッセージが示すプラグインにより実行される処理に要する時間(処理時間)が長いほど見込みプラグインを起動させる時期を遅くしてもよい。第1起動部55は、処理時間に応じて起動時期を異ならせるため、例えば処理時間と起動時期とを対応付けた起動時期テーブルを用いる。
In addition, the
図15は起動時期テーブルの別の一例を表す。図15の例では、「E1未満」、「E1以上E2未満」、「E2以上」という処理時間に、「特定時刻T1+t1」、「特定時刻T1+t2」、「特定時刻T1+t3」(t1<t2<t3)という起動時期がそれぞれ対応付けられている。この例では、例えばプラグイン管理部104が、キュー103に蓄積されているメッセージを読み出して、読み出したメッセージが示す処理の内容に基づいてその処理に要する時間(処理時間)を算出する。この場合のプラグイン管理部104は本発明の「算出部」の一例である。
FIG. 15 shows another example of the start-up time table. In the example of FIG. 15, “specific time T1 + t1”, “specific time T1 + t2”, “specific time T1 + t3” (t1 <t2 <t3) are set to the processing times of “less than E1”, “E1 or more and less than E2”, and “E2 or more”. ) Is associated with each other. In this example, for example, the plug-in
第1起動部55は、見込みプラグインのプラグインIDが供給されて特定時刻T1が確定すると、そのプラグインIDを示すメッセージよりも前に蓄積されたメッセージについて算出された処理時間の合計時間に起動時期テーブルで対応付けられている起動時期まで待ってから見込みプラグインを起動する。こうして算出された処理時間の合計時間は、見込みプラグインに処理の実行が指示されるまでの待ち時間に相当する。この待ち時間が長いほど起動時期を遅くすることで、起動時期を一律にする場合に比べて、図11の例と同様に、プラグインが処理を実行していないのにインスタンスが起動している状態となる期間が短くなる。
When the plug-in ID of the prospective plug-in is supplied and the specific time T1 is fixed, the
[2−2]インスタンス上で起動するプラグインの数
プラグイン実行部105は、実施例では、1つのインスタンス上では1つのプラグインだけを実行したが、これに限らず、1つのインスタンス上で複数のインスタンスを実行してもよい。その場合、オートスケール管理部115は、インスタンス上に非処理中プラグインが1つあっても、他のプラグインが処理を実行していれば、非処理中プラグインだけを停止させて、他のプラグイン及びインスタンスは停止させない。
[2-2] Number of plug-ins to be started on the instance In the embodiment, the plug-in
そして、オートスケール管理部115は、インスタンス上の全てのプラグインが非処理中プラグインになった場合のみ、その非処理中プラグイン及びインスタンスを停止させる。いずれの場合も、オートスケール管理部115は、処理が完了したプラグインを停止させるという点では変わらない。オートスケール管理部115は本発明の「機能停止部」の一例である。
Then, the
また、オートスケール管理部115は、プラグインをスケールアウトする際に、いずれかのインスタンスにそのプラグインを起動させるリソースが空いていれば、そのインスタンス上でプラグインを起動させる。このように、オートスケール管理部115は、処理を実行中のプラグインは残しつつ、なるべくインスタンス数が増えないようにオートスケールを制御する。
Further, when the plug-in is scaled out, the
[2−3]プラグインのみのオートスケール
プラグイン実行部105は、実施例では、プラグイン及びインスタンスに対して同時にオートスケールを行った(プラグインを起動するときにはインスタンスも起動し、プラグインを停止するときにはインスタンスも停止した)が、これに限らず、前述した変形例のようにプラグインのみに対してオートスケールを行ってもよい。
[2-3] Plug-in-only autoscale In the embodiment, the plug-in
なお、前述した変形例では1つのインスタンス上で複数のインスタンスを実行したが、実施例のように1つのインスタンス上では1つのプラグインだけを実行する場合に、プラグインのみに対してオートスケールを行ってもよい。その場合、プラグインのみを停止させると、プラグインを実行していない状態のインスタンスが残ることになる。第1起動部55は、そのようにインスタンス上のプラグインが処理を完了して停止されると、特定された見込みプラグインをそのインスタンス上で起動してもよい。
In the above-mentioned modification, a plurality of instances are executed on one instance, but when only one plug-in is executed on one instance as in the example, autoscale is applied only to the plug-in. You may go. In that case, if you stop only the plug-in, the instance in the state where the plug-in is not running will remain. The
インスタンスを起動させるためにはプラグインと同様に一定の時間を要するが、上記のとおり起動済みのインスタンスを再利用することで、インスタンスの起動時間を待つことが不要になる。第1起動部55は、このようにインスタンスを再利用して見込みプラグインを起動する場合には、その見込みプラグインについては図10から図15の説明で述べたような起動時期を変化させる制御を行わなくてよい。
It takes a certain amount of time to start an instance like a plug-in, but by reusing an already started instance as described above, it is not necessary to wait for the instance start time. When the
インスタンスを再利用する場合は新たなインスタンスの費用は掛からないので、起動時期を遅らせても課金される期間が短縮されない。そうであれば、特定された見込みプラグインを第1起動部55がすぐに起動することで、起動時期を遅らせる場合に比べて、処理の早期終了の可能性が高められる。
When reusing an instance, there is no cost for a new instance, so even if the startup time is delayed, the billing period will not be shortened. If this is the case, the
[2−4]見込みプラグインの再利用
上記の各例では、第1起動部55が常に見込みプラグインを新たに起動したが、既に起動されているプラグインを利用することで、見込みプラグインを新たに起動しないようにしてもよい。具体的には、第1起動部55は、特定された見込みプラグインと同種のプラグインが一定期間処理を実行していない状態で存在する場合(つまり上述した非処理中プラグインが存在する場合)は、見込みプラグインの起動を行わない。
[2-4] Reuse of prospective plug-in In each of the above examples, the
そして、このように第1起動部55が見込みプラグインの起動を行わない場合に、プラグイン管理部104は、前述した非処理中プラグインを制御して、その見込みプラグインの特定に用いられた要求がされた処理を実行させる。この場合のプラグイン管理部104は本発明の「実行制御部」の一例である。
Then, when the
本変形例でも、非処理中プラグインが起動されているインスタンスが再利用されるので、新たなインスタンスの費用は掛からない。また、インスタンス及びプラグインの両方を再利用することで、それら両方の停止及び起動に要する時間が不要になるから、この再利用を行わない場合に比べて、処理の早期終了の可能性が高められる。 In this modified example as well, the instance in which the non-processing plug-in is running is reused, so there is no cost for a new instance. Also, by reusing both the instance and the plug-in, the time required to stop and start both of them becomes unnecessary, so the possibility of early termination of processing is higher than when this reuse is not performed. Be done.
[2−5]各機能の実現方法
図3に表す各機能は、2以上の機能が統合されてもよいし、1つの機能が2以上の機能に分割されてもよい。例えば、タスクサービス部101が、タスクの実行の要求を受け付ける受付部と、受け付けた要求に基づいてメッセージの生成等を行う生成部と、要求データをタスク要求情報管理部111に供給して要求内容を通知する通知部とに分割されてもよい。また、オートスケール管理部115が、インスタンスのオートスケールを管理する第1管理部と、プラグインのオートスケールを管理する第2管理部とに分割されてもよい。
[2-5] Method for Realizing Each Function In each function shown in FIG. 3, two or more functions may be integrated, or one function may be divided into two or more functions. For example, the
また、タスク要求情報管理部111、タスク定義情報記憶部112、リクエストパラメータ情報記憶部113及び履歴情報記憶部114が、見込みプラグインを特定する特定部として統合されてもよい。また、図3に表す各部とは別に見込みプラグインを特定する特定部を設けてもよい。要するに、タスクサービス提供システム1の全体で図3に表す各機能と同等の機能が実現されていれば、機能のまとめ方はどのようになっていてもよい。
Further, the task request
[2−6]発明のカテゴリ
本発明は、サーバ装置10という情報処理装置の他、その情報処理装置を備えるクラウドシステム4又はタスクサービス提供システム1という情報処理システムとしても捉えられる。また、本発明は、各装置が実施する処理を実現するための情報処理方法としても捉えられるし、各装置を制御するコンピュータを機能させるためのプログラムとしても捉えられる。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されてもよいし、インターネット等の通信回線を介してコンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態で提供されてもよい。
[2-6] Category of Invention The present invention can be regarded as an information processing system called a cloud system 4 or a task
1…タスクサービス提供システム、3…ユーザ端末、4…クラウドシステム、10…サーバ装置、101…タスクサービス部、102…タスク定義部、103…キュー、104…プラグイン管理部、105…プラグイン実行部、111…タスク要求情報管理部、112…タスク定義情報記憶部、113…リクエストパラメータ情報記憶部、114…履歴情報記憶部、115…オートスケール管理部。 1 ... Task service providing system, 3 ... User terminal, 4 ... Cloud system, 10 ... Server device, 101 ... Task service unit, 102 ... Task definition unit, 103 ... Queue, 104 ... Plug-in management unit, 105 ... Plug-in execution Unit, 111 ... Task request information management unit, 112 ... Task definition information storage unit, 113 ... Request parameter information storage unit, 114 ... History information storage unit, 115 ... Autoscale management unit.
Claims (14)
仮想マシン上で起動される機能により実行される処理の要求を受け取ると当該機能を示す機能情報を生成する生成部と、
生成された前記機能情報を一時的に蓄積する一時蓄積部と、
前記処理の要求に基づいて当該処理を実行することが見込まれる機能を特定する特定部と、
特定された前記機能を仮想マシン上で起動させる第1起動部と、
前記一時蓄積部から読み出される前記機能情報が示す機能を仮想マシン上で起動させる第2起動部であって、当該機能が前記第1起動部により既に起動されている場合には当該機能を起動させない第2起動部
として機能させるためのプログラム。 Computer,
A generator that generates function information indicating the function when it receives a request for processing executed by the function started on the virtual machine.
A temporary storage unit that temporarily stores the generated functional information,
A specific part that identifies a function that is expected to execute the process based on the request for the process, and
The first boot unit that launches the specified function on the virtual machine,
It is a second activation unit that activates the function indicated by the function information read from the temporary storage unit on the virtual machine, and if the function has already been activated by the first activation unit, the function is not activated. A program to function as the second startup unit.
請求項1に記載のプログラム。 The computer functions as a virtual machine starter that starts a virtual machine having resources used when the function is started by the first starter or the second starter. The program according to claim 1.
請求項1又は2に記載のプログラム。 The computer is a virtual machine stop unit that stops a virtual machine in which a function that does not execute the process is activated, and is a function indicated by the function information in which the function is stored in the temporary storage unit. In this case, the program according to claim 1 or 2, which functions as a virtual machine stop unit that does not stop the function.
請求項3に記載のプログラム。 The virtual machine stop unit does not stop the virtual machine when the function that does not execute the process is specified by the specific unit as a function that is expected to execute the process based on another request. The program according to claim 3.
請求項1から4のいずれか1項に記載のプログラム。 The specific unit is a function that is expected to execute a function that is more likely to be activated from the parameter of the requested process or the history of the request for the process than other functions. The program according to any one of claims 1 to 4 to be specified.
請求項1から5のいずれか1項に記載のプログラム。 The program according to any one of claims 1 to 5, wherein the first activation unit delays the activation time of the specified function as the time required to activate the function is shorter.
請求項1から6のいずれか1項に記載のプログラム。 The program according to any one of claims 1 to 6, wherein the first activation unit delays the activation time of the specified function as the amount of the function information stored in the temporary storage unit increases.
前記第1起動部は、前記種類が共通し且つ起動済みの機能の数が少ないほど特定された当該種類の機能を起動させる時期を早くする
請求項1から7のいずれか1項に記載のプログラム。 There are multiple types of the above functions.
The program according to any one of claims 1 to 7, wherein the first activation unit activates a function of the specified type earlier as the number of functions having the same type and activated is smaller. ..
前記第1起動部は、当該機能の前記順番が早いほど特定された前記機能を起動させる時期を早くする
請求項1から8のいずれか1項に記載のプログラム。 The processing is executed in order by a plurality of functions,
The program according to any one of claims 1 to 8, wherein the first activation unit activates the specified function earlier as the order of the functions is earlier.
前記第1起動部は、特定された前記機能と同種の機能の起動回数が多いほど特定された当該機能を起動させる時期を早くする
請求項1から9のいずれか1項に記載のプログラム。 There are multiple types of the above functions.
The program according to any one of claims 1 to 9, wherein the first activation unit activates the specified function earlier as the number of activations of the same type of function as the specified function increases.
前記第1起動部は、特定された前記機能を示す前記機能情報よりも前に蓄積された前記機能情報について算出された前記時間が長いほど仮想マシン上で当該機能を起動させる時期を遅くする
請求項1から10のいずれか1項に記載のプログラム。 The computer is made to function as a calculation unit for calculating the time required for the processing executed by the function indicated by the accumulated function information.
The first activation unit is claimed to delay the timing of activating the function on the virtual machine as the time calculated for the function information accumulated before the function information indicating the specified function is longer. Item 5. The program according to any one of Items 1 to 10.
前記第1起動部は、仮想マシン上の前記機能が前記処理を完了して停止されると、特定された前記機能を当該仮想マシン上で起動し、当該機能については前記時期を変化させる制御を行わない
請求項6から11のいずれか1項に記載のプログラム。 The computer is made to function as a function stop unit for stopping the function for which the process has been completed.
When the function on the virtual machine is stopped after completing the process, the first activation unit activates the specified function on the virtual machine, and controls the function to change the timing. The program according to any one of claims 6 to 11.
前記第1起動部は、特定された前記機能と同種の機能が前記処理を実行していない状態で存在する場合は、特定された当該機能の起動を行わず、
前記コンピュータを、前記第1起動部が前記機能の起動を行わない場合に、前記状態で存在する機能を制御して前記要求がされた処理を実行させる実行制御部として機能させる
請求項1から12のいずれか1項に記載のプログラム。 There are multiple types of the above functions.
When a function of the same type as the specified function exists in a state where the process is not executed, the first activation unit does not activate the specified function.
Claims 1 to 12 that cause the computer to function as an execution control unit that controls a function existing in the state and executes the requested process when the first activation unit does not activate the function. The program described in any one of the above.
生成された前記機能情報を一時的に蓄積する一時蓄積部と、
前記処理の要求に基づいて当該処理を実行することが見込まれる機能を特定する特定部と、
特定された前記機能を仮想マシン上で起動させる第1起動部と、
前記一時蓄積部から読み出される前記機能情報が示す機能を仮想マシン上で起動させる第2起動部であって、当該機能が前記第1起動部により既に起動されている場合には当該機能を起動させない第2起動部と
を備える情報処理装置。 A generator that generates function information indicating the function when it receives a request for processing executed by the function started on the virtual machine.
A temporary storage unit that temporarily stores the generated functional information,
A specific part that identifies a function that is expected to execute the process based on the request for the process, and
The first boot unit that launches the specified function on the virtual machine,
It is a second activation unit that activates the function indicated by the function information read from the temporary storage unit on the virtual machine, and if the function has already been activated by the first activation unit, the function is not activated. An information processing device including a second activation unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017215665A JP6962142B2 (en) | 2017-11-08 | 2017-11-08 | Programs and information processing equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017215665A JP6962142B2 (en) | 2017-11-08 | 2017-11-08 | Programs and information processing equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019087098A JP2019087098A (en) | 2019-06-06 |
JP6962142B2 true JP6962142B2 (en) | 2021-11-05 |
Family
ID=66763165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017215665A Active JP6962142B2 (en) | 2017-11-08 | 2017-11-08 | Programs and information processing equipment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6962142B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020182575A (en) * | 2019-04-30 | 2020-11-12 | 株式会社大一商会 | Game machine |
WO2024004930A1 (en) * | 2022-06-28 | 2024-01-04 | 京セラドキュメントソリューションズ株式会社 | Cloud system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005275707A (en) * | 2004-03-24 | 2005-10-06 | Hitachi Ltd | Information processor, control method for information processor, and program |
WO2008084826A1 (en) * | 2007-01-11 | 2008-07-17 | Nec Corporation | Provisioning system, method, and program |
JP2009037353A (en) * | 2007-07-31 | 2009-02-19 | Ricoh Co Ltd | Information processing terminal device and program |
JP2010097543A (en) * | 2008-10-20 | 2010-04-30 | Fujitsu Frontech Ltd | Service support program and service support method |
JP2012014506A (en) * | 2010-07-01 | 2012-01-19 | Mitsubishi Electric Corp | Process execution apparatus, process execution system, process execution method and program |
JP2012088901A (en) * | 2010-10-19 | 2012-05-10 | Fujitsu Ltd | Software management device, software management method, and software management program |
JP2015106167A (en) * | 2013-11-28 | 2015-06-08 | ソニー株式会社 | Information processing device, information processing method, and storage medium |
-
2017
- 2017-11-08 JP JP2017215665A patent/JP6962142B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019087098A (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190228303A1 (en) | Method and apparatus for scheduling resource for deep learning framework | |
CN105516086B (en) | Method for processing business and device | |
US10013288B2 (en) | Data staging management system | |
US9921882B2 (en) | Information processing system, deployment method, processing device, and deployment device | |
CN111210136A (en) | Robot task scheduling method and server | |
US9342369B2 (en) | System and method for increasing throughput of a PaaS system | |
CN113645262A (en) | Cloud computing service system and method | |
JP6962142B2 (en) | Programs and information processing equipment | |
CN115617497B (en) | Thread processing method, scheduling component, monitoring component, server and storage medium | |
WO2018107945A1 (en) | Method and device for implementing allocation of hardware resources, and storage medium | |
CN110659131A (en) | Task processing method, electronic device, computer device, and storage medium | |
CN115150464B (en) | Application proxy method, device, equipment and medium | |
US20210141667A1 (en) | Information processing apparatus, job scheduling method, and non-transitory computer-readable storage medium | |
CN110413398B (en) | Task scheduling method and device, computer equipment and storage medium | |
CN110675058A (en) | Work order processing method, electronic device, storage medium and system | |
CN106775975B (en) | Process scheduling method and device | |
CN111143063B (en) | Task resource reservation method and device | |
US10867264B2 (en) | Methods and systems for estimating lag times in a cloud computing infrastructure | |
CN111355751A (en) | Task scheduling method and device | |
US11275621B2 (en) | Device and method for selecting tasks and/or processor cores to execute processing jobs that run a machine | |
JP6823257B2 (en) | Job monitoring program, job monitoring device and job monitoring method | |
CN111190725B (en) | Task processing method, device, storage medium and server | |
CN113722091A (en) | Simulation task deployment method, system and related device | |
CN112380040A (en) | Message processing method and device, electronic equipment and storage medium | |
CN115061794A (en) | Method, device, terminal and medium for scheduling task and training neural network model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200831 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210827 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210927 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6962142 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |