JP7158864B2 - システムおよびそれを用いる方法 - Google Patents

システムおよびそれを用いる方法 Download PDF

Info

Publication number
JP7158864B2
JP7158864B2 JP2018023424A JP2018023424A JP7158864B2 JP 7158864 B2 JP7158864 B2 JP 7158864B2 JP 2018023424 A JP2018023424 A JP 2018023424A JP 2018023424 A JP2018023424 A JP 2018023424A JP 7158864 B2 JP7158864 B2 JP 7158864B2
Authority
JP
Japan
Prior art keywords
function
backup
backup data
storage
data
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
JP2018023424A
Other languages
English (en)
Other versions
JP2019139591A (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018023424A priority Critical patent/JP7158864B2/ja
Priority to US16/256,278 priority patent/US11194671B2/en
Priority to CN201910112676.2A priority patent/CN110162427B/zh
Publication of JP2019139591A publication Critical patent/JP2019139591A/ja
Application granted granted Critical
Publication of JP7158864B2 publication Critical patent/JP7158864B2/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ネットワーク機器のクラウドバックアップおよびリストア処理に用いるシステムおよびそれを用いる方法に関する。
近年、画像形成装置のバックアップの需要が高まっている。一般的に画像形成装置などの複写機は、モーターなどの駆動部品を多く内包しており、故障時は、当該部品を交換もしくは代替機への交換によって運用が継続される。しかし、運用に必要なデータを保持するストレージ部品が故障した場合は、データが故障する以前の状態にデータを戻す必要がある。そこで、定期的に画像形成装置のデータをバックアップしておき、部品故障時にバックアップしたデータに復元する手段が必要となる。
しかし、画像形成装置のように、扱うデータが多種多様かつ大容量となる場合は、顧客環境にストレージサーバを用意することは現実的ではない。クラウド上にサーバを用意する手段も考えられるが、大量の画像形成装置からバックアップデータが送信されるため、クライアント・サーバ間の通信負荷やストレージ容量の監視を行いながら都度メンテナンスする必要があり、運用コストが上がってしまう。
そこで、近年では、サーバレスアーキテクチャーによるシステム構築と、データ保管に特化したクラウドのストレージサービスの活用が着目されている。サーバレスアーキテクチャーによるシステムでは、クラウドベンダーが提供するプログラム実行環境にアプリケーションを構成する関数が登録および管理される。画像形成装置は、クラウド上の関数を呼び出す形でシステムが構成される。これにより、従来必要だったサーバ管理が不要となり、運用コストを抑えることが可能となった。
また、クラウドベンダーが提供するサーバ管理不要なストレージサービスを利用することで、システムで扱う大容量のデータ管理および通信による負荷を分散することが可能となる。特に、画像形成装置のように、扱うデータが多種多様かつ大容量となる場合は、容量拡張や監視が不要なクラウドストレージサービスの活用することでシステムの運用管理コストを下げることが可能になる。
特許文献1では、バックアップ処理の負荷を下げつつ、サーバとの通信負荷を下げる方法が提案されている。特許文献1に開示されるシステムによれば、情報処理装置のバックアップ処理において、バックアップ対象のデバイスは、データ保管サーバに対して前回バックアップからの差分データのみの送信を行う。
特開平6-243013号公報
特許文献1に開示されるシステムでは、デバイスがバックアップからリストアを行う際、デバイスを何時の時点の状態にリストアするか次第で、差分バックアップデータを取得する量が変化する。例えば、デバイスが故障する直前の最新の状態にリストアする場合、デバイスは、全ての差分バックアップデータを取得およびトレースし、かつリストア用の設定・コンテンツデータを生成する必要がある。つまり、バックアップ機能の利用期間が長くなるほどリストア時の負荷がかかり、デバイスを利用できない時間が増加してしまう。
そこで、本発明は、サーバレスアーキテクチャーおよびクラウドストレージサービスによって構成される画像形成装置のクラウドバックアップシステムにおいて、デバイスのリストア処理にかかる時間を最小化する最適な手法を提案する。
本発明の例に係るシステムは、ネットワークデバイスと、ストレージシステムと、データ管理システムと、を含む。前記ネットワークデバイスは、前記ネットワークデバイスの記憶装置に格納されるデータをバックアップデータとして保存するための保存先を示す情報を要求する第1要求を行う第1要求手段と、前記第1要求に従い受信した前記保存先を示す情報を用いて、前記記憶装置に格納されるデータを送信する送信手段と、を有し、前記データ管理システムは、前記第1要求に応じて前記ネットワークデバイスのバックアップデータを保存するための保存先を示す情報を生成し、前記保存先を示す情報を前記ネットワークデバイスに応答する第1応答手段を有し、前記ネットワークデバイスから前記生成された保存先を示す情報を用いて送信されたデータが差分バックアップデータであり、当該差分バックアップデータが前記ストレージシステムに保存されたことを示すイベントに応じて呼び出された関数に基づき、前記ストレージシステムですでに管理されているフルバックアップデータと当該差分バックアップデータとのマージ処理を実行するためのメッセージが管理され、当該管理されたメッセージに基づき前記マージ処理が実行され、前記イベントに応じた前記関数の呼び出しに失敗した場合、さらに呼び出される別の関数の実行に基づき、前記マージ処理を実行するためのメッセージが管理される
本発明の例によれば、サーバレスアーキテクチャーおよびクラウドストレージサービスによって構成される画像形成装置のクラウドバックアップシステムにおいて、デバイスのリストア処理にかかる時間を最小化することが可能になる。
システムの例を示す全体図である。 システムのハードウェア構成の例を示す図である。 システムのミドルウェア構成の例を示す図である。 システムのソフトウェア構成の例を示す図である。 バックアップ処理の例を示すフローチャートである。 リストア処理の例を示すフローチャートである。 署名付きURL生成処理の例を示すフローチャートである。 バックアップデータ保存処理の例を示すフローチャートである。 バックアップ完了処理の例を示すフローチャートである。 マージ処理予約関数の例を示すフローチャートである。 マージ処理関数の例を示すフローチャートである。 関数呼び出しリトライ関数の例を示すフローチャートである。 リストアアプリケーションUIの例を示す図である。 イベント検知および関数呼び出し処理の例を示すフローチャートである。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
(実施例1)
本発明の例に係るネットワーク機器を管理するネットワークシステムを説明する。ネットワーク機器の一例として、本実施例では、MFP(Multi-function Peripheral)、すなわち複合機能を有する複写機を取り上げて説明する。ネットワーク機器としては、プリンタ、ファクシミリなどのMFP以外のものも含む。以降、これらを総じて「画像形成装置」と表現する。
<システム構成>
図1は、本発明の例に係るシステムの全体図である。本実施例のシステムは、画像形成装置のバックアップシステムであり、複数の画像形成装置と、画像形成装置のデータを管理するクラウド上のバックアップアプリケーションシステムと、を備える。
図1において、LAN(Local Area Network)101は、顧客環境100のLANである。画像形成装置102は、LAN101に接続し、同ネットワークに接続するクライアントコンピュータ104のような他のネットワーク機器からの要求に応じてプリント処理およびスキャン処理並びに他の複数の機能を提供できる。画像形成装置102は、さらにLAN101を介してインターネット107に接続する。画像形成装置102は、インターネット107を介して、クラウド基盤110に構築されたデータ管理システムとしてのアプリケーションシステム108に画像形成装置102のバックアップデータを送信する。また、画像形成装置102は、当該バックアップデータをストレージシステムとしてのストレージサービス109にも送信する。
アプリケーションシステム108は、データ管理システムとして機能し、画像形成装置102を一元的に管理する機能を持つ。また、管理画面も保持する。ストレージシステムとしてのストレージサービス109は、画像形成装置102から送信されるデータを管理する。ストレージサービス109は、アプリケーションシステム108が発行する署名付きURLへのHTTPSリクエストによって接続される。ストレージサービス109は、署名付きURLによって画像形成装置102からのバックアップデータ送信および受信要求を受け付ける。
本図では、複数の画像形成装置102がLAN101を介して接続されている状態、さらには画像形成装置102とアプリケーションシステム108およびストレージサービス109とがインターネット107を介して接続されている状態を示している。
<システムのハードウェア構成>
図2は、ネットワークシステムのハードウェア構成を説明するブロック図である。図2(A)は、アプリケーションシステム108、ストレージサービス109が動作するクラウド基盤110が稼働するデータセンターを構成するサーバの内部構成およびクライアントコンピュータ104の内部構成の例を示す。
図2(A)において、201は、CPUであり、ROM203あるいは外部メモリ209に記憶されたアプリケーションプログラム等に基づいて処理を実行する。さらに、CPU201は、システムバス216に接続される各デバイスを総括的に制御する。また、CPU201は、ディスプレイ208上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のアプリケーションウィンドウを開き、種々のデータ処理を実行する。
202は、RAMであり、CPU201の主メモリ、ワークエリア等として機能する。203は、ROMであり、基本I/Oプログラム等の記憶領域として機能する読み出し専用のメモリである。このROM203あるいは記憶装置211には、CPU201の制御プログラムであるオペレーティングシステムプログラム(以下OS)等が記憶される。さらに、ROM203あるいは記憶装置211には、上記アプリケーションプログラム等に基づく処理の際に使用するファイルやその他各種データを記憶する。204は、ネットワークI/F(インターフェース)であり、不図示のファイアウォールを介してインターネット107に接続される。なお、ネットワークI/F 204に接続可能ネットワークは、有線または無線を問わない。
206は、入出力I/Fであり、キーボード207やマウス等のポインティングデバイス209からの入力やディスプレイ208への出力を制御する。210は、外部メモリI/Fであり、ハードディスク(HD)等の記憶装置211とのアクセスを制御する。211は、記憶装置であり、ブートプログラム、各種のアプリケーション、ユーザファイル、編集ファイル等を記憶する。クラウド基盤110を構成するサーバおよびストレージサービス109は、CPU201がROM202や記憶装置211に書き込まれた基本I/OプログラムおよびOSを実行している状態で動作する。基本I/Oプログラムは、ROM203に書き込まれており、OSは、ROM203もしくは記憶装置211に書き込まれている。そしてコンピュータの電源がONされたときに、基本I/Oプログラム中のイニシャルプログラムロード機能により、ROM203もしくは記憶装置211からOSがRAM202に書き込まれ、OSの動作が開始される。
以上、クラウド基盤110を構成するサーバの内部構成およびクライアントコンピュータ104の内部構成について、説明の便宜上、図2(A)を共通に用いて説明した。なお、アプリケーションシステム108およびストレージサービス109は、クラウド上の仮想マシンとして図2(A)の内部構成を仮想的に実現されるものである。
図2(B)は、画像形成装置102の内部構成の例を示す。画像形成装置102、103において、251は、CPUであり、制御プログラム等に基づいてシステムバス270に接続されるプリンタI/F258を介してプリンタ259に出力情報としての画像信号を出力する。なお、制御プログラムは、ROM253や記憶装置263等に記憶される。
CPU251は、ネットワークI/F 255を介して外部のコンピュータ装置との通信処理が可能となっており、画像形成装置102内の情報等を外部サーバに通知可能なように構成されている。さらに、CPU251は、ROM253あるいは記憶装置263に記憶されたアプリケーションプログラム等に基づいて処理を実行する。252は、RAMであり、CPU251の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張できる。なお、RAM252は、出力情報展開領域、環境データ格納領域、およびNV(Non Volatile)RAM等に用いられる。
253は、ROMであり、263は、ハードディスク(HD)等の記憶装置である。このROM253あるいは記憶装置263には、CPU251の制御プログラムやアプリケーションプログラムおよび上記出力情報を生成する際に使用するフォントデータ、画像形成装置102上で利用される情報等が記憶される。また、ROM253あるいは記憶装置263には、画像形成装置102のアプリケーションインストール時にアプリケーションが一時的に格納される。254は、USB I/Fであり、外部装置とUSB接続によるデータ通信を制御する。例えば、後述のクライアントコンピュータ104とUSBで接続される。クライアントコンピュータ104は、USB I/F254を介して、各種プリント操作やスキャン操作を実行できる。
256は、操作部I/Fであり、操作部257との間のインターフェースをつかさどり、表示すべき画像データを操作部257に対して出力する。また、ユーザが操作部257を介して入力した情報の受信も行う。257は、操作部であり、操作のためのスイッチおよびLED表示器等が配されている操作パネル等に相当する。258は、プリンタI/Fであり、プリンタ259(プリンタエンジン)に出力情報としての画像信号を出力する。
260は、スキャナーI/Fであり、スキャナー261(スキャナーエンジン)からの入力情報として画像信号を受信する。262は、外部メモリI/F(メモリコントローラ)であり、ハードディスク(HD)等の外部メモリへのアクセスを制御する。264は、オプション機器I/Fであり、フィニッシャー、カセットユニット等のオプション機器265へのアクセスを制御する。オプション機器は、フィニッシャーやカセットユニットの他に、カメラやICカードリーダー等のMFPの機能および機構を拡張する周辺機器でもよい。270は、システムバスであり、各デバイスを接続する。
<クラウド基盤のミドルウェア構成>
図3は、クラウド基盤110のミドルウェア構成例を示す。アプリケーションシステム108およびストレージサービス109は、クラウド基盤110上に構築および管理される仮想マシン、および関連するリソース郡から構成される。アプリケーションシステム108およびストレージサービス109は、クラウド基盤110上に構築および管理されたリソースによって、顧客環境100内のネットワークデバイスおよび中継装置から送られるリクエストを処理してサービスを提供する。
広域ネットワーク301は、クラウドサービス内の各サービスを接続する広域ネットワークである。広域ネットワーク301によって、クラウドサービス内の各リソースは、データセンターのリージョンを跨いで相互に接続する。リソースマネージャー302は、サービスを構成するリソースを生成または削除したり、リソースの負荷に応じてリソース量の調整処理を実行したりする。リソース量の調整には、仮想マシンの台数を増やすスケールアウトと、仮想マシンに対するハードウェア資源の割り当てを増やすスケールアップなどが含まれる。さらに、リソース量の調整には、仮想マシンの台数を減らすスケールインと、仮想マシンに対するハードウェア資源の割り当てを減らすスケールダウンも含まれる。
ハードウェア資源は、CPU(コア数)やメモリ(サイズ)、ストレージ(サイズ)などである。リソースマネージャー302は、リソースに対するリクエストの量を監視して、処理負荷に応じて自動でリソース量を調整することもできる。処理負荷とは、仮想マシンでの処理にかかる負荷であり、仮想マシンのCPU使用率やメモリ使用率、レスポンスの応答時間などを指す。監視されるリクエスト量や処理負荷が予め設定された条件に合致した場合にリソースマネージャー302により実行されるリソース量の調整のことを、オートスケールという。また、リソースマネージャー302は、後述のDNS304に登録されているDNSレコードを書き換えるなどして、顧客環境100からのリクエストを受け付けるリソースの宛先を切り替える。顧客環境100からのリクエストを受け付けるリソースとして、後述のロードバランサ311や、仮想マシン314などがある。
DNS304には、それぞれの仮想マシンやロードバランサのIPアドレスなどのアドレス情報とホスト名が登録されている。顧客環境100内のコンピュータやネットワークデバイスは、インターネットなどのネットワークを経由して、DNS304と通信を行う。前述のコンピュータやネットワークデバイスは、DNS304に、リクエストの接続先となる処理システム内のロードバランサのホスト名に該当するアドレス情報を問合せて、DNS304から返ってきたアドレス情報にリクエストを送る。受け付けたリクエストに対して、DNS304は、DNS名に紐づくDNSレコードを使って、リクエストの接続先となる処理システム内のロードバランサを示すホスト名またはアドレス情報を返す。
リージョン310は、クラウド基盤110内のリージョンの一つである。システム管理者は、任意のリージョンを指定し、リソースマネージャー302に仮想マシン314やロードバランサ311などのリソースを生成するためのリクエストを行う。リソースマネージャー302は、前記指定されたリージョン内に指定されたリソースを生成する。後述のロードバランサ311や仮想マシン314は、システム管理者のリクエストによりリージョン310内に生成される。ロードバランサ311は、システムに対するリクエストを分散させる負荷分散装置として機能する。ロードバランサ311は、システムの規模やオートスケール設定に応じて複数生成されてもいい。
コンピュータ312は、ハイパーバイザー313および仮想マシン314が稼働するための情報処理装置である。ここで、ハイパーバイザー313とは、コンピュータを仮想化し、複数の異なるOSを並列に実行できるようにするソフトウェアのことである。また、仮想マシン314は、前述のハイパーバイザー313によってコンピュータ312上に起動される仮想コンピュータのことである。コンピュータ312は、リージョン310内に物理的に構築されるサーバマシンである。リージョン310内に物理的に構築されるコンピュータ312のマシンスペックや台数に応じて、リージョン310内で起動可能な特定のマシンスペックの仮想マシン314の数が変化する。仮想マシン314は、システム管理者が選択可能なOS、アプリケーションサーバ、およびシステムやアプリケーション構成などを含むことができる。コンピュータ312の構成は、図2(A)と同様であるため、ここでの説明は省略する。
<システムの機能構成>
図4は、画像形成装置を含むネットワークシステムの機能構成を説明するブロック図である。図4(A)は、画像形成装置102の機能構成を示した図である。なお、本図に係る画像形成装置102のアプリケーションプログラムは、図2(B)の記憶装置263に記憶されており、RAM252およびROM253に読み出されCPU251によって実行される。
バックアップ処理部401は、画像形成装置上で動作するバックアップ処理を行うアプリケーションプログラムである。バックアップ処理部401は、後述の図5のバックアップ処理フローによって、バックアップデータを作成する処理、およびストレージサービス109にバックアップデータを送信する処理をもつ。
ここで、バックアップデータは、フルバックアップと差分バックアップの種別がある。フルバックアップは、画像形成装置102を構成するための設定値およびデータを含む。差分バックアップは、前回バックアップから変化のあった設定値およびデータのみを含む。初回バックアップ時およびリストア処理を行った直後は、フルバックアップを生成し、以降の運用中は、差分バックアップを生成、クラウドに送信する。これにより、画像形成装置102のバックアップデータ生成負荷とストレージサービス109への通信負荷が抑えられる。
リストア処理部402は、ストレージサービス109で管理するバックアップデータから画像形成装置の状態を復元(リストア)するアプリケーションプログラムである。リストア処理部402は、後述の図6のリストア処理フローによって、ストレージサービス109からバックアップデータを取得し、かつリストア処理を行う。
バックアップ処理部401およびリストア処理部402は、ともに画像形成装置102の操作部257を介してUI画面およびUI画面を介したユーザ操作を受け付ける機能を有する。また、バックアップ処理部401およびリストア処理部402は、バンドルアプリケーションとして画像形成装置102にプリインストールされたものであってもよい。画像形成装置102の初期セットアップ後に外部メディアもしくはインターネット経由でインストールされる形態で提供されてもよい。
図4(B)は、データ管理システムとしてのアプリケーションシステム108の機能構成を示す。なお、本図に係るアプリケーションシステム108の関数群は、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。
イベント検知部410は、後述の図14のフローによってアプリケーションシステムおよびストレージサービスの各種イベントに応じて、関数管理部420に登録された関数を呼び出す。イベントと関数の呼び出し条件情報は、保存部412の関数管理テーブルで管理される。キュー管理部411は、後述の図10、図11、図12、および図14のフローで用いる「マージ処理予約キュー」および「関数呼び出し失敗キュー」のリソースを管理する。もちろん、アプリケーションシステムの稼働に必要なキューリソースが管理されてもよい。保存部412は、イベント検知部410および関数管理部420で管理される各種関数が使用する各種データを格納する。保存部412は、他の機能の要求に応じて、各種データテーブルのレコードを追加・読出・更新・削除する。
ここで、表1~4は、保存部412内の各種データテーブルを示している。
Figure 0007158864000001
表1は、バックアップサービス契約管理テーブルである。ここで、デバイスIDとは、画像形成装置102を一意に識別する識別子である。テナントIDは、画像形成装置102を保有するテナントを一意に識別するための識別子である。テナントIDは、アプリケーションシステム108が提供するWebサービスが、様々な組織・個人などに利用される場合、セキュアにリソースを分離するための単位である。このようなシステムは、一般にマルチテナントシステムと呼ばれる。バックアップサービス契約状態は、画像契約装置ごとのバックアップサービスの利用同意契約状態である。例えば、顧客が同意の上で、クラウドと連携したバックアップが有効な状態である場合は、「契約中」、そうでない場合は、「未契約」などの状態情報を格納する。
Figure 0007158864000002
表2は、バックアップ設定管理テーブルである。ここで、デバイスIDは、デバイスを一意に識別する識別子である。バックアップ保持世代数は、ストレージサービス109が保持するバックアップデータの世代数である。バックアップ保存期間は、バックアップ処理部401が送信するバックアップデータを、ストレージサービス109が保持する期間である。バックアップ送信間隔は、バックアップ処理部401がバックアップデータを生成、送信するタイミングの日時情報である。日時情報は、「毎週木曜日 22:00」といった曜日での設定でもよいし、「毎日22:00」などの日々の設定をできてもよい。表2のバックアップ設定管理テーブルで管理する設定情報は、画像形成装置102のバックアップ処理部が設定のためのUIを持ち、顧客がUIから設定可能である。また、アプリケーションシステムサーバのWebUIから設定出来てもよい。
Figure 0007158864000003
表3は、画像形成装置ごとのバックアップデータ送信の履歴情報を管理するためのバックアップ履歴管理テーブルである。ここで、履歴IDは、バックアップ履歴を一意に識別する識別子である。デバイスIDは、画像形成装置を一意に識別する識別子である。保存先パス情報は、署名付きURL生成関数421が生成した署名付きURL情報である。バックアップ種別は、画像形成装置102のバックアップ処理部401が送信するバックアップデータの種別情報である。例えば、「フルバックアップ」や「差分バックアップ」、後述の関数管理部420に登録されるマージ処理関数426のマージ処理によって生成されたバックアップ履歴の場合は、「フルバックアップ(マージ処理)」となる。
状態カラムは、バックアップ処理部401が送信するバックアップデータの保存状態である。例えば、バックアップデータがストレージサービス109に送信され、保存も完了している状態であれば、「保存済み」となる。署名付きURLは、発行されたが、バックアップデータがストレージサービス109に送信されていない場合は、「送信予約」となる。バックアップデータの世代数もしくは保存期間が閾値を超えた場合や、マージ処理によって不要となったバックアップデータが削除された場合は、「削除済み」となる。もちろん、その他の状態が管理されてもよい。更新日時は、バックアップ履歴情報が作成もしくは更新された時点の時刻情報である。
Figure 0007158864000004
表4は、後述の関数管理部420で管理される関数の起動条件を管理するための関数管理テーブルである。ここで、関数起動IDは、関数の起動条件を一意に識別する識別子である。関数起動条件は、任意の関数の起動条件が定義されるカラムである。例えば、署名付きURL生成関数421は、任意のURLへのPOSTアクセス時に起動(呼び出し)するなどの条件を定義できる。また、ストレージサービスサーバ109の任意の保存領域にデータが保存された場合に起動する、といった条件も定義できる。
例えば、「ストレージサービスサーバ109のフルバックアップデータ保存領域にデータが保存された場合に、バックアップ完了関数424を呼び出す」などの定義が可能である。また、「ストレージサービスサーバ109の差分バックアップデータ保存領域にデータが保存された場合に、マージ処理予約関数425を呼び出す」などの定義が可能である。起動関数名は、関数起動条件が満たされた場合に起動される関数情報が定義される。最大同時実行数は、関数の同時実行するが定義される。
以上で保存部412が管理する各種データテーブルに関する説明を終わる。
図4(B)の説明に戻る。関数管理部420は、アプリケーションシステムの機能に必要な処理を記述した関数を管理する。関数管理部420は、関数を保存部412の関数管理テーブルに記載の任意のイベントに紐付けて関数同士を連動(呼び出す)することで、一連の処理が実行可能なように構成される。関数の起動は、図3の仮想マシン314がオンデマンドで起動され、仮想マシン314上で関数が実行される様態をとるものである。なお、仮想マシン314は、軽量なコンテナ型のアプリケーション実行環境であってもよい。システム管理者は、関数管理部420を介して任意の関数を登録し、関数内部もしくは他のサービスと相互に連動して動作するよう設定することができる。
署名付きURL生成関数421は、後述の図7のフローによって画像形成装置102の要求に応じて署名付きURLを生成する関数である。バックアップ設定管理関数422は、画像形成装置102または関数管理部420で管理される他の関数の要求に応じて保存部412のバックアップ設定管理テーブルを参照・変更・削除・追加する関数である。バックアップ履歴管理関数423は、画像形成装置102または関数管理部420で管理される他の関数の要求に応じて保存部412のバックアップ履歴管理テーブルを参照・変更・削除・追加する関数である。
バックアップ完了関数424は、後述の図9のフローによってアプリケーションシステムがバックアップデータのアップロード処理の完了処理を記録する関数である。マージ処理予約関数425は、後述の図10のフローによってアップロードされた差分バックアップのマージ処理を予約する関数である。マージ処理関数426は、後述の図11のフローによってアップロードされた差分バックアップのマージ処理を行う関数である。マージ処理予約関数427は、後述の図12のフローによって呼び出し(マージ処理)に失敗した関数を呼び出し、マージ処理を再度実行する関数である。
図4(C)は、ストレージシステムとしてのストレージサービス109の機能構成を示す。なお、本図に係るストレージサービス109のアプリケーションプログラムは、図2(A)の記憶装置211に記憶され、RAM202およびROM203に読み出され、CPU201により実行される。
バックアップデータ受信部430は、後述の図8のフローによって、バックアップ処理部401が生成したバックアップデータを受信する。バックアップデータ受信部430は、署名付きURL検証部431、フルバックアップデータ保存部432および差分バックアップデータ保存部433を介して、バックアップデータの保存処理、マージ処理実行の判断、およびマージ処理関数の呼び出し等を行う。
署名付きURL検証部431は、バックアップデータ受信部430を介してバックアップ処理部401から接続される署名付きURLの付帯情報が正しいことを検証する。ここで、署名付きURLの付帯情報とは、暗号化されたトークン情報、有効期限、アップロードまたはダウンロードするデータ名(ファイル名)、アップロードするファイルのサイズ情報などである。また署名付きURL検証部431は、前述の付帯情報が改ざんされていないことも検証する。
フルバックアップデータ保存部432は、後述の図8のフローによって、フルバックアップデータの保存処理を行う。差分バックアップデータ保存部433は、後述の図8のフローによって、差分バックアップデータの保存処理およびマージ処理関数の呼び出しを行う。
以上で、図3の説明を終わる。
<画像形成装置102のバックアップ処理のフロー>
図5は、画像形成装置102のバックアップ処理の動作処理の例を示す。なお、本図に係る画像形成装置102のアプリケーションプログラムは、図2(B)の記憶装置263に記憶され、RAM252およびROM253に読み出され、CPU251によって実行される。以下、図5を用いて、画像形成装置102のバックアップ処理部401が、アプリケーションシステム108から署名付きURLを取得し、該署名付きURLを用いてストレージサービス109にバックアップデータをアップロードする処理のフローを説明する。
ステップS500において、バックアップ処理部401が、バックアップ要求を受け付ける。バックアップ要求受付は、ユーザの任意のUI操作によるものであってもよい。また、バックアップ要求受付は、アプリケーションシステムの保存部412で管理されるバックアップ設定管理テーブルのバックアップ送信間隔カラムの設定に応じて予めスケジュールされたタイミングで受け付けてもよい。
ステップS501において、バックアップ処理部401が、ステップS500で受け付けたバックアップ要求が、リストア後の初のバックアップであるか否かを判断する。リストア後初のバックアップ要求である場合は、ステップS502に処理を進め、そうでない場合はステップS504に処理を進める。
ステップS502において、バックアップ処理部401が、画像形成装置102のフルバックアップを生成する。フルバックアップに含まれるデータとしては、例えば、画像形成装置102のネットワーク設定値情報やライセンス情報、インストール済みのアプリケーション情報、アプリケーションに付随する設定値情報などが含まれる。その他画像形成装置102が保持する顧客特有情報を顧客が同意の上で含めてもよい。
ステップS503において、バックアップ処理部401が、アプリケーションシステム108の署名付きURL生成関数421に接続し、フルバックアップのデータ送信に必要な署名付きURLを取得する。このとき、アプリケーションシステム108へのリクエストヘッダに、フルバックアップデータの送信である旨のフラグ情報を付加する。
ステップS504において、バックアップ処理部401が、ステップS500で受け付けたバックアップ要求が画像形成装置102において初めてのバックアップ処理であるか否か、またはユーザ操作による即時バックアップ要求であるか否かを判断する。初めてのバックアップ処理である、もしくはユーザ操作による即時バックアップ要求であると判断した場合は、ステップS505に処理を進める。そうでない場合は、ステップS505に処理を進める。
ステップS505において、バックアップ処理部401が、前回生成したフルバックアップないし差分バックアップからの差分情報で構成される差分バックアップデータを生成する。差分バックアップの形態として、例えば、操作ログのような形で前回バックアップからの差分データを生成してもよい。もちろん、前回バックアップからの差分を判別できる形態であれば、その他の形態であってもよい。
ステップS506において、バックアップ処理部401が、アプリケーションシステム108の署名付きURL生成関数421に接続し、差分バックアップのデータ送信に必要な署名付きURLを取得する。このとき、アプリケーションシステム108へのリクエストヘッダに、差分バックアップデータの送信である旨のフラグ情報を付加する。
ステップS507において、バックアップ処理部401が、ステップS503もしくはステップS506で取得した署名付きURLを用いて、ストレージサービス109のバックアップデータ受信部430に接続する。そして、バックアップ処理部401は、ステップS502もしくはステップS505で生成したバックアップデータを送信する。
ステップS508において、バックアップ処理部401が、ステップS502もしくはステップS505で生成した画像形成装置102内のバックアップデータを削除する。
以上で、図5の説明を終わる。
<画像形成装置102のリストア処理のフロー>
図6は、画像形成装置102のリストア処理の動作処理の例を示す。なお、本図に係る画像形成装置102のアプリケーションプログラムは、図2(B)の記憶装置263に記憶され、RAM252およびROM253に読み出され、CPU251により実行される。以下、図6を用いて、画像形成装置102のリストア処理部402が、アプリケーションシステム108から署名付きURLを取得し、該署名付きURLを用いてストレージサービス109にバックアップデータをアップロードする処理のフローを説明する。
ステップS600において、画像形成装置102のリストア処理部402が、アプリケーションシステム108のバックアップ履歴管理関数423から自身のバックアップ履歴情報を取得する。ステップS600は、ユーザによってリストアアプリケーションが起動されたタイミングで実行される。
ステップS601において、リストア処理部402が、ステップS600で取得したバックアップ履歴情報をユーザにUIで提示する。ユーザは、画像形成装置102をどのバックアップでリストアしたいかをUIを介して選択する。
ここで、ステップS601のUIの例を、図13を用いて説明する。
図13は、画像形成装置102の操作部257におけるパネルに表示されるステップS601のUIの例である。1302は、リストア処理部402がステップS600で取得したバックアップ履歴をリスト表示している。1302のリストの各アイテムは、パネルのタッチもしくはポインティングデバイスによって選択状態にすることができる。1303は、選択状態のアイテムであってバックアップの一時点を示している。1304は、各アイテムの詳細情報画面への遷移リンクである。詳細情報画面では、任意のバックアップ時点の差分内容を確認できてもよい。1305は、決定ボタンである。決定ボタンが押下されると、選択状態のアイテム(バックアップ時点)を用いて、ステップS602~S605のリストア処理が実行される。1306は、キャンセルボタンである。キャンセルボタンが押下されると、リストア処理部402はUI表示およびリストア処理を終了する。
図13のUIに表示するバックアップ履歴は、バックアップ履歴管理テーブルのバックアップ種別カラムが「フルバックアップ」または「フルバックアップ(マージ処理)」となっているバックアップ履歴である。差分バックアップは、選択肢に含めない。UIは、バックアップ履歴をリスト表示してもよい。また、UIは、一日に何度もバックアップが行われるような設定であれば、はじめに日毎の選択肢を表示し、ドリルダウンしてリストアに用いるバックアップを選択してもよい。また、バックアップがスケジュール実行されたものかユーザが任意でバックアップしたか否かによって、表示の仕方を変えてもよい。例えば、ユーザが任意でバックアップした履歴に関しては、リスト表示の先頭に提示するなどしてもよい。
以上で、図13の説明を終わる。
図6の説明に戻る。ステップS602において、リストア処理部402が、ステップS601で提示したUIによってユーザが任意のバックアップを選択したことを検知する。ステップS603において、リストア処理部402が、アプリケーションシステム108の署名付きURL生成関数421に接続する。また、ステップS601において、選択されたバックアップデータのダウンロード用の署名付きURLを取得する。このとき、アプリケーションシステム108へのリクエストヘッダに、バックアップデータの取得要求である旨のフラグ情報と、どのバックアップデータに関する署名付きURLであるかの情報を付加する。例えば、ステップS600において取得した履歴IDが付加される。
ステップS604において、リストア処理部402が、ステップS603で取得した署名付きURLを用いてストレージサービス109のフルバックアップデータ保存432からダウンロードする。ステップS605において、リストア処理部402が、ステップS604で取得したバックアップデータを用いて画像形成装置102のストレージ領域をリストアする処理を行う。なお、ステップS605は、リストアにおける設定情報の復元、アプリケーションの復元、アプリケーション設定の復元、再起動などのリストア処理に必要な処理を含む。
以上で、図6の説明を終わる。
<アプリケーションシステム108の関数呼び出しのフロー>
図14は、アプリケーションシステム108のイベント検知部410が、関数管理部420で管理される各関数を呼び出す処理の例を示す。なお、本図に係るアプリケーションシステム108のアプリケーションプログラムは、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。以下、図14を用いて、アプリケーションシステム108のイベント検知部410が、関数管理部420で管理される各関数を呼び出す処理を説明する。
ステップS1401において、イベント検知部410が、保存部412の関数管理テーブルの関数起動条件を満たすイベントが発生したか否かを検知する。検知するイベントの種類として、例えば、任意のURLへのGETもしくはPOSTによるアクセスイベント、ストレージサービスサーバ109の任意の保存領域にデータが保存される保存完了イベントなどが挙げられる。ステップS1401は、その他アプリケーションシステム108に関わる様々なイベント処理を監視する。アプリケーションシステム108においてイベントが発生した場合、イベント検知部410が、当該イベントが保存部412の関数管理テーブルの関数起動条件を満たすイベントであるか否かを判断する。関数起動条件を満たすイベントであると判断した場合は、処理をステップS1402に進め、そうでない場合は、イベントの監視を継続する。
ステップS1402において、ステップS1401で検知した関数起動条件に紐づく関数を呼び出す。ステップS1403において、ステップS1402の関数呼び出し処理に失敗したか否かを判断する。関数呼び出し処理に失敗したと判断した場合は、ステップS1404に進み、そうでない場合は、処理を終了する。ここで、関数呼び出しに失敗する要因として、例えば、図3におけるクラウド基盤110の仮想マシン(コンテナ)314がリソース不足により呼び出せない例が挙げられる。もちろん、その他の理由で関数の呼び出しの失敗を検知してもよい。
ステップS1404において、関数呼び出し失敗キューにメッセージを追加する。メッセージには、呼び出しに失敗した関数の情報および、前記関数に渡す予定のパラメータ情報を含める。
以上で、図14の説明を終わる。
<アプリケーションシステム108の署名付きURL生成関数421の処理フロー>
図7は、アプリケーションシステム108の署名付きURL生成関数421の動作処理の例を示す。なお、本図に係るアプリケーションシステム108の関数群は、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。以下、図7を用いて、アプリケーションシステム108が画像形成装置102のバックアップ処理部401およびリストア処理部402の要求に応じて署名付きURLを生成する処理のフローを説明する。なお、署名付きURL生成関数421は、関数管理テーブルの関数起動条件に従い、画像形成装置102のバックアップ処理部401およびリストア処理部402のHTTP要求に応じて呼び出される関数である。
ステップS700において、アプリケーションシステム108の署名付きURL生成関数421が、図5のS503もしくはS506、および図6のS603における署名付きURLの取得要求を受信する。ステップS701において、署名付きURL生成関数421が、保存部412のバックアップ設定管理テーブルを参照し、署名付きURL取得要求元の画像形成装置のバックアップサービス契約状態を取得する。画像形成装置のバックアップサービス契約状態が契約中の場合は、処理をステップS701に進み、そうでない場合は、処理を終了する。処理を終了する場合、画像形成装置102には、認可エラーの旨の情報を返す。
ステップS702において、署名付きURL生成関数421が、ステップS700にて受信した署名付きURL取得要求がリストアのための署名付きURL取得要求であるか否かを判断する。ステップS700にて受信した署名付きURL取得要求がリストアのための署名付きURL取得要求であると判断した場合は、処理をステップS703に進める。そうでない場合は、処理をステップS704に進める。ステップS700にて受信した署名付きURL取得要求がリストアのための署名付きURL取得要求であるか否かを判断する手段としては、次のようなものがある。例えば、その手段は、図6のステップS603の処理において、リクエストヘッダにリストア処理フラグを含めることで実現してもよいし、その他のリストアと判断可能な付随情報によって実現してもよい。
ステップS703において、署名付きURL生成関数421が、リストア処理部402に返却するためのバックアップデータ取得用の署名付きURLを生成する。このとき、ステップS700の取得要求のリクエストヘッダに含まれる履歴ID情報を元にバックアップ履歴管理テーブルを参照して、任意のバックアップデータに紐づく取得用の署名付きURLを発行する。
ステップS704において、署名付きURL生成関数421が、ステップS700にて受信した署名付きURL取得要求がフルバックアップデータの送信のための署名付きURL取得要求であるか否かを判断する。フルバックアップデータの送信のための署名付きURL取得要求であると判断した場合は、ステップS706に進み、そうでない場合は、ステップS705に進む。このとき、フルバックアップデータの送信のための署名付きURL取得要求であるか否かを判断する手段として、図5のステップS503でリクエストヘッダに付加されたフラグ情報を用いてもよい。
ステップS705において、署名付きURL生成関数421が、差分バックアップデータ送信用の署名付きURLを生成する。ステップS706において、署名付きURL生成関数421が、フルバックアップデータ送信用の署名付きURLを生成する。ステップS707において、署名付きURL生成関数421が、保存部412のバックアップ履歴管理テーブルを更新する。新規履歴IDを発番し、デバイスID、保存先パス情報、バックアップ種別、状態、および更新日時を含めた情報を追加する。このとき、状態カラムには「送信予約」が記録される。
ステップS708において、署名付きURL生成関数421が、各ステップS706、S705、S703で生成した署名付きURLを画像形成装置102に返却する。
以上で、図7の説明を終わる。
<ストレージサービス109のバックアップデータ保存処理のフロー>
図8は、ストレージサービス109のバックアップデータ保存処理の例を示す。なお、本図に係るストレージサービス109のアプリケーションプログラムは、図2(A)の記憶装置211に記憶され、RAM202およびROM203に読み出され、CPU201により実行される。以下、図8を用いて、ストレージサービス109のバックアップデータ受信部430が、画像形成装置102のバックアップ処理部401およびリストア処理部402の要求に応じてバックアップデータを保存する処理のフローを説明する。
ステップS800において、バックアップデータ受信部430が、画像形成装置102のバックアップ処理部401からバックアップデータの送信要求を受け付ける。ステップS801において、署名付きURL検証部431が、ステップS801で受け付けたバックアップデータ送信要求の署名付きURLの付帯情報を検証する。検証する内容として、例えば、署名付きURLの付帯情報が正しく復号可能で改ざんされていないこと、有効期限が期限内で有るか否かであること、などが挙げられる。前記検証結果で署名付きURLが正しいと判断された場合は、処理をステップS802に進める。そうでない場合は、処理を終了する。処理を終了する場合、画像形成装置102には、認可エラーの旨の情報を返す。
ステップS802において、バックアップデータ受信部402が、ステップS800にて受信したバックアップデータ送信要求がフルバックアップデータの送信要求であるか否かを判断する。フルバックアップデータの送信要求であると判断した場合は、ステップS805に進み、そうでない場合は、ステップS803に進む。このとき、フルバックアップデータの送信のための署名付きURL取得要求であるか否かを判断する手段として、図5のS507でリクエストヘッダに付加されたフラグ情報を用いてもよい。
ステップS803において、差分バックアップデータ保存部433が、画像形成装置102のバックアップ処理部401からバックアップデータの送信要求を許可する。また、差分バックアップデータ保存部433は、差分バックアップデータを受信し、署名付きURLに付帯する保存先パス情報に従ってデータを保存する。
ステップS805において、フルバックアップデータ保存部432が、画像形成装置102のバックアップ処理部401からバックアップデータの送信要求を許可する。また、フルバックアップデータ保存部432は、フルバックアップデータを受信し、署名付きURLに付帯する保存先パス情報に従ってデータを保存する。
以上で、図8の説明を終わる。
<アプリケーションシステム108のバックアップ完了関数424の処理フロー>
図9は、アプリケーションシステム108のバックアップ完了関数424の処理の例を示す。なお、本図に係るアプリケーションシステム108の関数群は、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。以下、図9を用いて、アプリケーションシステム108の関数管理部420に登録された関数であるバックアップ完了処理関数のフローを説明する。なお、バックアップ完了処理関数424は、関数管理テーブルの関数起動条件に従い、図8のバックアップデータ保存処理におけるステップS805の処理の終了後に呼び出される関数である。
ステップS900において、バックアップ完了関数424が、保存部412のバックアップ履歴管理テーブルを更新する。この時、バックアップ完了関数424は、図8のバックアップデータ保存処理におけるステップS806の処理でバックアップデータの保存先パス情報をパラメータとして受け取る。また、バックアップ完了関数424は、前記保存先パス情報と合致するレコードの「状態」カラムを「保存済み」に更新する。更新日時カラムも更新する。
以上で、図9の説明を終わる。
<アプリケーションシステム108のマージ処理予約関数425の処理フロー>
図10は、アプリケーションシステム108のマージ処理予約関数425の処理の例を示す。なお、本図に係るアプリケーションシステム108の関数群は、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。以下、図10を用いて、アプリケーションシステム108の関数管理部420に登録された関数であるマージ処理予約関数のフローを説明する。なお、マージ処理予約関数425は、関数管理テーブルの関数起動条件に従い、図8のバックアップデータ保存処理におけるステップS803の処理の終了後に呼び出される関数である。S805の処理の終了時にはマージ処理が不要なため同関数の呼び出しはない。
ステップS1000において、マージ処理予約関数425が、保存部412のバックアップ履歴管理テーブルを更新する。この時、マージ処理予約関数425は、図8のバックアップデータ保存処理におけるステップS804の処理でバックアップデータの保存先パス情報をパラメータとして受け取る。また、マージ処理予約関数425は、前記保存先パス情報と合致するレコードの「状態」カラムを「保存済み」に更新する。更新日時カラムも更新する。
ステップS1001において、マージ処理予約関数425が、予め用意されたマージ処理予約キューにメッセージを追加する。メッセージには、ステップS1000で更新したレコードの履歴ID情報を含める。
以上で、図10の説明を終わる。
<アプリケーションシステム108のマージ処理関数426の処理フロー>
図11は、アプリケーションシステム108のマージ処理関数426の例を示す。なお、本図に係るアプリケーションシステム108の関数群は、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。以下、図11を用いて、アプリケーションシステム108の関数管理部420に登録された関数であるマージ処理予約関数のフローを説明する。なお、マージ処理関数は、関数管理テーブルの関数起動条件に従い、定期的に呼び出される関数である。
ステップS1100において、マージ処理関数426が、マージ処理予約キューからメッセージを取得する。ステップS1101において、マージ処理関数426が、ステップS1100で取得したメッセージに含まれる履歴ID情報をもとに、バックアップ履歴管理テーブルから関連する画像形成装置のバックアップ履歴情報リストを取得する。
ステップS1102において、マージ処理関数426が、ステップS1101で取得したバックアップ履歴情報リストの中に、未マージ、かつステップS1100で取得した履歴IDよりも古い差分バックアップの情報が存在するか否かを判断する。ここで、未マージであるか否かの判断は、バックアップ履歴管理テーブルの状態カラムが「削除済み」であるか否かによって判断してもよい。未マージ、かつステップS1100で取得した履歴IDよりも古い差分バックアップの情報が存在すると判断した場合は、ステップS1103に処理を進め、そうでない場合は、ステップS1105に処理を進める。
ステップS1103において、マージ処理関数426が、マージ処理予約キューからステップS1100で取得したメッセージを削除する。なお、マージ処理予約キューのメッセージは、プログラムで意図的に削除処理を行わなければ消えないものとする。
ステップS1104において、マージ処理関数426が、マージ処理予約キューにステップS1100で取得したメッセージを再度追加する。なお、ステップS1102~ステップS1104の一連の処理は、図8のステップS803の処理後でマージ処理関数の呼び出しに失敗した場合を考慮した処理である。呼び出しに失敗した場合には、ステップS803の処理に対応する差分バックアップデータに対する図10の処理がスキップされていることになる。すなわち、このS1103~S1104処理では、差分バックアップ順番にマージ処理することで、マージ処理によって生成されるフルバックアップデータの整合性を合わせることができる。
ステップS1105において、マージ処理関数426が、ステップS1100で取得した履歴IDに紐づく差分バックアップと、ステップS1101で取得した直近保存されたフルバックアップデータとをマージし、新たなフルバックアップデータを生成する。フルバックアップデータの生成に成功した場合は、マージ処理関数426が、ストレージサービス109のフルバックアップデータ保存部432に生成したフルバックアップデータを保存する。
ここで、前記マージ処理は、例えば、差分バックアップデータに含まれる画像形成装置の操作ログをトレースし、画像形成装置に関する最終時点の設定値情報を抽出し、前記直近のフルバックアップデータに前記設定値情報を反映させることで成されてもよい。
ステップS1106において、マージ処理関数426が、保存部412のバックアップ履歴管理テーブルを更新する。ステップS1105のフルバックアップデータに紐づく新規履歴IDを発番し、デバイスID、保存先パス情報、バックアップ種別、状態、更新日時を含めた情報を追加する。このとき、バックアップ種別カラムには「フルバックアップ(マージ処理)」が記録され、状態カラムには「保存済み」が記録される。
ステップS1107において、マージ処理関数426が、マージ処理予約キューからステップS1100で取得したメッセージを削除する。ステップS1108において、マージ処理関数426が、ステップS1105でマージ処理を行う際に使用した差分バックアップデータをストレージサービス109の差分バックアップデータ保存部433から削除する。ステップS1109において、マージ処理関数426が、保存部412のバックアップ履歴管理テーブルを更新する。ステップS1108で削除した差分バックアップデータに紐づく履歴IDのレコードの状態カラムを「削除済み」に更新する。
以上で、図11の説明を終わる。
<アプリケーションシステム108の関数呼び出しリトライ関数427の処理フロー>
図12は、アプリケーションシステム108の関数呼び出しリトライ関数427の例を示す。なお、本図に係るアプリケーションシステム108の関数群は、図3の仮想マシン(コンテナ)314で仮想的に構成されるメモリ領域に読み出され、仮想マシン(コンテナ)314の仮想CPUによって実行される。以下、図12を用いて、アプリケーションシステム108の関数管理部420に登録された関数である関数呼び出しリトライ関数427のフローを説明する。なお、関数呼び出しリトライ関数427は、関数管理テーブルの関数起動条件に従い、定期的に呼び出される関数である。
ステップS1200において、関数呼び出しリトライ関数427が、関数呼び出し失敗キューからメッセージを取得する。ステップS1201において、関数呼び出しリトライ関数427が、ステップS1200で取得したメッセージから呼び出しに失敗した関数情報を取得する。ここで、関数情報は、例えば、関数を一意に識別可能な関数名などの情報である。ステップS1202において、関数呼び出しリトライ関数427が、ステップS1200で取得したメッセージに含まれるパラメータ情報を用いてステップS1201で取得した呼び出しに失敗した関数を呼び出し、リトライを再度実行する。
ステップS1203において、関数呼び出しリトライ関数427が、ステップS1202の処理で関数呼び出しに失敗したか否かを判断する。関数呼び出し処理に失敗したと判断した場合はステップS1204に進み、そうでない場合は、処理を終了する。ステップS1204において、関数呼び出しリトライ関数427が、関数呼び出し失敗キューからステップS1200で取得したメッセージを削除する。なお、ステップS1200で取得されたメッセージは、ステップS1204で明示的に削除されない限り、一定時間後に、再度関数呼び出し失敗キューから取得可能となる。
以上で、図12の説明を終わる。
(その他の実施例)
本発明は、上述の例の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータでの1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(むすび)
以上、本実施例によれば、画像形成装置102が署名付きURLを用いてストレージサービス109にバックアップデータをアップロードしたタイミングで、アプリケーションシステム108が差分バックアップデータのマージ処理を実行する。また、画像形成装置102がリストアを要する際は、マージ済みのフルバックアップデータによってリストア処理を行う。これにより、画像形成装置102は、ストレージサービス109から必要な全ての差分バックアップデータを取得する必要がなくなる。また、画像形成装置側でのマージ処理が不要となるため、結果として、リストア完了までに要する時間が短縮される。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。

Claims (7)

  1. ネットワークデバイスと、ストレージシステムと、データ管理システムと、を含むシステムであって、
    前記ネットワークデバイスは、
    前記ネットワークデバイスの記憶装置に格納されるデータをバックアップデータとして保存するための保存先を示す情報を要求する第1要求を行う第1要求手段と、
    前記第1要求に従い受信した前記保存先を示す情報を用いて、前記記憶装置に格納されるデータを送信する送信手段と、を有し、
    前記データ管理システムは、
    前記第1要求に応じて前記ネットワークデバイスのバックアップデータを保存するための保存先を示す情報を生成し、前記保存先を示す情報を前記ネットワークデバイスに応答する第1応答手段を有し、
    前記ネットワークデバイスから前記生成された保存先を示す情報を用いて送信されたデータが差分バックアップデータであり、当該差分バックアップデータが前記ストレージシステムに保存されたことを示すイベントに応じて呼び出された関数に基づき、前記ストレージシステムですでに管理されているフルバックアップデータと当該差分バックアップデータとのマージ処理を実行するためのメッセージが管理され、当該管理されたメッセージに基づき前記マージ処理が実行され
    前記イベントに応じた前記関数の呼び出しに失敗した場合、さらに呼び出される別の関数の実行に基づき、前記マージ処理を実行するためのメッセージが管理される、
    ことを特徴とするシステム。
  2. 前記第1応答手段は、前記ネットワークデバイスからの前記第1要求が前記差分バックアップデータを保存するための保存先を示す情報のための要求であった場合、前記差分バックアップデータの保存のために予め用意される前記ストレージシステムの保存先を示す情報を前記ネットワークデバイスに応答することを特徴とする、
    請求項1に記載のシステム。
  3. 前記ネットワークデバイスから送信されたデータがフルバックアップデータであった場合には、前記関数の呼び出しが行われないことを特徴とする、
    請求項1に記載のシステム。
  4. 前記ネットワークデバイスは、さらに、
    前記データ管理システムにリストアのために第2要求を行う第2要求手段と、
    前記第2要求に従い受信した保存先を示す情報を用いて、前記ストレージシステムに保存されるフルバックアップデータを取得する取得手段と、を有することを特徴とする、
    請求項1からのいずれか1項に記載のシステム。
  5. 前記データ管理システムは、さらに、前記第2要求に応じて、前記ストレージシステムにおける前記フルバックアップデータの保存先を示す情報を前記ネットワークデバイスに応答する第2応答手段を有することを特徴とする、
    請求項に記載のシステム。
  6. 前記バックアップデータは、前記ネットワークデバイスの設定情報、アドレス情報、およびインストールされたアプリケーションに関する情報の少なくとも1つを含むことを特徴とする、
    請求項1からのいずれか1項に記載のシステム。
  7. ネットワークデバイスと、ストレージシステムと、データ管理システムと、を含むシステムを用いる方法であって、
    前記ネットワークデバイスにおける、前記ネットワークデバイスの記憶装置に格納されるデータをバックアップデータとして保存するための保存先を示す情報を要求する第1要求を行う工程と、
    前記データ管理システムにおける、前記第1要求に応じて前記ネットワークデバイスのバックアップデータを保存するための保存先を示す情報を生成し、前記保存先を示す情報を前記ネットワークデバイスに応答する工程と、
    前記ネットワークデバイスにおける、前記第1要求に従い受信した前記保存先を示す情報を用いて、前記記憶装置に格納されるデータを送信する工程と、を有し、
    前記ネットワークデバイスから前記生成された保存先を示す情報を用いて送信されたデータが差分バックアップデータであり、当該差分バックアップデータが前記ストレージシステムに保存されたことを示すイベントに応じて呼び出された関数に基づき、前記ストレージシステムですでに管理されているフルバックアップデータと当該差分バックアップデータとのマージ処理を実行するためのメッセージを管理し、当該管理されたメッセージに基づき前記マージ処理が実行され
    前記イベントに応じた前記関数の呼び出しに失敗した場合、さらに呼び出される別の関数の実行に基づき、前記マージ処理を実行するためのメッセージが管理される、
    ことを特徴とする方法。
JP2018023424A 2018-02-13 2018-02-13 システムおよびそれを用いる方法 Active JP7158864B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018023424A JP7158864B2 (ja) 2018-02-13 2018-02-13 システムおよびそれを用いる方法
US16/256,278 US11194671B2 (en) 2018-02-13 2019-01-24 System and method using the same
CN201910112676.2A CN110162427B (zh) 2018-02-13 2019-02-13 系统和使用该系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018023424A JP7158864B2 (ja) 2018-02-13 2018-02-13 システムおよびそれを用いる方法

Publications (2)

Publication Number Publication Date
JP2019139591A JP2019139591A (ja) 2019-08-22
JP7158864B2 true JP7158864B2 (ja) 2022-10-24

Family

ID=67541669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018023424A Active JP7158864B2 (ja) 2018-02-13 2018-02-13 システムおよびそれを用いる方法

Country Status (3)

Country Link
US (1) US11194671B2 (ja)
JP (1) JP7158864B2 (ja)
CN (1) CN110162427B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6806351B1 (ja) * 2020-03-06 2021-01-06 株式会社C−Rise 情報処理方法、コンピュータプログラム及び情報処理装置
US11627090B2 (en) 2021-04-21 2023-04-11 EMC IP Holding Company LLC Provisioning workflows using subgraph similarity
US11972289B2 (en) 2021-04-21 2024-04-30 EMC IP Holding Company LLC Method and system for provisioning workflows based on locality
US11463315B1 (en) 2021-04-21 2022-10-04 EMC IP Holding Company LLC Creating and managing dynamic workflows based on occupancy
US11669525B2 (en) 2021-04-21 2023-06-06 EMC IP Holding Company LLC Optimizing workflow movement through device ecosystem boundaries
US20220342714A1 (en) * 2021-04-21 2022-10-27 EMC IP Holding Company LLC Method and system for provisioning workflows with dynamic accelerator pools
US11461211B1 (en) 2021-04-21 2022-10-04 EMC IP Holding Company LLC Method and system for provisioning workflows with data management services
JP2022168947A (ja) 2021-04-27 2022-11-09 京セラドキュメントソリューションズ株式会社 テナント管理システム
JP7117444B1 (ja) 2021-12-10 2022-08-12 Kddi株式会社 情報処理装置及び情報処理方法
WO2023187980A1 (ja) * 2022-03-29 2023-10-05 日本電気株式会社 アプリケーション配信装置、アプリケーション配信方法、およびプログラム
US11953995B1 (en) * 2022-11-04 2024-04-09 Bank Of America Corporation Centralized data backup platform supporting multiple data environments

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182988A (ja) 2001-10-05 2002-06-28 Fujitsu Ltd データ処理システムのバックアップ制御装置及び方法
JP2003330782A (ja) 2002-05-10 2003-11-21 Hitachi Ltd 計算機システム
JP2009205340A (ja) 2008-02-27 2009-09-10 Nec Corp バックアップ装置、その制御方法及びプログラム
JP2012068771A (ja) 2010-09-22 2012-04-05 Hitachi Systems Ltd バックアップ・リストア処理装置とバックアップ・リストア処理方法およびプログラム
JP2015092314A (ja) 2013-11-08 2015-05-14 株式会社日立製作所 バックアップ管理システムおよびバックアップ管理方法
US20180011643A1 (en) 2016-07-08 2018-01-11 International Business Machines Corporation Automated storage target selection for data backup

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06243013A (ja) 1993-02-19 1994-09-02 Toshiba Corp 分散型データベースシステム
JP5001886B2 (ja) * 2008-03-14 2012-08-15 株式会社リコー 画像入出力システム、画像入出力装置のバックアップ方法、およびそのプログラム
US8499297B2 (en) * 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
JP5665437B2 (ja) * 2010-09-02 2015-02-04 キヤノン株式会社 ネットワーク機器管理システム、ネットワーク機器管理装置、クライアント装置およびその方法
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US9430331B1 (en) * 2012-07-16 2016-08-30 Emc Corporation Rapid incremental backup of changed files in a file system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182988A (ja) 2001-10-05 2002-06-28 Fujitsu Ltd データ処理システムのバックアップ制御装置及び方法
JP2003330782A (ja) 2002-05-10 2003-11-21 Hitachi Ltd 計算機システム
JP2009205340A (ja) 2008-02-27 2009-09-10 Nec Corp バックアップ装置、その制御方法及びプログラム
JP2012068771A (ja) 2010-09-22 2012-04-05 Hitachi Systems Ltd バックアップ・リストア処理装置とバックアップ・リストア処理方法およびプログラム
JP2015092314A (ja) 2013-11-08 2015-05-14 株式会社日立製作所 バックアップ管理システムおよびバックアップ管理方法
US20180011643A1 (en) 2016-07-08 2018-01-11 International Business Machines Corporation Automated storage target selection for data backup

Also Published As

Publication number Publication date
CN110162427B (zh) 2024-03-08
US11194671B2 (en) 2021-12-07
US20190250996A1 (en) 2019-08-15
JP2019139591A (ja) 2019-08-22
CN110162427A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
JP7158864B2 (ja) システムおよびそれを用いる方法
JP5448542B2 (ja) 情報処理装置、制御方法、及びプログラム
US20130014112A1 (en) Information processing apparatus and data management system
JP2007122093A (ja) 印刷制御装置及び印刷制御方法ならびに印刷制御方法を実行するプログラム
JP2016218530A (ja) リクエスト振り分けシステム、管理システム、およびその制御方法
US20190065706A1 (en) Management apparatus, control method, and storage medium
JP5419637B2 (ja) 管理装置、その方法及びプログラム
JP6274758B2 (ja) ネットワーク機器管理装置、ネットワーク機器管理方法、およびネットワーク機器管理方法を実行するプログラム
JP6207163B2 (ja) クライアント、サーバー、管理システム及びその方法
JP2015176594A (ja) 情報処理装置、情報処理方法及びプログラム
JP2015153117A (ja) 文書生成システム
JP5766065B2 (ja) 管理システム、サーバ装置、管理方法およびコンピュータプログラム
JP4986234B2 (ja) 情報処理装置
JP5140351B2 (ja) 情報処理装置
JP2017111531A (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法、及びプログラム
JP2015049862A (ja) 情報処理装置、システム、方法およびプログラム
JP5140349B2 (ja) 情報処理装置
JP5040026B2 (ja) 情報処理装置
JP5090828B2 (ja) 情報処理装置
JP2019200484A (ja) デバイス管理システム及び方法
JP2021177356A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP5194271B2 (ja) 情報処理装置
JP5238203B2 (ja) 情報処理装置
JP6663257B2 (ja) 情報処理装置とその制御方法、及びプログラム
JP5389343B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220804

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220804

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220817

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221012

R151 Written notification of patent or utility model registration

Ref document number: 7158864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151