(57)【特許請求の範囲】
【請求項１】
印刷部および撮像部を含むハードウエア資源を有する画像形成装置であって、
前記印刷部および前記撮像部のうち少なくとも一方を用いた画像形成処理をそれぞれ実行させるプリンタアプリケーション、コピーアプリケーション、およびファクシミリアプリケーションを含む複数のアプリケーションと、
前記複数のアプリケーションからの処理要求を予め定義されたインターフェースを介して受信可能であり、該処理要求に基づく画像形成処理を、前記印刷部および前記撮像部のうち少なくとも一方を用いて実行するプラットホームと、
を有し、
前記プラットホームは、
オペレーティングシステム上で動作し、前記予め定義されたインターフェースを介して前記複数のアプリケーションから処理要求を受信すると、該処理要求に基づく画像形成処理を実行するハードウエア資源を動作させるパラメータを設定したジョブを生成させ、生成されたジョブを実行させるジョブ生成モジュールと、
前記オペレーティングシステム上で動作し、前記ジョブ生成モジュールからのジョブを実行させる要求に応じ、該ジョブに係る画像形成処理を、該ジョブに設定された前記パラメータに基づいて、前記印刷部および前記撮像部のうち少なくとも一方を用いて実行するハードウエア制御モジュールと
を有することを特徴とする画像形成装置。
【請求項２】
前記複数のアプリケーションは、それぞれアプリケーションごとに追加または削除することができること
を特徴とする請求項１に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、表示部、印刷部および撮像部などのハードウエア資源を有し、プリンタ、コピーまたはファクシミリなどの複合サービスをおこなう画像形成装置、画像形成方法およびプログラムに関し、特に、プリンタ、コピーおよびファクリミリ装置などに対応する各ソフトウエア（アプリケーション）を効率良く開発するとともに装置全体としての生産性を高めることができる画像形成装置、画像形成方法およびプログラムに関する。
【背景技術】
【０００２】
従来、プリンタ、コピー、ファクシミリは、それぞれ別筐体として配設されるのが一般的であったが、最近では、これら各装置の機能を１つの筐体内に収納した画像形成装置（以下「複合機」と言う）が知られている。
【０００３】
この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する３種類のソフトウエアを設け、ソフトウエアの切り替えによって、該装置をプリンタ、コピーまたはファクリミリ装置として動作させるものである。
【０００４】
かかる複合機を用いることにより、室内にプリンタ、コピーおよびファクシミリをそれぞれ別個に設ける必要がなくなるので、トータルな低コスト化および省スペース化を図ることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、かかる複合機内にプリンタ、コピーおよびファクリミリ装置に対応するソフトウエア（専用ＯＳを含む）をそれぞれ別個に設けることとしたのでは、各ソフトウエアの開発に多大の時間を要する。
【０００６】
すなわち、かかる従来の複合機は、単に筐体を１つにまとめたものにすぎず、従来と同様に、プリンタ用ソフトウエア、コピー用ソフトウエアおよびファクシミリ用ソフトウエアを別個に開発せねばならない。
【０００７】
もともと、プリンタのソフトウエア、コピーのソフトウエアおよびファクシミリのソフトウエアは、同種の画像を取り扱う性質上様々な面でアルゴリズムが共用できるため、ソフトウエアを別個に作成していたのでは、メモリ容量の累増などを招く問題もある。
【０００８】
このため最近では、３種類の専用ＯＳを別個に設けた場合の重複処理を省くために、ＵＮＩＸ（登録商標）などの汎用ＯＳをかかる複合機に採用されることも多いが、単にＯＳ部分を共通化するだけでは、ソフトウエアの開発効率をさほど高めることはできない。
【０００９】
なお、特許文献１には、サーバダイアログおよび分散型アプリケーションなどからなるアプリケーション層と、フォントマネージャーやネットワークマネージャーなどからなる機能層と、オペレーティングシステムなどからなる制御層とで文書サービスアーキテクチャーを階層化する電子印刷システムが開示されているが、この従来技術のものは、フォントなどの一部の機能を共通化したものにすぎず、各ソフトウエアの開発効率を高めるものではない。
【００１０】
また、複合機やプリンタなどに接続するパソコンには、複数のアプリケーションを搭載することができるが、このパソコンは、複合機に係るハードウエア資源を管理するものではない。本発明は、パソコンそのものではなく、パソコンが接続される複合機などの画像形成装置自体に関するものである。
【００１１】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、プリンタ、コピーおよびファクリミリ装置などに対応する各ソフトウエア（アプリケーション）を効率良く開発するとともに装置全体としての生産性を高めることができる画像形成装置、画像形成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、本発明に係る画像形成装置は、印刷部および撮像部を含むハードウエア資源を有する画像形成装置であって、前記印刷部および前記撮像部のうち少なくとも一方を用いた画像形成処理をそれぞれ実行させるプリンタアプリケーション、コピーアプリケーション、およびファクシミリアプリケーションを含む複数のアプリケーションと、前記複数のアプリケーションからの処理要求を予め定義されたインターフェースを介して受信可能であり、該処理要求に基づく画像形成処理を、前記印刷部および前記撮像部のうち少なくとも一方を用いて実行するプラットホームと、を有し、前記プラットホームは、オペレーティングシステム上で動作し、前記予め定義されたインターフェースを介して前記複数のアプリケーションから処理要求を受信すると、該処理要求に基づく画像形成処理を実行するハードウエア資源を動作させるパラメータを設定したジョブを生成させ、生成されたジョブを実行させるジョブ生成モジュールと、前記オペレーティングシステム上で動作し、前記ジョブ生成モジュールからのジョブを実行させる要求に応じ、該ジョブに係る画像形成処理を、該ジョブに設定された前記パラメータに基づいて、前記印刷部および前記撮像部のうち少なくとも一方を用いて実行するハードウエア制御モジュールとを有することを特徴とする。
【００１３】
本発明によれば、各ユーザーサービスのアプリケーションを作成する場合には、画面表示制御やキー操作部分を作成すれば足りる。
【発明の効果】
【００３８】
本発明によれば、各ユーザーサービスのアプリケーションを作成する場合には、画面表示制御やキー操作部分を作成すれば足りる。
【図面の簡単な説明】
【００５１】
【図１】この発明の実施の形態に係る複合機の概念を説明するための説明図である。
【図２】図１に示したプラットホームを説明するための説明図である。
【図３】図１に示した複合機の具体的なソフトウエア構成を示す構成図である。
【図４】図３に示したコピーアプリを用いたコピー動作を説明するための説明図である。
【図５】図３に示したプリンタアプリを用いたプリント動作を説明するための説明図である。
【図６】図３に示したスキャナアプリを用いたスキャナ動作を説明するための説明図である。
【図７】コピーアプリ、プリンタアプリ、スキャナアプリの３つのアプリケーションの起動時処理と、それぞれのアプリ画面を生成し表示する処理と、アプリ画面選択キーが押下されたときの処理を説明するための説明図である。
【図８】ファックスアプリまたはプリンタアプリを用いたファックス送信動作を説明するための説明図である。
【図９】図１に示した複合機のハードウエア構成を示す構成図である。
【図１０】図９に示したＡＳＩＣの細部構成を示すブロック図である。
【発明を実施するための形態】
【００５２】
以下に添付図面を参照して、この発明に係る画像形成装置、画像形成方法およびプログラムの好適な実施の形態を詳細に説明する。なお、本実施の形態では、本発明を複合機に適用した場合を示すこととする。
【００５３】
まず最初に、本実施の形態に係る複合機の概念について図１および図２を用いて説明する。図１は、本実施の形態に係る複合機の概念を説明するための説明図であり、図２は、図１に示したプラットホームを説明するための説明図である。
【００５４】
図１（ａ）に示すように、従来のプリンタ１００は、描画・印刷機能並びにエンジン制御をおこなう専用ＯＳ１０１上にプリンタ用アプリケーション（プリンタアプリ）が搭載されていた。また、ファクシミリやコピーについても別個の筐体で構成されていた。また、これらを１つの筐体上にまとめる複合機も登場してきたが、単にプリンタ、コピーおよびファクシミリの機能を独立に設けたのでは効率的ではない。
【００５５】
このため、同図（ｂ）に示すように、従来の専用ＯＳ１０１を汎用ＯＳ部分１１１とエンジン制御部分１１２で形成し、これらをエンジンインターフェース（Ｉ／Ｆ）で連結するとともに、該汎用ＯＳ１１１上にプリンタアプリ１１３、コピーアプリ１１４および各種アプリ１１５を搭載する装置構成が採用されてきた。
【００５６】
かかる複合機１１０では、たとえばＵＮＩＸ（登録商標）などの汎用ＯＳを採用しているので、プリンタアプリ１１３、コピーアプリ１１４、各種アプリ１１５をそれぞれプロセスとして簡単に並列実行することができる。
【００５７】
しかしながら、この複合機１１０についても、プリンタアプリ１１３、コピーアプリ１１４、各種アプリ１１５が、それぞれ独立に開発される必要があるので、各ソフトウエアの開発負担をさほど軽減できるわけではない。
【００５８】
そこで、本実施の形態に係る複合機１２０では、図１（ｃ）に示すように、各アプリケーションの共通部分を共通システムサービス１２１ａおよびアプリサービス１２１ｂとして括りだし、この共通システムサービス１２１ａ、アプリサービス１２１ｂおよび汎用ＯＳ１１１によりプラットホーム１２２を形成する。
【００５９】
特に、この複合機１２０では、アプリサービス１２１ｂが各アプリ１２３〜１２５と共通システムサービス１２１ａとの間に介在するよう構成することにより、本来各アプリ１２３〜１２５がそれぞれ独立しておこなうべきジョブの生成やデータ通信をアプリサービス１２１ｂが一括しておこなうこととしている。このため、このプラットホーム１２２上に搭載するプリンタアプリ１２３、コピーアプリ１２４および各種アプリ１２５の開発労力軽減並びにアプリケーションのスリム化を図ることができる。
【００６０】
たとえば、図２（ａ）に示すように、コピーアプリが130,000ステップ、ファックスアプリが125,000ステップ、プリンタアプリが100,000ステップのコードからなる場合に、これらを別個のアプリケーションとして形成すると、合計で130,000＋125,000＋100,000＝355,000ステップのコードを要する。
【００６１】
ここで、各アプリケーションに共通に利用できる部分が180,000ステップであるならば、この部分をプラットホームとして集約することにより、生産性が向上する。
【００６２】
たとえば、同図（ｂ）に示すように、コピーアプリが40,000ステップ、ファックスアプリが100,000ステップ、プリンタアプリが35,000ステップ、プラットホームが90,000ステップのコードで形成できるとすると、合計で40,000＋100,000＋35,000＋90,000＝265,000ステップとなり、装置全体の生産性が１３４％（355,000／265,000）向上する。
【００６３】
また、プラットホーム部分を考えると、生産性が２００％（180,000／90,000）向上し、さらにコピーアプリ、ファックスアプリ、プリンタアプリの開発効率についても大幅に向上する。
【００６４】
このように、本実施の形態に係る複合機１２０では、アプリサービス１２１ｂ、共通システムサービス１２１ａおよび汎用ＯＳ１１１からなるプラットホーム１２２上に、プリンタアプリ１２３、コピーアプリ１２４および各種アプリ１２５を搭載するよう構成しているので、装置全体の生産性を高めるとともに、各アプリケーションの開発効率を高めることができる。
【００６５】
次に、図１に示した複合機１２０のソフトウエア構成についてさらに詳細に説明する。図３は、図１に示した複合機１２０の具体的なソフトウエア構成を示す構成図である。
【００６６】
同図に示すように、この複合機１２０は、白黒ラインプリンタ（B&W  LP）３０１、カラーラインプリンタ（Color  LP）３０２、その他ハードウエアリソース３０３などを有するとともに、ソフトウエア群３１０は、プラットホーム３２０およびアプリケーション３４０からなる。
【００６７】
プラットホーム３２０は、汎用ＯＳ３２１と、共通システムサービス３３０と、アプリサービス３２９とで形成される。なお、このプラットホーム３２０は、あらかじめ定義された関数により前記アプリケーションからの処理要求を受信可能とするアプリケーションプログラムインターフェースを有する。
【００６８】
汎用ＯＳ３２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム３２０並びにアプリケーション３４０の各ソフトウエアをそれぞれプロセスとして並列実行する。オープンソースのＵＮＩＸ（登録商標）を用いることにより、プログラムの安全性を確保できるとともに、ネットワーク対応可能となり、ソースコードの入手も容易となる。さらに、ＯＳ、ＴＣＰ／ＩＰのロイヤリティが不要であり、アウトソーシングも容易となる。
【００６９】
共通システムサービス３３０は、アプリケーション３４０に対して基本的な共通サービスを提供するものであり、アプリケーション３３０からの処理要求を解釈して、ハードウエア資源の獲得要求を発生させる下記に示すコントロールサービスと、一または複数のハードウエア資源の管理をおこない、コントロールサービスからの獲得要求を調停するシステムリソースマネージャー（ＳＲＭ（System  Resource  Manager）３２３）とを有する。
【００７０】
このコントロールサービスは、複数のサービスモジュールにより形成され、具体的には、ＳＣＳ（System  Control  Service）３２２と、ＥＣＳ（Engine  Control  Service）３２４と、ＭＣＳ（Memory  Control  Service）３２５と、ＯＣＳ（Operation  panel  Control  Service）３２６と、ＦＣＳ（FAX  Control  Service）３２７と、ＮＣＳ（Network  Control  Service）３２８とがある。
【００７１】
ＳＲＭ３２３は、ＳＣＳ３２２とともにシステムの制御およびリソースの管理をおこなうものであり、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４Ｉ／Ｆ、ＲＳ２３２ＣＩ／Ｆなど）のハードウエア資源を利用する上位層からの要求にしたがって調停をおこない、実行制御する。
【００７２】
具体的には、このＳＲＭ３２３は、要求されたハードウエア資源が利用可能であるかどうか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウエア資源が利用可能である旨を上位層に伝える。また、上位層からの要求に対してハードウエア資源の利用スケジューリングをおこない、要求内容（たとえば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施するようにしてもよい。
【００７３】
ＳＣＳ３２２は、（１）アプリ管理、（２）操作部制御、（３）システム画面表示（ジョブリスト画面、カウンタ表示画面など）、（４）ＬＥＤ表示、（５）リソース管理、（６）割り込みアプリ制御をおこなう。具体的には、（１）アプリ管理では、アプリの登録と、その情報を他のアプリに通知する処理をおこなう。登録されたアプリに対しては、システムの設定やアプリからの要求設定に応じてエンジン状態を通知する。また、登録済みのアプリに対しては、電力モード移行の問い合わせ、割り込みモードなど、システムの状態遷移のための可否問い合わせをおこなう。
【００７４】
また、（２）操作部制御では、アプリの操作部使用権の排他制御をおこなう。そして、操作部の使用権を持つアプリへ操作部ドライバ（ＯＣＳ）からのキー情報を排他的に通知する。このキー情報は、アプリ切替中などのシステムの状態遷移に応じて一時的に通知を停止するマスク制御をおこなう。
【００７５】
また、（３）システム画面表示では、操作部使用権を持つアプリからの要求内容に応じて、エンジン状態に対応する警告画面の表示をおこなう。これらのなかには、利用者制限画面などアプリの状態に応じて警告表示をオン／オフするものもある。エンジン状態以外では、ジョブの予約・実行状況を表示するためのジョブリスト画面、トータルカウンタ類を表示するためのカウンタ画面、ＣＳＳの通報中を示す画面の表示制御をおこなう。これらのシステム画面表示に関しては、アプリへ操作部使用権の解放を要求せず、アプリ画面を覆うシステム画面として描画をおこなう。
【００７６】
また、（４）ＬＥＤ表示では、警告ＬＥＤ、アプリキーなどのシステムＬＥＤの表示制御をおこなう。アプリ固有のＬＥＤについては、アプリが直接表示用ドライバを使用して制御する。
【００７７】
また、（５）リソース管理では、アプリ（ＥＣＳ）がジョブを実行するにあたって、排他しなければならないエンジンリソース（スキャナ、ステープルなど）の排他制御のためのサービスをおこない、（６）割り込みアプリ制御では、特定のアプリを優先動作せさるための制御・サービスをおこなう。
【００７８】
ＥＣＳ３２４は、白黒ラインプリンタ（B&W  LP）３０１、カラーラインプリンタ（Color  LP）３０２、その他ハードウエアリソース３０３などのエンジンを制御するものであり、画像読み込みと印刷動作、状態通知、ジャムリカバリなどをおこなう。
【００７９】
具体的には、アプリケーション３４０から受け取ったジョブモードの指定にしたがい、印刷要求をＳＲＭ３２３に順次発行していくことで、一連のコピー／スキャン／印刷動作を実現する。このＥＣＳ３２４が取り扱う対象のジョブは、画像入力デバイスにスキャナ（SCANNER）が指定されているか、または、画像出力デバイスにプロッタ（PLOTTER）が指定されているものとする。
【００８０】
たとえば、コピー動作の場合には「SCANNER  →  PLOTTER」と指定され、ファイル蓄積の場合には「SCANNER  →  MEMORY」と指定され、ファクシミリ送信の場合には「SCANNER  →  FAX＿IN」と指定される。また、蓄積ファイル印刷またはプリンタアプリ３１１からの印刷の場合には「MEMORY  →  PLOTTER」と指定され、ファクシミリ受信の場合には「FAX＿OUT  →  PLOTTER」と指定される。
【００８１】
なお、ジョブの定義はアプリケーションによって異なるが、ここでは利用者が取り扱う１セットの画像群に対する処理動作を１ジョブと定義する。たとえば、コピーのＡＤＦ（Automatic  Document  Feeder）モードの場合は、原稿台に置かれた１セットの原稿を読み取る動作が１ジョブとなり、圧板モードは最終原稿が確定するまでの読み取り動作が１ジョブとなる。また、コピーアプリ３１２の場合には、一束の原稿をコピーする動作が１ジョブとなり、ファックスアプリ３１３の場合には、１文書の送信動作または１文書の受信動作が１ジョブとなり、プリンタアプリの場合には、１文書の印刷動作が１ジョブとなる。
【００８２】
ＭＣＳ３２５は、メモリ制御をおこなうものであり、具体的には、画像メモリの取得および開放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などをおこなう。
【００８３】
ここで、ハードディスク装置に蓄積される画像データファイルとして必要な情報を管理するために必要な機能としては、（１）ファイルアクセス（生成／削除／オープン／クローズ）機能（排他処理を含む）、（２）ファイル名称／ＩＤ管理（ファイル／ユーザ）／パスワード管理／蓄積時刻管理／ページ数／データフォーマット（圧縮方式など）／アクセス制限／作成アプリ／印刷条件管理などの各種ファイル属性管理（物理的なページ単位の画像データのファイルとしての管理）、（３）ファイル単位およびページ単位での結合／挿入／切断機能、（４）ファイルソート機能（蓄積時刻順／ユーザＩＤ順など）、（５）全ファイル情報の通知（表示／検索用）、（６）リカバリ機能（破損ファイルのファイル／ページ破棄）、（７）ファイルの自動削除機能などがある。
【００８４】
また、ＲＡＭなどのメモリへ画像データを保持しアクセスするための機能としては、（１）アプリケーション３４０からのファイルおよびページ／バンド属性情報を取得する機能、（２）アプリケーション３４０からの画像データ領域の確保、解放、リード（Read）、ライト（Write）機能などがある。
【００８５】
ＯＣＳ３２６は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールであり、オペレータのキー操作イベントを本体制御に通知する処理、各アプリがＧＵＩを構築するためのライブラリ関数を提供する処理、構築されたＧＵＩ情報をアプリ別に管理する処理、操作パネル上への表示反映処理などをおこなう。
【００８６】
このＯＣＳ３２６は、（１）ＧＵＩ構築のためのライブラリの提供機能、（２）操作部ハードウエア資源管理機能、（３）ＶＲＡＭ描画／ＬＣＤ表示機能（ハードウエア表示、表示アプリ切替、表示言語切替、ウインドウ暗色表示、メッセージ／アイコンブリンク表示、メッセージの連結表示）、（４）ハードキー入力検出機能、（５）タッチパネルキー入力検出機能、（６）ＬＥＤ出力機能、（７）ブザー出力機能などを有する。
【００８７】
ＦＣＳ３２７は、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を使ったファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読み取り、ファクシミリ受信印刷、融合送受信をおこなうためのＡＰＩを提供するものである。
【００８８】
具体的には、このＦＣＳ３２７は、（１）アプリ層から送信依頼されたドキュメントをＰＳＴＮ／ＩＳＤＮ網を使ってファクシミリ受信機に送信をおこなう送信機能、（２）ＰＳＴＮ／ＩＳＤＮ網から受信したファクシミリ受信画面、各種レポート類を各アプリ層に転送、印刷をおこなう受信機能、（３）ファックスボードに記憶されている電話帳、グループ情報などのファクシミリ管理項目の引用や登録をおこなう電話帳引用・登録機能、（４）ファックスボードに搭載されているＢＫＭに記憶されている送受信結果履歴情報などを必要としているアプリに通知するファックスログ通知機能、（５）ファックスボードの状態変化があったときにＦＣＳに登録してあるアプリに変化のあったイベントを通知するイベント通知機能などを有する。
【００８９】
ＮＣＳ３２８は、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介をおこなう。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有する。
【００９０】
アプリサービス３２９は、プラットホーム３２０を形成する共通サービスの一つであるが、上記共通システムサービス３３０を形成するＥＣＳ３２４、ＭＣＳ３２５、ＯＣＳ３２６、ＦＣＳ３２７、ＮＣＳ３２８、ＳＲＭ３２３およびＳＣＳ３２２とは異なり、アプリケーション３４０側に立ったサービスを提供するものである。
【００９１】
言い換えると、このアプリサービス３２９は、アプリケーション３４０と共通システムサービス３３０との間に介在し、両者の間の橋渡しを担う役割を果たしている。
【００９２】
具体的には、このアプリサービス３２９は、コピーアプリ３１２、ファックスアプリ３１３、スキャナアプリ３１４などが、本来おこなうべきジョブの生成やデータ通信の機能を一括して代行する。このため、コピーアプリ３１２、ファックスアプリ３１３、スキャナアプリ３１４などは、画面やキー操作を対象とすれば足りるので、アプリの開発効率が向上する。
【００９３】
アプリケーション３４０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ３１１と、コピー用アプリケーションであるコピーアプリ３１２と、ファクシミリ用アプリケーションであるファックスアプリ３１３と、スキャナ用アプリケーションであるスキャナアプリ３１４と、ネットファイル用アプリケーションであるネットファイルアプリ３１５と、工程検査用アプリケーションである工程検査アプリ３１６とを有する。
【００９４】
各アプリケーション３１１〜３１６は、プラットホーム３２０上の各プロセスを利用して動作実行し得るため、画面制御およびキー操作制御などをおこなう画面表示制御プログラムがその主体となる。特に、アプリサービス３２９がプラットホーム３２０上に設けられているので、ジョブの生成やデータ通信の機能を設ける必要がない。なお、ＮＣＳ３２８により接続されたネットワークを介して新たなアプリケーションをネットワーク経由で搭載することもできる。また、各アプリケーションはアプリケーションごとに追加または削除することができる。
【００９５】
次に、図３に示したコピーアプリ３１２を用いたコピー動作、プリンタアプリ３１１を用いたプリント動作、スキャナアプリ３１４を用いたスキャナ動作についてさらに具体的に説明する。
【００９６】
図４は、図３に示したコピーアプリ３１２を用いたコピー動作を説明するための説明図である。同図に示すように、コピーアプリ３１２はコピー画面・キー操作モジュール３１２ａを有し、オペパネからコピー条件が指定され、スタートキーが押下されると、コピー画面・キー操作モジュール３１２ａがアプリサービス３２９のアプリジョブ生成モジュール３２９ａに対してコピー条件を転送する（ステップＳ４０１）。なお、このコピー条件には、紙サイズ、部数、両面、ソート、ステープルなどがある。
【００９７】
その後、アプリジョブ生成モジュール３２９ａは、ＥＣＳ３２４のＡＰＩを用いてエンジンジョブ実行制御モジュール３２４ａに対してエンジンジョブ生成関数を呼び出し、ジョブモードの設定をおこなう。なお、かかるジョブモードとは、スキャナ、プロッタ、フィニッシャなどを動作させるために必要なパラメータ群であり、上記コピー条件から生成される。さらに、アプリジョブ生成モジュール３２９ａは、ＥＣＳ３２４のＡＰＩを用いてエンジンジョブ実行制御モジュール３２４ａに対してジョブ実行開始関数を呼び出し、ジョブ実行を指示する（ステップＳ４０２）。
【００９８】
エンジンジョブ実行制御モジュール３２４ａは、ＭＣＳ３２５のＡＰＩを用いて画像メモリハンドリングモジュール３２５ａに対して画像メモリ確保関数を呼び出し、画像メモリの確保を指示する（ステップＳ４０３）。
【００９９】
画像メモリハンドリングモジュール３２５ａは、ＳＲＭ３２３のメモリ資源管理モジュール３２３ｂに対してメモリ取得関数を呼び出しメモリを取得する（ステップＳ４０４）。エンジンジョブ実行制御モジュール３２４ａは、ＳＲＭ３２３のエンジン資源管理モジュールに対して資源取得関数を呼び出し、スキャナおよびプロッタの動作を開始し、コピージョブを実行する。
【０１００】
次に、図３に示したプリンタアプリ３１１を用いたプリント動作についてさらに具体的に説明する。図５は、図３に示したプリンタアプリ３１１を用いたプリント動作を説明するための説明図である。同図に示すように、プリンタアプリ３１１は、ＲＩＰ処理モジュール３１１ａと、プリンタ画面・キー操作モジュール３１１ｂとを有する。
【０１０１】
ＰＣなどのホストからセントロＩ／Ｆ、ＵＳＢＩ／Ｆ、ネットワークＩ／Ｆなどを経由してＳＲＭ３２３のホストＩ／Ｏ資源管理モジュール３２３ｄに印刷データコマンドが入力されると（ステップＳ５０１）、このホストＩ／Ｏ資源管理モジュール３２３ｄは、印刷データをＮＣＳ３２８のホスト通信Ｉ／Ｆ制御モジュール３２８ａに転送する。ここで、このホスト通信Ｉ／Ｆ制御モジュール３２８ａは、入力された印刷データを解析して送り先アプリケーションを判定する。ホスト通信Ｉ／Ｆ制御モジュール３２８ａは、複数の通信プロトコルまたはホストＩ／Ｆからデータを受け取り、送り先を調停する（ステップＳ５０２）。
【０１０２】
印刷データが、アプリサービス３２９内のアプリデータ通信モジュール３２９ｂに転送されると（ステップＳ５０３）、さらにアプリジョブ生成モジュール３２９ａに入力され、新たなプリントジョブが生成される（ステップＳ５０４）。
【０１０３】
アプリジョブ生成モジュール３２９ａは、印刷データの言語種類に応じてプリンタアプリ３１１のＲＩＰ処理モジュール３１１ａにデータを転送し（ステップＳ５０５）、このＲＩＰ処理モジュール３１１ａは、印刷データの画像展開をおこなった後に、アプリジョブ生成モジュール３２９ａに戻される（ステップＳ５０６）。
【０１０４】
そして、このアプリジョブ生成モジュール３２９ａで生成された画像データは、ＭＣＳ３２５の画像メモリハンドリングモジュール３２５ａに出力される（ステップＳ５０７）。画像メモリには複数のアプリからの要求が発生するため、メモリ資源の調停をおこなうＳＲＭ３２３のメモリ資源管理モジュール３２３ｂに対してメモリ確保要求を発行し、取得した後に展開された画像データがメモリ上に書き込まれる（ステップＳ５０８）。
【０１０５】
画像データの印刷準備が完了すると、アプリジョブ生成モジュール３２９ａがＥＣＳ３２４のＡＰＩを用いてエンジンジョブ実行制御モジュール３２４ａに対してエンジンジョブ生成関数を呼び出し、ジョブモード設定をおこなった後に、ジョブ開始関数を呼び出し、ジョブ実行を指示する（ステップＳ５０９）。
【０１０６】
エンジンジョブ実行制御モジュール３２４ａは、ＳＲＭ３２３のエンジン資源管理モジュール３２３ａに対してエンジン資源取得関数を呼び出し、プロッタの動作を開始し、プリントジョブを実行する（ステップＳ５１０）。
【０１０７】
次に、図３に示したスキャナアプリ３１４を用いたスキャナ動作についてさらに具体的に説明する。図６は、図３に示したスキャナアプリ３１４を用いたスキャナ動作を説明するための説明図である。同図に示すように、スキャナアプリ３１４は、スキャナ画面・キー操作モジュール３１４ａを有する。
【０１０８】
オペパネからスキャナアプリ３１４を選択するとともにスキャン条件が入力され、スタートキーが押下されると、スキャナ画面・キー操作モジュール３１４ａがアプリサービス３２９のアプリジョブ生成モジュール３２９ａに対してスキャナ条件を転送すると（ステップＳ６０１）、アプリジョブ生成モジュール３２９ａは、要求された画像サイズにしたがってスキャンに必要なメモリを確保するために、ＭＣＳ３２５の画像メモリハンドリングモジュール３２５ａが、メモリ資源の調停をおこなうＳＲＭ３２３のメモリ資源管理モジュール３２３ｂに対してメモリ確保要求を発行し、メモリが取得された後に画像データがメモリ上に書き込まれる（ステップＳ６０２〜Ｓ６０３）。
【０１０９】
画像データのスキャン準備が完了すると、アプリジョブ生成モジュール３２９ａが、ＥＣＳ３２４のエンジンジョブ実行制御モジュール３２４ａに対してエンジンジョブ生成関数を呼び出し、ジョブモード設定をおこなった後にジョブ開始関数を呼び出し、スキャンジョブ実行を指示する（ステップＳ６０４）。
【０１１０】
エンジンジョブ実行制御モジュール３２４ａは、ＳＲＭ３２３のエンジン資源管理モジュール３２３ａに対してエンジン資源取得関数を呼び出し、スキャナの動作を開始し、スキャナジョブを実行する（ステップＳ６０５）。
【０１１１】
アプリジョブ生成モジュール３２９ａが、ＥＣＳ３２４からスキャン完了のイベントを受け取ると、読み取り画像をネットワーク他のホストＩ／Ｏ資源を利用して外部のＰＣに転送をおこなうため、アプリデータ通信モジュール３２９ｂがＮＣＳ３２８のホスト通信Ｉ／Ｆ制御モジュール３２８ａに対してＵＲＬなどの転送先ＰＣのアドレスおよびスキャンした画像データ（またはメモリ上のアドレス）を送る（ステップＳ６０６〜Ｓ６０７）。ここでは、ｆｔｐやｈｔｔｐなどのファイル転送をおこなうプロトコル機能を使って画像データ通信を制御することとする。
【０１１２】
ホスト通信Ｉ／Ｆ制御モジュール３２８ａは、ネットワーク、IEEE1394、ＵＳＢ、ＳＣＳＩなどのホストＩ／Ｏ資源を確保するために、ＳＲＭ３２３のホストＩ／Ｏ資源管理モジュール３２３ｄの資源確保関数を呼び出す（ステップＳ６０８）。ホストＩ／Ｏ資源管理モジュール３２３ｄは、要求されたホストＩ／Ｏ資源が利用可能となった時点で画像データ通信をおこなう（ステップＳ６０９）。
【０１１３】
次に、コピーアプリ３１２、プリンタアプリ３１１、スキャナアプリ３１４の３つのアプリケーションの起動時処理と、それぞれのアプリ画面を生成し表示する処理と、アプリ画面選択キーが押下されたときの処理について説明する。図７は、コピーアプリ３１２、プリンタアプリ３１１、スキャナアプリ３１４の３つのアプリケーションの起動時処理と、それぞれのアプリ画面を生成し表示する処理と、アプリ画面選択キーが押下されたときの処理を説明するための説明図である。
【０１１４】
アプリケーションの起動時処理；  電源オンやシステムリセット時には少なくともＳＣＳ３２２とＯＣＳ３２６が起動された後にアプリケーションが起動される。コピーアプリ３１２、プリンタアプリ３１１およびスキャナアプリ３１４は、ＳＣＳ３２２のアプリ登録管理モジュール３２２ｂに対して起動された旨を登録する（ステップＳ７０１〜Ｓ７０３）。
【０１１５】
画面生成処理；  ＯＣＳ３２６では、複数のアプリケーションがそれぞれ仮想的な画面メモリを複数持つことができる図面管理機能を有する。このため、コピーアプリ３１２、プリンタアプリ３１１およびスキャナアプリ３１４は、それぞれウインドウ制御ライブラリモジュール３２６ａにより画面生成を実行することができる（ステップＳ７０４〜Ｓ７０８）。
【０１１６】
表示処理；  複数の画面メモリのうち一つが表示パネル上に描画される。また、複数の画面メモリの内容を合成した画面が表示されるようにしても良い。たとえば、コピー動作中にファックス受信した場合には、アプリ共通の画面領域にファックス受信中である旨を表示することができる。
【０１１７】
画面切換処理；  表示パネルに描画される画面メモリは、ＳＣＳ３２２のシステム画面表示制御モジュールによって切り換えられる。たとえば、操作パネル上のアプリ選択キーが押下された場合には、ステップＳ７０９〜Ｓ７１４にしたがって選択されたアプリ画面が描画される。また、ＳＣＳ３２２には、機器内部ハードウエアやエンジンの状態情報を保持する機器状態管理モジュール３２２ｃがあるため、ジャムや紙なしなどのエラーや異常時の表示画面などを切り換えることができる。
【０１１８】
次に、ファックスアプリ３１３またはプリンタアプリ３１１を用いたファックス送信動作について説明する。図８は、ファックスアプリ３１３またはプリンタアプリ３１１を用いたファックス送信動作を説明するための説明図である。
【０１１９】
同図に示すように、ファックスアプリ３１３を用いたファックス送信動作については、ファックス操作画面において送信宛先番号が入力され、スタートキーが押下されると、ファックス画面・キー操作モジュール３１３ａがアプリサービス３２９のアプリジョブ生成モジュール３２９ａに対してジョブ生成関数を呼び出し（ステップＳ８０１）、このファックスジョブ生成モジュール３１３ｂが、ＦＣＳ３２７のファックスジョブ実行制御モジュール３２７ａに対して送信開始関数を呼び出す（ステップＳ８０２）。
【０１２０】
すると、このファックスジョブ実行制御モジュール３２７ａは、ＥＣＳ３２４のＡＰＩを用いてエンジンジョブ実行制御モジュール３２４ａに対してエンジンジョブ生成関数を呼び出し、ジョブモードの設定をおこなう（ステップＳ８０３）。このエンジンジョブ実行制御モジュール３２４ａは、ＭＣＳ３２５のＡＰＩを用いて画像メモリハンドリングモジュール３２５ａに対して画像メモリ確保関数を呼び出し、画像メモリの確保を指示する（ステップＳ８０４）。
【０１２１】
画像メモリハンドリングモジュール３２５ａは、ＳＲＭ３２３に対してメモリ取得関数を呼び出し、ファックス原稿のスキャンに必要なメモリを取得し（ステップＳ８０５）、メモリが確保されると、エンジンジョブ実行制御モジュール３２４ａは、ＳＲＭ３２３のエンジン資源管理モジュール３２３ａに対してスキャナ資源の確保を要求する関数を呼び、確保できた後にスキャナ動作を開始する（ステップＳ８０６）。
【０１２２】
スキャナから原稿画像データがメモリ上に保持されると、ＥＣＳ３２４からＦＣＳ３２７に対してスキャン完了イベントが通知され、ファクシミリジョブ実行制御モジュール３２７ａが、ファックスボード資源管理モジュール３２３ｇの送信開始関数を呼び出すと、ＰＳＴＮ、ＩＳＤＮ回線などを使ってファックス送信手順が開始される（ステップＳ８０７〜Ｓ８０８）。
【０１２３】
次に、プリンタアプリ３１１を用いたファックス送信動作については、通常のプリント動作と同様に、印刷データがホストＩ／Ｏ資源管理モジュール３２３ｄに入力され、その際に送信宛先番号などのファクシミリ送信に必要な情報を含むコマンド情報が付加される（ステップＳ８０９）。
【０１２４】
ファックス送信用の印刷データが、ＮＣＳ３２８のホスト通信Ｉ／Ｆ制御モジュールからアプリサービス３２９のアプリデータ通信モジュール３２９ｂを経て、アプリジョブ生成モジュール３２９ａに転送されると（ステップＳ８１０〜Ｓ８１２）、新たなファックス送信用プリントジョブが生成される。
【０１２５】
そして、印刷データがＲＩＰ処理モジュール３１１ａに転送され、画像データが生成されると、この画像データは、ファクシミリ送信に必要な情報とともに、ＦＣＳ３２７のファックスジョブ実行制御モジュール３２７ａに入力され（ステップＳ８１３〜８１５）、以後ファックス送信動作と同様の処理がなされる（ステップＳ８０７〜Ｓ８０８）。
【０１２６】
なお、上記ステップＳ８１３〜Ｓ８１４によるＲＩＰ処理をおこなうのではなく、ＰＳＴＮやＩＳＤＮ回線などを使ってバイナリーデータの転送をおこなうプロトコル（ＢＦＴＰ；Binary  File  Transfer  Protocol）によって印刷データを送信することもできる。
【０１２７】
また、ここでは説明の便宜上、送信動作のみを説明したが、たとえば、ステップＳ８０８、Ｓ８０７、Ｓ８０２、Ｓ８０３、Ｓ８０４、Ｓ８０５、Ｓ８０６の順に処理することにより、ファックス受信や印刷が可能となる。なお、ＢＦＴＰを用いた印刷データの受信および印刷は、ステップＳ８０８、Ｓ８０７、Ｓ８０２、Ｓ８１５、Ｓ８１３、Ｓ８１４、Ｓ８１５、Ｓ８０３、Ｓ８０４、Ｓ８０５、Ｓ８０６の順に処理することで実現できる。
【０１２８】
次に、図１に示した複合機１２０のハードウエア構成について説明する。図９は、図１に示した複合機１２０のハードウエア構成を示す構成図である。同図に示すように、この複合機１２０は、ＣＰＵ９０２、ＳＤＲＡＭ９０３、フラッシュメモリ９０４およびＨＤ９０５などをＡＳＩＣ９０１に接続したコントローラボード９００と、オペレーションパネル９１０と、ファックスコントロールユニット（ＦＣＵ）９２０と、ＵＳＢ９３０と、ＩＥＥＥ1394９４０と、プリンタ９５０とからなる。
【０１２９】
そして、オペレーションパネル９１０はＡＳＩＣ９０１に直接接続され、ＦＣＵ９２０、ＵＳＢ９３０、ＩＥＥＥ1394９４０およびプリンタ９５０は、ＰＣＩバスを介してＡＳＩＣ９０１に接続されている。
【０１３０】
図１０は、図９に示したＡＳＩＣ９０１の細部構成を示すブロック図である。同図に示すように、このＡＳＩＣ９０１は、ＣＰＵインターフェース（CPU  I/F）、ＳＤＲＡＭインターフェース（SDRAM  I/F）、ローカルバスインターフェース（Local  BUS  I/F）、ＰＣＩインターフェース（PCI  I/F）、１２８４、ＭＡＣ（Media  Access  Controllor）、Ｉ／Ｏ、ＯＰＥインターフェース（OPE  I/F）、ＨＤインターフェース（HD  I/F）、Comp／de-comp、Rotateによって形成されている。
【０１３１】
かかるハードウエア構成を採用することにより、デバイスの共有化による低コスト設計が可能となるとともに、アプリ間融合が容易となる。また、低速機から高速機までスケーラブルなアーキテクチャーとなり、各アプリで使用するハード／ソフトが共通化され、開発効率を向上させることができる。また、新規機能に対する対応が容易となる。
【０１３２】
上述してきたように、本実施の形態では、各アプリケーションの共通部分をアプリサービス１２１ｂおよび共通システムサービス１２１ａとして括りだし、このアプリサービス１２１ｂ、共通システムサービス１２１ａおよび汎用ＯＳ１１１によりプラットホーム１２２を形成し、このプラットホーム１２２上に、プリンタアプリ１２３、コピーアプリ１２４および各種アプリ１２５を搭載するよう構成したので、各アプリケーションの開発労力軽減並びにアプリケーションのスリム化を図ることができる。
【符号の説明】
【０１３３】
１００    プリンタ
１０１    専用ＯＳ
１０２    プリンタアプリ
１１０    複合機
１１１    汎用ＯＳ
１１２    エンジン制御部
１１３    プリンタアプリ
１１４    コピーアプリ
１１５    各種アプリ
１２０    複合機
１２１ａ  共通システムサービス
１２１ｂ  アプリサービス
１２２    プラットホーム
１２３    プリンタアプリ
１２４    コピーアプリ
１２５    各種アプリ
【先行技術文献】
【特許文献】
【０１３４】
【特許文献１】特公平７−７９３６８号公報
【図１】
0005516558.tif 000002
【図２】
0005516558.tif 000003
【図３】
0005516558.tif 000004
【図４】
0005516558.tif 000005
【図５】
0005516558.tif 000006
【図６】
0005516558.tif 000007
【図７】
0005516558.tif 000008
【図８】
0005516558.tif 000009
【図９】
0005516558.tif 000010
【図１０】
0005516558.tif 000011