JP4642927B2 - Image processing apparatus, control method for image processing apparatus, and storage medium - Google Patents

Image processing apparatus, control method for image processing apparatus, and storage medium Download PDF

Info

Publication number
JP4642927B2
JP4642927B2 JP2010091691A JP2010091691A JP4642927B2 JP 4642927 B2 JP4642927 B2 JP 4642927B2 JP 2010091691 A JP2010091691 A JP 2010091691A JP 2010091691 A JP2010091691 A JP 2010091691A JP 4642927 B2 JP4642927 B2 JP 4642927B2
Authority
JP
Japan
Prior art keywords
image processing
processing apparatus
image
network
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010091691A
Other languages
Japanese (ja)
Other versions
JP2010218561A (en
Inventor
雅仁 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010091691A priority Critical patent/JP4642927B2/en
Publication of JP2010218561A publication Critical patent/JP2010218561A/en
Application granted granted Critical
Publication of JP4642927B2 publication Critical patent/JP4642927B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、ネットワークに対してデータの送信および受信を行うインタフェース手段と、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体に関するものである。   The present invention relates to an interface means for transmitting and receiving data to and from a network, an image processing apparatus having an image processing unit for performing image processing by a predetermined method, a control method thereof, and a storage medium storing the control program It is.

従来より、複写機、ファクス、プリンタ、イメージスキャナ、画像ファイルシステム、高機能電話機などのOA装置が広く用いられている。   Conventionally, OA devices such as copiers, fax machines, printers, image scanners, image file systems, and high-functional telephones have been widely used.

従来、上記のようなOA装置の多くはネットワークに接続されず単独の機器内に閉じた機能を提供していた。近年ではこれらこれまでスタンドアロンで利用されてきたOA装置がイーサネット(登録商標)等のネットワークに接続され、クライアントである複数のコンピュータなどから共用できる製品が提供され始めている。   Conventionally, many of the OA apparatuses as described above provide a closed function in a single device without being connected to a network. In recent years, these stand-alone OA devices have been connected to a network such as Ethernet (registered trademark), and products that can be shared by a plurality of computers serving as clients have started to be provided.

たとえば、複写機、ファクス、プリンタ、イメージスキャナなどの画像記録装置に関しては、これらをネットワークを介して複数のクライアントから共有する技術は比較的早くから実用化されている。   For example, with respect to image recording apparatuses such as copying machines, fax machines, printers, and image scanners, a technique for sharing these from a plurality of clients via a network has been put into practical use from a relatively early stage.

ただし、従来技術では、クライアントからネットワークを介してこのようなOA装置を利用するにあたり、従来は処理の間中常にネットワーク経由の接続性が確保されていることを前提とする手法がとられている。   However, in the prior art, in order to use such an OA device from a client via a network, conventionally, a method is assumed on the assumption that connectivity through the network is always ensured during processing. .

たとえば、クライアントであるワークステーションやパーソナルコンピュータや携帯情報端末などの上で実行されるプログラムがOA装置が提供するサービスを利用するときには、OA装置上で実行されるサーバプログラムに対して所定のプロトコル、たとえばLPRやPAPなどのネットワークプロトコルに従って、処理要求や処理に必要なデータの送信を行うことにより、目的とする機器の動作を制御し、さらに返答や必要ならばデータを受信する。   For example, when a program executed on a client workstation, personal computer, portable information terminal, or the like uses a service provided by the OA device, a predetermined protocol for the server program executed on the OA device, For example, according to a network protocol such as LPR or PAP, a processing request or data necessary for processing is transmitted to control the operation of the target device, and a response or data is received if necessary.

クライアントはOA装置からの返答の内容を判定し、それに応じて新たな指示要求をOA装置に送信することを繰り返す。このようなサーバクライアント方式は、TCP/IPなど種々のネットワークプロトコルの上に実装され、用いられているが、サービスが処理されている間を通じて、サーバ、クライアントの間で対話的なやりとりを続ける必要があった。   The client determines the content of the response from the OA device, and repeats sending a new instruction request to the OA device accordingly. Such a server client method is implemented and used on various network protocols such as TCP / IP, but it is necessary to continue interactive communication between the server and the client while the service is processed. was there.

一方、純粋にコンピュータ同士からなるネットワークにおける分散計算の分野では、最近になって、これまで盛んに研究と実現が行われてきたプロトコルによる対話を繰り返して分散計算を行うリモートプロシージャコール等の技術から発展して、実行可能なプログラムオブジェクトそのものがネットワークを介して移動して分散計算を行うモバイルエージェントと呼ばれる技術が提案されてきている。   On the other hand, in the field of distributed computing in a network consisting of purely computers, recently, from techniques such as remote procedure calls that perform distributed computations by repeating dialogs based on protocols that have been actively researched and implemented so far. As a result of the development, a technique called a mobile agent in which an executable program object itself moves through a network and performs distributed computation has been proposed.

モバイルエージェントによる分散計算システムの実現例としては米国特許560303号のGeneral Magic社のTelescriptや、IBM東京基礎研究所のAgletsなどさまざまな提案がよく知られている。   Various proposals are well known as examples of realization of a distributed computing system using a mobile agent, such as Telescript of General Magic of US Pat. No. 560303 and Aglets of IBM Tokyo Research Laboratory.

モバイルエージェントは、命令列とその実行に必要なデータから成り、一の実行環境に限定されずにある実行環境から他の実行環境に移動して専用のインタープリタ上で実行される。   The mobile agent is composed of an instruction sequence and data necessary for execution thereof, and is not limited to one execution environment, but is moved from one execution environment to another execution environment and executed on a dedicated interpreter.

特開平09−330260号公報JP 09-330260 A 特開平06−295286号公報Japanese Patent Laid-Open No. 06-295286

ところが、これまでのネットワークプロトコルを介して行うOA装置の制御には、装置が提供するサービスの遠隔制御を行うクライアントプロセスとOA装置が提供するサービスを実現するために装置の物理的な機構を制御するためのサーバプロセスとが、離れたプロセス実行環境上でそれぞれ動作するため、以下にあげるような問題があった。   However, in the control of the OA device performed through the conventional network protocol, the client process for remotely controlling the service provided by the device and the physical mechanism of the device to realize the service provided by the OA device are controlled. Since the server process to run each runs in a separate process execution environment, there are the following problems.

すなわち、クライアントプロセスはサーバプロセスに対してサービスの要求やサービスの処理に必要なデータの送信を行い、サーバプロセスはこの要求に対応するOA装置の物理的な機構の制御とクライアントプロセスヘの応答と必要に応じて処理結果の返信を行うが、この対話的なやりとりは、要求するサービスをきめこまかく制御しようとすればそれに応じて何回も繰り返さなければならなくなる。ネットワークによって共有されるOA装置の提供するサービスをクライアントからきめこまかく制御することは最近とみに重視されている要請であるが、従来の制御プロトコルによる対話的な情報のやりとりでこの要請に応えようとすると、それだけネットワークの混雑を増すことになる。したがってユーザはより性能が高く高価なネットワークインフラストラクチャを使わなければならなくなり、経済的に不利である。   That is, the client process sends a service request to the server process and data necessary for processing the service, and the server process controls the physical mechanism of the OA device corresponding to this request and responds to the client process. The processing results are returned as necessary, but this interactive exchange must be repeated many times in response to precise control of the requested service. Although it is a request that has been emphasized recently that the service provided by the OA device shared by the network is finely controlled from the client, when trying to respond to this request by interactive information exchange by the conventional control protocol, This will increase network congestion. Therefore, the user must use a higher performance and expensive network infrastructure, which is economically disadvantageous.

また第2に、従来のやり方でクライアントからOA装置を細かく制御しようとすると、装置が提供するサービスを実現するためのプロセス、たとえば、プリンタ装置の場合にはPDL(ページ記述言語)の解釈と展開、給紙、作像、そして出力用紙の排紙などの間中、上記のようなクライアントプロセスとサーバプロセスとの制御プロトコルによる対話を維持しつづけなければならない。   Second, if the client attempts to finely control the OA device in the conventional manner, the process for realizing the service provided by the device, for example, interpretation and expansion of PDL (page description language) in the case of a printer device During the paper feeding, image forming, and output paper discharging, the above-described dialogue between the client process and the server process by the control protocol must be maintained.

これはOA装置にとって、サービスを提供するための物理的な機構の制御と、ネットワークを介する通信とを、同時に並行してこなさなければならないことを意味し、負担が大きい。この負担は、OA装置が複数のクライアントからの要求に対してサービスを提供するマルチクライアント型の装置であった場合、特に顕著なものとなる。サービスを実現するために装置の持つ物理的な機構を制御する間、ネットワークを介した通信のコネクションを維持するためには、装置のプロセッサはより高性能なものが必要とされメモリもより大容量なものが必要とされるなど、装置本体のコストアップの原因となっている。   This means that the control of a physical mechanism for providing a service and communication via a network must be performed in parallel at the same time for the OA apparatus, which is a heavy burden. This burden is particularly noticeable when the OA device is a multi-client type device that provides services in response to requests from a plurality of clients. In order to maintain the communication connection over the network while controlling the physical mechanism of the device to realize the service, the device processor needs higher performance, and the memory is larger This is a cause of cost increase of the apparatus main body.

また第3に、OA装置を制御するための一連の対話処理がプロトコルによって実現される方法では、装置を制御するための命令体系をあらかじめコマンドプロトコルとして設計し実装しておかなければならないため、将来的にその装置の新たな利用方法が拡張されたときにその新しいサービスを享受するためには、コマンドプロトコルを拡張しクライアントプロセスとサーバプロセスの両方ともがこの新しいコマンドプロトコルに対応するように変更(プログラムのバージョンアップ)をしなければならない。このことはユーザにとって手間であるばかりでなく、特に、従来のOA装置に内蔵されているサーバプロセスのためのプログラムは、一般にファームウェアと呼ばれ不揮発性のメモリ等に置かれ、プログラムの更新には多大なコストがかかるかあるいはまったく不可能なことが多い。したがって、OA装置が提供するサービスの拡張性に乏しい。   Third, in a method in which a series of interactive processes for controlling an OA device is realized by a protocol, a command system for controlling the device must be designed and implemented in advance as a command protocol. In order to enjoy the new service when the new usage of the device is expanded, the command protocol has been expanded so that both the client process and the server process can support this new command protocol ( Program version upgrade). This is not only troublesome for the user, but in particular, a program for a server process built in a conventional OA device is generally called firmware and is placed in a non-volatile memory or the like. It is often costly or impossible at all. Therefore, the expandability of the service provided by the OA device is poor.

また第4に、分散計算の分野で提案されはじめているモバイルエージェントは、あくまでコンピュータ上の分散プログラミングの手法であって、コンベンショナルなOA装置に近年要求されている前述のさまざまな要求に完全に応えることはできない。すなわち、プリントサーバに代表されるようなOA装置の制御を専門的に行うサーバコンピュータ上にモバイルエージェントの実行システムを実現することで要求にある程度応えることはできるものの、このサーバコンピュータとOA装置間にネットワークあるいはそれに代わる通信インフラストラクチャが必要であることにかわりはない。したがって、その通信媒体上のトラフィックも相変わらず問題であるし、OA装置側にとってのインタフェース処理の負荷も減らない。さらに、OA装置の制御を専門的に行うサーバコンピュータと装置との間の何らかの通信インフラストラクチャを介して両者がやりとりする制御体系が従来通りの対話的なプロトコルによるものであれば、装置そのものが提供するサービスの拡張性が乏しい問題も解決しない。また、ユーザにとっては、新たに装置専用のサーバコンピュータを用意しなければならないことになって経済的にも設置面積的にも不利益となる。   Fourthly, mobile agents that have begun to be proposed in the field of distributed computing are merely distributed programming methods on computers, and can fully meet the various requirements described above that have recently been required for conventional OA devices. I can't. That is, although a mobile agent execution system can be realized on a server computer that specially controls an OA device represented by a print server, the request can be met to some extent, but between this server computer and the OA device. The need for a network or alternative communication infrastructure remains the same. Therefore, the traffic on the communication medium is still a problem, and the load of interface processing on the OA device side is not reduced. Furthermore, if the control system between the two via a communication infrastructure between the server computer that specializes in controlling the OA device and the device is based on a conventional interactive protocol, the device itself provides It does not solve the problem that the service is not scalable. In addition, for the user, it is necessary to prepare a new server computer dedicated to the apparatus, which is disadvantageous both economically and in terms of installation area.

本発明の課題は、かかる問題点を解決し、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を提供することにある。   SUMMARY OF THE INVENTION An object of the present invention is to solve such a problem, and in an image processing apparatus having an image processing unit that performs image processing by a predetermined method, a control method thereof, and a storage medium storing the control program, the client to the image processing apparatus. It is an object of the present invention to provide an image processing method that can execute a desired image processing service sufficiently and easily and has excellent expandability that is not limited to firmware installed in an image processing apparatus. .

本発明では、所定方式により画像処理を行う画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、
画像処理装置は複数の機能を操作するための所定の関数群を記憶する記憶手段を有し、
さらに、符号化されたコードにより表現される命令列を含む制御プログラムを解釈する解釈手段ないし解釈ステップと、
前記解釈手段ないし解釈ステップが前記制御プログラムに含まれる命令列の解釈処理を実行させるのにしたがい、前記記憶手段が記憶した、前記制御プログラムに含まれるオブジェクト群と画像処理装置が有する機能を実行するデバイスドライバプログラムとの間にインタフェースとして定義される関数群を用いて、画像処理装置が有する機能を実行するデバイスドライバプログラムを実行する実行手段ないし実行ステップとを用いる構成を採用した。
In the present invention, in an image processing apparatus having an image processing unit that performs image processing by a predetermined method, a control method thereof, and a storage medium storing the control program thereof,
The image processing apparatus has storage means for storing a predetermined function group for operating a plurality of functions,
Furthermore, an interpreting means or interpreting step for interpreting the control program including the instruction sequence expressed by the encoded code;
In accordance with the interpretation means or the interpretation step executing the interpretation processing of the instruction sequence included in the control program, the functions of the object group and the image processing apparatus stored in the control program and stored in the storage means are executed. A configuration using execution means or execution steps for executing a device driver program for executing a function of the image processing apparatus using a function group defined as an interface with the device driver program is adopted.

あるいは、所定の画像処理を行なう画像処理部を有する画像処理装置、その制御方法、およびその制御プログラムを格納した記憶媒体において、
第一の制御プログラムが制御する前記画像処理部の状態を示す情報を、前記第一の制御プログラムに対して前記第二の制御プログラムが要求して取得する取得手段ないし取得ステップと、
前記取得ないし取得ステップが取得した前記画像処理部の状態を示す情報に応じて、前記第二の制御プログラムから第一の制御プログラムに対して、画像処理装置の操作指示を出力する出力手段ないし出力ステップと、
前記出力手段ないし出力ステップが出力したメッセージが示す操作指示に対応する前記画像処理装置の操作を前記第二の制御プログラムを実行して実行する実行手段ないし実行ステップとを用いる構成を採用した。
Alternatively, in an image processing apparatus having an image processing unit that performs predetermined image processing, a control method thereof, and a storage medium storing the control program,
An acquisition means or an acquisition step in which the second control program requests and acquires information indicating the state of the image processing unit controlled by the first control program with respect to the first control program;
Output means or output for outputting an operation instruction of the image processing apparatus from the second control program to the first control program according to the information indicating the state of the image processing unit acquired by the acquisition or acquisition step. Steps,
A configuration using execution means or execution steps for executing the operation of the image processing apparatus corresponding to the operation instruction indicated by the message output by the output means or output step by executing the second control program is adopted.

本発明によれば、上記構成を採用することにより、クライアントから画像処理装置で所望の画像処理サービスを十分にかつ容易に実行させることができ、また、画像処理装置にインストールされているファームウエアに限定されることがない拡張性に優れた画像処理方式を実現することができる。   According to the present invention, by adopting the above configuration, a desired image processing service can be executed sufficiently and easily from the client to the image processing apparatus, and firmware installed in the image processing apparatus can be used. An image processing method with excellent extensibility that is not limited can be realized.

本発明を適用可能なネットワークシステムの構成を説明するブロック図である。It is a block diagram explaining the structure of the network system which can apply this invention. 図1の画像処理装置の構成を示したブロック図である。FIG. 2 is a block diagram illustrating a configuration of the image processing apparatus in FIG. 1. 図2のプリンタとスキャナの構成を示した概略断面図である。FIG. 3 is a schematic cross-sectional view showing the configuration of the printer and scanner of FIG. 2. 図2のプロセッサによって処理されるソフトウェアの構成を示した階層図である。FIG. 3 is a hierarchical diagram illustrating a configuration of software processed by the processor of FIG. 2. 図4のモバイルエージェントがネットワーク転送のために符号化された構造を示した説明図である。FIG. 5 is an explanatory diagram illustrating a structure in which the mobile agent of FIG. 4 is encoded for network transfer. 本発明のモバイルエージェントの命令列により行なわれる第1の処理手順を示すフローチャートである。It is a flowchart which shows the 1st process procedure performed by the command sequence of the mobile agent of this invention. 本発明のモバイルエージェントの命令列により行なわれる第2の処理手順を示すフローチャートである。It is a flowchart which shows the 2nd processing procedure performed by the command sequence of the mobile agent of this invention. 本発明のモバイルエージェントの命令列により行なわれる第3の処理手順を示すフローチャートである。It is a flowchart which shows the 3rd processing procedure performed by the command sequence of the mobile agent of this invention. 本発明のモバイルエージェントの命令列により行なわれる第4の処理手順を示すフローチャートである。It is a flowchart which shows the 4th process sequence performed by the command sequence of the mobile agent of this invention.

以下、添付図面を参照して、発明を実施するための最良の形態の一実施例につき説明する。   An embodiment of the best mode for carrying out the invention will be described below with reference to the accompanying drawings.

図1は、本発明を適用可能なOA装置として画像処理装置を含むオフィスシステムの構成を示す図である。   FIG. 1 is a diagram showing a configuration of an office system including an image processing apparatus as an OA apparatus to which the present invention can be applied.

図1において、符号1は画像処理装置である。2は画像処理装置に接続されたローカルエリアネットワークであり、イーサネット(登録商標)などからなり、装置と他の装置あるいはクライアントの相互の通信を実現する。3はパーソナルコンピュータ、ワークステーション、ワードプロセッサなどの情報処理装置などのクライアントであり、一般にユーザが入力するキーボード、マウス等の入力装置と、ユーザに情報を出力するディスプレイ等の出力装置を備え、ローカルエリアネットワーク2に接続している。   In FIG. 1, reference numeral 1 denotes an image processing apparatus. Reference numeral 2 denotes a local area network connected to the image processing apparatus, which is composed of Ethernet (registered trademark) or the like, and realizes mutual communication between the apparatus and other apparatuses or clients. Reference numeral 3 denotes a client such as an information processing apparatus such as a personal computer, a workstation, or a word processor, and generally includes an input device such as a keyboard and a mouse that a user inputs and an output device such as a display that outputs information to the user. Connected to network 2.

符号4はルータであり、ローカルエリアネットワーク2と他のネットワークとを接続し両者に接続する機器間の通信を実現する。TCP/IP の場合、通常、異なるネットワークアドレスを持つネットワーク間でデータフレームを相互に転送する機能を受け持つ。   Reference numeral 4 denotes a router, which connects the local area network 2 and another network and realizes communication between devices connected to both. In the case of TCP / IP, it is usually responsible for transferring data frames between networks having different network addresses.

符号5は、インターネット、イントラネットなどのワイドエリアネットワークであり、多数のネットワークを接続した企業専用線網やインターネットあるいはインターネット上のヴァーチャルプライベートネットワーク等で、さまざまなローカルエリアネットワークを相互接続する。   Reference numeral 5 denotes a wide area network such as the Internet or an intranet, which interconnects various local area networks such as a corporate leased line network connecting many networks, the Internet, or a virtual private network on the Internet.

符号6は第2のローカルエリアネットワークであり、ワイドエリアネットワーク5を介して第1のローカルエリアネットワークと相互接続している。符号7は第2のルータであり、ローカルエリアネットワーク6とワイドエリアネットワーク5を接続する。8はリモートクライアントであり、ローカルエリアネットワーク6に接続しており、ワイドエリアネットワーク5を経由して装置1に遠隔地から接続することができる。   Reference numeral 6 denotes a second local area network, which is interconnected with the first local area network via the wide area network 5. Reference numeral 7 denotes a second router, which connects the local area network 6 and the wide area network 5. A remote client 8 is connected to the local area network 6 and can be connected to the apparatus 1 from a remote location via the wide area network 5.

図2は、図1の画像処理装置1の内部構造を示すブロック図である。図2において、符号11はローカルエリアネットワーク2とデータフレームの送受信を行うネットワークインタフェースで、イーサネット(登録商標)インタフェースなどから構成される。符号12は各種演算処理を行うプロセッサ(CPU,MPU)である。符号13はプロセッサが実行するプログラムと実行に係るデータを格納するワークメモリである。符号14はプロセッサが実行するプログラムと実行に係るデータの初期値および電源切断を経た後も保存が必要なデータ等を格納する不揮発性メモリ(図示しないROM,Flash ROM,NVRAM,HDD等のいずれかあるいはいくつかから構成される)である。   FIG. 2 is a block diagram showing the internal structure of the image processing apparatus 1 of FIG. In FIG. 2, reference numeral 11 denotes a network interface that transmits and receives data frames to and from the local area network 2 and includes an Ethernet (registered trademark) interface or the like. Reference numeral 12 denotes a processor (CPU, MPU) that performs various arithmetic processes. Reference numeral 13 denotes a work memory for storing a program executed by the processor and data related to the execution. Reference numeral 14 denotes a program executed by the processor, an initial value of data related to the execution, and a non-volatile memory for storing data that needs to be saved even after the power is cut off (any one of ROM, Flash ROM, NVRAM, HDD, etc. not shown) Or it consists of several).

符号15は、ハードウェアによって画像処理を行う画像処理エンジンを制御するためのエンジン制御回路である。符号16は画像データを格納する画像メモリである。符号17は転写紙に画像データに対応する画像を形成する画像処理エンジンたるプリンタである。符号18は原稿から画像を読み取り画像データをつくる画像処理エンジンたるイメージスキャナである。符号19はプロセッサバスであり、ネットワークインタフェース11、プロセッサ12、ワークメモリ13、不揮発性メモリ14、エンジン制御回路15、画像メモリ16を接続しデータや制御情報、およびエンジンのステータス等のやり取りを行なう。20はイメージバスであり、エンジン制御回路15、画像メモリ16、プリンタ17、イメージスキャナ18とを接続し画像データのやり取りを行なう。   Reference numeral 15 denotes an engine control circuit for controlling an image processing engine that performs image processing by hardware. Reference numeral 16 denotes an image memory for storing image data. Reference numeral 17 denotes a printer as an image processing engine for forming an image corresponding to image data on a transfer sheet. Reference numeral 18 denotes an image scanner which is an image processing engine for reading an image from a document and creating image data. Reference numeral 19 denotes a processor bus, which connects the network interface 11, the processor 12, the work memory 13, the nonvolatile memory 14, the engine control circuit 15, and the image memory 16, and exchanges data, control information, engine status, and the like. An image bus 20 connects the engine control circuit 15, the image memory 16, the printer 17, and the image scanner 18 to exchange image data.

図3は、図2の画像処理装置1のプリンタ部17、およびイメージスキャナ部18の構成を示している。画像記録エンジンは種々の記録方式に基くものであってよいが、ここでは電子写真方式の画像記録エンジンを考える。   FIG. 3 shows the configuration of the printer unit 17 and the image scanner unit 18 of the image processing apparatus 1 of FIG. The image recording engine may be based on various recording methods, but here, an electrophotographic image recording engine is considered.

図3において、符号101は原稿給送装置で、原稿台上に積載された原稿を1枚ずつ順次原稿台ガラス102面上に搬送する。該原稿が搬送されると、イメージスキャナ部のランプ103が点灯、かつスキャナユニット104が移動して原稿を照射する。原稿の反射光は、ミラー105、106、107を介してレンズ108を通過し、その後CCDイメージセンサ109に入力される。   In FIG. 3, reference numeral 101 denotes a document feeder, which sequentially conveys documents stacked on a document table one by one onto the surface of the document table glass 102. When the original is conveyed, the lamp 103 of the image scanner unit is turned on, and the scanner unit 104 moves to irradiate the original. The reflected light of the document passes through the lens 108 via the mirrors 105, 106, and 107 and is then input to the CCD image sensor 109.

プリンタ部2に入力された信号は、露光制御部201により光信号に変換されて画像信号に従い感光体202を照射する。照射光によって感光体202上に作られた潜像は現像器203によってトナー現像される。上記現像とタイミングを併せて被転写紙積載部204、もしくは205より転写紙が搬送され、転写部206に於いて、上記現像された像が転写される。転写された像は定着部207にて被転写紙に定着された後、排紙部208より装置外部に排出される。排紙部から出力された転写紙は、ソータ220でソート機能が働いている場合には、各ビンに、またはソート機能が働いていない場合には、ソータの最上位のノンソートビンに排出される。図2の制御回路は制御基板124上に実装される。   The signal input to the printer unit 2 is converted into an optical signal by the exposure control unit 201 and irradiates the photosensitive member 202 according to the image signal. The latent image formed on the photosensitive member 202 by the irradiation light is developed with toner by the developing unit 203. The transfer paper is transported from the transfer paper stacking section 204 or 205 at the same time as the development, and the developed image is transferred by the transfer section 206. The transferred image is fixed on the transfer sheet by the fixing unit 207 and then discharged from the paper discharge unit 208 to the outside of the apparatus. The transfer paper output from the paper discharge unit is discharged to each bin when the sort function is working in the sorter 220, or to the top non-sort bin of the sorter when the sort function is not working. The control circuit of FIG. 2 is mounted on the control board 124.

図4は、画像処理装置1のワークメモリ13に記憶されたデータ構造とプログラムコード(不揮発性メモリ14がROM等であればプログラムコードは不揮発性メモリ14だけに存在してもよい)をプロセッサ12が処理するソフトウェアの構造を示す模式的な階層図である。   4 shows the data structure and program code stored in the work memory 13 of the image processing apparatus 1 (the program code may exist only in the nonvolatile memory 14 if the nonvolatile memory 14 is a ROM or the like). It is a typical hierarchy figure which shows the structure of the software which processes.

図4において、各階層は下位の階層が提供するサービスを上位の階層が利用する関係になっている。最下層はオペレーティングシステム50であり、プログラムの実行コンテクストの管理やメモリ管理等を行う階層である。オペレーティングシステムの中には、ネットワークインタフェースドライバ51、プリンタ制御ドライバ52、イメージスキャナ制御ドライバ53の3つのデバイスドライバが組み込まれ、連携して機能している。   In FIG. 4, each layer has a relationship in which a higher layer uses a service provided by a lower layer. The lowest layer is an operating system 50, which is a hierarchy for managing the execution context of programs and memory management. In the operating system, three device drivers, a network interface driver 51, a printer control driver 52, and an image scanner control driver 53, are incorporated and function in cooperation.

ネットワークインタフェースドライバ51はネットワークインタフェース11を制御するソフトウェアである。プリンタ制御ドライバ52はエンジン制御回路15と画像メモリ16を介して、プリンタ17を制御するソフトウェアである。   The network interface driver 51 is software that controls the network interface 11. The printer control driver 52 is software that controls the printer 17 via the engine control circuit 15 and the image memory 16.

イメージスキャナ制御ドライバ53はエンジン制御回路15と画像メモリ16を介して、イメージスキャナ18を制御するソフトウェアである。   The image scanner control driver 53 is software that controls the image scanner 18 via the engine control circuit 15 and the image memory 16.

最下位から2番目の層は各種のライブラリで、後述のインタープリタ45や他のアプリケーションプログラムと静的あるいは動的にリンクされ、オペレーティングシステム50とアプリケーションプログラムの仲立ちをする。このうちスレッドライブラリ46はそれを利用するプログラムにスレッド機能を提供するライブラリである。スレッドとは、ソフトウェアの並列実行の単位であり、単一プロセス内の複数のスレッドは異なる実行コンテキスト(プログラムカウンタ、スタック、レジスタ値等)を持つが、メモリ空間等は共有する。スレッドのコンテキスト切り替えはプロセス(実行中のプログラム)のコンテキスト切り替えに比べ処理の量が少なく済むため、ライトウェイトスレッドと呼ぶこともある。   The second layer from the bottom is various libraries, which are statically or dynamically linked to an interpreter 45 and other application programs described later, and mediate between the operating system 50 and the application programs. Among these, the thread library 46 is a library that provides a thread function to a program that uses the library. A thread is a unit for parallel execution of software. A plurality of threads in a single process have different execution contexts (program counter, stack, register value, etc.), but share a memory space and the like. Thread context switching is sometimes called a light-weight thread because it requires less processing than context (program execution).

ネットワークインタフェースライブラリ47は、ネットワークインタフェースドライバ51を利用してネットワークを介するデータ送信とデータ受信を実現するためのライブラリである。   The network interface library 47 is a library for realizing data transmission and data reception via the network using the network interface driver 51.

プリンタ制御ライブラリ48は、プリンタ制御ドライバの機能を利用してプリンタ制御API(アプリケーションプログラミングインタフェース)を提供するライブラリである。   The printer control library 48 is a library that provides a printer control API (application programming interface) using the functions of the printer control driver.

イメージスキャナ制御ライブラリ49は、イメージスキャナ制御ドライバの機能を利用してイメージスキャナ制御APIを提供するライブラリである。   The image scanner control library 49 is a library that provides an image scanner control API using the function of the image scanner control driver.

最下位から3段目の層は、インタプリタ45である。インタプリタ45はモバイルエージェント等のオブジェクトが動作するためのオブジェクト実行環境を提供する。本実施例における「オブジェクト」とは、広く知られたオブジェクト指向パラダイムにおけるオブジェクトのサブセットとなっている。すなわち、問題領域のある概念に係るデータと処理とをひとまとめにしたソフトウェア構造である。各オブジェクトは自律的に存在し、他のオブジェクトと通信(メッセージパッシング)し合いながら、オブジェクト群全体として並列に動作することにより一連の処理が達成される。   The third layer from the bottom is the interpreter 45. The interpreter 45 provides an object execution environment for an object such as a mobile agent to operate. The “object” in the present embodiment is a subset of objects in a widely known object-oriented paradigm. That is, it is a software structure in which data and processing related to a concept having a problem area are grouped. Each object exists autonomously, and a series of processing is achieved by operating in parallel as an entire object group while communicating (message passing) with other objects.

インタプリタ45内部には、インタプリタ上で動作する各オブジェクトに断続的にプロセッサの処理時間を与えるオブジェクトスケジューラがある。オブジェクトスケジューラは、各オブジェクトの処理が仮想的に並列に進行するようにスレッドライブラリ46を利用する。   Within the interpreter 45 is an object scheduler that intermittently gives the processor processing time to each object operating on the interpreter. The object scheduler uses the thread library 46 so that the processing of each object proceeds virtually in parallel.

また、インタプリタ内部にはオブジェクトデコーダ/エンコーダがある。エンコーダは、メモリ上に実行可能な形態で展開されたオブジェクトの命令列(スクリプト)およびデータを、ネットワークを介して転送可能なビット列に、もとメモリ上にあった構造を実質的に復元可能な形で符号化する。   There is also an object decoder / encoder inside the interpreter. The encoder can substantially restore the original structure of the memory into a bit string that can be transferred to the instruction sequence (script) and data of the object expanded in an executable form on the memory via the network. Encode in the form.

デコーダはネットワークを介して転送されたビット列を、メモリ上に実行可能な形態に展開されたオブジェクトに復号化する。この符号化/復号化の過程は、ネットワーク上のトラフィックを軽減するためになんらかのデータ圧縮/復元過程を含んでいてよい。データ圧縮/復元過程を含めることによって、クライアントと画像記録装置の間で転送されるデータ量をさらに減少することができ、ネットワーク上のトラフィック軽減に役立ち、モデムやTAによるダイヤルアップ接続などによるネットワークの狭い帯域でも充分実用的なスループットを得ることができる。   The decoder decodes the bit string transferred via the network into an object developed in a form executable on the memory. This encoding / decoding process may include some data compression / decompression process to reduce traffic on the network. By including a data compression / decompression process, the amount of data transferred between the client and the image recording device can be further reduced. A sufficiently practical throughput can be obtained even in a narrow band.

図5は、オブジェクトが符号化されたネットワークパケットの例である。オブジェクトを符号化したネットワークパケットには、もとのオブジェクトの実行に係るすべてのデータを符号化した部分61と、もとのオブジェクトの命令列部分62とが含まれる。なお、ここで説明したインタプリタは画像処理装置1内だけでなく、クライアント3およびクライアント8の中にも備えられている。以下の説明も含め、これらのインタプリタの構造と働きは全く同様である。   FIG. 5 is an example of a network packet in which an object is encoded. The network packet in which the object is encoded includes a portion 61 in which all data related to the execution of the original object is encoded, and an instruction sequence portion 62 of the original object. The interpreter described here is provided not only in the image processing apparatus 1 but also in the client 3 and the client 8. The structure and operation of these interpreters are exactly the same, including the following description.

再び図4において最上位の層はインタプリタ上で管理および実行される複数のオブジェクトである。   Referring again to FIG. 4, the highest layer is a plurality of objects managed and executed on the interpreter.

プリンタ制御オブジェクト43は、プリンタ制御ライブラリを介してプリンタの制御を行うための複数のオペレーションを提供しており、プリンタ17の代理オブジェクトとして機能する。すなわち、オブジェクトの命令列の中で、プリンタ制御オブジェクト43のオペレーションを呼び出す(メッセージパッシング)命令を実行すると、該オペレーションの実装の中でオペレーションに対応する制御がプリンタ17に実施される。同様にプリンタ制御オブジェクト43から情報を引き出すオペレーションを実行すると、実際のプリンタのステータス情報等を得ることができる。   The printer control object 43 provides a plurality of operations for controlling the printer via the printer control library, and functions as a proxy object for the printer 17. In other words, when an instruction for calling the operation of the printer control object 43 (message passing) is executed in the instruction sequence of the object, control corresponding to the operation is implemented in the printer 17 in the implementation of the operation. Similarly, when an operation for extracting information from the printer control object 43 is executed, status information of the actual printer can be obtained.

イメージスキャナ制御オブジェクト44はイメージスキャナ制御ライブラリを介してイメージスキャナの制御を行うための複数のオペレーションを提供しており、イメージスキャナ18の代理オブジェクトとして機能する。すなわち、オブジェクトの命令列の中で、イメージスキャナ制御オブジェクトのオペレーションを呼び出す(メッセージパッシング)命令を実行すると、該オペレーションの実装の中でオペレーションに対応する制御がイメージスキャナ18に実施される。同様にイメージスキャナ制御オブジェクトから情報を引き出すオペレーションを実行すると、実際のイメージスキャナのステータス情報等を得ることができる。   The image scanner control object 44 provides a plurality of operations for controlling the image scanner via the image scanner control library, and functions as a proxy object for the image scanner 18. That is, when an instruction for calling an operation of the image scanner control object (message passing) is executed in the instruction sequence of the object, control corresponding to the operation is performed on the image scanner 18 in the implementation of the operation. Similarly, when an operation for extracting information from the image scanner control object is executed, status information of the actual image scanner can be obtained.

プリンタ制御オブジェクト43とイメージスキャナオブジェクト44は常駐エージェントである。すなわち、画像処理装置1の立ち上げ後、インタプリタが処理を開始するとその最初の処理の一環として常駐エージェントを自動的に生成、初期化、起動する。そしてこれら常駐エージェントは、画像処理装置1の動作中を通じて、このネットワーク上のノードの1つとしての画像処理装置1上に存続する(後述するliveオペレーションの実装内部で無限ループを構成している)。   The printer control object 43 and the image scanner object 44 are resident agents. That is, when the interpreter starts processing after the image processing apparatus 1 is started up, a resident agent is automatically generated, initialized, and started as part of the initial processing. These resident agents remain on the image processing apparatus 1 as one of the nodes on this network throughout the operation of the image processing apparatus 1 (which constitutes an infinite loop within the implementation of the live operation described later). .

図4において2つ存在するモバイルエージェント41、42は、ある仕事のエージェントとしての役割を担うオブジェクトのうち、あるネットワークノード上のインタプリタから別のネットワークノード上のインタプリタヘ移動する性質を持つオブジェクトである。モバイルエージェントは、そのスクリプト中に「移動」を意味するオペレーション(以下goオペレーションと呼ぶ)を呼び出す命令を含む。   In FIG. 4, two mobile agents 41 and 42 that exist as agents for a certain job are objects that have the property of moving from an interpreter on one network node to an interpreter on another network node. . The mobile agent includes an instruction for calling an operation meaning “move” (hereinafter referred to as “go operation”) in the script.

画像処理装置1および図1のクライアント3,8内のインタプリタはモバイルエージェントオブジェクトの命令列の解釈実行中にgoオペレーションを発見すると、オブジェクトエンコーダによってその時点の該オブジェクトに含まれるすべての実行に係るデータと命令列とをそれらのデータ構造を復元可能な符号化方法によって符号化し、符号化したパッケージをネットワークパケットとしてgoオペレーションの引数に指定されたノード(たとえば画像処理装置1)のインタプリタに宛てて転送する。   When the interpreter in the image processing apparatus 1 and the clients 3 and 8 in FIG. 1 finds a go operation while interpreting and executing the instruction sequence of the mobile agent object, data related to all executions included in the object at that time by the object encoder And the instruction sequence are encoded by an encoding method capable of restoring their data structure, and the encoded package is transferred as a network packet to an interpreter of a node (for example, the image processing apparatus 1) designated as an argument of the go operation. To do.

転送されたパケットを受け取ったノードのインタプリタ45は、オブジェクトデコーダによって、そのパケットを実行可能な命令とデータとして該インタプリタが管理するメモリ空間に復号化し、さらにオブジェクトスケジューラのスケジュール対象に参加させる。転送され復号化されたオブジェクトの実行に係るデータ中には、該オブジェクトの次に実行すべき命令の位置を示すデータも含まれているため、該オブジェクトが転送先のノードで最初に実行する命令は転送元ノードで最後に実行した命令の次のものとなる。かくして、モバイルエージェント(41、42)はモバイルエージェントの実行環境(インタプリタ)を含む画像処理装置1やクライアント3,8等のネットワークノード間を移動しながら、自らの命令列に記述された処理を遂行する。   The interpreter 45 of the node that has received the transferred packet uses the object decoder to decode the packet as executable instructions and data into a memory space managed by the interpreter, and further participate in the scheduling target of the object scheduler. Since the data related to the execution of the transferred and decrypted object includes data indicating the position of the instruction to be executed next to the object, the instruction that the object executes first at the transfer destination node Is next to the last instruction executed at the transfer source node. Thus, the mobile agent (41, 42) performs the processing described in its command sequence while moving between the network nodes such as the image processing apparatus 1 and the clients 3, 8 including the execution environment (interpreter) of the mobile agent. To do.

インタプリタ45が扱うすべてのオブジェクトは、その命令列によって自らを初期化するために必要な処理を定義したオペレーション(以下ではinitializeオペレーションと呼ぶ)を持っている。インタプリタ45は、オブジェクトを生成したとき最初に、このinitializeオペレーションの実装として記述された命令列を実行する。   All objects handled by the interpreter 45 have an operation (hereinafter referred to as an initialize operation) that defines a process necessary for initializing itself by the instruction sequence. When the interpreter 45 generates an object, the interpreter 45 first executes an instruction sequence described as an implementation of the initialize operation.

また、モバイルエージェント(41、42)と常駐エージェント(43、44)は、自らの存続に渡って行う一連の処理を定義したオペレーション(以下ではliveオペレーションと呼ぶ)を持つ。インタプリタは、オブジェクトの初期化が済むとこのliveオペレーションの実装として記述された命令列を実行する。   In addition, the mobile agent (41, 42) and the resident agent (43, 44) have an operation (hereinafter referred to as a live operation) that defines a series of processes to be performed over its own existence. The interpreter executes the instruction sequence described as the implementation of the live operation after the initialization of the object.

liveオペレーションに記述された命令列の実行が終了すると、インタプリタはオブジェクトを削除し、該オブジェクトだけが使用していたメモリ領域をすべて解放する。また、オブジェクトは、他のオブジェクトとメッセージパッシングによって対話することができる。   When the execution of the instruction sequence described in the live operation is completed, the interpreter deletes the object and releases all memory areas used only by the object. Objects can also interact with other objects by message passing.

各ノードに存在するインタプリタのメモリ空間はそれぞれのノード毎にまったく異なるものであるため、特に、あるノードにおいてモバイルエージェントが他のエージェントと対話を開始するためには、それに先立ってモバイルエージェントは相手エージェントのオブジェクトヘの参照を獲得しなければならない。この操作は、モバイルエージェントの命令列中で、対話したい相手のオブジェクトを指定するための識別情報を引き数として、インタプリタが提供する組み込みオペレーションである対話要求オペレーション(以下ではmeetオペレーションと呼ぶ)を呼び出すことで実現できる。   Since the memory space of the interpreter that exists in each node is completely different for each node, in particular, in order for a mobile agent to start a conversation with another agent at a certain node, the mobile agent must have a partner agent prior to that. You must get a reference to the object. This operation calls an interaction request operation (hereinafter referred to as a meet operation), which is a built-in operation provided by the interpreter, using as an argument the identification information for designating the partner object to be interacted with in the instruction sequence of the mobile agent. This can be achieved.

ここで、相手オブジェクトを指定するための識別情報は、ユニークなオブジェクト識別子、あるいはオブジェクトが属するクラスの識別子などの該当するオブジェクトの条件を示す情報である。   Here, the identification information for designating the partner object is information indicating a condition of the corresponding object such as a unique object identifier or an identifier of a class to which the object belongs.

meetオペレーションに成功すると、モバイルエージェントは相手オブジェクトの参照を得、これを用いて相手オブジェクトのオペレーションを実行できるようになる。すなわち、メッセージの対話が可能となる。   If the meet operation is successful, the mobile agent obtains a reference to the partner object and can use it to execute the operation of the partner object. That is, message dialogue is possible.

たとえば、図4において、他のノードから移動してきたモバイルエージェント41やモバイルエージェント42は、常駐エージェントであるプリンタ制御オブジェクト43やイメージスキャナオブジェクト44とmeetすると、相手の公開されたデータにアクセスし、公開されたオペレーションを呼び出すことができるようになる。   For example, in FIG. 4, when the mobile agent 41 or mobile agent 42 that has moved from another node meets the printer control object 43 or image scanner object 44 that is a resident agent, the other party's published data is accessed and published. Will be able to invoke the specified operation.

したがって、クライアント3において生成、起動されたモバイルエージェント41、42は、画像処理装置1のインタプリタに移動して、そこでネットワークを介さず、直接、画像処理装置1のプリンタ制御オブジェクト43やイメージスキャナ制御オブジェクト44と対話することにより、画像処理装置1で所望の動作、つまりスキャナによる画像読み取りや画像記録を実行することができる。   Accordingly, the mobile agents 41 and 42 generated and activated in the client 3 move to the interpreter of the image processing apparatus 1 and directly there without passing through the network, the printer control object 43 or the image scanner control object of the image processing apparatus 1. By interacting with 44, the image processing apparatus 1 can execute a desired operation, that is, image reading or image recording by a scanner.

以下、図6以降のフローチャートを参照して上記構成における動作につき説明する。以下では、画像記録を例に説明するが、同様の制御により、スキャナによる画像読み取りなどの処理を実行できるのはもちろんである。   The operation in the above configuration will be described below with reference to the flowcharts in FIG. In the following, image recording will be described as an example, but it is needless to say that processing such as image reading by a scanner can be executed by similar control.

図6は、本実施例に係るモバイルエージェントのliveオペレーションを実装する命令列の処理手順を示すフローチャートである。   FIG. 6 is a flowchart illustrating the processing sequence of the instruction sequence for implementing the live operation of the mobile agent according to the present embodiment.

クライアント3で起動したモバイルエージェントは、ステップS161でクライアントマシンのローカルなファイルシステムからユーザが指定した印刷すべきファイルをオープンし、それを自らの属性の1つであるバッファに読み出す。   In step S161, the mobile agent activated by the client 3 opens a file to be printed designated by the user from the local file system of the client machine, and reads it into a buffer that is one of its attributes.

次にステップS162で、画像処理装置1を宛先とするgoオペレーションで画像処理装置上のインタプリタヘ移動する。この際、命令列とともに、オブジェクト内の印刷すべきデータも図5の形式によりエンコードされて画像処理装置に転送される。また、エージェントの移動が完了すると、クライアント3上のインタプリタはこのモバイルエージェントオブジェクトを内部テーブルから削除し、このオブジェクトを利用していたメモリ空間等の資源を解放する。   In step S162, the go operation with the image processing apparatus 1 as the destination moves to the interpreter on the image processing apparatus. At this time, together with the instruction sequence, the data to be printed in the object is also encoded in the format of FIG. 5 and transferred to the image processing apparatus. When the movement of the agent is completed, the interpreter on the client 3 deletes this mobile agent object from the internal table, and releases resources such as a memory space that uses this object.

ステップS163は、画像処理装置1のメモリ上でインタプリタ45により移動したモバイルエージェントがデコードされ、その実行が開始される。そして、モバイルエージェントは画像処理装置1のインタプリタに常駐するプリンタ制御オブジェクトとの対話をインタプリタ45に要求する。   In step S163, the mobile agent moved by the interpreter 45 on the memory of the image processing apparatus 1 is decoded, and its execution is started. Then, the mobile agent requests the interpreter 45 to interact with the printer control object residing in the interpreter of the image processing apparatus 1.

ステップS164では、プリンタ制御オブジェクト44の平均利用頻度獲得オペレーションを呼び出し、プリンタエンジンの最近の平均利用頻度を獲得する。   In step S164, an average usage frequency acquisition operation of the printer control object 44 is called to acquire the latest average usage frequency of the printer engine.

ステップS165では、この結果を所定の利用頻度と比較し、最近の利用頻度が十分に低いかどうかの判定を行う。例えば獲得した最近1時間の平均利用頻度が2〜3回/時間であり、命令列に埋め込まれた閾値の定数が0.5回/時間であれば、この判定結果は偽となりステップS166に進む。   In step S165, this result is compared with a predetermined usage frequency to determine whether the recent usage frequency is sufficiently low. For example, if the acquired average usage frequency over the last hour is 2 to 3 times / hour and the threshold constant embedded in the instruction sequence is 0.5 times / hour, the determination result is false and the process proceeds to step S166. .

ステップS166では、組み込みオペレーションであるsleepによって、命令列に埋め込まれた待ち時間(例えば30分間)の実行休止を行う。実行休止時間が経過すると、命令列の実行を再開し、ステップS164に戻り、その時点での最近の平均利用頻度の獲得と判定を再度行う。   In step S166, execution of the waiting time (for example, 30 minutes) embedded in the instruction sequence is suspended by the sleep operation that is an embedded operation. When the execution suspension time elapses, execution of the instruction sequence is resumed, and the process returns to step S164, and the acquisition and determination of the latest average usage frequency at that time are performed again.

一方、ステップS165の判定において、例えば最近1時間の平均利用頻度が0回であり、命令列に埋め込まれた閾値の定数が0.5回/時間であれば、判定結果は真となり、ステップS167に進む。   On the other hand, in the determination in step S165, for example, if the average usage frequency in the last hour is zero and the threshold constant embedded in the instruction sequence is 0.5 times / hour, the determination result is true, and step S167 Proceed to

ステップS167では、ステップS162でモバイルエージェントの属性たる自己のバッファ内に格納している印刷データ(クライアント3で格納されたもの)を引数として、プリンタ制御オブジェクト44のプリント要求オペレーションを呼び出す。この結果、プリンタ制御オブジェクトのプリント要求オペレーションの実装に応じた処理がプリンタ17で実行され、該データのプリントが行われる。プリンタ制御オブジェクト44に解釈させ、プリントさせるデータの形式は任意であるが、たとえば、PostScript や LIPS などの PDL が考えられる。   In step S167, the print request operation of the printer control object 44 is called with the print data (stored in the client 3) stored in its own buffer, which is the attribute of the mobile agent in step S162, as an argument. As a result, processing corresponding to the implementation of the print request operation of the printer control object is executed by the printer 17 and the data is printed. The format of data to be interpreted and printed by the printer control object 44 is arbitrary. For example, PDL such as PostScript or LIPS is conceivable.

ステップS167が完了すると、liveオペレーションが終了し、インタプリタ45はこのモバイルエージェントオブジェクトを内部テーブルから削除し、このオブジェクトが利用していたメモリ空間等の資源を解放する。   When step S167 is completed, the live operation ends, and the interpreter 45 deletes the mobile agent object from the internal table and releases resources such as a memory space used by the object.

上記の処理により、クライアント3は、画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信することにより、後は直接、画像処理装置と対話せずデータを印刷できる。しかも、図6の処理によれば、優先度の低いプリントデータを画像処理装置1が空いている時間に自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。   Through the above processing, the client 3 can print the data without directly interacting with the image processing apparatus by transmitting the print data and the mobile agent acting as a proxy for the processing to the image processing apparatus 1. In addition, according to the processing of FIG. 6, detailed processing that requires determination based on the state of the image processing device, such as automatically printing low-priority print data when the image processing device 1 is available. The process itself can be executed without any communication with the client side.

図7〜図9はモバイルエージェントのliveオペレーションの異なる実施例を示す。   7-9 show different embodiments of the mobile agent's live operation.

図7は、モバイルエージェントのliveオペレーションにおいて用紙の量に応じて記録出力を制御する例である。図7は図6とステップS174、S176のみが異なるもので、モバイルエージェントが画像処理装置1のインタプリタに移動した後に行う画像処理装置の状態獲得と処理の続行判定を変更した例である。   FIG. 7 shows an example of controlling the recording output according to the amount of paper in the live operation of the mobile agent. FIG. 7 is different from FIG. 6 only in steps S174 and S176, and is an example in which the acquisition of the state of the image processing apparatus and the process continuation determination performed after the mobile agent moves to the interpreter of the image processing apparatus 1 are changed.

ステップS174ではプリント用紙の残量を獲得し、ステップS176でプリントを用紙の量が十分であればステップS167でプリント処理を行う。   In step S174, the remaining amount of print paper is acquired. If the amount of paper is sufficient in step S176, print processing is performed in step S167.

図7の処理によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、優先度の低い大量のプリントデータをプリンタの紙が十分に補充されるまで待って自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。   According to the processing in FIG. 7, if the client 3 transmits print data and a mobile agent acting on behalf of the processing to the image processing device 1, then the client 3 does not directly interact with the image processing device, and then a large amount of low priority. Detailed processing that requires judgment based on the state of the image processing device, such as automatically printing after waiting until the printer paper is sufficiently replenished, can be easily realized. It can be executed without any communication with the side.

図8は、モバイルエージェントのliveオペレーションにおいてクライアント側から指定した時刻に応じて記録出力を行なう例である。   FIG. 8 shows an example in which recording output is performed according to the time designated from the client side in the live operation of the mobile agent.

図8のステップS184では画像処理装置1内の図示しない時計回路から現在の時刻を獲得し、ステップS186は、命令列に指定された時刻を過ぎていればステップS167でプリント処理を行う。この時刻指定は、命令列に指定データを含めることにより、クライアント側で行う。   In step S184 of FIG. 8, the current time is acquired from a clock circuit (not shown) in the image processing apparatus 1, and in step S186, if the time specified in the instruction sequence has passed, the print process is performed in step S167. This time designation is performed on the client side by including designation data in the instruction sequence.

図8の処理によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信することにより、後は直接画像処理装置と対話せずに、優先度の低い大量のプリントデータを夜中になるのを待って自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、この処理自体もクライアント側との通信を一切行なうことなく実行することができる。   According to the process of FIG. 8, the client 3 transmits print data and a mobile agent acting on behalf of the process to the image processing apparatus 1, so that the client 3 has a low priority without directly interacting with the image processing apparatus thereafter. It is possible to easily realize fine-grained processing that requires judgment based on the state of the image processing device, such as automatically printing a large amount of print data after midnight, and this processing itself is also communicated with the client side. It can be executed without doing any.

次に図9は、モバイルエージェントのliveオペレーションにおいて画像処理装置1のプリンタエンジンの定着温度に応じて記録出力を制御する例である。   Next, FIG. 9 shows an example in which the recording output is controlled according to the fixing temperature of the printer engine of the image processing apparatus 1 in the live operation of the mobile agent.

図9のステップS194では定着部207(図3)の現在の温度を獲得し、ステップS197は、命令列に指定された温度を超えていれば(定着温度が充分であれば)プリント処理を行う。   In step S194 in FIG. 9, the current temperature of the fixing unit 207 (FIG. 3) is acquired. In step S197, if the temperature specified in the instruction sequence is exceeded (if the fixing temperature is sufficient), a print process is performed. .

本実施例によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、特に装置の立ち上げ時などに装置の準備が整うまで待ってから自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理をわかりやすく実現できる。   According to the present embodiment, if the client 3 transmits print data and a mobile agent acting on behalf of the processing to the image processing apparatus 1, the client 3 does not directly interact with the image processing apparatus thereafter, particularly when the apparatus is started up. Thus, it is possible to easily realize fine-grained processing that requires determination based on the state of the image processing apparatus, such as automatically printing after waiting until the apparatus is ready.

以上説明したように、本実施例によれば、クライアント3は画像処理装置1に対してプリントデータとその処理を代行するモバイルエージェントを送信すれば、後は直接画像処理装置と対話せずに、優先度の低いプリントデータをプリンタが空いている時間に自動的にプリントするといった、画像処理装置の状態に基づく判定を必要とするきめの細かい処理を容易に実現でき、しかもこの処理自体もクライアント側との通信を一切行なうことなく実行することができる。   As described above, according to the present embodiment, if the client 3 transmits print data and a mobile agent acting on behalf of the processing to the image processing apparatus 1, the client 3 does not directly interact with the image processing apparatus thereafter. Detailed processing that requires judgment based on the status of the image processing device, such as automatically printing low-priority print data when the printer is idle, can be easily realized. It can be executed without any communication with.

なお、以上では、画像処理装置1の状態に基づく判定による処理として「優先順位の低いプリントを装置の利用頻度が低くなったら処理する」(図6)および、「量の多いプリントを用紙の量が十分になったら処理する」(図7)、「時刻が指定時刻になったら処理する」(図8)、「定着部207の温度が指定温度よりも高くなったら処理する」(図9)構成を示したが、モバイルエージェントが移動先のOA装置において実行する制御は上記に限定されるものではなく、たとえば、モバイルエージェントの実行に際して、画像記録装置のインタープリタやプリンタ制御オブジェクトのバージョン情報などを参照することにより、異なる方法でプリンタエンジンを制御する、などの動的な変更が可能であり、モバイルエージェントの実装によって種々の所望の制御を行うことが可能であり、これは本実施例の拡張性の高さを示すものである。   Note that, in the above, as a process based on the determination based on the state of the image processing apparatus 1, “print with low priority is processed when the frequency of use of the apparatus is low” (FIG. 6) and “print with a large amount of paper amount” Is processed when the time becomes sufficient "(FIG. 7)," Process when the time reaches the specified time "(FIG. 8)," Process when the temperature of the fixing unit 207 becomes higher than the specified temperature "(FIG. 9). Although the configuration has been shown, the control executed by the mobile agent in the destination OA device is not limited to the above. For example, when the mobile agent is executed, the interpreter of the image recording device, the version information of the printer control object, etc. By referencing, dynamic changes such as controlling the printer engine in different ways are possible, and it is possible to implement mobile agents What it is possible to perform various desired control, which illustrates the scalability of the height of the embodiment.

また、以上では、画像記録を例に説明したが、同様の制御により、スキャナによる画像読み取りなどの処理を実行できるのはもちろんであり、その場合、クライアントから移動してきたモバイルエージェントの制御によりスキャナによる画像読み取りを行ない、再度goオペレーションによりクライアントに移動することにより、読み取られた画像をクライアントに運ぶことも可能となる。   In the above description, image recording has been described as an example, but it is possible to execute processing such as image reading by a scanner under similar control. In this case, the scanner is controlled by the mobile agent that has moved from the client. It is also possible to carry the read image to the client by reading the image and moving to the client again by the go operation.

また、画像の記録、読み取りのみならず、画像データに対する種々の変換処理、たとえば、画像の変倍、中間調処理、画像ファイルフォーマットの変換などの任意の変換処理を行なう画像処理装置において、目的の画像変換処理を上記同様のモバイルエージェント制御により実施できるのはいうまでもない。   Further, in an image processing apparatus that performs not only image recording and reading, but also various conversion processing for image data, for example, arbitrary conversion processing such as image scaling, halftone processing, image file format conversion, etc. It goes without saying that the image conversion process can be performed by the mobile agent control similar to the above.

また、本発明においては、制御対象である画像記録装置の動作中を通じてコネクションを張り続ける必要がないため、制御のために利用するネットワークのトラフィックを抑えることができる。   Further, in the present invention, it is not necessary to keep a connection during the operation of the image recording apparatus to be controlled, so that it is possible to suppress network traffic used for control.

また、モバイルエージェントのインタープリタ部分は、クライアントおよびサーバとしての画像記録装置の間で互換性がありさえすれば良く、クライアントおよびサーバのオペレーティングシステムに依存せずに記録処理を実行することができる。   In addition, the interpreter portion of the mobile agent only needs to be compatible between the image recording apparatus as the client and the server, and can execute the recording process without depending on the operating system of the client and the server.

しかも、モバイルエージェントは、画像記録装置のプリンタ制御オブジェクトが理解する命令列であれば任意の命令列を含めることができる。プリンタ制御を行なう命令列自体が従来技術では画像記録装置内に固定的に格納されていたために拡張性が乏しかったが、本実施例によれば、画像記録装置のプリンタ制御オブジェクトが理解する命令列であれば任意の命令列を実行でき、また、モバイルエージェントの実行に際して画像記録装置のインタープリタやプリンタ制御オブジェクトのバージョン情報などを参照することにより、異なる方法でプリンタエンジンを制御する、などの動的な変更が可能であり、その場合もクライアント側との通信は一切不要である。   In addition, the mobile agent can include an arbitrary instruction sequence as long as the instruction sequence is understood by the printer control object of the image recording apparatus. In the prior art, the instruction sequence itself for performing printer control was fixedly stored in the image recording apparatus, so the expandability was poor. However, according to this embodiment, the instruction sequence understood by the printer control object of the image recording apparatus Any command sequence can be executed, and when the mobile agent is executed, the printer engine is controlled by a different method by referring to the interpreter of the image recording apparatus or the version information of the printer control object. In this case, no communication with the client side is necessary.

また、本実施例によれば、ローカルエリアネットワーク内だけでなく、図1のリモートクライアント8などから、ワイドエリアネットワーク、インターネットのような比較的バンド幅の狭いネットワークを介して、画像処理装置1を制御しようとしたとしても、十分にしかも容易に装置の制御が可能である。さらに、断続的な接続であっても十分に機能するために、リモートクライアント8がダイアルアップ型のネットワーク接続によりワイドエリアネットワークに接続しているような場合でも十分にしかも容易に画像処理装置1を制御することができる。   Further, according to the present embodiment, the image processing apparatus 1 can be connected not only in the local area network but also from the remote client 8 in FIG. 1 or the like via a network with a relatively narrow bandwidth such as a wide area network or the Internet. Even if an attempt is made to control the apparatus, the apparatus can be controlled sufficiently and easily. In addition, even if the connection is intermittent, the image processing apparatus 1 can be controlled sufficiently and easily even when the remote client 8 is connected to the wide area network through a dial-up network connection. can do.

1 画像処理装置
2 ローカルエリアネットワーク
3 クライアント
4 ローカルルータ
5 ワイドエリアネットワーク
6 リモートネットワーク
7 リモートルータ
8 リモートクライアント
11 ネットワークインタフェースカード
12 プロセッサ
13 ワークメモリ
14 不揮発性メモリ
15 エンジン制御回路
16 画像メモリ
17 プリンタ
18 イメージスキャナ
19 プロセッサバス
20 イメージバス
DESCRIPTION OF SYMBOLS 1 Image processing apparatus 2 Local area network 3 Client 4 Local router 5 Wide area network 6 Remote network 7 Remote router 8 Remote client 11 Network interface card 12 Processor 13 Work memory 14 Non-volatile memory 15 Engine control circuit 16 Image memory 17 Printer 18 Image Scanner 19 Processor bus 20 Image bus

Claims (1)

プリンタエンジンを含む画像処理装置の各種機能を制御するための関数群を記憶する記憶手段と、
前記画像処理装置のオペレーティングシステム上にて実現される、オブジェクトを実行する解釈手段であって、符号化されたコードにより表現される命令列を含むオブジェクト
を解釈する解釈手段と、
前記解釈手段により解釈されたオブジェクトを基に、前記画像処理装置が実行すべき命令を、前記記憶手段により記憶された関数群を介して実行する実行手段とを有し、
前記実行手段は、参照された前記画像処理装置の解釈手段のバージョン情報を基に、バージョン毎に異なる方法で前記プリンタエンジンを制御することを特徴とする画像処理装置。
Storage means for storing a group of functions for controlling various functions of the image processing apparatus including the printer engine;
Interpreting means for executing an object, which is realized on the operating system of the image processing apparatus, and interpreting an object including an instruction sequence expressed by encoded code;
Execution means for executing an instruction to be executed by the image processing apparatus based on the object interpreted by the interpretation means via a function group stored by the storage means;
The image processing apparatus, wherein the execution unit controls the printer engine in a different manner for each version based on the version information of the interpretation unit of the referenced image processing apparatus.
JP2010091691A 2010-04-12 2010-04-12 Image processing apparatus, control method for image processing apparatus, and storage medium Expired - Fee Related JP4642927B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010091691A JP4642927B2 (en) 2010-04-12 2010-04-12 Image processing apparatus, control method for image processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010091691A JP4642927B2 (en) 2010-04-12 2010-04-12 Image processing apparatus, control method for image processing apparatus, and storage medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009106549A Division JP4522476B2 (en) 2009-04-24 2009-04-24 Image processing apparatus, control method for image processing apparatus, and storage medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010251896A Division JP2011078114A (en) 2010-11-10 2010-11-10 Image processing apparatus, method of controlling the same, and program

Publications (2)

Publication Number Publication Date
JP2010218561A JP2010218561A (en) 2010-09-30
JP4642927B2 true JP4642927B2 (en) 2011-03-02

Family

ID=42977260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010091691A Expired - Fee Related JP4642927B2 (en) 2010-04-12 2010-04-12 Image processing apparatus, control method for image processing apparatus, and storage medium

Country Status (1)

Country Link
JP (1) JP4642927B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1044672C (en) * 1993-01-14 1999-08-18 日清食品株式会社 Making of dough food
JP2011078114A (en) * 2010-11-10 2011-04-14 Canon Inc Image processing apparatus, method of controlling the same, and program

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604600A (en) * 1995-12-06 1997-02-18 Xerox Corporation Production trees for generic representation of document requirements for particular output terminals
EP0778515A1 (en) * 1995-12-06 1997-06-11 Xerox Corporation Generic assembly trees providing job control and mix and match of modules
WO1997036226A1 (en) * 1996-03-22 1997-10-02 Hitachi, Ltd. Printing system
WO1997043720A1 (en) * 1996-05-14 1997-11-20 Ricoh Company, Ltd. Java printer
US5726883A (en) * 1995-10-10 1998-03-10 Xerox Corporation Method of customizing control interfaces for devices on a network
JP4154416B2 (en) * 2005-10-11 2008-09-24 キヤノン株式会社 Image processing apparatus, control method for image processing apparatus, and storage medium
JP2008312204A (en) * 2008-06-09 2008-12-25 Canon Inc Image processing device, control method thereof, and storage medium
JP4522476B2 (en) * 2009-04-24 2010-08-11 キヤノン株式会社 Image processing apparatus, control method for image processing apparatus, and storage medium

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2093094C (en) * 1992-04-06 2000-07-11 Addison M. Fischer Method and apparatus for creating, supporting, and using travelling programs
JPH06149756A (en) * 1992-11-16 1994-05-31 Hitachi Ltd Method and device for decentralized information processing
JPH07250205A (en) * 1994-03-09 1995-09-26 Matsushita Electric Ind Co Ltd Compound device and its operation control method
JPH07271702A (en) * 1994-04-01 1995-10-20 Canon Inc Scanner printer server system and effective function managing method for the same
JPH0855069A (en) * 1994-08-09 1996-02-27 Ricoh Co Ltd Network system
JPH08154147A (en) * 1994-11-28 1996-06-11 Mita Ind Co Ltd Image processor
JP3689445B2 (en) * 1994-12-28 2005-08-31 キヤノン株式会社 Printing apparatus and system, and control method
JPH08263233A (en) * 1995-03-22 1996-10-11 Sharp Corp Image forming device
JPH08289068A (en) * 1995-04-14 1996-11-01 Ricoh Co Ltd Composite digital copying machine
JPH08289102A (en) * 1995-04-14 1996-11-01 Canon Inc Image processing system
JP3383725B2 (en) * 1995-05-18 2003-03-04 株式会社リコー Failure analysis support device
US5752079A (en) * 1995-09-08 1998-05-12 Canon Kabushiki Kaisha System for reading parameters from portable key module and transferring these parameters to controller to effect distribution and storage of electronic document data throughout network
JPH09179711A (en) * 1995-10-10 1997-07-11 Xerox Corp Method for preserving customized interface control from user display
JP3169815B2 (en) * 1995-12-14 2001-05-28 松下電送システム株式会社 Image communication device and image communication method
JPH09224097A (en) * 1996-02-16 1997-08-26 Canon Inc Data communication equipment
JPH09282154A (en) * 1996-04-19 1997-10-31 Nec Corp Device operation control system
JPH09325928A (en) * 1996-06-06 1997-12-16 Fuji Xerox Co Ltd Method and equipment for communicating message
JPH09330260A (en) * 1996-06-13 1997-12-22 Ricoh Co Ltd Document managing device
JP3209102B2 (en) * 1996-07-19 2001-09-17 セイコーエプソン株式会社 Print system, printer driver and printer
JPH1173381A (en) * 1997-06-26 1999-03-16 Fuji Xerox Co Ltd Image transmitter, image receiver, image processing system, and document/image format
JPH11282684A (en) * 1998-03-27 1999-10-15 Canon Inc Image processor, method for controlling image processor and storage medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5726883A (en) * 1995-10-10 1998-03-10 Xerox Corporation Method of customizing control interfaces for devices on a network
US5604600A (en) * 1995-12-06 1997-02-18 Xerox Corporation Production trees for generic representation of document requirements for particular output terminals
EP0778515A1 (en) * 1995-12-06 1997-06-11 Xerox Corporation Generic assembly trees providing job control and mix and match of modules
EP0778514A1 (en) * 1995-12-06 1997-06-11 Xerox Corporation Production trees for generic representation of document requirements for particular output terminals
US5710635A (en) * 1995-12-06 1998-01-20 Xerox Corporation Generic assembly trees providing job control and mix and match of modules
WO1997036226A1 (en) * 1996-03-22 1997-10-02 Hitachi, Ltd. Printing system
WO1997043720A1 (en) * 1996-05-14 1997-11-20 Ricoh Company, Ltd. Java printer
JP4154416B2 (en) * 2005-10-11 2008-09-24 キヤノン株式会社 Image processing apparatus, control method for image processing apparatus, and storage medium
JP2008312204A (en) * 2008-06-09 2008-12-25 Canon Inc Image processing device, control method thereof, and storage medium
JP4522476B2 (en) * 2009-04-24 2010-08-11 キヤノン株式会社 Image processing apparatus, control method for image processing apparatus, and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1044672C (en) * 1993-01-14 1999-08-18 日清食品株式会社 Making of dough food
JP2011078114A (en) * 2010-11-10 2011-04-14 Canon Inc Image processing apparatus, method of controlling the same, and program

Also Published As

Publication number Publication date
JP2010218561A (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JPH11282684A (en) Image processor, method for controlling image processor and storage medium
JP4154416B2 (en) Image processing apparatus, control method for image processing apparatus, and storage medium
JP3689564B2 (en) OA device, OA system, control method, and storage medium
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
JP2005276175A (en) Scalable print spooler
JP2001265691A (en) Distributed processing system and control method therefor
JP2008293081A (en) Electronic equipment
JP2008312204A (en) Image processing device, control method thereof, and storage medium
JP4474440B2 (en) Provision of services using multifunction peripherals (MFPs)
JP4642927B2 (en) Image processing apparatus, control method for image processing apparatus, and storage medium
JP4522476B2 (en) Image processing apparatus, control method for image processing apparatus, and storage medium
JP2019070969A (en) Information processing device, control method thereof, and program
JP2007043708A (en) Document processing system, method and program
JP2011078114A (en) Image processing apparatus, method of controlling the same, and program
JP2011216095A (en) Image processing unit, control method of image processing unit, and program
JP4574091B2 (en) Image processing apparatus and method
JP2010148123A (en) Image processing apparatus and image processing method
JP7186541B2 (en) IMAGE PROCESSING DEVICE, CONTROL METHOD THEREOF, AND PROGRAM
JP5111326B2 (en) Electronics
JP2004247952A (en) Image processing system
JP5171536B2 (en) Electronics
CN115244487A (en) Operating a host processor in a power save mode
JP2005196366A (en) Image processing device and program
JP2007072899A (en) Communication device and method, and communication system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101201

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees