JP3977039B2 - Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus - Google Patents

Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus Download PDF

Info

Publication number
JP3977039B2
JP3977039B2 JP2001257042A JP2001257042A JP3977039B2 JP 3977039 B2 JP3977039 B2 JP 3977039B2 JP 2001257042 A JP2001257042 A JP 2001257042A JP 2001257042 A JP2001257042 A JP 2001257042A JP 3977039 B2 JP3977039 B2 JP 3977039B2
Authority
JP
Japan
Prior art keywords
image information
information processing
program
function
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001257042A
Other languages
Japanese (ja)
Other versions
JP2003067187A (en
Inventor
滋也 千田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2001257042A priority Critical patent/JP3977039B2/en
Priority to US10/227,921 priority patent/US7318083B2/en
Priority to EP02019030A priority patent/EP1292109A1/en
Publication of JP2003067187A publication Critical patent/JP2003067187A/en
Application granted granted Critical
Publication of JP3977039B2 publication Critical patent/JP3977039B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Facsimile Transmission Control (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、プリンタ、コピーまたはファクシミリなどの複合サービスを行う画像情報処理装置で動作するサーバプロセスとクライアントプロセスの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成方法および画像情報処理装置用通信プログラム生成装置に関する。
【0002】
【従来の技術】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が一般的に知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する3種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【0003】
従来の複合機では、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア(汎用OSを含む)をそれぞれ別個に設ける構成となっており、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理をおこなうアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置を発明した。この画像形成装置によれば、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
【0004】
【発明が解決しようとする課題】
このような複合機では、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスを有する構成となっているため、機能変更、機能追加、または将来的なハードウェア資源の追加、変更などに柔軟に対応すべく、アプリケーションごとあるいはコントロールサービスごとの追加、変更を容易に行えることが望まれる。また、複合サービスを提供する際に、各アプリケーションと各コントロールサービス間、あるいは各コントロールサービス間でサービスやデータの授受を円滑に行うことが必要となってくる。
【0005】
すなわち、複合機は、プリンタ、コピー、ファクシミリ、スキャナなど多種の機能を備えたものであるが、その一部の機能に故障あるいは仕様変更などが生じた場合に、全てのアプリケーションまたは全てのコントロールサービスのモジュールを修正しなければならないと、作業の労力が過大となる。また、将来的に、複合機に新たな機能を追加する場合でも一部の機能の追加のために全てのコントロールサービスや全てのアプリケーションのモジュール変更が必要となると、プログラム開発の労力が過大となってしまう。このため、複合機上で動作する各アプリケーションやコントロールサービスのモジュールは互いにサービスやデータの送受信を実現としながらも、モジュール間の独立性を維持していることが必要となってくる。
【0006】
すなわち、アプリケーションや各コントロールサービスごとに独立性がないと、必要なアプリケーションや必要なコントロールサービスのみを提供することが困難となり、機能変更や機能追加などに柔軟に対応できるような複合機の構成に可変性を持たせることができないばかりか、多種多様な機能の実現が困難となるという問題がある。
【0007】
また、各アプリケーションや各コントロールサービスごとに独立性がないと、アプリケーションやコントロールサービスごとの設計および構築が困難になるという問題がある。すなわち、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスを有する構成の複合機では、その特徴的な構成を利用して、アプリケーションのプログラム開発を画像形成装置の製造元以外のサードベンダに委ねることも考えられるが、各モジュールに独立性がないと、ハードウェア資源との直接的なやりとりを行うコントロールサービスの内部動作をサードベンダが熟知していないと、アプリケーションの開発が困難となる。一方、画像形成装置の開発元としては、コントロールサービスの内部動作をサードベンダに開示することは営業秘密上好ましくない。
【0008】
この発明は上記に鑑みてなされたもので、画像情報処理装置で提供されるアプリケーションやコントロールサービスのプログラムに可変性および多様性を持たせることができ、かつアプリケーションとコントロールサービスとを別個独立に開発することが容易に行える画像情報処理装置用通信プログラム生成方法および画像情報処理装置用通信プログラム生成装置を得ることを目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するため、請求項1にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するクライアントプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するサーバプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成方法において、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力ステップと、前記メッセージファイルに基づいて、前記サーバプロセスになる前記プログラムに対する前記関数の呼び出しを記述したクライアントスタブを生成するコード生成ステップと、を含んだことを特徴とする。
【0010】
この請求項1にかかる発明によれば、クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力ステップと、前記メッセージファイルに基づいて、前記サーバプロセスになる前記プログラムに対する前記関数の呼び出しを記述したクライアントスタブを生成するコード生成ステップとを含んだことで、メッセージファイルに画像情報処理装置またはネットワーク上の他の画像情報処理装置で動作するサーバプロセスに対するサービスを要求する関数の宣言を記述すれば、関数呼び出しでサーバプロセスとのプロセス間通信を実現するクライアントスタブを、サーバプロセスとして実行させるサーバプログラムとは独立して容易に生成することができる。このため、画像情報処理装置に機能追加や機能変更がある場合でも、必要に応じてクライアントプロセスとして実行させるクライアントプログラムを生成されたクライアントスタブを利用して容易に作成することができ、可変性のある構成で、かつ多種多様な機能を実現できる画像情報処理装置を提供することができる。
【0011】
また、この請求項1にかかる発明によれば、メッセージファイルに関数宣言を行うだけで、クライアントスタブをサーバプログラムとは独立して生成できるので、サーバプログラムで提供される関数の機能を把握しておけば、サーバプログラムの内部的な動作を熟知していなくてもクライアントプログラムを容易に生成することができる。このため、画像情報処理装置で動作するクライアントプログラムの開発を、サーバプログラムの内部動作を隠蔽したままサードベンダに委ねることができる。
【0012】
さらに、この請求項1にかかる発明によれば、プロセス間通信を関数呼び出しで実現しているので、複合サービスに関するジョブの並列実行を、実行制御の切り替えにオーバヘッドの少ないスレッドにより実現した場合でも、スレッド間の同期は関数の戻り値で行うことができるため、別途ジョブ間の同期制御を行うプログラムを作成する必要がなく、簡易な実装で高速なプロセス間通信を実現することができる。
【0013】
ここで、「クライアントスタブ」とは、サーバプロセスとクライアントプロセス間のプロセス間通信のクライアントプロセス側のインタフェースをソースコードで記述したファイルである。このクライアントスタブをコンパイルしてスタブオブジェクトプログラムとし、このスタブオブジェクトプログラムをクライアントのメイン処理を記述したソースファイルとリンクすることにより、クライアントプロセスとして実行されるクライアントオブジェクトプログラムが生成される。
【0014】
また、「サーバプロセス」とは、他のプロセスからの要求により、要求されたサービスを提供するプロセスをいい、サービスを提供する限り、アプリケーションおよびコントロールサービスのいずれもサーバプロセスとして動作する。
【0015】
また、「クライアントプロセス」とは、このようなサーバプロセスからサービスの提供を受けるプロセスをいい、サービスの提供を受ける限り、アプリケーションおよびコントロールサービスのいずれもクライアントプロセスとして動作する。
【0016】
「関数」とは、サーバプロセスに対するサービスの処理要求やサーバプロセスによる所定の設定値の設定要求に対し、サーバプロセス側で要求された処理や設定を実行するものである。
【0017】
また、請求項1にかかる発明において生成されるクライアントスタブは、クライアントプロセスが動作する画像情報処理装置内で動作するサーバプロセスに対する関数呼び出しを記述したものの他、ネットワーク上の他の画像情報処理装置で動作するサーバプロセスに対する関数呼び出しを記述したものでも良い。
【0018】
また、請求項1にかかる発明によれば、メッセージファイルにプログラムに対するサービスを要求する関数の宣言を記述すれば、関数呼び出しでプログラムとのプロセス間通信を実現するクライアントスタブを、サーバプログラムとは独立して容易に生成することができる。このため、プログラムに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0019】
また、この請求項にかかる発明によれば、メッセージファイルにプログラムの提供するサービスの関数宣言を行うだけで、クライアントスタブをプログラムとは独立して生成できるので、ハードウェア資源に近い部分であるプログラムの内部的な動作を隠蔽したまま、アプリケーションなどのクライアントプログラムの開発をサードベンダなどに委ねることができる。
【0020】
また、請求項にかかる発明は、請求項に記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の宣言が記述されたメッセージファイルを入力し、前記コード生成ステップは、前記メッセージファイルに基づいて、前記エンジンコントロールサービスに対する前記ジョブ制御関数の呼び出しを記述したクライアントスタブを生成することを特徴とする。
【0021】
この請求項にかかる発明によれば、入力ステップがサーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の宣言が記述されたメッセージファイルを入力し、コード生成ステップがメッセージファイルに基づいてエンジンコントロールサービスに対するジョブ制御関数の呼び出しを記述したクライアントスタブを生成することで、メッセージファイルにジョブ制御関数の宣言を記述すれば、関数呼び出しでエンジンコントロールサービスとのプロセス間通信を実現するクライアントスタブを、サーバプログラムとは独立して容易に生成することができる。このため、エンジンコントロールサービスに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0022】
また、請求項にかかる発明は、請求項1または2に記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の宣言が記述されたメッセージファイルを入力し、前記コード生成ステップは、前記メッセージファイルに基づいて、前記メモリコントロールサービスに対する前記メモリ制御関数の呼び出しを記述したクライアントスタブを生成することを特徴とする。
【0023】
この請求項にかかる発明によれば、入力ステップがサーバプロセスになるとともにハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の宣言が記述されたメッセージファイルを入力し、コード生成ステップがメッセージファイルに基づいてメモリコントロールサービスに対するメモリ制御関数の呼び出しを記述したクライアントスタブを生成することで、メッセージファイルにメモリ制御関数の宣言を記述すれば、関数呼び出しでメモリコントロールサービスとのプロセス間通信を実現するクライアントスタブを、サーバプログラムとは独立して容易に生成することができる。このため、メモリコントロールサービスに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0024】
また、請求項にかかる発明は、請求項1〜3のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記ファックスコントロールサービスに対する前記ファックス通信制御関数の呼び出しを記述したクライアントスタブを生成することを特徴とする。
【0025】
この請求項にかかる発明によれば、入力ステップがサーバプロセスになるとともにハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の宣言が記述されたメッセージファイルを入力し、コード生成ステップがメッセージファイルに基づいてファックスコントロールサービスに対するファックス通信制御関数の呼び出しを記述したクライアントスタブを生成することで、メッセージファイルにファックス通信制御関数の宣言を記述すれば、関数呼び出しでファックスコントロールサービスとのプロセス間通信を実現するクライアントスタブを、サーバプログラムとは独立して容易に生成することができる。このため、ファックスコントロールサービスに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0026】
また、請求項5にかかる発明は、請求項1〜4のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップにより入力されたメッセージファイルの構文チェックを行う構文解析ステップをさらに含み、前記コード生成ステップは、前記構文解析ステップにより構文チェックされたメッセージファイルに基づいて、前記クライアントスタブを生成することを特徴とする。
【0027】
この請求項5にかかる発明によれば、入力ステップにより入力されたメッセージファイルの構文チェックを行う構文解析ステップをさらに含み、前記コード生成ステップは、前記構文解析ステップにより構文チェックされたメッセージファイルに基づいて、クライアントスタブを生成することで、構文誤りに起因するプロセス間通信の不達を避けることができる。
【0028】
また、請求項6にかかる発明は、請求項1〜5のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法において、前記クライアントスタブをコンパイルしてスタブオブジェクトを生成するスタブオブジェクト生成ステップと、前記クライアントプロセスの全体処理を記述したクライアントプログラムと、前記スタブオブジェクトとをリンクして、コンピュータで実行可能なクライアントオブジェクトプログラムを生成するクライアントオブジェクト生成ステップと、をさらに含んだことを特徴とする。
【0029】
この請求項6にかかる発明によれば、クライアントスタブをコンパイルしてスタブオブジェクトを生成するスタブオブジェクト生成ステップと、クライアントプロセスの全体処理を記述したクライアントプログラムと、スタブオブジェクトとをリンクして、コンピュータで実行可能なクライアントオブジェクトプログラムを生成するクライアントオブジェクト生成ステップとをさらに含んだことで、クライアントプログラムには関数呼び出しのみを記述すればほぼプログラムを完成させることができ、プログラム開発の労力をより低減することができる。
【0030】
また、請求項にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するサーバプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するクライアントプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成方法において、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力ステップと、前記メッセージファイルに基づいて、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから呼び出されて前記サーバプロセスとなる前記プログラムの前記関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラを登録したサーバスケルトンとを生成するコード生成ステップを含んだことを特徴とする。
【0031】
この請求項にかかる発明によれば、クライアントプロセスになるアプリケーションまたはプログラムからサーバプロセスになるプログラムに対して画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力ステップと、メッセージファイルに基づいて、クライアントプロセスになるアプリケーションまたはプログラムから呼び出されてサーバプロセスとなるプログラムの関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラを登録したサーバスケルトンとを生成するコード生成ステップを含んだことで、メッセージファイルに画像情報処理装置またはネットワーク上の他の画像情報処理装置で動作するクライアントプロセスに提供するサービスを定義した関数の宣言を記述すれば、クライアントプロセスからの関数呼び出しによるクライアントプロセスとのプロセス間通信を実現するサーバスケルトンを、クライアントプロセスとして実行させるクライアントプログラムとは独立して容易に生成することができる。そして、生成されたサーバスケルトンには関数宣言および引数受け渡しのみが記述され関数の実行処理は記述されないため、サーバプログラムの機能追加、機能変更その他必要に応じて関数の処理内容を自在に変更、追加したサーバスケルトンを利用してサーバプログラムを容易に作成することができ、これによって画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0032】
また、この請求項にかかる発明によれば、プロセス間通信をクライアントプロセスから呼び出される関数の実装とその戻り値により実現しているので、複合サービスに関するジョブの並列実行を、実行制御の切り替えにオーバヘッドの少ないスレッドにより実現した場合でも、スレッド間の同期は関数の戻り値で行うことができるため、別途ジョブ間の同期制御を行うプログラムを作成する必要がなく、簡易な実装で高速なプロセス間通信を実現することができる。
【0033】
ここで、「サーバスケルトン」とは、サーバプロセスとクライアントプロセス間のプロセス間通信のサーバプロセス側のインタフェースをソースコードで記述したファイルであり、関数の実行処理以外の宣言や引数受け渡しのみを記述したものである。このサーバスケルトンに関数の実行処理を記述した上でコンパイルしてスケルトンオブジェクトプログラムとし、このスケルトンオブジェクトプログラムをサーバのメイン処理を記述したソースファイルとリンクすることにより、サーバプロセスとして実行されるサーバオブジェクトプログラムが生成される。
【0034】
また、「関数ハンドラ」とは、クライアントプロセスからの関数呼び出しに対して引数の受け渡し、関数の実行処理、復帰処理などの一連の処理を実行するものである。
【0035】
また、請求項にかかる発明において生成されるサーバスケルトンは、サーバプロセスが動作する画像情報処理装置内で動作するクライアントプロセスから呼び出される関数の関数ハンドラを登録したものの他、ネットワーク上の他の画像情報処理装置で動作するクライアントプロセスから呼び出される関数の関数ハンドラを登録したものも含まれる。
【0036】
また、この請求項7にかかる発明によれば、メッセージファイルにクライアントプロセスに提供するサービスを定義したプログラムの関数の宣言を記述すれば、クライアントプロセスからの関数呼び出しによるクライアントプロセスとのプロセス間通信を実現するサーバスケルトンを、クライアントプログラムとは独立して容易に生成することができる。このため、プログラムを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0037】
また、請求項8にかかる発明は、請求項に記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記ジョブ制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録された前記エンジンコントロールサービスのサーバスケルトンを生成することを特徴とする。
【0038】
この請求項8にかかる発明によれば、入力ステップは、サーバプロセスになるとともにハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の宣言が記述されたメッセージファイルを入力し、コード生成ステップは、メッセージファイルに基づいて、ジョブ制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録されたエンジンコントロールサービスのサーバスケルトンを生成することで、メッセージファイルに提供するサービスを定義したジョブ制御関数の宣言を記述すれば、クライアントプロセスからのジョブ制御関数呼び出しによるクライアントプロセスとのプロセス間通信を実現するサーバスケルトンを、クライアントプログラムとは独立して容易に生成することができる。このため、エンジンコントロールサービスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0039】
また、請求項9にかかる発明は、請求項7または8に記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求のメモリ制御関数の宣言が記述されたメッセージファイルを入力し、前記コード生成ステップは、前記メッセージファイルに基づいて、前記メモリ制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録された前記メモリコントロールサービスのサーバスケルトンを生成することを特徴とする。
【0040】
この請求項9にかかる発明によれば、入力ステップは、サーバプロセスになるとともにハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求のメモリ制御関数の宣言が記述されたメッセージファイルを入力し、コード生成ステップは、メッセージファイルに基づいて、メモリ制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録されたメモリコントロールサービスのサーバスケルトンを生成することで、メッセージファイルに提供するサービスを定義したメモリ制御関数の宣言を記述すれば、クライアントプロセスからのメモリ制御関数呼び出しによるクライアントプロセスとのプロセス間通信を実現するサーバスケルトンを、クライアントプログラムとは独立して容易に生成することができる。このため、メモリコントロールサービスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0041】
また、請求項10にかかる発明は、請求項7〜9のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求のファックス制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記ファクス通信制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録された前記ファックスコントロールサービスのサーバスケルトンを生成することを特徴とする。
【0042】
この請求項10にかかる発明によれば、入力ステップは、サーバプロセスになるとともにハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求のファックス制御関数の宣言が記述されたメッセージファイルを入力し、コード生成ステップは、メッセージファイルに基づいて、ファクス通信制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録されたファックスコントロールサービスのサーバスケルトンを生成することで、メッセージファイルに提供するサービスを定義したファックス通信制御関数の宣言を記述すれば、クライアントプロセスからのファックス通信制御関数呼び出しによるクライアントプロセスとのプロセス間通信を実現するサーバスケルトンを、クライアントプログラムとは独立して容易に生成することができる。このため、ファックスコントロールサービスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができる。
【0043】
また、請求項11にかかる発明は、7〜10のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップにより入力されたメッセージファイルの構文チェックを行う構文解析ステップをさらに含み、前記コード生成ステップは、前記構文解析ステップにより構文チェックされたメッセージファイルに基づいて、前記サーバスケルトンを生成することを特徴とする。
【0044】
この請求項11にかかる発明によれば、入力ステップにより入力されたメッセージファイルの構文チェックを行う構文解析ステップをさらに含み、前記コード生成ステップは、前記構文解析ステップにより構文チェックされたメッセージファイルに基づいて、前記サーバスケルトンを生成することで、構文誤りに起因するプロセス間通信の不達を避けることができる。
【0045】
また、請求項12にかかる発明は、請求項1〜11のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法において、前記コード生成ステップは、前記サーバプロセスまたは前記クライアントプロセスにおける共通の宣言または共通の処理を記述したソースコードを含むヘッダファイルをさらに生成することを特徴とする。
【0046】
この請求項12にかかる発明によれば、コード生成ステップがサーバプロセスまたは前記クライアントプロセスにおける共通の宣言または共通の処理を記述したソースコードを含むヘッダファイルをさらに生成することで、サーバプログラムまたはクライアントプログラムを生成するときにヘッダをインクルードすることにより、プログラム開発の処理効率を向上させることができる。
【0047】
また、請求項13にかかる発明は、請求項12に記載の画像情報処理装置用通信プログラム生成方法において、前記入力ステップは、前記サーバプロセスまたは前記クライアントプロセスに対して送信するメッセージに関する情報であるメッセージ定義がさらに記述されたメッセージファイルを入力し、前記コード生成ステップは、前記メッセージ定義を登録したヘッダファイルを生成することを特徴とする。
【0048】
この請求項13にかかる発明によれば、入力ステップは、サーバプロセスまたはクライアントプロセスに対して送信するメッセージに関する情報であるメッセージ定義がさらに記述されたメッセージファイルを入力し、コード生成ステップは、メッセージ定義を登録したヘッダファイルを生成することで、プロセス間通信を関数だけでなく、通常使用されるメッセージの送受信によっても実現することができ、メッセージによる多種多様な機能の実現が可能となる。
【0049】
また、請求項14にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するクライアントプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するサーバプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成装置において、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力手段と、前記メッセージファイルに基づいて、前記サーバプロセスになる前記プログラムに対する前記関数の呼び出しを記述したクライアントスタブを生成するコード生成手段と、を備えたことを特徴とする。
【0050】
また、請求項15にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するサーバプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するクライアントプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成装置において、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力手段と、前記メッセージファイルに基づいて、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから呼び出されて前記サーバプロセスとなる前記プログラムの前記関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラを登録したサーバスケルトンとを生成するコード生成手段と、を備えたことを特徴とする。
【0051】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる、画像情報処理装置用通信プログラム生成方法および画像情報処理装置用通信プログラム生成装置の好適な実施の形態を詳細に説明する。
【0052】
(実施の形態1)
図1は、この発明の実施の形態1である画像情報処理装置用通信プログラム生成装置(以下、「スタブジェネレータ」という。)の機能的構成を示すブロック図である。実施の形態1のスタブジェネレータは、メッセージファイルからヘッダと、クライアントスタブと、サーバスケルトンを自動生成するものである。
【0053】
図1に示すように、メッセージファイル104を入力する入力部101と、メッセージファイル104に記述された内容の構文チェックを行う構文解析部102と、メッセージファイル104の記述内容から、ヘッダ106とクライアントスタブ107と、サーバスケルトン105とを生成してハードディスク等の記憶媒体に格納するコード生成部103とを備えている。
【0054】
まず、実施の形態1のスタブジェネレータに入力されるメッセージファイル104と、スタブジェネレータで生成されるヘッダ106、クライアントスタブ107およびサーバスケルトン105について説明する。メッセージファイル104は、プロセス間通信の通信内容をC言語などのソースコードで記述したソースファイルである。
【0055】
図3は、メッセージファイル104の記述例を示す説明図である。図3に示すように、メッセージファイル104には、別のメッセージファイルや、C言語記述のインクルードヘッダを宣言するインクルード宣言と、サーバプロセスとクライアントプロセスの間で送受信するメッセージを記述したメッセージ記述と、クライアントプロセスからサーバプロセスに対して発行する関数の宣言などが記述されている。
【0056】
メッセージは、主としてサーバプロセスとクライアントプロセスとの間でイベントや通知を行う際に発行するものであり、メッセージファイル104のメッセージ記述としては、メッセージ名と、メッセージIDと、メッセージ方向、メッセージ内容を記述するようになっている。
【0057】
ここで、メッセージ方向には、「IN」、「OUT」、「SELF」があり、「IN」はクライアントプロセスからサーバプロセスに対して送信するメッセージを意味し、「OUT」はサーバプロセスからクライアントプロセスに対して送信するメッセージを意味する。また、「SELF」は、自分自身のプロセスに対して送信するメッセージを意味する。
【0058】
関数は、クライアントプロセスからサーバプロセスに処理要求や設定要求を行う際に発行するものである。メッセージファイル104の関数宣言には、関数名と、関数の型と、引数のみを記述し、関数の処理内容は記述しないようになっている。
【0059】
クライアントスタブ107は、クライアントプログラムから呼び出される関数のサーバプロセスに対する発行を記述したソースファイルである。クライアントスタブ107をコンパイルしてライブラリ化し、クライアントプログラムとリンクすることにより、クライアントプログラムからの関数コールがクライアントスタブ107を介してサーバプロセスへ発行されるようになっている。
【0060】
図4はスタブジェネレータにより生成されるクライアントスタブ107の一例を示す説明図である。図4に示すように、クライアントスタブ107には、後述するサーバスケルトン105に登録された関数ハンドラを呼び出すことにより、関数コールが行われるようになっている。
【0061】
サーバスケルトン105は、クライアントスタブ107から呼び出された関数ハンドラとメッセージハンドラを登録したソースファイルである。
【0062】
図5はスタブジェネレータにより生成されるサーバスケルトン105の一例を示す説明図である。図5に示すように、サーバスケルトン105には、クライアントスタブ107に記述された関数に対応した関数ハンドラが登録されているが、関数ハンドラでは、引数の受け渡し部のみが記述され、処理内容を記述する実装記述部は空欄の状態で生成されている。この実装記述部には、クライアントプログラムからクライアントスタブ107を介して発行される関数の処理内容を、サーバプログラムの開発者が自在に記述できるようになっている。
【0063】
ヘッダ106は、サーバスケルトン105とクライアントスタブ107で共通の定義、宣言などを記述したソースファイルである。図6はスタブジェネレータにより生成されるヘッダ106の一例を示す説明図である。図6に示すように、ヘッダ106には、メッセージファイル104に記述されたインクルード宣言、メッセージID、メッセージの構造体などのメッセージ宣言、関数宣言および関数ハンドラ宣言などが記述された状態で生成されるようになっている。
【0064】
次に、実施の形態1のスタブジェネレータによるサーバスケルトン105、クライアントスタブ107およびヘッダ106の生成処理について説明する。図2は、サーバスケルトン105、クライアントスタブ107およびヘッダ106の生成処理のフローチャートである。
【0065】
スタブジェネレータの構文解析部102は、メッセージファイル104に記述された関数宣言、メッセージ定義、インクルード宣言、C言語記述の文法チェックを行い(ステップS201)、さらにメッセージファイル104に定義されている関数名およびメッセージ定義の中のメッセージID、メッセージ名の一意性の判断を行う(ステップS202)。
【0066】
そして、関数宣言、メッセージ定義、インクルード宣言の記述に文法エラーがあった場合、あるいは関数名、メッセージID、メッセージ名のいずれかが重複している場合には、ユーザに構文エラーである旨のメッセージを通知し処理を終了する(ステップS203、S204)。
【0067】
構文解析後、コード生成部103は、メッセージファイル104の記述内容から、ヘッダ106と、サーバスケルトン105と、クライアントスタブ107を生成する。具体的には、メッセージファイル104のインクルード宣言とC言語記述とをヘッダ106にそのまま転記し、メッセージファイル104のメッセージ定義に記述されているメッセージ構造体をヘッダ106にコピーする(ステップS205)。
【0068】
また、コード生成部103は、メッセージファイル104の関数宣言から関数ハンドラ名を自動生成し(たとえば、関数名abcの場合、関数ハンドラ名をabc_handlerとして生成する)、生成された関数ハンドラ名をサーバスケルトン内に登録する。そして、関数ハンドラの処理内に、引数受け渡しの記述を行うとともに、戻り値領域の生成システムコールの発行を記述する。そして、関数ハンドラの実際の処理内容を記述する実装記述部の欄を空欄とし、その実装記述部の後に、戻り値送信と戻り値領域解放の各システムコールの発行を記述する(ステップS206)。
【0069】
また、コード生成部103は、メッセージファイル104に記述された関数宣言ごとに、関数名と引数の記述をクライアントスタブ107に登録し、その関数の処理内に、関数コールメッセージ生成コールと関数ハンドラの呼び出しと戻り値解放の各システムコールを記述する(ステップS207)。なお、関数ハンドラ呼び出しには、発行した関数の戻り値の待ち受ける関数戻り値待ちシステムコールが内部的に発行されるようになっている。
【0070】
このようにタブジェネレータにより、クライアントスタブ107とサーバスケルトン105とヘッダ106を生成したら、次にサーバオブジェクトおよびクライアントオブジェクトを完成させる。サーバプログラムの開発者は、サーバスケルトン105の関数ハンドラの実装記述部(空欄)に、関数ハンドラで行うべき処理内容をエディタなどを利用して記述し、サーバスケルトン105をヘッダ106とともにコンパイルしてサーバスタブオブジェクトを生成する。
【0071】
また、サーバスケルトン105に登録した関数ハンドラを宣言するとともに、クライアントプロセスとの間でメッセージファイル104に記述されたメッセージの送受信を行うメッセージハンドラ、エラー処理を行うエラーハンドラ、サーバの初期化、サーバディスパッチャ起動等のシステムコールの発行を記述したサーバソースファイルを作成してコンパイルし、サーバスタブオブジェクトとリンクして、サーバプログラムを完成させる。
【0072】
一方、クライアントスタブ107はヘッダ106とともにコンパイルしてクライアントスタブオブジェクトを生成する。サーバプロセスごとにクライアントスタブオブジェクトを生成し、生成した複数のクライアントスタブオブジェクトをライブラリとする。
【0073】
また、関数の発行、関数ハンドラの宣言、エラー処理を行うエラーハンドラの宣言、クライアントプロセスとの間でメッセージファイル104に記述されたメッセージの送受信を行うメッセージハンドラ、およびクライアントプロセスの初期化やクライアントディスパッチャ起動等のシステムコールの発行を記述したクライアントプログラムを作成してコンパイルし、スタブのライブラリとリンクすることによりクライアントプログラムを完成させる。
【0074】
図7は、クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。なお、サーバプログラムとクライアントプログラムは実際は実行可能形式のオブジェクトファイルであるが、図7では、説明の都合上いずれもソースコードで表示している。
【0075】
クライアントプログラムからサーバプログラムに対して、たとえばOpen関数をコールすると、クライアントスタブオブジェクトで定義されたOpenが呼び出される(ステップS701)。そして、このスタブのOpenの処理の中で、Openの関数ハンドラOpen_handlerがサーバプログラムに対してコールされる(ステップS702)。
【0076】
サーバプログラムでは、クライアントスタブオブジェクトから関数ハンドラOpen_handlerの発行を受け取って、サーバスタブオブジェクトに登録されているOpen_handlerの実装記述部に記述されている処理を実行し(ステップS703)、その実行結果をクライアントスタブへ戻り値として返す(ステップS704)。クライアントプログラムでは、この戻り値をクライアントスタブから受け取って(ステップS705)、次の処理へ移行する。
【0077】
このように実施の形態1のスタブジェネレータでは、メッセージファイル104に関数宣言を記述することによりクライアントスタブ107とサーバスケルトン105を容易に生成することができる。しかも生成されるサーバスケルトン105の実装記述部は空欄となっているので、プログラム開発者は必要に応じて関数の処理内容を容易に変更するができる。このため複合機に可変性をもたせることができるとともに、多種多様な機能を実現させることができる。さらに、クライアントプログラムの開発を、サードベンダーなどの他社が行う場合でも、クライアントプログラムには提供される関数コールを記述するだけでプロセス間通信が可能となるので、内部の通信プロトコルの隠蔽性を保つことが可能となる。
【0078】
また、実施の形態1のスタブジェネレータでは、プロセス間通信を関数コールで実現しているので、ジョブの並列実行をスレッドで実現した場合でも、高速なプロセス間通信が可能となる。また、関数からの戻り値によってスレッド間の同期をとることができるので、同期のための処理プログラムを別途作成する必要がなくなり、プログラム開発の労力を低減することができる。
【0079】
(実施の形態2)
実施の形態1のスタブジェネレータは、複合機で動作するプロセスやスレッドを特に限定しないものであったが、この実施の形態2のスタブジェネレータは、複合機で動作するコントロールサービスをサーバプロセスとした場合のサーバスケルトン、クライアントスタブおよびヘッダの生成を行うものである。
【0080】
実施の形態2のスタブジェネレータの構成は、図1に示す実施の形態1のスタブジェネレータの構成と同様であり、またスタブジェネレータによるクライアントスタブ、サーバスケルトンおよびヘッダの生成処理も図2に示す実施の形態1のスタブジェネレータによる処理手順と同様であるので説明を省略する。
【0081】
ここで、図8は、実施の形態2のスタブジェネレータで生成したサーバプロセス、クライアントプロセスが動作する複合機のソフトウェア構成を示すブロック図である。図8に示すように、複合機は、白黒ラインプリンタ(B&W LP)801と、カラーラインプリンタ(Color LP)802と、その他ハードウェアリソース803などを有するとともに、ソフトウェア群810はプラットホーム820およびアプリケーション830からなる。
【0082】
プラットホーム820は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)823と、UNIXなどの汎用OS821とを有する。
【0083】
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)822と、ECS(エンジンコントロールサービス)824と、MCS(メモリコントロールサービス)825と、OCS(オペレーションパネルコントロールサービス)826と、FCS(ファックスコントロールサービス)827と、NCS(ネットワークコントロールサービス)828とから構成される。
【0084】
SCS822はアプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御を行うものであり、ECS824は、白黒ラインプリンタ(B&W LP)801、カラーラインプリンタ(Color LP)802、その他ハードウェアリソース803などのエンジンを制御するものである。
【0085】
MCS825は、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行うものである。OCS826は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールである。
【0086】
FCS827は、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供するものである。
【0087】
NCS828は、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行うものである。
【0088】
アプリケーション830は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ811と、コピー用アプリケーションであるコピーアプリ812と、ファクシミリ用アプリケーションであるファックスアプリ813と、スキャナ用アプリケーションであるスキャナアプリ814と、ネットワークファイル用アプリケーションであるネットファイルアプリ815と、工程検査用アプリケーションである工程検査用アプリ816とを有している。
【0089】
これらの各コントロールサービスと各アプリとは、RPC(Remote ProcessorCall)を利用したプロセス間通信によって相互に各種データを送受信している。実施の形態2のスタブジェネレータは、このようなプロセス間通信を関数コールで実現するためのクライアントスタブおよびサーバスケルトンを生成するものである。
【0090】
次に、ECS824をサーバプロセスとして、ECS824の機能を利用する場合のサーバスケルトンおよびクライアントスタブを生成する処理について説明する。
【0091】
図9は、サーバプロセスとしてECS824の機能を利用する場合のメッセージファイルの一例を示す説明図である。図9に示すように、メッセージファイルには、ジョブハンドル、ジョブ実行可否通知、ジョブエンド通知等のメッセージ定義を行うとともに、関数宣言として、ジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求等の関数宣言を行う。
【0092】
そして、実施の形態1と同様に、このメッセージファイルをスタブジェネレータに入力して実行すると、図10に示すクライアントスタブとサーバスケルトンが生成され、図11に示すヘッダが生成される。図10に示すように、サーバスケルトンには、ジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求に対する関数ハンドラが実装記述部を空欄の状態で記述され、クライアントスタブには、これらの関数ハンドラコールが記述される。また、図11に示すように、ヘッダにはジョブハンドル、ジョブ実行可否通知、ジョブエンド通知等のメッセージが登録される。
【0093】
そして、このように生成されたクライアントスタブとサーバスケルトンとヘッダから、実施の形態1と同様にクライアントプログラムとサーバプログラムを生成する。たとえば、クライアントプログラムとしてコピーアプリ812を利用する場合には、コピーアプリ812のソースファイルにジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求等の関数コールを記述してコンパイルおよびクライアントスタブオブジェクトとのリンクを行ってコピーアプリ812を生成する。
【0094】
これにより、コピーアプリ812からECS824に対して、コピー動作のジョブに関するジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求を関数コールとしたコピーアプリ812とECS824との間のプロセス間通信を実現することができる。また、ECS824からコピーアプリ812に対してジョブ実行可否通知、ジョブエンド通知等のメッセージによるプロセス間通信が可能となる。
【0095】
また、コントロールサービス間のプロセス間通信としては、たとえばFCS827のソースファイルにジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求等の関数コールを記述して、同様にコンパイルおよびクライアントスタブオブジェクトとのリンクを行ってFCS827を生成すると、ファクシミリ動作に関するジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求を関数コールとしたFCS827とECS824との間のプロセス間通信を実現することができる。
【0096】
次に、FCS827をサーバプロセスとして、FCS827の機能を利用する場合のサーバスケルトンおよびクライアントスタブを生成する処理について説明する。この場合にも、ECS824をサーバプロセスとする場合と同様にメッセージファイルに関数宣言とメッセージ定義を行う。FCS824をサーバプロセスとする場合には、送信スタート、送信モード変更等の関数宣言を行うとともに、スキャンパラメータ通知等のメッセージ定義を行う。
【0097】
そして、実施の形態1と同様に、このメッセージファイルをスタブジェネレータに入力して実行すると、クライアントスタブとサーバスケルトンとヘッダとが生成される。ECS824をサーバプロセスとした場合と同様に、サーバスケルトンには、関数宣言を行った送信スタート、送信モード変更に対する関数ハンドラが実装記述部を空欄の状態で記述され、クライアントスタブには、これらの関数ハンドラコールが記述される。また、ヘッダにはメッセージ定義を行ったスキャンパラメータ通知等のメッセージが登録される。
【0098】
そして、このように生成されたクライアントスタブとサーバスケルトンとヘッダから、実施の形態1と同様にクライアントプログラムとサーバプログラムを生成する。たとえば、クライアントプログラムをECS824とした場合のプロセス間通信としては、ECS824のソースファイルに送信スタート、送信モード変更等の関数コールを記述して、同様にコンパイルおよびクライアントスタブオブジェクトとのリンクを行ってECS824を生成すると、ファクシミリ動作に関する送信スタート、送信モード変更を関数コールとしたECS824とFCS827との間のプロセス間通信を実現することができる。また、FCS827からECS824に対してスキャンパラメータ通知等のメッセージによるプロセス間通信が可能となる。
【0099】
次に、MCS825をサーバプロセスとして、MCS825の機能を利用する場合のサーバスケルトンおよびクライアントスタブを生成する処理について説明する。この場合にも、ECS824をサーバプロセスとする場合と同様にメッセージファイルに関数宣言とメッセージ定義を行う。
【0100】
MCS825をサーバプロセスとする場合には、メッセージファイルにメモリ画像情報要求、ファイル生成要求、ページ生成要求、ページ情報登録、ページオープン要求、ページクローズ要求、ページ情報要求、ページ削除要求、ファイル情報登録、ファイルクローズ要求、ファイルオープン要求、ファイル削除要求、ワークエリア獲得要求、ワークエリア削除要求、分割読み出し要求等の関数宣言を行うとともに、ジョブエンド通知等のメッセージ定義を行う。
【0101】
そして、実施の形態1と同様に、このメッセージファイルをスタブジェネレータに入力して実行すると、クライアントスタブとサーバスケルトンとヘッダとが生成される。ECS824をサーバプロセスとした場合と同様に、サーバスケルトンには、関数宣言を行ったメモリ画像情報要求、ファイル生成要求、ページ生成要求、ページ情報登録、ページオープン要求、ページクローズ要求、ページ情報要求、ページ削除要求、ファイル情報登録、ファイルクローズ要求、ファイルオープン要求、ファイル削除要求、ワークエリア獲得要求、ワークエリア削除要求、分割読み出し要求に対する関数ハンドラが実装記述部を空欄の状態で記述され、クライアントスタブには、これらの関数ハンドラコールが記述される。また、ヘッダには、メッセージ定義を行ったジョブエンド通知等のメッセージが登録される。
【0102】
そして、このように生成されたクライアントスタブとサーバスケルトンとヘッダから、実施の形態1と同様にクライアントプログラムとサーバプログラムを生成する。たとえば、クライアントプログラムをECS824とした場合のプロセス間通信としては、ECS824のソースファイルにメモリ画像情報要求等の関数コールを記述して、ECS824を生成すると、プリンタ動作におけるメモリ確保のためメモリ画像情報要求を関数コールとしたECS824とMCS825との間のプロセス間通信を実現することができる。
【0103】
また、クライアントプログラムをスキャナアプリ814とした場合のプロセス間通信としては、たとえばスキャナアプリ814のソースファイルにファイル生成要求、ページ情報登録、ページオープン要求、ページクローズ要求、ページ情報要求、ページ削除要求、ファイル情報登録、ファイルクローズ要求、ファイルオープン要求、ファイル削除要求、ワークエリア獲得要求、ワークエリア削除要求、分割読み出し要求等の関数コールを記述して、スキャナアプリ814を生成すると、スキャナ動作における各要求を関数コールとしたスキャナアプリ814とMCS825との間のプロセス間通信を実現することができる。
【0104】
さらに、クライアントプログラムをECS824とした場合のプロセス間通信としては、たとえばECS824のソースファイルにページ生成要求、ページ情報登録、ページクローズ要求、ページ情報要求等の関数コールを記述して、ECS824を生成すると、複数ページのスキャナ動作における各要求を関数コールとしたECS824とMCS825との間のプロセス間通信を実現することができる。
【0105】
このように実施の形態2のスタブジェネレータでは、メッセージファイルに関数宣言を記述することにより、アプリケーションなどのクライアントスタブ107とコントロールサービスなどのサーバスケルトン105を容易に生成することができる。また、スタブジェネレータで生成されるサーバスケルトンの実装記述部は空欄となっているので、プログラム開発者は必要に応じて関数の処理内容を容易に変更することができ、システムに可変性を持たせることができる。さらに、アプリケーションプログラムの開発を、サードベンダーなどの他社が行う場合でも、アプリケーションプログラムには提供される関数コールを記述するだけでプロセス間通信が可能となるので、内部の通信プロトコルの隠蔽性を保つことができる。
【0106】
また、実施の形態2のスタブジェネレータでは、コントロールサービス間またはコントロールサービスとアプリケーション間のプロセス間通信を関数コールで実現することができ、ジョブの並列実行をプロセス内の複数のスレッドを起動させることにより実現した場合でも、高速なプロセス間通信が可能となる。
【0107】
さらに、実施の形態2のスタブジェネレータでは、関数からの戻り値によってスレッド間の同期をとることができるので、同期処理を別途設ける必要がなくなり、プログラム開発の労力を低減することができる。
【0108】
【発明の効果】
以上説明したように、請求項1にかかる発明によれば、画像情報処理装置に機能追加や機能変更がある場合でも、必要に応じてクライアントプロセスとして実行させるクライアントプログラムを生成されたクライアントスタブを利用して容易に作成することができ、可変性のある構成で、かつ多種多様な機能を実現できる画像情報処理装置を提供することができるという効果を奏する。
【0109】
また、この請求項1にかかる発明によれば、サーバプログラムの内部的な動作を熟知していなくてもクライアントプログラムを容易に生成することができるため、画像情報処理装置で動作するクライアントプログラムの開発を、サーバプログラムの内部動作を隠蔽したままサードベンダに委ねることができるという効果を奏する。さらに、この請求項1にかかる発明によれば、簡易な実装で高速なプロセス間通信を実現することができるという効果を奏する。
【0110】
また、請求項にかかる発明によれば、プログラムに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0111】
また、この請求項にかかる発明によれば、ハードウェア資源に近い部分であるコントロールサービスの内部的な動作を隠蔽したまま、アプリケーションなどのクライアントプログラムの開発をサードベンダなどに委ねることができるという効果を奏する。
【0112】
また、請求項にかかる発明によれば、エンジンコントロールサービスに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0113】
また、請求項にかかる発明によれば、メモリコントロールサービスに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0114】
また、請求項にかかる発明によれば、ファックスコントロールサービスに対するクライアントプロセスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
また、請求項にかかる発明によれば、構文誤りに起因するプロセス間通信の不達を避けることができるという効果を奏する。
また、請求項6にかかる発明によれば、クライアントプログラムには関数呼び出しのみを記述すればほぼプログラムを完成させることができ、プログラム開発の労力をより低減することができるという効果を奏する。
【0115】
また、請求項にかかる発明によれば、サーバプログラムの機能追加、機能変更その他必要に応じて関数の処理内容を自在に変更、追加したサーバスケルトンを利用してサーバプログラムを容易に作成することができ、画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。また、この請求項6にかかる発明によれば、簡易な実装で高速なプロセス間通信を実現することができるという効果を奏する。
【0116】
また、請求項7にかかる発明によれば、プログラムを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0117】
また、請求項8にかかる発明によれば、エンジンコントロールサービスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0118】
また、請求項9にかかる発明によれば、メモリコントロールサービスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0119】
また、請求項10にかかる発明によれば、ファックスコントロールサービスを有する画像情報処理装置の構成に可変性を持たせるとともに、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。
【0120】
また、請求項11にかかる発明によれば、構文誤りに起因するプロセス間通信の不達を避けることができるという効果を奏する。
【0121】
また、請求項12にかかる発明によれば、サーバプログラムまたはクライアントプログラムを生成するときにヘッダをインクルードすることにより、プログラム開発の処理効率を向上させることができるという効果を奏する。
【0122】
また、請求項13にかかる発明によれば、プロセス間通信を関数だけでなく、通常使用されるメッセージの送受信によっても実現することができ、メッセージによる多種多様な機能を実現できるという効果を奏する。
【0123】
また、請求項14にかかる発明によれば、請求項1にかかる発明と同様の効果を奏する。
【0124】
また、請求項15にかかる発明によれば、請求項7にかかる発明と同様の効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のスタブジェネレータの機能的構成を示すブロック図である。
【図2】 実施の形態1のスタブジェネレータにおけるサーバスケルトン、クライアントスタブおよびヘッダの生成処理のフローチャートである。
【図3】 実施の形態1のスタブジェネレータに入力するメッセージファイルの記述例を示す説明図である。
【図4】 実施の形態1のスタブジェネレータにより生成されるクライアントスタブの一例を示す説明図である。
【図5】 実施の形態1のスタブジェネレータにより生成されるサーバスケルトンの一例を示す説明図である。
【図6】 実施の形態1のスタブジェネレータにより生成されるヘッダの一例を示す説明図である。
【図7】 実施の形態1において、クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。
【図8】 実施の形態2のスタブジェネレータで生成したサーバプロセス、クライアントプロセスが動作する複合機のソフトウェア構成を示すブロック図である。
【図9】 実施の形態2において、サーバプロセスとしてECSの機能を利用する場合のメッセージファイルの一例を示す説明図である。
【図10】 実施の形態2のスタブジェネレータで生成されたクライアントスタブとサーバスケルトンとヘッダの一例を示す説明図である。
【図11】 実施の形態2のスタブジェネレータで生成されたヘッダの一例を示す説明図である。
【符号の説明】
101 入力部
102 構文解析部
103 コード生成部
104 メッセージファイル
105 サーバスケルトン
106 ヘッダ
107 クライアントスタブ
800 複合機
801 白黒ラインプリンタ
802 カラーラインプリンタ
803 ハードウェアリソース
810 ソフトウェア群
811 プリンタアプリ
812 コピーアプリ
813 ファックスアプリ
814 スキャナアプリ
815 ネットファイルアプリ
816 工程検査用アプリ
820 プラットホーム
821 汎用OS
822 SCS
823 SRM
824 ECS
825 MCS
826 OCS
827 FCS
828 NCS
830 アプリケーション
827 FCS
[0001]
BACKGROUND OF THE INVENTION
  The present invention provides a communication program generation for an image information processing apparatus that generates an inter-process communication program that handles inter-process communication between a server process and a client process that operate in an image information processing apparatus that performs a composite service such as a printer, copy, or facsimile MethodAnd communication program generation apparatus for image information processing apparatusAbout.
[0002]
[Prior art]
  2. Description of the Related Art In recent years, an image forming apparatus (hereinafter, referred to as “multifunction machine”) in which functions of apparatuses such as a printer, a copy machine, a facsimile machine, and a scanner are housed in a single housing is generally known. This multifunction device is provided with a display unit, a printing unit, an imaging unit, and the like in one casing, and is provided with three types of software respectively corresponding to a printer, a copying machine, and a facsimile machine. It operates as a copy, scanner or facsimile machine.
[0003]
  A conventional multi-function machine has a configuration in which software (including a general-purpose OS) corresponding to a printer, a copy, a scanner, and a facsimile machine is provided separately, and development of each software requires a lot of time. For this reason, the applicant has an application that has hardware resources used in image forming processing such as a display unit, a printing unit, and an imaging unit, and performs processing specific to each user service such as a printer, copy, or facsimile. When a user service is provided by interposing between these applications and hardware resources, hardware resource management, execution control, and image formation processing that are commonly required by at least two of the applications are provided. Invented an image forming apparatus having a platform comprising various control services. According to this image forming apparatus, it is possible to improve the efficiency of software development by including a platform that performs management, execution control, and image forming processing of hardware resources commonly required by at least two applications. In addition, the productivity of the entire apparatus can be improved.
[0004]
[Problems to be solved by the invention]
  Such a multi-function peripheral has a control service that provides services that are commonly required by at least two of the applications. Therefore, it is possible to change functions, add functions, or add or change hardware resources in the future. It is desirable to be able to easily add or change for each application or control service in order to respond flexibly to the above. Further, when providing a composite service, it is necessary to smoothly exchange services and data between each application and each control service or between each control service.
[0005]
  In other words, a multifunction device has a variety of functions such as printers, copiers, facsimiles, scanners, etc., but if some of the functions fail or specification changes occur, all applications or all control services If this module has to be corrected, the work effort will be excessive. Also, even if new functions are added to the MFP in the future, if it is necessary to change all control services and all application modules to add some functions, the program development effort will be excessive. End up. For this reason, it is necessary for each application and control service module operating on the multifunction peripheral to maintain the independence between the modules while realizing the transmission and reception of services and data with each other.
[0006]
  In other words, if there is no independence for each application and each control service, it will be difficult to provide only the necessary applications and necessary control services, and the configuration of the MFP will be able to flexibly respond to function changes and additions. There is a problem that not only cannot variability be provided, but it is difficult to realize various functions.
[0007]
  Further, if there is no independence for each application or each control service, there is a problem that it becomes difficult to design and construct each application or control service. That is, in a multi-function peripheral having a control service that provides a service that is commonly required by at least two applications, application program development is performed by a third party other than the manufacturer of the image forming apparatus by using the characteristic configuration. Although it may be left to the vendor, if each module is not independent, it will be difficult to develop an application if the third vendor is not familiar with the internal operation of the control service that directly interacts with hardware resources. Become. On the other hand, as a developer of an image forming apparatus, it is not preferable in terms of trade secret to disclose the internal operation of the control service to a third vendor.
[0008]
  The present invention has been made in view of the above, and can provide variability and diversity to the application and control service program provided by the image information processing apparatus, and develop the application and the control service independently. Communication program generation method for image information processing apparatus that can be easily performedAnd communication program generation apparatus for image information processing apparatusThe purpose is to obtain.
[0009]
[Means for Solving the Problems]
  In order to achieve the above object, the invention according to claim 1It is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. A client process that operates in an image information processing apparatus including a program for performing control, and the image information processing apparatusOr other connected to the networkImage information processing apparatusAn inter-process communication program that handles inter-process communication with server processes running on WindowsImage information processing deviceCommunication program generation methodThe application or program that becomes the client processFromBecome the server processFor the programThe image information processingAn input step for inputting a message file describing a declaration of a function to be called as a processing request or a setting request, and the server process based on the message fileSaid program to becomeAgainstSaidAnd a code generation step for generating a client stub describing a function call.
[0010]
  According to the invention of claim 1,The application or the program that becomes a client processFromBecome the server processFor the programThe image information processingAn input step for inputting a message file describing a declaration of a function to be called as a processing request or a setting request, and the server process based on the message fileSaid program to becomeAgainstSaidIncluding a code generation step that generates a client stub that describes the function call.Image information processing deviceOr other on the networkImage information processing deviceIf you declare a function that requests a service for a server process that runs on, you can easily generate a client stub that implements interprocess communication with the server process by function call, independent of the server program that runs as the server process can do. For this reason,Image information processing deviceEven if there is a function addition or function change, a client program that can be executed as a client process can be easily created using the generated client stub as needed, with a variable configuration and a wide variety Functions can be realizedImage information processing deviceCan be provided.
[0011]
  According to the first aspect of the present invention, the client stub can be generated independently of the server program simply by declaring the function in the message file. Therefore, the function of the function provided by the server program can be grasped. In this case, the client program can be easily generated even if the internal operation of the server program is not well known. For this reason,Image information processing deviceThe development of the client program that runs on the server can be left to the third vendor while hiding the internal operation of the server program.
[0012]
  Furthermore, according to the invention of claim 1, since inter-process communication is realized by function calls, even when parallel execution of jobs related to composite services is realized by a thread with low overhead for switching execution control, Since synchronization between threads can be performed with the return value of a function, it is not necessary to create a separate program for controlling synchronization between jobs, and high-speed interprocess communication can be realized with simple implementation.
[0013]
  Here, the “client stub” is a file in which the interface on the client process side of inter-process communication between the server process and the client process is described in source code. By compiling this client stub into a stub object program and linking this stub object program with a source file describing the main processing of the client, a client object program to be executed as a client process is generated.
[0014]
  The “server process” refers to a process that provides a requested service in response to a request from another process. As long as the service is provided, both the application and the control service operate as a server process.
[0015]
  A “client process” refers to a process that receives a service from such a server process. As long as the service is received, both the application and the control service operate as a client process.
[0016]
  The “function” is to execute processing and setting requested by the server process in response to a service processing request to the server process and a predetermined setting value setting request by the server process.
[0017]
  In the client stub generated in the invention according to claim 1, the client process operates.Image information processing deviceIn addition to describing function calls for server processes running in the network, other functions on the networkImage information processing deviceIt may be a function that describes a function call for a server process running on.
[0018]
  Claim 1According to the invention concerning, MeMessage fileprogramIf you write a function declaration that requests a service forprogramA client stub that realizes inter-process communication with can be easily generated independently of the server program. For this reason,programHave a client process forImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0019]
  And this claim1According to the invention related toprogramJust make a function declaration for the service provided byprogramSince it can be generated independently, it is a part close to hardware resourcesprogramIt is possible to entrust development of a client program such as an application to a third vendor or the like while hiding the internal operation of the client.
[0020]
  Claims2The invention according to claim1Described inImage information processing deviceIn the communication program generation method, the input step includes:As the hardware process as the server processA message file in which a declaration of a job control function for performing a processing request or a setting request for an engine control service for controlling an engine is input, and the code generation step includes the job for the engine control service based on the message file. A client stub describing a control function call is generated.
[0021]
  This claim2According to the invention, the input step isAs a hardware process as a server processEnter the message file that contains the declaration of the job control function that performs the processing request or setting request for the engine control service that controls the engine, and the code generation step describes the calling of the job control function for the engine control service based on the message file By creating the client stub, the job control function declaration can be described in the message file, and the client stub that realizes interprocess communication with the engine control service can be easily generated independently of the server program. can do. For this, it has a client process for the engine control serviceImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0022]
  Claims3The invention according to claim1 or 2Described inImage information processing deviceIn the communication program generation method, the input step includes:As the hardware process as the server processA message file describing a declaration of a memory control function for performing a processing request or a setting request for a memory control service for controlling a memory and a hard disk is input, and the code generation step is performed for the memory control service based on the message file. A client stub describing a call to the memory control function is generated.
[0023]
  This claim3According to the invention, the input step isAs a server process and as a hardware resourceInput a message file that contains the declaration of the memory control function that makes a processing request or setting request to the memory control service that controls the memory and hard disk, and the code generation step calls the memory control function for the memory control service based on the message file By creating a client stub that describes the memory control function declaration in the message file, the client stub that realizes inter-process communication with the memory control service by function call can be easily done independently of the server program. Can be generated. For this, it has a client process for the memory control serviceImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0024]
  Claims4The invention according to claim1-3As described in any one ofImage information processing deviceIn the communication program generation method, the input step includes:It becomes the server process and uses the fax control unit as the hardware resourceEnter the message file that contains the declaration of the fax communication control function that performs the processing request or setting request for the fax control service that controls the fax communication.
  The code generation step generates a client stub describing a call of the fax communication control function for the fax control service based on the message file.
[0025]
  This claim4According to the invention, the input step isBecome a server process and use the fax control unit as a hardware resourceEnter a message file that contains a declaration of the fax communication control function that makes a processing request or setting request to the fax control service that controls the fax communication, and the code generation step sets the fax communication control function for the fax control service based on the message file. If the declaration of the fax communication control function is described in the message file by generating the client stub describing the call, the client stub that realizes interprocess communication with the fax control service by the function call is independent of the server program. Can be generated easily. For this reason, it has a client process for the fax control serviceImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0026]
According to a fifth aspect of the present invention, in the image information processing apparatus communication program generating method according to any one of the first to fourth aspects, a syntax analysis for performing a syntax check of the message file input in the input step. The code generation step may generate the client stub based on the message file whose syntax has been checked by the syntax analysis step.
[0027]
According to the fifth aspect of the present invention, the method further includes a syntax analysis step for performing a syntax check of the message file input in the input step, and the code generation step is based on the message file subjected to the syntax check in the syntax analysis step. By generating the client stub, it is possible to avoid non-delivery of interprocess communication due to syntax error.
[0028]
According to a sixth aspect of the present invention, in the image information processing apparatus communication program generating method according to any one of the first to fifth aspects, a stub object generating step of generating a stub object by compiling the client stub. And a client object generation step of generating a client object program that can be executed by a computer by linking the stub object with a client program that describes the overall processing of the client process. .
[0029]
According to the invention of claim 6, a stub object generation step for generating a stub object by compiling a client stub, a client program describing the entire processing of the client process, and the stub object are linked and By further including a client object generation step for generating an executable client object program, it is possible to almost complete the program if only the function call is described in the client program, and the program development effort is further reduced. Can do.
[0030]
  Claims7The invention according toIt is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. A server process that operates in an image information processing apparatus provided with a program for performing control, and the image information processing apparatusOr other connected to the networkImage information processing apparatusAn inter-process communication program that handles inter-process communication with client processes that run on WindowsImage information processing deviceCommunication program generation methodThe application or program that becomes the client processFromBecome the server processBased on the message file, an input step for inputting a message file describing a declaration of a function called as a processing request or a setting request for the image information processing for the program,The application that becomes the client process or the program that is called from the program and becomes the server process.Other than the execution processing of the functionFunction declaration and argument passing onlyIt includes a code generation step for generating a server skeleton in which a function handler describing the function is registered.
[0031]
  This claim7According to the invention concerningApplications or programs that become client processesFromBecome a server processBased on the input step to input a message file that describes the declaration of the function called as a processing request or setting request for image information processing to the program, and the message file,A program that is called from an application or program that becomes a client process and becomes a server processOther than function execution processingFunction declaration and argument passing onlyIncluding a code generation step that generates a server skeleton with registered function handlers describingImage information processing deviceOr other on the networkImage information processing deviceWhat is a client program that executes a server skeleton that realizes inter-process communication with a client process by calling a function from the client process as a client process by describing the declaration of the function that provides the service provided to the client process that runs in It can be easily generated independently. Since the generated server skeleton contains only function declarations and argument passing, and no function execution processing is described, the functions of the server program can be added, the functions can be changed, and the processing details of the functions can be changed and added as necessary. Server program can be easily created using the server skeleton.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0032]
  And this claim7According to the invention, since inter-process communication is realized by the implementation of the function called from the client process and its return value, parallel execution of jobs related to the composite service is realized by a thread with less overhead for switching execution control. Even in this case, synchronization between threads can be performed with the return value of the function, so there is no need to create a separate program for controlling synchronization between jobs, and high-speed interprocess communication can be realized with simple implementation. it can.
[0033]
  Here, the “server skeleton” is a file that describes the interface on the server process side of the interprocess communication between the server process and the client process in source code, and describes only declarations other than function execution processing and argument passing Is. A server object program that is executed as a server process by describing a function execution process in this server skeleton and then compiling it into a skeleton object program and linking this skeleton object program with a source file that describes the main process of the server Is generated.
[0034]
  The “function handler” executes a series of processing such as argument passing, function execution processing, and return processing in response to a function call from a client process.
[0035]
  Claims7In the server skeleton generated in the invention according to the invention, the server process operates.Image information processing deviceRegistered function handlers for functions called from client processes running in the network, as well as other network functionsImage information processing deviceThis includes registration of function handlers for functions called from client processes running on.
[0036]
  Also,According to the invention of claim 7, MeThe service provided to the client process is defined in the message fileprogramIf the function declaration is described, a server skeleton that realizes interprocess communication with the client process by function call from the client process can be easily generated independently of the client program. For this reason,programHaveImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0037]
  Further, the invention according to claim 8 is the claim.7Described inImage information processing deviceIn the communication program generation method, the input step includes:As the hardware process as the server processEnter the message file that contains the declaration of the job control function that performs the processing request or setting request for the engine control service that controls the engine.
  The code generation step is based on the message file except for the job control function execution process.Function declaration and argument passing onlyA server skeleton of the engine control service in which a function handler describing the above is registered is generated.
[0038]
  According to the invention of claim 8, the input step includes:As a server process and as a hardware resourceEnter a message file that contains the declaration of the job control function that makes a processing request or setting request for the engine control service that controls the engine. The code generation step is based on the message file, except for the job control function execution process.Function declaration and argument passing onlyBy creating a server skeleton of the engine control service in which the function handler describing the function is registered, if the job control function declaration that defines the service to be provided in the message file is described, the client by calling the job control function from the client process A server skeleton that realizes interprocess communication with a process can be easily generated independently of a client program. For this reason, it has an engine control serviceImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0039]
  The invention according to claim 9 is the invention according to claim 7 or 8.Image information processing deviceIn the communication program generation method, the input step includes:As the hardware process as the server processA message file describing a declaration of a memory control function of a processing request or a setting request for a memory control service for controlling a memory and a hard disk is input, and the code generation step executes the memory control function based on the message file. Other than processingFunction declaration and argument passing onlyA server skeleton of the memory control service in which a function handler describing the above is registered is generated.
[0040]
  According to the invention of claim 9, the input step includes:As a server process and as a hardware resourceInput a message file in which the declaration of the memory control function of the processing request or setting request for the memory control service that controls the memory and hard disk is described, and the code generation step is based on the message file except for the execution process of the memory control function.Function declaration and argument passing onlyIf a memory control function declaration that defines the service to be provided in the message file is written by generating a server skeleton for the memory control service in which the function handler describing the function is registered, the client by calling the memory control function from the client process A server skeleton that realizes interprocess communication with a process can be easily generated independently of a client program. For this reason, it has a memory control serviceImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0041]
  Moreover, the invention concerning Claim 10 is as described in any one of Claims 7-9.Image information processing deviceIn the communication program generation method, the input step includes:It becomes the server process and uses the fax control unit as the hardware resourceEnter the message file that contains the declaration of the fax control function of the processing request or setting request for the fax control service that controls the fax communication.
  The code generation step is based on the message file except for the execution processing of the fax communication control function.Function declaration and argument passing onlyA server skeleton of the fax control service in which a function handler describing the above is registered is generated.
[0042]
  According to the invention of claim 10, the input step includes:Become a server process and use the fax control unit as a hardware resourceEnter the message file that contains the declaration of the fax control function of the processing request or the setting request for the fax control service that controls the fax communication, and the code generation step is based on the message file except for the execution processing of the fax communication control function.Function declaration and argument passing onlyBy creating a server skeleton for the fax control service in which the function handler describing the function is registered, if the fax communication control function declaration that defines the service to be provided in the message file is described, the fax communication control function call from the client process It is possible to easily generate a server skeleton that realizes inter-process communication with a client process according to the above, independently of the client program. For this, have a fax control serviceImage information processing deviceWhile having variability in the configuration ofImage information processing deviceA wide variety of functions can be realized.
[0043]
  The invention according to claim 11 is7-10As described in any one ofImage information processing deviceThe communication program generation method further includes a syntax analysis step of performing a syntax check of the message file input by the input step, and the code generation step is based on the message file syntax checked by the syntax analysis step.The server skeletonIs generated.
[0044]
  According to the eleventh aspect of the present invention, the method further includes a syntax analysis step of performing a syntax check of the message file input by the input step, and the code generation step is based on the message file whose syntax has been checked by the syntax analysis step. AndServer skeletonBy generating, it is possible to avoid non-delivery of interprocess communication due to syntax errors.
[0045]
  Moreover, the invention concerning Claim 12 is as described in any one of Claims 1-11.Image information processing deviceIn the communication program generation method, the code generation step further generates a header file including source code describing a common declaration or common process in the server process or the client process.
[0046]
  According to the twelfth aspect of the present invention, the code generation step further generates a header file including a source code describing a common declaration or common process in the server process or the client process, so that the server program or the client program By including the header when generating the program, the processing efficiency of program development can be improved.
[0047]
  The invention according to claim 13 is the invention according to claim 12.Image information processing deviceIn the communication program generation method, the input step is performed by the server process or the client process.Message definitions that are information about messages sent toIs input a message file further described, and the code generation step includesMessage definitionA header file in which is registered is generated.
[0048]
  According to the invention of claim 13, the input step is performed by the server process or the client process.Message definitions that are information about messages sent toEnter a message file that further describes the code generation step,Message definitionBy generating a header file in which is registered, inter-process communication can be realized not only by a function but also by transmission / reception of a message that is normally used, and various functions by a message can be realized.
[0049]
  The invention according to claim 14 isIt is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. Inter-process communication between a client process operating on an image information processing apparatus having a program for controlling and a server process operating on the image information processing apparatus or another image information processing apparatus connected to a network In the communication program generating apparatus for an image information processing apparatus that generates an inter-process communication program that is responsible, the image information processing for the application that becomes the client process or the program that becomes the server process from the program An input means for inputting a message file describing a declaration of a function to be called as a processing request or a setting request, and generating a client stub describing a call to the function for the program to be the server process based on the message file And a code generation means.
[0050]
  The invention according to claim 15 isIt is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. Inter-process communication between a server process that operates in an image information processing apparatus including a program that performs control and a client process that operates in the image information processing apparatus or another image information processing apparatus connected to a network In the communication program generating apparatus for an image information processing apparatus that generates an inter-process communication program that is responsible, the image information processing for the application that becomes the client process or the program that becomes the server process from the program Input means for inputting a message file describing a declaration of a function to be called as such a processing request or a setting request, and based on the message file, the application or program that becomes the client process is called to become the server process. Code generation means for generating a server skeleton in which a function handler describing only function declaration and argument passing other than execution processing of the function of the program is registered.
[0051]
DETAILED DESCRIPTION OF THE INVENTION
  With reference to the accompanying drawings, a communication program generation method for an image information processing apparatus according to the present invention will be described below.And communication program generation apparatus for image information processing apparatusThe preferred embodiment will be described in detail.
[0052]
(Embodiment 1)
  FIG. 1 is a first embodiment of the present invention.Image information processing device2 is a block diagram showing a functional configuration of a communication program generation device for use (hereinafter referred to as “stub generator”). The stub generator according to the first embodiment automatically generates a header, a client stub, and a server skeleton from a message file.
[0053]
  As shown in FIG. 1, an input unit 101 for inputting a message file 104, a syntax analysis unit 102 for checking the syntax of the contents described in the message file 104, a header 106 and a client stub from the description contents of the message file 104. 107 and a code generation unit 103 that generates a server skeleton 105 and stores it in a storage medium such as a hard disk.
[0054]
  First, the message file 104 input to the stub generator of the first embodiment, the header 106 generated by the stub generator, the client stub 107, and the server skeleton 105 will be described. The message file 104 is a source file in which communication contents of inter-process communication are described in a source code such as C language.
[0055]
  FIG. 3 is an explanatory diagram showing a description example of the message file 104. As shown in FIG. 3, the message file 104 includes another message file, an include declaration for declaring an include header of a C language description, a message description describing a message transmitted and received between the server process and the client process, The declaration of the function issued from the client process to the server process is described.
[0056]
  A message is issued mainly when an event or notification is performed between a server process and a client process. As a message description of the message file 104, a message name, a message ID, a message direction, and a message content are described. It is supposed to be.
[0057]
  Here, there are “IN”, “OUT”, and “SELF” in the message direction, “IN” means a message to be transmitted from the client process to the server process, and “OUT” is a message from the server process to the client process. Means a message to send to “SELF” means a message to be transmitted to its own process.
[0058]
  The function is issued when a processing request or a setting request is issued from the client process to the server process. In the function declaration of the message file 104, only the function name, function type, and argument are described, and the processing contents of the function are not described.
[0059]
  The client stub 107 is a source file describing the issuance of a function called from the client program to the server process. By compiling the client stub 107 into a library and linking with the client program, a function call from the client program is issued to the server process via the client stub 107.
[0060]
  FIG. 4 is an explanatory diagram showing an example of the client stub 107 generated by the stub generator. As shown in FIG. 4, a function call is performed on the client stub 107 by calling a function handler registered in a server skeleton 105 described later.
[0061]
  The server skeleton 105 is a source file in which a function handler and a message handler called from the client stub 107 are registered.
[0062]
  FIG. 5 is an explanatory diagram showing an example of the server skeleton 105 generated by the stub generator. As shown in FIG. 5, in the server skeleton 105, function handlers corresponding to the functions described in the client stub 107 are registered. In the function handler, only the argument passing part is described, and the processing contents are described. The implementation description part to be created is generated in a blank state. In this implementation description section, the processing contents of the function issued from the client program via the client stub 107 can be freely described by the server program developer.
[0063]
  The header 106 is a source file in which definitions and declarations common to the server skeleton 105 and the client stub 107 are described. FIG. 6 is an explanatory diagram showing an example of the header 106 generated by the stub generator. As shown in FIG. 6, the header 106 is generated in a state where an include declaration, a message ID, a message declaration such as a message structure, a function declaration, a function handler declaration, and the like described in the message file 104 are described. It is like that.
[0064]
  Next, generation processing of the server skeleton 105, the client stub 107, and the header 106 by the stub generator according to the first embodiment will be described. FIG. 2 is a flowchart of processing for generating the server skeleton 105, the client stub 107, and the header 106.
[0065]
  The syntax analysis unit 102 of the stub generator performs a grammar check on the function declaration, message definition, include declaration, and C language description described in the message file 104 (step S201), and further, the function name defined in the message file 104 and The uniqueness of the message ID and message name in the message definition is determined (step S202).
[0066]
  If there is a syntax error in the description of the function declaration, message definition, or include declaration, or if any of the function name, message ID, or message name is duplicated, a message to the user that it is a syntax error And the process ends (steps S203 and S204).
[0067]
  After the syntax analysis, the code generation unit 103 generates a header 106, a server skeleton 105, and a client stub 107 from the description content of the message file 104. Specifically, the include declaration and C language description of the message file 104 are transferred as they are to the header 106, and the message structure described in the message definition of the message file 104 is copied to the header 106 (step S205).
[0068]
  In addition, the code generation unit 103 automatically generates a function handler name from the function declaration of the message file 104 (for example, in the case of the function name abc, the function handler name is generated as abc_handler), and the generated function handler name is the server skeleton. Register within. In the function handler process, argument passing is described and issue of a return value area generation system call is described. Then, the field of the implementation description part describing the actual processing contents of the function handler is left blank, and after the implementation description part, the issuance of each system call for return value transmission and return value area release is described (step S206).
[0069]
  For each function declaration described in the message file 104, the code generation unit 103 registers the function name and argument description in the client stub 107, and the function call message generation call and the function handler are included in the processing of the function. Each system call for calling and return value release is described (step S207). A function return value waiting system call that waits for a return value of the issued function is internally issued for the function handler call.
[0070]
  When the client stub 107, the server skeleton 105, and the header 106 are generated by the tab generator in this way, the server object and the client object are then completed. The developer of the server program describes the processing contents to be performed by the function handler in the function handler implementation description section (blank) of the server skeleton 105 using an editor or the like, and compiles the server skeleton 105 together with the header 106 to Create a stub object.
[0071]
  In addition, a function handler registered in the server skeleton 105 is declared, a message handler that transmits / receives a message described in the message file 104 to / from a client process, an error handler that performs error processing, a server initialization, a server dispatcher Create and compile a server source file that describes the issuance of system calls such as activation, and link with the server stub object to complete the server program.
[0072]
  On the other hand, the client stub 107 is compiled with the header 106 to generate a client stub object. A client stub object is generated for each server process, and the plurality of generated client stub objects are used as a library.
[0073]
  Also, function issuance, function handler declaration, error handler declaration for error handling, message handler for sending and receiving messages described in the message file 104 to and from the client process, client process initialization and client dispatcher A client program describing the issuance of system calls such as activation is created and compiled, and the client program is completed by linking with a stub library.
[0074]
  FIG. 7 is an explanatory diagram showing a call and response sequence with the server program when a function call is made from the client program. Note that the server program and the client program are actually executable object files, but in FIG. 7, both are displayed in source code for convenience of explanation.
[0075]
  When an Open function is called from the client program to the server program, for example, Open defined in the client stub object is called (step S701). Then, in the stub Open process, the Open function handler Open_handler is called to the server program (step S702).
[0076]
  The server program receives the issuance of the function handler Open_handler from the client stub object, executes the process described in the implementation description part of the Open_handler registered in the server stub object (step S703), and outputs the execution result to the client stub. Is returned as a return value (step S704). The client program receives this return value from the client stub (step S705), and proceeds to the next processing.
[0077]
  As described above, in the stub generator of the first embodiment, the client stub 107 and the server skeleton 105 can be easily generated by describing the function declaration in the message file 104. Moreover, since the implementation description part of the generated server skeleton 105 is blank, the program developer can easily change the function processing contents as necessary. For this reason, the multifunction peripheral can be provided with variability and various functions can be realized. In addition, even when a client program is developed by another company such as a third vendor, inter-process communication is possible simply by describing the function call provided in the client program, so the internal communication protocol is concealed. It becomes possible.
[0078]
  Further, in the stub generator of the first embodiment, since inter-process communication is realized by function calls, high-speed inter-process communication is possible even when parallel execution of jobs is realized by threads. Further, since the threads can be synchronized by the return value from the function, it is not necessary to separately create a processing program for synchronization, and the labor for program development can be reduced.
[0079]
(Embodiment 2)
  The stub generator according to the first embodiment does not particularly limit the processes and threads that operate on the multifunction peripheral. However, the stub generator according to the second embodiment uses the control service that operates on the multifunction peripheral as a server process. Server skeleton, client stub, and header generation.
[0080]
  The configuration of the stub generator of the second embodiment is the same as the configuration of the stub generator of the first embodiment shown in FIG. 1, and the client stub, server skeleton and header generation processing by the stub generator is also shown in FIG. Since it is the same as the processing procedure by the stub generator of form 1, description is abbreviate | omitted.
[0081]
  Here, FIG. 8 is a block diagram illustrating a software configuration of the multifunction machine in which the server process and the client process generated by the stub generator according to the second embodiment operate. As shown in FIG. 8, the multi-function peripheral includes a monochrome line printer (B & W LP) 801, a color line printer (Color LP) 802, other hardware resources 803, and the like, and a software group 810 includes a platform 820 and an application 830. Consists of.
[0082]
  The platform 820 includes a control service that interprets a processing request from an application and generates a hardware resource acquisition request, and a system resource manager that manages one or a plurality of hardware resources and arbitrates the acquisition request from the control service. (SRM) 823 and a general-purpose OS 821 such as UNIX.
[0083]
  The control service is formed of a plurality of service modules, and includes an SCS (system control service) 822, an ECS (engine control service) 824, an MCS (memory control service) 825, an OCS (operation panel control service) 826, and an FCS. (Fax Control Service) 827 and NCS (Network Control Service) 828.
[0084]
  The SCS 822 performs application management, operation unit control, system screen display, LED display, resource management, and interrupt application control. The ECS 824 includes a monochrome line printer (B & W LP) 801, a color line printer (Color LP) 802, and others. It controls engines such as hardware resources 803.
[0085]
  The MCS 825 acquires and releases image memory, uses a hard disk device (HDD), compresses and decompresses image data, and the like. The OCS 826 is a module that controls an operation panel serving as information transmission means between the operator and the main body control.
[0086]
  FCS 827 performs facsimile transmission / reception using PSTN / ISDN network from each application layer of the system controller, registration / quotation of various facsimile data managed by BKM (backup SRAM), facsimile reading, facsimile reception printing, and fusion transmission / reception. API is provided.
[0087]
  The NCS 828 is a module group for providing a service that can be commonly used for applications that require network I / O. Data received from the network side according to each protocol is distributed to each application, and data is transmitted from the application. It mediates when transmitting to the network side.
[0088]
  The application 830 includes a printer application 811 that is a printer application having a page description language (PDL), PCL, and postscript (PS), a copy application 812 that is a copy application, and a fax application 813 that is a facsimile application. A scanner application 814 that is a scanner application, a network file application 815 that is a network file application, and a process inspection application 816 that is a process inspection application.
[0089]
  Each of these control services and each application transmits / receives various data to / from each other by inter-process communication using RPC (Remote Processor Call). The stub generator of the second embodiment generates a client stub and a server skeleton for realizing such inter-process communication with function calls.
[0090]
  Next, a process for generating a server skeleton and a client stub when the ECS 824 is used as a server process and the function of the ECS 824 is used will be described.
[0091]
  FIG. 9 is an explanatory diagram showing an example of a message file when the function of the ECS 824 is used as a server process. As shown in FIG. 9, in the message file, message definitions such as job handle, job execution availability notification, job end notification, etc. are defined, and as function declaration, job open request, job operation mode setting, job entry request, job start Declares functions such as request and job close request.
[0092]
  As in the first embodiment, when this message file is input to the stub generator and executed, the client stub and server skeleton shown in FIG. 10 are generated, and the header shown in FIG. 11 is generated. As shown in FIG. 10, in the server skeleton, function handlers for job open request, job operation mode setting, job entry request, job start request, job close request are described with the implementation description part blank, and the client stub These function handler calls are described. Also, as shown in FIG. 11, messages such as a job handle, job execution availability notification, and job end notification are registered in the header.
[0093]
  Then, the client program and the server program are generated from the client stub, the server skeleton, and the header generated in this manner, as in the first embodiment. For example, when the copy application 812 is used as a client program, a function call such as a job open request, job operation mode setting, job entry request, job start request, job close request or the like is described in the source file of the copy application 812. The copy application 812 is generated by compiling and linking with the client stub object.
[0094]
  As a result, the copy application 812 sends an ECS 824 to the ECS 824 between the copy application 812 and the ECS 824 using the function call as a job open request, a job operation mode setting, a job entry request, a job start request, and a job close request regarding the job of the copy operation. Inter-process communication can be realized. In addition, inter-process communication can be performed from the ECS 824 to the copy application 812 using a message such as job execution enable / disable notification and job end notification.
[0095]
  For inter-process communication between control services, for example, function calls such as job open request, job operation mode setting, job entry request, job start request, job close request, etc. are described in the source file of FCS827 and compiled in the same way When the FCS 827 is generated by linking with the client stub object, the job open request, job operation mode setting, job entry request, job start request, and job close request regarding the facsimile operation are function calls between the FCS 827 and the ECS 824. Interprocess communication can be realized.
[0096]
  Next, a process for generating a server skeleton and a client stub when the FCS 827 is used as a server process and the function of the FCS 827 is used will be described. In this case as well, function declaration and message definition are performed in the message file in the same manner as when ECS 824 is used as a server process. When FCS 824 is used as a server process, function declarations such as transmission start and transmission mode change are made, and message definitions such as scan parameter notification are made.
[0097]
  As in the first embodiment, when this message file is input to the stub generator and executed, a client stub, a server skeleton, and a header are generated. As in the case where the ECS 824 is used as a server process, the function handler for the transmission start and the transmission mode change in which the function declaration is made is described in the server skeleton, and the implementation description section is left blank, and these functions are displayed in the client stub. A handler call is described. In the header, a message such as a scan parameter notification in which the message is defined is registered.
[0098]
  Then, the client program and the server program are generated from the client stub, the server skeleton, and the header generated in this manner, as in the first embodiment. For example, as the inter-process communication when the client program is ECS 824, function calls such as transmission start and transmission mode change are described in the ECS 824 source file, and similarly compiled and linked with the client stub object to perform ECS 824. Is generated, it is possible to realize inter-process communication between ECS 824 and FCS 827 using function calls for transmission start and transmission mode change for facsimile operation. Further, inter-process communication by a message such as scan parameter notification from the FCS 827 to the ECS 824 becomes possible.
[0099]
  Next, processing for generating a server skeleton and a client stub when using the function of MCS 825 using MCS 825 as a server process will be described. In this case as well, function declaration and message definition are performed in the message file in the same manner as when ECS 824 is used as a server process.
[0100]
  When MCS 825 is a server process, a memory image information request, a file generation request, a page generation request, a page information registration, a page open request, a page close request, a page information request, a page deletion request, a file information registration, In addition to function declarations such as file close requests, file open requests, file deletion requests, work area acquisition requests, work area deletion requests, and divided read requests, message definition such as job end notifications is performed.
[0101]
  As in the first embodiment, when this message file is input to the stub generator and executed, a client stub, a server skeleton, and a header are generated. As in the case where the ECS 824 is a server process, the server skeleton includes a memory image information request, a file generation request, a page generation request, a page information registration, a page open request, a page close request, a page information request, for which a function declaration has been made. Function handler for page delete request, file information registration, file close request, file open request, file delete request, work area acquisition request, work area delete request, split read request is described with the implementation description part blank, and the client stub Describes these function handler calls. In the header, a message such as a job end notification for which a message has been defined is registered.
[0102]
  Then, the client program and the server program are generated from the client stub, the server skeleton, and the header generated in this manner, as in the first embodiment. For example, as an inter-process communication when the client program is ECS 824, when a function call such as a memory image information request is described in the ECS 824 source file and ECS 824 is generated, a memory image information request is made to secure memory in the printer operation. It is possible to realize inter-process communication between ECS 824 and MCS 825 using a function call.
[0103]
  Further, as inter-process communication when the client program is the scanner application 814, for example, a file generation request, page information registration, page open request, page close request, page information request, page deletion request to the source file of the scanner application 814, When function calls such as file information registration, file close request, file open request, file deletion request, work area acquisition request, work area deletion request, and divided read request are described and the scanner application 814 is generated, each request in the scanner operation It is possible to realize inter-process communication between the scanner application 814 and the MCS 825 using the function call.
[0104]
  Further, as inter-process communication when the client program is ECS 824, for example, when ECS 824 is generated by describing function calls such as page generation request, page information registration, page close request, and page information request in the source file of ECS 824. The inter-process communication between the ECS 824 and the MCS 825 using each request in the scanner operation of a plurality of pages as a function call can be realized.
[0105]
  As described above, the stub generator of the second embodiment can easily generate the client stub 107 such as an application and the server skeleton 105 such as a control service by describing the function declaration in the message file. In addition, since the implementation description part of the server skeleton generated by the stub generator is blank, the program developer can easily change the processing contents of the function as needed, and make the system variable. be able to. Furthermore, even when other companies such as third vendors develop application programs, inter-process communication is possible simply by describing the function calls provided in the application program, so the internal communication protocol is concealed. be able to.
[0106]
  In the stub generator of the second embodiment, inter-process communication between control services or between a control service and an application can be realized by function calls, and parallel execution of jobs is started by activating a plurality of threads in the process. Even if it is realized, high-speed interprocess communication is possible.
[0107]
  Furthermore, in the stub generator of the second embodiment, the threads can be synchronized by the return value from the function, so that it is not necessary to provide a separate synchronization process, and the program development effort can be reduced.
[0108]
【The invention's effect】
  As described above, according to the invention of claim 1,Image information processing deviceEven if there is a function addition or function change, a client program that can be executed as a client process can be easily created using the generated client stub as needed, with a variable configuration and a wide variety Functions can be realizedImage information processing deviceThere is an effect that can be provided.
[0109]
  Further, according to the invention according to claim 1, since the client program can be easily generated even if the internal operation of the server program is not well known,Image information processing deviceAs a result, the development of the client program that operates on the server can be entrusted to a third vendor while concealing the internal operation of the server program. Furthermore, according to the first aspect of the present invention, there is an effect that high-speed interprocess communication can be realized with simple mounting.
[0110]
  Claims1According to the invention concerningprogramHave a client process forImage information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0111]
  And this claim1According to the invention, it is possible to entrust development of a client program such as an application to a third vendor or the like while concealing the internal operation of the control service that is a part close to hardware resources.
[0112]
  Claims2According to the invention, the client process for the engine control service is provided.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0113]
  Claims3According to the invention, the client process for the memory control service is provided.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0114]
  Claims4According to the invention, the client process for the fax control service is provided.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
  Claims5According to the invention, it is possible to avoid non-delivery of interprocess communication due to a syntax error.
According to the invention of claim 6, if only the function call is described in the client program, the program can be almost completed, and the program development effort can be further reduced.
[0115]
  Claims7According to the invention, it is possible to easily create a server program using the added server skeleton, freely changing the processing contents of the function as needed, adding the function of the server program, changing the function, etc.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized. According to the invention of claim 6, there is an effect that high-speed interprocess communication can be realized with simple mounting.
[0116]
  Moreover, according to the invention concerning Claim 7,programHaveImage information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0117]
  Moreover, according to the invention concerning Claim 8, it has an engine control service.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0118]
  Moreover, according to the invention concerning Claim 9, it has a memory control service.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0119]
  Moreover, according to the invention concerning Claim 10, it has a fax control service.Image information processing deviceWhile having variability in the configuration ofImage information processing deviceThis produces an effect that various functions can be realized.
[0120]
  Moreover, according to the invention concerning Claim 11, there exists an effect that the non-delivery of the interprocess communication resulting from a syntax error can be avoided.
[0121]
  According to the twelfth aspect of the present invention, it is possible to improve the processing efficiency of program development by including a header when generating a server program or a client program.
[0122]
  According to the invention of claim 13, inter-process communication can be realized not only by a function but also by transmission / reception of a message that is normally used, and there is an effect that various functions by a message can be realized.
[0123]
  According to the invention of claim 14,Similar to the invention according to claim 1There is an effect.
[0124]
  According to the invention of claim 15,Same as the invention according to claim 7There is an effect.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a functional configuration of a stub generator according to a first embodiment of the present invention.
FIG. 2 is a flowchart of server skeleton, client stub, and header generation processing in the stub generator according to the first embodiment;
FIG. 3 is an explanatory diagram illustrating a description example of a message file input to the stub generator according to the first embodiment.
FIG. 4 is an explanatory diagram illustrating an example of a client stub generated by the stub generator according to the first embodiment.
FIG. 5 is an explanatory diagram illustrating an example of a server skeleton generated by the stub generator according to the first embodiment.
FIG. 6 is an explanatory diagram illustrating an example of a header generated by the stub generator according to the first embodiment.
7 is an explanatory diagram showing a sequence of calling and responding to a server program when a function call is made from a client program in Embodiment 1. FIG.
FIG. 8 is a block diagram illustrating a software configuration of a multifunction machine in which a server process and a client process generated by the stub generator according to the second embodiment operate.
FIG. 9 is an explanatory diagram illustrating an example of a message file when an ECS function is used as a server process in the second embodiment.
FIG. 10 is an explanatory diagram illustrating an example of a client stub, a server skeleton, and a header generated by the stub generator according to the second embodiment.
FIG. 11 is an explanatory diagram illustrating an example of a header generated by the stub generator according to the second embodiment.
[Explanation of symbols]
  101 Input section
  102 Parsing section
  103 Code generator
  104 Message file
  105 server skeleton
  106 header
  107 Client stub
  800 MFP
  801 Monochrome line printer
  802 Color line printer
  803 hardware resources
  810 software group
  811 Printer application
  812 Copy application
  813 Fax application
  814 Scanner app
  815 Net file application
  816 Application for process inspection
  820 platform
  821 General-purpose OS
  822 SCS
  823 SRM
  824 ECS
  825 MCS
  826 OCS
  827 FCS
  828 NCS
  830 application
  827 FCS

Claims (15)

印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するクライアントプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するサーバプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成方法において、
前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力ステップと、
前記メッセージファイルに基づいて、前記サーバプロセスになる前記プログラムに対する前記関数の呼び出しを記述したクライアントスタブを生成するコード生成ステップと、を含んだことを特徴とする画像情報処理装置用通信プログラム生成方法。
It is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. Inter-process communication between a client process operating on an image information processing apparatus having a program for controlling and a server process operating on the image information processing apparatus or another image information processing apparatus connected to a network In a communication program generation method for an image information processing apparatus that generates an interprocess communication program that bears
An input step of inputting a message file describing a declaration of a function called as a processing request or a setting request for the image information processing for the program to be the server process from the application or the program to be the client process;
A method for generating a communication program for an image information processing apparatus, comprising: a code generation step for generating a client stub describing a call to the function for the program to be the server process based on the message file.
前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記エンジンコントロールサービスに対する前記ジョブ制御関数の呼び出しを記述したクライアントスタブを生成することを特徴とする請求項1に記載の画像情報処理装置用通信プログラム生成方法。
The input step inputs a message file in which a declaration of a job control function for making a processing request or a setting request for an engine control service that controls the engine as the hardware resource as well as the server process is described,
2. The communication program for an image information processing apparatus according to claim 1, wherein the code generation step generates a client stub describing a call to the job control function for the engine control service based on the message file. Generation method.
前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記メモリコントロールサービスに対する前記メモリ制御関数の呼び出しを記述したクライアントスタブを生成することを特徴とする請求項1または2に記載の画像情報処理装置用通信プログラム生成方法。
The input step inputs a message file in which a declaration of a memory control function for making a processing request or a setting request for a memory control service that controls the memory and the hard disk as the hardware resource as well as the server process is described,
3. The image information processing apparatus according to claim 1, wherein the code generation step generates a client stub describing a call to the memory control function for the memory control service based on the message file. Communication program generation method.
前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記ファックスコントロールサービスに対する前記ファックス通信制御関数の呼び出しを記述したクライアントスタブを生成することを特徴とする請求項1〜3のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法。
The input step is a message in which a declaration of a fax communication control function for making a processing request or a setting request for a fax control service that controls the fax communication that uses the fax control unit as the hardware resource as well as the server process is described. Enter the file
4. The code generation step generates a client stub describing a call of the fax communication control function for the fax control service based on the message file. Method for generating a communication program for image information processing apparatus.
前記入力ステップにより入力されたメッセージファイルの構文チェックを行う構文解析ステップをさらに含み、
前記コード生成ステップは、前記構文解析ステップにより構文チェックされたメッセージファイルに基づいて、前記クライアントスタブを生成することを特徴とする請求項1〜4のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法。
A parsing step of performing a syntax check of the message file input by the input step;
5. The image information processing apparatus according to claim 1, wherein the code generation step generates the client stub based on the message file whose syntax is checked by the syntax analysis step. 6. Communication program generation method.
前記クライアントスタブをコンパイルしてスタブオブジェクトを生成するスタブオブジェクト生成ステップと、
前記クライアントプロセスの全体処理を記述したクライアントプログラムと、前記スタブオブジェクトとをリンクして、コンピュータで実行可能なクライアントオブジェクトプログラムを生成するクライアントオブジェクト生成ステップと、
をさらに含んだことを特徴とする請求項1〜5のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法。
A stub object generation step of generating a stub object by compiling the client stub;
A client object generation step of generating a client object program executable by a computer by linking the stub object with a client program describing the entire processing of the client process;
The communication program generation method for an image information processing apparatus according to claim 1, further comprising:
印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するサーバプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するクライアントプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成方法において、
前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力ステップと、
前記メッセージファイルに基づいて、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから呼び出されて前記サーバプロセスとなる前記プログラムの前記関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラを登録したサーバスケルトンとを生成するコード生成ステップ
を含んだことを特徴とする画像情報処理装置用通信プログラム生成方法。
It is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. Inter-process communication between a server process that operates in an image information processing apparatus including a program that performs control and a client process that operates in the image information processing apparatus or another image information processing apparatus connected to a network In a communication program generation method for an image information processing apparatus that generates an interprocess communication program that bears
An input step of inputting a message file describing a declaration of a function called as a processing request or a setting request for the image information processing for the program to be the server process from the application or the program to be the client process;
Based on the message file, a function handler describing only function declaration and argument passing other than execution processing of the function of the program that is called from the application or program that becomes the client process and becomes the server process is registered. A communication program generation method for an image information processing apparatus, comprising: a code generation step for generating a server skeleton.
前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記ジョブ制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録された前記エンジンコントロールサービスのサーバスケルトンを生成することを特徴とする請求項7に記載の画像情報処理装置用通信プログラム生成方法。
The input step inputs a message file in which a declaration of a job control function for making a processing request or a setting request for an engine control service that controls the engine as the hardware resource as well as the server process is described,
The code generation step generates a server skeleton of the engine control service in which a function handler describing only function declaration and argument passing other than execution processing of the job control function is registered based on the message file. A method for generating a communication program for an image information processing apparatus according to claim 7.
前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求のメモリ制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記メモリ制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録された前記メモリコントロールサービスのサーバスケルトンを生成することを特徴とする請求項7または8に記載の画像情報処理装置用通信プログラム生成方法。
In the input step, a message file in which a declaration of a memory control function of a processing request or a setting request for the memory control service that controls the memory and the hard disk as the hardware resource as well as the server process is described is input.
The code generation step generates a server skeleton of the memory control service in which a function handler describing only function declaration and argument passing other than execution processing of the memory control function is registered based on the message file. A method for generating a communication program for an image information processing apparatus according to claim 7 or 8.
前記入力ステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求のファックス制御関数の宣言が記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージファイルに基づいて、前記ファクス通信制御関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラが登録された前記ファックスコントロールサービスのサーバスケルトンを生成することを特徴とする請求項7〜9のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法。
In the input step, a message file describing a declaration of a fax control function of a processing request or a setting request for a fax control service that controls the fax communication using the fax control unit as the hardware resource as well as the server process is described. Input,
The code generation step generates, based on the message file, a server skeleton of the fax control service in which a function handler describing only function declaration and argument passing other than execution processing of the fax communication control function is registered. The method for generating a communication program for an image information processing apparatus according to any one of claims 7 to 9.
前記入力ステップにより入力されたメッセージファイルの構文チェックを行う構文解析ステップをさらに含み、
前記コード生成ステップは、前記構文解析ステップにより構文チェックされたメッセージファイルに基づいて、前記サーバスケルトンを生成することを特徴とする請求項7〜10のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法。
A parsing step of performing a syntax check of the message file input by the input step;
11. The image information processing apparatus according to claim 7, wherein the code generation step generates the server skeleton based on the message file whose syntax is checked by the syntax analysis step. Communication program generation method.
前記コード生成ステップは、前記サーバプロセスまたは前記クライアントプロセスにおける共通の宣言または共通の処理を記述したソースコードを含むヘッダファイルをさらに生成することを特徴とする請求項1〜11のいずれか一つに記載の画像情報処理装置用通信プログラム生成方法。  The code generation step further generates a header file including a source code describing a common declaration or common process in the server process or the client process. A method for generating a communication program for an image information processing apparatus. 前記入力ステップは、前記サーバプロセスまたは前記クライアントプロセスに対して送信するメッセージに関する情報であるメッセージ定義がさらに記述されたメッセージファイルを入力し、
前記コード生成ステップは、前記メッセージ定義を登録したヘッダファイルを生成することを特徴とする請求項12に記載の画像情報処理装置用通信プログラム生成方法。
The input step inputs a message file further describing a message definition that is information about a message to be transmitted to the server process or the client process,
13. The image information processing apparatus communication program generation method according to claim 12, wherein the code generation step generates a header file in which the message definition is registered.
印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するクライアントプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するサーバプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成装置において、It is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. Inter-process communication between a client process operating on an image information processing apparatus having a program for controlling and a server process operating on the image information processing apparatus or another image information processing apparatus connected to a network In a communication program generation device for an image information processing device that generates an interprocess communication program that bears it,
前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力手段と、  An input means for inputting a message file describing a declaration of a function to be called as a processing request or a setting request for the image information processing for the program to be the server process from the application or the program to be the client process;
前記メッセージファイルに基づいて、前記サーバプロセスになる前記プログラムに対する前記関数の呼び出しを記述したクライアントスタブを生成するコード生成手段と、  Code generating means for generating a client stub describing a call to the function for the program to be the server process based on the message file;
を備えたことを特徴とする画像情報処理装置用通信プログラム生成装置。  A communication program generation apparatus for an image information processing apparatus.
印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置で動作するサーバプロセスと、該画像情報処理装置またはネットワークに接続された他の前記画像情報処理装置で動作するクライアントプロセスとの間のプロセス間通信を担うプロセス間通信プログラムを生成する画像情報処理装置用通信プログラム生成装置において、It is possible to install a plurality of applications related to image information processing using hardware resources having a printing unit or an imaging unit, and operate on the operating system and the operating system. Inter-process communication between a server process that operates in an image information processing apparatus including a program that performs control and a client process that operates in the image information processing apparatus or another image information processing apparatus connected to a network In a communication program generation device for an image information processing device that generates an interprocess communication program that bears it,
前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから前記サーバプロセスになる前記プログラムに対して前記画像情報処理にかかる処理要求または設定要求として呼び出される関数の宣言を記述したメッセージファイルを入力する入力手段と、  An input means for inputting a message file describing a declaration of a function to be called as a processing request or a setting request for the image information processing for the program to be the server process from the application or the program to be the client process;
前記メッセージファイルに基づいて、前記クライアントプロセスになる前記アプリケーションまたは前記プログラムから呼び出されて前記サーバプロセスとなる前記プログラムの前記関数の実行処理以外の関数宣言および引数受け渡しのみを記述した関数ハンドラを登録したサーバスケルトンとを生成するコード生成手段と、  Based on the message file, a function handler describing only function declaration and argument passing other than execution processing of the function of the program that is called from the application or program that becomes the client process and becomes the server process is registered. Code generation means for generating a server skeleton;
を備えたことを特徴とする画像情報処理装置用通信プログラム生成装置。  A communication program generation apparatus for an image information processing apparatus.
JP2001257042A 2001-08-27 2001-08-27 Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus Expired - Fee Related JP3977039B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001257042A JP3977039B2 (en) 2001-08-27 2001-08-27 Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus
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 (1)

Application Number Priority Date Filing Date Title
JP2001257042A JP3977039B2 (en) 2001-08-27 2001-08-27 Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007140166A Division JP4500326B2 (en) 2007-05-28 2007-05-28 Inter-process communication program and image information processing apparatus

Publications (2)

Publication Number Publication Date
JP2003067187A JP2003067187A (en) 2003-03-07
JP3977039B2 true JP3977039B2 (en) 2007-09-19

Family

ID=19084771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001257042A Expired - Fee Related JP3977039B2 (en) 2001-08-27 2001-08-27 Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus

Country Status (1)

Country Link
JP (1) JP3977039B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4843372B2 (en) * 2006-05-09 2011-12-21 株式会社リコー Image processing device
JP5172585B2 (en) * 2008-10-07 2013-03-27 インターナショナル・ビジネス・マシーンズ・コーポレーション System, method, and program for controlling access to object model
JP5241671B2 (en) 2009-10-05 2013-07-17 株式会社日立製作所 Data migration control method for storage device

Also Published As

Publication number Publication date
JP2003067187A (en) 2003-03-07

Similar Documents

Publication Publication Date Title
US7318083B2 (en) Information processing system
EP1650953B1 (en) Image forming apparatus, a print process method, a computer program and a computer readable storage medium
JP4365148B2 (en) Image forming apparatus, wrapping processing method, and program
JP2004163997A (en) Service processing device, service processing method, and program
JP2016149805A (en) Image forming apparatus, image forming method, and program
US20030140174A1 (en) Method for generating application for information processing apparatus and image forming apparatus
JP4291856B2 (en) Image forming apparatus having Web service function
JP3977039B2 (en) Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus
JP4500326B2 (en) Inter-process communication program and image information processing apparatus
JP4246560B2 (en) Information processing apparatus, information processing method, program, and recording medium
JP4141209B2 (en) Image forming apparatus having Web service function
JP4133085B2 (en) Image forming apparatus and customized program test method
JP2004127253A (en) Information processing apparatus and version check method
JP5036770B2 (en) Apparatus, wrapping processing method, and program
JP4334214B2 (en) Image forming apparatus, application program, and recording medium
JP2004005503A (en) Image forming device having web service function
JP5445051B2 (en) Information processing apparatus, API program, and log environment providing method
JP4405132B2 (en) Terminal emulator for image information processing apparatus and terminal application for image information processing apparatus
KR20080113957A (en) Job control apparatus and multi-function product, and operating method thereof
JP4080739B2 (en) Application generating method for image forming apparatus and program causing computer to execute the method
JP4334213B2 (en) Information processing apparatus, application program, and recording medium
JP2009043078A (en) Simulation program and recording medium
JP2004129220A (en) Image forming apparatus and version check method
JP2003263321A (en) Image forming device application generation method, image forming device application starting method, image forming device application generation program, image forming device, and image forming device application development recording medium
JP2003256238A (en) Method for generating application, method for launching application, program for generating application, information processing apparatus and application development recording medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070620

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

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees