IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許7603628分散コンピューティング制御システム、方法及びプログラム
<>
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図1
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図2
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図3
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図4
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図5A
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図5B
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図5C
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図6
  • 特許-分散コンピューティング制御システム、方法及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】分散コンピューティング制御システム、方法及びプログラム
(51)【国際特許分類】
   G06F 9/445 20180101AFI20241213BHJP
   G06F 9/46 20060101ALI20241213BHJP
   H04L 67/10 20220101ALI20241213BHJP
   H04L 67/289 20220101ALI20241213BHJP
【FI】
G06F9/445
G06F9/46 420Z
H04L67/10
H04L67/289
【請求項の数】 8
(21)【出願番号】P 2022027206
(22)【出願日】2022-02-24
(65)【公開番号】P2023123244
(43)【公開日】2023-09-05
【審査請求日】2024-02-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】関川 柊
【審査官】松平 英
(56)【参考文献】
【文献】特表2015-534144(JP,A)
【文献】特開2011-170571(JP,A)
【文献】特開2013-003542(JP,A)
【文献】特開2003-022189(JP,A)
【文献】特開2006-221382(JP,A)
【文献】中野 雄介 他,「Webアプリケーションユーザの利用を妨げないWebブラウザの余剰リソース活用手法」,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2011年05月01日,第VOL.J94-D巻,第5号,pp.780-790,[ISSN]1880-4535
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
9/455-9/54
H04L12/28
51/00-51/58
67/00-67/75
(57)【特許請求の範囲】
【請求項1】
Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理する分散コンピューティング制御システムにおいて、
前記ワーカデバイスが、
Webブラウザで管理サーバへアクセスしてエージェント機能を取得する手段と、
Webブラウザを実行基盤として前記エージェント機能を起動する手段と、
エージェント機能に管理サーバから分散処理プログラムを取得させる手段と、
Webブラウザを実行基盤として前記分散処理プログラムを起動する手段と、
分散処理の結果を管理サーバへ応答する手段とを具備し
前記分散処理プログラムがWebブラウザのサンドボックス実行環境において起動され、
前記分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、
前記プログラムコードは前記サンドボックス実行環境で起動され、
前記インタフェースコードは前記プログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供することを特徴とする分散コンピューティング制御システム。
【請求項2】
前記エージェント機能はWebブラウザが備える実行エンジンを利用してインタフェースコードを起動することを特徴とする請求項に記載の分散コンピューティング制御システム。
【請求項3】
前記エージェント機能は、Webブラウザが備える実行エンジンを利用して管理サーバから分散処理プログラムを取得することを特徴とする請求項1または2に記載の分散コンピューティング制御システム。
【請求項4】
前記プログラムコードが前記サンドボックス実行環境で実行可能な命令セットによって記述されたことを特徴とする請求項1ないし3のいずれかに記載の分散コンピューティング制御システム。
【請求項5】
前記エージェント機能が各ワーカデバイスのWebブラウザへWeb標準として採用された言語で実装されることを特徴とする請求項1ないしのいずれかに記載の分散コンピューティング制御システム。
【請求項6】
前記エージェント機能は、Webブラウザ内での起動後に管理サーバに対して自身のワーカデバイスを登録することを特徴とする請求項1ないしのいずれかに記載の分散コンピューティング制御システム。
【請求項7】
Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理する分散コンピューティング制御方法において、
ワーカデバイスがWebブラウザで管理サーバへアクセスしてエージェント機能を取得し、
ワーカデバイスのWebブラウザを実行基盤として前記エージェント機能を起動し、
エージェント機能が管理サーバから分散処理プログラムを取得し、
Webブラウザを実行基盤として前記分散処理プログラムを起動し、
分散処理の結果を管理サーバへ応答し
前記分散処理プログラムがWebブラウザのサンドボックス実行環境において起動され、
前記分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、
前記プログラムコードは前記サンドボックス実行環境で起動され、
前記インタフェースコードは前記プログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供することを特徴とする分散コンピューティング制御方法。
【請求項8】
Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理する分散コンピューティング制御プログラムにおいて、
Webブラウザで管理サーバへアクセスしてエージェント機能を取得する手順と、
Webブラウザを実行基盤として前記エージェント機能を起動する手順と、
エージェント機能に管理サーバから分散処理プログラムを取得させる手順と、
Webブラウザを実行基盤として前記分散処理プログラムを起動する手順と、
分散処理の結果を管理サーバへ応答する手順と、をワーカデバイスに実行させ
前記分散処理プログラムがWebブラウザのサンドボックス実行環境において起動され、
前記分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、
前記プログラムコードは前記サンドボックス実行環境で起動され、
前記インタフェースコードは前記プログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供することを特徴とする分散コンピューティング制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続された不特定多数のデバイスを用いて対象ジョブを分散処理する分散コンピューティング制御システム、方法及びプログラムに係り、特に、Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理するシステム、方法及びプログラムに関する。
【背景技術】
【0002】
次世代の無線インフラのアーキテクチャの1つとして、モバイル網にエッジコンピューティングの仕組みを実装するMEC(Multi-access Edge Computing)が注目されている。MECではデータの処理機能の一部をクラウドではなく、ユーザにより近いモバイルネットワーク内(例えば、無線基地局)にエッジサーバとして配置することで低遅延かつ広帯域のモバイル通信を可能にする。
【0003】
一方、無線基地局の空間的、電力的な制約から、各無線基地局に配置できるエッジサーバの能力が当該無線基地局に収容できるデバイス数に対して十分ではないという課題があった。このような技術課題に対して、無線基地局が収容するデバイス群に対象ジョブを分散処理させる分散コンピューティングシステムが注目されている。
【0004】
特許文献1には、仮想マシンを用いたクラウドコンピューティングによりユーザへコンピューティングサービスを提供することで、演算処理を実施するデバイスにおける演算処理プログラムのインストール及び更新を不要とする技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2014-130591号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1によれば、ユーザがコンピューティングサービスを要求するたびに演算処理プログラムをインストールする必要がなくなり、更新する時間及びリソースを削減できるようになる。しかしながら、この手法ではコンピューティングサービスを提供するデバイスにおいて仮想マシンを実行可能な環境、及び仮想マシンを管理するための機能が必要となる。
【0007】
一方、複数のユーザが自身のデバイスをコンピューティングサービスの演算処理を実施するデバイスとして提供し、分散コンピューティングを実現するボランティア・コンピューティング等においては、スマートフォンやPCなどのユーザ端末、あるいはIoT(Internet of Things)デバイスなどの不特定多数かつ異種のデバイスが混在することが想定される。これらのデバイスを用いて分散コンピューティングサービスを提供するためには以下のような課題が存在する。
【0008】
第1に、コンピューティングサービスを提供するデバイスとして不特定のデバイスを使用するため、予めコンピューティングサービスに必要な仮想マシンの実行環境や管理機能を統一的にインストールすることが困難である。
【0009】
第2に、コンピューティングサービスを提供するデバイスとして他のユーザの持つデバイスやIoTデバイスなどが想定される。この場合、各デバイスが異なるプロセッサアーキテクチャ、OS(Operating System)、アプリケーションを備えるものとして、各デバイスが共通のプログラムを用いて分散処理を実行する機能が不可欠となる。
【0010】
本発明の目的は、上記の技術課題を解決し、各デバイスのプロセッサアーキテクチャやOS等が異なっていても共通のエージェント機能及び分散処理プログラムを用いて対象ジョブを各デバイスに分散処理させることを可能とする分散コンピューティング制御システム、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記の目的を達成するために、本発明は、Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理する分散コンピューティング制御システムにおいて、以下の構成を具備した点に特徴がある。
【0012】
(1) 各ワーカデバイスが、Webブラウザで管理サーバへアクセスしてエージェント機能を取得する手段と、Webブラウザを実行基盤として前記エージェント機能を起動する手段と、エージェント機能に管理サーバから分散処理プログラムを取得させる手段と、Webブラウザを実行基盤として前記分散処理プログラムを起動する手段と、分散処理の結果を管理サーバへ応答する手段とを具備した。
【0013】
(2) 分散処理プログラムがWebブラウザのサンドボックス実行環境において起動されるようにした。
【0014】
(3) 分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、プログラムコードはサンドボックス実行環境で起動され、インタフェースコードはプログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供するようにした。
【0015】
(4) エージェント機能は、Webブラウザが標準で備えるプログラム実行機能を利用してインタフェースコードを起動するようにした。
【0016】
(5) エージェント機能は、Webブラウザが標準で備えるファイル取得機能を利用して管理サーバから分散処理プログラムを取得するようにした。
【0017】
(6) プログラムコードをサンドボックス実行環境で実行可能な命令セットによって記述するようにした。
【0018】
(7) エージェント機能を各ワーカデバイスのWebブラウザへ当該Webブラウザの標準言語で実装するようにした。
【0019】
(8) エージェント機能は、Webブラウザ内での起動後に管理サーバに対して自身のワーカデバイスを登録するようにした。
【発明の効果】
【0020】
本発明によれば以下のような効果が達成される。
【0021】
(1) エージェント機能を各ワーカデバイスのWebブラウザ内で実行するのでエージェント機能のインストールが不要となる。
【0022】
(2) エージェント機能を各ワーカデバイスのWebブラウザ内で実行するので、各デバイスのプロセッサアーキテクチャやOSが異なる環境でもエージェント機能をプロセッサアーキテクチャやOSごとに用意する必要がなくなる。
【0023】
(3) 分散処理を実行するプログラムコードをWebブラウザ内で実行するので、デバイスのプロセッサアーキテクチャやOSが異なる環境でもプログラムコードをプロセッサアーキテクチャやOSごとに用意する必要がなくなる。
【0024】
(4) Webブラウザで管理サーバへアクセスすることでエージェント機能がWebブラウザ内で起動し、同時に管理サーバに対してワーカデバイスが登録されるので、管理サーバに対するデバイス情報登録などのユーザ操作が不要となる。
【0025】
(5) プログラムコードをWebブラウザ内のサンドボックス実行環境において実行するので、プログラムコードがWebブラウザ内あるいはデバイス内で実行される他のプログラムの動作に影響を与えたり、あるいはWebブラウザおよびWebブラウザ内で実行される他のプログラムのメモリ情報へ不正アクセスしたりすることを防止できる。
【0026】
(6) 分散処理を実行するプログラムコードが入出力機能にアクセスする際にインタフェースコードを介するため、分散処理における入出力機能の実装を、プログラムコードを修正することなくインタフェースコードを変更するだけで変更できる。
【0027】
(7) 分散処理を実行するプログラムコードが入出力機能にアクセスする際にインタフェースコードを介するため、インタフェースコードにおいてプログラムコードに渡す、あるいはプログラムコードから出力されるデータの検証、アクセス範囲の制御を行うことができる。
【0028】
(8) インタフェースコードを切り替えることで入出力機能の実装を変更することができるので、Webブラウザ外の環境でも共通の命令セットを持つサンドボックス実行環境があれば、インタフェースコードをWebブラウザ外の入出力機能用に変更することでプログラムコードを変更することなく実行できる。
【図面の簡単な説明】
【0029】
図1】本発明の一実施形態に係る分散コンピューティング制御機構が適用されるネットワーク基盤の構成を示した図である。
図2】管理サーバ及びワーカデバイスの構成を示した機能ブロック図である。
図3】ワーカデバイスにおけるWebブラウザの機能ブロック図である。
図4】複数のジョブを分散処理するワーカデバイスの機能ブロック図である。
図5A】ワーカデバイス上でプログラムコードを実行する手順を示したシーケンスフロー(その1)である。
図5B】ワーカデバイス上でプログラムコードを実行する手順を示したシーケンスフロー(その2)である。
図5C】ワーカデバイス上でプログラムコードを実行する手順を示したシーケンスフロー(その3)である。
図6】ワーカデバイスのユーザがジョブ依頼者として3D映像の再生に係る3D処理を複数のワーカデバイスへ依頼する例を模式的に示した図である。
図7】交通量や天気をカメラ画像に基づいて予測するモデルを機械学習するジョブを複数のワーカデバイスで分散処理する例を模式的に示した図である。
【発明を実施するための形態】
【0030】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図1は、本発明の分散コンピューティング制御機構が適用されるネットワーク基盤の構成を模式的に示した図である。エッジサーバ1にはネットワーク経由で多数のワーカデバイス10が収容され、各ワーカデバイス10はエッジサーバ1と連携して対象ジョブを分散処理する。
【0031】
本実施形態では、各ワーカデバイス10における分散処理を管理するサーバ機能が管理サーバ20としてエッジサーバ1に実装される場合を例にして説明するが、管理サーバ20はエッジサーバ1から独立した専用サーバとして構成しても良い。
【0032】
管理サーバ20は、後に詳述するWebサーバ機能21及び管理機能22を有し、分散処理の対象ジョブを実行するプログラムモジュール30を保持する。管理サーバ20は各ワーカデバイス10へプログラムモジュール30を配信してWebブラウザ内で実行させ、処理結果を各ワーカデバイス10から取得する。
【0033】
ワーカデバイス10は、パーソナルコンピュータ(PC)10a,スマートフォン10b、ウエアラブル端末10cあるいはロボット10d等の汎用デバイスであり、いずれのワーカデバイス10もWebブラウザを搭載している。
【0034】
図2は、管理サーバ20及びワーカデバイス10の構成を示した機能ブロック図であり、図3は、ワーカデバイス10におけるWebブラウザ11の機能を模式的に示したブロック図である。管理サーバ20は複数のワーカデバイス10を管理するが、ここではその一つに注目して説明する。
【0035】
管理サーバ20はWebサーバ機能21及び管理機能22を主要な構成とし、分散処理用のプログラムモジュール30を保持する。管理機能22はワーカデバイス10及びその分散処理の管理を行う。Webサーバ機能21はワーカデバイス10が管理サーバ20へアクセスするためのアクセスインタフェースとして機能し、エージェント機能12及びプログラムモジュール30を各ワーカデバイス10へ配信する。
【0036】
エージェント機能12はワーカデバイス10のWebブラウザ11内でその実行エンジン14により実行できるように、Web標準として採用されたHTML (Hypertext Markup Language)、CSS (Cascading Style Sheets)、JavaScriptなどの言語を組み合わせて実装される。
【0037】
エージェント機能12はWebブラウザの操作に応答して管理サーバ20の管理機能22に接続することでワーカデバイス情報を交換する。管理機能22がワーカデバイス10に処理対象のジョブを割り当てると、エージェント機能12は当該ジョブに対応するプログラムモジュール30をWebサーバ機能21から取得する。
【0038】
プログラムモジュール30は分散処理の内容を記述したプログラムコード31と当該プログラムコード31の動作に必要な入出力処理を記述したインタフェースコード32とから構成される。
【0039】
図3に示すように、プログラムコード31はWebブラウザ11内のサンドボックス実行環境13において起動、実行され、インタフェースコード32はWebブラウザ11により起動、実行される。したがって、プログラムコード31はサンドボックス実行環境13で実行可能な命令セットで記述される。インタフェースコード32はエージェント機能12によってWebブラウザ11の実行エンジン14に読み込まれる。
【0040】
このように、本実施形態ではプログラムコード31をWebブラウザ11内のサンドボックス実行環境13において実行するので、プログラムコード31がWebブラウザ11内あるいはデバイス10内で実行される他のプログラムの動作に影響を与えたり、あるいはWebブラウザおよびWebブラウザ内で実行される他のプログラムのメモリ情報へ不正アクセスしたりすることを防止できる。
【0041】
前記プログラムコード31はインタフェースコード32を介して関数ベースでWebブラウザ11の入出力機能を利用する。start()関数はプログラム起動用の関数である。proc1()関数は入出力機能を必要としない処理を実行し、proc2()関数は入出力機能を必要とする処理を実行する。
【0042】
インタフェースコード32はサンドボックス実行環境13に隔離されたプログラムコード31に対して、そのAPIを介してインスタンス131の作成や各種関数の呼び出しを行うことで必要な入出力機能を提供する。入力情報の例としては、ワーカデバイス10が備えるカメラ映像、センサ情報及びエージェント機能12から与えられたパラメータなどがある。出力情報の例としては、プログラムコード31による演算処理結果やログ情報などがある。
【0043】
インタフェースコード32にはプログラムコード31が必要とする情報にアクセスするための具体的な処理が実装される。一例として、JavaScriptを使用してWebブラウザ11を介してセンサ情報にアクセスする処理等を実装できる。
【0044】
インタフェースコード32は更に、プログラムコード31との連携を行うためにインスタンス131へアクセスし、プログラムコード31との双方向の関数、例えばmain()関数やsensor()関数の呼び出しを行う機能を持つ。
【0045】
main()関数はエージェント機能12がインタフェースコード32を呼び出す際に自動的に実行され、対応するプログラムコード31をサンドボックス実行環境13に引き渡してインスタンス131を作成する。これにより入力情報のプログラムコード31への受け渡し、及びプログラムコード31からの出力情報の取得を行うことができる。sensor()関数はproc2()関数により呼び出され、プログラムコード31に対してWebブラウザ11の入出力機能を提供する。
【0046】
このようなサンドボックス実行環境13としてはWebAssembly技術等を採用できる。本実施形態では、図3に示すようにプログラムコード31がサンドボックス実行環境13に読み込まれると対応するインスタンス131が作成され、インスタンス内でプログラムコード31が利用するメモリ領域132やプログラムカウンタ133といった実行用リソース134が確保される。これによりプログラムコード31をエージェント機能12やWebブラウザ11で開かれている他のWebページのプログラムとは隔離された環境で実行できる。
【0047】
各ワーカデバイス10において複数の分散処理ジョブを実行するようにしても良い。この場合は図4に示すように、ワーカデバイス10は複数のプログラムモジュール30(30a,30b)を管理サーバ20のWebサーバ機能21から取得し、Webブラウザ11内でそれぞれのプログラムコード31a,31b及びインタフェースコード32a,32bを同時に実行する。
【0048】
次いで、図5A,5B,5Cのシーケンスフローを参照して、ワーカデバイス10上でプログラムコード31を実行する手順について説明する。
【0049】
初めに図5Aを参照し、時刻t1においてユーザがワーカデバイス10を操作することでWebブラウザ11の起動及び管理サーバ20への接続の操作を行うと、時刻t2においてWebブラウザ11が起動される。
【0050】
時刻t3においてWebブラウザ11が管理サーバ20のWebサーバ機能21へ接続すると、時刻t4ではWebサーバ機能21がエージェント機能12をワーカデバイス10のWebブラウザ11へ送信する。エージェント機能12はWebブラウザの実行エンジン14(ファイル取得機能)を利用してワーカデバイス10にダウンロードされ、当該実行エンジン14に取り込まれる。
【0051】
時刻t5では、Webブラウザ11上でエージェント機能12が起動される。エージェント機能12は起動が完了すると、時刻t6,t7においてWebサーバ機能21を介して管理機能22へワーカデバイス10を分散処理を担うワーカデバイスの一つとして登録する。
【0052】
このように、本実施形態ではWebブラウザ11で管理サーバ20にアクセスすることでエージェント機能12がWebブラウザ内で起動し、同時に管理サーバ20に対してワーカデバイス10が登録されるため、管理サーバ20に対するデバイス情報登録などのユーザ操作が不要となる。
【0053】
これ以降、エージェント機能12は管理機能22へ対象ジョブの取得を定期的に要求する。本実施形態では、時刻t8においてエージェント機能12がサーバ機能21を介して管理機能22へ対象ジョブの取得を要求する。時刻t9では、Webサーバ機能21が当該要求に応答して対象ジョブの検索を管理機能22へ要求する。
【0054】
時刻t10では、管理機能22が検索結果をWebサーバ機能21へ応答する。検索結果が「処理対象ジョブ無し」であれば、Webサーバ機能21は時刻t11においてエージェント機能12へその旨を通知して今回の定期処理を終了する。これ以降、所定の周期で時刻t8以降の処理が繰り返される。
【0055】
時刻t12において、前記検索結果が「処理対象ジョブ有り」である旨がエージェント機能12へ通知されると、時刻t13では、エージェント機能12がWebサーバ機能21に対して当該ジョブに対応するプログラムモジュール30を要求する。時刻t14ではWebサーバ機能21が当該要求に応答して、対応するプログラムモジュール30をWebブラウザ11へ送信する。プログラムモジュール30はワーカデバイス10にダウンロードされてWebブラウザ11に読み込まれる。
【0056】
図5Bへ進み、時刻t15ではエージェント機能12がプログラムモジュール30に含まれるインタフェースコード32を抽出し、Webブラウザ11に対して呼び出しを行うことで起動する。時刻t16では、インタフェースコード32がサンドボックス実行環境13に対してプログラムコード31の起動を要求する。
【0057】
時刻t17では、サンドボックス実行環境13が前記プログラムコード31を読み込んでインスタンス131を作成する。すなわち、サンドボックス実行環境13にメモリ領域132及びプログラムカウンタ133等の実行用リソース134が確保される。
【0058】
時刻t18において、インタフェースコード32がプログラムコード31内の任意の起動用関数(ここではstart()関数)を呼び出すようにサンドボックス実行環境13へ要求すると、時刻t19においてstart()関数内の処理が実行される。時刻t20では、サンドボックス実行環境13からプログラムコード31の実行を可能とするために、インタフェースコード32の特定の外部関数を呼び出すことで外部の入出力機能へアクセスする。ここでは、外部関数の例としてデバイスのセンサ情報を取得するインタフェースコード32のsensor()関数を呼び出すフローを示す。
【0059】
時刻t20において、プログラムコード31内で外部関数sensor()が呼び出されると、時刻21において、サンドボックス実行環境13のAPIを介してインタフェースコード32の関数sensor()が呼び出される。関数sensor()にはワーカデバイス10の各種センサが出力する信号を取得するための処理等、入出力環境を提供するために必要な情報が記述されている。
【0060】
時刻t22では、インタフェースコード32がWebブラウザ11へセンサ情報を要求する。Webブラウザ11は、時刻t23においてワーカデバイス10のセンサからセンサ情報を取得すると、時刻t24においてインタフェースコード32へ応答する。
【0061】
時刻t25では、インタフェースコード32がサンドボックス実行環境13へsensor()関数の返り値を返却する。時刻t26では、サンドボックス実行環境13がプログラムコード31へsensor()関数の返り値を返却する。時刻t27では、プログラムコード31に従って返り値が処理される。プログラムコード31の実行が完了すると、時刻t28において処理結果がサンドボックス実行環境13へ格納される。
【0062】
このように、本実施形態によればジョブを分散処理するプログラムコード31が入出力機能にアクセスする際にインタフェースコード32を介するため、分散処理における入出力機能の実装を、プログラムコードを修正することなくインタフェースコード32を変更するだけで変更できる。更に、インタフェースコード32においてプログラムコード31に渡す、あるいはプログラムコード31から出力されるデータの検証、アクセス範囲の制御を行うことができる。
【0063】
以上のフローによってプログラムコード31は外部関数呼び出しを利用して外部の情報を処理に利用できる。
【0064】
図5Cへ進み、時刻t29,t30では、前記処理結果がインタフェースコード32によってエージェント機能12へ渡される。エージェント機能12は、時刻t31において処理結果をWebサーバ機能21へ渡す。時刻t32では、Webサーバ機能21が管理機能22へ処理結果を渡すことで分散処理が完了する。これにより管理機能22はワーカデバイス10で任意の分散処理ジョブを実行し、処理結果を受け取ることができる。
【0065】
図6は、ワーカデバイス(ウエアラブルデバイス)10cのユーザがジョブ依頼者として、3D映像の再生に係る3D処理を複数のワーカデバイス10へ依頼する例を模式的に示した図である。
【0066】
ジョブ依頼者は自身のウエアラブルデバイス10cから管理サーバ20へ前記プログラムモジュール30として、映像収集モジュール30a及び3D処理モジュール30bを登録する。
【0067】
分散処理を希望する各ジョブ処理者は、自身のワーカデバイス10のWebブラウザを起動、操作して管理サーバ20へアクセスし、エージェント機能12を取得してWebブラウザ内で起動する。
【0068】
各エージェント機能12は管理サーバ20から対応する3D処理モジュール30bを取得し、プログラムコード31をサンドボックス実行環境において処理する。処理結果は管理サーバ20経由で依頼元のウエアラブルデバイス10cへ提供されて3D映像の再生に供される。
【0069】
本実施形態によれば、ジョブ依頼者は処理能力が3D映像処理には不十分なウエアラブルデバイス10cを用いて、低遅延かつ広帯域の3D映像再生を実現できるようになる。
【0070】
図7は、交通量や天気をカメラ画像に基づいて予測するモデルを機械学習するジョブを複数のワーカデバイス10で分散処理する例を模式的に示した図である。ここではプログラムモジュール30として映像収集モジュール30c,画像処理モジュール30d及び機械学習モジュール30eが管理サーバ20に登録済みであるものとして説明する。
【0071】
分散処理を希望する各ジョブ処理者は自身のワーカデバイス10のWebブラウザを起動して操作し、管理サーバ20からエージェント機能12を取得してWebブラウザ内で起動する。エージェント機能12は管理サーバ20から対応するプログラムモジュール30を取得し、そのプログラムコード31を実行させることで処理結果を得る。
【0072】
映像収集モジュール30cを取得したワーカデバイス10は、自身のセンサ情報(ここでは、カメラ機能)を用いて撮影した映像を収集し、これを分散処理の結果として出力する。画像処理モジュール30dを取得したワーカデバイス10は、映像の処理結果から特徴量抽出等の画像処理を実施して処理結果を出力する。
【0073】
機械学習モジュール30eを取得したワーカデバイス10は、前記画像処理の結果を複数のワーカデバイス10から取得して機械学習を行い、カメラ映像から交通量や天気を予測するモデルを構築する。予測モデルはジョブ依頼者へ提供される。
【0074】
本実施形態によれば、多数の視点で撮影したカメラ映像に基づいて予測モデルを構築するジョブにおいて、カメラ映像の収集やその画像処理を複数のワーカデバイス10に分散処理させることができる。したがって、一般的に処理負荷の高い機械学習を低遅延及び負荷分散の環境下で実施できるようになる。
【0075】
そして、上記の実施形態によれば複数のワーカデバイスに低遅延かつ広帯域のモバイル通信環境下でジョブを分散処理させることが可能になるので、地理的あるいは経済的な格差を超えて多くの人々に多様なサービスを提供できるようになる。その結果、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、包括的で持続可能な産業化を推進する」や目標11「都市を包摂的、安全、レジリエントかつ持続可能にする」に貢献することが可能となる。
【符号の説明】
【0076】
1…エッジサーバ,10(10a,10b,10c,10d)…ワーカデバイス,11…Webブラウザ,12…エージェント機能,13…サンドボックス実行環境,14…実行エンジン,20…管理サーバ,21…Webサーバ機能,22…管理機能,30(30a,30b,30c,30d,30e)…プログラムモジュール,31(31a,31b)…プログラムコード,32(32a,32b)…インタフェースコード,131…インスタンス,132…メモリ領域,133…プログラムカウンタ,134…実行用リソース
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7