JP5407783B2 - Information processing apparatus, information processing method, and information processing program - Google Patents
Information processing apparatus, information processing method, and information processing program Download PDFInfo
- 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
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
しかしながら、引用文献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.
以下に添付図面を参照して、この発明にかかる情報処理装置、情報処理方法、及び情報処理プログラムの一実施の形態を詳細に説明する。以下に示す実施の形態においては、情報処理装置、情報処理方法、及び情報処理プログラムを適用した画像形成装置について説明する。 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
そして、複合機100は、ハードウェアリソースとして、HDD151と、タッチパネル152と、電話回線I/F153と、スキャナ154と、プロッタ155と、その他ハードウェアリソース156と、を備えている。
The
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
コピーアプリケーション131は、入力された紙原稿のスキャンから、当該紙原稿を複製した複製紙を生成するまでの処理を統括するアプリケーションとする。プリンタアプリケーション132は、複合機100が保持する又は入力された画像データを、記録紙に対して出力するまでの処理を制御するアプリケーションとする。FAXアプリケーション133は、電話回線I/F153を介して入力された画像データが入力された場合に、当該画像データが印刷された記録紙を出力するまでの処理を制御するアプリケーションとする。ユーザアプリケーション134は、ユーザが生成したアプリケーションであって、プラグイン管理部111から入力されたアプリケーションとする。
The
ジョブコントローラ135は、ジョブの実行順や、ジョブ毎の実行/中断/最下位などを制御するコントローラとする。
The
そして、本実施の形態にかかる複合機100では、コピーアプリケーション131、プリンタアプリケーション132、FAXアプリケーション133、及びユーザアプリケーション134は、任意の仮想マシンに割り当てられる。また、ジョブコントローラ135は、各仮想マシンにそれぞれ割り当てられる。これにより仮想マシンごとにジョブの管理が可能となる。
In the
そして、コピーアプリケーション131、プリンタアプリケーション132、FAXアプリケーション133、及びユーザアプリケーション134は、処理を行う度に、当該処理をカウントするための入力データを、サービス群104のレコード変換制御サービス121に対して出力する。
Each time the
図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
図1に戻り、メインOS101は、複合機100のハードウェアリソースと、ソフトウェアリソースと、を管理するプログラムとする。メインOS101は、プログラムの起動、情報の読み込み制御、保存制御等を行うものとする。
Returning to FIG. 1, the
共通メカニズム103は、仮想マシン上で動作するプログラム群で構成され、プラグイン管理部111と、履歴制御部112とを、備え、アプリケーション群105に格納するアプリケーションを含む、コンポーネントの追加、更新、削除、正当性の確認などを行う。
The
プラグイン管理部111は、アプリケーション群105やサービス群104に対する、コンポーネントの追加、更新、削除、正当性の確認を制御する。
The plug-in
履歴制御部112は、コンポーネントの追加、更新、削除、正当性の確認が行われたことを示す情報を、履歴として保持する制御を行う。
The
本実施の形態にかかる複合機100においては、プラグイン管理部111を利用することで、当該複合機100を提供しているメーカ以外であっても、カスタマイズアプリをプラグインとして、インストールすることができる。
In the
仮想マシン制御部102は、メインOS101上で、複数の仮想マシンを動作させる制御を行う。仮想マシンの例としては、Java(登録商標)仮想マシンがある。本実施の形態においては、マルチVM技術を適用することで、複数の仮想マシンを動作させることができる。
The virtual
つまり、本実施の形態にかかる複合機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
しかしながら、本実施の形態にかかる複合機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
図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
仮想マシンとは、複合機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
そして、マスタVM301A、第1のスレーブVM301B、及び第2のスレーブVM301C上にはそれぞれ、共通メカニズム103と、サービス群104と、ジョブコントローラ135と、VM毎に割り当てられたアプリケーションと、が実行される。
Then, the
そして、マスタVM301Aには、プリンタアプリケーション132が割り当てられる。また、第1のスレーブVM301Bには、コピーアプリケーション131と、FAXアプリケーション133とが、割り当てられる。さらに、また、第2のスレーブVM301Cには、ユーザアプリケーション134が、割り当てられる。このように、仮想マシン毎に割り当てられるアプリケーションは、一つに制限するものではなく、複数割り当てても良い。
A
そして、マスタVM301A、第1のスレーブVM301B、及び第2のスレーブVM301Cの間のデータ通信は、各仮想マシンが備えたIPC(Inter Process Communication)サービス124が制御する。
Data communication among the
また、共通メカニズム103、サービス群104、及びアプリケーション群105は、VM上で動作するクラスの集合であり、そのクラスがクラスライブラリのクラスを呼び出すことにより、上述したアプリケーションなどのソフトウェアの処理が実行される。そして、共通メカニズム103、サービス群104、及びアプリケーション群105の各ソースコードプログラムは、コンパイルして中間コード形式のバイトコードにされ、複合機100にロードされる。そして各仮想マシンは、そのバイトコードを解釈・実行している。
The
サービス群104は、仮想マシン上で動作するプログラム群で構成され、レコード変換制御サービス121と、データベース制御サービス122と、ユーザインタフェース123と、IPCサービス124と、を備え、アプリケーション群105に格納された複数のアプリケーションが共通に使用する部分を集めたプログラム群とする。
The
データベース制御サービス122は、書込部161と、読出部162と、ロック制御部163とを備え、HDD151に格納されたデータベースに対して、アクセス制御を行う。
The
書込部161は、HDD151に格納されたデータベースに対してデータの書き込み、又は更新を行う。例えば、マスタVM301AがスレーブVMから実行回数データを受け付けた場合、マスタVM301A上で動作している書込部161は、当該実行回数データをHDD151に書き込む。
The writing unit 161 writes or updates data in the database stored in the
読出部162は、HDD151からデータの読み出しを行う。また、読出部162は、HDD151から、テーブル情報を読み出しても良い。
The
例えば、マスタVM301Aの読出部162は、カウンタデシジョンテーブルを読み出す。カウンタデシジョンテーブルとは、各アプリケーションからの入力データを、当該入力データに含まれている処理結果に基づいて、当該処理の実行された回数が示された実行回数データに変換するテーブルとする。
For example, the
図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
カウンタ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
例えば、マスタ仮想マシンが、書込部161を介して、HDD151のデータベースに対して書き込みを行う際に、マスタ仮想マシンの書込部161以外で書き込みが行われないよう、書き込み対象であるテーブルをロックする。
For example, when the master virtual machine writes to the database of the
IPCサービス124は、出力部181を備え、仮想マシン間のデータ転送を簡略する。出力部181は、他の仮想マシンに対してデータの出力を行う。
The
例えば、マスタ仮想マシン上の出力部181は、データベース制御サービス122の読出部162で読み出されたタイムデシジョンテーブルを、他のスレーブ仮想マシンに出力する。
For example, the
他の例としては、スレーブ仮想マシン上の出力部181は、入力データをタイムデシジョンテーブルで変換された実行回数データを、マスタ仮想マシンに対して出力する。
As another example, the
レコード変換制御サービス121は、変換部171と、レコードデータ記憶領域172とを備え、仮想マシンごとに割り当てられたアプリケーションからの要求に従って、当該仮想マシンに応じたデータベースのアクセス制御を行う。
The record
レコードデータ記憶領域172は、仮想マシンごとのデータをデータベース構造で記憶する領域とする。そして、レコードデータ記憶領域172に格納されたデータは、必要に応じて他の仮想マシンに出力されたり、HDD151に追加、更新されたりする。
The record
変換部171は、カウンタデシジョンテーブルに従って、各仮想マシン上で、各アプリケーションの処理結果である入力データから、実行回数データに変換する。
The
図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
この処理は、仮想マシン毎に行うこととする。そして、生成した実行回数データを、スレーブ仮想マシンからマスタ仮想マシンに出力し、マスタ仮想マシンが入力された実行回数データでカウンタテーブルを更新する。つまり、本実施の形態においては、入力データを仮想マシン間で送受信するのではなく、スレーブ仮想マシンが、カウンタデシジョンテーブルを用いて入力データから、データサイズが小さい実行回数データに変換し、当該実行回数データをマスタ仮想マシンに送信している。これにより、仮想マシン間で送受信されるデータ量を削減することができる。 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
次に、本実施の形態にかかる複合機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
そして、HDD151に対するカウンタの書き込み、読み込み制御は、マスタVM301Aが管理する。具体的には、レコード変換制御サービス121Aは、カウンタデシジョンテーブル、カウンタテーブル等を、レコードデータ記憶領域172Aにインストールする。その後、データベース制御サービス122Aの書込部161が、レコードデータ記憶領域172Aに格納されたカウンタデシジョンテーブル、カウンタテーブル等を、HDD151に書き込む。これにより、各処理をカウントするためのテーブル等が全てインストールされたものとする。
The
なお、本実施の形態においては、他のスレーブVM301B、301Cは、HDD151にアクセスすることを抑止している。このため、通常起動時に、データを変換するためのカウントデシジョンテーブルを、マスタVM301Aから、第1の他のスレーブVM301B、第2のスレーブVM301Cに出力する必要がある。
In the present embodiment, the
図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
一方、第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
なお、本実施の形態においては、各スレーブ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
次に各仮想マシンで行われた処理に従って、カウントが行われる場合について説明する。図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
そして、レコード変換制御サービス121Aが、レコードデータ記憶領域172Aに対して、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう、書き込み要求802を行う。その後、データベース制御サービス122Aが、レコードデータ記憶領域172Aに書き込まれたカウンタID、カウント幅を用いて、HDD151のカウンタテーブルに書き込み又は更新する。その際、データベース制御サービス122Aのロック制御部163が、書き込み対象であるカウンタテーブルを、他から書き込まれないようにロックする。
Then, the record
次に、他のスレーブ仮想マシンの場合について説明する。図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
そして、レコード変換制御サービス121Bが、レコードデータ記憶領域172Bに対して、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう、書き込み要求804を行う。そして、第1のスレーブVM301BのIPCサービス124の出力部181が、レコードデータ記憶領域172Bに格納されたカウンタID、及びカウント幅の書き込み要求805を、マスタVM301Aに対して行う。これにより、マスタVM301Aのレコードデータ記憶領域172Aに、当該カウンタID、及びカウント幅が書き込まれる。その後、データベース制御サービス122Aが、レコードデータ記憶領域172Aに書き込まれたカウンタID、カウント幅を用いて、HDD151のカウンタテーブルに書き込み又は更新する。
Then, the record
次に、本実施の形態にかかる複合機100における、スレーブ仮想マシンによるカウントを書き込むまでの処理について説明する。図9は、本実施の形態にかかる複合機100における上述した処理の手順を示すフローチャートである。なお、当該フローチャートにおいては、第1のスレーブVM301Bの通常の起動時からの処理について説明する。第2のスレーブVM301Cは、第1のスレーブVM301Bと同様として説明を省略する。
Next, a process until the count by the slave virtual machine is written in the
まず、第1のスレーブVM301Bは、通常起動時に、マスタVM301Aに対して、カウンタデシジョンテーブルの取得要求を、IPCサービス124を介して行う(ステップS951)。
First, the
そして、マスタVM301Aは、第1のスレーブVM301Bから、カウンタデシジョンテーブルの取得要求を受け付ける(ステップS901)。
Then, the
次に、マスタVM301AのIPCサービス124の出力部181が、キャッシュに保持されていたカウンタデシジョンテーブル502を、第1のスレーブVM301Bに対して出力する(ステップS902)。
Next, the
そして、第1のスレーブVM301Bのレコード変換制御サービス121Bが、IPCサービス124を介して、カウンタデシジョンテーブルの入力を受け付ける(ステップS952)。そして、入力を受け付けたカウンタデシジョンテーブルは、レコード変換制御サービス121B内に保持される。
Then, the record
その後、第1のスレーブVM301B内に割り当てられたアプリケーションが、ユーザ等からの要求に応じて処理を行ったものとする(ステップS953)。
After that, it is assumed that the application allocated in the
そして、当該アプリケーションが、処理結果である入力データを出力すると共に、カウントの要求を、レコード変換制御サービス121Bに対して行う(ステップS954)。
Then, the application outputs input data as a processing result and requests the record
次に、レコード変換制御サービス121Bが、カウント要求を受け付けた場合に、変換部171が、カウンタデシジョンテーブルを用いて、入力された入力データを、実行回数データに変換する(ステップS955)。
Next, when the record
そして、変換部171が、レコードデータ記憶領域172Bに対して、実行回数データと共に、カウントの書き込み要求を行う(ステップS956)。これにより、レコードデータ記憶領域172Bには、カウンタIDとカウント幅との対応付けられたレコードが格納される。
Then, the
その後、第1のスレーブVM301BのIPCサービス124の出力部181が、レコードデータ記憶領域172Bに格納されたカウンタID及びカウント幅と共に、書き込み要求を、マスタVM301Aに対して出力する(ステップS957)。
Thereafter, the
これに伴い、マスタVM301AのIPCサービス124が、カウンタID及びカウント幅と共に、書き込み要求の入力を受け付ける(ステップS903)。
Along with this, the
そして、マスタVM301AのIPCサービス124が、入力を受け付けたカウンタID及びカウント幅を、レコードデータ記憶領域172Aに格納する(ステップS904)。
Then, the
次に、マスタVM301Aにおける、データベース制御サービス122Aの書込部161が、レコードデータ記憶領域172Aに格納されたカウンタID及びカウント幅に基づいて、HDD151のカウンタテーブルに書き込み、又は更新する(ステップS905)。
Next, the writing unit 161 of the
上述した処理手順により、本実施の形態にかかる複合機100では、カウンタの更新を行うことができる。
With the processing procedure described above, the
本実施の形態にかかる複合機100では、カウンタテーブルと、カウンタデシジョンテーブルとをHDD151に記憶することとしたが、それぞれ別の記憶手段に記憶しても良い。
In the
本実施の形態においては、複合機100において、複数のVMのそれぞれにアプリケーションを割り当てることで、各アプリケーションの独立したプロセスで動作させることを可能としている。これにより、各アプリケーションの動作の安定性を向上させることができる。
In the present embodiment, in the
さらに、本実施の形態にかかる複合機100においては、カウントに関する制御を、マスタVM301Aが一括して行うため、カウントの整合を図ることができる。
Furthermore, in the
その際、本実施の形態にかかる複合機100においては、各VMで入力データから更新すべきカウンタ(カウンタID、カウント幅)の割り出しまで行ったあと、スレーブVMからマスタVMにカウントの更新に必要な(データサイズが小さい)データだけ送信している。これにより、VM間で入出力されるデータ量を削減することができる。このように、処理の効率化を図ることで、処理負担を軽減することができるとともに、実行速度の低減を抑止できる。
At this time, in the
(第1の実施の形態の変形例1)
上述した第1の実施の形態にかかる複合機100においては、HDD151の1個のカウンタテーブルだけで全てのカウントを保持している例について説明した。この場合、書き込み命令が一つ発効されただけで、カウンタテーブルが全てロックされるため、当該書き込みが終了するまで、他の書き込み命令による書き込みを行うことができない。しかしながら、複合機100は、複数のアプリケーションを同時並行的に動作させることができるため、カウンタテーブル全てをロックさせるのは望ましくない場合も存在する。そこで、第1の実施の形態の変形例として、カウンタテーブルを種類別に分割した場合について説明する。なお、本実施の形態にかかる複合機は、HDD151内に格納されたテーブル以外、第1の実施の形態の複合機100と同様の構成を備えているものとして説明を省略する。
(
In the
図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
そして、図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
(第1の実施の形態の変形例2)
上述した第1の実施の形態にかかる複合機100においては、スレーブVMからマスタVMに書き込み要求を行う際、カウンタ毎に書き込み要求を行っていた。この場合データ量が大きくなる可能性がある。そこで第1の実施の形態の変形例2では、書き込み要求を行う際に、カウント幅毎にカウントIDをまとめて書き込み要求を行う例について説明する。
(
In the
図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
(第2の実施の形態)
第1の実施の形態では、マスタVM301Aが一括してHDD151に書き込む例について説明した。しかしながら、HDDにデータを書き込むのをマスタVMのみに制限するものではない。そこで、第2の実施の形態では、各VMがHDDにデータを書き込む例について説明する。
(Second Embodiment)
In the first embodiment, the example in which the
図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
仮想マシン制御部1101は、マスタOS101上で、複数の仮想マシンを動作させる制御を行う。本実施の形態にかかる仮想マシン制御部1101により動作した仮想マシンは、マスタ仮想マシンの他に、スレーブ仮想マシンもHDD151に対する読み書きを可能としている。
The virtual
サービス群1102は、仮想マシン上で動作するプログラム群で構成され、上述した第1の実施の形態のサービス群104とは、データベース制御サービス122とは処理が異なるデータベース制御サービス1111に変更され、レコード変換制御サービス121とは処理が異なるレコード変換制御サービス1112に変更された構成を有している点で異なる。
The service group 1102 is composed of a program group operating on a virtual machine, and the
データベース制御サービス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
レコード変換制御サービス1112は、仮想マシンごとに割り当てられたアプリケーションからの要求に従って、当該仮想マシンに応じたデータベースのアクセス制御を行う。第1の実施の形態においては、スレーブVM上で書き込み要求があった場合に、レコード変換制御サービス121が、マスタVMに対して書き込み要求を行っていた。これに対し、第2の実施の形態にかかるレコード変換制御サービス1112は、スレーブVM上で書き込み要求があった場合、データベース制御サービス1111を介して書き込み制御を行うか、マスタVMに対して書き込み要求を行うかを判定している。このために、本実施の形態においては、インストールなどの処理についても第1の実施の形態と異なる。
The record
次に、本実施の形態にかかる複合機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
図13に示す例では、FAXアプリケーション133と、コピーアプリケーション131とが、第1のスレーブVM1201Bに対してインストールされている。当該インストールに伴い、FAXアプリケーション133、及びコピーアプリケーション131から、レコード制御サービス1112Bに対して、FAXアプリケーションの処理をカウントするためのFAXアプリ用カウンタデシジョンテーブル等と、コピーアプリケーションの処理をカウントするためのコピーアプリ用カウンタデシジョンテーブル等と、のインストールが開始される。また、インストールされる各カウンタデシジョンテーブルの各レコードには、アプリケーション専用であるか否かが宣言されている。
In the example illustrated in FIG. 13, the
その際、レコード変換制御サービス1112Bは、各アプリケーションからインストールが要求された各カウンタデシジョンテーブルを、レコードデータ記憶領域172Bにインストールする。その際、レコード変換制御サービス1112Bは、アプリケーション専用と宣言されたレコードを、第1のスレーブVM1201B用のカウンタデシジョンテーブルとして、HDD151の第1のスレーブVM用カウンタ記憶領域に、データベース制御サービス1111Bを介して書き込む。なお、各アプリケーションに共通(換言すれば、複数の仮想VMでカウントする)のレコードは、マスタVM1201Aが、データベース制御サービス1111Aを介して、HDD151の共通カウンタ記憶領域に書き込むものとする。
At that time, the record
図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
まず、第1の実施の形態と同様に、マスタVM1201Aのレコード変換制御サービス1112Aの読み出し要求に従って、カウンタデシジョンテーブルは、レコード変換制御サービス1112Aにも出力される。その際、HDD151から読み出されたカウンタデシジョンテーブルが、(図示しない)キャッシュに保持されている。
First, as in the first embodiment, the counter decision table is also output to the record
一方、起動時に、第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
一方、第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
次に各仮想マシンで行われた処理に従って、カウントが行われる場合について説明する。図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
そして、レコード変換制御サービス1112Aが、レコードデータ記憶領域172Aに対して、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう書き込み要求1402を行う。その後、データベース制御サービス1111Aが、レコードデータ記憶領域172Aに書き込み要求が行われたカウンタID、カウント幅を用いて、HDD151のカウンタテーブルに書き込み又は更新する。
Then, the record
一方、第1のスレーブVM1201Bにおいて、FAXアプリケーション133が、処理結果を含む入力データと共にカウント要求1403を行った場合、レコード変換制御サービス1112Bが、当該カウント要求1403を受け付ける。そして、レコード変換制御サービス1112Bが、カウンタデシジョンテーブルを用いて、入力データを実行回数データに変換する。
On the other hand, in the
そして、レコード変換制御サービス1112Bは、変換された実行回数データに含まれているカウンタID、カウント幅でカウントするよう書き込み要求1404を行う。その際、レコード変換制御サービス1112Bは、読み出された共通のカウンタデシジョンテーブルと、第1のスレーブVM1201B専用のカウンタデシジョンテーブルと、から書き込み先のカウンタテーブルが存在する記憶領域を特定する。つまり、共通のカウンタデシジョンテーブルに存在したカウンタIDであれば、マスタVM1201Aに書き込み要求を行うカウンタIDであり、第1のスレーブVM301B専用のカウンタデシジョンテーブルに存在したカウンタIDであれば、第1のスレーブVM1201B内で書き込みを行うカウンタIDであると特定する。
Then, the record
当該特定に従って、レコード変換制御サービス1112Bは、VMに共通のカウンタID、及びカウント幅による第1の書き込み要求を行うと共に、第1のスレーブVM1201B専用のカウンタID、及びカウント幅による第2の書き込み要求を行う。
In accordance with the specification, the record
そして、第1のスレーブVM1201BのIPCサービス124の出力部181が、第1の書き込み要求に含まれているカウンタID、及びカウント幅を書き込むよう、マスタVM1201Aに要求する。これにより、データベース制御サービス1111Aが、書き込み要求の対象であるカウンタID、カウント幅を、HDD151のカウンタテーブルに書き込み又は更新する。一方、データベース制御サービス1111Bが、第2の書き込み要求に含まれているカウンタID、及びカウント幅を、HDD151の第1のスレーブVM専用カウンタ記憶領域に書き込む。
Then, the
本実施の形態にかかる複合機1100では、第1の実施の形態にかかる複合機100と同様の効果を得るほか、専用のカウンタについては各VM内で処理するため、VM間で入出力されるデータ量のさらなる削減を図ることができる。
The
(第2の実施の形態の変形例1)
上述した第2の実施の形態においては、スレーブVM専用のカウンタIDであるか否かに応じて、カウンタテーブルの格納領域をスレーブ専用と共通とを分けた例について説明した。しかしながら、スレーブVMの処理結果のカウンタを共通であるか否かに拘わらず、スレーブ用のカウンタテーブルで一括管理してもよい。そこで第2の実施の形態の変形例として、VM間でデータの入出力を行わず、VM毎にカウンタテーブルを備えている例について説明する。
(
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
そして、マスタVM1501Aでは、レコード変換制御サービス1511Aがカウント要求を受け付けた場合に、データベース制御サービス1513Aを介して、HDD1521の共通カウンタ記憶領域内のカウンタテーブルに書き込み、更新処理を行う。
When the record
これに対し、第1のスレーブVM1501Bでは、レコード変換制御サービス1511Bがカウント要求を受け付けた場合に、データベース制御サービス1513Bを介して、HDD1521の第1のスレーブVMカウンタ記憶領域内のカウンタテーブルに書き込み、更新処理を行う。
In contrast, in the
その後、複合機1500は、HDD1521内の、第1のスレーブVMカウンタ記憶領域内のカウンタテーブルを、共通カウンタ記憶領域内のカウンタテーブルに移動させる。これにより、一つのカウンタテーブルでカウンタを一括管理できる。なお、本変形例では、カウンタの記憶領域が分散しているため、カウンタの整合性をとれるように注意して処理を行う必要がある。当該変形例については、VM間でデータの入出力がないため、さらなる処理負担の軽減を図ることができる。
Thereafter, the
(第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
図17に示すように、複合機1600上で、マスタVM1601Aと、第1のスレーブVM1601Bと、第2のスレーブVM1601Cと、が動作している例について説明する。
As illustrated in FIG. 17, an example in which the
そして、マスタVM1601Aは、第1の実施の形態と異なる構成として、レコード変換制御サービス1611Aを備えている。また、第1のスレーブVM1601Bは、第1の実施の形態と異なる構成として、レコード変換制御サービス1611Bを備えている。また、第2のスレーブVM1601Cは、第1の実施の形態と異なる構成として、レコード変換制御サービス1611Cを備えている。
The
そして、第1のスレーブVM1601Bは、判定部1621Bと、変換部1622Bと、を備えている。また、第2のスレーブVM1601Cは、判定部1621Cと、変換部1622Cと、を備えている。
The
そして、判定部1621B、及び判定部1621Cは、入力データを、当該マスタVM1601A内又はスレーブVM内のいずれかで変換するかを判定する。具体的には、判定部1621B、及び判定部1621Cは、今回入力された入力データと、前回の実行回数データと、のうち、どちらのデータ量が小さいかを判定する。そして、判定部(1621B、1621C)は、入力データのデータ量が小さい場合に、当該入力データをマスタVM1601Aで変換するよう、マスタVM1601Aに出力部(181B、181C)が出力すると判定する。一方、判定部(1621B、1621C)は、実行回数データのデータ量が小さい場合に、スレーブVMで変換された実行回数データを出力部(181B、181C)が出力すると判定する。
Then, the determination unit 1621B and the
図18は、第2のスレーブVM1601Cの判定部1621Cによる判定手法を示した概念図である。図18に示す例では、判定部1621Cは、前回の実行回数データに基づいて、今回の入力データをマスタVM1601Aで変換するか否かを判定している。
FIG. 18 is a conceptual diagram illustrating a determination method by the
本実施の形態にかかる判定部1621Cは、図19に示すように、今回の入力データに含まれているデータ数に、1データ辺りの代表的なデータ量を乗じたデータ量と、前回の実行回数データに含まれているカウンタの数(X)に、1カウンタ辺りの平均データ量を乗じたデータ量を、比較して、データ量の小さい方をVM間で入出力するよう、どちらのVMで処理を行うべきか判定している。なお、X以外のパラメータを固定値としても良い。これは、各パラメータを固定値とすることで算出の処理負担を小さくするためである。
As illustrated in FIG. 19, the
図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
つまり、本実施の形態にかかる複合機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
なお、本実施の形態では、前回の実行回数データに含まれているカウンタの数(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
本実施の形態にかかる複合機2000においては、書き込み回数の制限あるNANDフラッシュメモリ2001と、書き込み回数の制限数の多いNVRAM2002と、を組み合わせることで、更新が多いカウント数を、書き込み回数の制限があるNANDフラッシュメモリ2001で保持することを可能としている。
In the
上述した実施の形態では、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
NANDフラッシュメモリ2001は、ユーザ別カウンタテーブルを全て保持するメモリとする。なお、本実施の形態にかかる複合機2000では、カウンタテーブルにおいて、ユーザ別にカウントを管理しているものとする。
The
NVRAM2002は、NANDフラッシュメモリ2001上に永続化したカウンタテーブルから、ユーザ別カウンタの一部を展開するための作業領域となる。そして、データベース制御サービス2011は、NVRAM2002上に展開されたカウンタに対して、読み出し、書き込み等を行う。
The
図21は、NANDフラッシュメモリ2001と、NVRAM2002と、の関係を示した概念図である。図21に示すように、NANDフラッシュメモリ2001に格納されたユーザ別カウンタを、NVRAM2002に読み出される。そして、NVRAM2002に対してカウンタの更新等が行われる。最後に、データベース制御サービス2011が、NVRAM2002で行われた更新内容を、NANDフラッシュメモリ2001に反映させる。
FIG. 21 is a conceptual diagram showing the relationship between the
そして、データベース制御サービス2011は、書込部2021と、読出部2022と、ロック制御部163と、を備え、NVRAM2002、及びNANDフラッシュメモリ2001に対するアクセス制御を行う。また、本実施の形態にかかるデータベース制御サービス2011では、書き込み回数制限のあるNVRAM2002に記録するタイミングを、ユーザ別カウンタに特化している。
The
読出部2022は、NANDフラッシュメモリ2001からNVRAM2002へのユーザ別カウンタの読み出しを行う。また、読出部2022は、NVRAM2002から、ユーザ別カウンタの読み出しも行う。
The
書込部2021は、NVRAM2002に対する、ユーザ別カウンタの書き込み、更新を行う。また、書込部2021は、NVRAM2002から読み出されたユーザ別カウンタを、NANDフラッシュメモリ2001に書き込み、更新を行う。
The writing unit 2021 writes and updates the user-specific counter in the
なお、書込部2021は、NVRAM2002から読み出されたユーザ別カウンタの、NANDフラッシュメモリ2001への書き込みは、カウントアップ毎に行うのではなく、複数のカウント分まとめて行うものとする。これにより、書き込み回数を削減することが可能となる。
It is assumed that the writing unit 2021 writes the user-specific counters read from the
次に、本実施の形態にかかる複合機2000における、処理に基づくカウントの更新からカウントの閲覧処理について説明する。図22は、本実施の形態にかかる複合機2000における上述した処理の手順を示すシーケンス図である。なお、本シーケンスでは、複数枚ページのコピーをまとめて処理する例であるが、例えば1又は複数枚のFAX印刷や、記憶媒体に格納された1又は複数枚の画像データの出力する例にも適用できる。
Next, the count browsing process from the count update based on the process in the
本シーケンスでは、複数枚の記録用紙を複写する場合のカウント更新処理について説明する。さらに、複合機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
まず、プロッタ155が、記録紙の読み取り処理を終了させた後、データベース制御サービス2011に対して、ユーザAが要求したページの入力が完了したことを通知する(ステップS2201)。
First, after the
当該通知を受けて、データベース制御サービス2011は、NVRAM2002にユーザAのカウンタが展開されているか否か確認する(ステップS2202)。本シーケンスでは、カウンタが展開されていない場合について説明する。カウンタが展開されている場合には、S2209の処理から行われる。
Upon receiving the notification, the
その後、データベース制御サービス2011は、NVRAM2002にユーザAのカウンタを展開するための領域があるか否かを確認する(ステップS2203)。本シーケンスでは、領域がない場合について説明する。
Thereafter, the
そして、データベース制御サービス2011が、NVRAM2002に展開するための領域がないと判定した場合、読出部2022が、NVRAM2002に既に展開されている全ユーザのカウンタを読み出す(ステップS2204)。その後、データベース制御サービス2011の書込部2021が、読み取った全ユーザのカウントを、NANDフラッシュメモリ2001に記録する(ステップS2205)。
If the
その後、データベース制御サービス2011が、NVRAM2002に格納されていたユーザのカウンタを消去して、ユーザAのカウントを展開する領域を確保する(ステップS2206)。
Thereafter, the
次に、読出部2022が、NANDフラッシュメモリ2001から、ユーザAのカウンタを読み出す(ステップS2207)。その後、書込部2021が、読み出したユーザAのカウントを、NVRAM2002に書き込む(ステップS2208)。
Next, the
その後、書込部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
当該通知を受けて、データベース制御サービス2011は、NVRAM2002にユーザAのカウンタが展開されているか否か確認する(ステップS2211)。本シーケンスでは、データベース制御サービス2011は、ステップS2202〜S2208の処理により、カウンタが展開されていると判別できる。
In response to the notification, the
そこで、書込部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
そして、ユーザインタフェース123が、データベース制御サービス2011に対してカウンタの閲覧要求を行う(ステップS2214)。その際、データベース制御サービス2011の読出部2022は、NVRAM2002上の全ユーザのカウンタを読み出す(ステップS2215)。その後、書込部2021が、読み出した全ユーザのカウンタを、NANDフラッシュメモリ2001に書き込む(ステップS2216)。
Then, the
その後、データベース制御サービス2011が、NVRAM2002のカウンタを消去する(ステップS2217)。そして、読出部2022が、NANDフラッシュメモリ2001から、ユーザのカウンタを読み出す(ステップS2218)。そして、データベース制御サービス2011が、ユーザインタフェース123に対して、読み出したユーザのカウントを出力する(ステップS2219)。
Thereafter, the
上述した処理手順により、複合機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
まず、データベース制御サービス2011が、NVRAM2002に、更新対象となるユーザのカウンタが展開されているか否かを判定する(ステップS2301)。そして、データベース制御サービス2011が、カウンタが展開されていると判定した場合(ステップS2301:Yes)、ステップS2306に進む。
First, the
一方、データベース制御サービス2011が、カウンタが展開されていないと判定した場合(ステップS2301:No)、データベース制御サービス2011が、NVRAM2002上に、ユーザのカウンタを展開するための空き領域が存在するか否かを判定する(ステップS2302)。存在すると判定した場合(ステップS2302:Yes)、ステップS2305の処理に進む。
On the other hand, when the
一方、データベース制御サービス2011が、空き領域が存在しないと判定した場合(ステップS2302:No)、読出部2022がNVRAM2002上に展開されているカウンタを読み込んだ後、書込部2021が、読み込んだカウンタを全てNANDフラッシュメモリ2001上に書き込む(ステップS2303)。その後、データベース制御サービス2011が、NVRAM2002上のカウンタを消去する(ステップS2304)。
On the other hand, when the
その後、読出部2022が、NANDフラッシュメモリ2001から更新対象となるユーザのカウンタを読み出した後、書込部2021が、読み出したカウンタをNVRAM2002上に書き込むことで、カウンタの展開を行う(ステップS2305)。
Thereafter, after the
その後、書込部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
このように、本実施の形態にかかる複合機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
本変形例にかかる複合機2000では、NVRAM2002上に、同時にログインできる最大ユーザ数のカウンタ分の空き領域を予めNVRAM2002上に確保する。
In the
そして、スキャナ154から、ページの読み込み完了の通知を受け付けた場合に、データベース制御サービス2011が、当該ユーザのカウントがNVRAM2002上に展開されているか否か判定する。そして、展開されていない場合に、第4の実施の形態と同様にに、NANDフラッシュメモリ2001に格納されていたユーザのカウンタを読み込んで、NVRAM2002上に展開する。
When the notification of page reading completion is received from the
そして、プロッタ155からページの出力が完了した通知を受け付けた場合も、ユーザのカウンタが展開されているか否かの判定から行う。以降の処理については、上述した処理と同様として説明を省略する。
Even when a notification that the page output has been completed is received from the
そして、データベース制御サービス2011は、ユーザインタフェース123から、ログアウト通知を受け付けると、読出部2022が、NVRAM2002上のログアウトしたユーザのカウンタを全件読み出した後、書込部2021が、NANDフラッシュメモリ2001上に、読み出したカウンタ全件を書き戻す。その後、データベース制御サービス2011が、NVRAM2002上からログアウトしたユーザのカウンタを消去し、NANDフラッシュメモリ2001上に記録したカウンタ値を、ユーザインタフェース123に出力する。
When the
本変形例にかかる複合機2000においては、上述した処理を行うことで、第4の実施の形態と同様の効果を得ることができる。
In the
図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
コントローラ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
CPU11は、複合機100、1100、1500、1600、及び2000の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
The
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
The
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
The MEM-
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
The
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
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
The MEM-
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
The
また、上述した実施の形態及び変形例はそれぞれの特徴的構成を組み合わせた実施形態を実現しても良い。例えば、第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
102, 1101 Virtual
152
301B, 1201B, 1501B, 1601B First slave VM
301C, 1201C, 1601C Second slave VM
1621
Claims (8)
仮想マシンで行われた処理回数を示す処理回数情報を記憶する第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:
前記第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の仮想マシンに出力すること、
を特徴とする請求項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.
前記ロック手段は、前記実行回数情報を書き込む対象の前記処理回数情報のみをロックすること、
を特徴とする請求項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の記憶手段に書き込み、前記変換手段で変換が行われる毎に、変換された前記実行回数情報を用いて前記第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の記憶手段に記憶された前記変換情報を、前記第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の記憶手段と、を備え、
前記第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.
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)
| 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)
| 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 |
-
2009
- 2009-11-13 JP JP2009260185A patent/JP5407783B2/en not_active Expired - Fee Related
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 |