(57)【特許請求の範囲】
【請求項１】
要求されたジョブを実行するジョブ実行装置と、
ジョブの実行に必要なサービス処理機能を提供する複数のサービス提供装置と、
を有し、
前記ジョブ実行装置は、
ジョブの実行要求を受け付けるジョブ受付手段と、
前記サービス提供装置それぞれから、当該サービス提供装置に搭載されているサービス処理機能及び当該サービス提供装置の稼動状況を表す指標データを含む稼働状況情報を取得する取得手段と、
取得した稼動状況情報を参照することにより、ジョブの実行に利用するサービス処理機能が搭載された前記サービス提供装置における負荷が、高負荷と判定する判定基準を超えていた場合、低負荷と判定する判定基準を満たす第１のサービス提供装置を選出する選出手段と、
前記選出手段により選出された前記第１のサービス提供装置に対し、前記サービス処理機能が搭載された第２のサービス提供装置を特定する情報を含む起動指示情報を送信する指示情報送信手段と、
を有し、
前記第１のサービス提供装置は、前記指示情報送信手段から送信されてきた起動指示情報から特定される前記第２のサービス提供装置からソフトウェアをダウンロードして、当該サービス処理を実行可能な環境設定を行ってから当該サービス処理を実行するサービス処理実行手段を有する、
ことを特徴とするジョブ実行システム。
【請求項２】
前記起動指示情報には、当該サービス処理機能が搭載された前記サービス提供装置のうち高負荷と判定する判定基準を超えていた前記サービス提供装置以外の前記サービス提供装置を前記第２のサービス提供装置として特定する情報が含まれることを特徴とする請求項１に記載のジョブ実行システム。
【請求項３】
前記サービス処理実行手段は、当該サービス処理の実行後に、前記ソフトウェアを削除することを特徴とする請求項２に記載のジョブ実行システム。
【請求項４】
ジョブの実行要求を受け付けるジョブ受付手段と、
ジョブの実行に必要なサービス処理機能を提供するサービス提供装置それぞれから、当該サービス提供装置に搭載されているサービス処理機能及び当該サービス提供装置の稼動状況を表す指標データを含む稼働状況情報を取得する取得手段と、
取得した稼動状況情報を参照することにより、ジョブの実行に利用するサービス処理機能が搭載された前記サービス提供装置における負荷が、高負荷と判定する判定基準を超えていた場合、低負荷と判定する判定基準を満たす第１のサービス提供装置を選出する選出手段と、
前記選出手段により選出された前記第１のサービス提供装置に、前記サービス処理機能が搭載された第２のサービス提供装置を特定する情報を含む起動指示情報を送信することによって、当該起動指示情報から特定される前記第２のサービス提供装置からソフトウェアをダウンロードして、当該サービス処理を実行可能な環境設定を行ってから当該サービス処理を実行させる指示情報送信手段と、
を有することを特徴とするジョブ実行装置。
【請求項５】
コンピュータを、
ジョブの実行要求を受け付けるジョブ受付手段、
ジョブの実行に必要なサービス処理機能を提供するサービス提供装置それぞれから、当該サービス提供装置に搭載されているサービス処理機能及び当該サービス提供装置の稼動状況を表す指標データを含む稼働状況情報を取得する取得手段、
取得した稼動状況情報を参照することにより、ジョブの実行に利用するサービス処理機能が搭載された前記サービス提供装置における負荷が、高負荷と判定する判定基準を超えていた場合、低負荷と判定する判定基準を満たす第１のサービス提供装置を選出する選出手段、
前記選出手段により選出された前記第１のサービス提供装置に、前記サービス処理機能が搭載された第２のサービス提供装置を特定する情報を含む起動指示情報を送信することによって、当該起動指示情報から特定される前記第２のサービス提供装置からソフトウェアをダウンロードして、当該サービス処理を実行可能な環境設定を行ってから当該サービス処理を実行させる指示情報送信手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ実行システム、ジョブ実行装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ネットワークに接続されるウェブシステムを構成するサーバの稼動状況を判定して各サーバにサービス構成を動的に振り分ける負荷分散装置を用いて、負荷の分散を行う技術が記載されている。
【０００３】
特許文献２には、ネットワーク上のコンピュータ機器の状態及び能力を管理し、タスクを分析して分散容易度の低い処理は高性能のリソースに割り振り、分散容易度の高い処理は、性能の低いリソースに分散して処理させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２８１００７号公報
【特許文献２】特開２００５−３５２６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ジョブの実行時に、ジョブの実行に利用するサービス処理機能が搭載されたサービス提供装置に比して負荷の低いサービス提供装置を利用して当該サービス処理を実行することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るジョブ実行システムは、要求されたジョブを実行するジョブ実行装置と、ジョブの実行に必要なサービス処理機能を提供する複数のサービス提供装置と、を有し、前記ジョブ実行装置は、ジョブの実行要求を受け付けるジョブ受付手段と、前記サービス提供装置それぞれから、当該サービス提供装置に搭載されているサービス処理機能及び当該サービス提供装置の稼動状況を表す指標データを含む稼働状況情報を取得する取得手段と、取得した稼動状況情報を参照することにより、ジョブの実行に利用するサービス処理機能が搭載された前記サービス提供装置における負荷が、高負荷と判定する判定基準を超えていた場合、低負荷と判定する判定基準を満たす第１のサービス提供装置を選出する選出手段と、前記選出手段により選出された前記第１のサービス提供装置に対し、前記サービス処理機能が搭載された第２のサービス提供装置を特定する情報を含む起動指示情報を送信する指示情報送信手段と、を有し、前記第１のサービス提供装置は、前記指示情報送信手段から送信されてきた起動指示情報から特定される前記第２のサービス提供装置からソフトウェアをダウンロードして、当該サービス処理を実行可能な環境設定を行ってから当該サービス処理を実行するサービス処理実行手段を有する、ことを特徴とする。
【０００７】
また、前記起動指示情報には、当該サービス処理機能が搭載された前記サービス提供装置のうち高負荷と判定する判定基準を超えていた前記サービス提供装置以外の前記サービス提供装置を前記第２のサービス提供装置として特定する情報が含まれることを特徴とする。
【０００８】
また、前記サービス処理実行手段は、当該サービス処理の実行後に、前記ソフトウェアを削除することを特徴とする。
【０００９】
本発明に係るジョブ実行装置は、ジョブの実行要求を受け付けるジョブ受付手段と、ジョブの実行に必要なサービス処理機能を提供するサービス提供装置それぞれから、当該サービス提供装置に搭載されているサービス処理機能及び当該サービス提供装置の稼動状況を表す指標データを含む稼働状況情報を取得する取得手段と、取得した稼動状況情報を参照することにより、ジョブの実行に利用するサービス処理機能が搭載された前記サービス提供装置における負荷が、高負荷と判定する判定基準を超えていた場合、低負荷と判定する判定基準を満たす第１のサービス提供装置を選出する選出手段と、前記選出手段により選出された前記第１のサービス提供装置に、前記サービス処理機能が搭載された第２のサービス提供装置を特定する情報を含む起動指示情報を送信することによって、当該起動指示情報から特定される前記第２のサービス提供装置からソフトウェアをダウンロードして、当該サービス処理を実行可能な環境設定を行ってから当該サービス処理を実行させる指示情報送信手段と、を有することを特徴とする。
【００１０】
本発明に係るプログラムは、コンピュータを、ジョブの実行要求を受け付けるジョブ受付手段、ジョブの実行に必要なサービス処理機能を提供するサービス提供装置それぞれから、当該サービス提供装置に搭載されているサービス処理機能及び当該サービス提供装置の稼動状況を表す指標データを含む稼働状況情報を取得する取得手段、取得した稼動状況情報を参照することにより、ジョブの実行に利用するサービス処理機能が搭載された前記サービス提供装置における負荷が、高負荷と判定する判定基準を超えていた場合、低負荷と判定する判定基準を満たす第１のサービス提供装置を選出する選出手段、前記選出手段により選出された前記第１のサービス提供装置に、前記サービス処理機能が搭載された第２のサービス提供装置を特定する情報を含む起動指示情報を送信することによって、当該起動指示情報から特定される前記第２のサービス提供装置からソフトウェアをダウンロードして、当該サービス処理を実行可能な環境設定を行ってから当該サービス処理を実行させる指示情報送信手段、として機能させるためのものである。
【発明の効果】
【００１１】
請求項１記載の発明によれば、ジョブの実行に利用するサービス処理機能の搭載の有無に関係なく、当該サービス処理機能が搭載されたサービス提供装置に比してジョブの実行時に負荷の低いサービス提供装置を利用して当該サービス処理を実行することができる。
【００１２】
特に、ジョブの実行に利用するサービス処理機能が搭載されているサービス提供装置からソフトウェアをダウンロードさせることで、サービス処理を実行するサービス提供装置に、当該サービス処理を実行するための環境設定を行わせることができる。
【００１３】
請求項３記載の発明によれば、当該サービス処理を実行後に不要となったソフトウェアを、当該サービス処理を実行したサービス提供装置から削除することができる。
【００１４】
請求項４記載の発明によれば、ジョブの実行に利用するサービス処理機能の搭載の有無に関係なく、当該サービス処理機能が搭載されたサービス提供装置に比してジョブの実行時に負荷の低いサービス提供装置を利用して当該サービス処理を実行することができる。
【００１５】
請求項５記載の発明によれば、ジョブの実行に利用するサービス処理機能の搭載の有無に関係なく、当該サービス処理機能が搭載されたサービス提供装置に比してジョブの実行時に負荷の低いサービス提供装置を利用して当該サービス処理を実行することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係るジョブ実行システムの一実施の形態を示した全体構成図である。
【図２】本実施の形態における画像形成装置のハードウェア構成の一例を示した図である。
【図３】本実施の形態におけるサーバコンピュータのハードウェア構成図である。
【図４】本実施の形態におけるジョブ実行システムのブロック構成図である。
【図５Ａ】本実施の形態におけるジョブ実行処理を示したフローチャートである。
【図５Ｂ】図５Ａに続くフローチャートである。
【図６Ａ】本実施の形態におけるジョブ実行処理が実行される過程におけるジョブ実行システムの状態を示した概念図である。
【図６Ｂ】本実施の形態におけるジョブ実行処理が実行される過程におけるジョブ実行システムの状態を示した概念図である。
【図６Ｃ】本実施の形態におけるジョブ実行処理が実行される過程におけるジョブ実行システムの状態を示した概念図である。
【図６Ｄ】本実施の形態におけるジョブ実行処理が実行される過程におけるジョブ実行システムの状態を示した概念図である。
【発明を実施するための形態】
【００１７】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１８】
図１は、本発明に係るジョブ実行システムの一実施の形態を示した全体構成図である。図１には、３台の画像形成装置１０と、クラウド２とがネットワーク１に接続された構成が示されている。本実施の形態における画像形成装置１０は、本発明のジョブ実行装置に相当し、スキャナ機能、印刷機能等複数の機能を有する装置であり、ユーザから要求されたジョブ又はその一部を実行する。なお、画像形成装置１０が自らサービス処理を実行する場合には、本発明のサービス提供装置にも相当しうる。クラウド２は、クラウド・コンピューティングを省略した呼称であり、複数のサーバ５０が含まれている。各サーバ５０は、本発明のサービス提供装置に相当し、１又は複数のサービス処理機能が搭載される。本実施の形態で取り扱うジョブは、文字絵柄分離、ＯＣＲ、翻訳等の１又は複数のサービス処理の組み合わせにより実行される。サーバ５０は、ジョブを受け付けた画像形成装置１０からの指示に従い、１又は複数のサービス処理を実行する。なお、図１には、３台の画像形成装置１０と５台のサーバ５０が示されているが、この台数はこの台数に限られるものではない。
【００１９】
図２は、本実施の形態における画像形成装置１０のハードウェア構成の一例を示した図である。画像形成装置１０は、上記の通り各種機能を搭載した装置であり、コンピュータを内蔵した装置である。図２において、ＣＰＵ１１は、ＲＯＭ１６に格納されたプログラムにしたがってＩＩＴ（Ｉｍａｇｅ  Ｉｎｐｕｔ  Ｔｅｒｍｉｎａｌ）１３やＩＯＴ（Ｉｍａｇｅ  Ｏｕｔｐｕｔ  Ｔｅｒｍｉｎａｌ）１４等本装置に搭載された各種機構の動作制御を行う。ＩＩＴ１３は、画像入力装置のことをいい、ユーザがセットした原稿を読み取り、電子データとしてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１８等に蓄積する。ＩＩＴ１３は、例えばスキャナにより実現してもよい。ＩＯＴ１４は、画像出力装置のことをいい、ＣＰＵ１１で実行される制御プログラムからの指示に従い出力用紙上に画像を印字する。ＩＯＴ１４は、例えばプリンタにより実現してもよい。アドレスデータバス２０は、ＣＰＵ１１の制御対象となる各種機構と接続してデータの通信を行う。操作パネル１２は、ユーザからの指示の受け付け、情報の表示を行う。ＩＰＳ（Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ）１５は、画像処理装置のことをいい、受け付けられたジョブに含まれる画像処理を実行する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１６は、本装置の制御や電子データの暗号、電子データの送受信に関する各種プログラムが格納されている。各種プログラムが実行されることで後述する各構成要素が所定の処理機能を発揮する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１７は、プログラム実行時のワークメモリや電子データ送受信時の通信バッファとして利用される。本実施の形態では、ジョブキューとして利用してもよい。ＨＤＤ１８は、ＩＩＴ１３を使用して読み取った電子文書やサービス処理機能を実現するソフトウェアなどを格納する。ネットワークインタフェース（Ｉ／Ｆ）１９は、ネットワーク１を接続し、サーバ５０とのデータ通信などに利用される。図１に示した画像形成装置１〜３は、性能や搭載されたサービス処理機能に差異があるかもしれないが、ハードウェアの構成は図２に示したとおりである。
【００２０】
図３は、本実施の形態におけるサーバ５０を形成するサーバコンピュータのハードウェア構成図である。本実施の形態におけるサーバ５０は、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図３に示したようにＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、サービス処理機能を実現するソフトウェアなどを格納するハードディスクドライブ（ＨＤＤ）５４を接続したＨＤＤコントローラ５５、入力手段として設けられたマウス５６とキーボード５７、及び表示装置として設けられたディスプレイ５８をそれぞれ接続する入出力コントローラ５９、通信手段として設けられたネットワークコントローラ６０を内部バス６１に接続して構成される。図１に示したサーバ１〜５は、性能や搭載されたサービス処理機能に差異があるかもしれないが、ハードウェアの構成は図３に示したとおりである。
【００２１】
図４は、本実施の形態におけるジョブ実行システムのブロック構成図である。図１に示した画像形成装置１０及びサーバ５０は、いずれも同様の構成を有しているので、図４では、それぞれ１台の装置１０，５０のみを示した。図４において、画像形成装置１０は、ジョブ受付部２１、監視サービス実行部２２、サービス処理実行指示部２３、サービス処理機能取得部２４、サービス処理実行部２５、サービス処理機能削除部２６及び実行制御部２７を有している。ジョブ受付部２１は、本発明のジョブ受付手段に相当し、ジョブの実行要求を受け付ける。本実施の形態において取り扱うジョブは、１又は複数のサービス処理機能を利用して実行されるが、監視サービス実行部２２は、本発明の取得手段に相当し、ジョブの実行時に監視サービスを起動されることにより監視サービスを実行する。監視サービス実行部２２は、各サーバ５０に対して、稼動状況情報の送信を要求する稼動状況情報送信要求部２８と、送信要求に応じて各サーバ５０から送信されてきた稼動状況情報を取得する稼動状況情報取得部２９とを有する。サービス処理実行指示部２３は、本発明の指示情報送信手段に相当し、サーバ５０に、サービス処理の実行を指示する指示情報を送信することによって当該サービス処理の実行を指示する。この送信する指示情報に、当該サービス処理機能が搭載されたサーバ５０を特定する情報を指示情報に含めて送信してもよい。サービス処理機能取得部２４は、自装置に実行すべきサービス処理機能が搭載されていない場合、当該サービス処理を実行可能な環境設定を行う。ここでいう、環境設定というのは、例えば、サービス処理機能が搭載されているサーバ５０等からそのサービス処理機能を実現するソフトウェアをダウンロードして、画像形成装置１０にて当該サービス処理が実行できるようにすることをいう。サービス処理実行部２５は、自装置で実行すべきサービス処理を実行する。サービス処理機能削除部２６は、サービス処理の実行後に、サービス処理機能を実現するソフトウェアを削除することで、画像形成装置１０のソフトウェア環境を元の状態に戻す。実行制御部２７は、他の構成要素２１〜２６と連携しながら各サービス処理を実行する画像形成装置１０又はサーバ５０を決定するなど、画像形成装置１０におけるジョブの実行制御を行う。特に、本実施の形態における実行制御部２７は、本発明の選出手段に相当し、ジョブの実行に利用するサービス処理機能が搭載されているために本来利用したいサーバ５０における負荷が高負荷とする判定基準を超えていることによって利用を回避せざるを得ないような場合、そのサーバ５０の代わりとなる低負荷とする判定基準を満たす他のサーバ５０を選出する。
【００２２】
画像形成装置１０における各構成要素２１〜２７は、画像形成装置１０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。
【００２３】
サーバ５０は、稼動状況情報収集部７１、稼動状況情報送信部７２、サービス処理機能取得部７３、サービス処理実行部７４及びサービス処理機能削除部７５を有している。稼動状況情報収集部７１は、稼動状況情報送信要求部２８から要求が送られてくると、その要求に応じて、自サーバに搭載されているサービス処理機能及び自サーバの稼動状況を表す指標データを含む稼働状況情報を収集し、稼動状況情報を生成する。稼動状況情報送信部７２は、稼動状況情報収集部７１により収集され、生成された稼動状況情報を稼動状況情報取得部２９へ送信する。サービス処理機能取得部７３、サービス処理実行部７４及びサービス処理機能削除部７５は、本発明のサービス処理実行手段に相当し、それぞれが有する処理機能は、画像形成装置１０のサービス処理機能取得部２４、サービス処理実行部２５及びサービス処理機能削除部２６それぞれが有する処理機能と同じでよい。すなわち、サービス処理機能取得部７３は、自サーバに実行すべきサービス処理機能が搭載されていない場合、当該サービス処理を実行可能な環境設定を行う。サービス処理実行部７４は、サービス処理を実行する。サービス処理機能削除部７５は、サービス処理の実行後に、サービス処理機能を実現するソフトウェアを削除することで、自サーバのソフトウェア環境を元の状態に戻す。
【００２４】
サーバ５０における各構成要素７１〜７５は、サーバ５０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ５１で動作するプログラムとの協調動作により実現される。
【００２５】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのＣＰＵがインストールプログラムを順次実行することで各種処理が実現される。
【００２６】
次に、本実施の形態において、画像形成装置１０がジョブの実行要求に応じてジョブを実行するジョブ実行処理について図５Ａ、図５Ｂに示したフローチャートを用いて説明する。
【００２７】
画像形成装置１０におけるジョブ受付部２１は、ユーザからのジョブの実行要求を受け付ける（ステップ１０１）。ジョブの実行要求は、図示しないパーソナルコンピュータなどからユーザがジョブを実行させる画像形成装置１０を指定し、処理対象の電子データと共に画像形成装置１０へネットワーク経由で送信することで行われてもよい。あるいは、ユーザは、操作パネル１２を操作して所望のパラメータ等を設定し、例えばスタートボタン等を押下することによってジョブの実行要求を発するようにしてもよい。この際、原稿をＩＩＴ１３から読み取らせるようにしてもよい。
【００２８】
実行制御部２７は、受け付けたジョブの実行を開始すると、このジョブの実行に必要な全てのサービス処理機能が画像形成装置１０に搭載されていることにより、自装置だけでジョブの実行が可能であると判断した場合（ステップ１０２でＹ）、サービス処理実行部２５は、実行制御部２７からの指示に従いジョブを実行する（ステップ１０３）。つまり、この場合、サーバ５０にサービス処理の実行を依頼せずに、換言するとジョブを分散せずに画像形成装置１０が単独で実行することになる。
【００２９】
一方、自装置だけでジョブの実行ができないと判断した場合（ステップ１０２でＮ）、実行制御部２７は、監視サービス実行部２２に監視サービスの実行を指示する。監視サービス実行部２２は、実行制御部２７からの指示に従い監視サービスを開始し、まず稼動状況情報の送信を各サーバ５０に要求する（ステップ１０４）。
【００３０】
画像形成装置１０から送られてきた稼動状況情報の送信要求を受信すると、各サーバ５０における稼動状況情報収集部７１は、自サーバ内に搭載されているサービス処理機能と、自サーバの稼動状況を表す指標データに関する情報とを収集し、これらを含む稼働状況情報を生成する。稼動状況を表す指標データというのは、自サーバのＣＰＵ使用率、メモリ使用率、実行中のプロセスの数などサーバ５０における負荷を表すための指標データであればよい。また、収集期間は、サーバ５０におけるある一定期間における稼動状況、あるいはある一時点における稼動状況でもよい。このようにして、稼働状況情報が得られると、稼働状況情報送信部７２は、自サーバの稼動状況情報を要求元の画像形成装置１０へ送信する。
【００３１】
画像形成装置１０において、稼動状況情報取得部３０が各サーバ５０から返信されてきた稼動状況情報を取得すると（ステップ１０５）、これ以降、ジョブの実行に必要なサービス処理個々に対し（ステップ１０７）、ジョブにおけるサービス処理の実行順に、どのサーバ５０あるいは自装置を用いて実行させるかということを決定し、実行させる処理を行う。
【００３２】
まず、ジョブの実行に必要なサービス処理のうちまだ実行していないサービス処理を特定する（ステップ１０６）。特定したサービス処理を実現するサービス処理機能が自装置１０に搭載されている場合（ステップ１０８でＹ）、実行制御部２７は、自装置１０にて当該サービス処理を実行する（ステップ１０９）。そして、次のサービス処理機能に処理を移行する（ステップ１０６）。一方、処理対象のサービス処理機能が自装置１０に搭載されていない場合（ステップ１０８でＮ）、実行制御部２７は、ステップ１０５において取得した稼動状況情報を参照して、サービス処理を実行させるサーバ５０を選出するために以下の処理を実行する。
【００３３】
まず、実行制御部２７は、取得した稼動状況情報を参照して、処理対象のサービス処理機能が搭載されたサーバ５０を選出する。そして、選出したサーバ５０の稼動状況情報からそのサーバ５０における現在の負荷の状況を得る。本実施の形態では、高負荷と判定する判定基準を予め設定しており、サーバ５０における負荷が、この判定基準を超えていた場合、当該サーバ５０は負荷の高い状態にあると判定する。高負荷と判定する判定基準としては、例えば、ＣＰＵ使用率やメモリ使用率が所定の閾値以上である場合、現在動作中のサービス処理機能が２以上存在する場合など、負荷が高い状態であると考えられる判定基準が設定される。
【００３４】
選出したサーバ５０が負荷の高くない状態であることから当該サービス処理機能を用いたサービス処理の提供は可能な状態であると判定した場合（ステップ１１０でＹ）、実行制御部２７は、サービス処理実行指示部２３に、選出したサーバ５０に当該サービス処理の実行指示を出すよう指示する。サービス処理実行指示部２３は、実行制御部２７からの指示に従いサービス処理の実行を指示する指示情報をサーバ５０へ送信する（ステップ１１１）。サーバ５０におけるサービス処理実行部７４は、この画像形成装置１０からの指示に応じて、当該サービス処理機能を起動してサービス処理を実行する。そして、処理実行後、実行結果を画像形成装置１０へ返す。
【００３５】
一方、選出したサーバ５０が負荷の高い状態であることからサービス処理機能を用いたサービス処理の提供はできない状態であると判定した場合（ステップ１１０でＮ）、実行制御部２７は、次に、当該サービス処理機能を自装置１０にダウンロードしてサービス処理機能を用いたサービス処理を実行できるかどうかについて判定する。具体的には、ステップ１１０で判定したように、自装置１０における負荷の状態を調査し、実行可能であるか否かを判定する。
【００３６】
ここで、自装置１０における負荷が高いことから当該サービス処理を実行できない状態であると判定した場合（ステップ１１２でＮ）、実行制御部２７は、負荷の低いサーバ５０を選出する。本実施の形態では、低負荷と判定する判定基準を予め設定しており、いずれかのサーバ５０における負荷が、この判定基準を下回っている場合、当該サーバ５０は負荷の低い状態にあると判定する。低負荷と判定する判定基準としては、例えば、ＣＰＵ使用率やメモリ使用率が所定の閾値以下である場合、現在動作中のサービス処理機能が存在しない場合など、負荷が低い状態であると考えられる判定基準が設定される。
【００３７】
負荷が低いことから負荷に余裕があるサーバ（以下「低負荷サーバ」とも称する）５０が存在すると判定した場合（ステップ１１３でＹ）、実行制御部２７は、低負荷サーバ５０に当該サービス処理の実行指示を出すよう指示する。サービス処理実行指示部２３は、実行制御部２７からの指示に従い、低負荷サーバ５０に対し、サービス処理機能の起動指示情報を送信する（ステップ１１４）。サービス処理実行指示部２３は、稼動状況情報を参照することにより、当該サービス処理機能が搭載されているサーバ５０を特定できるので、そのサーバのＩＤや名称、あるいはＩＰアドレスなどそのサーバ５０を特定するための情報を取得し、起動指示情報に含める。基本的には、負荷が高くて実行できないと判断されたサーバ（以下「高負荷サーバ」とも称する）５０を特定する情報が起動指示情報に含まれることになるが、当該サービス処理機能が搭載されている高負荷サーバ以外のサーバ５０を特定する情報を起動指示情報に含めてもよい。
【００３８】
起動指示情報を受信したサーバ５０におけるサービス処理機能取得部７３は、画像形成装置１０からの指示に従い、起動指示情報に含まれている情報から特定できるサーバ５０から、該当するサービス処理機能のソフトウェアをダウンロードするなどして、当該サービス処理を実行するための環境設定を行う。なお、本実施の形態では、起動指示情報にダウンロード先のサーバ５０を特定する情報を含めるようにしたが、起動指示を受信したサーバ５０が、他のサーバ５０に問い合わせることで自らダウンロード先とするサーバ５０を探し出すようにしてもよい。
【００３９】
一定時間後、あるいはサーバ５０からの通知を受けるなどして環境設定の完了を認識すると、サービス処理実行指示部２３は、該当するサーバ５０にサービス処理の実行を指示する実行指示情報をサーバ５０へ送信する（ステップ１１５）。サーバ５０におけるサービス処理実行部７４は、この画像形成装置１０からの指示に応じて、当該サービス処理機能を利用してサービス処理を実行する。そして、処理実行後、実行結果を画像形成装置１０へ返す。また、サービス処理機能削除部７５は、サービス処理の実行の終了を確認後、ダウンロードにより取得したソフトウェアを削除することで、サーバ５０のソフトウェア環境を元の状態に戻す。
【００４０】
本実施の形態においては、以上のようにしてサービス処理機能が搭載されたサーバ５０における負荷が高い場合には、当該サービス処理機能が搭載されていない負荷の低いサーバ５０が、当該ソフトウェアを取得して実行可能な環境を設定し、負荷の高いサーバ５０に代わってサービス処理を実行する。
【００４１】
なお、本実施の形態においては、起動指示情報の送信後に（ステップ１１４）、実行指示情報を別個に送信するようにしたが（ステップ１１５）、起動指示情報を実行指示情報に含めるようにしてもよい。つまり、低負荷サーバ５０は、実行指示情報の受信に応じてサービス処理を実行するための環境設定を行い、環境設定終了後、画像形成装置１０から指示を受けることなく当該サービス処理の実行を開始するようにしてもよい。
【００４２】
一方、負荷に余裕があるサーバ５０が存在しない場合（ステップ１１３でＮ）、実行制御部２７は、所定時間待機し、ステップ１０８に戻るようにしてもよい。あるいは、負荷に余裕があるサーバ５０が現れてくるまで待機して、ステップ１１３に戻るようにしてもよい。
【００４３】
また、自装置１０における負荷が高くないことから当該サービス処理の実行が可能であると判定した場合（ステップ１１２でＹ）、前述したステップ１１４，１１５に対する低負荷サーバ５０における処理と同様の処理を自装置１０に対して行う。すなわち、サービス処理機能取得部２４は、起動指示情報に含まれている情報から特定できるサーバ５０から、該当するサービス処理機能のソフトウェアをダウンロードするなどして、当該サービス処理を実行するための環境設定を行う（ステップ１１７）。その後、サービス処理実行部２５は、当該サービス処理機能を利用してサービス処理を実行する（ステップ１１８）。そして、サービス処理機能削除部２６は、サービス処理の実行の終了を確認後、ダウンロードにより取得したソフトウェアを削除することで、画像形成装置１０のソフトウェア環境を元の状態に戻す（ステップ１１９）。
【００４４】
次に、具体例をあげて本実施の形態のジョブ実行処理について説明する。
【００４５】
図６Ａ〜図６Ｄは、ジョブ実行処理の実行中におけるある時の画像形成装置１０とサーバ５０の状態を示した図である。図６Ａ〜図６Ｄに示した画像形成装置１〜３は図１，４における画像形成装置１０に、サーバ１〜５は図１，４におけるサーバ５０に、それぞれ相当する。
【００４６】
図６Ａには、サーバ１〜５のうちサーバ１〜４には、サービス処理機能Ａ〜Ｄがそれぞれ利用可能な状態で搭載されている。また、画像形成装置１及び画像形成装置３がジョブの実行中であることが示されている。また、画像形成装置１が実行しているジョブは、サービス処理機能Ａ，Ｂ，Ｃを利用する必要があり、そのために該当するサービス処理機能Ａ〜Ｃが搭載された各サーバ１〜３を用いて分散処理している。なお、各サーバ１〜３は、画像形成装置１からの指示に従い該当するサービス処理を順番にあるいは同時並行して実行する。また、画像形成装置３が実行しているジョブは、サービス処理機能Ｃ，Ｄを利用する必要があり、そのために該当するサービス処理機能Ｃ，Ｄが搭載された各サーバ３，４を用いて分散処理している。各サーバ３，４は、画像形成装置３からの指示に従い該当するサービス処理を順番にあるいは同時並行して実行する。また、複数の画像形成装置１，３から実行指示を受けているサーバ３は、基本的には指示の受付順にサービス処理を実行する。
【００４７】
この状態において、画像形成装置２は、サービス処理機能Ｃ，Ｄを利用するジョブの実行要求を受け付けると（ステップ１０１）、このジョブの実行を開始する。ここで、画像形成装置２にサービス処理機能Ｃ，Ｄが搭載されていれば（ステップ１０２でＹ）、画像形成装置２は、受け付けたジョブを自装置で実行する（ステップ１０３）。画像形成装置２に全てのサービス処理機能Ｃ，Ｄが搭載されていない場合（ステップ１０２でＮ）、画像形成装置２は、稼動状況情報の送信を各サーバ１〜５に要求することによって（ステップ１０４）、稼動状況情報を取得する（ステップ１０５）。この稼動状況情報を取得したときの状態を図６Ｂに示す。図６Ｂでは、稼動状況情報８１を取得した様子を一点鎖線で示している。
【００４８】
まず、画像形成装置２は、サービス処理機能Ｃの実行先を決定する（ステップ１０６，１０７）。そのために、自装置の負荷を調べ、自装置にサービス処理機能Ｃが搭載されていたり、負荷が低いなどで自装置において実行可能であると判断した場合（ステップ１０９でＹ）、自装置で当該サービス処理を実行する。（ステップ１０９）。一方、自装置において実行できない状態にあると判定した場合（ステップ１０９でＮ）、続いてサービス処理が実行可能なサーバが存在するかを調べる。この例では、取得した各サーバ１〜５の稼動状況情報を参照することで、サーバ３にサービス処理機能Ｃが搭載されていることが認識できるので、サーバ３の負荷の状態を確認する。この例では、サーバ３では、２つの画像形成装置１，３からサービス処理の実行要求をすでに受けているので、画像形成装置２は、サーバ３の負荷は高いと判断する。この場合（ステップ１１０でＮ）、画像形成装置２は、自装置でのサービス処理の実行の可能性について調べるが、ここでは実行できないと判断したとする。この場合（ステップ１１２でＮ）、画像形成装置２は、取得した各サーバ１〜５の稼動状況情報を参照することで、負荷の低いサーバの有無を調べる。ここで、サービス処理の実行が何も指示されていないことによってサーバ５の負荷が低いと判断すると（ステップ１１３でＹ）、画像形成装置２は、サーバ５に対し、起動指示情報を送信する（ステップ１１４）。この起動指示情報を送信したときの状態を図６Ｃに示す。図６Ｃでは、この起動指示情報８２を送信した様子を一点鎖線で示している。
【００４９】
サーバ５では、画像形成装置２から送信されてきた起動指示情報に従い、サービス処理機能Ｃが搭載されているサーバ３から当該ソフトウェアをダウンロードすることで、サービス処理機能Ｃを利用したサービス処理が実行できるように環境設定を行う。このサーバ３からソフトウェアをダウンロードした状態を図６Ｄに示す。
【００５０】
このようにして、環境設定を終了した後、サーバ５は、画像形成装置２から送信されてきた実行指示情報に従い（ステップ１１５）、当該サービス処理を実行する。当該サービス処理の実行が終了すると、その実行結果を画像形成装置２へ送信し、そして実行終了による不要となったソフトウェアをサーバ２から削除することで、サーバ２におけるソフトウェア環境を元の状態に戻す。
【００５１】
ステップ１０６に戻り、続いて、サービス処理機能Ｄについて処理を開始するが、画像形成装置２にサービス処理機能Ｄが搭載されていれば、自装置にて当該サービス処理を実行する（ステップ１０８でＹ，１０９）。搭載されいない場合（ステップ１０８でＮ）、取得した各サーバ１〜５の稼動状況情報を参照することで、サーバ４にサービス処理機能Ｄが搭載されていることが認識できるので、サーバ４の負荷の状態を確認する。この例では、サーバ４では、画像形成装置３からサービス処理の実行要求のみを受けているので、画像形成装置２は、サーバ４の負荷は高くないと判断し（ステップ１１０でＹ）、サービス処理機能Ｄを利用したサービス処理の実行をサーバ４に指示する（ステップ１１１）。この指示に従い、サーバ４は当該サービス処理を実行する。以上のようにして、画像形成装置２は、サービス処理機能Ｃを利用したサービス処理の実行をサーバ５に、サービス処理機能Ｄを利用したサービス処理の実行をサーバ４に、それぞれ指示し実行させたときの状態を図６Ｄに示す。以上のようにして、画像形成装置２が受け付けたジョブは分散処理される。
【００５２】
なお、本実施の形態では、ジョブの実行開始後に稼動状況情報を取得し（ステップ１０５）、各サービス処理をいずれかのサーバ５０あるいは自装置に割り振る際には、取得済みの稼動状況情報を参照することにしたが、ステップ１０８の直前に稼動状況情報を取得する処理を実行するようにしてもよい。つまり、各サービス処理に対して、実行するサーバ５０を決める度に、稼動状況情報を取得するようにしてもよい。あるいは、ジョブの実行とは別個に稼動状況情報を定期的に取得するようにしてもよい。また、搭載されたサービス処理機能が頻繁に変更されないのであれば、その都度取得せずにサーバ５０と各サーバ５０に搭載されているサービス処理機能の対応関係を画像形成装置１０の記憶手段等に予め設定しておいてもよい。
【符号の説明】
【００５３】
１  ネットワーク、２  クラウド、１０  画像形成装置、１１，５１  ＣＰＵ、１２  操作パネル、１３  ＩＩＴ、１４  ＩＯＴ、１５  ＩＰＳ、１６，５２  ＲＯＭ、１７，５３  ＲＡＭ、１８，５４  ハードディスクドライブ（ＨＤＤ）、１９  ネットワークインタフェース（Ｉ／Ｆ）、２０  アドレスデータバス、２１  ジョブ受付部、２２  監視サービス実行部、２３  サービス処理実行指示部、２４  サービス処理機能取得部、２５  サービス処理実行部、２６  サービス処理機能削除部、２７  実行制御部、２８  稼動状況情報送信要求部、２９  稼動状況情報取得部、５０  サーバ、５５  ＨＤＤコントローラ、５６  マウス、５７  キーボード、５８  ディスプレイ、５９  入出力コントローラ、６０  ネットワークコントローラ、６１  内部バス、、７１  稼動状況情報収集部、７２  稼動状況情報送信部、７３  サービス処理機能取得部、７４  サービス処理実行部、７５  サービス処理機能削除部。
【図１】
0005678556.tif 000002
【図２】
0005678556.tif 000003
【図３】
0005678556.tif 000004
【図４】
0005678556.tif 000005
【図５Ａ】
0005678556.tif 000006
【図５Ｂ】
0005678556.tif 000007
【図６Ａ】
0005678556.tif 000008
【図６Ｂ】
0005678556.tif 000009
【図６Ｃ】
0005678556.tif 000010
【図６Ｄ】
0005678556.tif 000011