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