(57)【特許請求の範囲】
【請求項１】
複数のソフトウェア部品と、前記複数のソフトウェア部品より共通に利用されるアプリケーションフレームワークとを有する画像形成装置であって、
前記アプリケーションフレームワークは、
いずれかの前記ソフトウェア部品に基づくジョブに対して設定された動作モード情報の取得の指示を出力し、動作モード情報を取得するモードプログラム登録手段と、
前記モードプログラム登録手段からの指示に基づいて、前記ジョブを構成する処理に対応するソフトウェア部品に対して前記動作モード情報の取得を要求し、該ソフトウェア部品から出力される返り値である所定の型の動作モード情報を取得して前記モードプログラム登録手段に出力する動作モード取得手段として当該画像形成装置を機能させ、
前記モードプログラム登録手段によって取得された動作モード情報と当該動作モード情報が構成するモードプログラムの識別情報とを含むモードプログラム情報を生成し、モードプログラム情報保持手段に格納させるモードプログラム情報管理手段を有する画像形成装置。
【請求項２】
前記アプリケーションフレームワークは、
前記モードプログラムの識別情報に基づくジョブの実行指示に応じ、前記モードプログラムの識別情報に対応する前記モードプログラム情報に含まれる前記動作モード情報を、前記モードプログラムの識別情報に対応する前記ソフトウェア部品に設定する設定手段として当該画像形成装置を機能させ、
前記ソフトウェア部品は、前記設定手段によって設定された前記動作モード情報に基づくジョブを当該画像形成装置に実行させる請求項１記載の画像形成装置。
【請求項３】
前記動作モード情報は、前記ソフトウェア部品の識別情報、該ソフトウェア部品において設定される設定項目の識別情報、及び前記設定項目のデータ型を示す情報を有する請求項１又は２記載の画像形成装置。
【請求項４】
前記ジョブは複数のソフトウェア部品による処理から構成され、
一のモードプログラム情報は、前記ソフトウェア部品のうちの何れか一以上のソフトウェア部品に対して設定された動作モード情報に係る情報を含む請求項１ないし３何れか一項に記載の画像形成装置。
【請求項５】
前記モードプログラム情報保持手段は、不揮発性の記憶手段である請求項１ないし４何れか一項に記載の画像形成装置。
【請求項６】
ジョブの種類毎に対応するジョブモジュールを接続するジョブモジュールインタフェースと、
前記ジョブを構成する処理に対応するソフトウェア部品の一覧及び前記ソフトウェア部品の実行順を前記ジョブモジュールから取得するジョブ構成取得手段と、
を有し、
前記動作モード取得手段は、前記ジョブ構成取得手段によって取得されたソフトウェア部品の一覧に含まれる前記ソフトウェア部品に対して、前記動作モード情報の取得を要求する請求項１ないし５何れか一項に記載の画像形成装置。
【請求項７】
前記アプリケーションフレームワークは、前記モードプログラム登録手段、前記動作モード取得手段を格納するモジュール格納手段、及び前記ジョブモジュールインタフェースとして当該画像形成装置を機能させ、
前記画像形成装置は、前記ソフトウェア部品を接続するソフトウェア部品インタフェースを有する提供機能フレームワークを有し、
前記ジョブモジュールは、ジョブの種類毎に対応し前記モジュール格納手段に格納されることにより動作モード取得手段となる動作モード取得モジュールを有する請求項６記載の画像形成装置。
【請求項８】
前記ジョブモジュールは、
前記ジョブの種類毎に対応するソフトウェア部品の一覧及び前記ソフトウェア部品の実行順に係る情報を保持するジョブ構成保持手段を有する請求項６又は７記載の画像形成装置。
【請求項９】
前記ソフトウェア部品は、
前記動作モード取得手段から動作モード情報の取得の要求を受けつける動作モード受付手段と、
前記動作モード受付手段によって受けつけられた動作モード情報の取得の要求に基づいて、所定の型の動作モード情報を、前記動作モード取得手段に出力する動作モード情報出力手段と、
前記動作モード情報に基づいて、前記ジョブを構成する処理の一部を実行する処理実行手段と、
として当該画像形成装置を機能させる請求項１ないし８何れか一項に記載の画像形成装置。
【請求項１０】
複数のソフトウェア部品と、前記複数のソフトウェア部品より共通に利用されるアプリケーションフレームワークとを有する画像形成装置が実行する画像形成方法であって、
前記アプリケーションフレームワークが、
いずれかの前記ソフトウェア部品に基づくジョブに対して設定された動作モード情報の取得の指示を出力するモードプログラム登録開始ステップと、
前記モードプログラム登録開始ステップによる指示に基づいて、前記ジョブを構成する処理に対応するソフトウェア部品に対して前記動作モード情報の取得を要求する動作モード取得要求ステップと、
該ソフトウェア部品から出力される返り値である所定の型の動作モード情報を取得する動作モード応答ステップと、
前記動作モード応答ステップによって取得された動作モード情報と当該動作モード情報が構成するモードプログラムの識別情報とを含むモードプログラム情報を生成するモードプログラム生成ステップとを当該画像形成装置に実行させ、
当該画像形成装置が、前記モードプログラム情報を、モードプログラム情報保持手段に格納させるモードプログラム情報管理ステップを実行する画像形成方法。
【請求項１１】
前記アプリケーションフレームワークが、
前記モードプログラムの識別情報に基づくジョブの実行指示に応じ、前記モードプログラムの識別情報に対応する前記モードプログラム情報に含まれる前記動作モード情報を、前記モードプログラムの識別情報に対応する前記ソフトウェア部品に設定する設定手順を当該画像形成装置に実行させ、
前記ソフトウェア部品が、前記設定手順によって設定された前記動作モード情報に基づくジョブを当該画像形成装置に実行させる請求項１０記載の画像形成方法。
【請求項１２】
前記動作モード情報は、前記ソフトウェア部品の識別情報、該ソフトウェア部品において設定される設定項目の識別情報、及び前記設定項目のデータ型を示す情報を有する請求項１０又は１１記載の画像形成方法。
【請求項１３】
前記ジョブは複数のソフトウェア部品による処理ステップから構成され、
一のモードプログラム情報は、前記ソフトウェア部品のうちの何れか一以上のソフトウェア部品に対して設定された動作モード情報に係る情報を含む請求項１０ないし１２何れか一項に記載の画像形成方法。
【請求項１４】
前記画像形成装置が、
前記ジョブを構成する処理に対応するソフトウェア部品の一覧及び前記ソフトウェア部品の実行順をジョブモジュールから取得するジョブ構成取得ステップを実行し、
前記動作モード取得要求ステップは、前記ジョブ構成取得ステップにおいて取得されたソフトウェア部品の一覧に含まれる前記ソフトウェア部品に対して、前記動作モード情報の取得を要求する請求項１０ないし１３何れか一項に記載の画像形成方法。
【請求項１５】
前記ソフトウェア部品が、前記動作モード取得要求ステップによる前記動作モード情報の取得の要求を受けつける動作モード受付ステップと、
前記ソフトウェア部品が、前記動作モード受付ステップによって受けつけられた動作モード情報の取得の要求に基づいて、所定の型の動作モード情報を出力する動作モード情報出力ステップと、
前記ソフトウェア部品が、前記動作モード情報に基づいて、前記ジョブを構成する処理の一部を実行する処理実行ステップと、
を当該画像形成装置に実行させる請求項１０ないし１４何れか一項に記載の画像形成方法。
【請求項１６】
請求項１ないし９何れか一項に記載のアプリケーションフレームワークとして前記画像形成装置を機能させるコンピュータプログラム。
【請求項１７】
請求項１６記載のコンピュータプログラムを格納したコンピュータ読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成方法、コンピュータプログラム、及び情報記録媒体に関する。
【背景技術】
【０００２】
従来から、画像形成装置におけるジョブの種類毎に、そのジョブを構成する処理のそれぞれに対して動作条件を設定して保持し、その保持した動作条件によりジョブを実行するモードプログラム機能を有する画像形成装置がある。
【０００３】
例えば、特開２００６−６７３２８号公報（特許文献１）には、ユーザの操作に対して同期するイベントと非同期なイベントを含むマクロを確実に動作させるために、操作者による操作手順を順次記録する記録手段と、非同期に発生するイベントによるステータスを記録する記録手段とを設けた画像処理装置等の技術が開示されている。なお、上記特許文献１に記載のマクロ機能は、上記のモードプログラム機能に対応する。
【０００４】
ところで、画像形成装置が実行するジョブを構成する複数の処理毎に対応するアプリケーションと、それらのアプリケーションから共通に利用される制御のプログラムとを設けた画像形成装置の技術が、特許第３６７９３４９号公報（特許文献２）に開示されている。特許文献２に記載の画像形成装置によれば、アプリケーションの拡張や変更が容易な画像形成装置を提供することができる。
【特許文献１】特開２００６−６７３２８号公報
【特許文献２】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載されているマクロ機能を、上記特許文献２に記載の画像形成装置に適用する場合、アプリケーション毎にモードプログラム機能によって設定される動作条件を保持しなくてはならない。そこで、動作条件を保持する手段を別途設け、各アプリケーションから共通に利用する構成が考えられるが、そのような構成では、共通に利用される記憶手段へのインタフェースを利用した処理の実装がアプリケーション毎に必要となる。
【０００６】
これらの構成では、何れも、アプリケーションがモードプログラム機能に対応する処理を行わなくてはならず、画像形成装置毎に異なるアプリケーションが搭載される場合には、モードプログラム機能の処理の部分を、画像形成装置毎に変更しなくてはならない。
【０００７】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、搭載されるソフトウェア部品の構成が異なる場合でも、モードプログラム機能を容易に実現することができる画像形成装置、画像形成方法、コンピュータプログラム、及び情報記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の画像形成装置は次の如き構成を採用した。
【０００９】
本発明の画像形成装置は、ジョブに対して設定された動作モード情報より構成されるモードプログラムを登録し、該モードプログラムを呼び出してジョブを実行する画像形成装置であって、前記ジョブに対して設定された動作モード情報の取得の指示を出力し、動作モード情報を取得するモードプログラム登録手段と、前記モードプログラム登録手段からの指示に基づいて、前記ジョブを構成する処理に対応するソフトウェア部品に対して前記動作モード情報の取得を要求し、該ソフトウェア部品から出力される返り値である所定の型の動作モード情報を取得して前記モードプログラム登録手段に出力する動作モード取得手段と、前記モードプログラム登録手段によって取得された動作モード情報と当該前記モードプログラムの識別情報とを含むモードプログラム情報を生成し、モードプログラム情報保持手段に格納させるモードプログラム情報管理手段と、を有する構成とすることができる。
【００１０】
これにより、搭載されるソフトウェア部品の構成が異なる場合でも、モードプログラム機能を容易に実現することができる画像形成装置を提供することができる。
【００１１】
なお、上記課題を解決するため、本発明は、さらに、上記画像形成装置が備える各手段によって実行される画像形成方法、上記画像形成方法をコンピュータに実行させるためのコンピュータプログラム、そのコンピュータプログラムを格納した情報記録媒体としてもよい。
【発明の効果】
【００１２】
本発明の画像形成装置、画像形成方法、コンピュータプログラム、及び情報記録媒体によれば、搭載されるソフトウェア部品の構成が異なる場合でも、モードプログラム機能を容易に実現することができる画像形成装置、画像形成方法、コンピュータプログラム、及び情報記録媒体を提供することが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づき説明する。
〔第一の実施の形態〕
図１は、本発明の第一の実施の形態に係る画像形成装置の機能構成の例である。図１の画像形成装置１００は、例えば、アプリケーションフレームワーク部１１０、ソフトウェア部品１５０、モードプログラム情報保持部１８０を有する。
【００１４】
アプリケーションフレームワーク部１１０は、モードプログラム機能を実現し、画像形成装置１００が有するソフトウェア部品に対して、動作モードの取得の指示、及びモードプログラムに対応するジョブの制御を行う。ここで、モードプログラム機能とは、アプリケーションによって実行されるジョブに対して設定されている動作モードをモードプログラムとして保存しておき、後に保存されているモードプログラムを呼び出すことで同じ動作モードによるジョブの実行する機能をいう。したがって、モードプログラムとは、ジョブに対して設定された動作モードが関連付けられたデータをいう。また、動作モードとは、ジョブの動作条件をいう。
【００１５】
アプリケーションフレームワーク部１１０は、例えば、モードプログラム登録手段１２０、動作モード取得手段１３０、及びジョブ制御手段１４０を有する。モードプログラム登録手段１２０は、操作者によって入力されるモードプログラムの登録（保存）の指示を受け付け、モードプログラムを登録するための処理を制御する。モードプログラム登録手段１２０は、また、モードプログラムの登録の指示に基づいて、動作モード取得手段１３０に対して対応するソフトウェア部品１５０に対して設定されている動作モードの取得を指示する。
【００１６】
モードプログラム登録手段１２０は、また、動作モードの取得指示の返り値として動作モード情報（動作モードを構成する設定項目に対する設定値等を含む情報）を取得する。取得された動作モード情報等は、後述するモードプログラム情報保持部１８０に格納される。
【００１７】
動作モード取得手段１３０は、モードプログラム登録手段１２０から入力される動作モードの取得指示に基づいて、対応するソフトウェア部品１５０に対し、設定されている動作モード情報の取得（提供）を指示する。動作モード取得手段１３０は、当該取得指示に応じてソフトウェア部品１５０から出力される動作モード情報を取得し、モードプログラム情報管理手段１８０に出力する。
【００１８】
ジョブ制御手段１４０は、モードプログラム情報保持手段１８０に保持されているモードプログラム情報のうち、図示しない入力手段から入力された識別情報に対応するモードプログラム情報を取得して、そのモードプログラム情報に基づいて、対応するソフトウェア部品に対して、そのモードプログラム情報に設定されている動作モードに基づく処理の実行指示を出力する。
【００１９】
ソフトウェア部品１５０は、例えば、動作モード部１６０及び処理実行手段１７０を有する。動作モード部１６０は、動作モード情報の取得の指示に基づいて、動作モード情報を出力する手段である。動作モード部１６０は、例えば、動作モード受付手段１６１及び動作モード情報出力手段１６２を有する。
【００２０】
動作モード受付手段１６１は、動作モード取得手段１３０からの動作モード情報の取得の指示を受け付ける。動作モード情報出力手段１６２は、動作モード情報の取得の指示に基づいて、動作モード情報を生成して出力する。
【００２１】
処理実行手段１７０は、ジョブ制御手段１４０からの処理の指示に基づいて、対応する動作モードに基づく処理を実行する。処理実行手段１７０は、ジョブを構成する処理に対応し、ソフトウェア部品の種類毎に異なる処理を行う。
【００２２】
モードプログラム情報管理部１８０は、例えば、モードプログラム情報管理手段１８１、及びモードプログラム情報保持手段１８２を有する。モードプログラム情報管理手段１８１は、動作モード取得手段１３０から出力される動作モード情報をモードプログラム情報保持手段１８２に格納させる。モードプログラム情報管理手段１８１はまた、その動作モード情報に対して識別情報を付与し、その識別情報を動作モード取得手段１３０に出力する。モードプログラム情報管理手段１８１は、また、モードプログラム登録手段１２０から入力されたモードプログラムの生成（登録）の指示毎に、モードプログラム情報保持手段１８２に保持された動作モード情報の識別情報と、モードプログラムの識別情報とを対応づけて、モードプログラムを生成（登録）する。
【００２３】
モードプログラム情報管理手段１８１は、さらに、生成したモードプログラムに識別情報を付与し、モードプログラム登録手段１２０に出力する。
【００２４】
モードプログラム情報保持手段１８２は、モードプログラム情報管理手段１８１によって出力される、動作モード情報、動作モード情報の識別情報、及びモードプログラムの識別情報を、モードプログラムに対応づけて保持する。これらの情報を、モードプログラム情報という。
【００２５】
モードプログラム情報保持手段１８２は、例えば、不揮発性の記憶手段として構成される。これにより、操作者によって設定が指示されたモードプログラムのモードプログラム情報を「永続化」することができる。なお、「永続化」とは、データを、不揮発性の記憶手段であるＮＶＲＡＭやハードディスク装置等に格納することである。
【００２６】
（第一の実施形態のモードプログラム機能を実現するソフトウェアの構成（その１））
図２は、本実施形態のモードプログラム機能を実現するソフトウェアの構成図である。図２では、アプリケーションフレームワーク（Ｆ／Ｗ）２１０、具象アプリケーション２５０、及びデータ管理部２５０が示されている。
【００２７】
アプリケーションフレームワーク２１０は、図１のアプリケーションフレームワーク部１１０に、具象アプリケーション２５０は、図１のソフトウェア部品１５０に、データ管理部２８０は、図１のモードプログラム保持手段１８０に、それぞれ対応する。
【００２８】
アプリケーションフレームワーク２１０は、各アプリケーション（ソフトウェア部品１５０）に共通の処理が実装されたコンポーネントであり、モードプログラム機能クラス２２０、及び動作モードクラス２３０を有する。モードプログラム機能クラス２２０は、図１のモードプログラム登録手段１２０に、動作モードクラス２３０は、図１の動作モード取得手段１３０に、それぞれ対応する。
【００２９】
モードプログラム機能クラス２２０は、モードプログラムの扱いについて各アプリケーションに共通な処理が実装されたクラスである。例えば、モードプログラム機能クラス２２０は、モードプログラムの登録を行い、その返り値として、モードプログラムの識別情報を出力する。動作モードクラス２３０は、動作モード情報の扱いについて各アプリケーションに共通な処理が実装されたクラスである。例えば、動作モードクラス２３０は、アプリケーションに設定されている動作モード情報の取得を行い、その返り値として、後述される抽象シンタックス型による動作モード情報を出力する。
【００３０】
具象アプリケーション２５０は、各アプリケーションに固有の処理が実装されたコンポーネントであり、動作モードクラス２６０と処理制御クラス２７０とを有する。動作モードクラス２６０は、図１の動作モード部１６０に、処理制御クラス２７０は、図１の処理実行手段１７０に、それぞれ対応する。
【００３１】
動作モードクラス２６０は、アプリケーションフレームワーク２１０の動作モードクラス２３０を継承し、アプリケーションに設定されている動作モード情報の取得について具体的な処理を行い、その返り値として、後述される抽象シンタックス型にアップキャストされた動作モード情報を出力する。処理制御クラス２７０は、ジョブの実行制御を行う。
【００３２】
データ管理部２８０は、データ全般の管理を行うコンポーネントであり、データ永続化機能クラス２８１を有する。データ永続化機能クラスは、図１のモードプログラム情報管理手段１８１に対応する。データ永続化機能クラス２８１は、動作モード情報やモードプログラム情報の永続化を行う。永続化する動作モード情報及びモードプログラム情報毎に、識別情報を付与して出力してもよい。
【００３３】
（動作モード情報のデータ構造）
続いて、動作モード情報のデータ構造について説明する。図３は、動作モード情報のデータ構造の例を説明するクラス図である。なお、図３の説明では、各クラスを識別する名称の末尾に付す「クラス」を省略する。図３では、数字型シンタックス、文字列型シンタックス、真偽値型シンタックス、及び列挙型シンタックスが、抽象シンタックスに汎化され、また、数字型シンタックス、文字型シンタックス、真偽値型シンタックス、列挙型シンタックスは、抽象シンタックスを継承する。
【００３４】
数字型シンタックス、文字列型シンタックス、真偽値型シンタックス、及び列挙型シンタックスは、それぞれ動作モード情報を表現する具象クラスである。すなわち、動作モード情報は、その値のデータ型に応じてこれらのいずれかのクラスのインスタンスとして扱われる。これらの各クラスは、設定項目の値の設定又は取得に関する操作（メソッド）を有する。
【００３５】
抽象シンタックスは、動作モード情報を表現する抽象クラスである。抽象シンタックスが定義されていることにより、アプリケーションフレームワーク２１０は、データ型（具象クラス）が異なりうる各動作モード情報（各具象クラスのインスタンス）を抽象シンタックス型にアップキャストして共通的に扱うことができる。抽象シンタックスは、アプリ名、属性名、及び属性の型の３つの属性を有する。アプリ名とは、具象アプリケーション２５０（ソフトウェア部品１５０）を識別する名称であり、例えば、ソフトウェア部品の個別の名称である。具象アプリケーション２５０は、一つのジョブを構成する処理を実行する。したがって、コピージョブを実行する具象アプリケーション２５０のアプリ名は、例えば「コピーアプリケーション」である。
【００３６】
属性名は、設定項目の名称であり、例えば、「印刷」アプリにおける「部数」、「解像度」、又は「原稿サイズ」等である。属性の型は、設定項目のデータ型である。図３では、数字型、文字列型、真偽値型、列挙型、及び原稿サイズ型が定義された例が示されているため、これらのいずれかの型を示す値が設定される。
【００３７】
図３のａは、具象アプリケーション２５０で定義される型の例である。図３のａは、「原稿サイズ」の属性名を有し、タテサイズ及びヨコサイズが「整数型」の属性の型を有する。ここで、具象アプリケーション２５０を識別する情報は、抽象シンタックスに含まれる。これにより、後にこの抽象シンタックスにより具象アプリケーション２５０を特定することができる。
【００３８】
なお、具象アプリケーション２５０で定義されるデータ型が複雑な構成をしており永続化可能が困難な場合は、ＬｉｓｔやＳｅｔ等、ＳＴＬ（Standard Template Library）におけるＣｏｌｌｅｃｔｉｏｎに対応するデータ型をアプリケーションフレームワーク２１０において予め定義し、データの階層構造を実現することで永続化可能なオブジェクトを定義するようにしてもよい。
【００３９】
例えば、図４は、階層的構造を実現するデータ型の例を示すクラス図である。同図では、Ｓｅｔ型シンタックスが追加されている。Ｓｅｔ型シンタックスは、抽象型シンタックスを継承する全てのクラス（データ型）をＳｅｔ形式で格納可能なクラス（データ型）である。
【００４０】
図３における原稿サイズ型をＳｅｔ型シンタックスによって代替すると例えば次のようになる。図５は、Ｓｅｔ型シンタックスを用いて原稿サイズ型を表現した例を示す図である。
【００４１】
同図では、属性名として「原稿サイズ」が設定されたＳｅｔ型シンタックスが、タテサイズ、ヨコサイズに対応する二つの数字型シンタックスをＳｅｔ形式で格納している。
【００４２】
なお、Ｓｅｔ型シンタックスにＳｅｔ型シンタックスを格納する等、Ｃｏｌｌｅｃｔｉｏｎクラスを組み合わせることで階層構造を自由に構築することが可能となる。これにより、アプリケーションフレーム２１０において定義されるデータ型の組み合わせによって具象アプリケーション２５０に固有のデータ型を定義することができる。したがって、具象アプリケーション２５０において当該固有のデータ型を扱うための特別な処理を実装する必要を無くすことができる。
【００４３】
なお、図３又は図４における各クラスのインスタンスを総称する場合、「シンタックスオブジェクト」という。
【００４４】
以下、画像形成装置１００によって実行される処理手順について説明する。
【００４５】
（アプリケーションの設定画面を表示する処理の例）
図６は、アプリケーションの設定画面を表示する処理の例のシーケンス図である。同図において、操作デバイス９５０は、画像形成装置１００が備える入力手段及び表示手段を含むデバイス（例えば、オペレーションパネル）である。また、具象アプリＵＩ２５１は、具象アプリケーション２５０において操作デバイス９５０に対する入出力制御を行う部分である。なお、図６のシーケンス図における各オブジェクトは、図２における同名のクラスのインスタンスである。
【００４６】
画像形成装置１００は、起動されると、アプリケーション一覧画面を操作デバイス９５０に表示させる。図７は、アプリケーション一覧画面の表示例を示す図である。同図のアプリケーション一覧画面７１０にはコピーボタン７１１、送信ボタン７１２、及びマルチボタン７１３等のアプリケーション選択ボタンと、プログラム展開ボタン７１４とが配置されている。アプリケーション選択ボタンは、利用対象とするアプリケーションを選択させるためのボタンである。プログラム展開ボタン７１４については後述する。
【００４７】
ステップＳ１０１では、操作者によってアプリケーション一覧画面７１０における任意のアプリケーション選択ボタン（ここでは、コピーボタン７１１であるとする。）が押下され、コピーボタン７１１に対応する具象アプリＵＩ２５１が呼び出される。ステップＳ１０１に続いてステップＳ１０２に進み、具象アプリＵＩ２５１は、動作モードオブジェクト３６０の生成をコピーアプリケーションに対応する具象アプリケーション２５０に要求する。ステップＳ１０２に続いてステップＳ１０３に進み、具象アプリケーション２５０は動作モードオブジェクト３６０を生成し、当該動作モードオブジェクト３６０を具象アプリＵＩ２５１に出力する（Ｓ１０４）。なお、当該動作モードオブジェクト３６０には、コピーアプリケーションに対する各設定項目の初期値が動作モード情報として当該動作モードオブジェクト３６０の生成時に設定される。
【００４８】
ステップＳ１０４に続いて具象アプリＵＩ２５１は、出力された動作モードオブジェクト３６０より設定項目の一覧（シンタックスオブジェクトの一覧）を取得する（Ｓ１０５、Ｓ１０６）。ここで取得されるシンタックスオブジェクトの一覧は、抽象シンタックスクラスの配列であるが、各シンタックスオブジェクトはそれぞれの属性の型に応じたクラス（図３参照）によってインスタンス化されている。
【００４９】
ステップＳ１０６に続いて具象アプリＵＩ２５１は、取得された各シンタックスオブジェクトより値（ここでは初期値）を取得する（Ｓ１０７、Ｓ１０８）。この際、具象アプリＵＩ２５１は、シンタックスオブジェクトを当該シンタックスオブジェクトの属性の型に応じたクラスにキャストし、キャストされたクラスのインスタンスより値を取得する。したがって、各設定項目のデータ型に応じた値が取得される。続いて、具象アプリＵＩ２５１は、各シンタックスオブジェクトの属性名と各初期値とに基づいてコピーアプリケーションの設定画面を表示させる。
【００５０】
図８は、コピーアプリケーションの設定画面の表示例を示す図である。同図の設定画面７２０には、コピーアプリケーションの各設定項目について初期値が表示されている。
【００５１】
（動作モード情報を設定する処理の例）
続いて、操作者によって設定画面７２０を介して動作モード（各設定項目の値）が設定される。図９は、動作モードを設定する処理の例のシーケンス図である。同図ではコピーアプリケーションについてソートの要否（ＯＮ／ＯＦＦ）の設定が行われる例について説明する。なお、図９のシーケンス図における各オブジェクトは、図２における同名のクラスのインスタンスである。
【００５２】
ステップＳ２０１では、設定画面７２０において操作者によってソートボタン７２１が押下され、ソートがＯＮに設定されたことがコピーアプリケーションの具象アプリＵＩ２５１に通知される。ステップＳ２０１に続いてステップＳ２０２に進み、具象アプリＵＩ２５１は、「ｓｏｒｔ」をキーとしてコピーアプリケーションの動作モードオブジェクト３６０に対してソートの設定項目に対応するシンタックスオブジェクト（以下、「ソートシンタックスオブジェクト」という。）の取得を要求する。ステップＳ２０２に続いてステップＳ２０３に進み、動作モードオブジェクト３６０は、属性名が「ｓｏｒｔ」であるシンタックスオブジェクトを検索し、当該シンタックスオブジェクト（ソートシンタックスオブジェクト）を具象アプリＵＩ２５１に出力する。なお、ソートシンタックスオブジェクトは、真偽値型シンタックスクラスのインスタンスであるが、ここでは抽象シンタックスクラスとして出力される。
【００５３】
ステップＳ２０３に続いてステップＳ２０４に進み、具象アプリＵＩ２５１は、出力されたソートシンタックスオブジェクトをその属性の型に基づいて真偽値型シンタックスクラスにキャストし、キャストされたソートシンタックスオブジェクトに対して値（ここでは、「ｔｒｕｅ」）を設定する。ステップＳ２０４に続いてステップＳ２０５に進み、具象アプリＵＩ２５１は、値（ｔｒｕｅ）が設定されたソートシンタックスオブジェクトを動作モードオブジェクト３６０に設定する。これにより、動作モードオブジェクト３６０内においてソートシンタックスオブジェクトが更新される。ステップＳ２０５に続いてステップＳ２０６に進み、具象アプリＵＩ２５１は、設定画面７２０の表示状態を更新する。
【００５４】
図１０は、ソートがＯＮに設定された後のコピーアプリケーションの設定画面の表示例を示す図である。同図の設定画面７２０では、ソートボタン７２１に「ＯＮ」が表示されている。
【００５５】
（ジョブを実行する処理の例）
図１１は、ジョブを実行する処理の例のシーケンス図である。なお、図１１のシーケンス図における各オブジェクトは、図２における同名のクラスのインスタンスである。
【００５６】
ステップＳ３０１では、設定画面７２０を介した動作モードの設定後、操作デバイス９５０を介して操作者によってジョブの実行が指示され。その旨がコピーアプリケーションの具象アプリＵＩ２５１に通知される。ステップＳ３０１に続いてステップＳ３０２に進み、具象アプリＵＩ２５１は、コピーアプリケーションの動作モードオブジェクト３６０（すなわち、動作モード情報が設定されている動作モードオブジェクト３６０）を引数に指定してジョブを制御するための処理制御オブジェクト３７０の生成を具象アプリケーション２５０（コピーアプリケーション）に要求する。ステップＳ３０２に続いてステップＳ３０３に進み、具象アプリケーション２５０は、コピーアプリケーションの処理制御オブジェクト３７０を生成し、当該処理制御オブジェクト３７０に動作モードオブジェクト３６０を設定する。ステップＳ３０３に続いてステップＳ３０４に進み、具象アプリケーション２５０は生成された処理制御オブジェクト３７０を具象アプリＵＩ２５１に出力する。
【００５７】
ステップＳ３０４に続いてステップＳ３０５に進み、具象アプリＵＩ２５１は、処理制御オブジェクト３７０に対してジョブの実行を要求する。当該要求に応じ、処理制御オブジェクト３７０は、設定された動作モードオブジェクト３６０に基づく動作モードに基づいてジョブ（コピージョブ）を実行する。その後、処理制御オブジェクト３７０は、ジョブの進捗状況（例えば、ジョブの完了）を具象アプリＵＩ２５１に通知する（Ｓ３０６）。
【００５８】
（モードプログラムを登録する処理の例）
図１２は、モードプログラムを登録する処理の例のシーケンス図である。図１２のシーケンス図における各オブジェクトは、図２において同名のクラスのインスタンスである。
【００５９】
ステップＳ４０１では、動作モードの設定が行われた後（すなわち、図９の処理の後）、設定画面７２０において操作者により条件保存ボタン７２４が押下され、その旨がモードプログラム機能ＵＩ３２１に通知される。モードプログラム機能ＵＩ３２１は、モードプログラム機能に関して操作デバイス９５０に対する入出力制御を行うソフトウェアである。モード機能プログラムＵＩ３２１は、当該通知に応じ、モードプログラム登録画面を操作デバイス９５０に表示させる。
【００６０】
図１３は、モードプログラム登録画面の表示例を示す図である。同図において、モードプログラム登録画面７３０は、プログラム名入力領域７３１及び保存ボタン７３２等を有する。
【００６１】
ステップＳ４０２では、モードプログラム登録画面７３０のプログラム名入力領域７３１に登録対象とされるモードプログラムの名前（プログラム名）が入力され、保存ボタン７３２が押下される。ステップＳ４０２に続いてステップＳ４０３に進み、モードプログラム機能ＵＩ３２１は、入力されたプログラム名（図１３の例では「コピー００１」）を引数として、モードプログラムの登録をモードプログラム機能オブジェクト３２０に要求する。ステップＳ４０３に続いてステップＳ４０４に進み、モードプログラム機能オブジェクト３２０から動作モードオブジェクト３３０に対し、一つの設定項目に関する動作モード情報（シンタックスオブジェクト）を取得する指示が出力される。
【００６２】
ステップＳ４０４に続いてステップＳ４０５に進み、動作モードオブジェクト３３０から動作モードオブジェクト３６０に対し、一つの設定項目に対する動作モード情報を取得する指示が出力される。ステップＳ４０５に続いてステップＳ４０６に進み、動作モードオブジェクト３６０から動作モードオブジェクト３３０に対し、一つの設定項目に対する抽象シンタックスクラスのシンタックスオブジェクトが出力される。
【００６３】
なお、ここで出力される情報は、例えば、リンクリストのようなコンテナの形式を有してもよい。これにより、動作モードオブジェクト３３０は、動作モード情報を構成する全ての設定項目に対するシンタックスオブジェクトを一度に取得することができる。
【００６４】
ステップＳ４０６に続いてステップＳ４０７に進み、動作モードオブジェクト３３０からモードプログラム機能オブジェクト３２０に対し、一つのシンタックスオブジェクトが出力される。
【００６５】
ステップＳ４０７に続いてステップＳ４０８に進み、モードプログラム機能オブジェクト３２０からデータ永続化機能オブジェクト３８１に対し、取得されたシンタックスオブジェクトを永続化する指示が、シンタックスオブジェクトとともに出力される。この指示に基づいて、モードプログラム機能オブジェクト３２０は、当該シンタックスオブジェクトに格納されている動作モード情報を不揮発性の記憶手段に格納させる。
【００６６】
図１４は、動作モード情報の永続化形式を示す図である。同図に示されるように永続化された動作モード情報には動作モードＩＤが割り当てられる。動作モードＩＤは、永続化された各動作モード情報の識別情報であり、動作モード情報が永続化される際に割り当てられる。なお、動作モード情報の永続化は、例えば、シリアライズ等によって行えばよい。
【００６７】
ステップＳ４０８に続いてステップＳ４０９に進み、データ永続化機能オブジェクト３８１からモードプログラム機能オブジェクト３２０に対し、永続化された動作モード情報に対して割り当てられた動作モードＩＤが出力される。
【００６８】
ステップＳ４０４からステップＳ４０９の処理は、各設定項目に対して行われる。したがって、各設定項目のシンタックスオブジェクトが永続化され、当該シンタックスオブジェクトに対して割り当てられた動作モードＩＤがモードプログラム機能３２０に収集される。
【００６９】
ステップＳ４０９に続いてステップＳ４１０に進み、モードプログラム機能オブジェクト３２０は、収集された動作モードＩＤを引数として、モードプログラム情報の永続化をデータ永続化機能オブジェクト３８１に対して要求する。当該要求に応じ、データ永続化機能オブジェクト３８１は、モードプログラム情報を不揮発性の記憶手段に格納させる。
【００７０】
図１５は、モードプログラム情報の永続化形式を示す図である。同図に示されるようにモードプログラム情報は、プログラムＩＤと動作モードＩＤとの集合とより構成される。プログラムＩＤは、登録されたモードプログラムごとに割り当てられる識別情報である。すなわち、モードプログラム情報は、モードプログラムと動作モードＩＤとを関連付けるための情報である。
【００７１】
ステップＳ４１０に続いてステップＳ４１１に進み、データ永続化機能オブジェクト３８１からモードプログラム機能オブジェクト３２０に対し、登録対象のモードプログラムに対して割り当てられたプログラムＩＤが出力される。ステップＳ４１１に続いてステップＳ４１２に進み、モードプログラム機能オブジェクト３２０は、モードプログラム機能ＵＩ３２１に対して当該プログラムＩＤを出力する。
【００７２】
ステップＳ４１２に続いてモードプログラム機能ＵＩ３２１は、動作モードオブジェクトよりアプリケーション名（例えば、「コピーアプリ」）を取得する（Ｓ４１３、Ｓ４１４）。ステップＳ４１４に続いてステップＳ４１５に進み、モードプログラム機能ＵＩ３２１は、プログラムＩＤ、アプリケーション名、及びプログラム名をデータ永続化機能オブジェクト３８１に出力する。データ永続化機能オブジェクト３８１は、これらの情報をモードプログラム表示情報として不揮発性の記憶手段に格納させる。
【００７３】
図１６は、モードプログラム表示情報の永続化形式を示す図である。モードプログラム表示情報は、利用対象とするモードプログラムを操作者に選択させる際の表示情報として利用される。日付は永続化された年月日である。
【００７４】
なお、モードプロプログラム表示情報又はモードプログラム情報（図１５）が、操作者の識別情報と対応づけられてもよい。これにより、登録されたモードプログラムを操作者毎に区別することができ、利便性を高めることができる。
【００７５】
（モードプログラムを展開する処理の例）
図１７は、モードプログラムを展開する処理の例のシーケンス図である。図１７のシーケンス図における各オブジェクトは、図２において同名のクラスのインスタンスである。なお、モードプログラムの展開とは、モードプログラムを利用するために呼び出すことをいう。
【００７６】
ステップＳ５０１では、アプリケーション一覧画面７１０（図７参照）が操作デバイス９５０に表示されている状態においてプログラム展開ボタン７１４が押下され、モードプログラムの一覧の表示がモードプログラム機能ＵＩ３２１に指示される。ステップＳ５０１に続いてステップＳ５０２に進み、モードプログラム機能ＵＩ３２１は、データ永続化機能オブジェクト３８１よりモードプログラム表示情報の一覧を取得する（Ｓ５０２、Ｓ５０３）。ステップＳ５０３に続いてステップＳ５０４に進み、モードプログラム機能ＵＩ３２１は、取得されたモードプログラム表示情報の一覧に基づいてモードプログラム一覧画面を操作デバイス９５０に表示させる。
【００７７】
図１８は、モードプログラム一覧画面の表示例を示す図である。同図に示されるように、モードプログラム一覧画面７４０には、登録されているモードプログラムのプログラム名及び日付の一覧が表示される。
【００７８】
ステップＳ５０４に続いてステップＳ５０５では、モードプログラム一覧画面７４０において展開対象とするモードプログラムが操作者によって選択され、展開ボタン７４１が押下される。ステップＳ５０５に続いてステップＳ５０６に進み、モードプログラム機能ＵＩ３２１は、選択されたモードプログラムに係るアプリケーション（ここでは、コピーアプリケーション）の具象アプリＵＩ２５１に対して動作モード情報の復元を要求する。この際、選択されたモードプログラムのプログラムＩＤが指定される。なお、選択されたモードプログラムに係るアプリケーション及びプログラムＩＤは、モードプログラム表示情報に基づいて判定される。
【００７９】
ステップＳ５０６に続いてステップＳ５０７に進み、具象アプリＵＩ２５１は、プログラムＩＤを指定して、動作モード情報の復元を動作モードオブジェクト３３０に要求する。ステップＳ５０７に続いてステップＳ５０８に進み、動作モードオブジェクト３３０は、データ永続化機能オブジェクト３８１より、永続化されているモードプログラム情報（図１５参照）において当該プログラムＩＤに関連付けられている動作モードＩＤの集合を取得する。ステップＳ５０８に続いてステップＳ５０９に進み、動作モードオブジェクト３３０は、永続化されている動作モード情報（図１４参照）の中で、取得された動作モードＩＤに対応する動作モード情報をデータ永続化機能オブジェクト３８１より取得する。
【００８０】
ステップＳ５０９に続いて、動作モードオブジェクト３３０は、動作モードオブジェクト３６０より各設定項目に対するシンタックスオブジェクトを取得する（Ｓ５１０、Ｓ５１１）。図１７では、ソートに対するシンタックスオブジェクト（ソートシンタックスオブジェクト）が取得された例が示されている。ステップＳ５１１に続いて、ステップＳ５１２に進み、動作モードオブジェクト３３０は、取得されたソートシンタックスオブジェクトに対して、ステップＳ５０９において取得された動作モード情報に含まれている値を設定する。ステップＳ５１２に続いてステップＳ５１３に進み、動作モードオブジェクト３３０は、値が更新された（永続化されていた値が設定された）ソートシンタックスオブジェクトを動作モードオブジェクト３３０に設定する。これによりソートに関する設定内容はモードプログラムとして永続化されていた値に復元される。なお、ステップＳ５１０〜Ｓ５１３は、他の設定項目のそれぞれについて行われる。
【００８１】
ステップＳ５１３に続いてステップＳ５１４に進み、具象アプリＵＩ２５１は、動作モードオブジェクト３３０に基づいて、コピーアプリケーションの設定画面７１０を表示させる（Ｓ５１４）。この際、設定画面７１０における設定状態は、モードプログラムに対して登録されていた動作モード情報に応じたものとなる。したがって、この状態において、図１１の処理が実行されることにより、モードプログラムに基づいてジョブが実行される。
【００８２】
（第一の実施形態のモードプログラム機能を実現するソフトウェアの構成（その２））
図１９は、本実施形態のモードプログラム機能を実現するソフトウェアの構成図であって、図２とは異なる機能を有するクラスが含まれる場合の例である。図１９において、図２と同一部分には同一符号を付し、その説明を省略する。
【００８３】
図１９の具象アプリケーション２５０ａに含まれる動作モードクラス２６０ａは、図２の動作モードクラス２６０と同様に、動作モード情報の取得指示に応じ、抽象シンタックスで表される動作モード情報を出力する。但し、動作モードクラス２６０ａは、所定の条件が満たされる場合に、データ永続化機能オブジェクト３８１に対して動作モード情報を出力して永続化を指示する。
【００８４】
所定の条件が満たされる場合とは、例えば、動作モードクラス２６０ａが、抽象シンタックスクラスを継承できない場合に、直接「整数型」、「文字列型」、「真偽値型」又は「列挙型」等にキャストしようとすると丸めの誤差が生じるとき等である。なお、抽象シンタックスクラスを継承できない場合とは、例えば、具象アプリケーション２５０ａがＪＡＶＡ（登録商標）言語によって実装されている場合に、抽象シンタックスクラスの他のクラスを継承しているとき等である。これは、ＪＡＶＡ（登録商標）言語の規定において、多重継承が禁止されていることにより生じる。
【００８５】
（具象アプリケーション側で、永続化を行う場合の処理）
図２０は、図１９で説明した具象アプリケーション２５０ａの動作モードクラス２６０ａによって永続化が行われる場合の処理の例のシーケンス図である。図２０では、データ永続化機能オブジェクト３８１に対する動作モード情報の永続化の指示が、具象アプリケーション２５０ａの動作モードオブジェクト３６０ａによっても行われうる。なお、図２０のシーケンス図における各オブジェクトは、図１９の同名を付されたクラスのインスタンスである。また、図２０では、図１２において破線で囲まれた部分についてのみ説明する。
【００８６】
ステップＳ６０１において、モードプログラム機能ＵＩ３２１は、モードプログラム登録画面７３０において操作者によって入力されたプログラム名を引数として、モードプログラムの登録をモードプログラム機能オブジェクト３２０に要求する。ステップＳ６０１に続いてステップＳ６０２に進み、モードプログラム機能オブジェクト３２０から動作モードオブジェクト３３０に対し、一つの設定項目に関する動作モード情報（シンタックスオブジェクト）を取得する指示が出力される。
【００８７】
ステップＳ６０２に続いてステップＳ６０３に進み、動作モードオブジェクト３３０から動作モードオブジェクト３６０ａに対し、一つの設定項目に対する動作モード情報を取得する指示が出力される。
【００８８】
ステップＳ６０３に続いてステップＳ６０４に進み、動作モードオブジェクト３６０ａが、自身によって永続化を行うか否かを判断する。ここでは、動作モードオブジェクト３６０ａによって永続化を行うと判断されたとする。
【００８９】
ステップＳ６０４に続いてステップＳ６０５に進み、動作モードオブジェクト３６０ａからデータ永続化機能オブジェクト３８１に対し、動作モード情報と、その動作モード情報の永続化の指示が出力される。この指示に基づいて、データ永続化機能オブジェクト３８１が、動作モード情報（シンタックスオブジェクト）とその識別情報である動作モードＩＤとを永続化する（図１４参照）。
【００９０】
ステップＳ６０５に続いてステップＳ６０６に進み、データ永続化機能オブジェクト３８１から動作モードオブジェクト３６０ａに対し、動作モード情報の識別情報である動作モードＩＤが出力される。ステップＳ６０６に続いてステップＳ６０７に進み、動作モードオブジェクト３６０ａから動作モードオブジェクト３３０に対し、既に動作モード情報が永続化済みであることの通知が出力される。なお、この通知は、動作モードＩＤを含む。またこの通知は、動作モードＩＤを出力することにより、既に永続化済みであることの通知に代えてもよい。
【００９１】
ステップＳ６０７に続いてステップＳ６０８に進み、動作モードオブジェクト３３０からモードプログラム機能オブジェクト３８１に対し、既に動作モード情報が永続化済みであることの通知が出力される。ステップＳ６０８で入力された通知により、符号ｂが付された箇所では、モードプログラム機能オブジェクト３８１は、永続化の処理の指示を出力しない。
【００９２】
以上のステップＳ６０２からステップＳ６０８の処理であるステップＳ６０が、具象アプリケーション側で永続化処理が行われる場合のシーケンスである。
【００９３】
一方、ステップＳ６１は、モードプログラム機能オブジェクト３２０が永続化の指示を出力する場合の処理であって、図１２のステップＳ４０４からステップＳ４０９の処理と略同一である。
【００９４】
ここで図１２と異なる点は、動作モードオブジェクト３６０ａが、自身によって永続化処理を行うか否かを判断するステップであるステップＳ６１１が含まれることである。このステップＳ６１１は、動作モードオブジェクト３６０ａが動作モード情報を取得する指示を受け取るステップＳ６１０の後に、さらに、動作モード情報を生成した後に、実行される。なお、ステップＳ６１０は、図１２のステップＳ４０５に対応する。
【００９５】
図２０のステップＳ６１におけるその他のステップは、図１２のステップＳ４０４からステップＳ４０９と同一の処理であるので、ここでは説明を省略する。同様に、図２０のステップＳ６１６からステップＳ６１８の処理も、図１２のステップＳ４１０からステップＳ４１２の処理と同一であるので、ここでは説明を省略する。
【００９６】
なお、各設定項目の動作モード情報の永続化を指示する主体は、当該設定項目が具象アプリケーション２５０ａにおいて固有なものであるか、又は各アプリケーションに共通なものであるかに基づいて決定してもよい。前者については具象アプリケーション２５０ａ側が永続化の指示を行い、後者についてはアプリケーションフレームワーク２１０側が永続化の指示を行えばよい。
【００９７】
また、具象アプリケーション２５０ａによる永続化の手順及び永続化の形式は、具象アプリケーション２５０ａごとに自由に定義可能としてもよい。この場合、具象アプリケーション２５０ａの動作モードオブジェクト３６０ａは、自由に定義した形式によって永続化された動作モード情報の集合に対して永続化ＩＤを付与し、当該永続化ＩＤをステップＳ６０７においてアプリケーションフレームワーク２１０に通知すればよい。アプリケーションフレームワーク２１０のモードプログラム機能３２０は、当該永続化ＩＤを、アプリケーションフレームワーク２１０において永続化した動作モード情報に対する動作モードＩＤとともに、図１４及び図１５の形式で永続化すればよい。
【００９８】
具象アプリケーション２５０ａによって永続化が必要なケースとしては、具体的には、具象アプリケーション２５０ａにおいて固有に定義されたデータ型による設定項目の動作モード情報を永続化する場合や、設定項目の値をそのまま永続化するのが適切でない場合等が考えられる。
【００９９】
ここで、値をそのまま永続化するのが適切でない設定項目の一例として、選択トレイ（給紙トレイとして選択されたトレイ）が挙げられる。例えば、印刷ジョブの設定項目として、操作者がＡ４ＬＥＦがセットされたトレイ１を選択した場合、当該設定項目に関しては「選択トレイ＝トレイ１」といった内容が動作モード情報として永続化される。しかし、永続化された動作モード情報を展開（復元）する際に、トレイ１にセットされている用紙のサイズがＡ３であるとすると、当該動作モード情報を利用したモードプログラムの実行結果は、操作者の意図と異なったものとなってしまう。
【０１００】
そこで、斯かる不都合を回避するため、選択トレイについてはトレイ番号ではなく、永続化の際に選択トレイにセットされている用紙サイズを永続化する値とする。上記の例では、「選択トレイ＝Ａ４ＬＥＦ」といった内容を動作モード情報として永続化しておく。復元時には、サイズがＡ４ＬＥＦの用紙がセットされている給紙トレイのトレイ番号を選択トレイに設定する。このような判断は、具象アプリケーション２５０ａに固有の設定項目に関してはアプリケーションフレームワーク２１０において行うのは困難であるため、具象アプリケーション２５０ａ側で行う必要がある。
【０１０１】
なお、図２０に対応するモードプログラムの展開処理は、図１７とほぼ同様でよい。但し、図１７のステップＳ５０７において呼び出されるメソッドを動作モードクラス２６０ａにおいてオーバーライドする必要がある。オーバーライドされたメソッド内において具象アプリケーション２５０ａに固有の永続化形式等に対応した処理を実装すればよい。
〔第二の実施の形態〕
図２１は、本発明の第二の実施の形態に係る画像形成装置の機能構成の例である。図２１の画像形成装置４００は、例えば、アプリケーションロジックフレームワーク部４１０、提供機能フレームワーク部４１１、ソフトウェア部品４５０、モードプログラム情報保持部４８０、及びジョブ構成部４９０を有する。ソフトウェア部品部４５０及びモードプログラム情報保持部４８０の機能及び構成は、それぞれ、図１のソフトウェア部品部１５０及びモードプログラム情報保持部１８０と同一であるので、ここでは説明を省略する。
【０１０２】
図２１の画像形成装置４００が、図１の画像形成装置１００と異なる点は、図１では、アプリケーションフレームワークにソフトウェア部品が組み込まれる構成であったのに対し、図２１では、フレームワークが、ジョブモジュールのフレームワークに対応するアプリケーションロジックフレームワーク部４１０と、ソフトウェア部品に対応する提供機能フレームワーク部４１１とに分かれていることである。これにより、ジョブの種類であるアプリケーション毎に、ソフトウェア部品の組合せを定義して実行することができる。
【０１０３】
アプリケーションロジックフレームワーク部４１０は、例えば、モードプログラム登録手段４２０、ジョブモジュールインタフェース４２４、モジュール格納手段４３１、及びジョブ構成取得手段４３２を有する。モードプログラム登録手段４２０の機能及び構成は、図１のモードプログラム登録手段１２０と同一であるので、ここでは説明を省略する。
【０１０４】
ジョブモジュールインタフェース４２４は、ジョブの種類毎に対応するジョブモジュール（ジョブ構成部４９０）が接続されるインタフェースである。
【０１０５】
モジュール格納手段４３１は、後述するジョブ構成部４９０に含まれている動作モード取得モジュール４９２を格納する手段である。モジュール格納手段４３１が、動作モード取得モジュール４９２を格納することにより、図１の動作モード取得手段１３０と同一の機能を実現する。
【０１０６】
ジョブ構成取得手段４３２は、操作者によって入力されたジョブの種類毎に、そのジョブを構成するソフトウェア部品の一覧を、ジョブモジュールインタフェース４２４を介して、そのジョブの種類に対応するジョブ構成部４９０から取得する。
【０１０７】
提供機能フレームワーク部４１１は、ジョブ制御手段４４０とソフトウェア部品インタフェース４４１とを有する。
【０１０８】
ジョブ制御手段４４０は、ジョブを実行する指示にしたがって、ソフトウェア部品を制御する。ジョブ制御手段４４０は、モードプログラムによるジョブの実行が指示された場合には、対応するモードプログラム情報にしたがって、ソフトウェア部品インタフェース４４１を介してソフトウェア部品を制御する。ソフトウェア部品インタフェース４４１は、ジョブを構成する処理毎に対応するソフトウェア部品が接続されるインタフェースである。
【０１０９】
ジョブ構成部４９０は、例えば、ジョブ構成保持手段４９１及び動作モード取得モジュール４９２を有する。ジョブ構成保持手段４９１は、ジョブ構成部４９０が対応するジョブの種類毎に、そのジョブを構成する処理に対応するソフトウェア部品の一覧と、そのソフトウェア部品の実行順の情報を保持する。
【０１１０】
動作モード取得モジュール４９２は、モジュール格納手段４３１に格納されることにより、図１の動作モード取得手段１３０と同一の機能を実現する。動作モード取得モジュール４９２がモジュール格納手段４３１に格納されることにより、ソフトウェア部品に対して、動作モードの取得を指示し、動作モード情報及びその動作モード情報の識別情報を取得する。動作モード取得モジュール４２９によって実現される動作モード取得手段の機能は、またさらに、モードプログラム情報保持部４８０に対して、動作モード情報等の永続化を指示する。
【０１１１】
（第二の実施形態のモードプログラム機能を実現するソフトウェアの構成）
図２２は、第二の実施形態のモードプログラム機能を実現するソフトウェアの構成図である。図２２では、アプリケーションロジックフレームワーク５１０、提供機能フレームワーク５２６、具象アプリケーションロジック５９０、及び具象提供機能５５０が示されている。
【０１１２】
図２２において図２と異なる点は、図２ではフレームワークの部分がアプリケーションフレームワーク２１０のみであったのに対し、図２２では、アプリケーションロジックフレームワーク５１０と提供機能フレームワーク５２６とに分かれていることである。これにより、ジョブの種類毎に異なる構成であるアプリケーションロジックの部分を、それぞれのジョブの種類毎に対応する具象アプリケーションロジックとして実現することができる。
【０１１３】
なお、図２２においてデータ管理部５８０は、図２のデータ管理部２８０と同一の機能及び構成であるので、ここでは説明を省略する。
【０１１４】
図２２のアプリケーションロジックフレームワーク５１０は、例えば、モードプログラム機能クラス５２０，動作モードクラス５３０、及び接続構成クラス５３２を有する。アプリケーションロジックフレームワーク５１０は、図２１のアプリケーションロジックフレームワーク部４１０に対応する。
【０１１５】
モードプログラム機能クラス５２０は、動作モードを登録する操作を行い、その返り値としてモードプログラムの識別情報であるプログラムＩＤを出力する。動作モードクラス５３０は、動作モードを取得する操作を行い、その返り値として、抽象シンタックスによる動作モード情報を出力する。接続構成クラス５３２は、ジョブを構成する処理である提供機能の一覧を取得する操作を行い、その返り値である提供機能一覧を出力する。
【０１１６】
具象アプリケーションロジック５９０は、図２１のジョブ構成部４９０に対応する。具象アプリケーションロジック５９０は、アプリケーションロジックフレームワーク５１０を継承し、接続構成クラス５９１及び動作モードクラス５９２を有する。接続構成クラス５９１は、ジョブの種類であるアプリケーション毎に対応する提供機能の一覧を取得する操作を行う。提供機能は、ソフトウェア部品によって実現される。そこで、接続構成クラス５９１は、ソフトウェア部品の一覧とその実行順を取得してもよい。接続構成クラス５９１は、接続構成クラス５３２を継承する。
【０１１７】
動作モードクラス５９２は、動作モードを取得する操作を行い、その返り値である抽象シンタックスで表記される動作モード情報と、その動作モードの識別情報とを出力する。動作モードクラス５９２は、アプリケーションフレームワーク５１０に組み込まれることにより、これらの操作を実現する。
【０１１８】
提供機能フレームワーク５２６は、図２１の提供機能フレームワーク部４１１に対応し、例えば、動作モードクラス５２７を有する。動作モードクラス５２７は、動作モードクラス５３０を継承し、また後述する具象提供機能５５０によって継承される。これにより、ジョブの種類に対応する具象アプリケーションロジック５９０毎に、動作モードクラス５９２が、アプリケーションロジックフレームワーク５１０に組み込まれ、それが、提供機能フレームワーク５２６から具象提供機能５５０に継承される。
【０１１９】
具象提供機能５５０は、図２１のソフトウェア部品４５０に対応し、それぞれジョブを構成する処理の一部を実現する。具象提供機能５５０は、動作モードクラス５６０と処理制御クラス５７０とを有する。動作モードクラス５６０は、動作モードクラス５２６を継承し、動作モードを取得する操作を行い、抽象シンタックスで表される動作モード情報を出力する。処理制御クラス５７０は、ジョブを構成する処理の一部の実行制御を行う。
【０１２０】
（具象アプリケーションロジックと具象提供機能の具体例（その１））
図２３及び図２４は、具象アプリケーションロジックと具象提供機能の具体例を説明する図である。図２３及び図２４において、アプリケーションロジック５１０、提供機能フレームワーク５２６、及びデータ管理部５８０は、図２２と同一の機能及び構成であるので、ここでは説明を省略する。
【０１２１】
図２３では、具象アプリケーションロジック５９０の例として、送信アプリケーションロジック５９０ａ及びコピーアプリケーションロジック５９０ｂが示されている。また、具象提供機能５５０の例として、原稿読み取り提供機能５５０ａ、印刷提供機能５５０ｂ、及び送信提供機能５５０ｃが示されている。
【０１２２】
送信アプリケーションロジック５９０ａは、例えば、接続構成クラス５９１ａ及び動作モードクラス５９２ａを有する。接続構成クラス５９１ａは、「送信」アプリケーションが、入力を「原稿読み取り」処理とし、出力を「送信」処理とすることを表す情報を保持し、これらを出力する操作を行う。動作モードクラス５９１ａは、送信アプリケーションを構成する処理を実行する提供機能毎に、動作モードを設定する操作を行う。
【０１２３】
コピーアプリケーションロジック５９０ｂは、送信アプリケーションロジック５９０ａと同様に、接続構成クラス５９１ｂ及び動作モードクラス５９２ｂを有する。接続構成クラス５９１ｂは、「コピー」アプリケーションが、入力を「原稿読み取り」処理とし、出力を「印刷」処理とすることを表す情報を保持し、これらを出力する操作を行う。動作モードクラス５９１ｂは、コピーアプリケーションを構成する処理を実行する提供機能毎に、動作モードを設定する操作を行う。
【０１２４】
原稿読み取り提供機能５５０ａは、動作モードクラス５６０ａを、印刷提供機能５５０ｂは、動作モードクラス５６０ｂを、送信提供機能５５０ｃは、動作モードクラス５６０ｃを有する。各提供機能に設けられている動作モードクラスは、それぞれの提供機能毎に、動作モードの設定を行い、抽象シンタックスで表記される動作モード情報を出力する。なお、これらの提供機能には、さらに、各処理に対応する図示しない処理制御クラスが設けられている。
【０１２５】
図２３において、送信のジョブは、送信アプリケーションロジック５９０ａ、原稿読み取り提供機能５５０ａ、送信提供機能５５０ｃが、それぞれフレームワークに組み込まれ、クラスを継承することにより実現される。
【０１２６】
一方、図２４において、原稿読み取り提供機能５５０ｄは、図２３の原稿読み取り提供機能５５０ａが有する動作モードクラス５６０ａに加えて、拡張された動作モードクラス５６１を有する。図２４におけるその他のソフトウェア部品は、図２３と同一の機能及び構成であるので、ここでは説明を省略する。
【０１２７】
図２３より、一の提供機能に含まれるクラスが変更された場合でも、アプリケーションロジックは変更する必要がない。これにより、画像形成装置の開発を効率よく行うことができ、開発コストの低減、開発期間の短縮等を実現することができる。
【０１２８】
（コピーアプリケーションの設定画面を表示する処理の例）
図２５は、第二の実施の形態におけるコピーアプリケーションの設定画面を表示する処理の例を示すシーケンス図である。同図において、コピーアプリケーションロジックＵＩ５９３ｂは、コピーアプリケーションロジック５９０ｂにおいて操作デバイス９５０に対する入出力制御を行う部分である。また、原稿読み取り提供機能ＵＩ５５１ａは、原稿読み取り提供機能５５０ａにおいて操作デバイス９５０に対する入出力制御を行う部分である。なお、図２５のシーケンス図における各オブジェクトは、図２３における同名のクラスのインスタンスである。
【０１２９】
ステップＳ７０１では、操作者によってアプリケーション一覧画面７１０におけるコピーボタン７１１が押下され、コピーボタン７１１に対応するコピーアプリケーションロジックＵＩ５９３ｂが呼び出される。ステップＳ７０１に続いてステップＳ７０２に進み、コピーアプリケーションロジックＵＩ５９３ｂは、動作モードオブジェクト６９２ｂの生成をコピーアプリケーションロジック５９０ｂに要求する。ステップＳ７０２に続いてステップＳ７０３に進み、コピーアプリケーションロジック５９０ｂは動作モードオブジェクト６９２ｂを生成する。ステップＳ７０３に続いてステップＳ７０４に進み、コピーアプリケーションロジック５９０ｂは、動作モードオブジェクト６６０ａの生成を原稿読み取り提供機能５５０ａに要求する。ステップＳ７０４に続いてステップＳ７０５に進み、原稿読み取り提供機能５５０ａは、動作モードオブジェクト６６０ａを生成し、当該動作モードオブジェクト６６０ａをコピーアプリケーションロジック５９０ｂに出力する。ステップＳ７０５に続いてステップＳ７０６に進み、コピーアプリケーションロジック５９０ｂは、動作モードオブジェクト６９２ｂに動作モードオブジェクト６６０ａを関連付け、当該動作モードオブジェクト６９２ｂをコピーアプリケーションロジックＵＩ５９３ｂに出力する。
【０１３０】
ステップＳ７０６に続いてコピーアプリケーションロジックＵＩ５９３ｂは、出力された動作モードオブジェクト６９２ｂより設定項目の一覧（シンタックスオブジェクトの一覧）を取得する（Ｓ７０７、Ｓ７０８）。ここで取得されるシンタックスオブジェクトの一覧は、抽象シンタックスクラスの配列であるが、各シンタックスオブジェクトはそれぞれの属性の型に応じたクラス（図３参照）によってインスタンス化されている。ステップＳ７０８に続いてステップＳ７０９に進み、コピーアプリケーションロジックＵＩ５９３ｂは、取得されたシンタックスオブジェクトに基づいて設定画面の一部を操作デバイス９５０に描画する。ここで、設定画面の一部とは、コピージョブにおいて設定される全ての設定項目のうちコピーアプリケーションロジック５９０ｂに対する設定項目に係る部分をいう。
【０１３１】
ステップＳ７０９に続いてステップＳ７１０に進み、コピーアプリケーションロジックＵＩ５９３は、動作モードオブジェクト６９２ｂに関連付けられている動作モードオブジェクト５６０ａを取得する。ステップＳ７１０に続いてステップＳ７１１に進み、コピーアプリケーションロジックＵＩ５９３は、取得された動作モードオブジェクト５６０ａを原稿読み取り提供機能ＵＩ５５１ａに対して設定する。
【０１３２】
ステップＳ７１１に続いて、原稿読み取り提供機能ＵＩ５５１ａは、設定された動作モードオブジェクト５６０ａより設定項目の一覧（シンタックスオブジェクトの一覧）を取得する（Ｓ７１２、Ｓ７１３）。ステップＳ７１３に続いてステップＳ７１４に進み、コピーアプリケーションロジックＵＩ５９３は、原稿読み取り提供機能ＵＩ５５１ａに設定画面への描画を要求する（Ｓ７１４）。当該要求に応じ、原稿読み取り提供ＵＩ５５１ａは、自らが取得したシンタックスオブジェクトに基づいて、読み取り提供機能５５０ａに対する設定項目に関する部分を設定画面に描画する。
【０１３３】
なお、図２５において、原稿読み取り提供機能５５０ａに関して行われた処理は印刷提供機能５５０ｂについても行われる。したがって、設定画面には、印刷提供機能５５０ｂに対する設定項目に関する部分も描画される。その結果、当該設定画面は、図８に示されるように表示される。図８の設定画面７２０において、読み取り設定領域７２２は、読み取り提供機能５５０ａに対する設定項目に関する部分であり、印刷設定領域７２３は、印刷提供機能５５０ｂに対する設定項目に関する部分である。
【０１３４】
（動作モード情報を設定する処理の例）
図２６は、第二の実施の形態における動作モード情報を設定する処理の例のシーケンス図である。同図ではコピーアプリケーションについてソートの要否（ＯＮ／ＯＦＦ）の設定が行われる例について説明する。なお、図２５のシーケンス図における各オブジェクトは、図２３における同名のクラスのインスタンスである。
【０１３５】
ステップＳ８０１では、設定画面７２０において操作者によってソートボタン７２１が押下され、ソートがＯＮに設定されたことが印刷提供機能ＵＩ５５１ｂに通知される。ステップＳ８０１に続いてステップＳ８０２に進み、印刷提供機能ＵＩ５５１ｂは、「ｓｏｒｔ」をキーとして印刷提供機能５５０ｂの動作モードオブジェクト６６０ｂに対してソートの設定項目に対応するシンタックスオブジェクト（ソートシンタックスオブジェクト）の取得を要求する。ステップＳ８０２に続いてステップＳ８０３に進み、動作モードオブジェクト６６０ｂは、属性名が「ｓｏｒｔ」であるシンタックスオブジェクトを検索し、当該シンタックスオブジェクト（ソートシンタックスオブジェクト）を印刷提供機能ＵＩ５５１ｂに出力する。なお、ソートシンタックスオブジェクトは、真偽値型シンタックスクラスのインスタンスであるが、ここでは抽象シンタックスクラスとして出力される。
【０１３６】
ステップＳ８０３に続いてステップＳ８０４に進み、印刷提供機能ＵＩ５５１ｂは、出力されたソートシンタックスオブジェクトをその属性の型に基づいて真偽値型シンタックスクラスにキャストし、キャストされたソートシンタックスオブジェクトに対して設定値（ここでは、「ｔｒｕｅ」）を設定する。ステップＳ８０４に続いてステップＳ８０５に進み、印刷提供機能ＵＩ５５１ｂは、設定値（ｔｒｕｅ）が設定されたソートシンタックスオブジェクトを動作モードオブジェクト６６０ｂに設定する。これにより、動作モードオブジェクト６６０ｂ内においてソートシンタックスオブジェクトが更新される。ステップＳ８０５に続いてステップＳ８０６に進み、印刷提供機能ＵＩ５５１ｂは、設定画面７２０の表示状態を図１０に示されるように更新する。
【０１３７】
（コピージョブにおいてモードプログラムを登録する処理の例）
図２７は、コピージョブにおいて、モードプログラムを登録する処理の例のシーケンス図である。図２７では、図１２において破線で囲まれた部分についてのみ説明する。
【０１３８】
ステップＳ９０１では、モードプログラム機能ＵＩ３２１からコピーアプリケーションロジックの接続構成オブジェクト６９１に対し、操作者によって入力されたコピージョブを実現する提供機能の一覧の取得要求が出力される。ステップＳ９０１に続いてステップＳ９０２に進み、接続構成オブジェクト６９１から図示しない表示手段に対し、コピージョブの提供機能の一覧とその処理順の情報が出力される。これに基づいて、表示手段に、提供機能の一覧が表示される。
【０１３９】
ステップＳ９０２に続いてステップＳ９０３に進み、図示しない入力手段からモードプログラム機能オブジェクト６２０に対し、操作者によって入力された提供機能毎の動作モードの登録要求が出力される。ここでは、コピージョブに含まれる処理のうち、原稿読み取り処理に対して、動作モードの登録が要求される。
【０１４０】
ステップＳ９０３に続いてステップＳ９０４に進み、モードプログラム機能オブジェクト６２０からコピーアプリケーションロジックに含まれる動作モードオブジェクト６３１に対し、動作モード情報の取得要求が出力される。ステップＳ９０４に続いてステップＳ９０５に進み、動作モードオブジェクト６３１からコピー提供機能に含まれる動作モードオブジェクト６６０ａに対し、動作モードの取得要求が出力される。この要求に基づいて、動作モードオブジェクト６６０ａは、抽象シンタックスで表される動作モード情報を生成する。
【０１４１】
ステップＳ９０５に続いてステップＳ９０６に進み、動作モードオブジェクト６６０ａから動作モードオブジェクト６３１に対し、抽象シンタックスで表される動作モード情報が出力される。ステップＳ９０６に続いてステップＳ９０７に進み、動作モードオブジェクト６３１からモードプログラム機能オブジェクト６２０に対し、動作モード情報が出力される。
【０１４２】
ステップＳ９０７に続くステップＳ９０８の処理は、図１のステップＳ４１０及びステップＳ４１１の処理と同一であるので、ここでは説明を省略する。ステップＳ９０８に続いてステップＳ９０９に進み、モードプログラム機能オブジェクト６０２からモードプログラム機能ＵＩ３２１に対し、プログラムＩＤが出力される。
【０１４３】
なお、図２７の例では、動作モードオブジェクト６６０ａは、永続化の処理を行わないが、本発明の実施の形態はこの例に限らない。図２０で説明したように、動作モードオブジェクト６６０ａが永続化の処理を行う構成でもよい。
【０１４４】
（コンピュータの構成）
図２８は、本実施形態の画像形成装置を実現するコンピュータの構成図である。図２８のコンピュータは、主処理部９００、入力デバイス９１０、表示装置９２０、プリンタ９３０、スキャナ９４０、及びＨＤＤ９９０を有する。主処理部９００は、コンピュータの機能を実現する主たる部分であり、ＣＰＵ９０１、ＲＯＭ９０８、及びＲＡＭ９０９を有する。ＣＰＵ９０１は、コンピュータプログラムをＲＯＭ９０８等から読み出し、ＲＡＭ９０９に展開することにより、本発明の実施の形態に係るコンピュータプログラムを実行する。ＲＯＭ９０８は不揮発性のメモリであり、コンピュータプログラム等のＣＰＵ９０１によって実行されるプログラム、及び画像形成装置の制御に必要なパラメータ等を保持する。ＲＡＭ９０９は、ＣＰＵ９０１が処理を行う際の、ワークメモリである。
【０１４５】
入力デバイス９１０は、例えば、キーボード等であり、操作者が指示の入力を行う際に使用する。表示装置９２０は、コンピュータの状態等の表示を行う。プリンタ９３０は、画像を媒体に形成して出力する装置であり、スキャナ９４０は、媒体上に形成された画像を光学的に読み取る装置である。ＨＤＤ９９０は、画像のデータ等の大容量のデータを格納する。
【０１４６】
本発明の実施の形態に係るコンピュータプログラムは、ＨＤＤ９９０、又はＲＯＭ９０８に格納される他に、その他図示しないドライブ装置に挿入可能な記録媒体に格納されてもよい。
【０１４７】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【図面の簡単な説明】
【０１４８】
【図１】本発明の第一の実施の形態に係る画像形成装置の機能構成の例の図。
【図２】モードプログラム機能を実現するソフトウェアの構成図（その１）。
【図３】動作モード情報のデータ構造の例を説明するクラス図。
【図４】階層的構造を実現するデータ型の例を示すクラス図。
【図５】Ｓｅｔ型シンタックスを用いて原稿サイズ型を表現した例を示す図。
【図６】アプリケーションの設定画面を表示する処理の例のシーケンス図。
【図７】アプリケーション一覧画面の表示例を示す図。
【図８】コピーアプリケーションの設定画面の表示例を示す図。
【図９】動作モードを設定する処理の例のシーケンス図。
【図１０】ソートがＯＮに設定された後のコピーアプリケーションの設定画面の表示例を示す図。
【図１１】ジョブを実行する処理の例のシーケンス図。
【図１２】モードプログラムを登録する処理の例のシーケンス図。
【図１３】モードプログラム登録画面の表示例を示す図。
【図１４】動作モード情報の永続化形式を示す図。
【図１５】モードプログラム情報の永続化形式を示す図。
【図１６】モードプログラム表示情報の永続化形式を示す図。
【図１７】モードプログラムを展開する処理の例のシーケンス図。
【図１８】モードプログラム一覧画面の表示例を示す図。
【図１９】モードプログラム機能を実現するソフトウェアの構成図（その２）。
【図２０】具象アプリケーションによって永続化が行われる場合の処理の例のシーケンス図。
【図２１】本発明の第二の実施の形態に係る画像形成装置の機能構成の例の図。
【図２２】モードプログラム機能を実現するソフトウェアの構成図（その３）。
【図２３】具象アプリケーションロジックと具象提供機能の具体例を説明する図（その１）。
【図２４】具象アプリケーションロジックと具象提供機能の具体例を説明する図（その２）。
【図２５】第二の実施の形態におけるコピーアプリケーションの設定画面を表示する処理の例を示すシーケンス図。
【図２６】第二の実施の形態における動作モード情報を設定する処理の例のシーケンス図。
【図２７】コピージョブにおいてモードプログラムを登録する処理の例のシーケンス図。
【図２８】本実施形態の画像形成装置を実現するコンピュータの構成の例の図。
【符号の説明】
【０１４９】
１００、４００  画像形成装置
１１０  アプリケーションフレームワーク部
１２０、４２０  モードプログラム登録手段
１３０  動作モード取得手段
１４０、４４０  ジョブ制御手段
１５０、４５０  ソフトウェア部品
１６０、４６０  動作モード部
１６１、４６１  動作モード受付手段
１６２、４６２  動作モード情報出力手段
１７０、４７０  処理実行手段
１８０、４８０  モードプログラム情報管理部
１８１、４８１  モードプログラム情報管理手段
１８２、４８２  モードプログラム情報保持手段
２１０  アプリケーションフレームワーク
２２０、５２０  モードプログラム機能クラス
２３０、２６０、５２７、５３０、５６０、５６０ａ、５６０ｂ、５６０ｃ、５６１、５９２、５９２ａ、５９２ｂ、  動作モードクラス
２５０、２５０ａ  具象アプリケーション
２７０、５７０  処理制御クラス
２８０、５８０  データ管理部
２８１、５８１  データ永続化機能クラス
４１０  アプリケーションロジックフレームワーク部
４１１  提供機能フレームワーク部
４３１  モジュール格納手段
４３２  ジョブ構成取得手段
４３３  ジョブモジュールインタフェース
４４１  ソフトウェア部品インタフェース
４９０  ジョブ構成部
４９１  ジョブ構成保持手段
４９２  動作モード取得モジュール
５１０  アプリケーションロジックフレームワーク
５３２、５９１、５９１ａ、５９１ｂ  接続構成クラス
５２６  提供機能フレームワーク
５５０ａ、５５０ｄ  原稿読み取り提供機能
５５０ｂ  印刷提供機能
５５０ｃ  送信提供機能
９００  コンピュータの主処理部
９０１  ＣＰＵ
９０８  ＲＯＭ
９０９  ＲＡＭ
９１０  入力デバイス
９２０  表示装置
９３０  プリンタ
９４０  スキャナ
９９０  ＨＤＤ
【図１】
0005309773.tif 000002
【図２】
0005309773.tif 000003
【図３】
0005309773.tif 000004
【図４】
0005309773.tif 000005
【図５】
0005309773.tif 000006
【図６】
0005309773.tif 000007
【図７】
0005309773.tif 000008
【図８】
0005309773.tif 000009
【図９】
0005309773.tif 000010
【図１０】
0005309773.tif 000011
【図１１】
0005309773.tif 000012
【図１２】
0005309773.tif 000013
【図１３】
0005309773.tif 000014
【図１４】
0005309773.tif 000015
【図１５】
0005309773.tif 000016
【図１６】
0005309773.tif 000017
【図１７】
0005309773.tif 000018
【図１８】
0005309773.tif 000019
【図１９】
0005309773.tif 000020
【図２０】
0005309773.tif 000021
【図２１】
0005309773.tif 000022
【図２２】
0005309773.tif 000023
【図２３】
0005309773.tif 000024
【図２４】
0005309773.tif 000025
【図２５】
0005309773.tif 000026
【図２６】
0005309773.tif 000027
【図２７】
0005309773.tif 000028
【図２８】
0005309773.tif 000029