以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する画像形成装置をいう。
図1に示されるように、複合機1におけるソフトウェアは、ユーザインタフェース層10、コントロール層20、アプリケーションロジック層30、デバイスサービス層40、及びデバイス制御層50等より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
ユーザインタフェース層10は、機能(例えば、コピー、印刷、スキャン、FAX送信)の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部11及びローカルUI部12等が含まれる。通信サーバ部11は、例えば、非図示のクライアントPC(Personal Computer)等からネットワーク経由で要求を受け付ける。ローカルUI部12は、例えば、非図示のオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層10において受け付けられた要求は、コントロール層20に伝えられる。
コントロール層20は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層30における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。なお、本実施の形態において「複合機1の機能」とは、複合機1がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
アプリケーションロジック層30は、それぞれが複合機1において提供される機能の一部を実現する部品群が実装されている部分である。すなわち、アプリケーションロジック層30における部品を組み合わせることにより一つの機能が実現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、複合機1のソフトウェアアーキテクチャが「パイプ&フィルタ」と呼ばれる考え方に基づくことによる。
図2は、パイプ&フィルタの概念を説明するための図である。図2において、「F」はフィルタを示し、「P」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
すなわち、本実施の形態における複合機1では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機の各機能は、ドキュメントの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「変換フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお、各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的に存在しない。したがって、フィルタ単位で追加(インストール)又は削除(アンインストール)が可能とされている。
図1において、アプリケーションロジック層30には、入力フィルタとして、読取フィルタ301、保管文書読出フィルタ302、メール受信フィルタ303、FAX受信フィルタ304、PC文書受信フィルタ305、レポートフィルタ306等が含まれている。
読取フィルタ301は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ302は、複合機1の記憶装置に保管されている文書データ(画像データ)を読み出し、読み出されたデータを出力する。メール受信フィルタ303は、電子メールの受信し、当該電子メールに含まれているデータを出力する。FAX受信フィルタ304は、FAX受信を制御し、受信されたデータを出力する。PC文書受信フィルタ305は、非図示のクライアントPCから印刷データを受信し、受信された印刷データを出力する。レポートフィルタ306は、複合機1の設定情報や履歴情報等を、例えば表形式に整形されたデータとして出力する。
また、変換フィルタとしては、文書加工フィルタ311及び文書変換フィルタ312等が含まれている。文書加工フィルタ311は、入力されたデータに所定の画像変換処理(集約、拡大、又は縮小等)を施し、出力する。文書変換フィルタ312は、レンダリング処理を実行する。すなわち、入力されたPostScriptデータをビットマップデータに変換して出力する。
また、出力フィルタとしては、印刷フィルタ321、保管文書登録フィルタ322、メール送信フィルタ323、FAX送信フィルタ324、フォルダ送信フィルタ325、及びプレビューフィルタ326等が含まれている。
印刷フィルタ321は、入力されたデータをプロッタに出力(印刷)させる。保管文書登録フィルタ322は、入力されたデータを複合機1内のハードディスク内に保存する。メール送信フィルタ323は、入力されたデータを電子メールに添付して指定されたメールアドレスに送信する。FAX送信フィルタ324は、入力されたデータを指定されたFAX番号にFAX送信する。フォルダ送信フィルタ325は、入力されたデータをネットワークを介して接続されるコンピュータ等の指定されたフォルダに送信する。プレビューフィルタ326は、入力されたデータを、複合機1のオペレーションパネルにプレビュー表示させる。
デバイスサービス層40は、アプリケーションロジック層30における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ41及びデータ管理部42等が含まれる。画像パイプ41は、上述したパイプの機能を実現する。すなわち、或るフィルタからの出力データを次のフィルタに伝達する。データ管理部42は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
デバイス制御層50は、デバイス(ハードウェア)を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部51、プロッタ制御部52、メモリ制御部53、Tel回線制御部54、及びネットワーク制御部55等が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
フィルタについて更に詳しく説明する。図3は、フィルタの構成要素を説明するための図である。図3に示されるように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用UI、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
フィルタ設定用UIは、フィルタの実行条件等を設定させるための画面をオペレーションパネル等に表示させるプログラムである。例えば、読取フィルタ301であれば、解像度、濃度、画像種別等を設定させる画面が相当する。なお、オペレーションパネルの表示がHTMLデータや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用UIはHTMLデータやスクリプトであってもよい。
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、デバイスサービス層40又はデバイス制御層50等を利用して、フィルタ設定用UIを介して設定された実行条件に応じてフィルタの機能を実現する。例えば、読取フィルタ301であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。すなわち、デバイスサービス層40又はデバイス制御層50相当する機能であるが、他のフィルタから使用されないものについては、フィルタの一部として実装されてもよく、当該一部がフィルタ固有下位サービスに相当する。例えば、読取フィルタ301であれば、スキャナを制御するための機能が相当するが、本実施の形態では、デバイス制御層50においてスキャナ制御部51として実装されている。したがって、読取フィルタ301において、フィルタ固有下位サービスの実装は必ずしも必要ではない。
永続記憶領域情報は、フィルタに対する設定情報(例えば、実行条件のデフォルト値)等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部42に登録される。
図4は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
例えば、コピー機能は、読取フィルタ301と印刷フィルタ321とを接続することにより実現される。読取フィルタ301によって原稿より読み取られた画像データを印刷フィルタ321によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書加工フィルタ311が二つのフィルタの間に挿入される。
プリンタ機能(クライアントPCからの印刷機能)は、PC文書受信フィルタ305と文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。スキャンto email機能(スキャンした画像データを電子メールで転送する機能)は、読取フィルタ301とメール送信フィルタ323とを接続することによって実現される。FAX送信機能は、読取フィルタ301とFAX送信フィルタ324とを接続することによって実現される。FAX受信機能は、FAX受信フィルタ304と印刷フィルタ321とを接続することによって実現される。ドキュメントボックス蓄積機能(スキャンした画像データを複合機1内に保存する機能)は、読取フィルタ301と保管文書登録フィルタ322とを接続することによって実現される。ドキュメントボックス印刷機能(複合機1内に保存されている文書データを印刷する機能)は、保管文書読出フィルタ302と印刷フィルタ321とを接続することにより実現される。
図4において、例えば、読取フィルタ301については5つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。例えば、コピー機能とスキャン機能(ドキュメントボックス蓄積)について、その実行条件を設定させるためのユーザインタフェースは類似しているものであった。しかし、各機能をアプリケーションによって実装する場合には、アプリケーションごとに個別にユーザインタフェースの実装も行われていた。しかし、本実施の形態では、コピー機能及びスキャン機能のいずれの場合も、読取フィルタ301のユーザインタフェースによって設定が行われ、ユーザインタフェースの共通化をも図ることができる。
更に、新たな機能を実現する場合について考える。まず、機能1として、複合機1では対応していないPDL(Page Description Language)(以下、「他PDL」という。)によってクライアントPCから送信される印刷データを印刷する機能を実現する場合について考える。この場合、図4におけるプリンタ機能を雛形とすることができる。但し、プリンタ機能では、PC文書受信フィルタ305により出力されるデータがPostScript形式であることが前提とされている。文書変換フィルタ312が入力データとして扱えるのはPostScript形式のデータだからである。しかし、機能1の場合、PC文書受信フィルタ305によって受信され、当該フィルタより出力されるのは他PDL形式のデータである。したがって、このまま文書変換フィルタ312に転送しても文書変換フィルタ312は適切に処理を実行することができない。そこで、他PDL形式からPostScript形式へのデータ変換を実行する変換フィルタ(以下「他PDL−PS変換フィルタ」という。)を新たに実装し、当該フィルタをPC文書受信フィルタ305と文書変換フィルタ312との間に挿入すれば、機能1を実現することができる。すなわち、機能1は、PC文書受信フィルタ305と他PDL−PS変換フィルタと文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。
次に、機能2として、Webサイトから情報を収集し、収集された情報を印刷する機能(以下「機能2」という。)を実現する場合について考える。この場合、Webサイトから情報を収集するフィルタが存在しない。したがって、少なくともWebサイトから情報を収集する入力フィルタ(以下「Web収集フィルタ」という。)を新たに実装する必要がある。また、機能2では最終的に印刷を実行させたいので、出力フィルタとしては印刷フィルタ321を用いるのが適切である。ここで問題となるのが、Web収集フィルタと印刷フィルタ321との間をどのように接続するかである。すなわち、印刷フィルタ321の入力データはレンダリングされたビットマップである必要があるところ、Web収集フィルタ内にレンダリング機能を実装するのは非常に工数がかかるので適切ではない。そこで、既にレンダリング機能を実現する文書変換フィルタ312を利用することが考えられる。ただし、文書変換フィルタ312の入力データは、PostScript形式である必要がある。そこで、Web収集フィルタを、収集した情報をPostScript形式によって出力するように実装すれば、文書変換フィルタ312との接続が可能となる。このようにWeb収集フィルタを実装することにより、機能2は、Web収集フィルタと文書変換フィルタ312と、文書変換フィルタ312と印刷フィルタ321との接続により実現される。
以下、本実施の形態における複合機1の処理手順について説明する。図5及び図6は、複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
まず、ユーザによって入力フィルタが選択され(S101)、選択された入力フィルタの実行条件が設定される(S102)。同様に、変換フィルタ又は出力フィルタについても選択が行われ(S103)、フィルタ間の接続が指定され(S104)、実行条件が設定される(S105)。
上記の操作は、ローカルUI部12の制御のもと、例えば、図7に示されるようなオペレーションパネルを介して行われる。
図7は、オペレーションパネルにおけるフィルタの選択例を示す図である。図7において、オペレーションパネル202は、タッチパネル511とスタートボタン512とを含む。タッチパネル511は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。スタートボタン512は、要求した機能の実行開始指示を行うためのハードウェアである。
図7のタッチパネル511には、要求入力画面が表示されている。要求入力画面は、入力フィルタ選択領域513、変換フィルタ選択領域514、出力フィルタ選択領域515、及び要求表示領域516等より構成される。入力フィルタ選択領域513は、入力フィルタを選択させるための領域であり、入力フィルタごとにボタンが表示されている。入力フィルタ選択領域513でいずれかのボタンが選択されると、選択されたボタンに対応する入力フィルタのボタンが要求表示領域516に表示される。図中では、便宜上、読取フィルタ301及び保管文書読出フィルタ513のボタンが表示されている。
変換フィルタ選択領域514は、変換フィルタを選択させるための領域であり、変換フィルタごとにボタンが表示されている。変換フィルタ選択領域514でいずれかのボタンが選択されると、選択されたボタンに対応する変換フィルタのボタンが要求表示領域516に表示される。
出力フィルタ選択領域515は、出力フィルタを選択させるための領域であり、出力フィルタごとにボタンが表示されている。出力フィルタ選択領域515でいずれかのボタンが選択されると、選択されたボタンに対応する出力フィルタのボタンが要求表示領域516に表示される。図中では、便宜上、印刷フィルタ321、保管文書登録フィルタ322、メール送信フィルタ323、及びFAX送信フィルタ324のボタンが表示されている。
なお、インストールされているフィルタ(入力フィルタ、変換フィルタ、出力フィルタ)の一覧情報は、記憶装置に記録されており、例えば、コントロール層20によって管理されている。したがって、ローカルUI部12は、コントロール層20に問い合わせることにより、入力フィルタ選択領域513、変換フィルタ選択領域514、出力フィルタ選択領域515を表示させるためのフィルタの一覧情報を取得する。
要求表示領域516には、入力フィルタ選択領域513、変換フィルタ選択領域514又は出力フィルタ選択領域515において選択されたフィルタのボタンが表示され、入力フィルタ、変換フィルタ、又は出力フィルタとの間は、データの流れ又はパイプを示す矢印で接続される。矢印を操作することにより、実行するフィルタの順番を変更することも可能である。要求表示領域516における表示内容によって、ユーザは、利用するフィルタとその流れを認識することができる。要求表示領域516には、更に、設定ボタン517及び削除ボタン518が配置されている。設定ボタン517は、要求表示領域516においてフィルタのボタンが選択されている場合に、当該フィルタの設定画面を表示させるためのボタンである。すなわち、設定ボタン517が押下(タッチ)されると、選択されているフィルタのフィルタ設定UIに基づいて、その設定画面がタッチパネル511に表示される。削除ボタン518は、要求表示領域516においてフィルタのボタンが選択されている場合に、当該フィルタの利用を解除するためのボタンである。
なお、入力フィルタ、変換フィルタ、及び出力フィルタは、一つの機能に対してそれぞれ複数個の選択が可能である。例えば、スキャンされた画像と、複合機1内に保存されている画像を合成して、印刷すると共にFAX送信するといったような場合、少なくとも二つの入力フィルタ(読取フィルタ301及び保管文書読出フィルタ302)と二つの出力フィルタ(印刷フィルタ321及びFAX送信フィルタ324)とが選択される。
フィルタの選択が完了し(S106でYES)、スタートボタン512が押下されると、ユーザインタフェース層10からコントロール層20に対して、要求内容が通知される。
図8は、ユーザインタフェース層からコントロール層へ通知される要求内容を概念的に示す図である。図8に示されるように、ユーザインタフェース層10からの要求は、ユーザインタフェース層10において選択されたフィルタごとに、フィルタの種別と当該フィルタに対する設定情報とを含むものであり、更にフィルタの実行順も含も含んでいる(図中において各ブロックを結ぶ矢印が、フィルタの実行順を示す)。
図8に示されるような要求内容を受けて、コントロール層20は、選択された各フィルタ間をパイプによって接続する(S107)。パイプの実体はメモリ(HDD(Hard Disk Drive)も含む)であるが、パイプの両端のフィルタに応じて利用するメモリの種類が異なり、その対応関係は、例えば、複合機1のHDD内に予め定義されている。
図9は、フィルタとパイプの対応テーブルの例を示す図である。図9の対応テーブル60によれば、例えば、読取フィルタ301と印刷フィルタ321や、文書変換フィルタ312と印刷フィルタ321は、DMA(Direct Memory Access)パイプによって接続され、高速にデータが転送される。また、PC文書受信フィルタ305と文書変換フィルタ312とは、スプールパイプによって接続される。スプールパイプとは、HDDを用いるパイプであり、左側のフィルタから出力されたデータは、右側のフィルタが読み出すまでHDDにスプール(保存)される。それ以外のフィルタ間は、汎用メモリパイプによって接続される。汎用メモリパイプとは、有限サイズのRAMバッファによってデータ転送を行うパイプである。図9に示される対応テーブル60は、フィルタやパイプの拡張(追加)や削除等に応じて編集可能である。なお、図1における画像パイプ41は、上記の各種のパイプへのインタフェースを提供するモジュールを抽象的に表現したものである。
したがって、コントロール層20は、図9の対応テーブル60に基づいて、各フィルタ間を特定のパイプで接続する。
図10は、コントロール層によって生成される情報を概念的に示す図である。図10では、各フィルタ(「F」)間がパイプ(「P」)によって接続されている様子が示されている。
続いて、コントロール層20は、各フィルタに対して並列的に実行要求を出力する(S108)。すなわち、フィルタの呼び出しはフィルタの接続順ではなく、全てのフィルタに対してほぼ同時に行われる。フィルタ間の同期はパイプによってとられるからである。すなわち、コントロール層からの実行要求を受けて、各フィルタは自分の入力側のパイプにデータが入力されるまで待機する。但し、入力フィルタには、入力側にパイプは存在しない。したがって、入力フィルタは実行要求に応じて処理を開始する。
まず、入力フィルタは、入力デバイスよりデータを入力し(図6のS111)、当該データを、出力側に接続されているパイプに出力する(S112)。なお、データが複数回に分けて入力される場合(複数枚の原稿がスキャンされる場合等)は、データの入力とパイプへの出力が繰り返される。全ての入力データについて処理が終了すると(S113でYES)、入力フィルタの処理は終了する。
変換フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み(S121)、データに対して画像処理を施す(S122)。続いて、処理結果としてのデータを出力側に接続されているパイプに出力する(S123)。入力側のパイプに入力された全てのデータについて処理が終了すると(S124でYES)、変換フィルタの処理は終了する。
出力フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み(S131)。続いて、読み込まれたデータを出力デバイスを利用して出力する(S132)。入力側のパイプに入力された全てのデータについて処理が終了すると(S133でYES)、出力フィルタの処理は終了する。
パイプについて更に詳しく説明する。図11は、パイプを介したフィルタ間のデータの伝達手順を説明するための図である。図中において、フィルタA300a及びフィルタB300bは、それぞれフィルタを示す。DMAパイプ41aは、図9において説明した、画像パイプ41の一例としてのDMAパイプである。画像メモリ250は、複合機1に備えられた物理的な(ハードウェアとしての)画像メモリである。
フィルタA300aからフィルタB300bにデータ(画像データ)が伝達される場合、フィルタA300aは、DMAパイプ41aに対して画像データを格納するためのメモリ領域の確保を要求する(S51)。DMAパイプ41aは、当該メモリ領域を確保し、そのアドレスをフィルタA300aに返却する(S52)。フィルタA300aは、返却されたアドレス(画像メモリ250)に画像データを書き込み(S53)、画像データを書き込んだアドレスをDMAパイプ41aに通知する(S54)。
フィルタB300bは、DMAパイプ41aに対して画像データが書き込まれたアドレスが通知されるまで、当該アドレスの問い合わせを繰り返し(定期的に)行っている(S55)。但し、フィルタB300bは、当該アドレスが通知されるまで待機していてもよい。当該アドレスがDMAパイプ41aに通知されると、フィルタB300bは、当該アドレスを取得し、画像メモリ250に対する画像データの書き込みを検知する。そこで、フィルタB300bは、画像メモリ250の当該アドレスより画像データを読み出し(S56)、当該画像データに対してフィルタ300bに関する処理を実行する。処理が完了すると、フィルタB300bは、当該アドレスに係るメモリ領域の開放をDMAパイプ41aに要求する(S57)。DMAパイプ41aは、当該メモリ領域を開放する(S58)。
このように、フィルタ間のデータの伝達を画像メモリ(共有メモリ)を介して行うことにより、フィルタごとに画像データを格納するためのメモリ領域を確保する必要がなくなり、メモリ効率や処理性能の向上を図ることができる。また、フィルタ間に呼び出し関係が生じないため、フィルタの独立性を保つことができる。
次に、具体的な機能を例として、複合機1内における処理シーケンスを説明する。図12は、コピー機能を実現する際の処理手順を説明するための図である。
ステップS11において、ローカルUI部12は、図7に示したオペレーションパネルを介してユーザからコピー要求の入力(フィルタの選択)を受け付ける。
ところで、図7に示されるようにユーザに各フィルタを選択させるといったユーザインタフェースは、ユーザの要求に柔軟に対応できるという反面、コピーのように頻繁に利用する機能については、毎回フィルタの選択によって実行指示を行うのはユーザにとって煩雑である。そこで、例えば、頻繁に利用する機能については、「コピー」ボタンを表示させ、「コピー」ボタンが選択されると、内部的に利用するフィルタが選択されるようにしてもよい。
ユーザによって要求が入力されると、ローカルUI部12は、入力された要求(選択されたフィルタ)の実行をコントロール層20に要求する(S12)。コントロール層20は、選択されたフィルタ間をパイプによって接続する(S13)。
図13は、コピー機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。図13において、読取フィルタ301と印刷フィルタ321とが画像パイプ41によって接続されている。ステップS13では、このような内容を示す情報が生成される。図9より、ここでの画像パイプ41は、DMAパイプが相当する。
続いて、コントロール層20は、利用する各フィルタ(読取フィルタ301及び印刷フィルタ321)に対して実行要求を並列的に出力する(S14)。
まず、入力フィルタである読取フィルタ301は、スキャナ制御部51に対して画像の読み取りを指示する(S15)。当該指示に応じてスキャナ制御部51の制御のもと、スキャナ(撮像部)によって原稿から画像データが読み取られ、読取フィルタ301に出力される。読取フィルタ301は、当該画像データを画像パイプ41に出力する(S16)。画像パイプ41の実体はメモリであるため、画像パイプ41は、メモリ制御部53を介して画像データをメモリに書き込む(S17)。なお、ここでは、DMA転送が行われる。
一方、印刷フィルタ321は、入力側に接続されている画像パイプ41への画像データの書き込みが検知されると処理を開始する。まず、印刷フィルタ321は、画像パイプ41に対し画像データの読み込みを要求する(S18)。画像パイプ41は、メモリ制御部53を介して画像データを読み込む(S19)。印刷フィルタ321は、当該画像データの印刷をプロッタ制御部52に指示する(S20)。当該指示に応じてメモリ制御部53からプロッタ制御部52に画像データがDMA転送され、プロッタ制御部52の制御のもと、プロッタ(印刷部)によって画像データが印刷される。
次に、プリンタ機能(クライアントPCからの印刷機能)について説明する。図14は、プリンタ機能を実現する際の処理手順を説明するための図である。
ステップS21において、クライアントPCからの印刷要求が受け付けられる。当該印刷要求は、まず、ネットワーク制御部55によって受信され、通信サーバ部11に通知される。通信サーバ部11は、プリンタ機能を実現するために必要なフィルタを選択し、選択されたフィルタの実行をコントロール層20に要求する(S22)。コントロール層20は、選択されたフィルタ間をパイプによって接続する(S23)。
図15は、プリンタ機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。図15において、PC文書受信フィルタ305と文書変換フィルタ312とが画像パイプ41によって接続されている。また、文書変換フィルタ312と印刷フィルタ321とも画像パイプ41によって接続されている。図9より、PC文書受信フィルタ305と文書変換フィルタ312との間の画像パイプ41は、スプールパイプが相当する。また、文書変換フィルタ312と印刷フィルタ321との間の画像パイプ41は、DMAパイプが相当する。
続いて、コントロール層20は、利用する各フィルタ(PC文書受信フィルタ305、文書変換フィルタ312、及び印刷フィルタ321)に対して実行要求を並列的に出力する(S24)。
まず、入力フィルタであるPC文書受信フィルタ305は、ネットワーク制御部55に対して印刷データ(PDL)の受信を指示する(S25)。印刷データが受信されると、PC文書受信フィルタ305は、受信された印刷データを画像パイプ41に出力する(S26)、画像パイプ41は、メモリ制御部53を介して印刷データをメモリ(ここではHDD)に書き込む(S27)。
文書変換フィルタ312は、入力側に接続されている画像パイプ41への印刷データの書き込みが検知されると処理を開始する。まず、文書変換フィルタ312は、画像パイプ41に対し印刷データの読み込みを要求する(S28)。画像パイプ41は、メモリ制御部53を介してHDDより印刷データを読み込み(S29)、文書変換フィルタ312に出力する。文書変換フィルタ312は、当該印刷データを画像データ(ビットマップ)に変換し(S30)、当該画像データを画像パイプ41に出力する(S31)。続いて、画像パイプ41は、メモリ制御部53を介して画像データをメモリに書き込む(S32)。
印刷フィルタ321は、入力側に接続されている画像パイプ41への画像データの書き込みが検知されると処理を開始する。まず、印刷フィルタ321は、画像パイプ41に対し画像データの読み込みを要求する(S33)。画像パイプ41は、メモリ制御部53を介して画像データを読み込む(S34)。印刷フィルタ321は、当該画像データの印刷をプロッタ制御部52に指示する(S35)。当該指示に応じてメモリ制御部53からプロッタ制御部52に画像データがDMA転送され、プロッタ制御部52の制御のもと、プロッタ(印刷部)によって画像データが印刷される。
なお、他の機能についても同様のシーケンスによって実現される。
上述したように第一の形態における複合機1によれば、各フィルタを部品として各機能を構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たな機能(アプリケーション)を容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、コントロール層20及びアプリケーションロジック層30より下位の層について、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
また、フィルタ単位で実行条件の設定用のユーザインタフェースが実装されるため、或るフィルタを用いて実現されるアプリケーション間では、当該フィルタのユーザインタフェースを共通的に用いることができ、アプリケーションごとのユーザインタフェースの開発工数を削減することができる。
ところで、第一の実施の形態のようにフィルタ単位でユーザインタフェース(操作画面)が実装される場合、各フィルタのユーザインタフェースに対して共通の修正を行いたいときにフィルタごとに修正を行う必要がある。この場合、フィルタの独立性の担保の代償として開発効率の低減を招くといった問題がある。なお、共通の修正とは、例えば、各フィルタに対して横断的な機能に関するボタンの追加や、ユーザインタフェース全体のデザインの変更等が挙げられる。
但し、複数のフィルタに対するユーザインタフェースを単純に統合してしまっては、フィルタの追加(インストール)や削除(アンインストール)に伴って、統合されたユーザインタフェースを修正しなければならない。そこで、斯かる問題点を解決した例を第二の実施の形態以降において説明する。なお、第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に明記しない点については第一の実施の形態と同様でよい。
図16は、第二の実施の形態におけるアプリケーションロジック層の構成例を示す図である。図16では、第二の実施の形態において言及されないフィルタ等については省略されている。図16に示されるように、第二の実施の形態におけるアプリケーションロジック層30には、マルチ送信フィルタ330が追加されている。
マルチ送信フィルタ330は、他のフィルタと同様、図3に示されるような構造を有するフィルタであり、出力フィルタに分類される。但し、マルチ送信フィルタ330は、それ自身が出力機能を有するわけではなく、画像データの送信を実現するという点で機能が共通する複数のフィルタ(以下「送信フィルタ」という。)に関するユーザインタフェースの制御を共通的に(一元的に)行う。なお、本実施の形態では、メール送信フィルタ323、FAX送信フィルタ324、及びフォルダ送信フィルタ325が送信フィルタに該当する。
マルチ送信フィルタ330のフィルタ設定用UIは、複数の送信フィルタに関して一元的にユーザインタフェース(設定画面)の生成を行い、その設定画面をオペレーションパネル等に表示させる。
マルチ送信フィルタ330のフィルタロジックは、設定画面を介して設定された設定値を、各送信フィルタに設定する。
マルチ送信フィルタ330の永続記憶領域情報には、送信フィルタ一覧情報331が含まれる。送信フィルタ一覧情報331は、送信フィルタに該当するフィルタのフィルタ名及び当該フィルタを呼び出すために必要な情報(フィルタの実体のファイル名等)がフィルタごとに記録された情報である。送信フィルタ一覧情報331には、例えば、送信フィルタに該当するフィルタが複合機1にインストールされる際に当該フィルタに関する情報が追加され、アンインストールされる際に当該フィルタに関する情報が削除される。
なお、マルチ送信フィルタ330によってユーザインタフェースが一元的に制御される各送信フィルタは、フィルタ設定用UIは有していなくてもよい。
以下、第二の実施の形態における処理手順について説明する。図17は、第二の実施の形態の処理手順を説明するための図である。図17に示されるように、第二の実施の形態では、便宜上、送信フィルタとしてメール送信フィルタ323及びフォルダ送信フィルタ325がインストールされていることとする。
図17における各ステップの詳細は、図18及び図20を用いて説明する。図17と図18又は図20とのステップ番号は共通する。図18は、第二の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。ここで、「予め」とは、例えば、各送信フィルタのインストール時であってもよい。
まず、マルチ送信フィルタ330のフィルタロジックは、配下の送信フィルタを送信フィルタ一覧情報331に基づいて判定し、判定された各送信フィルタ(メール送信フィルタ323、フォルダ送信フィルタ325)より、それぞれの実行条件として設定可能な設定項目の情報(設定項目名等)と、それぞれのフィルタ名とを取得する(S201)。
続いて、送信フィルタ330のフィルタロジックは、取得された情報に基づいて各送信フィルタの設定項目名とフィルタ名との対応表を生成し、当該対応表を不揮発性の記憶装置(HDD(Hard Disk Drive)等)に保存(記録)する(S202)。
図19は、第二の実施の形態における設定項目名とフィルタ名との対応表の例を示す図である。図19に示される対応表332には、設定項目名として、メール本文、送信時刻、送信先フォルダパスワード等が記録され、それぞれの設定項目が取得された送信フィルタのフィルタ名が記録されている。なお、送信時刻指定には、メール送信フィルタ323及びフォルダ送信フィルタ325の双方のフィルタ名が対応付けられている。これは、当該設定項目が、双方の送信フィルタより取得されたことを示す。
続いて、図20は、第二の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。ここでは、例えば、図7に示されるような要求入力画面において、利用する出力フィルタとして、マルチ送信フィルタ330が選択されていることとする。
例えば、要求入力画面の要求表示領域516においてマルチ送信フィルタ330のボタンが選択され、設定ボタン517が押下(タッチ)されることにより、ローカルUI部12よりユーザインタフェースの表示情報の提供が要求されると、マルチ送信フィルタ330のフィルタ設定用UIは、対応表332に基づいて表示情報を生成し、ローカルUI部12に返信する(S211)。ローカルUI部12は、返信された表示情報に基づいてオペレーションパネル等にユーザインタフェースを表示させる。
図21は、第二の実施の形態において表示されるユーザインタフェースの例を示す図である。図21に示されるように、設定画面410には、対応表322に含まれる全ての設定項目について、設定値を入力させるための領域が配置されている。すなわち、設定画面410は、特定の送信フィルタに限定された設定画面ではなく、マルチ送信フィルタ330配下の各送信フィルタに対して共通の設定画面として機能する。
続いて、設定画面410において、設定項目に対する設定値がユーザによって入力されると、ローカルUI部12は、設定の対象とされた設定項目名と設定値とをマルチ送信フィルタ330のフィルタロジックに通知する(S212)。なお、ここでは、設定画面410に表示された全ての設定項目に対して設定値が入力される必要はない。ユーザは、自らが利用する送信手段(メール又はFAX)に対して必要な設定項目について設定値を入力すればよい。
続いて、マルチ送信フィルタ330のフィルタロジックは、入力された各設定値について、その設定項目名と対応表332とに基づいて設定先の送信フィルタを判定する(S213)。
設定値が設定された設定項目名のレコードが対応表332に含まれている場合(S214でYes)、マルチ送信フィルタ330のフィルタロジックは、当該設定項目名に対応する送信フィルタに対して当該設定値を設定する(S215)。例えば、メール本文が入力された場合、その値はメール送信フィルタ323に設定される。また、送信時刻が設定された場合、その値は、メール送信フィルタ323及びフォルダ送信フィルタ325の双方に設定される。一方、設定値が設定された設定項目名のレコードが対応表332に含まれていない場合(S214でNo)、マルチ送信フィルタ330のフィルタロジックは、ローカルUI部12にエラーを通知する(S216)。
以降、メール送信フィルタ323又はフォルダ送信フィルタ325が利用される(実行される)場合、各送信フィルタは、設定値に応じて動作する。
上述したように、第二の実施の形態における複合機1によれば、マルチ送信フィルタ330により、複数の送信フィルタに対して共通の設定画面が一元的に生成される。また、共通の設定画面において設定された設定値は、マルチ送信フィルタ330によって、対応表332に基づいてその設定項目に対応する送信フィルタに対して適切に設定される。したがって、送信フィルタごとにユーザインタフェースを実装しなくてもよい。また、設定画面は、複合機1にインストールされている送信フィルタの構成に基づいて動的に生成される。したがって、送信フィルタが新たに追加された場合や削除された場合でも、斯かる構成の変更が設定画面の表示内容に自動的に反映される。
ところで、「宛先」のように、送信フィルタごとにその設定値のデータ形式が異なる設定項目については、設定項目名ではなく、入力された設定値の形式によって設定先の送信フィルタを判定してもよい。以下、斯かる例を第三の実施の形態として説明する。第三の実施の形態において、特に明記しない点については第二の実施の形態と同様でよい。
図22は、第三の実施の形態の処理手順を説明するための図である。図22に示されるように、第三の実施の形態では、便宜上、送信フィルタとしてメール送信フィルタ323、FAX送信フィルタ324、及びフォルダ送信フィルタ325がインストールされていることとする。
図22における各ステップの詳細は、図23及び図25を用いて説明する。図22と図23又は図25とのステップ番号は共通する。図23は、第三の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
まず、マルチ送信フィルタ330のフィルタロジックは、配下の送信フィルタを送信フィルタ一覧情報331に基づいて判定し、配下の各送信フィルタ(メール送信フィルタ323、FAX送信フィルタ324、フォルダ送信フィルタ325)より、それぞれの宛先のデータ形式(宛先形式)と、それぞれのフィルタ名とを取得する(S301)。
続いて、送信フィルタ330のフィルタロジックは、取得された情報に基づいて宛先形式とフィルタ名との対応表を生成し、当該対応表を不揮発性の記憶装置(HDD(Hard Disk Drive)等)に保存(記録)する(S302)。
図24は、第三の実施の形態における宛先形式とフィルタ名との対応表の例を示す図である。図24に示される対応表333には、宛先形式として、「全て数字」、「半角英数字中に@を含む」、「半角英数字中に¥を含む」等が記録され、それぞれの宛先形式が取得された送信フィルタのフィルタ名が記録されている。すなわち、FAX送信フィルタ324については、FAX番号が宛先となるため、その形式は全て数字となる。また、メール送信フィルタ323については、メールアドレスが宛先となるため、その形式は、半角英数字中に@を含むものとなる。更に、フォルダ送信フィルタ325については、フォルダのパス名が宛先となるため、その形式は、半角英数字中に¥を含むものとなる。
続いて、図25は、第三の実施の形態において送信フィルタに対する宛先の設定処理を説明するためのフローチャートである。図25が実行される場面は、第二の実施の形態において図20が実行される場面と同様である。
例えば、ローカルUI部12よりユーザインタフェースの表示情報の提供が要求されると、マルチ送信フィルタ330のフィルタ設定用UIは、宛先を設定させるための画面(宛先設定画面)の表示情報を生成し、ローカルUI部12に返信する(S311)。ローカルUI部12は、返信された表示情報に基づいてオペレーションパネル等に宛先設定画面を表示させる。なお、宛先設定画面の表示情報は動的に生成されなくてもよく、固定的であってもよい。
図26は、第三の実施の形態における宛先設定画面の例を示す図である。図26に示される宛先設定画面420には、複数の宛先の入力が可能とされている。すなわち、追加ボタン421が選択(押下)されると、宛先入力欄が一行追加され、更なる宛先の入力が可能となる。
続いて、宛先設定画面420において、宛先がユーザによって入力されると、ローカルUI部12は、入力された宛先をマルチ送信フィルタ330に通知する(S312)。なお、宛先設定画面420において設定される宛先は、FAX番号、メールアドレス、フォルダのパス名等が混在していてもよい。
続いて、マルチ送信フィルタ330のフィルタロジックは、入力された各宛先についてデータ形式を判別(解析)し(S313)、そのデータ形式と対応表333とに基づいて設定先の送信フィルタを判定する(S314)。
入力された宛先のデータ形式に対応するレコードが対応表333に含まれている場合(S315でYes)、マルチ送信フィルタ330のフィルタロジックは、当該データ形式に対応する送信フィルタに対して当該宛先を設定する(S316)。一方、入力された宛先のデータ形式に対応するレコードが対応表333に含まれていない場合(S316でNo)、マルチ送信フィルタ330のフィルタロジックは、ローカルUI部12にエラーを通知する(S318)。
以降、いずれかの送信フィルタが利用される(実行される)場合、当該送信フィルタは、設定された宛先に画像データを送信する。
上述したように、第三の実施の形態における複合機1によれば、入力された宛先は、対応表333に基づいて、そのデータ形式に応じた送信フィルタに設定される。したがって、複数の送信フィルタに対して共通の宛先設定画面を用いることができる。また、送信フィルタが新たに追加された場合や削除された場合は、対応表333が更新されるため、斯かる構成の変更が自動的に処理内容に反映される。
次に、第四の実施の形態について説明する。第四の実施の形態において、特に明記しない点については第二の実施の形態と同様でよい。
図27は、第四の実施の形態の処理手順を説明するための図である。図27に示されるように、第四の実施の形態では、便宜上、送信フィルタとしてメール送信フィルタ323及びFAX送信フィルタ324がインストールされていることとする。
図27における各ステップの詳細は、図28及び図30を用いて説明する。図27と図28又は図30とのステップ番号は共通する。図28は、第四の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
まず、マルチ送信フィルタ330のフィルタロジックは、配下の送信フィルタを送信フィルタ一覧情報331に基づいて判定し、配下の各送信フィルタ(メール送信フィルタ323、FAX送信フィルタ324)より、それぞれが利用する通信手段の種別を識別する情報(通信手段名)と、それぞれのフィルタ名とを取得する(S401)。
続いて、送信フィルタ330のフィルタロジックは、取得された情報に基づいて通信手段とフィルタ名との対応表を生成し、当該対応表を不揮発性の記憶装置(HDD(Hard Disk Drive)等)に保存(記録)する(S402)。
図29は、第三の実施の形態における通信手段名とフィルタ名との対応表の例を示す図である。図29に示される対応表334には、通信手段として、電話回線及びLAN回線が記録され、それぞれの通信手段を利用する送信フィルタのフィルタ名が記録されている。すなわち、電話回線を利用するのはFAX送信フィルタ324であり、LAN回線を利用するのはメール送信フィルタ323である。
すなわち、第四の実施の形態では、各送信フィルタが利用する通信手段を基準として各送信フィルタが分類される例を示す。
続いて、図30は、第四の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。図30が実行される場面は、第二の実施の形態において図20が実行される場面と同様である。
例えば、ローカルUI部12よりユーザインタフェースの表示情報の提供が要求されると、マルチ送信フィルタ330のフィルタ設定用UIは、対応表335に基づいて表示情報を生成し、ローカルUI部12に返信する(S411)。ローカルUI部12は、返信された表示情報に基づいてオペレーションパネル等にユーザインタフェースを表示させる。
ここで、対応表335は、予めマルチ送信フィルタ330が、例えば、自らの永続記憶領域情報として管理している情報であり、設定項目名と通信手段の種別(送信フィルタの分類)との対応が定義されたものである。図31は、第四の実施の形態における設定項目名と通信手段との対応表の例を示す図である。
図31に示されるように、対応表335には、設定項目名ごとに、当該設定項目の設定が必要とされる通信手段が記録されている。すなわち、第四の実施の形態では、設定項目は、送信フィルタごとといった細かい単位ではなく通信手段の種別に応じて定まるであろうという考えに基づき、対応表335に基づいて設定画面の表示情報が生成される。したがって、送信フィルタの分類の基準は設定項目の共通性に基づいて定めると良い。
対応表335に基づいて表示される設定画面の例を示す。図32は、第四の実施の形態において表示されるユーザインタフェースの例を示す図である。図32に示されるように、設定画面430には、対応表335に含まれる全ての設定項目について、設定値を入力させるための領域が配置されている。
続いて、設定画面430において、設定項目に対する設定値がユーザによって入力されると、ローカルUI部12は、設定の対象とされた設定項目名と設定値とをマルチ送信フィルタ330のフィルタロジックに通知する(S412)。
続いて、マルチ送信フィルタ330のフィルタロジックは、入力された各設定値について、その設定項目名と対応表335とに基づいて、対応する通信手段を判定する(S413)。続いて、マルチ送信フィルタ330のフィルタロジックは、各設定値について、対応表334に基づいて、判定された通信手段に対応する送信フィルタを判定する(S414)。
判定された通信手段のレコードが対応表334に含まれている場合(S415でYes)、マルチ送信フィルタ330のフィルタロジックは、当該通信手段に対応する送信フィルタに対して当該設定値を設定する(S416)。例えば、メール本文が入力された場合、その値はメール送信フィルタ323に設定される。また、送信時刻が設定された場合、その値は、メール送信フィルタ323及びFAX送信フィルタ324の双方に設定される。一方、設定値が設定された通信手段のレコードが対応表334に含まれていない場合(S415でNo)、マルチ送信フィルタ330のフィルタロジックは、ローカルUI部12にエラーを通知する(S417)。
上述したように、第四の実施の形態における複合機1によれば、マルチ送信フィルタ330により、複数の送信フィルタに対して共通の設定画面が一元的に生成される。また、共通の設定画面において設定された設定値は、マルチ送信フィルタ330によって、対応表334及び335に基づいてその設定項目に対応する送信フィルタに対して適切に設定される。したがって、送信フィルタごとにユーザインタフェースを実装しなくてもよい。また、設定画面は、送信フィルタごとではなく、更に抽象度の高い通信手段(分類)との対応関係を示す対応表335に基づいて生成されるため、送信フィルタが追加されたとしても、既存の通信手段が利用される限り変更の必要はない。
なお、上記では、対応表335のみに基づいて設定画面430が生成される例について説明したが、対応表334及び335の双方を用いて設定画面430を生成するようにしてもよい。具体的には、対応表334に登録されていない通信手段に対応する設定項目については、設定画面430に表示させないようにしてもよい。そうすることにより、送信フィルタのインストール状況に応じた操作画面を表示させることができる。
次に、第二の実施の形態の変形例として、第五の形態を説明する。第五の実施の形態では図20に対応する処理が異なる。したがって、図20に対応する処理について説明する。他については第二の実施の形態と同様でよい。すなわち、図20に対応する処理の前に、図18の処理が実行されている。
図33は、第五の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。
ステップS511、S512は、図20のステップS211、S212と同じである。
続いて、マルチ送信フィルタ330のフィルタロジックは、入力された各設定値について、その設定項目名を各送信フィルタに通知し、当該設定項目名の設定値の要否を問い合わせる(S513)。続いて、マルチ送信フィルタ330のフィルタロジックは、各送信フィルタより問い合わせに対する回答を受信する(S514)。設定値が必要であることを示す回答があった場合(S515でYes)、マルチ送信フィルタ330のフィルタロジックは、当該回答を行った送信フィルタに対して当該設定値を設定する(S516)。
問い合わせを行った全ての送信フィルタからの回答に対して処理が完了したら(S517でYes)、設定値が必要であることを示す回答が少なくとも一つは有ったか否かを判定する(S518)。斯かる回答が一つも無かった場合(S518でNo)、マルチ送信フィルタ330のフィルタロジックは、ローカルUI部12にエラーを通知する(S519)。
上述したように、第五の実施の形態における複合機1によれば、第二の実施の形態と同様の効果を得ることができる。なお、マルチ送信フィルタ330は、各送信フィルタに対して設定値の要否の問い合わせを行わず、強制的に設定項目名と設定値とを各送信フィルタに通知するようにしてもよい。この場合、各送信フィルタ側で、通知された設定項目名に基づいて、その設定値の要否を判定し、必要な設定値のみを自らに設定すればよい。
なお、第二から第五の実施の形態においては、送信フィルタを例として説明したが、第二から第五の実施の形態に係る発明の適用範囲は送信フィルタに限定されない。機能的に共通するソフトウェア部品であれば、設定項目の共通性は一般的に高い。したがって、機能的な共通性を有する複数のソフトウェア部品が存在する環境において、当該発明は適切に適用可能である。
なお、第二から第五の実施の形態において、マルチ送信フィルタ330のフィルタロジックは、識別情報取得手段、記録手段、設定手段、分類識別情報取得手段等に対応する。マルチ送信フィルタ330のフィルタ設定用UIは、設定画面表示手段に対応する。
なお、以下に複合機1のハードウェア構成の一例を示す。図34は、本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。
複合機1のハードウェアとしては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、複合機1のシステムメモリである。MEM−C232は、複合機1のローカルメモリである。HDD233は、複合機1のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル202は、オペレータが複合機1に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示部)である。
なお、図1に示されるソフトウェアは、例えば、MEM−C232に格納され、CPU211によって処理されることによりその機能を複合機に実行させる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。