(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157698
(43)【公開日】2024-11-08
(54)【発明の名称】マルチデバイスシステム
(51)【国際特許分類】
G06F 11/07 20060101AFI20241031BHJP
G06F 11/20 20060101ALI20241031BHJP
【FI】
G06F11/07 196
G06F11/07 140A
G06F11/20 633
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023072208
(22)【出願日】2023-04-26
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100131521
【弁理士】
【氏名又は名称】堀口 忍
(72)【発明者】
【氏名】宮田 幸太
【テーマコード(参考)】
5B034
5B042
【Fターム(参考)】
5B034CC01
5B042KK04
5B042KK09
(57)【要約】
【課題】クラウドを利用するマルチデバイスシステムにおいて、クラウド側で障害が発生した場合であっても、その動作を継続できるようにする。
【解決手段】マルチデバイスシステムは、複数のデバイスおよび複数のデバイスを管理する管理デバイスを備え、クラウドが提供するサービスを利用して動作する。複数のデバイスのうちのいずれかのデバイスは、マルチデバイスシステム内でクラウドサービスを実現するためのアプリケーションプログラムを保持する。管理デバイスは、クラウドまたはクラウドとの通信の異常を検知したときに、複数のデバイスそれぞれに対して、接続先をクラウドからアプリケーションプログラムを保持しているデバイスに変更することを指示する。複数のデバイスは、それぞれ、管理デバイスからの指示に応じて、デバイスが保持しているアプリケーションプログラムにアクセスする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のデバイスおよび前記複数のデバイスを管理する管理デバイスを備え、クラウドが提供するサービスを利用して動作するマルチデバイスシステムであって、
前記複数のデバイスのうちのいずれかのデバイスは、前記マルチデバイスシステム内で前記サービスを実現するためのアプリケーションプログラムを保持し、
前記管理デバイスは、前記クラウドまたは前記クラウドとの通信の異常を検知したときに、前記複数のデバイスそれぞれに対して、接続先を前記クラウドから前記アプリケーションプログラムを保持しているデバイスに変更することを指示し、
前記複数のデバイスは、それぞれ、前記管理デバイスからの指示に応じて前記アプリケーションプログラムにアクセスする
ことを特徴とするマルチデバイスシステム。
【請求項2】
前記管理デバイスは、
前記クラウドまたは前記クラウドとの通信の異常を検知したときに、前記複数のデバイスそれぞれのリソースの状態に基づいて、前記複数のデバイスの中から前記アプリケーションプログラムを実行するデバイスを選択し、
選択したデバイスに前記アプリケーションプログラムを再配置し、
前記複数のデバイスは、それぞれ、再配置された前記アプリケーションプログラムにアクセスする
ことを特徴とする請求項1に記載のマルチデバイスシステム。
【請求項3】
前記アプリケーションプログラムは、複数のアプリケーションプログラム部品から構成され、
前記複数のアプリケーションプログラム部品は、前記複数のデバイスのうちの異なるデバイスにより保持され、
前記管理デバイスは、前記複数のアプリケーションプログラム部品を、前記複数のデバイスそれぞれのリソースの状態に基づいて、前記複数のデバイスのうちの異なるデバイスに再配置する
ことを特徴とする請求項2に記載のマルチデバイスシステム。
【請求項4】
前記管理デバイスは、前記クラウドまたは前記クラウドとの通信の異常からの復旧を検知したときに、前記複数のデバイスの接続先を前記アプリケーションプログラムから前記クラウドに変更する
ことを特徴とする請求項1に記載のマルチデバイスシステム。
【請求項5】
前記管理デバイスは、
前記マルチデバイスシステム内での前記アプリケーションプログラムの利用状況をモニタし、
前記クラウドまたは前記クラウドとの通信の異常からの復旧を検知したときに、前記利用状況を前記クラウドに通知する
ことを特徴とする請求項1に記載のマルチデバイスシステム。
【請求項6】
前記利用状況は、前記マルチデバイスシステム内での前記アプリケーションプログラムの稼働時間またはアクセス数を表す
ことを特徴とする請求項5に記載のマルチデバイスシステム。
【請求項7】
前記管理デバイスは、前記クラウドまたは前記クラウドとの通信の異常からの復旧を検知したときに、前記マルチデバイスシステム内での前記アプリケーションプログラムによる処理結果データを前記クラウドに送信する
ことを特徴とする請求項1に記載のマルチデバイスシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のデバイスを備えるマルチデバイスシステムに係わる。
【背景技術】
【0002】
複数のデバイスがそれぞれクラウド上のアプリケーションを利用しながら連携して動作するマルチデバイスシステムが実用化されている。ただし、この構成では、クラウド側で障害が発生した場合、或いは、クラウドとの間の通信に障害がした場合には、サービスが停止してしまう。このため、デバイスの接続先のアクセスポイントに障害が発生した場合であっても、デバイスが特定のサービスを利用できる方法が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている方法では、デバイスと通信接続されているアクセスポイントの異常を検知すると、デバイスの通信接続先が、特定の機能を利用するための他のアクセスポイントに切り替えられる。しかし、この方法では、他のアクセスポイントに接続できない場合、或いは、クラウド側で障害が発生した場合には、動作を継続できない。
【0005】
本発明の1つの側面に係わる目的は、クラウドを利用するマルチデバイスシステムにおいて、クラウド側で障害が発生した場合、或いは、クラウドとの間の通信に障害が発生した場合であっても、その動作を継続できるようにすることである。
【課題を解決するための手段】
【0006】
本発明の1つの態様に係わるマルチデバイスシステムは、複数のデバイスおよび前記複数のデバイスを管理する管理デバイスを備え、クラウドが提供するサービスを利用して動作する。前記複数のデバイスのうちのいずれかのデバイスは、前記マルチデバイスシステム内で前記サービスを実現するためのアプリケーションプログラムを保持する。前記管理デバイスは、前記クラウドまたは前記クラウドとの通信の異常を検知したときに、前記複数のデバイスそれぞれに対して、接続先を前記クラウドから前記アプリケーションプログラムを保持しているデバイスに変更することを指示する。前記複数のデバイスは、それぞれ、前記管理デバイスからの指示に応じて前記アプリケーションプログラムにアクセスする。
【発明の効果】
【0007】
上述の態様によれば、クラウドを利用するマルチデバイスシステムにおいて、クラウド側で障害が発生した場合、或いは、クラウドとの間の通信に障害が発生した場合であっても、その動作を継続できる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施形態に係わるマルチデバイスシステムの一例を示す図である。
【
図2】管理デバイスが保持する管理データ(デバイス管理データ、クラウドアプリ管理データ、およびサービス利用データ)の一例を示す図である。
【
図3】クラウドの管理サーバが保持する管理データ(サービス利用データおよびアプリケーションデータ管理データ)の一例を示す図である。
【
図4】マルチデバイスシステムの処理の一例を示すフローチャートである。
【
図5】クラウド情報を取得する処理の一例を示すフローチャートである。
【
図6】デバイス情報を取得する処理の一例を示すフローチャートである。
【
図7】クラウドの状態を検知する処理の一例を示すフローチャートである。
【
図8】ローカル環境のクラウドアプリを確認する処理一例を示すフローチャートである。
【
図9】クラウドアプリを実行するデバイスを選択する処理の一例を示すフローチャートである。
【
図10】マルチデバイスシステムにおいてクラウドアプリを再配置する処理の一例を示すフローチャートである。
【
図11】常駐アプリの接続先を各デバイスに通知する処理の一例を示すフローチャートである。
【
図12】常駐アプリの接続先をクラウドからローカルに変更する処理の一例を示すフローチャートである。
【
図13】ローカル環境でのサービスの利用状況を表す利用情報を収集する処理の一例を示すフローチャートである。
【
図14】ローカル環境でクラウドアプリが動作しているときにクラウドの状態を検知する処理の一例を示すフローチャートである。
【
図15】常駐アプリの接続先をローカルからクラウドに変更する処理の一例を示すフローチャートである。
【
図16】サービスの利用状況を管理サーバに通知する処理の一例を示すフローチャートである。
【
図17】マルチデバイスシステムの処理の一例を示すシーケンス図である。
【
図18】マルチデバイスシステムの動作の実施例を示す図(その1)である。
【
図19】マルチデバイスシステムの動作の実施例を示す図(その2)である。
【
図20】マルチデバイスシステムの動作の実施例を示す図(その3)である。
【
図21】マルチデバイスシステムの動作の実施例を示す図(その4)である。
【発明を実施するための形態】
【0009】
図1は、本発明の実施形態に係わるマルチデバイスシステムの一例を示す。本発明の実施形態に係わるマルチデバイスシステム100は、
図1に示すように、複数のデバイス10(10a~10d)を備える。複数のデバイス10は、互いに通信可能に構成されている。例えば、複数のデバイス10は、ローカルエリアネットワーク(LAN)に接続されている。
【0010】
各デバイス10は、それぞれ、プロセッサ、メモリ、およびストレージを備える。メモリまたはストレージには、オペレーティングシステム(OS)および1または複数のアプリケーションプログラムが格納されている。そして、プロセッサは、OS上でアプリケーションプログラムを実行することでデバイス10の動作を制御する。なお、以下の記載では、自デバイスのメモリまたはストレージに予め格納されているアプリケーションプログラムを「常駐アプリ11」と呼ぶことがある。
【0011】
複数のデバイス10のうちの1つは、他のデバイスを管理する機能を備える。この実施例では、デバイス10aは、デバイス10b~10dを管理する機能を備える。よって、以下の記載では、デバイス10aのことを「管理デバイス10a」と呼ぶことがある。
【0012】
管理デバイス10aは、管理ツール12を備える。管理ツール12は、管理データを保持し、クラウド200の状態およびマルチデバイスシステム100とクラウド200との間の通信の状態を管理する。また、管理ツール12は、各デバイス10(ここで、デバイス10b~10d)の状態を管理する。なお、管理ツール12は、例えば、管理デバイス10aに実装されるプロセッサが管理プログラムを実行することで実現される。
【0013】
管理デバイス10a以外の各デバイス10(即ち、デバイス10b~10d)は、エージェントツール13を備える。エージェントツール13は、自デバイスのメトリクス情報を取得して管理ツール12に通知する。メトリクス情報は、自デバイス内のリソースの構成および空き容量などを表す。なお、エージェントツール13は、デバイス10に実装されるプロセッサがエージェントプログラムを実行することで実現される。
【0014】
デバイス10は、ネットワーク300を介してクラウド200にアクセスすることができる。ここで、ネットワーク300は、例えば、公衆回線である。そして、デバイス10は、必要に応じて、クラウド200が提供するサービスを利用して動作する。すなわち、デバイス10は、必要に応じて、クラウド200上のアプリケーションを利用して動作する。このとき、デバイス10に実装されている常駐アプリ11がクラウド200上のアプリケーションを利用する。或いは、常駐アプリ11は、クラウド200上のアプリケーションに処理を依頼し、その処理結果を受け取る。
【0015】
クラウド200は、アプリケーションサーバ210および管理サーバ220を備える。アプリケーションサーバ210は、要求されたサービスを提供するためのアプリケーションプログラムを備える。そして、アプリケーションサーバ210は、デバイス10からのアクセスに応じて、指定されたアプリケーションプログラムを実行して処理結果を提供する。すなわち、アプリケーションサーバ210は、デバイス10からのアクセスに応じてサービスを提供する。なお、以下の記載では、クラウド200のアプリケーションサーバ210が保持しているアプリケーションプログラムを「クラウドアプリ(または、クラウドアプリAPP)」と呼ぶことがある。
【0016】
管理サーバ220は、クラウド200の状態を管理し、また、クラウド200の状態を管理デバイス10aに通知する。このとき、管理サーバ220は、管理デバイス10aからの問合せに応じてクラウド200の状態を管理デバイス10aに通知してもよいし、自発的にクラウド200の状態を管理デバイス10aに通知してもよい。
【0017】
このように、マルチデバイスシステム100を構成する複数のデバイス10は、それぞれクラウド200上のアプリケーションを利用する。このとき、管理サーバ220は、マルチデバイスシステム100に対してサービス利用料を要求してもよい。この場合、クラウドアプリの利用料は、例えば、クラウドアプリの利用時間またはクラウドアプリへのアクセス数に基づいて算出される。
【0018】
ところが、クラウド200において障害が発生した場合、或いは、クラウド200との間の通信に障害がした場合、マルチデバイスシステム100は動作を継続できなくなるおそれがある。このため、マルチデバイスシステム100は、予め、クラウド200からクラウドアプリを取得していずれかのデバイス10に保持させている。そして、クラウド200において障害が発生したとき、或いは、クラウド200との間の通信に障害が発生したときには、各デバイス10は、マルチデバイスシステム100内に保持されているクラウドアプリを利用して動作を継続する。
【0019】
ただし、各デバイス10のリソース(特に、メモリ容量またはストレージ容量)が小さい場合は、クラウドアプリを1個のデバイス10の保持させることが出来ない、または、好ましくないことがある。したがって、クラウドアプリは、必要に応じて、複数に分割されて複数の異なるデバイス10に分配される。
図1に示す実施例では、クラウドアプリAPP_1がクラウドアプリ部品APP_1xおよびクラウドアプリ部品APP_1yに分割され、それぞれデバイス10bおよびデバイス10cにより保持されている。
【0020】
デバイス10がマルチデバイスシステム100内に保持されているクラウドアプリを利用するときは、管理ツール12は、その利用時間またはアクセス数をカウントする。そして、障害が復旧した後、管理ツール12は、マルチデバイスシステム100内でのクラウドアプリの利用時間またはアクセス数をクラウド200に通知する。これにより、クラウドサービスの提供者は、サービス利用料を受け取ることができる。
【0021】
図2は、管理デバイス10aにおいて管理ツール12が保持する管理データの一例を示す。この実施例では、管理ツール12は、デバイス管理データ、クラウドアプリ管理データ、およびサービス利用データを保持する。
【0022】
図2(a)は、デバイス管理データの一例を示す。デバイス管理データは、マルチデバイスシステム100を構成する各デバイス10のリソース等に係わる情報を表す。稼働情報は、当該デバイスが稼働中か否かを表す。メモリ容量およびストレージ容量は、それぞれ、当該デバイスが備えるメモリおよびストレージの容量を表す。空きメモリおよび空きストレージは、それぞれ、当該デバイスが備えるメモリおよびストレージの空き容量を表す。接続先情報は、当該デバイスがクラウドアプリを利用する際の接続先を表す。たとえば、クラウド200にアクセスしてサービスの提供を受けるときは、接続先情報は、クラウド200またはアプリケーションサーバ210を表す。また、マルチデバイスシステム100内に保持されているクラウドアプリを利用するときは、接続先情報は、そのクラウドアプリを保持しているデバイス10を表す。
【0023】
図2(b)は、クラウドアプリ管理データの一例を示す。ここで、クラウドアプリ管理データは、マルチデバイスシステム100内に保持されているクラウドアプリを管理するための情報を表す。また、クラウドアプリが複数のクラウドアプリ部品に分割されて異なるデバイス10により保持されているときは、クラウドアプリ部品ごとに管理される。
【0024】
異常フラグは、当該クラウドアプリについて異常の有無を表す。必要メモリおよび必要ストレージは、それぞれ、当該クラウドアプリを実行および格納するために必要なメモリサイズおよびストレージサイズを表す。保持デバイスは、当該クラウドアプリを保持しているデバイス10を表す。移動先デバイスは、当該クラウドアプリを動作させることが好ましいデバイスを表す。例えば、クラウドアプリは、空きメモリ/空きストレージが大きいデバイス10で実行されることが好ましい。ただし、マルチデバイスシステム100がクラウド200のサービスを受けているときは、移動先デバイスは指定されていない。データIDは、当該クラウドアプリが参照しているデータ、または、当該クラウドアプリにより生成された処理結果データを識別する。開始日時および終了日時は、マルチデバイスシステム100において当該クラウドアプリの実行を開始した日時および終了した日時を表す。
【0025】
図2(c)は、サービス利用データの一例を示す。サービス利用データは、マルチデバイスシステム100内でクラウドアプリが提供するサービスの利用に係わる情報を表す。サービスIDは、クラウドアプリを実行することで提供されるサービスを識別する。この実施例では、1つのクラウドアプリが1つのサービスIDに対応するものとする。また、クラウドアプリが複数のクラウドアプリ部品に分割されて複数のデバイス10に分配されているときも、サービスIDは、1つのクラウドアプリに対応するサービスを識別する。
【0026】
状態は、当該サービス(または、当該クラウドアプリ)がマルチデバイスシステム100内で使用中か否かを表す。稼働時間は、当該サービス(または、当該クラウドアプリ)がマルチデバイスシステム100内で使用された時間を表す。アクセス数は、当該サービス(または、当該クラウドアプリ)がマルチデバイスシステム100内でアクセスされた回数を表す。最終通知日時は、管理ツール12が最後にマルチデバイスシステム100の状態を管理サーバ220に通知した日時を表す。
【0027】
尚、管理ツール12は、定期的に、デバイス管理データ、クラウドアプリ管理データ、およびサービス利用データを更新する。或いは、管理ツール12は、所定のイベントが発生するごとに、デバイス管理データ、クラウドアプリ管理データ、およびサービス利用データを更新してもよい。
【0028】
図3は、クラウド200の管理サーバ220が保持する管理データの一例を示す。この実施例では、管理サーバ220は、サービス利用データおよびアプリケーションデータ管理情報を保持する。
【0029】
図3(a)は、クラウド200において保持されるサービス利用データの一例を示す。サービスIDは、上述したように、クラウドアプリを実行することで提供されるサービスを識別する。環境は、当該サービスに対応するクラウドアプリがクラウド200上で実行されているマルチデバイスシステム100において実行されているかを表す。稼働時間およびアクセス数は、
図2(c)を参照した説明した通りである。ただし、マルチデバイスシステム100内での利用状況は、管理デバイス10aから通知される。更新日時は、サービス利用データが更新された日時を表す。
【0030】
図3(b)は、アプリケーションデータ管理情報の一例を示す。アプリケーションデータ管理情報は、当該サービスに対応するクラウドアプリが参照しているデータ、または、そのクラウドアプリにより生成されたデータを識別する。開始日時および終了日時は、それぞれ、当該サービス(または、当該クラウドアプリ)の使用が開始された日時および終了した日時を表す。
【0031】
図4は、マルチデバイスシステム100の処理の一例を示すフローチャートである。このフローチャートの処理は、例えば、定期的に実行される。また、このフローチャートの処理の開始時に、管理ツール12が正常に動作しているか判定される。そして、管理ツール12が正常に動作していないときには、マルチデバイスシステム100の管理者にその旨が通知される。なお、このフローチャートの処理の開始時に、マルチデバイスシステム100は、クラウド200が提供するサービスを利用して動作しているものとする。
【0032】
S1において、管理ツール12は、クラウド200の設定およびクラウド200が提供するサービスなどを表すクラウド情報を取得する。S2において、管理ツール12は、マルチデバイスシステム100内の各デバイス10の状態を表すデバイス情報を収集する。S3~S4において、管理ツール12は、クラウド200の状態を検知する。そして、クラウド200が正常に動作していれば、マルチデバイスシステム100の処理はS1に戻る。すなわち、クラウド200が正常に動作している期間は、S1~S3の処理が繰り返し実行される。他方、クラウド200の異常が検知されると、マルチデバイスシステム100の処理はS5に進む。
【0033】
S5において、管理ツール12は、ローカル環境(すなわち、マルチデバイスシステム100)におけるクラウドアプリの配置を確認する。S6において、管理ツール12は、ローカル環境においてクラウドアプリを実行すべきデバイスを選択する。S7において、管理ツール12は、必要に応じて、クラウドアプリを再配置するための指示を対応するデバイス10に送信する。これにより、クラウドアプリの再配置が実施される。S8において、管理ツール12は、各デバイス10に実装されている常駐アプリ11の接続先を各デバイス10に通知する。S9において、各デバイス10は、管理ツール12から通知された接続先に基づいて、自デバイス内の設定を変更する。S10において、管理ツール12は、ローカル環境でのサービスの利用状況を表す利用情報を収集する。S11~S12において、管理ツール12は、クラウド200の状態を検知する。そして、クラウド200の異常が継続しているときは、マルチデバイスシステム100の処理はS5に戻る。すなわち、異常状態が継続している期間は、S5~S11の処理が繰り返し実行される。これに対して、クラウド200が正常な状態に復旧していれば、マルチデバイスシステム100の処理はS13に進む。
【0034】
S13において、マルチデバイスシステム100は、クラウド200への接続を再開する。S14において、管理ツール12は、ローカル環境内でのクラウドアプリの利用状況を管理サーバ220に通知する。また、管理ツール12は、ローカル環境でクラウドアプリを実行することで得られた処理結果データをクラウド200に送信する。
【0035】
このように、マルチデバイスシステム100は、クラウド200において異常が発生すると、ローカル環境で保持しているクラウドアプリを実行して動作を継続する。したがって、マルチデバイスシステム100は、クラウド200のサービスを受けることができない期間であっても、クラウド200が正常であるときと同等に動作を継続できる。また、マルチクラウド化することなく、単一クラウドで障害対策が実施されるので、サービスレベルが安定する。加えて、クラウド200が正常な状態に復旧したときに、ローカル環境内でのクラウドアプリの利用状況が管理サーバ220に通知される。したがって、クラウド事業者は、クラウドアプリの利用料に係わる損失を抑えることができる。
【0036】
図5は、クラウド情報を取得する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS1に相当する。
【0037】
クラウド200は、必要に応じて、アプリケーションサーバ210または管理サーバ220への接続の設定を変更する。また、クラウド200は、必要に応じて、提供するサービスを変更する。
【0038】
S21において、管理ツール12は、クラウド200の設定等に変更があるか否かを管理サーバ220に問い合わせる。そして、変更がある場合には、管理ツール12は、S22において、クラウド200の設定等の変更を表すクラウド情報を管理サーバ220から取得する。
【0039】
図6は、デバイス情報を収集する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS2に相当する。
【0040】
S31において、各デバイス10のエージェントツール13は、自デバイスのデバイス情報を取得する。デバイス情報は、空きメモリ量および空きストレージ量などを表すメトリクス情報を含む。また、デバイス情報は、自デバイスが保持しているクラウドアプリを識別する情報を含む。S32において、各デバイス10のエージェントツール13は、取得したデバイス情報を管理ツール12に送信する。S33において、管理ツール12は、各エージェントツール13から送信されるデバイス情報に基づいて、
図2(a)に示すデバイス管理データを更新する。このように、管理ツール12は、各エージェントツール13から送信されるデバイス情報に基づいて、マルチデバイスシステム100を構成する各デバイス10の状態を管理する。
【0041】
図7は、クラウド200の状態を検知する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS3に相当する。
【0042】
S41~S42において、管理ツール12は、クラウド200との接続を確認する。例えば、管理ツール12は、管理サーバ220にテストメッセージを送信し、その応答を受信できるか否かに基づいてクラウド200との接続を確認してもよい。そして、クラウド200との接続に異常が発生しているときには、管理ツール12は、S43において、接続異常フラグを「1」に設定する。なお、クラウド200との接続が正常であれれば、S43の処理はスキップされる。
【0043】
S44~S45において、管理ツール12は、クラウド200上で動作するクラウドアプリの状態を確認する。例えば、管理ツール12は、アプリケーションサーバ210にテストリクエストを送信し、その応答結果に基づいてクラウド200上で動作するクラウドアプリの状態を確認してもよい。そして、クラウド200上で動作するクラウドアプリに異常が発生しているときには、管理ツール12は、S46において、サービス異常フラグを「1」に設定する。なお、クラウド200上でクラウドアプリが正常に動作しているときは、S46の処理はスキップされる。
【0044】
このように、クラウド200との接続に異常が発生しているときは、接続異常フラグが「1」に設定される。また、クラウド200に異常が発生しているときは、サービス異常フラグが「1」に設定される。そして、接続異常フラグおよび/またはサービス異常フラグが「1」であるときは、マルチデバイスシステム100の処理は
図4に示すS5に移動する。
【0045】
図8は、ローカル環境のクラウドアプリを確認する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS5に相当する。
【0046】
S51~S52において、管理ツール12は、クラウドアプリがどのデバイス10により保持されているのかを確認する。このとき、管理ツール12は、例えば、各デバイス10のエージェントツール13に、当該デバイスが保持しているクラウドアプリ(または、クラウドアプリ部品)を問い合わせる。この場合、各エージェントツール13は、問合せに応じて、当該デバイスが保持しているクラウドアプリ(または、クラウドアプリ部品)を表す情報を管理ツール12に通知する。そして、管理ツール12は、S53において、各エージェントツール13からの通知に応じて、
図2(b)に示すクラウドアプリ管理データの「保持デバイス」を更新する。なお、必要なクラウドアプリがマルチデバイスシステム100内に保持されていないときには、管理ツール12は、S54において、マルチデバイスシステム100の管理者にその旨を通知する。
【0047】
図9は、クラウドアプリを実行するデバイスを選択する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS6に相当する。
【0048】
S61において、管理ツール12は、マルチデバイスシステム100内のクラウドアプリの配置が適切か否かを判定する。例えば、クラウドアプリを保持しているデバイス10の空きメモリ量および空きストレージ量がそれぞれ所定の閾値より大きいときは、そのデバイス10がクラウドアプリを適切に実行できるので、現在のクラウドアプリの配置が適切と判定される。各デバイス10の空きメモリ量および空きストレージ量は、
図2(a)に示すデバイス管理データに記録されている。
【0049】
クラウドアプリの配置が適切でないときは、管理ツール12は、S62~S63において、クラウドアプリを実行すべきデバイスとして、空きメモリ量/空きストレージ量が最も大きいデバイス10を選択する。なお、管理ツール12が各デバイス10のCPUの負荷等も管理しているときは、管理ツール12は、空きメモリ量/空きストレージ量に加えてCPUの負荷等も考慮して、クラウドアプリを実行すべきデバイスを選択してもよい。すなわち、管理ツール12は、各デバイス10のリソースの余裕度に応じてクラウドアプリを実行すべきデバイスを選択する。
【0050】
クラウドアプリを実行すべきデバイスを選択したときは、管理ツール12は、S64において、
図2(b)に示すクラウドアプリ管理データの「移動先デバイス」を更新する。クラウドアプリを実行すべきデバイスを選択できなかったときは、管理ツール12は、S65において、マルチデバイスシステム100の管理者にその旨を通知する。
【0051】
なお、
図9に示す実施例では、S61において、現在のマルチデバイスシステム100内のクラウドアプリの配置が適切か否かを判定するが、本発明の実施形態はこの手順に限定されるものではない。即ち、管理ツール12は、S61の処理を実行することなく、S62において最適なデバイス10を選択してもよい。
【0052】
図10は、マルチデバイスシステム100においてクラウドアプリを再配置する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS7に相当する。
【0053】
S71において、管理ツール12は、
図9に示すフローチャートのS62による選択に従って、クラウドアプリの移動に係わる指示を対応するデバイス10に送信する。具体的には、管理ツール12は、
図2(b)に示すクラウドアプリ管理データに記録されている「保持デバイス」から「移動先デバイス」に対応するクラウドアプリ(又は、クラウドアプリ部品)を移動させるための移動指示を作成する。そして、この移動指示は、「保持デバイス」および「移動先デバイス」に与えられる。
【0054】
管理ツール12から移動指示を受け取ったデバイス10は、S72において、指定されたクラウドアプリを送信または受信する。すなわち、「保持デバイス」は、指定されたクラウドアプリを「移動先デバイス」に送信する。また、「移動先デバイス」は、「保持デバイス」から受信するクラウドアプリを自デバイスのストレージに保存する。
【0055】
このように、マルチデバイスシステム100においては、クラウド200のサービスを受けることができなくなったときに、各デバイス10の空きリソース量に基づいて、ローカル環境でクラウドアプリを実行すべき最適なデバイスが選択される。ここで、各デバイス10の空きリソース量は、常時、変化している。したがって、この手順を導入することにより、クラウドアプリによるサービスが適切に提供され、また、過剰な負荷によってデバイス10のパフォーマンスが低下することも回避できる。
【0056】
なお、
図9に示すフローチャートのS61において、マルチデバイスシステム100内の現在のクラウドアプリの配置が適切であると判定されたときは、
図10に示す処理(即ち、
図4に示すフローチャートのS7に示す再配置処理)を実行する必要はない。この場合、クラウドアプリは、他のデバイスに移動されることなく、同じデバイス内に保持される。ただし、この明細書では、「再配置」は、同じデバイス10内に保持させることを含むものとする。
【0057】
図11は、常駐アプリ11の接続先を各デバイス10に通知する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS8に相当する。
【0058】
S81において、管理ツール12は、クラウドアプリを使用するデバイス10を特定する。なお、管理ツール12は、各デバイス10の常駐アプリ11がそれぞれどのクラウドアプリを使用するかを管理しているものとする。そして、管理ツール12は、クラウドアプリを使用する各デバイス10に対して、常駐アプリ11の接続先として、その常駐アプリ11が使用するクラウドアプリを保持しているデバイスを識別する情報を通知する。このとき、再配置後のクラウドアプリを保持しているデバイスを識別する情報が対応するデバイスに通知される。
【0059】
図12は、常駐アプリ11の接続先をクラウドからローカルに変更する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS9に相当する。
【0060】
S91において、各デバイス10のエージェントツール13は、管理ツール12からの通知に従って、自デバイスの常駐アプリ11の接続先をクラウド200からマルチデバイスシステム100内の対応するクラウドアプリに変更する。S92において、各デバイス10は、新たな接続先との通信を開始する。このとき、各デバイス10のエージェントツール13は、マルチデバイスシステム100内でのクラウドアプリの利用状況のモニタを開始する。S93において、管理ツール12は、各デバイス10のエージェントツール13からの通知に応じて、新たな接続先との通信が正常であるか判定する。この結果、新たな接続先との通信が正常でなかったときには、管理ツール12は、S94において、マルチデバイスシステム100の管理者にその旨を通知する。
【0061】
図13は、ローカル環境でのサービスの利用状況を表す利用情報を収集する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS10に相当する。
【0062】
S101において、各デバイス10のエージェントツール13は、自デバイスによるサービスの利用状況をモニタする。このとき、エージェントツール13は、マルチデバイスシステム100内に保持されているクラウドアプリの利用時間および/またはアクセス数をカウントする。そして、エージェントツール13は、モニタ結果を管理ツール12に通知する。S102において、管理ツール12は、各エージェントツール13からの通知に基づいて、
図2(c)に示すサービス利用データを更新する。すなわち、管理ツール12は、各サービス(すなわち、各クラウドアプリ)の稼働時間および/またはアクセス数を管理する。
【0063】
図14は、ローカル環境でクラウドアプリが動作しているときにクラウド200の状態を検知する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS11に相当する。
【0064】
S111~S116の処理は、
図7に示すS41~S46とほぼ同じである。ただし、クラウド200との通信が正常な状態に復旧したときは、管理ツール12は、S113において、接続異常フラグを「0」に戻す。また、クラウド200が正常な状態に復旧したときは、管理ツール12は、S116において、サービス異常フラグを「0」に戻す。そして、接続異常フラグおよびサービス異常フラグの双方が「0」であれば、管理ツール12は、各デバイス10に対して接続先の変更を指示する。そして、マルチデバイスシステム100の処理は、
図4に示すフローチャートのS13に移動する。
【0065】
図15は、常駐アプリ11の接続先をローカルからクラウドに変更する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS13に相当する。
【0066】
S121において、各デバイス10のエージェントツール13は、管理ツール12からの指示に従って、自デバイスの常駐アプリ11の接続先をマルチデバイスシステム100内のクラウドアプリからクラウド200に変更する。そして、S122において、エージェントツール13は、管理ツール12からの指示に従って、自デバイスが保持するクラウドアプリを停止する。S123において、エージェントツール13は、クラウドアプリによる処理結果データを取得して管理ツール12に送信する。以降、クラウド200が提供するサービスを利用するときには、デバイス10は、クラウド200にアクセスする。
【0067】
図16は、サービスの利用状況を管理サーバ220に通知する処理の一例を示すフローチャートである。このフローチャートの処理は、
図4に示すS14に相当する。
【0068】
S131において、管理ツール12は、
図2(c)に示すサービス利用データを参照することにより、ローカル環境でのサービスの利用状況を検出する。なお、サービス利用データは、ローカル環境上でサービスが提供されている期間に
図4に示すフローチャートのS5~S11が繰り返し実行されることで更新されている。そして、管理ツール12は、ローカル環境でのサービスの利用状況を管理サーバ220に通知する。これにより、管理サーバ220は、マルチデバイスシステム100がローカル環境でクラウド200のサービスを利用した量を把握できる。したがって、管理サーバ220は、マルチデバイスシステム100に対してサービス料を適切に請求できる。
【0069】
S132において、管理ツール12は、ローカル環境でクラウドアプリを実行することにより得られた処理結果データをクラウド200に送信する。これにより、クラウド200は、ローカル環境での演算結果を引き継いで処理を継続できる。
【0070】
図17は、マルチデバイスシステム100の処理の一例を示すシーケンス図である。なお、
図17に示すS1~S14は、
図4に示すフローチャートで使用される同じ番号のステップに対応する。
【0071】
管理デバイス10a(即ち、管理ツール12)は、クラウド200の管理サーバ220と通信し、定期的にクラウド情報を取得する。また、管理デバイス10aは、各デバイス10のエージェントツール13と通信し、定期的にデバイス情報を取得する。そして、クラウド200の異常またはクラウド200との間の通信の異常を検知すると、マルチデバイスシステム100は、ローカル環境でクラウドアプリを実行するローカル動作モードに移行する。
【0072】
管理デバイス10aは、ローカル環境のクラウドアプリの配置を確認する。また、管理デバイス10aは、
図2(a)に示すデバイス管理データを参照し、各デバイス10のリソースの状態を確認する。そして、管理デバイス10aは、ローカル環境でクラウドアプリを実行するデバイス10を選択する。このとき、例えば、空きリソース(空きメモリ、空きストレージ、CPUの演算余力など)が最も大きいデバイス10が選択される。
【0073】
各デバイス10は、管理デバイス10aによる選択に応じて、クラウドアプリを再配置する。また、各デバイス10は、管理デバイス10aからの通知に従って、自デバイスの常駐アプリ11の接続先を変更する。そして、各デバイス10は、ローカル環境のクラウドアプリを利用しながら動作する。この後、管理デバイス10aは、ローカル環境内でのサービスの利用状況をモニタする。このとき、管理デバイス10aは、マルチデバイスシステム100内に実装されているクラウドアプリの稼働時間またはアクセス数をモニタする。
【0074】
ローカル環境でクラウドアプリが実行されている期間、管理デバイス10aは、定期的に、クラウド200の状態をモニタする。そして、クラウド200が正常な状態に復旧すると、管理デバイス10aは、クラウド200への接続の再開を各デバイス10に指示する。これにより、各デバイス10は、自デバイスの常駐アプリ11の接続先をクラウド200に変更する。また、各デバイス10は、自デバイス内に実装されているクラウドアプリを停止する。さらに、管理デバイス10aは、ローカル環境でクラウドアプリが動作していた期間におけるサービスの利用状況を、クラウド200の管理サーバ220に通知する。よって、管理サーバ220は、ローカル環境でサービスが利用された時間または回数を把握できる。以降、各デバイス10は、クラウド200が提供するサービスを利用して動作する。
【0075】
図18~
図21は、マルチデバイスシステム100の動作の実施例を示す。この実施例では、
図18に示すように、各デバイス10の常駐アプリは、クラウドアプリAPP_1に処理を依頼してサービスを受ける。クラウドアプリAPP_1は、クラウドアプリAPP_2に処理を依頼してサービスを受ける。クラウドアプリAPP_1は、クラウドアプリ部品APP_1xおよびAPP_1yに分割されてそれぞれデバイス10bおよびデバイス10cに実装されている。ただし、クラウド200が正常に動作しているときは、マルチデバイスシステム100内でクラウドアプリ部品APP_1xおよびAPP_1yは実行されない。
【0076】
管理デバイス10aは、上述したように、クラウド200およびクラウド200との通信が正常であるかを常時モニタしている。そして、管理デバイス10aが異常を検知すると、マルチデバイスシステム100は、ローカル環境でクラウドアプリを実行するローカル動作モードに移行する。
【0077】
この実施例では、
図19に示すように、クラウド200においてクラウドアプリAPP_1に異常が発生する。なお、クラウドアプリAPP_2は正常であり、また、マルチデバイスシステム100とクラウド200との間の通信も正常であるものとする。
【0078】
この場合、管理デバイス10aは、
図7に示すフローチャートのS46において、クラウドアプリAPP_1に対応するサービス異常フラグを「1」に設定する。続いて、管理デバイス10aは、
図9に示すフローチャートのS61~S62において、クラウドアプリ部品APP_1xおよびAPP_1yを実行すべきデバイス10を選択する。この実施例では、デバイス10bは、クラウドアプリ部品APP_1x実行するために十分な空きリソースを有しているが、デバイス10cは、クラウドアプリ部品APP_1y実行するために十分な空きリソースを有していないものとする。また、デバイス10dは、十分な空きリソースを有しているものとする。そうすると、クラウドアプリ部品APP_1xおよびAPP_1yを実行すべきデバイスとして、それぞれ、デバイス10bおよびデバイス10dが選択される。
【0079】
管理デバイス10aは、上述の選択に応じて、デバイス10cに対して、クラウドアプリ部品APP_1yをデバイス10dに送信する旨を指示する。そうすると、デバイス10cは、管理デバイス10aからの指示に応じて、自分が保持しているクラウドアプリ部品APP_1yをデバイス10dに送信する。そして、デバイス10dは、受信したクラウドアプリ部品APP_1yを自分のストレージに実装する。この後、管理デバイス10aは、各デバイス10に対して、常駐アプリの接続先を指示する。
【0080】
各デバイス10の常駐アプリは、管理デバイス10aから通知された接続先に従ってクラウドアプリにアクセスする。この実施例では、各デバイス10の常駐アプリは、
図20に示すように、デバイス10bに実装されているクラウドアプリ部品APP_1xに処理を依頼してサービスを受ける。クラウドアプリ部品APP_1xは、デバイス10dに実装されているクラウドアプリ部品APP_1yに処理を依頼してサービスを受ける。クラウドアプリ部品APP_1yは、クラウド200に実装されているクラウドアプリAPP2に処理を依頼してサービスを受ける。
【0081】
各デバイス10のエージェントツールは、ローカル環境でのサービスの利用状況をモニタする。例えば、デバイス10bのエージェントツールは、クラウドアプリ部品APP_1xへのアクセスをモニタし、デバイス10dのエージェントツールは、クラウドアプリ部品APP_1yへのアクセスをモニタする。そして、これらのモニタ結果は管理デバイス10aにより集計される。これにより、マルチデバイスシステム100は、クラウド200が正常であるとき(すなわち、
図18に示す状態)と同様の動作を継続することができる。
【0082】
クラウド200が正常な状態に復旧すると、管理デバイス10aは、各デバイス10の常駐アプリの接続先をクラウド200に変更する。また、デバイス10bおよびデバイス10dは、管理デバイス10aからの指示に応じて、
図21に示すように、自デバイス内に実装されているクラウドアプリ部品APP_1xおよびAPP_1yをそれぞれ停止する。さらに、管理デバイス10aは、ローカル環境でのサービスの利用状況をクラウド200に通知すると共に、ローカル環境でクラウドアプリを実行することで得られた処理結果データをクラウド200に送信する。これにより、クラウド200は、マルチデバイスシステム100がローカル環境上でクラウド200のサービスを利用した量を把握でき、また、マルチデバイスシステム100でのクラウドアプリによる処理結果データを引き継ぐことができる。この後、各デバイス10の常駐アプリは、クラウド200にアクセスする。
【符号の説明】
【0083】
10(10b~10d) デバイス
10a 管理デバイス
11 常駐アプリ
12 管理ツール
13 エージェントツール
100 マルチデバイスシステム
200 クラウド
210 アプリケーションサーバ
220 管理サーバ
300 ネットワーク