(57)【要約】【課題】画像形成装置に係わるプログラムの開発及び設計変更を容易にする。【解決手段】（Ａ０４）ユーザサービス実行部８２は、ジョブ管理部７１に対し、ユーザの要求に対応してプリントジョブを生成させる。（Ａ０５、Ａ０６）ジョブ管理部７１はこれに応答して、このジョブにジョブＩＤを割り当て、ジョブ種によらない、各ジョブに共通の構造体であるジョブ情報７７のインスタンスを生成し、これにジョブＩＤとジョブ種を書き込み、また、ユーザサービス実行部８２にこのジョブＩＤを通知する。（Ａ０７）ユーザサービス実行部８２は、設定情報をジョブ情報７７に書き込む。(Ａ０８以降）ユーザサービス実行部８２は、ジョブ管理部７１に対し、ジョブ種に対応するジョブシナリオの識別子を渡してジョブを開始させる。この開始後、複数の機能部７４〜７６によって随時ジョブ情報７７が読み出される。【選択図】図４
2008234555.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、指示入力手段と、画像入力手段と、画像出力手段と、複数種のジョブを実行可能なアプリケーションが格納された記憶手段とを備えた画像形成装置であって、
該アプリケーションは、
該プロセッサに対し、該指示入力手段からのサービス要求を受け付けさせ、該サービス要求に対応したジョブを、該複数種のジョブ全てに共通のデータ構造からなるジョブ情報に基づき実行させることを特徴とする画像形成装置。
【請求項２】
該アプリケーションは、サービス層プログラムとジョブ層プログラムとを有し、
該サービス層プログラムは、該プロセッサに対し、該サービス要求を受け付けさせ、該サービス要求に対応したジョブシナリオ又はその識別子を該ジョブ層プログラムに引き渡して該ジョブの実行を指示させ、且つ該ジョブ情報に該ジョブの設定情報を書き込ませ、
該ジョブ層プログラムは、該指示に応答して、該プロセッサに対し、該ジョブシナリオに基づき基本ジョブを順次実行させることにより、該指示されたジョブを実行する、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
該ジョブ層プログラムは、基本ジョブ実行プログラムと、ジョブステップ実行プログラムとを有し、
該基本ジョブ実行プログラムは、該基本ジョブの実行に際し呼び出され、該プロセッサに対し、該ジョブステップ実行プログラムに該ジョブ情報の識別子を引き渡して、画像の入力及び出力のそれぞれのジョブステップの実行を順次指示させ、
該ジョブステップ実行プログラムは、該プロセッサに対し、該ジョブステップの実行指示に応答して、該設定情報を該ジョブ情報から取得させ、該画像入力手段又は該画像出力手段を制御させる、
ことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
該ジョブ層プログラムは更に、ジョブ管理プログラムを有し、
該ジョブ管理プログラムは、該プロセッサに対し、該ジョブの実行指示に応答して、該ジョブに識別子を割り当てるとともに、該ジョブ情報を生成させ、これに該ジョブの識別子と該ジョブの種類とを書き込ませ、該基本ジョブ実行プログラムに該ジョブ情報の識別子を引き渡させるとともにこれを呼び出させることを特徴とする請求項３に記載の画像形成装置。
【請求項５】
指示入力手段と、画像入力手段と、画像出力手段と、複数種のジョブを実行可能なアプリケーションが格納された記憶手段とを備えた画像形成装置で行われる画像形成方法であって、
該アプリケーションから、
該画像形成装置に対し、該指示入力手段からのサービス要求を受け付けさせ、該サービス要求に対応したジョブを、該複数種のジョブ全てに共通のデータ構造からなるジョブ情報に基づき実行させることを特徴とする画像形成方法。
【請求項６】
指示入力手段と、画像入力手段と、画像出力手段とを備えた画像形成装置に搭載される、複数種のジョブを実行可能なアプリケーションプログラムであって、
該画像形成装置に対し、該指示入力手段からのサービス要求を受け付けさせ、該サービス要求に対応したジョブを、該複数種のジョブ全てに共通のデータ構造からなるジョブ情報に基づき実行させることを特徴とするアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種のジョブを実行可能な画像形成装置、画像形成方法及びアプリケーションプログラムに係り、特に、コピー、プリント、スキャン及びファクシミリ送信などのジョブを実行可能な画像形成装置、画像形成方法及びアプリケーションプログラムに関する。
【背景技術】
【０００２】
画像形成装置の一種である複合機は、複数種のジョブ実行に対し共通のハードウェア資源を用いるので、全体としてコストを低減できるとともに、省スペース化を図ることができる。
【０００３】
下記特許文献１には、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステム（汎用ＯＳ）を用い、コピー、プリント、スキャン及びファクシミリの各アプリケーションの共通機能を括りだして汎用ＯＳとともにプラットフォームを構成することにより、各アプリケーションのプログラムステップ数を低減して、プログラム開発効率を高めることが開示されている。
【０００４】
しかしながら、この構成は、ジョブ種別毎にアプリケーションを備えたマルチアプリケーションであり、各アプリケーションの共通機能を括り出しただけなので、マルチアプリケーション部分が統一性に欠け、設計変更容易性が充分とは言えない。
【０００５】
また、従来ジョブ種毎にアプリケーションが備えられていたことで、ジョブ情報もジョブ種毎に個別に作成されていた。
【特許文献１】特開２００２−８４３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、ジョブ情報の統一化を図ることにより、画像形成装置に係わるプログラムの開発及び設計変更を容易にすることが可能な画像形成装置、画像形成方法及びアプリケーションプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明による画像形成装置の第１態様では、
プロセッサと、指示入力手段と、画像入力手段と、画像出力手段と、複数種のジョブを実行可能なアプリケーションが格納された記憶手段とを備えた画像形成装置であって、
該アプリケーションは、
該プロセッサに対し、該指示入力手段からのサービス要求を受け付けさせ、該サービス要求に対応したジョブを、該複数種のジョブ全てに共通のデータ構造からなるジョブ情報に基づき実行させる。
【０００８】
ここで、該指示入力手段は、例えば操作パネル又は通信手段などである。
【０００９】
本発明による画像形成装置の第２態様では、第１態様において、
該アプリケーションは、サービス層プログラムとジョブ層プログラムとを有し、
該サービス層プログラムは、該プロセッサに対し、該サービス要求を受け付けさせ、該サービス要求に対応したジョブシナリオ又はその識別子を該ジョブ層プログラムに引き渡して該ジョブの実行を指示させ、且つ該ジョブ情報に該ジョブの設定情報を書き込ませ、
該ジョブ層プログラムは、該指示に応答して、該プロセッサに対し、該ジョブシナリオに基づき基本ジョブを順次実行させることにより、該指示されたジョブを実行する。
【００１０】
本発明による画像形成装置の第３態様では、第２態様において、
該ジョブ層プログラムは、基本ジョブ実行プログラムと、ジョブステップ実行プログラムとを有し、
該基本ジョブ実行プログラムは、該基本ジョブの実行に際し呼び出され、該プロセッサに対し、該ジョブステップ実行プログラムに該ジョブ情報の識別子を引き渡して、画像の入力及び出力のそれぞれのジョブステップの実行を順次指示させ、
該ジョブステップ実行プログラムは、該プロセッサに対し、該ジョブステップの実行指示に応答して、該設定情報を該ジョブ情報から取得させ、該画像入力手段又は該画像出力手段を制御させる。
【００１１】
本発明による画像形成装置の第４態様では、第３態様において、
該ジョブ層プログラムは更に、ジョブ管理プログラムを有し、
該ジョブ管理プログラムは、該プロセッサに対し、該ジョブの実行指示に応答して、該ジョブに識別子を割り当てるとともに、該ジョブ情報を生成させ、これに該ジョブの識別子と該ジョブの種類とを書き込ませ、該基本ジョブ実行プログラムに該ジョブ情報の識別子を引き渡させるとともにこれを呼び出させる。
【００１２】
ここで、上記呼び出しは、該ジョブ管理プログラムが直に呼び出すだけでなく、他のプログラムを介して呼び出すことを含む。
【００１３】
本発明による画像形成方法の第５態様では、
指示入力手段と、画像入力手段と、画像出力手段と、複数種のジョブを実行可能なアプリケーションが格納された記憶手段とを備えた画像形成装置で行われる画像形成方法であって、
該アプリケーションから、
該画像形成装置に対し、該指示入力手段からのサービス要求を受け付けさせ、該サービス要求に対応したジョブを、該複数種のジョブ全てに共通のデータ構造からなるジョブ情報に基づき実行させる。
【００１４】
本発明によるアプリケーションプログラムの第１態様では、
指示入力手段と、画像入力手段と、画像出力手段とを備えた画像形成装置に搭載される、複数種のジョブを実行可能なアプリケーションプログラムであって、
該画像形成装置に対し、該指示入力手段からのサービス要求を受け付けさせ、該サービス要求に対応したジョブを、該複数種のジョブ全てに共通のデータ構造からなるジョブ情報に基づき実行させる。
【発明の効果】
【００１５】
本発明の態様では、従来のようなジョブ種毎に個別のアプリケーションを備える構成とは相違し、機能を抽象化して統一化した、複数種のジョブが実行可能な統合アプリケーションを備えており、これにより、従来にあるアプリケーション同士の機能的に共通するプログラムを複数種のジョブで有効利用することが可能である。
【００１６】
上記第１態様の構成によれば、従来ジョブ情報はジョブの種類ごとに個別にジョブ情報のフォーマットが作成されていたところ、それらの情報を一つのデータ構造体にまとめ、全ジョブ種において共通にこの構造体からなるジョブ情報を利用することとしたので、プログラム間でジョブの種類に関係なくジョブ情報を引き渡せばよく、プログラムの複雑化を避けることができ、もって画像形成装置に係わるプログラムの開発及び設計変更を容易にすることができるという効果を奏する。
【００１７】
上記第２態様によれば、ジョブシナリオにおいて複数の基本ジョブを組み合わせるだけで容易に多種多様なジョブを作成することができるので、プログラムの開発及び設計変更を容易にすることが可能であるという効果を奏する。
【００１８】
上記第３態様によれば、ジョブ層プログラムが多層化され、各層間でジョブ情報を伝える場合に、ジョブ情報の内容を引数として伝えるのでなく、ジョブ情報の識別子を引数として伝え、受け取ったプログラムが該識別子に基づきジョブ情報の内容を取得するので、プログラムの引数を減らすことができ、もって画像形成装置に係わるプログラムの開発及び設計変更を容易にすることができるという効果を奏する。
【００１９】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００２０】
［１］ハードウェア概略構成
図１５は、本発明の実施例１に係る画像形成装置１０のハードウェア構成を示す概略ブロック図である。
【００２１】
この画像形成装置１０では、ＭＰＵ１１にインタフェース１２を介してＥＥＰＲＯＭ１３Ｅ１、ＥＥＰＲＯＭ１３Ｅ２、ＤＲＡＭ１３Ｄ、ＨＤＤ１４、操作パネル１５、スキャナ１６Ｓ、プリンタ１６Ｐ、ＮＩＣ１７、ファクシミリモデム１８及び圧縮・伸張ＡＳＩＣ１９が結合されている。図１５では、簡単化のため、複数のインタフェースを１つのブロックで示している。
【００２２】
ＥＥＰＲＯＭ１３Ｅ１及び１３Ｅ２は、例えばフラッシュメモリである。ＥＥＰＲＯＭ１３Ｅ１には、ＢＩＯＳ（Basic Input Output System）が格納されている。ＥＥＰＲＯＭ１３Ｅ２には、後述のソフトウェアが格納されている。ＤＲＡＭ１３Ｄはワークエリア用であり、画像入出力手段としてのＨＤＤ１４はデータ格納用である。
【００２３】
操作パネル１５は、設定値又は指示を入力し、設定画面や状態などを表示させるためのものである。本実施例１では、操作パネル１５がタッチパネルとハードウェアキーの組み合わせで構成されている。
【００２４】
画像入力手段としてのスキャナ１６Ｓは、スキャン、コピー及びファックス送信での画像入力に用いられる。画像出力手段としてのプリンタ１６Ｐは、プリントエンジン、定着器並びに用紙の給紙部、搬送部及び排紙部を備え、供給されるビットマップデータに基づいてプリントエンジンの感光ドラムに静電潜像を形成し、これをトナーで現像し、用紙に転写し定着させた後に排紙する。
【００２５】
画像入出力手段としてのＮＩＣ１７は、ケーブル又は無線の通信媒体を介してホストコンピュータ２０に結合され、プリントジョブ、電子メール送受信、インターネットファクシミリ送信及びブラウザからの操作パネル１５の遠隔操作に用いられる。ファクシミリモデム１８は、ファクシミリ送受信用である。
【００２６】
圧縮・伸張ＡＳＩＣ１９は、ＭＰＵ１１のコプロセッサとして用いられ、例えば画像の圧縮及び伸張にそれぞれ２ポートを有し、最大４並列実行可能である。
［２］ソフトウェア設計思想
まず、ソフトウェア設計思想について説明する。
【００２７】
従来の画像形成装置の１つである複合機では、プリント、コピー及びファックスなどのユーザサービスに対応するアプリケーションをそれぞれ別個に設ける構成となっていた。すなわち１つのアプリケーションは、上記ユーザサービスの１つと対応し、複合機はこのユーザサービスを提供するためにジョブを実行していた。
【００２８】
しかし、アプリケーション同士には、部分的に共通する管理や制御が存在する。
【００２９】
そこで、本発明では、従来複数あったアプリケーションを１つに統合し、１つのアプリケーションで全てのサービスを提供可能且つ全てのジョブを実行可能とし、共通部分を纏めることとした。以下の記載は、この統合化したアプリケーションに係わるものである。
【００３０】
ジョブとは、ユーザがコンピュータに実行させる仕事の単位である。
【００３１】
しかし、複合機の多機能化に伴いジョブ種が増えると、ジョブの実行に用いられるソフトウェア部品数が増加し、プログラムが複雑化する。
【００３２】
そこで、ジョブを基本ジョブに分解し、基本ジョブを組み合わせることにより、ジョブを体系化し、ジョブ層でこの組み合わせを取り扱うようにする。すなわち、基本ジョブの組み合わせとこれの実行順をジョブシナリオとし、このジョブシナリオに従って１つ又は複数の基本ジョブを順次実行することによりジョブを実行する。これにより、ジョブに対応したプログラムの複雑化を避け、又多機能化に伴いジョブ種を増やしたり機能を追加、変更する必要がある場合に、設計変更を容易にする。
【００３３】
また、本発明では、この統合化したアプリケーションを機能別に多層化することにより設計変更を更に容易にする。本実施例では、アプリケーションをサービス層とジョブ層とエレメント層とに分け多層化する。
【００３４】
さらに、サービス層内及びジョブ層内をより具体的に機能別にして多層化することにより設計変更を容易にする。
【００３５】
さらにまた、ミドルウェア層は主に、ハードウェアをその状態に応じて、機種に依存せずアプリケーションが比較的簡単に制御（「操作」と称す。）できるようにするための基本的なプログラムを備えて、アプリケーションを簡単化するとともに設計変更を容易にする。
【００３６】
しかし、このように設計変更容易化のために、多層化されると、各層間の関係が増えるので、簡単化する工夫が必要になる。
【００３７】
そこで、以下に説明するように、サービスの種類によってはジョブ層を通さずにサービスを実行（指示伝達を簡単化）したり、ジョブ情報の伝達を簡単化したり、指示と通知の伝達方向を統一したりして、設計変更を容易化している。
【００３８】
以下、本発明に係わる統合化され多層化されたアプリケーションの説明をする。
［３］ソフトウェア階層構造
図１は、多層化されたアプリケーションの階層構造を示す概略ブロック図である。
【００３９】
ＯＳ層３０の上層には、ミドルウェア層４０を介してアプリケーション層５０が存在する。
【００４０】
本実施例の特徴部分であるアプリケーション層５０は、コモン部５１及びシステム管理部５２と、下層のエレメント層６０と、中間層のジョブ層７０と、上層のサービス層８０とを備えている。
【００４１】
サービス層８０は、ユーザのサービス要求を受け付けてジョブ層７０及びエレメント層６０を介してユーザにサービスを提供するものである。上述のように、サービス層８０で受け付けたサービスは、ジョブ層７０を介さずにエレメント層６０又はシステム管理部５２で実行されるものがあり、これらをジョブと区別するために「ワーク」と称す。各サービスは、ジョブ又はワークに対応し、ジョブはジョブ層７０により実行される。該ジョブは、１つ又は複数の基本ジョブで構成され、さらに基本ジョブは１つ又は複数のジョブステップで構成され、該ジョブステップはジョブ層７０によりエレメント層６０を随時利用して実行される。
【００４２】
図２は、各層に含まれる機能部を示す。各機能部は、１つ以上のプログラムモジュールから構成される。図２中の矢印付線は、主な処理の流れを一般的に示す。
［４］ＯＳ層
ＯＳ層３０は、ハードウェアに依存したデバイスドライバ３１と、ＯＳ３２とを備え、デバイスドライバ３１はＯＳ３２の下層に位置し、ＯＳ３２に登録される。ＯＳ３２は汎用であり、そのカーネルは例えばＬｉｎｕｘ（登録商標）である。
［５］ミドルウェア層
ミドルウェア層４０は、機能部４１〜４３を備えている。
【００４３】
デバイス制御部４１は、デバイスドライバ３１を介し、操作パネル１５、スキャナ１６Ｓ、プリンタ１６Ｐ、ＮＩＣ１７及びファクシミリモデム１８を制御し、又これらデバイスの状態通知を受け取るためのものである。
【００４４】
画像処理部４２は、圧縮・伸張ＡＳＩＣ１９の制御、画像の拡大、縮小又は回転処理及びＲＩＰなどの処理を行う。
【００４５】
リソース管理部４３は、リソースごとのリソース要求キューに従って、リソースを割り当て、割り当てたリソースが使用済みになったら解放する。
【００４６】
以下、アプリケーション層５０について説明する。
［６］コモン部及びシステム管理部
コモン部５１は、システム管理部５２、エレメント層６０、ジョブ層７０及びサービス層８０で共通に用いられるプログラムと、機種に依存する設定値が条件を満たしているか否かを判定するプログラムとを含んでいる。このコモン部５１により、システム管理部５２、エレメント層６０、ジョブ層７０及びサービス層８０のプログラムが簡単化され且つ機種に依存しないものとなり、設計変更が容易となる。
【００４７】
システム管理部５２は、システムの状態及びユーザを管理しており、システム内でエラーが発生した場合は、その通知を必要な箇所に分配し、またログイン処理及びログイン後のサービス要求許否の処理を担当する。
［７］エレメント層
エレメント層６０は、デバイス操作部６１、画像処理操作部６２及びエンティティ部６３の各機能部を備えている。これら機能部６１又は６２はそれぞれ、ミドルウェア層４０の機能部４１又は４２に対応している。デバイス操作部６１及びエンティティ部６３はいずれも、画像入力手段及び画像出力手段を制御又は操作するためのものである。
【００４８】
デバイス操作部６１は、デバイス制御部４１から通知される機器の状態に応じて、デバイス制御部４１を操作する。
【００４９】
画像処理操作部６２は、中間データの生成などの処理を行い、又上記画像処理部４２を介して画像の圧縮、伸張、拡大、縮小、回転及びＲＩＰなどの処理を行う。
【００５０】
エンティティ部６３は、データの保持と管理を行う。
［８］ジョブ層
ジョブ層７０は、ジョブの実行を管理し、且つエレメント層６０の1つの機能部内にあるプログラムを起動し又は複数の機能部内のプログラムをシーケンシャルに起動して、ジョブを実行するものであり、ジョブ管理部７１、ジョブ制御部７２、基本ジョブ実行部７３、インプットステップ実行部７４、エディットステップ実行部７５及びアウトプットステップ実行部７６の各ステップ実行部と、これらからアクセス可能なジョブ情報７７とを備えている。なお、便宜のため、ジョブ管理部７１及びジョブ制御部７２を含むものを「応用ジョブ層」と称し、基本ジョブ実行部７３、インプットステップ実行部７４、エディットステップ実行部７５及びアウトプットステップ実行部７６を含むものを「基本ジョブ層」と称す。
【００５１】
ジョブ管理部７１は、サービス層８０からのジョブ開始要求に応じて、その時点の設定情報（ジョブ種に対応する部分のみで可）をコピーした、ジョブ情報７７を生成し、上記リソース管理部４３を介して該ジョブを構成する基本ジョブの実行に必要なハードウェア資源を獲得し、その後ジョブ制御部７２にジョブの実行、実行順の変更、中断、再開又はキャンセルなどのジョブ制御指示を行う。ここで、ジョブ情報７７とは、ジョブの設定値とジョブの状態とからなり、ジョブ種によらない、各ジョブに共通の構造体である。図５は、ジョブ情報に含まれる設定値の説明図である。
【００５２】
ジョブ制御部７２は、上記ジョブ制御指示に応答し、その指示がジョブの実行の場合、ジョブシナリオに従って基本ジョブ実行部７３にジョブを構成する基本ジョブを順次実行指示することによりジョブを実行する。ここにジョブシナリオは、１つ以上の基本ジョブとその実行順の情報を含む。このジョブシナリオは、条件に応じて基本ジョブを選択する条件分岐命令を含んでもよい。例えば出力リソース待ちの場合、出力を急ぐためユーザの設定に応じ出力リソースを変更するようにしてもよい。
【００５３】
基本ジョブ実行部７３は、上記基本ジョブ実行指示に応答し、基本ジョブが画像処理を含む場合にはイメージジョブ実行部７３ａを起動し、含まない場合にはアクセスジョブ実行部７３ｂを起動する。
【００５４】
イメージジョブ実行部７３ａは、基本ジョブシナリオに従って、画像処理対象の頁ごとにインプットステップ実行部７４、エディットステップ実行部７５又はアウトプットステップ実行部７６を起動してジョブステップを順次実行させることにより、基本ジョブを実行する。ここに基本ジョブシナリオは、複数のジョブステップとその実行順の情報を含む。このシナリオも、上記同様に、条件分岐命令を含むことができる。
【００５５】
アクセスジョブ実行部７３ｂは、エレメント層６０にあるデバイス操作部６１又はエンティティ部６３を介して、画像処理を伴わない基本ジョブを実行する。例えば、デバイス操作部６１、デバイス制御部４１、デバイスドライバ３１及びＮＩＣ１７を介して特定の状態変化を電子メールで通知する。
【００５６】
インプットステップ実行部７４は、デバイス操作部６１又はエンティティ部６３を介して画像入力に係わるジョブステップを実行する。例えば、デバイス操作部６１、デバイス制御部４１及びデバイスドライバ３１を介してスキャナ１６Ｓに原稿画像データを読み込ませる処理を行う。また、エンティティ部６３が保持している印刷ファイルをファクシミリモデム１８により送信する場合に、エンティティ部６３から印刷ファイルを取得するのもインプットステップとして実行する。
【００５７】
エディットステップ実行部７５は、画像処理操作部６２を介して画像編集に係わるジョブステップを実行する。例えば、画像処理操作部６２及び画像処理部４２を介して未編集の印刷データに対し拡大、縮小、回転などの処理を行う。
【００５８】
アウトプットステップ実行部７６は、デバイス操作部６１又はエンティティ部６３を介して画像出力に係わるジョブステップを実行する。例えば、デバイス操作部６１、デバイス制御部４１及びデバイスドライバ３１を介してプリンタ１６Ｐに印刷データを印刷させる処理を行う。
［９］サービス層
サービス層８０は、上層のユーザサービス受付部８１と、下層のユーザサービス実行部８２及びシステムサービス実行部８３とを備えている。
【００５９】
ユーザサービス受付部８１は、ユーザからの要求をイベント通知により受け付けて、ユーザの要求が何であるかを判断し、この要求に応えるためユーザサービス実行部８２に対しサービスの実行を指示する。
【００６０】
具体的には、操作パネル１５、ＮＩＣ１７又はファクシミリモデム１８等からデバイスドライバ３１、デバイス制御部４１及びデバイス操作部６１を介した要求を受け付け、ユーザのサービス要求に応じたジョブシナリオの識別子（ポインタ又は参照）をユーザサービス実行部８２に引き渡すことによりサービスの実行を指示する。このサービス要求には、コピー、ファックス送受信、電子メール送受信、メンテナンス、ソフトウェアのアップデート等がある。但し、エンティティ部６３が保持する設定情報等のデータの表示や変更などの簡易なサービス要求を受け付けた場合は、アプリケーションの複雑化を避けるため、ユーザサービス実行部８２に実行を指示せず、エンティティ部６３に直接サービスの実行を指示する。
【００６１】
ユーザサービス実行部８２は、上記サービス実行指示に応答して、ジョブシナリオの識別子をジョブ管理部に引き渡してジョブの開始指示をすることにより、サービスを実行する。
【００６２】
システムサービス実行部８３は、画像形成装置１０のシステム要求を、システム管理部５２を介して受け付け、ジョブ管理部７１を呼び出すことによりサービスを実行する。本実施例では、システムからの要求は後述する通知サービスのみ受け付けるが、他のサービス要求、例えば所定の時刻に自動的にＦＡＸ送信又はメンテナンスをするサービス等を受け付けるように設計してもよい。
【００６３】
システムサービス実行部８３は、システム管理部５２からの機器又はユーザジョブの状態変化の通知を受け取ると、エンティティ部６３に格納されている設定情報に基づきジョブ管理部７１に対し通知ジョブの実行を指示する。通知ジョブは、ユーザ設定のイベント、例えば実行中のジョブでエラーが発生したりファックス送信が完了したりした時に、設定した通知手段でユーザに該イベントの発生を通知するものである。この設定情報は、ユーザへの通知要否、通知すべきイベント、プリントや電子メールなどの通知手段、電子メールの場合には通知先などを含み、操作パネル１５から変更が可能である。
【００６４】
以下、上述したソフトウェア、特にアプリケーション層５０が種々のサービス要求に対応するフローを説明する。
［１０］プリントサービス実行フロー
図３は、各機能部間を矢印付線で結んでプリントサービス実行時のフローを示す図である。以下、括弧内は図中の実行指示識別符号を示す。
【００６５】
（Ａ０１、Ａ０２）イベントドリブンにより、一方ではホストコンピュータ２０からのデータが、ＮＩＣ１７及びデバイスドライバ３１を介してリソース管理部４３が確保する、ＤＲＡＭ１３Ｄのバッファ領域内に格納され、他方ではデバイス制御部４１及びデバイス操作部６１を介して印刷要求とデータ識別情報とがユーザサービス受付部８１に通知される。
【００６６】
（Ａ０３）ユーザサービス受付部８１は、印刷要求の通知であった場合、プリントのジョブシナリオの識別子と、サービスに対応した設定情報の識別子と、をユーザサービス実行部８２に渡すとともに、プリントサービスの実行を指示する（ユーザサービス実行部８２を起動する）。この設定情報には、上記データ識別情報と、プリントに関しＥＥＰＲＯＭ１３Ｅ２に設定されている現在の設定値が含まれる。
【００６７】
ユーザサービス実行部８２はこれに応答して、図４のシーケンス図に示すような動作を行うことにより、サービスを実行する。以下、この動作を具体的に説明する。
【００６８】
（Ａ０４）ユーザサービス実行部８２は、ジョブ管理部７１を起動し、これにプリントジョブを生成指示することによりプリントサービスの実行を開始する。
【００６９】
（Ａ０５）ジョブ管理部７１はこれに応答して、初期化されたジョブ情報７７のインスタンスを生成する。このインスタンスは、ジョブ情報７７のディフォルト値を持っている。次に、ジョブ管理部７１はこのジョブにジョブＩＤを割当て、ジョブ情報７７にこれとジョブ種を書き込む。
【００７０】
（Ａ０６）ジョブ管理部７１は、ジョブ情報７７の生成及び書き込みが完了すると、ユーザサービス実行部８２に上記ジョブＩＤを通知する。
【００７１】
（Ａ０７、Ａ０８）ユーザサービス実行部８２は、ユーザサービス受付部８１から受け取った上記設定情報をジョブ情報７７に書き込み、次いでジョブ管理部７１に対し、プリントのジョブシナリオの識別子を引き渡してプリントジョブの開始を指示する。
【００７２】
（Ａ０９〜Ａ１１）ジョブ管理部７１はこれに応答して、システム管理部５２にジョブ開始をジョブＩＤとともに通知し、上記ジョブシナリオの識別子に基づきジョブシナリオを参照し、リソース管理部４３に対し、基本ジョブを実行するのに必要なメモリや圧縮・伸張ＡＳＩＣ１９などのハードウェア資源の獲得要求をし、この獲得後、ジョブシナリオの識別子とジョブ情報７７の識別子とをジョブ制御部７２に引き渡すとともに、プリントジョブの制御を指示する。
【００７３】
（Ａ１２）ジョブ制御部７２はこれに応答して、受け取ったジョブシナリオの識別子に基づきジョブシナリオを参照し、これに従って、基本ジョブ実行部７３にジョブ情報７７の識別子を引き渡すとともに、基本ジョブを実行指示する。ここで本実施例では、プリントジョブは１つの基本ジョブから構成されるので、ジョブ制御部７２はこの基本ジョブだけを実行指示するが、プリントジョブが複数の基本ジョブから構成される場合は、ジョブ制御部７２は、ジョブシナリオに従って、１つの基本ジョブを実行指示し、その実行完了後、次の基本ジョブを実行指示するというように、複数の基本ジョブを順次実行指示するものである。
【００７４】
従来ではジョブが実行された後、プログラムの階層をミドルウェア層４０まで順に降りてからメモリなどのジョブに必要なハードウェア資源を獲得していたので、資源を獲得できずに待ち状態となっている時にジョブがキャンセルされると、それまでの処理が無駄になったが、本実施例ではハードウェア資源獲得後に基本ジョブを実行するので、このような無駄を省略することができるという効果を奏する。
【００７５】
基本ジョブ実行部７３は、上記基本ジョブ実行指示に応答して、基本ジョブ種に応じて、イメージジョブ実行部７３ａにジョブ情報７７の識別子と指示された基本ジョブを伝達するとともに、これを起動する。イメージジョブ実行部７３ａはこれに応答して、指示された基本ジョブに対応する基本ジョブシナリオを参照し、これに従って以下のようにステップ実行部７４〜７６に対し画像入力、画像処理（省略される場合有）及び画像出力のジョブステップをシーケンス制御する。すなわち、指示された基本ジョブを構成する複数のジョブステップを、基本ジョブシナリオに従ってステップ実行部７４〜７６に順次実行指示する。なお、ジョブ制御部７２が基本ジョブ実行部７３に実行指示し、これがイメージジョブ実行部７３ａを起動する場合を説明したが、ジョブ制御部７２が直にイメージジョブ実行部７３ａを起動するようにしてもよい。
【００７６】
（Ａ１３）上記シーケンス制御において、イメージジョブ実行部７３ａはまず、指示された基本ジョブに対応する基本ジョブシナリオに従って、ジョブ情報７７の識別子をインプットステップ実行部７４に引き渡すとともにこれを起動する。
【００７７】
（Ａ１４）インプットステップ実行部７４は、これに応答して、ジョブ情報７７に含まれるジョブ種（プリントジョブ）に応じジョブ情報７７から所定の設定情報を読み取り、これに基づき、画像処理操作部６２に該ジョブ情報７７に含まれる上記データ識別情報を渡すとともにこれを起動する。
【００７８】
（Ａ１５〜Ａ１８）画像処理操作部６２は、これに応答して、該データ識別情報をデバイス操作部６１に引き渡して、リソース管理部４３が確保しているバッファ領域内の印刷データをデバイス操作部６１に取得させ、この印刷データを逐次解析して、これに含まれる所定の情報をジョブ情報７７に書き込み、その後画像処理部４２を介して未編集の印刷出力頁データを順次作成していく。そして、１ページ分の印刷出力頁データを作成するごとにインプットステップ実行部７４に作成完了を通知するとともに該頁データの識別子を引き渡す。
【００７９】
（Ａ１９）インプットステップ実行部７４は、これに応答して、基本ジョブ実行部７３内のイメージジョブ実行部７３ａに該完了を通知するとともに該頁データの識別子を引き渡す。
【００８０】
（Ａ２０）イメージジョブ実行部７３ａは、これに応答して、上記基本ジョブシナリオに従って、該頁データの識別子とジョブ情報７７の識別子とをエディットステップ実行部７５に引き渡すとともにこれを起動する。なお、基本ジョブシナリオによっては、エディットステップ実行部７５を起動しない場合があり、その場合はステップＡ２４の処理を行う。
【００８１】
（Ａ２１〜Ａ２３）エディットステップ実行部７５はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報を読み取り、これに基づいて、画像処理操作部６２を介し画像処理部４２の対応するメソッドを呼び出して、該頁データに対し拡大、縮小、回転などの画像編集を行う。編集が完了すると、基本ジョブ実行部７３内のイメージジョブ実行部７３ａに該完了を通知する。
【００８２】
（Ａ２４）イメージジョブ実行部７３ａは、上記基本ジョブシナリオに従って、編集された頁データの識別子とジョブ情報７７の識別子とをアウトプットステップ実行部７６に引き渡すとともにこれを起動する。
【００８３】
（Ａ２５）アウトプットステップ実行部７６はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報を読み取り、これに基づいてデバイス操作部６１を起動する。
【００８４】
（Ａ２６〜Ａ２８）デバイス操作部６１はこれに応答して、コモン部５１を呼び出して設定情報が機種に依存する条件を満たしているか否かを判定し、肯定判定した場合には、該設定情報に基づいてデバイス制御部４１を介し用紙への印刷処理を行う。また、否定判定した場合には、該印刷処理を行わないまま自己の処理を終えるか又は該コモン部５１から取得した、該設定情報の代替情報に基づいて該印刷処理を行う。
【００８５】
（Ａ２９）アウトプットステップ実行部７６は、全ての頁に対して該印刷処理が完了すると、基本ジョブ実行部７３内のイメージジョブ実行部７３ａに該完了を通知する。
【００８６】
（Ａ３０）イメージジョブ実行部７３ａは、基本ジョブシナリオを参照して、ジョブステップを全て実行完了したと判断し、すなわちこれらから構成される１つの基本ジョブの実行が完了したと判断し、ジョブ制御部７２に基本ジョブの完了を通知する。
【００８７】
（Ａ３１）ジョブ制御部７２はこれに応答して、ジョブ管理部７１にこの基本ジョブ完了をジョブＩＤとともに通知する。
【００８８】
（Ａ３２〜３４）ジョブ管理部７１はこれに応答して、リソース管理部４３を介し、ジョブ開始時に獲得した上記ハードウェア資源を解放し、ジョブシナリオを参照し、基本ジョブを全て実行完了したと判断し、すなわちこれから構成されるプリントジョブの実行が完了したと判断して、ジョブ情報７７を破棄し、且つ、ジョブ完了をジョブＩＤとともにシステム管理部５２及びユーザサービス実行部８２に通知する。
【００８９】
このように、全ジョブ種に共通のデータ構造のジョブ情報７７を備えておき、これを利用するインプットステップ実行部７４、エディットステップ実行部７５及びアウトプットステップ実行部７６内のプログラムにおいて、ジョブ情報７７が保持しているジョブ種に応じ所定の設定情報をジョブ情報７７から取得するので、構成が簡単になって設計変更が容易となるという効果を奏する。
【００９０】
また、イメージジョブ実行部７３ａがジョブに対応する基本ジョブシナリオに基づき各ステップ実行部７４〜７６に実行指示するので、各ステップ実行部７４〜７６内のプログラムの詳細を変更せずとも該基本ジョブシナリオを変更するだけで新たなジョブ種を容易に作成でき、設計変更が容易となるという効果を奏する。
［１１］ファックス送信サービス実行フロー
図６は、各機能部の間を矢印付線で結んでファックス送信サービス実行時のフローを示す図である。
【００９１】
（Ｂ０１、Ｂ０２）ユーザは、操作パネル１５を操作してファックス送信先等の設定を行い、操作パネル１５上のスタート釦を押下する。デバイスドライバ３１はキー押下を検出してそのコードをデバイス制御部４１に供給し、デバイス制御部４１は状態と入力キーコードとに基づいて状態遷移を行うことにより入力をトークン化し、デバイス操作部６１に供給する。
【００９２】
（Ｂ０３）デバイス操作部６１は、要求や設定値を解釈してこれをユーザサービス受付部８１に供給する。
【００９３】
（Ｂ０４）ユーザサービス受付部８１はこれに応答して、ユーザサービス実行部８２に対し、ファックス送信のジョブシナリオの識別子とファックス送信に関する設定値の識別子とを渡してファックス送信サービスの実行を指示する。
【００９４】
（Ｂ０５）ユーザサービス実行部８２はこれに応答して、ジョブ管理部７１を起動し、これにファックス送信ジョブを生成指示することによりファックス送信サービスを実行する。
【００９５】
（Ｂ０６、Ｂ０７）ジョブ管理部７１はこれに応答して、このジョブにジョブＩＤを割り当て、初期化されたジョブ情報７７のインスタンスを生成して、これに該ジョブＩＤとジョブ種を書き込み、次にユーザサービス実行部８２にこのジョブＩＤを通知する。
【００９６】
（Ｂ０８、Ｂ０９）ユーザサービス実行部８２は、ユーザサービス受付部８１から受け取った識別子で指定される設定値をジョブ情報７７に書き込み、次いでジョブ管理部７１に対し、上記ジョブシナリオの識別子を渡してファックス送信ジョブの開始を指示する。
【００９７】
（Ｂ１０〜Ｂ１２）ジョブ管理部７１はこれに応答して、システム管理部５２にジョブ開始をジョブＩＤとともに通知し、受け取ったジョブシナリオの識別子に基づきジョブシナリオを参照し、リソース管理部４３に最初の基本ジョブ（後述するＳｃａｎＴｏＢｏｘ基本ジョブ）を実行するのに必要なＤＲＡＭ１３Ｄ内の領域やスキャナ１６Ｓなどのハードウェア資源の獲得要求をし、この獲得後、該ジョブシナリオの識別子とジョブ情報７７の識別子とをジョブ制御部７２に引き渡すとともに、ファックス送信ジョブの制御開始指示をする。
【００９８】
（Ｂ１３）ジョブ制御部７２はこれに応答して、受け取ったジョブシナリオの識別子に基づきジョブシナリオを参照し、これに従って、基本ジョブ実行部７３にジョブ情報７７の識別子を引き渡すとともに、ファックス送信ジョブを構成する１つのＳｃａｎＴｏＢｏｘ基本ジョブを実行指示する。
【００９９】
ここで、ファックス送信のジョブシナリオは、ＳｃａｎＴｏＢｏｘ基本ジョブを行った後にＢｏｘＴｏＦａｘ基本ジョブを行うことを示している。すなわち、ファックス送信ジョブは、スキャナ１６Ｓから原稿画像を読み取ってそのファイルをボックス（ディレクトリ）に入れるまでのＳｃａｎＴｏＢｏｘ基本ジョブと、送信先を呼び出し次いで該ボックスからファイルを取り出してファックス送信するＢｏｘＴｏＦａｘ基本ジョブとの組み合わせである。
【０１００】
基本ジョブ実行部７３はこれに応答して、実行指示された基本ジョブが、画像処理を伴うと判定し、イメージジョブ実行部７３ａにジョブ情報７７の識別子と指示された基本ジョブを伝達するとともに、これを起動する。イメージジョブ実行部７３ａはこれに応答して、指示された基本ジョブに対応する基本ジョブシナリオを参照し、これに従って以下のようにステップ実行部７４〜７６に対し画像入力、画像処理（省略される場合有）及び画像出力のジョブステップをシーケンス制御する。すなわち、指示された基本ジョブを構成する複数のジョブステップを、基本ジョブシナリオに従ってステップ実行部７４〜７６に順次実行指示する。
【０１０１】
（Ｂ１４）イメージジョブ実行部７３ａはまず、指示された基本ジョブに対応する基本ジョブシナリオに従って、ジョブ情報７７の識別子をインプットステップ実行部７４に引き渡すとともにこれを起動する。
【０１０２】
（Ｂ１５〜１７）インプットステップ実行部７４はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報を読取り、これに基づいてデバイス操作部６１及びデバイス制御部４１等を介しスキャナ１６Ｓから１頁分の原稿画像データを読み込む。デバイス操作部６１はこの際、デバイス制御部４１からの状態通知に応じてデバイス制御部４１を操作する。
【０１０３】
（Ｂ１８）インプットステップ実行部７４は上述した処理を完了すると、ジョブ情報７７に該原稿画像データの格納アドレス及び範囲などの頁情報を書き込んだ後、基本ジョブ実行部７３内のイメージジョブ実行部７３ａに該完了を通知する。
【０１０４】
（Ｂ１９）イメージジョブ実行部７３ａはこれに応答して、上記基本ジョブシナリオに従って、ジョブ情報７７の識別子をアウトプットステップ実行部７６に引き渡すとともにこれを起動する。
【０１０５】
（Ｂ２０、Ｂ２１）アウトプットステップ実行部７６はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報（該頁情報を含む）を読み取り、これに基づいて該原稿画像データを直に又はファイルとしてエンティティ部６３に格納し、基本ジョブ実行部７３内のイメージジョブ実行部７３ａに該完了を通知する。
【０１０６】
（Ｂ２２）イメージジョブ実行部７３ａはこれに応答して、基本ジョブシナリオを参照して、ジョブステップを全て実行完了し、ＳｃａｎＴｏＢｏｘ基本ジョブの実行が完了したと判定し、ジョブ制御部７２にこの完了を通知する。
【０１０７】
（Ｂ２３）ジョブ制御部７２はこれに応答して、ジョブ管理部７１にこの基本ジョブ完了をジョブＩＤとともに通知する。
【０１０８】
（Ｂ２４）ジョブ管理部７１はこれに応答して、リソース管理部４３を介し、ジョブ開始時に獲得した上記ハードウェア資源を解放し、その後ジョブシナリオを参照し、次の基本ジョブ（ＢｏｘＴｏＦａｘ基本ジョブ）があると判断して、リソース管理部４３にこの次の基本ジョブの実行に必要なファクシミリモデム１８などのハードウェア資源の獲得要求をする。
【０１０９】
（Ｂ２５〜Ｂ２７）ジョブ管理部７１は上記資源獲得後、ジョブ情報７７から送信先ＦＡＸ番号を読み取り、直接、デバイス操作部６１を介しデバイス制御部４１に宛先呼出制御を実行させる。デバイス操作部６１はこの際、デバイス制御部４１からの状態通知に応じてデバイス制御部４１を操作する。
【０１１０】
この呼出制御が失敗すると次の処理へ進めないという意味で、この制御はリソース確保に類似しており、共にジョブ管理部７１の責務とすることで、プログラム構造が整理されて設計変更容易性に寄与する。
【０１１１】
なお、ＢｏｘＴｏＦａｘジョブ及びファックス受信ジョブ実行に必要なＤＲＡＭ１３Ｄ内の領域は、画像形成装置１０の立ち上げ時の初期化処理で予め確保されており、この時点でハードウェア資源を獲得する必要はない。
【０１１２】
（Ｂ２８〜Ｂ３０）デバイス制御部４１は、送信先ファックスのオンフックを検知すると、デバイス操作部６１を介してこれをジョブ管理部７１に通知する。
【０１１３】
（Ｂ３１）ジョブ管理部７１はこれに応答して、ジョブ制御部７２にジョブの次制御を指示する。
【０１１４】
（Ｂ３２）ジョブ制御部７２はこれに応答して、ジョブシナリオを参照し、これに従って、基本ジョブ実行部７３にジョブ情報７７の識別子を引き渡すとともに、ファックス送信ジョブを構成する、上記ＳｃａｎＴｏＢｏｘ基本ジョブの次の基本ジョブであるＢｏｘＴｏＦａｘ基本ジョブを実行指示する。
【０１１５】
基本ジョブ実行部７３はこれに応答して、基本ジョブ種に応じて、イメージジョブ実行部７３ａにジョブ情報７７の識別子と指示された基本ジョブとを伝達するとともに、これを起動する。イメージジョブ実行部７３ａはこれに応答して、指示された基本ジョブに対応する基本ジョブシナリオを参照し、これに従って以下のようにステップ実行部７４〜７６に対し画像入力、画像処理（省略される場合有）及び画像出力のジョブステップをシーケンス制御する。すなわち、指示された基本ジョブを構成する複数のジョブステップを、基本ジョブシナリオに従ってステップ実行部７４〜７６に順次実行指示する。
【０１１６】
（Ｂ３３）イメージジョブ実行部７３ａはまず、指示された基本ジョブに対応する基本ジョブシナリオに従って、ジョブ情報７７の識別子をインプットステップ実行部７４に引き渡すとともにこれを起動する。
【０１１７】
（Ｂ３４、Ｂ３５）インプットステップ実行部７４はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報を読取り、これに基づいてファイルをエンティティ部６３から読み出し、イメージジョブ実行部７３ａにジョブステップの完了を通知する。
【０１１８】
（Ｂ３６）イメージジョブ実行部７３ａはこれに応答して、上記基本ジョブシナリオに従って、次のジョブステップを実行させるために、ジョブ情報７７の識別子をアウトプットステップ実行部７６に引き渡すとともにこれを起動する。なお、本実施例では、画像処理を省略しているのでエディットステップ実行部７５を呼び出さないが、呼び出す場合には、エディットステップ実行部７５は、呼出し側のＦＡＸ装置の性能に合わせた画像処理を行う。
【０１１９】
（Ｂ３７〜Ｂ４１）アウトプットステップ実行部７６はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報を読取り、これに基づいてエンティティ６３に格納されている画像データ又はファイルを取得し、デバイス操作部６１を介しデバイス制御部４１に、取得した画像データ又はファイル内のデータをファックス送信させ、イメージジョブ実行部７３ａにジョブステップの完了を通知する。
【０１２０】
（Ｂ４２）イメージジョブ実行部７３ａはこれに応答して、基本ジョブシナリオを参照して、ジョブステップを全て実行完了したと判断し、すなわちこれらから構成されるＢｏｘＴｏＦａｘ基本ジョブの実行が完了したと判断し、ジョブ制御部７２に基本ジョブの完了を通知する。
【０１２１】
（Ｂ４３）ジョブ制御部７２はこれに応答して、ジョブ管理部７１にこの基本ジョブ完了をジョブＩＤとともに通知する。
【０１２２】
（Ｂ４４〜Ｂ４６）ジョブ管理部７１はこれに応答して、リソース管理部４３を介し、ＢｏｘＴｏＦａｘ基本ジョブ実行のために獲得したハードウェア資源を解放し、次にジョブシナリオを参照して、基本ジョブを全て実行完了し、これから構成されるファックス送信ジョブの実行が完了したと判断して、ジョブ情報７７を破棄し、ジョブ完了をジョブＩＤとともにシステム管理部５２及びユーザサービス実行部８２に通知する。
【０１２３】
本実施例によれば、応用ジョブ層でジョブシナリオに基づいて１つ以上の基本ジョブを実行するので、基本ジョブ層以下を変更することなく基本ジョブを組み合わせてジョブを追加し又は変更することができ、これにより設計変更が容易となるという効果を奏する。
【０１２４】
また、画像入力からそのファイルの保存までを１つの基本ジョブと定義するので、これをその他の基本ジョブを組み合わせて複数のジョブを実現できる。例えば図７に示すように、（１）ＳｃａｎＴｏＢｏｘ、（２）ＢｏｘＴｏＰｒｉｎｔ、（３）ＢｏｘＴｏＦａｘ及び（４）ＢｏｘＴｏＥ−ｍａｉｌの４つの基本ジョブを定義することにより、それぞれのジョブだけでなく、これらを組み合わせた３つのジョブ、
（５）ＳｃａｎＴｏＢｏｘ＋ＢｏｘＴｏＰｒｉｎｔ＝ＳｃａｎＴｏＰｒｉｎｔ
（６）ＳｃａｎＴｏＢｏｘ＋ＢｏｘＴｏＦａｘ＝ＳｃａｎＴｏＦａｘ
（７）ＳｃａｎＴｏＢｏｘ＋ＢｏｘＴｏＥ−ｍａｉｌ＝ＳｃａｎＴｏＥ−ｍａｉｌ
をさらに定義することができる。また、基本ジョブ１つを変更すればこれを含む複数のジョブを変更したことになり、これにより設計変更容易化の効果が高められるとともに、アプリケーションの構成がより簡単化されるという効果を奏する。
【０１２５】
さらに、ファックス送信ジョブがＳｃａｎＴｏＢｏｘ基本ジョブとＢｏｘＴｏＦａｘ基本ジョブの組み合わせであるので、例えばＳｃａｎＴｏＢｏｘ基本ジョブにおいてジャムが生じた場合、ＢｏｘＴｏＦａｘ基本ジョブの実行が開始されず、これが開始されたことにより無駄な処理が生ずるのを防止することができるという効果を奏する。
［１２］スキャンサービス実行フロー
図８は、各機能部間を矢印付線で結んでスキャンサービス実行時のフローを示す図である。このサービスは、上記ＳｃａｎＴｏＢｏｘジョブにより実現される。但し、同図では、スキャン入力とファイル出力との間に画像編集処理を含んでいる。
［１３］ボックス内ファイル印刷サービス実行フロー
図９は、各機能部間を矢印付線で結んでボックス内ファイル印刷サービス実行時のフローを示す図である。このサービスは、上記ＢｏｘＴｏＦａｘジョブをＢｏｘＴｏＰｒｉｎｔに変更し、ファイル読み出しと印刷出力との間に画像編集処理を含むものである。
［１４］スキャンサービス実行時にジャムが発生したときのフロー
図１０は、各機能部間を矢印付線で結んで、スキャンサービス実行時にジャムが発生した時のフローを示す図である。
【０１２６】
このスキャンサービスは、スキャンジョブを生成させる。このスキャンジョブは１つのＳｃａｎＴｏＢｏｘ基本ジョブから構成される。以下では、基本ジョブ実行部７３内のイメージジョブ実行部７３ａによる処理から説明する。
【０１２７】
（Ｅ０１）イメージジョブ実行部７３ａは、ジョブ情報７７の識別子をインプットステップ実行部７４に引き渡してインプットステップ実行部７４を起動する。
【０１２８】
（Ｅ０２〜Ｅ０４）インプットステップ実行部７４はこれに応答して、ジョブ情報７７に含まれるジョブ種に応じジョブ情報７７から所定の設定情報を読取り、これに基づいてデバイス操作部６１及びデバイス制御部４１等を介しスキャナ１６Ｓから１頁分の原稿画像データを読み込もうとする。
【０１２９】
（Ｅ０５、Ｅ０６）この際、スキャナ１６Ｓのオートシートフィーダでジャムが発生すると、デバイス制御部４１からデバイス操作部６１へジャム発生が通知される。
【０１３０】
ここで、デバイス操作部６１は、デバイス制御部４１からの通知がエラー発生又はエラー解除の場合、システム管理部５２にこれをその機器識別子及びジョブＩＤとともに通知し、その他の場合には該通知をジョブＩＤとともにインプットステップ実行部７４に通知する責務を有する。
【０１３１】
（Ｅ０７）したがって、デバイス操作部６１はジャム発生をその機器識別子及びジョブＩＤとともに起動元に、この場合はシステム管理部５２に通知する。
【０１３２】
（Ｅ０８、Ｅ０９）システム管理部５２は、エラー又はエラー解除の通知を受けると、これを、機器識別子とともにデバイス操作部６１の操作パネルプログラムに通知し、ジョブＩＤとともにジョブ管理部７１に通知する責務を有する。そこで、システム管理部５２はこれらの通知を行う。
【０１３３】
（Ｅ１０、Ｅ１１）デバイス操作部６１はこれに応答して、デバイス制御部４１及びデバイスドライバ３１を介し操作パネル１５上に、該機器識別子に対応した機器でジャムが生じたことを表示させる。
【０１３４】
（Ｅ１２）一方、ジョブ管理部７１は、該通知に応答して、該ジャムエラーをジョブ制御部７２に通知する。ジョブ制御部７２は、該エラーが、予め定められた中断事由に該当するか否かを判定する。
【０１３５】
（Ｅ１３）ジャムエラーは中断事由であり、ジョブ制御部７２は基本ジョブ実行部７３内のイメージジョブ実行部７３ａに対しジョブの中断を指示する。
【０１３６】
（Ｅ１４〜Ｅ１７）イメージジョブ実行部７３ａはこれに応答して、現在実行中のインプットステップ実行部７４及びデバイス操作部６１を介しデバイス制御部４１に動作を中断させる。
【０１３７】
（Ｅ１８、Ｅ１９）スキャナ１６Ｓの動作が中断すると、デバイス制御部４１からデバイス操作部６１へスキャナ１６Ｓの動作停止が通知される。
【０１３８】
（Ｅ２０）デバイス操作部６１は、インプットステップ実行部７４に該停止を通知する。
【０１３９】
（Ｅ２１〜Ｅ２３）インプットステップ実行部７４は、イメージジョブ実行部７３ａ及びジョブ制御部７２を介して、ジョブ管理部７１にこの停止を通知する。
【０１４０】
（Ｅ２４）ジョブ管理部７１は、この通知がジョブの状態変化であるので、これをシステム管理部５２に通知する。
【０１４１】
（Ｅ２５〜Ｅ２７）システム管理部５２は、この通知がジョブ状態変化であるので、デバイス操作部６１及びデバイス制御部４１を介してこの停止を通知することにより、操作パネル１５上に動作停止を表示させる。ユーザは、ジャムエラー発生によるスキャン中止の表示を見てジャムを解除させる。
【０１４２】
（Ｅ２８、Ｅ２９）この解除がスキャナ１６Ｓにより検出されると、これがデバイス制御部４１を介してデバイス操作部６１に通知される。
【０１４３】
（Ｅ３０）デバイス操作部６１は、ジャムエラー解除をシステム管理部５２に通知する。
【０１４４】
（Ｅ３１、Ｅ３２）システム管理部５２は、この解除を、一方では機器識別子とともにデバイス操作部６１の操作パネルプログラムに通知し、他方ではジョブＩＤとともにジョブ管理部７１に通知して、ジョブ再開を受付可能にする。
【０１４５】
（Ｅ３３、Ｅ３４）デバイス操作部６１はこの解除通知に応答して、デバイス制御部４１及びデバイスドライバ３１を介し操作パネル１５上のジャムエラー表示を消す。
【０１４６】
（Ｅ３５〜Ｅ３７）ユーザは、ジョブを再開させるため、操作パネル１５上のスタートキーを押下する。この情報は、ジョブＩＤとともにデバイスドライバ３１、デバイス制御部４１及びデバイス操作部６１を介してユーザサービス受付部８１に供給される。
【０１４７】
（Ｅ３８〜Ｅ４７）ユーザサービス受付部８１はこれに応答して、ユーザサービス実行部８２及びジョブ管理部７１を介しジョブ制御部７２にＳｃａｎＴｏＢｏｘ基本ジョブを再開させる。ジョブ制御部７２は、基本ジョブ実行部７３内のイメージジョブ実行部７３ａに基本ジョブ再開を指示する。イメージジョブ実行部７３ａはこれに応答して、現在中断中のジョブステップ実行部、この場合にはインプットステップ実行部７４に対し、処理を再開させる。インプットステップ実行部７４はこれに応答して、デバイス操作部６１を介しデバイス制御部４１を動作させる。これにより、スキャナ１６Ｓによる原稿画像読取り動作が再開される。
【０１４８】
本実施例によれば、エラー発生又はエラー解除の場合に、デバイス操作部６１からシステム管理部５２を介してジョブ管理部７１にこれが通知され、ジョブ管理部７１から下層側へ順次動作の中断又は再開の指示が行われるので、モジュール間で指示の方向がエラーの有無に係らず上層側から下層側となり、これにより、ジョブ層７０のプログラムの構成が簡単になって、設計変更が容易となる。
［１５］通知サービス実行フロー
図１１は、各機能部間を矢印付線で結んで、故障が発生した場合、例えばプリント実行中にプリンタ１６Ｐの給紙カセット１から給紙できなくなった場合に、システムが能動的に通知サービスを要求して故障発生通知サービスを実行するフローを示す図である。
【０１４９】
以下では、デバイス制御部４１によるプリント実行中の動作から説明する。
【０１５０】
（Ｆ０１〜Ｆ０３）この故障が検出されると、デバイス制御部４１はこれをデバイス操作部６１に通知する。デバイス操作部６１は、エラー識別子をエンティティ部６３に記入するとともに、エラーイベントの発生をシステム管理部５２に通知する。
【０１５１】
（Ｆ０４〜Ｆ０６）システム管理部５２はこれに応答して、エラーイベントを解析して、給紙カセット１が無効にされた、すなわち給紙カセット１の切り離しが行われたと判定して、これをデバイス操作部６１及びデバイス制御部４１を介し操作パネル１５に表示させる。
【０１５２】
（Ｆ０７）ここで、エンティティ部６３には、ユーザへの通知要否、通知すべきイベント（機器やジョブ状態の変化）、プリントや電子メールなどの通知手段、電子メールの場合には通知先などが通知情報として複数組記述されている。システム管理部５２は、エンティティ部６３を参照して、エラーをユーザに通知する必要があると判定した場合、該当する通知情報の識別子を伴って、システムサービス実行部８３に通知を要求する。
【０１５３】
（Ｆ０８）システムサービス実行部８３はこの要求を受け付けると、この識別子をジョブ管理部７１に引き渡すとともに通知ジョブを生成させることにより、通知サービスを実行する。
【０１５４】
（Ｆ０９、Ｆ１０）ジョブ管理部７１はこれに応答して、リソース管理部４３を介して通知ジョブ実行に必要なメモリやＮＩＣ１７などのハードウェア資源を獲得し、この獲得後、ジョブ制御部７２に該識別子を引き渡すとともにジョブ制御指示をする。
【０１５５】
（Ｆ１１）ジョブ制御部７２はこれに応答して、該識別子を基本ジョブ実行部７３に引き渡すことにより、通知ジョブを構成する基本ジョブ実行指示をする。
【０１５６】
基本ジョブ実行部７３はこれに応答して、基本ジョブ種に応じて、アクセスジョブ実行部７３ｂに該識別子と指示された基本ジョブを伝達するとともに、これを起動する。
【０１５７】
（Ｆ１２〜Ｆ１４）アクセスジョブ実行部７３ｂはこれに応答して、デバイス操作部６１、デバイス制御部４３、デバイスドライバ３１及びＮＩＣ１７を介し、カセット１の切り離しを通知する電子メールを送信する。
【０１５８】
従来では、このような通知がプリントジョブと一体になっていたが、本実施例ではこの通知が通知ジョブとして通常のジョブと独立して定義され、通常のジョブと同様に通知サービスに応答して通知ジョブが実行されるので、通常のジョブを実行するプログラムの構成が簡単化され、且つ、通知ジョブを構成する基本ジョブを他の基本ジョブと組み合わせて新たな又は既存のジョブを容易に定義することができるので、アプリケーションの設計変更が容易となる。
［１６］アドレス帳編集フロー
設計変更を容易にするためにアプリケーション層５０を多層化すると、層間及び各機能部間の関係が増えて構成が複雑になる。これを避けるため、構成を簡単化する工夫が必要になる。
【０１５９】
図１２は、各機能部間を矢印付線で結んで、操作パネル１５上からアドレス帳を編集する時のフローを示す図である。
【０１６０】
（Ｇ０１〜Ｇ０３）操作パネル１５を操作すると、上述のようにその情報がデバイスドライバ３１、デバイス制御部４１及びデバイス操作部６１を介してユーザサービス受付部８１に伝達される。
【０１６１】
（Ｇ０４）この情報が、アドレス帳の編集サービス要求である場合、ユーザサービス受付部８１は、ユーザサービス実行部８２及びジョブ層７０を介さずに直接エンティティ部６３内のアドレス帳編集プログラムを、ワークとして起動させる。
【０１６２】
（Ｇ０５〜Ｇ０８）これにより、アドレス帳編集の操作画面データの識別子がエンティティ部６３からユーザサービス受付部８１を介してデバイス操作部６１に供給され、該識別子に基づいて該操作画面データがデバイス制御部４１及びデバイスドライバ３１を介して操作パネル１５に供給され、その画面が表示される。
【０１６３】
その後、このような経路を辿ってインターラクティブにアドレス帳の編集が行われる。
【０１６４】
本実施例では、エンティティ部６３に対するアクセスについてはユーザサービス受付部８１でサービス要求を受け付けて統一化を図るとともに、ユーザサービス受付部８１からジョブ層７０を介さずに直接エンティティ部６３をアクセスするように構成しているので、アプリケーション層５０の複雑化が避けられ、特にジョブ層７０及びユーザサービス実行部８２の構成が簡単になるという効果を奏する。この簡単化により、アプリケーション層５０の設計変更が容易となるという効果を奏する。
［１７］ログイン実行フロー
認証・認可処理を有効にするか否かはユーザが設定可能であり、そのデータはエンティティ部６３に格納されている。以下の説明では、この処理が有効になっている場合を説明する。
【０１６５】
図１３は、各機能部間を矢印付線で結んでログイン実行時のフローを示す図である。
【０１６６】
（Ｈ０１〜Ｈ０３）上述のように、操作パネル１５からデバイスドライバ３１、デバイス制御部４１及びデバイス操作部６１を介してユーザサービス受付部８１に情報が伝達されると、ユーザサービス受付部８１はそのサービス要求を解釈する。
【０１６７】
（Ｈ０４）ユーザサービス受付部８１は、この情報がログイン要求であると解釈すると、ジョブ層７０を介さずに、システム管理部５２内のログインプログラムを、ワークとして直接起動させる。
【０１６８】
（Ｈ０５〜Ｈ１０）システム管理部５２はこれに応答して、操作パネル１５から入力されたパスワードがエンティティ部６３に登録されているものと一致するか否かを判定し、その結果をユーザサービス受付部８１、デバイス操作部６１、デバイス制御部４１及びデバイスドライバ３１を介し操作パネル１５上に表示させる。
［１８］認可実行フロー
図１４は、各機能部間を矢印付線で結んで、認証・認可が有効に設定され且つログイン中である場合の、通常のサービス実行時のフローを示す図である。
【０１６９】
（Ｉ０１〜Ｉ０３）上述のように、操作パネル１５からデバイスドライバ３１、デバイス制御部４１及びデバイス操作部６１を介してユーザサービス受付部８１に情報が伝達される。
【０１７０】
（Ｉ０４）ユーザサービス受付部８１は、サービス要求があった場合、ユーザサービス実行部８２に対しサービス実行を指示する前に、システム管理部５２に認可処理をワークとして指示する。
【０１７１】
（Ｉ０５〜Ｉ０７）システム管理部５２はこれに応答して、エンティティ部６３のデータを参照して、ログインしているユーザがこのサービスを受けられるか否かを判定し、その結果をユーザサービス受付部８１に通知する。
【０１７２】
（Ｉ０８〜Ｉ１１）ユーザサービス受付部８１は、これが肯定判定の通知である場合、ユーザサービス実行部８２に該サービスのジョブシナリオの識別子と該サービスに関する設定値とを渡して、ユーザサービス実行部８２にサービスの実行を指示する。否定判定の通知である場合には、サービス要求を受け付けず、その旨をデバイス操作部６１、デバイス制御部４１及びデバイスドライバ３１を介して操作パネル１５上に表示させる。
【０１７３】
従来では、認証・認可処理がサービスの１つとして定義されておらず、サービス層８０の上層で認証・認可処理が行われていたが、本実施例では認証・認可についてもサービスの１つとして取扱うことにより、処理の統一化を図るとともに、ユーザサービス実行部８２及びジョブ層７０を介さずに直接システム管理部５２をユーザサービス受付部８１から起動させるので、特にユーザサービス実行部８２及びジョブ層７０の構成の複雑化が避けられて、これらの設計変更が容易となるという効果を奏する。
【実施例２】
【０１７４】
図１６は、実施例１においてデータ領域を必要とする複数種の基本ジョブが並列処理で実行されている場合のＤＲＡＭ１３Ｄ内のメモリマップを示した図である。
【０１７５】
上記実施例１のような複合機では、複数種のジョブがデータ領域として１つのメモリ資源を共通に用いることとなるので、図１６に示す如く、新たなジョブ実行に必要な領域がメモリ内に無くなる場合が生じ、仮にこのようの場合にデータ領域を必要とする新たなジョブを実行するためには、メモリ内に十分な空き領域が確保されるまで待機する必要がある。
【０１７６】
よって、本実施例２では、データ領域を即座に使用することが可能な方法を説明する。
【０１７７】
図１７は、電源投入時の処理のフローチャートである。以下、括弧内は同図中のステップ識別符号である。
【０１７８】
（Ｓ１）ＥＥＰＲＯＭ１３Ｅ１に格納されているＢＩＯＳが起動される。
【０１７９】
（Ｓ２）ＢＩＯＳは、画像形成装置１０のハードウェアの初期化処理及びソフトウェアの初期化処理等を行う。
【０１８０】
（Ｓ３）ＢＩＯＳは次に、ＥＥＰＲＯＭ１３Ｅ２に格納されているＯＳ３２を起動させる。
【０１８１】
図１８はデータ領域確保後のＤＲＡＭ１３Ｄのメモリマップを示した図である。
【０１８２】
（Ｓ４）ＯＳ３２は、図１８に示す如く、ＤＲＡＭ１３Ｄの空き領域をブロック単位に区切り、データ領域として確保させる。この１つのブロックは、例えば１頁分の画像データを格納可能な領域である。なお図１８では、ＯＳ３２が使用するＤＲＡＭ１３Ｄ内の領域を省略している。
【０１８３】
（Ｓ５）ＯＳ３２はこの確保後、実施例１で説明したアプリケーションを起動する。なお、本実施例では、ＯＳ３２及びアプリケーションはＥＥＰＲＯＭ１３Ｅ２上で起動するが、ＳＤＲＡＭ等にこれらをロードしてそこから起動するようにしてもよい。
【０１８４】
この後、ユーザサービス実行部８２によりジョブが実行開始指示されると、例えば図３に示すステップＡ１０においてリソース管理部４３は、以下のような処理を行う。
【０１８５】
図１９は、本発明に係わるリソース管理部４３の処理のフローチャートを示す図であり、図２０は、このフローチャートの一部の説明図である。括弧内は図１９中のステップ識別符号である。
【０１８６】
（Ｓ１０）図１８に示すＤＲＡＭ１３Ｄ内のデータ領域として確保した空きブロックのうちの１つを基本ジョブ実行用に獲得する（図２０参照）。
【０１８７】
（Ｓ１１）ＤＲＡＭ１３Ｄ内にまだ空きブロックがあるか否かを判定する。肯定判定した場合には処理を終了し、否定判定した場合には次のステップＳ１２へ進む。なお、図２０に示すプリント基本ジョブ及びＳｃａｎＴｏＢｏｘ基本ジョブは、１頁分のデータ用に１ブロックを使用している。
【０１８８】
（Ｓ１２）規則に基づき退避ブロックを決定する。ここで規則としては、例えば最も多くのブロックを使用している基本ジョブを見つけ出し、これら複数のブロックのうちで最も処理が後に行われるブロックを退避ブロックとする。また、互いに等しいブロック数を使用している基本ジョブが複数ある場合には、予め設定された優先順位に従って、１つの基本ジョブを特定し、この中で退避ブロックを決定する。他にも、複数の基本ジョブの中で待機中のものを、退避ブロックを含む基本ジョブとして特定する。
【０１８９】
（Ｓ１３）図２０に示す如く、補助記憶装置、例えば外付フラッシュメモリ（図１５には不図示）に、決定したブロック内のデータを一時的に退避する。
【０１９０】
退避したブロック内のデータは、例えばＤＲＡＭ１３Ｄ内に空きブロックが２つ以上確保された時に、その空きブロックに戻される。
【０１９１】
このようにすることで、次にリソース管理部４３がデータ領域を確保する場合、ＤＲＡＭ１３Ｄ内には、常に空きブロックが存在することになるので、ジョブ実行開始時にメモリ資源が不足した状態となるのを防ぐことができ、もって即座にその空きブロックをデータ領域として使用することができるという効果を奏する。
【０１９２】
また、電源起動時においてＤＲＡＭ１３Ｄ内に予めデータ領域を確保しておくことで、ＯＳ３２やアプリケーションによってＤＲＡＭ１３Ｄ内の一部の領域を他の用途に利用されても、データ領域を常に使用することができるという効果を奏する。
【０１９３】
なお、本発明には外にも種々の変形例が含まれる。
【０１９４】
例えば図２において、ジョブ情報７７はジョブ毎の情報であるので、ジョブ層７０に含めたが、情報であるのでジョブ層７０の外部に配置することもでき、例えばエンティティ部６３やコモン部５１等に含めてもよい。
【０１９５】
また、図２のデバイス操作部６１とデバイス制御部４１との分割の境界をどこにするかには任意性があり、デバイス操作部６１はデバイス制御部４１を用いて機種に依存せずデバイスを制御するものであればよい。
【０１９６】
さらに、図２に示す複数の機能部を一つにまとめて構成してもよい。例えば、ユーザサービス受付部８１及びユーザサービス実行部８２を一つのユーザサービス提供部として、またジョブ制御部７２、イメージジョブ実行部７３ａ及びアクセスジョブ実行部７３ｂを一つのジョブ実行部として、さらにインプットステップ実行部７４、エディットステップ実行部７５及びアウトプットステップ実行部７６を一つのステップ実行部として構成するようにしてもよい。
【０１９７】
さらにまた、図２に示す各機能部をどの層６０〜８０に配置するか否かには任意性があり、例えばジョブをジョブシナリオに基づき１つ以上の基本ジョブに分解し、これらを順次実行指示させるジョブ制御部７２をジョブ層７０より上層のサービス層８０にあるユーザサービス実行部８２内又はこの下層に配置してもよい。この場合、ジョブ管理部７１はジョブ制御部７２により基本ジョブの実行指示を受け付け、この基本ジョブに必要なハードウェア資源をリソース管理部４３に対して確保させ、その後基本ジョブ実行部７３に上記実行指示を伝達する。この構成によれば、ジョブ層７０以下を変更することなくジョブを組み合わせてジョブを追加し又は変更することができ、これにより設計変更が容易となるという効果を奏する。
【０１９８】
また、図２に示すシステム管理部５２は、システムの状態及びユーザの両方を一括して管理しているが、両者のうちいずれか一方のみを管理し、システム管理部５２とは別の機能部が他方の管理をする構成であってもよい。さらに、システム管理部５２の責務であるユーザ管理のうち、図１３に示す認証処理又は図１４に示す認可処理を別の機能部の責務とする構成にしてもよい。
【０１９９】
さらにまた、図２に示すミドルウェア層４０の各機能部４１〜４３の一部又は全部をアプリケーションの一部として含む構成であってもよい。
【０２００】
基本ジョブシナリオは、複数のジョブステップとその実行順の情報を含むものであればよく、例えば関数fnc（inputKind, editKind, outputKind）の引数の組（inputKind, editKind, outputKind）であってもよい。ここにinputKind, editKind及びoutputKindはそれぞれ画像入力手段、画像処理及び画像出力手段の種類に対応しており、関数fncにおいてこの順に処理が行われ、引数の並び順がジョブステップ実行順を示している。
【０２０１】
同様に、ジョブシナリオは、１つ以上のジョブ種とその実行順の情報を含むものであればよく、例えば関数fnc（jobKind1, jobKind2)の引数の組（jobKind1, jobKind2)であってもよい。ここにjobKind1及び jobKind2はそれぞれ第１及び第２のジョブ種を示し、引数の並び順がジョブ実行順を示している。
【０２０２】
また、基本ジョブシナリオは、基本ジョブ実行部７３がジョブ制御部７２により指示された基本ジョブに基づいて決定する構成を説明したが、ジョブ制御部７２が、自身が指示する基本ジョブに対応する基本ジョブシナリオを決定し、この識別子を基本ジョブ実行部７３に引き渡す構成であってもよい。
【０２０３】
さらに、ジョブシナリオの識別子は、ユーザサービス受付部８１が決定し、これから下層に引き渡す構成を説明したが、ジョブシナリオを必要とするジョブ管理部７１が識別子を決定し、ここから下層に引き渡す構成であってもよい。
【０２０４】
さらにまた、システムサービス実行部８３により実行される通知ジョブを基本ジョブとし、ユーザサービス実行部８２により実行されるジョブを構成する１つの基本ジョブとしてもよい。
【０２０５】
また、ＯＳ３２及びアプリケーションはＥＥＰＲＯＭ１３Ｅ２に格納される場合を説明したが、これら全部又は一部がこれとは別個の記憶手段に格納される構成であってもよく、例えばＨＤＤ１４に格納される構成であってもよい。
【０２０６】
さらに、ＢＩＯＳはブートローダを含む構成であってもよく、この場合、図１７に示すステップＳ３では、ＢＩＯＳがブートローダを起動し、これがＯＳ３２を起動する。
【０２０７】
さらにまた、図１７に示すステップＳ４においてデータ領域を確保する構成を説明したが、ステップＳ５の次のステップでデータ領域を確保する構成であってもよい。
【０２０８】
また、図１９に示す如く、空きブロックが無い場合には常に、退避ブロックを決定し、このブロックを退避する構成を説明したが、仮に複数のブロックを使用している基本ジョブが無い場合には、退避ブロックが無いと判断して、Ｓ１２及びＳ１３の処理を行わずに終了する構成であってもよい。
【０２０９】
さらに、実施例２では１つの退避ブロックを決定し、これを退避させる構成を説明したが、複数の退避ブロックを決定し、これらを退避させる構成であってもよい。
【０２１０】
さらにまた、実施例２ではデータ領域をブロック単位で確保する構成を説明したが、ブロック単位でなく、不連続な空き領域を連結したデータ領域を確保する構成であってもよい。その場合、図１９に示す「空きブロック」とは「空きデータ領域」であり、「退避ブロック」とは「退避領域」である。
【図面の簡単な説明】
【０２１１】
【図１】本発明の画像形成装置のソフトウェア階層構造を示す概略ブロック図である。
【図２】各層に含まれるソフトウェアプログラム部を示すブロック図である。
【図３】各機能部間を矢印付線で結んでプリントサービス実行時のフローを示す図である。
【図４】図３の一部の動作を説明するためのシーケンス図である。
【図５】ジョブ情報に含まれる設定値の説明図である。
【図６】各機能部間を矢印付線で結んでファックス送信サービス実行時のフローを示す図である。
【図７】基本ジョブとその組み合わせにより得られる複数のサービスの説明図である。
【図８】各機能部間を矢印付線で結んでスキャンサービス実行時のフローを示す図である。
【図９】各機能部間を矢印付線で結んでボックス内ファイル印刷サービス実行時のフローを示す図である。
【図１０】各機能部間を矢印付線で結んで、スキャンサービス実行時にジャムが発生したときのフローを示す図である。
【図１１】各機能部間を矢印付線で結んで、故障が発生した場合にシステムが能動的に通知サービスを要求して故障発生通知サービスを実行するフローを示す図である。
【図１２】各機能部間を矢印付線で結んで、操作パネル上からアドレス帳を編集する時のフローを示す図である。
【図１３】各機能部間を矢印付線で結んでログイン実行時のフローを示す図である。
【図１４】各機能部間を矢印付線で結んで、認証・認可が有効に設定され且つログイン中である場合の通常のサービス実行時のフローを示す図である。
【図１５】本発明の実施例に係る画像形成装置のハードウェア構成を示す概略ブロック図である。
【図１６】実施例１においてデータ領域を必要とする複数種の基本ジョブが並列処理で実行されている場合のＤＲＡＭ内のメモリマップを示す図である。
【図１７】実施例２に係わる電源投入時の処理のフローチャートを示す図である。
【図１８】データ領域確保後のＤＲＡＭ内のメモリマップを示す図である。
【図１９】実施例２に係わるリソース管理部の処理のフローチャートを示す図である。
【図２０】図１９に示すフローチャートの一部を説明する図である。
【符号の説明】
【０２１２】
１０  画像形成装置
１１  ＭＰＵ
１２  インタフェース
１３Ｅ１  ＥＥＰＲＯＭ
１３Ｅ２  ＥＥＰＲＯＭ
１３Ｄ  ＤＲＡＭ
１４  ハードディスク
１５  操作パネル
１６Ｓ  スキャナ
１６Ｐ  プリンタ
１７  ＮＩＣ
１８  ファクシミリモデム
１９  圧縮・伸張ＡＳＩＣ
３０  ＯＳ層
３１  デバイスドライバ
３２  ＯＳ
４０  ミドルウェア層
４１  デバイス制御部
４２  画像処理部
４３  リソース管理部
５０  アプリケーション層
５１  コモン部
５２  システム管理部
６０  エレメント層
６１  デバイス操作部
６２  画像処理操作部
６３  エンティティ部
７０  ジョブ層
７１  ジョブ管理部
７２  ジョブ制御部
７３  基本ジョブ実行部
７３ａ  イメージジョブ実行部
７３ｂ  アクセスジョブ実行部
７４  インプットステップ実行部
７５  エディットステップ実行部
７６  アウトプットステップ実行部
７７  ジョブ情報
８０  サービス層
８１  ユーザサービス受付部
８２  ユーザサービス実行部
８３  システムサービス実行部
【図１】
2008234555.tif 000003
【図２】
2008234555.tif 000004
【図３】
2008234555.tif 000005
【図４】
2008234555.tif 000006
【図５】
2008234555.tif 000007
【図６】
2008234555.tif 000008
【図７】
2008234555.tif 000009
【図８】
2008234555.tif 000010
【図９】
2008234555.tif 000011
【図１０】
2008234555.tif 000012
【図１１】
2008234555.tif 000013
【図１２】
2008234555.tif 000014
【図１３】
2008234555.tif 000015
【図１４】
2008234555.tif 000016
【図１５】
2008234555.tif 000017
【図１６】
2008234555.tif 000018
【図１７】
2008234555.tif 000019
【図１８】
2008234555.tif 000020
【図１９】
2008234555.tif 000021
【図２０】
2008234555.tif 000022