JP2007012057A - Image forming device, and communication method between processes - Google Patents

Image forming device, and communication method between processes Download PDF

Info

Publication number
JP2007012057A
JP2007012057A JP2006172507A JP2006172507A JP2007012057A JP 2007012057 A JP2007012057 A JP 2007012057A JP 2006172507 A JP2006172507 A JP 2006172507A JP 2006172507 A JP2006172507 A JP 2006172507A JP 2007012057 A JP2007012057 A JP 2007012057A
Authority
JP
Japan
Prior art keywords
service
agent
image forming
message
forming apparatus
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.)
Granted
Application number
JP2006172507A
Other languages
Japanese (ja)
Other versions
JP4350728B2 (en
Inventor
Shigeya Senda
滋也 千田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006172507A priority Critical patent/JP4350728B2/en
Publication of JP2007012057A publication Critical patent/JP2007012057A/en
Application granted granted Critical
Publication of JP4350728B2 publication Critical patent/JP4350728B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Control Or Security For Electrophotography (AREA)
  • Computer And Data Communications (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image forming device and a communication method between processes capable of achieving variable architecture and various functions, and improving software development efficiency. <P>SOLUTION: The image forming device having a hardware resource and a program, is provided with an agent processing means for receiving an agent including one or a plurality of service requests, selecting one or a plurality of control services for every service request of the agent, and performing a service request to the selected control service. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

この発明は、画像形成装置およびプロセス間通信方法に係り、特に複数のプロセスがサーバプロセスまたはクライアントプロセスとしてプロセス間通信を行う画像形成装置およびプロセス間通信方法に関する。   The present invention relates to an image forming apparatus and an interprocess communication method, and more particularly to an image forming apparatus and an interprocess communication method in which a plurality of processes perform interprocess communication as a server process or a client process.

近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が一般的に知られている。   2. Description of the Related Art In recent years, an image forming apparatus (hereinafter, referred to as “multifunction machine”) in which functions of apparatuses such as a printer, a copy machine, a facsimile machine, and a scanner are housed in a single housing is generally known.

この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する3種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。   This multifunction device is provided with a display unit, a printing unit, an imaging unit, and the like in one casing, and is provided with three types of software respectively corresponding to a printer, a copying machine, and a facsimile machine. It operates as a copy, scanner or facsimile machine.

従来の複合機では、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア(汎用OSを含む)をそれぞれ別個に設ける構成となっており、各ソフトウェアの開発に多大の時間を要する。   A conventional multi-function machine has a configuration in which software (including a general-purpose OS) corresponding to a printer, a copy, a scanner, and a facsimile machine is provided separately, and development of each software requires a lot of time.

このため、出願人は、ハードウェア・インターフェースをドライブするドライバと呼ばれるソフトウェア群と、メモリ/タイマなどの共通なハードウェア資産を効率良く使用するためのマネージャ・ソフトウェア群や各アプリケーションで共通に使用できるシステム・ユーティリティ・ソフトウェア群と、これらのドライバ・ソフトウェア群,マネージャ・ソフトウェア群,ユーティリティ・ソフトウェア群を使用するプリンタ/スキャナ/FAX送信/FAX受信などの実アプリケーションとを備えた複合機(特開平9−51398号公報,特開平9−91102号公報参照)を発明した。   For this reason, the applicant can use the software group called the driver that drives the hardware interface, the manager software group for efficiently using the common hardware assets such as the memory / timer, and each application. A multi-function machine comprising a system utility software group and an actual application such as a printer / scanner / fax transmission / fax reception using these driver software group, manager software group, utility software group -51398 and JP-A-9-91102).

しかしながら、特開平9−51398号公報,特開平9−91102号公報に記載されている複合機は、ドライバ・ソフトウェア群,マネージャ・ソフトウェア群,ユーティリティ・ソフトウェア群がライブラリで構成されており、ハードウェア資源を実行制御する主体となり得なかった。   However, the multifunction peripherals described in JP-A-9-51398 and JP-A-9-91102 have a driver software group, a manager software group, and a utility software group configured by a library. It could not be a subject that controls the execution of resources.

そこで、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた複合機(特開2002−82806号公報参照)を発明した。   Accordingly, the applicant has a plurality of applications that have hardware resources used in image forming processing such as a display unit, a printing unit, and an imaging unit, and perform processing unique to each user service such as a printer, copy, or facsimile. When installing and providing user services by interposing between these applications and hardware resources, management, execution control and image formation processing of hardware resources that are shared by at least two of the applications are performed. A multi-function machine (see Japanese Patent Application Laid-Open No. 2002-82806) equipped with a platform comprising various control services to be invented.

なお、ユーザサービスとはユーザに提供する画像形成に係るサービスをいう。また、コントロールサービスとはアプリケーションに画像形成に係るハードウェア資源を提供するサービスをいう。   The user service is a service related to image formation provided to the user. The control service refers to a service that provides hardware resources related to image formation to an application.

この複合機によれば、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
特開平9−51398号公報 特開平9−91102号公報 特開2002−82806号公報
According to this multi-function peripheral, it is possible to improve the efficiency of software development by providing a platform for performing management, execution control, and image formation processing of hardware resources commonly required by at least two applications. As a result, the productivity of the entire apparatus can be improved.
JP-A-9-51398 JP-A-9-91102 JP 2002-82806 A

このような複合機では、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスを有する構成となっているため、機能変更、機能追加、または将来的なハードウェア資源の追加、変更などに柔軟に対応すべく、アプリケーションごとあるいはコントロールサービスごとの追加、変更を容易に行えることが望まれる。また、ユーザサービスを提供する際に、各アプリケーションと各コントロールサービス間、あるいは各コントロールサービス間でサービスやデータの授受を円滑に行うことが必要となってくる。   Such a multi-function peripheral has a control service that provides services that are commonly required by at least two of the applications. Therefore, it is possible to change functions, add functions, or add or change hardware resources in the future. It is desirable to be able to easily add or change for each application or control service in order to respond flexibly to the above. Further, when providing a user service, it is necessary to smoothly exchange services and data between each application and each control service or between each control service.

すなわち、複合機は、プリンタ、コピー、ファクシミリ、スキャナなど多種の機能を備えたものであるが、その一部の機能に故障あるいは仕様変更などが生じた場合に、全てのアプリケーションまたは全てのコントロールサービスのモジュールを修正しなければならないと、作業の労力が過大となる。   In other words, a multifunction device has a variety of functions such as printers, copiers, facsimiles, scanners, etc., but if some of the functions fail or specification changes occur, all applications or all control services If you have to modify these modules, the work effort will be excessive.

また、将来的に、複合機に新たな機能を追加する場合でも一部の機能の追加のために全てのコントロールサービスや全てのアプリケーションのモジュール変更が必要となると、プログラム開発の労力が過大となってしまう。このため、複合機上で動作する各アプリケーションや各コントロールサービスのモジュールは互いにサービスやデータの送受信を実現としながらも、モジュール間の独立性を維持していることが必要となってくる。   Also, even if new functions are added to the MFP in the future, if it is necessary to change all control services and all application modules to add some functions, the program development effort will be excessive. End up. For this reason, it is necessary for each application and each control service module operating on the multifunction peripheral to maintain the independence between the modules while realizing the transmission and reception of services and data with each other.

言い換えれば、各アプリケーションや各コントロールサービスごとに独立性がないと、必要なアプリケーションや必要なコントロールサービスのみを提供することが困難となり、機能変更や機能追加などに柔軟に対応できるような複合機の構成に可変性を持たせることができないという問題がある。   In other words, if there is no independence for each application and each control service, it will be difficult to provide only the necessary applications and necessary control services, and a multifunction device that can flexibly respond to function changes and additions. There is a problem that the configuration cannot have variability.

また、各アプリケーションや各コントロールサービスごとに独立性がないと、モジュール間のデータの送受信の実現方法の開発も困難になる。さらにはアプリケーションやコントロールサービスごとの設計および構築が困難になり、その結果、多種多様な機能を提供することができないという問題がある。   Also, if there is no independence for each application or each control service, it will be difficult to develop a method for realizing data transmission / reception between modules. Furthermore, it becomes difficult to design and construct each application and control service, and as a result, there is a problem that a wide variety of functions cannot be provided.

とくに、複合機はプリンタ、コピー、スキャナ、ファックスなど多機能が搭載されたものであるため、ネットワークに接続してPC(Personal Computer)などから複数の機能を連続的に使用したい場合がある。しかしながら、従来の複合機では機能ごとのコマンドなどで別個に要求する必要がある。   In particular, since a multifunction peripheral is equipped with a multi-function such as a printer, a copy, a scanner, and a fax machine, there are cases where it is desired to use a plurality of functions continuously from a PC (Personal Computer) connected to a network. However, it is necessary for a conventional multifunction device to make a separate request with a command for each function.

また、複合機は提供可能なサービスがすべて統一されているわけではなく、例えばプリンタ機能とコピー機能のみを提供できる複合機やこれに加えてファックス送信機能を提供できる複合機などが存在する。このような提供機能の異なる複数の複合機をネットワークに接続した場合において、たとえば、ある複合機に対してファックス送信要求を行ったところ、その複合機ではファックス送信機能が搭載されていない場合、ユーザは改めて別の複合機に対してファックス送信要求を行わなければならない。   In addition, all the services that can be provided for a multifunction device are not unified. For example, there are multifunction devices that can provide only a printer function and a copy function, and multifunction devices that can provide a fax transmission function. When multiple MFPs with different provision functions are connected to the network, for example, when a fax transmission request is made to a certain MFP and the MFP does not have a fax transmission function, the user Needs to send a fax transmission request to another multifunction device.

このように、従来の複合機をネットワークに接続して使用する場合には、多種多様な機能を効率的に提供することができないという問題がある。   As described above, when a conventional multi-function peripheral is connected to a network and used, there is a problem that various functions cannot be efficiently provided.

この発明は上記に鑑みてなされたもので、可変性のあるアーキテクチャおよび多種多様な機能を実現することができるとともに、ソフトウェア開発効率の向上を図ることができる画像形成装置およびプロセス間通信方法を得ることを主な目的とする。   The present invention has been made in view of the above, and provides an image forming apparatus and an interprocess communication method capable of realizing a variable architecture and various functions and improving software development efficiency. The main purpose.

また、この発明はネットワークに画像形成装置を接続して使用する場合に、多種多様な機能を効率的に提供することができる画像形成装置およびプロセス間通信方法を得ることを目的とする。   Another object of the present invention is to provide an image forming apparatus and an interprocess communication method capable of efficiently providing a wide variety of functions when the image forming apparatus is connected to a network.

上記課題を解決するため、請求項1にかかる発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係るユーザサービスおよびコントロールサービスの処理を行う一または複数のプログラムとを有する画像形成装置であって、一または複数のサービス要求を含むエージェントを受信し、該エージェントのサービス要求ごとに一または複数の前記コントロールサービスを選定して、選定された前記コントロールサービスに対してサービス要求を行うエージェント処理手段を備えたことを特徴とする。   In order to solve the above-mentioned problem, an invention according to claim 1 is an image forming system including hardware resources used in image forming processing and one or a plurality of programs for processing user services and control services related to image forming. A device that receives an agent including one or more service requests, selects one or more control services for each service request of the agent, and makes a service request to the selected control services Agent processing means is provided.

この請求項1の発明によれば、サービスの提供を受ける側は複数のサービス要求を一度に行えば、必要なコントロールサービスが自律的に判断されるので、連続的なサービスの提供を効率よく行うことができる。   According to the first aspect of the present invention, if a service receiving side makes a plurality of service requests at a time, a necessary control service is autonomously determined, so that continuous service provision is efficiently performed. be able to.

また、複数のサービス要求を一度行えば連続的なサービスの提供を行えるので、個々のサービス要求ごとにネットワークを占有する必要がなくなり、ネットワークの負荷を軽減することができる。   Further, since a continuous service can be provided once a plurality of service requests are made, it is not necessary to occupy the network for each service request, and the load on the network can be reduced.

この請求項1にかかる発明において、コントロールサービスが動作している画像形成装置は、ユーザサービスおよびコントロールサービスを搭載可能であればその構成は限定されるものではない。   In the first aspect of the invention, the configuration of the image forming apparatus on which the control service is operating is not limited as long as the user service and the control service can be installed.

すなわち、当該画像形成装置は、サービスを提供するコントロールサービスが1つでも搭載されていれば良く、ユーザサービスが未搭載の画像形成装置や、コントロールサービスが1個のみ搭載されている画像形成装置も含まれる。   That is, the image forming apparatus only needs to have at least one control service for providing a service, and an image forming apparatus with no user service installed or an image forming apparatus with only one control service installed is also available. included.

また、請求項2にかかる発明は、前記エージェント処理手段は、前記サービス要求に必要なコントロールサービスが正常動作しているか否かを判断し、正常動作してない場合に、ネットワークを介して接続された他の画像形成装置に前記エージェントを送信することを特徴とする。   In the invention according to claim 2, the agent processing means determines whether or not the control service required for the service request is operating normally, and is connected via a network when the service is not operating normally. The agent is transmitted to another image forming apparatus.

この請求項2の発明によれば、サービス要求に必要なコントロールサービスを自己の画像形成装置だけでなくネットワーク上の画像形成装置からも自律的に判断しているので、サービスの提供を受ける側は、一つの画像形成装置に対しサービス要求を行えばネットワーク上の複数の画像形成装置にアクセスする必要がなく、効率的なサービスの提供を受けることができる。   According to the second aspect of the present invention, the control service necessary for the service request is autonomously determined not only from the own image forming apparatus but also from the image forming apparatus on the network. If a service request is made to one image forming apparatus, it is not necessary to access a plurality of image forming apparatuses on the network, and an efficient service can be provided.

また、サービスの提供を受ける側は、何度もネットワークを介して画像形成装置との間でメッセージの送受信を行う必要がなくなるので、ネットワークの負荷を軽減することができる。   In addition, the side receiving the service provision does not need to repeatedly send and receive messages to and from the image forming apparatus via the network, so the load on the network can be reduced.

また、請求項3にかかる発明は、前記エージェント処理手段は、さらに、前記サービス要求ごとに一または複数の前記ユーザサービスを選定して、選定された前記ユーザサービスに対してサービス要求を行うことを特徴とする。   According to a third aspect of the present invention, the agent processing means further selects one or a plurality of the user services for each service request and makes a service request for the selected user services. Features.

この請求項3の発明によれば、サービスの提供を受ける側は複数のサービス要求を一度に行えば、必要なユーザサービスが自律的に判断されるので、連続的なサービスの提供を効率よく行うことができる。   According to the third aspect of the present invention, if a service receiving side makes a plurality of service requests at a time, a necessary user service is autonomously determined, so that continuous service provision is efficiently performed. be able to.

また、連続的なサービスの提供を行えるので、個々のサービス要求ごとにネットワークを占有する必要がなくなり、ネットワークの負荷を軽減することができる。   Further, since continuous service can be provided, it is not necessary to occupy the network for each service request, and the load on the network can be reduced.

また、請求項4にかかる発明は、前記エージェント処理手段は、前記サービス要求に必要な前記ユーザサービスが正常動作しているか否かを判断し、正常動作していない場合に、ネットワークを介して接続された他の画像形成装置に前記エージェントを送信することを特徴とする。   According to a fourth aspect of the present invention, the agent processing means determines whether or not the user service required for the service request is operating normally. If the user service is not operating normally, the agent processing means connects via the network. The agent is transmitted to the other image forming apparatus.

この請求項4の発明によれば、サービス要求に必要なユーザサービスを自己の画像形成装置だけでなくネットワーク上の画像形成装置からも自律的に判断しているので、サービスの提供を受ける側は一つの画像形成装置に対しサービス要求を行えばネットワーク上の複数の画像形成装置にアクセスする必要がなく、効率的なサービスの提供を受けることができる。   According to the fourth aspect of the present invention, the user service required for the service request is autonomously determined not only from the own image forming apparatus but also from the image forming apparatus on the network. If a service request is made to one image forming apparatus, it is not necessary to access a plurality of image forming apparatuses on the network, and an efficient service can be provided.

また、サービスの提供を受ける側は、何度もネットワークを介して画像形成装置との間でメッセージの送受信を行う必要がなくなるので、ネットワークの負荷を軽減することができる。   In addition, the side receiving the service provision does not need to repeatedly send and receive messages to and from the image forming apparatus via the network, so the load on the network can be reduced.

また、請求項5にかかる発明は、前記ユーザサービスに含まれ、前記エージェント処理手段として動作するエージェントアプリをさらに備えたことを特徴とする。   The invention according to claim 5 further includes an agent application included in the user service and operating as the agent processing means.

この請求項5の発明によれば、コントロールサービスとエージェントアプリとのプロセス間通信をアプリケーションインタフェースを用いて行うことができ、エージェントアプリのソフトウェア開発労力を軽減することができる。   According to the fifth aspect of the present invention, inter-process communication between the control service and the agent application can be performed using the application interface, and the software development effort of the agent application can be reduced.

また、請求項6にかかる発明は、前記コントロールサービスは、ネットワークを介して接続された他の画像形成装置で動作するクライアントプロセスに対するサーバプロセスとして動作し、前記他の画像形成装置のクライアントプロセスに提供する一または複数のサービスを定義したメソッドを有するオブジェクトであることを特徴とする。   According to a sixth aspect of the present invention, the control service operates as a server process for a client process operating on another image forming apparatus connected via a network, and is provided to the client process of the other image forming apparatus. It is an object having a method that defines one or a plurality of services.

この請求項6の発明によれば、コントロールサービスはネットワーク上の他の画像形成装置で動作するプロセスをクライアントとしたサーバプロセスとしてメソッド実行によるサービスの提供によりプロセス間通信を実現することができ、同一の画像形成装置内のプロセスだけでなく、ネットワーク上の画像形成装置に対してもサービスの提供が可能となり、多種多様な機能を実現することができる。   According to the invention of claim 6, the control service can realize inter-process communication by providing a service by executing a method as a server process using a process operating on another image forming apparatus on the network as a client. Service can be provided not only to the processes in the image forming apparatus but also to the image forming apparatuses on the network, and various functions can be realized.

また、請求項7にかかる発明は、前記コントロールサービスの各プロセスは、前記他の画像形成装置のクライアントプロセスに提供するサービスを定義したメソッドを実行する一または複数のスレッドを生成するものであることを特徴とする。   In the invention according to claim 7, each process of the control service generates one or a plurality of threads for executing a method defining a service provided to a client process of the other image forming apparatus. It is characterized by.

この請求項7の発明によれば、ネットワーク上の他の画像形成装置で動作するアプリケーションなどのユーザサービスのプロセスに提供するサービスを並列実行させることができる。   According to the seventh aspect of the present invention, services provided to a user service process such as an application running on another image forming apparatus on the network can be executed in parallel.

このため、例えば、ネットワーク上の異なる複数の画像形成装置のクライアントプロセスから同時にサービス要求があった場合でも、実行制御の切り替えの速いスレッドでサービスを並列実行させるので、ネットワーク上の複数の画像形成装置へのサービスの提供を迅速に行うことが可能となる。   For this reason, for example, even when there is a service request simultaneously from client processes of a plurality of different image forming apparatuses on the network, the service is executed in parallel with a thread with fast switching of execution control. It is possible to provide services to

また、請求項8にかかる発明は、前記コントロールサービスは、前記他の画像形成装置で動作するユーザサービスをクライアントプロセスとしたサーバプロセスとして動作することを特徴とする。   The invention according to claim 8 is characterized in that the control service operates as a server process using a user service operating on the other image forming apparatus as a client process.

この請求項8の発明によれば、ネットワーク上の他の画像形成装置で動作するユーザサービスのプロセスに対してコントロールサービスの機能を提供することができる。   According to the eighth aspect of the present invention, it is possible to provide a control service function to a user service process operating on another image forming apparatus on the network.

また、コントロールサービスがネットワーク上の画像形成装置内に存在しない場合や使用できない場合でも、メソッド実行によって当該ネットワーク上の画像形成装置にコントロールサービスの機能を提供できるので、ネットワークを利用した複数の画像形成装置間でコントロールサービスの機能の共有化を実現することが可能となる。   Even when the control service does not exist in the image forming apparatus on the network or cannot be used, the function of the control service can be provided to the image forming apparatus on the network by executing the method. It becomes possible to share control service functions between devices.

また、請求項9にかかる発明は、前記コントロールサービスは、前記他の画像形成装置で動作するコントロールサービスをクライアントプロセスとしたサーバプロセスとして動作することを特徴とする。   The invention according to claim 9 is characterized in that the control service operates as a server process using a control service operating on the other image forming apparatus as a client process.

この請求項9の発明によれば、ネットワーク上の他の画像形成装置で動作するコントロールサービスに対してコントロールサービスの機能を提供することができる。   According to the ninth aspect of the present invention, the function of the control service can be provided to the control service that operates on another image forming apparatus on the network.

また、あるコントロールサービスがネットワーク上の画像形成装置内に存在しない場合や使用できない場合でも、メソッド実行によって当該ネットワーク上の画像形成装置にコントロールサービスの機能を提供できるので、ネットワークを利用した複数の画像形成装置間でコントロールサービスの機能の共有化を実現することが可能となる。   Even when a certain control service does not exist in the image forming apparatus on the network or cannot be used, the function of the control service can be provided to the image forming apparatus on the network by executing the method. It becomes possible to share the function of the control service between the forming apparatuses.

また、請求項10にかかる発明は、前記コントロールサービスは、前記他の画像形成装置で動作するコントロールサービスをサーバプロセスとしたクライアントプロセスとして動作することを特徴とする。   The invention according to claim 10 is characterized in that the control service operates as a client process in which the control service operating in the other image forming apparatus is a server process.

この請求項10の発明によれば、コントロールサービスはネットワーク上のコントロールサービスからサービスの提供を受けることができる。また、ネットワーク上の画像形成装置でコントロールサービスが使用できない場合でも、メソッド実行によるメッセージ送信というプロセス間通信によって、ネットワーク上の画像形成装置のコントロールサービスからのサービスの提供を受けることができるので、ネットワークを利用した複数の画像形成装置間でコントロールサービスの機能の共有化を実現することが可能となる。   According to the invention of claim 10, the control service can receive the service from the control service on the network. Further, even when the control service cannot be used in the image forming apparatus on the network, the service can be provided from the control service of the image forming apparatus on the network by interprocess communication called message transmission by method execution. It becomes possible to share the function of the control service among a plurality of image forming apparatuses using the.

また、請求項11にかかる発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係るユーザサービスおよびコントロールサービスの処理を行う一または複数のプログラムとを有する画像形成装置でプロセス通信を行うプロセス間通信方法あって、一または複数のサービス要求を含むエージェントを受信するエージェント受信ステップと、前記エージェントのサービス要求ごとに一または複数の前記コントロールサービスのプロセスを選定して、選定された前記コントロールサービスのプロセスに対してサービス要求を行うエージェント処理ステップとを含んだことを特徴とする。   According to an eleventh aspect of the present invention, process communication is performed by an image forming apparatus having hardware resources used in image forming processing and one or a plurality of programs for processing user services and control services related to image forming. An inter-process communication method for performing an agent reception step of receiving an agent including one or more service requests, selecting one or more processes of the control service for each service request of the agent, and selecting the selected And an agent processing step for making a service request to the control service process.

この請求項11の発明によれば、サービスの提供を受ける側は複数のサービス要求を一度に行えば、必要なコントロールサービスのプロセスが自律的に判断されるので、連続的なサービスの提供を効率よく行うことができる。   According to the eleventh aspect of the present invention, if a service receiving side makes a plurality of service requests at a time, a necessary control service process is autonomously determined. Can be done well.

また、複数のサービス要求を一度行えば連続的なサービスの提供を行えるので、個々のサービス要求ごとにネットワークを占有する必要がなくなり、ネットワークの負荷を軽減することができる。   Further, since a continuous service can be provided once a plurality of service requests are made, it is not necessary to occupy the network for each service request, and the load on the network can be reduced.

本発明によれば、可変性のあるアーキテクチャおよび多種多様な機能を実現することができるとともに、ソフトウェア開発効率の向上を図ることができる。また、本発明によれば、ネットワークに画像形成装置を接続して使用する場合に、多種多様な機能を効率的に提供することができる。   According to the present invention, it is possible to realize a variable architecture and various functions, and to improve software development efficiency. In addition, according to the present invention, when an image forming apparatus is connected to a network and used, various functions can be efficiently provided.

以下に添付図面を参照して、この発明にかかる画像形成装置およびプロセス間通信方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の構成を示すブロック図である。図1に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、スキャナ103と、ファクシミリ104と、ハードディスク装置(HDD)105と、ネットワークインタフェース106などのハードウェアリソースを有するとともに、プラットホーム120とアプリケーション130とから構成されるソフトウェア群110を備えている。
Exemplary embodiments of an image forming apparatus and an interprocess communication method according to the present invention will be explained below in detail with reference to the accompanying drawings.
(Embodiment 1)
FIG. 1 is a block diagram showing a configuration of an image forming apparatus (hereinafter referred to as “multifunction machine”) according to Embodiment 1 of the present invention. As shown in FIG. 1, a multi-function device 100 includes a monochrome line printer (B & W LP) 101, a color line printer (Color LP) 102, a scanner 103, a facsimile 104, a hard disk device (HDD) 105, and a network interface. The software group 110 includes hardware resources such as 106, and includes a platform 120 and an application 130.

プラットホーム120は、アプリケーション130からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。   The platform 120 interprets a processing request from the application 130 and generates a hardware resource acquisition request, and a system resource that manages one or a plurality of hardware resources and arbitrates the acquisition request from the control service. A manager (SRM) 123 and a general-purpose OS 121 are included.

コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。   The control service is formed of a plurality of service modules, and includes an SCS (system control service) 122, an ECS (engine control service) 124, an MCS (memory control service) 125, an OCS (operation panel control service) 126, and an FCS. (Fax Control Service) 127 and NCS (Network Control Service) 128.

なお、このプラットホーム120は、あらかじめ定義されたメソッドにより前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。   The platform 120 has an application program interface (API) that can receive a processing request from the application 130 by a predefined method.

汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。   The general-purpose OS 121 is a general-purpose operating system such as UNIX (registered trademark), and executes the software of the platform 120 and the application 130 in parallel as processes.

SRM123は、SCS122とともにシステムの制御およびリソースの管理を行うものであり、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。   The SRM 123, together with the SCS 122, controls the system and manages resources, and includes engines such as a scanner unit and a printer unit, memory, HDD files, host I / O (Centro I / F, network I / F, IEEE 1394 I / O). (F, RS232C I / F, etc.) arbitration is performed according to a request from a higher layer using hardware resources, and execution control is performed.

具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(たとえば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。   Specifically, the SRM 123 determines whether the requested hardware resource is available (whether it is not used by another request), and if it is available, the requested hardware resource is used. Tell the upper layer that it is possible. The SRM 123 also schedules the use of hardware resources in response to requests from higher layers, and directly implements the request contents (for example, paper conveyance and image forming operation, memory allocation, file generation, etc. by the printer engine). .

SCS122は、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御を行うものである。ECS124は、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ103、ファクシミリ104からなるハードウェアリソースのエンジンを制御するものである。   The SCS 122 performs application management, operation unit control, system screen display, LED display, resource management, and interrupt application control. The ECS 124 controls a hardware resource engine including a monochrome line printer (B & W LP) 101, a color line printer (Color LP) 102, a scanner 103, and a facsimile 104.

MCS125は、画像メモリの取得および解放、HDDの利用、画像データの圧縮および伸張などを行うものである。OCS126は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールである。   The MCS 125 acquires and releases an image memory, uses an HDD, compresses and decompresses image data, and the like. The OCS 126 is a module that controls an operation panel serving as information transmission means between the operator and the main body control.

FCS127は、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供するものである。FCS127には、そのサブプロセスであるFCUハンドラ(FCUH)129が起動される。このFCUH129は、FCS127からの指令によりファクシミリ送受信の際にファクシミリエンジンのデバイスドライバを制御するものである。   FCS 127 performs facsimile transmission / reception using the PSTN / ISDN network from each application layer of the system controller, registration / quotation of various facsimile data managed by BKM (backup SRAM), facsimile reading, facsimile reception printing, and fusion transmission / reception. API is provided. In the FCS 127, an FCU handler (FCUH) 129, which is a subprocess thereof, is activated. The FCUH 129 controls a device driver of the facsimile engine when a facsimile is transmitted / received by a command from the FCS 127.

NCS128は、ネットワークI/Oを必要とするアプリケーション130に対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーション130に振り分けたり、アプリケーション130からデータをネットワーク側に送信する際の仲介を行うものである。   The NCS 128 is a module group for providing a service that can be commonly used for the applications 130 that require network I / O. The NCS 128 distributes data received from the network side according to each protocol to the applications 130, Mediates when sending data to the network side.

アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116とを有している。   The application 130 includes a printer application 111 that is a printer application having a page description language (PDL), PCL, and postscript (PS), a copy application 112 that is a copy application, and a fax application 113 that is a facsimile application. A scanner application 114 as a scanner application, a network file application 115 as a network file application, and a process inspection application 116 as a process inspection application.

これらの各コントロールサービスとSRM123と各アプリケーション130とは、一または複数のメソッドを有するオブジェクトであり、このオブジェクトを起動することによりそれぞれプロセスとして汎用OS121上に生成されて実行される。そして、各プロセス内部には、複数のスレッドが起動され、汎用OS121の管理下でこれらのスレッドのCPU占有時間を切り替えることにより並列実行が実現されている。このため、プロセス切り替えによる並列実行と比較して、並列実行時の処理速度の向上が図られている。   Each of these control services, the SRM 123, and each application 130 is an object having one or a plurality of methods, and is generated and executed as a process on the general-purpose OS 121 by activating this object. A plurality of threads are activated in each process, and parallel execution is realized by switching the CPU occupation time of these threads under the management of the general-purpose OS 121. For this reason, compared with parallel execution by process switching, the processing speed at the time of parallel execution is improved.

各アプリプロセスと各コントロールサービスプロセスとは、メソッドの実行によるプロセス間通信によってメッセージの送受信が行われる。図2は、実施の形態1の複合機上で動作するサーバプロセスとクライアントプロセスの関係を示すブロック図である。ここで、サーバプロセス202とは、クライアントプロセス201からの要求によりクライアントプロセス201に対しサービスを提供するプロセスをいう。クライアントプロセス201とは、サーバプロセス202に対して要求を行うことにより、サーバプロセス202からサービスの提供を受けるプロセスをいう。   Messages are transmitted and received between each application process and each control service process by inter-process communication by executing a method. FIG. 2 is a block diagram illustrating a relationship between a server process and a client process that operate on the multifunction peripheral according to the first embodiment. Here, the server process 202 refers to a process that provides a service to the client process 201 in response to a request from the client process 201. The client process 201 is a process that receives a service from the server process 202 by making a request to the server process 202.

実施の形態1の複合機100では、上述のコピーアプリ112、プリンタアプリ111、スキャナアプリ114、ファックスアプリ113などのアプリケーション130のプロセス、およびECS124、MCS125、FCS127、NCS128などのコントロールサービスのプロセスが主としてクライアントプロセス201となり、コントロールサービスおよびSRM123のプロセスが主としてサーバプロセス202となる。   In the MFP 100 according to the first embodiment, the processes of the application 130 such as the copy application 112, the printer application 111, the scanner application 114, and the fax application 113 and the process of the control service such as the ECS 124, the MCS 125, the FCS 127, and the NCS 128 are mainly used. The client process 201 and the process of the control service and SRM 123 are mainly the server process 202.

すなわち、各アプリケーション130がコントロールサービスからサービスの提供を受ける場合には、各アプリケーション130のプロセスがクライアントプロセス201として動作し、コントロールサービスがサーバプロセス202として動作する。また、コントロールサービス間でサービスの要求と提供を行う場合には、サービス要求を行うコントロールサービスがクライアントプロセス201として動作し、サービス提供を行うコントロールサービスがサーバプロセス202として動作する。   That is, when each application 130 is provided with a service from the control service, the process of each application 130 operates as the client process 201 and the control service operates as the server process 202. Further, when requesting and providing a service between control services, the control service that performs the service request operates as the client process 201, and the control service that provides the service operates as the server process 202.

なお、これらの例に限られず、各アプリケーション130のプロセス、コントロールサービスのプロセス、SRMプロセス123は、いずれもサーバプロセス202およびクライアントプロセス201となることができる。   Not limited to these examples, the process of each application 130, the process of the control service, and the SRM process 123 can all be the server process 202 and the client process 201.

すなわち、これらのプロセスは、他のいずれかのプロセスに対しサービスを要求する場合にクライアントプロセス201として動作する一方、他のプロセスからの要求によりサービスを提供する場合にサーバプロセス202として動作することになる。   That is, these processes operate as the client process 201 when a service is requested from any other process, and operate as the server process 202 when a service is provided by a request from another process. Become.

これらのアプリケーション130、コントロールサービスおよびSRM123のプロセスには、いずれも複数のスレッドが起動している。このため、他のプロセスからの要求を受けた場合には、当該他のプロセスをクライアントプロセス201としたサーバプロセス202として動作するが、これと同時に、他のプロセスに対してサービスを要求する場合に当該他のプロセスをサーバプロセス202としたクライアントプロセス201として動作する。   A plurality of threads are activated in all the processes of the application 130, the control service, and the SRM 123. For this reason, when a request is received from another process, it operates as a server process 202 with the other process as a client process 201. At the same time, when a service is requested from another process. It operates as a client process 201 with the other process as the server process 202.

また、各プロセスは、同時に複数のプロセスをクライアントプロセス201としたサーバプロセス202となることも可能である。さらに、各プロセスは、同時に複数のサーバプロセス202からのサービスの提供を受けるクライアントプロセス201となることも可能である。   Each process can also be a server process 202 having a plurality of processes as client processes 201 at the same time. Further, each process can be a client process 201 that receives services from a plurality of server processes 202 at the same time.

図2に示す通り、クライアントプロセス201は、サーバプロセス202のサービスを要求するために、クライアントプロセス201内のスレッドからサーバプロセス202に対してサービス要求メッセージを送信するサービス要求メソッドを実行する。   As shown in FIG. 2, the client process 201 executes a service request method for transmitting a service request message from a thread in the client process 201 to the server process 202 in order to request the service of the server process 202.

このサービス要求メッセージを受信したサーバプロセス202は、サービス実行メソッドを実行する。このサービス実行メソッドは、クライアントプロセス201から要求されたサービスを実行し、その実行結果を実行結果メッセージとして要求元のクライアントプロセス201に送信するメソッドである。   The server process 202 that has received this service request message executes the service execution method. This service execution method is a method for executing a service requested by the client process 201 and transmitting the execution result to the requesting client process 201 as an execution result message.

図2の例では、クライアントプロセス201がサービスAの提供を受けるために、サービスA要求メソッドを実行してサービスA要求メッセージをサーバプロセス202に送信している。そして、サーバプロセス202がこのサービスA要求メッセージを受信すると、サービスA実行メソッドを実行する。サーバプロセス202は、サービスA実行メソッドの実行により、(1)サービスAの処理を実行し、ついで、(2)サービスAの実行結果をサービスA実行結果メッセージとしてクライアントプロセス201に送信する。   In the example of FIG. 2, the client process 201 executes a service A request method and transmits a service A request message to the server process 202 in order to receive provision of the service A. When the server process 202 receives this service A request message, the service A execution method is executed. The server process 202 executes (1) the process of service A by executing the service A execution method, and then (2) transmits the execution result of service A to the client process 201 as a service A execution result message.

このように、サーバプロセス202とクライアントプロセス201のプロセス間通信は、メソッド実行によるサービス要求メッセージの送信、メソッド実行によるサービスの提供およびサービス実行結果メッセージ送信という一連の処理によって実現されている。   As described above, the inter-process communication between the server process 202 and the client process 201 is realized by a series of processes of transmitting a service request message by executing a method, providing a service by executing a method, and transmitting a service execution result message.

図3は、各アプリケーションおよび各コントロールサービスのオブジェクトであらかじめ定義されているメソッドを示す説明図である。図3に示すように、各オブジェクトには、主としてクライアントプロセス201となったときにサーバプロセス202に対しサービスの提供を依頼するためにサービス要求メッセージを送信するサービス要求メソッドと、クライアントプロセス201からのサービス要求メッセージを受信してサーバプロセス202として動作するときにサービス提供の処理を実行しその実行結果メッセージを要求元のクライアントプロセス201に送信するサービス実行メソッドとが定義されている。   FIG. 3 is an explanatory diagram showing methods defined in advance for each application and each control service object. As shown in FIG. 3, each object mainly includes a service request method for sending a service request message to the server process 202 when the client process 201 becomes a service process, and a request from the client process 201. A service execution method is defined which executes a service providing process when receiving a service request message and operates as the server process 202 and transmits the execution result message to the requesting client process 201.

例えば、ECS124のオブジェクトでは、サービス要求メソッドとしてメモリ画像情報取得要求メソッド、メモリ確保要求メソッド、資源獲得要求メソッドなどが登録されており、一方、サービス実行メソッドとして、ジョブ動作モード設定メソッド、ジョブスタートメソッド、ジョブオープンメソッドおよびジョブクローズメソッドなどが登録されている。   For example, in the ECS 124 object, a memory image information acquisition request method, a memory allocation request method, a resource acquisition request method, and the like are registered as service request methods, while a job operation mode setting method and a job start method are registered as service execution methods. Job open method and job close method are registered.

なお、ジョブ動作モード設定メソッド、ジョブスタートメソッド、ジョブオープンメソッドおよびジョブクローズメソッドは、それぞれクライアントプロセス201からジョブ動作モード設定要求メッセージ、ジョブスタート要求メッセージ、ジョブオープン要求メッセージ、ジョブクローズ要求メッセージを受信したときに実行される。   The job operation mode setting method, job start method, job open method, and job close method received the job operation mode setting request message, job start request message, job open request message, and job close request message from the client process 201, respectively. When executed.

また、プリンタアプリ111のオブジェクトには、サービス要求メソッドとしてジョブ動作設定要求メソッド、ジョブスタート要求メソッドなどが登録されている。なお、図3に示す他のコントロールサービスやSRM123、および他のアプリケーション130の各オブジェクトについても同様にサービス要求メソッドとサービス実行メソッドが登録されている。   In the object of the printer application 111, a job operation setting request method, a job start request method, and the like are registered as service request methods. The service request method and the service execution method are registered in the same manner for each of the other control services, SRM 123, and other applications 130 shown in FIG.

つぎに、実施の形態1の複合機100で実際に行われるプリンタ動作の一例について説明する。図4は、実施の形態1の複合機でプリンタ動作を行う場合のプリンタアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。   Next, an example of a printer operation that is actually performed in the multifunction peripheral 100 according to the first embodiment will be described. FIG. 4 is an explanatory diagram illustrating a data sequence between processes of the printer application, ECS, MCS, and SRM when the printer operation is performed by the multifunction peripheral according to the first embodiment.

複合機100は、プリンタアプリプロセス111、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらのプロセスは、複合機100の起動時に生成されるようになっている。   In the multifunction device 100, the printer application process 111, the ECS process 124, the MCS process 125, and the SRM process 123 are operating. These processes are generated when the multifunction peripheral 100 is activated.

プリンタアプリプロセス111は、プロセス内に複数のスレッドが起動している。プリンタアプリプロセス111は、ECSプロセス124をサーバプロセス202としたクライアントプロセス201となる。ECSプロセス124は、プリンタ動作時にプリンタアプリプロセス111をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス123をそれぞれサーバプロセス202としたクライアントプロセス201となる。   In the printer application process 111, a plurality of threads are activated in the process. The printer application process 111 is a client process 201 that uses the ECS process 124 as the server process 202. The ECS process 124 becomes a server process 202 having the printer application process 111 as the client process 201 during the printer operation, and also becomes a client process 201 having the MCS process 125 and the SRM process 123 as the server process 202, respectively.

MCSプロセス125は、プリンタ動作時にECSプロセス124をクライアントプロセス201としたサーバプロセス202となるとともに、SRMプロセス123をサーバプロセス202としたクライアントプロセス201となる。SRMプロセス123は、プリンタ動作時にECSプロセス124またはMCSプロセス125をクライアントプロセス201としたサーバプロセス202となっている。   The MCS process 125 becomes a server process 202 using the ECS process 124 as the client process 201 during the printer operation, and also becomes a client process 201 using the SRM process 123 as the server process 202. The SRM process 123 is a server process 202 that uses the ECS process 124 or the MCS process 125 as a client process 201 during printer operation.

PCなどのホストからセントロI/F、USB I/F、ネットワークI/Fなど経由して印刷要求があると、その印刷要求をNCSプロセス128が受信してプリンタアプリプロセス111に転送する(ステップS401)。   When there is a print request from a host such as a PC via a Centro I / F, USB I / F, network I / F, etc., the NCS process 128 receives the print request and transfers it to the printer application process 111 (step S401). ).

プリンタアプリプロセス111は、NCSプロセス128から印刷要求を受信すると新たなプリンタジョブを生成し、ジョブ動作モード設定要求メソッドを実行して、ECSプロセス124に対してジョブ動作モード設定要求メッセージを送信する(ステップS402)。ここで、ジョブ動作モードとは、スキャナ、プロッタ、フィニッシャなどを動作させるために必要なパラメータ群であり、印刷用紙サイズ、印刷部数、給紙トレイなどのプリンタ条件から生成されるジョブの動作条件を定めたものである。   Upon receiving a print request from the NCS process 128, the printer application process 111 generates a new printer job, executes a job operation mode setting request method, and transmits a job operation mode setting request message to the ECS process 124 ( Step S402). Here, the job operation mode is a group of parameters necessary for operating the scanner, plotter, finisher, and the like. The operation conditions of the job generated from the printer conditions such as the print paper size, the number of copies, and the paper feed tray are set. It is determined.

ECSプロセス124は、プリンタアプリプロセス111からジョブ動作モード設定要求メッセージを受信すると、ジョブ動作モード設定実行メソッドを実行し、新たに生成されたプリンタジョブに対して上述のジョブ動作モードを設定して、その実行結果メッセージをプリンタアプリプロセス111に送信する。   When receiving the job operation mode setting request message from the printer application process 111, the ECS process 124 executes the job operation mode setting execution method, sets the above-described job operation mode for the newly generated printer job, and The execution result message is transmitted to the printer application process 111.

プリンタアプリプロセス111は、ECSプロセス124からジョブ動作モード設定の実行結果メッセージを受信すると、ジョブの開始要求を行うため、ジョブスタート要求メソッドを実行して、ECSプロセス124に対しジョブスタート要求メッセージを送信する(ステップS403)。   Upon receiving the job operation mode setting execution result message from the ECS process 124, the printer application process 111 executes a job start request method and sends a job start request message to the ECS process 124 in order to make a job start request. (Step S403).

ECSプロセス124は、プリンタアプリプロセス111からジョブスタート要求メッセージを受信すると、ジョブスタート実行メソッドを起動し、ジョブの開始処理を行ってその実行結果メッセージをプリンタアプリプロセス111に送信する。プリンタアプリプロセス111は、ECSプロセス124からジョブスタートの実行結果メッセージを受信する。   When the ECS process 124 receives a job start request message from the printer application process 111, the ECS process 124 activates a job start execution method, performs job start processing, and transmits the execution result message to the printer application process 111. The printer application process 111 receives a job start execution result message from the ECS process 124.

つぎに、ECSプロセス124は、メモリに格納されている印刷データを取得するために、メモリ画像情報要求メソッドを実行し、MCSプロセス125に対してメモリ画像情報要求メッセージを送信する(ステップS404)。   Next, the ECS process 124 executes a memory image information request method to acquire print data stored in the memory, and transmits a memory image information request message to the MCS process 125 (step S404).

MCSプロセス125は、ECSプロセス124からメモリ画像情報要求メッセージを受信すると、メモリ画像情報実行メソッドを起動する。そして、MCSプロセス125はメモリに格納されている画像データを取得して、画像データを実行結果メッセージとともにECSプロセス124へ送信する(ステップS405)。ECSプロセス124は、メモリ画像情報要求メッセージの送信および画像データの受信処理を、印刷ページが終了するまで繰り返し行う(ステップS408、S409)。   Upon receiving the memory image information request message from the ECS process 124, the MCS process 125 activates the memory image information execution method. Then, the MCS process 125 acquires the image data stored in the memory, and transmits the image data together with the execution result message to the ECS process 124 (step S405). The ECS process 124 repeatedly transmits the memory image information request message and receives the image data until the print page is completed (steps S408 and S409).

MCSプロセス125は、画像データのECSプロセス124への送信後、画像メモリを確保するためにメモリ取得要求メソッドを実行し、SRMプロセス123に対してメモリ取得要求メッセージを送信する(ステップS406)。SRMプロセス123では、MCSプロセス125からメモリ取得要求メッセージを受信すると、メモリ取得実行メソッドを実行し、プリント用に画像メモリを確保し、その実行結果メッセージをMCSプロセス125へ送信する。   After transmitting the image data to the ECS process 124, the MCS process 125 executes a memory acquisition request method in order to secure an image memory, and transmits a memory acquisition request message to the SRM process 123 (step S406). When the SRM process 123 receives a memory acquisition request message from the MCS process 125, it executes a memory acquisition execution method, reserves an image memory for printing, and transmits the execution result message to the MCS process 125.

ECSプロセス124は、1ページ目の印刷データをMCSプロセス125から受信した後、プリンタエンジン資源を取得するために、資源獲得要求メソッドを実行して、SRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS407)。SRMプロセス123は、ECSプロセス124から資源獲得要求メッセージを受信すると資源獲得実行メソッドを実行し、プリンタエンジンを占有し、その実行結果メッセージをECSプロセス124へ送信する。   After receiving the print data of the first page from the MCS process 125, the ECS process 124 executes a resource acquisition request method and acquires a resource acquisition request message to the SRM process 123 in order to acquire a printer engine resource. (Step S407). When the SRM process 123 receives the resource acquisition request message from the ECS process 124, the SRM process 123 executes the resource acquisition execution method, occupies the printer engine, and transmits the execution result message to the ECS process 124.

ECSプロセス124は、メモリ画像情報要求(ステップS411)に対する実行結果メッセージとして「画像なし」の応答を受信した場合(ステップS412)に、すべての印刷ページのプリントが終了したものと判断し、ジョブエンド通知メソッドを実行して、プリンタアプリプロセス111に対してジョブエンド通知メッセージを送信する(ステップS413)。プリンタアプリプロセス111では、このジョブエンド通知メッセージを受信することによりプリント終了を検知する。   When the ECS process 124 receives a “no image” response as an execution result message in response to the memory image information request (step S411) (step S412), the ECS process 124 determines that printing of all the printed pages has been completed. The notification method is executed, and a job end notification message is transmitted to the printer application process 111 (step S413). The printer application process 111 detects the end of printing by receiving this job end notification message.

次に、実施の形態1の複合機100で実際に行われるスキャナ動作の一例について説明する。図5は、実施の形態1の複合機でスキャナ動作を行う場合のスキャナアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。   Next, an example of a scanner operation that is actually performed in the multifunction peripheral 100 according to the first embodiment will be described. FIG. 5 is an explanatory diagram showing a data sequence between each process of the scanner application, ECS, MCS, and SRM when the scanner operation is performed in the multifunction machine of the first embodiment.

複合機100は、スキャナアプリプロセス114、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらのプロセスは、複合機の起動時に生成されるようになっている。   In the multifunction device 100, a scanner application process 114, an ECS process 124, an MCS process 125, and an SRM process 123 are operating. These processes are generated when the MFP is started.

スキャナアプリプロセス114は、プロセス内に複数のスレッドが起動している。スキャナアプリプロセス114は、ECSプロセス124をサーバプロセス202としたクライアントプロセス201となっている。ECSプロセス124は、スキャナ動作時にスキャナアプリプロセス114をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス124をそれぞれサーバプロセス202としたクライアントプロセス201となる。MCSプロセス125は、スキャナ動作時にスキャナアプリプロセス114およびECSプロセス124をクライアントプロセス201としたサーバプロセス202となる。SRMプロセス123は、ECSプロセス124をクライアントプロセス201としたサーバプロセス202となる。   In the scanner application process 114, a plurality of threads are activated in the process. The scanner application process 114 is a client process 201 that uses the ECS process 124 as a server process 202. The ECS process 124 becomes a server process 202 using the scanner application process 114 as the client process 201 during the scanner operation, and also becomes a client process 201 using the MCS process 125 and the SRM process 124 as the server process 202, respectively. The MCS process 125 becomes a server process 202 using the scanner application process 114 and the ECS process 124 as the client process 201 during the scanner operation. The SRM process 123 becomes a server process 202 with the ECS process 124 as a client process 201.

スキャナアプリプロセス114に対しスキャン要求があると、スキャナアプリプロセス114は、新たなスキャナジョブを生成し、ジョブオープン要求メソッドを実行して、ECSプロセス124に対してジョブオープン要求メッセージを送信する(ステップS501)。   When there is a scan request to the scanner application process 114, the scanner application process 114 generates a new scanner job, executes a job open request method, and transmits a job open request message to the ECS process 124 (step S1). S501).

ECSプロセス124では、スキャナアプリプロセス114からジョブオープン要求メッセージを受信すると、ジョブオープン実行メソッドを実行し、ジョブのオープン処理を行い、その実行結果メッセージをスキャナアプリプロセス114に送信する。   When the ECS process 124 receives a job open request message from the scanner application process 114, it executes a job open execution method, performs job open processing, and transmits the execution result message to the scanner application process 114.

スキャナアプリプロセス114は、ECSプロセス124からジョブオープンの実行結果メッセージを受信すると、つぎにファイル生成要求メソッドを実行して、MCSプロセス125に対しファイル生成要求メッセージを送信する(ステップS502)。MCSプロセス125では、スキャナアプリプロセス114からファイル生成要求メッセージを受信すると、ファイル生成実行メソッドを実行し、スキャンした画像を一時的に格納するファイルをHDD上に生成して、その実行結果メッセージをスキャナアプリプロセス114に送信する。   Upon receiving the job open execution result message from the ECS process 124, the scanner application process 114 executes the file generation request method and transmits a file generation request message to the MCS process 125 (step S502). Upon receiving the file generation request message from the scanner application process 114, the MCS process 125 executes a file generation execution method, generates a file for temporarily storing the scanned image on the HDD, and outputs the execution result message to the scanner. Send to application process 114.

スキャナアプリプロセス114は、ファイル生成の実行結果メッセージを受信すると、ジョブ動作モードの設定を行うため、ジョブ動作モード設定要求メソッドを実行し、ECSプロセス124に対しジョブ動作モード設定要求メッセージを送信する(ステップS503)。   Upon receiving the file generation execution result message, the scanner application process 114 executes a job operation mode setting request method to set a job operation mode, and transmits a job operation mode setting request message to the ECS process 124 ( Step S503).

ECSプロセス124は、スキャナアプリプロセス114からジョブ動作モード設定要求メッセージを受信すると、ジョブ動作モード設定実行メソッドを実行し、スキャナジョブに上述のジョブ動作モードを設定して、その実行結果メッセージをスキャナアプリプロセス114に送信する。   Upon receiving the job operation mode setting request message from the scanner application process 114, the ECS process 124 executes the job operation mode setting execution method, sets the above-described job operation mode in the scanner job, and sends the execution result message to the scanner application. Send to process 114.

ついで、スキャナアプリプロセス114は、ジョブスタート要求メソッドを実行して、ジョブスタート要求メッセージをECSプロセス124に対して送信する(ステップS504)。ECSプロセス124は、ジョブスタート要求メッセージを受信すると、ジョブスタート要求実行メソッドを実行して、ジョブの開始処理を行い、その実行結果メッセージをスキャナアプリプロセス114に送信する。   Next, the scanner application process 114 executes a job start request method and transmits a job start request message to the ECS process 124 (step S504). When the ECS process 124 receives the job start request message, the ECS process 124 executes the job start request execution method, performs job start processing, and transmits the execution result message to the scanner application process 114.

一方、ECSプロセス124は、スキャナエンジンの資源獲得のため、資源獲得要求メソッドを実行し、SRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS505)。SRMプロセス123は、資源獲得要求メッセージを受信すると資源獲得実行メソッドを実行して、スキャナエンジンを占有し、その実行結果メッセージをECSプロセス124へ送信する。   On the other hand, the ECS process 124 executes a resource acquisition request method for acquiring resources of the scanner engine, and transmits a resource acquisition request message to the SRM process 123 (step S505). Upon receiving the resource acquisition request message, the SRM process 123 executes the resource acquisition execution method, occupies the scanner engine, and transmits the execution result message to the ECS process 124.

つぎに、ECSプロセス124は、スキャン画像をページ単位で格納するメモリを確保するために、ページ生成要求メソッドを実行して、MCSプロセス125に対しページ生成要求メッセージを送信する(ステップS506)。MCSプロセス125は、ページ生成要求メッセージを受信すると、ページ生成実行メソッドを実行して1ページ分のメモリを確保し、確保したページをオープンし、その実行結果メッセージをECSプロセス124へ送信する。   Next, the ECS process 124 executes a page generation request method to secure a memory for storing the scanned image in units of pages, and transmits a page generation request message to the MCS process 125 (step S506). When receiving the page generation request message, the MCS process 125 executes the page generation execution method to secure one page of memory, opens the reserved page, and transmits the execution result message to the ECS process 124.

ECSプロセス124は、ページ生成の実行結果メッセージを受信すると、原稿フィードイン要求メソッドを実行し、スキャナエンジンに対して原稿フィードインの指示メッセージを送信して(ステップS507)、スキャナによる原稿の読み取り動作を開始させる。   Upon receiving the page generation execution result message, the ECS process 124 executes a document feed-in request method, transmits a document feed-in instruction message to the scanner engine (step S507), and reads the document by the scanner. To start.

1ページ分の原稿読み動作が終了すると、ECSプロセス124に対しスキャナエンジンからスキャン終了通知メッセージが送信されるので(ステップS508)、ECSプロセス124はこのスキャン終了通知メッセージを受信する。ECSプロセス124は、スキャン終了通知メッセージを受信すると、ページクローズ要求メソッドを実行して、MCSプロセス124に対しページクローズ要求メッセージを送信する(ステップS509)。   When the document reading operation for one page is completed, a scan end notification message is transmitted from the scanner engine to the ECS process 124 (step S508), and the ECS process 124 receives this scan end notification message. When receiving the scan end notification message, the ECS process 124 executes a page close request method and transmits a page close request message to the MCS process 124 (step S509).

MCSプロセス125は、ページクローズ要求メッセージを受信すると、ページクローズ実行メソッドを実行して、メモリ上でオープンされている1ページ分の画像メモリをクローズし、その実行結果メッセージをECSプロセス124に送信する。   Upon receiving the page close request message, the MCS process 125 executes the page close execution method, closes the image memory for one page opened on the memory, and transmits the execution result message to the ECS process 124. .

ECSプロセス124は、上述のページ生成要求メッセージの送信からページクローズ要求メッセージの送信までの処理(ステップS506〜S509)を原稿枚数分だけ繰り返し行う。原稿の最終ページのスキャンが終了すると、ECSプロセス124に対しスキャナエンジンからスキャン処理完了通知メッセージが送信される(ステップS510)。   The ECS process 124 repeats the above-described processing from the transmission of the page generation request message to the transmission of the page close request message (steps S506 to S509) for the number of documents. When scanning of the last page of the document is completed, a scan processing completion notification message is transmitted from the scanner engine to the ECS process 124 (step S510).

ECSプロセス124は、スキャン処理完了通知メッセージを受信すると、スキャン完了通知メッセージをスキャナアプリプロセス114に対して送信し(ステップS511)、さらにジョブエンド通知メソッドを実行してジョブエンド通知メッセージも送信する(ステップS512)。   When receiving the scan processing completion notification message, the ECS process 124 transmits a scan completion notification message to the scanner application process 114 (step S511), and further executes a job end notification method to transmit a job end notification message (step S511). Step S512).

スキャナアプリプロセス114は、スキャン処理完了通知メッセージとジョブエンド通知メッセージとを順にECSプロセス124から受信する。一方、スキャナアプリプロセス114は、ファイル情報登録要求メソッドを実行して、MCSプロセス125に対してファイル情報登録要求メッセージを送信する(ステップS513)。   The scanner application process 114 sequentially receives a scan processing completion notification message and a job end notification message from the ECS process 124. On the other hand, the scanner application process 114 executes a file information registration request method and transmits a file information registration request message to the MCS process 125 (step S513).

MCSプロセス125は、ファイル情報登録要求メッセージを受信すると、ファイル情報登録実行メソッドを実行して、一時的に生成されたすべての原稿のスキャン画像が格納されているファイルに対し、ファイル名、格納先等のファイル情報を登録し、その実行結果メッセージをスキャナアプリプロセス114に送信する。   When the MCS process 125 receives the file information registration request message, the MCS process 125 executes the file information registration execution method to store the file name and storage destination for all temporarily generated scanned images of the originals. Etc., and the execution result message is transmitted to the scanner application process 114.

スキャナアプリプロセス114は、ファイル情報登録の実行結果メッセージを受信すると、ファイルクローズ要求メソッドを実行して、MCSプロセス125に対しファイルクローズ要求メッセージを送信する(ステップS514)。MCSプロセス125では、ファイルクローズ要求メッセージを受信すると、ファイルクローズ実行メソッドを実行して、スキャン画像のファイルをクローズし、その実行結果メッセージをスキャナアプリプロセス114に送信する。スキャナアプリプロセス114は、ファイルクローズの実行結果メッセージを受信することによって、スキャン処理を終了する。   Upon receiving the file information registration execution result message, the scanner application process 114 executes a file close request method and transmits a file close request message to the MCS process 125 (step S514). Upon receiving the file close request message, the MCS process 125 executes a file close execution method, closes the scanned image file, and transmits the execution result message to the scanner application process 114. The scanner application process 114 ends the scanning process by receiving the file close execution result message.

ついで、スキャナアプリプロセス114は、格納されているスキャン画像を読み出すため、次の処理を行う。まず、スキャナアプリプロセス114はファイルオープン要求メソッドを実行して、MCSプロセス125に対しスキャン画像のファイルをオープンするためのファイルオープン要求メッセージを送信する。また、スキャナアプリプロセス114は作業領域確保要求メソッドの実行による作業メモリの確保のための作業領域確保要求メッセージの送信、ページオープン要求メソッドの実行によるページオープン要求メッセージを順次に送信する(ステップS515〜S517)。   Next, the scanner application process 114 performs the following processing to read out the stored scan image. First, the scanner application process 114 executes a file open request method, and transmits a file open request message for opening a scan image file to the MCS process 125. In addition, the scanner application process 114 sequentially transmits a work area securing request message for securing work memory by executing the work area securing request method, and a page open request message by executing the page open request method (step S515). S517).

MCSプロセス125は、スキャナアプリプロセス114からファイルオープン要求メッセージ、作業領域確保要求メッセージ、ページオープン要求メッセージを順に受信して、ファイルオープン実行メソッドの実行によるスキャン画像ファイルのオープン処理、作業領域確保実行メソッドの実行による作業メモリの確保処理およびページオープン実行メソッドの実行によるページオープン処理をそれぞれ行って、各処理の実行結果メッセージをスキャナアプリプロセス114に送信する。   The MCS process 125 sequentially receives a file open request message, a work area securing request message, and a page open request message from the scanner application process 114, and executes a scan image file open process and a work area securing execution method by executing the file open execution method. The process of securing the working memory by executing the page and the page opening process by executing the page open execution method are performed, and an execution result message of each process is transmitted to the scanner application process 114.

スキャナアプリプロセス114は、スキャン画像ファイルからの画像データの読み出しのために読み出し要求メソッドを実行し、読み出し要求メッセージをMCSプロセス125に送信する(ステップS518)。   The scanner application process 114 executes a read request method for reading image data from the scanned image file, and transmits a read request message to the MCS process 125 (step S518).

さらに、スキャナアプリプロセス114は、ページクローズ要求メソッドを実行して、MCSプロセス125に対しページクローズ要求メッセージを送信する(ステップS519)。   Further, the scanner application process 114 executes a page close request method and transmits a page close request message to the MCS process 125 (step S519).

MCSプロセス125は、ページオープン処理の終了後に、スキャナアプリプロセス114から読み出し要求メッセージを受信し、読み出し実行メソッドを実行してスキャナ画像ファイルから画像データを読み出し、画像データとともにその実行結果メッセージをスキャナアプリプロセス114に送信する。スキャナアプリプロセス114は、画像データの読み出しに関する実行結果メッセージを受信すると、次の読み出し要求メッセージをMCS125に送信し、その実行結果メッセージを受信する。   After the page opening process is completed, the MCS process 125 receives a read request message from the scanner application process 114, executes a read execution method to read image data from the scanner image file, and sends the execution result message together with the image data to the scanner application. Send to process 114. When the scanner application process 114 receives an execution result message related to reading of image data, the scanner application process 114 transmits a next read request message to the MCS 125 and receives the execution result message.

MCSプロセス125は、最後の読み出し処理の終了後にスキャナアプリプロセス114からページクローズ要求メッセージを受信すると、ページクローズ実行メソッドを実行して、オープンしているページデータのクローズ処理を行い、その実行結果メッセージをスキャナアプリプロセス114に送信する。   When the MCS process 125 receives the page close request message from the scanner application process 114 after the end of the last reading process, the MCS process 125 executes the page close execution method, performs the close process of the open page data, and executes the execution result message. Is transmitted to the scanner application process 114.

スキャナアプリプロセス114は、ページクローズの実行結果メッセージを受信すると、MCS125に対してページ削除要求メッセージ、作業領域削除要求メッセージ、ファイルクローズ要求メッセージ、ファイル削除要求メッセージを順に送信する(ステップS520〜S523)。   Upon receiving the page close execution result message, the scanner application process 114 sequentially transmits a page delete request message, a work area delete request message, a file close request message, and a file delete request message to the MCS 125 (steps S520 to S523). .

MCSプロセス125は、ページ削除要求メッセージ、作業領域削除要求メッセージ、ファイルクローズ要求メッセージ、ファイル削除要求メッセージを順に受信して、そのメッセージに対応する実行メソッドによって、ページデータの削除、作業メモリの削除、スキャン画像ファイルのクローズ、スキャン画像ファイルの削除の各処理を行って、各処理の実行結果メッセージをスキャナアプリプロセス114に送信する。スキャナアプリプロセス114がMCSプロセス125から各処理の実行結果メッセージを受信することにより、スキャン画像の読み出し処理が完了する。   The MCS process 125 receives a page deletion request message, a work area deletion request message, a file close request message, and a file deletion request message in order, and deletes page data, deletes working memory, Each process of closing the scan image file and deleting the scan image file is performed, and an execution result message of each process is transmitted to the scanner application process 114. When the scanner application process 114 receives the execution result message of each process from the MCS process 125, the scan image reading process is completed.

次に、実施の形態1の複合機100で実際に行われるコピー動作の一例について説明する。図6は、実施の形態1の複合機でコピー動作を行う場合のコピーアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。   Next, an example of a copy operation that is actually performed in the multifunction peripheral 100 according to the first embodiment will be described. FIG. 6 is an explanatory diagram showing a data sequence between processes of the copy application, ECS, MCS, and SRM when a copy operation is performed in the multifunction machine of the first embodiment.

複合機100は、コピーアプリプロセス112、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらのプロセスは、複合機100の起動時に生成されるようになっている。また、これらのプロセスは、プロセス内に複数のスレッドが起動された状態となっている。   In the MFP 100, a copy application process 112, an ECS process 124, an MCS process 125, and an SRM process 123 are operating. These processes are generated when the multifunction peripheral 100 is activated. These processes are in a state where a plurality of threads are activated in the process.

コピーアプリプロセス112は、ECSプロセス124をサーバプロセス202としたクライアントプロセス201となっている。ECSプロセス124は、コピー動作時にコピーアプリプロセス112をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス123をそれぞれサーバプロセス202としたクライアントプロセス201となる。   The copy application process 112 is a client process 201 using the ECS process 124 as the server process 202. The ECS process 124 becomes a server process 202 using the copy application process 112 as the client process 201 during the copy operation, and becomes a client process 201 using the MCS process 125 and the SRM process 123 as the server process 202, respectively.

MCSプロセス125は、コピー動作時にECSプロセス124をクライアントプロセス201としたサーバプロセス202となるとともに、SRMプロセス123をサーバプロセス202としたクライアントプロセス201となる。SRMプロセス123は、ECSプロセス124およびMCSプロセス125をクライアントプロセス201としたサーバプロセス202となる。   The MCS process 125 becomes a server process 202 using the ECS process 124 as the client process 201 during the copy operation, and becomes a client process 201 using the SRM process 123 as the server process 202. The SRM process 123 becomes a server process 202 using the ECS process 124 and the MCS process 125 as the client process 201.

コピー要求があると、コピーアプリプロセス112は、新たなコピージョブを生成し、スキャナ動作の場合と同様に、ECSプロセス124に対してジョブオープン要求メッセージ、ジョブ動作モード設定要求メッセージおよびジョブスタート要求メッセージの送信を行う(ステップS601〜S603)。これらの要求メッセージを受信したECSプロセス124の動作については、上述したスキャナ動作の場合と同様であるため説明を省略する。   When there is a copy request, the copy application process 112 generates a new copy job, and similarly to the scanner operation, the ECS process 124 receives a job open request message, a job operation mode setting request message, and a job start request message. Is transmitted (steps S601 to S603). The operation of the ECS process 124 that has received these request messages is the same as in the case of the scanner operation described above, and a description thereof will be omitted.

ECSプロセス124では、ジョブスタートの実行結果メッセージをコピーアプリプロセス112に送信すると、つぎにスキャン画像を格納するためのメモリを確保するために、メモリ確保要求メソッドを実行し、MCSプロセス125に対し必要なサイズを指定したメモリ確保要求メッセージを送信する(ステップS604)。   In the ECS process 124, when a job start execution result message is transmitted to the copy application process 112, a memory allocation request method is then executed in order to allocate a memory for storing the scanned image, which is necessary for the MCS process 125. A memory allocation request message designating an appropriate size is transmitted (step S604).

MCSプロセス125では、メモリ確保要求メッセージを受信すると、メモリ確保実行メソッドを実行して、指定されたサイズのメモリ上の領域を確保するためのメモリ取得要求メソッドを実行し、SRM123に対してメモリ取得要求メッセージを送信する(ステップS605)。SRM123は、メモリ取得要求メッセージを受信すると、メモリ取得実行メソッドを実行して、メモリ上に指定されたサイズの領域を占有して、その実行結果メッセージをMCSプロセス125に送信する。   Upon receipt of the memory allocation request message, the MCS process 125 executes a memory allocation execution method, executes a memory acquisition request method for allocating an area on the memory of a specified size, and acquires memory from the SRM 123. A request message is transmitted (step S605). When the SRM 123 receives the memory acquisition request message, the SRM 123 executes a memory acquisition execution method, occupies an area of a specified size on the memory, and transmits the execution result message to the MCS process 125.

メモリ取得の実行結果メッセージを受信したMCSプロセス125は、受信した実行結果メッセージをメモリ確保の実行結果メッセージとしてECSプロセス124に送信する。ついで、メモリ確保の実行結果メッセージを受信したECSプロセス124は、スキャナエンジンとプリンタエンジンの資源獲得のため、資源獲得要求メソッドを実行して、SRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS606)。   The MCS process 125 that has received the execution result message for acquiring the memory transmits the received execution result message to the ECS process 124 as an execution result message for securing the memory. Next, the ECS process 124 that has received the memory allocation execution result message executes a resource acquisition request method to acquire the resources of the scanner engine and printer engine, and transmits a resource acquisition request message to the SRM process 123 ( Step S606).

SRMプロセス123は、資源獲得要求メッセージを受信すると、資源獲得実行メソッドを実行してスキャナエンジンとプリンタエンジンとを占有し、その実行結果メッセージをECSプロセス124に送信する。   When the SRM process 123 receives the resource acquisition request message, the SRM process 123 executes the resource acquisition execution method to occupy the scanner engine and the printer engine, and transmits the execution result message to the ECS process 124.

ECSプロセス124は、SRMプロセス123から資源獲得の実行結果メッセージを受信して、スキャナエンジンとプリンタエンジンとをコピージョブで占有すると、原稿フィードイン要求メソッドを実行し、スキャナエンジンに対して原稿フィードインの指示メッセージを送信して(ステップS607)、原稿のスキャン処理を開始させる。   When the ECS process 124 receives the resource acquisition execution result message from the SRM process 123 and occupies the scanner engine and the printer engine in the copy job, the ECS process 124 executes the document feed-in request method and feeds the document to the scanner engine. Is sent (step S607), and the document scanning process is started.

スキャナエンジンは、原稿のスキャン処理が終了すると、スキャン終了通知メッセージをECSプロセス124に送信し(ステップS608)、プリンタエンジンにスキャン画像のプリント処理を開始させる。そして、プリンタエンジンはスキャン画像のプリント処理が終了すると、ECSプロセス124に印刷終了通知メッセージを送信する(ステップS610)。   When the scan process of the document is completed, the scanner engine transmits a scan end notification message to the ECS process 124 (step S608), and causes the printer engine to start the scan image print process. When the print processing of the scanned image is completed, the printer engine transmits a print end notification message to the ECS process 124 (step S610).

ECSプロセス124は、スキャナエンジンからスキャン終了通知メッセージを受信すると、ジョブエンド通知メソッドを実行してコピーアプリプロセス112に対しスキャン終了の旨のジョブエンド通知メッセージを送信する(ステップS609)。また、ECSプロセス124はプリンタエンジンから印刷終了通知メッセージを受信すると、ジョブエンド通知メソッドを実行してコピーアプリプロセス112に対し印刷終了の旨のジョブエンド通知メッセージを送信する(ステップS611)。コピーアプリプロセス112は2つのジョブエンド通知メッセージを受信することにより、原稿1ページ分のコピー動作が完了する。   When receiving the scan end notification message from the scanner engine, the ECS process 124 executes a job end notification method and transmits a job end notification message to the copy application process 112 to the effect that the scan has ended (step S609). When the ECS process 124 receives the print end notification message from the printer engine, the ECS process 124 executes the job end notification method and transmits a job end notification message indicating the end of printing to the copy application process 112 (step S611). The copy application process 112 receives two job end notification messages, thereby completing the copy operation for one page of the document.

複数枚の原稿のコピーを行う場合には、さらにECSプロセス124に対しジョブスタート要求メッセージを送信する(ステップS612)。これにより、上述と同様の動作がECSプロセス124、MCSプロセス125、SRMプロセス123、スキャナエンジンおよびプリンタエンジンで行われる(ステップS613〜S616)。すべての原稿のコピーが終了し、コピーアプリプロセス112が最後のジョブエンド通知メッセージを受信すると(ステップS617)、コピーアプリプロセス112はジョブクローズ要求メソッドを実行して、ECSプロセス124に対しジョブクローズ要求メッセージを送信する(ステップS618)。   When copying a plurality of documents, a job start request message is further transmitted to the ECS process 124 (step S612). As a result, operations similar to those described above are performed by the ECS process 124, the MCS process 125, the SRM process 123, the scanner engine, and the printer engine (steps S613 to S616). When copying of all the originals is completed and the copy application process 112 receives the final job end notification message (step S617), the copy application process 112 executes a job close request method and requests the ECS process 124 to close the job. A message is transmitted (step S618).

ECSプロセス124は、ジョブクローズ要求メッセージを受信すると、ジョブクローズ実行メソッドを実行して、オープン状態にあるコピージョブをクローズし、その実行結果メッセージをコピーアプリプロセス112に送信する。コピーアプリプロセス112がECSプロセス124からジョブクローズの実行結果メッセージを受信することにより、コピー動作が完了する。   When receiving the job close request message, the ECS process 124 executes the job close execution method, closes the copy job in the open state, and transmits the execution result message to the copy application process 112. When the copy application process 112 receives the job close execution result message from the ECS process 124, the copy operation is completed.

次に、実施の形態1の複合機100で実際に行われるファクシミリ送信動作の一例について説明する。図7は、実施の形態1の複合機でファクシミリ送信動作を行う場合のファックスアプリ、FCS、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。   Next, an example of a facsimile transmission operation that is actually performed in the MFP 100 according to the first embodiment will be described. FIG. 7 is an explanatory diagram showing a data sequence between processes of the fax application, FCS, ECS, MCS, and SRM when the facsimile transmission operation is performed in the multifunction machine of the first embodiment.

複合機100は、ファックスアプリプロセス113、FCSプロセス127、FCUHプロセス129、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらプロセスは、複合機100の起動時に生成されるようになっている。また、これらのプロセスは、プロセス内に複数のスレッドが起動された状態となっている。   In the multifunction machine 100, a fax application process 113, an FCS process 127, an FCUH process 129, an ECS process 124, an MCS process 125, and an SRM process 123 are operating. These processes are generated when the MFP 100 is activated. These processes are in a state where a plurality of threads are activated in the process.

ファックスアプリプロセス113は、FCSプロセス127をサーバプロセス202としたクライアントプロセス201となっている。FCSプロセス127は、ファクシミリ送信動作時にファックスアプリプロセス113をクライアントプロセス201としたサーバプロセス202となるとともに、ECSプロセス124およびFCUHプロセス129をサーバプロセス202としたクライアントプロセス201となる。   The fax application process 113 is a client process 201 in which the FCS process 127 is the server process 202. The FCS process 127 becomes a server process 202 using the fax application process 113 as the client process 201 during a facsimile transmission operation, and becomes a client process 201 using the ECS process 124 and the FCUH process 129 as the server process 202.

FCUHプロセス129は、FCSプロセス127のサブプロセスであり、ファクシミリ送信動作時に、SRMプロセス123およびFCS127をクライアントプロセス201としたサーバプロセス202となる。ECSプロセス124は、ファクシミリ送信動作時にFCSプロセス127をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス123をそれぞれサーバプロセス202としたクライアントプロセス201となる。   The FCUH process 129 is a sub-process of the FCS process 127 and becomes a server process 202 using the SRM process 123 and the FCS 127 as the client process 201 during facsimile transmission operation. The ECS process 124 becomes a server process 202 having the FCS process 127 as the client process 201 during the facsimile transmission operation, and becomes a client process 201 having the MCS process 125 and the SRM process 123 as the server process 202, respectively.

MCSプロセス125は、ファクシミリ送信動作時に、ECSプロセス124をクライアントプロセス201としたサーバプロセス202となるとともに、SRMプロセス123をサーバプロセス202としたクライアントプロセス201となる。SRMプロセス123は、ECSプロセス124およびMCSプロセス125をクライアントプロセス201としたサーバプロセス202となるとともに、FCUHプロセス129をサーバプロセス202としたクライアントプロセス201となる。   The MCS process 125 becomes a server process 202 having the ECS process 124 as the client process 201 and a client process 201 having the SRM process 123 as the server process 202 during the facsimile transmission operation. The SRM process 123 becomes a server process 202 using the ECS process 124 and the MCS process 125 as the client process 201, and becomes a client process 201 using the FCUH process 129 as the server process 202.

ファクシミリ送信要求があると、ファックスアプリプロセス113は、新たなファクシミリ送信ジョブを生成し、送信スタート要求メソッドを実行して、FCSプロセス127に対して送信スタート要求メッセージを送信する(ステップS701)。   When there is a facsimile transmission request, the fax application process 113 generates a new facsimile transmission job, executes a transmission start request method, and transmits a transmission start request message to the FCS process 127 (step S701).

FCSプロセス127は、ファックスアプリプロセス113から送信スタート要求メッセージを受信すると、送信スタート実行メソッドを実行する。この送信スタート実行メソッドは、ジョブ動作モード設定要求メソッドを実行してECSプロセス124に対してジョブ動作モード設定要求メッセージを送信する(ステップS702)。また、送信スタート実行メソッドはジョブスタート要求メソッドを実行してECSプロセス124に対してジョブスタート要求メッセージを送信する(ステップS703)。   When the FCS process 127 receives a transmission start request message from the fax application process 113, the FCS process 127 executes a transmission start execution method. This transmission start execution method executes the job operation mode setting request method and transmits a job operation mode setting request message to the ECS process 124 (step S702). The transmission start execution method executes the job start request method and transmits a job start request message to the ECS process 124 (step S703).

なお、ジョブ動作モード設定要求メッセージおよびジョブスタート要求メッセージを受信したECSプロセス124の動作は、前述したスキャナ動作の場合と同様であるので説明を省略する。   Note that the operation of the ECS process 124 that has received the job operation mode setting request message and the job start request message is the same as that of the scanner operation described above, and a description thereof will be omitted.

ジョブスタート要求メッセージを受信してジョブ開始処理を行ったECSプロセス124は、ついでメモリ確保要求メソッドを実行して、MCS125に対しメモリ確保要求メッセージを送信する(ステップS704)。このメモリ確保要求メッセージを受信したMCSプロセス125は、メモリ取得要求メソッドを実行してメモリ取得要求メッセージをSRMプロセス123に対して送信する(ステップS705)。   The ECS process 124 that has received the job start request message and performed the job start processing then executes the memory reservation request method and transmits the memory reservation request message to the MCS 125 (step S704). The MCS process 125 that has received this memory allocation request message executes the memory acquisition request method and transmits the memory acquisition request message to the SRM process 123 (step S705).

また、ECSプロセス124は、スキャナエンジンおよびファクシミリエンジンの獲得のため、資源獲得要求メソッドを実行して、SRMプロセス123に対し資源獲得要求メッセージを送信する(ステップS706)。   Further, the ECS process 124 executes a resource acquisition request method to acquire a scanner engine and a facsimile engine, and transmits a resource acquisition request message to the SRM process 123 (step S706).

なお、これらのメッセージを受信したMCSプロセス125、SRMプロセス123の処理およびECSプロセス124における処理は、コピー動作時の処理と同様であるので説明を省略する。   The processing of the MCS process 125 and SRM process 123 that have received these messages and the processing of the ECS process 124 are the same as the processing during the copy operation, and thus description thereof is omitted.

ECSプロセス124では、スキャナエンジンの資源獲得の実行結果メッセージを受信したら、スキャンパラメータ確定要求メソッドを実行して、FCSプロセス127に対しスキャンパラメータ確定要求メッセージを送信する(ステップS707)。   In the ECS process 124, when the execution result message of the scanner engine resource acquisition is received, the scan parameter confirmation request method is executed, and the scan parameter confirmation request message is transmitted to the FCS process 127 (step S707).

ここで、スキャンパラメータとは、たとえばファイン、ノーマルなどのスキャン濃度や原稿サイズ等である。FCSプロセス127は、このスキャンパラメータ確定要求メッセージを受信すると、スキャンパラメータ確定実行メソッドを実行して、ECSプロセス124に対してスキャンパラメータをメッセージとして送信する(ステップS708)。   Here, the scan parameters are, for example, fine and normal scan densities, document sizes, and the like. When the FCS process 127 receives this scan parameter confirmation request message, the FCS process 127 executes a scan parameter confirmation execution method, and transmits the scan parameter as a message to the ECS process 124 (step S708).

ECSプロセス124では、スキャンパラメータメッセージを受信すると、SRMプロセス123に対してスキャン・フィードインプロセスの生成を指示するため、スキャン・フィードインプロセス指示メソッドを実行してスキャン・フィードインプロセス指示メッセージを送信する(ステップS709)。   Upon receiving the scan parameter message, the ECS process 124 executes the scan / feed-in process instruction method and transmits the scan / feed-in process instruction message to instruct the SRM process 123 to generate the scan / feed-in process. (Step S709).

SRMプロセス123は、スキャン・フィードインプロセス指示メッセージを受信すると、スキャン・フィードインプロセス実行メソッドを実行して、スキャン・フィードインプロセスを生成する(ステップS710)。ついでフィードインスタート要求メソッドを実行して、FCUHプロセス129に対して原稿のフィードインスタート要求メッセージを送信する(ステップS711)。FCUHプロセス129がフィードインスタート要求メッセージを受信すると、原稿フィードインが開始され、これにより原稿のスキャンおよび指定宛先への送信が開始される。   Upon receiving the scan / feed-in process instruction message, the SRM process 123 executes the scan / feed-in process execution method to generate a scan / feed-in process (step S710). Next, a feed-in start request method is executed to send a document feed-in start request message to the FCUH process 129 (step S711). When the FCUH process 129 receives a feed-in start request message, document feed-in is started, and scanning of a document and transmission to a specified destination are started.

原稿のスキャンが開始されると、次ページの原稿があるか否かを示す、次ページ原稿有無通知メッセージがスキャナエンジンからECSプロセス124に対して送信される。図7では、次ページ原稿有通知メッセージが通知されている(ステップS712)。そして、原稿のスキャンが終了すると、スキャナエンジンからECSプロセス124に対してスキャン終了メッセージが送信される(ステップS713)。   When scanning of a document is started, a next page document presence / absence notification message indicating whether or not there is a document of the next page is transmitted from the scanner engine to the ECS process 124. In FIG. 7, a next page document presence notification message is notified (step S712). When scanning of the document is completed, a scan end message is transmitted from the scanner engine to the ECS process 124 (step S713).

ECSプロセス124は、受信したスキャン終了メッセージを次ページ原稿有の旨とともにFCSプロセス127へ送信する(ステップS714)。一方、原稿スキャンが終了すると、SRMプロセス123はフィードイン終了要求メソッドを実行し、FCUHプロセス129に対してフィードイン終了を指示して(ステップS715)、原稿フィードインを終了させる。   The ECS process 124 transmits the received scan end message to the FCS process 127 together with the presence of the next page document (step S714). On the other hand, when the document scan ends, the SRM process 123 executes a feed-in end request method, instructs the FCUH process 129 to end the feed-in (step S715), and ends the document feed-in.

ユーザの指示などにより、ファックスアプリプロセス113が送信モード変更要求メソッドを実行して、FCSプロセス127に対して送信モード変更要求メッセージを送信した場合は(ステップS716)、ECSプロセス124は、スキャンパラメータ確定要求メソッドを実行して、スキャンパラメータ確定要求メッセージをFCSプロセス127に対して送信する。これに対し上述のようにFCSプロセス127は、スキャンパラメータメッセージをECSプロセス124に送信する(ステップS718)。   When the fax application process 113 executes a transmission mode change request method and transmits a transmission mode change request message to the FCS process 127 according to a user instruction or the like (step S716), the ECS process 124 determines the scan parameters. The request method is executed to send a scan parameter confirmation request message to the FCS process 127. On the other hand, as described above, the FCS process 127 transmits a scan parameter message to the ECS process 124 (step S718).

ECSプロセス124は、スキャンパラメータメッセージを受信すると、スキャン・フィードインプロセス指示メソッドを実行し、次ページ目のスキャン・フィードインプロセスの実行をSRMプロセス123に指示してスキャン・フィードインプロセスを開始する(ステップS719、S720)。   Upon receiving the scan parameter message, the ECS process 124 executes the scan / feed-in process instruction method, instructs the SRM process 123 to execute the scan / feed-in process for the next page, and starts the scan / feed-in process. (Steps S719 and S720).

一方、1ページの指定宛先へのファクシミリ送信が完了すると、FCSプロセス127は、EOMメッセージ(異なる送信モードで次ページ有り)をFCUHプロセス129へ送信し(ステップS721)、これを受信したFCUHプロセス129はEOMを指定宛先へ送信する(ステップS722)。   On the other hand, when the facsimile transmission to the designated destination of one page is completed, the FCS process 127 transmits an EOM message (there is a next page in a different transmission mode) to the FCUH process 129 (step S721), and the FCUH process 129 that has received this message. Transmits EOM to the designated destination (step S722).

FCUHプロセス129が指定宛先から受信正常の通知を受けた場合には(ステップS723)、SRMプロセス123に対して送信成功メッセージを送信し(ステップS724)、これを受信したSRMプロセス123がECSプロセス124に対してプロセス正常終了メッセージを送信する(ステップS725)。
さらに、プロセス正常終了メッセージを受信したECSプロセス124は、スキャン処理完了通知メソッドを実行して、FCSプロセス127に対し1ページ目のスキャン処理完了通知メッセージを送信する(ステップS726)。
When the FCUH process 129 receives a notification of normal reception from the designated destination (step S723), it transmits a transmission success message to the SRM process 123 (step S724). A process normal end message is transmitted to (step S725).
Further, the ECS process 124 that has received the process normal end message executes the scan process completion notification method and transmits a scan process completion notification message for the first page to the FCS process 127 (step S726).

そして、送信成功メッセージを受信したSRMプロセス123は、スタンプ実行要求メソッドを実行して、送信日時、発信元等のスタンプを指定宛先へ送信する旨をスキャナエンジンに指示する(ステップS727)。   Then, the SRM process 123 that has received the successful transmission message executes the stamp execution request method, and instructs the scanner engine to transmit the stamp such as the transmission date and time and the transmission source to the designated destination (step S727).

SRMプロセス123は、2ページ目の原稿のフィードインを開始するため、フィードインスタート要求メソッドを実行し、FCUHプロセス129に対して原稿のフィードインスタート要求メッセージを送信する(ステップS728)。FCUHプロセス129はフィードインスタート要求メッセージを受信して、原稿フィードインが開始され、これにより2ページ目の原稿のスキャンおよび指定宛先への送信が開始する。   The SRM process 123 executes a feed-in start request method in order to start feed-in of the second page document, and transmits a document feed-in start request message to the FCUH process 129 (step S728). The FCUH process 129 receives the feed-in start request message and starts document feed-in, whereby the document on the second page is scanned and transmitted to the designated destination.

原稿のスキャンが開始されると、次ページ原稿有無通知メッセージがスキャナエンジンからECSプロセス124に対して送信される。、図7では、次ページ原稿無通知メッセージが通知され、ECSプロセス124に通知されている(ステップS729)。そして、原稿のスキャンが終了すると、スキャナエンジンからECSプロセス124に対してスキャン終了メッセージが送信される(ステップS730)。   When scanning of a document is started, a next page document presence / absence notification message is transmitted from the scanner engine to the ECS process 124. In FIG. 7, the next page document non-notification message is notified and notified to the ECS process 124 (step S729). When scanning of the document is completed, a scan end message is transmitted from the scanner engine to the ECS process 124 (step S730).

ECSプロセス124は、受信したスキャン終了メッセージを次ページ原稿無の旨とともにFCSプロセス127へ送信する(ステップS731)。一方、スキャンが終了すると、SRMプロセス123はフィードイン終了要求メソッドを実行して、FCUHプロセス129に対してフィードイン終了メッセージを送信し(ステップS732)、これにより原稿フィードインを終了させる。   The ECS process 124 transmits the received scan end message to the FCS process 127 together with the fact that there is no next page document (step S731). On the other hand, when the scan is completed, the SRM process 123 executes a feed-in end request method and transmits a feed-in end message to the FCUH process 129 (step S732), thereby ending the document feed-in.

2ページの指定宛先へのファクシミリ送信が完了すると、FCSプロセス127はEOPメッセージ(次ページ無し)をFCUHプロセス129へ送信し(ステップS733)、これを受信したFCUHプロセス129がEOPを指定宛先へ送信する(ステップS734)。   When the facsimile transmission to the designated destination on page 2 is completed, the FCS process 127 sends an EOP message (no next page) to the FCUH process 129 (step S733), and the FCUH process 129 that has received this sends the EOP to the designated destination. (Step S734).

指定宛先から受信正常の通知を受けた場合(ステップS735)、FCUHプロセス129はSRMプロセス123に対して送信成功メッセージを送信し(ステップS736)、これを受信したSRMプロセス123が、ECSプロセス124に対してプロセス正常終了メッセージを送信する(ステップS737)。   When a normal reception notification is received from the designated destination (step S735), the FCUH process 129 transmits a transmission success message to the SRM process 123 (step S736), and the SRM process 123 that has received this message sends it to the ECS process 124. A process normal end message is transmitted to the server (step S737).

さらにプロセス正常終了メッセージを受信したECSプロセス124は、FCSプロセス127に対し2ページ目のスキャン処理完了通知メッセージを送信する(ステップS738)。また、送信成功メッセージを受信したSRMプロセス123は、スタンプ実行要求メソッドを実行して、送信日時、発信元等のスタンプの指定宛先へ送信の指示を行う(ステップS739)。そして、ECSプロセス124は、ジョブエンド通知メソッドを実行して、FCSプロセス127にジョブエンド通知メッセージを送信する(ステップS740)。FCSプロセス127は、このジョブエンド通知メッセージを受信することにより全ての原稿のファクシミリ送信動作を完了する。   Further, the ECS process 124 that has received the process normal end message transmits a scan processing completion notification message for the second page to the FCS process 127 (step S738). In addition, the SRM process 123 that has received the transmission success message executes the stamp execution request method, and issues a transmission instruction to the designated destination of the stamp such as the transmission date and time and the transmission source (step S739). Then, the ECS process 124 executes the job end notification method and transmits a job end notification message to the FCS process 127 (step S740). The FCS process 127 completes the facsimile transmission operation for all originals by receiving this job end notification message.

このように実施の形態1の複合機100では、各アプリプロセスなどクライアントプロセス201となるプロセスが、ECSプロセス124、MCSプロセス125、SRMプロセス123などのサーバプロセス202となるプロセスに対し、メソッド実行によるメッセージ送信を行ってサービスの要求を行い、サーバプロセス202がメソッド実行によりサービスの提供および実行結果メッセージのクライアントプロセス201に対する送信を行うことでプロセス間通信を実現しているので、アプリケーション130とプラットホーム120という特殊な構成を有する複合機100において、簡易な手法によって多種多様なユーザサービスの機能を提供することができる。   As described above, in the MFP 100 according to the first embodiment, the process that becomes the client process 201 such as each application process is executed by the method execution with respect to the process that becomes the server process 202 such as the ECS process 124, the MCS process 125, and the SRM process 123. Since the server process 202 provides a service by sending a message and the server process 202 provides the service by executing the method and sends an execution result message to the client process 201, the inter-process communication is realized. In the MFP 100 having the special configuration, a variety of user service functions can be provided by a simple method.

また、各アプリケーション130,各コントロールサービスおよびSRM123のそれぞれはメソッドを有するオブジェクトである。したがって、アプリケーション130やコントロールサービスの一部のモジュールにのみ変更がある場合や、必要に応じてコントロールサービス、アプリケーション130を適宜、追加したとしても、サーバプロセス202となるモジュール側でメッセージを受信したときにサービス処理を実行するメソッドを実装し、クライアントプロセス201となるモジュール側でサービス要求メッセージを送信するメソッドを実装するというインタフェースを確保しておけば、サービスやデータの授受が可能となるため、各アプリや各コントロールサービスの追加または変更などのソフトウェア開発効率を向上させることができ、画像形成装置を可変性を持った構成とすることができる。   Each application 130, each control service, and each SRM 123 is an object having a method. Therefore, when there is a change in only some modules of the application 130 or the control service, or when a message is received on the module side serving as the server process 202 even if the control service and the application 130 are added as necessary. If the interface that implements the method for executing the service processing and the method for sending the service request message on the module side serving as the client process 201 is secured, the service and data can be exchanged. Software development efficiency such as addition or change of applications and control services can be improved, and the image forming apparatus can be configured to have variability.

さらに、各コントロールサービスのそれぞれは、メソッドを有するオブジェクトであるため、各オブジェクトのデータの隠蔽を図ることができ、アプリケーション130の開発をサードベンダなどの外部に委託した場合でも、コントロールサービスの内容の隠蔽した状態とすることができる。
(実施の形態2)
実施の形態1にかかる複合機100では、サーバプロセスとクライアントプロセスとの関係を概念的に説明した。そこで、この実施の形態2では、サーバプロセスおよびクライアントプロセスをより具体的に説明する。なお、実施の形態2にかかる複合機100の構成は、図1と同様であるため説明を省略する。
Furthermore, since each control service is an object having a method, it is possible to conceal the data of each object. Even when the development of the application 130 is outsourced to a third vendor or the like, the contents of the control service It can be in a concealed state.
(Embodiment 2)
In the MFP 100 according to the first embodiment, the relationship between the server process and the client process has been conceptually described. Therefore, in the second embodiment, the server process and the client process will be described more specifically. Note that the configuration of the MFP 100 according to the second embodiment is the same as that in FIG.

図8は、実施の形態2の複合機100上で動作するサーバプロセスとクライアントプロセスの関係を詳細に示すブロック図である。ここで、クライアントプロセス1600は、サーバプロセス1610,1620に対して要求を行うことにより、サーバプロセス1610,1620からサービスの提供を受ける例えばSCS122などのプロセスをいう。   FIG. 8 is a block diagram illustrating in detail the relationship between a server process and a client process that operate on the multifunction peripheral 100 according to the second embodiment. Here, the client process 1600 refers to a process such as the SCS 122 that receives a service from the server processes 1610 and 1620 by making a request to the server processes 1610 and 1620.

また、サーバプロセス1610,1620は、クライアントプロセス1600からの要求によりクライアントプロセス1600に対しサービスを提供する例えばECS124などのプロセスをいう。   The server processes 1610 and 1620 are processes such as ECS 124 that provide services to the client process 1600 in response to a request from the client process 1600.

図8に示すとおり、クライアントプロセス1600には複数のスレッド1601が起動している。クライアントプロセス1600は、複数のスレッド1601を有していることから、複数のサーバプロセス1610,1620に対して同時にサービスを要求できる。   As shown in FIG. 8, a plurality of threads 1601 are activated in the client process 1600. Since the client process 1600 has a plurality of threads 1601, a plurality of server processes 1610 and 1620 can request services simultaneously.

また、クライアントプロセス1600は、サーバプロセス1610,1620のサービスを要求するために、スレッド1601からサーバプロセス1610,1620に対して関数コールを行い、その関数戻り値を受信することによってプロセス間通信を行う。   Further, the client process 1600 performs a function call from the thread 1601 to the server processes 1610 and 1620 in order to request the services of the server processes 1610 and 1620, and performs inter-process communication by receiving the function return values. .

クライアントプロセス1600のスレッド1601は、あらかじめサーバプロセス1610,1620から提供されている関数をコールする。関数は、クライアントスタブ1602に定義されている。また、クライアントディスパッチャ1603は関数戻り値の受信を監視するスレッドである。   The thread 1601 of the client process 1600 calls a function provided from the server processes 1610 and 1620 in advance. The function is defined in the client stub 1602. The client dispatcher 1603 is a thread that monitors reception of a function return value.

クライアントプロセス1600は、サーバプロセス1610,1620ごとにクライアントディスパッチャ1603を起動してサーバプロセス1610,1620と通信する。そして、関数コールを受けたサーバプロセス1610,1620は要求された関数に対応する処理を以下のように実行する。   The client process 1600 starts the client dispatcher 1603 for each of the server processes 1610 and 1620 and communicates with the server processes 1610 and 1620. Then, the server processes 1610 and 1620 that have received the function call execute processing corresponding to the requested function as follows.

例えばサーバプロセス1610のサーバディスパッチャ1611は、サーバスケルトン1612にコーディングされている複数のスレッド1613から、要求された関数に対応するスレッド1613を選択する。ここで選択されるスレッド1613は、実施の形態1で説明した関数ハンドラ403に相当する。サーバプロセス1610のスレッド1613は、要求された処理を実行してその実行結果を関数戻り値としてクライアントプロセス1600に送信する。   For example, the server dispatcher 1611 of the server process 1610 selects a thread 1613 corresponding to the requested function from a plurality of threads 1613 coded in the server skeleton 1612. The thread 1613 selected here corresponds to the function handler 403 described in the first embodiment. The thread 1613 of the server process 1610 executes the requested processing and transmits the execution result to the client process 1600 as a function return value.

次に、実施の形態2にかかるクライアントプロセス1600と、サーバプロセス1610,1620とを生成する生成方法について説明する。図9は、実施の形態2のクライアントプロセスとサーバプロセスとを生成する画像形成装置用通信プログラム生成装置(以下、「スタブジェネレータ」という。)の機能的構成を示すブロック図である。スタブジェネレータは、メッセージファイルからヘッダと、クライアントスタブと、サーバスケルトンを自動生成するものである。   Next, a generation method for generating the client process 1600 and the server processes 1610 and 1620 according to the second embodiment will be described. FIG. 9 is a block diagram illustrating a functional configuration of a communication program generation device for an image forming apparatus (hereinafter referred to as “stub generator”) that generates a client process and a server process according to the second embodiment. The stub generator automatically generates a header, a client stub, and a server skeleton from a message file.

図9に示すように、スタブジェネレータは、メッセージファイル1701を入力する入力部1702と、メッセージファイル1701に記述された内容の構文チェックを行う構文解析部1703と、メッセージファイル1701の記述内容から、ヘッダ1706とクライアントスタブ1707と、サーバスケルトン1705とを生成してハードディスク等の記憶媒体に格納するコード生成部1704とを備えている。   As shown in FIG. 9, the stub generator generates an header from an input unit 1702 that inputs a message file 1701, a syntax analysis unit 1703 that checks the syntax of the content described in the message file 1701, and the description content of the message file 1701. 1706, a client stub 1707, and a code generator 1704 that generates a server skeleton 1705 and stores it in a storage medium such as a hard disk.

まず、スタブジェネレータに入力されるメッセージファイル1701と、スタブジェネレータで生成されるヘッダ1706、クライアントスタブ1707およびサーバスケルトン1705について説明する。   First, the message file 1701 input to the stub generator, the header 1706 generated by the stub generator, the client stub 1707, and the server skeleton 1705 will be described.

メッセージファイル1701は、プロセス間通信の通信内容をC言語などのソースコードで記述したソースファイルである。図10は、メッセージファイルの記述例を示す説明図である。図10に示すように、メッセージファイル1701には、別のメッセージファイルや、C言語記述のインクルードヘッダを宣言するインクルード宣言と、サーバプロセスとクライアントプロセスの間で送受信するメッセージを記述したメッセージ記述と、クライアントプロセスからサーバプロセスに対して発行する関数の宣言などが記述されている。   A message file 1701 is a source file in which communication contents of inter-process communication are described in a source code such as C language. FIG. 10 is an explanatory diagram of a description example of a message file. As shown in FIG. 10, the message file 1701 includes another message file, an include declaration that declares an include header of a C language description, a message description that describes a message that is transmitted and received between the server process and the client process, The declaration of the function issued from the client process to the server process is described.

メッセージは、主としてサーバプロセスとクライアントプロセスとの間でイベ
ントや通知を行う際に発行するものであり、メッセージファイル1701のメッセージ記述としては、メッセージ名と、メッセージIDと、メッセージ方向、メッセージ内容を記述するようになっている。
A message is issued mainly when an event or notification is performed between a server process and a client process. As a message description of the message file 1701, a message name, a message ID, a message direction, and a message content are described. It is supposed to be.

メッセージ方向には、「IN」、「OUT」、「SELF」がある。「IN」は、クライアントプロセスからサーバプロセスに対して送信するメッセージを意味する。「OUT」は、サーバプロセスからクライアントプロセスに対して送信するメッセージを意味する。また、「SELF」は自分自身のプロセスに対して送信するメッセージを意味する。   The message direction includes “IN”, “OUT”, and “SELF”. “IN” means a message transmitted from the client process to the server process. “OUT” means a message transmitted from the server process to the client process. “SELF” means a message to be transmitted to its own process.

関数は、クライアントプロセスからサーバプロセスに処理要求や設定要求を行
う際に発行するものである。メッセージファイル1701の関数宣言には、関数名と、関数の型と、引数のみを記述し、関数の処理内容は記述しないようになっている。
The function is issued when a processing request or a setting request is issued from the client process to the server process. In the function declaration of the message file 1701, only the function name, function type, and argument are described, and the processing contents of the function are not described.

クライアントスタブ1707は、クライアントプログラムから呼び出される関数のサーバプロセスに対する発行を記述したソースファイルである。クライアントスタブ1707をコンパイルしてライブラリ化し、クライアントプログラムとリンクすることにより、クライアントプログラムからの関数コールがクライアントスタブ1707を介してサーバプロセスへ発行されるようになっている。   The client stub 1707 is a source file describing the issuance of a function called from the client program to the server process. By compiling the client stub 1707 into a library and linking with the client program, a function call from the client program is issued to the server process via the client stub 1707.

図11はスタブジェネレータにより生成されるクライアントスタブ1707の一例を示す説明図である。図11に示すように、クライアントスタブ1707には、後述するサーバスケルトン1705に登録された関数ハンドラを呼び出すことにより、関数コールが行われるようになっている。サーバスケルトン1705は、クライアントスタブ1707から呼び出された関数ハンドラとメッセージハンドラを登録したソースファイルである。   FIG. 11 is an explanatory diagram showing an example of a client stub 1707 generated by the stub generator. As shown in FIG. 11, a function call is performed on the client stub 1707 by calling a function handler registered in a server skeleton 1705 described later. The server skeleton 1705 is a source file in which a function handler called from the client stub 1707 and a message handler are registered.

図12は、スタブジェネレータにより生成されるサーバスケルトン1705の一例を示す説明図である。図12に示すように、サーバスケルトン1705にはクライアントスタブ1707に記述された関数に対応した関数ハンドラが登録されている。   FIG. 12 is an explanatory diagram showing an example of the server skeleton 1705 generated by the stub generator. As shown in FIG. 12, a function handler corresponding to the function described in the client stub 1707 is registered in the server skeleton 1705.

関数ハンドラでは引数の受け渡し部のみが記述され、処理内容を記述する実装記述部は空欄の状態で生成されている。この実装記述部には、クライアントプログラムからクライアントスタブ1707を介して発行される関数の処理内容を、サーバプログラムの開発者が自在に記述できるようになっている。ヘッダ1706は、サーバスケルトン1705とクライアントスタブ1707で共通の定義、宣言などを記述したソースファイルである。   In the function handler, only the argument passing part is described, and the implementation description part describing the processing contents is generated in a blank state. In this implementation description section, the processing contents of the function issued from the client program via the client stub 1707 can be freely described by the developer of the server program. The header 1706 is a source file describing definitions and declarations common to the server skeleton 1705 and the client stub 1707.

図13はスタブジェネレータにより生成されるヘッダ1706の一例を示す説明図である。図13に示すように、ヘッダ1706には、メッセージファイル1701に記述されたインクルード宣言、メッセージID、メッセージの構造体などのメッセージ宣言、関数宣言および関数ハンドラ宣言などが記述された状態で生成されるようになっている。   FIG. 13 is an explanatory diagram showing an example of the header 1706 generated by the stub generator. As shown in FIG. 13, the header 1706 is generated in a state where an include declaration described in the message file 1701, a message ID, a message declaration such as a message structure, a function declaration, a function handler declaration, and the like are described. It is like that.

次に、スタブジェネレータによるサーバスケルトン1705、クライアントスタブ1707およびヘッダ1706の生成処理について説明する。図14は、サーバスケルトン、クライアントスタブおよびヘッダの生成処理のフローチャートである。   Next, generation processing of the server skeleton 1705, the client stub 1707, and the header 1706 by the stub generator will be described. FIG. 14 is a flowchart of a server skeleton, client stub, and header generation process.

スタブジェネレータの構文解析部1703は、メッセージファイル1701に記述された関数宣言、メッセージ定義、インクルード宣言、C言語記述の文法チェックを行い(ステップS1801)、さらにメッセージファイル1701に定義されている関数名およびメッセージ定義の中のメッセージID、メッセージ名の一意性の判断を行う(ステップS1802)。   The syntax analysis unit 1703 of the stub generator performs a grammar check on the function declaration, message definition, include declaration, and C language description described in the message file 1701 (step S1801), and further, the function name and the function name defined in the message file 1701 The uniqueness of the message ID and message name in the message definition is determined (step S1802).

そして、関数宣言、メッセージ定義、インクルード宣言の記述に文法エラーがあった場合、あるいは関数名、メッセージID、メッセージ名のいずれかが重複している場合には、ユーザに構文エラーである旨のメッセージを通知し処理を終了する(ステップS1803、S1804)。   If there is a syntax error in the description of the function declaration, message definition, or include declaration, or if any of the function name, message ID, or message name is duplicated, a message to the user that it is a syntax error And the process ends (steps S1803 and S1804).

構文解析後、コード生成部1704は、メッセージファイル1701の記述内容から、ヘッダ1706と、サーバスケルトン1705と、クライアントスタブ1707を生成する。具体的には、メッセージファイル1701のインクルード宣言とC言語記述とをヘッダ1706にそのまま転記し、メッセージファイル1701のメッセージ定義に記述されているメッセージ構造体をヘッダ1706にコピーする(ステップS1805)。   After the syntax analysis, the code generation unit 1704 generates a header 1706, a server skeleton 1705, and a client stub 1707 from the description content of the message file 1701. Specifically, the include declaration and C language description of the message file 1701 are transferred as they are to the header 1706, and the message structure described in the message definition of the message file 1701 is copied to the header 1706 (step S1805).

また、コード生成部1704は、メッセージファイル1701の関数宣言から関数ハンドラ名を自動生成し(例えば、関数名abcの場合、関数ハンドラ名をabc_handlerとして生成する)、生成された関数ハンドラ名をサーバスケルトン1705内に登録する。   In addition, the code generation unit 1704 automatically generates a function handler name from the function declaration of the message file 1701 (for example, in the case of the function name abc, the function handler name is generated as abc_handler), and the generated function handler name is the server skeleton. Register in 1705.

そして、関数ハンドラの処理内に、引数受け渡しの記述を行うとともに、戻り値領域の生成システムコールの発行を記述する。関数ハンドラの実際の処理内容を記述する実装記述部の欄を空欄とし、その実装記述部の後に、戻り値送信と戻り値領域解放の各システムコールの発行を記述する(ステップS1806)。   In the function handler process, argument passing is described and issue of a return value area generation system call is described. The field of the implementation description part describing the actual processing contents of the function handler is left blank, and after the implementation description part, the issue of each system call for return value transmission and return value area release is described (step S1806).

また、コード生成部1704は、メッセージファイル1701に記述された関数宣言ごとに、関数名と引数の記述をクライアントスタブ1707に登録し、その関数の処理内に、関数コールメッセージ生成コールと関数ハンドラの呼び出しと戻り値解放の各システムコールを記述する(ステップS1807)。なお、関数ハンドラ呼び出しには、発行した関数の戻り値の待ち受ける関数戻り値待ちシステムコールが内部的に発行されるようになっている。   In addition, the code generation unit 1704 registers the function name and argument description in the client stub 1707 for each function declaration described in the message file 1701, and includes the function call message generation call and the function handler in the processing of the function. Each system call for calling and return value release is described (step S1807). A function return value waiting system call that waits for a return value of the issued function is internally issued for the function handler call.

このようにスタブジェネレータにより、クライアントスタブ1707とサーバスケルトン1705とヘッダ1706を生成したら、次にサーバオブジェクトおよびクライアントオブジェクトを完成させる。   When the client stub 1707, the server skeleton 1705, and the header 1706 are generated by the stub generator in this manner, the server object and the client object are then completed.

サーバプログラムの開発者は、サーバスケルトン1705の関数ハンドラの実装記述部(空欄)に、関数ハンドラで行うべき処理内容をエディタなどを利用して記述し、サーバスケルトン1705をヘッダ1706とともにコンパイルしてサーバスタブオブジェクトを生成する。また、サーバスケルトン1705に登録した関数ハンドラを宣言するとともに、クライアントプロセスとの間でメッセージファイル1701に記述されたメッセージの送受信を行うメッセージハンドラ、エラー処理を行うエラーハンドラ、サーバの初期化、サーバディスパッチャ起動等のシステムコールの発行を記述したサーバソースファイルを作成してコンパイルし、サーバスタブオブジェクトとリンクして、サーバプログラムを完成させる。   The developer of the server program describes the processing contents to be performed by the function handler in the function handler implementation description section (blank) of the server skeleton 1705 using an editor or the like, and compiles the server skeleton 1705 together with the header 1706 to Create a stub object. In addition, a function handler registered in the server skeleton 1705 is declared, a message handler that transmits / receives a message described in the message file 1701 to / from a client process, an error handler that performs error processing, server initialization, a server dispatcher Create and compile a server source file that describes the issuance of system calls such as startup, and link with the server stub object to complete the server program.

一方、クライアントスタブ1707はヘッダ1706とともにコンパイルしてクライアントスタブオブジェクトを生成する。サーバプロセスごとにクライアントスタブオブジェクトを生成し、生成した複数のクライアントスタブオブジェクトをライブラリとする。   On the other hand, the client stub 1707 is compiled with the header 1706 to generate a client stub object. A client stub object is generated for each server process, and the plurality of generated client stub objects are used as a library.

また、関数の発行、関数ハンドラの宣言、エラー処理を行うエラーハンドラの宣言、クライアントプロセスとの間でメッセージファイル1701に記述されたメッセージの送受信を行うメッセージハンドラ、およびクライアントプロセスの初期化やクライアントディスパッチャ起動等のシステムコールの発行を記述したクライアントプログラムを作成してコンパイルし、スタブのライブラリとリンクすることによりクライアントプログラムを完成させる。   Also, function issuance, function handler declaration, error handler declaration for error handling, message handler for sending and receiving messages described in the message file 1701 with the client process, and initialization of the client process and client dispatcher A client program describing the issuance of system calls such as activation is created and compiled, and the client program is completed by linking with a stub library.

図15は、クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。なお、サーバプログラムとクライアントプログラムは実際は実行可能形式のオブジェクトファイルであるが、図15では、説明の都合上いずれもソースコードで表示している。   FIG. 15 is an explanatory diagram showing a call and response sequence with the server program when a function call is made from the client program. Note that the server program and the client program are actually executable object files, but in FIG. 15, both are displayed in source code for convenience of explanation.

クライアントプログラムからサーバプログラムに対して、たとえばOpen関数をコールすると、クライアントスタブオブジェクトで定義されたOpenが呼び出される(ステップS1901)。そして、このスタブのOpenの処理の中で、Openの関数ハンドラOpen_handlerがサーバプログラムに対してコールされる(ステップS1902)。   For example, when an Open function is called from the client program to the server program, Open defined in the client stub object is called (step S1901). Then, in the stub Open process, the Open function handler Open_handler is called to the server program (step S1902).

サーバプログラムでは、クライアントスタブオブジェクトから関数ハンドラOpen_handlerの発行を受け取って、サーバスタブオブジェクトに登録されているOpen_handlerの実装記述部に記述されている処理を実行し(ステップS1903)、その実行結果をクライアントスタブへ戻り値として返す(ステップS1904)。クライアントプログラムでは、この戻り値をクライアントスタブから受け取って(ステップS1905)、次の処理へ移行する。   The server program receives the issuance of the function handler Open_handler from the client stub object, executes the process described in the implementation description part of the Open_handler registered in the server stub object (step S1903), and outputs the execution result to the client stub. Is returned as a return value (step S1904). The client program receives this return value from the client stub (step S1905), and proceeds to the next processing.

このように実施の形態2のスタブジェネレータでは、メッセージファイル1701に関数宣言を記述することによりクライアントスタブ1707とサーバスケルトン1705を容易に生成することができる。しかも生成されるサーバスケルトン1705の実装記述部は空欄となっているので、プログラム開発者は必要に応じて関数の処理内容を容易に変更するができる。   As described above, the stub generator of the second embodiment can easily generate the client stub 1707 and the server skeleton 1705 by describing the function declaration in the message file 1701. In addition, since the implementation description part of the generated server skeleton 1705 is blank, the program developer can easily change the processing contents of the function as necessary.

このため複合機100に可変性をもたせることができるとともに、多種多様な機能を実現させることができる。さらに、サードベンダーなどの他社がクライアントプログラムの開発を行う場合でも、クライアントプログラムには提供される関数コールを記述するだけでプロセス間通信が可能となるので、内部の通信プロトコルの隠蔽性を保つことが可能となる。   For this reason, the multifunction device 100 can be provided with variability and various functions can be realized. In addition, even when a third-party vendor or other company develops a client program, inter-process communication is possible simply by describing the function call provided in the client program, so the internal communication protocol is concealed. Is possible.

また、実施の形態2のスタブジェネレータでは、プロセス間通信を関数コールで実現しているので、ジョブの並列実行をスレッドで実現した場合でも、高速なプロセス間通信が可能となる。また、関数からの戻り値によってスレッド間の同期をとることができるので、同期のための処理プログラムを別途作成する必要がなくなり、プログラム開発の労力を低減することができる。
(実施の形態3)
実施の形態1にかかる複合機100では、オブジェクトのメソッドを利用したプロセス間通信を行うものであったが、この実施の形態3にかかる複合機100は、さらにエージェントの機能を利用したものである。
In the stub generator of the second embodiment, since inter-process communication is realized by function calls, high-speed inter-process communication is possible even when parallel execution of jobs is realized by threads. Further, since the threads can be synchronized by the return value from the function, it is not necessary to separately create a processing program for synchronization, and the labor for program development can be reduced.
(Embodiment 3)
In the MFP 100 according to the first embodiment, the inter-process communication using the object method is performed. However, the MFP 100 according to the third embodiment further uses the function of the agent. .

図16は、実施の形態3にかかる複合機の構成を示すブロック図である。図16に示すように、実施の形態3の複合機100は、エージェントアプリ117をアプリケーション層に備えている点が実施の形態1の複合機100と異なる。このため、他の構成については説明を省略する。なお、実施の形態3にかかる複合機100はネットワークインタフェース106によってLANなどのネットワークに接続された状態となっている。   FIG. 16 is a block diagram of the configuration of the multifunction machine according to the third embodiment. As illustrated in FIG. 16, the MFP 100 according to the third embodiment is different from the MFP 100 according to the first embodiment in that an agent application 117 is provided in the application layer. For this reason, description is abbreviate | omitted about another structure. Note that the MFP 100 according to the third embodiment is connected to a network such as a LAN by the network interface 106.

エージェントアプリ117は、ネットワークを介して受信したエージェントの内容を解釈して実行するアプリケーションであり、本発明におけるエージェント処理手段を構成する。ここで、エージェントとは、ユーザに代行して自らの環境を自律的に判断して能動的に動作したり、ネットワークを通じて移動するプログラムである。   The agent application 117 is an application that interprets and executes the contents of the agent received via the network, and constitutes an agent processing means in the present invention. Here, the agent is a program that acts autonomously on behalf of the user and operates actively or moves through a network.

エージェントを用いることで、ネットワークの負荷を軽減したり、ネットワークを常に占有する必要がなくなる。また、連続的な処理を効率的に行うことができる。なお、エージェントの動作および利点については、以下に示す例で詳細に説明する。また、エージェントアプリ117としては、例えば、telescriptコマンドを解釈することができるtelescriptエンジンなどを用いることができる。   By using an agent, it is not necessary to reduce the load on the network or always occupy the network. Moreover, continuous processing can be performed efficiently. Note that the operation and advantages of the agent will be described in detail in the following example. As the agent application 117, for example, a telescript engine that can interpret a telescript command can be used.

具体的には、エージェントアプリ117は、ネットワークに接続された他の複合機やPCから送信されてきたエージェントをNCS128を介して受信し、その内容に一または複数のサービス要求が含まれている場合、その内容から要求のあったサービスごとに必要なコントロールサービスやアプリケーション130を判断して選定し、選定されたコントロールサービスやアプリケーション130に対してサービス要求を行う。   Specifically, the agent application 117 receives an agent transmitted from another multifunction device or PC connected to the network via the NCS 128, and the content includes one or more service requests. The control service and application 130 necessary for each requested service are determined and selected from the contents, and a service request is made to the selected control service and application 130.

また、エージェントアプリ117は、受信したエージェントに含まれるサービス要求に必要なコントロールサービスやアプリケーション130が自己の複合機100内部で正常に動作しているか否かを判断し、正常動作していない場合(存在しない場合も含む)には、ネットワーク上の他の複合機100を自律的に検索して、当該他の複合機100にエージェントを送信する。   Further, the agent application 117 determines whether or not the control service or application 130 necessary for the service request included in the received agent is operating normally in the MFP 100, and if the service is not operating normally ( In other cases, the MFP 100 autonomously searches for another MFP 100 on the network and transmits an agent to the other MFP 100.

エージェントを受信した他の複合機100は、エージェントアプリ117によって、サービスごとに必要なコントロールサービスやアプリケーション130の選定とサービス要求、および必要なコントロールサービスやアプリケーション130の正常動作の調査を行う。このため、サービスに必要なコントロールサービスやアプリケーション130が正常動作していない限り、エージェントはネットワーク内の複合機を順に移動していく。   The other MFP 100 that has received the agent uses the agent application 117 to select a control service or application 130 required for each service and request a service, and to check the normal operation of the required control service or application 130. For this reason, unless the control service or application 130 necessary for the service is operating normally, the agent sequentially moves the multifunction peripherals in the network.

ここで、サービス要求に必要なモジュールとは、例えばプリント要求についてはプリンタアプリ111、ECS124、MCS125およびSRM123であり、ファクシミリ送信要求についてはファックスアプリ113、FCS127、ECS124、MCS125およびSRM123である。   Here, the modules necessary for the service request are, for example, the printer application 111, ECS 124, MCS 125, and SRM 123 for the print request, and the fax application 113, FCS 127, ECS 124, MCS 125, and SRM 123 for the facsimile transmission request.

次に、実施の形態3にかかる複合機100によるエージェント機能を利用したプロセス間通信について説明する。なお、実施の形態3にかかる複合機100において、複合機100内部で動作するプロセス間の通信は、実施の形態1の複合機100と同様に、オブジェクトのメソッド実行によるメッセージ送信によって実現されている。   Next, inter-process communication using the agent function by the multifunction peripheral 100 according to the third embodiment will be described. In the MFP 100 according to the third embodiment, communication between processes operating in the MFP 100 is realized by message transmission by executing an object method, as in the MFP 100 according to the first embodiment. .

図17は、このエージェント機能を複合機に適用した場合のユーザのPCと複合機のやりとりの例を示す模式図である。図19は、複合機100aにおけるプロセス間通信の流れを示す説明図である。ここでは、LANなどのネットワーク901にPC900および複数の複合機100a,100b,100cが接続されているものとする。また、各複合機100a,100b,100cは図16に示した構成を有するものとする。   FIG. 17 is a schematic diagram showing an example of interaction between the user's PC and the multifunction device when this agent function is applied to the multifunction device. FIG. 19 is an explanatory diagram showing the flow of inter-process communication in the multifunction peripheral 100a. Here, it is assumed that a PC 900 and a plurality of multifunction peripherals 100a, 100b, and 100c are connected to a network 901 such as a LAN. Each of the multifunction peripherals 100a, 100b, and 100c has the configuration shown in FIG.

また、PC900はエージェントの送信を行うエージェントエンジン902が搭載されている。なお、複合機100a,100b,100cは、エージェントアプリ117がエージェントエンジン902に相当する。   The PC 900 is equipped with an agent engine 902 that performs agent transmission. In the multifunction peripherals 100a, 100b, and 100c, the agent application 117 corresponds to the agent engine 902.

図17に示すように、PC900のエージェントエンジン902によって、エージェントが複合機100aに対して送信される。このエージェントには、複数のサービス要求を記述することができる。このように複数のサービス要求が記述されたエージェントは、エージェントを受信する複合機(あるいは、さらにネットワーク上の他の複合機にエージェントが移動した場合には、その移動先の複合機)に対し、記述された複数のサービス要求を連続的に実行させることを指示している。   As shown in FIG. 17, the agent is transmitted to the multifunction peripheral 100a by the agent engine 902 of the PC 900. A plurality of service requests can be described in this agent. In this way, an agent in which a plurality of service requests are described is sent to the multifunction device that receives the agent (or, if the agent has moved to another multifunction device on the network, the destination multifunction device) It is instructed to continuously execute a plurality of described service requests.

図17の例では、「ファイル転送 X to PC」および「プリント X」という2つのサービス要求がプログラム形式で一つのエージェントに記述されている。ここで、「ファイル転送 X to PC」は、複合機100aのHDD105に格納されているファイルXのPC900へのファイル転送要求を示している。また、「プリント X」は、ファイルXのプリント要求を示している。従って、図17に示す例のエージェントは、エージェントを受信する複合機に対して、「ファイルXをPC900にファイル転送し、次にファイルXをプリントする」ことを指示したものである。   In the example of FIG. 17, two service requests “file transfer X to PC” and “print X” are described in one agent in a program format. Here, “file transfer X to PC” indicates a file transfer request to the PC 900 for the file X stored in the HDD 105 of the multifunction peripheral 100a. “Print X” indicates a print request for the file X. Accordingly, the agent in the example shown in FIG. 17 instructs the multi-function peripheral that receives the agent to “transfer the file X to the PC 900 and then print the file X”.

複合機100aでは、PC900からのエージェントをNCS128で受信して(ステップS1101)、エージェントアプリ117へ送信する(ステップS1102)。   In the multifunction peripheral 100a, the agent from the PC 900 is received by the NCS 128 (step S1101) and transmitted to the agent application 117 (step S1102).

エージェントアプリ117は、受信したエージェントに記述されたサービス要求の内容から、まずファイル転送に必要なネットファイルアプリ115とMCS125を選定する。また、エージェントアプリ117は、受信したエージェントの内容から、プリント機能に必要なプリンタアプリ111とECS124とMCS125とSRM123とを選定する。   The agent application 117 first selects the net file application 115 and MCS 125 necessary for file transfer from the contents of the service request described in the received agent. Further, the agent application 117 selects the printer application 111, ECS 124, MCS 125, and SRM 123 necessary for the print function from the contents of the received agent.

そして、エージェントアプリ117は、ファイル転送のためネットファイル115に対して、HDD105に格納されているファイルXをPC900にファイル転送する旨のサービス要求を行う(ステップS1103)。   Then, the agent application 117 makes a service request for transferring the file X stored in the HDD 105 to the PC 900 to the net file 115 for file transfer (step S1103).

ネットファイルアプリ115は、このサービス要求を受信すると、MCS125からHDD105にアクセスして(ステップS1104、S1105)、ファイルXを読み出し、メモリなどに一時的に格納しておく。ネットファイルアプリ115は、読み出しの実行結果をエージェントアプリ117に通知する(ステップS1111)。   Upon receiving this service request, the net file application 115 accesses the HDD 105 from the MCS 125 (steps S1104 and S1105), reads the file X, and temporarily stores it in a memory or the like. The net file application 115 notifies the read execution result to the agent application 117 (step S1111).

また、エージェントアプリ117は、プリンタアプリ111に対して、読み出したファイルXをカラーラインプリンタ102または白黒プリンタ101でプリントする旨の要求を行う(ステップS1106)。   Also, the agent application 117 requests the printer application 111 to print the read file X by the color line printer 102 or the monochrome printer 101 (step S1106).

プリンタアプリ111は、このプリント要求を受信すると、実施の形態1でプリント動作で説明した手順で、ECS124、MCS125、SRM123間のプロセス間通信を行って(ステップS1107、S1108、S1109)、ファイルXをプリントする(ステップS1110)。そして、プリンタアプリ111は、エージェントアプリ117にプリント実行結果を通知する(ステップS1112)。   Upon receiving this print request, the printer application 111 performs inter-process communication between the ECS 124, the MCS 125, and the SRM 123 (steps S1107, S1108, and S1109) according to the procedure described in the printing operation in the first embodiment. Printing is performed (step S1110). Then, the printer application 111 notifies the agent application 117 of the print execution result (step S1112).

つぎに、エージェントアプリ117は、2つの実行結果を追加したエージェントとメモリに一時的に格納されているファイルXを、NCS128によってネットワーク上のPC900に送信する(ステップS1113,S1114)。   Next, the agent application 117 transmits the agent added with the two execution results and the file X temporarily stored in the memory to the PC 900 on the network by the NCS 128 (steps S1113 and S1114).

ここで、エージェントアプリ117を利用しなかった場合の処理について説明しておく。図18は、エージェント機能を利用しない場合のユーザのPCと複合機のやりとりの例を示す模式図である。   Here, processing when the agent application 117 is not used will be described. FIG. 18 is a schematic diagram showing an example of the exchange between the user's PC and the multifunction machine when the agent function is not used.

図18に示すように、エージェントアプリ117がない場合には、ユーザはPC900から「ファイルXのファイル転送」と「ファイルXのプリント」という2つの要求を別々に複合機100aに送信しなければならない。また、各要求に対する応答も別個に受信されることになる。このため、効率的なサービスの提供を受けられないばかりか、ネットワークにアクセスする回数も4回と多くなってしまう。   As shown in FIG. 18, when the agent application 117 is not provided, the user must separately send two requests “file X file transfer” and “file X print” from the PC 900 to the multi-function peripheral 100a. . A response to each request is also received separately. For this reason, not only can an efficient service be provided, but the number of accesses to the network increases to four times.

これに対し、図17に示すようにエージェントを利用した場合には、PC900のユーザは「ファイルXのファイル転送とプリント」という2つの要求を一つのエージェントで行えば、エージェントアプリ117によって、必要なアプリ、コントロールサービスが自律的に判断されて各要求に対するサービスの提供を効率的に受けることができる。このため、ネットワークにアクセスする回数も、最初のサービス要求送信時と、最後の実行結果通知およびファイル転送時の2回だけですむので、ネットワークにかかる負荷も軽減する。   On the other hand, when the agent is used as shown in FIG. 17, if the user of the PC 900 makes two requests “file transfer and print of file X” with one agent, the agent application 117 needs to do the necessary. The app and control service are autonomously determined, and the service for each request can be efficiently received. For this reason, the number of times of accessing the network is only two times when the first service request is transmitted and when the last execution result notification and file transfer are performed, so the load on the network is reduced.

つぎに、エージェントを利用してネットワークに接続された複数の複合機の間でプロセス間通信を行う場合について説明する。図20は、エージェント機能を複数の複合機に適用した場合のユーザのPCと複合機のやりとりの例を示す模式図である。   Next, a case where inter-process communication is performed between a plurality of multifunction peripherals connected to a network using an agent will be described. FIG. 20 is a schematic diagram illustrating an example of interaction between the user's PC and the multifunction device when the agent function is applied to a plurality of multifunction devices.

図20に示すように、LANなどのネットワークにはPC900と複数の複合機100a,100b,100cが接続されている。複合機100a,100bおよび100cは、いずれも図16に示した構成を有しており、従ってエージェントアプリ117を備えている。また、PC900にはエージェントの送信を行うエージェントエンジン902が搭載されている。   As shown in FIG. 20, a PC 900 and a plurality of multifunction peripherals 100a, 100b, and 100c are connected to a network such as a LAN. Each of the multifunction peripherals 100a, 100b, and 100c has the configuration shown in FIG. 16, and therefore includes an agent application 117. Also, the PC 900 is equipped with an agent engine 902 that performs agent transmission.

図20に示すように、エージェントにはサービス要求コマンドが記述されている。このようにサービス要求コマンドが記述されたエージェントは、エージェントを受信した複合機で記述されているサービス要求コマンドのサービス要求が実行可能か否かを調べ、実行可能である場合にサービス要求を行い、実行不可能である場合にネットワークに接続された他の複合機にエージェントを移動(送信)させて、移動先の複合機でサービス要求が実行可能か否かを調べる旨を示したものである。   As shown in FIG. 20, a service request command is described in the agent. The agent in which the service request command is described in this manner checks whether or not the service request of the service request command described in the MFP that has received the agent is executable. In the case where execution is impossible, the agent is moved (transmitted) to another multi-function peripheral connected to the network, and it is checked whether or not a service request can be executed in the target multi-function peripheral.

図20のエージェントの例では、サービス要求コマンドとして「ファクシミリ送信」が指定されているので、エージェントを受信した複合機100aで「ファクシミリ送信」が実行可能か否かを調べ、実行可能である場合には「ファクシミリ送信」のサービス要求を行い、実行不可能である場合にはネットワークに接続された他の複合機100b,100cなどにエージェントを送信して、移動先の複合機で複合機100aと同様に処理を行うことを指示している。   In the example of the agent in FIG. 20, since “facsimile transmission” is designated as the service request command, it is checked whether or not “facsimile transmission” can be executed by the MFP 100a that has received the agent. Makes a "facsimile transmission" service request, and if it cannot be executed, sends an agent to the other multifunction devices 100b, 100c connected to the network, and the destination multifunction device is the same as the multifunction device 100a. Is instructed to perform processing.

なお、図20のエージェントの例では、サービス要求コマンドを一つしか指定していないが、複数のサービス要求コマンド指定しても良い。この場合には、指定された複数のサービス要求コマンドに対して順次上記と同様の処理が行われることになる。   In the example of the agent in FIG. 20, only one service request command is specified, but a plurality of service request commands may be specified. In this case, the same processing as described above is sequentially performed on a plurality of designated service request commands.

また、図20のエージェントの例では、サービス要求コマンドしか記述されておらず、この場合、サービス要求が実行できないと判断された場合に自律的にネットワーク内の他の複合機にエージェントが移動することを示しているが、エージェントにおいて、サービス要求コマンドの行の下に、さらに例えば「複合機100aのネットワークアドレス→複合機100bのネットワークアドレス→複合機100cのネットワークアドレス」などを記述して、ネットワーク内で移動する複合機およびエージェントが移動する順番を指定しても良い。   In the example of the agent in FIG. 20, only the service request command is described. In this case, when it is determined that the service request cannot be executed, the agent autonomously moves to another multifunction device in the network. In the agent, below the line of the service request command, for example, “network address of multifunction device 100a → network address of multifunction device 100b → network address of multifunction device 100c” or the like is further described in the network. The order in which the multifunction peripherals and agents move with may be designated.

この場合には、複合機100aでサービス要求が実行できない場合に、エージェントが自律的に複合機100b、ついで複合機100cに移動することを示したこととなる。   In this case, when the service request cannot be executed by the multifunction device 100a, the agent autonomously moves to the multifunction device 100b and then to the multifunction device 100c.

なお、エージェントは、PC900のエージェントエンジン902によって、例えばtelescriptのGOコマンドを実行することにより複合機100aに送信される。   The agent is transmitted to the multi-function peripheral 100a by executing a telescript GO command by the agent engine 902 of the PC 900, for example.

複合機100aはこのエージェントをNCS128で受信して、エージェントアプリ117へ送信する。エージェントを受信したエージェントアプリ117はエージェントの内容を解釈し、まずファクシミリ送信に必要なファックスアプリ113、FCS127、ECS124、MCS125およびSRM123の各プロセスが正常に動作しているか否かを調査する。   The multi-function device 100 a receives this agent by the NCS 128 and transmits it to the agent application 117. Upon receiving the agent, the agent application 117 interprets the contents of the agent, and first checks whether or not the processes of the fax application 113, FCS 127, ECS 124, MCS 125, and SRM 123 necessary for facsimile transmission are operating normally.

ここで、正常動作の調査は、たとえばエージェントアプリ117から各プロセスに対してアクセスし、アクセスに対する応答があった場合に正常動作していると判断するように構成すれば良い。   Here, the normal operation investigation may be configured such that, for example, each process is accessed from the agent application 117 and it is determined that the normal operation is performed when there is a response to the access.

そして、ファックスアプリ113、FCS127、ECS124,MCS125およびSRM123のすべてが正常動作している場合は、これらのプロセスを選定し、ファックスアプリ113に対してファクシミリ送信要求を送信する。この場合は、実施の形態1で説明したファクシミリ送信動作の手順と同様の処理が行われる。   If all of the fax application 113, FCS 127, ECS 124, MCS 125, and SRM 123 are operating normally, these processes are selected and a facsimile transmission request is transmitted to the fax application 113. In this case, processing similar to the procedure of the facsimile transmission operation described in the first embodiment is performed.

しかし、ファックスアプリ113、FCS127、ECS124,MCS125およびSRM123のいずれかが異常であると判断された場合は、次のような処理を行う。ここでは、ECSプロセス124が異常であった場合を考える。   However, if any of the fax application 113, FCS 127, ECS 124, MCS 125, and SRM 123 is determined to be abnormal, the following processing is performed. Here, a case where the ECS process 124 is abnormal is considered.

このとき、エージェントアプリ117は、動作が異常であるプロセスのプロセス名と自己のネットワークアドレスなどの情報をエージェントに追加する。そして、ネットワーク901内の複合機を自律的に検索し、最初に発見された複合機(図12の例では複合機100b)にエージェントを送信する。   At this time, the agent application 117 adds information such as the process name of the process whose operation is abnormal and its own network address to the agent. Then, the MFP 901 autonomously searches for the MFP in the network 901, and transmits the agent to the MFP first discovered (the MFP 100b in the example of FIG. 12).

複合機100bでは、エージェントアプリ117によって複合機100aから送信されてきたエージェントを受信する。そして、複合機100aのエージェントアプリ117と同様にエージェントの内容を解釈し、ファクシミリ送信に必要なプロセスであって、かつエージェントに記述された、複合機100aで動作が異常なプロセスおよびそのプロセスから呼び出されるプロセスであるECS124、MCS125およびSRM123が正常に動作しているか否かを調査する。そして、ECS124、MCS125およびSRM123のいずれもが正常であれば、その旨のメッセージをエージェントに追加して複合機100aに対して送信する。   In the multifunction device 100b, the agent transmitted from the multifunction device 100a by the agent application 117 is received. Then, in the same manner as the agent application 117 of the multifunction peripheral 100a, the contents of the agent are interpreted, and a process that is necessary for facsimile transmission and that is described in the agent and that operates abnormally in the multifunction peripheral 100a and is called from the process. It is investigated whether ECS 124, MCS 125, and SRM 123, which are processes to be operated, are operating normally. If all of the ECS 124, MCS 125, and SRM 123 are normal, a message to that effect is added to the agent and transmitted to the multifunction peripheral 100a.

複合機100aのエージェントアプリ117は、複合機100bからのエージェントを受信すると、複合機100a内のファックスアプリ113とFCS127とを選定するとともに、ECS124、MCS125、SRM123については複合機100b内のものを選定する。これにより、ファクシミリ送信は、ECSプロセス124が正常に動作している複合機100bから行われる。   When the agent application 117 of the multifunction device 100a receives the agent from the multifunction device 100b, the agent application 117 selects the fax application 113 and FCS 127 in the multifunction device 100a, and selects the ECS 124, MCS 125, and SRM 123 in the multifunction device 100b. To do. As a result, facsimile transmission is performed from the multifunction peripheral 100b in which the ECS process 124 is operating normally.

複合機100aでプロセスの選定が終了したら、ファクシミリ送信処理を次のように実行する。図22は、複合機100aおよび複合機100bにおけるプロセス間通信の流れを示すデータシーケンス図である。   When the selection of the process is completed in the multifunction peripheral 100a, the facsimile transmission process is executed as follows. FIG. 22 is a data sequence diagram illustrating a flow of inter-process communication in the multifunction peripheral 100a and the multifunction peripheral 100b.

複合機100aのエージェントアプリ117は、ファックス送信要求メッセージを、複合機100a内のファックスアプリ127に送信する(ステップS1400)。ファックスアプリ127は、ファックス送信要求メッセージを受信すると、送信スタート要求メソッドを実行して、FCSプロセス127に送信スタート要求メッセージを送信する(ステップS1401)。   The agent application 117 of the multifunction peripheral 100a transmits a fax transmission request message to the fax application 127 in the multifunction peripheral 100a (step S1400). Upon receiving the fax transmission request message, the fax application 127 executes a transmission start request method and transmits a transmission start request message to the FCS process 127 (step S1401).

複合機100aのFCSプロセス127がファックスアプリプロセス113から送信スタート要求メッセージを受信した場合には、送信スタートメソッドを実行して、ジョブ動作モード設定要求メッセージをエージェントに追加する。そして、エージェントアプリ117によって複合機100bのネットワークアドレスにエージェントを送信する(ステップS1402)。これにより、ジョブ動作モード設定メッセージは、エージェントによってネットワークアドレスで指定された複合機100bに送信される。   When the FCS process 127 of the multifunction peripheral 100a receives a transmission start request message from the fax application process 113, it executes a transmission start method and adds a job operation mode setting request message to the agent. Then, the agent application 117 transmits the agent to the network address of the multifunction peripheral 100b (step S1402). Accordingly, the job operation mode setting message is transmitted to the multi-function peripheral 100b designated by the network address by the agent.

複合機100bでは、エージェントアプリ117によってエージェントを受信して、エージェントに記述されているジョブ動作モード設定要求メッセージをECSプロセス124に送信する(ステップS1403)。複合機100bのECSプロセス124は、ジョブ動作モード設定要求メッセージを受信すると、ジョブ動作モード設定メソッドを実行してプリンタジョブの動作モード設定を行い、実行結果メッセージをエージェントに追加してエージェントアプリ117によってエージェントを複合機100aに送信する(ステップS1404)。   In the multifunction peripheral 100b, the agent application 117 receives the agent, and transmits a job operation mode setting request message described in the agent to the ECS process 124 (step S1403). Upon receiving the job operation mode setting request message, the ECS process 124 of the multifunction peripheral 100b executes the job operation mode setting method to set the operation mode of the printer job, adds the execution result message to the agent, and uses the agent application 117. The agent is transmitted to the multifunction peripheral 100a (step S1404).

複合機100aは、複合機100bからのエージェントをエージェントアプリ117で受信して、エージェントに記述されている実行結果メッセージをFCSプロセス127に送信する(ステップS1405)。FCSプロセス127は実行結果メッセージを受信すると、ジョブスタート要求メソッドを実行してジョブスタート要求メッセージをエージェントに追加する。そして、エージェントアプリ117によって複合機100bにエージェントを送信する(ステップS1406)。   The multi-function device 100a receives the agent from the multi-function device 100b by the agent application 117, and transmits an execution result message described in the agent to the FCS process 127 (step S1405). When the FCS process 127 receives the execution result message, it executes the job start request method and adds the job start request message to the agent. The agent application 117 transmits an agent to the multifunction peripheral 100b (step S1406).

複合機100bでは、エージェントアプリ117によってエージェントを受信して、エージェントに記述されているジョブスタート要求メッセージをECSプロセス124に送信する(ステップS1407)。複合機100bのECSプロセス124はジョブスタート要求メッセージを受信すると、ジョブスタートメソッドを実行して、プリンタジョブの開始処理を行い、その実行結果メッセージをエージェントに追加してエージェントアプリ117によってエージェントを複合機100aに送信する(ステップS1408)。   In the multifunction peripheral 100b, the agent application 117 receives the agent, and transmits a job start request message described in the agent to the ECS process 124 (step S1407). When receiving the job start request message, the ECS process 124 of the multifunction peripheral 100b executes the job start method to start the printer job, adds the execution result message to the agent, and the agent application 117 adds the agent to the multifunction peripheral. It transmits to 100a (step S1408).

複合機100aでは、複合機100bからのエージェントをエージェントアプリ117で受信して、エージェントに記述されている実行結果メッセージをFCSプロセス127に送信する(ステップS1409)。   In the MFP 100a, the agent application 117 receives the agent from the MFP 100b, and transmits an execution result message described in the agent to the FCS process 127 (step S1409).

一方、複合機100bでは、ECSプロセス124がメモリ確保要求メソッドを実行して複合機100b内のMCSプロセス125に対してメモリ確保要求メッセージを送信する(ステップS1410)。また、スキャナエンジンの資源獲得のため、資源獲得要求メソッドを実行して、複合機100b内のSRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS1411)。かかるメッセージの受信に対するMCSプロセス125およびSRMプロセス123の処理は、実施の形態1で説明した動作と同様であるため説明を省略する。 複合機100bのECSプロセス124は、資源獲得の実行結果メッセージを受信したら、スキャンパラメータ確定要求メソッドを実行してスキャンパラメータ確定要求メッセージをエージェントに追加して、エージェントアプリ117によってエージェントを複合機100aに送信する(ステップS1412)。   On the other hand, in the MFP 100b, the ECS process 124 executes the memory allocation request method and transmits a memory allocation request message to the MCS process 125 in the MFP 100b (step S1410). Further, in order to acquire resources of the scanner engine, a resource acquisition request method is executed, and a resource acquisition request message is transmitted to the SRM process 123 in the multi-function peripheral 100b (step S1411). The processing of the MCS process 125 and the SRM process 123 with respect to the reception of the message is the same as the operation described in the first embodiment, and thus the description thereof is omitted. Upon receiving the resource acquisition execution result message, the ECS process 124 of the multifunction device 100b executes the scan parameter confirmation request method to add the scan parameter confirmation request message to the agent, and the agent application 117 causes the agent to the multifunction device 100a. Transmit (step S1412).

複合機100aでは、エージェントアプリ117によってエージェントを受信して、エージェントに記述されているスキャンパラメータ確定要求メッセージをFCSプロセス127に送信する(ステップS1413)。FCSプロセス127は、このスキャンパラメータ確定要求メッセージを受信すると、スキャンパラメータのメッセージをエージェントに追加して、エージェントアプリ117によってエージェントを複合機100bに送信する(ステップS1414)。複合機100bは、複合機100aから送信されたエージェントをエージェントアプリ117によって受信して、エージェントに記述されたスキャンパラメータメッセージをECSプロセス124に送信する(ステップS1415)。   In the MFP 100a, the agent application 117 receives the agent, and transmits a scan parameter confirmation request message described in the agent to the FCS process 127 (step S1413). When the FCS process 127 receives this scan parameter confirmation request message, the FCS process 127 adds a scan parameter message to the agent, and transmits the agent to the multifunction peripheral 100b by the agent application 117 (step S1414). The multifunction device 100b receives the agent transmitted from the multifunction device 100a by the agent application 117, and transmits the scan parameter message described in the agent to the ECS process 124 (step S1415).

これ以降のプロセス間通信は、同一複合機100bの内部で行われるものであり、実施の形態1で説明したファクシミリ送信動作と同様であるため説明を省略する。これにより、複合機100aにおけるファクシミリ送信スタート要求に対して、複合機100bでファクシミリ送信が行われることになる。   The subsequent inter-process communication is performed within the same multi-function peripheral 100b and is the same as the facsimile transmission operation described in the first embodiment, and thus the description thereof is omitted. Thus, in response to the facsimile transmission start request in the multifunction device 100a, the multifunction device 100b performs facsimile transmission.

複合機100bにおけるスキャンおよびファクシミリ送信処理が終了すると、複合機100bのECSプロセス124は、スキャン終了通知メッセージをエージェントに追加し、エージェントアプリ117によってこのエージェントを複合機100aに送信する(ステップS1416)。複合機100aでは、このエージェントをエージェントアプリ117によって受信し、エージェントに記述されたスキャン終了通知メッセージをFCSプロセス127に送信する(ステップS1417)。   When the scanning and facsimile transmission processing in the multifunction device 100b is completed, the ECS process 124 of the multifunction device 100b adds a scan completion notification message to the agent, and the agent application 117 transmits the agent to the multifunction device 100a (step S1416). In the MFP 100a, the agent application 117 receives this agent, and transmits a scan end notification message described in the agent to the FCS process 127 (step S1417).

そして、複合機100aでは、エージェントアプリ117によってファクシミリ送信の実行結果をエージェントに追加して、このエージェントを複合機100bに送信する(ステップS1418)。複合機100bのエージェントアプリ117は、このエージェントを受信してPC900に転送する(ステップS1419)。エージェントがPC900で受信されることによって、ファクシミリ送信動作を完了する。   In the multifunction device 100a, the agent application 117 adds the execution result of facsimile transmission to the agent, and transmits this agent to the multifunction device 100b (step S1418). The agent application 117 of the multifunction peripheral 100b receives this agent and transfers it to the PC 900 (step S1419). When the agent is received by the PC 900, the facsimile transmission operation is completed.

なお、この実施の形態3では、複合機100bにおいて必要なプロセスが正常動作している場合について説明したが、複合機100bでも必要なプロセスに異常があった場合には、エージェントアプリ117によってエージェントはネットワーク上の他の複合機、例えば複合機100cに送信され、上述の複合機100bにおける処理と同様の処理が行われる。   In the third embodiment, the case where a necessary process is operating normally in the multifunction device 100b has been described. However, if there is an abnormality in a necessary process in the multifunction device 100b, the agent application 117 It is transmitted to another multifunction device on the network, for example, the multifunction device 100c, and the same processing as the processing in the multifunction device 100b is performed.

また、実施の形態3の複合機100a,100bでは、ECSプロセス124が正常動作していない場合を例にあげて説明したが、他のコントロールサービスあるいはアプリケーションのプロセスに異常があった場合あるいは存在しない場合も同様の処理が行われる。この場合、コントロールサービスは存在するが、エージェントアプリ117を除いたアプリケーションが存在しない複合機であってもよい。   Further, in the MFPs 100a and 100b according to the third embodiment, the case where the ECS process 124 is not operating normally has been described as an example. However, when there is an abnormality in another control service or application process, there is no existence. In this case, the same processing is performed. In this case, the MFP may be a multi-function peripheral in which a control service exists but no application other than the agent application 117 exists.

ここで、エージェントアプリ117を利用しなかった場合の処理について説明しておく。図21は、エージェント機能を利用しない場合のユーザのPCから複合機100a,100bに対するファックス送信要求のやりとりの例を示す模式図である。   Here, processing when the agent application 117 is not used will be described. FIG. 21 is a schematic diagram illustrating an example of a fax transmission request exchange from the user's PC to the multifunction peripherals 100a and 100b when the agent function is not used.

図21に示すように、ユーザがPC900から複合機100aに対して、(1)ファックス送信要求を行った場合で、ECS124など必要なプロセスが正常動作していない場合には、複合機100aからPC900に対して、(2)ファクス送信不可の応答メッセージが送信される。   As shown in FIG. 21, when a user makes a fax transmission request from the PC 900 to the multifunction peripheral 100a and a necessary process such as the ECS 124 is not operating normally, the multifunction peripheral 100a to the PC 900 In response to this, (2) a response message indicating that fax transmission is not possible is transmitted.

このため、ユーザはPC900から別の複合機100bに対して、(3)ファックス送信要求を行う必要がある。複合機100bにおいてファックス送信に必要なプロセスがすべて正常動作している場合には、ファックス送信が行われ、複合機100bからPC900に対して、(4)完了通知が送信されてくるが、複合機100bでもファックス送信が不可能な場合にはユーザはさらに別の複合機に対してファックス送信要求を行う必要があり、ユーザの操作がきわめて煩雑なものとなる。また、ファックス送信要求を繰り返し行えば、それだけPC900と複合機100a,100b間のネットワーク901の占有が生じてしまい、ネットワーク負荷も過大なものとなる。   Therefore, the user needs to make a (3) fax transmission request from the PC 900 to another multifunction peripheral 100b. When all processes necessary for fax transmission are operating normally in the multifunction device 100b, fax transmission is performed and (4) a completion notification is transmitted from the multifunction device 100b to the PC 900. If fax transmission is impossible even with 100b, the user needs to make a fax transmission request to another multifunction device, and the user's operation becomes extremely complicated. Further, if the fax transmission request is repeated, the network 901 is occupied between the PC 900 and the multifunction peripherals 100a and 100b, and the network load becomes excessive.

これに対し、図20に示す実施の形態3の複合機100aのようにエージェントとエージェントアプリ117を使用した場合には、PC900のユーザはファックス送信要求が記述された1つのエージェントを、複合機100aに対して1回だけ送信するだけで、たとえ複合機100aがファックス送信が不可能な状態であっても、上述のようにエージェントアプリ117が自律的にファックス送信可能な複合機をネットワーク内で自律的に検索して、検索された複合機100bによってファックス送信を行うようになっているので、多種多様な複合機のサービスをユーザに効率的に提供することができる。   On the other hand, when the agent and the agent application 117 are used as in the MFP 100a according to the third embodiment shown in FIG. 20, the user of the PC 900 assigns one agent in which a fax transmission request is described to the MFP 100a. Even if the multifunction device 100a cannot send a fax, the agent application 117 can autonomously send a multifunction device in the network that can send a fax as described above. Thus, the searched multifunction device 100b performs fax transmission, so that services of various multifunction devices can be efficiently provided to the user.

また、PC900と複合機100a,100b間のネットワークのアクセス回数も、最初のサービス要求送信時と、最後の完了通知の2回だけですむので、ネットワークにかかる負荷も軽減することとなる。   In addition, since the number of times of network access between the PC 900 and the multifunction peripherals 100a and 100b is only two times when the first service request is transmitted and the last completion notification, the load on the network is also reduced.

なお、実施の形態3の複合機100a,100bでは、本発明のエージェント処理手段としてエージェントアプリ117を設けているが、エージェント処理手段に相当するプロセスを、アプリケーション層ではなくコントロールサービス層に設けても良い。この場合、既存のコントロールサービスとは別個に、例えばエージェントコントロールサービスを設けてエージェント処理手段を構成する他、例えば、SCS122などの既存のコントロールサービスのプロセスにエージェント処理を行うスレッドを設ける構成としてもよい。   In the MFPs 100a and 100b of the third embodiment, the agent application 117 is provided as the agent processing means of the present invention. However, a process corresponding to the agent processing means may be provided in the control service layer instead of the application layer. good. In this case, separately from the existing control service, for example, an agent control service is provided to configure the agent processing means, and for example, an existing control service process such as the SCS 122 may be provided with a thread for performing an agent process. .

また、実施の形態3において、図17および図20で示したエージェントの内容は、一例を示すものであり、複合機100の構成および機能、またはネットワーク901の構成などにより任意に記述することが可能である。また、エージェントの記述形式も、実施の形態3のエージェント例に限定されるものではなく、PC900のエージェントエンジン902やエージェントアプリ117の種類によって任意の形式とすることが可能である。   Further, in the third embodiment, the contents of the agent shown in FIGS. 17 and 20 show an example, and can be arbitrarily described by the configuration and function of the multifunction peripheral 100 or the configuration of the network 901. It is. Further, the description format of the agent is not limited to the agent example of the third embodiment, and any format may be used depending on the type of the agent engine 902 or the agent application 117 of the PC 900.

本発明は、具体的に開示された実施の形態に限定されるものでなく、本発明の範囲内で種々の変形や変更が可能である。   The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made within the scope of the present invention.

発明の実施の形態である複合機の構成を示すブロック図である。1 is a block diagram illustrating a configuration of a multifunction machine according to an embodiment of the invention. 実施の形態1の複合機上で動作するサーバプロセスとクライアントプロセスの関係を示すブロック図である。FIG. 3 is a block diagram illustrating a relationship between a server process and a client process that operate on the multifunction peripheral according to the first embodiment. 実施の形態1の複合機において、各アプリおよび各コントロールサービスの各オブジェクトであらかじめ定義されているメソッドを示す説明図である。FIG. 7 is an explanatory diagram illustrating methods that are defined in advance in each object of each application and each control service in the multifunction peripheral according to the first embodiment. 実施の形態1の複合機でプリンタ動作を行う場合のプリンタアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。6 is an explanatory diagram illustrating a data sequence between processes of a printer application, ECS, MCS, and SRM when a printer operation is performed by the multifunction peripheral according to the first embodiment. FIG. 実施の形態1の複合機でスキャナ動作を行う場合のスキャナアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。4 is an explanatory diagram illustrating a data sequence between processes of a scanner application, ECS, MCS, and SRM when a scanner operation is performed in the multifunction peripheral according to the first embodiment. FIG. 実施の形態1の複合機でコピー動作を行う場合のコピーアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。6 is an explanatory diagram showing a data sequence between processes of a copy application, ECS, MCS, and SRM when a copying operation is performed in the multifunction peripheral according to the first embodiment. FIG. 実施の形態1の複合機でファクシミリ送信動作を行う場合のファックスアプリ、FCS、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。6 is an explanatory diagram illustrating a data sequence between processes of a fax application, FCS, ECS, MCS, and SRM when a facsimile transmission operation is performed in the multifunction peripheral according to the first embodiment. FIG. 実施の形態2の複合機上で動作するサーバプロセスとクライアントプロセスの関係を詳細に示すブロック図である。6 is a block diagram illustrating in detail a relationship between a server process and a client process operating on the multifunction peripheral according to the second embodiment. FIG. 実施の形態2のクライアントプロセスとサーバプロセスとを生成する画像形成装置用通信プログラム生成装置(スタブジェネレータ)の機能的構成を示すブロック図である。10 is a block diagram illustrating a functional configuration of a communication program generation apparatus (stub generator) for an image forming apparatus that generates a client process and a server process according to Embodiment 2. FIG. メッセージファイルの記述例を示す説明図である。It is explanatory drawing which shows the example of description of a message file. スタブジェネレータにより生成されるクライアントスタブの一例を示す説明図である。It is explanatory drawing which shows an example of the client stub produced | generated by the stub generator. スタブジェネレータにより生成されるサーバスケルトンの一例を示す説明図である。It is explanatory drawing which shows an example of the server skeleton produced | generated by a stub generator. スタブジェネレータにより生成されるヘッダの一例を示す説明図である。It is explanatory drawing which shows an example of the header produced | generated by a stub generator. サーバスケルトン、クライアントスタブおよびヘッダの生成処理のフローチャートである。It is a flowchart of a production | generation process of a server skeleton, a client stub, and a header. クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。It is explanatory drawing which shows the sequence of a call and a response with a server program when a function call is performed from a client program. 実施の形態3にかかる複合機の構成を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration of a multifunction machine according to a third embodiment. 実施の形態3におけるユーザのPCと複合機のやりとりの例を示す模式図である。FIG. 10 is a schematic diagram illustrating an example of an exchange between a user's PC and a multifunction machine in a third embodiment. エージェント機能を利用しない場合のユーザのPCと複合機のやりとりの例を示す模式図である。FIG. 5 is a schematic diagram illustrating an example of an exchange between a user's PC and a multifunction peripheral when an agent function is not used. 実施の形態3の複合機におけるプロセス間通信の流れを示す説明図である。FIG. 10 is an explanatory diagram illustrating a flow of inter-process communication in a multifunction machine according to a third embodiment. 実施の形態3におけるユーザのPCと複合機のやりとりの例を示す模式図である。FIG. 10 is a schematic diagram illustrating an example of an exchange between a user's PC and a multifunction machine in a third embodiment. エージェント機能を利用しない場合のユーザのPCから複合機に対するファックス送信要求のやりとりの例を示す模式図である。FIG. 10 is a schematic diagram illustrating an example of exchange of a fax transmission request from a user's PC to a multifunction device when an agent function is not used. 実施の形態3の複合機および他の複合機におけるプロセス間通信の流れを示すデータシーケンス図である。FIG. 10 is a data sequence diagram illustrating a flow of inter-process communication in the multifunction machine according to the third embodiment and other multifunction machines.

符号の説明Explanation of symbols

100,100a,100b,100c 複合機
101 白黒ラインプリンタ
102 カラーラインプリンタ
103 スキャナ
104 ファクシミリ
105 ハードディスク(HDD)
106 ネットワークインターフェース
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 ネットファイルアプリ
116 工程検査アプリ
120 プラットホーム
121 汎用OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 FCUH
130 アプリケーション
201,1600 クライアントプロセス
202,1610,1620 サーバプロセス
900 PC
901 ネットワーク
902 エージェントエンジン
1601,1613,1623 スレッド
1602 クライアントスタブ
1603 クライアントディスパッチャ
1611,1621 サーバディスパッチャ
1612,1622 サーバスケルトン
100, 100a, 100b, 100c MFP 101 Monochrome line printer 102 Color line printer 103 Scanner 104 Facsimile 105 Hard disk (HDD)
106 Network interface 110 Software group 111 Printer application 112 Copy application 113 Fax application 114 Scanner application 115 Net file application 116 Process inspection application 120 Platform 121 General-purpose OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 FCUH
130 Application 201, 1600 Client process 202, 1610, 1620 Server process 900 PC
901 Network 902 Agent engine 1601, 1613, 1623 Thread 1602 Client stub 1603 Client dispatcher 1611, 1621 Server dispatcher 1612, 1622 Server skeleton

Claims (11)

画像形成処理で使用されるハードウェア資源と、画像形成に係るユーザサービスおよびコントロールサービスの処理を行う一または複数のプログラムとを有する画像形成装置であって、
一または複数のサービス要求を含むエージェントを受信し、該エージェントのサービス要求ごとに一または複数の前記コントロールサービスを選定して、選定された前記コントロールサービスに対してサービス要求を行うエージェント処理手段を備えたことを特徴とする画像形成装置。
An image forming apparatus having hardware resources used in image forming processing, and one or a plurality of programs for performing processing of user service and control service related to image formation,
Agent processing means for receiving an agent including one or a plurality of service requests, selecting one or a plurality of the control services for each service request of the agent, and making a service request for the selected control services An image forming apparatus.
前記エージェント処理手段は、前記サービス要求に必要なコントロールサービスが正常動作しているか否かを判断し、正常動作してない場合に、ネットワークを介して接続された他の画像形成装置に前記エージェントを送信することを特徴とする請求項1記載の画像形成装置。   The agent processing means determines whether or not a control service required for the service request is operating normally. If the service is not operating normally, the agent processing unit sends the agent to another image forming apparatus connected via a network. The image forming apparatus according to claim 1, wherein the image forming apparatus transmits the image. 前記エージェント処理手段は、さらに、前記サービス要求ごとに一または複数の前記ユーザサービスを選定して、選定された前記ユーザサービスに対してサービス要求を行うことを特徴とする請求項1又は2記載の画像形成装置。   The agent processing means further selects one or a plurality of the user services for each service request, and makes a service request for the selected user services. Image forming apparatus. 前記エージェント処理手段は、前記サービス要求に必要な前記ユーザサービスが正常動作しているか否かを判断し、正常動作していない場合に、ネットワークを介して接続された他の画像形成装置に前記エージェントを送信することを特徴とする請求項3記載の画像形成装置。   The agent processing means determines whether or not the user service required for the service request is operating normally. If the user service is not operating normally, the agent processing means is connected to another image forming apparatus connected via a network. The image forming apparatus according to claim 3, wherein: 前記ユーザサービスに含まれ、前記エージェント処理手段として動作するエージェントアプリをさらに備えたことを特徴とする請求項1乃至4何れか一項記載の画像形成装置。   The image forming apparatus according to claim 1, further comprising an agent application included in the user service and operating as the agent processing unit. 前記コントロールサービスは、ネットワークを介して接続された他の画像形成装置で動作するクライアントプロセスに対するサーバプロセスとして動作し、前記他の画像形成装置のクライアントプロセスに提供する一または複数のサービスを定義したメソッドを有するオブジェクトであることを特徴とする請求項1乃至5何れか一項記載の画像形成装置。   The control service operates as a server process for a client process that operates in another image forming apparatus connected via a network, and defines one or a plurality of services provided to the client process of the other image forming apparatus The image forming apparatus according to claim 1, wherein the image forming apparatus is an object having 前記コントロールサービスの各プロセスは、前記他の画像形成装置のクライアントプロセスに提供するサービスを定義したメソッドを実行する一または複数のスレッドを生成するものであることを特徴とする請求項6記載の画像形成装置。   7. The image according to claim 6, wherein each process of the control service generates one or a plurality of threads for executing a method defining a service provided to a client process of the other image forming apparatus. Forming equipment. 前記コントロールサービスは、前記他の画像形成装置で動作するユーザサービスをクライアントプロセスとしたサーバプロセスとして動作することを特徴とする請求項6又は7記載の画像形成装置。   8. The image forming apparatus according to claim 6, wherein the control service operates as a server process using a user service operating on the other image forming apparatus as a client process. 前記コントロールサービスは、前記他の画像形成装置で動作するコントロールサービスをクライアントプロセスとしたサーバプロセスとして動作することを特徴とする請求項6乃至8何れか一項記載の画像形成装置。   9. The image forming apparatus according to claim 6, wherein the control service operates as a server process using a control service operating on the other image forming apparatus as a client process. 前記コントロールサービスは、前記他の画像形成装置で動作するコントロールサービスをサーバプロセスとしたクライアントプロセスとして動作することを特徴とする請求項6乃至9何れか一項記載の画像形成装置。   The image forming apparatus according to claim 6, wherein the control service operates as a client process using a control service that operates on the other image forming apparatus as a server process. 画像形成処理で使用されるハードウェア資源と、画像形成に係るユーザサービスおよびコントロールサービスの処理を行う一または複数のプログラムとを有する画像形成装置でプロセス通信を行うプロセス間通信方法あって、
一または複数のサービス要求を含むエージェントを受信するエージェント受信ステップと、
前記エージェントのサービス要求ごとに一または複数の前記コントロールサービスのプロセスを選定して、選定された前記コントロールサービスのプロセスに対してサービス要求を行うエージェント処理ステップと
を含んだことを特徴とするプロセス間通信方法。
There is an inter-process communication method for performing process communication in an image forming apparatus having hardware resources used in image forming processing and one or a plurality of programs for processing user service and control service related to image forming,
An agent receiving step for receiving an agent including one or more service requests;
And an agent processing step of selecting one or a plurality of control service processes for each service request of the agent and making a service request for the selected control service process. Communication method.
JP2006172507A 2001-09-21 2006-06-22 Image forming apparatus and interprocess communication method Expired - Fee Related JP4350728B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006172507A JP4350728B2 (en) 2001-09-21 2006-06-22 Image forming apparatus and interprocess communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001290168 2001-09-21
JP2006172507A JP4350728B2 (en) 2001-09-21 2006-06-22 Image forming apparatus and interprocess communication method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002244002A Division JP4052902B2 (en) 2001-08-27 2002-08-23 Image forming apparatus and interprocess communication method

Publications (2)

Publication Number Publication Date
JP2007012057A true JP2007012057A (en) 2007-01-18
JP4350728B2 JP4350728B2 (en) 2009-10-21

Family

ID=37750382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006172507A Expired - Fee Related JP4350728B2 (en) 2001-09-21 2006-06-22 Image forming apparatus and interprocess communication method

Country Status (1)

Country Link
JP (1) JP4350728B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236610A (en) * 2007-03-23 2008-10-02 Kyocera Mita Corp Image forming apparatus, image forming method, and application program
JP2009070290A (en) * 2007-09-14 2009-04-02 Ricoh Co Ltd Network equipment, service providing method and service providing program
JP2011123842A (en) * 2009-12-14 2011-06-23 Ricoh Co Ltd Image forming apparatus, function addition method, and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236610A (en) * 2007-03-23 2008-10-02 Kyocera Mita Corp Image forming apparatus, image forming method, and application program
JP2009070290A (en) * 2007-09-14 2009-04-02 Ricoh Co Ltd Network equipment, service providing method and service providing program
JP2011123842A (en) * 2009-12-14 2011-06-23 Ricoh Co Ltd Image forming apparatus, function addition method, and program
US8635633B2 (en) 2009-12-14 2014-01-21 Ricoh Company, Ltd. Image forming apparatus, function adding method, and computer-readable recording medium

Also Published As

Publication number Publication date
JP4350728B2 (en) 2009-10-21

Similar Documents

Publication Publication Date Title
US5717842A (en) Method of managing memory allocation in a printing system
US7209249B2 (en) Method of and apparatus for image formation, and computer product
US5923826A (en) Copier/printer with print queue disposed remotely thereof
JP3679349B2 (en) Image forming apparatus, image forming method, image forming program, and application program
US20030055890A1 (en) Information processing system
JP2002082806A (en) Device and method for forming image and program
JP6066006B2 (en) Image forming apparatus
US6671065B1 (en) Method and apparatus to optimize transition of resources from a lower priority to a higher priority job
US6717690B1 (en) Method and apparatus for managing job contention for system resources in an electrographic reproduction system where images are multibanded
US6570670B1 (en) Method and apparatus to enable job streaming for a set of commonly shared resources
US5970222A (en) Memory management system for printing a print job with limited capacity
JP4350728B2 (en) Image forming apparatus and interprocess communication method
US6501559B1 (en) Method and apparatus for managing job contention for system resources in an electronic reprographic system
JP4052902B2 (en) Image forming apparatus and interprocess communication method
JP4052901B2 (en) Device having inter-process communication function
JP3910993B2 (en) Image forming apparatus, image forming method, and image forming program
JP2006139776A (en) Information processing system
US8180181B2 (en) Image processing apparatus, image processing method, and image processing program
JP3910992B2 (en) Image forming apparatus, image forming method, and image forming program
JP3478639B2 (en) Copy system
JP2004164582A (en) Information processing apparatus and program generation method
JP2003177931A (en) Image forming device
JP2006005963A (en) Information processor and information processing method
JP2022164784A (en) Program, control method, and information processing apparatus
JP2000276012A (en) Method for developing composite equipment groups

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090515

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: 20090721

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: 20090722

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

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4350728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130731

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees