(57)【要約】【課題】他の構成に対して修正を行うことなく、アプリケーションの追加又は削除を容易に実現する。【解決手段】複合機が、アプリケーション毎に異なる設定で処理を行う複数のアプリケーションを有するアプリケーション層と、アプリケーションに共通の設定を有するジョブであって、複数のアプリケーションのそれぞれに対して処理の要求を受け付けたことを示す複数のユーザジョブを一括管理し、一括管理している複数のユーザジョブに基づいて、当該ユーザジョブが処理の実行を要求しているアプリケーションに対して処理の実行を指示するアプリケーションコントロール層と、を備える。【選択図】        図１
2008233948.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション毎に異なる設定で行われる処理を示すアプリ処理を行う複数のアプリケーションと、
前記アプリケーションに共通の設定を有するジョブであって、前記複数のアプリケーションのそれぞれに対する前記アプリ処理の要求を受け付けたことを示す複数のジョブを一括管理し、一括管理している複数の前記ジョブに基づいて、当該ジョブで受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示するアプリケーションコントロール部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記アプリケーションコントロール部は、前記複数のアプリケーションのいずれに対しても共通した命令で、前記アプリ処理の実行を指示し、
前記複数のアプリケーションそれぞれは、前記共通した命令に従って前記アプリ処理を行うこと、
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アプリケーションコントロール部は、前記複数のアプリケーションのそれぞれを識別するアプリケーション情報を保持するアプリケーション管理情報を備え、前記アプリケーション管理情報で保持されているアプリケーション情報で識別されるアプリケーションに対して前記共通した命令で指示すること、
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記複数のアプリケーションのそれぞれは、前記アプリ処理を実行するために受け付けた設定であって、アプリケーション毎に異なる動作条件を含むアプリケーションジョブを保持し、
前記アプリケーションコントロール部は、前記複数のアプリケーションのそれぞれが保持する前記アプリケーションジョブと関連付けされた前記ジョブを一括管理すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記複数のアプリケーションのそれぞれは、前記アプリ処理の要求を受け付けた場合に前記アプリケーションジョブを生成し、前記アプリケーションコントロール部に対して前記ジョブの登録を要求し、
前記アプリケーションコントロール部は、アプリケーションから前記ジョブの登録の要求を受け付けた場合に前記ジョブを生成し、生成した前記ジョブと登録を要求した前記アプリケーションが保持する前記アプリケーションジョブとを対応付けること、
を特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記アプリケーションコントロール部は、一括管理された前記ジョブをキューに格納し、前記キュー内に配置された前記ジョブの順序に従って、各ジョブが受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示すること、
を特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記アプリケーションコントロール部は、前記前記キュー内に配置されている前記ジョブの順序を変更するスケジューリング部を備えること、
を特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記アプリケーションに対してハードウェアを制御するリソースを提供する共有サービス部を、さらに備えることを特徴とする請求項１乃至７のいずれか一つに記載の情報処理装置。
【請求項９】
前記アプリケーションは、前記共有サービス部に対して、リソースの使用要求を、当該アプリケーションを使用しているユーザ情報と共に出力し、
前記共有サービス部は、ユーザがリソースを使用する権限を有するか否かを管理する権限管理情報を保持し、前記アプリケーションからリソースの使用の要求を受け付けた場合に、前記権限管理情報を用いて前記ユーザ情報で識別されるユーザが使用可能か否かを判断する権限判断部を備え、使用可能と判断された場合に、前記アプリケーションに対してリソースを提供すること、
を特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記アプリケーション部に格納されたアプリケーションは、アプリケーション毎に異なるアプリ処理を実行する論理を示す処理情報と、当該処理情報による処理を実行する際に当該情報処理装置の他の構成を使用するインターフェースとを備えること、
を特徴とする請求項１乃至９のいずれか一つに記載の情報処理装置。
【請求項１１】
アプリケーション毎に異なる設定で行われる処理を示すアプリ処理を行う複数のアプリケーションで処理を行う手段として、コンピュータを機能させるプログラムであって、
前記アプリケーションに共通の設定を有するジョブであって、前記複数のアプリケーションのそれぞれに対する前記アプリ処理の要求を受け付けたことを示す複数のジョブを一括管理し、一括管理している複数の前記ジョブに基づいて、当該ジョブで受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示するアプリケーションコントロール手段と、
としてコンピュータを機能させることを特徴とする情報処理プログラム。
【請求項１２】
前記アプリケーションコントロール手段は、前記複数のアプリケーションのいずれに対しても共通した命令で、前記アプリ処理を行うことを指示すること、
を特徴とする請求項１１に記載の情報処理プログラム。
【請求項１３】
前記アプリケーションコントロール手段は、前記複数のアプリケーションのそれぞれを識別するアプリケーション情報を保持するアプリケーション管理情報を用いて、前記アプリケーション管理情報で保持されているアプリケーション情報で識別されるアプリケーションに対して前記共通した命令で指示すること、
を特徴とする請求項１２に記載の情報処理プログラム。
【請求項１４】
前記アプリケーションコントロール手段は、前記複数のアプリケーションのそれぞれが保持し且つアプリケーション毎に異なる動作条件を含むアプリケーションジョブと、関連付けされた前記ジョブを一括管理すること、
を特徴とする請求項１１に記載の情報処理プログラム。
【請求項１５】
前記アプリケーションコントロール手段は、前記アプリケーションから前記ジョブの登録の要求を受け付けた場合に前記ジョブを生成し、生成した前記ジョブと登録を要求した前記アプリケーションが保持する前記アプリケーションジョブとを対応付けること、
を特徴とする請求項１４に記載の情報処理プログラム。
【請求項１６】
前記アプリケーションコントロール手段は、一括管理された前記ジョブをキューに格納し、前記キュー内に配置された前記ジョブの順序に従って、各ジョブが受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示すること、
を特徴とする請求項１４又は１５に記載の情報処理プログラム。
【請求項１７】
前記アプリケーションコントロール手段は、前記前記キュー内に配置されている前記ジョブの順序を変更するスケジューリング手段を備えること、
を特徴とする請求項１６に記載の情報処理プログラム。
【請求項１８】
前記アプリケーションコントロール手段により処理の実行が指示された前記アプリケーションに対してハードウェアを制御するリソースを提供する共有サービス手段を、さらに備えることを特徴とする請求項１１乃至１７のいずれか一つに記載の情報処理プログラム。
【請求項１９】
前記共有サービス手段は、前記アプリケーションからリソースの使用の要求を、利用者を識別する利用者情報と共に受け付けた場合に、利用者情報毎にリソースを使用する権限を有するか否かを管理する権限管理情報を用いて、リソースが使用可能か否か判断する権限判断手段を備え、使用可能と判断された場合に、前記アプリケーションに対してリソースを提供すること、
を特徴とする請求項１８に記載の情報処理プログラム。
【請求項２０】
前記アプリケーションは、アプリケーション毎に異なる処理を実行する論理を示す処理情報と、当該処理情報による処理を実行する際に当該情報処理装置の他の構成を使用するインターフェースとを備えること、
を特徴とする請求項１１乃至１９のいずれか一つに記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを実行させる情報処理装置及び情報処理プログラムに関するものである。
【背景技術】
【０００２】
近年、コンピュータ技術の向上に伴い、様々な機能を一つの装置に格納する傾向にある。このような装置の例として複合機がある。この複合機は、従来筐体で配設されていたプリンタ、コピー、ファクシミリの機能を一つの筐体内に格納している。
【０００３】
複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プンタ、コピーおよびファクリミリ装置にそれぞれ対応する３種類のソフトウェアを備え、これらソフトウェアの切り替えにより、プリンタ、コピーまたはファクリミリ装置として動作している。
【０００４】
しかしながら、かかる複合機内にプリンタ、コピーおよびファクリミリ装置に対応するソフトウェア（専用ＯＳを含む）をそれぞれ別個に設けることとしたのでは、各ソフトウェアの開発に多大の時間を要する。
【０００５】
そこで、特許文献１に記載された技術では、複合機において、オペレーティングシステムと、オペレーティングシステム上で動作し、複数のアプリケーションからアクセスされ、当該複数のアプリケーションが共通して利用されるプログラムを備えることとしている。これにより、複合機に搭載されるソフトウェアを効率的に開発することが可能となった。
【０００６】
【特許文献１】特開２００２−８４３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された技術は、既に使用されている技術のうち共有化可能だった部分を共通するプログラムとして設計しただけである。このため、特許文献１に記載された技術を用いて設計された複合機に対して、新機能を追加するために新たなアプリケーションを開発する場合、共通化されたプログラムに対して修正を行う必要があり、上述した効率的に開発するというメリットを教授できないという問題がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、アプリケーションの追加又は削除を容易に実現する情報処理装置及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、アプリケーション毎に異なる設定で行われる処理を示すアプリ処理を行う複数のアプリケーションと、前記アプリケーションに共通の設定を有するジョブであって、前記複数のアプリケーションのそれぞれに対する前記アプリ処理の要求を受け付けたことを示す複数のジョブを一括管理し、一括管理している複数の前記ジョブに基づいて、当該ジョブで受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示するアプリケーションコントロール部と、を備えることを特徴とする。
【００１０】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記アプリケーションコントロール部は、前記複数のアプリケーションのいずれに対しても共通した命令で、前記アプリ処理の実行を指示し、前記複数のアプリケーションそれぞれは、前記共通した命令に従って前記アプリ処理を行うこと、を特徴とする。
【００１１】
また、請求項３にかかる発明は、請求項２にかかる発明において、前記アプリケーションコントロール部は、共通した命令を、前記複数のアプリケーションのそれぞれに対して指示し、前記複数のアプリケーションそれぞれは、前記共通した命令により各処理を行うこと、を特徴とする。
【００１２】
また、請求項４にかかる発明は、請求項１にかかる発明において、前記複数のアプリケーションのそれぞれは、前記アプリ処理を実行するために受け付けた設定であって、アプリケーション毎に異なる動作条件を含むアプリケーションジョブを保持し、前記アプリケーションコントロール部は、前記複数のアプリケーションのそれぞれが保持する前記アプリケーションジョブと関連付けされた前記ジョブを一括管理すること、を特徴とする。
【００１３】
また、請求項５にかかる発明は、請求項４にかかる発明において、前記複数のアプリケーションのそれぞれは、前記アプリ処理の要求を受け付けた場合に前記アプリケーションジョブを生成し、前記アプリケーションコントロール部に対して前記ジョブの登録を要求し、前記アプリケーションコントロール部は、アプリケーションから前記ジョブの登録の要求を受け付けた場合に前記ジョブを生成し、生成した前記ジョブと登録を要求した前記アプリケーションが保持する前記アプリケーションジョブとを対応付けること、を特徴とする。
【００１４】
また、請求項６にかかる発明は、請求項４又は５にかかる発明において、前記アプリケーションコントロール部は、一括管理された前記ジョブをキューに格納し、前記キュー内に配置された前記ジョブの順序に従って、各ジョブが受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示すること、を特徴とする。
【００１５】
また、請求項７にかかる発明は、請求項６にかかる発明において、前記アプリケーションコントロール部は、前記前記キュー内に配置されている前記ジョブの順序を変更するスケジューリング部を備えること、を特徴とする。
【００１６】
また、請求項８にかかる発明は、請求項１乃至７のいずれか一つにかかる発明において、前記アプリケーションに対してハードウェアを制御するリソースを提供する共有サービス部を、さらに備えることを特徴とする。
【００１７】
また、請求項９にかかる発明は、請求項８にかかる発明において、前記アプリケーションは、前記共有サービス部に対して、リソースの使用要求を、当該アプリケーションを使用しているユーザ情報と共に出力し、前記共有サービス部は、ユーザがリソースを使用する権限を有するか否かを管理する権限管理情報を保持し、前記アプリケーションからリソースの使用の要求を受け付けた場合に、前記権限管理情報を用いて前記ユーザ情報で識別されるユーザが使用可能か否かを判断する権限判断部を備え、使用可能と判断された場合に、前記アプリケーションに対してリソースを提供すること、を特徴とする。
【００１８】
また、請求項１０にかかる発明は、請求項１乃至９のいずれか一つにかかる発明において、前記アプリケーション部に格納されたアプリケーションは、アプリケーション毎に異なるアプリ処理を実行する論理を示す処理情報と、当該処理情報による処理を実行する際に当該情報処理装置の他の構成を使用するインターフェースとを備えること、を特徴とする。
【００１９】
また、請求項１１にかかる発明は、アプリケーション毎に異なる設定で行われる処理を示すアプリ処理を行う複数のアプリケーションで処理を行う手段として、コンピュータを機能させるプログラムであって、前記アプリケーションに共通の設定を有するジョブであって、前記複数のアプリケーションのそれぞれに対する前記アプリ処理の要求を受け付けたことを示す複数のジョブを一括管理し、一括管理している複数の前記ジョブに基づいて、当該ジョブで受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示するアプリケーションコントロール手段と、としてコンピュータを機能させることを特徴とする。
【００２０】
また、請求項１２にかかる発明は、請求項１１にかかる発明において、前記アプリケーションコントロール手段は、前記複数のアプリケーションのいずれに対しても共通した命令で、前記アプリ処理を行うことを指示すること、を特徴とする。
【００２１】
また、請求項１３にかかる発明は、請求項１２にかかる発明において、前記アプリケーションコントロール手段は、前記複数のアプリケーションのそれぞれを識別するアプリケーション情報を保持するアプリケーション管理情報を用いて、前記アプリケーション管理情報で保持されているアプリケーション情報で識別されるアプリケーションに対して前記共通した命令で指示すること、を特徴とする。
【００２２】
また、請求項１４にかかる発明は、請求項１１にかかる発明において、前記アプリケーションコントロール手段は、前記複数のアプリケーションのそれぞれが保持し且つアプリケーション毎に異なる動作条件を含むアプリケーションジョブと、関連付けされた前記ジョブを一括管理すること、を特徴とする。
【００２３】
また、請求項１５にかかる発明は、請求項１４にかかる発明において、前記アプリケーションコントロール手段は、前記アプリケーションから前記ジョブの登録の要求を受け付けた場合に前記ジョブを生成し、生成した前記ジョブと登録を要求した前記アプリケーションが保持する前記アプリケーションジョブとを対応付けること、を特徴とする。
【００２４】
また、請求項１６にかかる発明は、請求項１４又は１５にかかる発明において、前記アプリケーションコントロール手段は、一括管理された前記ジョブをキューに格納し、前記キュー内に配置された前記ジョブの順序に従って、各ジョブが受け付けた前記アプリ処理を実行可能な前記アプリケーションに対して、当該ジョブが受け付けた前記アプリ処理の実行を指示すること、を特徴とする。
【００２５】
また、請求項１７にかかる発明は、請求項１６にかかる発明において、前記アプリケーションコントロール手段は、前記前記キュー内に配置されている前記ジョブの順序を変更するスケジューリング手段を備えること、を特徴とする。
【００２６】
また、請求項１８にかかる発明は、請求項１１乃至１７のいずれか一つにかかる発明において、前記アプリケーションコントロール手段により処理の実行が指示された前記アプリケーションに対してハードウェアを制御するリソースを提供する共有サービス手段を、さらに備えることを特徴とする。
【００２７】
また、請求項１９にかかる発明は、請求項１８にかかる発明において、前記共有サービス手段は、前記アプリケーションからリソースの使用の要求を、利用者を識別する利用者情報と共に受け付けた場合に、利用者情報毎にリソースを使用する権限を有するか否かを管理する権限管理情報を用いて、リソースが使用可能か否か判断する権限判断手段を備え、使用可能と判断された場合に、前記アプリケーションに対してリソースを提供すること、を特徴とする。
【００２８】
また、請求項２０にかかる発明は、請求項１１乃至１９のいずれか一つにかかる発明において、前記アプリケーションは、アプリケーション毎に異なる処理を実行する論理を示す処理情報と、当該処理情報による処理を実行する際に当該情報処理装置の他の構成を使用するインターフェースとを備えること、を特徴とする。
【発明の効果】
【００２９】
請求項１〜７にかかる発明によれば、アプリケーションコントロール部を変更することなく、アプリケーションの追加又は削除できるという効果を奏する。
【００３０】
また、請求項８〜９にかかる発明によれば、アプリケーションが利用するリソースを共有サービス部が提供することで、アプリケーション部のアプリケーションの冗長性を抑止できるという効果を奏する。
【００３１】
また、請求項１０にかかる発明によれば、アプリケーションが処理情報とインターフェースとを備えているので、アプリケーションの冗長性を抑止できるという効果を奏する。
【００３２】
請求項１１〜１７にかかる発明によれば、アプリケーションコントロール部を変更することなく、アプリケーションの追加又は削除できるという効果を奏する。
【００３３】
また、請求項１８〜１９にかかる発明によれば、アプリケーションが利用するリソースを共有サービス部が提供することで、アプリケーション部のアプリケーションの冗長性を抑止できるという効果を奏する。
【００３４】
また、請求項２０にかかる発明によれば、アプリケーションが処理情報とインターフェースとを備えているので、アプリケーションの冗長性を抑止できるという効果を奏する。
【発明を実施するための最良の形態】
【００３５】
以下に添付図面を参照して、この発明にかかる情報処理装置及び情報処理プログラムの最良な実施の形態を詳細に説明する。
【００３６】
本発明の一実施の形態として、情報処理装置であってコピー機能、ファクシミリ（ＦＡＸ）機能、プリント機能、スキャナ機能及び入力画像（スキャナ機能による読み取り原稿画像やプリンタあるいはＦＡＸ機能により入力された画像）を配信する機能等を複合したいわゆるＭＦＰ（Multi Function Peripheral）と称される複合機１００に適用した例を示す。
【００３７】
図１は、本実施の形態にかかる複合機１００の構成を示すブロック図である。本図に示すように複合機１００の内部は、ユーザインターフェース層１０１と、アプリケーションコントロール層１０２と、アプリケーション層１０３と、アプリケーション共有サービス層１０４と、共有メカニズム１０５と、ＯＳ１０６と、白黒ラインプリンタ１０７、カラーラインプリンタ１０８、スキャナ又はファクシミリ等のその他のハードウェア群１０９を備えている。
【００３８】
ここで、図１に示した複合機１００が、かかる階層構造をとるに至った経緯について、図２６および図２７を用いて説明する。図２６は、従来の複合機２６００に搭載されているソフトウェア構成を示す説明図である。
【００３９】
図２６に示すように、従来の複合機２６００は、白黒ラインプリンタ２６０１と，カラーラインプリンタ２６０２と，スキャナやファクシミリなどのハードウェア群２６０３と，ソフトウェア群２６１０とを有するように構成される。また、ソフトウェア群２６１０はアプリケーション２６３０とサービス層２６２０とを有するように構成される。
【００４０】
サービス層２６２０は、アプリケーション２６３０からの処理要求を解釈してハードウェア資源の獲得要求を発生するコントロールサービス２６２３と、１つ以上のハードウェア資源の管理を行ってコントロールサービスからの獲得要求を調停するリソースマネージャー２６２２と、オペレーティングシステム（以下、ＯＳという）２３２１とを有するように構成されている。
【００４１】
そして、サービス層２６２０は予め定義されている関数によりアプリケーション２６３０からの処理要求を受信可能とするアプリケーションプログラムインターフェース（以下、ＡＰＩという）を有するように構成されている。
【００４２】
ＯＳ２６２１は、ユニックス（ＵＮＩＸ（登録商標））などのオペレーティングシステムであって、サービス層２６２０およびアプリケーション２６３０の各ソフトウェアをプロセスとして並列実行する。
【００４３】
また、アプリケーション２６３０は、プリンタ，コピー，送信などの画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うものである。アプリケーション２６３０は、ページ記述言語（ＰＤＬ，ＰＣＬ）およびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ２６１１と，コピー用アプリケーションであるコピーアプリ２６１２と，ネットワーク送信用アプリケーションである送信アプリ２６１３とを有している。そして、従来の複合機２６００におけるソフトウェア群２６１０内のデータ送受信について説明する。
【００４４】
図２７は、従来の複合機２６００におけるサービス層２６２０及び各アプリケーションを示した概念図である。図２７に示すようにコピーアプリ２６１２は、アプリケーションコントロール部２７０１と、アプリケーションロジック部２７０２と、アプリケーション使用サービス部２７０３とを備えている。
【００４５】
また、プリンタアプリ２６１１は、アプリケーションコントロール部２７１１と、アプリケーションロジック部２７１２と、アプリケーション使用サービス部２７１３とを備え、送信アプリ２６１３は、アプリケーションコントロール部２７２１と、アプリケーションロジック部２７２２と、アプリケーション使用サービス部２７２３とを備えている。なお、プリンタアプリ２６１１及び送信アプリ２６１３の行う処理はコピーアプリ２６１２と同様なので省略する。
【００４６】
アプリケーションコントロール部２７０１は、当該アプリケーションをコントロールする。そして、アプリケーションロジック部２７０２は、当該コピーを行うためのロジック本体が格納されている。このアプリケーション特有のロジックをアプリケーションの内部処理とする。また、アプリケーション使用サービス部２７０３は、コピーを行うためのリソースを管理する共に、サービス層２６２０との間のインターフェースが実装されている。これら、アプリケーションコントロール部２７０１及びアプリケーション使用サービス部２７０３は、サービス層２６２０と間でデータの送受信を行うためにサービス層２６２０との依存関係が高くなる。
【００４７】
また、アプリケーションロジック部２７０２は、ユーザから受け付けたコピー処理をコピーＪＯＢとして保持しており、当該コピーＪＯＢに従ってコピー処理をアプリケーション使用サービス部２７０３に対して要求する。
【００４８】
このように従来の複合機２６００は、アプリケーション毎に備えられたアプリケーションロジック部でジョブを管理し、各アプリケーションのアプリケーションロジック部間におけるジョブの順番を制御していない。このため、例えばコピーアプリ２６１２に対してコピー処理を複数回要求した後、プリンタアプリ２６１１にプリンタ処理を要求する場合、コピー処理よりプリンタ処理を優先して実行する等の要求を行うことができない。
【００４９】
さらに、複合機２６００が受け付けた全てのジョブを停止させる場合、サービス層２６２０から、各アプリケーションに対してジョブの受け付け及びジョブの実行を停止するように指示を行う必要がある。また、複合機２６００が受け付けたジョブの一覧を表示する場合も、各アプリケーションがジョブを保持しているので、各アプリケーションに対してジョブを送信するよう要求する必要があると共に、各アプリケーションはジョブの一覧をサービス層２６２０が認識可能なフォーマットに変更する必要がある。
【００５０】
また、複合機２６００の各アプリケーションでは、アプリケーション使用サービス部がアプリケーションで使用するリソースを管理している。管理しているリソースの例としては、アクセス制御等がある。つまり、近年、セキュリティへの関心の向上に伴い、利用者がハードウェアリソースを使用できるか否かをチェックしたいという要求が向上している。そこで、各アプリケーションは、利用者から処理の要求を受け付けた場合にリソースを使用可能であるか否かをアプリケーション使用サービス部でチェックすることとなった。しかしながら、このようなチェックは全てのアプリケーションに実装する必要が生じるため開発コストが増大していた。なお、本実施の形態では、ハードウェアリソースとは、ハードウェアを制御するために用いられるソフトウェアリソースとするが、他の例としてはハードウェア等であっても良い。
【００５１】
また、複合機２６００においては、サービス層２６２０は、各アプリケーションのアプリケーションコントロール部及びアプリケーション使用サービス部と情報を密に送受信を行っている等、各アプリケーションとの間の依存度が高い。このため、新機能として新しいアプリケーションを複合機２６００に提供する場合に、サービス層２６２０に対しても修正を加える必要があり、この修正が開発工数の増加につながっていた。換言すると、再利用による開発工数削減のメリットを、新機能開発においては享受できないという問題点が生じていた。
【００５２】
これは、複合機２６００では、各アプリケーションの共通するＡＰＩをサービス層で共有化を実現しただけで、切り分けが機能拡張を前提としたものでは無かったことが原因である。このため、複合機２６００では、既存リソースを再利用して，既存アプリケーションの開発効率を向上させることには成功したが、新機能又は新たなソリューションへの対応では開発工数を削減することができないという問題が生じていた。
【００５３】
なお、このような問題は、複合機に限らず、画像処理を行うアプリケーションを複数搭載可能とした画像情報処理装置に共通の問題である。
【００５４】
そこで、本実施の形態にかかる複合機１００は、図１で示す構成を備えることとした。次に、複合機１００の各構成について説明する。白黒ラインプリンタ１０７、カラーラインプリンタ１０８、スキャナ又はファクシミリ等のその他のハードウェア群１０９を備えている。
【００５５】
ユーザインターフェース層１０１は、図示しない表示部にデータの表示処理や、利用者による入力操作の受付処理を行う。そして、ユーザインターフェース層１０１は、入力操作で受け付けた情報をアプリケーションコントロール層１０２若しくはアプリケーション層１０３に出力する、又はアプリケーションコントロール層１０２若しくはアプリケーション層１０３から入力された情報を表示部に表示する。
【００５６】
アプリケーション層１０３は、プリンタ、コピー、送信などの複合機１００が備える機能を実行するソフトウェアを格納する。アプリケーション層１０３は、コピー用アプリケーションであるコピーアプリ１２１と、ページ記述言語（ＰＤＬ，ＰＣＬ）およびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１２２と、ネットワーク送信用アプリケーションである送信アプリ１２３とを有している。
【００５７】
アプリケーション層１０３の各アプリケーションは、アプリケーションコントロール層１０２の制御下に置くために、各アプリケーションの実装にあたり、所定のルール（Ｉ／Ｆ）が設けられている。これにより、アプリケーションコントロール層１０２いずれのアプリケーションに対しても制御を行うことが可能となる。なお、所定のルールについては後述する。
【００５８】
次に、コピーアプリ１２１を例に、アプリケーション内のソフトウェア構成について説明する。図２は、コピーアプリ１２１のソフトウェア構成を示した図である。図２に示すように、コピーアプリ１２１は、ユーザインターフェース２０１と、処理ロジック２０２とを備える。処理ロジック２０２は、コピーを行うためのロジック本体が格納されている。また、後述するアプリケーションコントロール層１０２からの処理の実行の指示は、処理ロジック２０２に対して行われる。
【００５９】
ユーザインターフェース２０１は、処理ロジック２０２を使用するためのユーザインターフェースとする。また、当該ユーザインターフェース２０１には、表示部でコピー処理に必要な画面を表示するための情報も含んでいる。このように、処理ロジック２０２の追加時に当該処理ロジックを使用するためのユーザインターフェース２０１も追加できる。
【００６０】
これにより、各アプリケーションは、他のモジュールとの間の関連性が低減する。これにより、アプリケーションの追加及び削除が容易になる。
【００６１】
また、処理ロジック２０２は、ユーザインターフェース層１０１を介して処理の実行を受け付けた場合、当該処理に該当するアプリケーションＪＯＢを生成する。このアプリケーションＪＯＢは、利用者が処理を行うために設定した動作条件を保持しているものとする。
【００６２】
その後、処理ロジック２０２は、生成したアプリケーションＪＯＢと関連付けるユーザＪＯＢの生成を、アプリケーションコントロール層１０２に要求する。なお、アプリケーションＪＯＢ及びユーザＪＯＢについては後述する。また、本実施の形態ではコピーアプリ１２１を例にアプリケーションの構成について説明したが、他のアプリケーションについても同様の構成を備えているものとして説明を省略する。
【００６３】
アプリケーションコントロール層１０２は、アプリケーション管理テーブル１１１と、ユーザＪＯＢキュー１１２と、スケジューリング部１１３とを備え、アプリケーション層１０３に含まれる各アプリケーションのコントロールを行う。例えば、アプリケーションコントロール層１０２は、各アプリケーションが生成するジョブのスケジューリング、ジョブ受付の一括禁止、ジョブの一覧表示等をシステム全体で一括制御する。
【００６４】
図３は、アプリケーション管理テーブル１１１のテーブル構造の例を示した図である。図３に示すように、アプリケーション管理テーブル１１１は、アプリケーション層１０３に追加されたアプリケーションのアプリケーション識別情報を保持している。これにより、アプリケーション層１０３は、アプリケーション層１０３に格納されたアプリケーションを特定し、コントロールすることができる。そして、アプリケーション層１０３にアプリケーションが追加されると、アプリケーション管理テーブル１１１に追加されたアプリケーションを識別するアプリケーション識別情報が追加される。これにより、アプリケーションコントロール層１０２は、追加されたアプリケーションを認識することができる。
【００６５】
ユーザＪＯＢキュー１１２は、ユーザから受け付けた要求単位（ユーザＪＯＢ）を管理するキューとする。図４は、アプリケーション層１０３内のユーザＪＯＢキュー１１２と、アプリケーション層１０３の各アプリケーションが保持するアプリケーションＪＯＢとの関係を示した概要図である。図４に示すように、ユーザＪＯＢキュー１１２内のユーザＪＯＢと、アプリケーションコントロール層１０２の各アプリケーションが保持するアプリケーションＪＯＢ（例えば、コピーＪＯＢ、プリンタＪＯＢ、送信ＪＯＢ又はＸＸＪＯＢが該当する）とが関連付けられている。
【００６６】
また、ユーザＪＯＢは、ユーザから受け付けた処理の要求を示したものであり、各アプリケーションに依存する設定（例えば動作条件）等を含まないジョブとする。つまり、ユーザＪＯＢは、各アプリケーションとの依存性が非常に低いジョブとなる。
【００６７】
そして、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２に格納されたユーザＪＯＢを先頭から実行する。これにより、実行されたユーザＪＯＢと関連付けられたアプリケーションＪＯＢが呼び出され、当該アプリケーションＪＯＢによる処理が実行される。
【００６８】
つまり、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２でユーザＪＯＢを保持し、当該ユーザＪＯＢに対して実行を制御することで、アプリケーション層１０３内の全てのアプリケーションの実行を制御することができる。
【００６９】
図５は、ユーザＪＯＢと、コピーＪＯＢ間で行われる制御を示した説明図である。図５に示すように、ユーザＪＯＢは、コピーＪＯＢに対して実行を指示する。そして、コピーＪＯＢが実行された後、進捗をユーザＪＯＢに対して通知する。これにより、ユーザＪＯＢは、アプリケーションＪＯＢの実行を制御できると共に、実行中の進捗を管理することができる。次に、アプリケーションコントロール層１０２からアプリケーションの実行制御に用いる命令について説明する。
【００７０】
図６は、アプリケーションコントロール層１０２がアプリケーション層１０３の各アプリケーションの制御に利用可能な命令を示した説明図である。図６に示すようにアプリケーション層１０３の各アプリケーションは、所定のルール（Ｉ／Ｆ）として、“実行する（）”、“中止する（）”、“中断する（）”及び“再開する（）”の４個のコマンドを実行可能に設計されている。
【００７１】
これにより、本実施の形態にかかるアプリケーション層１０３は、アプリケーション層１０３内のいずれのアプリケーションであるかを問わず、統一されたコマンドを用いて実行を制御する。つまり、アプリケーションコントロール層１０２は、どのアプリケーションに対しても実行を制御することができる。
【００７２】
よって、アプリケーション層１０３内のアプリケーションの追加／削除が行われた場合でも、アプリケーションコントロール層１０２が実行制御に用いるコマンドに変更が生じないこととなり、アプリケーションの追加／削除を容易に行うことができる。
【００７３】
次に、本実施の形態のユーザＪＯＢとコピーＪＯＢとのクラス構成について説明する。図７は、複合機１００で用いられるユーザＪＯＢとコピーＪＯＢとのクラス構成を示した図である。図７に示すように、アプリケーションコントロール層１０２はユーザＪＯＢクラス７１０を、コピーアプリ１２１はコピーＪＯＢクラス７２０を有する。なお、他のアプリケーションも同様にＪＯＢクラスを有するが、コピーＪＯＢクラス７２０と構成が同じなので説明を省略する。
【００７４】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、ユーザＪＯＢクラス７１０を示す矩形の名前区画は、かかるクラスのクラス名が「ユーザＪＯＢ」であることを示し、属性区画は、かかるクラスが有する属性が、「作成日時」と「作成者」と「ＪＯＢ状態」と「優先度」であることを示し、操作区画は、かかるクラスが有する操作が、「実行する（）」と「中止する（）」と「中断する（）」と「再開する（）」であることを示している。
【００７５】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、アプリケーション層１０３又はコピーアプリ１２１のプログラムの一部として含まれている。そして、ユーザから処理の要求を受け付けると、各クラスは図示しない記憶部の所定領域に実体化され、属性区画に含まれる各データ（属性）に受け付けた処理に適切な値が設定される。
【００７６】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。
【００７７】
次に、図７に示した各クラスについて説明する。ユーザＪＯＢクラス７１０は、ユーザＪＯＢの情報を管理するクラスである。具体的には、このユーザＪＯＢクラス７１０は、属性として、作成日時７１０ａと、作成者７１０ｂと、ＪＯＢ状態７１０ｃと、優先度７１０ｄとを有し、操作として、実行する（）７１０ｅと、中止する（）７１０ｆと、中断する（）７１０ｇと、再開する（）７１０ｈとを有する。このユーザＪＯＢクラス７１０が有する属性は、アプリケーション層１０３の各アプリケーションに共通の設定の例を示したものである。これらユーザＪＯＢクラス７１０が有する属性は、各アプリケーションに依存していない属性であればどのような属性でも良い。そして、ユーザＪＯＢクラス７１０がこのような属性を有することで、アプリケーションの追加又は削除が行われた場合でも、修正が行われないものとなる。
【００７８】
作成日時７１０ａは、ユーザから処理を受け付けた日時を保持する。作成者７１０ｂは、処理を行ったユーザＩＤを保持する。ＪＯＢ状態７１０ｃは、ユーザＪＯＢの状態を保持する。なお、ＪＯＢ状態７１０ｃの詳細については後述する。優先度７１０ｄは当該ＪＯＢによる処理を実行するために利用者に設定された優先度を保持する。
【００７９】
実行する（）７１０ｅは、上述したＪＯＢ状態７１０ｃを変更すると共に、関連付けられたコピーＪＯＢオブジェクトの実行する（）７２０ｃを呼び出す。
【００８０】
中止する（）７１０ｆは、上述したＪＯＢ状態７１０ｃを変更すると共に、関連付けられたコピーＪＯＢオブジェクトの中止する（）７２０ｄを呼び出す。
【００８１】
中断する（）７１０ｇは、上述したＪＯＢ状態７１０ｃを変更すると共に、関連付けられたコピーＪＯＢオブジェクトの中断する（）７２０ｅを呼び出す。
【００８２】
再開する（）７１０ｈは、上述したＪＯＢ状態７１０ｃを変更すると共に、関連付けられたコピーＪＯＢオブジェクトの再開する（）７２０ｆを呼び出す。
【００８３】
図８は、各操作により変更されるＪＯＢ状態７１０ｃを示した遷移図である。図８に、示すように、ＪＯＢ状態７１０ｃは、各操作に応じて、“実行中”、“中断中”又は“終了中”に変更される。
【００８４】
図７に戻り、コピーＪＯＢクラス７２０は、コピーＪＯＢの情報を管理するクラスである。具体的には、このコピーＪＯＢクラス７２０は、属性として、アプリＪＯＢ状態７２０ａと、動作条件７２０ｂとを有し、操作として、実行する（）７２０ｃと、中止する（）７２０ｄと、中断する（）７２０ｅと、再開する（）７２０ｆとを有する。
【００８５】
アプリＪＯＢ状態７２０ａは、アプリケーションＪＯＢの状態を保持している。動作条件７２０ｂは、ＪＯＢを実行するために設定された条件等を保持する。
【００８６】
実行する（）７２０ｃは、コピーＪＯＢ（アプリケーションＪＯＢ）による処理を実行する。中止する（）７２０ｄは、実行しているコピーＪＯＢを中止する。
【００８７】
中断する（）７２０ｅは、コピーＪＯＢの実行を中断する。再開する（）７２０ｆは、中断していたコピーＪＯＢの実行を再開する。
【００８８】
そして、ユーザＪＯＢクラス７１０の多重度は「１」、コピーＪＯＢクラス７２０の多重度は「１」であることから、１：１で対応付けられていることが確認できる。
【００８９】
図１に戻り、スケジューリング部１１３は、ユーザＪＯＢキュー１１２に格納されたユーザＪＯＢのスケジューリングを行う。このスケジューリング部１１３によるスケジューリングとしては、ユーザＪＯＢクラス７１０の優先度７１０ｄに従って、ユーザＪＯＢキュー１１２内のユーザＪＯＢの順序の変更を行うことが考えられる。
【００９０】
このように、アプリケーションコントロール層１０２では、ユーザの要求単位（ユーザＪＯＢ）を管理する一方、各アプリケーションでは、実処理を行うアプリケーションＪＯＢを管理している。
【００９１】
また、アプリケーションコントロール層１０２は、ユーザＪＯＢをユーザＪＯＢキュー１１２で一括管理するため、アプリケーションをまたいで特定の処理を優先的に実行することが可能になる。
【００９２】
アプリケーション共有サービス層１０４は、権限管理テーブル１３１と、権限判断部１３２とを備え、複合機１００が保持するリソースであって、各アプリケーションが使用するリソースを一括管理する。また、アプリケーション共有サービス層１０４は、各アプリケーションからの利用要求に対応する制御を保持する。
【００９３】
つまり、上述したように各アプリケーションは処理ロジックとＵＩのみ保持したことに伴い、アプリケーション共有サービス層１０４は、従来は各アプリケーションが保持していた他の機能（例えばセキュリティ機能等）を保持することとなった。
【００９４】
図９は、アプリケーション層１０３とアプリケーション共有サービス層１０４との関係を示した説明図である。図９に示すように、アプリケーション層１０３の各アプリケーションは、アプリケーション共有サービス層１０４が管理しているシステムリソースによるサービスを使用することができる。
【００９５】
このアプリケーション共有サービス層１０４が各アプリケーションに対して提供しているサービスの例としては、ハードウェアリソースに対するアクセス制御がある。次に、アプリケーション共有サービス層１０４が提供していているアクセス制御について説明する。
【００９６】
権限管理テーブル１３１は、ユーザのアクセス制御を行うために必要な情報を保持している。図１０は、権限管理テーブル１３１のテーブル構造を示した図である。図１０に示すように、権限管理テーブル１３１は、ユーザの役割毎に、複合機１００が備える各ハードウェアリソースにアクセス可能か否かを保持している。
【００９７】
権限判断部１３２は、アプリケーションからハードウェアリソースの使用要求を受け付けた場合に、使用要求と共に受け付けた利用者情報を用いて、使用要求を受け付けたハードウェアリソースにアクセス可能な権限を備えているか否か判断する。
【００９８】
図１１は、アプリケーションから受信する利用者情報のクラス構成を示した図である。図１１に示すように、利用者情報クラス１１００は、属性として、名前１１００ａと、パスワード１１００ｂと、役割１１００ｃと、メールアドレス１１００ｄとを有している。
【００９９】
名前１１００ａは、利用要求を行ったユーザＩＤを保持している。パスワード１１００ｂは、当該ユーザＩＤと対応付けられたパスワードを保持している。役割１１００ｃは、当該ユーザの役割（クラス）を保持している。メールアドレス１１００ｄは、当該ユーザのメールアドレスを保持している。
【０１００】
権限判断部１３２は、利用者情報に含まれている当該ユーザの役割に基づいて、利用要求を行ったハードウェアリソースを使用可能であるか否かを、権限管理テーブル１３１に基づいて判断する。このように、アプリケーション共有サービス層１０４内の権限判断部１３２の１箇所のみで、各アプリケーションがハードウェアリソースを使用する際の権限チェックを行うので、保守性が向上する。
【０１０１】
また、アプリケーション共有サービス層１０４は、アクセス制御以外にもアプリケーション間で共有可能な様々なサービスを、各アプリケーションに対して提供する。これにより、アプリケーション層１０３の全てのアプリケーションは、アプリケーション共有サービス層１０４からシステムのリソースを使用することができる。
【０１０２】
共有メカニズム１０５は、複合機１００の電源投入時に最初に実行され、後述するＯＳ１０６や、ユーザインターフェース層１０１、アプリケーションコントロール層１０２、アプリケーション層１０３及びアプリケーション共有サービス層１０４を起動するものである。例えば共有メカニズム１０５は、これらソフトウェア群を図示しないフラッシュメモリから読み出し、読み出した各プログラムをＳＲＡＭまたはＳＤＲＡＭ上に確保したメモリ領域に転送して起動するものである。
【０１０３】
また、共有メカニズム１０５は、上述したユーザインターフェース層１０１、アプリケーションコントロール層１０２、アプリケーション層１０３、アプリケーション共有サービス層１０４に対する例外管理、モニタリングを行う。
【０１０４】
ＯＳ１０６は、ユニックス（ＵＮＩＸ（登録商標））などのオペレーティングシステムであって、アプリケーション層１０３に含まれるアプリケーション、又は共有メカニズム１０５、ユーザインターフェース層１０１、アプリケーションコントロール層１０２若しくはアプリケーション共有サービス層１０３に格納された各ソフトウェアをプロセスとして並列実行する。
【０１０５】
上述した実施形態にかかる複合機１００は、アプリケーションのコントロール部分をアプリケーションコントロール層１０２と、アプリケーションに対する共有サービス部分をアプリケーション共有サービス層１０４として、アプリケーションの内部処理（上述したアプリケーション特有のロジック）と外部処理を分離した。
【０１０６】
これにより、実施形態にかかる複合機１００は、上述した構成を備えることで、アプリケーションで実装すべき箇所が削減できる。また、複合機１００は、アプリケーションの追加／削除がフレームワークに影響を与えない構成とすることが可能となる。したがって、複合機１００では、スキャン、プリント、受信などの様々なアプリケーションの追加／削除を容易に実現することができる。なお、フレームワークとは、アプリケーションの外部処理を示し、アプリケーションコントロール層１０２と、アプリケーション共有サービス層１０３と、共有メカニズム１０５とを含むものとする。
【０１０７】
次に、以上のように構成された本実施の形態にかかるアプリケーション層１０３のアプリケーションにおけるアプリケーション実行要求の受付からアプリケーションによる処理を実行するまでの処理について説明する。図１２は、本実施の形態にかかるアプリケーション層１０３のアプリケーションにおける上述した処理の手順を示すフローチャートである。
【０１０８】
アプリケーション層１０３の任意のアプリケーションは、ユーザインターフェース層１０１からアプリケーション実行の要求を受け付ける（ステップＳ１２０１）。
【０１０９】
次に、アプリケーションは、受け付けた要求に該当するアプリケーションＪＯＢを生成する（ステップＳ１２０２）。アプリケーションＪＯＢは、図７に示したアプリケーションＪＯＢクラス７２０を実体化して生成される。そして、アプリケーションは、生成したアプリケーションＪＯＢを保持する。
【０１１０】
そして、アプリケーションは、生成したアプリケーションＪＯＢに対応するユーザＪＯＢの登録を、アプリケーションコントロール層１０２に対して要求する（ステップＳ１２０３）。また、この際、アプリケーションは、ユーザインターフェース層１０１から受け付けた利用者情報を、アプリケーションコントロール層１０２に出力する。これにより、アプリケーションコントロール層１０２は、ユーザＪＯＢを生成し、生成したユーザＪＯＢと、ステップＳ１２０２で生成されたアプリケーションＪＯＢとが関連付けされる。
【０１１１】
次に、アプリケーションは、アプリケーションコントロール層１０２から、アプリケーションＪＯＢの実行指示を受け付けたか判断する（ステップＳ１２０４）。指示を受け付けなかったと判断した場合（ステップＳ１２０４：Ｎｏ）、実行指示を受け付けるまで待機する。
【０１１２】
そして、アプリケーションは、アプリケーションコントロール層１０２から、アプリケーションＪＯＢに対して実行の指示を受け付けたと判断した場合（ステップＳ１２０４：Ｙｅｓ）、アプリケーションＪＯＢに基づいて処理を実行する（ステップＳ１２０５）。
【０１１３】
次に、以上のように構成された本実施の形態にかかるアプリケーションコントロール層１０２におけるアプリケーションからユーザＪＯＢの登録要求を受け付けてからアプリケーションに対して実行を指示するまでの処理について説明する。図１３は、本実施の形態にかかるアプリケーションコントロール層１０２における上述した処理の手順を示すフローチャートである。
【０１１４】
まず、アプリケーションコントロール層１０２は、アプリケーションからユーザＪＯＢの登録要求を受け付ける（ステップＳ１３０１）。
【０１１５】
次に、アプリケーションコントロール層１０２は、登録要求に従って、ユーザＪＯＢを生成する（ステップＳ１３０２）。生成されたユーザＪＯＢの各属性は、アプリケーションから入力された利用者情報が設定される。
【０１１６】
そして、アプリケーションコントロール層１０２は、生成したユーザＪＯＢと、登録要求を行ったアプリケーションが保持しているアプリケーションＪＯＢとの間で関連付けを行う（ステップＳ１３０３）。
【０１１７】
次に、アプリケーションコントロール層１０２は、当該ユーザＪＯＢを、ユーザＪＯＢキュー１１２に格納する（ステップＳ１３０４）。
【０１１８】
その後、アプリケーションコントロール層１０２のスケジューリング部１１３が、ユーザＪＯＢキュー１１２内の各ユーザＪＯＢが保持する優先度に基づいて、ユーザＪＯＢのスケジューリングを行う（ステップＳ１３０５）。
【０１１９】
そして、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２内の先頭に格納されているユーザＪＯＢと関連付けされているアプリケーションＪＯＢに対して、処理の実行を指示する（ステップＳ１３０６）。
【０１２０】
次に、コピー要求を受付からコピー処理までの実行手順について例を挙げて説明する。図１４は、ユーザインターフェース層１０１からコピー要求を受け付けた際の実行手順を示したシーケンス図である。
【０１２１】
まず、ユーザインターフェース層１０１は、コピー処理の要求をコピーアプリ１２１に対して出力する（ステップＳ１４０１）。
【０１２２】
次に、コピーアプリ１２１が、入力されたコピー処理の要求に従って、コピーＪＯＢを生成する（ステップＳ１４０２）。
【０１２３】
そして、コピーアプリ１２１は、アプリケーションコントロール層１０２に対して、ユーザＪＯＢの登録を要求する（ステップＳ１４０３）。
【０１２４】
この要求に従い、アプリケーションコントロール層１０２は、ユーザＪＯＢを生成する（ステップＳ１４０４）。次に、アプリケーションコントロール層１０２は、生成したユーザＪＯＢを、コピーアプリ１２１のコピーＪＯＢとの関連付けを行う（ステップＳ１４０５）。また、アプリケーションコントロール層１０２は、この関連付けされたユーザＪＯＢを、ユーザＪＯＢキュー１１２に格納する。
【０１２５】
そして、アプリケーションコントロール層１０２のスケジューリング部１１３は、ユーザＪＯＢキュー１１２内に格納されているユーザＪＯＢを、優先度に基づいてスケジューリングを行う（ステップＳ１４０６）。
【０１２６】
次に、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２に格納されているユーザＪＯＢに関連付けされているコピーＪＯＢに対して実行を指示する（ステップＳ１４０７）。なお、本処理手順において、当該コピーＪＯＢと対応付されているユーザＪＯＢは、ユーザＪＯＢキュー１１２内の先頭に格納されているものとする。
【０１２７】
この実行の指示に伴い、コピーアプリ１２１のコピーＪＯＢが、コピー処理の実行を開始する（ステップＳ１４０８）。
【０１２８】
その後、コピーＪＯＢは、実行中の進捗をアプリケーションコントロール層１０２に対して、定期的に通知する（ステップＳ１４０９、Ｓ１４１０）。これにより、アプリケーションコントロール層１０２では、処理中の進捗や、処理が終了したことを認識することができる。そして、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２内に他のユーザＪＯＢが格納されていた場合、当該他のユーザＪＯＢに関連付けされたアプリケーションＪＯＢの実行を指示する。
【０１２９】
本実施の形態にかかる複合機１００は、上述した処理を行うことで、ユーザから受け付けた処理が実行されることになる。
【０１３０】
次に、コピー要求及び優先的に実行するプリント要求の受付からプリント処理までの実行手順について例を挙げて説明する。図１５は、ユーザインターフェース層１０１からコピー要求及びプリントコピー要求を受け付けた際の実行手順を示したシーケンス図である。
【０１３１】
まず、ユーザインターフェース層１０１は、第１のコピー処理の要求をコピーアプリ１２１に対して出力する（ステップＳ１５０１）。
【０１３２】
次に、コピーアプリ１２１が、入力された第１のコピー処理の要求に従って、コピーＪＯＢを生成する（ステップＳ１５０２）。
【０１３３】
そして、コピーアプリ１２１は、アプリケーションコントロール層１０２に対して、ユーザＪＯＢの登録を要求する（ステップＳ１５０３）。
【０１３４】
この要求に従い、アプリケーションコントロール層１０２は、ユーザＪＯＢを生成する（ステップＳ１５０４）。次に、アプリケーションコントロール層１０２は、生成したユーザＪＯＢを、コピーアプリ１２１の（第１のコピー処理の情報を保持する）コピーＪＯＢとの関連付けを行う（ステップＳ１５０５）。また、アプリケーションコントロール層１０２は、この関連付けされたユーザＪＯＢを、ユーザＪＯＢキュー１１２に格納する。
【０１３５】
さらに、ユーザインターフェース層１０１は、第２のコピー処理の要求をコピーアプリ１２１に対して出力する（ステップＳ１５０６）。
【０１３６】
次に、コピーアプリ１２１が、入力された第２のコピー処理の要求に従って、コピーＪＯＢを生成する（ステップＳ１５０７）。
【０１３７】
そして、コピーアプリ１２１は、アプリケーションコントロール層１０２に対して、ユーザＪＯＢの登録を要求する（ステップＳ１５０８）。
【０１３８】
この要求に従い、アプリケーションコントロール層１０２は、ユーザＪＯＢを生成する（ステップＳ１５０９）。次に、アプリケーションコントロール層１０２は、生成したユーザＪＯＢを、コピーアプリ１２１の（第２のコピー処理の情報を保持する）コピーＪＯＢとの関連付けを行う（ステップＳ１５１０）。また、アプリケーションコントロール層１０２は、この関連付けされたユーザＪＯＢを、ユーザＪＯＢキュー１１２に格納する。
【０１３９】
次に、ユーザインターフェース層１０１は、優先して行うプリント処理の要求をプリンタアプリ１２２に対して出力する（ステップＳ１５１１）。
【０１４０】
そして、プリンタアプリ１２２が、プリント処理の要求に従って、プリントＪＯＢを生成する（ステップＳ１５１２）。
【０１４１】
そして、プリンタアプリ１２２は、アプリケーションコントロール層１０２に対して、ユーザＪＯＢの登録を要求する（ステップＳ１５１３）。
【０１４２】
この要求に従い、アプリケーションコントロール層１０２は、ユーザＪＯＢを生成する（ステップＳ１５１４）。なお、このユーザＪＯＢの属性である優先度は高い値が設定される。
【０１４３】
そして、アプリケーションコントロール層１０２は、生成したユーザＪＯＢを、プリンタアプリ１２２のコピーＪＯＢとの関連付けを行う（ステップＳ１５１５）。また、アプリケーションコントロール層１０２は、この関連付けされたユーザＪＯＢを、ユーザＪＯＢキュー１１２に格納する。
【０１４４】
次に、アプリケーションコントロール層１０２のスケジューリング部１１３は、ユーザＪＯＢキュー１１２内に格納されているユーザＪＯＢを、優先度に基づいてスケジューリングを行う（ステップＳ１５１６）。
【０１４５】
図１６は、スケジューリング部１１３が優先度に基づいて行うスケジューリングを示した概要図である。図１６に示すように、スケジューリング部１１３は、各ユーザＪＯＢに設定された優先度を参照して、先頭から優先度が高い順にユーザＪＯＢを配置する。そして、プリンタＪＯＢと関連付けられているユーザＪＯＢの優先度が高いため、このユーザＪＯＢがユーザＪＯＢキュー１１２の先頭に配置される。
【０１４６】
図１６に戻り、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２の先頭に格納されているユーザＪＯＢに関連付けされているプリンタＪＯＢに対して実行を指示する（ステップＳ１５１７）。
【０１４７】
これにより、プリンタアプリ１２２のプリント処理が優先的に実行されることになる。このように本実施の形態にかかる複合機１００は、アプリケーションをまたがって実行する処理の順序を変更することができる。
【０１４８】
次に、以上のように構成された本実施の形態にかかる複合機１００で実行するＪＯＢを一括停止するまでの処理について説明する。図１７は、本実施の形態にかかる複合機１００における上述した処理の手順を示すフローチャートである。
【０１４９】
まず、ユーザインターフェース層１０１は、ユーザからジョブの一括停止の要求を受け付ける（ステップＳ１７０１）。
【０１５０】
次に、ユーザインターフェース層１０１は、アプリケーションコントロール層１０２に対して、ジョブ受付の一括停止を指示する（ステップＳ１７０２）。
【０１５１】
そして、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２へのユーザＪＯＢの登録を停止する（ステップＳ１７０３）。これにより、アプリケーションからユーザＪＯＢの登録が行えなくなるので、新たな処理の要求を受け付けることができなくなる。
【０１５２】
次に、アプリケーションコントロール層１０２は、ユーザＪＯＢキューにユーザＪＯＢが格納されているか否か判断する（ステップＳ１７０４）。格納されていないと判断した場合（ステップＳ１７０４：Ｎｏ）、特に処理を行わずに終了する。
【０１５３】
そして、アプリケーションコントロール層１０２はユーザＪＯＢが格納されていると判断した場合（ステップＳ１７０４：Ｙｅｓ）、実行中のユーザＪＯＢがあるか否か判断する（ステップＳ１７０５）。ないと判断した場合（ステップＳ１７０５：Ｎｏ）、特に処理を行わずに終了する。
【０１５４】
また、アプリケーションコントロール層１０２は、実行中のユーザＪＯＢがあると判断した場合（ステップＳ１７０５：Ｙｅｓ）、実行中のユーザＪＯＢの操作「中止する」を呼び出す（ステップＳ１７０６）。これにより操作「中止する」を呼び出されたユーザＪＯＢと関連付けされたアプリケーションＪＯＢの中止が指示されることになる。
【０１５５】
上述した処理手順により、複合機１００で実行される処理が一括停止することができる。
【０１５６】
次に、複合機１００においてジョブを一括停止する際の情報の送受信について例を挙げて説明する。図１８は、ユーザインターフェース層１０１からジョブの一括停止を受け付けた際の実行手順を示したシーケンス図である。
【０１５７】
なお、本実行手順においては、コピーアプリ１２１のコピーＪＯＢによる処理が実行中であることを前提としている。
【０１５８】
まず、ユーザインターフェース層１０１は、ジョブの一括停止の要求をアプリケーションコントロール層１０２に対して出力する（ステップＳ１８０１）。
【０１５９】
次に、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２に対する登録の停止処理を行う（ステップＳ１８０２）。その後、図１７のステップＳ１７０４〜ステップＳ１７０５までの処理で、実行中のユーザＪＯＢを特定する。本実行手順では、コピーＪＯＢと関連付けされたユーザＪＯＢが実行中であることを特定できる。
【０１６０】
そして、アプリケーションコントロール層１０２は、実行中であるユーザＪＯＢに対して中止の指示を行う。これにより、当該ユーザＪＯＢは、関連付けされたコピーＪＯＢに対して中止の指示を行うことになる（ステップＳ１８０３）。
【０１６１】
これにより、複合機１００では、実行中であったコピーアプリ１２１の他のアプリケーション（プリンタアプリ１２２、送信アプリ１２３）においても処理が停止されることになる。
【０１６２】
つまり、従来の複合機では、アプリケーション毎にジョブを保持していたので、全てのアプリケーションに対してジョブの登録を停止するように指示する必要があった。これに対して、本実施の形態にかかる複合機１００では、ユーザＪＯＢキュー１１２でジョブを管理しているため、当該ユーザＪＯＢキュー１１２に対する登録の受け付けを停止するだけで、新たなジョブの受付を停止することができる。このため、後は実行中であるアプリケーションの処理を停止させるだけで、全てのアプリケーションに対する処理を停止させることができる。
【０１６３】
さらに、アプリケーション層１０３に新たにアプリケーションを追加した場合、従来の複合機であれば、追加されたアプリケーションに対してジョブを停止する指示を送信するように修正する必要があった。これに対して複合機１００は、新たにアプリケーションを追加しても、ジョブ受付の一括停止機能を実現する際に、アプリケーションコントロール層１０２に変更を加える必要がない。また、新たに追加するアプリケーションにおいて、ジョブの受付を拒否するための実装は必要ない。これにより、複合機１００においては、新たなアプリケーションを追加する場合の作業工数を削減できる。
【０１６４】
次に、以上のように構成された本実施の形態にかかる複合機１００においてジョブの一覧表示を行うまでの処理について説明する。図１９は、本実施の形態にかかる複合機１００における上述した処理の手順を示すフローチャートである。
【０１６５】
まず、ユーザインターフェース層１０１は、ユーザからジョブ一覧表示の要求を受け付ける（ステップＳ１９０１）。
【０１６６】
次に、ユーザインターフェース層１０１は、アプリケーションコントロール層１０２に対して、ジョブ一覧の取得の指示を行う（ステップＳ１９０２）。
【０１６７】
この指示を受け付けたアプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２内に対して、ユーザＪＯＢの検索を行う（ステップＳ１９０３）。
【０１６８】
そして、アプリケーションコントロール層１０２は、検出したユーザＪＯＢを、表示が容易な形式にソートを行う（ステップＳ１９０４）。そして、ソートされたユーザＪＯＢは、ユーザインターフェース層１０１に対して出力される。
【０１６９】
これにより、アプリケーションコントロール層１０２は、ソートされたユーザＪＯＢの一覧表示を行う（ステップＳ１９０５）。
【０１７０】
図２０は、ユーザインターフェース層１０１が表示するユーザＪＯＢの一覧表示の画面例を示した図である。図２０に示すように、当該画面例では、ユーザＪＯＢが属性として保持している作成者、ＪＯＢ状態（実行中、中断中、終了中）が表示されている。
【０１７１】
図１９に戻り、ユーザインターフェース層１０１は、ユーザから、一覧表示されたユーザＪＯＢのうち、特定のユーザＪＯＢの詳細表示の要求を受け付けたか否か判断する（ステップＳ１９０６）。特定のユーザＪＯＢの詳細表示の要求を受け付けていないと判断した場合（ステップＳ１９０６：Ｎｏ）、処理を終了する。
【０１７２】
また、ユーザインターフェース層１０１は、特定のユーザＪＯＢの詳細表示の要求を受け付けたと判断した場合（ステップＳ１９０６：Ｙｅｓ）、アプリケーションコントロール層１０２に対して、当該特定のユーザＪＯＢの詳細情報の取得を指示する（ステップＳ１９０７）。
【０１７３】
この取得の指示に従い、アプリケーションコントロール層１０２は、特定のユーザＪＯＢに関連付けされたアプリケーションＪＯＢに対して、詳細情報取得を要求する（ステップＳ１９０８）。
【０１７４】
これにより、アプリケーションコントロール層１０２は、アプリケーションＪＯＢから、当該アプリケーションＪＯＢの詳細情報（属性「動作条件」で保持している情報）を取得する（ステップＳ１９０９）。そして、アプリケーションコントロール層１０２は、取得したアプリケーションＪＯＢの詳細情報をユーザインターフェース層１０１に対して出力する。
【０１７５】
そして、ユーザインターフェース層１０１は、入力されたアプリケーションＪＯＢの詳細情報を表示する（ステップＳ１９１０）。
【０１７６】
図２１は、ユーザインターフェース層１０１が表示するユーザＪＯＢの詳細情報を表示する画面例を示した図である。図２１に示すように、当該画面例では、アプリケーションＪＯＢが属性「動作条件」で保持されている情報が表示されている。
【０１７７】
次に、複合機１００においてジョブの一覧表示する際の情報の送受信について例を挙げて説明する。図２２は、ユーザインターフェース層１０１がジョブの一覧表示を受け付けた際の実行手順を示したシーケンス図である。
【０１７８】
まず、ユーザインターフェース層１０１は、ジョブ一覧取得の要求をアプリケーションコントロール層１０２に対して出力する（ステップＳ２２０１）。
【０１７９】
次に、アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２に対してユーザＪＯＢの検索を行う（ステップＳ２２０２）。
【０１８０】
そして、アプリケーションコントロール層１０２は、検出したユーザＪＯＢのソートを行う（ステップＳ２２０３）。
【０１８１】
次に、アプリケーションコントロール層１０２は、ソートしたユーザＪＯＢの一覧を、ユーザインターフェース層１０１に対して出力する（ステップＳ２２０４）。
【０１８２】
そして、ユーザインターフェース層１０１は、ソートされたユーザＪＯＢの一覧の表示処理を行う（ステップＳ２２０５）。
【０１８３】
複合機１００は、図１９〜図２２に示す処理手順でジョブの一覧を呼び、ジョブの詳細情報を表示することができる。上述した処理手順で、各アプリケーションに対して保持しているジョブの確認を行うことなく、ジョブの一覧を表示することができる。
【０１８４】
つまり、本実施の形態にかかる複合機１００では、新しいアプリケーションを追加する場合に、当該アプリケーションのジョブをジョブ一覧として表示するためにアプリケーションコントロール層に修正を行う必要がない。また、追加されるアプリケーション側においても、ジョブ一覧表示を行うための実装は必要ない。
【０１８５】
本実施の形態にかかる複合機１００では、アプリケーションがアプリケーションＪＯＢの実行中にハードウェアリソースを利用する場合、アプリケーション共有サービス層１０４に対して、リソースを利用するためにアクセスする必要がある。その際、アプリケーション共有サービス層１０４は、リソースを使用できる権限を有しているか否か判断する。
【０１８６】
そこで、アプリケーションがリソースに対してアクセスする際に、アプリケーション共有サービス層１０４が行う権限を有しているか否か判断を行う処理手順について説明する。図２３は、本実施の形態にかかる複合機１００における上述した処理の手順を示すフローチャートである。
【０１８７】
まず、アプリケーション共有サービス層１０４は、アプリケーションから、利用者情報と共に、ハードウェアリソースの使用要求を取得する（ステップＳ２３０１）。利用者情報は、アプリケーションＪＯＢの属性「作成者」から特定される利用者情報とする。なお、利用者情報は、複合機１００の図示しない記憶部に予め格納されていることとする。この利用者情報は、図１１で示した属性を保持している。
【０１８８】
そして、アプリケーション共有サービス層１０４は、利用者情報から、利用者の役割を特定する（ステップＳ２３０２）。
【０１８９】
次に、権限判断部１３２は、特定された利用者の役割でハードウェアリソースを使用する権限があるか、権限管理テーブルを用いて判断する（ステップＳ２３０３）。
【０１９０】
アプリケーション共有サービス層１０４は、権限判断部１３２が権限あると判断した場合（ステップＳ２３０３：Ｙｅｓ）、アプリケーションからの使用要求に基づいてハードウェアリソースを使用して、ハードウェアを制御する（ステップＳ２３０４）。
【０１９１】
アプリケーション共有サービス層１０４は、権限判断部１３２が権限を有していないと判断した場合（ステップＳ２３０３：Ｎｏ）、アプリケーションに対してエラーを通知する（ステップＳ２３０５）。
【０１９２】
上述した処理手順により、複合機１００においてアプリケーションが使用するハードウェアリソース毎に利用する権限の有無を判断することができる。
【０１９３】
次に、アプリケーションの実行が指示されてから各ハードウェアリソースを使用するまでの実行手順について例を挙げて説明する。図２４は、アプリケーションコントロール層１０２からジョブの実行の指示が行われた際の実行手順を示したシーケンス図である。なお、ＸＸアプリ２４５１は、新たに複合機１００に追加されたアプリケーションとする。
【０１９４】
アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２に配置されたユーザＪＯＢに従って、コピーＪＯＢの実行を指示する（ステップＳ２４０１）。
【０１９５】
これにより、コピーアプリ１２１は、コピーＪＯＢの実行を開始する。そして、コピーアプリ１２１は、当該コピーＪＯＢの従って、スキャナを使用するために、アプリケーション共有サービス層１０４に対して、スキャナリソースの使用要求を行う（ステップＳ２４０２）。この際、コピーアプリ１２１は、利用者情報も送信する。
【０１９６】
そして、アプリケーション共有サービス層１０４の権限判断部１３２は、利用者情報の利用者の役割で、スキャナリソースの使用権限を有しているか否か判断する（ステップＳ２４０３）。なお、本処理手順ではスキャナリソースの使用権限を有しているものとする。
【０１９７】
そこで、アプリケーション共有サービス層１０４は、スキャナリソースを使用して、スキャナを制御する（ステップＳ２４０４）。
【０１９８】
次に、コピーアプリ１２１は、当該コピーＪＯＢの従って、プロッタを使用するために、アプリケーション共有サービス層１０４に対して、プロッタリソースの使用要求を行う（ステップＳ２４０５）。この際も同様に、コピーアプリ１２１は、利用者情報も送信する。
【０１９９】
そして、アプリケーション共有サービス層１０４の権限判断部１３２は、利用者情報の利用者の役割で、プロッタリソースの使用権限を有しているか否か判断する（ステップＳ２４０６）。なお、本処理手順ではプロッタリソースの使用権限を有しているものとする。
【０２００】
そこで、アプリケーション共有サービス層１０４は、プロッタリソースを使用して、プロッタを制御する（ステップＳ２４０７）。
【０２０１】
アプリケーションコントロール層１０２は、ユーザＪＯＢキュー１１２に配置されたユーザＪＯＢに従って、ＸＸＪＯＢの実行を指示する（ステップＳ２４０８）。
【０２０２】
これにより、ＸＸアプリ２４５１は、ＸＸＪＯＢの実行を開始する。そして、ＸＸアプリ２４５１は、当該ＸＸＪＯＢの従って、ａａａ（複合機１００が備えるハードウェアとする）を使用するために、アプリケーション共有サービス層１０４に対して、ａａａリソースの使用要求を行う（ステップＳ２４０９）。この際、コピーアプリ１２１は、利用者情報も送信する。
【０２０３】
そして、アプリケーション共有サービス層１０４の権限判断部１３２は、利用者情報の利用者の役割で、ａａａリソースの使用権限を有しているか否か判断する（ステップＳ２４１０）。なお、本処理手順ではａａａリソースの使用権限を有しているものとする。
【０２０４】
そこで、アプリケーション共有サービス層１０４は、ａａａリソースを使用して、ａａａを制御する（ステップＳ２４１１）。
【０２０５】
次に、ＸＸアプリ２４５１は、当該ＸＸＪＯＢの従って、ｂｂｂを使用するために、アプリケーション共有サービス層１０４に対して、ｂｂｂリソースの使用要求を行う（ステップＳ２４１２）。この際も同様に、ＸＸアプリ２４５１は、利用者情報も送信する。
【０２０６】
そして、アプリケーション共有サービス層１０４の権限判断部１３２は、利用者情報の利用者の役割で、ｂｂｂリソースの使用権限を有しているか否か判断する（ステップＳ２４１３）。なお、本処理手順ではプロッタリソースの使用権限を有しているものとする。
【０２０７】
そこで、アプリケーション共有サービス層１０４は、ｂｂｂリソースを使用して、ｂｂｂを制御する（ステップＳ２４１４）。
【０２０８】
上述した実行手順においては、各アプリケーションが使用するリソースを、アプリケーション共有サービス層１０４で保持し、アプリケーション共有サービス層１０４で当該リソースを使用していることが確認できる。これにより、各アプリケーションがリソースを保持する必要がないので、アプリケーションの製作工数を削減できる。
【０２０９】
また、アプリケーション共有サービス層１０４で一括してハードウェアリソースへのアクセス制御を行うことで、セキュリティを向上させることができる。
【０２１０】
上述した複合機１００ではアプリケーションのコントロール部分をアプリケーションコントロール層１０２として、アプリケーションに対する共有サービス部分をアプリケーション共有サービス層１０４として、従来アプリケーションで備えていた機能を抜き出すこととした。
【０２１１】
また、複合機１００においては、処理ロジックとＵＩのみアプリケーションが保持している。このように、複合機１００においては、アプリケーションの内部処理と、外部処理（フレームワーク）を分離している。これにより、フレームワークとアプリケーションとの間の依存度が低減したので、アプリケーションの追加／削除を容易に実現することができる。
【０２１２】
また、外部処理を抜き出すことで、アプリケーションで実装すべき部分を削減できるので、開発工数を削減できる。また、複合機１００においては、アプリケーションの追加／削除が、上述したフレームワークに影響を与えないので、開発工数の増加を抑止することができる。
【０２１３】
複合機１００においては、ソフトウェア群の各構成の役割が整理され、従来アプリケーションが内包していた制御が外部（アプリケーションコントロール層１０２と、アプリケーション共有サービス層１０４）に抜き出されたことで、アプリケーションの冗長性を抑止すると共に、保守性を向上させることが可能となった。
【０２１４】
また、アプリケーションに対して提供されるサービスであるアプリケーション共有サービス層１０４を抜き出したことで、アプリケーションが実装すべき箇所を削減すると共に、各アプリケーションに対して（例えばセキュリティを向上させる等の理由により）新たな機能を追加する場合、アプリケーション共有サービス層１０４に対して修正を加えるだけで、各アプリケーションに対して修正を行うことなく機能を追加できる。これにより、ソフトウェアの変更による影響範囲を局所化することができる。これにより、開発工数を削減することができる。
【０２１５】
なお、本実施の形態は、複数のアプリケーションを備える装置であれば効果を発揮するが、特に、上述した問題が生じている画像情報処理装置において特に有効である。
【０２１６】
図２５は、かかる複合機１００のハードウェア構成を示すブロック図である。本図に示すように、この複合機１００は、コントローラ２５１０とエンジン部（Engine）２５６０とをＰＣＩ（Peripheral Component Interconnect）バスで接続した構成となる。コントローラ２５１０は、複合機１全体の制御と描画、通信、操作部２５２０からの入力を制御するコントローラである。エンジン部２５６０は、ＰＣＩバスに接続可能なプリンタエンジン等であり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニット等である。なお、このエンジン部２５６０には、プロッタ等のいわゆるエンジン部分に加えて、誤差拡散やガンマ変換等の画像処理部分が含まれる。
【０２１７】
コントローラ２５１０は、ＣＰＵ２５１１と、ノースブリッジ（ＮＢ）２５１３と、システムメモリ（ＭＥＭ−Ｐ）２５１２と、サウスブリッジ（ＳＢ）２５１４と、ローカルメモリ（ＭＥＭ−Ｃ）２５１７と、ＡＳＩＣ（Application Specific Integrated Circuit）２５１６と、ハードディスクドライブ（ＨＤＤ）２５１８とを有し、ノースブリッジ（ＮＢ）２５１３とＡＳＩＣ２５１６との間をＡＧＰ（Accelerated Graphics Port）バス２５１５で接続した構成となる。また、ＭＥＭ−Ｐ２５１２は、ＲＯＭ（Read Only Memory）２５１２ａと、ＲＡＭ（Random Access Memory）２５１２ｂとをさらに有する。
【０２１８】
ＣＰＵ２５１１は、複合機１００の全体制御をおこなうものであり、ＮＢ２５１３、ＭＥＭ−Ｐ２５１２及びＳＢ２５１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【０２１９】
ＮＢ２５１３は、ＣＰＵ２５１１とＭＥＭ−Ｐ２５１２、ＳＢ２５１４、ＡＧＰ２５１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ２５１２に対する読み書き等を制御するメモリコントローラと、ＰＣＩマスタ及びＡＧＰターゲットとを有する。
【０２２０】
ＭＥＭ−Ｐ２５１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリ等として用いるシステムメモリであり、ＲＯＭ２５１２ａとＲＡＭ２５１２ｂとからなる。ＲＯＭ２５１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ２５１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリ等として用いる書き込み及び読み出し可能なメモリである。
【０２２１】
ＳＢ２５１４は、ＮＢ２５１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ２５１４は、ＰＣＩバスを介してＮＢ２５１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部等も接続される。
【０２２２】
ＡＳＩＣ２５１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated Circuit）であり、ＡＧＰ２５１５、ＰＣＩバス、ＨＤＤ２５１８及びＭＥＭ−Ｃ２５１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ２５１６は、ＰＣＩターゲット及びＡＧＰマスタと、ＡＳＩＣ２５１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ２５１７を制御するメモリコントローラと、ハードウェアロジック等により画像データの回転等をおこなう複数のＤＭＡＣ（Direct Memory Access Controller）と、エンジン部２５６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ２５１６には、ＰＣＩバスを介してＦＣＵ（Fax Control Unit）２５３０、ＵＳＢ（Universal Serial Bus）２５４０、ＩＥＥＥ１３９４（the Institute of Electrical and Electronics Engineers 1394）インターフェース２５５０が接続される。
【０２２３】
ＭＥＭ−Ｃ２５１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ（Hard Disk Drive）２５１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【０２２４】
ＡＧＰ２５１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ２５１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【０２２５】
なお、本実施形態の複合機１００で実行される情報処理プログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０２２６】
本実施形態の複合機１００で実行される情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０２２７】
さらに、本実施形態の複合機１００で実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の複合機１００で実行される情報処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０２２８】
本実施の形態の複合機１００で実行される情報処理プログラムは、上述した各部（ＯＳ、共有メカニズム、ユーザインターフェース層、アプリケーションコントロール層、アプリケーション層、アプリケーション共有サービス層）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭから情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ＯＳ、共有メカニズム、ユーザインターフェース層、アプリケーションコントロール層、アプリケーション層、アプリケーション共有サービス層が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０２２９】
以上のように、本発明にかかる情報処理装置及び情報処理プログラムは、複数のアプリケーションを実行する技術に有用であり、特に、アプリケーションの追加／削除を行う場合でも他のプログラムに修正を行わないようにする技術に適している。
【図面の簡単な説明】
【０２３０】
【図１】実施の形態にかかる複合機の構成を示すブロック図である。
【図２】コピーアプリのソフトウェア構成を示した図である。
【図３】アプリケーション管理テーブルのテーブル構造の例を示した図である。
【図４】アプリケーション層内のユーザＪＯＢキューと、アプリケーション層の各アプリケーションが保持するアプリケーションＪＯＢとの関係を示した概要図である。
【図５】ユーザＪＯＢと、コピーＪＯＢ間で行われる制御を示した説明図である。
【図６】アプリケーションコントロール層がアプリケーション層の各アプリケーションの制御に利用可能な命令を示した説明図である。
【図７】複合機で用いられるユーザＪＯＢとコピーＪＯＢとのクラス構成を示した図である。
【図８】ユーザＪＯＢの各操作により変更されるＪＯＢ状態を示した遷移図である。
【図９】アプリケーション層とアプリケーション共有サービス層との関係を示した説明図である。
【図１０】権限管理テーブルのテーブル構造を示した図である。
【図１１】アプリケーションから受信する利用者情報のクラス構成を示した図である。
【図１２】アプリケーション層のアプリケーションにおけるアプリケーション実行要求の受付から、アプリケーションによる処理を実行するまでの処理の手順を示すフローチャートである。
【図１３】アプリケーションコントロール層におけるアプリケーションからユーザＪＯＢの登録要求を受け付けてからアプリケーションに対して実行を指示するまでの処理の手順を示すフローチャートである。
【図１４】ユーザインターフェース層からコピー要求を受け付けた際の実行手順を示したシーケンス図である。
【図１５】ユーザインターフェース層からコピー要求及びプリントコピー要求を受け付けた際の実行手順を示したシーケンス図である。
【図１６】スケジューリング部が優先度に基づいて行うスケジューリングを示した概要図である。
【図１７】複合機で実行するＪＯＢを一括停止するまでの処理の手順を示すフローチャートである。
【図１８】ユーザインターフェース層からジョブの一括停止を受け付けた際の実行手順を示したシーケンス図である。
【図１９】複合機におけるジョブの一覧表示を行うまでの処理の手順を示すフローチャートである。
【図２０】ユーザインターフェース層が表示するユーザＪＯＢの一覧表示の画面例を示した図である。
【図２１】ユーザインターフェース層が表示するユーザＪＯＢの詳細情報を表示する画面例を示した図である。
【図２２】ユーザインターフェース層がジョブの一覧表示を受け付けた際の実行手順を示したシーケンス図である。
【図２３】複合機における、アプリケーションがリソースに対してアクセスする際に、アプリケーション共有サービス層が行う権限を有しているか否か判断を行う処理手順を示すフローチャートである。
【図２４】アプリケーションコントロール層からジョブの実行の指示が行われた際の実行手順を示したシーケンス図である。
【図２５】複合機のハードウェア構成を示すブロック図である。
【図２６】従来の複合機に搭載されているソフトウェア構成を示す説明図である。
【図２７】従来の複合機におけるサービス層及び各アプリケーションを示した概念図である。
【符号の説明】
【０２３１】
１００  複合機
１０１  ユーザインターフェース層
１０２  アプリケーションコントロール層
１０３  アプリケーション共有サービス層
１０３  アプリケーション層
１０４  アプリケーション共有サービス層
１０５  共有メカニズム
１０６  ＯＳ
１０７  白黒ラインプリンタ
１０８  カラーラインプリンタ
１０９  その他ハードウェア群
１１１  アプリケーション管理テーブル
１１２  ユーザＪＯＢキュー
１１３  スケジューリング部
１２１  コピーアプリ
１２２  プリンタアプリ
１２３  送信アプリ
１３１  権限管理テーブル
１３２  権限判断部
２０１  ユーザインターフェース
２０２  処理ロジック
７１０  ユーザＪＯＢクラス
７１０ｂ  作成者
７１０ａ  作成日時
７１０ｃ  ＪＯＢ状態
７１０ｄ  優先度
７２０ｅ  実行する（）
７２０ｆ  中止する（）
７２０ｇ  中断する（）
７２０ｈ  再開する（）
７２０  コピーＪＯＢクラス
７２０ａ  アプリＪＯＢ状態
７２０ｂ  動作条件
７２０ｃ  実行する（）
７２０ｄ  中止する（）
７２０ｅ  中断する（）
７２０ｆ  再開する（）
１１００  利用者情報クラス
１１００ａ  名前
１１００ｂ  パスワード
１１００ｃ  役割
１１００ｄ  メールアドレス
２５１０  コントローラ
２５１１  ＣＰＵ
２５１２  ＭＥＭ−Ｐ
２５１２ａ  ＲＯＭ
２５１２ｂ  ＲＡＭ
２５１３  ＮＢ
２５１４  ＳＢ
２５１５  ＡＧＰバス
２５１６  ＡＳＩＣ
２５１７  ＭＥＭ−Ｃ
２５１８  ＨＤＤ
２５２０  操作部
２５３０  ＦＣＵ
２５４０  ＵＳＢ
２５５０  インターフェース
２５６０  エンジン部
２６００  複合機
２６０１  白黒ラインプリンタ
２６０２  カラーラインプリンタ
２６０３  ハードウェアリソース
２６１０  ソフトウェア群
２６１１  プリンタアプリ
２６１２  コピーアプリ
２６１３  送信アプリ
２６２０  サービス層
２６２１  汎用ＯＳ
２６２２  リソースマネージャー
２６２３  コントロールサービス
２６３０  アプリケーション
２７０１、２７１１、２７２２  アプリケーションコントロール部
２７０２、２７１２、２７２２  アプリケーションロジック部
２７０３、２７１３、２７２３  アプリケーション使用サービス部
【図１】
2008233948.tif 000003
【図２】
2008233948.tif 000004
【図３】
2008233948.tif 000005
【図４】
2008233948.tif 000006
【図５】
2008233948.tif 000007
【図６】
2008233948.tif 000008
【図７】
2008233948.tif 000009
【図８】
2008233948.tif 000010
【図９】
2008233948.tif 000011
【図１０】
2008233948.tif 000012
【図１１】
2008233948.tif 000013
【図１２】
2008233948.tif 000014
【図１３】
2008233948.tif 000015
【図１４】
2008233948.tif 000016
【図１５】
2008233948.tif 000017
【図１６】
2008233948.tif 000018
【図１７】
2008233948.tif 000019
【図１８】
2008233948.tif 000020
【図１９】
2008233948.tif 000021
【図２０】
2008233948.tif 000022
【図２１】
2008233948.tif 000023
【図２２】
2008233948.tif 000024
【図２３】
2008233948.tif 000025
【図２４】
2008233948.tif 000026
【図２５】
2008233948.tif 000027
【図２６】
2008233948.tif 000028
【図２７】
2008233948.tif 000029