以下、本発明の実施形態を図面に基づいて説明する。
<1.第1実施形態>
<1−1.システム構成>
図1は、本発明の第1実施形態に係る画像処理システム1の構成を示す概略図である。図1に示されるように、画像処理システム1は、MFP10(画像処理装置)とサーバコンピュータ50(50a,50b,50c)とクライアントコンピュータ70とを備える。
MFP10と各サーバコンピュータ(外部サーバあるいは単にサーバとも称する)50とクライアントコンピュータ(単にクライアントとも称する)70とは、ネットワーク108を介して互いに接続される。ネットワーク108は、LAN(Local Area Network)およびインターネットなどによって構成される。また、ネットワーク108に対する接続態様は、有線接続であってもよく、或いは無線接続であってもよい。
各サーバ50は、MFP10の外部の装置(外部装置)(外部サーバ)であり、MFP10の外部資源であるとも表現される。各サーバ50は、クラウドサーバであってもよく、オンプレミスサーバであってもよい。また、各サーバ50は、MFP10と同じLAN内のサーバ(同一LAN内サーバ)であってもよく、当該LANの外部に存在するサーバ(LAN外サーバとも称する)であってもよい。当該LAN外サーバは、MFP10と同じプライベートネットワークに所属するサーバ(同一イントラネット内サーバとも称する)であってもよく、当該プライベートネットワーク以外のネットワーク(当該プライベートネットワークの外部のネットワーク)に所属するサーバ(イントラネット外サーバとも称する)であってもよい。
ここでは、所定のLAN内にMFP10とサーバ50aとが設けられており、当該所定のLANの外部にサーバ50b,50cとクライアント70とが設けられている。LAN内の各装置とLAN外の各装置とは、ネットワークルータ40を介して接続される。また、サーバ50cは、クラウドサーバ(より詳細には、他社によって運用されているクラウドサーバ)であり、サーバ50a,50bは、オンプレミスサーバ(自社によって運用されているサーバ)である。サーバ50a,50bは、MFP10が設置されている企業のイントラネット内に設けられたサーバであるとも表現される。また、サーバ50aは、MFP10と同一LAN内のサーバであり、サーバ50bは、MFP10の所属するLANとは異なるネットワークに所属するサーバであるとも表現される。
後述するように、MFP10においては、外部アプリケーション(MFP10の外部の装置(クライアント70)にインストールされたアプリケーション)からの要求に応じて、サービスが実行され得る。また、MFP10においては、内部アプリケーション(MFP10の内部にインストールされたアプリケーション)からの要求に応じても、サービスが実行され得る。
また、後述するように、MFP10にて受け付けられた複数のサービスのうちの一部のサービス(代理実行可能サービスSB(後述))は、MFP10自身によって実行され得るものの、MFP10の外部の資源(外部資源)によっても実行(代理実行)され得る。換言すれば、当該外部資源は、MFP10にて受け付けられる各種サービスのうち少なくとも一部のサービスを代理実行することが可能な装置(あるいは装置群)である。当該外部資源としては、上述の各種のサーバ50a,50b,50c等が例示される。
MFP10は、或る時点で稼働されるべきサービス(稼働対象サービス)がMFP10によって実行されるべきか或いはMFP10に代わって外部資源によって実行(代理実行)されるべきかを決定する。稼働対象サービスの全てが外部資源によって代理実行されれば、MFP10は、省電力モードに遷移することが可能である。換言すれば、外部アプリケーションからの要求に応じて提供されるサービスを含む全てのサービスがMFP10内で実行されていない場合、MFP10は、省電力モードに遷移することが可能である。
ただし、外部資源(外部サーバ50)を利用するためには、所定時間単位(1時間単位あるいは2時間単位等)の利用料金が発生する。仮に、当該MFPにて受け付けられた全てのサービスが外部サーバで実行(代理実行)されると、外部サーバの利用コストが非常に大きくなる。
そこで、この実施形態では、外部サーバの利用を適切に制限することによって、外部資源の利用コストを抑制しつつMFP10の省電力化を図る。詳細については後述する。
なお、各サーバ50(50a,50b,50c)においては、複数の仮想マシンVM(VM11,VM12,...(図4参照))が構築されている。各仮想マシンVM(VM11,VM12,...)は、ゲストOS(Operating System:オペレーティングシステム)上にサービス処理用のアプリケーションソフトウエア(サーバアプリケーション)がインストールされて構築されている。当該各仮想マシンVMは、仮想サーバ(仮想サーバ資源)とも称される。MFP10の外部資源は、外部装置(外部サーバ等)内の仮想マシンVMに構築された仮想サーバ資源等を含む。なお、図4は、各装置10,50,70におけるソフトウエア構成等を示す図である。
また、MFP10においても、複数の仮想マシンVM(VM1,VM2,...(図4参照))が構築されている。MFP10の各仮想マシンVM(VM1,VM2,...)は、外部サーバ50の各仮想マシンVM(VM11,VM12,...)と同様の構成を備える。MFP10の当該仮想マシンVM(VM1,VM2,...)は、MFP10内部の仮想マシンであることから、内部資源(内部仮想サーバ資源)などとも称される。
後述するように、MFP10(サービス配置制御部23)は、当該MFP10によって受け付けられた各稼働対象サービスを何れの仮想マシン(MFP10内部の仮想マシンVM(VM1,VM2,...)、あるいは、外部資源の仮想マシンVM(VM11,VM12,...))に配置するかを決定する。
<1−2.MFP10の構成>
図2は、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))10の機能ブロックを示す図である。
MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置(複合機とも称する)である。具体的には、MFP10は、図2の機能ブロック図に示すように、画像読取部2、印刷出力部3、通信部4、格納部5、操作部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。なお、MFP10は、画像処理装置あるいは画像形成装置などとも表現される。
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像なしいスキャン画像とも称する)を生成する処理部である。この画像読取部2は、スキャン部であるとも称される。
印刷出力部3は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。このMFP10は、電子写真方式のプリンタ(フルカラープリンタ)でもあり、印刷出力部3は、露光部、現像部、転写部、定着部などの各種のハードウエア機構を有している。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク108を介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先(たとえば、サーバ50およびクライアント70)との間で各種のデータを授受することが可能である。通信部4は、各種データを送信する送信部4aと各種データを受信する受信部4bとを有する。
格納部5は、ハードディスクドライブ(HDD)等の記憶装置で構成される。
操作部6は、MFP10に対する操作入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。このMFP10においては、略板状の操作パネル部6c(図1参照)が設けられ、当該操作パネル部6cは、その正面側にタッチパネル25(図1参照)を有している。タッチパネル25は、液晶表示パネルに圧電センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの操作入力を受け付けることが可能である。たとえば、タッチパネル25においては、メニュー画面等の各種の画面(ボタン画像等を含む)等が表示される。操作者は、タッチパネル25内に仮想的に配置されるボタン(ボタン画像で表現されるボタン)を押下することによって、MFP10の各種設定内容を変更することなどが可能である。タッチパネル25は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。
コントローラ(制御部)9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM(登録商標))内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されてMFP10にインストールされるようにしてもよい。あるいは、当該プログラムは、ネットワーク等を経由してダウンロードされてMFP10にインストールされるようにしてもよい。
具体的には、図2に示すように、コントローラ9は、当該プログラムの実行により、通信制御部11と入力制御部12と表示制御部13と動作制御部14とモード制御部15とAPIゲートウエイ管理部21と履歴情報取得部22とサービス配置制御部23と外部サーバ管理部24と仮想マシン管理部26とを含む各種の処理部を実現する。
通信制御部11は、他の装置(サーバ50等)との間の通信動作を制御する処理部である。たとえば、通信制御部11は、通信部4および外部サーバ管理部24等と協働して、クライアント70からのサービス要求指令等を受信し、サーバ50に対して(外部資源の)確保指令等を送信する。
表示制御部13は、表示部6bにおける表示動作を制御する処理部である。表示制御部13は、MFP10を操作するための操作画面等を表示部6bに表示させる。
入力制御部12は、操作入力部6aに対する操作入力動作を制御する制御部である。たとえば、入力制御部12は、操作画面に対する操作入力を受け付ける動作を制御する。
動作制御部14は、MFP10における印刷出力動作、スキャン動作、ファクシミリ通信動作等を制御する制御部である。
モード制御部15(スリープ制御部とも称する)は、MFP10における動作モード(通常モード/省電力モード)を制御する処理部である。モード制御部15は、たとえば、複数のサービスのMFP10内での非実行時に、当該MFP10自身を「通常モード」から「省電力モード」に遷移させることが可能である。ここで、「省電力モード」は、「通常モード」よりも小さな消費電力を有する動作モードである。「省電力モード」は、スリープモードなどとも称される。省電力モードにおいては、外部アプリケーションおよびローカル操作部(MFP10自身の操作部)からのサービス要求を検知するために必要な部分(サービス要求検知部分(サービス要求検知用の処理部(通信部4等)))以外への電力供給が停止される。電力供給を限定することで消費電力を大幅に削減することができる。外部アプリケーションおよびローカル操作部からのサービス要求が検知されると、MFP10は、電源供給を再開して通常モードへ移行し、検知したサービスの実行を通常モードにて継続することができる。
APIゲートウエイ管理部21は、サービスに関する要求をクライアント70(外部アプリケーション)から受け付ける処理部である。APIゲートウエイ管理部21は、API(Application Programming Interface(アプリケーションプログラミングインタフェース))を利用してクライアント70(外部アプリケーション)からの要求を受け付ける。
なお、外部資源によって実行されるべき旨がサービス配置制御部23(後述)によって決定されたサービスに関しては、MFP10からルータ40へ経路変更指令が付与される。当該経路変更指令の付与後においては、MFP10を経由することなく、クライアント70から外部資源(外部サーバ50等)への直接のアクセスによって(APIゲートウエイ管理部21を経由せずに)、当該サービスが当該外部資源によって実行される。これによって、MFP10が省電力モードを有している場合等においては、MFP10が省電力モード(スリープ状態)を維持したまま、クライアント70から要求された当該サービスが当該外部資源によって実行され得る。ただし、これに限定されず、省電力モードにおいても(電力供給が維持されて)稼働しているサービス要求検知機能(サービス要求検知部分等)の一部に、サービス配置制御部23(後述)によって決定された情報を参照して配置先の外部サーバに要求を転送する機能(転送処理部等)を含めても良い。換言すれば、省電力モードにおいても電力供給が維持される転送処理部等を用いて、配置先の外部サーバに要求が転送されるようにしてもよい。これによれば、ルータ40に経路変更を依頼することなく、MFP10が省電力モードを維持したまま、クライアント70から要求された当該サービスを当該外部資源によって実行することが可能である。
また、外部資源の時間貸しが終了する時点で当該外部資源上で実行中のサービス(換言すれば、当該サービスの実行装置(当該外部資源))は、ルータ40(またはMFP10のサービス要求検知部分)に対して、経路変更の指示を行い、クライアント70からの要求をMFP10が受けるように変更する。これによれば、MFP10をスリープ状態から復帰させること(スリープ復帰)を要さずに、経路を変更することが可能である。
履歴情報取得部22は、格納部5内に格納されたサービス稼働履歴情報210(図5参照)を当該格納部5から抽出して取得する処理部である。サービス稼働履歴情報210(後述)は、複数のサービスのそれぞれに関するサービス稼働履歴情報であって過去のサービス稼働状況を時間帯別に管理するサービス稼働履歴情報である。
サービス配置制御部23は、サービス配置決定部(あるいは単に決定部)などとも称される。サービス配置制御部23は、外部アプリケーションからの要求等に応じてMFP10によって受け付けられた各稼働対象サービスを何れの仮想マシン(MFP10内の仮想マシン、あるいは、外部資源の仮想マシン)に配置するか、を決定する処理部である。換言すれば、サービス配置制御部23は、MFP10によって受け付けられた各稼働対象サービスがMFP10と外部資源(サーバ50等)とのいずれによって実行されるべきかを決定する処理部である。換言すれば、サービス配置制御部23は、各稼働対象サービスが、当該サービスの直接的な要求先であるMFP10自身(本来の要求先装置)によって実行されるべきであるか、あるいは、サーバ50(代理装置)によって代理実行されるべきかを決定する。また、サービス配置制御部23は、外部サーバ管理部24および仮想マシン管理部26と協働して、サービスの実行動作を管理する(図4も参照)。
仮想マシン管理部26(MFP10内の仮想マシン管理部)は、MFP10内部の仮想マシンVM(VM1,VM2,...)(図4参照)を管理する処理部である。
外部サーバ管理部24は、外部資源確保部(あるいは単に確保部)などとも称される。外部サーバ管理部24は、稼働対象サービスがMFP10(本来の要求先装置)に代わって外部資源(外部装置)によって実行(代理実行)されるべき旨が決定される場合、当該稼働対象サービスを実行する外部資源を確保する処理部である。具体的には、外部サーバ管理部24は、サーバ50内のサーバホスティングサービス管理部65(図3および図4参照)、およびサーバ50内の仮想マシン管理部66等と連携して、当該稼働対象サービスを実行するための外部資源(外部の仮想サーバ資源等)を確保する。また、外部サーバ管理部24は、確保していた外部資源の解放処理をも実行する。
詳細には、外部サーバ管理部24は、サーバ50(サーバホスティングサービス管理部65)に対して、外部資源の確保指令等を送信することによって、サーバ50内の仮想マシン資源等(外部資源)を確保する。また、外部サーバ管理部24は、サーバ50(サーバホスティングサービス管理部65)に対して、外部資源の解放指令等を送信することによって、サーバ50内の仮想マシン資源等(外部資源)を解放する。
また、外部サーバ管理部24は、稼働対象サービス(代理実行可能サービスSB)の代理実行で利用されるデータ(仮想サーバデータとも称する)等を、サーバ50(サーバホスティングサービス管理部65)との間で授受することができる。外部資源の確保および解放に伴って当該データ等が授受されることによって、稼働対象サービスの実行装置がMFP10とサーバ50(外部資源)との間で変更される場合にも、他の実行装置でそれまでに実行されてきた処理を引き継いで実行することが可能である。なお、代理実行で利用されるデータ(仮想サーバデータ)としては、稼働対象サービスを実行している仮想サーバのディスクイメージのスナップショットデータが例示される。当該データは、種類が異なる仮想マシン間で互換性があるオープン仮想化フォーマット(Open Virtualization Format、略してOVF)形式などで作成される。
<1−3.サーバ50の構成>
次に、図3を参照しながら、サーバ50の構成について説明する。図3は、サーバ50の機能ブロックを示す図である。
サーバ50は、いわゆるコンピュータ装置などの情報処理装置により構成される。サーバ50は、管理サーバなどとも表現される。また、サーバ50は、MFP10の外部のサーバであることから、外部サーバ、あるいは(MFP10の)外部資源などとも称される。
サーバ50は、図3の機能ブロック図に示すように、通信部54、格納部55、操作部56およびコントローラ59等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
通信部54は、ネットワーク108を介したネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、サーバ50は、所望の相手先(MFP10等)との間で各種のデータを授受することが可能である。通信部54は、各種データを送信する送信部54aと各種データを受信する受信部54bとを有する。
格納部55は、ハードディスクドライブ(HDD)等の記憶装置で構成される。
操作部56は、サーバ50に対する操作入力を受け付ける操作入力部56aと、各種情報の表示出力を行う表示部56bとを備えている。
図3のコントローラ(制御部)59は、サーバ50に内蔵され、サーバ50を統括的に制御する制御装置である。コントローラ59は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ59は、CPUにおいて、記憶部(半導体メモリ等)内に格納されている所定のプログラム(OSおよびアプリケーション等)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、可搬性の記録媒体(CD−ROMおよびUSBメモリなど)に記録され、当該記録媒体から読み出されてサーバ50にインストールされてもよい。あるいは、当該プログラムは、ネットワーク等を経由してダウンロードされてサーバ50にインストールされるようにしてもよい。
コントローラ59は、当該プログラムの実行により、通信制御部61と入力制御部62と表示制御部63とサーバホスティングサービス管理部65と仮想マシン管理部66とを含む各種の処理部を実現する。
通信制御部61は、通信部54等と協働して、MFP10等との通信動作を制御する処理部である。たとえば、通信制御部61は、サーバホスティングサービス管理部65および通信部54等と協働して、外部資源の決定および外部資源の確保等に関する指令(MFP10からの指令およびMFPへの指令)の送受信動作を制御する。
入力制御部62は、操作入力部56aに対する操作入力動作を制御する制御部である。
表示制御部63は、表示部56b等における表示動作を制御する処理部である。
仮想マシン管理部66は、サーバ50内部(自装置内)の仮想マシンVM(VM11,VM12,...)(図4参照)を管理する処理部である。なお、当該仮想マシンVM(VM11,VM12,...)は、MFP10から見て外部の仮想マシン等であることから、上述のように、外部の仮想マシン(あるいは外部の仮想サーバ資源)等とも称される。
サーバホスティングサービス管理部65は、サーバ50(自装置)の仮想マシン管理部26(図2および図4参照)、およびMFP10の外部サーバ管理部24(図2および図3参照)等と連携して、サービスの実行動作を管理する。また、サーバホスティングサービス管理部65は、外部サーバ管理部24および仮想マシン管理部66等と協働して、MFP10で受け付けられた稼働対象サービスを実行するための外部資源(外部の仮想サーバ資源等)(代理装置とも称する)を確保する処理(確保処理)、および当該確保された外部資源(代理装置)を解放する処理(処理)等をも管理する。
なお、或るサービスに関してMFP10の代理装置(代理サーバ)として確保された外部サーバ50(詳細には、外部サーバ50内の仮想マシンVM等)は、MFP10を介さずに、当該サービスを提供する。具体的には、当該代理装置は、当該サービスの実行要求をMFP10を介さずにクライアント70(外部アプリケーション)から直接受信し、当該実行要求に応じて当該サービスを実行する。また、当該代理装置は、必要に応じて、当該サービスの処理結果をクライアント70(外部アプリケーション)へと送信する。
あるいは、MFP10の省電力モードにおいても稼働可能な(維持される)サービス要求検知機能の一部に、外部サーバへの要求転送機能が含まれる場合(換言すれば、省電力モードにおいても電力供給が維持される転送処理部等を用いて、配置先の外部サーバに要求が転送される場合)には、MFP10がクライアント70からのサービスの実行要求を受信すると、当該MFP10(転送処理部等)が当該サービスを転送先装置(代理装置)に転送するようにしてもよい。また、当該MFP10(転送処理部等)が、当該サービスの転送先装置でのサービスの処理結果を当該転送先装置から受信するとともに、当該処理結果をクライアント70へ転送するようにしてもよい。
<1−4.クライアントコンピュータ70の構成>
クライアントコンピュータ70は、パーソナルコンピュータなどの情報処理装置により構成される。クライアントコンピュータ70は、サーバコンピュータ50と同様の物理的構成を有しており、通信部、操作部、格納部、コントローラ(CPUおよび半導体メモリ等を含む)等を備えている。
クライアント(クライアントコンピュータ)70のコントローラは、そのCPUにおいて、所定のプログラムを実行することによって、各種の処理を実現する。
具体的には、クライアント70には、複数のアプリケーションプログラム(以下、単にアプリケーションとも称する)がインストールされている。より詳細には、クライアント70には、後述する代理実行可能サービスSB(サービスS1,S2,S3等)の実行要求を送出するアプリケーションAP1,AP2,AP3がインストールされている。各アプリケーションAP1,AP2,AP3は、対応する各サービス(S1,S2,S3等)の実行要求(実行指令)をMFP10に対して送信する処理等を実行する。クライアント70は、MFP10に対してサービスを要求する装置であることから、サービス要求装置などとも称される。なお、1つのアプリーケーションが複数のサービスの実行要求をMFP10に対して送信することも可能である。
なお、上述のように、MFP10は、サービスの実行要求を受信すると、当該サービスを実行すべき装置を決定する。具体的には、MFP10は、当該サービスをMFP10自身で実行すべきか或いはMFP10の外部資源(外部サーバ50等)で代理実行すべきかを決定する。また、MFP10は、その決定結果に基づき、外部サーバ50を確保する動作等をも実行する。
<1−5.サービス分類>
本システムにおいて実行される複数のサービス(S0,S1,S2,S3,...)は、MFP10の外部資源によって代理実行され得るサービスであるか否かという観点で、次の2種類のサービスSA,SBに大別される。
サービスSA(代理実行不可サービス)は、MFP10と外部資源(外部サーバ50等)とのうちMFP10によってのみ実行可能であり外部資源による代理実行が不可能なサービスである。端的に言えば、サービスSAは、MFP10による実行のみが可能なサービスである。サービスSAは、MFP10によって実行され得るものの、外部資源による代理実行が不可能なサービスであり、代理実行不可サービス(あるいは代行不可サービスとも)とも称される。なお、代理実行不可サービスSAは常にMFP10によって実行されるので、代理実行不可サービスSAの稼働中においてはMFP10は省電力モードに遷移することができない。
たとえば、サービスを受け付けたMFP10のハードウエア(印刷出力部、画像読取部、ファクシミリ送信部、ボックス(格納部)等)を利用する画像処理サービス等が、代理実行不可サービスSAに該当する。より詳細には、代理実行不可サービスSAとしては、MFPの操作部を用いたコピージョブ機能の提供サービスS0等が例示される。なお、当該サービスS0は、外部アプリケーションからの要求に応じてではなく、MFP10の内部にインストールされたアプリケーション(コピージョブ操作用アプリケーション)からの要求に応じて、MFP10により提供され得るサービスである。
一方、サービスSB(代理実行可能サービス)は、MFP10に代わって外部資源(外部サーバ50等)によって実行されることが可能なサービスである。換言すれば、サービスSBは、MFPによる実行が可能であり且つ外部資源による実行も可能なサービスである。サービスSBは、外部資源による代理実行が可能なサービスであり、代理実行可能サービス(代行可能サービスとも称する)とも称される。なお、代理実行可能サービスSBが外部資源によって代理実行される場合、当該代理実行可能サービスSBの稼働中(外部資源による代理実行中)においてもMFP10は省電力モードに遷移する可能性がある。
サービスSB(代行可能サービス)としては、例えば、装置情報取得サービスS1、文書処理サービスS2、およびユーザ管理サービスS3等が例示される。
装置情報取得サービスS1は、MFP10(画像処理装置)の装置情報取得サービスである。装置情報取得サービスS1は、クライアント70にインストールされている装置情報取得アプリケーションAP1(図4参照)からの要求に応じて、MFP10側で実行されるサービスである。装置情報取得アプリケーションAP1(外部アプリケーション)は、装置情報(カウンタ情報等)を1又は複数のMFP10から定期的に収集するアプリケーションである。たとえば、装置情報取得アプリケーションAP1から当該サービス(装置情報取得サービスS1)の実行要求を受け付けた各MFP10は、自装置(MFP10)に格納された装置情報を取得し、当該装置情報をクライアント装置70に返信する旨のサービスを提供する。これにより、装置情報取得アプリケーションAP1は、装置情報(カウンタ情報等)を1又は複数のMFP10から定期的に収集することができる。
文書処理サービスS2は、所定の文書処理を実行するサービスである。文書処理としては、翻訳処理が例示される。文書処理サービスS2は、クライアント70にインストールされている文書処理アプリケーションAP2(図4参照)からの要求に応じて、MFP10側で実行されるサービスである。たとえば、文書処理アプリケーションAP2(外部アプリケーション)は、所定の時刻に所定の文書処理(翻訳処理等)をMFP10にて実行させるアプリケーションである。文書処理アプリケーションAP2は、たとえば、毎日定時(14時等)に或る文書(日報等)の翻訳処理の実行要求をMFPに送信する。文書処理アプリケーションAP2から当該サービス(文書処理サービスS2)の実行要求(たとえば翻訳処理の実行要求)を受け付けたMFP10は、当該要求に応じて翻訳処理を実行し、その翻訳処理の結果(翻訳後の文書)をクライアント70に返信する。これにより、文書処理アプリケーションAP2は、所定の時刻に所定の文書処理(翻訳処理等)をMFP10に実行させることが可能である。
ユーザ管理サービスS3は、ユーザの使用情報を管理する(詳細には、ユーザの使用情報を取得して送信する)サービスである。ユーザ管理サービスS3は、クライアント70にインストールされているユーザ管理アプリケーションAP3(図4参照)からの要求に応じて、MFP10側で実行されるサービスである。ユーザ管理アプリケーションAP3(外部アプリケーション)は、定期的に(たとえば、1日1回程度(始業前の時間帯)(6時から8時の時間帯)において)ユーザの使用情報を1又は複数のMFP10から受信して、当該ユーザの使用情報を管理するアプリケーションである。ユーザ管理アプリケーションAP3は、MFP10の複数のユーザの使用情報の送信要求を定期的にMFPに送信する。ユーザ管理アプリケーションから当該サービス(ユーザ管理サービスS3)の実行要求(各ユーザの使用情報の送信要求)を受け付けたMFP10は、当該要求に応じて各ユーザの使用情報の取得処理を実行し、当該取得処理の結果(各ユーザの使用情報)をクライアント70に返信する。
ここにおいて、サービスSB(S1,S2,S3)は、当該MFP10自身によって実行されることが可能であるとともに、当該MFP10以外の外部装置(外部資源)によって実行(代理実行)されることも可能である。当該外部資源で実行される場合には、MFP10は、当該サービスで利用すべき各種情報を予め(省電力モードへの遷移前(スリープ遷移前とも称する)において)当該外部資源(外部サーバ50等)に送信しておく。たとえば、サービスS1に関しては、MFP10の装置情報(カウンタ情報等)がスリープ遷移直前においてMFP10から当該外部資源へと送信されればよい。また、サービスS2に関しては、文書処理(翻訳処理等)の対象文書データがスリープ遷移直前においてMFP10から当該外部資源へと送信されればよい。同様に、サービスS3に関しては、MFP10内に格納された各ユーザ情報(各ユーザの使用情報等)がスリープ遷移直前においてMFP10から当該外部資源へと送信されればよい。
以上のように、本システムにおいて実行され得る複数のサービス(S0,S1,S2,S3,...)は、代理実行可能サービスSBと代理実行不可サービスSAとを含み得る。
これらのサービスSA,SBのいずれもがMFP10によって実行されていない場合、MFP10は省電力モードに遷移することが可能である。
なお、上記のサービスS1,S2,S3(SB)は、外部アプリケーション(MFP10の外部の装置(クライアント70)にインストールされたアプリケーション)からの要求に応じて提供されるサービスであるとも表現される。一方、上記のサービスS0(SA)は、内部アプリケーション(MFP10の内部にインストールされたアプリケーション)からの要求に応じて提供されるサービスであるとも表現される。ただし、サービスSA,SBは、それぞれ、外部アプリケーションからの要求に応じて提供されることもあり、内部アプリケーションからの要求に応じて提供されることもある。
<1−6.サービス稼働履歴情報>
図5は、複数のサービスのそれぞれに関するサービス稼働履歴情報の一例を示す図である。図5のサービス稼働履歴情報210においては、複数のサービスS0,S1,S2,S3のそれぞれに関する過去(ここでは前日)の稼働状況(稼働履歴)が時間帯別に(ここでは、2時間を単位とする各時間帯ごとに(所定単位の時間帯ごとに))に記録されている。
本願においては、サービス(クライアント70からの要求に応じてMFP10にて受け付けられたサービス)の「稼働」状態は、当該サービスの(実際の)実行主体(実行装置)がMFP10自身である態様と当該実行主体がMFP10の代理装置(代理実行装置とも称する)である態様とのいずれをも含み得る。
サービス稼働履歴情報210においては、各サービスの(実際の)実行装置を問わずに、当該各サービスの各時間帯における稼働状況が判別されて示されている。より具体的には、各サービスがMFP10で稼働されていたか或いは当該MFP10以外の資源(外部資源)で稼働されていたかを問わずに、当該各サービスの各時間帯における稼働状況が判別されて示されている。
また、ここでは、過去の或る時間帯において或るサービスが所定程度以上(たとえば50%)稼働していた場合、当該或るサービスが当該或る時間帯に稼働していた旨が判定されるものとする。そのような判定がなされた時間帯は、当該或るサービスの「稼働時間帯」とも称され、図5においてクロスハッチングを付して示されている。当該稼働時間帯は、稼働履歴においてそのサービスの稼働時間が占める割合が所定値以上である時間帯であるとも表現される。
図5においては、サービスS0(代理実行不可サービス(代行不可サービス)SA)に関する8時(午前8時)から18時(午後6時)までの期間の欄に対して、クロスハッチングが付されている。サービスS0に関する当該期間(8時から18時までの期間)の欄に付された当該クロスハッチングは、当該期間が当該サービスS0(代行不可サービスSA)の稼働時間帯TAであることを示している。
また、図5においては、代理実行可能サービス(代行実行不可サービス)SBに関する稼働期間も示されている。具体的には、3つのサービスS1,S2,S3(各代行可能サービス)に関して、各稼働期間が示されている。図5では、各サービスS1,S2,S3の各「稼働時間帯」に対してクロスハッチングが付されている。詳細には、サービスS1の稼働時間帯は、全ての時間帯(0時から24時までの期間)である旨が示されている。また、サービスS2の稼働時間帯は「14時から18時までの期間」である旨、およびサービスS3の稼働時間帯は「6時から8時までの期間」である旨が示されている。
なお、ここでは、前日のサービス稼働状況がサービス稼働履歴情報210として示されているが、これに限定されない。たとえば、サービス稼働履歴情報210は、過去の他の特定の1日(たとえば、前週の同じ曜日の日(先週の火曜日等))のサービス稼働状況でもよい。また、サービス稼働履歴情報210は、過去の複数の日(たとえば1ヶ月)に関する稼働状況が時間帯別に集計(平均化等)されたもの等であってもよい。
また、各時間帯は、2時間を単位とするものでなくてもよく、他の所定時間(たとえば、1時間、3時間、あるいは30分等)を単位とするものであってもよい。
<1−7.動作概要>
このMFP10においては、「稼働対象サービス」(或る時点(現時点等)で稼働されるべきサービス)が代理実行不可サービスSAであるか或いは代理実行可能サービスSBであるか等に応じて、当該稼働対象サービスの実行装置が決定される。
「稼働対象サービス」が代理実行不可サービスSAである場合、当該稼働対象サービスは常にMFP10によって実行されるべき旨が決定される(図9参照)。図9においては、稼働対象サービスがサービスS0(代理実行不可サービスSA)である場合、サービスS0の実行装置は、全時間帯においてMFP10である旨が示されている。換言すれば、サービスS0が何れの時間帯に稼働すべきである場合であっても、当該サービスS0はMFP10自身によって実行される。
また、「稼働対象サービス」が代理実行可能サービスSBである場合、他の稼働対象サービスとして代理実行不可サービスSAが存在するときには、当該稼働対象サービスは常にMFP10によって実行されるべき旨が決定される。
より具体的には、全稼働対象サービスの中に代理実行不可サービスSAが含まれるか否かに基づいて、当該稼働対象サービスの実行装置が決定される(図7のステップSP12,SP13,SP22参照(後述))。特に、或る時点で稼働されるべき「稼働対象サービス」として複数のサービスが存在する場合において、当該複数のサービス(「稼働対象サービス」)が代理実行不可サービスSAを含む場合には、当該複数のサービスのいずれもがMFP10によって実行されるべき旨が決定される。
これに対して、「稼働対象サービス」が代理実行可能サービスSBである場合において他の稼働対象サービスとして代理実行不可サービスSAが存在しないときには、サービス稼働履歴情報210(図5参照)にも基づいて、当該稼働対象サービスの実行装置が決定される。換言すれば、或る時点で稼働されるべき「稼働対象サービス」として複数のサービスが存在する場合において、当該複数のサービス(「稼働対象サービス」)が代理実行不可サービスSAを含まず代理実行可能サービスSBのみで構成される場合には、次のような概略動作によって稼働対象サービスの実行装置が決定される。
図6には、時間帯毎の各サービス(代理実行可能サービスSB)の実行装置の決定結果の一例が示されている。図6においては、全ての稼働対象サービスの中に代理実行不可サービスSAが含まれないことを前提として、各代理実行可能サービスS1,S2,S3が時間帯ごとに何れの実行装置で実行されるべきであるかが示されている。
図6においては、各サービスの実行装置に対応する時間帯欄に、ハッチング(詳細には斜めハッチングあるいは砂地ハッチング)が付されている。より詳細には、MFP10がサービスの実行装置として決定される時間帯欄には、斜めハッチングが付されており、外部資源(外部サーバ50)がサービスの実行装置として決定される時間帯欄には、砂地ハッチングが付されている。このように、図6においては、複数のサービスの時間帯別の実行装置が纏めて示されている。
また、図10〜図12においては、それぞれ、各サービスの実行装置が時間帯別に示されている。図10では、サービスS1の実行装置が時間帯別に示されており、図11では、サービスS2の実行装置が時間帯別に示されており、図12では、サービスS3の実行装置が時間帯別に示されている。
また、図13においては、或る時刻が時間帯TAに属する場合、各代理実行可能サービスS1,S2,S3がMFP10で実行されること(後述)が示されている。図14においては、或る時刻が時間帯TAに属さず且つ各代理実行可能サービスS1,S2,S3の稼働履歴における稼働時間帯に属しない場合、各代理実行可能サービスS1,S2,S3がMFP10で実行されること(後述)が示されている。また、図15においては、或る時刻が時間帯TAに属さず且つ各代理実行可能サービスS1,S2,S3の稼働履歴における稼働時間帯に属する場合、各代理実行可能サービスS1,S2,S3が外部資源で実行されること(後述)が示されている。
なお、図10〜図15においても、全稼働対象サービスの中に代理実行不可サービスSAが含まれないことを前提としている。
さて、上述のように、「稼働対象サービス」が代理実行可能サービスSBである場合(図10〜図12参照)において他の稼働対象サービスとして代理実行不可サービスSAが存在しないときには、サービス稼働履歴情報210にも基づいて、当該稼働対象サービスの実行装置が決定される。
詳細には、「稼働対象サービス」が代理実行可能サービスSBである場合、着目時点(代理実行可能サービスSBが稼働されるべき或る時点)(換言すれば、当該着目時点に対応する過去の特定の時間帯)が「時間帯TA」(稼働履歴における代理実行不可サービスSAの稼働時間帯)に属していない旨がサービス稼働履歴情報210に基づき判定されることを条件として、当該稼働対象サービスは外部資源(MFP10の外部装置50等)によって代理実行されるべき旨、が決定される。
より具体的には、まず、図13に示されるように、「稼働対象サービス」が代理実行可能サービスSBである場合、着目時点(現時点等)が時間帯TA(換言すれば、当該時間帯TAと同じ時間帯)に属する旨が、サービス稼働履歴情報210に基づき判定されるときには、当該稼働対象サービスがMFP10にて実行されるべき旨が決定される。時間帯TA(図5も参照)は、代理実行不可サービスSA(MFP10でのみ実行可能なサービス)が稼働されることに起因してMFP10におけるスリープ状態の維持が困難な時間帯であると推定されるので、当該稼働対象サービスはMFP10によって実行されるべき旨が決定される。
たとえば、図12および図13に示されるように、サービスS3(代理実行可能サービスSB)が或る日の15時に受け付けられた場合、MFP10は、サービス稼働履歴情報210(図5)を参照して、現時点(15時)が時間帯TAに属している旨を判定する。換言すれば、MFP10は、現時点(15時)に対応する過去の時間帯(14時から16時までの期間)が時間帯TAに属している旨を判定する。このとき、MFP10は、当該稼働対象サービスS3がMFP10自身によって実行されるべき旨を決定する。サービスS3が、時間帯TA内の他の時刻に受け付けられた場合にも、同様に、サービスS3はMFP10自身によって実行されるべき旨が決定される。また、他のサービスS1,S2に関しても同様である。すなわち、サービスS1(および/またはS2)が時間帯TA内の時刻に受け付けられた場合にも、同様に、サービスS1(および/またはS2)はMFP10自身によって実行されるべき旨が決定される(図10、図11および図13も参照)。このように、各サービスS1,S2,S3がそれぞれ時間帯TA内にて受け付けられた場合、当該各サービスS1,S2,S3がMFP10自身によって実行されるべき旨が決定される(特に図13参照)。
仮に、時間帯TAにおいて代理実行可能サービスSBが外部資源によって実行される場合には、当該外部資源の利用コスト(利用料金)が発生する。その場合、時間帯TAにおいてはMFP10はスリープ状態に遷移し難いにもかかわらず、当該外部資源の利用コストが発生する。
これに対してこの実施形態では、図6に示されるように、稼働対象サービスが代理実行可能サービスSBのみである場合において、現時点が時間帯TA(サービス稼働履歴情報210における代理実行不可サービスSAの稼働時間帯)に属するときには、当該代理実行可能サービスSBは、いずれもMFP10にて実行される。これによれば、外部資源(外部サーバ等)を利用せずに済むので、当該外部資源の利用コストの発生を回避あるいは抑制することが可能である。
一方、現時点が時間帯TAに属していない旨がサービス稼働履歴情報210に基づき判定される場合、原則として、当該稼働対象サービスが外部資源(MFP10の外部装置50等)によって代理実行されるべき旨が決定される。ここにおいて、時間帯TA以外の時間帯は、代理実行不可サービスSAが稼働されないことに起因してMFP10におけるスリープ状態の維持が比較的容易な時間帯であると考えられる。そのため、この場合には、原則として、当該稼働対象サービスが外部資源によって実行されるべき旨が原則として決定される。
ただし、この実施形態では、稼働対象サービスが代理実行可能サービスSBである場合において、MFP10は、現時刻に対応する過去の特定の時間帯にて当該稼働対象サービスが稼働していた旨がサービス稼働履歴情報210に基づき判定されることをも条件として、稼働対象サービスが外部資源によって代理実行されるべき旨を決定する。換言すれば、代理実行可能サービスSB(たとえばS3)の稼働時間帯TB(たとえばTB3)(図5では、午前6時から午前8時)に現時点が属していることをも条件として、当該代理実行可能サービスSB(S3等)が外部資源によって代理実行されるべき旨が決定される(図15も参照)。
たとえば、図15(および図12)に示されるように、サービスS3(代理実行可能サービスSB)が或る日の午前6時30分に受け付けられた場合、MFP10は、サービス稼働履歴情報210を参照して、現時点に対応する時間帯(過去の対応時間帯)(午前6時から午前8時までの期間)が稼働時間帯TAに属していない旨を判定する。さらに、MFP10は、サービス稼働履歴情報210を参照して、過去の当該対応時間帯(午前6時から午前8時までの期間)にて当該稼働対象サービスが所定程度(たとえば50%)以上稼働していた旨(図5参照)がサービス稼働履歴情報210に基づき判定されることをも条件として、当該稼働対象サービスが外部資源によって代理実行されるべき旨を決定する。換言すれば、MFP10は、過去の当該対応時間帯が当該稼働対象サービスの稼働時間帯である旨(図5参照)がサービス稼働履歴情報210に基づき判定されることをも条件として、当該稼働対象サービスが外部資源によって代理実行されるべき旨を決定する。より詳細には、MFP10は、当該稼働対象サービスS3がMFP10自身ではなく外部資源(サーバ50(50a等))によって実行されるべき旨を決定する。
このように、現時点が時間帯TAに属していない場合において、受け付けられているサービスS3(代理実行可能サービスSB)の稼働時間帯TB3(サービス稼働履歴情報210における当該サービスS3の稼働時間帯TB3)(図5参照)に現時点が属しているときには、当該稼働対象サービスS3がMFP10自身ではなく外部資源(サーバ50(50a等))によって実行されるべき旨が決定される(図15も参照)。
現時点の対応時間帯がサービスS3の稼働時間帯TB3に属する旨が判定される場合、本日の同じ時間帯(現時間帯)においても、所定程度以上の期間に亘ってサービスS3が実行される可能性が高いと考えられる。そこで、この場合には、上述のように外部資源(サーバ50(50a等))によって実行されるべき旨が決定される。当該サービスが外部資源によって代理実行されることによれば、MFP10が省電力モードに遷移し易くなる。
また、他のサービスに関しても同様である。たとえば、サービスS1が、時間帯TA以外の或る時点(18時30分)に受け付けられ、且つ当該或る時点に対応する過去の時間帯が当該サービスS1の稼働時間帯TB1(図5参照)に属する場合、サービスS1は外部資源(外部サーバ50)によって実行されるべき旨が決定される(図15参照)。
一方、稼働対象サービスが、時間帯TA以外の或る時点に受け付けられ、且つ当該或る時点に対応する過去の時間帯が当該稼働対象サービスの稼働時間帯に属しない場合、当該稼働対象サービスはMFP10自身によって実行されるべき旨が決定される(図14参照)。
たとえば、図14(および図12)に示されるように、サービスS3(代理実行可能サービスSB)が或る日の20時30分(午後8時30分)に受け付けられた場合、MFP10は、現時刻(20時30分)に対応する過去の特定の時間帯(20時から22時までの期間)にて当該稼働対象サービス(代理実行可能サービスSB)が稼働していなかった旨(図5参照)をサービス稼働履歴情報210に基づき判定する。このときには、MFP10は、当該稼働対象サービス(S3)が(外部資源ではなく)MFP10自身によって代理実行されるべき旨を決定する。
このようにサービスS3が、時間帯TA以外の或る時点に受け付けられ、且つ当該或る時点に対応する過去の時間帯が当該サービスS3の稼働時間帯TB3に属しない場合、サービスS3はMFP10自身によって実行されるべき旨が決定される(図14参照)。
現時点の対応時間帯がサービスS3の稼働時間帯TB3に属しない旨が判定される場合、現時点で発生したサービスS3は、所定程度以上の期間に亘って実行される可能性は必ずしも大きくないと判定される。たとえば、現時点で発生したそのようなサービスS3は、過去の同時間帯における稼働実績を有しないため、単発的に発生したもの或いは短時間で終了するものである可能性が比較的高いと考えられる。あるいは、少なくとも、過去の同時間帯における稼働実績を有しないサービスは、直ぐに終わってしまうのか長時間に亘って継続されるのか不明である。このようなサービスの実行のために常に外部資源を確保すると、無駄なコストが発生するリスクが大きい。たとえば、外部資源(外部サーバ等)が所定時間単位(たとえば1時間単位)で課金される課金体系を有している場合、1分程度しか利用していないにもかかわらず1時間(60分)の利用コスト(利用料金)の負担を強いられることがある。
これに対して本実施形態では、そのような状況において、当該サービスS3は、外部資源によって代理実行されるのではなく、MFP10によって実行される。これによれば、無駄なコストの発生を回避あるいは抑制することが可能である。
また、他のサービスに関しても同様である。たとえば、サービスS2が、時間帯TA以外の或る時点に受け付けられ、且つ当該或る時点に対応する過去の時間帯が当該サービスS2の稼働時間帯TB2でない場合、サービスS2はMFP10自身によって実行されるべき旨が決定される(図14参照)。
図6においては、以上のようにして決定された実行装置が纏めて示されている。
図6に示されるように、代理実行可能サービスS1,S3は、一部時間帯のみにて外部資源によって実行される。詳細には、サービスS1は「0時から8時」および「18時から24時」の時間帯においてのみ外部資源によって実行され、その他の時間帯においては、MFP10によって実行される。サービスS3は「6時から8時」の時間帯においてのみ外部資源によって実行され、その他の時間帯においては、MFP10によって実行される。また、代理実行可能サービスS2は、結果的に、全時間帯にてMFP10によって実行され、何れの時間帯においても外部資源によって実行されない。
以下、このような動作について詳細に説明する。
<1−8.通常モード時の動作>
このMFP10は、上述のように、大別して2つの動作モード(具体的には、「通常モード」および「省電力モード」)を有している。
まず、通常モード(非スリープ時)におけるMFP10の動作について図7を参照しつつ説明する。図7は、通常モードにおけるMFP10の動作を示すフローチャートである。
MFP10は、各サービスの稼働状況を定期的に(一定期間間隔(たとえば数秒〜数十秒間隔)等にて)取得する(ステップSP11)。
次に、ステップSP12において、現時点にて稼働されるべきサービス(稼働中のサービスおよび/または受付直後のサービスを含む)が存在するか否かが判定され、その判定結果に基づく分岐処理が行われる。現時点にて稼働されるべきサービス(稼働対象サービスとも称する)が存在しない場合には、省電力モードに遷移する(ステップSP18)。省電力モードに遷移した後の動作(図8参照)については後述する。
一方、現時点にて稼働対象サービスが存在する場合には、当該稼働対象サービスの中に代理実行不可サービスSAが含まれているか否かがさらに判定され、ステップSP13の分岐処理に進む。
1または複数の稼働対象サービスの中に代理実行不可サービスSAが含まれている場合には、稼働対象サービスの全てがMFP10によって実行されるべき旨が決定されるとともに、ステップSP13からステップSP22に進む。ステップSP22では、通常モードが維持されるとともに、MFP10は、稼働対象サービス(代理実行不可サービスSAのみ、あるいは、代理実行不可サービスSAと代理実行可能サービスSBとの両者)をMFP10自身で実行する。
たとえば、稼働対象サービスとして現時点で稼働されるべき2以上のサービスの中に代理実行不可サービスSAと代理実行可能サービスSBとの双方が含まれる場合には、代理実行不可サービスSAのみならず代理実行可能サービスSBもがMFP10によって実行されるべき旨が決定される。換言すれば、現時点で稼働されるべきサービスとして複数の稼働対象サービスが存在する場合(一の稼働対象サービスを含む複数の稼働対象サービスが存在する場合)において、当該複数の稼働対象サービスのいずれかが代理実行不可サービスSAである場合には、当該複数の稼働対象サービスのいずれもがMFP10によって実行されるべき旨が決定される。これによれば、代理実行不可サービスSAの実行(MFP10による実行)に起因してMFP10がスリープ状態に遷移しない状況においては、代理実行不可サービスSAのみならず代理実行可能サービスSBもMFP10を利用して実行されるので、外部資源を利用せずに済む。したがって、外部資源の利用コストを抑制することが可能である。
なお、代理実行不可サービスSAは常にMFP10によって実行されるべき旨が決定される(図9参照)。図9においては、稼働対象サービスがサービスS0(代理実行不可サービスSA)である場合、サービスS0の実行装置は、全時間帯においてMFP10である旨が示されている。
これに対して、稼働対象サービスの中に代理実行不可サービスSAが含まれていない場合(換言すれば、稼働対象サービスが全て代理実行可能サービスSBである場合)には、ステップSP13からステップSP14に進む。
ステップSP14において、MFP10は、サービス稼働履歴情報210を取得する。
次のステップSP15では、現時刻(稼働対象サービスが実行されるべき時刻、とも表現される)がサービス稼働履歴情報210における代理実行不可サービスSAの稼働時間帯TAに属しているか否かが判定される。
現時刻が代理実行不可サービスSAの稼働時間帯TAに属していると判定される場合、当該稼働対象サービス(代理実行可能サービスSB)の全てがMFP10によって実行されるべき旨が決定されるとともに、ステップSP15からステップSP22に進む。ステップSP22では、通常モードが維持されるとともに、MFP10は、当該稼働対象サービス(代理実行可能サービスSB)をMFP10自身で実行する。
一方、現時刻が代理実行不可サービスSAの稼働時間帯TAに属していないと判定される場合、ステップSP15からステップSP16に進む。
ステップSP16では、MFP10は、サービス稼働履歴情報210における過去の対応時間帯にて(所定程度以上)当該稼働対象サービスが稼働していた旨が判定されるか否かに応じた分岐処理を実行する。当該分岐処理は、現時刻が稼働履歴における当該稼働対象サービスの稼働時間帯に属する旨が判定されるか否かに応じた分岐処理であるとも表現される。
サービス稼働履歴情報210における過去の対応時間帯にて(所定程度までは)当該稼働対象サービスが稼働していなかった旨が判定される場合、稼働対象サービスがMFP10によって実行されるべき旨が決定され(ステップSP18)、ステップSP22に進む。ステップSP22では、通常モードが維持されるとともに、MFP10は、当該稼働対象サービス(代理実行可能サービスSB)をMFP10自身で実行する。
これに対して、サービス稼働履歴情報210における過去の対応時間帯にて(所定程度以上)当該稼働対象サービスが稼働していた旨が判定される場合、ステップSP16からステップSP17に進む。
ステップSP17においては、稼働対象サービスが外部資源によって代理実行されるべき旨が決定される。そして、MFP10は、代理実行可能サービスSBを代理実行する外部サーバを確保し、当該代理実行可能サービスSBを当該外部サーバにて実行させる。代理実行可能サービスSBの実行主体がMFP10から外部サーバ50(外部資源)へ変更される際には、当該代理実行可能サービスSBで利用されていたデータ(仮想サーバデータとも称する)等が変更前の装置(MFP10)から変更後の装置(外部サーバ50)へと引き継がれる。詳細には、上述のように、MFP10のスリープ遷移直前において、当該データ等が変更前の装置(MFP10)から変更後の装置(外部サーバ50)へと送信される。当該データ等は、当該変更後の装置にて格納され、当該変更後の装置によって利用される。
次のステップSP18においては、MFP10は、自身を省電力モードに遷移させる。その後においては、図8の動作(後述)が実行される。
以上のように、或る時点(現時点)が代理実行不可サービスSAの稼働時間帯TAに属していないこと(ステップSP15参照)を条件として、当該或る時点で稼働されるべき稼働対象サービスが外部資源にて代理実行されるべき旨が決定される(ステップSP18参照)。換言すれば、或る時点が代理実行不可サービスSAの稼働時間帯TAに属するときには、稼働対象サービスがMFP10によって実行されるべき旨が決定される(ステップSP22参照)。したがって、稼働対象サービスが外部資源にて代理実行されることによってMFP10が省電力モードに移行し易くなるので、MFP10の省電力化を図ることが可能である。また、当該或る時点が代理実行不可サービスSAの稼働時間帯TAに属する場合には当該稼働対象サービスは外部資源では実行されないので、外部資源の使用時間が抑制され外部資源の利用コストを抑制することが可能である。
また、当該或る時点に対応する過去の特定の時間帯にて稼働対象サービスが稼働されていた旨が判定されること(ステップSP16)をも条件として、稼働対象サービスを外部資源にて代理実行すべき旨が決定される(ステップSP17参照)。換言すれば、稼働対象サービスが当該特定の時間帯にて稼働していなかった旨が判定される場合には、当該稼働対象サービスをMFP10にて実行すべき旨が決定される(ステップSP22参照)。したがって、外部資源の使用時間を一層抑制することが可能である。
また、複数の稼働対象サービスのいずれかが代理実行不可サービスである場合(ステップSP13でYES)には、複数の稼働対象サービスのいずれもがMFP10によって実行されるべき旨が決定される(ステップSP22参照)ので、外部資源の使用時間をさらに抑制することが可能である。
なお、2つ以上の代理実行可能サービスSBが稼働対象のサービスとして存在する場合、ステップSP16においては、たとえば、2つ以上の代理実行可能サービスSBのいずれもがサービス稼働履歴情報210における対応時間帯にて稼働していることを条件に、ステップSP17に進む。そして、ステップSP17においては、各代理実行可能サービスSBの実行装置が個別に決定されればよい。また、ここでは、稼働対象の全ての代理実行可能サービスSBについて、各代理実行可能サービスSBを代理実行する外部資源(外部サーバ50等)を確保できるものとする。ただし、これに限定されず、後述する第2実施形態の動作等が行われるようにしてもよい。
<1−9.省電力モード時の動作>
つぎに、省電力モードにおけるMFP10の動作等について図8を参照しつつ説明する。図8は、省電力モードを有するMFP10の動作(および省電力モードからの復帰直後の動作)を示すフローチャートである。
ステップSP31において外部アプリケーションからの要求(クライアント70からの要求)が受け付けられると、MFP10は省電力モードから通常モードに復帰する(ステップSP32)。
そして、MFP10は、当該復帰時点で稼働されるべき各サービスがMFP10自身によって実行されるべきか或いは当該MFP10に代わって外部資源によって実行されるべきかを決定する。
具体的には、まず、ステップSP33においては、稼働対象サービス(代理実行中のサービス、およびスリープ状態で(ステップSP31で)新たに受け付けられたサービス)の中に代理実行不可サービスSAが含まれているか否かが判定される。
稼働対象サービスの中に代理実行不可サービスSAが含まれている場合には、ステップSP41に進む。ステップSP41の処理については後述する。
一方、稼働対象サービスの中に代理実行不可サービスSAが含まれていない場合には、ステップSP34に進む。換言すれば、稼働対象サービスのいずれもが代理実行可能サービスSBである場合、ステップSP34に進む。
ステップSP34において、MFP10は、サービス稼働履歴情報210(図5参照)を取得する。
次のステップSP35では、現時点(省電力モードへの復帰時点)がサービス稼働履歴情報210における代理実行不可サービスSAの稼働時間帯TAに属しているか否かが判定される。
省電力モードへの復帰時点が(サービス稼働履歴情報210における)代理実行不可サービスSAの稼働時間帯TAに属していると判定される場合、ステップSP35からステップSP41に進む。
ステップSP41においては、稼働対象サービスの全てがMFP10によって実行されるべき旨が決定される。また、「代理実行中サービス」(外部資源による代理実行中の代理実行可能サービスSB)が存在するときには、当該代理実行中サービスの外部資源による代理実行が停止されるべき且つ当該代理実行中サービスがMFP10によって実行されるべき旨が決定される。さらに、MFP10は、当該代理実行中サービスを実行していた外部資源(詳細には、特定の外部装置(たとえばサーバ50c))を解放する。具体的には、MFP10は、当該外部資源(外部サーバ等)に対して、代理実行の停止指令と代理実行に係る資源を解放する旨の指令(資源解放指令)とを送信し、当該外部資源(詳細には当該特定の外部装置)を解放する。そして、稼働対象サービスの全て(スリープ状態で受け付けられたサービス(およびサービス代理実行中サービス))は、MFP10によって実行される。また、MFP10は、省電力モードへの再復帰を中止し、通常モードへと復帰した状態をそのまま維持する(ステップSP42)。そして、図7のステップSP11に進む。
一方、省電力モードへの復帰時点が(サービス稼働履歴情報210における)代理実行不可サービスSAの稼働時間帯TAに属していないと判定される場合、ステップSP35からステップSP36に進む。
ステップSP36では、MFP10は、稼働対象サービス(代理実行中のサービス、および/または、新たにスリープ状態で(ステップSP31で)受け付けられたサービス(新規受付サービス)等)がサービス稼働履歴情報210における過去の対応時間帯にて所定程度以上稼働していたか否かを判定する。換言すれば、省電力モードからの復帰時点が稼働履歴における稼働対象サービス(新規受付サービスおよび/または代理実行中サービス等)の稼働時間帯に属するか否かがサービス稼働履歴情報210に基づき判定される。
当該復帰時点が稼働履歴における稼働対象サービスの稼働時間帯に属しない旨がサービス稼働履歴情報210に基づき判定されるときには、ステップSP41に進む。そして、上述のようなステップSP41,SP42の動作が実行される。その後、図7のステップSP11に進む。
これに対して、サービス稼働履歴情報210における過去の対応時間帯にて当該稼働対象サービスが稼働していた旨が判定される場合、ステップSP36からステップSP37に進む。
ステップSP37においては、稼働対象サービスが外部資源によって代理実行されるべき旨が決定される。そして、MFP10は、当該稼働対象サービス(代理実行可能サービスSB)を代理実行する外部サーバ(詳細には、たとえばサーバ50a内の1台の外部仮想マシンVM11)を確保し、当該代理実行可能サービスSBを、確保した当該外部サーバによって実行させる。なお、代理実行中のサービスに関しては、代理実行中の外部サーバを引き続き確保し、当該代理実行中のサービスを当該外部サーバに引き続き実行させる。また、新規受付サービスに関しては、新規受付サービスの代理実行用の外部サーバを新たに確保し、当該新たに確保した外部サーバによって当該新規受付サービスを実行させる。そして、MFP10は、自身を省電力モードに遷移させる。その後、ステップSP31に戻り、図8の動作が再び実行される。
以上の動作によれば、省電力モードからの復帰時点において、当該復帰時点が代理実行不可サービスSAの稼働履歴における稼働時間帯TAに属し且つ外部資源にて代理実行中の代理実行中サービスが存在する場合(ステップSP35でYES)には、当該代理実行中サービスの外部資源による実行が停止されるべき且つ当該代理実行中サービスがMFP10にて実行されるべき旨が決定される(ステップSP41)ので、外部資源の使用を適切に抑制することが可能である。
さらに、省電力モードからの復帰時点において、当該復帰時点が代理実行中サービス(SB)の稼働履歴における稼働時間帯(TB)に属しないと判定される(ステップSP36でNO)ときにも、当該代理実行中サービスの外部資源による実行が停止されるべき且つ当該代理実行中サービスをMFP10にて実行すべき旨が決定される(ステップSP41)ので、外部資源の使用を適切に抑制することが可能である。
一方、省電力モードからの復帰時点において、当該復帰時点が稼働履歴における代理実行不可サービスSAの稼働時間帯TAに属さず且つ当該復帰時点が代理実行中サービス(SB)の稼働履歴における稼働時間帯(TB)に属すると判定される(ステップSP36でYES)ときには、当該代理実行中サービス(SB)が現時間帯にて継続して実行される可能性が高いと判定される。そして、当該代理実行中サービス(SB)の外部資源による実行が継続されるべき旨が決定される(ステップSP37)。したがって、現時間帯にて継続して実行される可能性が高い特定サービス(代理実行中サービス(SB))を当該外部資源を用いて引き続き実行することが可能である。すなわち、外部資源の使用を適切に継続することが可能である。また、次述するように、当該特定サービスの実行装置の頻繁な変動を効率的に防止することも可能である。
ここにおいて、或る要因で省電力モードから復帰した場合、当該或る要因が解消すると今度はMFP10は省電力モードに再び復帰することが可能である。しかしながら、仮に当該或る要因で省電力モードから復帰した時点で代理実行中の特定サービス(SB)の外部資源による実行が直ちに中止され且つ当該特定サービスがMFP10で実行されるときには、当該特定サービスの実行中に起因してMFP10は省電力モードに復帰(移行)できない。あるいは、MFP10を省電力モードに復帰させるためには、当該特定サービスの実行主体を再びMFP10から外部資源へと変更することを要する。すなわち、特定サービスの実行主体の頻繁な変動が生じてしまう。特に、特定サービス(SB)が現時間帯にて継続して実行される可能性が高い場合には、当該或る要因が解消した時点でも当該特定サービスが稼働されるべき状態が継続しており、MFP10での実行を停止するために当該特定サービスの実行主体の頻繁な変動が生じる可能性が高い。
これに対して、省電力モードからの復帰時点が稼働履歴における代理実行中の特定サービス(SB)の稼働時間帯に属すると判定される(ステップSP36でYES)ときに、当該特定のサービスの外部資源による実行が継続されるべき旨が決定される(ステップSP37)ことによれば、当該特定サービスの実行装置の頻繁な変動を効率的に防止することが可能である。
なお、上記第1実施形態では、図7の動作が行われているが、これに限定されず、たとえば、図7の動作に代えて図19の動作が行われてもよい。図19においては、ステップSP22の直前にステップSP21の処理が行われる。具体的には、ステップSP13でYESと判定された場合、ステップSP15でYESと判定された場合、およびステップSP16でNOと判定された場合に、ステップSP21に進む。ステップSP21においては、ステップSP41(図8)と同様の処理が行われる。これによれば、特に、代理実行中サービスを実行していた外部資源が存在する場合には、当該外部資源が解放され、当該代理実行中サービスがMFP10によって実行される。
<2.第2実施形態>
上記第1実施形態では、ステップSP17(図7),SP37(図8)において、稼働対象の全ての代理実行可能サービスSBについて、各代理実行可能サービスSBを代理実行する外部資源(外部サーバ50等)がそれぞれ確保されることを前提にして説明を行っている。
第2実施形態では、ステップSP17(および/またはステップSP37)において稼働対象の全ての代理実行可能サービスSBのうちの一部のサービスに関する外部資源を確保できない場合における追加動作等を含む態様について説明する。
図16は、図7にて破線で囲まれた部分に関する第2実施形態での動作を示すフローチャートである。換言すれば、第2実施形態に係るステップSP17(SP17B),SP18の動作を詳細に示すフローチャートである。
図7のステップSP16でYESと判定されると、図16の動作が実行される。なお、ここでは、2以上の稼働対象サービスのそれぞれがサービス稼働履歴情報210における過去の対応時間帯にて稼働していた旨が判定され(ステップSP16)、当該2以上の稼働対象サービスが外部資源によって代理実行されるべき旨が決定されることを前提とする。
図16のステップSP51において、MFP10は、当該2以上の稼働対象サービスが外部資源によって代理実行されるべき旨を決定すると、当該MFP10は、当該2以上の稼働対象サービス(且つ代理実行可能サービスSB)をそれぞれ代行する各外部サーバ(外部資源)の確保を試行する。
ステップSP52においては、当該2以上の稼働対象サービス(外部資源(外部サーバ等)によって実行されるべき旨が決定されたサービス)の全てを実行するための外部資源を全て確保することができたか否かが判定される。
当該2以上の稼働対象サービスを実行するための複数の外部サーバ(外部資源)を全て確保することができた場合には、ステップSP52からステップSP53に進む。ステップSP53では、MFP10は、確保した当該各外部サーバに各代理実行可能サービスSBを代理実行させる。
当該2以上の稼働対象サービスを実行するための外部サーバ(外部資源)を全く確保できない場合には、ステップSP52からステップSP55を経由してステップSP58に進む。ステップSP58では、外部資源による当該2以上の稼働対象サービスの実行を諦め、当該2以上の稼働対象サービスをMFP10で実行する。そして、通常モードを維持(ステップSP22)し、その後、ステップSP11(図7)に戻る。
一方、当該2以上の稼働対象サービスのうちの一部のサービスを実行するための外部サーバ(外部資源)を確保できない場合には、ステップSP52からステップSP55を経由してステップSP56に進む。
ステップSP56では、MFP10は、当該2以上の稼働対象サービスのうちの特定のサービスに対する外部資源の確保を優先する。ここで、当該特定のサービスは、当該2以上の稼働対象サービスの中で、稼働履歴におけるその稼働時間帯の合計時間であって代理実行不可サービスSAの稼働時間帯TA以外の時間帯での合計時間が最も大きいサービスである。
たとえば、午前6時30分の時点で図7および図16の動作が実行される場合、図6に示されるように、サービスS1,S3が稼働対象サービスであるときには、当該2つのサービスS1,S3はいずれも外部資源(たとえば2台の外部仮想マシン)によって代理実行されるべき旨が決定される。ただし、外部資源の稼働状況等によっては1台分の外部仮想マシン(たとえば、サーバ50a内の1台の外部仮想マシン)しか確保できないことがある。
そのような場合には、MFP10は、当該2以上の稼働対象サービスの中で、稼働履歴におけるその稼働時間帯の合計時間(且つ代理実行不可サービスSAの稼働時間帯TA以外の時間帯での合計時間)が最も大きいサービスを、確保した外部資源(当該外部仮想マシン)に対して優先的に割り当てる(ステップSP56)。
図5のサービス稼働履歴情報210では、サービスS1の稼働時間帯(全時間帯)の合計時間のうち、代理実行不可サービスSAの稼働時間帯TA以外の時間帯(「0時から8時」および「18時から24時」)での合計時間は、「14時間」である。一方、サービスS3の稼働時間帯(「6時から8時」)の合計時間のうち、代理実行不可サービスSAの稼働時間帯TA以外の時間帯(「0時から8時」および「18時から24時」)での合計時間は、「2時間」である。したがって、代理実行不可サービスSAの稼働時間帯TA以外の時間帯において、サービスS1の合計時間(14時間)が最も大きい。この場合、或る時点での稼働対象サービスのうち、上述の合計時間(時間帯TA以外の時間帯での稼働時間の合計時間)が最も大きいサービス(最大稼働時間を有するサービス(最長稼働サービスとも称される))S1が、確保した外部資源(たとえば、サーバ50a内の1台の外部仮想マシン)に対して優先的に割り当てられる。
そして、MFP10は、当該サービスS1をサーバ50a内の当該1台の外部仮想マシンに実行させる(ステップSP56)。
また、残りのサービスS3(外部資源に割り当てることができなかったサービスS3)は、MFP10自身によって実行される(ステップSP57)。
その後、ステップSP22を経由して、ステップSP11(図7)に戻る。
以上のような動作によれば、2以上の稼働対象サービス(たとえば、2つのサービスS1,S3)のうち、代理実行不可サービスSAの稼働時間帯TA以外の時間帯における最大稼働時間を有するサービスS1が優先的に外部資源で実行される(ステップSP56)ので、一のサービスが同じ外部資源にて比較的長期に亘って実行される可能性が大きい。そのため、複数のサービス相互間での切換処理(当該外部資源で実行されるサービスの切替処理)の発生(所謂オーバーヘッドの発生)を抑制することが可能である。また、当該切換処理の発生が抑制されることによって、当該切替処理をMFP10が行うための(MFP10の)スリープ復帰が抑制されるので、MFP10上で実行されるサービスの稼働時間の増加を抑制することができ、MFP10のスリープ時間を増大することが可能である。また、当該切換処理によるデータの移管動作の発生を抑制することが可能であるので、データ移管動作に伴うMFP10の通常モードの処理時間増大およびデータ通信コスト増大を抑制することができる。
たとえば、上記の例(図5参照)において、仮に各時点で任意のサービスが外部資源に随時割り当てられる場合を想定すると、「4時」の時点ではサービスS1が、「6時」の時点ではサービスS3が、それぞれ外部資源に割り当てられることが生じ得る。この場合、サービスS1からサービスS3への切換処理が「6時」に発生する。
あるいは、図17のサービス稼働履歴情報210(212)(図5のサービス稼働履歴情報210(211)とは別のサービス稼働履歴情報)において、仮に各時点で任意のサービスが外部資源に割り当てられる態様を想定する。この場合、「2時」の時点ではサービスS1が当該外部資源に割り当てられ、「4時」の時点ではサービスS3が当該外部資源に割り当てられ、「6時」の時点ではサービスS1が当該外部資源に割り当てられることが生じ得る。このとき、サービスS1からサービスS3への切換処理が「4時」に発生し、サービスS3からサービスS1への切換処理が「6時」に発生する。
一方、第2実施形態の動作例では、そのような切換処理を要しない。具体的には、「0時(あるいは前日の18時)から8時」の期間においては常にサービスS1が当該外部資源に割り当てられるので、当該切換処理は当該期間において発生しない。したがって、複数のサービスS1,S3相互間での切換処理(当該外部資源で実行されるサービスの切替処理)の発生を抑制することが可能である。
なお、ここでは、図7の動作(通常モード時の動作)に関して主に例示しているが、これに限定されず、図8の動作(省電力モード時の動作)に関しても同様の改変がなされ得る。換言すれば、ステップSP37,SP38の動作に関しても同様の改変がなされ得る。詳細には、省電力モードからの復帰時点において、外部資源へのサービスの再割り当て(再割り付け)を行う(図8参照)に際して、ステップSP37,38の動作として、図16と同様の動作が行われるようにしてもよい。
<3.第3実施形態>
また、上記第2実施形態においては、ステップSP56において、外部資源によって実行されるべき旨が決定された2以上の稼働対象サービスのうちの一部のサービスを実行するための外部資源を確保できない(換言すれば、当該2以上の稼働対象サービスを実行するための外部資源の全てを必ずしも確保できない)場合には、当該2以上の稼働対象サービスのうち特定のサービスに対する外部資源の確保が優先されている。
特に、第2実施形態では、当該特定のサービスは、2以上の稼働対象サービスの中で、稼働履歴におけるその稼働時間帯の合計時間であって代理実行不可サービスSAの稼働時間帯TA以外の時間帯での合計時間が最も大きいサービスである。
この第3実施形態においても、外部資源によって実行されるべき旨が決定された2以上の稼働対象サービスのうちの一部のサービスを実行するための外部資源を確保できない場合には、当該2以上の稼働対象サービスのうち特定のサービスに対する外部資源の確保が優先される。ただし、当該特定のサービスは、当該2以上の稼働対象サービスの中で、稼働履歴において或る時点(現時点等)に対応する時点からの継続時間(その稼働時間帯の継続時間)であって代理実行不可サービスSAの稼働時間帯TA以外の時間帯での継続時間が最も大きいサービスである。
ここでは、図5のサービス稼働履歴情報210に代えて図18のサービス稼働履歴情報210(213)が存在するものとする。
たとえば、午前2時の時点で図7および図16の動作が実行される場合、サービスS1,S3が稼働対象サービスであるときには、当該2つのサービスS1,S3はいずれも外部資源(たとえば2台の外部仮想マシン)によって代理実行されるべき旨が決定される。ここでも、外部資源の稼働状況等によっては1台分の外部仮想マシン(たとえば、サーバ50a内の1台の外部仮想マシン)しか確保できないものとする。
そのような場合には、MFP10は、当該2以上の稼働対象サービスの中で、稼働履歴において(現在の)「午前2時」に対応する過去の時点(「午前2時」)からの、その稼働時間帯の継続時間であって、時間帯TA(代理実行不可サービスSAの稼働時間帯TA)以外の時間帯での継続時間が最も大きいサービスを、確保した外部資源(当該外部仮想マシン)に対して優先的に割り当てる。
図18のサービス稼働履歴情報210においては、代理実行不可サービスSAの稼働時間帯TA以外の時間帯(「0時から8時」および「18時から24時」)での現時点(午前2時)からの各サービスS1,S3の継続時間は、それぞれ、「2時間」、「6時間」である。詳細には、サービスS1の当該継続時間は、2時から4時までの「2時間」であり、サービスS3の当該継続時間は、2時から8時までの「6時間」である。
したがって、代理実行不可サービスSAの稼働時間帯TA以外の時間帯においては、現時点からの継続時間は、サービスS3の継続時間(6時間)が最も大きい。
この場合、或る時点での稼働対象サービスのうち、上述の継続時間(時間帯TA以外の時間帯での現時点からの継続時間)が最も大きいサービス(最大継続時間を有するサービス(最長継続サービスとも称される))S3が、確保した外部資源(たとえば、サーバ50a内の1台の外部仮想マシン)に対して優先的に割り当てられる。
以上のような動作によれば、代理実行不可サービスSAの稼働時間帯TA以外の時間帯において、2以上の稼働対象サービス(たとえば、2つのサービスS1,S3)のうち、最大継続時間を有するサービスS3が優先的に外部資源で実行される(ステップSP56)ので、一のサービスが同じ外部資源にて比較的長期に亘って実行され得る。そのため、複数のサービス相互間での切換処理(当該外部資源で実行されるサービスの切替処理)の発生を抑制することが可能である。また、当該切換処理の発生が抑制されることによって、当該切替処理をMFP10が行うための(MFP10の)スリープ復帰が抑制されるので、MFP10上で実行されるサービスの稼働時間の増加を抑制することができ、MFP10のスリープ時間を増大することが可能である。また、当該切換処理によるデータの移管動作の発生を抑制することが可能であるので、データ移管動作に伴うMFP10の通常モードの処理時間増加およびデータ通信コスト増大を抑制することができる。
たとえば、上記の例(図18参照)において、各時点で任意のサービスが外部資源に随時割り当てられる場合には、「2時」の時点ではサービスS1が、「4時」の時点ではサービスS3が、「6時」の時点ではサービスS1が、それぞれ外部資源に割り当てられる態様が考えられる。この場合、サービスS1からサービスS3への切換処理が「4時」に発生し、さらにサービスS3からサービスS1への切換処理が「6時」に発生する。
一方、第3実施形態の動作例では、そのような切換処理を要しない。具体的には、「2時から8時」の期間においては常にサービスS3が当該外部資源に割り当てられるので、当該切換処理は当該期間において発生しない。したがって、複数のサービスS1,S3相互間での切換処理(当該外部資源で実行されるサービスの切替処理)の発生を抑制することが可能である。
なお、ここでは、図7の動作(通常モード時の動作)に関して主に例示しているが、これに限定されず、図8の動作(省電力モード時の動作)に関しても同様の改変がなされ得る。換言すれば、ステップSP37,SP38の動作に関しても同様の改変がなされ得る。
<4.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記各実施形態においては、代理実行可能サービスSBとして、装置情報取得サービスS1、文書処理サービスS2、ユーザ管理サービスS3を例示したが、これに限定されず、画像処理サービス(スキャン済み文書(MFP10のボックス内に格納された文書等)に対するOCR処理を実行するサービス等)などのその他の各種のサービスであってもよい。
また、上記各実施形態等においては、図8において、外部アプリケーションからの要求に応じて省電力モードから復帰(ステップSP31,SP32)してステップSP33以後の動作が行われる態様を例示したが、これに限定されない。たとえば、MFP10の操作部6(操作パネル部6c等)に対するユーザ操作の検出に応じて省電力モードから復帰して、ステップSP33以後の動作が行われるようにしてもよい。
また、上記各実施形態等においては、稼働対象サービスの中に代理実行不可サービスSAが含まれる場合には、全ての稼働対象サービスがMFP10によって実行されるべき旨が決定されている(ステップSP13,SP22(図7))がこれに限定されない。具体的には、稼働対象サービスの中に代理実行不可サービスSAと代理実行可能サービスSBとが含まれる場合において、代理実行可能サービスSBは常に外部資源によって実行されるべき旨(代理実行不可サービスSAのみが常にMFP10によって実行されるべき旨)が決定されるようにしてもよい。
また、上記各実施形態等では、ステップSP16(図7)においては、2つ以上の代理実行可能サービスSBのいずれもがサービス稼働履歴情報210における対応時間帯にて稼働していることを条件に、ステップSP17に進んでいるが、これに限定されない。
たとえば、2以上の稼働対象サービスのうちの少なくとも1つの稼働対象サービス(代理実行可能サービスSB)がサービス稼働履歴情報210における過去の対応時間帯にて稼働していないときにも、ステップSP16からステップSP17に進むようにしてもよい。その場合、ステップSP17(図16参照)では、(その代理装置を確保できなかったサービスが存在する場合と同様に)ステップSP52からステップSP55に進むようにすればよい。そして、ステップSP55〜SP58の処理が実行された後、過去の対応時間帯にて稼働していなかった当該少なくとも1つの稼働対象サービスは、(通常モードを有する)MFP10にて実行されればよい(ステップSP22)。
なお、ステップSP36,SP37(図8)に関しても同様である。
また、上記各実施形態等においては、現時点(現在の時点)で稼働されるべき各稼働対象サービスの実行装置がそれぞれ決定されているが、これに限定されない。たとえば、将来の各時点(将来の時点)にて稼働されるべき各稼働対象サービスの実行装置がそれぞれ予め(事前に)決定されるようにしてもよい。より詳細には,或る一日にて稼働されるサービスが予め推定(予測)できる場合(稼働対象サービスが事前予約されている場合等を含む)等において、毎日定刻(たとえば毎日0時)に、その24時間以内の各時間帯で稼働されるべき各稼働対象サービスの実行装置がそれぞれ決定されるようにしてもよい。このように、稼働対象サービスの実行時刻に先立つ時点(予約確定時点等)において、サービスの実行装置が予め決定されるようにしてもよい。また、上述の各実施形態と同様にして、当該外部資源が確保(および解放)されればよい。
また、上記各実施形態等においては、外部アプリケーション(AP1,AP2,AP3,...)は、クライアント70にインストールされているが、これに限定されず、たとえば、クラウドサーバ等のサーバ(代理処理を実行するサーバ50以外のサーバ)にインストールされていてもよい。端的に言えば、外部アプリケーションは、サーバアプリケーションであってもよい。換言すれば、MFP10に対してサービスを要求するサービス要求装置は、クライアント70に限定されずサーバであってもよい。