(57)【要約】【課題】ＣＰＵの動作に異常が発生して処理未完了となったデータを他装置に送信することができるデータ処理装置および画像出力装置を提供する。【解決手段】複合機１０は、当該複合機１０の動作を制御するＣＰＵ（Ａ）１１（メインＣＰＵ）と、ＣＰＵ（Ａ）１１による動作を監視し、この監視でＣＰＵ（Ａ）１１の動作の異常を検知したときに処理未完了のデータ（ジョブ）が存在する場合は、データ救出用プログラムを再起動後のＣＰＵ（Ａ）１１が実行するように設定してＣＰＵ（Ａ）１１を再起動させるＣＰＵ（Ｂ）１２（サブＣＰＵ）とを備える。ＣＰＵ（Ａ）１１は、ＣＰＵ（Ｂ）１２によって再起動されると、ＣＰＵ（Ｂ）１２によって設定されたデータ救出用プログラムを実行し、このプログラムに基づいて処理未完了のデータを救出する動作を行う。【選択図】図１
2011233959.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータが入力される入力部と、
前記入力部から入力されたデータを保存する保存部と、
前記保存部に保存されたデータを処理する処理部と、
前記処理部を制御する第１のＣＰＵと、
他のデータ処理装置と通信する通信部と、
前記第１のＣＰＵの動作を監視し、この監視で前記第１のＣＰＵの動作の異常を検知したときに前記処理部による処理未完了のデータが存在する場合は、前記保存部から前記処理未完了のデータを読み出し前記通信部を通じて他のデータ処理装置に送信する動作を行うプログラムを再起動後の前記第１のＣＰＵが実行するように設定して前記第１のＣＰＵを再起動させる第２のＣＰＵと、
を備えたデータ処理装置。
【請求項２】
前記処理部を制御するために前記第１のＣＰＵによって実行される制御プログラムを備え、
前記第２のＣＰＵは、前記監視で、前記第１のＣＰＵが前記制御プログラムを実行して動作しているときの異常を検知する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記処理未完了のデータの送信先となる他のデータ処理装置は、前記第１のＣＰＵまたは前記第２のＣＰＵが前記通信部を通じて検索し決定する
ことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
請求項１〜３のいずれか１項に記載のデータ処理装置を備え、
前記データは、画像と、該画像を出力するための出力条件とを含むジョブであり、
前記処理部は、前記ジョブに含まれている画像をそのジョブに含まれている出力条件に基づいて出力する処理を行う画像出力部を含み、
前記通信部は、他の画像出力装置と通信する
ことを特徴とする画像出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたデータを処理するデータ処理装置、およびこのデータ処理装置を備えた画像出力装置に関する。
【背景技術】
【０００２】
印刷装置が異常を起こして印刷ジョブを処理できない場合に、他の印刷装置でその印刷ジョブの代替処理を行うことにより、緊急度の高い印刷ジョブなどに対する即時的な対応を可能とする技術が考案されている。
【０００３】
たとえば、クライアント装置とサーバ装置と複数の印刷装置がネットワークに接続された印刷システムにおいて、クライアント装置は印刷装置を指定した印刷ジョブをサーバ装置に送信する。サーバ装置はクライアント装置から受信した印刷ジョブを管理し、指定された印刷装置が故障などであれば他の印刷装置に印刷ジョブを送信してその印刷ジョブの代替処理を行わせる技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３４４９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の技術では、印刷装置の故障などで処理できない印刷ジョブの代替処理を実現するためにサーバ装置が必要となる。
【０００６】
また、上記のサーバ装置が存在せず、印刷装置がクライアント装置から直接印刷ジョブを受信し印刷部（プリンタ部）によって印刷処理を行う構成においては、クライアント装置から受信した印刷ジョブを印刷部の故障によって処理できなくても、印刷装置の動作を制御するＣＰＵ（Central Processing Unit）とネットワーク通信部が正常に動作していれば、その印刷ジョブを他の印刷装置に送信して代替処理を依頼するといった印刷ジョブの救出処置が可能である。しかし、ＣＰＵ（制御プログラム）の動作に異常が発生するとそのような救出処置も不可能となる。
【０００７】
また、印刷ジョブを処理する印刷装置に限らず、各種のデータを処理するデータ処理装置において、入力された処理対象のデータをＣＰＵによる制御のもとで処理部（ハードウェア）が処理する場合も同様である。すなわち、入力された処理対象のデータを処理部の故障によって処理できなくても、データ処理装置の動作を制御するＣＰＵとネットワーク通信部が正常に動作していれば、そのデータを他のデータ処理装置に送信し代替処理を依頼できるが、ＣＰＵ（制御プログラム）の動作に異常が発生するとそのような自己対処（データ救出）を行うことはできない。
【０００８】
本発明は、上記の問題を解決しようとするものであり、ＣＰＵの動作に異常が発生して処理未完了となったデータを他装置に送信することができるデータ処理装置および画像出力装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１０】
［１］処理対象のデータが入力される入力部と、
前記入力部から入力されたデータを保存する保存部と、
前記保存部に保存されたデータを処理する処理部と、
前記処理部を制御する第１のＣＰＵと、
他のデータ処理装置と通信する通信部と、
前記第１のＣＰＵの動作を監視し、この監視で前記第１のＣＰＵの動作の異常を検知したときに前記処理部による処理未完了のデータが存在する場合は、前記保存部から前記処理未完了のデータを読み出し前記通信部を通じて他のデータ処理装置に送信する動作を行うプログラムを再起動後の前記第１のＣＰＵが実行するように設定して前記第１のＣＰＵを再起動させる第２のＣＰＵと、
を備えたデータ処理装置。
【００１１】
上記発明では、第１のＣＰＵは処理部を制御し、入力部から入力されて保存部に保存された処理対象のデータを処理部に処理させる。第２のＣＰＵは第１のＣＰＵの動作を監視し、第１のＣＰＵの動作の異常を検知したときに処理部による処理未完了のデータが存在する場合は、再起動後の第１のＣＰＵが実行するプログラム（データ救出用プログラム）を設定して第１のＣＰＵを再起動させる。第１のＣＰＵは、再起動すると設定されたプログラムを実行し、このプログラムに従い、保存部から処理未完了のデータを読み出し通信部を通じて他のデータ処理装置に送信する動作を行う。
【００１２】
これにより、処理部を制御する第１のＣＰＵの動作に異常が発生して処理未完了となったデータを他のデータ処理装置に送信することができる。すなわち、第１のＣＰＵの動作に異常が発生しても、処理未完了のデータを他のデータ処理装置に送信し代替処理を依頼するといった自己対処（データ救出）が可能となる。
【００１３】
［２］前記処理部を制御するために前記第１のＣＰＵによって実行される制御プログラムを備え、
前記第２のＣＰＵは、前記監視で、前記第１のＣＰＵが前記制御プログラムを実行して動作しているときの異常を検知する
ことを特徴とする［１］に記載のデータ処理装置。
【００１４】
上記発明では、第２のＣＰＵは、第１のＣＰＵが制御プログラムを実行しているときの動作を監視し、第１のＣＰＵの動作の異常を検知する。たとえば、制御プログラムに異常（バグ）があり、その制御プログラムを実行している第１のＣＰＵの動作に異常（たとえば、制御プログラムの暴走状態など）が発生したことを検知する。
【００１５】
［３］前記処理未完了のデータの送信先となる他のデータ処理装置は、前記第１のＣＰＵまたは前記第２のＣＰＵが前記通信部を通じて検索し決定する
ことを特徴とする［１］または［２］に記載のデータ処理装置。
【００１６】
上記発明では、処理未完了のデータの送信先となる他のデータ処理装置を検索して決定することにより、代替処理を実行可能な他のデータ処理装置に処理未完了のデータを送信することができる。代替処理を実行可能な他のデータ処理装置とは、たとえば、電源オン状態の装置、電源オンかつ正常動作状態の装置、電源オンかつ正常動作状態かつ処理対象のデータに対する処理機能を備えている装置などである。
【００１７】
［４］［１］〜［３］のいずれか１項に記載のデータ処理装置を備え、
前記データは、画像と、該画像を出力するための出力条件とを含むジョブであり、
前記処理部は、前記ジョブデータに含まれている画像をそのジョブに含まれている出力条件に基づいて出力する処理を行う画像出力部を含み、
前記通信部は、他の画像出力装置と通信する
ことを特徴とする画像出力装置。
【００１８】
上記発明では、画像出力装置における第１のＣＰＵは画像出力部を制御し、入力部から入力されて保存部に保存された処理対象のジョブを画像出力部に処理させる。画像出力部は、ジョブに含まれている画像をそのジョブに含まれている出力条件に基づいて出力する処理を行う。この画像出力装置において、画像出力部を制御する第１のＣＰＵの動作に異常が発生して処理未完了となったジョブを他の画像出力装置に送信することができる。
【発明の効果】
【００１９】
本発明のデータ処理装置および画像出力装置によれば、ＣＰＵ（第１のＣＰＵ）の動作に異常が発生して処理未完了となったデータを他装置に送信することができる。したがって、処理未完了となったデータを他装置にて代替処理することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係る画像出力装置としての複合機の構成を示すブロック図である。
【図２】ＣＰＵの動作の監視と起動プログラムの変更を模式的に示す図である。
【図３】ジョブデータのデータ構造を示す図である。
【図４】ジョブデータの送信先となる他の複合機を検索して決定する場合の一例を示す図である。
【図５】システム構成の一例とジョブデータを救出する際の各装置のやり取りの概略を示す図である。
【図６】複合機のＣＰＵ（Ａ）によるジョブの受信と処理の動作を示す流れ図である。
【図７】図６のＳ１０７およびＳ１０８によるジョブ処理のサブルーチンの動作を示す流れ図である。
【図８】複合機のＣＰＵ（Ｂ）による動作を示す流れ図である。
【図９】複合機のＣＰＵ（Ａ）による再起動後（データ救出用プログラム実行時）のジョブデータ送信動作を示す流れ図である。
【発明を実施するための形態】
【００２１】
以下、図面に基づき本発明の実施形態を説明する。
【００２２】
図１は、本発明の一実施形態に係る画像出力装置としての複合機１０の構成を示すブロック図である。
【００２３】
複合機１０は、原稿の画像を光学的に読み取ってその複製画像を記録紙に印刷して出力するコピー機能、読み取った原稿の画像データをファイルにして保存したり端末装置やサーバなどへ転送したりするスキャン機能、端末装置から受信した印刷データに係る画像や当該複合機１０に保存されている画像データに係る画像を記録紙に印刷して出力するプリンタ機能、画像データを送受信するファクシミリ機能などを備えている。
【００２４】
また複合機１０は、２つのＣＰＵを備えたマルチプロセッサシステムの装置であり、当該複合機１０の動作を制御し、入力されたデータを処理するメインＣＰＵ（第１のＣＰＵ）と、メインＣＰＵの動作を監視し、この監視でメインＣＰＵの動作の異常を検知したときに処理未完了のデータが存在する場合は、データ救出用プログラムを再起動後のメインＣＰＵが実行するように設定してメインＣＰＵを再起動させるサブＣＰＵ（第２のＣＰＵ）とを備えている。この２つのＣＰＵでは、処理能力の高い方がメインＣＰＵで処理能力の低い方がサブＣＰＵとなっている。
【００２５】
メインＣＰＵは、ブートプログラムを実行して起動処理（ブート）を行い、当該複合機１０を起動させる機能と、起動完了後に通常処理用プログラム（ファームウェア）を実行して当該複合機１０の動作を制御し、入力されたデータを処理する機能とを備えている。サブＣＰＵは、上記の監視によってメインＣＰＵの動作の異常（たとえば、通常処理用プログラムの暴走状態など）を検知したときに処理未完了のデータが存在する場合には、データ救出用プログラムを再起動後のメインＣＰＵが実行するように設定して（起動プログラムの切り替えを行って）、メインＣＰＵを再起動させる機能を備えている。メインＣＰＵは、サブＣＰＵによって再起動されると、サブＣＰＵによって設定されたデータ救出用プログラムを実行し、このプログラムに基づいて処理未完了のデータを救出する動作を行う。
【００２６】
上記の処理対象となるデータは、コピー、スキャン、プリント、ファクシミリの各機能において処理されるデータである。詳細には、各機能において出力処理の対象となる画像（実データ）と、該画像を出力するための出力条件とを含むジョブである。
【００２７】
複合機１０は、メインＣＰＵとしてのＣＰＵ（Ａ）１１と、サブＣＰＵとしてのＣＰＵ（Ｂ）１２と、ＲＯＭ（Read Only Memory（ＢＩＯＳ ＲＯＭ；Basic Input/Output System Read Only Memory））１３と、ＲＡＭ（Random Access Memory）１４と、不揮発メモリ１５と、ハードディスク装置（ＨＤＤ；Hard Disk Drive）１６と、表示部１７と、操作部１８と、ファクシミリ通信部１９と、ネットワーク通信部２０と、画像処理部２１と、スキャナ部２２と、プリンタ部２３とがバス２４に接続されて構成される。
【００２８】
ＣＰＵ（Ａ）１１は、ＲＯＭ１３に格納されているブートプログラムを実行して起動処理を行い、複合機１０を起動させる。複合機１０の起動を完了すると、ＲＯＭ１３に格納されている通常処理用プログラムを実行して複合機１０の動作を制御し、入力されたデータ（ジョブ）を処理する。
【００２９】
ＣＰＵ（Ｂ）１２は、ＲＯＭ１３に格納されているプログラムを実行してＣＰＵ（Ａ）１１の動作を監視し、ＣＰＵ（Ａ）１１の動作の異常を検知したときに処理未完了のデータが存在する場合には、起動プログラムの切り替えおよびＣＰＵ（Ａ）１１の再起動を行う。
【００３０】
なお、ＣＰＵ（Ｂ）１２は、電源からＣＰＵ（Ａ）１１に電力が供給されていない状態（電源オフ状態）でも、電源から常時電力が供給され常時動作を継続できる構成としてもよい。
【００３１】
ＲＯＭ１３は、ＣＰＵ（Ａ）１１によって実行されるプログラム（ブートプログラム、通常処理用プログラムなど）と、ＣＰＵ（Ｂ）１２によって実行されるプログラムなどを格納する。ＲＡＭ１４は、ＣＰＵ（Ａ）１１およびＣＰＵ（Ｂ）１２がプログラムを実行する際に各種データを一時的に格納するワークメモリとして使用されるほか、画像データを一時的に保存するための画像メモリなどにも使用される。また、ジョブを管理するためのジョブ管理テーブルも格納する。
【００３２】
不揮発メモリ１５は、電源がオフにされても記憶が保持されるメモリであり、装置固有の情報や各種の設定情報などが記憶される。ハードディスク装置１６は、データ救出用プログラムや各種の保存データを格納するほか、入力された画像データなども保存する。
【００３３】
なお、データ救出用プログラムはハードディスク装置１６ではなくＲＯＭ１３に格納するようにしてもよい。またデータ救出用プログラムは、複合機１０とネットワークで接続された外部記憶装置（ストレージ）に格納しておき、複合機１０がその外部記憶装置にアクセスして実行するようにしてもよい。
【００３４】
表示部１７は、液晶ディスプレイなどで構成され、操作画面、設定画面、案内画面などの各種の画面を表示する。操作部１８は、スタートボタン、ストップボタン、テンキーなどの各種のボタン類と、液晶ディスプレイの表面に設けられて押下された座標位置を検出するタッチパネルなどで構成され、ユーザが複合機１０に対して行う各種の操作を受け付ける。
【００３５】
ファクシミリ通信部１９は、ファクシミリ機能を備えた外部装置と公衆回線を通じて画像データを送受信する。ネットワーク通信部２０は、ＬＡＮ（Local Area Network）などのネットワークを通じて端末装置や他の複合機などと通信を行う。
【００３６】
画像処理部２１は、画像データに対して、画像補正、回転、拡大／縮小、圧縮／伸張など各種の画像処理を施す。
【００３７】
スキャナ部２２は、原稿を光学的に読み取って画像データを取得する。スキャナ部２２は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００３８】
プリンタ部２３は、画像データに基づく画像を電子写真プロセスによって記録紙上に形成して出力する。プリンタ部２３は、たとえば、記録紙の搬送装置と、感光体ドラムと、帯電装置と、入力される画像データに応じて点灯制御されるＬＤ（Laser Diode）と、ＬＤから射出されたレーザ光を感光体ドラム上で走査させる走査ユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有する、いわゆるレーザープリンタとして構成されている。レーザ光に代えてＬＥＤ（Light Emitting Diode）で感光体ドラムを照射するＬＥＤプリンタのほか他の方式のプリンタであってもかまわない。
【００３９】
図２は、ＣＰＵ（Ｂ）１２がＣＰＵ（Ａ）１１に対して行う動作の監視と起動プログラムの変更を模式的に示す図である。
【００４０】
前述したように、ＣＰＵ（Ａ）１１は複合機１０の起動を完了すると、ＲＯＭ１３内の通常処理用プログラム３１を実行して複合機１０の動作を制御する。ＣＰＵ（Ｂ）１２は、ＣＰＵ（Ａ）１１が通常処理用プログラム３１を実行しているときの動作を監視し、ＣＰＵ（Ａ）１１の動作の異常を検知する。
【００４１】
詳細には、ＣＰＵ（Ｂ）１２（ＣＰＵ（Ｂ）１２のプログラム）は周期的にハートビート信号をＣＰＵ（Ａ）１１（ＣＰＵ（Ａ）１１の通常処理用プログラム）に送信する。ＣＰＵ（Ａ）１１は、ＣＰＵ（Ｂ）１２からハートビート信号を受信すると、Ａｃｋ（ACKnowledgement）信号をＣＰＵ（Ｂ）１２に送信する。
【００４２】
ＣＰＵ（Ｂ）１２は、ＣＰＵ（Ａ）１１とこれらの信号をやり取りすることで、ＣＰＵ（Ａ）１１が通常処理用プログラム３１を実行しているときの動作を監視する。ＣＰＵ（Ａ）１１からＡｃｋ信号を受信した場合（応答が有る場合）には、ＣＰＵ（Ａ）１１が正常に動作していると判断する。また、たとえばＣＰＵ（Ａ）１１は通常処理用プログラムの異常（バグ）によって暴走状態になると、Ａｃｋ信号をＣＰＵ（Ｂ）１２に送信できなくなる。ＣＰＵ（Ｂ）１２は、ＣＰＵ（Ａ）１１からＡｃｋ信号を受信しない場合（ＣＰＵ（Ａ）１１から応答が無い場合）に、ＣＰＵ（Ａ）１１の動作に異常が発生したことを検知する。
【００４３】
ＣＰＵ（Ａ）１１の動作の異常を検知したときに、処理未完了のデータが存在する場合には、ＣＰＵ（Ｂ）１２は起動プログラムの読み込み先をデータ救出用プログラム３２に変更し、ＣＰＵ（Ａ）１１を再起動させる。この起動プログラムの切り替え（再起動後のＣＰＵ（Ａ）１１に実行させるプログラムの設定）は、起動後に実行するプログラムの格納先を示す情報（ベクター）をＣＰＵ（Ｂ）１２が書き換えることによって行う。
【００４４】
ＣＰＵ（Ａ）１１は、ＣＰＵ（Ｂ）１２によって再起動されると、データ救出用プログラム３２を実行し、処理未完了のデータを救出する動作を行う。この動作は、ＣＰＵ（Ａ）１１が処理未完了のデータを他の複合機１０に送信するものである。詳細には、ＣＰＵ（Ａ）１１が処理未完了のデータを他の複合機１０に送信し、その複合機１０にそのデータの代替処理を実行してもらうものである。
【００４５】
図３は、他の複合機１０に代替処理を実行してもらうためのデータ（ジョブデータ）の構造を示す図である。
【００４６】
複合機１０のＣＰＵ（Ａ）１１は、コピー、スキャン、プリント、ファクシミリの各機能によるジョブを処理する。このジョブを処理する際に、ジョブとは別に、自己の異常発生に対処するための救出用のジョブデータ、すなわち、他の複合機１０に処理未完了のジョブの代替処理を行ってもらうためのジョブデータを作成して保存しておく。本実施形態では、複合機１０は実際に処理するジョブと、ジョブに対応する救出用のジョブデータとを装置内部で個別に管理する。ＣＰＵ（Ａ）１１は、通常処理用プログラム３１を実行して動作しているときに異常が発生し、データ救出用プログラム３２に切り替えられると、処理未完了のジョブに対応するジョブデータを他の複合機１０に送信して代替処理を行ってもらう。
【００４７】
図３では、プリントジョブ（またはコピージョブ）におけるジョブデータ４１と、ファクシミリ（ＦＡＸ）送信ジョブにおけるジョブデータ４２を例示している。ジョブデータ（４１、４２）は、ジョブ情報（４１ａ、４２ａ）と、出力処理の対象となる画像（４１ｂ、４２ｂ）とを含んで構成されている。ジョブ情報は、ジョブデータのヘッダ部に含まれており、ジョブ種と詳細な処理条件（出力条件）を示す情報が記述されている。なお、ファクシミリ受信ジョブやスキャンジョブにおけるジョブデータも同様のデータ構造である。
【００４８】
このジョブデータを受信した複合機１０は、ジョブデータのヘッダ部に含まれているジョブ情報に基づいてジョブを作成し、通常に処理を行うジョブと同様に処理（代替処理）を行う。
【００４９】
処理未完了のジョブデータの送信先となる他の複合機１０は、予め設定しておくようにしてもよく、ネットワークに接続されている他の複合機１０の中から検索して決定するようにしてもよい。予め設定する場合は、たとえば該当する他の複合機１０のＩＰ（Internet Protocol）アドレスなどを入力し、不揮発メモリ１５に保存しておく。
【００５０】
図４は、ジョブデータの送信先となる他の複合機１０を検索して決定する場合の一例を示す図である。
【００５１】
ここでは、複合機１０がネットワークに接続されている他の複合機１０を検索するために、その検索要求（Discovery要求）をネットワーク上にブロードキャスト送信する場合を例に説明する。たとえば、図４に示すネットワーク２に接続されている複合機Ａ（１０ａ）がジョブデータの送信先となる他の複合機を検索する場合には、複合機Ａは、自機のＩＰアドレスを含むDiscoveryパケットをネットワーク２にブロードキャスト送信する。Discoveryパケットを受信した他の複合機は、送信元の複合機Ａに自機のＩＰアドレスを返信するように構成しておく。複合機Ａは、ブロードキャスト送信したDiscoveryパケットに対し返信（応答）してきた他の複合機、もしくは、最初に返信してきた他の複合機を、ジョブデータの送信先に決定する。この場合は、ジョブデータの送信先に決定した他の複合機から受信したＩＰアドレスを不揮発メモリ１５に保存する。
【００５２】
なお、図４ではネットワーク２に３台の複合機Ａ（１０ａ）、複合機Ｂ（１０ｂ）、複合機Ｃ（１０ｃ）が接続されており、複合機Ｂが電源オンで複合機Ｃが電源オフの状態を示している。この場合は、複合機ＡはDiscoveryパケットをネットワーク２にブロードキャスト送信すると、複合機Ｂから返信を受け、この複合機Ｂをジョブデータの送信先に決定する。
【００５３】
上記の検索および決定は、ＣＰＵ（Ａ）１１およびＣＰＵ（Ｂ）１２のいずれが行うようにしてもよい。ＣＰＵ（Ａ）１１が行う場合には、通常処理用プログラムの実行による通常動作時（正常動作時）もしくはデータ救出用プログラムの実行によるデータ救出動作の開始時などに行う。ＣＰＵ（Ｂ）１２が行う場合には、ＣＰＵ（Ａ）１１の動作が正常であるときに行うようにしてもよく、ＣＰＵ（Ａ）１１の動作の異常を検知したときに行うようにしてもよい。
【００５４】
また、ジョブデータの送信先は、ネットワーク上にブロードキャスト送信したDiscoveryパケットに対し、返信してきた電源オン状態（かつ正常動作状態）の他の複合機に決定する場合に限らない。他の条件、たとえば処理対象のジョブデータに対する処理機能を備えていることなどの条件も加味して決定するようにしてもよい。
【００５５】
たとえば、ファクシミリ送信ジョブにおけるジョブデータの送信先を検索して決定する場合には、ファクシミリ機能が必須であることを示す条件情報を付加したDiscoveryパケットをネットワーク上にブロードキャスト送信し、返信してきた電源オンかつ正常動作状態かつファクシミリ機能を有する他の複合機に決定するようにしてもよい。また、ジョブデータのヘッダ部に含まれているジョブ情報（ジョブ種と詳細な処理条件（出力条件）を示す情報）を付加したDiscoveryパケットをネットワーク上にブロードキャスト送信し、返信してきた電源オンかつ正常動作状態かつそのジョブ情報に基づく出力処理を可能な他の複合機に決定するようにしてもよい。
【００５６】
次に、複合機１０の動作について説明する。
【００５７】
ここでは、複合機１０が端末装置から受信した印刷ジョブを処理する場合の動作を例に説明する。
【００５８】
図５は、複数台の複合機１０と端末装置５０がネットワーク２に接続されたシステム構成の一例と、ジョブデータ（印刷ジョブ）を救出する際の各装置のやり取りの概略を示す図である。図５では、複合機１０ａ（複合機Ａ）が端末装置５０から受信した印刷ジョブを処理する過程で、ＣＰＵ（Ａ）１１の動作に異常が発生し、その印刷ジョブに対応するジョブデータを複合機１０ｂ（複合機Ｂ）に送信して代替処理を実行してもらう場合を示している。図５を参照し、ジョブデータ（印刷ジョブ）を救出する際のシステム全体の動作の概要を説明する。
【００５９】
複合機１０ａでは、ＣＰＵ（Ａ）１１が複合機１０ａの起動を完了すると、通常処理用プログラムを実行して複合機１０ａの動作を制御する（Ｐ１）。ＣＰＵ（Ｂ）１２は、周期的にハートビート信号をＣＰＵ（Ａ）１１に送信し、ＣＰＵ（Ａ）１１からＡｃｋ信号を受信することで、ＣＰＵ（Ａ）１１が通常処理用プログラムを実行しているときの動作を監視する。
【００６０】
端末装置５０は、ユーザによってプリント（印刷）の対象となる画像（ドキュメント）が選択され、プリントの依頼先として複合機１０ａが指定され、プリントに関する各種の設定項目（出力条件）の設定を受け付け、プリントの指示を受けると、選択された画像と設定された出力条件を含む印刷ジョブを作成し、ネットワーク２を通じて複合機１０ａに送信する。複合機１０ａが端末装置５０から印刷ジョブを受信すると（Ｐ２）、ＣＰＵ（Ａ）１１は受信した印刷ジョブをＲＡＭ１４に保存する。この印刷ジョブからジョブデータ（図３参照）を作成し、作成したジョブデータを印刷ジョブに関連付けてハードディスク装置１６に保存する。この印刷ジョブのジョブＩＤ（Identification）をジョブ管理テーブルに登録し、登録順に印刷ジョブを処理する。ＣＰＵ（Ｂ）１２は、ジョブ処理中もＣＰＵ（Ａ）１１の動作を監視する。
【００６１】
ＣＰＵ（Ａ）１１は、印刷ジョブの処理を完了すると、その印刷ジョブのジョブＩＤをジョブ管理テーブルから削除すると共にＲＡＭ１４に保存していたその印刷ジョブを削除し、この印刷ジョブに関連付けられているジョブデータをハードディスク装置１６から削除する。
【００６２】
ジョブ処理中にＣＰＵ（Ａ）１１の動作に異常が発生し（Ｐ４）、ＣＰＵ（Ｂ）１２はＣＰＵ（Ａ）１１からの応答（Ａｃｋ信号の受信）が途絶えると、ＣＰＵ（Ａ）１１の動作に異常が発生したことを検知する（Ｐ５）。ＣＰＵ（Ｂ）１２は、ネットワーク通信部２０からネットワーク２を通じて複合機１０ｂにエラー通知を送信する（Ｐ６）。
【００６３】
複合機１０ｂが複合機１０ａからエラー通知を受信すると、複合機１０ｂのＣＰＵ（Ａ）１１はネットワーク２を通じて複合機１０ａに起動プログラム変更要求を送信する（Ｐ７）。
【００６４】
複合機１０ａが複合機１０ｂから起動プログラム変更要求を受信すると、複合機１０ａのＣＰＵ（Ｂ）１２は、起動プログラムの読み込み先をデータ救出用プログラムに変更し、ＣＰＵ（Ａ）１１を再起動させる（Ｐ８）。ＣＰＵ（Ａ）１１は、ＣＰＵ（Ｂ）１２によって再起動されると、データ救出用プログラムを実行し（Ｐ９）、ハードディスク装置１６に保存されているジョブデータ（処理未完了のジョブデータ）を読み出して複合機１０ｂに送信し（Ｐ１０）、送信後にそのジョブデータをハードディスク装置１６から削除する。
【００６５】
複合機１０ｂが複合機１０ａからジョブデータを受信すると、複合機１０ｂのＣＰＵ（Ａ）１１は受信したジョブデータをハードディスク装置１６に保存する。このジョブデータから印刷ジョブを作成してＲＡＭ１４に保存し、ジョブデータと印刷ジョブを関連付ける。この印刷ジョブのジョブＩＤをジョブ管理テーブルに登録し、印刷ジョブを処理する（Ｐ１１（代替処理））。
【００６６】
複合機１０ｂのＣＰＵ（Ａ）１１は、印刷ジョブの処理を完了すると、その印刷ジョブのジョブＩＤをジョブ管理テーブルから削除すると共にＲＡＭ１４に保存していたその印刷ジョブを削除し、この印刷ジョブに関連付けられているジョブデータをハードディスク装置１６から削除する。
【００６７】
図６〜図９は、複合機１０におけるＣＰＵ（Ａ）１１とＣＰＵ（Ｂ）１２の動作を示す流れ図である。詳細には、図６は、ＣＰＵ（Ａ）１１によるジョブ（印刷ジョブ）の受信と処理の動作を示す流れ図である。図７は、図６におけるジョブ処理のサブルーチンの動作を示す流れ図である。図８は、ＣＰＵ（Ｂ）１２による動作を示す流れ図である。図９は、ＣＰＵ（Ａ）１１による再起動後（データ救出用プログラム実行時）のジョブデータ送信動作を示す流れ図である。図６〜図９を参照し、複合機１０の動作を詳細に説明する。
【００６８】
図６に示すように、複合機１０のＣＰＵ（Ａ）１１は、ＣＰＵ（Ｂ）１２からハートビート信号を受信しない場合は（ステップＳ１０１；Ｎｏ）、ＣＰＵ（Ｂ）１２に対して応答せず、ＣＰＵ（Ｂ）１２からハートビート信号を受信した場合は（ステップＳ１０１；Ｙｅｓ）、ＣＰＵ（Ｂ）１２にＡｃｋ信号を送信する（ステップＳ１０２）。
【００６９】
端末装置から印刷ジョブを受信せず（ステップＳ１０３；Ｎｏ）、他の複合機１０からエラー通知を受信しなければ（ステップＳ１０４；Ｎｏ）、ステップＳ１０１へ戻り、ステップＳ１０１〜ステップＳ１０４を繰り返す。端末装置から印刷ジョブを受信した場合は（ステップＳ１０３；Ｙｅｓ）、ジョブ処理を行う（ステップＳ１０７）。他の複合機１０からエラー通知を受信した場合は（ステップＳ１０４；Ｙｅｓ）、エラー通知の送信先の複合機１０に起動プログラム変更要求を送信する（ステップＳ１０５）。その複合機１０からジョブデータを受信すると（ステップＳ１０６）、ジョブ処理を行う（ステップＳ１０８（代替処理））。
【００７０】
なお、ステップＳ１０５〜ステップＳ１０８までの間では、ＣＰＵ（Ｂ）１２からのハートビート信号の受信と、ＣＰＵ（Ｂ）１２へのＡｃｋ信号の送信のステップの記載を省略している。このステップＳ１０５〜ステップＳ１０８までの間も、ステップＳ１０１およびステップＳ１０２と同様のステップにより、ＣＰＵ（Ａ）１１はＣＰＵ（Ｂ）１２からハートビート信号を受信した場合は、ＣＰＵ（Ｂ）１２にＡｃｋ信号を送信する。
【００７１】
図７に示すジョブ処理では、受信したのが印刷ジョブであれば（ステップＳ２０１；ジョブ）、ＣＰＵ（Ａ）１１は受信した印刷ジョブをＲＡＭ１４に保存する。この印刷ジョブからジョブデータを作成し、作成したジョブデータを印刷ジョブに関連付けてハードディスク装置１６に保存する（ステップＳ２０２）。この印刷ジョブのジョブＩＤをジョブ管理テーブルに登録し（ステップＳ２０５）、登録順に印刷ジョブを実行する（ステップＳ２０６）。
【００７２】
また、受信したのがジョブデータであれば（ステップＳ２０１；ジョブデータ）、ＣＰＵ（Ａ）１１は受信したジョブデータをハードディスク装置１６に保存する（ステップＳ２０３）。このジョブデータから印刷ジョブを作成してＲＡＭ１４に保存し（ステップＳ２０４）、ジョブデータと印刷ジョブを関連付ける。この印刷ジョブのジョブＩＤをジョブ管理テーブルに登録し（ステップＳ２０５）、登録順に印刷ジョブを実行する（ステップＳ２０６）。
【００７３】
ＣＰＵ（Ａ）１１は、印刷ジョブの実行中にＣＰＵ（Ｂ）１２からハートビート信号を受信しない場合は（ステップＳ２０７；Ｎｏ）、ＣＰＵ（Ｂ）１２に対して応答せず、ＣＰＵ（Ｂ）１２からハートビート信号を受信した場合は（ステップＳ２０７；Ｙｅｓ）、ＣＰＵ（Ｂ）１２にＡｃｋ信号を送信する（ステップＳ２０８）。印刷ジョブの実行中に（ステップＳ２０９；Ｎｏ）、端末装置から印刷ジョブを受信せず（ステップＳ２１２；Ｎｏ）、他の複合機１０からエラー通知を受信しなければ（ステップＳ２１３；Ｎｏ）、ステップＳ２０７へ戻り、ステップＳ２０７〜ステップＳ２０９；Ｎｏ〜ステップＳ２１３を繰り返す。
【００７４】
印刷ジョブの実行中に（ステップＳ２０９；Ｎｏ）、端末装置から印刷ジョブを受信した場合は（ステップＳ２１２；Ｙｅｓ）、ＣＰＵ（Ａ）１１は受信した印刷ジョブをＲＡＭ１４に保存する。この印刷ジョブからジョブデータを作成し、作成したジョブデータを印刷ジョブに関連付けてハードディスク装置１６に保存する（ステップＳ２０２）。この印刷ジョブのジョブＩＤをジョブ管理テーブルに登録し（ステップＳ２０５）、実行中の印刷ジョブを継続実行する（ステップＳ２０６）。
【００７５】
印刷ジョブの実行中に（ステップＳ２０９；Ｎｏ）、他の複合機１０からエラー通知を受信した場合は（ステップＳ２１２；Ｎｏ〜ステップＳ２１３；Ｙｅｓ）、ＣＰＵ（Ａ）１１はエラー通知の送信先の複合機１０に起動プログラム変更要求を送信し（ステップＳ２１４）、その複合機１０からジョブデータを受信すると（ステップＳ２１５）、受信したジョブデータをハードディスク装置１６に保存する（ステップＳ２０３）。このジョブデータから印刷ジョブを作成してＲＡＭ１４に保存し（ステップＳ２０４）、ジョブデータと印刷ジョブを関連付ける。この印刷ジョブのジョブＩＤをジョブ管理テーブルに登録し（ステップＳ２０５）、実行中の印刷ジョブを継続実行する（ステップＳ２０６）。
【００７６】
ＣＰＵ（Ａ）１１は、印刷ジョブを実行完了すると（ステップＳ２０９；Ｙｅｓ）、その印刷ジョブのジョブＩＤをジョブ管理テーブルから削除すると共にＲＡＭ１４に保存していたその印刷ジョブを削除し、この印刷ジョブに関連付けられているジョブデータをハードディスク装置１６から削除する（ステップＳ２１０）。ジョブ管理テーブルに次の印刷ジョブのジョブＩＤが登録されている場合には（ステップＳ２１１；Ｙｅｓ）、ＣＰＵ（Ａ）１１はそのジョブＩＤに対応する印刷ジョブを実行する（ステップＳ２０６）。次の印刷ジョブがない場合には（ステップＳ２１１；Ｎｏ）、図６へ戻り（Ｒｅｔｕｒｎ）、ステップＳ１０１以降を行う。
【００７７】
なお、図７ではジョブの実行中に、ＣＰＵ（Ｂ）１２からのハートビート信号の受信と（ステップＳ２０７）、ＣＰＵ（Ｂ）１２へのＡｃｋ信号の送信（ステップＳ２０８）を行うように記載しているが、これらのステップはジョブの実行中以外も行う。すなわち、図７に示す動作中は、ステップＳ２０７およびステップＳ２０８と同様のステップにより、ＣＰＵ（Ａ）１１はＣＰＵ（Ｂ）１２からハートビート信号を受信した場合は、ＣＰＵ（Ｂ）１２にＡｃｋ信号を送信する。
【００７８】
図８に示すように、複合機１０のＣＰＵ（Ｂ）１２は、ＣＰＵ（Ａ）１１にハートビート信号を送信する（ステップＳ３０１）。ＣＰＵ（Ａ）１１からＡｃｋ信号を所定の許容時間内に受信した場合は（ステップＳ３０２；Ｙｅｓ）、ＣＰＵ（Ｂ）１２はＣＰＵ（Ａ）１１が正常に動作していると判断する。以降も同様に、ＣＰＵ（Ｂ）１２はＣＰＵ（Ａ）１１へのハートビート信号の送信を周期的に行う（ステップＳ３０１〜ステップＳ３０２；Ｙｅｓ）。
【００７９】
ＣＰＵ（Ａ）１１からＡｃｋ信号を所定の許容時間内に受信しない場合は（ステップＳ３０２；Ｎｏ）、ＣＰＵ（Ａ）１１の動作に異常が発生したことを検知し、ハードディスク装置１６にジョブデータ（処理未完了のジョブデータ）が保存されているか否かを確認する（ステップＳ３０３）。
【００８０】
ハードディスク装置１６にジョブデータが保存されていない場合は（ステップＳ３０３；Ｎｏ）、動作を終了する（Ｅｎｄ）。この場合は、たとえばＣＰＵ（Ａ）１１が通常処理用プログラムの異常によって暴走状態などになり、ユーザは複合機１０の電源をオフにするなどの対応を取る。
【００８１】
ハードディスク装置１６にジョブデータが保存されている場合は（ステップＳ３０３；Ｙｅｓ）、ＣＰＵ（Ｂ）１２は他の複合機１０にエラー通知を送信し（ステップＳ３０４）、その複合機１０から起動プログラム変更要求を受信するか否かを監視する（ステップＳ３０５；Ｎｏ）。
【００８２】
エラー通知の送信先となる他の複合機１０から起動プログラム変更要求を受信すると（ステップＳ３０５；Ｙｅｓ）、ＣＰＵ（Ｂ）１２は起動プログラムの読み込み先をデータ救出用プログラムに変更し（ステップＳ３０６）、ＣＰＵ（Ａ）１１を再起動させる（ステップＳ３０７／Ｅｎｄ）。
【００８３】
図９に示すように、複合機１０のＣＰＵ（Ａ）１１は、ＣＰＵ（Ｂ）１２によって再起動されると、データ救出用プログラムを実行し、ハードディスク装置１６に保存されているジョブデータ（処理未完了のジョブデータ）を読み出して他の複合機１０に送信し、送信後にそのジョブデータをハードディスク装置１６から削除する（ステップＳ４０１／Ｅｎｄ）。
【００８４】
なお、ここでは複合機１０が端末装置から受信する印刷ジョブ（プリントジョブ）を例に説明したが、印刷を伴うコピージョブやファクシミリ受信ジョブなども同様に救出することができる。さらには、ファクシミリ送信ジョブやスキャンジョブなども同様に救出することができる。
【００８５】
コピージョブの場合は、ユーザから受けたコピーに関する設定（出力条件）とスキャナ部２２で読み取った原稿の画像データとに基づきジョブデータを作成してハードディスク装置１６に保存し、当該コピージョブの印刷処理を完了する前にＣＰＵ（Ａ）１１の動作に異常が発生した場合に、ハードディスク装置１６からジョブデータを読み出して他の複合機１０に送信し代替の印刷処理を実行してもらうことができる。ファクシミリ受信ジョブの場合は、ファクシミリ受信した画像データに基づきジョブデータを作成してハードディスク装置１６に保存し、当該ファクシミリ受信ジョブの印刷処理を完了する前にＣＰＵ（Ａ）１１の動作に異常が発生した場合に、ハードディスク装置１６からジョブデータを読み出して他の複合機１０に送信し代替の印刷処理を実行してもらうことができる。
【００８６】
ファクシミリ送信ジョブの場合は、ユーザから受けたファクシミリ送信に関する設定（出力条件）とスキャナ部２２で読み取ったファクシミリ送信用の原稿の画像データとに基づきジョブデータを作成してハードディスク装置１６に保存し、当該ファクシミリ送信ジョブの送信処理を完了する前にＣＰＵ（Ａ）１１の動作に異常が発生した場合に、ハードディスク装置１６からジョブデータを読み出して他の複合機１０に送信し代替の送信処理を実行してもらうことができる。スキャンジョブの場合は、ユーザから受けたスキャンに関する設定（端末装置やサーバなどへの送信を含む出力条件）とスキャナ部２２で読み取ったスキャン用の原稿の画像データとに基づきジョブデータを作成してハードディスク装置１６に保存し、当該スキャンジョブの送信処理を完了する前にＣＰＵ（Ａ）１１の動作に異常が発生した場合に、ハードディスク装置１６からジョブデータを読み出して他の複合機１０に送信し代替の送信処理を実行してもらうことができる。
【００８７】
このように、本実施形態に係る複合機１０は、当該複合機１０の動作を制御するＣＰＵ（Ａ）１１の動作に異常が発生して処理未完了となったジョブデータを他の複合機１０に送信することができる。すなわち、メインＣＰＵであるＣＰＵ（Ａ）１１の動作に異常が発生しても、サブＣＰＵであるＣＰＵ（Ｂ）１２がデータ救出用プログラムを再起動後のＣＰＵ（Ａ）１１が実行するように設定し、ＣＰＵ（Ａ）１１を再起動させることで、ＣＰＵ（Ａ）１１が再起動後にデータ救出用プログラムを実行し、処理未完了のジョブデータを他の複合機１０に送信して代替処理を依頼するといった自己対処（データの救出）が可能となる。
【００８８】
また本実施形態では、ＣＰＵ（Ｂ）１２はＣＰＵ（Ａ）１１が通常処理用プログラムを実行しているときの動作を監視し、ＣＰＵ（Ａ）１１の動作の異常を検知する。ＣＰＵ（Ａ）１１がデータ救出用プログラムを実行しているときの動作は監視していない（図９参照）。これにより、たとえばＣＰＵ（Ｂ）１２がＣＰＵ（Ａ）１１によるデータ救出用プログラムの実行時の動作も監視する場合に比べて、ＣＰＵ（Ａ）１１、ＣＰＵ（Ｂ）１２の処理負担を軽減することができる。
【００８９】
また、処理未完了のジョブデータの送信先となる他の複合機１０を検索して決定する場合には、代替処理を実行可能な他の複合機１０に処理未完了のジョブデータを送信することができる。
【００９０】
以上、本発明の実施形態を図面によって説明してきたが、具体的な構成は実施形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【００９１】
たとえば、ＣＰＵ（Ｂ）１２が行うＣＰＵ（Ａ）１１の動作の監視は、実施形態で説明したハートビート信号とＡｃｋ信号のやり取りによる監視に限らない。ＣＰＵ（Ａ）１１がウォッチドッグタイマなどによって周期的に動作信号をＣＰＵ（Ｂ）１２に送信し、ＣＰＵ（Ｂ）１２がＣＰＵ（Ａ）１１からその動作信号を周期的に受信することで、ＣＰＵ（Ａ）１１の動作を監視するようにしてもよい。
【００９２】
実施形態では、複合機１０が実際に処理するジョブと、他の複合機１０に送信して代替処理を行ってもらう救出用のジョブデータとを区別して管理するようにしているが、ジョブのみで管理し、ジョブを他の複合機１０に送信して代替処理を行ってもらうようにしてもよい。
【００９３】
また実施形態では、ＣＰＵ（Ｂ）１２はＣＰＵ（Ａ）１１が通常処理用プログラムを実行しているときの動作を監視するようにしているが、データ救出用プログラムを実行しているときの動作も監視するようにしてもよい。これにより、ＣＰＵ（Ｂ）１２はＣＰＵ（Ａ）１１がデータ救出用プログラムを実行しているときの動作の異常も検知できるようになる。
【００９４】
ＣＰＵ（Ｂ）１２が上記の異常を検知した場合には、表示部１７にデータ救出不可などのエラーを表示してユーザに報知するようにしてもよい。また、ＣＰＵ（Ａ）１１の動作を強制停止するようにしてもよい。たとえば、データ救出用プログラムの暴走状態などにより、救出用のジョブデータが誤って本来の送信先とは異なる外部装置に誤送信されてしまうようなことを防止できる。
【００９５】
ＣＰＵ（Ａ）１１がデータ救出用プログラムを実行し正常に動作して、ジョブデータを他の複合機１０に送信した場合には、当該複合機１０はジョブデータの送信先の情報や送信正常完了を表示部１７に表示してユーザに報知したり、端末装置から受信した印刷ジョブの場合はその印刷ジョブの送信元の端末装置にそれらの情報を通知したり、ジョブデータの送信先の情報を履歴として保存したりするようにしてもよい。また、当該複合機１０は送信先の複合機１０からジョブデータの代替処理の完了通知を受け、ジョブデータの代替処理が正常に完了したことを表示部１７に表示してユーザに報知したり、端末装置から受信した印刷ジョブの場合はその印刷ジョブの送信元の端末装置にその印刷ジョブの代替処理が正常に完了したことを通知したり、ジョブデータの代替処理の完了を示す情報を履歴として保存したりするようにしてもよい。また、当該複合機１０がＣＰＵ（Ａ）１１の動作異常から復帰した場合に、当該複合機１０では処理未完了であったジョブデータに関する上記の履歴（送信先、代替処理完了）を表示部１７に表示してユーザに報知したり、端末装置から受信した印刷ジョブの場合はその印刷ジョブの送信元の端末装置に上記の履歴を通知したりするようにしてもよい。
【００９６】
また、本発明に係る画像出力装置は実施形態で説明した複合機に限らず、プリンタ機、複写機、ファクシミリ機などの他の画像出力装置も対象にすることができる。本発明に係るデータ処理装置は、画像出力装置に備えられて画像に係るデータの出力処理を行うデータ処理装置に限らず、画像以外の各種のデータの処理を行うデータ処理装置を対象にすることができる。
【符号の説明】
【００９７】
２…ネットワーク
１０（１０ａ、１０ｂ、１０ｃ）…複合機
１１…ＣＰＵ（Ａ）
１２…ＣＰＵ（Ｂ）
１３…ＲＯＭ
１４…ＲＡＭ
１５…不揮発メモリ
１６…ハードディスク装置
１７…表示部
１８…操作部
１９…ファクシミリ通信部
２０…ネットワーク通信部
２１…画像処理部
２２…スキャナ部
２３…プリンタ部
２４…バス
３１…通常処理用プログラム
３２…データ救出用プログラム
４１、４２…ジョブデータ
４１ａ、４２ａ…ジョブ情報
４１ｂ、４２ｂ…画像
５０…端末装置
【図１】
2011233959.tif 000003
【図２】
2011233959.tif 000004
【図３】
2011233959.tif 000005
【図４】
2011233959.tif 000006
【図５】
2011233959.tif 000007
【図６】
2011233959.tif 000008
【図７】
2011233959.tif 000009
【図８】
2011233959.tif 000010
【図９】
2011233959.tif 000011