(57)【要約】      （修正有）【課題】  処理能力が十分であるか否かに関わらず、第１のサーバに処理を依頼する、印刷ネットワークシステムを提供する。【解決手段】  クライアント端末ＰＣ１からプリンタＰｒｔ１へ印刷要求を発行すると、分散処理サーバＳ１に展開処理が委託される。分散処理サーバＳ１は、自身で展開処理を行った方が速いか否か判断し、分散処理サーバＳ２に委託した方が速いと判断した場合は、スタブＯｂｊ２６を生成し、分散処理サーバＳ２に展開処理を委託する。分散処理サーバＳ２上の印刷データオブジェクトＯｂｊ２８で展開処理が行われると、展開されたビットマップデータを分散処理サーバＳ１に返し、分散処理サーバＳ１はプリンタＰｒｔ１に返す。プリンタＰｒｔ１がビットマップデータ受信後、印刷動作が実行され、所望する印刷要求が印字出力される。【選択図】  図５
2005092444.tif 000002
【特許請求の範囲】
【請求項１】
外部装置との相互通信手段と、
印刷を要求する印刷要求手段とを有することを特徴とするクライアント装置と、
分散オブジェクト技術を実装し、
外部装置との相互通信手段と
前記クライアント装置から要求されたプリンタ言語または画像データの画像データ処理手段と、
前記画像データ処理手段を外部装置に分散処理させる第１の分散手段と、
外部機器との相互通信手段と、
前記プリンタ言語または画像データとそのデータ処理を含むオブジェクトの全てまたは一部を１つ以上の外部装置と共有する共有手段と、
前記第１の分散手段により外部装置が画像データ処理を行った結果を受信する受信手段と、
前記受信手段の結果に基づいて印刷を実行する印刷実行手段とを有することを特徴とする画像処理装置と、
分散オブジェクト技術を実装し、
外部装置との相互通信手段と、
外部装置からの分散処理要求を受信する受信手段と、
前記受信手段による要求を外部装置の代わりに実行する分散処理実行手段と、
前記分散処理実行手段の処理結果を前記分散処理要求を行った外部装置に返す処理結果返信手段とを有することを特徴とするサーバ装置とを、前記相互通信手段によって接続した印刷ネットワークシステム。
【請求項２】
前記印刷機器は、自身の現在の状態および処理能力を判断し、分散オブジェクト技術を実装した外部装置に画像処理を分散するか否かを判断する第１の判断手段と、
前記第１の判断手段にて他の外部装置に画像処理を分散すると判断した場合は、前記他の外部装置に画像処理を分散する第２の分散手段とを有することを特徴とする請求項１記載の印刷ネットワークシステム。
【請求項３】
前記印刷機器における現在の状態および処理能力は、最大の印刷速度、搭載されているメモリ容量、エラー発生状況であること特徴とする請求項２記載の印刷ネットワークシステム。
【請求項４】
前記サーバ装置は、自身の現在の状態および処理能力を判断し、分散オブジェクト技術を実装した外部装置に画像処理を分散するか否かを判断する第２の判断手段と、前記第２の判断手段にて他の外部装置に画像処理を分散すると判断した場合は、前記他の外部装置に画像処理を分散する第３の分散手段とを有することを特徴とする請求項１から３のいずれか１項に記載の印刷ネットワークシステム。
【請求項５】
前記サーバ装置における現在の状態および処理能力は、ＣＰＵの種類・周波数・使用率、実装メモリ容量・使用率、許可された残存磁気記憶媒体の容量であることを特徴とする請求項４記載の印刷ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷ネットワークシステムに関し、特に、印刷要求を行うことが可能なクライアント装置と、分散オブジェクト環境を共有する分散処理サーバ及び印刷装置とを有する印刷ネットワークシステムに関する。
【背景技術】
【０００２】
印刷装置は、ＬＡＮ（Local Area Network）やＵＳＢインターフェース、或いは専用シリアルインターフェース等にて接続されたクライアント装置からの印刷要求に従い、印刷を行う。クライアント装置としては、パーソナルコンピュータが一般的であるが、最近では印刷装置のベンダと同一のベンダによって提供されるデジタルカメラ等のデバイスからも、ベンダ独自規格のインターフェースや、赤外線通信等の汎用的な通信インターフェースによって、印刷要求を行い、印刷装置は印刷を実行することが可能である。
【０００３】
例えば、現在、個人ユーザ向け、或いは中小規模事業者向けに提供されているような印刷装置用いて印刷を行うのであれば、クライアント数が少なく、且つクライアントからの印刷要求が少なければ、クライアントからの印刷要求後、ただちに印刷処理が実行される。
また、多少クライアント数が多かったり、或いは一時的に印刷要求が多くなった場合でも、印刷装置側での印刷実行の動作が多少遅れてしまうことがあるが、印刷装置の処理性能を高めることによるメリット（労働時間の短縮等による人件費削減等）とデメリット（印刷装置自体の購入経費・運用経費等のコストアップ、より大型な印刷装置の設置場所の確保、確保のための人件費や経費の増加等）とを考慮した場合、デメリットの方が大きい場合が殆どであり、このような場合は、安価な印刷機器による印刷で十分である。
【０００４】
しかしながら、ＩＴシステムを本格的に導入している企業や部署などにおいては、クライアント端末の台数は非常に多く、また、印刷専門の部署（例えば、月次の請求書や領収書などを大量に発行する部署等）などにおいては、クライアント端末からの印刷要求も非常に多い。また、高度な再現性（組版のためのカラー写真の高度再現性等）を要求される印刷においては、その印刷要求の内容も非常に高度である。
そのため、処理性能を高めたことによるメリットの方が大きい場合が殆どである。
そして、過去においては、クライアントから印刷要求を行っても、該印刷要求の印刷処理が行われるのが遅くなってしまうという問題が生じていた。
【０００５】
このような処理性能の問題を解決するためには、どの部分で処理性能のアップを図るかという問題と共に解決する必要がある。
例えば、クライアント端末と印刷機器間の通信速度の問題で印刷処理が遅れてしまうのであれば、通信速度を早めるための技術を開発すればよい。また、用紙の搬送速度が遅すぎて印刷処理が遅れてしまうのであれば、搬送モータの回転速度を速くする技術を開発して、用紙の搬送速度を速くすれば良い。
【０００６】
一般的に、印刷機器において用紙の搬送速度は、正確な画像形成を行うため、その速度はある程度の上限を設けている。言い換えれば、印刷間隔は、ある程度までしか短縮できない。そして、印刷要求に対して実際の印刷実行が遅れてしまうのは、上記印刷間隔の間に１ページ分の画像処理を行うことが出来ないためである。
しかしながら、このことは、搬送速度以上の処理性能（主に画像データの処理性能）を有すれば、この問題は解決されることを意味する。
【０００７】
そこで、従来の技術では、多くの印刷要求があった場合に、その印刷要求の画像処理に多くの時間を要する場合が多いという問題に着目して問題を解決している。しかも、印刷機器自体の画像処理性能を上げるのは、製造者から見た場合、開発のコストが大きく、ユーザから見た場合、導入のコストが大きくなるため、画像処理自体を高速処理が別の機構（サーバ等）に分散させるという方法を採用することが多い。
例えば、大規模な分散処理システムに存在する多数のオブジェクトを効率的に利用、管理ができる分散処理システムに関する発明がある（特許文献１参照）。
【０００８】
また、処理能力の高い情報処理装置の実行環境の効率的な活用を図ること、及びネットワークに接続されたプリンタ及び前記情報処理装置の効率的な分散処理を実現することを目的とするネットワークシステム、情報処理装置及び情報記憶媒体に関する発明がある（特許文献２参照）。
【０００９】
また、クライアント端末からの遠隔操作を可能とするため、装置の操作部から実行可能な指示内容を、クライアント装置に送信し、クライアント装置から、装置における操作と同様の手続きで、装置の実行可能な動作指示を行うことが可能である分散処理システムおよびその制御方法に関する発明がある（特許文献３参照）。
【特許文献１】特開平５−４６５７０号公報
【特許文献２】特開平１１−１７５２９５号公報
【特許文献３】特開平８−３２９００５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術では、１台の分散処理サーバだけで動作している場合、メモリ使用量の問題や、ＣＰＵの占有率の問題、或いはＣＰＵ等のハードウェア・スペックの問題等により、常に理想的な高速印刷が可能であるとは限らない。
【００１１】
また、印刷装置の制御動作等を行う機構は、最近では、専用のプログラムを実行させることにより、制御を行っている。しかしながら、専用プログラムはＣＰＵや、前記専用プログラムを実行可能とする基本ソフトウェア（ＯＳ）に依存するため、汎用性が低く、処理高速化のためにＣＰＵの設計が変わると、ＯＳ等も変更となる可能性があり、ＯＳが変わることによって、専用プログラムは使い物ではなくなってしまう可能性がある。
【００１２】
本発明は上記事情を鑑みてなされたものであり、処理能力が十分であるか否かに関わらず、第１のサーバに処理を依頼することによって、自動的に十分な処理能力を持つ第２のサーバに処理が委託され、あたかも第１のサーバが処理したかのように処理結果を得ることが可能である、分散オブジェクト技術を共有する印刷ネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
前記課題を解決するために、請求項１記載の印刷ネットワークシステムは、外部装置との相互通信手段と、印刷を要求する印刷要求手段とを有することを特徴とするクライアント装置と、分散オブジェクト技術を実装し、外部装置との相互通信手段と、前記クライアント装置から要求されたプリンタ言語または画像データの画像データ処理手段と、前記画像データ処理手段を外部装置に分散処理させる第１の分散手段と、外部機器との相互通信手段と、前記プリンタ言語または画像データとそのデータ処理を含むオブジェクトの全てまたは一部を１つ以上の外部装置と共有する共有手段と、前記第１の分散手段により外部装置が画像データ処理を行った結果を受信する受信手段と、前記受信手段の結果に基づいて印刷を実行する印刷実行手段とを有することを特徴とする画像処理装置と、分散オブジェクト技術を実装し、外部装置との相互通信手段と、外部装置からの分散処理要求を受信する受信手段と、前記受信手段による要求を外部装置の代わりに実行する分散処理実行手段と、前記分散処理実行手段の処理結果を前記分散処理要求を行った外部装置に返す処理結果返信手段とを有することを特徴とするサーバ装置とを、前記相互通信手段によって接続したことを特徴とする。
【００１４】
請求項２記載の発明は、前記印刷機器は、自身の現在の状態および処理能力を判断し、分散オブジェクト技術を実装した外部装置に画像処理を分散するか否かを判断する第１の判断手段と、前記第１の判断手段にて他の外部装置に画像処理を分散すると判断した場合は、前記他の外部装置に画像処理を分散する第２の分散手段とを有することを特徴とする。
【００１５】
請求項３記載の発明は、前記印刷機器における現在の状態および処理能力は、最大の印刷速度、搭載されているメモリ容量、エラー発生状況であること特徴とする。
【００１６】
請求項４記載の発明は、前記サーバ装置は、自身の現在の状態および処理能力を判断し、分散オブジェクト技術を実装した外部装置に画像処理を分散するか否かを判断する第２の判断手段と、前記第２の判断手段にて他の外部装置に画像処理を分散すると判断した場合は、前記他の外部装置に画像処理を分散する第３の分散手段とを有することを特徴とする。
【００１７】
請求項５記載の発明は、前記サーバ装置における現在の状態および処理能力は、ＣＰＵの種類・周波数・使用率、実装メモリ容量・使用率、許可された残存磁気記憶媒体の容量であることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、外部装置との相互通信手段と、印刷を要求する印刷要求手段とを有することを特徴とするクライアント装置と、分散オブジェクト技術を実装し、外部装置との相互通信手段と、前記クライアント装置から要求されたプリンタ言語または画像データの画像データ処理手段と、前記画像データ処理手段を外部装置に分散処理させる第１の分散手段と、外部機器との相互通信手段と、前記プリンタ言語または画像データとそのデータ処理を含むオブジェクトの全てまたは一部を１つ以上の外部装置と共有する共有手段と、前記第１の分散手段により外部装置が画像データ処理を行った結果を受信する受信手段と、前記受信手段の結果に基づいて印刷を実行する印刷実行手段とを有することを特徴とする画像処理装置と、分散オブジェクト技術を実装し、外部装置との相互通信手段と、外部装置からの分散処理要求を受信する受信手段と、前記受信手段による要求を外部装置の代わりに実行する分散処理実行手段と、前記分散処理実行手段の処理結果を前記分散処理要求を行った外部装置に返す処理結果返信手段とを有することを特徴とするサーバ装置とを、前記相互通信手段によって接続した印刷ネットワークシステムを構成することにより、分散処理を依頼された高速サーバ装置が、あたかも分散処理を依頼した印刷装置が処理したかのように処理を行い、印刷装置はあたかも自身で処理したかのように処理結果を得ることが可能となり、高速印刷が実現される。
【発明を実施するための最良の形態】
【００１９】
ここで、分散オブジェクト技術と仮想マシン（ＶＭ）について簡単に説明する。
分散オブジェクト技術には、様々な技術があるが、特に、ＣＯＲＢＡ（Common Object Request Broker Architecture）が有名である。ＣＯＲＢＡは、分散オブジェクト技術に関する仕様であり、オブジェクト（プログラム部品）をネットワーク機器に分散させて配置し、プラットフォーム（ハードウェア、ＯＳ、プログラミング言語等）の違いに関係なく、相互にメッセージ（データや処理要求など）の交換を行うソフトウェアであるＯＲＢ（Object Request Broker）の共通仕様として、ＯＭＧ（Object Management Group）により、定められており、既に、ＩＴを中心に多くの分野でこれらの技術が用いられ、実用化されている。
【００２０】
また、米国Sun Microsystems社によるＪａｖａ（Ｒ）は、オブジェクト指向の言語で、このＪａｖａ（Ｒ）プラットフォームを基板とした、ＲＭＩ（Remote Method Invocation）やＪｉｎｉ（Ｒ）といった分散オブジェクトに関する技術があり、
分散オブジェクト環境の技術基盤は整っている。
また、Ｊａｖａ（Ｒ）で記述され、コンパイルされたクラスコードは、Ｊａｖａ  ＶＭ（Ｒ）が実装されている環境で実行可能であるため、ＣＰＵやＯＳ等のプラットフォームに依存することなく、同じクラスコードを実行させることが可能である。このマルチプラットフォーム環境と分散オブジェクト環境との技術により、あるオブジェクトを複数の実行環境で動作させることが可能である。
本発明は、このようなマルチプラットフォーム環境と分散オブジェクト環境とを有する装置によって構成されることが好ましい。
【実施例】
【００２１】
次に、添付図面を参照しながら、本発明の実施形態を説明する。
図１は、本発明の実施形態である印刷ネットワークシステムのネットワーク構成図である。
システムの構成としては、印刷要求を行うクライアントであるＰＣ１、印刷を実行するプリンタＰｎｔ１、印刷データを展開する分散処理サーバＳ１、または分散処理サーバＳ２、プリンタＰｎｔ２からなる。
プリンタＰｎｔ１、Ｐｎｔ２、サーバＳ１、Ｓ２は、分散オブジェクト環境を共有可能とするため、Ｊａｖａ  ＶＭ（Ｒ）やＣＯＲＢＡを搭載している。
【００２２】
図２は、本発明の実施形態である印刷ネットワークシステムにおける静的構造を示すクラス図である。
一般的に、オブジェクト指向では、データ（アトリビュート）と、そのデータを処理する手段（メソッド）をクラスとしてセットに扱うことによって、データの適切な処理を常に行うことを容易にしている。
どのようなデータやメソッドをクラスとして実装するかは、ネットワークを構成するプリンタや、或いは設計次第で様々な形態を取ることが可能である。
制御クラスＣ１は、主にプリンタの各種制御を中心に行うクラスであり、アトリビュートとして、クライアントから受信する印刷データと、メソッドとして、印刷データクラスＣ２（印刷データオブジェクト）に対する印刷指示を行う印刷指示メソッドを含み実装している。
ここで、印刷データとは、クライアントからの印刷指示により、クライアントのドライバで生成されるプリンタ言語で書かれたデータである。
【００２３】
印刷データクラスＣ２は、アトリビュートとして、印刷データと、印刷データが展開されることにより、プリンタにて印刷が可能であるビットマップデータ（展開後データ）と、メソッドとして、印刷データをビットマップデータに展開する展開メソッドを含み実装している。
印刷クラスＣ３は、メソッドとして、実際に印刷を実行する印刷実行メソッドと、アトリビュートとして、印刷実行メソッドに必要なビットマップデータ（展開後データ）を実装している。
【００２４】
なお、展開メソッドには、実際に印刷データを展開する処理が実装されていても構わないし、実際に印刷データを展開する実体を他のクラスで実装し、そのクラスへのインターフェースを実装するだけでも構わない。
一般的には、印刷データを展開する実体は他のクラスで定義し、そのクラスへのインターフェースを実装するだけの方が、印刷データクラスの他クラスとの依存性が少なくなり、また、クラスの再利用などの面を考慮しても、より好ましい。
【００２５】
図３は、本発明の実施形態である印刷ネットワークシステムにおけるオブジェクト間の協調動作を示すコラボレーション図である。なお、本図では、分散オブジェクト環境ではないが、オブジェクト間の基本的な協調動作を分かりやすく示すため、プリンタ１台とクライアント１台の最も簡易な構成の場合について説明している。
また、制御クラスＣ１、印刷データクラスＣ２、印刷クラスＣ３は、いずれもプリンタ上に実装されている。
【００２６】
制御クラスＣ１のインスタンスである制御オブジェクトＯｂｊ１は、クライアントであるＰＣ１からプリンタ言語で記述された印刷データを受信し、そのデータから印刷データクラスＣ２のインスタンスである印刷データオブジェクトＯｂｊ２を生成する（シーケンスＳＱ１）。制御オブジェクトＯｂｊ１は、印刷データオブジェクトＯｂｊ２に対して、展開メソッドを実行し、印刷データオブジェクトは、ビットマップ展開を行う（シーケンスＳＱ２）。
ビットマップ展開が終了したら、制御オブジェクトＯｂｊ１は、印刷データオブジェクトＯｂｊ２に対し印刷指示を行う（シーケンスＳＱ３）。
印刷データオブジェクトＯｂｊ２は、実質的な印刷を行う印刷オブジェクトＯｂｊ３に対し、展開済みビットマップデータのオブジェクトとともに印刷指示を出すことにより、印刷することができる（シーケンスＳＱ４）。
【００２７】
上記の印刷動作を、分散オブジェクト環境で実装する。
図４は、本発明の実施形態である印刷ネットワークシステムにおけるオブジェクト間の協調動作を示すコラボレーション図である。なお、本図では、プリンタとサーバが分散オブジェクト環境を共有し、ビットマップ展開を行う実体がサーバ上で実装されている。
ここで、分散オブジェクト環境技術におけるスタブとスケルトンについて簡単に説明する。
本実施形態では、制御オブジェクトＯｂｊ１１が、クライアントであるＰＣ１から印刷データを受信すると、サーバ上のオブジェクトを仮想的に実行するサーバの代理オブジェクトＯｂｊ１２を生成する。代理オブジェクトの実装コードは、インターフェース定義から生成されるスタブ・コードの中に含まれており、一般的にスタブ（スタブ・オブジェクト）と呼ばれている。以下、代理オブジェクトをスタブオブジェクトと言う。
また、サーバ側では、クライアントとなるプリンタ側のスタブからの要求を実行することができるスケルトン（スケルトン・オブジェクト）Ｏｂｊ１４を生成する。
分散オブジェクト環境を有するということは、クライアント側にスタブと、サーバ側にスケルトンを実装していることである。そして、スタブとスケルトンとの間のオブジェクト通信を実現している技術基盤が、ＯＲＢ（Object Request Broker）やＣＯＲＢＡ（Common Object Request Broker Architecture）等である。
【００２８】
図４の説明を行う。
プリンタＰｒｔ１に実装されている制御クラスＣ１のインスタンスである制御オブジェクトＯｂｊ１１は、印刷要求を行うクライアントであるＰＣ１から印刷データを受信すると、スタブＯｂｊ１２と印刷データオブジェクトＯｂｊ１３を生成する（シーケンスＳＱ１１、ＳＱ１２）。
続いて、スタブＯｂｊ１２に対して、印刷データを含む印刷データオブジェクトを渡し、サーバ上に印刷データオブジェクトを転送し、スタブＯｂｊ１２に対して印刷オブジェクトの展開指示を出す（シーケンスＳＱ１３）。スタブＯｂｊ１２は、スケルトンＯｂｊ１４を生成し（シーケンスＳＱ１４）、スタブ〜スケルトンのインターフェースを介して、サーバ上にある印刷データオブジェクトＯｂｊ１５がビットマップ展開を行い、展開終了後、展開終了通知を送る（シーケンスＳＱ１６）。
【００２９】
制御オブジェクトは、印刷データオブジェクトを受信する準備が出来次第、サーバは展開後データ要求を行う。サーバは展開後ビットマップデータを含む印刷データオブジェクトをクライアントプリンタＰｒｔ１へ返す（シーケンスＳＱ１７）。
制御オブジェクトＯｂｊ１１は、展開後ビットマップデータを含む印刷データオブジェクトＯｂｊ１３に対して印刷指示を行い（シーケンスＳＱ１８）、印刷クラスＣ３のインスタンスである印刷オブジェクトＯｂｊ１６に対して、展開後ビットマップデータの印刷実行を指示する（シーケンスＳＱ１９）ことにより、プリンタＰｒｔ１にて印刷が実行される。
【００３０】
上記で示したサーバでの分散処理（印刷データのビットマップ展開）を、分散オブジェクト環境を有するプリンタＰｒｔ２で実装することも可能であり、その場合は、同様の処理をプリンタＰｒｔ２で行う。
これらの実行環境をＪａｖａ  ＶＭ（Ｒ）やＣＯＲＢＡ上に構築することによって、異なるプラットフォーム上で実行可能となる。これは、Ｊａｖａ  ＶＭ（Ｒ）等の技術基盤をプリンタに搭載すれば、ＣＰＵやＯＳが異なっていても、ＰＣやサーバと同じように振る舞うことが可能であることを意味する。
【００３１】
図５は、本発明の実施形態である印刷ネットワークシステムにおけるオブジェクト間の協調動作を示すコラボレーション図である。なお、本図では、プリンタＰｒｔ１とサーバＳ１、サーバＳ２が分散オブジェクト環境を共有しているケースである。
プリンタＰｒｔ１に実装されている制御クラスＣ１のインスタンスである制御オブジェクトＯｂｊ２１は、印刷要求を行うクライアントであるＰＣ１から印刷データを受信すると、サーバＳ１の代理オブジェクト（スタブ）Ｏｂｊ２２と印刷データオブジェクトＯｂｊ２３を生成する（シーケンスＳＱ２１、ＳＱ２２）。
続いて、スタブＯｂｊ２２に対して、印刷データを含む印刷データオブジェクトを渡し、サーバＳ１上に印刷データオブジェクトを転送し、スタブＯｂｊ２２に対して印刷オブジェクトの展開指示を出す（シーケンスＳＱ２３）。スタブＯｂｊ２２は、スケルトンＯｂｊ２４を生成し（シーケンスＳＱ２４）、スタブＯｂｊ２２〜スケルトンＯｂｊ２４のインターフェースを介して、サーバＳ１に印刷データオブジェクトＯｂｊ２５を生成し、印刷データの展開の指示を出す（シーケンスＳＱ２５）。
【００３２】
すると、サーバＳ１が印刷データオブジェクトの展開処理に十分な能力があるか、また、サーバＳ１自身で展開処理が可能であるか否かを判断し、展開処理に十分な能力を持っていない、もしくは処理が可能な状態でないと判断した場合は、サーバＳ２の代理オブジェクト（スタブ）Ｏｂｊ２６を生成し、スタブＯｂｊ２６に対して印刷データオブジェクトを転送し、印刷データオブジェクトの展開指示を出す（シーケンスＳＱ２６）。
この展開指示により、サーバＳ２上にスケルトンＯｂｊ２７が生成され、展開指示を受信し（シーケンスＳＱ２７）、印刷データオブジェクトＯｂｊ２８を生成し、展開処理を実行する（シーケンスＳＱ２８）。
【００３３】
展開終了後、サーバＳ２は、展開後ビットマップデータをサーバＳ１に送信し（シーケンスＳＱ２９、ＳＱ３０）、更にサーバＳ１は、サーバＳ２から展開後ビットマップデータを受信した後、プリンタＰｒｔ１上の制御オブジェクトに展開終了通知を送る（シーケンスＳＱ３１、ＳＱ３２）。
制御オブジェクトＯｂｊ２１は、印刷データオブジェクトを受信する準備が出来次第、サーバＳ１は、展開後データ要求を行う。サーバＳ１は、展開後ビットマップデータを含む印刷データオブジェクトをクライアントプリンタＰｒｔ１へ返す（シーケンスＳＱ３２）。
制御オブジェクトＯｂｊ２１は、展開後ビットマップデータを含む印刷データオブジェクトＯｂｊ２３に対して印刷指示を行い（シーケンスＳＱ３３）、印刷クラスＣ３のインスタンスである印刷オブジェクトＯｂｊ２９に対して、展開後ビットマップデータの印刷実行を指示する（シーケンスＳＱ３４）ことにより、プリンタＰｒｔ１にて印刷が実行される。
【００３４】
なお、サーバＳ１が印刷データオブジェクトの展開処理に十分な能力があるか、また、サーバＳ１自身で展開処理が可能であるか否かを判断するときに、展開処理を行うのに十分な能力があり、サーバＳ１自身で展開処理が可能であると判断した場合は、図４に示した動作を同じ動作を行う。
【００３５】
また、サーバＳ２に展開指示が出された場合においても、サーバＳ２で印刷データオブジェクトの展開処理に十分な能力があるか、また、現在処理可能な状態であるか否かを判断し、展開処理に十分な能力を持っていない、もしくは、処理可能な状態でないと判断した場合は、更に別のサーバＳ３に処理を委託するようにして、以下サーバＳ４、サーバＳ５、・・・、と連鎖的に処理が委託されていくように印刷ネットワークシステムを構築することも可能である。
【００３６】
図６は、本発明の実施形態である印刷ネットワークシステムにおける、プリンタの内部構成を示すブロック図である。
ＲＯＭ１０２やＨＤＤ（磁気ハードディスク）１０７には、プリンタの全体を制御するためのプログラムや、本発明に係る分散オブジェクト技術基盤（ＯＲＢやＣＯＲＢＡ等）、プラットフォームに依存せずにプログラムを実行することが可能である技術基盤（Ｊａｖａ  ＶＭ（Ｒ）等）が格納されており、必要に応じてこれらがＲＡＭ１０３に展開され、ＣＰＵ１０１にて処理される。
システムコントローラ１０８は、主に印刷用画像データの処理を行うユニットである。
フレームメモリ１０９は、印刷用の画像データを展開するためのメモリであり、大量印刷に備えるために、大容量のメモリである。
プリンタエンジン１１１は、プリンタ動作の中心機能を制御するユニットであり、例えば、感光体へのレーザー光照射や、転写用紙の搬送動作、或いは転写部や熱定着部の制御などの、最も機械的な動作に近い部分の制御を行う。そのため、プリンタエンジン２１は、これらの制御専用のプログラムを有し、前記ＣＰＵ１０１とは独立したＣＰＵを有する場合が多い。
また、その他のユニットも、プリンタエンジンと同様にＣＰＵ１０１とは独立した演算制御機構を有し、独自の制御を行う場合がある。
【００３７】
ＬＡＮコントローラ１０４は、クライアントコンピュータＰＣ１や、サーバコンピュータＳ１、Ｓ２等と、データの相互通信を行うためのインターフェースである。
なお、本実施例では、相互通信のインターフェースとして、イーサネット（Ｒ）によるＬＡＮでシステムを構築している。
【００３８】
以上の説明から明らかなように、外部装置との相互通信手段と、印刷を要求する印刷要求手段とを有することを特徴とするクライアント装置と、分散オブジェクト技術を実装し、外部装置との相互通信手段と、前記クライアント装置から要求されたプリンタ言語または画像データの画像データ処理手段と、前記画像データ処理手段を外部装置に分散処理させる第１の分散手段と、外部機器との相互通信手段と、前記プリンタ言語または画像データとそのデータ処理を含むオブジェクトの全てまたは一部を１つ以上の外部装置と共有する共有手段と、前記第１の分散手段により外部装置が画像データ処理を行った結果を受信する受信手段と、前記受信手段の結果に基づいて印刷を実行する印刷実行手段とを有することを特徴とする画像処理装置と、分散オブジェクト技術を実装し、外部装置との相互通信手段と、外部装置からの分散処理要求を受信する受信手段と、前記受信手段による要求を外部装置の代わりに実行する分散処理実行手段と、前記分散処理実行手段の処理結果を前記分散処理要求を行った外部装置に返す処理結果返信手段とを有することを特徴とするサーバ装置とを、前記相互通信手段によって接続した印刷ネットワークシステムを構成することにより、分散処理を依頼された高速サーバ装置が、あたかも分散処理を依頼した印刷装置が処理したかのように高速処理を行い、印刷装置はあたかも自身で処理したかのように処理結果を得ることが可能となり、高速印刷が実現される。
【００３９】
また、前記印刷機器は、自身の現在の状態および処理能力を判断し、分散オブジェクト技術を実装した外部装置に画像処理を分散するか否かを判断する第１の判断手段と、前記第１の判断手段にて他の外部装置に画像処理を分散すると判断した場合は、前記他の外部装置に画像処理を分散する第２の分散手段とを有することにより、分散依頼された処理要求を、サーバ装置に分散処理要求を依頼することが可能となり、高速印刷が実現される。
【００４０】
また、前記印刷機器における現在の状態および処理能力として、最大の印刷速度、搭載されているメモリ容量、エラー発生状況を確認し、画像処理を分散するか否かを判断することにより、分散依頼された処理要求を、サーバ装置に処理要求を依頼することが可能となり、高速印刷が実現される。
【００４１】
また、前記サーバ装置は、自身の現在の状態および処理能力を判断し、分散オブジェクト技術を実装した外部装置に画像処理を分散するか否かを判断する第２の判断手段と、前記第２の判断手段にて他の外部装置に画像処理を分散すると判断した場合は、前記他の外部装置に画像処理を分散する第３の分散手段とを有することにより、分散依頼された処理要求を、更に、別のサーバ装置に分散処理要求を依頼することが可能となり、高速印刷が実現される。
【００４２】
また、前記サーバ装置における現在の状態および処理能力として、ＣＰＵの種類・周波数・使用率、実装メモリ容量・使用率、許可された残存磁気記憶媒体の容量を確認し、画像処理を分散するか否かを判断することにより、分散依頼された処理要求を、更に別のサーバ装置に処理要求を依頼することが可能となり、高速印刷が実現される。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施形態である印刷ネットワークシステムのネットワーク構成図である。
【図２】本発明の実施形態である印刷ネットワークシステムにおける静的構造を示すクラス図である。
【図３】本発明の実施形態である印刷ネットワークシステムにおけるオブジェクト間の協調動作を示すコラボレーション図である。
【図４】本発明の実施形態である印刷ネットワークシステムにおけるオブジェクト間の協調動作を示すコラボレーション図である。
【図５】本発明の実施形態である印刷ネットワークシステムにおけるオブジェクト間の協調動作を示すコラボレーション図である。
【図６】本発明の実施形態である印刷ネットワークシステムにおける、プリンタの内部構成を示すブロック図である。
【符号の説明】
【００４４】
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０７    ＨＤＤ（磁気記憶媒体）
ＰＣ１    クライアントコンピュータ
Ｓ１、Ｓ２    分散処理サーバ
Ｐｒｔ１、Ｐｒｔ２    プリンタ
Ｃ１    制御クラス
Ｃ２    印刷データクラス
Ｃ３    印刷クラス
Ｏｂｊ１〜Ｏｂｊ２９    各種オブジェクト
ＳＱ１〜ＳＱ３４    オブジェクト間の協調動作を示すシーケンス
【図１】
2005092444.tif 000003
【図２】
2005092444.tif 000004
【図３】
2005092444.tif 000005
【図４】
2005092444.tif 000006
【図５】
2005092444.tif 000007
【図６】
2005092444.tif 000008