(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-06
(45)【発行日】2022-05-16
(54)【発明の名称】サービス提供装置およびプログラム
(51)【国際特許分類】
G06F 9/46 20060101AFI20220509BHJP
G06F 8/61 20180101ALI20220509BHJP
【FI】
G06F9/46 420
G06F8/61
(21)【出願番号】P 2018081350
(22)【出願日】2018-04-20
【審査請求日】2020-12-23
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】100117673
【氏名又は名称】中島 了
(72)【発明者】
【氏名】前川 裕明
【審査官】多胡 滋
(56)【参考文献】
【文献】特表2006-502465(JP,A)
【文献】特開2013-020494(JP,A)
【文献】特開2002-297402(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46
G06F 8/61
(57)【特許請求の範囲】
【請求項1】
サービス提供装置であって、
一のサービスの提供要求を受け付ける受付手段と、
自装置内にインストールされている複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能か否か、を判定する判定手段と、
前記一のサービスの前記提供要求に応じたサービス処理を制御するサービス管理手段と、
を備え、
前記サービス管理手段は、
前記複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能であると判定される場合、前記複数のアプリケーションのうち、前記一のサービスに対応するアプリケーションを用いて、前記一のサービスの前記提供要求に応じた前記サービス処理を開始し、
前記複数のアプリケーションのいずれを用いても前記一のサービスを提供することが不可能であると判定される場合、
前記サービス提供装置とは別のサービス提供装置である外部サーバに前記一のサービスの前記提供要求を転送して当該提供要求に応じた前記サービス処理を前記外部サーバに開始させるとともに、
前記一のサービスを提供するための特定のアプリケーションを前記外部サーバあるいは他の外部装置からダウンロードして自装置にインストールし、前記特定のアプリケーションの自装置へのインストールが完了した後において、前記一のサービスの前記提供要求の転送に伴って前記外部サーバによって開始されていた前記サービス処理を前記外部サーバから引き継いで実行することを特徴とするサービス提供装置。
【請求項2】
請求項1に記載のサービス提供装置において、
前記サービス管理手段は、前記複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが不可能であると判定される場合、前記サービス提供装置にて稼働している少なくとも1つのサービスを非稼働状態に遷移させてその使用リソースを解放し当該少なくとも1つのサービスと入れ替わりに前記一のサービスを前記サービス提供装置で稼働させる処理である差替処理を実行することを特徴とするサービス提供装置。
【請求項3】
請求項2に記載のサービス提供装置において、
前記サービス管理手段は、その使用リソースの合計が前記一のサービスの提供に要するリソースよりも多い少なくとも1つのサービスを、前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスとして、前記サービス提供装置にて現在稼働している稼働中サービスの中から決定することを特徴とするサービス提供装置。
【請求項4】
請求項2に記載のサービス提供装置において、
前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスは、前記サービス提供装置にて何れのユーザによっても現在使用されていないサービスの中から決定されることを特徴とするサービス提供装置。
【請求項5】
請求項4に記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置にて現在稼働中且つ非使用中のサービスの中から、最終使用時点を示す情報に基づいて前記停止対象サービスを決定することを特徴とするサービス提供装置。
【請求項6】
請求項4に記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置にて現在稼働中且つ非使用中のサービスの中から、過去の所定期間中における使用回数を示す情報に基づいて前記停止対象サービスを決定することを特徴とするサービス提供装置。
【請求項7】
請求項4に記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置にて現在稼働中且つ非使用中のサービスの中から、過去の所定期間中における使用ユーザ数を示す情報に基づいて前記停止対象サービスを決定することを特徴とするサービス提供装置。
【請求項8】
請求項4から請求項7のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置にて現在稼働中のサービスの中に、現在使用されていないサービスが存在しない場合には、前記差替処理を保留することを特徴とするサービス提供装置。
【請求項9】
請求項8に記載のサービス提供装置において、
前記サービス管理手段は、使用されていないサービスが存在しないことに基づき前記差替処理を保留することが決定された時点の後において、当該時点で使用されていたサービスが当該時点の後に使用されなくなったことを条件として、前記差替処理の保留を解除し前記差替処理を開始することを特徴とするサービス提供装置。
【請求項10】
請求項4から請求項9のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置にて現在使用されていないサービスが存在しないために前記停止対象サービスが決定できない場合、前記一のサービスに対応する前記特定のアプリケーションのダウンロードを開始して前記一のサービスの稼働開始のための準備を進行させておき、前記サービス提供装置における使用終了サービスの発生に伴って前記使用終了サービスを前記停止対象サービスとして決定し、前記停止対象サービスの稼働停止と引き換えに、前記特定のアプリケーションを利用した前記一のサービスの稼働を開始することを特徴とするサービス提供装置。
【請求項11】
請求項2に記載のサービス提供装置において、
前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスは、所定の差替除外対象サービスを除いたサービスであることを特徴とするサービス提供装置。
【請求項12】
請求項2に記載のサービス提供装置において、
前記サービス管理手段は、前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスに関するデータのうち、前記非稼働状態への遷移前の稼働期間において変更されていたデータを、前記外部サーバにアップロードしておき前記外部サーバに管理させることを特徴とするサービス提供装置。
【請求項13】
請求項1から請求項11のいずれかに記載のサービス提供装置において、
前記サービス処理を前記外部サーバから引き継いで実行する際には、前記サービス処理に関連するサービス関連情報をも前記外部サーバから引き継いで使用することを特徴とするサービス提供装置。
【請求項14】
請求項13に記載のサービス提供装置において、
前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行することを決定すると、前記一のサービスの使用中ユーザを特定するとともに前記一のサービスの複数のユーザに関するデータのうち前記使用中ユーザに関するデータをダウンロードすることを特徴とするサービス提供装置。
【請求項15】
請求項14に記載のサービス提供装置において、
前記サービス管理手段は、前記一のサービスの前記使用中ユーザに関するデータのダウンロードが完了した後、前記一のサービスの前記使用中ユーザ以外のユーザに関するデータのダウンロードを開始することを特徴とするサービス提供装置。
【請求項16】
請求項14に記載のサービス提供装置において、
前記サービス管理手段は、前記一のサービスの前記複数のユーザに関するデータのうち、前記一のサービスの前記使用中ユーザである第1の使用対象ユーザに関するデータをダウンロードした後、前記第1の使用対象ユーザとは別の第2の使用対象ユーザからの前記一のサービスの提供要求を受け付けたことに応答して、前記第2の使用対象ユーザに関するデータをダウンロードすることを特徴とするサービス提供装置。
【請求項17】
請求項1から請求項11のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行する際、前記一のサービスに関するデータのうち、画面操作に関するデータを含む一部のデータを前記外部サーバからダウンロードして引き継ぐことを特徴とするサービス提供装置。
【請求項18】
請求項1から請求項11のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行する際、前記一のサービスに関するデータのうち、前記サービス提供装置に関するステータスをポーリングして表示するためのステータスデータを含む一部のデータを前記外部サーバからダウンロードして引き継ぐことを特徴とするサービス提供装置。
【請求項19】
請求項1から請求項11のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行する際、前記一のサービスに関するデータのうち一部の特定データであって前記外部サーバで管理される一部の特定データをダウンロードせず、前記サービス処理における引継対象データから当該一部の特定データを除外することを特徴とするサービス提供装置。
【請求項20】
請求項19に記載のサービス提供装置において、
前記一部の特定データは、トランザクションデータを含むことを特徴とするサービス提供装置。
【請求項21】
請求項1から請求項11のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置によって提供される前記一のサービスにて変更されるデータを、逐次に前記外部サーバに転送して格納させることを特徴とするサービス提供装置。
【請求項22】
請求項1から請求項11のいずれかに記載のサービス提供装置において、
前記サービス管理手段は、前記サービス提供装置によって提供される前記一のサービスにて変更されるデータを、前記一のサービスの一のユーザによる使用が終了した時点で一括して前記外部サーバに転送して格納させることを特徴とするサービス提供装置。
【請求項23】
サービス提供装置に内蔵されたコンピュータに、
a)一のサービスの提供要求を受け付けるステップと、
b)自装置内にインストールされている複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能か否かを判定するステップと、
c)前記一のサービスの前記提供要求に応じたサービス処理を制御するステップと、
を実行させるためのプログラムであって、
前記ステップc)は、
c-1)前記複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能であると判定される場合、前記複数のアプリケーションのうち、前記一のサービスに対応するアプリケーションを用いて、前記一のサービスの前記提供要求に応じた前記サービス処理を開始するステップと、
c-2)前記複数のアプリケーションのいずれを用いても前記一のサービスを提供することが不可能であると判定される場合、前記サービス提供装置とは別のサービス提供装置である外部サーバに前記一のサービスの前記提供要求を転送して当該提供要求に応じた前記サービス処理を前記外部サーバに開始させるとともに、前記一のサービスを提供するための特定のアプリケーションを前記外部サーバあるいは他の外部装置からダウンロードして自装置にインストールし、前記特定のアプリケーションの自装置へのインストールが完了した後において、前記一のサービスの前記提供要求の転送に伴って前記外部サーバによって開始されていた前記サービス処理を前記外部サーバから引き継いで実行するステップと、
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービス提供装置およびそれに関連する技術に関する。
【背景技術】
【0002】
クライアント端末からの要求に応じてウエブサービスを提供するクラウドサーバが存在する。
【0003】
ただし、通信環境にも依るが、クライアント端末(LANの内部装置)とクラウドサーバ(LANの外部装置)との間の通信速度は、ローカル環境内での通信速度(LAN内の装置同士の通信速度)よりも小さい(低速である)ため、サービス提供時における反応速度等が低下するという問題が存在する。
【0004】
これに対して、LAN内に設けられたサーバ(たとえばローカル側のプロキシサーバ)にウエブサービス用のプログラムをダウンロードしておき、当該LAN内のサーバ(サービス提供装置とも称する)にて当該プログラムを動作させる技術が存在する(特許文献1等参照)。これによれば、LAN内のクライアント端末と当該サービス提供装置との間での比較的高速な通信を伴ってサービスが提供され得る。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、サービス提供装置(LAN内サーバ等)のリソースには限界が存在するため、このような技術において多数のサービスの全てを当該サービス提供装置にて常に動作させ続けることは困難である。
【0007】
そこで、この発明は、比較的多数のサービスを提供することが可能なサービス提供装置を提供することを課題とする。
【課題を解決するための手段】
【0008】
上記課題を解決すべく、請求項1の発明は、サービス提供装置であって、一のサービスの提供要求を受け付ける受付手段と、自装置内にインストールされている複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能か否か、を判定する判定手段と、前記一のサービスの前記提供要求に応じたサービス処理を制御するサービス管理手段と、を備え、前記サービス管理手段は、前記複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能であると判定される場合、前記複数のアプリケーションのうち、前記一のサービスに対応するアプリケーションを用いて、前記一のサービスの前記提供要求に応じた前記サービス処理を開始し、前記複数のアプリケーションのいずれを用いても前記一のサービスを提供することが不可能であると判定される場合、前記サービス提供装置とは別のサービス提供装置である外部サーバに前記一のサービスの前記提供要求を転送して当該提供要求に応じた前記サービス処理を前記外部サーバに開始させるとともに、前記一のサービスを提供するための特定のアプリケーションを前記外部サーバあるいは他の外部装置からダウンロードして自装置にインストールし、前記特定のアプリケーションの自装置へのインストールが完了した後において、前記一のサービスの前記提供要求の転送に伴って前記外部サーバによって開始されていた前記サービス処理を前記外部サーバから引き継いで実行することを特徴とする。
【0009】
請求項2の発明は、請求項1の発明に係るサービス提供装置において、前記サービス管理手段は、前記複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが不可能であると判定される場合、前記サービス提供装置にて稼働している少なくとも1つのサービスを非稼働状態に遷移させてその使用リソースを解放し当該少なくとも1つのサービスと入れ替わりに前記一のサービスを前記サービス提供装置で稼働させる処理である差替処理を実行することを特徴とする。
【0010】
請求項3の発明は、請求項2の発明に係るサービス提供装置において、前記サービス管理手段は、その使用リソースの合計が前記一のサービスの提供に要するリソースよりも多い少なくとも1つのサービスを、前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスとして、前記サービス提供装置にて現在稼働している稼働中サービスの中から決定することを特徴とする。
【0011】
請求項4の発明は、請求項2の発明に係るサービス提供装置において、前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスは、前記サービス提供装置にて何れのユーザによっても現在使用されていないサービスの中から決定されることを特徴とする。
【0012】
請求項5の発明は、請求項4の発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置にて現在稼働中且つ非使用中のサービスの中から、最終使用時点を示す情報に基づいて前記停止対象サービスを決定することを特徴とする。
【0013】
請求項6の発明は、請求項4の発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置にて現在稼働中且つ非使用中のサービスの中から、過去の所定期間中における使用回数を示す情報に基づいて前記停止対象サービスを決定することを特徴とする。
【0014】
請求項7の発明は、請求項4の発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置にて現在稼働中且つ非使用中のサービスの中から、過去の所定期間中における使用ユーザ数を示す情報に基づいて前記停止対象サービスを決定することを特徴とする。
【0015】
請求項8の発明は、請求項4から請求項7のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置にて現在稼働中のサービスの中に、現在使用されていないサービスが存在しない場合には、前記差替処理を保留することを特徴とする。
【0016】
請求項9の発明は、請求項8の発明に係るサービス提供装置において、前記サービス管理手段は、使用されていないサービスが存在しないことに基づき前記差替処理を保留することが決定された時点の後において、当該時点で使用されていたサービスが当該時点の後に使用されなくなったことを条件として、前記差替処理の保留を解除し前記差替処理を開始することを特徴とする。
【0017】
請求項10の発明は、請求項4から請求項9のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置にて現在使用されていないサービスが存在しないために前記停止対象サービスが決定できない場合、前記一のサービスに対応する前記特定のアプリケーションのダウンロードを開始して前記一のサービスの稼働開始のための準備を進行させておき、前記サービス提供装置における使用終了サービスの発生に伴って前記使用終了サービスを前記停止対象サービスとして決定し、前記停止対象サービスの稼働停止と引き換えに、前記特定のアプリケーションを利用した前記一のサービスの稼働を開始することを特徴とする。
【0018】
請求項11の発明は、請求項2の発明に係るサービス提供装置において、前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスは、所定の差替除外対象サービスを除いたサービスであることを特徴とする。
【0019】
請求項12の発明は、請求項2の発明に係るサービス提供装置において、前記サービス管理手段は、前記差替処理にて前記非稼働状態へと遷移させて停止させるべき停止対象サービスに関するデータのうち、前記非稼働状態への遷移前の稼働期間において変更されていたデータを、前記外部サーバにアップロードしておき前記外部サーバに管理させることを特徴とする。
【0020】
請求項13の発明は、請求項1から請求項11のいずれかの発明に係るサービス提供装置において、前記サービス処理を前記外部サーバから引き継いで実行する際には、前記サービス処理に関連するサービス関連情報をも前記外部サーバから引き継いで使用することを特徴とする。
【0021】
請求項14の発明は、請求項13の発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行することを決定すると、前記一のサービスの使用中ユーザを特定するとともに前記一のサービスの複数のユーザに関するデータのうち前記使用中ユーザに関するデータをダウンロードすることを特徴とする。
【0022】
請求項15の発明は、請求項14の発明に係るサービス提供装置において、前記サービス管理手段は、前記一のサービスの前記使用中ユーザに関するデータのダウンロードが完了した後、前記一のサービスの前記使用中ユーザ以外のユーザに関するデータのダウンロードを開始することを特徴とする。
【0023】
請求項16の発明は、請求項14の発明に係るサービス提供装置において、前記サービス管理手段は、前記一のサービスの前記複数のユーザに関するデータのうち、前記一のサービスの前記使用中ユーザである第1の使用対象ユーザに関するデータをダウンロードした後、前記第1の使用対象ユーザとは別の第2の使用対象ユーザからの前記一のサービスの提供要求を受け付けたことに応答して、前記第2の使用対象ユーザに関するデータをダウンロードすることを特徴とする。
【0024】
請求項17の発明は、請求項1から請求項11のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行する際、前記一のサービスに関するデータのうち、画面操作に関するデータを含む一部のデータを前記外部サーバからダウンロードして引き継ぐことを特徴とする。
【0025】
請求項18の発明は、請求項1から請求項11のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行する際、前記一のサービスに関するデータのうち、前記サービス提供装置に関するステータスをポーリングして表示するためのステータスデータを含む一部のデータを前記外部サーバからダウンロードして引き継ぐことを特徴とする。
【0026】
請求項19の発明は、請求項1から請求項11のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス処理を前記外部サーバから引き継いで実行する際、前記一のサービスに関するデータのうち一部の特定データであって前記外部サーバで管理される一部の特定データをダウンロードせず、前記サービス処理における引継対象データから当該一部の特定データを除外することを特徴とする。
【0027】
請求項20の発明は、請求項19の発明に係るサービス提供装置において、前記一部の特定データは、トランザクションデータを含むことを特徴とする。
【0028】
請求項21の発明は、請求項1から請求項11のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置によって提供される前記一のサービスにて変更されるデータを、逐次に前記外部サーバに転送して格納させることを特徴とする。
【0029】
請求項22の発明は、請求項1から請求項11のいずれかの発明に係るサービス提供装置において、前記サービス管理手段は、前記サービス提供装置によって提供される前記一のサービスにて変更されるデータを、前記一のサービスの一のユーザによる使用が終了した時点で一括して前記外部サーバに転送して格納させることを特徴とする。
【0030】
請求項23の発明は、サービス提供装置に内蔵されたコンピュータに、a)一のサービスの提供要求を受け付けるステップと、b)自装置内にインストールされている複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能か否かを判定するステップと、c)前記一のサービスの前記提供要求に応じたサービス処理を制御するステップと、を実行させるためのプログラムであって、前記ステップc)は、c-1)前記複数のアプリケーションのいずれかを用いて前記一のサービスを提供することが可能であると判定される場合、前記複数のアプリケーションのうち、前記一のサービスに対応するアプリケーションを用いて、前記一のサービスの前記提供要求に応じた前記サービス処理を開始するステップと、c-2)前記複数のアプリケーションのいずれを用いても前記一のサービスを提供することが不可能であると判定される場合、前記サービス提供装置とは別のサービス提供装置である外部サーバに前記一のサービスの前記提供要求を転送して当該提供要求に応じた前記サービス処理を前記外部サーバに開始させるとともに、前記一のサービスを提供するための特定のアプリケーションを前記外部サーバあるいは他の外部装置からダウンロードして自装置にインストールし、前記特定のアプリケーションの自装置へのインストールが完了した後において、前記一のサービスの前記提供要求の転送に伴って前記外部サーバによって開始されていた前記サービス処理を前記外部サーバから引き継いで実行するステップと、を有することを特徴とする。
【発明の効果】
【0031】
請求項1から請求項23に記載の発明によれば、サービス提供装置内にインストールされている複数のアプリケーションを用いて一のサービスを提供することが不可能であると判定される場合には、サービス提供装置は、一のサービスの提供要求を外部サーバに転送して当該一のサービスの提供要求に応じたサービス処理を外部サーバに開始させ、特定のアプリケーションの自装置へのインストールが完了した後において、当該サービス処理を外部サーバから引き継いで実行する。したがって、サービス提供装置は、比較的多数のサービスを利用することが可能である。
【図面の簡単な説明】
【0032】
【
図2】サービス提供システムにおける動作を示す概念図である。
【
図3】画像形成デバイスの機能ブロックを示す図である。
【
図4】サーバデバイスの機能ブロックを示す図である。
【
図5】MFPおよびクラウドサーバにおけるサービスの稼働状況を示す図である。
【
図6】第1実施形態に係るサービス提供装置の動作を示すフローチャートである。
【
図7】本システムの動作(詳細には、稼働対象サービスの即時提供が「可能」な場合における動作)を示すタイミングチャートである。
【
図8】本システムの動作(詳細には、稼働対象サービスの即時提供が「不可能」な場合における動作)を示すタイミングチャートである。
【
図12】サーバデバイスにおける稼働中サービスの一覧(サービスリスト)を示す図である。
【
図14】クラウドサーバにおける稼働中サービスの一覧(サービスリスト)を示す図である。
【
図15】サーバデバイスにおける稼働中サービスの一覧を示す図である。
【
図17】第2実施形態に係るタイミングチャートである。
【
図18】第2実施形態に係るサービス提供装置の動作を示すフローチャートである。
【
図19】
図18の動作の一部の詳細動作を示すフローチャートである。
【
図20】稼働対象サービスの所要リソース情報の取得動作等を示す概念図である。
【
図21】サーバデバイスにおける稼働中サービスの一覧を示す図である。
【
図22】サーバデバイスにおける稼働中サービスの一覧を示す図である。
【
図23】クラウドサーバにおける稼働中サービスの一覧を示す図である。
【
図24】差替処理後のサービスリストを示す図である。
【
図25】サーバデバイスのハードウエアリソースを示す図である。
【発明を実施するための形態】
【0033】
以下、本発明の実施形態を図面に基づいて説明する。
【0034】
<1.第1実施形態>
<1-1.構成概要>
図1は、サービス提供システム1を示す図である。サービス提供システム1は、MFP10(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))とクラウドサーバ80とクライアント90とを備えて構成される。なお、MFP10は、画像形成装置などとも称される。
【0035】
MFP10とクラウドサーバ80とクライアント90とは、ネットワーク108を介して接続されており、各装置10,80,90の相互間でデータの送受信が可能である。なお、ネットワーク108は、LAN(Local Area Network)およびインターネットなどの各種のネットワークを含む。ここでは、MFP10とクライアント90とは同一のLAN内に配置されている。また、クラウドサーバ80は、当該LANの外部に配置されている。クライアント90およびMFP10は、それぞれ、インターネット等を介してクラウドサーバ80にアクセスすることが可能である。
【0036】
このMFP10は、互いに独立して動作する複数のデバイス(ここではサーバデバイス20と画像形成デバイス30との2つのデバイス)を備える(
図2も参照)。ここでは、サーバデバイス20と画像形成デバイス30とは、一の筐体に収容され、一体的に構成されている。なお、当該一の筐体には、所定の部材と当該所定の部材に対して開閉自在に設けられた部材(たとえば、MFP10の原稿台に設けられた回転軸に対して回動自在に設けられたADF(Auto Document Feeder)付き原稿カバー等)とが含まれるものとする。また、このMFP10は、操作表示部40(
図1も参照)をも備える。当該操作表示部40は、複数のデバイス20,30によって共用される。
【0037】
クライアント90は、オンプレミス側の装置(MFP10(詳細にはサーバデバイス20))によってサービスの提供を受けることが可能であるとともに、クラウド側の装置(クラウドサーバ80)によってサービスの提供を受けることも可能である(
図2も参照)。クライアント90は、たとえば、パーソナルコンピュータ等として構成される。
【0038】
<1-2.画像形成デバイス30の構成>
画像形成デバイス30(
図1も参照)は、各種のジョブ(コピージョブ、スキャンジョブ等)を実行することが可能なデバイスである。なお、画像形成デバイス30は、MFPデバイスとも称される。
【0039】
図3は、画像形成デバイス30の機能ブロックを示す図である。画像形成デバイス30は、画像形成機能(コピー機能、スキャン機能、ファクシミリ機能およびボックス印刷機能等)等を有している。具体的には、画像形成デバイス30は、
図3に示すように、画像読取部32、印刷出力部33、通信部34、格納部35およびコントローラ(制御部)39等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
【0040】
画像読取部32は、画像形成デバイス30の所定の位置(自動原稿供給部(ADF:Auto Document Feeder)あるいはガラス面等)に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像あるいはスキャン画像とも称する)を生成する処理部である。この画像読取部32は、スキャン部などとも称される。画像形成デバイス30は、所定の位置に載置された原稿を読み取ることが可能なデバイスであり、画像読取デバイスとも称される。
【0041】
印刷出力部33は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。印刷出力部33は、印刷出力機構(具体的には、トナーユニット(現像ユニット)、感光ドラムユニット、中間転写ベルト、転写部、定着部および搬送部など)を有している。当該印刷出力機構は、画像形成機構とも称される。また、画像形成デバイス30は、各種の媒体に画像を印刷出力することが可能なデバイスであり、印刷出力デバイスとも称される。
【0042】
通信部34は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部34は、ネットワークを介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、画像形成デバイス30は、所望の相手先(サーバデバイス20等)との間で各種のデータを授受することが可能である。
【0043】
格納部35は、各種の記憶装置((揮発性および/または不揮発性の)半導体メモリおよび/またはハードディスクドライブ(HDD)等)で構成される。
【0044】
コントローラ39は、画像形成デバイス30に内蔵され、画像形成デバイス30を統括的に制御する制御装置である。コントローラ39は、CPU(Central Processing Unit)(マイクロプロセッサあるいはコンピュータプロセッサなどとも称される)および各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ39は、CPUにおいて、ROM(例えば、EEPROM(登録商標))内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されて画像形成デバイス30にインストールされるようにしてもよい。あるいは、当該プログラムは、ネットワークを経由してダウンロードされて画像形成デバイス30にインストールされるようにしてもよい。
【0045】
具体的には、
図3に示されるように、コントローラ39は、上記のプログラムの実行により、通信制御部39aと操作制御部39bと動作制御部39cと取得部39dとを含む各種の処理部を実現する。
【0046】
通信制御部39aは、通信部34等と協働して他のデバイス(同一筐体(同一装置)内の他のデバイス(サーバデバイス20等)、および別の筐体内にて構成される他の装置内のデバイスを含む)との間の通信動作を制御する処理部である。
【0047】
操作制御部39bは、操作表示部40(
図1参照)と協働して、操作表示部40(特にタッチパネル45(
図1参照))に対する入力動作(操作入力を受け付ける動作)を制御するとともに、操作表示部40(特にタッチパネル45)における表示動作(表示出力動作)を制御する処理部である。たとえば、操作制御部39bは、画像形成デバイス30の画像形成機能に関する情報等を操作表示部40(タッチパネル45)に表示させるとともに、操作表示部40に対するユーザ操作に関する操作入力情報(タッチ情報等)を当該操作表示部40から取得する。
【0048】
動作制御部39cは、画像形成デバイス30における各種の動作(ジョブ動作等)を制御する処理部である。動作制御部39cは、印刷ジョブ動作、コピージョブ動作およびスキャンジョブ動作等を制御する。
【0049】
<1-3.サーバデバイス20の構成>
サーバデバイス20(
図1も参照)は、サーバ機能を実現することが可能なデバイスである。サーバデバイス20は、たとえば汎用的なコンピュータ装置として構成される。
【0050】
図4は、サーバデバイス20の機能ブロックを示す図である。
【0051】
サーバデバイス20は、
図4の機能ブロック図に示すように、通信部24、格納部25、コントローラ(制御部)29等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
【0052】
通信部24は、ネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、サーバデバイス20は、所望の相手先(クライアント90、クラウドサーバ80および画像形成デバイス30等)と連携して各種のデータを授受することが可能である。
【0053】
格納部25は、各種の記憶装置((揮発性および/または不揮発性の)半導体メモリおよび/またはハードディスクドライブ(HDD)等)で構成される。
【0054】
コントローラ(制御部)29は、サーバデバイス20に内蔵され、サーバデバイス20を統括的に制御する制御装置である。コントローラ29は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ29は、CPUにおいて、記憶部(半導体メモリ等)内に格納されている所定のプログラムを実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されてサーバデバイス20にインストールされるようにしてもよい。あるいは、当該プログラムは、ネットワークを経由してダウンロードされてサーバデバイス20にインストールされるようにしてもよい。
【0055】
具体的には、コントローラ29は、当該プログラム等の実行により、通信制御部29aと操作制御部29bと動作制御部29cと受付部29dと判定部29eとサービス管理部29fとを含む各種の処理部を実現する。
【0056】
通信制御部29aは、通信部24等と協働して他のデバイス(同一筐体(同一装置)内の他のデバイス(画像形成デバイス30等)、および別の筐体内にて構成される他の装置内のデバイスを含む)との間の通信動作を制御する処理部である。
【0057】
操作制御部29bは、操作表示部40と協働して、操作表示部40(特にタッチパネル45)に対する入力動作を制御するとともに、操作表示部40(特にタッチパネル45)における表示動作を制御する処理部である。たとえば、操作制御部29bは、サーバデバイス20に関する情報等を操作表示部40(タッチパネル45)に表示させるとともに、操作表示部40(タッチパネル45)に対するユーザ操作に関する操作入力情報を当該操作表示部40から取得する。
【0058】
動作制御部29cは、サーバデバイス20における各種の動作(サーバ動作等)を制御する処理部である。
【0059】
受付部29dは、各クライアント(端末等)から各サービスの提供要求を受け付ける処理部である。
【0060】
判定部29eは、受付部29dにてその提供要求が受け付けられた一のサービスを、自装置内に既にインストールされている複数のアプリケーションのいずれかを用いて提供することが可能か否かを判定する処理部である。換言すれば、判定部29eは、当該一のサービスの即時提供が可能か否か等を判定する。たとえば、判定部29eは、当該特定のアプリケーションが自装置内に既にインストールされて(おり且つ稼働して)いる場合、当該一のサービスの即時提供が可能である旨を判定する。
【0061】
サービス管理部29fは、各サービスの提供要求に応じたサービス処理を制御する処理部である。
【0062】
各種のサービスとしては、「翻訳サービス」、「OCRサービス」および「カラーコントロールサービス」等が例示される。「翻訳サービス」は、翻訳対象ファイル内の文書を現在の言語から別の言語へと翻訳して出力するサービスである。また、「OCRサービス」は、処理対象ファイル(画像データファイル)内の文字列をOCR処理によってテキストデータ化するサービスである。また、「カラーコントロールサービス」は、画像形成デバイス30における出力色あるいは入力色の微調整を行うサービスである。
【0063】
サーバデバイス20においては、複数の仮想環境が構築される。当該複数の仮想環境は、サーバデバイス20のハードウエア(プロセッサおよびHDD等)を共有して(論理的に区分して)構築される。
【0064】
たとえば、「仮想環境」としては、「仮想コンテナ環境」が例示される(
図16参照)。複数の仮想コンテナ環境は、同一ホストOS上の複数のゲストOSでそれぞれ動作する仮想コンテナ(単にコンテナとも称する)CT(CT1,CT2,...)によって構成される。なお、
図16は、複数の仮想コンテナ環境を示す図である。
【0065】
そして、各仮想環境において、或るサービスを提供するためのアプリケーション(詳細には、サーバアプリケーション)を実行することが可能である。たとえば、コンテナCT1(「container_01」)においてサービス「service_01」を提供するためのアプリケーションを実行することが可能である。換言すれば、コンテナCT1によってサービス「service_01」を提供することが可能である。同様に、コンテナCT2によって別のサービス(「service_02」等)を提供することが可能であり、コンテナCT3によって更に別のサービス(「service_03」等)を提供することが可能である。コンテナCT4(不図示)以後においても同様である。
【0066】
このMFP10(特にサーバデバイス20)は、サービス提供装置として動作する。また、クラウドサーバ80(MFP10の外部のサーバ(単に外部サーバとも称する))も、MFP10とは別のサービス提供装置として動作する。クラウドサーバ80には多数のサービスの提供のための多数のアプリケーションがインストールされており、一方、MFP10には、(或る時点において、)当該多数のアプリケーションのうちの一部のアプリケーションのみがインストールされている。
【0067】
また、このMFP10(サーバデバイス20を含む)は、クライアント90と同じLAN内に配置されるサーバ装置である。当該サーバ装置(MFP10)は、自社で保有され自社によって運用されるサーバであることから、「オンプレミスサーバ」とも称される。MFP10は、クライアント90からのサービス要求に応じて各種のサービスを提供することが可能である。各サービスは、クラウドサーバ80によっても提供され得る。ただし、MFP10とクライアント90とは同じLAN内に存在するので、MFP10(特にサーバデバイス20)とクライアント90との間の通信速度は、クラウドサーバ80とクライアント90との間の通信速度よりも高速である。したがって、MFP10によるサービス提供時の反応速度は、クラウドサーバ80によるサービス提供時の反応速度よりも高速である。また、オンプレミスサーバ10は、外部のクライアント90からのサービス提供要求を受け付けるのみならず、内部のクライアント(画像形成デバイス30)からのサービス提供要求をも受け付けることが可能である。換言すれば、MFP10内部の画像形成デバイス30は、MFP10(詳細にはサーバデバイス20)に対してクライアントとして機能する。
【0068】
<1-4.動作>
図5は、MFP10およびクラウドサーバ80におけるサービスの稼働状況を示す図である。
図5に示されるように、或る時点においては、クラウドサーバ80にて各種のサービス(たとえば、80個のサービス「service_01」~「service_80」))が稼働しているとともに、そのうちの一部のサービス(ここでは、4個のサービス(「service_01」~「service_04」))がMFP10にも予めインストールされて稼働している(
図12参照)。換言すれば、MFP10においては、当該4つのサービスにそれぞれ対応する4つのアプリケーションが既にインストールされている。なお、
図12は、MFP10(サーバデバイス20)にて現在稼働しているサービスの一覧(サービスリスト250)を示す図である。当該サービスリスト250は、サーバデバイス20の格納部25(
図4)内に格納されている。
【0069】
図6は、第1実施形態に係るMFP10(詳細にはサーバデバイス20)の動作を示すフローチャートである。
【0070】
ステップS1において、サーバデバイス20は、同一LAN内のクライアント90等から、ユーザの所望のサービスの提供要求(サービス提供要求とも称する)を受け付ける。当該提供要求においては、稼働すべきサービス(稼働対象サービス)が指定されている。
【0071】
次のステップS2においては、サーバデバイス20に(この時点で)インストール済みの複数のアプリケーション(インストール済アプリケーションとも称する)のいずれかを用いて当該稼働対象サービスが提供され得るか否かが判定される。換言すれば、稼働対象サービスが、インストール済アプリケーションに対応する複数のサービス(ここでは、4個のサービス(「service_01」~「service_04」))のいずれかに該当するか否かが判定される。具体的には、現在稼働中のサービスの中に稼働対象サービスが含まれるか否かがサービスリスト250に基づいて判定され、その判定結果に応じて、当該複数のアプリケーションのいずれかを用いて稼働対象サービスを提供することが可能であるか否かが判定される。
【0072】
当該複数のアプリケーションのいずれかを用いて稼働対象サービスを提供することが可能であると判定される場合、サーバデバイス20は、当該複数のアプリケーションのうち、当該稼働対象サービスに対応するアプリケーションを用いて、当該稼働対象サービスの提供要求に応じたサービス処理を開始する(
図7参照)。換言すれば、サーバデバイス20は、自装置20内にインストール済みのアプリケーションを用いて、当該稼働対象サービスをクライアント90に対して提供する。すなわち、サーバデバイス20は、自装置を利用して稼働対象サービスの提供を直ちに開始する。なお、
図7は、本システム1の動作(詳細には、当該複数のアプリケーションのいずれかを用いて稼働対象サービスを提供できる場合における動作)を示すタイミングチャートである。
【0073】
たとえば、稼働対象サービス「service_01」が指定されている場合、サービスリスト250(
図12)内に当該サービス「service_01」が含まれていることに基づき、インストール済の当該複数のアプリケーションのいずれか(詳細には、サービス「service_01」用のインストール済アプリケーション)を用いて稼働対象サービスを提供することが可能である旨が判定される。この場合、
図7に示されるように、サーバデバイス20のサービス管理部29fは、サービス提供要求を当該稼働対象サービス「service_01」に転送し(ステップS3)、当該当該サービス提供要求の受諾がクライアント90に通知される(ステップS4)。その後、クライアント90は、MFP10(詳細にはサーバデバイス20内のサービス「service_01」)から稼働対象サービスの提供を受ける(ステップS5)。
【0074】
なお、上記実施形態では、稼働対象サービスが既に稼働しているが、これに限定されない。たとえば、稼働対象サービス(「service_01」等)がインストール済みではあるものの未だ稼働されていない場合には、当該稼働対象サービスの起動処理を直ちに行った後に、ステップS3,S4,S5の処理が実行されてもよい。
【0075】
一方、稼働対象サービス「service_05」が指定されている場合、ステップS2において、サービスリスト250(
図12)内に当該サービス「service_05」が含まれていないことが判定される。そして、この判定結果に基づき、「サーバデバイス20にインストール済の当該複数のアプリケーションのいずれかを用いて稼働対象サービスを提供すること」が「不可能」である旨が判定される。換言すれば、当該複数のアプリケーションのいずれを用いても稼働対象サービスを提供することが不可能である旨が判定される。
【0076】
この場合、サーバデバイス20は、ステップS11(
図6)以後の処理を実行する(
図8~
図11参照)。なお、
図8および
図9は、本システム1の動作(詳細には、当該複数のアプリケーションのいずれかを用いて稼働対象サービスを提供できない場合における動作)を示すタイミングチャートである。また、
図10は、
図8の動作を示す概念図であり、
図11は、
図9の動作を示す概念図である。以下では、ステップS1にてサービス「service_05」が稼働対象サービスとして指定されている状況を中心に説明する。
【0077】
具体的には、まず、ステップS11~S14(
図8および
図10参照)において、サーバデバイス20のサービス管理部29fは、クラウドサーバ80に稼働対象サービスの提供要求を転送して、当該提供要求に応じたサービス処理をクラウドサーバ80に開始させる。すなわち、サーバデバイス20は、クライアント90に対する当該稼働対象サービスをクラウドサーバ80に提供させる。
【0078】
詳細には、ステップS11において、サーバデバイス20は、サービス提供要求をクラウドサーバ80上のサービスにリダイレクトする。
【0079】
具体的には、まず、サーバデバイス20は、クラウドサーバ80上の稼働対象サービスへのアクセス用のURLをクラウドサーバ80に問い合わせて、当該アクセス用のURLをクラウドサーバ80から取得する。なお、これに限定されず、サーバデバイス20は、格納部25に格納されたURLリスト210(
図13)を利用して、クラウド上の稼働対象サービスへのアクセス用のURLを取得してもよい。URLリスト210は、クラウド上の稼働対象サービスへのアクセス用のURLを予め列挙して記憶したデータリストである。
【0080】
このようにして、たとえば、クラウドサーバ80で提供されているサービス「service_05」にアクセスするためのURL(「http://***.com/service_05」)が取得される。そして、当該URLが取得されると、当該URLへのリダイレクト処理が行われる(ステップS11)。
【0081】
このリダイレクト処理(ステップS11)によって、元のURL「http://192.168.0.1/service_05」へのアクセスが新たなURL「http://***.com/service_05」へのアクセスへと変更され、クライアント90は、(MFP10(サーバデバイス20)ではなく)クラウドサーバ80へとアクセスする(ステップS12)。換言すれば、クライアント90からの当該サービス提供要求は、クラウドサーバ80に転送される。クラウドサーバ80は、当該サービス提供要求を受信すると、当該サービス提供要求の受諾をクライアント90に送信する(ステップS13)。そして、クラウドサーバ80による稼働対象サービスの提供が開始される(ステップS14)。すなわち、クライアント90は、クラウドサーバ80から稼働対象サービスの提供を受けることが可能である。
【0082】
さらに、MFP10(サーバデバイス20)は、クラウドサーバ80による稼働対象サービスの提供期間内において、稼働対象サービスを提供するための特定のアプリケーションのダウンロード等を実行する(ステップS31~S34参照)(
図9および
図11参照)。換言すれば、クラウドサーバ80からクライアント90への稼働対象サービスの提供に並行して、サーバデバイス20はクラウドサーバ80からのダウンロード等を実行する。
【0083】
具体的には、サーバデバイス20は、クラウドサーバ80上の稼働対象サービスのダウンロード要求をクラウドサーバ80に送信し(ステップS31)、クラウドサーバ80は当該ダウンロード要求に応答して稼働対象サービス(ここでは、「service_05」(
図14参照))用のアプリケーション等を送信する(ステップS32)。たとえば、クラウドサーバ80上の稼働対象サービスのサービスイメージデータ(アプリケーション等を含むデータ)が、クラウドサーバ80からサーバデバイス20へと送信される。サーバデバイス20は、受信したデータ(サービスイメージデータ等)を利用して、稼働対象サービスを自装置にインストールする。そして、サーバデバイス20は、自装置内にインストールされた稼働対象サービスに対して起動要求を送信し(ステップS33)、当該稼働対象サービス(「service_05」)を起動する(
図15も参照)。稼働対象サービスの起動が完了すると、サーバデバイス20は起動完了通知を受信する(ステップS34)。なお、稼働対象サービスにおいては、ユーザによる各種事項の入力操作(設定操作等)に比較的長い期間(操作期間)を要することが多い。上述のインストール処理等は、このようなユーザの操作期間を利用して進行させることが可能である。
【0084】
このようにして稼働対象サービス用のアプリケーションの自装置へのインストールが完了し且つ稼働対象サービスが起動すると、サーバデバイス20は、ステップS14にて開始されていた稼働対象サービスのサービス処理をクラウドサーバ80からサーバデバイス20へと引き継ぐための処理を実行する(ステップS37~S40)。
【0085】
具体的には、サーバデバイス20は、まず、サーバデバイス20上の稼働対象サービスへの切替要求をクラウドサーバ80に対して送信する(ステップS37)。当該切替要求は、稼働対象サービスの提供元装置をクラウドサーバ80からサーバデバイス20へと切り替えるべき旨の要求である。
【0086】
クラウドサーバ80は、当該切替要求を受信すると、当該稼働対象サービスのサービス提供を中断する。そして、ラウドサーバ80は、ステップS14でのサービス開始時点から現時点(サービス提供中断時点)までに当該稼働対象サービスに関して変更された情報である変更情報(ユーザによる入力情報等)をMFP10(詳細には、サーバデバイス20上の稼働対象サービス)に送信する(ステップS38)。
【0087】
たとえば、稼働対象サービスが「翻訳サービス」である場合には、翻訳対象データに関する情報(ファイル名およびファイルパス等)、ならびに翻訳に関する各種の設定情報(入力言語、出力言語など)等が送信される。また、稼働対象サービスが「OCRサービス」である場合には、OCR処理対象データに関する情報(ファイル名およびファイルパス等)、ならびにOCRに関する各種の設定情報(OCRエンジン、出力ファイル形式など)等が送信される。なお、当該変更情報は、サービス管理部29fを経由してサーバデバイス20上の稼働対象サービスに送信されてもよく、あるいは、サーバデバイス20上の稼働対象サービスに直接的に送信されてもよい。
【0088】
クラウドサーバ80は、当該変更情報(途中情報とも称する)の送信が完了すると、送信完了通知を送信する(ステップS39)とともに、切替要求に関する処理の完了通知を送信する(ステップS40)。
【0089】
さらに、クラウドサーバ80は、クライアント90からの次の処理に関するリクエストを受信する(ステップS41)と、サーバデバイス20上の稼働対象サービスに当該リクエストをリダイレクトし(ステップS42,S43)し、リダイレクト後のレスポンスは、サーバデバイス20から返信される(ステップS44)。以後、稼働対象サービスに関するクライアント90からのリクエストは、サーバデバイス20へと送信され、サーバデバイス20からレスポンスがクライアント90へと返信される。その結果、(サーバデバイス20上の)稼働対象サービスが、サーバデバイス20によってクライアント90に対して提供される(ステップS45)。このようにして、サーバデバイス20は、稼働対象サービスの提供要求の転送に伴ってクラウドサーバ80によって開始されていたサービス処理をクラウドサーバから引き継いで実行する。
【0090】
以上のように、サーバデバイス20にインストール済の当該複数のアプリケーションのいずれを用いても稼働対象サービスを提供することが「不可能」である旨が判定される(ステップS2)と、サーバデバイス20は、稼働対象サービスに関するサービス処理をクラウドサーバ80に開始させる(S11~S14)とともに、クラウドサーバ80による稼働対象サービスの提供処理に並行して、当該稼働対象サービス用のアプリケーションをサーバデバイス20自身にインストールしてサービス稼働準備を進める(S31~S40)。そして、稼働対象サービス用の当該アプリケーションが起動されてサービス稼働準備が完了すると、稼働対象サービスの提供元がクラウドサーバ80からサーバデバイス20へと切り換わる(S42~S44)。
【0091】
このような動作において、稼働対象サービスの要求時点でサーバデバイス20に未だインストールされていないアプリケーションに対応するサービスは、先ずはクラウドサーバ80によって提供されるので、ユーザは所望のサービスの利用を直ちに(比較的早期に)開始することが可能である。
【0092】
また、クラウドサーバ80による稼働対象サービスのクライアント90への提供処理に並行して、サーバデバイス20は、当該稼働対象サービス用のアプリケーションをクラウドサーバ80からダウンロードしてサーバデバイス20自身にインストールする。そして、インストール完了後において、サーバデバイス20は、稼働対象サービスに関してクラウドサーバ80によって開始されていたサービス処理を当該クラウドサーバ80から引き継いで実行する。このように、稼働対象サービスの要求時点では稼働対象サービス用のアプリケーションがサーバデバイス20にインストールされていなかったとしても、当該アプリケーションがサーバデバイス20へとインストールされ、当該稼働対象サービスがクラウドサーバ80からサーバデバイス20へと引き継いで実行される。したがって、サーバデバイス20は、予め準備されていたサービスのみならず他のサービスをも含む比較的多数のサービスを提供することが可能である。換言すれば、ユーザは、サーバデバイス20によって提供される比較的多数のサービスを利用することが可能である。
【0093】
また、サーバデバイス20(オンプレミスサーバとも表現される)は、(クラウドサーバ80よりも)クライアント90側に近いネットワーク内位置に存在する(詳細には、サーバデバイス20とクライアント90とは同一LAN内に存在する)。それ故、サーバデバイス20(同一LAN内に存在する装置)とクライアント90との通信速度は、クラウドサーバ80(当該LANの外部に存在する装置)とクライアント90との通信速度よりも大きい(高速である)。仮に全てのサービスが常にクラウドサーバ80によってクライアント90に対して提供される場合には、比較的低速な通信速度に起因して反応速度が大きく低下する。これに対して、上記態様によれば、クライアント90における反応速度の低下を抑制することが可能である。
【0094】
このようなサーバデバイス20(MFP10)によれば、反応速度の低下を抑制しつつ比較的多数のサービスを利用することが可能である。
【0095】
また、サーバデバイス20は、サービス処理をクラウドサーバ80から引き継いで実行する際には、当該サービス処理に関連するサービス関連情報(具体的には、クラウドサーバ80によるサービス提供中に変更されたデータ(ユーザによる入力情報等)を含む)をクラウドサーバ80から受信しておき(ステップS38)、当該データをクラウドサーバ80から引き継いで使用する(ステップS45以後)。したがって、サービスの提供元がクラウドサーバ80からサーバデバイス20へと変更された場合に、ユーザによる再度のデータ入力(冗長な重複入力操作等)を要しない。
【0096】
なお、サーバデバイス20のハードウエアリソースの残存量(余裕量)が少ない場合には、新たに稼働されたサービス(「service_05」等)は、当該サービスの使用終了時点で、直ちに稼働停止されることが好ましい。これによれば、さらに別のサービスをサーバデバイス20で新たに稼働させることが可能である。したがって、さらに多数のサービスをサーバデバイス20によって提供することが可能になる。ただし、これに限定されず、新たに稼働されたサービスは、当該サービスの使用が終了しても、(更に別のユーザ等による使用に備えて)引き続き稼働されたままでもよい。その場合には、次述する第2実施形態のように、非稼働中サービスの提供要求が受け付けられた際に、現在稼働中のサービスのうちの少なくとも1つを非稼働状態に遷移させて、新たなサービスを稼働させるためのリソースを確保することが好ましい。
【0097】
また、ここでは、稼働対象サービスを提供するための特定のアプリケーションがクラウドサーバ80(外部装置)からダウンロードされているが、これに限定されない。たとえば、クラウドサーバ80以外の外部装置からMFP10(サーバデバイス20)へとダウンロードされてもよい。
【0098】
<2.第2実施形態>
第2実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
【0099】
上記第1実施形態では、ユーザからの要求時点(ステップS1(
図6))で未だ稼働していなかったサービスを新たに稼働させるためのリソース(ハードウエアリソース)が、当該要求時点でサーバデバイス20に残存していることを前提に説明した。換言すれば、新たなサービスを追加するためのリソース(余裕リソース)がサーバデバイス20に常に存在する場合について説明した。
【0100】
この第2実施形態では、ユーザからの要求時点で当該余裕リソースがサーバデバイス20に存在しない場合にも良好に対応することが可能な態様について説明する。
【0101】
図18および
図19は、第2実施形態に係るMFP10(サーバデバイス20)の動作を示すフローチャートである。第2実施形態に係るMFP10では、
図6の動作に代えて
図18(および
図19)の動作が実行される。なお、
図19は、
図18の動作の一部(ステップS20)の詳細動作を示すフローチャートである。
【0102】
詳細には、第2実施形態では、第1実施形態とは異なり、ステップS11とステップS31との間で、ステップS20(
図18および
図19参照)の動作がさらに実行される。
【0103】
その結果、第2実施形態では、
図8の動作に代えて
図17の動作が行われる。
図17は、第2実施形態の動作の一部を示すタイミングチャートである。
図8と比較すると判るように、ステップS14の直後にステップS20の処理が実行される(
図17参照)。以下、ステップS20の処理について、
図19等を参照しつつ説明する。
【0104】
第2実施形態においては、稼働対象サービスの即時提供が不可能であるとステップS2(
図18)で判定される場合、ステップS11~S14の処理(
図6、
図8および
図10参照)が第1実施形態と同様に行われた後、ステップS20に進む。なお、ステップS20の後は、ステップS31~S45の処理(
図6(
図18)、
図9および
図11参照)が第1実施形態と同様に行われる。
【0105】
ステップS20では、稼働対象サービス(現在未稼働のサービス)と現在稼働中のサービスとを差し替える処理(「差替処理」とも称する)等が行われる。より具体的には、稼働中の複数のサービス(サーバデバイス20のリソースを使用している複数のサービス)のうちの少なくとも1つのサービスを非稼働状態に遷移させて当該少なくとも1つのサービスの使用リソースを解放し(サーバデバイス20における空きリソースを拡大し)当該少なくとも1つのサービスと入れ替わりに稼働対象サービスをサーバデバイス20で稼働させる差替処理等が実行される。端的に言えば、一部の稼働中サービスを削除するとともに当該削除した一部の稼働中サービスと入れ替えて(差し替えて)稼働対象サービスを稼働させる差替処理が実行される。なお、差替処理において非稼働状態(停止状態)に遷移される少なくとも1つのサービス(サーバデバイス20のメモリ等から削除される少なくとも1つの稼働中サービス)を「停止対象サービス(あるいは削除対象サービス)」とも称する。
【0106】
詳細には、まず、ステップS61において、MFP10(詳細にはサーバデバイス20のサービス管理部29f)は、稼働対象サービスの稼働に要するリソース情報(所要リソース情報とも称する)をクラウドサーバ80から取得する。より詳細には、
図17および
図20に示すように、サーバデバイス20(サービス管理部29f)は、クラウドサーバ80(詳細にはクラウドサーバ80内のサービス管理部89f)に対して所要リソース情報の取得要求を送信し、当該サービス管理部89fから所要リソース情報を受信して取得する。
【0107】
たとえば、稼働対象サービスが「service_10」である場合には、クラウドサーバ80内に格納されているサービスリスト850(
図23参照)に基づいて、「service_10」の所要リソース情報(CPUコア数「2」およびメモリ「1000」MB(メガバイト))が取得される。なお、サービスリスト850には、クラウドサーバ80で稼働している各サービスの各種情報(「サービス名」、「所要CPUコア数」、「所要メモリ容量」、「クラウドサービスのアドレス」)が格納されている。
【0108】
次のステップS62では、サービス管理部29fは、サーバデバイス20(オンプレミスサーバ)で稼働しているサービスの情報を、サービスリスト250(
図22参照)に基づいて取得する。サービスリスト250には、サーバデバイス20で現在稼働している各サービスの各種情報(「コンテナ名」、「サービス名」、「使用CPUコア数」、「使用メモリ容量」、「クラウドサービス(クラウドサーバ80によって提供されるサービス)のアドレス」、「オンプレミスサービス(サーバデバイス20によって提供されるサービス)のアドレス」、「サーバID」)が格納されている。なお、サーバデバイス20は2枚のブレードサーバ(「server_01」および「server_02」)を備えて構成されており、実際に各サービスを実行しているブレードサーバのIDが「サーバID」として格納されている。
【0109】
たとえば、
図22のサービスリスト250においては、9つのサービスがそれぞれ対応コンテナで稼働していることが示されている。そして、これら9つのサービスで使用されているリソース(使用リソース)の合計量が算出される。ここでは、ブレードサーバごとに使用リソースの合計量が算出される。
【0110】
ブレードサーバ「server_02」では3つのサービス(「service_06」~「service_08」)が稼働しており、当該3つのサービスで使用されているCPUコア数は、「7」(=3+2+2)である。したがって、ブレードサーバ「server_01」での使用CPUコア数は「7」である。また、
図25に示されるように、ブレードサーバ「server_02」は、「8」個のCPUコアを有している。したがって、空いているCPUコアの数は、「1」個(=8-7)である。なお、
図25は、サーバデバイスのハードウエアリソースを示す図である。
【0111】
また、ブレードサーバ「server_01」では6つのサービス(「service_01」~「service_05」、および「service_09」)が稼働しており(
図22参照)、当該6つのサービスで使用されているCPUコア数は、「7」(=1+2+1+1+1+1)である。ただし、ブレードサーバ「server_01」では当該6つのサービスに加えてサービス管理用のサービス(およびホストOS)も稼働しているので、サービス管理用のサービス(およびホストOS)の使用CPUコア数「1」を「7」に加えた「8」が、ブレードサーバ「server_01」での使用CPUコア数である。また、
図25に示されるように、ブレードサーバ「server_01」は「8」個のCPUコアを有している。したがって、空いているCPUコアの数は「0」個(=8-8)であり、ブレードサーバ「server_01」には、空いているCPUコアが存在しない。
【0112】
ステップS63では、サーバデバイス20の現在の空きリソース量が稼働対象サービスの所要リソース量以上であるか否かが判定される。具体的には、ブレードサーバごとの空きリソース量と稼働対象サービスの所要リソース量とが比較される。ここでは、「リソース」として、CPUコア数が考慮される。ただし、これに限定されず、CPUコア数に加えて(あるいはCPUコア数に代えて)所要メモリ量等が考慮されてもよい。
【0113】
サーバデバイス20の空きリソース量が稼働対象サービスの所要リソース量以上である場合には、ステップS63からステップS31(
図6)に進み、第1実施形態と同様の動作が実行される。
【0114】
たとえば、
図21に示すように、サーバデバイス20にて8つのサービス(「service_01」~「service_08」)の稼働中に、サービス「service_09」が稼働対象サービスとして稼働されようとしている場合には、サーバデバイス20にて空いているCPUコアの数は「2」個(各ブレードサーバ「server_01」,「server_02」にて1個ずつ)であり、稼働対象サービス「service_09」の所要CPUコア数は「1」個である。その場合、サーバデバイス20の空きリソース量が稼働対象サービスの所要リソース量以上であると判定され、(次述するステップS64には進まず)ステップS31に進む。そして、ステップS31以降の処理が実行されることによって、稼働対象サービス「service_09」がサーバデバイス20(たとえば、ブレードサーバ「server_01」)によって稼働され、サーバデバイス20による稼働対象サービス「service_09」の提供が開始される。
【0115】
一方、サーバデバイス20の空きリソース量が稼働対象サービスの所要リソース量未満である場合には、ステップS63からステップS64に進む。たとえば、所望の稼働対象サービス「service_10」の所要CPUコア数「2」が空きリソース(ここでは空きCPUコア数)の合計「1」よりも大きい場合(
図22参照)、サーバデバイス20の空きリソース量が稼働対象サービスの所要リソース量未満であると判定され、ステップS64に進む。
【0116】
ステップS64において、サービス管理部29fは、現時点でサーバデバイス20にて稼働している各サービス(稼働中サービスとも称する)の所要リソース量を確認する。
【0117】
さらに、サービス管理部29fは、各稼働中サービスのユーザの利用状況(使用状況)を確認し(ステップS65)、「稼働中サービスのうち何れのユーザによっても現在使用されていないサービス」(非使用中サービス(あるいは非利用中サービス)とも称する)が存在するか否かを判定する(ステップS66)。
【0118】
非使用中サービスが存在しないと判定される場合、ステップS68に進み、サービスの差替処理の開始を保留する。次のステップS69の分岐処理では、稼働対象サービスの利用が未だ終了していないときには、ステップS65に戻る。一方、稼働対象サービスの利用が終了すると、本処理を終了する。このように、稼働対象サービスの利用が未だ終了していないことを条件として、何れかの非使用中サービスが発生するまで、ステップS65,S66,S68の処理が繰り返される。換言すれば、サーバデバイス20にて現在稼働中のサービスの中に、非使用中サービスが存在しない場合には、差替処理(ステップS72,S31~S34等)が保留される。
【0119】
一方、非使用中サービスが存在すると判定される場合、ステップS67に進む。
【0120】
ステップS67では、非使用中サービスの合計リソースが、稼働対象サービスの所要リソース以上であるか否かが判定される。
【0121】
非使用中サービスの合計リソースが稼働対象サービスの所要リソース未満である場合、ステップS68に進む。この場合にも、差替処理(ステップS72,S31~S34等)が保留される。
【0122】
一方、非使用中サービスの合計リソースが稼働対象サービスの所要リソース以上である場合、サーバデバイス20は、稼働中サービスの中から(詳細には、非使用中サービスの中から)、差替処理における「停止対象サービス(削除対象サービス)」を決定する(ステップS72)。より詳細には、サーバデバイス20は、サービスの利用履歴を取得(ステップS71)し、当該利用履歴に基づいて、差替処理における停止対象サービス(非稼働状態に遷移させて停止させるべきサービス)を決定する(ステップS72)。なお、非使用中サービスが1つのみである場合には、当該1つの非使用中サービスが停止対象サービスとして決定される。また、複数の非使用中サービスが存在する場合には、当該利用履歴に基づいて差替処理における停止対象サービスが決定される。
【0123】
ここでは、MFP10(サーバデバイス20)にて現在稼働中且つ非使用中のサービスの中から、最終使用時点を示す情報に基づいて「停止対象サービス」が決定される。より詳細には、MFP10にて現在稼働中且つ非使用中のサービスのうち、最終使用時点(最終利用時刻)が最も古いサービスが「停止対象サービス」として決定される。たとえば、現在稼働中のサービスのうち、最終使用時点が「5分前」の非使用中サービスと最終使用時点が「1週間前」の非使用中サービスとが存在する場合、最終使用時点が「1週間前」のサービスが停止対象サービスとして決定される。このように、使用されていない期間が最も長いサービスが停止対象サービスとして決定される。
【0124】
たとえば、
図22においてサービス「service_02」を含む複数のサービスが非使用中サービスである場合、当該非使用中サービスの合計リソース(CPUコア数「2」以上)は、稼働対象サービスの所要リソース(CPUコア数「1」)以上であるので、ステップS67からステップS71,S72に進む。そして、サービス「service_02」が、稼働中且つ非使用中の複数のサービスのうちその最終使用時点(最終利用時刻)が最も古いサービスである場合、当該サービス「service_02」が「停止対象サービス」として決定される。
【0125】
ただし、これに限定されず、MFP10にて現在稼働中且つ非使用中のサービスの中から、最終使用時点からの経過期間が所定の期間より長いサービスが抽出され、抽出された1又は複数のサービスの中から、「停止対象サービス」が選択(決定)されてもよい。複数のサービスが抽出される場合は、その中で最終使用時点が最も古いサービスが「停止対象サービス」として選択されるようにしてもよいし、当該複数のサービスの中から「停止対象サービス」をユーザに選択させるようにしてもよい。
【0126】
あるいは、MFP10(サーバデバイス20)にて現在稼働中且つ非使用中のサービスの中から、過去の所定期間中における使用回数を示す情報に基づいて「停止対象サービス」が決定されてもよい。より詳細には、MFP10にて現在稼働中且つ非使用中のサービスのうち、過去の所定期間中における使用回数が最も少ないサービス(使用頻度が最も小さいサービス)が停止対象サービスとして決定されてもよい。たとえば、現在稼働中のサービスのうち、過去3ヶ月における使用回数が「100回」の非使用中サービスと過去3ヶ月における使用回数が「5回」の非使用中サービスとが存在する場合、過去3ヶ月における使用回数が「5回」のサービスが停止対象サービスとして決定される。このように、使用頻度が最も小さいサービスが停止対象サービスとして決定されてもよい。あるいは、過去の所定期間中における使用回数が所定回数より少ないサービスが抽出され、その中から「停止対象サービス」が選択されてもよい。複数のサービスが抽出される場合は、その中で使用回数が最も少ないサービスが「停止対象サービス」として選択されるようにしてもよいし、当該複数のサービスの中から「停止対象サービス」をユーザに選択させるようにしてもよい。
【0127】
あるいは、MFP10(サーバデバイス20)にて現在稼働中且つ非使用中のサービスの中から、過去の所定期間中における使用ユーザ数を示す情報に基づいて「停止対象サービス」が決定されてもよい。より詳細には、MFP10にて現在稼働中且つ非使用中のサービスのうち、過去の所定期間中における使用ユーザ数が最も少ないサービス(過去の所定期間にそのサービスを使用したことがあるユーザの数が最も少ないサービス)が停止対象サービスとして決定されてもよい。たとえば、現在稼働中のサービスのうち、過去3ヶ月における使用ユーザ数が「5人」の非使用中サービスと過去3ヶ月における使用ユーザ数が「1人」の非使用中サービスとが存在する場合、過去3ヶ月における使用ユーザ数が「1人」の非使用中サービスが停止対象サービスとして決定される。このように、過去の使用ユーザ数が最も少ないサービスが停止対象サービスとして決定されてもよい。あるいは、過去の所定期間中における使用ユーザ数が所定数より少ないサービスが抽出され、その中から「停止対象サービス」が選択されてもよい。複数のサービスが抽出される場合は、その中で使用ユーザ数が最も少ないサービスが「停止対象サービス」として選択されるようにしてもよいし、当該複数のサービスの中から「停止対象サービス」をユーザに選択させるようにしてもよい。なお、過去の所定期間は、過去の全期間であってもよい。
【0128】
このような処理によって、少なくとも1つのサービス(たとえば、1つのサービス「service_02」)が停止対象サービスとして決定される。より詳細には、その使用リソース(占有リソース)の合計が稼働対象サービスの提供に要するリソースよりも多い少なくとも1つのサービスが、停止対象サービスとして稼働中サービスの中から(より詳細には、非使用中サービスの中から)決定される。
【0129】
なお、ここでは、非使用中サービスの中から停止対象サービスが決定されているが、これに限定されず、使用中サービスを含む複数の稼働中サービスの中から、停止対象サービスが決定されてもよい。
【0130】
その後、サーバデバイス20は、停止対象サービスとして決定されたサービスを、稼働状態から非稼働状態に遷移させ停止させる(ステップS72)。端的に言えば、当該停止対象サービス(削除対象サービス)がサーバデバイス20から削除される。
【0131】
そして、ステップS31以後の動作(
図18、
図9および
図11参照)が、第1実施形態と同様に実行される。これによれば、サーバデバイス20による稼働対象サービス「service_10」の提供が開始される。
図24のサービスリスト250においては、サーバデバイス20において停止対象サービス「service_02」が停止される(ステップS72)とともに、(サービス「service_02」の停止と引き換えに)サーバデバイス20において稼働対象サービス「service_10」の稼働が開始(ステップS44)された様子が示されている。
【0132】
以上のようにして、差替処理を伴いつつサーバデバイス20による稼働対象サービスの提供動作が実行される。このような差替処理を伴うことによれば、ユーザからの要求時点で余裕リソースがサーバデバイス20に存在しない場合にも、サーバデバイス20のリソースを有効に活用して、良好に対応することが可能である。具体的には、サーバデバイス20において停止対象サービスと引き換えに稼働対象サービスを稼働させることが可能である。
【0133】
また、稼働中サービスのうち非使用中サービスが停止対象サービスとして決定されるので、他のサービスへの影響を抑制して停止対象サービスを稼働させることが可能である。
【0134】
さらに、非使用中サービスのうち、長期間不使用のサービス、使用頻度が低いサービス、あるいは、過去の使用ユーザ数が少ないサービス等が、停止対象サービスとして決定されるので、他のサービスへの影響をより適切に抑制して停止対象サービスを稼働させることが可能である。
【0135】
また、上記動作(特にステップS66,S67~S72等)においては、使用されていないサービス(非使用中サービス)が存在しないことに基づき差替処理を保留することが一旦決定(ステップS66)された時点の後において、当該時点で使用されていた1以上のサービスが当該時点の後に使用されなくなった場合(使用中サービスの使用が終了した場合)、これに応答して、ステップS66からステップS67に進む。この場合、非使用中サービスの合計リソースが稼働対象サービスの所要リソース以上であることをも条件として、差替処理(ステップS72,S31~S34等)の保留が解除され当該差替処理が開始される(ステップS67,S71,S72)。これによれば、サーバデバイス20での使用状況の経時変化をも考慮して、より適切に差替処理を実行することが可能である。
【0136】
また、上記ステップS72においては、サーバデバイス20は、稼働状態から非稼働状態(稼働停止状態)へと移行される停止対象サービスに関するデータであって、非稼働状態への遷移前の稼働期間において変更されていたデータを、クラウドサーバ80にアップロードしてクラウドサーバ80にて管理させることが好ましい。停止対象サービスがサービス提供装置10にて実行されていた際に変更された当該データ(遷移前の稼働期間において変更されていたデータ)としては、たとえば、課金情報、ユーザによる入力情報、ユーザの使用履歴情報等が例示される。
【0137】
これによれば、ローカル側(サーバデバイス20)で変更されていたデータがクラウド側(クラウドサーバ80)に適切に反映されるので、停止対象サービスがクラウドサーバ80にて再び実行される際にクラウドサーバ80とサービス提供装置10との間でのデータ不整合を回避することが可能である。
【0138】
<3.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【0139】
<並行ダウンロード処理>
たとえば、上記第2実施形態においては、サーバデバイス20にて現在使用されていないサービスが存在しない場合(ステップS66(
図19)でYES)には、使用されていないサービスが発生するまで差し替え処理は保留され(ステップS68)、停止対象サービスが決定できない態様が例示されているが、これに限定されない。
【0140】
具体的には、サーバデバイス20にて現在使用されていないサービスが存在しないために停止対象サービスが決定できない場合、サーバデバイス20は、(ステップS68等にて)稼働対象サービスの稼働用アプリケーションのダウンロードを開始して稼働対象サービスの稼働開始のための準備を進行させておくようにしてもよい。そして、サーバデバイス20は、サーバデバイス20における使用終了サービスの発生に伴って当該使用終了サービスを停止対象サービスとして決定し、当該停止対象サービスの稼働停止と引き換えに、稼働対象サービスの稼働用アプリケーションを利用して稼働対象サービスの稼働を開始するようにしてもよい。より具体的には、当該停止対象サービスの稼働停止時点で稼働用アプリケーションのダウンロードが既に完了している場合には、当該ダウンロード済みの稼働用アプリケーションのインストールおよび起動が行われればよい。あるいは、当該停止対象サービスの稼働停止時点で稼働用アプリケーションのダウンロードが未だ完了していない場合には、当該ダウンロードが継続され、当該ダウンロード完了直後に稼働用アプリケーションのインストールおよび起動が行われればよい。さらに、その後に、ステップS37,S38の処理(稼働対象サービスの切換要求および稼働対象サービスに関するサービス関連情報の受信動作等)が実行されればよい。
【0141】
このような動作によれば、アプリケーションのダウンロード処理が停止対象サービスの決定時点(ステップS72)よりも前に予め進行するので、ステップS31から当該ダウンロード処理が開始される態様よりも当該ダウンロード処理を早期に終了させること、ひいては、稼働対象サービスをクラウドサーバ80からサーバデバイス20へと早期に引き継ぐことが可能である。
【0142】
<停止対象サービス>
また、上記各実施形態においては、MFP10内のサーバデバイス20にて稼働されている全てのサービスが停止対象サービス(削除対象サービス)になり得る態様が示されているが、これに限定されない。たとえば、所定の除外対象サービス(予め指定された除外対象サービス)を除いたサービスの中から、停止対象サービスが決定されてもよい。当該所定の除外対象サービスとしては、(クラウドサーバ80側ではなく)サーバデバイス20内にて常に動作させておくことが好ましいサービスが例示される。たとえば、MFP10内の画像形成デバイス30の基本動作サービス(詳細には、プリントサービス、スキャンサービス、コピーサービス、ファクシミリサービス等)が例示される。また、サーバデバイス20にて常駐させるべきメールサービス等も例示される。当該除外対象サービス以外のサービスの中から停止対象サービスが決定されることによれば、当該除外対象サービスのサーバデバイス20における稼働状態が適切に継続され得る。
【0143】
<ユーザデータの引き継ぎ>
また、上記各実施形態においては、サーバデバイス20は、サービス処理をクラウドサーバ80から引き継いで実行することを決定すると、ステップS38(
図6および
図9参照)においてサービス関連情報を受信し、当該サービス関連情報をも引き継いでサービス処理を実行している。当該サービス関連情報は、複数のユーザの全てに関するデータを含んでいてもよいが、これに限定されず、当該複数のユーザの一部に関するデータのみであってもよい。
【0144】
たとえば、サーバデバイス20は、ステップS38において、稼働対象サービス(引継対象のサービス)の現在の使用中ユーザを特定するとともに、当該稼働対象サービスの複数のユーザ(U1,U2,U3等)に関するデータのうち、当該使用中ユーザ(U1,U2)に関するデータのみをダウンロードしてもよい。
【0145】
また、当該稼働対象サービスの当該使用中ユーザに関するデータのダウンロードが完了した後(より好ましくは、ステップS44の後)、サーバデバイス20は、当該使用中ユーザ以外のユーザ(U3等)に関するデータのダウンロードを開始(実行)してもよい。このように、使用中ユーザ(U1,U2)のデータがそれ以外のユーザ(U3等)のデータよりも優先的にダウンロードされてもよい。
【0146】
あるいは、サーバデバイス20は、ステップS38で当該使用中ユーザ(第1の使用対象ユーザとも称する)(U1,U2)に関するデータをダウンロードした後、当該第1の使用対象ユーザとは別の第2の使用対象ユーザ(U5等)からの同じ稼働対象サービスの提供要求を受け付けたことに応答して、当第2の使用対象ユーザ(U5等)に関するデータをダウンロードするようにしてもよい。
【0147】
<ダウンロード対象データの種類等>
上述のように上記各実施形態においては、サーバデバイス20は、サービス処理をクラウドサーバ80から引き継いで実行することを決定すると、ステップS38(
図6および
図9参照)においてサービス関連情報を受信し、当該サービス関連情報をも引き継いでサービス処理を実行している。
【0148】
当該サービス関連情報は、全ての種類のデータを含んでいてもよいが、これに限定されず、当該一部の種類のデータのみであってもよい。換言すれば、ローカル側(サーバデバイス20)で管理される情報は、一部の種類の情報であってもよい。
【0149】
ローカル側(サーバデバイス20側)で管理される情報(データ)としては、たとえば、ログイン情報に関連付けられた情報(ログインユーザごとの印刷設定情報、およびログインユーザごとのファイル保存先のパス情報等)が例示される。また、画面操作に関するサムネイル画像情報(たとえば、特定フォルダ内のサムネイル画像情報)、およびポーリングモニタリング処理におけるステータス情報(プリント受付、画像変換中、印刷実行中、エラー発生、正常終了)等も例示される。これらの情報は、頻繁にアクセスが発生する情報(および/または画面表示などでユーザの目に触れやすい情報)であるなどの特性を有しており、そのデータ通信に伴う反応速度の低下を抑制するためには、ローカル側(オンプレミス側)で管理されることが好ましい。
【0150】
一方、一連の処理の整合性が所定レベル以上に要求される情報(一連の処理の不整合が回避されるべき情報)等は、複数のローカル側サーバ(複数のサーバデバイス20等)で管理されるよりも、クラウドサーバ80にて一括管理されることが好ましい。たとえば、トランザクション処理(入出金処理(入金処理および出金処理)などの一体不可分の処理群)に関するデータ(トランザクションデータ)は、サーバデバイス20側で管理されるのではなく、クラウドサーバ80で管理されることが好ましい。たとえば、これらの情報(トランザクション処理に関するデータ等)は、ステップS38でのダウンロードの対象から除外され、クラウドサーバ80で管理すればよい。具体的には、ステップS45以後の通信において当該情報の変更要求がサーバデバイス20からクラウドサーバ80に対して逐次送信され、当該変更要求に応じてクラウドサーバ80内での管理情報が逐次更新(変更)されればよい。
【0151】
このように、サーバデバイス20は、稼働対象サービスに関するデータのうち一部の特定データ(トランザクションデータ等)をダウンロードせず(管理せず)、クラウドサーバ80が当該一部の特定データを管理するようにしてもよい。
【0152】
<アップロードタイミング>
上記各実施形態においては、サーバデバイス20によるサービス提供期間中に変更されたデータは、サーバデバイス20にて稼働停止される際に、サーバデバイス20からクラウドサーバ80へとアップロードされている(ステップS72)が、これに限定されない。
【0153】
たとえば、サーバデバイス20は、サーバデバイス20によって提供される稼働対象サービスのサービス提供期間中に変更されるデータを、稼働対象サービスの稼働期間中(ステップS1よりも前の稼働期間中、およびステップS45以後の稼働期間中等)において逐次に(変更されるごとに)クラウドサーバ80に転送して格納させる(管理させる)ようにしてもよい。
【0154】
あるいは、サーバデバイス20は、サーバデバイス20によって提供される稼働対象サービスのサービス提供期間中に変更されるデータを、稼働対象サービスの各ユーザによる使用が終了した時点(詳細には、各ユーザがユーザ操作に応じてログアウトした時点、および/または各ユーザの一定の無操作期間の経過に基づく強制ログアウト時点(セッションタイムアウト時点)等)で一括してクラウドサーバ80に転送して格納させる(管理させる)ようにしてもよい。
【0155】
<その他>
また、上記各実施形態等においては、CPUに関するリソースがCPUコア数で表現されているが、これに限定されず、CPUに関するリソースがCPUの使用率(%)等で表現されてもよい。
【0156】
また、上記各実施形態では、クライアント90として、いわゆるパーソナルコンピュータ等が例示されているが、これに限定されない。たとえば、クライアント90は、上記MFP10とは別のMFPなどであってもよい。当該別のMFPは、サーバデバイス20を有しない従来のMFP等であってもよい。
【符号の説明】
【0157】
1 サービス提供システム
10 MFP(サービス提供装置)
20 サーバデバイス
30 画像形成デバイス
80 クラウドサーバ
90 クライアント
250 (サーバデバイス20における)サービスリスト
850 (クラウドサーバ80における)サービスリスト