(57)【要約】【課題】  クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を提供する。【解決手段】  画像処理装置の制御ソフトウェアの上位層に、モバイルエージェントを送受信、符号／復号化、解釈、実行するインタープリタ４５を配し、コンピュータやワードプロセッサなどのクライアント装置から移動してきたモバイルエージェント４１、４２…を実行する。【選択図】  図４
2010218561.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置が有する複数の機能を操作するための所定の関数群を記憶する記憶手段と、
符号化されたコードにより表現される命令列を含む制御プログラムを解釈する解釈手段と、
前記解釈手段が前記制御プログラムに含まれる命令列の解釈処理を実行させるのにしたがい、前記記憶手段が記憶した、前記制御プログラムに含まれるオブジェクト群と画像処理装置が有する機能を実行するデバイスドライバプログラムとの間にインタフェースとして定義される関数群を用いて、画像処理装置が有する機能を実行するデバイスドライバプログラムを実行する実行手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記画像処理装置がプリント機能、または、スキャナ機能、または、ネットワークインタフェース機能を有し、前記記憶手段がプリント機能を制御するプログラミングインタフェースであるプリンタ制御ライブラリ、または、スキャナ機能を制御するプログラミングインタフェースであるスキャナライブラリ、または、ネットワークインタフェース機能を制御するプログラミングインタフェースであるネットワークインタフェースライブラリを前記関数群として記憶しており、前記解釈手段における前記命令列の解釈結果にしたがって、前記のプリンタ制御ライブラリ、または、スキャナ機能を制御するスキャナ制御ライブラリ、ネットワークインタフェース機能を制御するネットワークインタフェースライブラリの少なくとも一つを呼び出して、前記画像処理装置のプリント機能を制御するドライバプログラム、または、スキャナ機能を制御するドライバプログラム、または、ネットワークインタフェース機能を制御するドライバプログラムの少なくともひとつを前記実行手段が実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
所定の画像処理を行なう画像処理部を有する画像処理装置において、
第一の制御プログラムが制御する前記画像処理部の状態を示す情報を、前記第一の制御プログラムに対して第二の制御プログラムが要求して取得する取得手段と、
前記取得手段が取得した前記画像処理部の状態を示す情報に応じて、前記第二の制御プログラムから第一の制御プログラムに対して、画像処理装置の操作指示を出力する出力手段と、
前記出力手段が出力したメッセージが示す操作指示に対応する前記画像処理装置の操作を前記第二の制御プログラムを実行して実行する実行手段とを備えることを特徴とする画像処理装置。
【請求項４】
前記取得手段は、前記画像処理装置の状態を示す情報を繰り返し取得することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第一の制御プログラムは、スキャナ、若しくは、ネットワークインタフェース装置、若しくは、プリンタ装置の少なくともひとつを制御する制御プログラムであることを特徴とする請求項３又は４に記載の画像処理装置。
【請求項６】
前記取得手段は、プリンタ装置の状態を示す情報を取得し、前記出力手段は、プリンタ装置の状態を示す情報に応じて、第二の制御プログラムからプリンタ制御オブジェクトである第一の制御プログラムに対して、印刷指示命令を出力手段が出力することを特徴とする請求項３乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
複数の画像処理機能を操作するための所定の関数群を記憶する記憶手段を有する画像処理装置の制御方法において、
符号化されたコードにより表現される命令列を含む制御プログラムを解釈する解釈ステップと、
前記解釈ステップが前記制御プログラムに含まれる命令列の解釈処理を実行させるのにしたがい、前記記憶手段が記憶した、前記制御プログラムに含まれるオブジェクト群と画像処理装置が有する機能を実行するデバイスドライバプログラムとの間にインタフェースとして定義される関数群を用いて、画像処理装置が有する機能を実行するデバイスドライバプログラムを実行する実行ステップとを含むことを特徴とする画像処理装置の制御方法。
【請求項８】
前記画像処理装置がプリント機能、または、スキャナ機能、または、ネットワークインタフェース機能を有し、前記記憶手段がプリント機能を制御するプログラミングインタフェースであるプリンタ制御ライブラリ、または、スキャナ機能を制御するプログラミングインタフェースであるスキャナライブラリ、または、ネットワークインタフェース機能を制御するプログラミングインタフェースであるネットワークインタフェースライブラリを前記関数群として記憶しており、前記解釈ステップにおける前記命令列の解釈結果にしたがって、前記のプリンタ制御ライブラリ、または、スキャナ機能を制御するスキャナ制御ライブラリ、ネットワークインタフェース機能を制御するネットワークインタフェースライブラリの少なくとも一つを呼び出して、前記画像処理装置のプリント機能を制御するドライバプログラム、または、スキャナ機能を制御するドライバプログラム、または、ネットワークインタフェース機能を制御するドライバプログラムの少なくともひとつを前記実行ステップが実行することを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項９】
所定の画像処理を行なう画像処理部を有する画像処理装置の制御方法において、
第一の制御プログラムが制御する前記画像処理部の状態を示す情報を、前記第一の制御プログラムに対して第二の制御プログラムが要求して取得する取得ステップと、
前記取得ステップが取得した前記画像処理部の状態を示す情報に応じて、前記第二の制御プログラムから第一の制御プログラムに対して、画像処理装置の操作指示を出力する出力ステップと、
前記出力ステップが出力したメッセージが示す操作指示に対応する前記画像処理装置の操作を前記第二の制御プログラムを実行して実行する実行ステップとを含むことを特徴とする画像処理装置の制御方法。
【請求項１０】
前記取得ステップは、前記画像処理装置の状態を示す情報を繰り返し取得することを特徴とする請求項９に記載の画像処理装置の制御方法。
【請求項１１】
前記第一の制御プログラムは、スキャナ、若しくは、ネットワークインタフェース装置、若しくは、プリンタ装置の少なくともひとつを制御する制御プログラムであることを特徴とする請求項９又は１０に記載の画像処理装置の制御方法。
【請求項１２】
前記取得ステップは、プリンタ装置の状態を示す情報を取得し、前記出力ステップがプリンタ装置の状態を示す情報に応じて、第二の制御プログラムからプリンタ制御オブジェクトである第一の制御プログラムに対して、印刷指示命令を出力することを特徴とする請求項９乃至１１のいずれか１項に記載の画像処理装置の制御方法。
【請求項１３】
複数の画像処理機能を操作するための所定の関数群を記憶する記憶手段を有する画像処理装置の制御プログラムを格納した記憶媒体において、
符号化されたコードにより表現される命令列を含む制御プログラムを解釈する解釈ステップと、
前記解釈ステップが前記制御プログラムに含まれる命令列の解釈処理を実行させるのにしたがい、前記記憶手段が記憶した、前記制御プログラムに含まれるオブジェクト群と画像処理装置が有する機能を実行するデバイスドライバプログラムとの間にインタフェースとして定義される関数群を用いて、画像処理装置が有する機能を実行するデバイスドライバプログラムを実行する実行ステップとを格納したことを特徴とする画像処理装置の制御プログラムを格納した記憶媒体。
【請求項１４】
所定の画像処理を行なう画像処理部を有する画像処理装置の制御プログラムを格納した記憶媒体において、
第一の制御プログラムが制御する前記画像処理部の状態を示す情報を、前記第一の制御プログラムに対して第二の制御プログラムが要求して取得する取得ステップと、
前記取得ステップが取得した前記画像処理部の状態を示す情報に応じて、前記第二の制御プログラムから第一の制御プログラムに対して、画像処理装置の操作指示を出力する出力ステップと、
前記出力ステップが出力したメッセージが示す操作指示に対応する前記画像処理装置の操作を前記第二の制御プログラムを実行して実行する実行ステップとを含むことを特徴とする画像処理装置の制御プログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに対してデータの送信および受信を行うインタフェース手段と、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体に関するものである。
【背景技術】
【０００２】
従来より、複写機、ファクス、プリンタ、イメージスキャナ、画像ファイルシステム、高機能電話機などのＯＡ装置が広く用いられている。
【０００３】
従来、上記のようなＯＡ装置の多くはネットワークに接続されず単独の機器内に閉じた機能を提供していた。近年ではこれらこれまでスタンドアロンで利用されてきたＯＡ装置がイーサネット（登録商標）等のネットワークに接続され、クライアントである複数のコンピュータなどから共用できる製品が提供され始めている。
【０００４】
たとえば、複写機、ファクス、プリンタ、イメージスキャナなどの画像記録装置に関しては、これらをネットワークを介して複数のクライアントから共有する技術は比較的早くから実用化されている。
【０００５】
ただし、従来技術では、クライアントからネットワークを介してこのようなＯＡ装置を利用するにあたり、従来は処理の間中常にネットワーク経由の接続性が確保されていることを前提とする手法がとられている。
【０００６】
たとえば、クライアントであるワークステーションやパーソナルコンピュータや携帯情報端末などの上で実行されるプログラムがＯＡ装置が提供するサービスを利用するときには、ＯＡ装置上で実行されるサーバプログラムに対して所定のプロトコル、たとえばＬＰＲやＰＡＰなどのネットワークプロトコルに従って、処理要求や処理に必要なデータの送信を行うことにより、目的とする機器の動作を制御し、さらに返答や必要ならばデータを受信する。
【０００７】
クライアントはＯＡ装置からの返答の内容を判定し、それに応じて新たな指示要求をＯＡ装置に送信することを繰り返す。このようなサーバクライアント方式は、ＴＣＰ／ＩＰなど種々のネットワークプロトコルの上に実装され、用いられているが、サービスが処理されている間を通じて、サーバ、クライアントの間で対話的なやりとりを続ける必要があった。
【０００８】
一方、純粋にコンピュータ同士からなるネットワークにおける分散計算の分野では、最近になって、これまで盛んに研究と実現が行われてきたプロトコルによる対話を繰り返して分散計算を行うリモートプロシージャコール等の技術から発展して、実行可能なプログラムオブジェクトそのものがネットワークを介して移動して分散計算を行うモバイルエージェントと呼ばれる技術が提案されてきている。
【０００９】
モバイルエージェントによる分散計算システムの実現例としては米国特許５６０３０３号のＧｅｎｅｒａｌ  Ｍａｇｉｃ社のＴｅｌｅｓｃｒｉｐｔや、ＩＢＭ東京基礎研究所のＡｇｌｅｔｓなどさまざまな提案がよく知られている。
【００１０】
モバイルエージェントは、命令列とその実行に必要なデータから成り、一の実行環境に限定されずにある実行環境から他の実行環境に移動して専用のインタープリタ上で実行される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平０９−３３０２６０号公報
【特許文献２】特開平０６−２９５２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ところが、これまでのネットワークプロトコルを介して行うＯＡ装置の制御には、装置が提供するサービスの遠隔制御を行うクライアントプロセスとＯＡ装置が提供するサービスを実現するために装置の物理的な機構を制御するためのサーバプロセスとが、離れたプロセス実行環境上でそれぞれ動作するため、以下にあげるような問題があった。
【００１３】
すなわち、クライアントプロセスはサーバプロセスに対してサービスの要求やサービスの処理に必要なデータの送信を行い、サーバプロセスはこの要求に対応するＯＡ装置の物理的な機構の制御とクライアントプロセスヘの応答と必要に応じて処理結果の返信を行うが、この対話的なやりとりは、要求するサービスをきめこまかく制御しようとすればそれに応じて何回も繰り返さなければならなくなる。ネットワークによって共有されるＯＡ装置の提供するサービスをクライアントからきめこまかく制御することは最近とみに重視されている要請であるが、従来の制御プロトコルによる対話的な情報のやりとりでこの要請に応えようとすると、それだけネットワークの混雑を増すことになる。したがってユーザはより性能が高く高価なネットワークインフラストラクチャを使わなければならなくなり、経済的に不利である。
【００１４】
また第２に、従来のやり方でクライアントからＯＡ装置を細かく制御しようとすると、装置が提供するサービスを実現するためのプロセス、たとえば、プリンタ装置の場合にはＰＤＬ（ページ記述言語）の解釈と展開、給紙、作像、そして出力用紙の排紙などの間中、上記のようなクライアントプロセスとサーバプロセスとの制御プロトコルによる対話を維持しつづけなければならない。
【００１５】
これはＯＡ装置にとって、サービスを提供するための物理的な機構の制御と、ネットワークを介する通信とを、同時に並行してこなさなければならないことを意味し、負担が大きい。この負担は、ＯＡ装置が複数のクライアントからの要求に対してサービスを提供するマルチクライアント型の装置であった場合、特に顕著なものとなる。サービスを実現するために装置の持つ物理的な機構を制御する間、ネットワークを介した通信のコネクションを維持するためには、装置のプロセッサはより高性能なものが必要とされメモリもより大容量なものが必要とされるなど、装置本体のコストアップの原因となっている。
【００１６】
また第３に、ＯＡ装置を制御するための一連の対話処理がプロトコルによって実現される方法では、装置を制御するための命令体系をあらかじめコマンドプロトコルとして設計し実装しておかなければならないため、将来的にその装置の新たな利用方法が拡張されたときにその新しいサービスを享受するためには、コマンドプロトコルを拡張しクライアントプロセスとサーバプロセスの両方ともがこの新しいコマンドプロトコルに対応するように変更（プログラムのバージョンアップ）をしなければならない。このことはユーザにとって手間であるばかりでなく、特に、従来のＯＡ装置に内蔵されているサーバプロセスのためのプログラムは、一般にファームウェアと呼ばれ不揮発性のメモリ等に置かれ、プログラムの更新には多大なコストがかかるかあるいはまったく不可能なことが多い。したがって、ＯＡ装置が提供するサービスの拡張性に乏しい。
【００１７】
また第４に、分散計算の分野で提案されはじめているモバイルエージェントは、あくまでコンピュータ上の分散プログラミングの手法であって、コンベンショナルなＯＡ装置に近年要求されている前述のさまざまな要求に完全に応えることはできない。すなわち、プリントサーバに代表されるようなＯＡ装置の制御を専門的に行うサーバコンピュータ上にモバイルエージェントの実行システムを実現することで要求にある程度応えることはできるものの、このサーバコンピュータとＯＡ装置間にネットワークあるいはそれに代わる通信インフラストラクチャが必要であることにかわりはない。したがって、その通信媒体上のトラフィックも相変わらず問題であるし、ＯＡ装置側にとってのインタフェース処理の負荷も減らない。さらに、ＯＡ装置の制御を専門的に行うサーバコンピュータと装置との間の何らかの通信インフラストラクチャを介して両者がやりとりする制御体系が従来通りの対話的なプロトコルによるものであれば、装置そのものが提供するサービスの拡張性が乏しい問題も解決しない。また、ユーザにとっては、新たに装置専用のサーバコンピュータを用意しなければならないことになって経済的にも設置面積的にも不利益となる。
【００１８】
本発明の課題は、かかる問題点を解決し、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を提供することにある。
【課題を解決するための手段】
【００１９】
本発明では、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、
画像処理装置は複数の機能を操作するための所定の関数群を記憶する記憶手段を有し、
さらに、符号化されたコードにより表現される命令列を含む制御プログラムを解釈する解釈手段ないし解釈ステップと、
前記解釈手段ないし解釈ステップが前記制御プログラムに含まれる命令列の解釈処理を実行させるのにしたがい、前記記憶手段が記憶した、前記制御プログラムに含まれるオブジェクト群と画像処理装置が有する機能を実行するデバイスドライバプログラムとの間にインタフェースとして定義される関数群を用いて、画像処理装置が有する機能を実行するデバイスドライバプログラムを実行する実行手段ないし実行ステップとを用いる構成を採用した。
【００２０】
あるいは、所定の画像処理を行なう画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、
第一の制御プログラムが制御する前記画像処理部の状態を示す情報を、前記第一の制御プログラムに対して前記第二の制御プログラムが要求して取得する取得手段ないし取得ステップと、
前記取得ないし取得ステップが取得した前記画像処理部の状態を示す情報に応じて、前記第二の制御プログラムから第一の制御プログラムに対して、画像処理装置の操作指示を出力する出力手段ないし出力ステップと、
前記出力手段ないし出力ステップが出力したメッセージが示す操作指示に対応する前記画像処理装置の操作を前記第二の制御プログラムを実行して実行する実行手段ないし実行ステップとを用いる構成を採用した。
【発明の効果】
【００２１】
本発明によれば、上記構成を採用することにより、クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明を適用可能なネットワークシステムの構成を説明するブロック図である。
【図２】図１の画像処理装置の構成を示したブロック図である。
【図３】図２のプリンタとスキャナの構成を示した概略断面図である。
【図４】図２のプロセッサによって処理されるソフトウェアの構成を示した階層図である。
【図５】図４のモバイルエージェントがネットワーク転送のために符号化された構造を示した説明図である。
【図６】本発明のモバイルエージェントの命令列により行なわれる第１の処理手順を示すフローチャートである。
【図７】本発明のモバイルエージェントの命令列により行なわれる第２の処理手順を示すフローチャートである。
【図８】本発明のモバイルエージェントの命令列により行なわれる第３の処理手順を示すフローチャートである。
【図９】本発明のモバイルエージェントの命令列により行なわれる第４の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照して、発明を実施するための最良の形態の一実施例につき説明する。
【実施例１】
【００２４】
図１は、本発明を適用可能なＯＡ装置として画像処理装置を含むオフィスシステムの構成を示す図である。
【００２５】
図１において、符号１は画像処理装置である。２は画像処理装置に接続されたローカルエリアネットワークであり、イーサネット（登録商標）などからなり、装置と他の装置あるいはクライアントの相互の通信を実現する。３はパーソナルコンピュータ、ワークステーション、ワードプロセッサなどの情報処理装置などのクライアントであり、一般にユーザが入力するキーボード、マウス等の入力装置と、ユーザに情報を出力するディスプレイ等の出力装置を備え、ローカルエリアネットワーク２に接続している。
【００２６】
符号４はルータであり、ローカルエリアネットワーク２と他のネットワークとを接続し両者に接続する機器間の通信を実現する。ＴＣＰ／ＩＰ  の場合、通常、異なるネットワークアドレスを持つネットワーク間でデータフレームを相互に転送する機能を受け持つ。
【００２７】
符号５は、インターネット、イントラネットなどのワイドエリアネットワークであり、多数のネットワークを接続した企業専用線網やインターネットあるいはインターネット上のヴァーチャルプライベートネットワーク等で、さまざまなローカルエリアネットワークを相互接続する。
【００２８】
符号６は第２のローカルエリアネットワークであり、ワイドエリアネットワーク５を介して第１のローカルエリアネットワークと相互接続している。符号７は第２のルータであり、ローカルエリアネットワーク６とワイドエリアネットワーク５を接続する。８はリモートクライアントであり、ローカルエリアネットワーク６に接続しており、ワイドエリアネットワーク５を経由して装置１に遠隔地から接続することができる。
【００２９】
図２は、図１の画像処理装置１の内部構造を示すブロック図である。図２において、符号１１はローカルエリアネットワーク２とデータフレームの送受信を行うネットワークインタフェースで、イーサネット（登録商標）インタフェースなどから構成される。符号１２は各種演算処理を行うプロセッサ（ＣＰＵ，ＭＰＵ）である。符号１３はプロセッサが実行するプログラムと実行に係るデータを格納するワークメモリである。符号１４はプロセッサが実行するプログラムと実行に係るデータの初期値および電源切断を経た後も保存が必要なデータ等を格納する不揮発性メモリ（図示しないＲＯＭ，Ｆｌａｓｈ  ＲＯＭ，ＮＶＲＡＭ，ＨＤＤ等のいずれかあるいはいくつかから構成される）である。
【００３０】
符号１５は、ハードウェアによって画像処理を行う画像処理エンジンを制御するためのエンジン制御回路である。符号１６は画像データを格納する画像メモリである。符号１７は転写紙に画像データに対応する画像を形成する画像処理エンジンたるプリンタである。符号１８は原稿から画像を読み取り画像データをつくる画像処理エンジンたるイメージスキャナである。符号１９はプロセッサバスであり、ネットワークインタフェース１１、プロセッサ１２、ワークメモリ１３、不揮発性メモリ１４、エンジン制御回路１５、画像メモリ１６を接続しデータや制御情報、およびエンジンのステータス等のやり取りを行なう。２０はイメージバスであり、エンジン制御回路１５、画像メモリ１６、プリンタ１７、イメージスキャナ１８とを接続し画像データのやり取りを行なう。
【００３１】
図３は、図２の画像処理装置１のプリンタ部１７、およびイメージスキャナ部１８の構成を示している。画像記録エンジンは種々の記録方式に基くものであってよいが、ここでは電子写真方式の画像記録エンジンを考える。
【００３２】
図３において、符号１０１は原稿給送装置で、原稿台上に積載された原稿を１枚ずつ順次原稿台ガラス１０２面上に搬送する。該原稿が搬送されると、イメージスキャナ部のランプ１０３が点灯、かつスキャナユニット１０４が移動して原稿を照射する。原稿の反射光は、ミラー１０５、１０６、１０７を介してレンズ１０８を通過し、その後ＣＣＤイメージセンサ１０９に入力される。
【００３３】
プリンタ部２に入力された信号は、露光制御部２０１により光信号に変換されて画像信号に従い感光体２０２を照射する。照射光によって感光体２０２上に作られた潜像は現像器２０３によってトナー現像される。上記現像とタイミングを併せて被転写紙積載部２０４、もしくは２０５より転写紙が搬送され、転写部２０６に於いて、上記現像された像が転写される。転写された像は定着部２０７にて被転写紙に定着された後、排紙部２０８より装置外部に排出される。排紙部から出力された転写紙は、ソータ２２０でソート機能が働いている場合には、各ビンに、またはソート機能が働いていない場合には、ソータの最上位のノンソートビンに排出される。図２の制御回路は制御基板１２４上に実装される。
【００３４】
図４は、画像処理装置１のワークメモリ１３に記憶されたデータ構造とプログラムコード（不揮発性メモリ１４がＲＯＭ等であればプログラムコードは不揮発性メモリ１４だけに存在してもよい）をプロセッサ１２が処理するソフトウェアの構造を示す模式的な階層図である。
【００３５】
図４において、各階層は下位の階層が提供するサービスを上位の階層が利用する関係になっている。最下層はオペレーティングシステム５０であり、プログラムの実行コンテクストの管理やメモリ管理等を行う階層である。オペレーティングシステムの中には、ネットワークインタフェースドライバ５１、プリンタ制御ドライバ５２、イメージスキャナ制御ドライバ５３の３つのデバイスドライバが組み込まれ、連携して機能している。
【００３６】
ネットワークインタフェースドライバ５１はネットワークインタフェース１１を制御するソフトウェアである。プリンタ制御ドライバ５２はエンジン制御回路１５と画像メモリ１６を介して、プリンタ１７を制御するソフトウェアである。
【００３７】
イメージスキャナ制御ドライバ５３はエンジン制御回路１５と画像メモリ１６を介して、イメージスキャナ１８を制御するソフトウェアである。
【００３８】
最下位から２番目の層は各種のライブラリで、後述のインタープリタ４５や他のアプリケーションプログラムと静的あるいは動的にリンクされ、オペレーティングシステム５０とアプリケーションプログラムの仲立ちをする。このうちスレッドライブラリ４６はそれを利用するプログラムにスレッド機能を提供するライブラリである。スレッドとは、ソフトウェアの並列実行の単位であり、単一プロセス内の複数のスレッドは異なる実行コンテキスト（プログラムカウンタ、スタック、レジスタ値等）を持つが、メモリ空間等は共有する。スレッドのコンテキスト切り替えはプロセス（実行中のプログラム）のコンテキスト切り替えに比べ処理の量が少なく済むため、ライトウェイトスレッドと呼ぶこともある。
【００３９】
ネットワークインタフェースライブラリ４７は、ネットワークインタフェースドライバ５１を利用してネットワークを介するデータ送信とデータ受信を実現するためのライブラリである。
【００４０】
プリンタ制御ライブラリ４８は、プリンタ制御ドライバの機能を利用してプリンタ制御ＡＰＩ（アプリケーションプログラミングインタフェース）を提供するライブラリである。
【００４１】
イメージスキャナ制御ライブラリ４９は、イメージスキャナ制御ドライバの機能を利用してイメージスキャナ制御ＡＰＩを提供するライブラリである。
【００４２】
最下位から３段目の層は、インタプリタ４５である。インタプリタ４５はモバイルエージェント等のオブジェクトが動作するためのオブジェクト実行環境を提供する。本実施例における「オブジェクト」とは、広く知られたオブジェクト指向パラダイムにおけるオブジェクトのサブセットとなっている。すなわち、問題領域のある概念に係るデータと処理とをひとまとめにしたソフトウェア構造である。各オブジェクトは自律的に存在し、他のオブジェクトと通信（メッセージパッシング）し合いながら、オブジェクト群全体として並列に動作することにより一連の処理が達成される。
【００４３】
インタプリタ４５内部には、インタプリタ上で動作する各オブジェクトに断続的にプロセッサの処理時間を与えるオブジェクトスケジューラがある。オブジェクトスケジューラは、各オブジェクトの処理が仮想的に並列に進行するようにスレッドライブラリ４６を利用する。
【００４４】
また、インタプリタ内部にはオブジェクトデコーダ／エンコーダがある。エンコーダは、メモリ上に実行可能な形態で展開されたオブジェクトの命令列（スクリプト）およびデータを、ネットワークを介して転送可能なビット列に、もとメモリ上にあった構造を実質的に復元可能な形で符号化する。
【００４５】
デコーダはネットワークを介して転送されたビット列を、メモリ上に実行可能な形態に展開されたオブジェクトに復号化する。この符号化／復号化の過程は、ネットワーク上のトラフィックを軽減するためになんらかのデータ圧縮／復元過程を含んでいてよい。データ圧縮／復元過程を含めることによって、クライアントと画像記録装置の間で転送されるデータ量をさらに減少することができ、ネットワーク上のトラフィック軽減に役立ち、モデムやＴＡによるダイヤルアップ接続などによるネットワークの狭い帯域でも充分実用的なスループットを得ることができる。
【００４６】
図５は、オブジェクトが符号化されたネットワークパケットの例である。オブジェクトを符号化したネットワークパケットには、もとのオブジェクトの実行に係るすべてのデータを符号化した部分６１と、もとのオブジェクトの命令列部分６２とが含まれる。なお、ここで説明したインタプリタは画像処理装置１内だけでなく、クライアント３およびクライアント８の中にも備えられている。以下の説明も含め、これらのインタプリタの構造と働きは全く同様である。
【００４７】
再び図４において最上位の層はインタプリタ上で管理および実行される複数のオブジェクトである。
【００４８】
プリンタ制御オブジェクト４３は、プリンタ制御ライブラリを介してプリンタの制御を行うための複数のオペレーションを提供しており、プリンタ１７の代理オブジェクトとして機能する。すなわち、オブジェクトの命令列の中で、プリンタ制御オブジェクト４３のオペレーションを呼び出す（メッセージパッシング）命令を実行すると、該オペレーションの実装の中でオペレーションに対応する制御がプリンタ１７に実施される。同様にプリンタ制御オブジェクト４３から情報を引き出すオペレーションを実行すると、実際のプリンタのステータス情報等を得ることができる。
【００４９】
イメージスキャナ制御オブジェクト４４はイメージスキャナ制御ライブラリを介してイメージスキャナの制御を行うための複数のオペレーションを提供しており、イメージスキャナ１８の代理オブジェクトとして機能する。すなわち、オブジェクトの命令列の中で、イメージスキャナ制御オブジェクトのオペレーションを呼び出す（メッセージパッシング）命令を実行すると、該オペレーションの実装の中でオペレーションに対応する制御がイメージスキャナ１８に実施される。同様にイメージスキャナ制御オブジェクトから情報を引き出すオペレーションを実行すると、実際のイメージスキャナのステータス情報等を得ることができる。
【００５０】
プリンタ制御オブジェクト４３とイメージスキャナオブジェクト４４は常駐エージェントである。すなわち、画像処理装置１の立ち上げ後、インタプリタが処理を開始するとその最初の処理の一環として常駐エージェントを自動的に生成、初期化、起動する。そしてこれら常駐エージェントは、画像処理装置１の動作中を通じて、このネットワーク上のノードの１つとしての画像処理装置１上に存続する（後述するｌｉｖｅオペレーションの実装内部で無限ループを構成している）。
【００５１】
図４において２つ存在するモバイルエージェント４１、４２は、ある仕事のエージェントとしての役割を担うオブジェクトのうち、あるネットワークノード上のインタプリタから別のネットワークノード上のインタプリタヘ移動する性質を持つオブジェクトである。モバイルエージェントは、そのスクリプト中に「移動」を意味するオペレーション（以下ｇｏオペレーションと呼ぶ）を呼び出す命令を含む。
【００５２】
画像処理装置１および図１のクライアント３，８内のインタプリタはモバイルエージェントオブジェクトの命令列の解釈実行中にｇｏオペレーションを発見すると、オブジェクトエンコーダによってその時点の該オブジェクトに含まれるすべての実行に係るデータと命令列とをそれらのデータ構造を復元可能な符号化方法によって符号化し、符号化したパッケージをネットワークパケットとしてｇｏオペレーションの引数に指定されたノード（たとえば画像処理装置１）のインタプリタに宛てて転送する。
【００５３】
転送されたパケットを受け取ったノードのインタプリタ４５は、オブジェクトデコーダによって、そのパケットを実行可能な命令とデータとして該インタプリタが管理するメモリ空間に復号化し、さらにオブジェクトスケジューラのスケジュール対象に参加させる。転送され復号化されたオブジェクトの実行に係るデータ中には、該オブジェクトの次に実行すべき命令の位置を示すデータも含まれているため、該オブジェクトが転送先のノードで最初に実行する命令は転送元ノードで最後に実行した命令の次のものとなる。かくして、モバイルエージェント（４１、４２）はモバイルエージェントの実行環境（インタプリタ）を含む画像処理装置１やクライアント３，８等のネットワークノード間を移動しながら、自らの命令列に記述された処理を遂行する。
【００５４】
インタプリタ４５が扱うすべてのオブジェクトは、その命令列によって自らを初期化するために必要な処理を定義したオペレーション（以下ではｉｎｉｔｉａｌｉｚｅオペレーションと呼ぶ）を持っている。インタプリタ４５は、オブジェクトを生成したとき最初に、このｉｎｉｔｉａｌｉｚｅオペレーションの実装として記述された命令列を実行する。
【００５５】
また、モバイルエージェント（４１、４２）と常駐エージェント（４３、４４）は、自らの存続に渡って行う一連の処理を定義したオペレーション（以下ではｌｉｖｅオペレーションと呼ぶ）を持つ。インタプリタは、オブジェクトの初期化が済むとこのｌｉｖｅオペレーションの実装として記述された命令列を実行する。
【００５６】
ｌｉｖｅオペレーションに記述された命令列の実行が終了すると、インタプリタはオブジェクトを削除し、該オブジェクトだけが使用していたメモリ領域をすべて解放する。また、オブジェクトは、他のオブジェクトとメッセージパッシングによって対話することができる。
【００５７】
各ノードに存在するインタプリタのメモリ空間はそれぞれのノード毎にまったく異なるものであるため、特に、あるノードにおいてモバイルエージェントが他のエージェントと対話を開始するためには、それに先立ってモバイルエージェントは相手エージェントのオブジェクトヘの参照を獲得しなければならない。この操作は、モバイルエージェントの命令列中で、対話したい相手のオブジェクトを指定するための識別情報を引き数として、インタプリタが提供する組み込みオペレーションである対話要求オペレーション（以下ではｍｅｅｔオペレーションと呼ぶ）を呼び出すことで実現できる。
【００５８】
ここで、相手オブジェクトを指定するための識別情報は、ユニークなオブジェクト識別子、あるいはオブジェクトが属するクラスの識別子などの該当するオブジェクトの条件を示す情報である。
【００５９】
ｍｅｅｔオペレーションに成功すると、モバイルエージェントは相手オブジェクトの参照を得、これを用いて相手オブジェクトのオペレーションを実行できるようになる。すなわち、メッセージの対話が可能となる。
【００６０】
たとえば、図４において、他のノードから移動してきたモバイルエージェント４１やモバイルエージェント４２は、常駐エージェントであるプリンタ制御オブジェクト４３やイメージスキャナオブジェクト４４とｍｅｅｔすると、相手の公開されたデータにアクセスし、公開されたオペレーションを呼び出すことができるようになる。
【００６１】
したがって、クライアント３において生成、起動されたモバイルエージェント４１、４２は、画像処理装置１のインタプリタに移動して、そこでネットワークを介さず、直接、画像処理装置１のプリンタ制御オブジェクト４３やイメージスキャナ制御オブジェクト４４と対話することにより、画像処理装置１で所望の動作、つまりスキャナによる画像読み取りや画像記録を実行することができる。
【００６２】
以下、図６以降のフローチャートを参照して上記構成における動作につき説明する。以下では、画像記録を例に説明するが、同様の制御により、スキャナによる画像読み取りなどの処理を実行できるのはもちろんである。
【００６３】
図６は、本実施例に係るモバイルエージェントのｌｉｖｅオペレーションを実装する命令列の処理手順を示すフローチャートである。
【００６４】
クライアント３で起動したモバイルエージェントは、ステップＳ１６１でクライアントマシンのローカルなファイルシステムからユーザが指定した印刷すべきファイルをオープンし、それを自らの属性の１つであるバッファに読み出す。
【００６５】
次にステップＳ１６２で、画像処理装置１を宛先とするｇｏオペレーションで画像処理装置上のインタプリタヘ移動する。この際、命令列とともに、オブジェクト内の印刷すべきデータも図５の形式によりエンコードされて画像処理装置に転送される。また、エージェントの移動が完了すると、クライアント３上のインタプリタはこのモバイルエージェントオブジェクトを内部テーブルから削除し、このオブジェクトを利用していたメモリ空間等の資源を解放する。
【００６６】
ステップＳ１６３は、画像処理装置１のメモリ上でインタプリタ４５により移動したモバイルエージェントがデコードされ、その実行が開始される。そして、モバイルエージェントは画像処理装置１のインタプリタに常駐するプリンタ制御オブジェクトとの対話をインタプリタ４５に要求する。
【００６７】
ステップＳ１６４では、プリンタ制御オブジェクト４４の平均利用頻度獲得オペレーションを呼び出し、プリンタエンジンの最近の平均利用頻度を獲得する。
【００６８】
ステップＳ１６５では、この結果を所定の利用頻度と比較し、最近の利用頻度が十分に低いかどうかの判定を行う。例えば獲得した最近１時間の平均利用頻度が２〜３回／時間であり、命令列に埋め込まれた閾値の定数が０．５回／時間であれば、この判定結果は偽となりステップＳ１６６に進む。
【００６９】
ステップＳ１６６では、組み込みオペレーションであるｓｌｅｅｐによって、命令列に埋め込まれた待ち時間（例えば３０分間）の実行休止を行う。実行休止時間が経過すると、命令列の実行を再開し、ステップＳ１６４に戻り、その時点での最近の平均利用頻度の獲得と判定を再度行う。
【００７０】
一方、ステップＳ１６５の判定において、例えば最近１時間の平均利用頻度が０回であり、命令列に埋め込まれた閾値の定数が０．５回／時間であれば、判定結果は真となり、ステップＳ１６７に進む。
【００７１】
ステップＳ１６７では、ステップＳ１６２でモバイルエージェントの属性たる自己のバッファ内に格納している印刷データ（クライアント３で格納されたもの）を引数として、プリンタ制御オブジェクト４４のプリント要求オペレーションを呼び出す。この結果、プリンタ制御オブジェクトのプリント要求オペレーションの実装に応じた処理がプリンタ１７で実行され、該データのプリントが行われる。プリンタ制御オブジェクト４４に解釈させ、プリントさせるデータの形式は任意であるが、たとえば、ＰｏｓｔＳｃｒｉｐｔ  や  ＬＩＰＳ  などの  ＰＤＬ  が考えられる。
【００７２】
ステップＳ１６７が完了すると、ｌｉｖｅオペレーションが終了し、インタプリタ４５はこのモバイルエージェントオブジェクトを内部テーブルから削除し、このオブジェクトが利用していたメモリ空間等の資源を解放する。
【００７３】
上記の処理により、クライアント３は、画像処理装置１に対してプリントデータとその処理を代行するモバイルエージェントを送信することにより、後は直接、画像処理装置と対話せずデータを印刷できる。しかも、図６の処理によれば、優先度の低いプリントデータを画像処理装置１が空いている時間に自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【００７４】
図７〜図９はモバイルエージェントのｌｉｖｅオペレーションの異なる実施例を示す。
【００７５】
図７は、モバイルエージェントのｌｉｖｅオペレーションにおいて用紙の量に応じて記録出力を制御する例である。図７は図６とステップＳ１７４、Ｓ１７６のみが異なるもので、モバイルエージェントが画像処理装置１のインタプリタに移動した後に行う画像処理装置の状態獲得と処理の続行判定を変更した例である。
【００７６】
ステップＳ１７４ではプリント用紙の残量を獲得し、ステップＳ１７６でプリントを用紙の量が十分であればステップＳ１６７でプリント処理を行う。
【００７７】
図７の処理によれば、クライアント３は画像処理装置１に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、優先度の低い大量のプリントデータをプリンタの紙が十分に補充されるまで待って自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【００７８】
図８は、モバイルエージェントのｌｉｖｅオペレーションにおいてクライアント側から指定した時刻に応じて記録出力を行なう例である。
【００７９】
図８のステップＳ１８４では画像処理装置１内の図示しない時計回路から現在の時刻を獲得し、ステップＳ１８６は、命令列に指定された時刻を過ぎていればステップＳ１６７でプリント処理を行う。この時刻指定は、命令列に指定データを含めることにより、クライアント側で行う。
【００８０】
図８の処理によれば、クライアント３は画像処理装置１に対してプリントデータとその処理を代行するモバイルエージェントを送信することにより、後は直接画像処理装置と対話せずに、優先度の低い大量のプリントデータを夜中になるのを待って自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【００８１】
次に図９は、モバイルエージェントのｌｉｖｅオペレーションにおいて画像処理装置１のプリンタエンジンの定着温度に応じて記録出力を制御する例である。
【００８２】
図９のステップＳ１９４では定着部２０７（図３）の現在の温度を獲得し、ステップＳ１９７は、命令列に指定された温度を超えていれば（定着温度が充分であれば）プリント処理を行う。
【００８３】
本実施例によれば、クライアント３は画像処理装置１に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、特に装置の立ち上げ時などに装置の準備が整うまで待ってから自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理をわかりやすく実現できる。
【００８４】
以上説明したように、本実施例によれば、クライアント３は画像処理装置１に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、優先度の低いプリントデータをプリンタが空いている時間に自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、しかもこの処理自体もクライアント側との通信を一切行なうことなく実行することができる。
【００８５】
なお、以上では、画像処理装置１の状態に基づく判定による処理として「優先順位の低いプリントを装置の利用頻度が低くなったら処理する」（図６）および、「量の多いプリントを用紙の量が十分になったら処理する」（図７）、「時刻が指定時刻になったら処理する」（図８）、「定着部２０７の温度が指定温度よりも高くなったら処理する」（図９）構成を示したが、モバイルエージェントが移動先のＯＡ装置において実行する制御は上記に限定されるものではなく、たとえば、モバイルエージェントの実行に際して、画像記録装置のインタープリタやプリンタ制御オブジェクトのバージョン情報などを参照することにより、異なる方法でプリンタエンジンを制御する、などの動的な変更が可能であり、モバイルエージェントの実装によって種々の所望の制御を行うことが可能であり、これは本実施例の拡張性の高さを示すものである。
【００８６】
また、以上では、画像記録を例に説明したが、同様の制御により、スキャナによる画像読み取りなどの処理を実行できるのはもちろんであり、その場合、クライアントから移動してきたモバイルエージェントの制御によりスキャナによる画像読み取りを行ない、再度ｇｏオペレーションによりクライアントに移動することにより、読み取られた画像をクライアントに運ぶことも可能となる。
【００８７】
また、画像の記録、読み取りのみならず、画像データに対する種々の変換処理、たとえば、画像の変倍、中間調処理、画像ファイルフォーマットの変換などの任意の変換処理を行なう画像処理装置において、目的の画像変換処理を上記同様のモバイルエージェント制御により実施できるのはいうまでもない。
【００８８】
また、本発明においては、制御対象である画像記録装置の動作中を通じてコネクションを張り続ける必要がないため、制御のために利用するネットワークのトラフィックを抑えることができる。
【００８９】
また、モバイルエージェントのインタープリタ部分は、クライアントおよびサーバとしての画像記録装置の間で互換性がありさえすれば良く、クライアントおよびサーバのオペレーティングシステムに依存せずに記録処理を実行することができる。
【００９０】
しかも、モバイルエージェントは、画像記録装置のプリンタ制御オブジェクトが理解する命令列であれば任意の命令列を含めることができる。プリンタ制御を行なう命令列自体が従来技術では画像記録装置内に固定的に格納されていたために拡張性が乏しかったが、本実施例によれば、画像記録装置のプリンタ制御オブジェクトが理解する命令列であれば任意の命令列を実行でき、また、モバイルエージェントの実行に際して画像記録装置のインタープリタやプリンタ制御オブジェクトのバージョン情報などを参照することにより、異なる方法でプリンタエンジンを制御する、などの動的な変更が可能であり、その場合もクライアント側との通信は一切不要である。
【００９１】
また、本実施例によれば、ローカルエリアネットワーク内だけでなく、図１のリモートクライアント８などから、ワイドエリアネットワーク、インターネットのような比較的バンド幅の狭いネットワークを介して、画像処理装置１を制御しようとしたとしても、十分にしかも容易に装置の制御が可能である。さらに、断続的な接続であっても十分に機能するために、リモートクライアント８がダイアルアップ型のネットワーク接続によりワイドエリアネットワークに接続しているような場合でも十分にしかも容易に画像処理装置１を制御することができる。
【符号の説明】
【００９２】
１  画像処理装置
２  ローカルエリアネットワーク
３  クライアント
４  ローカルルータ
５  ワイドエリアネットワーク
６  リモートネットワーク
７  リモートルータ
８  リモートクライアント
１１  ネットワークインタフェースカード
１２  プロセッサ
１３  ワークメモリ
１４  不揮発性メモリ
１５  エンジン制御回路
１６  画像メモリ
１７  プリンタ
１８  イメージスキャナ
１９  プロセッサバス
２０  イメージバス
【図１】
2010218561.tif 000003
【図２】
2010218561.tif 000004
【図３】
2010218561.tif 000005
【図４】
2010218561.tif 000006
【図５】
2010218561.tif 000007
【図６】
2010218561.tif 000008
【図７】
2010218561.tif 000009
【図８】
2010218561.tif 000010
【図９】
2010218561.tif 000011
【手続補正書】
【提出日】平成22年5月12日(2010.5.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報処理装置と通信可能な画像処理装置であって、
前記情報処理装置から送信された、符号化されたデータと命令列とを含むオブジェクトを復号化する復号化手段と、
前記復号化手段により復号化されたオブジェクトを基に、前記画像処理装置が実行すべき命令を前記命令列の中から特定し、該特定した命令を実行する実行手段とを有する画像処理装置。