JP2003177931A - 画像形成装置 - Google Patents

画像形成装置

Info

Publication number
JP2003177931A
JP2003177931A JP2002244000A JP2002244000A JP2003177931A JP 2003177931 A JP2003177931 A JP 2003177931A JP 2002244000 A JP2002244000 A JP 2002244000A JP 2002244000 A JP2002244000 A JP 2002244000A JP 2003177931 A JP2003177931 A JP 2003177931A
Authority
JP
Japan
Prior art keywords
function
client
image forming
server
forming apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002244000A
Other languages
English (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 JP2002244000A priority Critical patent/JP2003177931A/ja
Priority to EP02019030A priority patent/EP1292109A1/en
Priority to US10/227,921 priority patent/US7318083B2/en
Publication of JP2003177931A publication Critical patent/JP2003177931A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Control Or Security For Electrophotography (AREA)

Abstract

(57)【要約】 【課題】可変性のあるアーキテクチャおよび多種多様な
機能を実現できる画像形成装置を得ることを目的とす
る。 【解決手段】画像形成に係るユーザサービスおよびコン
トロールサービスの処理を行う一または複数のプログラ
ムとを有する画像形成装置であって、ユーザサービスお
よびコントロールサービスのそれぞれは、サーバプロセ
ス202またはクライアントプロセス201として動作
するプロセスであり、サーバプロセス202は、クライ
アントプロセス201に提供する一または複数のサービ
スを定義した関数を有しており、クライアントプロセス
201は、サーバプロセス202にサービスの提供を要
求する際に関数呼び出しを行うことにより上記課題を解
決する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、画像形成装置に
係り、特に複数のプロセスがプロセス間通信を行う画像
形成装置に関する。
【0002】
【従来の技術】近年、プリンタ、コピー、ファクシミ
リ、スキャナなどの各装置の機能を1つの筐体内に収納
した画像形成装置(以下、「複合機」という。)が一般
的に知られている。
【0003】この複合機は、1つの筐体内に表示部、印
刷部および撮像部などを設けるとともに、プリンタ、コ
ピーおよびファクシミリ装置にそれぞれ対応する3種類
のソフトウェアを設け、ソフトウェアの切り替えによっ
て、当該装置をプリンタ、コピー、スキャナまたはファ
クシミリ装置として動作させるものである。
【0004】従来の複合機では、内部にプリンタ、コピ
ー、スキャナおよびファクシミリ装置に対応するソフト
ウェア(汎用OSを含む)をそれぞれ別個に設ける構成
となっており、各ソフトウェアの開発に多大の時間を要
する。
【0005】このため、出願人は、ハードウェア・イン
ターフェースをドライブするドライバと呼ばれるソフト
ウェア群と、メモリ/タイマなどの共通なハードウェア
資産を効率良く使用するためのマネージャ・ソフトウェ
ア群や各アプリケーションで共通に使用できるシステム
・ユーティリティ・ソフトウェア群と、これらのドライ
バ・ソフトウェア群,マネージャ・ソフトウェア群,ユ
ーティリティ・ソフトウェア群を使用するプリンタ/ス
キャナ/FAX送信/FAX受信などの実アプリケーシ
ョンとを備えた複合機(特開平9−51398号公報,
特開平9−91102号公報参照)を発明した。
【0006】しかしながら、特開平9−51398号公
報,特開平9−91102号公報に記載されている複合
機は、ドライバ・ソフトウェア群,マネージャ・ソフト
ウェア群,ユーティリティ・ソフトウェア群がライブラ
リで構成されており、ハードウェア資源を実行制御する
主体となり得なかった。
【0007】そこで、出願人は、表示部、印刷部および
撮像部などの画像形成処理で使用されるハードウェア資
源を有し、プリンタ、コピーまたはファクシミリなどの
各ユーザサービスにそれぞれ固有の処理を行うアプリケ
ーションを複数搭載し、これらのアプリケーションとハ
ードウェア資源との間に介在して、ユーザサービスを提
供する際に、アプリケーションの少なくとも2つが共通
的に必要とするハードウェア資源の管理、実行制御並び
に画像形成処理を行う各種コントロールサービスからな
るプラットホームを備えた複合機(特開2002−82
806号公報参照)を発明した。
【0008】なお、ユーザサービスとはユーザに提供す
る画像形成に係るサービスをいう。また、コントロール
サービスとはアプリケーションに画像形成に係るハード
ウェア資源を提供するサービスをいう。
【0009】この複合機によれば、アプリケーションの
少なくとも2つが共通的に必要とするハードウェア資源
の管理、実行制御並びに画像形成処理を行うプラットホ
ームを備えた構成とすることによって、ソフトウェア開
発の効率化を図るとともに、装置全体としての生産性を
向上させることが可能となる。
【0010】
【発明が解決しようとする課題】このような複合機で
は、アプリケーションの少なくとも2つが共通的に必要
とするサービスを提供するコントロールサービスを有す
る構成となっているため、機能変更、機能追加、または
将来的なハードウェア資源の追加、変更などに柔軟に対
応すべく、アプリケーションごとあるいはコントロール
サービスごとの追加、変更を容易に行えることが望まれ
る。また、複合サービスを提供する際に、各アプリケー
ションと各コントロールサービス間、あるいは各コント
ロールサービス間でサービスやデータの授受を円滑に行
うことが必要となってくる。
【0011】すなわち、複合機は、プリンタ、コピー、
ファクシミリ、スキャナなど多種の機能を備えたもので
あるが、その一部の機能に故障あるいは仕様変更などが
生じた場合に、全てのアプリケーションまたは全てのコ
ントロールサービスのモジュールを修正しなければなら
ないと、作業の労力が過大となる。
【0012】また、将来的に、複合機に新たな機能を追
加する場合でも一部の機能の追加のために全てのコント
ロールサービスや全てのアプリケーションのモジュール
変更が必要となると、プログラム開発の労力が過大とな
ってしまう。このため、複合機上で動作する各アプリケ
ーションやコントロールサービスのモジュールは互いに
サービスやデータの送受信を実現としながらも、モジュ
ール間の独立性を維持していることが必要となってく
る。
【0013】すなわち、アプリケーションや各コントロ
ールサービスごとに独立性がないと、必要なアプリケー
ションや必要なコントロールサービスのみを提供するこ
とが困難となり、機能変更や機能追加などに柔軟に対応
できるような複合機の構成に可変性を持たせることがで
きない。
【0014】また、各アプリケーションや各コントロー
ルサービスごとに独立性がないと、アプリケーションや
コントロールサービスごとの設計および構築が困難にな
り、多種多様な機能を提供することができない。
【0015】この発明は上記に鑑みてなされたもので、
可変性のあるアーキテクチャおよび多種多様な機能を実
現できる画像形成装置を得ることを目的とする。
【0016】
【課題を解決するための手段】上記目的を達成するた
め、請求項1にかかる発明は、画像形成処理で使用され
るハードウェア資源と、画像形成に係るユーザサービス
およびコントロールサービスの処理を行う一または複数
のプログラムとを有する画像形成装置であって、前記ユ
ーザサービスおよびコントロールサービスのそれぞれ
は、サーバプロセスまたはクライアントプロセスとして
動作するプロセスであり、前記サーバプロセスは、前記
クライアントプロセスに提供する一または複数のサービ
スを定義した関数を有しており、前記クライアントプロ
セスは、前記サーバプロセスにサービスの提供を要求す
る際に関数呼び出しを行うことを特徴とする。
【0017】この請求項1にかかる発明によれば、一ま
たは複数のユーザサービスおよびコントロールサービス
の相互間で、関数呼び出しによるプロセス間通信を実現
することができる。
【0018】このため、ユーザサービスおよびコントロ
ールサービスに共通するサービスを提供するコントロー
ルサービスを有する画像形成装置において、各ユーザサ
ービスおよび各コントロールサービスの間の独立性を維
持しながら互いにサービスやデータの授受をプロセス間
通信によって実現することができ、機能的に多様性のあ
る画像形成装置を提供することができる。
【0019】また、ユーザサービスやコントロールサー
ビスの一部のモジュールにのみ変更がある場合や、必要
に応じてユーザサービスまたはコントロールサービスを
追加する場合でも、サーバプロセスとなるモジュール側
で関数を実装し、クライアントプロセスとなるモジュー
ル側で関数呼び出しを行うというインタフェースを確保
しておけば、サービスやデータの授受が可能となる。
【0020】このため、ユーザサービスやコントロール
サービスの追加または変更を容易に実現することがで
き、可変性を持った画像形成装置を構成することができ
る。
【0021】さらに、ユーザサービスおよびコントロー
ルサービスのそれぞれは、サーバプロセスまたはクライ
アントプロセスとして動作するプロセスであるため、複
数のユーザサービスや複数のコントロールサービスをそ
れぞれ別個のプロセスとして動作させることにより、他
のユーザサービスまたは他のコントロールサービスのプ
ロセスが停止した場合でも動作中の他のプロセスは影響
を受けない。
【0022】このため、一部のプロセスが停止した場合
でも他の複合サービスを続行して提供することができ、
すべての複合サービスが提供不可能になることを防止す
ることができる。
【0023】ここで、「サーバプロセス」とは、他のプ
ロセスからの要求により、要求されたサービスを提供す
るプロセスをいい、サービスを提供する限り、ユーザサ
ービスおよびコントロールサービスのいずれもサーバプ
ロセスとして動作することができる。
【0024】また、「クライアントプロセス」とは、こ
のようなサーバプロセスからサービスの提供を受けるプ
ロセスをいい、サービスの提供を受ける限り、ユーザサ
ービスおよびコントロールサービスのいずれもクライア
ントプロセスとして動作することができる。
【0025】「関数」とは、サーバプロセスに対するサ
ービスの処理要求やサーバプロセスによる所定の設定値
の設定要求に対し、サーバプロセス側で要求された処理
や設定を実行するものである。
【0026】また、請求項2にかかる発明は、前記コン
トロールサービスは、前記ユーザサービスをクライアン
トプロセスとしたサーバプロセスとして動作して、前記
ユーザサービスの少なくとも2つが共通的に必要とする
サービスを定義した関数を有し、前記ユーザサービス
は、前記コントロールサービスにサービスの提供を要求
する際に関数呼び出しを行うことを特徴とする。
【0027】この請求項2にかかる発明によれば、ユー
ザサービスに対するコントロールサービスからのサービ
スの提供を関数呼び出しによるプロセス間通信によって
実現することができ、アプリケーションを用いた可変性
および多様性のある画像形成装置の提供が可能となる。
【0028】また、請求項3にかかる発明は、前記コン
トロールサービスは、他のコントロールサービスをクラ
イアントプロセスとしたサーバプロセスとして動作し
て、前記他のコントロールサービスの少なくとも2つが
共通的に必要とするサービスを定義した関数を有してお
り、前記他のコントロールサービスは、前記コントロー
ルサービスにサービスの提供を要求する際に関数呼び出
しを行うことを特徴とする。
【0029】この請求項3にかかる発明によれば、コン
トロールサービス間のサービスの提供を関数呼び出しに
よるプロセス間通信によって実現することができ、コン
トロールサービスを用いた可変性および多様性のある画
像形成装置の提供が可能となる。
【0030】また、請求項4にかかる発明は、前記コン
トロールサービスは、前記サーバプロセスとして動作す
るとともに前記クライアントプロセスとして動作するこ
とを特徴とする。
【0031】この請求項4にかかる発明によれば、ユー
ザサービスとコントロールサービス間の双方向のサービ
スの提供、およびコントロールサービス間の双方向のサ
ービスの提供を関数呼び出しによるプロセス間通信によ
って実現することができ、より可変性および多様性のあ
る画像形成装置の提供が可能となる。
【0032】また、請求項5にかかる発明は、前記ユー
ザサービスおよび前記コントロールサービスの各プロセ
スは、一または複数のスレッドを含むことを特徴とす
る。
【0033】この請求項5にかかる発明によれば、独立
して動作する必要のない機能を同一プロセス内の複数ス
レッドに割り当てて並列に実行させることが可能とな
る。また、スレッド単位での実行制御の切り替えは、主
記憶空間を共有し主記憶空間の切り替えが不要で、カウ
ンタやレジスタの切り替えというオーバヘッドの少ない
切り替えのみで実現できるため、別個の主記憶空間を使
用して主記憶空間の切り替えが必要なプロセス単位の切
り替えに比べて、切り替え時のオーバヘッドが少ない。
【0034】このため、ユーザサービスおよびコントロ
ールサービスの各プロセス内に一または複数のスレッド
を起動して並列実行を行うことにより、コピー、プリン
タなどの複合サービスの並列実行時の処理速度を向上さ
せることができる。
【0035】また、請求項6にかかる発明は、前記ユー
ザサービスおよび前記コントロールサービスは、前記ク
ライアントプロセスとして動作するときに、前記サーバ
プロセスへの関数呼び出しに対する関数戻り値の受信を
監視し、受信した関数戻り値を前記関数呼び出しを行っ
たスレッドに受け渡すクライアント監視手段を備えたこ
とを特徴とする。
【0036】この請求項6にかかる発明によれば、クラ
イアントプロセスから関数呼び出しを行ったスレッド
は、クライアント監視手段によって関数戻り値が受け渡
されるまで、次の命令実行を待機することによりプロセ
ス内の他のスレッドが実行権を得ることができ、並列動
作を行うことができる。
【0037】このため、プロセス内に複数のスレッドを
起動してプロセス間通信を行いながら、関数呼び出しに
伴う戻り値待ちによってプロセスの他のスレッドが動作
でき並列性を保証する。
【0038】また、請求項7にかかる発明は、前記クラ
イアント監視手段は、スレッドで実現されることを特徴
とする。
【0039】この請求項7にかかる発明によれば、クラ
イアント監視手段の機能を一または複数のスレッドで実
現することができる。
【0040】また、請求項8にかかる発明は、前記クラ
イアント監視手段は、関数の呼び出し後に関数戻り値待
ち状態のスレッドの識別子を一時的に格納する関数戻り
待ちキューをさらに備え、前記サーバプロセスから前記
関数戻り値を受信したときに、受信した関数戻り値を、
前記関数戻り待ちキューに格納された識別子の前記スレ
ッドに送信することを特徴とする。
【0041】この請求項8にかかる発明によれば、プロ
セス内部の複数スレッドが単一サーバに対して関数呼び
出しを行い、独立して関数の戻りを待つことができ、関
数戻り値のスレッドへの送信を確実に行い、スレッドの
並列動作をより確実かつ容易に実現することができる。
【0042】また、請求項9にかかる発明は、前記サー
バプロセスおよび前記クライアントプロセスは、さらに
イベントまたは通知に関するメッセージの送信,受信ま
たは送受信の何れかを行うことを特徴とする。
【0043】この請求項9にかかる発明において、「メ
ッセージ」とは、サーバプロセスとクライアントプロセ
スとの間でイベントや通知を行う際に送信するものであ
り、関数のように戻り値を必要としないものをいう。
【0044】この請求項9にかかる発明によれば、画像
形成装置におけるプロセス間通信を関数呼び出しの他メ
ッセージによっても可能とし、機能的に多様性のある画
像形成装置を提供することができる。また、スレッド間
で同期をとる必要のないプロセス間通信をメッセージに
よって実現することにより、画像形成装置におけるプロ
セス間通信の処理速度を向上させることができる。
【0045】また、請求項10にかかる発明は、前記ク
ライアント監視手段は、さらにサーバプロセスからのメ
ッセージの受信を監視するものであることを特徴とす
る。
【0046】この請求項10にかかる発明によれば、サ
ーバプロセスから送信されたメッセージをクライアント
監視手段で一括して受信することができ、画像形成装置
におけるプロセス間通信の処理効率を向上させることが
できる。
【0047】また、請求項11にかかる発明は、前記ク
ライアント監視手段は、受信したメッセージに基づいた
処理を実行するメッセージハンドラをさらに備えたこと
を特徴とする。
【0048】この請求項11にかかる発明によれば、受
信メッセージを対応するメッセージハンドラに委ねるこ
とができ、メッセージを利用したプロセス間通信の処理
効率の向上を図ることができる。
【0049】本発明における「メッセージハンドラ」
は、受信したメッセージをスレッドに受け渡すものであ
ればよく、メッセージごとに別個のメッセージハンドラ
を設ける他、受信可能なすべてのメッセージの受け渡し
処理を行う単一モジュールとすることもできる。
【0050】また、請求項12にかかる発明は、前記サ
ーバプロセスは、前記クライアントプロセスからの関数
呼び出しを監視するサーバ監視手段を備えたことを特徴
とする。
【0051】この請求項12にかかる発明によれば、ク
ライアントプロセスからの関数呼び出しをサーバ監視手
段により一括して受信して、画像形成装置におけるプロ
セス間通信の処理効率を向上させることができる。
【0052】また、請求項13にかかる発明は、前記サ
ーバ監視手段は、複数のクライアントプロセスからの関
数呼び出しを監視することを特徴とする。
【0053】この請求項13にかかる発明によれば、サ
ーバプロセスは複数のクライアントプロセスに対するサ
ーバプロセスとして動作することが可能となり、複数の
アプリケーション、複数のコントロールサービスをクラ
イアントプロセスとして種々の機能を単一のサーバプロ
セスで提供することができ、機能的に多種多様な画像形
成装置を提供することができる。
【0054】また、請求項14にかかる発明は、前記サ
ーバ監視手段は、前記クライアントプロセスから関数呼
び出しを受信したときに、呼び出された関数に対応した
処理を実行する関数ハンドラを備えたことを特徴とす
る。
【0055】この請求項14にかかる発明によれば、サ
ーバプロセスは提供するサービスを関数ハンドラを利用
したプロセス間通信によってクライアントプロセスに提
供することができ、機能的に多様性のある画像形成装置
を提供することができる。
【0056】また、関数に対応した処理を関数ハンドラ
に委ねることができ、サーバプロセスとして提供する機
能を実行する関数ハンドラを予め設けておけばクライア
ントプロセスにサービスを提供することができる。この
ため、提供する機能に追加や変更が生じた場合でも、関
数ハンドラを追加、変更するだけでサーバ監視手段の機
能の大きな変更は必要なくなるので、容易に可変性のあ
る画像形成装置を提供することができる。
【0057】本発明における「関数ハンドラ」は、クラ
イアントプロセスから呼び出した関数に対応した処理を
実行するものであればよく、関数ハンドラをサーバプロ
セス側で提供する関数のすべてを関数ごとに実行する単
一モジュールとする他、関数ごとに別個の関数ハンドラ
を設ける構成とすることができる。この場合には、より
画像形成装置の可変性を高めることが可能である。
【0058】また、請求項15にかかる発明は、前記サ
ーバ監視手段は、さらにクライアントプロセスからのメ
ッセージの受信を監視することを特徴とする。
【0059】この請求項15にかかる発明によれば、ク
ライアントプロセスから送信されたメッセージをサーバ
監視手段で一括して受信することができ、画像形成装置
におけるプロセス間通信の処理効率を向上させることが
できる。
【0060】また、請求項16にかかる発明は、前記サ
ーバ監視手段は、受信したメッセージに基づいた処理を
実行するメッセージハンドラをさらに備えたことを特徴
とする。
【0061】この請求項16にかかる発明によれば、受
信メッセージに関する処理をメッセージハンドラに委ね
ることができ、メッセージを利用したプロセス間通信の
処理効率の向上を図ることができる。
【0062】本発明における「メッセージハンドラ」
も、受信したメッセージをスレッドに受け渡すものであ
ればよく、メッセージごとに別個のメッセージハンドラ
を設ける他、受信可能なすべてのメッセージの受け渡し
処理を行う単一モジュールとすることもできる。
【0063】また、本発明のつぎの態様は、上記発明の
いずれか一つに記載の画像形成装置において、前記コン
トロールサービスは、ジョブまたはエンジンの制御を行
うエンジンコントロールサービスを有し、前記エンジン
コントロールサービスは、クライアントプロセスから関
数呼び出しを受信したときに、ジョブ制御処理またはエ
ンジン制御処理を実行する関数ハンドラを備えたことを
特徴とする。
【0064】この発明によれば、エンジンコントロール
サービスがクライアントプロセスから関数呼び出しを受
信したときに、ジョブ制御処理またはエンジン制御処理
を実行する関数ハンドラを備えたことで、エンジンコン
トロールサービスが提供するジョブ制御処理またはエン
ジン制御処理に関するサービスを関数ハンドラを利用し
たプロセス間通信によってクライアントプロセスに提供
することができ、機能的に多様性のある画像形成装置を
提供することができる。
【0065】また、エンジンコントロールサービスがサ
ーバプロセスとして提供するジョブ制御またはエンジン
制御の機能に追加や変更が生じた場合でも、関数ハンド
ラを追加、変更するだけでエンジンコントロールサービ
ス側の大きな変更は必要なくなり、容易に可変性のある
画像形成装置を提供することができる。
【0066】また、本発明のつぎの態様は、上記発明に
記載の画像形成装置において、前記エンジンコントロー
ルサービスは、さらに、ジョブ制御またはエンジン制御
に関するメッセージを送信することを特徴とする。
【0067】この発明によれば、エンジンコントロール
サービスがさらに、ジョブ制御またはエンジン制御に関
するメッセージを送信することで、関数の他ジョブ制御
またはエンジン制御に関するイベントまたは通知など戻
り値を必要としない処理をメッセージによって実現し、
機能的に多様性のある画像形成装置を提供することがで
きる。
【0068】また、本発明のつぎの態様は、上記発明の
いずれか一つに記載の画像形成装置において、前記コン
トロールサービスは、メモリまたはハードディスク装置
の制御を行うメモリコントロールサービスを有し、前記
メモリコントロールサービスは、クライアントプロセス
からの関数呼び出しを受信したときに、メモリ制御処理
またはハードディスク制御処理を実行する関数ハンドラ
を備えたことを特徴とする。
【0069】この発明によれば、メモリコントロールサ
ービスがクライアントプロセスから関数呼び出しを受信
したときに、メモリ制御処理またはハードディスク制御
処理を実行する関数ハンドラを備えたことで、メモリコ
ントロールサービスが提供するメモリ制御処理またはハ
ードディスク制御処理に関するサービスを関数ハンドラ
を利用したプロセス間通信によってクライアントプロセ
スに提供することができ、機能的に多様性のある画像形
成装置を提供することができる。
【0070】また、メモリコントロールサービスがサー
バプロセスとして提供するメモリ制御またはハードディ
スク制御の機能に追加や変更が生じた場合でも、関数ハ
ンドラを追加、変更するだけでメモリコントロールサー
ビス側の機能の大きな変更は必要なくなり、容易に可変
性のある画像形成装置を提供することができる。
【0071】また、本発明のつぎの態様は、上記発明に
記載の画像形成装置において、前記メモリコントロール
サービスは、さらに、メモリ制御またはハードディスク
制御に関するメッセージを送信することを特徴とする。
【0072】この発明によれば、メモリコントロールサ
ービスがさらに、メモリ制御またはハードディスク制御
に関するメッセージを送信することで、関数の他メモリ
制御またはハードディスク制御に関するイベントまたは
通知など戻り値を必要としない処理をメッセージによっ
て実現し、機能的に多様性のある画像形成装置を提供す
ることができる。
【0073】また、本発明のつぎの態様は、上記発明の
いずれか一つに記載の画像形成装置において、前記コン
トロールサービスは、ファックス通信の制御を行うファ
ックスコントロールサービスを有し、前記ファックスコ
ントロールサービスは、クライアントプロセスからの関
数呼び出しを受信したときに、ファックス通信制御処理
を実行する関数ハンドラを備えたことを特徴とする。
【0074】この発明によれば、ファックスコントロー
ルサービスがクライアントプロセスからの関数呼び出し
を受信したときに、ファックス通信制御処理を実行する
関数ハンドラを備えたことで、ファックスコントロール
サービスが提供するファックス通信制御処理に関するサ
ービスを関数ハンドラを利用したプロセス間通信によっ
てクライアントプロセスに提供することができ、機能的
に多様性のある画像形成装置を提供することができる。
【0075】また、ファックスコントロールサービスが
サーバプロセスとして提供するファックス通信制御の機
能に追加や変更が生じた場合でも、関数ハンドラを追
加、変更するだけでファックスコントロールサービス側
の機能の大きな変更は必要なくなり、容易に可変性のあ
る画像形成装置を提供することができる。
【0076】また、本発明のつぎの態様は、上記発明の
画像形成装置において、前記ファックスコントロールサ
ービスは、さらにファックス通信制御に関するメッセー
ジを送信することを特徴とする。
【0077】この発明によれば、ファックスコントロー
ルサービスがさらに、ファックス通信制御に関するメッ
セージを送信することで、関数の他ファックス通信制御
に関するイベントまたは通知など戻り値を必要としない
処理をメッセージによって実現し、機能的に多様性のあ
る画像形成装置を提供することができる。
【0078】また、請求項17にかかる発明は、画像形
成処理で使用されるハードウェア資源と、画像形成に係
るユーザサービスおよびコントロールサービスの処理を
行う一または複数のプログラムとを有する画像形成装置
であって、前記コントロールサービスは、ネットワーク
に接続された他の画像形成装置で動作するクライアント
プロセスに対するサーバプロセスとして動作し、サーバ
プロセスとして前記他の画像形成装置のクライアントプ
ロセスに提供する一または複数のサービスを定義した関
数を有していることを特徴とする。
【0079】この請求項17にかかる発明によれば、コ
ントロールサービスはネットワーク上の他の画像形成装
置で動作するプロセスをクライアントとしたサーバプロ
セスとして関数呼び出しを利用したプロセス間通信を実
現することができ、同一の画像形成装置内のプロセスだ
けでなく、ネットワーク上の画像形成装置に対してもサ
ービスの提供が可能となり、多種多様な機能を実現する
ことができる。
【0080】この請求項17にかかる発明において、サ
ーバプロセスとなるコントロールサービスが動作してい
る画像形成装置は、ユーザサービスおよびコントロール
サービスを搭載可能であればその構成は限定されるもの
ではない。すなわち、当該画像形成装置は、サービスを
提供するコントロールサービスが1つでも搭載されてい
れば良く、ユーザサービスが未搭載の画像形成装置や、
コントロールサービスが1個のみ搭載されている画像形
成装置も含まれる。
【0081】また、請求項18にかかる発明は、前記コ
ントロールサービスの各プロセスは、前記他の画像形成
装置のクライアントプロセスに提供するサービスを実行
する一または複数のスレッドを備えたことを特徴とす
る。
【0082】この請求項18にかかる発明によれば、ネ
ットワーク上の他の画像形成装置で動作するアプリケー
ションなどのユーザサービスのプロセスに提供するサー
ビスを並列実行させることができる。
【0083】このため、例えば、ネットワーク上の異な
る複数の画像形成装置のクライアントプロセスから同時
に関数呼び出しを受けた場合でも、実行制御の切り替え
の速いスレッドでサービスを並列実行させるので、ネッ
トワーク上の複数の画像形成装置へのサービスの提供を
迅速に行うことが可能となる。
【0084】また、請求項19にかかる発明は、前記コ
ントロールサービスは、前記他の画像形成装置のクライ
アントプロセスからの関数呼び出しを監視するサーバ監
視手段を備えたことを特徴とする。
【0085】この請求項19にかかる発明によれば、他
の画像形成装置のクライアントプロセスからの関数呼び
出しをサーバ監視手段により一括して受信して、ネット
ワーク上の画像形成装置とのプロセス間通信の処理効率
を向上させることができる。
【0086】また、請求項20にかかる発明は、前記サ
ーバ監視手段は、さらに前記他の画像形成装置のクライ
アントプロセスからのメッセージの受信を監視すること
を特徴とする。
【0087】この請求項20にかかる発明によれば、コ
ントロールサービスはネットワークに接続された他の画
像形成装置で動作するプロセスからのメッセージの一括
した受信が可能となり、ネットワーク上の画像形成装置
とのプロセス間通信の処理効率を向上させることができ
る。
【0088】また、請求項21にかかる発明は、前記コ
ントロールサービスは、さらに前記他の画像形成装置の
クライアントプロセスに対しメッセージを送信すること
を特徴とする。
【0089】この請求項21にかかる発明によれば、コ
ントロールサービスはネットワークに接続された他の画
像形成装置で動作するプロセスをクライアントとしたサ
ーバプロセスとして関数の他メッセージを利用したプロ
セス間通信を行うことができ、ネットワーク上の画像形
成装置に対して多種多様な機能を実現することができ
る。
【0090】また、請求項22にかかる発明は、前記コ
ントロールサービスは、前記他の画像形成装置で動作す
るユーザサービスをクライアントプロセスとしたサーバ
プロセスとして動作することを特徴とする。
【0091】この請求項22にかかる発明によれば、ネ
ットワーク上の他の画像形成装置で動作するアプリケー
ションのプロセスに対してコントロールサービスの機能
を提供することができる。
【0092】また、コントロールサービスがネットワー
ク上の画像形成装置内に存在しない場合や使用できない
場合でも、プロセス間通信によって、当該ネットワーク
上の画像形成装置にコントロールサービスの機能を提供
できるので、ネットワークを利用した複数の画像形成装
置間でコントロールサービスの機能の共有化を実現する
ことが可能となる。
【0093】また、請求項23にかかる発明は、前記コ
ントロールサービスは、前記他の画像形成装置で動作す
るコントロールサービスをクライアントプロセスとした
サーバプロセスとして動作することを特徴とする。
【0094】この請求項23にかかる発明によれば、ネ
ットワーク上の他の画像形成装置で動作するコントロー
ルサービスに対してコントロールサービスの機能を提供
することができる。
【0095】また、あるコントロールサービスがネット
ワーク上の画像形成装置内に存在しない場合や使用でき
ない場合でも、プロセス間通信によって、当該ネットワ
ーク上の画像形成装置にコントロールサービスの機能を
提供できるので、ネットワークを利用した複数の画像形
成装置間でコントロールサービスの機能の共有化を実現
することが可能となる。
【0096】また、請求項24にかかる発明は、前記ユ
ーザサービスは、前記他の画像形成装置で動作するコン
トロールサービスをサーバプロセスとしたクライアント
プロセスとして動作することを特徴とする。
【0097】この請求項24にかかる発明によれば、ユ
ーザサービスはネットワーク上のコントロールサービス
からサービスの提供を受けることができる。また、ネッ
トワーク上の画像形成装置でユーザサービスが使用でき
ない状況にあっても、プロセス間通信によって、ネット
ワーク上の画像形成装置のコントロールサービスからの
サービスの提供を受けることができるので、ネットワー
クを利用した複数の画像形成装置間でコントロールサー
ビスの機能の共有化を実現することが可能となる。
【0098】また、請求項25にかかる発明は、前記コ
ントロールサービスは、前記他の画像形成装置で動作す
るコントロールサービスをサーバプロセスとしたクライ
アントプロセスとして動作することを特徴とする。
【0099】この請求項25にかかる発明によれば、コ
ントロールサービスはネットワーク上のコントロールサ
ービスからサービスの提供を受けることができる。ま
た、ネットワーク上の画像形成装置でコントロールサー
ビスが使用できない場合でも、プロセス間通信によっ
て、ネットワーク上の画像形成装置のコントロールサー
ビスからのサービスの提供を受けることができるので、
ネットワークを利用した複数の画像形成装置間でコント
ロールサービスの機能の共有化を実現することが可能と
なる。
【0100】
【発明の実施の形態】以下に添付図面を参照して、この
発明にかかる画像形成装置の好適な実施の形態を詳細に
説明する。 (実施の形態1)図1は、この発明の実施の形態1であ
る画像形成装置(以下、「複合機」という)の構成を示
すブロック図である。図1に示すように、複合機は、白
黒ラインプリンタ(B&W LP)101と、カラーラインプ
リンタ(Color LP)102と、スキャナ103と、ファ
クシミリ104などのハードウェアリソースなどを有す
るとともに、プラットホーム120とアプリケーション
130とから構成されるソフトウェア群110を備えて
いる。
【0101】プラットホーム120は、アプリケーショ
ン130からの処理要求を解釈してハードウェア資源の
獲得要求を発生させるコントロールサービスと、一また
は複数のハードウェア資源の管理を行い、コントロール
サービスからの獲得要求を調停するシステムリソースマ
ネージャ(SRM)123と、汎用OS121とを有す
る。
【0102】コントロールサービスは、複数のサービス
モジュールから形成され、SCS(システムコントロー
ルサービス)122と、ECS(エンジンコントロール
サービス)124と、MCS(メモリコントロールサー
ビス)125と、OCS(オペレーションパネルコント
ロールサービス)126と、FCS(ファックスコント
ロールサービス)127と、NCS(ネットワークコン
トロールサービス)128とから構成される。なお、こ
のプラットホーム120は、あらかじめ定義された関数
により前記アプリケーション130から処理要求を受信
可能とするアプリケーションプログラムインタフェース
(API)を有する。
【0103】汎用OS121は、UNIX(登録商標)
などの汎用オペレーティングシステムであり、プラット
ホーム120並びにアプリケーション130の各ソフト
ウェアをそれぞれプロセスとして並列実行する。
【0104】SRM123は、SCS122とともにシ
ステムの制御およびリソースの管理を行うものであり、
スキャナ部やプリンタ部などのエンジン、メモリ、HD
Dファイル、ホストI/O(セントロI/F、ネットワ
ークI/F、IEEE1394 I/F、RS232C
I/Fなど)のハードウェア資源を利用する上位層か
らの要求にしたがって調停を行い、実行制御する。
【0105】具体的には、このSRM123は、要求さ
れたハードウェア資源が利用可能であるか(他の要求に
より利用されていないかどうか)を判断し、利用可能で
あれば要求されたハードウェア資源が利用可能である旨
を上位層に伝える。また、SRM123は、上位層から
の要求に対してハードウェア資源の利用スケジューリン
グを行い、要求内容(たとえば、プリンタエンジンによ
り紙搬送と作像動作、メモリ確保、ファイル生成など)
を直接実施している。
【0106】SCS122はアプリ管理、操作部制御、
システム画面表示、LED表示、リソース管理、割り込
みアプリ制御を行うものである。ECS124は、白黒
ラインプリンタ(B&W LP)101、カラーラインプリン
タ(Color LP)102、スキャナ103、ファクシミリ
104からなるハードウェアリソースのエンジンを制御
するものである。
【0107】MCS125は、画像メモリの取得および
解放、ハードディスク装置(HDD)の利用、画像デー
タの圧縮および伸張などを行うものである。OCS12
6は、オペレータと本体制御間の情報伝達手段となる操
作パネルを制御するモジュールである。
【0108】FCS127は、システムコントローラの
各アプリ層からPSTN/ISDN網を利用したファク
シミリ送受信、BKM(バックアップSRAM)で管理
されている各種ファクシミリデータの登録/引用、ファ
クシミリ読みとり、ファクシミリ受信印刷、融合送受信
を行うためのAPIを提供するものである。FCS12
7では、そのサブプロセスであるFCUハンドラ129
(FCUH)が起動される。このFCUH129は、F
CS127からの指令によりファクシミリ送受信の際に
ファクシミリエンジンのデバイスドライバを制御するも
のである。
【0109】NCS128は、ネットワークI/Oを必
要とするアプリケーションに対して共通に利用できるサ
ービスを提供するためのモジュール群であり、ネットワ
ーク側から各プロトコルによって受信したデータを各ア
プリケーションに振り分けたり、アプリケーションから
データをネットワーク側に送信する際の仲介を行うもの
である。
【0110】アプリケーション130は、ページ記述言
語(PDL)、PCLおよびポストスクリプト(PS)
を有するプリンタ用のアプリケーションであるプリンタ
アプリ111と、コピー用アプリケーションであるコピ
ーアプリ112と、ファクシミリ用アプリケーションで
あるファックスアプリ113と、スキャナ用アプリケー
ションであるスキャナアプリ114と、ネットワークフ
ァイル用アプリケーションであるネットファイルアプリ
115と、工程検査用アプリケーションである工程検査
アプリ116とを有している。
【0111】これらの各コントロールサービスとSRM
123と各アプリとは、それぞれプロセスとして汎用O
S上に生成されて実行される。各プロセス内部では、複
数のスレッドが起動され、汎用OSの管理下でこれらの
スレッドのCPU占有時間を切り替えることにより並列
実行が実現されている。各アプリプロセスと各コントロ
ールサービスプロセスとは、後述するプロセス間通信に
よって各種メッセージやデータの送受信および関数呼び
出しを行う。
【0112】図2は、実施の形態1の複合機上で動作す
るサーバプロセスとクライアントプロセスの関係を示す
ブロック図である。ここで、サーバプロセス202と
は、クライアントプロセス201からの要求によりクラ
イアントプロセス201に対しサービスを提供するプロ
セスをいう。クライアントプロセス201とは、サーバ
プロセス202に対して要求を行うことにより、サーバ
プロセス202からサービスの提供を受けるプロセスを
いう。
【0113】実施の形態1の複合機では、上述のコピー
アプリ112、プリンタアプリ111、スキャナアプリ
114、ファックスアプリ113などのアプリケーショ
ンプロセス、およびECS124、MCS125、FC
S127、NCS128などのコントロールサービスの
プロセスが主としてクライアントプロセス201とな
り、コントロールサービスおよびSRM123のプロセ
スが主としてサーバプロセス202となる。
【0114】すなわち、各アプリがコントロールサービ
スからサービスの提供を受ける場合には、各アプリのプ
ロセスがクライアントプロセス201として動作し、コ
ントロールサービスがサーバプロセス202として動作
する。また、コントロールサービス間でサービスの要求
と提供を行う場合には、サービスの要求を行うコントロ
ールサービスがクライアントプロセス201として動作
し、サービスの提供を行うコントロールサービスがサー
バプロセス202として動作する。
【0115】なお、これらの例に限られず、各アプリの
プロセス、コントロールサービスのプロセス、SRMプ
ロセスは、いずれもサーバプロセス202およびクライ
アントプロセス201となることができる。すなわち、
これらのプロセスが、他のいずれかのプロセスに対しサ
ービスを要求する場合にはクライアントプロセス201
として動作する一方、他のプロセスからの要求によりサ
ービスを提供する場合にはサーバプロセス202として
動作することになる。
【0116】図2に示すとおり、これらのアプリ、コン
トロールサービスおよびSRM123のプロセスには、
いずれも複数のスレッドが起動している。そして、各プ
ロセスは、複数のスレッドを有することから、他のプロ
セスからの要求を受けた場合に、当該他のプロセスをク
ライアントプロセス201としたサーバプロセス202
として動作するが、これと同時に、他のプロセスに対し
てサービスを要求する場合に当該他のプロセスをサーバ
プロセス202としたクライアントプロセス201とし
て動作する。
【0117】また、各プロセスは、同時に複数のプロセ
スをクライアントプロセス201としたサーバプロセス
202となることも可能である。さらに、各プロセス
は、同時に複数のサーバプロセス202からのサービス
の提供を受けるクライアントプロセス201となること
も可能である。
【0118】図2に示す通り、クライアントプロセス2
01は、サーバプロセス202のサービスを要求するた
めに、クライアントプロセス内のスレッドからサーバプ
ロセス202に対して関数コールを行い、その関数戻り
値を受信することによってプロセス間通信を行う。
【0119】また、クライアントプロセス201の各ス
レッドはメッセージをサーバプロセス202に送信する
ことによってプロセス間通信を行う。一方、サーバプロ
セス202からクライアントプロセス201に対するプ
ロセス間通信は、メッセージの送信のみで行われ、関数
コールは行えないようになっている。
【0120】このため、サーバプロセス202となりう
るECS124、MCS125、FCS127、NCS
128などコントロールサービスおよびSRM123に
は、クライアントプロセス201に対して提供するサー
ビスが、サービスごとの後述する関数ハンドラ403と
してあらかじめ実装されている。これらのサービスの要
求をクライアントプロセス201から行う場合には、サ
ーバプロセス202に対して、サービスごとに関数を呼
び出すことにより(関数コールを行うことにより)、サ
ービスの提供を受けることが可能となっている。
【0121】ここで、「メッセージ」とは、主としてサ
ーバプロセス202とクライアントプロセス201との
間でイベントや通知を行う際に送信するものであり、一
意的なメッセージID、メッセージ名、メッセージ方
向、メッセージ内容を含むデータである。
【0122】メッセージ方向には、「IN」、「OU
T」、「SELF」があり、「IN」がクライアントプ
ロセス201からサーバプロセス202に対して送信す
るメッセージを意味し、「OUT」がサーバプロセス2
02からクライアントプロセス201に対して送信する
メッセージを意味する。また、「SELF」は、自分自
身のプロセスに対して送信するメッセージを意味する。
【0123】また、「関数」とは、クライアントプロセ
ス201からサーバプロセス202に対して所定の処理
要求を行ったり、所定の設定要求を行う際に発行するも
のであり、関数コールに対し戻り値を返すものである。
【0124】クライアントプロセス201のスレッド
は、あらかじめサーバプロセス202から提供されてい
る関数をコールする。関数コールを受けたサーバプロセ
ス202は要求された関数に対応する処理を実行してそ
の実行結果を関数戻り値としてクライアントプロセス2
01のクライアントディスパッチャ203へ送信する。
また、関数戻り値は構造体となっており、かかる構造体
に戻り値の他、関数を識別する関数IDが含まれてい
る。
【0125】クライアントディスパッチャ203は、サ
ーバプロセス202からのOUT方向のメッセージまた
は関数戻り値の受信を監視するスレッドである。クライ
アントプロセス201は、一つのサーバプロセス202
につき一つのクライアントディスパッチャ203を起動
してサーバプロセス202と通信する。クライアントプ
ロセス201が複数のサーバプロセス202と通信する
場合には、サーバプロセス202ごとに一つのクライア
ントディスパッチャ203を起動する。
【0126】図3はクライアントディスパッチャの詳細
な構成を示す説明図である。クライアントディスパッチ
ャ203は、そのスレッド上でメッセージハンドラ30
2、エラーハンドラ301およびデフォルトハンドラ3
03を起動する。
【0127】メッセージハンドラ302は、受信したメ
ッセージに対する処理を行うものであり、メッセージI
Dごとに別個のメッセージハンドラ302が複数存在す
る。このためクライアントディスパッチャ203がメッ
セージを受信すると、受信したメッセージに含まれるメ
ッセージIDを判断し、対応するメッセージIDのメッ
セージハンドラ302を呼び出すようになっている。メ
ッセージハンドラ302の処理内容としては、例えば、
メッセージの内容を関数コールを行ったスレッドに通知
するなどの処理があるが、メッセージごとに異なった処
理内容が定義されている。
【0128】エラーハンドラ301は、クライアントデ
ィスパッチャ203の実行中にエラーが発生した場合に
呼び出され、ユーザにエラー通知を行うなどのエラー処
理を行う。デフォルトハンドラ303は、対応するメッ
セージハンドラ302が登録されていないメッセージI
Dのメッセージを受信した時に呼び出され、メッセージ
をスレッドに通知するなどの処理を行う。
【0129】また、クライアントディスパッチャ203
は、関数戻り待ちキュー304を保持しており、この関
数戻り待ちキュー304を利用することによって関数戻
り値および関数戻り待ち状態のスレッド305の管理を
行っている。すなわち、クライアントプロセス201の
スレッドは、サーバプロセス202に対し関数コールを
行うが、関数コール後、関数戻り値を受信するまで関数
戻り待ち状態となり以降の処理が中断される。
【0130】クライアントディスパッチャ203は、ス
レッド305から関数コールが行われると、そのスレッ
ド305の識別子(スレッドIDなど)を関数の関数I
Dとともに関数戻り待ちキュー304に登録する。そし
て、クライアントディスパッチャ203は、サーバプロ
セス202から関数戻り値を受信すると、その関数ID
をキーとして関数戻り待ちキュー304を検索し、受信
した関数戻り値の受信を待って処理が中断されているス
レッド305の識別子(スレッドIDなど)を検出す
る。そして、クライアントディスパッチャ203は検出
された識別子(スレッドID)のスレッドに受信した関
数戻り値を送信する。関数戻り値を受信したスレッドは
戻り待ち状態を抜け、関数コール後の処理の続行が可能
となる。クライアントディスパッチャ203は、このよ
うな戻り値の通知を、関数戻り値を受信するごとに行
う。
【0131】サーバディスパッチャ204は、クライア
ントプロセス201のスレッドからの関数コールおよび
IN方向のメッセージを監視するスレッドである。1つ
のサーバディスパッチャ204は、クライアントディス
パッチャ203と異なり、複数のクライアントプロセス
201からの関数コールおよびメッセージを受信するこ
とができる。
【0132】図4はサーバディスパッチャ204の詳細
な構成を示す説明図である。サーバディスパッチャ20
4は、そのスレッド上で、関数ハンドラ403、メッセ
ージハンドラ402、エラーハンドラ401およびデフ
ォルトハンドラ404を起動する。
【0133】関数ハンドラ403は、関数の具体的な処
理を実行するものであり、関数ごとに複数存在する。サ
ーバディスパッチャ204は、クライアントプロセス2
01から関数コールを受信すると、受信した関数に対応
する関数ハンドラ403を起動し、関数ハンドラ403
によってクライアントプロセス201が要求した処理を
実行し、その関数戻り値をクライアントプロセス201
のクライアントディスパッチャ203へ送信する。
【0134】メッセージハンドラ402は、受信したメ
ッセージに対する処理を行うものであり、メッセージI
Dごとに複数存在する。サーバディスパッチャ204
は、メッセージを受信すると受信したメッセージに含ま
れるメッセージIDを判断し、対応するメッセージID
のメッセージハンドラ402を呼び出すようになってい
る。メッセージハンドラ402の処理内容としては、例
えば、メッセージの内容をスレッドに通知するなどの処
理があるが、メッセージごとに異なった処理内容が定義
されている。
【0135】エラーハンドラ401は、サーバディスパ
ッチャ204の実行中にエラーが発生した場合に呼び出
され、エラー通知などのエラー処理を行う。デフォルト
ハンドラ404は、対応するメッセージハンドラ402
が登録されていないメッセージIDのメッセージを受信
した時に呼び出され、メッセージをスレッドに通知する
などの処理を行う。
【0136】つぎに、実施の形態1の複合機100で実
際に行われるプリンタ動作、スキャナ動作、コピー動作
およびファクシミリ送信動作におけるプロセス間通信に
ついて具体的に説明する。
【0137】まず、プリンタ動作におけるプリンタアプ
リ111、ECS124、MCS125、SRM123
のプロセス間通信について説明する。図5は、実施の形
態1の複合機でプリンタ動作を行う場合のプリンタアプ
リ、ECS、MCS、SRMの各プロセス間のデータシ
ーケンスを示す説明図である。図6は、各プロセス間の
関数およびメッセージの送受信の関係を示す説明図であ
る。
【0138】図6に示すように、複合機100にはプリ
ンタアプリプロセス111、ECSプロセス124、M
CSプロセス125およびSRMプロセス123が動作
している。これらプロセスは、複合機100の起動時に
生成される。なお、図6にはプリンタ動作において使用
されるプロセスのみを図示しており、実際には他のアプ
リプロセスおよび他のコントロールサービスのプロセス
も複合機100の起動時に生成される。
【0139】プリンタアプリプロセス111は、複合機
の起動時に起動され、図6に示すようにプロセス内に複
数のスレッドが起動している。プリンタアプリプロセス
111は、ECSプロセス124をサーバプロセスとし
たクライアントプロセスとなっており、このためECS
プロセス124からのメッセージや関数戻り値を受信し
てプロセス内のスレッドに通知するクライアントディス
パッチャがスレッドとして起動される。
【0140】ECSプロセス124は、プリンタ動作時
には、プリンタアプリプロセス111をクライアントプ
ロセスとしたサーバプロセスとなるとともに、MCSプ
ロセス125およびSRMプロセス123をそれぞれサ
ーバプロセスとしたクライアントプロセスとなる。この
ため、ECSプロセス124内にはプリンタアプリプロ
セス111からの関数コールおよびメッセージの受信と
プリンタアプリプロセス111に対するメッセージおよ
び関数戻り値の送信を行うサーバディスパッチャのスレ
ッドと、MCSプロセス125またはSRMプロセス1
23からのメッセージおよび関数戻り値の受信および戻
り値の管理を行うクライアントディスパッチャと、その
他ジョブ制御およびエンジン制御に関する処理を行う複
数のスレッドが動作している。
【0141】MCSプロセス125は、プリンタ動作時
には、ECSプロセス124をクライアントプロセスと
したサーバプロセスとなるとともに、SRMプロセス1
23をサーバプロセスとしたクライアントプロセスとな
る。このため、MCSプロセス125内にはECSプロ
セス124からの関数コールおよびメッセージの受信と
ECSプロセス124に対するメッセージおよび関数戻
り値の送信を行うサーバディスパッチャのスレッドと、
SRMプロセス123からのメッセージおよび関数戻り
値の受信および戻り値の管理を行うクライアントディス
パッチャと、その他、メモリ制御またはハードディスク
制御に関する処理を行う複数のスレッドが動作してい
る。
【0142】SRMプロセス123は、プリンタ動作時
には、ECSプロセス124またはMCSプロセス12
5をクライアントプロセスとしたサーバプロセスとなっ
ている。SRMプロセス123内にはECSプロセス1
24またはMCSプロセス125からの関数コールおよ
びメッセージの受信とECSプロセス124またはMC
Sプロセス125に対するメッセージおよび関数戻り値
の送信を行うサーバディスパッチャのスレッドと、その
他、エンジン資源制御に関する種々の処理を行う複数の
スレッドが動作している。
【0143】実施の形態1におけるプリンタアプリプロ
セス111では、ジョブ動作モード設定とジョブスター
ト要求の各関数コールを行う処理を一スレッドとしてい
る。また、ECSプロセス124では、印刷枚数分繰り
返しメモリ画像情報要求関数コールを行う処理を一スレ
ッドとし、また資源獲得要求関数コールを行う処理を一
スレッドとしている。MCSプロセス125では、メモ
リ取得要求関数コールを行う処理を一スレッドとしてい
る。ただし、これらの各スレッドにおける処理は一例で
あり、各プログラムで任意に定めることができる。
【0144】PCなどのホストからセントロI/F、U
SB I/F、ネットワークI/Fなど経由して印刷要
求1があると、その印刷要求1をNCSプロセスが受け
プリンタアプリプロセスに転送する(ステップS50
1)。プリンタアプリプロセス111は、NCSプロセ
スから印刷要求を受信すると新たなプリントジョブを生
成し、スレッド1においてECSプロセス124に対し
てジョブ動作モード設定要求関数コールを行う(ステッ
プS502)。
【0145】その後このスレッド1は関数戻り値の受信
待ちとなり、クライアントディスパッチャによりスレッ
ド1の識別子(スレッドID)が関数戻り待ちキューに
登録される。ここで、ジョブ動作モードとは、スキャ
ナ、プロッタ、フィニッシャなどを動作させるために必
要なパラメータ群であり、印刷用紙サイズ、印刷部数、
給紙トレイなどのプリンタ条件から生成されるジョブの
動作条件を定めたものである。
【0146】なお、以降では説明の簡略化のため、サー
バプロセスに関数コールを行って関数戻り待ち状態とな
ったスレッドの識別子(スレッドID)が、クライアン
トディスパッチャによって、関数IDとともに関数戻り
待ちキューに登録されることを、単に「スレッドが関数
戻り待ち状態になる」と表現する。
【0147】ECSプロセス124では、サーバディス
パッチャがプリンタアプリプロセスからジョブ動作モー
ド設定関数コールを受信して、ジョブ動作モード設定関
数ハンドラをサーバディスパッチャのスレッド上で起動
する。そして、ジョブ動作モード設定関数ハンドラによ
り新たに生成されたプリンタジョブに対して上述のジョ
ブ動作モードを設定し、関数戻り値(例えば、正常また
はエラー発生)をプリンタアプリプロセス111のクラ
イアントディスパッチャへ送信する。
【0148】プリンタアプリプロセス111のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブ動作モード設定関数の関数戻り値を受信して、関数戻
り待ちキューから関数戻り値待ちのスレッド1を検索し
て、ジョブ動作モード設定関数の戻り値を抽出してスレ
ッド1に送信する。
【0149】なお、以降では説明の簡略化のため、クラ
イアントディスパッチャによって、関数戻り待ち状態の
スレッドの識別子(スレッドID)が関数戻り待ちキュ
ーから検索され、検索された識別子(スレッドID)の
スレッドがクライアントディスパッチャから関数戻り値
を受信することを、単に「スレッドがクライアントディ
スパッチャ経由で関数戻り値を受信する」と表現する。
【0150】スレッド1では、クライアントディスパッ
チャからジョブ動作モード設定の関数戻り値を受信する
と、戻り待ち状態を抜け、ジョブの開始要求を行うた
め、ECSプロセス124に対しジョブスタート要求関
数を呼び出し(ステップS503)、関数戻り待ち状態
となる。
【0151】ECSプロセス124では、サーバディス
パッチャがプリンタアプリプロセス111からジョブス
タート要求関数コールを受信して、ジョブスタート要求
関数ハンドラをサーバディスパッチャのスレッド上で起
動し、ジョブスタート要求関数ハンドラによってジョブ
の開始処理を行って関数戻り値をプリンタアプリプロセ
ス111のクライアントディスパッチャへ送信する。
【0152】プリンタアプリプロセス111のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブスタート要求関数の戻り値を受信して、スレッド1が
クライアントディスパッチャ経由でジョブスタート要求
関数の戻り値を受信する。
【0153】つぎに、ECSプロセス124では、メモ
リに格納されている印刷データを取得するためにスレッ
ド3においてMCSプロセス125に対してメモリ画像
情報要求メッセージを送信する(ステップS504)。
【0154】MCSプロセス125では、サーバディス
パッチャがECSプロセス124からメモリ画像情報要
求メッセージを受信して、メモリ画像情報要求メッセー
ジハンドラを起動する。そして、このメモリ画像情報要
求メッセージハンドラによってメモリに格納されている
画像データを取得して、画像データをECSプロセス1
24へ送信する(ステップS505)。
【0155】ECSプロセス124のクライアントディ
スパッチャは、MCSプロセス125から画像データを
受信して、スレッド3へ受け渡す。かかるメモリ画像情
報要求メッセージの送信および画像データの受信処理
は、印刷ページが終了するまで繰り返し行われる(ステ
ップS508、S509)。
【0156】一方、MCSプロセス125では、画像デ
ータのECSプロセス124への送信後、画像メモリを
確保するためにスレッド5においてSRMプロセス12
3に対してメモリ取得要求関数コールを行って(ステッ
プS506)、戻り待ち状態となる。SRMプロセス1
23では、サーバディスパッチャがMCSプロセス12
5からメモリ取得要求関数コールを受信し、メモリ取得
要求関数ハンドラを起動して、このメモリ取得要求関数
ハンドラによってプリント用に画像メモリを確保し、関
数戻り値をMCSプロセス125へ送信する。
【0157】MCSプロセス125のクライアントディ
スパッチャは、SRMプロセス123からメモリ取得要
求関数の戻り値を受信して、スレッド5がクライアント
ディスパッチャ経由でこのメモリ取得要求関数の戻り値
を受信する。
【0158】ECSプロセス124では、1ページ目の
印刷データをMCSプロセス125から受信した後、プ
リンタエンジン資源を取得するためにスレッド4におい
て、SRMプロセス123に対して資源獲得要求関数コ
ールを行って(ステップS507)、関数戻り待ち状態
となる。SRMプロセス123では、サーバディスパッ
チャがECSプロセス124から資源獲得要求関数コー
ルを受信して資源獲得要求関数ハンドラを起動し、資源
獲得要求関数ハンドラによってプリンタエンジンを占有
し、関数戻り値をECSプロセス124へ送信する。E
CSプロセス124のクライアントディスパッチャは、
SRMプロセス123から資源獲得要求関数の戻り値を
受信して、スレッド4がクライアントディスパッチャ経
由で資源獲得要求関数の戻り値を受信する。
【0159】ECSプロセス124のスレッド3では、
メモリ画像情報要求メッセージ(ステップS511)に
対する通知メッセージとして「画像なし」の応答メッセ
ージを受信した場合には(ステップS512)、すべて
の印刷ページのプリントが終了したものと判断し、プリ
ンタアプリプロセス111に対し、ジョブエンド通知メ
ッセージを送信する(ステップS513)。プリンタア
プリプロセス111では、クライアントディスパッチャ
がこのメッセージを受信してメッセージハンドラを起動
し、メッセージハンドラによってジョブエンド通知メッ
セージをスレッド1へ通知する。
【0160】このようにプリンタ動作のプロセス間通信
が行われるが、ここで、図5に示すように、印刷要求1
に対するプリント処理中に、別の印刷要求2がNCSか
らプリンタアプリプロセス111へ送信された場合につ
いて説明する。(ステップS521)。
【0161】このとき、プリンタアプリプロセス11
1、ECSプロセス124、MCSプロセス125およ
びSRMプロセス123で、上述した関数コールと同様
のプロセス間通信が行われる(ステップS522、S5
23、S524)。
【0162】しかし、ECSプロセス124のスレッド
7からSRMプロセス123に対して資源獲得要求関数
コールを行った場合(ステップS527)、現在プリン
タエンジンが印刷要求1に対するプリント処理に占有さ
れているため、SRMプロセス123は直ちに資源獲得
要求関数の戻り値を返さない。このため、このスレッド
7はしばらく関数戻り値待ちの状態となり、関数戻り待
ちキューに登録された状態となる。そして、印刷要求1
による占有からプリンタエンジンが解放された時点で、
SRMプロセス123は資源獲得要求関数の戻り値をE
CSプロセス124に返し(ステップS528)、これ
により、ECSプロセス124のスレッド7が、印刷要
求2に対する処理を続行することになる。
【0163】なお、ここでは印刷要求2に対するプリン
タジョブにおいて、プリンタエンジンの獲得ができない
場合の例を説明した。この他、ECSプロセス124か
らSRMプロセス123に対してメモリ取得要求関数コ
ールを行ったときに、すでに印刷要求1に対するプリン
トジョブが原因でメモリ不足が生じ、印刷要求2のプリ
ントジョブでメモリを取得できない場合には、メモリ取
得要求関数コールを行ったスレッドが印刷要求1のプリ
ンタ動作完了まで関数戻り待ち状態のまま待機し、印刷
要求2に対するプリンタ動作が中断する。
【0164】次に、実施の形態1の複合機100で行わ
れるスキャナ動作において、スキャナアプリ114、E
CS124、MCS125、SRM123のプロセス間
通信について具体的に説明する。図7は、実施の形態1
の複合機でスキャナ動作を行う場合のスキャナアプリ、
ECS、MCS、SRMの各プロセス間のデータシーケ
ンスを示す説明図である。また、図8は、各プロセス間
の関数およびメッセージの送受信の関係を示す説明図で
ある。
【0165】図8に示すように、複合機100にはスキ
ャナアプリプロセス114、ECSプロセス124、M
CSプロセス125およびSRMプロセス123が動作
している。これらのプロセスは、複合機100の起動時
に生成される。なお、図8にはスキャナ動作において使
用されるプロセスのみを図示しており、実際には他のア
プリプロセスおよび他のコントロールサービスのプロセ
スも複合機100の起動時に生成される。
【0166】スキャナアプリプロセス114は、複合機
の起動時に起動され、図8に示すようにプロセス内に複
数のスレッドが起動している。スキャナアプリプロセス
114は、ECSプロセス124をサーバプロセスとし
たクライアントプロセスとなっており、このためECS
プロセス124に対するクライアントディスパッチャの
スレッドが起動している。
【0167】ECSプロセス124は、スキャナ動作時
には、スキャナアプリプロセス114をクライアントプ
ロセスとしたサーバプロセスとなるとともに、MCSプ
ロセス125およびSRMプロセス124をそれぞれサ
ーバプロセスとしたクライアントプロセスとなる。この
ため、ECSプロセス124内にはスキャナアプリプロ
セス114に対するサーバディスパッチャのスレッド
と、MCSプロセス125に対するクライアントディス
パッチャのスレッドと、SRMプロセス123に対する
クライアントディスパッチャのスレッドとその他ジョブ
制御またはエンジン制御に関する処理を行う複数のスレ
ッドが動作している。
【0168】MCSプロセス125は、スキャナ動作時
には、スキャナアプリプロセス114およびECSプロ
セス124をクライアントプロセスとしたサーバプロセ
スとなる。このため、MCSプロセス125内にはスキ
ャナアプリプロセス114およびECSプロセス124
に対するサーバディスパッチャのスレッドとその他メモ
リ制御またはハードディスク制御に関する処理を行う複
数のスレッドが動作している。
【0169】SRMプロセス123は、ECSプロセス
124をクライアントプロセスとしたサーバプロセスと
なり、このため、SRMプロセス123内にはECSプ
ロセス124に対するサーバディスパッチャのスレッド
とその他エンジン資源制御に関する処理を行う複数のス
レッドが動作している。
【0170】実施の形態1におけるスキャナアプリプロ
セス114では、スキャナ動作時におけるジョブオープ
ン要求関数とジョブ動作モード設定要求とジョブスター
ト要求の各関数コールを行う一連の処理、ファイル生成
要求関数コールを行う処理、ファイル情報登録要求関数
コールおよびファイルクローズ要求関数コールを行う処
理をそれぞれ一スレッドとしている。
【0171】また、スキャナアプリプロセス114で
は、スキャンした画像の読み出し時におけるファイルオ
ープン要求関数コール、作業領域確保要求関数コールお
よびページオープン要求関数コールを行う処理、読み出
し要求関数コールを行う処理、ページクローズ要求関数
コールとページ削除要求関数コールと作業領域削除要求
関数コールとファイルクローズ要求関数コールとファイ
ル削除要求関数コールを行う一連の処理をそれぞれ一ス
レッドとしている。
【0172】ECSプロセス124では、資源獲得要求
関数コールを行う処理、原稿枚数分繰り返してページ生
成要求関数コールと原稿フィードインおよびページクロ
ーズ要求関数コールを行う一連の処理をそれぞれ一スレ
ッドとしている。ただし、これらの各スレッドにおける
処理は一例であり、各プログラムで任意に定めることが
できる。
【0173】スキャナアプリプロセス114に対しスキ
ャン要求があると、スキャナアプリプロセス114は、
新たなスキャナジョブを生成し、スレッド1においてE
CSプロセス124に対してジョブオープン要求関数コ
ールを行う(ステップS701)。その後このスレッド
1は関数戻り待ち状態となり、クライアントディスパッ
チャによってスレッド1の識別子(スレッドID)が呼
び出した関数の関数IDとともに関数戻り待ちキューに
登録される。
【0174】また、スキャナアプリプロセス114で
は、これと並行してスレッド2によりMCSプロセス1
25に対しファイル生成要求関数コールを行う(ステッ
プS702)。その後このスレッド2は関数戻り待ち状
態となり、同様にスレッド2の識別子(スレッドID)
が関数戻り待ちキューに登録される。
【0175】ECSプロセス124では、サーバディス
パッチャがスキャナアプリプロセス114からジョブオ
ープン要求関数コールを受信して、ジョブオープン要求
関数ハンドラをサーバディスパッチャのスレッド上で起
動する。そして、ジョブオープン要求関数ハンドラによ
りジョブをオープンして、関数戻り値をスキャナアプリ
プロセス114のクライアントディスパッチャへ送信す
る。
【0176】一方、MCSプロセス125では、サーバ
ディスパッチャがスキャナアプリプロセス114からフ
ァイル生成要求関数コールを受信して、ファイル生成要
求関数ハンドラによって、スキャンした画像を一時的に
格納するファイルをハードディスク上に生成して、関数
戻り値をスキャナアプリプロセス114のクライアント
ディスパッチャへ送信する。
【0177】スキャナアプリプロセス114のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブオープン要求関数の関数戻り値を受信するとともに、
MCSプロセス125からファイル生成要求関数の戻り
値を受信して、関数戻り値キューからジョブオープン要
求関数戻り待ち状態のスレッド1とファイル生成要求関
数戻り待ち状態のスレッド2を検出し、ジョブオープン
要求関数の戻り値をスレッド1に送信し、ファイル生成
要求関数の戻り値をスレッド2に送信する。
【0178】スレッド1は、クライアントディスパッチ
ャからジョブオープン要求関数の戻り値を受信すると戻
り待ち状態を抜け、ジョブ動作モードの設定を行うた
め、ECSプロセス124に対しジョブ動作モード設定
要求関数を呼び出し(ステップS703)、スレッド1
は関数戻り待ち状態となる。
【0179】ECSプロセス124では、サーバディス
パッチャがスキャナアプリプロセス114からジョブ動
作モード設定要求関数コールを受信して、ジョブ動作モ
ード設定要求関数ハンドラによってスキャナジョブに上
述のジョブ動作モードを設定して関数戻り値をスキャナ
アプリプロセス114のクライアントディスパッチャへ
送信する。
【0180】スキャナアプリプロセス114のクライア
ントディスパッチャは、ECSプロセス124からジョ
ブ動作モード設定要求関数の戻り値を受信する。スレッ
ド1はクライアントディスパッチャ経由でジョブ動作モ
ード設定要求関数の戻り値を受信し、関数戻り待ち状態
を抜ける。
【0181】関数戻り待ち状態を抜けたスレッド1で
は、ジョブスタート要求関数コールをECSプロセス1
24に対して行い(ステップS704)、スレッド1が
関数戻り待ち状態となる。ECSプロセス124では、
サーバディスパッチャがジョブスタート要求関数コール
を受信して、ジョブスタート要求関数ハンドラによって
ジョブの開始処理を行い、関数戻り値をスキャナアプリ
プロセス114のクライアントディスパッチャへ送信す
る。スキャナアプリプロセス114のクライアントディ
スパッチャは、ECSプロセス124からジョブスター
ト要求関数の戻り値を受信し、スレッド1がクライアン
トディスパッチャ経由でジョブスタート要求関数の関数
戻り値を受信する。
【0182】このとき、ECSプロセス124では、ス
キャナエンジンの資源格闘のため、スレッド3において
SRMプロセス123に対して資源獲得要求関数コール
を行い(ステップS705)、関数戻り待ち状態とな
る。またECSプロセス124では、これと並行してス
キャン画像をページ単位で格納するメモリを確保するた
めに、スレッド4においてMCSプロセス125に対し
ページ生成要求関数コールを行い(ステップS70
6)、関数戻り待ち状態となる。この時点で、関数戻り
待ちキューには、スレッド3とスレッド4の識別子(ス
レッドID)が呼び出した関数の関数IDとともに格納
される。
【0183】SRMプロセス123では、サーバディス
パッチャが資源獲得要求関数コールを受信して資源獲得
要求関数ハンドラにより、スキャナエンジンを占有し関
数戻り値をECSプロセス124へ送信する。MCSプ
ロセス125では、サーバディスパッチャがページ生成
要求関数コールを受信してページ生成要求関数ハンドラ
により、1ページ分のメモリを確保し、確保したページ
をオープンし、関数戻り値をECSプロセス124へ送
信する。
【0184】ECSプロセス124のクライアントディ
スパッチャは、SRMプロセス123から資源獲得要求
関数の戻り値を受信し、またMCSプロセス125から
ページ生成要求関数の戻り値を受信する。そして、関数
戻り待ち状態のスレッド3はクライアントディスパッチ
ャ経由で資源獲得要求関数の戻り値を受信し、スレッド
4もクライアントディスパッチャ経由でページ生成要求
関数の戻り値を受信する。
【0185】スレッド4は、関数戻り値を受信すること
によって戻り待ち状態を抜け、つぎにスキャナエンジン
に対して原稿フィードインの指示メッセージを送信して
(ステップS707)、スキャナによる原稿の読み取り
動作を開始させる。1ページ分の原稿読み動作が終了す
ると、ECSプロセス124に対しスキャナエンジンか
らスキャン完了通知メッセージが送信されるので(ステ
ップS708)、ECSプロセス124のスレッド4は
このスキャン完了通知メッセージを受信してMCSプロ
セス125に対しページクローズ要求関数コールを行っ
て(ステップS709)、戻り待ち状態となる。
【0186】MCSプロセス125では、ページクロー
ズ要求関数コールを受信すると、ページクローズ要求関
数ハンドラによってメモリ上でオープンされている1ペ
ージ分の画像メモリをクローズして関数戻り値をECS
プロセス124のクライアントディスパッチャへ送信す
る。
【0187】ECSプロセス124のクライアントディ
スパッチャは、ページクローズ要求関数の戻り値を受信
し、関数戻り待ち状態のスレッド4がクライアントディ
スパッチャ経由でページクローズ要求関数の戻り値を受
信する。スレッド4では、これにより関数戻り待ち状態
を抜け、上述のページ生成要求関数コールからページク
ローズ要求関数コールまでの処理(ステップS706〜
S709)を原稿枚数分だけ繰り返し行う。
【0188】原稿の最終ページのスキャンが終了する
と、スキャナエンジンはスレッド4に対しスキャン処理
完了通知メッセージを送信する(ステップS710)。
スレッド4ではこのスキャン処理完了通知メッセージを
スキャナアプリプロセス114に対して送信し(ステッ
プS711)、さらにジョブエンド通知メッセージも送
信する(ステップS712)。
【0189】スキャナアプリプロセス114のクライア
ントディスパッチャは、スキャン処理完了通知メッセー
ジとジョブエンド通知メッセージとを順にECSプロセ
ス124から受信し、スレッド1に通知する。一方、ス
キャナアプリプロセス114のスレッド5は、MCSプ
ロセス125に対してファイル情報登録要求関数コール
を行って(ステップS713)、関数戻り待ち状態とな
る。
【0190】MCSプロセス125では、サーバディス
パッチャがファイル情報登録要求関数コールを受信する
と、ファイル情報登録要求関数ハンドラによって、一時
的に生成されたすべての原稿のスキャン画像が格納され
ているファイルに対し、ファイル名、格納先等のファイ
ル情報を登録し、関数戻り値をスキャナアプリプロセス
114のクライアントディスパッチャへ送信する。
【0191】スキャナアプリプロセス114のスレッド
5は、ファイル情報登録要求関数の戻り値をクライアン
トディスパッチャ経由で受信すると、MCSプロセス1
25に対しファイルクローズ要求関数コールを行って
(ステップS714)、関数戻り待ち状態となる。MC
Sプロセス125では、サーバディスパッチャでこのフ
ァイルクローズ要求関数コールを受信し、ファイルクロ
ーズ要求関数ハンドラによってスキャン画像のファイル
をクローズして関数戻り値をスキャナアプリプロセス1
14に送信する。スキャナアプリプロセス114は、こ
のファイルクローズ要求関数の戻り値を受信することに
より、スキャン処理が終了する。
【0192】ついで、スキャナアプリプロセス114で
は、格納されているスキャン画像を読み出すため、次の
処理を行う。まず、スレッド6において、MCSプロセ
ス125に対し、スキャン画像のファイルをオープンす
るためのファイルオープン要求関数コール、作業メモリ
の確保のための作業領域確保要求関数コール、ページオ
ープン要求関数コールを順次に行う(ステップS715
〜S717)。なお、スレッド6は、上述と同様に、そ
れぞれの関数コールを行った後、関数戻り待ち状態にな
り、関数戻り値の通知により、戻り待ち状態を抜け、次
の関数コールを行う。
【0193】MCSプロセス125のサーバディスパッ
チャは、スキャナアプリプロセス114のスレッド6か
らファイルオープン要求関数コール、作業領域確保要求
関数コール、ページオープン要求関数コールを順に受信
して、スキャン画像ファイルのオープン処理、作業メモ
リの確保処理、ページオープン処理をそれぞれ各関数ハ
ンドラによって行って、各関数戻り値をスキャナアプリ
プロセス114に送信する。スキャナアプリプロセス1
14では、クライアントディスパッチャによりファイル
オープン要求関数、作業領域確保要求関数、ページオー
プン要求関数の各戻り値を順に受信して、スレッド6が
クライアントディスパッチャ経由で関数戻り値を受信す
る。
【0194】また、スキャナアプリプロセス114で
は、スレッド7において、スキャン画像ファイルからの
画像データの読み出しのために読み出し要求関数コール
を行い(ステップS718)、スレッド7が関数戻り待
ち状態になる。さらに、スレッド8において、MCSプ
ロセス125に対しページクローズ要求関数コールを行
い(ステップS719)、スレッド8は関数戻り待ち状
態になる。
【0195】MCSプロセス125では、スレッド6か
らの要求であるページオープン処理の終了後に、スキャ
ナアプリプロセス114のスレッド7から読み出し要求
関数コールを受信し、読み出し要求関数ハンドラによっ
てスキャナ画像ファイルから画像データを読み出し、画
像データとともに関数戻り値をスキャナアプリプロセス
114へ送信する。スキャナアプリプロセス114で
は、スレッド7が読み出し要求関数の戻り値をクライア
ントディスパッチャ経由で受信することにより、関数戻
り待ち状態を抜け、次の読み出し要求関数コールを行
い、同様に関数戻り値を受信する。
【0196】MCSプロセス125では、スレッド7か
らの要求である最後の読み出し要求処理が終了すると、
スキャナアプリプロセス114のスレッド8から受信し
たページクローズ要求関数の関数ハンドラを起動して、
オープンしているページデータのクローズ処理を行い、
関数戻り値をスキャナアプリプロセス114へ送信す
る。スキャナアプリプロセス114では、スレッド8が
ページクローズ要求関数の戻り値をクライアントディス
パッチャ経由で受信し、関数戻り待ち状態を抜ける。こ
れにより、スレッド8では、ページ削除要求関数コー
ル、作業領域削除要求関数コール、ファイルクローズ要
求関数コール、ファイル削除要求関数コールを順に行う
(ステップS720〜S723)。
【0197】MCSプロセス125は、これらの関数コ
ールを順に受信して、受信した関数コールに対応する関
数ハンドラによってそれぞれ、ページデータの削除、作
業メモリの削除、スキャン画像ファイルのクローズ、ス
キャン画像ファイルの削除の各処理を行って、各関数戻
り値をスキャナアプリプロセス114に送信する。
【0198】スキャナアプリプロセス114のスレッド
8では、MCSプロセス125からの各関数戻り値をク
ライアントディスパッチャ経由で受信することにより、
スキャン画像の読み出し処理が完了する。
【0199】次に、実施の形態1の複合機100で行わ
れるコピー動作において、コピーアプリ112、ECS
124、MCS125、SRM123のプロセス間通信
について具体的に説明する。図9は、実施の形態1の複
合機でコピー動作を行う場合のコピーアプリ、ECS、
MCS、SRMの各プロセス間のデータシーケンスを示
す説明図である。また、図10は、各プロセス間の関数
およびメッセージの送受信の関係を示す説明図である。
【0200】図10に示すように、複合機100にはコ
ピーアプリプロセス112、ECSプロセス124、M
CSプロセス125およびSRMプロセス123が動作
している。これらプロセスは、複合機100の起動時に
生成される。なお、図10にはコピー動作において使用
されるプロセスのみを図示しており、実際には他のアプ
リプロセスおよび他のコントロールサービスのプロセス
も複合機の起動時に生成される。
【0201】コピーアプリプロセス112は、複合機1
00の起動時に起動され、図10に示すようにプロセス
内に複数のスレッドが起動している。コピーアプリプロ
セス112は、ECSプロセス124をサーバプロセス
としたクライアントプロセスとなっており、このためE
CSプロセス124に対するクライアントディスパッチ
ャのスレッドが起動している。
【0202】ECSプロセス124は、コピー動作時に
は、コピーアプリプロセス112をクライアントプロセ
スとしたサーバプロセスとなるとともに、MCSプロセ
ス125およびSRMプロセス123をそれぞれサーバ
プロセスとしたクライアントプロセスとなる。このた
め、ECSプロセス124内にはコピーアプリプロセス
112に対するサーバディスパッチャのスレッドと、M
CSプロセス125に対するクライアントディスパッチ
ャのスレッドと、SRMプロセス123に対するクライ
アントディスパッチャのスレッドとその他ジョブ制御お
よびエンジン制御に関する処理を行う複数のスレッドが
動作している。
【0203】MCSプロセス125は、コピー動作時に
は、ECSプロセス124をクライアントプロセスとし
たサーバプロセスとなるとともに、SRMプロセス12
3をサーバプロセスとしたクライアントプロセスとな
る。このため、MCSプロセス125内にはECSプロ
セス124に対するサーバディスパッチャのスレッド
と、SRMプロセス123に対するクライアントディス
パッチャのスレッドと、その他メモリ制御およびハード
ディスク制御に関する種々の処理を行う複数のスレッド
が動作している。
【0204】SRMプロセス123は、ECSプロセス
124およびMCSプロセス125をクライアントプロ
セスとしたサーバプロセスとなり、このため、SRMプ
ロセス123内にはECSプロセス124およびMCS
プロセス125に対するサーバディスパッチャのスレッ
ドとその他エンジンの資源制御に関する処理を行う複数
のスレッドが動作している。
【0205】実施の形態1におけるコピーアプリプロセ
ス112では、コピー時におけるジョブオープン要求関
数コールとジョブ動作モード設定関数コールとジョブス
タート要求関数コールを行う一連の処理、ジョブクロー
ズ要求関数コールを行う処理をそれぞれ一スレッドとし
ている。
【0206】ECSプロセス124では、メモリ確保要
求関数コールを行う処理、資源獲得要求関数コールを行
う処理、原稿フィードイン処理をそれぞれ一スレッドと
している。MCSプロセス125では、メモリ取得要求
関数コールを行う処理を一スレッドとしている。なお、
コピー動作時においても、これら各スレッドにおける処
理は一例であり、各プログラムで任意に定めることがで
きる。
【0207】コピー要求があると、コピーアプリプロセ
ス112は、新たなコピージョブを生成し、スレッド1
においてECSプロセス124に対してジョブオープン
要求関数コールを行う(ステップS901)。これによ
り、スレッド1は関数戻り待ち状態となり、クライアン
トディスパッチャによってスレッド1の識別子(スレッ
ドID)が呼び出したジョブオープン要求関数の関数I
Dとともに関数戻り待ちキューに登録される。
【0208】ECSプロセス124では、サーバディス
パッチャがコピーアプリプロセス112からジョブオー
プン要求関数コールを受信して、ジョブオープン要求関
数ハンドラをサーバディスパッチャのスレッド上で起動
する。そして、ジョブオープン要求関数ハンドラにより
コピージョブをオープンして、関数戻り値をコピーアプ
リプロセス112のクライアントディスパッチャへ送信
する。
【0209】コピーアプリプロセス112のクライアン
トディスパッチャは、ECSプロセス124からジョブ
オープン要求関数の戻り値を受信し、関数戻り値待ちキ
ューから関数戻り待ち状態のスレッドを検索する。そし
て、検索されたスレッド1にジョブオープン要求関数の
戻り値を送信する。
【0210】スレッド1は、クライアントディスパッチ
ャからジョブオープン要求関数の戻り値を受信すると、
戻り待ち状態を抜け、ジョブ動作モードの設定を行うた
め、ECSプロセス124に対しジョブ動作モード設定
関数コールを行い(ステップS902)、関数戻り待ち
状態となる。
【0211】一方、スレッド2はジョブスタート要求関
数コールをECSプロセス124に対して行い(ステッ
プS903)、関数戻り待ち状態となる。この時点で
は、関数戻り待ちキューにはスレッド1の識別子(スレ
ッドID)がジョブ動作モード設定関数の関数IDとと
もに登録され、またスレッド2の識別子(スレッドI
D)がジョブスタート要求関数の関数IDとともにクラ
イアントディスパッチャにより登録される。
【0212】ECSプロセス124では、サーバディス
パッチャがコピーアプリプロセス112からジョブ動作
モード設定関数コールを受信して、ジョブ動作モード設
定関数ハンドラによってコピージョブに上述のジョブ動
作モードを設定して関数戻り値をコピーアプリプロセス
112のクライアントディスパッチャへ送信する。ま
た、サーバディスパッチャはジョブスタート要求関数コ
ールを受信して、ジョブスタート要求関数ハンドラによ
ってジョブの開始処理を行って関数戻り値をコピーアプ
リプロセス112のクライアントディスパッチャへ送信
する。
【0213】コピーアプリプロセス112のクライアン
トディスパッチャは、ECSプロセス124からジョブ
動作モード設定関数とジョブスタート要求関数の戻り値
をそれぞれ受信し、スレッド1がクライアントディスパ
ッチャ経由でジョブ動作モード設定関数の戻り値を受信
し、スレッド2もクライアントディスパッチャ経由でジ
ョブスタート要求関数の戻り値を受信する。
【0214】ECSプロセス124では、ジョブスター
ト要求関数の戻り値をコピーアプリプロセス112に送
信すると、つぎにスキャン画像を格納するためのメモリ
を確保するために、スレッド3においてMCSプロセス
125に対し必要なサイズを指定したメモリ確保要求関
数コールを行い(ステップS904)、関数戻り待ち状
態となる。また、これと並行してスレッド4において、
スキャナエンジンとプリンタエンジンの資源獲得のた
め、SRMプロセス123に対して資源獲得要求関数コ
ールを行い(ステップS906)、関数戻り待ち状態と
なる。
【0215】MCSプロセス125では、サーバディス
パッチャがメモリ確保要求関数コールを受信すると、メ
モリ確保要求関数ハンドラによって指定されたサイズの
メモリ上の領域を確保し、関数戻り値をECSプロセス
124に送信する。一方、SRMプロセス123では、
サーバディスパッチャが資源獲得要求関数コールを受信
して資源獲得要求関数ハンドラにより、スキャナエンジ
ンとプリンタエンジンとを占有し、関数戻り値をECS
プロセス124へ送信する。
【0216】ECSプロセス124のクライアントディ
スパッチャは、MCSプロセス125からメモリ確保要
求関数の戻り値を受信するとともに、SRMプロセス1
23から資源獲得要求関数の戻り値を受信する。そし
て、スレッド3はクライアントディスパッチャ経由でメ
モリ確保要求関数の戻り値を受信し、スレッド4もクラ
イアントディスパッチャ経由で資源獲得要求関数の戻り
値を受信する。これにより、スレッド3とスレッド4は
関数戻り待ち状態を抜ける。
【0217】資源獲得要求関数の戻り値を受信してスキ
ャナエンジンとプリンタエンジンとをコピージョブで占
有すると、ECSプロセス124では、スレッド5にお
いてスキャナエンジンに対して原稿フィードインを行い
(ステップS907)、これによりコピー動作の原稿ス
キャン処理を開始する。
【0218】スキャナエンジンでは原稿のスキャン処理
が終了するとスキャン終了通知メッセージをECSプロ
セス124のスレッド5に送信し(ステップS90
8)、プリンタエンジンによってスキャン画像のプリン
ト処理を開始する。そして、プリンタエンジンではスキ
ャン画像のプリント処理が終了すると、ECSプロセス
124のスレッド5に印刷終了通知メッセージを送信す
る(ステップS910)。
【0219】ECSプロセス124では、スレッド5が
スキャナエンジンからスキャン終了通知メッセージを受
信すると、コピーアプリプロセス112に対しスキャン
終了の旨のジョブエンド通知メッセージを送信する(ス
テップS909)。また、スレッド5がプリンタエンジ
ンから印刷終了通知メッセージを受信すると、コピーア
プリプロセス112に対し印刷終了の旨のジョブエンド
通知メッセージを送信する(ステップS911)。
【0220】コピーアプリプロセス112では、クライ
アントディスパッチャが2つのジョブエンド通知メッセ
ージを受信して、メッセージハンドラを起動してスレッ
ド2に各ジョブエンド通知メッセージを通知する。これ
により、原稿1ページ分のコピー動作が完了する。
【0221】複数枚の原稿のコピーを行う場合には、さ
らにECSプロセス124に対しジョブスタート要求関
数コールを行うと(ステップS912)、上述と同様の
動作がECSプロセス124、MCSプロセス125、
SRMプロセス123、スキャナエンジンおよびプリン
タエンジンで行われる(ステップS913〜S91
6)。すべての原稿のコピーが終了し、コピーアプリプ
ロセス112が最後のジョブエンド通知メッセージを受
信すると(ステップS917)、スレッド1はECSプ
ロセス124に対しジョブクローズ要求関数コールを行
う(ステップS918)。
【0222】ECSプロセス124では、サーバディス
パッチャによりこのジョブクローズ要求関数コールを受
信してジョブクローズ要求関数ハンドラによってオープ
ン状態にあるコピージョブをクローズし、その関数戻り
値をコピーアプリプロセス112に送信する。
【0223】コピーアプリプロセス112では、クライ
アントディスパッチャによって、ジョブクローズ要求関
数の戻り値を受信し、戻り待ち状態となっているスレッ
ド2がクライアントディスパッチャ経由でジョブクロー
ズ要求関数の戻り値を受信し、コピー動作が完了する。
【0224】ここで、上述したコピー動作中に、スキャ
ン要求をスキャナアプリプロセス114が受信した場合
には、次のような処理が行われる。たとえば、コピー動
作においてECSプロセス124からSRMプロセス1
23に対しスキャナエンジンとプリンタエンジンの資源
獲得要求関数コールを行った後に、スキャナアプリプロ
セス114にスキャン要求があった場合を考える。
【0225】この場合、上述した図7におけるスキャナ
動作において、ECSプロセス124からSRMプロセ
ス123に対しスキャナエンジンの資源獲得要求関数コ
ールが行われるが、スキャナエンジンがコピージョブで
占有されているため、スキャナジョブで獲得することが
できない。
【0226】このためスキャナジョブでは資源獲得要求
関数の戻り値のECSプロセス124に対する送信を、
コピージョブが完了し、スキャナエンジンが解放された
後で行う。この間、スキャナジョブにおいて資源獲得要
求関数コールを行ったスレッドは、関数戻り待ち状態と
なって待機していることになり、スキャナ動作がコピー
動作完了まで中断されることになる。また、コピー動作
中に、コピージョブでプリンタエンジンの占有がされた
後に、プリンタアプリプロセス111にプリント要求が
あった場合にも、同様に、コピー動作完了までプリント
動作は中断されることになる。
【0227】なお、コピー動作中のスキャナ動作につい
て、スキャナジョブでスキャナエンジンの獲得ができな
い場合の例をあげて説明したが、この他、スキャナジョ
ブにおいてECSプロセス124からMCSプロセス1
25に対し、ページ生成要求関数コールを行ったとき
に、コピージョブにおいてメモリ使用中のため、メモリ
不足でぺージ生成をできないような場合にも、ページ生
成要求関数コールを行ったスレッドが関数戻り待ち状態
となって、コピー動作完了までスキャナ動作が中断す
る。
【0228】次に、実施の形態1の複合機で行われるフ
ァクシミリ送信動作において、ファックスアプリ11
3、FCS127、ECS124、MCS125、SR
M123のプロセス間通信について具体的に説明する。
図11は、実施の形態1の複合機でコピー動作を行う場
合のファックスアプリ、FCS、ECS、MCS、SR
Mの各プロセス間のデータシーケンスを示す説明図であ
る。また、図12は、各プロセス間の関数およびメッセ
ージの送受信の関係を示す説明図である。
【0229】図12に示すように、複合機100にはフ
ァックスアプリプロセス113、FCSプロセス12
7、FCUHプロセス129、ECSプロセス124、
MCSプロセス125およびSRMプロセス123が動
作している。これらプロセスは、複合機100の起動時
に生成されるようになっている。なお、図12にはファ
ックス送信動作において使用されるプロセスのみを図示
しており、実際には他のアプリプロセスおよび他のコン
トロールサービスのプロセスも複合機の起動時に生成さ
れる。
【0230】ファックスアプリプロセス113は、複合
機100の起動時に起動され、図12に示すようにプロ
セス内に複数のスレッドが起動している。ファックスア
プリプロセス113は、FCSプロセス127をサーバ
プロセスとしたクライアントプロセスとなっており、こ
のためFCSプロセス127に対するクライアントディ
スパッチャのスレッドが起動している。
【0231】FCSプロセス127は、ファクシミリ送
信動作時には、ファックスアプリプロセス113をクラ
イアントプロセスとしたサーバプロセスとなるととも
に、ECSプロセス124およびFCUHプロセス12
9をサーバプロセスとしたクライアントプロセスとな
る。このため、FCSプロセス127内にはファックス
アプリプロセス113に対するサーバディスパッチャの
スレッドと、ECSプロセス124に対するクライアン
トディスパッチャのスレッドと、FCUSプロセス12
9に対するクライアントディスパッチャのスレッドと、
その他ファクシミリ通信制御に関する処理を行う複数の
スレッドが動作している。
【0232】FCUHプロセス129は、FCSプロセ
ス127のサブプロセスであり、ファクシミリ送信動作
時に、SRMプロセス123およびFCS127をクラ
イアントプロセスとしたサーバプロセスとなる。このた
め、FCUHプロセス129内にはSRMプロセス12
3およびFCS127に対するサーバディスパッチャの
スレッドと、その他ファクシミリデバイスドライバに対
する指令などの処理を行う複数のスレッドが動作してい
る。
【0233】ECSプロセス124は、ファクシミリ送
信動作時には、FCSプロセス127をクライアントプ
ロセスとしたサーバプロセスとなるとともに、MCSプ
ロセス125およびSRMプロセス123をそれぞれサ
ーバプロセスとしたクライアントプロセスとなる。この
ため、ECSプロセス124内にはFCSプロセス12
7に対するサーバディスパッチャのスレッドと、MCS
プロセス125に対するクライアントディスパッチャの
スレッドと、SRMプロセス123に対するクライアン
トディスパッチャのスレッドとその他ジョブ制御および
エンジン制御に関する処理を行う複数のスレッドが動作
している。
【0234】MCSプロセス125は、ファクシミリ送
信動作時には、ECSプロセス124をクライアントプ
ロセスとしたサーバプロセスとなるとともに、SRMプ
ロセス123をサーバプロセスとしたクライアントプロ
セスとなる。このため、MCSプロセス125内にはE
CSプロセス124に対するサーバディスパッチャのス
レッドと、SRMプロセス123に対するクライアント
ディスパッチャのスレッドと、その他メモリ制御および
ハードディスク制御に関する処理を行う複数のスレッド
が動作している。
【0235】SRMプロセス123は、ECSプロセス
124およびMCSプロセス125をクライアントプロ
セスとしたサーバプロセスとなるとともに、FCUHプ
ロセス129をサーバプロセスとしたクライアントプロ
セスとなる。このため、SRMプロセス123内にはE
CSプロセス124およびMCSプロセス125に対す
るサーバディスパッチャのスレッドと、FCUHプロセ
ス129をサーバプロセスとしたクライアントディスパ
ッチャと、その他エンジン資源制御に関する処理を行う
複数のスレッドが動作している。
【0236】実施の形態1におけるファックスアプリ1
13では、送信スタート要求関数コールを行う処理、送
信モード変更要求を行う処理をそれぞれ一スレッドとし
ている。FSCプロセス127では、ファックス送信動
作時におけるジョブ動作モード設定関数コールとジョブ
スタート要求関数コールを行う一連の処理、スキャンパ
ラメータ要求メッセージを受信してスキャンパラメータ
を送信する処理、EOM(次ページ有り),EOF(次
ページ無し)などの次ページ情報メッセージを通知する
処理をそれぞれ一スレッドとしている。
【0237】ECSプロセス124では、メモリ確保要
求関数コールと資源獲得要求関数コールを行う一連の処
理、スキャン・フィードインプロセス生成指示メッセー
ジを送信する処理をそれぞれ一スレッドとしている。M
CSプロセス125では、メモリ確保要求関数コールを
行う処理、その他メッセージを送信する処理を一スレッ
ドとしている。
【0238】SRMプロセス123では、フィードスタ
ートメッセージとフィードイン終了メッセージとスタン
プ実行指示メッセージを送信する一連の処理、スキャン
・フィードインプロセス実行処理をそれぞれ一スレッド
としている。FCUH129では、EOM,EOFなど
の次ページ情報メッセージを送信する処理を一スレッド
としている。なお、ファクシミリ送信動作時において
も、これら各スレッドにおける処理は一例であり、各プ
ログラムで任意に定めることができる。
【0239】ファクシミリ送信要求があると、ファック
スアプリプロセス113は、新たなファクシミリ送信ジ
ョブを生成し、スレッド1からFCSプロセス127に
対して送信スタート要求関数コールを行い(ステップS
1101)、スレッド1が関数戻り待ち状態となる。F
CSプロセス127では、サーバディスパッチャがファ
ックスアプリプロセス113から送信スタート要求関数
コールを受信して、送信スタート要求関数ハンドラを起
動し、送信スタート要求関数ハンドラのスレッド3によ
ってMCSプロセス125に対してジョブ動作モード設
定要求関数コールを行い(ステップS1102)、スレ
ッド3が関数戻り待ち状態となる。
【0240】ECSプロセス124では、サーバディス
パッチャがFCSプロセス127からジョブ動作モード
設定要求関数コールを受信して、ジョブ動作モード設定
要求関数ハンドラによってファクシミリ送信ジョブに上
述の動作モードを設定して関数戻り値をFCSプロセス
127のクライアントディスパッチャへ送信する。
【0241】FCSプロセス127のクライアントディ
スパッチャは、ECSプロセス124からジョブ動作モ
ード設定要求関数の戻り値を受信し、スレッド3はクラ
イアントディスパッチャ経由でこの戻り値を受信する。
これにより、スレッド3は関数戻り待ち状態を抜け、つ
いでECSプロセス124に対しジョブスタート要求関
数コールを行い(ステップS1103)、スレッド3は
関数戻り待ち状態となる。
【0242】このジョブスタート要求関数コールを受信
したMCSプロセス125は、ジョブスタート要求関数
ハンドラによって、MCS125に対しメモリ確保要求
関数コールを行い(ステップS1104)、SRMプロ
セス123に対し資源獲得要求関数コールを行う(ステ
ップS1106)。これらの関数コールを受信したMC
Sプロセス125、SRMプロセス123の処理および
ECSプロセス124における各関数の戻り値の受信に
伴う処理は、コピー動作時の処理と同様であるので説明
を省略する。
【0243】ECSプロセス124では、スキャナエン
ジンの資源獲得関数の戻り値を受信したら、スレッド7
においてFCSプロセス127に対しスキャナパラメー
タ確定要求メッセージを送信する(ステップS110
7)。ここで、スキャナパラメータとは、たとえばファ
イン、ノーマルなどのスキャン濃度や原稿サイズ等であ
る。FCSプロセス127では、このスキャナパラメー
タ確定要求メッセージを受信すると、スレッド4におい
てスキャナパラメータをECSプロセス124に対して
メッセージとして送信する(ステップS1108)。
【0244】ECSプロセス124では、スキャナパラ
メータメッセージをサーバディスパッチャが受信して、
スキャンパラメータ確定要求メッセージを送信したスレ
ッド7に通知し、スレッド7はSRMプロセス123に
対してスキャン・フィードインプロセスの生成指示メッ
セージを送信する(ステップS1109)。SRMプロ
セス123は、スキャン・フィードインプロセスの生成
指示メッセージを受信すると、スレッド11によりスキ
ャン・フィードインプロセスを生成して実行させる(ス
テップS1110)。
【0245】ついでFCUHプロセス129に対して原
稿のフィードインスタートメッセージを送信する(ステ
ップS1111)。FCUHプロセス129がフィード
インスタートメッセージを受信して、原稿フィードイン
が開始され、これにより原稿のスキャンおよび指定宛先
への送信が開始する。
【0246】原稿のスキャンが開始されると、次ページ
の原稿があるか否かを示す、次ページ原稿有無通知メッ
セージがスキャナエンジンからECSプロセスに対して
送信される。図11の例では、次ページ原稿有通知メッ
セージが通知されている(ステップS1112)。そし
て、原稿のスキャンを終了すると、スキャナエンジンか
らECSプロセス124に対してスキャン終了メッセー
ジが送信される(ステップS1113)。
【0247】ECSプロセス124は、受信したスキャ
ン終了メッセージを次ページ原稿有の旨とともにFCS
プロセス127へ送信する(ステップS1114)。一
方、原稿スキャンが終了すると、SRMプロセス123
はFCUHプロセス129に対してフィードイン終了を
指示し(ステップS1115)、これにより原稿フィー
ドインが終了する。
【0248】ここで、ファックスアプリプロセス113
がFCSプロセス127に対して送信モード変更要求関
数コールを行った場合には(ステップS1105)、E
CSプロセス124は、スレッド6においてスキャンパ
ラメータ確定要求メッセージをFCSプロセス127に
対して送信し、これに対し上述のようにFCSプロセス
127は、スキャンパラメータメッセージをECSプロ
セス124に送信する(ステップS1118)。ECS
プロセス124では、スキャンパラメータメッセージを
受信すると、次ページ目のスキャン・フィードインプロ
セスの実行をSRMプロセス123に指示して、実行が
開始する(ステップS1119、S1120)。
【0249】一方、1ページの指定宛先へのファクシミ
リ送信が完了すると、FCSプロセス127は、スレッ
ド5においてEOMメッセージ(異なる送信モードで次
ページ有り)をFCUHプロセス129へ送信し(ステ
ップS1121)、これを受信したFCUHプロセス1
29はスレッド13によりEOMを指定宛先へ送信する
(ステップS1122)。
【0250】FCUHプロセス129が指定宛先から受
信正常の通知を受けた場合には(ステップS112
3)、SRMプロセス123に対して送信成功メッセー
ジを送信し(ステップS1124)、これを受信したS
RMプロセス123はECSプロセス124に対してプ
ロセス正常終了メッセージを送信する(ステップS11
25)。さらにこれを受信したECSプロセス124は
FCSプロセス127に対し1ページ目のスキャン処理
完了通知メッセージを送信する(ステップS112
6)。そして、送信成功メッセージを受信したSRMプ
ロセス123は指示により、送信日時、発信元等のスタ
ンプを指定宛先へ送信する旨をスキャナエンジンに指示
する(ステップS1127)。
【0251】SRMプロセス123は、2ページ目の原
稿のフィードインを開始するため、FCUHプロセス1
29に対して原稿のフィードインスタートメッセージを
送信する(ステップS1128)。FCUHプロセス1
29はフィードインスタートメッセージを受信して、原
稿フィードインが開始され、これにより2ページ目の原
稿のスキャンおよび指定宛先への送信が開始する。
【0252】原稿のスキャンが開始されると、次ページ
原稿有無通知メッセージがスキャナエンジンからECS
プロセスに対して送信され、図11の例では、次ページ
原稿有無通知メッセージが通知され、ECSプロセス1
24のスレッド9に通知されている(ステップS112
9)。そして、原稿のスキャンが終了すると、スキャナ
エンジンからECSプロセス124に対してスキャン終
了メッセージが送信される(ステップS1130)。
【0253】ECSプロセス124のスレッド9は、受
信したスキャン終了メッセージを次ページ原稿無の旨と
ともにFCSプロセス127へ送信する(ステップS1
131)。一方、スキャンが終了すると、SRMプロセ
ス123ではスレッド13がFCUHプロセス129に
対してフィードイン終了を指示し(ステップS113
2)、これにより原稿フィードインが終了する。
【0254】2ページの指定宛先へのファクシミリ送信
が完了すると、FCSプロセス127では、スレッド5
がEOFメッセージ(次ページ無し)をFCUHプロセ
ス129へ送信し(ステップS1124)、これを受信
したFCUHプロセス129はスレッド13によりEO
Fを指定宛先へ送信する。
【0255】FCUHプロセス129が指定宛先から受
信正常の通知を受けた場合には(ステップS113
5)、スレッド13によりSRMプロセス123に対し
て送信成功メッセージを送信し(ステップS113
6)、これを受信したSRMプロセス123は、スレッ
ド12によりECSプロセス124に対してプロセス正
常終了メッセージを送信する(ステップS1137)。
【0256】さらにこれを受信したECSプロセス12
4は、スレッド9によりFCSプロセス127に対し2
ページ目のスキャン処理完了通知メッセージを送信する
(ステップS1138)。また、送信成功メッセージを
受信したSRMプロセス123は、スレッド12によ
り、送信日時、発信元等のスタンプの指定宛先へ送信の
指示を行う(ステップS1139)。
【0257】そして、ECSプロセス124は、FCS
プロセス127にジョブエンド通知メッセージを送信し
(ステップS1140)、FCSプロセス127では、
このジョブエンド通知メッセージをクライアントディス
パッチャで受信することにより全ての原稿のファックス
送信動作が完了する。
【0258】このように、実施の形態1の複合機では、
各アプリプロセスなどクライアントとなるプロセスが、
ECSプロセス、MCSプロセス、SRMプロセスなど
のサーバとなるプロセスに対し、関数コールによってサ
ービスを要求し、またメッセージの送受信を行うことで
プロセス間通信を実現することができる。このため、ア
プリケーション130とプラットホーム120という特
殊な構成を有する複合機において、複合サービスという
多種多様な機能を実現することができる。
【0259】また、実施の形態1の複合機では、関数コ
ールによるサービス要求の結果としての関数戻り値をク
ライアントディスパッチャにより監視して受信すること
により、プロセス内のスレッド間の同期制御を容易に行
うことができる。このため、アプリプロセス、複数のコ
ントロールサービスの一部のモジュールのみに変更があ
る場合でも、関数コールとその関数戻り値の制御を確実
に設計しておけば他のプロセスとのインタフェースの変
更は不要となるので、各アプリごと、各コントロールサ
ービスごとの機能変更などに対応することが容易に行
え、複合機の構成に可変性を持たせることが可能とな
る。
【0260】さらに、実施の形態1の複合機では、スレ
ッドにより並列実行を可能としながら、スレッドに親和
性のある関数コールとその関数戻り値の制御によりプロ
セス間通信におけるスレッド間の同期制御を行っている
ので、並列処理の切り替え時のオーバヘッドを極力少な
くして、複合サービス提供時の処理速度を向上させるこ
とができる。 (実施の形態2)実施の形態1にかかる複合機100で
は、サーバプロセスとクライアントプロセスとの関係を
概念的に説明した。そこで、この実施の形態2では、サ
ーバプロセスおよびクライアントプロセスをより具体的
に説明する。なお、実施の形態2にかかる複合機100
の構成は、図1と同様であるため説明を省略する。
【0261】図13は、実施の形態2の複合機100上
で動作するサーバプロセスとクライアントプロセスの関
係を詳細に示すブロック図である。ここで、クライアン
トプロセス1600は、サーバプロセス1610,16
20に対して要求を行うことにより、サーバプロセス1
610,1620からサービスの提供を受ける例えばS
CS122などのプロセスをいう。また、サーバプロセ
ス1610,1620は、クライアントプロセス160
0からの要求によりクライアントプロセス1600に対
しサービスを提供する例えばECS124などのプロセ
スをいう。
【0262】図13に示すとおり、クライアントプロセ
ス1600には複数のスレッド1601が起動してい
る。クライアントプロセス1600は、複数のスレッド
1601を有することから、複数のサーバプロセス16
10,1620に対して同時にサービスを要求できる。
【0263】また、クライアントプロセス1600は、
サーバプロセス1610,1620のサービスを要求す
るために、スレッド1601からサーバプロセス161
0,1620に対して関数コールを行い、その関数戻り
値を受信することによってプロセス間通信を行う。
【0264】クライアントプロセス1600のスレッド
1601は、あらかじめサーバプロセス1610,16
20から提供されている関数をコールする。関数は、ク
ライアントスタブ1602に定義されている。また、ク
ライアントディスパッチャ1603は関数戻り値の受信
を監視するスレッドである。
【0265】クライアントプロセス1600は、サーバ
プロセス1610,1620ごとにクライアントディス
パッチャ1603を起動してサーバプロセス1610,
1620と通信する。そして、関数コールを受けたサー
バプロセス1610,1620は要求された関数に対応
する処理を以下のように実行する。
【0266】例えばサーバプロセス1610のサーバデ
ィスパッチャ1611は、サーバスケルトン1612に
コーディングされている複数のスレッド1613から、
要求された関数に対応するスレッド1613を選択す
る。ここで選択されるスレッド1613は、実施の形態
1で説明した関数ハンドラ403に相当する。サーバプ
ロセス1610のスレッド1613は、要求された処理
を実行してその実行結果を関数戻り値としてクライアン
トプロセス1600に送信する。
【0267】次に、実施の形態2にかかるクライアント
プロセス1600と、サーバプロセス1610,162
0とを生成する生成方法について説明する。図14は、
実施の形態2のクライアントプロセスとサーバプロセス
とを生成する画像形成装置用通信プログラム生成装置
(以下、「スタブジェネレータ」という。)の機能的構
成を示すブロック図である。スタブジェネレータは、メ
ッセージファイルからヘッダと、クライアントスタブ
と、サーバスケルトンを自動生成するものである。
【0268】図14に示すように、スタブジェネレータ
は、メッセージファイル1701を入力する入力部17
02と、メッセージファイル1701に記述された内容
の構文チェックを行う構文解析部1703と、メッセー
ジファイル1701の記述内容から、ヘッダ1706と
クライアントスタブ1707と、サーバスケルトン17
05とを生成してハードディスク等の記憶媒体に格納す
るコード生成部1704とを備えている。
【0269】まず、スタブジェネレータに入力されるメ
ッセージファイル1701と、スタブジェネレータで生
成されるヘッダ1706、クライアントスタブ1707
およびサーバスケルトン1705について説明する。
【0270】メッセージファイル1701は、プロセス
間通信の通信内容をC言語などのソースコードで記述し
たソースファイルである。図15は、メッセージファイ
ルの記述例を示す説明図である。図15に示すように、
メッセージファイル1701には、別のメッセージファ
イルや、C言語記述のインクルードヘッダを宣言するイ
ンクルード宣言と、サーバプロセスとクライアントプロ
セスの間で送受信するメッセージを記述したメッセージ
記述と、クライアントプロセスからサーバプロセスに対
して発行する関数の宣言などが記述されている。
【0271】メッセージは、主としてサーバプロセスと
クライアントプロセスとの間でイベントや通知を行う際
に発行するものであり、メッセージファイル1701の
メッセージ記述としては、メッセージ名と、メッセージ
IDと、メッセージ方向、メッセージ内容を記述するよ
うになっている。
【0272】メッセージ方向には、「IN」、「OU
T」、「SELF」がある。「IN」は、クライアント
プロセスからサーバプロセスに対して送信するメッセー
ジを意味する。「OUT」は、サーバプロセスからクラ
イアントプロセスに対して送信するメッセージを意味す
る。また、「SELF」は自分自身のプロセスに対して
送信するメッセージを意味する。
【0273】関数は、クライアントプロセスからサーバ
プロセスに処理要求や設定要求を行う際に発行するもの
である。メッセージファイル1701の関数宣言には、
関数名と、関数の型と、引数のみを記述し、関数の処理
内容は記述しないようになっている。
【0274】クライアントスタブ1707は、クライア
ントプログラムから呼び出される関数のサーバプロセス
に対する発行を記述したソースファイルである。クライ
アントスタブ1707をコンパイルしてライブラリ化
し、クライアントプログラムとリンクすることにより、
クライアントプログラムからの関数コールがクライアン
トスタブ1707を介してサーバプロセスへ発行される
ようになっている。
【0275】図16はスタブジェネレータにより生成さ
れるクライアントスタブ1707の一例を示す説明図で
ある。図16に示すように、クライアントスタブ170
7には、後述するサーバスケルトン1705に登録され
た関数ハンドラを呼び出すことにより、関数コールが行
われるようになっている。サーバスケルトン1705
は、クライアントスタブ1707から呼び出された関数
ハンドラとメッセージハンドラを登録したソースファイ
ルである。
【0276】図17は、スタブジェネレータにより生成
されるサーバスケルトン1705の一例を示す説明図で
ある。図17に示すように、サーバスケルトン1705
にはクライアントスタブ1707に記述された関数に対
応した関数ハンドラが登録されている。
【0277】関数ハンドラでは引数の受け渡し部のみが
記述され、処理内容を記述する実装記述部は空欄の状態
で生成されている。この実装記述部には、クライアント
プログラムからクライアントスタブ1707を介して発
行される関数の処理内容を、サーバプログラムの開発者
が自在に記述できるようになっている。ヘッダ1706
は、サーバスケルトン1705とクライアントスタブ1
707で共通の定義、宣言などを記述したソースファイ
ルである。
【0278】図18はスタブジェネレータにより生成さ
れるヘッダ1706の一例を示す説明図である。図18
に示すように、ヘッダ1706には、メッセージファイ
ル1701に記述されたインクルード宣言、メッセージ
ID、メッセージの構造体などのメッセージ宣言、関数
宣言および関数ハンドラ宣言などが記述された状態で生
成されるようになっている。
【0279】次に、スタブジェネレータによるサーバス
ケルトン1705、クライアントスタブ1707および
ヘッダ1706の生成処理について説明する。図19
は、サーバスケルトン、クライアントスタブおよびヘッ
ダの生成処理のフローチャートである。
【0280】スタブジェネレータの構文解析部1703
は、メッセージファイル1701に記述された関数宣
言、メッセージ定義、インクルード宣言、C言語記述の
文法チェックを行い(ステップS1801)、さらにメ
ッセージファイル1701に定義されている関数名およ
びメッセージ定義の中のメッセージID、メッセージ名
の一意性の判断を行う(ステップS1802)。
【0281】そして、関数宣言、メッセージ定義、イン
クルード宣言の記述に文法エラーがあった場合、あるい
は関数名、メッセージID、メッセージ名のいずれかが
重複している場合には、ユーザに構文エラーである旨の
メッセージを通知し処理を終了する(ステップS180
3、S1804)。
【0282】構文解析後、コード生成部1704は、メ
ッセージファイル1701の記述内容から、ヘッダ17
06と、サーバスケルトン1705と、クライアントス
タブ1707を生成する。具体的には、メッセージファ
イル1701のインクルード宣言とC言語記述とをヘッ
ダ1706にそのまま転記し、メッセージファイル17
01のメッセージ定義に記述されているメッセージ構造
体をヘッダ1706にコピーする(ステップS180
5)。
【0283】また、コード生成部1704は、メッセー
ジファイル1701の関数宣言から関数ハンドラ名を自
動生成し(例えば、関数名abcの場合、関数ハンドラ
名をabc_handlerとして生成する)、生成さ
れた関数ハンドラ名をサーバスケルトン1705内に登
録する。
【0284】そして、関数ハンドラの処理内に、引数受
け渡しの記述を行うとともに、戻り値領域の生成システ
ムコールの発行を記述する。関数ハンドラの実際の処理
内容を記述する実装記述部の欄を空欄とし、その実装記
述部の後に、戻り値送信と戻り値領域解放の各システム
コールの発行を記述する(ステップS1806)。
【0285】また、コード生成部1704は、メッセー
ジファイル1701に記述された関数宣言ごとに、関数
名と引数の記述をクライアントスタブ1707に登録
し、その関数の処理内に、関数コールメッセージ生成コ
ールと関数ハンドラの呼び出しと戻り値解放の各システ
ムコールを記述する(ステップS1807)。なお、関
数ハンドラ呼び出しには、発行した関数の戻り値の待ち
受ける関数戻り値待ちシステムコールが内部的に発行さ
れるようになっている。
【0286】このようにスタブジェネレータにより、ク
ライアントスタブ1707とサーバスケルトン1705
とヘッダ1706を生成したら、次にサーバオブジェク
トおよびクライアントオブジェクトを完成させる。
【0287】サーバプログラムの開発者は、サーバスケ
ルトン1705の関数ハンドラの実装記述部(空欄)
に、関数ハンドラで行うべき処理内容をエディタなどを
利用して記述し、サーバスケルトン1705をヘッダ1
706とともにコンパイルしてサーバスタブオブジェク
トを生成する。また、サーバスケルトン1705に登録
した関数ハンドラを宣言するとともに、クライアントプ
ロセスとの間でメッセージファイル1701に記述され
たメッセージの送受信を行うメッセージハンドラ、エラ
ー処理を行うエラーハンドラ、サーバの初期化、サーバ
ディスパッチャ起動等のシステムコールの発行を記述し
たサーバソースファイルを作成してコンパイルし、サー
バスタブオブジェクトとリンクして、サーバプログラム
を完成させる。
【0288】一方、クライアントスタブ1707はヘッ
ダ1706とともにコンパイルしてクライアントスタブ
オブジェクトを生成する。サーバプロセスごとにクライ
アントスタブオブジェクトを生成し、生成した複数のク
ライアントスタブオブジェクトをライブラリとする。
【0289】また、関数の発行、関数ハンドラの宣言、
エラー処理を行うエラーハンドラの宣言、クライアント
プロセスとの間でメッセージファイル1701に記述さ
れたメッセージの送受信を行うメッセージハンドラ、お
よびクライアントプロセスの初期化やクライアントディ
スパッチャ起動等のシステムコールの発行を記述したク
ライアントプログラムを作成してコンパイルし、スタブ
のライブラリとリンクすることによりクライアントプロ
グラムを完成させる。
【0290】図20は、クライアントプログラムから関
数コールを行った場合におけるサーバプログラムとの呼
び出しおよび応答のシーケンスを示す説明図である。な
お、サーバプログラムとクライアントプログラムは実際
は実行可能形式のオブジェクトファイルであるが、図2
0では、説明の都合上いずれもソースコードで表示して
いる。
【0291】クライアントプログラムからサーバプログ
ラムに対して、たとえばOpen関数をコールすると、
クライアントスタブオブジェクトで定義されたOpen
が呼び出される(ステップS1901)。そして、この
スタブのOpenの処理の中で、Openの関数ハンド
ラOpen_handlerがサーバプログラムに対し
てコールされる(ステップS1902)。
【0292】サーバプログラムでは、クライアントスタ
ブオブジェクトから関数ハンドラOpen_handl
erの発行を受け取って、サーバスタブオブジェクトに
登録されているOpen_handlerの実装記述部
に記述されている処理を実行し(ステップS190
3)、その実行結果をクライアントスタブへ戻り値とし
て返す(ステップS1904)。クライアントプログラ
ムでは、この戻り値をクライアントスタブから受け取っ
て(ステップS1905)、次の処理へ移行する。
【0293】このように実施の形態2のスタブジェネレ
ータでは、メッセージファイル1701に関数宣言を記
述することによりクライアントスタブ1707とサーバ
スケルトン1705を容易に生成することができる。し
かも生成されるサーバスケルトン1705の実装記述部
は空欄となっているので、プログラム開発者は必要に応
じて関数の処理内容を容易に変更するができる。
【0294】このため複合機100に可変性をもたせる
ことができるとともに、多種多様な機能を実現させるこ
とができる。さらに、サードベンダーなどの他社がクラ
イアントプログラムの開発を行う場合でも、クライアン
トプログラムには提供される関数コールを記述するだけ
でプロセス間通信が可能となるので、内部の通信プロト
コルの隠蔽性を保つことが可能となる。
【0295】また、実施の形態2のスタブジェネレータ
では、プロセス間通信を関数コールで実現しているの
で、ジョブの並列実行をスレッドで実現した場合でも、
高速なプロセス間通信が可能となる。また、関数からの
戻り値によってスレッド間の同期をとることができるの
で、同期のための処理プログラムを別途作成する必要が
なくなり、プログラム開発の労力を低減することができ
る。(実施の形態3)実施の形態1にかかる複合機10
0は、クライアントプロセスとなるアプリプロセスが、
サーバプロセスとなる各コントロールサービスと同一複
合機内部で動作していた。この実施の形態3にかかる複
合機100は、ネットワークに接続された他の複合機の
アプリプロセスをクライアントプロセスとして各コント
ロールサービスがサービスを提供するものである。
【0296】図21は、実施の形態3にかかる複合機の
構成を示すブロック図である。図21に示すように、実
施の形態3では複数の複合機1300a,1300bが
LANなどのネットワーク1340によって接続された
構成となっている。なお、図21では、2台の複合機1
300a,1300bがネットワーク1340で接続さ
れた構成となっているが、3台以上の複合機をネットワ
ーク1340で接続した構成でもよい。
【0297】図21に示すように、ネットワーク134
0上の各複合機1300a,1300bは、実施の形態
1の複合機と同様の構成となっている。このため、これ
らの構成について詳細な説明は省略する。
【0298】実施の形態3の複合機では、実施の形態1
と同様に、主としてコピーアプリ1312、プリンタア
プリ1311、スキャナアプリ1314、ファックスア
プリ1313などのアプリケーションのプロセス、およ
びECS1324、MCS1325、FCS1327、
NCS1328などのコントロールサービスのプロセス
が、コントロールサービスまたはSRM1323をサー
バプロセスとしたクライアントプロセスとなるが、さら
にネットワークに接続された他の複合機内部で動作して
いるECS1324、MCS1325、FCS132
7、NCS1328などのコントロールサービスをサー
バプロセスとしたクライアントプロセスとなる。
【0299】また、実施の形態3の複合機では、実施の
形態1と同様に、主としてECS1324、MCS13
25、FCS1327、NCS1328などのコントロ
ールサービスおよびSRM1323のプロセスが、アプ
リケーションのプロセスまたはコントロールサービスも
しくはSRM1323のプロセスをクライアントプロセ
スとしたサーバプロセスとなるが、さらにネットワーク
に接続された他の複合機内部で動作しているコピーアプ
リ1312、プリンタアプリ1311、スキャナアプリ
1314、ファックスアプリ1313などのアプリケー
ションのプロセスをクライアントプロセスとしたサーバ
プロセスにもなる。
【0300】実施の形態3の複合機におけるこれらサー
バプロセスとクライアントプロセスの関係、およびサー
バプロセス、クライアントプロセスの各構成は実施の形
態1の複合機で説明した図2および図3と同様であるの
で詳細な説明は省略する。
【0301】各コントロールサービスとSRM1323
と各アプリとは、実施の形態1の複合機100と同様
に、それぞれプロセスとして汎用OS上に生成されて実
行される。各プロセス内部には、複数のスレッドが起動
され、汎用OSの管理下でこれらのスレッドのCPU占
有時間を切り替えることにより並列実行が実現されてい
る。
【0302】また、実施の形態3の複合機1300a,
1300bでは、アプリケーションなどのクライアント
プロセスは、コントロールサービスなどのサーバプロセ
スのサービスを要求するために、クライアントプロセス
内のスレッドからサーバプロセスに対して関数コールを
行い、その関数戻り値を受信すること、およびスレッド
からメッセージをサーバプロセスに送信することによっ
てプロセス間通信を行う。そして、さらにネットワーク
上の他の複合機で動作するサーバプロセスに対して関数
コールおよびメッセージの送信も行えるようになってい
る。
【0303】一方、コントロールサービスなどのサーバ
プロセスでは、クライアントプロセスに対するプロセス
間通信はメッセージの送信のみで行われる。さらにサー
バプロセスでは、ネットワーク上の他の複合機で動作す
るプロセスをクライアントプロセスとして、このネット
ワーク上のクライアントプロセスに対してメッセージの
送信も可能となっている。
【0304】クライアントプロセスで起動されるクライ
アントディスパッチャは実施の形態1の複合機100と
同様の構成をしており、さらにネットワーク1340に
接続された他の複合機からの関数戻り値およびOUT方
向のメッセージの受信も監視している。
【0305】このため、ネットワーク上の他の複合機の
プロセスとプロセス間通信を行えるように、クライアン
トプロセスから発行する関数の形式およびメッセージの
形式は、ネットワークアドレスなどの情報を指定できる
ような形式で提供される。
【0306】サーバプロセスで起動されるサーバディス
パッチャも、実施の形態1の複合機100におけるサー
バプロセスと同様の構成をしているが、さらにネットワ
ーク1340に接続された他の複合機で動作するクライ
アントプロセスのスレッドからの関数コールおよびIN
方向のメッセージも監視している。
【0307】サーバプロセスでは、関数コールをサーバ
ディスパッチャで受信したときに実行される関数ハンド
ラが、ネットワーク1340上のクライアントプロセス
に関数戻り値を返すために、関数コールしたプロセスの
存在する複合機のネットワークアドレスなどを指定でき
るようになっている。また、サーバプロセスから送信す
るメッセージもネットワークアドレスなどを指定できる
ようになっている。
【0308】次に、このように構成された実施の形態3
にかかる複合機1300a,1300bにおいて、ネッ
トワーク1340上の異なる複合機を利用してプリント
動作を行う場合のプロセス間通信について説明する。図
22は、実施の形態3のネットワークに接続された2つ
の複合機を利用してプリンタ動作を行う場合のプリンタ
アプリ、ECSのプロセス間のデータシーケンスを示す
説明図である。
【0309】プリンタアプリプロセス1311が印刷要
求を受信した場合には(ステップS1401)、実施の
形態1において図5を用いて説明したとおり、複合機1
300aのプリンタアプリプロセス1311のスレッド
がECSプロセス1324に対して、ジョブ動作モード
設定関数コールとジョブスタート要求関数コールを順次
行う。
【0310】実施の形態3では、このとき、複合機13
00aのプリンタアプリプロセス1311が、ネットワ
ーク1340を介して接続された他の複合機1300b
のネットワークアドレスを指定し、ジョブ動作モード設
定関数コールとジョブスタート要求関数コールを行って
いる(ステップS1402、S1404)。
【0311】これにより、ジョブ動作モード設定関数コ
ール、ジョブスタート要求関数コールは、自己の複合機
1300aのECSプロセス1324ではなく、ネット
ワークアドレスで指定された複合機1300bのECS
プロセス1324に対して送信される。そして、それぞ
れの関数コールを行ったスレッドは関数戻り待ち状態に
なる。
【0312】複合機1300bのECSプロセス132
4では、サーバディスパッチャがネットワーク1340
を介してジョブ動作モード設定関数コール、ジョブスタ
ート要求関数コールをそれぞれ受信し、各関数ハンドラ
によってプリンタジョブの動作モード設定、プリンタジ
ョブの開始処理を行う。そして、ジョブ動作モード設定
関数の戻り値およびジョブオープン関数の戻り値を、複
合機1300aのネットワークアドレスを指定して送信
する(ステップS1403、S1405)。
【0313】複合機1300aのプリンタアプリプロセ
ス1311では、クライアントディスパッチャによって
複合機1300bのECSプロセス1324からのジョ
ブ動作モード設定関数の戻り値およびジョブオープン関
数の戻り値を受信する。そして、実施の形態1の複合機
と同様に、関数戻り待ち状態のスレッドを関数戻り待ち
キューから抽出して、ジョブ動作モード設定関数の戻り
値とジョブオープン関数の戻り値のそれぞれを抽出され
たスレッドに送信する。
【0314】これ以降のECSプロセス1324、MC
Sプロセス1325、SRMプロセス123との間のプ
ロセス間通信は同一複合機内部で行われるものであり、
実施の形態1で説明したプリンタ動作と同様である。こ
れにより、複合機1300aにおける印刷要求に対し
て、実際のプリント処理が複合機1300bで行われる
ことになる。
【0315】複合機1300bにおけるプリント処理が
終了すると、複合機1300bのECSプロセス132
4はジョブエンド通知メッセージをプリンタアプリプロ
セスに送信する。このとき、ECSプロセス1324の
サーバディスパッチャは、ネットワーク1340上の複
合機1300aのネットワークアドレスを指定してジョ
ブエンド通知メッセージを送信する(ステップS140
6)。
【0316】複合機1300aのプリンタアプリプロセ
ス1311では、クライアントディスパッチャによっ
て、ネットワークを介して送信されてきたジョブエンド
通知メッセージを受信し、これによりプリンタ動作を完
了する。
【0317】このように、実施の形態3では、ネットワ
ークに接続された複合機1300aで動作するアプリプ
ロセスと、複合機1300bで動作するECSプロセス
1324との間でプロセス間通信を行って、複合機13
00aで発生した要求に対しネットワーク1340上の
他の複合機1300bでプリント処理を行えるので、要
求の生じた複合機のみならずネットワーク上の複合機を
利用して多種多様な機能を実現することができる。
【0318】例えば、複合機1300aで印刷要求が生
じたときに、複合機1300aのプリンタエンジンが他
のジョブに占有されている場合には、プリンタアプリプ
ロセスでこれを判断してECSプロセス1324に対す
る関数コールをネットワーク1340上の他の複合機1
300bのECSプロセス1324への関数コールへ切
り替える等の処理を行えば、プリント開始までに時間を
要することを防止でき、ユーザビリティの向上を図るこ
とができる。
【0319】なお、実施の形態3では、プリンタ動作の
例をあげてネットワーク1340に接続された2つの複
合機1300a,1300bにおけるプロセス間通信に
ついて説明したが、スキャナ動作、コピー動作、ファク
シミリ送信動作においても、複合機1300a内のスキ
ャナアプリプロセス1314、コピーアプリプロセス1
312、ファックスアプリプリセス1313と、ECS
プロセス1324とのプロセス間通信もプリンタ動作の
場合と同様に行われる。
【0320】また、実施の形態3の複合機1300a,
1300bでは、アプリプロセスとECSプロセス13
24とネットワーク1340を介したプロセス間通信に
説明したが、アプリプロセスとECSプロセス1324
以外のコントロールサービスおよびシステムリソースマ
ネージャ(SRM)1323のプロセス間通信も、アプ
リプロセスとECSプロセス1324間の通信と同様に
行われる。
【0321】さらに、実施の形態3の複合機1300
a,1300bでは、アプリプロセスとネットワーク1
340上の別の複合機内のECSプロセス1324とが
直接プロセス間通信を行っているが、NCS1328を
介して異なる複合機のアプリプロセスとECSプロセス
1324とが通信を行うように構成しても良い。
【0322】すなわち、NCS1328において、アプ
リプロセスからの関数コールやメッセージを一旦受信し
て、ネットワーク1340上の他の複合機1300bの
ネットワークアドレスを指定した上で、関数コールやメ
ッセージを複合機1300bのNCSプロセス1328
へ送信するように構成することも可能である。
【0323】この場合には、アプリプロセスやECSプ
ロセス1324において、ネットワークアドレスに関す
る処理の追加が不要となり、モジュール間の独立性がよ
り高まるので、複合機により可変性を持たせることがで
きるという利点がある。 (実施の形態4)実施の形態3にかかる複合機1300
a,1300bでは、ネットワーク1340に接続され
た他の複合機のアプリプロセスをクライアントプロセス
として各コントロールサービスがサービスを提供してい
た。この実施の形態4にかかる複合機は、ネットワーク
に接続された他の複合機のコントロールサービスをクラ
イアントプロセスとして、各コントロールサービスがサ
ービスを提供するものである。
【0324】実施の形態4では、図21に示す実施の形
態3の複合機1300a,1300bと同様に、複数の
複合機がLANなどのネットワーク1340によって接
続された構成となっている。実施の形態4におけるネッ
トワーク1340上の各複合機1300a,1300b
は、実施の形態1の複合機と同様の構成であるため、こ
れらの構成について詳細な説明は省略する。
【0325】実施の形態4の複合機では、実施の形態1
と同様に、主としてコピーアプリ1312、プリンタア
プリ1311、スキャナアプリ1314、ファックスア
プリ1313などのアプリケーションプロセス、および
ECS1324、MCS1325、FCS1327、N
CS1328などのコントロールサービスのプロセス
が、コントロールサービスまたはSRM1323をサー
バプロセスとしたクライアントプロセスとなるが、さら
にネットワークに接続された他の複合機内部で動作して
いるECS1324、MCS1325、FCS132
7、NCS1328などのコントロールサービスをサー
バプロセスとしたクライアントプロセスとなる。
【0326】また、実施の形態4の複合機では、実施の
形態1と同様に、主としてECS1324、MCS13
25、FCS1327、NCS1328などのコントロ
ールサービスおよびSRM1323のプロセスが、アプ
リケーションサービスまたはコントロールサービスもし
くはSRM1323をクライアントプロセスとしたサー
バプロセスとなるが、さらにネットワークに接続された
他の複合機内部で動作しているコントロールサービスを
クライアントプロセスとしたサーバプロセスにもなる。
【0327】実施の形態4の複合機1300a,130
0bにおけるこれらサーバプロセスとクライアントプロ
セスの関係、およびサーバプロセス、クライアントプロ
セスの各構成は実施の形態1の複合機で説明した図2お
よび図3、および実施の形態3と同様であるので詳細な
説明は省略する。
【0328】実施の形態4の複合機1300a,130
0bでは、コントロールサービスがクライアントプロセ
スとなる場合に、他のコントロールサービスなどのサー
バプロセスのサービスを要求するために、クライアント
プロセス内のスレッドからサーバプロセスに対して関数
コールを行い、その関数戻り値を受信すること、および
スレッドからメッセージをサーバプロセスに送信するこ
とによってプロセス間通信を行う。そして、さらにネッ
トワーク1340上の他の複合機で動作する他のコント
ロールサービスまたはSRM1323などのサーバプロ
セスに対して関数コールおよびメッセージの送信も行え
るようになっている。
【0329】コントロールサービスなどのクライアント
プロセスで起動されるクライアントディスパッチャは、
実施の形態3の複合機1300a,1300bと同様
に、ネットワーク1340に接続された他の複合機で動
作するコントロールサービスまたはSRM1323(サ
ーバプロセス)からの関数戻り値およびOUT方向のメ
ッセージの受信も監視している。
【0330】このため、ネットワーク1340上の他の
複合機のプロセスとプロセス間通信を行えるように、ク
ライアントプロセスから発行する関数の形式およびメッ
セージの形式は、ネットワークアドレスなどの情報を指
定できるような形式で提供される。
【0331】サーバプロセスで起動されるサーバディス
パッチャも、実施の形態3の複合機1300a,130
0bにおけるサーバプロセスと同様に、ネットワーク1
340に接続された他の複合機で動作するクライアント
プロセスのスレッドからの関数コールおよびIN方向の
メッセージも監視している。
【0332】実施の形態4においても、サーバプロセス
およびクライアントプロセスとなるECS1324、M
CS1325、FCS1327、NCS1328などの
コントロールサービスおよびSRM1323では、関数
コールをサーバディスパッチャで受信したときに実行さ
れる関数ハンドラが、関数コールしたクライアントプロ
セスの存在する複合機のネットワークアドレスなどを指
定できるようになっている。また、サーバプロセスから
送信するメッセージもネットワークアドレスなどを指定
できるようになっている。
【0333】次に、このように構成された実施の形態4
にかかる複合機1300a,1300bにおいて、ネッ
トワーク1340上の異なる複合機を利用してファクシ
ミリ送信動作を行う場合のプロセス間通信について説明
する。図23は、実施の形態4のネットワークに接続さ
れた2つの複合機を利用してファクシミリ送信動作を行
う場合のFCSとECSとMCSのプロセス間のデータ
シーケンスを示す説明図である。
【0334】FCSプロセス1327がファックスアプ
リプロセス1313から送信スタート要求を受信した場
合には(ステップS1501)、複合機1300aのF
CSプロセス1327のスレッドが、ネットワーク13
40に接続された他の複合機1300bのネットワーク
アドレスを指定して、ジョブ動作モード設定関数コール
とジョブスタート要求関数コールを順次行う(ステップ
S1502、S1504)。
【0335】これにより、ジョブ動作モード設定関数コ
ール、ジョブスタート要求関数コールは、ネットワーク
アドレスで指定された複合機1300bで動作するEC
Sプロセス1324に対してネットワークを介して送信
される。
【0336】複合機1300bのECSプロセス132
4では、サーバディスパッチャがネットワーク1340
を介してジョブ動作モード設定関数コール、ジョブスタ
ート要求関数コールをそれぞれ受信し、各関数ハンドラ
によってプリンタジョブの動作モード設定、プリンタジ
ョブの開始処理を行う。そして、ジョブ動作モード設定
関数の戻り値およびジョブオープン関数の戻り値を、複
合機1300aのネットワークアドレスを指定して送信
する(ステップS1503、S1505)。
【0337】複合機1300aのFCSプロセス132
7では、クライアントディスパッチャによって複合機1
300bのECSプロセス1324からのジョブ動作モ
ード設定関数の戻り値およびジョブオープン関数の戻り
値を受信する。そして、実施の形態1の複合機と同様
に、関数戻り待ち状態のスレッドを関数戻り待ちキュー
から抽出して、ジョブ動作モード設定関数の戻り値とジ
ョブオープン関数の戻り値のそれぞれを抽出されたスレ
ッドに送信する。
【0338】複合機1300bのECSプロセス132
4は、MCSプロセス1325に対してメモリ確保要求
関数コールを行い(ステップS1505)、またSRM
プロセス123に対してスキャナエンジンの資源獲得要
求関数コールを行う(ステップS1506)。かかる関
数コールに対するMCSプロセス1325およびSRM
プロセス1323の処理は、実施の形態1で説明したと
おりである。
【0339】複合機1300bのECSプロセス132
4では、スキャナエンジンの資源獲得関数の戻り値を受
信したら、複合機1300aのネットワークアドレスを
指定したスキャンパラメータ要求メッセージを、複合機
1300aのFCSプロセス1327にネットワークを
介して送信する(ステップS1507)。
【0340】複合機1300aのFCSプロセス132
7では、このスキャナパラメータ確定要求メッセージを
受信すると、スキャナパラメータのメッセージを、複合
機1300bのネットワークアドレスを指定することに
より、複合機1300bのECSプロセス1324に対
してネットワークを介して送信する(ステップS150
8)。ECSプロセス1324では、サーバディスパッ
チャがスキャナパラメータメッセージをネットワークを
介して受信する。
【0341】これ以降のプロセス間通信は、同一複合機
1300b内部で行われるものであり、実施の形態1で
説明したファクシミリ送信と同様である。これにより、
複合機1300aにおけるファクシミリ送信スタート要
求に対して、複合機1300bでファクシミリ送信が行
われることになる。複合機1300bにおけるスキャン
およびファクシミリ送信処理が終了すると、複合機13
00bのECSプロセス1324のサーバディスパッチ
ャは、ネットワーク1340上の複合機1300aのネ
ットワークアドレスを指定してスキャン終了通知メッセ
ージを複合機1300aのFCSプロセス1327に送
信する(ステップS1509)。
【0342】複合機1300aのFCSプロセス132
7では、クライアントディスパッチャによって、ネット
ワーク1340を介して送信されてきたスキャン終了通
知メッセージを受信し、これによりファクシミリ送信動
作を完了する。
【0343】このように、実施の形態4の複合機では、
ネットワークに接続された複合機1300aで動作する
FCSプロセス1327と、複合機1300bで動作す
るECSプロセス1324との間でプロセス間通信を行
って、複合機1300aで発生した要求に対しネットワ
ーク1340上の他の複合機1300bでファクシミリ
送信処理を行えるので、要求の生じた複合機のみならず
ネットワーク1340上の複合機を利用して多種多様な
機能を実現することができる。
【0344】例えば、複合機1300aでファクシミリ
送信要求が生じたときに、複合機1300aのファクシ
ミリエンジンがファクシミリ受信ジョブに占有されてい
る場合には、FCSプロセス1327でこれを判断して
ECSプロセス1324に対する関数コールをネットワ
ーク1340上の他の複合機1300bのECSプロセ
ス1324への関数コールへ切り替える等の処理を行え
ば、ファクシミリ送信を直ちに行うことができ、複合機
のユーザビリティの向上を図ることができる。
【0345】なお、実施の形態4では、ファクシミリ送
信動作の例をあげてネットワーク1340に接続された
2つの複合機1300a,1300bにおけるプロセス
間通信について説明したが、スキャナ動作、コピー動
作、プリント動作においても、複合機1300a内のコ
ントロールサービスと複合機1300b内のコントロー
ルサービスのプロセス間通信も同様に行われる。
【0346】また、実施の形態4の複合機では、FCS
プロセス1327とECSプロセス1324とのネット
ワーク1340を介したプロセス間通信に説明したが、
他のコントロールサービス間のネットワーク1340を
介したプロセス間通信も、FCSプロセス1327とE
CSプロセス1324の通信と同様に行われる。
【0347】さらに、実施の形態4の複合機では、FC
Sアプリプロセス1327とネットワーク1340上の
別の複合機内のECSプロセス1324とが直接プロセ
ス間通信を行っているが、この場合も、NCSプロセス
1328を介して異なる複合機のコントロールサービス
間の通信を行うように構成しても良い。
【0348】以上、実施の形態1〜4の複合機において
使用した関数、メッセージはすべて一例であり、とくに
これらに限定されるものではなく、任意の関数やメッセ
ージを定義して使用することができる。
【0349】
【発明の効果】以上説明したように、発明によれば、ユ
ーザサービス及びコントロールサービスの間の独立性を
維持しながら互いにサービスやデータの授受をプロセス
間通信によって行うことができ、多種多様な機能を実現
することが可能である。
【図面の簡単な説明】
【図1】この発明の実施の形態の画像形成装置(複合
機)の構成を示すブロック図である。
【図2】実施の形態1の複合機におけるサーバプロセス
とクライアントプロセスの関係を示すブロック図であ
る。
【図3】実施の形態1の複合機で動作するクライアント
プロセスの構成を示すブロック図である。
【図4】実施の形態1の複合機で動作するサーバプロセ
スの構成を示すブロック図である。
【図5】実施の形態1の複合機でプリンタ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間のデータシーケ
ンスを示す説明図である。
【図6】実施の形態1の複合機でプリンタ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間の関数およびメ
ッセージの送受信の関係を示す説明図である。
【図7】実施の形態1の複合機でスキャナ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間のデータシーケ
ンスを示す説明図である。
【図8】実施の形態1の複合機でスキャナ動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間の関数およびメ
ッセージの送受信の関係を示す説明図である。
【図9】実施の形態1の複合機でコピー動作を行う場合
のアプリケーション、コントロールサービスおよびシス
テムリソースサービスの各プロセス間のデータシーケン
スを示す説明図である。
【図10】実施の形態1の複合機でコピー動作を行う場
合のアプリケーション、コントロールサービスおよびシ
ステムリソースサービスの各プロセス間の関数およびメ
ッセージの送受信の関係を示す説明図である。
【図11】実施の形態1の複合機でファクシミリ送信動
作を行う場合のアプリケーション、コントロールサービ
スおよびシステムリソースサービスの各プロセス間のデ
ータシーケンスを示す説明図である。
【図12】実施の形態1の複合機でファックス送信動作
を行う場合のアプリケーション、コントロールサービス
およびシステムリソースサービスの各プロセス間の関数
およびメッセージの送受信の関係を示す説明図である。
【図13】実施の形態2の複合機100上で動作するサ
ーバプロセスとクライアントプロセスの関係を詳細に示
すブロック図である。
【図14】実施の形態2のクライアントプロセスとサー
バプロセスとを生成する画像形成装置用通信プログラム
生成装置(スタブジェネレータ)の機能的構成を示すブ
ロック図である。
【図15】メッセージファイルの記述例を示す説明図で
ある。
【図16】スタブジェネレータにより生成されるクライ
アントスタブの一例を示す説明図である。
【図17】スタブジェネレータにより生成されるサーバ
スケルトンの一例を示す説明図である。
【図18】スタブジェネレータにより生成されるヘッダ
の一例を示す説明図である。
【図19】サーバスケルトン、クライアントスタブおよ
びヘッダの生成処理のフローチャートである。
【図20】クライアントプログラムから関数コールを行
った場合におけるサーバプログラムとの呼び出しおよび
応答のシーケンスを示す説明図である。
【図21】実施の形態2にかかる複合機の構成を示すブ
ロック図である。
【図22】実施の形態2のネットワークに接続された2
つの複合機を利用してプリンタ動作を行う場合のプリン
タアプリとECSプロセス間のデータシーケンスを示す
説明図である。
【図23】実施の形態3のネットワークに接続された2
つの複合機を利用してファクシミリ送信動作を行う場合
のFCSとECSとMCSのプロセス間のデータシーケ
ンスを示す説明図である。
【符号の説明】
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 サーバスケルトン

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 画像形成処理で使用されるハードウェア
    資源と、画像形成に係るユーザサービスおよびコントロ
    ールサービスの処理を行う一または複数のプログラムと
    を有する画像形成装置であって、 前記ユーザサービスおよびコントロールサービスのそれ
    ぞれは、サーバプロセスまたはクライアントプロセスと
    して動作するプロセスであり、 前記サーバプロセスは、前記クライアントプロセスに提
    供する一または複数のサービスを定義した関数を有して
    おり、 前記クライアントプロセスは、前記サーバプロセスにサ
    ービスの提供を要求する際に関数呼び出しを行うことを
    特徴とする画像形成装置。
  2. 【請求項2】 前記コントロールサービスは、前記ユー
    ザサービスをクライアントプロセスとしたサーバプロセ
    スとして動作して、前記ユーザサービスの少なくとも2
    つが共通的に必要とするサービスを定義した関数を有
    し、 前記ユーザサービスは、前記コントロールサービスにサ
    ービスの提供を要求する際に関数呼び出しを行うことを
    特徴とする請求項1記載の画像形成装置。
  3. 【請求項3】 前記コントロールサービスは、他のコン
    トロールサービスをクライアントプロセスとしたサーバ
    プロセスとして動作して、前記他のコントロールサービ
    スの少なくとも2つが共通的に必要とするサービスを定
    義した関数を有しており、 前記他のコントロールサービスは、前記コントロールサ
    ービスにサービスの提供を要求する際に関数呼び出しを
    行うことを特徴とする請求項1又は2記載の画像形成装
    置。
  4. 【請求項4】 前記コントロールサービスは、前記サー
    バプロセスとして動作するとともに前記クライアントプ
    ロセスとして動作することを特徴とする請求項1乃至3
    いずれか一項記載の画像形成装置。
  5. 【請求項5】 前記ユーザサービスおよび前記コントロ
    ールサービスの各プロセスは、一または複数のスレッド
    を含むことを特徴とする請求項1乃至4いずれか一項記
    載の画像形成装置。
  6. 【請求項6】 前記ユーザサービスおよび前記コントロ
    ールサービスは、前記クライアントプロセスとして動作
    するときに、前記サーバプロセスへの関数呼び出しに対
    する関数戻り値の受信を監視し、受信した関数戻り値を
    前記関数呼び出しを行ったスレッドに受け渡すクライア
    ント監視手段を備えたことを特徴とする請求項5記載の
    画像形成装置。
  7. 【請求項7】 前記クライアント監視手段は、スレッド
    で実現されることを特徴とする請求項6記載の画像形成
    装置。
  8. 【請求項8】 前記クライアント監視手段は、関数の呼
    び出し後に関数戻り値待ち状態のスレッドの識別子を一
    時的に格納する関数戻り待ちキューをさらに備え、前記
    サーバプロセスから前記関数戻り値を受信したときに、
    受信した関数戻り値を、前記関数戻り待ちキューに格納
    された識別子の前記スレッドに送信することを特徴とす
    る請求項6又は7記載の画像形成装置。
  9. 【請求項9】 前記サーバプロセスおよび前記クライア
    ントプロセスは、さらにイベントまたは通知に関するメ
    ッセージの送信,受信または送受信の何れかを行うこと
    を特徴とする請求項1乃至8いずれか一項記載の画像形
    成装置。
  10. 【請求項10】 前記クライアント監視手段は、さらに
    サーバプロセスからのメッセージの受信を監視するもの
    であることを特徴とする請求項9記載の画像形成装置。
  11. 【請求項11】 前記クライアント監視手段は、受信し
    たメッセージに基づいた処理を実行するメッセージハン
    ドラをさらに備えたことを特徴とする請求項10記載の
    画像形成装置。
  12. 【請求項12】 前記サーバプロセスは、前記クライア
    ントプロセスからの関数呼び出しを監視するサーバ監視
    手段を備えたことを特徴とする請求項1乃至11いずれ
    か一項記載の画像形成装置。
  13. 【請求項13】 前記サーバ監視手段は、複数のクライ
    アントプロセスからの関数呼び出しを監視することを特
    徴とする請求項12に記載の画像形成装置。
  14. 【請求項14】 前記サーバ監視手段は、前記クライア
    ントプロセスから関数呼び出しを受信したときに、呼び
    出された関数に対応した処理を実行する関数ハンドラを
    備えたことを特徴とする請求項12又は13記載の画像
    形成装置。
  15. 【請求項15】 前記サーバ監視手段は、さらにクライ
    アントプロセスからのメッセージの受信を監視すること
    を特徴とする請求項12乃至14いずれか一項記載の画
    像形成装置。
  16. 【請求項16】 前記サーバ監視手段は、受信したメッ
    セージに基づいた処理を実行するメッセージハンドラを
    さらに備えたことを特徴とする請求項15記載の画像形
    成装置。
  17. 【請求項17】 画像形成処理で使用されるハードウェ
    ア資源と、画像形成に係るユーザサービスおよびコント
    ロールサービスの処理を行う一または複数のプログラム
    とを有する画像形成装置であって、 前記コントロールサービスは、ネットワークに接続され
    た他の画像形成装置で動作するクライアントプロセスに
    対するサーバプロセスとして動作し、サーバプロセスと
    して前記他の画像形成装置のクライアントプロセスに提
    供する一または複数のサービスを定義した関数を有して
    いることを特徴とする画像形成装置。
  18. 【請求項18】 前記コントロールサービスの各プロセ
    スは、前記他の画像形成装置のクライアントプロセスに
    提供するサービスを実行する一または複数のスレッドを
    備えたことを特徴とする請求項17記載の画像形成装
    置。
  19. 【請求項19】 前記コントロールサービスは、前記他
    の画像形成装置のクライアントプロセスからの関数呼び
    出しを監視するサーバ監視手段を備えたことを特徴とす
    る請求項17又は18記載の画像形成装置。
  20. 【請求項20】 前記サーバ監視手段は、さらに前記他
    の画像形成装置のクライアントプロセスからのメッセー
    ジの受信を監視することを特徴とする請求項19記載の
    画像形成装置。
  21. 【請求項21】 前記コントロールサービスは、さらに
    前記他の画像形成装置のクライアントプロセスに対しメ
    ッセージを送信することを特徴とする請求項17乃至2
    0いずれか一項記載の画像形成装置。
  22. 【請求項22】 前記コントロールサービスは、前記他
    の画像形成装置で動作するユーザサービスをクライアン
    トプロセスとしたサーバプロセスとして動作することを
    特徴とする請求項17乃至21いずれか一項記載の画像
    形成装置。
  23. 【請求項23】 前記コントロールサービスは、前記他
    の画像形成装置で動作するコントロールサービスをクラ
    イアントプロセスとしたサーバプロセスとして動作する
    ことを特徴とする請求項17乃至22いずれか一項記載
    の画像形成装置。
  24. 【請求項24】 前記ユーザサービスは、前記他の画像
    形成装置で動作するコントロールサービスをサーバプロ
    セスとしたクライアントプロセスとして動作することを
    特徴とする請求項17乃至23いずれか一項記載の画像
    形成装置。
  25. 【請求項25】 前記コントロールサービスは、前記他
    の画像形成装置で動作するコントロールサービスをサー
    バプロセスとしたクライアントプロセスとして動作する
    ことを特徴とする請求項17乃至24いずれか一項記載
    の画像形成装置。
JP2002244000A 2001-08-27 2002-08-23 画像形成装置 Pending JP2003177931A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002244000A JP2003177931A (ja) 2001-08-27 2002-08-23 画像形成装置
EP02019030A EP1292109A1 (en) 2001-08-27 2002-08-27 Information processing system
US10/227,921 US7318083B2 (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
JP2002244000A JP2003177931A (ja) 2001-08-27 2002-08-23 画像形成装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005317219A Division JP2006139776A (ja) 2001-08-27 2005-10-31 情報処理装置

Publications (1)

Publication Number Publication Date
JP2003177931A true JP2003177931A (ja) 2003-06-27

Family

ID=26621075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002244000A Pending JP2003177931A (ja) 2001-08-27 2002-08-23 画像形成装置

Country Status (1)

Country Link
JP (1) JP2003177931A (ja)

Cited By (2)

* 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
JP2011060239A (ja) * 2009-09-14 2011-03-24 Ricoh Co Ltd 画像形成装置、印刷ジョブ実行方法、プログラム、記憶媒体

Cited By (2)

* 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
JP2011060239A (ja) * 2009-09-14 2011-03-24 Ricoh Co Ltd 画像形成装置、印刷ジョブ実行方法、プログラム、記憶媒体

Similar Documents

Publication Publication Date Title
JP3405159B2 (ja) 印刷装置
US7318083B2 (en) Information processing system
JP2002084383A (ja) 画像形成装置、画像形成方法およびプログラム
JP2011138395A (ja) サーバ装置及び端末装置及び印刷システムと印刷システムのデータ変換方法
JP2000242460A (ja) 画像処理装置および画像処理方法、並びに画像処理プログラムを記憶した記憶媒体
JP2002082806A (ja) 画像形成装置、画像形成方法およびプログラム
JP2013114438A (ja) 印刷システム、中継サーバ、印刷システムの制御方法、およびコンピュータプログラム
JP7102129B2 (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP6066006B2 (ja) 画像形成装置
JP5441426B2 (ja) 画像処理装置及びその制御方法、並びにプログラム
JP2004114674A (ja) 画像形成装置、記憶領域確保方法
JP5370439B2 (ja) 装置、要求処理方法、プログラム、及び記録媒体
JP2011253409A (ja) 画像形成システム
JP4350728B2 (ja) 画像形成装置およびプロセス間通信方法
JP4052901B2 (ja) プロセス間通信機能を有する装置
JP2003177931A (ja) 画像形成装置
JP2006139776A (ja) 情報処理装置
JP2023114678A (ja) サーバ装置、サーバ装置の制御方法、及びプログラム
JP4052902B2 (ja) 画像形成装置およびプロセス間通信方法
JP3478639B2 (ja) 複写システム
JP2005287042A (ja) 画像形成装置、画像形成方法および画像形成プログラム
JP2007305143A (ja) 情報処理装置および情報処理方法
JP3509815B2 (ja) 印刷システム及び画像形成装置及びジョブ管理方法
JP2006005963A (ja) 情報処理装置および情報処理方法
JP2009134584A (ja) 情報処理装置管理システム及び情報処理装置管理方法ならびに、プログラムおよび記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060425

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060626

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060802

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070105