JP2007242052A - Process-to-process communication program and image information processor - Google Patents

Process-to-process communication program and image information processor Download PDF

Info

Publication number
JP2007242052A
JP2007242052A JP2007140166A JP2007140166A JP2007242052A JP 2007242052 A JP2007242052 A JP 2007242052A JP 2007140166 A JP2007140166 A JP 2007140166A JP 2007140166 A JP2007140166 A JP 2007140166A JP 2007242052 A JP2007242052 A JP 2007242052A
Authority
JP
Japan
Prior art keywords
function
request
image information
program
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007140166A
Other languages
Japanese (ja)
Other versions
JP4500326B2 (en
Inventor
Shigeya Senda
滋也 千田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007140166A priority Critical patent/JP4500326B2/en
Publication of JP2007242052A publication Critical patent/JP2007242052A/en
Application granted granted Critical
Publication of JP4500326B2 publication Critical patent/JP4500326B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To independently develop an application and a control service to be provided in an image information processor while giving variability and diverseness to the application or a program for the control service. <P>SOLUTION: This process-to-process communication program which undertakes process-to-process communication by execution by an image information processor comprising applications for image information processing using hardware resources including a printing part or imaging part, an operating system and a program operated on the operating system and accessed by a plurality of applications to control the hardware resources makes the image information processor execute a function calling step of performing calling of a function of processing request or setting request related to image information processing to a program as a server process by an application as a client process. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

この発明は、プリンタ、コピーまたはファクシミリなどの複合サービスを行う画像情報処理装置で動作するサーバプロセスとクライアントプロセスの間のプロセス間通信を担うプロセス間通信プログラムおよび画像情報処理装置に関する。   The present invention relates to an inter-process communication program and an image information processing apparatus that perform 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.

近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が一般的に知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する3種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。   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.

従来の複合機では、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア(汎用OSを含む)をそれぞれ別個に設ける構成となっており、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理をおこなうアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置を発明した。この画像形成装置によれば、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。   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.

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

すなわち、複合機は、プリンタ、コピー、ファクシミリ、スキャナなど多種の機能を備えたものであるが、その一部の機能に故障あるいは仕様変更などが生じた場合に、全てのアプリケーションまたは全てのコントロールサービスのモジュールを修正しなければならないと、作業の労力が過大となる。また、将来的に、複合機に新たな機能を追加する場合でも一部の機能の追加のために全てのコントロールサービスや全てのアプリケーションのモジュール変更が必要となると、プログラム開発の労力が過大となってしまう。このため、複合機上で動作する各アプリケーションやコントロールサービスのモジュールは互いにサービスやデータの送受信を実現としながらも、モジュール間の独立性を維持していることが必要となってくる。   In other words, a multifunction device has a variety of functions such as printers, copiers, facsimiles, scanners, etc., but if some of the functions fail or specification changes occur, all applications or all control services If you have to modify these modules, the work effort will be excessive. Also, even if new functions are added to the MFP in the future, if it is necessary to change all control services and all application modules to add some functions, the program development effort will be excessive. End up. For this reason, it is necessary for each application and control service module operating on the multifunction peripheral to maintain the independence between the modules while realizing the transmission and reception of services and data with each other.

すなわち、アプリケーションや各コントロールサービスごとに独立性がないと、必要なアプリケーションや必要なコントロールサービスのみを提供することが困難となり、機能変更や機能追加などに柔軟に対応できるような複合機の構成に可変性を持たせることができないばかりか、多種多様な機能の実現が困難となるという問題がある。   In other words, if there is no independence for each application and each control service, it will be difficult to provide only the necessary applications and necessary control services, and 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.

また、各アプリケーションや各コントロールサービスごとに独立性がないと、アプリケーションやコントロールサービスごとの設計および構築が困難になるという問題がある。すなわち、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスを有する構成の複合機では、その特徴的な構成を利用して、アプリケーションのプログラム開発を画像形成装置の製造元以外のサードベンダに委ねることも考えられるが、各モジュールに独立性がないと、ハードウェア資源との直接的なやりとりを行うコントロールサービスの内部動作をサードベンダが熟知していないと、アプリケーションの開発が困難となる。一方、画像形成装置の開発元としては、コントロールサービスの内部動作をサードベンダに開示することは営業秘密上好ましくない。   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.

この発明は上記に鑑みてなされたもので、画像情報処理装置で提供されるアプリケーションやコントロールサービスのプログラムに可変性および多様性を持たせることができ、かつアプリケーションとコントロールサービスとを別個独立に開発することが容易に行えるプロセス間通信プログラムおよび画像情報処理装置を得ることを目的とする。   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. An object of the present invention is to obtain an interprocess communication program and an image information processing apparatus that can be easily performed.

上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置に実行させ、プロセス間通信を担うプロセス間通信プログラムであって、クライアントプロセスとなる前記アプリケーションによって、サーバプロセスになる前記プログラムに対する前記画像情報処理にかかる処理要求または設定要求の関数の呼び出しを行う関数呼び出しステップ、を前記画像情報処理装置に実行させる。   In order to solve the above-described problems and achieve the object, the invention according to claim 1 is an application related to image information processing using hardware resources having a printing unit or an imaging unit, an operating system, and the operating system. An inter-process communication program that runs on an image information processing apparatus that operates on the image processing apparatus and that is executed by a plurality of applications and controls the hardware resources, and is responsible for inter-process communication. The application causes the image information processing apparatus to execute a function call step for calling a function of a processing request or a setting request for the image information processing for the program to be a server process.

また、請求項2にかかる発明は、前記関数呼び出しステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の呼び出しを行うことを特徴とする。   In the invention according to claim 2, the function calling step is a server process and calls a job control function for making a processing request or a setting request for an engine control service for controlling an engine as the hardware resource. It is characterized by that.

また、請求項3にかかる発明は、前記関数呼び出しステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の呼び出しを行うことを特徴とする。   According to a third aspect of the present invention, the function calling step is a server process and calls a memory control function that makes a processing request or a setting request to a memory control service that controls the memory and the hard disk as the hardware resources. It is characterized by performing.

また、請求項4にかかる発明は、前記関数呼び出しステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の呼び出しを行うことを特徴とする。   According to a fourth aspect of the present invention, the function calling step becomes the server process and makes a processing request or a setting request for a fax control service for controlling a fax communication using a fax control unit as the hardware resource. The facsimile communication control function is called.

また、請求項5にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムと、を備え、前記アプリケーションは、サーバプロセスになる前記プログラムに対する前記画像情報処理にかかる処理要求または設定要求の関数の呼び出しを行う関数呼び出し手段を備えたことを特徴とする。   According to a fifth aspect of the present invention, there is provided an application for image information processing using hardware resources having a printing unit or an imaging unit, an operating system, and operating on the operating system, and accessed from a plurality of the applications. And a program for controlling the hardware resources, and the application includes function calling means for calling a function of a processing request or a setting request related to the image information processing for the program serving as a server process. It is characterized by.

また、請求項6にかかる発明は、前記関数呼び出し手段は、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の呼び出しを行うことを特徴とする。   According to a sixth aspect of the present invention, the function calling means calls a job control function that makes a processing request or a setting request to an engine control service that controls the engine as the hardware resource as well as the server process. It is characterized by that.

また、請求項7にかかる発明は、前記関数呼び出し手段は、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の呼び出しを行うことを特徴とする。   According to a seventh aspect of the present invention, the function calling means is a server process and calls a memory control function that makes a processing request or a setting request to a memory control service that controls the memory and the hard disk as the hardware resources. It is characterized by performing.

また、請求項8にかかる発明は、前記関数呼び出し手段は、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の呼び出しを行うことを特徴とする。   In the invention according to claim 8, the function calling means makes a processing request or a setting request for a fax control service which controls the fax communication using the fax control unit as the hardware resource as well as the server process. The facsimile communication control function is called.

本発明によれば、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置に実行させ、プロセス間通信を担うプロセス間通信プログラムであって、クライアントプロセスとなる前記アプリケーションによって、サーバプロセスになる前記プログラムに対する前記画像情報処理にかかる処理要求または設定要求の関数の呼び出しを行う関数呼び出しステップを前記画像情報処理装置に実行させることで、通信プロトコルの隠蔽性を図りつつ画像情報処理装置で動作するクライアントオブジェクトプログラムを汎用的に開発することができるという効果を奏する。   According to the present invention, an application related to image information processing using hardware resources having a printing unit or an imaging unit, an operating system, and operating on the operating system, accessed from a plurality of the applications, and the hardware An inter-process communication program that is executed by an image information processing apparatus having a program for controlling resources and performs inter-process communication, and the image information processing for the program that becomes a server process by the application that becomes a client process By causing the image information processing apparatus to execute a function call step for calling a function of a processing request or a setting request related to a client, a client object program that operates on the image information processing apparatus while concealing a communication protocol is achieved. There is an effect that it is possible to develop a gram universally.

また、本発明によれば、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムと、を備え、前記アプリケーションは、サーバプロセスになる前記プログラムに対する前記画像情報処理にかかる処理要求または設定要求の関数の呼び出しを行う関数呼び出し手段、を備えたことで、クライアントプロセスが動作する画像情報処理装置の構成に可変性を持たせることができ、画像情報処理装置に多種多様な機能を実現させることができるという効果を奏する。   In addition, according to the present invention, an application for image information processing using hardware resources having a printing unit or an imaging unit, an operating system, and operating on the operating system are accessed from a plurality of the applications and A program for performing control of hardware resources, and the application includes function calling means for calling a function of a processing request or a setting request for the image information processing for the program to be a server process. Thus, the configuration of the image information processing apparatus on which the client process operates can be made variable, and the image information processing apparatus can realize various functions.

以下に添付図面を参照して、この発明にかかる、プロセス間通信プログラムおよび画像情報処理装置の好適な実施の形態を詳細に説明する。   Exemplary embodiments of an interprocess communication program and an image information processing apparatus according to the present invention will be explained below in detail with reference to the accompanying drawings.

(実施の形態1)
図1は、この発明の実施の形態1である画像情報処理装置用通信プログラム生成装置(以下、「スタブジェネレータ」という。)の機能的構成を示すブロック図である。実施の形態1のスタブジェネレータは、メッセージファイルからヘッダと、クライアントスタブと、サーバスケルトンを自動生成するものである。
(Embodiment 1)
FIG. 1 is a block diagram showing a functional configuration of a communication program generating apparatus for image information processing apparatus (hereinafter referred to as “stub generator”) according to Embodiment 1 of the present invention. The stub generator according to the first embodiment automatically generates a header, a client stub, and a server skeleton from a message file.

図1に示すように、メッセージファイル104を入力する入力部101と、メッセージファイル104に記述された内容の構文チェックを行う構文解析部102と、メッセージファイル104の記述内容から、ヘッダ106とクライアントスタブ107と、サーバスケルトン105とを生成してハードディスク等の記憶媒体に格納するコード生成部103とを備えている。   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.

まず、実施の形態1のスタブジェネレータに入力されるメッセージファイル104と、スタブジェネレータで生成されるヘッダ106、クライアントスタブ107およびサーバスケルトン105について説明する。メッセージファイル104は、プロセス間通信の通信内容をC言語などのソースコードで記述したソースファイルである。   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.

図3は、メッセージファイル104の記述例を示す説明図である。図3に示すように、メッセージファイル104には、別のメッセージファイルや、C言語記述のインクルードヘッダを宣言するインクルード宣言と、サーバプロセスとクライアントプロセスの間で送受信するメッセージを記述したメッセージ記述と、クライアントプロセスからサーバプロセスに対して発行する関数の宣言などが記述されている。   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.

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

ここで、メッセージ方向には、「IN」、「OUT」、「SELF」があり、「IN」はクライアントプロセスからサーバプロセスに対して送信するメッセージを意味し、「OUT」はサーバプロセスからクライアントプロセスに対して送信するメッセージを意味する。また、「SELF」は、自分自身のプロセスに対して送信するメッセージを意味する。   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.

関数は、クライアントプロセスからサーバプロセスに処理要求や設定要求を行う際に発行するものである。メッセージファイル104の関数宣言には、関数名と、関数の型と、引数のみを記述し、関数の処理内容は記述しないようになっている。   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.

クライアントスタブ107は、クライアントプログラムから呼び出される関数のサーバプロセスに対する発行を記述したソースファイルである。クライアントスタブ107をコンパイルしてライブラリ化し、クライアントプログラムとリンクすることにより、クライアントプログラムからの関数コールがクライアントスタブ107を介してサーバプロセスへ発行されるようになっている。   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.

図4はスタブジェネレータにより生成されるクライアントスタブ107の一例を示す説明図である。図4に示すように、クライアントスタブ107には、後述するサーバスケルトン105に登録された関数ハンドラを呼び出すことにより、関数コールが行われるようになっている。   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.

サーバスケルトン105は、クライアントスタブ107から呼び出された関数ハンドラとメッセージハンドラを登録したソースファイルである。   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.

図5はスタブジェネレータにより生成されるサーバスケルトン105の一例を示す説明図である。図5に示すように、サーバスケルトン105には、クライアントスタブ107に記述された関数に対応した関数ハンドラが登録されているが、関数ハンドラでは、引数の受け渡し部のみが記述され、処理内容を記述する実装記述部は空欄の状態で生成されている。この実装記述部には、クライアントプログラムからクライアントスタブ107を介して発行される関数の処理内容を、サーバプログラムの開発者が自在に記述できるようになっている。   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.

ヘッダ106は、サーバスケルトン105とクライアントスタブ107で共通の定義、宣言などを記述したソースファイルである。図6はスタブジェネレータにより生成されるヘッダ106の一例を示す説明図である。図6に示すように、ヘッダ106には、メッセージファイル104に記述されたインクルード宣言、メッセージID、メッセージの構造体などのメッセージ宣言、関数宣言および関数ハンドラ宣言などが記述された状態で生成されるようになっている。   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 described in the message file 104, a message ID, a message declaration such as a message structure, a function declaration, a function handler declaration, and the like are described. It is like that.

次に、実施の形態1のスタブジェネレータによるサーバスケルトン105、クライアントスタブ107およびヘッダ106の生成処理について説明する。図2は、サーバスケルトン105、クライアントスタブ107およびヘッダ106の生成処理のフローチャートである。   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.

スタブジェネレータの構文解析部102は、メッセージファイル104に記述された関数宣言、メッセージ定義、インクルード宣言、C言語記述の文法チェックを行い(ステップS201)、さらにメッセージファイル104に定義されている関数名およびメッセージ定義の中のメッセージID、メッセージ名の一意性の判断を行う(ステップS202)。   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).

そして、関数宣言、メッセージ定義、インクルード宣言の記述に文法エラーがあった場合、あるいは関数名、メッセージID、メッセージ名のいずれかが重複している場合には、ユーザに構文エラーである旨のメッセージを通知し処理を終了する(ステップS203、S204)。   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).

構文解析後、コード生成部103は、メッセージファイル104の記述内容から、ヘッダ106と、サーバスケルトン105と、クライアントスタブ107を生成する。具体的には、メッセージファイル104のインクルード宣言とC言語記述とをヘッダ106にそのまま転記し、メッセージファイル104のメッセージ定義に記述されているメッセージ構造体をヘッダ106にコピーする(ステップS205)。   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).

また、コード生成部103は、メッセージファイル104の関数宣言から関数ハンドラ名を自動生成し(たとえば、関数名abcの場合、関数ハンドラ名をabc_handlerとして生成する)、生成された関数ハンドラ名をサーバスケルトン内に登録する。そして、関数ハンドラの処理内に、引数受け渡しの記述を行うとともに、戻り値領域の生成システムコールの発行を記述する。そして、関数ハンドラの実際の処理内容を記述する実装記述部の欄を空欄とし、その実装記述部の後に、戻り値送信と戻り値領域解放の各システムコールの発行を記述する(ステップS206)。   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).

また、コード生成部103は、メッセージファイル104に記述された関数宣言ごとに、関数名と引数の記述をクライアントスタブ107に登録し、その関数の処理内に、関数コールメッセージ生成コールと関数ハンドラの呼び出しと戻り値解放の各システムコールを記述する(ステップS207)。なお、関数ハンドラ呼び出しには、発行した関数の戻り値の待ち受ける関数戻り値待ちシステムコールが内部的に発行されるようになっている。   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.

このようにタブジェネレータにより、クライアントスタブ107とサーバスケルトン105とヘッダ106を生成したら、次にサーバオブジェクトおよびクライアントオブジェクトを完成させる。サーバプログラムの開発者は、サーバスケルトン105の関数ハンドラの実装記述部(空欄)に、関数ハンドラで行うべき処理内容をエディタなどを利用して記述し、サーバスケルトン105をヘッダ106とともにコンパイルしてサーバスタブオブジェクトを生成する。   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.

また、サーバスケルトン105に登録した関数ハンドラを宣言するとともに、クライアントプロセスとの間でメッセージファイル104に記述されたメッセージの送受信を行うメッセージハンドラ、エラー処理を行うエラーハンドラ、サーバの初期化、サーバディスパッチャ起動等のシステムコールの発行を記述したサーバソースファイルを作成してコンパイルし、サーバスタブオブジェクトとリンクして、サーバプログラムを完成させる。   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 startup, and link with the server stub object to complete the server program.

一方、クライアントスタブ107はヘッダ106とともにコンパイルしてクライアントスタブオブジェクトを生成する。サーバプロセスごとにクライアントスタブオブジェクトを生成し、生成した複数のクライアントスタブオブジェクトをライブラリとする。   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.

また、関数の発行、関数ハンドラの宣言、エラー処理を行うエラーハンドラの宣言、クライアントプロセスとの間でメッセージファイル104に記述されたメッセージの送受信を行うメッセージハンドラ、およびクライアントプロセスの初期化やクライアントディスパッチャ起動等のシステムコールの発行を記述したクライアントプログラムを作成してコンパイルし、スタブのライブラリとリンクすることによりクライアントプログラムを完成させる。   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.

図7は、クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。なお、サーバプログラムとクライアントプログラムは実際は実行可能形式のオブジェクトファイルであるが、図7では、説明の都合上いずれもソースコードで表示している。   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.

クライアントプログラムからサーバプログラムに対して、たとえばOpen関数をコールすると、クライアントスタブオブジェクトで定義されたOpenが呼び出される(ステップS701)。そして、このスタブのOpenの処理の中で、Openの関数ハンドラOpen_handlerがサーバプログラムに対してコールされる(ステップS702)。   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).

サーバプログラムでは、クライアントスタブオブジェクトから関数ハンドラOpen_handlerの発行を受け取って、サーバスタブオブジェクトに登録されているOpen_handlerの実装記述部に記述されている処理を実行し(ステップS703)、その実行結果をクライアントスタブへ戻り値として返す(ステップS704)。クライアントプログラムでは、この戻り値をクライアントスタブから受け取って(ステップS705)、次の処理へ移行する。   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.

このように実施の形態1のスタブジェネレータでは、メッセージファイル104に関数宣言を記述することによりクライアントスタブ107とサーバスケルトン105を容易に生成することができる。しかも生成されるサーバスケルトン105の実装記述部は空欄となっているので、プログラム開発者は必要に応じて関数の処理内容を容易に変更するができる。このため複合機に可変性をもたせることができるとともに、多種多様な機能を実現させることができる。さらに、クライアントプログラムの開発を、サードベンダーなどの他社が行う場合でも、クライアントプログラムには提供される関数コールを記述するだけでプロセス間通信が可能となるので、内部の通信プロトコルの隠蔽性を保つことが可能となる。   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.

また、実施の形態1のスタブジェネレータでは、プロセス間通信を関数コールで実現しているので、ジョブの並列実行をスレッドで実現した場合でも、高速なプロセス間通信が可能となる。また、関数からの戻り値によってスレッド間の同期をとることができるので、同期のための処理プログラムを別途作成する必要がなくなり、プログラム開発の労力を低減することができる。   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.

(実施の形態2)
実施の形態1のスタブジェネレータは、複合機で動作するプロセスやスレッドを特に限定しないものであったが、この実施の形態2のスタブジェネレータは、複合機で動作するコントロールサービスをサーバプロセスとした場合のサーバスケルトン、クライアントスタブおよびヘッダの生成を行うものである。
(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.

実施の形態2のスタブジェネレータの構成は、図1に示す実施の形態1のスタブジェネレータの構成と同様であり、またスタブジェネレータによるクライアントスタブ、サーバスケルトンおよびヘッダの生成処理も図2に示す実施の形態1のスタブジェネレータによる処理手順と同様であるので説明を省略する。   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.

ここで、図8は、実施の形態2のスタブジェネレータで生成したサーバプロセス、クライアントプロセスが動作する複合機のソフトウェア構成を示すブロック図である。図8に示すように、複合機は、白黒ラインプリンタ(B&W LP)801と、カラーラインプリンタ(Color LP)802と、その他ハードウェアリソース803などを有するとともに、ソフトウェア群810はプラットホーム820およびアプリケーション830からなる。   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.

プラットホーム820は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)823と、UNIX(登録商標)などの汎用OS821とを有する。   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 (registered trademark).

コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)822と、ECS(エンジンコントロールサービス)824と、MCS(メモリコントロールサービス)825と、OCS(オペレーションパネルコントロールサービス)826と、FCS(ファックスコントロールサービス)827と、NCS(ネットワークコントロールサービス)828とから構成される。   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.

SCS822はアプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御を行うものであり、ECS824は、白黒ラインプリンタ(B&W LP)801、カラーラインプリンタ(Color LP)802、その他ハードウェアリソース803などのエンジンを制御するものである。   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.

MCS825は、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行うものである。OCS826は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールである。   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.

FCS827は、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供するものである。   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.

NCS828は、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行うものである。   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.

アプリケーション830は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ811と、コピー用アプリケーションであるコピーアプリ812と、ファクシミリ用アプリケーションであるファックスアプリ813と、スキャナ用アプリケーションであるスキャナアプリ814と、ネットワークファイル用アプリケーションであるネットファイルアプリ815と、工程検査用アプリケーションである工程検査用アプリ816とを有している。   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.

これらの各コントロールサービスと各アプリとは、RPC(Remote ProcessorCall)を利用したプロセス間通信によって相互に各種データを送受信している。実施の形態2のスタブジェネレータは、このようなプロセス間通信を関数コールで実現するためのクライアントスタブおよびサーバスケルトンを生成するものである。   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.

次に、ECS824をサーバプロセスとして、ECS824の機能を利用する場合のサーバスケルトンおよびクライアントスタブを生成する処理について説明する。   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.

図9は、サーバプロセスとしてECS824の機能を利用する場合のメッセージファイルの一例を示す説明図である。図9に示すように、メッセージファイルには、ジョブハンドル、ジョブ実行可否通知、ジョブエンド通知等のメッセージ定義を行うとともに、関数宣言として、ジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求等の関数宣言を行う。   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.

そして、実施の形態1と同様に、このメッセージファイルをスタブジェネレータに入力して実行すると、図10に示すクライアントスタブとサーバスケルトンが生成され、図11に示すヘッダが生成される。図10に示すように、サーバスケルトンには、ジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求に対する関数ハンドラが実装記述部を空欄の状態で記述され、クライアントスタブには、これらの関数ハンドラコールが記述される。また、図11に示すように、ヘッダにはジョブハンドル、ジョブ実行可否通知、ジョブエンド通知等のメッセージが登録される。   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.

そして、このように生成されたクライアントスタブとサーバスケルトンとヘッダから、実施の形態1と同様にクライアントプログラムとサーバプログラムを生成する。たとえば、クライアントプログラムとしてコピーアプリ812を利用する場合には、コピーアプリ812のソースファイルにジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求等の関数コールを記述してコンパイルおよびクライアントスタブオブジェクトとのリンクを行ってコピーアプリ812を生成する。   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.

これにより、コピーアプリ812からECS824に対して、コピー動作のジョブに関するジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求を関数コールとしたコピーアプリ812とECS824との間のプロセス間通信を実現することができる。また、ECS824からコピーアプリ812に対してジョブ実行可否通知、ジョブエンド通知等のメッセージによるプロセス間通信が可能となる。   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.

また、コントロールサービス間のプロセス間通信としては、たとえばFCS827のソースファイルにジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求等の関数コールを記述して、同様にコンパイルおよびクライアントスタブオブジェクトとのリンクを行ってFCS827を生成すると、ファクシミリ動作に関するジョブオープン要求、ジョブ動作モード設定、ジョブエントリー要求、ジョブスタート要求、ジョブクローズ要求を関数コールとしたFCS827とECS824との間のプロセス間通信を実現することができる。   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.

次に、FCS827をサーバプロセスとして、FCS827の機能を利用する場合のサーバスケルトンおよびクライアントスタブを生成する処理について説明する。この場合にも、ECS824をサーバプロセスとする場合と同様にメッセージファイルに関数宣言とメッセージ定義を行う。FCS824をサーバプロセスとする場合には、送信スタート、送信モード変更等の関数宣言を行うとともに、スキャンパラメータ通知等のメッセージ定義を行う。   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.

そして、実施の形態1と同様に、このメッセージファイルをスタブジェネレータに入力して実行すると、クライアントスタブとサーバスケルトンとヘッダとが生成される。ECS824をサーバプロセスとした場合と同様に、サーバスケルトンには、関数宣言を行った送信スタート、送信モード変更に対する関数ハンドラが実装記述部を空欄の状態で記述され、クライアントスタブには、これらの関数ハンドラコールが記述される。また、ヘッダにはメッセージ定義を行ったスキャンパラメータ通知等のメッセージが登録される。   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.

そして、このように生成されたクライアントスタブとサーバスケルトンとヘッダから、実施の形態1と同様にクライアントプログラムとサーバプログラムを生成する。たとえば、クライアントプログラムをECS824とした場合のプロセス間通信としては、ECS824のソースファイルに送信スタート、送信モード変更等の関数コールを記述して、同様にコンパイルおよびクライアントスタブオブジェクトとのリンクを行ってECS824を生成すると、ファクシミリ動作に関する送信スタート、送信モード変更を関数コールとしたECS824とFCS827との間のプロセス間通信を実現することができる。また、FCS827からECS824に対してスキャンパラメータ通知等のメッセージによるプロセス間通信が可能となる。   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.

次に、MCS825をサーバプロセスとして、MCS825の機能を利用する場合のサーバスケルトンおよびクライアントスタブを生成する処理について説明する。この場合にも、ECS824をサーバプロセスとする場合と同様にメッセージファイルに関数宣言とメッセージ定義を行う。   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.

MCS825をサーバプロセスとする場合には、メッセージファイルにメモリ画像情報要求、ファイル生成要求、ページ生成要求、ページ情報登録、ページオープン要求、ページクローズ要求、ページ情報要求、ページ削除要求、ファイル情報登録、ファイルクローズ要求、ファイルオープン要求、ファイル削除要求、ワークエリア獲得要求、ワークエリア削除要求、分割読み出し要求等の関数宣言を行うとともに、ジョブエンド通知等のメッセージ定義を行う。   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.

そして、実施の形態1と同様に、このメッセージファイルをスタブジェネレータに入力して実行すると、クライアントスタブとサーバスケルトンとヘッダとが生成される。ECS824をサーバプロセスとした場合と同様に、サーバスケルトンには、関数宣言を行ったメモリ画像情報要求、ファイル生成要求、ページ生成要求、ページ情報登録、ページオープン要求、ページクローズ要求、ページ情報要求、ページ削除要求、ファイル情報登録、ファイルクローズ要求、ファイルオープン要求、ファイル削除要求、ワークエリア獲得要求、ワークエリア削除要求、分割読み出し要求に対する関数ハンドラが実装記述部を空欄の状態で記述され、クライアントスタブには、これらの関数ハンドラコールが記述される。また、ヘッダには、メッセージ定義を行ったジョブエンド通知等のメッセージが登録される。   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.

そして、このように生成されたクライアントスタブとサーバスケルトンとヘッダから、実施の形態1と同様にクライアントプログラムとサーバプログラムを生成する。たとえば、クライアントプログラムをECS824とした場合のプロセス間通信としては、ECS824のソースファイルにメモリ画像情報要求等の関数コールを記述して、ECS824を生成すると、プリンタ動作におけるメモリ確保のためメモリ画像情報要求を関数コールとしたECS824とMCS825との間のプロセス間通信を実現することができる。   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.

また、クライアントプログラムをスキャナアプリ814とした場合のプロセス間通信としては、たとえばスキャナアプリ814のソースファイルにファイル生成要求、ページ情報登録、ページオープン要求、ページクローズ要求、ページ情報要求、ページ削除要求、ファイル情報登録、ファイルクローズ要求、ファイルオープン要求、ファイル削除要求、ワークエリア獲得要求、ワークエリア削除要求、分割読み出し要求等の関数コールを記述して、スキャナアプリ814を生成すると、スキャナ動作における各要求を関数コールとしたスキャナアプリ814とMCS825との間のプロセス間通信を実現することができる。   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.

さらに、クライアントプログラムをECS824とした場合のプロセス間通信としては、たとえばECS824のソースファイルにページ生成要求、ページ情報登録、ページクローズ要求、ページ情報要求等の関数コールを記述して、ECS824を生成すると、複数ページのスキャナ動作における各要求を関数コールとしたECS824とMCS825との間のプロセス間通信を実現することができる。   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.

このように実施の形態2のスタブジェネレータでは、メッセージファイルに関数宣言を記述することにより、アプリケーションなどのクライアントスタブ107とコントロールサービスなどのサーバスケルトン105を容易に生成することができる。また、スタブジェネレータで生成されるサーバスケルトンの実装記述部は空欄となっているので、プログラム開発者は必要に応じて関数の処理内容を容易に変更することができ、システムに可変性を持たせることができる。さらに、アプリケーションプログラムの開発を、サードベンダーなどの他社が行う場合でも、アプリケーションプログラムには提供される関数コールを記述するだけでプロセス間通信が可能となるので、内部の通信プロトコルの隠蔽性を保つことができる。   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.

また、実施の形態2のスタブジェネレータでは、コントロールサービス間またはコントロールサービスとアプリケーション間のプロセス間通信を関数コールで実現することができ、ジョブの並列実行をプロセス内の複数のスレッドを起動させることにより実現した場合でも、高速なプロセス間通信が可能となる。   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.

さらに、実施の形態2のスタブジェネレータでは、関数からの戻り値によってスレッド間の同期をとることができるので、同期処理を別途設ける必要がなくなり、プログラム開発の労力を低減することができる。   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.

この発明の実施の形態1のスタブジェネレータの機能的構成を示すブロック図である。It is a block diagram which shows the functional structure of the stub generator of Embodiment 1 of this invention. 実施の形態1のスタブジェネレータにおけるサーバスケルトン、クライアントスタブおよびヘッダの生成処理のフローチャートである。6 is a flowchart of a server skeleton, client stub, and header generation process in the stub generator of the first embodiment. 実施の形態1のスタブジェネレータに入力するメッセージファイルの記述例を示す説明図である。6 is an explanatory diagram illustrating a description example of a message file input to the stub generator according to the first embodiment. FIG. 実施の形態1のスタブジェネレータにより生成されるクライアントスタブの一例を示す説明図である。6 is an explanatory diagram illustrating an example of a client stub generated by the stub generator according to the first embodiment. FIG. 実施の形態1のスタブジェネレータにより生成されるサーバスケルトンの一例を示す説明図である。6 is an explanatory diagram illustrating an example of a server skeleton generated by the stub generator according to the first embodiment. FIG. 実施の形態1のスタブジェネレータにより生成されるヘッダの一例を示す説明図である。6 is an explanatory diagram illustrating an example of a header generated by the stub generator according to the first embodiment. FIG. 実施の形態1において、クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。In Embodiment 1, it is explanatory drawing which shows the sequence of a call and a response with a server program when a function call is performed from a client program. 実施の形態2のスタブジェネレータで生成したサーバプロセス、クライアントプロセスが動作する複合機のソフトウェア構成を示すブロック図である。FIG. 10 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. 実施の形態2において、サーバプロセスとしてECSの機能を利用する場合のメッセージファイルの一例を示す説明図である。In Embodiment 2, it is explanatory drawing which shows an example of the message file in the case of utilizing the function of ECS as a server process. 実施の形態2のスタブジェネレータで生成されたクライアントスタブとサーバスケルトンとヘッダの一例を示す説明図である。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. 実施の形態2のスタブジェネレータで生成されたヘッダの一例を示す説明図である。12 is an explanatory diagram illustrating an example of a header generated by a stub generator according to a second embodiment. FIG.

符号の説明Explanation of symbols

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
DESCRIPTION OF SYMBOLS 101 Input part 102 Syntax analysis part 103 Code generation part 104 Message file 105 Server skeleton 106 Header 107 Client stub 800 MFP 801 Monochrome line printer 802 Color line printer 803 Hardware resource 810 Software group 811 Printer application 812 Copy application 813 Fax application 814 Scanner application 815 Net file application 816 Process inspection application 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 (8)

印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムとを備えた画像情報処理装置に実行させ、プロセス間通信を担うプロセス間通信プログラムであって、
クライアントプロセスとなる前記アプリケーションによって、サーバプロセスになる前記プログラムに対する前記画像情報処理にかかる処理要求または設定要求の関数の呼び出しを行う関数呼び出しステップ、
を前記画像情報処理装置に実行させるプロセス間通信プログラム。
An application for image information processing using hardware resources having a printing unit or an imaging unit, an operating system, and a program that operates on the operating system and is controlled by the plurality of applications to control the hardware resources An inter-process communication program for executing inter-process communication,
A function calling step for calling a function of a processing request or a setting request for the image information processing for the program to be a server process by the application to be a client process;
An inter-process communication program for causing the image information processing apparatus to execute.
前記関数呼び出しステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の呼び出しを行うことを特徴とする請求項1に記載のプロセス間通信プログラム。   The function call step calls a job control function that makes a processing request or a setting request to an engine control service that controls the engine as the hardware resource while being the server process. Interprocess communication program. 前記関数呼び出しステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の呼び出しを行うことを特徴とする請求項1または2に記載のプロセス間通信プログラム。   2. The function calling step calls a memory control function that makes a processing request or a setting request to a memory control service that controls the memory and hard disk as the hardware resource as well as the server process. Or the inter-process communication program of 2. 前記関数呼び出しステップは、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の呼び出しを行うことを特徴とする請求項1〜3のいずれか一つに記載のプロセス間通信プログラム。   The function calling step calls a fax communication control function that makes 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. The interprocess communication program according to any one of claims 1 to 3. 印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションと、
オペレーティングシステムと、
前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムと、を備え、
前記アプリケーションは、サーバプロセスになる前記プログラムに対する前記画像情報処理にかかる処理要求または設定要求の関数の呼び出しを行う関数呼び出し手段、
を備えたことを特徴とする画像情報処理装置。
An application for image information processing using hardware resources having a printing unit or an imaging unit;
An operating system,
A program that operates on the operating system and is accessed from a plurality of the applications to control the hardware resources,
The application is a function calling means for calling a function of a processing request or a setting request related to the image information processing for the program to be a server process,
An image information processing apparatus comprising:
前記関数呼び出し手段は、前記サーバプロセスになるとともに前記ハードウェア資源としてのエンジンを制御するエンジンコントロールサービスに対する処理要求または設定要求を行うジョブ制御関数の呼び出しを行うことを特徴とする請求項5に記載の画像情報処理装置。   6. The function calling means calls a job control function that makes 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. Image information processing apparatus. 前記関数呼び出し手段は、前記サーバプロセスになるとともに前記ハードウェア資源としてのメモリおよびハードディスクを制御するメモリコントロールサービスに対する処理要求または設定要求を行うメモリ制御関数の呼び出しを行うことを特徴とする請求項5または6に記載の画像情報処理装置。   6. The function calling means calls a memory control function that makes a processing request or a setting request to a memory control service that controls the memory and hard disk as the hardware resource as well as the server process. Or the image information processing apparatus of 6. 前記関数呼び出し手段は、前記サーバプロセスになるとともに前記ハードウェア資源としてのファックスコントロールユニットを利用するファックス通信を制御するファックスコントロールサービスに対する処理要求または設定要求を行うファックス通信制御関数の呼び出しを行うことを特徴とする請求項5〜7のいずれか一つに記載の画像情報処理装置。   The function calling means calls a fax communication control function that makes 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. The image information processing apparatus according to claim 5, wherein the image information processing apparatus is an image processing apparatus.
JP2007140166A 2007-05-28 2007-05-28 Inter-process communication program and image information processing apparatus Expired - Fee Related JP4500326B2 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001257042A Division 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

Publications (2)

Publication Number Publication Date
JP2007242052A true JP2007242052A (en) 2007-09-20
JP4500326B2 JP4500326B2 (en) 2010-07-14

Family

ID=38587456

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4500326B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053538A (en) * 2010-08-31 2012-03-15 Konica Minolta Business Technologies Inc Application sharing system and image forming apparatus

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03230217A (en) * 1990-02-06 1991-10-14 Ricoh Co Ltd Printer controller
JPH0951398A (en) * 1995-05-26 1997-02-18 Ricoh Co Ltd Device with scanner function, picture processing network system and picture processing method by the same and recording medium storing its program
JPH0955819A (en) * 1995-06-09 1997-02-25 Ricoh Co Ltd Time-division output control method for combined copying machine
JPH10269045A (en) * 1997-03-21 1998-10-09 Ricoh Co Ltd Network-distributed image processing system
JPH113296A (en) * 1997-06-12 1999-01-06 Matsushita Electric Ind Co Ltd Medium conversion system
JP2000112865A (en) * 1998-09-30 2000-04-21 Ricoh Co Ltd Interface structure for controlling office automation equipment
JP2001228991A (en) * 2000-02-18 2001-08-24 Matsushita Graphic Communication Systems Inc Image processor and its control method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03230217A (en) * 1990-02-06 1991-10-14 Ricoh Co Ltd Printer controller
JPH0951398A (en) * 1995-05-26 1997-02-18 Ricoh Co Ltd Device with scanner function, picture processing network system and picture processing method by the same and recording medium storing its program
JPH0955819A (en) * 1995-06-09 1997-02-25 Ricoh Co Ltd Time-division output control method for combined copying machine
JPH10269045A (en) * 1997-03-21 1998-10-09 Ricoh Co Ltd Network-distributed image processing system
JPH113296A (en) * 1997-06-12 1999-01-06 Matsushita Electric Ind Co Ltd Medium conversion system
JP2000112865A (en) * 1998-09-30 2000-04-21 Ricoh Co Ltd Interface structure for controlling office automation equipment
JP2001228991A (en) * 2000-02-18 2001-08-24 Matsushita Graphic Communication Systems Inc Image processor and its control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053538A (en) * 2010-08-31 2012-03-15 Konica Minolta Business Technologies Inc Application sharing system and image forming apparatus

Also Published As

Publication number Publication date
JP4500326B2 (en) 2010-07-14

Similar Documents

Publication Publication Date Title
JP2004098658A (en) Image forming apparatus, method of processing of lapping, and program
JP7098427B2 (en) Information processing equipment, control methods and programs for information processing equipment
JP4344203B2 (en) Image forming apparatus and information display method
JP2016149805A (en) Image forming apparatus, image forming method, and program
US20030140174A1 (en) Method for generating application for information processing apparatus and image forming apparatus
JP2019070969A (en) Information processing device, control method thereof, and program
JP2009064420A (en) Image forming apparatus and information display method
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
JP2004129246A (en) Image forming apparatus and application information acquisition method
JP4676977B2 (en) Image forming apparatus, application information acquisition method, and program
JP2004127253A (en) Information processing apparatus and version check method
JP4133085B2 (en) Image forming apparatus and customized program test method
JP4334214B2 (en) Image forming apparatus, application program, and recording medium
JP5036770B2 (en) Apparatus, wrapping processing method, and program
KR101405920B1 (en) Job control apparatus and multi-function product, and operating method thereof
JP5445051B2 (en) Information processing apparatus, API program, and log environment providing method
JP2010218469A (en) Information processor, information processing method, program and recording medium
JP2009043078A (en) Simulation program and recording medium
JP5046818B2 (en) Image forming apparatus, data processing method in image forming apparatus, and data processing program
JP4677054B2 (en) Image forming apparatus, program, recording medium, and method
JP2004129220A (en) Image forming apparatus and version check method
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

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091221

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100416

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4500326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees