以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
(第1実施形態)
図1は、本発明の一実施形態における画像処理システム100の一構成例を示す図である。この画像処理システム100は、第1の画像処理装置1と、第2の画像処理装置2とが、LAN(Local Area Network)などのネットワーク3を介して相互に通信を行うことができる構成である。画像処理装置1,2は、例えばMPFによって構成され、スキャン機能やプリント機能、コピー機能、FAX機能などの複数の機能を備えており、ユーザーによって指定された機能に関するジョブを実行することができる。尚、図1では、2つの画像処理装置1,2がネットワーク3に接続されている場合を例示しているが、画像処理装置の数はこれに限られず、3つ以上であっても構わない。また、ネットワーク3には、画像処理装置1,2の他、例えばパーソナルコンピュータやタブレット端末などの情報処理装置が接続されていても良いし、また各種サーバーなどが接続されていても良い。
図2は、第1の画像処理装置1のハードウェア構成の一例を示すブロック図である。画像処理装置1は、制御部10と、記憶装置11と、操作パネル12と、通信インタフェース13と、スキャナ部14と、プリンタ部15と、FAX部16とを備える。制御部10は、CPU10aとメモリ10bとを有し、各部の動作を制御する。記憶装置11は、ハードディスドライブ(HDD)などで構成される不揮発性の記憶手段(第1の記憶手段)である。この記憶装置11は、画像処理装置1にインストールされたプログラム17を記憶するプログラム領域11aと、スキャン機能、プリント機能、コピー機能及びFAX機能の各機能を利用するための情報やデータを記憶する機能データ領域11bとを有している。操作パネル12は、ユーザーが画像処理装置1を利用する際のユーザーインタフェースとして機能するものである。操作パネル12は、ユーザーが操作可能な各種の操作画面を表示する表示部12aと、ユーザーによる操作を受け付ける操作部12bとを有している。例えば、表示部12aはカラー液晶ディスプレイで構成され、操作部12bは表示部12aの画面上に設けられるタッチパネルセンサーによって構成される。通信インタフェース13は、画像処理装置1をネットワーク3に接続するためのものである。スキャナ部14は、スキャン機能やコピー機能、FAX送信機能が利用される際に動作し、ユーザーによってセットされる原稿を光学的に読み取って画像データを生成する。プリンタ部15は、プリント機能やコピー機能、FAX受信機能が利用される際に動作し、印刷対象となる画像データに基づいて印刷用紙などの印刷媒体に画像形成を行って出力する。FAX部16は、FAX送信機能及びFAX受信機能が利用される際に動作し、図示を省略する公衆電話網などを介してFAXデータの送受信を行う。
図3は、第2の画像処理装置2のハードウェア構成の一例を示すブロック図である。画像処理装置2は、上述した画像処理装置1と同様の構成を有している。すなわち、画像処理装置2は、制御部20と、記憶装置21と、操作パネル22と、通信インタフェース23と、スキャナ部24と、プリンタ部25と、FAX部26とを備えている。制御部20は、CPU20aとメモリ20bとを有し、各部の動作を制御する。記憶装置21は、ハードディスドライブ(HDD)などで構成される不揮発性の記憶手段(第2の記憶手段)である。この記憶装置21は、記憶装置11と同様に、画像処理装置2にインストールされたプログラム27を記憶するプログラム領域21aと、スキャン機能、プリント機能、コピー機能及びFAX機能の各機能を利用するための情報やデータを記憶する機能データ領域21bとを有している。操作パネル22は、ユーザーが画像処理装置2を利用する際のユーザーインタフェースとして機能するものであり、ユーザーが操作可能な各種の操作画面を表示する表示部22aと、ユーザーによる操作を受け付ける操作部22bとを有している。通信インタフェース23は、画像処理装置2をネットワーク3に接続するためのものである。そしてスキャナ部24、プリンタ部25及びFAX部26は、画像処理装置1のスキャナ部14、プリンタ部15及びFAX部16と同様のものである。
上記のように構成される画像処理装置1,2のそれぞれには、スキャン機能、プリント機能、コピー機能、FAX機能などの各機能を利用するためのアプリケーションをインストールすることが可能である。また各画像処理装置1,2には、複数のアプリケーションがインストールされることもある。このようなアプリケーションは、各画像処理装置1,2の内部システムに実装されるAPIを利用することにより、スキャン機能、プリント機能、コピー機能、FAX機能などのジョブを設定するために必要な情報を取得したり、各画像処理装置1,2にジョブを投入したりすることができるように構成される。そして本実施形態の画像処理システム100は、各画像処理装置1,2にインストールされるアプリケーションを他の画像処理装置2,1にバックアップしておき、各画像処理装置1,2が故障などによって稼働停止したときには、他の画像処理装置2,1にバックアップとして保存しておいたアプリケーションを起動させることにより、稼働が停止した期間中であってもユーザーがアプリケーションを利用できるようにする。以下、このような画像処理システム100の詳細について詳しく説明する。尚、以下の説明においては、説明を簡単にするため、第1の画像処理装置1にインストールされているアプリケーションを、第2の画像処理装置2にバックアップとして保存する場合を例示する。
まず第1の画像処理装置1について説明する。図4は、第1の画像処理装置1の機能構成を示すブロック図である。制御部10のCPU10aは、プログラム領域11aに記憶されている各種のプログラム17を実行することにより、図4に示すように、制御部10を、ジョブ制御部30、アプリケーション40及びバックアップ実行部50として機能させる。ジョブ制御部30は、画像処理装置1におけるジョブの実行を制御するものであり、画像処理装置1の基本ソフトウェアによりに構成されるオペレーティングシステム(以下、単に「OS」という。)31と、そのOS31上で動作するインターナルウェブサーバー(以下、単に「IWS」という。)34とにより構成される。
OS31は、プログラム領域11aに記憶されている各種プログラム17のうち、OSプログラムがCPU10aによって実行されることによって機能する。このOS31は、画像処理装置1のハードウェア資源を制御する処理部であり、記憶装置11、スキャナ部14,プリンタ部15及びFAX部16を制御するためのAPI32を有している。API32は、OS31を介して記憶装置11、スキャナ部14,プリンタ部15及びFAX部16を制御するためのインタフェースである。このAPI32には、複数のコマンドが登録されたコマンドライブラリ33が実装されている。そしてOS31は、IWS34などの外部からのコマンドを受信すると、コマンドライブラリ33を参照することにより、その受信コマンドに定義されている処理を実行する。したがって、OS31は、IWS34などの外部から受信するコマンドに応じて、記憶装置11、スキャナ部14,プリンタ部15及びFAX部16のそれぞれを制御するように構成される。
IWS34は、プログラム領域11aに記憶されている各種プログラム17のうち、IWSプログラムがCPU10aによって実行されることによって機能する。IWS34は、OS31を介して記憶装置11、スキャナ部14,プリンタ部15及びFAX部16を制御するものであり、アプリケーション40とOS31とのデータ通信を中継する処理部である。このIWS34もまた、記憶装置11、スキャナ部14,プリンタ部15及びFAX部16を制御するためのAPI35を有している。API35は、IWS34を介して記憶装置11、スキャナ部14,プリンタ部15及びFAX部16を制御するためのインタフェースである。このAPI35には、複数のコマンドが登録されたコマンドライブラリ36が実装されている。そしてIWS34は、アプリケーション40などの外部からのコマンドを受信すると、コマンドライブラリ36を参照することにより、その受信コマンドに定義されている処理を実行する。すなわち、IWS34は、アプリケーション40から受信するコマンドに応じて、記憶装置11、スキャナ部14,プリンタ部15及びFAX部16のそれぞれを制御するためにOS31のAPI32に適合したコマンドを生成し、そのコマンドをOS31へ出力するように構成される。
アプリケーション40は、プログラム領域11aに記憶されている各種プログラム17のうち、アプリケーションプログラムがCPU10aによって実行されることによって機能する。アプリケーション40は、画像処理装置1におけるスキャン機能、プリント機能、コピー機能及びFAX機能のうちの少なくとも1つの機能を利用するためのアプリケーションであり、IWS34のAPI35を利用するコマンドをIWS34へ出力することにより、ジョブ制御部30を介して記憶装置11、スキャナ部14,プリンタ部15及びFAX部16のそれぞれを制御することができるように構成される。
このように本実施形態の画像処理装置1は、アプリケーション40がOS31に対して直接コマンドを出力するのではなく、IWS34に対してコマンドを出力することにより、記憶装置11、スキャナ部14,プリンタ部15及びFAX部16のそれぞれを間接的に制御することができる構成である。このような構成とする理由のひとつは、セキュリティの向上である。例えば、OS31のAPI32に実装されているコマンドライブラリ33には、スキャナ部14やプリンタ部15のハードウェア設定などを書き換えるための重要なコマンドなども登録されているため、そのような重要なコマンドがアプリケーション40から直接OS31に出力されてしまうと、ハードウェア設定などがアプリケーション40によって勝手に書き換えられてしまうという問題がある。特に、アプリケーション40がサードベンダーによって提供される場合には、悪意あるアプリケーションが作成されることもあるため、アプリケーション40がOS31に対して直接コマンドを出力することは好ましくない。そこで、本実施形態では、アプリケーション40とOS31とのデータ通信をIWS34が中継することにより、アプリケーション40からOS31に対してハードウェア設定などを書き換える重要なコマンドが出力されてしまうことを防止し、セキュリティを向上させるようにしているのである。
アプリケーション40は、操作パネル12に対して操作パネル12の表示部12aに対して画像処理装置1の機能を利用するための操作画面を表示したり、操作パネル12の操作部12bに対するユーザーによる操作を受け付けたりすることにより、ジョブ制御部30を介して画像処理装置1の機能を制御する。またアプリケーション40は、通信インタフェース13を介してネットワーク3に接続されている情報処理端末と通信を行い、情報処理端末に対して操作画面を表示させたり、情報処理端末から出力される操作情報を受信したりすることも可能であり、情報処理端末からの遠隔操作によって画像処理装置1の機能を制御することもできる。
このようなアプリケーション40は、操作検知部41と、機能制御部42と、表示制御部43とを有している。操作検知部41は、ユーザーによる操作を検知する処理部である。操作検知部41がユーザーによる操作を検知すると、その操作情報を機能制御部42へ出力する。機能制御部42は、ジョブ制御部30のIWS34と通信を行うことにより、画像処理装置1の機能を制御するものである。この機能制御部42は、IWS34に対してAPI35を利用するためのコマンドを出力するコマンド出力部42aを有している。そしてコマンド出力部42aは、IWS34に対してAPI35のコマンドライブラリ36に登録されている複数種類のコマンドを出力することにより、ジョブ制御部30を介して画像処理装置1の機能を利用する。表示制御部43は、機能制御部42によってジョブ制御部30から取得される情報に基づき、ユーザーが操作するための操作画面を生成し、その操作画面を表示部12aなどに表示させる処理を行う。
例えば、アプリケーション40がFAX機能を利用するアプリケーションである場合、アプリケーション40は、起動時に機能制御部42を機能させ、画像処理装置1に予め登録されているFAX宛先に関する登録情報18をジョブ制御部30から取得する。このとき、コマンド出力部42aは、記憶装置11の機能データ領域11bに記憶されている複数の登録情報18のうちの、FAX宛先に関する登録情報18を要求する登録情報要求コマンドをIWS34へ出力する。これにより、IWS34は、OS31に対してFAX宛先に関する登録情報18を要求するAPIコマンドを出力し、OS31からFAX宛先に関する登録情報18を取得してアプリケーション40へ出力する。このようにしてアプリケーション40は、FAX宛先に関する登録情報18を取得すると、表示制御部43を機能させ、ユーザーがFAX送信宛先の選択操作を行うことが可能な操作画面を生成し、その操作画面を表示部12aなどに表示させる。そしてアプリケーション40は、操作画面に対するユーザーの操作に基づいてジョブの設定を行う。その後、ユーザーによってFAXの送信開始が指示されると、アプリケーション40は、機能制御部42のコマンド出力部42aを機能させ、ユーザーによって選択されたFAX送信宛先に対してFAXの送信を指示するコマンドをIWS34へ出力する。これにより、ジョブ制御部30は、アプリケーション40から指定されたジョブの実行を制御する。
このようにアプリケーション40は、IWS34のコマンドライブラリ36に登録されている複数種類のコマンドをIWS34に対して適宜出力することにより、画像処理装置1の機能を制御する。特に、アプリケーション40は、複数種類のコマンドのうち、記憶装置11の機能データ領域11bに記憶されている登録情報18を要求する登録情報要求コマンドをIWS34へ出力することによりIWS34を介して登録情報18を取得し、その登録情報18に基づいてジョブの設定を行うことができるようになっている。
バックアップ実行部50は、プログラム領域11aに記憶されている各種プログラム17のうち、バックアッププログラムがCPU10aによって実行されることによって機能する。バックアップ実行部50は、上記のようなアプリケーション40を第2の画像処理装置2にバックアップとして保存する処理を行う処理部である。このバックアップ実行部50は、画像処理装置1が正常に稼働している状態のときに制御部10に常駐し、所定時間間隔で定期的にバックアップ処理を行う。バックアップ実行部50は、バックアップ処理を開始すると、プログラム領域11aからアプリケーション40に関するプログラムデータを取得すると共に、機能データ領域11bからアプリケーション40が利用する登録情報18を取得する。このとき、バックアップ実行部50は、IWS34に対してコマンドを出力することにより、IWS34を介してプログラムデータや登録情報18を取得するようにしても良い。ただし、これに限らず、バックアップ実行部50は、OS31に対して直接コマンドを出力することにより、OS31からプログラムデータや登録情報18を取得するようにしても良い。そしてバックアップ実行部50は、アプリケーション40のプログラムデータと、アプリケーション40が利用する登録情報18とを組み合わせたバックアップデータを生成し、そのバックアップデータを第2の画像処理装置2へ送信する。
次に第2の画像処理装置2について説明する。図5は、第2の画像処理装置2の機能構成を示すブロック図である。制御部20のCPU20aは、プログラム領域21aに記憶されている各種のプログラム27を実行することにより、図5に示すように、制御部20を、ジョブ制御部60、アプリケーション70及びバックアップ管理部80として機能させる。ジョブ制御部60は、画像処理装置2におけるジョブの実行を制御するものであり、第1の画像処理装置1と同様に、OS61と、IWS64とにより構成される。
OS61は、プログラム領域21aに記憶されている各種プログラム27のうち、OSプログラムがCPU20aによって実行されることによって機能する。このOS61は、画像処理装置2のハードウェア資源を制御する処理部であり、第1の画像処理装置1におけるOS31と同様、記憶装置21、スキャナ部24,プリンタ部25及びFAX部26を制御するためのAPI62を有している。そしてAPI62には、複数のコマンドが登録されたコマンドライブラリ63が実装されている。このコマンドライブラリ63に登録されるコマンドは、第1の画像処理装置1におけるコマンドライブラリ33に登録されるコマンドと同じである。
IWS64は、プログラム領域21aに記憶されている各種プログラム27のうち、IWSプログラムがCPU20aによって実行されることによって機能する。IWS64は、OS61を介して記憶装置21、スキャナ部24,プリンタ部25及びFAX部26を制御するものであり、アプリケーション70とOS61とのデータ通信を中継する。このIWS64もまた、第1の画像処理装置1のIWS34と同様、記憶装置21、スキャナ部24,プリンタ部25及びFAX部26を制御するためのAPI65を有している。そしてAPI65には、複数のコマンドが登録されたコマンドライブラリ66が実装されている。このコマンドライブラリ66に登録されるコマンドは、第1の画像処理装置1におけるコマンドライブラリ36に登録されるコマンドと同じである。
アプリケーション70は、プログラム領域21aに記憶されている各種プログラム27のうち、アプリケーションプログラムがCPU20aによって実行されることによって機能する。アプリケーション70は、画像処理装置2におけるスキャン機能、プリント機能、コピー機能及びFAX機能のうちの少なくとも1つの機能を利用するためのアプリケーションであり、IWS64のAPI65を利用するコマンドをIWS64へ出力することにより、ジョブ制御部60を介して記憶装置21、スキャナ部24,プリンタ部25及びFAX部26のそれぞれを制御することができるように構成される。
このアプリケーション70は、操作検知部71と、機能制御部72と、表示制御部73とを備えており、ジョブ制御部60を介して画像処理装置2の機能を利用するように構成される。このアプリケーション70がジョブ制御部30を介して画像処理装置2の機能を利用する態様は、第1の画像処理装置1と同様である。すなわち、機能制御部72は、コマンド出力部72aを備えており、コマンド出力部72aがIWS64に対してAPI65を利用するコマンドを出力することにより、ジョブ制御部60を介して画像処理装置2の機能を利用するように構成される。そしてアプリケーション70もまた、第1の画像処理装置1のアプリケーション40と同様に、IWS64のコマンドライブラリ66に登録されている複数種類のコマンドのうち、記憶装置21の機能データ領域21bに記憶されている登録情報28を要求する登録情報要求コマンドをIWS64へ出力することによりIWS64を介して登録情報28を取得し、その登録情報28に基づいてジョブの設定を行うことができるようになっている。
バックアップ管理部80は、プログラム領域21aに記憶されている各種プログラム27のうち、バックアッププログラムがCPU20aによって実行されることによって機能する。バックアップ管理部80は、第1の画像処理装置1から送信されるバックアップデータを画像処理装置2にバックアップとして保存して管理する処理部である。このバックアップ管理部80は、画像処理装置2が正常に稼働している状態のときに制御部20に常駐し、第1の画像処理装置1からバックアップデータを受信することに伴ってバックアップ処理を行う。バックアップ管理部80は、画像処理装置1からバックアップデータを受信すると、そのバックアップデータに含まれるアプリケーション40のプログラムデータと登録情報18とを記憶装置21へ保存する。
図6は、第1の画像処理装置1のアプリケーション40をバックアップとして第2の画像処理装置で保存するまでの動作プロセスの一例を示す図である。図6に示すように、この動作プロセスは、第1の画像処理装置1においてバックアップ処理が開始されることにより進行する。画像処理装置1は、バックアップ開始タイミングになると、バックアップ実行部50を機能させ、バックアップ処理を開始する(プロセスP10)。そして画像処理装置1は、アプリケーション40のプログラムデータを読み出すと共に(プロセスP11)、アプリケーション40が利用する登録情報18を読み出す(プロセスP12)。そして画像処理装置1は、アプリケーション40のプログラムデータに記述されているコマンドを解析し、IWS34に対して登録情報18を要求する登録情報要求コマンドを別のコマンドに書き換える(プロセスP13)。例えば、画像処理装置1は、記憶装置11の機能データ領域11bに記憶されている登録情報18を要求する登録情報要求コマンドを、第2の画像処理装置2において登録情報18が保存される記憶領域から登録情報18を要求するコマンドに書き換える。これにより、アプリケーション40のプログラムデータに記述されている登録情報要求コマンドは、機能データ領域11bに記憶されている登録情報18を要求するコマンドではなくなり、別の記憶領域から登録情報18を取得するコマンドに書き換えることになる。ただし、画像処理装置1は、プログラムデータに含まれる登録情報要求コマンド以外のコマンドを書き換えないようにする。そして画像処理装置1は、登録情報要求コマンドを別のコマンドに書き換えたプログラムデータPDと、登録情報18とを含むバックアップデータD1を生成し(プロセスP14)、そのバックアップデータD1を第2の画像処理装置2へ送信する(プロセスP15)。
第2の画像処理装置2は、第1の画像処理装置1からバックアップデータD1を受信すると、バックアップ管理部80による処理を開始させる。すなわち、画像処理装置2は、バックアップデータD1に含まれるプログラムデータPDを記憶装置21へ保存すると共に(プロセスP16)、バックアップデータD1に含まれる登録情報18を記憶装置21へ保存する(プロセスP17)。このとき、画像処理装置2は、アプリケーション40のプログラムデータPDをインストールせず、単なるデータとして記憶装置21へ保存する。したがって、アプリケーション40のプログラムデータPDは、記憶装置21のプログラム領域21aには保存されず、プログラム領域21aとは異なる領域に保存された状態となり、画像処理装置2においてアプリケーション40を起動させることができない状態で保存される。また画像処理装置2は、登録情報18を保存するとき、登録情報18を機能データ領域21bには保存せず、機能データ領域21bとは異なる他の領域に保存する。これにより、機能データ領域21bに予め保存されている登録情報28が、第1の画像処理装置1の登録情報18によって上書きされてしまったり、登録情報18とマージされてしまったりすることを防止することができる。それ故、例えば第1の画像処理装置1がある部署で使用されており、第2の画像処理装置2が他の部署で使用されているような場合であって、第1の画像処理装置1に登録されている登録情報18と、第2の画像処理装置2に登録されている登録情報28とが全く異なる情報である場合に、上書きやマージによる不都合を解消することができ、登録情報18と登録情報28とを区別して管理することができるようになる。このようにして第2の画像処理装置2は、第1の画像処理装置1から送信されるバックアップデータD1を記憶装置21に保存して管理する。
上述した動作プロセスでは、第1の画像処理装置1において登録情報要求コマンドを書き換える場合について説明した。しかし、登録情報要求コマンドの書き換えは、第2の画像処理装置2において行うようにしても良い。図7は、第2の画像処理装置2において登録情報要求コマンドの書き換えを行う場合の動作プロセスを示す図である。この動作プロセスでは、第1の画像処理装置1においてバックアップ処理が開始されると(プロセスP10)、画像処理装置1においてアプリケーション40のプログラムデータが読み出され(プロセスP11)、更にアプリケーション40が利用する登録情報18が読み出される(プロセスP12)。そして画像処理装置1は、アプリケーション40のプログラムデータをそのまま含むバックアップデータD1を生成し(プロセスP14)、そのバックアップデータD1を第2の画像処理装置2へ送信する。
第2の画像処理装置2は、第1の画像処理装置1からバックアップデータD1を受信すると、まずバックアップデータD1からアプリケーション40のプログラムデータを抽出し、プログラムデータに記述されているコマンドを解析する。そして画像処理装置2は、IWS64に対して登録情報28を要求する登録情報要求コマンドを別のコマンドに書き換える(プロセスP18)。例えば、画像処理装置2は、記憶装置21の機能データ領域21bに記憶されている登録情報28を要求する登録情報要求コマンドを、第2の画像処理装置2において登録情報18が保存される記憶領域から登録情報18を要求するコマンドに書き換える。これにより、アプリケーション40のプログラムデータに記述されている登録情報要求コマンドは、機能データ領域21bに記憶されている登録情報28を要求するコマンドではなくなり、別の記憶領域から登録情報18を取得するコマンドに書き換えることになる。ただし、画像処理装置2は、プログラムデータに含まれる登録情報要求コマンド以外のコマンドを書き換えないようにする。そして画像処理装置2は、登録情報要求コマンドを別のコマンドに書き換えたプログラムデータPDを、記憶装置21へ保存する(プロセスP16)。このとき、画像処理装置2は、アプリケーション40のプログラムデータPDをインストールせず、単なるデータとして記憶装置21へ保存する。したがって、アプリケーション40のプログラムデータPDは、記憶装置21のプログラム領域21aには保存されず、プログラム領域21aとは異なる領域に保存された状態となり、画像処理装置2においてアプリケーション40を起動させることができない状態で保存される。また画像処理装置2は、バックアップデータD1に含まれる登録情報18を記憶装置21へ保存する(プロセスP17)。このとき、画像処理装置2は、登録情報18を機能データ領域21bには保存せず、機能データ領域21bとは異なる他の領域に保存する。これにより、機能データ領域21bに予め保存されている登録情報28が、第1の画像処理装置1の登録情報18によって上書きされてしまったり、登録情報18とマージされてしまったりすることを防止することができる。
次に上記のような動作プロセスを実現するバックアップ実行部50及びバックアップ管理部80の詳細な機能構成について説明する。図8は、画像処理装置1のバックアップ実行部50と画像処理装置2のバックアップ管理部80の機能構成の一例を示すブロック図である。まず画像処理装置1のバックアップ実行部50は、プログラムデータ読出部51と、コマンド書換部52と、登録情報読出部53と、バックアップデータ生成部54と、バックアップデータ送信部55とを有している。また画像処理装置2のバックアップ管理部80は、バックアップデータ取得部81と、コマンド書換部82と、プログラムデータ保存部83と、登録情報保存部84と、稼働状態検知部85と、アプリケーション制御部86とを有している。
バックアップ実行部50のプログラムデータ読出部51は、記憶装置11のプログラム領域11aからアプリケーション40のプログラムデータPDを読み出す処理部である。コマンド書換部52は、プログラムデータ読出部51によって読み出されたプログラムデータPDに記述されているコマンドを解析し、プログラムデータPDに含まれる登録情報要求コマンドを別のコマンドに書き換える処理部である。尚、第2の画像処理装置2において登録情報要求コマンドの書き換えが行われる場合には、バックアップ実行部50にコマンド書換部52を設けなくても良い。登録情報読出部53は、記憶装置11の機能データ領域11bからアプリケーション40が利用する登録情報18を読み出す処理部である。バックアップデータ生成部54は、プログラムデータPDと登録情報18とを含むバックアップデータD1を生成する処理部である。このとき、バックアップデータ生成部54は、登録情報18の保存すべき記憶領域を指定する記憶領域指定情報を含むバックアップデータD1を生成するようにしても良い。そしてバックアップデータ送信部55は、バックアップデータ生成部54によって生成されるバックアップデータD1を、通信インタフェース13から第2の画像処理装置2へ送信する処理部である。
一方、バックアップ管理部80のバックアップデータ取得部81は、通信インタフェース23を介して第1の画像処理装置1から送信されるバックアップデータD1を取得する処理部である。コマンド書換部82は、バックアップデータ取得部81によって取得されるバックアップデータD1からプログラムデータPDを抽出し、そのプログラムデータPDに記述されているコマンドを解析し、プログラムデータPDに含まれる登録情報要求コマンドを別のコマンドに書き換える処理部である。尚、第1の画像処理装置1において登録情報要求コマンドの書き換えが行われる場合には、バックアップ管理部80にコマンド書換部82を設けなくても良い。プログラムデータ保存部83は、登録情報要求コマンドが別のコマンドに書き換えられたプログラムデータPDを取得し、そのプログラムデータPDを記憶装置21のプログラム領域21aとは異なる領域へ保存する処理部である。登録情報保存部84は、バックアップデータD1に含まれる登録情報18を、機能データ領域21bとは異なる領域へ保存する処理部である。バックアップデータD1に記憶領域指定情報が含まれている場合、登録情報保存部84は、機能データ領域21bとは異なる記憶領域であって、第1の画像処理装置1から指定された記憶領域に登録情報18を保存する。
上記のようにして画像処理装置2の記憶装置21にアプリケーション40のプログラムデータPDと、登録情報18とが保存された状態になると、バックアップ管理部80において稼働状態検知部85が動作するようになる。稼働状態検知部85は、画像処理装置1の稼働状態の変化を検知する処理部であり、画像処理装置1に何らかの故障などが発生して稼働停止状態になると、それを検知する。そして稼働状態検知部85は、アプリケーション制御部86を機能させる。
アプリケーション制御部86は、プログラム領域21aとは異なる領域に保存されたプログラムデータPDを読み出し、そのプログラムデータPDをインストールしてプログラム領域21aに保存する処理部である。これにより、画像処理装置2においてアプリケーション40を起動させることができるようになる。したがって、第1の画像処理装置1が何らかの原因で使用できない状態となったときには、第1の画像処理装置1のユーザーは、第2の画像処理装置2でアプリケーション40を起動させることにより、第1の画像処理装置1が正常稼働していているときと同じアプリケーション40を一時的に利用することができるようになる。
図9は、第2の画像処理装置2においてアプリケーション40がインストールされるまでの動作プロセスを示す図である。上述したように画像処理装置1のバックアップ実行部50は、定期的にバックアップ処理を行う。すなわち、画像処理装置1は、最初のバックアップ開始タイミングになると、バックアップデータD1を生成し、そのバックアップデータD1を画像処理装置2へ送信する(プロセスP20)。画像処理装置2は、画像処理装置1からバックアップデータD1を受信すると、登録情報18などを記憶装置21へ保存する(プロセスP21)。
また画像処理装置1は、次のバックアップ開始タイミングになると、再びバックアップデータD1を生成し、そのバックアップデータD1を画像処理装置2へ送信する(プロセスP22)。このとき、画像処理装置1は、前回送信したバックアップデータD1と同じデータの再送を省略し、前回のバックアップデータD1との差分データのみからなるバックアップデータD1を生成して送信するようにしても良い。これにより、2回目以降のバックアップデータD1の送信時にはデータ量を削減できるため、効率的なデータ送信を行うことができる。そして画像処理装置2は、画像処理装置1からバックアップデータD1を再び受信すると、登録情報18を記憶装置21へ保存する(プロセスP23)。このとき、バックアップデータD1が差分データのみで構成される場合、画像処理装置2は、記憶装置21に既に保存している登録情報18に対して差分データを追加することにより、登録情報18を更新する。
上記のように第1の画像処理装置1から第2の画像処理装置2に対して定期的にバックアップデータD1が送信される場合、稼働状態検知部85は、第1の画像処理装置1からのバックアップデータD1を定期的に受信していれば、第1の画像処理装置1が正常に稼働していると判断することができる。これに対し、第1の画像処理装置1が故障などによって稼働停止した場合(プロセスP24)、第1の画像処理装置1からのバックアップデータD1の送信が途絶えることにある。そのため、稼働状態検知部85は、第1の画像処理装置1からのバックアップデータD1が所定時間以上経過しても受信されないとき、第1の画像処理装置1が稼働停止したと判断する(プロセスP25)。そしてアプリケーション制御部86が機能し、アプリケーション40のプログラムデータPDをインストールしてアプリケーション40を起動可能な状態とする(プロセスP26)。このとき、アプリケーション制御部86は、プログラムデータPDにおいて書き換えられたコマンドに対応する処理を定義した情報を、IWS64におけるAPI65のコマンドライブラリ66に追加するようにしても良い。これにより、第2の画像処理装置2においてアプリケーション40を起動させることができるようになる。
尚、稼働状態検知部85は、上記のような検知方法の他にも、例えば第1の画像処理装置1に対して定期的に信号を送信し、第1の画像処理装置1からの応答の有無によって正常稼働しているか否かを検知するようにしても良い。
図10は、第2の画像処理装置2においてアプリケーション40が起動した状態を示すブロック図である。画像処理装置2においてアプリケーション40が起動すると、アプリケーション40は、登録情報18を取得するために書き換えられたコマンドをIWS64へ出力する。IWS64のAPI65には、アプリケーション40から出力されるコマンドに対応する処理を定義した情報がコマンドライブラリ66に登録されている。そのため、IWS64は、OS61に対して登録情報18を要求するコマンドを出力する。OS61は、IWS64からのコマンドに基づき、機能データ領域21bとは異なる領域に保存されている登録情報18を読み出してIWS64へ出力する。IWS64は、OS61から登録情報18を取得すると、その登録情報18をアプリケーション40へ出力する。したがって、アプリケーション40は、ジョブ制御部60を介して機能データ領域21bとは異なる領域に保存されている登録情報18を取得し、その登録情報18に基づいてユーザーによる操作を反映させたジョブを設定することができる。
これに対し、画像処理装置2に対してはじめからインストールされているアプリケーション70は、IWS64に対して登録情報要求コマンドを出力すると、機能データ領域21bに保存されている登録情報28を取得することができ、その登録情報28に基づいてユーザーによる操作を反映させたジョブを設定することができる。
つまり、アプリケーション70は、機能データ領域21bの登録情報28を取得するためのAPI65のインタフェース65aにアクセスするのに対し、アプリケーション40は、機能データ領域21bとは異なる領域に記憶された登録情報18を取得するためのAPI65のインタフェース65bにアクセスするのである。その結果、アプリケーション70とアプリケーション40とが仮にFAX機能などの同じ機能を利用するものであっても、各アプリケーション70,40は、それぞれ異なる登録情報28,18を取得してユーザーが操作可能な操作画面を表示部22aなどに表示させることができる。それ故、第1の画像処理装置1のユーザーが、第2の画像処理装置2において一時的に利用可能となったアプリケーション40を起動させたときには、第1の画像処理装置1に予め登録されていたFAX宛先などを一覧表示させてFAX送信宛先を選択することができる。また第2の画像処理装置2のユーザーがアプリケーション70を起動させたときには、第2の画像処理装置2に予め登録されているFAX宛先などを一覧表示させてFAX送信宛先を選択することができる。
また稼働状態検知部85は、第1の画像処理装置1が再稼働を開始したときには、アプリケーション制御部86を再び機能させる。そしてアプリケーション制御部86は、画像処理装置2において利用可能な状態であるアプリケーション40をアンインストールし、アプリケーション40を起動できない状態に戻す。すなわち、第1の画像処理装置1のユーザーは再稼働した第1の画像処理装置1を使用してアプリケーション40を利用できるため、第2の画像処理装置2は、アプリケーション40を元の起動できない状態に戻すのである。ただし、第2の画像処理装置2は、アプリケーション40のプログラムデータPDをバックアップとして保存している状態には変わりはない。そのため、第1の画像処理装置1が再び稼働停止したときには、第2の画像処理装置2においてアプリケーション40が再び起動可能な状態となる。
図11は、第2の画像処理装置2がアプリケーション40をアンインストールするまでの動作プロセスを示す図である。第1の画像処理装置1は、再稼働を開始すると(プロセスP30)、バックアップデータD1を第2の画像処理装置2へ送信可能な状態に戻る。そのため、画像処理装置1は、バックアップ開始タイミングになると、バックアップデータD1を生成し、画像処理装置2へ送信する(プロセスP31)。
画像処理装置2は、画像処理装置1からバックアップデータD1を受信すると、登録情報18を記憶装置21へ保存する(プロセスP32)。また画像処理装置2は、画像処理装置1からバックアップデータD1を受信したことに伴い、画像処理装置1が再稼働を開始したことを検知する(プロセスP33)。画像処理装置1の再稼働が検知されると、バックアップ管理部80は、画像処理装置2においてアプリケーション40が一時的に利用可能となっている期間中に、登録情報18が更新されたか否かを判定する(プロセスP34)。例えば、画像処理装置2においてアプリケーション40が一時的に利用可能となっている状態のときに、第1の画像処理装置1のユーザーがアプリケーション40を起動し、登録情報18に対して新たなFAX宛先などが追加登録されることがある。そのような追加情報は、第1の画像処理装置1には登録されていないため、第1の画像処理装置1の再稼働が開始された後に、第2の画像処理装置2から第1の画像処理装置1へ追加された更新情報を送信することが好ましい。そこでバックアップ管理部80は、アプリケーション40が一時的に利用可能となっている期間中に、登録情報18が更新されていれば、登録情報18の更新情報D2を生成し(プロセスP35)、その更新情報D2を第1の画像処理装置1へ送信する(プロセスP36)。これにより、第1の画像処理装置1は、稼働停止している期間中に、第2の画像処理装置2において登録情報18に追加された情報を取得することができる。そして第1の画像処理装置1は、更新情報D2に基づいて登録情報18を更新する(プロセスP37)。また第2の画像処理装置2は、一時的に利用可能な状態としていたアプリケーション40をアンインストールし、第2の画像処理装置2においてアプリケーション40を利用できないようにする(プロセスP38)。
画像処理装置2は、上述のように画像処理装置1からバックアップデータD1を受信することにより、画像処理装置1の再稼働を検知することが可能である。ただし、この他にも、例えば画像処理装置2は、画像処理装置1に対して定期的に信号を送信し、画像処理装置1からの応答を受信することによって画像処理装置1の再稼働を検知するようにしても良い。また画像処理装置1が再稼働を開始したときに画像処理装置2へ復帰信号を送信し、画像処理装置2は、その復帰信号を受信することにより、画像処理装置1の再稼働を検知するようにしても良い。
このように本実施形態の画像処理システム100は、第1の画像処理装置1のアプリケーション40を第2の画像処理装置2にバックアップとして保存するとき、第1及び第2の画像処理装置1,2のいずれか一方においてアプリケーション40に含まれる登録情報要求コマンドを別のコマンドに書き換えるため、第2の画像処理装置2の登録情報28が記憶されている機能データ領域21bとは異なる領域に、アプリケーション40が利用する登録情報18を保存して管理することができると共に、第2の画像処理装置2においてアプリケーション40が起動したときにはアプリケーション40から出力されるコマンドに基づいて登録情報18を適切に読み出すことができるようになる。それ故、第1の画像処理装置1にインストールされているアプリケーション40を第2の画像処理装置2にバックアップするとき、第2の画像処理装置2に固有の登録情報28が上書きされてしまったり、第2の画像処理装置2に固有の登録情報28に第1の画像処理装置1の登録情報18がマージされてしまったりすることがない。そして更に、第2の画像処理装置2においてバックアップされたアプリケーション40を有効に利用することもできるようになる。
次に第1の画像処理装置1において行われる処理手順について説明する。図12は、第1の画像処理装置1で行われる処理手順の一例を示すフローチャートである。このフローチャートは、上述したバックアップ実行部50によって行われる処理手順を示している。バックアップ実行部50は、この処理を開始すると、バックアップ処理の実行タイミングとなったか否かを判断する(ステップS10)。バックアップ処理の実行タイミングである場合(ステップS10でYES)、バックアップ実行部50は、アプリケーション40のプログラムデータPDを既に第2の画像処理装置2に送信済みであるか否かを判断する(ステップS11)。その結果、未だプログラムデータPDを第2の画像処理装置2へ送信していない場合(ステップS11でNO)、バックアップ実行部50は、記憶装置11のプログラム領域11aからアプリケーション40のプログラムデータPDを読み出す(ステップS12)。バックアップ実行部50は、そのプログラムデータPDに記述されている複数種類のコマンドの全てを解析することにより、それら複数種類のコマンドのうちから登録情報要求コマンドを抽出する。これにより、プログラムデータPDの中から、IWS34を介して機能データ領域11bの登録情報18を呼び出す登録情報要求コマンドだけが抽出される。そしてバックアップ実行部50は、プログラムデータPDに記述されている登録情報要求コマンドを別のコマンドに書き換える(ステップS13)。尚、アプリケーション40のプログラムデータPDを既に第2の画像処理装置2へ送信済みである場合(ステップS11でYES)、ステップS12,S13の処理はスキップする。
続いてバックアップ実行部50は、バックアップ対象であるアプリケーション40が利用する登録情報18を読み出す(ステップS14)。そしてバックアップ実行部50は、既に第2の画像処理装置2に対して登録情報18を送信済みであれば、ステップS14で読み出した登録情報18と、前回送信した登録情報18との差分データを抽出する(ステップS15)。尚、第2の画像処理装置2に対して未だ登録情報18を送信していない場合には、ステップS15の処理はスキップしても良い。
そしてバックアップ実行部50は、バックアップデータD1を生成し(ステップS16)、そのバックアップデータD1を第2の画像処理装置2へ送信する(ステップS17)。このとき、2回目以降の送信であれば、登録情報18の差分データだけがバックアップデータD1として送信されるため、効率的にバックアップデータD1を送信することができる。
続いてバックアップ実行部50は、第2の画像処理装置2から更新情報を受信したか否かを判断する(ステップS18)。すなわち、第1の画像処理装置1が再稼働した直後であれば、第2の画像処理装置2から登録情報18の更新情報を受信することがある。そのため、バックアップ実行部50は、第2の画像処理装置2から更新情報を受信したか否かを定期的に判断するようにしている。その結果、更新情報を受信した場合(ステップS18でYES)、バックアップ実行部50は、その更新情報に基づいて機能データ領域11bに記憶している登録情報18を更新する(ステップS19)。尚、更新情報を受信していない場合にはステップS19の処理をスキップする。その後、バックアップ実行部50による処理は、ステップS10に戻り、上述した処理を繰り返す。
次に第2の画像処理装置2において行われる処理手順について説明する。図13は、第2の画像処理装置2で行われる処理手順の一例を示すフローチャートである。このフローチャートは、上述したバックアップ管理部80によって行われる処理手順を示している。バックアップ管理部80は、この処理を開始すると、第1の画像処理装置1からバックアップデータD1を受信したか否かを判断する(ステップS20)。第1の画像処理装置1からバックアップデータD1を受信している場合(ステップS20でYES)、バックアップ管理部80は、バックアップデータD1を保存する処理を行う。すなわち、バックアップ管理部80は、バックアップデータD1にアプリケーション40のプログラムデータPDが含まれていれば、そのプログラムデータPDを記憶装置21のプログラム領域21aとは異なる領域に保存する(ステップS21)。またバックアップ管理部80は、バックアップデータD1に含まれる登録情報18を記憶装置21の機能データ領域21bとは異なる領域に保存する(ステップS22)。尚、バックアップデータD1を受信していない場合(ステップS20でNO)、ステップS21,S22の処理はスキップする。
続いてバックアップ管理部80は、第1の画像処理装置1の稼働停止を検知したか否かを判断する(ステップS23)。第1の画像処理装置1の稼働停止を検知していない場合(ステップS23でNO)、バックアップ管理部80は、特別な処理を行わない。これに対し、第1の画像処理装置1の稼働停止を検知した場合(ステップS23でYES)、バックアップ管理部80は、記憶装置21にバックアップとして保存しているアプリケーション40のプログラムデータPDを読み出し、そのプログラムデータPDをインストールしてプログラム領域21aに保存することにより、アプリケーション40を起動可能な状態とする(ステップS24)。これにより、第1の画像処理装置1のユーザーは、第2の画像処理装置2でアプリケーション40を起動させてジョブを実行させることができるようになる。
次にバックアップ管理部80は、第1の画像処理装置1の再稼働開始を検知したか否かを判断する(ステップS25)。第1の画像処理装置1の再稼働開始を検知していない場合(ステップS25でNO)、バックアップ管理部80は、特別な処理を行わない。これに対し、第1の画像処理装置1の再稼働開始を検知した場合(ステップS25でYES)、バックアップ管理部80は、アプリケーション40のプログラムデータPDをプログラム領域21aからアンインストールし、第2の画像処理装置2においてアプリケーション40を起動できない状態に戻す。その後、バックアップ管理部80は、アプリケーション40の利用可能な期間中に、登録情報18が更新されたか否かを判断する(ステップS27)。その結果、登録情報18が更新されている場合(ステップS27でYES)、バックアップ管理部80は、アプリケーション40のインストール以降における登録情報18の更新情報を生成し(ステップS28)、その更新情報を第1の画像処理装置1へ送信する(ステップS29)。尚、登録情報18が更新されていない場合(ステップS27でNO)、ステップS28,S29の処理はスキップする。その後、バックアップ管理部80による処理は、ステップS20に戻り、上述した処理を繰り返す。
以上のように本実施形態の画像処理システム100は、ジョブを実行する機能を有する第1の画像処理装置1と、第1の画像処理装置1と同一の機能を有する第2の画像処理装置2とがネットワーク3を介して接続された構成である。そして第1の画像処理装置1は、アプリケーション40のプログラムデータPDと、アプリケーション40が利用する第1の登録情報18とを含むバックアップデータD1を生成し、そのバックアップデータD1を第2の画像処理装置2へ送信する構成である。また第2の画像処理装置2は、第1の画像処理装置1からバックアップデータD1を受信した場合に、そのバックアップデータD1に含まれるプログラムデータPDを記憶装置21へ保存すると共に、バックアップデータD1に含まれる第1の登録情報18を、記憶装置21における第2の登録情報28とは異なる記憶領域へ保存して管理する構成である。そして画像処理システム100は、第1の画像処理装置1及び第2の画像処理装置2のいずれか一方において、プログラムデータPDに記述されている複数種類のコマンドのうち、所定の記憶領域に記憶されている登録情報を要求する登録情報要求コマンドを、第2の登録情報28とは異なる記憶領域へ保存される第1の登録情報18を要求する別のコマンドに書き換えるようにしている。
このような構成を有する画像処理システム100によれば、第1の画像処理装置1にインストールされているアプリケーション40を第2の画像処理装置2にバックアップするとき、第2の画像処理装置2における登録情報28が上書きされてしまったり、登録情報28に登録情報18がマージされてしまったりすることがなく、しかも第2の画像処理装置2においてバックアップされたアプリケーション40を有効に利用することができるようになる。特に、第2の画像処理装置2においてアプリケーション40が起動されると、そのアプリケーション40は、第1の登録情報18だけを取得して操作画面などに第1の登録情報18を反映させることができる。そのため、第1の画像処理装置1のユーザーが、第2の画像処理装置2でアプリケーション40を起動させたときでも、第1の画像処理装置1で表示されるFAX宛先を選択する画面などと同じ画面を表示させることができる。したがって、ユーザーにとっては、第2の画像処理装置2でアプリケーション40を利用するときでも、使い慣れた操作画面でジョブの設定操作を行うことができるという利点がある。
(第2実施形態)
次に本発明の第2実施形態について説明する。例えば第1実施形態と同様の画像処理システム100において、第1の画像処理装置1のFAX部16が故障した場合でも、第1の画像処理装置1のスキャン機能やプリント機能、コピー機能などはユーザーが利用することが可能である。そのため、第1の画像処理装置1のFAX部16が故障した場合でも、第1の画像処理装置1の稼働を停止させずに、スキャン機能やプリント機能などの他の機能を利用できるように第1の画像処理装置1の稼働状態を継続させることがある。しかし、第1の画像処理装置1が稼働状態を継続させると、ユーザーにとっては、第1の画像処理装置1のFAX機能が使えないことを忘れてしまい、FAX部16が故障しているにもかかわらず、第1の画像処理装置1のFAX機能を利用しようとするケースが起こり得る。本実施形態では、そのようなケースであってもユーザーがFAX機能を利用できるようにした形態について説明する。尚、本実施形態においても、第1の画像処理装置1及び第2の画像処理装置2の構成は、第1実施形態で説明したものと同様である。
図14は、第2実施形態における第1及び第2の画像処理装置1,2の動作概念を示すブロック図である。まず図14(a)に示すように、第1の画像処理装置1は、バックアップ実行部50を備えている。そして本実施形態のバックアップ実行部50は、第1の画像処理装置1における一部の機能が利用不可能になったことを検知するように構成される。例えば、FAX部16が故障すると、バックアップ実行部50は、FAX機能が利用できなくなったことを検知する。バックアップ実行部50は、一部の機能が利用不可能になったことを検知すると、コマンド書換部52を動作させる。そしてコマンド書換部52は、アプリケーション40がIWS34に対して出力する複数種類のコマンドのうち、利用不可能となった機能を動作させるコマンドを、別のコマンドに書き換える。すなわち、コマンド書換部52は、第1の画像処理装置1の機能を利用するコマンドを、第2の画像処理装置2の機能を利用するコマンドに書き換えるのである。例えば第1の画像処理装置1のFAX部16が故障してFAX機能が利用できなくなったとき、コマンド書換部52は、アプリケーション40がIWS34に対して出力するFAX部16を動作させるためのコマンドを、第2の画像処理装置2のFAX部26を動作させるコマンドに書き換える。これにより、アプリケーション40がFAX機能を利用するときには、図14(b)に示すように、通信インタフェース13,23を介して第2の画像処理装置2のIWS64に対してコマンドが出力されるようになり、第2の画像処理装置2のFAX部26を動作させることにより、第2の画像処理装置2のFAX機能を利用することが可能になる。尚、ここでは、第1の画像処理装置1のFAX機能が利用できなくなる場合を例示したが、他の機能が利用できなくなる場合も同様である。
このように本実施形態のバックアップ実行部50は、第1の画像処理装置1における機能が利用不可能になったとき、アプリケーション40が出力する複数種類のコマンドのうち、第1の画像処理装置1において利用できなくなった機能を利用するコマンドを、第2の画像処理装置2における同一の機能を利用するコマンドに書き換えるように構成される。そのため、第1の画像処理装置1のユーザーが誤って利用できなくなった機能を利用しようとしたときでも、アプリケーション40は、第2の画像処理装置2の機能を利用することによってユーザーの指定したジョブを実行することができるようになる。
そしてバックアップ実行部50は、第1の画像処理装置2のFAX部16が修理され、FAX機能を利用することができるようになると、アプリケーション40がIWS34に対して出力するコマンドを元のコマンドに戻す。そのため、第1の画像処理装置1のFAX機能が利用可能な状態に戻ると、アプリケーション40は、第1の画像処理装置1のFAX機能を利用する状態に復帰する。
また本実施形態におけるその他の構成及び動作は、第1実施形態で説明したものと同様である。そのため、例えばFAX部16の修理のために第1の画像処理装置1が稼働停止状態になると、第1の画像処理装置1のユーザーは、第2の画像処理装置2でアプリケーション40を起動させることにより、一時的に第2の画像処理装置2でアプリケーション40を利用することができるようになる。
(変形例)
以上、本発明に関する実施形態について説明したが、本発明は、上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
例えば上記実施形態では、第1の画像処理装置1が第2の画像処理装置2に対してバックアップデータD1を直接送信する場合を例示した。しかし、バックアップデータD1の送信形態は、第1の画像処理装置1から第2の画像処理装置2に対して直接送信する形態に限られない。例えば、ネットワーク3に中継サーバーが設けられる場合、第1の画像処理装置1は中継サーバーに対してバックアップデータD1を送信し、第2の画像処理装置2は中継サーバーを介して第1の画像処理装置1から送信されるバックアップデータD1を取得するようにしても構わない。尚、この場合の中継サーバーは、LANなどのローカルネットワークに設けられるものであっても良いし、インターネット上のクラウドに設けられるものであっても良い。
またネットワーク3には、第1の画像処理装置1にインストールされているアプリケーション40のライセンスを管理するライセンスサーバーが設けられることもある。そのような場合、第1の画像処理装置1は、故障などによって稼働停止するとき、ライセンスサーバーに故障フラグを設定することが好ましい。これにより、ライセンスサーバーは、第1の画像処理装置1においてアプリケーション40が利用できない状態であることを把握することができるようになる。そして第2の画像処理装置2は、アプリケーション40のプログラムデータPDをインストールするとき、ライセンスサーバーにアクセスしてライセンスサーバーによるインストール許可を受けるようにする。このような構成とすることにより、第2の画像処理装置2にバックアップとして保存されるアプリケーション40が不正に利用されてしまうことを防止することができる。そして第1の画像処理装置1が故障から復帰した場合、ライセンスサーバーは復帰フラグを設定する。第2の画像処理装置2においてアプリケーション40が起動するとき、アプリケーション40は、ライセンスサーバーに復帰フラグが設定されているか否かを確認し、復帰フラグが設定されていれば、アプリケーション40の起動処理を強制終了させる。これにより、第1の画像処理装置1と第2の画像処理装置2の双方で同時にアプリケーション40が利用されることを防止することができる。このような構成によれば、ライセンスサーバーは、第2の画像処理装置2で一時的に利用されるアプリケーション40を、第1の画像処理装置1のアプリケーション40と同じライセンスで管理することができるという利点もある。
また上記実施形態では、第1の画像処理装置1のアプリケーション40を第2の画像処理装置2にバックアップとして保存する場合を例示した。しかし、これに限られるものではなく、第2の画像処理装置2のアプリケーション70を第1の画像処理装置1にバックアップとして保存することも可能である。この場合、第2の画像処理装置2に上述したバックアップ実行部50が設け、第1の画像処理装置1に上述したバックアップ管理部80を設ければ良い。
また上記実施形態では、ネットワーク3に2つの画像処理装置1,2が設けられる場合を例示した。これに対し、ネットワーク3に3つ以上の画像処理装置が設けられる場合、第1の画像処理装置1は、他の2以上の画像処理装置のうちからバックアップデータD1を保存する1つの装置を選択し、その選択した装置に対してバックアップデータD1を送信するようにすれば良い。この場合、第1の画像処理装置1は、他の2以上の画像処理装置のうちから、バックアップ対象となるアプリケーション40が利用する機能と同一の機能を備えている1つの装置を選択することが好ましい。これにより、第1の画像処理装置1が稼働停止したときには、バックアップデータD1を保存している画像処理装置においてアプリケーション40を起動させることにより、アプリケーション40を有効に利用することができるようになる。