(57)【要約】【課題】アプリケーションの実行環境を適切に提供することのできる画像形成装置の提供を目的とする。【解決手段】アプリケーションから要求されたジョブを実行する画像形成装置であって、ジョブに対する設定情報をアプリケーションより受け付ける設定情報受付手段と、アプリケーションよりジョブの実行要求を受け付けるジョブ実行要求受付手段と、ジョブ実行要求受付手段からの要求に応じ、ジョブの設定情報に従ってジョブの実行を制御するジョブ実行制御手段と、ジョブの出力物の出力面ごとに当該出力面の出力を実行させる出力要素管理手段と、出力面ごとの出力要素管理手段を出力面の出力順に応じて束ね、ジョブ実行制御手段からの要求に応じ、束ねている出力要素管理手段に対して、設定情報に基づく出力順に応じて出力面の出力の実行を要求する出力束管理手段と、設定情報を統合的に管理する設定情報管理手段とを有する。【選択図】図４
2010068040.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから要求されたジョブを実行する画像形成装置であって、
前記ジョブに対する設定情報を前記アプリケーションより受け付ける設定情報受付手段と、
前記アプリケーションよりジョブの実行要求を受け付けるジョブ実行要求受付手段と、
前記ジョブ実行要求受付手段からの要求に応じ、前記ジョブの設定情報に従ってジョブの実行を制御するジョブ実行制御手段と、
前記設定情報に基づいて判定される、前記ジョブの出力物の出力面ごとに当該出力面の出力を実行させる出力要素管理手段と、
前記出力面ごとの出力要素管理手段を前記出力面の出力順に応じて束ね、前記ジョブ実行制御手段からの要求に応じ、束ねている前記出力要素管理手段に対して、前記設定情報に基づく前記出力順に応じて前記出力面の出力の実行を要求する出力束管理手段と、
前記設定情報を統合的に管理する設定情報管理手段とを有することを特徴とする画像形成装置。
【請求項２】
前記設定情報管理手段が管理する前記設定情報にソートが指定されているときは、
前記ジョブ実行制御手段は、当該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを前記設定情報に指定されている出力部数分生成し、
それぞれの前記出力束管理手段は、ソート単位で前記出力要素管理手段を束ねることを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記設定情報管理手段が管理する前記設定情報にスタックが指定されているときは、
前記ジョブ実行制御手段は、当該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを前記ジョブの入力物の枚数分生成し、
それぞれの前記出力束管理手段は、スタック単位で前記出力要素管理手段を束ねることを特徴とする請求項１又は２記載の画像形成装置。
【請求項４】
前記設定情報管理手段が管理する前記設定情報にソート及びスタックが指定されていないときは、
前記ジョブ実行制御手段は、該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを一つ生成し、
前記出力束管理手段は、全ての前記出力要素管理手段を束ねることを特徴とする請求項１乃至３いずれか一項記載の画像形成装置。
【請求項５】
アプリケーションから要求されたジョブを実行する画像形成装置が実行するジョブ実行方法であって、
設定情報受付手段が、前記ジョブに対する設定情報を前記アプリケーションより受け付ける手順と、
ジョブ実行要求受付手段、前記アプリケーションよりジョブの実行要求を受け付ける手順と、
ジョブ実行制御手段が、前記ジョブ実行要求受付手段からの要求に応じ、前記ジョブの設定情報に従ってジョブの実行を制御する手順と、
出力要素管理手段が、前記設定情報に基づいて判定される、前記ジョブの出力物の出力面ごとに当該出力面の出力を実行させる手順と、
出力束管理手段が、前記出力面ごとの出力要素管理手段を前記出力面の出力順に応じて束ね、前記ジョブ実行制御手段からの要求に応じ、束ねている前記出力要素管理手段に対して、前記設定情報に基づく前記出力順に応じて前記出力面の出力の実行を要求する手順とを有し、
前記設定情報は、設定情報管理手段によって統合的に管理されることを特徴とするジョブ実行方法。
【請求項６】
前記設定情報管理手段が管理する前記設定情報にソートが指定されているときは、
前記ジョブ実行制御手段は、当該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを前記設定情報に指定されている出力部数分生成し、
それぞれの前記出力束管理手段は、ソート単位で前記出力要素管理手段を束ねることを特徴とする請求項５記載のジョブ実行方法。
【請求項７】
前記設定情報管理手段が管理する前記設定情報にスタックが指定されているときは、
前記ジョブ実行制御手段は、当該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを前記ジョブの入力物の枚数分生成し、
それぞれの前記出力束管理手段は、スタック単位で前記出力要素管理手段を束ねることを特徴とする請求項５又は６記載のジョブ実行方法。
【請求項８】
前記設定情報管理手段が管理する前記設定情報にソート及びスタックが指定されていないときは、
前記ジョブ実行制御手段は、該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを一つ生成し、
前記出力束管理手段は、全ての前記出力要素管理手段を束ねることを特徴とする請求項５乃至７いずれか一項記載のジョブ実行方法。
【請求項９】
アプリケーションから要求されたジョブを実行する画像形成装置を、
前記ジョブに対する設定情報を前記アプリケーションより受け付ける設定情報受付手段と、
前記アプリケーションよりジョブの実行要求を受け付けるジョブ実行要求受付手段と、
前記ジョブ実行要求受付手段からの要求に応じ、前記ジョブの設定情報に従ってジョブの実行を制御するジョブ実行制御手段と、
前記設定情報に基づいて判定される、前記ジョブの出力物の出力面ごとに当該出力面の出力を実行させる出力要素管理手段と、
前記出力面ごとの出力要素管理手段を前記出力面の出力順に応じて束ね、前記ジョブ実行制御手段からの要求に応じ、束ねている前記出力要素管理手段に対して、前記設定情報に基づく前記出力順に応じて前記出力面の出力の実行を要求する出力束管理手段と、
前記設定情報を統合的に管理する設定情報管理手段として機能させるためのプログラム。
【請求項１０】
前記設定情報管理手段が管理する前記設定情報にソートが指定されているときは、
前記ジョブ実行制御手段は、当該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを前記設定情報に指定されている出力部数分生成し、
それぞれの前記出力束管理手段は、ソート単位で前記出力要素管理手段を束ねることを特徴とする請求項９記載のプログラム。
【請求項１１】
前記設定情報管理手段が管理する前記設定情報にスタックが指定されているときは、
前記ジョブ実行制御手段は、当該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを前記ジョブの入力物の枚数分生成し、
それぞれの前記出力束管理手段は、スタック単位で前記出力要素管理手段を束ねることを特徴とする請求項９又は１０記載のプログラム。
【請求項１２】
前記設定情報管理手段が管理する前記設定情報にソート及びスタックが指定されていないときは、
前記ジョブ実行制御手段は、該画像形成装置を前記出力束管理手段として機能させるためのオブジェクトを一つ生成し、
前記出力束管理手段は、全ての前記出力要素管理手段を束ねることを特徴とする請求項９乃至１１いずれか一項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、ジョブ実行方法、及びプログラムに関し、特にアプリケーションから要求されたジョブを実行する画像形成装置、ジョブ実行方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、パイプ＆フィルタアーキテクチャを採用し、フィルタと呼ばれるソフトウェアコンポーネントの組み合わせによって構成されるアクティビティと呼ばれるソフトウェアコンポーネントによって、ジョブを実行するアプリケーションが実現される画像形成装置が開示されている。このような画像形成装置によれば、新たな機能の実装に関する柔軟性を著しく向上させることができる。
【特許文献１】特開２００７−３２５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載された画像形成装置において新たなアプリケーション（特許文献１における「アクティビティ」）を実装する場合、フィルタを組み合わせるための知識が開発者に必要とされる。また、アプリケーションの実装に伴って、新たなフィルタを実装する必要がある場合、当該フィルタを実装するための知識が必要とされる。
【０００４】
このような知識は、画像形成装置においてジョブを実行するためのアーキテクチャ又はロジックに関する比較的深い層に属する部分である。斯かる部分について、サードベンダー等による開発を可能とするためには、画像形成装置のベンダーは、当該部分についてかなり詳しい技術内容を開示しなければならないことになる。その結果、企業秘密として保持してきたい重要な技術をも開示する必要性が高まり、技術流出の可能性が高まる虞がある。
【０００５】
また、特許文献１に記載された画像形成装置では、以上のような知識を会得するまでの初回の開発コストが大きくなる可能性が高い。したがって、初回の開発コストをより小さく抑えられるアーキテクチャの提供が望まれる。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、アプリケーションの実行環境を適切に提供することのできる画像形成装置、ジョブ実行方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、アプリケーションから要求されたジョブを実行する画像形成装置であって、前記ジョブに対する設定情報を前記アプリケーションより受け付ける設定情報受付手段と、前記アプリケーションよりジョブの実行要求を受け付けるジョブ実行要求受付手段と、前記ジョブ実行要求受付手段からの要求に応じ、前記ジョブの設定情報に従ってジョブの実行を制御するジョブ実行制御手段と、前記設定情報に基づいて判定される、前記ジョブの出力物の出力面ごとに当該出力面の出力を実行させる出力要素管理手段と、前記出力面ごとの出力要素管理手段を前記出力面の出力順に応じて束ね、前記ジョブ実行制御手段からの要求に応じ、束ねている前記出力要素管理手段に対して、前記設定情報に基づく前記出力順に応じて前記出力面の出力の実行を要求する出力束管理手段と、前記設定情報を統合的に管理する設定情報管理手段とを有することを特徴とする。
【０００８】
このような画像形成装置では、アプリケーションの実行環境を適切に提供することができる。
【発明の効果】
【０００９】
本発明によれば、アプリケーションの実行環境を適切に提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。図１では、画像形成装置の具体例として、プリンタ、コピー、スキャナ、又は、ファクス等の複数の機能を一台の筐体において実現する複合機１のハードウェア構成が示されている。
【００１１】
複合機１のハードウェアとしては、コントローラ１０１と、オペレーションパネル１０２と、ファクシミリコントロールユニット（ＦＣＵ）１０３と、撮像部１０４と、印刷部１０５が存在する。
【００１２】
コントローラ１０１は、ＣＰＵ１１１、ＡＳＩＣ１１２、ＮＢ１２１、ＳＢ１２２、ＭＥＭ−Ｐ１３１、ＭＥＭ−Ｃ１３２、ＨＤＤ（ハードディスクドライブ）１３３、メモリカードスロット１３４、ＮＩＣ（ネットワークインタフェースコントローラ）１４１、ＵＳＢデバイス１４２、ＩＥＥＥ１３９４デバイス１４３、セントロニクスデバイス１４４により構成される。
【００１３】
ＣＰＵ１１１は、種々の情報処理用のＩＣである。ＡＳＩＣ１１２は、種々の画像処理用のＩＣである。ＮＢ１２１は、コントローラ１０１のノースブリッジである。ＳＢ１２２は、コントローラ１０１のサウスブリッジである。ＭＥＭ−Ｐ１３１は、複合機１のシステムメモリである。ＭＥＭ−Ｃ１３２は、複合機１のローカルメモリである。ＨＤＤ１３３は、複合機１のストレージである。メモリカードスロット１３４は、メモリカード１３５をセットするためのスロットである。ＮＩＣ１４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス１４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス１４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス１４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル１０２は、オペレータが複合機１に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１から出力を得るためのハードウェア（表示部）である。
【００１４】
図２は、本発明の実施の形態における複合機のソフトウェア構成例を示す図である。同図において、複合機１は、ＯＳ２０、ドライバプログラム２１、ＪＶＭ３０、ＣＤＣ３１、Ｆｏｕｎｄａｔｉｏｎ  Ｐｒｏｆｉｌｅ３２、ＭＦＰプロファイル４０、ネイティブモジュール５０、及びアプリケーション６０等を有する。
【００１５】
ＯＳ２０は、いわゆるＯＳ（Operating System）である。ドライバプログラム２１は、ハードウェアを制御する各種のプロラムモジュールである。ＪＶＭ３０は、Java（登録商標） Virtual Machine（仮想マシン）であり、Ｊａｖａ（登録商標）の実行環境を実現する。ＣＤＣ（Connected Device Configuration）３１及びＦｏｕｎｄａｔｉｏｎ  Ｐｒｏｆｉｌｅ３２は、Ｊａｖａ（登録商標）  Ｍｉｃｒｏ  Ｅｄｉｔｉｏｎの基本構成である。
【００１６】
ＭＦＰプロファイル４０は、複合機１用のアプリケーション６０の開発環境及び実行環境を提供するプラットフォーム（プログラムモジュール群）である。より詳しくは、ＭＦＰプロファイル４０は、複合機１にジョブを実行させるためのＪａｖａ（登録商標）インタフェース（ＡＰＩ（Application Program Interface））をアプリケーション６０に提供し、当該インタフェースの呼び出しに応じて複合機１を制御する。なお、ＭＦＰ（Multifunction Peripheral）とは、複合機の略称である。
【００１７】
ネイティブモジュール５０は、ネイティブコードによって記述されたプログラムモジュール群である。ネイティブモジュール５０は、例えば、Ｃ言語やＣ＋＋言語によるインタフェース（ＡＰＩ）をアプリケーション６０に提供し、当該インタフェースの呼び出しに応じて複合機１を制御する。
【００１８】
アプリケーション６０は、複合機１にジョブを実行させるプログラムであり、プリントアプリ６１、コピーアプリ６２、スキャンアプリ６３、ＦＡＸアプリ６４等、ジョブ種別（印刷、コピー、スキャン、ＦＡＸ送信等）に応じて複数のアプリケーション６０が存在する。各アプリケーション６０は、ＭＦＰプロファイル４０又はネイティブモジュール５０によって提供されるインタフェースに基づいて開発される。厳密には、Ｊａｖａ（登録商標）コードによるアプリケーション６０からはＭＦＰプロファイル４０が利用され、ネイティブコードによるアプリケーション６０からはネイティブモジュール５０が利用される。
【００１９】
本実施の形態において、ＭＦＰプロファイル４０及びネイティブモジュール５０のインタフェースは複合機１のメーカー外にも公開されている。したがって、アプリケーション６０は、複合機１のメーカーだけでなく、サードベンダー等によっても開発可能である。ユーザから見た場合、複合機１を導入（設置）した後に、市場で販売されている新たなアプリケーション６０を複合機１にインストールし、複合機１の機能強化を図ることができる。
【００２０】
本実施の形態では、特に、ＭＦＰプロファイル４０について説明する。図３は、ＭＦＰプロファイルの構成例を示す図である。
【００２１】
同図において、ＭＦＰプロファイル４０は、プレゼンテーション層４１、ドメインロジック層４２、及びサービス層４３等より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係（利用関係）に基づいている。基本的に上の層が下の層を呼び出す（利用する）。
【００２２】
プレゼンテーション層４１は、アプリケーション６０に公開されるインタフェース部分である。すなわち、プレゼンテーション層４１は、アプリケーション６０からの要求を受け付け、当該要求に対する応答をアプリケーション６０に返却する。なお、アプリケーション６０の開発者からはプレゼンテーション層４１のみが興味の対象となる。
【００２３】
ドメインロジック層４２は、プレゼンテーション層４１によって受け付けられたアプリケーション６０からの要求に応じ、複合機１にジョブを実行させるためのロジックが実装されている部分である。ドメインロジック層４２は、その役割（責務）に応じて要求管理部４２１、Ｉ／Ｏファンクション部４２２、Ｉ／Ｏリソース管理部４２３、及びシステム管理部４２４等に細部化される。
【００２４】
要求管理部４２１は、プレゼンテーション層４１によって受け付けられるアプリケーション６０からの要求を管理する。Ｉ／Ｏファンクション部４２２は、ジョブ対するデータの入力やジョブの実行によるデータの出力等の機能を実現する。Ｉ／Ｏリソース管理部４２３は、撮像部１０４や印刷部１０５等のデータの入出力に関するハードウェアリソースを管理する。システム管理部４２４は、要求管理部４２１、Ｉ／Ｏファンクション部４２２、及びＩ／Ｏリソース管理部４２３等の横断的関心事（例えば、各部より共通に利用される情報）を管理する。
【００２５】
サービス層４３は、デバイス、ミドルウェア、又はＯＳ等へのアクセスを隠蔽する部分である。すなわち、サービス層４３によって、複合機１の機種の違い、又は複合機１において利用されるミドルウェア又はＯＳ等の違いが吸収される。
【００２６】
ＭＦＰプロファイル４０の各層について更に詳しく説明する。図４は、ＭＦＰプロファイルの各層のクラス構成例を示す図である。なお、同図のクラス群は、インタフェースを示す。したがって、実装は当該インタフェースに対する実装クラスにおいて行われる。以下において、「ＸＸＸクラスのインスタンス」というとき、ＸＸＸクラスの実装クラスのインスタンスを意味する。
【００２７】
同図において、プレゼンテーション層４１は、サービス検索クラス４１１、入出力形式クラス４１２、要求属性値群クラス４１３、サービスクラス４１４、サービス属性値群クラス４１４１、ドキュメントクラス４１５、ドキュメント属性値群クラス４１５１、ジョブクラス４１６、及びジョブ属性値群クラス４１６１等を含む。
【００２８】
サービス検索クラス４１１のインスタンス（サービス検索オブジェクト）は、アプリケーション６０からの要求に応じサービスを検索する。サービスとは、ジョブを実行に関係するソフトウェア及びハードウェアの集合（すなわち、ジョブの実行主体）をいう。サービスの検索条件は、入出力形式クラス４１２のインスタンスと要求属性値群クラス４１３のインスタンスとによって指定される。
【００２９】
入出力形式クラス４１２のインスタンス（入出力形式オブジェクト）は、ジョブの入力データ又は出力データのデータ形式を保持する。要求属性値群クラス４１３のインスタンス（要求属性値群オブジェクト）は、アプリケーション６０から要求において指定されるジョブに対する設定値の集合を保持する。
【００３０】
サービスクラス４１４のインスタンス（サービスオブジェクト）は、サービスの代表を表現する。サービスクラス４１４の実装クラスはサービスごとに定義される。サービス属性値群クラス４１４１のインスタンス（サービス属性値群オブジェクト）は、サービスの状態を保持する。
【００３１】
ドキュメントクラス４１５のインスタンス（ドキュメントオブジェクト）は、ジョブに対して入力されるドキュメント（データ）を表現する。例えば、印刷ジョブであれば印刷データが相当する。ドキュメント属性値群クラス４１５１のインスタンス（ドキュメント属性値群オブジェクト）は、ドキュメントの属性を保持する。
【００３２】
ジョブクラス４１６のインスタンス（ジョブオブジェクト）は、ジョブを表現する。ジョブクラス４１６の実装クラスはジョブの種別ごとに定義される。ジョブ属性値群クラス４１６１のインスタンス（ジョブ属性値群オブジェクト）は、ジョブの状態を保持する。
【００３３】
また、ドメインロジック層４２の要求管理部４２１は、成果物クラス４２１１を含む。成果物クラス４２１１のインスタンス（成果物オブジェクト）は、ジョブによる成果物を実現するための処理（すなわち、ジョブの実行制御）を行う。成果物オブジェクトは、成果物の構成要素や、成果物の進捗状況等を知っている。なお、成果物とは、例えば、１枚の原稿を３部コピーするというコピージョブであれば、３枚のコピー結果そのものをいう。
【００３４】
ドメインロジック層４２のＩ／Ｏファンクション部４２２は、入力物クラス４２２１、原画像クラス４２２２、出力物クラス４２２３、出力要素クラス４２２４、及び出力束クラス４２２５等を含む。入力物クラス４２２１のインスタンス（入力物オブジェクト）は、ジョブに入力データに係る原稿の１枚又は１ページ（入力物）を表現する。したがって、入力物オブジェクトは、コピージョブやスキャンジョブ等、原稿から入力データが得られるジョブに利用される。入力物クラス４２２１は自らに対する再帰的な関連を有している。したがって、入力物オブジェクトは、チェーン構造で関連付けられることにより、複数枚の原稿を表現する。なお、本実施の形態において、便宜上、原稿の１枚と１ページとは等価であるとする。
【００３５】
原画像クラス４２２２のインスタンス（原画像オブジェクト）は、ジョブに対する入力画像を表現する。例えば、コピージョブであれば、スキャンされたスキャン画像を表現する。原画像オブジェクトは、画像の入力方法を知っており、また、入力処理の進捗状況（撮像部１０４による読み取りの進捗状況）を知っている。
【００３６】
出力物クラス４２２３のインスタンス（出力物オブジェクト）は、ジョブによる成果物の一部（出力物）を表現する。出力物オブジェクトは、成果物がどのような材料（入力物）で構成されているのかや、出力物の出力の実行可能条件等を知っている。出力物オブジェクトはまた、出力物の出力に必要な入力物を知っており、当該入力物に係る入力物オブジェクトに紐づいている。
【００３７】
出力束クラス４２２５のインスタンス（出力束オブジェクト）は、成果物がどのような順番（ソート順又はスタック順等）で構成されているかを知っている。出力要素クラス４２２４のインスタンス（出力要素オブジェクト）は、出力要素（出力面）の出力の方法を知っている。出力要素は、例えばコピージョブのときには印刷面を示す。
【００３８】
ドメインロジック層４２のＩ／Ｏリソース管理部４２３は、入力リソースクラス４２３１及び出力リソースクラス４２３２等を含む。入力リソースクラス４２３１のインスタンス（入力リソースオブジェクト）は、データを入力するためのハードウェア資源（撮像部１０４等）を管理する。出力リソースクラス４２３２のインスタンス（出力リソースオブジェクト）は、データを出力するためのハードウェア資源（印刷部１０５等）を管理する。
【００３９】
ドメインロジック層４２のシステム管理部４２４は、機内監視クラス４２４１を含む。機内監視クラス４２４１のインスタンス（機内監視オブジェクト）は、複合機１の状態を監視する。
【００４０】
以上の各層のクラス群の中で、プレゼンテーション層４１に属するクラス群が、アプリケーション６０に利用可能なインタフェースを提供する。斯かるプレゼンテーション層４１のクラス群（インタフェース）は、ＪＰＳ（Java（登録商標） Print Service）に準拠した構成を有している。換言すれば、プレゼンテーション層４１において、ＪＰＳを提供することができる。ここで、ＪＰＳとは、Ｊａｖａ（登録商標）プラットフォームにおいて印刷に関する制御を実行するための標準のＡＰＩ（Application Program Interface）である。このことは、印刷ジョブを実行するアプリケーション６０の開発者は、ＪＰＳに関する知識を有していれば、ＭＦＰプロファイル４０上に簡便に当該アプリケーション６０を実装することができることを意味する。
【００４１】
図５は、ＪＰＳの概念モデルを示す図である。同図に示されるように、ＪＰＳは、ドキュメントインタフェース群、印刷ジョブインタフェース群、プリンタサービスインタフェース群より構成される。
【００４２】
ドキュメントインタフェース群におけるＳｉｍｐｌｅＤｏｃクラス及びＤｏｃインタフェース実装クラスは、印刷データを表現するクラスであり、本実施の形態のドキュメントクラス４１５に対応する。ＤｏｃＦｌａｖｏｒクラスは、印刷データのデータ形式を表現するクラスであり、本実施の形態の入出力形式クラス４１２に対応する。
【００４３】
印刷ジョブインタフェース群におけるＤｏｃＰｒｉｎｔＪｏｂクラスは、印刷ジョブを表現するクラスであり、本実施の形態のジョブクラス４１６に対応する。ＰｒｉｎｔＡｔｔｒｉｂｕｔｅＳｅｔ実装クラスは、印刷要求の属性値群を表現し、本実施の形態の要求属性値群クラス４１３に対応する。
【００４４】
プリントサービスインタフェース群におけるＰｒｉｎｔＳｅｒｖｉｃｅ実装クラス及びＤｅｆａｕｌｔＰｒｉｎｔＳｅｒｖｉｃｅ実装クラス等は、印刷サービス（プリンタ）を表現するクラスであり、本実施の形態のサービスクラス４１４に対応する。ＰｒｉｎｔＳｅｒｖｉｃｅＬｏｏｋＵｐ実装クラスは、印刷サービス（プリンタ）を検索するクラスであり、本実施の形態のサービス検索クラス４１１に対応する。
【００４５】
なお、図４に示されるプレゼンテーション層４１のクラス群（インタフェース）は、印刷ジョブだけでなく、複数種類のジョブ（例えば、コピージョブ、スキャンジョブ、ＦＡＸ送信ジョブ等）に対して共通に定義されている。すなわち、プレゼンテーション層４１は、ＪＰＳをより抽象化（一般化）したものになっている。したがって、プレゼンテーション層４１に基づいてＪＰＳを実現する場合、プレゼンテーション層４１にＪＰＳを包含させるか、又はＪＰＳがプレゼンテーション層４１のクラス群（以下「ＭＦＰサービス抽象モデル」という。）を継承するようにすればよい。
【００４６】
図６は、プレゼンテーション層がＪＰＳを包含する例を示す図である。この場合、プレゼンテーション層４１は一つのソフトウェアコンポーネントとして構成され、当該ソフトウェアコンポーネント内にＪＰＳの実装が含まれる。また、他のサービス（例えば、コピージョブを実現するコピーサービス）に関するクラス群についても、ＭＦＰサービス抽象モデルに基づいて（ＭＦＰサービス抽象モデルと同様の構成によって）実装され、それぞれサービスの実装が当該ソフトウェアコンポーネント内に含まれる。したがって、この場合、アプリケーション６０とＪＳＰとの関係は、図７に示されるようになる。
【００４７】
図７において、プレゼンテーション層４１は一つのソフトウェアコンポーネントとして、ＪＰＳや各サービス（同図ではコピーサービス）のインタフェースを公開すると共にその実装を包含する。したがって、アプリケーション６０は、公開されたＪＰＳや他のサービスのインタフェースを呼び出すことにより、それぞれの実装を利用することができる。このような構成では、各サービス（ＪＰＳも含む）のインタフェースは論理的には関係しているが、実質的には関係を有さない。したがって、仮に、ＪＰＳのバージョンアップ等で変更があったとしても、基本的には他のサービスはその影響を受けないという利点がある。
【００４８】
また、図８は、ＪＰＳがＭＦＰサービス抽象モデルを継承する例を示す図である。この場合、ＪＰＳの各クラスは、ＭＦＰサービス抽象モデルにおいて対応するクラスを継承する。他のサービス（例えば、コピーサービス）に関する実装クラス群もＭＦＰサービス抽象モデルのクラスを継承する。この場合、アプリケーション６０は、各サービス（ＪＰＳも含む）のクラス群をＭＦＰサービス抽象モデルのサブクラスとして利用することができる。
【００４９】
このような構成では、ＭＦＰサービス抽象モデルにおいて各サービスの共通部分を実装することにより、各サービスはその差分のみを実装すればよいという利点がある。また、継承により各サービスの構造がシンプルとなり、保守性を向上させることができる。
【００５０】
以下、複合機１の処理手順について説明する。図９は、アプリケーションが複合機にジョブを実行させるための処理手順を説明するためのシーケンス図である。同図における各オブジェクトの参照番号は、各オブジェクトのクラスの参照番号（図４参照）の末尾に「Ａ」を付加したものである。
【００５１】
ジョブの開始指示の入力に応じ、当該ジョブに対応するアプリケーション６０（プリントアプリ６１、コピーアプリ６２、スキャンアプリ６３、又はＦＡＸアプリ６４等）は、入出力形式オブジェクト４１２Ａをメモリ（ＭＥＭ−Ｐ１３１）内に生成する（Ｓ１０１）。ここで、アプリケーション６０は、ジョブ（印刷ジョブ、コピージョブ、スキャンジョブ、又はＦＡＸ送信ジョブ等）に応じた入力データ及び出力データの少なくともいずれか一方のデータ形式を入出力形式オブジェクト４１２Ａに設定する。例えば、印刷ジョブであれば、印刷データのデータ形式が設定される。なお、ジョブの開始指示の入力とは、印刷ジョブであれば印刷データの受信が相当する。また、コピージョブ、スキャンジョブ、ＦＡＸ送信ジョブ等であれば、ユーザによるスタートボタンの押下等が相当する。
【００５２】
続いて、アプリケーション６０は、要求属性値群オブジェクト４１３Ａをメモリ内に生成する（Ｓ１０３）。ここで、アプリケーション６０は、ジョブに対して要求された設定値（要求属性値群）を要求属性値群オブジェクト４１３に設定する。当該設定値は、印刷ジョブであれば印刷データ内に含まれている。また、コピージョブ、スキャンジョブ、及びＦＡＸジョブ等であれば、オペレーションパネル１０２を介して設定され、メモリ内に記録されている。
【００５３】
続いて、アプリケーション６０は、入出力形式オブジェクト４１２Ａ及び要求属性値群オブジェクト４１３Ａを検索条件として指定して、サービスの検索をサービス検索オブジェクト４１１Ａに要求する（Ｓ１０５）。当該要求に応じ、サービス検索オブジェクト４１１Ａは、指定された検索条件に合致するサービスを検索し、当該サービスに対応するサービスオブジェクト４１４Ａをメモリ内に生成する（Ｓ１０７）。続いて、サービス検索オブジェクト４１１Ａは、生成されたサービスオブジェクト４１４Ａをアプリケーション６０に返却する（Ｓ１０９）。
【００５４】
なお、サービス検索オブジェクト４１１Ａによるサービスの検索は、例えば、ＨＤＤ１３３に記録されているサービス管理情報に基づいて行われる。サービス管理情報には、入力データの形式及び出力データの形式の少なくともいずれか一方と、要求属性値群との組み合わせに応じて、サービスクラス４１４の実装クラスのクラス名（例えば、「プリントサービス」、「コピーサービス」、「スキャンサービス」、「ＦＡＸサービス」等）が登録されている。したがって、サービス検索オブジェクト４１１Ａは、アプリケーション６０より指定された入出力形式オブジェクト４１２Ａ及び要求属性値群オブジェクト４１３Ａに対応するクラス名をサービス管理情報より検索し、検索されたクラス名に対応するサービスオブジェクト４１４Ａを生成する。
【００５５】
続いて、アプリケーション６０は、返却されたサービスオブジェクト４１４Ａに対してジョブの生成を要求する（Ｓ１１１）。サービスオブジェクト４１４Ａは、対応するジョブ（印刷ジョブ、コピージョブ、スキャンジョブ、又はＦＡＸ送信ジョブ等）の実装クラスのジョブオブジェクト４１６Ａを生成し（Ｓ１１３）、当該ジョブオブジェクト４１６Ａをアプリケーション６０に返却する（Ｓ１１５）。
【００５６】
続いて、アプリケーション６０は、ジョブにおいて処理対象とするドキュメントをカプセル化したドキュメントオブジェクト４１５Ａをメモリ内に生成する（Ｓ１１７）。印刷ジョブであれば、印刷データがカプセル化される。当該ドキュメントのデータ形式は、ジョブの種別に応じ、ＰｏｓｔＳｃｒｉｐｔファイル、ＪＰＥＧイメージ、ＵＲＬ、又はプレーンテキスト等、様々な形式をとり得る。なお、コピージョブ及びスキャンジョブ等については、アプリケーション６０は処理対象とするデータを有していない。したがって、このようなジョブについては、アプリケーション６０はドキュメントオブジェクト４１５Ａを生成する必要はない。一方、印刷ジョブの場合、印刷データの受信はアプリケーション６０（プリントアプリ６１）によって行われる。したがって、この場合は、ドキュメントオブジェクト４１５Ａが生成される。
【００５７】
続いて、アプリケーション６０は、ステップＳ１１５において返却されたジョブオブジェクト４１５Ａに対して、ドキュメントオブジェクト４１５Ａ及び要求属性値群オブジェクト４１３Ａを指定して、ジョブの実行を要求する（Ｓ１１９）。なお、ドキュメントオブジェクト４１５Ａが生成されていない場合は、ドキュメントオブジェクト４１５Ａは指定されない。
【００５８】
図９において、アプリケーション６０の軸から出ている矢印がアプリケーション６０において実装が必要とされる手順である。当該手順のフローチャートを図１０に示す。図１０において、各ステップには図９において対応するステップ番号が付されている。各ステップの内容は図９で説明した通りである。但し、図１０では、サービスが検索された場合に（すなわち、図９のステップＳ１１５においてサービスオブジェクト４１４Ａが返却された場合に）、ステップＳ１１１以降が実行されることが明示されている（Ｓ１１０）。
【００５９】
このように、アプリケーション６０の開発は、基本的に図１０に示される処理手順に対応したインタフェース（プレゼンテーション層４１のインタフェース）を呼び出すことにより行われる。また、当該インタフェースは、Ｊａｖａ（登録商標）の標準インタフェースであるＪＰＳに準拠するものである。したがって、本実施の形態の複合機１によれば、アプリケーション６０の開発作業の負担を軽減することができる。
【００６０】
また、特許文献１のフィルタ等によってアプリケーションを構築する場合に比べて、ソフトウェア構成全体の規模を小さくできる可能性が高い。したがって、アプリケーションの実行に必要なメモリ容量等を低減することができ、ハードウェアのコストの削減も期待できる。
【００６１】
ところで、ジョブオブジェクト４１６Ａに対するジョブの実行要求後は、ドメインロジック層４２においてジョブの実行が行われる。ドメインロジック層４２における処理手順についてはアプリケーション６０の関与しないところであるが、以下にその一例を説明する。
【００６２】
図１１、図１２、及び図１３は、ドメインロジック層における処理手順を説明するためのシーケンス図である。同図における各オブジェクトの参照番号は、各オブジェクトのクラスの参照番号（図４参照）の末尾に「Ａ」を付加したものである。
【００６３】
図１１等では、１枚の原稿について、出力部数は３、ソートはＯＮとして設定されコピージョブの実行が要求された場合の処理手順を説明する。
【００６４】
図９のステップＳ１１９におけるジョブの実行に応じ、ジョブオブジェクト４１６Ａは、成果物オブジェクト４２１１Ａをメモリ内に生成する（Ｓ３０１）。ここで、ジョブオブジェクト４１６Ａは、出力部数が３及びソートがＯＮであることを示す要求属性値群オブジェクト４１３Ａの内容（以下、「ジョブ設定値」という。）を成果物オブジェクト４２１１Ａに設定する。従って、ここでの成果物オブジェクト４２１１Ａは、ソートされた３部のコピー結果としての成果物を表現する。
【００６５】
続いて、ジョブオブジェクト４１６Ａは、成果物オブジェクト４２１１Ａに対してジョブの実行（すなわち、成果物の実現）を要求する（Ｓ３０３）。当該要求に応じ、成果物オブジェクト４２１１Ａは、１枚目の原稿に対応する入力物オブジェクト４２２１Ａをメモリ内に生成する（Ｓ３０５）。続いて、成果物オブジェクト４２１１Ａは、１枚目の入力物オブジェクト４２２１Ａに対応する出力物（１枚目の３部のコピー結果）に係るオブジェクト４２２３Ａをメモリ内に生成し、出力物オブジェクト４２２３Ａと入力物オブジェクト４２２１Ａとの関連を生成する（Ｓ３０７）。続いて、成果物オブジェクト４２１１Ａは、出力部数分の出力束オブジェクトをメモリ内に生成する。ここでは、１部目、２部目、及び３部目のそれぞれのソート単位に対応する出力束オブジェクト４２２５Ａ−１、４２２３Ａ−２、及び４２２３Ａ−３が生成される（Ｓ３０９〜Ｓ３１３）。なお、生成された出力束オブジェクトは、１部目、２部目、３部目という順番で（すなわち、出力束オブジェクト４２２５Ａ−１、４２２３Ａ−２、４２２３Ａ−３という順番で）チェーン構造で関連付けられる。
【００６６】
続いて、成果物オブジェクト４２１１Ａは、出力物オブジェクト４２２３Ａをソート１部目の出力束オブジェクト４２２５Ａ−１に通知し、出力要素（コピー面）の追加（束ねること）を要求する（Ｓ３１５）。続いて、出力束オブジェクト４２２５Ａ−１は、通知された出力物オブジェクト４２２３Ａに対し、１部目の出力要素（コピー面）に対応する出力要素オブジェクト４２２４Ａの取得を要求する（Ｓ３１７）。出力物オブジェクト４２２３Ａは、出力要素オブジェクト４２２４Ａ−１をメモリ内に生成し（Ｓ３１９）、出力束オブジェクト４２２５Ａ−１に返却する（Ｓ３２１）。
【００６７】
続いて、成果物オブジェクト４２１１Ａは、出力物オブジェクト４２２３Ａをソート２部目の出力束オブジェクト４２２５Ａ−２に通知する（Ｓ３２３）。続いて、出力束オブジェクト４２２５Ａ−２は、通知された出力物オブジェクト４２２３Ａに対し、２部目の出力要素（コピー面）に対応する出力要素オブジェクト４２２４Ａの取得を要求する（Ｓ３２５）。出力物オブジェクト４２２３Ａは、出力要素オブジェクト４２２４Ａ−２をメモリ内に生成し（Ｓ３２７）、出力束オブジェクト４２２５Ａ−２に返却する（Ｓ３２９）。
【００６８】
続いて、成果物オブジェクト４２１１Ａは、出力物オブジェクト４２２３Ａをソート３部目の出力束オブジェクト４２２５Ａ−３に通知する（Ｓ３３１）。続いて、出力束オブジェクト４２２５Ａ−３は、通知された出力物オブジェクト４２２３Ａに対し、３部目の出力要素（コピー面）に対応する出力要素オブジェクト４２２４Ａの取得を要求する（Ｓ３３３）。出力物オブジェクト４２２３Ａは、出力要素オブジェクト４２２４Ａ−３をメモリ内に生成し（Ｓ３３５）、出力束オブジェクト４２２５Ａ−３に返却する（Ｓ３３７）。
【００６９】
なお、各出力要素オブジェクト４２２４Ａは、出力物オブジェクト４２２３Ａ−１の生成時に予め生成されていてもよい。
【００７０】
出力部数分の出力束オブジェクト４２２５Ａの生成及び各出力束オブジェクト４２２５Ａへの出力物オブジェクト４２２３Ａの通知が完了すると、成果物オブジェクト４２１１Ａは、１枚目の原稿に対応する入力物オブジェクト４２２１Ａに対してデータ入力の実行（すなわち、１枚目の原稿の読み取り）を要求する（図１２：Ｓ３５１）。続いて、入力物オブジェクト４２２１Ａは、１枚目の原稿に対応する読み取り画像（スキャン画像）に対応する原画像オブジェクト４２２２Ａをメモリ内に生成する（Ｓ３５３）。続いて、入力物オブジェクト４２２１Ａは、原画像オブジェクト４２２２Ａに対して読み取りの実行を要求する（Ｓ３５５）。当該要求に応じ、原画像オブジェクト４２２２Ａは、入力リソースオブジェクト４２３１Ａ及びサービス層４３等を介して撮像部１０４に原稿の読み取りを実行させる（Ｓ３５７）。なお、読み取られた画像データ（スキャン画像）は、メモリ内に記録され、そのアドレス情報がサービス層４３及び入力リソースオブジェクト４２３１を経て原画像オブジェクト４２２２Ａに対して通知される。したがって、原画像オブジェクト４２２２Ａは、当該アドレス情報を保持することにより、スキャン画像に関連付けられる。また、次原稿の有無（２枚目以降の原稿の有無）もこのタイミングでサービス層４３及び入力リソースオブジェクト４２３１を経て原画像オブジェクト４２２２Ａに通知される。なお、印刷ジョブの場合、ステップＳ３０３においてジョブオブジェクト４１６Ａより成果物オブジェクト４２１１Ａに印刷データをカプセル化したドキュメントオブジェクトが引き渡される。当該ドキュメントオブジェクトは、ステップＳ３５１において成果物オブジェクト４２１１Ａから入力物オブジェクト４２２１Ａに引き渡される。したがって、原画像オブジェクト４２２２Ａによる画像データの読み取りは行われない。
【００７１】
１枚目の原稿の読み取りが終了すると、原画像オブジェクト４２２２Ａは、入力物オブジェクト４２２１Ａに１枚目の読み取りの終了及び次原稿の有無を通知する（Ｓ３５９）。当該通知に応じ、入力物オブジェクト４２２１Ａは、成果物に１枚目の入力物の入力（ここでは画像の読み取り）の終了を通知する（Ｓ３６１）。続いて、成果物オブジェクト４２１１Ａは、１枚目の原稿に対応する出力物オブジェクト４２２３Ａに入力物の入力の終了を通知する（Ｓ３６３）。当該通知に応じ、出力物オブジェクト４２２３Ａは、出力が可能となったことを判断する。
【００７２】
続いて、入力物オブジェクト４２２１Ａは、成果物オブジェクト４２１１Ａに次原稿の有無を通知する（Ｓ３５６）。ここでは、原稿は１枚であるという前提なので次原稿はないことが通知される。なお、次原稿が有ることが通知された場合、成果物オブジェクト４２１１Ａは、ステップＳ３０５、Ｓ３０７、Ｓ３１５、Ｓ３２３、Ｓ３３１、及びＳ３５１を再度実行する。その結果、２枚目に対応する入力物オブジェクト４２２１Ａ及び出力物オブジェクト４２２２Ａが生成され、２枚目の３部分のそれぞれのコピー面に対応する出力要素オブジェクト４２２５Ａが生成される。各出力要素オブジェクト４２２５Ａは、出力束オブジェクト４２２５Ａ−１〜３のそれぞれに登録される。
【００７３】
次原稿はないことが通知された場合、成果物オブジェクト４２１１Ａは、ソート単位分の入力物の入力は終了したと判断し、チェーン構造で関連付けられている最初の（１部目の）出力束オブジェクト４２２５Ａ−１に実行（コピー面の印刷）を要求する（Ｓ３６７）。続いて、出力束オブジェクト４２２５Ａ−１は、自らに登録されている（自らが束ねている）１部目のソート１枚目の出力要素オブジェクト４２２４Ａ−１に実行を要求する（Ｓ３６９）。出力要素オブジェクト４２２４Ａ−１は、出力リソースオブジェクト４２３２Ａにリソース（印刷部１０５等）の使用の予約を要求する（Ｓ３７１）。
【００７４】
自らに登録されている全ての出力要素オブジェクト４２２４Ａ−１に対する実行要求が終了すると、出力束オブジェクト４２２５Ａ−１は、自らにチェーン構造で接続されている次の（２部目の）出力束オブジェクト４２２５Ａ−２に実行を要求する（Ｓ３７３）。出力束オブジェクト４２２５Ａ−２は、自らに登録されている２部目のソート１枚目の出力要素オブジェクト４２２４Ａ−２に実行を要求する（Ｓ３７５）。出力要素オブジェクト４２２４Ａ−２は、出力リソースオブジェクト４２３２Ａにリソースの使用の予約を要求する（Ｓ３７７）。
【００７５】
自らに登録されている全ての出力要素オブジェクト４２２４Ａ−２に対する実行要求が終了すると、出力束オブジェクト４２２５Ａ−２は、自らにチェーン構造で接続されている次の（３部目の）出力束オブジェクト４２２５Ａ−３に実行を要求する（Ｓ３７９）。出力束オブジェクト４２２５Ａ−３は、自らに登録されている２部目のソート１枚目の出力要素オブジェクト４２２４Ａ−３に実行を要求する（Ｓ３８１）。出力要素オブジェクト４２２４Ａ−３は、出力リソースオブジェクト４２３２Ａにリソースの使用の予約を要求する（Ｓ３８３）。
【００７６】
なお、ソート２枚目が有る場合（原稿が２枚以上である場合）、各出力束オブジェクト４２２Ａは、ソート２枚目の出力要素オブジェクト４２２４Ａに対しても実行を要求する。実行要求を行う順番は、出力要素オブジェクト４２２４Ａ間のチェーン構造の接続関係に基づいて判定される。
【００７７】
続いて、リソースの使用予約を受けた出力リソースオブジェクト４２３２Ａは、印刷部１０５等が出力可能な状態になると、予約を受け付けた順番に使用許可を通知する。ここでは、まず、１部目のソート１枚目を示す出力要素オブジェクト４２２４Ａ−１にリソースの使用許可が通知される（Ｓ３９１）。続いて、出力要素オブジェクト４２２４Ａ−１は、出力物オブジェクト４２２３Ａに出力の実行可否判断を要求する（Ｓ３９３）。出力物オブジェクト４２２３Ａは、ステップＳ３６３において入力物の入力の終了を通知されているので実行可能と判断し、その判断結果を出力要素オブジェクト４２２４Ａ−１に返却する。実行可能であることを示す判断結果が返却された場合、出力要素オブジェクト４２２４Ａ−１は、使用許可された出力リソース（印刷部１０５）を使用して印刷を実行する（Ｓ３９５）。ここで、印刷対象とされる画像データは、出力要素オブジェクト４２２４Ａ−１が属する出力物オブジェクト４２２３Ａに関連付けられている入力物オブジェクト４２２１Ａに基づいて特定可能である。印刷が終了すると、出力要素オブジェクト４２２４Ａ−１は、出力物オブジェクト４２２３Ａに印刷の終了を通知する（Ｓ３９７）。続いて出力要素オブジェクト４２２４Ａ−１は、出力束オブジェクト４２２５Ａ−１に当該出力要素（当該コピー面）の出力の終了を通知する（Ｓ３９９）。当該通知に応じ、出力束オブジェクト４２２５Ａ−１は、成果物オブジェクト４２１１Ａに当該出力束（当該ソート単位分のコピー面）の出力の終了を通知する（Ｓ４０１）。
【００７８】
続いて、出力リソースオブジェクト４２３２Ａは、２部目のソート１枚目を示す出力要素オブジェクト４２２４Ａ−２にリソースの使用許可を通知する（Ｓ４０３）。続いて、出力要素オブジェクト４２２４Ａ−２は、出力物オブジェクト４２２３Ａに出力の実行可否判断を要求する（Ｓ４０５）。出力物オブジェクト４２２３Ａは、ステップＳ３６３において入力物の入力の終了を通知されているので実行可能と判断し、その判断結果を出力要素オブジェクト４２２４Ａ−２に返却する。実行可能であることを示す判断結果が返却された場合、出力要素オブジェクト４２２４Ａ−２は、使用許可された出力リソース（印刷部１０５）を使用して印刷を実行する（Ｓ４０７）。印刷が終了すると、出力要素オブジェクト４２２４Ａ−２は、出力物オブジェクト４２２３Ａに印刷の終了を通知する（Ｓ４０９）。続いて出力要素オブジェクト４２２４Ａ−２は、出力束オブジェクト４２２５Ａ−２に当該出力要素（当該コピー面）の出力の終了を通知する（Ｓ４１１）。当該通知に応じ、出力束オブジェクト４２２５Ａ−２は、成果物オブジェクト４２１１Ａに当該出力束（当該ソート単位分のコピー面）の出力の終了を通知する（Ｓ４１３）。
【００７９】
続いて、出力リソースオブジェクト４２３２Ａは、３部目のソート１枚目を示す出力要素オブジェクト４２２４Ａ−３にリソースの使用許可を通知する（Ｓ４１５）。続いて、出力要素オブジェクト４２２４Ａ−３は、出力物オブジェクト４２２３Ａに出力の実行可否判断を要求する（Ｓ４１７）。出力物オブジェクト４２２３Ａは、ステップＳ３６３において入力物の入力の終了を通知されているので実行可能と判断し、その判断結果を出力要素オブジェクト４２２４Ａ−３に返却する。実行可能であることを示す判断結果が返却された場合、出力要素オブジェクト４２２４Ａ−３は、使用許可された出力リソース（印刷部１０５）を使用して印刷を実行する（Ｓ４１９）。印刷が終了すると、出力要素オブジェクト４２２４Ａ−３は、出力物オブジェクト４２２３Ａに印刷の終了を通知する（Ｓ４２１）。続いて出力要素オブジェクト４２２４Ａ−３は、出力束オブジェクト４２２５Ａ−３に当該出力要素（当該コピー面）の出力の終了を通知する（Ｓ４２３）。当該通知に応じ、出力束オブジェクト４２２５Ａ−３は、成果物オブジェクト４２１１Ａに当該出力束（当該ソート単位分のコピー面）の出力の終了を通知する（Ｓ４２５）。
【００８０】
以上によって、１枚の原稿の３部分のソートコピーが完了する。続いて、ドメインロジック層４２による処理手順を更に一般化して説明する。図１４は、コピージョブを実行する際のドメインロジック層における処理手順を説明するための汎用的なフローチャートである。すなわち、同図のフローチャートでは、原稿枚数、出力部数、印刷順（ソート又はスタック）等は特定されていない。同図のフローチャートの手順の特定の形態が図１１、図１２、及び図１３となる。図１４の括弧内のステップ番号は、図１１、図１２、又は図１３において対応するステップ番号を示す。
【００８１】
ジョブオブジェクト４１６Ａによって成果物オブジェクト４２１１Ａが生成され、ジョブの実行が要求されると（Ｓ５０１）、成果物オブジェクト４２１１Ａは、入力原稿の枚数のカウンタＮに１をセットし（Ｓ５０２）、Ｎ枚目（１枚目）の原稿に対する入力物オブジェクト４２２１Ａをメモリ内に生成する（Ｓ５０３）。ここで、成果物オブジェクト４２１１Ａには、ジョブ設定値がジョブオブジェクト４１６Ａによって設定される。ジョブ設定値には、例えば、出力部数や出力モード（ソート又はスタック等）が含まれている。
【００８２】
続いて、成果物オブジェクト４２１１Ａは、１枚目の入力物オブジェクト４２２１Ａに対応する出力物オブジェクト４２２３Ａをメモリ内に生成し、出力物オブジェクト４２２３Ａと入力物オブジェクト４２２１Ａとの関連を生成する（Ｓ５０４）。なお、成果物オブジェクト４２１１Ａは、自らに設定されているジョブ設定値のうち少なくとも出力に関係する設定値群（例えば、出力部数及び出力モード等）を生成された出力物オブジェクト４２２３Ａに設定する。以降において生成される出力物オブジェクト４２２３Ａについても同様である。
【００８３】
続いて、成果物オブジェクト４２１１Ａは、ジョブオブジェクト４１６Ａより設定されているジョブ設定値においてソートは指定されているか否かを判定する（Ｓ５０５）。ソートが指定されている場合（Ｓ５０５でＹｅｓ）、成果物オブジェクト４２１１Ａは、ジョブ設定値に指定されている出力部数分の出力束オブジェクト４２２５Ａを生成し、各出力束オブジェクト４２２５Ａをチェーン構造で出力順に従って関連付ける（Ｓ５０６）。なお、成果物オブジェクト４２１１Ａは、自らに設定されているジョブ設定値のうち少なくとも出力に関係する設定値群（例えば、出力部数及び出力モード等）を生成された出力束オブジェクト４２２５Ａに設定する。以降において生成される出力束オブジェクト４２２５Ａについても同様である。
【００８４】
続いて、成果物オブジェクト４２１１Ａは、生成された各出力束オブジェクト４２２５Ａに、Ｎ枚目に対応する出力物オブジェクト４２２３Ａを通知する（Ｓ５０７）。続いて、各出力束オブジェクト４２２５Ａは、自らに設定されている出力モードの値に基づいてソートが指定されていることを判定し、通知された出力物オブジェクト４２２３Ａよりソート単位内でＮ枚目に対応する出力要素オブジェクト４２２４Ａを一つ取得する（Ｓ５０８）。各出力束オブジェクト４２２５Ａは取得された順に出力要素オブジェクト４２２４Ａをチェーン構造で関連付ける。
【００８５】
続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目に対応する入力物オブジェクト４２２１ＡにＮ枚目の原稿の入力を要求する（Ｓ５０９）。当該要求に応じ、入力物オブジェクト４２２１Ａは、Ｎ枚目の原稿に対応する読み取り画像（スキャン画像）に対応する原画像オブジェクト４２２２Ａをメモリ内に生成する（Ｓ５１０）。続いて、入力物オブジェクト４２２１Ａは、原画像オブジェクト４２２２ＡにＮ枚目の原稿の読み取りを実行させる（Ｓ５１０）。次の原稿が有る場合（Ｓ５１１でＹｅｓ）、成果物オブジェクト４２１１Ａは、カウンタＮをインクリメントし（Ｓ５１２）、Ｎ枚目の原稿に対する入力物オブジェクト４２２１Ａをメモリ内に生成する（Ｓ５１３）。続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目の入力物オブジェクト４２２１Ａに対応する出力物オブジェクト４２２３Ａをメモリ内に生成し、出力物オブジェクト４２２３Ａと入力物オブジェクト４２２１Ａとの関連を生成する（Ｓ５１４）。続いて、ステップＳ５０７〜Ｓ５１０を繰り返す。
【００８６】
したがって、例えば、原稿が２枚で出力部数が３のコピーにおいてソートが指定されている場合、全ての原稿の読み取りを完了した時点での各オブジェクト間の関係は次のようになる。
【００８７】
図１５は、ソート指定の場合にインスタンス化されるドメインロジック層のオブジェクトの構成例を示す図である。
【００８８】
同図において、入力物オブジェクト４２２１Ａ−１及び出力物オブジェクト４２２３Ａ−１は１枚目の原稿に対応する。また、入力物オブジェクト４２２１Ａ−２及び出力物オブジェクト４２２３Ａ−２は２枚目の原稿に対応する。出力部数が３においてソートが指定されているため、三つの出力束オブジェクト４２２５Ａ−１、４２２５Ａ−２、及び４２２５Ａ−３がインスタンス化される。各出力束オブジェクト４２２５Ａは、ソート単位で出力要素オブジェクト４２２４Ａを束ねる。具体的には、各出力束オブジェクト４２２５Ａには、出力物オブジェクト４２２３Ａ−１及び４２２３Ａ−２のそれぞれより取得された二つの出力要素４２２４Ａが関連付けられる。なお、各出力束オブジェクト４２２５Ａは、ソート単位の順番に応じてチェーン構造で関連付けられる（図中の矢印が当該関連を示す。）。また、同一の出力束オブジェクト４２２５Ａに関連付けられている出力要素オブジェクト４２２４Ａ同士は、出力順（原稿の順番）に応じてチェーン構造で関連付けられる。なお、出力要素オブジェクト４２２４Ａの参照番号の枝番は、１０の桁はソート単位の順番を、１の桁が原稿の順番（１枚目、２枚目、・・・）を示す。
【００８９】
一方、ソートが指定されていない場合（Ｓ５０５でＮｏ）、成果物オブジェクト４２１１Ａは、スタックが指定されているか否かを判定する（Ｓ５１５）。スタックが指定されている場合（Ｓ５１５でＹｅｓ）、スタック用の読み取り処理が実行される（Ｓ５１６）。また、スタックが指定されていない場合（Ｓ５１５でＮｏ）、その他の（ソート及びスタックが指定されていない場合の）読み取り処理が実行される（Ｓ５１７）。
【００９０】
図１６は、スタック用の読み取り処理を説明するためのフローチャートである。ここで、スタックとは、例えば、２枚の原稿を３部コピーする場合、１、１、１、２、２、２という順番で出力が行われ（数字は、原稿のページ番号を示す。）、ページ別で束ねられるモードをいう。具体的には、「１、１、１」という束と「２、２、２」という束とが異なる排紙トレイに出力されたり、同一の出力トレイにずれて出力されたりする。
【００９１】
したがって、スタックが指定されている場合、成果物オブジェクト４２１１Ａは、Ｎ枚目の原稿に対応する出力束オブジェクト４２２５Ａをメモリ内に生成する（Ｓ５２１）。すなわち、スタックの場合は、原稿のページ数分（枚数分）の束が作成されるため、ページごとに出力束オブジェクト４２２５Ａが生成される。なお、成果物オブジェクト４２１１Ａは、各出力束オブジェクト４２２５Ａをその生成順にチェーン構造で関連付ける。
【００９２】
続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目に対応する出力束オブジェクト４２２５Ａに、Ｎ枚目に対応する出力物オブジェクト４２２３Ａを通知する（Ｓ５２２）。続いて、当該出力束オブジェクト４２２５Ａは、自らに設定されている出力モードの値に基づいてスタックが指定されていることを判定し、通知された出力物オブジェクト４２２３Ａより出力部数分の出力要素オブジェクト４２２４Ａを取得する（Ｓ５２３）。したがって、３部であれば３つの出力要素オブジェクト４２２４Ａが取得される。出力束オブジェクト４２２５Ａは、取得された順に各出力要素オブジェクト４２２４Ａをチェーン構造で関連付ける。
【００９３】
続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目に対応する入力物オブジェクト４２２１Ａに１枚目の原稿の入力を要求する（Ｓ５２４）。当該要求に応じ、入力物オブジェクト４２２１Ａは、Ｎ枚目の原稿に対応する読み取り画像（スキャン画像）に対応する原画像オブジェクト４２２２Ａをメモリ内に生成する（Ｓ５２５）。続いて、入力物オブジェクト４２２１Ａは、原画像オブジェクト４２２２ＡにＮ枚目の原稿の読み取りを実行させる（Ｓ５２６）。次の原稿が有る場合（Ｓ５２７でＹｅｓ）、成果物オブジェクト４２１１Ａは、カウンタＮをインクリメントし（Ｓ５２８）、Ｎ枚目の原稿に対する入力物オブジェクト４２２１Ａをメモリ内に生成する（Ｓ５２９）。続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目の入力物オブジェクト４２２１Ａに対応する出力物オブジェクト４２２３Ａをメモリ内に生成し、出力物オブジェクト４２２３Ａと入力物オブジェクト４２２１Ａとの関連を生成する（Ｓ５３０）。続いて、ステップＳ５２１〜Ｓ５３０を繰り返す。
【００９４】
したがって、例えば、原稿が２枚で出力部数が３のコピーにおいてスタックが指定されている場合、全ての原稿の読み取りを完了した時点での各オブジェクト間の関係は次のようになる。
【００９５】
図１７は、スタック指定の場合にインスタンス化されるドメインロジック層のオブジェクトの構成例を示す図である。
【００９６】
同図に示されるように、スタックが指定されている場合は、原稿の枚数分の出力束オブジェクト４２２５Ａが生成される。各出力束オブジェクト４２２５Ａは、スタック単位で出力要素オブジェクト４２２４Ａを束ねる。具体的には、一つ目の出力束オブジェクト４２２５Ａ−１には、１枚目の原稿に対応する出力要素オブジェクト４２２４Ａが三つ（３出力部数分）関連付けられる。二つ目の出力束オブジェクト４２２５Ａ−２には、２枚目の原稿に対応する出力要素オブジェクト４２２４Ａが三つ（３出力部数分）関連付けられる。なお、出力要素オブジェクト４２２４Ａの参照番号の枝番は、１０の桁がスタック単位の順番を、１の桁が原稿のページ（何枚目か）を示す。
【００９７】
また、図１８は、その他の読み取り処理を説明するためのフローチャートである。ソート及びスタックのいずれもが指定されていない場合は、出力順はスタックの場合と同じであるが、ページ別の束は作成されない。例えば、２枚の原稿を３部コピーする場合、１、１、１、２、２、２という一つの束がコピー結果として出力される。
【００９８】
したがって、ソート及びスタックが指定されていない場合、成果物オブジェク４２１１Ａは、一つの出力束オブジェクト４２２５Ａを生成する（Ｓ５３１）。続いて、成果物オブジェクト４２１１Ａは、当該出力束オブジェクト４２２５Ａに、Ｎ枚目に対応する出力物オブジェクト４２２３Ａを通知する（Ｓ５３２）。続いて、当該出力束オブジェクト４２２５Ａは、自らに設定されている出力モードの値に基づいてソート及びスタックのいずれもが指定されていないことを判定し、通知された出力物オブジェクト４２２３Ａより出力部数分の出力要素オブジェクト４２２４Ａを取得する（Ｓ５３３）。したがって、３部であれば３つの出力要素オブジェクト４２２４Ａが取得される。出力束オブジェクト４２２５Ａは、取得された順に各出力要素オブジェクト４２２４Ａをチェーン構造で関連付ける。
【００９９】
続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目に対応する入力物オブジェクト４２２１Ａに１枚目の原稿の入力を要求する（Ｓ５３４）。当該要求に応じ、入力物オブジェクト４２２１Ａは、Ｎ枚目の原稿に対応する読み取り画像（スキャン画像）に対応する原画像オブジェクト４２２２Ａをメモリ内に生成する（Ｓ５３５）。続いて、入力物オブジェクト４２２１Ａは、原画像オブジェクト４２２２ＡにＮ枚目の原稿の読み取りを実行させる（Ｓ５３６）。次の原稿が有る場合（Ｓ５３７でＹｅｓ）、成果物オブジェクト４２１１Ａは、カウンタＮをインクリメントし（Ｓ５３８）、Ｎ枚目の原稿に対する入力物オブジェクト４２２１Ａをメモリ内に生成する（Ｓ５３９）。続いて、成果物オブジェクト４２１１Ａは、Ｎ枚目の入力物オブジェクト４２２１Ａに対応する出力物オブジェクト４２２３Ａをメモリ内に生成し、出力物オブジェクト４２２３Ａと入力物オブジェクト４２２１Ａとの関連を生成する（Ｓ５４０）。続いて、ステップＳ５３１〜Ｓ５４０を繰り返す。
【０１００】
したがって、例えば、原稿が２枚で出力部数が３部のコピーにおいてソート及びスタックが指定されていない場合、全ての原稿の読み取りを完了した時点での各オブジェクト間の関係は次のようになる。
【０１０１】
図１９は、ソート及びスタックが指定されていない場合にインスタンス化されるドメインロジック層のオブジェクトの構成例を示す図である。
【０１０２】
同図に示されるように、ソート及びスタックが指定されていない場合は、一つの出力束オブジェクト４２２５Ａに全ての出力要素オブジェクト４２２４Ａが関連付けられている。なお、出力要素オブジェクト４２２４Ａの参照番号の枝番は、原稿のページ（何枚目か）を示す。
【０１０３】
図１４に戻る。全ての原稿の読み取りが完了すると、ステップＳ５４１に進み、成果物オブジェクト４２１１Ａは、インスタンス化されている各出力束オブジェクト４２２５Ａに対してチェーン構造の順番で出力の実行を要求する（Ｓ５４１）。当該要求に応じ、各出力束オブジェクト４２２５Ａは、自らに関連付けられている各出力要素オブジェクト４２２４Ａにチェーン構造の順番で出力の実行を要求する（Ｓ５４２）。その結果、各出力要素オブジェクト４２２４Ａに対応する分のコピー面が印刷される（Ｓ５４３）。
【０１０４】
ソートが指定されている場合、図１５のオブジェクト構成に基づいてステップＳ５４１以降が実行される。したがって、例えば、２枚の原稿を３部コピーする場合、「１、２」といった束（ソート単位）が三つ出力される。
【０１０５】
また、スタックが指定されている場合、図１７のオブジェクト構成に基づいてステップＳ５４１以降が実行される。したがって、例えば、２枚の原稿を３部コピーする場合、「１、１、１」、「２、２、２」といった二つの束（スタック単位）が出力される。
【０１０６】
また、ソート及びスタックのいずれもが指定されていない場合、図１９のオブジェクト構成に基づいてステップＳ５４１以降が実行される。したがって、例えば、２枚の原稿を３部コピーする場合、「１、１、１、２、２、２」といった一つの束が出力される。
【０１０７】
上述したたように、ドメインロジック層４２による処理内容は、アプリケーション６０からは隠蔽される。すなわち、ドメインロジック層４２の各クラスは、アプリケーション６０から直接呼び出されることはない。したがって、複合機１の内部的なソフトウェア構成をサードベンダー等に公開する必要はない。よって、複合機１の開発ベンダーの技術流出を適切に防止することができる。
【０１０８】
また、ドメインロジック層４２は、出力束オブジェクト４２２５Ａによる出力要素オブジェクト４２２４Ａの束ね方を変化させることによって、ソート指定、スタック指定に応じた出力順の制御を行っている。したがって、柔軟性が高くシンプルな構成が実現されている。斯かる構成によれば、保守性や機能拡張性を向上させることができる。
【０１０９】
ところで、図４や上記において説明した処理手順からも明らかなように、ドメインロジック層４２において、成果物オブジェクト４２１１Ａ、出力物オブジェクト４２２３Ａ、及び出力束オブジェクト４２２５Ａには、同一のジョブ設定値が別々に設定される。そこで、ジョブ設定値を統合的に管理する設定値クラスを新たに定義した例について説明する。
【０１１０】
図２０は、設定値クラスと成果物オブジェクト等との関係を示す図である。同図に示されるように、設定値クラス４２２６は、ジョブ設定値を保持するための属性を有する。同図では、斯かる属性として出力部数及び出力モードが例示されている。成果物クラス４２１１、出力物クラス４２２３、及び出力束クラス４２２５は、設定値クラス４２２６に対して関連を有している。このことは、成果物オブジェクト４２１１Ａ、各出力物オブジェクト４２２３Ａ、及び各出力束オブジェクト４２２５Ａが、設定値クラス４２２６の同一のインスタンス（設定値オブジェクト４２２６Ａ）を参照することを示す。このような構成を採用する場合、成果物クラス４２１１、出力物クラス４２２３、及び出力束クラス４２２５のそれぞれに出力部数及び出力モード等のジョブ設定値を保持するための属性を定義する必要はない。当該各クラスには、設定置オブジェクト４２２６Ａへの参照情報（ポインタや識別子等）を保持するための属性が定義されればよい。
【０１１１】
以下、設定値クラス４２２６（設定値オブジェクト４２２６Ａ）を利用する場合のドメインロジック層４２による処理手順について説明する。
【０１１２】
図２１は、コピージョブを実行する際のドメインロジック層における処理手順を説明するための汎用的な第二のフローチャートである。また、図２２は、スタック用の読み取り処理を説明するための第二のフローチャートである。また、その他の読み取り処理を説明するための第二のフローチャートである。これらのフローチャートにおいて、図１４、図１６、又は図１８と同一ステップには同一ステップ番号を付し、省略する。
【０１１３】
ステップＳ５０１において成果物オブジェクト４２１１Ａが生成されると、成果物オブジェクト４２１１Ａは、設定値オブジェクト４２２６Ａをメモリ内に生成し、ジョブオブジェクト４１６Ａより設定されたジョブ設定値（出力部数、出力モード）を設定値オブジェクト４２２６Ａに設定する（Ｓ５０１−２）。なお、成果物オブジェクト４２１１Ａは、生成した設定値オブジェクト４２２６Ａへの参照情報を自らに登録する。
【０１１４】
当該設定値オブジェクト４２２６Ａの参照情報は、その後に生成される各出力物オブジェクト４２２３Ａ及び各出力束オブジェクト４２２５Ａに成果物オブジェクト４２１１Ａによって登録される。例えば、ステップＳ５０４、Ｓ５１４、Ｓ５３０、又はＳ５４０において出力物オブジェクト４２２３Ａが生成されるたびに、当該出力物オブジェクト４２２３Ａに対して同一の設定値オブジェクト４２２６Ａの参照情報が登録される（Ｓ５０４−２、Ｓ５１４−２、Ｓ５３０−２、Ｓ５４０−２）。また、ステップＳ５０６、Ｓ５２１、又はＳ５３１において出力束オブジェクト４２２５Ａが生成されるたびに、当該出力束オブジェクト４２２５Ａに対して同一の設定値オブジェクト４２２６Ａの参照情報が登録される（Ｓ５０６−２、Ｓ５２１−２、Ｓ５３１−２）。
【０１１５】
成果物オブジェクト４２１１Ａは、例えば、ステップＳ５０５又はステップＳ５１５においてソート又はスタックが指定されているか否かを判定するときや、ステップＳ５０６、Ｓ５２１、又はＳ５３１において出力束オブジェクト４２２５Ａを生成する際に、設定値オブジェクト４２２６Ａに設定されている出力モードの値や出力部数の値を参照し、ソート又はスタックの指定の有無や、生成する出力束オブジェクト４２２５Ａの個数等を判断する。
【０１１６】
また、出力束オブジェクト４２２５Ａは、例えば、ステップＳ５０８、Ｓ５２３、又はＳ５３３において出力要素オブジェクト４２２４Ａを取得する際に、設定値オブジェクト４２２６Ａに設定されている出力モードの値や出力部数の値を参照し、取得する出力要素オブジェクト４２２４Ａの個数等を判断する。
【０１１７】
なお、設定値オブジェクト４２２６Ａは、成果物オブジェクト４２１１Ａが生成するのではなく、ジョブオブジェクト４１６Ａが生成し、成果物オブジェクト４２１１Ａにその参照情報を設定するようにしてもよい。
【０１１８】
このように、設定値クラス４２２６を定義することにより、同一の情報が複数のオブジェクトに分散されるのを回避することができる。その結果、メモリの消費量を低減させることが出来ると共に、ジョブ設定値の構成が変化した場合の保守性を向上させることができる。また、同一のジョブ設定値についてオブジェクト間における不整合の発生を防止することができる。
【０１１９】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。
【図２】本発明の実施の形態における複合機のソフトウェア構成例を示す図である。
【図３】ＭＦＰプロファイルの構成例を示す図である。
【図４】ＭＦＰプロファイルの各層のクラス構成例を示す図である。
【図５】ＪＰＳの概念モデルを示す図である。
【図６】プレゼンテーション層がＪＰＳを包含する例を示す図である。
【図７】プレゼンテーション層がＪＰＳを包含する場合のアプリケーションとＪＳＰとの関係を示す図である。
【図８】ＪＰＳがＭＦＰサービス抽象モデルを継承する例を示す図である。
【図９】アプリケーションが複合機にジョブを実行させるための処理手順を説明するためのシーケンス図である。
【図１０】アプリケーションが複合機にジョブを実行させるために実装が必要とされる手順を示すフローチャートである。
【図１１】ドメインロジック層における処理手順を説明するためのシーケンス図である。
【図１２】ドメインロジック層における処理手順を説明するためのシーケンス図である。
【図１３】ドメインロジック層における処理手順を説明するためのシーケンス図である。
【図１４】コピージョブを実行する際のドメインロジック層における処理手順を説明するための汎用的なフローチャートである。
【図１５】ソート指定の場合にインスタンス化されるドメインロジック層のオブジェクトの構成例を示す図である。
【図１６】スタック用の読み取り処理を説明するためのフローチャートである。
【図１７】スタック指定の場合にインスタンス化されるドメインロジック層のオブジェクトの構成例を示す図である。
【図１８】その他の読み取り処理を説明するためのフローチャートである。
【図１９】ソート及びスタックが指定されていない場合にインスタンス化されるドメインロジック層のオブジェクトの構成例を示す図である。
【図２０】設定値クラスと成果物オブジェクト等との関係を示す図である。
【図２１】コピージョブを実行する際のドメインロジック層における処理手順を説明するための汎用的な第二のフローチャートである。
【図２２】スタック用の読み取り処理を説明するための第二のフローチャートである。
【図２３】その他の読み取り処理を説明するための第二のフローチャートである。
【符号の説明】
【０１２１】
１          複合機
２０        ＯＳ
２１        ドライバプログラム
３０        ＪＶＭ
３１        ＣＤＣ
３２        Ｆｏｕｎｄａｔｉｏｎ  Ｐｒｏｆｉｌｅ
４０        ＭＦＰプロファイル
４１        プレゼンテーション層
４２        ドメインロジック層
４３        サービス層
５０        ネイティブモジュール
６０        アプリケーション
６１        プリントアプリ
６２        コピーアプリ
６３      スキャンアプリ
６４        ＦＡＸアプリ
１０１      コントローラ
１０２      オペレーションパネル
１０３      ファクシミリコントロールユニット
１０４      撮像部
１０５      印刷部
１１１      ＣＰＵ
１１２      ＡＳＩＣ
１２１      ＮＢ
１２２      ＳＢ
１３１      ＭＥＭ−Ｐ
１３２      ＭＥＭ−Ｃ
１３３      ＨＤＤ
１３４      メモリカードスロット
１３５      メモリカード
１４１      ＮＩＣ
１４２      ＵＳＢデバイス
１４３      ＩＥＥＥ１３９４デバイス
１４４      セントロニクスデバイス
４１１      サービス検索クラス
４１２      入出力形式クラス
４１３      要求属性値群クラス
４１４      サービスクラス
４１５      ドキュメントクラス
４１６      ジョブクラス
４２１      要求管理部
４２２      Ｉ／Ｏファンクション部
４２３      Ｉ／Ｏリソース管理部
４２４      システム管理部
４１４１      サービス属性値群クラス
４１５１      ドキュメント属性値群クラス
４１６１    ジョブ属性値群クラス
４２１１    成果物クラス
４２２１    入力物クラス
４２２２    原画像クラス
４２２３    出力物クラス
４２２４    出力要素クラス
４２２５    出力束クラス
４２３１    入力リソースクラス
４２３２    出力リソースクラス
４２４１    機内監視クラス
【図１】
2010068040.tif 000003
【図２】
2010068040.tif 000004
【図３】
2010068040.tif 000005
【図４】
2010068040.tif 000006
【図５】
2010068040.tif 000007
【図６】
2010068040.tif 000008
【図７】
2010068040.tif 000009
【図８】
2010068040.tif 000010
【図９】
2010068040.tif 000011
【図１０】
2010068040.tif 000012
【図１１】
2010068040.tif 000013
【図１２】
2010068040.tif 000014
【図１３】
2010068040.tif 000015
【図１４】
2010068040.tif 000016
【図１５】
2010068040.tif 000017
【図１６】
2010068040.tif 000018
【図１７】
2010068040.tif 000019
【図１８】
2010068040.tif 000020
【図１９】
2010068040.tif 000021
【図２０】
2010068040.tif 000022
【図２１】
2010068040.tif 000023
【図２２】
2010068040.tif 000024
【図２３】
2010068040.tif 000025