(57)【特許請求の範囲】
【請求項１】
入出力処理依頼を受けた場合に、該入出力処理依頼に応答する入出力の実行を指示するとともに、前記各入出力処理依頼を管理する入出力管理装置であって、
前記入出力処理依頼に応じた入力を実行する入力手段と、
前記入力手段によって入力されたデータを出力手段へ転送する移動手段と、
前記移動手段によって転送されてきた前記データの前記入出力依頼に応じた出力を実行する前記出力手段と、
前記入力手段、前記移動手段、及び前記出力手段をフォルダ管理する入出力管理手段とを有し、
前記入出力管理手段は、前記入出力処理依頼を受けたとき、
前記入力手段に、入力用オブジェクトを入力デバイス毎に生成させ、
前記出力手段に、出力用オブジェクトを出力デバイス毎に生成させ、
前記移動手段に、前記入出力処理依頼に応じた適切なオブジェクトを選択させることを特徴とする入出力管理装置。
【請求項２】
前記入力手段、前記移動手段、及び前記出力手段は、前記入出力管理手段を木構造の親として該入出力管理手段によって管理されることを特徴とする請求項１記載の入出力管理装置。
【請求項３】
前記入力手段は、前記入力手段に対応する入出力処理の入力条件及び実行状態を取得して保持することを特徴とする請求項１又は２記載の入出力管理装置。
【請求項４】
前記出力手段は、前記出力手段に対応する入出力処理の出力条件及び実行状態を取得して保持することを特徴とする請求項１から３のいずれか１項記載の入出力管理装置。
【請求項５】
前記入出力管理手段は、前記入出力管理装置が許容する最大のデータ数である限界数と、該限界数及び受付中のデータ数に応じて決定される受付状態と、を持ち、入出力処理依頼を受けた場合に前記受付状態に基づいて当該入出力処理依頼の受け付け可否を決定することを特徴とする請求項１から４のいずれか１項記載の入出力管理装置。
【請求項６】
入力工程、移動工程、及び出力工程をフォルダ管理する入出力管理手段を有し、入出力処理依頼を受けた場合に、該入出力処理依頼に応答する入出力の実行を指示するとともに、前記各入出力処理依頼を管理する入出力管理装置の入出力管理方法であって、
前記入出力処理依頼に応じた入力を実行する前記入力工程と、
前記入力工程によって入力されたデータを出力工程へ転送する前記移動工程と、
前記移動工程によって転送されてきた前記データの前記入出力依頼に応じた出力を実行する前記出力工程とを有し、
前記入力工程では入力デバイス毎に入力用オブジェクトを生成し、
前記出力工程では出力デバイス毎に出力用オブジェクトを生成し、
前記移動工程では、生成された前記入力用及び出力用オブジェクトの中から前記入出力依頼に応じた適切なオブジェクトを選択することを特徴とする入出力管理方法。
【請求項７】
前記入力工程、前記移動工程、及び前記出力工程は、前記入出力管理手段を木構造の親として該入出力管理手段によって管理されることを特徴とする請求項６記載の入出力管理方法。
【請求項８】
前記入力工程は、前記入力工程に対応する入出力処理の入力条件及び実行状態を取得して保持することを特徴とする請求項６又は７記載の入出力管理方法。
【請求項９】
前記出力工程は、前記出力工程に対応する入出力処理の出力条件及び実行状態を取得して保持することを特徴とする請求項６から８のいずれか１項記載の入出力管理方法。
【請求項１０】
前記入出力管理手段は、前記入出力管理装置が許容する最大のデータ数である限界数と、該限界数及び受付中のデータ数に応じて決定される受付状態と、を持ち、入出力処理依頼を受けた場合に前記受付状態に基づいて当該入出力処理依頼の受け付け可否を決定することを特徴とする請求項６から９のいずれか１項記載の入出力管理方法。
【請求項１１】
入力処理、移動処理、及び出力処理をフォルダ管理する入出力管理手段を有し、入出力処理依頼を受けた場合に、該入出力処理依頼に応答する入出力の実行を指示するとともに、前記各入出力処理依頼を管理する入出力管理装置の入出力管理プログラムであって、
前記入出力処理依頼に応じた入力を実行する前記入力処理と、
前記入力処理によって入力されたデータを前記出力処理へ転送する移動処理と、
前記移動処理によって転送されてきた前記データの前記入出力依頼に応じた出力を実行する前記出力処理とを有し、
前記入力処理では入力デバイス毎に入力用オブジェクトを生成し、
前記出力処理では出力デバイス毎に出力用オブジェクトを生成し、
前記移動処理では、生成された前記入力用及び出力用オブジェクトの中から前記入出力依頼に応じた適切なオブジェクトを選択することを特徴とする入出力管理プログラム。
【請求項１２】
前記入力処理、前記移動処理、及び前記出力処理は、前記入出力管理手段を木構造の親として該入出力管理手段によって管理されることを特徴とする請求項１１記載の入出力管理プログラム。
【請求項１３】
前記入力処理は、前記入力処理に対応する入出力処理の入力条件及び実行状態を取得して保持することを特徴とする請求項１１又は１２記載の入出力管理プログラム。
【請求項１４】
前記出力処理は、前記出力処理に対応する入出力処理の出力条件及び実行状態を取得して保持することを特徴とする請求項１１から１３のいずれか１項記載の入出力管理プログラム。
【請求項１５】
前記入出力管理手段は、前記入出力管理装置が許容する最大のデータ数である限界数と、該限界数及び受付中のデータ数に応じて決定される受付状態と、を持ち、入出力処理依頼を受けた場合に前記受付状態に基づいて当該入出力処理依頼の受け付け可否を決定することを特徴とする請求項１１から１４のいずれか１項記載の入出力管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機が有するアプリケーションの変更、追加等の管理を効率的に行うことができる入出力管理装置、入出力管理方法、及び入出力管理プログラムに関する。
【背景技術】
【０００２】
昨今の複合機は、膨大な機能を有し、ユーザが全ての機能を理解し、利用するのは非常に困難である。また、これらの機能には、目的が類似したものがあり、機能に重複が存在している場合もある。結果、ユーザによっては、備わった機能をほとんど使用しないという状況も少なくない。
【０００３】
その一方で、機能拡張のニーズがあるのも事実である。ここで要求される機能拡張とは、文書の入力元や出力先の追加である。例えば、スキャナから読み込んだデータを各種メディアに書き込みたいとか、インターネット上に存在するデータを入力として紙に印刷したいといった要望である。このように文書の入力元や出力先が増えるたびに、その機能を果たすアプリケーションを追加していてはシステムの規模が増大・複雑化してしまう。
【０００４】
特許文献１では、各々独自の文書管理方式を持つデジタル複写機とデータ端末装置との間で、ユーザの新たな負担を生じさせることなく、また使い勝手を低下させることなく、デジタル複合機で登録した文書をデータ端末装置で見たり、データ端末装置で作成した文書をデジタル複合機に登録できるデジタル複合機及びこれに接続されるデータ端末装置が提案されている。
【０００５】
特許文献２では、複合機能情報検索手段が、複合機能情報蓄積手段に集められた被制御機器の間の情報の入出力する情報の種類及び接続状況に関する情報を基に、被制御機器の間の機能の複合による有用な機能の検索を行い、これを操作者に提示することによって、複数の機器の複合によって実現される機能を、個々の機器に関する操作のインタフェースに加えて操作者に提示することができる機器操作支援装置及び機器操作支援方法が提案されている。
【０００６】
特許文献３では、指示された複数の入力元からそれぞれ入力される情報の結合順序を各入力情報を示すアイコンの配列で表示し、該表示される各入力情報を示すアイコンの配列順序をマウス等により変更指示し、実行指示に基づき、ＣＰＵが指示された複数の入力元からそれぞれ入力される情報を配列表示される順序で結合して複数の周辺機器による複合機能を制御するデータ処理装置およびデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体が提案されている。
【特許文献１】特開２００１−９２８１３号公報
【特許文献２】特開平７−２８４１６４号公報
【特許文献３】特開２０００−３１５１３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記の発明は以下の問題を有している。
【０００８】
従来の複合機においては、例えば、コピーアプリを使用するときの制御プログラムと、ＦＡＸアプリを使用する際の制御プログラムとは、全く異なるプログラムによって構成されていた。そのため、コピーアプリとＦＡＸアプリとは、共にスキャナによる読み取り処理を有しているにも係わらず、各アプリは別個に読み取り動作を制御するプログラムが組み込まれていた。
【０００９】
また、複合機が有する各アプリケーションは、それぞれ入力と出力処理という共通の動作を有しているにも係わらず、入力元から出力先へデータを転送するプログラムがそれぞれ別個に設けられていた。
【００１０】
そこで、本発明は、複合機が有するデータを入力する機能の共通する機能を一般化して管理する入力クラスと、該入力クラスによって入力されたデータを出力先に転送するデータクラスと、データクラスから受信したデータの出力先が共通して保持する機能を一般化して管理する出力クラスとを設けることにより、入力クラス又は出力クラスのサブクラスに新たな機能が追加された場合であっても、入力クラス、データクラス、及び出力クラスにおいて実行される処理を変更することなく、又は一部を変更するだけで済むため、新たな機能の追加が容易な入出力管理装置、入出力管理方法、及び入出力管理プログラムを提案することを目的としている。
【課題を解決するための手段】
【００１１】
請求項１記載の発明は、入出力処理依頼を受けた場合に、該入出力処理依頼に応答する入出力の実行を指示するとともに、前記各入出力処理依頼を管理する入出力管理装置であって、前記入出力処理依頼に応じた入力を実行する入力手段と、前記入力手段によって入力されたデータを出力手段へ転送する移動手段と、前記移動手段によって転送されてきた前記データの前記入出力依頼に応じた出力を実行する前記出力手段と、前記入力手段、前記移動手段、及び前記出力手段をフォルダ管理する入出力管理手段とを有し、前記入出力管理手段は、前記入出力処理依頼を受けたとき、前記入力手段に、入力用オブジェクトを入力デバイス毎に生成させ、前記出力手段に、出力用オブジェクトを出力デバイス毎に生成させ、前記移動手段に、前記入出力処理依頼に応じた適切なオブジェクトを選択させることを特徴とする。
【００１２】
請求項２記載の発明は、請求項１記載の入出力管理装置において、前記入力手段、前記移動手段、及び前記出力手段は、前記入出力管理手段を木構造の親として該入出力管理手段によって管理されることを特徴とする。
【００１３】
請求項３記載の発明は、請求項１又は２記載の入出力管理装置において、前記入力手段は、前記入力手段に対応する入出力処理の入力条件及び実行状態を取得して保持することを特徴とする。
【００１４】
請求項４記載の発明は、請求項１から３のいずれか１項記載の入出力管理装置において、前記出力手段は、前記出力手段に対応する入出力処理の出力条件及び実行状態を取得して保持することを特徴とする。
【００１５】
請求項５記載の発明は、請求項１から４のいずれか１項記載の入出力管理装置において、前記入出力管理装置が許容する最大のデータ数である限界数と、該限界数及び受付中のデータ数に応じて決定される受付状態と、を持ち、入出力処理依頼を受けた場合に前記受付状態に基づいて当該入出力処理依頼の受け付け可否を決定することを特徴とする。
【００１６】
請求項６記載の発明は、入力工程、移動工程、及び出力工程をフォルダ管理する入出力管理手段を有し、入出力処理依頼を受けた場合に、該入出力処理依頼に応答する入出力の実行を指示するとともに、前記各入出力処理依頼を管理する入出力管理装置の入出力管理方法であって、前記入出力処理依頼に応じた入力を実行する前記入力工程と、前記入力工程によって入力されたデータを出力工程へ転送する前記移動工程と、前記移動工程によって転送されてきた前記データの前記入出力依頼に応じた出力を実行する前記出力工程とを有し、前記入力工程では入力デバイス毎に入力用オブジェクトを生成し、前記出力工程では出力デバイス毎に出力用オブジェクトを生成し、前記移動工程では、生成された前記入力用及び出力用オブジェクトの中から前記入出力依頼に応じた適切なオブジェクトを選択することを特徴とする。
【００１７】
請求項７記載の発明は、請求項６記載の入出力管理方法において、前記入力工程、前記移動工程、及び前記出力工程は、前記入出力管理手段を木構造の親として該入出力管理手段によって管理されることを特徴とする。
【００１８】
請求項８記載の発明は、請求項６又は７記載の入出力管理方法のおいて、前記入力工程は、前記入力工程に対応する入出力処理の入力条件及び実行状態を取得して保持することを特徴とする。
【００１９】
請求項９記載の発明は、請求項６から８のいずれか１項記載の入出力管理方法において、前記出力工程は、前記出力工程に対応する入出力処理の出力条件及び実行状態を取得して保持することを特徴とする。
【００２０】
請求項１０記載の発明は、請求項６から９のいずれか１項記載の入出力管理方法において、前記入出力管理装置が許容する最大のデータ数である限界数と、該限界数及び受付中のデータ数に応じて決定される受付状態と、を持ち、入出力処理依頼を受けた場合に前記受付状態に基づいて当該入出力処理依頼の受け付け可否を決定することを特徴とする。
【００２１】
請求項１１記載の発明は、入力処理、移動処理、及び出力処理をフォルダ管理する入出力管理手段を有し、入出力処理依頼を受けた場合に、該入出力処理依頼に応答する入出力の実行を指示するとともに、前記各入出力処理依頼を管理する入出力管理装置の入出力管理プログラムであって、前記入出力処理依頼に応じた入力を実行する前記入力処理と、前記入力処理によって入力されたデータを前記出力処理へ転送する移動処理と、前記移動処理によって転送されてきた前記データの前記入出力依頼に応じた出力を実行する前記出力処理とを有し、前記入力処理では入力デバイス毎に入力用オブジェクトを生成し、前記出力処理では出力デバイス毎に出力用オブジェクトを生成し、前記移動処理では、生成された前記入力用及び出力用オブジェクトの中から前記入出力依頼に応じた適切なオブジェクトを選択することを特徴とする。
【００２２】
請求項１２記載の発明は、請求項１１記載の入出力管理プログラムにおいて、前記入力処理、前記移動処理、及び前記出力処理は、前記入出力管理手段を木構造の親として該入出力管理手段によって管理されることを特徴とする。
【００２３】
請求項１３記載の発明は、請求項１１又は１２記載の入出力管理プログラムにおいて、前記入力処理は、前記入力処理に対応する入出力処理の入力条件及び実行状態を取得して保持することを特徴とする。
【００２４】
請求項１４記載の発明は、請求項１１から１３のいずれか１項記載の入出力管理プログラムにおいて、前記出力処理は、前記出力処理に対応する入出力処理の出力条件及び実行状態を取得して保持することを特徴とする。
【００２５】
請求項１５記載の発明は、請求項１１から１４のいずれか１項記載の入出力管理プログラムにおいて、前記入出力管理装置が許容する最大のデータ数である限界数と、該限界数及び受付中のデータ数に応じて決定される受付状態と、を持ち、入出力処理依頼を受けた場合に前記受付状態に基づいて当該入出力処理依頼の受け付け可否を決定することを特徴とする。
【発明の効果】
【００２６】
本発明は、複合機が有するデータを入力する機能の共通する機能を一般化して管理する入力クラスと、該入力クラスによって入力されたデータを出力先に転送するデータクラスと、データクラスから受信したデータの出力先が共通して保持する機能を一般化して管理する出力クラスとを設けることにより、入力クラス又は出力クラスのサブクラスに新たな機能が追加された場合であっても、入力クラス、データクラス、及び出力クラスにおいて実行される処理を変更することなく、又は一部を変更するだけで済むため、新たな機能の追加が容易であり、かつユーザは複合機が有する全てのアプリケーションを把握していなくても、該アプリケーションを有効に利用することができる。
【発明を実施するための最良の形態】
【００２７】
以下に本発明の一実施形態に係わる複合機の入出力管理方法について説明する。
【００２８】
まず、本実施の形態に係る画像形成装置（以下「複合機」と言う）１の概念について図１、図２、及び図３を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための説明図である。
【００２９】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたパーソナルコンピュータ（ＰＣ）などの機器は、ＬＡＮ（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）という団体がまとめたシステムモデリング言語であり、システムモデリングの成果を記述する記法を定義したものである。そして、このＵＭＬは、オブジェクト指向によるソフトウェア開発において、一般的に用いられている。
【００５１】
図５に示すように、統合アプリケーション１１０は複数のパッケージを含み、この統合アプリケーション１１０自体もパッケージととらえることができる。ここで、パッケージとはＵＭＬモデルの各構成要素（シンボル）をグループ化したものであり、このパッケージは、左上にタブのついたフォルダ型のシンボルで表現する。なお、かかるパッケージは、上述したオブジェクトモデルあるいはオブジェクトモデルの集合体ととらえることもできる。
【００５２】
図５に示したように、統合アプリケーション１１０は、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３の３つのパッケージを内部に有するパッケージである。さらに、実行系サブシステム１１３は、入出力管理部１１３ａおよび実行制御部１１３ｂの２つのパッケージを内部に有するパッケージである。そして、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３を相互に結ぶ直線は、各パッケージ間にメッセージ送受信などの関連があることを示している。なお、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すＵＭＬのシンボルである。
【００５３】
次に、入出力管理部１１３ａのクラス構成について説明する。図６に示すように、入出力管理部１１３ａは、入出力管理クラス３１０、入力クラス３２０、データクラス３３０、及び出力クラス３４０を有する。
【００５４】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画、およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、入出力管理クラス３１０を示す矩形の名前区画は、かかるクラスのクラス名が「入出力管理」であることを示し、属性区画は、かかるクラスが有する属性が、「受付状態」と「限界数」であることを示し、操作区画は、かかるクラスが有する操作が、「入出力先を決定する（）」であることを示している。
【００５５】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００５６】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「入出力先を決定する（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００５７】
次に、図６に示した各クラスについて説明する。入出力管理クラス３１０は、データの入出力先を決定するクラスである。具体的には、この入出力管理クラス３１０は、属性として、データの入出力の受付状態３１０ａおよび限界数３１０ｂを有し、操作として、入出力先を決定する（）３１０ｃを有する。なお、かかる入出力管理クラス３１０を実体化したオブジェクトが生成されると、受付状態３１０ａおよび限界数３１０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００５８】
受付状態３１０ａは、入出力管理クラスが管理できるデータの数と、限界数３１０ｂとから決定される受付可否の状態であり、たとえば、限界数３１０ｂが２００である場合において、すでに受付中のデータが２００であれば、かかる受付状態３１０ａは、受付拒否の状態を保持する。また、限界数３１０ｂは、複合機１が許容する最大のデータ数であり、統合アプリケーション１１０が搭載されるハードウェア仕様により変動する。また、入出力先を決定する（）３１０ｃは、ユーザの操作により、操作系サブシステム１１１からリクエストを受け付け入力クラス３２０に入力の実行を依頼する処理をおこなう。
【００５９】
入力クラス３２０は、入力対象となっているデータの入力処理をおこなうクラスである。具体的には、この入力クラス３２０は、属性として、入力条件３２０ａ、実行状態３２０ｂを有し、操作として、受け取り開始（）３２０ｃ、受け取りキャンセル（）３２０ｄ、受け取り中断３２０（）ｅ、及び受け取り再開（）３２０ｆを有する。なお、かかる入力クラス３２０を実体化したオブジェクトが生成されると、入力条件３２０ａ、及び実行状態３２０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００６０】
入力条件３２０ａは、入力対象のデータの読み込み条件、たとえば、読み込み可能なサイズ、読み込みカラーなどの条件である。例えば、入力対象となっているデータが入力条件３２０ａによって読み込むことができない場合は、入力が中止される。
【００６１】
実行状態３２０ｃは、データを入力する作業の実行状態を保持する。具体的には、この実行状態３２０ｃは、データを入力する作業が実行中か、あるいは、発生した障害により実行が中断されているかなどの実行状態を保持する。例えば、データの入力作業が既に行われている場合は、新たなデータの入力作業は行なわれない。しかし、データの入力が行われていた場合であっても、受け取りキャンセル３２０ｄ又は受け取り中断３２０ｅの処理が要求された場合は、対応する操作が実行される。また、データの入力が行なわれていない場合に、受け取り再開（）３２０ｆの処理が要求された場合は、対応する操作が実行される。なお、受け取り開始（）３２０ｃは、データの入力開始を受け付ける処理をおこなう。受け取りキャンセル（）３２０ｄは、データの入力を中止する処理をおこなう。受け取り中断（）３２０ｅは、データの入力を中断する処理をおこなう。受け取り再開（）３２０ｆは、データの入力を再開する処理をおこなう。
【００６２】
上述の入力クラス３２０の構成によれば、入力クラス３２０がサブクラスに属する複数の入力元の属性及び操作を統合して管理するため、サブクラスの各入力元を意識した入力処理を個別に実行しなくても、入力クラス３４０へのデータの転送を繰り返すことにより複数の入力元からの入力が可能となる。
【００６３】
データクラス３３０は、データの詳細情報を保持するクラスであり、データクラス３３０が保持するデータの詳細情報から、データを移動するうえで必要となる情報を抽出して保持するクラスである。具体的には、このデータクラス３３０は、属性として、サイズ３３０ａを有し、操作として、移動する（）３３０ｂを有する。なお、かかるデータクラス３３０を実体化したオブジェクトが生成されると、サイズ３３０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００６４】
サイズ３３０ａは、入出力される原稿の形態を保持する。たとえば、この原稿の形態としては、ユーザがかかる複合機１にセットした紙原稿、かかる複合機１に内蔵された記憶装置に保持される蓄積原稿、ファックス受信原稿、紙に印刷される文書、電子メールによりＷＡＮ（Wide Area Network）などをとおして送信される文書、ファックス送信される文書などがある。
【００６５】
移動する（）３３０ｂは、入力クラス３２０から出力クラス３４０への移動依頼を受け付け、データクラス３３０が保持するサイズを参照し、出力クラスへデータの出力処理を依頼する。
【００６６】
出力クラス３４０は、出力対象となっているデータの出力処理をおこなうクラスである。具体的には、この出力クラス３４０は、属性として、出力条件３４０ａ、実行状態３４０ｂを有し、操作として、引き渡し開始（）３４０ｃ、引き渡しキャンセル（）３４０ｄ、引き渡し中断３４０（）ｅ、及び引き渡し再開（）３４０ｆを有する。なお、かかる出力クラス３４０を実体化したオブジェクトが生成されると、出力条件３４０ａ、及び実行状態３４０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００６７】
出力条件３４０ａは、出力対象のデータの引き渡し条件、たとえば、転送可能なサイズ、カラーなどの条件である。例えば、出力対象となっているデータが出力条件３４０ａによって転送ができない場合は、出力が中止される。
【００６８】
実行状態３２０ｃは、データを出力する作業の実行状態を保持する。具体的には、この実行状態３２０ｃは、データを出力する作業が実行中か、あるいは、発生した障害により実行が中断されているかなどの実行状態を保持する。例えば、データの出力作業が既に行われている場合は、新たなデータの出力作業は行なわれない。しかし、データの出力が行われていた場合であっても、引き渡しキャンセル３４０ｄ又は引き渡し中断３４０ｅの処理が要求された場合は、対応する操作が実行される。また、データの出力が行なわれていない場合に、引き渡し再開（）３４０ｆの処理が要求された場合は、対応する操作が実行される。なお、引き渡し開始（）３４０ｃは、データの出力開始を受け付ける処理をおこなう。引き渡しキャンセル（）３４０ｄは、データの出力を中止する処理をおこなう。引き渡し中断（）３４０ｅは、データの出力を中断する処理をおこなう。引き渡し再開（）３４０ｆは、データの出力を再開する処理をおこなう。
【００６９】
上述の出力クラス３４０の構成によれば、出力クラス３４０がサブクラスに属する複数の出力先の属性及び操作を統合して管理するため、サブクラスの各出力先を意識した出力処理を個別に実行しなくても、出力クラス３４０へのデータの転送を繰り返すことにより複数の出力先への出力可能となる。例えば、複数のアプリケーションによってデータを出力したい場合に、出力クラス３４０に複数回出力作業を実行することにより、複数の出力先にデータを出力することが可能である。
【００７０】
次に、図６に示した各クラス間の関係について説明する。同図に示したように、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
【００７１】
たとえば、入力ラス３２０からみた入出力管理クラス３１０の役割は「管理者」であり、入出力管理クラス３１０からみた入力クラス３２０の役割は「入力装置」であり、入出力管理クラス３１０の多重度は「１」であり、入力クラス３２０の多重度は「１．．＊」である。ここで、「１．．＊」は、かかる入力クラス３２０の多重度が、１から上限数なしの範囲であることを示している。また、たとえば、「１．．３」の記載をした場合には、かかるクラスの多重度が、１〜３の範囲であることを示す。
【００７２】
まず、入出力管理クラス３１０と入力クラス３２０とのクラス関係について説明する。入出力管理クラス３１０は、入力クラス３２０からみると管理者としての役割を有しており、一方、入力クラス３２０は、入出力管理クラス３１０からみると入力装置としての役割を有している。
【００７３】
そして、同図に示したように、入出力管理部１１３ａが実行される場面において、入出力管理クラス３１０をＲＡＭ１２ｂ上に展開（実体化）したオブジェクトは１個だけ存在し、この入出力管理クラス３１０の管理対象となる入力クラス３２０を実体化したオブジェクトは０個以上、上限数なしの範囲で存在する。
【００７４】
次に、入力クラス３２０とデータクラス３３０との関係について説明する。入力クラス３２０は、データクラス３３０からみると入力元としての役割を有しており、一方、データクラス３３０は、入力クラス３２０からみると、その情報としての役割を有している。
【００７５】
すなわち、データクラス３３０は、入力クラス３２０によって生成されたデータであり、このデータを生成するのが入力クラス３２０であることを示している。
【００７６】
次に、データクラス３３０と出力クラス３４０との関係について説明する。データクラス３３０は、出力クラス３４０からみると出力対象としての役割を有しており、一方、出力クラス３４０は、データクラス３３０からみると、出力先としての役割を有している。
【００７７】
次に、入出力管理部１１３ａに新規機能を追加する処理について説明する。図７は、統合アプリケーション１１０に、新規機能を追加する場合の概念を説明するための説明図である。
【００７８】
同図に示すように、統合アプリケーション１１０は、楕円形で示したオブジェクトモデルの集合体として構成されており、各オブジェクトモデルは、統合アプリケーション１１０を構成する役割に相当する。この統合アプリケーション１１０に、新規機能を追加する場合においては、まず、追加する機能を、統合アプリケーション１１０を構成する各オブジェクトモデルに適合するよう分離する。そして、かかる分離部分を各オブジェクトモデルに反映させる。
【００７９】
同図に示したサブクラス化によるクラス追加は、かかる反映方法の１つである。ここで、サブクラス化とは、上位クラスの属性および操作を継承して下位クラスを設計する手法であり、オブジェクト指向によるソフトウェア開発の利点の１つである。
【００８０】
次に、入出力管理部１１３ａに入出力処理が要求された場合における、各クラスの処理および各クラスから生成されたオブジェクト間のメッセージの流れについて説明する。
【００８１】
図８は、各クラスを実体化したオブジェクトと、かかるオブジェクト間のメッセージの流れを時系列に表したＵＭＬのシーケンス図である。同図の上部に並べられた矩形は、各オブジェクトを示し、各オブジェクトから下方に伸びた破線は、各オブジェクトが生存していることを示す線（ライフライン）であり、同図の下方に向かって時間は流れるものとする。そして、かかる破線上の垂直方向に伸びる矩形は、各オブジェクトが実際に活動している期間（活性区間）を示す。なお、本実施形態においては、ＡＤＦスキャナ及びメモリから入力した文書をプロッタ、ネットワーク、及び回線に出力する例について説明する。
【００８２】
図８に示すように、ユーザが複合機１を操作して、データの入出力に係わるリクエストが投入されると、操作系サブシステム１１１は、入出力管理オブジェクト３１１の入出力方法を決定する（）３１０ｃを呼び出す（ステップＳ１１０１）。
【００８３】
そして、入出力方法を決定する（）３１０ｃが呼び出されると、入出力管理オブジェクト３１１は、自身の属性区画に含まれるデータ（属性）である受付状態３１０ａの値を参照して、入出力処理可否の判断をおこなう（ステップＳ１１０２）。そして、この受付状態３１０ａの値が受付可能である場合には、以後の処理に進み、かかる値が受付不可能である場合には、その旨を操作系サブシステム１１１に通知して処理を終了する。
【００８４】
そして、この入出力管理オブジェクト３１１は、自身の属性区画に含まれるデータ（属性）である受付状態３１０ａの値が受付可能である場合、データの入力元であるＡＤＦスキャナオブジェクト及びメモリオブジェクト、データの出力先であるプロッタオブジェクト、ネットワークオブジェクト、及び回線オブジェクトを新規作成する（ステップＳ１１０３〜Ｓ１１０７）。
【００８５】
データの入力元及び出力先に係わるオブジェクトを新規作成すると（ステップＳ１１０３〜Ｓ１１０７）、入出力管理オブジェクト３１１は、入出力対象のデータを取得し、データオブジェクト３３１の移動する（）３３０ｂを呼び出す（ステップＳ１１０８）。そして、移動する（）３３０ｂが呼び出されると、データオブジェクト３３１は、データの入力元であるＡＤＦスキャナオブジェクト及びメモリオブジェクトの受け取り開始（）を呼び出す（ステップＳ１１０９、ステップＳ１１１０）。
【００８６】
入力元に係わるオブジェクトの受け取り開始（）が呼び出されると、各オブジェクトは、自身の属性区画に含まれるデータ（属性）である入力条件及び実行状態の値を参照して、入力処理可否の判断をおこなう。そして、この入力条件及び実行状態の値が入力可能である場合には、以後の処理に進み、かかる値が入力不可能である場合には、その旨を操作系サブシステム１１１に通知して処理を終了する。
【００８７】
また、移動する（）３３０ｂが呼び出されると、データオブジェクト３３１は、出力先であるプロッタオブジェクト、ネットワークオブジェクト、及び回線オブジェクトの引き渡し開始（）３４０ｃを呼び出す（ステップＳ１１１１〜Ｓ１１１３）。出力先に係わる各オブジェクトの引き渡し開始（）を呼び出されると（ステップＳ１１１１〜Ｓ１１１３）、出力先に係わる各オブジェクトは、自身の属性区画に含まれるデータ（属性）である出力条件及び実行状態を参照して、出力処理可否の判断をおこなう。そして、この出力条件及び実行状態の値が出力可能である場合には、各サブクラスにおける出力処理に進み、かかる値が出力不可能である場合には、その旨を操作系サブシステム１１１に通知して処理を終了する。
【００８８】
上述してきたように、本実施の形態では、オブジェクト指向設計により、オブジェクトモデルの集合体として統合アプリケーション１１０を構成し、かかるオブジェクトモデルのうち、入出力処理の管理をおこなうものを入出力管理部１１３ａとし、この入出力管理部１１３ａは、いわゆる「フォルダ−ファイル」モデルのアナロジーとして、入出力管理クラス３１０、入力クラス３２０、データクラス３３０、及び出力クラスを有する構成としたので、ユーザからの操作を一括して受け付けることができ、かかる操作の投入からデータの出力までの管理を効率良くおこなうことができるとともに、新規機能の追加などにともなう労力を軽減することができる。
【図面の簡単な説明】
【００８９】
【図１】複合機をとりまくネットワーク環境を示すネットワーク図である。
【図２】複合機のハードウェアを説明するための説明図である。
【図３】複合機におけるハードウェア及びソフトウェアの階層構造を説明するための説明図である。
【図４】統合アプリケーションの構成を説明するための説明図である。
【図５】統合アプリケーションの構成を表したＵＭＬクラス図である。
【図６】統合アプリケーションの構成を表したオブジェクト図である。
【図７】統合アプリケーションに新規機能を追加する場合の概念を説明するための説明図である。
【図８】入出力処理が要求時における入出力管理クラスの操作を説明したシーケンス図である。
【符号の説明】
【００９０】
１    画像形成装置
１０    コントローラ
１１    ＣＰＵ
１２    ＭＥＭ−Ｐ
１２ａ    ＲＯＭ
１２ｂ    ＲＡＭ
１３    ＮＢ
１４    ＳＢ
１５    ＡＧＰ
１６    ＡＳＩＣ
１７    ＭＥＭ−Ｃ
１８    ＨＤＤ
２０    キーボード
３０    ＦＣＵ
４０    ＵＳＢ
５０    ＩＥＥＥ１３９４
６０    Ｅｎｇｉｎｅ
【図１】
0004538381.tif 000002
【図２】
0004538381.tif 000003
【図３】
0004538381.tif 000004
【図４】
0004538381.tif 000005
【図５】
0004538381.tif 000006
【図６】
0004538381.tif 000007
【図７】
0004538381.tif 000008
【図８】
0004538381.tif 000009