(57)【要約】【課題】電子ファイルに対して行われる処理を効率よく制御する。【解決手段】電子ファイルに対して実行する処理と対応付けて生成され、電子ファイルに処理を行う作業書クラスと、電子ファイルへの処理の要求を受け付け、処理の要求を受け付けた場合に要求として受け付けた処理に対応付けられた作業書クラスを生成するファイルクラスと、作業書クラスから生成された作業書オブジェクトに対して電子ファイルへの処理の実行を指示する作業監督クラスと、を備えた。【選択図】        図８
2006252317.tif 000002
【特許請求の範囲】
【請求項１】
電子ファイルに対して実行する処理と対応付けて生成され、該電子ファイルに該処理を行う作業書手段と、
前記電子ファイルへの前記処理の要求を受け付け、受け付けた場合には要求された前記処理に対応付けられた前記作業書手段を生成するファイル受付手段と、
を備えたことを特徴とする電子ファイル処理装置。
【請求項２】
前記ファイル受付手段は、前記電子ファイルへの処理の要求を受け付け、受け付けた場合には要求された前記処理に対応付けられた前記作業書手段を生成し、さらに前記作業書手段が生成された旨を出力し、
前記ファイル受付手段から前記作業書手段が生成された旨が入力された場合に、生成された前記作業書手段に対して前記電子ファイルへの処理の実行を指示する作業監督手段を、さらに備えた
ことを特徴とする請求項１に記載の電子ファイル処理装置。
【請求項３】
前記作業監督手段は、前記ファイル受付手段から前記作業書手段が生成された旨が複数入力された場合に、一方の前記作業書手段に対する前記電子ファイルへの処理の実行の指示を、他方の前記作業書手段の処理状況に基づいて行うことを特徴とする請求項２に記載の電子ファイル処理装置。
【請求項４】
前記作業書手段による処理が行われた後に、前記作業書手段により行われた処理に基づいて予め定められた処理を行う依頼者手段を、さらに備えたことを特徴とする請求項１乃至３のいずれか１つに記載の電子ファイル処理装置。
【請求項５】
電子ファイルに対して実行する処理と対応付けて生成され、該電子ファイルに該処理を行う作業書手段と、
前記電子ファイルへの前記処理の要求を受け付け、受け付けた場合には要求された前記処理に対応付けられた前記作業書手段を生成するファイル受付手段と、
を備えたことを特徴とする画像形成装置。
【請求項６】
前記電子ファイルへの処理の要求を受け付け、受け付けた場合には要求された該処理に対応付けられた前記作業書手段を生成するファイル受付手段と、
前記ファイル受付ステップにより生成された前記作業書手段は、対応付けられた前記処理を電子ファイルに対して実行する作業ステップと、
を備えたことを特徴とする電子ファイル処理方法。
【請求項７】
前記ファイル受付ステップは、前記電子ファイルに対する処理を実行する要求を受け付けた場合に、受け付けた前記処理を実行する前記作業書手段を生成し、さらに前記作業書手段が生成された旨を出力し、
前記ファイル受付ステップにより出力された前記作業書手段が生成された旨が入力された場合に、生成された前記作業書手段に対して前記電子ファイルへの処理の実行を指示する作業監督ステップを、さらに備えた
ことを特徴とする請求項６に記載の電子ファイル処理方法。
【請求項８】
前記作業監督ステップは、前記ファイル受付ステップにより出力された前記作業書手段が生成された旨が複数入力された場合に、一方の前記作業書手段に対する前記電子ファイルへの処理の実行の指示を、他方の前記作業書手段の処理状況に基づいて行うことを特徴とする請求項７に記載の電子ファイル処理方法。
【請求項９】
前記作業書手段による処理が行われた後に、前記作業書手段により行われた処理に基づいて予め定められた処理を行う依頼者ステップを、さらに備えたことを特徴とする請求項６乃至８のいずれか１つに記載の電子ファイル処理方法。
【請求項１０】
請求項６乃至９のいずれか一つに記載された電子ファイル処理方法をコンピュータで実行させることを特徴とする電子ファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ファイル処理装置、画像形成装置、電子ファイル処理方法及び電子ファイル処理プログラムに関するものであり、特に、電子ファイルへの処理する要求を受け付けた際に電子ファイルに対して行われる処理を制御する技術に関するものである。
【背景技術】
【０００２】
従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（Ｒ）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。
【０００３】
ところが、上記プリンタアプリ、コピーアプリおよびスキャナアプリは、それぞれエンジン制御、メモリ制御およびシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。
【０００４】
このため、特許文献１では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御およびシステム制御などの処理を共通処理部分（プラットホーム）として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。
【０００５】
また、特許文献２では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理をおこなうこととしている。
【０００６】
【特許文献１】特開２００２−０８４３８３号公報
【特許文献２】特開平１１−３２７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、この特許文献１で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではなく、さらには共通化した上で内部処理を機能に応じたクラスに分割していないため、内部処理全般の開発効率が良くないという問題がある。つまり、複合機上のアプリケーションには、開発効率の向上を図るためには内部処理を共通化して特徴のある機能をクラスとして分割することで改善の余地が残されている。
【０００８】
たとえば、利用者が装置に備え得られた機能として保存している電子ファイルに対して処理を要求した場合には、電子ファイルに対して行われる処理毎にオブジェクトを生成することで、処理を管理することも可能である。
【０００９】
また、特許文献２で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、電子ファイルの処理を制御するソフトウェア部品を開示したものではない。したがって、多機能化により機能毎に利用者が実行可能な権限を有するか否か判断する複合機において、特許文献２で開示されている発明を応用しても、電子ファイルに対して行う処理をどの様な構成で分割するか導出することが出来ないため、電子ファイルに対して行う処理に対応するソフトウェア部品を作成したとしても、複合機に記憶された電子ファイルに対する処理を効率よく制御することは容易でない。
【００１０】
これらのことから、複合機に搭載されるアプリケーションから電子ファイルの処理の要求を受け付けて、実際に行う電子ファイルの処理をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、電子ファイルを記憶する記憶部を有し、利用者の要求に応じて、記憶部に記憶された電子ファイルの読み込み又は書き込みなどの処理を行う電子ファイル処理装置を形成するような場合にも同様に生ずる問題である。
【００１１】
本発明は、上述した従来技術による問題点を解消するためになされたものであり、電子ファイルに対して行われる処理を効率よく制御することができる電子ファイル処理装置、画像形成装置、電子ファイル処理方法及び電子ファイル処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、電子ファイルに対して実行する処理と対応付けて生成され、該電子ファイルに該処理を行う作業書手段と、前記電子ファイルへの前記処理の要求を受け付け、受け付けた場合には要求された前記処理に対応付けられた前記作業書手段を生成するファイル受付手段と、を備えたことを特徴とする。
【００１３】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記ファイル受付手段は、前記電子ファイルに対する処理を実行する要求を受け付けた場合に要求として受け付けた前記処理に対応付けられた前記作業書手段を生成し、さらに前記作業書手段が生成された旨を出力し、前記ファイル受付手段から前記作業書手段が生成された旨が入力された場合に、生成された前記作業書手段に対して前記電子ファイルへの処理の実行を指示する作業監督手段を、さらに備えたことを特徴とする。
【００１４】
また、請求項３にかかる発明は、請求項２にかかる発明において、前記作業監督手段は、前記ファイル受付手段から前記作業書手段が生成された旨が複数入力された場合に、一方の前記作業書手段に対する前記電子ファイルへの処理の実行の指示を、他方の前記作業書手段の処理状況に基づいて行うことを特徴とする。
【００１５】
また、請求項４にかかる発明は、請求項１〜３のいずれか１つにかかる発明において、前記作業書手段による処理が行われた後に、前記作業書手段により行われた処理に基づいて予め定められた処理を行う依頼者手段を、さらに備えたことを特徴とする。
【００１６】
また、請求項５にかかる発明は、電子ファイルに対して実行する処理と対応付けて生成され、該電子ファイルに該処理を行う作業書手段と、前記電子ファイルへの前記処理の要求を受け付け、前記処理の要求を受け付けた場合に要求として受け付けた該処理に対応付けられた前記作業書手段を生成するファイル受付手段と、を備えたことを特徴とする。
【００１７】
また、請求項６にかかる発明は、電子ファイルに対する処理の要求を受け付け、前記処理の要求を受け付けた場合に、受け付けた処理と対応付けた前記作業書手段を生成するファイル受付ステップと、前記ファイル受付ステップにより生成された前記作業書手段は、対応付けられた前記処理を電子ファイルに対して実行する作業ステップと、を備えたことを特徴とする。
【００１８】
また、請求項７にかかる発明は、請求項６にかかる発明において、前記ファイル受付ステップは、前記電子ファイルに対する処理を実行する要求を受け付けた場合に、受け付けた前記処理を実行する前記作業書手段を生成し、さらに前記作業書手段が生成された旨を出力し、前記ファイル受付ステップにより出力された前記作業書手段が生成された旨が入力された場合に、生成された前記作業書手段に対して前記電子ファイルへの処理の実行を指示する作業監督ステップを、さらに備えたことを特徴とする。
【００１９】
また、請求項８にかかる発明は、請求項７にかかる発明において、前記作業監督ステップは、前記ファイル受付ステップにより出力された前記作業書手段が生成された旨が複数入力された場合に、一方の前記作業書手段に対する前記電子ファイルへの処理の実行の指示を、他方の前記作業書手段の処理状況に基づいて行うことを特徴とする。
【００２０】
また、請求項９にかかる発明は、請求項６〜８のいずれか１つにかかる発明において、前記作業書手段による処理が行われた後に、前記作業書手段により行われた処理に基づいて予め定められた処理を行う依頼者ステップを、さらに備えたことを特徴とする。
【００２１】
また、請求項１０にかかる発明は、請求項６〜９のいずれか一つに記載された電子ファイル処理方法をコンピュータで実行させることを特徴とする。
【発明の効果】
【００２２】
請求項１にかかる発明によれば、処理の要求が行われた場合に実際の処理に行われる隠蔽するので、処理を要求する際に実際に行われる処理を考慮する必要が無くなり、利便性が向上するという効果を奏する。
【００２３】
また、請求項２にかかる発明によれば、処理の開始を指示することで、処理が隠蔽されていても安定して処理が行われることになるため、安定性が向上するという効果を奏する。
【００２４】
また、請求項３にかかる発明によれば、他方の処理状況に基づいて、一方の処理の実行を指示するので、処理を要求する際に、処理を実行する時間を考慮する必要が無くなるので、利便性が向上するという効果を奏する。
【００２５】
また、請求項４にかかる発明によれば、処理結果に基づいた処理が行われることとなり、利便性が向上するという効果を奏する。
【００２６】
請求項５にかかる発明によれば、処理の要求が行われた場合に実際の処理に行われる隠蔽するので、処理を要求する際に実際に行われる処理を考慮する必要が無くなり、利便性が向上するという効果を奏する。
【００２７】
請求項６にかかる発明によれば、処理の要求が行われた場合に実際の処理に行われる隠蔽するので、処理を要求する際に実際に行われる処理を考慮する必要が無くなり、利便性が向上するという効果を奏する。
【００２８】
また、請求項７にかかる発明によれば、処理の開始を指示することで、処理が隠蔽されていても安定して処理が行われることになるため、安定性が向上するという効果を奏する。
【００２９】
また、請求項８にかかる発明によれば、他方の処理状況に基づいて、一方の処理の実行を指示するので、処理を要求する際に、処理を実行する時間を考慮する必要が無くなるので、利便性が向上するという効果を奏する。
【００３０】
また、請求項９にかかる発明によれば、処理結果に基づいた処理が行われることとなり、利便性が向上するという効果を奏する。
【００３１】
また、請求項１０にかかる発明によれば、コンピュータに読み取らせて実行することによって、請求項６から９のいずれか一つに記載された電子ファイル処理方法をコンピュータの利用で実現することができ、これら各電子ファイル処理方法と同様の効果を奏する。
【発明を実施するための最良の形態】
【００３２】
以下に添付図面を参照して、この発明にかかる電子ファイル処理装置、画像形成装置、電子ファイル処理方法及び電子ファイル処理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、利用者の認証処理をおこなう各種装置に適用することができる。
【００３３】
まず、本発明の第１の実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３、図４、図１１および図１２を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための概念図である。図４は、複合機１の操作パネルの一例を示した図である。そして図１１は、複合機に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図１２は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【００３４】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたＰＣ（Personal Computer）などの機器は、ＬＡＮ（Local Area Network）などのネットワークに接続され、相互に通信することが通常となった。たとえば、本図に示したように、かかるネットワークには、クライアントＰＣ、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバ、ＦＴＰ（File Transfer Protocol）サーバ、サーバＰＣなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
【００３５】
このようなネットワーク化の進展に伴い、複合機１もかかるネットワークに接続され、ＰＣ等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。
【００３６】
具体的には、複合機１は、通常のコピー機能に加えて、クライアントＰＣからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントＰＣからのファックス要求により文書データ等をサーバＰＣに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有している。このような多くの機能を実現するために、従来からの複合機に搭載されるソフトウェアは規模が大きくなり、かつ複雑なものとなる。それにともない、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。そこで本実施の形態にかかる複合機１に搭載されるソフトウェアでは、開発と維持管理のための工数を減少させる。なお、複合機１に搭載されるソフトウェアの構成については後述する。
【００３７】
図２は、かかる複合機１のハードウェア構成を示すブロック図である。本図に示すように、この複合機１は、コントローラ１０とエンジン部（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）１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００４５】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００４６】
図３は、かかる複合機１のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分であるファイル制御部２０４を含む統合アプリケーション１１０と、ソフトウェア１００およびハードウェア１５０の階層関係を示している。本図に示すように、ハードウェア１５０は、ハードウェアリソース１５１を有し、このハードウェアリソース１５１は、スキャナ１５１ａ、プロッタ１５１ｂ、ＨＤＤ（Hard Disk Drive）１５１ｃ、ネットワーク１５１ｄおよびその他のリソース１５１ｅを有する。なお、その他のリソース１５１ｅは、１５１ａ〜１５１ｄ以外のハードウェアリソース１５１のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
【００４７】
図４は、複合機１の操作パネル４００の一例を示した図である。本図に示したように、かかる操作パネル４００は、初期設定キー４０１、コピーキー４０２、コピーサーバーキー４０３、プリンタキー４０４、送信キー４０５、テンキー４０６、クリア／ストップキー４０７、スタートキー４０８、予熱キー４０９、リセットキー４１０および液晶タッチパネル４２０を有する。このような構成を有する操作パネル４００でユーザが所定の操作を行った場合に、統合アプリケーション１１０に含まれている本実施の形態の特徴である各クラスを実体化したオブジェクトが動作する。
【００４８】
例えば、初期設定キー４０１をタッチすると、液晶タッチパネル４２０に初期設定用のメニューが表示され、かかるメニューにおいては、収納される用紙サイズなどを設定することができる。また、コピーをしたい場合にはコピーキー４０２を、コピー結果を複合機１に蓄積したい場合にはコピーサーバーキー４０３を、プリンタに係る操作をおこないたい場合には、プリンタキー４０４を、ファックスや蓄積画像などの送信をしたい場合には送信キー４０５を、それぞれタッチすると、液晶タッチパネル４２０に対応したメニューが表示される。
【００４９】
図３に戻り、かかるハードウェア１５０に搭載されるソフトウェア１００は階層化されており、オペレーティングシステム１０３の上層にはサービス層１０２が構築され、このサービス層１０２の上層にはアプリケーション層１０１が構築されている。そして、サービス層１０２は、各ハードウェアリソース（１５１ａ〜１５１ｅ）を制御するドライバーに相当する、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、配信／メール送受信制御部１０２ｄ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇを有する。
【００５０】
ここで、図３に示したソフトウェア１００が、かかる階層構造をとるに至った経緯について、図１１および図１２を用いて説明する。図１１は、複合機に搭載されるソフトウェア構成の変遷を示す説明図である。図１１のサービス層分離前アプリケーション１５０１に示すように、多機能化した複合機に搭載されるソフトウェアは、コピーアプリケーション、ＦＡＸアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図３に示したオペレーティングシステム１０３上で動作していた。
【００５１】
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー（サービス層１０２）を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
【００５２】
そこで、図１１のサービス層分離後アプリケーション１５０２に示すように、サービス層分離前アプリケーション１５０１のサービス層相当部分を括りだしてサービス層１０２にするとともに、各アプリケーションは、このサービス層１０２の上層であるアプリケーション層１０１に構築する構成とした。かかる階層化構成をとることで、各アプリケーションはスリム化され開発労力も軽減された。
【００５３】
しかしながら、複合機のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層１０１の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部１０２ａや蓄積制御部１０２ｃといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
【００５４】
この問題を解決するため、図１１の共通ルーチン分離アプリケーション１５０３に示すように、かかる同様な処理（共通処理部分）を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
【００５５】
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
【００５６】
そこで、図１１のオブジェクト指向アプリケーション１５０４に示すように、オブジェクト指向による設計手法（オブジェクトモデリング）により、かかる複数のアプリケーションを、統合アプリケーション１１０に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション１１０を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
【００５７】
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
【００５８】
図１２は、図１１に示したサービス層分離後アプリケーション１５０２の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層１０２の各ドライバーの関係を示した説明図である。本図に示すように、アプリケーション層１０１Ａは、コピーアプリケーション１２１、スキャナアプリケーション１２２、ファックスアプリケーション１２３およびプリンタアプリケーション１２４を有する。
【００５９】
たとえば、コピーアプリケーション１２１は、コピー機能を実現するために、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃおよびその他の制御部１０２ｇとデータの送受信をおこなう。また、ファックスアプリケーション１２３は、ファックス機能を実現するために、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇとデータの送受信をおこなう。このように、アプリケーション層１０１Ａの各アプリケーションとサービス層１０２の各ドライバー間の通信は、複雑なものとなっていた。
【００６０】
図３に戻り、上述したオブジェクトモデリングにより、アプリケーション層１０１に存在した複数のアプリケーションは、統合アプリケーション１１０に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション１１０を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層１０１のアプリケーションと、サービス層１０２の各ドライバー間の通信は、図１２と比較して単純になっている。
【００６１】
次に、統合アプリケーション１１０の内部構成について説明する。図５は、統合アプリケーション１１０の内部構成を示す説明図である。本図に示すように、統合アプリケーション１１０は、操作系サブシステム２０１と、管理系サブシステム２０２と、実行系サブシステム２０３と、本発明の特徴的部分であるファイル制御部２０４とを有する。
【００６２】
操作系サブシステム２０１は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム２０１は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。
【００６３】
管理系サブシステム２０２は、複合機１の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム２０２は、ハードウェアリソース１５１およびこのハードウェアリソース１５１が保持するデータ状態を管理するサービスをおこなう。
【００６４】
実行系サブシステム２０３は、ユーザからの要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム２０３は、コピー要求がなされた場合には、原稿の読み取りから成果物の出力までの処理をおこなう。
【００６５】
ファイル制御部２０４は、操作系サブシステム２０１又は実行系サブシステム２０３から電子ファイルに対する処理を受け付け、電子ファイルに対する処理を受け付けた場合に、電子ファイルに対する処理として、サービス層１０２の電子ファイルの制御を行うファイルシステムに対する入出力を行う。つまり、ファイル制御部２０４は、統合アプリケーション１１０で行われるファイル処理を、サービス層１０２による電子ファイルの制御に接続することとし、統合アプリケーション１１０とサービス層１０２のファイルシステム２０５間で電子ファイルについて行われる入出力のインターフェースとしての役割を備えている。
【００６６】
なお、ファイルシステム２０５は、サービス層１０２で電子ファイルの制御を行う際に呼び出される。例えば、図４で示した構成の場合であれば、サービス層１０２の蓄積制御１０２ｃを使用する場合等に呼び出される。
【００６７】
操作系サブシステム２０１、管理系サブシステム２０２、実行系サブシステム２０３及びファイル制御部２０４は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション１１０全体として複合機１に必要とされるサービスの提供をおこなう。
【００６８】
図６は、図５に示した各サブシステムを、ＵＭＬ（Unified Modeling Language）のクラス図（ＵＭＬクラス図）に置き換えた図である。ここで、ＵＭＬとは、ＯＭＧ（Object Management Group）が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００６９】
図６に示すように、統合アプリケーション１１０は複数のパッケージを有し、また、この統合アプリケーション１１０自体もひとつのパッケージとなっている。ここで、パッケージとはＵＭＬモデルの各構成要素（シンボル）をグループ化したものであり、このパッケージは、左上にタブのついたフォルダ型のシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。
【００７０】
図６に示したように、統合アプリケーション１１０は、操作系サブシステム２０１、管理系サブシステム２０２、実行系サブシステム２０３及びファイル制御部２０４の４つのパッケージを内部に有するパッケージである。そして、操作系サブシステム２０１、管理系サブシステム２０２、実行系サブシステム２０３及びファイル制御部２０４を相互に結ぶ直線は、各パッケージ間にメッセージ送受信などの関連があることを示している。なお、操作系サブシステム２０１、管理系サブシステム２０２、実行系サブシステム２０３及びファイル制御部２０４のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すＵＭＬのシンボルである。
【００７１】
そして、本実施の形態の特徴部分であるファイル制御部２０４について詳細に説明する。なお、このファイル制御部２０４は、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易におこなうことができるようにオブジェクトモデルを構成した。
【００７２】
図７は、本実施の形態の特徴部分であるファイル制御部２０４で行われる処理の概念を示した概念図である。概念としては作業を行う事業所を想定している。本図に示すように事業所において、ユーザからの作業の依頼を受け付ける「受付」と、作業を受け付けた場合に、受け付けた作業を効率的に進めるために指示を送る「作業監督」が存在している。
【００７３】
そして、「依頼者」から依頼を受け付けた場合に、「受付」は受け付けた依頼内容を記載された「作業書」を作成して、「作業監督」に受け渡す。さらに「受付」は、実際に作業を行う者を雇用しておく。つまり、ユーザに対して作業が隠蔽されることになる。これにより、これでユーザは実際の作業まで確認する必要が無くなることになる。
【００７４】
そして、「作業監督」は、受け取った「作業書」を作業する者に渡すと同時に、作業する者に対して作業を行うタイミングなどの指示を与える。
【００７５】
さらに、「作業監督」は、複数の「作業書」を受け取った場合、これらの「作業書」の内容を確認する。内容を確認して並立して出来る作業であれば、同時に複数の作業する者に対して、それぞれに異なる「作業書」を渡し、それぞれに対して作業を行うタイミングの指示を与える。
【００７６】
また、「作業監督」は、複数の「作業書」を受け取った場合、これらの「作業書」の内容が並立して出来ない作業であれば、どちらか一方を作業する者に渡して、作業を行うタイミングを指示し、この作業が終わった後で、他方の「作業書」を作業する者に渡して、作業を行うタイミングを指示する。また、「作業監督」は、どちらの「作業書」の作業を優先して行えば良いか判断も行う。
【００７７】
そして、作業結果は、作業後に「依頼者」に通知が行われる。これにより、「依頼者」に対して作業処理が隠蔽されていても作業結果を取得することができる。
【００７８】
なお、「受付」は複数個あっても良い、例えば、複数の「受付」から複数の「作業書」を一人の「作業監督」が受け取った場合でも、「作業監督」は、受け取った複数の「作業書」について内容を判断して作業を行うタイミングの指示を与えることとなる。
【００７９】
そして、上述したオブジェクトモデリングにより設計されたファイル制御部２０４で作業監督及び作業書という概念を用いて電子ファイルの処理を行う。
【００８０】
本実施の形態では、電子ファイルに対する処理として、例えば、ファイル削除、ファイル生成、ファイルオープン、ファイルクローズ、読み出し、書き込み、シーク、属性取得、属性変更、名称変更を想定し、これらの処理毎に異なる作業書が生成される。また、当然ながら、電子ファイルに対する処理を上記に示したもの以外であってもよい。
【００８１】
図８は、上述したオブジェクトモデリングにより設計されたファイル制御部２０４のクラス構成をＵＭＬのクラスで示した図である。本図に示すように、ファイル制御部２０４は、ファイルクラス８０２と、作業監督クラス８０１と、作業書クラス８０３と、依頼者クラス８０４とを備えている。これにより、実行系サブシステム２０３又は管理系サブシステム２０２から電子ファイルの処理の要求を受け付けた場合に、処理を行うための作業書を発行して、作業書からファイルシステム２０５における電子ファイルの制御を行うことが可能になる。
【００８２】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、作業書クラス８０３を示す矩形の名前区画は、かかるクラスのクラス名が「作業書」であることを示し、属性区画は、かかるクラスが有する属性が、「作業書ＩＤ」及び「作業情報」であることを示し、操作区画は、かかるクラスが有する操作が、「実行（）」、「終了通知（）」であることを示している。
【００８３】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００８４】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「実行（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００８５】
次に、図８に示した本実施の形態の特徴部分であるファイル制御部２０４が備える各クラスについて説明する。
【００８６】
ファイルクラス８０２は、電子ファイルに対して実行可能な処理を操作として有し、実行系サブシステム２０３又は管理系サブシステム２０２で示されるユーザから電子ファイルの処理の要求を受け付け、処理を受け付けた場合に、受け付けた処理を実行する作業書オブジェクト８０３Ａを生成して、後述する作業監督クラス８０１に生成した作業書オブジェクト８０３Ａの監督を要求する。また、ファイルクラス８０２は、処理を受け付けた際に、受け付けた処理の要求を行ったユーザを示す依頼者オブジェクト８０４Ａを生成する。具体的には、このファイルクラス８０２は、操作として、生成（）８０２ａと、削除（）８０２ｂと、ファイルオープン（）８０２ｃと、ファイルクローズ（）８０２ｄと、読み出し（）８０２ｅと、書き込み（）８０２ｆと、シーク（）８０２ｇと、属性取得（）８０２ｈと、属性変更（）８０２ｉと、名称変更（）８０２ｊとを、有する。なお、ファイルクラス８０２は、ファイルの処理の要求を受け付けるため、図７で示した概念図では「受付」の概念に該当し、換言すればファイル受付手段に相当する。
【００８７】
生成（）８０２ａは、実行系サブシステム２０３又は管理系サブシステム２０２から電子ファイルを生成する要求を受け付け、作業書オブジェクト８０３Ａを生成し、電子ファイルの生成する処理の実行を要求する。
【００８８】
また、削除（）８０２ｂ、ファイルオープン（）８０２ｃ、ファイルクローズ（）８０２ｄ、読み出し（）８０２ｅ、書き込み（）８０２ｆ、シーク（）８０２ｇ、属性取得（）８０２ｈ、属性変更（）８０２ｉ、名称変更（）８０２ｊについても同様に、実行系サブシステム２０３又は管理系サブシステム２０２から各々の操作に該当する処理の要求を受け付け、作業書オブジェクト８０３Ａを生成し、電子ファイルに対して各々の操作に該当する処理の実行を要求する。
【００８９】
作業監督クラス８０１は、ファイルクラス８０２から生成された作業書オブジェクト８０３Ａの監督を要求された場合に、要求された作業書オブジェクト８０３Ａの監督することとし、本実施の形態では、作業書オブジェクト８０３Ａにより行われる処理が実行可能だと判断した場合に、当該作業書オブジェクト８０３Ａに対して処理の実行を指示する。具体的には、作業監督クラス８０１は、操作として、要求受付（）８０１ａと、作業終了（）８０１ｂとを有している。
【００９０】
要求受付（）８０１ａは、ファイルオブジェクト８０２Ａから、作業書オブジェクト８０３Ａの監督を依頼する際に呼び出される。また、要求受付（）８０１ａが呼び出された場合、引数として監督する対象である生成された作業書オブジェクト８０３Ａを特定する情報が含まれており、この情報により作業監督クラス８０１との間で関連づけが行われる。そして、要求受付（）８０１ａが呼び出されたことにより監督対象となった作業書オブジェクト８０３Ａに対して実行可能なタイミングが来たと判断した場合に、作業書オブジェクト８０３Ａの実行（）８０３ｃを呼び出す。実行可能なタイミングの例としては、現在処理を行っている作業書オブジェクト８０３Ａが存在しない場合や、現在処理を行っている作業書オブジェクト８０３Ａと並立して処理が可能な場合は、実行可能なタイミングとすることが考えられる。
【００９１】
作業終了（）８０１ｂは、作業書オブジェクト８０３Ａから処理の終了を報告する際に呼び出される。これにより、作業監督クラス８０１は、処理が終了したことを認識することができるので、処理の終了の報告を行った作業書オブジェクト８０３Ａと並列して処理ができなかったため、処理がまだ行われていない作業書オブジェクト８０３Ａに対して実行を指示することができる。また、作業終了（）８０１ｂが呼び出された場合、作業監督オブジェクト８０１Ａは、呼び出した作業書オブジェクト８０３Ａの削除を行う。
【００９２】
作業書クラス８０３は、電子ファイルに対して実行する処理を作業情報８０３ｂとして有し、作業監督オブジェクト８０１Ａから実行を指示された場合に、サービス層１０２のファイルシステム２０５に対して、当該処理に該当する電子ファイルの制御を要求する。具体的に、作業書クラス８０３は、属性として、作業書ＩＤ８０３ａと、作業情報８０３ｂとを有し、操作として、実行（）８０３ｃと、終了通知（）８０３ｄとを有している。なお、かかる作業書クラス８０３を実体化したオブジェクトが生成されると、作業書ＩＤ８０３ａと作業情報８０３ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９３】
作業書ＩＤ８０３ａは、生成された作業書オブジェクト８０３Ａ毎に割り当てられたユニークなＩＤとする。つまり、作業書オブジェクト８０３Ａは、作業監督オブジェクト８０１Ａに対して複数生成される場合がある。そこで、作業書オブジェクト８０３Ａが作業書ＩＤを保持することで、作業監督オブジェクト８０１Ａが処理の実行を指示する際に、指示する対象となる作業書オブジェクト８０３Ａを特定することができる。
【００９４】
作業情報８０３ｂは、処理を実行するために必要な情報を保持している。例えば、ファイルオブジェクト８０２Ａが生成（）８０２ａを呼び出された場合、これに対応して生成された作業書オブジェクト８０３Ａの作業情報は、ファイルシステム２０５に対して電子ファイルの生成を行うために必要な情報を保持していることとする。この作業情報８０３ｂが、作業書に記載された作業内容の概念に相当する。つまり、作業情報８０３ｂで実行する処理の情報を有することで、作業書クラス８０３が実行する処理と対応付けられていることとなる。
【００９５】
実行（）８０３ｃは、作業監督オブジェクト８０１Ａから呼び出され、処理の開始するトリガーとなる。これにより、作業情報８０３ｂが保持する情報に従って、電子ファイルの処理が行われるように、ファイルシステム２０５に対して電子ファイルの制御を要求することとなる。
【００９６】
終了通知（）８０３ｄは、ファイルシステム２０５から、要求した電子ファイルの制御が終了した場合に呼び出される。終了通知（）８０３ｄが呼び出されることで、作業書クラス８０３は、電子ファイルの処理の終了を認識することができる。そして、作業書クラス８０３は、電子ファイルの処理の終了を認識した場合、作業監督オブジェクト８０１Ａの作業終了（）８０１ｂ及び依頼者オブジェクト８０４Ａの終了通知（）８０４ａを呼び出して、電子ファイルの処理が終了した旨を出力する。
【００９７】
また、作業内容の違いに応じて、作業書クラス８０３を承継したサブクラスを設けてもよい。この設けられたサブクラスより生成されたオブジェクトが、電子ファイルの処理を行うことにしても良い。
【００９８】
依頼者クラス８０４は、電子ファイルの処理の要求を行った実行系サブシステム２０３及び管理系サブシステム２０２によるユーザを保持し、作業書オブジェクト８０３Ａから終了通知を受け取った場合に、保持しているユーザに対して処理が終了した旨を通知する。依頼者オブジェクト８０４Ａは、ファイルオブジェクト８０２Ａが、電子ファイルの処理の要求を受け付けた場合に、実行系サブシステム２０３及び管理系サブシステム２０２によるユーザと対応付けて生成される。この生成された依頼者オブジェクト８０４Ａが、電子ファイルの処理の要求を行ったユーザを保持することで、処理が終了した旨の通知先を特定することができる。
【００９９】
また、依頼者クラス８０４は、属性として、ユーザ情報８０４ａを有し、操作として、終了通知（）８０４ｂを有している。なお、かかる依頼者クラス８０４を実体化したオブジェクトが生成されると、ユーザ情報８０４ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１００】
ユーザ情報８０４ａは、電子ファイルの処理の要求を行った実行系サブシステム２０３及び管理系サブシステム２０２を示すユーザ情報を保持している。これにより、要求元を特定することができる。
【０１０１】
終了通知（）８０４ｂは、作業書オブジェクト８０３Ａから、電子ファイルの処理が終了した場合に呼び出される。終了通知（）８０４ｂが呼び出されることで、依頼者クラス８０４は、電子ファイルの処理の終了した旨を取得することができる。そして、依頼者クラス８０４は、電子ファイルの処理の終了した旨を取得した場合、ユーザ情報８０４ａで特定できる電子ファイルの処理の要求先に対して、電子ファイルの処理が終了した旨を通知する。この電子ファイルの処理が終了した旨の通知は、換言すれば予め定められた処理に相当する。
【０１０２】
次に、図８に示した各クラス間の関係について説明する。本図に示したように、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
【０１０３】
たとえば、作業監督クラス８０１からみた作業書クラス８０３の役割は「作業内容」であり、作業書クラス８０３からみた作業監督クラス８０１の役割は「作業指揮者」であり、作業監督クラス８０１の多重度は「１」であり、作業書クラス８０３の多重度は「０．．＊」である。ここで、「０．．＊」は、かかる作業書クラス８０３の多重度が、０から上限数なしの範囲であることを示している。また、たとえば、「１．．３」の記載をした場合には、かかるクラスの多重度が、１〜３の範囲であることを示す。
【０１０４】
まず、ファイルクラス８０２と作業監督クラス８０１とのクラス関係について説明する。ファイルクラス８０２は、作業監督クラス８０１からみると複合機１が電子ファイルの処理を受け付ける受付としての役割を有しており、一方、作業監督クラス８０１は、ファイルクラス８０２からみると受け付けた処理について作業を行う作業者としての役割を有している。このようなクラス関係によりファイルクラス８０２で受け付けた電子ファイルの処理の要求を、作業監督クラス８０１が受け取り、要求された電子ファイルの処理を監督することが可能となる。
【０１０５】
そして、本図に示したように、ファイル制御部２０４が実行される場面において、ファイルクラス８０２をＲＡＭ１２ｂ上に展開（実体化）したオブジェクトは０個以上、上限数なしの範囲で存在し、このファイルクラス８０２より受け渡された処理を監督する作業監督クラス８０１を実体化したオブジェクトは１個だけ存在する。これにより、複数の受付があるので、容易に電子ファイルの処理の要求を行うことを可能にすると共に、作業監督クラス８０１を実体化したオブジェクトは１個だけしか存在しないので、受け付けた電子ファイルの処理を一括して監督することができるため、効率よく処理の制御を行うことができる。
【０１０６】
また、ファイルクラス８０２のオブジェクト数の上限数は規定していないものの、当然に、ハードウェア仕様などによる制限を受けるものとする。
【０１０７】
次に、作業監督クラス８０１と、作業書クラス８０３との関係について説明する。作業監督クラス８０１は、複数の作業書クラス８０３を監督し、実行するタイミングを指示することが出来る。そして、作業書クラス８０３には指示された際に行われる作業内容を保持している。このため、作業監督クラス８０１と、作業書クラス８０３は、「作業指揮者」と「作業内容」という関係をなしている。
【０１０８】
また、作業監督クラス８０１から生成されたオブジェクトは、複合機内に１個だけ存在し、電子ファイルに対して行われる処理全てを監督している。これに対して作業書クラス８０３から生成されたオブジェクトは、作業監督クラス８０１が監督する対象となる電子ファイルの処理毎に生成されるものであり、１個の作業監督オブジェクト８０１Ａに対して、０個以上ｎ個以下の範囲で存在する。
【０１０９】
次に、ファイルクラス８０２と作業書クラス８０３との関係について説明する。作業書クラス８０３のオブジェクトは、ファイルクラス８０２が生成を行うため、作業書クラス８０３とファイルクラス８０２との間に依存関係が成り立つ。
【０１１０】
次に、作業書クラス８０３と依頼者クラス８０４との関係について説明する。作業書クラス８０３は、依頼者クラス８０４が依頼した作業の内容を保持している。このため、作業書クラス８０３と依頼者クラス８０４は、「依頼内容」と「依頼者」という関係をなしている。
【０１１１】
また、依頼者クラス８０４から生成されたオブジェクトは、ファイル制御部２０４に電子ファイルの処理を要求したユーザ毎に生成されるものであり、この依頼者クラス８０４から生成されたオブジェクトは、複数の作業を依頼することができる。この場合、依頼した作業毎に作業書クラス８０３のオブジェクトが生成される。つまり、作業書オブジェクト８０３Ａは、１個の依頼者オブジェクト８０４Ａに対して０個以上ｎ個以下の範囲で存在する。これに対して、作業書クラス８０３から生成されたオブジェクトが依頼者オブジェクト８０４Ａによる依頼毎に生成される。つまり、依頼者オブジェクト８０４Ａは、１個の作業書クラス８０３に対して１個存在する。
【０１１２】
次に、ファイルクラス８０２と依頼者クラス８０４との関係について説明する。依頼者クラス８０４のオブジェクトは、ファイルクラス８０２が生成を行うため、依頼者クラス８０４とファイルクラス８０２との間に依存関係が成り立つ。
【０１１３】
このように、ファイルクラス８０２、作業監督クラス８０１、作業書クラス８０３、依頼者クラス８０４の各オブジェクトは、相互に関連し合い、協調することによりファイル制御部２０４に必要な機能を実現することが可能となる。
【０１１４】
次に、図８に示した各クラスの操作の実行手順について例をあげて説明する。図９は、ファイル制御部２０４がユーザから電子ファイルの処理の要求を受け付けた際に実際に処理を行いユーザに通知が行われるまでの操作の実行手順を示すＵＭＬシーケンス図である。
【０１１５】
ここで、ＵＭＬシーケンス図について説明しておく。図１３の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。
【０１１６】
各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。また、矢印が自分自身のオブジェクトを指している場合は、オブジェクトが自分に含まれる操作を自身で呼び出すことを意味する。
【０１１７】
また、本図では、電子ファイルの処理の要求として、ファイルオープンを要求した場合を想定するが、これ以外のどの様な電子ファイルの処理であっても良い。
【０１１８】
図９に示すように、実行系サブシステム２０３又は管理系サブシステム２０２の構成を示すユーザが、ファイルオブジェクト８０２Ａに対して、ファイルオープン（）８０２ｃを呼び出して、電子ファイルのファイルオープンを要求する（ステップＳ９０１）。そして、電子ファイルの処理の要求を受け付けたファイルオブジェクト８０２Ａは、受け付けた処理に対応する作業書オブジェクト８０３Ａを生成する（ステップＳ９０２）。この生成された作業書オブジェクト８０３Ａの作業情報８０３ｂには、ファイルオープンを行うために必要な情報が書き込まれたこととする。また、要求を行ったユーザを示す依頼者オブジェクト８０４Ａが生成されていない場合は、依頼者オブジェクト８０４Ａを生成する（ステップＳ９０３）。なお、この生成された依頼者オブジェクト８０４Ａと作業書オブジェクト８０３Ａの間の関連は保持することとする。
【０１１９】
次に、ファイルオブジェクト８０２Ａは、生成した作業書オブジェクト８０３Ａを作業監督クラス８０１に渡して、作業監督オブジェクト８０１Ａの要求受付（）８０１ａを呼び出す（ステップＳ９０４）。
【０１２０】
そして、作業監督オブジェクト８０１Ａは、要求受付（）８０１ａが呼び出されると共に、作業書オブジェクト８０３Ａを受け取った場合、作業できるタイミングを見計らって、作業書オブジェクト８０３Ａの実行（）８０３ｃを呼び出して、処理の開始を要求する（ステップＳ９０５）。本シーケンス図では、他の電子ファイルの処理が行われていないために、作業監督オブジェクト８０１Ａは、要求受付（）８０１ａを呼び出されてすぐに作業書オブジェクト８０３Ａに処理を要求したこととする。
【０１２１】
次に、作業書オブジェクト８０３Ａは、処理の開始が要求された場合に、作業情報８０３ｂの内容に従って、ファイルシステム２０５にファイルオープン要求を行う（ステップＳ９０６）。これによりファイルシステム２０５で電子ファイルをオープンする制御が行われる。
【０１２２】
そして、ファイルシステム２０５が、電子ファイルをオープンする制御が終了した場合に、作業書オブジェクト８０３Ａの終了通知（）８０３ｄを呼び出して、電子ファイルの処理が終了した旨を通知する（ステップＳ９０７）。
【０１２３】
次に、作業書オブジェクト８０３Ａは、作業監督オブジェクト８０１Ａの作業終了（）８０１を呼び出して、作業書オブジェクト８０３Ａに対応付けられた電子ファイルの処理が終了したことを通知する（ステップＳ９０８）。さらに、作業書オブジェクト８０３Ａは、関連を有する依頼者オブジェクト８０４Ａの終了通知（）８０４ｂを呼び出して、要求した処理が終了したことを通知する（ステップＳ９０９）。
【０１２４】
そして、依頼者オブジェクト８０４Ａは、要求した処理が終了した場合、実行系サブシステム２０３又は管理系サブシステム２０２のユーザに対して作業が終了した旨を通知する（ステップＳ９１０）。
【０１２５】
次に、図８に示した各クラスの操作の実行手順についてもう一つの例をあげて説明する。図１０は、ファイル制御部２０４がユーザから複数の電子ファイルの処理の要求を受け付けた際に実際に処理を行いユーザに通知が行われるまでの操作の実行手順を示すＵＭＬシーケンス図である。
【０１２６】
図１０に示すように、実行系サブシステム２０３又は管理系サブシステム２０２の構成を示すユーザが、ファイルオブジェクト８０２Ａに対して、ファイルオープン（）８０２ｃを呼び出して、電子ファイルのファイルオープンを要求する（ステップＳ１００１）。そして、電子ファイルの処理の要求を受け付けたファイルオブジェクト８０２Ａは、受け付けた処理に対応する作業書オブジェクト８０３Ａを生成する（ステップＳ１００２）。この生成された作業書オブジェクト８０３Ａの作業情報８０３ｂには、ファイルオープンを行うために必要な情報が書き込まれたこととする。また、要求を行ったユーザを示す依頼者オブジェクト８０４Ａが生成されていない場合は、依頼者オブジェクト８０４Ａを生成する（ステップＳ１００３）。なお、この生成された依頼者オブジェクト８０４Ａと作業書オブジェクト８０３Ａの間の関連は保持することとする。
【０１２７】
さらに、ユーザが、ファイルオブジェクト８０２Ａに対して、書き込み（）８０２ｆを呼び出して、オープンしたファイルの書き込みを要求する（ステップＳ１００４）。そして、電子ファイルの書き込み処理の要求を受け付けたファイルオブジェクト８０２Ａは、書き込み処理に対応する作業書オブジェクト８０３Ａを生成する（ステップＳ１００５）。
【０１２８】
次に、ファイルオブジェクト８０２Ａは、ファイルオープンを行うための作業書オブジェクト８０３Ａを作業監督クラス８０１に渡して、作業監督オブジェクト８０１Ａの要求受付（）８０１ａを呼び出す（ステップＳ１００６）。さらに、ファイルオブジェクト８０２Ａは、書き込み処理を行うための作業書オブジェクト８０３Ａを作業監督クラス８０１に渡して、作業監督オブジェクト８０１Ａの要求受付（）８０１ａを呼び出す（ステップＳ１００７）。
【０１２９】
そして、作業監督オブジェクト８０１Ａは、複数の要求を受け付けた場合に、処理のタイミングを判断する（ステップＳ１００８）。本シーケンス図で示した例では、同一ファイルに対してファイルオープンと書き込み処理の要求を受け付けた場合とし、同時に処理を行うことができないので、作業監督オブジェクト８０１Ａは、まずファイルオープンを行った後に、書き込み処理を行うことと判断した。
【０１３０】
そして、作業監督オブジェクト８０１Ａは、ファイルオープンの処理に対応する作業書オブジェクト８０３Ａの実行（）８０３ｃを呼び出して、処理の開始を要求する（ステップＳ１００９）。
【０１３１】
次に、ファイルオープンの処理に対応する作業書オブジェクト８０３Ａは、処理の開始が要求された場合に、作業情報８０３ｂの内容に従って、ファイルシステム２０５にファイルオープン要求を行う（ステップＳ１０１０）。これによりファイルシステム２０５で電子ファイルをオープンする制御が行われる。
【０１３２】
そして、ファイルシステム２０５が、電子ファイルをオープンする制御が終了した場合に、作業書オブジェクト８０３Ａの終了通知（）８０３ｄを呼び出して、電子ファイルの処理が終了した旨を通知する（ステップＳ１０１１）。
【０１３３】
次に、作業書オブジェクト８０３Ａは、作業監督オブジェクト８０１Ａの作業終了（）８０１を呼び出して、作業書オブジェクト８０３Ａに対応付けられたファイルオープンの処理が終了したことを通知する（ステップＳ１０１２）。さらに、作業書オブジェクト８０３Ａは、関連を有する依頼者オブジェクト８０４Ａの終了通知（）８０４ｂを呼び出して、要求した処理が終了したことを通知する（ステップＳ１０１３）。
【０１３４】
そして、依頼者オブジェクト８０４Ａは、要求した処理が終了した場合、実行系サブシステム２０３又は管理系サブシステム２０２のユーザに対して作業が終了した旨を通知する（ステップＳ１０１４）。
【０１３５】
また、作業監督オブジェクト８０１Ａは、ステップＳ１０１２で処理が終了したことの通知を受け付けた場合、次の処理を行っても良いものと判断して、書き込み処理に対応する作業書オブジェクト８０３Ａの実行（）８０３ｃを呼び出して、処理の開始を要求する（ステップＳ１０１５）。
【０１３６】
そして、それ以降の処理については、ファイルオープンが書き込み処理に変更された以外はステップＳ１０１０〜ステップＳ１０１４の処理手順と同様の処理手順を行うので説明を省略する（ステップＳ１０１６〜ステップＳ１０２０）。
【０１３７】
上述した図９及び図１０のシーケンス図で示したように、本実施の形態では、機能を使用する要求があった場合の処理にあたり、ファイルクラス８０２と、作業監督クラス８０１と、作業書クラス８０３と、依頼者クラス８０４とから構成され、各クラスから生成されたオブジェクトで電子ファイルの処理の要求を受け付けてから、電子ファイルの処理を行った後にユーザに処理が終了した旨の通知が行われる。これにより、ユーザは実際に行われる処理を考慮せずに電子ファイルの処理を要求できるとともに、終了した場合に通知が行われるので結果は知ることができるので、サービスの利便性を向上させる。また、オブジェクト指向設計により、かかるファイル制御部２０４の仕組みを構築し、図７で示したような概念に基づいてオブジェクトモデリングをおこない、機能を実行できる権利を有するか確認するために必要なクラスとしてファイルクラス８０２と、作業監督クラス８０１と、作業書クラス８０３と、依頼者クラス８０４を用いることで、かかるファイル制御部２０４を実現したので、ソフトウェア開発者やソフトウェア保守要員が、ファイル制御部２０４の構成と役割を容易に把握することができるとともに、汎用性及び信頼性の高い利用者の認証処理をおこなうことができる。
【０１３８】
なお、本実施の形態の画像形成装置で実行される電子ファイル処理プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記憶媒体から、電子ファイル処理プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０１３９】
また、電子ファイル処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかる電子ファイル処理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０１４０】
上述した構成は、本発明の電子ファイル処理装置の一例を示したものであり、上述した構成に制限するものではない。
【０１４１】
そして、本実施の形態のファイル制御部２０４は、オブジェクト毎に分割して設計し、上述した構成を備えることとした。これにより変更が生じた場合そのクラス等のみ変更を加えればよい。このため、従来は要件が増えた場合には設計者の作業量もこれに比例していたが、上述した構成を備えたことで作業量が低減される。
【０１４２】
また、従来のファイル処理を行う部分は、実行するアプリケーション等が直接制御を行っていたが、上述した構成を備えたことで電子ファイルの処理を共通化した上で、ファイル処理の要求を受け付ける構成と、ファイル処理の実行する構成を分けて備えることとしたので、設計者に対してソフトウェアの構成と役割を認識することが容易に出来るとともに、実際の処理を隠蔽して結果のみ通知することで利便性が向上した。
【０１４３】
また、作業監督クラス８０１という構成をさらに備えたことで要求された電子ファイルの処理を監督することが可能になり、実際の処理が隠蔽された場合でも安定して電子ファイルの処理が行われることになる。また、依頼者クラス８０４という構成をさらに備えたことで作業が終了した後に通知する通知先が明確になるため、容易に処理が終了した旨の通知という予め定められた処理が容易に行えることとなり、利便性が向上する。
【０１４４】
このファイル制御部２０４の備えた構造は、実社会において、作業の要求を行う受付と、作業を監督する作業監督、そして作業内容が記載された作業書を設け、作業書に従って作業を行うという概念は実社会上で非常に多い状況であるため、安定して電子ファイルの処理を管理することができる。また、設計者または利用者は、ファイル処理の概念を直感的に把握できるため、設計または使用するまでの認識が容易になる。
【産業上の利用可能性】
【０１４５】
以上のように、本発明にかかる電子ファイル処理装置、画像形成装置、電子ファイル処理方法及び電子ファイル処理プログラムは、利用者の認証処理に有用であり、特に、ログインした利用者が機能を利用する権利を有するか否か判断する技術に適している。
【図面の簡単な説明】
【０１４６】
【図１】実施の形態に係る複合機を取り巻くネットワーク環境を説明するためのネットワーク図である。
【図２】実施の形態に係る複合機のハードウェア構成を示すブロック図である。
【図３】実施の形態に係る複合機のソフトウェアとハードウェアの関係を説明するための概念図である。
【図４】実施の形態に係る複合機の操作パネルの一例を示した図である。
【図５】実施の形態に係る複合機の統合アプリケーションの内部構成、及び統合アプリケーション内における認証管理部の位置を示す説明図である。
【図６】実施の形態に係る複合機の統合アプリケーションの内部構成として示した各サブシステムについてのＵＭＬクラス図である。
【図７】複合機が有するファイル制御部で行われる処理の概念を示した概念図である。
【図８】オブジェクトモデリングにより設計された実施の形態に係る複合機のファイル制御部のＵＭＬのクラス構成を示した図である。
【図９】実施の形態に係る複合機のファイル制御部がユーザから電子ファイルの処理の要求を受け付けた際に実際に処理を行いユーザに通知が行われるまでの操作の実行手順を示すＵＭＬシーケンス図である。
【図１０】実施の形態に係る複合機のファイル制御部がユーザから複数の電子ファイルの処理の要求を受け付けた際に実際に処理を行いユーザに通知が行われるまでの操作の実行手順を示すＵＭＬシーケンス図である。
【図１１】複合機に搭載されるソフトウェア構成の変遷を説明するための説明図である。
【図１２】従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【符号の説明】
【０１４７】
１  複合機
１０  コントローラ
１１  ＣＰＵ
１２  システムメモリ（ＭＥＭ−Ｐ）
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ノースブリッジ（ＮＢ）
１４  サウスブリッジ（ＳＢ）
１５  ＡＧＰバス
１６  ＡＳＩＣ
１７  ローカルメモリ（ＭＥＭ−Ｃ）
１８  ハードディスクドライブ（ＨＤＤ）
２０  操作部
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４インターフェース
６０  エンジン部
１００  ソフトウェア
１０１、１０１Ａ  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１２１  コピーアプリケーション
１２２  スキャナアプリケーション
１２３  ファックスアプリケーション
１２４  プリンタアプリケーション
１５０  ハードウェア
１５１  ハードウェアリソース
１５１ａ  スキャナ
１５１ｂ  プロッタ
１５１ｃ  ＨＤＤ
１５１ｄ  ネットワーク
１５１ｅ  その他のリソース
２０１  操作系サブシステム
２０２  管理系サブシステム
２０３  実行系サブシステム
２０４  ファイル制御部
２０５  ファイルシステム
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバーキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４２０  液晶タッチパネル
８０１  作業監督クラス
８０１ａ  要求受付（）
８０１ｂ  作業終了（）
８０１Ａ  作業監督オブジェクト
８０２  ファイルクラス
８０２ａ  生成（）
８０２ｂ  削除（）
８０２ｃ  ファイルオープン（）
８０２ｄ  ファイルクローズ（）
８０２ｅ  読み出し（）
８０２ｆ  書き込み（）
８０２ｇ  シーク（）
８０２ｈ  属性取得（）
８０２ｉ  属性変更（）
８０２ｊ  名称変更（）
８０２Ａ  ファイルオブジェクト
８０３  作業書クラス
８０３ａ  作業書ＩＤ
８０３ｂ  作業情報
８０３ｃ  実行（）
８０３ｄ  終了通知（）
８０３Ａ  作業書オブジェクト
８０４  依頼者クラス
８０４ａ  ユーザ情報
８０４ｂ  終了通知（）
８０４Ａ  依頼者オブジェクト
１５０１  サービス層分離前アプリケーション
１５０２  サービス層分離後アプリケーション
１５０３  共通ルーチン分離アプリケーション
１５０４  オブジェクト指向アプリケーション
【図１】
2006252317.tif 000003
【図２】
2006252317.tif 000004
【図３】
2006252317.tif 000005
【図４】
2006252317.tif 000006
【図５】
2006252317.tif 000007
【図６】
2006252317.tif 000008
【図７】
2006252317.tif 000009
【図８】
2006252317.tif 000010
【図９】
2006252317.tif 000011
【図１０】
2006252317.tif 000012
【図１１】
2006252317.tif 000013
【図１２】
2006252317.tif 000014