JP2009093361A - Control device and control method for distributed processing - Google Patents

Control device and control method for distributed processing Download PDF

Info

Publication number
JP2009093361A
JP2009093361A JP2007262386A JP2007262386A JP2009093361A JP 2009093361 A JP2009093361 A JP 2009093361A JP 2007262386 A JP2007262386 A JP 2007262386A JP 2007262386 A JP2007262386 A JP 2007262386A JP 2009093361 A JP2009093361 A JP 2009093361A
Authority
JP
Japan
Prior art keywords
application
license
execute
sub
distributed processing
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
JP2007262386A
Other languages
Japanese (ja)
Inventor
Kotaro Matsuda
浩太郎 松田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007262386A priority Critical patent/JP2009093361A/en
Publication of JP2009093361A publication Critical patent/JP2009093361A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an environment for temporarily installing/executing an application for distributed processing in a sub-device as necessary by defining a sub-handle and a sub-license. <P>SOLUTION: A control method for distributed processing includes: a step for accepting an instruction; and a step for controlling the other device to execute required processing to be performed in response to an instruction accepted by the acceptance step, and the control step includes: transmitting a program for installing the required application to the other device in the case of making the other device execute the processing in the other device to the other device; and transmitting a license to permit the other device to execute the application to the other device by adding the license to the program. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、マルチファンクション機器(以下、MFP)あるいは単機能プリンタ(以下、SFP)のアプリケーションプラットフォーム上にアプリケーションをインストール・実行させる制御装置及び制御方法に関する。特に、複数台のデバイス上にアプリケーションを必要に応じて動的に分散させて、処理負荷を分散させる制御装置及び制御方法に関する。   The present invention relates to a control apparatus and a control method for installing and executing an application on an application platform of a multifunction device (hereinafter, MFP) or a single function printer (hereinafter, SFP). In particular, the present invention relates to a control apparatus and a control method for distributing a processing load by dynamically distributing applications on a plurality of devices as necessary.

近年、MFPあるいはSFPなどのデバイスには、Java(登録商標)環境に代表されるようなアプリケーション実行環境が提供されるようになってきている。その環境上で動作するプログラムを開発すれば、デバイスの提供する機能を利用したアプリケーションが作成可能となっている。デバイスが標準で提供しているコピー・スキャン・送信・印刷などのアプリケーション以外のエンドユーザが所望する機能を、他社の機器などに対応する製品を作っているメーカーがアプリケーションとして自由に開発することができる。また、そのアプリケーションをデバイスにインストール・実行することができる。アプリケーションを、販売・頒布する目的において、一般的にはアプリケーションをデバイスにインストールするにはライセンスが必要である。その理由としては、アプリケーションを無制限に配布させないため、また、アプリケーションの配布に対して、ライセンス料金をチャージしたいためである。   In recent years, devices such as MFPs and SFPs have been provided with an application execution environment represented by a Java (registered trademark) environment. If you develop a program that runs in that environment, you can create an application that uses the functions provided by the device. Functions that end users desire other than the applications such as copy, scan, send, and print that are provided by the device as a standard can be freely developed as an application by manufacturers that make products that support devices from other companies. it can. The application can be installed and executed on the device. For the purpose of selling and distributing an application, a license is generally required to install the application on a device. The reason is that the application is not distributed indefinitely and it is desired to charge a license fee for the distribution of the application.

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

複数台のデバイスのうちの1つのデバイス(以下、「メインデバイス」と称す。)がアプリケーションを実行中であるとする。通常時においては、このアプリケーションの処理は、メインデバイスの処理能力で十分に処理可能である。しかし、処理すべきデータが大量にある場合や、印刷ジョブが多数ある場合、他のデバイス(以下、「サブデバイス」と称す。)のリソースも活用して分散処理を図れば、全体の処理時間が短縮され、ユーザにとってはメリットが大きい。ここで分散処理とは、メインデバイスが、本来自ら行うべき処理の一部をサブデバイスに分担させ、そのサブデバイスと共にその処理を実行することを意味する。分散処理の方法としては、例えば、メインデバイスで実行中のアプリケーションと同じものをサブデバイスに予めインストールし実行させておき、処理の分散時には複数台のデバイスが協働して処理を行う方法が考えられる。しかし、一般的に、MFPあるいはSFPは、製造コストを低廉に抑えるために、HDD・メモリなどのリソースを必要最小限しか装備していない。したがって、分散処理を行う時のために通常時は使用されないアプリケーションをサブデバイスに予めインストールし実行させておく上記方法は、サブデバイスのリソースの一部を通常時に無駄に消費することになるという課題がある。そこで、本発明の第1の目的は、分散処理時のみオンデマンドでアプリケーションをサブデバイスにインストール・実行・アンインストールする機構を提供することである。   Assume that one of a plurality of devices (hereinafter referred to as “main device”) is executing an application. In normal times, the processing of this application can be sufficiently processed by the processing capability of the main device. However, if there is a large amount of data to be processed or if there are a large number of print jobs, the entire processing time can be achieved by using distributed resources using resources from other devices (hereinafter referred to as “subdevices”). Is shortened and has great benefits for the user. Here, the distributed processing means that the main device shares a part of the processing that should be originally performed with the sub device and executes the processing together with the sub device. As a distributed processing method, for example, the same application as that being executed on the main device may be installed and executed in advance on the sub-device, and a plurality of devices may cooperate to perform processing when the processing is distributed. It is done. However, in general, MFPs or SFPs are equipped with a minimum amount of resources such as HDDs and memories in order to keep manufacturing costs low. Therefore, the above-described method of preinstalling and executing an application that is not normally used on a sub device in advance for performing distributed processing consumes part of the resources of the sub device normally. There is. Accordingly, a first object of the present invention is to provide a mechanism for installing, executing, and uninstalling an application on a sub-device on demand only during distributed processing.

他方、特許文献1には、クライアント端末の記憶領域を無駄に使用しないために、サーバ側がライセンス数をチェックし、クライアント端末に必要なソフトウェアのみを自動インストールする技術が開示されている。この先行技術はいわゆるフローティングライセンスの形態をとっており、どのクライアント端末にも等価なライセンスが与えられる。   On the other hand, Patent Document 1 discloses a technology in which the server side checks the number of licenses and automatically installs only software necessary for the client terminal in order not to use the storage area of the client terminal wastefully. This prior art takes the form of a so-called floating license, and an equivalent license is given to any client terminal.

前述のように、メインデバイスの処理をサブデバイスに分散したい場合、メインデバイスで常時実行されているアプリケーションに対する正規ライセンスと、分散処理時の一時的インストール専用のライセンスとを区別する必要がある。これは、サブデバイスのリソース使用に制限を設け、無制限に使用させないため、あるいはサブデバイスのリソース使用に対して料金をチャージ可能とするためである。しかし、特許文献1に記載の技術では、等価なライセンスを各クライアント端末に与えるだけなので、分散処理時の一時的インストール・一時的使用を考慮したライセンスの付与はできないという課題がある。そこで、本発明の第2の目的は、分散処理時の一時的インストール専用のライセンスを提供することである。   As described above, when it is desired to distribute the processing of the main device to the sub-devices, it is necessary to distinguish between a regular license for an application that is constantly executed on the main device and a license dedicated to temporary installation at the time of distributed processing. This is because the resource usage of the sub device is limited so as not to be used without limitation, or the fee can be charged for the resource usage of the sub device. However, in the technique described in Patent Document 1, since an equivalent license is only given to each client terminal, there is a problem that a license cannot be granted in consideration of temporary installation and temporary use during distributed processing. Therefore, a second object of the present invention is to provide a license exclusively for temporary installation during distributed processing.

本発明の制御装置は、命令を受付ける受付手段と、受付手段で受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御する制御手段とを有し、制御手段は、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。   The control device according to the present invention includes a receiving unit that receives a command, and a control unit that controls the other device to execute a process that needs to be performed by the command received by the receiving unit. A program for installing an application necessary for causing another device to execute the program to the other device is transmitted to the other device.

本発明の制御方法は、命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを含み、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。   The control method of the present invention includes a step of accepting an instruction, and a step of controlling another apparatus to execute a process that needs to be performed by the instruction accepted in the accepting step. A program for installing an application necessary for causing the device to be executed on the other device is transmitted to the other device.

本発明のコンピュータ読み取り可能な記録媒体は、コンピュータに、命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。   The computer-readable recording medium of the present invention causes a computer to execute a step of receiving an instruction and a step of controlling another apparatus to execute a process that needs to be performed by the instruction received in the receiving step. The computer-readable recording medium having the program recorded therein, the step of controlling transmits a program for installing an application necessary for causing the other device to execute processing to the other device to the other device. It is characterized by doing.

本発明のプログラムは、コンピュータに、命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムであって、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。   A program according to the present invention is a program for causing a computer to execute a step of receiving an instruction and a step of controlling another apparatus to execute a process that needs to be performed by the instruction received in the step of receiving. The controlling step is characterized in that a program for installing an application necessary for causing another device to execute the process to be transmitted to the other device is transmitted to the other device.

本発明によれば、サブバンドルおよびサブライセンスを定義することにより、分散処理用のアプリケーションを必要なときにだけサブデバイスに一時的にインストール・実行する環境を提供できる。これにより、あらかじめアプリケーションをサブデバイスにインストールしておく必要がなくなる。また、分散処理終了時にサブバンドルをアンインストールしてリソースを解放するため、通常時においてはサブデバイスのリソースを有効利用できる。   According to the present invention, by defining sub-bundles and sub-licenses, it is possible to provide an environment in which an application for distributed processing is temporarily installed and executed on a sub-device only when necessary. This eliminates the need to previously install the application on the subdevice. Further, since the resource is released by uninstalling the sub-bundle at the end of distributed processing, the resources of the sub-device can be effectively used in normal times.

本発明によれば、常時実行されるアプリケーションに対する正規ライセンスと、一時的インストール専用のサブライセンスを区別することができるため、サブデバイスのリソース使用に対して料金をチャージ可能な仕組みを提供できる。   According to the present invention, it is possible to distinguish between a regular license for an application that is always executed and a sublicense dedicated to temporary installation, and therefore, it is possible to provide a mechanism capable of charging a fee for resource usage of a subdevice.

以下、添付図面を参照して本発明の好適な実施例を詳細に説明する。   Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図1は、ネットワークを介して相互に通信可能なデバイス群の構成図である。   FIG. 1 is a configuration diagram of a group of devices that can communicate with each other via a network.

図1において、101、102、103は、MFPあるいはSFPなどのデバイスである。これらのデバイスは、印刷をはじめとして、スキャン、ネットワーク通信、ジョブ保存、FAXなどの様々な機能を提供する。各デバイスは、ネットワーク104を介して、相互にデータの送受信を行う。   In FIG. 1, reference numerals 101, 102, and 103 denote devices such as MFPs or SFPs. These devices provide various functions such as printing, scanning, network communication, job storage, and FAX. Each device transmits and receives data to and from each other via the network 104.

MFPは、原稿自動送り部(フィーダ)、スキャナ部、給紙部、定着部、排紙部、フィニッシング装置、排紙トレイなどを備える。SFPは、フィーダ、スキャナ部などが装備されていない単機能プリンタである。   The MFP includes an automatic document feeder (feeder), a scanner unit, a paper feed unit, a fixing unit, a paper discharge unit, a finishing device, a paper discharge tray, and the like. The SFP is a single-function printer that is not equipped with a feeder, a scanner unit, or the like.

デバイスは、UIを提供する操作部(表示画面を含む)、ネットワークインタフェース部、CPU、プログラムやデータを保存するROM、RAM、HDDなどを備える。また、HDDの代わりに不揮発性メモリを備える廉価なデバイスもある。   The device includes an operation unit (including a display screen) that provides a UI, a network interface unit, a CPU, a ROM, a RAM, and an HDD that store programs and data. There is also an inexpensive device that includes a nonvolatile memory instead of the HDD.

図2は、メインデバイス101内のソフトウェア構成図である。   FIG. 2 is a software configuration diagram in the main device 101.

OS201は、デバイスが備えているROMやHDDからプログラムをRAMにロードし、CPUにプログラムを実行させる。   The OS 201 loads a program from a ROM or HDD included in the device into the RAM, and causes the CPU to execute the program.

202は、追加のアプリケーションを実行可能とするプラットフォームである。プラットフォームとは、アプリケーションを動作させる際の基盤となる環境のことである。プラットフォーム202は、例えば、Java(登録商標)仮想マシンおよびライブラリ群などから構成される。開発者は、特定のプログラム言語を用いて、このプラットフォーム上で動作するアプリケーションを容易に開発できる。   Reference numeral 202 denotes a platform that can execute an additional application. A platform is an environment that serves as a basis for running applications. The platform 202 includes, for example, a Java (registered trademark) virtual machine and a library group. Developers can easily develop applications that run on this platform using a specific programming language.

コントローラ203は、デバイス特有の印刷・スキャンなどハードウェアに依存する一部の機能を制御する。   The controller 203 controls some functions depending on hardware such as device-specific printing / scanning.

204は、バンドル管理サービスである。バンドル管理サービスとは、プラットフォーム上に組み込み済みのアプリケーションの一種である。なお、ここではプラットフォーム202上で実行可能なアプリケーションのうち、常時実行されているものをサービス、必要に応じてインストール・実行されるものをアプリケーションと呼ぶこととする。バンドル管理サービス204は、プログラムモジュールの集合であるバンドル205およびライセンス206を受信すると、ライセンスの妥当性をチェックした上で、バンドル205内のプログラムモジュールを、プラットフォーム202を介してインストールする。バンドル管理サービス204がインストールしたプログラムモジュールを起動すると、プログラムモジュールは、プラットフォーム202上でアプリケーション207として実行される。バンドル管理サービス204は、追加のアプリケーションのインストール・起動・停止・アンインストールなどのライフサイクル管理を担当する。   Reference numeral 204 denotes a bundle management service. A bundle management service is a type of application that is already built on the platform. Here, among the applications that can be executed on the platform 202, an application that is always executed is referred to as a service, and an application that is installed and executed as necessary is referred to as an application. When the bundle management service 204 receives the bundle 205 and the license 206 that are a set of program modules, the bundle management service 204 checks the validity of the license and then installs the program module in the bundle 205 via the platform 202. When the program module installed by the bundle management service 204 is activated, the program module is executed as an application 207 on the platform 202. The bundle management service 204 is responsible for life cycle management such as installation, activation, termination, and uninstallation of additional applications.

図3は、分散処理を考慮した場合の、メインデバイス101にインストール可能なアプリケーションのインストールモジュール301の構成図である。   FIG. 3 is a configuration diagram of an application installation module 301 that can be installed in the main device 101 in consideration of distributed processing.

アプリケーションが常時実行されているメインデバイスを101とし、分散処理時にのみアプリケーションが一時的にインストール・実行されるサブデバイスを102とする。メインバンドル302は、メインデバイス101で実行されるプログラムモジュールの集合である。インストールモジュール301をメインデバイス101にインストールすると、メインバンドル302のプログラムモジュールが実行可能な状態になる。メインバンドルをメインデバイス101にインストールする時に、メインライセンス303が用いられ、メインバンドルのインストール妥当性がチェックされる。   Assume that a main device in which an application is always executed is 101, and a sub device in which the application is temporarily installed and executed only during distributed processing is 102. The main bundle 302 is a set of program modules executed by the main device 101. When the installation module 301 is installed in the main device 101, the program module of the main bundle 302 becomes executable. When installing the main bundle in the main device 101, the main license 303 is used to check the validity of the main bundle installation.

サブバンドル304は、サブデバイスで実行されるプログラムモジュールの集合である。サブバンドル304は、サブデバイスで実行されるアプリケーションや、そのアプリケーションをサブデバイスにインストールするためのプログラムを含む。   The sub-bundle 304 is a set of program modules executed by the sub-device. The sub-bundle 304 includes an application executed on the sub-device and a program for installing the application on the sub-device.

305、306、307は、分散処理時の一時的インストール専用のサブライセンスであり、サブデバイスにサブバンドルをインストールする時に使用される。すなわち、サブライセンスがないとサブバンドルをサブデバイスにインストールできず、アプリケーションを実行することができない。サブライセンスは、上記アプリケーションを実行するために必要なライセンスであり、また、サブバンドルをインストールするために必要なライセンスである。   305, 306, and 307 are sublicenses dedicated to temporary installation during distributed processing, and are used when installing a subbundle on a subdevice. That is, if there is no sublicense, the subbundle cannot be installed in the subdevice, and the application cannot be executed. The sub license is a license necessary for executing the application, and is a license necessary for installing the sub bundle.

なお、メインデバイスにインストールされているアプリケーションと、サブデバイスにインストールされているアプリケーションは、以下の点で異なる。   Note that an application installed on the main device and an application installed on the sub device differ in the following points.

処理の実行が終了した際に、メインデバイス101のアプリケーションは、そのことをメインデバイスの表示画面に表示するように構成されている。これに対して、サブデバイス102のアプリケーションは、サブデバイス102でやるべき処理の実行が終了しても、そのことを特にサブデバイス102の表示画面に表示する構成とはなっていない。   When the execution of the process is finished, the application of the main device 101 is configured to display that on the display screen of the main device. On the other hand, the application of the sub device 102 is not configured to display this on the display screen of the sub device 102 even when execution of processing to be performed by the sub device 102 is completed.

図4は、サブバンドルのマニフェストおよびサブライセンスの記述内容を示す図である。   FIG. 4 is a diagram showing the description contents of the sub-bundle manifest and sub-license.

マニフェスト401には、サブバンドル404がアプリケーションとして動作する際の種々の情報が記述されている。402は、バンドルタイプがサブバンドルであることを示す識別子である。403は、アプリケーションを特定するための固有のIDである。404および405は、このサブバンドルがインストール・実行するのに必要なメモリ領域およびファイル領域のサイズを表している。406、407、408は、このサブバンドルがデバイス上でアプリケーションとして実行される際に、デバイスの具備するどの機能を使用するかを示す識別子のリストである。406〜408には、カラー印刷機能、PDFダイレクト印刷機能及びステイプルの機能を使用することが記述されている。   The manifest 401 describes various information when the sub-bundle 404 operates as an application. Reference numeral 402 denotes an identifier indicating that the bundle type is a sub-bundle. Reference numeral 403 denotes a unique ID for specifying an application. Reference numerals 404 and 405 represent the sizes of the memory area and the file area required for the installation and execution of this sub-bundle. Reference numerals 406, 407, and 408 denote lists of identifiers indicating which functions of the device are used when this sub-bundle is executed as an application on the device. Reference numerals 406 to 408 describe the use of a color printing function, a PDF direct printing function, and a stapling function.

サブライセンス411には、412〜414の情報が記述されている。412は、このライセンスがサブバンドルに対するライセンスであることを示す識別子である。413は、ライセンス対象のアプリケーションを特定するための固有のIDである。414は、ライセンスの発行を管理するためのシリアルIDである。   In the sublicense 411, information 412 to 414 is described. Reference numeral 412 denotes an identifier indicating that this license is a license for a sub-bundle. Reference numeral 413 denotes a unique ID for specifying the licensed application. Reference numeral 414 denotes a serial ID for managing license issuance.

図5は、分散処理時のメインデバイスとサブデバイスにおける指示の流れを説明するための図である。   FIG. 5 is a diagram for explaining the flow of instructions in the main device and sub-device during distributed processing.

501a、501bは、分散処理実行アシストサービスであり、各アプリケーションからの分散処理に関するAPI呼び出し、および、各アプリケーションへの分散処理に関するイベント通知を担当する。   Reference numerals 501a and 501b denote distributed processing execution assist services, which are responsible for API calls related to distributed processing from each application and event notification related to distributed processing to each application.

メインデバイス101において、インストールモジュール301がインストール済みで、メインバンドル302およびメインライセンス303によって、アプリケーション503aが実行中である。この間、まだ未使用のサブバンドル304およびサブライセンス305〜307は、バンドル管理サービス204によって、HDDなどの記憶領域に保持されている。   In the main device 101, the installation module 301 has been installed, and the application 503a is being executed by the main bundle 302 and the main license 303. During this time, the unused sub-bundle 304 and the sub-licenses 305 to 307 are held in a storage area such as an HDD by the bundle management service 204.

図6は、分散処理時においてメインデバイスとサブデバイスが実行する処理の流れを示すフローチャートである。   FIG. 6 is a flowchart showing the flow of processing executed by the main device and sub-device during distributed processing.

以下、図5と図6を参照して、分散処理時においてメインデバイス101とサブデバイス102の各々が実行する処理の流れを説明する。   Hereinafter, with reference to FIG. 5 and FIG. 6, the flow of processing executed by each of the main device 101 and the sub device 102 during distributed processing will be described.

メインデバイス101は、アプリケーション503aを実行中である(S601)。   The main device 101 is executing the application 503a (S601).

なお、メインデバイス101(の受付手段)は、以下の場合にアプリケーション503aの実行を開始する。
・アプリケーション503aによって行われるべき処理を行う旨を指示した命令が他の装置からメインデバイス101に入力され、メインデバイス101は、その命令を受け付けた。
・アプリケーション503aによって行われるべき処理を行う旨を指示した命令がユーザからメインデバイス101に入力され、メインデバイス101は、その命令を受け付けた。
・アプリケーション503aによって行われるべき処理を行う旨を指示した命令がメインデバイス101内で生成され、メインデバイス101は、その命令を認識した。
The main device 101 (accepting means) starts executing the application 503a in the following cases.
A command instructing to perform processing to be performed by the application 503a is input to the main device 101 from another apparatus, and the main device 101 receives the command.
A command instructing to perform processing to be performed by the application 503a is input from the user to the main device 101, and the main device 101 receives the command.
A command instructing to perform processing to be performed by the application 503a is generated in the main device 101, and the main device 101 recognizes the command.

メインデバイス101は、アプリケーション503aの実行中に、大量のデータを処理しなければならないケース等の分散処理が必要なケースが発生したかどうかを判定する(S602)。   The main device 101 determines whether a case requiring distributed processing such as a case where a large amount of data has to be processed has occurred during execution of the application 503a (S602).

分散処理が必要なケースが発生したと判定した場合、アプリケーション503aは、分散処理実行アシストサービス501aに対してAPI呼出しを行う。そのAPI呼出しを受けた分散処理実行アシストサービス501aは、同一セグメント内の全てのサブデバイスに対して、搭載能力、余剰リソース及びジョブ状況を問い合わせる(S603)。   If it is determined that a case requiring distributed processing has occurred, the application 503a calls an API to the distributed processing execution assist service 501a. Upon receiving the API call, the distributed processing execution assist service 501a inquires all the sub-devices in the same segment about the mounting capacity, the surplus resources, and the job status (S603).

尚、セグメントとは、ネットワークで分離されているセグメントや、複数のデバイスで構成されたグループなど、あるルールに従ってまとめられたデバイスの集合のことである。   A segment is a set of devices grouped according to a certain rule, such as a segment separated by a network or a group composed of a plurality of devices.

サブデバイス102の分散処理実行アシストサービス501bは、上記の問い合わせに対する回答を分散処理実行アシストサービス501aに返信する(S604)。   The distributed processing execution assist service 501b of the subdevice 102 returns an answer to the above inquiry to the distributed processing execution assist service 501a (S604).

回答を受け取った分散処理実行アシストサービス501aは、サブバンドル304のマニフェスト401に記述された必要なメモリ領域404とファイル領域405、必要な搭載機能406〜408を参照する。次いで、分散処理実行アシストサービス501aは、それらの条件をすべて満たすサブデバイス(分散処理可能なサブデバイス)が存在するか否かを判定する(S605)。   The distributed processing execution assist service 501a that has received the response refers to the necessary memory area 404 and file area 405 and the necessary installed functions 406 to 408 described in the manifest 401 of the sub-bundle 304. Next, the distributed processing execution assist service 501a determines whether or not there are subdevices (subdevices capable of distributed processing) that satisfy all of these conditions (S605).

尚、この判定を行うに当たり、上記条件をすべて満たすデバイスであっても、そのときのジョブ状況が混雑しているサブデバイスは分散処理の対象外としてもよい。   In making this determination, even if the device satisfies all the above conditions, the sub-device in which the job status at that time is congested may be excluded from the target of distributed processing.

分散処理実行アシストサービス501aは、分散処理可能なサブデバイスが存在すると判定した場合、そのサブデバイスにアプリケーション503aの分散処理を実行させるか否かをユーザに選択させる。具体的には、分散処理実行アシストサービス501aは、分散処理を実行するか否かをユーザに選択させるための表示画面(確認画面)を操作部に表示させる(S606)。   When the distributed processing execution assist service 501a determines that there is a sub-device capable of distributed processing, the distributed processing execution assist service 501a allows the user to select whether or not to execute the distributed processing of the application 503a on the sub-device. Specifically, the distributed processing execution assist service 501a displays on the operation unit a display screen (confirmation screen) for allowing the user to select whether or not to execute the distributed processing (S606).

メインデバイス101は、ユーザによる選択にしたがい、分散処理を実行するか否かを判定する(S607)。   The main device 101 determines whether to execute distributed processing according to the selection by the user (S607).

なお、分散処理を実行するか否かの判定をユーザの選択によらないで自動的に行う構成としてもよい。例えば、アイドル状態のサブデバイスに強制的に処理を分散させる構成としてもよい。   Note that it may be configured to automatically determine whether to execute the distributed processing without depending on the user's selection. For example, the processing may be forcibly distributed to idle sub-devices.

分散処理を実行すると判定した場合、メインデバイス101の分散処理実行アシストサービス501aは、サブデバイス102の分散処理実行アシストサービス501bに対してサブバンドル304およびサブライセンス305を送信する(S608)。サブバンドル304の送信により、命令により行う必要の生じた処理をサブデバイス102に実行させる上で必要なアプリケーションをサブデバイス102にインストールするためのプログラムが送信されることになる。また、サブライセンス305の送信により、上記必要なアプリケーションをサブデバイス102で使用することを許可するためのライセンスが送信されることになる。すなわち、メインデバイス101は、受付けた命令により行う必要の生じた処理をサブデバイス102(他の装置)に実行させるように制御する手段を有する。そして、その制御する手段は、その処理をサブデバイス102に実行させる上で必要なアプリケーションをサブデバイス102にインストールするためのプログラムを、サブデバイス102に送信する。   When it is determined to execute the distributed processing, the distributed processing execution assist service 501a of the main device 101 transmits the sub-bundle 304 and the sublicense 305 to the distributed processing execution assist service 501b of the sub device 102 (S608). By transmitting the sub-bundle 304, a program for installing in the sub-device 102 an application necessary for causing the sub-device 102 to execute processing that needs to be performed by an instruction is transmitted. In addition, transmission of the sublicense 305 transmits a license for permitting the subdevice 102 to use the necessary application. That is, the main device 101 has means for controlling the sub device 102 (another apparatus) to execute processing that needs to be performed according to the received instruction. Then, the controlling means transmits to the sub device 102 a program for installing an application necessary for causing the sub device 102 to execute the processing.

サブデバイス102の分散処理実行アシストサービス501bは、サブバンドル304およびサブライセンス305を受信すると、バンドル管理サービス502bを用いて、インストール・起動を行う(S609)。これにより、サブバンドル304のプログラムモジュールは、アプリケーション503bとして、サブデバイス102上で実行中となる。   When receiving the sub-bundle 304 and the sub-license 305, the distributed processing execution assist service 501b of the sub-device 102 performs installation and activation using the bundle management service 502b (S609). As a result, the program module of the sub-bundle 304 is being executed on the sub-device 102 as the application 503b.

バンドル管理サービス502bは、インストール・起動に成功すると、分散処理実行アシストサービ501bを介して、アプリケーション起動イベントを分散処理実行アシストサービス501aへ送信する(S610)。   When the bundle management service 502b is successfully installed and activated, the bundle management service 502b transmits an application activation event to the distributed processing execution assist service 501a via the distributed processing execution assist service 501b (S610).

分散処理実行アシストサービス501aは、受信したアプリケーション起動イベントをアプリケーション503aにわたす(S611)。   The distributed processing execution assist service 501a passes the received application activation event to the application 503a (S611).

アプリケーション503aは、アプリケーション起動イベントを受け取ると、分散処理実行アシストサービス501aを介して、サブデバイス102に割り当てる分散処理用データをサブデバイス102に送信する(S612)。ここで、分散処理用データとは、サブデバイス102がある処理を実行するために必要なデータのことである。また、ある処理とは、受付けた命令により行う必要の生じた処理の全部又は一部のことである。また、アプリケーション503aは、上記の分散処理用データを送信した後に、分散処理の開始指示をサブデバイス102に送信する(S612)。   Upon receiving the application activation event, the application 503a transmits the distributed processing data to be assigned to the sub device 102 to the sub device 102 via the distributed processing execution assist service 501a (S612). Here, the distributed processing data is data necessary for executing a certain process by the sub device 102. A certain process is a part or all of a process that needs to be performed by an accepted instruction. In addition, after transmitting the distributed processing data, the application 503a transmits a distributed processing start instruction to the sub device 102 (S612).

分散処理実行アシストサービス501bは、分散処理用データと分散処理の開始指示を受け取ると、アプリケーション503bに分散処理の開始指示を出す(S613)。開始指示を受けたアプリケーション503bは、分散処理を実行する。アプリケーション503bは、分散処理を終了すると、分散処理実行アシストサービス501bを介して、分散処理の終了イベントを分散処理実行アシストサービス501aに送信する(S614)。   Upon receiving the distributed processing data and the distributed processing start instruction, the distributed processing execution assist service 501b issues a distributed processing start instruction to the application 503b (S613). Receiving the start instruction, the application 503b executes distributed processing. When the application 503b finishes the distributed process, the application 503b transmits a distributed process end event to the distributed process execution assist service 501a via the distributed process execution assist service 501b (S614).

分散処理実行アシストサービス501aは、受け取った終了イベントをアプリケーション503aにわたす(S615)。終了イベントを受け取ったアプリケーション503aは、サブデバイス102に割り当てた処理が正常終了したことを確認する。   The distributed processing execution assist service 501a passes the received end event to the application 503a (S615). The application 503a that has received the end event confirms that the process assigned to the sub device 102 has ended normally.

分散処理実行アシストサービス501bは、ハンドル管理サービス502bを用いて、サブバンドル304をアンインストールする。また、分散処理実行アシストサービス501bは、サブライセンスを分散処理実行アシストサービス501aに返却する(S616)。   The distributed processing execution assist service 501b uninstalls the sub-bundle 304 using the handle management service 502b. The distributed processing execution assist service 501b returns the sublicense to the distributed processing execution assist service 501a (S616).

さらに、サブデバイスがサブライセンスを使用した際のそのライセンスフィーは、そのサブデバイスにサブライセンスを送ったメインデバイスに保存されているメインラインセンスのライセンスフィーとしてかかる。   Further, the license fee when the subdevice uses the sublicense is applied as the license fee of the main license stored in the main device that sent the sublicense to the subdevice.

分散処理実行アシストサービス501aは、返却されたライセンスを回収する(S617)。   The distributed processing execution assist service 501a collects the returned license (S617).

図7は、分散処理時においてサブデバイス102のアプリケーション503bでエラーが発生した場合にメインデバイス101とサブデバイス102が実行する処理の流れを示すフローチャートである。   FIG. 7 is a flowchart showing a flow of processing executed by the main device 101 and the sub device 102 when an error occurs in the application 503b of the sub device 102 during distributed processing.

分散処理実行中に、サブデバイス102のアプリケーション503bでエラーが発生したとする(S701)。   Assume that an error has occurred in the application 503b of the subdevice 102 during the execution of distributed processing (S701).

アプリケーション503bは、分散処理実行アシストサービス501bを介して、エラー終了イベントを分散処理実行アシストサービス501aに送信する(S702)。   The application 503b transmits an error end event to the distributed processing execution assist service 501a via the distributed processing execution assist service 501b (S702).

分散処理実行アシストサービス501aは、受信した終了イベントをアプリケーション503aに通知する(S703)。   The distributed processing execution assist service 501a notifies the received end event to the application 503a (S703).

分散処理実行アシストサービス501bは、バンドル管理サービス502bを用いて、アプリケーション503bを停止し、サブバンドルをアンインストールすると共にサブライセンスを分散処理実行アシストサービス501aに返却する(S704)。   The distributed processing execution assist service 501b uses the bundle management service 502b to stop the application 503b, uninstall the sub-bundle, and return the sub license to the distributed processing execution assist service 501a (S704).

分散処理実行アシストサービス501aは、返却されたライセンスを回収し、再度利用可能な状態に戻す(S705)。   The distributed processing execution assist service 501a collects the returned license and returns it to a usable state again (S705).

エラー終了イベントを受信したアプリケーション503aは、サブデバイス102で処理されなかったデータ(未処理データ)を他のサブデバイスに転送するか否かを判定する(S706)。   The application 503a that has received the error end event determines whether to transfer data that has not been processed by the subdevice 102 (unprocessed data) to another subdevice (S706).

アプリケーション503aは、他のサブデバイスに転送しないと判定した場合、自ら未処理データを処理する(S711)。   If the application 503a determines not to transfer to another sub-device, the application 503a itself processes the unprocessed data (S711).

他のサブデバイスに転送する場合は、メインデバイス101は、図6のステップS603と同様にサブデバイスに問い合わせを行う(S707)。   When transferring to another sub device, the main device 101 makes an inquiry to the sub device in the same manner as in step S603 of FIG. 6 (S707).

メインデバイス101は、図6のS605と同様に、分散処理を実行可能なサブデバイスが存在するかどうかを判定する(S708)。メインデバイス101は、分散処理を実行可能なサブデバイスが存在しないと判定した場合は、自ら未処理データを処理する(S711)。   The main device 101 determines whether there is a sub-device that can execute the distributed processing, as in S605 of FIG. 6 (S708). If the main device 101 determines that there is no sub-device capable of performing distributed processing, the main device 101 itself processes unprocessed data (S711).

メインデバイス101は、分散処理を実行可能なサブデバイス103が存在すると判定した場合、図6のS608と同様に、サブバンドルとサブライセンスをサブデバイス103に送信する(S709)。   If the main device 101 determines that there is a sub-device 103 capable of performing distributed processing, it transmits the sub-bundle and sub-license to the sub-device 103 as in S608 of FIG. 6 (S709).

サブデバイス103は、図6のS609〜S616の処理と同様に分散処理を行う(S710)。   The sub device 103 performs distributed processing in the same manner as the processing of S609 to S616 in FIG. 6 (S710).

(その他の実施例)
本発明は、前述の実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に装着し、システム等のコンピュータが記録媒体からプログラムコードを読み取り実行することによっても達成される。記録媒体はコンピュータ読み取り可能な記録媒体である。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成する。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現されてもよい。また、記録媒体から読み出されたプログラムコードが、コンピュータの機能拡張カードや機能拡張ユニットに書込まれた後、機能拡張カード等がプログラムコードの指示に基づき処理の一部または全部を行うことで、前述の実施例を実現してもよい。
(Other examples)
The present invention can also be achieved by mounting a recording medium on which a program code of software for realizing the functions of the above-described embodiments is recorded in a system or apparatus, and a computer such as the system reads and executes the program code from the recording medium. . The recording medium is a computer-readable recording medium. In this case, the program code read from the recording medium itself realizes the functions of the above-described embodiments, and the recording medium storing the program code constitutes the present invention. Further, based on the instruction of the program code, an operating system (OS) running on the computer may perform part or all of the actual processing, and the functions of the above-described embodiments may be realized by the processing. In addition, after the program code read from the recording medium is written to the function expansion card or function expansion unit of the computer, the function expansion card or the like performs part or all of the processing based on the instruction of the program code. The embodiments described above may be implemented.

本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納される。   When the present invention is applied to the recording medium, the recording medium stores program codes corresponding to the flowcharts described above.

ネットワークを介して相互に通信可能なデバイス群の構成図である。It is a block diagram of the device group which can communicate mutually via a network. メインデバイス内のソフトウェア構成図である。It is a software block diagram in a main device. 分散処理を考慮した場合の、メインデバイスにインストール可能なアプリケーションのインストールモジュールの構成図である。It is a block diagram of the installation module of the application which can be installed in a main device when the distributed processing is considered. サブバンドルのマニフェストおよびサブライセンスの記述内容を示す図である。It is a figure which shows the description content of the manifest of a subbundle, and a sublicense. 分散処理時のメインデバイスとサブデバイスにおける指示の流れを説明するための図である。It is a figure for demonstrating the flow of the instruction | indication in the main device at the time of a distributed process, and a subdevice. 分散処理時においてメインデバイスとサブデバイスが実行する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which a main device and a subdevice perform at the time of a distributed process. 分散処理時においてサブデバイスのアプリケーションでエラーが発生した場合にメインデバイスとサブデバイスが実行する処理の流れを示すフローチャートである。10 is a flowchart illustrating a flow of processing executed by a main device and a sub device when an error occurs in an application of a sub device during distributed processing.

符号の説明Explanation of symbols

101、102、103 デバイス
104 ネットワーク
201 OS
202 プラットフォーム
203 コントローラ
204 バンドル管理サービス
205 バンドル
206 ライセンス
207 アプリケーション
301 インストールモジュール
302 メインバンドル
303 メインライセンス
304 サブバンドル
305、306、307 サブライセンス
401 マニフェスト
402 バンドルタイプ識別子
403 アプリケーションID
404、405 必要リソース容量
406、407、408 必要機能リスト
411 サブライセンス
412 バンドルタイプ識別子
413 アプリケーションID
414 ライセンスシリアルID
501a、501b 分散処理実行アシストサービス
502b バンドル管理サービス
503a アプリケーション(メインバンドルに対応)
503b アプリケーション(サブバンドルに対応)
101, 102, 103 Device 104 Network 201 OS
202 Platform 203 Controller 204 Bundle Management Service 205 Bundle 206 License 207 Application 301 Install Module 302 Main Bundle 303 Main License 304 Sub Bundle 305, 306, 307 Sub License 401 Manifest 402 Bundle Type Identifier 403 Application ID
404, 405 Required resource capacity 406, 407, 408 Required function list 411 Sublicense 412 Bundle type identifier 413 Application ID
414 License serial ID
501a, 501b Distributed processing execution assist service 502b Bundle management service 503a Application (corresponding to main bundle)
503b Application (supports sub-bundle)

Claims (9)

命令を受付ける受付手段と、
前記受付手段で受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御する制御手段とを有し、
前記制御手段は、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とする制御装置。
An accepting means for accepting orders;
Control means for controlling the other apparatus to execute processing that has been required to be performed by the instruction received by the receiving means,
The control device transmits to the other device a program for installing an application necessary for causing the other device to execute the processing on the other device.
前記制御手段は、前記アプリケーションを前記他の装置に実行させることを許可するためのライセンスを、前記プログラムに加えて前記他の装置に送信することを特徴とする請求項1に記載の制御装置。   The control device according to claim 1, wherein the control unit transmits a license for allowing the other device to execute the application to the other device in addition to the program. 前記制御装置もライセンスを有しており、
前記制御手段が前記他の装置に送信するライセンスは、前記制御装置が有しているライセンスと異なり、一時的な使用が許されるライセンスであることを特徴とする請求項2に記載の制御装置。
The control device also has a license,
3. The control apparatus according to claim 2, wherein the license transmitted by the control unit to the other apparatus is a license that allows temporary use, unlike a license that the control apparatus has.
前記制御装置も自ら前記処理を実行するために必要なアプリケーションを有しており、
当該アプリケーションは、前記処理を他の装置に実行させる上で必要なアプリケーションとは異なり、前記処理の実行が終了した際に終了した旨をユーザに確認させるための表示画面を示すことが可能であることを特徴とする請求項1〜3の何れか1項に記載の制御装置。
The control device also has an application necessary to execute the processing by itself,
The application can display a display screen for allowing the user to confirm that the process has been completed when the process is completed, unlike an application necessary for causing another apparatus to execute the process. The control device according to claim 1, wherein the control device is a control device.
前記他の装置は、前記処理の実行が終了した際に終了した旨をユーザに確認させるための表示をしないことを特徴とする請求項4に記載の制御装置。   The control apparatus according to claim 4, wherein the other apparatus does not display a message for confirming that the process is completed when the execution of the process is completed. 前記他の装置が前記一時的な使用が許されるライセンスを使用した際の当該ライセンスフィーは、当該他の装置に当該ライセンスを送った前記制御装置に保存されているライセンスのライセンスフィーとしてかかることを特徴とする請求項3記載の制御装置。   The license fee when the other device uses the license that is allowed to be temporarily used is the license fee of the license stored in the control device that sent the license to the other device. The control device according to claim 3, wherein 命令を受付けるステップと、
前記受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを含み、
前記制御するステップは、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とする制御方法。
Receiving a command;
Controlling to cause another device to execute the process that has been required to be performed by the instruction received in the step of receiving,
The control step includes transmitting to the other device a program for installing an application necessary for causing the other device to execute the processing on the other device.
コンピュータに、
命令を受付けるステップと、
前記受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記制御するステップは、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とするコンピュータ読み取り可能な記録媒体。
On the computer,
Receiving a command;
A computer-readable recording medium storing a program for executing a process for controlling another apparatus to execute a process that needs to be performed by the instruction received in the receiving step,
The step of controlling transmits to the other device a program for installing an application necessary for causing the other device to execute the process to the other device. Medium.
コンピュータに、
命令を受付けるステップと、
前記受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムであって、
前記制御するステップは、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とするプログラム。
On the computer,
Receiving a command;
A program for performing control to cause another apparatus to execute processing that needs to be performed by the instruction received in the step of receiving,
The controlling step transmits to the other device a program for installing an application necessary for causing the other device to execute the process on the other device.
JP2007262386A 2007-10-05 2007-10-05 Control device and control method for distributed processing Pending JP2009093361A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007262386A JP2009093361A (en) 2007-10-05 2007-10-05 Control device and control method for distributed processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007262386A JP2009093361A (en) 2007-10-05 2007-10-05 Control device and control method for distributed processing

Publications (1)

Publication Number Publication Date
JP2009093361A true JP2009093361A (en) 2009-04-30

Family

ID=40665301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007262386A Pending JP2009093361A (en) 2007-10-05 2007-10-05 Control device and control method for distributed processing

Country Status (1)

Country Link
JP (1) JP2009093361A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138434A (en) * 2009-12-29 2011-07-14 Sharp Corp Apparatus and method for controlling operation, license providing system, operation control program and recording medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138434A (en) * 2009-12-29 2011-07-14 Sharp Corp Apparatus and method for controlling operation, license providing system, operation control program and recording medium

Similar Documents

Publication Publication Date Title
JP5261113B2 (en) System, server, image forming apparatus, control method, and program
RU2336558C1 (en) Device for image processing and control method for it
KR101580710B1 (en) Management device, information processing system, management method, and storage medium
JP5630237B2 (en) Electronics
JP2004005417A (en) Software management through bundling
JP2006330940A (en) Print control method, print setting management system and software distribution server
JP2009175885A (en) Information processing apparatus, information processing system, information processing method, and information processing program
US8564813B2 (en) Distributed printing system, print control method for determining printing output locations according to content and estimated time information, and program
EP2615545B1 (en) Apparatus, control method, and storage medium
CN1725202A (en) Data processing system, data generating device and data outputting device
JP2003122537A (en) License management device and management system
JP4533251B2 (en) Information processing system and job assignment method
JP2007272458A (en) Information processor, information processing system, and information processing method
JP2007323641A (en) System and method for electronic document output request processing control
JP2005352697A (en) Computer system, and allocating method for job of the system
JP2011159232A (en) Image processing device, consumables ordering method and consumables ordering program
CN103853578A (en) Information processing system and information processing method
JP2010072860A (en) Electronic equipment, remote management system, control method, program, and recording medium
JP2008134702A (en) Information processing system, information processor, and information processing method
EP2234014A2 (en) Information processing apparatus, information processing method, and information processing system
JP2009093361A (en) Control device and control method for distributed processing
JP7282507B2 (en) Information processing device, server device, control method, control program
JP2012091422A (en) Image forming apparatus and control method thereof
JP6738723B2 (en) Point management system, information processing device, point management method, and program
US20080307416A1 (en) Device management apparatus, device management method, and storage medium