(57)【要約】【課題】画像形成装置を構成するモジュールから、該モジュール本来の処理以外の処理を切り離して新たなモジュールを構成でき、該切り離した処理を対応するモジュールにおいて実行させることができる画像形成装置および制御方法並びにプログラムおよび記録媒体を提供する。【解決手段】ハードウェア資源と、該ハードウェア資源に対して、画像形成処理を実行するソフトウェアとを有する画像形成装置に、ソフトウェアは、機能に応じて、階層構造を有する複数のコンポーネントに分解され、前記コンポーネントにより複数の処理が実行され、少なくとも一部のコンポーネントにより実行される処理が、対応するコンポーネントから切り離され、少なくとも一部のコンポーネントにより実行される処理を、対応するコンポーネントにより実行される処理の指定された時点に織り込む織り込み手段と、織り込まれた処理を、指定された時点で実行する処理手段とを備えることにより上記課題を解決する。【選択図】図４
2008077234.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア資源と、該ハードウェア資源に対して、画像形成処理を実行するソフトウェアとを有する画像形成装置であって、
前記ソフトウェアは、機能に応じて、階層構造を有する複数のコンポーネントに分解され、前記コンポーネントにより複数の処理が実行され、少なくとも一部のコンポーネントにより実行される処理が、対応するコンポーネントから切り離され、
前記少なくとも一部のコンポーネントにより実行される処理を、対応するコンポーネントにより実行される処理の指定された時点に織り込む織り込み手段と、
前記織り込まれた処理を、前記指定された時点で実行する処理手段と
を備えることを特徴とする画像形成装置。
【請求項２】
請求項１に記載の画像形成装置において、
前記少なくとも一部のコンポーネントにより実行される処理は、前記対応するコンポーネントにより実行される処理に関する履歴を取得する処理であることを特徴とする画像形成装置。
【請求項３】
請求項２に記載の画像形成装置において、
前記少なくとも一部のコンポーネントにより実行される処理は、取得する項目を含む履歴のフォーマットの情報を用いて履歴を取得する処理であることを特徴とする画像形成装置。
【請求項４】
請求項３に記載の画像形成装置において、
前記少なくとも一部のコンポーネントにより実行される処理は、コンポーネント毎の履歴のフォーマットの情報を用いて履歴を取得する処理であることを特徴とする画像形成装置。
【請求項５】
請求項２に記載の画像形成装置において、
取得した履歴に基づいて、課金を行う課金手段
を備えることを特徴とする画像形成装置。
【請求項６】
請求項５に記載の画像形成装置において、
処理と料金との対応を示す料金表をユーザ毎に備え、
前記課金手段は、前記料金表に基づいて、各ユーザに対して課金することを特徴とする画像形成装置。
【請求項７】
請求項２に記載の画像形成装置において、
前記処理手段は、取得した履歴を、自装置に内蔵される記憶手段、自装置外部のストレージサーバ、自装置に着脱可能な記録媒体のうちの少なくとも１つに記録することを特徴とする画像形成装置。
【請求項８】
請求項７に記載の画像形成装置において、
前記処理手段は、取得した履歴を、別の場所で処理できるデータ形式で保存することを特徴とする画像形成装置。
【請求項９】
請求項８に記載の画像形成装置において、
前記データ形式は、ＣＳＶであることを特徴とする画像形成装置。
【請求項１０】
ハードウェア資源と、該ハードウェア資源に対して、画像形成処理を実行するソフトウェアとを有する画像形成装置における制御方法であって、
前記ソフトウェアは、機能に応じて、階層構造を有する複数のコンポーネントに分解され、前記コンポーネントにより複数の処理が実行され、少なくとも一部のコンポーネントにより実行される処理が対応するコンポーネントから切り離され、
前記少なくとも一部のコンポーネントにより実行される処理を、対応するコンポーネントにより実行される処理の指定された時点に織り込むステップと、
前記織り込まれた処理を、前記指定された時点で実行するステップと
を有することを特徴とする制御方法。
【請求項１１】
請求項１０に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル複写機、ディジタル複合機、ＰＣ、サーバ、印刷装置などからなるシステムに関し、特に、スキャナ、コピー、ファクシミリ、プリンタなどの機能を有する画像形成装置および制御方法並びにプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、プリンタ、コピー、ファクシミリなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、融合機という）が知られるようになった。この融合機は、図１に示すように、ソフトウェア群２と、融合機起動部３と、ハードウェア資源４とを含むように構成される（例えば、特許文献１参照）。
【０００３】
融合機１は、各アプリケーションで共通的に必要な処理をプラットフォーム６で一元的に処理することができる。融合機１は、図２に示されるように、画像情報を生成するコピーアプリ２２、プリンタアプリ２１、ＦＡＸアプリ２３と、画像情報に基づいて画像を形成するエンジンと、アプリケーションが共通して使用するとともに、画像情報に関して前記アプリケーションと前記画像形成手段とのインタフェースを行うプラットフォーム６とを有している。
【０００４】
プラットフォーム６により、アプリケーションは、動作モードを通知するだけで印刷することが可能となる。また、動作モードの通知は、アプリケーションにより異なるものではなく、統一されたルールに従っている。さらに、エンジン９０が変わった場合は、共通プラットフォーム６がその変更を吸収する。また、エンジンも、プラットフォーム６がアプリケーションの要求を調整することにより、待ちの状態が発生することがなくなる。
【０００５】
このような融合機１では、各モジュール、すなわち各アプリケーションにおいて、例えば動作情報や過去の処理情報などの履歴情報、言い換えればログ情報が残される。このログ情報は、例えば、開発中のデバッグ、すなわち検証・評価に使用される。
【特許文献１】特許第３７２１１５１号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した画像形成装置では、各モジュールは、各モジュールにおける本来の処理以外の処理も行う。例えば、各モジュールは、独立して、履歴情報を残すように構成される。各モジュールにおいて残された履歴情報は、開発中に利用されるか、課金などの予め決められた用途に利用される。
【０００７】
この場合、各モジュールにおける本来の処理以外の処理に対して変更が生じた場合には、各モジュールに対して個別に変更処理を行う必要がある。例えば、後から履歴情報として収集する項目を追加したい場合、その項目を追加したいモジュールすべてに対して個別に追加する必要がある。
【０００８】
そこで、本発明では、画像形成装置を構成するモジュールから、該モジュール本来の処理以外の処理を切り離して新たなモジュールを構成でき、該切り離した処理を対応するモジュールにおいて実行させることができる画像形成装置および制御方法並びにプログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の画像形成装置は、
ハードウェア資源と、該ハードウェア資源に対して、画像形成処理を実行するソフトウェアとを有する画像形成装置であって、
前記ソフトウェアは、機能に応じて、階層構造を有する複数のコンポーネントに分解され、前記コンポーネントにより複数の処理が実行され、少なくとも一部のコンポーネントにより実行される処理が、対応するコンポーネントから切り離され、
前記少なくとも一部のコンポーネントにより実行される処理を、対応するコンポーネントにより実行される処理の指定された時点に織り込む織り込み手段と、
前記織り込まれた処理を、前記指定された時点で実行する処理手段
を備えることを特徴の１つとする。
【００１０】
このように構成することにより、コンポーネントから切り離された処理により別のコンポーネントを構成でき、該切り離された処理を対応するコンポーネントにより実行される処理に織り込むことができる。また、後から切り離された処理を変更する場合でも、変更後の処理を対応するコンポーネントに織り込むことにより、コンポーネント本来の処理に影響を与えずに変更することができる。例えば、各コンポーネントからシステム内部で横断的に必要となる処理を切り離して、別のコンポーネントを構成でき、該切り離した処理を各コンポーネントに織り込むことができる。
【００１１】
本発明の制御方法は、
ハードウェア資源と、該ハードウェア資源に対して、画像形成処理を実行するソフトウェアとを有する画像形成装置における制御方法であって、
前記ソフトウェアは、機能に応じて、階層構造を有する複数のコンポーネントに分解され、前記コンポーネントにより複数の処理が実行され、少なくとも一部のコンポーネントにより実行される処理が対応するコンポーネントから切り離され、
前記少なくとも一部のコンポーネントにより実行される処理を、対応するコンポーネントにより実行される処理の指定された時点に織り込むステップと、
前記織り込まれた処理を、前記指定された時点で実行するステップと
を有することを特徴の１つとする。
【００１２】
このようにすることにより、コンポーネントから切り離された処理により別のコンポーネントを構成でき、該切り離された処理を対応するコンポーネントにより実行される処理に織り込むことができる。また、後から切り離された処理を変更する場合でも、変更後の処理を対応するコンポーネントに織り込むことにより、コンポーネント本来の処理に影響を与えずに変更することができる。例えば、各コンポーネントからシステム内部で横断的に必要となる処理を切り離して、別のコンポーネントを構成でき、該切り離した処理をコンポーネントに織り込むことができる。
【００１３】
本発明のプログラムは、上述した制御方法をコンピュータに実行させるためのプログラムである。
【００１４】
本発明の記録媒体は、上述したプログラムを記録したコンピュータ読取可能な記録媒体である。
【発明の効果】
【００１５】
本発明の実施例によれば、画像形成装置を構成するモジュールから、該モジュール本来の処理以外の処理を切り離して新たなモジュールを構成でき、該切り離した処理を対応するモジュールにおいて実行させることができる画像形成装置および制御方法並びにプログラムおよび記録媒体を実現できる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００１７】
本発明の実施例にかかる画像形成装置が適用されるシステムの構成例について、図３を参照して説明する。図３は、本実施例にかかる画像形成装置が適用されるシステムの構成を示したものである。
【００１８】
システムでは、画像形成装置としてのディジタル複合機１００と、複数のパーソナルコンピュータ２００（２００１、２００２、・・・、２００ｎ）（ｎは、整数）と、サーバ装置３００が、通信網（ネットワーク）５０によって、接続されている。また、ディジタル複合機１００には、シリアルケーブルなどでパーソナルコンピュータ２０００が直接接続されている。
【００１９】
サーバ装置３００は、通信網５０、例えばＬＡＮに接続されているパーソナルコンピュータ２００１〜２００ｎに対して、電子メールの収集や配布のサービスを行う。
【００２０】
また、ディジタル複合機１００は、各種コピー機能、原稿画像を読取り、その読み取って得た画像データを電子メールにより送信する、いわゆるスキャン  トゥ  メール（Ｓｃａｎ  Ｔｏ  Ｅｍａｉｌ）機能、ファクシミリ伝送手順により画像情報伝送を行うファクシミリ機能などを備えている。
【００２１】
次に、本実施例にかかるディジタル複合機１００に組み込まれるソフトウェアについて、図４を参照して説明する。図４は、本実施例にかかる画像形成装置に組み込まれるソフトウェアの概略構成を示すコンポーネント図である。
【００２２】
本実施例にかかるディジタル複合機１００のソフトウェアは、機能に応じて、階層構造を有する複数のコンポーネントに分解される。ここで、コンポーネントとは、コンパイル、リンク、実行の単位となるソフトウェアである。したがって、ソースファイル、実行モジュールもコンポーネントである。ソフトウェアは、ユーザインターフェース（ＩＦ：  Ｉｎｔｅｒｆａｃｅ）層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０と、ユーザインターフェース層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０の少なくとも一部の層により実行される処理を切り離し、該切り離した処理を実行するクロスカット層１１２により構成される。処理の変更に対する手間を軽減する観点からは、クロスカット層１１２は、ユーザインターフェース層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０に対して横断的に必要となる処理を実行するコンポーネントにより構成されることが好ましい。
【００２３】
本実施例においては、クロスカット層１１２が、ユーザインターフェース層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０に対して横断的に必要となる処理を実行するコンポーネントにより構成される場合について説明する。
【００２４】
ユーザインターフェース層１０２は、通信サーバＩ／Ｆ１１４およびローカルＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）１１６の各コンポーネントを備える。コントロール層１０４は、パラメータ１１８およびアクティビティ１２０の各コンポーネントを備える。アプリケーションロジック層１０６は、入力処理部１２２、加工処理部１２４、出力処理部１２６および情報管理部１２８の各コンポーネントを備える。デバイスサービス層１０８は、データ管理部１３０のコンポーネントを備える。デバイス層１１０は、デバイス制御部１３２１〜１３２ｍ（ｍは、ｍ＞０の整数）の各コンポーネントを備える。クロスカット層１１２は、上述した処理手段としての各コンポーネントの少なくとも一部のコンポーネントにより実行される処理を行う。例えば、履歴部１３４、アクセス制御部１３６および課金部１３８の織り込み手段としての各コンポーネントを備える。処理の変更に対する手間を軽減する観点からは、クロスカット層１１２は、上述した処理手段としての各コンポーネントに対して横断的に必要となる処理、言い換えれば少なくとも２つのコンポーネントにより共通に実行される処理を実行する織り込み手段としてのコンポーネントにより構成されるのが好ましい。
【００２５】
ユーザインターフェース層１０２は、機器外部から入力された指示を受け付け、その指示の内容を解釈して、その指示内容を示す情報をコントロール層１０４に対して入力する。具体的には、ローカルＵＩ１１６は、機器に付属の操作部、例えばオペレーションパネルにより、ユーザの操作による指示を受け付け、その指示の内容を示す情報をコントロール層１０４に入力する。
【００２６】
通信サーバＩ／Ｆ１１４は、ネットワーク経由の指示、例えばパーソナルコンピュータ２００、サーバ３００からの指示を受け付け、その指示の内容を示す情報をコントロール層１０４に入力する。例えば、通信サーバＩ／Ｆ１１４は、ユーザがパーソナルコンピュータ２００を使用し、ブラウザからアクセスすることにより入力した指示を、ネットワーク５０を介して受け付ける。
【００２７】
コントロール層１０４では、ユーザインターフェース層１０２から入力された指示内容を示す情報がパラメータ部１１８に格納される。また、アクティビティ部２１０は、ユーザインターフェース層１０２から入力された指示内容を示す情報に基づいて、アプリケーションロジック層１０６のコンポーネントの中から指示を実行するために必要なコンポーネントを選択し、選択されたコンポーネントに実行を要求する。
【００２８】
アプリケーションロジック層１０６は、コントロール層１０４から入力されたコンポーネントの実行の要求にしたがって、選択されたコンポーネントの実行を行う。
【００２９】
アプリケーションロジック層１０６は、ユーザの指示を実行するための機能を実現するコンポーネント群により構成される。これらのコンポーネントを複数使用することで、ユーザの要求が実現される。本実施例においては、一例として、アプリケーションロジック層１０６が入力処理部１２２、加工処理部１２４、出力処理部１２６および情報管理部１２８の各コンポーネントにより構成される場合について説明するが、その他の機能を追加するようにしてもよい。
【００３０】
入力処理部１２２は、文書データ（入力ドキュメント）の入力処理を行う。例えば、紙文書、電子文書、ファクシミリ受信文書の入力処理を行う。加工処理部１２４は、加工処理の対象となる画像を求め、これら加工処理の対象となる画像で構成される文書データ（ユーザドキュメント）を生成する。また、生成された文書データを出力先に応じて整形した文書データ（出力ドキュメント）を生成する。例えば、入力処理された文書データから、ページとして構成することが可能な所定のサイズに分割し、加工処理の対象となる画像を求める。出力処理部１２６は、出力先に応じて整形した文書データに対して、印刷、保存あるいはファクシミリ送信などの出力を行う。
【００３１】
入力元あるいは出力先によらず共通して加工処理を行うためには、予めフォーマットを用意しておき、このフォーマットに入力ドキュメントを当てはめて管理することで、入力元あるいは出力先に関わらず共通して管理することを可能とし、さらには容易に加工処理を行うことを可能とする。情報管理部１２８は、予め用意されたフォーマットに基づいて、入力ドキュメントを管理する。
【００３２】
デバイスサービス層１０８は、アプリケーションロジック層１０６より上のレイヤ（層）に対して、デバイスを隠蔽し、アプリケーションロジック層１０６からの出力にしたがって、画像を形成する。形成された画像は、データ管理部１３０において管理される。
【００３３】
デバイス層１１０は、実際に処理を行なうために必要なハードウェアの制御コンポーネント群である。デバイス層１１０は、自機が備えるデバイスに応じて、ネットワークや電話回線、スキャナなど、接続されているデバイスを制御する。
【００３４】
クロスカット層１１２は、すべてのレイヤ（層）、すなわちユーザＩ／Ｆ層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０の各コンポーネントの少なくとも一部のコンポーネントにより実行される処理、言い換えれば、各層において本来行われる処理以外の処理を行うコンポーネントを備える。処理の変更に対する手間を軽減する観点からは、クロスカット層１１２は、上述した各層に対して横断的に必要となる処理、言い換えれば少なくとも２つの層により共通に実行される処理を実行するコンポーネントを備えるのが好ましい。
【００３５】
本実施例においては、一例として、クロスカット層１１２に、履歴処理を行う履歴部１３４、アクセス制御処理を行うアクセス制御部１３６、課金処理を行う課金部１３８備える場合について説明するが、他のコンポーネントを備えるようにしてもよい。
【００３６】
本実施例にかかるディジタル複合機１００では、ユーザＩ／Ｆ層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０の各コンポーネントにおいて横断的に必要となる処理がモジュール（コンポーネント）化され、新しいモジュール単位であるクロスカットが導入される。例えば、アスペクト指向プログラミングを適用することにより実現できる。アスペクト指向プログラミングでは、複数のレイヤとしてのクラスを横断した処理をモジュール化する新しいモジュール単位「アスペクト」が導入される。
【００３７】
オブジェクト指向プログラミングでは、オブジェクトといわれる単位で、ソフトウェアが分割、モデル化される。しかし、複数のオブジェクトを横断する処理は、単一のオブジェクトにカプセル化することができず、各オブジェクトにカプセル化される。一方、アスペクト指向プログラミングでは、そのような複数のオブジェクトを横断する処理を分離し、記述するためアスペクトという新たなモジュール単位が導入される。
【００３８】
本実施例では、ユーザＩ／Ｆ層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０を構成する各コンポーネントと、該各コンポーネントで本来行われる処理以外の処理、例えば履歴処理、アクセス制御処理および課金処理が切り離されて新たなコンポーネント、すなわち、クロスカット層１１２を構成するコンポーネント、すなわち履歴部１３４、アクセス制御部１３６および課金部１３８として構成される。履歴部１３４は履歴のフォーマットなど履歴を残すために必要な情報を有し、アクセス制御部１３６は各ユーザに対する許可／不許可を示す情報などアクセス制御を行うために必要な情報を有し、課金部１３８は、各ユーザに対する課金情報など課金を行うために必要な情報を有する。
【００３９】
このように、クロスカット層１１２が各レイヤを構成するコンポーネントの少なくとも一部のコンポーネントにより実行される処理を受け持つことにより、その処理結果を様々な用途に利用することができる。また、その処理を変更する場合でも、クロスカット層１１２に対してのみ行えばよいので容易である。具体的には、履歴部１３４が、各コンポーネントの履歴処理を受け持つことにより、全てのコンポーネントの履歴を様々な用途に利用することができる。また、後から履歴情報として新たな項目を追加するなど変更を加えることも容易であり、システム全体への影響が少ないソフトウェア構造とすることができる。また、アクセス制御部１３６が、各コンポーネントのアクセス制御処理を受け持つことにより、全てのコンポーネントのアクセス制御を行うことができる。また、後からアクセス制御を行うユーザの追加、変更も容易である。また、課金部１３８が、各コンポーネントの課金処理を受け持つことにより、全てのコンポーネントの課金処理を行うことができる。また、後から課金を行うユーザの追加、変更も容易である。
【００４０】
次に、本実施例にかかるディジタル複合機１００のハードウェア構成について、図５を参照して説明する。
【００４１】
図５に示すように、ディジタル複合機１００は、コントローラボード１６０と、オペレーションパネル１５３と、ＦＣＵ１６８と、スキャナエンジン１５１と、プロッタエンジン１５２とを備える。また、ＦＣＵ１６８は、Ｇ３規格対応ユニット１６９と、Ｇ４規格対応ユニット１７０とを有する。
【００４２】
また、コントローラボード１６０は、ＣＰＵ１６１と、ＡＳＩＣ１６６と、ＨＤＤ１６５と、ローカルメモリ（ＭＥＭ−Ｃ）１６４と、システムメモリ（ＭＥＭ−Ｐ）１６３と、ノースブリッジ（ＮＢ）１６２と、サウスブリッジ（ＳＢ）１７３と、ＮＩＣ１７４（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）と、ＵＳＢデバイス１７５と、ＩＥＥＥ１３９４デバイス１７６と、セントロニクスデバイス１７７とを備える。
【００４３】
オペレーションパネル１５３は、コントローラボード１６０のＡＳＩＣ１６６に接続されている。また、ＳＢ１７３と、ＮＩＣ１７４と、ＵＳＢデバイス１７５と、ＩＥＥＥ１３９４デバイス１７６と、セントロニクスデバイス１７７は、ＮＢ１６２にＰＣＩバスで接続されている。
【００４４】
また、ＦＣＵ１６８と、スキャナエンジン１５１と、プロッタエンジン１５２は、コントローラボード１６０のＡＳＩＣ１６６にＰＣＩバスで接続されている。
【００４５】
なお、コントローラボード１６０は、ＡＳＩＣ１６６にローカルメモリ１６４、ＨＤＤ１６５等が接続されると共に、ＣＰＵ１６１とＡＳＩＣ１６６とがＣＰＵチップセットのＮＢ１６２を介して接続されている。このように、ＮＢ１６２を介してＣＰＵ１６１とＡＳＩＣ１６６とを接続すれば、ＣＰＵ１６１のインタフェースが公開されていない場合に対応できる。
【００４６】
なお、ＡＳＩＣ１６６とＮＢ１６２とはＰＣＩバスを介して接続されているのでなく、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）１６７を介して接続されている。このように、図４のアプリケーションロジック層１０６やコントロール層１０４を形成する一つ以上のプロセスを実行制御するため、ＡＳＩＣ１６６とＮＢ１６２とを低速のＰＣＩバスでなくＡＧＰ１６７を介して接続し、パフォーマンスの低下を防いでいる。
【００４７】
ＣＰＵ１６１は、ディジタル複合機１００の全体制御を行うものである。ＣＰＵ１６１は、パラメータ１１８およびアクティビティ１２０をＯＳ上にそれぞれプロセスとして起動して実行させると共に、アプリケーションロジック層１０６を構成する入力処理部１２２、加工処理部１２４、出力処理部１２６、情報管理部１２８を起動して実行させる。
【００４８】
ＮＢ１６２は、ＣＰＵ１６１、システムメモリ１６３、ＳＢ１７３およびＡＳＩＣ１６６を接続するためのブリッジである。システムメモリ１６３は、ディジタル複合機１００の描画用メモリ等として用いるメモリである。ローカルメモリ１６４はコピー用画像バッファ、符号バッファとして用いるメモリである。また、ＳＢ１７３は、ＮＢ１６２とＰＣＩバス、周辺デバイスとを接続するためのブリッジである。
【００４９】
ＡＳＩＣ１６６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ１６５は、画像データの蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積等を行うための記録装置である。
【００５０】
コントローラボード１６０を画像形成装置として機能させるためのプログラムは、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、メモリカード等の記録媒体に記録された状態で提供される。また、プログラムを、通信網５０を介してダウンロードするようにしてもよい。この記録媒体をコンピュータの補助記憶装置に挿入すると、記録媒体に記録されたプログラムが読み取られる。そして、ＣＰＵ１６１は、読み込んだプログラムをＲＡＭあるいはＨＤＤ１６５に書き込み、このプログラムにしたがって処理を実行する。
【００５１】
この場合、プログラムは、コンピュータに、図４の各層を構成するコンポーネントにより実行される処理を実行させる。例えば、少なくとも一部のコンポーネントにより実行される処理を、対応するコンポーネントにより実行される処理の指定された時点に織り込むステップと、織り込まれた処理を、指定された時点で実行するステップとを実行させる。
【００５２】
オペレーションパネル１５３は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
【００５３】
次に、本実施例にかかるディジタル複合機１００の動作について説明する。
【００５４】
本実施例においては、クロスカット層１１２のコンポーネントにおける処理の一例として、履歴部１３４の処理について説明する。
【００５５】
クロスカット層１１２は、少なくとも一部のコンポーネントから切り離された処理の手順を示す情報と、対応するコンポーネント、すなわち該処理を実行するコンポーネントにおいて、該処理が実行される時点を示す情報を有する。例えば、該処理が実行される時点を示す情報としては、対応するコンポーネントにより実行される複数の処理に対して、ある処理の直前、直後および前後のいずれかの情報である。また、該処理が実行される複数時点を示す情報を指定するようにしてもよい。
【００５６】
具体的には、履歴部１３４は、保存する項目からなる履歴のフォーマットと、該履歴のフォーマットに含まれる各項目を収集する手順を示す履歴処理手順と、各コンポーネントにおいて該履歴処理を実行する場所、すなわち時点を示す情報を保持している。例えば、履歴のフォーマットは、図６に示すように、履歴情報を取得する時刻を示すタイムスタンプと、処理を行った（指示を行った）ユーザを示すユーザ名と、実行された処理名とにより構成される。
【００５７】
また、クロスカット層１１２は、少なくとも一部のコンポーネントから切り離された処理を、対応するコンポーネント、すなわち該処理を実行するコンポーネントに織り込む。例えば、クロスカット層１１２は、該処理が実行される時点を示す情報に基づいて、少なくとも一部のコンポーネントから切り離された処理を、対応するコンポーネントにより実行される処理に織り込む。ここで織り込むとは、該処理が実行される時点を示す情報に基づいて、少なくとも一部のコンポーネントから切り離された処理を、対応するコンポーネントにより実行される処理に結合することをいう。
【００５８】
具体的には、履歴部１３４は、履歴を残したい動作を含む実行前の各コンポーネントに履歴処理を織り込む。例えば、履歴ブロック１３４は、図７に示すように、各コンポーネントに対して、履歴の処理を織り込む。ここで、織り込むとは、履歴を残したい動作を含む実行前の各コンポーネントにより実行される処理に、履歴処理を結合することをいう。例えば、ＡｓｐｅｃｔＪを適用することにより、アスペクトウィーバー（ａｓｐｅｃｔ  ｗｅａｖｅｒ）と呼ばれる処理系によって、オブジェクト指向で記述された各コンポーネントを構成するプログラムに、履歴処理を結合することができる。この織り込みは、コンパイル時に行われる。
【００５９】
ＡｓｐｅｃｔＪは、Ｊａｖａ（登録商標）を言語拡張したアスペクト指向言語のひとつであり、アスペクトを定義することでクラスに新たな処理を織り込むことによりクラスを拡張することができる。この場合、各コンポーネントは、どのような履歴を残すかは意識せず、実行前に織り込まれた履歴を、実行中に保存する。
【００６０】
次に、各コンポーネントに織り込まれる履歴処理のフローについて、図８を参照して説明する。ここでは、図６を参照して説明した履歴フォーマットに含まれる項目を収集する履歴処理のフローについて説明する。
【００６１】
タイムスタンプを取得し（ステップＳ８０２）、ユーザ名を取得し（ステップＳ８０４）、処理名を確定し（ステップＳ８０６）、履歴を保存する（ステップＳ８０８）。
【００６２】
次に、各コンポーネントの一般的な処理のフローについて、図９を参照して説明する。ここでは、コンポーネントにおいて、３つの処理が行われる場合について説明する。
【００６３】
処理Ａを行い（ステップＳ９０２）、処理Ｂを行い（ステップＳ９０４）、処理Ｃを行う（ステップＳ９０６）。
【００６４】
上述したように、履歴部１３４は、履歴処理手順と、該履歴処理を織り込む場所を示す情報とを保持している。
【００６５】
一例として、図８を参照して説明した履歴処理を、図９を参照して説明した各コンポーネントにおける処理の処理Ａ（ステップＳ９０２）の後に織り込む場合について、図１０を参照して説明する。例えば、コンパイルが行われることにより、履歴処理が、処理Ａの後に織り込まれる。その結果、処理Ａ（ステップＳ９０２）の後に履歴処理が実行され、その後、処理Ｂ（ステップＳ９０４）、処理Ｃ（ステップＳ９０６）が実行される。
【００６６】
具体的に説明する。
【００６７】
ここでは、一例としてアプリケーションロジック層１０６を構成するコンポーネントの出力処理部１２６の処理に関連して、履歴を残す処理が織り込まれる場合について説明する。他のコンポーネントに織り込まれる場合についても同様に適用できる。
【００６８】
出力処理部１２６の処理の一例について、図１１を参照して説明する。
【００６９】
画像を読み込み（ステップＳ１１０２）、画像を印刷し（ステップＳ１１０４）、印刷された用紙を排紙し（ステップＳ１１０６）、ステイプルする（ステップＳ１１０８）。
【００７０】
履歴部１３４が、履歴処理を織り込む場所を示す情報として、ステイプル（ステップＳ１１０８）の後である情報を有している場合について、図１２を参照して説明する。
【００７１】
例えば、コンパイルが行われることにより、履歴処理が、ステイプル（ステップＳ１１０８）の後に織り込まれる。この場合、出力処理部１２６は、画像を読み込む処理を行い（ステップＳ１１０２）、読み込まれた画像を印刷し（ステップＳ１１０４）、印刷した用紙を排紙し（ステップＳ１１０６）、ステイプルを行う（ステップＳ１１０８）。その後、タイムスタンプを取得し（ステップＳ８０２）、ユーザ名を取得し（ステップＳ８０４）、処理名を確定し（ステップＳ８０６）、履歴を保存する（ステップＳ８０８）。
【００７２】
以上の処理の結果、出力処理部１２６には、図６を参照して説明した履歴フォーマットに対応して、図１３に示す履歴情報が保存される。
【００７３】
図１３に示す履歴情報には、タイムスタンプとして、２００６年２月２５日１２時５分、ユーザ名として松田、処理名としてステイプルが記録されている。
【００７４】
次に、履歴処理において収集する項目を変更する場合について説明する。本実施例では、一例として、収集する項目を追加する場合について説明するが、項目を削除する場合についても同様に適用できる。
【００７５】
クロスカット層１１２は、上述したように少なくとも一部のコンポーネントから切り離された処理の手順を示す情報と、対応するコンポーネント、すなわち該処理を実行するコンポーネントにおいて、該処理が実行される時点を示す情報を有する。処理を変更する場合には、クロスカット層１１２に対して変更処理を行う。また、変更された処理を反映するためには、コンパイルを行うことにより、少なくとも一部のコンポーネントから切り離された処理を、対応するコンポーネントに織り込む。
【００７６】
例えば、図６を参照して説明した履歴フォーマットに、項目として「アクセス元」を追加する。その結果、履歴フォーマットは、図１４に示すように、タイムスタンプ、ユーザ名および処理名に加え、「アクセス元」が追加される。ここで、「アクセス元」とは、ユーザがどこから指示を出したかという情報である。
【００７７】
履歴処理手順は、変更された履歴フォーマットに基づいて変更される。変更された履歴処理手順は、例えば、コンパイルが行われることにより、各コンポーネントに織り込まれる。
【００７８】
例えば、変更された履歴処理が、出力処理部１２６におけるステイプル（ステップＳ１１０８）の後に織り込まれる場合について説明する。
【００７９】
この場合、図１２を参照して説明した処理と同様の処理が行われる。ただし、履歴処理においてアクセス元の情報が収集される。以上の処理の結果、出力処理部１２６には、図１５に示す履歴情報が保存される。図１５に示す履歴情報には、タイムスタンプとして、２００６年２月２５日１２時５分、ユーザ名として松田、アクセス元としてオペレーションパネル、処理名としてステイプル実行が記録されている。ここで、アクセス元がオペレーションパネルということは、ローカルＵＩ１１６のオペレーションパネルからステイプルを実行する指示が行われたことを示している。
【００８０】
このように、保存する項目を新たに追加した場合でも、追加された項目を含む履歴のフォーマットの情報は履歴部１３４に保持される。このため、各コンポーネントが元々持っている処理には影響がない。すなわち、保存する項目を変更する場合でも、履歴部１３４に対してのみ変更するだけでよい。変更された項目を含む履歴処理は、例えば、コンパイルが行われることにより、各コンポーネントに織り込まれる。
【００８１】
上述した実施例では、履歴のフォーマットは、各コンポーネントにおいて共通である場合について説明した。履歴のフォーマットは、各コンポーネントで異なるフォーマットを定義することもできるし、全てのコンポーネントで統一することもできる。
【００８２】
履歴のフォーマットの情報を持っているのは履歴部１３４であるため、どちらのフォーマットを選択しても各コンポーネントが元々持っている処理には影響がない。
【００８３】
履歴のフォーマットを全てのコンポーネントで統一する場合、ディジタル複合機１００に関わるすべての機能を同様の履歴データとして扱うことが可能である。これは、ユーザＩ／Ｆ層１０２、コントロール層１０４、アプリケーションロジック層１０６、デバイスサービス層１０８およびデバイス層１１０といった全く違う機能を有するレイヤで統一された履歴データを残すため、単位としては同じように扱える。このようにすることにより、記録された履歴データを使いたい人は全てのコンポーネントの履歴データを一様に扱うことができる。
【００８４】
一様に扱える履歴データの活用例として、ディジタル複合機１００の利用に対する課金への適用が考えられる。この場合、例えば、課金の対象を検索条件によって抽出された履歴データとする。
【００８５】
具体的には、検索条件を特定のユーザ名とし、該ユーザ名で検索された履歴に基づいて、行った処理を課金の対象とするなどが考えられる。
【００８６】
この場合、ネットワーククライアントからのユーザや、ローカルでマシンを使用するユーザなど、どのユーザも同じように履歴データとして扱えるために、一律にデータとして検索することが可能である。ユーザ毎の詳細な使用履歴を検索できるできるため、ユーザ毎に料金を切り替えることも可能となる。
【００８７】
例えば、ユーザＡはすべての動作が有料だが、ユーザＢはステイプルが無料というように利用したい場合、図１６のようにユーザごとに料金表を用意すればよい。用意された料金表と、履歴データから検索して抽出されたそれぞれのユーザごと利用履歴を、比較すればそれぞれのユーザの合計金額を求めることができる。
【００８８】
また、履歴部１３４は、各コンポーネントが残す履歴をどの場所に保存するかの情報を持つこともできる。内蔵ＨＤＤ１６５のようなディジタル複合機１００の内部、ストレージサーバのようなディジタル複合機１００の外部、ＳＤカード（登録商標）のような持ち運びできる記録媒体などの保存先を選択することができる。
【００８９】
ストレージサーバを使用することにより、内蔵ＨＤＤに故障等が発生した場合でも確実に履歴データを保存することができる。ディジタル複合機１００の外部や、ＳＤカードのような記録媒体に保存する場合、別のシステムにデータを持ち込んで使用できるような形で履歴のデータを作ることもできる。例えば、ＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）のような汎用的なデータ形式を選択することにより、パーソナルコンピュータのような本システムとは別の処理環境に履歴データを持ち込んでデータを処理することもできる。
【００９０】
本発明の実施例によれば、各コンポーネントからシステム内部で横断的に必要となる処理を切り離し、クロスカットのブロックが横断的に必要となる処理を受け持つことにより、後から横断的に必要となる処理を変更したり追加したりすることが容易であり、システム全体への影響が少ないソフトウェア構成を得ることができる。
【００９１】
また、各コンポーネントから履歴を残す処理を切り離し、履歴ブロックが履歴のフォーマットなど履歴を残すために必要な情報をもち、履歴ブロックが各コンポーネントの履歴処理を受け持つようにする。このようにすることにより、全てのコンポーネントの履歴を様々な用途に利用可能であり、後から履歴を変更したり追加したりすることも容易であり、システム全体への影響が少ないソフトウェア構成を得ることができる。
【００９２】
また、履歴のフォーマットの情報をもっていることにより、各コンポーネントはフォーマットの情報に関知しないため、各コンポーネントで残す履歴が追加されたとしても、各コンポーネントに対しては変更の必要がない。
【００９３】
また、フォーマットを変更できるようにすることによって、フォーマットが変更されたとしても、各コンポーネントはフォーマットの情報に関知しないため、各コンポーネントに対しては変更の必要がない。
【００９４】
また、フォーマットをコンポーネント毎に決めることにより、コンポーネント毎に残したい履歴を異なるようにすることができる。
【００９５】
また、フォーマットを全コンポーネントで統一することにより、履歴データが一様の形式となるため、ディジタル複合機に関わるすべての機能を同様の履歴データとして扱うことができる。
【００９６】
また、履歴をデータとして検索し課金することにより、履歴データから詳細な利用履歴を抽出できるため、すべての機能に対して柔軟に課金することができる。
【００９７】
また、ユーザごとに料金表を持ち、切り替えられることにより、ユーザごとに異なる料金で課金することができる。
【００９８】
また、履歴がフォーマットの保存する場所を決定することにより、各コンポーネントは保存される場所に関知しないため、保存先を変更する場合でも各コンポーネントに変更の影響がなくなる。
【００９９】
また、保存する場所が内蔵ＨＤＤのようなディジタル複合機内部であることによりデータを保存することができる。
【０１００】
また、保存する場所がストレージサーバのようなディジタル複合機外部であることにより、内蔵ＨＤＤの故障が発生した場合でもデータを消失することなく保存することができる。
【０１０１】
また、保存する場所がＳＤカードのような持ち運びできる記録媒体とすることにより、本システムとは別の処理系にデータを持ち込むことができる。
【０１０２】
また、別の場所で処理できるデータを保存することにより、別の処理系でも容易に履歴データを利用することができる。
【０１０３】
また、保存するデータの形式をＣＳＶのような汎用的な形式にすることにより、ＰＣのような汎用的な処理系で容易に履歴データを利用することができる。
【産業上の利用可能性】
【０１０４】
本発明にかかる画像形成装置および制御方法並びにプログラムおよび記録媒体は、プリンタ、スキャナ、ファクシミリおよびそれらの機能を有する複合機に適用できる。
【図面の簡単な説明】
【０１０５】
【図１】融合機を示す構成図である。
【図２】プラットフォームとアプリとエンジンとの関係を示す説明図である。
【図３】本発明の一実施例にかかる画像形成装置が適用されるシステムを示す説明図である。
【図４】本発明の一実施例にかかる画像形成装置のソフトウェア構成を示すブロック図である。
【図５】本発明の一実施例にかかる画像形成装置のハードウェア構成を示す部分ブロック図である。
【図６】履歴フォーマットの一例を示す説明図である。
【図７】本発明の一実施例にかかる画像形成装置における処理の織り込みを示す説明図である。
【図８】履歴処理を示すフロー図である。
【図９】各コンポーネントにおける処理を示すフロー図である。
【図１０】履歴処理が織り込まれた各コンポーネントにおける処理を示すフロー図である。
【図１１】出力処理を示すフロー図である。
【図１２】履歴処理が織り込まれた出力処理を示すフロー図である。
【図１３】残される履歴の例を示す説明図である。
【図１４】履歴フォーマットの一例を示す説明図である。
【図１５】残される履歴の例を示す説明図である。
【図１６】ユーザ毎の料金表を示す説明図である。
【符号の説明】
【０１０６】
１  融合機
２  ソフトウェア群
３  融合機起動部
４  ハードウェア資源
５  アプリケーション層
６  プラットフォーム
９  コントロールサービス層
１０  ハンドラ層
１１  白黒レーザプリンタ（Ｂ＆Ｗ ＬＰ）
１２  カラーレーザプリンタ（Ｃｏｌｏｒ ＬＰ）
１３  ハードウェアリソース
２１  プリンタアプリ
２２  コピーアプリ
２３  ファックスアプリ
２４  スキャナアプリ
３１  ネットワークコントロールサービス（ＮＣＳ）
３２  デリバリーコントロールサービス（ＤＣＳ）
３３  オペレーションパネルコントロールサービス（ＯＣＳ）
３４  ファックスコントロールサービス（ＦＣＳ）
３５  エンジンコントロールサービス（ＥＣＳ）
３６  メモリコントロールサービス（ＭＣＳ）
３７  ユーザインフォメーションコントロールサービス（ＵＣＳ）
３８  システムコントロールサービス（ＳＣＳ）
３９  システムリソースマネージャ（ＳＲＭ）
４０  ファックスコントロールユニットハンドラ（ＦＣＵＨ）
４１  イメージメモリハンドラ（ＩＭＨ）
５０  ネットワーク
５４  エンジンＩ／Ｆ
９０  エンジン
１００  ディジタル複合機
１０２  ユーザインターフェース（Ｉ／Ｆ）層
１０４  コントロール層
１０６  アプリケーションロジック層
１０８  デバイスサービス層
１１０  デバイス層
１１２  クロスカット層
１１４  通信サーバインターフェース（Ｉ／Ｆ）
１１６  ローカルユーザインターフェース（ＵＩ）
１１８  パラメータ部
１２０  アクティビティ部
１２２  入力処理部
１２４  加工処理部
１２６  出力処理部
１２８  情報管理部
１３０  データ管理部
１３２  １３２１  １３２２  １３２３  １３２ｍ  デバイス制御部
１３４  履歴部
１３６  アクセス制御部
１３８  課金部
１５１  スキャンエンジン
１５２  プロッタエンジン
１５３  オペレーションパネル
１６０  コントローラボード
１６１  ＣＰＵ
１６２  ノースブリッジ（ＮＢ）
１６３  システムメモリ（ＭＥＭ−Ｐ）
１６４  ローカルメモリ（ＭＥＭ−Ｃ）
１６５  ハードディスク装置（ＨＤＤ）
１６６  ＡＳＩＣ
１６７  ＡＧＰ（Accelerated Graphics Port）
１６８  ファックスコントロールユニット（ＦＣＵ）
１６９  Ｇ３
１７０  Ｇ４
１７３  サウスブリッジ（ＳＢ）
１７４  ＮＩＣ
１７５  ＵＳＢデバイス
１７６  ＩＥＥＥ１３９４デバイス
１７７  セントロニクス
２００  ２０００  ２００１  ２００ｎ  パーソナルコンピュータ
３００  サーバ
【図１】
2008077234.tif 000003
【図２】
2008077234.tif 000004
【図３】
2008077234.tif 000005
【図４】
2008077234.tif 000006
【図５】
2008077234.tif 000007
【図６】
2008077234.tif 000008
【図７】
2008077234.tif 000009
【図８】
2008077234.tif 000010
【図９】
2008077234.tif 000011
【図１０】
2008077234.tif 000012
【図１１】
2008077234.tif 000013
【図１２】
2008077234.tif 000014
【図１３】
2008077234.tif 000015
【図１４】
2008077234.tif 000016
【図１５】
2008077234.tif 000017
【図１６】
2008077234.tif 000018