JP7603628B2 - Distributed computing control system, method and program - Google Patents
Distributed computing control system, method and program Download PDFInfo
- Publication number
- JP7603628B2 JP7603628B2 JP2022027206A JP2022027206A JP7603628B2 JP 7603628 B2 JP7603628 B2 JP 7603628B2 JP 2022027206 A JP2022027206 A JP 2022027206A JP 2022027206 A JP2022027206 A JP 2022027206A JP 7603628 B2 JP7603628 B2 JP 7603628B2
- Authority
- JP
- Japan
- Prior art keywords
- web browser
- program
- management server
- distributed processing
- program code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、ネットワークに接続された不特定多数のデバイスを用いて対象ジョブを分散処理する分散コンピューティング制御システム、方法及びプログラムに係り、特に、Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理するシステム、方法及びプログラムに関する。 The present invention relates to a distributed computing control system, method, and program that performs distributed processing of target jobs using an unspecified number of devices connected to a network, and in particular to a system, method, and program in which multiple worker devices equipped with a web browser work together with a management server to perform distributed processing of jobs.
次世代の無線インフラのアーキテクチャの1つとして、モバイル網にエッジコンピューティングの仕組みを実装するMEC(Multi-access Edge Computing)が注目されている。MECではデータの処理機能の一部をクラウドではなく、ユーザにより近いモバイルネットワーク内(例えば、無線基地局)にエッジサーバとして配置することで低遅延かつ広帯域のモバイル通信を可能にする。 As one of the architectures for next-generation wireless infrastructure, MEC (Multi-access Edge Computing), which implements edge computing mechanisms in mobile networks, is attracting attention. MEC enables low-latency, high-bandwidth mobile communications by placing part of the data processing function not in the cloud but as an edge server within the mobile network (for example, in a wireless base station) closer to the user.
一方、無線基地局の空間的、電力的な制約から、各無線基地局に配置できるエッジサーバの能力が当該無線基地局に収容できるデバイス数に対して十分ではないという課題があった。このような技術課題に対して、無線基地局が収容するデバイス群に対象ジョブを分散処理させる分散コンピューティングシステムが注目されている。 However, due to spatial and power constraints of wireless base stations, there is an issue that the capacity of the edge servers that can be placed at each wireless base station is not sufficient for the number of devices that the wireless base station can accommodate. In response to this technical issue, distributed computing systems that distribute the processing of target jobs to the group of devices accommodated by the wireless base station have attracted attention.
特許文献1には、仮想マシンを用いたクラウドコンピューティングによりユーザへコンピューティングサービスを提供することで、演算処理を実施するデバイスにおける演算処理プログラムのインストール及び更新を不要とする技術が開示されている。
特許文献1によれば、ユーザがコンピューティングサービスを要求するたびに演算処理プログラムをインストールする必要がなくなり、更新する時間及びリソースを削減できるようになる。しかしながら、この手法ではコンピューティングサービスを提供するデバイスにおいて仮想マシンを実行可能な環境、及び仮想マシンを管理するための機能が必要となる。
According to
一方、複数のユーザが自身のデバイスをコンピューティングサービスの演算処理を実施するデバイスとして提供し、分散コンピューティングを実現するボランティア・コンピューティング等においては、スマートフォンやPCなどのユーザ端末、あるいはIoT(Internet of Things)デバイスなどの不特定多数かつ異種のデバイスが混在することが想定される。これらのデバイスを用いて分散コンピューティングサービスを提供するためには以下のような課題が存在する。 On the other hand, in volunteer computing, where multiple users provide their own devices as devices that perform the calculations of a computing service to realize distributed computing, it is assumed that there will be a large number of heterogeneous devices, such as user terminals such as smartphones and PCs, or IoT (Internet of Things) devices. In order to provide distributed computing services using these devices, the following challenges exist.
第1に、コンピューティングサービスを提供するデバイスとして不特定のデバイスを使用するため、予めコンピューティングサービスに必要な仮想マシンの実行環境や管理機能を統一的にインストールすることが困難である。 First, because unspecified devices are used to provide computing services, it is difficult to uniformly install the virtual machine execution environment and management functions required for the computing services in advance.
第2に、コンピューティングサービスを提供するデバイスとして他のユーザの持つデバイスやIoTデバイスなどが想定される。この場合、各デバイスが異なるプロセッサアーキテクチャ、OS(Operating System)、アプリケーションを備えるものとして、各デバイスが共通のプログラムを用いて分散処理を実行する機能が不可欠となる。 Secondly, devices that provide computing services are assumed to be devices owned by other users or IoT devices. In this case, since each device will have a different processor architecture, OS (Operating System), and applications, it will be essential for each device to have the function of executing distributed processing using a common program.
本発明の目的は、上記の技術課題を解決し、各デバイスのプロセッサアーキテクチャやOS等が異なっていても共通のエージェント機能及び分散処理プログラムを用いて対象ジョブを各デバイスに分散処理させることを可能とする分散コンピューティング制御システム、方法及びプログラムを提供することにある。 The object of the present invention is to provide a distributed computing control system, method, and program that solves the above technical problems and enables distributed processing of target jobs among devices using a common agent function and distributed processing program, even if the processor architecture, OS, etc. of each device are different.
上記の目的を達成するために、本発明は、Webブラウザを実装した複数のワーカデバイスが管理サーバと連携してジョブを分散処理する分散コンピューティング制御システムにおいて、以下の構成を具備した点に特徴がある。 To achieve the above objective, the present invention is characterized in that a distributed computing control system in which multiple worker devices equipped with a web browser work together with a management server to perform distributed processing of jobs has the following configuration.
(1) 各ワーカデバイスが、Webブラウザで管理サーバへアクセスしてエージェント機能を取得する手段と、Webブラウザを実行基盤として前記エージェント機能を起動する手段と、エージェント機能に管理サーバから分散処理プログラムを取得させる手段と、Webブラウザを実行基盤として前記分散処理プログラムを起動する手段と、分散処理の結果を管理サーバへ応答する手段とを具備した。 (1) Each worker device is provided with a means for accessing a management server with a web browser to obtain an agent function, a means for starting the agent function using the web browser as an execution platform, a means for the agent function to obtain a distributed processing program from the management server, a means for starting the distributed processing program using the web browser as an execution platform, and a means for responding to the management server with the results of distributed processing.
(2) 分散処理プログラムがWebブラウザのサンドボックス実行環境において起動されるようにした。 (2) Distributed processing programs are now launched in a sandbox execution environment in a web browser.
(3) 分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、プログラムコードはサンドボックス実行環境で起動され、インタフェースコードはプログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供するようにした。 (3) The distributed processing program is a program module including program code and interface code that provides an interface to the program code, the program code is launched in a sandbox execution environment, and the interface code provides the program code with an interface to a web browser and agent functions.
(4) エージェント機能は、Webブラウザが標準で備えるプログラム実行機能を利用してインタフェースコードを起動するようにした。 (4) The agent function launches the interface code by using the program execution function that is standard in web browsers.
(5) エージェント機能は、Webブラウザが標準で備えるファイル取得機能を利用して管理サーバから分散処理プログラムを取得するようにした。 (5) The agent function uses the file acquisition function that is standard in web browsers to obtain distributed processing programs from the management server.
(6) プログラムコードをサンドボックス実行環境で実行可能な命令セットによって記述するようにした。 (6) Program code is written using an instruction set that can be executed in the sandbox execution environment.
(7) エージェント機能を各ワーカデバイスのWebブラウザへ当該Webブラウザの標準言語で実装するようにした。 (7) The agent function is implemented in the web browser of each worker device in the standard language of that web browser.
(8) エージェント機能は、Webブラウザ内での起動後に管理サーバに対して自身のワーカデバイスを登録するようにした。 (8) The agent function now registers its own worker device to the management server after launching in a web browser.
本発明によれば以下のような効果が達成される。 The present invention achieves the following effects:
(1) エージェント機能を各ワーカデバイスのWebブラウザ内で実行するのでエージェント機能のインストールが不要となる。 (1) The agent function runs within the web browser of each worker device, eliminating the need to install the agent function.
(2) エージェント機能を各ワーカデバイスのWebブラウザ内で実行するので、各デバイスのプロセッサアーキテクチャやOSが異なる環境でもエージェント機能をプロセッサアーキテクチャやOSごとに用意する必要がなくなる。 (2) Because the agent function runs within the web browser of each worker device, there is no need to prepare an agent function for each processor architecture or OS, even in environments where the processor architecture or OS of each device is different.
(3) 分散処理を実行するプログラムコードをWebブラウザ内で実行するので、デバイスのプロセッサアーキテクチャやOSが異なる環境でもプログラムコードをプロセッサアーキテクチャやOSごとに用意する必要がなくなる。 (3) Because the program code that performs distributed processing is executed within a web browser, there is no need to prepare program code for each processor architecture or OS, even in environments with different device processor architectures or OSs.
(4) Webブラウザで管理サーバへアクセスすることでエージェント機能がWebブラウザ内で起動し、同時に管理サーバに対してワーカデバイスが登録されるので、管理サーバに対するデバイス情報登録などのユーザ操作が不要となる。 (4) By accessing the management server with a web browser, the agent function is launched within the web browser and the worker device is simultaneously registered with the management server, eliminating the need for user operations such as registering device information with the management server.
(5) プログラムコードをWebブラウザ内のサンドボックス実行環境において実行するので、プログラムコードがWebブラウザ内あるいはデバイス内で実行される他のプログラムの動作に影響を与えたり、あるいはWebブラウザおよびWebブラウザ内で実行される他のプログラムのメモリ情報へ不正アクセスしたりすることを防止できる。 (5) Because the program code is executed in a sandbox execution environment within the web browser, it is possible to prevent the program code from affecting the operation of other programs executed within the web browser or the device, or from gaining unauthorized access to memory information of the web browser or other programs executed within the web browser.
(6) 分散処理を実行するプログラムコードが入出力機能にアクセスする際にインタフェースコードを介するため、分散処理における入出力機能の実装を、プログラムコードを修正することなくインタフェースコードを変更するだけで変更できる。 (6) Because the program code that executes distributed processing accesses input/output functions via interface code, the implementation of input/output functions in distributed processing can be changed simply by changing the interface code without modifying the program code.
(7) 分散処理を実行するプログラムコードが入出力機能にアクセスする際にインタフェースコードを介するため、インタフェースコードにおいてプログラムコードに渡す、あるいはプログラムコードから出力されるデータの検証、アクセス範囲の制御を行うことができる。 (7) Because the program code that executes distributed processing accesses the input/output functions via the interface code, the interface code can verify the data that is passed to the program code or output from the program code and control the access range.
(8) インタフェースコードを切り替えることで入出力機能の実装を変更することができるので、Webブラウザ外の環境でも共通の命令セットを持つサンドボックス実行環境があれば、インタフェースコードをWebブラウザ外の入出力機能用に変更することでプログラムコードを変更することなく実行できる。 (8) Since the implementation of input/output functions can be changed by switching the interface code, if there is a sandbox execution environment with a common instruction set even in environments outside of a web browser, the interface code can be changed to use input/output functions outside of a web browser, allowing the program to be executed without changing the program code.
以下、図面を参照して本発明の実施の形態について詳細に説明する。図1は、本発明の分散コンピューティング制御機構が適用されるネットワーク基盤の構成を模式的に示した図である。エッジサーバ1にはネットワーク経由で多数のワーカデバイス10が収容され、各ワーカデバイス10はエッジサーバ1と連携して対象ジョブを分散処理する。
The following describes in detail an embodiment of the present invention with reference to the drawings. Figure 1 is a diagram showing a schematic configuration of a network infrastructure to which the distributed computing control mechanism of the present invention is applied. An
本実施形態では、各ワーカデバイス10における分散処理を管理するサーバ機能が管理サーバ20としてエッジサーバ1に実装される場合を例にして説明するが、管理サーバ20はエッジサーバ1から独立した専用サーバとして構成しても良い。
In this embodiment, we will explain an example in which the server function that manages the distributed processing in each
管理サーバ20は、後に詳述するWebサーバ機能21及び管理機能22を有し、分散処理の対象ジョブを実行するプログラムモジュール30を保持する。管理サーバ20は各ワーカデバイス10へプログラムモジュール30を配信してWebブラウザ内で実行させ、処理結果を各ワーカデバイス10から取得する。
The
ワーカデバイス10は、パーソナルコンピュータ(PC)10a,スマートフォン10b、ウエアラブル端末10cあるいはロボット10d等の汎用デバイスであり、いずれのワーカデバイス10もWebブラウザを搭載している。
The
図2は、管理サーバ20及びワーカデバイス10の構成を示した機能ブロック図であり、図3は、ワーカデバイス10におけるWebブラウザ11の機能を模式的に示したブロック図である。管理サーバ20は複数のワーカデバイス10を管理するが、ここではその一つに注目して説明する。
Figure 2 is a functional block diagram showing the configuration of the
管理サーバ20はWebサーバ機能21及び管理機能22を主要な構成とし、分散処理用のプログラムモジュール30を保持する。管理機能22はワーカデバイス10及びその分散処理の管理を行う。Webサーバ機能21はワーカデバイス10が管理サーバ20へアクセスするためのアクセスインタフェースとして機能し、エージェント機能12及びプログラムモジュール30を各ワーカデバイス10へ配信する。
The
エージェント機能12はワーカデバイス10のWebブラウザ11内でその実行エンジン14により実行できるように、Web標準として採用されたHTML (Hypertext Markup Language)、CSS (Cascading Style Sheets)、JavaScriptなどの言語を組み合わせて実装される。
The
エージェント機能12はWebブラウザの操作に応答して管理サーバ20の管理機能22に接続することでワーカデバイス情報を交換する。管理機能22がワーカデバイス10に処理対象のジョブを割り当てると、エージェント機能12は当該ジョブに対応するプログラムモジュール30をWebサーバ機能21から取得する。
The
プログラムモジュール30は分散処理の内容を記述したプログラムコード31と当該プログラムコード31の動作に必要な入出力処理を記述したインタフェースコード32とから構成される。
The
図3に示すように、プログラムコード31はWebブラウザ11内のサンドボックス実行環境13において起動、実行され、インタフェースコード32はWebブラウザ11により起動、実行される。したがって、プログラムコード31はサンドボックス実行環境13で実行可能な命令セットで記述される。インタフェースコード32はエージェント機能12によってWebブラウザ11の実行エンジン14に読み込まれる。
As shown in FIG. 3, the
このように、本実施形態ではプログラムコード31をWebブラウザ11内のサンドボックス実行環境13において実行するので、プログラムコード31がWebブラウザ11内あるいはデバイス10内で実行される他のプログラムの動作に影響を与えたり、あるいはWebブラウザおよびWebブラウザ内で実行される他のプログラムのメモリ情報へ不正アクセスしたりすることを防止できる。
In this manner, in this embodiment, the
前記プログラムコード31はインタフェースコード32を介して関数ベースでWebブラウザ11の入出力機能を利用する。start()関数はプログラム起動用の関数である。proc1()関数は入出力機能を必要としない処理を実行し、proc2()関数は入出力機能を必要とする処理を実行する。
The
インタフェースコード32はサンドボックス実行環境13に隔離されたプログラムコード31に対して、そのAPIを介してインスタンス131の作成や各種関数の呼び出しを行うことで必要な入出力機能を提供する。入力情報の例としては、ワーカデバイス10が備えるカメラ映像、センサ情報及びエージェント機能12から与えられたパラメータなどがある。出力情報の例としては、プログラムコード31による演算処理結果やログ情報などがある。
The
インタフェースコード32にはプログラムコード31が必要とする情報にアクセスするための具体的な処理が実装される。一例として、JavaScriptを使用してWebブラウザ11を介してセンサ情報にアクセスする処理等を実装できる。
Specific processing for accessing information required by
インタフェースコード32は更に、プログラムコード31との連携を行うためにインスタンス131へアクセスし、プログラムコード31との双方向の関数、例えばmain()関数やsensor()関数の呼び出しを行う機能を持つ。
The
main()関数はエージェント機能12がインタフェースコード32を呼び出す際に自動的に実行され、対応するプログラムコード31をサンドボックス実行環境13に引き渡してインスタンス131を作成する。これにより入力情報のプログラムコード31への受け渡し、及びプログラムコード31からの出力情報の取得を行うことができる。sensor()関数はproc2()関数により呼び出され、プログラムコード31に対してWebブラウザ11の入出力機能を提供する。
The main() function is executed automatically when the
このようなサンドボックス実行環境13としてはWebAssembly技術等を採用できる。本実施形態では、図3に示すようにプログラムコード31がサンドボックス実行環境13に読み込まれると対応するインスタンス131が作成され、インスタンス内でプログラムコード31が利用するメモリ領域132やプログラムカウンタ133といった実行用リソース134が確保される。これによりプログラムコード31をエージェント機能12やWebブラウザ11で開かれている他のWebページのプログラムとは隔離された環境で実行できる。
WebAssembly technology or the like can be adopted as such a
各ワーカデバイス10において複数の分散処理ジョブを実行するようにしても良い。この場合は図4に示すように、ワーカデバイス10は複数のプログラムモジュール30(30a,30b)を管理サーバ20のWebサーバ機能21から取得し、Webブラウザ11内でそれぞれのプログラムコード31a,31b及びインタフェースコード32a,32bを同時に実行する。
Each
次いで、図5A,5B,5Cのシーケンスフローを参照して、ワーカデバイス10上でプログラムコード31を実行する手順について説明する。
Next, the procedure for executing
初めに図5Aを参照し、時刻t1においてユーザがワーカデバイス10を操作することでWebブラウザ11の起動及び管理サーバ20への接続の操作を行うと、時刻t2においてWebブラウザ11が起動される。
First, referring to FIG. 5A, at time t1, a user operates the
時刻t3においてWebブラウザ11が管理サーバ20のWebサーバ機能21へ接続すると、時刻t4ではWebサーバ機能21がエージェント機能12をワーカデバイス10のWebブラウザ11へ送信する。エージェント機能12はWebブラウザの実行エンジン14(ファイル取得機能)を利用してワーカデバイス10にダウンロードされ、当該実行エンジン14に取り込まれる。
When the
時刻t5では、Webブラウザ11上でエージェント機能12が起動される。エージェント機能12は起動が完了すると、時刻t6,t7においてWebサーバ機能21を介して管理機能22へワーカデバイス10を分散処理を担うワーカデバイスの一つとして登録する。
At time t5, the
このように、本実施形態ではWebブラウザ11で管理サーバ20にアクセスすることでエージェント機能12がWebブラウザ内で起動し、同時に管理サーバ20に対してワーカデバイス10が登録されるため、管理サーバ20に対するデバイス情報登録などのユーザ操作が不要となる。
In this way, in this embodiment, by accessing the
これ以降、エージェント機能12は管理機能22へ対象ジョブの取得を定期的に要求する。本実施形態では、時刻t8においてエージェント機能12がサーバ機能21を介して管理機能22へ対象ジョブの取得を要求する。時刻t9では、Webサーバ機能21が当該要求に応答して対象ジョブの検索を管理機能22へ要求する。
After this, the
時刻t10では、管理機能22が検索結果をWebサーバ機能21へ応答する。検索結果が「処理対象ジョブ無し」であれば、Webサーバ機能21は時刻t11においてエージェント機能12へその旨を通知して今回の定期処理を終了する。これ以降、所定の周期で時刻t8以降の処理が繰り返される。
At time t10, the
時刻t12において、前記検索結果が「処理対象ジョブ有り」である旨がエージェント機能12へ通知されると、時刻t13では、エージェント機能12がWebサーバ機能21に対して当該ジョブに対応するプログラムモジュール30を要求する。時刻t14ではWebサーバ機能21が当該要求に応答して、対応するプログラムモジュール30をWebブラウザ11へ送信する。プログラムモジュール30はワーカデバイス10にダウンロードされてWebブラウザ11に読み込まれる。
At time t12, when the
図5Bへ進み、時刻t15ではエージェント機能12がプログラムモジュール30に含まれるインタフェースコード32を抽出し、Webブラウザ11に対して呼び出しを行うことで起動する。時刻t16では、インタフェースコード32がサンドボックス実行環境13に対してプログラムコード31の起動を要求する。
Moving on to FIG. 5B, at time t15, the
時刻t17では、サンドボックス実行環境13が前記プログラムコード31を読み込んでインスタンス131を作成する。すなわち、サンドボックス実行環境13にメモリ領域132及びプログラムカウンタ133等の実行用リソース134が確保される。
At time t17, the
時刻t18において、インタフェースコード32がプログラムコード31内の任意の起動用関数(ここではstart()関数)を呼び出すようにサンドボックス実行環境13へ要求すると、時刻t19においてstart()関数内の処理が実行される。時刻t20では、サンドボックス実行環境13からプログラムコード31の実行を可能とするために、インタフェースコード32の特定の外部関数を呼び出すことで外部の入出力機能へアクセスする。ここでは、外部関数の例としてデバイスのセンサ情報を取得するインタフェースコード32のsensor()関数を呼び出すフローを示す。
At time t18, when the
時刻t20において、プログラムコード31内で外部関数sensor()が呼び出されると、時刻21において、サンドボックス実行環境13のAPIを介してインタフェースコード32の関数sensor()が呼び出される。関数sensor()にはワーカデバイス10の各種センサが出力する信号を取得するための処理等、入出力環境を提供するために必要な情報が記述されている。
When the external function sensor() is called in the
時刻t22では、インタフェースコード32がWebブラウザ11へセンサ情報を要求する。Webブラウザ11は、時刻t23においてワーカデバイス10のセンサからセンサ情報を取得すると、時刻t24においてインタフェースコード32へ応答する。
At time t22, the
時刻t25では、インタフェースコード32がサンドボックス実行環境13へsensor()関数の返り値を返却する。時刻t26では、サンドボックス実行環境13がプログラムコード31へsensor()関数の返り値を返却する。時刻t27では、プログラムコード31に従って返り値が処理される。プログラムコード31の実行が完了すると、時刻t28において処理結果がサンドボックス実行環境13へ格納される。
At time t25, the
このように、本実施形態によればジョブを分散処理するプログラムコード31が入出力機能にアクセスする際にインタフェースコード32を介するため、分散処理における入出力機能の実装を、プログラムコードを修正することなくインタフェースコード32を変更するだけで変更できる。更に、インタフェースコード32においてプログラムコード31に渡す、あるいはプログラムコード31から出力されるデータの検証、アクセス範囲の制御を行うことができる。
In this way, according to this embodiment, the
以上のフローによってプログラムコード31は外部関数呼び出しを利用して外部の情報を処理に利用できる。
By using the above flow,
図5Cへ進み、時刻t29,t30では、前記処理結果がインタフェースコード32によってエージェント機能12へ渡される。エージェント機能12は、時刻t31において処理結果をWebサーバ機能21へ渡す。時刻t32では、Webサーバ機能21が管理機能22へ処理結果を渡すことで分散処理が完了する。これにより管理機能22はワーカデバイス10で任意の分散処理ジョブを実行し、処理結果を受け取ることができる。
Moving on to FIG. 5C, at times t29 and t30, the processing result is passed to the
図6は、ワーカデバイス(ウエアラブルデバイス)10cのユーザがジョブ依頼者として、3D映像の再生に係る3D処理を複数のワーカデバイス10へ依頼する例を模式的に示した図である。
Figure 6 is a schematic diagram showing an example in which a user of a worker device (wearable device) 10c, as a job requester, requests 3D processing related to the playback of 3D video images to
ジョブ依頼者は自身のウエアラブルデバイス10cから管理サーバ20へ前記プログラムモジュール30として、映像収集モジュール30a及び3D処理モジュール30bを登録する。
The job requester registers the
分散処理を希望する各ジョブ処理者は、自身のワーカデバイス10のWebブラウザを起動、操作して管理サーバ20へアクセスし、エージェント機能12を取得してWebブラウザ内で起動する。
Each job processor wishing to carry out distributed processing starts and operates the web browser on his/her
各エージェント機能12は管理サーバ20から対応する3D処理モジュール30bを取得し、プログラムコード31をサンドボックス実行環境において処理する。処理結果は管理サーバ20経由で依頼元のウエアラブルデバイス10cへ提供されて3D映像の再生に供される。
Each
本実施形態によれば、ジョブ依頼者は処理能力が3D映像処理には不十分なウエアラブルデバイス10cを用いて、低遅延かつ広帯域の3D映像再生を実現できるようになる。
According to this embodiment, a job requester can achieve low-latency, wideband 3D video playback using a
図7は、交通量や天気をカメラ画像に基づいて予測するモデルを機械学習するジョブを複数のワーカデバイス10で分散処理する例を模式的に示した図である。ここではプログラムモジュール30として映像収集モジュール30c,画像処理モジュール30d及び機械学習モジュール30eが管理サーバ20に登録済みであるものとして説明する。
Figure 7 is a schematic diagram showing an example of distributed processing by
分散処理を希望する各ジョブ処理者は自身のワーカデバイス10のWebブラウザを起動して操作し、管理サーバ20からエージェント機能12を取得してWebブラウザ内で起動する。エージェント機能12は管理サーバ20から対応するプログラムモジュール30を取得し、そのプログラムコード31を実行させることで処理結果を得る。
Each job processor wishing to carry out distributed processing starts and operates a web browser on his/her
映像収集モジュール30cを取得したワーカデバイス10は、自身のセンサ情報(ここでは、カメラ機能)を用いて撮影した映像を収集し、これを分散処理の結果として出力する。画像処理モジュール30dを取得したワーカデバイス10は、映像の処理結果から特徴量抽出等の画像処理を実施して処理結果を出力する。
The
機械学習モジュール30eを取得したワーカデバイス10は、前記画像処理の結果を複数のワーカデバイス10から取得して機械学習を行い、カメラ映像から交通量や天気を予測するモデルを構築する。予測モデルはジョブ依頼者へ提供される。
The
本実施形態によれば、多数の視点で撮影したカメラ映像に基づいて予測モデルを構築するジョブにおいて、カメラ映像の収集やその画像処理を複数のワーカデバイス10に分散処理させることができる。したがって、一般的に処理負荷の高い機械学習を低遅延及び負荷分散の環境下で実施できるようになる。
According to this embodiment, in a job for constructing a predictive model based on camera images captured from multiple viewpoints, the collection of camera images and their image processing can be distributed to
そして、上記の実施形態によれば複数のワーカデバイスに低遅延かつ広帯域のモバイル通信環境下でジョブを分散処理させることが可能になるので、地理的あるいは経済的な格差を超えて多くの人々に多様なサービスを提供できるようになる。その結果、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、包括的で持続可能な産業化を推進する」や目標11「都市を包摂的、安全、レジリエントかつ持続可能にする」に貢献することが可能となる。
The above embodiment enables distributed processing of jobs across multiple worker devices in a low-latency, broadband mobile communication environment, making it possible to provide a wide range of services to many people regardless of geographic or economic disparities. As a result, it will be possible to contribute to Goal 9 "Build resilient infrastructure and promote inclusive and sustainable industrialization" and
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... Edge server, 10 (10a, 10b, 10c, 10d)... Worker device, 11... Web browser, 12... Agent function, 13... Sandbox execution environment, 14... Execution engine, 20... Management server, 21... Web server function, 22... Management function, 30 (30a, 30b, 30c, 30d, 30e)... Program module, 31 (31a, 31b)... Program code, 32 (32a, 32b)... Interface code, 131... Instance, 132... Memory area, 133... Program counter, 134... Execution resource
Claims (8)
前記ワーカデバイスが、
Webブラウザで管理サーバへアクセスしてエージェント機能を取得する手段と、
Webブラウザを実行基盤として前記エージェント機能を起動する手段と、
エージェント機能に管理サーバから分散処理プログラムを取得させる手段と、
Webブラウザを実行基盤として前記分散処理プログラムを起動する手段と、
分散処理の結果を管理サーバへ応答する手段とを具備し、
前記分散処理プログラムがWebブラウザのサンドボックス実行環境において起動され、
前記分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、
前記プログラムコードは前記サンドボックス実行環境で起動され、
前記インタフェースコードは前記プログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供することを特徴とする分散コンピューティング制御システム。 In a distributed computing control system in which multiple worker devices each equipped with a web browser work together with a management server to perform distributed job processing,
The worker device,
A means to access the management server via a web browser and obtain agent functions;
A means for activating the agent function using a web browser as an execution platform;
A means for causing the agent function to acquire a distributed processing program from a management server;
A means for launching the distributed processing program using a web browser as an execution platform;
a means for responding to the management server with a result of the distributed processing ;
The distributed processing program is started in a sandbox execution environment of a web browser,
the distributed processing program is a program module including a program code and an interface code that provides an interface to the program code,
the program code is launched in the sandbox execution environment;
The interface code provides the program code with an interface to a web browser and agent functions .
ワーカデバイスがWebブラウザで管理サーバへアクセスしてエージェント機能を取得し、
ワーカデバイスのWebブラウザを実行基盤として前記エージェント機能を起動し、
エージェント機能が管理サーバから分散処理プログラムを取得し、
Webブラウザを実行基盤として前記分散処理プログラムを起動し、
分散処理の結果を管理サーバへ応答し、
前記分散処理プログラムがWebブラウザのサンドボックス実行環境において起動され、
前記分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、
前記プログラムコードは前記サンドボックス実行環境で起動され、
前記インタフェースコードは前記プログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供することを特徴とする分散コンピューティング制御方法。 A distributed computing control method in which a plurality of worker devices each having a web browser implemented therein cooperate with a management server to perform distributed processing of a job, comprising:
The worker device accesses the management server via a web browser to acquire the agent function,
The agent function is started using a web browser on the worker device as an execution platform,
The agent function obtains the distributed processing program from the management server,
The distributed processing program is started using a web browser as an execution platform;
The results of the distributed processing are returned to the management server .
The distributed processing program is started in a sandbox execution environment of a web browser,
the distributed processing program is a program module including a program code and an interface code that provides an interface to the program code,
the program code is launched in the sandbox execution environment;
The method for controlling distributed computing, wherein the interface code provides the program code with an interface to a web browser and an agent function .
Webブラウザで管理サーバへアクセスしてエージェント機能を取得する手順と、
Webブラウザを実行基盤として前記エージェント機能を起動する手順と、
エージェント機能に管理サーバから分散処理プログラムを取得させる手順と、
Webブラウザを実行基盤として前記分散処理プログラムを起動する手順と、
分散処理の結果を管理サーバへ応答する手順と、をワーカデバイスに実行させ、
前記分散処理プログラムがWebブラウザのサンドボックス実行環境において起動され、
前記分散処理プログラムがプログラムコード及び当該プログラムコードに対してインタフェースを提供するインタフェースコードを含むプログラムモジュールであり、
前記プログラムコードは前記サンドボックス実行環境で起動され、
前記インタフェースコードは前記プログラムコードに対してWebブラウザ及びエージェント機能へのインタフェースを提供することを特徴とする分散コンピューティング制御プログラム。 In a distributed computing control program in which a plurality of worker devices each having a web browser installed thereon cooperate with a management server to perform distributed processing of jobs,
How to access the management server using a web browser and obtain agent functions.
A step of starting the agent function using a web browser as an execution platform;
A procedure for causing an agent function to obtain a distributed processing program from a management server;
A step of launching the distributed processing program using a web browser as an execution platform;
a procedure for responding to the management server with a result of the distributed processing ;
The distributed processing program is started in a sandbox execution environment of a web browser,
the distributed processing program is a program module including a program code and an interface code that provides an interface to the program code,
the program code is launched in the sandbox execution environment;
The interface code provides an interface to a web browser and an agent function for the program code .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022027206A JP7603628B2 (en) | 2022-02-24 | 2022-02-24 | Distributed computing control system, method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022027206A JP7603628B2 (en) | 2022-02-24 | 2022-02-24 | Distributed computing control system, method and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023123244A JP2023123244A (en) | 2023-09-05 |
| JP7603628B2 true JP7603628B2 (en) | 2024-12-20 |
Family
ID=87885810
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022027206A Active JP7603628B2 (en) | 2022-02-24 | 2022-02-24 | Distributed computing control system, method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7603628B2 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003022189A (en) | 2001-07-06 | 2003-01-24 | Mitsubishi Electric Corp | Distributed network computing system |
| JP2006221382A (en) | 2005-02-10 | 2006-08-24 | Hitachi Ltd | Computer resource management method for distributed processing system |
| JP2011170571A (en) | 2010-02-18 | 2011-09-01 | Nippon Telegr & Teleph Corp <Ntt> | Distributed computing system, distribution and combination apparatus for distributed computing, and terminal device |
| JP2013003542A (en) | 2011-06-21 | 2013-01-07 | Konica Minolta Advanced Layers Inc | Optical element assembly, optical element, production method of optical element assembly, and production method of optical element |
| JP2015534144A (en) | 2012-08-16 | 2015-11-26 | クアルコム,インコーポレイテッド | Predictive resource prefetching through sandboxed execution |
-
2022
- 2022-02-24 JP JP2022027206A patent/JP7603628B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003022189A (en) | 2001-07-06 | 2003-01-24 | Mitsubishi Electric Corp | Distributed network computing system |
| JP2006221382A (en) | 2005-02-10 | 2006-08-24 | Hitachi Ltd | Computer resource management method for distributed processing system |
| JP2011170571A (en) | 2010-02-18 | 2011-09-01 | Nippon Telegr & Teleph Corp <Ntt> | Distributed computing system, distribution and combination apparatus for distributed computing, and terminal device |
| JP2013003542A (en) | 2011-06-21 | 2013-01-07 | Konica Minolta Advanced Layers Inc | Optical element assembly, optical element, production method of optical element assembly, and production method of optical element |
| JP2015534144A (en) | 2012-08-16 | 2015-11-26 | クアルコム,インコーポレイテッド | Predictive resource prefetching through sandboxed execution |
Non-Patent Citations (1)
| Title |
|---|
| 中野 雄介 他,「Webアプリケーションユーザの利用を妨げないWebブラウザの余剰リソース活用手法」,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2011年05月01日,第VOL.J94-D巻,第5号,pp.780-790,[ISSN]1880-4535 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023123244A (en) | 2023-09-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8966508B2 (en) | Method for executing hybrid web application and apparatus therefor | |
| EP3011442B1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
| KR102354717B1 (en) | Code service for language-independent dispatch | |
| CN111026396A (en) | Page rendering method and device, electronic equipment and storage medium | |
| KR101882383B1 (en) | A container resource allocation device and method in virtual desktop infrastructure | |
| US8843631B2 (en) | Dynamic local function binding apparatus and method | |
| JP2023524009A5 (en) | ||
| CN113641413A (en) | Target model loading and updating method and apparatus, readable medium and electronic device | |
| CN111143010A (en) | Terminal device control method, terminal device, and storage medium | |
| CN118051316A (en) | Asynchronous task processing method, device and storage medium | |
| CN114327710B (en) | Function management method, management device, terminal equipment and readable storage medium | |
| CN109445960B (en) | Application routing method, device and storage medium | |
| KR101907660B1 (en) | Terminal apparatus having operating system based on web and method for providing service using thereof | |
| JP7603628B2 (en) | Distributed computing control system, method and program | |
| JP2021535461A (en) | Client application for running web applications | |
| CN104980511A (en) | Game data access method, game data access system and game web server | |
| Tseng et al. | Migratom. js: a JavaScript migration framework for distributed web computing and mobile devices | |
| EP1993038B1 (en) | Data processing system and data processing method | |
| CN114500598A (en) | Equipment access method, system and proxy service equipment | |
| TWI581185B (en) | Method and system for installing application | |
| CN116442214B (en) | A method, apparatus, device, and medium for parallel processing of tasks by a robot. | |
| CN114726905B (en) | Method, device, equipment and storage medium for accessing Tbox network into Android system | |
| Zhang et al. | A webpage offloading framework for smart devices | |
| Kim et al. | Study on requirements of cloud-based environments for easy development of ros modules | |
| Shiraz et al. | A distributed and elastic application processing model for mobile cloud computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240207 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241016 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241016 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241120 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241204 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241210 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7603628 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |