(57)【要約】【課題】エッジコンピューティングシステムにおいて、エッジサーバにプログラム処理を適切に割り当てる。【解決手段】エッジサーバ３は、入力データを送信する１以上のデバイスと通信接続している。エッジサーバ３は、同一の分割モデルを取得する複数のエッジサーバ３のうちいずれのエッジサーバ３が優先的に当該分割モデルを実行するかを示す優先度情報をバックエンドサーバ２から取得する分割情報取得部３１と、通信接続されているデバイス数を管理する管理部３２とを有する。管理部３２は、デバイス数と所定の閾値とを比較し、比較結果に応じて優先度情報の更新を他のエッジサーバ３に要求する。【選択図】図１
2019144864.tif 000002
【特許請求の範囲】
【請求項１】
バックエンドサーバと、複数のエッジサーバとを含み、
前記バックエンドサーバは、
入力データに対して複数の処理ステップを含む演算を行うプログラムであるモデルを分割モデルへと分割するモデル分割部と、
前記分割モデルのそれぞれを、１以上の前記エッジサーバに割り振る分割モデル割り振り部と、
同一の前記分割モデルが割り振られた複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に前記分割モデルを実行するかを示す優先度情報を作成する優先度作成部と、
前記分割モデル割り振り部による割り振りに基づいて、前記分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルの割り振り先を示す情報である転送先情報と、前記優先度情報とを前記エッジサーバに送信する分割情報送信部と
を有し、
前記エッジサーバのそれぞれは、
前記入力データを送信する１以上のデバイスと通信接続しており、
前記バックエンドサーバから前記分割モデル、前記転送先情報、及び前記優先度情報を取得する分割情報取得部と、
通信接続されているデバイス数を管理する管理部と、
前記分割モデルを用いた演算を実行する演算処理部と、
前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに、前記演算処理部の演算結果を転送する演算結果転送部と
を有し、
前記管理部は、前記デバイス数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
エッジコンピューティングシステム。
【請求項２】
前記管理部は、さらに、自サーバのリソースを管理し、前記リソースの利用状況に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
請求項１に記載のエッジコンピューティングシステム。
【請求項３】
前記演算結果転送部は、転送先から応答がない場合、当該転送先の前記エッジサーバの優先度を前記優先度情報において下げるよう他の前記エッジサーバに要求する
請求項１又は２に記載のエッジコンピューティングシステム。
【請求項４】
前記分割モデル割り振り部は、前記エッジサーバ毎の前記デバイス数に応じた数の前記分割モデルを前記エッジサーバに割り振る
請求項１乃至３のいずれか１項に記載のエッジコンピューティングシステム。
【請求項５】
前記分割モデル割り振り部は、前記入力データを送信するデバイスと通信接続している前記エッジサーバに、前記入力データの入力を必要とする前記分割モデルを割り振る
請求項１乃至４のいずれか１項に記載のエッジコンピューティングシステム。
【請求項６】
前記分割モデル割り振り部は、第１の分割モデルと第２の分割モデルを別の前記エッジサーバに割り振り、
前記第２の分割モデルは、前記第１の分割モデルの次の処理ステップを含む前記分割モデルである
請求項１乃至５のいずれか１項に記載のエッジコンピューティングシステム。
【請求項７】
前記優先度作成部は、前記エッジサーバ毎の前記デバイス数に応じて、優先度を決定する
請求項１乃至６のいずれか１項に記載のエッジコンピューティングシステム。
【請求項８】
複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信する１以上のデバイスと通信接続しており、
前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得する分割情報取得部と、
通信接続されているデバイス数を管理する管理部と、
前記分割モデルを用いた演算を実行する演算処理部と、
前記演算処理部の演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送する演算結果転送部と
を有し、
前記管理部は、前記デバイス数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
エッジサーバ。
【請求項９】
複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信するデバイスとの接続数を管理し、
前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得し、
前記分割モデルを用いた演算を実行し、
演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送し、
前記接続数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
システム制御方法。
【請求項１０】
複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信するデバイスとの接続数を管理する管理ステップと、
前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得する取得ステップと、
前記分割モデルを用いた演算を実行する演算ステップと、
演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送する転送ステップと、
前記接続数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する要求ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエッジコンピューティングシステム、エッジサーバ、システム制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）技術の活用により様々なシステムが構築されている。これらのシステムでは、クラウドコンピューティングを用いて様々なデバイス（スマートフォン、タブレット端末、各種センサ等）のデータを収集し処理している。しかしながら、データ通信量の増大、デバイスとの通信遅延などの課題があり、これらの課題を解決する技術としてエッジコンピューティングが注目されている。
【０００３】
エッジコンピューティングとは、通信負荷や遅延の発生を軽減するために、小規模のエッジサーバをデバイスに近い場所に分散配置し、クラウドで行われていた処理を各エッジサーバで実施する技術のことである。通常、エッジサーバ上にはデバイスから取得したデータや、データ解析のための機械学習による学習済みモデルが格納される。
【０００４】
エッジコンピューティングに関連する技術として、特許文献１に記載された技術がある。これはユーザ情報を分割して複数の分割情報を生成し、エッジサーバを含んだネットワークシステムの状態変化に追従してユーザ情報の保存先を決定する技術である。また、分割に関連する技術として、特許文献２に記載された技術がある。これは、プログラムを分割して、並列実行する技術である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１６／０４３１２０号
【特許文献２】特開２０１０−００９４９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、エッジコンピューティングでは即時性が求められるサービスを提供するための処理又は他のシステムとの連携が要求されるサービスを提供するための処理が実施される等のさまざまな要因により、接続された装置の配置や構成が変化する。このため、データ解析のためのモデルは、環境に応じて適切に分散してエッジサーバに割り当てられる必要がある。
【０００７】
特許文献１に記載された技術は、単純なデータの分割保存についての技術であり、学習済みモデルのようなプログラムの適切な割り当てについては扱っていない。また、特許文献２に記載された技術は、プログラムの分割に関する技術ではあるものの、単一マシン内で、分割されたプログラムを実行する技術であり、エッジコンピューティングへの適用は容易ではない。
【０００８】
したがって、エッジコンピューティングシステムにおいて、エッジサーバにプログラム処理を適切に割り当てる技術が依然として求められている。そこで、本明細書に開示される実施形態が達成しようとする目的の１つは、エッジコンピューティングシステムにおいて、エッジサーバにプログラム処理を適切に割り当てることができるエッジコンピューティングシステム、エッジサーバ、システム制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
第１の態様にかかるエッジコンピューティングシステムは、バックエンドサーバと、複数のエッジサーバとを含み、前記バックエンドサーバは、入力データに対して複数の処理ステップを含む演算を行うプログラムであるモデルを分割モデルへと分割するモデル分割部と、前記分割モデルのそれぞれを、１以上の前記エッジサーバに割り振る分割モデル割り振り部と、同一の前記分割モデルが割り振られた複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に前記分割モデルを実行するかを示す優先度情報を作成する優先度作成部と、前記分割モデル割り振り部による割り振りに基づいて、前記分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルの割り振り先を示す情報である転送先情報と、前記優先度情報とを前記エッジサーバに送信する分割情報送信部とを有し、前記エッジサーバのそれぞれは、前記入力データを送信する１以上のデバイスと通信接続しており、前記バックエンドサーバから前記分割モデル、前記転送先情報、及び前記優先度情報を取得する分割情報取得部と、通信接続されているデバイス数を管理する管理部と、前記分割モデルを用いた演算を実行する演算処理部と、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに、前記演算処理部の演算結果を転送する演算結果転送部とを有し、前記管理部は、前記デバイス数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する。
【００１０】
第２の態様にかかるエッジサーバは、複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信する１以上のデバイスと通信接続しており、前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得する分割情報取得部と、通信接続されているデバイス数を管理する管理部と、前記分割モデルを用いた演算を実行する演算処理部と、前記演算処理部の演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送する演算結果転送部とを有し、前記管理部は、前記デバイス数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する。
【００１１】
第３の態様にかかるシステム制御方法では、複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信するデバイスとの接続数を管理し、前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得し、前記分割モデルを用いた演算を実行し、演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送し、前記接続数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する。
【００１２】
第４の態様にかかるプログラムは、複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信するデバイスとの接続数を管理する管理ステップと、前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得する取得ステップと、前記分割モデルを用いた演算を実行する演算ステップと、演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送する転送ステップと、前記接続数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する要求ステップとをコンピュータに実行させる。
【発明の効果】
【００１３】
上述の態様によれば、エッジコンピューティングシステムにおいて、エッジサーバにプログラム処理を適切に割り当てることができるエッジコンピューティングシステム、エッジサーバ、システム制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態の概要にかかるエッジコンピューティングシステムの構成の一例を示すブロック図である。
【図２】実施の形態にかかるエッジコンピューティングシステムの構成の一例を示すブロック図である。
【図３】実施の形態にかかるバックエンドサーバ及びエッジサーバのハードウェア構成の一例を示すブロック図である。
【図４】実施の形態にかかるバックエンドサーバの機能構成の一例を示すブロック図である。
【図５】モデルによるデータ解析処理の概要を示す模式図である。
【図６】実施の形態にかかるバックエンドサーバにおける動作の一例を示すフローチャートである。
【図７】分割モデル管理情報の一例を示す図である。
【図８】エッジサーバ管理用情報の一例を示す図である。
【図９】開始分割モデル情報の一例を示す図である。
【図１０】割り振りリストの一例を示す図である。
【図１１】転送先リストの一例を示す図である。
【図１２】実施の形態にかかるエッジサーバの機能構成の一例を示すブロック図である。
【図１３Ａ】実施の形態にかかるエッジサーバにおけるデータ解析に関する動作の一例を示すフローチャートである。
【図１３Ｂ】実施の形態にかかるエッジサーバにおけるデータ解析に関する動作の一例を示すフローチャートである。
【図１４】転送データの一例を示す図である。
【図１５】転送優先度の変更動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
＜実施形態の概要＞
実施形態の詳細な説明に先立って、実施形態の概要を説明する。
図１は、実施形態の概要にかかるエッジコンピューティングシステム１の構成の一例を示すブロック図である。エッジコンピューティングシステム１は、バックエンドサーバ２と、バックエンドサーバ２と通信可能な複数のエッジサーバ３を含む。エッジサーバ３のそれぞれは、データを送信する１以上のデバイス（図１において図示せず）と通信接続している。
【００１６】
エッジコンピューティングシステム１は、入力データに対してモデルを用いた演算を行うシステムである。このモデルは、上記デバイスにより送信されたデータを入力データとし、この入力データに対して複数の処理ステップを含む演算を行うプログラムである。モデルは、例えば、機械学習などにより学習されたモデルを含んでもよい。
【００１７】
エッジコンピューティングシステム１は、モデルによる演算を、複数のエッジサーバ３において分散して実行する。例えば、エッジコンピューティングシステム１において、ある処理ステップについて第１のエッジサーバ３が演算を行い、その演算結果を用いて、第２のエッジサーバ３が次の処理ステップの演算を行う。このようにして、全ての処理ステップの演算が実行される。つまり、各エッジサーバ３がモデルの一部分の処理ステップを実行することで、システム全体でモデル全体の演算を実行する。
【００１８】
バックエンドサーバ２は、モデル分割部２１と、分割モデル割り振り部２２と、優先度作成部２３と、分割情報送信部２４とを有する。
【００１９】
モデル分割部２１は、上述のモデルを分割モデルへと分割する。ここで、分割モデルとは、分割により細分化された部分的なモデルである。
分割モデル割り振り部２２は、分割モデルのそれぞれを、１以上のエッジサーバ３に割り振る。すなわち、分割モデル割り振り部２２は、分割モデルによる演算をどのエッジサーバ３が担当するかを決定する。なお、同一の分割モデルが、複数のエッジサーバ３に割り振られた場合、いずれか１つのエッジサーバ３がこの分割モデルによる演算を実行すればよい。
【００２０】
優先度作成部２３は、同一の分割モデルが割り振られた複数のエッジサーバ３のうちいずれのエッジサーバ３が優先的に当該分割モデルを実行するかを示す優先度情報を作成する。
分割情報送信部２４は、分割モデル割り振り部２２による割り振りに基づいて、分割モデルと、当該分割モデルの次の処理ステップを含む分割モデルの割り振り先を示す情報である転送先情報と、優先度情報とをエッジサーバ３に送信する。転送先情報は、一連の処理ステップの処理を行うために、分割モデルによる演算結果をどのエッジサーバ３に転送すべきかを示す情報とも言える。すなわち、転送先情報は、どのエッジサーバ３が後続の処理ステップを演算する可能性があるかを示す情報である。
【００２１】
各エッジサーバ３は、分割情報取得部３１と、管理部３２と、演算処理部３３と、演算結果転送部３４とを有する。
【００２２】
分割情報取得部３１は、バックエンドサーバ２から、分割モデル、転送先情報、及び優先度情報を取得する。
管理部３２は、エッジサーバ３と通信接続されているデバイス数を管理する。なお、管理部３２は、デバイス数に限らず、エッジサーバ３のリソース状態などをさらに管理してもよい。
【００２３】
演算処理部３３は、バックエンドサーバ２から取得した分割モデルを用いた演算を実行する。
演算結果転送部３４は、転送先情報及び優先度情報に従って特定される他のエッジサーバ３に、演算処理部３３の演算結果を転送する。これにより、後続の処理ステップが他のエッジサーバ３において実行される。なお、上述の通り、同一の分割モデルが複数のエッジサーバ３に割り振られる場合がある。この場合、優先度情報によりいずれかのエッジサーバ３により当該分割モデルによる演算が実行される。このため、演算結果転送部３４は、転送先情報及び優先度情報に従って、転送先を特定する。
【００２４】
ここで、管理部３２は、エッジサーバ３に通信接続されたデバイス数と所定の閾値とを比較し、比較結果に応じて優先度情報の更新を他のエッジサーバ３に要求する。具体的には、例えば、管理部３２は、デバイス数が所定の閾値を超えている場合、自装置（すなわち、デバイス数が所定の閾値を超えているエッジサーバ３）の優先度を下げるよう要求する。接続しているデバイス数が多いほど、エッジサーバ３にデバイスから送信されるデータ量が増えるため、処理負荷が大きくなる。このため、優先度情報の更新を行うことで、あるエッジサーバ３により実行された処理ステップの後続の処理ステップを、処理負荷が大きくなっているエッジサーバ３が実行することを回避することができる。したがって、エッジコンピューティングシステム１によれば、システムの環境に応じて、エッジサーバ３にプログラム処理を適切に割り当てることができる。
【００２５】
＜実施の形態の詳細＞
次に、実施の形態の詳細について説明する。図２は、実施の形態にかかるエッジコンピューティングシステム１００の構成の一例を示すブロック図である。図２に示すように、エッジコンピューティングシステム１００は、バックエンドサーバ２００と、複数のエッジサーバ３００と、複数のデバイス４００とを含む。バックエンドサーバ２００は、図１のバックエンドサーバ２に対応しており、エッジサーバ３００は、図１のエッジサーバ３に対応している。
【００２６】
バックエンドサーバ２００は、ＷＡＮ（Wide Area Network）又はインターネットなどのネットワーク５００を介して、複数のエッジサーバ３００と接続されており、エッジサーバ３００を管理する。各エッジサーバ３００は、１以上のデバイス４００と有線又は無線により通信可能に接続している。なお、エッジサーバ３００とデバイス４００の接続形態は、例えば、デバイスが備える通信機能に従った接続形態である。エッジサーバ３００は、後述するように、分割モデルによる演算を行う装置である。各エッジサーバ３００は、相互に、有線又は無線により相互に通信可能である。デバイス４００は、各種センサ、アクチュエータ、又はスマートフォンなどのデバイスであって、処理対象のデータを取得する。デバイス数及び種類は、エッジサーバ３００ごとに様々である。
【００２７】
以下、本実施の形態で主要な構成要素であるバックエンドサーバ２００及びエッジサーバ３００について説明する。
【００２８】
図３は、バックエンドサーバ２００及びエッジサーバ３００のハードウェア構成の一例を示すブロック図である。図３に示すように、バックエンドサーバ２００及びエッジサーバ３００は、それぞれ、例えば、ネットワークインタフェース５０、メモリ５１、及びプロセッサ５２を含む。
【００２９】
ネットワークインタフェース５０は、他の装置と通信するために使用される。ネットワークインタフェース５０は、例えば、ネットワークインタフェースカード（ＮＩＣ）を含んでもよい。
【００３０】
メモリ５１は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。また、バックエンドサーバ２００及びエッジサーバ３００は、メモリ５１の他にハードディスクなどの記憶装置を有してもよい。
【００３１】
メモリ５１は、プロセッサ５２により実行される、１以上の命令を含むソフトウェア（コンピュータプログラム）などを格納するために使用される。
このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、Compact Disc Read Only Memory（CD-ROM）、CD-R、CD-R/W、半導体メモリ（例えば、マスクROM、Programmable ROM（PROM）、Erasable PROM（EPROM）、フラッシュROM、Random Access Memory（RAM））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００３２】
プロセッサ５２は、メモリ５１からソフトウェア（コンピュータプログラム）を読み出して実行することで、後述するバックエンドサーバ２００の各種処理又はエッジサーバ３００の各種処理を行う。このように、バックエンドサーバ２００及びエッジサーバ３００は、コンピュータとしての機能を備えている。プロセッサ５２は、例えば、マイクロプロセッサ、ＭＰＵ(Micro Processor Unit)、又はＣＰＵ(Central Processing Unit)であってもよい。プロセッサ５２は、複数のプロセッサを含んでもよい。
メモリ５１又は記憶装置は、データ保管部２０６又はデータ保管部３０２として利用されてもよい。
なお、デバイス４００も図３に示した構成と同様のハードウェア構成を備えており、コンピュータとしての機能を有する。
【００３３】
図４は、バックエンドサーバ２００の機能構成の一例を示すブロック図である。バックエンドサーバ２００は、図４に示すように、モデル分割部２０１と、分割モデル暗号化部２０２と、分割モデル割り振り部２０３と、転送先リスト作成部２０４と、エッジ通信部２０５と、データ保管部２０６とを有する。
【００３４】
モデル分割部２０１は、図１のモデル分割部２１に相当しており、入力データに対して複数の処理ステップを含む演算を行うプログラムであるモデルを分割モデルへと分割する。モデル分割部２０１は、データ保管部２０６に記憶された分割前のモデルを参照し、このモデルを分割して、分割モデルを生成する。
【００３５】
ここで、モデルの分割について説明する。図５は、モデルによるデータ解析処理の概要を示す模式図である。モデルは、元データから解析対象の情報を抽出し、抽出した情報に対し解析処理を行う。ここで、元データは、デバイス４００からエッジサーバ３００に送信されるデータであり、入力データとも称される。
【００３６】
解析処理には、例えば、機械学習などにより予め学習されたモデル（学習済みモデルと称すこととする）が用いられる。すなわち、図５に示すように、本実施の形態におけるモデルによるデータ解析処理では、元データから抽出される情報を学習済みモデルの入力とし、中間処理（解析処理）を行った結果として、元データを加工した出力が得られる。
元データからの解析対象の情報の抽出、及び学習済みモデルの入力から出力を得るための中間処理は、それぞれ独立した分割モデルとして表現できる。元データから情報を抽出する分割モデルをＭ（１）、Ｎ−１回の中間処理を行う場合の各中間処理の分割モデルをＭ（２）〜Ｍ（Ｎ）とすると、元データに対し、Ｍ（１）〜Ｍ（Ｎ）の分割モデルの演算を実行することで、最終的な出力を得られることになる。本実施の形態では、このように、モデルをＭ（１）〜Ｍ（Ｎ）の分割モデルへと分割する。そして、各分割モデルをエッジサーバ３００に割り振り、モデル全体の処理を複数のエッジサーバ３００による処理の引き継ぎにより実現する。なお、学習済みモデルはバックエンドサーバ２００によって予め作成されてもよい。すなわち、モデルの学習処理が、バックエンドサーバ２００により行われてもよい。
【００３７】
分割モデル暗号化部２０２は、モデル分割部２０１による分割により得られた分割モデルを暗号化する。なお、分割モデル暗号化部２０２は、復号に必要となる復号鍵が分割モデル毎に異なるように暗号化を行う。
【００３８】
分割モデル割り振り部２０３は、図１の分割モデル割り振り部２２に相当しており、モデル分割部２０１で生成された分割モデルをエッジサーバ３００に割り振る。すなわち、分割モデル割り振り部２０３は、分割モデルのそれぞれを、１以上のエッジサーバ３００に割り振る。なお、分割モデル割り振り部２０３は、一部の分割モデル又は全ての分割モデルについて、複数のエッジサーバ３００に割り振ってもよい。
【００３９】
モデルは、特定の元データ（入力データ）を解析対象とするため、この特定の元データを送信するデバイス４００と対応づけることができる。あるデバイス４００に対応づけられたモデルは、複数種類存在する可能性もある。バックエンドサーバ２００はエッジサーバ３００が接続しているデバイス４００についての情報を有するため、バックエンドサーバ２００はエッジサーバ３００とデバイス４００との対応付けが可能である。すなわち、バックエンドサーバ２００は、あるモデルに対応づけられた元データを有するエッジサーバ３００がどれであるかを確認することができる。分割モデル割り振り部２０３は、モデルに入力すべき元データを有するエッジサーバ３００についての情報、及びエッジサーバ３００に接続しているデバイス４００の数などに基づいて、割り振りを決定する。なお、具体的な割り振りの決定方法については、後述する。
【００４０】
転送先リスト作成部２０４は、分割モデル割り振り部２０３で決定した分割モデルの割り振りに従い、転送先リストを作成する。ここで、転送先リストは、上述の転送先情報及び優先度情報を含むリストである。すなわち、転送先リスト作成部２０４は、図１の優先度作成部２３に相当する。
【００４１】
エッジ通信部２０５は、ネットワーク５００を介して、エッジサーバ３００と通信を行う。エッジ通信部２０５は、例えば、分割モデル、分割モデルの復号に必要とされる復号鍵、及び転送先リストなどをエッジサーバ３００に送信する。エッジ通信部２０５は、図１の分割情報送信部２４に相当する。また、エッジ通信部２０５は、エッジサーバ３００から送信された情報を取得する。
【００４２】
データ保管部２０６は、バックエンドサーバ２００における処理で必要となる各種データを記憶する。データ保管部２０６は、例えば、分割前のモデル、エッジリスト、エッジサーバ管理用情報、分割モデル、分割モデル管理情報、開始分割モデル情報、割り振りリスト、転送先リストなどを記憶する。
【００４３】
なお、エッジリストとは、エッジコンピューティングシステム１００を構成する全てのエッジサーバ３００のリストである。また、エッジサーバ管理用情報とは、エッジサーバ３００と当該エッジサーバ３００と接続しているデバイス４００との対応関係を示す情報である（図８参照）。分割モデル管理情報とは、分割モデルの順序関係及び分割モデルと復号鍵との対応関係をモデル毎に示した情報である（図７参照）。開始分割モデル情報とは、元データ（入力データ）が入力される分割モデル（すなわち、Ｍ（１））が、どのデバイス４００から送信されるデータのデータ種別に対応しているかを示す情報である（図９参照）。割り振りリストとは、各分割モデルの振り分け先（振り分け先のエッジサーバ３００の識別情報）を示した情報である（図１０参照）。
【００４４】
次に、バックエンドサーバ２００の動作について説明する。図６は、バックエンドサーバ２００における動作の一例を示すフローチャートである。以下、図６に沿って、バックエンドサーバ２００の動作を説明する。
【００４５】
ステップ１００（Ｓ１００）において、モデル分割部２０１が、データ保管部２０６に保管されているモデルを構成する分割する。すなわち、モデル分割部２０１が、分割モデルをＭ（１）〜Ｍ（Ｎ）を生成する。また、モデル分割部２０１は、分割モデル間の順序関係を、分割モデル管理情報としてデータ保管部２０６に保管する（図７参照）。すなわち、モデル分割部２０１は、分割モデルＭ（ｎ）とＭ（ｎ）の次に実行されるべき分割モデル（すなわち、分割モデルＭ（ｎ＋１））の対応情報を分割モデル管理情報としてデータ保管部２０６に保管する。なお、ｎは、１以上Ｎ未満の整数である。
【００４６】
次に、ステップ１０１（Ｓ１０１）において、分割モデル暗号化部２０２が分割モデルごとに暗号化を施し、復号鍵の生成を行う。分割モデル暗号化部２０２は、暗号化した分割モデル及び復号鍵をデータ保管部２０６に格納する。また、分割モデル暗号化部２０２は分割モデルと鍵の対応関係を分割モデル管理情報に追加する。
【００４７】
ステップ１００及びステップ１０１による処理を経て生成された分割モデル管理情報は例えば図７のような形式の情報となる。なお、図７では、モデルＸについての分割モデルの順序関係及び鍵情報のみが示されているが、モデルが複数存在する場合には、モデルＸ以外のモデルについても同様に分割モデル管理情報が作成される。
【００４８】
次に、ステップ１０２（Ｓ１０２）において、エッジ通信部２０５が、エッジサーバ３００と当該エッジサーバ３００に接続しているデバイス４００との対応情報と、各デバイス４００から送信されるデータ種別を示す情報とを、各エッジサーバ３００から取得する。エッジ通信部２０５は、エッジサーバ３００とデバイス４００の対応情報を、エッジサーバ管理用情報としてデータ保管部２０６に格納する。データ保管部２０６に格納されたエッジサーバ管理用情報は、例えば図８のような形式の情報となる。また、エッジ通信部２０５は、ステップ１０２において、バックエンドサーバ２００に情報を送信した全てのエッジサーバ３００の識別情報をエッジリストとしてデータ保管部２０６に保管する。また、さらに、エッジ通信部２０５は、ステップ１０２で得られた情報及びステップ１００の分割結果に基づいて作成される開始分割モデル情報をデータ保管部２０６に格納する。データ保管部２０６に格納された開始分割モデル情報は、例えば図９のような形式の情報となる。
【００４９】
次に、ステップ１０３（Ｓ１０３）において、分割モデル割り振り部２０３が、データ保管部２０６の格納されている情報に基づいて、各分割モデルの割り振り先を決定する。ここで、分割モデル割り振り部２０３は、例えば、以下のルールに従って行う。なお、分割モデル割り振り部２０３は、以下に示すルール１からルール３のうち、一部のルールに従って割り振りを行ってもよいし、全てのルールに従って割り振りを行ってもよい。
【００５０】
＜ルール１＞元データから解析対象のデータを抽出する分割モデル（すなわち、Ｍ（１））は、当該元データを送信するデバイス４００と接続する全てのエッジサーバ３００に割り振る。
このように、分割モデル割り振り部２０３は、元データを送信するデバイス４００と通信接続しているエッジサーバ３００に、当該元データの入力を必要とする分割モデルを割り振る。
これにより、元データをエッジサーバ３００間で転送することによる通信負荷を避けることができる。
【００５１】
＜ルール２＞接続するデバイス４００の数が多いエッジサーバ３００に対しては割り振る分割モデルの数を少なくする。
すなわち、例えば、分割モデル割り振り部２０３は、接続数が所定の閾値を超えるエッジサーバ３００に対して割り振る分割モデルの数を所定数以下とする。このように、分割モデル割り振り部２０３は、エッジサーバ３００毎のデバイス数に応じた数の分割モデルをエッジサーバ３００に割り振る。
これにより、接続デバイス数が多いために元データからの解析対象データの抽出処理の負荷が大きいエッジサーバ３００に、処理が集中することを避けることができる。
【００５２】
＜ルール３＞連続した分割モデルＭ（ｎ）、Ｍ（ｎ＋１）を同じエッジサーバ３００に割り振らない。
このように、分割モデル割り振り部２０３は、第１の分割モデルと第２の分割モデルを別のエッジサーバ３００に割り振る。ここで、第２の分割モデルは、第１の分割モデルの次の処理ステップを含む分割モデルである。
このようにすることで、エッジサーバ３００が記憶する情報を不正に取得された場合に、モデルについての情報の漏洩による被害を、連続した分割モデルが同一エッジサーバ３００に記憶されている場合に比べ、低減することができる。
【００５３】
ルール２及びルール３に従った割り振りの一例として、連続した分割モデルを割り振る際のリスク値が用いられてもよい。リスク値を用いた割り振り方法では、連続した分割モデルが同一のエッジサーバ３００に割り振られるほど、当該エッジサーバ３００に設定されるリスク値を高くする。分割モデル割り振り部２０３は、リスク値と接続デバイス数を考慮して割り振りを行うことで、分割モデルの分散を行う。
例えば、分割モデル割り振り部２０３は、Ｍ（ｎ）を割り振られたエッジサーバ３００（エッジサーバＡと呼ぶこととする）に対しＭ（ｎ＋１）を割り振る際のリスク値を１に設定する。また、Ｍ（ｎ−１）とＭ（ｎ）を割り振られたエッジサーバ３００（エッジサーバＢと呼ぶこととする）に対しＭ（ｎ＋１）を割り振るリスク値を２に設定する。この場合、分割モデル割り振り部２０３は、エッジサーバＡとエッジサーバＢの接続デバイス数の差が所定の閾値以下である場合、リスク値が低いエッジサーバＡにＭ（ｎ＋１）を割り振る。これに対し、エッジサーバＡの接続デバイス数がエッジサーバＢの接続デバイス数よりも所定値以上大きい場合、エッジサーバＡにおける元データからの抽出処理の負荷が大きいことが想定される。このため、分割モデル割り振り部２０３は、エッジサーバＢにＭ（ｎ＋１）を割り振る。また、あるエッジサーバ３００のリスク値が所定の閾値より高い場合、そのエッジサーバ３００の接続デバイス数によらず、そのエッジサーバ３００には連続した分割モデルを割り振らないようにする。
【００５４】
分割モデル割り振り部２０３は、上記のルールに従って割り振りを行って得られた、分割モデルとエッジサーバ３００との対応表を割り振りリストとしてデータ保管部２０６に保管する。ステップ１０３において作成される割り振りリストは、例えば図１０のような形式の情報となる。
【００５５】
次に、ステップ１０４（Ｓ１０４）において、転送先リスト作成部２０４は、転送先リストを作成する。具体的には、以下のように転送先リストが作成される。
【００５６】
上記ルール３に従って分割モデルの割り振り先が決定された場合、Ｍ（ｎ）とＭ（ｎ＋１）は異なるエッジサーバ３００上で実行されることとなる。このため、Ｍ（ｎ）による演算結果を、Ｍ（ｎ＋１）をもつエッジサーバ３００に転送する必要がある。そのため、転送先リスト作成部２０４は、分割モデルＭ（ｎ）の次の処理ステップを含む分割モデルＭ（ｎ＋１）を有するエッジサーバ３００の情報を転送先として転送先リストに追加してデータ保管部２０６に保管する。
【００５７】
また、Ｍ（ｎ）による演算結果のデータを受領するエッジサーバ３００（すなわち、転送先のエッジサーバ３００）は、次に、このデータをどの分割モデルで処理すべきかを認識する必要がある。このため、転送先リスト作成部２０４はデータ保管部２０６に保管されている分割モデル管理情報からＭ（ｎ）の次に実行される分割モデルの情報を抽出し、これを転送先リストに追加してデータ保管部２０６に保管する。
【００５８】
次に、ステップ１０５（Ｓ１０５）において、転送先リスト作成部２０４は、優先度情報を付加することによりステップ１０４で作成された転送先リストを更新する。すなわち、Ｍ（ｎ）による演算結果のデータの転送先を一意にするため、転送先リスト作成部２０４は、分割モデルの転送先ごとに転送優先度を設定し、データ保管部２０６に保管されている転送先リストを更新する。なお、転送先リスト作成部２０４は、接続されているデバイス数が多いほどエッジサーバ３００にかかる負荷が高くなることを考慮し、接続されているデバイス数が少ないものほど転送優先度が高くなるように設定する。すなわち、転送先リスト作成部２０４は、エッジサーバ３００毎のデバイス数に応じて、転送優先度を決定する。このようにすることで、負荷が大きいエッジサーバ３００に、処理が集中することを避けることができる。ステップ１０４において作成される転送先リストは、例えば図１１のような形式の情報となる。
【００５９】
次に、ステップ１０６（Ｓ１０６）において、エッジ通信部２０５は、エッジサーバ３００に対し、分割モデル、転送先リスト、開始分割モデル情報、エッジリストを送信する。なお、送信される分割モデルは、上述の通り、暗号化されている。バックエンドサーバ２００から送信されたこれらの情報は、エッジサーバ３００の後述するバックエンド通信部３０１により受信される。
【００６０】
次に、ステップ１０７（Ｓ１０７）において、エッジ通信部２０５は、エッジサーバ３００に対し、ステップ１０６で送信された分割モデルを復号するための復号鍵を送信する。ただし、転送先としての優先度が最も高いエッジサーバ３００以外のエッジサーバ３００は、必ずしもステップ１０６で送信された分割モデルを用いた演算を行うとは限らない。したがって、エッジ通信部２０５は、優先度の最も高いエッジサーバ３００に対して分割モデルの復号鍵を送信し、優先度が最高ではないエッジサーバ３００に対しては復号鍵を送信しない。優先度の低いエッジサーバ３００には復号鍵を送信されないため、復号鍵が流出する可能性を軽減することができる。なお、エッジ通信部２０５は、元データが入力される分割モデル（すなわち、Ｍ（１））が割り振られているエッジサーバ３００にも、復号鍵を送信する。
【００６１】
次に、エッジサーバ３００について説明する。
図１２は、エッジサーバ３００の機能構成の一例を示すブロック図である。各エッジサーバ３００は、図１２に示すように、バックエンド通信部３０１と、データ保管部３０２と、エッジ通信部３０３と、演算処理部３０４と、デバイス通信部３０５と、転送先リスト管理部３０６と、リソース管理部３０７と、制御部３０８とを有する。
【００６２】
バックエンド通信部３０１は、ネットワーク５００を介して、バックエンドサーバ２００と通信を行う。バックエンド通信部３０１は、例えば、分割モデル、分割モデルの復号鍵、転送先リストなどを受信する。したがって、バックエンド通信部３０１は、図１の分割情報取得部３１に相当する。
また、バックエンド通信部３０１は、例えば、エッジサーバ３００に接続されているデバイス４００に関する情報（デバイス情報とも称す）を送信する。なお、デバイス情報には、例えば、エッジサーバ３００と当該エッジサーバ３００に接続しているデバイス４００との対応情報、当該エッジサーバ３００に接続している各デバイス４００から送信されるデータ種別を示す情報、などが含まれる。
【００６３】
データ保管部３０２は、エッジサーバ３００における処理で必要となる各種データを記憶する。データ保管部３０２は、例えば、デバイス情報、バックエンドサーバ２００から受信した情報などを記憶する。なお、後述する演算処理部３０４は、データ保管部３０２に格納されている分割モデル及び復号鍵を用いて処理を行う。
【００６４】
エッジ通信部３０３は、他のエッジサーバ３００の通信を行う。エッジ通信部３０３は、例えば、分割モデルの入出力データなどを送受信する。エッジ通信部３０３は、図１の演算結果転送部３４に相当する。
【００６５】
演算処理部３０４は、図１の演算処理部３３に相当し、デバイス４００又は他のエッジサーバ３００から受信したデータを、データ保管部３０２に格納されている分割モデル及び復号鍵を使用して解析する。
【００６６】
デバイス通信部３０５は、デバイス４００との間で、データを送受信する。例えば、デバイス通信部３０５は、デバイス４００から送信されたデータ、すなわち、分割モデルに入力する元データを受信する。
【００６７】
転送先リスト管理部３０６は、データ保管部３０２に格納されている転送先リストを管理する。また、転送先リスト管理部３０６は、転送先リスト内の各エッジサーバ３００の転送優先度の更新を行う。
【００６８】
リソース管理部３０７は、図１の管理部３２に相当し、エッジサーバ３００のデバイス接続数、リソース使用状況（ＣＰＵ使用率、メモリ使用率、ディスク容量等）を取得し、デバイス接続数及びリソース使用状況に基づいて、転送優先度の変更を決定する。
【００６９】
制御部３０８は、エッジサーバ３００における上述の各構成要素の処理に関連した種々の制御を行う。
【００７０】
次に、エッジサーバ３００の動作について説明する。図１３Ａ及び図１３Ｂは、エッジサーバ３００におけるデータ解析に関する動作の一例を示すフローチャートである。以下、図１３Ａ及び図１３Ｂに沿って、エッジサーバ３００におけるデータ解析に関する動作を説明する。
【００７１】
ステップ２００（Ｓ２００）において、デバイス４００からデータが送信されると、当該デバイス４００に接続されたエッジサーバ３００のデバイス通信部３０５がこのデータを受信する。
【００７２】
次に、ステップ２０１（Ｓ２０１）において、制御部３０８はステップ２００で受信したデータのデータ種別をもとに、開始分割モデル情報を参照して、使用する分割モデルを決定するとともに、データを演算処理部３０４に渡す。
次に、ステップ２０２（Ｓ２０２）において、演算処理部３０４がデータ保管部３０２に保存されている分割モデルを使用して演算処理を行う。なお、このとき、演算処理部３０４は、ステップ２０１で特定された分割モデルを復号鍵で復号し、復号された分割モデルにより演算を実施する。
次に、ステップ２０３（Ｓ２０３）において、演算処理部３０４は、演算処理結果を、次の処理ステップを実行するエッジサーバ３００に渡すデータである転送データに含める。
【００７３】
次に、ステップ２０４（Ｓ２０４）において、転送先リスト管理部３０６は、データ保管部３０２に保管されている転送先リストを参照し、ステップ２０２の演算結果のデータの転送先を確認する。データの転送先情報が存在する場合、ステップ２０５に移行し、データの転送先情報が存在しない場合、ステップ２１６又はステップ２１７に移行する。
【００７４】
ステップ２０５（Ｓ２０５）において、制御部３０８が、データ保管部３０２に保管されている転送先リストを参照し、次に実行されるべき分割モデルの種別を転送データに含める。また、制御部３０８は、転送先リストを参照し、転送先としての優先度が最も高いエッジサーバ３００を転送データの転送先として設定する。
【００７５】
また、制御部３０８は、自サーバが元データを取得したサーバである場合、すなわち、データの発生源のサーバである場合、転送データにデータ発信源情報として自サーバの情報を含める（ステップ２０６（Ｓ２０６））。すなわち、データ発信源情報は、いずれのエッジサーバ３００において取得された元データに起因した処理結果の転送であるかを示す情報である。なお、元データを取得したサーバが他のエッジサーバ３００である場合、ステップ２０５の後に、ステップ２０６は行われず、ステップ２０７へ移行する。このようにして作成された転送データは、例えば図１４のような形式の情報となる。
【００７６】
ステップ２０７（Ｓ２０７）において、エッジ通信部３０３は、転送先としての優先度が最も高いエッジサーバ３００に対し、転送データを送信する。
【００７７】
転送先のエッジサーバ３００（すなわち、受信側のエッジサーバ３００）は、転送データを受信したら、転送元のエッジサーバ３００（すなわち、送信側のエッジサーバ３００）に対してデータ受信通知を送信する。このデータ受信通知が転送先から送信されない場合、転送先がネットワークから切断されていたり、電源が切れていたりするなどの理由により、他のエッジサーバ３００と通信できない状態であり、転送データを受信できていないことが考えられる。以下、転送データの送信に対しデータ受信通知を返信しないエッジサーバ３００を通信不可エッジサーバと称すこととする。
【００７８】
したがって、データ受信通知を受信できない場合、すなわち、転送先から応答がない場合、ステップ２０８（Ｓ２０８）において、転送元の転送先リスト管理部３０６は、転送先リストにおいて通信不可エッジサーバの転送優先度を下げる。すなわち、転送先リスト管理部３０６は、転送先リストの優先度情報を更新する。これにより、通信不可エッジサーバには、転送データを送信しないようにする。
【００７９】
また、ステップ２０８の後、ステップ２０９（Ｓ２０９）において、エッジ通信部３０３は、他のエッジサーバ３００も、通信不可エッジサーバへ転送データを送信しないように要求する。このため、エッジ通信部３０３は、データ保管部３０２のエッジリストを使用し、エッジリストに登録されているエッジサーバ３００に対して、通信不可エッジサーバの転送優先度の変更（具体的には、優先度を下げる変更）を要求する通知を送信する。このように、エッジ通信部３０３は、転送先から応答がない場合、当該転送先のエッジサーバ３００の優先度を転送先リスト（優先度情報）において下げるよう他のエッジサーバ３００に要求する。これにより、他のエッジサーバ３００による同様の転送の失敗を抑制することができる。
【００８０】
ステップ２０９の後、ステップ２１０（Ｓ２１０）において、転送優先度の変更を要求する通知を受信したエッジサーバ３００は、通信不可エッジサーバの転送優先度の変更処理を実施する。なお、この変更処理では、後述する図１５のステップ３０２〜ステップ３０４と同様の処理が、通知を受信したエッジサーバ３００において行われる。通知を送信したエッジサーバ３００では、ステップ２０９の後、再びステップ２０４以降の処理が行われる。すなわち、更新された転送リストに基づいて新たに選択されたエッジサーバ３００への転送が試みられる。
【００８１】
一方、転送が成功した場合、転送先のエッジサーバ３００において、解析のための処理が行われる。以下、転送先のエッジサーバ３００の処理の流れを説明する。
【００８２】
まず、ステップ２１１（Ｓ２１１）において、エッジ通信部３０３は、転送元に対し、データ受信通知を送信する。
次に、ステップ２１２（Ｓ２１２）において、制御部３０８は、受信した転送データから演算処理結果を入力データとして取り出す。
次に、ステップ２１３（Ｓ２１３）において、制御部３０８は、受信した転送データに含まれる分割モデル種別を読み取り、使用する分割モデルを決定する。
【００８３】
ところで、分割モデルの実行には復号鍵が必要である。しかしながら、モデル分割時、バックエンドサーバ２００は一番転送優先度の高いエッジサーバ３００にのみ復号鍵を送信している。このため、ステップ２０８〜ステップ２１０の処理によって新しく優先度が最高の転送先になったエッジサーバ３００は、分割モデルの復号鍵を持っていない可能性がある。この場合、以下のステップ２１４及びステップ２１５の処理が行われた後、ステップ２０２以降の処理が行われる。これに対し、エッジサーバ３００が分割モデルの復号鍵を持っている場合、ステップ２１４及びステップ２１５の処理がスキップされ、ステップ２０２以降の処理が行われる。
【００８４】
ステップ２１３で使用が決定された分割モデルに対する復号鍵がデータ保管部３０２にない場合、ステップ２１４（Ｓ２１４）において、バックエンド通信部３０１は、バックエンドサーバ２００に当該分割モデルに対応する復号鍵を送信するよう要求する。その後、ステップ２１５（Ｓ２１５）において、要求を受信したバックエンドサーバ２００のエッジ通信部２０５から送信された復号鍵をバックエンド通信部３０１が受信する。
【００８５】
以降、一連の全ての分割モデル（すなわち、Ｍ（１）〜Ｍ（ｎ））の処理が完了するまで、ステップ２０２からステップ２１５までの処理が繰り返される。
【００８６】
最後の分割モデル（すなわち、Ｍ（Ｎ））の処理が完了したら、すなわちデータの転送先情報が存在しなくなると、モデルを用いた解析処理の出力が得られたことになる。このため、ステップ２１７（Ｓ２１７）において、モデルの出力に応じた処理を実行する。例えば、モデルの出力に基づいて、デバイス４００又はバックエンドサーバ２００へのフィードバックなどのアクションが実行される。なお、ステップ２１７の処理は、例えば、当該モデルに入力されたデータの発生源のエッジサーバ３００で行われる。このため、当該モデルに入力されたデータの発生源が自サーバでない場合は、データ発生源であるエッジサーバ３００に出力を返却する必要がある。したがって、ステップ２１７の前のステップ２１６（Ｓ２１６）において、エッジ通信部３０３は、転送データに含まれるデータ発生源情報を参照して、最終的な演算処理結果を、データ発生源のエッジサーバ３００に転送する。
【００８７】
ここで、エッジサーバ３００の環境に応じた転送優先度の変更について説明する。エッジサーバ３００に対するデバイス４００の接続状況は日々変化しうる。このため、いつもエッジサーバ３００が転送されてきたデータを処理できる状態にあるとは限らない。本実施の形態では、エッジサーバ３００は、各デバイス４００から得られた元データに対する処理を行う分割モデル（すなわち、Ｍ（１））を実行する必要があるため、接続デバイス数が多くなればその分負荷がかかる。また、処理対象のデータによっては、ＣＰＵ又はメモリを多く使用することになったり、ディスク上に記憶するデータサイズが大きくなったりすることが考えられる。したがって、解析処理を適切に行うためには、エッジサーバ３００の環境に応じて転送優先度を動的に変更することが求められる。
【００８８】
図１５は、エッジサーバ３００の環境に応じた転送優先度の変更動作の一例を示すフローチャートである。以下、図１５に沿って、エッジサーバ３００における転送優先度の変更動作を説明する。
【００８９】
ステップ３００（Ｓ３００）において、リソース管理部３０７は、エッジサーバ３００に接続されているデバイス数及びリソース使用状況（ＣＰＵ使用率、メモリ使用率、ディスク使用率など）を確認する。そして、リソース管理部３０７は、デバイス数を第１の所定の閾値と比較するとともに、リソース使用率を第２の所定の閾値と比較する。デバイス数又はリソース使用率が閾値を超えていた場合、リソース管理部３０７は、自サーバの転送優先度を下げてもらうよう要求することを決定する。
【００９０】
すなわち、リソース管理部３０７は、デバイス数と閾値とを比較し、比較結果に応じて優先度情報の更新を他のエッジサーバ３００に要求する。また、リソース管理部３０７は、自サーバのリソースを管理し、リソースの利用状況に応じて優先度情報の更新を他のエッジサーバ３００に要求する。このようにすることにより、自サーバの負荷状態に応じて、自サーバへの転送の発生を制御することができる。すなわち、エッジコンピューティングシステム１００において、解析処理の実行をエッジサーバ３００に適切に割り当てることができる。
【００９１】
なお、転送優先度を下げてもらうよう要請した後に、閾値を超えていたデバイス数又はリソース使用率が閾値を下回るようになった場合、リソース管理部３０７は、自サーバの転送優先度を元に戻してもらうよう要求することを決定する。すなわち、リソース管理部３０７は、自サーバの転送優先度を上げてもらうよう要求する。
【００９２】
ステップ３０１（Ｓ３０１）において、リソース管理部３０７の判断を受け、エッジ通信部３０３はデータ保管部３０２に保管されているエッジリストを使用し、エッジリストに登録されているエッジサーバ３００に対して転送優先度の変更を要求する通知を行う。
ステップ３０２（Ｓ３０２）において、この通知を他のエッジサーバ３００のエッジ通信部３０３が受信する。
【００９３】
エッジサーバ３００によって、保持している分割モデルと転送先リストは異なる。このため、ステップ３０２で受信した通知の送信元のエッジサーバ３００が転送先リストに含まれているかを確認する必要がある。したがって、ステップ３０３（Ｓ３０３）において、通知を受信したエッジサーバ３００の転送先リスト管理部３０６はデータ保管部３０２が保持している転送先リストに通知元のエッジサーバ３００が含まれているかを確認する。
【００９４】
転送先リストに通知元のエッジサーバ３００が含まれている場合、ステップ３０４（Ｓ３０４）において、転送先リスト管理部３０６は、通知に従って転送リストの転送優先度を変更する。すなわち、転送先リスト管理部３０６は、転送先リストにおける優先度情報を更新する。これに対し、転送先リストに通知元のエッジサーバ３００が含まれていない場合、通知に対してはアクションを起こさない。
【００９５】
以上、実施の形態にかかるエッジコンピューティングシステム１００について説明した。エッジコンピューティングシステム１００では、エッジサーバ３００の状態に応じて、動的に、優先度の変更が行われる。このため、装置の配置や構成が変化しやすいエッジコンピューティングにおいて、適切に処理を実行することができる。また、バックエンドサーバ２００において行われる分割モデルの割り振り及び転送優先度の決定において、各エッジサーバ３００の接続デバイス数などが考慮される。この点においても、プログラム処理の適切な分散を可能としている。
【００９６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、バックエンドサーバ２００において、接続するデバイス数に基づいて分割モデルの割り振りが決定された。これに限らず、例えば、エッジサーバ３００が取得する元データのデータ種別に応じて分割モデルの割り振りが決定されてもよい。例えば、デバイス４００から画像データや音声データなどのサイズの大きいデータを受信するエッジサーバ３００に対しては、元データに対する処理を行う分割モデル（すなわち、Ｍ（１））以外の分割モデルを割り振らないようにしてもよい。そして、テキストデータなど軽量なデータを受信するエッジサーバ３００に対してはより多くの分割モデルを割り振るようにしてもよい。このように、分割モデル割り振り部２０３は、エッジサーバ３００と通信接続しているデバイス４００が送信する元データの種別に応じて、当該エッジサーバ３００に割り振る分割モデルの数を調整してもよい。このようにすることで、データ種別に起因した処理負荷を考慮した割り振りを実現することができる。なお、データ種別に応じた割り振りは、上記ルール２に代えて行われてもよいし、ルール２と併用されてもよい。また、上記の実施の形態では、エッジサーバ３００における動的な優先度の変更は、デバイス数又はリソース使用状況に基づいて行われたが、こられに代えて若しくはこれらとともに、データ種別に応じた優先度の変更が行われてもよい。
【００９７】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９８】
（付記１）
バックエンドサーバと、複数のエッジサーバとを含み、
前記バックエンドサーバは、
入力データに対して複数の処理ステップを含む演算を行うプログラムであるモデルを分割モデルへと分割するモデル分割部と、
前記分割モデルのそれぞれを、１以上の前記エッジサーバに割り振る分割モデル割り振り部と、
同一の前記分割モデルが割り振られた複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に前記分割モデルを実行するかを示す優先度情報を作成する優先度作成部と、
前記分割モデル割り振り部による割り振りに基づいて、前記分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルの割り振り先を示す情報である転送先情報と、前記優先度情報とを前記エッジサーバに送信する分割情報送信部と
を有し、
前記エッジサーバのそれぞれは、
前記入力データを送信する１以上のデバイスと通信接続しており、
前記バックエンドサーバから前記分割モデル、前記転送先情報、及び前記優先度情報を取得する分割情報取得部と、
通信接続されているデバイス数を管理する管理部と、
前記分割モデルを用いた演算を実行する演算処理部と、
前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに、前記演算処理部の演算結果を転送する演算結果転送部と
を有し、
前記管理部は、前記デバイス数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
エッジコンピューティングシステム。
（付記２）
前記管理部は、さらに、自サーバのリソースを管理し、前記リソースの利用状況に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
付記１に記載のエッジコンピューティングシステム。
（付記３）
前記演算結果転送部は、転送先から応答がない場合、当該転送先の前記エッジサーバの優先度を前記優先度情報において下げるよう他の前記エッジサーバに要求する
付記１又は２に記載のエッジコンピューティングシステム。
（付記４）
前記分割モデル割り振り部は、前記エッジサーバ毎の前記デバイス数に応じた数の前記分割モデルを前記エッジサーバに割り振る
付記１乃至３のいずれか１項に記載のエッジコンピューティングシステム。
（付記５）
前記分割モデル割り振り部は、前記入力データを送信するデバイスと通信接続している前記エッジサーバに、前記入力データの入力を必要とする前記分割モデルを割り振る
付記１乃至４のいずれか１項に記載のエッジコンピューティングシステム。
（付記６）
前記分割モデル割り振り部は、第１の分割モデルと第２の分割モデルを別の前記エッジサーバに割り振り、
前記第２の分割モデルは、前記第１の分割モデルの次の処理ステップを含む前記分割モデルである
付記１乃至５のいずれか１項に記載のエッジコンピューティングシステム。
（付記７）
前記分割モデル割り振り部は、前記エッジサーバと通信接続している前記デバイスが送信する前記入力データの種別に応じて、当該エッジサーバに割り振る前記分割モデルの数を調整する
付記１乃至６のいずれか１項に記載のエッジコンピューティングシステム。
（付記８）
前記優先度作成部は、前記エッジサーバ毎の前記デバイス数に応じて、優先度を決定する
付記１乃至７のいずれか１項に記載のエッジコンピューティングシステム。
（付記９）
複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信する１以上のデバイスと通信接続しており、
前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得する分割情報取得部と、
通信接続されているデバイス数を管理する管理部と、
前記分割モデルを用いた演算を実行する演算処理部と、
前記演算処理部の演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送する演算結果転送部と
を有し、
前記管理部は、前記デバイス数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
エッジサーバ。
（付記１０）
前記管理部は、さらに、自サーバのリソースを管理し、前記リソースの利用状況に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
付記９に記載のエッジサーバ。
（付記１１）
入力データに対して複数の処理ステップを含む演算を行うプログラムであるモデルを分割モデルへと分割するモデル分割部と、
前記分割モデルのそれぞれを、１以上のエッジサーバに割り振る分割モデル割り振り部と、
同一の前記分割モデルが割り振られた複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に前記分割モデルを実行するかを示す優先度情報を作成する優先度作成部と、
前記分割モデル割り振り部による割り振りに基づいて、前記分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルの割り振り先を示す情報である転送先情報と、前記優先度情報とを前記エッジサーバに送信する分割情報送信部と
を有し、
前記エッジサーバは、前記入力データを送信する１以上のデバイスと通信接続しており、
前記分割モデル割り振り部は、前記エッジサーバ毎の通信接続されているデバイス数に応じた数の前記分割モデルを前記エッジサーバに割り振る
バックエンドサーバ。
（付記１２）
前記優先度作成部は、前記エッジサーバ毎の前記デバイス数に応じて、優先度を決定する
付記１１に記載のバックエンドサーバ。
（付記１３）
複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信するデバイスとの接続数を管理し、
前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得し、
前記分割モデルを用いた演算を実行し、
演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送し、
前記接続数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する
システム制御方法。
（付記１４）
複数の処理ステップを含む演算を行うプログラムであるモデルに入力するための入力データを送信するデバイスとの接続数を管理する管理ステップと、
前記モデルを分割した分割モデルと、当該分割モデルの次の処理ステップを含む前記分割モデルを取得する他のエッジサーバを示す情報である転送先情報と、同一の前記分割モデルを取得する複数の前記エッジサーバのうちいずれの前記エッジサーバが優先的に当該分割モデルを実行するかを示す優先度情報とを、バックエンドサーバから取得する取得ステップと、
前記分割モデルを用いた演算を実行する演算ステップと、
演算結果を、前記転送先情報及び前記優先度情報に従って特定される他の前記エッジサーバに転送する転送ステップと、
前記接続数と所定の閾値とを比較し、比較結果に応じて前記優先度情報の更新を他の前記エッジサーバに要求する要求ステップと
をコンピュータに実行させるプログラム。
【符号の説明】
【００９９】
１、１００    エッジコンピューティングシステム
２、２００    バックエンドサーバ
３、３００    エッジサーバ
２１、２０１    モデル分割部
２２、２０３    分割モデル割り振り部
２３    優先度作成部
２４    分割情報送信部
３１    分割情報取得部
３２    管理部
３３、３０４    演算処理部
３４    演算結果転送部
５０    ネットワークインタフェース
５１    メモリ
５２    プロセッサ
２０２    分割モデル暗号化部
２０４    転送先リスト作成部
２０５、３０３    エッジ通信部
２０６、３０２    データ保管部
３０１    バックエンド通信部
３０５    デバイス通信部
３０６    転送先リスト管理部
３０７    リソース管理部
３０８    制御部
４００    デバイス
５００    ネットワーク
【図１】
2019144864.tif 000003
【図２】
2019144864.tif 000004
【図３】
2019144864.tif 000005
【図４】
2019144864.tif 000006
【図５】
2019144864.tif 000007
【図６】
2019144864.tif 000008
【図７】
2019144864.tif 000009
【図８】
2019144864.tif 000010
【図９】
2019144864.tif 000011
【図１０】
2019144864.tif 000012
【図１１】
2019144864.tif 000013
【図１２】
2019144864.tif 000014
【図１３Ａ】
2019144864.tif 000015
【図１３Ｂ】
2019144864.tif 000016
【図１４】
2019144864.tif 000017
【図１５】
2019144864.tif 000018