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