JP2007012057A - Image forming device, and communication method between processes - Google Patents
Image forming device, and communication method between processes Download PDFInfo
- Publication number
- JP2007012057A JP2007012057A JP2006172507A JP2006172507A JP2007012057A JP 2007012057 A JP2007012057 A JP 2007012057A JP 2006172507 A JP2006172507 A JP 2006172507A JP 2006172507 A JP2006172507 A JP 2006172507A JP 2007012057 A JP2007012057 A JP 2007012057A
- Authority
- JP
- Japan
- Prior art keywords
- service
- agent
- image forming
- message
- forming apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Control Or Security For Electrophotography (AREA)
- Computer And Data Communications (AREA)
- Facsimiles In General (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
Description
この発明は、画像形成装置およびプロセス間通信方法に係り、特に複数のプロセスがサーバプロセスまたはクライアントプロセスとしてプロセス間通信を行う画像形成装置およびプロセス間通信方法に関する。 The present invention relates to an image forming apparatus and an interprocess communication method, and more particularly to an image forming apparatus and an interprocess communication method in which a plurality of processes perform interprocess communication as a server process or a client process.
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が一般的に知られている。 2. Description of the Related Art In recent years, an image forming apparatus (hereinafter, referred to as “multifunction machine”) in which functions of apparatuses such as a printer, a copy machine, a facsimile machine, and a scanner are housed in a single housing is generally known.
この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する3種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。 This multifunction device is provided with a display unit, a printing unit, an imaging unit, and the like in one casing, and is provided with three types of software respectively corresponding to a printer, a copying machine, and a facsimile machine. It operates as a copy, scanner or facsimile machine.
従来の複合機では、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア(汎用OSを含む)をそれぞれ別個に設ける構成となっており、各ソフトウェアの開発に多大の時間を要する。 A conventional multi-function machine has a configuration in which software (including a general-purpose OS) corresponding to a printer, a copy, a scanner, and a facsimile machine is provided separately, and development of each software requires a lot of time.
このため、出願人は、ハードウェア・インターフェースをドライブするドライバと呼ばれるソフトウェア群と、メモリ/タイマなどの共通なハードウェア資産を効率良く使用するためのマネージャ・ソフトウェア群や各アプリケーションで共通に使用できるシステム・ユーティリティ・ソフトウェア群と、これらのドライバ・ソフトウェア群,マネージャ・ソフトウェア群,ユーティリティ・ソフトウェア群を使用するプリンタ/スキャナ/FAX送信/FAX受信などの実アプリケーションとを備えた複合機(特開平9−51398号公報,特開平9−91102号公報参照)を発明した。 For this reason, the applicant can use the software group called the driver that drives the hardware interface, the manager software group for efficiently using the common hardware assets such as the memory / timer, and each application. A multi-function machine comprising a system utility software group and an actual application such as a printer / scanner / fax transmission / fax reception using these driver software group, manager software group, utility software group -51398 and JP-A-9-91102).
しかしながら、特開平9−51398号公報,特開平9−91102号公報に記載されている複合機は、ドライバ・ソフトウェア群,マネージャ・ソフトウェア群,ユーティリティ・ソフトウェア群がライブラリで構成されており、ハードウェア資源を実行制御する主体となり得なかった。 However, the multifunction peripherals described in JP-A-9-51398 and JP-A-9-91102 have a driver software group, a manager software group, and a utility software group configured by a library. It could not be a subject that controls the execution of resources.
そこで、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた複合機(特開2002−82806号公報参照)を発明した。 Accordingly, the applicant has a plurality of applications that have hardware resources used in image forming processing such as a display unit, a printing unit, and an imaging unit, and perform processing unique to each user service such as a printer, copy, or facsimile. When installing and providing user services by interposing between these applications and hardware resources, management, execution control and image formation processing of hardware resources that are shared by at least two of the applications are performed. A multi-function machine (see Japanese Patent Application Laid-Open No. 2002-82806) equipped with a platform comprising various control services to be invented.
なお、ユーザサービスとはユーザに提供する画像形成に係るサービスをいう。また、コントロールサービスとはアプリケーションに画像形成に係るハードウェア資源を提供するサービスをいう。 The user service is a service related to image formation provided to the user. The control service refers to a service that provides hardware resources related to image formation to an application.
この複合機によれば、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
このような複合機では、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスを有する構成となっているため、機能変更、機能追加、または将来的なハードウェア資源の追加、変更などに柔軟に対応すべく、アプリケーションごとあるいはコントロールサービスごとの追加、変更を容易に行えることが望まれる。また、ユーザサービスを提供する際に、各アプリケーションと各コントロールサービス間、あるいは各コントロールサービス間でサービスやデータの授受を円滑に行うことが必要となってくる。 Such a multi-function peripheral has a control service that provides services that are commonly required by at least two of the applications. Therefore, it is possible to change functions, add functions, or add or change hardware resources in the future. It is desirable to be able to easily add or change for each application or control service in order to respond flexibly to the above. Further, when providing a user service, it is necessary to smoothly exchange services and data between each application and each control service or between each control service.
すなわち、複合機は、プリンタ、コピー、ファクシミリ、スキャナなど多種の機能を備えたものであるが、その一部の機能に故障あるいは仕様変更などが生じた場合に、全てのアプリケーションまたは全てのコントロールサービスのモジュールを修正しなければならないと、作業の労力が過大となる。 In other words, a multifunction device has a variety of functions such as printers, copiers, facsimiles, scanners, etc., but if some of the functions fail or specification changes occur, all applications or all control services If you have to modify these modules, the work effort will be excessive.
また、将来的に、複合機に新たな機能を追加する場合でも一部の機能の追加のために全てのコントロールサービスや全てのアプリケーションのモジュール変更が必要となると、プログラム開発の労力が過大となってしまう。このため、複合機上で動作する各アプリケーションや各コントロールサービスのモジュールは互いにサービスやデータの送受信を実現としながらも、モジュール間の独立性を維持していることが必要となってくる。 Also, even if new functions are added to the MFP in the future, if it is necessary to change all control services and all application modules to add some functions, the program development effort will be excessive. End up. For this reason, it is necessary for each application and each control service module operating on the multifunction peripheral to maintain the independence between the modules while realizing the transmission and reception of services and data with each other.
言い換えれば、各アプリケーションや各コントロールサービスごとに独立性がないと、必要なアプリケーションや必要なコントロールサービスのみを提供することが困難となり、機能変更や機能追加などに柔軟に対応できるような複合機の構成に可変性を持たせることができないという問題がある。 In other words, if there is no independence for each application and each control service, it will be difficult to provide only the necessary applications and necessary control services, and a multifunction device that can flexibly respond to function changes and additions. There is a problem that the configuration cannot have variability.
また、各アプリケーションや各コントロールサービスごとに独立性がないと、モジュール間のデータの送受信の実現方法の開発も困難になる。さらにはアプリケーションやコントロールサービスごとの設計および構築が困難になり、その結果、多種多様な機能を提供することができないという問題がある。 Also, if there is no independence for each application or each control service, it will be difficult to develop a method for realizing data transmission / reception between modules. Furthermore, it becomes difficult to design and construct each application and control service, and as a result, there is a problem that a wide variety of functions cannot be provided.
とくに、複合機はプリンタ、コピー、スキャナ、ファックスなど多機能が搭載されたものであるため、ネットワークに接続してPC(Personal Computer)などから複数の機能を連続的に使用したい場合がある。しかしながら、従来の複合機では機能ごとのコマンドなどで別個に要求する必要がある。 In particular, since a multifunction peripheral is equipped with a multi-function such as a printer, a copy, a scanner, and a fax machine, there are cases where it is desired to use a plurality of functions continuously from a PC (Personal Computer) connected to a network. However, it is necessary for a conventional multifunction device to make a separate request with a command for each function.
また、複合機は提供可能なサービスがすべて統一されているわけではなく、例えばプリンタ機能とコピー機能のみを提供できる複合機やこれに加えてファックス送信機能を提供できる複合機などが存在する。このような提供機能の異なる複数の複合機をネットワークに接続した場合において、たとえば、ある複合機に対してファックス送信要求を行ったところ、その複合機ではファックス送信機能が搭載されていない場合、ユーザは改めて別の複合機に対してファックス送信要求を行わなければならない。 In addition, all the services that can be provided for a multifunction device are not unified. For example, there are multifunction devices that can provide only a printer function and a copy function, and multifunction devices that can provide a fax transmission function. When multiple MFPs with different provision functions are connected to the network, for example, when a fax transmission request is made to a certain MFP and the MFP does not have a fax transmission function, the user Needs to send a fax transmission request to another multifunction device.
このように、従来の複合機をネットワークに接続して使用する場合には、多種多様な機能を効率的に提供することができないという問題がある。 As described above, when a conventional multi-function peripheral is connected to a network and used, there is a problem that various functions cannot be efficiently provided.
この発明は上記に鑑みてなされたもので、可変性のあるアーキテクチャおよび多種多様な機能を実現することができるとともに、ソフトウェア開発効率の向上を図ることができる画像形成装置およびプロセス間通信方法を得ることを主な目的とする。 The present invention has been made in view of the above, and provides an image forming apparatus and an interprocess communication method capable of realizing a variable architecture and various functions and improving software development efficiency. The main purpose.
また、この発明はネットワークに画像形成装置を接続して使用する場合に、多種多様な機能を効率的に提供することができる画像形成装置およびプロセス間通信方法を得ることを目的とする。 Another object of the present invention is to provide an image forming apparatus and an interprocess communication method capable of efficiently providing a wide variety of functions when the image forming apparatus is connected to a network.
上記課題を解決するため、請求項1にかかる発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係るユーザサービスおよびコントロールサービスの処理を行う一または複数のプログラムとを有する画像形成装置であって、一または複数のサービス要求を含むエージェントを受信し、該エージェントのサービス要求ごとに一または複数の前記コントロールサービスを選定して、選定された前記コントロールサービスに対してサービス要求を行うエージェント処理手段を備えたことを特徴とする。
In order to solve the above-mentioned problem, an invention according to
この請求項1の発明によれば、サービスの提供を受ける側は複数のサービス要求を一度に行えば、必要なコントロールサービスが自律的に判断されるので、連続的なサービスの提供を効率よく行うことができる。 According to the first aspect of the present invention, if a service receiving side makes a plurality of service requests at a time, a necessary control service is autonomously determined, so that continuous service provision is efficiently performed. be able to.
また、複数のサービス要求を一度行えば連続的なサービスの提供を行えるので、個々のサービス要求ごとにネットワークを占有する必要がなくなり、ネットワークの負荷を軽減することができる。 Further, since a continuous service can be provided once a plurality of service requests are made, it is not necessary to occupy the network for each service request, and the load on the network can be reduced.
この請求項1にかかる発明において、コントロールサービスが動作している画像形成装置は、ユーザサービスおよびコントロールサービスを搭載可能であればその構成は限定されるものではない。 In the first aspect of the invention, the configuration of the image forming apparatus on which the control service is operating is not limited as long as the user service and the control service can be installed.
すなわち、当該画像形成装置は、サービスを提供するコントロールサービスが1つでも搭載されていれば良く、ユーザサービスが未搭載の画像形成装置や、コントロールサービスが1個のみ搭載されている画像形成装置も含まれる。 That is, the image forming apparatus only needs to have at least one control service for providing a service, and an image forming apparatus with no user service installed or an image forming apparatus with only one control service installed is also available. included.
また、請求項2にかかる発明は、前記エージェント処理手段は、前記サービス要求に必要なコントロールサービスが正常動作しているか否かを判断し、正常動作してない場合に、ネットワークを介して接続された他の画像形成装置に前記エージェントを送信することを特徴とする。
In the invention according to
この請求項2の発明によれば、サービス要求に必要なコントロールサービスを自己の画像形成装置だけでなくネットワーク上の画像形成装置からも自律的に判断しているので、サービスの提供を受ける側は、一つの画像形成装置に対しサービス要求を行えばネットワーク上の複数の画像形成装置にアクセスする必要がなく、効率的なサービスの提供を受けることができる。 According to the second aspect of the present invention, the control service necessary for the service request is autonomously determined not only from the own image forming apparatus but also from the image forming apparatus on the network. If a service request is made to one image forming apparatus, it is not necessary to access a plurality of image forming apparatuses on the network, and an efficient service can be provided.
また、サービスの提供を受ける側は、何度もネットワークを介して画像形成装置との間でメッセージの送受信を行う必要がなくなるので、ネットワークの負荷を軽減することができる。 In addition, the side receiving the service provision does not need to repeatedly send and receive messages to and from the image forming apparatus via the network, so the load on the network can be reduced.
また、請求項3にかかる発明は、前記エージェント処理手段は、さらに、前記サービス要求ごとに一または複数の前記ユーザサービスを選定して、選定された前記ユーザサービスに対してサービス要求を行うことを特徴とする。 According to a third aspect of the present invention, the agent processing means further selects one or a plurality of the user services for each service request and makes a service request for the selected user services. Features.
この請求項3の発明によれば、サービスの提供を受ける側は複数のサービス要求を一度に行えば、必要なユーザサービスが自律的に判断されるので、連続的なサービスの提供を効率よく行うことができる。 According to the third aspect of the present invention, if a service receiving side makes a plurality of service requests at a time, a necessary user service is autonomously determined, so that continuous service provision is efficiently performed. be able to.
また、連続的なサービスの提供を行えるので、個々のサービス要求ごとにネットワークを占有する必要がなくなり、ネットワークの負荷を軽減することができる。 Further, since continuous service can be provided, it is not necessary to occupy the network for each service request, and the load on the network can be reduced.
また、請求項4にかかる発明は、前記エージェント処理手段は、前記サービス要求に必要な前記ユーザサービスが正常動作しているか否かを判断し、正常動作していない場合に、ネットワークを介して接続された他の画像形成装置に前記エージェントを送信することを特徴とする。 According to a fourth aspect of the present invention, the agent processing means determines whether or not the user service required for the service request is operating normally. If the user service is not operating normally, the agent processing means connects via the network. The agent is transmitted to the other image forming apparatus.
この請求項4の発明によれば、サービス要求に必要なユーザサービスを自己の画像形成装置だけでなくネットワーク上の画像形成装置からも自律的に判断しているので、サービスの提供を受ける側は一つの画像形成装置に対しサービス要求を行えばネットワーク上の複数の画像形成装置にアクセスする必要がなく、効率的なサービスの提供を受けることができる。 According to the fourth aspect of the present invention, the user service required for the service request is autonomously determined not only from the own image forming apparatus but also from the image forming apparatus on the network. If a service request is made to one image forming apparatus, it is not necessary to access a plurality of image forming apparatuses on the network, and an efficient service can be provided.
また、サービスの提供を受ける側は、何度もネットワークを介して画像形成装置との間でメッセージの送受信を行う必要がなくなるので、ネットワークの負荷を軽減することができる。 In addition, the side receiving the service provision does not need to repeatedly send and receive messages to and from the image forming apparatus via the network, so the load on the network can be reduced.
また、請求項5にかかる発明は、前記ユーザサービスに含まれ、前記エージェント処理手段として動作するエージェントアプリをさらに備えたことを特徴とする。 The invention according to claim 5 further includes an agent application included in the user service and operating as the agent processing means.
この請求項5の発明によれば、コントロールサービスとエージェントアプリとのプロセス間通信をアプリケーションインタフェースを用いて行うことができ、エージェントアプリのソフトウェア開発労力を軽減することができる。 According to the fifth aspect of the present invention, inter-process communication between the control service and the agent application can be performed using the application interface, and the software development effort of the agent application can be reduced.
また、請求項6にかかる発明は、前記コントロールサービスは、ネットワークを介して接続された他の画像形成装置で動作するクライアントプロセスに対するサーバプロセスとして動作し、前記他の画像形成装置のクライアントプロセスに提供する一または複数のサービスを定義したメソッドを有するオブジェクトであることを特徴とする。 According to a sixth aspect of the present invention, the control service operates as a server process for a client process operating on another image forming apparatus connected via a network, and is provided to the client process of the other image forming apparatus. It is an object having a method that defines one or a plurality of services.
この請求項6の発明によれば、コントロールサービスはネットワーク上の他の画像形成装置で動作するプロセスをクライアントとしたサーバプロセスとしてメソッド実行によるサービスの提供によりプロセス間通信を実現することができ、同一の画像形成装置内のプロセスだけでなく、ネットワーク上の画像形成装置に対してもサービスの提供が可能となり、多種多様な機能を実現することができる。 According to the invention of claim 6, the control service can realize inter-process communication by providing a service by executing a method as a server process using a process operating on another image forming apparatus on the network as a client. Service can be provided not only to the processes in the image forming apparatus but also to the image forming apparatuses on the network, and various functions can be realized.
また、請求項7にかかる発明は、前記コントロールサービスの各プロセスは、前記他の画像形成装置のクライアントプロセスに提供するサービスを定義したメソッドを実行する一または複数のスレッドを生成するものであることを特徴とする。 In the invention according to claim 7, each process of the control service generates one or a plurality of threads for executing a method defining a service provided to a client process of the other image forming apparatus. It is characterized by.
この請求項7の発明によれば、ネットワーク上の他の画像形成装置で動作するアプリケーションなどのユーザサービスのプロセスに提供するサービスを並列実行させることができる。 According to the seventh aspect of the present invention, services provided to a user service process such as an application running on another image forming apparatus on the network can be executed in parallel.
このため、例えば、ネットワーク上の異なる複数の画像形成装置のクライアントプロセスから同時にサービス要求があった場合でも、実行制御の切り替えの速いスレッドでサービスを並列実行させるので、ネットワーク上の複数の画像形成装置へのサービスの提供を迅速に行うことが可能となる。 For this reason, for example, even when there is a service request simultaneously from client processes of a plurality of different image forming apparatuses on the network, the service is executed in parallel with a thread with fast switching of execution control. It is possible to provide services to
また、請求項8にかかる発明は、前記コントロールサービスは、前記他の画像形成装置で動作するユーザサービスをクライアントプロセスとしたサーバプロセスとして動作することを特徴とする。 The invention according to claim 8 is characterized in that the control service operates as a server process using a user service operating on the other image forming apparatus as a client process.
この請求項8の発明によれば、ネットワーク上の他の画像形成装置で動作するユーザサービスのプロセスに対してコントロールサービスの機能を提供することができる。 According to the eighth aspect of the present invention, it is possible to provide a control service function to a user service process operating on another image forming apparatus on the network.
また、コントロールサービスがネットワーク上の画像形成装置内に存在しない場合や使用できない場合でも、メソッド実行によって当該ネットワーク上の画像形成装置にコントロールサービスの機能を提供できるので、ネットワークを利用した複数の画像形成装置間でコントロールサービスの機能の共有化を実現することが可能となる。 Even when the control service does not exist in the image forming apparatus on the network or cannot be used, the function of the control service can be provided to the image forming apparatus on the network by executing the method. It becomes possible to share control service functions between devices.
また、請求項9にかかる発明は、前記コントロールサービスは、前記他の画像形成装置で動作するコントロールサービスをクライアントプロセスとしたサーバプロセスとして動作することを特徴とする。 The invention according to claim 9 is characterized in that the control service operates as a server process using a control service operating on the other image forming apparatus as a client process.
この請求項9の発明によれば、ネットワーク上の他の画像形成装置で動作するコントロールサービスに対してコントロールサービスの機能を提供することができる。 According to the ninth aspect of the present invention, the function of the control service can be provided to the control service that operates on another image forming apparatus on the network.
また、あるコントロールサービスがネットワーク上の画像形成装置内に存在しない場合や使用できない場合でも、メソッド実行によって当該ネットワーク上の画像形成装置にコントロールサービスの機能を提供できるので、ネットワークを利用した複数の画像形成装置間でコントロールサービスの機能の共有化を実現することが可能となる。 Even when a certain control service does not exist in the image forming apparatus on the network or cannot be used, the function of the control service can be provided to the image forming apparatus on the network by executing the method. It becomes possible to share the function of the control service between the forming apparatuses.
また、請求項10にかかる発明は、前記コントロールサービスは、前記他の画像形成装置で動作するコントロールサービスをサーバプロセスとしたクライアントプロセスとして動作することを特徴とする。
The invention according to
この請求項10の発明によれば、コントロールサービスはネットワーク上のコントロールサービスからサービスの提供を受けることができる。また、ネットワーク上の画像形成装置でコントロールサービスが使用できない場合でも、メソッド実行によるメッセージ送信というプロセス間通信によって、ネットワーク上の画像形成装置のコントロールサービスからのサービスの提供を受けることができるので、ネットワークを利用した複数の画像形成装置間でコントロールサービスの機能の共有化を実現することが可能となる。
According to the invention of
また、請求項11にかかる発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係るユーザサービスおよびコントロールサービスの処理を行う一または複数のプログラムとを有する画像形成装置でプロセス通信を行うプロセス間通信方法あって、一または複数のサービス要求を含むエージェントを受信するエージェント受信ステップと、前記エージェントのサービス要求ごとに一または複数の前記コントロールサービスのプロセスを選定して、選定された前記コントロールサービスのプロセスに対してサービス要求を行うエージェント処理ステップとを含んだことを特徴とする。 According to an eleventh aspect of the present invention, process communication is performed by an image forming apparatus having hardware resources used in image forming processing and one or a plurality of programs for processing user services and control services related to image forming. An inter-process communication method for performing an agent reception step of receiving an agent including one or more service requests, selecting one or more processes of the control service for each service request of the agent, and selecting the selected And an agent processing step for making a service request to the control service process.
この請求項11の発明によれば、サービスの提供を受ける側は複数のサービス要求を一度に行えば、必要なコントロールサービスのプロセスが自律的に判断されるので、連続的なサービスの提供を効率よく行うことができる。 According to the eleventh aspect of the present invention, if a service receiving side makes a plurality of service requests at a time, a necessary control service process is autonomously determined. Can be done well.
また、複数のサービス要求を一度行えば連続的なサービスの提供を行えるので、個々のサービス要求ごとにネットワークを占有する必要がなくなり、ネットワークの負荷を軽減することができる。 Further, since a continuous service can be provided once a plurality of service requests are made, it is not necessary to occupy the network for each service request, and the load on the network can be reduced.
本発明によれば、可変性のあるアーキテクチャおよび多種多様な機能を実現することができるとともに、ソフトウェア開発効率の向上を図ることができる。また、本発明によれば、ネットワークに画像形成装置を接続して使用する場合に、多種多様な機能を効率的に提供することができる。 According to the present invention, it is possible to realize a variable architecture and various functions, and to improve software development efficiency. In addition, according to the present invention, when an image forming apparatus is connected to a network and used, various functions can be efficiently provided.
以下に添付図面を参照して、この発明にかかる画像形成装置およびプロセス間通信方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の構成を示すブロック図である。図1に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、スキャナ103と、ファクシミリ104と、ハードディスク装置(HDD)105と、ネットワークインタフェース106などのハードウェアリソースを有するとともに、プラットホーム120とアプリケーション130とから構成されるソフトウェア群110を備えている。
Exemplary embodiments of an image forming apparatus and an interprocess communication method according to the present invention will be explained below in detail with reference to the accompanying drawings.
(Embodiment 1)
FIG. 1 is a block diagram showing a configuration of an image forming apparatus (hereinafter referred to as “multifunction machine”) according to
プラットホーム120は、アプリケーション130からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
The
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。 The control service is formed of a plurality of service modules, and includes an SCS (system control service) 122, an ECS (engine control service) 124, an MCS (memory control service) 125, an OCS (operation panel control service) 126, and an FCS. (Fax Control Service) 127 and NCS (Network Control Service) 128.
なお、このプラットホーム120は、あらかじめ定義されたメソッドにより前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
The
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
The general-
SRM123は、SCS122とともにシステムの制御およびリソースの管理を行うものであり、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
The
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(たとえば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
Specifically, the
SCS122は、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御を行うものである。ECS124は、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ103、ファクシミリ104からなるハードウェアリソースのエンジンを制御するものである。
The
MCS125は、画像メモリの取得および解放、HDDの利用、画像データの圧縮および伸張などを行うものである。OCS126は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールである。
The
FCS127は、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供するものである。FCS127には、そのサブプロセスであるFCUハンドラ(FCUH)129が起動される。このFCUH129は、FCS127からの指令によりファクシミリ送受信の際にファクシミリエンジンのデバイスドライバを制御するものである。
NCS128は、ネットワークI/Oを必要とするアプリケーション130に対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーション130に振り分けたり、アプリケーション130からデータをネットワーク側に送信する際の仲介を行うものである。
The
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116とを有している。
The
これらの各コントロールサービスとSRM123と各アプリケーション130とは、一または複数のメソッドを有するオブジェクトであり、このオブジェクトを起動することによりそれぞれプロセスとして汎用OS121上に生成されて実行される。そして、各プロセス内部には、複数のスレッドが起動され、汎用OS121の管理下でこれらのスレッドのCPU占有時間を切り替えることにより並列実行が実現されている。このため、プロセス切り替えによる並列実行と比較して、並列実行時の処理速度の向上が図られている。
Each of these control services, the
各アプリプロセスと各コントロールサービスプロセスとは、メソッドの実行によるプロセス間通信によってメッセージの送受信が行われる。図2は、実施の形態1の複合機上で動作するサーバプロセスとクライアントプロセスの関係を示すブロック図である。ここで、サーバプロセス202とは、クライアントプロセス201からの要求によりクライアントプロセス201に対しサービスを提供するプロセスをいう。クライアントプロセス201とは、サーバプロセス202に対して要求を行うことにより、サーバプロセス202からサービスの提供を受けるプロセスをいう。
Messages are transmitted and received between each application process and each control service process by inter-process communication by executing a method. FIG. 2 is a block diagram illustrating a relationship between a server process and a client process that operate on the multifunction peripheral according to the first embodiment. Here, the
実施の形態1の複合機100では、上述のコピーアプリ112、プリンタアプリ111、スキャナアプリ114、ファックスアプリ113などのアプリケーション130のプロセス、およびECS124、MCS125、FCS127、NCS128などのコントロールサービスのプロセスが主としてクライアントプロセス201となり、コントロールサービスおよびSRM123のプロセスが主としてサーバプロセス202となる。
In the
すなわち、各アプリケーション130がコントロールサービスからサービスの提供を受ける場合には、各アプリケーション130のプロセスがクライアントプロセス201として動作し、コントロールサービスがサーバプロセス202として動作する。また、コントロールサービス間でサービスの要求と提供を行う場合には、サービス要求を行うコントロールサービスがクライアントプロセス201として動作し、サービス提供を行うコントロールサービスがサーバプロセス202として動作する。
That is, when each
なお、これらの例に限られず、各アプリケーション130のプロセス、コントロールサービスのプロセス、SRMプロセス123は、いずれもサーバプロセス202およびクライアントプロセス201となることができる。
Not limited to these examples, the process of each
すなわち、これらのプロセスは、他のいずれかのプロセスに対しサービスを要求する場合にクライアントプロセス201として動作する一方、他のプロセスからの要求によりサービスを提供する場合にサーバプロセス202として動作することになる。
That is, these processes operate as the
これらのアプリケーション130、コントロールサービスおよびSRM123のプロセスには、いずれも複数のスレッドが起動している。このため、他のプロセスからの要求を受けた場合には、当該他のプロセスをクライアントプロセス201としたサーバプロセス202として動作するが、これと同時に、他のプロセスに対してサービスを要求する場合に当該他のプロセスをサーバプロセス202としたクライアントプロセス201として動作する。
A plurality of threads are activated in all the processes of the
また、各プロセスは、同時に複数のプロセスをクライアントプロセス201としたサーバプロセス202となることも可能である。さらに、各プロセスは、同時に複数のサーバプロセス202からのサービスの提供を受けるクライアントプロセス201となることも可能である。
Each process can also be a
図2に示す通り、クライアントプロセス201は、サーバプロセス202のサービスを要求するために、クライアントプロセス201内のスレッドからサーバプロセス202に対してサービス要求メッセージを送信するサービス要求メソッドを実行する。
As shown in FIG. 2, the
このサービス要求メッセージを受信したサーバプロセス202は、サービス実行メソッドを実行する。このサービス実行メソッドは、クライアントプロセス201から要求されたサービスを実行し、その実行結果を実行結果メッセージとして要求元のクライアントプロセス201に送信するメソッドである。
The
図2の例では、クライアントプロセス201がサービスAの提供を受けるために、サービスA要求メソッドを実行してサービスA要求メッセージをサーバプロセス202に送信している。そして、サーバプロセス202がこのサービスA要求メッセージを受信すると、サービスA実行メソッドを実行する。サーバプロセス202は、サービスA実行メソッドの実行により、(1)サービスAの処理を実行し、ついで、(2)サービスAの実行結果をサービスA実行結果メッセージとしてクライアントプロセス201に送信する。
In the example of FIG. 2, the
このように、サーバプロセス202とクライアントプロセス201のプロセス間通信は、メソッド実行によるサービス要求メッセージの送信、メソッド実行によるサービスの提供およびサービス実行結果メッセージ送信という一連の処理によって実現されている。
As described above, the inter-process communication between the
図3は、各アプリケーションおよび各コントロールサービスのオブジェクトであらかじめ定義されているメソッドを示す説明図である。図3に示すように、各オブジェクトには、主としてクライアントプロセス201となったときにサーバプロセス202に対しサービスの提供を依頼するためにサービス要求メッセージを送信するサービス要求メソッドと、クライアントプロセス201からのサービス要求メッセージを受信してサーバプロセス202として動作するときにサービス提供の処理を実行しその実行結果メッセージを要求元のクライアントプロセス201に送信するサービス実行メソッドとが定義されている。
FIG. 3 is an explanatory diagram showing methods defined in advance for each application and each control service object. As shown in FIG. 3, each object mainly includes a service request method for sending a service request message to the
例えば、ECS124のオブジェクトでは、サービス要求メソッドとしてメモリ画像情報取得要求メソッド、メモリ確保要求メソッド、資源獲得要求メソッドなどが登録されており、一方、サービス実行メソッドとして、ジョブ動作モード設定メソッド、ジョブスタートメソッド、ジョブオープンメソッドおよびジョブクローズメソッドなどが登録されている。
For example, in the
なお、ジョブ動作モード設定メソッド、ジョブスタートメソッド、ジョブオープンメソッドおよびジョブクローズメソッドは、それぞれクライアントプロセス201からジョブ動作モード設定要求メッセージ、ジョブスタート要求メッセージ、ジョブオープン要求メッセージ、ジョブクローズ要求メッセージを受信したときに実行される。
The job operation mode setting method, job start method, job open method, and job close method received the job operation mode setting request message, job start request message, job open request message, and job close request message from the
また、プリンタアプリ111のオブジェクトには、サービス要求メソッドとしてジョブ動作設定要求メソッド、ジョブスタート要求メソッドなどが登録されている。なお、図3に示す他のコントロールサービスやSRM123、および他のアプリケーション130の各オブジェクトについても同様にサービス要求メソッドとサービス実行メソッドが登録されている。
In the object of the
つぎに、実施の形態1の複合機100で実際に行われるプリンタ動作の一例について説明する。図4は、実施の形態1の複合機でプリンタ動作を行う場合のプリンタアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。 Next, an example of a printer operation that is actually performed in the multifunction peripheral 100 according to the first embodiment will be described. FIG. 4 is an explanatory diagram illustrating a data sequence between processes of the printer application, ECS, MCS, and SRM when the printer operation is performed by the multifunction peripheral according to the first embodiment.
複合機100は、プリンタアプリプロセス111、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらのプロセスは、複合機100の起動時に生成されるようになっている。
In the
プリンタアプリプロセス111は、プロセス内に複数のスレッドが起動している。プリンタアプリプロセス111は、ECSプロセス124をサーバプロセス202としたクライアントプロセス201となる。ECSプロセス124は、プリンタ動作時にプリンタアプリプロセス111をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス123をそれぞれサーバプロセス202としたクライアントプロセス201となる。
In the
MCSプロセス125は、プリンタ動作時にECSプロセス124をクライアントプロセス201としたサーバプロセス202となるとともに、SRMプロセス123をサーバプロセス202としたクライアントプロセス201となる。SRMプロセス123は、プリンタ動作時にECSプロセス124またはMCSプロセス125をクライアントプロセス201としたサーバプロセス202となっている。
The
PCなどのホストからセントロI/F、USB I/F、ネットワークI/Fなど経由して印刷要求があると、その印刷要求をNCSプロセス128が受信してプリンタアプリプロセス111に転送する(ステップS401)。
When there is a print request from a host such as a PC via a Centro I / F, USB I / F, network I / F, etc., the
プリンタアプリプロセス111は、NCSプロセス128から印刷要求を受信すると新たなプリンタジョブを生成し、ジョブ動作モード設定要求メソッドを実行して、ECSプロセス124に対してジョブ動作モード設定要求メッセージを送信する(ステップS402)。ここで、ジョブ動作モードとは、スキャナ、プロッタ、フィニッシャなどを動作させるために必要なパラメータ群であり、印刷用紙サイズ、印刷部数、給紙トレイなどのプリンタ条件から生成されるジョブの動作条件を定めたものである。
Upon receiving a print request from the
ECSプロセス124は、プリンタアプリプロセス111からジョブ動作モード設定要求メッセージを受信すると、ジョブ動作モード設定実行メソッドを実行し、新たに生成されたプリンタジョブに対して上述のジョブ動作モードを設定して、その実行結果メッセージをプリンタアプリプロセス111に送信する。
When receiving the job operation mode setting request message from the
プリンタアプリプロセス111は、ECSプロセス124からジョブ動作モード設定の実行結果メッセージを受信すると、ジョブの開始要求を行うため、ジョブスタート要求メソッドを実行して、ECSプロセス124に対しジョブスタート要求メッセージを送信する(ステップS403)。
Upon receiving the job operation mode setting execution result message from the
ECSプロセス124は、プリンタアプリプロセス111からジョブスタート要求メッセージを受信すると、ジョブスタート実行メソッドを起動し、ジョブの開始処理を行ってその実行結果メッセージをプリンタアプリプロセス111に送信する。プリンタアプリプロセス111は、ECSプロセス124からジョブスタートの実行結果メッセージを受信する。
When the
つぎに、ECSプロセス124は、メモリに格納されている印刷データを取得するために、メモリ画像情報要求メソッドを実行し、MCSプロセス125に対してメモリ画像情報要求メッセージを送信する(ステップS404)。
Next, the
MCSプロセス125は、ECSプロセス124からメモリ画像情報要求メッセージを受信すると、メモリ画像情報実行メソッドを起動する。そして、MCSプロセス125はメモリに格納されている画像データを取得して、画像データを実行結果メッセージとともにECSプロセス124へ送信する(ステップS405)。ECSプロセス124は、メモリ画像情報要求メッセージの送信および画像データの受信処理を、印刷ページが終了するまで繰り返し行う(ステップS408、S409)。
Upon receiving the memory image information request message from the
MCSプロセス125は、画像データのECSプロセス124への送信後、画像メモリを確保するためにメモリ取得要求メソッドを実行し、SRMプロセス123に対してメモリ取得要求メッセージを送信する(ステップS406)。SRMプロセス123では、MCSプロセス125からメモリ取得要求メッセージを受信すると、メモリ取得実行メソッドを実行し、プリント用に画像メモリを確保し、その実行結果メッセージをMCSプロセス125へ送信する。
After transmitting the image data to the
ECSプロセス124は、1ページ目の印刷データをMCSプロセス125から受信した後、プリンタエンジン資源を取得するために、資源獲得要求メソッドを実行して、SRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS407)。SRMプロセス123は、ECSプロセス124から資源獲得要求メッセージを受信すると資源獲得実行メソッドを実行し、プリンタエンジンを占有し、その実行結果メッセージをECSプロセス124へ送信する。
After receiving the print data of the first page from the
ECSプロセス124は、メモリ画像情報要求(ステップS411)に対する実行結果メッセージとして「画像なし」の応答を受信した場合(ステップS412)に、すべての印刷ページのプリントが終了したものと判断し、ジョブエンド通知メソッドを実行して、プリンタアプリプロセス111に対してジョブエンド通知メッセージを送信する(ステップS413)。プリンタアプリプロセス111では、このジョブエンド通知メッセージを受信することによりプリント終了を検知する。
When the
次に、実施の形態1の複合機100で実際に行われるスキャナ動作の一例について説明する。図5は、実施の形態1の複合機でスキャナ動作を行う場合のスキャナアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。 Next, an example of a scanner operation that is actually performed in the multifunction peripheral 100 according to the first embodiment will be described. FIG. 5 is an explanatory diagram showing a data sequence between each process of the scanner application, ECS, MCS, and SRM when the scanner operation is performed in the multifunction machine of the first embodiment.
複合機100は、スキャナアプリプロセス114、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらのプロセスは、複合機の起動時に生成されるようになっている。
In the
スキャナアプリプロセス114は、プロセス内に複数のスレッドが起動している。スキャナアプリプロセス114は、ECSプロセス124をサーバプロセス202としたクライアントプロセス201となっている。ECSプロセス124は、スキャナ動作時にスキャナアプリプロセス114をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス124をそれぞれサーバプロセス202としたクライアントプロセス201となる。MCSプロセス125は、スキャナ動作時にスキャナアプリプロセス114およびECSプロセス124をクライアントプロセス201としたサーバプロセス202となる。SRMプロセス123は、ECSプロセス124をクライアントプロセス201としたサーバプロセス202となる。
In the
スキャナアプリプロセス114に対しスキャン要求があると、スキャナアプリプロセス114は、新たなスキャナジョブを生成し、ジョブオープン要求メソッドを実行して、ECSプロセス124に対してジョブオープン要求メッセージを送信する(ステップS501)。
When there is a scan request to the
ECSプロセス124では、スキャナアプリプロセス114からジョブオープン要求メッセージを受信すると、ジョブオープン実行メソッドを実行し、ジョブのオープン処理を行い、その実行結果メッセージをスキャナアプリプロセス114に送信する。
When the
スキャナアプリプロセス114は、ECSプロセス124からジョブオープンの実行結果メッセージを受信すると、つぎにファイル生成要求メソッドを実行して、MCSプロセス125に対しファイル生成要求メッセージを送信する(ステップS502)。MCSプロセス125では、スキャナアプリプロセス114からファイル生成要求メッセージを受信すると、ファイル生成実行メソッドを実行し、スキャンした画像を一時的に格納するファイルをHDD上に生成して、その実行結果メッセージをスキャナアプリプロセス114に送信する。
Upon receiving the job open execution result message from the
スキャナアプリプロセス114は、ファイル生成の実行結果メッセージを受信すると、ジョブ動作モードの設定を行うため、ジョブ動作モード設定要求メソッドを実行し、ECSプロセス124に対しジョブ動作モード設定要求メッセージを送信する(ステップS503)。
Upon receiving the file generation execution result message, the
ECSプロセス124は、スキャナアプリプロセス114からジョブ動作モード設定要求メッセージを受信すると、ジョブ動作モード設定実行メソッドを実行し、スキャナジョブに上述のジョブ動作モードを設定して、その実行結果メッセージをスキャナアプリプロセス114に送信する。
Upon receiving the job operation mode setting request message from the
ついで、スキャナアプリプロセス114は、ジョブスタート要求メソッドを実行して、ジョブスタート要求メッセージをECSプロセス124に対して送信する(ステップS504)。ECSプロセス124は、ジョブスタート要求メッセージを受信すると、ジョブスタート要求実行メソッドを実行して、ジョブの開始処理を行い、その実行結果メッセージをスキャナアプリプロセス114に送信する。
Next, the
一方、ECSプロセス124は、スキャナエンジンの資源獲得のため、資源獲得要求メソッドを実行し、SRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS505)。SRMプロセス123は、資源獲得要求メッセージを受信すると資源獲得実行メソッドを実行して、スキャナエンジンを占有し、その実行結果メッセージをECSプロセス124へ送信する。
On the other hand, the
つぎに、ECSプロセス124は、スキャン画像をページ単位で格納するメモリを確保するために、ページ生成要求メソッドを実行して、MCSプロセス125に対しページ生成要求メッセージを送信する(ステップS506)。MCSプロセス125は、ページ生成要求メッセージを受信すると、ページ生成実行メソッドを実行して1ページ分のメモリを確保し、確保したページをオープンし、その実行結果メッセージをECSプロセス124へ送信する。
Next, the
ECSプロセス124は、ページ生成の実行結果メッセージを受信すると、原稿フィードイン要求メソッドを実行し、スキャナエンジンに対して原稿フィードインの指示メッセージを送信して(ステップS507)、スキャナによる原稿の読み取り動作を開始させる。
Upon receiving the page generation execution result message, the
1ページ分の原稿読み動作が終了すると、ECSプロセス124に対しスキャナエンジンからスキャン終了通知メッセージが送信されるので(ステップS508)、ECSプロセス124はこのスキャン終了通知メッセージを受信する。ECSプロセス124は、スキャン終了通知メッセージを受信すると、ページクローズ要求メソッドを実行して、MCSプロセス124に対しページクローズ要求メッセージを送信する(ステップS509)。
When the document reading operation for one page is completed, a scan end notification message is transmitted from the scanner engine to the ECS process 124 (step S508), and the
MCSプロセス125は、ページクローズ要求メッセージを受信すると、ページクローズ実行メソッドを実行して、メモリ上でオープンされている1ページ分の画像メモリをクローズし、その実行結果メッセージをECSプロセス124に送信する。
Upon receiving the page close request message, the
ECSプロセス124は、上述のページ生成要求メッセージの送信からページクローズ要求メッセージの送信までの処理(ステップS506〜S509)を原稿枚数分だけ繰り返し行う。原稿の最終ページのスキャンが終了すると、ECSプロセス124に対しスキャナエンジンからスキャン処理完了通知メッセージが送信される(ステップS510)。
The
ECSプロセス124は、スキャン処理完了通知メッセージを受信すると、スキャン完了通知メッセージをスキャナアプリプロセス114に対して送信し(ステップS511)、さらにジョブエンド通知メソッドを実行してジョブエンド通知メッセージも送信する(ステップS512)。
When receiving the scan processing completion notification message, the
スキャナアプリプロセス114は、スキャン処理完了通知メッセージとジョブエンド通知メッセージとを順にECSプロセス124から受信する。一方、スキャナアプリプロセス114は、ファイル情報登録要求メソッドを実行して、MCSプロセス125に対してファイル情報登録要求メッセージを送信する(ステップS513)。
The
MCSプロセス125は、ファイル情報登録要求メッセージを受信すると、ファイル情報登録実行メソッドを実行して、一時的に生成されたすべての原稿のスキャン画像が格納されているファイルに対し、ファイル名、格納先等のファイル情報を登録し、その実行結果メッセージをスキャナアプリプロセス114に送信する。
When the
スキャナアプリプロセス114は、ファイル情報登録の実行結果メッセージを受信すると、ファイルクローズ要求メソッドを実行して、MCSプロセス125に対しファイルクローズ要求メッセージを送信する(ステップS514)。MCSプロセス125では、ファイルクローズ要求メッセージを受信すると、ファイルクローズ実行メソッドを実行して、スキャン画像のファイルをクローズし、その実行結果メッセージをスキャナアプリプロセス114に送信する。スキャナアプリプロセス114は、ファイルクローズの実行結果メッセージを受信することによって、スキャン処理を終了する。
Upon receiving the file information registration execution result message, the
ついで、スキャナアプリプロセス114は、格納されているスキャン画像を読み出すため、次の処理を行う。まず、スキャナアプリプロセス114はファイルオープン要求メソッドを実行して、MCSプロセス125に対しスキャン画像のファイルをオープンするためのファイルオープン要求メッセージを送信する。また、スキャナアプリプロセス114は作業領域確保要求メソッドの実行による作業メモリの確保のための作業領域確保要求メッセージの送信、ページオープン要求メソッドの実行によるページオープン要求メッセージを順次に送信する(ステップS515〜S517)。
Next, the
MCSプロセス125は、スキャナアプリプロセス114からファイルオープン要求メッセージ、作業領域確保要求メッセージ、ページオープン要求メッセージを順に受信して、ファイルオープン実行メソッドの実行によるスキャン画像ファイルのオープン処理、作業領域確保実行メソッドの実行による作業メモリの確保処理およびページオープン実行メソッドの実行によるページオープン処理をそれぞれ行って、各処理の実行結果メッセージをスキャナアプリプロセス114に送信する。
The
スキャナアプリプロセス114は、スキャン画像ファイルからの画像データの読み出しのために読み出し要求メソッドを実行し、読み出し要求メッセージをMCSプロセス125に送信する(ステップS518)。
The
さらに、スキャナアプリプロセス114は、ページクローズ要求メソッドを実行して、MCSプロセス125に対しページクローズ要求メッセージを送信する(ステップS519)。
Further, the
MCSプロセス125は、ページオープン処理の終了後に、スキャナアプリプロセス114から読み出し要求メッセージを受信し、読み出し実行メソッドを実行してスキャナ画像ファイルから画像データを読み出し、画像データとともにその実行結果メッセージをスキャナアプリプロセス114に送信する。スキャナアプリプロセス114は、画像データの読み出しに関する実行結果メッセージを受信すると、次の読み出し要求メッセージをMCS125に送信し、その実行結果メッセージを受信する。
After the page opening process is completed, the
MCSプロセス125は、最後の読み出し処理の終了後にスキャナアプリプロセス114からページクローズ要求メッセージを受信すると、ページクローズ実行メソッドを実行して、オープンしているページデータのクローズ処理を行い、その実行結果メッセージをスキャナアプリプロセス114に送信する。
When the
スキャナアプリプロセス114は、ページクローズの実行結果メッセージを受信すると、MCS125に対してページ削除要求メッセージ、作業領域削除要求メッセージ、ファイルクローズ要求メッセージ、ファイル削除要求メッセージを順に送信する(ステップS520〜S523)。
Upon receiving the page close execution result message, the
MCSプロセス125は、ページ削除要求メッセージ、作業領域削除要求メッセージ、ファイルクローズ要求メッセージ、ファイル削除要求メッセージを順に受信して、そのメッセージに対応する実行メソッドによって、ページデータの削除、作業メモリの削除、スキャン画像ファイルのクローズ、スキャン画像ファイルの削除の各処理を行って、各処理の実行結果メッセージをスキャナアプリプロセス114に送信する。スキャナアプリプロセス114がMCSプロセス125から各処理の実行結果メッセージを受信することにより、スキャン画像の読み出し処理が完了する。
The
次に、実施の形態1の複合機100で実際に行われるコピー動作の一例について説明する。図6は、実施の形態1の複合機でコピー動作を行う場合のコピーアプリ、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。 Next, an example of a copy operation that is actually performed in the multifunction peripheral 100 according to the first embodiment will be described. FIG. 6 is an explanatory diagram showing a data sequence between processes of the copy application, ECS, MCS, and SRM when a copy operation is performed in the multifunction machine of the first embodiment.
複合機100は、コピーアプリプロセス112、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらのプロセスは、複合機100の起動時に生成されるようになっている。また、これらのプロセスは、プロセス内に複数のスレッドが起動された状態となっている。
In the
コピーアプリプロセス112は、ECSプロセス124をサーバプロセス202としたクライアントプロセス201となっている。ECSプロセス124は、コピー動作時にコピーアプリプロセス112をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス123をそれぞれサーバプロセス202としたクライアントプロセス201となる。
The
MCSプロセス125は、コピー動作時にECSプロセス124をクライアントプロセス201としたサーバプロセス202となるとともに、SRMプロセス123をサーバプロセス202としたクライアントプロセス201となる。SRMプロセス123は、ECSプロセス124およびMCSプロセス125をクライアントプロセス201としたサーバプロセス202となる。
The
コピー要求があると、コピーアプリプロセス112は、新たなコピージョブを生成し、スキャナ動作の場合と同様に、ECSプロセス124に対してジョブオープン要求メッセージ、ジョブ動作モード設定要求メッセージおよびジョブスタート要求メッセージの送信を行う(ステップS601〜S603)。これらの要求メッセージを受信したECSプロセス124の動作については、上述したスキャナ動作の場合と同様であるため説明を省略する。
When there is a copy request, the
ECSプロセス124では、ジョブスタートの実行結果メッセージをコピーアプリプロセス112に送信すると、つぎにスキャン画像を格納するためのメモリを確保するために、メモリ確保要求メソッドを実行し、MCSプロセス125に対し必要なサイズを指定したメモリ確保要求メッセージを送信する(ステップS604)。
In the
MCSプロセス125では、メモリ確保要求メッセージを受信すると、メモリ確保実行メソッドを実行して、指定されたサイズのメモリ上の領域を確保するためのメモリ取得要求メソッドを実行し、SRM123に対してメモリ取得要求メッセージを送信する(ステップS605)。SRM123は、メモリ取得要求メッセージを受信すると、メモリ取得実行メソッドを実行して、メモリ上に指定されたサイズの領域を占有して、その実行結果メッセージをMCSプロセス125に送信する。
Upon receipt of the memory allocation request message, the
メモリ取得の実行結果メッセージを受信したMCSプロセス125は、受信した実行結果メッセージをメモリ確保の実行結果メッセージとしてECSプロセス124に送信する。ついで、メモリ確保の実行結果メッセージを受信したECSプロセス124は、スキャナエンジンとプリンタエンジンの資源獲得のため、資源獲得要求メソッドを実行して、SRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS606)。
The
SRMプロセス123は、資源獲得要求メッセージを受信すると、資源獲得実行メソッドを実行してスキャナエンジンとプリンタエンジンとを占有し、その実行結果メッセージをECSプロセス124に送信する。
When the
ECSプロセス124は、SRMプロセス123から資源獲得の実行結果メッセージを受信して、スキャナエンジンとプリンタエンジンとをコピージョブで占有すると、原稿フィードイン要求メソッドを実行し、スキャナエンジンに対して原稿フィードインの指示メッセージを送信して(ステップS607)、原稿のスキャン処理を開始させる。
When the
スキャナエンジンは、原稿のスキャン処理が終了すると、スキャン終了通知メッセージをECSプロセス124に送信し(ステップS608)、プリンタエンジンにスキャン画像のプリント処理を開始させる。そして、プリンタエンジンはスキャン画像のプリント処理が終了すると、ECSプロセス124に印刷終了通知メッセージを送信する(ステップS610)。 When the scan process of the document is completed, the scanner engine transmits a scan end notification message to the ECS process 124 (step S608), and causes the printer engine to start the scan image print process. When the print processing of the scanned image is completed, the printer engine transmits a print end notification message to the ECS process 124 (step S610).
ECSプロセス124は、スキャナエンジンからスキャン終了通知メッセージを受信すると、ジョブエンド通知メソッドを実行してコピーアプリプロセス112に対しスキャン終了の旨のジョブエンド通知メッセージを送信する(ステップS609)。また、ECSプロセス124はプリンタエンジンから印刷終了通知メッセージを受信すると、ジョブエンド通知メソッドを実行してコピーアプリプロセス112に対し印刷終了の旨のジョブエンド通知メッセージを送信する(ステップS611)。コピーアプリプロセス112は2つのジョブエンド通知メッセージを受信することにより、原稿1ページ分のコピー動作が完了する。
When receiving the scan end notification message from the scanner engine, the
複数枚の原稿のコピーを行う場合には、さらにECSプロセス124に対しジョブスタート要求メッセージを送信する(ステップS612)。これにより、上述と同様の動作がECSプロセス124、MCSプロセス125、SRMプロセス123、スキャナエンジンおよびプリンタエンジンで行われる(ステップS613〜S616)。すべての原稿のコピーが終了し、コピーアプリプロセス112が最後のジョブエンド通知メッセージを受信すると(ステップS617)、コピーアプリプロセス112はジョブクローズ要求メソッドを実行して、ECSプロセス124に対しジョブクローズ要求メッセージを送信する(ステップS618)。
When copying a plurality of documents, a job start request message is further transmitted to the ECS process 124 (step S612). As a result, operations similar to those described above are performed by the
ECSプロセス124は、ジョブクローズ要求メッセージを受信すると、ジョブクローズ実行メソッドを実行して、オープン状態にあるコピージョブをクローズし、その実行結果メッセージをコピーアプリプロセス112に送信する。コピーアプリプロセス112がECSプロセス124からジョブクローズの実行結果メッセージを受信することにより、コピー動作が完了する。
When receiving the job close request message, the
次に、実施の形態1の複合機100で実際に行われるファクシミリ送信動作の一例について説明する。図7は、実施の形態1の複合機でファクシミリ送信動作を行う場合のファックスアプリ、FCS、ECS、MCS、SRMの各プロセス間のデータシーケンスを示す説明図である。
Next, an example of a facsimile transmission operation that is actually performed in the
複合機100は、ファックスアプリプロセス113、FCSプロセス127、FCUHプロセス129、ECSプロセス124、MCSプロセス125およびSRMプロセス123が動作している。これらプロセスは、複合機100の起動時に生成されるようになっている。また、これらのプロセスは、プロセス内に複数のスレッドが起動された状態となっている。
In the
ファックスアプリプロセス113は、FCSプロセス127をサーバプロセス202としたクライアントプロセス201となっている。FCSプロセス127は、ファクシミリ送信動作時にファックスアプリプロセス113をクライアントプロセス201としたサーバプロセス202となるとともに、ECSプロセス124およびFCUHプロセス129をサーバプロセス202としたクライアントプロセス201となる。
The
FCUHプロセス129は、FCSプロセス127のサブプロセスであり、ファクシミリ送信動作時に、SRMプロセス123およびFCS127をクライアントプロセス201としたサーバプロセス202となる。ECSプロセス124は、ファクシミリ送信動作時にFCSプロセス127をクライアントプロセス201としたサーバプロセス202となるとともに、MCSプロセス125およびSRMプロセス123をそれぞれサーバプロセス202としたクライアントプロセス201となる。
The FCUH process 129 is a sub-process of the
MCSプロセス125は、ファクシミリ送信動作時に、ECSプロセス124をクライアントプロセス201としたサーバプロセス202となるとともに、SRMプロセス123をサーバプロセス202としたクライアントプロセス201となる。SRMプロセス123は、ECSプロセス124およびMCSプロセス125をクライアントプロセス201としたサーバプロセス202となるとともに、FCUHプロセス129をサーバプロセス202としたクライアントプロセス201となる。
The
ファクシミリ送信要求があると、ファックスアプリプロセス113は、新たなファクシミリ送信ジョブを生成し、送信スタート要求メソッドを実行して、FCSプロセス127に対して送信スタート要求メッセージを送信する(ステップS701)。
When there is a facsimile transmission request, the
FCSプロセス127は、ファックスアプリプロセス113から送信スタート要求メッセージを受信すると、送信スタート実行メソッドを実行する。この送信スタート実行メソッドは、ジョブ動作モード設定要求メソッドを実行してECSプロセス124に対してジョブ動作モード設定要求メッセージを送信する(ステップS702)。また、送信スタート実行メソッドはジョブスタート要求メソッドを実行してECSプロセス124に対してジョブスタート要求メッセージを送信する(ステップS703)。
When the
なお、ジョブ動作モード設定要求メッセージおよびジョブスタート要求メッセージを受信したECSプロセス124の動作は、前述したスキャナ動作の場合と同様であるので説明を省略する。
Note that the operation of the
ジョブスタート要求メッセージを受信してジョブ開始処理を行ったECSプロセス124は、ついでメモリ確保要求メソッドを実行して、MCS125に対しメモリ確保要求メッセージを送信する(ステップS704)。このメモリ確保要求メッセージを受信したMCSプロセス125は、メモリ取得要求メソッドを実行してメモリ取得要求メッセージをSRMプロセス123に対して送信する(ステップS705)。
The
また、ECSプロセス124は、スキャナエンジンおよびファクシミリエンジンの獲得のため、資源獲得要求メソッドを実行して、SRMプロセス123に対し資源獲得要求メッセージを送信する(ステップS706)。
Further, the
なお、これらのメッセージを受信したMCSプロセス125、SRMプロセス123の処理およびECSプロセス124における処理は、コピー動作時の処理と同様であるので説明を省略する。
The processing of the
ECSプロセス124では、スキャナエンジンの資源獲得の実行結果メッセージを受信したら、スキャンパラメータ確定要求メソッドを実行して、FCSプロセス127に対しスキャンパラメータ確定要求メッセージを送信する(ステップS707)。
In the
ここで、スキャンパラメータとは、たとえばファイン、ノーマルなどのスキャン濃度や原稿サイズ等である。FCSプロセス127は、このスキャンパラメータ確定要求メッセージを受信すると、スキャンパラメータ確定実行メソッドを実行して、ECSプロセス124に対してスキャンパラメータをメッセージとして送信する(ステップS708)。
Here, the scan parameters are, for example, fine and normal scan densities, document sizes, and the like. When the
ECSプロセス124では、スキャンパラメータメッセージを受信すると、SRMプロセス123に対してスキャン・フィードインプロセスの生成を指示するため、スキャン・フィードインプロセス指示メソッドを実行してスキャン・フィードインプロセス指示メッセージを送信する(ステップS709)。
Upon receiving the scan parameter message, the
SRMプロセス123は、スキャン・フィードインプロセス指示メッセージを受信すると、スキャン・フィードインプロセス実行メソッドを実行して、スキャン・フィードインプロセスを生成する(ステップS710)。ついでフィードインスタート要求メソッドを実行して、FCUHプロセス129に対して原稿のフィードインスタート要求メッセージを送信する(ステップS711)。FCUHプロセス129がフィードインスタート要求メッセージを受信すると、原稿フィードインが開始され、これにより原稿のスキャンおよび指定宛先への送信が開始される。
Upon receiving the scan / feed-in process instruction message, the
原稿のスキャンが開始されると、次ページの原稿があるか否かを示す、次ページ原稿有無通知メッセージがスキャナエンジンからECSプロセス124に対して送信される。図7では、次ページ原稿有通知メッセージが通知されている(ステップS712)。そして、原稿のスキャンが終了すると、スキャナエンジンからECSプロセス124に対してスキャン終了メッセージが送信される(ステップS713)。
When scanning of a document is started, a next page document presence / absence notification message indicating whether or not there is a document of the next page is transmitted from the scanner engine to the
ECSプロセス124は、受信したスキャン終了メッセージを次ページ原稿有の旨とともにFCSプロセス127へ送信する(ステップS714)。一方、原稿スキャンが終了すると、SRMプロセス123はフィードイン終了要求メソッドを実行し、FCUHプロセス129に対してフィードイン終了を指示して(ステップS715)、原稿フィードインを終了させる。
The
ユーザの指示などにより、ファックスアプリプロセス113が送信モード変更要求メソッドを実行して、FCSプロセス127に対して送信モード変更要求メッセージを送信した場合は(ステップS716)、ECSプロセス124は、スキャンパラメータ確定要求メソッドを実行して、スキャンパラメータ確定要求メッセージをFCSプロセス127に対して送信する。これに対し上述のようにFCSプロセス127は、スキャンパラメータメッセージをECSプロセス124に送信する(ステップS718)。
When the
ECSプロセス124は、スキャンパラメータメッセージを受信すると、スキャン・フィードインプロセス指示メソッドを実行し、次ページ目のスキャン・フィードインプロセスの実行をSRMプロセス123に指示してスキャン・フィードインプロセスを開始する(ステップS719、S720)。
Upon receiving the scan parameter message, the
一方、1ページの指定宛先へのファクシミリ送信が完了すると、FCSプロセス127は、EOMメッセージ(異なる送信モードで次ページ有り)をFCUHプロセス129へ送信し(ステップS721)、これを受信したFCUHプロセス129はEOMを指定宛先へ送信する(ステップS722)。
On the other hand, when the facsimile transmission to the designated destination of one page is completed, the
FCUHプロセス129が指定宛先から受信正常の通知を受けた場合には(ステップS723)、SRMプロセス123に対して送信成功メッセージを送信し(ステップS724)、これを受信したSRMプロセス123がECSプロセス124に対してプロセス正常終了メッセージを送信する(ステップS725)。
さらに、プロセス正常終了メッセージを受信したECSプロセス124は、スキャン処理完了通知メソッドを実行して、FCSプロセス127に対し1ページ目のスキャン処理完了通知メッセージを送信する(ステップS726)。
When the FCUH process 129 receives a notification of normal reception from the designated destination (step S723), it transmits a transmission success message to the SRM process 123 (step S724). A process normal end message is transmitted to (step S725).
Further, the
そして、送信成功メッセージを受信したSRMプロセス123は、スタンプ実行要求メソッドを実行して、送信日時、発信元等のスタンプを指定宛先へ送信する旨をスキャナエンジンに指示する(ステップS727)。
Then, the
SRMプロセス123は、2ページ目の原稿のフィードインを開始するため、フィードインスタート要求メソッドを実行し、FCUHプロセス129に対して原稿のフィードインスタート要求メッセージを送信する(ステップS728)。FCUHプロセス129はフィードインスタート要求メッセージを受信して、原稿フィードインが開始され、これにより2ページ目の原稿のスキャンおよび指定宛先への送信が開始する。
The
原稿のスキャンが開始されると、次ページ原稿有無通知メッセージがスキャナエンジンからECSプロセス124に対して送信される。、図7では、次ページ原稿無通知メッセージが通知され、ECSプロセス124に通知されている(ステップS729)。そして、原稿のスキャンが終了すると、スキャナエンジンからECSプロセス124に対してスキャン終了メッセージが送信される(ステップS730)。
When scanning of a document is started, a next page document presence / absence notification message is transmitted from the scanner engine to the
ECSプロセス124は、受信したスキャン終了メッセージを次ページ原稿無の旨とともにFCSプロセス127へ送信する(ステップS731)。一方、スキャンが終了すると、SRMプロセス123はフィードイン終了要求メソッドを実行して、FCUHプロセス129に対してフィードイン終了メッセージを送信し(ステップS732)、これにより原稿フィードインを終了させる。
The
2ページの指定宛先へのファクシミリ送信が完了すると、FCSプロセス127はEOPメッセージ(次ページ無し)をFCUHプロセス129へ送信し(ステップS733)、これを受信したFCUHプロセス129がEOPを指定宛先へ送信する(ステップS734)。
When the facsimile transmission to the designated destination on
指定宛先から受信正常の通知を受けた場合(ステップS735)、FCUHプロセス129はSRMプロセス123に対して送信成功メッセージを送信し(ステップS736)、これを受信したSRMプロセス123が、ECSプロセス124に対してプロセス正常終了メッセージを送信する(ステップS737)。
When a normal reception notification is received from the designated destination (step S735), the FCUH process 129 transmits a transmission success message to the SRM process 123 (step S736), and the
さらにプロセス正常終了メッセージを受信したECSプロセス124は、FCSプロセス127に対し2ページ目のスキャン処理完了通知メッセージを送信する(ステップS738)。また、送信成功メッセージを受信したSRMプロセス123は、スタンプ実行要求メソッドを実行して、送信日時、発信元等のスタンプの指定宛先へ送信の指示を行う(ステップS739)。そして、ECSプロセス124は、ジョブエンド通知メソッドを実行して、FCSプロセス127にジョブエンド通知メッセージを送信する(ステップS740)。FCSプロセス127は、このジョブエンド通知メッセージを受信することにより全ての原稿のファクシミリ送信動作を完了する。
Further, the
このように実施の形態1の複合機100では、各アプリプロセスなどクライアントプロセス201となるプロセスが、ECSプロセス124、MCSプロセス125、SRMプロセス123などのサーバプロセス202となるプロセスに対し、メソッド実行によるメッセージ送信を行ってサービスの要求を行い、サーバプロセス202がメソッド実行によりサービスの提供および実行結果メッセージのクライアントプロセス201に対する送信を行うことでプロセス間通信を実現しているので、アプリケーション130とプラットホーム120という特殊な構成を有する複合機100において、簡易な手法によって多種多様なユーザサービスの機能を提供することができる。
As described above, in the
また、各アプリケーション130,各コントロールサービスおよびSRM123のそれぞれはメソッドを有するオブジェクトである。したがって、アプリケーション130やコントロールサービスの一部のモジュールにのみ変更がある場合や、必要に応じてコントロールサービス、アプリケーション130を適宜、追加したとしても、サーバプロセス202となるモジュール側でメッセージを受信したときにサービス処理を実行するメソッドを実装し、クライアントプロセス201となるモジュール側でサービス要求メッセージを送信するメソッドを実装するというインタフェースを確保しておけば、サービスやデータの授受が可能となるため、各アプリや各コントロールサービスの追加または変更などのソフトウェア開発効率を向上させることができ、画像形成装置を可変性を持った構成とすることができる。
Each
さらに、各コントロールサービスのそれぞれは、メソッドを有するオブジェクトであるため、各オブジェクトのデータの隠蔽を図ることができ、アプリケーション130の開発をサードベンダなどの外部に委託した場合でも、コントロールサービスの内容の隠蔽した状態とすることができる。
(実施の形態2)
実施の形態1にかかる複合機100では、サーバプロセスとクライアントプロセスとの関係を概念的に説明した。そこで、この実施の形態2では、サーバプロセスおよびクライアントプロセスをより具体的に説明する。なお、実施の形態2にかかる複合機100の構成は、図1と同様であるため説明を省略する。
Furthermore, since each control service is an object having a method, it is possible to conceal the data of each object. Even when the development of the
(Embodiment 2)
In the
図8は、実施の形態2の複合機100上で動作するサーバプロセスとクライアントプロセスの関係を詳細に示すブロック図である。ここで、クライアントプロセス1600は、サーバプロセス1610,1620に対して要求を行うことにより、サーバプロセス1610,1620からサービスの提供を受ける例えばSCS122などのプロセスをいう。
FIG. 8 is a block diagram illustrating in detail the relationship between a server process and a client process that operate on the multifunction peripheral 100 according to the second embodiment. Here, the
また、サーバプロセス1610,1620は、クライアントプロセス1600からの要求によりクライアントプロセス1600に対しサービスを提供する例えばECS124などのプロセスをいう。
The server processes 1610 and 1620 are processes such as
図8に示すとおり、クライアントプロセス1600には複数のスレッド1601が起動している。クライアントプロセス1600は、複数のスレッド1601を有していることから、複数のサーバプロセス1610,1620に対して同時にサービスを要求できる。
As shown in FIG. 8, a plurality of
また、クライアントプロセス1600は、サーバプロセス1610,1620のサービスを要求するために、スレッド1601からサーバプロセス1610,1620に対して関数コールを行い、その関数戻り値を受信することによってプロセス間通信を行う。
Further, the
クライアントプロセス1600のスレッド1601は、あらかじめサーバプロセス1610,1620から提供されている関数をコールする。関数は、クライアントスタブ1602に定義されている。また、クライアントディスパッチャ1603は関数戻り値の受信を監視するスレッドである。
The
クライアントプロセス1600は、サーバプロセス1610,1620ごとにクライアントディスパッチャ1603を起動してサーバプロセス1610,1620と通信する。そして、関数コールを受けたサーバプロセス1610,1620は要求された関数に対応する処理を以下のように実行する。
The
例えばサーバプロセス1610のサーバディスパッチャ1611は、サーバスケルトン1612にコーディングされている複数のスレッド1613から、要求された関数に対応するスレッド1613を選択する。ここで選択されるスレッド1613は、実施の形態1で説明した関数ハンドラ403に相当する。サーバプロセス1610のスレッド1613は、要求された処理を実行してその実行結果を関数戻り値としてクライアントプロセス1600に送信する。
For example, the
次に、実施の形態2にかかるクライアントプロセス1600と、サーバプロセス1610,1620とを生成する生成方法について説明する。図9は、実施の形態2のクライアントプロセスとサーバプロセスとを生成する画像形成装置用通信プログラム生成装置(以下、「スタブジェネレータ」という。)の機能的構成を示すブロック図である。スタブジェネレータは、メッセージファイルからヘッダと、クライアントスタブと、サーバスケルトンを自動生成するものである。
Next, a generation method for generating the
図9に示すように、スタブジェネレータは、メッセージファイル1701を入力する入力部1702と、メッセージファイル1701に記述された内容の構文チェックを行う構文解析部1703と、メッセージファイル1701の記述内容から、ヘッダ1706とクライアントスタブ1707と、サーバスケルトン1705とを生成してハードディスク等の記憶媒体に格納するコード生成部1704とを備えている。
As shown in FIG. 9, the stub generator generates an header from an
まず、スタブジェネレータに入力されるメッセージファイル1701と、スタブジェネレータで生成されるヘッダ1706、クライアントスタブ1707およびサーバスケルトン1705について説明する。
First, the
メッセージファイル1701は、プロセス間通信の通信内容をC言語などのソースコードで記述したソースファイルである。図10は、メッセージファイルの記述例を示す説明図である。図10に示すように、メッセージファイル1701には、別のメッセージファイルや、C言語記述のインクルードヘッダを宣言するインクルード宣言と、サーバプロセスとクライアントプロセスの間で送受信するメッセージを記述したメッセージ記述と、クライアントプロセスからサーバプロセスに対して発行する関数の宣言などが記述されている。
A
メッセージは、主としてサーバプロセスとクライアントプロセスとの間でイベ
ントや通知を行う際に発行するものであり、メッセージファイル1701のメッセージ記述としては、メッセージ名と、メッセージIDと、メッセージ方向、メッセージ内容を記述するようになっている。
A message is issued mainly when an event or notification is performed between a server process and a client process. As a message description of the
メッセージ方向には、「IN」、「OUT」、「SELF」がある。「IN」は、クライアントプロセスからサーバプロセスに対して送信するメッセージを意味する。「OUT」は、サーバプロセスからクライアントプロセスに対して送信するメッセージを意味する。また、「SELF」は自分自身のプロセスに対して送信するメッセージを意味する。 The message direction includes “IN”, “OUT”, and “SELF”. “IN” means a message transmitted from the client process to the server process. “OUT” means a message transmitted from the server process to the client process. “SELF” means a message to be transmitted to its own process.
関数は、クライアントプロセスからサーバプロセスに処理要求や設定要求を行
う際に発行するものである。メッセージファイル1701の関数宣言には、関数名と、関数の型と、引数のみを記述し、関数の処理内容は記述しないようになっている。
The function is issued when a processing request or a setting request is issued from the client process to the server process. In the function declaration of the
クライアントスタブ1707は、クライアントプログラムから呼び出される関数のサーバプロセスに対する発行を記述したソースファイルである。クライアントスタブ1707をコンパイルしてライブラリ化し、クライアントプログラムとリンクすることにより、クライアントプログラムからの関数コールがクライアントスタブ1707を介してサーバプロセスへ発行されるようになっている。
The
図11はスタブジェネレータにより生成されるクライアントスタブ1707の一例を示す説明図である。図11に示すように、クライアントスタブ1707には、後述するサーバスケルトン1705に登録された関数ハンドラを呼び出すことにより、関数コールが行われるようになっている。サーバスケルトン1705は、クライアントスタブ1707から呼び出された関数ハンドラとメッセージハンドラを登録したソースファイルである。
FIG. 11 is an explanatory diagram showing an example of a
図12は、スタブジェネレータにより生成されるサーバスケルトン1705の一例を示す説明図である。図12に示すように、サーバスケルトン1705にはクライアントスタブ1707に記述された関数に対応した関数ハンドラが登録されている。
FIG. 12 is an explanatory diagram showing an example of the
関数ハンドラでは引数の受け渡し部のみが記述され、処理内容を記述する実装記述部は空欄の状態で生成されている。この実装記述部には、クライアントプログラムからクライアントスタブ1707を介して発行される関数の処理内容を、サーバプログラムの開発者が自在に記述できるようになっている。ヘッダ1706は、サーバスケルトン1705とクライアントスタブ1707で共通の定義、宣言などを記述したソースファイルである。
In the function handler, only the argument passing part is described, and the implementation description part describing the processing contents is generated in a blank state. In this implementation description section, the processing contents of the function issued from the client program via the
図13はスタブジェネレータにより生成されるヘッダ1706の一例を示す説明図である。図13に示すように、ヘッダ1706には、メッセージファイル1701に記述されたインクルード宣言、メッセージID、メッセージの構造体などのメッセージ宣言、関数宣言および関数ハンドラ宣言などが記述された状態で生成されるようになっている。
FIG. 13 is an explanatory diagram showing an example of the
次に、スタブジェネレータによるサーバスケルトン1705、クライアントスタブ1707およびヘッダ1706の生成処理について説明する。図14は、サーバスケルトン、クライアントスタブおよびヘッダの生成処理のフローチャートである。
Next, generation processing of the
スタブジェネレータの構文解析部1703は、メッセージファイル1701に記述された関数宣言、メッセージ定義、インクルード宣言、C言語記述の文法チェックを行い(ステップS1801)、さらにメッセージファイル1701に定義されている関数名およびメッセージ定義の中のメッセージID、メッセージ名の一意性の判断を行う(ステップS1802)。
The
そして、関数宣言、メッセージ定義、インクルード宣言の記述に文法エラーがあった場合、あるいは関数名、メッセージID、メッセージ名のいずれかが重複している場合には、ユーザに構文エラーである旨のメッセージを通知し処理を終了する(ステップS1803、S1804)。 If there is a syntax error in the description of the function declaration, message definition, or include declaration, or if any of the function name, message ID, or message name is duplicated, a message to the user that it is a syntax error And the process ends (steps S1803 and S1804).
構文解析後、コード生成部1704は、メッセージファイル1701の記述内容から、ヘッダ1706と、サーバスケルトン1705と、クライアントスタブ1707を生成する。具体的には、メッセージファイル1701のインクルード宣言とC言語記述とをヘッダ1706にそのまま転記し、メッセージファイル1701のメッセージ定義に記述されているメッセージ構造体をヘッダ1706にコピーする(ステップS1805)。
After the syntax analysis, the
また、コード生成部1704は、メッセージファイル1701の関数宣言から関数ハンドラ名を自動生成し(例えば、関数名abcの場合、関数ハンドラ名をabc_handlerとして生成する)、生成された関数ハンドラ名をサーバスケルトン1705内に登録する。
In addition, the
そして、関数ハンドラの処理内に、引数受け渡しの記述を行うとともに、戻り値領域の生成システムコールの発行を記述する。関数ハンドラの実際の処理内容を記述する実装記述部の欄を空欄とし、その実装記述部の後に、戻り値送信と戻り値領域解放の各システムコールの発行を記述する(ステップS1806)。 In the function handler process, argument passing is described and issue of a return value area generation system call is described. The field of the implementation description part describing the actual processing contents of the function handler is left blank, and after the implementation description part, the issue of each system call for return value transmission and return value area release is described (step S1806).
また、コード生成部1704は、メッセージファイル1701に記述された関数宣言ごとに、関数名と引数の記述をクライアントスタブ1707に登録し、その関数の処理内に、関数コールメッセージ生成コールと関数ハンドラの呼び出しと戻り値解放の各システムコールを記述する(ステップS1807)。なお、関数ハンドラ呼び出しには、発行した関数の戻り値の待ち受ける関数戻り値待ちシステムコールが内部的に発行されるようになっている。
In addition, the
このようにスタブジェネレータにより、クライアントスタブ1707とサーバスケルトン1705とヘッダ1706を生成したら、次にサーバオブジェクトおよびクライアントオブジェクトを完成させる。
When the
サーバプログラムの開発者は、サーバスケルトン1705の関数ハンドラの実装記述部(空欄)に、関数ハンドラで行うべき処理内容をエディタなどを利用して記述し、サーバスケルトン1705をヘッダ1706とともにコンパイルしてサーバスタブオブジェクトを生成する。また、サーバスケルトン1705に登録した関数ハンドラを宣言するとともに、クライアントプロセスとの間でメッセージファイル1701に記述されたメッセージの送受信を行うメッセージハンドラ、エラー処理を行うエラーハンドラ、サーバの初期化、サーバディスパッチャ起動等のシステムコールの発行を記述したサーバソースファイルを作成してコンパイルし、サーバスタブオブジェクトとリンクして、サーバプログラムを完成させる。
The developer of the server program describes the processing contents to be performed by the function handler in the function handler implementation description section (blank) of the
一方、クライアントスタブ1707はヘッダ1706とともにコンパイルしてクライアントスタブオブジェクトを生成する。サーバプロセスごとにクライアントスタブオブジェクトを生成し、生成した複数のクライアントスタブオブジェクトをライブラリとする。
On the other hand, the
また、関数の発行、関数ハンドラの宣言、エラー処理を行うエラーハンドラの宣言、クライアントプロセスとの間でメッセージファイル1701に記述されたメッセージの送受信を行うメッセージハンドラ、およびクライアントプロセスの初期化やクライアントディスパッチャ起動等のシステムコールの発行を記述したクライアントプログラムを作成してコンパイルし、スタブのライブラリとリンクすることによりクライアントプログラムを完成させる。
Also, function issuance, function handler declaration, error handler declaration for error handling, message handler for sending and receiving messages described in the
図15は、クライアントプログラムから関数コールを行った場合におけるサーバプログラムとの呼び出しおよび応答のシーケンスを示す説明図である。なお、サーバプログラムとクライアントプログラムは実際は実行可能形式のオブジェクトファイルであるが、図15では、説明の都合上いずれもソースコードで表示している。 FIG. 15 is an explanatory diagram showing a call and response sequence with the server program when a function call is made from the client program. Note that the server program and the client program are actually executable object files, but in FIG. 15, both are displayed in source code for convenience of explanation.
クライアントプログラムからサーバプログラムに対して、たとえばOpen関数をコールすると、クライアントスタブオブジェクトで定義されたOpenが呼び出される(ステップS1901)。そして、このスタブのOpenの処理の中で、Openの関数ハンドラOpen_handlerがサーバプログラムに対してコールされる(ステップS1902)。 For example, when an Open function is called from the client program to the server program, Open defined in the client stub object is called (step S1901). Then, in the stub Open process, the Open function handler Open_handler is called to the server program (step S1902).
サーバプログラムでは、クライアントスタブオブジェクトから関数ハンドラOpen_handlerの発行を受け取って、サーバスタブオブジェクトに登録されているOpen_handlerの実装記述部に記述されている処理を実行し(ステップS1903)、その実行結果をクライアントスタブへ戻り値として返す(ステップS1904)。クライアントプログラムでは、この戻り値をクライアントスタブから受け取って(ステップS1905)、次の処理へ移行する。 The server program receives the issuance of the function handler Open_handler from the client stub object, executes the process described in the implementation description part of the Open_handler registered in the server stub object (step S1903), and outputs the execution result to the client stub. Is returned as a return value (step S1904). The client program receives this return value from the client stub (step S1905), and proceeds to the next processing.
このように実施の形態2のスタブジェネレータでは、メッセージファイル1701に関数宣言を記述することによりクライアントスタブ1707とサーバスケルトン1705を容易に生成することができる。しかも生成されるサーバスケルトン1705の実装記述部は空欄となっているので、プログラム開発者は必要に応じて関数の処理内容を容易に変更するができる。
As described above, the stub generator of the second embodiment can easily generate the
このため複合機100に可変性をもたせることができるとともに、多種多様な機能を実現させることができる。さらに、サードベンダーなどの他社がクライアントプログラムの開発を行う場合でも、クライアントプログラムには提供される関数コールを記述するだけでプロセス間通信が可能となるので、内部の通信プロトコルの隠蔽性を保つことが可能となる。
For this reason, the
また、実施の形態2のスタブジェネレータでは、プロセス間通信を関数コールで実現しているので、ジョブの並列実行をスレッドで実現した場合でも、高速なプロセス間通信が可能となる。また、関数からの戻り値によってスレッド間の同期をとることができるので、同期のための処理プログラムを別途作成する必要がなくなり、プログラム開発の労力を低減することができる。
(実施の形態3)
実施の形態1にかかる複合機100では、オブジェクトのメソッドを利用したプロセス間通信を行うものであったが、この実施の形態3にかかる複合機100は、さらにエージェントの機能を利用したものである。
In the stub generator of the second embodiment, since inter-process communication is realized by function calls, high-speed inter-process communication is possible even when parallel execution of jobs is realized by threads. Further, since the threads can be synchronized by the return value from the function, it is not necessary to separately create a processing program for synchronization, and the labor for program development can be reduced.
(Embodiment 3)
In the
図16は、実施の形態3にかかる複合機の構成を示すブロック図である。図16に示すように、実施の形態3の複合機100は、エージェントアプリ117をアプリケーション層に備えている点が実施の形態1の複合機100と異なる。このため、他の構成については説明を省略する。なお、実施の形態3にかかる複合機100はネットワークインタフェース106によってLANなどのネットワークに接続された状態となっている。
FIG. 16 is a block diagram of the configuration of the multifunction machine according to the third embodiment. As illustrated in FIG. 16, the
エージェントアプリ117は、ネットワークを介して受信したエージェントの内容を解釈して実行するアプリケーションであり、本発明におけるエージェント処理手段を構成する。ここで、エージェントとは、ユーザに代行して自らの環境を自律的に判断して能動的に動作したり、ネットワークを通じて移動するプログラムである。
The
エージェントを用いることで、ネットワークの負荷を軽減したり、ネットワークを常に占有する必要がなくなる。また、連続的な処理を効率的に行うことができる。なお、エージェントの動作および利点については、以下に示す例で詳細に説明する。また、エージェントアプリ117としては、例えば、telescriptコマンドを解釈することができるtelescriptエンジンなどを用いることができる。
By using an agent, it is not necessary to reduce the load on the network or always occupy the network. Moreover, continuous processing can be performed efficiently. Note that the operation and advantages of the agent will be described in detail in the following example. As the
具体的には、エージェントアプリ117は、ネットワークに接続された他の複合機やPCから送信されてきたエージェントをNCS128を介して受信し、その内容に一または複数のサービス要求が含まれている場合、その内容から要求のあったサービスごとに必要なコントロールサービスやアプリケーション130を判断して選定し、選定されたコントロールサービスやアプリケーション130に対してサービス要求を行う。
Specifically, the
また、エージェントアプリ117は、受信したエージェントに含まれるサービス要求に必要なコントロールサービスやアプリケーション130が自己の複合機100内部で正常に動作しているか否かを判断し、正常動作していない場合(存在しない場合も含む)には、ネットワーク上の他の複合機100を自律的に検索して、当該他の複合機100にエージェントを送信する。
Further, the
エージェントを受信した他の複合機100は、エージェントアプリ117によって、サービスごとに必要なコントロールサービスやアプリケーション130の選定とサービス要求、および必要なコントロールサービスやアプリケーション130の正常動作の調査を行う。このため、サービスに必要なコントロールサービスやアプリケーション130が正常動作していない限り、エージェントはネットワーク内の複合機を順に移動していく。
The
ここで、サービス要求に必要なモジュールとは、例えばプリント要求についてはプリンタアプリ111、ECS124、MCS125およびSRM123であり、ファクシミリ送信要求についてはファックスアプリ113、FCS127、ECS124、MCS125およびSRM123である。
Here, the modules necessary for the service request are, for example, the
次に、実施の形態3にかかる複合機100によるエージェント機能を利用したプロセス間通信について説明する。なお、実施の形態3にかかる複合機100において、複合機100内部で動作するプロセス間の通信は、実施の形態1の複合機100と同様に、オブジェクトのメソッド実行によるメッセージ送信によって実現されている。
Next, inter-process communication using the agent function by the multifunction peripheral 100 according to the third embodiment will be described. In the
図17は、このエージェント機能を複合機に適用した場合のユーザのPCと複合機のやりとりの例を示す模式図である。図19は、複合機100aにおけるプロセス間通信の流れを示す説明図である。ここでは、LANなどのネットワーク901にPC900および複数の複合機100a,100b,100cが接続されているものとする。また、各複合機100a,100b,100cは図16に示した構成を有するものとする。
FIG. 17 is a schematic diagram showing an example of interaction between the user's PC and the multifunction device when this agent function is applied to the multifunction device. FIG. 19 is an explanatory diagram showing the flow of inter-process communication in the multifunction peripheral 100a. Here, it is assumed that a
また、PC900はエージェントの送信を行うエージェントエンジン902が搭載されている。なお、複合機100a,100b,100cは、エージェントアプリ117がエージェントエンジン902に相当する。
The
図17に示すように、PC900のエージェントエンジン902によって、エージェントが複合機100aに対して送信される。このエージェントには、複数のサービス要求を記述することができる。このように複数のサービス要求が記述されたエージェントは、エージェントを受信する複合機(あるいは、さらにネットワーク上の他の複合機にエージェントが移動した場合には、その移動先の複合機)に対し、記述された複数のサービス要求を連続的に実行させることを指示している。
As shown in FIG. 17, the agent is transmitted to the multifunction peripheral 100a by the
図17の例では、「ファイル転送 X to PC」および「プリント X」という2つのサービス要求がプログラム形式で一つのエージェントに記述されている。ここで、「ファイル転送 X to PC」は、複合機100aのHDD105に格納されているファイルXのPC900へのファイル転送要求を示している。また、「プリント X」は、ファイルXのプリント要求を示している。従って、図17に示す例のエージェントは、エージェントを受信する複合機に対して、「ファイルXをPC900にファイル転送し、次にファイルXをプリントする」ことを指示したものである。
In the example of FIG. 17, two service requests “file transfer X to PC” and “print X” are described in one agent in a program format. Here, “file transfer X to PC” indicates a file transfer request to the
複合機100aでは、PC900からのエージェントをNCS128で受信して(ステップS1101)、エージェントアプリ117へ送信する(ステップS1102)。
In the multifunction peripheral 100a, the agent from the
エージェントアプリ117は、受信したエージェントに記述されたサービス要求の内容から、まずファイル転送に必要なネットファイルアプリ115とMCS125を選定する。また、エージェントアプリ117は、受信したエージェントの内容から、プリント機能に必要なプリンタアプリ111とECS124とMCS125とSRM123とを選定する。
The
そして、エージェントアプリ117は、ファイル転送のためネットファイル115に対して、HDD105に格納されているファイルXをPC900にファイル転送する旨のサービス要求を行う(ステップS1103)。
Then, the
ネットファイルアプリ115は、このサービス要求を受信すると、MCS125からHDD105にアクセスして(ステップS1104、S1105)、ファイルXを読み出し、メモリなどに一時的に格納しておく。ネットファイルアプリ115は、読み出しの実行結果をエージェントアプリ117に通知する(ステップS1111)。
Upon receiving this service request, the
また、エージェントアプリ117は、プリンタアプリ111に対して、読み出したファイルXをカラーラインプリンタ102または白黒プリンタ101でプリントする旨の要求を行う(ステップS1106)。
Also, the
プリンタアプリ111は、このプリント要求を受信すると、実施の形態1でプリント動作で説明した手順で、ECS124、MCS125、SRM123間のプロセス間通信を行って(ステップS1107、S1108、S1109)、ファイルXをプリントする(ステップS1110)。そして、プリンタアプリ111は、エージェントアプリ117にプリント実行結果を通知する(ステップS1112)。
Upon receiving this print request, the
つぎに、エージェントアプリ117は、2つの実行結果を追加したエージェントとメモリに一時的に格納されているファイルXを、NCS128によってネットワーク上のPC900に送信する(ステップS1113,S1114)。
Next, the
ここで、エージェントアプリ117を利用しなかった場合の処理について説明しておく。図18は、エージェント機能を利用しない場合のユーザのPCと複合機のやりとりの例を示す模式図である。
Here, processing when the
図18に示すように、エージェントアプリ117がない場合には、ユーザはPC900から「ファイルXのファイル転送」と「ファイルXのプリント」という2つの要求を別々に複合機100aに送信しなければならない。また、各要求に対する応答も別個に受信されることになる。このため、効率的なサービスの提供を受けられないばかりか、ネットワークにアクセスする回数も4回と多くなってしまう。
As shown in FIG. 18, when the
これに対し、図17に示すようにエージェントを利用した場合には、PC900のユーザは「ファイルXのファイル転送とプリント」という2つの要求を一つのエージェントで行えば、エージェントアプリ117によって、必要なアプリ、コントロールサービスが自律的に判断されて各要求に対するサービスの提供を効率的に受けることができる。このため、ネットワークにアクセスする回数も、最初のサービス要求送信時と、最後の実行結果通知およびファイル転送時の2回だけですむので、ネットワークにかかる負荷も軽減する。
On the other hand, when the agent is used as shown in FIG. 17, if the user of the
つぎに、エージェントを利用してネットワークに接続された複数の複合機の間でプロセス間通信を行う場合について説明する。図20は、エージェント機能を複数の複合機に適用した場合のユーザのPCと複合機のやりとりの例を示す模式図である。 Next, a case where inter-process communication is performed between a plurality of multifunction peripherals connected to a network using an agent will be described. FIG. 20 is a schematic diagram illustrating an example of interaction between the user's PC and the multifunction device when the agent function is applied to a plurality of multifunction devices.
図20に示すように、LANなどのネットワークにはPC900と複数の複合機100a,100b,100cが接続されている。複合機100a,100bおよび100cは、いずれも図16に示した構成を有しており、従ってエージェントアプリ117を備えている。また、PC900にはエージェントの送信を行うエージェントエンジン902が搭載されている。
As shown in FIG. 20, a
図20に示すように、エージェントにはサービス要求コマンドが記述されている。このようにサービス要求コマンドが記述されたエージェントは、エージェントを受信した複合機で記述されているサービス要求コマンドのサービス要求が実行可能か否かを調べ、実行可能である場合にサービス要求を行い、実行不可能である場合にネットワークに接続された他の複合機にエージェントを移動(送信)させて、移動先の複合機でサービス要求が実行可能か否かを調べる旨を示したものである。 As shown in FIG. 20, a service request command is described in the agent. The agent in which the service request command is described in this manner checks whether or not the service request of the service request command described in the MFP that has received the agent is executable. In the case where execution is impossible, the agent is moved (transmitted) to another multi-function peripheral connected to the network, and it is checked whether or not a service request can be executed in the target multi-function peripheral.
図20のエージェントの例では、サービス要求コマンドとして「ファクシミリ送信」が指定されているので、エージェントを受信した複合機100aで「ファクシミリ送信」が実行可能か否かを調べ、実行可能である場合には「ファクシミリ送信」のサービス要求を行い、実行不可能である場合にはネットワークに接続された他の複合機100b,100cなどにエージェントを送信して、移動先の複合機で複合機100aと同様に処理を行うことを指示している。
In the example of the agent in FIG. 20, since “facsimile transmission” is designated as the service request command, it is checked whether or not “facsimile transmission” can be executed by the
なお、図20のエージェントの例では、サービス要求コマンドを一つしか指定していないが、複数のサービス要求コマンド指定しても良い。この場合には、指定された複数のサービス要求コマンドに対して順次上記と同様の処理が行われることになる。 In the example of the agent in FIG. 20, only one service request command is specified, but a plurality of service request commands may be specified. In this case, the same processing as described above is sequentially performed on a plurality of designated service request commands.
また、図20のエージェントの例では、サービス要求コマンドしか記述されておらず、この場合、サービス要求が実行できないと判断された場合に自律的にネットワーク内の他の複合機にエージェントが移動することを示しているが、エージェントにおいて、サービス要求コマンドの行の下に、さらに例えば「複合機100aのネットワークアドレス→複合機100bのネットワークアドレス→複合機100cのネットワークアドレス」などを記述して、ネットワーク内で移動する複合機およびエージェントが移動する順番を指定しても良い。
In the example of the agent in FIG. 20, only the service request command is described. In this case, when it is determined that the service request cannot be executed, the agent autonomously moves to another multifunction device in the network. In the agent, below the line of the service request command, for example, “network address of
この場合には、複合機100aでサービス要求が実行できない場合に、エージェントが自律的に複合機100b、ついで複合機100cに移動することを示したこととなる。
In this case, when the service request cannot be executed by the
なお、エージェントは、PC900のエージェントエンジン902によって、例えばtelescriptのGOコマンドを実行することにより複合機100aに送信される。
The agent is transmitted to the multi-function peripheral 100a by executing a telescript GO command by the
複合機100aはこのエージェントをNCS128で受信して、エージェントアプリ117へ送信する。エージェントを受信したエージェントアプリ117はエージェントの内容を解釈し、まずファクシミリ送信に必要なファックスアプリ113、FCS127、ECS124、MCS125およびSRM123の各プロセスが正常に動作しているか否かを調査する。
The
ここで、正常動作の調査は、たとえばエージェントアプリ117から各プロセスに対してアクセスし、アクセスに対する応答があった場合に正常動作していると判断するように構成すれば良い。
Here, the normal operation investigation may be configured such that, for example, each process is accessed from the
そして、ファックスアプリ113、FCS127、ECS124,MCS125およびSRM123のすべてが正常動作している場合は、これらのプロセスを選定し、ファックスアプリ113に対してファクシミリ送信要求を送信する。この場合は、実施の形態1で説明したファクシミリ送信動作の手順と同様の処理が行われる。
If all of the
しかし、ファックスアプリ113、FCS127、ECS124,MCS125およびSRM123のいずれかが異常であると判断された場合は、次のような処理を行う。ここでは、ECSプロセス124が異常であった場合を考える。
However, if any of the
このとき、エージェントアプリ117は、動作が異常であるプロセスのプロセス名と自己のネットワークアドレスなどの情報をエージェントに追加する。そして、ネットワーク901内の複合機を自律的に検索し、最初に発見された複合機(図12の例では複合機100b)にエージェントを送信する。
At this time, the
複合機100bでは、エージェントアプリ117によって複合機100aから送信されてきたエージェントを受信する。そして、複合機100aのエージェントアプリ117と同様にエージェントの内容を解釈し、ファクシミリ送信に必要なプロセスであって、かつエージェントに記述された、複合機100aで動作が異常なプロセスおよびそのプロセスから呼び出されるプロセスであるECS124、MCS125およびSRM123が正常に動作しているか否かを調査する。そして、ECS124、MCS125およびSRM123のいずれもが正常であれば、その旨のメッセージをエージェントに追加して複合機100aに対して送信する。
In the
複合機100aのエージェントアプリ117は、複合機100bからのエージェントを受信すると、複合機100a内のファックスアプリ113とFCS127とを選定するとともに、ECS124、MCS125、SRM123については複合機100b内のものを選定する。これにより、ファクシミリ送信は、ECSプロセス124が正常に動作している複合機100bから行われる。
When the
複合機100aでプロセスの選定が終了したら、ファクシミリ送信処理を次のように実行する。図22は、複合機100aおよび複合機100bにおけるプロセス間通信の流れを示すデータシーケンス図である。 When the selection of the process is completed in the multifunction peripheral 100a, the facsimile transmission process is executed as follows. FIG. 22 is a data sequence diagram illustrating a flow of inter-process communication in the multifunction peripheral 100a and the multifunction peripheral 100b.
複合機100aのエージェントアプリ117は、ファックス送信要求メッセージを、複合機100a内のファックスアプリ127に送信する(ステップS1400)。ファックスアプリ127は、ファックス送信要求メッセージを受信すると、送信スタート要求メソッドを実行して、FCSプロセス127に送信スタート要求メッセージを送信する(ステップS1401)。
The
複合機100aのFCSプロセス127がファックスアプリプロセス113から送信スタート要求メッセージを受信した場合には、送信スタートメソッドを実行して、ジョブ動作モード設定要求メッセージをエージェントに追加する。そして、エージェントアプリ117によって複合機100bのネットワークアドレスにエージェントを送信する(ステップS1402)。これにより、ジョブ動作モード設定メッセージは、エージェントによってネットワークアドレスで指定された複合機100bに送信される。
When the
複合機100bでは、エージェントアプリ117によってエージェントを受信して、エージェントに記述されているジョブ動作モード設定要求メッセージをECSプロセス124に送信する(ステップS1403)。複合機100bのECSプロセス124は、ジョブ動作モード設定要求メッセージを受信すると、ジョブ動作モード設定メソッドを実行してプリンタジョブの動作モード設定を行い、実行結果メッセージをエージェントに追加してエージェントアプリ117によってエージェントを複合機100aに送信する(ステップS1404)。
In the multifunction peripheral 100b, the
複合機100aは、複合機100bからのエージェントをエージェントアプリ117で受信して、エージェントに記述されている実行結果メッセージをFCSプロセス127に送信する(ステップS1405)。FCSプロセス127は実行結果メッセージを受信すると、ジョブスタート要求メソッドを実行してジョブスタート要求メッセージをエージェントに追加する。そして、エージェントアプリ117によって複合機100bにエージェントを送信する(ステップS1406)。
The
複合機100bでは、エージェントアプリ117によってエージェントを受信して、エージェントに記述されているジョブスタート要求メッセージをECSプロセス124に送信する(ステップS1407)。複合機100bのECSプロセス124はジョブスタート要求メッセージを受信すると、ジョブスタートメソッドを実行して、プリンタジョブの開始処理を行い、その実行結果メッセージをエージェントに追加してエージェントアプリ117によってエージェントを複合機100aに送信する(ステップS1408)。
In the multifunction peripheral 100b, the
複合機100aでは、複合機100bからのエージェントをエージェントアプリ117で受信して、エージェントに記述されている実行結果メッセージをFCSプロセス127に送信する(ステップS1409)。
In the
一方、複合機100bでは、ECSプロセス124がメモリ確保要求メソッドを実行して複合機100b内のMCSプロセス125に対してメモリ確保要求メッセージを送信する(ステップS1410)。また、スキャナエンジンの資源獲得のため、資源獲得要求メソッドを実行して、複合機100b内のSRMプロセス123に対して資源獲得要求メッセージを送信する(ステップS1411)。かかるメッセージの受信に対するMCSプロセス125およびSRMプロセス123の処理は、実施の形態1で説明した動作と同様であるため説明を省略する。 複合機100bのECSプロセス124は、資源獲得の実行結果メッセージを受信したら、スキャンパラメータ確定要求メソッドを実行してスキャンパラメータ確定要求メッセージをエージェントに追加して、エージェントアプリ117によってエージェントを複合機100aに送信する(ステップS1412)。
On the other hand, in the
複合機100aでは、エージェントアプリ117によってエージェントを受信して、エージェントに記述されているスキャンパラメータ確定要求メッセージをFCSプロセス127に送信する(ステップS1413)。FCSプロセス127は、このスキャンパラメータ確定要求メッセージを受信すると、スキャンパラメータのメッセージをエージェントに追加して、エージェントアプリ117によってエージェントを複合機100bに送信する(ステップS1414)。複合機100bは、複合機100aから送信されたエージェントをエージェントアプリ117によって受信して、エージェントに記述されたスキャンパラメータメッセージをECSプロセス124に送信する(ステップS1415)。
In the
これ以降のプロセス間通信は、同一複合機100bの内部で行われるものであり、実施の形態1で説明したファクシミリ送信動作と同様であるため説明を省略する。これにより、複合機100aにおけるファクシミリ送信スタート要求に対して、複合機100bでファクシミリ送信が行われることになる。
The subsequent inter-process communication is performed within the same multi-function peripheral 100b and is the same as the facsimile transmission operation described in the first embodiment, and thus the description thereof is omitted. Thus, in response to the facsimile transmission start request in the
複合機100bにおけるスキャンおよびファクシミリ送信処理が終了すると、複合機100bのECSプロセス124は、スキャン終了通知メッセージをエージェントに追加し、エージェントアプリ117によってこのエージェントを複合機100aに送信する(ステップS1416)。複合機100aでは、このエージェントをエージェントアプリ117によって受信し、エージェントに記述されたスキャン終了通知メッセージをFCSプロセス127に送信する(ステップS1417)。
When the scanning and facsimile transmission processing in the
そして、複合機100aでは、エージェントアプリ117によってファクシミリ送信の実行結果をエージェントに追加して、このエージェントを複合機100bに送信する(ステップS1418)。複合機100bのエージェントアプリ117は、このエージェントを受信してPC900に転送する(ステップS1419)。エージェントがPC900で受信されることによって、ファクシミリ送信動作を完了する。
In the
なお、この実施の形態3では、複合機100bにおいて必要なプロセスが正常動作している場合について説明したが、複合機100bでも必要なプロセスに異常があった場合には、エージェントアプリ117によってエージェントはネットワーク上の他の複合機、例えば複合機100cに送信され、上述の複合機100bにおける処理と同様の処理が行われる。
In the third embodiment, the case where a necessary process is operating normally in the
また、実施の形態3の複合機100a,100bでは、ECSプロセス124が正常動作していない場合を例にあげて説明したが、他のコントロールサービスあるいはアプリケーションのプロセスに異常があった場合あるいは存在しない場合も同様の処理が行われる。この場合、コントロールサービスは存在するが、エージェントアプリ117を除いたアプリケーションが存在しない複合機であってもよい。
Further, in the
ここで、エージェントアプリ117を利用しなかった場合の処理について説明しておく。図21は、エージェント機能を利用しない場合のユーザのPCから複合機100a,100bに対するファックス送信要求のやりとりの例を示す模式図である。
Here, processing when the
図21に示すように、ユーザがPC900から複合機100aに対して、(1)ファックス送信要求を行った場合で、ECS124など必要なプロセスが正常動作していない場合には、複合機100aからPC900に対して、(2)ファクス送信不可の応答メッセージが送信される。
As shown in FIG. 21, when a user makes a fax transmission request from the
このため、ユーザはPC900から別の複合機100bに対して、(3)ファックス送信要求を行う必要がある。複合機100bにおいてファックス送信に必要なプロセスがすべて正常動作している場合には、ファックス送信が行われ、複合機100bからPC900に対して、(4)完了通知が送信されてくるが、複合機100bでもファックス送信が不可能な場合にはユーザはさらに別の複合機に対してファックス送信要求を行う必要があり、ユーザの操作がきわめて煩雑なものとなる。また、ファックス送信要求を繰り返し行えば、それだけPC900と複合機100a,100b間のネットワーク901の占有が生じてしまい、ネットワーク負荷も過大なものとなる。
Therefore, the user needs to make a (3) fax transmission request from the
これに対し、図20に示す実施の形態3の複合機100aのようにエージェントとエージェントアプリ117を使用した場合には、PC900のユーザはファックス送信要求が記述された1つのエージェントを、複合機100aに対して1回だけ送信するだけで、たとえ複合機100aがファックス送信が不可能な状態であっても、上述のようにエージェントアプリ117が自律的にファックス送信可能な複合機をネットワーク内で自律的に検索して、検索された複合機100bによってファックス送信を行うようになっているので、多種多様な複合機のサービスをユーザに効率的に提供することができる。
On the other hand, when the agent and the
また、PC900と複合機100a,100b間のネットワークのアクセス回数も、最初のサービス要求送信時と、最後の完了通知の2回だけですむので、ネットワークにかかる負荷も軽減することとなる。
In addition, since the number of times of network access between the
なお、実施の形態3の複合機100a,100bでは、本発明のエージェント処理手段としてエージェントアプリ117を設けているが、エージェント処理手段に相当するプロセスを、アプリケーション層ではなくコントロールサービス層に設けても良い。この場合、既存のコントロールサービスとは別個に、例えばエージェントコントロールサービスを設けてエージェント処理手段を構成する他、例えば、SCS122などの既存のコントロールサービスのプロセスにエージェント処理を行うスレッドを設ける構成としてもよい。
In the
また、実施の形態3において、図17および図20で示したエージェントの内容は、一例を示すものであり、複合機100の構成および機能、またはネットワーク901の構成などにより任意に記述することが可能である。また、エージェントの記述形式も、実施の形態3のエージェント例に限定されるものではなく、PC900のエージェントエンジン902やエージェントアプリ117の種類によって任意の形式とすることが可能である。
Further, in the third embodiment, the contents of the agent shown in FIGS. 17 and 20 show an example, and can be arbitrarily described by the configuration and function of the multifunction peripheral 100 or the configuration of the
本発明は、具体的に開示された実施の形態に限定されるものでなく、本発明の範囲内で種々の変形や変更が可能である。 The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made within the scope of the present invention.
100,100a,100b,100c 複合機
101 白黒ラインプリンタ
102 カラーラインプリンタ
103 スキャナ
104 ファクシミリ
105 ハードディスク(HDD)
106 ネットワークインターフェース
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 ネットファイルアプリ
116 工程検査アプリ
120 プラットホーム
121 汎用OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 FCUH
130 アプリケーション
201,1600 クライアントプロセス
202,1610,1620 サーバプロセス
900 PC
901 ネットワーク
902 エージェントエンジン
1601,1613,1623 スレッド
1602 クライアントスタブ
1603 クライアントディスパッチャ
1611,1621 サーバディスパッチャ
1612,1622 サーバスケルトン
100, 100a, 100b, 100c
106 Network interface 110
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 FCUH
130
Claims (11)
一または複数のサービス要求を含むエージェントを受信し、該エージェントのサービス要求ごとに一または複数の前記コントロールサービスを選定して、選定された前記コントロールサービスに対してサービス要求を行うエージェント処理手段を備えたことを特徴とする画像形成装置。 An image forming apparatus having hardware resources used in image forming processing, and one or a plurality of programs for performing processing of user service and control service related to image formation,
Agent processing means for receiving an agent including one or a plurality of service requests, selecting one or a plurality of the control services for each service request of the agent, and making a service request for the selected control services An image forming apparatus.
一または複数のサービス要求を含むエージェントを受信するエージェント受信ステップと、
前記エージェントのサービス要求ごとに一または複数の前記コントロールサービスのプロセスを選定して、選定された前記コントロールサービスのプロセスに対してサービス要求を行うエージェント処理ステップと
を含んだことを特徴とするプロセス間通信方法。 There is an inter-process communication method for performing process communication in an image forming apparatus having hardware resources used in image forming processing and one or a plurality of programs for processing user service and control service related to image forming,
An agent receiving step for receiving an agent including one or more service requests;
And an agent processing step of selecting one or a plurality of control service processes for each service request of the agent and making a service request for the selected control service process. Communication method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006172507A JP4350728B2 (en) | 2001-09-21 | 2006-06-22 | Image forming apparatus and interprocess communication method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001290168 | 2001-09-21 | ||
JP2006172507A JP4350728B2 (en) | 2001-09-21 | 2006-06-22 | Image forming apparatus and interprocess communication method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002244002A Division JP4052902B2 (en) | 2001-08-27 | 2002-08-23 | Image forming apparatus and interprocess communication method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007012057A true JP2007012057A (en) | 2007-01-18 |
JP4350728B2 JP4350728B2 (en) | 2009-10-21 |
Family
ID=37750382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006172507A Expired - Fee Related JP4350728B2 (en) | 2001-09-21 | 2006-06-22 | Image forming apparatus and interprocess communication method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4350728B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008236610A (en) * | 2007-03-23 | 2008-10-02 | Kyocera Mita Corp | Image forming apparatus, image forming method, and application program |
JP2009070290A (en) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | Network equipment, service providing method and service providing program |
JP2011123842A (en) * | 2009-12-14 | 2011-06-23 | Ricoh Co Ltd | Image forming apparatus, function addition method, and program |
-
2006
- 2006-06-22 JP JP2006172507A patent/JP4350728B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008236610A (en) * | 2007-03-23 | 2008-10-02 | Kyocera Mita Corp | Image forming apparatus, image forming method, and application program |
JP2009070290A (en) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | Network equipment, service providing method and service providing program |
JP2011123842A (en) * | 2009-12-14 | 2011-06-23 | Ricoh Co Ltd | Image forming apparatus, function addition method, and program |
US8635633B2 (en) | 2009-12-14 | 2014-01-21 | Ricoh Company, Ltd. | Image forming apparatus, function adding method, and computer-readable recording medium |
Also Published As
Publication number | Publication date |
---|---|
JP4350728B2 (en) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5717842A (en) | Method of managing memory allocation in a printing system | |
US7209249B2 (en) | Method of and apparatus for image formation, and computer product | |
US5923826A (en) | Copier/printer with print queue disposed remotely thereof | |
JP3679349B2 (en) | Image forming apparatus, image forming method, image forming program, and application program | |
US20030055890A1 (en) | Information processing system | |
JP2002082806A (en) | Device and method for forming image and program | |
JP6066006B2 (en) | Image forming apparatus | |
US6671065B1 (en) | Method and apparatus to optimize transition of resources from a lower priority to a higher priority job | |
US6717690B1 (en) | Method and apparatus for managing job contention for system resources in an electrographic reproduction system where images are multibanded | |
US6570670B1 (en) | Method and apparatus to enable job streaming for a set of commonly shared resources | |
US5970222A (en) | Memory management system for printing a print job with limited capacity | |
JP4350728B2 (en) | Image forming apparatus and interprocess communication method | |
US6501559B1 (en) | Method and apparatus for managing job contention for system resources in an electronic reprographic system | |
JP4052902B2 (en) | Image forming apparatus and interprocess communication method | |
JP4052901B2 (en) | Device having inter-process communication function | |
JP3910993B2 (en) | Image forming apparatus, image forming method, and image forming program | |
JP2006139776A (en) | Information processing system | |
US8180181B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP3910992B2 (en) | Image forming apparatus, image forming method, and image forming program | |
JP3478639B2 (en) | Copy system | |
JP2004164582A (en) | Information processing apparatus and program generation method | |
JP2003177931A (en) | Image forming device | |
JP2006005963A (en) | Information processor and information processing method | |
JP2022164784A (en) | Program, control method, and information processing apparatus | |
JP2000276012A (en) | Method for developing composite equipment groups |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090421 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090515 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090721 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090722 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4350728 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130731 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |