(57)【要約】【課題】ストリーム制御処理を効率よく実現することができる画像形成装置及びストリーム制御プログラムの提供を目的とする。【解決手段】複数の入力手段の中から選択された入力手段より入力されたデータに対して要求された処理を施し、複数の出力手段の中から選択された出力手段に出力する画像形成装置であって、前記入力手段から前記出力手段までの間に前記データが経由する各デバイス間の区間の状態を管理する区間管理手段と、前記入力手段から前記出力手段までの各区間に係る前記区間管理手段に基づいて前記入力手段から前記出力手段までの経路の状態を管理する経路管理手段と、前記入力手段と前記出力手段とが共通する前記経路の集合を、当該経路に係る前記経路管理手段に基づいて管理する経路集管理手段とを有することにより上記課題を解決する。【選択図】図８
2007110410.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力手段の中から選択された入力手段より入力されたデータに対して要求された処理を施し、複数の出力手段の中から選択された出力手段に出力する画像形成装置であって、
前記入力手段から前記出力手段までの間に前記データが経由する各デバイス間の区間の状態を管理する区間管理手段と、
前記入力手段から前記出力手段までの各区間に係る前記区間管理手段に基づいて前記入力手段から前記出力手段までの経路の状態を管理する経路管理手段と、
前記入力手段と前記出力手段とが共通する前記経路の集合を、当該経路に係る前記経路管理手段に基づいて管理する経路集管理手段とを有することを特徴とする画像形成装置。
【請求項２】
前記経路集管理手段は、前記要求された処理を実現するための経路を選択し、当該経路に係る前記経路管理手段に当該経路の確保を要求することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記経路管理手段は、当該経路の確保の要求に応じ、当該経路に含まれる各区間に係るそれぞれの前記区間管理手段に対し、当該区間に係るデバイスの確保を要求することを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記区間管理手段は、当該区間に係るデバイスの確保の要求に応じ、当該デバイスの状態に応じて当該デバイスを確保することを特徴とする請求項３記載の画像形成装置。
【請求項５】
前記区間管理手段は、当該区間に係るデバイスが利用できない場合は、その旨を前記経路管理手段を介して前記経路集管理手段に通知し、
前記経路集管理手段は、前記要求された処理の代替処理を実現するための経路を選択し、当該経路に係る前記経路管理手段に当該経路の確保を要求することを特徴とする請求項４記載の画像形成装置。
【請求項６】
全ての前記経路集管理手段を管理し、前記入力手段の選択と前記出力手段の選択とに基づいて、選択された前記入力手段及び選択された前記出力手段に係る前記経路集管理手段に、前記要求された処理を実現するための経路の選択を要求する経路図管理手段を有することを特徴とする請求項２乃至５いずれか一項記載の画像形成装置。
【請求項７】
複数の入力手段の中から選択された入力手段より入力されたデータに対して要求された処理を施し、複数の出力手段の中から選択された出力手段に出力する画像形成装置を、
前記入力手段から前記出力手段までの間に前記データが経由する各デバイス間の区間の状態を管理する区間管理手段と、
前記入力手段から前記出力手段までの各区間に係る前記区間管理手段に基づいて前記入力手段から前記出力手段までの経路の状態を管理する経路管理手段と、
前記入力手段と前記出力手段とが共通する前記経路の集合を、当該経路に係る前記経路管理手段に基づいて管理する経路集管理手段として機能させるためのストリーム制御プログラム。
【請求項８】
前記経路集管理手段は、前記要求された処理を実現するための経路を選択し、当該経路に係る前記経路管理手段に当該経路の確保を要求することを特徴とする請求項７記載のストリーム制御プログラム。
【請求項９】
前記経路管理手段は、当該経路の確保の要求に応じ、当該経路に含まれる各区間に係るそれぞれの前記区間管理手段に対し、当該区間に係るデバイスの確保を要求することを特徴とする請求項８記載のストリーム制御プログラム。
【請求項１０】
前記区間管理手段は、当該区間に係るデバイスの確保の要求に応じ、当該デバイスの状態に応じて当該デバイスを確保することを特徴とする請求項９記載のストリーム制御プログラム。
【請求項１１】
前記区間管理手段は、当該区間に係るデバイスが利用できない場合は、その旨を前記経路管理手段を介して前記経路集管理手段に通知し、
前記経路集管理手段は、前記要求された処理の代替処理を実現するための経路を選択し、当該経路に係る前記経路管理手段に当該経路の確保を要求することを特徴とする請求項１０記載のストリーム制御プログラム。
【請求項１２】
全ての前記経路集管理手段を管理し、前記入力手段の選択と前記出力手段の選択とに基づいて、選択された前記入力手段及び選択された前記出力手段に係る前記経路集管理手段に、前記要求された処理を実現するための経路の選択を要求する経路図管理手段を有することを特徴とする請求項８乃至１１いずれか一項記載のストリーム制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及びストリーム制御プログラム関し、特に複数の入力手段の中から選択された入力手段より入力されたデータに対して要求された処理を施し、複数の出力手段の中から選択された出力手段に出力する画像形成装置及びストリーム制御プログラムに関する。
【背景技術】
【０００２】
従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（登録商標）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。
【０００３】
ところが、上記プリンタアプリ、コピーアプリおよびスキャナアプリは、それぞれエンジン制御、メモリ制御およびシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。
【０００４】
このため、特許文献１では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御およびシステム制御などの処理を共通処理部分（プラットホーム）として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。
【０００５】
また、特許文献２では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理をおこなうこととしている。
【特許文献１】特開２００２−０８４３８３号公報
【特許文献２】特開平１１−３２７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この特許文献１で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではない。このため、複合機上のアプリケーションには、開発効率の向上を図るうえで改善の余地が残されている。
【０００７】
たとえば、スキャナデバイスなどの入力デバイスをとおして入力される画像データを、プリンタデバイスなどの出力デバイスに出力する場合において、利用者の指示に応じて入力デバイスおよび出力デバイスの選択をおこない、選択したデバイス間のデータの流れを制御するストリーム制御処理は、複写機上の各アプリケーションに共通して存在する処理であるが、ハードウェアを直接制御する処理ではないため各アプリケーションで別個に実現されており、共通化することが可能である。
【０００８】
また、特許文献２で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、入力デバイスおよび出力デバイス間のデータの流れを制御するソフトウェア部品を開示したものではない。したがって、多機能化により多くの入出力デバイスを搭載する複合機において、特許文献２で開示されている発明を応用して、各入出力デバイスに対応するソフトウェア部品を作成したとしても、各入出力デバイスの処理速度の差異や、処理対象となるデータ単位やデータ形式の差異のため、各デバイス間のデータの流れを効率よく制御することは容易でない。
【０００９】
これらのことから、複合機に搭載されるアプリケーションのストリーム制御処理をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、複数の入出力デバイスを有し、各入力デバイスから各出力デバイスへのデータの流れを制御するストリーム制御装置を形成するような場合にも同様に生ずる課題である。
【００１０】
本発明は、上記の点に鑑みてなされたものであって、ストリーム制御処理を効率よく実現することができる画像形成装置及びストリーム制御プログラムの提供を目的とする。
【課題を解決するための手段】
【００１１】
そこで上記課題を解決するため、本発明は、複数の入力手段の中から選択された入力手段より入力されたデータに対して要求された処理を施し、複数の出力手段の中から選択された出力手段に出力する画像形成装置であって、前記入力手段から前記出力手段までの間に前記データが経由する各デバイス間の区間の状態を管理する区間管理手段と、前記入力手段から前記出力手段までの各区間に係る前記区間管理手段に基づいて前記入力手段から前記出力手段までの経路の状態を管理する経路管理手段と、前記入力手段と前記出力手段とが共通する前記経路の集合を、当該経路に係る前記経路管理手段に基づいて管理する経路集管理手段とを有することを特徴とする。
【００１２】
このような画像形成装置では、ストリーム制御処理を効率よく実現することができる。
【発明の効果】
【００１３】
本発明によれば、ストリーム制御処理を効率よく実現することができる画像形成装置及びストリーム制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかるストリーム制御プログラム、およびこのプログラムを実行させるためのコンピュータを含んだ画像形成装置の最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、ストリーム制御処理をおこなう各種装置に適用することができる。
【００１５】
まず、本実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３、図１１および図１２を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための説明図であり、図１１は、複合機１に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図１２は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【００１６】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたパーソナルコンピュータ（ＰＣ）などの機器は、ＬＡＮ（Local Area Network）などのネットワークに接続され、相互に通信することが通常となった。たとえば、同図に示したように、かかるネットワークには、クライアントＰＣ、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバ、ＦＴＰ（File Transfer Protocol）サーバ、サーバＰＣなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
【００１７】
このようなネットワーク化の進展に伴い、複合機１もかかるネットワークに接続され、ＰＣ等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。
【００１８】
たとえば、複合機１は、通常のコピー機能に加えて、クライアントＰＣからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントＰＣからのファックス要求により文書データ等をサーバＰＣに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有するようになった。
【００１９】
こうして複合化とネットワーク化の進展により必要となった多くの機能を実現するため、複合機１に搭載されるソフトウェアは、規模が大きく、複雑なものとなっている。そして、それにともなって、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。
【００２０】
図２は、かかる複合機１のハードウェア構成を示すブロック図である。同図に示すように、この複合機１は、コントローラ１０とエンジン部（Engine）６０とをＰＣＩ（Peripheral Component Interconnect）バスで接続した構成となる。コントローラ１０は、複合機１全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００２１】
コントローラ１０は、ＣＰＵ１１と、ノースブリッジ（ＮＢ）１３と、システムメモリ（ＭＥＭ−Ｐ）１２と、サウスブリッジ（ＳＢ）１４と、ローカルメモリ（ＭＥＭ−Ｃ）１７と、ＡＳＩＣ（Application Specific Integrated Circuit）１６と、ハードディスクドライブ（ＨＤＤ）１８とを有し、ノースブリッジ（ＮＢ）１３とＡＳＩＣ１６との間をＡＧＰ（Accelerated Graphics Port）バス１５で接続した構成となる。また、ＭＥＭ−Ｐ１２は、ＲＯＭ（Read Only Memory）１２ａと、ＲＡＭ(Random Access Memory)１２ｂとをさらに有する。
【００２２】
ＣＰＵ１１は、複合機１の全体制御をおこなうものであり、ＮＢ１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００２３】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【００２４】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００２５】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【００２６】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated Circuit）であり、ＡＧＰ１５、ＰＣＩバス、ＨＤＤ１８およびＭＥＭ−Ｃ１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Direct Memory Access Controller）と、エンジン部６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ１６には、ＰＣＩバスを介してＦＣＵ（Fax Control Unit）３０、ＵＳＢ（Universal Serial Bus）４０、ＩＥＥＥ１３９４（the Institute of Electrical and Electronics Engineers 1394）インターフェース５０が接続される。
【００２７】
ＭＥＭ−Ｃ１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ（Hard Disk Drive）１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００２８】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００２９】
図３は、かかる複合機１のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分であるストリーム部１１３ａを含む統合アプリケーション１１０と、ソフトウェア１００およびハードウェア２００の階層関係を示している。同図に示すように、ハードウェア２００は、ハードウェアリソース２０１を有し、このハードウェアリソース２０１は、スキャナ２０１ａ、プロッタ２０１ｂ、ＨＤＤ（Hard Disk Drive）２０１ｃ、ネットワーク２０１ｄおよびその他のリソース２０１ｅを有する。なお、その他のリソース２０１ｅは、２０１ａ〜２０１ｄ以外のハードウェアリソース２０１のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
【００３０】
また、かかるハードウェア２００に搭載されるソフトウェア１００は階層化されており、オペレーティングシステム１０３の上層にはサービス層１０２が構築され、このサービス層１０２の上層にはアプリケーション層１０３が構築されている。そして、サービス層１０２は、各ハードウェアリソース（２０１ａ〜２０１ｅ）を制御するドライバーに相当する、スキャナ制御１０２部ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、配信／メール送受信制御部１０２ｄ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇを有する。
【００３１】
ここで、図３に示したソフトウェア１００が、かかる階層構造をとるに至った経緯について、図１１および図１２を用いて説明する。図１１は、複合機１に搭載されるソフトウェア構成の変遷を示す説明図である。図１１のサービス層分離前アプリケーション５０１に示すように、多機能化した複合機１に搭載されるソフトウェアは、コピーアプリケーション、ＦＡＸアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図３に示したオペレーティングシステム１０３上で動作していた。
【００３２】
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー（サービス層１０２）を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
【００３３】
そこで、図１１のサービス層分離後アプリケーション５０２に示すように、サービス層分離前アプリケーション５０１のサービス層１０２相当部分を括りだしサービス層１０２とするとともに、各アプリケーションは、このサービス層１０２の上層であるアプリケーション層１０１に構築する構成とした。かかる階層化構成をとることにより、各アプリケーションはスリム化され開発労力も軽減された。
【００３４】
しかしながら、複合機１のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層１０１の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部１０２ａや蓄積制御部１０２ｃといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
【００３５】
この問題を解決するため、図１１の共通ルーチン分離アプリケーション５０３に示すように、かかる同様な処理（共通処理部分）を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
【００３６】
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
【００３７】
そこで、図１１のオブジェクト指向アプリケーション５０４に示すように、オブジェクト指向による設計手法（オブジェクトモデリング）により、かかる複数のアプリケーションを、統合アプリケーション１１０に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション１１０を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
【００３８】
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
【００３９】
図１２は、図１１に示したサービス層分離後アプリケーション５０２の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層１０２の各ドライバーの関係を示した説明図である。同図に示すように、アプリケーション層１０１は、コピーアプリケーション１２０、スキャナアプリケーション１３０、ファックスアプリケーション１４０およびプリンタアプリケーション１５０を有する。
【００４０】
たとえば、コピーアプリケーション１２０は、コピー機能を実現するために、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃおよびその他の制御部１０２ｇとデータの送受信をおこなう。また、ファックスアプリケーション１４０は、ファックス機能を実現するために、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇとデータの送受信をおこなう。このように、アプリケーション層１０１の各アプリケーションとサービス層１０２の各ドライバー間の通信は、複雑なものとなっていた。
【００４１】
図３の説明に戻ると、上述したオブジェクトモデリングにより、アプリケーション層１０１に存在した複数のアプリケーションは、統合アプリケーション１１０に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション１１０を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層１０１のアプリケーションと、サービス層１０２の各ドライバー間の通信は、図１２と比較して単純になっている。
【００４２】
次に、統合アプリケーション１１０の内部構成について説明する。図４は、統合アプリケーション１１０の内部構成を示すブロック図である。同図に示すように、統合アプリケーション１１０は、操作系サブシステム１１１と、管理系サブシステム１１２と、実行系サブシステム１１３とを有する。
【００４３】
操作系サブシステム１１１は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム１１１は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。
【００４４】
管理系サブシステム１１２は、画像形成装置１の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム１１２は、ハードウェアリソース２０１およびこのハードウェアリソース２０１が保持するデータ状態を管理するサービスをおこなう。
【００４５】
実行系サブシステム１１３は、ユーザからの要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム１１３は、コピー要求がなされた場合には、原稿の読み取りから成果物の出力までの処理をおこなう。
【００４６】
操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション１１０全体として複合機１に必要とされるサービスの提供をおこなう。
【００４７】
そして、実行系サブシステム１１３は、本実施の形態の特徴部分であるストリーム部１１３ａと実行制御部１１３ｂとを有する。このストリーム部１１３ａは、実行制御部１１３ｂからデータの流れの制御に関する要求を受付け、データの入力と出力との間のデータの流れを制御するための処理（ストリーム制御処理）を実行する。
【００４８】
図５は、図４に示した各サブシステムを、ＵＭＬ（Unified Modeling Language）のクラス図（ＵＭＬクラス図）に置き換えた図である。ここで、ＵＭＬとは、ＯＭＧ（Object Management Group）が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００４９】
図５に示すように、統合アプリケーション１１０は複数のパッケージを有し、また、この統合アプリケーション１１０自体もひとつのパッケージとなっている。ここで、パッケージとはＵＭＬモデルの各構成要素（シンボル）をグループ化したものであり、左上にタブのついたフォルダの形をしたシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。
【００５０】
図５に示したように、統合アプリケーション１１０は、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３の３つのパッケージを内部に有するパッケージである。さらに、実行系サブシステム１１３は、本実施の形態の特徴部分であるストリーム部１１３ａと実行制御部１１３ｂとを内部に有するパッケージである。そして、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３を相互に結ぶ直線は、各パッケージ間に処理依頼（たとえば、メッセージ送受信）などの関連があることを示している。なお、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すＵＭＬのシンボルである。
【００５１】
次に、本実施の形態の特徴部分であるストリーム部１１３ａについて詳細に説明する。
【００５２】
図６は、複合機１の操作パネル４００の一例を示した図である。同図に示すように、かかる操作パネル４００は、初期設定キー４０１、コピーキー４０２、コピーサーバーキー４０３、プリンタキー４０４、送信キー４０５、テンキー４０６、クリア／ストップキー４０７、スタートキー４０８、予熱キー４０９、リセットキー４１０および液晶タッチパネル４２０を有する。
【００５３】
たとえば、利用者が、複合機１に紙原稿をセットしてコピーキー４０２を押下してコピー処理を選択し、スタートキー４０８を押下したならば、スキャナ２０１ａデバイスからプロッタ２０１ｂデバイスへのデータの流れが発生する。この場合、データが流れる経路は必ずしも一意であるとは限らない。例えば、スキャナ２０１ａによってスキャンされたデータが、プロッタ２０１ｂから出力される前に、ＨＤＤ１８に保存される場合もある。
【００５４】
また、複合機１は、複数の機能を有するため、利用者の指示に応じてデータが流れる経路は様々なものに変化する。例えば、原稿をスキャンしてその画像データをＦＡＸ送信したり、ＨＤＤ１８に保存されているデータを印刷又はＦＡＸ送信したりする場合もある。
【００５５】
なお、本実施の形態において、利用者から要求された処理に係るデータの入力手段（紙原稿からの入力、ＦＡＸ回線からの入力等、以下「出発地」という。）から出力手段（紙への出力、ＦＡＸ回線への出力等、以下「最終目的地」という。）までの道筋を「経路」という。また、各経路においてデータが経由するそれぞれのデバイスの間を「区間」という。例えば、鉄道にたとえると、始発駅（出発地）が東京駅で終着駅（最終目的地）が大阪駅の場合、東京−大阪間は経路に相当する。そして、東京−大阪間におけるそれぞれの駅の間が「区間」に相当する。
【００５６】
図７は、経路と区間とを説明するための図である。図７に示されるように、経路は一つ以上の区間によって構成される。なお、スキャナ２０１ａによってスキャンされたデータをＨＤＤ１８に保存し、更にプロッタ２０１ｂから出力する処理の場合、スキャナ２０１ａからＨＤＤ１８までとＨＤＤ１８からプロッタ２０１ｂまでとのそれぞれが区間に相当し、この二つの区間の集まりが経路に相当する。
【００５７】
図８は、ストリーム部１１３ａのクラス構成を示すＵＭＬクラス図である。まず、クラスとＵＭＬクラス図におけるクラスの記述方法について説明しておく。クラスとは、オブジェクト指向システムを構成するオブジェクトの設計図に相当する概念であり、オブジェクト内部に有する属性と処理を定義するとともに、継承関係や集約関係といった、他のクラスとの関係を定義するものである。
【００５８】
ＵＭＬクラス図におけるクラスは、３段の区画を有する矩形として記述される。それぞれの区画は、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、区間クラス３１０を示す矩形の名前区画は、かかるクラスのクラス名が「区間」であることを示し、属性区画は、かかるクラスが有する属性が、「区間状態」であることを示し、操作区画は、かかるクラスが有する操作が、「使用（）」であることを示している。
【００５９】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００６０】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「記入する（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００６１】
次に、本実施の形態の特徴部分であるストリーム部１１３ａのクラスの概要について説明する。図８に示されるように、ストリーム部１１３ａは、区間クラス３１０、経路クラス３２０、経路集クラス３３０、経路図クラス３４０及び受付クラス３５０等を含む。
【００６２】
区間クラス３１０は、一つの区間を表現するクラスであり、デバイス間の区間状態を管理する。ここで、区間状態とは、区間の使用可否をあらわす情報である。すなわち、区間の始点および終点に係るデバイスのいずれもが使用可能であれば、当該区間は使用可能であり、始点あるいは終点のいずれか一方のデバイスが使用不可能であれば、当該区間は使用不可能となる。
【００６３】
区間クラス３１０は、属性として区間状態３１０ａ等を有し、操作として、使用（）３１０ｂ等を有する。なお、かかる区間クラス３１０のインスタンスが生成されると、区間状態３１０ａはＲＡＭ１２ｂ上に展開されるので、このデータ（属性）の書き込みおよび読み出しをおこなうことが可能となる。
【００６４】
区間状態３１０ａは、区間が使用可能であるか否かの情報（すなわち、区間状態）を保持する。使用（）３１０ｂは、当該区間に係るデバイス等のリソースを確保し、当該区間が他の経路に重複して利用されるのを回避するため、区間状態３１０ａの値を使用不可能とする。
【００６５】
経路クラス３２０は、一つの経路を表現するクラスであり、当該経路を構成する区間の構築や、区間に障害が発生した場合の処理判断等（例えば、他の区間の選択等）を行う。経路クラス３２０は、属性として目的３２０ａ及び経路状態３２０ｂ等を有し、操作として作成（）３２０ｃ及び異常発生通知（）３２０ｄ等を有する。
【００６６】
目的３２０ａは、当該経路にどのような目的があるのか（データを蓄積する、する必要はない等）といった情報を保持する。
【００６７】
経路状態３２０ｂは、経路の状態、すなわち、当該経路を構成する区間全ての状態を総合した情報を保持する。したがって、経路状態３２０ｂを参照することで、当該経路の使用の可否が判断され得る。
【００６８】
作成（）３２０ｃは、当該経路を構成する区間を構築する。
【００６９】
異常発生通知（）３２０ｄは、当該経路を構成するいずれかの区間に異常が発生した際に、当該区間に係る区間クラス３１０のインスタンス（以下「区間オブジェクト３１０Ａ」といい、他のクラスについても同様の命名規則に基づく名前によって各インスタンスを呼ぶ。）より異常通知を受け付けるためのものである。
【００７０】
経路集クラス３３０は、出発地と最終目的地とが共通する経路オブジェクト３２０Ａを束ねて管理するクラスであり、管理対象の経路オブジェクト３２０Ａの中から利用者の要求を適切に満たすための経路に係る経路オブジェクト３２０Ａの選択等を行う。出発地と最終目的地とが同じであっても、異なる区間をたどる場合等があるので、出発地と最終目的地とが共通する経路が複数存在し得るのである。経路集クラス３３０は、属性として出発地３３０ａ及び最終目的地３３０ｂ等を有し、操作として検討（）３３０ｃ及び異常発生通知（）３３０ｄ等を有する。
【００７１】
出発地３３０ａは、当該経路においてデータが最初に入力される入力手段の種別（紙原稿からの入力、ＦＡＸ回線からの入力（ＦＡＸ受信）等、以下「入力種別」という。）を保持する。
【００７２】
最終目的地３３０ｂは、当該経路においてデータが最終的に出力される出力手段の種別（紙への出力（印刷）、ＦＡＸ回線への出力（ＦＡＸ送信）等、以下「出力種別」という。）を保持する。
【００７３】
検討（）３３０ｃは、引数として与えられた入力種別及び出力種別に基づいて、適切な又は最適な経路の選択を行い、選択された経路に係る経路オブジェクト３２０Ａに適切な又は最適な区間の生成を要求する。
【００７４】
異常発生通知（）３３０ｄは、経路集オブジェクト３３０Ａが、当該経路集オブジェクト３３０Ａに属する経路オブジェクト３２０Ａより、異常通知を受け付けるためのものである。
【００７５】
経路図クラス３４０は、全ての経路集オブジェクト３３０Ａを束ねて管理するクラスであり、そのインスタンス（経路図オブジェクト３４０Ａ）は、ストリーム部１１３ａに一つだけ存在する。経路図クラス３４０は、属性として出発地数３４０ａ及び目的地数３４０ｂ等を有し、操作として検討（）３４０ｃ及び通知（）３４０ｄ等を有する。
【００７６】
出発地数３４０ａは、入力種別の総数（すなわち、複合機１がどれだけの入力手段を有しているかを示す情報）を保持する。
【００７７】
目的地数３４０ｂは、出力種別の総数（すなわち、複合機１がどれだけの出力手段を有しているかを示す情報）を保持する。
【００７８】
検討（）３４０ｃは、入力種別及び出力種別を引数として受け取り、当該入力種別及び出力種別に対応する経路集オブジェクト３３０Ａの検索を行う。
【００７９】
通知（）３４０ｄは、経路集オブジェクト３３０Ａより異常通知等を受け付けるためのものである。
【００８０】
受付クラス３５０は、実行制御部１１３ｂからのストリーム部１１３ａに対する要求を受け付けるための窓口としてのクラスであり、そのインスタンス（受付オブジェクト３５０Ａ）は、ストリーム部１１３ａに一つだけ存在する。受付クラス３５０は、操作として流す（）３５０ａ及び通知３５０ｂ（）等を有する。
【００８１】
流す（）３５０ａは、実行制御部１１３ｂより、入力種別と出力種別とを含む経路の探索要求受付、その要求を経路図オブジェクト３４０Ａに伝達する。
【００８２】
通知（）３４０ｅは、経路図オブジェクト３４０Ａより異常通知等を受け付け、その異常通知等を実行制御部１１３ｂに通知する。
【００８３】
次に、図８に示した各クラス間の関係について説明する。同図に示されるように、ＵＭＬクラス図においては、クラス間に何らかの関係がある場合には、それらのクラスを表す矩形の間が直線で結ばれる。この直線の両端付近の文字はクラスのロールを表し、数字はクラスの多重度を表す。ここで、ロールとは、直線で結ばれた他方のクラスに対する当該クラスの役割のことであり、多重度とは、直線で結ばれた他方のクラスのオブジェクトと関連付けられて生成されるオブジェクトの数のことである。
【００８４】
例えば、ある関連において一方の多重度の表記が「１」で、他方の多重度の表記が「１．．ｎ」である場合、当該関連にかかる両端のクラスのインスタンスは、１対多（１〜ｎ）の関係にあることを意味する。
【００８５】
まず、受付クラス３５０と経路図クラス３４０との関連について説明する。受付クラス３５０は、実行制御部１１３ｂからの要求を受け付ける役割を有する。一方、経路図クラス３４０は、経路の集合（経路集）の集合（経路図）を管理するという役割を有する。かかるところから、当該関連において受付クラス３５０のロール名は「受付」であり、経路図クラス３４０のロール名は「経路図」である。
【００８６】
また、受付クラス３５０及び経路図クラス３４０のそれぞれのインスタンスは、ストリーム部１１３ａに一つであるため、両者は１対１の関係にある。
【００８７】
次に、経路図クラス３４０と経路集クラス３３０との関連について説明する。経路図クラス３４０は、経路集オブジェクト３３０Ａを管理する役割を有する。一方、経路集クラス３３０は、経路集を管理するという役割を有する。かかるところから、当該関連において経路図クラス３４０のロール名は「管理元」であり、経路集クラス３３０のロール名は「経路集」である。
【００８８】
また、一つの経路図オブジェクト３４０Ａによって一つ以上の経路集オブジェクト３３０Ａが管理されるため、両者は１対多の関係にある。
【００８９】
ところで、経路図クラス３４０側に記された白抜きのひし形は、集約関係をあらわしている。集約関係とは、あるクラスが別のクラスの一部として含まれる関係のことである。具体的には、経路集オブジェクト３３０Ａは、経路図オブジェクト３４０Ａの一部であることを意味する。したがって、経路集オブジェクト３３０Ａが存在するためには、少なくとも経路図オブジェクト３４０Ａが存在していることが条件となる。
【００９０】
次に、経路集クラス３３０と経路クラス３２０との関連について説明する。経路集クラス３３０は、経路オブジェクト３２０Ａを管理する役割を有する。一方、経路クラス３２０は、データのストリームとして選択される経路の候補を管理するという役割を有する。かかるところから、当該関連において経路集クラス３３０のロール名は「管理元」であり、経路クラス３２０のロール名は「経路候補」である。
【００９１】
また、一つの経路集オブジェクト３３０Ａによって一つ以上の経路オブジェクト３２０Ａが管理されるため、両者は１対多の関係にあり、一つの経路集オブジェクト３３０Ａが一つ以上の経路オブジェクト３２０Ａを集約する。
【００９２】
次に、経路クラス３２０と区間クラス３１０との関連について説明する。経路クラス３２０は、区間によって構成される経路としての役割を有する。一方、区間クラス３１０は、経路を構成する区間としての役割を有する。かかるところから、当該関連において経路クラス３２０のロール名は「経路」であり、区間クラス３１０のロール名は「区間」である。
【００９３】
また、一つの経路オブジェクト３２０Ａによって一つ以上の区間オブジェクト３１０Ａが管理されるため、両者は１対多の関係にあり、一つの経路オブジェクト３２０Ａが一つ以上の区間オブジェクト３１０Ａを集約する。
【００９４】
このように、区間クラス３１０、経路クラス３２０、経路集クラス３３０、経路図クラス３４０及び受付クラス３５０等の各インスタンスが相互に関連し合い、協調して、ストリーム部１１３ａに必要な機能を実現している。
【００９５】
次に、図８に示した各クラスの操作の実行手順について例をあげて説明する。図９は、ストリーム部１１３ａがデータを流す経路の探索要求を受け付けた際の操作の実行手順を説明するためのＵＭＬシーケンス図である。
【００９６】
ここで、ＵＭＬシーケンス図について説明しておく。図９の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。
【００９７】
各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。また、矢印が自分自身のオブジェクトを指している場合は、オブジェクトが自分に含まれる操作を自身で呼び出すことを意味する。
【００９８】
利用者が操作パネル４００を操作してコピー機能等の実行を指示すると、操作系サブシステム１１１は、動作設定情報を含むメッセージを実行制御部１１３ｂに対して送る。動作設定情報とは、利用者によって操作パネル４００上で設定された各種の設定情報をいう。実行制御部１１３ｂは、必要な処理を行なった後、受付オブジェクト３５０Ａの流す（）３５０ａを呼び出すことにより、ストリーム部１１３ａに対して実行指示に係る機能において処理対象とされるデータを流すための経路の探索及び確保を要求する（Ｓ１０１）。なお、流す（）３５０ａの引数には、入力種別及び出力種別が指定される。
【００９９】
流す（）３５０ａを呼び出された受付オブジェクト３５０Ａは、経路図オブジェクト３４０Ａの検討（）３４０ｃを呼び出す（Ｓ１０２）。検討（）３４０ｃの引数には、流す（）３５０ａの引数に指定された入力種別及び出力種別がそのまま指定される。
【０１００】
経路図オブジェクト３４０Ａは入力種別及び出力種別に基づいて、出力手段の検討を依頼する経路集オブジェクト３３０Ａの絞込みを行なう。すなわち、自らが管理している経路集オブジェクト３３０Ａの中から、出発地３３０ａ及び最終目的地３３０ｂの値が入力種別及び出力種別と一致するものを検索し、検索された経路集オブジェクト３３０Ａの検討（）３３０ｃを呼び出す（Ｓ１０３）ことにより実行指示された機能を実現するための経路の選択を要求する。なお、検討（）３３０ｃの引数には、入力種別及び出力種別が指定される。
【０１０１】
経路集オブジェクト３３０Ａは、与えられた入力種別及び出力種別等の情報に基づいて、利用者による実行指示を適切又は最適に満たすことのできる経路を判断し、当該経路に係る経路オブジェクト３２０Ａの作成（）３２０ｃを呼び出すことにより、経路の確保を要求する（Ｓ１０４）。なお、適切又は最適な経路の判断に際し、経路集オブジェクト３３０Ａは、自らが管理している各経路オブジェクト３２０Ａの目的３２０ａ及び経路状態３２０ｂ等をも参酌する。
【０１０２】
経路オブジェクト３２０Ａは、当該経路を構成する各区間に係る区間オブジェクト３１０Ａを生成し（Ｓ１０５）、生成した各区間オブジェクト３１０Ａの使用（）３１０ｂを呼び出す。使用（）３１０ｂを呼び出された各区間オブジェクト３１０Ａは、当該区間に係るデバイス等のリソースを確保し、当該区間が他の経路に重複して利用されるのを回避するため、区間状態３１０ａの値を使用不可能とする。以上の処理により利用者による実行指示を果たすための下地ができ、当該実行指示の対象とされたデータを流すことが可能となる。
【０１０３】
なお、ステップＳ１０６において、いずれかの区間オブジェクト３１０Ａが使用不可能であった場合、その旨が経路オブジェクト３２０Ａを介して経路集オブジェクト３３０Ａに通知される。経路集オブジェクト３３０Ａは、その通知に応じて改めて経路オブジェクト３２０Ａを選択し、選択された経路オブジェクト３２０Ａの作成（）３２０ｃを呼び出す。
【０１０４】
次に、ストリーム部１１３ａの処理の実行中に、いずれかの区間において障害が発生した場合の処理について説明する。図１０は、区間において障害が発生した際の操作の実行手順を説明するためのＵＭＬシーケンス図である。
【０１０５】
ストリーム部１１３ａによる処理の実行中に、ある区間のデバイス等に障害が発生すると、当該区間に係る区間オブジェクト３１０Ａは、自らが属する経路オブジェクト３２０Ａの異常発生通知（）３２０ｄを呼び出すことにより、障害の発生を通知する（Ｓ２０１）。経路オブジェクト３２０Ａは、発生した障害に応じて対応策を検討する（しばらく待機してみる、代替手段に移行する等）。
【０１０６】
待機や代替手段への移行等が不可能な場合、経路オブジェクト３２０Ａは、自らが属する経路集オブジェクト３３０Ａの異常発生通知（）３３０ｄを呼び出すことにより、障害の発生を通知する（Ｓ２０２）。続いて、経路集オブジェクト３３０Ａは、経路図オブジェクト３４０Ａの通知（）３４０ｄを呼び出し（Ｓ２０３）、経路図オブジェクト３４０ｄは、受付オブジェクト３５０Ａの通知（）３５０ｂを呼び出し（Ｓ２０４）、受付オブジェクト３５０Ａは、実行制御部１１３ｂに対して障害の発生を通知する（Ｓ２０５）。障害の発生は、実行制御部１１３ｂから操作サブシステム１１１に通知され、操作パネル４００にメッセージ等が表示させることにより、利用者に通知される。この際、利用者に対して代替手段の選択を要求し、その要求に応じた選択に基づいて、ステップＳ１０１移行の処理を行なっても良い。
【０１０７】
一方、代替手段への移行が可能な場合、経路オブジェクト３２０Ａは、自らが属する経路集オブジェクト３３０Ａの検討（）３３０ｃを呼び出す。これを受けて経路集オブジェクト３３０Ａは、例えば、予め定められた優先順位（低順位になるほど生産性の面で効率が落ちるといったような優先順位）に従って、再度経路の選択を行う。その後の処理は、図９のステップＳ１０４以降で説明したとおりである。
【０１０８】
なお、代替手段への移行とは、例えば、「ＦＡＸの直接送信」の実行を要求されたが相手先に繋がらないため「ＦＡＸのメモリ送信」に切り替えたり、「コピー蓄積かつ印刷」の実行を要求されたが、ＨＤＤ１８に空き容量が無かったため、蓄積は行わず印刷処理だけを行うようにしたりといった具合である。
【０１０９】
上述したように、本実施の形態における複合機１では、経路及び区間といった汎用的な概念に基づいてストリーム部１１３ａが実現されている。したがって、特定の機能や特定のデバイスに限定されず、各種の機能や各種のデバイスに対応したストリーム制御を容易かつ効率的に実現することができる。
【０１１０】
なお、本実施の形態の画像形成装置で実行されるストリーム制御プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記憶媒体から、ストリーム制御プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０１１１】
また、ストリーム制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかるストリーム制御プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０１１２】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１１３】
【図１】複合機をとりまくネットワーク環境を示すネットワーク図である。
【図２】複合機のハードウェアを説明するための説明図である。
【図３】複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【図４】統合アプリケーションの構成を説明するための説明図である。
【図５】統合アプリケーションの構成を表したＵＭＬクラス図である。
【図６】複合機の操作パネルを説明するための説明図である。
【図７】経路と区間とを説明するための図である。
【図８】ストリーム部のクラス構成を示すＵＭＬクラス図である。
【図９】ストリーム部がデータを流す経路の探索要求を受け付けた際の操作の実行手順を説明するためのＵＭＬシーケンス図である。
【図１０】区間において障害が発生した際の操作の実行手順を説明するためのＵＭＬシーケンス図である。
【図１１】複合機に搭載されるソフトウェア構成の変遷を示す説明図である。
【図１２】従来の複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【符号の説明】
【０１１４】
１  画像形成装置（複合機）
１０  コントローラ
１１  ＣＰＵ
１２  ＭＥＭ−Ｐ
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ＮＢ
１４  ＳＢ
１５  ＡＧＰ
１６  ＡＳＩＣ
１７  ＭＥＭ−Ｃ
１８  ＨＤＤ
２０  キーボード（オペレーションパネル）
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４
６０  エンジン部（Engine）
１００  ソフトウェア
１０１  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１１１  操作系サブシステム
１１２  管理系サブシステム
１１３  実行系サブシステム
１１３ａ  ストリーム部
１１３ｂ  実行制御部
１２０  コピーアプリケーション
１３０  スキャナアプリケーション
１４０  ファックスアプリケーション
１５０  プリンタアプリケーション
２００  ハードウェア
２０１  ハードウェアリソース
２０１ａ  スキャナ
２０１ｂ  プロッタ
２０１ｃ  ＨＤＤ
２０１ｄ  ネットワーク
２０１ｅ  その他のリソース
３１０    区間クラス
３１０Ａ  区間オブジェクト
３１０ａ  区間状態
３１０ｂ  使用（）
３２０    経路クラス
３２０Ａ  経路オブジェクト
３２０ａ  目的
３２０ｂ  経路状態
３２０ｃ  作成（）
３２０ｄ  異常発生通知（）
３３０    経路集クラス
３３０Ａ  経路集オブジェクト
３３０ａ  出発地
３３０ｂ  最終目的地
３３０ｃ  検討（）
３３０ｄ  異常発生通知（）
３４０    経路図クラス
３４０Ａ  経路図オブジェクト
３４０ａ  出発地数
３４０ｂ  目的地数
３４０ｃ  検討（）
３４０ｄ  通知（）
３５０    受付クラス
３５０ａ  流す（）
３５０ｂ  通知（）
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバーキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４２０  液晶タッチパネル
５０１  サービス層分離前アプリケーション
５０２  サービス層分離後アプリケーション
５０３  共通ルーチン分離アプリケーション
５０４  オブジェクト指向アプリケーション
【図１】
2007110410.tif 000003
【図２】
2007110410.tif 000004
【図３】
2007110410.tif 000005
【図４】
2007110410.tif 000006
【図５】
2007110410.tif 000007
【図６】
2007110410.tif 000008
【図７】
2007110410.tif 000009
【図８】
2007110410.tif 000010
【図９】
2007110410.tif 000011
【図１０】
2007110410.tif 000012
【図１１】
2007110410.tif 000013
【図１２】
2007110410.tif 000014