(57)【要約】【課題】サブバンドルおよびサブライセンスを定義することにより、分散処理用のアプリケーションを必要なときにだけサブデバイスに一時的にインストール・実行する環境を提供する。【解決手段】命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを含み、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信する。制御するステップは、アプリケーションを他の装置に実行させることを許可するためのライセンスを、プログラムに加えて他の装置に送信する。【選択図】図６
2009093361.tif 000002
【特許請求の範囲】
【請求項１】
命令を受付ける受付手段と、
前記受付手段で受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御する制御手段とを有し、
前記制御手段は、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とする制御装置。
【請求項２】
前記制御手段は、前記アプリケーションを前記他の装置に実行させることを許可するためのライセンスを、前記プログラムに加えて前記他の装置に送信することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御装置もライセンスを有しており、
前記制御手段が前記他の装置に送信するライセンスは、前記制御装置が有しているライセンスと異なり、一時的な使用が許されるライセンスであることを特徴とする請求項２に記載の制御装置。
【請求項４】
前記制御装置も自ら前記処理を実行するために必要なアプリケーションを有しており、
当該アプリケーションは、前記処理を他の装置に実行させる上で必要なアプリケーションとは異なり、前記処理の実行が終了した際に終了した旨をユーザに確認させるための表示画面を示すことが可能であることを特徴とする請求項１〜３の何れか１項に記載の制御装置。
【請求項５】
前記他の装置は、前記処理の実行が終了した際に終了した旨をユーザに確認させるための表示をしないことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記他の装置が前記一時的な使用が許されるライセンスを使用した際の当該ライセンスフィーは、当該他の装置に当該ライセンスを送った前記制御装置に保存されているライセンスのライセンスフィーとしてかかることを特徴とする請求項３記載の制御装置。
【請求項７】
命令を受付けるステップと、
前記受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを含み、
前記制御するステップは、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とする制御方法。
【請求項８】
コンピュータに、
命令を受付けるステップと、
前記受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記制御するステップは、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項９】
コンピュータに、
命令を受付けるステップと、
前記受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムであって、
前記制御するステップは、前記処理を他の装置に実行させる上で必要なアプリケーションを前記他の装置にインストールするためのプログラムを、前記他の装置に送信することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチファンクション機器（以下、ＭＦＰ）あるいは単機能プリンタ（以下、ＳＦＰ）のアプリケーションプラットフォーム上にアプリケーションをインストール・実行させる制御装置及び制御方法に関する。特に、複数台のデバイス上にアプリケーションを必要に応じて動的に分散させて、処理負荷を分散させる制御装置及び制御方法に関する。
【背景技術】
【０００２】
近年、ＭＦＰあるいはＳＦＰなどのデバイスには、Ｊａｖａ（登録商標）環境に代表されるようなアプリケーション実行環境が提供されるようになってきている。その環境上で動作するプログラムを開発すれば、デバイスの提供する機能を利用したアプリケーションが作成可能となっている。デバイスが標準で提供しているコピー・スキャン・送信・印刷などのアプリケーション以外のエンドユーザが所望する機能を、他社の機器などに対応する製品を作っているメーカーがアプリケーションとして自由に開発することができる。また、そのアプリケーションをデバイスにインストール・実行することができる。アプリケーションを、販売・頒布する目的において、一般的にはアプリケーションをデバイスにインストールするにはライセンスが必要である。その理由としては、アプリケーションを無制限に配布させないため、また、アプリケーションの配布に対して、ライセンス料金をチャージしたいためである。
【０００３】
【特許文献１】特開２００５−２０８９３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
複数台のデバイスのうちの１つのデバイス（以下、「メインデバイス」と称す。）がアプリケーションを実行中であるとする。通常時においては、このアプリケーションの処理は、メインデバイスの処理能力で十分に処理可能である。しかし、処理すべきデータが大量にある場合や、印刷ジョブが多数ある場合、他のデバイス（以下、「サブデバイス」と称す。）のリソースも活用して分散処理を図れば、全体の処理時間が短縮され、ユーザにとってはメリットが大きい。ここで分散処理とは、メインデバイスが、本来自ら行うべき処理の一部をサブデバイスに分担させ、そのサブデバイスと共にその処理を実行することを意味する。分散処理の方法としては、例えば、メインデバイスで実行中のアプリケーションと同じものをサブデバイスに予めインストールし実行させておき、処理の分散時には複数台のデバイスが協働して処理を行う方法が考えられる。しかし、一般的に、ＭＦＰあるいはＳＦＰは、製造コストを低廉に抑えるために、ＨＤＤ・メモリなどのリソースを必要最小限しか装備していない。したがって、分散処理を行う時のために通常時は使用されないアプリケーションをサブデバイスに予めインストールし実行させておく上記方法は、サブデバイスのリソースの一部を通常時に無駄に消費することになるという課題がある。そこで、本発明の第１の目的は、分散処理時のみオンデマンドでアプリケーションをサブデバイスにインストール・実行・アンインストールする機構を提供することである。
【０００５】
他方、特許文献１には、クライアント端末の記憶領域を無駄に使用しないために、サーバ側がライセンス数をチェックし、クライアント端末に必要なソフトウェアのみを自動インストールする技術が開示されている。この先行技術はいわゆるフローティングライセンスの形態をとっており、どのクライアント端末にも等価なライセンスが与えられる。
【０００６】
前述のように、メインデバイスの処理をサブデバイスに分散したい場合、メインデバイスで常時実行されているアプリケーションに対する正規ライセンスと、分散処理時の一時的インストール専用のライセンスとを区別する必要がある。これは、サブデバイスのリソース使用に制限を設け、無制限に使用させないため、あるいはサブデバイスのリソース使用に対して料金をチャージ可能とするためである。しかし、特許文献１に記載の技術では、等価なライセンスを各クライアント端末に与えるだけなので、分散処理時の一時的インストール・一時的使用を考慮したライセンスの付与はできないという課題がある。そこで、本発明の第２の目的は、分散処理時の一時的インストール専用のライセンスを提供することである。
【課題を解決するための手段】
【０００７】
本発明の制御装置は、命令を受付ける受付手段と、受付手段で受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御する制御手段とを有し、制御手段は、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。
【０００８】
本発明の制御方法は、命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを含み、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。
【０００９】
本発明のコンピュータ読み取り可能な記録媒体は、コンピュータに、命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。
【００１０】
本発明のプログラムは、コンピュータに、命令を受付けるステップと、受付けるステップで受付けた命令により行う必要の生じた処理を他の装置に実行させるように制御するステップとを実行させるためのプログラムであって、制御するステップは、処理を他の装置に実行させる上で必要なアプリケーションを他の装置にインストールするためのプログラムを、他の装置に送信することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、サブバンドルおよびサブライセンスを定義することにより、分散処理用のアプリケーションを必要なときにだけサブデバイスに一時的にインストール・実行する環境を提供できる。これにより、あらかじめアプリケーションをサブデバイスにインストールしておく必要がなくなる。また、分散処理終了時にサブバンドルをアンインストールしてリソースを解放するため、通常時においてはサブデバイスのリソースを有効利用できる。
【００１２】
本発明によれば、常時実行されるアプリケーションに対する正規ライセンスと、一時的インストール専用のサブライセンスを区別することができるため、サブデバイスのリソース使用に対して料金をチャージ可能な仕組みを提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面を参照して本発明の好適な実施例を詳細に説明する。
【００１４】
図１は、ネットワークを介して相互に通信可能なデバイス群の構成図である。
【００１５】
図１において、１０１、１０２、１０３は、ＭＦＰあるいはＳＦＰなどのデバイスである。これらのデバイスは、印刷をはじめとして、スキャン、ネットワーク通信、ジョブ保存、ＦＡＸなどの様々な機能を提供する。各デバイスは、ネットワーク１０４を介して、相互にデータの送受信を行う。
【００１６】
ＭＦＰは、原稿自動送り部（フィーダ）、スキャナ部、給紙部、定着部、排紙部、フィニッシング装置、排紙トレイなどを備える。ＳＦＰは、フィーダ、スキャナ部などが装備されていない単機能プリンタである。
【００１７】
デバイスは、ＵＩを提供する操作部（表示画面を含む）、ネットワークインタフェース部、ＣＰＵ、プログラムやデータを保存するＲＯＭ、ＲＡＭ、ＨＤＤなどを備える。また、ＨＤＤの代わりに不揮発性メモリを備える廉価なデバイスもある。
【００１８】
図２は、メインデバイス１０１内のソフトウェア構成図である。
【００１９】
ＯＳ２０１は、デバイスが備えているＲＯＭやＨＤＤからプログラムをＲＡＭにロードし、ＣＰＵにプログラムを実行させる。
【００２０】
２０２は、追加のアプリケーションを実行可能とするプラットフォームである。プラットフォームとは、アプリケーションを動作させる際の基盤となる環境のことである。プラットフォーム２０２は、例えば、Ｊａｖａ（登録商標）仮想マシンおよびライブラリ群などから構成される。開発者は、特定のプログラム言語を用いて、このプラットフォーム上で動作するアプリケーションを容易に開発できる。
【００２１】
コントローラ２０３は、デバイス特有の印刷・スキャンなどハードウェアに依存する一部の機能を制御する。
【００２２】
２０４は、バンドル管理サービスである。バンドル管理サービスとは、プラットフォーム上に組み込み済みのアプリケーションの一種である。なお、ここではプラットフォーム２０２上で実行可能なアプリケーションのうち、常時実行されているものをサービス、必要に応じてインストール・実行されるものをアプリケーションと呼ぶこととする。バンドル管理サービス２０４は、プログラムモジュールの集合であるバンドル２０５およびライセンス２０６を受信すると、ライセンスの妥当性をチェックした上で、バンドル２０５内のプログラムモジュールを、プラットフォーム２０２を介してインストールする。バンドル管理サービス２０４がインストールしたプログラムモジュールを起動すると、プログラムモジュールは、プラットフォーム２０２上でアプリケーション２０７として実行される。バンドル管理サービス２０４は、追加のアプリケーションのインストール・起動・停止・アンインストールなどのライフサイクル管理を担当する。
【００２３】
図３は、分散処理を考慮した場合の、メインデバイス１０１にインストール可能なアプリケーションのインストールモジュール３０１の構成図である。
【００２４】
アプリケーションが常時実行されているメインデバイスを１０１とし、分散処理時にのみアプリケーションが一時的にインストール・実行されるサブデバイスを１０２とする。メインバンドル３０２は、メインデバイス１０１で実行されるプログラムモジュールの集合である。インストールモジュール３０１をメインデバイス１０１にインストールすると、メインバンドル３０２のプログラムモジュールが実行可能な状態になる。メインバンドルをメインデバイス１０１にインストールする時に、メインライセンス３０３が用いられ、メインバンドルのインストール妥当性がチェックされる。
【００２５】
サブバンドル３０４は、サブデバイスで実行されるプログラムモジュールの集合である。サブバンドル３０４は、サブデバイスで実行されるアプリケーションや、そのアプリケーションをサブデバイスにインストールするためのプログラムを含む。
【００２６】
３０５、３０６、３０７は、分散処理時の一時的インストール専用のサブライセンスであり、サブデバイスにサブバンドルをインストールする時に使用される。すなわち、サブライセンスがないとサブバンドルをサブデバイスにインストールできず、アプリケーションを実行することができない。サブライセンスは、上記アプリケーションを実行するために必要なライセンスであり、また、サブバンドルをインストールするために必要なライセンスである。
【００２７】
なお、メインデバイスにインストールされているアプリケーションと、サブデバイスにインストールされているアプリケーションは、以下の点で異なる。
【００２８】
処理の実行が終了した際に、メインデバイス１０１のアプリケーションは、そのことをメインデバイスの表示画面に表示するように構成されている。これに対して、サブデバイス１０２のアプリケーションは、サブデバイス１０２でやるべき処理の実行が終了しても、そのことを特にサブデバイス１０２の表示画面に表示する構成とはなっていない。
【００２９】
図４は、サブバンドルのマニフェストおよびサブライセンスの記述内容を示す図である。
【００３０】
マニフェスト４０１には、サブバンドル４０４がアプリケーションとして動作する際の種々の情報が記述されている。４０２は、バンドルタイプがサブバンドルであることを示す識別子である。４０３は、アプリケーションを特定するための固有のＩＤである。４０４および４０５は、このサブバンドルがインストール・実行するのに必要なメモリ領域およびファイル領域のサイズを表している。４０６、４０７、４０８は、このサブバンドルがデバイス上でアプリケーションとして実行される際に、デバイスの具備するどの機能を使用するかを示す識別子のリストである。４０６〜４０８には、カラー印刷機能、ＰＤＦダイレクト印刷機能及びステイプルの機能を使用することが記述されている。
【００３１】
サブライセンス４１１には、４１２〜４１４の情報が記述されている。４１２は、このライセンスがサブバンドルに対するライセンスであることを示す識別子である。４１３は、ライセンス対象のアプリケーションを特定するための固有のＩＤである。４１４は、ライセンスの発行を管理するためのシリアルＩＤである。
【００３２】
図５は、分散処理時のメインデバイスとサブデバイスにおける指示の流れを説明するための図である。
【００３３】
５０１ａ、５０１ｂは、分散処理実行アシストサービスであり、各アプリケーションからの分散処理に関するＡＰＩ呼び出し、および、各アプリケーションへの分散処理に関するイベント通知を担当する。
【００３４】
メインデバイス１０１において、インストールモジュール３０１がインストール済みで、メインバンドル３０２およびメインライセンス３０３によって、アプリケーション５０３ａが実行中である。この間、まだ未使用のサブバンドル３０４およびサブライセンス３０５〜３０７は、バンドル管理サービス２０４によって、ＨＤＤなどの記憶領域に保持されている。
【００３５】
図６は、分散処理時においてメインデバイスとサブデバイスが実行する処理の流れを示すフローチャートである。
【００３６】
以下、図５と図６を参照して、分散処理時においてメインデバイス１０１とサブデバイス１０２の各々が実行する処理の流れを説明する。
【００３７】
メインデバイス１０１は、アプリケーション５０３ａを実行中である（Ｓ６０１）。
【００３８】
なお、メインデバイス１０１（の受付手段）は、以下の場合にアプリケーション５０３ａの実行を開始する。  
・アプリケーション５０３ａによって行われるべき処理を行う旨を指示した命令が他の装置からメインデバイス１０１に入力され、メインデバイス１０１は、その命令を受け付けた。  
・アプリケーション５０３ａによって行われるべき処理を行う旨を指示した命令がユーザからメインデバイス１０１に入力され、メインデバイス１０１は、その命令を受け付けた。  
・アプリケーション５０３ａによって行われるべき処理を行う旨を指示した命令がメインデバイス１０１内で生成され、メインデバイス１０１は、その命令を認識した。
【００３９】
メインデバイス１０１は、アプリケーション５０３ａの実行中に、大量のデータを処理しなければならないケース等の分散処理が必要なケースが発生したかどうかを判定する（Ｓ６０２）。
【００４０】
分散処理が必要なケースが発生したと判定した場合、アプリケーション５０３ａは、分散処理実行アシストサービス５０１ａに対してＡＰＩ呼出しを行う。そのＡＰＩ呼出しを受けた分散処理実行アシストサービス５０１ａは、同一セグメント内の全てのサブデバイスに対して、搭載能力、余剰リソース及びジョブ状況を問い合わせる（Ｓ６０３）。
【００４１】
尚、セグメントとは、ネットワークで分離されているセグメントや、複数のデバイスで構成されたグループなど、あるルールに従ってまとめられたデバイスの集合のことである。
【００４２】
サブデバイス１０２の分散処理実行アシストサービス５０１ｂは、上記の問い合わせに対する回答を分散処理実行アシストサービス５０１ａに返信する（Ｓ６０４）。
【００４３】
回答を受け取った分散処理実行アシストサービス５０１ａは、サブバンドル３０４のマニフェスト４０１に記述された必要なメモリ領域４０４とファイル領域４０５、必要な搭載機能４０６〜４０８を参照する。次いで、分散処理実行アシストサービス５０１ａは、それらの条件をすべて満たすサブデバイス（分散処理可能なサブデバイス）が存在するか否かを判定する（Ｓ６０５）。
【００４４】
尚、この判定を行うに当たり、上記条件をすべて満たすデバイスであっても、そのときのジョブ状況が混雑しているサブデバイスは分散処理の対象外としてもよい。
【００４５】
分散処理実行アシストサービス５０１ａは、分散処理可能なサブデバイスが存在すると判定した場合、そのサブデバイスにアプリケーション５０３ａの分散処理を実行させるか否かをユーザに選択させる。具体的には、分散処理実行アシストサービス５０１ａは、分散処理を実行するか否かをユーザに選択させるための表示画面（確認画面）を操作部に表示させる（Ｓ６０６）。
【００４６】
メインデバイス１０１は、ユーザによる選択にしたがい、分散処理を実行するか否かを判定する（Ｓ６０７）。
【００４７】
なお、分散処理を実行するか否かの判定をユーザの選択によらないで自動的に行う構成としてもよい。例えば、アイドル状態のサブデバイスに強制的に処理を分散させる構成としてもよい。
【００４８】
分散処理を実行すると判定した場合、メインデバイス１０１の分散処理実行アシストサービス５０１ａは、サブデバイス１０２の分散処理実行アシストサービス５０１ｂに対してサブバンドル３０４およびサブライセンス３０５を送信する（Ｓ６０８）。サブバンドル３０４の送信により、命令により行う必要の生じた処理をサブデバイス１０２に実行させる上で必要なアプリケーションをサブデバイス１０２にインストールするためのプログラムが送信されることになる。また、サブライセンス３０５の送信により、上記必要なアプリケーションをサブデバイス１０２で使用することを許可するためのライセンスが送信されることになる。すなわち、メインデバイス１０１は、受付けた命令により行う必要の生じた処理をサブデバイス１０２（他の装置）に実行させるように制御する手段を有する。そして、その制御する手段は、その処理をサブデバイス１０２に実行させる上で必要なアプリケーションをサブデバイス１０２にインストールするためのプログラムを、サブデバイス１０２に送信する。
【００４９】
サブデバイス１０２の分散処理実行アシストサービス５０１ｂは、サブバンドル３０４およびサブライセンス３０５を受信すると、バンドル管理サービス５０２ｂを用いて、インストール・起動を行う（Ｓ６０９）。これにより、サブバンドル３０４のプログラムモジュールは、アプリケーション５０３ｂとして、サブデバイス１０２上で実行中となる。
【００５０】
バンドル管理サービス５０２ｂは、インストール・起動に成功すると、分散処理実行アシストサービ５０１ｂを介して、アプリケーション起動イベントを分散処理実行アシストサービス５０１ａへ送信する（Ｓ６１０）。
【００５１】
分散処理実行アシストサービス５０１ａは、受信したアプリケーション起動イベントをアプリケーション５０３ａにわたす（Ｓ６１１）。
【００５２】
アプリケーション５０３ａは、アプリケーション起動イベントを受け取ると、分散処理実行アシストサービス５０１ａを介して、サブデバイス１０２に割り当てる分散処理用データをサブデバイス１０２に送信する（Ｓ６１２）。ここで、分散処理用データとは、サブデバイス１０２がある処理を実行するために必要なデータのことである。また、ある処理とは、受付けた命令により行う必要の生じた処理の全部又は一部のことである。また、アプリケーション５０３ａは、上記の分散処理用データを送信した後に、分散処理の開始指示をサブデバイス１０２に送信する（Ｓ６１２）。
【００５３】
分散処理実行アシストサービス５０１ｂは、分散処理用データと分散処理の開始指示を受け取ると、アプリケーション５０３ｂに分散処理の開始指示を出す（Ｓ６１３）。開始指示を受けたアプリケーション５０３ｂは、分散処理を実行する。アプリケーション５０３ｂは、分散処理を終了すると、分散処理実行アシストサービス５０１ｂを介して、分散処理の終了イベントを分散処理実行アシストサービス５０１ａに送信する（Ｓ６１４）。
【００５４】
分散処理実行アシストサービス５０１ａは、受け取った終了イベントをアプリケーション５０３ａにわたす（Ｓ６１５）。終了イベントを受け取ったアプリケーション５０３ａは、サブデバイス１０２に割り当てた処理が正常終了したことを確認する。
【００５５】
分散処理実行アシストサービス５０１ｂは、ハンドル管理サービス５０２ｂを用いて、サブバンドル３０４をアンインストールする。また、分散処理実行アシストサービス５０１ｂは、サブライセンスを分散処理実行アシストサービス５０１ａに返却する（Ｓ６１６）。
【００５６】
さらに、サブデバイスがサブライセンスを使用した際のそのライセンスフィーは、そのサブデバイスにサブライセンスを送ったメインデバイスに保存されているメインラインセンスのライセンスフィーとしてかかる。
【００５７】
分散処理実行アシストサービス５０１ａは、返却されたライセンスを回収する（Ｓ６１７）。
【００５８】
図７は、分散処理時においてサブデバイス１０２のアプリケーション５０３ｂでエラーが発生した場合にメインデバイス１０１とサブデバイス１０２が実行する処理の流れを示すフローチャートである。
【００５９】
分散処理実行中に、サブデバイス１０２のアプリケーション５０３ｂでエラーが発生したとする（Ｓ７０１）。
【００６０】
アプリケーション５０３ｂは、分散処理実行アシストサービス５０１ｂを介して、エラー終了イベントを分散処理実行アシストサービス５０１ａに送信する（Ｓ７０２）。
【００６１】
分散処理実行アシストサービス５０１ａは、受信した終了イベントをアプリケーション５０３ａに通知する（Ｓ７０３）。
【００６２】
分散処理実行アシストサービス５０１ｂは、バンドル管理サービス５０２ｂを用いて、アプリケーション５０３ｂを停止し、サブバンドルをアンインストールすると共にサブライセンスを分散処理実行アシストサービス５０１ａに返却する（Ｓ７０４）。
【００６３】
分散処理実行アシストサービス５０１ａは、返却されたライセンスを回収し、再度利用可能な状態に戻す（Ｓ７０５）。
【００６４】
エラー終了イベントを受信したアプリケーション５０３ａは、サブデバイス１０２で処理されなかったデータ（未処理データ）を他のサブデバイスに転送するか否かを判定する（Ｓ７０６）。
【００６５】
アプリケーション５０３ａは、他のサブデバイスに転送しないと判定した場合、自ら未処理データを処理する（Ｓ７１１）。
【００６６】
他のサブデバイスに転送する場合は、メインデバイス１０１は、図６のステップＳ６０３と同様にサブデバイスに問い合わせを行う（Ｓ７０７）。
【００６７】
メインデバイス１０１は、図６のＳ６０５と同様に、分散処理を実行可能なサブデバイスが存在するかどうかを判定する（Ｓ７０８）。メインデバイス１０１は、分散処理を実行可能なサブデバイスが存在しないと判定した場合は、自ら未処理データを処理する（Ｓ７１１）。
【００６８】
メインデバイス１０１は、分散処理を実行可能なサブデバイス１０３が存在すると判定した場合、図６のＳ６０８と同様に、サブバンドルとサブライセンスをサブデバイス１０３に送信する（Ｓ７０９）。
【００６９】
サブデバイス１０３は、図６のＳ６０９〜Ｓ６１６の処理と同様に分散処理を行う（Ｓ７１０）。
【００７０】
（その他の実施例）
本発明は、前述の実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に装着し、システム等のコンピュータが記録媒体からプログラムコードを読み取り実行することによっても達成される。記録媒体はコンピュータ読み取り可能な記録媒体である。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成する。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現されてもよい。また、記録媒体から読み出されたプログラムコードが、コンピュータの機能拡張カードや機能拡張ユニットに書込まれた後、機能拡張カード等がプログラムコードの指示に基づき処理の一部または全部を行うことで、前述の実施例を実現してもよい。
【００７１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納される。
【図面の簡単な説明】
【００７２】
【図１】ネットワークを介して相互に通信可能なデバイス群の構成図である。
【図２】メインデバイス内のソフトウェア構成図である。
【図３】分散処理を考慮した場合の、メインデバイスにインストール可能なアプリケーションのインストールモジュールの構成図である。
【図４】サブバンドルのマニフェストおよびサブライセンスの記述内容を示す図である。
【図５】分散処理時のメインデバイスとサブデバイスにおける指示の流れを説明するための図である。
【図６】分散処理時においてメインデバイスとサブデバイスが実行する処理の流れを示すフローチャートである。
【図７】分散処理時においてサブデバイスのアプリケーションでエラーが発生した場合にメインデバイスとサブデバイスが実行する処理の流れを示すフローチャートである。
【符号の説明】
【００７３】
１０１、１０２、１０３  デバイス
１０４  ネットワーク
２０１  ＯＳ
２０２  プラットフォーム
２０３  コントローラ
２０４  バンドル管理サービス
２０５  バンドル
２０６  ライセンス
２０７  アプリケーション
３０１  インストールモジュール
３０２  メインバンドル
３０３  メインライセンス
３０４  サブバンドル
３０５、３０６、３０７  サブライセンス
４０１  マニフェスト
４０２  バンドルタイプ識別子
４０３  アプリケーションＩＤ
４０４、４０５  必要リソース容量
４０６、４０７、４０８  必要機能リスト
４１１  サブライセンス
４１２  バンドルタイプ識別子
４１３  アプリケーションＩＤ
４１４  ライセンスシリアルＩＤ
５０１ａ、５０１ｂ  分散処理実行アシストサービス
５０２ｂ  バンドル管理サービス
５０３ａ  アプリケーション（メインバンドルに対応）
５０３ｂ  アプリケーション（サブバンドルに対応）
【図１】
2009093361.tif 000003
【図２】
2009093361.tif 000004
【図３】
2009093361.tif 000005
【図４】
2009093361.tif 000006
【図５】
2009093361.tif 000007
【図６】
2009093361.tif 000008
【図７】
2009093361.tif 000009