(57)【要約】【課題】  クラウドおよびエッジの連携により提供されるサービスが運用上の環境変化の変化に脆弱であったこと。【解決手段】  実施形態に係わるクラウドシステムは、ネットワークを介して相互に通信可能なクラウドサーバ、エッジサーバおよびユーザ装置を具備する。このクラウドシステムにおいて、クラウドサーバ、エッジサーバおよびユーザ装置は、それぞれ自機で稼動するサービスの下層で機能するミドルウェアを具備する。このミドルウェアは、監視機能と、切替機能と、再分配機能とを具備する。監視機能は、ネットワークの状況と、クラウドサーバ、エッジサーバおよびユーザ装置のそれぞれの動作状況とを監視する。切替機能は、ネットワークのトポロジを含むシステム構成を、監視の結果に基づいて動的に切り替える。再分配機能は、システム構成の切り替えに伴って、サービスの稼動先を再分配する。【選択図】  図３
2019135578.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して相互に通信可能なクラウドサーバ、エッジサーバおよびユーザ装置を具備するクラウドシステムであって、
前記クラウドサーバ、前記エッジサーバおよび前記ユーザ装置は、それぞれ自機で稼動するサービスの下層で機能するミドルウェアを具備し、
前記ミドルウェアは、
前記ネットワークの状況と、前記クラウドサーバ、前記エッジサーバおよび前記ユーザ装置のそれぞれの動作状況とを監視する監視機能と、
前記ネットワークのトポロジを含むシステム構成を、前記監視の結果に基づいて動的に切り替える切替機能と、
前記システム構成の切り替えに伴って、前記サービスの稼動先を再分配する再分配機能とを具備する、クラウドシステム。
【請求項２】
前記ミドルウェアは、前記サービスごとの稼動先を、前記クラウドサーバ、前記エッジサーバおよび前記ユーザ装置のうちから優先度を付けて管理する管理機能をさらに備え、
前記再分配機能は、前記優先度に従って前記サービスの稼動先を再分配する、請求項１に記載のクラウドシステム。
【請求項３】
請求項１または２のいずれかに記載のクラウドシステムで用いられる前記クラウドサーバであって、前記ミドルウェア上で機能するサービスを具備する、クラウドサーバ。
【請求項４】
請求項１または２のいずれかに記載のクラウドシステムで用いられる前記エッジサーバであって、前記ミドルウェア上で機能するサービスを具備する、エッジサーバ。
【請求項５】
請求項１または２のいずれかに記載のクラウドシステムで用いられる前記ユーザ装置であって、前記ミドルウェア上で機能するサービスを具備する、ユーザ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、クラウドサーバとエッジサーバとを連携させてサービスを提供する技術に関する。
【背景技術】
【０００２】
クラウドコンピューティングが注目されている。クラウドコンピューティングとは、ストレージやアプリケーション等のサービスをサーバ群（クラウド）を用いて提供する技術の総称である。サービスのユーザ（端末装置など）は、インターネットに代表される通信ネットワークを経由して、サービスの提供を受ける。大別してＳａａＳ（Software as a Service）、ＰａａＳ（Platform as a Service）、ＩａａＳ（Infrastructure as a Service）といった形態のシステムが知られている。ＳａａＳは、アプリケーション（ソフトウェア）をサービスとして提供する形態のシステムである。ＰａａＳは、アプリケーションを稼動させるための基盤（プラットフォーム）をサービスとして提供する形態のシステムである。ＩａａＳは、サーバ装置、中央演算処理装置およびストレージなどのリソースをサービス（パブリッククラウド）として提供する形態のシステムである。
【０００３】
また、ＩｏＴ（Internet of Things）技術が広まるにつれてエッジコンピューティングが注目されている。エッジコンピューティングとは、クラウドと比べて小規模のサーバ（エッジ）を分散配置し、近隣で発生するデータをエッジごとに分散処理したうえで、クラウドコンピューティングと連携するシステムの総称である。ユーザは加入者網などのネットワーク経由で近隣のエッジサーバにアクセスし、クラウドと比べて速いレスポンスでサービスを利用することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−８２４６５号公報
【特許文献２】特開２０１５−５６８３１号公報
【特許文献３】特開２０１４−３５３５号公報
【特許文献４】特開２００６−３２３７６７号公報
【特許文献５】特開２００６−５００８６号公報
【特許文献６】特表２０１５−５０５４０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
クラウドコンピューティング、およびエッジコンピューティングのいずれも、頑健な情報通信基盤を前提として運用される。このため、帯域が狭かったり、不安定な通信環境においては、ユーザの求めるサービスを十分に提供することが難しい。例えば、システム内のサーバが一つ故障しても、ユーザは期待するサービスを受けられなくなったりする。さらに、この種のシステムにより提供されるサービスは、設置場所やネットワーク環境等によらず固定的であった。このことも環境の変化に対する脆弱性をもたらす要因となっていた。
【０００６】
そこで、目的は、運用上の環境変化に対して頑健なクラウドシステム、クラウドサーバ、エッジサーバおよびユーザ装置を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態に係わるクラウドシステムは、ネットワークを介して相互に通信可能なクラウドサーバ、エッジサーバおよびユーザ装置を具備する。このクラウドシステムにおいて、クラウドサーバ、エッジサーバおよびユーザ装置は、それぞれ自機で稼動するサービスの下層で機能するミドルウェアを具備する。このミドルウェアは、監視機能と、切替機能と、再分配機能とを具備する。監視機能は、ネットワークの状況と、クラウドサーバ、エッジサーバおよびユーザ装置のそれぞれの動作状況とを監視する。切替機能は、ネットワークのトポロジを含むシステム構成を、監視の結果に基づいて動的に切り替える。再分配機能は、システム構成の切り替えに伴って、サービスの稼動先を再分配する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係わるクラウドシステムの一例を示す図である。
【図２】図２は、図１に示されるシステムにおけるサービス形態の一例を示す図である。
【図３】図３は、ミドルウェアＭＷに備わる機能の一例を示すブロック図である。
【図４】図４は、実施形態に係わるシステム形態の一例を示す図である。
【図５】図５は、実施形態に係わるシステム形態の他の例を示す図である。
【図６】図６は、実施形態に係わるシステム形態の他の例を示す図である。
【図７】図７は、実施形態に係わるシステム形態の他の例を示す図である。
【図８】図８は、ユーザ装置１０の移動に伴ってサービス形態が遷移することの一例を示す図である。
【図９】図９は、実施形態に係わるミドルウェアＭＷの処理手順の一例を示すフローチャートである。
【図１０】図１０は、サービス毎の稼動機器の優先度管理の一例を示す図である。
【図１１】図１１は、各サービスの稼動先の再分配に係わる処理手順の一例を示すフローチャートである。
【図１２】図１２は、エッジ２０１，２０２のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
図１は、実施形態に係わるクラウドシステムの一例を示す図である。図１において、ユーザの所持するユーザ装置１０は、それぞれエッジ２０１、２０２のいずれかに通信ネットワーク２０を介して接続される。この通信回線は、公共のインフラネットワーク、あるいはユーザが独自に構築したネットワークのいずれであっても良いし、無線回線、または有線回線のいずれであってもよい。
【００１０】
エッジ２０１、２０２は、例えば可搬型のサーバコンピュータであり、公共ネットワーク、または独自のネットワークである通信ネットワーク３０を介してクラウド１００に接続される。クラウド１００の実体は、例えばクラウドサーバ、あるいは複数のサーバを接続したサーバ群として理解されることができる。
【００１１】
図２は、図１に示されるシステムにおけるサービス形態の一例を示す図である。実施形態においてユーザ装置１０は、予めミドルウェアＭＷを組み込まれる。ユーザ装置１０から利用可能な各種のサービス（アプリケーション）ａは、いずれも、ミドルウェアＭＷ上で動作する。
【００１２】
同様に、エッジ２０１，２０２、およびクラウド１００にも、予めミドルウェアＭＷを組み込まれる。エッジ２０１，２０２それぞれの機能を実現するサービスｂは、ミドルウェアＭＷ上で動作する。また、クラウド１００の機能を実現するサービスｃも、ミドルウェアＭＷ上で動作する。つまり、クラウド１００、エッジ２０１，２０２、およびユーザ装置１０は、それぞれ自機で稼動するサービスの下層で機能するミドルウェアＭＷを具備する。
【００１３】
ミドルウェアＭＷは、ユーザ装置１０、エッジ２０１，２０２、及びクラウド１００を相互に連携し、ネットワーク環境状況、および機器動作状況に基づいて、システム形態を動的に切り替える。
【００１４】
図３は、ミドルウェアＭＷに備わる機能の一例を示すブロック図である。ミドルウェアＭＷは、監視機能ｆ１、切替機能ｆ２、再分配機能ｆ３、および、管理機能ｆ４を備える。監視機能ｆ１、切替機能ｆ２、再分配機能ｆ３、および、管理機能ｆ４は、コンピュータ、またはコンピュータシステムとしてのクラウド１００、エッジ２０１，２０２、およびユーザ装置１０において、ハードウェアとしてのＣＰＵ（Central Processing Unit）およびメモリと、ソフトウェアとしてのプログラムとが協調して動作することにより実現される処理機能である。
【００１５】
つまり監視機能ｆ１、切替機能ｆ２、再分配機能ｆ３、および、管理機能ｆ４は、それぞれプログラムとして各デバイス（クラウド１００、エッジ２０１，２０２、およびユーザ装置１０）に実装されることが可能である。監視機能ｆ１、切替機能ｆ２、再分配機能ｆ３、および、管理機能ｆ４は、実装されたデバイスにおいて単独で動作しても良いし、クラウド１００、エッジ２０１，２０２、およびユーザ装置１０に実装されたミドルウェアＭＷが相互に通信し合って協調動作しても良い。
【００１６】
監視機能ｆ１は、通信ネットワーク２０，３０の状況と、クラウド１００、エッジ２０１，２０２、およびユーザ装置１０のそれぞれの動作状況とを監視する。  
切替機能ｆ２は、通信ネットワーク２０，３０のトポロジ等のシステム構成を、監視機能ｆ１による監視の結果に基づいて動的に切り替える。
【００１７】
再分配機能ｆ３は、切替機能ｆ２によるシステム構成の切り替えに伴って、サービスの稼動先を再分配する。つまり再分配機能ｆ３は、サービスａ，ｂ，ｃの稼動先となるデバイス（クラウド１００、エッジ２０１，２０２、およびユーザ装置１０）を、システム構成の切り替えに伴って更新する。
【００１８】
管理機能ｆ４は、サービスａ，ｂ，ｃごとに、その稼動先のデバイスを、クラウド１００、エッジ２０１，２０２、およびユーザ装置１０のうちから優先度を付けて管理する。再分配機能ｆ３は、管理機能ｆ４により管理される優先度に従ってサービスａ，ｂ，ｃの稼動先を再分配する。
【００１９】
図４は、実施形態に係わるシステム形態の一例を示す図である。図４は、図１に示されるシステムにおいて、クラウド１００へのアクセス障害が発生した際に適用可能なシステム形態の一例を示す。例えば、クラウド１００がダウンした場合、または、通信ネットワーク３０の圏外に出たり、圏内であっても通信障害が発生したりした場合に、ミドルウェアＭＷは、エッジ２０１とその配下のユーザ装置１０とを、通信ネットワーク２０で接続した形態でシステムを再構築する。このサービス形態を、＜エッジ単体形態＞と称する。
【００２０】
図５は、図１に示されるシステムでの障害発生時のシステム形態の他の例を示す図である。エッジ２０２とその配下のユーザ装置１０との間でも、図４と同様のサービス形態を構築することができる。そうするとミドルウェアＭＷは、エッジ２０１，２０２間を、公共ネットワーク、または独自のネットワークである通信ネットワーク４０を介して接続した形態でシステムを再構築する。このサービス形態を、＜エッジ間接続形態＞と称する。
【００２１】
図６に示されるように、例えば、エッジ２０１がダウンした場合に、ミドルウェアＭＷは、エッジ２０１の配下にあったユーザ装置１０の単体でサービスを継続すべくシステムを再構築する。このサービス形態を、＜デバイス単体形態＞と称する。
【００２２】
図７に示されるように、通信ネットワーク２０が健全であれば、ミドルウェアＭＷは、エッジ２０１の配下のユーザ装置１０を、通信ネットワーク２０で接続した形態でシステムを再構築する。このサービス形態を、＜デバイス間接続形態＞と称する。
【００２３】
図８は、ユーザ装置１０の移動に伴ってサービス形態が遷移することの一例を示す図である。クラウド１００、エッジ２０１、通信ネットワーク３０，２０がいずれも健全であれば、＜基本形態＞と称するサービス形態で、サービスが提供される。＜基本形態＞では、ユーザ装置１０のミドルウェアＭＷ上でサービスａが稼動し、エッジ２０１のミドルウェアＭＷ上でサービスｂが稼動し、クラウド１００のミドルウェアＭＷ上でサービスｃが稼動する。
【００２４】
この状態から、エッジ２０１が例えば通信ネットワーク３０の圏外にまで移動して、エッジ２０１とクラウド１００との通信ができなくなったとする。そうするとミドルウェアＭＷは、システム構成を＜エッジ単体形態＞に切り替え、サービスｃの稼動先を、クラウド１００からエッジ２０１に再分配する。これにより、ユーザ装置１０のサービスａを、エッジ２０１のリソースを利用して継続的に提供することが可能になる。
【００２５】
さらにこの状態から、エッジ２０１とクラウド１００との通信が復旧すると、ミドルウェアＭＷは、システム構成を＜基本形態＞に切り替え、サービスｃの稼動先を、エッジ２０１からクラウド１００に再分配する。これにより、ユーザ装置１０のサービスａを、クラウド１００およびエッジ２０１のリソースを利用する形態で、提供し直すことが可能になる。
【００２６】
図９は、実施形態に係わるミドルウェアＭＷの処理手順の一例を示すフローチャートである。ミドルウェアＭＷは、通信ネットワーク２０，３０の接続状況を常時監視する（ステップＳ１）。例えばエッジ２０１において、上位ネットワーク（通信ネットワーク３０）との接続が健全であるか否かが判断される（ステップＳ２）。ステップＳ２でＮｏであれば、ミドルウェアＭＷは、隣接ネットワーク（通信ネットワーク２０）との接続が健全であるか否かを判断する（ステップＳ６）。ステップＳ６でＮｏであれば、ミドルウェアＭＷは、単独運用の構成にシステム構成を切り替える（ステップＳ１０）。これにより＜エッジ単体形態＞、または＜デバイス単体形態＞でのサービスの提供が開始される。
【００２７】
ステップＳ２で、上位ネットワークとの接続が健全であれば（Ｙｅｓ）、ミドルウェアＭＷは機器の動作状況を監視し（ステップＳ３）、上位の機器（デバイス）が正常に動作しているか否かを判断する（ステップＳ４）。ステップＳ４でＮｏであれば、処理手順はステップＳ６に移行する。ステップＳ４でＹｅｓであれば、ミドルウェアＭＷは、上位デバイスと接続する構成にシステム構成を切り替える（ステップＳ５）。これにより＜基本形態＞、または＜エッジ間接続形態＞でのサービスの提供が開始される。
【００２８】
一方、ステップＳ６でＹｅｓであれば、ミドルウェアＭＷは、機器の動作状況を監視し（ステップＳ７）、隣接する機器が正常に動作しているか否かを判断する（ステップＳ８）。ステップＳ８でＮｏであれば、処理手順はステップＳ１０に移行する。ステップＳ８でＹｅｓであれば、ミドルウェアＭＷは、隣接デバイスと接続する構成にシステム構成を切り替える（ステップＳ９）。これにより＜エッジ間接続形態＞、または＜デバイス間接続形態＞でのサービスの提供が開始される。
【００２９】
図１０は、サービス毎の稼動機器の優先度管理の一例を示す図である。図１０に示されるように、サービスａの稼動先は、クラウド、エッジ、ユーザ装置の順に高い優先度で設定される。サービスｂの稼動先は、エッジ、ユーザ装置の順に高い優先度で設定される。サービスｃの稼動先は、ユーザ装置に設定される。このような優先度情報は、ミドルウェアＭＷを実装するコンピュータ（クラウド１００、エッジ２０１，２０２、ユーザ装置１０）のメモリに、予め記憶される。
【００３０】
＜基本形態＞においては、サービスａはクラウドにおいて稼動し、サービスｂはエッジにおいて稼動し、サービスｃはユーザ装置において稼動するという状態が実現される。これは、各サービスａ，ｂ，ｃがいずれも優先度１（最も高い）の稼動先で稼動している状態である。
【００３１】
この状態から＜エッジ単体形態＞に切り替わると、サービスａの稼動先が、優先度２であるエッジに再分配される。これによりサービスａとサービスｂが、同じエッジ（例えばエッジ２０１）で稼動する状態となる。
【００３２】
さらに、＜デバイス単体形態＞に切り替わると、サービスａの稼動先は優先度３であるユーザ装置に再分配され、サービスｂの稼動先も、ユーザ装置（優先度２）に再分配される。これにより、サービスａ、サービスｂおよびサービスｃが、同じユーザ装置１０で稼動する状態となる。
【００３３】
図１１は、各サービスの稼動先の再分配に係わる処理手順の一例を示すフローチャートである。図１１において、システム構成が変化すると（ステップＳ２１）、ミドルウェアは、その時点で稼動可能な機器（クラウド１００、エッジ２０１，２０２、ユーザ装置１０）のうち、各サービスを稼動させる優先度の最も高い機器を、図１０に示されるような優先度情報に従って特定する（ステップＳ２３）。以下に説明される処理は、サービスごとに順次、実施される（ステップＳ２２）。
【００３４】
サービスを稼動させる機器が自機であれば、つまり優先度の最も高い稼動先が自機であれば（ステップＳ２４でＹｅｓ）、ミドルウェアＭＷは、当該サービスが自機で稼動しているか否かを判定し（ステップＳ２５）、Ｎｏであれば直ちに自機で当該サービスを稼動させる（ステップＳ２６）。
【００３５】
一方、ステップＳ２４でＮｏであれば、ミドルウェアＭＷは、当該サービスが自機で稼動しているか否かを判定し（ステップＳ２８）、Ｙｅｓであれば自機で稼動中の当該サービスを直ちに停止する（ステップＳ２９）。そして、ステップＳ２５でＹｅｓ、またはステップＳ２８でＮｏであれば、処理手順はステップＳ２７に移り、全てのサービスについて処理が実行されるまで、ステップＳ２３、ステップＳ２４、ステップＳ２５、ステップＳ２６、ステップＳ２８およびステップＳ２９の処理が繰り返される。
【００３６】
図１２は、エッジ２０１，２０２のハードウェア構成の一例を示す図である。この実施形態では、エッジ２０１，２０２のミドルウェアＭＷ、及びサービスを各種のハードウェアに適用可能とし、いわば野外環境型エッジとして、耐環境の筐体に内蔵バッテリ８０、有線／無線ルータ７０、ハブ（ＨＵＢ）６０、およびボード５０を搭載する。ボード５０は、各種コネクタ１１、ストレージ１２、チップセット１３等を含む。チップセット１３とストレージ１２にミドルウェアＭＷをインストールし、エッジ２０１，２０２を一体型とすることで、コスト低減、輸送量低減、サイズ低減などのメリットを得られる。また、上記構成により電源、通信、およびサービスを一体化して、野外環境に適したエッジ装置を提供することが可能になる。
【００３７】
以上説明したようにこの実施形態では、ユーザ装置１０、エッジ２０１，２０２、クラウド１００に専用のミドルウェアＭＷを組み込み、ユーザ装置１０が利用するサービスを、このミドルウェアＭＷ上で動作させる。ミドルウェアＭＷは、通信ネットワーク２０，３０、およびユーザ装置１０、エッジ２０１，２０２、クラウド１００の動作状況を常時監視する。
【００３８】
ミドルウェアＭＷは、ネットワークの接続状況が変化したとき（例えば野外でネットワークがつながらない場所に移動したとき）、又は機器の動作状況が変化したとき（例えばクラウドやエッジの機器がダウンしたとき）に、システム構成を自動で切り替える。
【００３９】
また、ミドルウェアＭＷは、サービス毎に、稼動先とする機器（ユーザ装置１０、エッジ２０１，２０２、クラウド１００）の優先度を管理する。そして、ミドルウェアはこの優先度に基づき、通信ネットワーク、機器の動作状況に応じて、サービス毎に稼動させる機器を動的に再分配する。ミドルウェアＭＷは、機器毎に割り当てられたサービスを稼動し、ユーザからのサービス使用要求に応じて、稼動している機器に要求し、処理結果をユーザに提供する。
【００４０】
ユーザは、ミドルウェアＭＷを組み込んだユーザ装置１０を使用することで、ネットワーク及び機器の構成を意識することなく、全てのサービスを利用することができる。
【００４１】
このように、システム構成及びサービスの稼動機器を動的に切り替えることで、狭帯域であったり、不安定なネットワーク環境でも全てのサービスを継続して利用することができる。つまり、システム構成及びサービスの稼動機器を動的に切り替えることで、場所や環境によらず全てのサービスを継続して利用できる。ネットワークがつながらない（故障、断線、圏外等）場合、あるいはクラウド１００、エッジ２０１，２０２がダウンした場合でも、サービスを継続して利用できる。さらには、エッジ２０１，２０２のミドルウェアＭＷ、およびサービスを各種ハードウェアに適用可能とすることで、野外環境に適した装置を実現することができる。
【００４２】
これらのことから、運用上の環境変化に対して頑健なクラウドシステム、クラウドサーバ、エッジサーバおよびユーザ装置を提供することが可能となる。
【００４３】
実施形態を説明したが、この実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４４】
１０…ユーザ装置、１１…コネクタ、１２…ストレージ、１３…チップセット、２０，３０，４０…通信ネットワーク、５０…ボード、６０…ハブ（ＨＵＢ）、７０…有線／無線ルータ、８０…内蔵バッテリ、１００…クラウド、２０１，２０２…エッジ、ｆ１…監視機能、ｆ２…切替機能、ｆ３…再分配機能、ｆ４…管理機能。
【図１】
2019135578.tif 000003
【図２】
2019135578.tif 000004
【図３】
2019135578.tif 000005
【図４】
2019135578.tif 000006
【図５】
2019135578.tif 000007
【図６】
2019135578.tif 000008
【図７】
2019135578.tif 000009
【図８】
2019135578.tif 000010
【図９】
2019135578.tif 000011
【図１０】
2019135578.tif 000012
【図１１】
2019135578.tif 000013
【図１２】
2019135578.tif 000014