(57)【要約】【課題】  処理効率を向上するとともにシステム管理者の手間を低減するのに好適な機能分散配置システムを提供する。【解決手段】  ネットワークプリンタ１００は、アプリケーション登録ＤＢ１０のアプリケーションを機能単位に分割し、他のネットワークプリンタ１００から取得したステータス情報に基づいて分割アプリケーションの配置先を決定し、配置先となる他のネットワークプリンタ１００に分割アプリケーションを送信する。また、他のネットワークプリンタ１００から分割アプリケーションを受信し、受信した分割アプリケーションを実行し、その実行結果を要求元のネットワークプリンタ１００に送信する。【選択図】  図１
2005285110.tif 000002
【特許請求の範囲】
【請求項１】
第１ネットワークデバイスと、第２ネットワークデバイスとを通信可能に接続し、前記第１ネットワークデバイスの機能を、前記第１ネットワークデバイスおよび前記第２ネットワークデバイスに分散配置して処理を行う機能分散配置システムであって、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段と、
前記第２ネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段と、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段と、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記第２ネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となるネットワークデバイスに送信するアプリケーション送信手段とを備え、
前記第１ネットワークデバイスは、
前記アプリケーション分割手段で分割した分割アプリケーションのうち、当該第１ネットワークデバイスに割り当てられた分割アプリケーションを実行する第１アプリケーション実行手段と、
前記分割アプリケーションの実行結果を受信する実行結果受信手段とを有し、
前記第２ネットワークデバイスは、
前記分割アプリケーションを受信するアプリケーション受信手段と、
前記アプリケーション受信手段で受信した分割アプリケーションを実行する第２アプリケーション実行手段と、
前記第２アプリケーション実行手段の実行結果を前記第１ネットワークデバイスに送信する実行結果送信手段とを有することを特徴とする機能分散配置システム。
【請求項２】
請求項１において、
前記第１ネットワークデバイスは、さらに、前記分割アプリケーションの実行に必要な実行基本情報を、前記配置先決定手段で決定した配置先となる第２ネットワークデバイスに送信する実行基本情報送信手段を有し、
前記第２ネットワークデバイスは、さらに、前記実行基本情報を受信する実行基本情報受信手段を有し、
前記第２アプリケーション実行手段は、前記実行基本情報受信手段で受信した実行基本情報に基づいて前記分割アプリケーションを実行するようになっていることを特徴とする機能分散配置システム。
【請求項３】
請求項１および２のいずれか１項において、
前記第１ネットワークデバイスは、さらに、前記アプリケーション記憶手段のアプリケーションを前記第１アプリケーション実行手段で実行し、前記第１アプリケーション実行手段の実行結果に基づいて前記アプリケーションの各機能ごとに処理負荷を検出する処理負荷検出手段を有し、
前記配置先決定手段は、前記処理負荷検出手段で検出した処理負荷および前記ステータス情報に基づいて前記分割アプリケーションの配置先を決定するようになっていることを特徴とする機能分散配置システム。
【請求項４】
請求項１ないし３のいずれか１項において、
前記第１ネットワークデバイスは、さらに、書換可能なハードウェア領域を有する第１回路素子と、前記アプリケーション分割手段で分割した分割アプリケーションの機能を実現する回路として前記第１回路素子が動作可能となるように前記ハードウェア領域を再構
成する第１ハードウェア領域再構成手段とを有し、
前記第１アプリケーション実行手段は、前記分割アプリケーションを前記第１回路素子により実行するようになっていることを特徴とする機能分散配置システム。
【請求項５】
請求項１ないし４のいずれか１項において、
前記第２ネットワークデバイスは、さらに、書換可能なハードウェア領域を有する回路素子と、前記アプリケーション受信手段で受信した分割アプリケーションの機能を実現する回路として当該第２ネットワークデバイスの前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成手段とを有し、
前記第２アプリケーション実行手段は、前記分割アプリケーションを前記第２ネットワークデバイスの前記回路素子により実行するようになっていることを特徴とする機能分散配置システム。
【請求項６】
請求項１ないし５のいずれか１項において、
前記ステータス情報取得手段は、前記ステータス情報を定期的又は不定期に取得するようになっており、
前記配置先決定手段は、前記ステータス情報に基づいてアプリケーション実行中の第２ネットワークデバイスのほかに新たな第２ネットワークデバイスを検出したとき、または前記ステータス情報に基づいてアプリケーション実行中の第２ネットワークデバイスのうち動作不能となったものを検出したときは、前記分割アプリケーションの配置先を再決定するようになっていることを特徴とする機能分散配置システム。
【請求項７】
自己のネットワークデバイスの機能を自己および他のネットワークデバイスに分散配置して処理を行うネットワークデバイスであって、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段と、
前記他のネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段と、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段と、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記他のネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となる他のネットワークデバイスに送信するアプリケーション送信手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを実行するアプリケーション実行手段と、
前記分割アプリケーションの実行結果を受信する実行結果受信手段とを備えることを特徴とするネットワークデバイス。
【請求項８】
他のネットワークデバイスの機能を配置して処理を行うネットワークデバイスであって、
複数の機能を有するアプリケーションを機能単位に分割した分割アプリケーションを受信するアプリケーション受信手段と、
前記アプリケーション受信手段で受信した分割アプリケーションを実行するアプリケーション実行手段と、
前記アプリケーション実行手段の実行結果を前記他のネットワークデバイスに送信する実行結果送信手段とを備えることを特徴とするネットワークデバイス。
【請求項９】
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段を備え、自己のネットワークデバイスの機能を自己および他のネットワークデバイスに分散配置して処理を行うデバイスとして動作するコンピュータに適用するデバイス用プログラムであって、
前記他のネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記他のネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となる他のネットワークデバイスに送信するアプリケーション送信手段、
前記アプリケーション分割手段で分割した分割アプリケーションを実行するアプリケーション実行手段、および
前記分割アプリケーションの実行結果を受信する実行結果受信手段として実現される処理を前記コンピュータに実行させるためのプログラムであることを特徴とするデバイス用プログラム。
【請求項１０】
他のネットワークデバイスの機能を配置して処理を行うデバイスとして動作するコンピュータに適用するデバイス用プログラムであって、
複数の機能を有するアプリケーションを機能単位に分割した分割アプリケーションを受信するアプリケーション受信手段、
前記アプリケーション受信手段で受信した分割アプリケーションを実行するアプリケーション実行手段、および
前記アプリケーション実行手段の実行結果を前記他のネットワークデバイスに送信する実行結果送信手段として実現される処理を前記コンピュータに実行させるためのプログラムであることを特徴とするデバイス用プログラム。
【請求項１１】
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段を有する第１ネットワークデバイスと、第２ネットワークデバイスとを通信可能に接続し、前記第１ネットワークデバイスの機能を、前記第１ネットワークデバイスおよび前記第２ネットワークデバイスに分散配置して処理を行う機能分散配置方法であって、
前記第２ネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得ステップと、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割ステップと、
前記ステータス情報取得ステップで取得したステータス情報に基づいて、前記第２ネットワークデバイスのなかから、前記アプリケーション分割ステップで分割した分割アプリケーションの配置先を決定する配置先決定ステップと、
前記アプリケーション分割ステップで分割した分割アプリケーションを、前記配置先決定ステップで決定した配置先となる第２ネットワークデバイスに送信するアプリケーション送信ステップと、を含み、
前記第１ネットワークデバイスに対しては、
前記アプリケーション分割ステップで分割した分割アプリケーションを実行する第１アプリケーション実行ステップとを含み、
前記第２ネットワークデバイスに対しては、
前記分割アプリケーションを受信するアプリケーション受信ステップと、
前記アプリケーション受信ステップで受信した分割アプリケーションを実行する第２アプリケーション実行ステップと、
前記第２アプリケーション実行ステップの実行結果を前記第１ネットワークデバイスに送信する実行結果送信ステップとを含み、
前記第１ネットワークデバイスに対しては、さらに、
前記分割アプリケーションの実行結果を受信する実行結果受信ステップを含むことを特徴とする機能分散配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデバイスの機能を複数のネットワークデバイスに分散配置して処理を行うシステム、デバイスおよびプログラム、並びに方法に係り、特に、処理効率を向上するとともにシステム管理者の手間を低減するのに好適な機能分散配置システム、ネットワークデバイスおよびデバイス用プログラム、並びに機能分散配置方法に関する。
【背景技術】
【０００２】
現在、非ＰＣであるネットワークデバイスにおいてもアプリケーションを実行できる環境が整いつつあるが、その実行環境はＰＣほど高機能ではない。このような環境においても、アプリケーションを効率的に動作させる手法が望まれている。
従来、ネットワークデバイスにおいてアプリケーションを実行する際、そのネットワークデバイスの性能を超えた処理を実現する技術としては、Ｊｉｎｉ（登録商標）に代表されるネットワーク共有サービス、およびグリッドコンピューティングが広く知られている。
【０００３】
上記ネットワーク共有サービスは、ネットワークデバイスが自己のサービス（機能）をネットワーク上に公開し、ネットワークデバイス同士で相互に利用し合うことにより、個々のネットワークデバイスの性能を超えた処理を実現するものである。これについては、例えば、特許文献１に開示されているネットワークシステム、および特許文献２に開示されているソフトウェア部品の選択呼出し方法があった。
【０００４】
特許文献１記載の発明は、通信回線を介して接続されたクライアントプリンタおよびサーバデバイスを含むネットワークシステムである。クライアントプリンタは、ネットワーク上の他のデバイスからステータス情報を取得し、取得したステータス情報に基づいて、自機本来の能力より機能アップした仮想デバイス情報を開示する。ＰＣは、仮想プリンタ情報に基づいて、クライアントプリンタに印刷データを送信し、印刷依頼を行う。クライアントプリンタは、自機本来の能力を上回る印刷依頼を受けたときは、ステータス情報に基づいて処理を依頼するサーバデバイスを決定する。そして、サーバデバイスに処理を依頼し、処理後の印刷データを受信し印刷を行う。
【０００５】
特許文献２記載の発明は、ソフトウェア部品がネットワーク上に分散配置されている環境において、同一機能を有するソフトウェア部品が複数存在する場合に、各ソフトウェア部品に評価情報を持たせることにより、呼出し側で与えた条件を満たす最良の評価結果を得たソフトウェア部品を選択して呼び出す。
また、上記グリッドコンピューティングは、複数のネットワークデバイスをネットワークで接続し処理を分散することで、仮想的に１つの高性能なコンピュータを構成し、個々のネットワークデバイスの性能を超えた処理を実現するものである。グリッドコンピューティングでは、分散処理を行うネットワークデバイスすべてに専用のアプリケーションを配置する必要があるが、このような配置方法については、特許文献３に開示されているソフトウェア配布システムがあった。
【０００６】
特許文献３記載の発明は、配布元マシンからネットワークを介して配布先マシンに配布ファイルを配布するネットワークシステムである。配布元マシンは、配布実行タイミングに基づいて分割された配布ファイル配布手順が記述されているスクリプトファイルおよび配布ファイルを配布先マシンに転送する。配布先マシンは、スクリプトファイルの配布ファイル配布手順を分割された単位で実行し、転送された配布ファイルを配布ファイル配布
手順に基づいて配布処理する。
【特許文献１】特開平１１−１７５２９４号公報
【特許文献２】特開２００２−２７８７５５号公報
【特許文献３】特開平９−３０５５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記ネットワーク共有サービスにあっては、他のネットワークデバイスのサービスを利用する場合、そのサービスがネットワーク上に公開されていなければならず、公開されていないサービスは利用することができない。そのため、処理内容によっては複数のネットワークデバイスに処理を分散することができず、処理効率が低下するという問題があった。
【０００８】
また、上記グリッドコンピューティングにあっては、上記ネットワーク共有サービスに比して自機より周囲に処理を依頼するという性質が強い。処理を依頼するためには、アプリケーションを周囲にインストールしなければならず、そのために特許文献３記載の発明が提案されている。しかしながら、特許文献３記載の発明では、あらかじめどの処理をどのように配布するかをきめ細かに設定しなければならならず、システム管理者が手間を要するという問題があった。
【０００９】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、処理効率を向上するとともにシステム管理者の手間を低減するのに好適な機能分散配置システム、ネットワークデバイスおよびデバイス用プログラム、並びに機能分散配置方法を提供することを目的としている。
【課題を解決するための手段】
【００１０】
〔発明１〕  上記目的を達成するために、発明１の機能分散配置システムは、
第１ネットワークデバイスと、第２ネットワークデバイスとを通信可能に接続し、前記第１ネットワークデバイスの機能を、前記第１ネットワークデバイスおよび前記第２ネットワークデバイスに分散配置して処理を行うシステムであって、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段と、
前記第２ネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段と、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段と、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記第２ネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となる第２ネットワークデバイスに送信するアプリケーション送信手段とを備え、
前記第１ネットワークデバイスは、
前記アプリケーション分割手段で分割した分割アプリケーションのうち、当該第１ネットワークデバイスに割り当てられた分割アプリケーションを実行する第１アプリケーション実行手段と、
前記分割アプリケーションの実行結果を受信する実行結果受信手段とを有し、
前記第２ネットワークデバイスは、
前記分割アプリケーションを受信するアプリケーション受信手段と、
前記アプリケーション受信手段で受信した分割アプリケーションを実行する第２アプリケーション実行手段と、
前記第２アプリケーション実行手段の実行結果を前記第１ネットワークデバイスに送信する実行結果送信手段とを有することを特徴とする。
【００１１】
このような構成であれば、ステータス情報取得手段によりステータス情報が取得される。また、例えば、第１ネットワークデバイスの機能を分散配置する場合は、アプリケーション分割手段により、アプリケーション記憶手段のアプリケーションが機能単位に分割され、配置先決定手段により、取得されたステータス情報に基づいて、第２ネットワークデバイスのなかから、分割された分割アプリケーションの配置先が決定される。そして、アプリケーション送信手段により、分割された分割アプリケーションの一部が、決定された配置先となる第２ネットワークデバイスに送信される。また、第１アプリケーション実行手段により、分割された分割アプリケーションのうち第１ネットワークデバイスに割り当てられた分割アプリケーションが実行される。
【００１２】
第２ネットワークデバイスでは、アプリケーション受信手段により分割アプリケーションを受信すると、第２アプリケーション実行手段により、受信した分割アプリケーションが実行される。処理が完了すると、実行結果送信手段により、第２アプリケーション実行手段の実行結果が第１ネットワークデバイスに送信される。
第１ネットワークデバイスでは、実行結果受信手段により、分割アプリケーションの実行結果を受信する。そして、受信した実行結果と、第１アプリケーション実行手段の実行結果とを統合し、１つのアプリケーションの実行による処理結果を得ることができる。
【００１３】
これにより、アプリケーション記憶手段、ステータス情報取得手段、アプリケーション分割手段、配置先決定手段及びアプリケーション送信手段を備えた、サーバ等の情報処理装置又は依頼元となる第１ネットワークデバイスが、第１ネットワークデバイスのアプリケーションを分割してその配置先を決定し、分割アプリケーションを各配置先のネットワークデバイスに送信するので、第１ネットワークデバイスの機能を比較的確実に複数のネットワークデバイスに分散配置することができる。したがって、処理内容にさほど依存せず分散処理を行うことができるので、従来に比して、処理効率を向上することができるという効果が得られる。
【００１４】
また、第２ネットワークデバイスの状態に応じて配置先が決定されるので、システム管理者があらかじめどの処理をどのように分散するかをきめ細かに設定しなくてもすむ。したがって、従来に比して、システム管理者の手間を低減することができるという効果が得られる。
ここで、第１アプリケーション実行手段は、アプリケーション分割手段で分割した分割アプリケーションを実行するようになっていればどのような構成であってもよく、例えば、分割アプリケーションだけでなくアプリケーションそのものを実行するようになっていてもよい。このことは、第２アプリケーション実行手段についても同じである。
【００１５】
また、第１ネットワークデバイスは、単一のデバイスとして実現するようにしてもよいし、複数のデバイスを通信可能に接続したネットワークシステムとして実現するようにしてもよい。後者の場合、各構成要素は、それぞれ通信可能に接続されていれば、複数のデバイスのうちどのデバイスに属していてもよい。このことは、第２ネットワークデバイスについても同じである。以下、発明２３の機能分散配置方法において同じである。
【００１６】
また、ステータス情報取得手段は、ステータス情報を取得するようになっていればどのような構成であってもよく、ステータス情報は、例えば、第１ネットワークデバイス、第２ネットワークデバイスその他の端末から取得することができる。第２ネットワークデバイス以外から取得する場合は、例えば、ステータス情報を取得先の端末に登録しておけばよい。以下、発明７のネットワークデバイス、および発明１５のデバイス用プログラムにおいて同じである。
【００１７】
また、アプリケーション記憶手段は、アプリケーションをあらゆる手段でかつあらゆる時期に記憶するものであり、アプリケーションをあらかじめ記憶してあるものであっても
よいし、アプリケーションをあらかじめ記憶することなく、本システムの動作時に外部からの入力等によってアプリケーションを記憶するようになっていてもよい。以下、発明７のネットワークデバイス、発明１５のデバイス用プログラム、および発明２３の機能分散配置方法において同じである。
【００１８】
〔発明２〕  さらに、発明２の機能分散配置システムは、発明１の機能分散配置システムにおいて、
前記第１ネットワークデバイスは、さらに、前記分割アプリケーションの実行に必要な実行基本情報を、前記配置先決定手段で決定した配置先となる第２ネットワークデバイスに送信する実行基本情報送信手段を有し、
前記第２ネットワークデバイスは、さらに、前記実行基本情報を受信する実行基本情報受信手段を有し、
前記第２アプリケーション実行手段は、前記実行基本情報受信手段で受信した実行基本情報に基づいて前記分割アプリケーションを実行するようになっていることを特徴とする。
【００１９】
このような構成であれば、第１ネットワークデバイスでは、実行基本情報送信手段により、決定された配置先となる第２ネットワークデバイスに実行基本情報が送信される。
第２ネットワークデバイスでは、実行基本情報受信手段により実行基本情報を受信すると、第２アプリケーション実行手段により、受信した実行基本情報に基づいて分割アプリケーションが実行される。
【００２０】
これにより、例えば、分割アプリケーションの実行に実行開始指令、引数等の実行基本情報が必要な場合は、分割アプリケーションの送信と併せて実行基本情報が第２ネットワークデバイスに送信されるので、システム管理者が実行基本情報を設定しなくてもすむ。したがって、システム管理者の手間をさらに低減することができるという効果が得られる。
【００２１】
〔発明３〕  さらに、発明３の機能分散配置システムは、発明１および２のいずれか１の機能分散配置システムにおいて、
前記第１ネットワークデバイスは、さらに、前記アプリケーション記憶手段のアプリケーションを前記第１アプリケーション実行手段で実行し、前記第１アプリケーション実行手段の実行結果に基づいて前記アプリケーションの各機能ごとに処理負荷を検出する処理負荷検出手段を有し、
前記配置先決定手段は、前記処理負荷検出手段で検出した処理負荷および前記ステータス情報に基づいて前記分割アプリケーションの配置先を決定するようになっていることを特徴とする。
【００２２】
このような構成であれば、第１ネットワークデバイスでは、処理負荷検出手段により、アプリケーション記憶手段のアプリケーションが第１アプリケーション実行手段で実行され、その実行結果に基づいてアプリケーションの各機能ごとに処理負荷が検出される。そして、配置先決定手段により、検出された処理負荷および取得されたステータス情報に基づいて、分割アプリケーションの配置先が決定される。
これにより、分割アプリケーションの処理負荷および第２ネットワークデバイスの状態に応じて配置先が決定されるので、比較的適切な配置先を決定することができる。したがって、処理効率をさらに向上することができるという効果が得られる。
【００２３】
〔発明４〕  さらに、発明４の機能分散配置システムは、発明１ないし３のいずれか１の機能分散配置システムにおいて、
前記第１ネットワークデバイスは、さらに、書換可能なハードウェア領域を有する第１回路素子と、前記アプリケーション分割手段で分割した分割アプリケーションの機能を実
現する回路として前記第１回路素子が動作可能となるように前記ハードウェア領域を再構成する第１ハードウェア領域再構成手段とを有し、
前記第１アプリケーション実行手段は、前記分割アプリケーションを前記第１回路素子により実行するようになっていることを特徴とする。
【００２４】
このような構成であれば、第１ネットワークデバイスでは、第１ハードウェア領域再構成手段により、分割された分割アプリケーションの機能を実現する回路として第１回路素子が動作可能となるようにハードウェア領域が再構成される。そして、第１アプリケーション実行手段により、分割アプリケーションが第１回路素子により実行される。
これにより、第１ネットワークデバイスでは、分割アプリケーションをハードウェアで動作させることができるので、処理の高速化を図ることができるという効果が得られる。
【００２５】
〔発明５〕  さらに、発明５の機能分散配置システムは、発明１ないし４のいずれか１の機能分散配置システムにおいて、
前記第２ネットワークデバイスは、さらに、書換可能なハードウェア領域を有する回路素子と、前記アプリケーション受信手段で受信した分割アプリケーションの機能を実現する回路として当該第２ネットワークデバイスの前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成手段とを有し、
前記第２アプリケーション実行手段は、前記分割アプリケーションを前記第２ネットワークデバイスの前記回路素子により実行するようになっていることを特徴とする。
【００２６】
このような構成であれば、第２ネットワークデバイスでは、ハードウェア領域再構成手段により、受信した分割アプリケーションの機能を実現する回路として第２ネットワークデバイスの回路素子が動作可能となるようにハードウェア領域が再構成される。そして、第２アプリケーション実行手段により、分割アプリケーションが第２ネットワークデバイスの回路素子により実行される。
これにより、第２ネットワークデバイスでは、分割アプリケーションをハードウェアで動作させることができるので、処理の高速化を図ることができるという効果が得られる。
【００２７】
〔発明６〕  さらに、発明６の機能分散配置システムは、発明１ないし５のいずれか１の機能分散配置システムにおいて、
前記ステータス情報取得手段は、前記ステータス情報を定期的又は不定期に取得するようになっており、
前記配置先決定手段は、前記ステータス情報に基づいてアプリケーション実行中の第２ネットワークデバイスのほかに新たな第２ネットワークデバイスを検出したとき、または前記ステータス情報に基づいてアプリケーション実行中の第２ネットワークデバイスのうち動作不能となったものを検出したときは、前記分割アプリケーションの配置先を再決定するようになっていることを特徴とする。
【００２８】
このような構成であれば、第１ネットワークデバイスでは、ステータス情報取得手段により、ステータス情報が定期的又は不定期に取得される。そして、ステータス情報に基づいて、アプリケーション実行中の第２ネットワークデバイスのほかに新たな第２ネットワークデバイス、またはアプリケーション実行中の第２ネットワークデバイスのうち動作不能となったものが検出されると、配置先決定手段により、分割アプリケーションの配置先が再決定される。
【００２９】
これにより、アプリケーションの実行中であっても、新たな第２ネットワークデバイスが追加されたり第２ネットワークデバイスが動作不能となったりした場合は、分割アプリケーションの配置先が再決定されるので、状況に応じて比較的適切な配置先を決定することができる。したがって、処理効率をさらに向上することができるという効果が得られる。
【００３０】
〔発明７〕  一方、上記目的を達成するために、発明７のネットワークデバイスは、
自己のネットワークデバイスの機能を自己および他のネットワークデバイスに分散配置して処理を行うデバイスであって、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段と、
前記他のネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段と、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段と、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記他のネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となる他のネットワークデバイスに送信するアプリケーション送信手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを実行するアプリケーション実行手段と、
前記分割アプリケーションの実行結果を受信する実行結果受信手段とを備えることを特徴とする。
【００３１】
このような構成であれば、発明１の機能分散配置システムにおけるアプリケーション記憶手段、ステータス情報取得手段、アプリケーション分割手段、配置先決定手段及びアプリケーション送信手段を備えた第１ネットワークデバイスと同等の作用が得られる。したがって、発明１の機能分散配置システムと同等の効果が得られる。
ここで、アプリケーション実行手段は、アプリケーション分割手段で分割した分割アプリケーションを実行するようになっていればどのような構成であってもよく、例えば、分割アプリケーションだけでなくアプリケーションそのものを実行するようになっていてもよい。以下、発明１５のデバイス用プログラムにおいて同じである。
【００３２】
また、ネットワークデバイスは、単一のデバイスとして実現するようにしてもよいし、複数のデバイスを通信可能に接続したネットワークシステムとして実現するようにしてもよい。後者の場合、各構成要素は、それぞれ通信可能に接続されていれば、複数のデバイスのうちどのデバイスに属していてもよい。以下、発明１２のネットワークデバイス、並びに発明１５および２０のデバイス用プログラムにおいて同じである。
【００３３】
〔発明８〕  さらに、発明８のネットワークデバイスは、発明７のネットワークデバイスにおいて、
さらに、前記分割アプリケーションの実行に必要な実行基本情報を、前記配置先決定手段で決定した配置先となる他のネットワークデバイスに送信する実行基本情報送信手段を備えることを特徴とする。
【００３４】
このような構成であれば、発明２の機能分散配置システムにおける第１ネットワークデバイスと同等の作用が得られる。したがって、発明２の機能分散配置システムと同等の効果が得られる。
【００３５】
〔発明９〕  さらに、発明９のネットワークデバイスは、発明７および８のいずれか１のネットワークデバイスにおいて、
さらに、前記アプリケーション記憶手段のアプリケーションを前記アプリケーション実行手段で実行し、前記アプリケーション実行手段の実行結果に基づいて前記アプリケーションの各機能ごとに処理負荷を検出する処理負荷検出手段を備え、
前記配置先決定手段は、前記処理負荷検出手段で検出した処理負荷および前記ステータ
ス情報に基づいて前記分割アプリケーションの配置先を決定するようになっていることを特徴とする。
【００３６】
このような構成であれば、発明３の機能分散配置システムにおける第１ネットワークデバイスと同等の作用が得られる。したがって、発明３の機能分散配置システムと同等の効果が得られる。
【００３７】
〔発明１０〕  さらに、発明１０のネットワークデバイスは、発明７ないし９のいずれか１のネットワークデバイスにおいて、
さらに、書換可能なハードウェア領域を有する回路素子と、前記アプリケーション分割手段で分割した分割アプリケーションの機能を実現する回路として前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成手段とを備え、
前記アプリケーション実行手段は、前記分割アプリケーションを前記回路素子により実行するようになっていることを特徴とする。
【００３８】
このような構成であれば、発明４の機能分散配置システムにおける第１ネットワークデバイスと同等の作用が得られる。したがって、発明４の機能分散配置システムと同等の効果が得られる。
【００３９】
〔発明１１〕  さらに、発明１１のネットワークデバイスは、発明７ないし１０のいずれか１のネットワークデバイスにおいて、
前記ステータス情報取得手段は、前記ステータス情報を定期的又は不定期に取得するようになっており、
前記配置先決定手段は、前記ステータス情報に基づいてアプリケーション実行中の他のネットワークデバイスのほかに新たなネットワークデバイスを検出したとき、または前記ステータス情報に基づいてアプリケーション実行中の他のネットワークデバイスのうち動作不能となったものを検出したときは、前記分割アプリケーションの配置先を再決定するようになっていることを特徴とする。
【００４０】
このような構成であれば、発明６の機能分散配置システムにおける第１ネットワークデバイスと同等の作用が得られる。したがって、発明６の機能分散配置システムと同等の効果が得られる。
【００４１】
〔発明１２〕  さらに、発明１２のネットワークデバイスは、
他のネットワークデバイスの機能を配置して処理を行うデバイスであって、
複数の機能を有するアプリケーションを機能単位に分割した分割アプリケーションを受信するアプリケーション受信手段と、
前記アプリケーション受信手段で受信した分割アプリケーションを実行するアプリケーション実行手段と、
前記アプリケーション実行手段の実行結果を前記他のネットワークデバイスに送信する実行結果送信手段とを備えることを特徴とする。
【００４２】
このような構成であれば、発明１の機能分散配置システムにおける第２ネットワークデバイスと同等の作用が得られる。したがって、発明１の機能分散配置システムと同等の効果が得られる。
ここで、アプリケーション実行手段は、アプリケーション受信手段で受信した分割アプリケーションを実行するようになっていればどのような構成であってもよく、例えば、分割アプリケーションだけでなくアプリケーションそのものを実行するようになっていてもよい。以下、発明２０のデバイス用プログラムにおいて同じである。
【００４３】
〔発明１３〕  さらに、発明１３のネットワークデバイスは、発明１２のネットワークデバイスにおいて、
さらに、前記分割アプリケーションの実行に必要な実行基本情報を受信する実行基本情報受信手段を有し、
前記アプリケーション実行手段は、前記実行基本情報受信手段で受信した実行基本情報に基づいて前記分割アプリケーションを実行するようになっていることを特徴とする。
【００４４】
このような構成であれば、発明２の機能分散配置システムにおける第２ネットワークデバイスと同等の作用が得られる。したがって、発明２の機能分散配置システムと同等の効果が得られる。
【００４５】
〔発明１４〕  さらに、発明１４のネットワークデバイスは、発明１２および１３のいずれか１のネットワークデバイスにおいて、
さらに、書換可能なハードウェア領域を有する回路素子と、前記アプリケーション受信手段で受信した分割アプリケーションの機能を実現する回路として前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成手段とを有し、
前記アプリケーション実行手段は、前記分割アプリケーションを前記回路素子により実行するようになっていることを特徴とする。
【００４６】
このような構成であれば、発明５の機能分散配置システムにおける第２ネットワークデバイスと同等の作用が得られる。したがって、発明５の機能分散配置システムと同等の効果が得られる。
【００４７】
〔発明１５〕  一方、上記目的を達成するために、発明１５のデバイス用プログラムは、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段を備え、自己のネットワークデバイスの機能を自己および他のネットワークデバイスに分散配置して処理を行うデバイスとして動作するコンピュータに適用するプログラムであって、
前記他のネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記他のネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となる他のネットワークデバイスに送信するアプリケーション送信手段、
前記アプリケーション分割手段で分割した分割アプリケーションを実行するアプリケーション実行手段、および
前記分割アプリケーションの実行結果を受信する実行結果受信手段として実現される処理を前記コンピュータに実行させるためのプログラムであることを特徴とする。
【００４８】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明７のネットワークデバイスと同等の作用および効果が得られる。
【００４９】
〔発明１６〕  さらに、発明１６のデバイス用プログラムは、発明１５のデバイス用プ
ログラムにおいて、
さらに、前記分割アプリケーションの実行に必要な実行基本情報を、前記配置先決定手段で決定した配置先となる他のネットワークデバイスに送信する実行基本情報送信手段として実現される処理を前記コンピュータに実現させるためのプログラムを含むことを特徴とする。
【００５０】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明８のネットワークデバイスと同等の作用および効果が得られる。
【００５１】
〔発明１７〕  さらに、発明１７のデバイス用プログラムは、発明１５および１６のいずれか１のデバイス用プログラムにおいて、
さらに、前記アプリケーション記憶手段のアプリケーションを前記アプリケーション実行手段で実行し、前記アプリケーション実行手段の実行結果に基づいて前記アプリケーションの各機能ごとに処理負荷を検出する処理負荷検出手段として実現される処理を前記コンピュータに実現させるためのプログラムを含み、
前記配置先決定手段は、前記処理負荷検出手段で検出した処理負荷および前記ステータス情報に基づいて前記分割アプリケーションの配置先を決定するようになっていることを特徴とする。
【００５２】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明９のネットワークデバイスと同等の作用および効果が得られる。
【００５３】
〔発明１８〕  さらに、発明１８のデバイス用プログラムは、発明１５ないし１７のいずれか１のデバイス用プログラムにおいて、
前記コンピュータは、さらに、書換可能なハードウェア領域を有する回路素子を備え、
さらに、前記アプリケーション分割手段で分割した分割アプリケーションの機能を実現する回路として前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成手段として実現される処理を前記コンピュータに実現させるためのプログラムを含み、
前記アプリケーション実行手段は、前記分割アプリケーションを前記回路素子により実行するようになっていることを特徴とする。
【００５４】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明１０のネットワークデバイスと同等の作用および効果が得られる。
【００５５】
〔発明１９〕  さらに、発明１９のデバイス用プログラムは、発明１５ないし１８のいずれか１のデバイス用プログラムにおいて、
前記ステータス情報取得手段は、前記ステータス情報を定期的又は不定期に取得するようになっており、
前記配置先決定手段は、前記ステータス情報に基づいてアプリケーション実行中の他のネットワークデバイスのほかに新たなネットワークデバイスを検出したとき、または前記ステータス情報に基づいてアプリケーション実行中の他のネットワークデバイスのうち動作不能となったものを検出したときは、前記分割アプリケーションの配置先を再決定するようになっていることを特徴とする。
【００５６】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明１１のネットワークデバイ
スと同等の作用および効果が得られる。
【００５７】
〔発明２０〕  さらに、発明２０のデバイス用プログラムは、
他のネットワークデバイスの機能を配置して処理を行うデバイスとして動作するコンピュータに適用するデバイス用プログラムであって、
複数の機能を有するアプリケーションを機能単位に分割した分割アプリケーションを受信するアプリケーション受信手段、
前記アプリケーション受信手段で受信した分割アプリケーションを実行するアプリケーション実行手段、および
前記アプリケーション実行手段の実行結果を前記他のネットワークデバイスに送信する実行結果送信手段として実現される処理を前記コンピュータに実行させるためのプログラムであることを特徴とする。
【００５８】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明１２のネットワークデバイスと同等の作用および効果が得られる。
【００５９】
〔発明２１〕  さらに、発明２１のデバイス用プログラムは、発明２０のデバイス用プログラムにおいて、
さらに、前記分割アプリケーションの実行に必要な実行基本情報を受信する実行基本情報受信手段として実現される処理を前記コンピュータに実行させるためのプログラムを含み、
前記アプリケーション実行手段は、前記実行基本情報受信手段で受信した実行基本情報に基づいて前記分割アプリケーションを実行するようになっていることを特徴とする。
【００６０】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明１３のネットワークデバイスと同等の作用および効果が得られる。
【００６１】
〔発明２２〕  さらに、発明２２のデバイス用プログラムは、発明２０および２１のいずれか１のデバイス用プログラムにおいて、
前記コンピュータは、書換可能なハードウェア領域を有する回路素子を備え、
さらに、前記アプリケーション受信手段で受信した分割アプリケーションの機能を実現する回路として前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成手段として実現される処理を前記コンピュータに実行させるためのプログラムを含み、
前記アプリケーション実行手段は、前記分割アプリケーションを前記回路素子により実行するようになっていることを特徴とする。
【００６２】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明１４のネットワークデバイスと同等の作用および効果が得られる。
【００６３】
〔発明２３〕  一方、上記目的を達成するために、発明２３の機能分散配置方法は、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段を有する第１ネットワークデバイスと、第２ネットワークデバイスとを通信可能に接続し、前記第１ネットワークデバイスの機能を、前記第１ネットワークデバイスおよび前記第２ネットワークデバイスに分散配置して処理を行う機能分散配置方法であって、
前記第１ネットワークデバイスに対しては、
前記第２ネットワークデバイスの状態に関するステータス情報を取得するステータス情
報取得ステップと、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割ステップと、
前記ステータス情報取得ステップで取得したステータス情報に基づいて、前記第２ネットワークデバイスのなかから、前記アプリケーション分割ステップで分割した分割アプリケーションの配置先を決定する配置先決定ステップと、
前記アプリケーション分割ステップで分割した分割アプリケーションを、前記配置先決定ステップで決定した配置先となる第２ネットワークデバイスに送信するアプリケーション送信ステップと、
前記アプリケーション分割ステップで分割した分割アプリケーションを実行する第１アプリケーション実行ステップとを含み、
前記第２ネットワークデバイスに対しては、
前記分割アプリケーションを受信するアプリケーション受信ステップと、
前記アプリケーション受信ステップで受信した分割アプリケーションを実行する第２アプリケーション実行ステップと、
前記第２アプリケーション実行ステップの実行結果を前記第１ネットワークデバイスに送信する実行結果送信ステップとを含み、
前記第１ネットワークデバイスに対しては、さらに、
前記分割アプリケーションの実行結果を受信する実行結果受信ステップを含むことを特徴とする。
【００６４】
これにより、発明１の機能分散配置システムと同等の効果が得られる。
ここで、第１アプリケーション実行ステップは、アプリケーション分割ステップで分割した分割アプリケーションを実行すればどのような方法であってもよく、例えば、分割アプリケーションだけでなくアプリケーションそのものを実行してもよい。このことは、第２アプリケーション実行ステップについても同じである。
【００６５】
また、ステータス情報取得ステップは、ステータス情報を取得すればどのような方法であってもよく、ステータス情報は、例えば、第１ネットワークデバイス、第２ネットワークデバイスその他の端末から取得することができる。第２ネットワークデバイス以外から取得する場合は、例えば、ステータス情報を取得先の端末に登録しておけばよい。
【００６６】
〔発明２４〕  さらに、発明２４の機能分散配置方法は、発明２３の機能分散配置方法において、
前記第１ネットワークデバイスに対しては、さらに、前記分割アプリケーションの実行に必要な実行基本情報を、前記配置先決定ステップで決定した配置先となる第２ネットワークデバイスに送信する実行基本情報送信ステップを含み、
前記第２ネットワークデバイスに対しては、さらに、前記実行基本情報を受信する実行基本情報受信ステップを含み、
前記第２アプリケーション実行ステップは、前記実行基本情報受信ステップで受信した実行基本情報に基づいて前記分割アプリケーションを実行することを特徴とする。
これにより、発明２の機能分散配置システムと同等の効果が得られる。
【００６７】
〔発明２５〕  さらに、発明２５の機能分散配置方法は、発明２３および２４のいずれか１の機能分散配置方法において、
前記第１ネットワークデバイスに対しては、さらに、前記アプリケーション記憶手段のアプリケーションを前記第１アプリケーション実行ステップで実行し、前記第１アプリケーション実行ステップの実行結果に基づいて前記アプリケーションの各機能ごとに処理負荷を検出する処理負荷検出ステップを含み、
前記配置先決定ステップは、前記処理負荷検出ステップで検出した処理負荷および前記
ステータス情報に基づいて前記分割アプリケーションの配置先を決定することを特徴とする。
これにより、発明３の機能分散配置システムと同等の効果が得られる。
【００６８】
〔発明２６〕  さらに、発明２６の機能分散配置方法は、発明２３ないし２５のいずれか１の機能分散配置方法において、
前記第１ネットワークデバイスは、さらに、書換可能なハードウェア領域を有する第１回路素子を有し、
前記第１ネットワークデバイスに対しては、さらに、前記アプリケーション分割ステップで分割した分割アプリケーションの機能を実現する回路として前記第１回路素子が動作可能となるように前記ハードウェア領域を再構成する第１ハードウェア領域再構成ステップを含み、
前記第１アプリケーション実行ステップは、前記分割アプリケーションを前記第１回路素子により実行することを特徴とする。
これにより、発明４の機能分散配置システムと同等の効果が得られる。
【００６９】
〔発明２７〕  さらに、発明２７の機能分散配置方法は、発明２３ないし２６のいずれか１の機能分散配置方法において、
前記第２ネットワークデバイスは、書換可能なハードウェア領域を有する回路素子を有し、
前記第２ネットワークデバイスに対しては、さらに、前記アプリケーション受信ステップで受信した分割アプリケーションの機能を実現する回路として当該第２ネットワークデバイスの前記回路素子が動作可能となるように前記ハードウェア領域を再構成するハードウェア領域再構成ステップを含み、
前記第２アプリケーション実行ステップは、前記分割アプリケーションを前記第２ネットワークデバイスの前記回路素子により実行することを特徴とする。
これにより、発明５の機能分散配置システムと同等の効果が得られる。
【００７０】
〔発明２８〕  さらに、発明２８の機能分散配置方法は、発明２３ないし２７のいずれか１の機能分散配置方法において、
前記ステータス情報取得ステップは、前記ステータス情報を定期的又は不定期に取得し、
前記配置先決定ステップは、前記ステータス情報に基づいてアプリケーション実行中の第２ネットワークデバイスのほかに新たな第２ネットワークデバイスを検出したとき、または前記ステータス情報に基づいてアプリケーション実行中の第２ネットワークデバイスのうち動作不能となったものを検出したときは、前記分割アプリケーションの配置先を再決定することを特徴とする。
これにより、発明６の機能分散配置システムと同等の効果が得られる。
【００７１】
〔発明２９〕  一方、上記目的を達成するために、発明２９の機能分散配置装置は、第１ネットワークデバイスの機能を当該第１およびこれとは他の第２ネットワークデバイスに分散配置して処理を行う機能分散配置装置であって、
複数の機能を有するアプリケーションを記憶するアプリケーション記憶手段と、
前記第１および第２ネットワークデバイスの状態に関するステータス情報を取得するステータス情報取得手段と、
前記アプリケーション記憶手段のアプリケーションを機能単位に分割するアプリケーション分割手段と、
前記ステータス情報取得手段で取得したステータス情報に基づいて、前記第１および第２ネットワークデバイスのなかから、前記アプリケーション分割手段で分割した分割アプリケーションの配置先を決定する配置先決定手段と、
前記アプリケーション分割手段で分割した分割アプリケーションを、前記配置先決定手段で決定した配置先となるネットワークデバイスに送信するアプリケーション送信手段とを備えることを特徴とする機能分散配置装置。
【００７２】
このような構成であれば、発明１の機能分散配置システムにおけるアプリケーション記憶手段、ステータス情報取得手段、アプリケーション分割手段、配置先決定手段及びアプリケーション送信手段を備えた第１ネットワークデバイスと同等の作用が得られる。したがって、発明１の機能分散配置システムと同等の効果が得られる。
【発明を実施するための最良の形態】
【００７３】
以下、本発明の実施の形態を図面を参照しながら説明する。図１ないし図１３は、本発明に係る機能分散配置システム、ネットワークデバイスおよびデバイス用プログラム、並びに機能分散配置方法の実施の形態を示す図である。
本実施の形態は、本発明に係る機能分散配置システム、ネットワークデバイスおよびデバイス用プログラム、並びに機能分散配置方法を、図１に示すように、複数のネットワークプリンタ１００にアプリケーションを分散配置して処理を行う場合について適用したものである。
【００７４】
まず、本発明を適用するネットワークシステムの機能概要を図１を参照しながら説明する。
図１は、本発明を適用するネットワークシステムの機能概要を示す機能ブロック図であ
る。
ネットワーク１９９には、図１に示すように、複数のネットワークプリンタ１００と、ネットワークプリンタ１００にアプリケーションを提供するアプリケーション管理サーバ２００とが接続されている。
【００７５】
ネットワークプリンタ１００は、図１に示すように、複数の機能を有するアプリケーションを登録するアプリケーション登録データベース（以下、データベースのことを単にＤＢと略記する。）１０と、ネットワークプリンタ１００の状態に関するステータス情報を取得するステータス情報取得部１２と、アプリケーション登録ＤＢ１０のアプリケーションを機能単位に分割するアプリケーション分割部１４と、アプリケーション分割部１４で分割したアプリケーション（以下、分割アプリケーションという。）の配置先を決定する配置先決定部１６とを有して構成されている。
【００７６】
配置先決定部１６は、ステータス情報取得部１２で取得したステータス情報に基づいて、ネットワーク１９９上に存在する他のネットワークプリンタ１００のなかから分割アプリケーションの配置先を決定する。
ネットワークプリンタ１００は、さらに、配置先決定部１６で決定した配置先となる他のネットワークプリンタ１００に分割アプリケーションを送信するアプリケーション送信部１８と、アプリケーションまたは分割アプリケーションを受信してアプリケーション登録ＤＢ１０に登録するアプリケーション受信部２０と、分割アプリケーションの実行に必要な実行基本情報を配置先となる他のネットワークプリンタ１００に送信する実行基本情報送信部２２と、実行基本情報を受信する実行基本情報受信部２４とを有して構成されている。
【００７７】
ネットワークプリンタ１００は、さらに、アプリケーションまたは分割アプリケーションを実行するアプリケーション実行部２６を有して構成されている。
アプリケーション実行部２６は、アプリケーション登録ＤＢ１０のアプリケーションを実行する。また、実行基本情報に基づいて、アプリケーション分割部１４で分割した分割アプリケーションを実行する。さらに、実行基本情報受信部２４で受信した実行基本情報に基づいて、アプリケーション登録ＤＢ１０の分割アプリケーションを実行する。
【００７８】
ネットワークプリンタ１００は、さらに、アプリケーション実行部２６の実行結果を分散実行要求元のネットワークプリンタ１００に送信する実行結果送信部２８と、分割アプリケーションの実行結果を受信する実行結果受信部３０とを有して構成されている。
アプリケーション管理サーバ２００は、図１に示すように、アプリケーションを登録するアプリケーション登録ＤＢ３２と、アプリケーション登録ＤＢ３２のアプリケーションをネットワークプリンタ１００に提供するアプリケーション提供部３４とを有して構成されている。
【００７９】
次に、ネットワークプリンタ１００の構成を図２および図７を参照しながら詳細に説明する。
図２は、ネットワークプリンタ１００のハードウェア構成を示すブロック図である。
ネットワークプリンタ１００は、図２に示すように、制御プログラムに基づいて演算およびシステム全体を制御するＣＰＵ５０と、所定領域にあらかじめＣＰＵ５０の制御プログラム等を格納しているＲＯＭ５２と、ＲＯＭ５２等から読み出したデータやＣＰＵ５０の演算過程で必要な演算結果を格納するためのＲＡＭ５４と、書換可能なハードウェア領域を有するハードウェア回路５６と、ハードウェア回路５６のハードウェア領域を書き換えるリコンフィギュア装置５７と、外部装置に対してデータの入出力を媒介するＩ／Ｆ５８とで構成されており、これらは、データを転送するための信号線であるバス５９で相互にかつデータ授受可能に接続されている。
【００８０】
Ｉ／Ｆ５８には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能な操作パネル６０と、アプリケーション登録ＤＢ１０と、データやテーブル等をファイルとして格納する記憶装置６２と、ヘッド駆動部その他の印刷に必要な機構からなる印刷機構６４と、ネットワーク１９９に接続するための信号線とが接続されている。
ＣＰＵ５０は、マイクロプロセッシングユニット（ＭＰＵ）等からなり、ＲＯＭ５２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図３、図４、図６および図７のフローチャートに示すステータス情報取得処理、分散実行要求処理、アプリケーション受信処理および分散実行要求受付処理をそれぞれ時分割で実行するようになっている。
【００８１】
初めに、ステータス情報取得処理を図３を参照しながら詳細に説明する。
図３は、ステータス情報取得処理を示すフローチャートである。
ステータス情報取得処理は、ステータス情報取得部１２として実現される処理であって、ＣＰＵ５０において実行されると、図３に示すように、まず、ステップＳ１００に移行するようになっている。
【００８２】
ステップＳ１００では、前回の実行時から所定時間が経過したか否かを判定し、所定時間が経過したと判定したとき(Yes)は、ステップＳ１０２に移行するが、そうでないと判
定したとき(No)は、所定時間が経過するまでステップＳ１００で待機する。
ステップＳ１０２では、各ネットワークプリンタ１００からステータス情報を取得し、ステップＳ１０４に移行して、取得したステータス情報を記憶装置６２に登録し、一連の処理を終了して元の処理に復帰させる。
【００８３】
次に、分散実行要求処理を図４を参照しながら詳細に説明する。
図４は、分散実行要求処理を示すフローチャートである。
分散実行要求処理は、アプリケーション分割部１４、配置先決定部１６、アプリケーション送信部１８、実行基本情報送信部２２、アプリケーション実行部２６および実行結果受信部３０として実現される処理であって、ＣＰＵ５０において実行されると、図４に示すように、まず、ステップＳ２００に移行するようになっている。
【００８４】
ステップＳ２００では、アプリケーションの実行要求を受信したか否かを判定し、実行要求を受信したと判定したとき(Yes)は、ステップＳ２０２に移行するが、そうでないと
判定したとき(No)は、実行要求を受信するまでステップＳ２００で待機する。
ステップＳ２０２では、受信した実行要求に係るアプリケーションをアプリケーション登録ＤＢ１０から読み出し、ステップＳ２０４に移行して、読み出したアプリケーションを解析する処理を実行し、ステップＳ２０６に移行する。
【００８５】
ステップＳ２０６では、ステップＳ２０４の解析結果に基づいて、読み出したアプリケーションの実行が自己のネットワークプリンタ１００だけで可能であるか否かを判定し、自己のネットワークプリンタ１００だけでは実行が不可能であると判定したとき(No)は、ステップＳ２０８に移行する。
ステップＳ２０８では、読み出したアプリケーションの構造を解析し、その解析結果に基づいてアプリケーションを機能単位に分割し、ステップＳ２１０に移行して、記憶装置６２のステータス情報に基づいて、他のネットワークプリンタ１００のなかから分割アプリケーションの配置先を決定し、ステップＳ２１２に移行する。
【００８６】
ステップＳ２１２では、決定した配置先となる他のネットワークプリンタ１００に分割アプリケーションを送信し、ステップＳ２１４に移行して、決定した配置先となる他のネットワークプリンタ１００に実行開始指令、引数等の実行基本情報を送信し、ステップＳ２１６に移行し
て、決定した配置先となる他のネットワークプリンタ１００に分散実行要求を送信し、ステップＳ２１８に移行する。
【００８７】
ステップＳ２１８では、分割アプリケーションのうち自己のネットワークプリンタ１００が実行すべきものについてその機能を実現する回路を構成可能なリコンフィギュアラブルデータを取得する。ここで、リコンフィギュアラブルデータの取得は、分割アプリケーションその他のデータに基づいてリコンフィギュアラブルデータを生成することにより行ってもよい。また、分割アプリケーションに対応するリコンフィギュアラブルデータを記憶装置６２に記憶しておき、分割アプリケーションに対応するリコンフィギュアラブルデータを記憶装置６２から読み出すことにより行ってもよい。さらに、アプリケーションそのものをリコンフィギュアラブルデータとして構成しておき、読み出したアプリケーションを分割することにより行ってもよい。以下、ステップＳ２４８，Ｓ３０４，Ｓ５０６において同じである。
【００８８】
次いで、ステップＳ２２０に移行して、取得したリコンフィギュアラブルデータに基づいて、リコンフィギュア装置５７によりハードウェア回路５６のハードウェア領域の一部または全部を再構成し、ステップＳ２２２に移行して、分割アプリケーションのうち自己のネットワークプリンタ１００が実行すべきものをハードウェア回路５６により実行し、ステップＳ２２４に移行する。
【００８９】
ステップＳ２２４では、分割アプリケーションの実行結果を受信したか否かを判定し、実行結果を受信したと判定したとき(Yes)は、ステップＳ２２６に移行して、受信した実
行結果を記憶装置６２に登録し、ステップＳ２２８に移行する。
ステップＳ２２８では、ハードウェア回路５６による分割アプリケーションの実行が完了したか否かを判定し、ハードウェア回路５６による実行が完了したと判定したとき(Yes)は、ステップＳ２３０に移行して、分割アプリケーションの実行結果をハードウェア回
路５６から取得し、ステップＳ２３２に移行して、取得した実行結果を記憶装置６２に登録し、ステップＳ２３４に移行する。
【００９０】
ステップＳ２３４では、すべての分割アプリケーションの実行結果を記憶装置６２に登録したか否かを判定し、すべての分割アプリケーションの実行結果を登録したと判定したとき(Yes)は、ステップＳ２３６に移行して、記憶装置６２の各実行結果を統合し、一連
の処理を終了して元の処理に復帰させる。
一方、ステップＳ２３４で、すべての分割アプリケーションの実行結果を登録していないと判定したとき(No)は、ステップＳ２３８に移行して、記憶装置６２のステータス情報に基づいて、新たなネットワークプリンタ１００またはアプリケーション実行中のネットワークプリンタ１００のうち動作不能となったものを検出したか否かを判定し、新規または動作不能なネットワークプリンタ１００を検出したと判定したとき(Yes)は、ステップ
Ｓ２４０に移行する。
【００９１】
ステップＳ２４０では、記憶装置６２のステータス情報に基づいて分割アプリケーションの配置先を再決定し、ステップＳ２４２に移行する。
ステップＳ２４２では、再決定した配置先となる他のネットワークプリンタ１００に分割アプリケーションを送信し、ステップＳ２４４に移行して、再決定した配置先となる他のネットワークプリンタ１００に実行基本情報を送信し、ステップＳ２４６に移行して、再決定した配置先となる他のネットワークプリンタ１００に分散実行要求を送信し、ステップＳ２４４に移行する。
【００９２】
一方、ステップＳ２３８で、新規または動作不能なネットワークプリンタ１００を検出しないと判定したとき(No)は、ステップＳ２２４に移行する。
一方、ステップＳ２２８で、ハードウェア回路５６による分割アプリケーションの実行が完了しないと判定したとき(No)は、ステップＳ２３４に移行する。
一方、ステップＳ２２４で、分割アプリケーションの実行結果を受信しないと判定したとき(No)は、ステップＳ２２８に移行する。
【００９３】
一方、ステップＳ２０６で、読み出したアプリケーションの実行が自己のネットワークプリンタ１００だけで可能であると判定したとき(Yes)は、ステップＳ２４８に移行して
、読み出したアプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータを取得し、ステップＳ２５０に移行する。
ステップＳ２５０では、取得したリコンフィギュアラブルデータに基づいて、リコンフィギュア装置５７によりハードウェア回路５６のハードウェア領域の一部または全部を再構成し、ステップＳ２５２に移行して、読み出したアプリケーションをハードウェア回路５６により実行し、ステップＳ２５４に移行する。
【００９４】
ステップＳ２５４では、ハードウェア回路５６によるアプリケーションの実行が完了したか否かを判定し、ハードウェア回路５６による実行が完了したと判定したとき(Yes)は
、ステップＳ２５６に移行するが、そうでないと判定したとき(No)は、ハードウェア回路５６による実行が完了するまでステップＳ２５４で待機する。
ステップＳ２５６では、アプリケーションの実行結果をハードウェア回路５６から取得し、ステップＳ２５８に移行して、取得した実行結果を記憶装置６２に登録し、一連の処理を終了して元の処理に復帰させる。
【００９５】
次に、ステップＳ２０４のアプリケーション解析処理を図５を参照しながら詳細に説明する。
図５は、アプリケーション解析処理を示すフローチャートである。
アプリケーション解析処理は、ステップＳ２０４において実行されると、図５に示すように、まず、ステップＳ３００に移行するようになっている。
【００９６】
ステップＳ３００では、ステップＳ２０２で読み出したアプリケーションの構造を解析し、その解析結果に基づいてアプリケーションを機能単位に分割し、ステップＳ３０２に移行して、各分割アプリケーションごとに、その分割アプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータを取得し、ステップＳ３０４に移行する。
【００９７】
ステップＳ３０４では、取得した各リコンフィギュアラブルデータに基づいて、リコンフィギュア装置５７によりハードウェア回路５６のハードウェア領域の一部または全部を再構成し、ステップＳ３０６に移行して、分割アプリケーションをハードウェア回路５６によりそれぞれ実行し、ステップＳ３０８に移行する。
ステップＳ３０８では、ハードウェア回路５６による分割アプリケーションの実行が完了したか否かを判定し、ハードウェア回路５６による実行が完了したと判定したとき(Yes)は、ステップＳ３１０に移行する。
【００９８】
ステップＳ３１０では、実行が終了した分割アプリケーションの処理負荷を取得し、ステップＳ３１２に移行して、取得した処理負荷を記憶装置６２に登録し、ステップＳ３１４に移行する。
ステップＳ３１４では、すべての分割アプリケーションの処理負荷を記憶装置６２に登録したか否かを判定し、すべての分割アプリケーションの処理負荷を登録したと判定したとき(Yes)は、一連の処理を終了して元の処理に復帰させる。
【００９９】
一方、ステップＳ３１４で、すべての分割アプリケーションの処理負荷を登録していな
いと判定したとき(No)は、ステップＳ３０８に移行する。
一方、ステップＳ３０８で、ハードウェア回路５６による分割アプリケーションの実行が完了しないと判定したとき(No)は、ステップＳ３１４に移行する。
次に、アプリケーション受信処理を図６を参照しながら詳細に説明する。
【０１００】
図６は、アプリケーション受信処理を示すフローチャートである。
アプリケーション受信処理は、アプリケーション受信部２０および実行基本情報受信部２４として実現される処理であって、ＣＰＵ５０において実行されると、図６に示すように、まず、ステップＳ４００に移行するようになっている。
ステップＳ４００では、アプリケーションを受信したか否かを判定し、アプリケーションを受信したと判定したとき(Yes)は、ステップＳ４０２に移行して、受信したアプリケ
ーションをアプリケーション登録ＤＢ１０に登録し、一連の処理を終了して元の処理に復帰させる。
【０１０１】
一方、ステップＳ４００で、アプリケーションを受信しないと判定したとき(No)は、ステップＳ４０４に移行して、分割アプリケーションを受信したか否かを判定し、分割アプリケーションを受信したと判定したとき(Yes)は、ステップＳ４０６に移行して、受信し
た分割アプリケーションをアプリケーション登録ＤＢ１０に登録し、一連の処理を終了して元の処理に復帰させる。
【０１０２】
一方、ステップＳ４０４で、分割アプリケーションを受信しないと判定したとき(No)は、ステップＳ４０８に移行して、実行基本情報を受信したか否かを判定し、実行基本情報を受信したと判定したとき(Yes)は、ステップＳ４１０に移行して、受信した実行基本情
報を記憶装置６２に登録し、一連の処理を終了して元の処理に復帰させる。
一方、ステップＳ４０８で、実行基本情報を受信しないと判定したとき(No)は、ステップＳ４００に移行する。
【０１０３】
次に、分散実行要求受付処理を図７を参照しながら詳細に説明する。
図７は、分散実行要求受付処理を示すフローチャートである。
分散実行要求受付処理は、アプリケーション実行部２６および実行結果送信部２８として実現される処理であって、ＣＰＵ５０において実行されると、図７に示すように、まず、ステップＳ５００に移行するようになっている。
【０１０４】
ステップＳ５００では、分散実行要求を受信したか否かを判定し、分散実行要求を受信したと判定したとき(Yes)は、ステップＳ５０２に移行するが、そうでないと判定したと
き(No)は、分散実行要求を受信するまでステップＳ５００で待機する。
ステップＳ５０２では、受信した分散実行要求に係る分割アプリケーションをアプリケーション登録ＤＢ１０から読み出し、ステップＳ５０４に移行して、読み出した分割アプリケーションの実行に必要な実行基本情報を記憶装置６２から読み出し、ステップＳ５０６に移行する。
【０１０５】
ステップＳ５０６では、読み出した分割アプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータを取得し、ステップＳ５０８に移行する。
ステップＳ５０８では、取得したリコンフィギュアラブルデータに基づいて、リコンフィギュア装置５７によりハードウェア回路５６のハードウェア領域の一部または全部を再構成し、ステップＳ５１０に移行して、読み出した分割アプリケーションをハードウェア回路５６により実行し、ステップＳ５１２に移行する。
【０１０６】
ステップＳ５１２では、ハードウェア回路５６による分割アプリケーションの実行が完了したか否かを判定し、ハードウェア回路５６による実行が完了したと判定したとき(Yes
)は、ステップＳ５１４に移行するが、そうでないと判定したとき(No)は、ハードウェア
回路５６による実行が完了するまでステップＳ５１２で待機する。
ステップＳ５１４では、分割アプリケーションの実行結果をハードウェア回路５６から取得し、ステップＳ５１６に移行して、取得した実行結果を分散実行要求元のネットワークプリンタ１００に送信し、一連の処理を終了して元の処理に復帰させる。
【０１０７】
次に、本実施の形態の動作を図８ないし図１３を参照しながら説明する。
ネットワークプリンタ１００では、所定時間ごとに、ステップＳ１０２，Ｓ１０４を経て、各ネットワークプリンタ１００からステータス情報が取得され、取得されたステータス情報が登録される。
図８は、ステータス情報をテーブル形式で登録した図である。
【０１０８】
ステータス情報は、図８に示すようなテーブル形式で登録される。図８のテーブルには、各ネットワークプリンタ１００ごとにそのステータス情報を登録したレコードが登録されている。各レコードは、例えば、ネットワークプリンタ１００のネットワークアドレス、ＣＰＵ５０の性能、ＲＡＭ５４の利用可能メモリ容量、記憶装置６２の利用可能データ容量およびネットワーク通信距離を含んで構成されている。ここで、ネットワーク通信距離は、ｐｉｎｇ等のネットワークコマンドにより取得することができ、それ以外のものは、ＭＩＢデータベースを利用して取得することができる。
【０１０９】
アプリケーションを実行する場合は、ホスト端末等においてアプリケーションの実行要求をいずれかのネットワークプリンタ１００に送信する。例えば、ネットワークプリンタ１００で印刷を行う場合は、印刷要求としての実行要求を中間印刷データとともに送信する。
ネットワークプリンタ１００では、実行要求を受信すると、ステップＳ２０２，Ｓ２０４を経て、受信した実行要求に係るアプリケーションがアプリケーション登録ＤＢ１０から読み出され、読み出されたアプリケーションの解析処理が実行される。
【０１１０】
図９は、アプリケーションのデータ構造を示す図である。
アプリケーションは、図９に示すように、複数のクラス（またはインスタンス）を含んで構成されている。各クラスは、アプリケーションの最小単位の機能を実現する実行プログラムであるメソッドと、メソッドの実行時に参照されるデータとを１または複数含んで構成されている。
【０１１１】
図９の例では、３つのクラスＡ，Ｂ，Ｃがあり、クラスＡには３つのメソッドＡＡ，ＡＢ，ＡＣが、クラスＢには３つのメソッドＢＡ，ＢＢ，ＢＣが、クラスＣには２つのメソッドＣＡ，ＣＢがそれぞれ含まれている。さらに、メソッドＡＡの実行結果を利用してメソッドＢＢが動作し、メソッドＡＣの実行結果を利用してメソッドＢＡが動作し、メソッドＡＢの実行結果を利用してメソッドＣＡが動作する関係となっている。
【０１１２】
アプリケーション解析処理が実行されると、ステップＳ３００を経て、アプリケーションの構造が解析され、その解析結果に基づいてアプリケーションが機能単位に分割される。図９の例では、アプリケーションがメソッド単位に分割される。
次いで、ステップＳ３０２〜Ｓ３０６を経て、各分割アプリケーションごとに、その分割アプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータが取得され、取得された各リコンフィギュアラブルデータに基づいてハードウェア回路５６のハードウェア領域が再構成され、分割アプリケーションがハードウェア回路５６によりそれぞれ実行される。
【０１１３】
そして、分割アプリケーションの実行が完了すると、ステップＳ３１０，Ｓ３１２を経
て、実行が終了した分割アプリケーションの処理負荷が取得され、取得された処理負荷が登録される。処理負荷の登録は、すべての分割アプリケーションについて行われる。
図１０は、処理負荷をテーブル形式で登録した図である。
処理負荷は、図１０に示すようなテーブル形式で登録される。図１０のテーブルには、各メソッドごとにその処理負荷を登録したレコードが登録されている。各レコードは、例えば、メソッドの名称、呼び出し１回当たりの平均実行時間、呼び出し回数、ＲＡＭ５４の平均メモリ使用量および入出力を含んで構成されている。これらの処理負荷は、プロファイラと呼ばれる既存のソフトウェアを利用して検出することができる。
【０１１４】
ネットワークプリンタ１００では、アプリケーションの各機能ごとに処理負荷が登録されると、それら処理負荷に基づいてアプリケーションの実行が自己のネットワークプリンタ１００だけで可能であるか否かが判定される。このとき、処理負荷が所定以上であるため、自己のネットワークプリンタ１００だけでは実行が不可能であると判定されると、ステップＳ２０８を経て、アプリケーションの構造が解析され、その解析結果に基づいてアプリケーションが機能単位に分割される。そして、ステップＳ２１０を経て、記憶装置６２のステータス情報に基づいて分割アプリケーションの配置先が決定される。
【０１１５】
図１１は、ネットワークプリンタ１００に対する分割アプリケーションの割当数を示す図である。
配置先決定処理では、自己のネットワークプリンタ１００が実行すべき分割アプリケーションを除き、各分割アプリケーションが、ネットワーク１９９上に存在する他のネットワークプリンタ１００に割り当てられる。ネットワークプリンタ１００に対する分割アプリケーションの割当数は、図１１に示すように、ネットワークプリンタ１００のＣＰＵ性能が大きいものほど分割アプリケーションの割当数が多くなるように決定される。
【０１１６】
図１１の例では、図９のアプリケーションにおける各分割アプリケーションを割り当てる場合を示しており、この場合、８つのメソッドのうち６つが他のネットワークプリンタ１００に割り当てられている。ネットワークプリンタ(001）（ネットワークアドレス「xxx.xxx.xxx.001」のネットワークプリンタ１００をいう。以下、同様に略記する。）、ネ
ットワークプリンタ(002)およびネットワークプリンタ(003)が割当の対象となり、それぞれのＣＰＵ性能に応じて割当数が「１」、「３」および「２」となっている。
【０１１７】
図１２は、分割アプリケーションの割当ルールを示す図である。
次いで、割当数が決定されると、図１２に示すような所定の割当ルールに基づいて、どの分割アプリケーションをどのネットワークプリンタ１００に割り当てるかが決定される。図１２の例では、第１の割当ルールとして、各分割アプリケーションごとに、平均メモリ使用量に呼び出し回数を乗算した値を算出し、その値が最も大きい分割アプリケーションを、ＲＡＭ５４の利用可能メモリ容量が最も大きいネットワークプリンタ１００に割り当てることが規定されている。また、第２の割当ルールとして、各分割アプリケーションごとに、呼び出し１回当たりの平均実行時間に呼び出し回数を乗算した値を算出し、その値が最も大きい分割アプリケーションを、ＣＰＵ性能が最も大きいネットワークプリンタ１００に割り当てることが規定されている。また、第３の割当ルールとして、呼び出し回数が最も大きい分割アプリケーションを、ネットワーク通信距離が最も小さいネットワークプリンタ１００に割り当てることが規定されている。
【０１１８】
図１３は、分割アプリケーションの配置先の決定結果を示す図である。
図１２の割当ルールに基づいて割り当てた結果は、例えば、図１３に示すようになる。図１３の例では、ネットワークプリンタ(001)にメソッドＡＣが、ネットワークプリンタ(002)にメソッドＡＡ，ＢＡ，ＣＡが、ネットワークプリンタ(003)にメソッドＡＢ，ＢＢ
がそれぞれ割り当てられている。なお、メソッドＢＣ，ＣＢについては割当が行われてい
ないが、これらは、自己のネットワークプリンタ１００で実行される。
【０１１９】
ネットワークプリンタ１００では、分割アプリケーションの配置先が決定されると、ステップＳ２１２〜Ｓ２１６を経て、分割アプリケーションおよび実行基本情報が分散実行要求とともに配置先となる他のネットワークプリンタ１００に送信される。また、ステップＳ２１８〜Ｓ２２２を経て、自己のネットワークプリンタ１００が実行すべき分割アプリケーションについてその機能を実現する回路を構成可能なリコンフィギュアラブルデータが取得され、取得されたリコンフィギュアラブルデータに基づいてハードウェア回路５６のハードウェア領域が再構成され、分割アプリケーションがハードウェア回路５６により実行される。
【０１２０】
そして、分割アプリケーションの実行が完了すると、ステップＳ２３０，Ｓ２３２を経て、分割アプリケーションの実行結果が取得され、取得された実行結果が登録される。
一方、他のネットワークプリンタ１００では、分割アプリケーションおよび実行基本情報を受信すると、ステップＳ４０６，Ｓ４１０を経て、受信した分割アプリケーションおよび実行基本情報が登録される。また、分散実行要求を受信すると、ステップＳ５０２，Ｓ５０４を経て、受信した分散実行要求に係る分割アプリケーションがアプリケーション登録ＤＢ１０から、その実行に必要な実行基本情報が記憶装置６２からそれぞれ読み出される。次いで、ステップＳ５０６〜Ｓ５１０を経て、読み出された分割アプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータが取得され、取得されたリコンフィギュアラブルデータに基づいてハードウェア回路５６のハードウェア領域が再構成され、分割アプリケーションがハードウェア回路５６により実行される。
【０１２１】
そして、分割アプリケーションの実行が完了すると、ステップＳ５１４，Ｓ５１６を経て、分割アプリケーションの実行結果が取得され、取得された実行結果が分散実行要求元のネットワークプリンタ１００に送信される。
ネットワークプリンタ１００では、実行結果を受信すると、ステップＳ２２６を経て、受信した実行結果が登録される。そして、すべての分割アプリケーションの実行結果が登録されると、ステップＳ２３６を経て、各実行結果が統合されて処理が終了する。
【０１２２】
次に、アプリケーション実行中に新たなネットワークプリンタ１００がネットワーク１９９に追加されたりアプリケーション実行中のネットワークプリンタ１００が動作不能となったりした場合を説明する。
ネットワークプリンタ１００では、アプリケーション実行中に、ステータス情報に基づいて新規または動作不能なネットワークプリンタ１００が検出されると、ステップＳ２４０〜Ｓ２４６を経て、ステータス情報に基づいて分割アプリケーションの配置先が再決定され、分割アプリケーションおよび実行基本情報が分散実行要求とともに配置先となる他のネットワークプリンタ１００に送信される。すなわち、新たなネットワークプリンタ１００が検出された場合は、そのネットワークプリンタ１００を考慮して処理効率が最適となるように配置先が再決定される。また、動作不能となったネットワークプリンタ１００が検出された場合は、そのネットワークプリンタ１００を除外して処理効率が最適となるように配置先が再決定される。
【０１２３】
次に、アプリケーションの実行が自己のネットワークプリンタ１００だけで可能であると判定した場合を説明する。
ネットワークプリンタ１００では、アプリケーションの実行が自己のネットワークプリンタ１００だけで可能であると判定されると、ステップＳ２４８〜Ｓ２５２を経て、アプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータが取得され、取得されたリコンフィギュアラブルデータに基づいてハードウェア回路５６のハードウェア領域が再構成され、アプリケーションがハードウェア回路５６により実行される。
【０１２４】
そして、アプリケーションの実行が完了すると、ステップＳ２５６，Ｓ２５８を経て、アプリケーションの実行結果が取得され、取得された実行結果が登録されて処理が終了する。
このようにして、本実施の形態では、ネットワークプリンタ１００は、アプリケーション登録ＤＢ１０のアプリケーションを機能単位に分割し、他のネットワークプリンタ１００から取得したステータス情報に基づいて分割アプリケーションの配置先を決定し、配置先となる他のネットワークプリンタ１００に分割アプリケーションを送信する一方、分割アプリケーションを受信し、受信した分割アプリケーションを実行し、その実行結果を分散実行要求元のネットワークプリンタ１００に送信するようになっている。
【０１２５】
これにより、依頼元となるネットワークプリンタ１００が配置先を決定して分割アプリケーションをネットワークプリンタ１００に送信するので、ネットワークプリンタ１００の機能を比較的確実に複数のネットワークプリンタ１００に分散配置することができる。したがって、処理内容にさほど依存せず分散処理を行うことができるので、従来に比して、処理効率を向上することができる。
【０１２６】
また、ネットワークプリンタ１００の状態に応じて配置先が決定されるので、システム管理者があらかじめどの処理をどのように分散するかをきめ細かに設定しなくてもすむ。したがって、従来に比して、システム管理者の手間を低減することができる。
さらに、本実施の形態では、ネットワークプリンタ１００は、配置先となる他のネットワークプリンタ１００に実行基本情報を送信する一方、実行基本情報を受信し、受信した実行基本情報に基づいて分割アプリケーションを実行するようになっている。
【０１２７】
これにより、例えば、分割アプリケーションの実行に引数等の実行基本情報が必要な場合は、分割アプリケーションの送信と併せて実行基本情報がネットワークプリンタ１００に送信されるので、システム管理者が実行基本情報を設定しなくてもすむ。したがって、システム管理者の手間をさらに低減することができる。
さらに、本実施の形態では、ネットワークプリンタ１００は、アプリケーション登録ＤＢ１０のアプリケーションを実行し、その実行結果に基づいてアプリケーションの各機能ごとに処理負荷を検出し、検出した処理負荷およびステータス情報に基づいて分割アプリケーションの配置先を決定するようになっている。
【０１２８】
これにより、分割アプリケーションの処理負荷およびネットワークプリンタ１００の状態に応じて配置先が決定されるので、比較的適切な配置先を決定することができる。したがって、処理効率をさらに向上することができる。
さらに、本実施の形態では、ネットワークプリンタ１００は、分割アプリケーションの機能を実現する回路を構成可能なリコンフィギュアラブルデータを取得し、取得したリコンフィギュアラブルデータに基づいてハードウェア回路５６のハードウェア領域を再構成し、分割アプリケーションをハードウェア回路５６により実行するようになっている。
【０１２９】
これにより、ネットワークプリンタ１００では、分割アプリケーションをハードウェアで動作させることができるので、処理の高速化を図ることができる。
さらに、本実施の形態では、ネットワークプリンタ１００は、ステータス情報を定期的又は不定期に取得し、取得したステータス情報に基づいて、アプリケーション実行中に新たなネットワークプリンタ１００を検出したとき、またはアプリケーション実行中のネットワークプリンタ１００のうち動作不能となったものを検出したときは、分割アプリケーションの配置先を再決定するようになっている。
【０１３０】
これにより、アプリケーションの実行中であっても、新たなネットワークプリンタ１０
０が追加されたりネットワークプリンタ１００が動作不能となったりした場合は、分割アプリケーションの配置先が再決定されるので、状況に応じて比較的適切な配置先を決定することができる。したがって、処理効率をさらに向上することができる。
また、本実施の形態においては、各ネットワークプリンタ１００が、ステータス情報取得部１２、アプリケーション分割部１４、配置先決定部１６及びアプリケーション送信部１８を備え、自己のアプリケーションの分割及び分割アプリケーションの配置先の決定処理等を実行する構成となっているが、これに限らず、これらの手段をネットワークプリンタ１００には持たせず、ネットワークプリンタ１００以外のサーバ機等の情報処理装置に持たせる構成としても良い。このような構成としては、例えば、本実施の形態におけるアプリケーション提供サーバ２００において、ネットワークプリンタ１００で実行するアプリケーションを特定し、且つ各ネットワークプリンタ１００のステータス情報に基づきアプリケーションの分割処理及び分割アプリケーションの分散配置処理を実行するような構成が考えられる。
【０１３１】
以下、図１４〜図１７を参照しながら、アプリケーション管理サーバ２００が、ステータス情報取得部１２、アプリケーション分割部１４、配置先決定部１６及びアプリケーション送信部１８等を備え、所定のネットワークプリンタ１００に実行させるアプリケーションを特定すると共に、各ネットワークプリンタ１００のステータス情報に基づき、アプリケーションの分割及び分割アプリケーションの分散配置処理を実行する構成を具体的に説明する。
【０１３２】
この構成においては、ネットワークプリンタ１００は、図１４に示すように、本実施の形態の図１に示す構成から、ステータス情報取得部１２、アプリケーション分割部１４、配置先決定部１６及びアプリケーション送信部１８を取り除き、代わりに、自己のステータス情報が記憶されたステータス情報記憶部３６と、アプリケーション管理サーバ２００からの要求に応じて、ステータス情報記憶部３６に記憶されたステータス情報を、アプリケーション管理サーバ２００に送信するステータス情報送信部３８とを備えた構成となる。
【０１３３】
一方、アプリケーション管理サーバ２００は、図１４に示すように、本実施の形態の図１に示す構成に加え、アプリケーション分割部１４、配置先決定部１６、アプリケーション送信部１８及び各ネットワークプリンタ１００のステータス情報を取得するネットワーク機器情報取得部４０とを備えた構成となる。
ここで、アプリケーション管理サーバ２００は、本実施の形態における、図２に示すネットワークプリンタ１００と同様のハードウェア構成を有しており、ＣＰＵによって、ＲＯＭに格納された所定のプログラムに従って、図１５のフローチャートに示すアプリケーションの分割処理及び分割アプリケーションの分散配置処理を実行するようになっている。
【０１３４】
アプリケーションの分割処理及び分割アプリケーションの分散配置処理は、アプリケーション分割部１４、配置先決定部１６、アプリケーション送信部１８及び各ネットワークプリンタ１００のステータス情報を取得するネットワーク機器情報取得部４０として実現される処理であって、ＣＰＵにおいて実行されると、図１５に示すように、まず、ステップＳ６００に移行するようになっている。
【０１３５】
ステップＳ６００では、アプリケーション分割部１４において、所定のネットワークプリンタ１００で実行すべきアプリケーションを特定してステップＳ６０２に移行する。ここで、所定のネットワークプリンタ１００は、ユーザが任意のものを指定しても良いし、各アプリケーション毎に予め決定しおいても良い。
ステップＳ６０２では、アプリケーション分割部１４において、ステップＳ６００で特定したアプリケーションの構造を解析し、その解析結果に基づいてアプリケーションを機能単位に分割してステップＳ６０４に移行する。
【０１３６】
ステップＳ６０４では、ネットワーク機器情報取得部４０において、各ネットワークプリンタ１００に対して取得要求（リクエスト）を送信することで、当該各ネットワークプリンタ１００のステータス情報を収集してステップＳ６０６に移行する。
ステップＳ６０６では、配置先決定部１６において、ステップＳ６０４で収集したステータス情報に基づき、ステップＳ６０２で分割された、分割アプリケーションの配置先を決定してステップＳ６０８に移行する。
【０１３７】
ステップＳ６０８では、アプリケーション送信部１８において、ステップＳ６０６で決定した配置先に、分割アプリケーションを送信して処理を終了する。
更に、上記所定のネットワークプリンタ１００における、ＣＰＵ５０は、ＲＯＭ５２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図１６のフローチャートに示すアプリケーション実行処理を実行するようになっている。
【０１３８】
アプリケーション実行処理は、アプリケーション受信部２０、実行基本情報送信部２２、アプリケーション実行部２６、実行結果受信部３０及びステータス情報送信部３８として実現される処理であって、ＣＰＵ５０において実行されると、図１６に示すように、まず、ステップＳ７００に移行するようになっている。
ステップＳ７００では、ステータス情報送信部３８において、アプリケーション管理サーバ２００から、ステータス情報のリクエスト（取得要求）が来たか否かを判定し、リクエストが来たと判定された場合(Yes)は、ステップＳ７０２に移行し、そうでない場合(No)は、取得するまで判定処理を繰り返す。
【０１３９】
ステップＳ７０２に移行した場合は、ステータス情報送信部３８において、ステータス情報記憶部３６に記憶された自己のステータス情報を読み出し、当該読み出したステータス情報をアプリケーション管理サーバ２００に送信してステップＳ７０４に移行する。
ステップＳ７０４では、アプリケーション受信部２０において、アプリケーション管理サーバ２００から、分割アプリケーションを受信したか否かを判定し、受信したと判定された場合(Yes)は、ステップＳ７０６に移行し、そうでない場合(No)は、受信するまで判定処理を繰り返す。
【０１４０】
ステップＳ７０６に移行した場合は、アプリケーション受信部２０において、ステップＳ７０４で受信した分割アプリケーションを、アプリケーション登録ＤＢ１０に記憶してステップＳ７０８に移行する。
ステップＳ７０８では、アプリケーション実行部２６において、ステップＳ７０６で記憶した分割アプリケーションの機能を実現する回路を構成可能なリコンフィギャラブルデータを取得し、当該取得したリコンフィギャラブルデータに基づいて、リコンフィギュア装置５７によりハードウェア回路５６のハードウェア領域の一部または全部を再構成し、分割アプリケーションをハードウェア回路５６により実行してステップＳ７１０に移行する。
【０１４１】
ステップＳ７１０では、実行基本情報送信部２２において、上記ステップＳ６００において特定されたアプリケーションの実行機能が、他のネットワークプリンタ１００に分配されているか否かを判定し、分配されていると判定された場合(Yes)は、ステップＳ７１２に移行し、そうでない場合(No)は、ステップＳ７１８に移行する。
ステップＳ７１２に移行した場合は、実行基本情報送信部２２において、分配先のネットワークプリンタ１００に対して実行基本情報を送信してステップＳ７１４に移行する。
【０１４２】
ステップＳ７１４では、実行結果受信部３０において、分配先のネットワークプリンタ１００から実行結果を受信したか否かを判定し、受信したと判定された場合(Yes)は、ステップＳ７１６に移行し、そうでない場合(No)は、受信するまで判定処理を繰り返す。
ステップＳ７１６に移行した場合は、ステップＳ７１４で受信した実行結果に基づいて、分割アプリケーションの実行を続行してステップＳ７１８に移行する。
【０１４３】
ステップＳ７１８では、アプリケーション実行部２６において、分割アプリケーションの処理が完了したか否かを判定し、完了したと判定された場合(Yes)は処理を終了し、そうでない場合(No)は、ステップＳ７０８に移行する。
更に、上記所定のネットワークプリンタ１００において実行するアプリケーションに対する分割アプリケーションの分配先のネットワークプリンタにおけるＣＰＵ５０は、ＲＯＭ５２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図１７のフローチャートに示す分割アプリケーション実行処理を実行するようになっている。
【０１４４】
分割アプリケーション実行処理は、アプリケーション受信部２０、アプリケーション実行部２６、実行基本情報受信部２４、実行結果送信部２８及びステータス情報送信部３８として実現される処理であって、ＣＰＵ５０において実行されると、図１７に示すように、まず、ステップＳ８００に移行するようになっている。
ステップＳ８００では、ステータス情報送信部３８において、アプリケーション管理サーバ２００から、ステータス情報のリクエスト（取得要求）が来たか否かを判定し、リクエストが来たと判定された場合(Yes)は、ステップＳ８０２に移行し、そうでない場合(No)は、取得するまで判定処理を繰り返す。
【０１４５】
ステップＳ８０２に移行した場合は、ステータス情報送信部３８において、ステータス情報記憶部３６に記憶された自己のステータス情報を読み出し、当該読み出したステータス情報をアプリケーション管理サーバ２００に送信してステップＳ８０４に移行する。
ステップＳ８０４では、アプリケーション受信部２０において、アプリケーション管理サーバ２００から、分割アプリケーションを受信したか否かを判定し、受信したと判定された場合(Yes)は、ステップＳ８０６に移行し、そうでない場合(No)は、受信するまで判定処理を繰り返す。
【０１４６】
ステップＳ８０６に移行した場合は、アプリケーション受信部２０において、ステップＳ８０４で受信した分割アプリケーションを、アプリケーション登録ＤＢ１０に記憶してステップＳ８０８に移行する。
ステップＳ８０８では、実行基本情報受信部２４において、所定のネットワークプリンタ１００から、実行基本情報を受信したか否かを判定し、受信したと判定された場合(Yes)は、ステップＳ８１０に移行し、そうでない場合(No)は、受信するまで判定処理を繰り返す。
【０１４７】
ステップＳ８１０に移行した場合は、アプリケーション実行部２６において、ステップＳ８０６で記憶した分割アプリケーションの機能を実現する回路を構成可能なリコンフィギャラブルデータを取得し、当該取得したリコンフィギャラブルデータに基づいて、リコンフィギュア装置５７によりハードウェア回路５６のハードウェア領域の一部または全部を再構成し、ステップＳ８０８で受信した実行基本情報に基づき、分割アプリケーションをハードウェア回路５６により実行してステップＳ８１２に移行する。
【０１４８】
ステップＳ８１２では、実行結果送信部２８において、ステップＳ８１０で実行した分割アプリケーションの実行結果を、アプリケーション管理サーバ２００に送信して処理を終了する。
つまり、アプリケーション管理サーバ２００において、所定のネットワークプリンタ１００において実行するアプリケーションを特定し（ステップＳ６００）、更に、当該アプリケーションを機能単位に分割する（ステップＳ６０２）。更に、各ネットワークプリンタ１００のステータス情報を取得して（ステップＳ６０４）、当該取得したステータス情報に基づき分割アプリケーションの分散配置先を決定し（ステップＳ６０６）、各分散先に、分割アプリケーションを分配する（ステップＳ６０８）。
【０１４９】
一方、所定のネットワークプリンタ１００は、アプリケーション管理サーバ２００からのステータス情報の取得要求（リクエスト）を受信すると（ステップＳ７００）、ステータス情報記憶部３６に記憶された自己のステータス情報をアプリケーション管理サーバ２００に送信する（ステップＳ７０２）。また、アプリケーション管理サーバ２００からの分割アプリケーションを受信すると（ステップＳ７０４）、当該受信した分割アプリケーションをアプリケーション登録ＤＢ１０に記憶する（ステップＳ７０６）。そして、アプリケーション実行部２６において、当該記憶した分割アプリケーションを実行し（ステップＳ７０８）、一方、実行基本情報を分配先の他のネットワークプリンタ１００に送信する（７１２）。更に、分配先のネットワークプリンタ１００からの実行結果を受信し（ステップＳ７１４）、当該受信した実行結果に基づき分割アプリケーションを実行する（ステップＳ７１６）。
【０１５０】
また、分配先のネットワークプリンタ１００は、アプリケーション管理サーバ２００からのステータス情報の取得要求（リクエスト）を受信すると（ステップＳ８００）、ステータス情報記憶部３６に記憶された自己のステータス情報をアプリケーション管理サーバ２００に送信する（ステップＳ８０２）。所定のネットワークプリンタ１００からの実行基本情報に基づいて、アプリケーション管理サーバ２００からの分割アプリケーションを実行し、この実行結果を所定のネットワークプリンタ１００に送信する。また、アプリケーション管理サーバ２００からの分割アプリケーションを受信すると（ステップＳ８０４）、当該受信した分割アプリケーションをアプリケーション登録ＤＢ１０に記憶する（ステップＳ８０６）。そして、所定のネットワークプリンタ１００から実行基本情報を受信し（ステップＳ８０８）、アプリケーション実行部２６において、当該受信した実行基本情報に基づき、前記記憶した分割アプリケーションを実行し（ステップＳ８１０）、その実行結果を所定のネットワークプリンタ１００に送信する。
【０１５１】
このようにして、アプリケーション管理サーバ２００は、所定のネットワークプリンタ１００に実行させるアプリケーションを機能単位に分割し、各ネットワークプリンタ１００から取得したステータス情報に基づいて分割アプリケーションの配置先を決定し、配置先となるネットワークプリンタ１００に分割アプリケーションを送信するようになっている。一方、所定のネットワークプリンタ１００とは異なる分配先のネットワークプリンタ１００は、分割アプリケーションを受信し、受信した分割アプリケーションを実行し、その実行結果を所定のネットワークプリンタ１００に送信するようになっている。
【０１５２】
これにより、アプリケーション管理サーバ２００が、各ネットワークプリンタ１００のステータス情報に基づき、分散配置先を決定して分割アプリケーションを各分散先のネットワークプリンタ１００に送信するので、アプリケーションを実行する各機能を比較的確実に複数のネットワークプリンタ１００に分散配置することができる。したがって、処理内容にさほど依存せず分散処理を行うことができるので、従来に比して、処理効率を向上することができる。
【０１５３】
上記実施の形態において、ネットワークプリンタ１００は、発明１ないし４、２３ないし２６の第１ネットワークデバイス、または発明１、２、５、６、２３、２４、２７若しくは２８の第２ネットワークデバイスに対応し、アプリケーション登録ＤＢ１０は、発明１、３、７、９、１５、１７、２３または２５のアプリケーション記憶手段に対応している。また、ハードウェア回路５６は、発明４若しくは２６の第１回路素子、発明５若しくは２７の第２回路素子、または発明１０若しくは１８の回路素子に対応し、ステータス情報取得部１２およびステップＳ１０２は、発明１、６、７、１１、１５または１９のステータス情報取得手段に対応している。
【０１５４】
また、上記実施の形態において、ステップＳ１０２は、発明２３または２８のステータス情報取得ステップに対応し、ステップＳ２０４は、発明３、９若しくは１７の処理負荷検出手段、または発明２５の処理負荷検出ステップに対応し、アプリケーション分割部１４およびステップＳ２０８は、発明１、４、７、１０、１５または１８のアプリケーション分割手段に対応している。また、ステップＳ２０８は、発明２３または２６のアプリケーション分割ステップに対応し、配置先決定部１６およびステップＳ２１０，Ｓ２４０は、発明１ないし３、６ないし９、１１、１５ないし１７または１９の配置先決定手段に対応し、ステップＳ２１０，Ｓ２４０は、発明２３ないし２５または２８の配置先決定ステップに対応している。
【０１５５】
また、上記実施の形態において、アプリケーション送信部１８およびステップＳ２１４，Ｓ２４２は、発明１、７または１５のアプリケーション送信手段に対応し、ステップＳ２１４，Ｓ２４２は、発明２３のアプリケーション送信ステップに対応し、実行基本情報送信部２２およびステップＳ２１４，Ｓ２４４は、発明２、８または１６の実行基本情報送信手段に対応している。また、ステップＳ２１４，Ｓ２４４は、発明２４の実行基本情報送信ステップに対応し、実行結果受信部３０およびステップＳ２２４は、発明１、７または１５の実行結果受信手段に対応し、ステップＳ２２４は、発明２３の実行結果受信ステップに対応している。
【０１５６】
また、上記実施の形態において、アプリケーション受信部２０およびステップＳ４０４は、発明１、５、１２または２０のアプリケーション受信手段に対応し、ステップＳ４０４は、発明２３または２７のアプリケーション受信ステップに対応し、実行基本情報受信部２４およびステップＳ４０８は、発明２、１３または２１の実行基本情報受信手段に対応している。また、ステップＳ４０８は、発明２４の実行基本情報受信ステップに対応し、実行結果送信部２８およびステップＳ５１６は、発明１、１２または２０の実行結果送信手段に対応し、ステップＳ５１６は、発明２３の実行結果送信ステップに対応している。
【０１５７】
上記実施の形態において、ステップＳ２２０は、発明４の第１ハードウェア領域再構成手段、発明１０若しくは１８のハードウェア領域再構成手段、または発明２６の第１ハードウェア領域再構成ステップに対応し、アプリケーション実行部２６およびステップＳ２２２は、発明１、３若しくは４の第１アプリケーション実行手段、または発明１、２、７、９、１０、１５、１７若しくは１８のアプリケーション実行手段に対応している。また、ステップＳ２２２は、発明２３、２５または２６の第１アプリケーション実行ステップに対応している。
【０１５８】
上記実施の形態において、ステップＳ５０８は、発明５の第２ハードウェア領域再構成手段、発明１４若しくは２２のハードウェア領域再構成手段、または発明２７の第２ハー
ドウェア領域再構成ステップに対応し、アプリケーション実行部２６およびステップＳ５１０は、発明１、２若しくは５の第２アプリケーション実行手段、または発明１、１２ないし１４、２０ないし２２のアプリケーション実行手段に対応している。また、ステップＳ５１０は、発明２３、２４または２７の第２アプリケーション実行ステップに対応している。
【０１５９】
なお、上記実施の形態において、ネットワークプリンタ１００は、他のネットワークプリンタ１００に分割アプリケーションを送信して処理の一部を依頼するように構成したが、これに限らず、他のネットワークプリンタ１００にアプリケーションそのものを送信して処理の全部を依頼するように構成することもできる。
また、上記実施の形態において、ネットワークプリンタ１００は、アプリケーションの実行が自己のネットワークプリンタ１００だけで可能であるか否かを判定するように構成したが、より具体的には、例えば、平均実行時間、平均メモリ使用量および入出力が次のいずれかの分散配置条件を満たしていると判定したときは、自己のネットワークプリンタ１００だけでは不可能であると判定する。
（１）平均実行時間が所定以上であること。例えば、平均実行時間が３０秒以上の分割アプリケーションが存在する場合は、他のネットワークプリンタ１００に処理を依頼する。（２）平均メモリ使用量が自己のネットワークプリンタ１００のメモリソースの所定割合以上を占めていること。例えば、８０％以上のメモリを使用する場合は、他のネットワークプリンタ１００に処理を依頼する。
（３）入出力のうち出力にログ書き出し等のファイル出力が含まれ、自己のネットワークプリンタ１００で保持するＨＤＤ等の記憶装置６２のデータ容量が所定以下であること。例えば、記憶装置６２のデータ容量が１[Gbyte]以下の場合は、他のネットワークプリン
タ１００に処理を依頼する。
【０１６０】
また、上記実施の形態において、ネットワークプリンタ１００は、アプリケーションをメソッド単位に分割するように構成したが、これに限らず、アプリケーションをクラス（またはインスタンス）単位に分割するように構成することもできる。
また、上記実施の形態においては、ネットワークデバイスとしてネットワークプリンタ１００を例示したが、これに限らず、ネットワーク対応のプロジェクタ、スキャナ、ホームゲートウェイ、ディジタルカメラ、ディジタルビデオカメラ、パソコン、ＰＤＡ（Personal Digital Assistant）、ネットワークストレージ、オーディオ機器、携帯電話、ＰＨＳ（登録商標）（Personal Handyphone System）、ウォッチ型ＰＤＡ、ＳＴＢ（Set Top Box）、ＰＯＳ（Point Of Sale）端末、コピー機、ＦＡＸ機、電話（ＩＰ電話等も含む。）、交換機、ＮＣＵ（Network Control Unit）、ルータ、ハブ、ブリッジ、その他ネットワーク対応の機器を用いることができる。
また、配置先決定部１６は、他のネットワークデバイスのステータス情報だけでなく、自己のネットワークデバイスのステータス情報にも基づいて自己及び他のネットワークデバイスに対する、分割アプリケーションの配置先を決定しても良い。
【０１６１】
また、上記実施の形態において、図３ないし図７のフローチャートに示す処理を実行するにあたってはいずれも、ＲＯＭ５２にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをＲＡＭ５４に読み込んで実行するようにしてもよい。
【０１６２】
ここで、記憶媒体とは、ＲＡＭ、ＲＯＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【０１６３】
また、上記実施の形態においては、本発明に係る機能分散配置システム、ネットワーク
デバイスおよびデバイス用プログラム、並びに機能分散配置方法を、図１に示すように、複数のネットワークプリンタ１００にアプリケーションを分散配置して処理を行う場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【図面の簡単な説明】
【０１６４】
【図１】本発明を適用するネットワークシステムの機能概要を示す機能ブロック図である。
【図２】ネットワークプリンタ１００のハードウェア構成を示すブロック図である。
【図３】ステータス情報取得処理を示すフローチャートである。
【図４】分散実行要求処理を示すフローチャートである。
【図５】アプリケーション解析処理を示すフローチャートである。
【図６】アプリケーション受信処理を示すフローチャートである。
【図７】分散実行要求受付処理を示すフローチャートである。
【図８】ステータス情報をテーブル形式で登録した図である。
【図９】アプリケーションのデータ構造を示す図である。
【図１０】処理負荷をテーブル形式で登録した図である。
【図１１】ネットワークプリンタ１００に対する分割アプリケーションの割当数を示す図である。
【図１２】分割アプリケーションの割当ルールを示す図である。
【図１３】分割アプリケーションの配置先の決定結果を示す図である。
【図１４】アプリケーション管理サーバ２００が、アプリケーションの分割処理及び分割アプリケーションの分散配置処理を行う場合の、ネットワークシステムの機能概要を示す機能ブロック図である。
【図１５】アプリケーションの分割処理及び分割アプリケーションの分散配置処理を示すフローチャートである。
【図１６】所定のネットワークプリンタ１００におけるアプリケーション実行処理を示すフローチャートである。
【図１７】特定とは他の分配先のネットワークプリンタ１００におけるアプリケーション実行処理を示すフローチャートである。
【符号の説明】
【０１６５】
１００…ネットワークプリンタ，  １０…アプリケーション登録ＤＢ，  １２…ステータス情報取得部，  １４…アプリケーション分割部，  １６…配置先決定部，  １８…アプリケーション送信部，  ２０…アプリケーション受信部，  ２２…実行基本情報送信部，
２４…実行基本情報受信部，  ２６…アプリケーション実行部，  ２８…実行結果送信部，  ３０…実行結果受信部，  ５０…ＣＰＵ，  ５２…ＲＯＭ，  ５４…ＲＡＭ，  ５６…ハードウェア回路，  ５７…リコンフィギュア装置，  ５８…Ｉ／Ｆ，  ６０…操作パネル，  ６２…記憶装置，  ６４…印刷機構，  ２００…アプリケーション管理サーバ，  ３２…アプリケーション登録ＤＢ，  ３４…アプリケーション提供部，  ３６…ステータス情報記憶部，  ３８…ステータス情報送信部，  ４０…ネットワーク機器情報取得部
【図１】
2005285110.tif 000003
【図２】
2005285110.tif 000004
【図３】
2005285110.tif 000005
【図４】
2005285110.tif 000006
【図５】
2005285110.tif 000007
【図６】
2005285110.tif 000008
【図７】
2005285110.tif 000009
【図８】
2005285110.tif 000010
【図９】
2005285110.tif 000011
【図１０】
2005285110.tif 000012
【図１１】
2005285110.tif 000013
【図１２】
2005285110.tif 000014
【図１３】
2005285110.tif 000015
【図１４】
2005285110.tif 000016
【図１５】
2005285110.tif 000017
【図１６】
2005285110.tif 000018
【図１７】
2005285110.tif 000019