JP2011107834A - Image processing apparatus, method and program for controlling operation module execution between virtual machines - Google Patents

Image processing apparatus, method and program for controlling operation module execution between virtual machines Download PDF

Info

Publication number
JP2011107834A
JP2011107834A JP2009260260A JP2009260260A JP2011107834A JP 2011107834 A JP2011107834 A JP 2011107834A JP 2009260260 A JP2009260260 A JP 2009260260A JP 2009260260 A JP2009260260 A JP 2009260260A JP 2011107834 A JP2011107834 A JP 2011107834A
Authority
JP
Japan
Prior art keywords
operation module
virtual machine
communication
unit
function
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.)
Pending
Application number
JP2009260260A
Other languages
Japanese (ja)
Inventor
Koichiro Minami
広一郎 南
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 JP2009260260A priority Critical patent/JP2011107834A/en
Publication of JP2011107834A publication Critical patent/JP2011107834A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image processing apparatus, an operation module performance control method between virtual machines and an operation module performance control program for reducing the workload of the addition/change of a communication I/F in RMI communication correspondence between the virtual machines. <P>SOLUTION: An image processing apparatus 100 is a device operating on virtual machines 21<SB>1</SB>and 21<SB>2</SB>whose standard functions and extension functions using the standard functions are different, and includes: a plurality of operation modules 30 for achieving the standard functions; and communication interface parts 41<SB>1</SB>and 41<SB>2</SB>operating on each virtual machine 21 for performing common inter-virtual machine communication to the plurality of operation modules 30. The communication interface part 40 includes a generation means 51 for generating an operation module interface achieving part 52, controls the performance of the operation module 30 on the virtual machine 21 by the inter-virtual machine communication through a pair of operation module interface achieving parts 52<SB>1</SB>and 52<SB>2</SB>respectively generated by the virtual machines 21<SB>1</SB>and 21<SB>2</SB>, and achieves the extension functions. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、複数の仮想マシンが動作可能な画像処理装置に関し、特に、仮想マシン間で行うデータ通信により動作モジュールの実行を制御する技術に関するものである。   The present invention relates to an image processing apparatus capable of operating a plurality of virtual machines, and more particularly to a technique for controlling execution of an operation module by data communication performed between virtual machines.

1台の物理コンピュータ上に、あたかもコンピュータが複数稼働しているかのような疑似システムを構築する仮想化技術は既に知られている。このような仮想化技術により実現される擬似的な情報処理システム環境(論理コンピュータ)を、仮想マシン(VM:Virtual Machine)と言う。   A virtualization technology for constructing a pseudo system as if a plurality of computers are operating on one physical computer is already known. A pseudo information processing system environment (logical computer) realized by such virtualization technology is called a virtual machine (VM).

単体の仮想マシンが構築されたシステムの場合には、何らかの原因で処理が停止してしまうと、システム全体が停止することになる。しかし、複数の仮想マシンが構築されたシステムの場合には、ある仮想マシンにおいて処理が停止したとしても、他の仮想マシンに影響しないため、システム全体が停止することなく、処理を継続できる。   In the case of a system in which a single virtual machine is constructed, if the process stops for some reason, the entire system stops. However, in the case of a system in which a plurality of virtual machines are constructed, even if processing is stopped in a certain virtual machine, it does not affect other virtual machines, so that processing can be continued without stopping the entire system.

このような利点から、単体の仮想マシンが構築されたシステムを複数の仮想マシンが構築されたシステムに変更したい。そのためには、仮想マシン間でデータ通信が行えるように対応する必要がある。   Because of these advantages, we want to change a system in which a single virtual machine is constructed to a system in which multiple virtual machines are constructed. For this purpose, it is necessary to cope with data communication between virtual machines.

仮想マシン間でデータ通信を行う手段には、Java(登録商標:以下略)RMI(Java Remote Method Invocation:以下単に「RMI」と言う)通信が知られている。しかし、従来のシステムでは、RMI通信を行うインタフェース(以下「通信I/F」と言う)の追加・変更を行う場合に対応箇所が多く、開発作業が繁雑となる(開発作業負荷が増大する)問題点があった。   As means for performing data communication between virtual machines, Java (registered trademark: hereinafter abbreviated) RMI (Java Remote Method Invocation: hereinafter simply referred to as “RMI”) communication is known. However, in the conventional system, when adding / changing an interface for performing RMI communication (hereinafter referred to as “communication I / F”), there are many corresponding parts, and development work becomes complicated (development work load increases). There was a problem.

そこで、例えば、特許文献1には、開発作業負荷の軽減を目的とし、仮想マシン間通信を行うサーバ再度Webアプリケーション開発において、複数の表示層とコンポーネント群を分離し、通信I/Fを少なくすることで、変更があった場合でも、少ない対応で済む開発支援装置が開示されている。   Therefore, for example, in Patent Document 1, for the purpose of reducing the development workload, a server that performs communication between virtual machines again in web application development, a plurality of display layers and component groups are separated to reduce communication I / F. Thus, a development support apparatus that requires only a small amount of response even when there is a change is disclosed.

しかしながら、従来の方法では、既存の通信I/FをRMI通信対応する場合、通信I/F自体の変更を行う必要がある。また、RMIコンパイラによりコンパイルを行う必要もある。   However, in the conventional method, when the existing communication I / F is compatible with RMI communication, it is necessary to change the communication I / F itself. It is also necessary to compile with an RMI compiler.

既存の通信I/FをRMI通信対応する場合には、メソッドパラメータ(引数)の変更やException(例外)の追加など通信I/F自体の変更を行わなければならない。そのため、通信I/Fを利用している箇所(仮想マシン間で呼び出されるメソッド)を変更する必要がある。また、RMI通信によりリモートサーバオブジェクト上のメソッドを呼び出すクライアントは、実際にリモートオブジェクトのスタブ又はプロキシをリモートオブジェクトへの通路として利用する。そのため、スタブやプロキシを作成し直し、再度、コンパイル(リコンパイル)を行う必要がある。   When an existing communication I / F is compatible with RMI communication, the communication I / F itself must be changed, such as changing a method parameter (argument) or adding an exception (exception). Therefore, it is necessary to change the location (method called between virtual machines) using the communication I / F. A client that calls a method on a remote server object by RMI communication actually uses a stub or proxy of the remote object as a path to the remote object. Therefore, it is necessary to recreate a stub and a proxy and compile (recompile) again.

このように、従来の方法では、RMI通信対応の開発作業において、その負荷を十分に軽減できていなかった。   Thus, the conventional method cannot sufficiently reduce the load in the development work corresponding to RMI communication.

本発明は上記従来技術の問題点を鑑み提案されたものであり、その目的とするところは、仮想マシン間のRMI通信対応における通信I/Fの追加・変更の作業負荷を軽減できる画像処理装置、仮想マシン間の動作モジュール実行制御方法、及び動作モジュール実行制御プログラムを提供することにある。   The present invention has been proposed in view of the above-described problems of the prior art, and an object of the present invention is to provide an image processing apparatus that can reduce the workload of adding / changing a communication I / F in correspondence with RMI communication between virtual machines. Another object is to provide an operation module execution control method and an operation module execution control program between virtual machines.

上記目的を達成するため、本発明に係る画像処理装置は、当該画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる仮想マシン上で動作する画像処理装置であって、前記標準機能を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有し、前記通信インタフェース部が、前記仮想マシン上での機能実行要求を受け付ける受付手段と、前記仮想マシン間通信を行う通信手段と、前記通信手段のインタフェースと前記動作モジュールとの間に介在し、前記動作モジュールのインタフェースを実現する動作モジュールインタフェース実現部を生成する生成手段と、を有し、前記受付手段により、前記拡張機能の実行要求を受け付けると、前記通信手段による仮想マシン間通信により、前記機能実行要求を受け付けた仮想マシン上で、前記生成手段により生成され動作する第1の動作モジュールインタフェース実現部から、他の仮想マシン上で、前記生成手段により生成され動作する第2の動作モジュールインタフェース実現部を呼び出し、他の仮想マシンが有する前記動作モジュールに実行要求を行うことを特徴とする。   In order to achieve the above object, an image processing apparatus according to the present invention is an image processing apparatus in which a standard function of the image processing apparatus and an extended function using the standard function operate on different virtual machines, A plurality of operation modules that realize functions, and a communication interface unit that operates on each virtual machine and performs communication between the virtual machines that is common to the plurality of operation modules, and the communication interface unit includes: An operation that realizes an interface of the operation module that is interposed between a reception unit that receives a function execution request on a virtual machine, a communication unit that performs communication between the virtual machines, an interface of the communication unit, and the operation module Generating means for generating a module interface realizing unit, and receiving the execution request for the extended function by the receiving means. In addition, on the other virtual machine from the first operation module interface realizing unit that is generated and operated by the generating unit on the virtual machine that has received the function execution request by communication between virtual machines by the communication unit, The second operation module interface realization unit generated and operated by the generation unit is called, and an execution request is made to the operation module of another virtual machine.

また、上記目的を達成するため、本発明に係る画像処理装置は、前記生成手段が、Java(登録商標)オブジェクトのシリアライズ(直列化)により、各仮想マシンにおいて、前記仮想マシン間通信による前記動作モジュールのメソッド呼出が可能な同一インスタンスの動作モジュールインタフェース実現部のオブジェクトを生成することを特徴とする。   In order to achieve the above object, in the image processing apparatus according to the present invention, the generation unit performs the operation by the inter-virtual machine communication in each virtual machine by serializing a Java (registered trademark) object. An object of an operation module interface realization unit of the same instance capable of calling a method of a module is generated.

このような構成によって、本発明に係る画像処理装置は、各仮想マシンにおいて、仮想マシン間通信を行う通信インタフェース部(サブセットモジュール)を動作させる。サブセットモジュールは、RMI通信を行う通信I/F(RMI通信I/F)が仮想マシン間で呼び出される動作モジュールと別途独立した構成となっている。また、サブセットモジュールは、RMI通信I/Fと動作モジュールとの間に介在し、動作モジュールのI/Fを実現する代理オブジェクト(動作モジュールI/F実現部)を管理する機能(代理オブジェクト管理部)を有している。代理オブジェクトは、各仮想マシン上で動作する代理オブジェクト管理部により、各仮想マシンにおいてRMI通信(リモート)によるメソッド呼出が可能な一対のオブジェクト(異なる仮想マシンで同一インスタンスのオブジェクト)として生成される。画像処理装置は、機能実行要求を受け付けた仮想マシン上で動作する代理オブジェクトから、RMI通信I/Fを介して、他の仮想マシン上で動作する代理オブジェクトを呼び出し、他の仮想マシンが有する動作モジュールに実行要求を行う。つまり、画像処理装置では、各仮想マシンに生成された一対の代理オブジェクトを介して、仮想マシン上の動作モジュールの実行を制御し、要求された機能を実現する。   With such a configuration, the image processing apparatus according to the present invention operates a communication interface unit (subset module) that performs communication between virtual machines in each virtual machine. The subset module is configured separately from an operation module in which a communication I / F that performs RMI communication (RMI communication I / F) is called between virtual machines. The subset module is interposed between the RMI communication I / F and the operation module, and functions to manage a proxy object (operation module I / F realization unit) that realizes the I / F of the operation module (proxy object management unit) )have. The proxy object is generated as a pair of objects (objects of the same instance in different virtual machines) that can be called by RMI communication (remote) in each virtual machine by the proxy object management unit operating on each virtual machine. The image processing apparatus calls a proxy object that operates on another virtual machine from the proxy object that operates on the virtual machine that has received the function execution request via the RMI communication I / F, and the operation that the other virtual machine has Make an execution request to the module. That is, the image processing apparatus controls the execution of the operation module on the virtual machine via the pair of proxy objects generated in each virtual machine, and realizes the requested function.

これによって、本発明に係る画像処理装置は、仮想マシン間で呼び出す動作モジュールのI/Fに変更が生じた場合であっても、RMI通信I/Fと動作モジュールとが分離されていることから、RMI通信I/Fを変更する必要がない(通信I/Fの隠蔽が可能となる)。また、画像処理装置は、仮想マシン間で呼び出す動作モジュールのI/Fを新たに追加する場合であっても、動作モジュールのI/Fを実現する代理オブジェクトを動的に生成する機能を有していることから、既存I/Fを変更する必要がない(リコンパイルを行わなくてもよい)。その結果、画像処理装置では、仮想マシン間のRMI通信対応における通信I/Fの追加・変更の作業負荷が軽減できる。   As a result, the image processing apparatus according to the present invention separates the RMI communication I / F from the operation module even when the I / F of the operation module to be called between virtual machines is changed. Therefore, there is no need to change the RMI communication I / F (the communication I / F can be concealed). Further, the image processing apparatus has a function of dynamically generating a proxy object that realizes the I / F of the operation module even when a new I / F of the operation module to be called between the virtual machines is added. Therefore, there is no need to change the existing I / F (no recompilation is required). As a result, the image processing apparatus can reduce the workload of adding / changing the communication I / F in correspondence with the RMI communication between virtual machines.

上記目的を達成するため、本発明に係る仮想マシン間の動作モジュール実行制御方法は、画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる仮想マシン上で動作する環境において、前記標準機能を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有する画像処理装置における仮想マシン間の動作モジュール実行制御方法であって、前記通信インタフェース部が、前記仮想マシン上での機能実行要求を受け付ける受付手順と、前記仮想マシン間通信を行う通信手順と、前記通信手段のインタフェースと前記動作モジュールとの間に介在し、前記動作モジュールのインタフェースを実現する動作モジュールインタフェース実現部を生成する生成手順と、を有し、前記受付手順により、前記拡張機能の実行要求を受け付けると、前記通信手順による仮想マシン間通信により、前記機能実行要求を受け付けた仮想マシン上で、前記生成手順により生成され動作する第1の動作モジュールインタフェース実現部から、他の仮想マシン上で、前記生成手順により生成され動作する第2の動作モジュールインタフェース実現部を呼び出し、他の仮想マシンが有する前記動作モジュールに実行要求を行うことを特徴とする。   In order to achieve the above object, an operation module execution control method between virtual machines according to the present invention provides an environment in which a standard function of an image processing apparatus and an extended function using the standard function operate on different virtual machines. Between virtual machines in an image processing apparatus having a plurality of operation modules that realize standard functions and a communication interface unit that operates on each virtual machine and performs common inter-virtual machine communication with the plurality of operation modules An operation module execution control method, wherein the communication interface unit receives a function execution request on the virtual machine, a communication procedure for performing communication between the virtual machines, an interface of the communication means, and the operation module And an operation module interface that realizes the interface of the operation module. A generation procedure for generating a service realization unit, and when the execution request for the extended function is received by the reception procedure, on the virtual machine that has received the function execution request by communication between virtual machines according to the communication procedure. The second operation module interface realization unit generated and operated by the generation procedure is called on the other virtual machine from the first operation module interface implementation unit generated and operated by the generation procedure, and the other virtual machine An execution request is made to the operation module.

このような手順によって、本発明に係る仮想マシン間の動作モジュール実行制御方法は、RMI通信I/Fが仮想マシン間で呼び出す動作モジュールと別途独立した構成において、動作モジュールのI/Fを実現する代理オブジェクト(動作モジュールI/F実現部)を各仮想マシンで動的に生成し、機能実行要求を受け付けた仮想マシン上で動作する代理オブジェクトから、RMI通信I/Fを介して、他の仮想マシン上で動作する代理オブジェクトを呼び出し、他の仮想マシンが有する動作モジュールに実行要求を行うと言う動作を実現する。   By such a procedure, the operation module execution control method between virtual machines according to the present invention realizes the I / F of the operation module in a configuration separately from the operation module that the RMI communication I / F calls between the virtual machines. A proxy object (operation module I / F realization unit) is dynamically generated in each virtual machine, and another virtual object is operated from the proxy object that operates on the virtual machine that has received the function execution request via the RMI communication I / F. A proxy object that operates on a machine is called, and an operation of making an execution request to an operation module of another virtual machine is realized.

これによって、本発明に係る仮想マシン間の動作モジュール実行制御方法は、仮想マシン間のRMI通信対応における通信I/Fの追加・変更の作業負荷を軽減可能な環境を提供できる。   Thus, the operation module execution control method between virtual machines according to the present invention can provide an environment that can reduce the workload of adding / changing a communication I / F in correspondence with RMI communication between virtual machines.

本発明によれば、RMI通信I/Fが仮想マシン間で呼び出す動作モジュールと別途独立した構成とし、動作モジュールのI/Fを実現する代理オブジェクトを各仮想マシンで動的に生成し、生成された一対の代理オブジェクトを介して、仮想マシン上の動作モジュールの実行を制御可能とすることで、仮想マシン間のRMI通信対応における通信I/Fの追加・変更の作業負荷が軽減される画像処理装置、仮想マシン間の動作モジュール実行制御方法、及び動作モジュール実行制御プログラムを提供することができる。   According to the present invention, the RMI communication I / F is configured separately from the operation module that is called between the virtual machines, and the proxy object that realizes the I / F of the operation module is dynamically generated and generated by each virtual machine. Image processing that reduces the workload of adding / changing communication I / F in RMI communication between virtual machines by enabling execution of operation modules on virtual machines to be controlled via a pair of proxy objects An apparatus, an operation module execution control method between virtual machines, and an operation module execution control program can be provided.

本発明の第1の実施形態に係る画像処理装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the image processing apparatus which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る複数の仮想マシンが構築されたシステム構成例を示す図である。It is a figure showing an example of system configuration in which a plurality of virtual machines concerning a 1st embodiment of the present invention were constructed. 本発明の第1の実施形態に係る複数の仮想マシンが構築されたシステムのソフトウェア構成例を示す図である。It is a figure which shows the software structural example of the system by which the some virtual machine which concerns on the 1st Embodiment of this invention was constructed | assembled. 本発明の第1の実施形態に係るサブセットモジュールの機能構成例を示す図である。It is a figure which shows the function structural example of the subset module which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る第1仮想マシンでサブセットモジュールが起動された場合の処理手順例を示すシーケンス図である。It is a sequence diagram which shows the example of a process sequence when a subset module is started by the 1st virtual machine which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る第2仮想マシンで機能実行指示を受け付けた場合の処理手順例を示すシーケンス図である。It is a sequence diagram which shows the example of a process sequence when the function execution instruction is received in the second virtual machine according to the first embodiment of the present invention.

以下、本発明の好適な実施の形態(以下「実施形態」と言う)について、図面を用いて詳細に説明する。   DESCRIPTION OF EMBODIMENTS Hereinafter, preferred embodiments of the present invention (hereinafter referred to as “embodiments”) will be described in detail with reference to the drawings.

[第1の実施形態]
<ハードウェア構成>
図1は、本実施形態に係る画像処理装置100のハードウェア構成例を示す図である。
図1に示すように、画像処理装置100は、コントローラ110、操作パネル120、プロッタ130、及びスキャナ140などを備え、それぞれが相互にバスBで接続されている。
[First Embodiment]
<Hardware configuration>
FIG. 1 is a diagram illustrating a hardware configuration example of an image processing apparatus 100 according to the present embodiment.
As illustrated in FIG. 1, the image processing apparatus 100 includes a controller 110, an operation panel 120, a plotter 130, a scanner 140, and the like, which are connected to each other via a bus B.

操作パネル120は、表示部及び入力部を備えており、機器情報などの各種情報をユーザに提供したり、動作設定や動作指示などの各種ユーザ操作を受け付けたりする。プロッタ130は、画像形成部を備えており、用紙に出力画像を形成する。例えば、出力画像を形成する方式には、電子写真プロセスやインクジェット方式などがある。スキャナ140は、原稿を光学的に読み取り、読み取り画像を生成する。   The operation panel 120 includes a display unit and an input unit, and provides various types of information such as device information to the user and receives various types of user operations such as operation settings and operation instructions. The plotter 130 includes an image forming unit and forms an output image on a sheet. For example, methods for forming an output image include an electrophotographic process and an ink jet method. The scanner 140 optically reads a document and generates a read image.

コントローラ110は、CPU(Central Processing Unit)111、記憶装置112、ネットワークI/F113、及び外部記憶I/F114などを備えており、それぞれが相互にバスBで接続されている。   The controller 110 includes a CPU (Central Processing Unit) 111, a storage device 112, a network I / F 113, an external storage I / F 114, and the like, which are connected to each other via a bus B.

CPU111は、プログラムを実行することにより各種機能の実現や装置全体を制御する。また記憶装置112は、上記プログラムや各種データ(例えば「画像データ」)を格納し保持する。例えば、記憶装置112には、揮発性のメモリであるRAM(Random Access Memory)、不揮発性のメモリであるROM(Read Only Memory)、及び大容量の記憶領域を備えたHDD(Hard Disk Drive)などがある。RAMは、CPU111のワークエリア(プログラムやデータが一時的に読み出される記憶エリア)として機能する。ROMやHDDは、プログラムや各種データの格納先として用いられる。これにより、画像処理装置100では、CPU111がROMに格納されたプログラムをRAM上に読み出し、プログラムを実行する。   The CPU 111 executes various programs to control various functions and the entire apparatus. The storage device 112 stores and holds the program and various data (for example, “image data”). For example, the storage device 112 includes a random access memory (RAM) that is a volatile memory, a read only memory (ROM) that is a nonvolatile memory, and a hard disk drive (HDD) that has a large storage area. There is. The RAM functions as a work area for the CPU 111 (a storage area from which programs and data are temporarily read). ROM and HDD are used as storage locations for programs and various data. As a result, in the image processing apparatus 100, the CPU 111 reads the program stored in the ROM onto the RAM and executes the program.

ネットワークI/F113は、画像処理装置100をネットワークなどの所定のデータ伝送路に接続するためのインタフェースである。外部記憶I/F114は、外部記憶装置にあたる記録媒体114aを接続するためのインタフェースである。例えば、外部記憶装置には、SDメモリカード(SD Memory Card)やUSB(Universal Serial Bus)メモリなどがある。これにより、画像処理装置100は、外部記憶I/F114を介して、記録媒体114aに格納されたプログラムやデータを読み取る。   The network I / F 113 is an interface for connecting the image processing apparatus 100 to a predetermined data transmission path such as a network. The external storage I / F 114 is an interface for connecting a recording medium 114a corresponding to an external storage device. For example, the external storage device includes an SD memory card (SD Memory Card) and a USB (Universal Serial Bus) memory. As a result, the image processing apparatus 100 reads the program and data stored in the recording medium 114a via the external storage I / F 114.

画像処理装置100では、上記ハードウェア構成により、例えば、HDDやROMからRAM上に読み出したプログラムをCPU111により実行することで、1又は複数の仮想マシン環境を動作させることができる。   In the image processing apparatus 100, one or a plurality of virtual machine environments can be operated by the CPU 111 executing, for example, a program read from the HDD or ROM onto the RAM by the above hardware configuration.

<システム及びソフトウェア構成>
図2は、本実施形態に係る複数の仮想マシンが構築されたシステム構成例を示す図である。図2には、1台の物理コンピュータ上に2つの仮想マシンが動作するシステム構成が示されている。
<System and software configuration>
FIG. 2 is a diagram illustrating a system configuration example in which a plurality of virtual machines according to the present embodiment are constructed. FIG. 2 shows a system configuration in which two virtual machines operate on one physical computer.

図2に示すように、仮想マシン環境は、OS(Operating System)10上で仮想マシン環境を実現するプログラムを動作させることで実現される。本実施形態では、組み込み型システムの開発環境として使用頻度の高いJavaVM(Java Virtual Machine)21を動作させることで実現している。なお、OS10は、組み込み系の基本ソフトウェアであり、例えば、Linux(登録商標:以下略)などがある。   As shown in FIG. 2, the virtual machine environment is realized by operating a program that realizes the virtual machine environment on an OS (Operating System) 10. In this embodiment, it is realized by operating a Java VM (Java Virtual Machine) 21 that is frequently used as a development environment for an embedded system. The OS 10 is built-in basic software, such as Linux (registered trademark: hereinafter abbreviated).

複数の仮想マシン環境は、OS10上で複数のJavaVM21を動作させることで実現できる。本実施形態では、JavaVM21及び21(2つのJavaVM21)を動作させることで、第1及び第2仮想マシン環境(2つの仮想マシン環境)を実現している。以降では、JavaVM21及び21を「第1仮想マシン21及び第2仮想マシン21」に置き換え説明する。また、第1仮想マシン21及び第2仮想マシン21を総称する際には、「仮想マシン21」とする。同様に、各仮想マシン21上で動作するソフトウェア(例えば「プログラム」や「データ」)及び使用される記憶領域についても、同じソフトウェア名や記憶領域名を総称する際には、共通する名称と参照符号を用いることとする。 A plurality of virtual machine environments can be realized by operating a plurality of Java VMs 21 on the OS 10. In the present embodiment, the first and second virtual machine environments (two virtual machine environments) are realized by operating the Java VMs 21 1 and 21 2 (two Java VMs 21). And later, a description will be given to replace the JavaVM21 1 and 21 2 to the "first virtual machine 21 1 and the second virtual machine 21 2". Further, when a generic term for the first virtual machine 21 1 and the second virtual machine 21 2, and "Virtual Machine 21". Similarly, with respect to software (for example, “program” or “data”) operating on each virtual machine 21 and storage areas used, when referring to the same software name or storage area name, a common name and reference are used. A code is used.

仮想マシン21は、仮想マシン21上でJavaコンポーネント22を動作させるためのヒープメモリ211を有している。ヒープメモリ211は、仮想マシン21上で動作するアプリケーションが自由に確保できるメモリ領域である。このように、複数の仮想マシン21が構築されたシステムでは、仮想マシン21ごとに独立したヒープメモリ211を有することから、処理停止などの障害が発生しても、互いのシステムに影響を及ぼすことがない。   The virtual machine 21 has a heap memory 211 for operating the Java component 22 on the virtual machine 21. The heap memory 211 is a memory area that an application running on the virtual machine 21 can freely secure. In this way, in a system in which a plurality of virtual machines 21 are constructed, each virtual machine 21 has an independent heap memory 211, so that even if a failure such as a process stop occurs, the mutual system is affected. There is no.

仮想マシン21上で動作するJavaコンポーネント22には、プラットフォーム及びアプリケーション(図中のJavaプラットフォーム221及びJavaアプリケーション222)の各機能を実現するための複数のJavaプログラムが含まれる。Javaプラットフォーム221は、仮想マシン21が実現するシステム(動作環境)の標準機能として動作する。またJavaアプリケーション222は、上記基本機能を利用し、例えば、ユーザが実行したい作業を実施する機能(仮想マシン環境におけるユーザ提供機能)として動作する。Javaアプリケーション222は、提供する機能構成に応じてインストール/アンインストールが可能である。   The Java component 22 operating on the virtual machine 21 includes a plurality of Java programs for realizing the functions of the platform and application (Java platform 221 and Java application 222 in the figure). The Java platform 221 operates as a standard function of a system (operating environment) realized by the virtual machine 21. In addition, the Java application 222 uses the above basic function and operates as a function (a user-provided function in a virtual machine environment) that performs, for example, a work that the user wants to execute. The Java application 222 can be installed / uninstalled according to the functional configuration to be provided.

以上のように、本実施形態に係る画像処理装置100には、複数の仮想マシン21が動作する環境を構築することができる。   As described above, an environment in which a plurality of virtual machines 21 operate can be constructed in the image processing apparatus 100 according to the present embodiment.

次に、上記システムにおける詳細なソフトウェア構成について説明する。
図3は、本実施形態に係る複数の仮想マシン21が構築されたシステムのソフトウェア構成例を示す図である。
Next, a detailed software configuration in the system will be described.
FIG. 3 is a diagram illustrating a software configuration example of a system in which a plurality of virtual machines 21 according to the present embodiment is constructed.

例えば、上記システムが構築された画像処理装置100が、MFP(Multifunction Peripheral)であった場合、次のようなシステム構築が考えられる。   For example, when the image processing apparatus 100 in which the system is constructed is an MFP (Multifunction Peripheral), the following system construction can be considered.

第1仮想マシン21では、プリンタ、スキャナ、FAX(ファクシミリ)などの標準機能を動作させる。 In the first virtual machine 21 1, a printer, a scanner, to operate the standard functions such as FAX (facsimile).

第1仮想マシン21上で動作するJavaコンポーネント22が有するJavaアプリケーション222は、標準アプリケーション222a及びSDK(Software Development Kit)アプリケーション222bを含む。またJavaプラットフォーム221は、Javaモジュール群(動作モジュール群)221a及びSDK API(Application Program Interface)221bを含む。 The Java application 222 1 included in the Java component 22 1 operating on the first virtual machine 21 1 includes a standard application 222a 1 and an SDK (Software Development Kit) application 222b 1 . The Java platform 221 1 includes a Java module group (operation module group) 221 a 1 and an SDK API (Application Program Interface) 221 b 1 .

標準アプリケーション222aは、MFP搭載の標準機能を利用したユーザ提供機能を実現するソフトウェアである。標準アプリケーション222aは、標準機能として、プラットフォームが有するJavaモジュール群221aの動作モジュール30を利用する。例えば、Javaモジュール群221aには、プリンタモジュール30P、スキャナモジュール30S、及びFAXモジュール30Fなどが、標準機能を実現する動作モジュール30として含まれる。これにより、例えば、標準アプリケーション222aは、Javaモジュール群221aのプリンタモジュール30P及びスキャナモジュール30Sを利用してコピー機能(コピーアプリ)を実現する。 The standard application 222a 1 is software that realizes a user-provided function using a standard function installed in the MFP. The standard application 222a 1 uses the operation module 30 of the Java module group 221a 1 included in the platform as a standard function. For example, the Java module group 221a 1 includes a printer module 30P, a scanner module 30S, a FAX module 30F, and the like as the operation modules 30 that realize standard functions. Thus, for example, a standard application 222a 1 implements a copy function using the printer module 30P and scanner module 30S of Java modules 221a 1 (copy application).

SDKアプリケーション222bは、ソフトウェアを開発する際に使用できる命令や関数の集合であるSDK API221bを用いて開発され、ユーザへの個別対応機能(カスタマイズ機能)などを実現するソフトウェアである。SDKアプリケーション222bは、SDK API221bを介して、プラットフォームが有するJavaモジュール群221aの動作モジュール30を利用する。これにより、例えば、SDKアプリケーション222bは、SDK API221bを介して、Javaモジュール群221aのプリンタモジュール30Pを利用し、認証モジュール(非図示)と合わせて印刷の利用認証機能(セキュアプリントアプリ)を実現する。 The SDK application 222b 1 is software that is developed by using the SDK API 221b 1 that is a set of instructions and functions that can be used when developing software, and that realizes an individual correspondence function (customization function) to the user. The SDK application 222b 1 uses the operation module 30 of the Java module group 221a 1 included in the platform via the SDK API 221b 1 . Thereby, for example, the SDK application 222b 1 uses the printer module 30P of the Java module group 221a 1 via the SDK API 221b 1 , and uses the print module with the authentication module (not shown) (secure print application). Is realized.

これに対して、第2仮想マシン21では、標準機能を利用する拡張機能(例えば「サードベンダ提供機能」)を動作させる。 In contrast, in the second virtual machine 21 2, to operate the extension functions to use the standard functions (e.g., "third vendor provides function").

第2仮想マシン21上で動作するJavaコンポーネント22が有するJavaアプリケーション222は、SDKアプリケーション222bを含み、Javaプラットフォーム221は、SDK API221bを含む。 Java applications 222 2 having Java components 22 2 operating on the second virtual machine 21 2 includes a SDK application 222b 2, Java Platform 221 2 includes a SDK API221b 2.

上述したように、SDKアプリケーション222bは、プラットフォームが有するSDK API221bを用いれば独自に開発できる。特に拡張機能を実現するSDKアプリケーション222bは、サードベンダにより開発され提供されるソフトウェアである。サードベンダにより開発されたソフトウェアは、どのように設計・プログラミングされ、かつどのような工程を経て動作テストされ、提供されたものなのかを、知ることができない。そのため、動作中のメモリリークなど、予期せぬエラー(障害)が発生する恐れがある。 As described above, the SDK application 222b 2 can be uniquely developed by using the SDK API 221b 2 included in the platform. In particular, the SDK application 222b 2 that realizes an extended function is software developed and provided by a third vendor. It is impossible to know how software developed by a third vendor is designed and programmed, and through which process it is tested and provided. Therefore, an unexpected error (failure) such as a memory leak during operation may occur.

このような場合、SDKアプリケーション222b(拡張機能)を、標準アプリケーション222a(標準機能)と同じ仮想マシン21(第1仮想マシン21)上で動作させると、障害発生の影響からシステム全体を停止(システムダウン)させてしまう可能性がある。そのため、本実施形態では、MFP搭載の標準機能と拡張機能とを異なる仮想マシン21上で動作させることにより、たとえ拡張機能に何らかの障害が発生したとしても、ユーザに対して、標準機能のサービス提供を継続して行うことができる。 In such a case, if the SDK application 222b 2 (extended function) is operated on the same virtual machine 21 (first virtual machine 21 1 ) as the standard application 222a 1 (standard function), the entire system is affected by the occurrence of a failure. There is a possibility of stopping (system down). Therefore, in the present embodiment, the standard function and the extended function installed in the MFP are operated on different virtual machines 21, so that even if the extended function has some trouble, the standard function service is provided to the user. Can be continued.

しかし、このようなシステム構成の場合、第2仮想マシン21上で動作するSDKアプリケーション222bは、第1仮想マシン21上で動作するJavaモジュール群221aの動作モジュール30とデータ通信(仮想マシン間通信)を行う必要がある。なぜなら、第2仮想マシン21上で動作するSDKアプリケーション222bは、第1仮想マシン21上で動作する動作モジュール30(標準機能を実現するモジュール)を利用して機能(拡張機能)を実現しているからである。 However, in the case of such a system configuration, the SDK application 222b 2 operating on the second virtual machine 21 2 performs data communication (virtual communication with the operation module 30 of the Java module group 221a 1 operating on the first virtual machine 21 1. Machine-to-machine communication). This is because, SDK application 222b 2 operating on the second virtual machine 21 2 realize the operation module 30 for operating on the first virtual machine 21 1 function using the (module for implementing standard functions) (extension) Because it is.

仮想マシン間通信への対応方法には、第2仮想マシン21上で、各動作モジュール30に対応する通信モジュールを動作させる方法(動作モジュール単位で対応する方法)がある。しかし、システム規模が大きく、かつシステム内で多くの動作モジュール30が協働する場合には、多くの通信モジュールを用意する必要があり、現実的な対応方法ではない。また、たとえ通信モジュールが用意できたとしても、障害が発生した場合など、その後のシステム管理・保守が煩雑となる。さらに、仮想マシン21上で多くの通信モジュールを動作させなければならず、リソースを無駄に消費することとなる。 The corresponding method for inter-virtual machine communication, on the second virtual machine 21 2, there is a method of operating a communication module corresponding to each operation module 30 (method corresponding with operating modules units). However, when the system scale is large and many operation modules 30 cooperate in the system, it is necessary to prepare many communication modules, which is not a practical way of dealing with them. Even if a communication module is prepared, the subsequent system management / maintenance becomes complicated when a failure occurs. Furthermore, many communication modules must be operated on the virtual machine 21, and resources are consumed wastefully.

そこで、本実施形態では、各仮想マシン21に、仮想マシン間のデータ通信機能(仮想マシン間通信機能)を有するシステム全体のインタフェース部が設けられている。このインタフェース部が、各仮想マシン21上で動作するJavaプラットフォーム221が有するJavaモジュール群221aのサブセットモジュール(通信インタフェース部)41である。各仮想マシン21上で動作するサブセットモジュール41は、同一モジュールである。また、各仮想マシン21上では、1つのサブセットモジュール41が動作する。   Therefore, in this embodiment, each virtual machine 21 is provided with an interface unit of the entire system having a data communication function between virtual machines (inter-virtual machine communication function). This interface unit is a subset module (communication interface unit) 41 of the Java module group 221 a included in the Java platform 221 operating on each virtual machine 21. The subset module 41 operating on each virtual machine 21 is the same module. In addition, one subset module 41 operates on each virtual machine 21.

サブセットモジュール41は、SDKアプリケーション222bから受け付けた機能実行要求に基づき、機能を実現するために連係する動作モジュール30に対して処理の実行を要求する。また、サブセットモジュール41は、他の仮想マシンと機能実行要求を送受信し、他の仮想マシン上で動作する動作モジュール30の実行を制御する。例えば、第2仮想マシン21上で動作するSDKアプリケーション222bが、第1仮想マシン21上で動作する動作モジュール30と連係する場合には、次のように行われる。SDKアプリケーション222bは、第2仮想マシン21側のサブセットモジュール41を介して、第1仮想マシン21側のサブセットモジュール41に対し、機能実行要求を行う。第1仮想マシン21側のサブセットモジュール41は、受け付けた機能実行要求に基づき、指定された動作モジュール30に対して処理の実行を要求する。 Based on the function execution request received from the SDK application 222b, the subset module 41 requests the operation module 30 linked to realize the function to execute the process. In addition, the subset module 41 transmits / receives a function execution request to / from another virtual machine, and controls execution of the operation module 30 that operates on the other virtual machine. For example, SDK application 222b 2 operating on the second virtual machine 21 2, when cooperating with the operation module 30 for operating on the first virtual machine 21 1 is performed as follows. SDK application 222b 2, the second through the subset module 41 second virtual machine 21 2 side, for the subset module 41 1 of the first virtual machine 21 1 side, performs the function execution request. Subset module 41 1 of the first virtual machine 21 1 side, based on the received function execution request for requesting execution of a process for the specified operating module 30.

このように、サブセットモジュール41は、複数の動作モジュール30に対して共通の通信インタフェースとして機能する。   As described above, the subset module 41 functions as a common communication interface for the plurality of operation modules 30.

<仮想マシン間の動作モジュール実行制御機能>
上記サブセットモジュール41が有する機能について説明する。
図4は、本実施形態に係るサブセットモジュール41の機能構成例を示す図である。
本実施形態に係る画像処理装置100では、各仮想マシン21において、仮想マシン間通信を行うサブセットモジュール(通信インタフェース部)41を動作させる。サブセットモジュール41は、RMI通信を行う通信I/F(RMI通信I/F部)が仮想マシン間で呼び出される動作モジュール30と別途独立した構成となっている。また、サブセットモジュール41は、RMI通信I/F部53と動作モジュール30との間に介在し、動作モジュール30のI/Fを実現する代理オブジェクト(動作モジュールI/F実現部)52を管理する代理オブジェクト管理部51を有している。代理オブジェクト52は、各仮想マシン21上で動作する代理オブジェクト管理部51により、各仮想マシン21においてRMI通信(リモート)によるメソッド呼出が可能な一対のオブジェクト(異なる仮想マシンで同一インスタンスのオブジェクト)として生成される。
<Operation module execution control function between virtual machines>
The functions of the subset module 41 will be described.
FIG. 4 is a diagram illustrating a functional configuration example of the subset module 41 according to the present embodiment.
In the image processing apparatus 100 according to the present embodiment, each virtual machine 21 operates a subset module (communication interface unit) 41 that performs communication between virtual machines. The subset module 41 is configured separately from the operation module 30 in which a communication I / F (RMI communication I / F unit) that performs RMI communication is called between virtual machines. In addition, the subset module 41 is interposed between the RMI communication I / F unit 53 and the operation module 30 and manages a proxy object (operation module I / F realization unit) 52 that realizes the I / F of the operation module 30. A proxy object management unit 51 is provided. The proxy object 52 is a pair of objects (objects of the same instance in different virtual machines) that can be called by RMI communication (remote) in each virtual machine 21 by the proxy object management unit 51 operating on each virtual machine 21. Generated.

本実施形態に係る画像処理装置100は、機能実行要求を受け付けた第2仮想マシン21上で動作する代理オブジェクト52から、RMI通信I/F部53を介して、第1仮想マシン21上で動作する代理オブジェクト52を呼び出し、第1仮想マシン21が有する動作モジュール30に実行要求を行う。つまり、画像処理装置100では、各仮想マシン21に生成された一対の代理オブジェクト52を介して、仮想マシン21上の動作モジュール30の実行を制御し、要求された機能を実現する。画像処理装置100は、各仮想マシン21上で動作する上記サブセットモジュール41により、このような仮想マシン間の動作モジュール実行制御機能を有している。 The image processing apparatus 100 according to this embodiment, the proxy object 52 2 operating on the second virtual machine 21 2 that received the function execution request, via the RMI communication I / F section 53, a first virtual machine 21 1 The proxy object 52 1 that operates above is called, and an execution request is made to the operation module 30 of the first virtual machine 21 1 . That is, the image processing apparatus 100 controls the execution of the operation module 30 on the virtual machine 21 via the pair of proxy objects 52 generated in each virtual machine 21 to realize the requested function. The image processing apparatus 100 has such an operation module execution control function between virtual machines by the subset module 41 operating on each virtual machine 21.

本実施形態に係る画像処理装置100では、仮想マシン間で呼び出す動作モジュール30のI/Fに変更が生じた場合であっても、RMI通信I/F部53と動作モジュール30とが分離されていることから、RMI通信I/F部53を変更する必要がない(通信I/Fの隠蔽が可能となる)。   In the image processing apparatus 100 according to the present embodiment, the RMI communication I / F unit 53 and the operation module 30 are separated even when there is a change in the I / F of the operation module 30 called between virtual machines. Therefore, there is no need to change the RMI communication I / F unit 53 (the communication I / F can be concealed).

また、本実施形態に係る画像処理装置100では、仮想マシン間で呼び出す動作モジュール30のI/Fを新たに追加する場合であっても、動作モジュール30のI/Fを実現する代理オブジェクト52を動的に生成する代理オブジェクト管理部51を有していることから、既存I/Fを変更する必要がない(リコンパイルを行わなくてもよい)。   Further, in the image processing apparatus 100 according to the present embodiment, even when an I / F of the operation module 30 to be called between virtual machines is newly added, the proxy object 52 that realizes the I / F of the operation module 30 is added. Since the proxy object management unit 51 that is dynamically generated is included, there is no need to change the existing I / F (recompilation is not necessary).

このように、本実施形態に係る画像処理装置100では、仮想マシン間のRMI通信対応における通信I/Fの追加・変更の作業負荷が軽減できる。   As described above, in the image processing apparatus 100 according to the present embodiment, it is possible to reduce the work load of adding / changing the communication I / F in correspondence with the RMI communication between the virtual machines.

以下に、上記動作モジュール実行制御機能の構成とその動作について説明する。なお、上述したように、以降で、各仮想マシン21上で動作するサブセットモジュール41の機能名を総称する際、共通する名称と参照符号を用いることとする。   The configuration and operation of the operation module execution control function will be described below. As described above, hereinafter, when generically referring to the function names of the subset modules 41 operating on the respective virtual machines 21, common names and reference signs are used.

図4に示すように、サブセットモジュール41は、要求受付部411、処理要求部412、及び仮想マシン間通信部413などを有している。   As illustrated in FIG. 4, the subset module 41 includes a request reception unit 411, a processing request unit 412, an inter-virtual machine communication unit 413, and the like.

要求受付部411は、SDK API221を介して、SDKアプリケーション22bからの機能動作要求を受け付ける機能部である。   The request receiving unit 411 is a functional unit that receives a functional operation request from the SDK application 22b via the SDK API 221.

処理要求部412は、要求時指定の動作モジュール30に対して処理の実行を要求する機能部である。よって、処理要求部412は、仮想マシン21が有する動作モジュール30に対応して構成される。例えば、第1仮想マシン21は、プリンタモジュール30P、スキャナモジュール30S、及びFAXモジュール30Fの基本機能を実現する動作モジュール30を有している。このようなモジュール構成の場合、第1仮想マシン21が有する処理要求部412の構成は、プリンタモジュール30Pに対応する処理要求部412P、スキャナモジュール30Sに対応する処理要求部412S、及びFAXモジュール30Fに対応する処理要求部412Fとなる。 The processing request unit 412 is a functional unit that requests the operation module 30 designated at the time of request to execute processing. Accordingly, the processing request unit 412 is configured corresponding to the operation module 30 included in the virtual machine 21. For example, a first virtual machine 21 1, the printer module 30P, and a scanner module 30S, and the operation module 30 for implementing the basic functions of the FAX module 30F. In such a module configuration, the processing request unit 412 1 of the configuration of the first virtual machine 21 1 has the processing request unit corresponding to the printer module 30P 412P 1, and the processing request unit 412S 1, which corresponds to the scanner module 30S The processing request unit 412F 1 corresponds to the FAX module 30F.

例えば、第1仮想マシン21が有する処理要求部412は、自身の動作する仮想マシン21が第1仮想マシン21であることから(実行環境判定結果から)、仮想マシン21上で動作する動作モジュール30に対して処理の実行を要求する。このとき、サブセットモジュール41は、要求受付部411により受け付けた機能動作要求を解析し、解析結果として、動作要求された機能(要求処理)に係る情報を得る。これにより、処理要求部412は、得られた情報(例えば「機能実現のために連係する動作モジュール30に係る情報」)に基づき、該当する動作モジュール30を実行する。一方、第2仮想マシン21では、サブセットモジュール41が、自身の動作する仮想マシン21が第2仮想マシン21であることから、後述する仮想マシン間通信部413を介して、要求処理を実行する際に呼び出す仮想マシン21上で動作する動作モジュール30に対して処理の実行を要求する。このように、本実施形態では、第2仮想マシン21において、基本機能を使用して機能を実現する拡張機能から動作要求を受け付けると、仮想マシン間通信が行われ、処理の実行に用いられる第1仮想マシン21上の動作モジュール30に対して処理の実行が要求される。 For example, the processing request unit 412 1 in which the first virtual machine 21 1 has (from the execution environment determination result) from the virtual machine 21 to work itself is a first virtual machine 21 1, operations on the virtual machine 21 1 The operation module 30 is requested to execute the process. At this time, the subset module 41 1 analyzes the function operation request received by the request receiving unit 411 1 and obtains information related to the function requested for operation (request processing) as an analysis result. Thus, the processing request unit 412 1, based on the obtained information (e.g., "information relating to the operation module 30 that links to the function realization"), to execute the corresponding operation module 30. On the other hand, in the second virtual machine 21 2, the subset module 41 2, since the virtual machine 21 to work itself is the second virtual machine 21 2, via the inter-VM communication unit 413 to be described later, the request processing It requests the execution of the processing for the operation module 30 that operates on the virtual machine 21 1 to call in executing. Thus, in this embodiment, in the second virtual machine 21 2, upon receiving the operation request from the extension to realize the function by using the basic functions, is performed between the virtual machine communication, it is used to perform the process execution of the processing is required for the operation module 30 of the first virtual machine 21 on 1.

仮想マシン間通信部413は、仮想マシン間でデータ通信を行う機能部である。本実施形態では、仮想マシン環境がJavaVMにより実現されている。よって、仮想マシン間通信部413では、仮想マシン間通信をRMI通信により実現される。RMIとは、別ホスト(他のJavaVM)のJavaオブジェクトのメソッドを呼び出すための通信手段であり、RPC(Remote Procedure Call)のオブジェクトに相当する機能を果たすためのAPIである。これにより、仮想マシン間通信部413では、仮想マシン間のデータ通信(情報送受信)を行う。   The inter-virtual machine communication unit 413 is a functional unit that performs data communication between virtual machines. In this embodiment, the virtual machine environment is realized by JavaVM. Therefore, in the inter-virtual machine communication unit 413, inter-virtual machine communication is realized by RMI communication. The RMI is a communication means for calling a method of a Java object of another host (another JavaVM), and is an API for performing a function corresponding to an object of an RPC (Remote Procedure Call). Thereby, the inter-virtual machine communication unit 413 performs data communication (information transmission / reception) between the virtual machines.

例えば、第2仮想マシン21が有する仮想マシン間通信部413では、自身の動作する仮想マシン21が第2仮想マシン21であることから、要求受付部411により受け付けた機能動作要求を、第1仮想マシン21に送信する。 For example, the inter-VM communication unit 413 2 in which the second virtual machine 21 2 has, from the virtual machine 21 is in a second virtual machine 21 2 to its own operation, the functional operation request received by the request receiving unit 411 2 , and it transmits a first virtual machine 21 1.

このように機能する仮想マシン間通信部413は、代理オブジェクト管理部51及びRMI通信I/F部53を有している。   The inter-virtual machine communication unit 413 that functions in this way includes a proxy object management unit 51 and an RMI communication I / F unit 53.

代理オブジェクト管理部51は、動作モジュール30のI/Fを実現する代理オブジェクト(動作モジュールI/F実現部)52を管理する機能部である。代理オブジェクト52とは、後述するRMI通信I/F部53と動作モジュール30との間に介在し、各動作モジュール30のI/Fを実現するJavaオブジェクトである。代理オブジェクト管理部51は、この代理オブジェクト52の生成・削除などを行うことで、代理オブジェクト52を管理する。   The proxy object management unit 51 is a functional unit that manages a proxy object (operation module I / F realization unit) 52 that realizes the I / F of the operation module 30. The proxy object 52 is a Java object that is interposed between the RMI communication I / F unit 53 (described later) and the operation module 30 to realize the I / F of each operation module 30. The proxy object management unit 51 manages the proxy object 52 by generating and deleting the proxy object 52.

代理オブジェクト管理部52は、仮想マシン21が有する動作モジュール30に対応する代理オブジェクト52を生成する。なお、ここで言う「オブジェクトの生成」とは、オブジェクト指向言語によりクラスからオブジェクトを生成する工程である。生成工程には、例えば、「オブジェクト変数の宣言(クラス名 オブジェクト変数)」、「オブジェクトの生成(new)」、及び「オブジェクトの初期化(コンストラクタ名(初期化値・・・))」などがある。   The proxy object management unit 52 generates a proxy object 52 corresponding to the operation module 30 included in the virtual machine 21. Here, “object generation” is a process of generating an object from a class using an object-oriented language. The generation process includes, for example, “declaration of object variable (class name object variable)”, “generation of object (new)”, “initialization of object (constructor name (initialization value ...))”, etc. is there.

例えば、第1仮想マシン21は、プリンタモジュール30P、スキャナモジュール30S、及びFAXモジュール30Fの基本機能を実現する動作モジュール30を有している。このようなモジュール構成の場合、仮想マシン21が有する代理オブジェクト管理部52は、動作モジュール30の登録情報(例えば「メソッド名(関数名)」や「メソッドパラメータ(引数)」)に基づき、プリンタモジュール30Pに対応する代理オブジェクト52P、スキャナモジュール30Sに対応する代理オブジェクト52S、及びFAXモジュール30Fに対応する代理オブジェクト52Fを生成する。代理オブジェクト管理部52は、上記代理オブジェクト52を、仮想マシン21からのRMI通信実行時(機能実行要求時)に生成する。代理オブジェクト管理部52は、生成後の代理オブジェクト52を所定の管理識別子(例えば「I/FID」)を用いて管理する。また、代理オブジェクト管理部52は、RMI通信I/F部53に生成後の代理オブジェクト52を定義する。このとき、代理オブジェクト管理部52は、RMI通信I/F部53に、生成後の代理オブジェクト52、メソッド名(関数名)、及びメソッドパラメータ(引数)などを渡す。なお、仮想マシン21では、サブセットモジュール41の起動時に、動作モジュール30の情報が代理オブジェクト管理部52へ登録される。 For example, a first virtual machine 21 1, the printer module 30P, and a scanner module 30S, and the operation module 30 for implementing the basic functions of the FAX module 30F. In the case of such a module configuration, the proxy object management unit 52 1 included in the virtual machine 21 1 is based on registration information of the operation module 30 (for example, “method name (function name)” or “method parameter (argument)”). A proxy object 52P 1 corresponding to the printer module 30P, a proxy object 52S 1 corresponding to the scanner module 30S, and a proxy object 52F 1 corresponding to the FAX module 30F are generated. Proxy object management unit 52 1, the proxy object 521, produced during the RMI communication execution from the virtual machine 21 2 (when function execution request). Proxy object management unit 52 1 manages by using the generated subsequent proxy object 521 a predetermined management identifier (e.g., "I / FID"). In addition, the proxy object management unit 52 1 defines the generated proxy object 52 1 in the RMI communication I / F unit 53 1 . At this time, the proxy object management unit 52 1, the RMI communication I / F unit 53 1, proxy object 521 after generation, the method name (function name), and the method parameter (argument) Passing the like. In the virtual machine 21 1 , the information of the operation module 30 is registered in the proxy object management unit 52 1 when the subset module 41 1 is activated.

一方、仮想マシン21が有する代理オブジェクト管理部52は、RMI通信実行(機能実行要求)により、生成後の代理オブジェクト52を受け取る(生成後の代理オブジェクト52が返却される)。代理オブジェクト管理部52は、受け取ったオブジェクト(返却されたオブジェクト)を代理オブジェクト52として所定の管理識別子(例えば「I/FID」)を用いて管理する。また、代理オブジェクト管理部52は、RMI通信I/F部53に代理オブジェクト52を定義する。 On the other hand, the proxy object management unit 52 2 for virtual machine 21 2 has, due RMI communication execution (function execution request), the proxy object 521 to receive post-generation (proxy object 521 after generation is returned). Proxy object management unit 52 2 manages by using the received object (returned objects) a proxy object 52 2 as a predetermined management identifier (e.g., "I / FID"). Further, the proxy object management unit 52 2 defines the proxy object 52 2 to RMI communication I / F section 53 2.

このように、代理オブジェクト管理部52は、代理オブジェクト52と代理オブジェクト52を、第1仮想マシン21と第2仮想マシン21とにおいてRMI通信(リモート)によるメソッド呼出が可能な一対のオブジェクトとして管理する。これら一対のオブジェクトは、動作モジュール30の単位(基本機能の単位)で管理される。 As described above, the proxy object management unit 52 allows the proxy object 52 1 and the proxy object 52 2 to be paired with each other so that the first virtual machine 21 1 and the second virtual machine 21 2 can call a method by RMI communication (remote). Manage as an object. These pair of objects are managed in units of operation modules 30 (units of basic functions).

Javaでは、文字データやバイトデータの入出力以外に、オブジェクトの入出力を行うクラスが用意されている。オブジェクトの入出力は、オブジェクトを再利用するため一時的にオブジェクトを保持する場合や、仮想マシン間などのリモート環境にあるプログラムとソケットを利用してオブジェクトをやり取りする場合などに用いる。   In Java, in addition to input / output of character data and byte data, classes for input / output of objects are prepared. Object input / output is used when an object is temporarily held to reuse the object, or when an object is exchanged using a socket in a remote environment such as between virtual machines.

このようなオブジェクトの入出力処理を、オブジェクトのシリアライズ(直列化)と呼ぶ。それは、オブジェクトの書き込み処理を行う場合、読み込み処理に備えオブジェクトを一連のつながりのあるデータとして書き込み、読み込む際、書き込まれた一連のデータの順に読み込み処理を行うと言うものである。   Such object input / output processing is called object serialization. That is, when an object writing process is performed, the object is written as a series of connected data in preparation for the reading process, and when the object is read, the reading process is performed in the order of the written series of data.

つまり、第1仮想マシン21から第2仮想マシン21に返却される代理オブジェクト52は、オブジェクトがシリアライズ(直列化)されている。そのため、第1仮想マシン21で管理する代理オブジェクト52と、第2仮想マシン21で管理する代理オブジェクト52とは、同一インスタンスとなる。 That is, proxy object 521 to be returned from the first virtual machine 21 1 to the second virtual machine 21 2, the object is serialized (serialized). Therefore, the proxy object 521 managed by the first virtual machine 21 1, the proxy object 52 2 managed by the second virtual machine 21 2, the same instance.

また、代理オブジェクト管理部51は、例えば、機能実行を要求するJavaアプリケーション222の終了時に、管理対象の代理オブジェクト52を削除する。なお、代理オブジェクト52の削除タイミングは、Javaアプリケーション222の終了と必ずしも同期していなくてもよい。   In addition, the proxy object management unit 51 deletes the proxy object 52 to be managed, for example, when the Java application 222 that requests function execution ends. Note that the deletion timing of the proxy object 52 does not necessarily have to be synchronized with the end of the Java application 222.

RMI通信I/F部53は、RMI通信を行う通信I/Fを実現する機能部である。つまり、RMI通信I/F部53は、仮想マシン間で直接RMI通信を行うためのI/Fである。また、RMI通信I/F部53は、上述した動作モジュール30の単位で管理される代理オブジェクト52に対して共通するI/Fである。   The RMI communication I / F unit 53 is a functional unit that implements a communication I / F that performs RMI communication. That is, the RMI communication I / F unit 53 is an I / F for performing RMI communication directly between virtual machines. The RMI communication I / F unit 53 is an I / F common to the proxy object 52 managed in units of the operation module 30 described above.

このように、本実施形態に係るサブセットモジュール41では、RMI通信を行う通信I/F(RMI通信I/F部)が仮想マシン間で呼び出す動作モジュール30と別途独立した構成となっている。   As described above, the subset module 41 according to the present embodiment has a configuration that is independent of the operation module 30 that the communication I / F (RMI communication I / F unit) that performs RMI communication calls between virtual machines.

これにより、画像処理装置100では、動作モジュール30のI/Fに変更や追加が生じた場合でも、RMI通信を行うI/Fで対応作業を行う必要がなく、通信I/Fに影響がない。   Thereby, in the image processing apparatus 100, even when the I / F of the operation module 30 is changed or added, it is not necessary to perform the corresponding work with the I / F that performs RMI communication, and the communication I / F is not affected. .

また、RMI通信I/F部53には、上述したように、代理オブジェクト管理部51により、代理オブジェクト52、メソッド名(関数名)、及びメソッドパラメータ(引数)が定義される。よって、RMI通信I/F部53は、実際のRMI通信を行う際に、上記定義情報をキーに実行される。   In the RMI communication I / F unit 53, as described above, the proxy object management unit 51 defines the proxy object 52, the method name (function name), and the method parameter (argument). Therefore, the RMI communication I / F unit 53 is executed using the definition information as a key when performing actual RMI communication.

本実施形態に係る仮想マシン間の動作モジュール実行制御機能は、上記各機能部が次のように連係動作することにより実現される。画像処理装置100は、機能実行要求を受け付けた第2仮想マシン21上で動作する代理オブジェクト52から、RMI通信I/F部53を介して、第1仮想マシン21上で動作する代理オブジェクト52を呼び出し、第1仮想マシン21が有する動作モジュール30に実行要求を行う。 The operation module execution control function between virtual machines according to the present embodiment is realized by the above-described functional units operating in linkage as follows. The image processing apparatus 100, the proxy object 52 2 operating on the second virtual machine 21 2 that received the function execution request, via the RMI communication I / F unit 53, a proxy that runs on the first virtual machine 21 1 The object 52 1 is called, and an execution request is made to the operation module 30 of the first virtual machine 21 1 .

このように、本実施形態に係る画像処理装置100では、上記機能構成により、動作モジュール30のI/Fに変更や追加が生じた場合、代理オブジェクト管理部51のみで対応することができる。つまり、本実施形態では、従来に比べて、より限定した範囲での作業で仮想マシン間のRMI通信対応が行える。   As described above, in the image processing apparatus 100 according to the present embodiment, when the I / F of the operation module 30 is changed or added due to the functional configuration described above, only the proxy object management unit 51 can cope with it. That is, in this embodiment, RMI communication between virtual machines can be performed with work within a more limited range as compared with the prior art.

次に、動作モジュール実行制御機能の詳細な動作(機能部群の連係動作)について、処理手順を示すシーケンス図を用いて説明する。   Next, detailed operation of the operation module execution control function (function unit group linking operation) will be described with reference to a sequence diagram showing a processing procedure.

動作モジュール実行制御機能は、各仮想マシン21上でサブセットモジュール41が動作することで実現される機能である。仮想マシン環境は、画像処理装置100に搭載(インストール)されるJavaVM(仮想マシン環境を実現するプログラム)が、CPU111により、格納先(例えば「ROM」)からRAM上に読み出され、実行されることで構築される。サブセットモジュール41は、この環境下において、Javaプラットフォーム221が有するJavaモジュール群221aの1つのモジュールとして起動される。   The operation module execution control function is a function realized by the subset module 41 operating on each virtual machine 21. In the virtual machine environment, a Java VM (a program for realizing the virtual machine environment) mounted (installed) in the image processing apparatus 100 is read from the storage location (for example, “ROM”) onto the RAM by the CPU 111 and executed. It is built by that. In this environment, the subset module 41 is activated as one module of the Java module group 221a included in the Java platform 221.

なお、以下の説明では、第1仮想マシン21でサブセットモジュール41が起動された場合の処理(処理1)と、第2仮想マシン21で機能実行要求を受け付けた場合の処理(処理2)に分けて説明する。 In the following description, processing when the subset module 411 is activated by the first virtual machine 21 1 (treatment 1), processing when receiving a function execution request by the second virtual machine 21 2 (processing 2 ).

《処理1》
図5は、本実施形態に係る第1仮想マシン21でサブセットモジュール41が起動された場合の処理手順例を示すシーケンス図である。
<< Process 1 >>
FIG. 5 is a sequence diagram illustrating an example of a processing procedure when the subset module 41 1 is activated in the first virtual machine 21 1 according to the present embodiment.

図5に示すように、画像処理装置100は、第1仮想マシン21上でサブセットモジュール41が起動されると、要求受付部411、処理要求部412、及び仮想マシン間通信部413の各機能実現オブジェクトが生成され動作する(ステップS11)。このとき、第1仮想マシン21が有する動作モジュール30に対応して生成された処理要求部412は、対応する動作モジュール30がRMI通信を行う必要のあるモジュールであった場合、仮想マシン間通信部413が有する代理オブジェクト管理部51に、自身のオブジェクトを管理対象として登録要求する(ステップS12)。なお、動作モジュール30がRMI通信を行う必要のあるモジュールであるか否かの判定は、例えば、設計・開発段階で予め決定しておいた機能単位におけるRMI通信の要否設定に基づいて行う。 As illustrated in FIG. 5, when the subset module 41 1 is activated on the first virtual machine 21 1 , the image processing apparatus 100 includes a request reception unit 411 1 , a processing request unit 412 1 , and an inter-virtual machine communication unit 413. Each function realization object 1 is generated and operated (step S11). At this time, if the corresponding operation module 30 is a module that needs to perform RMI communication, the processing request unit 412 1 generated corresponding to the operation module 30 included in the first virtual machine 21 1 The proxy object management unit 51 1 of the communication unit 413 1 requests registration of its own object as a management target (step S12). Whether or not the operation module 30 is a module that needs to perform RMI communication is determined based on, for example, the setting of necessity of RMI communication for each functional unit that has been determined in advance in the design / development stage.

代理オブジェクト管理部51は、要求に応じて、処理要求部412のオブジェクトを、管理対象として登録する(ステップS13)。 Proxy object management unit 51 1 in response to the request, the object of the processing request unit 412 1 is registered as a managed (step S13).

これにより、画像処理装置100では、代理オブジェクト管理部51が、第2仮想マシン21とRMI通信を行う動作モジュール30に対応する代理オブジェクト52(動作モジュールI/F実現部)を、第1仮想マシン21上に生成できる。 Thus, the image processing apparatus 100, the proxy object management unit 51 1, proxy object 521 corresponding to the second virtual machine 21 2 and the operation module 30 for performing RMI communication (operation module I / F achievement unit), the One virtual machine 21 can be generated on the one .

《処理2》
図6は、本実施形態に係る第2仮想マシン21で機能実行指示を受け付けた場合の処理手順例を示すシーケンス図である。なお、図6には、第2仮想マシン21上で動作する拡張機能が、仮想マシン間通信により、第1仮想マシン21上で動作する動作モジュール30を利用して動作する場合の処理手順例が示されている。
<< Process 2 >>
Figure 6 is a sequence diagram illustrating a processing procedure example of the case where the function execution indicated by the second virtual machine 21 2 according to the present embodiment is accepted. Incidentally, in FIG. 6, an extension that operates on the second virtual machine 21 2, the communication between the virtual machines, the processing procedure when operating using the operation module 30 for operating on the first virtual machine 21 1 An example is shown.

図6に示すように、画像処理装置100は、ユーザから拡張機能実行の指示を受け付けると、第2仮想マシン21上でJavaアプリケーション222が動作する(ステップS21)。動作中のJavaアプリケーション222からは、機能実現のために動作モジュール30の関数(アプリが使用するメソッド)が呼び出される(ステップS22)。このとき、Javaアプリケーション222では、通常と異なるインスタンスにより関数呼出を行うことで、内部的に代理オブジェクト管理部51に動作モジュール30の実行要求が通知される仕組みとなっている。具体的には、次のような処理が行われる。 As shown in FIG. 6, the image processing apparatus 100 accepts the instruction for extension running from the user, Java application 222 2 is operated on the second virtual machine 21 2 (step S21). Java applications 222 2 in operation, a function of the operating module 30 (method used by the application) is called for implementing a function (step S22). At this time, the Java application 222 2, the unusual instance by performing a function call, and has a mechanism for internally execution request of operating modules 30 to the proxy object management unit 51 2 is notified. Specifically, the following processing is performed.

サブセットモジュール41では、要求受付部411により、Javaアプリケーション222からの動作モジュール30の実行要求を受け付けて(ステップS23)、受け付けた要求が代理オブジェクト管理部51に通知される(ステップS24)。 In the subset module 41 2, the request acceptance unit 411 2 accepts the execution request of the operation module 30 of the Java applications 222 2 (step S23), the received request is notified to the proxy object management unit 51 2 (step S24 ).

代理オブジェクト管理部51は、代理オブジェクト52を管理する機能であることから、要求された動作モジュール30に対応する代理オブジェクト52が第2仮想マシン21上に既に生成されているか否かを確認する(ステップS25)。 Proxy object management unit 51 2, since a function for managing a proxy object 52 2, whether the proxy object 52 2 corresponding to the operation module 30 requested has already been generated on the second virtual machine 21 2 Is confirmed (step S25).

代理オブジェクト管理部51は、第2仮想マシン21上に、まだ、要求された動作モジュール30に対応する代理オブジェクト52が生成されていなければ(生成後の代理オブジェクト52が未登録の場合)、第1仮想マシン21に対して、要求された動作モジュール30に対応する代理オブジェクト52の取得を要求する(ステップS26)。このとき、代理オブジェクト管理部51は、要求された動作モジュール30のメソッド名(関数名)及びメソッドパラメータ(引数)を、RMI通信I/F部53を介して(RMI通信により)、第1仮想マシン21に送信し、代理オブジェクト52の取得を要求する。 Proxy object management unit 51 2, on the second virtual machine 21 2, still, if it is not generated proxy object 52 2 corresponding to the operation module 30 is requested (after generating the proxy object 52 2 is not registered If), the first virtual machine 21 1, corresponding to the requested operation module 30 requests the acquisition proxy object 52 2 (step S26). At this time, the proxy object management unit 51 2, the method name of the requested operation module 30 (function name) and the method parameter (argument), via the RMI communication I / F unit 53 2 (by RMI communication), the 1 transmits to the virtual machine 21 1 to request the acquisition proxy object 52 2.

第1仮想マシン21では、サブセットモジュール41が有する代理オブジェクト管理部51により、取得要求を受け付けて、要求された代理オブジェクト52が第1仮想マシン21上に既に生成されているか否かを確認する(ステップS31)。 In the first virtual machine 21 1, the proxy object management unit 51 1 subset module 411 has, accepts an acquisition request, whether the requested proxy object 521 has already been generated on the first virtual machine 21 1 not (Step S31).

代理オブジェクト管理部51は、第1仮想マシン21上に、まだ、要求された代理オブジェクト52が生成されていなければ(生成後の代理オブジェクト52が未登録の場合)、代理オブジェクト52を生成する(ステップS32)。このとき、代理オブジェクト管理部51は、サブセットモジュール41の起動時に登録された動作モジュール30に対応する処理要求部412の登録情報、及び取得要求時に受信した動作モジュール30のメソッド名(関数名)及びメソッドパラメータ(引数)などに基づき、動作モジュール30のI/Fを実現するJavaオブジェクトを生成する。 If the requested proxy object 52 1 has not yet been generated on the first virtual machine 21 1 (when the generated proxy object 52 1 has not been registered), the proxy object management unit 51 1 does not have the proxy object 52 1. 1 is generated (step S32). At this time, the proxy object management unit 51 1, the processing request unit 412 1 of the registration information corresponding to the operation module 30 which is registered at the start of the subset module 411, and method name of the operation module 30 which receives at the time of acquisition request (function The Java object that realizes the I / F of the operation module 30 is generated based on the name) and the method parameter (argument).

代理オブジェクト管理部51は、生成された代理オブジェクト52に対して、管理識別子を発行し、管理対象の代理オブジェクト52として登録する(ステップS33)。このとき、代理オブジェクト管理部51は、生成後のI/FをRMI通信I/F部53に定義する。RMI通信I/F部53には、生成後の代理オブジェクト52、メソッド名(関数名)、及びメソッドパラメータ(引数)が定義される。 The proxy object management unit 51 1 issues a management identifier to the generated proxy object 52 1 and registers it as a management target proxy object 52 (step S33). At this time, the proxy object management unit 51 1 defines the I / F after generating the RMI communication I / F unit 53 1. The RMI communication I / F unit 53 1, proxy object 521 after generation, the method name (function name), and the method parameter (argument) is defined.

代理オブジェクト管理部51は、生成後の代理オブジェクト52を、RMI通信I/F部53を介して(RMI通信により)、第2仮想マシン21に転送し、取得要求に応答する(ステップS34)。 Proxy object management unit 51 1, the proxy object 521 after generation, (by RMI communication) via the RMI communication I / F unit 53 1, the second is transferred to the virtual machine 21 2, it responds to the acquisition request ( Step S34).

第2仮想マシン21では、代理オブジェクト52が転送されたことにより、サブセットモジュール41が有する代理オブジェクト管理部51により、代理オブジェクト52が生成される(ステップS41)。これにより、各仮想マシン21では、RMI通信(リモート)によるメソッド呼出が可能な一対のオブジェクト(異なる仮想マシンで同一インスタンスのオブジェクト)が生成される。 In the second virtual machine 21 2, proxy object 52 1 by transferred by the proxy object management unit 51 2 subset module 41 2 has, proxy object 522 is generated (step S41). As a result, each virtual machine 21 generates a pair of objects (objects of the same instance in different virtual machines) that can be called by RMI communication (remote).

代理オブジェクト管理部51は、生成した代理オブジェクト52に対して、管理識別子を発行し、管理対象の代理オブジェクト52として登録する(ステップS42)。このとき、代理オブジェクト管理部51は、生成後のI/FをRMI通信I/F部53に定義する。 Proxy object management unit 51 2, to the generated proxy object 52 2, issues a management identifier is registered as proxy object 52 managed (step S42). At this time, the proxy object management unit 51 2 defines the I / F after generating the RMI communication I / F section 53 2.

生成後、登録された代理オブジェクト52は、代理オブジェクト管理部51に対して、第1仮想マシン21上で動作する要求動作モジュール30の代理呼出を要求する(ステップS43)。 After generation, proxy object 522 that is registered, to the proxy object management unit 51 2, requests the proxy call request operation module 30 that operates on the first virtual machine 21 1 (step S43).

代理オブジェクト管理部51は、要求に応じて、第1仮想マシン21上で動作する要求動作モジュール30を呼び出し、処理の実行を要求する(ステップS44)。つまり、代理オブジェクト管理部51は、RMI通信(リモート)によるメソッド呼出が可能な一対の代理オブジェクト52を介して、要求された動作モジュール30に対応する関数(外部メソッド)を呼び出す。このとき、代理オブジェクト52からは、動作モジュール30が処理を実行する際に必要なメソッドパラメータ値(引数値)が、RMI通信により代理オブジェクト52に渡される。 Proxy object management unit 51 2 in response to the request, calling the request operation module 30 operating in a first virtual machine 21 1 on, and requests execution of a process (step S44). In other words, the proxy object management unit 51 2 via the RMI communication (remote) a pair of proxy object 52 method call that may by calls a function corresponding to the operation module 30 requested (external method). At this time, the proxy object 52 2, the method parameter values necessary for operation module 30 performs the process (parameter value) is passed to the proxy object 52 1 by RMI communication.

第1仮想マシン21では、サブセットモジュール41が有する代理オブジェクト管理部51により、代理オブジェクト52の動作モジュールI/Fを介して(ステップS51)、サブセットモジュール41の起動時に登録された動作モジュール30に対応する処理要求部412に、処理の実行を要求する(ステップS52)。このとき、代理オブジェクト52からは、動作モジュール30が処理を実行する際に必要なメソッドパラメータ値(引数値)が、RMI通信により処理要求部412に渡される。 In the first virtual machine 21 1, the proxy object management unit 51 1 subset module 411 has, through the operation module I / F of the proxy object 52 1 (step S51), registered in the subset module 411 starts the processing request unit 412 1 corresponding to the operation module 30, a request for execution of the process (step S52). At this time, the proxy object 52 1, the method parameter values necessary for operation module 30 performs the process (parameter value) is passed to the processing request unit 412 1 by RMI communication.

処理要求部412は、上記メソッドパラメータ値(引数値)に基づき、対応する動作モジュール30を実行し、処理を行う(ステップS53)。 Processing request unit 412 1, based on the method parameters values (parameter values), and execute the corresponding operation module 30 performs the process (step S53).

その結果、処理要求部412からは、処理の実行結果が要求元に応答される。これにより、第1仮想マシン21では、一対の代理オブジェクト52を介して、RMI通信により、第1仮想マシン21からの実行結果を受け取る。この実行結果は、要求受付部411を介して、Javaアプリケーション2222へと渡される。 As a result, the processing request unit 412 1, the execution result of the processing is responsive to the request source. Thus, the first virtual machine 21 2, via a pair of proxy object 52, the RMI communication, receives the execution result from the first virtual machine 21 1. The execution result via the request receiving unit 411 2, are passed to the Java application 2222.

本実施形態に係る画像処理装置100では、一対の代理オブジェクト52を介して、仮想マシン間通信を擬似的に実現することで、第2仮想マシン21から第1仮想マシン21が有する動作モジュール30を利用し、第2仮想マシン21が有する機能を実現することができる。 In the image processing apparatus 100 according to the present embodiment, via a pair of proxy object 52, to realize a communication between the virtual machines in a pseudo manner, the second operation module that the virtual machine 21 2 from the first virtual machine 21 1 has using 30, it is possible to realize the second function of the virtual machine 21 2 has.

<まとめ>
以上のように、本実施形態に係る画像処理装置100によれば、各仮想マシン21において、仮想マシン間通信を行うサブセットモジュール(通信インタフェース部)41を動作させる。サブセットモジュール41は、RMI通信を行う通信I/F(RMI通信I/F部)が仮想マシン間で呼び出される動作モジュール30と別途独立した構成となっている。また、サブセットモジュール41は、RMI通信I/F部53と動作モジュール30との間に介在し、動作モジュール30のI/Fを実現する代理オブジェクト(動作モジュールI/F実現部)52を管理する代理オブジェクト管理部51を有している。代理オブジェクト52は、各仮想マシン21上で動作する代理オブジェクト管理部51により、各仮想マシン21においてRMI通信(リモート)によるメソッド呼出が可能な一対のオブジェクト(異なる仮想マシンで同一インスタンスのオブジェクト)として生成される。
<Summary>
As described above, according to the image processing apparatus 100 according to the present embodiment, in each virtual machine 21, the subset module (communication interface unit) 41 that performs communication between virtual machines is operated. The subset module 41 is configured separately from the operation module 30 in which a communication I / F (RMI communication I / F unit) that performs RMI communication is called between virtual machines. In addition, the subset module 41 is interposed between the RMI communication I / F unit 53 and the operation module 30 and manages a proxy object (operation module I / F realization unit) 52 that realizes the I / F of the operation module 30. A proxy object management unit 51 is provided. The proxy object 52 is a pair of objects (objects of the same instance in different virtual machines) that can be called by RMI communication (remote) in each virtual machine 21 by the proxy object management unit 51 operating on each virtual machine 21. Generated.

本実施形態に係る画像処理装置100は、機能実行要求を受け付けた第2仮想マシン21上で動作する代理オブジェクト52から、RMI通信I/F部53を介して、第1仮想マシン21上で動作する代理オブジェクト52を呼び出し、第1仮想マシン21が有する動作モジュール30に実行要求を行う。つまり、画像処理装置100では、各仮想マシン21に生成された一対の代理オブジェクト52を介して、仮想マシン21上の動作モジュール30の実行を制御し、要求された機能を実現する。 The image processing apparatus 100 according to this embodiment, the proxy object 52 2 operating on the second virtual machine 21 2 that received the function execution request, via the RMI communication I / F section 53, a first virtual machine 21 1 The proxy object 52 1 that operates above is called, and an execution request is made to the operation module 30 of the first virtual machine 21 1 . That is, the image processing apparatus 100 controls the execution of the operation module 30 on the virtual machine 21 via the pair of proxy objects 52 generated in each virtual machine 21 to realize the requested function.

これによって、画像処理装置100は、仮想マシン間のRMI通信対応における通信I/Fの追加・変更の作業負荷が軽減できる。   As a result, the image processing apparatus 100 can reduce the workload of adding / changing the communication I / F in correspondence with RMI communication between virtual machines.

なぜなら、本実施形態に係る画像処理装置100では、仮想マシン間で呼び出す動作モジュール30のI/Fに変更が生じた場合であっても、RMI通信I/F部53と動作モジュール30とが分離されていることから、RMI通信I/F部53を変更する必要がない(通信I/Fの隠蔽が可能となる)からである。   This is because in the image processing apparatus 100 according to the present embodiment, the RMI communication I / F unit 53 and the operation module 30 are separated even when a change occurs in the I / F of the operation module 30 that is called between virtual machines. This is because there is no need to change the RMI communication I / F unit 53 (the communication I / F can be concealed).

また、本実施形態に係る画像処理装置100では、仮想マシン間で呼び出す動作モジュール30のI/Fを新たに追加する場合であっても、動作モジュール30のI/Fを実現する代理オブジェクト52を動的に生成する代理オブジェクト管理部51を有していることから、既存I/Fを変更する必要がない(リコンパイルを行わなくてもよい)からである。   Further, in the image processing apparatus 100 according to the present embodiment, even when an I / F of the operation module 30 to be called between virtual machines is newly added, the proxy object 52 that realizes the I / F of the operation module 30 is added. This is because the proxy object management unit 51 that is dynamically generated is included, so that there is no need to change the existing I / F (recompilation is not necessary).

ここまで、上記実施形態の説明を行ってきたが、実施形態に係る画像処理装置100が有する「動作モジュール実行制御機能」は、図を用いて説明を行った各処理手順を動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムが、CPU111により実行されることで実現される。   The above-described embodiment has been described so far. The “operation module execution control function” of the image processing apparatus 100 according to the embodiment describes each processing procedure described with reference to the drawing in the operating environment (platform). This is realized by the CPU 111 executing a program coded in a programming language suitable for the above.

上記プログラムは、コンピュータが読み取り可能な記録媒体114aに格納することができる。上記記録媒体114aには、例えば、SDメモリカード及びUSBメモリなどがある。   The program can be stored in a computer-readable recording medium 114a. Examples of the recording medium 114a include an SD memory card and a USB memory.

よって、上記プログラムは、上記記録媒体114aに記憶させることで、記録媒体114aを読み取り可能な外部記憶I/F114などを介して画像処理装置100にインストールすることができる。また画像処理装置100は、ネットワークI/F113を備えていることから、インターネットなどの電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。   Therefore, by storing the program in the recording medium 114a, the program can be installed in the image processing apparatus 100 via the external storage I / F 114 that can read the recording medium 114a. Since the image processing apparatus 100 includes the network I / F 113, the program can be downloaded and installed using an electric communication line such as the Internet.

最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。   Finally, the present invention is not limited to the requirements shown here, such as combinations of other elements with the shapes and configurations described in the above embodiments. With respect to these points, the present invention can be changed within a range that does not detract from the gist of the present invention, and can be appropriately determined according to the application form.

10 OS
21 JavaVM(:第1仮想マシン側、:第2仮想マシン側)
211 ヒープメモリ
22 Javaコンポーネント
221 Javaプラットフォーム
221a Javaモジュール群
221b SDK API
222 Javaアプリケーション
222a 標準アプリケーション(:第1仮想マシン側)
222b SDKアプリケーション
30 動作モジュール(P:プリンタ、S:スキャナ、F:FAX)
41 サブセットモジュール
411 要求受付部
412 処理要求部(P:プリンタ,S:スキャナ,F:FAX)
413 仮想マシン間通信部
51 代理オブジェクト管理部
52 代理オブジェクト(P:プリンタ,S:スキャナ,F:FAX)
53 RMI通信I/F部
100 画像処理装置
110 コントローラ
111 CPU(中央処理装置)
112 記憶装置
113 ネットワークI/F
114 外部記憶I/F(a:記録媒体)
120 操作パネル
130 プロッタ(画像形成部)
140 スキャナ(読み取り部)
10 OS
21 JavaVM ( 1 : first virtual machine side, 2 : second virtual machine side)
211 Heap memory 22 Java component 221 Java platform 221a Java module group 221b SDK API
222 Java application 222a Standard application ( 1 : first virtual machine side)
222b SDK application 30 operation module (P: printer, S: scanner, F: FAX)
41 Subset module 411 Request acceptance unit 412 Processing request unit (P: printer, S: scanner, F: FAX)
413 Virtual machine communication unit 51 Proxy object management unit 52 Proxy object (P: printer, S: scanner, F: FAX)
53 RMI Communication I / F Unit 100 Image Processing Device 110 Controller 111 CPU (Central Processing Unit)
112 Storage device 113 Network I / F
114 External storage I / F (a: recording medium)
120 Operation panel 130 Plotter (image forming unit)
140 Scanner (reading unit)

特開2003−15870号公報JP 2003-15870 A

Claims (7)

当該画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる仮想マシン上で動作する画像処理装置であって、
前記標準機能を実現する複数の動作モジュールと、
各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有し、
前記通信インタフェース部が、
前記仮想マシン上での機能実行要求を受け付ける受付手段と、
前記仮想マシン間通信を行う通信手段と、
前記通信手段のインタフェースと前記動作モジュールとの間に介在し、前記動作モジュールのインタフェースを実現する動作モジュールインタフェース実現部を生成する生成手段と、を有し、
前記受付手段により、前記拡張機能の実行要求を受け付けると、
前記通信手段による仮想マシン間通信により、
前記機能実行要求を受け付けた仮想マシン上で、前記生成手段により生成され動作する第1の動作モジュールインタフェース実現部から、他の仮想マシン上で、前記生成手段により生成され動作する第2の動作モジュールインタフェース実現部を呼び出し、他の仮想マシンが有する前記動作モジュールに実行要求を行うことを特徴とする画像処理装置。
An image processing apparatus in which a standard function of the image processing apparatus and an extended function using the standard function operate on different virtual machines,
A plurality of operation modules for realizing the standard functions;
A communication interface unit that operates on each virtual machine and performs communication between virtual machines common to the plurality of operation modules;
The communication interface unit is
Accepting means for accepting a function execution request on the virtual machine;
A communication means for performing communication between the virtual machines;
Generating means for generating an operation module interface realizing unit that is interposed between the interface of the communication means and the operation module, and realizes the interface of the operation module;
When receiving the execution request for the extended function by the receiving means,
By communication between virtual machines by the communication means,
A second operation module that is generated and operated by the generation unit on another virtual machine from the first operation module interface realization unit that is generated and operated by the generation unit on the virtual machine that has received the function execution request. An image processing apparatus that calls an interface implementation unit and makes an execution request to the operation module of another virtual machine.
前記生成手段は、
Java(登録商標)オブジェクトのシリアライズ(直列化)により、
各仮想マシンにおいて、前記仮想マシン間通信による前記動作モジュールのメソッド呼出が可能な同一インスタンスの動作モジュールインタフェース実現部のオブジェクトを生成することを特徴とする請求項1に記載の画像処理装置。
The generating means includes
By serializing Java (registered trademark) objects,
The image processing apparatus according to claim 1, wherein each virtual machine generates an object of an operation module interface realization unit of the same instance capable of calling a method of the operation module by communication between the virtual machines.
前記拡張機能が動作する仮想マシンにおいて、
前記通信インタフェース部は、
仮想マシン上に前記動作モジュールインタフェース実現部が生成されているか否かを判定する判定手段を、有し、
前記受付手段により、前記拡張機能の実行要求を受け付けると、
前記判定手段により、処理の実行が要求された動作モジュールに対応する前記第1の動作モジュールインタフェース実現部の生成有無を判定し、
生成されていないと判定された場合に、
前記生成手段により、他の仮想マシンに対して、処理の実行が要求された動作モジュールに対応する前記第2の動作モジュールインタフェース実現部のオブジェクトの取得を要求し、応答されたオブジェクトを、前記第1の動作モジュールインタフェース実現部のオブジェクトとして生成することを特徴とする請求項2に記載の画像処理装置。
In the virtual machine on which the extension function operates,
The communication interface unit
Determination means for determining whether or not the operation module interface realization unit is generated on a virtual machine;
When receiving the execution request for the extended function by the receiving means,
The determination unit determines whether or not the first operation module interface realization unit corresponding to the operation module requested to execute the process is generated,
If it is determined that it has not been generated,
The generation means requests the other virtual machine to acquire an object of the second operation module interface realization unit corresponding to the operation module requested to execute the process, The image processing apparatus according to claim 2, wherein the image processing apparatus is generated as an object of one operation module interface realization unit.
前記標準機能が動作する仮想マシンにおいて、
前記通信インタフェース部は、
前記拡張機能の実行要求を受け付けた仮想マシンから、前記第2の動作モジュールインタフェース実現部のオブジェクトの取得要求を受け付けると、
前記判定手段により、処理の実行が要求された動作モジュールに対応する前記第2の動作モジュールインタフェース実現部の生成有無を判定し、
生成されていないと判定された場合に、
前記生成手段により、前記動作モジュールの登録情報に基づき、処理の実行が要求された動作モジュールに対応する前記第2の動作モジュールインタフェース実現部のオブジェクトを生成し、生成したオブジェクトを、取得要求元である仮想マシンに応答することを特徴とする請求項3に記載の画像処理装置。
In a virtual machine on which the standard function operates,
The communication interface unit
When an acquisition request for an object of the second operation module interface realization unit is received from a virtual machine that has received the execution request for the extended function,
The determination unit determines whether or not the second operation module interface realization unit corresponding to the operation module requested to execute the process is generated,
If it is determined that it has not been generated,
The generation unit generates an object of the second operation module interface realization unit corresponding to the operation module requested to execute the process based on the registration information of the operation module, and the generated object is obtained at the acquisition request source. The image processing apparatus according to claim 3, wherein the image processing apparatus responds to a certain virtual machine.
前記標準機能が動作する仮想マシンにおいて、
前記生成手段は、
前記通信インタフェース部の起動時に登録された前記動作モジュールのメソッド名及びメソッドパラメータに基づき、処理の実行が要求された動作モジュールに対応する前記第2の動作モジュールインタフェース実現部のオブジェクトを生成することを特徴とする請求項4に記載の画像処理装置。
In a virtual machine on which the standard function operates,
The generating means includes
Based on the method name and method parameter of the operation module registered when the communication interface unit is activated, generating an object of the second operation module interface realizing unit corresponding to the operation module requested to execute the process. The image processing apparatus according to claim 4.
画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる仮想マシン上で動作する環境において、前記標準機能を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有する画像処理装置における仮想マシン間の動作モジュール実行制御方法であって、
前記通信インタフェース部が、
前記仮想マシン上での機能実行要求を受け付ける受付手順と、
前記仮想マシン間通信を行う通信手順と、
前記通信手段のインタフェースと前記動作モジュールとの間に介在し、前記動作モジュールのインタフェースを実現する動作モジュールインタフェース実現部を生成する生成手順と、を有し、
前記受付手順により、前記拡張機能の実行要求を受け付けると、
前記通信手順による仮想マシン間通信により、
前記機能実行要求を受け付けた仮想マシン上で、前記生成手順により生成され動作する第1の動作モジュールインタフェース実現部から、他の仮想マシン上で、前記生成手順により生成され動作する第2の動作モジュールインタフェース実現部を呼び出し、他の仮想マシンが有する前記動作モジュールに実行要求を行うことを特徴とする動作モジュール実行制御方法。
In an environment in which a standard function of an image processing device and an extended function using the standard function operate on different virtual machines, a plurality of operation modules that realize the standard function, and a plurality of operation modules that operate on each virtual machine, An operation module execution control method between virtual machines in an image processing apparatus having a communication interface unit that performs common inter-virtual machine communication for operation modules,
The communication interface unit is
A reception procedure for receiving a function execution request on the virtual machine;
A communication procedure for performing communication between the virtual machines;
A generation procedure for generating an operation module interface realization unit that is interposed between the interface of the communication means and the operation module, and realizes the interface of the operation module;
When an execution request for the extended function is received by the reception procedure,
By communication between virtual machines according to the communication procedure,
A second operation module that is generated and operated by the generation procedure on another virtual machine from the first operation module interface realizing unit that is generated and operated by the generation procedure on the virtual machine that has received the function execution request. An operation module execution control method that calls an interface realization unit and issues an execution request to the operation module of another virtual machine.
画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる仮想マシン上で動作する環境において、前記標準機能を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有する画像処理装置における仮想マシン間の動作モジュール実行制御プログラムであって、
前記通信インタフェース部が動作することにより、
コンピュータを、
前記仮想マシン上での機能実行要求を受け付ける受付手段と、
前記仮想マシン間通信を行う通信手段と、
前記通信手段のインタフェースと前記動作モジュールとの間に介在し、前記動作モジュールのインタフェースを実現する動作モジュールインタフェース実現部を生成する生成手段として機能させ、
前記受付手段により、前記拡張機能の実行要求を受け付けると、
前記通信手段による仮想マシン間通信により、
前記機能実行要求を受け付けた仮想マシン上で、前記生成手段により生成され動作する第1の動作モジュールインタフェース実現部から、他の仮想マシン上で、前記生成手段により生成され動作する第2の動作モジュールインタフェース実現部を呼び出し、他の仮想マシンが有する前記動作モジュールに実行要求を行うように動作させる動作モジュール実行制御プログラム。
In an environment in which a standard function of an image processing device and an extended function using the standard function operate on different virtual machines, a plurality of operation modules that realize the standard function, and a plurality of operation modules that operate on each virtual machine, An operation module execution control program between virtual machines in an image processing apparatus having a communication interface unit that performs common inter-virtual machine communication for the operation modules,
By operating the communication interface unit,
Computer
Accepting means for accepting a function execution request on the virtual machine;
A communication means for performing communication between the virtual machines;
Intervening between the interface of the communication means and the operation module, function as a generation means for generating an operation module interface realization unit for realizing the interface of the operation module;
When receiving the execution request for the extended function by the receiving means,
By communication between virtual machines by the communication means,
A second operation module that is generated and operated by the generation unit on another virtual machine from the first operation module interface realization unit that is generated and operated by the generation unit on the virtual machine that has received the function execution request. An operation module execution control program that calls an interface realization unit and causes an operation request to be issued to the operation module of another virtual machine.
JP2009260260A 2009-11-13 2009-11-13 Image processing apparatus, method and program for controlling operation module execution between virtual machines Pending JP2011107834A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009260260A JP2011107834A (en) 2009-11-13 2009-11-13 Image processing apparatus, method and program for controlling operation module execution between virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009260260A JP2011107834A (en) 2009-11-13 2009-11-13 Image processing apparatus, method and program for controlling operation module execution between virtual machines

Publications (1)

Publication Number Publication Date
JP2011107834A true JP2011107834A (en) 2011-06-02

Family

ID=44231253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009260260A Pending JP2011107834A (en) 2009-11-13 2009-11-13 Image processing apparatus, method and program for controlling operation module execution between virtual machines

Country Status (1)

Country Link
JP (1) JP2011107834A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013149051A (en) * 2012-01-19 2013-08-01 Ricoh Co Ltd Information processing device and program
JP2014059718A (en) * 2012-09-18 2014-04-03 Ricoh Co Ltd Information processor, information processing method, and program
JP2015097061A (en) * 2013-11-15 2015-05-21 株式会社東芝 Information processing apparatus, information processing method, and program
JP2017175501A (en) * 2016-03-25 2017-09-28 京セラドキュメントソリューションズ株式会社 Image forming device and specific information collection program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013149051A (en) * 2012-01-19 2013-08-01 Ricoh Co Ltd Information processing device and program
JP2014059718A (en) * 2012-09-18 2014-04-03 Ricoh Co Ltd Information processor, information processing method, and program
JP2015097061A (en) * 2013-11-15 2015-05-21 株式会社東芝 Information processing apparatus, information processing method, and program
US10275592B2 (en) 2013-11-15 2019-04-30 Kabushiki Kaisha Toshiba Information processing device, information processing method, and computer program product
JP2017175501A (en) * 2016-03-25 2017-09-28 京セラドキュメントソリューションズ株式会社 Image forming device and specific information collection program

Similar Documents

Publication Publication Date Title
US9830135B2 (en) Declarative and pluggable business logic for systems management
JP5259924B2 (en) Dynamic service generation for legacy components
US10656971B2 (en) Agile framework for vertical application development and delivery
Zimmer et al. Beyond BIOS: developing with the unified extensible firmware interface
US20150220308A1 (en) Model-based development
WO2010141387A2 (en) System and method for converting a java application into a virtual server image for cloud deployment
JP4843386B2 (en) Apparatus, information processing method, information processing program, and recording medium
KR102283736B1 (en) Method and apparatus for generating automatically setup code of application software baesed autosar
JP2014170515A (en) Device, information storage program, and information storage method
JP2011123842A (en) Image forming apparatus, function addition method, and program
JP2012018530A (en) Image forming apparatus and application management program
JP7098427B2 (en) Information processing equipment, control methods and programs for information processing equipment
US20130212595A1 (en) Dynamic injection of code into running process
US9626251B2 (en) Undo configuration transactional compensation
JP2011107834A (en) Image processing apparatus, method and program for controlling operation module execution between virtual machines
JP2011061459A (en) Image forming device, installing method and program
CN109660688B (en) Information processing apparatus and control method thereof
JP2011180771A (en) Information processing device, emulation system and emulation program
JP2015197845A (en) Information processing apparatus and control method of the same, and program
JP2011060236A (en) Information processor, development support program, and software integrated development environment
JP5144624B2 (en) Image forming apparatus
Wang et al. On-demand service hosting on production grid infrastructures
JP2011034453A (en) Image processor, information providing method, and information providing program
JP4500326B2 (en) Inter-process communication program and image information processing apparatus
JP3977039B2 (en) Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus