JP7135648B2 - 中継システム - Google Patents

中継システム Download PDF

Info

Publication number
JP7135648B2
JP7135648B2 JP2018176618A JP2018176618A JP7135648B2 JP 7135648 B2 JP7135648 B2 JP 7135648B2 JP 2018176618 A JP2018176618 A JP 2018176618A JP 2018176618 A JP2018176618 A JP 2018176618A JP 7135648 B2 JP7135648 B2 JP 7135648B2
Authority
JP
Japan
Prior art keywords
request
service
plug
failure
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018176618A
Other languages
English (en)
Other versions
JP2020048126A5 (ja
JP2020048126A (ja
Inventor
博行 江口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2018176618A priority Critical patent/JP7135648B2/ja
Priority to US16/568,165 priority patent/US11416355B2/en
Publication of JP2020048126A publication Critical patent/JP2020048126A/ja
Publication of JP2020048126A5 publication Critical patent/JP2020048126A5/ja
Application granted granted Critical
Publication of JP7135648B2 publication Critical patent/JP7135648B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Description

本発明は、中継システムに関する。
ジョブを処理する装置の動作状況を監視し、ジョブを処理する装置の処理数が基準を越える場合、いずれか1つのジョブ処理装置のタスクを増加させる機能を備えるシステムがある。
特開2014-149690号公報
要求の状況に応じて、計算資源の増減を指示するシステムにおいて、要求の増加が障害に起因する場合でも、追加の計算資源が割り当てられることがある。
本発明は、要求の増加が障害に起因する場合であっても、追加の計算資源が割り当てられることを抑制することを目的とする。
請求項1に記載の発明は、記憶部から要求を読み出して処理する処理部に関する障害の発生を検知する検知手段と、前記記憶部に記憶された要求の状態を監視し、前記記憶部に記憶された要求の状態に応じて、計算資源の増減を指示する監視手段と、前記検知手段が前記処理部の動作の停止を伴う障害を検知した場合、前記記憶部の状態を、前記監視手段により計算資源の追加が不要であると判断される状態に制御する制御手段と、を有する中継システムである。
請求項2に記載の発明は、前記制御手段は、検知された前記障害に関連する前記処理部に対応付けられた処理中の要求に関する状態を、当該処理部が前記記憶部から当該処理中の要求を取り出せない状態に制御する、ことを特徴とする請求項1に記載の中継システムである。
請求項3に記載の発明は、前記制御手段は、前記障害が検知された前記処理部による実行に備えて前記記憶部に記憶された待機中の要求の状態を、当該記憶部から要求を取り出せない状態に制御する、請求項1又は2に記載の中継システムである。
請求項4に記載の発明は、前記制御手段は、前記障害が検知された場合に、前記記憶部に記憶された要求の数が、予め定めた値を超えていないようにみせる制御を実行する、請求項1に記載の中継システムである。
請求項5に記載の発明は、要求を前記記憶部に記憶する前に、要求を処理する前記処理部について前記障害が検知された場合に、前記制御手段は、当該記憶部に記憶する当該障害が検知された後に発生した要求の状態を、当該記憶部から前記処理部に取り出せない状態に設定する、請求項1~3のいずれか1項に記載の中継システムである。
請求項6に記載の発明は、要求を処理する前記処理部について前記障害が検知された場合に、前記制御手段は、当該障害が検知された後に発生した要求を前記記憶部に書き込まずに廃棄する、請求項1~3のいずれか1項に記載の中継システムである。
請求項7に記載の発明は、前記制御手段は、前記障害が発生していない状態になったことが前記検知手段によって検知された場合、前記記憶部に保持されている要求の状態を、当該記憶部から前記処理部が要求を取り出せない状態から当該記憶部から当該処理部が要求を取り出せる状態に変更する、請求項2に記載の中継システムである。
請求項1記載の発明によれば、要求の増加が障害に起因する場合であっても、追加の計算資源が割り当てられることを抑制できる。
請求項2記載の発明によれば、障害が検知された場合に処理中の要求を、障害に関連する処理部に取り出せないようにできる。
請求項3記載の発明によれば、障害の発生前に記憶部に記憶された待機中の要求を、障害に関連する処理部に取り出せないようにできる。
請求項4記載の発明によれば、障害が発生している間、追加の計算資源を必要としない状態にみせかけることができる。
請求項5記載の発明によれば、障害の発生が検知された後に記憶部に要求が記憶される場合でも、記憶された要求が障害に関連する処理部に取り出せないようにできる。
請求項6記載の発明によれば、障害の発生が検知された後は記憶部に新たな要求が記憶されないようにできる。
請求項7記載の発明によれば、要求の増加が障害に起因する場合であっても、追加の計算資源が割り当てられることを抑制できる。
実施の形態1に係るクラウド連携システムの構成例を示す。 実施の形態に係る中継装置のハードウェア構成の一例を示す図である。 中継装置の機能構成例を説明する図である。 タスクサービスに設けられる機能の一例を説明する図である。 障害検知部に設けられる機能の一例を説明する図である。 リクエスト制御部に設けられる機能の一例を説明する図である。 いずれのプラグインサービスにも障害が発生していない場合のシーケンス例を説明する図である。 要求の状態の管理に使用する状態表の例を説明する図である。 プラグインサービスに障害が発生した場合のシーケンス例を説明する図である。 障害が検知される前のキューに記憶されている要求の状態表の例である。 障害通知のデータ構造の例を説明する図である。 障害の検知後における状態表の例を示す図である。 障害の検知後に入力された新規の要求を含む状態表の例を説明する図である。 プラグインサービスに障害が発生した場合の他のシーケンス例を説明する図である。 障害の検知後に入力された新規の要求を含む状態表の例を説明する図である。 プラグインサービスの障害が検知された後に実行されるシーケンス例を説明する図である。 図16におけるステップ1の処理前における状態表を説明する図である。 図16におけるステップ1の処理後における状態表を説明する図である。 図16におけるステップ6の時点におけるキューに記憶されている要求の状態表の例である。 プラグインサービスの障害が検知された後に実行されるシーケンス例を説明する図である。 要求の処理の完了が通知された後における状態表を説明する図である。 図20におけるステップ5の処理後の状態表を説明する図である。 図20におけるステップ8の処理後の状態表を説明する図である。 障害からの復旧が検知された場合のシーケンス例を説明する図である。 復旧通知のデータ構造を説明する図である。 図24におけるステップ3の処理後における状態表の例を説明する図である。 図24におけるステップ8の処理後における状態表の例を説明する図である。
以下、図面を参照して、本発明の実施の形態を説明する。
<実施の形態1>
<システム構成>
図1は、実施の形態1に係るクラウド連携システム1の構成例を示す。
クラウド連携システム1は、文書の処理を要求する入力装置100と、入力装置100から受信した要求を処理してクラウド上のサービス(以下「クラウドサービス」ともいう)との連携を実現する中継装置200と、クラウドネットワーク300と、クラウドサービスの一例であるストレージ型クラウドサーバ400Aと、業務支援型クラウドサーバ400Bとを有している。
ここでの中継装置200は、中継システムの一例であり、クラウドネットワーク300に接続されている。
入力装置100は、クラウドサービスに登録されているユーザが操作する端末である。本実施の形態では、入力装置100として、例えば画像処理装置、スマートフォンを想定する。
ここでの画像処理装置には、FAX文書を送受信するFAX機能の他、複製物を生成するコピー機能、原稿の画像を読み取るスキャン機能、用紙その他の記録媒体に画像を印刷する印刷機能等が設けられている。もっとも、画像処理装置は、これら全ての機能を備える必要はなく、いずれか1つの機能に特化した装置であってもよい。
本実施の形態の場合、FAX文書は、ファクシミリによって送受信される写真、文字、図形などの文書の意味で使用する。
例えば入力装置100は、スキャン文書をユーザが希望するクラウドサービスに直接登録するために使用される。また例えば入力装置100は、ユーザが希望する文書を複数のクラウドサービスから検索してプリントアウトするために使用される。また例えば入力装置100は、プリントドライバーやコンピュータを使用せずに文書ファイルや画像ファイル等をプリントするために使用される。
図1の場合には、入力装置100と中継装置200は独立した装置として描いているが、中継装置200は、入力装置100に内蔵されていてもよい。
<中継装置の構成>
図2は、実施の形態に係る中継装置200のハードウェア構成の一例を示す図である。
図2に示す中継装置200は、いわゆるコンピュータとしての構成を有している。
このため、中継装置200は、プログラム(ファームウェアを含む)の実行を通じて装置全体を制御するCPU201と、BIOS(Basic Input Output System)等のプログラムを記憶するROM202と、プログラムの実行領域として使用されるRAM203と、CPU201で実行されるプログラム、画像データ、管理データ等が記憶されるハードディスク装置(HDD)204と、外部との通信に用いられる通信インターフェース(通信IF)205と、を有している。
これらの各部は、バス206又は不図示の信号線を通じて互いに接続されている。
図3は、中継装置200の機能構成例を説明する図である。
図3に示す機能は、CPU201(図2参照)によるプログラムの実行を通じて実現される。
図3に示す中継装置200は、内部と外部の通信を管理するコアサービス211と、タスクの定義を格納するタスク定義モジュール212と、文書を処理するプラグインサービス214の呼び出し要求(リクエスト)を保持するキュー213と、要求に基づいて文書を処理するプラグインサービス214と、キュー213に保持されている要求の数に基づいてプラグインサービス214の起動と停止を管理するオートスケール管理部215と、キュー213に保持されている要求を処理するプラグインサービス214やクラウドサーバに起因する障害を検知する障害検知部216と、障害の発生に起因する未処理の要求の数の増加の場合にはオートスケール処理が実行されないようにキュー213の状態を制御するリクエスト制御部217とを有している。
プラグインサービス214の起動は、クラウドネットワーク上での計算資源の追加を伴い、プラグインサービス214の停止は、クラウドネットワーク上での計算資源の解放を伴う。前述したオートスケール管理部215は、この起動と停止を管理する。
ここでの計算資源は、例えばプラグインサービスなどのアプリケーションを動作させるための実行環境をいう。
本実施の形態では、図3に示す全ての機能が1台の中継装置200によって実現されているが、これらの機能は複数の処理装置の協働によって実現されてもよい。その場合、互いに協働する複数台の処理装置は、中継システムの一例である。協働する複数台の処理装置は、図2に示すハードウェア構成を有してもよい。また、全ての機能がプログラムの実行を通じて実現されなくてもよい。すなわち、一部の機能は、論理回路として実現されてもよい。
<コアサービス211>
コアサービス211は、入力装置100と通信するタスクサービス211Aと、業務支援型クラウドサーバ400Bと通信する通信サービス211Bと、ストレージ型クラウドサーバ400Aと通信する通信サービス211Cとを含んでいる。
タスクサービス211Aは、入力装置100(図1参照)から受信された通知又は要求に基づいて、タスク定義モジュール212のイベント処理モジュール212Aを起動し、要求を実現するタスクを取得する。
「タスク」は、1つ又は複数のプラグインサービス214により実行される一連の作業である。タスク定義ライブラリ212Bには、タスク別に、呼び出しの対象となるプラグインサービス214の組み合わせが記録されている。
図4は、タスクサービス211Aに設けられる機能の一例を説明する図である。
本実施の形態におけるタスクサービス211Aは、プラグイン状態要求機能211A1と取得不可リクエスト格納機能211A2とを有する。
プラグイン状態要求機能211A1は、入力装置100(図1参照)からの要求およびタスクの定義に基づいて、リクエスト制御部217(図3参照)に対してプラグインサービス214(図3参照)の状態を要求する。
取得不可リクエスト格納機能211A2は、リクエスト制御部217からの応答により確認されたプラグインサービス214の状態が非動作中(inactive)の場合に、キュー213(図3参照)に格納する要求の状態を、オートスケール管理部215から見えない状態(invisible)に設定する。以下では、この状態を不可視の状態ともいう。
換言すると、障害の検知後にキュー213に記憶される要求は、オートスケール管理部215から見えない状態に制御される。この結果、キュー213に保持されたまま滞留する未処理の要求が増加する場合でも、滞留が障害に起因するときには、オートスケール管理部215によって処理能力の不足が生じているとは誤判定されないようになる。すなわち、障害が検知されている間は、オートスケール管理部215によるプラグインサービス214(図3参照)の追加を予防できる。
図3の説明に戻る。
<キュー213>
キュー213は、プラグインサービス214を呼び出す要求を保持する記憶部の一例である。
本実施の形態の場合、キュー213は、プラグインサービス214毎に用意されている。もっとも、後述するように、キュー213は、複数のプラグインサービス214について共用されてもよい。
<プラグインサービス214>
プラグインサービス214は、実行する処理の内容に応じて複数の種類がある。例えば文書の処理に用いられるプラグインサービス214Aとストレージへの文書の登録に用いられるプラグインサービス214Bがある。
プラグインサービス214Aは、文書処理プラグイン214A1と、プラグインライブラリ214A2と、リクエスト処理完了通知機能214A3とを含んでいる。
プラグインサービス214Bは、ストレージ登録プラグイン214B1と、プラグインライブラリ214B2と、リクエスト処理完了通知機能214B3とを含んでいる。
ここでのリクエスト処理完了通知機能214A3及び214B3は、要求に関する処理の完了をリクエスト制御部217に通知する。
ここでのプラグインサービス214は、キュー213から要求を読み出して処理する処理部の一例である。なお、要求を処理するストレージ型クラウドサーバ400A(図1参照)及び業務支援型クラウドサーバ400B(図1参照)も処理部の一例である。
<オートスケール管理部215>
オートスケール管理部215は、キュー213に保持されている要求の数に基づいて、プラグインサービスの起動および停止を管理する。
オートスケール管理部215は、キュー213に保持されている要求の数が予め定めた値(第1の値)を上回る場合、計算資源の一例を追加で確保したのちに、新たなプラグインサービス214を起動し、キュー213に保持されている要求の数が予め定めた値(第2の値)を下回る場合、プラグインサービス214の一部を停止したのちに確保していた計算資源のうちの余剰となるものを解放する。すなわち、プラグインサービス214の数は、未処理の要求の数に応じて増減される。なお、第1の値は、第2の値より大きい値である。
本実施の形態におけるオートスケール管理部215は、可視の状態(visible)にある要求の数を計数する。従って、見えない状態又は不可視の状態(invisible)に設定された要求は、オートスケール管理部215による計数の対象から除外される。
このため、プラグインサービス214やクラウドサーバの故障のために処理待ちの要求が増え続ける場合にも、これらの要求を計数の対象から除外でき、蓄積されている要求の数の低減に寄与しないプラグインサービス214の起動が回避される。ここでのクラウドサーバの故障は、プラグインサービス214の故障とは独立した故障である。
オートスケール管理部215は、キュー213に保持されている要求の状態を監視する監視手段の一例である。
<障害検知部216>
障害検知部216は、プラグインサービス214のログなどを監視し、動作の停止を伴う障害(いわゆるfatal error)の発生と障害からの復旧を検知する。障害検知部216は、検知手段の一例である。
図5は、障害検知部216に設けられる機能の一例を説明する図である。
本実施の形態における障害検知部216は、障害検知機能216Aと、障害復旧検知機能216Bと、プラグイン障害通知機能216Cと、プラグイン復旧通知機能216Dとを有する。
障害検知機能216Aは、プラグインサービス214(図3参照)のログを監視し、障害メッセージを検知する。本実施の形態の場合、検知の対象とする障害は、プラグインサービス214の動作の停止を伴う障害である。従って、プラグインサービス214の動作の停止を伴わない障害メッセージは、検知の対象から除外されるようにしても良い。
障害復旧検知機能216Bは、プラグインサービス214のログを監視し、障害の復旧を検知する。本実施の形態では、プラグインサービス214の動作の停止を伴う障害を表すメッセージ(障害メッセージ)が検知されている状態から正常動作を表すメッセージ(正常動作メッセージ)が検知される状態に切り替わることを、障害からの復旧という。従って、障害復旧検知機能216Bは、正常動作メッセージを検知の対象とする。
プラグイン障害通知機能216Cは、動作の停止を伴うプラグインサービス214の情報のリクエスト制御部217(図3参照)への通知に用いられる。
プラグイン復旧通知機能216Dは、復旧が検知されたプラグインサービス214の情報のリクエスト制御部217への通知に用いられる。
図3の説明に戻る。
<リクエスト制御部217>
リクエスト制御部217は、障害検知部216からの通知に基づいてキュー213に保持されている処理の要求(リクエスト)の状態を制御する。具体的には、リクエスト制御部217は、障害が通知されている特定のプラグインサービス214を呼び出す要求の状態を不可視の状態(invisible)に制御し、障害からの復旧が通知された特定のプラグインサービス214を呼び出す要求の状態を可視の状態(visible)に制御する。
ここでの不可視及び可視は、前述したように、オートスケール管理部215による計数の対象であるか否かによって定める。従って、不可視の状態(invisible)に制御された要求は、オートスケール管理部215においてはキュー213内に存在しないものとして扱われる。
リクエスト制御部217は、制御手段の一例である。
図6は、リクエスト制御部217に設けられる機能の一例を説明する図である。
本実施の形態におけるリクエスト制御部217は、リクエスト取得不可機能217Aと、プラグイン状態管理機能217Bと、プラグイン状態応答機能217Cと、リクエスト取得不可解除機能217Dとを有する。
リクエスト取得不可機能217Aは、障害検知部216(図3参照)から特定のプラグインサービス214についての動作の停止を伴う障害が通知された場合、この特定のプラグインサービス214に関係する要求の状態を不可視の状態(invisible)に制御する。換言すると、不可視の状態に制御された要求は、キュー213から取り出せない状態に制御される。
リクエスト取得不可機能217Aは、動作の停止を伴う障害が発生していないプラグインサービス214に関係する要求の状態については不可視の状態に変更しない。すなわち、リクエスト取得不可機能217Aによる要求の状態の制御は選択的に実行される。
プラグイン状態管理機能217Bは、障害検知部216(図3参照)からの通知に基づいて、キュー213(図3参照)に保持されている要求についての管理情報のうち、プラグインサービス214の状態を動作中(active)又は非動作中(inactive)に管理する。管理情報には、要求が可視か不可視かを示す情報と、要求を処理するプラグインサービス214が動作中か非動作中かを示す情報とが含まれる。
障害検知部216(図3参照)からの通知が障害通知の場合、プラグイン状態管理機能217Bは、通知の対象である特定のプラグインサービス214に関する管理情報を非動作中(inactive)に変更する。
一方、障害検知部216(図3参照)からの通知が復旧通知の場合、プラグイン状態管理機能217Bは、通知の対象である特定のプラグインサービス214に関する管理情報を動作中(active)に変更する。
プラグイン状態応答機能217Cは、タスクサービス211Aからの問い合わせに対し、問い合わせの対象であるプラグインサービス214が動作中(active)か非動作中(inactive)かを応答する。
リクエスト取得不可解除機能217Dは、障害検知部216からの通知が復旧通知の場合、キュー213に保持されている要求のうち、通知の対象である特定のプラグインサービス214が処理する要求の状態を見える状態又は可視の状態(visible)に制御する。換言すると、リクエスト取得不可解除機能217Dは、見えない状態又は不可視の状態(invisible)の解除を実行する。
<中継装置200の処理動作>
以下、中継装置200によって実行される処理動作をプラグインサービス214(図3参照)の動作状況に応じて説明する。
<障害が発生していない場合の動作>
図7は、いずれのプラグインサービスにも障害が発生していない場合のシーケンス例を説明する図である。
図7に示すシーケンスは、タスクサービス211A、キュー213、プラグインサービス214、障害検知部216、リクエスト制御部217の間におけるやり取りを示している。
なお、図中の記号Sはステップを表している。
・ステップ1
入力装置100(図3参照)から処理の要求を受信したタスクサービス211Aは、タスク定義モジュール212を通じて、受信した要求の処理に使用するプラグインサービス214の情報を取得する。
次に、タスクサービス211Aは、リクエスト制御部217に対し、要求の処理に使用するプラグインサービス214の動作の状態を問い合わせる。例えば要求が業務支援型のクラウドサービスの場合、タスクサービス211Aは、プラグインサービス214A(図3参照)の動作の状態を問い合わせる。
図7の場合、タスクサービス211Aは、リクエスト制御部217からの状態の応答として、動作中(active)を受け取る。
・ステップ2
タスクサービス211Aは、キュー213に処理の要求を記憶する。
図8は、要求の状態の管理に使用する状態表500の例を説明する図である。状態表500は、前述した管理情報に対応する。
状態表500は、リクエストID501、リクエスト状態502、プラグインサービスID503、プラグインサービス状態504で構成される。
図8の場合、管理されている要求は、リクエストIDが「REQ00001」の1つだけであり、状態は可視の状態(visible)である。また、要求の処理に使用するプラグインサービスのIDは「PLUG001」であり、その状態は動作中(active)である。
図7の説明に戻る。
・ステップ3
キュー213は、要求を処理するプラグインサービス214を呼び出す。
呼び出されるプラグインサービス214は、プラグインサービスID503(図8参照)により特定される。
・ステップ4
プラグインサービス214は、要求を処理する。
・ステップ5
処理の完了を検知すると、プラグインサービス214は、リクエスト制御部217に対して要求の処理の完了を通知する。
この通知の受信により、リクエスト制御部217は、通知を送信したプラグインサービス214の正常動作を知る。
<プラグインサービスで障害が発生した場合の動作1>
図9は、プラグインサービス214に障害が発生した場合のシーケンス例を説明する図である。
図9に示すシーケンスは、入力装置100、タスクサービス211A、キュー213、プラグインサービス214、障害検知部216、リクエスト制御部217の間におけるやり取りを示している。
なお、図中の記号Sはステップを表している。
・ステップ1
障害検知部216は、動作の停止を伴う障害を検知する。
図10は、障害が検知される前のキュー213(図3参照)に記憶されている要求の状態表500の例である。図10には、図8との対応部分に対応する符号を付して示している。
図10の場合、キュー213に記憶されている要求は「REQ00001」、「REQ00002」、「REQ00003」、「REQ00004」の4つである。
4つのうち3つは、プラグインサービスID503が「PLUG001」のプラグインサービス214で処理され、残り1つは、プラグインサービスID503が「PLUG002」のプラグインサービス214で処理される。
障害が検知される前であるので、いずれの要求についてもリクエスト状態502は、可視の状態(visible)である。また、プラグインサービス状態504は、動作中(active)である。
図9の説明に戻る。
・ステップ2
障害検知部216は、リクエスト制御部217に対し、プラグインサービス214の障害を通知する。
図11は、障害通知のデータ構造の例を説明する図である。障害通知には、障害が発生したプラグインサービス214を特定するプラグインサービスID601と、プラグインサービス状態602が含まれる。
図11の場合、プラグインサービスID601は「PLUG001」であり、プラグインサービス状態602は非動作中(inactive)である。
・ステップ3
障害の通知を受け付けたリクエスト制御部217は、キュー213に記憶されている1個目の要求の状態を不可視の状態(invisible)に変更する。変更の成功は、キュー213からリクエスト制御部217に返送される。
・ステップ4
リクエスト制御部217は、1個目の要求の処理の成功が確認されるまで、2個目以降の要求の状態を不可視の状態(invisible)に変更する。変更の成功は、キュー213からリクエスト制御部217に返送される。
図12は、障害の検知後における状態表500の例を示す図である。図12には、図10との対応部分に対応する符号を付して示している。
図12の場合も、キュー213に記憶されている要求は4つのままであり、図10に対して増減はない。
図12では、プラグインサービスIDが「PLUG001」のプラグインサービス214に障害が検知されているので、対応する要求の状態がいずれも不可視の状態(invisible)に変更されている。また、プラグインサービスIDが「PLUG001」であるプラグインサービス214に対応するプラグインサービス状態504は、いずれも非動作中(inactive)に変更されている。
なお、動作の停止を伴う障害が検知されていないプラグインサービス214、すなわちプラグインサービスID503が「PLUG002」のプラグインサービス214を使用する要求の状態は、可視の状態(visible)のままである。勿論、要求の処理に使用するプラグインサービス状態504は動作中(active)のままである。
図9の説明に戻る。
・ステップ5
以下では、プラグインサービス214の障害が検知された後に、入力装置100から新規の要求がタスクサービス211Aに入力される場合の動作を説明する。
・ステップ6
入力装置100から新規の要求を受信したタスクサービス211Aは、タスク定義モジュール212を通じて、受信した要求の処理に使用するプラグインサービス214の情報を取得する。その後、タスクサービス211Aは、リクエスト制御部217に対し、要求の処理に使用するプラグインサービス214の動作の状態を問い合わせる。
図9の例では、新たな要求は、動作の停止を伴う障害が検知されているプラグインサービス214の呼び出しを要する場合を想定する。このため、タスクサービス211Aは、応答として、非動作中(inactive)を受け取っている。
・ステップ7
図9の場合、タスクサービス211Aは、新規の要求の状態を不可視(invisible)にしてキュー213に記憶する。
図13は、障害の検知後に入力された新規の要求を含む状態表500の例を説明する図である。
図13には、図12との対応部分に対応する符号を付して示している。
図13の場合、新規の要求にはリクエストID501として「REQ00005」が付されており、その状態であるリクエスト状態502は不可視(invisible)に設定されている。
なお、要求の処理に用いるプラグインサービス214を特定するプラグインサービスIDは「PLUG001」であるので、プラグインサービス状態504は非動作中(inactive)である。
図13の例では、新規の要求がキュー213(図9参照)に記憶される時点で、動作中(active)のプラグインサービス214(図9参照)を使用する要求(REQ00003)がキュー213に保持されている場合を表しているが、処理の完了している場合には、要求(REQ00003)がキュー213から削除される。
図13に示すように、キュー213内には、障害が復旧するまで、動作の停止を伴う障害が発生しているプラグインサービス214を使用する要求が増え続けることになるが、リクエスト状態502は不可視の状態(invisible)に設定されているので、オートスケール管理部215が、キュー213に滞留している要求の処理を促進するために、計算資源およびプラグインサービス214を追加することはない。
<プラグインサービスで障害が発生した場合の動作2>
ここでは、プラグインサービス214に障害が発生した場合の他の動作例について説明する。
図14は、プラグインサービス214に障害が発生した場合の他のシーケンス例を説明する図である。
図14に示すシーケンスは、入力装置100、タスクサービス211A、キュー213、プラグインサービス214、障害検知部216、リクエスト制御部217の間におけるやり取りを示している。
なお、図中の記号Sはステップを表している。
・ステップ1~ステップ4
図14におけるステップ1からステップ4までの動作の内容と手順は、図9と同じである。すなわち、動作の停止を伴う障害の通知を受け付けたリクエスト制御部217は、キュー213に記憶されている要求のうち、障害が検知されたプラグインサービス214を使用する要求の状態をいずれも不可視(invisible)に変更する。
・ステップ5~ステップ7
動作の停止を伴う障害が検知された後に、入力装置100から新規の要求がタスクサービス211Aに入力された場合、タスクサービス211Aは、リクエスト制御部217に対して要求を処理するプラグインサービス214の状態を問い合わせる。
今回の場合、タスクサービス211Aは、要求を処理するプラグインサービス214の状態が非動作中(inactive)であるとの応答を得る。ここまでは、図9で説明した動作の内容と同じである。
違いは、その後の動作である。タスクサービス211Aは、受信した新規の要求をキュー213に記憶せずに廃棄し、要求を送信した入力装置100にエラーを通知する。
図15は、障害の検知後に入力された新規の要求を含む状態表500の例を説明する図である。
図15には、図13との対応部分に対応する符号を付して示している。
図15の場合、新規の要求に対応するリクエストID501は「REQ00005」である。この例は、新規の要求について呼び出すプラグインサービス214に障害が発生している場合であるので、新規の要求は、キュー213に追加されずに廃棄されている。このため、キュー213の状態表500には、図13の場合のように、5個目の要求は記憶されていない。
勿論、新規の要求について呼び出すプラグインサービス214に障害が発生していない場合には、新規の要求は廃棄されずにキュー213に記憶される。例えば要求について読み出されたプラグインサービスID503が「PLUG002」の場合である。
この動作例のように、障害が発生しているプラグインサービス214を使用する新規の要求をキュー213に記憶せずに廃棄する場合には、オートスケール管理部215が、キュー213に滞留している要求の処理を促進するために、計算資源およびプラグインサービス214を追加することはない。
また、入力装置100に対しても、エラーを通知することにより、入力装置100による同じ要求の出力が抑制される。
<障害が検知された後の動作1>
ここでは、障害が検知された後の動作例について説明する。
前述したように、障害が検知された時点でキュー213に記憶されている障害が発生しているプラグインサービス214を使用する要求の状態はいずれも不可視の状態(invisible)に変更され、障害の検知後に入力された新規の要求は、不可視の状態(invisible)でキュー213に記憶されるか、キュー213に記憶されずに廃棄されている。
以下の説明は、その後の動作である。
図16は、プラグインサービス214の障害が検知された後に実行されるシーケンス例を説明する図である。
図16に示すシーケンスは、タスクサービス211A、キュー213、プラグインサービス214、障害検知部216、リクエスト制御部217の間におけるやり取りを示している。
・ステップ1
障害が検知されてから予め定めた時間が経過すると、リクエスト制御部217は、状態表500における1個目の要求を可視の状態(visible)に変更する。
図17は、図16におけるステップ1の処理前における状態表500を説明する図である。
図18は、図16におけるステップ1の処理後における状態表500を説明する図である。
図17に示す状態表500は、図15に示す状態表500に対応している。1個目の要求「REQ00001」の状態は不可視の状態(invisible)であり、その処理に使用されるプラグインサービス214の状態は非動作中(inactive)である。
この動作例の場合、リクエスト制御部217は、1個目の要求「REQ00001」の状態を可視の状態(visible)に変更する。図18では、プラグインサービス214の状態も動作中(active)に変更されている。
図16の説明に戻る。
・ステップ2
キュー213は、状態表500における1個目の要求の状態が可視の状態(visible)に変更されたので、1個目の要求について記載されているプラグインサービス214を読み出す。ここでは、プラグインサービスIDが「PLUG001」のプラグインサービス214を読み出す。
・ステップ3
読み出されたプラグインサービス214が要求を処理する。
・ステップ4
ここでは、障害検知部216が、読み出されたプラグインサービス214について再び障害を検知する。
・ステップ5
障害検知部216は、リクエスト制御部217に対し、プラグインサービス214の障害を通知する。
・ステップ6
リクエスト制御部217は、キュー213に記憶されている1個目の要求の状態を不可視の状態(invisible)に変更する。
図19は、図16におけるステップ6の時点におけるキュー213(図3参照)に記憶されている要求の状態表500の例である。図19には、図18との対応部分に対応する符号を付して示している。
図19の場合、呼び出されたプラグインサービス214は、障害から復旧していなかっ状態であるので、1個目の要求に対応するリクエスト状態502は、不可視の状態(invisible)に戻っている。また、対応するプラグインサービス214の状態も非動作中(inactive)に戻っている。
なお、このシーケンス例では、ステップ1の時点で1個目の要求の状態だけを不可視の状態(invisible)から可視の状態(visible)に変更しているが、1個目の要求と同じプラグインサービスID503を呼び出す全ての要求の状態についても不可視の状態(invisible)から可視の状態(visible)に変更してよい。
この場合でも、ステップ4で障害が検知されて要求の状態を不可視の状態(invisible)に戻すとき、他の要求の状態も不可視の状態(invisible)に戻せば良い。
<障害が検知された後の動作2>
ここでは、復旧が通知される前に呼び出されたプラグインサービス214により要求の処理が完了する場合について説明する。
図20は、プラグインサービス214の障害が検知された後に実行されるシーケンス例を説明する図である。
図20に示すシーケンスは、入力装置100、タスクサービス211A、キュー213、プラグインサービス214、障害検知部216、リクエスト制御部217の間におけるやり取りを示している。
・ステップ1~ステップ3
図20におけるステップ1からステップ3までの動作の内容と手順は、図16と同じである。すなわち、障害が検知されてから予め定めた時間が経過すると、不可視の状態(invisible)として管理されている1個目の要求の状態が可視の状態(visible)に変更され、その後、対応するプラグインサービス214が読み出され、要求の処理が開始される。
・ステップ4
この例は、読み出されたプラグインサービス214が動作して要求を処理した場合であるので、プラグインサービス214は、リクエスト制御部217に対して要求の処理の完了を通知する。
図21は、要求の処理の完了が通知された後における状態表500を説明する図である。
図21の場合、処理が完了したリクエストID「REQ00001」の要求が削除され、図19に示す状態表500では2個目に位置していたリクエストID「REQ00002」の要求が状態表500の1個目に移動している。他の2つの要求についても状態表500内における順位が1つずつ繰り上がっている。
・ステップ5
次に、リクエスト制御部217は、2個目の要求の状態を可視の状態(visible)に変更するようにキュー213に指示する。
ここでの2個目とは、ステップ1の時点から見て2個目の意味である。
従って、リクエストID「REQ00001」の要求が状態表500から削除された後は、状態表500の1個目に対応する。
図22は、図20におけるステップ5の処理後の状態表500を説明する図である。
図22に示す状態表500では、プラグインID「REQ00002」で管理される要求の状態が可視の状態(visible)に変更されている。なお、図22の例では、プラグインID「REQ00002」で管理される要求に対応するプラグインサービス214の状態も非動作中(inactive)から動作中(active)に変更されている。
一方で、プラグインID「REQ00004」で管理される要求の状態は不可視の状態(invisible)のままである。
このシーケンス例は、障害検知部216による障害からの復旧が検知される前の動作であるので、1つずつ状態が変更される。
・ステップ6
タスクサービス211Aは、入力装置100から新規の要求を受け付ける。
・ステップ7
タスクサービス211Aは、受け付けた要求が使用するプラグインサービス24の状態をリクエスト制御部217に問い合わせる。ここでは、非動作中(inactive)の応答が得られている。
・ステップ8
タスクサービス211Aは、新規の要求の状態を不可視(invisible)でキュー213に記憶する。
図23は、図20におけるステップ8の処理後の状態表500を説明する図である。
図23の場合、新たな要求は、「REQ00005」で管理される。「REQ00005」の処理に使用されるプラグインサービス214は「PLUG001」である。リクエスト制御部217は、「PLUG001」について障害からの復帰の通知を受けていない。このため、「REQ00005」で管理される要求の状態には不可視の状態(invisible)が記憶され、プラグインサービス214には非動作中(inactive)が記憶される。
このシーケンス例では、障害検知部216による復旧の検知前でも、1個ずつ確認しながら要求の処理が試みられる。
<障害からの復旧が検知された場合の動作>
図24は、障害からの復旧が検知された場合のシーケンス例を説明する図である。
図24に示すシーケンスは、入力装置100、タスクサービス211A、キュー213、プラグインサービス214、障害検知部216、リクエスト制御部217の間におけるやり取りを示している。
・ステップ1
障害検知部216は、1個目の要求の正常終了を検知する。ここでの正常終了は、障害が検知されているプラグインサービス214における処理の正常終了に対応する。例えば障害検知部216は、図20のステップ3で実行された処理の正常終了を検知する。
・ステップ2
障害検知部216は、リクエスト制御部217に対し、正常終了が検知されたプラグインサービスの障害からの復旧を通知する。
図25は、復旧通知のデータ構造を説明する図である。復旧通知には、障害から復旧したプラグインサービス214を特定するプラグインサービスID701と、プラグインサービス状態702が含まれる。
図25の場合、プラグインサービスID701は「PLUG001」であり、プラグインサービス状態702は動作中(active)である。
・ステップ3
障害からの復旧の通知を受けたリクエスト制御部217は、2個目以降の要求を可視の状態(visible)に変更する。
図26は、図24におけるステップ3の処理後における状態表500の例を説明する図である。
図26には、図21との対応部分に対応する符号を付して示している。
図26の場合、図21では不可視の状態(invisible)であった「REQ00002」及び「REQ00004」で管理される要求の状態がいずれも可視の状態(visible)に変更されている。
なお、図26の例では、これらの要求に対応するプラグインサービス214の状態も非動作中(inactive)から動作中(active)に変更されている。
・ステップ4
キュー213は、要求を処理するプラグインサービス214を呼び出す。
・ステップ5
呼び出されたプラグインサービス214は、要求を処理する。
・ステップ6
タスクサービス211Aは、入力装置100から新規の要求を受け付ける。
・ステップ7
タスクサービス211Aは、受け付けた要求が使用するプラグインサービス24の状態をリクエスト制御部217に問い合わせる。ここでは、動作中(active)の応答が得られる。
・ステップ8
タスクサービス211Aが、新規の要求の状態を可視(visible)でキュー213に記憶する。
図27は、図24におけるステップ8の処理後における状態表500の例を説明する図である。
図27には、図26との対応部分に対応する符号を付して示している。
図27の場合、新たな要求は、「REQ00005」で管理される。「REQ00005」の処理に使用されるプラグインサービス214は「PLUG001」である。動作中(active)である。
従って、「REQ00005」で管理される要求の状態には可視の状態(visible)が記憶され、プラグインサービス214には動作中(active)が記憶される。
<他の実施形態>
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は上述の実施の形態に記載の範囲に限定されない。上述の実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
1…クラウド連携システム、100…入力装置、200…中継装置、211…コアサービス、211A…タスクサービス、212…タスク定義モジュール、213…キュー、214、214A、214B…プラグインサービス、215…オートスケール管理部、216…障害検知部、217…リクエスト制御部
300…クラウドネットワーク、400A…ストレージ型クラウドサーバ、400B…業務支援型クラウドサーバ

Claims (7)

  1. 記憶部から要求を読み出して処理する処理部に関する障害の発生を検知する検知手段と、
    前記記憶部に記憶された要求の状態を監視し、前記記憶部に記憶された要求の状態に応じて、計算資源の増減を指示する監視手段と、
    前記検知手段が前記処理部の動作の停止を伴う障害を検知した場合、前記記憶部の状態を、前記監視手段により計算資源の追加が不要であると判断される状態に制御する制御手段と、
    を有する中継システム。
  2. 前記制御手段は、検知された前記障害に関連する前記処理部に対応付けられた処理中の要求に関する状態を、当該処理部が前記記憶部から当該処理中の要求を取り出せない状態に制御する、ことを特徴とする請求項1に記載の中継システム。
  3. 前記制御手段は、前記障害が検知された前記処理部による実行に備えて前記記憶部に記憶された待機中の要求の状態を、当該記憶部から要求を取り出せない状態に制御する、請求項1又は2に記載の中継システム。
  4. 前記制御手段は、前記障害が検知された場合に、前記記憶部に記憶された要求の数が、予め定めた値を超えていないようにみせる制御を実行する、請求項1に記載の中継システム。
  5. 要求を前記記憶部に記憶する前に、要求を処理する前記処理部について前記障害が検知された場合に、前記制御手段は、当該記憶部に記憶する当該障害が検知された後に発生した要求の状態を、当該記憶部から前記処理部に取り出せない状態に設定する、請求項1~3のいずれか1項に記載の中継システム。
  6. 要求を処理する前記処理部について前記障害が検知された場合に、前記制御手段は、当該障害が検知された後に発生した要求を前記記憶部に書き込まずに廃棄する、請求項1~3のいずれか1項に記載の中継システム。
  7. 前記制御手段は、前記障害が発生していない状態になったことが前記検知手段によって検知された場合、前記記憶部に保持されている要求の状態を、当該記憶部から前記処理部が要求を取り出せない状態から当該記憶部から当該処理部が要求を取り出せる状態に変更する、請求項2に記載の中継システム。
JP2018176618A 2018-09-20 2018-09-20 中継システム Active JP7135648B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018176618A JP7135648B2 (ja) 2018-09-20 2018-09-20 中継システム
US16/568,165 US11416355B2 (en) 2018-09-20 2019-09-11 Relay system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018176618A JP7135648B2 (ja) 2018-09-20 2018-09-20 中継システム

Publications (3)

Publication Number Publication Date
JP2020048126A JP2020048126A (ja) 2020-03-26
JP2020048126A5 JP2020048126A5 (ja) 2021-10-21
JP7135648B2 true JP7135648B2 (ja) 2022-09-13

Family

ID=69883396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018176618A Active JP7135648B2 (ja) 2018-09-20 2018-09-20 中継システム

Country Status (2)

Country Link
US (1) US11416355B2 (ja)
JP (1) JP7135648B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013251006A (ja) 2013-09-04 2013-12-12 Canon Inc 情報処理システム、システム、情報処理システム制御方法、およびそのプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617292B2 (en) * 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
US7324438B1 (en) * 2003-02-13 2008-01-29 Cisco Technology, Inc. Technique for nondisruptively recovering from a processor failure in a multi-processor flow device
US9286075B2 (en) * 2009-09-30 2016-03-15 Oracle America, Inc. Optimal deallocation of instructions from a unified pick queue
US9372735B2 (en) * 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP2014149690A (ja) 2013-02-01 2014-08-21 Canon Inc 情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム
US9471371B2 (en) * 2014-02-27 2016-10-18 International Business Machines Corporation Dynamic prediction of concurrent hardware transactions resource requirements and allocation
US11010193B2 (en) * 2017-04-17 2021-05-18 Microsoft Technology Licensing, Llc Efficient queue management for cluster scheduling
US10452436B2 (en) * 2018-01-03 2019-10-22 Cisco Technology, Inc. System and method for scheduling workload based on a credit-based mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013251006A (ja) 2013-09-04 2013-12-12 Canon Inc 情報処理システム、システム、情報処理システム制御方法、およびそのプログラム

Also Published As

Publication number Publication date
US20200097375A1 (en) 2020-03-26
US11416355B2 (en) 2022-08-16
JP2020048126A (ja) 2020-03-26

Similar Documents

Publication Publication Date Title
US8826291B2 (en) Processing system
JP4458866B2 (ja) 画像形成装置および自動リブート方法
JPH04505819A (ja) 論理的事象の通知方法及び装置
JP4843372B2 (ja) 画像処理装置
US7110131B2 (en) Image forming system and image forming apparatus for transferring job data when an impaired image forming state is detected
JP2008040841A (ja) 出力管理サーバおよびデータ出力システム
JP7135648B2 (ja) 中継システム
US20180173473A1 (en) Method for operating a print server for digital high-capacity printing systems
US10904399B2 (en) Information processing apparatus and non-transitory computer readable medium
KR20130071137A (ko) 화상형성장치 및 화상형성장치에서 에러 알림 및 복구 기능을 수행하는 방법
CN115495030A (zh) 作业异常处理方法、装置、图像形成设备及存储介质
US11233906B2 (en) Electronic apparatus and non-transitory computer readable recording medium that records control program
JP2016042338A (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法、及びプログラム
JP3743183B2 (ja) プリント・サーバ、ネットワーク・プリント・システム、及びネットワーク・プリント・システムにおけるプリント制御方法
JP2007122015A (ja) 情報処理装置及び画像形成装置
JP2020014105A (ja) 情報処理装置及びプログラム
JP2005229210A (ja) 画像形成装置および自動リブート方法
JP3270400B2 (ja) 印刷処理クラスタシステム
JP4158649B2 (ja) 連携処理装置及びプログラム
EP4303712A1 (en) Printing apparatus, control method, and program
US10740054B2 (en) Image forming system, management server, and a non-transitory computer readable recording medium storing a server program
JP2006268193A (ja) 管理システム、管理センタ、管理方法
JP4429138B2 (ja) 暗示アドレス発見を使用して画像形成ジョブを監視するシステム及び方法
US20050094185A1 (en) Job managing apparatus, job managing method, and job managing program
WO2008015730A1 (fr) Procédé et programme pour éviter un échec d'exécution d'une tâche dans un système de calcul de grille et système de calcul de grille

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7135648

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150