(57)【要約】【課題】コンピュータウイルスの検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができるジョブ処理システムおよび画像処理装置を提供する。【解決手段】複合機は、複数の機能に対応して設けられた複数の制御モジュール（スキャン制御部３５〜ファイルシステム部４０）と、その複数の制御モジュールに対するウイルスチェックを行うウイルスチェック部３３と、ウイルスチェック部３３にその複数の中の一部の制御モジュール毎にウイルスチェックを行わせるウイルス管理部３２と、ウイルスチェックによってウイルス感染のないことが確認されている制御モジュールのみを使用するジョブの実行を許可するジョブ管理部３１とを備えた構成とする。【選択図】図２
2011065483.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの実行に使用される複数の制御モジュールであって、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールと、
前記複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を行う検査部と、
前記検査部に前記複数の中の一部の制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる検査管理部と、
前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されている制御モジュールのみを使用するジョブの実行を許可する許可部と、
を備えたジョブ処理システム。
【請求項２】
ジョブの実行に使用される複数の制御モジュールであって、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールと、
前記複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を行う検査部と、
前記検査部に前記複数の中の一部の制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる検査管理部と、
前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用しないジョブの実行を許可する許可部と、
を備えたジョブ処理システム。
【請求項３】
ジョブの実行に使用される複数の制御モジュールであって、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールと、
前記複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を行う検査部と、
前記検査部に１つのジョブで使用される制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる検査管理部と、
を備えたジョブ処理システム。
【請求項４】
前記検査管理部は、ジョブの実行前に該ジョブの実行に使用される制御モジュールに対して前記検査部に前記検査を行わせる
ことを特徴とする請求項１〜３のいずれか１項に記載のジョブ処理システム。
【請求項５】
前記検査管理部は、ジョブの実行後に該ジョブの実行に使用された制御モジュールに対して前記検査部に前記検査を行わせる
ことを特徴とする請求項１〜３のいずれか１項に記載のジョブ処理システム。
【請求項６】
前記検査管理部は、前記検査によってコンピュータウイルスに感染していないことが確認されている制御モジュールについてはその確認後の所定期間は前記検査部に前記検査を省略させ、該制御モジュールについては、少なくとも前記所定期間は前記確認されている制御モジュールであると認識する
ことを特徴とする請求項１〜５のいずれか１項に記載のジョブ処理システム。
【請求項７】
前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用する第１のジョブの実行を保留し、前記確認されている制御モジュールのみを使用する第２のジョブを実行開始する
ことを特徴とする請求項１または３に記載のジョブ処理システム。
【請求項８】
前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用する第１のジョブの実行を保留し、前記確認されていない制御モジュールを使用しない第２のジョブを実行開始する
ことを特徴とする請求項２または３に記載のジョブ処理システム。
【請求項９】
前記第２のジョブの実行中に、前記第１のジョブの実行に使用される全ての制御モジュールについてコンピュータウイルスに感染していないことが確認された状態になり、前記第２のジョブよりも前記第１のジョブの優先度が高い場合は、前記第２のジョブの実行を中断して前記第１のジョブを実行する
ことを特徴とする請求項７または８に記載のジョブ処理システム。
【請求項１０】
前記第２のジョブは、他のジョブの実行による中断を受けずに実行終了させる
ことを特徴とする請求項７または８に記載のジョブ処理システム。
【請求項１１】
請求項１〜１０のいずれか１項に記載のジョブ処理システムに含まれると共に、前記ジョブを画像データに係るジョブとして実行する画像処理装置であって、
前記検査管理部が前記検査を当該画像処理装置の外部の前記検査部に行わせる
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ処理を行う当該システムのコンピュータウイルスの感染の有無を検査するジョブ処理システム、および、そのジョブ処理システムに含まれる画像処理装置に関する。
【背景技術】
【０００２】
近年の複合機やプリンタなどは、汎用のオペレーティングシステムが搭載されたコンピュータを制御システムに用いるものが多くなっており、ネットワークにも対応している。これらの複合機やプリンタなどは、コンピュータウイルスに感染する危険性や他機器に感染を拡大させてしまう可能性があり、ウイルス対策が施されている。
【０００３】
たとえば、複合機が機内のプログラムやデータに対して定期的にウイルス検査を行い、ウイルス感染したプログラムやデータを検出した場合は修復する、もしくは隔離したり消去したりするなどの動作を実行するようにした技術がある（特許文献１参照）。また、プリンタがクライアント端末から受信したプリントデータに対してウイルス検査を行い、ウイルス感染を検出した場合は動作を強制停止して電源を遮断する、もしくはネットワーク接続を制限または遮断する、もしくはウイルス駆除処理を実行するなどして感染の拡大（二次感染）を防止するようにした技術もある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２２９６１１号公報
【特許文献２】特開２００６−２５６１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１の技術のように、定期的にウイルス検査を行ったり、ウイルス感染を検出した際にそのウイルス感染したプログラムやデータの修復などを行ったりする場合は、ジョブが保留されたり遅延されたりする可能性があり、生産性の低下を招くおそれがある。特許文献２の技術も同様に、受信したプリントデータに対するウイルス検査でウイルス感染を検出した場合に、全ての動作を強制停止するなどすると、生産性が低下することになる。
【０００６】
また、ウイルス感染を検出するには、装置内の制御モジュールのプログラムに対してウイルス検査（ウイルスチェック）を行う必要がある。このウイルス検査が行われていない状態では、制御モジュールがウイルス感染しているか否かが不明であり、ジョブを実行して制御モジュールを動作させるのはリスクがある。仮に制御モジュールがウイルス感染していた場合には、制御モジュールを動作させるとそのコンピュータウイルスによる不正な動作や感染の拡大などを起こされる可能性がある。そのため、ウイルス検査の結果「感染無し」と確認できた上でジョブを実行するのが望ましい。
【０００７】
しかし、スキャン、プリント、ファクシミリ、電子メール送受信などの複数の機能を有する複合機などは、その複数の機能に対応する複数の制御モジュールを備えているため、全ての制御モジュールに対するウイルス検査には時間を要する。したがって、全ての制御モジュールに対するウイルス検査を定期的またはジョブの実行前などに行うと、ジョブの実行開始が遅れて生産性の低下を招くことになる。
【０００８】
本発明は、上記の問題を解決しようとするものであり、コンピュータウイルスの検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができるジョブ処理システムおよび画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１０】
［１］ジョブの実行に使用される複数の制御モジュールであって、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールと、
前記複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を行う検査部と、
前記検査部に前記複数の中の一部の制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる検査管理部と、
前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されている制御モジュールのみを使用するジョブの実行を許可する許可部と、
を備えたジョブ処理システム。
【００１１】
［２］ジョブの実行に使用される複数の制御モジュールであって、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールと、
前記複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を行う検査部と、
前記検査部に前記複数の中の一部の制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる検査管理部と、
前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用しないジョブの実行を許可する許可部と、
を備えたジョブ処理システム。
【００１２】
上記［１］および［２］の発明では、検査管理部は、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールに対し、検査部にその複数の中の一部の制御モジュール毎にコンピュータウイルスの感染の有無の検査（ウイルス検査）を行わせる。「一部の制御モジュール毎」は、制御モジュール別（個別）を含む概念である。たとえば、ジョブ単位の制御モジュール毎でもよく、非ジョブ単位の制御モジュール毎などでもよい。ウイルス検査を行うタイミングは、たとえば、ジョブの実行に同期したタイミングでもよく、ジョブの実行に同期しないタイミング（非ジョブ処理期間、定期的、所定時刻）などでもよい。
【００１３】
［１］の構成における許可部は、複数の制御モジュールの中でウイルス検査によってコンピュータウイルスに感染していないことが確認されている制御モジュールのみを使用するジョブの実行を許可する。ここでの「・・・コンピュータウイルスに感染していないことが確認されている制御モジュール」は、ウイルス検査が完了してコンピュータウイルスが検出されなかったことによりウイルス感染のないことが確認されている制御モジュールと、ウイルス検査が完了してコンピュータウイルスが検出されたが駆除されたことによりウイルス感染のないことが確認されている制御モジュールとを含む。すなわち、ウイルス検査によってコンピュータウイルスが検出されなかったことが確認されている制御モジュールと、ウイルス検査によってコンピュータウイルスが検出され駆除されたことが確認されている制御モジュールとを含む。また、「・・・のみを使用するジョブ」における「のみ」は、「の全て」を意味するものではなく、詳細には「のみのうちの少なくとも１つ以上」を意味するものである。［１］の構成では、このウイルス感染のないことが確認されている制御モジュールのみを使用するジョブの実行が許可される。
【００１４】
［２］の構成における許可部は、複数の制御モジュールの中でウイルス検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用しないジョブの実行を許可する。ここでの「・・・コンピュータウイルスに感染していないことが確認されていない制御モジュール」は、ウイルス検査が完了していないことにより（ウイルス検査未実行または未完了により）、ウイルス感染のないことが確認されていない制御モジュールと、ウイルス検査が完了してコンピュータウイルスが検出されたが駆除されていないことにより（ウイルス駆除未実行または未完了により）、ウイルス感染のないことが確認されていない制御モジュールとを含む。［２］の構成では、このウイルス感染のないことが確認されていない制御モジュールを使用しないジョブの実行が許可される。
【００１５】
たとえば、複数の中の特定の一部の制御モジュールを使用する第１のジョブと、他の一部（たとえば、特定の一部以外の全部）の制御モジュールを使用する第２のジョブにおいて、特定の一部の制御モジュールはウイルス感染のないことが確認されていない状態であり、他の一部の制御モジュールはウイルス感染のないことが確認されている状態である場合には、第２のジョブの実行が許可される。
【００１６】
詳細には、［１］の構成では、複数の制御モジュールの中でウイルス検査によってウイルス感染のないことが確認されている他の一部の制御モジュールを使用する第２のジョブの実行が許可される。［２］の構成では、複数の制御モジュールの中でウイルス検査によってウイルス感染のないことが確認されていない特定の一部の制御モジュールを使用しない第２のジョブの実行が許可される。
【００１７】
なお、ウイルス検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュール（ウイルス検査（ウイルス検出後の駆除を含む）が未実行または未完了の制御モジュールを含む）を使用するジョブは、実行を禁止するようにしてもよい。
【００１８】
これにより、ウイルス感染しているか否かが不明な制御モジュールを使用するジョブを実行してその制御モジュールを動作させ、その制御モジュールがウイルス感染していた場合にコンピュータウイルスによって不正な動作や感染の拡大などが起こされる可能性を回避しつつ、その可能性のない制御モジュールを使用するジョブは実行できるようになる。したがって、ウイルス検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができる。
【００１９】
［３］ジョブの実行に使用される複数の制御モジュールであって、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールと、
前記複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を行う検査部と、
前記検査部に１つのジョブで使用される制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる検査管理部と、
を備えたジョブ処理システム。
【００２０】
上記発明では、検査管理部は、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる複数の制御モジュールに対し、検査部に１つのジョブで使用される制御モジュール毎にコンピュータウイルスの感染の有無の検査を行わせる。このウイルス検査を行うタイミングは、たとえば、ジョブの実行に同期したタイミングでもよく、ジョブの実行に同期しないタイミング（非ジョブ処理期間、定期的、所定時刻）などでもよい。
【００２１】
このようなジョブ単位の制御モジュール毎にウイルス検査を行う構成であれば、たとえば、全ての制御モジュールに対するウイルス検査の完了を待たないとジョブを一切実行できないといったことはなく、ウイルス検査の完了した（ウイルス検査（ウイルス検出後の駆除を含む）によってウイルス感染のないことが確認されている）制御モジュールを使用するジョブは実行できるようになる。これにより、ウイルス検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができる。
【００２２】
［４］前記検査管理部は、ジョブの実行前に該ジョブの実行に使用される制御モジュールに対して前記検査部に前記検査を行わせる
ことを特徴とする［１］〜［３］のいずれか１項に記載のジョブ処理システム。
【００２３】
上記発明では、ジョブを実行する際に、そのジョブで使用する制御モジュールに対してウイルス検査を行う。これにより、制御モジュールがウイルス感染していないことを確認してから、またウイルス感染していた場合は駆除してから、そのジョブを実行し、そのジョブで使用する制御モジュールを動作させることができ、制御モジュールがウイルス感染していた場合にコンピュータウイルスによってもたらされる被害を確実に防止することができる。
【００２４】
また、これから実行するジョブで必要な制御モジュールに対してのみウイルス検査を行い、不要な制御モジュールに対する現時点では必要性の低いウイルス検査を行わないことで、ウイルス検査による処理負担を軽減することができる。またこれにより、ジョブの実行前に行うウイルス検査を迅速に完了してジョブの実行開始遅れを（最小限に）抑えることができ、生産性の低下を抑制することができる。
【００２５】
［５］前記検査管理部は、ジョブの実行後に該ジョブの実行に使用された制御モジュールに対して前記検査部に前記検査を行わせる
ことを特徴とする［１］〜［３］のいずれか１項に記載のジョブ処理システム。
【００２６】
上記発明では、ジョブを実行した場合は、そのジョブで使用した制御モジュールに対してウイルス検査を行う。これにより、ウイルス感染のないことを確認してから、またウイルス感染していた場合は駆除してから、次回以降の使用時にその制御モジュールを動作させることができ、次回の使用時などにコンピュータウイルスによってもたらされる被害を防止することができる。
【００２７】
また、使用した制御モジュールに対してのみウイルス検査を行い、使用していない制御モジュールに対する現時点では必要性の低いウイルス検査を行わないことで、ウイルス検査による処理負担を軽減することができる。また、制御モジュールの使用後（ジョブの実行後）にウイルス検査を開始することで、使用前（ジョブの実行前）にウイルス検査を開始する場合に比べて、その制御モジュールを次回以降に使用するジョブをより迅速に実行開始することができ、生産性の低下抑制効果が高められる。
【００２８】
［６］前記検査管理部は、前記検査によってコンピュータウイルスに感染していないことが確認されている制御モジュールについてはその確認後の所定期間は前記検査部に前記検査を省略させ、該制御モジュールについては、少なくとも前記所定期間は前記確認されている制御モジュールであると認識する
ことを特徴とする請求項［１］〜［５］のいずれか１項に記載のジョブ処理システム。
【００２９】
上記発明では、ウイルス検査によってウイルス感染のないことが確認されている制御モジュールについては、その確認後の所定期間は、すなわち、その確認に係るウイルス検査によってウイルス感染のないことが確認された以降の所定期間は、ウイルス検査を省略する。この制御モジュールについては、少なくとも所定期間は、ウイルス検査によってウイルス感染のないことが確認されている制御モジュールであると認識して扱う。
【００３０】
所定期間は、たとえば、制御モジュールの使用回数や使用時間（累積使用時間）などで構成してもよい。また所定期間は、任意の期間（任意の回数／時間）を設定するようにしてもよく、制御モジュールの継続使用を許容できる期間（継続使用・許容期間（許容回数／許容時間））などを設定するようにしてもよい。また、たとえば、少なくともその期間（回数／時間）までは制御モジュールがウイルス感染せずに使用可能であると予測できるのであればその期間を設定するようにしてもよい。この場合の期間は、ウイルス感染していない状態が維持されるとみなせる期間（ウイルス非感染状態・維持可能期間（維持可能回数／維持可能時間））などと換言することもできる。
【００３１】
なお、ジョブの実行前にそのジョブで使用する制御モジュールのウイルス検査を行う［２］の構成では、その制御モジュールに対するウイルス検査を、たとえばジョブの実行前に毎回行うのではなく、その制御モジュールに対するウイルス検査によるウイルス感染のないことの確認後の所定期間内に実行開始されるジョブの実行前は省略され、その所定期間経過後に実行開始されるジョブの実行前毎に行うようになる。ジョブの実行後にそのジョブで使用された制御モジュールのウイルス検査を行う［３］の構成では、その制御モジュールに対するウイルス検査を、たとえばジョブの実行後に毎回行うのではなく、その制御モジュールに対するウイルス検査によるウイルス感染のないことの確認後の所定期間内に実行終了されたジョブの実行後は省略され、その所定期間経過後に実行終了されたジョブの実行後毎に行うようになる。
【００３２】
このように、所定期間はウイルス検査を省略することで、ジョブの実行前や実行後に毎回ウイルス検査を行うような場合に比べて、実行開始が遅くなるジョブ数を減らすことができ、生産性の低下を抑制することができる。
【００３３】
［７］前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用する第１のジョブの実行を保留し、前記確認されている制御モジュールのみを使用する第２のジョブを実行開始する
ことを特徴とする［１］または［３］に記載のジョブ処理システム。
【００３４】
上記発明では、ウイルス感染のないことが確認されていない制御モジュールを使用するジョブは実行を保留にされ、ウイルス感染のないことが確認されている制御モジュールのみを使用するジョブは実行開始されるようになる。
【００３５】
［８］前記複数の制御モジュールの中で前記検査によってコンピュータウイルスに感染していないことが確認されていない制御モジュールを使用する第１のジョブの実行を保留し、前記確認されていない制御モジュールを使用しない第２のジョブを実行開始する
ことを特徴とする［２］または［３］に記載のジョブ処理システム。
【００３６】
上記発明では、ウイルス感染のないことが確認されていない制御モジュールを使用するジョブは実行を保留にされ、ウイルス感染のないことが確認されていない制御モジュールを使用しないジョブは実行開始されるようになる。
【００３７】
［９］前記第２のジョブの実行中に、前記第１のジョブの実行に使用される全ての制御モジュールについてコンピュータウイルスに感染していないことが確認された状態になり、前記第２のジョブよりも前記第１のジョブの優先度が高い場合は、前記第２のジョブの実行を中断して前記第１のジョブを実行する
ことを特徴とする［７］または［８］に記載のジョブ処理システム。
【００３８】
上記発明では、ジョブの実行中に、保留にされているジョブに使用される全ての制御モジュールについてコンピュータウイルスに感染していないことが確認された状態になり、実行中のジョブよりもその保留にされているジョブの優先度が高い場合には、実行中のジョブを中断してその保留にされているジョブを実行する。これにより、保留にされているジョブが実行可能になったときに、そのジョブと実行中のジョブのうち優先度の高い方のジョブを先に実行することができる。
【００３９】
［１０］前記第２のジョブは、他のジョブの実行による中断を受けずに実行終了させる
ことを特徴とする［７］または［８］に記載のジョブ処理システム。
【００４０】
上記発明では、実行開始したジョブは、たとえば、保留にした優先度の高いジョブが実行可能になったような場合でも、中断せずに実行終了させる。実行可能になったジョブは、この先に実行開始されたジョブの実行終了以降に実行開始する。これにより、ジョブの実行順序を管理する際の制御を簡素化することができる。
【００４１】
［１１］［１］〜［１０］のいずれか１項に記載のジョブ処理システムに含まれると共に、前記ジョブを画像データに係るジョブとして実行する画像処理装置であって、
前記検査管理部が前記検査を当該画像処理装置の外部の前記検査部に行わせる
ことを特徴とする画像処理装置。
【００４２】
上記発明では、画像処理装置の検査管理部は、当該装置内の複数の制御モジュールに対するコンピュータウイルスの感染の有無の検査を外部の検査部、たとえば、ウイルス検査機能を有する当該検査部を備えた外部のサーバなどに依頼する。画像処理装置からウイルス検査の依頼を受けた外部の検出部は、画像処理装置内の制御モジュール、たとえば、［１］および［２］の場合は複数の中の一部の制御モジュール毎に、［３］の場合は１つのジョブで使用される制御モジュール毎に、ウイルス検査を行う。このように、装置内の複数の制御モジュールに対するウイルス検査を外部の検出部に依頼する画像処理装置においても、ウイルス検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができる。
【発明の効果】
【００４３】
本発明のジョブ処理システムおよび画像処理装置によれば、コンピュータウイルスの検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施形態に係る画像処理装置としての複合機の概略構成を示すブロック図である。
【図２】複合機における制御部の機能構成を示す機能ブロック図である。
【図３】複合機のプリントキューで管理されるプリント系のジョブのデータ入力源、ジョブタイプ、データ入力先を示す図である。
【図４】複合機の送信キューで管理される送信系のジョブのデータ入力源、ジョブタイプ、データ入力先を示す図である。
【図５】複合機の保存キューで管理される保存系のジョブのデータ入力源、ジョブタイプ、データ入力先を示す図である。
【図６】複合機の制御部におけるジョブ管理部によるジョブの実行に係る管理の動作を示す流れ図である。
【図７】複合機の制御部におけるウイルス管理部によるウイルスチェック・駆除確認の動作を示す流れ図である。
【図８】ウイルス管理部によるウイルスチェック結果受信の動作を示す流れ図である。
【図９】ウイルス管理部によるウイルス駆除結果受信の動作を示す流れ図である。
【図１０】図７におけるジョブ実行のサブルーチンを示す流れ図である。
【図１１】本発明の第２の実施形態に係るジョブ管理部によるジョブ実行のサブルーチンを示す流れ図である。
【図１２】本発明の第３の実施形態に係るウイルス管理部によるウイルスチェック・駆除確認の動作を示す流れ図である。
【図１３】本発明の第３の実施形態に係るジョブ管理部によるジョブ実行のサブルーチンを示す流れ図である。
【発明を実施するための形態】
【００４５】
以下、図面に基づき本発明の実施形態を説明する。
【００４６】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る画像処理装置としての複合機（Multi Function Peripheral/Multi Function Printer；ＭＦＰ）１０の概略構成を示すブロック図である。
【００４７】
複合機１０は、原稿画像を光学的に読み取ってその複製画像を記録紙に印刷して出力するコピー機能、読み取った原稿の画像データ（スキャンデータ）をファイルにして保存したりパーソナルコンピュータ（Personal Computer；ＰＣ）からなる端末装置やサーバなどへ送信したりするスキャン機能、端末装置から受信した印刷データ（プリントデータ）に係る画像や当該複合機１０に保存されている画像データ（ファイル）に係る画像を記録紙に印刷して出力するプリンタ機能、画像データ（ファクシミリデータ）を送受信するファクシミリ機能、電子メールを送受信する電子メール機能、データ保存用に確保された記憶領域であるボックス（フォルダ）に各種の画像データを保存するボックス機能などを備えている。ボックスに保存される各種の画像データは、スキャンデータ、プリントデータ、受信したファクシミリデータや電子メール添付の画像データ（ファイル）、ＵＳＢ（Universal Serial Bus）メモリなどの外部記憶装置が接続されて入力された画像データ（ファイル）などである。
【００４８】
また複合機１０は、上記の複数の機能（処理機能）に対応する複数の制御モジュールを備えており、この複数の機能に係る複数種類のジョブの投入を受け付けて実行順序を管理しながら実行する機能を備えている。制御モジュールは、ジョブの実行に係る処理を行うために動作させる各部をプログラムに従って制御するモジュールである。動作させる各部、およびそれを制御するために動作させる制御モジュールは、ジョブの種類（使用する処理機能）に応じて異なる。この複数の制御モジュールは、ジョブに応じて使用される１または複数の制御モジュールの組み合わせが異なる構成となっており、ジョブの実行時にそのジョブに応じた制御モジュールが動作してそのジョブの実行に係る制御を行う構成となっている。
【００４９】
また複合機１０は、自機内に存在するコンピュータウイルスの検査、検出、駆除を行う機能、複数の制御モジュールに対しては、１つのジョブで使用される制御モジュール毎（複数の中の一部の制御モジュール毎）にそのウイルス検査、検出、駆除を行う機能、ウイルス検査または駆除が完了した制御モジュールのみを使用するジョブ（ウイルス検査または駆除が未実行または未完了の制御モジュールを使用しないジョブ）の実行を許可し、ウイルス検査または駆除が未実行または未完了の制御モジュールを使用するジョブの実行を禁止（保留／待機）する機能、ウイルス検査または駆除が完了した制御モジュールについてはその完了後の所定期間はウイルス検査を省略し、その制御モジュールについては、少なくともその所定期間はウイルス感染のないことが確認されている制御モジュールであると認識する機能を備えている。所定期間は、制御モジュールの使用回数（動作回数）によって構成しており、使用回数が所定回数に達するまではその制御モジュールに対するウイルス検査を省略するようにしている。
【００５０】
詳細には、ジョブの実行前にそのジョブの実行に使用される制御モジュールに対してウイルス検査を行い、ウイルス感染が検出された場合はウイルス駆除を行う機能、その制御モジュールの使用回数が所定回数に達するまではウイルス検査を省略する機能、ウイルス検査中または駆除中の制御モジュールを使用する第１のジョブの実行を保留し、ウイルス検査中または駆除中でない制御モジュールのみを使用する第２のジョブを実行開始する機能を備えている。さらに、第２のジョブの実行中に、第１のジョブの実行に使用される制御モジュールのウイルス検査または駆除が完了し、第２のジョブよりも第１のジョブの優先度が高い場合には、第２のジョブの実行を中断して第１のジョブを実行する機能（割り込み機能）を備えている。
【００５１】
複合機１０は、制御部としてのＣＰＵ（Central Processing Unit）１１に、バス１２を介してＲＯＭ（Read Only Memory）１３と、ＲＡＭ（Random Access Memory）１４と、不揮発メモリ１５と、ハードディスク装置１６と、表示部１７と、操作部１８と、認証部１９と、スキャナ部２０と、画像処理部２１と、プリンタ部２２と、ファクシミリ通信部２３と、ネットワーク通信部２４と、接続部２５を接続して構成される。
【００５２】
ＣＰＵ１１は、ＲＯＭ１３に格納されているプログラムに基づいて複合機１０の動作を制御する。ＲＡＭ１４は、ＣＰＵ１１がプログラムを実行する際に各種データを一時的に格納するワークメモリとして使用されるほか、画像データを一時的に保存するための画像メモリなどにも使用される。
【００５３】
不揮発メモリ１５は、電源がオフされても記憶が保持されるメモリであり、装置固有の情報や各種の設定情報、ユーザの認証情報、ウイルスチェック（ウイルス検査）で使用されるウイルス定義ファイルなどが記憶される。ハードディスク装置１６は、各種の保存データを格納するほか、入力された各種の画像データなども保存する。ハードディスク装置１６には、この画像データを保存するボックス（データ保存用の記憶領域）が設けられている。なお、ウイルス定義ファイルは、不揮発メモリ１５ではなくハードディスク装置１６に保存するようにしてもよい。
【００５４】
ウイルス定義ファイルは、コンピュータウイルスを検出するために使用される、コンピュータウイルスの特徴（特徴的なパターン）を収録したファイルである（パターンファイル）。ウイルス定義ファイルは、たとえば、複合機１０が専用のサーバにアクセスするなどして随時更新される。
【００５５】
表示部１７は、液晶ディスプレイなどで構成され、操作画面、設定画面、確認画面、通知画面などの各種の画面を表示する。操作部１８は、スタートキー、ストップキー、テンキーなどの各種のボタン類と、液晶ディスプレイの表面に設けられて押下された座標位置を検出するタッチパネルなどで構成され、ユーザが複合機１０に対して行う各種の操作を受け付ける。
【００５６】
認証部１９は、ユーザが入力した認証情報と、複合機１０に記憶されている照合用の認証情報とを比較するなどによりユーザの識別（特定）および認証を行う。
【００５７】
スキャナ部２０は、原稿を光学的に読み取って画像データを取得する。スキャナ部２０は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００５８】
画像処理部２１は、画像データに対して、画像補正、回転、拡大／縮小、圧縮／伸張など各種の画像処理を施す。
【００５９】
プリンタ部２２は、画像データに基づく画像を電子写真プロセスによって記録紙上に形成して出力する。プリンタ部２２は、たとえば、記録紙の搬送装置と、感光体ドラムと、帯電装置と、入力される画像データに応じて点灯制御されるＬＤ（Laser Diode）と、ＬＤから射出されたレーザ光を感光体ドラム上で走査させる走査ユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有する、いわゆるレーザープリンタとして構成されている。レーザ光に代えてＬＥＤ（Light Emitting Diode）で感光体ドラムを照射するＬＥＤプリンタのほか他の方式のプリンタであってもかまわない。
【００６０】
ファクシミリ通信部２３は、ファクシミリ機能を備えた外部装置と公衆回線を通じて画像データを送受信する。ネットワーク通信部２４は、ＬＡＮ（Local Area Network）などのネットワークを通じて端末装置やサーバなどと通信を行う。接続部２５は、ＵＳＢメモリや各種カード型メモリなどの携帯型記憶装置、光磁気記憶装置やハードディスク装置などのディスク型記憶装置といった外部記憶装置が接続される。
【００６１】
図２は、制御部としてのＣＰＵ１１における機能構成を示す機能ブロック図である。制御部（ＣＰＵ１１）は、ジョブ管理部３１と、ウイルス管理部３２と、ウイルスチェック部３３と、ウイルス駆除部３４と、スキャン制御部３５と、プリント制御部３６と、ファクシミリ通信制御部３７と、ネットワーク通信制御部３８と、接続制御部３９と、ファイルシステム部４０などを備えている。本図の右側に示すジョブ管理部３１からウイルス駆除部３４までは、制御部の機能部分を構成する機能ブロックである。制御部における機能部分は、この４つの機能ブロックに機能分けされている。また、本図の左側に示すスキャン制御部３５からファイルシステム部４０までが本実施形態における制御モジュールである。
【００６２】
ジョブ管理部３１は、ジョブの生成、実行、優先順位（優先度）などに関する管理を行う、ジョブ処理に係るメインコントローラ（許可部）としての機能を果たす。ジョブの実行および優先順位の管理は、ジョブキューによって行う。ジョブの実行時には、そのジョブに応じた制御モジュールに対して制御の実行指示を行う。ジョブと制御モジュール（複数種類のジョブと複数の制御モジュール）の対応関係を示す情報は、図示しない関係テーブルに格納されている。ジョブ管理部３１は、この関係テーブルを参照してジョブに対応する制御モジュールを認識する。
【００６３】
スキャン制御部３５は、スキャンジョブやコピージョブなどの実行時にプログラムに従ってスキャナ部２０の動作を制御したり、スキャナ部２０が原稿を読み取って取得した画像データのスキャナ部２０からの出力を制御したりする機能を果たす。
【００６４】
プリント制御部３６は、プリントジョブの実行時にプログラムに従ってプリンタ部２２の動作を制御したり、端末装置から受信したページ記述言語（Page Description Language；ＰＤＬ）のプリントデータをビットマップデータに変換するデータ変換処理を行ったりするＰＤＬインタプリタとしての機能を果たす。
【００６５】
ファクシミリ通信制御部３７は、ファクシミリジョブ（送信／受信ジョブ）の実行時にプログラムに従ってファクシミリ通信部２３の動作を制御したり、ファクシミリ通信部２３が受信した画像データのファクシミリ通信部２３からの出力を制御したりする機能を果たす。
【００６６】
ネットワーク通信制御部３８は、ＰＣプリントジョブの実行時（端末装置からのプリントデータの受信時）や電子メール添付による画像データの送信／受信ジョブの実行時などにプログラムに従ってネットワーク通信部２４の動作を制御したり、ネットワーク通信部２４が受信したデータのネットワーク通信部２４からの出力を制御したりする機能を果たす。
【００６７】
接続制御部３９は、接続部２５に接続された外部記憶装置（ＵＳＢメモリなど）とファイル（画像データ）をやり取りするときなどにプログラムに従って接続部２５の動作を制御したり、接続部２５が外部記憶装置から入力を受けたファイルの接続部２５からの出力を制御したりする機能を果たす。
【００６８】
ファイルシステム部４０は、プログラムに従ってハードディスク装置１６内におけるファイル（画像データ）の管理、具体的にはファイルの記憶、変更（更新）、移動、削除などのファイル管理を行う機能を果たす。ファイルをハードディスク装置１６内のＢＯＸに保存する保存ジョブ（ＢＯＸ保存ジョブ）の実行時には、プログラムに従ってファイルをＢＯＸに保存する機能を果たす。
【００６９】
ウイルス管理部３２は、複合機１０内のプログラム（制御モジュールのプログラムを含む）やデータに対するウイルスチェックおよびウイルス駆除に関する管理を行う機能を果たす。制御モジュールのウイルスチェック／駆除に関する管理では、ウイルスチェック部３３／ウイルス駆除部３４に対するウイルスチェック／駆除の実行指示とその結果確認（完了報告の受信）、ジョブ管理部３１への完了通知などを行う。
【００７０】
ウイルスチェック部３３は、ウイルスチェックプログラムに従い、ウイルス定義ファイルを用いて複合機１０内のプログラムやデータに対しウイルスチェックを行う機能を果たす。さらに、スキャン制御部３５からファイルシステム部４０までの複数の制御モジュール（各制御モジュールのプログラム）に対しては、ウイルスチェックを個別に実行する機能を備えている。ウイルスチェックは、ウイルス定義ファイルとの照合によってコンピュータウイルスを検出するパターンマッチングなどの手法を用いて行う。
【００７１】
ウイルス駆除部３４は、検出されたコンピュータウイルスをウイルス駆除プログラムに従って駆除する機能を果たす。さらに、スキャン制御部３５からファイルシステム部４０までの複数の制御モジュール（制御モジュールのプログラムに感染しているコンピュータウイルス）に対しては、ウイルス駆除を個別に実行する機能を備えている。
【００７２】
前述したように、ジョブ管理部３１はジョブの実行に係る管理をジョブキューによって行う。ジョブは、データ出力先の種類によってプリント系、送信系、保存系などの大カテゴリに分類（大別）され、更に各カテゴリ内でデータ入力源の種類によって小カテゴリに分類（小別）される。ジョブキューは、大カテゴリ別（系列別）に複数種類が設けられている。以下では、各種のジョブキューで管理されるジョブの種類（ジョブタイプ）と、データ入力源およびデータ出力先について説明する。
【００７３】
図１に示したスキャナ部２０、ファクシミリ通信部２３、ネットワーク通信部２４、接続部２５、およびハードディスク装置１６のＢＯＸは、画像データの入力を行うデータ入力源となっている。この場合のＢＯＸは、保存されている画像データ（ファイル）を出力する際のデータ入力源である。また、プリンタ部２２、ファクシミリ通信部２３、ネットワーク通信部２４、接続部２５、およびハードディスク装置１６のＢＯＸは、画像データの出力を行うデータ出力先となっている。この場合のＢＯＸは、入力された画像データ（ファイル）を保存する際のデータ出力先である。
【００７４】
図３〜図５に、データ入力源とデータ出力先の組み合わせによるジョブタイプと、各ジョブタイプのジョブを管理するジョブキューの関係を示す。
【００７５】
図３は、プリントキュー５１で管理されるプリント系のジョブ（ＸＸプリントジョブ）のデータ入力源、ジョブタイプ、データ出力先を示す図である。プリント系のジョブは、画像データのプリント処理を行うジョブであり、画像データの出力先がプリンタ部２２となる。
【００７６】
プリント系のジョブの詳細な分類（ジョブタイプ）は、スキャナ部２０をデータ入力源とし、スキャナ部２０で原稿をスキャンして入力された画像データのプリント処理を行うコピープリントジョブと、ファクシミリ通信部２３をデータ入力源とし、通信相手機からファクシミリ通信部２３で受信した画像データのプリント処理を行うファクシミリ受信プリントジョブ（Ｆａｘ受信プリントジョブ）と、ネットワーク通信部２４をデータ入力源とし、端末装置（ＰＣ）からネットワーク通信部２４で受信したプリントデータ（画像データ）のプリント処理を行うＰＣプリントジョブと、ハードディスク装置１６のＢＯＸをデータ入力源とし、ＢＯＸから入力された画像データのプリント処理を行うＢＯＸプリントジョブと、接続部２５をデータ入力源とし、接続部２５に接続されたＵＳＢメモリなどから入力された画像データのプリント処理を行うＵＳＢプリントジョブなどである。
【００７７】
コピープリントジョブと、ＢＯＸプリントジョブと、ＵＳＢプリントジョブでは、複合機１０が表示部１７および操作部１８を通じてユーザからジョブの設定および実行の指示を受け付ける。ジョブ管理部３１は、このユーザ操作によるジョブの投入を受けると、設定内容からジョブタイプ（スキャン（コピー）／ＢＯＸ／ＵＳＢ＋プリント）を判別すると共に設定内容に基づいてジョブを生成し、そのジョブをプリントキュー５１に登録して実行に係る管理を行う。
【００７８】
ファクシミリ受信プリントジョブとＰＣプリントジョブでは、送信されてくるジョブデータにジョブタイプを示す情報が付加されている。ジョブ管理部３１は、この受信によるジョブの投入を受けると、受信したジョブデータに付加されている情報からジョブタイプ（ファクシミリ受信／ＰＣ＋プリント）を判別し、そのジョブをプリントキュー５１に登録して実行に係る管理を行う。
【００７９】
図４は、送信キュー５２で管理される送信系のジョブ（ＸＸ送信ジョブ）のデータ入力源、ジョブタイプ、データ出力先を示す図である。送信系のジョブは、画像データのファクシミリ送信処理やメール送信処理を行うジョブであり、画像データの出力先がファクシミリ通信部２３やネットワーク通信部２４となる。なお、送信系のジョブでは、同一の画像データに対するファクシミリ送信とメール送信を１つのジョブで同時に行うことも可能である。
【００８０】
送信系のジョブの詳細な分類（ジョブタイプ）は、スキャナ部２０をデータ入力源とし、スキャナ部２０で原稿をスキャンして入力された画像データの送信処理を行うスキャン送信ジョブと、ハードディスク装置１６のＢＯＸをデータ入力源とし、ＢＯＸから入力された画像データの送信処理を行うＢＯＸ送信ジョブと、接続部２５をデータ入力源とし、接続部２５に接続されたＵＳＢメモリなどから入力された画像データの送信処理を行うＵＳＢ送信ジョブなどである。
【００８１】
送信系のジョブでは、複合機１０が表示部１７および操作部１８を通じてユーザからジョブの設定および実行の指示を受け付ける。ジョブ管理部３１は、このユーザ操作によるジョブの投入を受けると、設定内容からジョブタイプ（スキャン／ＢＯＸ／ＵＳＢ＋送信）を判別すると共に設定内容に基づいてジョブを生成し、そのジョブを送信キュー５２に登録して実行に係る管理を行う。
【００８２】
ファクシミリ受信プリントジョブとＰＣプリントジョブについては、送信されてくるジョブデータにジョブタイプを示す情報が付加されている。ジョブ管理部３１は、この受信によるジョブの投入を受けると、受信したジョブデータに付加されている情報からジョブタイプ（ファクシミリ受信／ＰＣ＋プリント）を判別し、そのジョブを送信キュー５２に登録して実行に係る管理を行う。
【００８３】
図５は、保存キュー５３で管理される保存系のジョブ（ＸＸ保存ジョブ）のデータ入力源、ジョブタイプ、データ出力先を示す図である。保存系のジョブは、画像データの保存処理（ＢＯＸ保存処理）を行うジョブであり、画像データの出力先がハードディスク装置１６のＢＯＸとなる。なお、保存系のジョブには、画像データの外部記憶保存処理（ＵＳＢ保存処理など）を行うジョブも含まれる。このジョブの場合は、図示は省略するが、画像データの出力先が接続部２５（接続部２５に接続されたＵＳＢメモリなど）となる。
【００８４】
保存系のジョブの詳細な分類（ジョブタイプ）は、スキャナ部２０をデータ入力源とし、スキャナ部２０で原稿をスキャンして入力された画像データの保存処理を行うスキャン入力保存ジョブと、ファクシミリ通信部２３をデータ入力源とし、通信相手機からファクシミリ通信部２３で受信した画像データの保存処理を行うファクシミリ受信保存ジョブ（Ｆａｘ受信保存ジョブ）と、ネットワーク通信部２４をデータ入力源とし、端末装置（ＰＣ）からネットワーク通信部２４で受信したプリントデータ（画像データ）の保存処理を行うＰＣ受信保存ジョブと、接続部２５をデータ入力源とし、接続部２５に接続されたＵＳＢメモリなどから入力された画像データの保存処理を行うＵＳＢ入力保存ジョブなどである。
【００８５】
スキャン入力保存ジョブとＵＳＢ入力保存ジョブでは、複合機１０が表示部１７および操作部１８を通じてユーザからジョブの設定および実行の指示を受け付ける。ジョブ管理部３１は、このユーザ操作によるジョブの投入を受けると、設定内容からジョブタイプ（スキャン入力／ＵＳＢ＋保存）を判別すると共に設定内容に基づいてジョブを生成し、そのジョブを保存キュー５３に登録して実行に係る管理を行う。
【００８６】
ファクシミリ受信保存ジョブとＰＣ受信保存ジョブでは、送信されてくるジョブデータにジョブタイプを示す情報が付加されている。ジョブ管理部３１は、この受信によるジョブの投入を受けると、受信したジョブデータに付加されている情報からジョブタイプ（ファクシミリ受信／ＰＣ受信＋保存）を判別し、そのジョブを保存キュー５３に登録して実行に係る管理を行う。
【００８７】
次に、複合機１０の動作について説明する。
【００８８】
複合機１０では、制御部（ＣＰＵ１１）のジョブ管理部３１は、投入されたジョブをジョブキューに登録し、登録順（投入順）の優先順位で実行する管理を行う。詳細には、ジョブ管理部３１は投入されたジョブをプリント系、送信系、保存系に分類し、プリント系のジョブはプリントキュー５１に登録して登録順の優先順位で実行する管理を行う。送信系のジョブは送信キュー５２に登録して登録順の優先順位で実行する管理を行う。保存系のジョブは保存キュー５３に登録して登録順の優先順位で実行する管理を行う。またジョブ管理部３１は、異なるジョブキューに登録されたジョブ同士の優先順位も互いの登録順に従って決定する。
【００８９】
本実施形態では、ジョブ管理部３１は投入されたジョブを３つに分類し、３つのジョブキューに振り分けて登録・管理するようにしているが、実質的には全てのジョブが１つのジョブキューに登録されているものとして、登録順（投入順）の優先順位で実行する管理を行うようになっている。以下の複合機１０（ジョブ管理部３１）の動作に関する説明では、上記の３つのジョブキューを用いたジョブの実行に係る管理を、特にジョブキュー毎に区別せずに、１つのジョブキューで管理しているものとして説明する。
【００９０】
また、ジョブの実行前には、そのジョブの実行に使用される制御モジュールに対し、ウイルス管理部３２がその制御モジュールのウイルスチェック／駆除の状況（実行中／非実行中）や使用回数に基づいてウイルスチェックを行うか否かを判断する。
【００９１】
制御モジュールの使用回数は、制御モジュール毎に設けられた図示しない実行カウンタによってカウントするようにしている。ここでは、実行カウンタの初期値を「０」とし、ジョブを実行する毎に、そのジョブの実行に伴い使用した制御モジュールに対応する実行カウンタを１カウントずつアップすることで、その制御モジュールの使用回数をカウントするようにしている。この実行カウンタのカウント値が所定値Ａ未満であればウイルスチェック不要と判断し、所定値Ａ以上であればウイルスチェック必要と判断するようにしている。実行カウンタは、対応する制御モジュールのウイルスチェック／駆除が完了すると「０リセット」されるようになっている。
【００９２】
またジョブ管理部３１は、実行を開始しようとするジョブ（ジョブタイプ）に使用する制御モジュールに対し、ウイルス管理部３２が現時点ではウイルスチェック不要と判断した場合には、当該ジョブの実行を許可し、その制御モジュールに当該ジョブの実行に係る制御を行うように指示する（ジョブ実行開始）。ウイルス管理部３２が現時点でウイルスチェック必要と判断した場合には、ジョブ管理部３１はその制御モジュールを使用する当該ジョブの実行を保留する（待機ジョブ）。この場合、ウイルス管理部３２はウイルスチェック部３３にその制御モジュールに対するウイルスチェックを行うように指示する（ウイルスチェック実行開始）。ウイルス感染が検出された場合には、ウイルス管理部３２はウイルス駆除部３４にその制御モジュールに対するウイルス駆除を行うように指示する（ウイルス駆除実行開始）。
【００９３】
また、ウイルス管理部３２が現時点で当該ジョブに使用する制御モジュールがウイルスチェックの実行中またはウイルス駆除の実行中であると判断した場合も、ジョブ管理部３１はその制御モジュールを使用する当該ジョブの実行を保留する（待機ジョブ）。
【００９４】
ジョブ管理部３１は、実行を保留にしたジョブについては、ウイルス管理部３２がそのジョブで使用される全ての制御モジュールに対するウイルスチェックまたはウイルス駆除が完了したと判断した場合に（駆除成功）、保留を解除する。またウイルス管理部３２は、ウイルス駆除ができなかった制御モジュールがある場合には（駆除失敗）、その制御モジュールの使用を禁止し、その制御モジュールを使用する全てのジョブ（待機ジョブ）をジョブキューから削除する。この場合は、管理者およびジョブ投入ユーザに通知を行う。
【００９５】
上記のジョブの待機／非待機の状態は、待機ジョブフラグを用いて管理するようにしている。ウイルスチェック／駆除の実行中／非実行中の状態（ジョブ実行可能／不可の状態）は、ジョブ実行不可フラグを用いて管理するようにしている。
【００９６】
待機ジョブが発生した場合、ジョブ管理部３１はジョブキューに登録されている他のジョブの中に、ウイルス管理部３２が現時点ではウイルスチェック不要と判断した制御モジュールのみを使用して実行するジョブ（ウイルスチェック必要と判断した制御モジュール（ウイルスチェック実行中／駆除実行中の制御モジュールを含む）を使用せずに実行するジョブ）が存在する場合には、登録順の早いジョブから優先的に実行を許可し、実行を開始する。このジョブの実行中に、このジョブよりも優先順位の高い待機ジョブで使用される全ての制御モジュールに対するウイルスチェックまたはウイルス駆除が完了した場合には（駆除成功）、その待機ジョブに対する保留を解除して実行を許可し、実行中のジョブを中断してその待機ジョブの実行を開始する（割り込み制御）。他のジョブの割り込みを受けて実行を中断したジョブは、割り込んだジョブの終了後に再開する。
【００９７】
以下では、上述したジョブ管理部３１とウイルス管理部３２の動作を詳細に説明する。
【００９８】
図６は、ジョブ管理部３１によるジョブの実行に係る管理の動作の流れを示す図である。本動作は、ジョブキューにジョブが登録されていない状態でジョブが投入され、ジョブキューに登録されると開始される。また、ジョブキューに登録された全てのジョブの実行が終了し、ジョブキューから削除されて管理するジョブが無くなると終了される。
【００９９】
ジョブ管理部３１は、本動作を開始すると、ジョブキューに登録された１番目のジョブ（最初は登録順の１番早いジョブ）を取得し（ステップＳ１０１）、ウイルス管理部３２に対してウイルスチェック・駆除確認を指示する（ステップＳ１０２）。ウイルス管理部３２は、この指示を受けるとウイルスチェック・駆除確認の動作を開始する。
【０１００】
図７は、ウイルス管理部３２によるウイルスチェック・駆除確認の動作の流れを示す図である。
【０１０１】
ウイルス管理部３２は、本動作を開始すると、ジョブ管理部３１がジョブキューから取得したジョブのタイプ（ジョブタイプ）を判別する（ステップＳ１１１）。たとえば、ウイルス管理部３２がウイルスチェック・駆除確認の指示に伴いジョブタイプの情報をウイルス管理部３２へ通知する、あるいは、ウイルス管理部３２がジョブ管理部３１にジョブタイプの情報を要求して通知を受けるなどにより、ウイルス管理部３２はジョブタイプを判別する。
【０１０２】
さらにウイルス管理部３２は、判別したタイプのジョブに関連（対応）する制御モジュール（当該ジョブの実行に使用される制御モジュール）を判別する（ステップＳ１１２）。前述したように、ジョブ管理部３１は、ジョブと制御モジュールの対応関係を示す情報が格納された関係テーブルを参照してジョブに対応する制御モジュールを認識する。ここでは、たとえば、ジョブ管理部３１がウイルスチェック・駆除確認の指示に伴い制御モジュールの情報をウイルス管理部３２へ通知する、あるいは、ウイルス管理部３２がジョブ管理部３１に制御モジュールの情報を要求して通知を受けるなどにより、ウイルス管理部３２はこのジョブに関連する制御モジュールを判別する。ジョブに関連する制御モジュールは、以下では「関連モジュール」と略称する場合がある。
【０１０３】
続いてウイルス管理部３２は、判別した関連モジュールに関する情報を取得する（ステップＳ１１３）。ここで取得する情報は、関連モジュールがウイルスチェックまたはウイルス駆除の実行中であるか否かの情報と、関連モジュールに対応する実行カウンタのカウンタ値である。ウイルスチェック／駆除の状況に係る情報は、ウイルス管理部３２自身が管理する。詳細には、ウイルス管理部３２がウイルスチェック部３３／ウイルス駆除部３４に対して実行を指示したウイルスチェック／駆除の完了報告を受けるまではその実行中であると判断する。ウイルスチェック／駆除の実行指示と、実行カウンタのカウンタ値の詳細は後述する。
【０１０４】
通常は、１つのジョブに対して、データ入力源側の関連モジュールと、データ出力先側の関連モジュールの少なくとも２つの関連モジュールが存在する。ウイルス管理部３２は、ここではそのジョブで使用される複数の関連モジュールのうちの未チェックの１つの関連モジュールに関する情報を取得する。
【０１０５】
関連モジュールがウイルスチェックまたはウイルス駆除の実行中でなく（ステップＳ１１４；Ｎｏ）、かつ、実行カウンタのカウンタ値が所定値Ａ未満である場合には（ステップＳ１１５；Ｙｅｓ）、ウイルス管理部３２は、このジョブに対応するジョブ実行不可フラグをリセットし（ステップＳ１１８）、ステップＳ１１９へ移行する。
【０１０６】
ジョブ実行不可フラグは、ジョブが実行可能であるか否かを示すジョブ毎に設けられるフラグである。フラグ・リセット状態は実行可能であることを示し、フラグ・セット状態は実行不可であることを示す。ジョブ実行不可フラグは、初期状態ではリセットされている。
【０１０７】
実行カウンタのカウンタ値が所定値Ａ以上である場合には（ステップＳ１１５；Ｎｏ）、ウイルス管理部３２はウイルスチェック部３３にこの関連モジュールに対するウイルスチェックの開始を指示し（ステップＳ１１６）、このジョブに対応するジョブ実行不可フラグをセットして（ステップＳ１１７）、ステップＳ１１９へ移行する。ウイルスチェック部３３は、ウイルス管理部３２から上記指示を受けるとその関連モジュールに対するウイルスチェックを開始する。
【０１０８】
また、この関連モジュールがウイルスチェックまたはウイルス駆除の実行中である場合には（ステップＳ１１４；Ｙｅｓ）、ウイルス管理部３２は、このジョブに対応するジョブ実行不可フラグをセットし（ステップＳ１１７）、ステップＳ１１９へ移行する。
【０１０９】
他に関連モジュールが有る場合には（ステップＳ１１９；Ｙｅｓ）、ステップＳ１１３へ戻り、以降のステップを同様に行う。なお、関連モジュールが複数有る場合には（通常は１つのジョブでデータ入力源側とデータ出力先側の少なくとも２つの関連モジュールが存在する）、ステップＳ１１８によるジョブ実行不可フラグのリセットは、全ての関連モジュールについて、ウイルスチェック／駆除が非実行中で（ステップＳ１１４；Ｎｏ）、かつ、実行カウンタのカウンタ値が所定値Ａ未満（ステップＳ１１５；Ｙｅｓ）である場合のみ行う。これ以外の場合には、すなわち、１つでもウイルスチェック／駆除が実行中（ステップＳ１１４；Ｙｅｓ）、または、実行カウンタのカウンタ値が所定値Ａ以上（ステップＳ１１５；Ｎｏ）であれば、ジョブ実行不可フラグをセットするようにする。
【０１１０】
他に関連モジュールが無い場合には（ステップＳ１１９；Ｎｏ）、ウイルス管理部３２は本動作を終了し、指示された本ウイルスチェック・駆除確認が完了したことをジョブ管理部３１へ通知する（Ｒｅｔｕｒｎ）。
【０１１１】
また、本動作のステップＳ１１６でウイルス管理部３２がウイルスチェック部３３に関連モジュールに対するウイルスチェックの開始を指示すると、ウイルスチェック部３３はその関連モジュールに対するウイルスチェックを開始する。ウイルスチェックを完了すると、ウイルスチェック部３３はその関連モジュールのウイルス感染の有無を、すなわち、その関連モジュールのプログラム内からコンピュータウイルスを検出したか否かを、ウイルスチェックの結果としてウイルス管理部３２へ報告する（ウイルスチェック完了報告）。
【０１１２】
図８は、ウイルス管理部３２がウイルスチェック部３３から関連モジュールのウイルスチェックの結果の報告を受けたときに行うウイルスチェック結果受信の動作の流れを示す図である。ウイルス管理部３２は、ウイルスチェック部３３から上記報告を受けると本動作を開始する。
【０１１３】
ウイルス管理部３２は、関連モジュールに対するウイルスチェックの結果として、ウイルス感染無しの報告を受けた場合には（ステップＳ１２１；Ｎｏ）、この関連モジュールに対応する実行カウンタをリセットし（ステップＳ１２３）、この関連モジュールに対するウイルスチェックが完了したことをジョブ管理部３１へ通知して（ステップＳ１２４／ウイルスチェック完了通知）、本動作を終了する。
【０１１４】
ウイルス管理部３２は、関連モジュールに対するウイルスチェックの結果として、ウイルス感染有りの報告を受けた場合には（ステップＳ１２１；Ｙｅｓ）、ウイルス駆除部３４にこの関連モジュールに対するウイルス駆除を指示し（ステップＳ１２２）、本動作を終了する。ウイルス駆除部３４は、ウイルス管理部３２から上記指示を受けるとその関連モジュールに対するウイルス駆除を実行する。
【０１１５】
ウイルス駆除の実行を終えると、ウイルス駆除部３４はその関連モジュールのウイルス駆除の成功または失敗を、すなわち、その関連モジュールのプログラム内から検出されたコンピュータウイルスを駆除できたか否かを、ウイルス駆除の結果としてウイルス管理部３２へ報告する（ウイルス駆除完了報告）。
【０１１６】
図９は、ウイルス管理部３２がウイルス駆除部３４から関連モジュールのウイルス駆除の結果の報告を受けたときに行うウイルス駆除結果受信の動作の流れを示す図である。ウイルス管理部３２は、ウイルス駆除部３４から上記報告を受けると本動作を開始する。
【０１１７】
ウイルス管理部３２は、関連モジュールに対するウイルス駆除の結果として、ウイルス駆除成功の報告を受けた場合には（ステップＳ１３１；Ｙｅｓ）、この関連モジュールに対応する実行カウンタをリセットし（ステップＳ１３６）、この関連モジュールに対するウイルスチェック（ウイルス駆除成功を含むウイルスチェック）が完了したことをジョブ管理部３１へ通知して（ステップＳ１３７／ウイルスチェック完了通知）、本動作を終了する。
【０１１８】
ウイルス管理部３２は、関連モジュールに対するウイルス駆除の結果として、ウイルス駆除失敗の報告を受けた場合には（ステップＳ１３１；Ｎｏ）、この関連モジュールを使用禁止し（ステップＳ１３２）、その旨を管理者へ通知する（ステップＳ１３３）。たとえば、ウイルス駆除に失敗して使用禁止した関連モジュールの情報、駆除に失敗したコンピュータウイルスの情報などを記載した電子メールを管理者の端末装置へ送信するなどして管理者へ通知する。
【０１１９】
また、ウイルス管理部３２はジョブキューに登録・管理されている、この関連モジュールを使用するジョブを検索して削除し（ステップＳ１３４）、削除したジョブの投入ユーザにその投入されたジョブを削除した旨を通知して（ステップＳ１３５）、本動作を終了する。ジョブ投入ユーザへの通知は、たとえば、投入されたジョブで使用する制御モジュールのウイルス駆除に失敗し、そのジョブを実行できないため削除したなどの内容を記載した電子メールをそのジョブの投入ユーザの端末装置へ送信するなどして行う。
【０１２０】
図６のステップＳ１０２で、ジョブ管理部３１はウイルス管理部３２からウイルスチェック・駆除確認が完了したことの通知を受けると（図７のＲｅｔｕｒｎ）、ジョブが実行可能であるか否かをジョブ実行不可フラグに基づいて判断する（ステップＳ１０３）。フラグ・リセット状態の場合は実行可能であると判断する。この場合は、ジョブの実行を許可し、ジョブ（現在ジョブ）をサブルーチンにて実行する（ステップＳ１０７）。本サブルーチンの詳細については後述する。
【０１２１】
続いてジョブ管理部３１は、ジョブキューにジョブが有るか否かを確認する（ステップＳ１０８）。ジョブキューにジョブが無い場合は（ステップＳ１０８；Ｎｏ）、本動作を終了する（Ｅｎｄ）。ジョブキューにジョブが有る場合は（ステップＳ１０８；Ｙｅｓ）、ステップＳ１０１へ戻り、ジョブキューの１番目のジョブに対し、再び以降のステップを繰り返す。
【０１２２】
ジョブ管理部３１は、ステップＳ１０３によるジョブ実行不可フラグに基づいたジョブの実行可否判断で、フラグ・セット状態の場合は実行不可であると判断する（ステップＳ１０３；Ｎｏ）。この場合は、ジョブの実行を保留し、このジョブに対応する待機ジョブフラグをセットして（ステップＳ１０４）、ステップＳ１０５へ移行する。
【０１２３】
待機ジョブフラグは、ジョブが待機状態であるか否かを示すジョブ毎に設けられるフラグである。フラグ・リセット状態は待機状態でないことを示し、フラグ・セット状態は待機状態であることを示す。待機ジョブフラグは、初期状態ではリセットされている。
【０１２４】
続いてジョブ管理部３１は、ジョブキューに次のジョブが有るか否かを確認する（ステップＳ１０５）。次のジョブが無い場合は（ステップＳ１０５；Ｎｏ）、ステップＳ１０１へ戻り、ジョブキューの１番目のジョブに対し、再び以降のステップを繰り返す。このステップＳ１０１〜ステップＳ１０５を繰り返している間に、１番目のジョブに対応するジョブ実行不可フラグがフラグ・リセット状態に更新されたことを確認した場合は、このジョブが実行可能であると判断する。この場合は、このジョブの保留を解除して実行を許可し、このジョブに対応する待機ジョブフラグをリセットして、ステップＳ１０７（「ジョブ実行」）へ移行する。
【０１２５】
また、１番目のジョブの保留後にジョブキューに次のジョブが有る場合、または、１番目のジョブの保留状態でステップＳ１０１〜ステップＳ１０５を繰り返している間にジョブキューに次のジョブが登録された場合には（ステップＳ１０５；Ｙｅｓ）、ウイルス管理部３２はそのジョブを取得し（ステップＳ１０６）、ステップＳ１０２へ戻り、そのジョブに対して以降のステップを行う（図７参照）。
【０１２６】
仮に上記のジョブが２番目のジョブであるとした場合、ウイルス管理部３２は、その２番目のジョブが実行可能であるか否かをこのジョブに対応するジョブ実行不可フラグに基づいて判断する（ステップＳ１０３）。フラグ・リセット状態の場合は実行可能であると判断して２番目のジョブの実行を許可し、２番目のジョブの実行を開始する（ステップＳ１０７〜）。フラグ・セット状態の場合は実行不可であると判断して２番目のジョブの実行を保留し、このジョブに対応する待機ジョブフラグをセットして（ステップＳ１０４）、ジョブキューに次のジョブが有るか否かを確認する（ステップＳ１０５）。
【０１２７】
ジョブキューに次のジョブが無い場合は、ステップＳ１０１へ戻り、ジョブキューの１番目のジョブ（１番目の待機ジョブ）に対し、再び以降のステップを繰り返す。ここで１番目のジョブが実行可能であれば（ステップＳ１０３；Ｙｅｓ）、１番目のジョブの実行を開始する（ステップＳ１０７〜）。１番目のジョブが実行不可であれば（ステップＳ１０３；Ｎｏ）、ステップＳ１０５；ＹｅｓおよびステップＳ１０６を経由してジョブキューの２番目のジョブ（２番目の待機ジョブ）に対し、ステップＳ１０２以降を繰り返す。ここで２番目のジョブが実行可能であれば（ステップＳ１０３；Ｙｅｓ）、２番目のジョブの実行を開始する（ステップＳ１０７〜）。２番目のジョブが実行不可であれば（ステップＳ１０３；Ｎｏ）、ステップＳ１０５；Ｎｏを経由してステップＳ１０１へ戻り、同様に１番目の待機ジョブ、２番目の待機ジョブの順番に実行可否判断を継続する。
【０１２８】
この１番目および２番目のジョブの保留状態で新たなジョブ、仮に３番目のジョブがジョブキューに登録されると、その３番目のジョブに対してウイルスチェック・駆除確認（ステップＳ１０２）および実行可否判断（ステップＳ１０３）を行う。３番目のジョブが実行可能であれば（ステップＳ１０３；Ｙｅｓ）、実行を開始し（ステップＳ１０７〜）、実行不可であれば（ステップＳ１０３；Ｎｏ）、実行を保留する（ステップＳ１０４〜）。３番目のジョブを保留にした場合には、１番目の待機ジョブ、２番目の待機ジョブ、３番目の待機ジョブの順番に実行可否判断を継続する。
【０１２９】
このように、本動作では、投入されたジョブをジョブキューに登録し、登録順（投入順）の優先順位に従って実行するように実行順序を管理すると共に、登録順に、ジョブの実行に使用される制御モジュールに対するウイルスチェック・駆除確認を行い（ステップＳ１０２）、その確認結果に基づいて実行可否判断を行う（ステップＳ１０３）。実行不可のジョブは実行を保留し（待機ジョブ）、実行可能なジョブから順番に実行を開始する。また待機ジョブも、登録順に、ウイルスチェック・駆除確認および実行可否判断を継続し、実行可能になり次第、実行を開始するようにしている。
【０１３０】
図１０は、図６におけるステップＳ１０７（ジョブ実行）のサブルーチンを示す流れ図である。
【０１３１】
ジョブ管理部３１は、本サブルーチンを開始すると、上述した図６のステップＳ１０３で実行可能であると判断し、実行を許可したジョブの実行を開始する（ステップＳ１４１）。詳細には、ジョブ管理部３１は、このジョブの関連モジュールに対してジョブ処理に係る制御の実行を指示する。この指示を受けた関連モジュール（制御モジュール）はジョブ処理に係る制御動作を開始し、対応するブロック（処理部）をプログラムに従って制御する。この制御を受けて動作を開始したブロックは、画像データの入力または出力に係る処理を行うなどしてジョブを実行する。
【０１３２】
ジョブ管理部３１は、ジョブの実行中はウイルス管理部３２からのウイルスチェック完了通知（図８のステップＳ１２４または図９のステップＳ１３７）を監視しつつ（ステップＳ１４２；Ｎｏ）、ジョブの実行（ジョブ処理）を進める（ステップＳ１５２；Ｎｏ）。ウイルスチェック完了通知を受けずに（ステップＳ１４２；Ｎｏ）、ジョブが終了した場合は（ステップＳ１５２；Ｙｅｓ）、ジョブ管理部３１は、このジョブの関連モジュール（当該ジョブの実行に使用した全ての関連モジュール（制御モジュール））に対応する実行カウンタに「１」を加算して実行カウンタを更新し（ステップＳ１５３）、ジョブキューからこのジョブを削除して（ステップＳ１５４、）、本サブルーチンを終了し、メインルーチンへ戻る（Ｒｅｔｕｒｎ→図６のステップＳ１０８）。
【０１３３】
ジョブの実行中に、ウイルス管理部３２からウイルスチェック完了通知を受けた場合には（ステップＳ１４２；Ｙｅｓ）、ジョブ管理部３１は、ジョブキュー内のジョブの中から現在実行中のジョブよりも優先順位の高い待機ジョブ（登録順が先のジョブ）を検索する（ステップＳ１４３）。続いてジョブ管理部３１は、優先順位の最も高い待機ジョブを取得し（ステップＳ１４４）、ウイルス管理部３２に対してウイルスチェック・駆除確認を指示する（ステップＳ１４５）。ウイルス管理部３２は、この指示を受けると図７で説明したウイルスチェック・駆除確認を開始し、この待機ジョブの関連モジュールに対するウイルスチェック・駆除の状況（実行中／非実行中）や実行カウンタのカウント値に基づいて、この待機ジョブに対応するジョブ実行不可フラグのセット（ステップＳ１１７）またはリセット（ステップＳ１１８）を行い、本確認を完了するとそのことをジョブ管理部３１へ通知する（図７のＲｅｔｕｒｎ）。
【０１３４】
図１０のステップＳ１４５で、ジョブ管理部３１はウイルス管理部３２からウイルスチェック・駆除確認が完了したことの通知を受けると、この待機ジョブが実行可能であるか否かをジョブ実行不可フラグに基づいて判断する（ステップＳ１４６）。フラグ・セット状態の場合は実行不可であると判断し（ステップＳ１４６；Ｎｏ）、この待機ジョブの保留を継続する。
【０１３５】
続いてジョブ管理部３１は、ジョブキュー内に現在実行中のジョブよりも優先順位の高い次の待機ジョブが無い場合には（ステップＳ１５０；Ｎｏ）、ステップＳ１５１をスルーしてステップＳ１５２へ移行し、現在実行中のジョブに対して再び以降のステップを繰り返す。ジョブキュー内に次の待機ジョブが有る場合には（ステップＳ１５０；Ｙｅｓ）、ジョブ管理部３１はステップＳ１４４へ戻って次に優先順位の高い待機ジョブを取得し、以降のステップを同様に行う。
【０１３６】
ステップＳ１４６によるジョブ実行不可フラグに基づいた待機ジョブの実行可否判断で、フラグ・リセット状態の場合は実行可能であると判断し（ステップＳ１４６；Ｙｅｓ）、待機ジョブの保留を解除して実行を許可する。この場合は、ジョブ管理部３１は現在実行中のジョブを中断し（ステップＳ１４７）、この待機ジョブに対応する待機ジョブフラグをリセットし（ステップＳ１４８）、待機ジョブの実行を開始する（ステップＳ１４９）。このステップＳ１４９では、本ジョブ実行の再帰呼び出しを行う。これにより、待機ジョブは割り込みジョブとして実行が開始され、この割り込みジョブに対して再帰呼び出しの「ジョブ実行」の動作によるステップＳ１４１〜が同様に行われる。
【０１３７】
また、割り込みジョブの実行中にウイルスチェック完了通知が有り、この割り込みジョブよりも先に投入された優先順位の高い待機ジョブが実行可能であると判断された場合には、この割り込みジョブが中断され、その待機ジョブがこの割り込みジョブに対する割り込みジョブとして実行開始される（多重割り込み）。複数の待機ジョブが発生している場合は、このような割り込み制御によって、可能な限り優先順位の高いジョブから順番に実行されるようになる。
【０１３８】
ステップＳ１４９による割り込みジョブ（待機ジョブ）の実行が終了すると、ステップＳ１５０へ移行し、ジョブキュー内に現在中断しているジョブよりも優先順位の高い待機ジョブ（実行終了した割り込みジョブの次に優先順位の高い待機ジョブ）が更に有る場合には（ステップＳ１５０；Ｙｅｓ）、ステップＳ１４４へ戻り、その待機ジョブに対して以降のステップを同様に行う。ジョブキュー内に現在中断しているジョブよりも優先順位の高い待機ジョブが無い場合には（ステップＳ１５０；Ｎｏ）、中断しているジョブを再開し（ステップＳ１５１）、その再開したジョブに対して以降のステップを同様に行う。
【０１３９】
この割り込みジョブとして実行した待機ジョブや、割り込みを受けて一時中断し再開したジョブが終了した場合も（ステップＳ１５２；Ｙｅｓ）、ジョブ管理部３１は、上述したようにそのジョブの関連モジュール（当該ジョブの実行に使用した全ての関連モジュール（制御モジュール））に対応する実行カウンタを１加算して更新する（ステップＳ１５３）。そして、ジョブキューからそのジョブを削除し（ステップＳ１５４）、本サブルーチンを終了してメインルーチンへ戻る（Ｒｅｔｕｒｎ→図６のステップＳ１０８）。
【０１４０】
この図１０に示したジョブ実行の動作における割り込み制御により、以下のような割り込みの例が発生する。
【０１４１】
たとえば、投入順（ジョブキューへの登録順）が１番目のジョブ１と、２番目のジョブ２と、３番目のジョブ３を実行する場合に、ジョブ１実行不可⇒ジョブ２実行不可⇒ジョブ３実行可能⇒ジョブ３実行開始⇒ジョブ２実行可能⇒ジョブ３中断⇒ジョブ２実行開始（ジョブ３に対する割り込み）⇒ジョブ１実行可能⇒ジョブ２中断⇒ジョブ１実行開始（ジョブ２に対する割り込み）⇒ジョブ１終了⇒ジョブ２再開⇒ジョブ２終了⇒ジョブ３再開⇒ジョブ３終了などの割り込みが起こり得る。
【０１４２】
複合機１０では以上の動作により、図３〜図５で説明した各種のジョブ（ジョブタイプ）に対して、以下のような実行の可否の例が発生する。
【０１４３】
たとえば、図３に示したコピープリントジョブでは、スキャナ部２０を制御するスキャン制御部３５と、プリンタ部２２を制御するプリント制御部３６を使用することになる。両制御モジュールの少なくとも一方がウイルスチェック必要と判断された場合には、コピープリントジョブは実行を保留にされる。
【０１４４】
たとえば、現時点ではスキャン制御部３５のみがウイルスチェック必要と判断された場合には、スキャン制御部３５に対するウイルスチェックが行われる。現時点でウイルスチェック不要と判断されたプリント制御部３６はウイルスチェックが行われず、使用可能となる。この時点で、他の制御モジュール（ファクシミリ通信制御部３７、ネットワーク通信制御部３８、接続制御部３９、ファイルシステム部４０）もウイルスチェック不要と判断される場合には、他のプリント系のジョブは実行可能である。その実行可能なプリント系のジョブがプリントキュー５１に登録されている場合には、実行が許可されて先に開始される。また、スキャン制御部３５を使用しない非プリント系のジョブも実行可能である。たとえば、図４に示したスキャン送信ジョブ以外の送信系のジョブ、図５に示したスキャン入力保存ジョブ以外の保存系のジョブも実行可能である。その実行可能な送信系または保存系のジョブが送信キュー５２または保存キュー５３に登録されている場合には、実行が許可されて先に開始される。
【０１４５】
また、プリント制御部３６がウイルスチェック必要と判断された場合には、プリント系のジョブは全て実行を保留にされる。ただし、この状態であっても、他の制御モジュールがウイルスチェック不要と判断される場合には、送信系や保存系のジョブ（非プリント系のジョブ）は実行可能であり、それらのジョブが送信キュー５２または保存キュー５３に登録されている場合には、実行が許可されて先に開始される。
【０１４６】
このように、本実施形態に係る複合機１０では、ジョブに応じて使用の組み合わせが異なる複数の制御モジュールに対し、一部の制御モジュール毎（１つのジョブで使用される制御モジュール毎）にウイルス検査を行い、ウイルス感染なしが確認された制御モジュールのみを使用するジョブ（ウイルス感染なしが未確認の制御モジュールを使用しないジョブ）の実行を許可する。これにより、ウイルス感染の有無が不明な制御モジュールを使用するジョブを実行してその制御モジュールを動作させ、その制御モジュールがウイルス感染していた場合にコンピュータウイルスによって不正な動作や感染の拡大などが起こされる可能性を回避しつつ、その可能性のない制御モジュールを使用するジョブは実行できるようになる。したがって、ウイルス検査によるジョブ処理への影響を抑え、生産性の低下を抑制することができる。
【０１４７】
特に本実施形態では、ジョブの実行前にそのジョブで使用する制御モジュールに対してウイルス検査を行うようにしている。これにより、制御モジュールがウイルス感染していないことを確認してから、またウイルス感染していた場合は駆除してから、そのジョブを実行し、そのジョブで使用する制御モジュールを動作させることができ、制御モジュールがウイルス感染していた場合にコンピュータウイルスによってもたらされる被害を確実に防止することができる。
【０１４８】
また、これから実行するジョブで必要な制御モジュールに対してのみウイルス検査を行い、不要な制御モジュールに対する現時点では必要性の低いウイルス検査を行わないことで、ウイルス検査による処理負担を軽減することができる。またこれにより、ジョブの実行前に行うウイルス検査を迅速に完了してジョブの実行開始遅れを最小限に抑えることができ、生産性の低下を抑制することができる。
【０１４９】
また、制御モジュールに対するウイルス検査は、所定の使用回数毎（実行カウンタのカウント値が所定値Ａになる毎）に行い、所定の使用回数未満の期間は省略する。これにより、たとえば、ジョブの実行前に毎回そのジョブで使用する制御モジュールに対してウイルス検査を行うような場合に比べて、実行開始が遅くなるジョブ数（待機ジョブ数）を減らすことができ、生産性の低下を抑制することができる。
【０１５０】
また本実施形態では、図１０のジョブ実行で説明した割り込み制御により（多重割り込み）、たとえば複数の待機ジョブが発生したような場合に、可能な限り優先順位の高いジョブから順番に実行することができる。
【０１５１】
［第２の実施形態］
第１の実施形態では、ジョブの実行中に他のジョブの割り込みを行う場合を説明したが、第２の実施形態ではその割り込みを行わない場合を説明する。
【０１５２】
図１１は、本実施形態に係るジョブ管理部３１によるジョブ実行のサブルーチンを示す流れ図である。本サブルーチンは、第１の実施形態に係るサブルーチン（図１０）に対し、ステップＳ１４２〜ステップＳ１５１が削除された流れとなっている。
【０１５３】
ジョブ管理部３１は、図６のステップＳ１０３で実行可能であると判断し、実行を許可したジョブの実行（ステップＳ１０７）に係る本サブルーチンを開始すると、そのジョブの実行を開始し（ステップＳ２４１）、終了を監視する（ステップＳ２４２；Ｎｏ）。
【０１５４】
ジョブが終了すると（ステップＳ２４２；Ｙｅｓ）、ジョブ管理部３１は、このジョブの関連モジュール（当該ジョブの実行に使用した全ての関連モジュール（制御モジュール））に対応する実行カウンタを１加算して更新し（ステップＳ２４３）、ジョブキューからこのジョブを削除して（ステップＳ２４４）、本サブルーチンを終了し、メインルーチンへ戻る（Ｒｅｔｕｒｎ→図６のステップＳ１０８）。
【０１５５】
なお、第１の実施形態に係るサブルーチン（図１０）ではジョブ管理部３１がジョブの実行中にウイルス管理部３２からのウイルスチェック完了通知を監視するようにしていたが（ステップＳ１４２）、本実施形態に係るサブルーチンではこのウイルスチェック完了通知の監視を省略している。本実施形態では、ジョブ管理部３１はウイルス管理部３２からこのウイルスチェック完了通知を受けるか否かにかかわらず、ジョブキューに待機ジョブが存在している間は、図６のステップＳ１０２でウイルス管理部３２に対し、ウイルスチェック・駆除確認を指示し、その結果（実行不可フラグのリセット／セット）に基づいて待機ジョブの実行可否判断を行う。そのため、本実施形態においては、ウイルス管理部３２がジョブ管理部３１に対して行うウイルスチェック完了通知（図８のステップＳ１２４および図９のステップＳ１３７）を省略するようにしてもよい。
【０１５６】
これにより、本実施形態では実行開始したジョブは、他のジョブの実行による中断を受けずに実行終了されるようになる。実行開始したジョブは、仮に優先順位の高い待機ジョブの関連モジュールに対するウイルスチェックやウイルス駆除が完了してその待機ジョブが実行可能になったような場合でも、中断せずに実行終了される。実行可能になった待機ジョブは、この先に実行開始されたジョブの実行終了以降に実行開始される。これにより、ジョブの実行順序を管理する際の制御を簡素化することができる。
【０１５７】
［第３の実施形態］
第１の実施形態では、関連モジュールに対するウイルスチェックの開始指示をジョブの実行前に行う場合を説明したが、第３の実施形態ではその指示をジョブの実行後に行う場合を説明する。
【０１５８】
図１２は、本実施形態に係るウイルス管理部３２によるウイルスチェック・駆除確認の動作を示す流れ図である。本動作は、第１の実施形態に係る動作（図７）に対し、関連モジュールに対応する実行カウンタのカウント値の確認（ステップＳ１１５）およびウイルスチェック開始指示（ステップＳ１１６）が削除されるなどの流れとなっている。
【０１５９】
その変更部分について説明すると、ウイルス管理部３２は、関連モジュールがウイルスチェックまたはウイルス駆除の実行中である場合には（ステップＳ３１４；Ｙｅｓ）、この関連モジュールが使用される、図６のステップＳ１０１でジョブキューから取得されたジョブに対応するジョブ実行不可フラグをセットし（ステップＳ３１５）、ステップＳ３１７（図７のステップＳ１１９に相当）へ移行する。関連モジュールがウイルスチェックまたはウイルス駆除の実行中でない場合には（ステップＳ３１４；Ｎｏ）、この関連モジュールが使用される上記ジョブに対応するジョブ実行不可フラグをリセットし（ステップＳ３１６）、ステップＳ３１７へ移行する。
【０１６０】
なお、本実施形態も関連モジュールが複数有る場合には、ステップＳ３１６によるジョブ実行不可フラグのリセットは、全ての関連モジュールについて、ウイルスチェック／駆除が非実行中（ステップＳ３１４；Ｎｏ）である場合のみ行い、１つでもウイルスチェック／駆除が実行中（ステップＳ１１４；Ｙｅｓ）であればジョブ実行不可フラグをセットするようにする。
【０１６１】
図１３は、本実施形態に係るジョブ管理部３１によるジョブ実行のサブルーチンを示す流れ図である。本サブルーチンは、第１の実施形態に係るサブルーチン（図１０）に対し、関連モジュールに対応する実行カウンタの更新後に（ステップＳ３５３）、その実行カウンタのカウント値の確認（ステップＳ３５４）、ウイルスチェック開始指示（ステップＳ３５５）が追加された流れとなっている。
【０１６２】
その変更部分について説明すると、ジョブ管理部３１は、ジョブが終了すると（ステップＳ３５２）、このジョブの関連モジュール（当該ジョブの実行に使用した複数の関連モジュール（制御モジュール））に対応する実行カウンタに「１」を加算して実行カウンタを更新する（ステップＳ３５３）。この更新後の実行カウンタのカウンタ値が所定値Ａ未満である場合には（ステップＳ３５４；Ｎｏ）、ジョブ管理部３１はジョブキューからこのジョブを削除し（ステップＳ３５６）、本サブルーチンを終了してメインルーチンへ戻る（Ｒｅｔｕｒｎ→図６のステップＳ１０８）。
【０１６３】
更新後の実行カウンタのカウンタ値が所定値Ａ以上である場合には（ステップＳ３５４；Ｙｅｓ）、ジョブ管理部３１はウイルス管理部３２を通じてウイルスチェック部３３にその関連モジュール（複数ある場合はその複数の関連モジュール）に対するウイルスチェックの開始を指示する（ステップＳ３５５）。ウイルスチェック部３３は、この指示を受けると関連モジュールに対するウイルスチェックを開始する。そしてジョブ管理部３１は、ジョブキューからこのジョブを削除し（ステップＳ３５６）、本サブルーチンを終了してメインルーチンへ戻る（Ｒｅｔｕｒｎ→図６のステップＳ１０８）。
【０１６４】
このように、本実施形態ではジョブの実行後にそのジョブの実行に使用されて使用回数が所定回数に達した制御モジュール（関連モジュール）に対してウイルスチェックが行われるようになる。これにより、ウイルス感染のないことを確認してから、またウイルス感染していた場合は駆除してから、次回以降の使用時にその制御モジュールを動作させることができ、次回の使用時などにコンピュータウイルスによってもたらされる被害を防止することができる。
【０１６５】
また、使用した制御モジュールに対してのみウイルス検査を行い、使用していない制御モジュールに対する現時点では必要性の低いウイルス検査を行わないことで、ウイルス検査による処理負担を軽減することができる。また、制御モジュールの使用後（ジョブの実行後）にウイルス検査を開始することで、使用前（ジョブの実行前）にウイルス検査を開始する場合に比べて、その制御モジュールを次回以降に使用するジョブをより迅速に実行開始することができ、生産性の低下抑制効果が高められる。
【０１６６】
また、実行したジョブで使用された制御モジュールに対するウイルス検査は、第１の実施形態と同様に、所定の使用回数毎（実行カウンタのカウント値が所定値Ａになる毎）に行い、所定の使用回数未満の期間は省略する。これにより、たとえば、ジョブの実行後に毎回そのジョブで使用された制御モジュールに対してウイルス検査を行うような場合に比べて、実行開始が遅くなるジョブ数（待機ジョブ数）を減らすことができ、生産性の低下を抑制することができる。
【０１６７】
以上、本発明の実施形態を図面によって説明してきたが、具体的な構成は実施形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１６８】
たとえば、実施形態で説明した複合機などのように、複数の機能（スキャン機能、プリンタ機能、ファクシミリ機能など）に対応して設けられた複数の制御モジュールに、データ入力源を制御する制御モジュールと、データ出力先を制御する制御モジュールが含まれる場合には、その両方をウイルスチェックの対象にする以外に、いずれか一方をウイルスチェックの対象にするようにしてもよい。具体的には、ジョブの実行前および実行後のいずれの場合も、ジョブタイプによってデータ入力源およびデータ出力先を各々制御する各制御モジュールが判別可能であるので、そのうちのいずれか一方をウイルスチェックの対象にするようにしてもよい。
【０１６９】
また、データ入力源側の制御モジュールとデータ出力先側制御モジュールとでウイルスチェックを省略する所定期間を異なる設定としたり、制御モジュール毎にウイルスチェックを省略する所定期間を異なる設定としたりするようにしてもよい。
【０１７０】
ウイルスチェックを省略する所定期間は、制御モジュールの使用回数（動作回数）で構成する他に、制御モジュールの使用時間（動作時間）などで構成するようにしてもよい。使用時間の場合には、たとえば、実施形態で説明した使用回数をカウントする実行カウンタに替えて、制御モジュール毎に累積使用時間を計測する実行タイマーなどを設けるようにし、各制御モジュールの累積使用時間を対応する実行タイマーによって計測するように構成する。このタイマー値が所定時間未満であれば、ウイルスチェックの実行指示を行わず、タイマー値が所定時間以上であれば、ウイルスチェックの実行指示を行うなどの構成としてもよい。この場合は、管理部（ウイルス管理部など）が制御モジュール毎に上記の実行タイマーを用いて使用時間（累積使用時間）の計測を行う構成としてもよい。
【０１７１】
ウイルスチェックやウイルス駆除を行うタイミングは、実施形態で説明したジョブの実行に同期したタイミング（実行前／実行後）に限らず、ジョブの実行に同期しないタイミングでもよい。たとえば、ジョブに係る処理を行っていない空き時間などに行うようにしてもよい。ジョブ実行と非同期の場合には、更に制御モジュール毎にウイルスチェック／駆除のステータス管理を行い、各制御モジュールのステータスに基づいて現在実行可能なジョブを判断し、ジョブの投入を受けたときにその判断結果に基づいてジョブの実行可否（実行開始／保留・待機）を判定するようにしてもよい。たとえば、上記のステータス管理で、図２に示したプリント制御部のみがウイルスチェック／駆除を現在実行中であると判断した場合に、投入を受けたジョブがプリント系の場合は実行不可と判定して保留・待機し、送信系または保存系の場合は実行可能と判断して実行開始するなどの動作が可能である。
【０１７２】
また実施形態では、ジョブ管理部とウイルス管理部を機能によって分けた構成としているが、これらを１つの管理部として構成するようにしてもよい。たとえば、実施形態で説明したジョブ管理部がウイルス管理部の機能を備えるように構成してもよい。
【０１７３】
また、実施形態ではウイルスチェック部およびウイルス駆除部を複合機（画像処理装置）が備えた構成としているが、これらはジョブ処理システムに含まれる外部装置（サーバなど）が備えるように構成してもよい。たとえば、複合機の管理部（ウイルス管理部またはその機能を備えたジョブ管理部などの検査管理部）は、制御モジュールのウイルスチェックや駆除が必要であると判断した場合は、ウイルスチェック・駆除部を備えたサーバ（検査部）に対して、制御モジュールのウイルスチェックや駆除を依頼する。依頼を受けたサーバは、その複合機内の制御モジュールに対してウイルスチェックや駆除を実行するなどの構成としてもよい。
【０１７４】
また、本発明に係るジョブ処理システムおよび画像処理装置は、実施形態で説明した複合機に限らず、複数の機能（複数種類のジョブ）に対応する複数の制御モジュールを備えた他のシステムおよび装置も対象にすることができる。
【符号の説明】
【０１７５】
１０…複合機（ＭＦＰ）
１１…ＣＰＵ（制御部）
１２…バス
１３…ＲＯＭ
１４…ＲＡＭ
１５…不揮発メモリ
１６…ハードディスク装置
１７…表示部
１８…操作部
１９…認証部
２０…スキャナ部
２１…画像処理部
２２…プリンタ部
２３…ファクシミリ通信部
２４…ネットワーク通信部
２５…接続部
３１…ジョブ管理部
３２…ウイルス管理部
３３…ウイルスチェック部
３４…ウイルス駆除部
３５…スキャン制御部
３６…プリント制御部
３７…ファクシミリ通信制御部
３８…ネットワーク通信制御部
３９…接続制御部
４０…ファイルシステム部
５１…プリントキュー
５２…送信キュー
５３…保存キュー
【図１】
2011065483.tif 000003
【図２】
2011065483.tif 000004
【図３】
2011065483.tif 000005
【図４】
2011065483.tif 000006
【図５】
2011065483.tif 000007
【図６】
2011065483.tif 000008
【図７】
2011065483.tif 000009
【図８】
2011065483.tif 000010
【図９】
2011065483.tif 000011
【図１０】
2011065483.tif 000012
【図１１】
2011065483.tif 000013
【図１２】
2011065483.tif 000014
【図１３】
2011065483.tif 000015