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