Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5407783B2 - Information processing apparatus, information processing method, and information processing program - Google Patents
[go: Go Back, main page]

JP5407783B2 - Information processing apparatus, information processing method, and information processing program - Google Patents

Information processing apparatus, information processing method, and information processing program Download PDF

Info

Publication number
JP5407783B2
JP5407783B2 JP2009260185A JP2009260185A JP5407783B2 JP 5407783 B2 JP5407783 B2 JP 5407783B2 JP 2009260185 A JP2009260185 A JP 2009260185A JP 2009260185 A JP2009260185 A JP 2009260185A JP 5407783 B2 JP5407783 B2 JP 5407783B2
Authority
JP
Japan
Prior art keywords
information
virtual machine
processing
conversion
counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009260185A
Other languages
Japanese (ja)
Other versions
JP2011107831A (en
Inventor
英一郎 吉田
真二郎 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009260185A priority Critical patent/JP5407783B2/en
Publication of JP2011107831A publication Critical patent/JP2011107831A/en
Application granted granted Critical
Publication of JP5407783B2 publication Critical patent/JP5407783B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and an information processing program.

従来から、顧客ごとに最適なオフィス環境を提供するために、顧客ごとにアプリケーションの追加、又は削除可能なシステムが検討されている。この追加されるアプリケーションには、様々なメーカが開発するものも含まれる。当該追加により、システムの基本機能が損なわれるものであってはならない。   Conventionally, in order to provide an optimal office environment for each customer, a system capable of adding or deleting an application for each customer has been studied. This added application includes those developed by various manufacturers. The addition should not impair the basic functions of the system.

UNIX(登録商標)等のプロセスベースのOSでシステムを構築する場合、システムの堅牢性を向上させるために適切な粒度でプロセスを分割するのが一般的である。しかし、開発言語としてJava(登録商標)を用いる場合、単一の仮想マシン(JVM)上で複数のアプリケーションを動作させることになる。この場合、細かい粒度でプロセスを分割するのは現実的ではないが、各アプリケーションを動作させる仮想マシンを分離することで、システムの堅牢性を向上させることができる。ここで、堅牢性とは、プログラムにおいて、エラーや例外等に強く、簡単には暴走しないことをいう。   When a system is built with a process-based OS such as UNIX (registered trademark), it is common to divide the process at an appropriate granularity in order to improve the robustness of the system. However, when Java (registered trademark) is used as a development language, a plurality of applications are operated on a single virtual machine (JVM). In this case, although it is not realistic to divide the process with fine granularity, the robustness of the system can be improved by separating the virtual machines that operate each application. Here, robustness means that the program is resistant to errors and exceptions and does not easily run away.

そこで、近年、複数のJava(登録商標)仮想マシンを動作させる技術として、マルチVM(MVM:Multi Virtual Machine)が提案されている。このマルチVMの技術を用いて、アプリケーション毎にVMを分けることで、あるアプリケーションの影響を他のアプリケーションに及ぼすのを抑止できる。   Therefore, in recent years, a multi virtual machine (MVM) has been proposed as a technique for operating a plurality of Java (registered trademark) virtual machines. By using this multi-VM technology and dividing VMs for each application, it is possible to suppress the influence of a certain application on other applications.

ところで、現在、複数のアプリケーションが搭載された装置の一種として画像処理装置が存在する。当該画像処理装置では、FAXアプリケーションや、コピーアプリケーションなど様々なアプリケーションが搭載されているだけでなく、ユーザの要求に応じて様々なアプリケーションが搭載可能となっている。そして、引用文献1に示すように、複数のアプリケーションが実行された処理の回数については、カウンタ用の記録手段で一括管理している。   By the way, an image processing apparatus currently exists as a kind of apparatus on which a plurality of applications are installed. In the image processing apparatus, not only various applications such as a FAX application and a copy application are mounted, but also various applications can be mounted according to a user request. As shown in cited document 1, the number of processes executed by a plurality of applications is collectively managed by a counter recording means.

しかしながら、引用文献1は、単一の計算機上で複数のアプリケーションのカウントを集計する技術であって、単一の計算機上に複数の仮想マシンを動作させ、仮想マシン毎にアプリケーションを起動させた場合に、各アプリケーションのカウントを集計する技術については記載されていない。   However, Cited Document 1 is a technique for counting the counts of a plurality of applications on a single computer, and when a plurality of virtual machines are operated on a single computer and the applications are started for each virtual machine. However, it does not describe the technology for counting the counts of each application.

仮に、マルチVMで一つのVM上で、全てのVM上で動作するアプリケーションのカウントを集計しようとした場合、カウントを行うために必要な入力データがVM間のデータ転送量が大きくなり、実行速度が低下するという問題がある。   If an attempt is made to count the counts of applications that run on all VMs on a single VM in a multi-VM, the input data required to perform the count increases the data transfer amount between the VMs, and the execution speed There is a problem that decreases.

本発明は、上記に鑑みてなされたものであって、実行速度の低下を抑止するために処理の効率化を図る情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。   The present invention has been made in view of the above, and an object of the present invention is to provide an information processing apparatus, an information processing method, and an information processing program that improve processing efficiency in order to suppress a decrease in execution speed. .

上述した課題を解決し、目的を達成するために、本発明にかかる情報処理装置は、プログラムの実行で実現された第1の仮想マシンと、第2の仮想マシンと、を動作させる情報処理装置において、仮想マシンで行われた処理回数を示す処理回数情報を記憶する第1の記憶手段と、仮想マシンで行われた処理の結果を示す入力情報から、当該処理を当該仮想マシンが実行した回数を示す実行回数情報に変換する変換情報を、記憶する第2の記憶手段と、前記第2の記憶手段に記憶された前記変換情報を、前記第2の仮想マシンに出力する第1の出力手段と、前記第1の出力手段により出力された前記変換情報に従って、前記第2の仮想マシン上で、前記入力情報から実行回数情報に変換する変換手段と、前記変換手段で変換された前記実行回数情報を、前記第1の仮想マシンに出力する第2の出力手段と、前記第2の出力手段により出力された前記実行回数情報に基づいて、前記第1の仮想マシンから前記第1の記憶手段の前記処理回数情報を書き込む書込手段と、を備えたことを特徴とする。   In order to solve the above-described problems and achieve the object, an information processing apparatus according to the present invention operates an information processing apparatus that operates a first virtual machine and a second virtual machine that are realized by executing a program. The number of times the virtual machine has executed the process from the first storage means for storing the process count information indicating the number of processes performed in the virtual machine and the input information indicating the result of the process performed in the virtual machine. The second storage means for storing the conversion information to be converted into the execution frequency information indicating, and the first output means for outputting the conversion information stored in the second storage means to the second virtual machine And conversion means for converting the input information into execution frequency information on the second virtual machine according to the conversion information output by the first output means, and the execution frequency converted by the conversion means. Second output means for outputting information to the first virtual machine, and the first storage means from the first virtual machine based on the execution frequency information outputted by the second output means And writing means for writing the processing frequency information.

また、本発明にかかる情報処理方法は、プログラムの実行で実現された第1の仮想マシンと、第2の仮想マシンと、を動作させる情報処理装置で実行される情報処理方法であって、前記情報処理装置が、仮想マシンで行われた処理回数を示す処理回数情報を記憶する第1の記憶手段と、仮想マシンで行われた処理の結果を示す入力情報から、当該処理を当該仮想マシンが実行した回数を示す実行回数情報に変換する変換情報を、記憶する第2の記憶手段と、を備え、第1の出力手段が、前記第2の記憶手段に記憶された前記変換情報を、前記第2の仮想マシンに出力する第1の出力ステップと、変換手段が、前記第1の出力ステップにより出力された前記変換情報に従って、前記第2の仮想マシン上で、前記入力情報から実行回数情報に変換する変換ステップと、第2の出力手段が、前記変換ステップで変換された前記実行回数情報を、前記第1の仮想マシンに出力する第2の出力ステップと、書込手段が、前記第2の出力ステップにより出力された前記実行回数情報に基づいて、前記第1の仮想マシンから前記第1の記憶手段の前記処理回数情報に書き込む書込ステップと、を含むことを特徴とする。   An information processing method according to the present invention is an information processing method executed by an information processing apparatus that operates a first virtual machine and a second virtual machine realized by executing a program, The virtual machine performs the process from the first storage means for storing the processing count information indicating the number of times the processing has been performed in the virtual machine and the input information indicating the result of the processing performed in the virtual machine. Second storage means for storing conversion information to be converted into execution frequency information indicating the number of executions, and the first output means stores the conversion information stored in the second storage means, A first output step that outputs to the second virtual machine, and a conversion means executes execution time information from the input information on the second virtual machine according to the conversion information output by the first output step. Conversion to A conversion step; a second output unit that outputs the execution frequency information converted in the conversion step to the first virtual machine; and a writing unit that includes the second output unit. And a writing step of writing from the first virtual machine to the processing count information of the first storage unit based on the execution count information output by the output step.

また、本発明にかかる情報処理プログラムは、第1の仮想マシンと、第2の仮想マシンと、を動作させるコンピュータで実行される情報処理プログラムであって、前記コンピュータが、仮想マシンで行われた処理回数を示す処理回数情報を記憶する第1の記憶手段と、仮想マシンで行われた処理の結果を示す入力情報から、当該処理を当該仮想マシンが実行した回数を示す実行回数情報に変換する変換情報を、記憶する第2の記憶手段と、を備え、前記第2の記憶手段に記憶された前記変換情報を、前記第2の仮想マシンに出力する第1の出力手段と、前記第1の出力手段により出力された前記変換情報に従って、前記第2の仮想マシン上で、前記入力情報から実行回数情報に変換する変換手段と、前記変換手段で変換された前記実行回数情報を、前記第1の仮想マシンに出力する第2の出力手段と、前記第2の出力手段により出力された前記実行回数情報に基づいて、前記第1の仮想マシンから前記第1の記憶手段の前記処理回数情報に書き込む書込手段と、して機能させることを特徴とする。   An information processing program according to the present invention is an information processing program executed by a computer that operates a first virtual machine and a second virtual machine, and the computer is executed by a virtual machine. The first storage means for storing the processing count information indicating the processing count and the input information indicating the result of the processing performed in the virtual machine are converted into the execution count information indicating the number of times that the virtual machine has been executed. Second storage means for storing conversion information, first output means for outputting the conversion information stored in the second storage means to the second virtual machine, and the first Conversion means for converting the input information into execution frequency information on the second virtual machine in accordance with the conversion information output by the output means, and the execution frequency information converted by the conversion means. Of the first storage means from the first virtual machine based on the second output means for outputting to the first virtual machine and the execution frequency information outputted by the second output means It is made to function as a writing means for writing in the processing frequency information.

本発明によれば、仮想マシン間で入出力されるデータ量を削減することで、実行速度の低下を抑止できるという効果を奏する。   According to the present invention, it is possible to suppress a decrease in execution speed by reducing the amount of data input / output between virtual machines.

図1は、第1の実施の形態にかかる複合機の構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of a multifunction peripheral according to the first embodiment. 図2は、第1の実施の形態にかかる入力データの構造の一例を示した図である。FIG. 2 is a diagram illustrating an example of the structure of input data according to the first embodiment. 図3は、第1の実施の形態にかかる複合機上で動作する仮想マシンの概念を示した説明図である。FIG. 3 is an explanatory diagram illustrating a concept of a virtual machine that operates on the multifunction peripheral according to the first embodiment. 図4は、第1の実施の形態にかかるカウンタデシジョンテーブルのテーブル構造の一例を示した図である。FIG. 4 is a diagram illustrating an example of a table structure of the counter decision table according to the first embodiment. 図5は、レコード変換制御サービスの変換部で行われる変換を示した説明図である。FIG. 5 is an explanatory diagram showing conversion performed by the conversion unit of the record conversion control service. 図6は、第1の実施の形態にかかる複合機における、HDDに対するカウンタに関するデータのインストールを表した説明図である。FIG. 6 is an explanatory diagram illustrating installation of data related to a counter for the HDD in the multi-function peripheral according to the first embodiment. 図7は、第1の実施の形態にかかる複合機における、通常起動時に各仮想マシンで行う処理を示した説明図である。FIG. 7 is an explanatory diagram illustrating a process performed by each virtual machine during normal startup in the multifunction peripheral according to the first embodiment. 図8は、第1の実施の形態にかかる複合機における、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。FIG. 8 is an explanatory diagram illustrating a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral according to the first embodiment. 図9は、第1の実施の形態にかかる複合機における、仮想マシンによるカウントの書き込みまでの処理の手順を示すフローチャートである。FIG. 9 is a flowchart of a process procedure until the count is written by the virtual machine in the multifunction machine according to the first embodiment. 図10は、第1の実施の形態の変形例にかかる複合機における、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。FIG. 10 is an explanatory diagram showing a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral according to the modification of the first embodiment. 図11は、第1の実施の形態の変形例にかかる複合機における、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。FIG. 11 is an explanatory diagram illustrating a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral according to the modification of the first embodiment. 図12は、第2の実施の形態にかかる複合機の構成を示すブロック図である。FIG. 12 is a block diagram illustrating a configuration of a multifunction machine according to the second embodiment. 図13は、第2の実施の形態にかかる複合機における、スレーブVMに対するアプリケーションのインストールを表した説明図である。FIG. 13 is an explanatory diagram illustrating installation of an application to the slave VM in the multifunction machine according to the second embodiment. 図14は、第2の実施の形態にかかる複合機における、通常起動時に各仮想マシンで行う処理を示した説明図である。FIG. 14 is an explanatory diagram illustrating a process performed by each virtual machine during normal startup in the multifunction peripheral according to the second embodiment. 図15は、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。FIG. 15 is an explanatory diagram showing a flow of processing when counting is performed in accordance with processing performed in each virtual machine. 図16は、第2の実施の形態の変形例にかかる複合機において、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。FIG. 16 is an explanatory diagram illustrating a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral according to the modification example of the second embodiment. 図17は、第3の実施の形態にかかる複合機において、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。FIG. 17 is an explanatory diagram showing a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral according to the third embodiment. 図18は、第3の実施の形態にかかる複合機上の、第2のスレーブVMの判定部による判定手法を示した概念図である。FIG. 18 is a conceptual diagram illustrating a determination method by the determination unit of the second slave VM on the multi-function peripheral according to the third embodiment. 図19は、判定部が判定を行う手順を示したプログラムコードを示す図である。FIG. 19 is a diagram illustrating a program code illustrating a procedure for the determination unit to perform determination. 図20は、第4の実施の形態にかかる複合機の構成を示すブロック図である。FIG. 20 is a block diagram illustrating a configuration of a multifunction machine according to the fourth embodiment. 図21は、NANDフラッシュメモリと、NVRAMと、の関係を示した概念図である。FIG. 21 is a conceptual diagram showing the relationship between the NAND flash memory and the NVRAM. 図22は、本実施の形態にかかる複合機における、処理に基づくカウントの更新からカウントの閲覧処理の手順を示すシーケンス図である。FIG. 22 is a sequence diagram illustrating a procedure of count browsing processing from count updating based on processing in the multi-function peripheral according to the present embodiment. 図23は、本実施の形態にかかる複合機におけるカウントアップ更新時の処理の手順を示すフローチャートである。FIG. 23 is a flowchart showing a procedure of processing at the time of count-up update in the multifunction machine according to the present embodiment. 図24は、第1〜4の実施の形態及び変形例にかかる複合機のハードウェア構成を示すブロック図である。FIG. 24 is a block diagram illustrating a hardware configuration of the MFP according to the first to fourth embodiments and modifications.

以下に添付図面を参照して、この発明にかかる情報処理装置、情報処理方法、及び情報処理プログラムの一実施の形態を詳細に説明する。以下に示す実施の形態においては、情報処理装置、情報処理方法、及び情報処理プログラムを適用した画像形成装置について説明する。   Exemplary embodiments of an information processing apparatus, an information processing method, and an information processing program according to the present invention will be explained below in detail with reference to the accompanying drawings. In the embodiments described below, an information processing apparatus, an information processing method, and an image forming apparatus to which an information processing program is applied will be described.

(第1の実施の形態)
図1は、第1の実施の形態にかかる画像形成装置の構成を示すブロック図である。本実施の形態では、画像形成装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機100に適用した例を挙げて説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
(First embodiment)
FIG. 1 is a block diagram illustrating the configuration of the image forming apparatus according to the first embodiment. In this embodiment, an example in which the image forming apparatus is applied to a multifunction peripheral 100 having at least two functions among a copy function, a printer function, a scanner function, and a facsimile function will be described. The present invention can be applied to any image forming apparatus such as an apparatus or a facsimile apparatus.

複合機100は、ソフトウェア構成として、メインOS101と、仮想マシン制御部102と、共通メカニズム103と、サービス群104と、アプリケーション群105とを備え、エンジンI/Fを介して様々なハードウェアリソースにアクセス可能としている。   The MFP 100 includes a main OS 101, a virtual machine control unit 102, a common mechanism 103, a service group 104, and an application group 105 as software configurations, and can be used for various hardware resources via the engine I / F. It is accessible.

そして、複合機100は、ハードウェアリソースとして、HDD151と、タッチパネル152と、電話回線I/F153と、スキャナ154と、プロッタ155と、その他ハードウェアリソース156と、を備えている。   The multi-function device 100 includes an HDD 151, a touch panel 152, a telephone line I / F 153, a scanner 154, a plotter 155, and other hardware resources 156 as hardware resources.

HDD151は、データの記憶するハードウェアリソースとする。HDD151は、例えば、データベースに格納されたデータ等を記憶する。電話回線I/F153は、電話回線に接続するためのインターフェースとする。   The HDD 151 is a hardware resource for storing data. The HDD 151 stores, for example, data stored in a database. The telephone line I / F 153 is an interface for connecting to a telephone line.

次に、複合機100のソフトウェア構成について説明する。アプリケーション群105は、仮想マシン上で動作するプログラム群で構成され、コピーアプリケーション131と、プリンタアプリケーション132と、FAXアプリケーション133と、ユーザアプリケーション134と、ジョブコントローラ135とを備えている。このように複合機100は、アプリケーション群105として、ユーザが識別可能な単位の機能を提供する複数のプログラムが格納されている。   Next, the software configuration of the multifunction machine 100 will be described. The application group 105 includes a program group that operates on the virtual machine, and includes a copy application 131, a printer application 132, a FAX application 133, a user application 134, and a job controller 135. As described above, the MFP 100 stores, as the application group 105, a plurality of programs that provide functions in units that can be identified by the user.

コピーアプリケーション131は、入力された紙原稿のスキャンから、当該紙原稿を複製した複製紙を生成するまでの処理を統括するアプリケーションとする。プリンタアプリケーション132は、複合機100が保持する又は入力された画像データを、記録紙に対して出力するまでの処理を制御するアプリケーションとする。FAXアプリケーション133は、電話回線I/F153を介して入力された画像データが入力された場合に、当該画像データが印刷された記録紙を出力するまでの処理を制御するアプリケーションとする。ユーザアプリケーション134は、ユーザが生成したアプリケーションであって、プラグイン管理部111から入力されたアプリケーションとする。   The copy application 131 is an application that supervises the processing from the scanning of an input paper document to the generation of a duplicate paper that duplicates the paper document. The printer application 132 is an application that controls processing until image data held or input by the multi-function peripheral 100 is output to recording paper. The FAX application 133 is an application that controls processing up to outputting a recording sheet on which image data is printed when image data input via the telephone line I / F 153 is input. The user application 134 is an application generated by the user and input from the plug-in management unit 111.

ジョブコントローラ135は、ジョブの実行順や、ジョブ毎の実行/中断/最下位などを制御するコントローラとする。   The job controller 135 is a controller that controls the job execution order and the execution / interruption / lowest level of each job.

そして、本実施の形態にかかる複合機100では、コピーアプリケーション131、プリンタアプリケーション132、FAXアプリケーション133、及びユーザアプリケーション134は、任意の仮想マシンに割り当てられる。また、ジョブコントローラ135は、各仮想マシンにそれぞれ割り当てられる。これにより仮想マシンごとにジョブの管理が可能となる。   In the MFP 100 according to the present embodiment, the copy application 131, the printer application 132, the FAX application 133, and the user application 134 are assigned to an arbitrary virtual machine. A job controller 135 is assigned to each virtual machine. This makes it possible to manage jobs for each virtual machine.

そして、コピーアプリケーション131、プリンタアプリケーション132、FAXアプリケーション133、及びユーザアプリケーション134は、処理を行う度に、当該処理をカウントするための入力データを、サービス群104のレコード変換制御サービス121に対して出力する。   Each time the copy application 131, printer application 132, FAX application 133, and user application 134 perform processing, input data for counting the processing is output to the record conversion control service 121 of the service group 104. To do.

図2は、入力データの構造の一例を示した図である。図2に示すように、入力データは、キーと値とが対応付けられたテーブル構造となっている。図2に示す入力データは、プリンタアプリケーション132により出力された入力データとして、印刷した印刷用紙一枚分の処理結果を示す情報が格納されている。なお、他のアプリケーションが出力する入力データについても同様にキーと値とが対応付けられたテーブル構造となるものとする。なお、他のアプリケーションの具体的な入力データについては、説明を省略する。   FIG. 2 is a diagram showing an example of the structure of input data. As shown in FIG. 2, the input data has a table structure in which keys and values are associated with each other. The input data shown in FIG. 2 stores information indicating the processing result for one printed printing sheet as input data output by the printer application 132. It is assumed that the input data output by other applications has a table structure in which keys and values are similarly associated with each other. Note that description of specific input data of other applications is omitted.

図1に戻り、メインOS101は、複合機100のハードウェアリソースと、ソフトウェアリソースと、を管理するプログラムとする。メインOS101は、プログラムの起動、情報の読み込み制御、保存制御等を行うものとする。   Returning to FIG. 1, the main OS 101 is a program that manages hardware resources and software resources of the multifunction peripheral 100. The main OS 101 performs program startup, information reading control, storage control, and the like.

共通メカニズム103は、仮想マシン上で動作するプログラム群で構成され、プラグイン管理部111と、履歴制御部112とを、備え、アプリケーション群105に格納するアプリケーションを含む、コンポーネントの追加、更新、削除、正当性の確認などを行う。   The common mechanism 103 includes a program group that operates on a virtual machine, includes a plug-in management unit 111 and a history control unit 112, and includes addition, update, and deletion of components including an application stored in the application group 105. Check the validity.

プラグイン管理部111は、アプリケーション群105やサービス群104に対する、コンポーネントの追加、更新、削除、正当性の確認を制御する。   The plug-in management unit 111 controls addition, update, deletion, and confirmation of validity of components for the application group 105 and the service group 104.

履歴制御部112は、コンポーネントの追加、更新、削除、正当性の確認が行われたことを示す情報を、履歴として保持する制御を行う。   The history control unit 112 performs control to hold information indicating that component addition, update, deletion, and confirmation of validity have been performed as a history.

本実施の形態にかかる複合機100においては、プラグイン管理部111を利用することで、当該複合機100を提供しているメーカ以外であっても、カスタマイズアプリをプラグインとして、インストールすることができる。   In the MFP 100 according to the present embodiment, by using the plug-in management unit 111, a customized application can be installed as a plug-in even by a manufacturer other than the manufacturer that provides the MFP 100. it can.

仮想マシン制御部102は、メインOS101上で、複数の仮想マシンを動作させる制御を行う。仮想マシンの例としては、Java(登録商標)仮想マシンがある。本実施の形態においては、マルチVM技術を適用することで、複数の仮想マシンを動作させることができる。   The virtual machine control unit 102 performs control for operating a plurality of virtual machines on the main OS 101. An example of a virtual machine is a Java (registered trademark) virtual machine. In the present embodiment, a plurality of virtual machines can be operated by applying the multi-VM technology.

つまり、本実施の形態にかかる複合機100では、プラグイン管理部111を利用することで、ユーザ等がカスタマイズアプリをインストールできる。これらインストールされたカスタマイズアプリは、複合機100が管理できないため質の悪いアプリケーションも存在する。このようなアプリケーションは落ちることがあるため、アプリケーション毎にプロセスを割り当てる方が好ましい。   That is, in the multifunction peripheral 100 according to the present embodiment, the user or the like can install the customized application by using the plug-in management unit 111. Since these installed customized applications cannot be managed by the multifunction peripheral 100, there are also poor quality applications. Since such an application may fail, it is preferable to assign a process for each application.

しかしながら、本実施の形態にかかる複合機100上で動作する仮想マシンは、当該仮想マシンごとに1プロセスで動作する。このため仮想マシン(以下、VM(Virtual Machine)とも示す)で複数のアプリケーションを動作させた場合、アプリケーション毎にプロセスを割り当てることができないため、一つのアプリケーションが落ちると、仮想マシン全体が落ちることになる。そこで、本実施の形態では、複合機100では、アプリケーション毎に異なる仮想マシン上で動作させることとする。   However, the virtual machine operating on the multifunction peripheral 100 according to the present embodiment operates in one process for each virtual machine. For this reason, when a plurality of applications are operated on a virtual machine (hereinafter also referred to as VM (Virtual Machine)), a process cannot be assigned for each application. Therefore, if one application falls, the entire virtual machine falls. Become. Therefore, in the present embodiment, the MFP 100 is operated on a different virtual machine for each application.

図3は、複合機100上で動作する仮想マシンの概念を示した説明図である。図3に示す例では、複合機100のメインOS101上に、マスタVM301Aと、第1のスレーブVM301Bと、第2のスレーブVM301Cと、を動作させる。   FIG. 3 is an explanatory diagram showing the concept of a virtual machine that operates on the multifunction peripheral 100. In the example illustrated in FIG. 3, the master VM 301A, the first slave VM 301B, and the second slave VM 301C are operated on the main OS 101 of the multifunction peripheral 100.

仮想マシンとは、複合機100のCPUやメモリ等のリソースを、物理的構成によらず柔軟に分割したり統合して、仮想化したコンピュータを実行させたプログラムとする。例えば、仮想マシンとして、Java(登録商標)をプログラミング言語とするJava(登録商標)仮想マシンを用いてもよい。なお、このJava(登録商標)仮想マシンは、メインOS101上に実行ファイルとして存在する仮想マシン制御部102を実行し、クラスファイルを読み込み、クラス内のメソッドを呼び出すことで実現される。   The virtual machine is a program that causes a virtualized computer to be executed by flexibly dividing or integrating resources such as the CPU and memory of the multifunction peripheral 100 regardless of the physical configuration. For example, a Java (registered trademark) virtual machine that uses Java (registered trademark) as a programming language may be used as the virtual machine. This Java (registered trademark) virtual machine is realized by executing the virtual machine control unit 102 existing as an execution file on the main OS 101, reading a class file, and calling a method in the class.

そして、マスタVM301A、第1のスレーブVM301B、及び第2のスレーブVM301C上にはそれぞれ、共通メカニズム103と、サービス群104と、ジョブコントローラ135と、VM毎に割り当てられたアプリケーションと、が実行される。   Then, the common mechanism 103, the service group 104, the job controller 135, and the application assigned to each VM are executed on the master VM 301A, the first slave VM 301B, and the second slave VM 301C, respectively. .

そして、マスタVM301Aには、プリンタアプリケーション132が割り当てられる。また、第1のスレーブVM301Bには、コピーアプリケーション131と、FAXアプリケーション133とが、割り当てられる。さらに、また、第2のスレーブVM301Cには、ユーザアプリケーション134が、割り当てられる。このように、仮想マシン毎に割り当てられるアプリケーションは、一つに制限するものではなく、複数割り当てても良い。   A printer application 132 is assigned to the master VM 301A. Further, a copy application 131 and a FAX application 133 are allocated to the first slave VM 301B. Furthermore, the user application 134 is allocated to the second slave VM 301C. As described above, the number of applications assigned to each virtual machine is not limited to one, and a plurality of applications may be assigned.

そして、マスタVM301A、第1のスレーブVM301B、及び第2のスレーブVM301Cの間のデータ通信は、各仮想マシンが備えたIPC(Inter Process Communication)サービス124が制御する。   Data communication among the master VM 301A, the first slave VM 301B, and the second slave VM 301C is controlled by an IPC (Inter Process Communication) service 124 provided in each virtual machine.

また、共通メカニズム103、サービス群104、及びアプリケーション群105は、VM上で動作するクラスの集合であり、そのクラスがクラスライブラリのクラスを呼び出すことにより、上述したアプリケーションなどのソフトウェアの処理が実行される。そして、共通メカニズム103、サービス群104、及びアプリケーション群105の各ソースコードプログラムは、コンパイルして中間コード形式のバイトコードにされ、複合機100にロードされる。そして各仮想マシンは、そのバイトコードを解釈・実行している。   The common mechanism 103, the service group 104, and the application group 105 are a set of classes that operate on the VM, and when the class calls a class in the class library, software processing such as the above-described application is executed. The The source code programs of the common mechanism 103, the service group 104, and the application group 105 are compiled into an intermediate code byte code and loaded into the multi-function device 100. Each virtual machine interprets and executes the bytecode.

サービス群104は、仮想マシン上で動作するプログラム群で構成され、レコード変換制御サービス121と、データベース制御サービス122と、ユーザインタフェース123と、IPCサービス124と、を備え、アプリケーション群105に格納された複数のアプリケーションが共通に使用する部分を集めたプログラム群とする。   The service group 104 includes a program group that operates on a virtual machine, and includes a record conversion control service 121, a database control service 122, a user interface 123, and an IPC service 124, and is stored in the application group 105. A program group in which parts commonly used by a plurality of applications are collected.

データベース制御サービス122は、書込部161と、読出部162と、ロック制御部163とを備え、HDD151に格納されたデータベースに対して、アクセス制御を行う。   The database control service 122 includes a writing unit 161, a reading unit 162, and a lock control unit 163, and performs access control on the database stored in the HDD 151.

書込部161は、HDD151に格納されたデータベースに対してデータの書き込み、又は更新を行う。例えば、マスタVM301AがスレーブVMから実行回数データを受け付けた場合、マスタVM301A上で動作している書込部161は、当該実行回数データをHDD151に書き込む。   The writing unit 161 writes or updates data in the database stored in the HDD 151. For example, when the master VM 301A receives the execution count data from the slave VM, the writing unit 161 operating on the master VM 301A writes the execution count data in the HDD 151.

読出部162は、HDD151からデータの読み出しを行う。また、読出部162は、HDD151から、テーブル情報を読み出しても良い。   The reading unit 162 reads data from the HDD 151. Further, the reading unit 162 may read table information from the HDD 151.

例えば、マスタVM301Aの読出部162は、カウンタデシジョンテーブルを読み出す。カウンタデシジョンテーブルとは、各アプリケーションからの入力データを、当該入力データに含まれている処理結果に基づいて、当該処理の実行された回数が示された実行回数データに変換するテーブルとする。   For example, the reading unit 162 of the master VM 301A reads the counter decision table. The counter decision table is a table that converts input data from each application into execution frequency data indicating the number of times the processing has been executed based on the processing result included in the input data.

図4は、本実施の形態にかかるカウンタデシジョンテーブルのテーブル構造の一例を示した図である。図4に示すように、入力データのキー、入力データの値、原稿の印刷、ファイルの印刷等が対応付けられている。   FIG. 4 is a diagram showing an example of a table structure of the counter decision table according to the present embodiment. As shown in FIG. 4, input data keys, input data values, document printing, file printing, and the like are associated with each other.

入力データのキーは、各アプリケーションの処理結果の各項目を示すデータとする。入力データの値は、上記キーと対応付けられた値とする。   The key of the input data is data indicating each item of the processing result of each application. The value of the input data is a value associated with the key.

原稿の印刷は、上記入力データで原稿が印刷された場合に、カウンタテーブルを更新するために必要なカウンタIDと幅とを保持している。ファイルの印刷は、上記入力データでファイルの印刷された場合に、カウンタテーブルを更新するために必要なカウンタIDとカウント幅とを保持している。   The document is printed with a counter ID and width necessary for updating the counter table when the document is printed with the input data. In the file printing, when the file is printed with the input data, the counter ID and the count width necessary for updating the counter table are held.

カウンタテーブルは、HDD151に格納されるテーブルであって、複合機100で動作している複数の仮想マシンで行われた処理回数を記憶する。   The counter table is a table stored in the HDD 151, and stores the number of processes performed in a plurality of virtual machines operating on the multifunction peripheral 100.

カウンタIDは、更新するカウンタを識別するIDとする。カウント幅は、カウンタに対して加算する数値を示している。   The counter ID is an ID for identifying the counter to be updated. The count width indicates a numerical value to be added to the counter.

つまり、カウンタデシジョンテーブルは、アプリケーションから処理した結果を表す入力データが入力された場合、当該入力データに含まれているキーと値とに基づいて、カウンタIDとカウント幅とで構成されている実行回数データに変換するために用いられる。   That is, when input data representing a result processed from an application is input, the counter decision table is configured with a counter ID and a count width based on a key and a value included in the input data. Used to convert to count data.

この変換をどの仮想マシンで行うのかが問題となる。例えば、カウント処理を一括してマスタVMで行うようにすれば、整合性を図るのが容易である。このため、マスタ仮想マシンが、全ての仮想マシンの処理結果である入力データを受け付け、当該入力データを実行回数データに変換処理を行い、当該実行回数データでカウンタテーブルに書き込むよう制御すると、入力データのデータ量が大きい場合に、仮想マシン間で送受信されるデータ量が大きくなるという問題がある。つまり、仮想マシン間で送受信されるデータ量が大きくなると、速度面で負担が大きくなってしまう。   The question is which virtual machine will perform this conversion. For example, if the count process is performed collectively by the master VM, it is easy to achieve consistency. For this reason, if the master virtual machine receives input data that is the processing result of all virtual machines, converts the input data into execution count data, and writes the execution count data to the counter table, the input data When the amount of data is large, there is a problem that the amount of data transmitted and received between virtual machines becomes large. In other words, when the amount of data transmitted / received between virtual machines increases, the burden on the speed increases.

そこで、本実施の形態においては、各仮想マシンが、カウンタデシジョンテーブルを用いて、入力データを実行回数データに変換してから、カウンタ処理を一括して行うマスタVMに当該実行回数データを送信することとした。これにより、仮想マシン間で送受信されるデータ量を削減することが可能となる。なお、詳細な処理については後述する。   Therefore, in this embodiment, each virtual machine uses the counter decision table to convert the input data into execution count data, and then transmits the execution count data to the master VM that performs counter processing in a batch. It was decided. This makes it possible to reduce the amount of data transmitted / received between virtual machines. Detailed processing will be described later.

ロック制御部163は、HDD151に格納されるデータベースに格納されたテーブルに対するロック制御を行う。   The lock control unit 163 performs lock control on a table stored in a database stored in the HDD 151.

例えば、マスタ仮想マシンが、書込部161を介して、HDD151のデータベースに対して書き込みを行う際に、マスタ仮想マシンの書込部161以外で書き込みが行われないよう、書き込み対象であるテーブルをロックする。   For example, when the master virtual machine writes to the database of the HDD 151 via the writing unit 161, a table to be written is stored so that writing is not performed by other than the writing unit 161 of the master virtual machine. Lock it.

IPCサービス124は、出力部181を備え、仮想マシン間のデータ転送を簡略する。出力部181は、他の仮想マシンに対してデータの出力を行う。   The IPC service 124 includes an output unit 181 and simplifies data transfer between virtual machines. The output unit 181 outputs data to other virtual machines.

例えば、マスタ仮想マシン上の出力部181は、データベース制御サービス122の読出部162で読み出されたタイムデシジョンテーブルを、他のスレーブ仮想マシンに出力する。   For example, the output unit 181 on the master virtual machine outputs the time decision table read by the reading unit 162 of the database control service 122 to another slave virtual machine.

他の例としては、スレーブ仮想マシン上の出力部181は、入力データをタイムデシジョンテーブルで変換された実行回数データを、マスタ仮想マシンに対して出力する。   As another example, the output unit 181 on the slave virtual machine outputs the execution frequency data obtained by converting the input data with the time decision table to the master virtual machine.

レコード変換制御サービス121は、変換部171と、レコードデータ記憶領域172とを備え、仮想マシンごとに割り当てられたアプリケーションからの要求に従って、当該仮想マシンに応じたデータベースのアクセス制御を行う。   The record conversion control service 121 includes a conversion unit 171 and a record data storage area 172, and performs database access control according to the virtual machine according to a request from an application assigned to each virtual machine.

レコードデータ記憶領域172は、仮想マシンごとのデータをデータベース構造で記憶する領域とする。そして、レコードデータ記憶領域172に格納されたデータは、必要に応じて他の仮想マシンに出力されたり、HDD151に追加、更新されたりする。   The record data storage area 172 is an area for storing data for each virtual machine in a database structure. The data stored in the record data storage area 172 is output to another virtual machine or added to or updated in the HDD 151 as necessary.

変換部171は、カウンタデシジョンテーブルに従って、各仮想マシン上で、各アプリケーションの処理結果である入力データから、実行回数データに変換する。   The conversion unit 171 converts the input data, which is the processing result of each application, into execution frequency data on each virtual machine according to the counter decision table.

図5は、レコード変換制御サービス121の変換部171で行われる変換を示した説明図である。図5に示すように、レコード変換制御サービス121が、入力データ501の入力を受け付けたものとする。この場合、レコード変換制御サービス121の変換部171が、レコードデータ記憶領域172に格納されたカウンタデシジョンテーブル502を用いて、入力データ501の変換を行い、実行回数データ503を生成する。図5に示すようにカウンタデシジョンテーブル502には、入力データと対応して同時に更新すべきカウンタの情報が対応付けられている。図5に示す例は、原稿の印刷を行った場合を示しており、変換部171が、原稿の印刷の列に格納されたカウンタのIDと幅とを抽出している。   FIG. 5 is an explanatory diagram showing the conversion performed by the conversion unit 171 of the record conversion control service 121. As shown in FIG. 5, it is assumed that the record conversion control service 121 accepts input of input data 501. In this case, the conversion unit 171 of the record conversion control service 121 converts the input data 501 using the counter decision table 502 stored in the record data storage area 172, and generates execution count data 503. As shown in FIG. 5, the counter decision table 502 is associated with information on counters to be updated simultaneously with input data. The example shown in FIG. 5 shows a case where an original is printed, and the conversion unit 171 extracts the counter ID and width stored in the original print column.

この処理は、仮想マシン毎に行うこととする。そして、生成した実行回数データを、スレーブ仮想マシンからマスタ仮想マシンに出力し、マスタ仮想マシンが入力された実行回数データでカウンタテーブルを更新する。つまり、本実施の形態においては、入力データを仮想マシン間で送受信するのではなく、スレーブ仮想マシンが、カウンタデシジョンテーブルを用いて入力データから、データサイズが小さい実行回数データに変換し、当該実行回数データをマスタ仮想マシンに送信している。これにより、仮想マシン間で送受信されるデータ量を削減することができる。   This process is performed for each virtual machine. Then, the generated execution count data is output from the slave virtual machine to the master virtual machine, and the counter table is updated with the execution count data input by the master virtual machine. In other words, in this embodiment, the input data is not transmitted / received between the virtual machines, but the slave virtual machine uses the counter decision table to convert the input data to the execution count data with a small data size, and execute the execution. Sends count data to the master virtual machine. Thereby, the data amount transmitted / received between virtual machines can be reduced.

ユーザインタフェース123は、複合機100が備えるタッチパネル152やネットワークを介して接続された外部機器に対して送信する複合機100用の画面などを制御する。   The user interface 123 controls a touch panel 152 included in the multifunction peripheral 100, a screen for the multifunction peripheral 100 that is transmitted to an external device connected via a network, and the like.

次に、本実施の形態にかかる複合機100で行われる具体的な処理について説明する。図6は、本実施の形態にかかる複合機100における、HDD151に対するカウンタに関するデータのインストールを表した説明図である。このHDD151に対してインストールを行う前に、予めHDD151を初期化しておくものとする。そして、マスタVM301Aが備える各構成を、レコード変換制御サービス121A、レコードデータ記憶領域172A、データベース制御サービス122Aとする。また、第1のスレーブVM301Bが備える各構成を、レコード変換制御サービス121B、レコードデータ記憶領域172Bとする。さらに、第2のスレーブVM301Cが備える各構成を、レコード変換制御サービス121C、レコードデータ記憶領域172Cとする。   Next, specific processing performed by the multifunction peripheral 100 according to the present embodiment will be described. FIG. 6 is an explanatory diagram showing installation of data related to a counter for the HDD 151 in the multifunction peripheral 100 according to the present embodiment. It is assumed that the HDD 151 is initialized in advance before installing the HDD 151. The components included in the master VM 301A are a record conversion control service 121A, a record data storage area 172A, and a database control service 122A. In addition, the configurations included in the first slave VM 301B are a record conversion control service 121B and a record data storage area 172B. Furthermore, the respective configurations included in the second slave VM 301C are a record conversion control service 121C and a record data storage area 172C.

そして、HDD151に対するカウンタの書き込み、読み込み制御は、マスタVM301Aが管理する。具体的には、レコード変換制御サービス121Aは、カウンタデシジョンテーブル、カウンタテーブル等を、レコードデータ記憶領域172Aにインストールする。その後、データベース制御サービス122Aの書込部161が、レコードデータ記憶領域172Aに格納されたカウンタデシジョンテーブル、カウンタテーブル等を、HDD151に書き込む。これにより、各処理をカウントするためのテーブル等が全てインストールされたものとする。   The master VM 301A manages counter writing and reading control with respect to the HDD 151. Specifically, the record conversion control service 121A installs a counter decision table, a counter table, and the like in the record data storage area 172A. Thereafter, the writing unit 161 of the database control service 122A writes the counter decision table, the counter table, and the like stored in the record data storage area 172A to the HDD 151. As a result, it is assumed that all tables for counting each process have been installed.

なお、本実施の形態においては、他のスレーブVM301B、301Cは、HDD151にアクセスすることを抑止している。このため、通常起動時に、データを変換するためのカウントデシジョンテーブルを、マスタVM301Aから、第1の他のスレーブVM301B、第2のスレーブVM301Cに出力する必要がある。   In the present embodiment, the other slave VMs 301B and 301C are prevented from accessing the HDD 151. For this reason, it is necessary to output a count decision table for converting data from the master VM 301A to the first other slave VM 301B and the second slave VM 301C during normal startup.

図7は、本実施の形態にかかる複合機100における、通常起動時に各仮想マシンで行う処理を示した説明図である。   FIG. 7 is an explanatory diagram showing processing performed in each virtual machine at the normal startup in the multifunction peripheral 100 according to the present embodiment.

当該マスタVM301Aの起動時に、マスタVM301Aのレコード変換制御サービス121Aが、カウンタデシジョンテーブルの読み出しを、レコードデータ記憶領域172Aに対して要求する。起動時、レコードデータ記憶領域172Aにカウンタデシジョンテーブルが格納されていないため、データベース制御サービス122Aが、HDD151から、カウンタデシジョンテーブルを読み出して、一度レコードデータ記憶領域172Aに格納した後、レコード変換制御サービス121Aに出力する。これにより、レコード変換制御サービス121Aが、カウンタデシジョンテーブルを読み出すことができる。その際、データベース制御サービス122Aは、HDD151から読み出されたカウンタデシジョンテーブルを、(図示しない)キャッシュに保持させる。   When the master VM 301A is activated, the record conversion control service 121A of the master VM 301A requests the record data storage area 172A to read the counter decision table. At the time of startup, since the counter decision table is not stored in the record data storage area 172A, the database control service 122A reads the counter decision table from the HDD 151 and once stores it in the record data storage area 172A, and then the record conversion control service Output to 121A. Thereby, the record conversion control service 121A can read the counter decision table. At that time, the database control service 122A holds the counter decision table read from the HDD 151 in a cache (not shown).

一方、第1のスレーブVM301B及び第2のスレーブVM301Cの起動時に、第1のスレーブVM301Bのレコード変換制御サービス121B、及び第2のスレーブVM301Cのレコード変換制御サービス121Cは、各IPCサービス124を介して、マスタVM301Aに対して、カウンタデシジョンテーブルの取得要求を行う。これにより、マスタVM301Aのレコード変換制御サービス121Aが、上記の読み出し処理により(図示しない)キャッシュに格納されたカウンタデシジョンテーブルを、IPCサービス124を介して、第1のスレーブVM301B及び第2のスレーブVM301Cに受け渡す。   On the other hand, when the first slave VM 301B and the second slave VM 301C are activated, the record conversion control service 121B of the first slave VM 301B and the record conversion control service 121C of the second slave VM 301C are connected via the respective IPC services 124. Then, a counter decision table acquisition request is issued to the master VM 301A. As a result, the record conversion control service 121A of the master VM 301A stores the counter decision table stored in the cache (not shown) by the above read processing via the IPC service 124 via the first slave VM 301B and the second slave VM 301C. Pass to.

なお、本実施の形態においては、各スレーブVMは、マスタVMの通常起動が完了した後に呼び出されることが保障されている。このため、キャッシュに格納されたカウンタデシジョンテーブルを、各スレーブVMに受け渡すことができる。これにより、HDD151から読み出すよりも早く読み出すことができる。なお、マスタVMのキャッシュは、全てのVMが起動した後に破棄する。   In the present embodiment, each slave VM is guaranteed to be called after the normal activation of the master VM is completed. Therefore, the counter decision table stored in the cache can be transferred to each slave VM. As a result, reading can be performed faster than reading from the HDD 151. Note that the cache of the master VM is discarded after all VMs are activated.

次に各仮想マシンで行われた処理に従って、カウントが行われる場合について説明する。図8は、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。   Next, a case where counting is performed according to the processing performed in each virtual machine will be described. FIG. 8 is an explanatory diagram showing a flow of processing when counting is performed in accordance with processing performed in each virtual machine.

図8に示すように、マスタVM301Aでは、当該仮想マシン上で行われた処理に従って、入力データと共にカウント要求801が行われた場合、レコード変換制御サービス121Aが、当該カウント要求801を受け付ける。そして、レコード変換制御サービス121Aが、カウンタデシジョンテーブルを用いて、入力データを実行回数データに変換する。   As shown in FIG. 8, in the master VM 301A, when a count request 801 is made together with input data in accordance with processing performed on the virtual machine, the record conversion control service 121A accepts the count request 801. Then, the record conversion control service 121A converts the input data into execution count data using the counter decision table.

そして、レコード変換制御サービス121Aが、レコードデータ記憶領域172Aに対して、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう、書き込み要求802を行う。その後、データベース制御サービス122Aが、レコードデータ記憶領域172Aに書き込まれたカウンタID、カウント幅を用いて、HDD151のカウンタテーブルに書き込み又は更新する。その際、データベース制御サービス122Aのロック制御部163が、書き込み対象であるカウンタテーブルを、他から書き込まれないようにロックする。   Then, the record conversion control service 121A makes a write request 802 to the record data storage area 172A so as to count with the counter ID and the count width included in the converted execution frequency data. Thereafter, the database control service 122A writes or updates the counter table of the HDD 151 using the counter ID and count width written in the record data storage area 172A. At that time, the lock control unit 163 of the database control service 122A locks the counter table to be written so that it is not written from others.

次に、他のスレーブ仮想マシンの場合について説明する。図8に示す例として、第1のスレーブVM301Bは、当該仮想マシン上で行われた処理に従って、入力データと共にカウント要求803が行われた場合、レコード変換制御サービス121Bが、当該カウント要求803を受け付ける。そして、レコード変換制御サービス121Bが、カウンタデシジョンテーブルを用いて、入力データを実行回数データに変換する。   Next, the case of another slave virtual machine will be described. As an example shown in FIG. 8, when the count request 803 is made together with the input data in accordance with the processing performed on the virtual machine, the first slave VM 301B receives the count request 803 when the record conversion control service 121B receives the count request 803. . Then, the record conversion control service 121B converts input data into execution count data using the counter decision table.

そして、レコード変換制御サービス121Bが、レコードデータ記憶領域172Bに対して、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう、書き込み要求804を行う。そして、第1のスレーブVM301BのIPCサービス124の出力部181が、レコードデータ記憶領域172Bに格納されたカウンタID、及びカウント幅の書き込み要求805を、マスタVM301Aに対して行う。これにより、マスタVM301Aのレコードデータ記憶領域172Aに、当該カウンタID、及びカウント幅が書き込まれる。その後、データベース制御サービス122Aが、レコードデータ記憶領域172Aに書き込まれたカウンタID、カウント幅を用いて、HDD151のカウンタテーブルに書き込み又は更新する。   Then, the record conversion control service 121B makes a write request 804 so that the record data storage area 172B counts with the counter ID and count width included in the converted execution frequency data. Then, the output unit 181 of the IPC service 124 of the first slave VM 301B makes a write request 805 for the counter ID and count width stored in the record data storage area 172B to the master VM 301A. As a result, the counter ID and the count width are written in the record data storage area 172A of the master VM 301A. Thereafter, the database control service 122A writes or updates the counter table of the HDD 151 using the counter ID and count width written in the record data storage area 172A.

次に、本実施の形態にかかる複合機100における、スレーブ仮想マシンによるカウントを書き込むまでの処理について説明する。図9は、本実施の形態にかかる複合機100における上述した処理の手順を示すフローチャートである。なお、当該フローチャートにおいては、第1のスレーブVM301Bの通常の起動時からの処理について説明する。第2のスレーブVM301Cは、第1のスレーブVM301Bと同様として説明を省略する。   Next, a process until the count by the slave virtual machine is written in the multifunction machine 100 according to the present embodiment will be described. FIG. 9 is a flowchart illustrating the above-described processing procedure in the multi-function peripheral 100 according to the present embodiment. In the flowchart, a process after the normal activation of the first slave VM 301B will be described. The second slave VM 301C is the same as the first slave VM 301B, and a description thereof is omitted.

まず、第1のスレーブVM301Bは、通常起動時に、マスタVM301Aに対して、カウンタデシジョンテーブルの取得要求を、IPCサービス124を介して行う(ステップS951)。   First, the first slave VM 301B makes a counter decision table acquisition request to the master VM 301A via the IPC service 124 during normal startup (step S951).

そして、マスタVM301Aは、第1のスレーブVM301Bから、カウンタデシジョンテーブルの取得要求を受け付ける(ステップS901)。   Then, the master VM 301A receives a counter decision table acquisition request from the first slave VM 301B (step S901).

次に、マスタVM301AのIPCサービス124の出力部181が、キャッシュに保持されていたカウンタデシジョンテーブル502を、第1のスレーブVM301Bに対して出力する(ステップS902)。   Next, the output unit 181 of the IPC service 124 of the master VM 301A outputs the counter decision table 502 held in the cache to the first slave VM 301B (step S902).

そして、第1のスレーブVM301Bのレコード変換制御サービス121Bが、IPCサービス124を介して、カウンタデシジョンテーブルの入力を受け付ける(ステップS952)。そして、入力を受け付けたカウンタデシジョンテーブルは、レコード変換制御サービス121B内に保持される。   Then, the record conversion control service 121B of the first slave VM 301B receives an input of the counter decision table via the IPC service 124 (step S952). The counter decision table that has received the input is held in the record conversion control service 121B.

その後、第1のスレーブVM301B内に割り当てられたアプリケーションが、ユーザ等からの要求に応じて処理を行ったものとする(ステップS953)。   After that, it is assumed that the application allocated in the first slave VM 301B performs processing in response to a request from the user or the like (step S953).

そして、当該アプリケーションが、処理結果である入力データを出力すると共に、カウントの要求を、レコード変換制御サービス121Bに対して行う(ステップS954)。   Then, the application outputs input data as a processing result and requests the record conversion control service 121B to count (Step S954).

次に、レコード変換制御サービス121Bが、カウント要求を受け付けた場合に、変換部171が、カウンタデシジョンテーブルを用いて、入力された入力データを、実行回数データに変換する(ステップS955)。   Next, when the record conversion control service 121B receives a count request, the conversion unit 171 converts input input data into execution count data using the counter decision table (step S955).

そして、変換部171が、レコードデータ記憶領域172Bに対して、実行回数データと共に、カウントの書き込み要求を行う(ステップS956)。これにより、レコードデータ記憶領域172Bには、カウンタIDとカウント幅との対応付けられたレコードが格納される。   Then, the conversion unit 171 issues a count write request together with the execution count data to the record data storage area 172B (step S956). As a result, a record in which the counter ID and the count width are associated is stored in the record data storage area 172B.

その後、第1のスレーブVM301BのIPCサービス124の出力部181が、レコードデータ記憶領域172Bに格納されたカウンタID及びカウント幅と共に、書き込み要求を、マスタVM301Aに対して出力する(ステップS957)。   Thereafter, the output unit 181 of the IPC service 124 of the first slave VM 301B outputs a write request together with the counter ID and count width stored in the record data storage area 172B to the master VM 301A (step S957).

これに伴い、マスタVM301AのIPCサービス124が、カウンタID及びカウント幅と共に、書き込み要求の入力を受け付ける(ステップS903)。   Along with this, the IPC service 124 of the master VM 301A receives the input of the write request together with the counter ID and the count width (step S903).

そして、マスタVM301AのIPCサービス124が、入力を受け付けたカウンタID及びカウント幅を、レコードデータ記憶領域172Aに格納する(ステップS904)。   Then, the IPC service 124 of the master VM 301A stores the received counter ID and count width in the record data storage area 172A (step S904).

次に、マスタVM301Aにおける、データベース制御サービス122Aの書込部161が、レコードデータ記憶領域172Aに格納されたカウンタID及びカウント幅に基づいて、HDD151のカウンタテーブルに書き込み、又は更新する(ステップS905)。   Next, the writing unit 161 of the database control service 122A in the master VM 301A writes or updates the counter table of the HDD 151 based on the counter ID and count width stored in the record data storage area 172A (step S905). .

上述した処理手順により、本実施の形態にかかる複合機100では、カウンタの更新を行うことができる。   With the processing procedure described above, the MFP 100 according to the present embodiment can update the counter.

本実施の形態にかかる複合機100では、カウンタテーブルと、カウンタデシジョンテーブルとをHDD151に記憶することとしたが、それぞれ別の記憶手段に記憶しても良い。   In the MFP 100 according to the present embodiment, the counter table and the counter decision table are stored in the HDD 151, but may be stored in different storage units.

本実施の形態においては、複合機100において、複数のVMのそれぞれにアプリケーションを割り当てることで、各アプリケーションの独立したプロセスで動作させることを可能としている。これにより、各アプリケーションの動作の安定性を向上させることができる。   In the present embodiment, in the multi-function device 100, an application is assigned to each of a plurality of VMs so that each application can be operated by an independent process. Thereby, the stability of operation | movement of each application can be improved.

さらに、本実施の形態にかかる複合機100においては、カウントに関する制御を、マスタVM301Aが一括して行うため、カウントの整合を図ることができる。   Furthermore, in the MFP 100 according to the present embodiment, the master VM 301A collectively performs control related to the count, so that the count can be matched.

その際、本実施の形態にかかる複合機100においては、各VMで入力データから更新すべきカウンタ(カウンタID、カウント幅)の割り出しまで行ったあと、スレーブVMからマスタVMにカウントの更新に必要な(データサイズが小さい)データだけ送信している。これにより、VM間で入出力されるデータ量を削減することができる。このように、処理の効率化を図ることで、処理負担を軽減することができるとともに、実行速度の低減を抑止できる。   At this time, in the MFP 100 according to the present embodiment, each VM is required to update the count from the input data to the counter (counter ID, count width) to be updated, and then from the slave VM to the master VM. Only data (small data size) is transmitted. As a result, the amount of data input / output between VMs can be reduced. Thus, by improving the efficiency of processing, it is possible to reduce the processing load and to suppress the reduction in execution speed.

(第1の実施の形態の変形例1)
上述した第1の実施の形態にかかる複合機100においては、HDD151の1個のカウンタテーブルだけで全てのカウントを保持している例について説明した。この場合、書き込み命令が一つ発効されただけで、カウンタテーブルが全てロックされるため、当該書き込みが終了するまで、他の書き込み命令による書き込みを行うことができない。しかしながら、複合機100は、複数のアプリケーションを同時並行的に動作させることができるため、カウンタテーブル全てをロックさせるのは望ましくない場合も存在する。そこで、第1の実施の形態の変形例として、カウンタテーブルを種類別に分割した場合について説明する。なお、本実施の形態にかかる複合機は、HDD151内に格納されたテーブル以外、第1の実施の形態の複合機100と同様の構成を備えているものとして説明を省略する。
(Modification 1 of the first embodiment)
In the MFP 100 according to the first embodiment described above, the example in which all counts are held by only one counter table of the HDD 151 has been described. In this case, since only one write command is issued, the counter table is all locked, so that another write command cannot be written until the write is completed. However, since the multifunction peripheral 100 can simultaneously operate a plurality of applications, it may not be desirable to lock all the counter tables. Therefore, as a modification of the first embodiment, a case where the counter table is divided by type will be described. Note that the MFP according to the present embodiment has the same configuration as that of the MFP 100 according to the first embodiment except for the table stored in the HDD 151, and the description thereof is omitted.

図10は、本変形例にかかる複合機100における、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。   FIG. 10 is an explanatory diagram showing a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral 100 according to the present modification.

図10に示すように、HDD151は、カウンタの種類毎に、カウンタID、及びカウント幅を書き込むべきカウンタテーブルを保持している。そして、データベース制御サービス1001のロック制御部1003は、書き込まれるカウンタIDに対応する種類のカウンタテーブルのみをロックする。   As shown in FIG. 10, the HDD 151 holds a counter table in which a counter ID and a count width are written for each type of counter. Then, the lock control unit 1003 of the database control service 1001 locks only the type of counter table corresponding to the written counter ID.

そして、図10に示す例では、第1の実施の形態の図8と同様に、カウントの書き込み要求まで行われる。   In the example illustrated in FIG. 10, the count write request is performed as in FIG. 8 of the first embodiment.

その後、本変形例にかかるマスタVM301Aのデータベース制御サービス1001の書込部1002が、レコードデータ記憶領域172Aに書き込まれたカウンタID、カウント幅を、当該カウンタを格納すべき種別のカウンタテーブルに書き込み又は更新する。その際、データベース制御サービス1001のロック制御部1003が、当該種別のカウンタテーブルを、他から書き込まれないようにロックする。当該種別のカウンタテーブルのみロックして、他の種別のカウンタテーブルについて書き込み、更新を可能とする。これにより、複数の処理を実行する際に、カウンタテーブルがロックされる確率を低減させ、カウンタの書き込み、更新処理を容易にする。   Thereafter, the writing unit 1002 of the database control service 1001 of the master VM 301A according to the present modification writes the counter ID and count width written in the record data storage area 172A to the counter table of the type in which the counter is to be stored or Update. At that time, the lock control unit 1003 of the database control service 1001 locks the counter table of that type so that it is not written by others. Only the counter table of the type is locked, and writing and updating are possible for the counter table of other types. This reduces the probability that the counter table is locked when executing a plurality of processes, and facilitates the counter writing and updating process.

(第1の実施の形態の変形例2)
上述した第1の実施の形態にかかる複合機100においては、スレーブVMからマスタVMに書き込み要求を行う際、カウンタ毎に書き込み要求を行っていた。この場合データ量が大きくなる可能性がある。そこで第1の実施の形態の変形例2では、書き込み要求を行う際に、カウント幅毎にカウントIDをまとめて書き込み要求を行う例について説明する。
(Modification 2 of the first embodiment)
In the MFP 100 according to the first embodiment described above, when a write request is made from the slave VM to the master VM, the write request is made for each counter. In this case, the data amount may increase. Therefore, in the second modification of the first embodiment, an example will be described in which, when a write request is made, a write request is made collectively for each count width.

図11は、本変形例にかかる複合機100における、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。   FIG. 11 is an explanatory diagram showing a flow of processing when counting is performed according to processing performed in each virtual machine in the multifunction peripheral 100 according to the present modification.

図11に示すように、第1のスレーブVM301Bから、マスタVM301Aにデータを送信する際に、IPCサービス124の出力部181が、カウント幅毎にカウンタIDをまとめて書き込み要求を行うこととした。当該処理を行うことで、出力されるデータ量が削減可能となり、処理負担を軽減することができる。   As illustrated in FIG. 11, when data is transmitted from the first slave VM 301B to the master VM 301A, the output unit 181 of the IPC service 124 issues a write request by collecting counter IDs for each count width. By performing this process, the amount of data to be output can be reduced, and the processing burden can be reduced.

(第2の実施の形態)
第1の実施の形態では、マスタVM301Aが一括してHDD151に書き込む例について説明した。しかしながら、HDDにデータを書き込むのをマスタVMのみに制限するものではない。そこで、第2の実施の形態では、各VMがHDDにデータを書き込む例について説明する。
(Second Embodiment)
In the first embodiment, the example in which the master VM 301A collectively writes to the HDD 151 has been described. However, writing data to the HDD is not limited only to the master VM. Therefore, in the second embodiment, an example in which each VM writes data to the HDD will be described.

図12は、第2の実施の形態にかかる複合機1100の構成を示すブロック図である。本実施の形態にかかる複合機1100は、上述した第1の実施の形態の複合機100とは、仮想マシン制御部102とは処理が異なる仮想マシン制御部1101に変更され、サービス群104とは処理が異なるサービス群1102に変更された構成を有している点で異なる。以下の説明では、上述した第1の実施の形態と同一の構成要素には同一の符号を付してその説明を省略している。   FIG. 12 is a block diagram illustrating a configuration of a multifunction peripheral 1100 according to the second embodiment. The MFP 1100 according to the present embodiment is changed to a virtual machine control unit 1101 that is different from the virtual machine control unit 102 in the process of the MFP 100 according to the first embodiment described above. The difference is that the processing is changed to a different service group 1102. In the following description, the same components as those in the first embodiment described above are denoted by the same reference numerals and description thereof is omitted.

仮想マシン制御部1101は、マスタOS101上で、複数の仮想マシンを動作させる制御を行う。本実施の形態にかかる仮想マシン制御部1101により動作した仮想マシンは、マスタ仮想マシンの他に、スレーブ仮想マシンもHDD151に対する読み書きを可能としている。   The virtual machine control unit 1101 performs control for operating a plurality of virtual machines on the master OS 101. In the virtual machine operated by the virtual machine control unit 1101 according to the present embodiment, the slave virtual machine can read and write to the HDD 151 in addition to the master virtual machine.

サービス群1102は、仮想マシン上で動作するプログラム群で構成され、上述した第1の実施の形態のサービス群104とは、データベース制御サービス122とは処理が異なるデータベース制御サービス1111に変更され、レコード変換制御サービス121とは処理が異なるレコード変換制御サービス1112に変更された構成を有している点で異なる。   The service group 1102 is composed of a program group operating on a virtual machine, and the service group 104 of the first embodiment is changed to a database control service 1111 that is different in processing from the database control service 122, and records The conversion control service 121 is different from the conversion control service 121 in that the processing is changed to a record conversion control service 1112 having a different process.

データベース制御サービス1111は、HDD151に格納されたデータベースに対して、アクセス制御を行う。第1の実施の形態のデータベース制御サービス122と異なる点としては、マスタVMのみならずスレーブVMについてもアクセス制御を可能とした点とする。例えば、レコード変換制御サービス1112の変換部171で変換された実行回数データが、当該スレーブVMしかカウントしない処理結果の場合、スレーブVM上のデータベース制御サービス1111の書込部161は、当該スレーブVMから直接、HDD151に対して、実行回数データを書き込む。つまり、当該スレーブVM以外の仮想マシンもカウントする処理結果を示す、実行回数結果については、出力部181から出力される。   The database control service 1111 controls access to the database stored in the HDD 151. The difference from the database control service 122 of the first embodiment is that access control can be performed not only for the master VM but also for the slave VM. For example, when the execution frequency data converted by the conversion unit 171 of the record conversion control service 1112 is a processing result that only counts the slave VM, the writing unit 161 of the database control service 1111 on the slave VM receives the data from the slave VM. The execution count data is directly written in the HDD 151. In other words, the output unit 181 outputs the execution count result indicating the processing result of counting the virtual machines other than the slave VM.

レコード変換制御サービス1112は、仮想マシンごとに割り当てられたアプリケーションからの要求に従って、当該仮想マシンに応じたデータベースのアクセス制御を行う。第1の実施の形態においては、スレーブVM上で書き込み要求があった場合に、レコード変換制御サービス121が、マスタVMに対して書き込み要求を行っていた。これに対し、第2の実施の形態にかかるレコード変換制御サービス1112は、スレーブVM上で書き込み要求があった場合、データベース制御サービス1111を介して書き込み制御を行うか、マスタVMに対して書き込み要求を行うかを判定している。このために、本実施の形態においては、インストールなどの処理についても第1の実施の形態と異なる。   The record conversion control service 1112 performs database access control according to the virtual machine in accordance with a request from an application assigned to each virtual machine. In the first embodiment, when there is a write request on the slave VM, the record conversion control service 121 makes a write request to the master VM. On the other hand, when there is a write request on the slave VM, the record conversion control service 1112 according to the second embodiment performs write control via the database control service 1111 or writes a request to the master VM. It is determined whether to do. For this reason, in the present embodiment, processing such as installation is different from that of the first embodiment.

次に、本実施の形態にかかる複合機1100で行われる具体的な処理について説明する。図13は、本実施の形態にかかる複合機1100における、スレーブVMに対するアプリケーションのインストールを表した説明図である。図13に示す例では、少なくともマスタVM1201Aと、第1のスレーブVM1201Bと、が複合機1100上で動作している。   Next, specific processing performed by the multifunction peripheral 1100 according to the present embodiment will be described. FIG. 13 is an explanatory diagram showing installation of an application to the slave VM in the multifunction peripheral 1100 according to the present embodiment. In the example illustrated in FIG. 13, at least the master VM 1201 </ b> A and the first slave VM 1201 </ b> B are operating on the multifunction peripheral 1100.

そして、マスタVM1201Aが備える各構成を、レコード変換制御サービス1112A、レコードデータ記憶領域172A、データベース制御サービス1111Aとする。また、第1のスレーブVM1201Bが備える各構成を、レコード変換制御サービス1112B、レコードデータ記憶領域172Bとする。   The components included in the master VM 1201A are a record conversion control service 1112A, a record data storage area 172A, and a database control service 1111A. In addition, the configurations included in the first slave VM 1201B are a record conversion control service 1112B and a record data storage area 172B.

図13に示す例では、FAXアプリケーション133と、コピーアプリケーション131とが、第1のスレーブVM1201Bに対してインストールされている。当該インストールに伴い、FAXアプリケーション133、及びコピーアプリケーション131から、レコード制御サービス1112Bに対して、FAXアプリケーションの処理をカウントするためのFAXアプリ用カウンタデシジョンテーブル等と、コピーアプリケーションの処理をカウントするためのコピーアプリ用カウンタデシジョンテーブル等と、のインストールが開始される。また、インストールされる各カウンタデシジョンテーブルの各レコードには、アプリケーション専用であるか否かが宣言されている。   In the example illustrated in FIG. 13, the FAX application 133 and the copy application 131 are installed in the first slave VM 1201B. Along with the installation, the FAX application 133 and the copy application 131 count the FAX application processing to the record control service 1112B. Installation of the copy application counter decision table and the like is started. Each record of each counter decision table to be installed declares whether it is dedicated to the application.

その際、レコード変換制御サービス1112Bは、各アプリケーションからインストールが要求された各カウンタデシジョンテーブルを、レコードデータ記憶領域172Bにインストールする。その際、レコード変換制御サービス1112Bは、アプリケーション専用と宣言されたレコードを、第1のスレーブVM1201B用のカウンタデシジョンテーブルとして、HDD151の第1のスレーブVM用カウンタ記憶領域に、データベース制御サービス1111Bを介して書き込む。なお、各アプリケーションに共通(換言すれば、複数の仮想VMでカウントする)のレコードは、マスタVM1201Aが、データベース制御サービス1111Aを介して、HDD151の共通カウンタ記憶領域に書き込むものとする。   At that time, the record conversion control service 1112B installs each counter decision table requested to be installed by each application in the record data storage area 172B. At that time, the record conversion control service 1112B uses the database control service 1111B via the database control service 1111B as a counter decision table for the first slave VM 1201B as a counter decision table for the first slave VM 1201B. Write. Note that a record common to each application (in other words, counted by a plurality of virtual VMs) is written by the master VM 1201A in the common counter storage area of the HDD 151 via the database control service 1111A.

図14は、本実施の形態にかかる複合機1100における、通常起動時に各仮想マシンで行う処理を示した説明図である。図14に示す例では、すでに仮想マシン制御部1101が、マスタVM1201A、第1のスレーブVM1201B、及び第2のスレーブVM1201Cを起動しているものとする。   FIG. 14 is an explanatory diagram showing processing performed in each virtual machine at normal startup in the MFP 1100 according to the present embodiment. In the example illustrated in FIG. 14, it is assumed that the virtual machine control unit 1101 has already started the master VM 1201A, the first slave VM 1201B, and the second slave VM 1201C.

まず、第1の実施の形態と同様に、マスタVM1201Aのレコード変換制御サービス1112Aの読み出し要求に従って、カウンタデシジョンテーブルは、レコード変換制御サービス1112Aにも出力される。その際、HDD151から読み出されたカウンタデシジョンテーブルが、(図示しない)キャッシュに保持されている。   First, as in the first embodiment, the counter decision table is also output to the record conversion control service 1112A in accordance with the read request of the record conversion control service 1112A of the master VM 1201A. At that time, the counter decision table read from the HDD 151 is held in a cache (not shown).

一方、起動時に、第1のスレーブVM1201Bのレコード変換制御サービス1112B、及び第2のスレーブVM1201Cのレコード変換制御サービス1112Cは、各IPCサービス124を介して、マスタVM1201Aに対して、カウンタデシジョンテーブルの取得要求を行う。これにより、マスタVM1201Aのレコード変換制御サービス1112Aが、上記の読み出し処理により(図示しない)キャッシュに格納されたカウンタデシジョンテーブルを、IPCサービス124を介して、第1のスレーブVM1201B及び第2のスレーブVM1201Cに受け渡す。   On the other hand, at startup, the record conversion control service 1112B of the first slave VM 1201B and the record conversion control service 1112C of the second slave VM 1201C acquire the counter decision table to the master VM 1201A via each IPC service 124. Make a request. As a result, the record conversion control service 1112A of the master VM 1201A stores the counter decision table stored in the cache (not shown) by the above read processing via the IPC service 124 via the first slave VM 1201B and the second slave VM 1201C. To hand.

一方、第1のスレーブVM1201Bのように、スレーブVM専用のカウンタ記憶領域がある場合、当該第1のスレーブVM1201B内のレコード変換制御サービス1112Bは、レコードデータ記憶領域172Bから、第1のスレーブVM1201B専用のカウンタデシジョンテーブルの読出要求を、レコードデータ記憶領域172Bに対して行う。当然ながら、起動時にはレコードデータ記憶領域172Bには、第1のスレーブVM1201B専用のカウンタデシジョンテーブルが格納されていないため、データベース制御サービス1111Bが、HDD151から、第1のスレーブVM1201B専用のカウンタデシジョンテーブルを読み出して、一度レコードデータ記憶領域172Bに格納した後、レコード変換制御サービス1121Bに出力する。これにより、レコード変換制御サービス1112Bが、第1のスレーブVM1201B専用のカウンタデシジョンテーブルを読み出すことができる。このように、本実施の形態では、各スレーブVMは、必ずマスタVMが保持する共通のカウンタデシジョンテーブルと、自VM専用のカウンタデシジョンテーブルとを読み出すこととする。これにより読み出されたカウンタデシジョンテーブルで、入力データを実行回数データに変換できる。なお、レコードデータ記憶領域172Cは、レコードデータ記憶領域172Bと同様に制御が行われるものとして、説明を省略する。   On the other hand, when there is a counter storage area dedicated to the slave VM like the first slave VM 1201B, the record conversion control service 1112B in the first slave VM 1201B is dedicated to the first slave VM 1201B from the record data storage area 172B. Is made to the record data storage area 172B. Of course, since the counter decision table dedicated to the first slave VM 1201B is not stored in the record data storage area 172B at startup, the database control service 1111B obtains the counter decision table dedicated to the first slave VM 1201B from the HDD 151. The data is read and once stored in the record data storage area 172B, and then output to the record conversion control service 1121B. Thereby, the record conversion control service 1112B can read the counter decision table dedicated to the first slave VM 1201B. Thus, in this embodiment, each slave VM always reads the common counter decision table held by the master VM and the counter decision table dedicated to the own VM. As a result, the input data can be converted into the execution count data by the counter decision table read out. Note that the record data storage area 172C is controlled in the same manner as the record data storage area 172B, and the description thereof is omitted.

次に各仮想マシンで行われた処理に従って、カウントが行われる場合について説明する。図15は、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。   Next, a case where counting is performed according to the processing performed in each virtual machine will be described. FIG. 15 is an explanatory diagram showing a flow of processing when counting is performed in accordance with processing performed in each virtual machine.

図15に示すように、マスタVM1201Aでは、当該仮想マシン上で行われた処理に従って、入力データと共にカウント要求1401が行われた場合、レコード変換制御サービス1112Aが、当該カウント要求1401を受け付ける。そして、レコード変換制御サービス1112Aが、カウンタデシジョンテーブルを用いて、入力データを実行回数データに変換する。   As shown in FIG. 15, in the master VM 1201A, when the count request 1401 is made together with the input data in accordance with the processing performed on the virtual machine, the record conversion control service 1112A accepts the count request 1401. Then, the record conversion control service 1112A converts the input data into execution count data using the counter decision table.

そして、レコード変換制御サービス1112Aが、レコードデータ記憶領域172Aに対して、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう書き込み要求1402を行う。その後、データベース制御サービス1111Aが、レコードデータ記憶領域172Aに書き込み要求が行われたカウンタID、カウント幅を用いて、HDD151のカウンタテーブルに書き込み又は更新する。   Then, the record conversion control service 1112A issues a write request 1402 to the record data storage area 172A so as to count with the counter ID and count width included in the converted execution count data. Thereafter, the database control service 1111A writes or updates the counter table of the HDD 151 using the counter ID and count width for which a write request has been made to the record data storage area 172A.

一方、第1のスレーブVM1201Bにおいて、FAXアプリケーション133が、処理結果を含む入力データと共にカウント要求1403を行った場合、レコード変換制御サービス1112Bが、当該カウント要求1403を受け付ける。そして、レコード変換制御サービス1112Bが、カウンタデシジョンテーブルを用いて、入力データを実行回数データに変換する。   On the other hand, in the first slave VM 1201B, when the FAX application 133 makes a count request 1403 together with input data including a processing result, the record conversion control service 1112B accepts the count request 1403. Then, the record conversion control service 1112B converts input data into execution count data using the counter decision table.

そして、レコード変換制御サービス1112Bは、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう書き込み要求1404を行う。その際、レコード変換制御サービス1112Bは、読み出された共通のカウンタデシジョンテーブルと、第1のスレーブVM1201B専用のカウンタデシジョンテーブルと、から書き込み先のカウンタテーブルが存在する記憶領域を特定する。つまり、共通のカウンタデシジョンテーブルに存在したカウンタIDであれば、マスタVM1201Aに書き込み要求を行うカウンタIDであり、第1のスレーブVM301B専用のカウンタデシジョンテーブルに存在したカウンタIDであれば、第1のスレーブVM1201B内で書き込みを行うカウンタIDであると特定する。   Then, the record conversion control service 1112B makes a write request 1404 to count with the counter ID and the count width included in the converted execution count data. At that time, the record conversion control service 1112B specifies the storage area where the write destination counter table exists from the read common counter decision table and the counter decision table dedicated to the first slave VM 1201B. That is, if the counter ID exists in the common counter decision table, it is a counter ID that makes a write request to the master VM 1201A. If the counter ID exists in the counter decision table dedicated to the first slave VM 301B, the first ID It is specified that it is a counter ID for writing in the slave VM 1201B.

当該特定に従って、レコード変換制御サービス1112Bは、VMに共通のカウンタID、及びカウント幅による第1の書き込み要求を行うと共に、第1のスレーブVM1201B専用のカウンタID、及びカウント幅による第2の書き込み要求を行う。   In accordance with the specification, the record conversion control service 1112B makes a first write request with a counter ID and count width common to VMs, and a second write request with a counter ID and count width dedicated to the first slave VM 1201B. I do.

そして、第1のスレーブVM1201BのIPCサービス124の出力部181が、第1の書き込み要求に含まれているカウンタID、及びカウント幅を書き込むよう、マスタVM1201Aに要求する。これにより、データベース制御サービス1111Aが、書き込み要求の対象であるカウンタID、カウント幅を、HDD151のカウンタテーブルに書き込み又は更新する。一方、データベース制御サービス1111Bが、第2の書き込み要求に含まれているカウンタID、及びカウント幅を、HDD151の第1のスレーブVM専用カウンタ記憶領域に書き込む。   Then, the output unit 181 of the IPC service 124 of the first slave VM 1201B requests the master VM 1201A to write the counter ID and the count width included in the first write request. As a result, the database control service 1111A writes or updates the counter ID and count width that are the target of the write request to the counter table of the HDD 151. On the other hand, the database control service 1111B writes the counter ID and the count width included in the second write request in the first slave VM dedicated counter storage area of the HDD 151.

本実施の形態にかかる複合機1100では、第1の実施の形態にかかる複合機100と同様の効果を得るほか、専用のカウンタについては各VM内で処理するため、VM間で入出力されるデータ量のさらなる削減を図ることができる。   The multifunction device 1100 according to the present embodiment obtains the same effects as those of the multifunction device 100 according to the first embodiment, and a dedicated counter is processed in each VM, so that input / output is performed between the VMs. The amount of data can be further reduced.

(第2の実施の形態の変形例1)
上述した第2の実施の形態においては、スレーブVM専用のカウンタIDであるか否かに応じて、カウンタテーブルの格納領域をスレーブ専用と共通とを分けた例について説明した。しかしながら、スレーブVMの処理結果のカウンタを共通であるか否かに拘わらず、スレーブ用のカウンタテーブルで一括管理してもよい。そこで第2の実施の形態の変形例として、VM間でデータの入出力を行わず、VM毎にカウンタテーブルを備えている例について説明する。
(Modification 1 of the second embodiment)
In the above-described second embodiment, the example in which the storage area of the counter table is divided into the slave dedicated area and the common area according to whether or not the counter ID is dedicated to the slave VM has been described. However, regardless of whether or not the counters of the processing results of the slave VMs are common, they may be collectively managed by the slave counter table. Therefore, as a modification of the second embodiment, an example will be described in which data is not input / output between VMs and a counter table is provided for each VM.

図16は、本変形例にかかる複合機において、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。   FIG. 16 is an explanatory diagram showing the flow of processing when counting is performed according to the processing performed in each virtual machine in the multifunction peripheral according to the present modification.

図16に示すように、マスタVM1501Aと第1のスレーブVM1501Bとが動作している例について説明する。そして、マスタVM1501Aは、レコード変換制御サービス1511Aと、レコードデータ記憶領域1512Aと、データベース制御サービス1513Aとを備え、HDD1521に対してアクセス制御を行う。また、第1のスレーブVM1501Bは、レコード変換制御サービス1511Bと、レコードデータ記憶領域1512Bと、データベース制御サービス1513Bとを備え、HDD1521に対してアクセス制御を行う。   An example in which the master VM 1501A and the first slave VM 1501B are operating as illustrated in FIG. 16 will be described. The master VM 1501A includes a record conversion control service 1511A, a record data storage area 1512A, and a database control service 1513A, and performs access control on the HDD 1521. The first slave VM 1501B includes a record conversion control service 1511B, a record data storage area 1512B, and a database control service 1513B, and performs access control on the HDD 1521.

そして、マスタVM1501Aでは、レコード変換制御サービス1511Aがカウント要求を受け付けた場合に、データベース制御サービス1513Aを介して、HDD1521の共通カウンタ記憶領域内のカウンタテーブルに書き込み、更新処理を行う。   When the record conversion control service 1511A receives a count request, the master VM 1501A writes to the counter table in the common counter storage area of the HDD 1521 via the database control service 1513A, and performs an update process.

これに対し、第1のスレーブVM1501Bでは、レコード変換制御サービス1511Bがカウント要求を受け付けた場合に、データベース制御サービス1513Bを介して、HDD1521の第1のスレーブVMカウンタ記憶領域内のカウンタテーブルに書き込み、更新処理を行う。   In contrast, in the first slave VM 1501B, when the record conversion control service 1511B receives the count request, the first slave VM 1501B writes to the counter table in the first slave VM counter storage area of the HDD 1521 via the database control service 1513B. Perform update processing.

その後、複合機1500は、HDD1521内の、第1のスレーブVMカウンタ記憶領域内のカウンタテーブルを、共通カウンタ記憶領域内のカウンタテーブルに移動させる。これにより、一つのカウンタテーブルでカウンタを一括管理できる。なお、本変形例では、カウンタの記憶領域が分散しているため、カウンタの整合性をとれるように注意して処理を行う必要がある。当該変形例については、VM間でデータの入出力がないため、さらなる処理負担の軽減を図ることができる。   Thereafter, the MFP 1500 moves the counter table in the first slave VM counter storage area in the HDD 1521 to the counter table in the common counter storage area. As a result, the counters can be collectively managed with one counter table. In this modification, since the counter storage areas are dispersed, it is necessary to perform processing with care so as to ensure consistency of the counter. In this modified example, since there is no data input / output between VMs, the processing load can be further reduced.

(第3の実施の形態)
第1の実施の形態では、必ず実行回数データに変換してからスレーブVMからマスタVMにデータを出力していた。しかしながら、入力データのデータ量によっては、変換せずにスレーブVMからマスタVMに出力した方が良い場合もある。そこで、第3の実施の形態では、データ量に応じて出力するデータを、入力データと実行回数データとに切り替える例について説明する。
(Third embodiment)
In the first embodiment, data is always output from the slave VM to the master VM after being converted into execution count data. However, depending on the amount of input data, it may be better to output from the slave VM to the master VM without conversion. Therefore, in the third embodiment, an example will be described in which data output according to the amount of data is switched between input data and execution count data.

図17は、本実施の形態にかかる複合機1600において、各仮想マシンで行われた処理に従って、カウントが行われる場合の処理の流れを示した説明図である。なお、本実施の形態にかかる複合機1600においては、カウントに関するインストールと、起動時に実行する処理については第1の実施の形態と同様として、説明を省略する。   FIG. 17 is an explanatory diagram showing the flow of processing when counting is performed according to the processing performed in each virtual machine in the MFP 1600 according to the present embodiment. Note that in the MFP 1600 according to the present embodiment, the installation related to counting and the processing to be executed at the time of activation are the same as in the first embodiment, and a description thereof is omitted.

図17に示すように、複合機1600上で、マスタVM1601Aと、第1のスレーブVM1601Bと、第2のスレーブVM1601Cと、が動作している例について説明する。   As illustrated in FIG. 17, an example in which the master VM 1601A, the first slave VM 1601B, and the second slave VM 1601C are operating on the multifunction machine 1600 will be described.

そして、マスタVM1601Aは、第1の実施の形態と異なる構成として、レコード変換制御サービス1611Aを備えている。また、第1のスレーブVM1601Bは、第1の実施の形態と異なる構成として、レコード変換制御サービス1611Bを備えている。また、第2のスレーブVM1601Cは、第1の実施の形態と異なる構成として、レコード変換制御サービス1611Cを備えている。   The master VM 1601A includes a record conversion control service 1611A as a configuration different from that of the first embodiment. Further, the first slave VM 1601B includes a record conversion control service 1611B as a configuration different from that of the first embodiment. Further, the second slave VM 1601C includes a record conversion control service 1611C as a configuration different from that of the first embodiment.

そして、第1のスレーブVM1601Bは、判定部1621Bと、変換部1622Bと、を備えている。また、第2のスレーブVM1601Cは、判定部1621Cと、変換部1622Cと、を備えている。   The first slave VM 1601B includes a determination unit 1621B and a conversion unit 1622B. The second slave VM 1601C includes a determination unit 1621C and a conversion unit 1622C.

そして、判定部1621B、及び判定部1621Cは、入力データを、当該マスタVM1601A内又はスレーブVM内のいずれかで変換するかを判定する。具体的には、判定部1621B、及び判定部1621Cは、今回入力された入力データと、前回の実行回数データと、のうち、どちらのデータ量が小さいかを判定する。そして、判定部(1621B、1621C)は、入力データのデータ量が小さい場合に、当該入力データをマスタVM1601Aで変換するよう、マスタVM1601Aに出力部(181B、181C)が出力すると判定する。一方、判定部(1621B、1621C)は、実行回数データのデータ量が小さい場合に、スレーブVMで変換された実行回数データを出力部(181B、181C)が出力すると判定する。   Then, the determination unit 1621B and the determination unit 1621C determine whether to convert the input data in the master VM 1601A or the slave VM. Specifically, the determination unit 1621B and the determination unit 1621C determine which of the input data input this time and the previous execution count data is smaller. Then, the determination unit (1621B, 1621C) determines that the output unit (181B, 181C) outputs to the master VM 1601A so that the input data is converted by the master VM 1601A when the amount of input data is small. On the other hand, the determination unit (1621B, 1621C) determines that the output unit (181B, 181C) outputs the execution count data converted by the slave VM when the amount of execution count data is small.

図18は、第2のスレーブVM1601Cの判定部1621Cによる判定手法を示した概念図である。図18に示す例では、判定部1621Cは、前回の実行回数データに基づいて、今回の入力データをマスタVM1601Aで変換するか否かを判定している。   FIG. 18 is a conceptual diagram illustrating a determination method by the determination unit 1621C of the second slave VM 1601C. In the example illustrated in FIG. 18, the determination unit 1621C determines whether or not the current input data is converted by the master VM 1601A based on the previous execution count data.

本実施の形態にかかる判定部1621Cは、図19に示すように、今回の入力データに含まれているデータ数に、1データ辺りの代表的なデータ量を乗じたデータ量と、前回の実行回数データに含まれているカウンタの数(X)に、1カウンタ辺りの平均データ量を乗じたデータ量を、比較して、データ量の小さい方をVM間で入出力するよう、どちらのVMで処理を行うべきか判定している。なお、X以外のパラメータを固定値としても良い。これは、各パラメータを固定値とすることで算出の処理負担を小さくするためである。   As illustrated in FIG. 19, the determination unit 1621C according to the present embodiment multiplies the number of data included in the current input data by a representative data amount per one data, and the previous execution. Which VM is used to compare the data amount obtained by multiplying the number of counters (X) included in the count data by the average data amount per counter and to input / output the smaller data amount between VMs? It is determined whether or not to process. Note that parameters other than X may be fixed values. This is because the processing load of calculation is reduced by setting each parameter to a fixed value.

図18に戻り、今回の入力データのデータ数が7個であり、代表的なデータ量が20Byteで、前回の実行回数データのカウント数(X)が20であり、平均データ量が8Byteの場合、判定部1621Cは、7*20<20*8から、マスタVMで変換を行うことに決定する。   Returning to FIG. 18, when the number of data of the current input data is 7, the representative data amount is 20 bytes, the count number (X) of the previous execution count data is 20, and the average data amount is 8 bytes. The determination unit 1621C determines to perform conversion by the master VM from 7 * 20 <20 * 8.

つまり、本実施の形態にかかる複合機1600では、ページ単位でカウント処理を行うため、今回と前回とでは、同等のカウンタ処理が行われる可能性が高い。換言すると、今回の入力データを変換すると、前回の実行回数データと同等のデータ量になるものと考えられる。そこで、本実施の形態にかかる判定部1621は、今回の入力データのデータ量と、前回の実行回数データのデータ量とを比較することした。   That is, since the multifunction peripheral 1600 according to the present embodiment performs the count process in units of pages, there is a high possibility that the same counter process is performed in this time and the previous time. In other words, if the current input data is converted, it is considered that the data amount is equivalent to the previous execution count data. Therefore, the determination unit 1621 according to the present embodiment compares the data amount of the current input data with the data amount of the previous execution count data.

そして、今回の入力データのデータ量の方が小さい場合には、入力データを出力し、マスタVM1601Aの変換部1622Aで変換処理を行う。一方、前回の実行回数データのデータ量の方が小さい場合には、第2のスレーブVM1601Cの変換部1622Cで変換処理を行った後、実行回数データを出力する。このように処理を行うことで、入力データと実行回数データのうち、データ量が小さい方がVM間で入出力されるため、処理負担を軽減することができる。   If the amount of input data this time is smaller, the input data is output, and the conversion process is performed by the conversion unit 1622A of the master VM 1601A. On the other hand, if the data amount of the previous execution count data is smaller, the conversion processing unit 1622C of the second slave VM 1601C performs the conversion process, and then the execution count data is output. By performing the processing in this manner, the input data and the execution count data having the smaller data amount are input / output between the VMs, so that the processing load can be reduced.

なお、本実施の形態では、前回の実行回数データに含まれているカウンタの数(X)を変数としたが、予め定められた固定値としても良い。   In the present embodiment, the number of counters (X) included in the previous execution frequency data is a variable, but it may be a predetermined fixed value.

(第4の実施の形態)
上述した実施の形態では、HDDにカウンタテーブルを格納する場合について説明した。しかしながら、カウンタテーブルの格納先をHDDに制限するものではなく、例えばフラッシュメモリに格納しても良い。そこで第4の実施の形態では、NANDフラッシュメモリにカウンタテーブルを格納する例について説明する。
(Fourth embodiment)
In the above-described embodiment, the case where the counter table is stored in the HDD has been described. However, the storage destination of the counter table is not limited to the HDD, and may be stored in, for example, a flash memory. Thus, in the fourth embodiment, an example in which a counter table is stored in a NAND flash memory will be described.

図20は、第4の実施の形態にかかる複合機2000の構成を示すブロック図である。複合機2000は、上述した第1の実施の形態にかかる複合機100とは、HDD151が削除されていること、NANDフラッシュメモリ2001とNVRAM2002が追加されていること、そしてサービス群104とは処理が異なるサービス群2003に変更された構成を有している点で異なる。以下の説明では、上述した第1の実施の形態と同一の構成要素には同一の符号を付してその説明を省略している。なお、VM等による処理は、上述した実施の形態で行われている処理と同様として説明を省略する。   FIG. 20 is a block diagram illustrating a configuration of a multifunction machine 2000 according to the fourth embodiment. The MFP 2000 is different from the MFP 100 according to the first embodiment described above in that the HDD 151 is deleted, the NAND flash memory 2001 and the NVRAM 2002 are added, and the service group 104 performs processing. The difference is that the configuration is changed to a different service group 2003. In the following description, the same components as those in the first embodiment described above are denoted by the same reference numerals and description thereof is omitted. Note that the processing by the VM or the like is the same as the processing performed in the above-described embodiment, and a description thereof is omitted.

本実施の形態にかかる複合機2000においては、書き込み回数の制限あるNANDフラッシュメモリ2001と、書き込み回数の制限数の多いNVRAM2002と、を組み合わせることで、更新が多いカウント数を、書き込み回数の制限があるNANDフラッシュメモリ2001で保持することを可能としている。   In the MFP 2000 according to the present embodiment, a combination of the NAND flash memory 2001 with a limited number of writings and the NVRAM 2002 with a large number of limiting the number of writings can be used to reduce the number of counts with many updates. It can be held by a certain NAND flash memory 2001.

上述した実施の形態では、HDDを搭載している例について説明したが、低価格帯の複合機では、HDDを搭載していない場合もある。このような場合、複合機に搭載されたNVRAMでカウンタテーブルを保持する必要がある。しかしながら、近年、複合機に登録できるユーザ数や、ユーザごとにカウントする項目が増加しており、書き込み回数が多いが高価なNVRAMでこれらの情報を管理することが困難になっている。   In the above-described embodiment, an example in which an HDD is mounted has been described. However, a low-price multifunction device may not have an HDD. In such a case, it is necessary to hold the counter table in the NVRAM mounted on the multifunction machine. However, in recent years, the number of users that can be registered in the multifunction peripheral and items to be counted for each user are increasing, and it is difficult to manage such information with an expensive NVRAM although the number of times of writing is large.

そこで、本実施の形態にかかる複合機2000では、NANDフラッシュメモリ2001と、NVRAM2002と、を組み合わせることとした。   Therefore, in the MFP 2000 according to the present embodiment, the NAND flash memory 2001 and the NVRAM 2002 are combined.

NANDフラッシュメモリ2001は、ユーザ別カウンタテーブルを全て保持するメモリとする。なお、本実施の形態にかかる複合機2000では、カウンタテーブルにおいて、ユーザ別にカウントを管理しているものとする。   The NAND flash memory 2001 is a memory that holds all user-specific counter tables. In the multifunction machine 2000 according to the present embodiment, it is assumed that the count is managed for each user in the counter table.

NVRAM2002は、NANDフラッシュメモリ2001上に永続化したカウンタテーブルから、ユーザ別カウンタの一部を展開するための作業領域となる。そして、データベース制御サービス2011は、NVRAM2002上に展開されたカウンタに対して、読み出し、書き込み等を行う。   The NVRAM 2002 serves as a work area for expanding a part of the user-specific counters from the counter table made permanent on the NAND flash memory 2001. Then, the database control service 2011 performs reading, writing, and the like on the counter developed on the NVRAM 2002.

図21は、NANDフラッシュメモリ2001と、NVRAM2002と、の関係を示した概念図である。図21に示すように、NANDフラッシュメモリ2001に格納されたユーザ別カウンタを、NVRAM2002に読み出される。そして、NVRAM2002に対してカウンタの更新等が行われる。最後に、データベース制御サービス2011が、NVRAM2002で行われた更新内容を、NANDフラッシュメモリ2001に反映させる。   FIG. 21 is a conceptual diagram showing the relationship between the NAND flash memory 2001 and the NVRAM 2002. As shown in FIG. 21, the user-specific counter stored in the NAND flash memory 2001 is read into the NVRAM 2002. Then, a counter update or the like is performed on the NVRAM 2002. Finally, the database control service 2011 reflects the updated contents performed in the NVRAM 2002 in the NAND flash memory 2001.

そして、データベース制御サービス2011は、書込部2021と、読出部2022と、ロック制御部163と、を備え、NVRAM2002、及びNANDフラッシュメモリ2001に対するアクセス制御を行う。また、本実施の形態にかかるデータベース制御サービス2011では、書き込み回数制限のあるNVRAM2002に記録するタイミングを、ユーザ別カウンタに特化している。   The database control service 2011 includes a writing unit 2021, a reading unit 2022, and a lock control unit 163, and performs access control to the NVRAM 2002 and the NAND flash memory 2001. Further, in the database control service 2011 according to the present embodiment, the timing for recording in the NVRAM 2002 with the limited number of writings is specialized for the user-specific counter.

読出部2022は、NANDフラッシュメモリ2001からNVRAM2002へのユーザ別カウンタの読み出しを行う。また、読出部2022は、NVRAM2002から、ユーザ別カウンタの読み出しも行う。   The reading unit 2022 reads the counter for each user from the NAND flash memory 2001 to the NVRAM 2002. The reading unit 2022 also reads out the counter for each user from the NVRAM 2002.

書込部2021は、NVRAM2002に対する、ユーザ別カウンタの書き込み、更新を行う。また、書込部2021は、NVRAM2002から読み出されたユーザ別カウンタを、NANDフラッシュメモリ2001に書き込み、更新を行う。   The writing unit 2021 writes and updates the user-specific counter in the NVRAM 2002. The writing unit 2021 writes the user-specific counter read from the NVRAM 2002 to the NAND flash memory 2001 and updates it.

なお、書込部2021は、NVRAM2002から読み出されたユーザ別カウンタの、NANDフラッシュメモリ2001への書き込みは、カウントアップ毎に行うのではなく、複数のカウント分まとめて行うものとする。これにより、書き込み回数を削減することが可能となる。   It is assumed that the writing unit 2021 writes the user-specific counters read from the NVRAM 2002 to the NAND flash memory 2001 not for every count-up but for a plurality of counts. As a result, the number of times of writing can be reduced.

次に、本実施の形態にかかる複合機2000における、処理に基づくカウントの更新からカウントの閲覧処理について説明する。図22は、本実施の形態にかかる複合機2000における上述した処理の手順を示すシーケンス図である。なお、本シーケンスでは、複数枚ページのコピーをまとめて処理する例であるが、例えば1又は複数枚のFAX印刷や、記憶媒体に格納された1又は複数枚の画像データの出力する例にも適用できる。   Next, the count browsing process from the count update based on the process in the MFP 2000 according to the present embodiment will be described. FIG. 22 is a sequence diagram illustrating the above-described processing procedure in the multi-function peripheral 2000 according to the present embodiment. This sequence is an example of processing a copy of a plurality of pages at once. However, for example, one or a plurality of FAX printing or an example of outputting one or a plurality of image data stored in a storage medium. Applicable.

本シーケンスでは、複数枚の記録用紙を複写する場合のカウント更新処理について説明する。さらに、複合機2000上において、プリンタアプリケーション132が動作しているVM上の処理とする。また、図22に示す例では、すでにユーザAのログイン処理は終了しているものとする。   In this sequence, a count update process for copying a plurality of recording sheets will be described. Further, it is assumed that the processing is performed on the VM in which the printer application 132 is running on the multifunction machine 2000. In the example shown in FIG. 22, it is assumed that the login process of the user A has already been completed.

まず、プロッタ155が、記録紙の読み取り処理を終了させた後、データベース制御サービス2011に対して、ユーザAが要求したページの入力が完了したことを通知する(ステップS2201)。   First, after the plotter 155 finishes the recording paper reading process, the plotter 155 notifies the database control service 2011 that the input of the page requested by the user A has been completed (step S2201).

当該通知を受けて、データベース制御サービス2011は、NVRAM2002にユーザAのカウンタが展開されているか否か確認する(ステップS2202)。本シーケンスでは、カウンタが展開されていない場合について説明する。カウンタが展開されている場合には、S2209の処理から行われる。   Upon receiving the notification, the database control service 2011 confirms whether or not the counter of the user A is expanded in the NVRAM 2002 (step S2202). In this sequence, a case where the counter is not expanded will be described. If the counter is expanded, the process is performed from S2209.

その後、データベース制御サービス2011は、NVRAM2002にユーザAのカウンタを展開するための領域があるか否かを確認する(ステップS2203)。本シーケンスでは、領域がない場合について説明する。   Thereafter, the database control service 2011 confirms whether or not there is an area for expanding the counter of the user A in the NVRAM 2002 (step S2203). In this sequence, a case where there is no area will be described.

そして、データベース制御サービス2011が、NVRAM2002に展開するための領域がないと判定した場合、読出部2022が、NVRAM2002に既に展開されている全ユーザのカウンタを読み出す(ステップS2204)。その後、データベース制御サービス2011の書込部2021が、読み取った全ユーザのカウントを、NANDフラッシュメモリ2001に記録する(ステップS2205)。   If the database control service 2011 determines that there is no area to be expanded in the NVRAM 2002, the reading unit 2022 reads the counters of all users already expanded in the NVRAM 2002 (step S2204). Thereafter, the writing unit 2021 of the database control service 2011 records the read counts of all users in the NAND flash memory 2001 (step S2205).

その後、データベース制御サービス2011が、NVRAM2002に格納されていたユーザのカウンタを消去して、ユーザAのカウントを展開する領域を確保する(ステップS2206)。   Thereafter, the database control service 2011 deletes the user counter stored in the NVRAM 2002, and secures an area for expanding the count of the user A (step S2206).

次に、読出部2022が、NANDフラッシュメモリ2001から、ユーザAのカウンタを読み出す(ステップS2207)。その後、書込部2021が、読み出したユーザAのカウントを、NVRAM2002に書き込む(ステップS2208)。   Next, the reading unit 2022 reads the user A counter from the NAND flash memory 2001 (step S2207). Thereafter, the writing unit 2021 writes the read count of the user A in the NVRAM 2002 (step S2208).

その後、書込部2021が、入力完了したページに関するカウントアップ更新を、NVRAM2002のユーザAのカウンタに対して行う(ステップS2209)。なお、カウントアップの対象となるカウンタID及びカウント幅の特定は、第1の実施の形態と同様の処理を行うものとして説明を省略する。   After that, the writing unit 2021 performs count-up update on the page for which input has been completed, on the counter of the user A in the NVRAM 2002 (step S2209). Note that the identification of the counter ID and the count width to be counted up is omitted because the same processing as in the first embodiment is performed.

次に、スキャナ154が、記録紙に対する印刷処理を終了させた後、データベース制御サービス2011に対して、ページの出力が完了したことを通知する(ステップS2210)。   Next, after the scanner 154 finishes the printing process for the recording paper, the scanner 154 notifies the database control service 2011 that page output has been completed (step S2210).

当該通知を受けて、データベース制御サービス2011は、NVRAM2002にユーザAのカウンタが展開されているか否か確認する(ステップS2211)。本シーケンスでは、データベース制御サービス2011は、ステップS2202〜S2208の処理により、カウンタが展開されていると判別できる。   In response to the notification, the database control service 2011 checks whether the counter of the user A is expanded in the NVRAM 2002 (step S2211). In this sequence, the database control service 2011 can determine that the counter is expanded by the processing of steps S2202 to S2208.

そこで、書込部2021が、出力完了したページに関するカウントアップ更新を、NVRAM2002のユーザAのカウンタに対して行う(ステップS2212)。   Therefore, the writing unit 2021 performs count-up update regarding the page for which output has been completed, on the counter of the user A of the NVRAM 2002 (step S2212).

複合機2000では、このステップS2201〜S2212までの処理を、2ページ目以降についても行う(ステップS2213)。   In the multifunction machine 2000, the processes from step S2201 to S2212 are also performed for the second and subsequent pages (step S2213).

そして、ユーザインタフェース123が、データベース制御サービス2011に対してカウンタの閲覧要求を行う(ステップS2214)。その際、データベース制御サービス2011の読出部2022は、NVRAM2002上の全ユーザのカウンタを読み出す(ステップS2215)。その後、書込部2021が、読み出した全ユーザのカウンタを、NANDフラッシュメモリ2001に書き込む(ステップS2216)。   Then, the user interface 123 makes a counter browsing request to the database control service 2011 (step S2214). At that time, the reading unit 2022 of the database control service 2011 reads the counters of all users on the NVRAM 2002 (step S2215). Thereafter, the writing unit 2021 writes the read counters of all users in the NAND flash memory 2001 (step S2216).

その後、データベース制御サービス2011が、NVRAM2002のカウンタを消去する(ステップS2217)。そして、読出部2022が、NANDフラッシュメモリ2001から、ユーザのカウンタを読み出す(ステップS2218)。そして、データベース制御サービス2011が、ユーザインタフェース123に対して、読み出したユーザのカウントを出力する(ステップS2219)。   Thereafter, the database control service 2011 deletes the counter of the NVRAM 2002 (step S2217). Then, the reading unit 2022 reads the user counter from the NAND flash memory 2001 (step S2218). Then, the database control service 2011 outputs the read user count to the user interface 123 (step S2219).

上述した処理手順により、複合機2000では、処理に応じたカウント制御を行うと共に、カウンタの閲覧を行うことができる。   With the above-described processing procedure, the multi-function peripheral 2000 can perform count control corresponding to the processing and browse the counter.

次に、本実施の形態にかかる複合機2000におけるカウントアップ更新時の処理について説明する。図23は、本実施の形態にかかる複合機2000における上述した処理の手順を示すフローチャートである。なお、本フローチャートは図22のステップS2202からS2209までの処理に相当する。   Next, processing at the time of count-up update in the multifunction machine 2000 according to the present embodiment will be described. FIG. 23 is a flowchart showing a procedure of the above-described processing in the multifunction machine 2000 according to the present embodiment. This flowchart corresponds to the processing from step S2202 to S2209 in FIG.

まず、データベース制御サービス2011が、NVRAM2002に、更新対象となるユーザのカウンタが展開されているか否かを判定する(ステップS2301)。そして、データベース制御サービス2011が、カウンタが展開されていると判定した場合(ステップS2301:Yes)、ステップS2306に進む。   First, the database control service 2011 determines whether or not the counter of the user to be updated is expanded in the NVRAM 2002 (step S2301). If the database control service 2011 determines that the counter is deployed (step S2301: Yes), the process proceeds to step S2306.

一方、データベース制御サービス2011が、カウンタが展開されていないと判定した場合(ステップS2301:No)、データベース制御サービス2011が、NVRAM2002上に、ユーザのカウンタを展開するための空き領域が存在するか否かを判定する(ステップS2302)。存在すると判定した場合(ステップS2302:Yes)、ステップS2305の処理に進む。   On the other hand, when the database control service 2011 determines that the counter is not expanded (step S2301: No), the database control service 2011 determines whether or not there is a free area on the NVRAM 2002 for expanding the user's counter. Is determined (step S2302). If it is determined that it exists (step S2302: YES), the process proceeds to step S2305.

一方、データベース制御サービス2011が、空き領域が存在しないと判定した場合(ステップS2302:No)、読出部2022がNVRAM2002上に展開されているカウンタを読み込んだ後、書込部2021が、読み込んだカウンタを全てNANDフラッシュメモリ2001上に書き込む(ステップS2303)。その後、データベース制御サービス2011が、NVRAM2002上のカウンタを消去する(ステップS2304)。   On the other hand, when the database control service 2011 determines that there is no free space (step S2302: No), after the reading unit 2022 reads the counter developed on the NVRAM 2002, the writing unit 2021 reads the counter read. Are all written in the NAND flash memory 2001 (step S2303). Thereafter, the database control service 2011 deletes the counter on the NVRAM 2002 (step S2304).

その後、読出部2022が、NANDフラッシュメモリ2001から更新対象となるユーザのカウンタを読み出した後、書込部2021が、読み出したカウンタをNVRAM2002上に書き込むことで、カウンタの展開を行う(ステップS2305)。   Thereafter, after the reading unit 2022 reads the counter of the user to be updated from the NAND flash memory 2001, the writing unit 2021 writes the read counter on the NVRAM 2002, thereby expanding the counter (step S2305). .

その後、書込部2021が、NVRAM2002上に展開された更新対象とユーザのカウントをカウントアップさせる更新をする(ステップS2306)。   Thereafter, the writing unit 2021 performs an update for counting up the update target and the user count expanded on the NVRAM 2002 (step S2306).

上述した処理手順により、ユーザのカウンタの更新が行われる。本実施の形態にかかる複合機2000では、上述した構成を備え、ユーザ別のカウンタテーブルをNANDフラッシュメモリ2001に格納するとともに、ユーザ別のカウンタテーブルカウンタを上述した更新タイミングで更新することで、より書き込み回数を減らし、NANDフラッシュメモリ2001の寿命を延ばすことができる。   The user's counter is updated by the processing procedure described above. The MFP 2000 according to the present embodiment has the above-described configuration, stores the user-specific counter table in the NAND flash memory 2001, and updates the user-specific counter table counter at the above-described update timing. The number of times of writing can be reduced and the life of the NAND flash memory 2001 can be extended.

このように、本実施の形態にかかる複合機2000においては、書き込み可能な回数の多い記憶媒体と、書き込み可能な回数の少ない記憶媒体を併用することで、書き込み可能な回数の少ない記憶媒体の寿命を延ばすことができる。   As described above, in the multi-function peripheral 2000 according to the present embodiment, the life of a storage medium with a small number of writable times can be obtained by using a storage medium with a large number of writable times and a storage medium with a small number of writable times. Can be extended.

(第4の実施の形態の変形例)
また、NANDフラッシュメモリ2001とNVRAM2002とを組み合わせた複合機2000において、各メモリの更新タイミングは、第4の実施の形態に限定されるものではない。そこで、第4の実施の形態と、更新のタイミングが異なる第4の実施の形態の変形例について説明する。
(Modification of the fourth embodiment)
Further, in the multi-function device 2000 in which the NAND flash memory 2001 and the NVRAM 2002 are combined, the update timing of each memory is not limited to that of the fourth embodiment. Therefore, a modification of the fourth embodiment that is different from the fourth embodiment in the update timing will be described.

本変形例にかかる複合機2000では、NVRAM2002上に、同時にログインできる最大ユーザ数のカウンタ分の空き領域を予めNVRAM2002上に確保する。   In the MFP 2000 according to the present modification, an empty area for the counter of the maximum number of users who can log in at the same time is reserved on the NVRAM 2002 in advance.

そして、スキャナ154から、ページの読み込み完了の通知を受け付けた場合に、データベース制御サービス2011が、当該ユーザのカウントがNVRAM2002上に展開されているか否か判定する。そして、展開されていない場合に、第4の実施の形態と同様にに、NANDフラッシュメモリ2001に格納されていたユーザのカウンタを読み込んで、NVRAM2002上に展開する。   When the notification of page reading completion is received from the scanner 154, the database control service 2011 determines whether or not the count of the user is expanded on the NVRAM 2002. If not expanded, the user's counter stored in the NAND flash memory 2001 is read and expanded on the NVRAM 2002 as in the fourth embodiment.

そして、プロッタ155からページの出力が完了した通知を受け付けた場合も、ユーザのカウンタが展開されているか否かの判定から行う。以降の処理については、上述した処理と同様として説明を省略する。   Even when a notification that the page output has been completed is received from the plotter 155, it is determined from whether or not the user's counter is expanded. Subsequent processing is the same as the processing described above, and a description thereof is omitted.

そして、データベース制御サービス2011は、ユーザインタフェース123から、ログアウト通知を受け付けると、読出部2022が、NVRAM2002上のログアウトしたユーザのカウンタを全件読み出した後、書込部2021が、NANDフラッシュメモリ2001上に、読み出したカウンタ全件を書き戻す。その後、データベース制御サービス2011が、NVRAM2002上からログアウトしたユーザのカウンタを消去し、NANDフラッシュメモリ2001上に記録したカウンタ値を、ユーザインタフェース123に出力する。   When the database control service 2011 receives a logout notification from the user interface 123, the reading unit 2022 reads all the logged-out user counters on the NVRAM 2002, and then the writing unit 2021 stores the logout on the NAND flash memory 2001. Write back all the counters that were read. Thereafter, the database control service 2011 deletes the counter of the user who has logged out from the NVRAM 2002, and outputs the counter value recorded on the NAND flash memory 2001 to the user interface 123.

本変形例にかかる複合機2000においては、上述した処理を行うことで、第4の実施の形態と同様の効果を得ることができる。   In the multifunction machine 2000 according to the present modification, the same effects as in the fourth embodiment can be obtained by performing the above-described processing.

図24は、第1〜4の実施の形態及び変形例にかかる複合機のハードウェア構成を示すブロック図である。本図に示すように、これら複合機100、1100、1500、1600、及び2000は、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interface)バスで接続した構成となる。コントローラ10は、複合機100、1100、1500、1600、及び2000全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。   FIG. 24 is a block diagram illustrating a hardware configuration of the MFP according to the first to fourth embodiments and modifications. As shown in the figure, the multifunction peripherals 100, 1100, 1500, 1600, and 2000 have a configuration in which the controller 10 and an engine unit (Engine) 60 are connected by a PCI (Peripheral Component Interface) bus. The controller 10 is a controller that controls the entire MFPs 100, 1100, 1500, 1600, and 2000 and controls drawing, communication, and input from an operation unit (not shown). The engine unit 60 is a printer engine that can be connected to a PCI bus, and is, for example, a monochrome plotter, a one-drum color plotter, a four-drum color plotter, a scanner, or a fax unit. The engine unit 60 includes an image processing part such as error diffusion and gamma conversion in addition to a so-called engine part such as a plotter.

コントローラ10は、CPU11と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(HDD)18とを有し、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となる。また、MEM−P12は、ROM(Read Only Memory)12aと、RAM(Random Access Memory)12bと、をさらに有する。   The controller 10 includes a CPU 11, a north bridge (NB) 13, a system memory (MEM-P) 12, a south bridge (SB) 14, a local memory (MEM-C) 17, and an ASIC (Application Specific Integrated Circuit). 16 and a hard disk drive (HDD) 18, and the north bridge (NB) 13 and the ASIC 16 are connected by an AGP (Accelerated Graphics Port) bus 15. The MEM-P 12 further includes a ROM (Read Only Memory) 12a and a RAM (Random Access Memory) 12b.

CPU11は、複合機100、1100、1500、1600、及び2000の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。   The CPU 11 performs overall control of the multifunction peripherals 100, 1100, 1500, 1600, and 2000. The CPU 11 has a chip set including the NB 13, the MEM-P 12, and the SB 14, and is connected to other devices via the chip set. Is done.

NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。   The NB 13 is a bridge for connecting the CPU 11 to the MEM-P 12, SB 14, and AGP 15, and includes a memory controller that controls reading and writing to the MEM-P 12, a PCI master, and an AGP target.

MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。   The MEM-P 12 is a system memory used as a memory for storing programs and data, a memory for developing programs and data, a memory for drawing a printer, and the like, and includes a ROM 12a and a RAM 12b. The ROM 12a is a read-only memory used as a program / data storage memory, and the RAM 12b is a writable / readable memory used as a program / data development memory, a printer drawing memory, or the like.

SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。   The SB 14 is a bridge for connecting the NB 13 to a PCI device and peripheral devices. The SB 14 is connected to the NB 13 via a PCI bus, and a network interface (I / F) unit and the like are also connected to the PCI bus.

ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP15、PCIバス、HDD18およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Facsimile Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。操作表示部20はASIC16に直接接続されている。   The ASIC 16 is an IC (Integrated Circuit) for image processing applications having hardware elements for image processing, and has a role of a bridge for connecting the AGP 15, PCI bus, HDD 18, and MEM-C 17. The ASIC 16 includes a PCI target and an AGP master, an arbiter (ARB) that forms the core of the ASIC 16, a memory controller that controls the MEM-C 17, and a plurality of DMACs (Direct Memory) that rotate image data using hardware logic. (Access Controller) and a PCI unit that performs data transfer between the engine unit 60 via the PCI bus. The ASIC 16 is connected with an FCU (Facile Control Unit) 30, a USB (Universal Serial Bus) 40, and an IEEE 1394 (the Institute of Electrical Engineers 50) interface via an PCI bus. The operation display unit 20 is directly connected to the ASIC 16.

MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。   The MEM-C 17 is a local memory used as a copy image buffer and a code buffer, and an HDD (Hard Disk Drive) 18 is a storage for storing image data, programs, font data, and forms. It is.

AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。   The AGP 15 is a bus interface for a graphics accelerator card proposed for speeding up graphics processing. The AGP 15 speeds up the graphics accelerator card by directly accessing the MEM-P 12 with high throughput. .

また、上述した実施の形態及び変形例はそれぞれの特徴的構成を組み合わせた実施形態を実現しても良い。例えば、第2の実施の形態〜第4の実施の形態においても、第1の実施の形態の変形例のように処理の種類毎にカウンタテーブルを保持するよう構成しても良い。   In addition, the above-described embodiments and modifications may realize an embodiment in which respective characteristic configurations are combined. For example, in the second to fourth embodiments, a counter table may be held for each type of processing as in the modification of the first embodiment.

100、1100、1500、1600、2000 複合機
101 メインOS
102、1101 仮想マシン制御部
103 共通メカニズム
104、1102 サービス群
105 アプリケーション群
111 プラグイン管理部
112 履歴制御部
121、1112、1511、1611 レコード変換制御サービス
122、1001、1111、1513、2011 データベース制御サービス
123 ユーザインタフェース
124 IPCサービス
131 コピーアプリケーション
132 プリンタアプリケーション
133 FAXアプリケーション
134 ユーザアプリケーション
135 ジョブコントローラ
151 HDD
152 タッチパネル
153 電話回線I/F
154 スキャナ
155 プロッタ
156 その他ハードウェアリソース
161、1002、2021 書込部
162、2022 読出部
163、1003 ロック制御部
171、1622 変換部
172、1512 レコードデータ記憶領域
181 出力部
301A、1201A、1501A、1601A マスタVM
301B、1201B、1501B、1601B 第1のスレーブVM
301C、1201C、1601C 第2のスレーブVM
1621 判定部
2001 NANDフラッシュメモリ
2003 サービス群
100, 1100, 1500, 1600, 2000 MFP 101 Main OS
102, 1101 Virtual machine control unit 103 Common mechanism 104, 1102 Service group 105 Application group 111 Plug-in management unit 112 History control unit 121, 1112, 1511, 1611 Record conversion control service 122, 1001, 1111, 1513, 2011 Database control service 123 User interface 124 IPC service 131 Copy application 132 Printer application 133 FAX application 134 User application 135 Job controller 151 HDD
152 Touch panel 153 Telephone line I / F
154 Scanner 155 Plotter 156 Other hardware resources 161, 1002, 2021 Writing unit 162, 2022 Reading unit 163, 1003 Lock control unit 171, 1622 Conversion unit 172, 1512 Record data storage area 181 Output unit 301A, 1201A, 1501A, 1601A Master VM
301B, 1201B, 1501B, 1601B First slave VM
301C, 1201C, 1601C Second slave VM
1621 determination unit 2001 NAND flash memory 2003 service group

特開2005−229592号公報JP 2005-229592 A

Claims (8)

プログラムの実行で実現された第1の仮想マシンと、第2の仮想マシンと、を動作させる情報処理装置において、
仮想マシンで行われた処理回数を示す処理回数情報を記憶する第1の記憶手段と、
仮想マシンで行われた処理の結果を示す入力情報から、当該処理を当該仮想マシンが実行した回数を示す実行回数情報に変換する変換情報を、記憶する第2の記憶手段と、
前記第2の記憶手段に記憶された前記変換情報を、前記第2の仮想マシンに出力する第1の出力手段と、
前記第1の出力手段により出力された前記変換情報に従って、前記第2の仮想マシン上で、前記入力情報から実行回数情報に変換する変換手段と、
前記変換手段で変換された前記実行回数情報を、前記第1の仮想マシンに出力する第2の出力手段と、
前記第2の出力手段により出力された前記実行回数情報に基づいて、前記第1の仮想マシンから前記第1の記憶手段の前記処理回数情報を書き込む書込手段と、
を備えたことを特徴とする情報処理装置。
In an information processing apparatus that operates a first virtual machine and a second virtual machine realized by executing a program,
First storage means for storing processing count information indicating the processing count performed in the virtual machine;
Second storage means for storing conversion information for converting the input information indicating the result of the process performed in the virtual machine into the execution frequency information indicating the number of times that the virtual machine has been executed;
First output means for outputting the conversion information stored in the second storage means to the second virtual machine;
Conversion means for converting the input information into execution frequency information on the second virtual machine according to the conversion information output by the first output means;
Second output means for outputting the execution frequency information converted by the conversion means to the first virtual machine;
A writing unit for writing the processing number information of the first storage unit from the first virtual machine based on the execution number information output by the second output unit;
An information processing apparatus comprising:
前記第2の仮想マシンで、前記入力情報と、当該入力情報より前の入力情報を前記変換手段で変換した前記実行回数情報と、のうちデータ量の小さい方を判定する判定手段と、
前記第1の仮想マシンに前記入力情報が入力された場合、前記記憶手段に記憶された前記変換情報に従って、当該入力情報を、前記実行回数情報に変換する第2の変換手段と、をさらに備え、
前記第2の出力手段は、前記実行回数情報のデータ量が小さいと判定された場合、前記変換手段に変換された前記実行回数情報を前記第1の仮想マシンに出力し、前記入力情報のデータ量が小さいと判定された場合、前記入力情報を前記第1の仮想マシンに出力すること、
を特徴とする請求項1に記載の情報処理装置。
In the second virtual machine, determination means for determining the smaller one of the input information and the execution frequency information obtained by converting the input information before the input information by the conversion means;
A second conversion unit configured to convert the input information into the execution frequency information according to the conversion information stored in the storage unit when the input information is input to the first virtual machine; ,
When it is determined that the data amount of the execution count information is small, the second output means outputs the execution count information converted by the conversion means to the first virtual machine, and the data of the input information If it is determined that the amount is small, outputting the input information to the first virtual machine;
The information processing apparatus according to claim 1.
前記変換手段で変換された前記実行回数情報が、前記第2の仮想マシンしかカウントしない処理結果の場合、前記第2の仮想マシンから、前記第1の記憶手段の前記処理回数情報に、前記実行回数情報を書き込む第2の書込手段を、さらに備え、
前記第2の出力手段は、前記第2の仮想マシン以外の仮想マシンもカウントする処理結果の場合に、前記変換手段で変換された前記実行回数情報を、前記第1の仮想マシンに出力すること、
を特徴とする請求項1に記載の情報処理装置。
If the execution count information converted by the conversion means is a processing result that counts only the second virtual machine, the execution count information is stored in the execution count information of the first storage means from the second virtual machine. A second writing means for writing the number of times information;
The second output means outputs the execution frequency information converted by the conversion means to the first virtual machine in the case of a processing result that also counts virtual machines other than the second virtual machine. ,
The information processing apparatus according to claim 1.
前記書込手段が、前記第1の記憶手段に対して書き込みを行う際に、当該書込手段以外で書き込みが行われないようロックするロック手段を、さらに備えることを特徴とする請求項1乃至3のいずれか1つに記載の情報処理装置。   2. The device according to claim 1, further comprising a lock unit configured to lock the writing unit so that writing is not performed by a unit other than the writing unit when the writing unit performs writing to the first storage unit. 4. The information processing apparatus according to any one of 3. 前記第1の記憶手段は、さらに処理の種類別に、当該処理回数情報を記憶し、
前記ロック手段は、前記実行回数情報を書き込む対象の前記処理回数情報のみをロックすること、
を特徴とする請求項4に記載の情報処理装置。
The first storage means further stores the processing count information for each type of processing,
The locking means locks only the processing number information to which the execution number information is written;
The information processing apparatus according to claim 4.
書き込み可能な回数が前記第1の記憶手段より多い第3の記憶手段と、
前記第1の記憶手段に記憶された前記処理回数情報を読み出す読出手段と、
前記書込手段が、読み出した前記処理回数情報を前記第3の記憶手段に書き込み、前記変換手段で変換が行われる毎に、変換された前記実行回数情報を用いて前記第3の記憶手段の前記処理回数情報を更新し、前記第3の記憶手段で複数回更新された前記処理回数情報を、まとめて前記第1の記憶手段に書き込むこと、
を特徴とする請求項1に記載の情報処理装置。
A third storage means having a number of writable times greater than that of the first storage means;
Reading means for reading out the processing count information stored in the first storage means;
The writing unit writes the read processing count information into the third storage unit, and each time conversion is performed by the conversion unit, the converted execution count information is used for the third storage unit. Updating the processing count information and writing the processing count information updated a plurality of times in the third storage means to the first storage means;
The information processing apparatus according to claim 1.
プログラムの実行で実現された第1の仮想マシンと、第2の仮想マシンと、を動作させる情報処理装置で実行される情報処理方法であって、
前記情報処理装置が、仮想マシンで行われた処理回数を示す処理回数情報を記憶する第1の記憶手段と、
仮想マシンで行われた処理の結果を示す入力情報から、当該処理を当該仮想マシンが実行した回数を示す実行回数情報に変換する変換情報を、記憶する第2の記憶手段と、を備え、
第1の出力手段が、前記第2の記憶手段に記憶された前記変換情報を、前記第2の仮想マシンに出力する第1の出力ステップと、
変換手段が、前記第1の出力ステップにより出力された前記変換情報に従って、前記第2の仮想マシン上で、前記入力情報から実行回数情報に変換する変換ステップと、
第2の出力手段が、前記変換ステップで変換された前記実行回数情報を、前記第1の仮想マシンに出力する第2の出力ステップと、
書込手段が、前記第2の出力ステップにより出力された前記実行回数情報に基づいて、前記第1の仮想マシンから前記第1の記憶手段の前記処理回数情報に書き込む書込ステップと、
を含むことを特徴とする情報処理方法。
An information processing method executed by an information processing apparatus that operates a first virtual machine and a second virtual machine realized by executing a program,
A first storage means for storing processing number information indicating the number of processing times performed by the virtual machine;
A second storage means for storing conversion information for converting the input information indicating the result of the processing performed in the virtual machine into execution frequency information indicating the number of times that the virtual machine has been executed;
A first output step in which a first output means outputs the conversion information stored in the second storage means to the second virtual machine;
A conversion step in which conversion means converts the input information into execution frequency information on the second virtual machine in accordance with the conversion information output in the first output step;
A second output step in which a second output means outputs the execution frequency information converted in the conversion step to the first virtual machine;
A writing step in which writing means writes the processing count information in the first storage means from the first virtual machine based on the execution count information output in the second output step;
An information processing method comprising:
第1の仮想マシンと、第2の仮想マシンと、を動作させるコンピュータで実行される情報処理プログラムであって、
前記コンピュータが、仮想マシンで行われた処理回数を示す処理回数情報を記憶する第1の記憶手段と、
仮想マシンで行われた処理の結果を示す入力情報から、当該処理を当該仮想マシンが実行した回数を示す実行回数情報に変換する変換情報を、記憶する第2の記憶手段と、を備え、
前記第2の記憶手段に記憶された前記変換情報を、前記第2の仮想マシンに出力する第1の出力手段と、
前記第1の出力手段により出力された前記変換情報に従って、前記第2の仮想マシン上で、前記入力情報から実行回数情報に変換する変換手段と、
前記変換手段で変換された前記実行回数情報を、前記第1の仮想マシンに出力する第2の出力手段と、
前記第2の出力手段により出力された前記実行回数情報に基づいて、前記第1の仮想マシンから前記第1の記憶手段の前記処理回数情報に書き込む書込手段と、
して機能させるための情報処理プログラム。
An information processing program executed by a computer that operates a first virtual machine and a second virtual machine,
A first storage means for storing processing count information indicating the number of processing steps performed by the computer in the virtual machine;
A second storage means for storing conversion information for converting the input information indicating the result of the processing performed in the virtual machine into execution frequency information indicating the number of times that the virtual machine has been executed;
First output means for outputting the conversion information stored in the second storage means to the second virtual machine;
Conversion means for converting the input information into execution frequency information on the second virtual machine according to the conversion information output by the first output means;
Second output means for outputting the execution frequency information converted by the conversion means to the first virtual machine;
Writing means for writing from the first virtual machine into the processing count information of the first storage means based on the execution count information output by the second output means;
Information processing program to make it function.
JP2009260185A 2009-11-13 2009-11-13 Information processing apparatus, information processing method, and information processing program Expired - Fee Related JP5407783B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009260185A JP5407783B2 (en) 2009-11-13 2009-11-13 Information processing apparatus, information processing method, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009260185A JP5407783B2 (en) 2009-11-13 2009-11-13 Information processing apparatus, information processing method, and information processing program

Publications (2)

Publication Number Publication Date
JP2011107831A JP2011107831A (en) 2011-06-02
JP5407783B2 true JP5407783B2 (en) 2014-02-05

Family

ID=44231251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009260185A Expired - Fee Related JP5407783B2 (en) 2009-11-13 2009-11-13 Information processing apparatus, information processing method, and information processing program

Country Status (1)

Country Link
JP (1) JP5407783B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183048B2 (en) * 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6320549A (en) * 1986-07-14 1988-01-28 Hitachi Ltd Monitor information collection method
JP3735141B2 (en) * 1995-07-05 2006-01-18 富士通株式会社 Virtual computer system
JP2003281264A (en) * 2002-03-25 2003-10-03 Ricoh Co Ltd Billing method and image forming apparatus
JP2008283371A (en) * 2007-05-09 2008-11-20 Ricoh Co Ltd Image processing apparatus, image processing method, and image processing program
JP5401872B2 (en) * 2008-01-25 2014-01-29 株式会社リコー Image forming apparatus

Also Published As

Publication number Publication date
JP2011107831A (en) 2011-06-02

Similar Documents

Publication Publication Date Title
JP4185920B2 (en) Print control method, print setting management system, and software distribution server
US11778110B2 (en) Image processing apparatus displaying a home screen in a fixed button mode in a state where acquisition of a recommended button information is unavailable
US8584137B2 (en) Image processing system for judging whether a partial job should be processed by an own device or another device
KR102348317B1 (en) Image processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US20130067565A1 (en) Image forming apparatus, access control method, access control program and computer readable information recording medium
JP2018106410A (en) Image formation device and function addition method and program
US9026576B2 (en) Image processing device, job processing method, and program
US8773699B2 (en) Information processing apparatus, printing system, and method for controlling the same
US20140325595A1 (en) Image processing apparatus, image processing system, method of performing status monitoring to check if authentication server recovers from down status, and recording medium
US20080229327A1 (en) Information processing apparatus, information processing mehtod and computer program product
US20080250430A1 (en) Method and corresponding apparatus for creation of print drivers in a network
JP6326795B2 (en) Information processing system, information processing apparatus, information processing method, and program
JP5407783B2 (en) Information processing apparatus, information processing method, and information processing program
US20080059548A1 (en) Image processing apparatus, image processing method, and image processing program
JP6690513B2 (en) Information processing apparatus, information processing system, and information processing method
JP6142890B2 (en) Print control program, print control apparatus, and print control method
KR20190132218A (en) Image processing apparatus, method for controlling the same, and computer-readable storage medium
US10992834B2 (en) Image processing apparatus, method for controlling the same, and computer-readable storage medium
US20080225320A1 (en) Systems and methods for unified imaging job accounting
JP6834716B2 (en) Print management program, print management method, print management device and print management system
CN101542440B (en) Motion control method and image forming apparatus
US20130054774A1 (en) Management system, management method, and storage medium
US8913257B2 (en) Image forming apparatus, method and program of managing the image forming apparatus by reserving area for identified counter
JP6406085B2 (en) Print control program, print control apparatus, and print control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131003

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131021

LAPS Cancellation because of no payment of annual fees