説明

画像処理装置、画像処理装置の制御方法、およびプログラム

【課題】 クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を提供する。
【解決手段】 画像処理装置の制御ソフトウェアの上位層に、モバイルエージェントを送受信、符号/復号化、解釈、実行するインタープリタ45を配し、コンピュータやワードプロセッサなどのクライアント装置から移動してきたモバイルエージェント41、42…を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに対してデータの送信および受信を行うインタフェース手段と、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびそのプログラムに関するものである。
【背景技術】
【0002】
従来より、複写機、ファクス、プリンタ、イメージスキャナ、画像ファイルシステム、高機能電話機などのOA装置が広く用いられている。
【0003】
従来、上記のようなOA装置の多くはネットワークに接続されず単独の機器内に閉じた機能を提供していた。近年ではこれらこれまでスタンドアロンで利用されてきたOA装置がイーサネット(登録商標)等のネットワークに接続され、クライアントである複数のコンピュータなどから共用できる製品が提供され始めている。
【0004】
たとえば、複写機、ファクス、プリンタ、イメージスキャナなどの画像記録装置に関しては、これらをネットワークを介して複数のクライアントから共有する技術は比較的早くから実用化されている。
【0005】
ただし、従来技術では、クライアントからネットワークを介してこのようなOA装置を利用するにあたり、従来は処理の間中常にネットワーク経由の接続性が確保されていることを前提とする手法がとられている。
【0006】
たとえば、クライアントであるワークステーションやパーソナルコンピュータや携帯情報端末などの上で実行されるプログラムがOA装置が提供するサービスを利用するときには、OA装置上で実行されるサーバプログラムに対して所定のプロトコル、たとえばLPRやPAPなどのネットワークプロトコルに従って、処理要求や処理に必要なデータの送信を行うことにより、目的とする機器の動作を制御し、さらに返答や必要ならばデータを受信する。
【0007】
クライアントはOA装置からの返答の内容を判定し、それに応じて新たな指示要求をOA装置に送信することを繰り返す。このようなサーバクライアント方式は、TCP/IPなど種々のネットワークプロトコルの上に実装され、用いられているが、サービスが処理されている間を通じて、サーバ、クライアントの間で対話的なやりとりを続ける必要があった。
【0008】
一方、純粋にコンピュータ同士からなるネットワークにおける分散計算の分野では、最近になって、これまで盛んに研究と実現が行われてきたプロトコルによる対話を繰り返して分散計算を行うリモートプロシージャコール等の技術から発展して、実行可能なプログラムオブジェクトそのものがネットワークを介して移動して分散計算を行うモバイルエージェントと呼ばれる技術が提案されてきている。
【0009】
モバイルエージェントによる分散計算システムの実現例としては米国特許560303号のGeneral Magic社のTelescriptや、IBM東京基礎研究所のAgletsなどさまざまな提案がよく知られている。
【0010】
モバイルエージェントは、命令列とその実行に必要なデータから成り、一の実行環境に限定されずにある実行環境から他の実行環境に移動して専用のインタープリタ上で実行される。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開平09−330260号公報
【特許文献2】特開平06−295286号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
ところが、これまでのネットワークプロトコルを介して行うOA装置の制御には、装置が提供するサービスの遠隔制御を行うクライアントプロセスとOA装置が提供するサービスを実現するために装置の物理的な機構を制御するためのサーバプロセスとが、離れたプロセス実行環境上でそれぞれ動作するため、以下にあげるような問題があった。
【0013】
すなわち、クライアントプロセスはサーバプロセスに対してサービスの要求やサービスの処理に必要なデータの送信を行い、サーバプロセスはこの要求に対応するOA装置の物理的な機構の制御とクライアントプロセスヘの応答と必要に応じて処理結果の返信を行うが、この対話的なやりとりは、要求するサービスをきめこまかく制御しようとすればそれに応じて何回も繰り返さなければならなくなる。ネットワークによって共有されるOA装置の提供するサービスをクライアントからきめこまかく制御することは最近とみに重視されている要請であるが、従来の制御プロトコルによる対話的な情報のやりとりでこの要請に応えようとすると、それだけネットワークの混雑を増すことになる。したがってユーザはより性能が高く高価なネットワークインフラストラクチャを使わなければならなくなり、経済的に不利である。
【0014】
また第2に、従来のやり方でクライアントからOA装置を細かく制御しようとすると、装置が提供するサービスを実現するためのプロセス、たとえば、プリンタ装置の場合にはPDL(ページ記述言語)の解釈と展開、給紙、作像、そして出力用紙の排紙などの間中、上記のようなクライアントプロセスとサーバプロセスとの制御プロトコルによる対話を維持しつづけなければならない。
【0015】
これはOA装置にとって、サービスを提供するための物理的な機構の制御と、ネットワークを介する通信とを、同時に並行してこなさなければならないことを意味し、負担が大きい。この負担は、OA装置が複数のクライアントからの要求に対してサービスを提供するマルチクライアント型の装置であった場合、特に顕著なものとなる。サービスを実現するために装置の持つ物理的な機構を制御する間、ネットワークを介した通信のコネクションを維持するためには、装置のプロセッサはより高性能なものが必要とされメモリもより大容量なものが必要とされるなど、装置本体のコストアップの原因となっている。
【0016】
また第3に、OA装置を制御するための一連の対話処理がプロトコルによって実現される方法では、装置を制御するための命令体系をあらかじめコマンドプロトコルとして設計し実装しておかなければならないため、将来的にその装置の新たな利用方法が拡張されたときにその新しいサービスを享受するためには、コマンドプロトコルを拡張しクライアントプロセスとサーバプロセスの両方ともがこの新しいコマンドプロトコルに対応するように変更(プログラムのバージョンアップ)をしなければならない。このことはユーザにとって手間であるばかりでなく、特に、従来のOA装置に内蔵されているサーバプロセスのためのプログラムは、一般にファームウェアと呼ばれ不揮発性のメモリ等に置かれ、プログラムの更新には多大なコストがかかるかあるいはまったく不可能なことが多い。したがって、OA装置が提供するサービスの拡張性に乏しい。
【0017】
また第4に、分散計算の分野で提案されはじめているモバイルエージェントは、あくまでコンピュータ上の分散プログラミングの手法であって、コンベンショナルなOA装置に近年要求されている前述のさまざまな要求に完全に応えることはできない。すなわち、プリントサーバに代表されるようなOA装置の制御を専門的に行うサーバコンピュータ上にモバイルエージェントの実行システムを実現することで要求にある程度応えることはできるものの、このサーバコンピュータとOA装置間にネットワークあるいはそれに代わる通信インフラストラクチャが必要であることにかわりはない。したがって、その通信媒体上のトラフィックも相変わらず問題であるし、OA装置側にとってのインタフェース処理の負荷も減らない。さらに、OA装置の制御を専門的に行うサーバコンピュータと装置との間の何らかの通信インフラストラクチャを介して両者がやりとりする制御体系が従来通りの対話的なプロトコルによるものであれば、装置そのものが提供するサービスの拡張性が乏しい問題も解決しない。また、ユーザにとっては、新たに装置専用のサーバコンピュータを用意しなければならないことになって経済的にも設置面積的にも不利益となる。
【0018】
本発明の課題は、かかる問題点を解決し、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を提供することにある。
【課題を解決するための手段】
【0019】
本発明の一実施系に係る画像処理装置は、画像処理装置のハードウェアリソースを制御するための制御プログラムを読み込む画像処理装置であって、(1)OS(2)前記制御プログラムを動作させるための実行環境であって、かつそのOS上で動き、かつ前記制御プログラムを解釈するインタプリタ(3)前記画像処理装置を制御するドライバプログラム(4)ライブラリ を記憶する記憶手段を有し、前記ドライバプログラムは、印刷ユニット、およびスキャナユニットの内、少なくとも1つを含むハードウェアリソースユニットを操作制御し、前記ライブラリは、(a)制御プログラムとドライバプログラムとの間に定義され(b)前記制御プログラムによって使われ、(c)インタプリタにより解釈されることを特徴とする。
【発明の効果】
【0020】
本発明によれば、上記構成を採用することにより、クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を実現することができる。
【図面の簡単な説明】
【0021】
【図1】本発明を適用可能なネットワークシステムの構成を説明するブロック図である。
【図2】図1の画像処理装置の構成を示したブロック図である。
【図3】図2のプリンタとスキャナの構成を示した概略断面図である。
【図4】図2のプロセッサによって処理されるソフトウェアの構成を示した階層図である。
【図5】図4のモバイルエージェントがネットワーク転送のために符号化された構造を示した説明図である。
【図6】本発明のモバイルエージェントの命令列により行なわれる第1の処理手順を示すフローチャートである。
【図7】本発明のモバイルエージェントの命令列により行なわれる第2の処理手順を示すフローチャートである。
【図8】本発明のモバイルエージェントの命令列により行なわれる第3の処理手順を示すフローチャートである。
【図9】本発明のモバイルエージェントの命令列により行なわれる第4の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、添付図面を参照して、発明を実施するための最良の形態の一実施例につき説明する。
【実施例1】
【0023】
図1は、本発明を適用可能なOA装置として画像処理装置を含むオフィスシステムの構成を示す図である。
【0024】
図1において、符号1は画像処理装置である。2は画像処理装置に接続されたローカルエリアネットワークであり、イーサネット(登録商標)などからなり、装置と他の装置あるいはクライアントの相互の通信を実現する。3はパーソナルコンピュータ、ワークステーション、ワードプロセッサなどの情報処理装置などのクライアントであり、一般にユーザが入力するキーボード、マウス等の入力装置と、ユーザに情報を出力するディスプレイ等の出力装置を備え、ローカルエリアネットワーク2に接続している。
【0025】
符号4はルータであり、ローカルエリアネットワーク2と他のネットワークとを接続し両者に接続する機器間の通信を実現する。TCP/IP の場合、通常、異なるネットワークアドレスを持つネットワーク間でデータフレームを相互に転送する機能を受け持つ。
【0026】
符号5は、インターネット、イントラネットなどのワイドエリアネットワークであり、多数のネットワークを接続した企業専用線網やインターネットあるいはインターネット上のヴァーチャルプライベートネットワーク等で、さまざまなローカルエリアネットワークを相互接続する。
【0027】
符号6は第2のローカルエリアネットワークであり、ワイドエリアネットワーク5を介して第1のローカルエリアネットワークと相互接続している。符号7は第2のルータであり、ローカルエリアネットワーク6とワイドエリアネットワーク5を接続する。8はリモートクライアントであり、ローカルエリアネットワーク6に接続しており、ワイドエリアネットワーク5を経由して装置1に遠隔地から接続することができる。
【0028】
図2は、図1の画像処理装置1の内部構造を示すブロック図である。図2において、符号11はローカルエリアネットワーク2とデータフレームの送受信を行うネットワークインタフェースで、イーサネット(登録商標)インタフェースなどから構成される。符号12は各種演算処理を行うプロセッサ(CPU,MPU)である。符号13はプロセッサが実行するプログラムと実行に係るデータを格納するワークメモリである。符号14はプロセッサが実行するプログラムと実行に係るデータの初期値および電源切断を経た後も保存が必要なデータ等を格納する不揮発性メモリ(図示しないROM,Flash ROM,NVRAM,HDD等のいずれかあるいはいくつかから構成される)である。
【0029】
符号15は、ハードウェアによって画像処理を行う画像処理エンジンを制御するためのエンジン制御回路である。符号16は画像データを格納する画像メモリである。符号17は転写紙に画像データに対応する画像を形成する画像処理エンジンたるプリンタである。符号18は原稿から画像を読み取り画像データをつくる画像処理エンジンたるイメージスキャナである。符号19はプロセッサバスであり、ネットワークインタフェース11、プロセッサ12、ワークメモリ13、不揮発性メモリ14、エンジン制御回路15、画像メモリ16を接続しデータや制御情報、およびエンジンのステータス等のやり取りを行なう。20はイメージバスであり、エンジン制御回路15、画像メモリ16、プリンタ17、イメージスキャナ18とを接続し画像データのやり取りを行なう。
【0030】
図3は、図2の画像処理装置1のプリンタ部17、およびイメージスキャナ部18の構成を示している。画像記録エンジンは種々の記録方式に基くものであってよいが、ここでは電子写真方式の画像記録エンジンを考える。
【0031】
図3において、符号101は原稿給送装置で、原稿台上に積載された原稿を1枚ずつ順次原稿台ガラス102面上に搬送する。該原稿が搬送されると、イメージスキャナ部のランプ103が点灯、かつスキャナユニット104が移動して原稿を照射する。原稿の反射光は、ミラー105、106、107を介してレンズ108を通過し、その後CCDイメージセンサ109に入力される。
【0032】
プリンタ部2に入力された信号は、露光制御部201により光信号に変換されて画像信号に従い感光体202を照射する。照射光によって感光体202上に作られた潜像は現像器203によってトナー現像される。上記現像とタイミングを併せて被転写紙積載部204、もしくは205より転写紙が搬送され、転写部206に於いて、上記現像された像が転写される。転写された像は定着部207にて被転写紙に定着された後、排紙部208より装置外部に排出される。排紙部から出力された転写紙は、ソータ220でソート機能が働いている場合には、各ビンに、またはソート機能が働いていない場合には、ソータの最上位のノンソートビンに排出される。図2の制御回路は制御基板124上に実装される。
【0033】
図4は、画像処理装置1のワークメモリ13に記憶されたデータ構造とプログラムコード(不揮発性メモリ14がROM等であればプログラムコードは不揮発性メモリ14だけに存在してもよい)をプロセッサ12が処理するソフトウェアの構造を示す模式的な階層図である。
【0034】
図4において、各階層は下位の階層が提供するサービスを上位の階層が利用する関係になっている。最下層はオペレーティングシステム50であり、プログラムの実行コンテクストの管理やメモリ管理等を行う階層である。オペレーティングシステムの中には、ネットワークインタフェースドライバ51、プリンタ制御ドライバ52、イメージスキャナ制御ドライバ53の3つのデバイスドライバが組み込まれ、連携して機能している。
【0035】
ネットワークインタフェースドライバ51はネットワークインタフェース11を制御するソフトウェアである。プリンタ制御ドライバ52はエンジン制御回路15と画像メモリ16を介して、プリンタ17を制御するソフトウェアである。
【0036】
イメージスキャナ制御ドライバ53はエンジン制御回路15と画像メモリ16を介して、イメージスキャナ18を制御するソフトウェアである。
【0037】
最下位から2番目の層は各種のライブラリで、後述のインタープリタ45や他のアプリケーションプログラムと静的あるいは動的にリンクされ、オペレーティングシステム50とアプリケーションプログラムの仲立ちをする。このうちスレッドライブラリ46はそれを利用するプログラムにスレッド機能を提供するライブラリである。スレッドとは、ソフトウェアの並列実行の単位であり、単一プロセス内の複数のスレッドは異なる実行コンテキスト(プログラムカウンタ、スタック、レジスタ値等)を持つが、メモリ空間等は共有する。スレッドのコンテキスト切り替えはプロセス(実行中のプログラム)のコンテキスト切り替えに比べ処理の量が少なく済むため、ライトウェイトスレッドと呼ぶこともある。
【0038】
ネットワークインタフェースライブラリ47は、ネットワークインタフェースドライバ51を利用してネットワークを介するデータ送信とデータ受信を実現するためのライブラリである。
【0039】
プリンタ制御ライブラリ48は、プリンタ制御ドライバの機能を利用してプリンタ制御API(アプリケーションプログラミングインタフェース)を提供するライブラリである。
【0040】
イメージスキャナ制御ライブラリ49は、イメージスキャナ制御ドライバの機能を利用してイメージスキャナ制御APIを提供するライブラリである。
【0041】
最下位から3段目の層は、インタプリタ45である。インタプリタ45はモバイルエージェント等のオブジェクトが動作するためのオブジェクト実行環境を提供する。本実施例における「オブジェクト」とは、広く知られたオブジェクト指向パラダイムにおけるオブジェクトのサブセットとなっている。すなわち、問題領域のある概念に係るデータと処理とをひとまとめにしたソフトウェア構造である。各オブジェクトは自律的に存在し、他のオブジェクトと通信(メッセージパッシング)し合いながら、オブジェクト群全体として並列に動作することにより一連の処理が達成される。
【0042】
インタプリタ45内部には、インタプリタ上で動作する各オブジェクトに断続的にプロセッサの処理時間を与えるオブジェクトスケジューラがある。オブジェクトスケジューラは、各オブジェクトの処理が仮想的に並列に進行するようにスレッドライブラリ46を利用する。
【0043】
また、インタプリタ内部にはオブジェクトデコーダ/エンコーダがある。エンコーダは、メモリ上に実行可能な形態で展開されたオブジェクトの命令列(スクリプト)およびデータを、ネットワークを介して転送可能なビット列に、もとメモリ上にあった構造を実質的に復元可能な形で符号化する。
【0044】
デコーダはネットワークを介して転送されたビット列を、メモリ上に実行可能な形態に展開されたオブジェクトに復号化する。この符号化/復号化の過程は、ネットワーク上のトラフィックを軽減するためになんらかのデータ圧縮/復元過程を含んでいてよい。データ圧縮/復元過程を含めることによって、クライアントと画像記録装置の間で転送されるデータ量をさらに減少することができ、ネットワーク上のトラフィック軽減に役立ち、モデムや TA によるダイヤルアップ接続などによるネットワークの狭い帯域でも充分実用的なスループットを得ることができる。
【0045】
図5は、オブジェクトが符号化されたネットワークパケットの例である。オブジェクトを符号化したネットワークパケットには、もとのオブジェクトの実行に係るすべてのデータを符号化した部分61と、もとのオブジェクトの命令列部分62とが含まれる。なお、ここで説明したインタプリタは画像処理装置1内だけでなく、クライアント3およびクライアント8の中にも備えられている。以下の説明も含め、これらのインタプリタの構造と働きは全く同様である。
【0046】
再び図4において最上位の層はインタプリタ上で管理および実行される複数のオブジェクトである。
【0047】
プリンタ制御オブジェクト43は、プリンタ制御ライブラリを介してプリンタの制御を行うための複数のオペレーションを提供しており、プリンタ17の代理オブジェクトとして機能する。すなわち、オブジェクトの命令列の中で、プリンタ制御オブジェクト43のオペレーションを呼び出す(メッセージパッシング)命令を実行すると、該オペレーションの実装の中でオペレーションに対応する制御がプリンタ17に実施される。同様にプリンタ制御オブジェクト43から情報を引き出すオペレーションを実行すると、実際のプリンタのステータス情報等を得ることができる。
【0048】
イメージスキャナ制御オブジェクト44はイメージスキャナ制御ライブラリを介してイメージスキャナの制御を行うための複数のオペレーションを提供しており、イメージスキャナ18の代理オブジェクトとして機能する。すなわち、オブジェクトの命令列の中で、イメージスキャナ制御オブジェクトのオペレーションを呼び出す(メッセージパッシング)命令を実行すると、該オペレーションの実装の中でオペレーションに対応する制御がイメージスキャナ18に実施される。同様にイメージスキャナ制御オブジェクトから情報を引き出すオペレーションを実行すると、実際のイメージスキャナのステータス情報等を得ることができる。
【0049】
プリンタ制御オブジェクト43とイメージスキャナオブジェクト44は常駐エージェントである。すなわち、画像処理装置1の立ち上げ後、インタプリタが処理を開始するとその最初の処理の一環として常駐エージェントを自動的に生成、初期化、起動する。そしてこれら常駐エージェントは、画像処理装置1の動作中を通じて、このネットワーク上のノードの1つとしての画像処理装置1上に存続する(後述するliveオペレーションの実装内部で無限ループを構成している)。
【0050】
図4において2つ存在するモバイルエージェント41、42は、ある仕事のエージェントとしての役割を担うオブジェクトのうち、あるネットワークノード上のインタプリタから別のネットワークノード上のインタプリタヘ移動する性質を持つオブジェクトである。モバイルエージェントは、そのスクリプト中に「移動」を意味するオペレーション(以下goオペレーションと呼ぶ)を呼び出す命令を含む。
【0051】
画像処理装置1および図1のクライアント3,8内のインタプリタはモバイルエージェントオブジェクトの命令列の解釈実行中にgoオペレーションを発見すると、オブジェクトエンコーダによってその時点の該オブジェクトに含まれるすべての実行に係るデータと命令列とをそれらのデータ構造を復元可能な符号化方法によって符号化し、符号化したパッケージをネットワークパケットとしてgoオペレーションの引数に指定されたノード(たとえば画像処理装置1)のインタプリタに宛てて転送する。
【0052】
転送されたパケットを受け取ったノードのインタプリタ45は、オブジェクトデコーダによって、そのパケットを実行可能な命令とデータとして該インタプリタが管理するメモリ空間に復号化し、さらにオブジェクトスケジューラのスケジュール対象に参加させる。転送され復号化されたオブジェクトの実行に係るデータ中には、該オブジェクトの次に実行すべき命令の位置を示すデータも含まれているため、該オブジェクトが転送先のノードで最初に実行する命令は転送元ノードで最後に実行した命令の次のものとなる。かくして、モバイルエージェント(41、42)はモバイルエージェントの実行環境(インタプリタ)を含む画像処理装置1やクライアント3,8等のネットワークノード間を移動しながら、自らの命令列に記述された処理を遂行する。
【0053】
インタプリタ45が扱うすべてのオブジェクトは、その命令列によって自らを初期化するために必要な処理を定義したオペレーション(以下ではinitializeオペレーションと呼ぶ)を持っている。インタプリタ45は、オブジェクトを生成したとき最初に、このinitializeオペレーションの実装として記述された命令列を実行する。
【0054】
また、モバイルエージェント(41、42)と常駐エージェント(43、44)は、自らの存続に渡って行う一連の処理を定義したオペレーション(以下ではliveオペレーションと呼ぶ)を持つ。インタプリタは、オブジェクトの初期化が済むとこのliveオペレーションの実装として記述された命令列を実行する。
【0055】
liveオペレーションに記述された命令列の実行が終了すると、インタプリタはオブジェクトを削除し、該オブジェクトだけが使用していたメモリ領域をすべて解放する。また、オブジェクトは、他のオブジェクトとメッセージパッシングによって対話することができる。
【0056】
各ノードに存在するインタプリタのメモリ空間はそれぞれのノード毎にまったく異なるものであるため、特に、あるノードにおいてモバイルエージェントが他のエージェントと対話を開始するためには、それに先立ってモバイルエージェントは相手エージェントのオブジェクトヘの参照を獲得しなければならない。この操作は、モバイルエージェントの命令列中で、対話したい相手のオブジェクトを指定するための識別情報を引き数として、インタプリタが提供する組み込みオペレーションである対話要求オペレーション(以下ではmeetオペレーションと呼ぶ)を呼び出すことで実現できる。
【0057】
ここで、相手オブジェクトを指定するための識別情報は、ユニークなオブジェクト識別子、あるいはオブジェクトが属するクラスの識別子などの該当するオブジェクトの条件を示す情報である。
【0058】
meetオペレーションに成功すると、モバイルエージェントは相手オブジェクトの参照を得、これを用いて相手オブジェクトのオペレーションを実行できるようになる。すなわち、メッセージの対話が可能となる。
【0059】
たとえば、図4において、他のノードから移動してきたモバイルエージェント41やモバイルエージェント42は、常駐エージェントであるプリンタ制御オブジェクト43やイメージスキャナオブジェクト44とmeetすると、相手の公開されたデータにアクセスし、公開されたオペレーションを呼び出すことができるようになる。
【0060】
したがって、クライアント3において生成、起動されたモバイルエージェント41、42は、画像処理装置1のインタプリタに移動して、そこでネットワークを介さず、直接、画像処理装置1のプリンタ制御オブジェクト43やイメージスキャナ制御オブジェクト44と対話することにより、画像処理装置1で所望の動作、つまりスキャナによる画像読み取りや画像記録を実行することができる。
【0061】
以下、図6以降のフローチャートを参照して上記構成における動作につき説明する。以下では、画像記録を例に説明するが、同様の制御により、スキャナによる画像読み取りなどの処理を実行できるのはもちろんである。
【0062】
図6は、本実施例に係るモバイルエージェントのliveオペレーションを実装する命令列の処理手順を示すフローチャートである。
【0063】
クライアント3で起動したモバイルエージェントは、ステップS161でクライアントマシンのローカルなファイルシステムからユーザが指定した印刷すべきファイルをオープンし、それを自らの属性の1つであるバッファに読み出す。
【0064】
次にステップS162で、画像処理装置1を宛先とするgoオペレーションで画像処理装置上のインタプリタヘ移動する。この際、命令列とともに、オブジェクト内の印刷すべきデータも図5の形式によりエンコードされて画像処理装置に転送される。また、エージェントの移動が完了すると、クライアント3上のインタプリタはこのモバイルエージェントオブジェクトを内部テーブルから削除し、このオブジェクトを利用していたメモリ空間等の資源を解放する。
【0065】
ステップS163は、画像処理装置1のメモリ上でインタプリタ45により移動したモバイルエージェントがデコードされ、その実行が開始される。そして、モバイルエージェントは画像処理装置1のインタプリタに常駐するプリンタ制御オブジェクトとの対話をインタプリタ45に要求する。
【0066】
ステップS164では、プリンタ制御オブジェクト44の平均利用頻度獲得オペレーションを呼び出し、プリンタエンジンの最近の平均利用頻度を獲得する。
【0067】
ステップS165では、この結果を所定の利用頻度と比較し、最近の利用頻度が十分に低いかどうかの判定を行う。例えば獲得した最近1時間の平均利用頻度が2〜3回/時間であり、命令列に埋め込まれた閾値の定数が0.5回/時間であれば、この判定結果は偽となりステップS166に進む。
【0068】
ステップS166では、組み込みオペレーションであるsleepによって、命令列に埋め込まれた待ち時間(例えば30分間)の実行休止を行う。実行休止時間が経過すると、命令列の実行を再開し、ステップS164に戻り、その時点での最近の平均利用頻度の獲得と判定を再度行う。
【0069】
一方、ステップS165の判定において、例えば最近1時間の平均利用頻度が0回であり、命令列に埋め込まれた閾値の定数が0.5回/時間であれば、判定結果は真となり、ステップS167に進む。
【0070】
ステップS167では、ステップS162でモバイルエージェントの属性たる自己のバッファ内に格納している印刷データ(クライアント3で格納されたもの)を引数として、プリンタ制御オブジェクト44のプリント要求オペレーションを呼び出す。この結果、プリンタ制御オブジェクトのプリント要求オペレーションの実装に応じた処理がプリンタ17で実行され、該データのプリントが行われる。プリンタ制御オブジェクト44に解釈させ、プリントさせるデータの形式は任意であるが、たとえば、PostScript や LIPS などの PDL が考えられる。
【0071】
ステップS167が完了すると、liveオペレーションが終了し、インタプリタ45はこのモバイルエージェントオブジェクトを内部テーブルから削除し、このオブジェクトが利用していたメモリ空間等の資源を解放する。
【0072】
上記の処理により、クライアント3は、画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信することにより、後は直接、画像処理装置と対話せずデータを印刷できる。しかも、図6の処理によれば、優先度の低いプリントデータを画像処理装置1が空いている時間に自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【0073】
図7〜図9はモバイルエージェントのliveオペレーションの異なる実施例を示す。
【0074】
図7は、モバイルエージェントのliveオペレーションにおいて用紙の量に応じて記録出力を制御する例である。図7は図6とステップS174、S176のみが異なるもので、モバイルエージェントが画像処理装置1のインタプリタに移動した後に行う画像処理装置の状態獲得と処理の続行判定を変更した例である。
【0075】
ステップS174ではプリント用紙の残量を獲得し、ステップS176でプリントを用紙の量が十分であればステップS167でプリント処理を行う。
【0076】
図7の処理によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、優先度の低い大量のプリントデータをプリンタの紙が十分に補充されるまで待って自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【0077】
図8は、モバイルエージェントのliveオペレーションにおいてクライアント側から指定した時刻に応じて記録出力を行なう例である。
【0078】
図8のステップS184では画像処理装置1内の図示しない時計回路から現在の時刻を獲得し、ステップS186は、命令列に指定された時刻を過ぎていればステップS167でプリント処理を行う。この時刻指定は、命令列に指定データを含めることにより、クライアント側で行う。
【0079】
図8の処理によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信することにより、後は直接画像処理装置と対話せずに、優先度の低い大量のプリントデータを夜中になるのを待って自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【0080】
次に図9は、モバイルエージェントのliveオペレーションにおいて画像処理装置1のプリンタエンジンの定着温度に応じて記録出力を制御する例である。
【0081】
図9のステップS194では定着部207(図3)の現在の温度を獲得し、ステップS197は、命令列に指定された温度を超えていれば(定着温度が充分であれば)プリント処理を行う。
【0082】
本実施例によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、特に装置の立ち上げ時などに装置の準備が整うまで待ってから自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理をわかりやすく実現できる。
【0083】
以上説明したように、本実施例によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、優先度の低いプリントデータをプリンタが空いている時間に自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、しかもこの処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【0084】
なお、以上では、画像処理装置1の状態に基づく判定による処理として「優先順位の低いプリントを装置の利用頻度が低くなったら処理する」(図6)および、「量の多いプリントを用紙の量が十分になったら処理する」(図7)、「時刻が指定時刻になったら処理する」(図8)、「定着部207の温度が指定温度よりも高くなったら処理する」(図9)構成を示したが、モバイルエージェントが移動先のOA装置において実行する制御は上記に限定されるものではなく、たとえば、モバイルエージェントの実行に際して、画像記録装置のインタープリタやプリンタ制御オブジェクトのバージョン情報などを参照することにより、異なる方法でプリンタエンジンを制御する、などの動的な変更が可能であり、モバイルエージェントの実装によって種々の所望の制御を行うことが可能であり、これは本実施例の拡張性の高さを示すものである。
【0085】
また、以上では、画像記録を例に説明したが、同様の制御により、スキャナによる画像読み取りなどの処理を実行できるのはもちろんであり、その場合、クライアントから移動してきたモバイルエージェントの制御によりスキャナによる画像読み取りを行ない、再度goオペレーションによりクライアントに移動することにより、読み取られた画像をクライアントに運ぶことも可能となる。
【0086】
また、画像の記録、読み取りのみならず、画像データに対する種々の変換処理、たとえば、画像の変倍、中間調処理、画像ファイルフォーマットの変換などの任意の変換処理を行なう画像処理装置において、目的の画像変換処理を上記同様のモバイルエージェント制御により実施できるのはいうまでもない。
【0087】
また、本発明においては、制御対象である画像記録装置の動作中を通じてコネクションを張り続ける必要がないため、制御のために利用するネットワークのトラフィックを抑えることができる。
【0088】
また、モバイルエージェントのインタープリタ部分は、クライアントおよびサーバとしての画像記録装置の間で互換性がありさえすれば良く、クライアントおよびサーバのオペレーティングシステムに依存せずに記録処理を実行することができる。
【0089】
しかも、モバイルエージェントは、画像記録装置のプリンタ制御オブジェクトが理解する命令列であれば任意の命令列を含めることができる。プリンタ制御を行なう命令列自体が従来技術では画像記録装置内に固定的に格納されていたために拡張性が乏しかったが、本実施例によれば、画像記録装置のプリンタ制御オブジェクトが理解する命令列であれば任意の命令列を実行でき、また、モバイルエージェントの実行に際して画像記録装置のインタープリタやプリンタ制御オブジェクトのバージョン情報などを参照することにより、異なる方法でプリンタエンジンを制御する、などの動的な変更が可能であり、その場合もクライアント側との通信は一切不要である。
【0090】
また、本実施例によれば、ローカルエリアネットワーク内だけでなく、図1のリモートクライアント8などから、ワイドエリアネットワーク、インターネットのような比較的バンド幅の狭いネットワークを介して、画像処理装置1を制御しようとしたとしても、十分にしかも容易に装置の制御が可能である。さらに、断続的な接続であっても十分に機能するために、リモートクライアント8がダイアルアップ型のネットワーク接続によりワイドエリアネットワークに接続しているような場合でも十分にしかも容易に画像処理装置1を制御することができる。
【符号の説明】
【0091】
1 画像処理装置
2 ローカルエリアネットワーク
3 クライアント
4 ローカルルータ
5 ワイドエリアネットワーク
6 リモートネットワーク
7 リモートルータ
8 リモートクライアント
11 ネットワークインタフェースカード
12 プロセッサ
13 ワークメモリ
14 不揮発性メモリ
15 エンジン制御回路
16 画像メモリ
17 プリンタ
18 イメージスキャナ
19 プロセッサバス
20 イメージバス

【特許請求の範囲】
【請求項1】
画像処理装置のハードウェアリソースを制御するための制御プログラムを読み込む画像処理装置であって、
(1)OS(2)前記制御プログラムを動作させるための実行環境であって、かつそのOS上で動き、かつ前記制御プログラムを解釈するインタプリタ(3)前記画像処理装置を制御するドライバプログラム(4)ライブラリ を記憶する記憶手段を有し、
前記ドライバプログラムは、印刷ユニット、およびスキャナユニットの内、少なくとも1つを含むハードウェアリソースユニットを操作制御し、
前記ライブラリは、(a)制御プログラムとドライバプログラムとの間に定義され(b)
前記制御プログラムによって使われ、(c)インタプリタにより解釈されることを特徴とする画像処理装置。
【請求項2】
前記制御プログラムは、前記インタプリタが解釈するライブラリを介して、ハードウェアリソースユニットを制御するオペレーションを有する。
【請求項3】
画像処理装置のハードウェアリソースを制御するための制御プログラムを読み込む画像処理装置を制御する制御方法であって、
記憶手段は、(1)OS(2)前記制御プログラムを動作させるための実行環境であって、かつそのOS上で動き、かつ前記制御プログラムを解釈するインタプリタ(3)前記画像処理装置を制御するドライバプログラム(4)ライブラリ を記憶し、
前記ドライバプログラムは、印刷ユニット、およびスキャナユニットの内、少なくとも1つを含むハードウェアリソースユニットを操作制御し、
前記ライブラリは、(a)制御プログラムとドライバプログラムとの間に定義され(b)
前記制御プログラムによって使われ、(c)インタプリタにより解釈されることを特徴とする画像処理装置を制御する制御方法。
【請求項4】
請求項3に記載の制御方法を画像処理装置に実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−78114(P2011−78114A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2010−251896(P2010−251896)
【出願日】平成22年11月10日(2010.11.10)
【分割の表示】特願2010−91691(P2010−91691)の分割
【原出願日】平成10年3月27日(1998.3.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】