JP2003162419A - Apparatus having inter-process communication function - Google Patents

Apparatus having inter-process communication function

Info

Publication number
JP2003162419A
JP2003162419A JP2002244001A JP2002244001A JP2003162419A JP 2003162419 A JP2003162419 A JP 2003162419A JP 2002244001 A JP2002244001 A JP 2002244001A JP 2002244001 A JP2002244001 A JP 2002244001A JP 2003162419 A JP2003162419 A JP 2003162419A
Authority
JP
Japan
Prior art keywords
function
client
server
message
thread
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
JP2002244001A
Other languages
Japanese (ja)
Other versions
JP4052901B2 (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 JP2002244001A priority Critical patent/JP4052901B2/en
Priority to US10/227,921 priority patent/US7318083B2/en
Priority to EP02019030A priority patent/EP1292109A1/en
Publication of JP2003162419A publication Critical patent/JP2003162419A/en
Application granted granted Critical
Publication of JP4052901B2 publication Critical patent/JP4052901B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an apparatus with inter-process communication functions among, capable of achieving a variable architecture and a variety of functions. <P>SOLUTION: In the apparatus comprising user service and processes of control service relating to performing processes and communication functions among processes, where each process operates as a server process 202 or a client process 201, the server process 202 has the functions of defining one or plural services to be provided to the client process 201; when requesting providing of service to the server process 202, the client process 201 calls the functions to achieve the above described purpose. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】この発明は、プロセス間通信
機能を有する装置に係り、特に複数のプロセスがサーバ
プロセスまたはクライアントプロセスとしてプロセス間
通信を行う装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a device having an interprocess communication function, and more particularly to a device in which a plurality of processes perform interprocess communication as a server process or a client process.

【0002】[0002]

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

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

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

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

【0006】しかしながら、特開平9−51398号公
報,特開平9−91102号公報に記載されている複合
機は、ドライバ・ソフトウェア群,マネージャ・ソフト
ウェア群,ユーティリティ・ソフトウェア群がライブラ
リで構成されており、ハードウェア資源を実行制御する
主体となり得なかった。
However, in the multifunction machines described in Japanese Patent Laid-Open Nos. 9-51398 and 9-91102, a driver software group, a manager software group, and a utility software group are composed of libraries. , Could not be the entity that controls the execution of hardware resources.

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

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

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

【0010】[0010]

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

【0011】すなわち、複合機は、プリンタ、コピー、
ファクシミリ、スキャナなど多種の機能を備えたもので
あるが、その一部の機能に故障あるいは仕様変更などが
生じた場合に、全てのアプリケーションまたは全てのコ
ントロールサービスのモジュールを修正しなければなら
ないと、作業の労力が過大となる。
That is, the multi-function machine is a printer, a copy machine,
It has various functions such as a facsimile and a scanner, but if some of the functions fail or specifications change, all applications or all control service modules must be modified. The work effort becomes excessive.

【0012】また、将来的に、複合機に新たな機能を追
加する場合でも一部の機能の追加のために全てのコント
ロールサービスや全てのアプリケーションのモジュール
変更が必要となると、プログラム開発の労力が過大とな
ってしまう。このため、複合機上で動作する各アプリケ
ーションやコントロールサービスのモジュールは互いに
サービスやデータの送受信を実現としながらも、モジュ
ール間の独立性を維持していることが必要となってく
る。
Further, in the future, even when a new function is added to the multi-function peripheral, if it is necessary to change the modules of all control services and all applications in order to add some of the functions, the labor of program development will be increased. It becomes too large. For this reason, it is necessary that each application or control service module operating on the multi-function peripheral realizes mutual transmission and reception of services and data, while maintaining independence between modules.

【0013】すなわち、アプリケーションや各コントロ
ールサービスごとに独立性がないと、必要なアプリケー
ションや必要なコントロールサービスのみを提供するこ
とが困難となり、機能変更や機能追加などに柔軟に対応
できるような複合機の構成に可変性を持たせることがで
きない。
That is, if there is no independence for each application or each control service, it becomes difficult to provide only the necessary application or necessary control service, and it is possible to flexibly deal with the function change and function addition. The configuration of can not be variable.

【0014】また、各アプリケーションや各コントロー
ルサービスごとに独立性がないと、アプリケーションや
コントロールサービスごとの設計および構築が困難にな
り、多種多様な機能を提供することができない。
If there is no independence for each application or each control service, it becomes difficult to design and construct each application or control service, and it is impossible to provide various functions.

【0015】この発明は上記に鑑みてなされたもので、
可変性のあるアーキテクチャおよび多種多様な機能を実
現できるプロセス間通信機能を有する装置を得ることを
目的とする。
The present invention has been made in view of the above,
It is an object of the present invention to obtain a device having an interprocess communication function capable of realizing a variety of architectures and various functions.

【0016】[0016]

【課題を解決するための手段】上記目的を達成するた
め、請求項1にかかる発明は、実行する処理に応じたハ
ードウェア資源と、前記処理に係るユーザサービスおよ
びコントロールサービスのプロセスとを備えており、前
記プロセスを対象としたプロセス間通信機能を有する装
置であって、前記プロセスのそれぞれは、サーバプロセ
スまたはクライアントプロセスとして動作し、前記サー
バプロセスは、前記クライアントプロセスに提供する一
または複数のサービスを定義した関数を有しており、前
記クライアントプロセスは、前記サーバプロセスにサー
ビスの提供を要求する際に関数呼び出しを行うことを特
徴とする。
In order to achieve the above object, the invention according to claim 1 comprises a hardware resource according to a process to be executed, and a process of a user service and a control service related to the process. And a device having an inter-process communication function for the process, wherein each of the processes operates as a server process or a client process, and the server process provides one or more services to the client process. Is defined, and the client process calls a function when requesting the server process to provide a service.

【0017】この請求項1にかかる発明によれば、一ま
たは複数のユーザサービスおよびコントロールサービス
の相互間で、関数呼び出しによるプロセス間通信を実現
することができる。
According to the first aspect of the invention, it is possible to realize interprocess communication by calling a function between one or a plurality of user services and control services.

【0018】このため、ユーザサービスおよびコントロ
ールサービスに共通するサービスを提供するコントロー
ルサービスを有する装置において、各ユーザサービスお
よび各コントロールサービスの間の独立性を維持しなが
ら互いにサービスやデータの授受をプロセス間通信によ
って実現することができ、機能的に多様性のある装置を
提供することができる。
Therefore, in a device having a control service that provides a service common to the user service and the control service, the services and data are exchanged between processes while maintaining the independence between each user service and each control service. It is possible to provide a device that can be realized by communication and is functionally diverse.

【0019】また、ユーザサービスやコントロールサー
ビスの一部のモジュールにのみ変更がある場合や、必要
に応じてユーザサービスまたはコントロールサービスを
追加する場合でも、サーバプロセスとなるモジュール側
で関数を実装し、クライアントプロセスとなるモジュー
ル側で関数呼び出しを行うというインタフェースを確保
しておけば、サービスやデータの授受が可能となる。
Further, even when only some modules of the user service and control service are changed, or when the user service or control service is added as needed, the function is implemented on the module side which is the server process, Services and data can be sent and received by securing an interface for calling functions on the module side that is the client process.

【0020】このため、ユーザサービスやコントロール
サービスの追加または変更を容易に実現することがで
き、可変性を持った装置を構成することができる。
Therefore, it is possible to easily add or change the user service or the control service, and it is possible to configure a device having variability.

【0021】さらに、ユーザサービスおよびコントロー
ルサービスのそれぞれは、サーバプロセスまたはクライ
アントプロセスとして動作するプロセスであるため、複
数のユーザサービスや複数のコントロールサービスをそ
れぞれ別個のプロセスとして動作させることにより、他
のユーザサービスまたは他のコントロールサービスのプ
ロセスが停止した場合でも動作中の他のプロセスは影響
を受けない。
Furthermore, since each of the user service and the control service is a process that operates as a server process or a client process, by operating a plurality of user services and a plurality of control services as separate processes, other users If a service or other control service process is stopped, other running processes are not affected.

【0022】このため、一部のプロセスが停止した場合
でも他の複合サービスを続行して提供することができ、
すべての複合サービスが提供不可能になることを防止す
ることができる。
Therefore, even if some processes are stopped, other composite services can be continuously provided,
It is possible to prevent all complex services from being unavailable.

【0023】ここで、「サーバプロセス」とは、他のプ
ロセスからの要求により、要求されたサービスを提供す
るプロセスをいい、サービスを提供する限り、ユーザサ
ービスおよびコントロールサービスのいずれもサーバプ
ロセスとして動作することができる。
Here, the "server process" means a process that provides a requested service in response to a request from another process, and as long as the service is provided, both the user service and the control service operate as a server process. can do.

【0024】また、「クライアントプロセス」とは、こ
のようなサーバプロセスからサービスの提供を受けるプ
ロセスをいい、サービスの提供を受ける限り、ユーザサ
ービスおよびコントロールサービスのいずれもクライア
ントプロセスとして動作することができる。
The "client process" is a process that receives a service from such a server process, and as long as the service is provided, both the user service and the control service can operate as a client process. .

【0025】「関数」とは、サーバプロセスに対するサ
ービスの処理要求やサーバプロセスによる所定の設定値
の設定要求に対し、サーバプロセス側で要求された処理
や設定を実行するものである。
The "function" is to execute the processing or setting requested by the server process in response to a service processing request to the server process or a setting request of a predetermined setting value by the server process.

【0026】また、請求項2にかかる発明は、前記コン
トロールサービスは、前記ユーザサービスをクライアン
トプロセスとしたサーバプロセスとして動作して、前記
ユーザサービスの少なくとも2つが共通的に必要とする
サービスを定義した関数を有し、前記ユーザサービス
は、前記コントロールサービスにサービスの提供を要求
する際に関数呼び出しを行うことを特徴とする。
In the invention according to claim 2, the control service operates as a server process having the user service as a client process, and defines a service commonly required by at least two of the user services. The user service has a function, and calls the function when the user service requests the control service to provide the service.

【0027】この請求項2にかかる発明によれば、ユー
ザサービスに対するコントロールサービスからのサービ
スの提供を関数呼び出しによるプロセス間通信によって
実現することができ、例えばアプリケーションなどのユ
ーザサービスを用いた可変性および多様性のある装置の
提供が可能となる。
According to the second aspect of the present invention, the provision of the service from the control service to the user service can be realized by inter-process communication by calling a function. For example, variability using the user service such as an application and It is possible to provide a variety of devices.

【0028】また、請求項3にかかる発明は、前記コン
トロールサービスは、他のコントロールサービスをクラ
イアントプロセスとしたサーバプロセスとして動作し
て、前記他のコントロールサービスの少なくとも2つが
共通的に必要とするサービスを定義した関数を有してお
り、前記他のコントロールサービスは、前記コントロー
ルサービスにサービスの提供を要求する際に関数呼び出
しを行うことを特徴とする。
In the invention according to claim 3, the control service operates as a server process having another control service as a client process, and a service commonly required by at least two of the other control services. Is defined, and the other control service makes a function call when requesting the control service to provide the service.

【0029】この請求項3にかかる発明によれば、コン
トロールサービス間のサービスの提供を関数呼び出しに
よるプロセス間通信によって実現することができ、コン
トロールサービスを用いた可変性および多様性のある装
置の提供が可能となる。
According to the third aspect of the present invention, provision of services between control services can be realized by interprocess communication by function call, and provision of a device having variability and diversity using the control services. Is possible.

【0030】また、請求項4にかかる発明は、前記コン
トロールサービスは、前記サーバプロセスとして動作す
るとともに前記クライアントプロセスとして動作するこ
とを特徴とする。
The invention according to claim 4 is characterized in that the control service operates as the server process and also as the client process.

【0031】この請求項4にかかる発明によれば、ユー
ザサービスとコントロールサービス間の双方向のサービ
スの提供、およびコントロールサービス間の双方向のサ
ービスの提供を関数呼び出しによるプロセス間通信によ
って実現することができ、より可変性および多様性のあ
る装置の提供が可能となる。
According to the invention of claim 4, the bidirectional service provision between the user service and the control service and the bidirectional service provision between the control services are realized by interprocess communication by function call. Therefore, it is possible to provide a device with more variability and variety.

【0032】また、請求項5にかかる発明は、前記ユー
ザサービスおよび前記コントロールサービスの各プロセ
スは、一または複数のスレッドを含むことを特徴とす
る。
Further, the invention according to claim 5 is characterized in that each process of the user service and the control service includes one or a plurality of threads.

【0033】この請求項5にかかる発明によれば、独立
して動作する必要のない機能を同一プロセス内の複数ス
レッドに割り当てて並列に実行させることが可能とな
る。また、スレッド単位での実行制御の切り替えは、主
記憶空間を共有し主記憶空間の切り替えが不要で、カウ
ンタやレジスタの切り替えというオーバヘッドの少ない
切り替えのみで実現できるため、別個の主記憶空間を使
用して主記憶空間の切り替えが必要なプロセス単位の切
り替えに比べて、切り替え時のオーバヘッドが少ない。
According to the fifth aspect of the present invention, it is possible to allocate functions that do not need to operate independently to a plurality of threads in the same process and execute them in parallel. Also, switching of execution control on a thread-by-thread basis does not require switching of the main memory space because it shares the main memory space, and can be achieved only by switching with less overhead such as switching of counters and registers, so a separate main memory space is used. As compared with the process unit switching that requires switching of the main storage space, the switching overhead is small.

【0034】このため、ユーザサービスおよびコントロ
ールサービスの各プロセス内に一または複数のスレッド
を起動して並列実行を行うことにより、サービスの並列
実行時の処理速度を向上させることができる。
Therefore, by activating one or a plurality of threads in each process of the user service and the control service to perform parallel execution, it is possible to improve the processing speed during parallel execution of the services.

【0035】また、請求項6にかかる発明は、前記ユー
ザサービスおよび前記コントロールサービスは、前記ク
ライアントプロセスとして動作するときに、前記サーバ
プロセスへの関数呼び出しに対する関数戻り値の受信を
監視し、受信した関数戻り値を前記関数呼び出しを行っ
たスレッドに受け渡すクライアント監視手段を備えたこ
とを特徴とする。
In the invention according to claim 6, when the user service and the control service operate as the client process, the reception of a function return value for a function call to the server process is monitored and received. It is characterized by comprising a client monitoring means for delivering the function return value to the thread that has called the function.

【0036】この請求項6にかかる発明によれば、クラ
イアントプロセスから関数呼び出しを行ったスレッド
は、クライアント監視手段によって関数戻り値が受け渡
されるまで、次の命令実行を待機することによりプロセ
ス内の他のスレッドが実行権を得ることができ、並列動
作を行うことができる。
According to the sixth aspect of the invention, the thread that has called the function from the client process waits for the next instruction execution until the function return value is passed by the client monitoring means. Other threads can get execution rights and can perform parallel operations.

【0037】このため、プロセス内に複数のスレッドを
起動してプロセス間通信を行いながら、関数呼び出しに
伴う戻り値待ちによってプロセスの他のスレッドが動作
でき並列性を保証する。
Therefore, while starting a plurality of threads in a process and performing inter-process communication, other threads in the process can operate by waiting for a return value accompanying a function call, and parallelism is guaranteed.

【0038】また、請求項7にかかる発明は、前記クラ
イアント監視手段は、スレッドで実現されることを特徴
とする。
The invention according to claim 7 is characterized in that the client monitoring means is realized by a thread.

【0039】この請求項7にかかる発明によれば、クラ
イアント監視手段の機能を一または複数のスレッドで実
現することができる。
According to the invention of claim 7, the function of the client monitoring means can be realized by one or a plurality of threads.

【0040】また、請求項8にかかる発明は、前記クラ
イアント監視手段は、関数の呼び出し後に関数戻り値待
ち状態のスレッドの識別子を一時的に格納する関数戻り
待ちキューをさらに備え、前記サーバプロセスから前記
関数戻り値を受信したときに、受信した関数戻り値を、
前記関数戻り待ちキューに格納された識別子の前記スレ
ッドに送信することを特徴とする。
In the invention according to claim 8, the client monitoring means further comprises a function return waiting queue for temporarily storing the identifier of the thread in the function return value waiting state after calling the function, and the client process When the function return value is received, the received function return value is
It is characterized by transmitting to the thread of the identifier stored in the function return waiting queue.

【0041】この請求項8にかかる発明によれば、プロ
セス内部の複数スレッドが単一サーバに対して関数呼び
出しを行い、独立して関数の戻りを待つことができ、関
数戻り値のスレッドへの送信を確実に行い、スレッドの
並列動作をより確実かつ容易に実現することができる。
According to the invention of claim 8, a plurality of threads inside a process can call a function to a single server and independently wait for the return of the function, and the function return value can be sent to the thread. It is possible to reliably perform transmission, and to realize parallel operation of threads more reliably and easily.

【0042】また、請求項9にかかる発明は、前記サー
バプロセスおよび前記クライアントプロセスは、さらに
イベントまたは通知に関するメッセージの送信,受信ま
たは送受信の何れかを行うことを特徴とする。
The invention according to claim 9 is characterized in that the server process and the client process further perform any of transmission, reception, and transmission / reception of a message relating to an event or a notification.

【0043】この請求項9にかかる発明において、「メ
ッセージ」とは、サーバプロセスとクライアントプロセ
スとの間でイベントや通知を行う際に送信するものであ
り、関数のように戻り値を必要としないものをいう。
In the invention according to claim 9, the "message" is transmitted when an event or notification is performed between the server process and the client process, and does not require a return value like a function. Say something.

【0044】この請求項9にかかる発明によれば、装置
におけるプロセス間通信を関数呼び出しの他メッセージ
によっても可能とし、機能的に多様性のある装置を提供
することができる。また、スレッド間で同期をとる必要
のないプロセス間通信をメッセージによって実現するこ
とにより、装置におけるプロセス間通信の処理速度を向
上させることができる。
According to the ninth aspect of the present invention, the inter-process communication in the device can be performed by the message other than the function call, and the device having the functional diversity can be provided. Also, by implementing inter-process communication that does not require synchronization between threads by means of messages, it is possible to improve the processing speed of inter-process communication in the device.

【0045】また、請求項10にかかる発明は、前記ク
ライアント監視手段は、さらにサーバプロセスからのメ
ッセージの受信を監視することを特徴とする。
Further, the invention according to claim 10 is characterized in that the client monitoring means further monitors reception of a message from the server process.

【0046】この請求項10にかかる発明によれば、サ
ーバプロセスから送信されたメッセージをクライアント
監視手段で一括して受信することができ、装置における
プロセス間通信の処理効率を向上させることができる。
According to the tenth aspect of the present invention, the message sent from the server process can be collectively received by the client monitoring means, and the processing efficiency of inter-process communication in the device can be improved.

【0047】また、請求項11にかかる発明は、前記ク
ライアント監視手段は、受信したメッセージに基づいた
処理を実行するメッセージハンドラをさらに備えたこと
を特徴とする。
The invention according to claim 11 is characterized in that the client monitoring means further comprises a message handler for executing processing based on the received message.

【0048】この請求項11にかかる発明によれば、受
信メッセージを対応するメッセージハンドラに委ねるこ
とができ、メッセージを利用したプロセス間通信の処理
効率の向上を図ることができる。
According to the eleventh aspect of the present invention, the received message can be entrusted to the corresponding message handler, and the processing efficiency of interprocess communication using the message can be improved.

【0049】本発明における「メッセージハンドラ」
は、受信したメッセージをスレッドに受け渡すものであ
ればよく、メッセージごとに別個のメッセージハンドラ
を設ける他、受信可能なすべてのメッセージの受け渡し
処理を行う単一モジュールとすることもできる。
“Message handler” in the present invention
Is only required to deliver a received message to a thread, and a separate message handler is provided for each message, or a single module for delivering and receiving all receivable messages.

【0050】また、請求項12にかかる発明は、前記サ
ーバプロセスは、前記クライアントプロセスからの関数
呼び出しを監視するサーバ監視手段を備えたことを特徴
とする。
Further, the invention according to claim 12 is characterized in that the server process comprises a server monitoring means for monitoring a function call from the client process.

【0051】この請求項12にかかる発明によれば、ク
ライアントプロセスからの関数呼び出しをサーバ監視手
段により一括して受信して、装置におけるプロセス間通
信の処理効率を向上させることができる。
According to the twelfth aspect of the present invention, the function call from the client process can be collectively received by the server monitoring means, and the processing efficiency of inter-process communication in the device can be improved.

【0052】また、請求項13にかかる発明は、前記サ
ーバ監視手段は、複数のクライアントプロセスからの関
数呼び出しを監視することを特徴とする。
The invention according to claim 13 is characterized in that the server monitoring means monitors a function call from a plurality of client processes.

【0053】この請求項13にかかる発明によれば、サ
ーバプロセスは複数のクライアントプロセスに対するサ
ーバプロセスとして動作することが可能となり、複数の
アプリケーション、複数のコントロールサービスをクラ
イアントプロセスとして種々の機能を単一のサーバプロ
セスで提供することができ、機能的に多種多様な装置を
提供することができる。
According to the thirteenth aspect of the present invention, the server process can operate as a server process for a plurality of client processes, and a plurality of applications and a plurality of control services can be used as client processes to perform various functions. Can be provided by the server process, and various functionally various devices can be provided.

【0054】また、請求項14にかかる発明は、前記サ
ーバ監視手段は、前記クライアントプロセスから関数呼
び出しを受信したときに、呼び出された関数に対応した
処理を実行する関数ハンドラを備えたことを特徴とす
る。
The invention according to claim 14 is characterized in that, when the server monitoring means receives a function call from the client process, it has a function handler for executing a process corresponding to the called function. And

【0055】この請求項14にかかる発明によれば、サ
ーバプロセスは提供するサービスを関数ハンドラを利用
したプロセス間通信によってクライアントプロセスに提
供することができ、機能的に多様性のある装置を提供す
ることができる。
According to the fourteenth aspect of the present invention, the server process can provide the service to be provided to the client process through inter-process communication using the function handler, thereby providing a functionally diverse device. be able to.

【0056】また、関数に対応した処理を関数ハンドラ
に委ねることができ、サーバプロセスとして提供する機
能を実行する関数ハンドラを予め設けておけばクライア
ントプロセスにサービスを提供することができる。この
ため、提供する機能に追加や変更が生じた場合でも、関
数ハンドラを追加、変更するだけでサーバ監視手段の機
能の大きな変更は必要なくなるので、容易に可変性のあ
る装置を提供することができる。
Further, the processing corresponding to the function can be entrusted to the function handler, and the service can be provided to the client process if a function handler for executing the function provided as the server process is provided in advance. Therefore, even if a function to be provided is added or changed, it is not necessary to make a large change in the function of the server monitoring means simply by adding or changing the function handler, and thus it is possible to easily provide a device having variability. it can.

【0057】本発明における「関数ハンドラ」は、クラ
イアントプロセスから呼び出した関数に対応した処理を
実行するものであればよく、関数ハンドラをサーバプロ
セス側で提供する関数のすべてを関数ごとに実行する単
一モジュールとする他、関数ごとに別個の関数ハンドラ
を設ける構成とすることができる。この場合には、より
装置の可変性を高めることが可能である。
The "function handler" in the present invention only needs to execute the processing corresponding to the function called from the client process, and it simply executes all the functions provided by the server process as the function handler for each function. Besides one module, a separate function handler may be provided for each function. In this case, it is possible to further increase the variability of the device.

【0058】また、請求項15にかかる発明は、前記サ
ーバ監視手段は、さらにクライアントプロセスからのメ
ッセージの受信を監視することを特徴とする。
Further, the invention according to claim 15 is characterized in that the server monitoring means further monitors reception of a message from the client process.

【0059】この請求項15にかかる発明によれば、ク
ライアントプロセスから送信されたメッセージをサーバ
監視手段で一括して受信することができ、装置における
プロセス間通信の処理効率を向上させることができる。
According to the fifteenth aspect of the present invention, the message sent from the client process can be collectively received by the server monitoring means, and the processing efficiency of interprocess communication in the device can be improved.

【0060】また、請求項16にかかる発明は、前記サ
ーバ監視手段は、受信したメッセージに基づいた処理を
実行するメッセージハンドラをさらに備えたことを特徴
とする。
Further, the invention according to claim 16 is characterized in that the server monitoring means further comprises a message handler for executing processing based on the received message.

【0061】この請求項16にかかる発明によれば、受
信メッセージに関する処理をメッセージハンドラに委ね
ることができ、メッセージを利用したプロセス間通信の
処理効率の向上を図ることができる。
According to the sixteenth aspect of the present invention, the processing related to the received message can be entrusted to the message handler, and the processing efficiency of interprocess communication using the message can be improved.

【0062】本発明における「メッセージハンドラ」
も、受信したメッセージをスレッドに受け渡すものであ
ればよく、メッセージごとに別個のメッセージハンドラ
を設ける他、受信可能なすべてのメッセージの受け渡し
処理を行う単一モジュールとすることもできる。
“Message handler” in the present invention
Also, as long as the received message is passed to the thread, a separate message handler may be provided for each message, or a single module that performs the process of passing all receivable messages may be used.

【0063】また、本発明のつぎの態様として、上記の
発明のいずれか一つに記載の装置において、前記コント
ロールサービスが、ジョブまたはエンジンの制御を行う
エンジンコントロールサービスを有し、前記エンジンコ
ントロールサービスは、クライアントプロセスから関数
呼び出しを受信したときに、ジョブ制御処理またはエン
ジン制御処理を実行する関数ハンドラを備えたことを特
徴とする。
As a next aspect of the present invention, in the apparatus according to any one of the above inventions, the control service has an engine control service for controlling a job or an engine, and the engine control service is provided. Is provided with a function handler that executes job control processing or engine control processing when a function call is received from a client process.

【0064】この発明によれば、エンジンコントロール
サービスがクライアントプロセスから関数呼び出しを受
信したときに、ジョブ制御処理またはエンジン制御処理
を実行する関数ハンドラを備えたことで、エンジンコン
トロールサービスが提供するジョブ制御処理またはエン
ジン制御処理に関するサービスを関数ハンドラを利用し
たプロセス間通信によってクライアントプロセスに提供
することができ、機能的に多様性のある装置を提供する
ことができる。
According to the present invention, the engine control service is provided with the function handler for executing the job control process or the engine control process when the function call is received from the client process. Therefore, the job control service provided by the engine control service is provided. A service related to processing or engine control processing can be provided to a client process by interprocess communication using a function handler, and a device having various functions can be provided.

【0065】また、エンジンコントロールサービスがサ
ーバプロセスとして提供するジョブ制御またはエンジン
制御の機能に追加や変更が生じた場合でも、関数ハンド
ラを追加、変更するだけでエンジンコントロールサービ
ス側の大きな変更は必要なくなり、容易に可変性のある
装置を提供することができる。
Further, even if the job control or engine control function provided by the engine control service as a server process is added or changed, a large change on the engine control service side is not necessary just by adding or changing the function handler. It is possible to easily provide a variable device.

【0066】また、本発明のつぎの態様として、上記発
明に記載の装置において、前記エンジンコントロールサ
ービスが、さらに、ジョブ制御またはエンジン制御に関
するメッセージを送信することを特徴とする。
As a next aspect of the present invention, in the apparatus described in the above invention, the engine control service further transmits a message regarding job control or engine control.

【0067】この発明によれば、エンジンコントロール
サービスがさらに、ジョブ制御またはエンジン制御に関
するメッセージを送信することで、関数の他ジョブ制御
またはエンジン制御に関するイベントまたは通知など戻
り値を必要としない処理をメッセージによって実現し、
機能的に多様性のある装置を提供することができる。
According to the present invention, the engine control service further sends a message related to job control or engine control, so that a message other than a function such as an event or notification related to job control or engine control that does not require a return value is messaged. Realized by
It is possible to provide a functionally diverse device.

【0068】また、本発明のつぎの態様として、上記発
明のいずれか一つに記載の装置において、前記コントロ
ールサービスが、メモリまたはハードディスク装置の制
御を行うメモリコントロールサービスを有しており、前
記メモリコントロールサービスが、クライアントプロセ
スからの関数呼び出しを受信したときに、メモリ制御処
理またはハードディスク制御処理を実行する関数ハンド
ラを備えたことを特徴とする。
Further, as a next aspect of the present invention, in the apparatus according to any one of the above inventions, the control service has a memory control service for controlling a memory or a hard disk device, and the memory The control service is provided with a function handler that executes memory control processing or hard disk control processing when it receives a function call from the client process.

【0069】この発明によれば、メモリコントロールサ
ービスがクライアントプロセスから関数呼び出しを受信
したときに、メモリ制御処理またはハードディスク制御
処理を実行する関数ハンドラを備えたことで、メモリコ
ントロールサービスが提供するメモリ制御処理またはハ
ードディスク制御処理に関するサービスを関数ハンドラ
を利用したプロセス間通信によってクライアントプロセ
スに提供することができ、機能的に多様性のある装置を
提供することができる。
According to the present invention, the memory control service is provided with the function handler for executing the memory control process or the hard disk control process when the function call is received from the client process. It is possible to provide a client process with a service related to a process or a hard disk control process by interprocess communication using a function handler, and it is possible to provide a device having various functions.

【0070】また、メモリコントロールサービスがサー
バプロセスとして提供するメモリ制御またはハードディ
スク制御の機能に追加や変更が生じた場合でも、関数ハ
ンドラを追加、変更するだけでメモリコントロールサー
ビス側の機能の大きな変更は必要なくなり、容易に可変
性のある装置を提供することができる。
Even if the memory control service or the hard disk control function provided as a server process by the memory control service is added or changed, the function on the memory control service side can be greatly changed only by adding or changing the function handler. It is not necessary, and it is possible to easily provide a variable device.

【0071】また、本発明のつぎの態様として、上記発
明に記載の装置において、前記メモリコントロールサー
ビスが、さらに、メモリ制御またはハードディスク制御
に関するメッセージを送信することを特徴とする。
As a next aspect of the present invention, in the apparatus described in the above invention, the memory control service further transmits a message regarding memory control or hard disk control.

【0072】この発明によれば、メモリコントロールサ
ービスがさらに、メモリ制御またはハードディスク制御
に関するメッセージを送信することで、関数の他メモリ
制御またはハードディスク制御に関するイベントまたは
通知など戻り値を必要としない処理をメッセージによっ
て実現し、機能的に多様性のある装置を提供することが
できる。
According to the present invention, the memory control service further sends a message related to memory control or hard disk control, so that a message that does not require a return value such as an event or notification related to memory control or hard disk control other than a function is message It is possible to provide a device which is realized by the above and has various functions.

【0073】また、請求項17にかかる発明は、実行す
る処理に応じたハードウェア資源と、前記処理に係るユ
ーザサービスおよびコントロールサービスのプロセスと
を備えており、前記プロセスを対象としたプロセス間通
信機能を有する装置であって、前記コントロールサービ
スは、ネットワークを介して接続された他の装置のクラ
イアントプロセスに対するサーバプロセスとして動作
し、サーバプロセスとして前記他の装置のクライアント
プロセスに提供する一または複数のサービスを定義した
関数を有することを特徴とする。
According to a seventeenth aspect of the present invention, the invention comprises a hardware resource corresponding to a process to be executed, and a process of a user service and a control service related to the process, and interprocess communication targeted for the process. A device having a function, wherein the control service operates as a server process for a client process of another device connected through a network, and provides one or a plurality of server processes as a server process to the client process of the other device. It is characterized by having a function that defines a service.

【0074】この請求項17にかかる発明によれば、コ
ントロールサービスはネットワーク上の他の装置で動作
するプロセスをクライアントとしたサーバプロセスとし
て関数呼び出しを利用したプロセス間通信を実現するこ
とができ、同一の装置内のプロセスだけでなく、ネット
ワーク上の装置に対してもサービスの提供が可能とな
り、多種多様な機能を実現することができる。
According to the seventeenth aspect of the present invention, the control service can realize inter-process communication using a function call as a server process with a process operating in another device on the network as a client, and the same. It is possible to provide services not only to processes in the device but also to devices on the network, and various functions can be realized.

【0075】この請求項17にかかる発明において、サ
ーバプロセスとなるコントロールサービスが動作してい
る装置は、ユーザサービスおよびコントロールサービス
を搭載可能であればその構成は限定されるものではな
い。すなわち、当該装置は、サービスを提供するコント
ロールサービスが1つでも搭載されていれば良く、ユー
ザサービスが未搭載の装置や、コントロールサービスが
1個のみ搭載されている装置も含まれる。
In the invention according to the seventeenth aspect, the device on which the control service as the server process is operating is not limited in its configuration as long as the user service and the control service can be installed. That is, the device only needs to be equipped with at least one control service that provides a service, and includes a device without a user service and a device with only one control service.

【0076】また、請求項18にかかる発明は、前記コ
ントロールサービスの各プロセスは、前記他の装置のク
ライアントプロセスに提供するサービスを実行する一ま
たは複数のスレッドを備えたことを特徴とする。
Further, the invention according to claim 18 is characterized in that each process of the control service includes one or a plurality of threads for executing a service provided to a client process of the other device.

【0077】この請求項18にかかる発明によれば、ネ
ットワーク上の他の装置で動作するアプリケーションな
どのユーザサービスのプロセスに提供するサービスを並
列実行させることができる。
According to the eighteenth aspect of the present invention, it is possible to execute in parallel services provided to user service processes such as applications running on other devices on the network.

【0078】このため、例えば、ネットワーク上の異な
る複数の装置のクライアントプロセスから同時に関数呼
び出しを受けた場合でも、実行制御の切り替えの速いス
レッドでサービスを並列実行させるので、ネットワーク
上の複数の装置へのサービスの提供を迅速に行うことが
可能となる。
Therefore, for example, even when a function call is simultaneously received from a client process of a plurality of different devices on the network, the service is executed in parallel by a thread whose execution control is switched quickly. It is possible to quickly provide the service of.

【0079】また、請求項19にかかる発明は、前記コ
ントロールサービスは、前記他の装置のクライアントプ
ロセスからの関数呼び出しを監視するサーバ監視手段を
備えたことを特徴とする。
Further, the invention according to claim 19 is characterized in that the control service comprises a server monitoring means for monitoring a function call from a client process of the other device.

【0080】この請求項19にかかる発明によれば、他
の装置のクライアントプロセスからの関数呼び出しをサ
ーバ監視手段により一括して受信して、ネットワーク上
の装置とのプロセス間通信の処理効率を向上させること
ができる。
According to the nineteenth aspect of the present invention, the function calls from the client processes of other devices are collectively received by the server monitoring means, and the processing efficiency of interprocess communication with the devices on the network is improved. Can be made.

【0081】また、請求項20にかかる発明は、前記サ
ーバ監視手段は、さらに前記他の装置のクライアントプ
ロセスからのメッセージの受信を監視することを特徴と
する。
The invention according to claim 20 is characterized in that the server monitoring means further monitors reception of a message from a client process of the other device.

【0082】この請求項20にかかる発明によれば、コ
ントロールサービスはネットワークに接続された他の装
置で動作するプロセスからのメッセージの一括した受信
が可能となり、ネットワーク上の装置とのプロセス間通
信の処理効率を向上させることができる。
According to the twentieth aspect of the invention, the control service can collectively receive the messages from the processes operating in the other devices connected to the network, and the inter-process communication with the devices on the network can be performed. The processing efficiency can be improved.

【0083】また、請求項21にかかる発明は、前記コ
ントロールサービスは、さらに前記他の装置のクライア
ントプロセスに対しメッセージを送信することを特徴と
する。
Further, the invention according to claim 21 is characterized in that the control service further transmits a message to a client process of the other device.

【0084】この請求項21にかかる発明によれば、コ
ントロールサービスはネットワークに接続された他の装
置で動作するプロセスをクライアントとしたサーバプロ
セスとして関数の他メッセージを利用したプロセス間通
信を行うことができ、ネットワーク上の装置に対して多
種多様な機能を実現することができる。
According to the twenty-first aspect of the present invention, the control service can perform inter-process communication using another message of a function as a server process with a process operating in another device connected to the network as a client. Therefore, various functions can be realized for the devices on the network.

【0085】また、請求項22にかかる発明は、前記コ
ントロールサービスは、前記他の装置で動作するユーザ
サービスをクライアントプロセスとしたサーバプロセス
として動作することを特徴とする。
Further, the invention according to claim 22 is characterized in that the control service operates as a server process in which a user service operating in the other device is a client process.

【0086】この請求項22にかかる発明によれば、ネ
ットワーク上の他の装置で動作するアプリケーションの
プロセスに対してコントロールサービスの機能を提供す
ることができる。
According to the twenty-second aspect of the present invention, the function of the control service can be provided to the process of the application operating on another device on the network.

【0087】また、コントロールサービスがネットワー
ク上の装置内に存在しない場合や使用できない場合で
も、プロセス間通信によって、当該ネットワーク上の装
置にコントロールサービスの機能を提供できるので、ネ
ットワークを利用した複数の装置間でコントロールサー
ビスの機能の共有化を実現することが可能となる。
Even if the control service does not exist in the device on the network or cannot be used, the function of the control service can be provided to the device on the network by the interprocess communication, so that a plurality of devices using the network can be provided. It becomes possible to share the functions of the control service between them.

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

【0089】この請求項23にかかる発明によれば、ネ
ットワーク上の他の装置で動作するコントロールサービ
スに対してコントロールサービスの機能を提供すること
ができる。
According to the twenty-third aspect of the present invention, it is possible to provide the control service function to the control service operating in another device on the network.

【0090】また、あるコントロールサービスがネット
ワーク上の装置内に存在しない場合や使用できない場合
でも、プロセス間通信によって、当該ネットワーク上の
装置にコントロールサービスの機能を提供できるので、
ネットワークを利用した複数の装置間でコントロールサ
ービスの機能の共有化を実現することが可能となる。
Further, even when a certain control service does not exist in the device on the network or cannot be used, the function of the control service can be provided to the device on the network by interprocess communication.
It becomes possible to realize sharing of the control service function among a plurality of devices using the network.

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

【0092】この請求項24にかかる発明によれば、ユ
ーザサービスはネットワーク上のコントロールサービス
からサービスの提供を受けることができる。また、ネッ
トワーク上の装置でユーザサービスが使用できない状況
にあっても、プロセス間通信によって、ネットワーク上
の装置のコントロールサービスからのサービスの提供を
受けることができるので、ネットワークを利用した複数
の装置間でコントロールサービスの機能の共有化を実現
することが可能となる。
According to the invention of claim 24, the user service can receive the service from the control service on the network. Even if the user service cannot be used on the devices on the network, the service can be provided from the control service of the devices on the network by interprocess communication. It becomes possible to realize sharing of control service functions.

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

【0094】この請求項25にかかる発明によれば、コ
ントロールサービスはネットワーク上のコントロールサ
ービスからサービスの提供を受けることができる。ま
た、ネットワーク上の装置でコントロールサービスが使
用できない場合でも、プロセス間通信によって、ネット
ワーク上の装置のコントロールサービスからのサービス
の提供を受けることができるので、ネットワークを利用
した複数の装置間でコントロールサービスの機能の共有
化を実現することが可能となる。
According to the invention of claim 25, the control service can receive the service from the control service on the network. Even if the control service cannot be used on a device on the network, the service can be provided from the control service of the device on the network by interprocess communication. It becomes possible to realize sharing of the functions of.

【0095】[0095]

【発明の実施の形態】以下に添付図面を参照して、この
発明にかかる装置の好適な実施の形態を詳細に説明す
る。なお、以下の実施の形態では、本発明のプロセス間
通信機能を有する装置の一例として画像形成装置につい
て説明するが、複数のプロセスがサーバプロセスまたは
クライアントプロセスとしてプロセス間通信を行う如何
なる装置であってもよい。 (実施の形態1)図1は、この発明の実施の形態1であ
る画像形成装置(以下、「複合機」という)の構成を示
すブロック図である。図1に示すように、複合機は、白
黒ラインプリンタ(B&W LP)101と、カラーラインプ
リンタ(Color LP)102と、スキャナ103と、ファ
クシミリ104などのハードウェアリソースなどを有す
るとともに、プラットホーム120とアプリケーション
130とから構成されるソフトウェア群110を備えて
いる。
BEST MODE FOR CARRYING OUT THE INVENTION Preferred embodiments of an apparatus according to the present invention will be described in detail below with reference to the accompanying drawings. In the following embodiments, an image forming apparatus will be described as an example of an apparatus having an inter-process communication function according to the present invention, but any apparatus that performs inter-process communication as a server process or a client process by a plurality of processes may be used. Good. (Embodiment 1) FIG. 1 is a block diagram showing a configuration of an image forming apparatus (hereinafter referred to as a "multi-function peripheral") which is Embodiment 1 of the present invention. As shown in FIG. 1, the multifunction peripheral has hardware resources such as a black and white line printer (B & W LP) 101, a color line printer (Color LP) 102, a scanner 103, and a facsimile 104, and a platform 120. A software group 110 including an application 130 is provided.

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

【0097】コントロールサービスは、複数のサービス
モジュールから形成され、SCS(システムコントロー
ルサービス)122と、ECS(エンジンコントロール
サービス)124と、MCS(メモリコントロールサー
ビス)125と、OCS(オペレーションパネルコント
ロールサービス)126と、FCS(ファックスコント
ロールサービス)127と、NCS(ネットワークコン
トロールサービス)128とから構成される。なお、こ
のプラットホーム120は、あらかじめ定義された関数
により前記アプリケーション130から処理要求を受信
可能とするアプリケーションプログラムインタフェース
(API)を有する。
The control service is composed 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, and an OCS (operation panel control service) 126. And an FCS (fax control service) 127 and an NCS (network control service) 128. The platform 120 has an application program interface (API) capable of receiving a processing request from the application 130 by a predefined function.

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

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

【0100】具体的には、この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 available. Tell upper layers that resources are available. Further, the SRM 123 schedules the use of hardware resources in response to a request from the upper layer, and requests contents (for example, paper conveyance and image forming operation by the printer engine, memory reservation, file generation, etc.).
Are carried out directly.

【0101】SCS122はアプリ管理、操作部制御、
システム画面表示、LED表示、リソース管理、割り込
みアプリ制御を行うものである。ECS124は、白黒
ラインプリンタ(B&W LP)101、カラーラインプリン
タ(Color LP)102、スキャナ103、ファクシミリ
104からなるハードウェアリソースのエンジンを制御
するものである。
The SCS 122 is for application management, operation unit control,
The system screen display, LED display, resource management, and interrupt application control are performed. 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.

【0102】MCS125は、画像メモリの取得および
解放、ハードディスク装置(HDD)の利用、画像デー
タの圧縮および伸張などを行うものである。OCS12
6は、オペレータと本体制御間の情報伝達手段となる操
作パネルを制御するモジュールである。
The MCS 125 acquires and releases an image memory, uses a hard disk device (HDD), and compresses and decompresses image data. OCS12
Reference numeral 6 is a module for controlling an operation panel which is a means for transmitting information between the operator and the main body control.

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

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

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

【0106】これらの各コントロールサービスとSRM
123と各アプリとは、それぞれプロセスとして汎用O
S上に生成されて実行される。各プロセス内部では、複
数のスレッドが起動され、汎用OSの管理下でこれらの
スレッドのCPU占有時間を切り替えることにより並列
実行が実現されている。各アプリプロセスと各コントロ
ールサービスプロセスとは、後述するプロセス間通信に
よって各種メッセージやデータの送受信および関数呼び
出しを行う。
Each of these control services and SRM
123 and each application are general-purpose O as a process.
Generated on S and executed. Within each process, a plurality of threads are activated, and parallel execution is realized by switching the CPU occupation time of these threads under the control of a general-purpose OS. Each application process and each control service process perform transmission / reception of various messages and data and function call by inter-process communication described later.

【0107】図2は、実施の形態1の複合機上で動作す
るサーバプロセスとクライアントプロセスの関係を示す
ブロック図である。ここで、サーバプロセス202と
は、クライアントプロセス201からの要求によりクラ
イアントプロセス201に対しサービスを提供するプロ
セスをいう。クライアントプロセス201とは、サーバ
プロセス202に対して要求を行うことにより、サーバ
プロセス202からサービスの提供を受けるプロセスを
いう。
FIG. 2 is a block diagram showing the relationship between the server process and the client process operating on the multi-function peripheral of the first embodiment. Here, the server process 202 is 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.

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

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

【0110】なお、これらの例に限られず、各アプリの
プロセス、コントロールサービスのプロセス、SRMプ
ロセスは、いずれもサーバプロセス202およびクライ
アントプロセス201となることができる。すなわち、
これらのプロセスが、他のいずれかのプロセスに対しサ
ービスを要求する場合にはクライアントプロセス201
として動作する一方、他のプロセスからの要求によりサ
ービスを提供する場合にはサーバプロセス202として
動作することになる。
Note that the application process, the control service process, and the SRM process are not limited to these examples, and can be the server process 202 and the client process 201. That is,
If these processes request service from any other process, the client process 201
On the other hand, when providing a service in response to a request from another process, it operates as the server process 202.

【0111】図2に示すとおり、これらのアプリ、コン
トロールサービスおよびSRM123のプロセスには、
いずれも複数のスレッドが起動している。そして、各プ
ロセスは、複数のスレッドを有することから、他のプロ
セスからの要求を受けた場合に、当該他のプロセスをク
ライアントプロセス201としたサーバプロセス202
として動作するが、これと同時に、他のプロセスに対し
てサービスを要求する場合に当該他のプロセスをサーバ
プロセス202としたクライアントプロセス201とし
て動作する。
As shown in FIG. 2, the processes of these applications, control service, and SRM 123 are as follows.
In each case, multiple threads are running. Since each process has a plurality of threads, when a request from another process is received, the server process 202 that has the other process as the client process 201 is received.
At the same time, when a service is requested to another process, the other process operates as the client process 201 with the server process 202.

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

【0113】図2に示す通り、クライアントプロセス2
01は、サーバプロセス202のサービスを要求するた
めに、クライアントプロセス内のスレッドからサーバプ
ロセス202に対して関数コールを行い、その関数戻り
値を受信することによってプロセス間通信を行う。
As shown in FIG. 2, the client process 2
In order to request the service of the server process 202, 01 performs a function call from the thread in the client process to the server process 202, and receives the function return value to perform inter-process communication.

【0114】また、クライアントプロセス201の各ス
レッドはメッセージをサーバプロセス202に送信する
ことによってプロセス間通信を行う。一方、サーバプロ
セス202からクライアントプロセス201に対するプ
ロセス間通信は、メッセージの送信のみで行われ、関数
コールは行えないようになっている。
Each thread of the client process 201 performs inter-process communication by sending a message to the server process 202. On the other hand, the inter-process communication from the server process 202 to the client process 201 is performed only by transmitting a message, and the function call cannot be performed.

【0115】このため、サーバプロセス202となりう
るECS124、MCS125、FCS127、NCS
128などコントロールサービスおよびSRM123に
は、クライアントプロセス201に対して提供するサー
ビスが、サービスごとの後述する関数ハンドラ403と
してあらかじめ実装されている。これらのサービスの要
求をクライアントプロセス201から行う場合には、サ
ーバプロセス202に対して、サービスごとに関数を呼
び出すことにより(関数コールを行うことにより)、サ
ービスの提供を受けることが可能となっている。
Therefore, ECS 124, MCS 125, FCS 127, NCS which can be the server process 202.
In the control service such as 128 and the SRM 123, the service provided to the client process 201 is pre-installed as a function handler 403 described later for each service. When making a request for these services from the client process 201, it becomes possible to receive the service by calling a function for each service (by making a function call) to the server process 202. There is.

【0116】ここで、「メッセージ」とは、主としてサ
ーバプロセス202とクライアントプロセス201との
間でイベントや通知を行う際に送信するものであり、一
意的なメッセージID、メッセージ名、メッセージ方
向、メッセージ内容を含むデータである。
Here, the “message” is mainly transmitted when an event or notification is made between the server process 202 and the client process 201, and is a unique message ID, message name, message direction, message. It is data including contents.

【0117】メッセージ方向には、「IN」、「OU
T」、「SELF」があり、「IN」がクライアントプ
ロセス201からサーバプロセス202に対して送信す
るメッセージを意味し、「OUT」がサーバプロセス2
02からクライアントプロセス201に対して送信する
メッセージを意味する。また、「SELF」は、自分自
身のプロセスに対して送信するメッセージを意味する。
In the message direction, "IN", "OU"
There are “T” and “SELF”, “IN” means a message transmitted from the client process 201 to the server process 202, and “OUT” means the server process 2.
Means a message transmitted from 02 to the client process 201. Further, "SELF" means a message to be sent to its own process.

【0118】また、「関数」とは、クライアントプロセ
ス201からサーバプロセス202に対して所定の処理
要求を行ったり、所定の設定要求を行う際に発行するも
のであり、関数コールに対し戻り値を返すものである。
The "function" is issued when the client process 201 makes a predetermined processing request to the server process 202 or makes a predetermined setting request. To return.

【0119】クライアントプロセス201のスレッド
は、あらかじめサーバプロセス202から提供されてい
る関数をコールする。関数コールを受けたサーバプロセ
ス202は要求された関数に対応する処理を実行してそ
の実行結果を関数戻り値としてクライアントプロセス2
01のクライアントディスパッチャ203へ送信する。
また、関数戻り値は構造体となっており、かかる構造体
に戻り値の他、関数を識別する関数IDが含まれてい
る。
The thread of the client process 201 calls a function provided in advance by the server process 202. The server process 202 which has received the function call executes the process corresponding to the requested function and uses the execution result as the function return value to the client process 2
01 to the client dispatcher 203.
In addition, the function return value is a structure, and in addition to the return value, the function ID for identifying the function is included in the structure.

【0120】クライアントディスパッチャ203は、サ
ーバプロセス202からのOUT方向のメッセージまた
は関数戻り値の受信を監視するスレッドである。クライ
アントプロセス201は、一つのサーバプロセス202
につき一つのクライアントディスパッチャ203を起動
してサーバプロセス202と通信する。クライアントプ
ロセス201が複数のサーバプロセス202と通信する
場合には、サーバプロセス202ごとに一つのクライア
ントディスパッチャ203を起動する。
The client dispatcher 203 is a thread for monitoring the reception of OUT-direction messages or function return values from the server process 202. The client process 201 is one server process 202
One client dispatcher 203 is activated to communicate with the server process 202. When the client process 201 communicates with a plurality of server processes 202, one client dispatcher 203 is activated for each server process 202.

【0121】図3はクライアントディスパッチャの詳細
な構成を示す説明図である。クライアントディスパッチ
ャ203は、そのスレッド上でメッセージハンドラ30
2、エラーハンドラ301およびデフォルトハンドラ3
03を起動する。
FIG. 3 is an explanatory diagram showing the detailed structure of the client dispatcher. The client dispatcher 203 uses the message handler 30 on that thread.
2, error handler 301 and default handler 3
Start 03.

【0122】メッセージハンドラ302は、受信したメ
ッセージに対する処理を行うものであり、メッセージI
Dごとに別個のメッセージハンドラ302が複数存在す
る。このためクライアントディスパッチャ203がメッ
セージを受信すると、受信したメッセージに含まれるメ
ッセージIDを判断し、対応するメッセージIDのメッ
セージハンドラ302を呼び出すようになっている。メ
ッセージハンドラ302の処理内容としては、例えば、
メッセージの内容を関数コールを行ったスレッドに通知
するなどの処理があるが、メッセージごとに異なった処
理内容が定義されている。
The message handler 302 processes the received message.
There are multiple separate message handlers 302 for each D. Therefore, when the client dispatcher 203 receives a message, it determines the message ID included in the received message and calls the message handler 302 of the corresponding message ID. As the processing contents of the message handler 302, for example,
Although there are processes such as notifying the thread that made the function call of the message contents, different process contents are defined for each message.

【0123】エラーハンドラ301は、クライアントデ
ィスパッチャ203の実行中にエラーが発生した場合に
呼び出され、ユーザにエラー通知を行うなどのエラー処
理を行う。デフォルトハンドラ303は、対応するメッ
セージハンドラ302が登録されていないメッセージI
Dのメッセージを受信した時に呼び出され、メッセージ
をスレッドに通知するなどの処理を行う。
The error handler 301 is called when an error occurs during execution of the client dispatcher 203, and performs error processing such as notifying the user of an error. The default handler 303 is the message I for which the corresponding message handler 302 is not registered.
It is called when the D message is received and performs processing such as notifying the thread of the message.

【0124】また、クライアントディスパッチャ203
は、関数戻り待ちキュー304を保持しており、この関
数戻り待ちキュー304を利用することによって関数戻
り値および関数戻り待ち状態のスレッド305の管理を
行っている。すなわち、クライアントプロセス201の
スレッドは、サーバプロセス202に対し関数コールを
行うが、関数コール後、関数戻り値を受信するまで関数
戻り待ち状態となり以降の処理が中断される。
Also, the client dispatcher 203
Holds a function return wait queue 304, and manages the function return value and the thread 305 in the function return wait state by using this function return wait queue 304. That is, the thread of the client process 201 makes a function call to the server process 202, but after the function call, the thread returns to the function return waiting state until the function return value is received, and the subsequent processing is suspended.

【0125】クライアントディスパッチャ203は、ス
レッド305から関数コールが行われると、そのスレッ
ド305の識別子(スレッドIDなど)を関数の関数I
Dとともに関数戻り待ちキュー304に登録する。そし
て、クライアントディスパッチャ203は、サーバプロ
セス202から関数戻り値を受信すると、その関数ID
をキーとして関数戻り待ちキュー304を検索し、受信
した関数戻り値の受信を待って処理が中断されているス
レッド305の識別子(スレッドIDなど)を検出す
る。そして、クライアントディスパッチャ203は検出
された識別子(スレッドID)のスレッドに受信した関
数戻り値を送信する。関数戻り値を受信したスレッドは
戻り待ち状態を抜け、関数コール後の処理の続行が可能
となる。クライアントディスパッチャ203は、このよ
うな戻り値の通知を、関数戻り値を受信するごとに行
う。
When a function call is made from the thread 305, the client dispatcher 203 uses the identifier (thread ID etc.) of the thread 305 as the function I of the function.
It is registered in the function return waiting queue 304 together with D. When the client dispatcher 203 receives the function return value from the server process 202, the function ID
The key is used as a key to search the function return waiting queue 304, and the identifier (thread ID or the like) of the thread 305 whose processing is suspended is detected by waiting for reception of the received function return value. Then, the client dispatcher 203 transmits the received function return value to the thread having the detected identifier (thread ID). The thread that received the function return value exits the return wait state and can continue processing after the function call. The client dispatcher 203 notifies such a return value each time the function return value is received.

【0126】サーバディスパッチャ204は、クライア
ントプロセス201のスレッドからの関数コールおよび
IN方向のメッセージを監視するスレッドである。1つ
のサーバディスパッチャ204は、クライアントディス
パッチャ203と異なり、複数のクライアントプロセス
201からの関数コールおよびメッセージを受信するこ
とができる。
The server dispatcher 204 is a thread that monitors function calls and IN-direction messages from the threads of the client process 201. Unlike the client dispatcher 203, one server dispatcher 204 can receive function calls and messages from multiple client processes 201.

【0127】図4はサーバディスパッチャ204の詳細
な構成を示す説明図である。サーバディスパッチャ20
4は、そのスレッド上で、関数ハンドラ403、メッセ
ージハンドラ402、エラーハンドラ401およびデフ
ォルトハンドラ404を起動する。
FIG. 4 is an explanatory diagram showing a detailed structure of the server dispatcher 204. Server dispatcher 20
4 starts the function handler 403, the message handler 402, the error handler 401, and the default handler 404 on the thread.

【0128】関数ハンドラ403は、関数の具体的な処
理を実行するものであり、関数ごとに複数存在する。サ
ーバディスパッチャ204は、クライアントプロセス2
01から関数コールを受信すると、受信した関数に対応
する関数ハンドラ403を起動し、関数ハンドラ403
によってクライアントプロセス201が要求した処理を
実行し、その関数戻り値をクライアントプロセス201
のクライアントディスパッチャ203へ送信する。
The function handler 403 executes specific processing of the function, and there are a plurality of functions for each function. The server dispatcher 204 uses the client process 2
When the function call is received from 01, the function handler 403 corresponding to the received function is activated, and the function handler 403
Executes the processing requested by the client process 201 and returns the function return value to the client process 201.
To the client dispatcher 203.

【0129】メッセージハンドラ402は、受信したメ
ッセージに対する処理を行うものであり、メッセージI
Dごとに複数存在する。サーバディスパッチャ204
は、メッセージを受信すると受信したメッセージに含ま
れるメッセージIDを判断し、対応するメッセージID
のメッセージハンドラ402を呼び出すようになってい
る。メッセージハンドラ402の処理内容としては、例
えば、メッセージの内容をスレッドに通知するなどの処
理があるが、メッセージごとに異なった処理内容が定義
されている。
The message handler 402 is for processing the received message.
There is more than one for each D. Server dispatcher 204
When the message is received, the message ID included in the received message is determined, and the corresponding message ID
The message handler 402 is called. The processing content of the message handler 402 includes, for example, processing for notifying the thread of the content of the message, but different processing content is defined for each message.

【0130】エラーハンドラ401は、サーバディスパ
ッチャ204の実行中にエラーが発生した場合に呼び出
され、エラー通知などのエラー処理を行う。デフォルト
ハンドラ404は、対応するメッセージハンドラ402
が登録されていないメッセージIDのメッセージを受信
した時に呼び出され、メッセージをスレッドに通知する
などの処理を行う。
The error handler 401 is called when an error occurs during execution of the server dispatcher 204, and performs error processing such as error notification. The default handler 404 is the corresponding message handler 402
Is called when a message with a message ID that is not registered is received, and performs processing such as notifying the message to the thread.

【0131】つぎに、実施の形態1の複合機100で実
際に行われるプリンタ動作、スキャナ動作、コピー動作
およびファクシミリ送信動作におけるプロセス間通信に
ついて具体的に説明する。
Next, the interprocess communication in the printer operation, the scanner operation, the copy operation and the facsimile transmission operation that are actually performed in the multifunction machine 100 of the first embodiment will be specifically described.

【0132】まず、プリンタ動作におけるプリンタアプ
リ111、ECS124、MCS125、SRM123
のプロセス間通信について説明する。図5は、実施の形
態1の複合機でプリンタ動作を行う場合のプリンタアプ
リ、ECS、MCS、SRMの各プロセス間のデータシ
ーケンスを示す説明図である。図6は、各プロセス間の
関数およびメッセージの送受信の関係を示す説明図であ
る。
First, the printer application 111, ECS124, MCS125, SRM123 in the printer operation.
Interprocess communication of will be described. FIG. 5 is an explanatory diagram showing a data sequence between each process of the printer application, ECS, MCS, and SRM when the printer operation is performed by the multifunction peripheral of the first embodiment. FIG. 6 is an explanatory diagram showing the relationship between functions and message transmission / reception between processes.

【0133】図6に示すように、複合機100にはプリ
ンタアプリプロセス111、ECSプロセス124、M
CSプロセス125およびSRMプロセス123が動作
している。これらプロセスは、複合機100の起動時に
生成される。なお、図6にはプリンタ動作において使用
されるプロセスのみを図示しており、実際には他のアプ
リプロセスおよび他のコントロールサービスのプロセス
も複合機100の起動時に生成される。
As shown in FIG. 6, the multifunction peripheral 100 has a printer application process 111, an ECS process 124, and an MCS process.
The CS process 125 and SRM process 123 are running. These processes are generated when the multifunction peripheral 100 is started. It should be noted that FIG. 6 shows only the processes used in the printer operation, and in fact, other application processes and processes for other control services are also generated when the multifunction peripheral 100 is started.

【0134】プリンタアプリプロセス111は、複合機
の起動時に起動され、図6に示すようにプロセス内に複
数のスレッドが起動している。プリンタアプリプロセス
111は、ECSプロセス124をサーバプロセスとし
たクライアントプロセスとなっており、このためECS
プロセス124からのメッセージや関数戻り値を受信し
てプロセス内のスレッドに通知するクライアントディス
パッチャがスレッドとして起動される。
The printer application process 111 is activated when the multifunction machine is activated, and a plurality of threads are activated in the process as shown in FIG. The printer application process 111 is a client process that uses the ECS process 124 as a server process.
A client dispatcher that receives a message or a function return value from the process 124 and notifies the thread in the process is started as a thread.

【0135】ECSプロセス124は、プリンタ動作時
には、プリンタアプリプロセス111をクライアントプ
ロセスとしたサーバプロセスとなるとともに、MCSプ
ロセス125およびSRMプロセス123をそれぞれサ
ーバプロセスとしたクライアントプロセスとなる。この
ため、ECSプロセス124内にはプリンタアプリプロ
セス111からの関数コールおよびメッセージの受信と
プリンタアプリプロセス111に対するメッセージおよ
び関数戻り値の送信を行うサーバディスパッチャのスレ
ッドと、MCSプロセス125またはSRMプロセス1
23からのメッセージおよび関数戻り値の受信および戻
り値の管理を行うクライアントディスパッチャと、その
他ジョブ制御およびエンジン制御に関する処理を行う複
数のスレッドが動作している。
During printer operation, the ECS process 124 serves as a server process using the printer application process 111 as a client process, and also serves as a client process using the MCS process 125 and SRM process 123 as server processes. Therefore, in the ECS process 124, a thread of a server dispatcher that receives a function call and a message from the printer application process 111 and sends a message and a function return value to the printer application process 111, and the MCS process 125 or the SRM process 1
A client dispatcher that receives messages from 23 and function return values and manages the return values, and a plurality of threads that perform processing related to other job control and engine control are operating.

【0136】MCSプロセス125は、プリンタ動作時
には、ECSプロセス124をクライアントプロセスと
したサーバプロセスとなるとともに、SRMプロセス1
23をサーバプロセスとしたクライアントプロセスとな
る。このため、MCSプロセス125内にはECSプロ
セス124からの関数コールおよびメッセージの受信と
ECSプロセス124に対するメッセージおよび関数戻
り値の送信を行うサーバディスパッチャのスレッドと、
SRMプロセス123からのメッセージおよび関数戻り
値の受信および戻り値の管理を行うクライアントディス
パッチャと、その他、メモリ制御またはハードディスク
制御に関する処理を行う複数のスレッドが動作してい
る。
When the printer is operating, the MCS process 125 becomes a server process with the ECS process 124 as a client process, and the SRM process 1
It becomes a client process with 23 as a server process. Therefore, in the MCS process 125, a thread of a server dispatcher that receives a function call and a message from the ECS process 124 and sends a message and a function return value to the ECS process 124,
A client dispatcher that receives messages and function return values from the SRM process 123 and manages the return values, and a plurality of threads that perform processing related to memory control or hard disk control are operating.

【0137】SRMプロセス123は、プリンタ動作時
には、ECSプロセス124またはMCSプロセス12
5をクライアントプロセスとしたサーバプロセスとなっ
ている。SRMプロセス123内にはECSプロセス1
24またはMCSプロセス125からの関数コールおよ
びメッセージの受信とECSプロセス124またはMC
Sプロセス125に対するメッセージおよび関数戻り値
の送信を行うサーバディスパッチャのスレッドと、その
他、エンジン資源制御に関する種々の処理を行う複数の
スレッドが動作している。
When the printer is operating, the SRM process 123 uses the ECS process 124 or the MCS process 12
It is a server process with 5 as the client process. ECS process 1 in SRM process 123
24 or MCS process 125 to receive function calls and messages and ECS process 124 or MC
A thread of a server dispatcher that sends a message and a function return value to the S process 125, and other threads that perform various processes related to engine resource control are operating.

【0138】実施の形態1におけるプリンタアプリプロ
セス111では、ジョブ動作モード設定とジョブスター
ト要求の各関数コールを行う処理を一スレッドとしてい
る。また、ECSプロセス124では、印刷枚数分繰り
返しメモリ画像情報要求関数コールを行う処理を一スレ
ッドとし、また資源獲得要求関数コールを行う処理を一
スレッドとしている。MCSプロセス125では、メモ
リ取得要求関数コールを行う処理を一スレッドとしてい
る。ただし、これらの各スレッドにおける処理は一例で
あり、各プログラムで任意に定めることができる。
In the printer application process 111 according to the first embodiment, one thread is used to perform each function call of job operation mode setting and job start request. Further, in the ECS process 124, the process of repeatedly calling the memory image information request function for the number of printed sheets is one thread, and the process of performing the resource acquisition request function call is one thread. In the MCS process 125, the process of making a memory acquisition request function call is one thread. However, the processing in each of these threads is an example, and can be arbitrarily set in each program.

【0139】PCなどのホストからセントロI/F、U
SB I/F、ネットワークI/Fなど経由して印刷要
求1があると、その印刷要求1をNCSプロセスが受け
プリンタアプリプロセスに転送する(ステップS50
1)。プリンタアプリプロセス111は、NCSプロセ
スから印刷要求を受信すると新たなプリントジョブを生
成し、スレッド1においてECSプロセス124に対し
てジョブ動作モード設定要求関数コールを行う(ステッ
プS502)。
From a host such as a PC, a Centro I / F, U
When there is a print request 1 via the SB I / F, network I / F, etc., the NCS process receives the print request 1 and transfers it to the printer application process (step S50).
1). Upon receiving the print request from the NCS process, the printer application process 111 creates a new print job, and in thread 1 calls a job operation mode setting request function call to the ECS process 124 (step S502).

【0140】その後このスレッド1は関数戻り値の受信
待ちとなり、クライアントディスパッチャによりスレッ
ド1の識別子(スレッドID)が関数戻り待ちキューに
登録される。ここで、ジョブ動作モードとは、スキャ
ナ、プロッタ、フィニッシャなどを動作させるために必
要なパラメータ群であり、印刷用紙サイズ、印刷部数、
給紙トレイなどのプリンタ条件から生成されるジョブの
動作条件を定めたものである。
Thereafter, this thread 1 waits for reception of the function return value, and the identifier (thread ID) of the thread 1 is registered in the function return waiting queue by the client dispatcher. Here, the job operation mode is a group of parameters required to operate the scanner, plotter, finisher, etc., such as print paper size, number of copies,
It defines the operation conditions of a job generated from printer conditions such as a paper feed tray.

【0141】なお、以降では説明の簡略化のため、サー
バプロセスに関数コールを行って関数戻り待ち状態とな
ったスレッドの識別子(スレッドID)が、クライアン
トディスパッチャによって、関数IDとともに関数戻り
待ちキューに登録されることを、単に「スレッドが関数
戻り待ち状態になる」と表現する。
For the sake of simplification of description, the identifier (thread ID) of the thread that has made a function call to the server process and is in the function return waiting state will be stored in the function return waiting queue together with the function ID by the client dispatcher. The registration is simply expressed as "the thread is in a function return wait state".

【0142】ECSプロセス124では、サーバディス
パッチャがプリンタアプリプロセスからジョブ動作モー
ド設定関数コールを受信して、ジョブ動作モード設定関
数ハンドラをサーバディスパッチャのスレッド上で起動
する。そして、ジョブ動作モード設定関数ハンドラによ
り新たに生成されたプリンタジョブに対して上述のジョ
ブ動作モードを設定し、関数戻り値(例えば、正常また
はエラー発生)をプリンタアプリプロセス111のクラ
イアントディスパッチャへ送信する。
In the ECS process 124, the server dispatcher receives the job operation mode setting function call from the printer application process and activates the job operation mode setting function handler on the thread of the server dispatcher. Then, the above-mentioned job operation mode is set for the printer job newly generated by the job operation mode setting function handler, and the function return value (for example, normal or error occurrence) is transmitted to the client dispatcher of the printer application process 111. .

【0143】プリンタアプリプロセス111のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブ動作モード設定関数の関数戻り値を受信して、関数戻
り待ちキューから関数戻り値待ちのスレッド1を検索し
て、ジョブ動作モード設定関数の戻り値を抽出してスレ
ッド1に送信する。
The client dispatcher of the printer application process 111 receives the function return value of the job operation mode setting function from the ECS process 124, retrieves the thread 1 waiting for the function return value from the function return wait queue, and determines the job operation mode. The return value of the setting function is extracted and sent to thread 1.

【0144】なお、以降では説明の簡略化のため、クラ
イアントディスパッチャによって、関数戻り待ち状態の
スレッドの識別子(スレッドID)が関数戻り待ちキュ
ーから検索され、検索された識別子(スレッドID)の
スレッドがクライアントディスパッチャから関数戻り値
を受信することを、単に「スレッドがクライアントディ
スパッチャ経由で関数戻り値を受信する」と表現する。
For simplification of the description, the client dispatcher searches the function return waiting queue for the identifier (thread ID) of the thread in the function return waiting state, and finds the thread with the retrieved identifier (thread ID). Receiving the function return value from the client dispatcher is simply expressed as "the thread receives the function return value via the client dispatcher".

【0145】スレッド1では、クライアントディスパッ
チャからジョブ動作モード設定の関数戻り値を受信する
と、戻り待ち状態を抜け、ジョブの開始要求を行うた
め、ECSプロセス124に対しジョブスタート要求関
数を呼び出し(ステップS503)、関数戻り待ち状態
となる。
When the thread 1 receives the function return value of the job operation mode setting from the client dispatcher, it exits the return wait state and requests the start of the job. Therefore, the job start request function is called to the ECS process 124 (step S503). ), The function returns to the waiting state.

【0146】ECSプロセス124では、サーバディス
パッチャがプリンタアプリプロセス111からジョブス
タート要求関数コールを受信して、ジョブスタート要求
関数ハンドラをサーバディスパッチャのスレッド上で起
動し、ジョブスタート要求関数ハンドラによってジョブ
の開始処理を行って関数戻り値をプリンタアプリプロセ
ス111のクライアントディスパッチャへ送信する。
In the ECS process 124, the server dispatcher receives the job start request function call from the printer application process 111, activates the job start request function handler on the thread of the server dispatcher, and starts the job by the job start request function handler. The function return value is processed and sent to the client dispatcher of the printer application process 111.

【0147】プリンタアプリプロセス111のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブスタート要求関数の戻り値を受信して、スレッド1が
クライアントディスパッチャ経由でジョブスタート要求
関数の戻り値を受信する。
The client dispatcher of the printer application process 111 receives the return value of the job start request function from the ECS process 124, and the thread 1 receives the return value of the job start request function via the client dispatcher.

【0148】つぎに、ECSプロセス124では、メモ
リに格納されている印刷データを取得するためにスレッ
ド3においてMCSプロセス125に対してメモリ画像
情報要求メッセージを送信する(ステップS504)。
Next, the ECS process 124 sends a memory image information request message to the MCS process 125 in the thread 3 in order to obtain the print data stored in the memory (step S504).

【0149】MCSプロセス125では、サーバディス
パッチャがECSプロセス124からメモリ画像情報要
求メッセージを受信して、メモリ画像情報要求メッセー
ジハンドラを起動する。そして、このメモリ画像情報要
求メッセージハンドラによってメモリに格納されている
画像データを取得して、画像データをECSプロセス1
24へ送信する(ステップS505)。
In the MCS process 125, the server dispatcher receives the memory image information request message from the ECS process 124 and activates the memory image information request message handler. Then, the image data stored in the memory is acquired by the memory image information request message handler, and the image data is transferred to the ECS process 1
24 (step S505).

【0150】ECSプロセス124のクライアントディ
スパッチャは、MCSプロセス125から画像データを
受信して、スレッド3へ受け渡す。かかるメモリ画像情
報要求メッセージの送信および画像データの受信処理
は、印刷ページが終了するまで繰り返し行われる(ステ
ップS508、S509)。
The client dispatcher of the ECS process 124 receives the image data from the MCS process 125 and transfers it to the thread 3. The process of transmitting the memory image information request message and the process of receiving the image data are repeated until the print page is completed (steps S508 and S509).

【0151】一方、MCSプロセス125では、画像デ
ータのECSプロセス124への送信後、画像メモリを
確保するためにスレッド5においてSRMプロセス12
3に対してメモリ取得要求関数コールを行って(ステッ
プS506)、戻り待ち状態となる。SRMプロセス1
23では、サーバディスパッチャがMCSプロセス12
5からメモリ取得要求関数コールを受信し、メモリ取得
要求関数ハンドラを起動して、このメモリ取得要求関数
ハンドラによってプリント用に画像メモリを確保し、関
数戻り値をMCSプロセス125へ送信する。
On the other hand, in the MCS process 125, after transmitting the image data to the ECS process 124, the SRM process 12 is executed in the thread 5 to secure the image memory.
A memory acquisition request function call is made to step 3 (step S506), and a return waiting state is entered. SRM process 1
At 23, the server dispatcher has the MCS process 12
5, the memory acquisition request function call is received, the memory acquisition request function handler is activated, the image acquisition memory is reserved for printing by this memory acquisition request function handler, and the function return value is sent to the MCS process 125.

【0152】MCSプロセス125のクライアントディ
スパッチャは、SRMプロセス123からメモリ取得要
求関数の戻り値を受信して、スレッド5がクライアント
ディスパッチャ経由でこのメモリ取得要求関数の戻り値
を受信する。
The client dispatcher of the MCS process 125 receives the return value of the memory acquisition request function from the SRM process 123, and the thread 5 receives the return value of this memory acquisition request function via the client dispatcher.

【0153】ECSプロセス124では、1ページ目の
印刷データをMCSプロセス125から受信した後、プ
リンタエンジン資源を取得するためにスレッド4におい
て、SRMプロセス123に対して資源獲得要求関数コ
ールを行って(ステップS507)、関数戻り待ち状態
となる。SRMプロセス123では、サーバディスパッ
チャがECSプロセス124から資源獲得要求関数コー
ルを受信して資源獲得要求関数ハンドラを起動し、資源
獲得要求関数ハンドラによってプリンタエンジンを占有
し、関数戻り値をECSプロセス124へ送信する。E
CSプロセス124のクライアントディスパッチャは、
SRMプロセス123から資源獲得要求関数の戻り値を
受信して、スレッド4がクライアントディスパッチャ経
由で資源獲得要求関数の戻り値を受信する。
In the ECS process 124, after receiving the print data of the first page from the MCS process 125, the thread 4 makes a resource acquisition request function call to the SRM process 123 in order to acquire printer engine resources ( In step S507), the function returns to the waiting state. In the SRM process 123, the server dispatcher receives the resource acquisition request function call from the ECS process 124, activates the resource acquisition request function handler, occupies the printer engine by the resource acquisition request function handler, and returns the function return value to the ECS process 124. Send. E
The CS process 124 client dispatcher
The return value of the resource acquisition request function is received from the SRM process 123, and the thread 4 receives the return value of the resource acquisition request function via the client dispatcher.

【0154】ECSプロセス124のスレッド3では、
メモリ画像情報要求メッセージ(ステップS511)に
対する通知メッセージとして「画像なし」の応答メッセ
ージを受信した場合には(ステップS512)、すべて
の印刷ページのプリントが終了したものと判断し、プリ
ンタアプリプロセス111に対し、ジョブエンド通知メ
ッセージを送信する(ステップS513)。プリンタア
プリプロセス111では、クライアントディスパッチャ
がこのメッセージを受信してメッセージハンドラを起動
し、メッセージハンドラによってジョブエンド通知メッ
セージをスレッド1へ通知する。
In thread 3 of the ECS process 124,
When the response message of “no image” is received as the notification message for the memory image information request message (step S511) (step S512), it is determined that printing of all print pages is completed, and the printer application process 111 is notified. In response, a job end notification message is transmitted (step S513). In the printer application process 111, the client dispatcher receives this message, activates the message handler, and notifies the thread 1 of the job end notification message by the message handler.

【0155】このようにプリンタ動作のプロセス間通信
が行われるが、ここで、図5に示すように、印刷要求1
に対するプリント処理中に、別の印刷要求2がNCSか
らプリンタアプリプロセス111へ送信された場合につ
いて説明する。(ステップS521)。
Interprocess communication of printer operation is performed in this way. Here, as shown in FIG. 5, print request 1
A case will be described in which another print request 2 is transmitted from the NCS to the printer application process 111 during the print processing for the. (Step S521).

【0156】このとき、プリンタアプリプロセス11
1、ECSプロセス124、MCSプロセス125およ
びSRMプロセス123で、上述した関数コールと同様
のプロセス間通信が行われる(ステップS522、S5
23、S524)。
At this time, the printer application process 11
1, the ECS process 124, the MCS process 125, and the SRM process 123 perform inter-process communication similar to the above-mentioned function call (steps S522 and S5).
23, S524).

【0157】しかし、ECSプロセス124のスレッド
7からSRMプロセス123に対して資源獲得要求関数
コールを行った場合(ステップS527)、現在プリン
タエンジンが印刷要求1に対するプリント処理に占有さ
れているため、SRMプロセス123は直ちに資源獲得
要求関数の戻り値を返さない。このため、このスレッド
7はしばらく関数戻り値待ちの状態となり、関数戻り待
ちキューに登録された状態となる。そして、印刷要求1
による占有からプリンタエンジンが解放された時点で、
SRMプロセス123は資源獲得要求関数の戻り値をE
CSプロセス124に返し(ステップS528)、これ
により、ECSプロセス124のスレッド7が、印刷要
求2に対する処理を続行することになる。
However, when the resource acquisition request function call is made from the thread 7 of the ECS process 124 to the SRM process 123 (step S527), the SRM is currently occupied by the print engine for the print request 1 because the printer engine is currently occupied by the print process. The process 123 does not immediately return the return value of the resource acquisition request function. Therefore, the thread 7 waits for a function return value for a while, and is registered in the function return waiting queue. And print request 1
When the printer engine is released from occupation by
The SRM process 123 returns E as the return value of the resource acquisition request function.
The process is returned to the CS process 124 (step S528), whereby the thread 7 of the ECS process 124 continues to process the print request 2.

【0158】なお、ここでは印刷要求2に対するプリン
タジョブにおいて、プリンタエンジンの獲得ができない
場合の例を説明した。この他、ECSプロセス124か
らSRMプロセス123に対してメモリ取得要求関数コ
ールを行ったときに、すでに印刷要求1に対するプリン
トジョブが原因でメモリ不足が生じ、印刷要求2のプリ
ントジョブでメモリを取得できない場合には、メモリ取
得要求関数コールを行ったスレッドが印刷要求1のプリ
ンタ動作完了まで関数戻り待ち状態のまま待機し、印刷
要求2に対するプリンタ動作が中断する。
Here, an example has been described in which the printer job for the print request 2 cannot acquire the printer engine. In addition, when the ECS process 124 makes a memory acquisition request function call to the SRM process 123, the print job for print request 1 has already caused a memory shortage, and the print job for print request 2 cannot acquire the memory. In this case, the thread that has executed the memory acquisition request function call waits in the function return waiting state until the printer operation of the print request 1 is completed, and the printer operation for the print request 2 is interrupted.

【0159】次に、実施の形態1の複合機100で行わ
れるスキャナ動作において、スキャナアプリ114、E
CS124、MCS125、SRM123のプロセス間
通信について具体的に説明する。図7は、実施の形態1
の複合機でスキャナ動作を行う場合のスキャナアプリ、
ECS、MCS、SRMの各プロセス間のデータシーケ
ンスを示す説明図である。また、図8は、各プロセス間
の関数およびメッセージの送受信の関係を示す説明図で
ある。
Next, in the scanner operation performed by the multifunction peripheral 100 of the first embodiment, the scanner applications 114, E
Inter-process communication of the CS 124, MCS 125, and SRM 123 will be specifically described. FIG. 7 shows the first embodiment.
Scanner application when performing scanner operation with the multifunction machine of
It is explanatory drawing which shows the data sequence between each process of ECS, MCS, and SRM. Further, FIG. 8 is an explanatory diagram showing a relationship between functions and message transmission / reception between processes.

【0160】図8に示すように、複合機100にはスキ
ャナアプリプロセス114、ECSプロセス124、M
CSプロセス125およびSRMプロセス123が動作
している。これらのプロセスは、複合機100の起動時
に生成される。なお、図8にはスキャナ動作において使
用されるプロセスのみを図示しており、実際には他のア
プリプロセスおよび他のコントロールサービスのプロセ
スも複合機100の起動時に生成される。
As shown in FIG. 8, the multifunction peripheral 100 has a scanner application process 114, an ECS process 124, and an MCS process.
The CS process 125 and SRM process 123 are running. These processes are generated when the multifunction peripheral 100 is started. Note that FIG. 8 shows only the processes used in the scanner operation, and actually other application processes and other control service processes are also generated when the multifunction peripheral 100 is activated.

【0161】スキャナアプリプロセス114は、複合機
の起動時に起動され、図8に示すようにプロセス内に複
数のスレッドが起動している。スキャナアプリプロセス
114は、ECSプロセス124をサーバプロセスとし
たクライアントプロセスとなっており、このためECS
プロセス124に対するクライアントディスパッチャの
スレッドが起動している。
The scanner application process 114 is activated when the multifunction peripheral is activated, and a plurality of threads are activated in the process as shown in FIG. The scanner application process 114 is a client process that uses the ECS process 124 as a server process.
The client dispatcher thread for process 124 is up.

【0162】ECSプロセス124は、スキャナ動作時
には、スキャナアプリプロセス114をクライアントプ
ロセスとしたサーバプロセスとなるとともに、MCSプ
ロセス125およびSRMプロセス124をそれぞれサ
ーバプロセスとしたクライアントプロセスとなる。この
ため、ECSプロセス124内にはスキャナアプリプロ
セス114に対するサーバディスパッチャのスレッド
と、MCSプロセス125に対するクライアントディス
パッチャのスレッドと、SRMプロセス123に対する
クライアントディスパッチャのスレッドとその他ジョブ
制御またはエンジン制御に関する処理を行う複数のスレ
ッドが動作している。
When the scanner is operating, the ECS process 124 serves as a server process with the scanner application process 114 as a client process, and also serves as a client process with the MCS process 125 and the SRM process 124 as server processes. For this reason, in the ECS process 124, a server dispatcher thread for the scanner application process 114, a client dispatcher thread for the MCS process 125, a client dispatcher thread for the SRM process 123, and a plurality of processes related to job control or engine control are performed. Thread is running.

【0163】MCSプロセス125は、スキャナ動作時
には、スキャナアプリプロセス114およびECSプロ
セス124をクライアントプロセスとしたサーバプロセ
スとなる。このため、MCSプロセス125内にはスキ
ャナアプリプロセス114およびECSプロセス124
に対するサーバディスパッチャのスレッドとその他メモ
リ制御またはハードディスク制御に関する処理を行う複
数のスレッドが動作している。
The MCS process 125 is a server process in which the scanner application process 114 and the ECS process 124 are client processes during the scanner operation. Therefore, the scanner application process 114 and the ECS process 124 are included in the MCS process 125.
There are multiple threads running for the server dispatcher thread and other threads that perform processing related to memory control or hard disk control.

【0164】SRMプロセス123は、ECSプロセス
124をクライアントプロセスとしたサーバプロセスと
なり、このため、SRMプロセス123内にはECSプ
ロセス124に対するサーバディスパッチャのスレッド
とその他エンジン資源制御に関する処理を行う複数のス
レッドが動作している。
The SRM process 123 becomes a server process with the ECS process 124 as a client process. Therefore, in the SRM process 123, there are a thread of the server dispatcher for the ECS process 124 and a plurality of other threads for processing related to engine resource control. It's working.

【0165】実施の形態1におけるスキャナアプリプロ
セス114では、スキャナ動作時におけるジョブオープ
ン要求関数とジョブ動作モード設定要求とジョブスター
ト要求の各関数コールを行う一連の処理、ファイル生成
要求関数コールを行う処理、ファイル情報登録要求関数
コールおよびファイルクローズ要求関数コールを行う処
理をそれぞれ一スレッドとしている。
In the scanner application process 114 according to the first embodiment, a series of processes for performing each function call of a job open request function, a job operation mode setting request, and a job start request during a scanner operation, and a process for performing a file generation request function call The processing for making the file information registration request function call and the file close request function call is each one thread.

【0166】また、スキャナアプリプロセス114で
は、スキャンした画像の読み出し時におけるファイルオ
ープン要求関数コール、作業領域確保要求関数コールお
よびページオープン要求関数コールを行う処理、読み出
し要求関数コールを行う処理、ページクローズ要求関数
コールとページ削除要求関数コールと作業領域削除要求
関数コールとファイルクローズ要求関数コールとファイ
ル削除要求関数コールを行う一連の処理をそれぞれ一ス
レッドとしている。
In the scanner application process 114, a file open request function call, a work area reservation request function call and a page open request function call process, a read request function call process, and a page close process are performed when reading a scanned image. A thread performs a series of processing for request function call, page delete request function call, work area delete request function call, file close request function call, and file delete request function call.

【0167】ECSプロセス124では、資源獲得要求
関数コールを行う処理、原稿枚数分繰り返してページ生
成要求関数コールと原稿フィードインおよびページクロ
ーズ要求関数コールを行う一連の処理をそれぞれ一スレ
ッドとしている。ただし、これらの各スレッドにおける
処理は一例であり、各プログラムで任意に定めることが
できる。
In the ECS process 124, one thread includes a process for making a resource acquisition request function call, and a series of processes for repeatedly making a page generation request function call and a manuscript feed-in and page close request function call for the number of originals. However, the processing in each of these threads is an example, and can be arbitrarily set in each program.

【0168】スキャナアプリプロセス114に対しスキ
ャン要求があると、スキャナアプリプロセス114は、
新たなスキャナジョブを生成し、スレッド1においてE
CSプロセス124に対してジョブオープン要求関数コ
ールを行う(ステップS701)。その後このスレッド
1は関数戻り待ち状態となり、クライアントディスパッ
チャによってスレッド1の識別子(スレッドID)が呼
び出した関数の関数IDとともに関数戻り待ちキューに
登録される。
When a scan request is issued to the scanner application process 114, the scanner application process 114
Create a new scanner job and E in thread 1
A job open request function call is made to the CS process 124 (step S701). After that, this thread 1 enters the function return waiting state, and is registered in the function return waiting queue together with the function ID of the function called by the identifier (thread ID) of the thread 1 by the client dispatcher.

【0169】また、スキャナアプリプロセス114で
は、これと並行してスレッド2によりMCSプロセス1
25に対しファイル生成要求関数コールを行う(ステッ
プS702)。その後このスレッド2は関数戻り待ち状
態となり、同様にスレッド2の識別子(スレッドID)
が関数戻り待ちキューに登録される。
Further, in the scanner application process 114, the MCS process 1 is executed by the thread 2 in parallel with this.
A file generation request function call is made to 25 (step S702). After that, this thread 2 waits for a function return, and similarly, the thread 2 identifier (thread ID)
Is registered in the function return wait queue.

【0170】ECSプロセス124では、サーバディス
パッチャがスキャナアプリプロセス114からジョブオ
ープン要求関数コールを受信して、ジョブオープン要求
関数ハンドラをサーバディスパッチャのスレッド上で起
動する。そして、ジョブオープン要求関数ハンドラによ
りジョブをオープンして、関数戻り値をスキャナアプリ
プロセス114のクライアントディスパッチャへ送信す
る。
In the ECS process 124, the server dispatcher receives the job open request function call from the scanner application process 114 and activates the job open request function handler on the thread of the server dispatcher. Then, the job is opened by the job open request function handler and the function return value is sent to the client dispatcher of the scanner application process 114.

【0171】一方、MCSプロセス125では、サーバ
ディスパッチャがスキャナアプリプロセス114からフ
ァイル生成要求関数コールを受信して、ファイル生成要
求関数ハンドラによって、スキャンした画像を一時的に
格納するファイルをハードディスク上に生成して、関数
戻り値をスキャナアプリプロセス114のクライアント
ディスパッチャへ送信する。
On the other hand, in the MCS process 125, the server dispatcher receives the file generation request function call from the scanner application process 114, and the file generation request function handler generates a file for temporarily storing the scanned image on the hard disk. Then, the function return value is transmitted to the client dispatcher of the scanner application process 114.

【0172】スキャナアプリプロセス114のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブオープン要求関数の関数戻り値を受信するとともに、
MCSプロセス125からファイル生成要求関数の戻り
値を受信して、関数戻り値キューからジョブオープン要
求関数戻り待ち状態のスレッド1とファイル生成要求関
数戻り待ち状態のスレッド2を検出し、ジョブオープン
要求関数の戻り値をスレッド1に送信し、ファイル生成
要求関数の戻り値をスレッド2に送信する。
The client dispatcher of the scanner application process 114 receives the function return value of the job open request function from the ECS process 124, and
The return value of the file creation request function is received from the MCS process 125, and the thread 1 in the job open request function return waiting state and the thread 2 in the file creation request function return waiting state are detected from the function return value queue, and the job open request function is detected. To the thread 1, and the return value of the file generation request function to the thread 2.

【0173】スレッド1は、クライアントディスパッチ
ャからジョブオープン要求関数の戻り値を受信すると戻
り待ち状態を抜け、ジョブ動作モードの設定を行うた
め、ECSプロセス124に対しジョブ動作モード設定
要求関数を呼び出し(ステップS703)、スレッド1
は関数戻り待ち状態となる。
When the thread 1 receives the return value of the job open request function from the client dispatcher, it exits the return wait state and sets the job operation mode. Therefore, the thread 1 calls the job operation mode setting request function to the ECS process 124 (step S703), thread 1
Enters the function return wait state.

【0174】ECSプロセス124では、サーバディス
パッチャがスキャナアプリプロセス114からジョブ動
作モード設定要求関数コールを受信して、ジョブ動作モ
ード設定要求関数ハンドラによってスキャナジョブに上
述のジョブ動作モードを設定して関数戻り値をスキャナ
アプリプロセス114のクライアントディスパッチャへ
送信する。
In the ECS process 124, the server dispatcher receives the job operation mode setting request function call from the scanner application process 114, sets the above-mentioned job operation mode in the scanner job by the job operation mode setting request function handler, and returns to the function. Send the value to the client dispatcher of the scanner app process 114.

【0175】スキャナアプリプロセス114のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブ動作モード設定要求関数の戻り値を受信する。スレッ
ド1はクライアントディスパッチャ経由でジョブ動作モ
ード設定要求関数の戻り値を受信し、関数戻り待ち状態
を抜ける。
The client dispatcher of the scanner application process 114 receives the return value of the job operation mode setting request function from the ECS process 124. The thread 1 receives the return value of the job operation mode setting request function via the client dispatcher and exits the function return waiting state.

【0176】関数戻り待ち状態を抜けたスレッド1で
は、ジョブスタート要求関数コールをECSプロセス1
24に対して行い(ステップS704)、スレッド1が
関数戻り待ち状態となる。ECSプロセス124では、
サーバディスパッチャがジョブスタート要求関数コール
を受信して、ジョブスタート要求関数ハンドラによって
ジョブの開始処理を行い、関数戻り値をスキャナアプリ
プロセス114のクライアントディスパッチャへ送信す
る。スキャナアプリプロセス114のクライアントディ
スパッチャは、ECSプロセス124からジョブスター
ト要求関数の戻り値を受信し、スレッド1がクライアン
トディスパッチャ経由でジョブスタート要求関数の関数
戻り値を受信する。
In the thread 1 that has exited the function return waiting state, the job start request function call is issued to the ECS process 1
24 (step S704), the thread 1 enters the function return waiting state. In the ECS process 124,
The server dispatcher receives the job start request function call, the job start request function handler performs job start processing, and sends the function return value to the client dispatcher of the scanner application process 114. The client dispatcher of the scanner application process 114 receives the return value of the job start request function from the ECS process 124, and the thread 1 receives the function return value of the job start request function via the client dispatcher.

【0177】このとき、ECSプロセス124では、ス
キャナエンジンの資源格闘のため、スレッド3において
SRMプロセス123に対して資源獲得要求関数コール
を行い(ステップS705)、関数戻り待ち状態とな
る。またECSプロセス124では、これと並行してス
キャン画像をページ単位で格納するメモリを確保するた
めに、スレッド4においてMCSプロセス125に対し
ページ生成要求関数コールを行い(ステップS70
6)、関数戻り待ち状態となる。この時点で、関数戻り
待ちキューには、スレッド3とスレッド4の識別子(ス
レッドID)が呼び出した関数の関数IDとともに格納
される。
At this time, in the ECS process 124, the resource acquisition request function call is made to the SRM process 123 in the thread 3 due to the resource competition of the scanner engine (step S705), and the function return waiting state is entered. Further, in parallel with this, the ECS process 124 makes a page generation request function call to the MCS process 125 in the thread 4 in order to secure a memory for storing the scan image in page units (step S70).
6) The function returns to a waiting state. At this point, the identifiers of the threads 3 and 4 (thread IDs) are stored in the function return wait queue together with the function ID of the called function.

【0178】SRMプロセス123では、サーバディス
パッチャが資源獲得要求関数コールを受信して資源獲得
要求関数ハンドラにより、スキャナエンジンを占有し関
数戻り値をECSプロセス124へ送信する。MCSプ
ロセス125では、サーバディスパッチャがページ生成
要求関数コールを受信してページ生成要求関数ハンドラ
により、1ページ分のメモリを確保し、確保したページ
をオープンし、関数戻り値をECSプロセス124へ送
信する。
In the SRM process 123, the server dispatcher receives the resource acquisition request function call, and the resource acquisition request function handler occupies the scanner engine and sends the function return value to the ECS process 124. In the MCS process 125, the server dispatcher receives the page generation request function call, reserves the memory for one page by the page generation request function handler, opens the secured page, and sends the function return value to the ECS process 124. .

【0179】ECSプロセス124のクライアントディ
スパッチャは、SRMプロセス123から資源獲得要求
関数の戻り値を受信し、またMCSプロセス125から
ページ生成要求関数の戻り値を受信する。そして、関数
戻り待ち状態のスレッド3はクライアントディスパッチ
ャ経由で資源獲得要求関数の戻り値を受信し、スレッド
4もクライアントディスパッチャ経由でページ生成要求
関数の戻り値を受信する。
The client dispatcher of the ECS process 124 receives the return value of the resource acquisition request function from the SRM process 123 and the return value of the page generation request function from the MCS process 125. Then, the thread 3 in the function return waiting state receives the return value of the resource acquisition request function via the client dispatcher, and the thread 4 also receives the return value of the page generation request function via the client dispatcher.

【0180】スレッド4は、関数戻り値を受信すること
によって戻り待ち状態を抜け、つぎにスキャナエンジン
に対して原稿フィードインの指示メッセージを送信して
(ステップS707)、スキャナによる原稿の読み取り
動作を開始させる。1ページ分の原稿読み動作が終了す
ると、ECSプロセス124に対しスキャナエンジンか
らスキャン完了通知メッセージが送信されるので(ステ
ップS708)、ECSプロセス124のスレッド4は
このスキャン完了通知メッセージを受信してMCSプロ
セス125に対しページクローズ要求関数コールを行っ
て(ステップS709)、戻り待ち状態となる。
The thread 4 exits the return waiting state by receiving the function return value, then transmits a document feed-in instruction message to the scanner engine (step S707), and causes the scanner to read the document. Let it start. When the document reading operation for one page is completed, the scan completion notification message is transmitted from the scanner engine to the ECS process 124 (step S708). Therefore, the thread 4 of the ECS process 124 receives the scan completion notification message and receives the MCS. A page close request function call is made to the process 125 (step S709), and the process waits for a return.

【0181】MCSプロセス125では、ページクロー
ズ要求関数コールを受信すると、ページクローズ要求関
数ハンドラによってメモリ上でオープンされている1ペ
ージ分の画像メモリをクローズして関数戻り値をECS
プロセス124のクライアントディスパッチャへ送信す
る。
Upon receiving the page close request function call, the MCS process 125 closes the image memory for one page opened on the memory by the page close request function handler and returns the function return value to ECS.
Send to the client dispatcher of process 124.

【0182】ECSプロセス124のクライアントディ
スパッチャは、ページクローズ要求関数の戻り値を受信
し、関数戻り待ち状態のスレッド4がクライアントディ
スパッチャ経由でページクローズ要求関数の戻り値を受
信する。スレッド4では、これにより関数戻り待ち状態
を抜け、上述のページ生成要求関数コールからページク
ローズ要求関数コールまでの処理(ステップS706〜
S709)を原稿枚数分だけ繰り返し行う。
The client dispatcher of the ECS process 124 receives the return value of the page close request function, and the thread 4 in the function return waiting state receives the return value of the page close request function via the client dispatcher. In the thread 4, the function return waiting state is thereby exited, and the processing from the page generation request function call to the page close request function call described above (step S706-).
S709) is repeated for the number of documents.

【0183】原稿の最終ページのスキャンが終了する
と、スキャナエンジンはスレッド4に対しスキャン処理
完了通知メッセージを送信する(ステップS710)。
スレッド4ではこのスキャン処理完了通知メッセージを
スキャナアプリプロセス114に対して送信し(ステッ
プS711)、さらにジョブエンド通知メッセージも送
信する(ステップS712)。
When the scanning of the last page of the document is completed, the scanner engine sends a scan processing completion notification message to the thread 4 (step S710).
The thread 4 sends this scan processing completion notification message to the scanner application process 114 (step S711), and also sends a job end notification message (step S712).

【0184】スキャナアプリプロセス114のクライア
ントディスパッチャは、スキャン処理完了通知メッセー
ジとジョブエンド通知メッセージとを順にECSプロセ
ス124から受信し、スレッド1に通知する。一方、ス
キャナアプリプロセス114のスレッド5は、MCSプ
ロセス125に対してファイル情報登録要求関数コール
を行って(ステップS713)、関数戻り待ち状態とな
る。
The client dispatcher of the scanner application process 114 sequentially receives the scan processing completion notification message and the job end notification message from the ECS process 124 and notifies the thread 1. On the other hand, the thread 5 of the scanner application process 114 makes a file information registration request function call to the MCS process 125 (step S713) and waits for a function return.

【0185】MCSプロセス125では、サーバディス
パッチャがファイル情報登録要求関数コールを受信する
と、ファイル情報登録要求関数ハンドラによって、一時
的に生成されたすべての原稿のスキャン画像が格納され
ているファイルに対し、ファイル名、格納先等のファイ
ル情報を登録し、関数戻り値をスキャナアプリプロセス
114のクライアントディスパッチャへ送信する。
In the MCS process 125, when the server dispatcher receives the file information registration request function call, the file information registration request function handler causes the file in which the scanned images of all the originals temporarily stored are stored, File information such as file name and storage location is registered, and the function return value is sent to the client dispatcher of the scanner application process 114.

【0186】スキャナアプリプロセス114のスレッド
5は、ファイル情報登録要求関数の戻り値をクライアン
トディスパッチャ経由で受信すると、MCSプロセス1
25に対しファイルクローズ要求関数コールを行って
(ステップS714)、関数戻り待ち状態となる。MC
Sプロセス125では、サーバディスパッチャでこのフ
ァイルクローズ要求関数コールを受信し、ファイルクロ
ーズ要求関数ハンドラによってスキャン画像のファイル
をクローズして関数戻り値をスキャナアプリプロセス1
14に送信する。スキャナアプリプロセス114は、こ
のファイルクローズ要求関数の戻り値を受信することに
より、スキャン処理が終了する。
When the thread 5 of the scanner application process 114 receives the return value of the file information registration request function via the client dispatcher, the MCS process 1
A file close request function call is made to 25 (step S714), and a function return waiting state is entered. MC
In S process 125, the server dispatcher receives this file close request function call, the file close request function handler closes the scan image file, and returns the function return value to the scanner application process 1
Send to 14. The scanner application process 114 receives the return value of this file close request function, and the scan process ends.

【0187】ついで、スキャナアプリプロセス114で
は、格納されているスキャン画像を読み出すため、次の
処理を行う。まず、スレッド6において、MCSプロセ
ス125に対し、スキャン画像のファイルをオープンす
るためのファイルオープン要求関数コール、作業メモリ
の確保のための作業領域確保要求関数コール、ページオ
ープン要求関数コールを順次に行う(ステップS715
〜S717)。なお、スレッド6は、上述と同様に、そ
れぞれの関数コールを行った後、関数戻り待ち状態にな
り、関数戻り値の通知により、戻り待ち状態を抜け、次
の関数コールを行う。
Next, the scanner application process 114 performs the following processing in order to read the stored scan image. First, in the thread 6, the MCS process 125 sequentially performs a file open request function call for opening a scan image file, a work area reservation request function call for securing a work memory, and a page open request function call. (Step S715
~ S717). In the same manner as described above, the thread 6 enters the function return waiting state after making each function call, exits the return waiting state by notifying the function return value, and makes the next function call.

【0188】MCSプロセス125のサーバディスパッ
チャは、スキャナアプリプロセス114のスレッド6か
らファイルオープン要求関数コール、作業領域確保要求
関数コール、ページオープン要求関数コールを順に受信
して、スキャン画像ファイルのオープン処理、作業メモ
リの確保処理、ページオープン処理をそれぞれ各関数ハ
ンドラによって行って、各関数戻り値をスキャナアプリ
プロセス114に送信する。スキャナアプリプロセス1
14では、クライアントディスパッチャによりファイル
オープン要求関数、作業領域確保要求関数、ページオー
プン要求関数の各戻り値を順に受信して、スレッド6が
クライアントディスパッチャ経由で関数戻り値を受信す
る。
The server dispatcher of the MCS process 125 sequentially receives a file open request function call, a work area reservation request function call, and a page open request function call from the thread 6 of the scanner application process 114, and performs a scan image file open process, Each function handler performs a work memory reservation process and a page open process, and sends each function return value to the scanner application process 114. Scanner application process 1
At 14, the client dispatcher sequentially receives the return values of the file open request function, the work area securing request function, and the page open request function, and the thread 6 receives the function return value via the client dispatcher.

【0189】また、スキャナアプリプロセス114で
は、スレッド7において、スキャン画像ファイルからの
画像データの読み出しのために読み出し要求関数コール
を行い(ステップS718)、スレッド7が関数戻り待
ち状態になる。さらに、スレッド8において、MCSプ
ロセス125に対しページクローズ要求関数コールを行
い(ステップS719)、スレッド8は関数戻り待ち状
態になる。
In the scanner application process 114, the thread 7 makes a read request function call to read image data from the scan image file (step S718), and the thread 7 enters the function return waiting state. Further, the thread 8 makes a page close request function call to the MCS process 125 (step S719), and the thread 8 enters the function return waiting state.

【0190】MCSプロセス125では、スレッド6か
らの要求であるページオープン処理の終了後に、スキャ
ナアプリプロセス114のスレッド7から読み出し要求
関数コールを受信し、読み出し要求関数ハンドラによっ
てスキャナ画像ファイルから画像データを読み出し、画
像データとともに関数戻り値をスキャナアプリプロセス
114へ送信する。スキャナアプリプロセス114で
は、スレッド7が読み出し要求関数の戻り値をクライア
ントディスパッチャ経由で受信することにより、関数戻
り待ち状態を抜け、次の読み出し要求関数コールを行
い、同様に関数戻り値を受信する。
The MCS process 125 receives a read request function call from the thread 7 of the scanner application process 114 after the page open processing requested by the thread 6 is completed, and the read request function handler receives the image data from the scanner image file. The function return value is read out and transmitted with the image data to the scanner application process 114. In the scanner application process 114, the thread 7 receives the return value of the read request function via the client dispatcher, exits the function return wait state, makes the next read request function call, and similarly receives the function return value.

【0191】MCSプロセス125では、スレッド7か
らの要求である最後の読み出し要求処理が終了すると、
スキャナアプリプロセス114のスレッド8から受信し
たページクローズ要求関数の関数ハンドラを起動して、
オープンしているページデータのクローズ処理を行い、
関数戻り値をスキャナアプリプロセス114へ送信す
る。スキャナアプリプロセス114では、スレッド8が
ページクローズ要求関数の戻り値をクライアントディス
パッチャ経由で受信し、関数戻り待ち状態を抜ける。こ
れにより、スレッド8では、ページ削除要求関数コー
ル、作業領域削除要求関数コール、ファイルクローズ要
求関数コール、ファイル削除要求関数コールを順に行う
(ステップS720〜S723)。
In the MCS process 125, when the last read request processing which is the request from the thread 7 is completed,
Start the function handler of the page close request function received from thread 8 of the scanner application process 114,
Close the open page data,
The function return value is sent to the scanner application process 114. In the scanner application process 114, the thread 8 receives the return value of the page close request function via the client dispatcher, and exits the function return wait state. As a result, the thread 8 sequentially executes a page delete request function call, a work area delete request function call, a file close request function call, and a file delete request function call (steps S720 to S723).

【0192】MCSプロセス125は、これらの関数コ
ールを順に受信して、受信した関数コールに対応する関
数ハンドラによってそれぞれ、ページデータの削除、作
業メモリの削除、スキャン画像ファイルのクローズ、ス
キャン画像ファイルの削除の各処理を行って、各関数戻
り値をスキャナアプリプロセス114に送信する。
The MCS process 125 receives these function calls in order, and deletes the page data, the working memory, the scan image file, and the scan image file by the function handler corresponding to the received function call. Each processing of deletion is performed, and each function return value is transmitted to the scanner application process 114.

【0193】スキャナアプリプロセス114のスレッド
8では、MCSプロセス125からの各関数戻り値をク
ライアントディスパッチャ経由で受信することにより、
スキャン画像の読み出し処理が完了する。
In the thread 8 of the scanner application process 114, each function return value from the MCS process 125 is received via the client dispatcher,
The scan image reading process is completed.

【0194】次に、実施の形態1の複合機100で行わ
れるコピー動作において、コピーアプリ112、ECS
124、MCS125、SRM123のプロセス間通信
について具体的に説明する。図9は、実施の形態1の複
合機でコピー動作を行う場合のコピーアプリ、ECS、
MCS、SRMの各プロセス間のデータシーケンスを示
す説明図である。また、図10は、各プロセス間の関数
およびメッセージの送受信の関係を示す説明図である。
Next, in the copy operation performed by the multi-function peripheral 100 according to the first embodiment, the copy application 112, the ECS
Inter-process communication of 124, MCS 125, and SRM 123 will be specifically described. FIG. 9 shows a copy application, ECS, and
It is explanatory drawing which shows the data sequence between each process of MCS and SRM. Further, FIG. 10 is an explanatory diagram showing the relationship between functions and message transmission / reception between processes.

【0195】図10に示すように、複合機100にはコ
ピーアプリプロセス112、ECSプロセス124、M
CSプロセス125およびSRMプロセス123が動作
している。これらプロセスは、複合機100の起動時に
生成される。なお、図10にはコピー動作において使用
されるプロセスのみを図示しており、実際には他のアプ
リプロセスおよび他のコントロールサービスのプロセス
も複合機の起動時に生成される。
As shown in FIG. 10, the copy machine process 112, ECS process 124, M
The CS process 125 and SRM process 123 are running. These processes are generated when the multifunction peripheral 100 is started. Note that FIG. 10 shows only the processes used in the copy operation, and actually other application processes and other control service processes are also generated when the multifunction peripheral is started.

【0196】コピーアプリプロセス112は、複合機1
00の起動時に起動され、図10に示すようにプロセス
内に複数のスレッドが起動している。コピーアプリプロ
セス112は、ECSプロセス124をサーバプロセス
としたクライアントプロセスとなっており、このためE
CSプロセス124に対するクライアントディスパッチ
ャのスレッドが起動している。
The copy application process 112 is executed by the multifunction device 1
00 is started, and a plurality of threads are started in the process as shown in FIG. The copy application process 112 is a client process that uses the ECS process 124 as a server process.
The client dispatcher thread for the CS process 124 is up.

【0197】ECSプロセス124は、コピー動作時に
は、コピーアプリプロセス112をクライアントプロセ
スとしたサーバプロセスとなるとともに、MCSプロセ
ス125およびSRMプロセス123をそれぞれサーバ
プロセスとしたクライアントプロセスとなる。このた
め、ECSプロセス124内にはコピーアプリプロセス
112に対するサーバディスパッチャのスレッドと、M
CSプロセス125に対するクライアントディスパッチ
ャのスレッドと、SRMプロセス123に対するクライ
アントディスパッチャのスレッドとその他ジョブ制御お
よびエンジン制御に関する処理を行う複数のスレッドが
動作している。
During the copy operation, the ECS process 124 serves as a server process using the copy application process 112 as a client process, and also serves as a client process using the MCS process 125 and SRM process 123 as server processes. Therefore, in the ECS process 124, the thread of the server dispatcher for the copy application process 112 and M
A thread of the client dispatcher for the CS process 125, a thread of the client dispatcher for the SRM process 123, and a plurality of other threads that perform processing related to job control and engine control are operating.

【0198】MCSプロセス125は、コピー動作時に
は、ECSプロセス124をクライアントプロセスとし
たサーバプロセスとなるとともに、SRMプロセス12
3をサーバプロセスとしたクライアントプロセスとな
る。このため、MCSプロセス125内にはECSプロ
セス124に対するサーバディスパッチャのスレッド
と、SRMプロセス123に対するクライアントディス
パッチャのスレッドと、その他メモリ制御およびハード
ディスク制御に関する種々の処理を行う複数のスレッド
が動作している。
During the copy operation, the MCS process 125 becomes a server process with the ECS process 124 as a client process, and the SRM process 12
It becomes a client process with 3 as a server process. Therefore, in the MCS process 125, a thread of the server dispatcher for the ECS process 124, a thread of the client dispatcher for the SRM process 123, and a plurality of threads for performing various processes related to memory control and hard disk control are operating.

【0199】SRMプロセス123は、ECSプロセス
124およびMCSプロセス125をクライアントプロ
セスとしたサーバプロセスとなり、このため、SRMプ
ロセス123内にはECSプロセス124およびMCS
プロセス125に対するサーバディスパッチャのスレッ
ドとその他エンジンの資源制御に関する処理を行う複数
のスレッドが動作している。
The SRM process 123 becomes a server process with the ECS process 124 and the MCS process 125 as client processes. Therefore, the SRM process 123 contains the ECS process 124 and MCS.
A thread of the server dispatcher for the process 125 and a plurality of threads that perform processing related to resource control of the engine are operating.

【0200】実施の形態1におけるコピーアプリプロセ
ス112では、コピー時におけるジョブオープン要求関
数コールとジョブ動作モード設定関数コールとジョブス
タート要求関数コールを行う一連の処理、ジョブクロー
ズ要求関数コールを行う処理をそれぞれ一スレッドとし
ている。
In the copy application process 112 according to the first embodiment, a series of processes for performing a job open request function call, a job operation mode setting function call and a job start request function call at the time of copying, and a process for performing a job close request function call are performed. Each has one thread.

【0201】ECSプロセス124では、メモリ確保要
求関数コールを行う処理、資源獲得要求関数コールを行
う処理、原稿フィードイン処理をそれぞれ一スレッドと
している。MCSプロセス125では、メモリ取得要求
関数コールを行う処理を一スレッドとしている。なお、
コピー動作時においても、これら各スレッドにおける処
理は一例であり、各プログラムで任意に定めることがで
きる。
In the ECS process 124, one thread is used for the memory reservation request function call, one is for the resource acquisition request function call, and the other is the manuscript feed-in processing. In the MCS process 125, the process of making a memory acquisition request function call is one thread. In addition,
Even in the copy operation, the processing in each thread is an example, and can be arbitrarily set in each program.

【0202】コピー要求があると、コピーアプリプロセ
ス112は、新たなコピージョブを生成し、スレッド1
においてECSプロセス124に対してジョブオープン
要求関数コールを行う(ステップS901)。これによ
り、スレッド1は関数戻り待ち状態となり、クライアン
トディスパッチャによってスレッド1の識別子(スレッ
ドID)が呼び出したジョブオープン要求関数の関数I
Dとともに関数戻り待ちキューに登録される。
When there is a copy request, the copy application process 112 creates a new copy job, and the thread 1
In step S901, a job open request function call is made to the ECS process 124 (step S901). As a result, the thread 1 waits for a function return, and the function I of the job open request function called by the identifier (thread ID) of the thread 1 by the client dispatcher.
It is registered in the function return waiting queue together with D.

【0203】ECSプロセス124では、サーバディス
パッチャがコピーアプリプロセス112からジョブオー
プン要求関数コールを受信して、ジョブオープン要求関
数ハンドラをサーバディスパッチャのスレッド上で起動
する。そして、ジョブオープン要求関数ハンドラにより
コピージョブをオープンして、関数戻り値をコピーアプ
リプロセス112のクライアントディスパッチャへ送信
する。
In the ECS process 124, the server dispatcher receives the job open request function call from the copy application process 112 and activates the job open request function handler on the thread of the server dispatcher. Then, the copy job is opened by the job open request function handler, and the function return value is transmitted to the client dispatcher of the copy application process 112.

【0204】コピーアプリプロセス112のクライアン
トディスパッチャは、ECSプロセス124からジョブ
オープン要求関数の戻り値を受信し、関数戻り値待ちキ
ューから関数戻り待ち状態のスレッドを検索する。そし
て、検索されたスレッド1にジョブオープン要求関数の
戻り値を送信する。
The client dispatcher of the copy application process 112 receives the return value of the job open request function from the ECS process 124, and searches the function return value waiting queue for a thread in the function return waiting state. Then, the return value of the job open request function is transmitted to the retrieved thread 1.

【0205】スレッド1は、クライアントディスパッチ
ャからジョブオープン要求関数の戻り値を受信すると、
戻り待ち状態を抜け、ジョブ動作モードの設定を行うた
め、ECSプロセス124に対しジョブ動作モード設定
関数コールを行い(ステップS902)、関数戻り待ち
状態となる。
When thread 1 receives the return value of the job open request function from the client dispatcher,
To exit the return wait state and set the job operation mode, a job operation mode setting function call is made to the ECS process 124 (step S902), and the function return wait state is entered.

【0206】一方、スレッド2はジョブスタート要求関
数コールをECSプロセス124に対して行い(ステッ
プS903)、関数戻り待ち状態となる。この時点で
は、関数戻り待ちキューにはスレッド1の識別子(スレ
ッドID)がジョブ動作モード設定関数の関数IDとと
もに登録され、またスレッド2の識別子(スレッドI
D)がジョブスタート要求関数の関数IDとともにクラ
イアントディスパッチャにより登録される。
On the other hand, the thread 2 makes a job start request function call to the ECS process 124 (step S903) and enters a function return waiting state. At this point, the identifier of thread 1 (thread ID) is registered in the function return waiting queue together with the function ID of the job operation mode setting function, and the identifier of thread 2 (thread I) is registered.
D) is registered by the client dispatcher with the function ID of the job start request function.

【0207】ECSプロセス124では、サーバディス
パッチャがコピーアプリプロセス112からジョブ動作
モード設定関数コールを受信して、ジョブ動作モード設
定関数ハンドラによってコピージョブに上述のジョブ動
作モードを設定して関数戻り値をコピーアプリプロセス
112のクライアントディスパッチャへ送信する。ま
た、サーバディスパッチャはジョブスタート要求関数コ
ールを受信して、ジョブスタート要求関数ハンドラによ
ってジョブの開始処理を行って関数戻り値をコピーアプ
リプロセス112のクライアントディスパッチャへ送信
する。
In the ECS process 124, the server dispatcher receives the job operation mode setting function call from the copy application process 112, sets the above-mentioned job operation mode in the copy job by the job operation mode setting function handler, and returns the function return value. Send to the client dispatcher of the copy application process 112. Further, the server dispatcher receives the job start request function call, performs job start processing by the job start request function handler, and sends the function return value to the client dispatcher of the copy application process 112.

【0208】コピーアプリプロセス112のクライアン
トディスパッチャは、ECSプロセス124からジョブ
動作モード設定関数とジョブスタート要求関数の戻り値
をそれぞれ受信し、スレッド1がクライアントディスパ
ッチャ経由でジョブ動作モード設定関数の戻り値を受信
し、スレッド2もクライアントディスパッチャ経由でジ
ョブスタート要求関数の戻り値を受信する。
The client dispatcher of the copy application process 112 receives the return values of the job operation mode setting function and the job start request function from the ECS process 124, and the thread 1 receives the return values of the job operation mode setting function via the client dispatcher. The thread 2 also receives the return value of the job start request function via the client dispatcher.

【0209】ECSプロセス124では、ジョブスター
ト要求関数の戻り値をコピーアプリプロセス112に送
信すると、つぎにスキャン画像を格納するためのメモリ
を確保するために、スレッド3においてMCSプロセス
125に対し必要なサイズを指定したメモリ確保要求関
数コールを行い(ステップS904)、関数戻り待ち状
態となる。また、これと並行してスレッド4において、
スキャナエンジンとプリンタエンジンの資源獲得のた
め、SRMプロセス123に対して資源獲得要求関数コ
ールを行い(ステップS906)、関数戻り待ち状態と
なる。
When the ECS process 124 sends the return value of the job start request function to the copy application process 112, it is necessary for the MCS process 125 in the thread 3 to secure the memory for storing the scanned image. A memory reservation request function call specifying the size is performed (step S904), and a function return waiting state is entered. In parallel with this, in thread 4,
In order to acquire the resources of the scanner engine and the printer engine, a resource acquisition request function call is made to the SRM process 123 (step S906), and the function return waiting state is entered.

【0210】MCSプロセス125では、サーバディス
パッチャがメモリ確保要求関数コールを受信すると、メ
モリ確保要求関数ハンドラによって指定されたサイズの
メモリ上の領域を確保し、関数戻り値をECSプロセス
124に送信する。一方、SRMプロセス123では、
サーバディスパッチャが資源獲得要求関数コールを受信
して資源獲得要求関数ハンドラにより、スキャナエンジ
ンとプリンタエンジンとを占有し、関数戻り値をECS
プロセス124へ送信する。
In the MCS process 125, when the server dispatcher receives the memory reservation request function call, it reserves the memory area of the size specified by the memory reservation request function handler and sends the function return value to the ECS process 124. On the other hand, in the SRM process 123,
The server dispatcher receives the resource acquisition request function call, the resource acquisition request function handler occupies the scanner engine and the printer engine, and returns the function return value to the ECS.
Send to process 124.

【0211】ECSプロセス124のクライアントディ
スパッチャは、MCSプロセス125からメモリ確保要
求関数の戻り値を受信するとともに、SRMプロセス1
23から資源獲得要求関数の戻り値を受信する。そし
て、スレッド3はクライアントディスパッチャ経由でメ
モリ確保要求関数の戻り値を受信し、スレッド4もクラ
イアントディスパッチャ経由で資源獲得要求関数の戻り
値を受信する。これにより、スレッド3とスレッド4は
関数戻り待ち状態を抜ける。
The client dispatcher of the ECS process 124 receives the return value of the memory allocation request function from the MCS process 125 and, at the same time, receives the SRM process 1
23, the return value of the resource acquisition request function is received. Then, the thread 3 receives the return value of the memory allocation request function via the client dispatcher, and the thread 4 also receives the return value of the resource acquisition request function via the client dispatcher. As a result, the threads 3 and 4 exit the function return wait state.

【0212】資源獲得要求関数の戻り値を受信してスキ
ャナエンジンとプリンタエンジンとをコピージョブで占
有すると、ECSプロセス124では、スレッド5にお
いてスキャナエンジンに対して原稿フィードインを行い
(ステップS907)、これによりコピー動作の原稿ス
キャン処理を開始する。
When the return value of the resource acquisition request function is received and the scanner engine and the printer engine are occupied by the copy job, the ECS process 124 performs the document feed-in to the scanner engine in the thread 5 (step S907). This starts the document scanning process of the copy operation.

【0213】スキャナエンジンでは原稿のスキャン処理
が終了するとスキャン終了通知メッセージをECSプロ
セス124のスレッド5に送信し(ステップS90
8)、プリンタエンジンによってスキャン画像のプリン
ト処理を開始する。そして、プリンタエンジンではスキ
ャン画像のプリント処理が終了すると、ECSプロセス
124のスレッド5に印刷終了通知メッセージを送信す
る(ステップS910)。
When the scanner engine completes the document scanning process, it sends a scan end notification message to the thread 5 of the ECS process 124 (step S90).
8) The printer engine starts print processing of the scanned image. Then, when the print processing of the scanned image ends in the printer engine, the print end notification message is transmitted to the thread 5 of the ECS process 124 (step S910).

【0214】ECSプロセス124では、スレッド5が
スキャナエンジンからスキャン終了通知メッセージを受
信すると、コピーアプリプロセス112に対しスキャン
終了の旨のジョブエンド通知メッセージを送信する(ス
テップS909)。また、スレッド5がプリンタエンジ
ンから印刷終了通知メッセージを受信すると、コピーア
プリプロセス112に対し印刷終了の旨のジョブエンド
通知メッセージを送信する(ステップS911)。
In the ECS process 124, when the thread 5 receives the scan end notification message from the scanner engine, it sends the scan end notification message to the copy application process 112 (step S909). When the thread 5 receives the print end notification message from the printer engine, the thread 5 sends a job end notification message indicating the end of printing to the copy application process 112 (step S911).

【0215】コピーアプリプロセス112では、クライ
アントディスパッチャが2つのジョブエンド通知メッセ
ージを受信して、メッセージハンドラを起動してスレッ
ド2に各ジョブエンド通知メッセージを通知する。これ
により、原稿1ページ分のコピー動作が完了する。
In the copy application process 112, the client dispatcher receives two job end notification messages and activates the message handler to notify thread 2 of each job end notification message. As a result, the copy operation for one page of the document is completed.

【0216】複数枚の原稿のコピーを行う場合には、さ
らにECSプロセス124に対しジョブスタート要求関
数コールを行うと(ステップS912)、上述と同様の
動作がECSプロセス124、MCSプロセス125、
SRMプロセス123、スキャナエンジンおよびプリン
タエンジンで行われる(ステップS913〜S91
6)。すべての原稿のコピーが終了し、コピーアプリプ
ロセス112が最後のジョブエンド通知メッセージを受
信すると(ステップS917)、スレッド1はECSプ
ロセス124に対しジョブクローズ要求関数コールを行
う(ステップS918)。
When a plurality of originals are to be copied, a job start request function call is further made to the ECS process 124 (step S912), and the same operations as above are performed by the ECS process 124, MCS process 125, and
This is performed by the SRM process 123, the scanner engine, and the printer engine (steps S913 to S91).
6). When the copy application process 112 receives the final job end notification message (step S917) after copying all the originals, the thread 1 makes a job close request function call to the ECS process 124 (step S918).

【0217】ECSプロセス124では、サーバディス
パッチャによりこのジョブクローズ要求関数コールを受
信してジョブクローズ要求関数ハンドラによってオープ
ン状態にあるコピージョブをクローズし、その関数戻り
値をコピーアプリプロセス112に送信する。
In the ECS process 124, the server dispatcher receives this job close request function call, the job close request function handler closes the copy job in the open state, and sends the function return value to the copy application process 112.

【0218】コピーアプリプロセス112では、クライ
アントディスパッチャによって、ジョブクローズ要求関
数の戻り値を受信し、戻り待ち状態となっているスレッ
ド2がクライアントディスパッチャ経由でジョブクロー
ズ要求関数の戻り値を受信し、コピー動作が完了する。
In the copy application process 112, the client dispatcher receives the return value of the job close request function, and the thread 2 in the return waiting state receives the return value of the job close request function via the client dispatcher and copies it. The operation is completed.

【0219】ここで、上述したコピー動作中に、スキャ
ン要求をスキャナアプリプロセス114が受信した場合
には、次のような処理が行われる。たとえば、コピー動
作においてECSプロセス124からSRMプロセス1
23に対しスキャナエンジンとプリンタエンジンの資源
獲得要求関数コールを行った後に、スキャナアプリプロ
セス114にスキャン要求があった場合を考える。
When the scanner application process 114 receives a scan request during the above-described copy operation, the following processing is performed. For example, in a copy operation, ECS process 124 to SRM process 1
Consider a case in which the scanner application process 114 receives a scan request after the scanner engine and printer engine resource acquisition request function calls have been made to 23.

【0220】この場合、上述した図7におけるスキャナ
動作において、ECSプロセス124からSRMプロセ
ス123に対しスキャナエンジンの資源獲得要求関数コ
ールが行われるが、スキャナエンジンがコピージョブで
占有されているため、スキャナジョブで獲得することが
できない。
In this case, in the above-described scanner operation in FIG. 7, the ECS process 124 calls the resource acquisition request function function of the scanner engine to the SRM process 123, but since the scanner engine is occupied by the copy job, the scanner engine is occupied. Cannot be earned in a job.

【0221】このためスキャナジョブでは資源獲得要求
関数の戻り値のECSプロセス124に対する送信を、
コピージョブが完了し、スキャナエンジンが解放された
後で行う。この間、スキャナジョブにおいて資源獲得要
求関数コールを行ったスレッドは、関数戻り待ち状態と
なって待機していることになり、スキャナ動作がコピー
動作完了まで中断されることになる。また、コピー動作
中に、コピージョブでプリンタエンジンの占有がされた
後に、プリンタアプリプロセス111にプリント要求が
あった場合にも、同様に、コピー動作完了までプリント
動作は中断されることになる。
Therefore, in the scanner job, the return value of the resource acquisition request function is sent to the ECS process 124.
Do this after the copy job is complete and the scanner engine is released. During this time, the thread that has executed the resource acquisition request function call in the scanner job is in a function return waiting state and is waiting, and the scanner operation is suspended until the copy operation is completed. Also, during the copy operation, if the printer application process 111 receives a print request after the printer engine is occupied by the copy job, the print operation is similarly suspended until the copy operation is completed.

【0222】なお、コピー動作中のスキャナ動作につい
て、スキャナジョブでスキャナエンジンの獲得ができな
い場合の例をあげて説明したが、この他、スキャナジョ
ブにおいてECSプロセス124からMCSプロセス1
25に対し、ページ生成要求関数コールを行ったとき
に、コピージョブにおいてメモリ使用中のため、メモリ
不足でぺージ生成をできないような場合にも、ページ生
成要求関数コールを行ったスレッドが関数戻り待ち状態
となって、コピー動作完了までスキャナ動作が中断す
る。
The scanner operation during the copy operation has been described by taking the case where the scanner job cannot be acquired by the scanner job. In addition, the ECS process 124 to the MCS process 1 in the scanner job.
On the other hand, when the page generation request function call is made, the thread that made the page generation request function call returns the function even if the page cannot be generated due to insufficient memory in the copy job. The scanner operation is suspended until the copy operation is completed.

【0223】次に、実施の形態1の複合機で行われるフ
ァクシミリ送信動作において、ファックスアプリ11
3、FCS127、ECS124、MCS125、SR
M123のプロセス間通信について具体的に説明する。
図11は、実施の形態1の複合機でコピー動作を行う場
合のファックスアプリ、FCS、ECS、MCS、SR
Mの各プロセス間のデータシーケンスを示す説明図であ
る。また、図12は、各プロセス間の関数およびメッセ
ージの送受信の関係を示す説明図である。
Next, in the facsimile transmission operation performed by the multifunction machine of the first embodiment, the fax application 11
3, FCS127, ECS124, MCS125, SR
The inter-process communication of M123 will be specifically described.
FIG. 11 shows a fax application, FCS, ECS, MCS, SR for performing a copy operation in the multifunction machine of the first embodiment.
It is explanatory drawing which shows the data sequence between each process of M. Further, FIG. 12 is an explanatory diagram showing the relationship between functions and message transmission / reception between processes.

【0224】図12に示すように、複合機100にはフ
ァックスアプリプロセス113、FCSプロセス12
7、FCUHプロセス129、ECSプロセス124、
MCSプロセス125およびSRMプロセス123が動
作している。これらプロセスは、複合機100の起動時
に生成されるようになっている。なお、図12にはファ
ックス送信動作において使用されるプロセスのみを図示
しており、実際には他のアプリプロセスおよび他のコン
トロールサービスのプロセスも複合機の起動時に生成さ
れる。
As shown in FIG. 12, the multifunction peripheral 100 includes a fax application process 113 and an FCS process 12.
7, FCUH process 129, ECS process 124,
The MCS process 125 and SRM process 123 are running. These processes are generated when the multifunction peripheral 100 is started. Note that FIG. 12 shows only the processes used in the fax transmission operation, and in fact, other application processes and other control service processes are also generated when the multifunction peripheral is activated.

【0225】ファックスアプリプロセス113は、複合
機100の起動時に起動され、図12に示すようにプロ
セス内に複数のスレッドが起動している。ファックスア
プリプロセス113は、FCSプロセス127をサーバ
プロセスとしたクライアントプロセスとなっており、こ
のためFCSプロセス127に対するクライアントディ
スパッチャのスレッドが起動している。
The fax application process 113 is activated when the multifunction peripheral 100 is activated, and a plurality of threads are activated in the process as shown in FIG. The fax application process 113 is a client process in which the FCS process 127 is a server process, and therefore the thread of the client dispatcher for the FCS process 127 is activated.

【0226】FCSプロセス127は、ファクシミリ送
信動作時には、ファックスアプリプロセス113をクラ
イアントプロセスとしたサーバプロセスとなるととも
に、ECSプロセス124およびFCUHプロセス12
9をサーバプロセスとしたクライアントプロセスとな
る。このため、FCSプロセス127内にはファックス
アプリプロセス113に対するサーバディスパッチャの
スレッドと、ECSプロセス124に対するクライアン
トディスパッチャのスレッドと、FCUSプロセス12
9に対するクライアントディスパッチャのスレッドと、
その他ファクシミリ通信制御に関する処理を行う複数の
スレッドが動作している。
During the facsimile transmission operation, the FCS process 127 serves as a server process with the fax application process 113 as a client process, and the ECS process 124 and FCUH process 12
It becomes a client process with 9 as a server process. Therefore, in the FCS process 127, the server dispatcher thread for the fax application process 113, the client dispatcher thread for the ECS process 124, and the FCUS process 12
Client dispatcher thread for 9 and
In addition, a plurality of threads that perform processing related to facsimile communication control are operating.

【0227】FCUHプロセス129は、FCSプロセ
ス127のサブプロセスであり、ファクシミリ送信動作
時に、SRMプロセス123およびFCS127をクラ
イアントプロセスとしたサーバプロセスとなる。このた
め、FCUHプロセス129内にはSRMプロセス12
3およびFCS127に対するサーバディスパッチャの
スレッドと、その他ファクシミリデバイスドライバに対
する指令などの処理を行う複数のスレッドが動作してい
る。
The FCUH process 129 is a sub process of the FCS process 127, and is a server process in which the SRM process 123 and the FCS 127 are client processes during a facsimile transmission operation. Therefore, in the FCUH process 129, the SRM process 12
3 and the server dispatcher thread for the FCS 127, and a plurality of threads for performing processing such as commands to the facsimile device driver.

【0228】ECSプロセス124は、ファクシミリ送
信動作時には、FCSプロセス127をクライアントプ
ロセスとしたサーバプロセスとなるとともに、MCSプ
ロセス125およびSRMプロセス123をそれぞれサ
ーバプロセスとしたクライアントプロセスとなる。この
ため、ECSプロセス124内にはFCSプロセス12
7に対するサーバディスパッチャのスレッドと、MCS
プロセス125に対するクライアントディスパッチャの
スレッドと、SRMプロセス123に対するクライアン
トディスパッチャのスレッドとその他ジョブ制御および
エンジン制御に関する処理を行う複数のスレッドが動作
している。
During the facsimile transmission operation, the ECS process 124 serves as a server process using the FCS process 127 as a client process, and also serves as a client process using the MCS process 125 and the SRM process 123 as server processes. Therefore, the FCS process 12 is included in the ECS process 124.
Server dispatcher thread for 7 and MCS
A thread of the client dispatcher for the process 125, a thread of the client dispatcher for the SRM process 123, and a plurality of other threads that perform processing related to job control and engine control are operating.

【0229】MCSプロセス125は、ファクシミリ送
信動作時には、ECSプロセス124をクライアントプ
ロセスとしたサーバプロセスとなるとともに、SRMプ
ロセス123をサーバプロセスとしたクライアントプロ
セスとなる。このため、MCSプロセス125内にはE
CSプロセス124に対するサーバディスパッチャのス
レッドと、SRMプロセス123に対するクライアント
ディスパッチャのスレッドと、その他メモリ制御および
ハードディスク制御に関する処理を行う複数のスレッド
が動作している。
During the facsimile transmission operation, the MCS process 125 serves as a server process using the ECS process 124 as a client process and also serves as a client process using the SRM process 123 as a server process. Therefore, in the MCS process 125, E
A thread of the server dispatcher for the CS process 124, a thread of the client dispatcher for the SRM process 123, and a plurality of other threads that perform processing related to memory control and hard disk control are operating.

【0230】SRMプロセス123は、ECSプロセス
124およびMCSプロセス125をクライアントプロ
セスとしたサーバプロセスとなるとともに、FCUHプ
ロセス129をサーバプロセスとしたクライアントプロ
セスとなる。このため、SRMプロセス123内にはE
CSプロセス124およびMCSプロセス125に対す
るサーバディスパッチャのスレッドと、FCUHプロセ
ス129をサーバプロセスとしたクライアントディスパ
ッチャと、その他エンジン資源制御に関する処理を行う
複数のスレッドが動作している。
The SRM process 123 serves as a server process using the ECS process 124 and the MCS process 125 as client processes, and also serves as a client process using the FCUH process 129 as a server process. Therefore, in the SRM process 123, E
A thread of a server dispatcher for the CS process 124 and the MCS process 125, a client dispatcher using the FCUH process 129 as a server process, and a plurality of other threads that perform processing related to engine resource control are operating.

【0231】実施の形態1におけるファックスアプリ1
13では、送信スタート要求関数コールを行う処理、送
信モード変更要求を行う処理をそれぞれ一スレッドとし
ている。FSCプロセス127では、ファックス送信動
作時におけるジョブ動作モード設定関数コールとジョブ
スタート要求関数コールを行う一連の処理、スキャンパ
ラメータ要求メッセージを受信してスキャンパラメータ
を送信する処理、EOM(次ページ有り),EOF(次
ページ無し)などの次ページ情報メッセージを通知する
処理をそれぞれ一スレッドとしている。
Fax application 1 in the first embodiment
In 13, the processing for making a transmission start request function call and the processing for making a transmission mode change request are each one thread. In the FSC process 127, a series of processes for performing a job operation mode setting function call and a job start request function call during a fax transmission operation, a process for receiving a scan parameter request message and transmitting a scan parameter, EOM (there is a next page), The processing of notifying the next page information message such as EOF (no next page) is set as one thread.

【0232】ECSプロセス124では、メモリ確保要
求関数コールと資源獲得要求関数コールを行う一連の処
理、スキャン・フィードインプロセス生成指示メッセー
ジを送信する処理をそれぞれ一スレッドとしている。M
CSプロセス125では、メモリ確保要求関数コールを
行う処理、その他メッセージを送信する処理を一スレッ
ドとしている。
The ECS process 124 has one thread for each of a series of processes for executing a memory reservation request function call and a resource acquisition request function call, and a process for transmitting a scan / feed-in process generation instruction message. M
In the CS process 125, the process of calling the memory reservation request function and the process of transmitting other messages are one thread.

【0233】SRMプロセス123では、フィードスタ
ートメッセージとフィードイン終了メッセージとスタン
プ実行指示メッセージを送信する一連の処理、スキャン
・フィードインプロセス実行処理をそれぞれ一スレッド
としている。FCUH129では、EOM,EOFなど
の次ページ情報メッセージを送信する処理を一スレッド
としている。なお、ファクシミリ送信動作時において
も、これら各スレッドにおける処理は一例であり、各プ
ログラムで任意に定めることができる。
In the SRM process 123, a series of processes for transmitting a feed start message, a feed-in end message, and a stamp execution instruction message, and a scan / feed-in process execution process are provided as one thread. In FCUH129, the processing for transmitting the next page information message such as EOM and EOF is one thread. It should be noted that even in the facsimile transmission operation, the processing in each of these threads is an example, and can be arbitrarily set in each program.

【0234】ファクシミリ送信要求があると、ファック
スアプリプロセス113は、新たなファクシミリ送信ジ
ョブを生成し、スレッド1からFCSプロセス127に
対して送信スタート要求関数コールを行い(ステップS
1101)、スレッド1が関数戻り待ち状態となる。F
CSプロセス127では、サーバディスパッチャがファ
ックスアプリプロセス113から送信スタート要求関数
コールを受信して、送信スタート要求関数ハンドラを起
動し、送信スタート要求関数ハンドラのスレッド3によ
ってMCSプロセス125に対してジョブ動作モード設
定要求関数コールを行い(ステップS1102)、スレ
ッド3が関数戻り待ち状態となる。
When there is a facsimile transmission request, the fax application process 113 creates a new facsimile transmission job and makes a transmission start request function call from thread 1 to the FCS process 127 (step S
1101), the thread 1 enters the function return waiting state. F
In the CS process 127, the server dispatcher receives the transmission start request function call from the fax application process 113, activates the transmission start request function handler, and the thread 3 of the transmission start request function handler causes the MCS process 125 to execute the job operation mode. A setting request function call is made (step S1102), and the thread 3 enters a function return waiting state.

【0235】ECSプロセス124では、サーバディス
パッチャがFCSプロセス127からジョブ動作モード
設定要求関数コールを受信して、ジョブ動作モード設定
要求関数ハンドラによってファクシミリ送信ジョブに上
述の動作モードを設定して関数戻り値をFCSプロセス
127のクライアントディスパッチャへ送信する。
In the ECS process 124, the server dispatcher receives the job operation mode setting request function call from the FCS process 127, sets the above operation mode in the facsimile transmission job by the job operation mode setting request function handler, and returns the function. To the client dispatcher of FCS process 127.

【0236】FCSプロセス127のクライアントディ
スパッチャは、ECSプロセス124からジョブ動作モ
ード設定要求関数の戻り値を受信し、スレッド3はクラ
イアントディスパッチャ経由でこの戻り値を受信する。
これにより、スレッド3は関数戻り待ち状態を抜け、つ
いでECSプロセス124に対しジョブスタート要求関
数コールを行い(ステップS1103)、スレッド3は
関数戻り待ち状態となる。
The client dispatcher of the FCS process 127 receives the return value of the job operation mode setting request function from the ECS process 124, and the thread 3 receives this return value via the client dispatcher.
As a result, the thread 3 exits the function return waiting state, then makes a job start request function call to the ECS process 124 (step S1103), and the thread 3 enters the function return waiting state.

【0237】このジョブスタート要求関数コールを受信
したMCSプロセス125は、ジョブスタート要求関数
ハンドラによって、MCS125に対しメモリ確保要求
関数コールを行い(ステップS1104)、SRMプロ
セス123に対し資源獲得要求関数コールを行う(ステ
ップS1106)。これらの関数コールを受信したMC
Sプロセス125、SRMプロセス123の処理および
ECSプロセス124における各関数の戻り値の受信に
伴う処理は、コピー動作時の処理と同様であるので説明
を省略する。
Upon receiving the job start request function call, the MCS process 125 calls the memory reservation request function call to the MCS 125 by the job start request function handler (step S1104) and makes the resource acquisition request function call to the SRM process 123. Perform (step S1106). MC that received these function calls
The processing of the S process 125 and the SRM process 123 and the processing associated with the reception of the return value of each function in the ECS process 124 are the same as the processing during the copy operation, and thus the description thereof is omitted.

【0238】ECSプロセス124では、スキャナエン
ジンの資源獲得関数の戻り値を受信したら、スレッド7
においてFCSプロセス127に対しスキャナパラメー
タ確定要求メッセージを送信する(ステップS110
7)。ここで、スキャナパラメータとは、たとえばファ
イン、ノーマルなどのスキャン濃度や原稿サイズ等であ
る。FCSプロセス127では、このスキャナパラメー
タ確定要求メッセージを受信すると、スレッド4におい
てスキャナパラメータをECSプロセス124に対して
メッセージとして送信する(ステップS1108)。
In the ECS process 124, when the return value of the resource acquisition function of the scanner engine is received, the thread 7
In step S110, a scanner parameter confirmation request message is transmitted to the FCS process 127.
7). Here, the scanner parameters are, for example, scan density such as fine and normal, document size, and the like. Upon receiving this scanner parameter confirmation request message, the FCS process 127 transmits the scanner parameter as a message to the ECS process 124 in the thread 4 (step S1108).

【0239】ECSプロセス124では、スキャナパラ
メータメッセージをサーバディスパッチャが受信して、
スキャンパラメータ確定要求メッセージを送信したスレ
ッド7に通知し、スレッド7はSRMプロセス123に
対してスキャン・フィードインプロセスの生成指示メッ
セージを送信する(ステップS1109)。SRMプロ
セス123は、スキャン・フィードインプロセスの生成
指示メッセージを受信すると、スレッド11によりスキ
ャン・フィードインプロセスを生成して実行させる(ス
テップS1110)。
In the ECS process 124, the server dispatcher receives the scanner parameter message,
The thread 7 that has transmitted the scan parameter confirmation request message is notified, and the thread 7 transmits a scan / feed-in process generation instruction message to the SRM process 123 (step S1109). Upon receiving the scan / feed-in process generation instruction message, the SRM process 123 causes the thread 11 to generate and execute the scan / feed-in process (step S1110).

【0240】ついでFCUHプロセス129に対して原
稿のフィードインスタートメッセージを送信する(ステ
ップS1111)。FCUHプロセス129がフィード
インスタートメッセージを受信して、原稿フィードイン
が開始され、これにより原稿のスキャンおよび指定宛先
への送信が開始する。
Then, a document feed-in start message is transmitted to the FCUH process 129 (step S1111). The FCUH process 129 receives the feed-in start message to start the document feed-in, which starts scanning the document and transmitting it to the designated destination.

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

【0242】ECSプロセス124は、受信したスキャ
ン終了メッセージを次ページ原稿有の旨とともにFCS
プロセス127へ送信する(ステップS1114)。一
方、原稿スキャンが終了すると、SRMプロセス123
はFCUHプロセス129に対してフィードイン終了を
指示し(ステップS1115)、これにより原稿フィー
ドインが終了する。
The ECS process 124 sends the received scan end message to the FCS with the fact that the next page original is present.
It is transmitted to the process 127 (step S1114). On the other hand, when the document scanning ends, the SRM process 123
Instructs the FCUH process 129 to end the feed-in (step S1115), whereby the document feed-in ends.

【0243】ここで、ファックスアプリプロセス113
がFCSプロセス127に対して送信モード変更要求関
数コールを行った場合には(ステップS1105)、E
CSプロセス124は、スレッド6においてスキャンパ
ラメータ確定要求メッセージをFCSプロセス127に
対して送信し、これに対し上述のようにFCSプロセス
127は、スキャンパラメータメッセージをECSプロ
セス124に送信する(ステップS1118)。ECS
プロセス124では、スキャンパラメータメッセージを
受信すると、次ページ目のスキャン・フィードインプロ
セスの実行をSRMプロセス123に指示して、実行が
開始する(ステップS1119、S1120)。
Here, the fax application process 113
Makes a transmission mode change request function call to the FCS process 127 (step S1105), E
The CS process 124 sends a scan parameter confirmation request message to the FCS process 127 in the thread 6, while the FCS process 127 sends a scan parameter message to the ECS process 124 as described above (step S1118). ECS
In the process 124, when the scan parameter message is received, the SRM process 123 is instructed to execute the scan feed-in process of the next page, and the execution is started (steps S1119 and S1120).

【0244】一方、1ページの指定宛先へのファクシミ
リ送信が完了すると、FCSプロセス127は、スレッ
ド5においてEOMメッセージ(異なる送信モードで次
ページ有り)をFCUHプロセス129へ送信し(ステ
ップS1121)、これを受信したFCUHプロセス1
29はスレッド13によりEOMを指定宛先へ送信する
(ステップS1122)。
On the other hand, when the facsimile transmission to the designated destination of one page is completed, the FCS process 127 transmits the EOM message (there is the next page in a different transmission mode) in the thread 5 to the FCUH process 129 (step S1121). Received FCUH process 1
29 transmits the EOM to the designated destination by the thread 13 (step S1122).

【0245】FCUHプロセス129が指定宛先から受
信正常の通知を受けた場合には(ステップS112
3)、SRMプロセス123に対して送信成功メッセー
ジを送信し(ステップS1124)、これを受信したS
RMプロセス123はECSプロセス124に対してプ
ロセス正常終了メッセージを送信する(ステップS11
25)。さらにこれを受信したECSプロセス124は
FCSプロセス127に対し1ページ目のスキャン処理
完了通知メッセージを送信する(ステップS112
6)。そして、送信成功メッセージを受信したSRMプ
ロセス123は指示により、送信日時、発信元等のスタ
ンプを指定宛先へ送信する旨をスキャナエンジンに指示
する(ステップS1127)。
When the FCUH process 129 receives the notification of the normal reception from the designated destination (step S112)
3), the transmission success message is transmitted to the SRM process 123 (step S1124), and the message S is received.
The RM process 123 sends a process normal termination message to the ECS process 124 (step S11).
25). Further, the ECS process 124 that has received this transmits a scan processing completion notification message for the first page to the FCS process 127 (step S112).
6). Then, the SRM process 123, which has received the transmission success message, instructs the scanner engine to transmit the stamps such as the transmission date and time and the transmission source to the designated destination according to the instruction (step S1127).

【0246】SRMプロセス123は、2ページ目の原
稿のフィードインを開始するため、FCUHプロセス1
29に対して原稿のフィードインスタートメッセージを
送信する(ステップS1128)。FCUHプロセス1
29はフィードインスタートメッセージを受信して、原
稿フィードインが開始され、これにより2ページ目の原
稿のスキャンおよび指定宛先への送信が開始する。
Since the SRM process 123 starts the feed-in of the second page of the document, the FCUH process 1
A document feed-in start message is transmitted to 29 (step S1128). FCUH process 1
29 receives the feed-in start message and starts the document feed-in, whereby the scanning of the second page of the document and the transmission to the designated destination are started.

【0247】原稿のスキャンが開始されると、次ページ
原稿有無通知メッセージがスキャナエンジンからECS
プロセスに対して送信され、図11の例では、次ページ
原稿有無通知メッセージが通知され、ECSプロセス1
24のスレッド9に通知されている(ステップS112
9)。そして、原稿のスキャンが終了すると、スキャナ
エンジンからECSプロセス124に対してスキャン終
了メッセージが送信される(ステップS1130)。
When the document scanning is started, the next page document presence / absence notification message is sent from the scanner engine to ECS.
11 is sent to the process, and in the example of FIG.
24 threads 9 have been notified (step S112).
9). When the scanning of the document is completed, the scanner engine sends a scan completion message to the ECS process 124 (step S1130).

【0248】ECSプロセス124のスレッド9は、受
信したスキャン終了メッセージを次ページ原稿無の旨と
ともにFCSプロセス127へ送信する(ステップS1
131)。一方、スキャンが終了すると、SRMプロセ
ス123ではスレッド13がFCUHプロセス129に
対してフィードイン終了を指示し(ステップS113
2)、これにより原稿フィードインが終了する。
The thread 9 of the ECS process 124 sends the received scan end message to the FCS process 127 together with the fact that there is no original on the next page (step S1).
131). On the other hand, when the scan ends, the thread 13 in the SRM process 123 instructs the FCUH process 129 to end the feed-in (step S113).
2) Then, the document feed-in ends.

【0249】2ページの指定宛先へのファクシミリ送信
が完了すると、FCSプロセス127では、スレッド5
がEOFメッセージ(次ページ無し)をFCUHプロセ
ス129へ送信し(ステップS1124)、これを受信
したFCUHプロセス129はスレッド13によりEO
Fを指定宛先へ送信する。
When the facsimile transmission to the designated destination of page 2 is completed, in the FCS process 127, the thread 5
Sends an EOF message (no next page) to the FCUH process 129 (step S1124), and the FCUH process 129 that has received this message uses the thread 13 to send EO.
Send F to the specified destination.

【0250】FCUHプロセス129が指定宛先から受
信正常の通知を受けた場合には(ステップS113
5)、スレッド13によりSRMプロセス123に対し
て送信成功メッセージを送信し(ステップS113
6)、これを受信したSRMプロセス123は、スレッ
ド12によりECSプロセス124に対してプロセス正
常終了メッセージを送信する(ステップS1137)。
When the FCUH process 129 receives the notification of normal reception from the designated destination (step S113)
5) The thread 13 transmits a transmission success message to the SRM process 123 (step S113).
6) Upon receiving this, the SRM process 123 sends a process normal termination message to the ECS process 124 by the thread 12 (step S1137).

【0251】さらにこれを受信したECSプロセス12
4は、スレッド9によりFCSプロセス127に対し2
ページ目のスキャン処理完了通知メッセージを送信する
(ステップS1138)。また、送信成功メッセージを
受信したSRMプロセス123は、スレッド12によ
り、送信日時、発信元等のスタンプの指定宛先へ送信の
指示を行う(ステップS1139)。
Further, the ECS process 12 which has received this
4 is 2 for FCS process 127 by thread 9.
A scan processing completion notification message for the page is transmitted (step S1138). In addition, the SRM process 123 that has received the transmission success message instructs the thread 12 to transmit to the designated destination of the stamp such as the transmission date and time and the transmission source (step S1139).

【0252】そして、ECSプロセス124は、FCS
プロセス127にジョブエンド通知メッセージを送信し
(ステップS1140)、FCSプロセス127では、
このジョブエンド通知メッセージをクライアントディス
パッチャで受信することにより全ての原稿のファックス
送信動作が完了する。
The ECS process 124 then uses the FCS
A job end notification message is transmitted to the process 127 (step S1140), and the FCS process 127
By receiving this job end notification message at the client dispatcher, the fax transmission operation of all the originals is completed.

【0253】このように、実施の形態1の複合機では、
各アプリプロセスなどクライアントとなるプロセスが、
ECSプロセス、MCSプロセス、SRMプロセスなど
のサーバとなるプロセスに対し、関数コールによってサ
ービスを要求し、またメッセージの送受信を行うことで
プロセス間通信を実現することができる。このため、ア
プリケーション130とプラットホーム120という特
殊な構成を有する複合機において、複合サービスという
多種多様な機能を実現することができる。
As described above, in the multifunction machine of the first embodiment,
Client processes such as each application process
Inter-process communication can be realized by requesting a service by a function call and transmitting / receiving a message to a process that serves as a server such as an ECS process, an MCS process, and an SRM process. Therefore, in the multifunction machine having the special configuration of the application 130 and the platform 120, it is possible to realize various functions of the complex service.

【0254】また、実施の形態1の複合機では、関数コ
ールによるサービス要求の結果としての関数戻り値をク
ライアントディスパッチャにより監視して受信すること
により、プロセス内のスレッド間の同期制御を容易に行
うことができる。このため、アプリプロセス、複数のコ
ントロールサービスの一部のモジュールのみに変更があ
る場合でも、関数コールとその関数戻り値の制御を確実
に設計しておけば他のプロセスとのインタフェースの変
更は不要となるので、各アプリごと、各コントロールサ
ービスごとの機能変更などに対応することが容易に行
え、複合機の構成に可変性を持たせることが可能とな
る。
Further, in the multi-function peripheral of the first embodiment, the client dispatcher monitors and receives the function return value as a result of the service request by the function call, so that the synchronization control between the threads in the process is easily performed. be able to. Therefore, even if only some modules of the application process and multiple control services are changed, it is not necessary to change the interface with other processes if the function call and the return value of the function are designed properly. Therefore, it is possible to easily deal with a function change for each application and each control service, and it is possible to provide the multifunction device with variability.

【0255】さらに、実施の形態1の複合機では、スレ
ッドにより並列実行を可能としながら、スレッドに親和
性のある関数コールとその関数戻り値の制御によりプロ
セス間通信におけるスレッド間の同期制御を行っている
ので、並列処理の切り替え時のオーバヘッドを極力少な
くして、複合サービス提供時の処理速度を向上させるこ
とができる。 (実施の形態2)実施の形態1にかかる複合機100で
は、サーバプロセスとクライアントプロセスとの関係を
概念的に説明した。そこで、この実施の形態2では、サ
ーバプロセスおよびクライアントプロセスをより具体的
に説明する。なお、実施の形態2にかかる複合機100
の構成は、図1と同様であるため説明を省略する。
Further, in the multi-function peripheral of the first embodiment, the threads can be executed in parallel, and at the same time, the thread-affinity function call and the function return value are controlled to perform the synchronization control between the threads in the inter-process communication. Therefore, the overhead at the time of switching the parallel processing can be minimized and the processing speed at the time of providing the composite service can be improved. (Second Embodiment) In the multifunction peripheral 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. The multifunction peripheral 100 according to the second embodiment
The configuration is the same as that of FIG.

【0256】図13は、実施の形態2の複合機100上
で動作するサーバプロセスとクライアントプロセスの関
係を詳細に示すブロック図である。ここで、クライアン
トプロセス1600は、サーバプロセス1610,16
20に対して要求を行うことにより、サーバプロセス1
610,1620からサービスの提供を受ける例えばS
CS122などのプロセスをいう。また、サーバプロセ
ス1610,1620は、クライアントプロセス160
0からの要求によりクライアントプロセス1600に対
しサービスを提供する例えばECS124などのプロセ
スをいう。
FIG. 13 is a block diagram showing in detail the relationship between the server process and the client process operating on the multifunction peripheral 100 of the second embodiment. Here, the client process 1600 is the server process 1610, 16
Server process 1 by making a request to 20
Receive service from 610, 1620, for example, S
A process such as CS122. Also, the server processes 1610 and 1620 are the client processes 160.
A process such as ECS 124 that provides a service to the client process 1600 in response to a request from 0.

【0257】図13に示すとおり、クライアントプロセ
ス1600には複数のスレッド1601が起動してい
る。クライアントプロセス1600は、複数のスレッド
1601を有することから、複数のサーバプロセス16
10,1620に対して同時にサービスを要求できる。
As shown in FIG. 13, a plurality of threads 1601 are activated in the client process 1600. Since the client process 1600 has a plurality of threads 1601, it has a plurality of server processes 16.
Services can be requested to 10,1620 at the same time.

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

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

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

【0261】例えばサーバプロセス1610のサーバデ
ィスパッチャ1611は、サーバスケルトン1612に
コーディングされている複数のスレッド1613から、
要求された関数に対応するスレッド1613を選択す
る。ここで選択されるスレッド1613は、実施の形態
1で説明した関数ハンドラ403に相当する。サーバプ
ロセス1610のスレッド1613は、要求された処理
を実行してその実行結果を関数戻り値としてクライアン
トプロセス1600に送信する。
For example, the server dispatcher 1611 of the server process 1610 uses the threads 1613 coded in the server skeleton 1612,
Select the thread 1613 corresponding to the requested function. 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 process and sends the execution result to the client process 1600 as a function return value.

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

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

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

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

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

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

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

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

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

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

【0272】関数ハンドラでは引数の受け渡し部のみが
記述され、処理内容を記述する実装記述部は空欄の状態
で生成されている。この実装記述部には、クライアント
プログラムからクライアントスタブ1707を介して発
行される関数の処理内容を、サーバプログラムの開発者
が自在に記述できるようになっている。ヘッダ1706
は、サーバスケルトン1705とクライアントスタブ1
707で共通の定義、宣言などを記述したソースファイ
ルである。
In the function handler, only the argument passing part is described, and the implementation description part that describes the processing content is generated in a blank state. In this implementation description part, 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. Header 1706
Is a server skeleton 1705 and a client stub 1
707 is a source file in which common definitions, declarations, etc. are described.

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

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

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

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

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

【0278】また、コード生成部1704は、メッセー
ジファイル1701の関数宣言から関数ハンドラ名を自
動生成し(例えば、関数名abcの場合、関数ハンドラ
名をabc_handlerとして生成する)、生成さ
れた関数ハンドラ名をサーバスケルトン1705内に登
録する。
Further, the code generator 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 registered in the server skeleton 1705.

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

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

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

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

【0283】一方、クライアントスタブ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 created for each server process, and the created multiple client stub objects are used as a library.

【0284】また、関数の発行、関数ハンドラの宣言、
エラー処理を行うエラーハンドラの宣言、クライアント
プロセスとの間でメッセージファイル1701に記述さ
れたメッセージの送受信を行うメッセージハンドラ、お
よびクライアントプロセスの初期化やクライアントディ
スパッチャ起動等のシステムコールの発行を記述したク
ライアントプログラムを作成してコンパイルし、スタブ
のライブラリとリンクすることによりクライアントプロ
グラムを完成させる。
In addition, function issuance, function handler declaration,
A client that describes the declaration of an error handler that handles error processing, the message handler that sends and receives the message described in the message file 1701 to and from the client process, and the initialization of the client process and the issuing of system calls such as client dispatcher activation. Complete the client program by creating and compiling the program and linking with the stub library.

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

【0286】クライアントプログラムからサーバプログ
ラムに対して、たとえばOpen関数をコールすると、
クライアントスタブオブジェクトで定義されたOpen
が呼び出される(ステップS1901)。そして、この
スタブのOpenの処理の中で、Openの関数ハンド
ラOpen_handlerがサーバプログラムに対し
てコールされる(ステップS1902)。
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 Open processing of this stub, the Open function handler Open_handler is called to the server program (step S1902).

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

【0288】このように実施の形態2のスタブジェネレ
ータでは、メッセージファイル1701に関数宣言を記
述することによりクライアントスタブ1707とサーバ
スケルトン1705を容易に生成することができる。し
かも生成されるサーバスケルトン1705の実装記述部
は空欄となっているので、プログラム開発者は必要に応
じて関数の処理内容を容易に変更するができる。
As described above, the stub generator according to 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. Moreover, 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 needed.

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

【0290】また、実施の形態2のスタブジェネレータ
では、プロセス間通信を関数コールで実現しているの
で、ジョブの並列実行をスレッドで実現した場合でも、
高速なプロセス間通信が可能となる。また、関数からの
戻り値によってスレッド間の同期をとることができるの
で、同期のための処理プログラムを別途作成する必要が
なくなり、プログラム開発の労力を低減することができ
る。 (実施の形態3)実施の形態1にかかる複合機100
は、クライアントプロセスとなるアプリプロセスが、サ
ーバプロセスとなる各コントロールサービスと同一複合
機内部で動作していた。この実施の形態3にかかる複合
機100は、ネットワークに接続された他の複合機のア
プリプロセスをクライアントプロセスとして各コントロ
ールサービスがサービスを提供するものである。
Further, in the stub generator of the second embodiment, since interprocess communication is realized by function call, even when parallel execution of jobs is realized by threads,
High-speed interprocess communication is possible. Moreover, 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 of program development can be reduced. (Third Embodiment) Multifunction machine 100 according to First Embodiment
, The application process, which is the client process, was operating inside the same multi-function peripheral as each control service, which was the server process. In the multi-function peripheral 100 according to the third embodiment, each control service provides a service using an application process of another multi-function peripheral connected to the network as a client process.

【0291】図21は、実施の形態3にかかる複合機の
構成を示すブロック図である。図21に示すように、実
施の形態3では複数の複合機1300a,1300bが
LANなどのネットワーク1340によって接続された
構成となっている。なお、図21では、2台の複合機1
300a,1300bがネットワーク1340で接続さ
れた構成となっているが、3台以上の複合機をネットワ
ーク1340で接続した構成でもよい。
FIG. 21 is a block diagram showing the structure of the multifunction machine according to the third embodiment. As shown in FIG. 21, in the third embodiment, a plurality of multifunction peripherals 1300a and 1300b are connected by a network 1340 such as a LAN. Note that in FIG. 21, two multifunction devices 1
Although 300a and 1300b are connected to each other via the network 1340, three or more multi-function peripherals may be connected to each other via the network 1340.

【0292】図21に示すように、ネットワーク134
0上の各複合機1300a,1300bは、実施の形態
1の複合機と同様の構成となっている。このため、これ
らの構成について詳細な説明は省略する。
As shown in FIG. 21, the network 134
Each of the multi-function peripherals 1300a and 1300b above 0 has the same configuration as the multi-function peripheral of the first embodiment. Therefore, detailed description of these configurations is omitted.

【0293】実施の形態3の複合機では、実施の形態1
と同様に、主としてコピーアプリ1312、プリンタア
プリ1311、スキャナアプリ1314、ファックスア
プリ1313などのアプリケーションのプロセス、およ
びECS1324、MCS1325、FCS1327、
NCS1328などのコントロールサービスのプロセス
が、コントロールサービスまたはSRM1323をサー
バプロセスとしたクライアントプロセスとなるが、さら
にネットワークに接続された他の複合機内部で動作して
いるECS1324、MCS1325、FCS132
7、NCS1328などのコントロールサービスをサー
バプロセスとしたクライアントプロセスとなる。
In the multi-function peripheral of the third embodiment, the first embodiment will be described.
Similarly to the above, mainly application processes such as a copy application 1312, a printer application 1311, a scanner application 1314, and a fax application 1313, and ECS 1324, MCS 1325, FCS 1327,
A control service process such as NCS1328 is a client process using the control service or SRM1323 as a server process, and ECS1324, MCS1325, FCS132 that are operating inside other multi-function peripherals connected to the network.
7, a client process using a control service such as NCS 1328 as a server process.

【0294】また、実施の形態3の複合機では、実施の
形態1と同様に、主としてECS1324、MCS13
25、FCS1327、NCS1328などのコントロ
ールサービスおよびSRM1323のプロセスが、アプ
リケーションのプロセスまたはコントロールサービスも
しくはSRM1323のプロセスをクライアントプロセ
スとしたサーバプロセスとなるが、さらにネットワーク
に接続された他の複合機内部で動作しているコピーアプ
リ1312、プリンタアプリ1311、スキャナアプリ
1314、ファックスアプリ1313などのアプリケー
ションのプロセスをクライアントプロセスとしたサーバ
プロセスにもなる。
Further, in the multi-function peripheral of the third embodiment, as in the first embodiment, the ECS 1324 and MCS 13 are mainly used.
25, FCS1327, NCS1328, and other control services and SRM1323 processes become application processes or control services or SRM1323 processes as server processes, but operate inside other multi-function peripherals connected to the network. The application process such as the copy application 1312, the printer application 1311, the scanner application 1314, and the fax application 1313 is also a server process that is a client process.

【0295】実施の形態3の複合機におけるこれらサー
バプロセスとクライアントプロセスの関係、およびサー
バプロセス、クライアントプロセスの各構成は実施の形
態1の複合機で説明した図2および図3と同様であるの
で詳細な説明は省略する。
Since the relationship between the server process and the client process and the respective configurations of the server process and the client process in the multifunction machine of the third embodiment are the same as those shown in FIGS. 2 and 3 described in the multifunction machine of the first embodiment. Detailed description is omitted.

【0296】各コントロールサービスとSRM1323
と各アプリとは、実施の形態1の複合機100と同様
に、それぞれプロセスとして汎用OS上に生成されて実
行される。各プロセス内部には、複数のスレッドが起動
され、汎用OSの管理下でこれらのスレッドのCPU占
有時間を切り替えることにより並列実行が実現されてい
る。
Each control service and SRM 1323
And each application are generated and executed as processes on the general-purpose OS, similarly to the multifunction peripheral 100 of the first embodiment. A plurality of threads are activated inside each process, and parallel execution is realized by switching the CPU occupation time of these threads under the control of a general-purpose OS.

【0297】また、実施の形態3の複合機1300a,
1300bでは、アプリケーションなどのクライアント
プロセスは、コントロールサービスなどのサーバプロセ
スのサービスを要求するために、クライアントプロセス
内のスレッドからサーバプロセスに対して関数コールを
行い、その関数戻り値を受信すること、およびスレッド
からメッセージをサーバプロセスに送信することによっ
てプロセス間通信を行う。そして、さらにネットワーク
上の他の複合機で動作するサーバプロセスに対して関数
コールおよびメッセージの送信も行えるようになってい
る。
In addition, the multifunction machine 1300a of the third embodiment,
At 1300b, a client process, such as an application, makes a function call to a server process from a thread within the client process to request a service of the server process, such as a control service, and receives the function return value; and Interprocess communication is performed by sending a message from the thread to the server process. Further, function calls and messages can be sent to server processes operating in other multi-function peripherals on the network.

【0298】一方、コントロールサービスなどのサーバ
プロセスでは、クライアントプロセスに対するプロセス
間通信はメッセージの送信のみで行われる。さらにサー
バプロセスでは、ネットワーク上の他の複合機で動作す
るプロセスをクライアントプロセスとして、このネット
ワーク上のクライアントプロセスに対してメッセージの
送信も可能となっている。
On the other hand, in the server process such as the control service, the interprocess communication with the client process is performed only by transmitting the message. Further, in the server process, it is possible to send a message to a client process on this network by using a process running on another multi-function peripheral on the network as a client process.

【0299】クライアントプロセスで起動されるクライ
アントディスパッチャは実施の形態1の複合機100と
同様の構成をしており、さらにネットワーク1340に
接続された他の複合機からの関数戻り値およびOUT方
向のメッセージの受信も監視している。
The client dispatcher activated by the client process has the same configuration as that of the multi-function peripheral 100 of the first embodiment, and the function return value and the OUT-direction message from another multi-function peripheral connected to the network 1340. Is also monitoring the reception of.

【0300】このため、ネットワーク上の他の複合機の
プロセスとプロセス間通信を行えるように、クライアン
トプロセスから発行する関数の形式およびメッセージの
形式は、ネットワークアドレスなどの情報を指定できる
ような形式で提供される。
Therefore, in order to perform inter-process communication with the processes of other multi-function peripherals on the network, the function format and message format issued by the client process should be such that information such as the network address can be specified. Provided.

【0301】サーバプロセスで起動されるサーバディス
パッチャも、実施の形態1の複合機100におけるサー
バプロセスと同様の構成をしているが、さらにネットワ
ーク1340に接続された他の複合機で動作するクライ
アントプロセスのスレッドからの関数コールおよびIN
方向のメッセージも監視している。
The server dispatcher activated by the server process has the same configuration as the server process in the multifunction machine 100 of the first embodiment, but a client process operating in another multifunction machine connected to the network 1340. Calls and INs from other threads
I am also watching for direction messages.

【0302】サーバプロセスでは、関数コールをサーバ
ディスパッチャで受信したときに実行される関数ハンド
ラが、ネットワーク1340上のクライアントプロセス
に関数戻り値を返すために、関数コールしたプロセスの
存在する複合機のネットワークアドレスなどを指定でき
るようになっている。また、サーバプロセスから送信す
るメッセージもネットワークアドレスなどを指定できる
ようになっている。
In the server process, the function handler executed when the function call is received by the server dispatcher returns the function return value to the client process on the network 1340. Therefore, the network of the multifunction machine in which the function call process exists. You can specify the address etc. Also, the message sent from the server process can specify the network address and the like.

【0303】次に、このように構成された実施の形態3
にかかる複合機1300a,1300bにおいて、ネッ
トワーク1340上の異なる複合機を利用してプリント
動作を行う場合のプロセス間通信について説明する。図
22は、実施の形態3のネットワークに接続された2つ
の複合機を利用してプリンタ動作を行う場合のプリンタ
アプリ、ECSのプロセス間のデータシーケンスを示す
説明図である。
Next, the third embodiment configured as described above
In the multi-function peripherals 1300a and 1300b according to the first embodiment, inter-process communication in the case of performing a print operation by using different multi-function peripherals on the network 1340 will be described. FIG. 22 is an explanatory diagram showing a data sequence between the processes of the printer application and the ECS when the printer operation is performed by using the two multifunction peripherals connected to the network according to the third embodiment.

【0304】プリンタアプリプロセス1311が印刷要
求を受信した場合には(ステップS1401)、実施の
形態1において図5を用いて説明したとおり、複合機1
300aのプリンタアプリプロセス1311のスレッド
がECSプロセス1324に対して、ジョブ動作モード
設定関数コールとジョブスタート要求関数コールを順次
行う。
When the printer application process 1311 receives the print request (step S1401), as described in the first embodiment with reference to FIG.
The thread of the printer application process 1311 of 300a sequentially makes a job operation mode setting function call and a job start request function call to the ECS process 1324.

【0305】実施の形態3では、このとき、複合機13
00aのプリンタアプリプロセス1311が、ネットワ
ーク1340を介して接続された他の複合機1300b
のネットワークアドレスを指定し、ジョブ動作モード設
定関数コールとジョブスタート要求関数コールを行って
いる(ステップS1402、S1404)。
In the third embodiment, at this time, the multifunction machine 13
The printer application process 1311 of 00a is connected to another multifunction machine 1300b via the network 1340.
The job operation mode setting function call and the job start request function call are performed by specifying the network address of (step S1402, S1404).

【0306】これにより、ジョブ動作モード設定関数コ
ール、ジョブスタート要求関数コールは、自己の複合機
1300aのECSプロセス1324ではなく、ネット
ワークアドレスで指定された複合機1300bのECS
プロセス1324に対して送信される。そして、それぞ
れの関数コールを行ったスレッドは関数戻り待ち状態に
なる。
As a result, the job operation mode setting function call and the job start request function call are not made by the ECS process 1324 of the own multifunction peripheral 1300a, but by the ECS of the multifunction peripheral 1300b designated by the network address.
Sent to process 1324. Then, the thread that made each function call enters a function return wait state.

【0307】複合機1300bのECSプロセス132
4では、サーバディスパッチャがネットワーク1340
を介してジョブ動作モード設定関数コール、ジョブスタ
ート要求関数コールをそれぞれ受信し、各関数ハンドラ
によってプリンタジョブの動作モード設定、プリンタジ
ョブの開始処理を行う。そして、ジョブ動作モード設定
関数の戻り値およびジョブオープン関数の戻り値を、複
合機1300aのネットワークアドレスを指定して送信
する(ステップS1403、S1405)。
ECS process 132 of multi-function peripheral 1300b
In 4, the server dispatcher has a network 1340
A job operation mode setting function call and a job start request function call are respectively received via the, and each function handler performs the printer job operation mode setting and printer job start processing. Then, the return value of the job operation mode setting function and the return value of the job open function are transmitted by designating the network address of the multifunction peripheral 1300a (steps S1403 and S1405).

【0308】複合機1300aのプリンタアプリプロセ
ス1311では、クライアントディスパッチャによって
複合機1300bのECSプロセス1324からのジョ
ブ動作モード設定関数の戻り値およびジョブオープン関
数の戻り値を受信する。そして、実施の形態1の複合機
と同様に、関数戻り待ち状態のスレッドを関数戻り待ち
キューから抽出して、ジョブ動作モード設定関数の戻り
値とジョブオープン関数の戻り値のそれぞれを抽出され
たスレッドに送信する。
In the printer application process 1311 of the multi function peripheral 1300a, the client dispatcher receives the return value of the job operation mode setting function and the return value of the job open function from the ECS process 1324 of the multi function peripheral 1300b. Then, similarly to the multifunction peripheral of the first embodiment, the thread in the function return waiting state is extracted from the function return waiting queue, and the return value of the job operation mode setting function and the return value of the job open function are extracted. Send to thread.

【0309】これ以降のECSプロセス1324、MC
Sプロセス1325、SRMプロセス123との間のプ
ロセス間通信は同一複合機内部で行われるものであり、
実施の形態1で説明したプリンタ動作と同様である。こ
れにより、複合機1300aにおける印刷要求に対し
て、実際のプリント処理が複合機1300bで行われる
ことになる。
Subsequent ECS process 1324, MC
Interprocess communication between the S process 1325 and the SRM process 123 is performed within the same multi-function peripheral.
The operation is the same as the printer operation described in the first embodiment. As a result, the actual print processing is performed by the multifunction device 1300b in response to the print request from the multifunction device 1300a.

【0310】複合機1300bにおけるプリント処理が
終了すると、複合機1300bのECSプロセス132
4はジョブエンド通知メッセージをプリンタアプリプロ
セスに送信する。このとき、ECSプロセス1324の
サーバディスパッチャは、ネットワーク1340上の複
合機1300aのネットワークアドレスを指定してジョ
ブエンド通知メッセージを送信する(ステップS140
6)。
When the printing process in the multifunction peripheral 1300b is completed, the ECS process 132 of the multifunction peripheral 1300b is completed.
4 sends a job end notification message to the printer application process. At this time, the server dispatcher of the ECS process 1324 sends the job end notification message by designating the network address of the multifunction peripheral 1300a on the network 1340 (step S140).
6).

【0311】複合機1300aのプリンタアプリプロセ
ス1311では、クライアントディスパッチャによっ
て、ネットワークを介して送信されてきたジョブエンド
通知メッセージを受信し、これによりプリンタ動作を完
了する。
In the printer application process 1311 of the multi-function peripheral 1300a, the client dispatcher receives the job end notification message transmitted via the network, thereby completing the printer operation.

【0312】このように、実施の形態3では、ネットワ
ークに接続された複合機1300aで動作するアプリプ
ロセスと、複合機1300bで動作するECSプロセス
1324との間でプロセス間通信を行って、複合機13
00aで発生した要求に対しネットワーク1340上の
他の複合機1300bでプリント処理を行えるので、要
求の生じた複合機のみならずネットワーク上の複合機を
利用して多種多様な機能を実現することができる。
As described above, in the third embodiment, the inter-process communication is performed between the application process operating on the multifunction peripheral 1300a connected to the network and the ECS process 1324 operating on the multifunction peripheral 1300b, and Thirteen
Since the print processing can be performed by the other multi-function peripheral 1300b on the network 1340 in response to the request generated at 00a, it is possible to realize various functions not only by using the multi-function peripheral on the network, but also by using the multi-function peripheral on the network. it can.

【0313】例えば、複合機1300aで印刷要求が生
じたときに、複合機1300aのプリンタエンジンが他
のジョブに占有されている場合には、プリンタアプリプ
ロセスでこれを判断してECSプロセス1324に対す
る関数コールをネットワーク1340上の他の複合機1
300bのECSプロセス1324への関数コールへ切
り替える等の処理を行えば、プリント開始までに時間を
要することを防止でき、ユーザビリティの向上を図るこ
とができる。
For example, when the printer request of the multi function peripheral 1300a is occupied by the printer engine of the multi function peripheral 1300a, the printer application process judges this and a function for the ECS process 1324. Call the other multifunction device 1 on the network 1340
By performing a process such as switching to a function call to the ECS process 1324 of 300b, it is possible to prevent the time from being required to start printing, and it is possible to improve usability.

【0314】なお、実施の形態3では、プリンタ動作の
例をあげてネットワーク1340に接続された2つの複
合機1300a,1300bにおけるプロセス間通信に
ついて説明したが、スキャナ動作、コピー動作、ファク
シミリ送信動作においても、複合機1300a内のスキ
ャナアプリプロセス1314、コピーアプリプロセス1
312、ファックスアプリプリセス1313と、ECS
プロセス1324とのプロセス間通信もプリンタ動作の
場合と同様に行われる。
In the third embodiment, the inter-process communication in the two multifunction peripherals 1300a and 1300b connected to the network 1340 has been described by taking an example of the printer operation, but in the scanner operation, the copy operation, and the facsimile transmission operation. Also, the scanner application process 1314 and the copy application process 1 in the multifunction machine 1300a
312, fax application process 1313, and ECS
Interprocess communication with the process 1324 is performed in the same manner as in the printer operation.

【0315】また、実施の形態3の複合機1300a,
1300bでは、アプリプロセスとECSプロセス13
24とネットワーク1340を介したプロセス間通信に
説明したが、アプリプロセスとECSプロセス1324
以外のコントロールサービスおよびシステムリソースマ
ネージャ(SRM)1323のプロセス間通信も、アプ
リプロセスとECSプロセス1324間の通信と同様に
行われる。
In addition, the multifunction machine 1300a according to the third embodiment,
In 1300b, application process and ECS process 13
24 and the interprocess communication via the network 1340, the application process and the ECS process 1324 have been described.
Inter-process communication of other control services and system resource manager (SRM) 1323 is performed in the same manner as communication between the application process and the ECS process 1324.

【0316】さらに、実施の形態3の複合機1300
a,1300bでは、アプリプロセスとネットワーク1
340上の別の複合機内のECSプロセス1324とが
直接プロセス間通信を行っているが、NCS1328を
介して異なる複合機のアプリプロセスとECSプロセス
1324とが通信を行うように構成しても良い。
Furthermore, the multifunction machine 1300 of the third embodiment
a, 1300b, application process and network 1
Although the inter-process communication is performed directly with the ECS process 1324 in another multi-function peripheral on the 340, the application process and the ECS process 1324 of the different multi-function peripheral may communicate with each other via the NCS 1328.

【0317】すなわち、NCS1328において、アプ
リプロセスからの関数コールやメッセージを一旦受信し
て、ネットワーク1340上の他の複合機1300bの
ネットワークアドレスを指定した上で、関数コールやメ
ッセージを複合機1300bのNCSプロセス1328
へ送信するように構成することも可能である。
That is, the NCS 1328 receives the function call or message from the application process once, specifies the network address of another multifunction peripheral 1300b on the network 1340, and then sends the function call or message to the NCS 1300b of the multifunction peripheral 1300b. Process 1328
It can also be configured to send to.

【0318】この場合には、アプリプロセスやECSプ
ロセス1324において、ネットワークアドレスに関す
る処理の追加が不要となり、モジュール間の独立性がよ
り高まるので、複合機により可変性を持たせることがで
きるという利点がある。 (実施の形態4)実施の形態3にかかる複合機1300
a,1300bでは、ネットワーク1340に接続され
た他の複合機のアプリプロセスをクライアントプロセス
として各コントロールサービスがサービスを提供してい
た。この実施の形態4にかかる複合機は、ネットワーク
に接続された他の複合機のコントロールサービスをクラ
イアントプロセスとして、各コントロールサービスがサ
ービスを提供するものである。
In this case, in the application process and the ECS process 1324, it is not necessary to add the processing relating to the network address, and the independence between the modules is further enhanced, so that there is an advantage that the multi-function peripheral can have the variability. is there. (Embodiment 4) Multifunction machine 1300 according to Embodiment 3
In a and 1300b, each control service provided a service by using the application process of another multifunction peripheral connected to the network 1340 as a client process. In the multi-function peripheral according to the fourth embodiment, each control service provides a service using the control service of another multi-function peripheral connected to the network as a client process.

【0319】実施の形態4では、図21に示す実施の形
態3の複合機1300a,1300bと同様に、複数の
複合機がLANなどのネットワーク1340によって接
続された構成となっている。実施の形態4におけるネッ
トワーク1340上の各複合機1300a,1300b
は、実施の形態1の複合機と同様の構成であるため、こ
れらの構成について詳細な説明は省略する。
In the fourth embodiment, as in the multi-function peripherals 1300a and 1300b of the third embodiment shown in FIG. 21, a plurality of multi-function peripherals are connected by a network 1340 such as a LAN. Each of the multifunction peripherals 1300a and 1300b on the network 1340 according to the fourth embodiment
Has the same configuration as that of the multi-function peripheral according to the first embodiment, and a detailed description of these configurations will be omitted.

【0320】実施の形態4の複合機では、実施の形態1
と同様に、主としてコピーアプリ1312、プリンタア
プリ1311、スキャナアプリ1314、ファックスア
プリ1313などのアプリケーションプロセス、および
ECS1324、MCS1325、FCS1327、N
CS1328などのコントロールサービスのプロセス
が、コントロールサービスまたはSRM1323をサー
バプロセスとしたクライアントプロセスとなるが、さら
にネットワークに接続された他の複合機内部で動作して
いるECS1324、MCS1325、FCS132
7、NCS1328などのコントロールサービスをサー
バプロセスとしたクライアントプロセスとなる。
In the multifunction machine of the fourth embodiment, the first embodiment
Similarly, mainly application processes such as a copy application 1312, a printer application 1311, a scanner application 1314, and a fax application 1313, and ECS 1324, MCS 1325, FCS 1327, N.
A control service process such as CS1328 is a client process using the control service or SRM1323 as a server process, and further, ECS1324, MCS1325, FCS132 operating inside other multi-function peripherals connected to the network.
7, a client process using a control service such as NCS 1328 as a server process.

【0321】また、実施の形態4の複合機では、実施の
形態1と同様に、主としてECS1324、MCS13
25、FCS1327、NCS1328などのコントロ
ールサービスおよびSRM1323のプロセスが、アプ
リケーションサービスまたはコントロールサービスもし
くはSRM1323をクライアントプロセスとしたサー
バプロセスとなるが、さらにネットワークに接続された
他の複合機内部で動作しているコントロールサービスを
クライアントプロセスとしたサーバプロセスにもなる。
Further, in the multi-function peripheral of the fourth embodiment, as in the first embodiment, the ECS 1324 and MCS 13 are mainly used.
25, FCS1327, NCS1328, and other control services and SRM1323 processes are application services, control services, or server processes that use SRM1323 as a client process, but controls running inside other multi-function peripherals connected to the network. It can also be a server process with the service as a client process.

【0322】実施の形態4の複合機1300a,130
0bにおけるこれらサーバプロセスとクライアントプロ
セスの関係、およびサーバプロセス、クライアントプロ
セスの各構成は実施の形態1の複合機で説明した図2お
よび図3、および実施の形態3と同様であるので詳細な
説明は省略する。
Multifunction machines 1300a and 130 of the fourth embodiment
The relationship between the server process and the client process in 0b and the respective configurations of the server process and the client process are the same as those in FIGS. Is omitted.

【0323】実施の形態4の複合機1300a,130
0bでは、コントロールサービスがクライアントプロセ
スとなる場合に、他のコントロールサービスなどのサー
バプロセスのサービスを要求するために、クライアント
プロセス内のスレッドからサーバプロセスに対して関数
コールを行い、その関数戻り値を受信すること、および
スレッドからメッセージをサーバプロセスに送信するこ
とによってプロセス間通信を行う。そして、さらにネッ
トワーク1340上の他の複合機で動作する他のコント
ロールサービスまたはSRM1323などのサーバプロ
セスに対して関数コールおよびメッセージの送信も行え
るようになっている。
Multifunction machines 1300a and 130 of the fourth embodiment
In 0b, when the control service is a client process, a thread in the client process calls a function to the server process in order to request a service of the server process such as another control service, and returns the function return value. Interprocess communication is performed by receiving and sending messages from threads to server processes. Further, function calls and messages can be sent to other control services operating on other multifunction machines on the network 1340 or server processes such as SRM 1323.

【0324】コントロールサービスなどのクライアント
プロセスで起動されるクライアントディスパッチャは、
実施の形態3の複合機1300a,1300bと同様
に、ネットワーク1340に接続された他の複合機で動
作するコントロールサービスまたはSRM1323(サ
ーバプロセス)からの関数戻り値およびOUT方向のメ
ッセージの受信も監視している。
The client dispatcher started by the client process such as the control service is
Similar to the multi-function peripherals 1300a and 1300b of the third embodiment, the function return value from the control service or the SRM 1323 (server process) operating in another multi-function peripheral connected to the network 1340 and the reception of the message in the OUT direction are also monitored. ing.

【0325】このため、ネットワーク1340上の他の
複合機のプロセスとプロセス間通信を行えるように、ク
ライアントプロセスから発行する関数の形式およびメッ
セージの形式は、ネットワークアドレスなどの情報を指
定できるような形式で提供される。
Therefore, in order to perform inter-process communication with the processes of other multi-function peripherals on the network 1340, the format of the function issued by the client process and the format of the message are such that information such as a network address can be specified. Provided by.

【0326】サーバプロセスで起動されるサーバディス
パッチャも、実施の形態3の複合機1300a,130
0bにおけるサーバプロセスと同様に、ネットワーク1
340に接続された他の複合機で動作するクライアント
プロセスのスレッドからの関数コールおよびIN方向の
メッセージも監視している。
The server dispatcher activated by the server process is also the multifunction peripheral 1300a, 130 of the third embodiment.
Network 1 as well as the server process in 0b
It also monitors function calls and IN-direction messages from threads of client processes running on other multi-function peripherals connected to 340.

【0327】実施の形態4においても、サーバプロセス
およびクライアントプロセスとなるECS1324、M
CS1325、FCS1327、NCS1328などの
コントロールサービスおよびSRM1323では、関数
コールをサーバディスパッチャで受信したときに実行さ
れる関数ハンドラが、関数コールしたクライアントプロ
セスの存在する複合機のネットワークアドレスなどを指
定できるようになっている。また、サーバプロセスから
送信するメッセージもネットワークアドレスなどを指定
できるようになっている。
Also in the fourth embodiment, the ECSs 1324, M serving as the server process and the client process.
In the control services such as CS1325, FCS1327, NCS1328, and SRM1323, the function handler executed when the function call is received by the server dispatcher can specify the network address of the multifunction machine in which the client process that called the function exists. ing. Also, the message sent from the server process can specify the network address and the like.

【0328】次に、このように構成された実施の形態4
にかかる複合機1300a,1300bにおいて、ネッ
トワーク1340上の異なる複合機を利用してファクシ
ミリ送信動作を行う場合のプロセス間通信について説明
する。図23は、実施の形態4のネットワークに接続さ
れた2つの複合機を利用してファクシミリ送信動作を行
う場合のFCSとECSとMCSのプロセス間のデータ
シーケンスを示す説明図である。
Next, the fourth embodiment configured as described above
In the multi-function peripherals 1300a and 1300b according to the first embodiment, inter-process communication in the case of performing a facsimile transmission operation using different multi-function peripherals on the network 1340 will be described. FIG. 23 is an explanatory diagram showing a data sequence between the processes of FCS, ECS, and MCS when a facsimile transmission operation is performed using two multifunction machines connected to the network of the fourth embodiment.

【0329】FCSプロセス1327がファックスアプ
リプロセス1313から送信スタート要求を受信した場
合には(ステップS1501)、複合機1300aのF
CSプロセス1327のスレッドが、ネットワーク13
40に接続された他の複合機1300bのネットワーク
アドレスを指定して、ジョブ動作モード設定関数コール
とジョブスタート要求関数コールを順次行う(ステップ
S1502、S1504)。
When the FCS process 1327 receives the transmission start request from the fax application process 1313 (step S1501), the F of the multifunction peripheral 1300a is processed.
The thread of the CS process 1327 is the network 13
The job operation mode setting function call and the job start request function call are sequentially performed by designating the network address of the other multifunction peripheral 1300b connected to the server 40 (steps S1502 and S1504).

【0330】これにより、ジョブ動作モード設定関数コ
ール、ジョブスタート要求関数コールは、ネットワーク
アドレスで指定された複合機1300bで動作するEC
Sプロセス1324に対してネットワークを介して送信
される。
As a result, the job operation mode setting function call and the job start request function call are executed by the EC operating on the multifunction machine 1300b designated by the network address.
It is transmitted to the S process 1324 via the network.

【0331】複合機1300bのECSプロセス132
4では、サーバディスパッチャがネットワーク1340
を介してジョブ動作モード設定関数コール、ジョブスタ
ート要求関数コールをそれぞれ受信し、各関数ハンドラ
によってプリンタジョブの動作モード設定、プリンタジ
ョブの開始処理を行う。そして、ジョブ動作モード設定
関数の戻り値およびジョブオープン関数の戻り値を、複
合機1300aのネットワークアドレスを指定して送信
する(ステップS1503、S1505)。
ECS process 132 of multifunction peripheral 1300b
In 4, the server dispatcher has a network 1340
A job operation mode setting function call and a job start request function call are respectively received via the, and each function handler performs the printer job operation mode setting and printer job start processing. Then, the return value of the job operation mode setting function and the return value of the job open function are transmitted by designating the network address of the multifunction peripheral 1300a (steps S1503 and S1505).

【0332】複合機1300aのFCSプロセス132
7では、クライアントディスパッチャによって複合機1
300bのECSプロセス1324からのジョブ動作モ
ード設定関数の戻り値およびジョブオープン関数の戻り
値を受信する。そして、実施の形態1の複合機と同様
に、関数戻り待ち状態のスレッドを関数戻り待ちキュー
から抽出して、ジョブ動作モード設定関数の戻り値とジ
ョブオープン関数の戻り値のそれぞれを抽出されたスレ
ッドに送信する。
FCS process 132 of multi-function peripheral 1300a
In 7, the multi-function device 1 by the client dispatcher
The return value of the job operation mode setting function and the return value of the job open function are received from the ECS process 1324 of 300b. Then, similarly to the multifunction peripheral of the first embodiment, the thread in the function return waiting state is extracted from the function return waiting queue, and the return value of the job operation mode setting function and the return value of the job open function are extracted. Send to thread.

【0333】複合機1300bのECSプロセス132
4は、MCSプロセス1325に対してメモリ確保要求
関数コールを行い(ステップS1505)、またSRM
プロセス123に対してスキャナエンジンの資源獲得要
求関数コールを行う(ステップS1506)。かかる関
数コールに対するMCSプロセス1325およびSRM
プロセス1323の処理は、実施の形態1で説明したと
おりである。
ECS process 132 of multifunction device 1300b
4 makes a memory reservation request function call to the MCS process 1325 (step S1505), and the SRM
A scanner engine resource acquisition request function call is made to the process 123 (step S1506). MCS process 1325 and SRM for such function calls
The processing of the process 1323 is as described in the first embodiment.

【0334】複合機1300bのECSプロセス132
4では、スキャナエンジンの資源獲得関数の戻り値を受
信したら、複合機1300aのネットワークアドレスを
指定したスキャンパラメータ要求メッセージを、複合機
1300aのFCSプロセス1327にネットワークを
介して送信する(ステップS1507)。
ECS Process 132 of Multifunction Device 1300b
In No. 4, when the return value of the resource acquisition function of the scanner engine is received, a scan parameter request message specifying the network address of the multifunction peripheral 1300a is transmitted to the FCS process 1327 of the multifunction peripheral 1300a via the network (step S1507).

【0335】複合機1300aのFCSプロセス132
7では、このスキャナパラメータ確定要求メッセージを
受信すると、スキャナパラメータのメッセージを、複合
機1300bのネットワークアドレスを指定することに
より、複合機1300bのECSプロセス1324に対
してネットワークを介して送信する(ステップS150
8)。ECSプロセス1324では、サーバディスパッ
チャがスキャナパラメータメッセージをネットワークを
介して受信する。
FCS Process 132 of Multifunction Device 1300a
In 7, when the scanner parameter confirmation request message is received, the scanner parameter message is transmitted to the ECS process 1324 of the multifunction device 1300b via the network by designating the network address of the multifunction device 1300b (step S150).
8). In ECS process 1324, the server dispatcher receives the scanner parameter message over the network.

【0336】これ以降のプロセス間通信は、同一複合機
1300b内部で行われるものであり、実施の形態1で
説明したファクシミリ送信と同様である。これにより、
複合機1300aにおけるファクシミリ送信スタート要
求に対して、複合機1300bでファクシミリ送信が行
われることになる。複合機1300bにおけるスキャン
およびファクシミリ送信処理が終了すると、複合機13
00bのECSプロセス1324のサーバディスパッチ
ャは、ネットワーク1340上の複合機1300aのネ
ットワークアドレスを指定してスキャン終了通知メッセ
ージを複合機1300aのFCSプロセス1327に送
信する(ステップS1509)。
Subsequent inter-process communication is performed within the same multi-function peripheral 1300b and is similar to the facsimile transmission described in the first embodiment. This allows
In response to a facsimile transmission start request from the multifunction peripheral 1300a, facsimile transmission is performed by the multifunction peripheral 1300b. When the scanning and facsimile transmission processing in the multifunction device 1300b is completed, the multifunction device 13
The server dispatcher of the ECS process 1324 of 00b designates the network address of the multifunction machine 1300a on the network 1340 and sends a scan end notification message to the FCS process 1327 of the multifunction machine 1300a (step S1509).

【0337】複合機1300aのFCSプロセス132
7では、クライアントディスパッチャによって、ネット
ワーク1340を介して送信されてきたスキャン終了通
知メッセージを受信し、これによりファクシミリ送信動
作を完了する。
FCS process 132 of multi-function peripheral 1300a
In 7, the client dispatcher receives the scan end notification message transmitted via the network 1340, thereby completing the facsimile transmission operation.

【0338】このように、実施の形態4の複合機では、
ネットワークに接続された複合機1300aで動作する
FCSプロセス1327と、複合機1300bで動作す
るECSプロセス1324との間でプロセス間通信を行
って、複合機1300aで発生した要求に対しネットワ
ーク1340上の他の複合機1300bでファクシミリ
送信処理を行えるので、要求の生じた複合機のみならず
ネットワーク1340上の複合機を利用して多種多様な
機能を実現することができる。
As described above, in the multifunction machine of the fourth embodiment,
Inter-process communication is performed between the FCS process 1327 that operates in the multifunction machine 1300a connected to the network and the ECS process 1324 that operates in the multifunction machine 1300b so that other requests on the network 1340 for the request generated by the multifunction machine 1300a. Since the facsimile transmission process can be performed by the multi function peripheral 1300b, various functions can be realized by using the multi function peripheral on the network 1340 as well as the multi function peripheral having the request.

【0339】例えば、複合機1300aでファクシミリ
送信要求が生じたときに、複合機1300aのファクシ
ミリエンジンがファクシミリ受信ジョブに占有されてい
る場合には、FCSプロセス1327でこれを判断して
ECSプロセス1324に対する関数コールをネットワ
ーク1340上の他の複合機1300bのECSプロセ
ス1324への関数コールへ切り替える等の処理を行え
ば、ファクシミリ送信を直ちに行うことができ、複合機
のユーザビリティの向上を図ることができる。
For example, when the facsimile transmission request is generated in the multifunction machine 1300a, if the facsimile engine of the multifunction machine 1300a is occupied by the facsimile reception job, the FCS process 1327 judges this and the ECS process 1324 is notified. By performing processing such as switching the function call to the function call to the ECS process 1324 of the other multifunction peripheral 1300b on the network 1340, the facsimile transmission can be performed immediately and the usability of the multifunction peripheral can be improved.

【0340】なお、実施の形態4では、ファクシミリ送
信動作の例をあげてネットワーク1340に接続された
2つの複合機1300a,1300bにおけるプロセス
間通信について説明したが、スキャナ動作、コピー動
作、プリント動作においても、複合機1300a内のコ
ントロールサービスと複合機1300b内のコントロー
ルサービスのプロセス間通信も同様に行われる。
In the fourth embodiment, the inter-process communication in the two multifunction peripherals 1300a and 1300b connected to the network 1340 has been described by taking the example of the facsimile transmission operation. However, in the scanner operation, the copy operation and the print operation, Also, inter-process communication of the control service in the multifunction machine 1300a and the control service in the multifunction machine 1300b is performed similarly.

【0341】また、実施の形態4の複合機では、FCS
プロセス1327とECSプロセス1324とのネット
ワーク1340を介したプロセス間通信に説明したが、
他のコントロールサービス間のネットワーク1340を
介したプロセス間通信も、FCSプロセス1327とE
CSプロセス1324の通信と同様に行われる。
In the multifunction machine of the fourth embodiment, the FCS
The interprocess communication between the process 1327 and the ECS process 1324 via the network 1340 has been described.
The inter-process communication via the network 1340 between other control services also enables the FCS process 1327 and the E
The communication is similar to that of the CS process 1324.

【0342】さらに、実施の形態4の複合機では、FC
Sアプリプロセス1327とネットワーク1340上の
別の複合機内のECSプロセス1324とが直接プロセ
ス間通信を行っているが、この場合も、NCSプロセス
1328を介して異なる複合機のコントロールサービス
間の通信を行うように構成しても良い。
Furthermore, in the multifunction machine of the fourth embodiment, FC
The S application process 1327 and the ECS process 1324 in another multi-function peripheral on the network 1340 directly perform inter-process communication. In this case as well, communication between control services of different multi-function peripherals is performed via the NCS process 1328. It may be configured as follows.

【0343】以上、実施の形態1〜4の複合機において
使用した関数、メッセージはすべて一例であり、とくに
これらに限定されるものではなく、任意の関数やメッセ
ージを定義して使用することができる。
As described above, the functions and messages used in the multi-function peripherals of the first to fourth embodiments are all examples, and the present invention is not limited to these, and any function or message can be defined and used. .

【0344】[0344]

【発明の効果】以上説明したように、発明によれば、ユ
ーザサービス及びコントロールサービスの間の独立性を
維持しながら互いにサービスやデータの授受をプロセス
間通信によって行うことができ、機能的に多様性のある
装置を実現することが可能である。
As described above, according to the invention, it is possible to exchange services and data with each other by inter-process communication while maintaining the independence between the user service and the control service. It is possible to realize a flexible device.

【図面の簡単な説明】[Brief description of drawings]

【図1】この発明の実施の形態の画像形成装置(複合
機)の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of an image forming apparatus (multifunction peripheral) according to an embodiment of the present invention.

【図2】実施の形態1の複合機におけるサーバプロセス
とクライアントプロセスの関係を示すブロック図であ
る。
FIG. 2 is a block diagram showing a relationship between a server process and a client process in the multifunction machine according to the first embodiment.

【図3】実施の形態1の複合機で動作するクライアント
プロセスの構成を示すブロック図である。
FIG. 3 is a block diagram showing a configuration of a client process which operates in the multi function peripheral according to the first embodiment.

【図4】実施の形態1の複合機で動作するサーバプロセ
スの構成を示すブロック図である。
FIG. 4 is a block diagram showing a configuration of a server process that operates in the multifunction peripheral according to the first embodiment.

【図5】実施の形態1の複合機でプリンタ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間のデータシーケ
ンスを示す説明図である。
FIG. 5 is an explanatory diagram showing a data sequence between processes of an application, a control service, and a system resource service when a printer operation is performed by the multifunction peripheral according to the first embodiment.

【図6】実施の形態1の複合機でプリンタ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間の関数およびメ
ッセージの送受信の関係を示す説明図である。
FIG. 6 is an explanatory diagram showing a relation of transmission / reception of a function and a message among processes of an application, a control service, and a system resource service when performing a printer operation in the multifunction peripheral of the first embodiment.

【図7】実施の形態1の複合機でスキャナ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間のデータシーケ
ンスを示す説明図である。
FIG. 7 is an explanatory diagram showing a data sequence between processes of an application, a control service, and a system resource service when performing a scanner operation in the multifunction machine of the first embodiment.

【図8】実施の形態1の複合機でスキャナ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間の関数およびメ
ッセージの送受信の関係を示す説明図である。
FIG. 8 is an explanatory diagram showing a relation of transmission / reception of a function and a message between processes of an application, a control service, and a system resource service when performing a scanner operation in the multifunction peripheral of the first embodiment.

【図9】実施の形態1の複合機でコピー動作を行う場合
のアプリケーション、コントロールサービスおよびシス
テムリソースサービスの各プロセス間のデータシーケン
スを示す説明図である。
FIG. 9 is an explanatory diagram showing a data sequence between processes of an application, a control service, and a system resource service when a copy operation is performed by the multifunction peripheral according to the first embodiment.

【図10】実施の形態1の複合機でコピー動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間の関数およびメ
ッセージの送受信の関係を示す説明図である。
FIG. 10 is an explanatory diagram showing a relation of transmission / reception of a function and a message among processes of an application, a control service, and a system resource service when a copy operation is performed in the multifunction machine of the first embodiment.

【図11】実施の形態1の複合機でファクシミリ送信動
作を行う場合のアプリケーション、コントロールサービ
スおよびシステムリソースサービスの各プロセス間のデ
ータシーケンスを示す説明図である。
FIG. 11 is an explanatory diagram showing a data sequence between processes of an application, a control service, and a system resource service when a facsimile transmission operation is performed by the multifunction peripheral of the first embodiment.

【図12】実施の形態1の複合機でファックス送信動作
を行う場合のアプリケーション、コントロールサービス
およびシステムリソースサービスの各プロセス間の関数
およびメッセージの送受信の関係を示す説明図である。
FIG. 12 is an explanatory diagram showing a relation of transmission and reception of a function and a message between processes of an application, a control service, and a system resource service when performing a fax transmission operation in the multi-function peripheral of the first embodiment.

【図13】実施の形態2の複合機100上で動作するサ
ーバプロセスとクライアントプロセスの関係を詳細に示
すブロック図である。
FIG. 13 is a block diagram showing in detail the relationship between a server process and a client process operating on the multifunction peripheral 100 according to the second embodiment.

【図14】実施の形態2のクライアントプロセスとサー
バプロセスとを生成する画像形成装置用通信プログラム
生成装置(スタブジェネレータ)の機能的構成を示すブ
ロック図である。
FIG. 14 is a block diagram showing a functional configuration of an image forming apparatus communication program generating apparatus (stub generator) that generates a client process and a server process according to the second embodiment.

【図15】メッセージファイルの記述例を示す説明図で
ある。
FIG. 15 is an explanatory diagram showing a description example of a message file.

【図16】スタブジェネレータにより生成されるクライ
アントスタブの一例を示す説明図である。
FIG. 16 is an explanatory diagram showing an example of a client stub generated by a stub generator.

【図17】スタブジェネレータにより生成されるサーバ
スケルトンの一例を示す説明図である。
FIG. 17 is an explanatory diagram showing an example of a server skeleton generated by a stub generator.

【図18】スタブジェネレータにより生成されるヘッダ
の一例を示す説明図である。
FIG. 18 is an explanatory diagram showing an example of a header generated by a stub generator.

【図19】サーバスケルトン、クライアントスタブおよ
びヘッダの生成処理のフローチャートである。
FIG. 19 is a flowchart of a server skeleton, client stub, and header generation process.

【図20】クライアントプログラムから関数コールを行
った場合におけるサーバプログラムとの呼び出しおよび
応答のシーケンスを示す説明図である。
FIG. 20 is an explanatory diagram showing a sequence of a call and a response with a server program when a function call is made from a client program.

【図21】実施の形態3にかかる複合機の構成を示すブ
ロック図である。
FIG. 21 is a block diagram showing a configuration of a multifunction machine according to a third embodiment.

【図22】実施の形態3のネットワークに接続された2
つの複合機を利用してプリンタ動作を行う場合のプリン
タアプリとECSプロセス間のデータシーケンスを示す
説明図である。
FIG. 22 is a diagram illustrating a case where the network connection 2 according to the third embodiment is established.
FIG. 9 is an explanatory diagram showing a data sequence between a printer application and an ECS process when performing a printer operation using one multi-function peripheral.

【図23】実施の形態4のネットワークに接続された2
つの複合機を利用してファクシミリ送信動作を行う場合
のFCSとECSとMCSのプロセス間のデータシーケ
ンスを示す説明図である。
FIG. 23 is a diagram showing a configuration of the network connection 2 according to the fourth embodiment.
FIG. 6 is an explanatory diagram showing a data sequence between processes of FCS, ECS, and MCS when a facsimile transmission operation is performed using two multifunction peripherals.

【符号の説明】[Explanation of symbols]

100,1300a,1300b 複合機 101,1301 白黒ラインプリンタ 102,1302 カラーラインプリンタ 103,1303 スキャナ 104,1304 ファクシミリ 110,1310 ソフトウェア群 111,1311 プリンタアプリ 112,1312 コピーアプリ 113,1313 ファックスアプリ 114,1314 スキャナアプリ 115,1315 ネットファイルアプリ 116,1316 工程検査アプリ 120,1320 プラットホーム 121,1321 汎用OS 122,1322 SCS 123,1323 SRM 124,1324 ECS 125,1325 MCS 126,1326 OCS 127,1327 FCS 128,1328 NCS 129,1329 FCUH 130,1330 アプリケーション 201,1600 クライアントプロセス 202,1610,1620 サーバプロセス 203,1603 クライアントディスパッチャ 204,1611 サーバディスパッチャ 1601,1613,1623 スレッド 1602 クライアントスタブ 1612,1622 サーバスケルトン 100, 1300a, 1300b Multifunction machine 101,1301 monochrome line printer 102, 1302 color line printer 103, 1303 Scanner 104,1304 facsimile 110,1310 software group 111,1311 Printer application 112, 1312 Copy application 113,1313 Fax application 114,1314 Scanner application 115,1315 Net File App 116, 1316 Process inspection application 120, 1320 platform 121, 1321 General-purpose OS 122, 1322 SCS 123, 1323 SRM 124, 1324 ECS 125,1325 MCS 126, 1326 OCS 127,1327 FCS 128,1328 NCS 129,1329 FCUH 130, 1330 applications 201,1600 client process 202, 1610, 1620 server process 203,1603 Client dispatcher 204, 1611 server dispatcher 1601, 1613, 1623 threads 1602 Client stub 1612, 1622 Server skeleton

Claims (25)

【特許請求の範囲】[Claims] 【請求項1】 実行する処理に応じたハードウェア資源
と、前記処理に係るユーザサービスおよびコントロール
サービスのプロセスとを備えており、前記プロセスを対
象としたプロセス間通信機能を有する装置であって、 前記プロセスのそれぞれは、サーバプロセスまたはクラ
イアントプロセスとして動作し、 前記サーバプロセスは、前記クライアントプロセスに提
供する一または複数のサービスを定義した関数を有して
おり、 前記クライアントプロセスは、前記サーバプロセスにサ
ービスの提供を要求する際に関数呼び出しを行うことを
特徴とする装置。
1. An apparatus comprising a hardware resource according to a process to be executed, a process of a user service and a control service related to the process, and having an inter-process communication function for the process, Each of the processes operates as a server process or a client process, the server process has a function that defines one or more services to be provided to the client process, and the client process A device characterized by making a function call when requesting the provision of a service.
【請求項2】 前記コントロールサービスは、前記ユー
ザサービスをクライアントプロセスとしたサーバプロセ
スとして動作して、前記ユーザサービスの少なくとも2
つが共通的に必要とするサービスを定義した関数を有
し、 前記ユーザサービスは、前記コントロールサービスにサ
ービスの提供を要求する際に関数呼び出しを行うことを
特徴とする請求項1記載の装置。
2. The control service operates as a server process in which the user service is a client process, and at least two of the user services are provided.
2. The apparatus according to claim 1, further comprising a function that defines a service that is commonly needed, and the user service calls a function when requesting the control service to provide the service.
【請求項3】 前記コントロールサービスは、他のコン
トロールサービスをクライアントプロセスとしたサーバ
プロセスとして動作して、前記他のコントロールサービ
スの少なくとも2つが共通的に必要とするサービスを定
義した関数を有しており、 前記他のコントロールサービスは、前記コントロールサ
ービスにサービスの提供を要求する際に関数呼び出しを
行うことを特徴とする請求項1又は2記載の装置。
3. The control service operates as a server process having another control service as a client process, and has a function defining a service commonly required by at least two of the other control services. The apparatus according to claim 1 or 2, wherein the other control service calls a function when requesting the control service to provide the service.
【請求項4】 前記コントロールサービスは、前記サー
バプロセスとして動作するとともに前記クライアントプ
ロセスとして動作することを特徴とする請求項1乃至3
いずれか一項記載の装置。
4. The control service operates as the server process as well as the client process.
The apparatus according to claim 1.
【請求項5】 前記ユーザサービスおよび前記コントロ
ールサービスの各プロセスは、一または複数のスレッド
を含むことを特徴とする請求項1乃至4いずれか一項記
載の装置。
5. The apparatus according to claim 1, wherein each process of the user service and the control service includes one or a plurality of threads.
【請求項6】 前記ユーザサービスおよび前記コントロ
ールサービスは、前記クライアントプロセスとして動作
するときに、前記サーバプロセスへの関数呼び出しに対
する関数戻り値の受信を監視し、受信した関数戻り値を
前記関数呼び出しを行ったスレッドに受け渡すクライア
ント監視手段を備えたことを特徴とする請求項5記載の
装置。
6. The user service and the control service, when operating as the client process, monitor the reception of a function return value for a function call to the server process and call the received function return value to the function call. 6. The apparatus according to claim 5, further comprising a client monitoring means for passing the information to the executed thread.
【請求項7】 前記クライアント監視手段は、スレッド
で実現されることを特徴とする請求項6記載の装置。
7. The apparatus according to claim 6, wherein the client monitoring unit is realized by a thread.
【請求項8】 前記クライアント監視手段は、関数の呼
び出し後に関数戻り値待ち状態のスレッドの識別子を一
時的に格納する関数戻り待ちキューをさらに備え、前記
サーバプロセスから前記関数戻り値を受信したときに、
受信した関数戻り値を、前記関数戻り待ちキューに格納
された識別子の前記スレッドに送信することを特徴とす
る請求項6又は7記載の装置。
8. The client monitoring means further comprises a function return wait queue for temporarily storing an identifier of a thread in a function return value wait state after a function is called, and when the function return value is received from the server process. To
8. The apparatus according to claim 6, wherein the received function return value is transmitted to the thread having the identifier stored in the function return waiting queue.
【請求項9】 前記サーバプロセスおよび前記クライア
ントプロセスは、さらにイベントまたは通知に関するメ
ッセージの送信,受信または送受信の何れかを行うこと
を特徴とする請求項1乃至8いずれか一項記載の装置。
9. The apparatus according to claim 1, wherein the server process and the client process further perform any of transmission, reception, and transmission / reception of a message regarding an event or a notification.
【請求項10】 前記クライアント監視手段は、さらに
サーバプロセスからのメッセージの受信を監視すること
を特徴とする請求項9記載の装置。
10. The apparatus according to claim 9, wherein the client monitoring unit further monitors reception of a message from a server process.
【請求項11】 前記クライアント監視手段は、受信し
たメッセージに基づいた処理を実行するメッセージハン
ドラをさらに備えたことを特徴とする請求項10記載の
装置。
11. The apparatus according to claim 10, wherein the client monitoring unit further includes a message handler that executes a process based on the received message.
【請求項12】 前記サーバプロセスは、前記クライア
ントプロセスからの関数呼び出しを監視するサーバ監視
手段を備えたことを特徴とする請求項1乃至11いずれ
か一項記載の装置。
12. The apparatus according to claim 1, wherein the server process includes a server monitoring unit that monitors a function call from the client process.
【請求項13】 前記サーバ監視手段は、複数のクライ
アントプロセスからの関数呼び出しを監視することを特
徴とする請求項12に記載の装置。
13. The apparatus according to claim 12, wherein the server monitoring unit monitors function calls from a plurality of client processes.
【請求項14】 前記サーバ監視手段は、前記クライア
ントプロセスから関数呼び出しを受信したときに、呼び
出された関数に対応した処理を実行する関数ハンドラを
備えたことを特徴とする請求項12又は13記載の装
置。
14. The server monitoring means comprises a function handler that, when receiving a function call from the client process, executes a process corresponding to the called function. Equipment.
【請求項15】 前記サーバ監視手段は、さらにクライ
アントプロセスからのメッセージの受信を監視すること
を特徴とする請求項12乃至14いずれか一項記載の装
置。
15. The apparatus according to claim 12, wherein the server monitoring unit further monitors reception of a message from a client process.
【請求項16】 前記サーバ監視手段は、受信したメッ
セージに基づいた処理を実行するメッセージハンドラを
さらに備えたことを特徴とする請求項15記載の装置。
16. The apparatus according to claim 15, wherein the server monitoring unit further includes a message handler that executes a process based on the received message.
【請求項17】 実行する処理に応じたハードウェア資
源と、前記処理に係るユーザサービスおよびコントロー
ルサービスのプロセスとを備えており、前記プロセスを
対象としたプロセス間通信機能を有する装置であって、 前記コントロールサービスは、ネットワークを介して接
続された他の装置のクライアントプロセスに対するサー
バプロセスとして動作し、サーバプロセスとして前記他
の装置のクライアントプロセスに提供する一または複数
のサービスを定義した関数を有することを特徴とする装
置。
17. A device comprising a hardware resource according to a process to be executed, a process of a user service and a control service related to the process, and having an inter-process communication function for the process, The control service operates as a server process for a client process of another device connected via a network, and has a function defining one or more services provided to the client process of the other device as a server process. A device characterized by.
【請求項18】 前記コントロールサービスの各プロセ
スは、前記他の装置のクライアントプロセスに提供する
サービスを実行する一または複数のスレッドを備えたこ
とを特徴とする請求項17記載の装置。
18. The apparatus of claim 17, wherein each process of the control service comprises one or more threads that execute services provided to client processes of the other apparatus.
【請求項19】 前記コントロールサービスは、前記他
の装置のクライアントプロセスからの関数呼び出しを監
視するサーバ監視手段を備えたことを特徴とする請求項
17又は18記載の装置。
19. The apparatus according to claim 17, wherein the control service includes a server monitoring unit that monitors a function call from a client process of the other apparatus.
【請求項20】 前記サーバ監視手段は、さらに前記他
の装置のクライアントプロセスからのメッセージの受信
を監視することを特徴とする請求項19記載の装置。
20. The device according to claim 19, wherein the server monitoring unit further monitors reception of a message from a client process of the other device.
【請求項21】 前記コントロールサービスは、さらに
前記他の装置のクライアントプロセスに対しメッセージ
を送信することを特徴とする請求項17乃至20いずれ
か一項記載の装置。
21. The device according to claim 17, wherein the control service further sends a message to a client process of the other device.
【請求項22】 前記コントロールサービスは、前記他
の装置で動作するユーザサービスをクライアントプロセ
スとしたサーバプロセスとして動作することを特徴とす
る請求項17乃至21いずれか一項記載の装置。
22. The apparatus according to claim 17, wherein the control service operates as a server process having a user service operating on the other apparatus as a client process.
【請求項23】 前記コントロールサービスは、前記他
の装置で動作するコントロールサービスをクライアント
プロセスとしたサーバプロセスとして動作することを特
徴とする請求項17乃至22いずれか一項記載の装置。
23. The apparatus according to claim 17, wherein the control service operates as a server process in which the control service operating on the other apparatus is a client process.
【請求項24】 前記ユーザサービスは、前記他の装置
で動作するコントロールサービスをサーバプロセスとし
たクライアントプロセスとして動作することを特徴とす
る請求項17乃至23いずれか一項記載の装置。
24. The apparatus according to claim 17, wherein the user service operates as a client process in which a control service operating on the other apparatus is a server process.
【請求項25】 前記コントロールサービスは、前記他
の装置で動作するコントロールサービスをサーバプロセ
スとしたクライアントプロセスとして動作することを特
徴とする請求項17乃至24いずれか一項記載の装置。
25. The apparatus according to claim 17, wherein the control service operates as a client process in which the control service operating on the other apparatus is a server process.
JP2002244001A 2001-08-27 2002-08-23 Device having inter-process communication function Expired - Fee Related JP4052901B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002244001A JP4052901B2 (en) 2001-08-27 2002-08-23 Device having inter-process communication function
US10/227,921 US7318083B2 (en) 2001-08-27 2002-08-27 Information processing system
EP02019030A EP1292109A1 (en) 2001-08-27 2002-08-27 Information processing system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-257045 2001-08-27
JP2001257045 2001-08-27
JP2002244001A JP4052901B2 (en) 2001-08-27 2002-08-23 Device having inter-process communication function

Publications (2)

Publication Number Publication Date
JP2003162419A true JP2003162419A (en) 2003-06-06
JP4052901B2 JP4052901B2 (en) 2008-02-27

Family

ID=26621076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002244001A Expired - Fee Related JP4052901B2 (en) 2001-08-27 2002-08-23 Device having inter-process communication function

Country Status (1)

Country Link
JP (1) JP4052901B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009253982A (en) * 2008-04-03 2009-10-29 Sharp Corp Method of altering internal task scheduling policies for multifunction printer
US7760387B2 (en) 2004-09-28 2010-07-20 Ricoh Company, Ltd. Image forming device, hardware control method, and hardware control program
CN114036092A (en) * 2021-11-16 2022-02-11 深圳市联影高端医疗装备创新研究院 Medical equipment operation management system, method and storage medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760387B2 (en) 2004-09-28 2010-07-20 Ricoh Company, Ltd. Image forming device, hardware control method, and hardware control program
JP2009253982A (en) * 2008-04-03 2009-10-29 Sharp Corp Method of altering internal task scheduling policies for multifunction printer
CN114036092A (en) * 2021-11-16 2022-02-11 深圳市联影高端医疗装备创新研究院 Medical equipment operation management system, method and storage medium

Also Published As

Publication number Publication date
JP4052901B2 (en) 2008-02-27

Similar Documents

Publication Publication Date Title
JP3405159B2 (en) Printing equipment
US7318083B2 (en) Information processing system
JP3679349B2 (en) Image forming apparatus, image forming method, image forming program, and application program
JP2002082806A (en) Device and method for forming image and program
JP2011138395A (en) Server device, terminal equipment, printing system, and data conversion method thereof
JP2000242460A (en) Image processor and image processing method, and storage medium stored with image processing program
JP2001312382A (en) Device and method for processing information, recording medium storing information processing program and information processing program
JP7102129B2 (en) Image forming apparatus, control method of image forming apparatus, and program
JP6066006B2 (en) Image forming apparatus
JP2004114674A (en) Image forming apparatus and method of securing memory region
JP4350728B2 (en) Image forming apparatus and interprocess communication method
JP4052901B2 (en) Device having inter-process communication function
JP2003177931A (en) Image forming device
JP2006139776A (en) Information processing system
JP2023114678A (en) Server device, control method of server device, and program
JP4052902B2 (en) Image forming apparatus and interprocess communication method
JP3478639B2 (en) Copy system
JP2005287042A (en) Apparatus, method and program for image formation
JP3509815B2 (en) Printing system, image forming apparatus, and job management method
JP2007305143A (en) Information processor and information processing method
JP2006005963A (en) Information processor and information processing method
JP2009134584A (en) Information processor management system, information processor management method, program, and storage medium
JP2005304016A (en) Image forming device, method, and program
JP2003072164A (en) Apparatus, system and method for processing data, storage medium and program
JP3839985B2 (en) Image output control device, image output control method, and storage medium storing computer-readable program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060425

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070215

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070326

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071204

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

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4052901

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131214

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees